PspValidateMitigationAuditOptions
INT64 __fastcall PspValidateMitigationAuditOptions(INT64 a1){
char *v1;
int v2;
__int64 v3;
unsigned int v4;
__int64 v5;
__int64 v6;
__int128 v7;
int v8;
__int64 v9;
char v10;
int v12[4];
__int128 v13;
__int64 v14;
int v15[3];
char v16;
int v17;
__m128i si128;
__m128i v19;
int v20;
int v21;
int v22;
v15[0] = 1;
v15[1] = 7;
v15[2] = 9;
v1 = &v16;
v2 = 11;
v3 = 4i64;
do
{
*(_DWORD *)v1 = v2++;
v1 += 4;
--v3;
}
while( v3 );
v4 = 0;
v5 = 0i64;
si128 = _mm_load_si128((const __m128i *)&_xmm);
v6 = 0i64;
v7 = *(_OWORD *)a1;
v19 = _mm_load_si128((const __m128i *)&_xmm);
v8 = 38;
v9 = *(_QWORD *)(a1 + 16);
v13 = v7;
v14 = v9;
v17 = 17;
v20 = 32;
v21 = 33;
v22 = 37;
v12[0] = 11;
do
{
v10 = (*((_QWORD *)&v13 + ((unsigned __int64)(4 * v4) >> 6)) >> ((4 * v4) & 0x3F)) & 3;
if( (unsigned int)v5 < 0x13 && v15[v5] == v4 )
{
v5 = (unsigned int)(v5 + 1);
}
else if( v10 )
{
return 3221225485i64;
}
if( (_DWORD)v6 || v12[v6] != v4 )
{
if( v10 == 3 )
return 3221225485i64;
}
else
{
v6 = 1i64;
}
++v4;
}
while( v4 < 0x26 );
v13 = v7;
v14 = v9;
while( ((*((_QWORD *)&v13 + ((unsigned __int64)(unsigned int)(4 * v8) >> 6)) >> ((4 * v8) & 0x3F)) & 3) == 0 )
{
if( (unsigned int)++v8 >= 0x30 )
return 0i64;
}
return 3221225485i64;
}Referenced by:
PspBuildCreateProcessContext
PspInitPhase0
PspReadIFEOMitigationAuditOptions