I'm reverse engineering a C++ binary using IDA, and there's one function that I don't quite understand.
x = dword ptr -8 var_4 = dword ptr -4 push rbp movss rbp, rsp sub rsp, 10h movss [rbp+var_4], xmm0 mov eax, [rbp+var_4] mov [rbp+x], eax movss xmm0, [rbp+x] call _sinf leave retn
The eax register is overwritten right away, and I can't imagine that eax was loaded to pass as an argument to "sinf". What's the use of this? Or is it just a weird compiler optimization?