HvpViewMapExtendStorage

VOID __fastcall HvpViewMapExtendStorage(INT64 a1, INT64 a2){
  INT64 v2; 
  int v4; 
  _QWORD *LastView; 
  INT64 v6; 
  INT64 v7; 
  INT64 v8; 
  v2 = (unsigned int)(a2 + 4096);
  if( *(_QWORD *)(a1 + 8) >= v2 )
    return;
  if( v2 > *(_QWORD *)(a1 + 16) )
  {
    CmSiExtendSection(*(VOID **)a1, (LARGE_INTEGER)(unsigned int)v2);
    if( v4 < 0 )
      return;
  }
  LastView = (_QWORD *)HvpViewMapGetLastView(a1);
  if( !LastView )
    goto LABEL_10;
  v6 = LastView[6];
  v7 = LastView[4];
  if( v6 >= v7 )
    goto LABEL_10;
  if( v7 > v2 )
    v7 = v2;
  if( (int)HvpViewMapMakeViewRangeValid(a1, LastView, v6, v7, 0) >= 0 )
  {
    *(_QWORD *)(a1 + 8) = v7;
LABEL_10:
    v8 = *(_QWORD *)(a1 + 8);
    if( v8 < v2 && (int)HvpViewMapCreateViewsForRegion(a1, v8, v2, 0) >= 0 )
      *(_QWORD *)(a1 + 8) = v2;
  }
}

Referenced by:

HvpAddBin
HvpPerformLogFileRecovery