PopEvaluateInputSuppressionAction

VOID __stdcall PopEvaluateInputSuppressionAction(){
  char v0; 
  bool v1; 
  bool v2; 
  bool v3; 
  int v4; 
  INT64 v5; 
  INT64 v6; 
  INT64 v7; 
  INT64 v8; 
  INT64 MatchingChangeStamp; 
  UINT64 MatchingChangeStampb; 
  UINT64 MatchingChangeStampa; 
  INT64 v12; 
  INT64 v13; 
  INT64 v14; 
  _BOOL4 Buffer; 
  GUID InputBuffer; 
  _BOOL4 v17; 

  v17 = 0;
  Buffer = 0;
  InputBuffer = 0i64;
  PopAcquirePolicyLock();
  PopAcquireRwLockExclusive((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 183);
  v0 = PopConsoleExternalDisplayConnected;
  v1 = PopLidOpened == 0;
  v2 = *(&stru_140C23628 + 441) == 1;
  v3 = dword_140C50478 == 0;
  if( *(&stru_140CF2E80 + 6570)
    || !*(&stru_140CF2E80 + 6569) && PopLidOpened
    || *(&stru_140C23628 + 441) != 1
    || (_BYTE)PopConsoleExternalDisplayConnected
    || (v4 = 1, dword_140C50478) )
  {
    v4 = 0;
  }
  if( !*(&stru_140CF2E80 + 6568) && v4 == 1 )
    v4 = 2;
  PopReleasePolicyLock();
  if( PopInputSuppressionRequired != v4 )
  {
    LODWORD(v12) = v4;
    LOBYTE(v8) = v0;
    LOBYTE(v7) = v2;
    LOBYTE(v5) = v1;
    PopInputSuppressionRequired = v4;
    PopTraceInputSuppressionActionUpdate(v6, v5, v7, v8, v3, MatchingChangeStamp, v12);
    LODWORD(v13) = 0;
    LODWORD(MatchingChangeStampb) = 0;
    ZwUpdateWnfStateData(
      &WNF_PO_INPUT_SUPPRESS_NOTIFICATION_EX,
      &PopInputSuppressionRequired,
      4ui64,
      0i64,
      0i64,
      MatchingChangeStampb,
      v13);
    if( *(&stru_140CF2E80 + 6568) )
    {
      if( (unsigned int)PopInputSuppressionRequired <= 1 )
        _InterlockedIncrement((_DWORD *)&WheapErrorSourceTable + 239);
      LODWORD(v14) = 0;
      LODWORD(MatchingChangeStampa) = 0;
      Buffer = PopInputSuppressionRequired == 1;
      ZwUpdateWnfStateData(&WNF_PO_INPUT_SUPPRESS_NOTIFICATION, &Buffer, 4ui64, 0i64, 0i64, MatchingChangeStampa, v14);
      v17 = Buffer;
      InputBuffer = GUID_INPUT_SUPPRESS_REQUESTED;
      PopBroadcastSessionInfo(PowerInfo_PolicyChange, 0x14ui64, &InputBuffer);
    }
  }
  PopReleaseRwLock((_POP_RW_LOCK *)&PopIrpWorkerControlEvent + 183);
}

Referenced by:

PopBroadcastInputSuppressionCallback
PopExternalMonitorUpdatedWorker