If anything the amount of extra space you're taking up in the symbol table with an additional (imported) function call and the code of the putword function, for example, absolutely trivially stupid function is far more than just integrating the bloody thing into the source. It is literally a compare with an existing variable and a conditional function call, which you can't do if you decide to pull it out separately so you have to make an extra fucking variable THAT IS ONLY EVER USED ONCE! Instead you have to go through the motions of passing parameters and register saving/restoring and all that stupid shit that compilers do when they call functions.
Why don't you refactor all the for loops out into their own function too? Or all the if statements? After all, they are "duplicated code". This is near that level of retardedness. You've also not propagated errors correctly... so it is a FAIL! http://bbs.progrider.org/prog/read/1428010887