MiComputeCommitChargeForZeroPteRange

UINT64 __stdcall MiComputeCommitChargeForZeroPteRange(_MMVAD_SHORT *Vad, _MMPTE *PointerPte, UINT64 NumberOfPages){
  UINT64 v3; 
  int v5; 
  UINT64 v6; 
  unsigned __int64 v8; 
  __int64 v9; 
  UINT64 PagesProcessedOut; 
  v3 = 0i64;
  v5 = *((_DWORD *)Vad + 12);
  v6 = NumberOfPages;
  PagesProcessedOut = 0i64;
  if( (v5 & 0x100000) != 0 )
  {
    if( *((int *)Vad + 13) >= 0 )
      return 0i64;
    return v6;
  }
  if( (v5 & 0x70) != 32 )
  {
    if( (v5 & 0x280) != 640 )
      return 0i64;
    return v6;
  }
  v8 = (unsigned __int64)((__int64)(((_QWORD)PointerPte << 25) - ((_QWORD)MmGetPteBase() << 25)) >> 16) >> 12;
  if( NumberOfPages )
  {
    do
    {
      MiComputeImageVadCommitCharge((_MMVAD *)Vad, v8, v6, &PagesProcessedOut);
      v8 += PagesProcessedOut;
      v3 += v9;
      v6 -= PagesProcessedOut;
    }
    while( v6 );
  }
  return v3;
}

Referenced by:

MiCheckCommitReleaseFromVad