MiComputeFaultNode

VOID __fastcall MiComputeFaultNode(
        _MMSUPPORT_INSTANCE *Vm,
        VOID *FaultingAddress,
        _CONTROL_AREA *ControlArea,
        VOID *TrapInformation,
        _MMVAD **OutVad){
  _MMWSL_INSTANCE *VmWorkingSetList; 
  unsigned __int64 v7; 
  _MMWSL_INSTANCE *v8; 
  _MMPTE *v9; 
  int v10; 

  if( Vm->TrimmedPageCount >> 57 )
    return;
  VmWorkingSetList = Vm->VmWorkingSetList;
  if( ((unsigned __int8)VmWorkingSetList & 1) != 0 )
  {
    v7 = (unsigned __int64)VmWorkingSetList & 0xFFFFFFFFFFFFFFFEui64;
    if( *(_BYTE *)v7 == 4 )
    {
      v10 = (*(&KiProcessorBlock + *(unsigned int *)(*(_QWORD *)(v7 + 40) + 588i64)))->ParentNode->Affinity.Reserved[0]
          + 1;
    }
    else
    {
      if( *(_BYTE *)v7 != 2 )
        goto LABEL_4;
      v10 = *(_DWORD *)(v7 + 40);
    }
    if( v10 )
      return;
    goto LABEL_4;
  }
  v7 = 0i64;
LABEL_4:
  if( (*(_BYTE *)(Vm->AgeDistribution[2] + 184) & 7) == 0 )
  {
    v8 = KeGetCurrentThread()->ApcState.Process->Vm.Instance.VmWorkingSetList;
    if( !ControlArea->Segment )
    {
      v9 = *(_MMPTE **)&Vm->NextPageColor;
      if( (*(_QWORD *)&Vm->NextPageColor < (unsigned __int64)MmGetPteBase() || v9 > MmGetPteLimit())
        && (v7
         || *(_QWORD *)&v8[10].LastAccessClearingRemainder
         || v8[10].LockedEntries
         || LOBYTE(v8[8].LockedEntries) == 1) )
      {
        ControlArea->Segment = (_SEGMENT *)MiLocateAddress(v9);
      }
    }
  }
}

Referenced by:

MiCopyOnWrite
MiMigratePfn
MiResolveMappedFileFault
MiResolvePageFileFault