ExpSaAllocatorOptimizeList

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

Referenced by:

ExpSaAllocatorAllocate
ExpSaAllocatorFree