PoExecuteIdleCheck

NTSTATUS __stdcall PoExecuteIdleCheck(UINT64 a1){
  NTSTATUS result; 
  unsigned int v3; 
  _KPRCB *Prcb; 
  INT64 v5; 
  UINT16 *v6[2]; 
  __int16 v7; 
  int v8; 
  __int16 v9; 
  _KAFFINITY_EX Affinity; 
  _KAFFINITY_EX IdleConstrainedMask; 

  v8 = 0;
  v9 = 0;
  memset(&IdleConstrainedMask, 0i64, sizeof(IdleConstrainedMask));
  memset(Affinity.Bitmap, 0i64, sizeof(Affinity.Bitmap));
  result = PpmIdleDurationExpirationTimeout;
  if( PpmIdleDurationExpirationTimeout )
  {
    if( PpmIdleDurationExpirationTimeout + PpmIdleLastIdleDurationExpirationTime < a1 )
    {
      LOBYTE(result) = PpmGetIdleConstrainedMask(&IdleConstrainedMask);
      if( (_BYTE)result )
      {
        PpmIdleLastIdleDurationExpirationTime = a1;
        *(_DWORD *)&Affinity.Count = 1310721;
        memset(&Affinity.Reserved, 0i64, 0xA4u);
        v6[1] = (UINT16 *)IdleConstrainedMask.Bitmap[0];
        v6[0] = (UINT16 *)&IdleConstrainedMask;
        v7 = 0;
        while( 1 )
        {
          LODWORD(v5) = 0;
          if( KiEnumerateNextProcessorNumber((INT64)&v5, v6) < 0 )
            break;
          v3 = KiProcessorNumberToIndexMappingTable[64 * (unsigned __int16)v5 + BYTE2(v5)];
          Prcb = KeGetPrcb(v3);
          if( Prcb != KeGetCurrentPrcb() && Prcb->PowerState.IdleTimeExpiration <= a1 )
            KeAddProcessorAffinityEx(&Affinity.Count, v3);
        }
        result = KeIsEmptyAffinityEx(&Affinity.Count);
        if( !result )
        {
          PpmEventIdleDurationExpiration(&Affinity);
          HalRequestIpi(IpiAffinity, &Affinity);
        }
      }
    }
  }
  return result;
}

Referenced by:

KeClockInterruptNotify
KiUpdateTime