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

Analysis Run

019b3836-3d2f-7228-a456-cb5fe5dd8c99

complete
Chain ID
1
Address
Block Number
Created
Fri, Dec 19, 2025 8:03 PM
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
2
Validated
2
Source
Bytecode only
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
crit 0 high 2 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
4683 artifact.fetch complete 1 / 3 3 months ago
4684 tool.cast_disasm complete 1 / 3 3 months ago
48024 analysis.bundle complete 1 / 3 1 week ago
48025 capability.graph complete 1 / 3 1 week ago
48026 detector.run complete 1 / 3 1 week ago
48027 validation.fork complete 1 / 3 1 week ago
113286 report.consolidate complete 1 / 6 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: no

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Bytecode appears to implement an ETH-backed ERC20-style wrapper with `deposit`, `withdraw`, ERC20 transfers, and `approveAndCall`. No proxy/delegatecall paths were evidenced, and the raw ETH send paths appear to debit storage before calling out. Two conservative issues remain: a standard allowance-race pattern and a supply-accounting invariant break because `totalSupply()` is derived from raw ETH balance.
View stdout
{"no_findings":false,"summary":"Bytecode appears to implement an ETH-backed ERC20-style wrapper with `deposit`, `withdraw`, ERC20 transfers, and `approveAndCall`. No proxy/delegatecall paths were evidenced, and the raw ETH send paths appear to debit storage before calling out. Two conservative issues remain: a standard allowance-race pattern and a supply-accounting invariant break because `totalSupply()` is derived from raw ETH balance.","findings":[{"severity":"medium","category":"auth","title":"Allowance overwrite race in `approve` and `approveAndCall`","exploit_scenario":"A holder changes a spender allowance from `N` to `M` using `approve` or `approveAndCall`. A malicious spender can front-run with `transferFrom(..., N)` before the new approval lands, then still use the fresh `M` allowance afterward, effectively spending more than the holder intended. In the `approveAndCall` path, the newly written allowance is also live before the external callback returns.","recommendation":"Do not support overwrite-style approvals without mitigation. Require setting allowance to zero before a new non-zero value, or add `increaseAllowance` / `decreaseAllowance` style flows and deprecate direct allowance replacement.","evidence":"Selector inference is best-effort, but `0x095ea7b3` matches ERC20 `approve(address,uint256)` and `0x3177029f` matches `approveAndCall(address,uint256)`. Both flow through the allowance-write routine beginning at pc `0xfd`, where the nested allowance mapping is written with `SSTORE` and no visible zero-check or compare-to-current-allowance guard precedes the write. The `approveAndCall` path then performs an external callback at pc `0x753` using selector `0x4889ca88` (`receiveApproval(address,uint256,address)`), so the just-written allowance is immediately usable.","locations":["selector:0x095ea7b3","selector:0x3177029f","pc:0xfd","pc:0x6f7"]},{"severity":"low","category":"math","title":"`totalSupply()` is tied to raw ETH balance, so forced ETH can desynchronize accounting","exploit_scenario":"An attacker can force ETH into the contract (for example via `SELFDESTRUCT`). The contract's ETH balance rises, so `totalSupply()` rises as well, but no holder balance is minted. This can break the invariant that total supply equals the sum of account balances, confuse integrations that rely on supply-based accounting, and leave unsolicited ETH permanently trapped.","recommendation":"Track minted supply in storage and update it only on explicit deposit/withdraw flows, or provide a controlled reconciliation/sweep mechanism for unsolicited ETH.","evidence":"`totalSupply()` (`0x18160ddd`) resolves to the routine at pc `0x168`, which executes `ADDRESS ... BALANCE` and returns the contract's ETH balance directly. By contrast, `balanceOf()` (`0x70a08231`) reads from a storage mapping at pc `0x21a`. Because supply is not read from the same storage accounting as balances, unsolicited ETH changes reported supply without changing any user balance.","locations":["selector:0x18160ddd","selector:0x70a08231","pc:0x168","pc:0x21a"]}]}
View stderr
OpenAI Codex v0.118.0 (research preview)
--------
workdir: /tmp/codex-93zqp0qz
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5c1c-b224-7902-a784-1660d7c6aae4
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.

Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.

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.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".

Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
warning: Codex could not find system bubblewrap on PATH. Please install bubblewrap with your package manager. Codex will use the vendored bubblewrap in the meantime.
exec
/bin/bash -lc pwd in /tmp/codex-93zqp0qz
 succeeded in 0ms:
/tmp/codex-93zqp0qz

exec
/bin/bash -lc 'rg --files' in /tmp/codex-93zqp0qz
 succeeded in 0ms:
BYTECODE_BUNDLE.json
codex-output-schema.json

