TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

019be3d6-83d9-7110-a66c-ffe4837c3cc0

failed
Chain ID
1
Address
Block Number
Created
Thu, Jan 22, 2026 3:54 AM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Verified
Review Backing
Not yet
Best current signal
Untrusted CALL target/value reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
40939 artifact.fetch complete 1 / 3 2 months ago
40940 proxy.resolve complete 1 / 3 2 months ago
40941 tool.cast_disasm complete 1 / 3 2 months ago
40942 analysis.bundle complete 1 / 3 2 months ago
40943 capability.graph complete 1 / 3 2 months ago
40944 detector.run complete 1 / 3 2 months ago
40945 validation.fork complete 1 / 3 2 months ago
41369 report.consolidate complete 1 / 6 2 months ago
41370 tool.slither failed 2 / 2 2 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither
Status
failed slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-ftmicxlz) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-ftmicxlz) 'forge' returned non-zero exit code 1 Compiling 6 files with Solc 0.6.0 stdout: Solc 0.6.0 finished in 20.02ms Error: Compiler run failed: stderr: Error: Expected ';' but got '{' stderr: contracts/lib/TransferHelper.sol:60:31: ParserError: Expected ';' but got '{' stderr: (bool success, ) = to.call{ value: value }(""); stderr: ^ Traceback (most recent call last): File "/var/www/tripwire/.venv/bin/slither", line 10, in <module> sys.exit(main()) ~~~~^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 776, in main main_impl(all_detector_classes=detectors, all_printer_classes=printers) ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 882, in main_impl ) = process_all(filename, args, detector_classes, printer_classes) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 96, in process_all compilations = compile_all(target, **vars(args)) File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 722, in compile_all compilations.append(CryticCompile(target, **kwargs)) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 211, in __init__ self._compile(**kwargs) ~~~~~~~~~~~~~^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 633, in _compile self._platform.compile(self, **kwargs) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/foundry.py", line 102, in compile hardhat_like_parsing( ~~~~~~~~~~~~~~~~~~~~^ crytic_compile, str(self._target), build_directory, str(self._project_root) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/hardhat.py", line 52, in hardhat_like_parsing raise InvalidCompilation(txt) crytic_compile.platform.exceptions.InvalidCompilation: Compilation failed. Can you run build command? /tmp/slither-ftmicxlz/out/build-info is not a directory.
Attempts
2 / 2
Findings
0
Solc
View stderr
Traceback (most recent call last):
  File "/var/www/tripwire/worker/worker.py", line 198, in main
    payload = dispatch_job(job_type, job_id, job_meta, run_data, config, laravel_client)
  File "/var/www/tripwire/worker/worker.py", line 114, in dispatch_job
    return slither_run.run(job_id, job_meta, run_data, config, log, laravel_client)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/worker/jobs/slither_run.py", line 1084, in run
    stdout_text, stderr_text, result_json = _run_slither(
                                            ~~~~~~~~~~~~^
        workspace,
        ^^^^^^^^^^
    ...<4 lines>...
        target_path=target_path,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/var/www/tripwire/worker/jobs/slither_run.py", line 958, in _run_slither
    raise RuntimeError(f"slither failed (exit {result.returncode}): {stderr_text or stdout_text}")
RuntimeError: slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-ftmicxlz)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-ftmicxlz)
'forge' returned non-zero exit code 1
Compiling 6 files with Solc 0.6.0
stdout: Solc 0.6.0 finished in 20.02ms
Error: Compiler run failed:
stderr: Error: Expected ';' but got '{'
stderr: contracts/lib/TransferHelper.sol:60:31: ParserError: Expected ';' but got '{'
stderr:     (bool success, ) = to.call{ value: value }("");
stderr:                               ^
Traceback (most recent call last):
  File "/var/www/tripwire/.venv/bin/slither", line 10, in <module>
    sys.exit(main())
             ~~~~^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 776, in main
    main_impl(all_detector_classes=detectors, all_printer_classes=printers)
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 882, in main_impl
    ) = process_all(filename, args, detector_classes, printer_classes)
        ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 96, in process_all
    compilations = compile_all(target, **vars(args))
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 722, in compile_all
    compilations.append(CryticCompile(target, **kwargs))
                        ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 211, in __init__
    self._compile(**kwargs)
    ~~~~~~~~~~~~~^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 633, in _compile
    self._platform.compile(self, **kwargs)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/foundry.py", line 102, in compile
    hardhat_like_parsing(
    ~~~~~~~~~~~~~~~~~~~~^
        crytic_compile, str(self._target), build_directory, str(self._project_root)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/hardhat.py", line 52, in hardhat_like_parsing
    raise InvalidCompilation(txt)
crytic_compile.platform.exceptions.InvalidCompilation: Compilation failed. Can you run build command?
/tmp/slither-ftmicxlz/out/build-info is not a directory.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
0
No findings?
yes
Summary
No exploitable vulnerabilities found in first-party contracts. UniBurn’s accounting updates occur before external calls and uses checked transfer helpers; residual risk depends on the correctness of the hard‑coded snapshot values and external pool/token behavior.
View stdout
{"no_findings":true,"summary":"No exploitable vulnerabilities found in first-party contracts. UniBurn’s accounting updates occur before external calls and uses checked transfer helpers; residual risk depends on the correctness of the hard‑coded snapshot values and external pool/token behavior.","findings":[]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-aucky2lt
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019be465-b43e-7f53-9661-f34b024fa6ec
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.

Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers

thinking
**Deciding file read method**

I'm considering using shell commands like cat, rg, or sed to read the AUDIT_BUNDLE file in a read-only sandbox environment.
exec
/bin/bash -lc ls in /tmp/codex-aucky2lt succeeded in 6ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-aucky2lt succeeded in 5ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: contracts/UniBurn.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0;

import "./interfaces/IRestrictedIndexPool.sol";
import "./interfaces/IWETH.sol";
import "./lib/SafeMath.sol";
import "./lib/TransferHelper.sol";

contract UniBurn {
  using SafeMath for uint256;
  using TransferHelper for address;

  IERC20 public constant defi5LP =
    IERC20(0x8dCBa0B75c1038c4BaBBdc0Ff3bD9a8f6979Dd13);




thinking
**Auditing UniBurn redeem for reentrancy**

UniBurn’s redeem updates state before two external calls—pool exit and ETH transfer—mitigating classic reentrancy risks on the same tokens. However, reentry could allow repeated redeems using other LP tokens if the user holds them, which may be intended behavior. The pool address is constant but potentially untrusted, so its external call raises caution but likely doesn’t enable reentrancy via msg.sender.
thinking
**Identifying economic risk from fixed snapshot supply**

Redeem relies on a static snapshot of LP supply and asset balances, ignoring potential new LP tokens minted afterward. This can dilute original holders since newly minted LP tokens can redeem shares based on outdated ratios, enabling economic arbitrage though not a direct code exploit. The unrestricted burnWETH and external calls seem safe against reentrancy but the fixed snapshot approach poses a financial risk.
thinking
**Confirming economic/design risk with no critical code flaws**

No critical code vulnerabilities emerge beyond the known economic/design limitation allowing after-snapshot minted LP tokens to redeem and dilute original holders. Reentrancy risks are mitigated by state updates before external calls, and token transfers align with expected standards. Overall, findings point mainly to expected design trade-offs rather than exploitable bugs.
thinking
**Confirming no exploitable vulnerabilities**

No exploitable flaws found beyond economic trade-offs; key functions handle arithmetic safely and external calls follow secure patterns. Potential minor reverts from zero supply after full redemption are expected and harmless. Next, I'll prepare the final JSON with no findings and a summary of residual economic considerations.
exec
/bin/bash -lc 'nl -ba contracts/UniBurn.sol' in /tmp/codex-aucky2lt succeeded in 13ms:
     1	// SPDX-License-Identifier: MIT
     2	pragma solidity >=0.6.0;
     3	
     4	import "./interfaces/IRestrictedIndexPool.sol";
     5	import "./interfaces/IWETH.sol";
     6	import "./lib/SafeMath.sol";
     7	import "./lib/TransferHelper.sol";
     8	
     9	contract UniBurn {
    10	  using SafeMath for uint256;
    11	  using TransferHelper for address;
    12	
    13	  IERC20 public constant defi5LP =
    14	    IERC20(0x8dCBa0B75c1038c4BaBBdc0Ff3bD9a8f6979Dd13);
    15	  IERC20 public constant cc10LP =
    16	    IERC20(0x2701eA55b8B4f0FE46C15a0F560e9cf0C430f833);
    17	  IERC20 public constant fffLP =
    18	    IERC20(0x9A60F0A46C1485D4BDA7750AdB0dB1b17Aa48A33);
    19	  IWETH public constant weth =
    20	    IWETH(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);


thinking
**Verifying pool token burn and accounting logic**

Reviewed exitPoolTo logic in IRestrictedIndexPool; burning pool tokens matches reduced poolBalance even if exit fees reduce output tokens, so accounting remains consistent.
thinking
**Confirming no exploitable vulnerabilities**

No access control or reentrancy issues found; burnWETH and receive() pose no significant risk given design. Preparing JSON output stating no findings with a concise summary per schema.
codex
{"no_findings":true,"summary":"No exploitable vulnerabilities found in first-party contracts. UniBurn’s accounting updates occur before external calls and uses checked transfer helpers; residual risk depends on the correctness of the hard‑coded snapshot values and external pool/token behavior.","findings":[]}
tokens used
17,223
Metadata
{
    "codex": {
        "ran_at": "2026-01-22T06:33:24.771240+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 6,
        "import_count": 5,
        "first_party_contracts_count": 6
    },
    "summary": "No exploitable vulnerabilities found in first-party contracts. UniBurn\u2019s accounting updates occur before external calls and uses checked transfer helpers; residual risk depends on the correctness of the hard\u2011coded snapshot values and external pool/token behavior.",
    "raw_final": {
        "summary": "No exploitable vulnerabilities found in first-party contracts. UniBurn\u2019s accounting updates occur before external calls and uses checked transfer helpers; residual risk depends on the correctness of the hard\u2011coded snapshot values and external pool/token behavior.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
6
EXT*/BALANCE
4
Total opcodes
1573
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x00e1
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x7d88b770
00000019: GT
0000001a: PUSH2 0x007f
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0x976eb268
00000024: GT
00000025: PUSH2 0x0059
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0x976eb268
0000002f: EQ
00000030: PUSH2 0x0218
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xc1f37be3
0000003a: EQ
0000003b: PUSH2 0x022d
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xd6d8461f
00000045: EQ
00000046: PUSH2 0x0242
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf4ee798a
00000050: EQ
00000051: PUSH2 0x0257
00000054: JUMPI
00000055: PUSH2 0x00e8
00000058: JUMP
00000059: JUMPDEST
0000005a: DUP1
0000005b: PUSH4 0x7d88b770
00000060: EQ
00000061: PUSH2 0x01d9
00000064: JUMPI
00000065: DUP1
00000066: PUSH4 0x7f52c4eb
0000006b: EQ
0000006c: PUSH2 0x01ee
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0x951567da
00000076: EQ
00000077: PUSH2 0x0203
0000007a: JUMPI
0000007b: PUSH2 0x00e8
0000007e: JUMP
0000007f: JUMPDEST
00000080: DUP1
00000081: PUSH4 0x69555fb5
00000086: GT
00000087: PUSH2 0x00bb
0000008a: JUMPI
0000008b: DUP1
0000008c: PUSH4 0x69555fb5
00000091: EQ
00000092: PUSH2 0x0148
00000095: JUMPI
00000096: DUP1
00000097: PUSH4 0x6cf0ed31
0000009c: EQ
0000009d: PUSH2 0x015f
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0x74033ce6
000000a7: EQ
000000a8: PUSH2 0x01af
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0x7a02c2c7
000000b2: EQ
000000b3: PUSH2 0x01c4
000000b6: JUMPI
000000b7: PUSH2 0x00e8
000000ba: JUMP
000000bb: JUMPDEST
000000bc: DUP1
000000bd: PUSH4 0x0b56dd63
000000c2: EQ
000000c3: PUSH2 0x00ed
000000c6: JUMPI
000000c7: DUP1
000000c8: PUSH4 0x3fc8cef3
000000cd: EQ
000000ce: PUSH2 0x011e
000000d1: JUMPI
000000d2: DUP1
000000d3: PUSH4 0x5fb4ed2a
000000d8: EQ
000000d9: PUSH2 0x0133
000000dc: JUMPI
000000dd: PUSH2 0x00e8
000000e0: JUMP
000000e1: JUMPDEST
000000e2: CALLDATASIZE
000000e3: PUSH2 0x00e8
000000e6: JUMPI
000000e7: STOP
000000e8: JUMPDEST
000000e9: PUSH1 0x00
000000eb: DUP1
000000ec: REVERT
000000ed: JUMPDEST
000000ee: CALLVALUE
000000ef: DUP1
000000f0: ISZERO
000000f1: PUSH2 0x00f9
000000f4: JUMPI
000000f5: PUSH1 0x00
000000f7: DUP1
000000f8: REVERT
000000f9: JUMPDEST
000000fa: POP
000000fb: PUSH2 0x0102
000000fe: PUSH2 0x026c
00000101: JUMP
00000102: JUMPDEST
00000103: PUSH1 0x40
00000105: DUP1
00000106: MLOAD
00000107: PUSH1 0x01
00000109: PUSH1 0x01
0000010b: PUSH1 0xa0
0000010d: SHL
0000010e: SUB
0000010f: SWAP1
00000110: SWAP3
00000111: AND
00000112: DUP3
00000113: MSTORE
00000114: MLOAD
00000115: SWAP1
00000116: DUP2
00000117: SWAP1
00000118: SUB
00000119: PUSH1 0x20
0000011b: ADD
0000011c: SWAP1
0000011d: RETURN
0000011e: JUMPDEST
0000011f: CALLVALUE
00000120: DUP1
00000121: ISZERO
00000122: PUSH2 0x012a
00000125: JUMPI
00000126: PUSH1 0x00
00000128: DUP1
00000129: REVERT
0000012a: JUMPDEST
0000012b: POP
0000012c: PUSH2 0x0102
0000012f: PUSH2 0x0284
00000132: JUMP
00000133: JUMPDEST
00000134: CALLVALUE
00000135: DUP1
00000136: ISZERO
00000137: PUSH2 0x013f
0000013a: JUMPI
0000013b: PUSH1 0x00
0000013d: DUP1
0000013e: REVERT
0000013f: JUMPDEST
00000140: POP
00000141: PUSH2 0x0102
00000144: PUSH2 0x029c
00000147: JUMP
00000148: JUMPDEST
00000149: CALLVALUE
0000014a: DUP1
0000014b: ISZERO
0000014c: PUSH2 0x0154
0000014f: JUMPI
00000150: PUSH1 0x00
00000152: DUP1
00000153: REVERT
00000154: JUMPDEST
00000155: POP
00000156: PUSH2 0x015d
00000159: PUSH2 0x02b4
0000015c: JUMP
0000015d: JUMPDEST
0000015e: STOP
0000015f: JUMPDEST
00000160: CALLVALUE
00000161: DUP1
00000162: ISZERO
00000163: PUSH2 0x016b
00000166: JUMPI
00000167: PUSH1 0x00
00000169: DUP1
0000016a: REVERT
0000016b: JUMPDEST
0000016c: POP
0000016d: PUSH2 0x0174
00000170: PUSH2 0x0391
00000173: JUMP
00000174: JUMPDEST
00000175: PUSH1 0x40
00000177: DUP1
00000178: MLOAD
00000179: PUSH1 0x01
0000017b: PUSH1 0x01
0000017d: PUSH1 0x60
0000017f: SHL
00000180: SUB
00000181: SWAP1
00000182: SWAP5
00000183: AND
00000184: DUP5
00000185: MSTORE
00000186: PUSH9 0xffffffffffffffffff
00000190: SWAP1
00000191: SWAP3
00000192: AND
00000193: PUSH1 0x20
00000195: DUP5
00000196: ADD
00000197: MSTORE
00000198: PUSH1 0x01
0000019a: PUSH1 0x01
0000019c: PUSH1 0x58
0000019e: SHL
0000019f: SUB
000001a0: AND
000001a1: DUP3
000001a2: DUP3
000001a3: ADD
000001a4: MSTORE
000001a5: MLOAD
000001a6: SWAP1
000001a7: DUP2
000001a8: SWAP1
000001a9: SUB
000001aa: PUSH1 0x60
000001ac: ADD
000001ad: SWAP1
000001ae: RETURN
000001af: JUMPDEST
000001b0: CALLVALUE
000001b1: DUP1
000001b2: ISZERO
000001b3: PUSH2 0x01bb
000001b6: JUMPI
000001b7: PUSH1 0x00
000001b9: DUP1
000001ba: REVERT
000001bb: JUMPDEST
000001bc: POP
000001bd: PUSH2 0x015d
000001c0: PUSH2 0x03c5
000001c3: JUMP
000001c4: JUMPDEST
000001c5: CALLVALUE
000001c6: DUP1
000001c7: ISZERO
000001c8: PUSH2 0x01d0
000001cb: JUMPI
000001cc: PUSH1 0x00
000001ce: DUP1
000001cf: REVERT
000001d0: JUMPDEST
000001d1: POP
000001d2: PUSH2 0x0102
000001d5: PUSH2 0x03fb
000001d8: JUMP
000001d9: JUMPDEST
000001da: CALLVALUE
000001db: DUP1
000001dc: ISZERO
000001dd: PUSH2 0x01e5
000001e0: JUMPI
000001e1: PUSH1 0x00
000001e3: DUP1
000001e4: REVERT
000001e5: JUMPDEST
000001e6: POP
000001e7: PUSH2 0x015d
000001ea: PUSH2 0x0413
000001ed: JUMP
000001ee: JUMPDEST
000001ef: CALLVALUE
000001f0: DUP1
000001f1: ISZERO
000001f2: PUSH2 0x01fa
000001f5: JUMPI
000001f6: PUSH1 0x00
000001f8: DUP1
000001f9: REVERT
000001fa: JUMPDEST
000001fb: POP
000001fc: PUSH2 0x0102
000001ff: PUSH2 0x0447
00000202: JUMP
00000203: JUMPDEST
00000204: CALLVALUE
00000205: DUP1
00000206: ISZERO
00000207: PUSH2 0x020f
0000020a: JUMPI
0000020b: PUSH1 0x00
0000020d: DUP1
0000020e: REVERT
0000020f: JUMPDEST
00000210: POP
00000211: PUSH2 0x0174
00000214: PUSH2 0x045f
00000217: JUMP
00000218: JUMPDEST
00000219: CALLVALUE
0000021a: DUP1
0000021b: ISZERO
0000021c: PUSH2 0x0224
0000021f: JUMPI
00000220: PUSH1 0x00
00000222: DUP1
00000223: REVERT
00000224: JUMPDEST
00000225: POP
00000226: PUSH2 0x0102
00000229: PUSH2 0x0493
0000022c: JUMP
0000022d: JUMPDEST
0000022e: CALLVALUE
0000022f: DUP1
00000230: ISZERO
00000231: PUSH2 0x0239
00000234: JUMPI
00000235: PUSH1 0x00
00000237: DUP1
00000238: REVERT
00000239: JUMPDEST
0000023a: POP
0000023b: PUSH2 0x015d
0000023e: PUSH2 0x04ab
00000241: JUMP
00000242: JUMPDEST
00000243: CALLVALUE
00000244: DUP1
00000245: ISZERO
00000246: PUSH2 0x024e
00000249: JUMPI
0000024a: PUSH1 0x00
0000024c: DUP1
0000024d: REVERT
0000024e: JUMPDEST
0000024f: POP
00000250: PUSH2 0x0102
00000253: PUSH2 0x04df
00000256: JUMP
00000257: JUMPDEST
00000258: CALLVALUE
00000259: DUP1
0000025a: ISZERO
0000025b: PUSH2 0x0263
0000025e: JUMPI
0000025f: PUSH1 0x00
00000261: DUP1
00000262: REVERT
00000263: JUMPDEST
00000264: POP
00000265: PUSH2 0x0174
00000268: PUSH2 0x04f7
0000026b: JUMP
0000026c: JUMPDEST
0000026d: PUSH20 0xfa6de2697d59e88ed7fc4dfe5a33dac43565ea41
00000282: DUP2
00000283: JUMP
00000284: JUMPDEST
00000285: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
0000029a: DUP2
0000029b: JUMP
0000029c: JUMPDEST
0000029d: PUSH20 0xabafa52d3d5a2c18a4c1ae24480d22b831fc0413
000002b2: DUP2
000002b3: JUMP
000002b4: JUMPDEST
000002b5: PUSH1 0x40
000002b7: DUP1
000002b8: MLOAD
000002b9: PUSH4 0x70a08231
000002be: PUSH1 0xe0
000002c0: SHL
000002c1: DUP2
000002c2: MSTORE
000002c3: ADDRESS
000002c4: PUSH1 0x04
000002c6: DUP3
000002c7: ADD
000002c8: MSTORE
000002c9: SWAP1
000002ca: MLOAD
000002cb: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
000002e0: SWAP2
000002e1: PUSH4 0x2e1a7d4d
000002e6: SWAP2
000002e7: DUP4
000002e8: SWAP2
000002e9: PUSH4 0x70a08231
000002ee: SWAP2
000002ef: PUSH1 0x24
000002f1: DUP1
000002f2: DUP4
000002f3: ADD
000002f4: SWAP3
000002f5: PUSH1 0x20
000002f7: SWAP3
000002f8: SWAP2
000002f9: SWAP1
000002fa: DUP3
000002fb: SWAP1
000002fc: SUB
000002fd: ADD
000002fe: DUP2
000002ff: DUP7
00000300: DUP1
00000301: EXTCODESIZE
00000302: ISZERO
00000303: DUP1
00000304: ISZERO
00000305: PUSH2 0x030d
00000308: JUMPI
00000309: PUSH1 0x00
0000030b: DUP1
0000030c: REVERT
0000030d: JUMPDEST
0000030e: POP
0000030f: GAS
00000310: STATICCALL
00000311: ISZERO
00000312: DUP1
00000313: ISZERO
00000314: PUSH2 0x0321
00000317: JUMPI
00000318: RETURNDATASIZE
00000319: PUSH1 0x00
0000031b: DUP1
0000031c: RETURNDATACOPY
0000031d: RETURNDATASIZE
0000031e: PUSH1 0x00
00000320: REVERT
00000321: JUMPDEST
00000322: POP
00000323: POP
00000324: POP
00000325: POP
00000326: PUSH1 0x40
00000328: MLOAD
00000329: RETURNDATASIZE
0000032a: PUSH1 0x20
0000032c: DUP2
0000032d: LT
0000032e: ISZERO
0000032f: PUSH2 0x0337
00000332: JUMPI
00000333: PUSH1 0x00
00000335: DUP1
00000336: REVERT
00000337: JUMPDEST
00000338: POP
00000339: MLOAD
0000033a: PUSH1 0x40
0000033c: DUP1
0000033d: MLOAD
0000033e: PUSH1 0x01
00000340: PUSH1 0x01
00000342: PUSH1 0xe0
00000344: SHL
00000345: SUB
00000346: NOT
00000347: PUSH1 0xe0
00000349: DUP6
0000034a: SWAP1
0000034b: SHL
0000034c: AND
0000034d: DUP2
0000034e: MSTORE
0000034f: PUSH1 0x04
00000351: DUP2
00000352: ADD
00000353: SWAP3
00000354: SWAP1
00000355: SWAP3
00000356: MSTORE
00000357: MLOAD
00000358: PUSH1 0x24
0000035a: DUP1
0000035b: DUP4
0000035c: ADD
0000035d: SWAP3
0000035e: PUSH1 0x00
00000360: SWAP3
00000361: SWAP2
00000362: SWAP1
00000363: DUP3
00000364: SWAP1
00000365: SUB
00000366: ADD
00000367: DUP2
00000368: DUP4
00000369: DUP8
0000036a: DUP1
0000036b: EXTCODESIZE
0000036c: ISZERO
0000036d: DUP1
0000036e: ISZERO
0000036f: PUSH2 0x0377
00000372: JUMPI
00000373: PUSH1 0x00
00000375: DUP1
00000376: REVERT
00000377: JUMPDEST
00000378: POP
00000379: GAS
0000037a: CALL
0000037b: ISZERO
0000037c: DUP1
0000037d: ISZERO
0000037e: PUSH2 0x038b
00000381: JUMPI
00000382: RETURNDATASIZE
00000383: PUSH1 0x00
00000385: DUP1
00000386: RETURNDATACOPY
00000387: RETURNDATASIZE
00000388: PUSH1 0x00
0000038a: REVERT
0000038b: JUMPDEST
0000038c: POP
0000038d: POP
0000038e: POP
0000038f: POP
00000390: JUMP
00000391: JUMPDEST
00000392: PUSH1 0x00
00000394: SLOAD
00000395: PUSH1 0x01
00000397: PUSH1 0x01
00000399: PUSH1 0x60
0000039b: SHL
0000039c: SUB
0000039d: DUP2
0000039e: AND
0000039f: SWAP1
000003a0: PUSH1 0x01
000003a2: PUSH1 0x60
000003a4: SHL
000003a5: DUP2
000003a6: DIV
000003a7: PUSH9 0xffffffffffffffffff
000003b1: AND
000003b2: SWAP1
000003b3: PUSH1 0x01
000003b5: PUSH1 0xa8
000003b7: SHL
000003b8: SWAP1
000003b9: DIV
000003ba: PUSH1 0x01
000003bc: PUSH1 0x01
000003be: PUSH1 0x58
000003c0: SHL
000003c1: SUB
000003c2: AND
000003c3: DUP4
000003c4: JUMP
000003c5: JUMPDEST
000003c6: PUSH2 0x03f9
000003c9: PUSH20 0x17ac188e09a7890a1844e5e65471fe8b0ccfadf3
000003de: PUSH20 0x2701ea55b8b4f0fe46c15a0f560e9cf0c430f833
000003f3: PUSH1 0x02
000003f5: PUSH2 0x052b
000003f8: JUMP
000003f9: JUMPDEST
000003fa: JUMP
000003fb: JUMPDEST
000003fc: PUSH20 0x2701ea55b8b4f0fe46c15a0f560e9cf0c430f833
00000411: DUP2
00000412: JUMP
00000413: JUMPDEST
00000414: PUSH2 0x03f9
00000417: PUSH20 0xfa6de2697d59e88ed7fc4dfe5a33dac43565ea41
0000042c: PUSH20 0x8dcba0b75c1038c4babbdc0ff3bd9a8f6979dd13
00000441: PUSH1 0x01
00000443: PUSH2 0x052b
00000446: JUMP
00000447: JUMPDEST
00000448: PUSH20 0x8dcba0b75c1038c4babbdc0ff3bd9a8f6979dd13
0000045d: DUP2
0000045e: JUMP
0000045f: JUMPDEST
00000460: PUSH1 0x01
00000462: SLOAD
00000463: PUSH1 0x01
00000465: PUSH1 0x01
00000467: PUSH1 0x60
00000469: SHL
0000046a: SUB
0000046b: DUP2
0000046c: AND
0000046d: SWAP1
0000046e: PUSH1 0x01
00000470: PUSH1 0x60
00000472: SHL
00000473: DUP2
00000474: DIV
00000475: PUSH9 0xffffffffffffffffff
0000047f: AND
00000480: SWAP1
00000481: PUSH1 0x01
00000483: PUSH1 0xa8
00000485: SHL
00000486: SWAP1
00000487: DIV
00000488: PUSH1 0x01
0000048a: PUSH1 0x01
0000048c: PUSH1 0x58
0000048e: SHL
0000048f: SUB
00000490: AND
00000491: DUP4
00000492: JUMP
00000493: JUMPDEST
00000494: PUSH20 0x17ac188e09a7890a1844e5e65471fe8b0ccfadf3
000004a9: DUP2
000004aa: JUMP
000004ab: JUMPDEST
000004ac: PUSH2 0x03f9
000004af: PUSH20 0xabafa52d3d5a2c18a4c1ae24480d22b831fc0413
000004c4: PUSH20 0x9a60f0a46c1485d4bda7750adb0db1b17aa48a33
000004d9: PUSH1 0x00
000004db: PUSH2 0x052b
000004de: JUMP
000004df: JUMPDEST
000004e0: PUSH20 0x9a60f0a46c1485d4bda7750adb0db1b17aa48a33
000004f5: DUP2
000004f6: JUMP
000004f7: JUMPDEST
000004f8: PUSH1 0x02
000004fa: SLOAD
000004fb: PUSH1 0x01
000004fd: PUSH1 0x01
000004ff: PUSH1 0x60
00000501: SHL
00000502: SUB
00000503: DUP2
00000504: AND
00000505: SWAP1
00000506: PUSH1 0x01
00000508: PUSH1 0x60
0000050a: SHL
0000050b: DUP2
0000050c: DIV
0000050d: PUSH9 0xffffffffffffffffff
00000517: AND
00000518: SWAP1
00000519: PUSH1 0x01
0000051b: PUSH1 0xa8
0000051d: SHL
0000051e: SWAP1
0000051f: DIV
00000520: PUSH1 0x01
00000522: PUSH1 0x01
00000524: PUSH1 0x58
00000526: SHL
00000527: SUB
00000528: AND
00000529: DUP4
0000052a: JUMP
0000052b: JUMPDEST
0000052c: PUSH1 0x00
0000052e: DUP3
0000052f: PUSH1 0x01
00000531: PUSH1 0x01
00000533: PUSH1 0xa0
00000535: SHL
00000536: SUB
00000537: AND
00000538: PUSH4 0x70a08231
0000053d: CALLER
0000053e: PUSH1 0x40
00000540: MLOAD
00000541: DUP3
00000542: PUSH4 0xffffffff
00000547: AND
00000548: PUSH1 0xe0
0000054a: SHL
0000054b: DUP2
0000054c: MSTORE
0000054d: PUSH1 0x04
0000054f: ADD
00000550: DUP1
00000551: DUP3
00000552: PUSH1 0x01
00000554: PUSH1 0x01
00000556: PUSH1 0xa0
00000558: SHL
00000559: SUB
0000055a: AND
0000055b: DUP2
0000055c: MSTORE
0000055d: PUSH1 0x20
0000055f: ADD
00000560: SWAP2
00000561: POP
00000562: POP
00000563: PUSH1 0x20
00000565: PUSH1 0x40
00000567: MLOAD
00000568: DUP1
00000569: DUP4
0000056a: SUB
0000056b: DUP2
0000056c: DUP7
0000056d: DUP1
0000056e: EXTCODESIZE
0000056f: ISZERO
00000570: DUP1
00000571: ISZERO
00000572: PUSH2 0x057a
00000575: JUMPI
00000576: PUSH1 0x00
00000578: DUP1
00000579: REVERT
0000057a: JUMPDEST
0000057b: POP
0000057c: GAS
0000057d: STATICCALL
0000057e: ISZERO
0000057f: DUP1
00000580: ISZERO
00000581: PUSH2 0x058e
00000584: JUMPI
00000585: RETURNDATASIZE
00000586: PUSH1 0x00
00000588: DUP1
00000589: RETURNDATACOPY
0000058a: RETURNDATASIZE
0000058b: PUSH1 0x00
0000058d: REVERT
0000058e: JUMPDEST
0000058f: POP
00000590: POP
00000591: POP
00000592: POP
00000593: PUSH1 0x40
00000595: MLOAD
00000596: RETURNDATASIZE
00000597: PUSH1 0x20
00000599: DUP2
0000059a: LT
0000059b: ISZERO
0000059c: PUSH2 0x05a4
0000059f: JUMPI
000005a0: PUSH1 0x00
000005a2: DUP1
000005a3: REVERT
000005a4: JUMPDEST
000005a5: POP
000005a6: MLOAD
000005a7: SWAP1
000005a8: POP
000005a9: DUP1
000005aa: PUSH2 0x05ec
000005ad: JUMPI
000005ae: PUSH1 0x40
000005b0: DUP1
000005b1: MLOAD
000005b2: PUSH3 0x461bcd
000005b6: PUSH1 0xe5
000005b8: SHL
000005b9: DUP2
000005ba: MSTORE
000005bb: PUSH1 0x20
000005bd: PUSH1 0x04
000005bf: DUP3
000005c0: ADD
000005c1: MSTORE
000005c2: PUSH1 0x0f
000005c4: PUSH1 0x24
000005c6: DUP3
000005c7: ADD
000005c8: MSTORE
000005c9: PUSH15 0x11549497d395531317d05353d55395
000005d9: PUSH1 0x8a
000005db: SHL
000005dc: PUSH1 0x44
000005de: DUP3
000005df: ADD
000005e0: MSTORE
000005e1: SWAP1
000005e2: MLOAD
000005e3: SWAP1
000005e4: DUP2
000005e5: SWAP1
000005e6: SUB
000005e7: PUSH1 0x64
000005e9: ADD
000005ea: SWAP1
000005eb: REVERT
000005ec: JUMPDEST
000005ed: PUSH2 0x0602
000005f0: PUSH1 0x01
000005f2: PUSH1 0x01
000005f4: PUSH1 0xa0
000005f6: SHL
000005f7: SUB
000005f8: DUP5
000005f9: AND
000005fa: CALLER
000005fb: PUSH1 0x00
000005fd: DUP5
000005fe: PUSH2 0x0768
00000601: JUMP
00000602: JUMPDEST
00000603: DUP2
00000604: SLOAD
00000605: PUSH1 0x01
00000607: PUSH1 0x01
00000609: PUSH1 0x60
0000060b: SHL
0000060c: SUB
0000060d: DUP2
0000060e: AND
0000060f: SWAP1
00000610: PUSH1 0x01
00000612: PUSH1 0x60
00000614: SHL
00000615: DUP2
00000616: DIV
00000617: PUSH9 0xffffffffffffffffff
00000621: AND
00000622: SWAP1
00000623: PUSH1 0x01
00000625: PUSH1 0xa8
00000627: SHL
00000628: SWAP1
00000629: DIV
0000062a: PUSH1 0x01
0000062c: PUSH1 0x01
0000062e: PUSH1 0x58
00000630: SHL
00000631: SUB
00000632: AND
00000633: PUSH1 0x00
00000635: DUP4
00000636: PUSH2 0x063f
00000639: DUP5
0000063a: DUP8
0000063b: PUSH2 0x08c3
0000063e: JUMP
0000063f: JUMPDEST
00000640: DUP2
00000641: PUSH2 0x0646
00000644: JUMPI
00000645: INVALID
00000646: JUMPDEST
00000647: DIV
00000648: SWAP1
00000649: POP
0000064a: PUSH1 0x00
0000064c: DUP5
0000064d: PUSH2 0x0656
00000650: DUP5
00000651: DUP9
00000652: PUSH2 0x08c3
00000655: JUMP
00000656: JUMPDEST
00000657: DUP2
00000658: PUSH2 0x065d
0000065b: JUMPI
0000065c: INVALID
0000065d: JUMPDEST
0000065e: DIV
0000065f: SWAP1
00000660: POP
00000661: PUSH2 0x066a
00000664: DUP5
00000665: DUP4
00000666: PUSH2 0x092c
00000669: JUMP
0000066a: JUMPDEST
0000066b: DUP8
0000066c: SLOAD
0000066d: PUSH9 0xffffffffffffffffff
00000677: SWAP2
00000678: SWAP1
00000679: SWAP2
0000067a: AND
0000067b: PUSH1 0x01
0000067d: PUSH1 0x60
0000067f: SHL
00000680: MUL
00000681: PUSH9 0xffffffffffffffffff
0000068b: PUSH1 0x60
0000068d: SHL
0000068e: NOT
0000068f: SWAP1
00000690: SWAP2
00000691: AND
00000692: OR
00000693: DUP8
00000694: SSTORE
00000695: PUSH2 0x069e
00000698: DUP4
00000699: DUP3
0000069a: PUSH2 0x092c
0000069d: JUMP
0000069e: JUMPDEST
0000069f: DUP8
000006a0: SLOAD
000006a1: PUSH1 0x01
000006a3: PUSH1 0x01
000006a5: PUSH1 0x58
000006a7: SHL
000006a8: SUB
000006a9: SWAP2
000006aa: SWAP1
000006ab: SWAP2
000006ac: AND
000006ad: PUSH1 0x01
000006af: PUSH1 0xa8
000006b1: SHL
000006b2: MUL
000006b3: PUSH1 0x01
000006b5: PUSH1 0x01
000006b7: PUSH1 0xa8
000006b9: SHL
000006ba: SUB
000006bb: SWAP1
000006bc: SWAP2
000006bd: AND
000006be: OR
000006bf: DUP8
000006c0: SSTORE
000006c1: PUSH2 0x06ca
000006c4: DUP6
000006c5: DUP8
000006c6: PUSH2 0x092c
000006c9: JUMP
000006ca: JUMPDEST
000006cb: DUP8
000006cc: SLOAD
000006cd: PUSH12 0xffffffffffffffffffffffff
000006da: NOT
000006db: AND
000006dc: PUSH1 0x01
000006de: PUSH1 0x01
000006e0: PUSH1 0x60
000006e2: SHL
000006e3: SUB
000006e4: SWAP2
000006e5: SWAP1
000006e6: SWAP2
000006e7: AND
000006e8: OR
000006e9: DUP8
000006ea: SSTORE
000006eb: PUSH1 0x40
000006ed: DUP1
000006ee: MLOAD
000006ef: PUSH4 0x3d2f7b35
000006f4: PUSH1 0xe1
000006f6: SHL
000006f7: DUP2
000006f8: MSTORE
000006f9: CALLER
000006fa: PUSH1 0x04
000006fc: DUP3
000006fd: ADD
000006fe: MSTORE
000006ff: PUSH1 0x24
00000701: DUP2
00000702: ADD
00000703: DUP4
00000704: SWAP1
00000705: MSTORE
00000706: SWAP1
00000707: MLOAD
00000708: PUSH1 0x01
0000070a: PUSH1 0x01
0000070c: PUSH1 0xa0
0000070e: SHL
0000070f: SUB
00000710: DUP12
00000711: AND
00000712: SWAP2
00000713: PUSH4 0x7a5ef66a
00000718: SWAP2
00000719: PUSH1 0x44
0000071b: DUP1
0000071c: DUP4
0000071d: ADD
0000071e: SWAP3
0000071f: PUSH1 0x00
00000721: SWAP3
00000722: SWAP2
00000723: SWAP1
00000724: DUP3
00000725: SWAP1
00000726: SUB
00000727: ADD
00000728: DUP2
00000729: DUP4
0000072a: DUP8
0000072b: DUP1
0000072c: EXTCODESIZE
0000072d: ISZERO
0000072e: DUP1
0000072f: ISZERO
00000730: PUSH2 0x0738
00000733: JUMPI
00000734: PUSH1 0x00
00000736: DUP1
00000737: REVERT
00000738: JUMPDEST
00000739: POP
0000073a: GAS
0000073b: CALL
0000073c: ISZERO
0000073d: DUP1
0000073e: ISZERO
0000073f: PUSH2 0x074c
00000742: JUMPI
00000743: RETURNDATASIZE
00000744: PUSH1 0x00
00000746: DUP1
00000747: RETURNDATACOPY
00000748: RETURNDATASIZE
00000749: PUSH1 0x00
0000074b: REVERT
0000074c: JUMPDEST
0000074d: POP
0000074e: PUSH2 0x075d
00000751: SWAP3
00000752: POP
00000753: CALLER
00000754: SWAP2
00000755: POP
00000756: DUP5
00000757: SWAP1
00000758: POP
00000759: PUSH2 0x097c
0000075c: JUMP
0000075d: JUMPDEST
0000075e: POP
0000075f: POP
00000760: POP
00000761: POP
00000762: POP
00000763: POP
00000764: POP
00000765: POP
00000766: POP
00000767: JUMP
00000768: JUMPDEST
00000769: PUSH1 0x40
0000076b: DUP1
0000076c: MLOAD
0000076d: PUSH1 0x01
0000076f: PUSH1 0x01
00000771: PUSH1 0xa0
00000773: SHL
00000774: SUB
00000775: DUP6
00000776: DUP2
00000777: AND
00000778: PUSH1 0x24
0000077a: DUP4
0000077b: ADD
0000077c: MSTORE
0000077d: DUP5
0000077e: DUP2
0000077f: AND
00000780: PUSH1 0x44
00000782: DUP4
00000783: ADD
00000784: MSTORE
00000785: PUSH1 0x64
00000787: DUP1
00000788: DUP4
00000789: ADD
0000078a: DUP6
0000078b: SWAP1
0000078c: MSTORE
0000078d: DUP4
0000078e: MLOAD
0000078f: DUP1
00000790: DUP5
00000791: SUB
00000792: SWAP1
00000793: SWAP2
00000794: ADD
00000795: DUP2
00000796: MSTORE
00000797: PUSH1 0x84
00000799: SWAP1
0000079a: SWAP3
0000079b: ADD
0000079c: DUP4
0000079d: MSTORE
0000079e: PUSH1 0x20
000007a0: DUP3
000007a1: ADD
000007a2: DUP1
000007a3: MLOAD
000007a4: PUSH1 0x01
000007a6: PUSH1 0x01
000007a8: PUSH1 0xe0
000007aa: SHL
000007ab: SUB
000007ac: AND
000007ad: PUSH4 0x23b872dd
000007b2: PUSH1 0xe0
000007b4: SHL
000007b5: OR
000007b6: DUP2
000007b7: MSTORE
000007b8: SWAP3
000007b9: MLOAD
000007ba: DUP3
000007bb: MLOAD
000007bc: PUSH1 0x00
000007be: SWAP5
000007bf: DUP6
000007c0: SWAP5
000007c1: SWAP4
000007c2: DUP11
000007c3: AND
000007c4: SWAP4
000007c5: SWAP3
000007c6: SWAP2
000007c7: DUP3
000007c8: SWAP2
000007c9: SWAP1
000007ca: DUP1
000007cb: DUP4
000007cc: DUP4
000007cd: JUMPDEST
000007ce: PUSH1 0x20
000007d0: DUP4
000007d1: LT
000007d2: PUSH2 0x07ec
000007d5: JUMPI
000007d6: DUP1
000007d7: MLOAD
000007d8: DUP3
000007d9: MSTORE
000007da: PUSH1 0x1f
000007dc: NOT
000007dd: SWAP1
000007de: SWAP3
000007df: ADD
000007e0: SWAP2
000007e1: PUSH1 0x20
000007e3: SWAP2
000007e4: DUP3
000007e5: ADD
000007e6: SWAP2
000007e7: ADD
000007e8: PUSH2 0x07cd
000007eb: JUMP
000007ec: JUMPDEST
000007ed: PUSH1 0x01
000007ef: DUP4
000007f0: PUSH1 0x20
000007f2: SUB
000007f3: PUSH2 0x0100
000007f6: EXP
000007f7: SUB
000007f8: DUP1
000007f9: NOT
000007fa: DUP3
000007fb: MLOAD
000007fc: AND
000007fd: DUP2
000007fe: DUP5
000007ff: MLOAD
00000800: AND
00000801: DUP1
00000802: DUP3
00000803: OR
00000804: DUP6
00000805: MSTORE
00000806: POP
00000807: POP
00000808: POP
00000809: POP
0000080a: POP
0000080b: POP
0000080c: SWAP1
0000080d: POP
0000080e: ADD
0000080f: SWAP2
00000810: POP
00000811: POP
00000812: PUSH1 0x00
00000814: PUSH1 0x40
00000816: MLOAD
00000817: DUP1
00000818: DUP4
00000819: SUB
0000081a: DUP2
0000081b: PUSH1 0x00
0000081d: DUP7
0000081e: GAS
0000081f: CALL
00000820: SWAP2
00000821: POP
00000822: POP
00000823: RETURNDATASIZE
00000824: DUP1
00000825: PUSH1 0x00
00000827: DUP2
00000828: EQ
00000829: PUSH2 0x084e
0000082c: JUMPI
0000082d: PUSH1 0x40
0000082f: MLOAD
00000830: SWAP2
00000831: POP
00000832: PUSH1 0x1f
00000834: NOT
00000835: PUSH1 0x3f
00000837: RETURNDATASIZE
00000838: ADD
00000839: AND
0000083a: DUP3
0000083b: ADD
0000083c: PUSH1 0x40
0000083e: MSTORE
0000083f: RETURNDATASIZE
00000840: DUP3
00000841: MSTORE
00000842: RETURNDATASIZE
00000843: PUSH1 0x00
00000845: PUSH1 0x20
00000847: DUP5
00000848: ADD
00000849: RETURNDATACOPY
0000084a: PUSH2 0x0853
0000084d: JUMP
0000084e: JUMPDEST
0000084f: PUSH1 0x60
00000851: SWAP2
00000852: POP
00000853: JUMPDEST
00000854: POP
00000855: SWAP2
00000856: POP
00000857: SWAP2
00000858: POP
00000859: DUP2
0000085a: DUP1
0000085b: ISZERO
0000085c: PUSH2 0x0881
0000085f: JUMPI
00000860: POP
00000861: DUP1
00000862: MLOAD
00000863: ISZERO
00000864: DUP1
00000865: PUSH2 0x0881
00000868: JUMPI
00000869: POP
0000086a: DUP1
0000086b: DUP1
0000086c: PUSH1 0x20
0000086e: ADD
0000086f: SWAP1
00000870: MLOAD
00000871: PUSH1 0x20
00000873: DUP2
00000874: LT
00000875: ISZERO
00000876: PUSH2 0x087e
00000879: JUMPI
0000087a: PUSH1 0x00
0000087c: DUP1
0000087d: REVERT
0000087e: JUMPDEST
0000087f: POP
00000880: MLOAD
00000881: JUMPDEST
00000882: PUSH2 0x08bb
00000885: JUMPI
00000886: PUSH1 0x40
00000888: DUP1
00000889: MLOAD
0000088a: PUSH3 0x461bcd
0000088e: PUSH1 0xe5
00000890: SHL
00000891: DUP2
00000892: MSTORE
00000893: PUSH1 0x20
00000895: PUSH1 0x04
00000897: DUP3
00000898: ADD
00000899: MSTORE
0000089a: PUSH1 0x06
0000089c: PUSH1 0x24
0000089e: DUP3
0000089f: ADD
000008a0: MSTORE
000008a1: PUSH6 0x2a241d29aa23
000008a8: PUSH1 0xd1
000008aa: SHL
000008ab: PUSH1 0x44
000008ad: DUP3
000008ae: ADD
000008af: MSTORE
000008b0: SWAP1
000008b1: MLOAD
000008b2: SWAP1
000008b3: DUP2
000008b4: SWAP1
000008b5: SUB
000008b6: PUSH1 0x64
000008b8: ADD
000008b9: SWAP1
000008ba: REVERT
000008bb: JUMPDEST
000008bc: POP
000008bd: POP
000008be: POP
000008bf: POP
000008c0: POP
000008c1: POP
000008c2: JUMP
000008c3: JUMPDEST
000008c4: PUSH1 0x00
000008c6: DUP2
000008c7: ISZERO
000008c8: DUP1
000008c9: PUSH2 0x08de
000008cc: JUMPI
000008cd: POP
000008ce: POP
000008cf: DUP1
000008d0: DUP3
000008d1: MUL
000008d2: DUP3
000008d3: DUP3
000008d4: DUP3
000008d5: DUP2
000008d6: PUSH2 0x08db
000008d9: JUMPI
000008da: INVALID
000008db: JUMPDEST
000008dc: DIV
000008dd: EQ
000008de: JUMPDEST
000008df: PUSH2 0x0926
000008e2: JUMPI
000008e3: PUSH1 0x40
000008e5: DUP1
000008e6: MLOAD
000008e7: PUSH3 0x461bcd
000008eb: PUSH1 0xe5
000008ed: SHL
000008ee: DUP2
000008ef: MSTORE
000008f0: PUSH1 0x20
000008f2: PUSH1 0x04
000008f4: DUP3
000008f5: ADD
000008f6: MSTORE
000008f7: PUSH1 0x14
000008f9: PUSH1 0x24
000008fb: DUP3
000008fc: ADD
000008fd: MSTORE
000008fe: PUSH20 0x64732d6d6174682d6d756c2d6f766572666c6f77
00000913: PUSH1 0x60
00000915: SHL
00000916: PUSH1 0x44
00000918: DUP3
00000919: ADD
0000091a: MSTORE
0000091b: SWAP1
0000091c: MLOAD
0000091d: SWAP1
0000091e: DUP2
0000091f: SWAP1
00000920: SUB
00000921: PUSH1 0x64
00000923: ADD
00000924: SWAP1
00000925: REVERT
00000926: JUMPDEST
00000927: SWAP3
00000928: SWAP2
00000929: POP
0000092a: POP
0000092b: JUMP
0000092c: JUMPDEST
0000092d: DUP1
0000092e: DUP3
0000092f: SUB
00000930: DUP3
00000931: DUP2
00000932: GT
00000933: ISZERO
00000934: PUSH2 0x0926
00000937: JUMPI
00000938: PUSH1 0x40
0000093a: DUP1
0000093b: MLOAD
0000093c: PUSH3 0x461bcd
00000940: PUSH1 0xe5
00000942: SHL
00000943: DUP2
00000944: MSTORE
00000945: PUSH1 0x20
00000947: PUSH1 0x04
00000949: DUP3
0000094a: ADD
0000094b: MSTORE
0000094c: PUSH1 0x15
0000094e: PUSH1 0x24
00000950: DUP3
00000951: ADD
00000952: MSTORE
00000953: PUSH21 0x64732d6d6174682d7375622d756e646572666c6f77
00000969: PUSH1 0x58
0000096b: SHL
0000096c: PUSH1 0x44
0000096e: DUP3
0000096f: ADD
00000970: MSTORE
00000971: SWAP1
00000972: MLOAD
00000973: SWAP1
00000974: DUP2
00000975: SWAP1
00000976: SUB
00000977: PUSH1 0x64
00000979: ADD
0000097a: SWAP1
0000097b: REVERT
0000097c: JUMPDEST
0000097d: PUSH1 0x40
0000097f: MLOAD
00000980: PUSH1 0x00
00000982: SWAP1
00000983: PUSH1 0x01
00000985: PUSH1 0x01
00000987: PUSH1 0xa0
00000989: SHL
0000098a: SUB
0000098b: DUP5
0000098c: AND
0000098d: SWAP1
0000098e: DUP4
0000098f: SWAP1
00000990: DUP4
00000991: DUP2
00000992: DUP2
00000993: DUP2
00000994: DUP6
00000995: DUP8
00000996: GAS
00000997: CALL
00000998: SWAP3
00000999: POP
0000099a: POP
0000099b: POP
0000099c: RETURNDATASIZE
0000099d: DUP1
0000099e: PUSH1 0x00
000009a0: DUP2
000009a1: EQ
000009a2: PUSH2 0x09c7
000009a5: JUMPI
000009a6: PUSH1 0x40
000009a8: MLOAD
000009a9: SWAP2
000009aa: POP
000009ab: PUSH1 0x1f
000009ad: NOT
000009ae: PUSH1 0x3f
000009b0: RETURNDATASIZE
000009b1: ADD
000009b2: AND
000009b3: DUP3
000009b4: ADD
000009b5: PUSH1 0x40
000009b7: MSTORE
000009b8: RETURNDATASIZE
000009b9: DUP3
000009ba: MSTORE
000009bb: RETURNDATASIZE
000009bc: PUSH1 0x00
000009be: PUSH1 0x20
000009c0: DUP5
000009c1: ADD
000009c2: RETURNDATACOPY
000009c3: PUSH2 0x09cc
000009c6: JUMP
000009c7: JUMPDEST
000009c8: PUSH1 0x60
000009ca: SWAP2
000009cb: POP
000009cc: JUMPDEST
000009cd: POP
000009ce: POP
000009cf: SWAP1
000009d0: POP
000009d1: DUP1
000009d2: PUSH2 0x0a0b
000009d5: JUMPI
000009d6: PUSH1 0x40
000009d8: DUP1
000009d9: MLOAD
000009da: PUSH3 0x461bcd
000009de: PUSH1 0xe5
000009e0: SHL
000009e1: DUP2
000009e2: MSTORE
000009e3: PUSH1 0x20
000009e5: PUSH1 0x04
000009e7: DUP3
000009e8: ADD
000009e9: MSTORE
000009ea: PUSH1 0x06
000009ec: PUSH1 0x24
000009ee: DUP3
000009ef: ADD
000009f0: MSTORE
000009f1: PUSH6 0x54483a535445
000009f8: PUSH1 0xd0
000009fa: SHL
000009fb: PUSH1 0x44
000009fd: DUP3
000009fe: ADD
000009ff: MSTORE
00000a00: SWAP1
00000a01: MLOAD
00000a02: SWAP1
00000a03: DUP2
00000a04: SWAP1
00000a05: SUB
00000a06: PUSH1 0x64
00000a08: ADD
00000a09: SWAP1
00000a0a: REVERT
00000a0b: JUMPDEST
00000a0c: POP
00000a0d: POP
00000a0e: POP
00000a0f: JUMP
00000a10: INVALID
00000a11: LOG1
00000a12: PUSH5 0x736f6c6343
00000a18: STOP
00000a19: SMOD
00000a1a: MOD
00000a1b: STOP
00000a1c: EXP

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xca13c470833f057e236a9bebc7308dc9054047d4e39280df456cbb00e9400926
call_targets: 0x589f9d287766d810aafccaee3a133f22c13eb6f8
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xca13c470833f057e236a9bebc7308dc9054047d4e39280df456cbb00e9400926",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x589f9d287766d810aafccaee3a133f22c13eb6f8"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x976eb268",
            "selector": "0x976eb268",
            "calldata_variants": [
                "0x976eb268",
                "0x976eb2680000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc1f37be3",
            "selector": "0xc1f37be3",
            "calldata_variants": [
                "0xc1f37be3",
                "0xc1f37be30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd6d8461f",
            "selector": "0xd6d8461f",
            "calldata_variants": [
                "0xd6d8461f",
                "0xd6d8461f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf4ee798a",
            "selector": "0xf4ee798a",
            "calldata_variants": [
                "0xf4ee798a",
                "0xf4ee798a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7d88b770",
            "selector": "0x7d88b770",
            "calldata_variants": [
                "0x7d88b770",
                "0x7d88b7700000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7f52c4eb",
            "selector": "0x7f52c4eb",
            "calldata_variants": [
                "0x7f52c4eb",
                "0x7f52c4eb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x951567da",
            "selector": "0x951567da",
            "calldata_variants": [
                "0x951567da",
                "0x951567da0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x69555fb5",
            "selector": "0x69555fb5",
            "calldata_variants": [
                "0x69555fb5",
                "0x69555fb50000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 890,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1851,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2079,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [],
    "untrusted_call_count": 4
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xca13c470833f057e236a9bebc7308dc9054047d4e39280df456cbb00e9400926
call_targets: 0x589f9d287766d810aafccaee3a133f22c13eb6f8
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xca13c470833f057e236a9bebc7308dc9054047d4e39280df456cbb00e9400926",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x589f9d287766d810aafccaee3a133f22c13eb6f8"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x976eb268",
            "selector": "0x976eb268",
            "calldata_variants": [
                "0x976eb268",
                "0x976eb2680000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc1f37be3",
            "selector": "0xc1f37be3",
            "calldata_variants": [
                "0xc1f37be3",
                "0xc1f37be30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd6d8461f",
            "selector": "0xd6d8461f",
            "calldata_variants": [
                "0xd6d8461f",
                "0xd6d8461f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf4ee798a",
            "selector": "0xf4ee798a",
            "calldata_variants": [
                "0xf4ee798a",
                "0xf4ee798a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7d88b770",
            "selector": "0x7d88b770",
            "calldata_variants": [
                "0x7d88b770",
                "0x7d88b7700000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7f52c4eb",
            "selector": "0x7f52c4eb",
            "calldata_variants": [
                "0x7f52c4eb",
                "0x7f52c4eb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x951567da",
            "selector": "0x951567da",
            "calldata_variants": [
                "0x951567da",
                "0x951567da0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x69555fb5",
            "selector": "0x69555fb5",
            "calldata_variants": [
                "0x69555fb5",
                "0x69555fb50000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 890,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1851,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2079,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": []
}