byteNumbers: a table containing byte numbers. Invalid byte number will be packed in an undefined manner.
startByteIndex: the zero-based index from which on data should be packed. Can be omitted in which case 0 is used
byteCount: the amount of bytes that should be packed. Can be omitted in which case 0 is used (which indicates that the maximum available bytes should be packed from the indicated startByteIndex)