MiCallCreateSectionFilters

NTSTATUS __fastcall MiCallCreateSectionFilters(int *a1){
  NTSTATUS result; 
  NTSTATUS v3; 
  char v4; 
  unsigned int v5; 
  int v6; 
  int v7; 
  int v8; 
  UINT64 CompressionAlignment; 
  unsigned int v10; 

  LODWORD(CompressionAlignment) = 0;
  v10 = 0;
  if( (*a1 & 1) != 0 )
    return 0;
  result = FsRtlAcquireToCreateMappedSection(
             *((_FILE_OBJECT **)a1 + 7),
             (unsigned int)a1[7],
             0i64,
             &CompressionAlignment);
  v3 = result;
  if( result >= 0 )
  {
    v4 = CompressionAlignment;
    if( (CompressionAlignment & 6) != 0 )
    {
      if( (a1[4] & 0x1000000) != 0 )
      {
        v8 = *a1 | 0x10000;
        *a1 = v8;
        if( (v4 & 4) == 0 )
        {
          v8 |= 0x20000u;
          *a1 = v8;
        }
        if( (v4 & 8) == 0 )
          *a1 = v8 | 0x40000;
      }
      else if( (CompressionAlignment & 2) != 0 )
      {
        *a1 |= 0x10000u;
      }
    }
    v5 = v10;
    if( v10 )
    {
      if( ((v10 - 1) & v10) == 0 )
      {
        *a1 |= 0x2000u;
        if( v5 < *(&stru_140C4DB30 + 984) )
          *(&stru_140C4DB30 + 984) = v5;
      }
    }
    v6 = *a1;
    if( v3 == 298 || v3 != 299 )
      v7 = v6 & 0xFFFFFF7F;
    else
      v7 = v6 | 0x80;
    *a1 = v7;
    return v3;
  }
  return result;
}

Referenced by:

MiCreateImageOrDataSection