Direi che già a prima vista ne hai parecchi di errori.
Mancano praticamente tutte le chiusure per ogni statement.
All'interno del primo if non stai assegnando il valore false ma lo stai comparando.
Dove hai scritto il commentp //non funziona più hai aggiunto una parentesi di troppo prima dell'isNaN.
Direi che dovresti iniziare a ripulire prima il codice.
N.B. siccome dichiari e inizializzi la variabile controllo con false ad inizio funzione, e il suo valore diventa true soltanto se tutti gli if non sono verificati, non c'è bisogno di riassegnargli ogni volta il false.