SMKM_STORE::SmStMapPhysicalRegion

char *__fastcall SMKM_STORE::SmStMapPhysicalRegion(
        __int64 a1,
        unsigned int a2,
        unsigned int a3,
        __int64 a4,
        char a5){
  __int64 v5; 
  __int64 v6; 
  __int64 v7; 
  __int64 v8; 
  _MDL *v9; 
  char *MappedSystemVa; 
  UINT64 DontFail; 

  v5 = *(_QWORD *)(a1 + 6216);
  v6 = a2;
  v7 = a3;
  v8 = *(_QWORD *)(v5 + 8i64 * a2);
  v9 = (_MDL *)(v8 & 0xFFFFFFFFFFFFFFF8ui64);
  if( (v8 & 3) != 0 )
  {
    MappedSystemVa = (char *)v9->MappedSystemVa;
  }
  else
  {
    LODWORD(DontFail) = a5 & 1;
    MappedSystemVa = (char *)SmFpAllocate(
                               (_SM_FORWARD_PROGRESS_CTX *)(a1 + 6608),
                               SmFpResourceMapping,
                               KeGetCurrentThread(),
                               v9,
                               DontFail);
    if( !MappedSystemVa )
      return MappedSystemVa;
  }
  *(_QWORD *)(v5 + 8 * v6) |= ((a5 & 0x10) != 0) + 1i64;
  MappedSystemVa += v7;
  return MappedSystemVa;
}

Referenced by:

No references.