ローカルがやたら多いのは機能をうまく整理・分割できてなくて、
関数内がコボル状態だろう?