MiReturnImageBase

void __fastcall MiReturnImageBase(__int64 a1){
  UINT64 v1; 
  _ETHREAD *CurrentThread; 
  __int128 HighVa; 
  UINT64 Bias; 

  Bias = 0i64;
  v1 = *(_QWORD *)a1;
  HighVa = 0i64;
  if( v1 != -1i64 )
  {
    if( *(_BYTE *)(a1 + 12) == 1 )
    {
      if( *(_BYTE *)(a1 + 13) == 1 )
        MiReturnSystemImageAddress((VOID *)((v1 - 0x80000000) << 16), (unsigned int)(*(_DWORD *)(a1 + 8) << 16));
    }
    else
    {
      MiGetImageBitMapInfo((_RTL_BITMAP **)*(unsigned int *)(a1 + 16), (UINT64 *)&HighVa, &Bias, 0i64);
      MiZeroCfgSystemWideBitmap(a1, Bias - ((v1 + *(unsigned int *)(a1 + 8)) << 16));
      CurrentThread = (_ETHREAD *)KeGetCurrentThread();
      --CurrentThread->Tcb.SpecialApcDisable;
      ExAcquirePushLockExclusiveEx(&stru_140C4C888, 0i64);
      if( *((_QWORD *)&HighVa + 1) )
        RtlClearBitsEx(*((_RTL_BITMAP_EX **)&HighVa + 1), v1, *(unsigned int *)(a1 + 8));
      RtlClearBitsEx((_RTL_BITMAP_EX *)HighVa, v1, *(unsigned int *)(a1 + 8));
      if( (_InterlockedExchangeAdd64(&stru_140C4C888._bf_0, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
        ExfTryToWakePushLock(&stru_140C4C888);
      KeAbPostRelease(&stru_140C4C888);
      KiLeaveGuardedRegionUnsafe((__int64)CurrentThread);
    }
  }
}

Referenced by:

MiCheckControlArea
MiFreeRelocations
MiRelocateImageAgain