code: def unpack_guid(self, offset):
          
          o = self._offset + offset
  
          try:
              _bin = bytes(self._buf[o:o + 16])
          except IndexError:
              raise OverrunBufferException(o, len(self._buf))
  
          # Yeah, this is ugly
          h = [six.indexbytes(_bin, i) for i in range(len(_bin))]
          return """{:02x}{:02x}{:02x}{:02x}-{:02x}{:02x}-{:02x}{:02x}-{:02x}{:02x}-{:02x}{:02x}{:02x}{:02x}{:02x}{:02x}""".format(
              h[3], h[2], h[1], h[0],
              h[5], h[4],
              h[7], h[6],
              h[8], h[9],
              h[10], h[11], h[12], h[13], h[14], h[15])
docs: Returns a string containing a GUID starting at the relative offset.
          Arguments:
          - `offset`: The relative offset from the start of the block.
          Throws:
          - `OverrunBufferException`