Take a look at how the call naturally happens. Even if the function is dynamically allocated, you should see a heap of steps for working out the location of the function and loading that into the registers for the call.
Wait, what exactly are you doing?
AFAIK, function calls are somewhat language specific as well as architecture, so you might need to consult instructions for the language the program was originally written in.
PS
Googling turns up resources like
this.
was put impeccably into words at DebianDay for me last Saturday, by Knut Yrvin of Trolltech - adults try something once, fail, and then are like "ffs this doesn't work". Children try, fail, and then try again, and succeed - maybe on the second, or even fifth retry. But the thing is that they keep at it and overcome the problems in the end.
-andrewdodd13