PopEvaluateInputSuppressionAction

VOID __stdcall PopEvaluateInputSuppressionAction(){
  char v0; 
  bool v1; 
  bool v2; 
  bool v3; 
  int v4; 
  INT64 v5; 
  INT64 v6; 
  INT64 v7; 
  INT64 v8; 
  INT64 v9; 
  INT64 v10; 
  BOOL v11; 
  INT64 v12[2]; 
  BOOL v13; 
  v13 = 0;
  *(_OWORD *)v12 = 0i64;
  PopAcquirePolicyLock();
  PopAcquireRwLockExclusive(&PopInputSuppressionLock);
  v0 = PopConsoleExternalDisplayConnected;
  v1 = PopLidOpened == 0;
  v2 = dword_140C23D0C == 1;
  v3 = PopConsoleDisplayState == 0;
  if( PopErrataReportingIncorrectLidState
    || !PopIgnoreLidStateForInputSuppression && PopLidOpened
    || dword_140C23D0C != 1
    || (_BYTE)PopConsoleExternalDisplayConnected
    || (v4 = 1, PopConsoleDisplayState) )
  {
    v4 = 0;
  }
  if( !PopEnableInputSuppression && v4 == 1 )
    v4 = 2;
  PopReleasePolicyLock();
  if( PopInputSuppressionRequired != v4 )
  {
    LODWORD(v10) = v4;
    LOBYTE(v8) = v0;
    LOBYTE(v7) = v2;
    LOBYTE(v5) = v1;
    PopInputSuppressionRequired = v4;
    PopTraceInputSuppressionActionUpdate(v6, v5, v7, v8, v3, v9, v10);
    ZwUpdateWnfStateData();
    if( PopEnableInputSuppression )
    {
      if( (unsigned int)PopInputSuppressionRequired <= 1 )
        _InterlockedIncrement(&PopInputSuppressionActionCount);
      v11 = PopInputSuppressionRequired == 1;
      ZwUpdateWnfStateData();
      v13 = v11;
      *(GUID *)v12 = GUID_INPUT_SUPPRESS_REQUESTED;
      PopBroadcastSessionInfo(0i64, 20i64, (INT64)v12);
    }
  }
  PopReleaseRwLock((UINT64)&PopInputSuppressionLock);
}

Referenced by:

PopBroadcastInputSuppressionCallback
PopExternalMonitorUpdatedWorker