ExpSaAllocatorOptimizeList

void __fastcall ExpSaAllocatorOptimizeList(__int64 a1){
  int v1; 
  __int64 v3; 
  _EX_SA_PAGE_GROUP_DESCRIPTOR *v4; 
  _EX_SA_PAGE_GROUP_DESCRIPTOR *v5; 
  _EX_SA_PAGE_GROUP_DESCRIPTOR *v6; 
  _EX_SA_PAGE_GROUP_DESCRIPTOR **v7; 
  _EX_SA_PAGE_GROUP_DESCRIPTOR *v8; 
  _EX_SA_PAGE_GROUP_DESCRIPTOR **v9; 
  _EX_SA_PAGE_GROUP_DESCRIPTOR **v10; 

  v1 = *(_DWORD *)(a1 + 64);
  if( (v1 & 2) != 0 )
  {
    v3 = a1 + 8;
    v4 = *(_EX_SA_PAGE_GROUP_DESCRIPTOR **)(a1 + 8);
    if( v4 != (_EX_SA_PAGE_GROUP_DESCRIPTOR *)v3 )
    {
      do
      {
        v5 = *(_EX_SA_PAGE_GROUP_DESCRIPTOR **)v4;
        if( v4[9] == 512 )
        {
          v6 = *(_EX_SA_PAGE_GROUP_DESCRIPTOR **)v4;
          if( *(_EX_SA_PAGE_GROUP_DESCRIPTOR **)(*(_QWORD *)v4 + 8i64) != v4 )
            goto LABEL_15;
          v7 = (_EX_SA_PAGE_GROUP_DESCRIPTOR **)*((_QWORD *)v4 + 1);
          if( *v7 != v4 )
            goto LABEL_15;
          *v7 = v6;
          *((_QWORD *)v6 + 1) = v7;
          ExpSaPageGroupDescriptorFree(v4);
        }
        else if( !v4[9] )
        {
          v8 = *(_EX_SA_PAGE_GROUP_DESCRIPTOR **)v4;
          v4[10] = 1;
          if( *((_EX_SA_PAGE_GROUP_DESCRIPTOR **)v8 + 1) != v4
            || (v9 = (_EX_SA_PAGE_GROUP_DESCRIPTOR **)*((_QWORD *)v4 + 1), *v9 != v4)
            || (*v9 = v8,
                *((_QWORD *)v8 + 1) = v9,
                v10 = *(_EX_SA_PAGE_GROUP_DESCRIPTOR ***)(a1 + 32),
                *v10 != (_EX_SA_PAGE_GROUP_DESCRIPTOR *)(a1 + 24)) )
          {
LABEL_15:
            __fastfail(3u);
          }
          *(_QWORD *)v4 = a1 + 24;
          *((_QWORD *)v4 + 1) = v10;
          *v10 = v4;
          *(_QWORD *)(a1 + 32) = v4;
        }
        v4 = v5;
      }
      while( v5 != (_EX_SA_PAGE_GROUP_DESCRIPTOR *)v3 );
    }
    *(_DWORD *)(a1 + 64) = v1 & 0xFFFFFFFD;
  }
}

Referenced by:

ExpSaAllocatorAllocate
ExpSaAllocatorFree