Ti consiglio vivamente di postare anche una spiegazione di che cose deve fare il programma, e poi i commenti non fanno mai male

Poi uno dei pochi difetti del forum è che elimina l'indentazione,rendendo meno leggibile il flusso del codice.
Ti consiglio di provare a disegnare un diagramma di flusso (anche su carta), puo' esserti molto utile, così facendo sono riuscito ad interpretare interamente un sorgente asm(cpu risc di un pic) non commentato di cui sapevo solo a grandi linee il funzionamento della macchina che pilotava.
Senza mi stavo impantanando alla 3a pagina(A4) di codice, e fai conto che non sono nè un esperto ne un buon programmatore (mi reputo ancora dilettante

).