exec
/bin/bash -lc "sed -n '1,240p' BYTECODE_BUNDLE.json" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
{
  "analysis_artifact": {
    "address": "0x89d64bc7e46bdc49a89652ae9bb167418cbad62e",
    "artifact_hash": "0xe0e854153ddbb34e9fa574298856161e49e49549bc84cabce519f1c0fd4c6a51",
    "artifact_json": {
      "auth": {
        "guards": []
      },
      "basic_blocks": [
        {
          "end_pc": 10,
          "hash": "0xfd342fab7341c089cd1fdef11e74566bbd7ffa7ac4f4f86648f0fae109a15a10",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "CALLDATASIZE",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 0
        },
        {
          "end_pc": 30,
          "hash": "0xc70ed12c4a201f457352f1081faa541ad2d0e9ed873ab7189672a232c2981e6e",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "EXP",
            "PUSH1",
            "CALLDATALOAD",
            "DIV",
            "PUSH4",
            "OP_81",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 11
        },
        {
          "end_pc": 41,
          "hash": "0x7e830c354d9fcd430f148fd268924919107311ec603ed3fbc87b87c4e1960564",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 31
        },
        {
          "end_pc": 52,
          "hash": "0xd93be9c242e8e8bcd06a655e8f68dbb5d8b907aa242921a0944db45226824ede",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 42
        },
        {
          "end_pc": 63,
          "hash": "0xf975181aea2edf6392f2b3e648aae3b0eace6c9389a7f27039b8efc5164a8e38",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 53
        },
        {
          "end_pc": 74,
          "hash": "0xec201f7d160fbd74016021109fe77370b8438cfcac697314b86ae1c86d82f322",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 64
        },
        {
          "end_pc": 85,
          "hash": "0x636002e5a697d1dcd5c7931ece61b7c0d48436ac628d59c5a408a2e9400f02c9",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 75
        },
        {
          "end_pc": 96,
          "hash": "0x1328f6b524d1fc36b2c4512aefec0e45764a7f6db1d8ad7899f090873660046c",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 86
        },
        {
          "end_pc": 107,
          "hash": "0xbed031604407871b61edd7cace58d1544f4d0e479ecef720d39d40effd3f01ba",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 97
        },
        {
          "end_pc": 118,
          "hash": "0x9a18ece7c39b64a99ade84949dd684558280dede1d8bd61d5592d509da2ecdf9",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 108
        },
        {
          "end_pc": 129,
          "hash": "0xf4a506fa8e4cd123298dd1063f7f7960970ff32247692ba09cd00617ae4d7701",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 119
        },
        {
          "end_pc": 140,
          "hash": "0xfe8115500eabb4976688d94720b09a11c50561226f88e28dc6085e1c3b7d9791",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 130
        },
        {
          "end_pc": 151,
          "hash": "0xf4626f76328297acbd5909aa163add93b5e7603addd96eac28c1154711ae7a0f",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 141
        },
        {
          "end_pc": 162,
          "hash": "0x56266f7e1e593719a66a4f6ccd4a22ca545b776461e75f102cec6cf0fdb8af8a",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 152
        },
        {
          "end_pc": 173,
          "hash": "0x769b3c458606538f51b01c3a1ddb9e79d095c5a8c92ee881d3cbb93a3806a311",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 163
        },
        {
          "end_pc": 184,
          "hash": "0x4416f9665fccfe1ee7f38dc8ab8b488e6db613488bc47fe8580c9536aa735fcd",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH2",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 174
        },
        {
          "end_pc": 242,
          "hash": "0x071567ff5fa5a6290fa5438f77074089b30029b7b43196c80a1b8d02630ee578",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH1",
            "OP_80",
            "MLOAD",
            "OP_80",
            "OP_82",
            "ADD",
            "OP_90",
            "OP_91",
            "MSTORE",
            "PUSH1",
            "OP_81",
            "MSTORE",
            "PUSH32",
            "PUSH1",
            "OP_82",
            "ADD",
            "MSTORE",
            "OP_81",
            "JUMP"
          ],
          "start_pc": 185
        },
        {
          "end_pc": 252,
          "hash": "0x28d0b72d37c730c9759802fa6751518184abfa2759f8fb9284a97b4fb1d9dc45",

exec
/bin/bash -lc "sed -n '241,520p' BYTECODE_BUNDLE.json" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "CALLDATALOAD"
          ],
          "start_pc": 243
        },
        {
          "end_pc": 352,
          "hash": "0xa0e8446f5149d3823eb8442cc85acb41e3388421994271f4b5d94e60cb087520",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "CALLER",
            "OP_81",
            "AND",
            "PUSH1",
            "OP_81",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_80",
            "OP_83",
            "SHA3",
            "OP_94",
            "OP_87",
            "AND",
            "OP_80",
            "OP_84",
            "MSTORE",
            "OP_94",
            "OP_82",
            "MSTORE",
            "OP_80",
            "OP_83",
            "SHA3",
            "OP_86",
            "OP_90",
            "SSTORE",
            "OP_80",
            "MLOAD",
            "OP_86",
            "OP_81",
            "MSTORE",
            "OP_90",
            "MLOAD",
            "OP_92",
            "OP_94",
            "OP_93",
            "OP_92",
            "PUSH32",
            "OP_92",
            "OP_91",
            "OP_81",
            "OP_90",
            "SUB",
            "OP_90",
            "OP_91",
            "ADD",
            "OP_90",
            "OP_A3",
            "POP",
            "PUSH1"
          ],
          "start_pc": 253
        },
        {
          "end_pc": 359,
          "hash": "0x4d8bc2247ad8010c8edddb205dc0b06c427898328b9ffcd9e26831d9047ccdb4",
          "opcodes": [
            "JUMPDEST",
            "OP_92",
            "OP_91",
            "POP",
            "POP",
            "JUMP"
          ],
          "start_pc": 354
        },
        {
          "end_pc": 371,
          "hash": "0x05a734d8a18a90e66c505d9ccef00d4fcb9dcc52429aa0b6eacde4f178b80623",
          "opcodes": [
            "JUMPDEST",
            "ADDRESS",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "BALANCE"
          ],
          "start_pc": 360
        },
        {
          "end_pc": 389,
          "hash": "0x6e7a83245d3f639a8b56ba426e8a885e6e31aa3f2c7c6ef524518ae6803c6bf2",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "OP_80",
            "MLOAD",
            "OP_91",
            "OP_82",
            "MSTORE",
            "MLOAD",
            "OP_90",
            "OP_81",
            "OP_90",
            "SUB",
            "PUSH1",
            "ADD",
            "OP_90",
            "RETURN"
          ],
          "start_pc": 372
        },
        {
          "end_pc": 402,
          "hash": "0x897d04a880ed47744257ed84a58a6143f90b19fa7c35e80bbb7a7b3e04319369",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "CALLDATALOAD"
          ],
          "start_pc": 390
        },
        {
          "end_pc": 449,
          "hash": "0x2e73799c2b3388bea73d5a1e0cc1fb601235956fc815eb2c5071af5b5dd3245a",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "OP_83",
            "OP_81",
            "AND",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_80",
            "OP_83",
            "SHA3",
            "CALLER",
            "OP_90",
            "OP_94",
            "AND",
            "OP_83",
            "MSTORE",
            "OP_92",
            "OP_90",
            "MSTORE",
            "OP_90",
            "OP_81",
            "SHA3",
            "SLOAD",
            "PUSH2",
            "OP_90",
            "OP_83"
          ],
          "start_pc": 403
        },
        {
          "end_pc": 458,
          "hash": "0x7eea9569e8d05f23ebbc4a6bb56103080a8d3eae4a100019c916325485f9222f",
          "opcodes": [
            "JUMPDEST",
            "OP_80",
            "OP_82",
            "LT",
            "ISZERO",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 450
        },
        {
          "end_pc": 465,
          "hash": "0x7c13111516c714346733c1ab2ce3c1a8f61022418d8d95498f1f64723f1c59ec",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH1",
            "CALLDATALOAD"
          ],
          "start_pc": 459
        },
        {
          "end_pc": 496,
          "hash": "0xd92416a5b810761d87694f668182f11f85800a637c00f7ba9e8f777749c7662c",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "OP_90",
            "OP_81",
            "SHA3",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "CALLER",
            "AND",
            "OP_82",
            "MSTORE",
            "PUSH1",
            "OP_82",
            "OP_90",
            "MSTORE",
            "SLOAD",
            "PUSH2",
            "OP_90",
            "OP_83"
          ],
          "start_pc": 466
        },
        {
          "end_pc": 508,
          "hash": "0xde6918f4f615d59610c0df3236e55c923e484c7e1a9821f376a5e52a507be4bf",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH2",
            "OP_83",
            "OP_83",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 497
        },
        {
          "end_pc": 516,
          "hash": "0x26334aca6ad69bb178aad6c13033c6110beb858ae04af261a955758a8ce044a5",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH1",
            "OP_81",
            "JUMP"
          ],
          "start_pc": 509
        },
        {
          "end_pc": 537,
          "hash": "0x2c52e56d3386fb994d86a22180c2b3a0bf05945d054e4763123c9d37ba4d120f",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",

exec
/bin/bash -lc "sed -n '521,800p' BYTECODE_BUNDLE.json" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
            "CALLDATALOAD",
            "PUSH1",
            "PUSH2",
            "OP_83",
            "OP_83",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 517
        },
        {
          "end_pc": 569,
          "hash": "0xc00a4352d1c1dd17e5763fb056e28afe15ce4626fe15df711672832f8dac65f6",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "OP_81",
            "AND",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_81",
            "OP_90",
            "MSTORE",
            "PUSH1",
            "OP_90",
            "SHA3",
            "SLOAD"
          ],
          "start_pc": 538
        },
        {
          "end_pc": 574,
          "hash": "0x333696bb916c914e5eda6a103eb651058293a77b6db1f1384dfe163a972e7c37",
          "opcodes": [
            "JUMPDEST",
            "OP_91",
            "OP_90",
            "POP",
            "JUMP"
          ],
          "start_pc": 570
        },
        {
          "end_pc": 632,
          "hash": "0x7971888f38d9199c190d342cc99b737435818c9561d8c57ef164649d408a385b",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH1",
            "OP_80",
            "MLOAD",
            "OP_80",
            "OP_82",
            "ADD",
            "OP_90",
            "OP_91",
            "MSTORE",
            "PUSH1",
            "OP_81",
            "MSTORE",
            "PUSH32",
            "PUSH1",
            "OP_82",
            "ADD",
            "MSTORE",
            "OP_81",
            "JUMP"
          ],
          "start_pc": 575
        },
        {
          "end_pc": 670,
          "hash": "0xa34e61fb1fb0a52f84fa1ba76ade029b9a4955fc174b2050d2ce3f16353743f3",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "ADDRESS",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "OP_83",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "EQ",
            "OP_80",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 633
        },
        {
          "end_pc": 684,
          "hash": "0xf7764b6b920f5196f69a817e1acc11dcd46b96c870d7ce46bf63a9f8494302ee",
          "opcodes": [
            "POP",
            "OP_82",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "PUSH1",
            "EQ"
          ],
          "start_pc": 671
        },
        {
          "end_pc": 690,
          "hash": "0xaf23793769a8057a0cb0e7ef5b2f54434eb5440a24d76831783779eb73f982f7",
          "opcodes": [
            "JUMPDEST",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 685
        },
        {
          "end_pc": 698,
          "hash": "0x41b9235c231c48a79764052a52d0615a16765ad41aad15379ebe05f9a5e5f417",
          "opcodes": [
            "PUSH2",
            "OP_82",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 691
        },
        {
          "end_pc": 735,
          "hash": "0x96b5efda6c1108192dd2d71f0f222f3b9ca2317a57c397281804f972d925a006",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "CALLER",
            "AND",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_81",
            "OP_90",
            "MSTORE",
            "PUSH1",
            "OP_90",
            "SHA3",
            "SLOAD",
            "PUSH2",
            "OP_90",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 699
        },
        {
          "end_pc": 750,
          "hash": "0x78001396a596948e9b3ccf2b07fa1bcb3bd0175a90d144823a039fd0ace4a952",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH8",
            "OP_81",
            "JUMP"
          ],
          "start_pc": 736
        },
        {
          "end_pc": 752,
          "hash": "0x61e13f8bf1a1cb34d48bb5361bbcf49e7b618f6411399a7f97f10243fa536b3a",
          "opcodes": [
            "JUMPDEST",
            "PUSH2"
          ],
          "start_pc": 751
        },
        {
          "end_pc": 785,
          "hash": "0x6cf9df8598c411c244cd06f30ec88941a320520cc6b8281886b9a110f7cbc564",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "CALLER",
            "AND",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_81",
            "OP_90",
            "MSTORE",
            "PUSH1",
            "OP_90",
            "SHA3",
            "SLOAD",
            "PUSH2",
            "OP_90",
            "CALLVALUE"
          ],
          "start_pc": 755
        },
        {
          "end_pc": 803,
          "hash": "0xa3dc20337019f44a380d910e02ac78acc985ee2b9573afe6fd7a9d468f253460",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH2",
            "OP_83",
            "OP_83",
            "OP_81",
            "OP_81",
            "ADD",
            "OP_82",
            "OP_90",
            "GT",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 786
        },
        {
          "end_pc": 855,
          "hash": "0xf49d017af4521fd1514fc0913a273d502140eee57ed5f32a1b858f7eb68b6976",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "OP_82",
            "OP_81",
            "AND",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "PUSH1",
            "OP_90",
            "OP_81",

exec
/bin/bash -lc "sed -n '801,1080p' BYTECODE_BUNDLE.json" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
            "MSTORE",
            "PUSH1",
            "OP_80",
            "OP_83",
            "SHA3",
            "OP_93",
            "OP_85",
            "AND",
            "OP_83",
            "MSTORE",
            "OP_92",
            "OP_90",
            "MSTORE",
            "SHA3",
            "SLOAD",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 804
        },
        {
          "end_pc": 857,
          "hash": "0xdc4ff9509e72f588ac609e805c2b0a607c059fc386152a84b2646cc3ecf475c8",
          "opcodes": [
            "JUMPDEST",
            "STOP"
          ],
          "start_pc": 856
        },
        {
          "end_pc": 859,
          "hash": "0x958058fc31de007fb13f9a24445d43f9f9b5e47a55e26d9b6ae3f80c15966753",
          "opcodes": [
            "JUMPDEST",
            "JUMP"
          ],
          "start_pc": 858
        },
        {
          "end_pc": 930,
          "hash": "0x312db89ede37ccd528c81b052d5771c79cdffa2deffd58291af1138445f87c4d",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_80",
            "PUSH1",
            "ADD",
            "OP_82",
            "OP_81",
            "SUB",
            "OP_82",
            "MSTORE",
            "OP_83",
            "OP_81",
            "OP_81",
            "MLOAD",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_91",
            "POP",
            "OP_80",
            "MLOAD",
            "OP_90",
            "PUSH1",
            "ADD",
            "OP_90",
            "OP_80",
            "OP_83",
            "OP_83",
            "OP_82",
            "OP_90",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "OP_84",
            "PUSH1",
            "ADD",
            "DIV",
            "PUSH1",
            "MUL",
            "PUSH1",
            "ADD",
            "CALL",
            "POP",
            "OP_90",
            "POP",
            "OP_90",
            "OP_81",
            "ADD",
            "OP_90",
            "PUSH1",
            "AND",
            "OP_80",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 860
        },
        {
          "end_pc": 955,
          "hash": "0x15bc4685886b0559e4ca82eebb6bd925cbc72f578f620b4bf5dd4da4917772d8",
          "opcodes": [
            "OP_80",
            "OP_82",
            "SUB",
            "OP_80",
            "MLOAD",
            "PUSH1",
            "OP_83",
            "PUSH1",
            "SUB",
            "PUSH2",
            "EXP",
            "SUB",
            "NOT",
            "AND",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_91",
            "POP"
          ],
          "start_pc": 931
        },
        {
          "end_pc": 969,
          "hash": "0xe49bc88a2b041ffacb2c9a056dc12e9accbe4b67b938f618d59324cd9e0c9469",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "OP_92",
            "POP",
            "POP",
            "POP",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_91",
            "SUB",
            "OP_90",
            "RETURN"
          ],
          "start_pc": 956
        },
        {
          "end_pc": 991,
          "hash": "0x2056ec4e73cd45ded28623f1fde31b7199b7014a57f169e8e00523fb35bbaea5",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "OP_80",
            "MLOAD",
            "PUSH1",
            "OP_90",
            "OP_92",
            "AND",
            "OP_82",
            "MSTORE",
            "MLOAD",
            "OP_90",
            "OP_81",
            "OP_90",
            "SUB",
            "PUSH1",
            "ADD",
            "OP_90",
            "RETURN"
          ],
          "start_pc": 970
        },
        {
          "end_pc": 1073,
          "hash": "0x72ed84ee73cafd25449d7b1d9b6455a741af74fdf6d58d98d4e476e0451b2a67",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "CALLER",
            "AND",
            "PUSH1",
            "OP_81",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_81",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_91",
            "OP_82",
            "OP_90",
            "SHA3",
            "OP_93",
            "OP_90",
            "OP_93",
            "SSTORE",
            "OP_80",
            "MLOAD",
            "CALLVALUE",
            "OP_81",
            "MSTORE",
            "OP_90",
            "MLOAD",
            "OP_91",
            "OP_92",
            "PUSH32",
            "OP_92",
            "OP_91",
            "OP_82",
            "OP_90",
            "SUB",
            "ADD",
            "OP_90",
            "OP_A2",
            "JUMP"
          ],
          "start_pc": 992
        },
        {
          "end_pc": 1076,
          "hash": "0x9ef29df57e5689b5ffe35acb31952e4725fe312bb3d3697db7b52302cfdf6a46",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "JUMP"
          ],
          "start_pc": 1074
        },
        {
          "end_pc": 1132,
          "hash": "0x0b9008bc0355c08b31635ef87aa26d385010c46ad2b357f12871a3a66fa0c417",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "CALLER",
            "AND",
            "PUSH1",
            "OP_81",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_81",
            "OP_90",
            "MSTORE",
            "PUSH1",
            "OP_80",
            "OP_82",
            "SHA3",
            "OP_93",
            "OP_90",
            "OP_93",
            "SSTORE",
            "OP_91",
            "MLOAD",
            "OP_90",
            "OP_91",
            "OP_90",
            "OP_84",
            "OP_90",
            "OP_82",
            "OP_81",
            "OP_81",
            "OP_81",
            "OP_85",
            "OP_88",
            "OP_83",
            "CALL",

exec
/bin/bash -lc "sed -n '1081,1360p' BYTECODE_BUNDLE.json" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
            "OP_93",
            "POP",
            "POP",
            "POP",
            "POP",
            "ISZERO",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1077
        },
        {
          "end_pc": 1168,
          "hash": "0x605b10d86a93ca758bb554c4adaba666da47700c984bb9b32179784057ad3912",
          "opcodes": [
            "CALLER",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "GAS",
            "PUSH1",
            "MLOAD",
            "OP_84",
            "OP_90",
            "PUSH1",
            "OP_81",
            "OP_81",
            "OP_81",
            "OP_85",
            "OP_88",
            "OP_88",
            "CALL",
            "OP_93",
            "POP",
            "POP",
            "POP",
            "POP",
            "ISZERO",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1133
        },
        {
          "end_pc": 1172,
          "hash": "0xc0d1af9b6a213f7e750526dcf639e4f406ef287846d83c54abc7f4eba244fe2b",
          "opcodes": [
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1169
        },
        {
          "end_pc": 1243,
          "hash": "0xd7aa5bc978adceb44b414535a4ea6c862da7a107e78b1e2fdcd04aaede5f888f",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "OP_80",
            "MLOAD",
            "OP_83",
            "OP_81",
            "MSTORE",
            "OP_90",
            "MLOAD",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "CALLER",
            "AND",
            "OP_91",
            "PUSH32",
            "OP_91",
            "OP_90",
            "OP_81",
            "OP_90",
            "SUB",
            "PUSH1",
            "ADD",
            "OP_90",
            "OP_A2",
            "POP",
            "PUSH1",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1173
        },
        {
          "end_pc": 1278,
          "hash": "0x089f9f5b8aa1243157adb6b313477a46472fcd12552df98504a0e988c9a0ae03",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "CALLER",
            "AND",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_81",
            "OP_90",
            "MSTORE",
            "PUSH1",
            "OP_90",
            "SHA3",
            "SLOAD",
            "PUSH2",
            "OP_90",
            "OP_83",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1244
        },
        {
          "end_pc": 1285,
          "hash": "0x2467103003d7205a14a1cd9b04fa5f36db1d6277f7e0b2da22926d9f34b93c17",
          "opcodes": [
            "JUMPDEST",
            "OP_90",
            "POP",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1279
        },
        {
          "end_pc": 1332,
          "hash": "0x5c00f5737c77f9f4d02f0fa5f175c3c6bc232a2ec00aa30440920c42af0788f2",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "CALLER",
            "OP_81",
            "AND",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_81",
            "OP_90",
            "MSTORE",
            "PUSH1",
            "OP_80",
            "OP_82",
            "SHA3",
            "OP_93",
            "OP_90",
            "OP_93",
            "SSTORE",
            "OP_90",
            "OP_85",
            "AND",
            "OP_81",
            "MSTORE",
            "SHA3",
            "SLOAD",
            "PUSH2",
            "OP_90",
            "OP_83",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1286
        },
        {
          "end_pc": 1426,
          "hash": "0x254afd3f69bef8f8867c8ef785507d63df140f93f3104ab19762f688e7ea0ee3",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "OP_84",
            "OP_81",
            "AND",
            "PUSH1",
            "OP_81",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_81",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_91",
            "OP_82",
            "OP_90",
            "SHA3",
            "OP_94",
            "OP_90",
            "OP_94",
            "SSTORE",
            "OP_80",
            "MLOAD",
            "OP_86",
            "OP_81",
            "MSTORE",
            "OP_90",
            "MLOAD",
            "OP_91",
            "OP_93",
            "CALLER",
            "OP_90",
            "OP_93",
            "AND",
            "OP_92",
            "PUSH32",
            "OP_92",
            "OP_91",
            "OP_82",
            "OP_90",
            "SUB",
            "ADD",
            "OP_90",
            "OP_A3",
            "POP",
            "PUSH1",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1333
        },
        {
          "end_pc": 1433,
          "hash": "0xc1904f503499c50de4a20027e0e4d53d1c7486432f275aef056171cf4757f1b9",
          "opcodes": [
            "JUMPDEST",
            "ISZERO",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1427
        },
        {
          "end_pc": 1437,
          "hash": "0xfe8b836b2690efb4cf848a3fb768a0bca3b52ad98f740fc82496251685f9391d",
          "opcodes": [
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1434
        },
        {
          "end_pc": 1464,
          "hash": "0x74455ac233703f4848faadb5cfc7e31bd85145f589527867ee38256cea5cf6c5",
          "opcodes": [
            "JUMPDEST",
            "ADDRESS",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "OP_83",
            "PUSH1",
            "PUSH1",
            "PUSH1",

exec
/bin/bash -lc "sed -n '1361,1640p' BYTECODE_BUNDLE.json" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
            "EXP",
            "SUB",
            "AND",
            "EQ",
            "OP_80",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1438
        },
        {
          "end_pc": 1478,
          "hash": "0x6037c78b2adba608b0fc8f39844844fe2e614fdbb8ea002f4bd8cdc5dd8e5dc3",
          "opcodes": [
            "POP",
            "OP_82",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "PUSH1",
            "EQ"
          ],
          "start_pc": 1465
        },
        {
          "end_pc": 1484,
          "hash": "0xcce1e76c478effbd68785a68ef98e1e19e86bfd242da3d679a6acd466b0d71e7",
          "opcodes": [
            "JUMPDEST",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1479
        },
        {
          "end_pc": 1494,
          "hash": "0x5b92363071616b81c1699d2c1fd2497d1dc702d611e099a966190c75208347ec",
          "opcodes": [
            "PUSH2",
            "OP_84",
            "CALLER",
            "OP_84",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1485
        },
        {
          "end_pc": 1529,
          "hash": "0xdcec2b8889c096d15bccb00bfe1e7d5d0a036b5f4571ff2b5d7d7672b2b78c57",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "OP_84",
            "AND",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_81",
            "OP_90",
            "MSTORE",
            "PUSH1",
            "OP_90",
            "SHA3",
            "SLOAD",
            "PUSH2",
            "OP_90",
            "OP_83",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1495
        },
        {
          "end_pc": 1536,
          "hash": "0x01d0916ca4c807f9e618604ff31061511c8becc09126fff21a75877ad0d9d891",
          "opcodes": [
            "JUMPDEST",
            "ISZERO",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1530
        },
        {
          "end_pc": 1540,
          "hash": "0x8b35c27770753c27328f72051e22d4d6d5ebbe70b744db2218707bfa4c973249",
          "opcodes": [
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1537
        },
        {
          "end_pc": 1549,
          "hash": "0x8d1a9725de8b94a06d952cf3dccf7a60a056f613405cd3fca587c1c51a959081",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "OP_82",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1541
        },
        {
          "end_pc": 1555,
          "hash": "0x9d20ebdb5bbadaff599163ef7678bcd68dad7612349358e4a4c4097fb9046e75",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1550
        },
        {
          "end_pc": 1655,
          "hash": "0x03f178a0d725d3fc887a88b283abfbb20f1ce5bd57d3aeef93ca7623d69d67b5",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "OP_85",
            "OP_81",
            "AND",
            "PUSH1",
            "OP_81",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_80",
            "OP_83",
            "SHA3",
            "CALLER",
            "OP_86",
            "AND",
            "OP_84",
            "MSTORE",
            "OP_82",
            "MSTORE",
            "OP_91",
            "OP_82",
            "OP_90",
            "SHA3",
            "OP_94",
            "OP_90",
            "OP_94",
            "SSTORE",
            "OP_80",
            "MLOAD",
            "OP_86",
            "OP_81",
            "MSTORE",
            "OP_90",
            "MLOAD",
            "OP_92",
            "OP_87",
            "AND",
            "OP_93",
            "OP_91",
            "OP_92",
            "PUSH32",
            "OP_92",
            "OP_91",
            "OP_81",
            "OP_90",
            "SUB",
            "OP_90",
            "OP_91",
            "ADD",
            "OP_90",
            "OP_A3"
          ],
          "start_pc": 1556
        },
        {
          "end_pc": 1665,
          "hash": "0xdef2bcb2d1300ee7fa3a28ddd7e171d7ba12903ade81308390db778b24be6f13",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "PUSH1",
            "OP_93",
            "OP_92",
            "POP",
            "POP",
            "POP",
            "JUMP"
          ],
          "start_pc": 1656
        },
        {
          "end_pc": 1712,
          "hash": "0x8774022cd9ef10070574bbad2d978c697880d350de8abb94dd49a171fc880efd",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "OP_85",
            "OP_81",
            "AND",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_81",
            "OP_90",
            "MSTORE",
            "PUSH1",
            "OP_80",
            "OP_82",
            "SHA3",
            "OP_93",
            "OP_90",
            "OP_93",
            "SSTORE",
            "OP_90",
            "OP_85",
            "AND",
            "OP_81",
            "MSTORE",
            "SHA3",
            "SLOAD",
            "PUSH2",
            "OP_90",
            "OP_83",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1666
        },
        {
          "end_pc": 1776,
          "hash": "0x94be26d5ec0cb15d2f8d1b94eeb8b329125edfab390999ecafff54563dd65e6b",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "OP_84",
            "OP_81",
            "AND",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_81",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_80",
            "OP_83",
            "SHA3",

exec
/bin/bash -lc "sed -n '1641,1920p' BYTECODE_BUNDLE.json" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
            "OP_94",
            "OP_90",
            "OP_94",
            "SSTORE",
            "OP_87",
            "OP_83",
            "AND",
            "OP_82",
            "MSTORE",
            "PUSH1",
            "OP_81",
            "MSTORE",
            "OP_83",
            "OP_82",
            "SHA3",
            "CALLER",
            "OP_90",
            "OP_93",
            "AND",
            "OP_82",
            "MSTORE",
            "OP_91",
            "OP_90",
            "OP_91",
            "MSTORE",
            "SHA3",
            "SLOAD",
            "PUSH2",
            "OP_90",
            "OP_83",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1713
        },
        {
          "end_pc": 1782,
          "hash": "0x61c72ab0caceb09cc0b426883f21c7ceec3d7f4fd9a1e5746887b49041e98311",
          "opcodes": [
            "JUMPDEST",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1777
        },
        {
          "end_pc": 1880,
          "hash": "0x099a5c7e13ad74081a3d99f9f8a36e14df6ef8af1f8445aa9175a27abe3b063e",
          "opcodes": [
            "OP_82",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "PUSH4",
            "CALLER",
            "OP_84",
            "ADDRESS",
            "PUSH1",
            "MLOAD",
            "OP_84",
            "PUSH1",
            "PUSH1",
            "EXP",
            "MUL",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_80",
            "OP_84",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_83",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_82",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_93",
            "POP",
            "POP",
            "POP",
            "POP",
            "PUSH1",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_83",
            "SUB",
            "OP_81",
            "PUSH1",
            "OP_87",
            "PUSH2",
            "GAS",
            "SUB",
            "CALL",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1783
        },
        {
          "end_pc": 1891,
          "hash": "0x6b77a513738c8aa55a68438c6caac1bc2b96c7bfbb1e8e873c87c5f4c895aae7",
          "opcodes": [
            "POP",
            "POP",
            "POP",
            "PUSH1",
            "OP_90",
            "POP",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1881
        },
        {
          "end_pc": 1896,
          "hash": "0x89569bb11d637e430071517748af0bb04384b8c9d2e4f93dd5a9c14bf39c912e",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1892
        },
        {
          "end_pc": 1903,
          "hash": "0xc17258eedf558b32572a06ce5f7d05f9a632347f4486cf414fc8ee1de9db80f1",
          "opcodes": [
            "JUMPDEST",
            "ISZERO",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1897
        },
        {
          "end_pc": 1907,
          "hash": "0x8d8c043f82ba2e7cdc531625ff102db4a56fbe189a0e9c6c9c4f4ee7815ca44a",
          "opcodes": [
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1904
        },
        {
          "end_pc": 1916,
          "hash": "0x555b0722918dcc578185df7bac7f11ee486e593aa7fd9905036a9b754e97bcc4",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "OP_81",
            "OP_81",
            "ADD",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1908
        },
        {
          "end_pc": 1923,
          "hash": "0x196249de90782f90680dcbf33cba2f6223e1dc222471a8df5f1b94346aa05a67",
          "opcodes": [
            "JUMPDEST",
            "ISZERO",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1917
        },
        {
          "end_pc": 1927,
          "hash": "0xbf07d4712faf2391ad37cae99b09f548286e5f2f10c155f718e42d5da8d2682f",
          "opcodes": [
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1924
        },
        {
          "end_pc": 1936,
          "hash": "0x6dcf4e7c8ac1bac1475b61bfecbb3d8156b2be48f720986c3954485286e73b00",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "OP_80",
            "OP_82",
            "SUB",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1928
        }
      ],
      "callsites": [
        {
          "opcode": "CALL",
          "pc": 914,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 1121,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 1157,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 1875,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        }
      ],
      "cfg_edges": [
        {
          "from": "bb:0",
          "to": "bb:174",
          "type": "control_flow"
        },
        {
          "from": "bb:0",
          "to": "bb:11",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:11",
          "to": "bb:185",
          "type": "control_flow"
        },
        {
          "from": "bb:11",
          "to": "bb:31",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:31",
          "to": "bb:243",
          "type": "control_flow"
        },
        {
          "from": "bb:31",
          "to": "bb:42",
          "type": "control_flow_fallthrough"

exec
/bin/bash -lc "rg -n 'selector|storage|detector|evidence|proxy|slot|delegate|implementation|findings|functions|events' BYTECODE_BUNDLE.json" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
2349:      "dispatcher_type": "selector_jump_table",
2353:          "selector": "0x06fdde03"
2357:          "selector": "0x095ea7b3"
2361:          "selector": "0x18160ddd"
2365:          "selector": "0x23b872dd"
2369:          "selector": "0x2e1a7d4d"
2373:          "selector": "0x313ce567"
2377:          "selector": "0x3177029f"
2381:          "selector": "0x70a08231"
2385:          "selector": "0x95d89b41"
2389:          "selector": "0xa9059cbb"
2393:          "selector": "0xbe040fb0"
2397:          "selector": "0xc2930f91"
2401:          "selector": "0xd0e30db0"
2405:          "selector": "0xdd62ed3e"
2408:      "functions": [
2414:          "selector": "0x06fdde03",
2417:            "delegatecall": 0,
2421:          "storage": {
2423:            "slots": [],
2432:          "selector": "0x095ea7b3",
2435:            "delegatecall": 0,
2439:          "storage": {
2441:            "slots": [],
2450:          "selector": "0x18160ddd",
2453:            "delegatecall": 0,
2457:          "storage": {
2459:            "slots": [],
2468:          "selector": "0x23b872dd",
2471:            "delegatecall": 0,
2475:          "storage": {
2477:            "slots": [],
2486:          "selector": "0x2e1a7d4d",
2489:            "delegatecall": 0,
2493:          "storage": {
2495:            "slots": [],
2504:          "selector": "0x313ce567",
2507:            "delegatecall": 0,
2511:          "storage": {
2513:            "slots": [],
2522:          "selector": "0x3177029f",
2525:            "delegatecall": 0,
2529:          "storage": {
2531:            "slots": [],
2540:          "selector": "0x70a08231",
2543:            "delegatecall": 0,
2547:          "storage": {
2549:            "slots": [],
2558:          "selector": "0x95d89b41",
2561:            "delegatecall": 0,
2565:          "storage": {
2567:            "slots": [],
2576:          "selector": "0xa9059cbb",
2579:            "delegatecall": 0,
2583:          "storage": {
2585:            "slots": [],
2594:          "selector": "0xbe040fb0",
2597:            "delegatecall": 0,
2601:          "storage": {
2603:            "slots": [],
2612:          "selector": "0xc2930f91",
2615:            "delegatecall": 0,
2619:          "storage": {
2621:            "slots": [],
2630:          "selector": "0xd0e30db0",
2633:            "delegatecall": 0,
2637:          "storage": {
2639:            "slots": [],
2648:          "selector": "0xdd62ed3e",
2651:            "delegatecall": 0,
2655:          "storage": {
2657:            "slots": [],
2662:      "selectors": [
2682:        "delegatecall": 0,
2685:        "upgrade_slot_write_suspected": false
2687:      "storage": {
2690:        "slots": [],
2721:    "implementation_address": null,
2722:    "is_proxy": false,
3922:          "selector": "0x06fdde03",
3928:          "selector": "0x095ea7b3",
3934:          "selector": "0x18160ddd",
3940:          "selector": "0x23b872dd",
3946:          "selector": "0x2e1a7d4d",
3952:          "selector": "0x313ce567",
3958:          "selector": "0x3177029f",
3964:          "selector": "0x70a08231",
3970:          "selector": "0x95d89b41",
3976:          "selector": "0xa9059cbb",
3982:          "selector": "0xbe040fb0",
3988:          "selector": "0xc2930f91",
3994:          "selector": "0xd0e30db0",
4000:          "selector": "0xdd62ed3e",
4010:  "detector_findings": [
4013:      "evidence_json": {
4066:      "evidence_json": {
4120:    "delegatecall_count": 0,

exec
/bin/bash -lc "sed -n '2340,2715p' BYTECODE_BUNDLE.json" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1928",
          "to": "bb:354",
          "type": "control_flow"
        }
      ],
      "cfg_hash": "0x4e4cb74ef62829796a68af939ca76f84656bf4a6f7a47f020532f3b87ed1580c",
      "dispatcher_type": "selector_jump_table",
      "function_entries": [
        {
          "entry_pc": null,
          "selector": "0x06fdde03"
        },
        {
          "entry_pc": 404098525,
          "selector": "0x095ea7b3"
        },
        {
          "entry_pc": 599290589,
          "selector": "0x18160ddd"
        },
        {
          "entry_pc": 773487949,
          "selector": "0x23b872dd"
        },
        {
          "entry_pc": 826074471,
          "selector": "0x2e1a7d4d"
        },
        {
          "entry_pc": 829883039,
          "selector": "0x313ce567"
        },
        {
          "entry_pc": 1889567281,
          "selector": "0x3177029f"
        },
        {
          "entry_pc": 2514000705,
          "selector": "0x70a08231"
        },
        {
          "entry_pc": 2835717307,
          "selector": "0x95d89b41"
        },
        {
          "entry_pc": 3187937200,
          "selector": "0xa9059cbb"
        },
        {
          "entry_pc": 3264417681,
          "selector": "0xbe040fb0"
        },
        {
          "entry_pc": 3504541104,
          "selector": "0xc2930f91"
        },
        {
          "entry_pc": 3714247998,
          "selector": "0xd0e30db0"
        },
        {
          "entry_pc": 856,
          "selector": "0xdd62ed3e"
        }
      ],
      "functions": [
        {
          "auth": {
            "guards": []
          },
          "entry_pc": null,
          "selector": "0x06fdde03",
          "sinks": {
            "call": 4,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 11,
            "slots": [],
            "writes": 8
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 404098525,
          "selector": "0x095ea7b3",
          "sinks": {
            "call": 4,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 11,
            "slots": [],
            "writes": 8
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 599290589,
          "selector": "0x18160ddd",
          "sinks": {
            "call": 4,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 11,
            "slots": [],
            "writes": 8
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 773487949,
          "selector": "0x23b872dd",
          "sinks": {
            "call": 4,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 11,
            "slots": [],
            "writes": 8
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 826074471,
          "selector": "0x2e1a7d4d",
          "sinks": {
            "call": 4,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 11,
            "slots": [],
            "writes": 8
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 829883039,
          "selector": "0x313ce567",
          "sinks": {
            "call": 4,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 11,
            "slots": [],
            "writes": 8
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 1889567281,
          "selector": "0x3177029f",
          "sinks": {
            "call": 4,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 11,
            "slots": [],
            "writes": 8
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 2514000705,
          "selector": "0x70a08231",
          "sinks": {
            "call": 4,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 11,
            "slots": [],
            "writes": 8
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 2835717307,
          "selector": "0x95d89b41",
          "sinks": {
            "call": 4,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 11,
            "slots": [],
            "writes": 8
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 3187937200,
          "selector": "0xa9059cbb",
          "sinks": {
            "call": 4,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 11,
            "slots": [],
            "writes": 8
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 3264417681,
          "selector": "0xbe040fb0",
          "sinks": {
            "call": 4,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 11,
            "slots": [],
            "writes": 8
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 3504541104,
          "selector": "0xc2930f91",
          "sinks": {
            "call": 4,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 11,
            "slots": [],
            "writes": 8
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 3714247998,
          "selector": "0xd0e30db0",
          "sinks": {
            "call": 4,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 11,
            "slots": [],
            "writes": 8
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 856,
          "selector": "0xdd62ed3e",
          "sinks": {
            "call": 4,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 11,
            "slots": [],
            "writes": 8
          }
        }
      ],
      "selectors": [
        "0x06fdde03",
        "0x095ea7b3",
        "0x18160ddd",
        "0x23b872dd",
        "0x2e1a7d4d",
        "0x313ce567",
        "0x3177029f",
        "0x70a08231",
        "0x95d89b41",
        "0xa9059cbb",
        "0xbe040fb0",
        "0xc2930f91",
        "0xd0e30db0",
        "0xdd62ed3e"
      ],
      "sinks": {
        "call": 4,
        "create": 0,
        "create2": 0,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0,
        "upgrade_slot_write_suspected": false
      },
      "storage": {
        "keccak_count": 24,
        "reads": 11,
        "slots": [],
        "writes": 8
      },
      "version": "analysis_artifact_v1"
    },
    "block_number": null,
    "chain_id": 1,
    "codehash": "0x6a7f89334b0591d89510e73bbda2d71e7ad8ad436dd894e5afd6c5ebe494048a",
    "created_at": "2026-04-04T19:57:44.000000Z",
    "id": 2507,
    "updated_at": "2026-04-04T19:57:44.000000Z",
    "version": "analysis_artifact_v1"
  },
  "analysis_run": {
    "address": "0x89d64bc7e46bdc49a89652ae9bb167418cbad62e",
    "block_number": null,
    "chain_id": 1,
    "child_links": [],
    "created_at": "2025-12-19T20:03:57.000000Z",
    "id": "019b3836-3d2f-7228-a456-cb5fe5dd8c99",
    "parent_links": [],
    "status": "running",
    "updated_at": "2026-04-04T19:57:44.000000Z"
  },
  "artifact": {
    "codehash": "0x6a7f89334b0591d89510e73bbda2d71e7ad8ad436dd894e5afd6c5ebe494048a",

exec
/bin/bash -lc "sed -n '4010,4160p' BYTECODE_BUNDLE.json" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
  "detector_findings": [
    {
      "confidence": 60,
      "evidence_json": {
        "call_count": 4,
        "examples": [
          {
            "opcode": "CALL",
            "pc": 914,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          },
          {
            "opcode": "CALL",
            "pc": 1121,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          },
          {
            "opcode": "CALL",
            "pc": 1157,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          }
        ],
        "guards_detected": [],
        "untrusted_call_count": 4
      },
      "normalized_json": {
        "sink": "CALL"
      },
      "severity": "high",
      "title": "Untrusted CALL target/value reachable",
      "validated": true,
      "validation_json": {
        "attempts": 1,
        "call_targets": [
          "0x0000000000000000000000000000000000000004",
          "0x89d64bc7e46bdc49a89652ae9bb167418cbad62e"
        ],
        "classification": "target_varies",
        "confirmed": true,
        "errors": 0,
        "matched_probe": null,
        "sink": "CALL",
        "status": "confirmed",
        "target_varies": true,
        "trace_id": "0x84bccb220bfdaddbac5d69282c6b12bb55609855784ce83310628aa3bcf202e6",
        "trace_mode": "callTracer"
      }
    },
    {
      "confidence": 55,
      "evidence_json": {
        "eth_value_calls": 4,
        "examples": [
          {
            "opcode": "CALL",
            "pc": 914,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          },
          {
            "opcode": "CALL",
            "pc": 1121,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          },
          {
            "opcode": "CALL",
            "pc": 1157,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          }
        ],
        "guards_detected": []
      },
      "normalized_json": {
        "sink": "CALL",
        "value": "nonzero"
      },
      "severity": "high",
      "title": "ETH value transfer possible",
      "validated": true,
      "validation_json": {
        "attempts": 1,
        "call_targets": [
          "0x0000000000000000000000000000000000000004",
          "0x89d64bc7e46bdc49a89652ae9bb167418cbad62e"
        ],
        "classification": "target_varies",
        "confirmed": true,
        "errors": 0,
        "matched_probe": null,
        "sink": "CALL",
        "status": "confirmed",
        "target_varies": true,
        "trace_id": "0x84bccb220bfdaddbac5d69282c6b12bb55609855784ce83310628aa3bcf202e6",
        "trace_mode": "callTracer"
      }
    }
  ],
  "heuristics_summary": {
    "create2_count": 0,
    "delegatecall_count": 0,
    "flags": [],
    "selfdestruct_count": 0
  }
}
exec
/bin/bash -lc "sed -n '2716,4010p' BYTECODE_BUNDLE.json" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
    "compiler_json": {
      "etherscan": {
        "skipped": true
      }
    },
    "implementation_address": null,
    "is_proxy": false,
    "runtime_bytecode": {
      "full": "0x606060405236156100ae5760e060020a600035046306fdde0381146100b9578063095ea7b3146100f357806318160ddd1461016857806323b872dd146101865780632e1a7d4d146101cb578063313ce567146101fd5780633177029f1461020557806370a082311461021a57806395d89b411461023f578063a9059cbb14610279578063be040fb0146102bb578063c2930f91146102e0578063d0e30db0146102ef578063dd62ed3e14610324575b61035861035a6102f3565b61035c60408051808201909152601181527f457468657220546f6b656e2050726f7879000000000000000000000000000000602082015281565b6101746004356024355b600160a060020a03338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b30600160a060020a0316315b60408051918252519081900360200190f35b6101746004356024356044355b600160a060020a0383811660009081526001602090815260408083203390941683529290529081205461059390835b80821015610162565b6101746004355b60406000908120600160a060020a033316825260208290525461043590835b600061077d83836101c2565b6103ca601281565b61017460043560243560006106f183836100fd565b610174600435600160a060020a0381166000908152602081905260409020545b919050565b61035c60408051808201909152600381527f4554480000000000000000000000000000000000000000000000000000000000602082015281565b610174600435602435600030600160a060020a031683600160a060020a031614806102ad575082600160a060020a03166000145b156104dc576104ff826101d2565b610358600160a060020a033316600090815260208190526040902054610432906101d2565b610174670de0b6b3a764000081565b6103585b600160a060020a0333166000908152602081905260409020546103e090345b60006107698383818101829011610162565b610174600435602435600160a060020a03828116600090815260016020908152604080832093851683529290522054610162565b005b565b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156103bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6040805160ff9092168252519081900360200190f35b600160a060020a03331660008181526020818152604091829020939093558051348152905191927fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92918290030190a2565b50565b600160a060020a033316600081815260208190526040808220939093559151909190849082818181858883f1935050505015156104955733600160a060020a03165a60405184906000818181858888f19350505050151561049557610002565b604080518381529051600160a060020a033316917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250600161023a565b600160a060020a03331660009081526020819052604090205461050690836101f1565b9050610162565b600160a060020a0333811660009081526020819052604080822093909355908516815220546105359083610312565b600160a060020a03848116600081815260208181526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3506001610162565b151561059e57610002565b30600160a060020a031683600160a060020a031614806105c7575082600160a060020a03166000145b156105d7576105fa843384610193565b600160a060020a03841660009081526020819052604090205461068290836101f1565b151561060557610002565b61060e826101d2565b50610678565b600160a060020a038581166000818152600160209081526040808320338616845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35b5060019392505050565b600160a060020a0385811660009081526020819052604080822093909355908516815220546106b19083610312565b600160a060020a038481166000908152602081815260408083209490945587831682526001815283822033909316825291909152205461061490836101f1565b156107645782600160a060020a0316634889ca883384306040518460e060020a0281526004018084600160a060020a0316815260200183815260200182600160a060020a0316815260200193505050506000604051808303816000876161da5a03f1156100025750505060019050610162565b610002565b151561077457610002565b50818101610162565b151561078857610002565b5080820361016256",
      "head": null,
      "length": 3876,
      "tail": null,
      "truncated": false
    },
    "verified_source": false
  },
  "capability_graph": {
    "address": "0x89d64bc7e46bdc49a89652ae9bb167418cbad62e",
    "block_number": null,
    "chain_id": 1,
    "codehash": "0x6a7f89334b0591d89510e73bbda2d71e7ad8ad436dd894e5afd6c5ebe494048a",
    "created_at": "2026-04-04T19:57:45.000000Z",
    "graph_hash": "0xba4fb519ba52f679fb6610b3e90cbfaa70d0a0f5f890a57d51246a13d1cd5718",
    "graph_json": {
      "edges": [
        {
          "from": "bb:0",
          "to": "bb:174",
          "type": "control_flow"
        },
        {
          "from": "bb:0",
          "to": "bb:11",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:11",
          "to": "bb:185",
          "type": "control_flow"
        },
        {
          "from": "bb:11",
          "to": "bb:31",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:31",
          "to": "bb:243",
          "type": "control_flow"
        },
        {
          "from": "bb:31",
          "to": "bb:42",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:42",
          "to": "bb:360",
          "type": "control_flow"
        },
        {
          "from": "bb:42",
          "to": "bb:53",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:53",
          "to": "bb:390",
          "type": "control_flow"
        },
        {
          "from": "bb:53",
          "to": "bb:64",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:64",
          "to": "bb:459",
          "type": "control_flow"
        },
        {
          "from": "bb:64",
          "to": "bb:75",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:75",
          "to": "bb:509",
          "type": "control_flow"
        },
        {
          "from": "bb:75",
          "to": "bb:86",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:86",
          "to": "bb:517",
          "type": "control_flow"
        },
        {
          "from": "bb:86",
          "to": "bb:97",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:97",
          "to": "bb:538",
          "type": "control_flow"
        },
        {
          "from": "bb:97",
          "to": "bb:108",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:108",
          "to": "bb:575",
          "type": "control_flow"
        },
        {
          "from": "bb:108",
          "to": "bb:119",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:119",
          "to": "bb:633",
          "type": "control_flow"
        },
        {
          "from": "bb:119",
          "to": "bb:130",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:130",
          "to": "bb:699",
          "type": "control_flow"
        },
        {
          "from": "bb:130",
          "to": "bb:141",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:141",
          "to": "bb:736",
          "type": "control_flow"
        },
        {
          "from": "bb:141",
          "to": "bb:152",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:152",
          "to": "bb:751",
          "type": "control_flow"
        },
        {
          "from": "bb:152",
          "to": "bb:163",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:163",
          "to": "bb:804",
          "type": "control_flow"
        },
        {
          "from": "bb:163",
          "to": "bb:174",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:174",
          "to": "bb:755",
          "type": "control_flow"
        },
        {
          "from": "bb:243",
          "to": "bb:253",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:253",
          "to": "bb:354",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:360",
          "to": "bb:372",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:390",
          "to": "bb:403",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:403",
          "to": "bb:450",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:450",
          "to": "bb:354",
          "type": "control_flow"
        },
        {
          "from": "bb:459",
          "to": "bb:466",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:466",
          "to": "bb:497",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:497",
          "to": "bb:450",
          "type": "control_flow"
        },
        {
          "from": "bb:517",
          "to": "bb:253",
          "type": "control_flow"
        },
        {
          "from": "bb:538",
          "to": "bb:570",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:633",
          "to": "bb:685",
          "type": "control_flow"
        },
        {
          "from": "bb:633",
          "to": "bb:671",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:671",
          "to": "bb:685",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:685",
          "to": "bb:1244",
          "type": "control_flow"
        },
        {
          "from": "bb:685",
          "to": "bb:691",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:691",
          "to": "bb:466",
          "type": "control_flow"
        },
        {
          "from": "bb:699",
          "to": "bb:466",
          "type": "control_flow"
        },
        {
          "from": "bb:751",
          "to": "bb:755",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:755",
          "to": "bb:786",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:786",
          "to": "bb:354",
          "type": "control_flow"
        },
        {
          "from": "bb:804",
          "to": "bb:354",
          "type": "control_flow"
        },
        {
          "from": "bb:860",
          "to": "bb:956",
          "type": "control_flow"
        },
        {
          "from": "bb:860",
          "to": "bb:931",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:931",
          "to": "bb:956",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1077",
          "to": "bb:1173",
          "type": "control_flow"
        },
        {
          "from": "bb:1077",
          "to": "bb:1133",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1133",
          "to": "bb:1173",
          "type": "control_flow"
        },
        {
          "from": "bb:1133",
          "to": "bb:1169",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1173",
          "to": "bb:570",
          "type": "control_flow"
        },
        {
          "from": "bb:1244",
          "to": "bb:497",
          "type": "control_flow"
        },
        {
          "from": "bb:1279",
          "to": "bb:354",
          "type": "control_flow"
        },
        {
          "from": "bb:1286",
          "to": "bb:786",
          "type": "control_flow"
        },
        {
          "from": "bb:1333",
          "to": "bb:354",
          "type": "control_flow"
        },
        {
          "from": "bb:1427",
          "to": "bb:1438",
          "type": "control_flow"
        },
        {
          "from": "bb:1427",
          "to": "bb:1434",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1438",
          "to": "bb:1479",
          "type": "control_flow"
        },
        {
          "from": "bb:1438",
          "to": "bb:1465",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1465",
          "to": "bb:1479",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1479",
          "to": "bb:1495",
          "type": "control_flow"
        },
        {
          "from": "bb:1479",
          "to": "bb:1485",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1485",
          "to": "bb:403",
          "type": "control_flow"
        },
        {
          "from": "bb:1495",
          "to": "bb:497",
          "type": "control_flow"
        },
        {
          "from": "bb:1530",
          "to": "bb:1541",
          "type": "control_flow"
        },
        {
          "from": "bb:1530",
          "to": "bb:1537",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1541",
          "to": "bb:466",
          "type": "control_flow"
        },
        {
          "from": "bb:1550",
          "to": "bb:1656",
          "type": "control_flow"
        },
        {
          "from": "bb:1556",
          "to": "bb:1656",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1666",
          "to": "bb:786",
          "type": "control_flow"
        },
        {
          "from": "bb:1713",
          "to": "bb:497",
          "type": "control_flow"
        },
        {
          "from": "bb:1777",
          "to": "bb:1892",
          "type": "control_flow"
        },
        {
          "from": "bb:1777",
          "to": "bb:1783",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1783",
          "to": "bb:1881",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1881",
          "to": "bb:354",
          "type": "control_flow"
        },
        {
          "from": "bb:1897",
          "to": "bb:1908",
          "type": "control_flow"
        },
        {
          "from": "bb:1897",
          "to": "bb:1904",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1908",
          "to": "bb:354",
          "type": "control_flow"
        },
        {
          "from": "bb:1917",
          "to": "bb:1928",
          "type": "control_flow"
        },
        {
          "from": "bb:1917",
          "to": "bb:1924",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1928",
          "to": "bb:354",
          "type": "control_flow"
        },
        {
          "from": "fn:0x095ea7b3",
          "to": "bb:404098525",
          "type": "entry"
        },
        {
          "from": "fn:0x18160ddd",
          "to": "bb:599290589",
          "type": "entry"
        },
        {
          "from": "fn:0x23b872dd",
          "to": "bb:773487949",
          "type": "entry"
        },
        {
          "from": "fn:0x2e1a7d4d",
          "to": "bb:826074471",
          "type": "entry"
        },
        {
          "from": "fn:0x313ce567",
          "to": "bb:829883039",
          "type": "entry"
        },
        {
          "from": "fn:0x3177029f",
          "to": "bb:1889567281",
          "type": "entry"
        },
        {
          "from": "fn:0x70a08231",
          "to": "bb:2514000705",
          "type": "entry"
        },
        {
          "from": "fn:0x95d89b41",
          "to": "bb:2835717307",
          "type": "entry"
        },
        {
          "from": "fn:0xa9059cbb",
          "to": "bb:3187937200",
          "type": "entry"
        },
        {
          "from": "fn:0xbe040fb0",
          "to": "bb:3264417681",
          "type": "entry"
        },
        {
          "from": "fn:0xc2930f91",
          "to": "bb:3504541104",
          "type": "entry"
        },
        {
          "from": "fn:0xd0e30db0",
          "to": "bb:3714247998",
          "type": "entry"
        },
        {
          "from": "fn:0xdd62ed3e",
          "to": "bb:856",
          "type": "entry"
        },
        {
          "from": "bb:860",
          "to": "call:914",
          "type": "contains"
        },
        {
          "from": "call:914",
          "to": "sink:call",
          "type": "capability"
        },
        {
          "from": "bb:1077",
          "to": "call:1121",
          "type": "contains"
        },
        {
          "from": "call:1121",
          "to": "sink:call",
          "type": "capability"
        },
        {
          "from": "bb:1133",
          "to": "call:1157",
          "type": "contains"
        },
        {
          "from": "call:1157",
          "to": "sink:call",
          "type": "capability"
        },
        {
          "from": "bb:1783",
          "to": "call:1875",
          "type": "contains"
        },
        {
          "from": "call:1875",
          "to": "sink:call",
          "type": "capability"
        }
      ],
      "nodes": [
        {
          "end_pc": 10,
          "hash": "0xfd342fab7341c089cd1fdef11e74566bbd7ffa7ac4f4f86648f0fae109a15a10",
          "id": "bb:0",
          "start_pc": 0,
          "type": "basic_block"
        },
        {
          "end_pc": 30,
          "hash": "0xc70ed12c4a201f457352f1081faa541ad2d0e9ed873ab7189672a232c2981e6e",
          "id": "bb:11",
          "start_pc": 11,
          "type": "basic_block"
        },
        {
          "end_pc": 41,
          "hash": "0x7e830c354d9fcd430f148fd268924919107311ec603ed3fbc87b87c4e1960564",
          "id": "bb:31",
          "start_pc": 31,
          "type": "basic_block"
        },
        {
          "end_pc": 52,
          "hash": "0xd93be9c242e8e8bcd06a655e8f68dbb5d8b907aa242921a0944db45226824ede",
          "id": "bb:42",
          "start_pc": 42,
          "type": "basic_block"
        },
        {
          "end_pc": 63,
          "hash": "0xf975181aea2edf6392f2b3e648aae3b0eace6c9389a7f27039b8efc5164a8e38",
          "id": "bb:53",
          "start_pc": 53,
          "type": "basic_block"
        },
        {
          "end_pc": 74,
          "hash": "0xec201f7d160fbd74016021109fe77370b8438cfcac697314b86ae1c86d82f322",
          "id": "bb:64",
          "start_pc": 64,
          "type": "basic_block"
        },
        {
          "end_pc": 85,
          "hash": "0x636002e5a697d1dcd5c7931ece61b7c0d48436ac628d59c5a408a2e9400f02c9",
          "id": "bb:75",
          "start_pc": 75,
          "type": "basic_block"
        },
        {
          "end_pc": 96,
          "hash": "0x1328f6b524d1fc36b2c4512aefec0e45764a7f6db1d8ad7899f090873660046c",
          "id": "bb:86",
          "start_pc": 86,
          "type": "basic_block"
        },
        {
          "end_pc": 107,
          "hash": "0xbed031604407871b61edd7cace58d1544f4d0e479ecef720d39d40effd3f01ba",
          "id": "bb:97",
          "start_pc": 97,
          "type": "basic_block"
        },
        {
          "end_pc": 118,
          "hash": "0x9a18ece7c39b64a99ade84949dd684558280dede1d8bd61d5592d509da2ecdf9",
          "id": "bb:108",
          "start_pc": 108,
          "type": "basic_block"
        },
        {
          "end_pc": 129,
          "hash": "0xf4a506fa8e4cd123298dd1063f7f7960970ff32247692ba09cd00617ae4d7701",
          "id": "bb:119",
          "start_pc": 119,
          "type": "basic_block"
        },
        {
          "end_pc": 140,
          "hash": "0xfe8115500eabb4976688d94720b09a11c50561226f88e28dc6085e1c3b7d9791",
          "id": "bb:130",
          "start_pc": 130,
          "type": "basic_block"
        },
        {
          "end_pc": 151,
          "hash": "0xf4626f76328297acbd5909aa163add93b5e7603addd96eac28c1154711ae7a0f",
          "id": "bb:141",
          "start_pc": 141,
          "type": "basic_block"
        },
        {
          "end_pc": 162,
          "hash": "0x56266f7e1e593719a66a4f6ccd4a22ca545b776461e75f102cec6cf0fdb8af8a",
          "id": "bb:152",
          "start_pc": 152,
          "type": "basic_block"
        },
        {
          "end_pc": 173,
          "hash": "0x769b3c458606538f51b01c3a1ddb9e79d095c5a8c92ee881d3cbb93a3806a311",
          "id": "bb:163",
          "start_pc": 163,
          "type": "basic_block"
        },
        {
          "end_pc": 184,
          "hash": "0x4416f9665fccfe1ee7f38dc8ab8b488e6db613488bc47fe8580c9536aa735fcd",
          "id": "bb:174",
          "start_pc": 174,
          "type": "basic_block"
        },
        {
          "end_pc": 242,
          "hash": "0x071567ff5fa5a6290fa5438f77074089b30029b7b43196c80a1b8d02630ee578",
          "id": "bb:185",
          "start_pc": 185,
          "type": "basic_block"
        },
        {
          "end_pc": 252,
          "hash": "0x28d0b72d37c730c9759802fa6751518184abfa2759f8fb9284a97b4fb1d9dc45",
          "id": "bb:243",
          "start_pc": 243,
          "type": "basic_block"
        },
        {
          "end_pc": 352,
          "hash": "0xa0e8446f5149d3823eb8442cc85acb41e3388421994271f4b5d94e60cb087520",
          "id": "bb:253",
          "start_pc": 253,
          "type": "basic_block"
        },
        {
          "end_pc": 359,
          "hash": "0x4d8bc2247ad8010c8edddb205dc0b06c427898328b9ffcd9e26831d9047ccdb4",
          "id": "bb:354",
          "start_pc": 354,
          "type": "basic_block"
        },
        {
          "end_pc": 371,
          "hash": "0x05a734d8a18a90e66c505d9ccef00d4fcb9dcc52429aa0b6eacde4f178b80623",
          "id": "bb:360",
          "start_pc": 360,
          "type": "basic_block"
        },
        {
          "end_pc": 389,
          "hash": "0x6e7a83245d3f639a8b56ba426e8a885e6e31aa3f2c7c6ef524518ae6803c6bf2",
          "id": "bb:372",
          "start_pc": 372,
          "type": "basic_block"
        },
        {
          "end_pc": 402,
          "hash": "0x897d04a880ed47744257ed84a58a6143f90b19fa7c35e80bbb7a7b3e04319369",
          "id": "bb:390",
          "start_pc": 390,
          "type": "basic_block"
        },
        {
          "end_pc": 449,
          "hash": "0x2e73799c2b3388bea73d5a1e0cc1fb601235956fc815eb2c5071af5b5dd3245a",
          "id": "bb:403",
          "start_pc": 403,
          "type": "basic_block"
        },
        {
          "end_pc": 458,
          "hash": "0x7eea9569e8d05f23ebbc4a6bb56103080a8d3eae4a100019c916325485f9222f",
          "id": "bb:450",
          "start_pc": 450,
          "type": "basic_block"
        },
        {
          "end_pc": 465,
          "hash": "0x7c13111516c714346733c1ab2ce3c1a8f61022418d8d95498f1f64723f1c59ec",
          "id": "bb:459",
          "start_pc": 459,
          "type": "basic_block"
        },
        {
          "end_pc": 496,
          "hash": "0xd92416a5b810761d87694f668182f11f85800a637c00f7ba9e8f777749c7662c",
          "id": "bb:466",
          "start_pc": 466,
          "type": "basic_block"
        },
        {
          "end_pc": 508,
          "hash": "0xde6918f4f615d59610c0df3236e55c923e484c7e1a9821f376a5e52a507be4bf",
          "id": "bb:497",
          "start_pc": 497,
          "type": "basic_block"
        },
        {
          "end_pc": 516,
          "hash": "0x26334aca6ad69bb178aad6c13033c6110beb858ae04af261a955758a8ce044a5",
          "id": "bb:509",
          "start_pc": 509,
          "type": "basic_block"
        },
        {
          "end_pc": 537,
          "hash": "0x2c52e56d3386fb994d86a22180c2b3a0bf05945d054e4763123c9d37ba4d120f",
          "id": "bb:517",
          "start_pc": 517,
          "type": "basic_block"
        },
        {
          "end_pc": 569,
          "hash": "0xc00a4352d1c1dd17e5763fb056e28afe15ce4626fe15df711672832f8dac65f6",
          "id": "bb:538",
          "start_pc": 538,
          "type": "basic_block"
        },
        {
          "end_pc": 574,
          "hash": "0x333696bb916c914e5eda6a103eb651058293a77b6db1f1384dfe163a972e7c37",
          "id": "bb:570",
          "start_pc": 570,
          "type": "basic_block"
        },
        {
          "end_pc": 632,
          "hash": "0x7971888f38d9199c190d342cc99b737435818c9561d8c57ef164649d408a385b",
          "id": "bb:575",
          "start_pc": 575,
          "type": "basic_block"
        },
        {
          "end_pc": 670,
          "hash": "0xa34e61fb1fb0a52f84fa1ba76ade029b9a4955fc174b2050d2ce3f16353743f3",
          "id": "bb:633",
          "start_pc": 633,
          "type": "basic_block"
        },
        {
          "end_pc": 684,
          "hash": "0xf7764b6b920f5196f69a817e1acc11dcd46b96c870d7ce46bf63a9f8494302ee",
          "id": "bb:671",
          "start_pc": 671,
          "type": "basic_block"
        },
        {
          "end_pc": 690,
          "hash": "0xaf23793769a8057a0cb0e7ef5b2f54434eb5440a24d76831783779eb73f982f7",
          "id": "bb:685",
          "start_pc": 685,
          "type": "basic_block"
        },
        {
          "end_pc": 698,
          "hash": "0x41b9235c231c48a79764052a52d0615a16765ad41aad15379ebe05f9a5e5f417",
          "id": "bb:691",
          "start_pc": 691,
          "type": "basic_block"
        },
        {
          "end_pc": 735,
          "hash": "0x96b5efda6c1108192dd2d71f0f222f3b9ca2317a57c397281804f972d925a006",
          "id": "bb:699",
          "start_pc": 699,
          "type": "basic_block"
        },
        {
          "end_pc": 750,
          "hash": "0x78001396a596948e9b3ccf2b07fa1bcb3bd0175a90d144823a039fd0ace4a952",
          "id": "bb:736",
          "start_pc": 736,
          "type": "basic_block"
        },
        {
          "end_pc": 752,
          "hash": "0x61e13f8bf1a1cb34d48bb5361bbcf49e7b618f6411399a7f97f10243fa536b3a",
          "id": "bb:751",
          "start_pc": 751,
          "type": "basic_block"
        },
        {
          "end_pc": 785,
          "hash": "0x6cf9df8598c411c244cd06f30ec88941a320520cc6b8281886b9a110f7cbc564",
          "id": "bb:755",
          "start_pc": 755,
          "type": "basic_block"
        },
        {
          "end_pc": 803,
          "hash": "0xa3dc20337019f44a380d910e02ac78acc985ee2b9573afe6fd7a9d468f253460",
          "id": "bb:786",
          "start_pc": 786,
          "type": "basic_block"
        },
        {
          "end_pc": 855,
          "hash": "0xf49d017af4521fd1514fc0913a273d502140eee57ed5f32a1b858f7eb68b6976",
          "id": "bb:804",
          "start_pc": 804,
          "type": "basic_block"
        },
        {
          "end_pc": 857,
          "hash": "0xdc4ff9509e72f588ac609e805c2b0a607c059fc386152a84b2646cc3ecf475c8",
          "id": "bb:856",
          "start_pc": 856,
          "type": "basic_block"
        },
        {
          "end_pc": 859,
          "hash": "0x958058fc31de007fb13f9a24445d43f9f9b5e47a55e26d9b6ae3f80c15966753",
          "id": "bb:858",
          "start_pc": 858,
          "type": "basic_block"
        },
        {
          "end_pc": 930,
          "hash": "0x312db89ede37ccd528c81b052d5771c79cdffa2deffd58291af1138445f87c4d",
          "id": "bb:860",
          "start_pc": 860,
          "type": "basic_block"
        },
        {
          "end_pc": 955,
          "hash": "0x15bc4685886b0559e4ca82eebb6bd925cbc72f578f620b4bf5dd4da4917772d8",
          "id": "bb:931",
          "start_pc": 931,
          "type": "basic_block"
        },
        {
          "end_pc": 969,
          "hash": "0xe49bc88a2b041ffacb2c9a056dc12e9accbe4b67b938f618d59324cd9e0c9469",
          "id": "bb:956",
          "start_pc": 956,
          "type": "basic_block"
        },
        {
          "end_pc": 991,
          "hash": "0x2056ec4e73cd45ded28623f1fde31b7199b7014a57f169e8e00523fb35bbaea5",
          "id": "bb:970",
          "start_pc": 970,
          "type": "basic_block"
        },
        {
          "end_pc": 1073,
          "hash": "0x72ed84ee73cafd25449d7b1d9b6455a741af74fdf6d58d98d4e476e0451b2a67",
          "id": "bb:992",
          "start_pc": 992,
          "type": "basic_block"
        },
        {
          "end_pc": 1076,
          "hash": "0x9ef29df57e5689b5ffe35acb31952e4725fe312bb3d3697db7b52302cfdf6a46",
          "id": "bb:1074",
          "start_pc": 1074,
          "type": "basic_block"
        },
        {
          "end_pc": 1132,
          "hash": "0x0b9008bc0355c08b31635ef87aa26d385010c46ad2b357f12871a3a66fa0c417",
          "id": "bb:1077",
          "start_pc": 1077,
          "type": "basic_block"
        },
        {
          "end_pc": 1168,
          "hash": "0x605b10d86a93ca758bb554c4adaba666da47700c984bb9b32179784057ad3912",
          "id": "bb:1133",
          "start_pc": 1133,
          "type": "basic_block"
        },
        {
          "end_pc": 1172,
          "hash": "0xc0d1af9b6a213f7e750526dcf639e4f406ef287846d83c54abc7f4eba244fe2b",
          "id": "bb:1169",
          "start_pc": 1169,
          "type": "basic_block"
        },
        {
          "end_pc": 1243,
          "hash": "0xd7aa5bc978adceb44b414535a4ea6c862da7a107e78b1e2fdcd04aaede5f888f",
          "id": "bb:1173",
          "start_pc": 1173,
          "type": "basic_block"
        },
        {
          "end_pc": 1278,
          "hash": "0x089f9f5b8aa1243157adb6b313477a46472fcd12552df98504a0e988c9a0ae03",
          "id": "bb:1244",
          "start_pc": 1244,
          "type": "basic_block"
        },
        {
          "end_pc": 1285,
          "hash": "0x2467103003d7205a14a1cd9b04fa5f36db1d6277f7e0b2da22926d9f34b93c17",
          "id": "bb:1279",
          "start_pc": 1279,
          "type": "basic_block"
        },
        {
          "end_pc": 1332,
          "hash": "0x5c00f5737c77f9f4d02f0fa5f175c3c6bc232a2ec00aa30440920c42af0788f2",
          "id": "bb:1286",
          "start_pc": 1286,
          "type": "basic_block"
        },
        {
          "end_pc": 1426,
          "hash": "0x254afd3f69bef8f8867c8ef785507d63df140f93f3104ab19762f688e7ea0ee3",
          "id": "bb:1333",
          "start_pc": 1333,
          "type": "basic_block"
        },
        {
          "end_pc": 1433,
          "hash": "0xc1904f503499c50de4a20027e0e4d53d1c7486432f275aef056171cf4757f1b9",
          "id": "bb:1427",
          "start_pc": 1427,
          "type": "basic_block"
        },
        {
          "end_pc": 1437,
          "hash": "0xfe8b836b2690efb4cf848a3fb768a0bca3b52ad98f740fc82496251685f9391d",
          "id": "bb:1434",
          "start_pc": 1434,
          "type": "basic_block"
        },
        {
          "end_pc": 1464,
          "hash": "0x74455ac233703f4848faadb5cfc7e31bd85145f589527867ee38256cea5cf6c5",
          "id": "bb:1438",
          "start_pc": 1438,
          "type": "basic_block"
        },
        {
          "end_pc": 1478,
          "hash": "0x6037c78b2adba608b0fc8f39844844fe2e614fdbb8ea002f4bd8cdc5dd8e5dc3",
          "id": "bb:1465",
          "start_pc": 1465,
          "type": "basic_block"
        },
        {
          "end_pc": 1484,
          "hash": "0xcce1e76c478effbd68785a68ef98e1e19e86bfd242da3d679a6acd466b0d71e7",
          "id": "bb:1479",
          "start_pc": 1479,
          "type": "basic_block"
        },
        {
          "end_pc": 1494,
          "hash": "0x5b92363071616b81c1699d2c1fd2497d1dc702d611e099a966190c75208347ec",
          "id": "bb:1485",
          "start_pc": 1485,
          "type": "basic_block"
        },
        {
          "end_pc": 1529,
          "hash": "0xdcec2b8889c096d15bccb00bfe1e7d5d0a036b5f4571ff2b5d7d7672b2b78c57",
          "id": "bb:1495",
          "start_pc": 1495,
          "type": "basic_block"
        },
        {
          "end_pc": 1536,
          "hash": "0x01d0916ca4c807f9e618604ff31061511c8becc09126fff21a75877ad0d9d891",
          "id": "bb:1530",
          "start_pc": 1530,
          "type": "basic_block"
        },
        {
          "end_pc": 1540,
          "hash": "0x8b35c27770753c27328f72051e22d4d6d5ebbe70b744db2218707bfa4c973249",
          "id": "bb:1537",
          "start_pc": 1537,
          "type": "basic_block"
        },
        {
          "end_pc": 1549,
          "hash": "0x8d1a9725de8b94a06d952cf3dccf7a60a056f613405cd3fca587c1c51a959081",
          "id": "bb:1541",
          "start_pc": 1541,
          "type": "basic_block"
        },
        {
          "end_pc": 1555,
          "hash": "0x9d20ebdb5bbadaff599163ef7678bcd68dad7612349358e4a4c4097fb9046e75",
          "id": "bb:1550",
          "start_pc": 1550,
          "type": "basic_block"
        },
        {
          "end_pc": 1655,
          "hash": "0x03f178a0d725d3fc887a88b283abfbb20f1ce5bd57d3aeef93ca7623d69d67b5",
          "id": "bb:1556",
          "start_pc": 1556,
          "type": "basic_block"
        },
        {
          "end_pc": 1665,
          "hash": "0xdef2bcb2d1300ee7fa3a28ddd7e171d7ba12903ade81308390db778b24be6f13",
          "id": "bb:1656",
          "start_pc": 1656,
          "type": "basic_block"
        },
        {
          "end_pc": 1712,
          "hash": "0x8774022cd9ef10070574bbad2d978c697880d350de8abb94dd49a171fc880efd",
          "id": "bb:1666",
          "start_pc": 1666,
          "type": "basic_block"
        },
        {
          "end_pc": 1776,
          "hash": "0x94be26d5ec0cb15d2f8d1b94eeb8b329125edfab390999ecafff54563dd65e6b",
          "id": "bb:1713",
          "start_pc": 1713,
          "type": "basic_block"
        },
        {
          "end_pc": 1782,
          "hash": "0x61c72ab0caceb09cc0b426883f21c7ceec3d7f4fd9a1e5746887b49041e98311",
          "id": "bb:1777",
          "start_pc": 1777,
          "type": "basic_block"
        },
        {
          "end_pc": 1880,
          "hash": "0x099a5c7e13ad74081a3d99f9f8a36e14df6ef8af1f8445aa9175a27abe3b063e",
          "id": "bb:1783",
          "start_pc": 1783,
          "type": "basic_block"
        },
        {
          "end_pc": 1891,
          "hash": "0x6b77a513738c8aa55a68438c6caac1bc2b96c7bfbb1e8e873c87c5f4c895aae7",
          "id": "bb:1881",
          "start_pc": 1881,
          "type": "basic_block"
        },
        {
          "end_pc": 1896,
          "hash": "0x89569bb11d637e430071517748af0bb04384b8c9d2e4f93dd5a9c14bf39c912e",
          "id": "bb:1892",
          "start_pc": 1892,
          "type": "basic_block"
        },
        {
          "end_pc": 1903,
          "hash": "0xc17258eedf558b32572a06ce5f7d05f9a632347f4486cf414fc8ee1de9db80f1",
          "id": "bb:1897",
          "start_pc": 1897,
          "type": "basic_block"
        },
        {
          "end_pc": 1907,
          "hash": "0x8d8c043f82ba2e7cdc531625ff102db4a56fbe189a0e9c6c9c4f4ee7815ca44a",
          "id": "bb:1904",
          "start_pc": 1904,
          "type": "basic_block"
        },
        {
          "end_pc": 1916,
          "hash": "0x555b0722918dcc578185df7bac7f11ee486e593aa7fd9905036a9b754e97bcc4",
          "id": "bb:1908",
          "start_pc": 1908,
          "type": "basic_block"
        },
        {
          "end_pc": 1923,
          "hash": "0x196249de90782f90680dcbf33cba2f6223e1dc222471a8df5f1b94346aa05a67",
          "id": "bb:1917",
          "start_pc": 1917,
          "type": "basic_block"
        },
        {
          "end_pc": 1927,
          "hash": "0xbf07d4712faf2391ad37cae99b09f548286e5f2f10c155f718e42d5da8d2682f",
          "id": "bb:1924",
          "start_pc": 1924,
          "type": "basic_block"
        },
        {
          "end_pc": 1936,
          "hash": "0x6dcf4e7c8ac1bac1475b61bfecbb3d8156b2be48f720986c3954485286e73b00",
          "id": "bb:1928",
          "start_pc": 1928,
          "type": "basic_block"
        },
        {
          "id": "call:914",
          "opcode": "CALL",
          "pc": 914,
          "type": "callsite"
        },
        {
          "id": "call:1121",
          "opcode": "CALL",
          "pc": 1121,
          "type": "callsite"
        },
        {
          "id": "call:1157",
          "opcode": "CALL",
          "pc": 1157,
          "type": "callsite"
        },
        {
          "id": "call:1875",
          "opcode": "CALL",
          "pc": 1875,
          "type": "callsite"
        },
        {
          "id": "sink:call",
          "type": "sink"
        },
        {
          "entry_pc": null,
          "id": "fn:0x06fdde03",
          "selector": "0x06fdde03",
          "type": "function"
        },
        {
          "entry_pc": 404098525,
          "id": "fn:0x095ea7b3",
          "selector": "0x095ea7b3",
          "type": "function"
        },
        {
          "entry_pc": 599290589,
          "id": "fn:0x18160ddd",
          "selector": "0x18160ddd",
          "type": "function"
        },
        {
          "entry_pc": 773487949,
          "id": "fn:0x23b872dd",
          "selector": "0x23b872dd",
          "type": "function"
        },
        {
          "entry_pc": 826074471,
          "id": "fn:0x2e1a7d4d",
          "selector": "0x2e1a7d4d",
          "type": "function"
        },
        {
          "entry_pc": 829883039,
          "id": "fn:0x313ce567",
          "selector": "0x313ce567",
          "type": "function"
        },
        {
          "entry_pc": 1889567281,
          "id": "fn:0x3177029f",
          "selector": "0x3177029f",
          "type": "function"
        },
        {
          "entry_pc": 2514000705,
          "id": "fn:0x70a08231",
          "selector": "0x70a08231",
          "type": "function"
        },
        {
          "entry_pc": 2835717307,
          "id": "fn:0x95d89b41",
          "selector": "0x95d89b41",
          "type": "function"
        },
        {
          "entry_pc": 3187937200,
          "id": "fn:0xa9059cbb",
          "selector": "0xa9059cbb",
          "type": "function"
        },
        {
          "entry_pc": 3264417681,
          "id": "fn:0xbe040fb0",
          "selector": "0xbe040fb0",
          "type": "function"
        },
        {
          "entry_pc": 3504541104,
          "id": "fn:0xc2930f91",
          "selector": "0xc2930f91",
          "type": "function"
        },
        {
          "entry_pc": 3714247998,
          "id": "fn:0xd0e30db0",
          "selector": "0xd0e30db0",
          "type": "function"
        },
        {
          "entry_pc": 856,
          "id": "fn:0xdd62ed3e",
          "selector": "0xdd62ed3e",
          "type": "function"
        }
      ],
      "version": "capability_graph_v1"
    },
    "id": 2506,
    "updated_at": "2026-04-04T19:57:45.000000Z",
    "version": "capability_graph_v1"
  },
  "detector_findings": [

exec
/bin/bash -lc "node -e 'const fs=require(\"fs\");const j=JSON.parse(fs.readFileSync(\"BYTECODE_BUNDLE.json\",\"utf8\"));const ops=j.analysis_artifact.artifact_json.basic_blocks.flatMap(bb=>bb.opcodes.map((op,i)=>({pc:bb.start_pc+i,op,bb:bb.start_pc}))); for (const pc of [860,914,992,1077,1121,1133,1157,1173,1244,1286,1333,1438,1495,1556,1666,1713,1783,1875]) { const s=ops.filter(x=>x.pc>=pc-8&&x.pc<=pc+8); console.log(\"--- pc\",pc); for(const x of s) console.log(x.pc,x.op,\"bb\",x.bb); }'" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
--- pc 860
856 JUMPDEST bb 856
857 STOP bb 856
858 JUMPDEST bb 858
859 JUMP bb 858
860 JUMPDEST bb 860
861 PUSH1 bb 860
862 MLOAD bb 860
863 OP_80 bb 860
864 OP_80 bb 860
865 PUSH1 bb 860
866 ADD bb 860
867 OP_82 bb 860
868 OP_81 bb 860
--- pc 914
906 OP_90 bb 860
907 POP bb 860
908 OP_90 bb 860
909 OP_81 bb 860
910 ADD bb 860
911 OP_90 bb 860
912 PUSH1 bb 860
913 AND bb 860
914 OP_80 bb 860
915 ISZERO bb 860
916 PUSH2 bb 860
917 JUMPI bb 860
--- pc 992
984 SUB bb 970
985 PUSH1 bb 970
986 ADD bb 970
987 OP_90 bb 970
988 RETURN bb 970
992 JUMPDEST bb 992
993 PUSH1 bb 992
994 PUSH1 bb 992
995 PUSH1 bb 992
996 EXP bb 992
997 SUB bb 992
998 CALLER bb 992
999 AND bb 992
1000 PUSH1 bb 992
--- pc 1077
1074 JUMPDEST bb 1074
1075 POP bb 1074
1076 JUMP bb 1074
1077 JUMPDEST bb 1077
1078 PUSH1 bb 1077
1079 PUSH1 bb 1077
1080 PUSH1 bb 1077
1081 EXP bb 1077
1082 SUB bb 1077
1083 CALLER bb 1077
1084 AND bb 1077
1085 PUSH1 bb 1077
--- pc 1121
1113 OP_88 bb 1077
1114 OP_83 bb 1077
1115 CALL bb 1077
1116 OP_93 bb 1077
1117 POP bb 1077
1118 POP bb 1077
1119 POP bb 1077
1120 POP bb 1077
1121 ISZERO bb 1077
1122 ISZERO bb 1077
1123 PUSH2 bb 1077
1124 JUMPI bb 1077
--- pc 1133
1133 CALLER bb 1133
1134 PUSH1 bb 1133
1135 PUSH1 bb 1133
1136 PUSH1 bb 1133
1137 EXP bb 1133
1138 SUB bb 1133
1139 AND bb 1133
1140 GAS bb 1133
1141 PUSH1 bb 1133
--- pc 1157
1149 OP_85 bb 1133
1150 OP_88 bb 1133
1151 OP_88 bb 1133
1152 CALL bb 1133
1153 OP_93 bb 1133
1154 POP bb 1133
1155 POP bb 1133
1156 POP bb 1133
1157 POP bb 1133
1158 ISZERO bb 1133
1159 ISZERO bb 1133
1160 PUSH2 bb 1133
1161 JUMPI bb 1133
--- pc 1173
1169 PUSH2 bb 1169
1170 JUMP bb 1169
1173 JUMPDEST bb 1173
1174 PUSH1 bb 1173
1175 OP_80 bb 1173
1176 MLOAD bb 1173
1177 OP_83 bb 1173
1178 OP_81 bb 1173
1179 MSTORE bb 1173
1180 OP_90 bb 1173
1181 MLOAD bb 1173
--- pc 1244
1244 JUMPDEST bb 1244
1245 PUSH1 bb 1244
1246 PUSH1 bb 1244
1247 PUSH1 bb 1244
1248 EXP bb 1244
1249 SUB bb 1244
1250 CALLER bb 1244
1251 AND bb 1244
1252 PUSH1 bb 1244
--- pc 1286
1279 JUMPDEST bb 1279
1280 OP_90 bb 1279
1281 POP bb 1279
1282 PUSH2 bb 1279
1283 JUMP bb 1279
1286 JUMPDEST bb 1286
1287 PUSH1 bb 1286
1288 PUSH1 bb 1286
1289 PUSH1 bb 1286
1290 EXP bb 1286
1291 SUB bb 1286
1292 CALLER bb 1286
1293 OP_81 bb 1286
1294 AND bb 1286
--- pc 1333
1333 JUMPDEST bb 1333
1334 PUSH1 bb 1333
1335 PUSH1 bb 1333
1336 PUSH1 bb 1333
1337 EXP bb 1333
1338 SUB bb 1333
1339 OP_84 bb 1333
1340 OP_81 bb 1333
1341 AND bb 1333
--- pc 1438
1430 PUSH2 bb 1427
1431 JUMPI bb 1427
1434 PUSH2 bb 1434
1435 JUMP bb 1434
1438 JUMPDEST bb 1438
1439 ADDRESS bb 1438
1440 PUSH1 bb 1438
1441 PUSH1 bb 1438
1442 PUSH1 bb 1438
1443 EXP bb 1438
1444 SUB bb 1438
1445 AND bb 1438
1446 OP_83 bb 1438
--- pc 1495
1487 CALLER bb 1485
1488 OP_84 bb 1485
1489 PUSH2 bb 1485
1490 JUMP bb 1485
1495 JUMPDEST bb 1495
1496 PUSH1 bb 1495
1497 PUSH1 bb 1495
1498 PUSH1 bb 1495
1499 EXP bb 1495
1500 SUB bb 1495
1501 OP_84 bb 1495
1502 AND bb 1495
1503 PUSH1 bb 1495
--- pc 1556
1550 JUMPDEST bb 1550
1551 POP bb 1550
1552 PUSH2 bb 1550
1553 JUMP bb 1550
1556 JUMPDEST bb 1556
1557 PUSH1 bb 1556
1558 PUSH1 bb 1556
1559 PUSH1 bb 1556
1560 EXP bb 1556
1561 SUB bb 1556
1562 OP_85 bb 1556
1563 OP_81 bb 1556
1564 AND bb 1556
--- pc 1666
1658 PUSH1 bb 1656
1659 OP_93 bb 1656
1660 OP_92 bb 1656
1661 POP bb 1656
1662 POP bb 1656
1663 POP bb 1656
1664 JUMP bb 1656
1666 JUMPDEST bb 1666
1667 PUSH1 bb 1666
1668 PUSH1 bb 1666
1669 PUSH1 bb 1666
1670 EXP bb 1666
1671 SUB bb 1666
1672 OP_85 bb 1666
1673 OP_81 bb 1666
1674 AND bb 1666
--- pc 1713
1713 JUMPDEST bb 1713
1714 PUSH1 bb 1713
1715 PUSH1 bb 1713
1716 PUSH1 bb 1713
1717 EXP bb 1713
1718 SUB bb 1713
1719 OP_84 bb 1713
1720 OP_81 bb 1713
1721 AND bb 1713
--- pc 1783
1777 JUMPDEST bb 1777
1778 ISZERO bb 1777
1779 PUSH2 bb 1777
1780 JUMPI bb 1777
1783 OP_82 bb 1783
1784 PUSH1 bb 1783
1785 PUSH1 bb 1783
1786 PUSH1 bb 1783
1787 EXP bb 1783
1788 SUB bb 1783
1789 AND bb 1783
1790 PUSH4 bb 1783
1791 CALLER bb 1783
--- pc 1875
1881 POP bb 1881
1882 POP bb 1881
1883 POP bb 1881

exec
/bin/bash -lc "node - <<'NODE'
const fs=require('fs');
const hex=JSON.parse(fs.readFileSync('BYTECODE_BUNDLE.json','utf8')).artifact.runtime_bytecode.full.slice(2);
const names={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'};
for(let i=1;i<=16;i++){names[0x5f+i]='PUSH'+i;names[0x7f+i]='DUP'+i;names[0x8f+i]='SWAP'+i;}
for(let i=0;i<5;i++)names[0xa0+i]='LOG'+i;
let pc=0; const ops=[];
for(let i=0;i<hex.length;){const op=parseInt(hex.slice(i,i+2),16); let imm=''; let len=1; if(op>=0x60&&op<=0x7f){const n=op-0x5f; imm=hex.slice(i+2,i+2+2*n); len=1+n;} ops.push({pc, op, name:names[op]||('OP_'+op.toString(16)), imm}); i+=2*len; pc+=len;}
const interesting=[0,11,174,185,243,253,354,360,390,403,450,459,466,497,509,517,538,575,633,699,755,804,860,992,1077,1133,1173,1244,1286,1333,1438,1495,1556,1666,1713,1783,1892];
for(const start of interesting){
  console.log('\\n=== from pc',start,'===');
  for(const o of ops.filter(x=>x.pc>=start && x.pc<start+80)) console.log(String(o.pc).padStart(4),o.name,o.imm||'');
}
NODE" in /tmp/codex-93zqp0qz
 succeeded in 0ms:

=== from pc 0 ===
   0 PUSH1 60
   2 PUSH1 40
   4 MSTORE 
   5 CALLDATASIZE 
   6 ISZERO 
   7 PUSH2 00ae
  10 JUMPI 
  11 PUSH1 e0
  13 PUSH1 02
  15 EXP 
  16 PUSH1 00
  18 CALLDATALOAD 
  19 DIV 
  20 PUSH4 06fdde03
  25 DUP2 
  26 EQ 
  27 PUSH2 00b9
  30 JUMPI 
  31 DUP1 
  32 PUSH4 095ea7b3
  37 EQ 
  38 PUSH2 00f3
  41 JUMPI 
  42 DUP1 
  43 PUSH4 18160ddd
  48 EQ 
  49 PUSH2 0168
  52 JUMPI 
  53 DUP1 
  54 PUSH4 23b872dd
  59 EQ 
  60 PUSH2 0186
  63 JUMPI 
  64 DUP1 
  65 PUSH4 2e1a7d4d
  70 EQ 
  71 PUSH2 01cb
  74 JUMPI 
  75 DUP1 
  76 PUSH4 313ce567

=== from pc 11 ===
  11 PUSH1 e0
  13 PUSH1 02
  15 EXP 
  16 PUSH1 00
  18 CALLDATALOAD 
  19 DIV 
  20 PUSH4 06fdde03
  25 DUP2 
  26 EQ 
  27 PUSH2 00b9
  30 JUMPI 
  31 DUP1 
  32 PUSH4 095ea7b3
  37 EQ 
  38 PUSH2 00f3
  41 JUMPI 
  42 DUP1 
  43 PUSH4 18160ddd
  48 EQ 
  49 PUSH2 0168
  52 JUMPI 
  53 DUP1 
  54 PUSH4 23b872dd
  59 EQ 
  60 PUSH2 0186
  63 JUMPI 
  64 DUP1 
  65 PUSH4 2e1a7d4d
  70 EQ 
  71 PUSH2 01cb
  74 JUMPI 
  75 DUP1 
  76 PUSH4 313ce567
  81 EQ 
  82 PUSH2 01fd
  85 JUMPI 
  86 DUP1 
  87 PUSH4 3177029f

=== from pc 174 ===
 174 JUMPDEST 
 175 PUSH2 0358
 178 PUSH2 035a
 181 PUSH2 02f3
 184 JUMP 
 185 JUMPDEST 
 186 PUSH2 035c
 189 PUSH1 40
 191 DUP1 
 192 MLOAD 
 193 DUP1 
 194 DUP3 
 195 ADD 
 196 SWAP1 
 197 SWAP2 
 198 MSTORE 
 199 PUSH1 11
 201 DUP2 
 202 MSTORE 
 203 OP_7f 457468657220546f6b656e2050726f7879000000000000000000000000000000
 236 PUSH1 20
 238 DUP3 
 239 ADD 
 240 MSTORE 
 241 DUP2 
 242 JUMP 
 243 JUMPDEST 
 244 PUSH2 0174
 247 PUSH1 04
 249 CALLDATALOAD 
 250 PUSH1 24
 252 CALLDATALOAD 
 253 JUMPDEST 

=== from pc 185 ===
 185 JUMPDEST 
 186 PUSH2 035c
 189 PUSH1 40
 191 DUP1 
 192 MLOAD 
 193 DUP1 
 194 DUP3 
 195 ADD 
 196 SWAP1 
 197 SWAP2 
 198 MSTORE 
 199 PUSH1 11
 201 DUP2 
 202 MSTORE 
 203 OP_7f 457468657220546f6b656e2050726f7879000000000000000000000000000000
 236 PUSH1 20
 238 DUP3 
 239 ADD 
 240 MSTORE 
 241 DUP2 
 242 JUMP 
 243 JUMPDEST 
 244 PUSH2 0174
 247 PUSH1 04
 249 CALLDATALOAD 
 250 PUSH1 24
 252 CALLDATALOAD 
 253 JUMPDEST 
 254 PUSH1 01
 256 PUSH1 a0
 258 PUSH1 02
 260 EXP 
 261 SUB 
 262 CALLER 
 263 DUP2 
 264 AND 

=== from pc 243 ===
 243 JUMPDEST 
 244 PUSH2 0174
 247 PUSH1 04
 249 CALLDATALOAD 
 250 PUSH1 24
 252 CALLDATALOAD 
 253 JUMPDEST 
 254 PUSH1 01
 256 PUSH1 a0
 258 PUSH1 02
 260 EXP 
 261 SUB 
 262 CALLER 
 263 DUP2 
 264 AND 
 265 PUSH1 00
 267 DUP2 
 268 DUP2 
 269 MSTORE 
 270 PUSH1 01
 272 PUSH1 20
 274 SWAP1 
 275 DUP2 
 276 MSTORE 
 277 PUSH1 40
 279 DUP1 
 280 DUP4 
 281 SHA3 
 282 SWAP5 
 283 DUP8 
 284 AND 
 285 DUP1 
 286 DUP5 
 287 MSTORE 
 288 SWAP5 
 289 DUP3 
 290 MSTORE 
 291 DUP1 
 292 DUP4 
 293 SHA3 
 294 DUP7 
 295 SWAP1 
 296 SSTORE 
 297 DUP1 
 298 MLOAD 
 299 DUP7 
 300 DUP2 
 301 MSTORE 
 302 SWAP1 
 303 MLOAD 
 304 SWAP3 
 305 SWAP5 
 306 SWAP4 
 307 SWAP3 
 308 OP_7f 8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925

=== from pc 253 ===
 253 JUMPDEST 
 254 PUSH1 01
 256 PUSH1 a0
 258 PUSH1 02
 260 EXP 
 261 SUB 
 262 CALLER 
 263 DUP2 
 264 AND 
 265 PUSH1 00
 267 DUP2 
 268 DUP2 
 269 MSTORE 
 270 PUSH1 01
 272 PUSH1 20
 274 SWAP1 
 275 DUP2 
 276 MSTORE 
 277 PUSH1 40
 279 DUP1 
 280 DUP4 
 281 SHA3 
 282 SWAP5 
 283 DUP8 
 284 AND 
 285 DUP1 
 286 DUP5 
 287 MSTORE 
 288 SWAP5 
 289 DUP3 
 290 MSTORE 
 291 DUP1 
 292 DUP4 
 293 SHA3 
 294 DUP7 
 295 SWAP1 
 296 SSTORE 
 297 DUP1 
 298 MLOAD 
 299 DUP7 
 300 DUP2 
 301 MSTORE 
 302 SWAP1 
 303 MLOAD 
 304 SWAP3 
 305 SWAP5 
 306 SWAP4 
 307 SWAP3 
 308 OP_7f 8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925

=== from pc 354 ===
 354 JUMPDEST 
 355 SWAP3 
 356 SWAP2 
 357 POP 
 358 POP 
 359 JUMP 
 360 JUMPDEST 
 361 ADDRESS 
 362 PUSH1 01
 364 PUSH1 a0
 366 PUSH1 02
 368 EXP 
 369 SUB 
 370 AND 
 371 BALANCE 
 372 JUMPDEST 
 373 PUSH1 40
 375 DUP1 
 376 MLOAD 
 377 SWAP2 
 378 DUP3 
 379 MSTORE 
 380 MLOAD 
 381 SWAP1 
 382 DUP2 
 383 SWAP1 
 384 SUB 
 385 PUSH1 20
 387 ADD 
 388 SWAP1 
 389 RETURN 
 390 JUMPDEST 
 391 PUSH2 0174
 394 PUSH1 04
 396 CALLDATALOAD 
 397 PUSH1 24
 399 CALLDATALOAD 
 400 PUSH1 44
 402 CALLDATALOAD 
 403 JUMPDEST 
 404 PUSH1 01
 406 PUSH1 a0
 408 PUSH1 02
 410 EXP 
 411 SUB 
 412 DUP4 
 413 DUP2 
 414 AND 
 415 PUSH1 00
 417 SWAP1 
 418 DUP2 
 419 MSTORE 
 420 PUSH1 01
 422 PUSH1 20
 424 SWAP1 
 425 DUP2 
 426 MSTORE 
 427 PUSH1 40
 429 DUP1 
 430 DUP4 
 431 SHA3 
 432 CALLER 
 433 SWAP1 

=== from pc 360 ===
 360 JUMPDEST 
 361 ADDRESS 
 362 PUSH1 01
 364 PUSH1 a0
 366 PUSH1 02
 368 EXP 
 369 SUB 
 370 AND 
 371 BALANCE 
 372 JUMPDEST 
 373 PUSH1 40
 375 DUP1 
 376 MLOAD 
 377 SWAP2 
 378 DUP3 
 379 MSTORE 
 380 MLOAD 
 381 SWAP1 
 382 DUP2 
 383 SWAP1 
 384 SUB 
 385 PUSH1 20
 387 ADD 
 388 SWAP1 
 389 RETURN 
 390 JUMPDEST 
 391 PUSH2 0174
 394 PUSH1 04
 396 CALLDATALOAD 
 397 PUSH1 24
 399 CALLDATALOAD 
 400 PUSH1 44
 402 CALLDATALOAD 
 403 JUMPDEST 
 404 PUSH1 01
 406 PUSH1 a0
 408 PUSH1 02
 410 EXP 
 411 SUB 
 412 DUP4 
 413 DUP2 
 414 AND 
 415 PUSH1 00
 417 SWAP1 
 418 DUP2 
 419 MSTORE 
 420 PUSH1 01
 422 PUSH1 20
 424 SWAP1 
 425 DUP2 
 426 MSTORE 
 427 PUSH1 40
 429 DUP1 
 430 DUP4 
 431 SHA3 
 432 CALLER 
 433 SWAP1 
 434 SWAP5 
 435 AND 
 436 DUP4 
 437 MSTORE 
 438 SWAP3 
 439 SWAP1 

=== from pc 390 ===
 390 JUMPDEST 
 391 PUSH2 0174
 394 PUSH1 04
 396 CALLDATALOAD 
 397 PUSH1 24
 399 CALLDATALOAD 
 400 PUSH1 44
 402 CALLDATALOAD 
 403 JUMPDEST 
 404 PUSH1 01
 406 PUSH1 a0
 408 PUSH1 02
 410 EXP 
 411 SUB 
 412 DUP4 
 413 DUP2 
 414 AND 
 415 PUSH1 00
 417 SWAP1 
 418 DUP2 
 419 MSTORE 
 420 PUSH1 01
 422 PUSH1 20
 424 SWAP1 
 425 DUP2 
 426 MSTORE 
 427 PUSH1 40
 429 DUP1 
 430 DUP4 
 431 SHA3 
 432 CALLER 
 433 SWAP1 
 434 SWAP5 
 435 AND 
 436 DUP4 
 437 MSTORE 
 438 SWAP3 
 439 SWAP1 
 440 MSTORE 
 441 SWAP1 
 442 DUP2 
 443 SHA3 
 444 SLOAD 
 445 PUSH2 0593
 448 SWAP1 
 449 DUP4 
 450 JUMPDEST 
 451 DUP1 
 452 DUP3 
 453 LT 
 454 ISZERO 
 455 PUSH2 0162
 458 JUMP 
 459 JUMPDEST 
 460 PUSH2 0174
 463 PUSH1 04
 465 CALLDATALOAD 
 466 JUMPDEST 
 467 PUSH1 40
 469 PUSH1 00

=== from pc 403 ===
 403 JUMPDEST 
 404 PUSH1 01
 406 PUSH1 a0
 408 PUSH1 02
 410 EXP 
 411 SUB 
 412 DUP4 
 413 DUP2 
 414 AND 
 415 PUSH1 00
 417 SWAP1 
 418 DUP2 
 419 MSTORE 
 420 PUSH1 01
 422 PUSH1 20
 424 SWAP1 
 425 DUP2 
 426 MSTORE 
 427 PUSH1 40
 429 DUP1 
 430 DUP4 
 431 SHA3 
 432 CALLER 
 433 SWAP1 
 434 SWAP5 
 435 AND 
 436 DUP4 
 437 MSTORE 
 438 SWAP3 
 439 SWAP1 
 440 MSTORE 
 441 SWAP1 
 442 DUP2 
 443 SHA3 
 444 SLOAD 
 445 PUSH2 0593
 448 SWAP1 
 449 DUP4 
 450 JUMPDEST 
 451 DUP1 
 452 DUP3 
 453 LT 
 454 ISZERO 
 455 PUSH2 0162
 458 JUMP 
 459 JUMPDEST 
 460 PUSH2 0174
 463 PUSH1 04
 465 CALLDATALOAD 
 466 JUMPDEST 
 467 PUSH1 40
 469 PUSH1 00
 471 SWAP1 
 472 DUP2 
 473 SHA3 
 474 PUSH1 01
 476 PUSH1 a0
 478 PUSH1 02
 480 EXP 
 481 SUB 
 482 CALLER 

=== from pc 450 ===
 450 JUMPDEST 
 451 DUP1 
 452 DUP3 
 453 LT 
 454 ISZERO 
 455 PUSH2 0162
 458 JUMP 
 459 JUMPDEST 
 460 PUSH2 0174
 463 PUSH1 04
 465 CALLDATALOAD 
 466 JUMPDEST 
 467 PUSH1 40
 469 PUSH1 00
 471 SWAP1 
 472 DUP2 
 473 SHA3 
 474 PUSH1 01
 476 PUSH1 a0
 478 PUSH1 02
 480 EXP 
 481 SUB 
 482 CALLER 
 483 AND 
 484 DUP3 
 485 MSTORE 
 486 PUSH1 20
 488 DUP3 
 489 SWAP1 
 490 MSTORE 
 491 SLOAD 
 492 PUSH2 0435
 495 SWAP1 
 496 DUP4 
 497 JUMPDEST 
 498 PUSH1 00
 500 PUSH2 077d
 503 DUP4 
 504 DUP4 
 505 PUSH2 01c2
 508 JUMP 
 509 JUMPDEST 
 510 PUSH2 03ca
 513 PUSH1 12
 515 DUP2 
 516 JUMP 
 517 JUMPDEST 
 518 PUSH2 0174
 521 PUSH1 04
 523 CALLDATALOAD 
 524 PUSH1 24
 526 CALLDATALOAD 
 527 PUSH1 00
 529 PUSH2 06f1

=== from pc 459 ===
 459 JUMPDEST 
 460 PUSH2 0174
 463 PUSH1 04
 465 CALLDATALOAD 
 466 JUMPDEST 
 467 PUSH1 40
 469 PUSH1 00
 471 SWAP1 
 472 DUP2 
 473 SHA3 
 474 PUSH1 01
 476 PUSH1 a0
 478 PUSH1 02
 480 EXP 
 481 SUB 
 482 CALLER 
 483 AND 
 484 DUP3 
 485 MSTORE 
 486 PUSH1 20
 488 DUP3 
 489 SWAP1 
 490 MSTORE 
 491 SLOAD 
 492 PUSH2 0435
 495 SWAP1 
 496 DUP4 
 497 JUMPDEST 
 498 PUSH1 00
 500 PUSH2 077d
 503 DUP4 
 504 DUP4 
 505 PUSH2 01c2
 508 JUMP 
 509 JUMPDEST 
 510 PUSH2 03ca
 513 PUSH1 12
 515 DUP2 
 516 JUMP 
 517 JUMPDEST 
 518 PUSH2 0174
 521 PUSH1 04
 523 CALLDATALOAD 
 524 PUSH1 24
 526 CALLDATALOAD 
 527 PUSH1 00
 529 PUSH2 06f1
 532 DUP4 
 533 DUP4 
 534 PUSH2 00fd
 537 JUMP 
 538 JUMPDEST 

=== from pc 466 ===
 466 JUMPDEST 
 467 PUSH1 40
 469 PUSH1 00
 471 SWAP1 
 472 DUP2 
 473 SHA3 
 474 PUSH1 01
 476 PUSH1 a0
 478 PUSH1 02
 480 EXP 
 481 SUB 
 482 CALLER 
 483 AND 
 484 DUP3 
 485 MSTORE 
 486 PUSH1 20
 488 DUP3 
 489 SWAP1 
 490 MSTORE 
 491 SLOAD 
 492 PUSH2 0435
 495 SWAP1 
 496 DUP4 
 497 JUMPDEST 
 498 PUSH1 00
 500 PUSH2 077d
 503 DUP4 
 504 DUP4 
 505 PUSH2 01c2
 508 JUMP 
 509 JUMPDEST 
 510 PUSH2 03ca
 513 PUSH1 12
 515 DUP2 
 516 JUMP 
 517 JUMPDEST 
 518 PUSH2 0174
 521 PUSH1 04
 523 CALLDATALOAD 
 524 PUSH1 24
 526 CALLDATALOAD 
 527 PUSH1 00
 529 PUSH2 06f1
 532 DUP4 
 533 DUP4 
 534 PUSH2 00fd
 537 JUMP 
 538 JUMPDEST 
 539 PUSH2 0174
 542 PUSH1 04
 544 CALLDATALOAD 
 545 PUSH1 01

=== from pc 497 ===
 497 JUMPDEST 
 498 PUSH1 00
 500 PUSH2 077d
 503 DUP4 
 504 DUP4 
 505 PUSH2 01c2
 508 JUMP 
 509 JUMPDEST 
 510 PUSH2 03ca
 513 PUSH1 12
 515 DUP2 
 516 JUMP 
 517 JUMPDEST 
 518 PUSH2 0174
 521 PUSH1 04
 523 CALLDATALOAD 
 524 PUSH1 24
 526 CALLDATALOAD 
 527 PUSH1 00
 529 PUSH2 06f1
 532 DUP4 
 533 DUP4 
 534 PUSH2 00fd
 537 JUMP 
 538 JUMPDEST 
 539 PUSH2 0174
 542 PUSH1 04
 544 CALLDATALOAD 
 545 PUSH1 01
 547 PUSH1 a0
 549 PUSH1 02
 551 EXP 
 552 SUB 
 553 DUP2 
 554 AND 
 555 PUSH1 00
 557 SWAP1 
 558 DUP2 
 559 MSTORE 
 560 PUSH1 20
 562 DUP2 
 563 SWAP1 
 564 MSTORE 
 565 PUSH1 40
 567 SWAP1 
 568 SHA3 
 569 SLOAD 
 570 JUMPDEST 
 571 SWAP2 
 572 SWAP1 
 573 POP 
 574 JUMP 
 575 JUMPDEST 
 576 PUSH2 035c

=== from pc 509 ===
 509 JUMPDEST 
 510 PUSH2 03ca
 513 PUSH1 12
 515 DUP2 
 516 JUMP 
 517 JUMPDEST 
 518 PUSH2 0174
 521 PUSH1 04
 523 CALLDATALOAD 
 524 PUSH1 24
 526 CALLDATALOAD 
 527 PUSH1 00
 529 PUSH2 06f1
 532 DUP4 
 533 DUP4 
 534 PUSH2 00fd
 537 JUMP 
 538 JUMPDEST 
 539 PUSH2 0174
 542 PUSH1 04
 544 CALLDATALOAD 
 545 PUSH1 01
 547 PUSH1 a0
 549 PUSH1 02
 551 EXP 
 552 SUB 
 553 DUP2 
 554 AND 
 555 PUSH1 00
 557 SWAP1 
 558 DUP2 
 559 MSTORE 
 560 PUSH1 20
 562 DUP2 
 563 SWAP1 
 564 MSTORE 
 565 PUSH1 40
 567 SWAP1 
 568 SHA3 
 569 SLOAD 
 570 JUMPDEST 
 571 SWAP2 
 572 SWAP1 
 573 POP 
 574 JUMP 
 575 JUMPDEST 
 576 PUSH2 035c
 579 PUSH1 40
 581 DUP1 
 582 MLOAD 
 583 DUP1 
 584 DUP3 
 585 ADD 
 586 SWAP1 
 587 SWAP2 
 588 MSTORE 

=== from pc 517 ===
 517 JUMPDEST 
 518 PUSH2 0174
 521 PUSH1 04
 523 CALLDATALOAD 
 524 PUSH1 24
 526 CALLDATALOAD 
 527 PUSH1 00
 529 PUSH2 06f1
 532 DUP4 
 533 DUP4 
 534 PUSH2 00fd
 537 JUMP 
 538 JUMPDEST 
 539 PUSH2 0174
 542 PUSH1 04
 544 CALLDATALOAD 
 545 PUSH1 01
 547 PUSH1 a0
 549 PUSH1 02
 551 EXP 
 552 SUB 
 553 DUP2 
 554 AND 
 555 PUSH1 00
 557 SWAP1 
 558 DUP2 
 559 MSTORE 
 560 PUSH1 20
 562 DUP2 
 563 SWAP1 
 564 MSTORE 
 565 PUSH1 40
 567 SWAP1 
 568 SHA3 
 569 SLOAD 
 570 JUMPDEST 
 571 SWAP2 
 572 SWAP1 
 573 POP 
 574 JUMP 
 575 JUMPDEST 
 576 PUSH2 035c
 579 PUSH1 40
 581 DUP1 
 582 MLOAD 
 583 DUP1 
 584 DUP3 
 585 ADD 
 586 SWAP1 
 587 SWAP2 
 588 MSTORE 
 589 PUSH1 03
 591 DUP2 
 592 MSTORE 
 593 OP_7f 4554480000000000000000000000000000000000000000000000000000000000

=== from pc 538 ===
 538 JUMPDEST 
 539 PUSH2 0174
 542 PUSH1 04
 544 CALLDATALOAD 
 545 PUSH1 01
 547 PUSH1 a0
 549 PUSH1 02
 551 EXP 
 552 SUB 
 553 DUP2 
 554 AND 
 555 PUSH1 00
 557 SWAP1 
 558 DUP2 
 559 MSTORE 
 560 PUSH1 20
 562 DUP2 
 563 SWAP1 
 564 MSTORE 
 565 PUSH1 40
 567 SWAP1 
 568 SHA3 
 569 SLOAD 
 570 JUMPDEST 
 571 SWAP2 
 572 SWAP1 
 573 POP 
 574 JUMP 
 575 JUMPDEST 
 576 PUSH2 035c
 579 PUSH1 40
 581 DUP1 
 582 MLOAD 
 583 DUP1 
 584 DUP3 
 585 ADD 
 586 SWAP1 
 587 SWAP2 
 588 MSTORE 
 589 PUSH1 03
 591 DUP2 
 592 MSTORE 
 593 OP_7f 4554480000000000000000000000000000000000000000000000000000000000

=== from pc 575 ===
 575 JUMPDEST 
 576 PUSH2 035c
 579 PUSH1 40
 581 DUP1 
 582 MLOAD 
 583 DUP1 
 584 DUP3 
 585 ADD 
 586 SWAP1 
 587 SWAP2 
 588 MSTORE 
 589 PUSH1 03
 591 DUP2 
 592 MSTORE 
 593 OP_7f 4554480000000000000000000000000000000000000000000000000000000000
 626 PUSH1 20
 628 DUP3 
 629 ADD 
 630 MSTORE 
 631 DUP2 
 632 JUMP 
 633 JUMPDEST 
 634 PUSH2 0174
 637 PUSH1 04
 639 CALLDATALOAD 
 640 PUSH1 24
 642 CALLDATALOAD 
 643 PUSH1 00
 645 ADDRESS 
 646 PUSH1 01
 648 PUSH1 a0
 650 PUSH1 02
 652 EXP 
 653 SUB 
 654 AND 

=== from pc 633 ===
 633 JUMPDEST 
 634 PUSH2 0174
 637 PUSH1 04
 639 CALLDATALOAD 
 640 PUSH1 24
 642 CALLDATALOAD 
 643 PUSH1 00
 645 ADDRESS 
 646 PUSH1 01
 648 PUSH1 a0
 650 PUSH1 02
 652 EXP 
 653 SUB 
 654 AND 
 655 DUP4 
 656 PUSH1 01
 658 PUSH1 a0
 660 PUSH1 02
 662 EXP 
 663 SUB 
 664 AND 
 665 EQ 
 666 DUP1 
 667 PUSH2 02ad
 670 JUMPI 
 671 POP 
 672 DUP3 
 673 PUSH1 01
 675 PUSH1 a0
 677 PUSH1 02
 679 EXP 
 680 SUB 
 681 AND 
 682 PUSH1 00
 684 EQ 
 685 JUMPDEST 
 686 ISZERO 
 687 PUSH2 04dc
 690 JUMPI 
 691 PUSH2 04ff
 694 DUP3 
 695 PUSH2 01d2
 698 JUMP 
 699 JUMPDEST 
 700 PUSH2 0358
 703 PUSH1 01
 705 PUSH1 a0
 707 PUSH1 02
 709 EXP 
 710 SUB 
 711 CALLER 
 712 AND 

=== from pc 699 ===
 699 JUMPDEST 
 700 PUSH2 0358
 703 PUSH1 01
 705 PUSH1 a0
 707 PUSH1 02
 709 EXP 
 710 SUB 
 711 CALLER 
 712 AND 
 713 PUSH1 00
 715 SWAP1 
 716 DUP2 
 717 MSTORE 
 718 PUSH1 20
 720 DUP2 
 721 SWAP1 
 722 MSTORE 
 723 PUSH1 40
 725 SWAP1 
 726 SHA3 
 727 SLOAD 
 728 PUSH2 0432
 731 SWAP1 
 732 PUSH2 01d2
 735 JUMP 
 736 JUMPDEST 
 737 PUSH2 0174
 740 PUSH8 0de0b6b3a7640000
 749 DUP2 
 750 JUMP 
 751 JUMPDEST 
 752 PUSH2 0358
 755 JUMPDEST 
 756 PUSH1 01
 758 PUSH1 a0
 760 PUSH1 02
 762 EXP 
 763 SUB 
 764 CALLER 
 765 AND 
 766 PUSH1 00
 768 SWAP1 
 769 DUP2 
 770 MSTORE 
 771 PUSH1 20
 773 DUP2 
 774 SWAP1 
 775 MSTORE 
 776 PUSH1 40
 778 SWAP1 

=== from pc 755 ===
 755 JUMPDEST 
 756 PUSH1 01
 758 PUSH1 a0
 760 PUSH1 02
 762 EXP 
 763 SUB 
 764 CALLER 
 765 AND 
 766 PUSH1 00
 768 SWAP1 
 769 DUP2 
 770 MSTORE 
 771 PUSH1 20
 773 DUP2 
 774 SWAP1 
 775 MSTORE 
 776 PUSH1 40
 778 SWAP1 
 779 SHA3 
 780 SLOAD 
 781 PUSH2 03e0
 784 SWAP1 
 785 CALLVALUE 
 786 JUMPDEST 
 787 PUSH1 00
 789 PUSH2 0769
 792 DUP4 
 793 DUP4 
 794 DUP2 
 795 DUP2 
 796 ADD 
 797 DUP3 
 798 SWAP1 
 799 GT 
 800 PUSH2 0162
 803 JUMP 
 804 JUMPDEST 
 805 PUSH2 0174
 808 PUSH1 04
 810 CALLDATALOAD 
 811 PUSH1 24
 813 CALLDATALOAD 
 814 PUSH1 01
 816 PUSH1 a0
 818 PUSH1 02
 820 EXP 
 821 SUB 
 822 DUP3 
 823 DUP2 
 824 AND 
 825 PUSH1 00
 827 SWAP1 
 828 DUP2 
 829 MSTORE 
 830 PUSH1 01
 832 PUSH1 20
 834 SWAP1 

=== from pc 804 ===
 804 JUMPDEST 
 805 PUSH2 0174
 808 PUSH1 04
 810 CALLDATALOAD 
 811 PUSH1 24
 813 CALLDATALOAD 
 814 PUSH1 01
 816 PUSH1 a0
 818 PUSH1 02
 820 EXP 
 821 SUB 
 822 DUP3 
 823 DUP2 
 824 AND 
 825 PUSH1 00
 827 SWAP1 
 828 DUP2 
 829 MSTORE 
 830 PUSH1 01
 832 PUSH1 20
 834 SWAP1 
 835 DUP2 
 836 MSTORE 
 837 PUSH1 40
 839 DUP1 
 840 DUP4 
 841 SHA3 
 842 SWAP4 
 843 DUP6 
 844 AND 
 845 DUP4 
 846 MSTORE 
 847 SWAP3 
 848 SWAP1 
 849 MSTORE 
 850 SHA3 
 851 SLOAD 
 852 PUSH2 0162
 855 JUMP 
 856 JUMPDEST 
 857 STOP 
 858 JUMPDEST 
 859 JUMP 
 860 JUMPDEST 
 861 PUSH1 40
 863 MLOAD 
 864 DUP1 
 865 DUP1 
 866 PUSH1 20
 868 ADD 
 869 DUP3 
 870 DUP2 
 871 SUB 
 872 DUP3 
 873 MSTORE 
 874 DUP4 
 875 DUP2 
 876 DUP2 
 877 MLOAD 
 878 DUP2 
 879 MSTORE 
 880 PUSH1 20
 882 ADD 
 883 SWAP2 

=== from pc 860 ===
 860 JUMPDEST 
 861 PUSH1 40
 863 MLOAD 
 864 DUP1 
 865 DUP1 
 866 PUSH1 20
 868 ADD 
 869 DUP3 
 870 DUP2 
 871 SUB 
 872 DUP3 
 873 MSTORE 
 874 DUP4 
 875 DUP2 
 876 DUP2 
 877 MLOAD 
 878 DUP2 
 879 MSTORE 
 880 PUSH1 20
 882 ADD 
 883 SWAP2 
 884 POP 
 885 DUP1 
 886 MLOAD 
 887 SWAP1 
 888 PUSH1 20
 890 ADD 
 891 SWAP1 
 892 DUP1 
 893 DUP4 
 894 DUP4 
 895 DUP3 
 896 SWAP1 
 897 PUSH1 00
 899 PUSH1 04
 901 PUSH1 20
 903 DUP5 
 904 PUSH1 1f
 906 ADD 
 907 DIV 
 908 PUSH1 0f
 910 MUL 
 911 PUSH1 03
 913 ADD 
 914 CALL 
 915 POP 
 916 SWAP1 
 917 POP 
 918 SWAP1 
 919 DUP2 
 920 ADD 
 921 SWAP1 
 922 PUSH1 1f
 924 AND 
 925 DUP1 
 926 ISZERO 
 927 PUSH2 03bc
 930 JUMPI 
 931 DUP1 
 932 DUP3 
 933 SUB 
 934 DUP1 
 935 MLOAD 
 936 PUSH1 01
 938 DUP4 
 939 PUSH1 20

=== from pc 992 ===
 992 JUMPDEST 
 993 PUSH1 01
 995 PUSH1 a0
 997 PUSH1 02
 999 EXP 
1000 SUB 
1001 CALLER 
1002 AND 
1003 PUSH1 00
1005 DUP2 
1006 DUP2 
1007 MSTORE 
1008 PUSH1 20
1010 DUP2 
1011 DUP2 
1012 MSTORE 
1013 PUSH1 40
1015 SWAP2 
1016 DUP3 
1017 SWAP1 
1018 SHA3 
1019 SWAP4 
1020 SWAP1 
1021 SWAP4 
1022 SSTORE 
1023 DUP1 
1024 MLOAD 
1025 CALLVALUE 
1026 DUP2 
1027 MSTORE 
1028 SWAP1 
1029 MLOAD 
1030 SWAP2 
1031 SWAP3 
1032 OP_7f e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c
1065 SWAP3 
1066 SWAP2 
1067 DUP3 
1068 SWAP1 
1069 SUB 
1070 ADD 
1071 SWAP1 

=== from pc 1077 ===
1077 JUMPDEST 
1078 PUSH1 01
1080 PUSH1 a0
1082 PUSH1 02
1084 EXP 
1085 SUB 
1086 CALLER 
1087 AND 
1088 PUSH1 00
1090 DUP2 
1091 DUP2 
1092 MSTORE 
1093 PUSH1 20
1095 DUP2 
1096 SWAP1 
1097 MSTORE 
1098 PUSH1 40
1100 DUP1 
1101 DUP3 
1102 SHA3 
1103 SWAP4 
1104 SWAP1 
1105 SWAP4 
1106 SSTORE 
1107 SWAP2 
1108 MLOAD 
1109 SWAP1 
1110 SWAP2 
1111 SWAP1 
1112 DUP5 
1113 SWAP1 
1114 DUP3 
1115 DUP2 
1116 DUP2 
1117 DUP2 
1118 DUP6 
1119 DUP9 
1120 DUP4 
1121 CALL 
1122 SWAP4 
1123 POP 
1124 POP 
1125 POP 
1126 POP 
1127 ISZERO 
1128 ISZERO 
1129 PUSH2 0495
1132 JUMPI 
1133 CALLER 
1134 PUSH1 01
1136 PUSH1 a0
1138 PUSH1 02
1140 EXP 
1141 SUB 
1142 AND 
1143 GAS 
1144 PUSH1 40
1146 MLOAD 
1147 DUP5 
1148 SWAP1 
1149 PUSH1 00
1151 DUP2 
1152 DUP2 
1153 DUP2 
1154 DUP6 
1155 DUP9 
1156 DUP9 

=== from pc 1133 ===
1133 CALLER 
1134 PUSH1 01
1136 PUSH1 a0
1138 PUSH1 02
1140 EXP 
1141 SUB 
1142 AND 
1143 GAS 
1144 PUSH1 40
1146 MLOAD 
1147 DUP5 
1148 SWAP1 
1149 PUSH1 00
1151 DUP2 
1152 DUP2 
1153 DUP2 
1154 DUP6 
1155 DUP9 
1156 DUP9 
1157 CALL 
1158 SWAP4 
1159 POP 
1160 POP 
1161 POP 
1162 POP 
1163 ISZERO 
1164 ISZERO 
1165 PUSH2 0495
1168 JUMPI 
1169 PUSH2 0002
1172 JUMP 
1173 JUMPDEST 
1174 PUSH1 40
1176 DUP1 
1177 MLOAD 
1178 DUP4 
1179 DUP2 
1180 MSTORE 
1181 SWAP1 
1182 MLOAD 
1183 PUSH1 01
1185 PUSH1 a0
1187 PUSH1 02
1189 EXP 
1190 SUB 
1191 CALLER 
1192 AND 
1193 SWAP2 
1194 OP_7f 7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65

=== from pc 1173 ===
1173 JUMPDEST 
1174 PUSH1 40
1176 DUP1 
1177 MLOAD 
1178 DUP4 
1179 DUP2 
1180 MSTORE 
1181 SWAP1 
1182 MLOAD 
1183 PUSH1 01
1185 PUSH1 a0
1187 PUSH1 02
1189 EXP 
1190 SUB 
1191 CALLER 
1192 AND 
1193 SWAP2 
1194 OP_7f 7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65
1227 SWAP2 
1228 SWAP1 
1229 DUP2 
1230 SWAP1 
1231 SUB 
1232 PUSH1 20
1234 ADD 
1235 SWAP1 
1236 LOG2 
1237 POP 
1238 PUSH1 01
1240 PUSH2 023a
1243 JUMP 
1244 JUMPDEST 
1245 PUSH1 01
1247 PUSH1 a0
1249 PUSH1 02
1251 EXP 
1252 SUB 

=== from pc 1244 ===
1244 JUMPDEST 
1245 PUSH1 01
1247 PUSH1 a0
1249 PUSH1 02
1251 EXP 
1252 SUB 
1253 CALLER 
1254 AND 
1255 PUSH1 00
1257 SWAP1 
1258 DUP2 
1259 MSTORE 
1260 PUSH1 20
1262 DUP2 
1263 SWAP1 
1264 MSTORE 
1265 PUSH1 40
1267 SWAP1 
1268 SHA3 
1269 SLOAD 
1270 PUSH2 0506
1273 SWAP1 
1274 DUP4 
1275 PUSH2 01f1
1278 JUMP 
1279 JUMPDEST 
1280 SWAP1 
1281 POP 
1282 PUSH2 0162
1285 JUMP 
1286 JUMPDEST 
1287 PUSH1 01
1289 PUSH1 a0
1291 PUSH1 02
1293 EXP 
1294 SUB 
1295 CALLER 
1296 DUP2 
1297 AND 
1298 PUSH1 00
1300 SWAP1 
1301 DUP2 
1302 MSTORE 
1303 PUSH1 20
1305 DUP2 
1306 SWAP1 
1307 MSTORE 
1308 PUSH1 40
1310 DUP1 
1311 DUP3 
1312 SHA3 
1313 SWAP4 
1314 SWAP1 
1315 SWAP4 
1316 SSTORE 
1317 SWAP1 
1318 DUP6 
1319 AND 
1320 DUP2 
1321 MSTORE 
1322 SHA3 
1323 SLOAD 

=== from pc 1286 ===
1286 JUMPDEST 
1287 PUSH1 01
1289 PUSH1 a0
1291 PUSH1 02
1293 EXP 
1294 SUB 
1295 CALLER 
1296 DUP2 
1297 AND 
1298 PUSH1 00
1300 SWAP1 
1301 DUP2 
1302 MSTORE 
1303 PUSH1 20
1305 DUP2 
1306 SWAP1 
1307 MSTORE 
1308 PUSH1 40
1310 DUP1 
1311 DUP3 
1312 SHA3 
1313 SWAP4 
1314 SWAP1 
1315 SWAP4 
1316 SSTORE 
1317 SWAP1 
1318 DUP6 
1319 AND 
1320 DUP2 
1321 MSTORE 
1322 SHA3 
1323 SLOAD 
1324 PUSH2 0535
1327 SWAP1 
1328 DUP4 
1329 PUSH2 0312
1332 JUMP 
1333 JUMPDEST 
1334 PUSH1 01
1336 PUSH1 a0
1338 PUSH1 02
1340 EXP 
1341 SUB 
1342 DUP5 
1343 DUP2 
1344 AND 
1345 PUSH1 00
1347 DUP2 
1348 DUP2 
1349 MSTORE 
1350 PUSH1 20
1352 DUP2 
1353 DUP2 
1354 MSTORE 
1355 PUSH1 40
1357 SWAP2 
1358 DUP3 
1359 SWAP1 
1360 SHA3 
1361 SWAP5 
1362 SWAP1 
1363 SWAP5 
1364 SSTORE 
1365 DUP1 

=== from pc 1333 ===
1333 JUMPDEST 
1334 PUSH1 01
1336 PUSH1 a0
1338 PUSH1 02
1340 EXP 
1341 SUB 
1342 DUP5 
1343 DUP2 
1344 AND 
1345 PUSH1 00
1347 DUP2 
1348 DUP2 
1349 MSTORE 
1350 PUSH1 20
1352 DUP2 
1353 DUP2 
1354 MSTORE 
1355 PUSH1 40
1357 SWAP2 
1358 DUP3 
1359 SWAP1 
1360 SHA3 
1361 SWAP5 
1362 SWAP1 
1363 SWAP5 
1364 SSTORE 
1365 DUP1 
1366 MLOAD 
1367 DUP7 
1368 DUP2 
1369 MSTORE 
1370 SWAP1 
1371 MLOAD 
1372 SWAP2 
1373 SWAP4 
1374 CALLER 
1375 SWAP1 
1376 SWAP4 
1377 AND 
1378 SWAP3 
1379 OP_7f ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
1412 SWAP3 

=== from pc 1438 ===
1438 JUMPDEST 
1439 ADDRESS 
1440 PUSH1 01
1442 PUSH1 a0
1444 PUSH1 02
1446 EXP 
1447 SUB 
1448 AND 
1449 DUP4 
1450 PUSH1 01
1452 PUSH1 a0
1454 PUSH1 02
1456 EXP 
1457 SUB 
1458 AND 
1459 EQ 
1460 DUP1 
1461 PUSH2 05c7
1464 JUMPI 
1465 POP 
1466 DUP3 
1467 PUSH1 01
1469 PUSH1 a0
1471 PUSH1 02
1473 EXP 
1474 SUB 
1475 AND 
1476 PUSH1 00
1478 EQ 
1479 JUMPDEST 
1480 ISZERO 
1481 PUSH2 05d7
1484 JUMPI 
1485 PUSH2 05fa
1488 DUP5 
1489 CALLER 
1490 DUP5 
1491 PUSH2 0193
1494 JUMP 
1495 JUMPDEST 
1496 PUSH1 01
1498 PUSH1 a0
1500 PUSH1 02
1502 EXP 
1503 SUB 
1504 DUP5 
1505 AND 
1506 PUSH1 00
1508 SWAP1 
1509 DUP2 
1510 MSTORE 
1511 PUSH1 20
1513 DUP2 
1514 SWAP1 
1515 MSTORE 
1516 PUSH1 40

=== from pc 1495 ===
1495 JUMPDEST 
1496 PUSH1 01
1498 PUSH1 a0
1500 PUSH1 02
1502 EXP 
1503 SUB 
1504 DUP5 
1505 AND 
1506 PUSH1 00
1508 SWAP1 
1509 DUP2 
1510 MSTORE 
1511 PUSH1 20
1513 DUP2 
1514 SWAP1 
1515 MSTORE 
1516 PUSH1 40
1518 SWAP1 
1519 SHA3 
1520 SLOAD 
1521 PUSH2 0682
1524 SWAP1 
1525 DUP4 
1526 PUSH2 01f1
1529 JUMP 
1530 JUMPDEST 
1531 ISZERO 
1532 ISZERO 
1533 PUSH2 0605
1536 JUMPI 
1537 PUSH2 0002
1540 JUMP 
1541 JUMPDEST 
1542 PUSH2 060e
1545 DUP3 
1546 PUSH2 01d2
1549 JUMP 
1550 JUMPDEST 
1551 POP 
1552 PUSH2 0678
1555 JUMP 
1556 JUMPDEST 
1557 PUSH1 01
1559 PUSH1 a0
1561 PUSH1 02
1563 EXP 
1564 SUB 
1565 DUP6 
1566 DUP2 
1567 AND 
1568 PUSH1 00
1570 DUP2 
1571 DUP2 
1572 MSTORE 
1573 PUSH1 01

=== from pc 1556 ===
1556 JUMPDEST 
1557 PUSH1 01
1559 PUSH1 a0
1561 PUSH1 02
1563 EXP 
1564 SUB 
1565 DUP6 
1566 DUP2 
1567 AND 
1568 PUSH1 00
1570 DUP2 
1571 DUP2 
1572 MSTORE 
1573 PUSH1 01
1575 PUSH1 20
1577 SWAP1 
1578 DUP2 
1579 MSTORE 
1580 PUSH1 40
1582 DUP1 
1583 DUP4 
1584 SHA3 
1585 CALLER 
1586 DUP7 
1587 AND 
1588 DUP5 
1589 MSTORE 
1590 DUP3 
1591 MSTORE 
1592 SWAP2 
1593 DUP3 
1594 SWAP1 
1595 SHA3 
1596 SWAP5 
1597 SWAP1 
1598 SWAP5 
1599 SSTORE 
1600 DUP1 
1601 MLOAD 
1602 DUP7 
1603 DUP2 
1604 MSTORE 
1605 SWAP1 
1606 MLOAD 
1607 SWAP3 
1608 DUP8 
1609 AND 
1610 SWAP4 
1611 SWAP2 
1612 SWAP3 
1613 OP_7f ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

=== from pc 1666 ===
1666 JUMPDEST 
1667 PUSH1 01
1669 PUSH1 a0
1671 PUSH1 02
1673 EXP 
1674 SUB 
1675 DUP6 
1676 DUP2 
1677 AND 
1678 PUSH1 00
1680 SWAP1 
1681 DUP2 
1682 MSTORE 
1683 PUSH1 20
1685 DUP2 
1686 SWAP1 
1687 MSTORE 
1688 PUSH1 40
1690 DUP1 
1691 DUP3 
1692 SHA3 
1693 SWAP4 
1694 SWAP1 
1695 SWAP4 
1696 SSTORE 
1697 SWAP1 
1698 DUP6 
1699 AND 
1700 DUP2 
1701 MSTORE 
1702 SHA3 
1703 SLOAD 
1704 PUSH2 06b1
1707 SWAP1 
1708 DUP4 
1709 PUSH2 0312
1712 JUMP 
1713 JUMPDEST 
1714 PUSH1 01
1716 PUSH1 a0
1718 PUSH1 02
1720 EXP 
1721 SUB 
1722 DUP5 
1723 DUP2 
1724 AND 
1725 PUSH1 00
1727 SWAP1 
1728 DUP2 
1729 MSTORE 
1730 PUSH1 20
1732 DUP2 
1733 DUP2 
1734 MSTORE 
1735 PUSH1 40
1737 DUP1 
1738 DUP4 
1739 SHA3 
1740 SWAP5 
1741 SWAP1 
1742 SWAP5 
1743 SSTORE 
1744 DUP8 
1745 DUP4 

=== from pc 1713 ===
1713 JUMPDEST 
1714 PUSH1 01
1716 PUSH1 a0
1718 PUSH1 02
1720 EXP 
1721 SUB 
1722 DUP5 
1723 DUP2 
1724 AND 
1725 PUSH1 00
1727 SWAP1 
1728 DUP2 
1729 MSTORE 
1730 PUSH1 20
1732 DUP2 
1733 DUP2 
1734 MSTORE 
1735 PUSH1 40
1737 DUP1 
1738 DUP4 
1739 SHA3 
1740 SWAP5 
1741 SWAP1 
1742 SWAP5 
1743 SSTORE 
1744 DUP8 
1745 DUP4 
1746 AND 
1747 DUP3 
1748 MSTORE 
1749 PUSH1 01
1751 DUP2 
1752 MSTORE 
1753 DUP4 
1754 DUP3 
1755 SHA3 
1756 CALLER 
1757 SWAP1 
1758 SWAP4 
1759 AND 
1760 DUP3 
1761 MSTORE 
1762 SWAP2 
1763 SWAP1 
1764 SWAP2 
1765 MSTORE 
1766 SHA3 
1767 SLOAD 
1768 PUSH2 0614
1771 SWAP1 
1772 DUP4 
1773 PUSH2 01f1
1776 JUMP 
1777 JUMPDEST 
1778 ISZERO 
1779 PUSH2 0764
1782 JUMPI 
1783 DUP3 
1784 PUSH1 01
1786 PUSH1 a0
1788 PUSH1 02
1790 EXP 
1791 SUB 
1792 AND 

=== from pc 1783 ===
1783 DUP3 
1784 PUSH1 01
1786 PUSH1 a0
1788 PUSH1 02
1790 EXP 
1791 SUB 
1792 AND 
1793 PUSH4 4889ca88
1798 CALLER 
1799 DUP5 
1800 ADDRESS 
1801 PUSH1 40
1803 MLOAD 
1804 DUP5 
1805 PUSH1 e0
1807 PUSH1 02
1809 EXP 
1810 MUL 
1811 DUP2 
1812 MSTORE 
1813 PUSH1 04
1815 ADD 
1816 DUP1 
1817 DUP5 
1818 PUSH1 01
1820 PUSH1 a0
1822 PUSH1 02
1824 EXP 
1825 SUB 
1826 AND 
1827 DUP2 
1828 MSTORE 
1829 PUSH1 20
1831 ADD 
1832 DUP4 
1833 DUP2 
1834 MSTORE 
1835 PUSH1 20
1837 ADD 
1838 DUP3 
1839 PUSH1 01
1841 PUSH1 a0
1843 PUSH1 02
1845 EXP 
1846 SUB 
1847 AND 
1848 DUP2 
1849 MSTORE 
1850 PUSH1 20
1852 ADD 
1853 SWAP4 
1854 POP 
1855 POP 
1856 POP 
1857 POP 
1858 PUSH1 00
1860 PUSH1 40
1862 MLOAD 

=== from pc 1892 ===
1892 JUMPDEST 
1893 PUSH2 0002
1896 JUMP 
1897 JUMPDEST 
1898 ISZERO 
1899 ISZERO 
1900 PUSH2 0774
1903 JUMPI 
1904 PUSH2 0002
1907 JUMP 
1908 JUMPDEST 
1909 POP 
1910 DUP2 
1911 DUP2 
1912 ADD 
1913 PUSH2 0162
1916 JUMP 
1917 JUMPDEST 
1918 ISZERO 
1919 ISZERO 
1920 PUSH2 0788
1923 JUMPI 
1924 PUSH2 0002
1927 JUMP 
1928 JUMPDEST 
1929 POP 
1930 DUP1 
1931 DUP3 
1932 SUB 
1933 PUSH2 0162
1936 JUMP 

exec
/bin/bash -lc "node - <<'NODE'
const fs=require('fs');
const hex=JSON.parse(fs.readFileSync('BYTECODE_BUNDLE.json','utf8')).artifact.runtime_bytecode.full.slice(2);
const names={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0xf1:'CALL',0xf3:'RETURN'};for(let i=1;i<=32;i++)names[0x5f+i]='PUSH'+i;for(let i=1;i<=16;i++){names[0x7f+i]='DUP'+i;names[0x8f+i]='SWAP'+i;}for(let i=0;i<5;i++)names[0xa0+i]='LOG'+i;
let pc=0, ops=[];for(let i=0;i<hex.length;){const op=parseInt(hex.slice(i,i+2),16);let imm='';let len=1;if(op>=0x60&&op<=0x7f){const n=op-0x5f;imm=hex.slice(i+2,i+2+2*n);len=1+n;}ops.push({pc,name:names[op]||('0x'+op.toString(16)),imm});i+=len*2;pc+=len;}
for(const o of ops.filter(x=>x.pc>=75&&x.pc<174)) console.log(o.pc,o.name,o.imm);
NODE" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
75 DUP1 
76 PUSH4 313ce567
81 EQ 
82 PUSH2 01fd
85 JUMPI 
86 DUP1 
87 PUSH4 3177029f
92 EQ 
93 PUSH2 0205
96 JUMPI 
97 DUP1 
98 PUSH4 70a08231
103 EQ 
104 PUSH2 021a
107 JUMPI 
108 DUP1 
109 PUSH4 95d89b41
114 EQ 
115 PUSH2 023f
118 JUMPI 
119 DUP1 
120 PUSH4 a9059cbb
125 EQ 
126 PUSH2 0279
129 JUMPI 
130 DUP1 
131 PUSH4 be040fb0
136 EQ 
137 PUSH2 02bb
140 JUMPI 
141 DUP1 
142 PUSH4 c2930f91
147 EQ 
148 PUSH2 02e0
151 JUMPI 
152 DUP1 
153 PUSH4 d0e30db0
158 EQ 
159 PUSH2 02ef
162 JUMPI 
163 DUP1 
164 PUSH4 dd62ed3e
169 EQ 
170 PUSH2 0324
173 JUMPI 

exec
/bin/bash -lc "node - <<'NODE'
const sigs=['tokenFallback(address,uint256,bytes)','tokenFallback(address,uint,bytes)','receiveApproval(address,uint256,address,bytes)','onTokenTransfer(address,uint256,bytes)','onTokenReceived(address,uint256,bytes)','onTokenTransfer(address,uint256,address)','receiveEther(uint256)','receiveApproval(address,uint256,address)','tokenRecipient(address,uint256,address)'];
(async()=>{let keccak;try{({keccak256,toUtf8Bytes}=require('ethers')); for(const s of sigs) console.log(s, keccak256(toUtf8Bytes(s)).slice(0,10));}catch(e){console.error('ethers missing',e.message)}})();
NODE" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
ethers missing Cannot find module 'ethers'
Require stack:
- /tmp/codex-93zqp0qz/[stdin]

exec
/bin/bash -lc 'which evm || which cast || which hevm || which forge || which python3' in /tmp/codex-93zqp0qz
 succeeded in 0ms:
/home/noahkuhn/.foundry/bin/cast

exec
/bin/bash -lc "cast sig 'transferAndCall(address,uint256,bytes)' && cast sig 'transferAndCall(address,uint256)' && cast sig 'approveAndCall(address,uint256)' && cast sig 'approveAndCall(address,uint256,bytes)' && cast sig 'withdrawAll()' && cast sig 'deposit()' && cast sig 'withdrawAllTo(address)' && cast sig 'withdrawTo(address,uint256)' && cast sig 'withdrawAndCall(address,uint256)'" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
0x4000aea0
0x1296ee62
0x3177029f
0xcae9ca51
0x853828b6
0xd0e30db0
0xca9add8f
0x205c2878
0x88d94007

exec
/bin/bash -lc "cast sig 'withdrawAll()' && cast sig 'withdrawAllTo(address)' && cast sig 'withdrawTo(address,uint256)' && cast sig 'transferAndCall(address,uint256)' && cast sig 'transferAndCall(address,uint256,bytes)' && cast sig 'transfer(address,uint256,bytes)' && cast sig 'transferFrom(address,address,uint256,bytes)' && cast sig 'depositTo(address)' && cast sig 'approveAndCall(address,uint256,bytes)' && cast sig 'transferAndCall(address,uint256,address)'" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
0x853828b6
0xca9add8f
0x205c2878
0x1296ee62
0x4000aea0
0xbe45fd62
0xab67aa58
0xb760faf9
0xcae9ca51
0xf58969e2

exec
/bin/bash -lc "cast sig 'receiveApproval(address,uint256,address)' && cast sig 'receiveApproval(address,uint256,address,bytes)' && cast sig 'onApprove(address,uint256,address)' && cast sig 'tokenCallback(address,uint256,address)' && cast sig 'tokenRecipient(address,uint256,address)'" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
0x4889ca88
0x8f4ffcb1
0x788ac8d8
0x329f3195
0x05812ed7

exec
/bin/bash -lc "cast sig 'withdraw(address,uint256)' && cast sig 'withdrawTo(address,uint256)' && cast sig 'transferTo(address,uint256)' && cast sig 'deposit(address,uint256)' && cast sig 'transfer(address,uint256,bytes)' && cast sig 'transferToAddress(address,uint256)' && cast sig 'move(address,uint256)' && cast sig 'burn(uint256)' && cast sig 'burn(address,uint256)' && cast sig 'depositTo(address,uint256)'" in /tmp/codex-93zqp0qz
 succeeded in 0ms:
0xf3fef3a3
0x205c2878
0x2ccb1b30
0x47e7ef24
0xbe45fd62
0xacef6037
0x987ff31c
0x42966c68
0x9dc29fac
0xffaad6a5

exec
/bin/bash -lc 'cast 4byte 0xbe040fb0 || true; cast 4byte 0xc2930f91 || true; cast 4byte 0x4889ca88 || true' in /tmp/codex-93zqp0qz
 succeeded in 0ms:
Error: error sending request for url (https://api.4byte.sourcify.dev/signature-database/v1/lookup?function=0xbe040fb0)

Context:
- Error #0: client error (Connect)
- Error #1: dns error
- Error #2: failed to lookup address information: Temporary failure in name resolution
Error: error sending request for url (https://api.4byte.sourcify.dev/signature-database/v1/lookup?function=0xc2930f91)

Context:
- Error #0: client error (Connect)
- Error #1: dns error
- Error #2: failed to lookup address information: Temporary failure in name resolution
Error: error sending request for url (https://api.4byte.sourcify.dev/signature-database/v1/lookup?function=0x4889ca88)

Context:
- Error #0: client error (Connect)
- Error #1: dns error
- Error #2: failed to lookup address information: Temporary failure in name resolution

exec
/bin/bash -lc "cast sig 'push(address,uint256)' && cast sig 'pull(address,uint256)' && cast sig 'move(address,address,uint256)' && cast sig 'mint(uint256)' && cast sig 'burn(address,uint256)' && cast sig 'mint(address,uint256)' && cast sig 'approve(address)'" in /tmp/codex-93zqp0qz
 succeeded in 113ms:
0x40c10f19
0xdaea85c5

codex
{"no_findings":false,"summary":"Bytecode appears to implement an ETH-backed ERC20-style wrapper with `deposit`, `withdraw`, ERC20 transfers, and `approveAndCall`. No proxy/delegatecall paths were evidenced, and the raw ETH send paths appear to debit storage before calling out. Two conservative issues remain: a standard allowance-race pattern and a supply-accounting invariant break because `totalSupply()` is derived from raw ETH balance.","findings":[{"severity":"medium","category":"auth","title":"Allowance overwrite race in `approve` and `approveAndCall`","exploit_scenario":"A holder changes a spender allowance from `N` to `M` using `approve` or `approveAndCall`. A malicious spender can front-run with `transferFrom(..., N)` before the new approval lands, then still use the fresh `M` allowance afterward, effectively spending more than the holder intended. In the `approveAndCall` path, the newly written allowance is also live before the external callback returns.","recommendation":"Do not support overwrite-style approvals without mitigation. Require setting allowance to zero before a new non-zero value, or add `increaseAllowance` / `decreaseAllowance` style flows and deprecate direct allowance replacement.","evidence":"Selector inference is best-effort, but `0x095ea7b3` matches ERC20 `approve(address,uint256)` and `0x3177029f` matches `approveAndCall(address,uint256)`. Both flow through the allowance-write routine beginning at pc `0xfd`, where the nested allowance mapping is written with `SSTORE` and no visible zero-check or compare-to-current-allowance guard precedes the write. The `approveAndCall` path then performs an external callback at pc `0x753` using selector `0x4889ca88` (`receiveApproval(address,uint256,address)`), so the just-written allowance is immediately usable.","locations":["selector:0x095ea7b3","selector:0x3177029f","pc:0xfd","pc:0x6f7"]},{"severity":"low","category":"math","title":"`totalSupply()` is tied to raw ETH balance, so forced ETH can desynchronize accounting","exploit_scenario":"An attacker can force ETH into the contract (for example via `SELFDESTRUCT`). The contract's ETH balance rises, so `totalSupply()` rises as well, but no holder balance is minted. This can break the invariant that total supply equals the sum of account balances, confuse integrations that rely on supply-based accounting, and leave unsolicited ETH permanently trapped.","recommendation":"Track minted supply in storage and update it only on explicit deposit/withdraw flows, or provide a controlled reconciliation/sweep mechanism for unsolicited ETH.","evidence":"`totalSupply()` (`0x18160ddd`) resolves to the routine at pc `0x168`, which executes `ADDRESS ... BALANCE` and returns the contract's ETH balance directly. By contrast, `balanceOf()` (`0x70a08231`) reads from a storage mapping at pc `0x21a`. Because supply is not read from the same storage accounting as balances, unsolicited ETH changes reported supply without changing any user balance.","locations":["selector:0x18160ddd","selector:0x70a08231","pc:0x168","pc:0x21a"]}]}
tokens used
93,789
Metadata
{
    "codex": {
        "ran_at": "2026-04-05T05:32:56.023794+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 3876,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Bytecode appears to implement an ETH-backed ERC20-style wrapper with `deposit`, `withdraw`, ERC20 transfers, and `approveAndCall`. No proxy/delegatecall paths were evidenced, and the raw ETH send paths appear to debit storage before calling out. Two conservative issues remain: a standard allowance-race pattern and a supply-accounting invariant break because `totalSupply()` is derived from raw ETH balance.",
    "raw_final": {
        "summary": "Bytecode appears to implement an ETH-backed ERC20-style wrapper with `deposit`, `withdraw`, ERC20 transfers, and `approveAndCall`. No proxy/delegatecall paths were evidenced, and the raw ETH send paths appear to debit storage before calling out. Two conservative issues remain: a standard allowance-race pattern and a supply-accounting invariant break because `totalSupply()` is derived from raw ETH balance.",
        "findings": [
            {
                "title": "Allowance overwrite race in `approve` and `approveAndCall`",
                "category": "auth",
                "evidence": "Selector inference is best-effort, but `0x095ea7b3` matches ERC20 `approve(address,uint256)` and `0x3177029f` matches `approveAndCall(address,uint256)`. Both flow through the allowance-write routine beginning at pc `0xfd`, where the nested allowance mapping is written with `SSTORE` and no visible zero-check or compare-to-current-allowance guard precedes the write. The `approveAndCall` path then performs an external callback at pc `0x753` using selector `0x4889ca88` (`receiveApproval(address,uint256,address)`), so the just-written allowance is immediately usable.",
                "severity": "medium",
                "locations": [
                    "selector:0x095ea7b3",
                    "selector:0x3177029f",
                    "pc:0xfd",
                    "pc:0x6f7"
                ],
                "recommendation": "Do not support overwrite-style approvals without mitigation. Require setting allowance to zero before a new non-zero value, or add `increaseAllowance` / `decreaseAllowance` style flows and deprecate direct allowance replacement.",
                "exploit_scenario": "A holder changes a spender allowance from `N` to `M` using `approve` or `approveAndCall`. A malicious spender can front-run with `transferFrom(..., N)` before the new approval lands, then still use the fresh `M` allowance afterward, effectively spending more than the holder intended. In the `approveAndCall` path, the newly written allowance is also live before the external callback returns."
            },
            {
                "title": "`totalSupply()` is tied to raw ETH balance, so forced ETH can desynchronize accounting",
                "category": "math",
                "evidence": "`totalSupply()` (`0x18160ddd`) resolves to the routine at pc `0x168`, which executes `ADDRESS ... BALANCE` and returns the contract's ETH balance directly. By contrast, `balanceOf()` (`0x70a08231`) reads from a storage mapping at pc `0x21a`. Because supply is not read from the same storage accounting as balances, unsolicited ETH changes reported supply without changing any user balance.",
                "severity": "low",
                "locations": [
                    "selector:0x18160ddd",
                    "selector:0x70a08231",
                    "pc:0x168",
                    "pc:0x21a"
                ],
                "recommendation": "Track minted supply in storage and update it only on explicit deposit/withdraw flows, or provide a controlled reconciliation/sweep mechanism for unsolicited ETH.",
                "exploit_scenario": "An attacker can force ETH into the contract (for example via `SELFDESTRUCT`). The contract's ETH balance rises, so `totalSupply()` rises as well, but no holder balance is minted. This can break the invariant that total supply equals the sum of account balances, confuse integrations that rely on supply-based accounting, and leave unsolicited ETH permanently trapped."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
4
EXT*/BALANCE
1
Total opcodes
1262
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x00ae
0000000a: JUMPI
0000000b: PUSH1 0xe0
0000000d: PUSH1 0x02
0000000f: EXP
00000010: PUSH1 0x00
00000012: CALLDATALOAD
00000013: DIV
00000014: PUSH4 0x06fdde03
00000019: DUP2
0000001a: EQ
0000001b: PUSH2 0x00b9
0000001e: JUMPI
0000001f: DUP1
00000020: PUSH4 0x095ea7b3
00000025: EQ
00000026: PUSH2 0x00f3
00000029: JUMPI
0000002a: DUP1
0000002b: PUSH4 0x18160ddd
00000030: EQ
00000031: PUSH2 0x0168
00000034: JUMPI
00000035: DUP1
00000036: PUSH4 0x23b872dd
0000003b: EQ
0000003c: PUSH2 0x0186
0000003f: JUMPI
00000040: DUP1
00000041: PUSH4 0x2e1a7d4d
00000046: EQ
00000047: PUSH2 0x01cb
0000004a: JUMPI
0000004b: DUP1
0000004c: PUSH4 0x313ce567
00000051: EQ
00000052: PUSH2 0x01fd
00000055: JUMPI
00000056: DUP1
00000057: PUSH4 0x3177029f
0000005c: EQ
0000005d: PUSH2 0x0205
00000060: JUMPI
00000061: DUP1
00000062: PUSH4 0x70a08231
00000067: EQ
00000068: PUSH2 0x021a
0000006b: JUMPI
0000006c: DUP1
0000006d: PUSH4 0x95d89b41
00000072: EQ
00000073: PUSH2 0x023f
00000076: JUMPI
00000077: DUP1
00000078: PUSH4 0xa9059cbb
0000007d: EQ
0000007e: PUSH2 0x0279
00000081: JUMPI
00000082: DUP1
00000083: PUSH4 0xbe040fb0
00000088: EQ
00000089: PUSH2 0x02bb
0000008c: JUMPI
0000008d: DUP1
0000008e: PUSH4 0xc2930f91
00000093: EQ
00000094: PUSH2 0x02e0
00000097: JUMPI
00000098: DUP1
00000099: PUSH4 0xd0e30db0
0000009e: EQ
0000009f: PUSH2 0x02ef
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0xdd62ed3e
000000a9: EQ
000000aa: PUSH2 0x0324
000000ad: JUMPI
000000ae: JUMPDEST
000000af: PUSH2 0x0358
000000b2: PUSH2 0x035a
000000b5: PUSH2 0x02f3
000000b8: JUMP
000000b9: JUMPDEST
000000ba: PUSH2 0x035c
000000bd: PUSH1 0x40
000000bf: DUP1
000000c0: MLOAD
000000c1: DUP1
000000c2: DUP3
000000c3: ADD
000000c4: SWAP1
000000c5: SWAP2
000000c6: MSTORE
000000c7: PUSH1 0x11
000000c9: DUP2
000000ca: MSTORE
000000cb: PUSH32 0x457468657220546f6b656e2050726f7879000000000000000000000000000000
000000ec: PUSH1 0x20
000000ee: DUP3
000000ef: ADD
000000f0: MSTORE
000000f1: DUP2
000000f2: JUMP
000000f3: JUMPDEST
000000f4: PUSH2 0x0174
000000f7: PUSH1 0x04
000000f9: CALLDATALOAD
000000fa: PUSH1 0x24
000000fc: CALLDATALOAD
000000fd: JUMPDEST
000000fe: PUSH1 0x01
00000100: PUSH1 0xa0
00000102: PUSH1 0x02
00000104: EXP
00000105: SUB
00000106: CALLER
00000107: DUP2
00000108: AND
00000109: PUSH1 0x00
0000010b: DUP2
0000010c: DUP2
0000010d: MSTORE
0000010e: PUSH1 0x01
00000110: PUSH1 0x20
00000112: SWAP1
00000113: DUP2
00000114: MSTORE
00000115: PUSH1 0x40
00000117: DUP1
00000118: DUP4
00000119: KECCAK256
0000011a: SWAP5
0000011b: DUP8
0000011c: AND
0000011d: DUP1
0000011e: DUP5
0000011f: MSTORE
00000120: SWAP5
00000121: DUP3
00000122: MSTORE
00000123: DUP1
00000124: DUP4
00000125: KECCAK256
00000126: DUP7
00000127: SWAP1
00000128: SSTORE
00000129: DUP1
0000012a: MLOAD
0000012b: DUP7
0000012c: DUP2
0000012d: MSTORE
0000012e: SWAP1
0000012f: MLOAD
00000130: SWAP3
00000131: SWAP5
00000132: SWAP4
00000133: SWAP3
00000134: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00000155: SWAP3
00000156: SWAP2
00000157: DUP2
00000158: SWAP1
00000159: SUB
0000015a: SWAP1
0000015b: SWAP2
0000015c: ADD
0000015d: SWAP1
0000015e: LOG3
0000015f: POP
00000160: PUSH1 0x01
00000162: JUMPDEST
00000163: SWAP3
00000164: SWAP2
00000165: POP
00000166: POP
00000167: JUMP
00000168: JUMPDEST
00000169: ADDRESS
0000016a: PUSH1 0x01
0000016c: PUSH1 0xa0
0000016e: PUSH1 0x02
00000170: EXP
00000171: SUB
00000172: AND
00000173: BALANCE
00000174: JUMPDEST
00000175: PUSH1 0x40
00000177: DUP1
00000178: MLOAD
00000179: SWAP2
0000017a: DUP3
0000017b: MSTORE
0000017c: MLOAD
0000017d: SWAP1
0000017e: DUP2
0000017f: SWAP1
00000180: SUB
00000181: PUSH1 0x20
00000183: ADD
00000184: SWAP1
00000185: RETURN
00000186: JUMPDEST
00000187: PUSH2 0x0174
0000018a: PUSH1 0x04
0000018c: CALLDATALOAD
0000018d: PUSH1 0x24
0000018f: CALLDATALOAD
00000190: PUSH1 0x44
00000192: CALLDATALOAD
00000193: JUMPDEST
00000194: PUSH1 0x01
00000196: PUSH1 0xa0
00000198: PUSH1 0x02
0000019a: EXP
0000019b: SUB
0000019c: DUP4
0000019d: DUP2
0000019e: AND
0000019f: PUSH1 0x00
000001a1: SWAP1
000001a2: DUP2
000001a3: MSTORE
000001a4: PUSH1 0x01
000001a6: PUSH1 0x20
000001a8: SWAP1
000001a9: DUP2
000001aa: MSTORE
000001ab: PUSH1 0x40
000001ad: DUP1
000001ae: DUP4
000001af: KECCAK256
000001b0: CALLER
000001b1: SWAP1
000001b2: SWAP5
000001b3: AND
000001b4: DUP4
000001b5: MSTORE
000001b6: SWAP3
000001b7: SWAP1
000001b8: MSTORE
000001b9: SWAP1
000001ba: DUP2
000001bb: KECCAK256
000001bc: SLOAD
000001bd: PUSH2 0x0593
000001c0: SWAP1
000001c1: DUP4
000001c2: JUMPDEST
000001c3: DUP1
000001c4: DUP3
000001c5: LT
000001c6: ISZERO
000001c7: PUSH2 0x0162
000001ca: JUMP
000001cb: JUMPDEST
000001cc: PUSH2 0x0174
000001cf: PUSH1 0x04
000001d1: CALLDATALOAD
000001d2: JUMPDEST
000001d3: PUSH1 0x40
000001d5: PUSH1 0x00
000001d7: SWAP1
000001d8: DUP2
000001d9: KECCAK256
000001da: PUSH1 0x01
000001dc: PUSH1 0xa0
000001de: PUSH1 0x02
000001e0: EXP
000001e1: SUB
000001e2: CALLER
000001e3: AND
000001e4: DUP3
000001e5: MSTORE
000001e6: PUSH1 0x20
000001e8: DUP3
000001e9: SWAP1
000001ea: MSTORE
000001eb: SLOAD
000001ec: PUSH2 0x0435
000001ef: SWAP1
000001f0: DUP4
000001f1: JUMPDEST
000001f2: PUSH1 0x00
000001f4: PUSH2 0x077d
000001f7: DUP4
000001f8: DUP4
000001f9: PUSH2 0x01c2
000001fc: JUMP
000001fd: JUMPDEST
000001fe: PUSH2 0x03ca
00000201: PUSH1 0x12
00000203: DUP2
00000204: JUMP
00000205: JUMPDEST
00000206: PUSH2 0x0174
00000209: PUSH1 0x04
0000020b: CALLDATALOAD
0000020c: PUSH1 0x24
0000020e: CALLDATALOAD
0000020f: PUSH1 0x00
00000211: PUSH2 0x06f1
00000214: DUP4
00000215: DUP4
00000216: PUSH2 0x00fd
00000219: JUMP
0000021a: JUMPDEST
0000021b: PUSH2 0x0174
0000021e: PUSH1 0x04
00000220: CALLDATALOAD
00000221: PUSH1 0x01
00000223: PUSH1 0xa0
00000225: PUSH1 0x02
00000227: EXP
00000228: SUB
00000229: DUP2
0000022a: AND
0000022b: PUSH1 0x00
0000022d: SWAP1
0000022e: DUP2
0000022f: MSTORE
00000230: PUSH1 0x20
00000232: DUP2
00000233: SWAP1
00000234: MSTORE
00000235: PUSH1 0x40
00000237: SWAP1
00000238: KECCAK256
00000239: SLOAD
0000023a: JUMPDEST
0000023b: SWAP2
0000023c: SWAP1
0000023d: POP
0000023e: JUMP
0000023f: JUMPDEST
00000240: PUSH2 0x035c
00000243: PUSH1 0x40
00000245: DUP1
00000246: MLOAD
00000247: DUP1
00000248: DUP3
00000249: ADD
0000024a: SWAP1
0000024b: SWAP2
0000024c: MSTORE
0000024d: PUSH1 0x03
0000024f: DUP2
00000250: MSTORE
00000251: PUSH32 0x4554480000000000000000000000000000000000000000000000000000000000
00000272: PUSH1 0x20
00000274: DUP3
00000275: ADD
00000276: MSTORE
00000277: DUP2
00000278: JUMP
00000279: JUMPDEST
0000027a: PUSH2 0x0174
0000027d: PUSH1 0x04
0000027f: CALLDATALOAD
00000280: PUSH1 0x24
00000282: CALLDATALOAD
00000283: PUSH1 0x00
00000285: ADDRESS
00000286: PUSH1 0x01
00000288: PUSH1 0xa0
0000028a: PUSH1 0x02
0000028c: EXP
0000028d: SUB
0000028e: AND
0000028f: DUP4
00000290: PUSH1 0x01
00000292: PUSH1 0xa0
00000294: PUSH1 0x02
00000296: EXP
00000297: SUB
00000298: AND
00000299: EQ
0000029a: DUP1
0000029b: PUSH2 0x02ad
0000029e: JUMPI
0000029f: POP
000002a0: DUP3
000002a1: PUSH1 0x01
000002a3: PUSH1 0xa0
000002a5: PUSH1 0x02
000002a7: EXP
000002a8: SUB
000002a9: AND
000002aa: PUSH1 0x00
000002ac: EQ
000002ad: JUMPDEST
000002ae: ISZERO
000002af: PUSH2 0x04dc
000002b2: JUMPI
000002b3: PUSH2 0x04ff
000002b6: DUP3
000002b7: PUSH2 0x01d2
000002ba: JUMP
000002bb: JUMPDEST
000002bc: PUSH2 0x0358
000002bf: PUSH1 0x01
000002c1: PUSH1 0xa0
000002c3: PUSH1 0x02
000002c5: EXP
000002c6: SUB
000002c7: CALLER
000002c8: AND
000002c9: PUSH1 0x00
000002cb: SWAP1
000002cc: DUP2
000002cd: MSTORE
000002ce: PUSH1 0x20
000002d0: DUP2
000002d1: SWAP1
000002d2: MSTORE
000002d3: PUSH1 0x40
000002d5: SWAP1
000002d6: KECCAK256
000002d7: SLOAD
000002d8: PUSH2 0x0432
000002db: SWAP1
000002dc: PUSH2 0x01d2
000002df: JUMP
000002e0: JUMPDEST
000002e1: PUSH2 0x0174
000002e4: PUSH8 0x0de0b6b3a7640000
000002ed: DUP2
000002ee: JUMP
000002ef: JUMPDEST
000002f0: PUSH2 0x0358
000002f3: JUMPDEST
000002f4: PUSH1 0x01
000002f6: PUSH1 0xa0
000002f8: PUSH1 0x02
000002fa: EXP
000002fb: SUB
000002fc: CALLER
000002fd: AND
000002fe: PUSH1 0x00
00000300: SWAP1
00000301: DUP2
00000302: MSTORE
00000303: PUSH1 0x20
00000305: DUP2
00000306: SWAP1
00000307: MSTORE
00000308: PUSH1 0x40
0000030a: SWAP1
0000030b: KECCAK256
0000030c: SLOAD
0000030d: PUSH2 0x03e0
00000310: SWAP1
00000311: CALLVALUE
00000312: JUMPDEST
00000313: PUSH1 0x00
00000315: PUSH2 0x0769
00000318: DUP4
00000319: DUP4
0000031a: DUP2
0000031b: DUP2
0000031c: ADD
0000031d: DUP3
0000031e: SWAP1
0000031f: GT
00000320: PUSH2 0x0162
00000323: JUMP
00000324: JUMPDEST
00000325: PUSH2 0x0174
00000328: PUSH1 0x04
0000032a: CALLDATALOAD
0000032b: PUSH1 0x24
0000032d: CALLDATALOAD
0000032e: PUSH1 0x01
00000330: PUSH1 0xa0
00000332: PUSH1 0x02
00000334: EXP
00000335: SUB
00000336: DUP3
00000337: DUP2
00000338: AND
00000339: PUSH1 0x00
0000033b: SWAP1
0000033c: DUP2
0000033d: MSTORE
0000033e: PUSH1 0x01
00000340: PUSH1 0x20
00000342: SWAP1
00000343: DUP2
00000344: MSTORE
00000345: PUSH1 0x40
00000347: DUP1
00000348: DUP4
00000349: KECCAK256
0000034a: SWAP4
0000034b: DUP6
0000034c: AND
0000034d: DUP4
0000034e: MSTORE
0000034f: SWAP3
00000350: SWAP1
00000351: MSTORE
00000352: KECCAK256
00000353: SLOAD
00000354: PUSH2 0x0162
00000357: JUMP
00000358: JUMPDEST
00000359: STOP
0000035a: JUMPDEST
0000035b: JUMP
0000035c: JUMPDEST
0000035d: PUSH1 0x40
0000035f: MLOAD
00000360: DUP1
00000361: DUP1
00000362: PUSH1 0x20
00000364: ADD
00000365: DUP3
00000366: DUP2
00000367: SUB
00000368: DUP3
00000369: MSTORE
0000036a: DUP4
0000036b: DUP2
0000036c: DUP2
0000036d: MLOAD
0000036e: DUP2
0000036f: MSTORE
00000370: PUSH1 0x20
00000372: ADD
00000373: SWAP2
00000374: POP
00000375: DUP1
00000376: MLOAD
00000377: SWAP1
00000378: PUSH1 0x20
0000037a: ADD
0000037b: SWAP1
0000037c: DUP1
0000037d: DUP4
0000037e: DUP4
0000037f: DUP3
00000380: SWAP1
00000381: PUSH1 0x00
00000383: PUSH1 0x04
00000385: PUSH1 0x20
00000387: DUP5
00000388: PUSH1 0x1f
0000038a: ADD
0000038b: DIV
0000038c: PUSH1 0x0f
0000038e: MUL
0000038f: PUSH1 0x03
00000391: ADD
00000392: CALL
00000393: POP
00000394: SWAP1
00000395: POP
00000396: SWAP1
00000397: DUP2
00000398: ADD
00000399: SWAP1
0000039a: PUSH1 0x1f
0000039c: AND
0000039d: DUP1
0000039e: ISZERO
0000039f: PUSH2 0x03bc
000003a2: JUMPI
000003a3: DUP1
000003a4: DUP3
000003a5: SUB
000003a6: DUP1
000003a7: MLOAD
000003a8: PUSH1 0x01
000003aa: DUP4
000003ab: PUSH1 0x20
000003ad: SUB
000003ae: PUSH2 0x0100
000003b1: EXP
000003b2: SUB
000003b3: NOT
000003b4: AND
000003b5: DUP2
000003b6: MSTORE
000003b7: PUSH1 0x20
000003b9: ADD
000003ba: SWAP2
000003bb: POP
000003bc: JUMPDEST
000003bd: POP
000003be: SWAP3
000003bf: POP
000003c0: POP
000003c1: POP
000003c2: PUSH1 0x40
000003c4: MLOAD
000003c5: DUP1
000003c6: SWAP2
000003c7: SUB
000003c8: SWAP1
000003c9: RETURN
000003ca: JUMPDEST
000003cb: PUSH1 0x40
000003cd: DUP1
000003ce: MLOAD
000003cf: PUSH1 0xff
000003d1: SWAP1
000003d2: SWAP3
000003d3: AND
000003d4: DUP3
000003d5: MSTORE
000003d6: MLOAD
000003d7: SWAP1
000003d8: DUP2
000003d9: SWAP1
000003da: SUB
000003db: PUSH1 0x20
000003dd: ADD
000003de: SWAP1
000003df: RETURN
000003e0: JUMPDEST
000003e1: PUSH1 0x01
000003e3: PUSH1 0xa0
000003e5: PUSH1 0x02
000003e7: EXP
000003e8: SUB
000003e9: CALLER
000003ea: AND
000003eb: PUSH1 0x00
000003ed: DUP2
000003ee: DUP2
000003ef: MSTORE
000003f0: PUSH1 0x20
000003f2: DUP2
000003f3: DUP2
000003f4: MSTORE
000003f5: PUSH1 0x40
000003f7: SWAP2
000003f8: DUP3
000003f9: SWAP1
000003fa: KECCAK256
000003fb: SWAP4
000003fc: SWAP1
000003fd: SWAP4
000003fe: SSTORE
000003ff: DUP1
00000400: MLOAD
00000401: CALLVALUE
00000402: DUP2
00000403: MSTORE
00000404: SWAP1
00000405: MLOAD
00000406: SWAP2
00000407: SWAP3
00000408: PUSH32 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c
00000429: SWAP3
0000042a: SWAP2
0000042b: DUP3
0000042c: SWAP1
0000042d: SUB
0000042e: ADD
0000042f: SWAP1
00000430: LOG2
00000431: JUMP
00000432: JUMPDEST
00000433: POP
00000434: JUMP
00000435: JUMPDEST
00000436: PUSH1 0x01
00000438: PUSH1 0xa0
0000043a: PUSH1 0x02
0000043c: EXP
0000043d: SUB
0000043e: CALLER
0000043f: AND
00000440: PUSH1 0x00
00000442: DUP2
00000443: DUP2
00000444: MSTORE
00000445: PUSH1 0x20
00000447: DUP2
00000448: SWAP1
00000449: MSTORE
0000044a: PUSH1 0x40
0000044c: DUP1
0000044d: DUP3
0000044e: KECCAK256
0000044f: SWAP4
00000450: SWAP1
00000451: SWAP4
00000452: SSTORE
00000453: SWAP2
00000454: MLOAD
00000455: SWAP1
00000456: SWAP2
00000457: SWAP1
00000458: DUP5
00000459: SWAP1
0000045a: DUP3
0000045b: DUP2
0000045c: DUP2
0000045d: DUP2
0000045e: DUP6
0000045f: DUP9
00000460: DUP4
00000461: CALL
00000462: SWAP4
00000463: POP
00000464: POP
00000465: POP
00000466: POP
00000467: ISZERO
00000468: ISZERO
00000469: PUSH2 0x0495
0000046c: JUMPI
0000046d: CALLER
0000046e: PUSH1 0x01
00000470: PUSH1 0xa0
00000472: PUSH1 0x02
00000474: EXP
00000475: SUB
00000476: AND
00000477: GAS
00000478: PUSH1 0x40
0000047a: MLOAD
0000047b: DUP5
0000047c: SWAP1
0000047d: PUSH1 0x00
0000047f: DUP2
00000480: DUP2
00000481: DUP2
00000482: DUP6
00000483: DUP9
00000484: DUP9
00000485: CALL
00000486: SWAP4
00000487: POP
00000488: POP
00000489: POP
0000048a: POP
0000048b: ISZERO
0000048c: ISZERO
0000048d: PUSH2 0x0495
00000490: JUMPI
00000491: PUSH2 0x0002
00000494: JUMP
00000495: JUMPDEST
00000496: PUSH1 0x40
00000498: DUP1
00000499: MLOAD
0000049a: DUP4
0000049b: DUP2
0000049c: MSTORE
0000049d: SWAP1
0000049e: MLOAD
0000049f: PUSH1 0x01
000004a1: PUSH1 0xa0
000004a3: PUSH1 0x02
000004a5: EXP
000004a6: SUB
000004a7: CALLER
000004a8: AND
000004a9: SWAP2
000004aa: PUSH32 0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65
000004cb: SWAP2
000004cc: SWAP1
000004cd: DUP2
000004ce: SWAP1
000004cf: SUB
000004d0: PUSH1 0x20
000004d2: ADD
000004d3: SWAP1
000004d4: LOG2
000004d5: POP
000004d6: PUSH1 0x01
000004d8: PUSH2 0x023a
000004db: JUMP
000004dc: JUMPDEST
000004dd: PUSH1 0x01
000004df: PUSH1 0xa0
000004e1: PUSH1 0x02
000004e3: EXP
000004e4: SUB
000004e5: CALLER
000004e6: AND
000004e7: PUSH1 0x00
000004e9: SWAP1
000004ea: DUP2
000004eb: MSTORE
000004ec: PUSH1 0x20
000004ee: DUP2
000004ef: SWAP1
000004f0: MSTORE
000004f1: PUSH1 0x40
000004f3: SWAP1
000004f4: KECCAK256
000004f5: SLOAD
000004f6: PUSH2 0x0506
000004f9: SWAP1
000004fa: DUP4
000004fb: PUSH2 0x01f1
000004fe: JUMP
000004ff: JUMPDEST
00000500: SWAP1
00000501: POP
00000502: PUSH2 0x0162
00000505: JUMP
00000506: JUMPDEST
00000507: PUSH1 0x01
00000509: PUSH1 0xa0
0000050b: PUSH1 0x02
0000050d: EXP
0000050e: SUB
0000050f: CALLER
00000510: DUP2
00000511: AND
00000512: PUSH1 0x00
00000514: SWAP1
00000515: DUP2
00000516: MSTORE
00000517: PUSH1 0x20
00000519: DUP2
0000051a: SWAP1
0000051b: MSTORE
0000051c: PUSH1 0x40
0000051e: DUP1
0000051f: DUP3
00000520: KECCAK256
00000521: SWAP4
00000522: SWAP1
00000523: SWAP4
00000524: SSTORE
00000525: SWAP1
00000526: DUP6
00000527: AND
00000528: DUP2
00000529: MSTORE
0000052a: KECCAK256
0000052b: SLOAD
0000052c: PUSH2 0x0535
0000052f: SWAP1
00000530: DUP4
00000531: PUSH2 0x0312
00000534: JUMP
00000535: JUMPDEST
00000536: PUSH1 0x01
00000538: PUSH1 0xa0
0000053a: PUSH1 0x02
0000053c: EXP
0000053d: SUB
0000053e: DUP5
0000053f: DUP2
00000540: AND
00000541: PUSH1 0x00
00000543: DUP2
00000544: DUP2
00000545: MSTORE
00000546: PUSH1 0x20
00000548: DUP2
00000549: DUP2
0000054a: MSTORE
0000054b: PUSH1 0x40
0000054d: SWAP2
0000054e: DUP3
0000054f: SWAP1
00000550: KECCAK256
00000551: SWAP5
00000552: SWAP1
00000553: SWAP5
00000554: SSTORE
00000555: DUP1
00000556: MLOAD
00000557: DUP7
00000558: DUP2
00000559: MSTORE
0000055a: SWAP1
0000055b: MLOAD
0000055c: SWAP2
0000055d: SWAP4
0000055e: CALLER
0000055f: SWAP1
00000560: SWAP4
00000561: AND
00000562: SWAP3
00000563: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00000584: SWAP3
00000585: SWAP2
00000586: DUP3
00000587: SWAP1
00000588: SUB
00000589: ADD
0000058a: SWAP1
0000058b: LOG3
0000058c: POP
0000058d: PUSH1 0x01
0000058f: PUSH2 0x0162
00000592: JUMP
00000593: JUMPDEST
00000594: ISZERO
00000595: ISZERO
00000596: PUSH2 0x059e
00000599: JUMPI
0000059a: PUSH2 0x0002
0000059d: JUMP
0000059e: JUMPDEST
0000059f: ADDRESS
000005a0: PUSH1 0x01
000005a2: PUSH1 0xa0
000005a4: PUSH1 0x02
000005a6: EXP
000005a7: SUB
000005a8: AND
000005a9: DUP4
000005aa: PUSH1 0x01
000005ac: PUSH1 0xa0
000005ae: PUSH1 0x02
000005b0: EXP
000005b1: SUB
000005b2: AND
000005b3: EQ
000005b4: DUP1
000005b5: PUSH2 0x05c7
000005b8: JUMPI
000005b9: POP
000005ba: DUP3
000005bb: PUSH1 0x01
000005bd: PUSH1 0xa0
000005bf: PUSH1 0x02
000005c1: EXP
000005c2: SUB
000005c3: AND
000005c4: PUSH1 0x00
000005c6: EQ
000005c7: JUMPDEST
000005c8: ISZERO
000005c9: PUSH2 0x05d7
000005cc: JUMPI
000005cd: PUSH2 0x05fa
000005d0: DUP5
000005d1: CALLER
000005d2: DUP5
000005d3: PUSH2 0x0193
000005d6: JUMP
000005d7: JUMPDEST
000005d8: PUSH1 0x01
000005da: PUSH1 0xa0
000005dc: PUSH1 0x02
000005de: EXP
000005df: SUB
000005e0: DUP5
000005e1: AND
000005e2: PUSH1 0x00
000005e4: SWAP1
000005e5: DUP2
000005e6: MSTORE
000005e7: PUSH1 0x20
000005e9: DUP2
000005ea: SWAP1
000005eb: MSTORE
000005ec: PUSH1 0x40
000005ee: SWAP1
000005ef: KECCAK256
000005f0: SLOAD
000005f1: PUSH2 0x0682
000005f4: SWAP1
000005f5: DUP4
000005f6: PUSH2 0x01f1
000005f9: JUMP
000005fa: JUMPDEST
000005fb: ISZERO
000005fc: ISZERO
000005fd: PUSH2 0x0605
00000600: JUMPI
00000601: PUSH2 0x0002
00000604: JUMP
00000605: JUMPDEST
00000606: PUSH2 0x060e
00000609: DUP3
0000060a: PUSH2 0x01d2
0000060d: JUMP
0000060e: JUMPDEST
0000060f: POP
00000610: PUSH2 0x0678
00000613: JUMP
00000614: JUMPDEST
00000615: PUSH1 0x01
00000617: PUSH1 0xa0
00000619: PUSH1 0x02
0000061b: EXP
0000061c: SUB
0000061d: DUP6
0000061e: DUP2
0000061f: AND
00000620: PUSH1 0x00
00000622: DUP2
00000623: DUP2
00000624: MSTORE
00000625: PUSH1 0x01
00000627: PUSH1 0x20
00000629: SWAP1
0000062a: DUP2
0000062b: MSTORE
0000062c: PUSH1 0x40
0000062e: DUP1
0000062f: DUP4
00000630: KECCAK256
00000631: CALLER
00000632: DUP7
00000633: AND
00000634: DUP5
00000635: MSTORE
00000636: DUP3
00000637: MSTORE
00000638: SWAP2
00000639: DUP3
0000063a: SWAP1
0000063b: KECCAK256
0000063c: SWAP5
0000063d: SWAP1
0000063e: SWAP5
0000063f: SSTORE
00000640: DUP1
00000641: MLOAD
00000642: DUP7
00000643: DUP2
00000644: MSTORE
00000645: SWAP1
00000646: MLOAD
00000647: SWAP3
00000648: DUP8
00000649: AND
0000064a: SWAP4
0000064b: SWAP2
0000064c: SWAP3
0000064d: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
0000066e: SWAP3
0000066f: SWAP2
00000670: DUP2
00000671: SWAP1
00000672: SUB
00000673: SWAP1
00000674: SWAP2
00000675: ADD
00000676: SWAP1
00000677: LOG3
00000678: JUMPDEST
00000679: POP
0000067a: PUSH1 0x01
0000067c: SWAP4
0000067d: SWAP3
0000067e: POP
0000067f: POP
00000680: POP
00000681: JUMP
00000682: JUMPDEST
00000683: PUSH1 0x01
00000685: PUSH1 0xa0
00000687: PUSH1 0x02
00000689: EXP
0000068a: SUB
0000068b: DUP6
0000068c: DUP2
0000068d: AND
0000068e: PUSH1 0x00
00000690: SWAP1
00000691: DUP2
00000692: MSTORE
00000693: PUSH1 0x20
00000695: DUP2
00000696: SWAP1
00000697: MSTORE
00000698: PUSH1 0x40
0000069a: DUP1
0000069b: DUP3
0000069c: KECCAK256
0000069d: SWAP4
0000069e: SWAP1
0000069f: SWAP4
000006a0: SSTORE
000006a1: SWAP1
000006a2: DUP6
000006a3: AND
000006a4: DUP2
000006a5: MSTORE
000006a6: KECCAK256
000006a7: SLOAD
000006a8: PUSH2 0x06b1
000006ab: SWAP1
000006ac: DUP4
000006ad: PUSH2 0x0312
000006b0: JUMP
000006b1: JUMPDEST
000006b2: PUSH1 0x01
000006b4: PUSH1 0xa0
000006b6: PUSH1 0x02
000006b8: EXP
000006b9: SUB
000006ba: DUP5
000006bb: DUP2
000006bc: AND
000006bd: PUSH1 0x00
000006bf: SWAP1
000006c0: DUP2
000006c1: MSTORE
000006c2: PUSH1 0x20
000006c4: DUP2
000006c5: DUP2
000006c6: MSTORE
000006c7: PUSH1 0x40
000006c9: DUP1
000006ca: DUP4
000006cb: KECCAK256
000006cc: SWAP5
000006cd: SWAP1
000006ce: SWAP5
000006cf: SSTORE
000006d0: DUP8
000006d1: DUP4
000006d2: AND
000006d3: DUP3
000006d4: MSTORE
000006d5: PUSH1 0x01
000006d7: DUP2
000006d8: MSTORE
000006d9: DUP4
000006da: DUP3
000006db: KECCAK256
000006dc: CALLER
000006dd: SWAP1
000006de: SWAP4
000006df: AND
000006e0: DUP3
000006e1: MSTORE
000006e2: SWAP2
000006e3: SWAP1
000006e4: SWAP2
000006e5: MSTORE
000006e6: KECCAK256
000006e7: SLOAD
000006e8: PUSH2 0x0614
000006eb: SWAP1
000006ec: DUP4
000006ed: PUSH2 0x01f1
000006f0: JUMP
000006f1: JUMPDEST
000006f2: ISZERO
000006f3: PUSH2 0x0764
000006f6: JUMPI
000006f7: DUP3
000006f8: PUSH1 0x01
000006fa: PUSH1 0xa0
000006fc: PUSH1 0x02
000006fe: EXP
000006ff: SUB
00000700: AND
00000701: PUSH4 0x4889ca88
00000706: CALLER
00000707: DUP5
00000708: ADDRESS
00000709: PUSH1 0x40
0000070b: MLOAD
0000070c: DUP5
0000070d: PUSH1 0xe0
0000070f: PUSH1 0x02
00000711: EXP
00000712: MUL
00000713: DUP2
00000714: MSTORE
00000715: PUSH1 0x04
00000717: ADD
00000718: DUP1
00000719: DUP5
0000071a: PUSH1 0x01
0000071c: PUSH1 0xa0
0000071e: PUSH1 0x02
00000720: EXP
00000721: SUB
00000722: AND
00000723: DUP2
00000724: MSTORE
00000725: PUSH1 0x20
00000727: ADD
00000728: DUP4
00000729: DUP2
0000072a: MSTORE
0000072b: PUSH1 0x20
0000072d: ADD
0000072e: DUP3
0000072f: PUSH1 0x01
00000731: PUSH1 0xa0
00000733: PUSH1 0x02
00000735: EXP
00000736: SUB
00000737: AND
00000738: DUP2
00000739: MSTORE
0000073a: PUSH1 0x20
0000073c: ADD
0000073d: SWAP4
0000073e: POP
0000073f: POP
00000740: POP
00000741: POP
00000742: PUSH1 0x00
00000744: PUSH1 0x40
00000746: MLOAD
00000747: DUP1
00000748: DUP4
00000749: SUB
0000074a: DUP2
0000074b: PUSH1 0x00
0000074d: DUP8
0000074e: PUSH2 0x61da
00000751: GAS
00000752: SUB
00000753: CALL
00000754: ISZERO
00000755: PUSH2 0x0002
00000758: JUMPI
00000759: POP
0000075a: POP
0000075b: POP
0000075c: PUSH1 0x01
0000075e: SWAP1
0000075f: POP
00000760: PUSH2 0x0162
00000763: JUMP
00000764: JUMPDEST
00000765: PUSH2 0x0002
00000768: JUMP
00000769: JUMPDEST
0000076a: ISZERO
0000076b: ISZERO
0000076c: PUSH2 0x0774
0000076f: JUMPI
00000770: PUSH2 0x0002
00000773: JUMP
00000774: JUMPDEST
00000775: POP
00000776: DUP2
00000777: DUP2
00000778: ADD
00000779: PUSH2 0x0162
0000077c: JUMP
0000077d: JUMPDEST
0000077e: ISZERO
0000077f: ISZERO
00000780: PUSH2 0x0788
00000783: JUMPI
00000784: PUSH2 0x0002
00000787: JUMP
00000788: JUMPDEST
00000789: POP
0000078a: DUP1
0000078b: DUP3
0000078c: SUB
0000078d: PUSH2 0x0162
00000790: JUMP
View stderr
Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment.

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 yes yes
view
trace_id: 0x84bccb220bfdaddbac5d69282c6b12bb55609855784ce83310628aa3bcf202e6
call_targets: 0x0000000000000000000000000000000000000004, 0x89d64bc7e46bdc49a89652ae9bb167418cbad62e
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x84bccb220bfdaddbac5d69282c6b12bb55609855784ce83310628aa3bcf202e6",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000004",
        "0x89d64bc7e46bdc49a89652ae9bb167418cbad62e"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23b872dd",
            "selector": "0x23b872dd",
            "calldata_variants": [
                "0x23b872dd",
                "0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2e1a7d4d",
            "selector": "0x2e1a7d4d",
            "calldata_variants": [
                "0x2e1a7d4d",
                "0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x313ce567",
            "selector": "0x313ce567",
            "calldata_variants": [
                "0x313ce567",
                "0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3177029f",
            "selector": "0x3177029f",
            "calldata_variants": [
                "0x3177029f",
                "0x3177029f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 914,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1121,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1157,
            "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 yes yes
view
trace_id: 0x84bccb220bfdaddbac5d69282c6b12bb55609855784ce83310628aa3bcf202e6
call_targets: 0x0000000000000000000000000000000000000004, 0x89d64bc7e46bdc49a89652ae9bb167418cbad62e
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x84bccb220bfdaddbac5d69282c6b12bb55609855784ce83310628aa3bcf202e6",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000004",
        "0x89d64bc7e46bdc49a89652ae9bb167418cbad62e"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23b872dd",
            "selector": "0x23b872dd",
            "calldata_variants": [
                "0x23b872dd",
                "0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2e1a7d4d",
            "selector": "0x2e1a7d4d",
            "calldata_variants": [
                "0x2e1a7d4d",
                "0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x313ce567",
            "selector": "0x313ce567",
            "calldata_variants": [
                "0x313ce567",
                "0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3177029f",
            "selector": "0x3177029f",
            "calldata_variants": [
                "0x3177029f",
                "0x3177029f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 914,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1121,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1157,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": []
}
medium auth codex Allowance overwrite race in `approve` and `approveAndCall` 75 no
view
evidence_json
{
    "evidence": "Selector inference is best-effort, but `0x095ea7b3` matches ERC20 `approve(address,uint256)` and `0x3177029f` matches `approveAndCall(address,uint256)`. Both flow through the allowance-write routine beginning at pc `0xfd`, where the nested allowance mapping is written with `SSTORE` and no visible zero-check or compare-to-current-allowance guard precedes the write. The `approveAndCall` path then performs an external callback at pc `0x753` using selector `0x4889ca88` (`receiveApproval(address,uint256,address)`), so the just-written allowance is immediately usable.",
    "locations": [
        "selector:0x095ea7b3",
        "selector:0x3177029f",
        "pc:0xfd",
        "pc:0x6f7"
    ],
    "recommendation": "Do not support overwrite-style approvals without mitigation. Require setting allowance to zero before a new non-zero value, or add `increaseAllowance` / `decreaseAllowance` style flows and deprecate direct allowance replacement.",
    "exploit_scenario": "A holder changes a spender allowance from `N` to `M` using `approve` or `approveAndCall`. A malicious spender can front-run with `transferFrom(..., N)` before the new approval lands, then still use the fresh `M` allowance afterward, effectively spending more than the holder intended. In the `approveAndCall` path, the newly written allowance is also live before the external callback returns."
}
low math codex `totalSupply()` is tied to raw ETH balance, so forced ETH can desynchronize accounting 65 no
view
evidence_json
{
    "evidence": "`totalSupply()` (`0x18160ddd`) resolves to the routine at pc `0x168`, which executes `ADDRESS ... BALANCE` and returns the contract's ETH balance directly. By contrast, `balanceOf()` (`0x70a08231`) reads from a storage mapping at pc `0x21a`. Because supply is not read from the same storage accounting as balances, unsolicited ETH changes reported supply without changing any user balance.",
    "locations": [
        "selector:0x18160ddd",
        "selector:0x70a08231",
        "pc:0x168",
        "pc:0x21a"
    ],
    "recommendation": "Track minted supply in storage and update it only on explicit deposit/withdraw flows, or provide a controlled reconciliation/sweep mechanism for unsolicited ETH.",
    "exploit_scenario": "An attacker can force ETH into the contract (for example via `SELFDESTRUCT`). The contract's ETH balance rises, so `totalSupply()` rises as well, but no holder balance is minted. This can break the invariant that total supply equals the sum of account balances, confuse integrations that rely on supply-based accounting, and leave unsolicited ETH permanently trapped."
}