docs: def apply_34_encoding(self, inbits):
          """ Takes 24 byte sequence to be represented in 3/4 encoding,
              returns 8 words suitable for writing "encoded" to an efuse block
          """
          def popcnt(b):
              """ Return number of "1" bits set in 'b' """
              return len([x for x in bin(b) if x == "1"])
  
          outbits = b""
          while len(inbits) > 0:  # process in chunks of 6 bytes
              bits = inbits[0:6]
              inbits = inbits[6:]
              xor_res = 0
              mul_res = 0
              index = 1
              for b in struct.unpack("B" * 6, bits):
                  xor_res ^= b
                  mul_res += index * popcnt(b)
                  index += 1
              outbits += bits
              outbits += struct.pack("BB", xor_res, mul_res)
          return struct.unpack("<" + "I" * (len(outbits) // 4), outbits)