PoExecuteIdleCheck

INT64 __fastcall PoExecuteIdleCheck(UINT64 a1){
  INT64 IdleConstrainedMask; 
  unsigned int v3; 
  __int64 v4; 
  __int64 v5; 
  EVENT_DESCRIPTOR *v6; 
  INT64 v7; 
  UINT16 *v8[2]; 
  __int16 v9; 
  int v10; 
  __int16 v11; 
  int v12; 
  INT64 v13[21]; 
  _KAFFINITY_EX result; 
  v10 = 0;
  v11 = 0;
  memset((INT64)&result, 0i64);
  memset((INT64)v13 + 4, 0i64);
  IdleConstrainedMask = PpmIdleDurationExpirationTimeout;
  if( PpmIdleDurationExpirationTimeout )
  {
    if( PpmIdleDurationExpirationTimeout + PpmIdleLastIdleDurationExpirationTime < a1 )
    {
      IdleConstrainedMask = PpmGetIdleConstrainedMask(&result);
      if( (_BYTE)IdleConstrainedMask )
      {
        PpmIdleLastIdleDurationExpirationTime = a1;
        v12 = 1310721;
        memset((INT64)v13, 0i64);
        v8[1] = (UINT16 *)result.Bitmap[0];
        v8[0] = (UINT16 *)&result;
        v9 = 0;
        while( 1 )
        {
          LODWORD(v7) = 0;
          if( (int)KiEnumerateNextProcessorNumber((INT64)&v7, v8) < 0 )
            break;
          v3 = KiProcessorNumberToIndexMappingTable[64 * (unsigned __int16)v7 + BYTE2(v7)];
          KeGetPrcb(v3);
          if( (struct _KPRCB *)v4 != KeGetCurrentPrcb() && *(_QWORD *)(v4 + 32808) <= a1 )
            KeAddProcessorAffinityEx(&v12, v3);
        }
        IdleConstrainedMask = KeIsEmptyAffinityEx(&v12);
        if( !(_DWORD)IdleConstrainedMask )
        {
          PpmEventIdleDurationExpiration((unsigned __int16 *)&v12, v5, v6);
          return HalRequestIpi(0, &v12);
        }
      }
    }
  }
  return IdleConstrainedMask;
}

Referenced by:

KeClockInterruptNotify
KiUpdateTime