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