I'm a little bit rusty on Assembly. I want to ask you guys some questions.
mov EAX, EBX
vs
mov EAX, [EBX]
mov EAX, EBX
moves the value of EBX into EAX, while
mov EAX, [EBX]
moves the value of the address in EBX (so EBX must contain a valid address, otherwise you will get a segmentation fault) into EAX.