HvHiveStartEmptyClone
VOID __fastcall HvHiveStartEmptyClone(INT64 a1, INT64 a2){
INT64 v3;
__int64(__fastcall *v4)(__int64, INT64, __int64);
__int64 v5;
UINT8 *v6;
char v7;
INT64 a5;
*(_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 = (UINT8 *)v4(v5, a2, 842222915i64);
*(_QWORD *)(a1 + 64) = v6;
if( v6 )
{
memmove(v6, *(UINT8 **)(v3 + 64), *(unsigned int *)(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 )
{
LODWORD(a5) = *(_DWORD *)(v3 + 248);
HvpViewMapStart(a1 + 216, *(VOID **)(a1 + 1536), 0i64, *(_QWORD *)(v3 + 240), a5);
}
}
}Referenced by:
CmpCreateEmptyHiveClone