PopAdvanceSystemPowerState

VOID __fastcall PopAdvanceSystemPowerState(INT64 *a1, INT64 a2, INT64 a3, INT64 a4){
  int v4; 
  int v5; 
  int v6; 
  int v8; 
  int v9; 
  int v10; 
  if( !a1 )
    return;
  v4 = *(_DWORD *)a1;
  v5 = a4;
  v6 = a3;
  if( *(int *)a1 < 2 )
    return;
  if( v4 >= 6 )
    goto LABEL_9;
  if( !(_DWORD)a2 )
  {
    v8 = v4 - 1;
LABEL_6:
    *(_DWORD *)a1 = v8;
    PopVerifySystemPowerState(a1, a2);
    goto LABEL_7;
  }
  v10 = a2 - 1;
  if( v10 )
  {
    if( v10 != 1 )
      goto LABEL_7;
    if( v4 != 5 )
    {
      v8 = v4 + 1;
      a2 = 2i64;
      goto LABEL_6;
    }
LABEL_9:
    *(_DWORD *)a1 = 1;
    return;
  }
  *(_DWORD *)a1 = v4 - 1;
  PopVerifySystemPowerState(a1, 1i64);
  if( *(_DWORD *)a1 == v4 )
    *(_DWORD *)a1 = 1;
LABEL_7:
  v9 = *(_DWORD *)a1;
  if( *(_DWORD *)a1 != 1 && (v9 < v6 || v9 > v5) )
    goto LABEL_9;
}

Referenced by:

PopTransitionSystemPowerStateEx