Что выполняет эта операция (lea edx, ds:0[edi*4])?

Да, именно так. Пусть квадратные скобки не смущают, в ассемблере просто синтаксис такой, никаких обращений к памяти здесь нет.

0