EtwpValidateFlagExtension

__int64 __fastcall EtwpValidateFlagExtension(unsigned int *a1){
  int v1; 
  unsigned __int64 v3; 
  unsigned __int16 *v4; 
  unsigned __int16 v5; 
  unsigned __int16 *v6; 
  unsigned __int16 v7; 
  __int16 v8; 
  __int64 v9; 
  v1 = a1[18];
  if( v1 >= 0 )
    return 0i64;
  if( BYTE2(v1) != 0xFF )
    return 3221225485i64;
  if( !(_WORD)v1 )
    return 3221225485i64;
  v3 = *a1;
  if( v3 < (unsigned __int64)(unsigned __int16)v1 + 4 )
    return 3221225485i64;
  v4 = (unsigned __int16 *)((char *)a1 + (unsigned __int16)v1);
  if( (((_BYTE)v1 + (_BYTE)a1) & 1) == 0 )
  {
    if( *v4 && 4 * (unsigned __int64)*v4 <= (unsigned int)v3 - (unsigned __int16)v1 )
    {
      v5 = v4[1];
      v6 = v4 + 2;
      v7 = *v4 - 1;
      v8 = 0;
      if( v5 )
      {
        while( ((unsigned __int8)v6 & 1) == 0 )
        {
          if( !v7 )
            return 3221225485i64;
          v9 = *v6;
          if( v7 < (unsigned __int16)v9 )
            return 3221225485i64;
          v7 -= v9;
          v6 += 2 * v9;
          if( (unsigned __int16)++v8 >= v5 )
            goto LABEL_14;
        }
        return 3221226181i64;
      }
LABEL_14:
      if( !v7 )
        return 0i64;
    }
    return 3221225485i64;
  }
  return 3221226181i64;
}

Referenced by:

EtwpStartLogger
EtwpUpdateTrace