Help with a sorting algorithm

This algorithm is supposed to put an array in descending order but at some point the variable lo is reassigned to the number 2 and I have no idea why!!

public class Test{

static int data[] = {37, 11, 52, 7};

static int lo = 0;

static int hi = 3;

public static void main (String args[]){

proc(data, lo, hi);

}

public static void proc(int[] data, int lo, int hi){

if (lo < hi){

if (data [lo] < data[lo + 1]){

int t = data[lo + 1];

data[lo + 1] = data[lo];

data[lo] = t;

}

proc (data, lo + 1, hi);

if (lo == 0){

proc (data, 0, hi-1);

}

}

}

}