wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState
NTSTATUS __stdcall wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState(
INT32 *a1,
UINT64 a2,
INT64 a3){
unsigned int v3;
unsigned int v5;
INT64 *v6;
INT64 v7;
char CachedFeatureEnabledState;
bool v9;
unsigned int v10;
v3 = a2;
v5 = ((unsigned int)a2 >> 4) & 1;
if( v5 )
{
v6 = *(INT64 **)(a3 + 24);
if( v6 )
{
do
{
v7 = *v6;
if( !*v6 )
break;
if( *(_BYTE *)(v7 + 22) || *(_BYTE *)(v7 + 21) )
{
if( !v5 )
goto LABEL_12;
v9 = *(_BYTE *)(v7 + 23) == 0;
}
else
{
CachedFeatureEnabledState = wil_details_EvaluateFeatureDependencies_GetCachedFeatureEnabledState(
*(INT32 **)v7,
*v6);
if( !v5 )
goto LABEL_12;
v9 = (CachedFeatureEnabledState & 8) == 0;
}
if( v9 )
{
LABEL_12:
v5 = 0;
goto LABEL_13;
}
v5 = 1;
LABEL_13:
++v6;
}
while( v5 );
}
}
v10 = 128;
if( ((v3 >> 3) & 1) != v5 )
v10 = 136;
_InterlockedXor(a1, v10);
return v3 ^ v10;
}Referenced by:
wil_details_EvaluateFeatureDependencies_GetCachedFeatureEnabledState