HvpIsMetadataArrayCoherent

char __fastcall HvpIsMetadataArrayCoherent(unsigned int *a1, __int64 a2, unsigned int a3){
  __int64 v3; 
  unsigned __int64 v6; 
  __int64 v7; 
  unsigned int v8; 
  v3 = 0i64;
  v6 = 8i64 * a1[5] + 40;
  if( !a3 )
    return 1;
  while( 1 )
  {
    v7 = *(unsigned int *)(a2 + 8 * v3 + 4);
    if( !(_DWORD)v7 )
      break;
    if( (v7 & 0xFFF) != 0 )
      break;
    v8 = *(_DWORD *)(a2 + 8 * v3);
    if( (v8 & 0xFFF) != 0
      || v8 + (unsigned int)v7 < v8
      || v8 + (unsigned int)v7 > a1[4]
      || (_DWORD)v3
      && v8 <= *(_DWORD *)(a2 + 8i64 * (unsigned int)(v3 - 1)) + *(_DWORD *)(a2 + 8i64 * (unsigned int)(v3 - 1) + 4) )
    {
      break;
    }
    v6 += v7;
    if( v6 > 0xFFFFFFFF || v6 > a1[1] )
      break;
    v3 = (unsigned int)(v3 + 1);
    if( (unsigned int)v3 >= a3 )
      return 1;
  }
  return 0;
}

Referenced by:

HvpApplyIncrementalLogFile
HvpApplyLegacyLogFile