LIFX LAN Protocol Using VB.Net

I am trying to decode an LIFX LAN Protocol packet in VB.Net. In my program, I use the following code to get a byte array from the received UDP packet.

Dim pdata As Byte() = subscriber.Receive(ep)

Initial Byte Array
------------------
58-00-00-54-00-00-00-00-D0-73-D5-10-17-4C-00-00-4C-49-46-58-
56-32-00-00-F0-6B-63-9D-F2-56-22-14-6B-00-00-00-00-00-00-00-
EB-45-A0-0F-00-00-00-00-46-6C-6F-6F-72-20-4C-61-6D-70-00-00-
00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-
00-00-00-00-00-00-00-00

I don’t have any issues getting fields like frame size or the frame source.

'
' Size - 16 bits or 2 bytes (0-1)
'   The size of entire message in bytes including this field
Dim size As UInt16 = BitConverter.ToUInt16(pdata, 0)

'
' Source is 32 bits or 4 bytes (4-7)
'
Dim source As UInt32 = BitConverter.ToUInt32(pdata, 4)

I even figured out how to get the protocol using the following code:

'
' Protocol 12 bits (uint16_t)
'   The protocol number must be 1024 (decimal)
'
Dim protocol As UInt16 = BitConverter.ToUInt16(pdata, 2) And ((1 << 12) - 1)

The problem is I cannot figure out how to get the origin, tagged and addressable fields from the byte array. Any help would be appreciated.

Regards,
Ultrajones