CmpSwapHiveStorage
INT64 __fastcall CmpSwapHiveStorage(INT64 a1, INT64 a2){
_QWORD *v4;
INT64 v5;
__int64 v6;
__int64 v7;
int v8;
__int64 *v9;
__int64 v10;
INT64 v11;
__int64 v12;
__int64 v13;
__int64 v14;
__int64 v15;
__int64 v16;
__int64 *v17;
__int64 **v18;
__int64 *v19;
_QWORD *v20;
__int64 *v21;
_QWORD *v22;
char *v23;
__int64 **v24;
__int64 v25;
__int64 v26;
__int64 v27;
__int64 v28;
INT64 result;
__int64 v30;
__int64 *v31;
__int64 **v32;
HvSwapHiveStorage(a1, a2);
v4 = (_QWORD *)(a2 + 1536);
v5 = a1 - a2;
v6 = 6i64;
do
{
v7 = *(_QWORD *)((char *)v4 + v5);
*(_QWORD *)((char *)v4 + v5) = *v4;
*v4++ = v7;
--v6;
}
while( v6 );
v8 = *(_DWORD *)(a1 + 1784);
v9 = (__int64 *)(a1 + 1888);
v10 = 64i64;
*(_DWORD *)(a1 + 1784) = *(_DWORD *)(a2 + 1784);
*(_DWORD *)(a2 + 1784) = v8;
v11 = a2 - a1;
v12 = *(_QWORD *)(a1 + 1800);
*(_QWORD *)(a1 + 1800) = *(_QWORD *)(a2 + 1800);
v13 = *(_QWORD *)(a2 + 1808);
*(_QWORD *)(a2 + 1800) = v12;
v14 = *(_QWORD *)(a1 + 1808);
*(_QWORD *)(a1 + 1808) = v13;
*(_QWORD *)(a2 + 1808) = v14;
LODWORD(v13) = *(_DWORD *)(a1 + 1864);
*(_DWORD *)(a1 + 1864) = *(_DWORD *)(a2 + 1864);
LODWORD(v14) = *(_DWORD *)(a2 + 1868);
*(_DWORD *)(a2 + 1864) = v13;
LODWORD(v13) = *(_DWORD *)(a1 + 1868);
*(_DWORD *)(a1 + 1868) = v14;
LODWORD(v14) = *(_DWORD *)(a2 + 1872);
*(_DWORD *)(a2 + 1868) = v13;
LODWORD(v13) = *(_DWORD *)(a1 + 1872);
*(_DWORD *)(a1 + 1872) = v14;
v15 = *(_QWORD *)(a2 + 1880);
*(_DWORD *)(a2 + 1872) = v13;
v16 = *(_QWORD *)(a1 + 1880);
*(_QWORD *)(a1 + 1880) = v15;
*(_QWORD *)(a2 + 1880) = v16;
do
{
v17 = (__int64 *)*v9;
v18 = &v31;
v32 = &v31;
v19 = (__int64 *)&v31;
v31 = (__int64 *)&v31;
if( v17 != v9 )
{
v31 = v17;
v32 = *(__int64 ***)((char *)v9 + v11 + v5 + 8);
v20 = v32;
v17[1] = (__int64)&v31;
*v20 = &v31;
v19 = v31;
*(__int64 *)((char *)v9 + v11 + v5 + 8) = (__int64)v9;
v18 = v32;
*v9 = (__int64)v9;
}
v21 = (__int64 *)((char *)v9 + v11);
v22 = *(_QWORD **)((char *)v9 + v11);
if( v22 != (__int64 *)((char *)v9 + v11) )
{
v23 = (char *)v9 + v11;
v24 = *(__int64 ***)((char *)v9 + v11 + 8);
*v9 = (__int64)v22;
*(_QWORD *)&v23[v5 + 8] = v24;
v22[1] = v9;
*v24 = v9;
v19 = v31;
*((_QWORD *)v23 + 1) = v21;
v18 = v32;
*v21 = (__int64)v21;
}
if( v19 != (__int64 *)&v31 )
{
*v21 = (__int64)v19;
*(__int64 *)((char *)v9 + v11 + 8) = (__int64)v18;
v19[1] = (__int64)v21;
*v18 = v21;
}
v9 += 2;
--v10;
}
while( v10 );
v25 = *(_QWORD *)(a1 + 4176);
*(_QWORD *)(a1 + 4176) = *(_QWORD *)(a2 + 4176);
v26 = *(_QWORD *)(a2 + 4184);
*(_QWORD *)(a2 + 4176) = v25;
v27 = *(_QWORD *)(a1 + 4184);
*(_QWORD *)(a1 + 4184) = v26;
*(_QWORD *)(a2 + 4184) = v27;
v28 = *(_QWORD *)(a1 + 4224);
*(_QWORD *)(a1 + 4224) = *(_QWORD *)(a2 + 4224);
*(_QWORD *)(a2 + 4224) = v28;
LODWORD(v27) = *(_DWORD *)(a1 + 4264);
*(_DWORD *)(a1 + 4264) = *(_DWORD *)(a2 + 4264);
LODWORD(v28) = *(_DWORD *)(a2 + 4268);
*(_DWORD *)(a2 + 4264) = v27;
LODWORD(v27) = *(_DWORD *)(a1 + 4268);
*(_DWORD *)(a1 + 4268) = v28;
LODWORD(v28) = *(_DWORD *)(a2 + 4792);
*(_DWORD *)(a2 + 4268) = v27;
LODWORD(v27) = *(_DWORD *)(a1 + 4792);
*(_DWORD *)(a1 + 4792) = v28;
LODWORD(v28) = *(_DWORD *)(a2 + 4796);
*(_DWORD *)(a2 + 4792) = v27;
LODWORD(v27) = *(_DWORD *)(a1 + 4796);
*(_DWORD *)(a1 + 4796) = v28;
LODWORD(v28) = *(_DWORD *)(a2 + 4800);
*(_DWORD *)(a2 + 4796) = v27;
LODWORD(v27) = *(_DWORD *)(a1 + 4800);
*(_DWORD *)(a1 + 4800) = v28;
LODWORD(v28) = *(_DWORD *)(a2 + 4804);
*(_DWORD *)(a2 + 4800) = v27;
LODWORD(v27) = *(_DWORD *)(a1 + 4804);
*(_DWORD *)(a1 + 4804) = v28;
result = *(_QWORD *)(a2 + 4832);
*(_DWORD *)(a2 + 4804) = v27;
v30 = *(_QWORD *)(a1 + 4832);
*(_QWORD *)(a1 + 4832) = result;
*(_QWORD *)(a2 + 4832) = v30;
return result;
}Referenced by:
CmpRefreshHive
CmpReorganizeHive