package youtube type DecipherOperation func([]byte) []byte func newSpliceFunc(pos int) DecipherOperation { return func(bs []byte) []byte { return bs[pos:] } } func newSwapFunc(arg int) DecipherOperation { return func(bs []byte) []byte { pos := arg % len(bs) bs[0], bs[pos] = bs[pos], bs[0] return bs } } func reverseFunc(bs []byte) []byte { l, r := 0, len(bs)-1 for l < r { bs[l], bs[r] = bs[r], bs[l] l++ r-- } return bs }