MiMapRetpolineStubs

NTSTATUS __stdcall MiMapRetpolineStubs(UINT64 a1, INT64 a2){
  UINT64 v4; 
  VOID *v5; 
  INT64 v6; 
  INT16 v7; 
  _MMSUPPORT_INSTANCE *SessionVm; 
  _MMSUPPORT_INSTANCE *v9; 
  _MMPTE *PteBase; 
  UINT64 v11; 
  char *v12; 
  UINT64 v13; 
  __int64 v14; 
  char v15; 
  INT64 v16; 
  unsigned __int64 *v17; 
  INT64 v18; 
  __int64 v19; 
  unsigned __int64 v20; 
  int v21; 
  __int64 v23; 
  char WsIrql; 

  v4 = 0i64;
  if( MiGetSystemRegionType(a1) == 1 )
    SessionVm = MiGetSessionVm(v6, (INT64)v5, v7);
  else
    SessionVm = MiGetAnyMultiplexedVm(MiWorkingSetTypeSystemViews, v5);
  v9 = SessionVm;
  PteBase = MmGetPteBase();
  v11 = a1 + ((a2 + ((unsigned int)dword_140C4C9F0 >> 12) + ((dword_140C4C9F0 & 0xFFF) != 0)) << 12);
  v12 = (char *)PteBase + ((v11 >> 9) & 0x7FFFFFFFF8i64);
  v23 = qword_140C4C990;
  MiLockWorkingSetShared();
  v14 = 0i64;
  WsIrql = v15;
  if( !dword_140C4C9C8 )
    goto LABEL_16;
  do
  {
    v16 = *(_QWORD *)(v23 + 8 * v14 + 48);
    v17 = (unsigned __int64 *)&v12[8 * v14];
    if( !v4 )
      goto LABEL_8;
    if( ((unsigned __int16)v17 & 0xFFF) == 0 )
    {
      MiUnlockPageTableInternal((INT64)v9, v4);
LABEL_8:
      v4 = (UINT64)PteBase + (((unsigned __int64)v17 >> 9) & 0x7FFFFFFFF8i64);
      MiLockPageTableInternal((INT64)v9, v4, 0i64);
    }
    LODWORD(v18) = MiGetContainingPageTable((UINT64)&v12[8 * v14]);
    MiLockAndIncrementShareCount(v18);
    MiLockAndIncrementShareCount(v16);
    LODWORD(v19) = MiMakeValidPte((_XSTATE_CONFIGURATION *)&v12[8 * v14], v16, 3i64);
    v20 = v19 & 0xF0FFFFFFFFFFFFFFui64 | 0x900000000000000i64;
    LOBYTE(v21) = MiPteInShadowRange((UINT64)&v12[8 * v14]);
    if( v21 && (KeGetCurrentThread()->ApcState.Process->Flags3 & 0x1000) != 0 && (v20 & 1) != 0 )
      v20 |= 0x8000000000000000ui64;
    *v17 = v20;
    v14 = (unsigned int)(v14 + 1);
    PteBase = MmGetPteBase();
  }
  while( (unsigned int)v14 < dword_140C4C9C8 );
  if( v4 )
    MiUnlockPageTableInternal((INT64)v9, v4);
LABEL_16:
  LOBYTE(v13) = WsIrql;
  MiUnlockWorkingSetShared(v9, v13);
  return v11;
}

Referenced by:

MiFinalizeImageRetpolineState
MiReloadBootLoadedDrivers