wil_details_EvaluateFeatureDependencies
INT64 *__stdcall wil_details_EvaluateFeatureDependencies(){
INT64 *v0;
int v1;
int v2;
_BOOL8 v3;
INT64 *i;
INT64 *result;
INT64 *v6;
v0 = wil_details_FeatureDescriptors_SkipPadding((INT64 *)&wil_details_featureDescriptors_a);
if( v0 )
{
v1 = 0;
do
{
v2 = *(_DWORD *)*v0;
if( (v2 & 0x80u) != 0 )
{
if( (v2 & 0x60) != 0 )
LODWORD(v3) = (*(_DWORD *)*v0 & 0x60) == 64;
else
v3 = *((_BYTE *)v0 + 23) != 0;
_InterlockedXor((volatile signed __int32 *)*v0, v1 & 0xFFFFFFEF | (16 * v3) ^ *(_DWORD *)*v0 & 0x10);
}
v0 = wil_details_FeatureDescriptors_SkipPadding(v0 + 4);
}
while( v0 );
}
for( i = (INT64 *)&wil_details_featureDescriptors_a; ; i = v6 + 4 )
{
result = wil_details_FeatureDescriptors_SkipPadding(i);
v6 = result;
if( !result )
break;
wil_details_EvaluateFeatureDependencies_GetCachedFeatureEnabledState((INT32 *)*result, (INT64)result);
}
return result;
}Referenced by:
wil_InitializeFeatureStagingFromBuffers
wil_details_OnFeatureConfigurationChange