CmpLightWeightDuplicateParentLists

INT64 __fastcall CmpLightWeightDuplicateParentLists(UINT64 a1, INT64 a2, INT64 a3){
  unsigned int v4; 
  __int64 v6; 
  int v7; 
  _DWORD *v8; 
  __int64 v9; 
  unsigned int v10; 
  int v11; 
  __int64 v13; 
  v4 = 0;
  v13 = 0xFFFFFFFFi64;
  v6 = (*(__int64(__fastcall **)(UINT64, INT64, __int64 *))(a1 + 8))(a1, a2, &v13);
  if( !v6 )
    return(unsigned int)-1073741670;
  v7 = 0;
  v8 = (_DWORD *)(a3 + 12);
  v9 = v6 - a3;
  while( 1 )
  {
    v10 = *(_DWORD *)((char *)v8 + v9 + 16);
    if( v10 == -1 )
      goto LABEL_8;
    if( !(unsigned __int8)CmpMarkEntireIndexDirty((PVOID)a1, (PVOID)v10) )
      break;
    v11 = CmpDuplicateIndex(a1, v10, (unsigned int)v7);
    *v8 = v11;
    if( v11 == -1 )
    {
      v4 = -1073741670;
      goto LABEL_12;
    }
    *(v8 - 2) = *(_DWORD *)((char *)v8 + v9 + 8);
LABEL_8:
    ++v7;
    ++v8;
    if( v7 >= 2 )
      goto LABEL_12;
  }
  v4 = -1073741443;
LABEL_12:
  (*(void(__fastcall **)(UINT64, __int64 *))(a1 + 16))(a1, &v13);
  return v4;
}

Referenced by:

CmpLightWeightCreateModificationData