code: func Disassemble(script []byte) ([]string, error) {
  	instrs := make([]string, 0)
  
  	it := NewInstructionIterator(script)
  	for it.Next() {
  		if it.Arg() != nil && 0 < len(it.Arg()) {
  			instrs = append(instrs, fmt.Sprintf("%05x: %v 0x%x\n", it.PC(), it.Op(), it.Arg()))
  		} else {
  			instrs = append(instrs, fmt.Sprintf("%05x: %v\n", it.PC(), it.Op()))
  		}
  	}
  	if err := it.Error(); err != nil {
  		return nil, err
  	}
  	return instrs, nil
  }
docs: // Return all disassembled EVM instructions in human-readable format.