KeFlushSingleCurrentTb

VOID __stdcall KeFlushSingleCurrentTb(PVOID Virtual){
  unsigned int v1; 
  unsigned int v2; 
  bool IsSecureProcessFlush; 
  unsigned __int64 v5; 
  __int64 v6; 
  unsigned __int8 CurrentIrql; 
  char v8[8]; 
  unsigned __int64 v9; 
  UINT64 v10; 
  unsigned __int64 v11; 
  _QWORD v12[2]; 
  INT64 result[22]; 
  v2 = v1;
  v10 = 0i64;
  memset((INT64)result, 0i64);
  v8[0] = 0;
  IsSecureProcessFlush = KiIsSecureProcessFlush((UINT64)Virtual, v2);
  if( !IsSecureProcessFlush
    || (KiPrepareFlushParameters(v2, &v10, v8),
        KiPrepareFlushCurrentAffinity(result),
        LOBYTE(v6) = IsSecureProcessFlush,
        v11 = (unsigned __int64)Virtual & 0xFFFFFFFFFFFFF000ui64,
        !HvlFlushRangeListTb(v10, (__int64)result, v8[0], v6, 0, 1u, &v11)) )
  {
    if( ((1 << v2) & 0xA) != 0 && KiFlushPcid && !*(_BYTE *)(*((_QWORD *)KeGetCurrentThread() + 23) + 912i64) )
    {
      if( (KiFlushPcid & 2) != 0 )
      {
        v12[0] = 1i64;
        v12[1] = Virtual;
        _invpcid(0, v12);
      }
      else
      {
        KiSetUserTbFlushPending();
      }
    }
    __invlpg(Virtual);
  }
  v5 = (unsigned __int64)Virtual & 0xFFFFFFFFFFFFF000ui64;
  if( VmTbFlushEnabled )
  {
    v9 = v5;
    VmFlushTb(1u, &v9, v2);
  }
  if( ExTbFlushActive )
  {
    v9 = v5;
    CurrentIrql = KeGetCurrentIrql();
    __writecr8(0xFui64);
    ExFlushTb(1u, (__int64)&v9, v2);
    __writecr8(CurrentIrql);
  }
}

Referenced by:

MiDbgReleaseAddress
MiDbgTranslatePhysicalAddress
MiDbgUnTranslatePhysicalAddress
MiDbgWriteCheck
MiStackTheftIsr
MmInvalidateDumpAddresses
MmReadProcessPageTables