HvlpStartVirtualProcessor
__int64 __fastcall HvlpStartVirtualProcessor(int a1, _OWORD *a2){
_DWORD *v4;
__int128 v5;
__int16 v6;
unsigned int v7;
__int128 PageInfo[2];
memset(PageInfo, 0, sizeof(PageInfo));
v4 = HvlpAcquireHypercallPage((PHYSICAL_ADDRESS *)PageInfo, 1ui64, 0i64, 0xF0ui64);
*(_QWORD *)v4 = -1i64;
v4[3] = 0;
v4[2] = a1;
v4 += 4;
*(_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 += 32;
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((_HVLP_HYPERCALL_PAGE_INFO *)PageInfo);
return v7;
}Referenced by:
HvlHalStartVirtualProcessor