HvTruncateCurrentLogFileIfRequired

VOID __stdcall HvTruncateCurrentLogFileIfRequired(_HHIVE *Hive){
  unsigned int HiveFlags; 
  __int64 CurrentLog; 
  unsigned int v3; 
  _HHIVE *v4; 
  unsigned __int64 v5; 
  INT64 v6; 
  UINT64 v7; 

  HiveFlags = Hive->HiveFlags;
  if( (HiveFlags & 1) == 0 && (HiveFlags & 0x8000) == 0 )
  {
    CurrentLog = Hive->CurrentLog;
    if( (_DWORD)CurrentLog )
    {
      if( *((_QWORD *)&Hive[1].Signature + CurrentLog) )
      {
        v3 = HvpLogTypeToLogArrayIndex((unsigned int)CurrentLog);
        v5 = *((_QWORD *)&v4[1].ViewMap.ViewTree.Min + v3);
        if( v5 > (unsigned int)HvGetEffectiveLogSizeCapForHive(v4) )
        {
          v7 = *(unsigned int *)(v6 + 176);
          if( v5 > v7 )
            CmpDoFileSetSizeEx(v6, (unsigned int)CurrentLog, v7, 0);
        }
      }
    }
  }
}

Referenced by:

CmpFlushHive