It's probably just a simple cast like WasserEsser said. I encountered this same type of cast while trying to decompile the q_rsqrt function. You could probably recreate the same type of behaviour by using an cast, like WasserEsser suggested, but you could probably also use an union, like in this code :
float Q_rsqrt( float number )
{
union {
float f;
uint32_t i;
} conv;
float x2;
const float threehalfs = 1.5F;
x2 = number * 0.5F;
conv.f = number;
conv.i = 0x5f3759df - ( conv.i >> 1 );
conv.f = conv.f * ( threehalfs - ( x2 * conv.f * conv.f ) );
return conv.f;
}
Which then decompiles to this :
float __stdcall Q_rsqrt(float a1)
{
return (flt1Point5
- a1
* flt0Point5
* COERCE_FLOAT(0x5F3759DF - (SLODWORD(a1) >> 1))
* COERCE_FLOAT(0x5F3759DF - (SLODWORD(a1) >> 1)))
* COERCE_FLOAT(0x5F3759DF - (SLODWORD(a1) >> 1));
}