static/ext/src/selection/Model.js
function(startRow, endRow) {
        var me = this,
            store = me.store,
            i,
            tmp,
            record;

        if (me.isLocked()){
            return;
        }

        if (!Ext.isNumber(startRow)) {
            startRow = store.indexOf(startRow);
        }
        if (!Ext.isNumber(endRow)) {
            endRow = store.indexOf(endRow);
        }

        // swap values
        if (startRow > endRow){
            tmp = endRow;
            endRow = startRow;
            startRow = tmp;
        }

        for (i = startRow; i <= endRow; i++) {
            record = store.getAt(i);
            if (me.isSelected(record)) {
                me.deselect(record);
            }
        }
    }
function(startRow, endRow) {
        var me = this,
            store = me.store,
            i,
            tmp,
            record;

        if (me.isLocked()){
            return;
        }

        if (!Ext.isNumber(startRow)) {
            startRow = store.indexOf(startRow);
        }
        if (!Ext.isNumber(endRow)) {
            endRow = store.indexOf(endRow);
        }

        // swap values
        if (startRow > endRow){
            tmp = endRow;
            endRow = startRow;
            startRow = tmp;
        }

        for (i = startRow; i <= endRow; i++) {
            record = store.getAt(i);
            if (me.isSelected(record)) {
                me.deselect(record);
            }
        }
    }
Deselects a range of rows if the selection model {@link #isLocked is not locked}.
@param {Ext.data.Model/Number} startRow The record or index of the first row in the range
@param {Ext.data.Model/Number} endRow The record or index of the last row in the range