What is argIndex supposed to be when calling this function?
Well from what i can see this code will copy a given amount of memory from the stack (depending in the argIndex parameter) and copy it into the dataArgs buffer.
After that it will call the address specified in fn and
save the return values.
Besides that it will also get the first floating point from the FPU stack and save it into floatReturnValue.
I don't think this code will make much sense on ARM though.
(Accessing global static variables is also bad for caching reasons)