HvHiveStartEmptyClone
VOID __stdcall HvHiveStartEmptyClone(INT64 a1, INT64 a2){
INT64 v3;
__int64(__fastcall *v4)(__int64, INT64, __int64);
__int64 v5;
VOID *v6;
char v7;
*(_QWORD *)(a1 + 8) = *(_QWORD *)(a2 + 8);
v3 = a2;
*(_QWORD *)(a1 + 16) = *(_QWORD *)(a2 + 16);
v4 = *(__int64(__fastcall **)(__int64, INT64, __int64))(a2 + 24);
*(_QWORD *)(a1 + 24) = v4;
*(_QWORD *)(a1 + 32) = *(_QWORD *)(a2 + 32);
*(_QWORD *)(a1 + 40) = *(_QWORD *)(a2 + 40);
*(_QWORD *)(a1 + 48) = *(_QWORD *)(a2 + 48);
v5 = *(unsigned int *)(a2 + 132);
LOBYTE(a2) = 1;
*(_DWORD *)(a1 + 132) = v5;
v6 = (VOID *)v4(v5, a2, 842222915i64);
*(_QWORD *)(a1 + 64) = v6;
if( v6 )
{
memmove(v6, *(const VOID **)(v3 + 64), *(_DWORD *)(a1 + 132));
*(_DWORD *)(*(_QWORD *)(a1 + 64) + 40i64) = 0;
*(_DWORD *)(*(_QWORD *)(a1 + 64) + 36i64) = -1;
v7 = *(_BYTE *)(a1 + 140);
*(_DWORD *)(a1 + 136) = *(_DWORD *)(v3 + 136);
*(_BYTE *)(a1 + 140) ^= (*(_BYTE *)(v3 + 140) ^ v7) & 1;
*(_BYTE *)(a1 + 140) ^= (*(_BYTE *)(v3 + 140) ^ *(_BYTE *)(a1 + 140)) & 2;
*(_DWORD *)(a1 + 160) = *(_DWORD *)(v3 + 160) & 0xFFFFFFEF;
*(_DWORD *)(a1 + 164) = *(_DWORD *)(v3 + 164);
*(_DWORD *)(a1 + 168) = *(_DWORD *)(v3 + 168);
*(_DWORD *)(a1 + 172) = *(_DWORD *)(v3 + 172);
*(_DWORD *)(a1 + 176) = *(_DWORD *)(v3 + 176);
*(_DWORD *)(a1 + 180) = *(_DWORD *)(v3 + 180);
*(_DWORD *)(a1 + 184) = *(_DWORD *)(v3 + 184);
*(_WORD *)(a1 + 188) = *(_WORD *)(v3 + 188);
*(_BYTE *)(a1 + 190) = *(_BYTE *)(v3 + 190);
*(_BYTE *)(a1 + 191) = *(_BYTE *)(v3 + 191);
*(_QWORD *)(a1 + 192) = *(_QWORD *)(v3 + 192);
*(_WORD *)(a1 + 200) = *(_WORD *)(v3 + 200);
*(_DWORD *)(a1 + 204) = *(_DWORD *)(v3 + 204);
*(_DWORD *)(a1 + 208) = *(_DWORD *)(v3 + 208);
*(_DWORD *)(a1 + 212) = *(_DWORD *)(v3 + 212);
if( (*(_DWORD *)(v3 + 160) & 0x20000) != 0 )
HvpViewMapStart(a1 + 216, *(VOID **)(a1 + 1536), 0, *(_QWORD *)(v3 + 240), *(_DWORD *)(v3 + 248));
}
}Referenced by:
CmpCreateEmptyHiveClone