LEA (load effective address) can perform computations of the form BASE + SCALE * INDEX + OFFSET, where scale can be 1, 2, 4 or 8. This allows optimisation of multiplications and additions into a single instruction, and the compiler takes advantage of that.
So if you write:
a = 4 * b + c + 10;
It will be optimised to a single instruction like: lea 0xa(%rsi,%rdi,4),%rax
Rather than the more naive: imul $0x4,%rdi,%rax
add %rsi,%rax
add $0xa,%rax