docs: def disassemble(bytecode):
      """
      Generator. Disassembles Java bytecode into a sequence of (offset,
      code, args) tuples
      :type bytecode: bytes
      """
  
      offset = 0
      end = len(bytecode)
  
      while offset < end:
          orig_offset = offset
  
          code = bytecode[offset]
          if not isinstance(code, int):   # Py3
              code = ord(code)
  
          offset += 1
  
          args = tuple()
          fmt = get_arg_format(code)
          if fmt:
              args, offset = fmt(bytecode, offset)
  
          yield (orig_offset, code, args)