Currently has two bugs.
First, all functions are resolved to index 0 (currently PrintInteger)
Second, the register used for returning is immediately overwritten by the next allocated register. This means addition of function return values is a little silly.