gitextract_g8fg3qrk/ ├── .circleci/ │ └── config.yml ├── .dockerignore ├── .drone.yml ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── analysis-module.md │ │ ├── bug-report.md │ │ └── feature-request.md │ ├── dependabot.yml │ └── workflows/ │ ├── container.yml │ ├── pre-commit-hooks-test.yml │ └── pre-commit.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .pre-commit-hooks.yaml ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── MANIFEST.in ├── README.md ├── all_tests.sh ├── coverage_report.sh ├── docker/ │ ├── docker-entrypoint.sh │ └── sync-svm-solc-versions-with-solcx.sh ├── docker-bake.hcl ├── docker_build_and_deploy.sh ├── docs/ │ ├── Makefile │ ├── make.bat │ └── source/ │ ├── about.rst │ ├── analysis-modules.rst │ ├── conf.py │ ├── create-module.rst │ ├── index.rst │ ├── installation.rst │ ├── module-list.rst │ ├── modules.rst │ ├── mythril.analysis.module.modules.rst │ ├── mythril.analysis.module.rst │ ├── mythril.analysis.rst │ ├── mythril.concolic.rst │ ├── mythril.disassembler.rst │ ├── mythril.ethereum.interface.rpc.rst │ ├── mythril.ethereum.interface.rst │ ├── mythril.ethereum.rst │ ├── mythril.interfaces.rst │ ├── mythril.laser.ethereum.function_managers.rst │ ├── mythril.laser.ethereum.rst │ ├── mythril.laser.ethereum.state.rst │ ├── mythril.laser.ethereum.strategy.extensions.rst │ ├── mythril.laser.ethereum.strategy.rst │ ├── mythril.laser.ethereum.transaction.rst │ ├── mythril.laser.plugin.plugins.coverage.rst │ ├── mythril.laser.plugin.plugins.rst │ ├── mythril.laser.plugin.plugins.summary_backup.rst │ ├── mythril.laser.plugin.rst │ ├── mythril.laser.rst │ ├── mythril.laser.smt.rst │ ├── mythril.laser.smt.solver.rst │ ├── mythril.mythril.rst │ ├── mythril.plugin.rst │ ├── mythril.rst │ ├── mythril.solidity.rst │ ├── mythril.support.rst │ ├── security-analysis.rst │ └── tutorial.rst ├── mypy-stubs/ │ └── z3/ │ ├── __init__.pyi │ ├── z3core.pyi │ └── z3types.pyi ├── myth ├── mythril/ │ ├── __init__.py │ ├── __main__.py │ ├── __version__.py │ ├── analysis/ │ │ ├── __init__.py │ │ ├── analysis_args.py │ │ ├── call_helpers.py │ │ ├── callgraph.py │ │ ├── issue_annotation.py │ │ ├── module/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── loader.py │ │ │ ├── module_helpers.py │ │ │ ├── modules/ │ │ │ │ ├── __init__.py │ │ │ │ ├── arbitrary_jump.py │ │ │ │ ├── arbitrary_write.py │ │ │ │ ├── delegatecall.py │ │ │ │ ├── dependence_on_origin.py │ │ │ │ ├── dependence_on_predictable_vars.py │ │ │ │ ├── ether_thief.py │ │ │ │ ├── exceptions.py │ │ │ │ ├── external_calls.py │ │ │ │ ├── integer.py │ │ │ │ ├── multiple_sends.py │ │ │ │ ├── requirements_violation.py │ │ │ │ ├── state_change_external_calls.py │ │ │ │ ├── suicide.py │ │ │ │ ├── transaction_order_dependence.py │ │ │ │ ├── unchecked_retval.py │ │ │ │ ├── unexpected_ether.py │ │ │ │ └── user_assertions.py │ │ │ └── util.py │ │ ├── ops.py │ │ ├── potential_issues.py │ │ ├── report.py │ │ ├── security.py │ │ ├── solver.py │ │ ├── swc_data.py │ │ ├── symbolic.py │ │ ├── templates/ │ │ │ ├── callgraph.html │ │ │ ├── report_as_markdown.jinja2 │ │ │ └── report_as_text.jinja2 │ │ └── traceexplore.py │ ├── concolic/ │ │ ├── __init__.py │ │ ├── concolic_execution.py │ │ ├── concrete_data.py │ │ └── find_trace.py │ ├── config.ini │ ├── disassembler/ │ │ ├── __init__.py │ │ ├── asm.py │ │ └── disassembly.py │ ├── ethereum/ │ │ ├── __init__.py │ │ ├── evmcontract.py │ │ ├── interface/ │ │ │ ├── __init__.py │ │ │ └── rpc/ │ │ │ ├── __init__.py │ │ │ ├── base_client.py │ │ │ ├── client.py │ │ │ ├── constants.py │ │ │ ├── exceptions.py │ │ │ └── utils.py │ │ └── util.py │ ├── exceptions.py │ ├── interfaces/ │ │ ├── __init__.py │ │ ├── cli.py │ │ └── epic.py │ ├── laser/ │ │ ├── __init__.py │ │ ├── ethereum/ │ │ │ ├── __init__.py │ │ │ ├── call.py │ │ │ ├── cfg.py │ │ │ ├── cheat_code.py │ │ │ ├── evm_exceptions.py │ │ │ ├── function_managers/ │ │ │ │ ├── __init__.py │ │ │ │ ├── exponent_function_manager.py │ │ │ │ └── keccak_function_manager.py │ │ │ ├── instruction_data.py │ │ │ ├── instructions.py │ │ │ ├── natives.py │ │ │ ├── state/ │ │ │ │ ├── __init__.py │ │ │ │ ├── account.py │ │ │ │ ├── annotation.py │ │ │ │ ├── calldata.py │ │ │ │ ├── constraints.py │ │ │ │ ├── environment.py │ │ │ │ ├── global_state.py │ │ │ │ ├── machine_state.py │ │ │ │ ├── memory.py │ │ │ │ ├── return_data.py │ │ │ │ ├── transient_storage.py │ │ │ │ └── world_state.py │ │ │ ├── strategy/ │ │ │ │ ├── __init__.py │ │ │ │ ├── basic.py │ │ │ │ ├── beam.py │ │ │ │ ├── concolic.py │ │ │ │ ├── constraint_strategy.py │ │ │ │ └── extensions/ │ │ │ │ ├── __init__.py │ │ │ │ └── bounded_loops.py │ │ │ ├── svm.py │ │ │ ├── time_handler.py │ │ │ ├── transaction/ │ │ │ │ ├── __init__.py │ │ │ │ ├── concolic.py │ │ │ │ ├── symbolic.py │ │ │ │ └── transaction_models.py │ │ │ ├── tx_prioritiser/ │ │ │ │ ├── __init__.py │ │ │ │ └── rf_prioritiser.py │ │ │ └── util.py │ │ ├── execution_info.py │ │ ├── plugin/ │ │ │ ├── __init__.py │ │ │ ├── builder.py │ │ │ ├── interface.py │ │ │ ├── loader.py │ │ │ ├── plugins/ │ │ │ │ ├── __init__.py │ │ │ │ ├── benchmark.py │ │ │ │ ├── call_depth_limiter.py │ │ │ │ ├── coverage/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── coverage_plugin.py │ │ │ │ │ └── coverage_strategy.py │ │ │ │ ├── coverage_metrics/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── constants.py │ │ │ │ │ ├── coverage_data.py │ │ │ │ │ └── metrics_plugin.py │ │ │ │ ├── dependency_pruner.py │ │ │ │ ├── instruction_profiler.py │ │ │ │ ├── mutation_pruner.py │ │ │ │ ├── plugin_annotations.py │ │ │ │ ├── state_merge/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── check_mergeability.py │ │ │ │ │ ├── merge_states.py │ │ │ │ │ └── state_merge_plugin.py │ │ │ │ ├── summary/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── annotations.py │ │ │ │ │ ├── core.py │ │ │ │ │ └── summary.py │ │ │ │ ├── summary_backup/ │ │ │ │ │ └── __init__.py │ │ │ │ └── trace.py │ │ │ └── signals.py │ │ └── smt/ │ │ ├── __init__.py │ │ ├── array.py │ │ ├── bitvec.py │ │ ├── bitvec_helper.py │ │ ├── bool.py │ │ ├── expression.py │ │ ├── function.py │ │ ├── model.py │ │ └── solver/ │ │ ├── __init__.py │ │ ├── independence_solver.py │ │ ├── solver.py │ │ └── solver_statistics.py │ ├── mythril/ │ │ ├── __init__.py │ │ ├── mythril_analyzer.py │ │ ├── mythril_config.py │ │ └── mythril_disassembler.py │ ├── plugin/ │ │ ├── __init__.py │ │ ├── discovery.py │ │ ├── interface.py │ │ └── loader.py │ ├── solidity/ │ │ ├── __init__.py │ │ ├── features.py │ │ └── soliditycontract.py │ └── support/ │ ├── __init__.py │ ├── loader.py │ ├── lock.py │ ├── model.py │ ├── opcodes.py │ ├── signatures.py │ ├── source_support.py │ ├── start_time.py │ ├── support_args.py │ └── support_utils.py ├── pyproject.toml ├── requirements.txt ├── setup.py ├── solidity_examples/ │ ├── BECToken.sol │ ├── WalletLibrary.sol │ ├── calls.sol │ ├── etherstore.sol │ ├── exceptions.sol │ ├── hashforether.sol │ ├── killbilly.sol │ ├── origin.sol │ ├── returnvalue.sol │ ├── rubixi.sol │ ├── suicide.sol │ ├── timelock.sol │ ├── token.sol │ └── weak_random.sol ├── static/ │ ├── Ownable.html │ ├── assertions.html │ ├── mythril.html │ └── sample_report.md ├── tests/ │ ├── __init__.py │ ├── analysis/ │ │ ├── abi_decode_test.py │ │ └── arbitrary_jump_test.py │ ├── cli_tests/ │ │ └── cli_opts_test.py │ ├── cmd_line_test.py │ ├── concolic/ │ │ └── concolic_tests.py │ ├── disassembler/ │ │ ├── __init__.py │ │ ├── asm_test.py │ │ └── disassembly_test.py │ ├── disassembler_test.py │ ├── evmcontract_test.py │ ├── features_test.py │ ├── graph_test.py │ ├── instructions/ │ │ ├── __init__.py │ │ ├── basefee_test.py │ │ ├── codecopy_test.py │ │ ├── create2_test.py │ │ ├── create_test.py │ │ ├── extcodecopy_test.py │ │ ├── extcodehash_test.py │ │ ├── push_test.py │ │ ├── sar_test.py │ │ ├── shl_test.py │ │ ├── shr_test.py │ │ └── static_call_test.py │ ├── integration_tests/ │ │ ├── analysis_tests.py │ │ ├── coverage_metrics_test.py │ │ ├── old_version_test.py │ │ ├── safe_functions_test.py │ │ ├── solc_settings_test.py │ │ ├── src_mapping_test.py │ │ ├── state_merge_tests.py │ │ ├── summary_test.py │ │ ├── transient_storage_test.py │ │ ├── utils.py │ │ └── version_test.py │ ├── laser/ │ │ ├── Precompiles/ │ │ │ ├── blake2_test.py │ │ │ ├── ec_add_test.py │ │ │ ├── ecrecover_test.py │ │ │ ├── elliptic_curves_test.py │ │ │ ├── elliptic_mul_test.py │ │ │ ├── identity_test.py │ │ │ ├── mod_exp_test.py │ │ │ ├── ripemd_test.py │ │ │ └── sha256_test.py │ │ ├── __init__.py │ │ ├── evm_testsuite/ │ │ │ ├── VMTests/ │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── vmArithmeticTest/ │ │ │ │ │ ├── add0.json │ │ │ │ │ ├── add1.json │ │ │ │ │ ├── add2.json │ │ │ │ │ ├── add3.json │ │ │ │ │ ├── add4.json │ │ │ │ │ ├── addmod0.json │ │ │ │ │ ├── addmod1.json │ │ │ │ │ ├── addmod1_overflow2.json │ │ │ │ │ ├── addmod1_overflow3.json │ │ │ │ │ ├── addmod1_overflow4.json │ │ │ │ │ ├── addmod1_overflowDiff.json │ │ │ │ │ ├── addmod2.json │ │ │ │ │ ├── addmod2_0.json │ │ │ │ │ ├── addmod2_1.json │ │ │ │ │ ├── addmod3.json │ │ │ │ │ ├── addmod3_0.json │ │ │ │ │ ├── addmodBigIntCast.json │ │ │ │ │ ├── addmodDivByZero.json │ │ │ │ │ ├── addmodDivByZero1.json │ │ │ │ │ ├── addmodDivByZero2.json │ │ │ │ │ ├── addmodDivByZero3.json │ │ │ │ │ ├── arith1.json │ │ │ │ │ ├── div1.json │ │ │ │ │ ├── divBoostBug.json │ │ │ │ │ ├── divByNonZero0.json │ │ │ │ │ ├── divByNonZero1.json │ │ │ │ │ ├── divByNonZero2.json │ │ │ │ │ ├── divByNonZero3.json │ │ │ │ │ ├── divByZero.json │ │ │ │ │ ├── divByZero_2.json │ │ │ │ │ ├── exp0.json │ │ │ │ │ ├── exp1.json │ │ │ │ │ ├── exp2.json │ │ │ │ │ ├── exp3.json │ │ │ │ │ ├── exp4.json │ │ │ │ │ ├── exp5.json │ │ │ │ │ ├── exp6.json │ │ │ │ │ ├── exp7.json │ │ │ │ │ ├── exp8.json │ │ │ │ │ ├── expPowerOf256Of256_0.json │ │ │ │ │ ├── expPowerOf256Of256_1.json │ │ │ │ │ ├── expPowerOf256Of256_10.json │ │ │ │ │ ├── expPowerOf256Of256_11.json │ │ │ │ │ ├── expPowerOf256Of256_12.json │ │ │ │ │ ├── expPowerOf256Of256_13.json │ │ │ │ │ ├── expPowerOf256Of256_14.json │ │ │ │ │ ├── expPowerOf256Of256_15.json │ │ │ │ │ ├── expPowerOf256Of256_16.json │ │ │ │ │ ├── expPowerOf256Of256_17.json │ │ │ │ │ ├── expPowerOf256Of256_18.json │ │ │ │ │ ├── expPowerOf256Of256_19.json │ │ │ │ │ ├── expPowerOf256Of256_2.json │ │ │ │ │ ├── expPowerOf256Of256_20.json │ │ │ │ │ ├── expPowerOf256Of256_21.json │ │ │ │ │ ├── expPowerOf256Of256_22.json │ │ │ │ │ ├── expPowerOf256Of256_23.json │ │ │ │ │ ├── expPowerOf256Of256_24.json │ │ │ │ │ ├── expPowerOf256Of256_25.json │ │ │ │ │ ├── expPowerOf256Of256_26.json │ │ │ │ │ ├── expPowerOf256Of256_27.json │ │ │ │ │ ├── expPowerOf256Of256_28.json │ │ │ │ │ ├── expPowerOf256Of256_29.json │ │ │ │ │ ├── expPowerOf256Of256_3.json │ │ │ │ │ ├── expPowerOf256Of256_30.json │ │ │ │ │ ├── expPowerOf256Of256_31.json │ │ │ │ │ ├── expPowerOf256Of256_32.json │ │ │ │ │ ├── expPowerOf256Of256_33.json │ │ │ │ │ ├── expPowerOf256Of256_4.json │ │ │ │ │ ├── expPowerOf256Of256_5.json │ │ │ │ │ ├── expPowerOf256Of256_6.json │ │ │ │ │ ├── expPowerOf256Of256_7.json │ │ │ │ │ ├── expPowerOf256Of256_8.json │ │ │ │ │ ├── expPowerOf256Of256_9.json │ │ │ │ │ ├── expPowerOf256_1.json │ │ │ │ │ ├── expPowerOf256_10.json │ │ │ │ │ ├── expPowerOf256_11.json │ │ │ │ │ ├── expPowerOf256_12.json │ │ │ │ │ ├── expPowerOf256_13.json │ │ │ │ │ ├── expPowerOf256_14.json │ │ │ │ │ ├── expPowerOf256_15.json │ │ │ │ │ ├── expPowerOf256_16.json │ │ │ │ │ ├── expPowerOf256_17.json │ │ │ │ │ ├── expPowerOf256_18.json │ │ │ │ │ ├── expPowerOf256_19.json │ │ │ │ │ ├── expPowerOf256_2.json │ │ │ │ │ ├── expPowerOf256_20.json │ │ │ │ │ ├── expPowerOf256_21.json │ │ │ │ │ ├── expPowerOf256_22.json │ │ │ │ │ ├── expPowerOf256_23.json │ │ │ │ │ ├── expPowerOf256_24.json │ │ │ │ │ ├── expPowerOf256_25.json │ │ │ │ │ ├── expPowerOf256_26.json │ │ │ │ │ ├── expPowerOf256_27.json │ │ │ │ │ ├── expPowerOf256_28.json │ │ │ │ │ ├── expPowerOf256_29.json │ │ │ │ │ ├── expPowerOf256_3.json │ │ │ │ │ ├── expPowerOf256_30.json │ │ │ │ │ ├── expPowerOf256_31.json │ │ │ │ │ ├── expPowerOf256_32.json │ │ │ │ │ ├── expPowerOf256_33.json │ │ │ │ │ ├── expPowerOf256_4.json │ │ │ │ │ ├── expPowerOf256_5.json │ │ │ │ │ ├── expPowerOf256_6.json │ │ │ │ │ ├── expPowerOf256_7.json │ │ │ │ │ ├── expPowerOf256_8.json │ │ │ │ │ ├── expPowerOf256_9.json │ │ │ │ │ ├── expPowerOf2_128.json │ │ │ │ │ ├── expPowerOf2_16.json │ │ │ │ │ ├── expPowerOf2_2.json │ │ │ │ │ ├── expPowerOf2_256.json │ │ │ │ │ ├── expPowerOf2_32.json │ │ │ │ │ ├── expPowerOf2_4.json │ │ │ │ │ ├── expPowerOf2_64.json │ │ │ │ │ ├── expPowerOf2_8.json │ │ │ │ │ ├── expXY.json │ │ │ │ │ ├── expXY_success.json │ │ │ │ │ ├── fibbonacci_unrolled.json │ │ │ │ │ ├── mod0.json │ │ │ │ │ ├── mod1.json │ │ │ │ │ ├── mod2.json │ │ │ │ │ ├── mod3.json │ │ │ │ │ ├── mod4.json │ │ │ │ │ ├── modByZero.json │ │ │ │ │ ├── mul0.json │ │ │ │ │ ├── mul1.json │ │ │ │ │ ├── mul2.json │ │ │ │ │ ├── mul3.json │ │ │ │ │ ├── mul4.json │ │ │ │ │ ├── mul5.json │ │ │ │ │ ├── mul6.json │ │ │ │ │ ├── mul7.json │ │ │ │ │ ├── mulmod0.json │ │ │ │ │ ├── mulmod1.json │ │ │ │ │ ├── mulmod1_overflow.json │ │ │ │ │ ├── mulmod1_overflow2.json │ │ │ │ │ ├── mulmod1_overflow3.json │ │ │ │ │ ├── mulmod1_overflow4.json │ │ │ │ │ ├── mulmod2.json │ │ │ │ │ ├── mulmod2_0.json │ │ │ │ │ ├── mulmod2_1.json │ │ │ │ │ ├── mulmod3.json │ │ │ │ │ ├── mulmod3_0.json │ │ │ │ │ ├── mulmod4.json │ │ │ │ │ ├── mulmoddivByZero.json │ │ │ │ │ ├── mulmoddivByZero1.json │ │ │ │ │ ├── mulmoddivByZero2.json │ │ │ │ │ ├── mulmoddivByZero3.json │ │ │ │ │ ├── not1.json │ │ │ │ │ ├── sdiv0.json │ │ │ │ │ ├── sdiv1.json │ │ │ │ │ ├── sdiv2.json │ │ │ │ │ ├── sdiv3.json │ │ │ │ │ ├── sdiv4.json │ │ │ │ │ ├── sdiv5.json │ │ │ │ │ ├── sdiv6.json │ │ │ │ │ ├── sdiv7.json │ │ │ │ │ ├── sdiv8.json │ │ │ │ │ ├── sdiv9.json │ │ │ │ │ ├── sdivByZero0.json │ │ │ │ │ ├── sdivByZero1.json │ │ │ │ │ ├── sdivByZero2.json │ │ │ │ │ ├── sdiv_dejavu.json │ │ │ │ │ ├── sdiv_i256min.json │ │ │ │ │ ├── sdiv_i256min2.json │ │ │ │ │ ├── sdiv_i256min3.json │ │ │ │ │ ├── signextendInvalidByteNumber.json │ │ │ │ │ ├── signextend_00.json │ │ │ │ │ ├── signextend_0_BigByte.json │ │ │ │ │ ├── signextend_AlmostBiggestByte.json │ │ │ │ │ ├── signextend_BigByteBigByte.json │ │ │ │ │ ├── signextend_BigBytePlus1_2.json │ │ │ │ │ ├── signextend_BigByte_0.json │ │ │ │ │ ├── signextend_BitIsNotSet.json │ │ │ │ │ ├── signextend_BitIsNotSetInHigherByte.json │ │ │ │ │ ├── signextend_BitIsSetInHigherByte.json │ │ │ │ │ ├── signextend_Overflow_dj42.json │ │ │ │ │ ├── signextend_bigBytePlus1.json │ │ │ │ │ ├── signextend_bitIsSet.json │ │ │ │ │ ├── smod0.json │ │ │ │ │ ├── smod1.json │ │ │ │ │ ├── smod2.json │ │ │ │ │ ├── smod3.json │ │ │ │ │ ├── smod4.json │ │ │ │ │ ├── smod5.json │ │ │ │ │ ├── smod6.json │ │ │ │ │ ├── smod7.json │ │ │ │ │ ├── smod8_byZero.json │ │ │ │ │ ├── smod_i256min1.json │ │ │ │ │ ├── smod_i256min2.json │ │ │ │ │ ├── stop.json │ │ │ │ │ ├── sub0.json │ │ │ │ │ ├── sub1.json │ │ │ │ │ ├── sub2.json │ │ │ │ │ ├── sub3.json │ │ │ │ │ └── sub4.json │ │ │ │ ├── vmBitwiseLogicOperation/ │ │ │ │ │ ├── and0.json │ │ │ │ │ ├── and1.json │ │ │ │ │ ├── and2.json │ │ │ │ │ ├── and3.json │ │ │ │ │ ├── and4.json │ │ │ │ │ ├── and5.json │ │ │ │ │ ├── byte0.json │ │ │ │ │ ├── byte1.json │ │ │ │ │ ├── byte10.json │ │ │ │ │ ├── byte11.json │ │ │ │ │ ├── byte2.json │ │ │ │ │ ├── byte3.json │ │ │ │ │ ├── byte4.json │ │ │ │ │ ├── byte5.json │ │ │ │ │ ├── byte6.json │ │ │ │ │ ├── byte7.json │ │ │ │ │ ├── byte8.json │ │ │ │ │ ├── byte9.json │ │ │ │ │ ├── eq0.json │ │ │ │ │ ├── eq1.json │ │ │ │ │ ├── eq2.json │ │ │ │ │ ├── gt0.json │ │ │ │ │ ├── gt1.json │ │ │ │ │ ├── gt2.json │ │ │ │ │ ├── gt3.json │ │ │ │ │ ├── iszeo2.json │ │ │ │ │ ├── iszero0.json │ │ │ │ │ ├── iszero1.json │ │ │ │ │ ├── lt0.json │ │ │ │ │ ├── lt1.json │ │ │ │ │ ├── lt2.json │ │ │ │ │ ├── lt3.json │ │ │ │ │ ├── not0.json │ │ │ │ │ ├── not1.json │ │ │ │ │ ├── not2.json │ │ │ │ │ ├── not3.json │ │ │ │ │ ├── not4.json │ │ │ │ │ ├── not5.json │ │ │ │ │ ├── or0.json │ │ │ │ │ ├── or1.json │ │ │ │ │ ├── or2.json │ │ │ │ │ ├── or3.json │ │ │ │ │ ├── or4.json │ │ │ │ │ ├── or5.json │ │ │ │ │ ├── sgt0.json │ │ │ │ │ ├── sgt1.json │ │ │ │ │ ├── sgt2.json │ │ │ │ │ ├── sgt3.json │ │ │ │ │ ├── sgt4.json │ │ │ │ │ ├── slt0.json │ │ │ │ │ ├── slt1.json │ │ │ │ │ ├── slt2.json │ │ │ │ │ ├── slt3.json │ │ │ │ │ ├── slt4.json │ │ │ │ │ ├── xor0.json │ │ │ │ │ ├── xor1.json │ │ │ │ │ ├── xor2.json │ │ │ │ │ ├── xor3.json │ │ │ │ │ ├── xor4.json │ │ │ │ │ └── xor5.json │ │ │ │ ├── vmEnvironmentalInfo/ │ │ │ │ │ ├── address0.json │ │ │ │ │ ├── address1.json │ │ │ │ │ ├── calldatacopy0.json │ │ │ │ │ ├── calldatacopy0_return.json │ │ │ │ │ ├── calldatacopy1.json │ │ │ │ │ ├── calldatacopy1_return.json │ │ │ │ │ ├── calldatacopy2.json │ │ │ │ │ ├── calldatacopy2_return.json │ │ │ │ │ ├── calldatacopyUnderFlowerror.json │ │ │ │ │ ├── calldatacopyZeroMemExpansion.json │ │ │ │ │ ├── calldatacopyZeroMemExpansion_return.json │ │ │ │ │ ├── calldatacopy_DataIndexTooHigh.json │ │ │ │ │ ├── calldatacopy_DataIndexTooHigh2.json │ │ │ │ │ ├── calldatacopy_DataIndexTooHigh2_return.json │ │ │ │ │ ├── calldatacopy_DataIndexTooHigh_return.json │ │ │ │ │ ├── calldatacopy_sec.json │ │ │ │ │ ├── calldataload0.json │ │ │ │ │ ├── calldataload1.json │ │ │ │ │ ├── calldataload2.json │ │ │ │ │ ├── calldataloadSizeTooHigh.json │ │ │ │ │ ├── calldataloadSizeTooHighPartial.json │ │ │ │ │ ├── calldataload_BigOffset.json │ │ │ │ │ ├── calldatasize0.json │ │ │ │ │ ├── calldatasize1.json │ │ │ │ │ ├── calldatasize2.json │ │ │ │ │ ├── caller.json │ │ │ │ │ ├── callvalue.json │ │ │ │ │ ├── codecopy0.json │ │ │ │ │ ├── codecopyZeroMemExpansion.json │ │ │ │ │ ├── codecopy_DataIndexTooHigh.json │ │ │ │ │ ├── codesize.json │ │ │ │ │ ├── gasprice.json │ │ │ │ │ └── origin.json │ │ │ │ ├── vmIOandFlowOperations/ │ │ │ │ │ ├── BlockNumberDynamicJump0_AfterJumpdest.json │ │ │ │ │ ├── BlockNumberDynamicJump0_AfterJumpdest3.json │ │ │ │ │ ├── BlockNumberDynamicJump0_foreverOutOfGas.json │ │ │ │ │ ├── BlockNumberDynamicJump0_jumpdest0.json │ │ │ │ │ ├── BlockNumberDynamicJump0_jumpdest2.json │ │ │ │ │ ├── BlockNumberDynamicJump0_withoutJumpdest.json │ │ │ │ │ ├── BlockNumberDynamicJump1.json │ │ │ │ │ ├── BlockNumberDynamicJumpInsidePushWithJumpDest.json │ │ │ │ │ ├── BlockNumberDynamicJumpInsidePushWithoutJumpDest.json │ │ │ │ │ ├── BlockNumberDynamicJumpi0.json │ │ │ │ │ ├── BlockNumberDynamicJumpi1.json │ │ │ │ │ ├── BlockNumberDynamicJumpi1_jumpdest.json │ │ │ │ │ ├── BlockNumberDynamicJumpiAfterStop.json │ │ │ │ │ ├── BlockNumberDynamicJumpiOutsideBoundary.json │ │ │ │ │ ├── BlockNumberDynamicJumpifInsidePushWithJumpDest.json │ │ │ │ │ ├── BlockNumberDynamicJumpifInsidePushWithoutJumpDest.json │ │ │ │ │ ├── DyanmicJump0_outOfBoundary.json │ │ │ │ │ ├── DynamicJump0_AfterJumpdest.json │ │ │ │ │ ├── DynamicJump0_AfterJumpdest3.json │ │ │ │ │ ├── DynamicJump0_foreverOutOfGas.json │ │ │ │ │ ├── DynamicJump0_jumpdest0.json │ │ │ │ │ ├── DynamicJump0_jumpdest2.json │ │ │ │ │ ├── DynamicJump0_withoutJumpdest.json │ │ │ │ │ ├── DynamicJump1.json │ │ │ │ │ ├── DynamicJumpAfterStop.json │ │ │ │ │ ├── DynamicJumpInsidePushWithJumpDest.json │ │ │ │ │ ├── DynamicJumpInsidePushWithoutJumpDest.json │ │ │ │ │ ├── DynamicJumpJD_DependsOnJumps0.json │ │ │ │ │ ├── DynamicJumpJD_DependsOnJumps1.json │ │ │ │ │ ├── DynamicJumpPathologicalTest0.json │ │ │ │ │ ├── DynamicJumpPathologicalTest1.json │ │ │ │ │ ├── DynamicJumpPathologicalTest2.json │ │ │ │ │ ├── DynamicJumpPathologicalTest3.json │ │ │ │ │ ├── DynamicJumpStartWithJumpDest.json │ │ │ │ │ ├── DynamicJump_value1.json │ │ │ │ │ ├── DynamicJump_value2.json │ │ │ │ │ ├── DynamicJump_value3.json │ │ │ │ │ ├── DynamicJump_valueUnderflow.json │ │ │ │ │ ├── DynamicJumpi0.json │ │ │ │ │ ├── DynamicJumpi1.json │ │ │ │ │ ├── DynamicJumpi1_jumpdest.json │ │ │ │ │ ├── DynamicJumpiAfterStop.json │ │ │ │ │ ├── DynamicJumpiOutsideBoundary.json │ │ │ │ │ ├── DynamicJumpifInsidePushWithJumpDest.json │ │ │ │ │ ├── DynamicJumpifInsidePushWithoutJumpDest.json │ │ │ │ │ ├── JDfromStorageDynamicJump0_AfterJumpdest.json │ │ │ │ │ ├── JDfromStorageDynamicJump0_AfterJumpdest3.json │ │ │ │ │ ├── JDfromStorageDynamicJump0_foreverOutOfGas.json │ │ │ │ │ ├── JDfromStorageDynamicJump0_jumpdest0.json │ │ │ │ │ ├── JDfromStorageDynamicJump0_jumpdest2.json │ │ │ │ │ ├── JDfromStorageDynamicJump0_withoutJumpdest.json │ │ │ │ │ ├── JDfromStorageDynamicJump1.json │ │ │ │ │ ├── JDfromStorageDynamicJumpInsidePushWithJumpDest.json │ │ │ │ │ ├── JDfromStorageDynamicJumpInsidePushWithoutJumpDest.json │ │ │ │ │ ├── JDfromStorageDynamicJumpi0.json │ │ │ │ │ ├── JDfromStorageDynamicJumpi1.json │ │ │ │ │ ├── JDfromStorageDynamicJumpi1_jumpdest.json │ │ │ │ │ ├── JDfromStorageDynamicJumpiAfterStop.json │ │ │ │ │ ├── JDfromStorageDynamicJumpiOutsideBoundary.json │ │ │ │ │ ├── JDfromStorageDynamicJumpifInsidePushWithJumpDest.json │ │ │ │ │ ├── JDfromStorageDynamicJumpifInsidePushWithoutJumpDest.json │ │ │ │ │ ├── bad_indirect_jump1.json │ │ │ │ │ ├── bad_indirect_jump2.json │ │ │ │ │ ├── byte1.json │ │ │ │ │ ├── calldatacopyMemExp.json │ │ │ │ │ ├── codecopyMemExp.json │ │ │ │ │ ├── deadCode_1.json │ │ │ │ │ ├── dupAt51becameMload.json │ │ │ │ │ ├── for_loop1.json │ │ │ │ │ ├── for_loop2.json │ │ │ │ │ ├── gas0.json │ │ │ │ │ ├── gas1.json │ │ │ │ │ ├── gasOverFlow.json │ │ │ │ │ ├── indirect_jump1.json │ │ │ │ │ ├── indirect_jump2.json │ │ │ │ │ ├── indirect_jump3.json │ │ │ │ │ ├── indirect_jump4.json │ │ │ │ │ ├── jump0_AfterJumpdest.json │ │ │ │ │ ├── jump0_AfterJumpdest3.json │ │ │ │ │ ├── jump0_foreverOutOfGas.json │ │ │ │ │ ├── jump0_jumpdest0.json │ │ │ │ │ ├── jump0_jumpdest2.json │ │ │ │ │ ├── jump0_outOfBoundary.json │ │ │ │ │ ├── jump0_withoutJumpdest.json │ │ │ │ │ ├── jump1.json │ │ │ │ │ ├── jumpAfterStop.json │ │ │ │ │ ├── jumpDynamicJumpSameDest.json │ │ │ │ │ ├── jumpHigh.json │ │ │ │ │ ├── jumpInsidePushWithJumpDest.json │ │ │ │ │ ├── jumpInsidePushWithoutJumpDest.json │ │ │ │ │ ├── jumpOntoJump.json │ │ │ │ │ ├── jumpTo1InstructionafterJump.json │ │ │ │ │ ├── jumpTo1InstructionafterJump_jumpdestFirstInstruction.json │ │ │ │ │ ├── jumpTo1InstructionafterJump_noJumpDest.json │ │ │ │ │ ├── jumpToUint64maxPlus1.json │ │ │ │ │ ├── jumpToUintmaxPlus1.json │ │ │ │ │ ├── jumpdestBigList.json │ │ │ │ │ ├── jumpi0.json │ │ │ │ │ ├── jumpi1.json │ │ │ │ │ ├── jumpi1_jumpdest.json │ │ │ │ │ ├── jumpiAfterStop.json │ │ │ │ │ ├── jumpiOutsideBoundary.json │ │ │ │ │ ├── jumpiToUint64maxPlus1.json │ │ │ │ │ ├── jumpiToUintmaxPlus1.json │ │ │ │ │ ├── jumpi_at_the_end.json │ │ │ │ │ ├── jumpifInsidePushWithJumpDest.json │ │ │ │ │ ├── jumpifInsidePushWithoutJumpDest.json │ │ │ │ │ ├── kv1.json │ │ │ │ │ ├── log1MemExp.json │ │ │ │ │ ├── loop_stacklimit_1020.json │ │ │ │ │ ├── loop_stacklimit_1021.json │ │ │ │ │ ├── memory1.json │ │ │ │ │ ├── mloadError0.json │ │ │ │ │ ├── mloadError1.json │ │ │ │ │ ├── mloadMemExp.json │ │ │ │ │ ├── mloadOutOfGasError2.json │ │ │ │ │ ├── msize0.json │ │ │ │ │ ├── msize1.json │ │ │ │ │ ├── msize2.json │ │ │ │ │ ├── msize3.json │ │ │ │ │ ├── mstore0.json │ │ │ │ │ ├── mstore1.json │ │ │ │ │ ├── mstore8MemExp.json │ │ │ │ │ ├── mstore8WordToBigError.json │ │ │ │ │ ├── mstore8_0.json │ │ │ │ │ ├── mstore8_1.json │ │ │ │ │ ├── mstoreMemExp.json │ │ │ │ │ ├── mstoreWordToBigError.json │ │ │ │ │ ├── mstore_mload0.json │ │ │ │ │ ├── pc0.json │ │ │ │ │ ├── pc1.json │ │ │ │ │ ├── pop0.json │ │ │ │ │ ├── pop1.json │ │ │ │ │ ├── return1.json │ │ │ │ │ ├── return2.json │ │ │ │ │ ├── sha3MemExp.json │ │ │ │ │ ├── sstore_load_0.json │ │ │ │ │ ├── sstore_load_1.json │ │ │ │ │ ├── sstore_load_2.json │ │ │ │ │ ├── sstore_underflow.json │ │ │ │ │ ├── stack_loop.json │ │ │ │ │ ├── stackjump1.json │ │ │ │ │ ├── swapAt52becameMstore.json │ │ │ │ │ └── when.json │ │ │ │ ├── vmPushDupSwapTest/ │ │ │ │ │ ├── dup1.json │ │ │ │ │ ├── dup10.json │ │ │ │ │ ├── dup11.json │ │ │ │ │ ├── dup12.json │ │ │ │ │ ├── dup13.json │ │ │ │ │ ├── dup14.json │ │ │ │ │ ├── dup15.json │ │ │ │ │ ├── dup16.json │ │ │ │ │ ├── dup2.json │ │ │ │ │ ├── dup2error.json │ │ │ │ │ ├── dup3.json │ │ │ │ │ ├── dup4.json │ │ │ │ │ ├── dup5.json │ │ │ │ │ ├── dup6.json │ │ │ │ │ ├── dup7.json │ │ │ │ │ ├── dup8.json │ │ │ │ │ ├── dup9.json │ │ │ │ │ ├── push1.json │ │ │ │ │ ├── push10.json │ │ │ │ │ ├── push11.json │ │ │ │ │ ├── push12.json │ │ │ │ │ ├── push13.json │ │ │ │ │ ├── push14.json │ │ │ │ │ ├── push15.json │ │ │ │ │ ├── push16.json │ │ │ │ │ ├── push17.json │ │ │ │ │ ├── push18.json │ │ │ │ │ ├── push19.json │ │ │ │ │ ├── push1_missingStack.json │ │ │ │ │ ├── push2.json │ │ │ │ │ ├── push20.json │ │ │ │ │ ├── push21.json │ │ │ │ │ ├── push22.json │ │ │ │ │ ├── push23.json │ │ │ │ │ ├── push24.json │ │ │ │ │ ├── push25.json │ │ │ │ │ ├── push26.json │ │ │ │ │ ├── push27.json │ │ │ │ │ ├── push28.json │ │ │ │ │ ├── push29.json │ │ │ │ │ ├── push3.json │ │ │ │ │ ├── push30.json │ │ │ │ │ ├── push31.json │ │ │ │ │ ├── push32.json │ │ │ │ │ ├── push32AndSuicide.json │ │ │ │ │ ├── push32FillUpInputWithZerosAtTheEnd.json │ │ │ │ │ ├── push32Undefined.json │ │ │ │ │ ├── push32Undefined2.json │ │ │ │ │ ├── push32Undefined3.json │ │ │ │ │ ├── push33.json │ │ │ │ │ ├── push4.json │ │ │ │ │ ├── push5.json │ │ │ │ │ ├── push6.json │ │ │ │ │ ├── push7.json │ │ │ │ │ ├── push8.json │ │ │ │ │ ├── push9.json │ │ │ │ │ ├── swap1.json │ │ │ │ │ ├── swap10.json │ │ │ │ │ ├── swap11.json │ │ │ │ │ ├── swap12.json │ │ │ │ │ ├── swap13.json │ │ │ │ │ ├── swap14.json │ │ │ │ │ ├── swap15.json │ │ │ │ │ ├── swap16.json │ │ │ │ │ ├── swap2.json │ │ │ │ │ ├── swap2error.json │ │ │ │ │ ├── swap3.json │ │ │ │ │ ├── swap4.json │ │ │ │ │ ├── swap5.json │ │ │ │ │ ├── swap6.json │ │ │ │ │ ├── swap7.json │ │ │ │ │ ├── swap8.json │ │ │ │ │ ├── swap9.json │ │ │ │ │ └── swapjump1.json │ │ │ │ ├── vmRandomTest/ │ │ │ │ │ ├── 201503102320PYTHON.json │ │ │ │ │ ├── 201503110206PYTHON.json │ │ │ │ │ ├── 201503110219PYTHON.json │ │ │ │ │ ├── 201503110346PYTHON_PUSH24.json │ │ │ │ │ ├── 201503111844PYTHON.json │ │ │ │ │ └── 201503112218PYTHON.json │ │ │ │ ├── vmSha3Test/ │ │ │ │ │ ├── sha3_0.json │ │ │ │ │ ├── sha3_1.json │ │ │ │ │ ├── sha3_2.json │ │ │ │ │ ├── sha3_3oog.json │ │ │ │ │ ├── sha3_4oog.json │ │ │ │ │ ├── sha3_5oog.json │ │ │ │ │ ├── sha3_6oog.json │ │ │ │ │ ├── sha3_bigOffset2.json │ │ │ │ │ ├── sha3_bigOffsetoog.json │ │ │ │ │ ├── sha3_bigSizeoog.json │ │ │ │ │ ├── sha3_memSizeNoQuadraticCost31.json │ │ │ │ │ ├── sha3_memSizeQuadraticCost32.json │ │ │ │ │ ├── sha3_memSizeQuadraticCost32_zeroSize.json │ │ │ │ │ ├── sha3_memSizeQuadraticCost33.json │ │ │ │ │ ├── sha3_memSizeQuadraticCost63.json │ │ │ │ │ ├── sha3_memSizeQuadraticCost64.json │ │ │ │ │ ├── sha3_memSizeQuadraticCost64_2.json │ │ │ │ │ └── sha3_memSizeQuadraticCost65.json │ │ │ │ ├── vmSystemOperations/ │ │ │ │ │ ├── TestNameRegistrator.json │ │ │ │ │ ├── return0.json │ │ │ │ │ ├── return1.json │ │ │ │ │ ├── return2.json │ │ │ │ │ ├── suicide0.json │ │ │ │ │ ├── suicideNotExistingAccount.json │ │ │ │ │ └── suicideSendEtherToMe.json │ │ │ │ └── vmTests/ │ │ │ │ └── suicide.json │ │ │ └── evm_test.py │ │ ├── keccak_tests.py │ │ ├── smt/ │ │ │ ├── __init__.py │ │ │ ├── independece_solver_test.py │ │ │ └── model_test.py │ │ ├── state/ │ │ │ ├── __init__.py │ │ │ ├── calldata_test.py │ │ │ ├── mstack_test.py │ │ │ ├── mstate_test.py │ │ │ ├── storage_test.py │ │ │ └── world_state_account_exist_load_test.py │ │ ├── strategy/ │ │ │ ├── beam_test.py │ │ │ └── loop_bound_test.py │ │ ├── transaction/ │ │ │ ├── __init__.py │ │ │ ├── create_transaction_test.py │ │ │ └── symbolic_test.py │ │ ├── transaction_test.py │ │ └── tx_prioritisation_test.py │ ├── mythril/ │ │ ├── mythril_analyzer_test.py │ │ ├── mythril_config_test.py │ │ └── mythril_disassembler_test.py │ ├── plugin/ │ │ ├── interface_test.py │ │ └── loader_test.py │ ├── pre-commit-hooks/ │ │ ├── Counter.sol │ │ └── test.sh │ ├── rpc_test.py │ ├── solidity_contract_test.py │ ├── statespace_test.py │ ├── testdata/ │ │ ├── __init__.py │ │ ├── compile.py │ │ ├── concolic_io/ │ │ │ ├── multi_contract_example.sol │ │ │ ├── multi_contract_example_input.json │ │ │ ├── multiple_example.sol │ │ │ ├── multiple_example_input.json │ │ │ ├── simple_example.sol │ │ │ ├── simple_example_input.json │ │ │ ├── two_contract.sol │ │ │ └── two_contract_input.json │ │ ├── input_contracts/ │ │ │ ├── SecureVault.sol │ │ │ ├── SimpleModifier.sol │ │ │ ├── WalletLibrary.sol │ │ │ ├── base_case.sol │ │ │ ├── calls.sol │ │ │ ├── complex.sol │ │ │ ├── constructor_assert.sol │ │ │ ├── destruct.sol │ │ │ ├── destruct_crlf.sol │ │ │ ├── environments.sol │ │ │ ├── ether_send.sol │ │ │ ├── exceptions.sol │ │ │ ├── exceptions_0.8.0.sol │ │ │ ├── extcall.sol │ │ │ ├── flag_array.sol │ │ │ ├── hash_test.sol │ │ │ ├── integer_edge_case.sol │ │ │ ├── kcalls.sol │ │ │ ├── large.sol │ │ │ ├── metacoin.sol │ │ │ ├── multi_contracts.sol │ │ │ ├── nonascii.sol │ │ │ ├── old_origin.sol │ │ │ ├── old_version.sol │ │ │ ├── origin.sol │ │ │ ├── overflow.sol │ │ │ ├── regression_1.sol │ │ │ ├── requirements_violation_neg.sol │ │ │ ├── requirements_violation_pos.sol │ │ │ ├── returnvalue.sol │ │ │ ├── rubixi.sol │ │ │ ├── safe_funcs.sol │ │ │ ├── simple_theft.sol │ │ │ ├── suicide.sol │ │ │ ├── symbolic_exec_bytecode.sol │ │ │ ├── theft.sol │ │ │ ├── transient.sol │ │ │ ├── transient_bug.sol │ │ │ ├── transient_bug_2.sol │ │ │ ├── transient_recursive.sol │ │ │ ├── tx.sol │ │ │ ├── underflow.sol │ │ │ ├── unexpected_ether_neg.sol │ │ │ ├── unexpected_ether_pos.sol │ │ │ ├── version_2.sol │ │ │ ├── version_3.sol │ │ │ ├── version_4.sol │ │ │ ├── version_chaos.sol │ │ │ ├── version_contract.sol │ │ │ ├── version_contract_0.7.0.sol │ │ │ ├── version_contract_0.8.0.sol │ │ │ ├── version_patch.sol │ │ │ └── weak_random.sol │ │ ├── inputs/ │ │ │ ├── calls.sol.o │ │ │ ├── coverage.sol.o │ │ │ ├── environments.sol.o │ │ │ ├── ether_send.sol.o │ │ │ ├── exceptions.sol.o │ │ │ ├── exceptions_0.8.0.sol.o │ │ │ ├── extcall.sol.o │ │ │ ├── flag_array.sol.o │ │ │ ├── kinds_of_calls.sol.o │ │ │ ├── metacoin.sol.o │ │ │ ├── multi_contracts.sol.o │ │ │ ├── nonascii.sol.o │ │ │ ├── origin.sol.o │ │ │ ├── overflow.sol.o │ │ │ ├── returnvalue.sol.o │ │ │ ├── safe_funcs.sol.o │ │ │ ├── suicide.sol.o │ │ │ ├── symbolic_exec_bytecode.sol.o │ │ │ └── underflow.sol.o │ │ ├── json_test_dir/ │ │ │ ├── PRC20.sol │ │ │ ├── dir_a/ │ │ │ │ ├── input_file.sol │ │ │ │ └── input_file_args.sol │ │ │ ├── test_file.json │ │ │ └── test_file_disable.json │ │ └── outputs_expected/ │ │ ├── calls.sol.o.easm │ │ ├── calls.sol.o.graph.html │ │ ├── environments.sol.o.easm │ │ ├── environments.sol.o.graph.html │ │ ├── ether_send.sol.o.easm │ │ ├── ether_send.sol.o.graph.html │ │ ├── exceptions.sol.o.easm │ │ ├── exceptions.sol.o.graph.html │ │ ├── kinds_of_calls.sol.o.easm │ │ ├── kinds_of_calls.sol.o.graph.html │ │ ├── metacoin.sol.o.easm │ │ ├── metacoin.sol.o.graph.html │ │ ├── multi_contracts.sol.o.easm │ │ ├── multi_contracts.sol.o.graph.html │ │ ├── nonascii.sol.o.easm │ │ ├── nonascii.sol.o.graph.html │ │ ├── origin.sol.o.easm │ │ ├── origin.sol.o.graph.html │ │ ├── overflow.sol.o.easm │ │ ├── overflow.sol.o.graph.html │ │ ├── returnvalue.sol.o.easm │ │ ├── returnvalue.sol.o.graph.html │ │ ├── suicide.sol.o.easm │ │ ├── suicide.sol.o.graph.html │ │ ├── underflow.sol.o.easm │ │ └── underflow.sol.o.graph.html │ ├── teststorage/ │ │ ├── contractstorage.fs │ │ ├── contractstorage.fs.index │ │ └── contractstorage.fs.tmp │ └── util_tests.py └── tox.ini