It is not producing working ASM code. Couldn't make it work with any gcc compiler. Needs refactoring...