RtlpFcValidateFeatureConfigurationBuffer
NTSTATUS __stdcall RtlpFcValidateFeatureConfigurationBuffer(UINT64 *a1, UINT64 a2){
NTSTATUS v3;
unsigned int *v4;
unsigned int v5;
NTSTATUS v6;
_DWORD *i;
UINT64 pullResult;
pullResult = 0i64;
if( a1 )
{
if( a2 >= 4
&& ((unsigned __int8)a1 & 3) == 0
&& RtlULongLongMult(*(unsigned int *)a1, 0xCui64, &pullResult) >= 0
&& pullResult + 4 >= pullResult
&& pullResult + 4 <= a2 )
{
v5 = *v4;
v6 = v3;
if( !*v4 )
return v3;
for( i = v4 + 1;
(!v6 || (int)RtlFcpCompareFeatureToFeature(&v4[2 * (v6 - 1) + 1 + v6 - 1], i) < 0) && (i[1] & 0x30) != 48;
i += 3 )
{
if( ++v6 >= v5 )
return v3;
}
}
return -1073741811;
}
return a2 != 0 ? 0xC000000D : 0;
}Referenced by:
CmFcManagerUpdateFeatureConfigurations