I'd prefer only one if, `len(data) >= 12 && binary.LittleEndian.Uint16(data[pos:pos+2]) > 0`.
That's a style comment only, I'm unable to understand the consequences of this code right now.
I'll probably take a deeper look into this later, but LGTM if @JulienSchmidt says it's ok.