HalpHvStartProcessor
INT64 __fastcall HalpHvStartProcessor(INT64 a1, INT64 a2, INT64 a3){
int v4;
int v5;
UINT16 v6;
INT64 v7;
INT64 v8;
INT64 v9;
INT64 v10;
INT64 v11;
INT64 v12;
UINT16 v13;
INT64 v14;
__int64 v15;
__int64 v16;
UINT64 v18[2];
INT64(__stdcall *v19)();
__int64 v20;
__int64 v21;
INT64 result[2];
INT64 v23[2];
INT64 v24[2];
INT64 v25[2];
INT64 v26[2];
INT64 v27[2];
INT64 v28;
__int16 v29;
INT64 v30[2];
__int16 v31;
__int64 v32;
__int16 v33;
__int64 v34;
__int64 v35;
__int64 v36;
__int64 v37;
__int64 v38;
__int64 v39;
LODWORD(v18[0]) = 0;
if( qword_140C4A200 )
{
v4 = qword_140C4A200(a1, v18);
}
else if( HalpIsXboxNanovisorPresent() )
{
LODWORD(v18[0]) = v5;
v4 = 0;
}
if( v4 >= 0 )
{
memset((INT64)result, 0i64);
v6 = *(_WORD *)(a3 + 440);
v19 = HalpLMStubForVM;
v20 = *(_QWORD *)(a3 + 120);
v21 = 2i64;
HalpHvInitSegRegister(a3 + 224, v6, (INT64)result);
HalpHvInitSegRegister(v7, *(_WORD *)(a3 + 442), (INT64)v23);
HalpHvInitSegRegister(v8, *(_WORD *)(a3 + 444), (INT64)v24);
HalpHvInitSegRegister(v9, *(_WORD *)(a3 + 446), (INT64)v25);
HalpHvInitSegRegister(v10, *(_WORD *)(a3 + 448), (INT64)v26);
HalpHvInitSegRegister(v11, *(_WORD *)(a3 + 450), (INT64)v27);
HalpHvInitSegRegister(v12, *(_WORD *)(a3 + 256), (INT64)&v28);
v13 = *(_WORD *)(a3 + 258);
v29 |= 2u;
HalpHvInitSegRegister(v14, v13, (INT64)v30);
v15 = *(_QWORD *)(a3 + 248);
v31 = *(_WORD *)(a3 + 246);
v34 = *(_QWORD *)(v16 + 8);
v33 = *(_WORD *)(v16 + 6);
v36 = *(_QWORD *)(a3 + 144);
v37 = *(_QWORD *)(a3 + 160);
v38 = *(_QWORD *)(a3 + 168);
v35 = *(_QWORD *)(a3 + 136);
v39 = *(_QWORD *)(a3 + 128);
v32 = v15;
return(unsigned int)HalpHvStartVirtualProcessor(LODWORD(v18[0]));
}
return(unsigned int)v4;
}Referenced by:
HalpInterruptStartProcessor