PpmIdleWaitForDependentTransitions
__int64 __fastcall PpmIdleWaitForDependentTransitions(__int64 a1){
unsigned __int16 *v1;
unsigned int v2;
__int64 v3;
__int64 v4;
__int64 v5;
_RTL_PROCESS_MODULES *v6;
UINT64 v7;
UINT64 *v8;
unsigned __int16 *v10[2];
__int16 v11;
int v12;
__int16 v13;
_LIST_ENTRY LoadOrderListHead;
__int128 v15;
UINT64 ProcessorNumber;
v1 = *(unsigned __int16 **)(a1 + 8);
v2 = 0;
v12 = 0;
v13 = 0;
LODWORD(ProcessorNumber) = 0;
v11 = 0;
v10[1] = v1;
v10[0] = (unsigned __int16 *)a1;
while( !(unsigned int)KeEnumerateNextProcessor(&ProcessorNumber, v10) )
{
KeGetPrcb((unsigned int)ProcessorNumber);
v15 = 0i64;
BYTE12(v15) = 1;
v4 = v3;
v5 = *(_QWORD *)(v3 + 0x8000);
LoadOrderListHead.Flink = 0i64;
*(_QWORD *)&v15 = v3;
LoadOrderListHead.Blink = (_LIST_ENTRY *)PopIdleTransitionTimeout;
while( !(*(unsigned __int8(__fastcall **)(_QWORD))(v5 + 472))(*(_QWORD *)(v5 + 488)) )
{
if( (*(_DWORD *)(v4 + 32832) & 0xFF000000) != 83886080 )
return(unsigned int)-1073741782;
PpmIdleTransitionStall(&LoadOrderListHead, v6, v7, v8);
}
}
return v2;
}Referenced by:
PpmIdleCheckCoordinatedStateEligibility