Hay varios problemas.
- Los índices de los arreglos en C empiezan en 0, por lo que deberías trabajar con índices entre 0 y LARGOLISTA -1. El índice LARGOLISTA está fuera del rango.
- El parámetro que estás pasando, &arr[LARGOLISTA], es la dirección de memoria de la casilla de índice LARGOLISTA] de arr. O sea que estarías ordenando algo que está después del arreglo. Lo que tendrías que pasar es arr.
- Usás una diferencia de 1 entre el tamaño del arreglo y la cantidad de elementos. Tal vez hayas visto algo así, pero relaconado con strings, y es al revés, el tamaño del arreglo debe ser mayor que el largo del string. Esto es porque las bibliotecas estándar de C usan un caracter centinela, el '\0', como indicador del fin del string. Pero de todas formas esto no se aplica a los arreglos de enteros, porque en general no podemos asumir que hay un valor imposible.
- En cuanto al algoritmo OrdenarArreglo tenés que volver a revisar los valores de inicio y de control que les das a i y j teniendo en cuenta el tema mencionado más arriba del rango de los índices en C.
- Nunca se ejecuta el cuerpo del while porque como antes de empezarlo i y j son iguales, el segundo operando del and no se cumple. No es ListaEnteros[i] lo que debe ir ahí.
- Aún si se entrara al cuerpo del while, como el j-- está fuera de ese cuerpo, es posible que se cuelgue haciendo intercambios entre ListaEnteros[j] y ListaEnteros[j-1] .
Fijate si teniendo en cuenta algo de esto la ejecución del programa emipieza a tener efectos.