To break it down, piece by piece to help you understand what it's doing:
if ((head & 0xffe00000) != 0xffe00000) return FALSE;
In the above, "&" would translate to QB64 "AND". The "0x" is basically the same as how we use "&H". The "!" Basically translates to "NOT"... FALSE is 0.
IF ((head AND &HFFE00000) <> &HFFE00000 THEN return 0. (And in QB64, we return a value in a function by assigning that function name that value and then exiting the function.)
if(!((head>>17)&3)) return FALSE;
Now, the above follows the same rules as before, with one new set of instructions to translate. head>>17 means "bit shift the value of head to the right 17 places". In QB64, we do these bit shifts with the new_SHL and _SHR keywords Cobalt added to the language for us.
https://www.qb64.org/wiki/SHRIF ( NOT ((_SHR(head, 17) AND 3)) THEN return 0
Nothing too complex in these to translate, and they make an excellent tool to showcase how similar the languages can be, once you understand the basic differences in syntax.
& is shorthand for AND
! is shorthand for NOT, and != is the same as <> (not equal)
0x is equivalent to &H
>> is equivalent to _SHR
<< is equivalent to _SHL
With the above little guidelines, I don't think anyone would have much trouble translating those statements for you. ;)