MiDeleteVaTail

INT64 __fastcall MiDeleteVaTail(INT64 *a1){
  unsigned __int64 *v1; 
  unsigned __int64 v3; 
  CHAR *v4; 
  __int64 v6; 
  __int64 v7; 
  __int64 v8; 
  __int64 v9; 
  v1 = (unsigned __int64 *)a1[21];
  MiTerminateWsleCluster((INT64)(v1 + 15));
  MiFlushTbList(a1[2]);
  v3 = *v1;
  if( *v1 )
  {
    v6 = a1[3];
    if( (*(_BYTE *)(v6 + 184) & 7) != 0
      && v3 >= (unsigned __int64)MmGetPml4eBase()
      && v3 <= (unsigned __int64)MmGetPml4eLimit() )
    {
      v7 = v1[1];
      v8 = (_QWORD)MmGetPteBase() << 25;
      v9 = 3i64;
      do
      {
        v3 = (__int64)((v3 << 25) - v8) >> 16;
        v7 = ((v7 << 25) - v8) >> 16;
        --v9;
      }
      while( v9 );
      MiReplicatePteChange((MMPTE *)v3, (MMPTE *)v7);
      v6 = a1[3];
    }
    else
    {
      v3 = 0i64;
      v7 = 0i64;
    }
    MiDeletePteRun(v6, (__int64)v1);
    if( v3 )
      MiReplicatePteChange((MMPTE *)v3, (MMPTE *)v7);
    *v1 = 0i64;
  }
  v4 = (CHAR *)v1[11];
  if( v4 )
  {
    MiDecayPfnFullyInitialized(v4);
    v1[11] = 0i64;
  }
  return 0i64;
}

Referenced by:

MiDeletePagablePteRange