'What does the following x86 assembly code with the FLDCW instruction do?

I was following this compiled code (I don't know the compiler nor having the source code).

Sub1:
mov edx,[esp+04h]
and edx,00000300h
or  edx,0000007Fh
mov [esp+06h],dx
fldcw   word ptr [esp+06h]
retn

My understanding:

Sub1(4byte param1)
edx=param1&0x00000300|0x0000007F
higher 2 bytes of param1 = lower 2 bytes of edx
fldcw ???????

fldcw loads the control word. But what is the control word of a floating-point?

The result is stored into higher 2 bytes of param1. Am I right?

What could be the purpose of this subroutin?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source