MiMapImageInSystemProcess

VOID __fastcall MiMapImageInSystemProcess(
        _CONTROL_AREA *ControlArea,
        UINT64 MapFlags,
        VOID **CapturedBase,
        UINT64 *CapturedViewSize){
  _SEGMENT *Segment; 
  _SECTION_INHERIT InheritDisposition; 
  UINT64 v8; 
  _EPROCESS *Process; 
  UINT64 v10; 
  __int64 v11; 
  __int64 v12; 
  UINT64 *CapturedViewSizea; 
  _SECTION *Section; 
  UINT64 v15[16]; 
  VOID *CapturedBasea; 

  Segment = ControlArea->Segment;
  InheritDisposition = (int)MapFlags;
  *CapturedViewSize = _InterlockedCompareExchange64(
                        (volatile signed __int64 *)&ControlArea->Segment->SizeOfSegment,
                        -1i64,
                        -1i64);
  if( (unsigned __int64)_InterlockedCompareExchange64((volatile signed __int64 *)&Segment->SizeOfSegment, -1i64, -1i64) < 0x100000000i64 )
  {
    v8 = *CapturedViewSize;
    if( *CapturedViewSize <= 0x7FFFFFFF0000i64 )
    {
      *CapturedBase = 0i64;
      CapturedBasea = 0i64;
      Process = KeGetCurrentThread()->ApcState.Process;
      memset(v15, 0i64, sizeof(v15));
      LODWORD(v10) = MiGetUserReservationHighestAddress((INT64)Process, 0i64);
      LODWORD(Section) = 1;
      LOBYTE(v15[13]) = v11;
      LODWORD(CapturedViewSizea) = 2;
      LODWORD(v15[5]) = 0x40000;
      v15[12] = (UINT64)Process;
      v15[11] = (UINT64)Process;
      MiMapViewOfImageSection(
        ControlArea,
        (_EPROCESS *)v15,
        (_EPROCESS *)CapturedBase,
        &CapturedBasea,
        (_LARGE_INTEGER *)(v11 & v12),
        CapturedViewSizea,
        Section,
        InheritDisposition,
        v15[0],
        v10,
        0x10000ui64,
        (v8 + 4095) & 0xFFFFFFFFFFFFF000ui64,
        v8);
    }
  }
}

Referenced by:

MiMapImageInSystemSpace