По сути, у вас есть указатель функции 'fnctn', который принимает два указателя функции для своих двух параметров.Если мы разберем это постепенно, то у вас получится следующее:
Первый параметр void(*)(int*, void**)
- это указатель на функцию, возвращающий void и принимающий int * и void ** в качестве двух параметров.
Второй параметр int(*)(void**, int*)
- это указатель на функцию, возвращающий значение int и принимающий void ** и int * в качестве двух своих параметров.
Может быть, яснее будет увидеть следующее:
typedef void(*param1)(int *, void**);
typedef int(*param2)(void**, int*);
typedef void(*fnctn)(param1, param2);