003BDCFB mov eax,dword ptr [outword]
003BDCFE mov ecx,dword ptr [out32]
003BDD01 mov edx,dword ptr [ecx+eax*4]
003BDD04 mov ecx,dword ptr [outarea]
003BDD07 shl edx,cl slightly bit puzzled, I am bitshifting by 32 bits, which effectively would clear the variable (edx) to 0x00000000, but shl actually does nothing at all. edx remains unchanged (EDX = 0xfdfdfdfd).
Just double chekcing that's the expected behaviour, or am I reading this wrong? Gonna have to change my logic :(