I used IDA Pro and got the following expression from a produced C file:
v25 = (*(int (**)(void))(v22 + 464))();
I am trying to figure out the meaning of the above expression with the following links:
http://www.unixwiz.net/techtips/reading-cdecl.html
http://www.codeproject.com/Articles/7042/How-to-interpret-complex-C-C-declarations
I start with (v22 + 464)
and then go out of the parenthesis and to the left to the following *(int (**)(void))
.
But, still can't understand. Any hints?
EDIT: I guess this expression is not a declaration but a function call.
(v22+464) is then cast to a pointer to a pointer to a function that takes void as an argument and returns an int. Then that pointer is dereference and the () operator is applied - the function is called.