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