CmpLightWeightSwapParentSubKeyList

INT64 __fastcall CmpLightWeightSwapParentSubKeyList(INT64 a1, INT64 a2, INT64 a3){
  __int64 v5; 
  INT64 v6; 
  __int64 v7; 
  int *v8; 
  int v9; 
  int v10; 
  int v12; 
  int v13; 

  v12 = -1;
  v13 = 0;
  v5 = (*(__int64(__fastcall **)(INT64, INT64, int *))(a1 + 8))(a1, a2, &v12);
  v6 = a3 - v5;
  v7 = 2i64;
  v8 = (int *)(v5 + 20);
  do
  {
    v9 = v8[2];
    v10 = *v8;
    v8[2] = *(int *)((char *)v8 + v6 - 8);
    *v8 = *(int *)((char *)v8 + v6 - 16);
    *(int *)((char *)v8 + v6 - 8) = v9;
    *(int *)((char *)v8++ + v6 - 16) = v10;
    --v7;
  }
  while( v7 );
  if( !(*(_DWORD *)(v5 + 20) + *(_DWORD *)(v5 + 24)) )
  {
    *(_WORD *)(v5 + 52) = 0;
    *(_DWORD *)(v5 + 56) = 0;
  }
  return(*(__int64(__fastcall **)(INT64, int *, int *))(a1 + 16))(a1, &v12, v8);
}

Referenced by:

CmpLightWeightCommitAddKeyUoW
CmpLightWeightCommitDeleteKeyUoW
CmpLightWeightCommitRenameKeyUoW