MiComputeMaximumFaultCluster

NTSTATUS __stdcall MiComputeMaximumFaultCluster(UINT64 *a1, UINT64 a2){
  UINT64 v2; 
  UINT64 v4; 
  unsigned __int64 v6; 
  UINT64 v7; 
  __int64 v8; 
  UINT64 v9; 
  UINT64 v10; 
  _MMVAD *Address; 
  int v12; 
  UINT64 v13; 
  int v14; 

  v2 = a1[2];
  v4 = *a1 & 0xFFFFFFFFFFFFF000ui64;
  if( v2 == (v2 & 0xFFFFFFFFFFFFFFFEui64) )
  {
    if( ((v2 & 1) == 0 || *(_BYTE *)(v2 & 0xFFFFFFFFFFFFFFFEui64) != 1) && (v2 & 1) == 0 )
    {
      if( v2 )
      {
        if( *(_WORD *)(v2 + 368) == 16 )
        {
          if( (*(_DWORD *)(v2 + 376) & 0x200) != 0
            || (LOBYTE(v12) = KiRspInIstStack(3ui64, *(_QWORD *)(v2 + 384)), !v12)
            && (LOBYTE(v14) = KiRspInIstStack(2ui64, v13), !v14) )
          {
            v6 = *(_QWORD *)(v2 + 360);
            if( KiDynamicTraceEnabled && v6 >= ControlPc && v6 < qword_140CFBBE0 )
              KeGetCurrentIrql();
          }
        }
      }
    }
    return 1;
  }
  LODWORD(v7) = MiFaultListPagesRemaining(a1);
  if( v7 == 1 )
    return 1;
  if( !a2 || a2 > v7 )
    a2 = v7;
  v9 = 512 - (((unsigned __int64)((unsigned int)MmGetPteBase() + (unsigned int)(v4 >> 9)) >> 3) & 0x1FF);
  v10 = v9;
  if( a2 <= v9 )
    v10 = a2;
  if( v4 < 0xFFFF800000000000ui64 )
  {
    Address = *(_MMVAD **)(v8 + 88);
    if( Address || (Address = MiLocateAddress((VOID *)v4)) != 0i64 )
      v9 = (Address->Core.EndingVpn | ((unsigned __int64)Address->Core.EndingVpnHigh << 32)) - (v4 >> 12) + 1;
    else
      v9 = 1i64;
  }
  if( v10 <= v9 )
    LODWORD(v9) = v10;
  return v9;
}

Referenced by:

MiDispatchFault