MiFlushTbList

void __fastcall MiFlushTbList(__int64 a1){
  UINT64 v2; 
  char v3; 
  unsigned __int64 v4; 
  unsigned int v5; 
  __int64 v6; 
  UINT64 v7; 
  UINT64 *v8; 
  v2 = *(unsigned int *)(a1 + 12);
  if( !(_DWORD)v2 )
    return;
  v3 = *(_BYTE *)(a1 + 4);
  v4 = qword_140C4DCD0;
  if( (v3 & 2) == 0 )
  {
    v5 = *(_DWORD *)a1;
    if( *(_DWORD *)a1 != 1 )
      goto LABEL_16;
    v6 = *((_QWORD *)KeGetCurrentThread() + 23);
    if( *(_QWORD *)(v6 + 2288) || *(_QWORD *)(v6 + 992) )
      v4 = -1i64;
  }
  v5 = *(_DWORD *)a1;
  if( *(_DWORD *)a1 == 1 )
  {
    v7 = 0i64;
    goto LABEL_8;
  }
LABEL_16:
  v7 = (unsigned int)((v3 & 8) != 0) + 1;
LABEL_8:
  if( *(_BYTE *)(a1 + 5) || *(_QWORD *)(a1 + 16) > v4 )
  {
    if( (v3 & 1) != 0 )
      KeFlushCurrentTbOnly(v5);
    else
      KeFlushTb(v5, v7);
    *(_BYTE *)(a1 + 5) = 0;
  }
  else
  {
    v8 = (UINT64 *)(a1 + 24);
    if( (v3 & 1) != 0 )
      KeFlushMultipleRangeCurrentTb(v2, v8, v5);
    else
      KeFlushMultipleRangeTb(v2, v8, v5, v7);
  }
  *(_BYTE *)(a1 + 4) &= ~8u;
  *(_DWORD *)(a1 + 12) = 0;
  *(_QWORD *)(a1 + 16) = 0i64;
}

Referenced by:

MiAgePteWorker
MiBuildForkPte
MiClearDriverHotPatchPtes
MiClearSystemAccessBits
MiCloneVads
MiCopyOnWrite
MiCreateSystemPageTable
MiCreateSystemPageTableTail
MiDecommitHardwareEnclavePages
MiDecommitLargePoolVa
MiDeleteEmptyPageTableTail
MiDeleteNonPagedPoolTail
MiDeletePteList
MiDeleteSystemPagableVm
MiDeleteSystemPageTableTail
MiDeleteTopLevelSessionMapping
MiDeleteVa
MiDeleteVaTail
MiDemoteValidLargePageOneLevel
MiFlushDirtyBitsToPfn
MiFlushEnclaveTb
MiFlushHyperSpace
MiFlushKernelCfgBitmap
MiFlushTbAsNeeded
MiFlushTbListEarly
MiFlushValidPteFromTb
MiFreePhysicalPages
MiFreeWsleList
MiGetNextPageTablePte
MiGetNextPageTableTail
MiGetPteFromCopyList
MiHandleForkTransitionPte
MiInitializeTbFlush
MiLargePageFault
MiLockCode
MiMakeSystemAddressValid
MiMapMdlCommon
MiMapMemoryDumpMdl
MiMarkBootKernelStack
MiMoveDirtyBitsToPfns
MiObtainSystemCacheView
MiProtectAweRegion
MiProtectLargeKernelHalRange
MiProtectPrivateMemory
MiProtectSharedUserPage
MiReleaseLargePteMappings
MiReleasePtes
MiReloadBootLoadedDrivers
MiReplacePageTablePage
MiReplacePfnWithGapMapping
MiReplaceRotateWithDemandZero
MiReplenishBitMap
MiReplicatePfnDatabaseMappings
MiResetAccessBitPte
MiResetAccessBitsTail
MiScrubLargeMappedPage
MiSetPagingOfDriver
MiSetProtectionOnSection
MiSetReadOnlyOnSectionView
MiSetSystemCodeProtection
MiSharePages
MiSimpleAgeWorkingSetTail
MiSwitchToTransition
MiTerminateWsleCluster
MiTrimSharedPageFromViews
MiUnmapMdlCommon
MiUnmapPatchTable
MiUnmapRetpolineStubs
MiWalkVaRange
MiWriteAwePtes
MiWsleFlush
MiZeroAndFlushPtes
MiZeroPage
MiZeroPageWorkMapping
MiZeroWithSystemPtes
MmDeleteShadowMapping
MmFreeLoaderBlock
MmMapViewInSystemCache
MmOutPageKernelStack
MmProtectMdlSystemAddress
MmProtectPool
MmRemoveExecuteGrants
MmSetAddressRangeModifiedEx
MmSetPageProtection
MmUnmapIoSpace
NtGetWriteWatch