When disassembling ARM binaries in Ghidra, I often see these warnings:
/* WARNING: Could not recover jumptable at 0x0747c198. Too many branches */
/* WARNING: Treating indirect jump as call */
What do they mean? What's the underlying architectural concept I should learn about to understand the cause of these issues?
Here's an example from a real program, seen in Ghidra's disassembly:
if (param_2 == 0x78) {
/* WARNING: Could not recover jumptable at 0x0747c198. Too many branches */
/* WARNING: Treating indirect jump as call */
uVar3 = (*DAT_0747c19c)();
return uVar3;
}