I see some errors in the programmer, are you sure this program worked once?

Code:
mov bx, word ptr [edi]
Pointers are 64-bit, bx is 16-bit