This pattern is typical for assigning a 64-bit value to a variable on a 32 bit system - you calculate each 32-bit value separately, then push them into the high and low 32 bits of the 64 bit value.
In Java, your first assignment would be
fMax=(fMax & 0xFFFFFFFF00000000) | (v12 & 0x00000000FFFFFFFF)
and the second would be
fMax=(fMax & 0x00000000FFFFFFFF) | (((long)v13<<32) & 0xFFFFFFFF00000000)
fMax is a 64 bit long here.
You can omit the
& 0xFFFFFFFF00000000 from the second expression, as you know those bits will be zero after the left shift. And you can omit the
& 0x00000000FFFFFFFF from the first expression if
v12 is an
int, since the high bits will be zero anyway in a 32 bit integer. But the java compiler will probably optimize these away anyway, and i wanted to write the statements in a way that makes clear which bits are taken from
fMax, and which from