HalSocRequestConfigurationData
NTSTATUS __stdcall HalSocRequestConfigurationData(INT64 a1, INT64 a2, CHAR *a3){
NTSTATUS v3;
int v5;
int v6;
int v7;
int v8;
int v9;
char v10;
CHAR *p_IsPartitionCpuManager;
int v13;
int v14;
__int64 v15;
__int64 v16;
bool v17;
char v18;
bool v19;
char IsPartitionCpuManager;
INT8 IsHvPresent;
INT8 IsMicrosoftCompatibleHvLoaded;
char v23;
BOOL X2ApicPolicy;
char v25;
char v26;
__int32 v27;
__int32 v28;
__int64 v29;
v3 = 0;
IsPartitionCpuManager = 0;
v25 = 0;
IsHvPresent = 0;
IsMicrosoftCompatibleHvLoaded = 0;
v26 = 0;
v19 = 0;
v23 = 0;
X2ApicPolicy = 0;
v5 = a1 - 1;
if( v5 )
{
v6 = v5 - 1;
if( v6 )
{
v7 = v6 - 1;
if( v7 )
{
v8 = v7 - 1;
if( v8 )
{
v9 = v8 - 1;
if( v9 )
{
v13 = v9 - 1;
if( v13 )
{
v14 = v13 - 1;
if( v14 )
{
if( v14 != 1 )
{
v3 = -1073741811;
HalpTimerLastProblem = 30;
return v3;
}
IsPartitionCpuManager = HalpIsPartitionCpuManager();
p_IsPartitionCpuManager = &IsPartitionCpuManager;
}
else
{
IsHvPresent = HalpIsHvPresent();
p_IsPartitionCpuManager = &IsHvPresent;
}
}
else
{
IsMicrosoftCompatibleHvLoaded = HalpIsMicrosoftCompatibleHvLoaded();
p_IsPartitionCpuManager = &IsMicrosoftCompatibleHvLoaded;
}
}
else
{
if( !HalpIsMicrosoftCompatibleHvLoaded() || (v10 = 1, (EAX(__cpuid(1073741828, 0)) & 0x100) == 0) )
v10 = v3;
v23 = v10;
p_IsPartitionCpuManager = &v23;
}
}
else
{
X2ApicPolicy = HalpInterruptGetX2ApicPolicy();
p_IsPartitionCpuManager = (CHAR *)&X2ApicPolicy;
}
}
else
{
if( HalpIsMicrosoftCompatibleHvLoaded() )
{
v15 = __cpuid(1073741827, 0);
v29 = 0i64;
v27 = EAX(v15);
v28 = EBX(v15);
v16 = v27 & 0xE;
v17 = v16 == 14;
v19 = v16 == 14;
if( v16 == 14 )
{
if( (unsigned __int8)HalpIsPartitionCpuManager() )
{
v18 = v17;
if( (EAX(__cpuid(1073741830, 0)) & 0x200) != 0 )
v18 = v3;
v19 = v18;
}
}
}
p_IsPartitionCpuManager = (CHAR *)&v19;
}
}
else
{
p_IsPartitionCpuManager = &v26;
}
}
else
{
p_IsPartitionCpuManager = &v25;
v25 = HalpTimerPlatformSourceForced;
}
*a3 = *p_IsPartitionCpuManager;
return v3;
}Referenced by:
HalpApicSetupRegisterAccess
HalpHpetDiscover
HalpHvDiscover
HalpTimerRegisterBuiltinPlugins
HalpTscGetAttributes