MiInsertPteTracker

_SLIST_ENTRY *__fastcall MiInsertPteTracker(INT64 a1, INT64 a2, CHAR a3, CHAR a4){
  int v7; 
  PSLIST_ENTRY v8; 
  PSLIST_ENTRY v9; 
  _SLIST_ENTRY *Next; 
  _SLIST_ENTRY *v11; 
  _SLIST_ENTRY *result; 
  unsigned __int64 v13; 
  __int64 v14; 
  __int64 v15; 
  unsigned __int64 v16; 
  __int64 v17; 
  __int64 v18; 
  unsigned __int64 v19; 
  _SLIST_ENTRY *v20; 
  __int64 v21; 
  __int64 *v22; 
  __int64 v23; 
  __int64 v24; 
  UINT64 BackTraceHash; 
  struct _KLOCK_QUEUE_HANDLE LockHandle; 
  LODWORD(BackTraceHash) = 0;
  v7 = a2;
  memset(&LockHandle, 0, sizeof(LockHandle));
  if( (unsigned __int16)xmmword_140C4E800 < 0xAu )
  {
    v8 = RtlpInterlockedPopEntrySList((PSLIST_HEADER)&xmmword_140C4E800);
    goto LABEL_6;
  }
  v9 = RtlpInterlockedFlushSList((PSLIST_HEADER)&xmmword_140C4E800);
  v8 = v9;
  if( v9 )
  {
    Next = v9->Next;
    if( v9->Next )
    {
      do
      {
        v11 = Next->Next;
        ExFreePoolWithTag(Next, 0);
        Next = v11;
      }
      while( v11 );
    }
LABEL_6:
    if( v8 )
      goto LABEL_9;
  }
  LODWORD(result) = MiAllocatePool((struct _SLIST_ENTRY *)0x40);
  v8 = result;
  if( !result )
  {
    byte_140C4E8FD = 1;
    return result;
  }
LABEL_9:
  if( !v7 )
  {
    v17 = (*(_DWORD *)(a1 + 32) + *(_DWORD *)(a1 + 44)) & 0xFFF;
    v18 = *(unsigned int *)(a1 + 40) + 4095i64;
    v8[1].Next = (_SLIST_ENTRY *)a1;
    v16 = v18 + v17;
    *((_QWORD *)&v8[2].Next + 1) = *(_QWORD *)(a1 + 32);
    LODWORD(v8[3].Next) = *(_DWORD *)(a1 + 44);
    HIDWORD(v8[3].Next) = *(_DWORD *)(a1 + 40);
    goto LABEL_14;
  }
  if( v7 == 1 )
  {
    v14 = (*(_DWORD *)(a1 + 32) + *(_DWORD *)(a1 + 44)) & 0xFFF;
    v15 = *(_QWORD *)(a1 + 16) + 4095i64;
    v8[1].Next = (_SLIST_ENTRY *)1;
    v16 = v15 + v14;
LABEL_14:
    v13 = v16 >> 12;
    goto LABEL_15;
  }
  v13 = *(_QWORD *)(a1 + 16) >> 12;
  v8[1].Next = 0i64;
LABEL_15:
  v19 = v13 + 1;
  if( (a3 & 2) == 0 )
    v19 = v13;
  *((_QWORD *)&v8[1].Next + 1) = v19;
  RtlCaptureStackBackTrace(1ui64, 7ui64, (PVOID *)&v8[4].Next + 1, &BackTraceHash);
  v20 = *(_SLIST_ENTRY **)(a1 + 24);
  v8[2].Next = v20;
  *((_QWORD *)&v8[3].Next + 1) = *(_QWORD *)(a1 + 48);
  LODWORD(v8[4].Next) = (4 * (a4 & 3)) | a3 & 1 | (__int64)v8[4].Next & 0xFFFFFFE0 | ((a3 & 2) != 0 ? 0x10 : 0);
  v21 = 40543i64 * (unsigned int)((unsigned __int64)v20 >> 12);
  KeAcquireInStackQueuedSpinLock(&qword_140C4E810, &LockHandle);
  v22 = &qword_140C4F570[2 * (((unsigned __int8)v21 ^ BYTE4(v21)) & 0xF)];
  v23 = *v22;
  if( *(__int64 **)(*v22 + 8) != v22 )
    __fastfail(3u);
  *((_QWORD *)&v8->Next + 1) = v22;
  v8->Next = (_SLIST_ENTRY *)v23;
  *(_QWORD *)(v23 + 8) = v8;
  *v22 = (__int64)v8;
  qword_140C4F670 += v19;
  v24 = ++qword_140C4F678;
  if( qword_140C4F678 > (unsigned __int64)qword_140C4F680 )
    qword_140C4F680 = v24;
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  result = (_SLIST_ENTRY *)(unsigned int)KiIrqlFlags;
  __writecr8(LockHandle.OldIrql);
  return result;
}

Referenced by:

MiMapContiguousMemory
MmAllocateMappingAddressEx
MmMapLockedPagesSpecifyCache
MmMapMdl