Die Funktion ist ja nicht dazu gedacht eine bestimmte Spalte zu sortieren (das kann _ArraySort() von Haus aus) sondern mehrstufig zu sortieren.
Also entweder von links (Index 0) oder rechts (Index Ubound(ar,2)-1) beginnend.
Um Fehleingaben abzufangen, wird jeder Wert <> 0 als: 'sortiere von rechts nach links' interpretiert.
So auch die Parametererklärung:
Zitat; optional $DIM_1ST: MainSortIndex; 1st Dim. [0] or last occurence in 2nd Dim.[all other values] (default 0)