This instruction is an indirect leap. This means that the indicated memory address is not the destination of the transition, but a pointer to the destination of the transition.
First, the instruction loads the value at the memory address:
*0x804a400(,%eax,4)
which is more clearly written as:
0x804a400 + %eax * 4 // %eax can be negative
And then set% eip to this value.
The best way to decrypt them is to use the Intel Programmer Reference. Table 2-2 in Volume 2A provides the splitting of the ModR / M byte, and in this case also the SIB byte.
source share