An indirect branch is like asking someone else for directions instead of knowing where you're going yourself. Let's say you want to go to the toy store, but you don't know where it is. So, you ask your friend to show you where it is. Your friend becomes the indirect branch because they are the ones leading you to your destination.
In computer language, an indirect branch is when a program doesn't know where to go next and needs help from another part of the program. It sends a request to another part of the program that knows where to go next, called the indirect target. This target then leads the program to where it needs to go next.
Just like asking for directions, an indirect branch can take a little longer than a direct branch (when the program knows where to go next), but it can be very useful when you don't know where you're going or need help finding your way.