HvlpStartVirtualProcessor
INT64 __fastcall HvlpStartVirtualProcessor(INT64 a1, _OWORD *a2){
int v3;
LONGLONG *v4;
__int128 v5;
__int16 v6;
unsigned int v7;
__int128 v9[2];
v3 = a1;
memset(v9, 0, sizeof(v9));
v4 = HvlpAcquireHypercallPage((PHYSICAL_ADDRESS *)v9, 1, 0i64, 240i64);
*v4 = -1i64;
*((_DWORD *)v4 + 3) = 0;
*((_DWORD *)v4 + 2) = v3;
v4 += 2;
*(_OWORD *)v4 = *a2;
*((_OWORD *)v4 + 1) = a2[1];
*((_OWORD *)v4 + 2) = a2[2];
*((_OWORD *)v4 + 3) = a2[3];
*((_OWORD *)v4 + 4) = a2[4];
*((_OWORD *)v4 + 5) = a2[5];
*((_OWORD *)v4 + 6) = a2[6];
v4 += 16;
v5 = a2[7];
a2 += 8;
*((_OWORD *)v4 - 1) = v5;
*(_OWORD *)v4 = *a2;
*((_OWORD *)v4 + 1) = a2[1];
*((_OWORD *)v4 + 2) = a2[2];
*((_OWORD *)v4 + 3) = a2[3];
*((_OWORD *)v4 + 4) = a2[4];
*((_OWORD *)v4 + 5) = a2[5];
HvcallInitiateHypercall();
v7 = v6 != 0 ? 0xC0000001 : 0;
HvlpReleaseHypercallPage((unsigned int *)v9);
return v7;
}Referenced by:
HvlHalStartVirtualProcessor