PopInitSIdle

VOID __stdcall PopInitSIdle(){
  unsigned int v0; 
  unsigned int a7; 
  UINT8 v2; 
  unsigned int v3; 
  INT64 v4; 
  CHAR a5; 
  int v6; 
  int v7; 
  int v8; 
  __int64 v9; 
  _SYSTEM_POWER_CAPABILITIES v10; 
  INT64 result; 
  int v12; 
  INT64 Source2; 
  int v14; 
  unsigned int v15; 
  a7 = v0;
  memset((INT64)&result, 0i64);
  memset((INT64)&v10, 0i64);
  if( PopPlatformAoAc )
  {
    PopUpdateSystemIdleContext(a7);
    return;
  }
  v2 = 1;
  v12 = -1;
  HIDWORD(Source2) = 1;
  v3 = 5;
  v14 = *((_DWORD *)PopPolicy + 14);
  v15 = 2;
  if( (PopFullWake & 3) == 0 && *(_DWORD *)dword_140C23D20 && (*(_DWORD *)PopSimulate & 0x1000000) == 0 )
  {
    v3 = 4;
    if( (unsigned int)(Action - 2) <= 1 )
    {
      v15 = *(&Action + 1);
      LODWORD(Source2) = Action;
    }
    else
    {
      LODWORD(Source2) = 2;
      v15 = 4;
    }
    v14 = 0;
    v12 = *(_DWORD *)dword_140C23D20;
    goto LABEL_5;
  }
  PopFilterCapabilities((_SYSTEM_POWER_CAPABILITIES *)&PopCapabilities, &v10);
  if( !*((_DWORD *)PopPolicy + 15) )
  {
    if( !*((_DWORD *)PopPolicy + 22) )
      goto LABEL_5;
    goto LABEL_32;
  }
  if( v10.spare2[2] )
  {
    LODWORD(Source2) = 2;
    v3 = 1;
    v8 = *((_DWORD *)PopPolicy + 15);
    v15 = 1;
  }
  else
  {
    if( !*(_WORD *)&v10.SystemS1 && !v10.SystemS3 )
    {
LABEL_32:
      if( !PopIsDozeSupported(&v10.PowerButtonPresent) || !*(_DWORD *)(v9 + 88) )
        goto LABEL_5;
      v3 = 3;
      LODWORD(Source2) = 3;
      v8 = *(_DWORD *)(v9 + 88);
      v15 = 5;
      goto LABEL_35;
    }
    LODWORD(Source2) = 2;
    v3 = 2;
    v8 = *((_DWORD *)PopPolicy + 15);
    v15 = 4;
  }
LABEL_35:
  v12 = v8;
LABEL_5:
  if( RtlCompareMemory(&Source1, &Source2, 0xCui64) == 12
    && (v4 = (unsigned int)dword_140C231C0, (_DWORD)dword_140C231C0 == v15)
    && (a5 = ::a5[0], *(_DWORD *)::a5 == v12) )
  {
    v2 = 0;
  }
  else
  {
    PopResetIdleTime(4i64);
    v4 = v15;
    a5 = v12;
    dword_140C231BC = v14;
    Source1 = Source2;
    byte_140C231D4 = 1;
    LODWORD(dword_140C231C0) = v15;
    *(_DWORD *)::a5 = v12;
    if( dword_140C002E0 )
      v6 = dword_140C231C4 | 1;
    else
      v6 = dword_140C231C4 & 0xFFFFFFFE;
    dword_140C231C4 = v6;
    if( !byte_140C23E54 )
    {
      if( dword_140C00300 )
        v7 = v6 | 2;
      else
        v7 = v6 & 0xFFFFFFFD;
      dword_140C231C4 = v7;
    }
  }
  PopTraceSystemIdleTimeoutInitialization(
    v2,
    v3,
    (EVENT_DESCRIPTOR *)(unsigned int)Source1,
    v4,
    a5,
    SBYTE4(Source1),
    a7);
}

Referenced by:

PopApplyPolicy
PopBatteryApplyCompositeState
PopDispatchFullWake
PopSleepPowerSettingCallback
PopTransitionSystemPowerStateEx