PopExecuteSystemIdleAction

INT64 __fastcall PopExecuteSystemIdleAction(_LOADER_PARAMETER_BLOCK *LoaderBlock){
  char v1; 
  __int64 v2; 
  UINT8 v3; 
  __int64 v4; 
  unsigned int v5; 
  unsigned __int64 v6; 
  CHAR v7; 
  unsigned int updated; 
  UINT64 a5; 
  INT64 a3; 
  int v12; 
  INT64 a1[2]; 
  __int64 v14; 
  v3 = v1;
  *(_OWORD *)a1 = 0i64;
  v14 = 0i64;
  v4 = v2;
  v5 = (unsigned int)LoaderBlock;
  v6 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart / 0x989680ui64;
  if( (_DWORD)LoaderBlock == 1 )
  {
    v7 = v1;
    goto LABEL_10;
  }
  if( (int)LoaderBlock <= 2 )
    goto LABEL_8;
  if( (int)LoaderBlock > 4 )
  {
    if( (_DWORD)LoaderBlock == 5 )
    {
      v7 = 0;
LABEL_10:
      updated = PopUpdatePdcSystemIdleState(v7);
      goto LABEL_11;
    }
LABEL_8:
    updated = -1073741811;
    goto LABEL_11;
  }
  updated = 0;
  if( v1 )
  {
    a1[0] = 0x8000000007i64;
    v12 = 0;
    a3 = 0x8000002400000003ui64;
    PopAcquirePolicyLock();
    LODWORD(a5) = 1;
    PopExecutePowerAction((INT64)a1, 0i64, (INT64)&a3, 5i64, a5);
    PopReleasePolicyLock();
  }
LABEL_11:
  *(_QWORD *)v4 = v6;
  *(_DWORD *)(v4 + 8) = v5;
  *(_BYTE *)(v4 + 12) = v3;
  *(_DWORD *)(v4 + 16) = updated;
  PopDiagTraceSystemIdleAction(v5, v3, (EVENT_DESCRIPTOR *)updated);
  return updated;
}

Referenced by:

PopSystemIdleWorker