In the original code that was a "uint32" and is a scalar that has to be intended as a pointer (without the &). It simply comes from a network stream and some fields are addresses, others are real scalars. It is not "pure" but it works very well with older compilers or without optimizations.
The code I posted is just a very hard work to reduce the original code maintaining its behavior; I did not look at the style.
BR,
Gianluca