MiEmptyWorkingSetInitiate

INT64 __fastcall MiEmptyWorkingSetInitiate(INT64 a1, CHAR a2, INT64 a3, INT64 a4){
  int v8; 
  INT64 v9; 
  int v10; 
  UINT8 v11; 
  bool v12; 
  unsigned int v13; 
  _WORD v15[3]; 
  UINT8 v16; 
  INT64 v17; 
  INT64 v18; 
  INT64 v19; 
  INT64(__fastcall *v20)(INT64, UINT64, INT64); 
  INT64(__fastcall *v21)(INT64); 
  INT64 *p_result; 
  INT64 result; 
  int v24; 
  __int16 v25; 
  int v26; 
  __int64 v27; 
  __int64 v28; 
  memset((INT64)&result, 0i64);
  memset((INT64)v15, 0i64);
  v8 = 0;
  v24 = MiTbFlushType(a1);
  p_result = &result;
  v15[0] = 6;
  v20 = MiEmptyPte;
  v21 = MiEmptyWorkingSetTail;
  v10 = result;
  v25 = 4;
  v27 = 0i64;
  v26 = 20;
  v28 = 0i64;
  v17 = a1;
  if( (a2 & 1) != 0 )
  {
    v10 = result | 1;
  }
  else
  {
    if( (a2 & 2) == 0 )
      goto LABEL_5;
    v10 = result | 2;
  }
  LODWORD(result) = v10;
LABEL_5:
  if( (a2 & 4) != 0 )
    LODWORD(result) = v10 | 4;
  v18 = a3;
  v19 = a4;
  v11 = MiLockWorkingSetShared(v9);
  v12 = (*(_BYTE *)(a1 + 184) & 7) == 0;
  v16 = v11;
  if( v12 && (*(_DWORD *)(*((_QWORD *)KeGetCurrentThread() + 23) + 1124i64) & 0x20) != 0 )
  {
    v13 = -1073741558;
  }
  else
  {
    if( (unsigned int)MiWalkPageTables((INT64)v15) == 4 )
      v8 = -1073741558;
    v13 = v8;
  }
  MiUnlockWorkingSetShared(a1, v16);
  return v13;
}

Referenced by:

MiEmptyTargetedWorkingSet
MiEmptyWorkingSet
MiEmptyWorkingSetPrivatePagesByVa
MiTrimOrAgeWorkingSet
MmAdjustWorkingSetSizeEx