With lwz r19, 4(r29) you are actually reading a word value 4 bytes after the label VC_INPUT:
The same with stw r19, 4(r23) writing 4 bytes after the address given by label VC_OUTPUT:
Maybe something is then overwritten.