PspMapView

NTSTATUS __fastcall PspMapView(INT64 a1){
  KPROCESSOR_MODE v1; 
  ACCESS_MASK v2; 
  void *v4; 
  NTSTATUS result; 
  struct _DMA_ADAPTER *v6; 
  NTSTATUS v7; 
  PADAPTER_OBJECT DmaAdapter; 
  v1 = *(_BYTE *)(a1 + 52);
  v2 = *(_DWORD *)(a1 + 48);
  v4 = *(void **)(a1 + 16);
  DmaAdapter = 0i64;
  result = ObReferenceObjectByHandle(v4, v2, MmSectionObjectType, v1, (PVOID *)&DmaAdapter, 0i64);
  if( result >= 0 )
  {
    v6 = DmaAdapter;
    v7 = MmMapViewOfSection((_LOADER_PARAMETER_BLOCK *)DmaAdapter, *((_QWORD *)KeGetCurrentThread() + 23));
    if( v7 < 0 )
      HalPutDmaAdapter(v6);
    else
      *(_QWORD *)(a1 + 16) = v6;
    return v7;
  }
  return result;
}

Referenced by:

PsDispatchIumService