HvlpInitializeBootProcessor
NTSTATUS __stdcall HvlpInitializeBootProcessor(_LOADER_PARAMETER_BLOCK *LoaderBlock){
INT64 v1;
INT64 v2;
INT64 *v3;
__int64 v4;
struct _KPRCB *CurrentPrcb;
__int64 v7;
__int64 v9;
int v10[12];
__int128 v11;
__int64 v12;
__int64 v13;
__int64 v14;
v4 = 0i64;
if( (_BYTE)HvlHypervisorConnected )
{
CurrentPrcb = KeGetCurrentPrcb();
_InterlockedOr(v10, 0);
v13 = 0i64;
v14 = 0i64;
v12 = 0i64;
if( (HvlpFlags & 0x80000) != 0 && (HvlpFlags & 2) == 0 )
{
v7 = ((__int64(__fastcall *)(_LOADER_PARAMETER_BLOCK *, __int64, __int64 *, __int64))qword_140C00718)(
LoaderBlock,
1i64,
&v13,
4i64);
if( !v7 )
return -1073741670;
*((_QWORD *)CurrentPrcb + 4209) = v7;
}
if( (HvlpFlags & 2) == 0 && (HvlpFlags & 0x8000) != 0 )
{
v9 = ((__int64(__fastcall *)(_LOADER_PARAMETER_BLOCK *, __int64, __int64 *))qword_140C00718)(
LoaderBlock,
1i64,
&v14);
if( v9 )
*((_QWORD *)CurrentPrcb + 4247) = v9;
}
if( (HvlpRootFlags & 0x10) != 0 )
{
v11 = 0i64;
if( (int)HvlpMapStatisticsPage(2, &v11, &v12) >= 0 )
v4 = ((__int64(__fastcall *)(__int64, __int64, __int64))qword_140C00720)(v12, 1i64, 4i64);
*((_QWORD *)CurrentPrcb + 4202) = v4;
}
HvlEnlightenProcessor(0, v1, v2, v3);
}
return 0;
}Referenced by:
HvlPhase0Initialize