MiUpdatePageFileList

VOID __stdcall MiUpdatePageFileList(_MMPAGING_FILE *PagingFile, UINT64 Insert){
  int v2; 
  _RTL_BALANCED_NODE *p_FileObjectNode; 
  unsigned __int64 v5; 
  _FILE_OBJECT *File; 
  BOOL v7; 
  _QWORD *v8; 
  _QWORD *v9; 

  v2 = Insert;
  if( !PagingFile->File )
    return;
  p_FileObjectNode = &PagingFile->FileObjectNode;
  v5 = (unsigned __int8)ExAcquireSpinLockExclusive((INT64 *)&stru_140C4DB30 + 473);
  if( !v2 )
  {
    RtlAvlRemoveNode((UINT64 *)&stru_140C4DB30 + 472, (INT64 *)p_FileObjectNode);
    goto LABEL_5;
  }
  File = PagingFile->File;
  LOWORD(PagingFile->_bf_cc) |= 0x100u;
  v7 = 0;
  v8 = (_QWORD *)*(&stru_140C4DB30 + 472);
  if( !*(&stru_140C4DB30 + 472) )
    goto LABEL_4;
  while( (unsigned __int64)File < *(v8 - 25) )
  {
    v9 = (_QWORD *)*v8;
    if( !*v8 )
      goto LABEL_4;
LABEL_9:
    v8 = v9;
  }
  v9 = (_QWORD *)v8[1];
  if( v9 )
    goto LABEL_9;
  v7 = 1;
LABEL_4:
  RtlAvlInsertNodeEx((_RTL_BALANCED_NODE **)&stru_140C4DB30 + 472, (UINT64)v8, v7, p_FileObjectNode);
LABEL_5:
  ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&stru_140C4DB30 + 473);
  __writecr8(v5);
}

Referenced by:

MiDeletePagefile
MiIncreaseCommitLimits
MiInsertPageFileInList