PspRequestProcessExecutionState

INT64 __fastcall PspRequestProcessExecutionState(INT64 a1, INT64 a2, CHAR a3){
  int v3; 
  INT64 result; 
  int v5; 
  int v6; 
  int v7; 
  bool v8; 
  if( (*(_DWORD *)(a1 + 2172) & 1) == 0 || (v8 = (a3 & 1) == 0, v3 = 0x10000000, !v8) )
    v3 = 805306368;
  LODWORD(result) = *(_DWORD *)(a1 + 1120);
  v5 = v3 & ((_DWORD)a2 << 28);
  v6 = ~v3;
  do
  {
    v7 = result;
    result = (unsigned int)_InterlockedCompareExchange((volatile signed __int32 *)(a1 + 1120), v5 | result & v6, result);
  }
  while( (_DWORD)result != v7 );
  return result;
}

Referenced by:

PsSwapProcessWorkingSet
PspApplyJobChainLimitsToProcess
PspRemoveProcessFromJobChain
PspSetProcessFreezeStateCallback