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