HvpViewMapStart

NTSTATUS __fastcall HvpViewMapStart(INT64 a1, VOID *a2, int a3, __int64 a4, int a5){
  char v5; 
  NTSTATUS result; 
  __int64 v9; 
  INT64 v10; 
  __int64 v11; 

  v5 = a5;
  *(_DWORD *)(a1 + 32) = a5;
  *(_QWORD *)(a1 + 24) = a4;
  v11 = 0i64;
  result = CmSiCreateSectionForFile((VOID **)a1, (v5 & 1) != 0 ? 5 : 23, 2 * !(v5 & 1) + 2, a4, a2);
  if( result >= 0 )
  {
    result = CmSiGetSectionLength(*(VOID **)a1, &v11);
    if( result >= 0 )
    {
      v9 = v11;
      *(_QWORD *)(a1 + 16) = v11;
      if( v9 < 4096 )
      {
        return -1073741492;
      }
      else
      {
        v10 = (unsigned int)(a3 + 4096);
        *(_QWORD *)(a1 + 8) = v10;
        result = HvpViewMapCreateViewsForRegion(a1, 4096i64, v10, 1);
        if( result >= 0 )
          return 0;
      }
    }
  }
  return result;
}

Referenced by:

HvHiveStartEmptyClone