MiCloneLargeFileOnlyVad

INT64 __fastcall MiCloneLargeFileOnlyVad(INT64 a1){
  __int64 v1; 
  __int64 v2; 
  __int64 *v4; 
  INT64 *v5; 
  __int64 v6; 
  INT64 *v8; 
  _SUBSECTION *ContainingSubsection; 
  v1 = *(unsigned __int8 *)(a1 + 32);
  v2 = *(unsigned int *)(a1 + 24);
  v8 = 0i64;
  ContainingSubsection = 0i64;
  MiGetProtoPteAddress((_MMVAD *)a1, v2 | (v1 << 32), 0i64, (_SUBSECTION **)&v8);
  MiGetProtoPteAddress(
    (_MMVAD *)a1,
    *(unsigned int *)(a1 + 28) | ((unsigned __int64)*(unsigned __int8 *)(a1 + 33) << 32),
    0i64,
    &ContainingSubsection);
  v4 = v8;
  v5 = v8;
  if( (unsigned int)MiIncrementLargeSubsections(v8, *((unsigned int *)v8 + 11)) != -1 )
  {
    do
    {
      if( v5 == (INT64 *)ContainingSubsection )
        return 0i64;
      v6 = (__int64)v5;
      v5 = (INT64 *)v5[2];
    }
    while( (unsigned int)MiIncrementLargeSubsections(v5, *((unsigned int *)v5 + 11)) != -1 );
    if( v6 )
      MiDecrementLargeSubsections(v4, v6);
  }
  return 3221225626i64;
}

Referenced by:

MiAllocateChildVads