It is a function that returns an array pointer. Written more explicit, here is the meaning of the various parts:
item_type (*function_name(parameters))[array bounds];
Where item_type is the type of the array items in the array pointed at.
The array pointer is a pointer to an array of unknown size, which is actually allowed by C, but not overly useful.
Overall, this function doesn't seem very useful and if you should ever need such an odd construct, you shouldn't write it as gibberish like this. Here is the equivalent form with a typedef:
typedef int* array_t[]; array_t* func();
Cdoes not mean "takes no arguments", this would be true inC++not inC.funcappears to be a reserved keyword on cdecl.org. Anyway, enteredint *(*foo())[], and it says declare foo as function returning pointer to array of pointer to int.