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

Analysis Run

019b3836-37bb-71d2-9811-79d9de3d6ebf

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 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
3803 artifact.fetch complete 1 / 3 3 months ago
3804 tool.cast_disasm complete 1 / 3 3 months ago
47008 analysis.bundle complete 1 / 3 1 week ago
47009 capability.graph complete 1 / 3 1 week ago
47010 detector.run complete 1 / 3 1 week ago
47011 validation.fork complete 1 / 3 1 week ago
113276 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
Conservative bytecode-only review found two medium-confidence issues. The contract routes all ERC20-like operations through a mutable external backend stored in slot 0x1, and the same slot also anchors privileged authorization. Separately, every backend CALL decodes a 32-byte return value without returndata-length or code-existence checks, so misconfigured or non-compliant targets can produce false success or bogus reads. No delegatecall/proxy-slot write issue was evidenced in the runtime analyzed.
View stdout
{"no_findings":false,"summary":"Conservative bytecode-only review found two medium-confidence issues. The contract routes all ERC20-like operations through a mutable external backend stored in slot 0x1, and the same slot also anchors privileged authorization. Separately, every backend CALL decodes a 32-byte return value without returndata-length or code-existence checks, so misconfigured or non-compliant targets can produce false success or bogus reads. No delegatecall/proxy-slot write issue was evidenced in the runtime analyzed.","findings":[{"severity":"medium","category":"access_control","title":"Privileged authority is coupled to the live external backend","exploit_scenario":"Best-effort bytecode inference shows slot 0x1 is both the backend called by normal token entrypoints and the authority consulted by privileged paths. If that backend is malicious, upgraded unsafely, or compromised, a routine user call can trigger a callback from the backend into this wrapper; because the backend is also the trusted authority, the callback can pass auth and rewrite the backend/mode or emit arbitrary ERC20 events, permanently redirecting the wrapper or falsifying logs.","recommendation":"Separate authorization from the mutable backend address. Store owner/authority independently from the token backend, and do not let the currently called backend satisfy privileged checks. Adding explicit non-reentrant protection around privileged configuration/event-only functions would further reduce callback risk.","evidence":"Slot 0x1 is loaded as the CALL target for all externally exposed token-style wrappers (`pc:0x5e6`, `pc:0x69d`, `pc:0x774`, `pc:0x854`, `pc:0x952`, `pc:0xa33`, `pc:0xbbf`). The auth routine at `pc:0xa52` also uses slot 0x1: in one mode it accepts `msg.sender == slot1`, and in the other it calls `0xb7009613`, which matches `canCall(address,address,bytes4)`, on slot 0x1 (`pc:0xb16`). Privileged selectors `0x7e1db2a1` and `0x92eefe9b` then write slot 0x1 directly (`pc:0x348`, `pc:0x3ee`).","locations":["pc:0xa52","pc:0xb16","pc:0x348","pc:0x3ee","pc:0x5e6","pc:0x69d","pc:0x774","pc:0x854","pc:0x952","pc:0xa33","pc:0xbbf","selector:0x7e1db2a1","selector:0x92eefe9b"]},{"severity":"medium","category":"other","title":"Backend CALL return data is decoded without length or interface validation","exploit_scenario":"If slot 0x1 is set to an EOA, to this contract itself, or to a contract that returns short or empty data, the low-level CALL can still succeed. The wrapper then reads 32 bytes from memory and returns that as a bool/uint/address result. Because the code reuses the same memory region for call input and output, stale calldata words can be reported as successful `transfer`/`approve` results or as bogus balances/allowances/total supply.","recommendation":"Validate slot 0x1 before storing it: reject zero/EOA/self targets and require expected code/interface support. After each external CALL, check returndata length before decoding, and revert on empty or malformed responses instead of blindly `MLOAD`ing the output buffer.","evidence":"Every external backend invocation requests a fixed 32-byte output and immediately loads it from memory after CALL success, with no visible `RETURNDATASIZE` check and no code-existence check before the call (`pc:0x5ef`-`pc:0x5f3`, `pc:0x6a6`-`pc:0x6aa`, `pc:0x77d`-`pc:0x781`, `pc:0x85d`-`pc:0x861`, `pc:0x95b`-`pc:0x95f`, `pc:0xa3c`-`pc:0xa40`, `pc:0xbc8`-`pc:0xbcc`). The config setters inferred from selectors `0x7e1db2a1` and `0x92eefe9b` store arbitrary addresses into slot 0x1 without any visible contract/interface validation (`pc:0x348`, `pc:0x3ee`).","locations":["pc:0x5ef","pc:0x6a6","pc:0x77d","pc:0x85d","pc:0x95b","pc:0xa3c","pc:0xbc8","pc:0x348","pc:0x3ee","selector:0x7e1db2a1","selector:0x92eefe9b"]}]}
View stderr
OpenAI Codex v0.118.0 (research preview)
--------
workdir: /tmp/codex-g936cym_
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5bfb-8d2b-70e1-b111-a1ee02a965df
--------
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.
  → Inspect BYTECODE_BUNDLE.json and related artifacts to understand bytecode, selectors, storage, and detector outputs
  • Assess likely security issues from runtime bytecode evidence with conservative severity and explicit uncertainty
  • Produce JSON audit findings matching the required schema
exec
/bin/bash -lc pwd in /tmp/codex-g936cym_
 succeeded in 0ms:
/tmp/codex-g936cym_

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

exec
/bin/bash -lc "sed -n '1,260p' BYTECODE_BUNDLE.json" in /tmp/codex-g936cym_
 succeeded in 0ms:
{
  "analysis_artifact": {
    "address": "0xc66ea802717bfb9833400264dd12c2bceaa34a6d",
    "artifact_hash": "0x1606f3bd5d9fb1df3c0350d2f21564228145d29a02f1c33270bedce5c6271f71",
    "artifact_json": {
      "auth": {
        "guards": [
          {
            "pc": 2726,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
          }
        ]
      },
      "basic_blocks": [
        {
          "end_pc": 10,
          "hash": "0x8707fb847587a17eebc1e102cecb330d4092cae78bfef09d441df6ca228003e1",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "CALLDATASIZE",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 0
        },
        {
          "end_pc": 56,
          "hash": "0xdffb8e1cdf9d0372d5d5c35443b07aa5e27508ea1dacd8444f4fd82f3e5e125e",
          "opcodes": [
            "PUSH1",
            "CALLDATALOAD",
            "PUSH29",
            "OP_90",
            "DIV",
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 11
        },
        {
          "end_pc": 67,
          "hash": "0x0e68c62685aac72c23ba5517273d1558f0787046915f4525f1a110d90ce060c1",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 57
        },
        {
          "end_pc": 78,
          "hash": "0xf09d4ccf8e7fb96af15a36cf3a3757886b7fc54ddcde19375016f2133612012d",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 68
        },
        {
          "end_pc": 89,
          "hash": "0x6816d17a68537e88f33ab578f54cee7c8376d6578db5134834956b2208362631",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 79
        },
        {
          "end_pc": 100,
          "hash": "0x2654216f680d49c9c612dfe8c6899e29b13269d7459944acbace80a933a50178",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 90
        },
        {
          "end_pc": 111,
          "hash": "0xc03c1bdf747646d594eadb71b6af9efc44c6a82a6ea9a1173759d75cf163a18a",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 101
        },
        {
          "end_pc": 122,
          "hash": "0x77bc7690c8f0f0cc319bfb4eb0f7d3b36b89c0ad3e45216c3758be0464fa2dcc",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 112
        },
        {
          "end_pc": 133,
          "hash": "0x47902d2c10d333306f354eef555c1b262b0d362d2e596c5eeaf00debbd402186",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 123
        },
        {
          "end_pc": 144,
          "hash": "0x5ecdecf104e06d8fd1359a4582a4966381617017540215dc8016752aa2553896",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 134
        },
        {
          "end_pc": 155,
          "hash": "0x26d93a1a331ca04fb0c1a615d822adb74de398e58d364e5ba09ce62c403ff079",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 145
        },
        {
          "end_pc": 166,
          "hash": "0x4606fbcc46b74b67f43562e9b03e4ea842e25e1864bf9e11b4368f620548bf6c",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 156
        },
        {
          "end_pc": 177,
          "hash": "0x29003cc5ab99fb2b20fd7ca32d4fd0aa33aec1c8b7d91b99b187bd7ef71857f5",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 167
        },
        {
          "end_pc": 188,
          "hash": "0xa5ed245cdd12d4951db21763e84048ba81bdbeff0560eef9840c3f0b216ba4da",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 178
        },
        {
          "end_pc": 192,
          "hash": "0xdfa62202f3e379ed7aee45db829106e6ef33418b69b966f521abe6d2099502f0",
          "opcodes": [
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 189
        },
        {
          "end_pc": 194,
          "hash": "0xb63e7795bdf2ea7d0402180fb5cdcbb8ba0d843e01b80a93e71c5720008cf5ad",
          "opcodes": [
            "JUMPDEST",
            "STOP"
          ],
          "start_pc": 193
        },
        {
          "end_pc": 225,
          "hash": "0x74087f337e5ec5816be824498abb6e6647c6af2353ebf29c15192cc2c9bb0845",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH1",
            "OP_80",
            "OP_80",
            "CALLDATALOAD",
            "OP_90",
            "PUSH1",
            "ADD",
            "OP_90",
            "OP_91",
            "OP_90",
            "OP_80",
            "CALLDATALOAD",
            "OP_90",
            "PUSH1",
            "ADD",
            "OP_90",
            "OP_91",
            "OP_90",
            "POP",
            "POP",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 195
        },
        {
          "end_pc": 247,
          "hash": "0x770090c3c9c3e392db02643b4fca573a16bb9b5ec031dedaf856473c272c6720",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_82",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_91",
            "POP",
            "POP",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_91",
            "SUB",

exec
/bin/bash -lc "sed -n '1,220p' codex-output-schema.json" in /tmp/codex-g936cym_
 succeeded in 0ms:
{"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
exec
/bin/bash -lc "jq 'keys, .analysis_artifact.artifact_json | keys' BYTECODE_BUNDLE.json" in /tmp/codex-g936cym_
 succeeded in 0ms:
[
  0,
  1,
  2,
  3,
  4,
  5
]
[
  "auth",
  "basic_blocks",
  "callsites",
  "cfg_edges",
  "cfg_hash",
  "dispatcher_type",
  "function_entries",
  "functions",
  "selectors",
  "sinks",
  "storage",
  "version"
]

exec
/bin/bash -lc "jq '.[0]' BYTECODE_BUNDLE.json" in /tmp/codex-g936cym_
 exited 5 in 0ms:
jq: error (at BYTECODE_BUNDLE.json:5396): Cannot index object with number

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.selectors, .analysis_artifact.artifact_json.function_entries, .analysis_artifact.artifact_json.callsites, .analysis_artifact.artifact_json.sinks, .analysis_artifact.artifact_json.storage, .analysis_artifact.artifact_json.functions, .analysis_artifact.artifact_json.auth' BYTECODE_BUNDLE.json" in /tmp/codex-g936cym_
 succeeded in 0ms:
[
  "0x095ea7b3",
  "0x18160ddd",
  "0x23b872dd",
  "0x23de6651",
  "0x3018205f",
  "0x5687f2b8",
  "0x70a08231",
  "0x7e1db2a1",
  "0x92eefe9b",
  "0xa9059cbb",
  "0xc2205ee1",
  "0xd551f601",
  "0xdd62ed3e"
]
[
  {
    "entry_pc": 404098525,
    "selector": "0x095ea7b3"
  },
  {
    "entry_pc": 599290589,
    "selector": "0x18160ddd"
  },
  {
    "entry_pc": 601777745,
    "selector": "0x23b872dd"
  },
  {
    "entry_pc": 806887519,
    "selector": "0x23de6651"
  },
  {
    "entry_pc": 1451750072,
    "selector": "0x3018205f"
  },
  {
    "entry_pc": 1889567281,
    "selector": "0x5687f2b8"
  },
  {
    "entry_pc": 2115875489,
    "selector": "0x70a08231"
  },
  {
    "entry_pc": 2465136283,
    "selector": "0x7e1db2a1"
  },
  {
    "entry_pc": 2835717307,
    "selector": "0x92eefe9b"
  },
  {
    "entry_pc": 3256901345,
    "selector": "0xa9059cbb"
  },
  {
    "entry_pc": 3578918401,
    "selector": "0xc2205ee1"
  },
  {
    "entry_pc": 3714247998,
    "selector": "0xd551f601"
  },
  {
    "entry_pc": null,
    "selector": "0xdd62ed3e"
  }
]
[
  {
    "opcode": "CALL",
    "pc": 1510,
    "returndata_checked": null,
    "target_expression_category": "computed",
    "value_expression_category": "computed"
  },
  {
    "opcode": "CALL",
    "pc": 1693,
    "returndata_checked": null,
    "target_expression_category": "computed",
    "value_expression_category": "computed"
  },
  {
    "opcode": "CALL",
    "pc": 1908,
    "returndata_checked": null,
    "target_expression_category": "computed",
    "value_expression_category": "computed"
  },
  {
    "opcode": "CALL",
    "pc": 2132,
    "returndata_checked": null,
    "target_expression_category": "computed",
    "value_expression_category": "computed"
  },
  {
    "opcode": "CALL",
    "pc": 2386,
    "returndata_checked": null,
    "target_expression_category": "computed",
    "value_expression_category": "computed"
  },
  {
    "opcode": "CALL",
    "pc": 2611,
    "returndata_checked": null,
    "target_expression_category": "computed",
    "value_expression_category": "computed"
  },
  {
    "opcode": "CALL",
    "pc": 3007,
    "returndata_checked": null,
    "target_expression_category": "computed",
    "value_expression_category": "computed"
  }
]
{
  "call": 7,
  "create": 0,
  "create2": 0,
  "delegatecall": 0,
  "selfdestruct": 0,
  "staticcall": 0,
  "upgrade_slot_write_suspected": false
}
{
  "keccak_count": 0,
  "reads": 16,
  "slots": [
    {
      "op": "SLOAD",
      "pc": 1027,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SLOAD",
      "pc": 1046,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
    },
    {
      "op": "SLOAD",
      "pc": 1086,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SLOAD",
      "pc": 1393,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SLOAD",
      "pc": 1546,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SLOAD",
      "pc": 1731,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SLOAD",
      "pc": 1947,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SLOAD",
      "pc": 2171,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SLOAD",
      "pc": 2426,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SLOAD",
      "pc": 2652,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SLOAD",
      "pc": 2674,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
    },
    {
      "op": "SLOAD",
      "pc": 2764,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SLOAD",
      "pc": 2786,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
    }
  ],
  "writes": 3
}
[
  {
    "auth": {
      "guards": [
        {
          "pc": 2726,
          "type": "msg_sender_eq_const",
          "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
      ]
    },
    "entry_pc": 404098525,
    "selector": "0x095ea7b3",
    "sinks": {
      "call": 7,
      "delegatecall": 0,
      "selfdestruct": 0,
      "staticcall": 0
    },
    "storage": {
      "reads": 16,
      "slots": [
        {
          "op": "SLOAD",
          "pc": 1027,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1046,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 1086,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1393,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1546,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1731,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1947,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2171,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2426,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2652,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2674,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 2764,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2786,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        }
      ],
      "writes": 3
    }
  },
  {
    "auth": {
      "guards": [
        {
          "pc": 2726,
          "type": "msg_sender_eq_const",
          "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
      ]
    },
    "entry_pc": 599290589,
    "selector": "0x18160ddd",
    "sinks": {
      "call": 7,
      "delegatecall": 0,
      "selfdestruct": 0,
      "staticcall": 0
    },
    "storage": {
      "reads": 16,
      "slots": [
        {
          "op": "SLOAD",
          "pc": 1027,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1046,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 1086,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1393,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1546,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1731,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1947,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2171,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2426,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2652,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2674,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 2764,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2786,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        }
      ],
      "writes": 3
    }
  },
  {
    "auth": {
      "guards": [
        {
          "pc": 2726,
          "type": "msg_sender_eq_const",
          "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
      ]
    },
    "entry_pc": 601777745,
    "selector": "0x23b872dd",
    "sinks": {
      "call": 7,
      "delegatecall": 0,
      "selfdestruct": 0,
      "staticcall": 0
    },
    "storage": {
      "reads": 16,
      "slots": [
        {
          "op": "SLOAD",
          "pc": 1027,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1046,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 1086,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1393,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1546,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1731,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1947,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2171,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2426,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2652,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2674,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 2764,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2786,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        }
      ],
      "writes": 3
    }
  },
  {
    "auth": {
      "guards": [
        {
          "pc": 2726,
          "type": "msg_sender_eq_const",
          "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
      ]
    },
    "entry_pc": 806887519,
    "selector": "0x23de6651",
    "sinks": {
      "call": 7,
      "delegatecall": 0,
      "selfdestruct": 0,
      "staticcall": 0
    },
    "storage": {
      "reads": 16,
      "slots": [
        {
          "op": "SLOAD",
          "pc": 1027,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1046,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 1086,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1393,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1546,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1731,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1947,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2171,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2426,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2652,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2674,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 2764,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2786,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        }
      ],
      "writes": 3
    }
  },
  {
    "auth": {
      "guards": [
        {
          "pc": 2726,
          "type": "msg_sender_eq_const",
          "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
      ]
    },
    "entry_pc": 1451750072,
    "selector": "0x3018205f",
    "sinks": {
      "call": 7,
      "delegatecall": 0,
      "selfdestruct": 0,
      "staticcall": 0
    },
    "storage": {
      "reads": 16,
      "slots": [
        {
          "op": "SLOAD",
          "pc": 1027,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1046,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 1086,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1393,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1546,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1731,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1947,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2171,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2426,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2652,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2674,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 2764,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2786,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        }
      ],
      "writes": 3
    }
  },
  {
    "auth": {
      "guards": [
        {
          "pc": 2726,
          "type": "msg_sender_eq_const",
          "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
      ]
    },
    "entry_pc": 1889567281,
    "selector": "0x5687f2b8",
    "sinks": {
      "call": 7,
      "delegatecall": 0,
      "selfdestruct": 0,
      "staticcall": 0
    },
    "storage": {
      "reads": 16,
      "slots": [
        {
          "op": "SLOAD",
          "pc": 1027,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1046,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 1086,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1393,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1546,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1731,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1947,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2171,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2426,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2652,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2674,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 2764,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2786,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        }
      ],
      "writes": 3
    }
  },
  {
    "auth": {
      "guards": [
        {
          "pc": 2726,
          "type": "msg_sender_eq_const",
          "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
      ]
    },
    "entry_pc": 2115875489,
    "selector": "0x70a08231",
    "sinks": {
      "call": 7,
      "delegatecall": 0,
      "selfdestruct": 0,
      "staticcall": 0
    },
    "storage": {
      "reads": 16,
      "slots": [
        {
          "op": "SLOAD",
          "pc": 1027,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1046,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 1086,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1393,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1546,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1731,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1947,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2171,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2426,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2652,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2674,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 2764,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2786,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        }
      ],
      "writes": 3
    }
  },
  {
    "auth": {
      "guards": [
        {
          "pc": 2726,
          "type": "msg_sender_eq_const",
          "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
      ]
    },
    "entry_pc": 2465136283,
    "selector": "0x7e1db2a1",
    "sinks": {
      "call": 7,
      "delegatecall": 0,
      "selfdestruct": 0,
      "staticcall": 0
    },
    "storage": {
      "reads": 16,
      "slots": [
        {
          "op": "SLOAD",
          "pc": 1027,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1046,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 1086,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1393,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1546,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1731,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1947,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2171,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2426,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2652,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2674,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 2764,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2786,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        }
      ],
      "writes": 3
    }
  },
  {
    "auth": {
      "guards": [
        {
          "pc": 2726,
          "type": "msg_sender_eq_const",
          "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
      ]
    },
    "entry_pc": 2835717307,
    "selector": "0x92eefe9b",
    "sinks": {
      "call": 7,
      "delegatecall": 0,
      "selfdestruct": 0,
      "staticcall": 0
    },
    "storage": {
      "reads": 16,
      "slots": [
        {
          "op": "SLOAD",
          "pc": 1027,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1046,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 1086,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1393,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1546,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1731,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1947,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2171,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2426,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2652,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2674,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 2764,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2786,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        }
      ],
      "writes": 3
    }
  },
  {
    "auth": {
      "guards": [
        {
          "pc": 2726,
          "type": "msg_sender_eq_const",
          "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
      ]
    },
    "entry_pc": 3256901345,
    "selector": "0xa9059cbb",
    "sinks": {
      "call": 7,
      "delegatecall": 0,
      "selfdestruct": 0,
      "staticcall": 0
    },
    "storage": {
      "reads": 16,
      "slots": [
        {
          "op": "SLOAD",
          "pc": 1027,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1046,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 1086,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1393,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1546,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1731,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1947,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2171,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2426,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2652,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2674,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 2764,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2786,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        }
      ],
      "writes": 3
    }
  },
  {
    "auth": {
      "guards": [
        {
          "pc": 2726,
          "type": "msg_sender_eq_const",
          "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
      ]
    },
    "entry_pc": 3578918401,
    "selector": "0xc2205ee1",
    "sinks": {
      "call": 7,
      "delegatecall": 0,
      "selfdestruct": 0,
      "staticcall": 0
    },
    "storage": {
      "reads": 16,
      "slots": [
        {
          "op": "SLOAD",
          "pc": 1027,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1046,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 1086,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1393,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1546,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1731,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1947,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2171,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2426,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2652,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2674,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 2764,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2786,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        }
      ],
      "writes": 3
    }
  },
  {
    "auth": {
      "guards": [
        {
          "pc": 2726,
          "type": "msg_sender_eq_const",
          "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
      ]
    },
    "entry_pc": 3714247998,
    "selector": "0xd551f601",
    "sinks": {
      "call": 7,
      "delegatecall": 0,
      "selfdestruct": 0,
      "staticcall": 0
    },
    "storage": {
      "reads": 16,
      "slots": [
        {
          "op": "SLOAD",
          "pc": 1027,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1046,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 1086,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1393,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1546,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1731,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1947,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2171,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2426,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2652,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2674,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 2764,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2786,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        }
      ],
      "writes": 3
    }
  },
  {
    "auth": {
      "guards": [
        {
          "pc": 2726,
          "type": "msg_sender_eq_const",
          "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
      ]
    },
    "entry_pc": null,
    "selector": "0xdd62ed3e",
    "sinks": {
      "call": 7,
      "delegatecall": 0,
      "selfdestruct": 0,
      "staticcall": 0
    },
    "storage": {
      "reads": 16,
      "slots": [
        {
          "op": "SLOAD",
          "pc": 1027,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1046,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 1086,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1393,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1546,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1731,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 1947,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2171,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2426,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2652,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2674,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        },
        {
          "op": "SLOAD",
          "pc": 2764,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
        },
        {
          "op": "SLOAD",
          "pc": 2786,
          "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
        }
      ],
      "writes": 3
    }
  }
]
{
  "guards": [
    {
      "pc": 2726,
      "type": "msg_sender_eq_const",
      "value": "0xffffffffffffffffffffffffffffffffffffffff"
    }
  ]
}

exec
/bin/bash -lc "jq 'keys' BYTECODE_BUNDLE.json" in /tmp/codex-g936cym_
 succeeded in 0ms:
[
  "analysis_artifact",
  "analysis_run",
  "artifact",
  "capability_graph",
  "detector_findings",
  "heuristics_summary"
]

exec
/bin/bash -lc "jq '.artifact | {runtime_bytecode_len: (.runtime_bytecode|length), creation_bytecode_len: (.creation_bytecode|length), chain_id, deployed_block, source_map_present, abi_present, metadata_keys: (keys - [\"runtime_bytecode\",\"creation_bytecode\"]) }' BYTECODE_BUNDLE.json" in /tmp/codex-g936cym_
 succeeded in 0ms:
{
  "runtime_bytecode_len": 5,
  "creation_bytecode_len": 0,
  "chain_id": null,
  "deployed_block": null,
  "source_map_present": null,
  "abi_present": null,
  "metadata_keys": [
    "codehash",
    "compiler_json",
    "implementation_address",
    "is_proxy",
    "verified_source"
  ]
}

exec
/bin/bash -lc "jq '.detector_findings' BYTECODE_BUNDLE.json" in /tmp/codex-g936cym_
 succeeded in 0ms:
[
  {
    "confidence": 45,
    "evidence_json": {
      "call_count": 7,
      "examples": [
        {
          "opcode": "CALL",
          "pc": 1510,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 1693,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 1908,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        }
      ],
      "guards_detected": [
        {
          "pc": 2726,
          "type": "msg_sender_eq_const",
          "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
      ],
      "untrusted_call_count": 7
    },
    "normalized_json": {
      "sink": "CALL"
    },
    "severity": "medium",
    "title": "Untrusted CALL target/value reachable",
    "validated": true,
    "validation_json": {
      "attempts": 1,
      "call_targets": [
        "0x77a79a78c56504c6c1f7499852b6e1918a6d0ab4",
        "0x96477a1c968a0e64e53b7ed01d0d6e4a311945c2",
        "0xbaf42749e027bb38ce4f23ddae8c84da8a15488f",
        "0xc66ea802717bfb9833400264dd12c2bceaa34a6d"
      ],
      "classification": "target_varies",
      "confirmed": true,
      "errors": 0,
      "matched_probe": null,
      "sink": "CALL",
      "status": "confirmed",
      "target_varies": true,
      "trace_id": "0x4c6039fa534935c141f27cf080fee53f2bab6812c93dca9c53f00438c305071d",
      "trace_mode": "callTracer"
    }
  },
  {
    "confidence": 40,
    "evidence_json": {
      "eth_value_calls": 7,
      "examples": [
        {
          "opcode": "CALL",
          "pc": 1510,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 1693,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 1908,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        }
      ],
      "guards_detected": [
        {
          "pc": 2726,
          "type": "msg_sender_eq_const",
          "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
      ]
    },
    "normalized_json": {
      "sink": "CALL",
      "value": "nonzero"
    },
    "severity": "medium",
    "title": "ETH value transfer possible",
    "validated": true,
    "validation_json": {
      "attempts": 1,
      "call_targets": [
        "0x77a79a78c56504c6c1f7499852b6e1918a6d0ab4",
        "0x96477a1c968a0e64e53b7ed01d0d6e4a311945c2",
        "0xbaf42749e027bb38ce4f23ddae8c84da8a15488f",
        "0xc66ea802717bfb9833400264dd12c2bceaa34a6d"
      ],
      "classification": "target_varies",
      "confirmed": true,
      "errors": 0,
      "matched_probe": null,
      "sink": "CALL",
      "status": "confirmed",
      "target_varies": true,
      "trace_id": "0x4c6039fa534935c141f27cf080fee53f2bab6812c93dca9c53f00438c305071d",
      "trace_mode": "callTracer"
    }
  }
]

exec
/bin/bash -lc "jq '.heuristics_summary, .capability_graph' BYTECODE_BUNDLE.json" in /tmp/codex-g936cym_
 succeeded in 0ms:
{
  "create2_count": 0,
  "delegatecall_count": 0,
  "flags": [],
  "selfdestruct_count": 0
}
{
  "address": "0xc66ea802717bfb9833400264dd12c2bceaa34a6d",
  "block_number": null,
  "chain_id": 1,
  "codehash": "0x4ef03bb8b5844e789b18f8e73e6698e7b14de90b9f9b347200666c30e3f5e0c9",
  "created_at": "2026-04-04T19:56:48.000000Z",
  "graph_hash": "0xb125423ea1ec0fa9df424fe8d60cfa17ced5dec9f800cd3a57dbae01e74fc943",
  "graph_json": {
    "edges": [
      {
        "from": "bb:0",
        "to": "bb:193",
        "type": "control_flow"
      },
      {
        "from": "bb:0",
        "to": "bb:11",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:11",
        "to": "bb:195",
        "type": "control_flow"
      },
      {
        "from": "bb:11",
        "to": "bb:57",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:57",
        "to": "bb:248",
        "type": "control_flow"
      },
      {
        "from": "bb:57",
        "to": "bb:68",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:68",
        "to": "bb:283",
        "type": "control_flow"
      },
      {
        "from": "bb:68",
        "to": "bb:79",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:79",
        "to": "bb:345",
        "type": "control_flow"
      },
      {
        "from": "bb:79",
        "to": "bb:90",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:90",
        "to": "bb:387",
        "type": "control_flow"
      },
      {
        "from": "bb:90",
        "to": "bb:101",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:101",
        "to": "bb:444",
        "type": "control_flow"
      },
      {
        "from": "bb:101",
        "to": "bb:112",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:112",
        "to": "bb:486",
        "type": "control_flow"
      },
      {
        "from": "bb:112",
        "to": "bb:123",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:123",
        "to": "bb:530",
        "type": "control_flow"
      },
      {
        "from": "bb:123",
        "to": "bb:134",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:134",
        "to": "bb:563",
        "type": "control_flow"
      },
      {
        "from": "bb:134",
        "to": "bb:145",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:145",
        "to": "bb:587",
        "type": "control_flow"
      },
      {
        "from": "bb:145",
        "to": "bb:156",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:156",
        "to": "bb:640",
        "type": "control_flow"
      },
      {
        "from": "bb:156",
        "to": "bb:167",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:167",
        "to": "bb:697",
        "type": "control_flow"
      },
      {
        "from": "bb:167",
        "to": "bb:178",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:178",
        "to": "bb:732",
        "type": "control_flow"
      },
      {
        "from": "bb:178",
        "to": "bb:189",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:189",
        "to": "bb:193",
        "type": "control_flow"
      },
      {
        "from": "bb:195",
        "to": "bb:2418",
        "type": "control_flow"
      },
      {
        "from": "bb:248",
        "to": "bb:1385",
        "type": "control_flow"
      },
      {
        "from": "bb:283",
        "to": "bb:2163",
        "type": "control_flow"
      },
      {
        "from": "bb:345",
        "to": "bb:1125",
        "type": "control_flow"
      },
      {
        "from": "bb:387",
        "to": "bb:1078",
        "type": "control_flow"
      },
      {
        "from": "bb:444",
        "to": "bb:1255",
        "type": "control_flow"
      },
      {
        "from": "bb:486",
        "to": "bb:1538",
        "type": "control_flow"
      },
      {
        "from": "bb:530",
        "to": "bb:785",
        "type": "control_flow"
      },
      {
        "from": "bb:563",
        "to": "bb:951",
        "type": "control_flow"
      },
      {
        "from": "bb:587",
        "to": "bb:1939",
        "type": "control_flow"
      },
      {
        "from": "bb:640",
        "to": "bb:1040",
        "type": "control_flow"
      },
      {
        "from": "bb:697",
        "to": "bb:1021",
        "type": "control_flow"
      },
      {
        "from": "bb:732",
        "to": "bb:1723",
        "type": "control_flow"
      },
      {
        "from": "bb:785",
        "to": "bb:2642",
        "type": "control_flow"
      },
      {
        "from": "bb:793",
        "to": "bb:941",
        "type": "control_flow"
      },
      {
        "from": "bb:793",
        "to": "bb:799",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:799",
        "to": "bb:946",
        "type": "control_flow"
      },
      {
        "from": "bb:946",
        "to": "bb:947",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:951",
        "to": "bb:2642",
        "type": "control_flow"
      },
      {
        "from": "bb:959",
        "to": "bb:1012",
        "type": "control_flow"
      },
      {
        "from": "bb:959",
        "to": "bb:965",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:965",
        "to": "bb:1017",
        "type": "control_flow"
      },
      {
        "from": "bb:1017",
        "to": "bb:1018",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1078",
        "to": "bb:1122",
        "type": "control_flow"
      },
      {
        "from": "bb:1125",
        "to": "bb:2642",
        "type": "control_flow"
      },
      {
        "from": "bb:1133",
        "to": "bb:1244",
        "type": "control_flow"
      },
      {
        "from": "bb:1133",
        "to": "bb:1139",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1139",
        "to": "bb:1249",
        "type": "control_flow"
      },
      {
        "from": "bb:1249",
        "to": "bb:1250",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1255",
        "to": "bb:2642",
        "type": "control_flow"
      },
      {
        "from": "bb:1263",
        "to": "bb:1374",
        "type": "control_flow"
      },
      {
        "from": "bb:1263",
        "to": "bb:1269",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1269",
        "to": "bb:1379",
        "type": "control_flow"
      },
      {
        "from": "bb:1379",
        "to": "bb:1380",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1385",
        "to": "bb:1516",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1516",
        "to": "bb:1535",
        "type": "control_flow"
      },
      {
        "from": "bb:1538",
        "to": "bb:1699",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1699",
        "to": "bb:1718",
        "type": "control_flow"
      },
      {
        "from": "bb:1723",
        "to": "bb:1914",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1914",
        "to": "bb:1933",
        "type": "control_flow"
      },
      {
        "from": "bb:1939",
        "to": "bb:2138",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2138",
        "to": "bb:2157",
        "type": "control_flow"
      },
      {
        "from": "bb:2163",
        "to": "bb:2392",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2392",
        "to": "bb:2411",
        "type": "control_flow"
      },
      {
        "from": "bb:2418",
        "to": "bb:2617",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2617",
        "to": "bb:2636",
        "type": "control_flow"
      },
      {
        "from": "bb:2642",
        "to": "bb:2756",
        "type": "control_flow"
      },
      {
        "from": "bb:2642",
        "to": "bb:2669",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2669",
        "to": "bb:3037",
        "type": "control_flow"
      },
      {
        "from": "bb:2756",
        "to": "bb:3032",
        "type": "control_flow"
      },
      {
        "from": "bb:2756",
        "to": "bb:2781",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2781",
        "to": "bb:3013",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:3013",
        "to": "bb:3037",
        "type": "control_flow"
      },
      {
        "from": "fn:0x095ea7b3",
        "to": "bb:404098525",
        "type": "entry"
      },
      {
        "from": "fn:0x18160ddd",
        "to": "bb:599290589",
        "type": "entry"
      },
      {
        "from": "fn:0x23b872dd",
        "to": "bb:601777745",
        "type": "entry"
      },
      {
        "from": "fn:0x23de6651",
        "to": "bb:806887519",
        "type": "entry"
      },
      {
        "from": "fn:0x3018205f",
        "to": "bb:1451750072",
        "type": "entry"
      },
      {
        "from": "fn:0x5687f2b8",
        "to": "bb:1889567281",
        "type": "entry"
      },
      {
        "from": "fn:0x70a08231",
        "to": "bb:2115875489",
        "type": "entry"
      },
      {
        "from": "fn:0x7e1db2a1",
        "to": "bb:2465136283",
        "type": "entry"
      },
      {
        "from": "fn:0x92eefe9b",
        "to": "bb:2835717307",
        "type": "entry"
      },
      {
        "from": "fn:0xa9059cbb",
        "to": "bb:3256901345",
        "type": "entry"
      },
      {
        "from": "fn:0xc2205ee1",
        "to": "bb:3578918401",
        "type": "entry"
      },
      {
        "from": "fn:0xd551f601",
        "to": "bb:3714247998",
        "type": "entry"
      },
      {
        "from": "bb:1385",
        "to": "call:1510",
        "type": "contains"
      },
      {
        "from": "call:1510",
        "to": "sink:call",
        "type": "capability"
      },
      {
        "from": "bb:1538",
        "to": "call:1693",
        "type": "contains"
      },
      {
        "from": "call:1693",
        "to": "sink:call",
        "type": "capability"
      },
      {
        "from": "bb:1723",
        "to": "call:1908",
        "type": "contains"
      },
      {
        "from": "call:1908",
        "to": "sink:call",
        "type": "capability"
      },
      {
        "from": "bb:1939",
        "to": "call:2132",
        "type": "contains"
      },
      {
        "from": "call:2132",
        "to": "sink:call",
        "type": "capability"
      },
      {
        "from": "bb:2163",
        "to": "call:2386",
        "type": "contains"
      },
      {
        "from": "call:2386",
        "to": "sink:call",
        "type": "capability"
      },
      {
        "from": "bb:2418",
        "to": "call:2611",
        "type": "contains"
      },
      {
        "from": "call:2611",
        "to": "sink:call",
        "type": "capability"
      },
      {
        "from": "bb:2781",
        "to": "call:3007",
        "type": "contains"
      },
      {
        "from": "call:3007",
        "to": "sink:call",
        "type": "capability"
      }
    ],
    "nodes": [
      {
        "end_pc": 10,
        "hash": "0x8707fb847587a17eebc1e102cecb330d4092cae78bfef09d441df6ca228003e1",
        "id": "bb:0",
        "start_pc": 0,
        "type": "basic_block"
      },
      {
        "end_pc": 56,
        "hash": "0xdffb8e1cdf9d0372d5d5c35443b07aa5e27508ea1dacd8444f4fd82f3e5e125e",
        "id": "bb:11",
        "start_pc": 11,
        "type": "basic_block"
      },
      {
        "end_pc": 67,
        "hash": "0x0e68c62685aac72c23ba5517273d1558f0787046915f4525f1a110d90ce060c1",
        "id": "bb:57",
        "start_pc": 57,
        "type": "basic_block"
      },
      {
        "end_pc": 78,
        "hash": "0xf09d4ccf8e7fb96af15a36cf3a3757886b7fc54ddcde19375016f2133612012d",
        "id": "bb:68",
        "start_pc": 68,
        "type": "basic_block"
      },
      {
        "end_pc": 89,
        "hash": "0x6816d17a68537e88f33ab578f54cee7c8376d6578db5134834956b2208362631",
        "id": "bb:79",
        "start_pc": 79,
        "type": "basic_block"
      },
      {
        "end_pc": 100,
        "hash": "0x2654216f680d49c9c612dfe8c6899e29b13269d7459944acbace80a933a50178",
        "id": "bb:90",
        "start_pc": 90,
        "type": "basic_block"
      },
      {
        "end_pc": 111,
        "hash": "0xc03c1bdf747646d594eadb71b6af9efc44c6a82a6ea9a1173759d75cf163a18a",
        "id": "bb:101",
        "start_pc": 101,
        "type": "basic_block"
      },
      {
        "end_pc": 122,
        "hash": "0x77bc7690c8f0f0cc319bfb4eb0f7d3b36b89c0ad3e45216c3758be0464fa2dcc",
        "id": "bb:112",
        "start_pc": 112,
        "type": "basic_block"
      },
      {
        "end_pc": 133,
        "hash": "0x47902d2c10d333306f354eef555c1b262b0d362d2e596c5eeaf00debbd402186",
        "id": "bb:123",
        "start_pc": 123,
        "type": "basic_block"
      },
      {
        "end_pc": 144,
        "hash": "0x5ecdecf104e06d8fd1359a4582a4966381617017540215dc8016752aa2553896",
        "id": "bb:134",
        "start_pc": 134,
        "type": "basic_block"
      },
      {
        "end_pc": 155,
        "hash": "0x26d93a1a331ca04fb0c1a615d822adb74de398e58d364e5ba09ce62c403ff079",
        "id": "bb:145",
        "start_pc": 145,
        "type": "basic_block"
      },
      {
        "end_pc": 166,
        "hash": "0x4606fbcc46b74b67f43562e9b03e4ea842e25e1864bf9e11b4368f620548bf6c",
        "id": "bb:156",
        "start_pc": 156,
        "type": "basic_block"
      },
      {
        "end_pc": 177,
        "hash": "0x29003cc5ab99fb2b20fd7ca32d4fd0aa33aec1c8b7d91b99b187bd7ef71857f5",
        "id": "bb:167",
        "start_pc": 167,
        "type": "basic_block"
      },
      {
        "end_pc": 188,
        "hash": "0xa5ed245cdd12d4951db21763e84048ba81bdbeff0560eef9840c3f0b216ba4da",
        "id": "bb:178",
        "start_pc": 178,
        "type": "basic_block"
      },
      {
        "end_pc": 192,
        "hash": "0xdfa62202f3e379ed7aee45db829106e6ef33418b69b966f521abe6d2099502f0",
        "id": "bb:189",
        "start_pc": 189,
        "type": "basic_block"
      },
      {
        "end_pc": 194,
        "hash": "0xb63e7795bdf2ea7d0402180fb5cdcbb8ba0d843e01b80a93e71c5720008cf5ad",
        "id": "bb:193",
        "start_pc": 193,
        "type": "basic_block"
      },
      {
        "end_pc": 225,
        "hash": "0x74087f337e5ec5816be824498abb6e6647c6af2353ebf29c15192cc2c9bb0845",
        "id": "bb:195",
        "start_pc": 195,
        "type": "basic_block"
      },
      {
        "end_pc": 247,
        "hash": "0x770090c3c9c3e392db02643b4fca573a16bb9b5ec031dedaf856473c272c6720",
        "id": "bb:226",
        "start_pc": 226,
        "type": "basic_block"
      },
      {
        "end_pc": 260,
        "hash": "0xe7384efb9f48f9de3969126dc814f72248a977d3a2549f1b8e70b151c6baa60e",
        "id": "bb:248",
        "start_pc": 248,
        "type": "basic_block"
      },
      {
        "end_pc": 282,
        "hash": "0xc61f189c3491f7a6c471a2b968e1948bf3cd66c52ba9f3e4f144b93da55ae3f7",
        "id": "bb:261",
        "start_pc": 261,
        "type": "basic_block"
      },
      {
        "end_pc": 322,
        "hash": "0xd3bbd9e9110c402c45439314b82cc8029708b7a7adfdc6197ff8b06a3cd8a25e",
        "id": "bb:283",
        "start_pc": 283,
        "type": "basic_block"
      },
      {
        "end_pc": 344,
        "hash": "0xd10fa562457b4d4d7e9f995ecfa62bb1710ef760932c7e8b339177eb798a2cda",
        "id": "bb:323",
        "start_pc": 323,
        "type": "basic_block"
      },
      {
        "end_pc": 384,
        "hash": "0x952e683e42eb33103e533549c624f8712ff0a3b1e995faf6da78080164684b3b",
        "id": "bb:345",
        "start_pc": 345,
        "type": "basic_block"
      },
      {
        "end_pc": 386,
        "hash": "0xa35edc3e374ed98e0a4fbf13d9a49e011257588a70fc7ae03aee5a1ae3315b96",
        "id": "bb:385",
        "start_pc": 385,
        "type": "basic_block"
      },
      {
        "end_pc": 399,
        "hash": "0xe63b92f1a1a0ec236f9b1fc5c10727b444a9c99e0be9f073b5c20e8e4d4444ab",
        "id": "bb:387",
        "start_pc": 387,
        "type": "basic_block"
      },
      {
        "end_pc": 443,
        "hash": "0xbede7aa0fe5afb9e088c2af94a55a0f037ee85e3e25641154530a4a9872501ae",
        "id": "bb:400",
        "start_pc": 400,
        "type": "basic_block"
      },
      {
        "end_pc": 483,
        "hash": "0xf2f9370fd0673a98de856e9882a23dfa0b16fd915d3bc5b0752ff9b02fa6dfb6",
        "id": "bb:444",
        "start_pc": 444,
        "type": "basic_block"
      },
      {
        "end_pc": 485,
        "hash": "0x9630c78e46184edd56ee311145006a6f872b44d9a7bd331caa83e63762e6feb0",
        "id": "bb:484",
        "start_pc": 484,
        "type": "basic_block"
      },
      {
        "end_pc": 507,
        "hash": "0xf11f98c6246a23aebc7a8b5b3bc1d3d0eb22be7bfd6c1f4df3ffa7166e7c9c9e",
        "id": "bb:486",
        "start_pc": 486,
        "type": "basic_block"
      },
      {
        "end_pc": 529,
        "hash": "0x90fcfed8d90a9045d9a50b100bdb53f0cf31cce8530441c738f7fbd5c7f68278",
        "id": "bb:508",
        "start_pc": 508,
        "type": "basic_block"
      },
      {
        "end_pc": 560,
        "hash": "0x8a6d759cd3888e86bdaa2bf32b7c89c3a58b46bfdb13f0ea49fbbf13595e029f",
        "id": "bb:530",
        "start_pc": 530,
        "type": "basic_block"
      },
      {
        "end_pc": 562,
        "hash": "0x96b7de1026dae30a13a06e85f80abf922a59bf30781950850d5662f550c71643",
        "id": "bb:561",
        "start_pc": 561,
        "type": "basic_block"
      },
      {
        "end_pc": 584,
        "hash": "0xdbed1da77302b2c99925a4f52287dbe7bf970ba355930b31d10275990d5afc01",
        "id": "bb:563",
        "start_pc": 563,
        "type": "basic_block"
      },
      {
        "end_pc": 586,
        "hash": "0x6ec57a605bc82f8d2f6b240e40c68a419886a17149c34076c190f959d96db81c",
        "id": "bb:585",
        "start_pc": 585,
        "type": "basic_block"
      },
      {
        "end_pc": 617,
        "hash": "0xd2232062c966f6c3eddc8ff3580a3adcfd864521db05650410d311ba035b54cc",
        "id": "bb:587",
        "start_pc": 587,
        "type": "basic_block"
      },
      {
        "end_pc": 639,
        "hash": "0x86721e400c0cc873f1d3bcf3c458ecadae534c9cbc0cd84608438d22eba4749c",
        "id": "bb:618",
        "start_pc": 618,
        "type": "basic_block"
      },
      {
        "end_pc": 652,
        "hash": "0xc08d3e414c51f9dc0f8971c340ab295a5f3f164484f964132c01d3497927011f",
        "id": "bb:640",
        "start_pc": 640,
        "type": "basic_block"
      },
      {
        "end_pc": 696,
        "hash": "0xa3763b92458edc4b6e7dc56f1ce78756048c73fb7864da18a852daef829ab495",
        "id": "bb:653",
        "start_pc": 653,
        "type": "basic_block"
      },
      {
        "end_pc": 709,
        "hash": "0xd04a2daf22fa74f65689d84af7ef2350dc13bb5769100fa6dcf311a43cfe3629",
        "id": "bb:697",
        "start_pc": 697,
        "type": "basic_block"
      },
      {
        "end_pc": 731,
        "hash": "0xcc153f7b5b36c098cac6980866b621ddaae86afc1b2f9e0c700489b0f46cbd2a",
        "id": "bb:710",
        "start_pc": 710,
        "type": "basic_block"
      },
      {
        "end_pc": 762,
        "hash": "0x269df0f31f6faff7d4c391b0c707699bf621ec1804ecb3bf803594d4ef66052d",
        "id": "bb:732",
        "start_pc": 732,
        "type": "basic_block"
      },
      {
        "end_pc": 784,
        "hash": "0x4479c0f293670a13fa2aac0f2839414284083c3006b771cd39a65058401b7282",
        "id": "bb:763",
        "start_pc": 763,
        "type": "basic_block"
      },
      {
        "end_pc": 792,
        "hash": "0xad03dcb136c955ae5d822d293ec213aaca2f524ef4d731b8494792e61f4877fc",
        "id": "bb:785",
        "start_pc": 785,
        "type": "basic_block"
      },
      {
        "end_pc": 798,
        "hash": "0x74592dd2299d32e7e91d54f770ae1035f82ba8d7d542bf80af909c90c6dbb538",
        "id": "bb:793",
        "start_pc": 793,
        "type": "basic_block"
      },
      {
        "end_pc": 940,
        "hash": "0xb22d41a70f919b9b4745191bcdea55ffb8b12b9366daa3bd3766b561d7881d91",
        "id": "bb:799",
        "start_pc": 799,
        "type": "basic_block"
      },
      {
        "end_pc": 945,
        "hash": "0x756b1171841fe4739e9e6e9ee22887c6a095bd2dee8b3b3892982627530a36e0",
        "id": "bb:941",
        "start_pc": 941,
        "type": "basic_block"
      },
      {
        "end_pc": 946,
        "hash": "0x56787a33a2b390609e84faad4c9e11685a370745656713ffef4b6ea7e241b22a",
        "id": "bb:946",
        "start_pc": 946,
        "type": "basic_block"
      },
      {
        "end_pc": 950,
        "hash": "0xca3c2a54d6a9b18c82323367580364ac8500c0afdab2c8d639b19b5245bcc599",
        "id": "bb:947",
        "start_pc": 947,
        "type": "basic_block"
      },
      {
        "end_pc": 958,
        "hash": "0x7ea95c492d402e4e9f1e7483355a922630174fd2a952f6a0f8f08373aee83646",
        "id": "bb:951",
        "start_pc": 951,
        "type": "basic_block"
      },
      {
        "end_pc": 964,
        "hash": "0x427bde054313e6cf86d01b36aae97dc0323f5db7e243d39ce7b1939462e8f6c8",
        "id": "bb:959",
        "start_pc": 959,
        "type": "basic_block"
      },
      {
        "end_pc": 1011,
        "hash": "0x17c81fabf61e5b2ab04b3bac1300f730908372240bdf5fccecb31b7bf4f28478",
        "id": "bb:965",
        "start_pc": 965,
        "type": "basic_block"
      },
      {
        "end_pc": 1016,
        "hash": "0xf3a91669bb25d1e881dd0d04f0e17612fc1cdfdac846bd26351a317e7c9bf8ed",
        "id": "bb:1012",
        "start_pc": 1012,
        "type": "basic_block"
      },
      {
        "end_pc": 1017,
        "hash": "0x7fce57fa762a3138c7509bb4eef6a7b7521d8ef1fde5e5403061d167089d54a9",
        "id": "bb:1017",
        "start_pc": 1017,
        "type": "basic_block"
      },
      {
        "end_pc": 1020,
        "hash": "0xf401ba865342e35870de7085d8717d104e588af53e5e479abcb18ff2c6ea9aa2",
        "id": "bb:1018",
        "start_pc": 1018,
        "type": "basic_block"
      },
      {
        "end_pc": 1039,
        "hash": "0x45cad272ec9a317a15e6a835c7d2537ef52393905287640f070920dd401532dc",
        "id": "bb:1021",
        "start_pc": 1021,
        "type": "basic_block"
      },
      {
        "end_pc": 1077,
        "hash": "0x2c4de7235f38e57744e1b535c317796d65276cd5846a9d859f991bbe92cf32a3",
        "id": "bb:1040",
        "start_pc": 1040,
        "type": "basic_block"
      },
      {
        "end_pc": 1121,
        "hash": "0x25aebad2b7ec3b88fdcd2b228afc518c53cc22ca567e45472e6458710fd01424",
        "id": "bb:1078",
        "start_pc": 1078,
        "type": "basic_block"
      },
      {
        "end_pc": 1124,
        "hash": "0x54c4b17dc9974d50698f5cdb73e5d6881f73c477eda3b62395b9db150f5b7494",
        "id": "bb:1122",
        "start_pc": 1122,
        "type": "basic_block"
      },
      {
        "end_pc": 1132,
        "hash": "0x97085831908ebe6c7354b78509959deb792136b17fdfc17a6c9c94a07b14629c",
        "id": "bb:1125",
        "start_pc": 1125,
        "type": "basic_block"
      },
      {
        "end_pc": 1138,
        "hash": "0x83bf2d0fba4abe462fc07570acfceff6ec77ec6afcc25322debc696c5259d65b",
        "id": "bb:1133",
        "start_pc": 1133,
        "type": "basic_block"
      },
      {
        "end_pc": 1243,
        "hash": "0xea926f98b9e9943693537f489e231ba5dff7d411e9188ba5e3690b2ef7776cc4",
        "id": "bb:1139",
        "start_pc": 1139,
        "type": "basic_block"
      },
      {
        "end_pc": 1248,
        "hash": "0xc5b5b2abc176fbfa235d4f218d5297de17f03c80afc5694c0b7820eeaf78f4cf",
        "id": "bb:1244",
        "start_pc": 1244,
        "type": "basic_block"
      },
      {
        "end_pc": 1249,
        "hash": "0x27ad002fa4335ef52a44d07987b5e50fc91c9884d0f6cbe1291b6c959e0c23c6",
        "id": "bb:1249",
        "start_pc": 1249,
        "type": "basic_block"
      },
      {
        "end_pc": 1254,
        "hash": "0x9110d6305ddb0438a74ffbc560d340c3b262e03bf4321aed13585607276f763e",
        "id": "bb:1250",
        "start_pc": 1250,
        "type": "basic_block"
      },
      {
        "end_pc": 1262,
        "hash": "0x84d3a14598688d2f067d218ecc516a6ad76726a125f4738b55bd347d02bfddbb",
        "id": "bb:1255",
        "start_pc": 1255,
        "type": "basic_block"
      },
      {
        "end_pc": 1268,
        "hash": "0xff7c0f0dd081f8f3a6195ed49969433760d4b80e29b99a7038a53f5cfcc44de6",
        "id": "bb:1263",
        "start_pc": 1263,
        "type": "basic_block"
      },
      {
        "end_pc": 1373,
        "hash": "0x0b8845505a6b90d73e3f2f7a6681c1468eb4b2b0dc0c25b415c6b30f934fbc17",
        "id": "bb:1269",
        "start_pc": 1269,
        "type": "basic_block"
      },
      {
        "end_pc": 1378,
        "hash": "0x72894608d85d862985fb0e051fd43cda848186524829850863ac2b36fdf8aa75",
        "id": "bb:1374",
        "start_pc": 1374,
        "type": "basic_block"
      },
      {
        "end_pc": 1379,
        "hash": "0xc033218540aeb7f8b9d5fa84061fe23e213ff00893d58b3d86ca9ea6426e3b1d",
        "id": "bb:1379",
        "start_pc": 1379,
        "type": "basic_block"
      },
      {
        "end_pc": 1384,
        "hash": "0x1038ef1b5b7cc1d261fd73c093822a5fc795873a8c5d91bbdfcffd6d7d56870b",
        "id": "bb:1380",
        "start_pc": 1380,
        "type": "basic_block"
      },
      {
        "end_pc": 1515,
        "hash": "0x164b1dade149b2380a0bae0f8030d70e4293c049998e24b990c632d818efe796",
        "id": "bb:1385",
        "start_pc": 1385,
        "type": "basic_block"
      },
      {
        "end_pc": 1534,
        "hash": "0x400d2568689396a794a37117f74824ac0013cc2806b0a100b1f0d646eb6e6d24",
        "id": "bb:1516",
        "start_pc": 1516,
        "type": "basic_block"
      },
      {
        "end_pc": 1537,
        "hash": "0x3c69376ff0a36391525a2ceb5f1e81c30130e56b692852129177f3e76ef7e85a",
        "id": "bb:1535",
        "start_pc": 1535,
        "type": "basic_block"
      },
      {
        "end_pc": 1698,
        "hash": "0xead9841f7413956bd6bd766c654136abfb8b8ec13dea8c8f4b3423bbe2f97677",
        "id": "bb:1538",
        "start_pc": 1538,
        "type": "basic_block"
      },
      {
        "end_pc": 1717,
        "hash": "0x9839ca98a404761fa2f40edc5528556b1044f10ccde6255a68d4a507d7c480cf",
        "id": "bb:1699",
        "start_pc": 1699,
        "type": "basic_block"
      },
      {
        "end_pc": 1722,
        "hash": "0x36fa2ef0acfba670a14564023568c2d8246e9813f458e53525797197041be011",
        "id": "bb:1718",
        "start_pc": 1718,
        "type": "basic_block"
      },
      {
        "end_pc": 1913,
        "hash": "0x72d2aa21abc64e2293ecab5bc37ba9866557d257f867b1e3ce8bdddfcd3cbdea",
        "id": "bb:1723",
        "start_pc": 1723,
        "type": "basic_block"
      },
      {
        "end_pc": 1932,
        "hash": "0xdfdb6072decee946b12e155474bbc86a69a294524d7e9c4174d1ba2a2b53e5bd",
        "id": "bb:1914",
        "start_pc": 1914,
        "type": "basic_block"
      },
      {
        "end_pc": 1938,
        "hash": "0x936e6702caaaa4c0c2a1a576997c6349f8f20ba916d579d8749d0c24ba87729d",
        "id": "bb:1933",
        "start_pc": 1933,
        "type": "basic_block"
      },
      {
        "end_pc": 2137,
        "hash": "0xc7942c473685e64835e02690ca5fe7d17c9c2a62812c739b2330faf211623259",
        "id": "bb:1939",
        "start_pc": 1939,
        "type": "basic_block"
      },
      {
        "end_pc": 2156,
        "hash": "0x26c710220fd07dc89114e7a3aef071cd21190ebca15b5ca63b609a5d8f0b4c11",
        "id": "bb:2138",
        "start_pc": 2138,
        "type": "basic_block"
      },
      {
        "end_pc": 2162,
        "hash": "0x9f310ed05e77c9dad3a507506c57d4c40a5b886ee7798dc74bd95b3b262666ba",
        "id": "bb:2157",
        "start_pc": 2157,
        "type": "basic_block"
      },
      {
        "end_pc": 2391,
        "hash": "0x5a8e1e3f7d477b1279ba64523806a3a0f31f0baefda44a857710036c2b2f541d",
        "id": "bb:2163",
        "start_pc": 2163,
        "type": "basic_block"
      },
      {
        "end_pc": 2410,
        "hash": "0x3240d321d01f07a51b992089aa64bd772f20636b3bd3f2595e89330c162976e0",
        "id": "bb:2392",
        "start_pc": 2392,
        "type": "basic_block"
      },
      {
        "end_pc": 2417,
        "hash": "0x0ef90cd7e20efbfa79f90e3a70609a9cf3e31266dc4006a5e4023ef8b2e720ec",
        "id": "bb:2411",
        "start_pc": 2411,
        "type": "basic_block"
      },
      {
        "end_pc": 2616,
        "hash": "0x553dc14a7eebfe68681392e5352c5d9c2ee06ce24db8887676aa319ec7ddcb90",
        "id": "bb:2418",
        "start_pc": 2418,
        "type": "basic_block"
      },
      {
        "end_pc": 2635,
        "hash": "0x56725221e5d52fd8e76381f6e54f16bbd110334648b639a02ea240e77a8578e4",
        "id": "bb:2617",
        "start_pc": 2617,
        "type": "basic_block"
      },
      {
        "end_pc": 2641,
        "hash": "0x23c3039a36279102526ab6b2e2861c238339e6969f83ae459968888178c313bd",
        "id": "bb:2636",
        "start_pc": 2636,
        "type": "basic_block"
      },
      {
        "end_pc": 2668,
        "hash": "0x4c27c0802775d7221011160008cf572f4e88ae2d71da7e781243fbfc8c855a9b",
        "id": "bb:2642",
        "start_pc": 2642,
        "type": "basic_block"
      },
      {
        "end_pc": 2755,
        "hash": "0x35fc33f48c4e460c781f1595514a0007f3d22a257ea35a7228de016f78ad6cd1",
        "id": "bb:2669",
        "start_pc": 2669,
        "type": "basic_block"
      },
      {
        "end_pc": 2780,
        "hash": "0xbc12fc00bcb6b3fae911e19d50785aacb15784bdd876e32a0a32e8a05cada3d7",
        "id": "bb:2756",
        "start_pc": 2756,
        "type": "basic_block"
      },
      {
        "end_pc": 3012,
        "hash": "0xf997b7337b52ed1af0993f16d767001d23fb1668bfe7bb9d2f49426610e0d777",
        "id": "bb:2781",
        "start_pc": 2781,
        "type": "basic_block"
      },
      {
        "end_pc": 3031,
        "hash": "0x658792b6fcd992464a65cd56af19f208c5b7767322942665969f97e07d40b62e",
        "id": "bb:3013",
        "start_pc": 3013,
        "type": "basic_block"
      },
      {
        "end_pc": 3036,
        "hash": "0x528cd93059e43bf6b1a28ff6f6b9773efe4feebd7e60ecfab1dfba613f0dc25e",
        "id": "bb:3032",
        "start_pc": 3032,
        "type": "basic_block"
      },
      {
        "end_pc": 3039,
        "hash": "0xe32639893cbf9a95a460cf24b96a97a8c5cf9f8cbdc705b217dd4656339e8d7e",
        "id": "bb:3037",
        "start_pc": 3037,
        "type": "basic_block"
      },
      {
        "id": "call:1510",
        "opcode": "CALL",
        "pc": 1510,
        "type": "callsite"
      },
      {
        "id": "call:1693",
        "opcode": "CALL",
        "pc": 1693,
        "type": "callsite"
      },
      {
        "id": "call:1908",
        "opcode": "CALL",
        "pc": 1908,
        "type": "callsite"
      },
      {
        "id": "call:2132",
        "opcode": "CALL",
        "pc": 2132,
        "type": "callsite"
      },
      {
        "id": "call:2386",
        "opcode": "CALL",
        "pc": 2386,
        "type": "callsite"
      },
      {
        "id": "call:2611",
        "opcode": "CALL",
        "pc": 2611,
        "type": "callsite"
      },
      {
        "id": "call:3007",
        "opcode": "CALL",
        "pc": 3007,
        "type": "callsite"
      },
      {
        "id": "sink:call",
        "type": "sink"
      },
      {
        "entry_pc": 404098525,
        "id": "fn:0x095ea7b3",
        "selector": "0x095ea7b3",
        "type": "function"
      },
      {
        "entry_pc": 599290589,
        "id": "fn:0x18160ddd",
        "selector": "0x18160ddd",
        "type": "function"
      },
      {
        "entry_pc": 601777745,
        "id": "fn:0x23b872dd",
        "selector": "0x23b872dd",
        "type": "function"
      },
      {
        "entry_pc": 806887519,
        "id": "fn:0x23de6651",
        "selector": "0x23de6651",
        "type": "function"
      },
      {
        "entry_pc": 1451750072,
        "id": "fn:0x3018205f",
        "selector": "0x3018205f",
        "type": "function"
      },
      {
        "entry_pc": 1889567281,
        "id": "fn:0x5687f2b8",
        "selector": "0x5687f2b8",
        "type": "function"
      },
      {
        "entry_pc": 2115875489,
        "id": "fn:0x70a08231",
        "selector": "0x70a08231",
        "type": "function"
      },
      {
        "entry_pc": 2465136283,
        "id": "fn:0x7e1db2a1",
        "selector": "0x7e1db2a1",
        "type": "function"
      },
      {
        "entry_pc": 2835717307,
        "id": "fn:0x92eefe9b",
        "selector": "0x92eefe9b",
        "type": "function"
      },
      {
        "entry_pc": 3256901345,
        "id": "fn:0xa9059cbb",
        "selector": "0xa9059cbb",
        "type": "function"
      },
      {
        "entry_pc": 3578918401,
        "id": "fn:0xc2205ee1",
        "selector": "0xc2205ee1",
        "type": "function"
      },
      {
        "entry_pc": 3714247998,
        "id": "fn:0xd551f601",
        "selector": "0xd551f601",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0xdd62ed3e",
        "selector": "0xdd62ed3e",
        "type": "function"
      }
    ],
    "version": "capability_graph_v1"
  },
  "id": 2409,
  "updated_at": "2026-04-05T01:45:29.000000Z",
  "version": "capability_graph_v1"
}

exec
/bin/bash -lc "jq '.artifact.codehash, .artifact.compiler_json, .artifact.implementation_address, .artifact.is_proxy, .artifact.verified_source' BYTECODE_BUNDLE.json" in /tmp/codex-g936cym_
 succeeded in 0ms:
"0x4ef03bb8b5844e789b18f8e73e6698e7b14de90b9f9b347200666c30e3f5e0c9"
{
  "etherscan": {
    "skipped": true
  }
}
null
false
false

exec
/bin/bash -lc "jq '.artifact.runtime_bytecode' BYTECODE_BUNDLE.json" in /tmp/codex-g936cym_
 succeeded in 0ms:
{
  "full": "0x606060405236156100c1576000357c010000000000000000000000000000000000000000000000000000000090048063095ea7b3146100c357806318160ddd146100f857806323b872dd1461011b57806323de6651146101595780633018205f146101835780635687f2b8146101bc57806370a08231146101e65780637e1db2a11461021257806392eefe9b14610233578063a9059cbb1461024b578063c2205ee114610280578063d551f601146102b9578063dd62ed3e146102dc576100c1565b005b6100e26004808035906020019091908035906020019091905050610972565b6040518082815260200191505060405180910390f35b6101056004805050610569565b6040518082815260200191505060405180910390f35b6101436004808035906020019091908035906020019091908035906020019091905050610873565b6040518082815260200191505060405180910390f35b6101816004808035906020019091908035906020019091908035906020019091905050610465565b005b6101906004805050610436565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101e460048080359060200190919080359060200190919080359060200190919050506104e7565b005b6101fc6004808035906020019091905050610602565b6040518082815260200191505060405180910390f35b6102316004808035906020019091908035906020019091905050610311565b005b61024960048080359060200190919050506103b7565b005b61026a6004808035906020019091908035906020019091905050610793565b6040518082815260200191505060405180910390f35b61028d6004805050610410565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102c660048050506103fd565b6040518082815260200191505060405180910390f35b6102fb60048080359060200190919080359060200190919050506106bb565b6040518082815260200191505060405180910390f35b610319610a52565b156103ad5781600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555080600060006101000a81548160ff02191690830217905550808273ffffffffffffffffffffffffffffffffffffffff167fb96a5204da93e5d7ddd5b0c2616fd5f76322b9c383c5010b94fdc3df11b7be5260405180905060405180910390a36103b2565b610002565b5b5050565b6103bf610a52565b156103f45780600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908302179055506103f9565b610002565b5b50565b600060009054906101000a900460ff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610462565b90565b61046d610a52565b156104dc578173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36104e1565b610002565b5b505050565b6104ef610a52565b1561055e578173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3610563565b610002565b5b505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f115610002575050506040518051906020015090506105ff565b90565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823183604051827c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1681526020019150506020604051808303816000876161da5a03f115610002575050506040518051906020015090506106b6565b919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e8484604051837c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152602001925050506020604051808303816000876161da5a03f1156100025750505060405180519060200150905061078d565b92915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663beabacc8338585604051847c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200193505050506020604051808303816000876161da5a03f1156100025750505060405180519060200150905061086d565b92915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315dacbea33868686604051857c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019450505050506020604051808303816000876161da5a03f1156100025750505060405180519060200150905061096b565b9392505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1f21c67338585604051847c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200193505050506020604051808303816000876161da5a03f11561000257505050604051805190602001509050610a4c565b92915050565b60006000600060009054906101000a900460ff161415610ac457600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16149050610bdd565b6001600060009054906101000a900460ff161415610bd857600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b700961333306000357fffffffff0000000000000000000000000000000000000000000000000000000016604051847c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200193505050506020604051808303816000876161da5a03f11561000257505050604051805190602001509050610bdd565b610002565b9056",
  "head": null,
  "length": 6082,
  "tail": null,
  "truncated": false
}

exec
/bin/bash -lc 'which cast' in /tmp/codex-g936cym_
 succeeded in 0ms:
/home/noahkuhn/.foundry/bin/cast

exec
/bin/bash -lc 'which evm' in /tmp/codex-g936cym_
 exited 1 in 0ms:
exec
/bin/bash -lc 'which hevm' in /tmp/codex-g936cym_
 exited 1 in 0ms:
exec
/bin/bash -lc "cast --help | sed -n '1,220p'" in /tmp/codex-g936cym_
 succeeded in 0ms:
A Swiss Army knife for interacting with Ethereum applications from the command line

Usage: cast [OPTIONS] <COMMAND>

Commands:
  4byte                  Get the function signatures for the given selector from
                         <https://openchain.xyz> [aliases: 4, 4b]
  4byte-calldata         Decode ABI-encoded calldata using <https://openchain.xyz> [aliases: 4c,
                         4bc]
  4byte-event            Get the event signature for a given topic 0 from <https://openchain.xyz>
                         [aliases: 4e, 4be, topic0-event, t0e]
  abi-encode             ABI encode the given function argument, excluding the selector [aliases:
                         ae]
  abi-encode-event       ABI encode an event and its arguments to generate topics and data [aliases:
                         aee]
  access-list            Create an access list for a transaction [aliases: ac, acl]
  address-zero           Prints the zero address [aliases: --address-zero, az]
  admin                  Fetch the EIP-1967 admin account [aliases: adm]
  age                    Get the timestamp of a block [aliases: a]
  artifact               Generate an artifact file, that can be used to deploy a contract locally
                         [aliases: ar]
  b2e-payload            Convert Beacon payload to execution payload [aliases: b2e]
  balance                Get the balance of an account in wei [aliases: b]
  base-fee               Get the basefee of a block [aliases: ba, fee, basefee]
  bind                   Generate a rust binding from a given ABI [aliases: bi]
  block                  Get information about a block [aliases: bl]
  block-number           Get the latest block number [aliases: bn]
  call                   Perform a call on an account without publishing a transaction [aliases: c]
  calldata               ABI-encode a function with arguments [aliases: cd]
  chain                  Get the symbolic name of the current chain
  chain-id               Get the Ethereum chain ID [aliases: ci, cid]
  client                 Get the current client version [aliases: cl]
  code                   Get the runtime bytecode of a contract [aliases: co]
  codehash               Get the codehash for an account
  codesize               Get the runtime bytecode size of a contract [aliases: cs]
  completions            Generate shell completions script [aliases: com]
  compute-address        Compute the contract address from a given nonce and deployer address
                         [aliases: ca]
  concat-hex             Concatenate hex strings [aliases: --concat-hex, ch]
  constructor-args       Display constructor arguments used for the contract initialization
                         [aliases: cra]
  create2                Generate a deterministic contract address using CREATE2 [aliases: c2]
  creation-code          Download a contract creation code from Etherscan and RPC [aliases: cc]
  da-estimate            Estimates the data availability size of a given opstack block
  decode-abi             Decode ABI-encoded input or output data [aliases: abi-decode, --abi-decode,
                         ad]
  decode-calldata        Decode ABI-encoded input data [aliases: calldata-decode, --calldata-decode,
                         cdd]
  decode-error           Decode custom error data [aliases: error-decode, --error-decode, erd]
  decode-event           Decode event data [aliases: event-decode, --event-decode, ed]
  decode-string          Decode ABI-encoded string [aliases: string-decode, --string-decode, sd]
  decode-transaction     Decodes a raw signed EIP 2718 typed transaction [aliases: dt, decode-tx]
  disassemble            Disassembles a hex-encoded bytecode into a human-readable representation
                         [aliases: da]
  erc20-token            ERC20 token operations [aliases: erc20]
  estimate               Estimate the gas cost of a transaction [aliases: e]
  find-block             Get the block number closest to the provided timestamp [aliases: f]
  format-bytes32-string  Formats a string into bytes32 encoding [aliases: --format-bytes32-string]
  format-units           Format a number from smallest unit to decimal with arbitrary decimals
                         [aliases: --format-units, fun]
  from-bin               Convert binary data into hex data [aliases: --from-bin, from-binx, fb]
  from-fixed-point       Convert a fixed point number into an integer [aliases: --from-fix, ff]
  from-rlp               Decodes RLP hex-encoded data [aliases: --from-rlp]
  from-utf8              Convert UTF8 text to hex [aliases: --from-ascii, --from-utf8, from-ascii,
                         fu, fa]
  from-wei               Convert wei into an ETH amount [aliases: --from-wei, fw]
  gas-price              Get the current gas price [aliases: g]
  hash-message           Hash a message according to EIP-191 [aliases: --hash-message, hm]
  hash-zero              Prints the zero hash [aliases: --hash-zero, hz]
  help                   Print this message or the help of the given subcommand(s)
  implementation         Fetch the EIP-1967 implementation for a contract Can read from the
                         implementation slot or the beacon slot [aliases: impl]
  index                  Compute the storage slot for an entry in a mapping [aliases: in]
  index-erc7201          Compute storage slots as specified by `ERC-7201: Namespaced Storage Layout`
                         [aliases: index7201, in7201]
  interface              Generate a Solidity interface from a given ABI [aliases: i]
  keccak                 Hash arbitrary data using Keccak-256 [aliases: k, keccak256]
  logs                   Get logs by signature or topic [aliases: l]
  lookup-address         Perform an ENS reverse lookup [aliases: la]
  max-int                Prints the maximum value of the given integer type [aliases: --max-int,
                         maxi]
  max-uint               Prints the maximum value of the given integer type [aliases: --max-uint,
                         maxu]
  min-int                Prints the minimum value of the given integer type [aliases: --min-int,
                         mini]
  mktx                   Build and sign a transaction [aliases: m]
  namehash               Calculate the ENS namehash of a name [aliases: na, nh]
  nonce                  Get the nonce for an account [aliases: n]
  pad                    Pads hex data to a specified length [aliases: pd]
  parse-bytes32-address  Parses a checksummed address from bytes32 encoding. [aliases:
                         --parse-bytes32-address]
  parse-bytes32-string   Parses a string from bytes32 encoding [aliases: --parse-bytes32-string]
  parse-units            Convert a number from decimal to smallest unit with arbitrary decimals
                         [aliases: --parse-units, pun]
  pretty-calldata        Pretty print calldata [aliases: pc]
  proof                  Generate a storage proof for a given storage slot [aliases: pr]
  publish                Publish a raw transaction to the network [aliases: p]
  receipt                Get the transaction receipt for a transaction [aliases: re]
  recover-authority      Recovery an EIP-7702 authority from a Authorization JSON string [aliases:
                         decode-auth]
  resolve-name           Perform an ENS lookup [aliases: rn]
  rpc                    Perform a raw JSON-RPC request [aliases: rp]
  run                    Runs a published transaction in a local environment and prints the trace
                         [aliases: r]
  selectors              Extracts function selectors and arguments from bytecode [aliases: sel]
  send                   Sign and publish a transaction [aliases: s]
  shl                    Perform a left shifting operation
  shr                    Perform a right shifting operation
  sig                    Get the selector for a function [aliases: si]
  sig-event              Generate event signatures from event string [aliases: se]
  source                 Get the source code of a contract from a block explorer [aliases: et, src]
  storage                Get the raw value of a contract's storage slot [aliases: st]
  storage-root           Get the storage root for an account [aliases: sr]
  to-ascii               Convert hex data to an ASCII string [aliases: --to-ascii, tas, 2as]
  to-base                Converts a number of one base to another [aliases: --to-base, --to-radix,
                         to-radix, tr, 2r]
  to-bytes32             Right-pads hex data to 32 bytes [aliases: --to-bytes32, tb, 2b]
  to-check-sum-address   Convert an address to a checksummed format (EIP-55) [aliases:
                         --to-checksum-address, --to-checksum, to-checksum, ta, 2a]
  to-dec                 Converts a number of one base to decimal [aliases: --to-dec, td, 2d]
  to-fixed-point         Convert an integer into a fixed point number [aliases: --to-fix, tf, 2f]
  to-hex                 Converts a number of one base to another [aliases: --to-hex, th, 2h]
  to-hexdata             Normalize the input to lowercase, 0x-prefixed hex [aliases: --to-hexdata,
                         thd, 2hd]
  to-int256              Convert a number to a hex-encoded int256 [aliases: --to-int256, ti, 2i]
  to-rlp                 RLP encodes hex data, or an array of hex data [aliases: --to-rlp]
  to-uint256             Convert a number to a hex-encoded uint256 [aliases: --to-uint256, tu, 2u]
  to-unit                Convert an ETH amount into another unit (ether, gwei or wei) [aliases:
                         --to-unit, tun, 2un]
  to-utf8                Convert hex data to a utf-8 string [aliases: --to-utf8, tu8, 2u8]
  to-wei                 Convert an ETH amount to wei [aliases: --to-wei, tw, 2w]
  trace                  CLI arguments for `cast trace`
  tx                     Get information about a transaction [aliases: t]
  tx-pool                Inspect the TxPool of a node [aliases: tp]
  upload-signature       Upload the given signatures to <https://openchain.xyz> [aliases: ups]
  wallet                 Wallet management utilities [aliases: w]

Options:
  -h, --help
          Print help (see a summary with '-h')

  -j, --threads <THREADS>
          Number of threads to use. Specifying 0 defaults to the number of logical cores
          
          [aliases: --jobs]

  -V, --version
          Print version

Display options:
      --color <COLOR>
          The color of the log messages

          Possible values:
          - auto:   Intelligently guess whether to use color output (default)
          - always: Force color output
          - never:  Force disable color output

      --json
          Format log messages as JSON

      --md
          Format log messages as Markdown

  -q, --quiet
          Do not print log messages

  -v, --verbosity...
          Verbosity level of the log messages.
          
          Pass multiple times to increase the verbosity (e.g. -v, -vv, -vvv).
          
          Depending on the context the verbosity levels have different meanings.
          
          For example, the verbosity levels of the EVM are:
          - 2 (-vv): Print logs for all tests.
          - 3 (-vvv): Print execution traces for failing tests.
          - 4 (-vvvv): Print execution traces for all tests, and setup traces for failing tests.
          - 5 (-vvvvv): Print execution and setup traces for all tests, including storage changes
          and
            backtraces with line numbers.

Find more information in the book: https://getfoundry.sh/cast/overview

exec
/bin/bash -lc "cast disassemble --help | sed -n '1,200p'" in /tmp/codex-g936cym_
 succeeded in 0ms:
Disassembles a hex-encoded bytecode into a human-readable representation

Usage: cast disassemble [OPTIONS] [BYTECODE]

Arguments:
  [BYTECODE]
          The hex-encoded bytecode

Options:
  -h, --help
          Print help (see a summary with '-h')

  -j, --threads <THREADS>
          Number of threads to use. Specifying 0 defaults to the number of logical cores
          
          [aliases: --jobs]

Display options:
      --color <COLOR>
          The color of the log messages

          Possible values:
          - auto:   Intelligently guess whether to use color output (default)
          - always: Force color output
          - never:  Force disable color output

      --json
          Format log messages as JSON

      --md
          Format log messages as Markdown

  -q, --quiet
          Do not print log messages

  -v, --verbosity...
          Verbosity level of the log messages.
          
          Pass multiple times to increase the verbosity (e.g. -v, -vv, -vvv).
          
          Depending on the context the verbosity levels have different meanings.
          
          For example, the verbosity levels of the EVM are:
          - 2 (-vv): Print logs for all tests.
          - 3 (-vvv): Print execution traces for failing tests.
          - 4 (-vvvv): Print execution traces for all tests, and setup traces for failing tests.
          - 5 (-vvvvv): Print execution and setup traces for all tests, including storage changes
          and
            backtraces with line numbers.

exec
/bin/bash -lc 'cast disassemble $(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json) | sed -n '1,260p'" in /tmp/codex-g936cym_
 succeeded in 0ms:
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x00c1
0000000a: JUMPI
0000000b: PUSH1 0x00
0000000d: CALLDATALOAD
0000000e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002c: SWAP1
0000002d: DIV
0000002e: DUP1
0000002f: PUSH4 0x095ea7b3
00000034: EQ
00000035: PUSH2 0x00c3
00000038: JUMPI
00000039: DUP1
0000003a: PUSH4 0x18160ddd
0000003f: EQ
00000040: PUSH2 0x00f8
00000043: JUMPI
00000044: DUP1
00000045: PUSH4 0x23b872dd
0000004a: EQ
0000004b: PUSH2 0x011b
0000004e: JUMPI
0000004f: DUP1
00000050: PUSH4 0x23de6651
00000055: EQ
00000056: PUSH2 0x0159
00000059: JUMPI
0000005a: DUP1
0000005b: PUSH4 0x3018205f
00000060: EQ
00000061: PUSH2 0x0183
00000064: JUMPI
00000065: DUP1
00000066: PUSH4 0x5687f2b8
0000006b: EQ
0000006c: PUSH2 0x01bc
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0x70a08231
00000076: EQ
00000077: PUSH2 0x01e6
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0x7e1db2a1
00000081: EQ
00000082: PUSH2 0x0212
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0x92eefe9b
0000008c: EQ
0000008d: PUSH2 0x0233
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0xa9059cbb
00000097: EQ
00000098: PUSH2 0x024b
0000009b: JUMPI
0000009c: DUP1
0000009d: PUSH4 0xc2205ee1
000000a2: EQ
000000a3: PUSH2 0x0280
000000a6: JUMPI
000000a7: DUP1
000000a8: PUSH4 0xd551f601
000000ad: EQ
000000ae: PUSH2 0x02b9
000000b1: JUMPI
000000b2: DUP1
000000b3: PUSH4 0xdd62ed3e
000000b8: EQ
000000b9: PUSH2 0x02dc
000000bc: JUMPI
000000bd: PUSH2 0x00c1
000000c0: JUMP
000000c1: JUMPDEST
000000c2: STOP
000000c3: JUMPDEST
000000c4: PUSH2 0x00e2
000000c7: PUSH1 0x04
000000c9: DUP1
000000ca: DUP1
000000cb: CALLDATALOAD
000000cc: SWAP1
000000cd: PUSH1 0x20
000000cf: ADD
000000d0: SWAP1
000000d1: SWAP2
000000d2: SWAP1
000000d3: DUP1
000000d4: CALLDATALOAD
000000d5: SWAP1
000000d6: PUSH1 0x20
000000d8: ADD
000000d9: SWAP1
000000da: SWAP2
000000db: SWAP1
000000dc: POP
000000dd: POP
000000de: PUSH2 0x0972
000000e1: JUMP
000000e2: JUMPDEST
000000e3: PUSH1 0x40
000000e5: MLOAD
000000e6: DUP1
000000e7: DUP3
000000e8: DUP2
000000e9: MSTORE
000000ea: PUSH1 0x20
000000ec: ADD
000000ed: SWAP2
000000ee: POP
000000ef: POP
000000f0: PUSH1 0x40
000000f2: MLOAD
000000f3: DUP1
000000f4: SWAP2
000000f5: SUB
000000f6: SWAP1
000000f7: RETURN
000000f8: JUMPDEST
000000f9: PUSH2 0x0105
000000fc: PUSH1 0x04
000000fe: DUP1
000000ff: POP
00000100: POP
00000101: PUSH2 0x0569
00000104: JUMP
00000105: JUMPDEST
00000106: PUSH1 0x40
00000108: MLOAD
00000109: DUP1
0000010a: DUP3
0000010b: DUP2
0000010c: MSTORE
0000010d: PUSH1 0x20
0000010f: ADD
00000110: SWAP2
00000111: POP
00000112: POP
00000113: PUSH1 0x40
00000115: MLOAD
00000116: DUP1
00000117: SWAP2
00000118: SUB
00000119: SWAP1
0000011a: RETURN
0000011b: JUMPDEST
0000011c: PUSH2 0x0143
0000011f: PUSH1 0x04
00000121: DUP1
00000122: DUP1
00000123: CALLDATALOAD
00000124: SWAP1
00000125: PUSH1 0x20
00000127: ADD
00000128: SWAP1
00000129: SWAP2
0000012a: SWAP1
0000012b: DUP1
0000012c: CALLDATALOAD
0000012d: SWAP1
0000012e: PUSH1 0x20
00000130: ADD
00000131: SWAP1
00000132: SWAP2
00000133: SWAP1
00000134: DUP1
00000135: CALLDATALOAD
00000136: SWAP1
00000137: PUSH1 0x20
00000139: ADD
0000013a: SWAP1
0000013b: SWAP2
0000013c: SWAP1
0000013d: POP
0000013e: POP
0000013f: PUSH2 0x0873
00000142: JUMP
00000143: JUMPDEST
00000144: PUSH1 0x40
00000146: MLOAD
00000147: DUP1
00000148: DUP3
00000149: DUP2
0000014a: MSTORE
0000014b: PUSH1 0x20
0000014d: ADD
0000014e: SWAP2
0000014f: POP
00000150: POP
00000151: PUSH1 0x40
00000153: MLOAD
00000154: DUP1
00000155: SWAP2
00000156: SUB
00000157: SWAP1
00000158: RETURN
00000159: JUMPDEST
0000015a: PUSH2 0x0181
0000015d: PUSH1 0x04
0000015f: DUP1
00000160: DUP1
00000161: CALLDATALOAD
00000162: SWAP1
00000163: PUSH1 0x20
00000165: ADD
00000166: SWAP1
00000167: SWAP2
00000168: SWAP1
00000169: DUP1
0000016a: CALLDATALOAD
0000016b: SWAP1
0000016c: PUSH1 0x20
0000016e: ADD
0000016f: SWAP1
00000170: SWAP2
00000171: SWAP1
00000172: DUP1
00000173: CALLDATALOAD
00000174: SWAP1
00000175: PUSH1 0x20
00000177: ADD
00000178: SWAP1
00000179: SWAP2
0000017a: SWAP1
0000017b: POP
0000017c: POP
0000017d: PUSH2 0x0465
00000180: JUMP
00000181: JUMPDEST
00000182: STOP
00000183: JUMPDEST
00000184: PUSH2 0x0190
00000187: PUSH1 0x04
00000189: DUP1
0000018a: POP
0000018b: POP
0000018c: PUSH2 0x0436
0000018f: JUMP
00000190: JUMPDEST
00000191: PUSH1 0x40
00000193: MLOAD
00000194: DUP1
00000195: DUP3
00000196: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001ab: AND
000001ac: DUP2
000001ad: MSTORE
000001ae: PUSH1 0x20
000001b0: ADD
000001b1: SWAP2
000001b2: POP
000001b3: POP
000001b4: PUSH1 0x40
000001b6: MLOAD

exec
/bin/bash -lc 'cast disassemble $(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json) | sed -n '260,520p'" in /tmp/codex-g936cym_
 succeeded in 0ms:
000001b6: MLOAD
000001b7: DUP1
000001b8: SWAP2
000001b9: SUB
000001ba: SWAP1
000001bb: RETURN
000001bc: JUMPDEST
000001bd: PUSH2 0x01e4
000001c0: PUSH1 0x04
000001c2: DUP1
000001c3: DUP1
000001c4: CALLDATALOAD
000001c5: SWAP1
000001c6: PUSH1 0x20
000001c8: ADD
000001c9: SWAP1
000001ca: SWAP2
000001cb: SWAP1
000001cc: DUP1
000001cd: CALLDATALOAD
000001ce: SWAP1
000001cf: PUSH1 0x20
000001d1: ADD
000001d2: SWAP1
000001d3: SWAP2
000001d4: SWAP1
000001d5: DUP1
000001d6: CALLDATALOAD
000001d7: SWAP1
000001d8: PUSH1 0x20
000001da: ADD
000001db: SWAP1
000001dc: SWAP2
000001dd: SWAP1
000001de: POP
000001df: POP
000001e0: PUSH2 0x04e7
000001e3: JUMP
000001e4: JUMPDEST
000001e5: STOP
000001e6: JUMPDEST
000001e7: PUSH2 0x01fc
000001ea: PUSH1 0x04
000001ec: DUP1
000001ed: DUP1
000001ee: CALLDATALOAD
000001ef: SWAP1
000001f0: PUSH1 0x20
000001f2: ADD
000001f3: SWAP1
000001f4: SWAP2
000001f5: SWAP1
000001f6: POP
000001f7: POP
000001f8: PUSH2 0x0602
000001fb: JUMP
000001fc: JUMPDEST
000001fd: PUSH1 0x40
000001ff: MLOAD
00000200: DUP1
00000201: DUP3
00000202: DUP2
00000203: MSTORE
00000204: PUSH1 0x20
00000206: ADD
00000207: SWAP2
00000208: POP
00000209: POP
0000020a: PUSH1 0x40
0000020c: MLOAD
0000020d: DUP1
0000020e: SWAP2
0000020f: SUB
00000210: SWAP1
00000211: RETURN
00000212: JUMPDEST
00000213: PUSH2 0x0231
00000216: PUSH1 0x04
00000218: DUP1
00000219: DUP1
0000021a: CALLDATALOAD
0000021b: SWAP1
0000021c: PUSH1 0x20
0000021e: ADD
0000021f: SWAP1
00000220: SWAP2
00000221: SWAP1
00000222: DUP1
00000223: CALLDATALOAD
00000224: SWAP1
00000225: PUSH1 0x20
00000227: ADD
00000228: SWAP1
00000229: SWAP2
0000022a: SWAP1
0000022b: POP
0000022c: POP
0000022d: PUSH2 0x0311
00000230: JUMP
00000231: JUMPDEST
00000232: STOP
00000233: JUMPDEST
00000234: PUSH2 0x0249
00000237: PUSH1 0x04
00000239: DUP1
0000023a: DUP1
0000023b: CALLDATALOAD
0000023c: SWAP1
0000023d: PUSH1 0x20
0000023f: ADD
00000240: SWAP1
00000241: SWAP2
00000242: SWAP1
00000243: POP
00000244: POP
00000245: PUSH2 0x03b7
00000248: JUMP
00000249: JUMPDEST
0000024a: STOP
0000024b: JUMPDEST
0000024c: PUSH2 0x026a
0000024f: PUSH1 0x04
00000251: DUP1
00000252: DUP1
00000253: CALLDATALOAD
00000254: SWAP1
00000255: PUSH1 0x20
00000257: ADD
00000258: SWAP1
00000259: SWAP2
0000025a: SWAP1
0000025b: DUP1
0000025c: CALLDATALOAD
0000025d: SWAP1
0000025e: PUSH1 0x20
00000260: ADD
00000261: SWAP1
00000262: SWAP2
00000263: SWAP1
00000264: POP
00000265: POP
00000266: PUSH2 0x0793
00000269: JUMP
0000026a: JUMPDEST
0000026b: PUSH1 0x40
0000026d: MLOAD
0000026e: DUP1
0000026f: DUP3
00000270: DUP2
00000271: MSTORE
00000272: PUSH1 0x20
00000274: ADD
00000275: SWAP2
00000276: POP
00000277: POP
00000278: PUSH1 0x40
0000027a: MLOAD
0000027b: DUP1
0000027c: SWAP2
0000027d: SUB
0000027e: SWAP1
0000027f: RETURN
00000280: JUMPDEST
00000281: PUSH2 0x028d
00000284: PUSH1 0x04
00000286: DUP1
00000287: POP
00000288: POP
00000289: PUSH2 0x0410
0000028c: JUMP
0000028d: JUMPDEST
0000028e: PUSH1 0x40
00000290: MLOAD
00000291: DUP1
00000292: DUP3
00000293: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002a8: AND
000002a9: DUP2
000002aa: MSTORE
000002ab: PUSH1 0x20
000002ad: ADD
000002ae: SWAP2
000002af: POP
000002b0: POP
000002b1: PUSH1 0x40
000002b3: MLOAD
000002b4: DUP1
000002b5: SWAP2
000002b6: SUB
000002b7: SWAP1
000002b8: RETURN
000002b9: JUMPDEST
000002ba: PUSH2 0x02c6
000002bd: PUSH1 0x04
000002bf: DUP1
000002c0: POP
000002c1: POP
000002c2: PUSH2 0x03fd
000002c5: JUMP
000002c6: JUMPDEST
000002c7: PUSH1 0x40
000002c9: MLOAD
000002ca: DUP1
000002cb: DUP3
000002cc: DUP2
000002cd: MSTORE
000002ce: PUSH1 0x20
000002d0: ADD
000002d1: SWAP2
000002d2: POP
000002d3: POP
000002d4: PUSH1 0x40
000002d6: MLOAD
000002d7: DUP1
000002d8: SWAP2
000002d9: SUB
000002da: SWAP1
000002db: RETURN
000002dc: JUMPDEST
000002dd: PUSH2 0x02fb
000002e0: PUSH1 0x04
000002e2: DUP1
000002e3: DUP1
000002e4: CALLDATALOAD
000002e5: SWAP1
000002e6: PUSH1 0x20
000002e8: ADD
000002e9: SWAP1
000002ea: SWAP2
000002eb: SWAP1
000002ec: DUP1
000002ed: CALLDATALOAD
000002ee: SWAP1
000002ef: PUSH1 0x20
000002f1: ADD
000002f2: SWAP1
000002f3: SWAP2
000002f4: SWAP1
000002f5: POP
000002f6: POP
000002f7: PUSH2 0x06bb
000002fa: JUMP
000002fb: JUMPDEST
000002fc: PUSH1 0x40
000002fe: MLOAD
000002ff: DUP1
00000300: DUP3
00000301: DUP2
00000302: MSTORE
00000303: PUSH1 0x20
00000305: ADD
00000306: SWAP2
00000307: POP
00000308: POP
00000309: PUSH1 0x40
0000030b: MLOAD
0000030c: DUP1
0000030d: SWAP2
0000030e: SUB
0000030f: SWAP1
00000310: RETURN

exec
/bin/bash -lc 'cast disassemble $(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json) | sed -n '520,860p'" in /tmp/codex-g936cym_
 succeeded in 0ms:
00000310: RETURN
00000311: JUMPDEST
00000312: PUSH2 0x0319
00000315: PUSH2 0x0a52
00000318: JUMP
00000319: JUMPDEST
0000031a: ISZERO
0000031b: PUSH2 0x03ad
0000031e: JUMPI
0000031f: DUP2
00000320: PUSH1 0x00
00000322: PUSH1 0x01
00000324: PUSH2 0x0100
00000327: EXP
00000328: DUP2
00000329: SLOAD
0000032a: DUP2
0000032b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000340: MUL
00000341: NOT
00000342: AND
00000343: SWAP1
00000344: DUP4
00000345: MUL
00000346: OR
00000347: SWAP1
00000348: SSTORE
00000349: POP
0000034a: DUP1
0000034b: PUSH1 0x00
0000034d: PUSH1 0x00
0000034f: PUSH2 0x0100
00000352: EXP
00000353: DUP2
00000354: SLOAD
00000355: DUP2
00000356: PUSH1 0xff
00000358: MUL
00000359: NOT
0000035a: AND
0000035b: SWAP1
0000035c: DUP4
0000035d: MUL
0000035e: OR
0000035f: SWAP1
00000360: SSTORE
00000361: POP
00000362: DUP1
00000363: DUP3
00000364: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000379: AND
0000037a: PUSH32 0xb96a5204da93e5d7ddd5b0c2616fd5f76322b9c383c5010b94fdc3df11b7be52
0000039b: PUSH1 0x40
0000039d: MLOAD
0000039e: DUP1
0000039f: SWAP1
000003a0: POP
000003a1: PUSH1 0x40
000003a3: MLOAD
000003a4: DUP1
000003a5: SWAP2
000003a6: SUB
000003a7: SWAP1
000003a8: LOG3
000003a9: PUSH2 0x03b2
000003ac: JUMP
000003ad: JUMPDEST
000003ae: PUSH2 0x0002
000003b1: JUMP
000003b2: JUMPDEST
000003b3: JUMPDEST
000003b4: POP
000003b5: POP
000003b6: JUMP
000003b7: JUMPDEST
000003b8: PUSH2 0x03bf
000003bb: PUSH2 0x0a52
000003be: JUMP
000003bf: JUMPDEST
000003c0: ISZERO
000003c1: PUSH2 0x03f4
000003c4: JUMPI
000003c5: DUP1
000003c6: PUSH1 0x01
000003c8: PUSH1 0x00
000003ca: PUSH2 0x0100
000003cd: EXP
000003ce: DUP2
000003cf: SLOAD
000003d0: DUP2
000003d1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003e6: MUL
000003e7: NOT
000003e8: AND
000003e9: SWAP1
000003ea: DUP4
000003eb: MUL
000003ec: OR
000003ed: SWAP1
000003ee: SSTORE
000003ef: POP
000003f0: PUSH2 0x03f9
000003f3: JUMP
000003f4: JUMPDEST
000003f5: PUSH2 0x0002
000003f8: JUMP
000003f9: JUMPDEST
000003fa: JUMPDEST
000003fb: POP
000003fc: JUMP
000003fd: JUMPDEST
000003fe: PUSH1 0x00
00000400: PUSH1 0x00
00000402: SWAP1
00000403: SLOAD
00000404: SWAP1
00000405: PUSH2 0x0100
00000408: EXP
00000409: SWAP1
0000040a: DIV
0000040b: PUSH1 0xff
0000040d: AND
0000040e: DUP2
0000040f: JUMP
00000410: JUMPDEST
00000411: PUSH1 0x00
00000413: PUSH1 0x01
00000415: SWAP1
00000416: SLOAD
00000417: SWAP1
00000418: PUSH2 0x0100
0000041b: EXP
0000041c: SWAP1
0000041d: DIV
0000041e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000433: AND
00000434: DUP2
00000435: JUMP
00000436: JUMPDEST
00000437: PUSH1 0x00
00000439: PUSH1 0x01
0000043b: PUSH1 0x00
0000043d: SWAP1
0000043e: SLOAD
0000043f: SWAP1
00000440: PUSH2 0x0100
00000443: EXP
00000444: SWAP1
00000445: DIV
00000446: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000045b: AND
0000045c: SWAP1
0000045d: POP
0000045e: PUSH2 0x0462
00000461: JUMP
00000462: JUMPDEST
00000463: SWAP1
00000464: JUMP
00000465: JUMPDEST
00000466: PUSH2 0x046d
00000469: PUSH2 0x0a52
0000046c: JUMP
0000046d: JUMPDEST
0000046e: ISZERO
0000046f: PUSH2 0x04dc
00000472: JUMPI
00000473: DUP2
00000474: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000489: AND
0000048a: DUP4
0000048b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004a0: AND
000004a1: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
000004c2: DUP4
000004c3: PUSH1 0x40
000004c5: MLOAD
000004c6: DUP1
000004c7: DUP3
000004c8: DUP2
000004c9: MSTORE
000004ca: PUSH1 0x20
000004cc: ADD
000004cd: SWAP2
000004ce: POP
000004cf: POP
000004d0: PUSH1 0x40
000004d2: MLOAD
000004d3: DUP1
000004d4: SWAP2
000004d5: SUB
000004d6: SWAP1
000004d7: LOG3
000004d8: PUSH2 0x04e1
000004db: JUMP
000004dc: JUMPDEST
000004dd: PUSH2 0x0002
000004e0: JUMP
000004e1: JUMPDEST
000004e2: JUMPDEST
000004e3: POP
000004e4: POP
000004e5: POP
000004e6: JUMP
000004e7: JUMPDEST
000004e8: PUSH2 0x04ef
000004eb: PUSH2 0x0a52
000004ee: JUMP
000004ef: JUMPDEST
000004f0: ISZERO
000004f1: PUSH2 0x055e
000004f4: JUMPI
000004f5: DUP2
000004f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000050b: AND
0000050c: DUP4
0000050d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000522: AND
00000523: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00000544: DUP4
00000545: PUSH1 0x40
00000547: MLOAD
00000548: DUP1
00000549: DUP3
0000054a: DUP2
0000054b: MSTORE
0000054c: PUSH1 0x20
0000054e: ADD
0000054f: SWAP2
00000550: POP
00000551: POP
00000552: PUSH1 0x40
00000554: MLOAD
00000555: DUP1
00000556: SWAP2
00000557: SUB
00000558: SWAP1
00000559: LOG3
0000055a: PUSH2 0x0563
0000055d: JUMP
0000055e: JUMPDEST
0000055f: PUSH2 0x0002
00000562: JUMP
00000563: JUMPDEST
00000564: JUMPDEST
00000565: POP
00000566: POP
00000567: POP
00000568: JUMP
00000569: JUMPDEST
0000056a: PUSH1 0x00
0000056c: PUSH1 0x01
0000056e: PUSH1 0x00
00000570: SWAP1
00000571: SLOAD
00000572: SWAP1
00000573: PUSH2 0x0100
00000576: EXP
00000577: SWAP1
00000578: DIV
00000579: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000058e: AND
0000058f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005a4: AND
000005a5: PUSH4 0x18160ddd
000005aa: PUSH1 0x40
000005ac: MLOAD
000005ad: DUP2
000005ae: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000005cc: MUL
000005cd: DUP2
000005ce: MSTORE
000005cf: PUSH1 0x04
000005d1: ADD
000005d2: DUP1
000005d3: SWAP1
000005d4: POP
000005d5: PUSH1 0x20
000005d7: PUSH1 0x40
000005d9: MLOAD
000005da: DUP1
000005db: DUP4
000005dc: SUB
000005dd: DUP2
000005de: PUSH1 0x00
000005e0: DUP8
000005e1: PUSH2 0x61da
000005e4: GAS
000005e5: SUB
000005e6: CALL
000005e7: ISZERO
000005e8: PUSH2 0x0002
000005eb: JUMPI
000005ec: POP
000005ed: POP
000005ee: POP
000005ef: PUSH1 0x40
000005f1: MLOAD
000005f2: DUP1
000005f3: MLOAD
000005f4: SWAP1
000005f5: PUSH1 0x20
000005f7: ADD
000005f8: POP
000005f9: SWAP1
000005fa: POP
000005fb: PUSH2 0x05ff
000005fe: JUMP
000005ff: JUMPDEST
00000600: SWAP1
00000601: JUMP
00000602: JUMPDEST
00000603: PUSH1 0x00
00000605: PUSH1 0x01
00000607: PUSH1 0x00
00000609: SWAP1
0000060a: SLOAD
0000060b: SWAP1
0000060c: PUSH2 0x0100
0000060f: EXP
00000610: SWAP1
00000611: DIV
00000612: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000627: AND
00000628: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000063d: AND
0000063e: PUSH4 0x70a08231
00000643: DUP4
00000644: PUSH1 0x40
00000646: MLOAD
00000647: DUP3
00000648: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000666: MUL
00000667: DUP2
00000668: MSTORE
00000669: PUSH1 0x04
0000066b: ADD
0000066c: DUP1
0000066d: DUP3
0000066e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000683: AND
00000684: DUP2

exec
/bin/bash -lc 'cast disassemble $(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json) | sed -n '860,1220p'" in /tmp/codex-g936cym_
 succeeded in 0ms:
00000684: DUP2
00000685: MSTORE
00000686: PUSH1 0x20
00000688: ADD
00000689: SWAP2
0000068a: POP
0000068b: POP
0000068c: PUSH1 0x20
0000068e: PUSH1 0x40
00000690: MLOAD
00000691: DUP1
00000692: DUP4
00000693: SUB
00000694: DUP2
00000695: PUSH1 0x00
00000697: DUP8
00000698: PUSH2 0x61da
0000069b: GAS
0000069c: SUB
0000069d: CALL
0000069e: ISZERO
0000069f: PUSH2 0x0002
000006a2: JUMPI
000006a3: POP
000006a4: POP
000006a5: POP
000006a6: PUSH1 0x40
000006a8: MLOAD
000006a9: DUP1
000006aa: MLOAD
000006ab: SWAP1
000006ac: PUSH1 0x20
000006ae: ADD
000006af: POP
000006b0: SWAP1
000006b1: POP
000006b2: PUSH2 0x06b6
000006b5: JUMP
000006b6: JUMPDEST
000006b7: SWAP2
000006b8: SWAP1
000006b9: POP
000006ba: JUMP
000006bb: JUMPDEST
000006bc: PUSH1 0x00
000006be: PUSH1 0x01
000006c0: PUSH1 0x00
000006c2: SWAP1
000006c3: SLOAD
000006c4: SWAP1
000006c5: PUSH2 0x0100
000006c8: EXP
000006c9: SWAP1
000006ca: DIV
000006cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006e0: AND
000006e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006f6: AND
000006f7: PUSH4 0xdd62ed3e
000006fc: DUP5
000006fd: DUP5
000006fe: PUSH1 0x40
00000700: MLOAD
00000701: DUP4
00000702: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000720: MUL
00000721: DUP2
00000722: MSTORE
00000723: PUSH1 0x04
00000725: ADD
00000726: DUP1
00000727: DUP4
00000728: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000073d: AND
0000073e: DUP2
0000073f: MSTORE
00000740: PUSH1 0x20
00000742: ADD
00000743: DUP3
00000744: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000759: AND
0000075a: DUP2
0000075b: MSTORE
0000075c: PUSH1 0x20
0000075e: ADD
0000075f: SWAP3
00000760: POP
00000761: POP
00000762: POP
00000763: PUSH1 0x20
00000765: PUSH1 0x40
00000767: MLOAD
00000768: DUP1
00000769: DUP4
0000076a: SUB
0000076b: DUP2
0000076c: PUSH1 0x00
0000076e: DUP8
0000076f: PUSH2 0x61da
00000772: GAS
00000773: SUB
00000774: CALL
00000775: ISZERO
00000776: PUSH2 0x0002
00000779: JUMPI
0000077a: POP
0000077b: POP
0000077c: POP
0000077d: PUSH1 0x40
0000077f: MLOAD
00000780: DUP1
00000781: MLOAD
00000782: SWAP1
00000783: PUSH1 0x20
00000785: ADD
00000786: POP
00000787: SWAP1
00000788: POP
00000789: PUSH2 0x078d
0000078c: JUMP
0000078d: JUMPDEST
0000078e: SWAP3
0000078f: SWAP2
00000790: POP
00000791: POP
00000792: JUMP
00000793: JUMPDEST
00000794: PUSH1 0x00
00000796: PUSH1 0x01
00000798: PUSH1 0x00
0000079a: SWAP1
0000079b: SLOAD
0000079c: SWAP1
0000079d: PUSH2 0x0100
000007a0: EXP
000007a1: SWAP1
000007a2: DIV
000007a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007b8: AND
000007b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007ce: AND
000007cf: PUSH4 0xbeabacc8
000007d4: CALLER
000007d5: DUP6
000007d6: DUP6
000007d7: PUSH1 0x40
000007d9: MLOAD
000007da: DUP5
000007db: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000007f9: MUL
000007fa: DUP2
000007fb: MSTORE
000007fc: PUSH1 0x04
000007fe: ADD
000007ff: DUP1
00000800: DUP5
00000801: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000816: AND
00000817: DUP2
00000818: MSTORE
00000819: PUSH1 0x20
0000081b: ADD
0000081c: DUP4
0000081d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000832: AND
00000833: DUP2
00000834: MSTORE
00000835: PUSH1 0x20
00000837: ADD
00000838: DUP3
00000839: DUP2
0000083a: MSTORE
0000083b: PUSH1 0x20
0000083d: ADD
0000083e: SWAP4
0000083f: POP
00000840: POP
00000841: POP
00000842: POP
00000843: PUSH1 0x20
00000845: PUSH1 0x40
00000847: MLOAD
00000848: DUP1
00000849: DUP4
0000084a: SUB
0000084b: DUP2
0000084c: PUSH1 0x00
0000084e: DUP8
0000084f: PUSH2 0x61da
00000852: GAS
00000853: SUB
00000854: CALL
00000855: ISZERO
00000856: PUSH2 0x0002
00000859: JUMPI
0000085a: POP
0000085b: POP
0000085c: POP
0000085d: PUSH1 0x40
0000085f: MLOAD
00000860: DUP1
00000861: MLOAD
00000862: SWAP1
00000863: PUSH1 0x20
00000865: ADD
00000866: POP
00000867: SWAP1
00000868: POP
00000869: PUSH2 0x086d
0000086c: JUMP
0000086d: JUMPDEST
0000086e: SWAP3
0000086f: SWAP2
00000870: POP
00000871: POP
00000872: JUMP
00000873: JUMPDEST
00000874: PUSH1 0x00
00000876: PUSH1 0x01
00000878: PUSH1 0x00
0000087a: SWAP1
0000087b: SLOAD
0000087c: SWAP1
0000087d: PUSH2 0x0100
00000880: EXP
00000881: SWAP1
00000882: DIV
00000883: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000898: AND
00000899: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008ae: AND
000008af: PUSH4 0x15dacbea
000008b4: CALLER
000008b5: DUP7
000008b6: DUP7
000008b7: DUP7
000008b8: PUSH1 0x40
000008ba: MLOAD
000008bb: DUP6
000008bc: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000008da: MUL
000008db: DUP2
000008dc: MSTORE
000008dd: PUSH1 0x04
000008df: ADD
000008e0: DUP1
000008e1: DUP6
000008e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008f7: AND
000008f8: DUP2
000008f9: MSTORE
000008fa: PUSH1 0x20
000008fc: ADD
000008fd: DUP5
000008fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000913: AND
00000914: DUP2
00000915: MSTORE
00000916: PUSH1 0x20
00000918: ADD
00000919: DUP4
0000091a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000092f: AND
00000930: DUP2
00000931: MSTORE
00000932: PUSH1 0x20
00000934: ADD
00000935: DUP3
00000936: DUP2
00000937: MSTORE
00000938: PUSH1 0x20
0000093a: ADD
0000093b: SWAP5
0000093c: POP
0000093d: POP
0000093e: POP
0000093f: POP
00000940: POP
00000941: PUSH1 0x20
00000943: PUSH1 0x40
00000945: MLOAD
00000946: DUP1
00000947: DUP4
00000948: SUB
00000949: DUP2
0000094a: PUSH1 0x00
0000094c: DUP8
0000094d: PUSH2 0x61da
00000950: GAS
00000951: SUB
00000952: CALL
00000953: ISZERO
00000954: PUSH2 0x0002
00000957: JUMPI
00000958: POP
00000959: POP
0000095a: POP
0000095b: PUSH1 0x40
0000095d: MLOAD
0000095e: DUP1
0000095f: MLOAD
00000960: SWAP1
00000961: PUSH1 0x20
00000963: ADD
00000964: POP
00000965: SWAP1
00000966: POP
00000967: PUSH2 0x096b
0000096a: JUMP
0000096b: JUMPDEST
0000096c: SWAP4
0000096d: SWAP3
0000096e: POP
0000096f: POP
00000970: POP
00000971: JUMP
00000972: JUMPDEST
00000973: PUSH1 0x00
00000975: PUSH1 0x01
00000977: PUSH1 0x00
00000979: SWAP1
0000097a: SLOAD
0000097b: SWAP1
0000097c: PUSH2 0x0100
0000097f: EXP
00000980: SWAP1
00000981: DIV
00000982: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000997: AND
00000998: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009ad: AND
000009ae: PUSH4 0xe1f21c67
000009b3: CALLER
000009b4: DUP6
000009b5: DUP6
000009b6: PUSH1 0x40
000009b8: MLOAD
000009b9: DUP5
000009ba: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000009d8: MUL
000009d9: DUP2
000009da: MSTORE
000009db: PUSH1 0x04
000009dd: ADD
000009de: DUP1
000009df: DUP5
000009e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009f5: AND
000009f6: DUP2
000009f7: MSTORE
000009f8: PUSH1 0x20
000009fa: ADD
000009fb: DUP4
000009fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a11: AND
00000a12: DUP2
00000a13: MSTORE
00000a14: PUSH1 0x20
00000a16: ADD
00000a17: DUP3
00000a18: DUP2

exec
/bin/bash -lc 'cast disassemble $(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json) | sed -n '1220,1460p'" in /tmp/codex-g936cym_
 succeeded in 0ms:
00000a18: DUP2
00000a19: MSTORE
00000a1a: PUSH1 0x20
00000a1c: ADD
00000a1d: SWAP4
00000a1e: POP
00000a1f: POP
00000a20: POP
00000a21: POP
00000a22: PUSH1 0x20
00000a24: PUSH1 0x40
00000a26: MLOAD
00000a27: DUP1
00000a28: DUP4
00000a29: SUB
00000a2a: DUP2
00000a2b: PUSH1 0x00
00000a2d: DUP8
00000a2e: PUSH2 0x61da
00000a31: GAS
00000a32: SUB
00000a33: CALL
00000a34: ISZERO
00000a35: PUSH2 0x0002
00000a38: JUMPI
00000a39: POP
00000a3a: POP
00000a3b: POP
00000a3c: PUSH1 0x40
00000a3e: MLOAD
00000a3f: DUP1
00000a40: MLOAD
00000a41: SWAP1
00000a42: PUSH1 0x20
00000a44: ADD
00000a45: POP
00000a46: SWAP1
00000a47: POP
00000a48: PUSH2 0x0a4c
00000a4b: JUMP
00000a4c: JUMPDEST
00000a4d: SWAP3
00000a4e: SWAP2
00000a4f: POP
00000a50: POP
00000a51: JUMP
00000a52: JUMPDEST
00000a53: PUSH1 0x00
00000a55: PUSH1 0x00
00000a57: PUSH1 0x00
00000a59: PUSH1 0x00
00000a5b: SWAP1
00000a5c: SLOAD
00000a5d: SWAP1
00000a5e: PUSH2 0x0100
00000a61: EXP
00000a62: SWAP1
00000a63: DIV
00000a64: PUSH1 0xff
00000a66: AND
00000a67: EQ
00000a68: ISZERO
00000a69: PUSH2 0x0ac4
00000a6c: JUMPI
00000a6d: PUSH1 0x00
00000a6f: PUSH1 0x01
00000a71: SWAP1
00000a72: SLOAD
00000a73: SWAP1
00000a74: PUSH2 0x0100
00000a77: EXP
00000a78: SWAP1
00000a79: DIV
00000a7a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a8f: AND
00000a90: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000aa5: AND
00000aa6: CALLER
00000aa7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000abc: AND
00000abd: EQ
00000abe: SWAP1
00000abf: POP
00000ac0: PUSH2 0x0bdd
00000ac3: JUMP
00000ac4: JUMPDEST
00000ac5: PUSH1 0x01
00000ac7: PUSH1 0x00
00000ac9: PUSH1 0x00
00000acb: SWAP1
00000acc: SLOAD
00000acd: SWAP1
00000ace: PUSH2 0x0100
00000ad1: EXP
00000ad2: SWAP1
00000ad3: DIV
00000ad4: PUSH1 0xff
00000ad6: AND
00000ad7: EQ
00000ad8: ISZERO
00000ad9: PUSH2 0x0bd8
00000adc: JUMPI
00000add: PUSH1 0x00
00000adf: PUSH1 0x01
00000ae1: SWAP1
00000ae2: SLOAD
00000ae3: SWAP1
00000ae4: PUSH2 0x0100
00000ae7: EXP
00000ae8: SWAP1
00000ae9: DIV
00000aea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000aff: AND
00000b00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b15: AND
00000b16: PUSH4 0xb7009613
00000b1b: CALLER
00000b1c: ADDRESS
00000b1d: PUSH1 0x00
00000b1f: CALLDATALOAD
00000b20: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000b41: AND
00000b42: PUSH1 0x40
00000b44: MLOAD
00000b45: DUP5
00000b46: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000b64: MUL
00000b65: DUP2
00000b66: MSTORE
00000b67: PUSH1 0x04
00000b69: ADD
00000b6a: DUP1
00000b6b: DUP5
00000b6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b81: AND
00000b82: DUP2
00000b83: MSTORE
00000b84: PUSH1 0x20
00000b86: ADD
00000b87: DUP4
00000b88: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b9d: AND
00000b9e: DUP2
00000b9f: MSTORE
00000ba0: PUSH1 0x20
00000ba2: ADD
00000ba3: DUP3
00000ba4: DUP2
00000ba5: MSTORE
00000ba6: PUSH1 0x20
00000ba8: ADD
00000ba9: SWAP4
00000baa: POP
00000bab: POP
00000bac: POP
00000bad: POP
00000bae: PUSH1 0x20
00000bb0: PUSH1 0x40
00000bb2: MLOAD
00000bb3: DUP1
00000bb4: DUP4
00000bb5: SUB
00000bb6: DUP2
00000bb7: PUSH1 0x00
00000bb9: DUP8
00000bba: PUSH2 0x61da
00000bbd: GAS
00000bbe: SUB
00000bbf: CALL
00000bc0: ISZERO
00000bc1: PUSH2 0x0002
00000bc4: JUMPI
00000bc5: POP
00000bc6: POP
00000bc7: POP
00000bc8: PUSH1 0x40
00000bca: MLOAD
00000bcb: DUP1
00000bcc: MLOAD
00000bcd: SWAP1
00000bce: PUSH1 0x20
00000bd0: ADD
00000bd1: POP
00000bd2: SWAP1
00000bd3: POP
00000bd4: PUSH2 0x0bdd
00000bd7: JUMP
00000bd8: JUMPDEST
00000bd9: PUSH2 0x0002
00000bdc: JUMP
00000bdd: JUMPDEST
00000bde: SWAP1
00000bdf: JUMP


exec
/bin/bash -lc "cast sig 'canCall(address,address,bytes4)'" in /tmp/codex-g936cym_
 succeeded in 0ms:
0xb7009613

exec
/bin/bash -lc 'cast disassemble $(jq -r '"'.artifact.runtime_bytecode.full' BYTECODE_BUNDLE.json) | sed -n '980,1100p'" in /tmp/codex-g936cym_
 succeeded in 0ms:
0000078d: JUMPDEST
0000078e: SWAP3
0000078f: SWAP2
00000790: POP
00000791: POP
00000792: JUMP
00000793: JUMPDEST
00000794: PUSH1 0x00
00000796: PUSH1 0x01
00000798: PUSH1 0x00
0000079a: SWAP1
0000079b: SLOAD
0000079c: SWAP1
0000079d: PUSH2 0x0100
000007a0: EXP
000007a1: SWAP1
000007a2: DIV
000007a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007b8: AND
000007b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007ce: AND
000007cf: PUSH4 0xbeabacc8
000007d4: CALLER
000007d5: DUP6
000007d6: DUP6
000007d7: PUSH1 0x40
000007d9: MLOAD
000007da: DUP5
000007db: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000007f9: MUL
000007fa: DUP2
000007fb: MSTORE
000007fc: PUSH1 0x04
000007fe: ADD
000007ff: DUP1
00000800: DUP5
00000801: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000816: AND
00000817: DUP2
00000818: MSTORE
00000819: PUSH1 0x20
0000081b: ADD
0000081c: DUP4
0000081d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000832: AND
00000833: DUP2
00000834: MSTORE
00000835: PUSH1 0x20
00000837: ADD
00000838: DUP3
00000839: DUP2
0000083a: MSTORE
0000083b: PUSH1 0x20
0000083d: ADD
0000083e: SWAP4
0000083f: POP
00000840: POP
00000841: POP
00000842: POP
00000843: PUSH1 0x20
00000845: PUSH1 0x40
00000847: MLOAD
00000848: DUP1
00000849: DUP4
0000084a: SUB
0000084b: DUP2
0000084c: PUSH1 0x00
0000084e: DUP8
0000084f: PUSH2 0x61da
00000852: GAS
00000853: SUB
00000854: CALL
00000855: ISZERO
00000856: PUSH2 0x0002
00000859: JUMPI
0000085a: POP
0000085b: POP
0000085c: POP
0000085d: PUSH1 0x40
0000085f: MLOAD
00000860: DUP1
00000861: MLOAD
00000862: SWAP1
00000863: PUSH1 0x20
00000865: ADD
00000866: POP
00000867: SWAP1
00000868: POP
00000869: PUSH2 0x086d
0000086c: JUMP
0000086d: JUMPDEST
0000086e: SWAP3
0000086f: SWAP2
00000870: POP
00000871: POP
00000872: JUMP
00000873: JUMPDEST
00000874: PUSH1 0x00
00000876: PUSH1 0x01
00000878: PUSH1 0x00
0000087a: SWAP1
0000087b: SLOAD
0000087c: SWAP1
0000087d: PUSH2 0x0100
00000880: EXP
00000881: SWAP1
00000882: DIV
00000883: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000898: AND
00000899: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008ae: AND
000008af: PUSH4 0x15dacbea
000008b4: CALLER
000008b5: DUP7
000008b6: DUP7
000008b7: DUP7
000008b8: PUSH1 0x40
000008ba: MLOAD
000008bb: DUP6
000008bc: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000008da: MUL

exec
js_repl in /tmp/codex-g936cym_
 succeeded in 145ms:
00 PUSH1 0x00           ["arg_to","arg_amount","ret_pc","0x00"]
01 PUSH1 0x01           ["arg_to","arg_amount","ret_pc","0x00","0x01"]
02 PUSH1 0x00           ["arg_to","arg_amount","ret_pc","0x00","0x01","0x00"]
03 SWAP1                ["arg_to","arg_amount","ret_pc","0x00","0x00","0x01"]
04 SLOAD                ["arg_to","arg_amount","ret_pc","0x00","0x00","s[0x01]"]
05 SWAP1                ["arg_to","arg_amount","ret_pc","0x00","s[0x01]","0x00"]
06 PUSH2 0x0100         ["arg_to","arg_amount","ret_pc","0x00","s[0x01]","0x00","0x0100"]
07 EXP                  ["arg_to","arg_amount","ret_pc","0x00","s[0x01]","(0x00**0x0100)"]
08 SWAP1                ["arg_to","arg_amount","ret_pc","0x00","(0x00**0x0100)","s[0x01]"]
09 DIV                  ["arg_to","arg_amount","ret_pc","0x00","((0x00**0x0100)/s[0x01])"]
10 PUSH20 0xffffffffffffffffffffffffffffffffffffffff ["arg_to","arg_amount","ret_pc","0x00","((0x00**0x0100)/s[0x01])","0xffffffffffffffffffffffffffffffffffffffff"]
11 AND                  ["arg_to","arg_amount","ret_pc","0x00","(((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)"]
12 PUSH20 0xffffffffffffffffffffffffffffffffffffffff ["arg_to","arg_amount","ret_pc","0x00","(((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)","0xffffffffffffffffffffffffffffffffffffffff"]
13 AND                  ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)"]
14 PUSH4 0xbeabacc8     ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8"]
15 CALLER               ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller"]
16 DUP6                 ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount"]
17 DUP6                 ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc"]
18 PUSH1 0x40           ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","0x40"]
19 MLOAD                ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","freeptr"]
20 DUP5                 ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","freeptr","0xbeabacc8"]
21 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","freeptr","0xbeabacc8","0x0100000000000000000000000000000000000000000000000000000000"]
22 MUL                  ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","freeptr","(0xbeabacc8*0x0100000000000000000000000000000000000000000000000000000000)"]
23 DUP2                 ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","freeptr","(0xbeabacc8*0x0100000000000000000000000000000000000000000000000000000000)","freeptr"]
24 MSTORE               ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","freeptr"]
25 PUSH1 0x04           ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","freeptr","0x04"]
26 ADD                  ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)"]
27 DUP1                 ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","(freeptr+0x04)"]
28 DUP5                 ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","(freeptr+0x04)","caller"]
29 PUSH20 0xffffffffffffffffffffffffffffffffffffffff ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","(freeptr+0x04)","caller","0xffffffffffffffffffffffffffffffffffffffff"]
30 AND                  ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","(freeptr+0x04)","(caller&0xffffffffffffffffffffffffffffffffffffffff)"]
31 DUP2                 ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","(freeptr+0x04)","(caller&0xffffffffffffffffffffffffffffffffffffffff)","(freeptr+0x04)"]
32 MSTORE               ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","(freeptr+0x04)"]
33 PUSH1 0x20           ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","(freeptr+0x04)","0x20"]
34 ADD                  ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","((freeptr+0x04)+0x20)"]
35 DUP4                 ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","((freeptr+0x04)+0x20)","arg_amount"]
36 PUSH20 0xffffffffffffffffffffffffffffffffffffffff ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","((freeptr+0x04)+0x20)","arg_amount","0xffffffffffffffffffffffffffffffffffffffff"]
37 AND                  ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","((freeptr+0x04)+0x20)","(arg_amount&0xffffffffffffffffffffffffffffffffffffffff)"]
38 DUP2                 ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","((freeptr+0x04)+0x20)","(arg_amount&0xffffffffffffffffffffffffffffffffffffffff)","((freeptr+0x04)+0x20)"]
39 MSTORE               ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","((freeptr+0x04)+0x20)"]
40 PUSH1 0x20           ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","((freeptr+0x04)+0x20)","0x20"]
41 ADD                  ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","(((freeptr+0x04)+0x20)+0x20)"]
42 DUP3                 ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","(((freeptr+0x04)+0x20)+0x20)","ret_pc"]
43 DUP2                 ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","(((freeptr+0x04)+0x20)+0x20)","ret_pc","(((freeptr+0x04)+0x20)+0x20)"]
44 MSTORE               ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","(((freeptr+0x04)+0x20)+0x20)"]
45 PUSH1 0x20           ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","(((freeptr+0x04)+0x20)+0x20)","0x20"]
46 ADD                  ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","caller","arg_amount","ret_pc","(freeptr+0x04)","((((freeptr+0x04)+0x20)+0x20)+0x20)"]
47 SWAP4                ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)","arg_amount","ret_pc","(freeptr+0x04)","caller"]
48 POP                  ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)","arg_amount","ret_pc","(freeptr+0x04)"]
49 POP                  ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)","arg_amount","ret_pc"]
50 POP                  ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)","arg_amount"]
51 POP                  ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)"]
52 PUSH1 0x20           ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)","0x20"]
53 PUSH1 0x40           ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)","0x20","0x40"]
54 MLOAD                ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)","0x20","freeptr"]
55 DUP1                 ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)","0x20","freeptr","freeptr"]
56 DUP4                 ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)","0x20","freeptr","freeptr","((((freeptr+0x04)+0x20)+0x20)+0x20)"]
57 SUB                  ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)","0x20","freeptr","(freeptr-((((freeptr+0x04)+0x20)+0x20)+0x20))"]
58 DUP2                 ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)","0x20","freeptr","(freeptr-((((freeptr+0x04)+0x20)+0x20)+0x20))","freeptr"]
59 PUSH1 0x00           ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)","0x20","freeptr","(freeptr-((((freeptr+0x04)+0x20)+0x20)+0x20))","freeptr","0x00"]
60 DUP8                 ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)","0x20","freeptr","(freeptr-((((freeptr+0x04)+0x20)+0x20)+0x20))","freeptr","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)"]
61 PUSH2 0x61da         ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)","0x20","freeptr","(freeptr-((((freeptr+0x04)+0x20)+0x20)+0x20))","freeptr","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0x61da"]
62 GAS                  ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)","0x20","freeptr","(freeptr-((((freeptr+0x04)+0x20)+0x20)+0x20))","freeptr","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0x61da","gas"]
63 SUB                  ["arg_to","arg_amount","ret_pc","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","0xbeabacc8","((((freeptr+0x04)+0x20)+0x20)+0x20)","0x20","freeptr","(freeptr-((((freeptr+0x04)+0x20)+0x20)+0x20))","freeptr","0x00","((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)","(0x61da-gas)"]
exec
js_repl in /tmp/codex-g936cym_
 succeeded in 23ms:
PUSH2 0x026a    ["calldata","0x026a"]
PUSH1 0x04      ["calldata","0x026a","0x04"]
DUP1            ["calldata","0x026a","0x04","0x04"]
DUP1            ["calldata","0x026a","0x04","0x04","0x04"]
CALLDATALOAD    ["calldata","0x026a","0x04","0x04","cd[0x04]"]
SWAP1           ["calldata","0x026a","0x04","cd[0x04]","0x04"]
PUSH1 0x20      ["calldata","0x026a","0x04","cd[0x04]","0x04","0x20"]
ADD             ["calldata","0x026a","0x04","cd[0x04]","(0x04+0x20)"]
SWAP1           ["calldata","0x026a","0x04","(0x04+0x20)","cd[0x04]"]
SWAP2           ["calldata","0x026a","cd[0x04]","(0x04+0x20)","0x04"]
SWAP1           ["calldata","0x026a","cd[0x04]","0x04","(0x04+0x20)"]
DUP1            ["calldata","0x026a","cd[0x04]","0x04","(0x04+0x20)","(0x04+0x20)"]
CALLDATALOAD    ["calldata","0x026a","cd[0x04]","0x04","(0x04+0x20)","cd[(0x04+0x20)]"]
SWAP1           ["calldata","0x026a","cd[0x04]","0x04","cd[(0x04+0x20)]","(0x04+0x20)"]
PUSH1 0x20      ["calldata","0x026a","cd[0x04]","0x04","cd[(0x04+0x20)]","(0x04+0x20)","0x20"]
ADD             ["calldata","0x026a","cd[0x04]","0x04","cd[(0x04+0x20)]","((0x04+0x20)+0x20)"]
SWAP1           ["calldata","0x026a","cd[0x04]","0x04","((0x04+0x20)+0x20)","cd[(0x04+0x20)]"]
SWAP2           ["calldata","0x026a","cd[0x04]","cd[(0x04+0x20)]","((0x04+0x20)+0x20)","0x04"]
SWAP1           ["calldata","0x026a","cd[0x04]","cd[(0x04+0x20)]","0x04","((0x04+0x20)+0x20)"]
POP             ["calldata","0x026a","cd[0x04]","cd[(0x04+0x20)]","0x04"]
POP             ["calldata","0x026a","cd[0x04]","cd[(0x04+0x20)]"]
PUSH2 0x0793    ["calldata","0x026a","cd[0x04]","cd[(0x04+0x20)]","0x0793"]
JUMP            ["calldata","0x026a","cd[0x04]","cd[(0x04+0x20)]","0x0793"]
exec
js_repl in /tmp/codex-g936cym_
 succeeded in 7ms:
Before CALL stack bottom->top: [
  'ret_pc',
  'to',
  'amount',
  '0x00',
  '((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)',
  '0xbeabacc8',
  '((((0x80+0x04)+0x20)+0x20)+0x20)',
  '0x20',
  '0x80',
  '(0x80-((((0x80+0x04)+0x20)+0x20)+0x20))',
  '0x80',
  '0x00',
  '((((0x00**0x0100)/s[0x01])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)',
  '(0x61da-gas)'
]
codex
{"no_findings":false,"summary":"Conservative bytecode-only review found two medium-confidence issues. The contract routes all ERC20-like operations through a mutable external backend stored in slot 0x1, and the same slot also anchors privileged authorization. Separately, every backend CALL decodes a 32-byte return value without returndata-length or code-existence checks, so misconfigured or non-compliant targets can produce false success or bogus reads. No delegatecall/proxy-slot write issue was evidenced in the runtime analyzed.","findings":[{"severity":"medium","category":"access_control","title":"Privileged authority is coupled to the live external backend","exploit_scenario":"Best-effort bytecode inference shows slot 0x1 is both the backend called by normal token entrypoints and the authority consulted by privileged paths. If that backend is malicious, upgraded unsafely, or compromised, a routine user call can trigger a callback from the backend into this wrapper; because the backend is also the trusted authority, the callback can pass auth and rewrite the backend/mode or emit arbitrary ERC20 events, permanently redirecting the wrapper or falsifying logs.","recommendation":"Separate authorization from the mutable backend address. Store owner/authority independently from the token backend, and do not let the currently called backend satisfy privileged checks. Adding explicit non-reentrant protection around privileged configuration/event-only functions would further reduce callback risk.","evidence":"Slot 0x1 is loaded as the CALL target for all externally exposed token-style wrappers (`pc:0x5e6`, `pc:0x69d`, `pc:0x774`, `pc:0x854`, `pc:0x952`, `pc:0xa33`, `pc:0xbbf`). The auth routine at `pc:0xa52` also uses slot 0x1: in one mode it accepts `msg.sender == slot1`, and in the other it calls `0xb7009613`, which matches `canCall(address,address,bytes4)`, on slot 0x1 (`pc:0xb16`). Privileged selectors `0x7e1db2a1` and `0x92eefe9b` then write slot 0x1 directly (`pc:0x348`, `pc:0x3ee`).","locations":["pc:0xa52","pc:0xb16","pc:0x348","pc:0x3ee","pc:0x5e6","pc:0x69d","pc:0x774","pc:0x854","pc:0x952","pc:0xa33","pc:0xbbf","selector:0x7e1db2a1","selector:0x92eefe9b"]},{"severity":"medium","category":"other","title":"Backend CALL return data is decoded without length or interface validation","exploit_scenario":"If slot 0x1 is set to an EOA, to this contract itself, or to a contract that returns short or empty data, the low-level CALL can still succeed. The wrapper then reads 32 bytes from memory and returns that as a bool/uint/address result. Because the code reuses the same memory region for call input and output, stale calldata words can be reported as successful `transfer`/`approve` results or as bogus balances/allowances/total supply.","recommendation":"Validate slot 0x1 before storing it: reject zero/EOA/self targets and require expected code/interface support. After each external CALL, check returndata length before decoding, and revert on empty or malformed responses instead of blindly `MLOAD`ing the output buffer.","evidence":"Every external backend invocation requests a fixed 32-byte output and immediately loads it from memory after CALL success, with no visible `RETURNDATASIZE` check and no code-existence check before the call (`pc:0x5ef`-`pc:0x5f3`, `pc:0x6a6`-`pc:0x6aa`, `pc:0x77d`-`pc:0x781`, `pc:0x85d`-`pc:0x861`, `pc:0x95b`-`pc:0x95f`, `pc:0xa3c`-`pc:0xa40`, `pc:0xbc8`-`pc:0xbcc`). The config setters inferred from selectors `0x7e1db2a1` and `0x92eefe9b` store arbitrary addresses into slot 0x1 without any visible contract/interface validation (`pc:0x348`, `pc:0x3ee`).","locations":["pc:0x5ef","pc:0x6a6","pc:0x77d","pc:0x85d","pc:0x95b","pc:0xa3c","pc:0xbc8","pc:0x348","pc:0x3ee","selector:0x7e1db2a1","selector:0x92eefe9b"]}]}
tokens used
96,597
Metadata
{
    "codex": {
        "ran_at": "2026-04-05T04:55:51.913787+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 6082,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Conservative bytecode-only review found two medium-confidence issues. The contract routes all ERC20-like operations through a mutable external backend stored in slot 0x1, and the same slot also anchors privileged authorization. Separately, every backend CALL decodes a 32-byte return value without returndata-length or code-existence checks, so misconfigured or non-compliant targets can produce false success or bogus reads. No delegatecall/proxy-slot write issue was evidenced in the runtime analyzed.",
    "raw_final": {
        "summary": "Conservative bytecode-only review found two medium-confidence issues. The contract routes all ERC20-like operations through a mutable external backend stored in slot 0x1, and the same slot also anchors privileged authorization. Separately, every backend CALL decodes a 32-byte return value without returndata-length or code-existence checks, so misconfigured or non-compliant targets can produce false success or bogus reads. No delegatecall/proxy-slot write issue was evidenced in the runtime analyzed.",
        "findings": [
            {
                "title": "Privileged authority is coupled to the live external backend",
                "category": "access_control",
                "evidence": "Slot 0x1 is loaded as the CALL target for all externally exposed token-style wrappers (`pc:0x5e6`, `pc:0x69d`, `pc:0x774`, `pc:0x854`, `pc:0x952`, `pc:0xa33`, `pc:0xbbf`). The auth routine at `pc:0xa52` also uses slot 0x1: in one mode it accepts `msg.sender == slot1`, and in the other it calls `0xb7009613`, which matches `canCall(address,address,bytes4)`, on slot 0x1 (`pc:0xb16`). Privileged selectors `0x7e1db2a1` and `0x92eefe9b` then write slot 0x1 directly (`pc:0x348`, `pc:0x3ee`).",
                "severity": "medium",
                "locations": [
                    "pc:0xa52",
                    "pc:0xb16",
                    "pc:0x348",
                    "pc:0x3ee",
                    "pc:0x5e6",
                    "pc:0x69d",
                    "pc:0x774",
                    "pc:0x854",
                    "pc:0x952",
                    "pc:0xa33",
                    "pc:0xbbf",
                    "selector:0x7e1db2a1",
                    "selector:0x92eefe9b"
                ],
                "recommendation": "Separate authorization from the mutable backend address. Store owner/authority independently from the token backend, and do not let the currently called backend satisfy privileged checks. Adding explicit non-reentrant protection around privileged configuration/event-only functions would further reduce callback risk.",
                "exploit_scenario": "Best-effort bytecode inference shows slot 0x1 is both the backend called by normal token entrypoints and the authority consulted by privileged paths. If that backend is malicious, upgraded unsafely, or compromised, a routine user call can trigger a callback from the backend into this wrapper; because the backend is also the trusted authority, the callback can pass auth and rewrite the backend/mode or emit arbitrary ERC20 events, permanently redirecting the wrapper or falsifying logs."
            },
            {
                "title": "Backend CALL return data is decoded without length or interface validation",
                "category": "other",
                "evidence": "Every external backend invocation requests a fixed 32-byte output and immediately loads it from memory after CALL success, with no visible `RETURNDATASIZE` check and no code-existence check before the call (`pc:0x5ef`-`pc:0x5f3`, `pc:0x6a6`-`pc:0x6aa`, `pc:0x77d`-`pc:0x781`, `pc:0x85d`-`pc:0x861`, `pc:0x95b`-`pc:0x95f`, `pc:0xa3c`-`pc:0xa40`, `pc:0xbc8`-`pc:0xbcc`). The config setters inferred from selectors `0x7e1db2a1` and `0x92eefe9b` store arbitrary addresses into slot 0x1 without any visible contract/interface validation (`pc:0x348`, `pc:0x3ee`).",
                "severity": "medium",
                "locations": [
                    "pc:0x5ef",
                    "pc:0x6a6",
                    "pc:0x77d",
                    "pc:0x85d",
                    "pc:0x95b",
                    "pc:0xa3c",
                    "pc:0xbc8",
                    "pc:0x348",
                    "pc:0x3ee",
                    "selector:0x7e1db2a1",
                    "selector:0x92eefe9b"
                ],
                "recommendation": "Validate slot 0x1 before storing it: reject zero/EOA/self targets and require expected code/interface support. After each external CALL, check returndata length before decoding, and revert on empty or malformed responses instead of blindly `MLOAD`ing the output buffer.",
                "exploit_scenario": "If slot 0x1 is set to an EOA, to this contract itself, or to a contract that returns short or empty data, the low-level CALL can still succeed. The wrapper then reads 32 bytes from memory and returns that as a bool/uint/address result. Because the code reuses the same memory region for call input and output, stale calldata words can be reported as successful `transfer`/`approve` results or as bogus balances/allowances/total supply."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
7
EXT*/BALANCE
0
Total opcodes
1412
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x00c1
0000000a: JUMPI
0000000b: PUSH1 0x00
0000000d: CALLDATALOAD
0000000e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002c: SWAP1
0000002d: DIV
0000002e: DUP1
0000002f: PUSH4 0x095ea7b3
00000034: EQ
00000035: PUSH2 0x00c3
00000038: JUMPI
00000039: DUP1
0000003a: PUSH4 0x18160ddd
0000003f: EQ
00000040: PUSH2 0x00f8
00000043: JUMPI
00000044: DUP1
00000045: PUSH4 0x23b872dd
0000004a: EQ
0000004b: PUSH2 0x011b
0000004e: JUMPI
0000004f: DUP1
00000050: PUSH4 0x23de6651
00000055: EQ
00000056: PUSH2 0x0159
00000059: JUMPI
0000005a: DUP1
0000005b: PUSH4 0x3018205f
00000060: EQ
00000061: PUSH2 0x0183
00000064: JUMPI
00000065: DUP1
00000066: PUSH4 0x5687f2b8
0000006b: EQ
0000006c: PUSH2 0x01bc
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0x70a08231
00000076: EQ
00000077: PUSH2 0x01e6
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0x7e1db2a1
00000081: EQ
00000082: PUSH2 0x0212
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0x92eefe9b
0000008c: EQ
0000008d: PUSH2 0x0233
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0xa9059cbb
00000097: EQ
00000098: PUSH2 0x024b
0000009b: JUMPI
0000009c: DUP1
0000009d: PUSH4 0xc2205ee1
000000a2: EQ
000000a3: PUSH2 0x0280
000000a6: JUMPI
000000a7: DUP1
000000a8: PUSH4 0xd551f601
000000ad: EQ
000000ae: PUSH2 0x02b9
000000b1: JUMPI
000000b2: DUP1
000000b3: PUSH4 0xdd62ed3e
000000b8: EQ
000000b9: PUSH2 0x02dc
000000bc: JUMPI
000000bd: PUSH2 0x00c1
000000c0: JUMP
000000c1: JUMPDEST
000000c2: STOP
000000c3: JUMPDEST
000000c4: PUSH2 0x00e2
000000c7: PUSH1 0x04
000000c9: DUP1
000000ca: DUP1
000000cb: CALLDATALOAD
000000cc: SWAP1
000000cd: PUSH1 0x20
000000cf: ADD
000000d0: SWAP1
000000d1: SWAP2
000000d2: SWAP1
000000d3: DUP1
000000d4: CALLDATALOAD
000000d5: SWAP1
000000d6: PUSH1 0x20
000000d8: ADD
000000d9: SWAP1
000000da: SWAP2
000000db: SWAP1
000000dc: POP
000000dd: POP
000000de: PUSH2 0x0972
000000e1: JUMP
000000e2: JUMPDEST
000000e3: PUSH1 0x40
000000e5: MLOAD
000000e6: DUP1
000000e7: DUP3
000000e8: DUP2
000000e9: MSTORE
000000ea: PUSH1 0x20
000000ec: ADD
000000ed: SWAP2
000000ee: POP
000000ef: POP
000000f0: PUSH1 0x40
000000f2: MLOAD
000000f3: DUP1
000000f4: SWAP2
000000f5: SUB
000000f6: SWAP1
000000f7: RETURN
000000f8: JUMPDEST
000000f9: PUSH2 0x0105
000000fc: PUSH1 0x04
000000fe: DUP1
000000ff: POP
00000100: POP
00000101: PUSH2 0x0569
00000104: JUMP
00000105: JUMPDEST
00000106: PUSH1 0x40
00000108: MLOAD
00000109: DUP1
0000010a: DUP3
0000010b: DUP2
0000010c: MSTORE
0000010d: PUSH1 0x20
0000010f: ADD
00000110: SWAP2
00000111: POP
00000112: POP
00000113: PUSH1 0x40
00000115: MLOAD
00000116: DUP1
00000117: SWAP2
00000118: SUB
00000119: SWAP1
0000011a: RETURN
0000011b: JUMPDEST
0000011c: PUSH2 0x0143
0000011f: PUSH1 0x04
00000121: DUP1
00000122: DUP1
00000123: CALLDATALOAD
00000124: SWAP1
00000125: PUSH1 0x20
00000127: ADD
00000128: SWAP1
00000129: SWAP2
0000012a: SWAP1
0000012b: DUP1
0000012c: CALLDATALOAD
0000012d: SWAP1
0000012e: PUSH1 0x20
00000130: ADD
00000131: SWAP1
00000132: SWAP2
00000133: SWAP1
00000134: DUP1
00000135: CALLDATALOAD
00000136: SWAP1
00000137: PUSH1 0x20
00000139: ADD
0000013a: SWAP1
0000013b: SWAP2
0000013c: SWAP1
0000013d: POP
0000013e: POP
0000013f: PUSH2 0x0873
00000142: JUMP
00000143: JUMPDEST
00000144: PUSH1 0x40
00000146: MLOAD
00000147: DUP1
00000148: DUP3
00000149: DUP2
0000014a: MSTORE
0000014b: PUSH1 0x20
0000014d: ADD
0000014e: SWAP2
0000014f: POP
00000150: POP
00000151: PUSH1 0x40
00000153: MLOAD
00000154: DUP1
00000155: SWAP2
00000156: SUB
00000157: SWAP1
00000158: RETURN
00000159: JUMPDEST
0000015a: PUSH2 0x0181
0000015d: PUSH1 0x04
0000015f: DUP1
00000160: DUP1
00000161: CALLDATALOAD
00000162: SWAP1
00000163: PUSH1 0x20
00000165: ADD
00000166: SWAP1
00000167: SWAP2
00000168: SWAP1
00000169: DUP1
0000016a: CALLDATALOAD
0000016b: SWAP1
0000016c: PUSH1 0x20
0000016e: ADD
0000016f: SWAP1
00000170: SWAP2
00000171: SWAP1
00000172: DUP1
00000173: CALLDATALOAD
00000174: SWAP1
00000175: PUSH1 0x20
00000177: ADD
00000178: SWAP1
00000179: SWAP2
0000017a: SWAP1
0000017b: POP
0000017c: POP
0000017d: PUSH2 0x0465
00000180: JUMP
00000181: JUMPDEST
00000182: STOP
00000183: JUMPDEST
00000184: PUSH2 0x0190
00000187: PUSH1 0x04
00000189: DUP1
0000018a: POP
0000018b: POP
0000018c: PUSH2 0x0436
0000018f: JUMP
00000190: JUMPDEST
00000191: PUSH1 0x40
00000193: MLOAD
00000194: DUP1
00000195: DUP3
00000196: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001ab: AND
000001ac: DUP2
000001ad: MSTORE
000001ae: PUSH1 0x20
000001b0: ADD
000001b1: SWAP2
000001b2: POP
000001b3: POP
000001b4: PUSH1 0x40
000001b6: MLOAD
000001b7: DUP1
000001b8: SWAP2
000001b9: SUB
000001ba: SWAP1
000001bb: RETURN
000001bc: JUMPDEST
000001bd: PUSH2 0x01e4
000001c0: PUSH1 0x04
000001c2: DUP1
000001c3: DUP1
000001c4: CALLDATALOAD
000001c5: SWAP1
000001c6: PUSH1 0x20
000001c8: ADD
000001c9: SWAP1
000001ca: SWAP2
000001cb: SWAP1
000001cc: DUP1
000001cd: CALLDATALOAD
000001ce: SWAP1
000001cf: PUSH1 0x20
000001d1: ADD
000001d2: SWAP1
000001d3: SWAP2
000001d4: SWAP1
000001d5: DUP1
000001d6: CALLDATALOAD
000001d7: SWAP1
000001d8: PUSH1 0x20
000001da: ADD
000001db: SWAP1
000001dc: SWAP2
000001dd: SWAP1
000001de: POP
000001df: POP
000001e0: PUSH2 0x04e7
000001e3: JUMP
000001e4: JUMPDEST
000001e5: STOP
000001e6: JUMPDEST
000001e7: PUSH2 0x01fc
000001ea: PUSH1 0x04
000001ec: DUP1
000001ed: DUP1
000001ee: CALLDATALOAD
000001ef: SWAP1
000001f0: PUSH1 0x20
000001f2: ADD
000001f3: SWAP1
000001f4: SWAP2
000001f5: SWAP1
000001f6: POP
000001f7: POP
000001f8: PUSH2 0x0602
000001fb: JUMP
000001fc: JUMPDEST
000001fd: PUSH1 0x40
000001ff: MLOAD
00000200: DUP1
00000201: DUP3
00000202: DUP2
00000203: MSTORE
00000204: PUSH1 0x20
00000206: ADD
00000207: SWAP2
00000208: POP
00000209: POP
0000020a: PUSH1 0x40
0000020c: MLOAD
0000020d: DUP1
0000020e: SWAP2
0000020f: SUB
00000210: SWAP1
00000211: RETURN
00000212: JUMPDEST
00000213: PUSH2 0x0231
00000216: PUSH1 0x04
00000218: DUP1
00000219: DUP1
0000021a: CALLDATALOAD
0000021b: SWAP1
0000021c: PUSH1 0x20
0000021e: ADD
0000021f: SWAP1
00000220: SWAP2
00000221: SWAP1
00000222: DUP1
00000223: CALLDATALOAD
00000224: SWAP1
00000225: PUSH1 0x20
00000227: ADD
00000228: SWAP1
00000229: SWAP2
0000022a: SWAP1
0000022b: POP
0000022c: POP
0000022d: PUSH2 0x0311
00000230: JUMP
00000231: JUMPDEST
00000232: STOP
00000233: JUMPDEST
00000234: PUSH2 0x0249
00000237: PUSH1 0x04
00000239: DUP1
0000023a: DUP1
0000023b: CALLDATALOAD
0000023c: SWAP1
0000023d: PUSH1 0x20
0000023f: ADD
00000240: SWAP1
00000241: SWAP2
00000242: SWAP1
00000243: POP
00000244: POP
00000245: PUSH2 0x03b7
00000248: JUMP
00000249: JUMPDEST
0000024a: STOP
0000024b: JUMPDEST
0000024c: PUSH2 0x026a
0000024f: PUSH1 0x04
00000251: DUP1
00000252: DUP1
00000253: CALLDATALOAD
00000254: SWAP1
00000255: PUSH1 0x20
00000257: ADD
00000258: SWAP1
00000259: SWAP2
0000025a: SWAP1
0000025b: DUP1
0000025c: CALLDATALOAD
0000025d: SWAP1
0000025e: PUSH1 0x20
00000260: ADD
00000261: SWAP1
00000262: SWAP2
00000263: SWAP1
00000264: POP
00000265: POP
00000266: PUSH2 0x0793
00000269: JUMP
0000026a: JUMPDEST
0000026b: PUSH1 0x40
0000026d: MLOAD
0000026e: DUP1
0000026f: DUP3
00000270: DUP2
00000271: MSTORE
00000272: PUSH1 0x20
00000274: ADD
00000275: SWAP2
00000276: POP
00000277: POP
00000278: PUSH1 0x40
0000027a: MLOAD
0000027b: DUP1
0000027c: SWAP2
0000027d: SUB
0000027e: SWAP1
0000027f: RETURN
00000280: JUMPDEST
00000281: PUSH2 0x028d
00000284: PUSH1 0x04
00000286: DUP1
00000287: POP
00000288: POP
00000289: PUSH2 0x0410
0000028c: JUMP
0000028d: JUMPDEST
0000028e: PUSH1 0x40
00000290: MLOAD
00000291: DUP1
00000292: DUP3
00000293: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002a8: AND
000002a9: DUP2
000002aa: MSTORE
000002ab: PUSH1 0x20
000002ad: ADD
000002ae: SWAP2
000002af: POP
000002b0: POP
000002b1: PUSH1 0x40
000002b3: MLOAD
000002b4: DUP1
000002b5: SWAP2
000002b6: SUB
000002b7: SWAP1
000002b8: RETURN
000002b9: JUMPDEST
000002ba: PUSH2 0x02c6
000002bd: PUSH1 0x04
000002bf: DUP1
000002c0: POP
000002c1: POP
000002c2: PUSH2 0x03fd
000002c5: JUMP
000002c6: JUMPDEST
000002c7: PUSH1 0x40
000002c9: MLOAD
000002ca: DUP1
000002cb: DUP3
000002cc: DUP2
000002cd: MSTORE
000002ce: PUSH1 0x20
000002d0: ADD
000002d1: SWAP2
000002d2: POP
000002d3: POP
000002d4: PUSH1 0x40
000002d6: MLOAD
000002d7: DUP1
000002d8: SWAP2
000002d9: SUB
000002da: SWAP1
000002db: RETURN
000002dc: JUMPDEST
000002dd: PUSH2 0x02fb
000002e0: PUSH1 0x04
000002e2: DUP1
000002e3: DUP1
000002e4: CALLDATALOAD
000002e5: SWAP1
000002e6: PUSH1 0x20
000002e8: ADD
000002e9: SWAP1
000002ea: SWAP2
000002eb: SWAP1
000002ec: DUP1
000002ed: CALLDATALOAD
000002ee: SWAP1
000002ef: PUSH1 0x20
000002f1: ADD
000002f2: SWAP1
000002f3: SWAP2
000002f4: SWAP1
000002f5: POP
000002f6: POP
000002f7: PUSH2 0x06bb
000002fa: JUMP
000002fb: JUMPDEST
000002fc: PUSH1 0x40
000002fe: MLOAD
000002ff: DUP1
00000300: DUP3
00000301: DUP2
00000302: MSTORE
00000303: PUSH1 0x20
00000305: ADD
00000306: SWAP2
00000307: POP
00000308: POP
00000309: PUSH1 0x40
0000030b: MLOAD
0000030c: DUP1
0000030d: SWAP2
0000030e: SUB
0000030f: SWAP1
00000310: RETURN
00000311: JUMPDEST
00000312: PUSH2 0x0319
00000315: PUSH2 0x0a52
00000318: JUMP
00000319: JUMPDEST
0000031a: ISZERO
0000031b: PUSH2 0x03ad
0000031e: JUMPI
0000031f: DUP2
00000320: PUSH1 0x00
00000322: PUSH1 0x01
00000324: PUSH2 0x0100
00000327: EXP
00000328: DUP2
00000329: SLOAD
0000032a: DUP2
0000032b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000340: MUL
00000341: NOT
00000342: AND
00000343: SWAP1
00000344: DUP4
00000345: MUL
00000346: OR
00000347: SWAP1
00000348: SSTORE
00000349: POP
0000034a: DUP1
0000034b: PUSH1 0x00
0000034d: PUSH1 0x00
0000034f: PUSH2 0x0100
00000352: EXP
00000353: DUP2
00000354: SLOAD
00000355: DUP2
00000356: PUSH1 0xff
00000358: MUL
00000359: NOT
0000035a: AND
0000035b: SWAP1
0000035c: DUP4
0000035d: MUL
0000035e: OR
0000035f: SWAP1
00000360: SSTORE
00000361: POP
00000362: DUP1
00000363: DUP3
00000364: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000379: AND
0000037a: PUSH32 0xb96a5204da93e5d7ddd5b0c2616fd5f76322b9c383c5010b94fdc3df11b7be52
0000039b: PUSH1 0x40
0000039d: MLOAD
0000039e: DUP1
0000039f: SWAP1
000003a0: POP
000003a1: PUSH1 0x40
000003a3: MLOAD
000003a4: DUP1
000003a5: SWAP2
000003a6: SUB
000003a7: SWAP1
000003a8: LOG3
000003a9: PUSH2 0x03b2
000003ac: JUMP
000003ad: JUMPDEST
000003ae: PUSH2 0x0002
000003b1: JUMP
000003b2: JUMPDEST
000003b3: JUMPDEST
000003b4: POP
000003b5: POP
000003b6: JUMP
000003b7: JUMPDEST
000003b8: PUSH2 0x03bf
000003bb: PUSH2 0x0a52
000003be: JUMP
000003bf: JUMPDEST
000003c0: ISZERO
000003c1: PUSH2 0x03f4
000003c4: JUMPI
000003c5: DUP1
000003c6: PUSH1 0x01
000003c8: PUSH1 0x00
000003ca: PUSH2 0x0100
000003cd: EXP
000003ce: DUP2
000003cf: SLOAD
000003d0: DUP2
000003d1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003e6: MUL
000003e7: NOT
000003e8: AND
000003e9: SWAP1
000003ea: DUP4
000003eb: MUL
000003ec: OR
000003ed: SWAP1
000003ee: SSTORE
000003ef: POP
000003f0: PUSH2 0x03f9
000003f3: JUMP
000003f4: JUMPDEST
000003f5: PUSH2 0x0002
000003f8: JUMP
000003f9: JUMPDEST
000003fa: JUMPDEST
000003fb: POP
000003fc: JUMP
000003fd: JUMPDEST
000003fe: PUSH1 0x00
00000400: PUSH1 0x00
00000402: SWAP1
00000403: SLOAD
00000404: SWAP1
00000405: PUSH2 0x0100
00000408: EXP
00000409: SWAP1
0000040a: DIV
0000040b: PUSH1 0xff
0000040d: AND
0000040e: DUP2
0000040f: JUMP
00000410: JUMPDEST
00000411: PUSH1 0x00
00000413: PUSH1 0x01
00000415: SWAP1
00000416: SLOAD
00000417: SWAP1
00000418: PUSH2 0x0100
0000041b: EXP
0000041c: SWAP1
0000041d: DIV
0000041e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000433: AND
00000434: DUP2
00000435: JUMP
00000436: JUMPDEST
00000437: PUSH1 0x00
00000439: PUSH1 0x01
0000043b: PUSH1 0x00
0000043d: SWAP1
0000043e: SLOAD
0000043f: SWAP1
00000440: PUSH2 0x0100
00000443: EXP
00000444: SWAP1
00000445: DIV
00000446: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000045b: AND
0000045c: SWAP1
0000045d: POP
0000045e: PUSH2 0x0462
00000461: JUMP
00000462: JUMPDEST
00000463: SWAP1
00000464: JUMP
00000465: JUMPDEST
00000466: PUSH2 0x046d
00000469: PUSH2 0x0a52
0000046c: JUMP
0000046d: JUMPDEST
0000046e: ISZERO
0000046f: PUSH2 0x04dc
00000472: JUMPI
00000473: DUP2
00000474: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000489: AND
0000048a: DUP4
0000048b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004a0: AND
000004a1: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
000004c2: DUP4
000004c3: PUSH1 0x40
000004c5: MLOAD
000004c6: DUP1
000004c7: DUP3
000004c8: DUP2
000004c9: MSTORE
000004ca: PUSH1 0x20
000004cc: ADD
000004cd: SWAP2
000004ce: POP
000004cf: POP
000004d0: PUSH1 0x40
000004d2: MLOAD
000004d3: DUP1
000004d4: SWAP2
000004d5: SUB
000004d6: SWAP1
000004d7: LOG3
000004d8: PUSH2 0x04e1
000004db: JUMP
000004dc: JUMPDEST
000004dd: PUSH2 0x0002
000004e0: JUMP
000004e1: JUMPDEST
000004e2: JUMPDEST
000004e3: POP
000004e4: POP
000004e5: POP
000004e6: JUMP
000004e7: JUMPDEST
000004e8: PUSH2 0x04ef
000004eb: PUSH2 0x0a52
000004ee: JUMP
000004ef: JUMPDEST
000004f0: ISZERO
000004f1: PUSH2 0x055e
000004f4: JUMPI
000004f5: DUP2
000004f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000050b: AND
0000050c: DUP4
0000050d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000522: AND
00000523: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00000544: DUP4
00000545: PUSH1 0x40
00000547: MLOAD
00000548: DUP1
00000549: DUP3
0000054a: DUP2
0000054b: MSTORE
0000054c: PUSH1 0x20
0000054e: ADD
0000054f: SWAP2
00000550: POP
00000551: POP
00000552: PUSH1 0x40
00000554: MLOAD
00000555: DUP1
00000556: SWAP2
00000557: SUB
00000558: SWAP1
00000559: LOG3
0000055a: PUSH2 0x0563
0000055d: JUMP
0000055e: JUMPDEST
0000055f: PUSH2 0x0002
00000562: JUMP
00000563: JUMPDEST
00000564: JUMPDEST
00000565: POP
00000566: POP
00000567: POP
00000568: JUMP
00000569: JUMPDEST
0000056a: PUSH1 0x00
0000056c: PUSH1 0x01
0000056e: PUSH1 0x00
00000570: SWAP1
00000571: SLOAD
00000572: SWAP1
00000573: PUSH2 0x0100
00000576: EXP
00000577: SWAP1
00000578: DIV
00000579: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000058e: AND
0000058f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005a4: AND
000005a5: PUSH4 0x18160ddd
000005aa: PUSH1 0x40
000005ac: MLOAD
000005ad: DUP2
000005ae: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000005cc: MUL
000005cd: DUP2
000005ce: MSTORE
000005cf: PUSH1 0x04
000005d1: ADD
000005d2: DUP1
000005d3: SWAP1
000005d4: POP
000005d5: PUSH1 0x20
000005d7: PUSH1 0x40
000005d9: MLOAD
000005da: DUP1
000005db: DUP4
000005dc: SUB
000005dd: DUP2
000005de: PUSH1 0x00
000005e0: DUP8
000005e1: PUSH2 0x61da
000005e4: GAS
000005e5: SUB
000005e6: CALL
000005e7: ISZERO
000005e8: PUSH2 0x0002
000005eb: JUMPI
000005ec: POP
000005ed: POP
000005ee: POP
000005ef: PUSH1 0x40
000005f1: MLOAD
000005f2: DUP1
000005f3: MLOAD
000005f4: SWAP1
000005f5: PUSH1 0x20
000005f7: ADD
000005f8: POP
000005f9: SWAP1
000005fa: POP
000005fb: PUSH2 0x05ff
000005fe: JUMP
000005ff: JUMPDEST
00000600: SWAP1
00000601: JUMP
00000602: JUMPDEST
00000603: PUSH1 0x00
00000605: PUSH1 0x01
00000607: PUSH1 0x00
00000609: SWAP1
0000060a: SLOAD
0000060b: SWAP1
0000060c: PUSH2 0x0100
0000060f: EXP
00000610: SWAP1
00000611: DIV
00000612: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000627: AND
00000628: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000063d: AND
0000063e: PUSH4 0x70a08231
00000643: DUP4
00000644: PUSH1 0x40
00000646: MLOAD
00000647: DUP3
00000648: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000666: MUL
00000667: DUP2
00000668: MSTORE
00000669: PUSH1 0x04
0000066b: ADD
0000066c: DUP1
0000066d: DUP3
0000066e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000683: AND
00000684: DUP2
00000685: MSTORE
00000686: PUSH1 0x20
00000688: ADD
00000689: SWAP2
0000068a: POP
0000068b: POP
0000068c: PUSH1 0x20
0000068e: PUSH1 0x40
00000690: MLOAD
00000691: DUP1
00000692: DUP4
00000693: SUB
00000694: DUP2
00000695: PUSH1 0x00
00000697: DUP8
00000698: PUSH2 0x61da
0000069b: GAS
0000069c: SUB
0000069d: CALL
0000069e: ISZERO
0000069f: PUSH2 0x0002
000006a2: JUMPI
000006a3: POP
000006a4: POP
000006a5: POP
000006a6: PUSH1 0x40
000006a8: MLOAD
000006a9: DUP1
000006aa: MLOAD
000006ab: SWAP1
000006ac: PUSH1 0x20
000006ae: ADD
000006af: POP
000006b0: SWAP1
000006b1: POP
000006b2: PUSH2 0x06b6
000006b5: JUMP
000006b6: JUMPDEST
000006b7: SWAP2
000006b8: SWAP1
000006b9: POP
000006ba: JUMP
000006bb: JUMPDEST
000006bc: PUSH1 0x00
000006be: PUSH1 0x01
000006c0: PUSH1 0x00
000006c2: SWAP1
000006c3: SLOAD
000006c4: SWAP1
000006c5: PUSH2 0x0100
000006c8: EXP
000006c9: SWAP1
000006ca: DIV
000006cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006e0: AND
000006e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006f6: AND
000006f7: PUSH4 0xdd62ed3e
000006fc: DUP5
000006fd: DUP5
000006fe: PUSH1 0x40
00000700: MLOAD
00000701: DUP4
00000702: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000720: MUL
00000721: DUP2
00000722: MSTORE
00000723: PUSH1 0x04
00000725: ADD
00000726: DUP1
00000727: DUP4
00000728: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000073d: AND
0000073e: DUP2
0000073f: MSTORE
00000740: PUSH1 0x20
00000742: ADD
00000743: DUP3
00000744: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000759: AND
0000075a: DUP2
0000075b: MSTORE
0000075c: PUSH1 0x20
0000075e: ADD
0000075f: SWAP3
00000760: POP
00000761: POP
00000762: POP
00000763: PUSH1 0x20
00000765: PUSH1 0x40
00000767: MLOAD
00000768: DUP1
00000769: DUP4
0000076a: SUB
0000076b: DUP2
0000076c: PUSH1 0x00
0000076e: DUP8
0000076f: PUSH2 0x61da
00000772: GAS
00000773: SUB
00000774: CALL
00000775: ISZERO
00000776: PUSH2 0x0002
00000779: JUMPI
0000077a: POP
0000077b: POP
0000077c: POP
0000077d: PUSH1 0x40
0000077f: MLOAD
00000780: DUP1
00000781: MLOAD
00000782: SWAP1
00000783: PUSH1 0x20
00000785: ADD
00000786: POP
00000787: SWAP1
00000788: POP
00000789: PUSH2 0x078d
0000078c: JUMP
0000078d: JUMPDEST
0000078e: SWAP3
0000078f: SWAP2
00000790: POP
00000791: POP
00000792: JUMP
00000793: JUMPDEST
00000794: PUSH1 0x00
00000796: PUSH1 0x01
00000798: PUSH1 0x00
0000079a: SWAP1
0000079b: SLOAD
0000079c: SWAP1
0000079d: PUSH2 0x0100
000007a0: EXP
000007a1: SWAP1
000007a2: DIV
000007a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007b8: AND
000007b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007ce: AND
000007cf: PUSH4 0xbeabacc8
000007d4: CALLER
000007d5: DUP6
000007d6: DUP6
000007d7: PUSH1 0x40
000007d9: MLOAD
000007da: DUP5
000007db: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000007f9: MUL
000007fa: DUP2
000007fb: MSTORE
000007fc: PUSH1 0x04
000007fe: ADD
000007ff: DUP1
00000800: DUP5
00000801: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000816: AND
00000817: DUP2
00000818: MSTORE
00000819: PUSH1 0x20
0000081b: ADD
0000081c: DUP4
0000081d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000832: AND
00000833: DUP2
00000834: MSTORE
00000835: PUSH1 0x20
00000837: ADD
00000838: DUP3
00000839: DUP2
0000083a: MSTORE
0000083b: PUSH1 0x20
0000083d: ADD
0000083e: SWAP4
0000083f: POP
00000840: POP
00000841: POP
00000842: POP
00000843: PUSH1 0x20
00000845: PUSH1 0x40
00000847: MLOAD
00000848: DUP1
00000849: DUP4
0000084a: SUB
0000084b: DUP2
0000084c: PUSH1 0x00
0000084e: DUP8
0000084f: PUSH2 0x61da
00000852: GAS
00000853: SUB
00000854: CALL
00000855: ISZERO
00000856: PUSH2 0x0002
00000859: JUMPI
0000085a: POP
0000085b: POP
0000085c: POP
0000085d: PUSH1 0x40
0000085f: MLOAD
00000860: DUP1
00000861: MLOAD
00000862: SWAP1
00000863: PUSH1 0x20
00000865: ADD
00000866: POP
00000867: SWAP1
00000868: POP
00000869: PUSH2 0x086d
0000086c: JUMP
0000086d: JUMPDEST
0000086e: SWAP3
0000086f: SWAP2
00000870: POP
00000871: POP
00000872: JUMP
00000873: JUMPDEST
00000874: PUSH1 0x00
00000876: PUSH1 0x01
00000878: PUSH1 0x00
0000087a: SWAP1
0000087b: SLOAD
0000087c: SWAP1
0000087d: PUSH2 0x0100
00000880: EXP
00000881: SWAP1
00000882: DIV
00000883: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000898: AND
00000899: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008ae: AND
000008af: PUSH4 0x15dacbea
000008b4: CALLER
000008b5: DUP7
000008b6: DUP7
000008b7: DUP7
000008b8: PUSH1 0x40
000008ba: MLOAD
000008bb: DUP6
000008bc: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000008da: MUL
000008db: DUP2
000008dc: MSTORE
000008dd: PUSH1 0x04
000008df: ADD
000008e0: DUP1
000008e1: DUP6
000008e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008f7: AND
000008f8: DUP2
000008f9: MSTORE
000008fa: PUSH1 0x20
000008fc: ADD
000008fd: DUP5
000008fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000913: AND
00000914: DUP2
00000915: MSTORE
00000916: PUSH1 0x20
00000918: ADD
00000919: DUP4
0000091a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000092f: AND
00000930: DUP2
00000931: MSTORE
00000932: PUSH1 0x20
00000934: ADD
00000935: DUP3
00000936: DUP2
00000937: MSTORE
00000938: PUSH1 0x20
0000093a: ADD
0000093b: SWAP5
0000093c: POP
0000093d: POP
0000093e: POP
0000093f: POP
00000940: POP
00000941: PUSH1 0x20
00000943: PUSH1 0x40
00000945: MLOAD
00000946: DUP1
00000947: DUP4
00000948: SUB
00000949: DUP2
0000094a: PUSH1 0x00
0000094c: DUP8
0000094d: PUSH2 0x61da
00000950: GAS
00000951: SUB
00000952: CALL
00000953: ISZERO
00000954: PUSH2 0x0002
00000957: JUMPI
00000958: POP
00000959: POP
0000095a: POP
0000095b: PUSH1 0x40
0000095d: MLOAD
0000095e: DUP1
0000095f: MLOAD
00000960: SWAP1
00000961: PUSH1 0x20
00000963: ADD
00000964: POP
00000965: SWAP1
00000966: POP
00000967: PUSH2 0x096b
0000096a: JUMP
0000096b: JUMPDEST
0000096c: SWAP4
0000096d: SWAP3
0000096e: POP
0000096f: POP
00000970: POP
00000971: JUMP
00000972: JUMPDEST
00000973: PUSH1 0x00
00000975: PUSH1 0x01
00000977: PUSH1 0x00
00000979: SWAP1
0000097a: SLOAD
0000097b: SWAP1
0000097c: PUSH2 0x0100
0000097f: EXP
00000980: SWAP1
00000981: DIV
00000982: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000997: AND
00000998: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009ad: AND
000009ae: PUSH4 0xe1f21c67
000009b3: CALLER
000009b4: DUP6
000009b5: DUP6
000009b6: PUSH1 0x40
000009b8: MLOAD
000009b9: DUP5
000009ba: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000009d8: MUL
000009d9: DUP2
000009da: MSTORE
000009db: PUSH1 0x04
000009dd: ADD
000009de: DUP1
000009df: DUP5
000009e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009f5: AND
000009f6: DUP2
000009f7: MSTORE
000009f8: PUSH1 0x20
000009fa: ADD
000009fb: DUP4
000009fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a11: AND
00000a12: DUP2
00000a13: MSTORE
00000a14: PUSH1 0x20
00000a16: ADD
00000a17: DUP3
00000a18: DUP2
00000a19: MSTORE
00000a1a: PUSH1 0x20
00000a1c: ADD
00000a1d: SWAP4
00000a1e: POP
00000a1f: POP
00000a20: POP
00000a21: POP
00000a22: PUSH1 0x20
00000a24: PUSH1 0x40
00000a26: MLOAD
00000a27: DUP1
00000a28: DUP4
00000a29: SUB
00000a2a: DUP2
00000a2b: PUSH1 0x00
00000a2d: DUP8
00000a2e: PUSH2 0x61da
00000a31: GAS
00000a32: SUB
00000a33: CALL
00000a34: ISZERO
00000a35: PUSH2 0x0002
00000a38: JUMPI
00000a39: POP
00000a3a: POP
00000a3b: POP
00000a3c: PUSH1 0x40
00000a3e: MLOAD
00000a3f: DUP1
00000a40: MLOAD
00000a41: SWAP1
00000a42: PUSH1 0x20
00000a44: ADD
00000a45: POP
00000a46: SWAP1
00000a47: POP
00000a48: PUSH2 0x0a4c
00000a4b: JUMP
00000a4c: JUMPDEST
00000a4d: SWAP3
00000a4e: SWAP2
00000a4f: POP
00000a50: POP
00000a51: JUMP
00000a52: JUMPDEST
00000a53: PUSH1 0x00
00000a55: PUSH1 0x00
00000a57: PUSH1 0x00
00000a59: PUSH1 0x00
00000a5b: SWAP1
00000a5c: SLOAD
00000a5d: SWAP1
00000a5e: PUSH2 0x0100
00000a61: EXP
00000a62: SWAP1
00000a63: DIV
00000a64: PUSH1 0xff
00000a66: AND
00000a67: EQ
00000a68: ISZERO
00000a69: PUSH2 0x0ac4
00000a6c: JUMPI
00000a6d: PUSH1 0x00
00000a6f: PUSH1 0x01
00000a71: SWAP1
00000a72: SLOAD
00000a73: SWAP1
00000a74: PUSH2 0x0100
00000a77: EXP
00000a78: SWAP1
00000a79: DIV
00000a7a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a8f: AND
00000a90: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000aa5: AND
00000aa6: CALLER
00000aa7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000abc: AND
00000abd: EQ
00000abe: SWAP1
00000abf: POP
00000ac0: PUSH2 0x0bdd
00000ac3: JUMP
00000ac4: JUMPDEST
00000ac5: PUSH1 0x01
00000ac7: PUSH1 0x00
00000ac9: PUSH1 0x00
00000acb: SWAP1
00000acc: SLOAD
00000acd: SWAP1
00000ace: PUSH2 0x0100
00000ad1: EXP
00000ad2: SWAP1
00000ad3: DIV
00000ad4: PUSH1 0xff
00000ad6: AND
00000ad7: EQ
00000ad8: ISZERO
00000ad9: PUSH2 0x0bd8
00000adc: JUMPI
00000add: PUSH1 0x00
00000adf: PUSH1 0x01
00000ae1: SWAP1
00000ae2: SLOAD
00000ae3: SWAP1
00000ae4: PUSH2 0x0100
00000ae7: EXP
00000ae8: SWAP1
00000ae9: DIV
00000aea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000aff: AND
00000b00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b15: AND
00000b16: PUSH4 0xb7009613
00000b1b: CALLER
00000b1c: ADDRESS
00000b1d: PUSH1 0x00
00000b1f: CALLDATALOAD
00000b20: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000b41: AND
00000b42: PUSH1 0x40
00000b44: MLOAD
00000b45: DUP5
00000b46: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000b64: MUL
00000b65: DUP2
00000b66: MSTORE
00000b67: PUSH1 0x04
00000b69: ADD
00000b6a: DUP1
00000b6b: DUP5
00000b6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b81: AND
00000b82: DUP2
00000b83: MSTORE
00000b84: PUSH1 0x20
00000b86: ADD
00000b87: DUP4
00000b88: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b9d: AND
00000b9e: DUP2
00000b9f: MSTORE
00000ba0: PUSH1 0x20
00000ba2: ADD
00000ba3: DUP3
00000ba4: DUP2
00000ba5: MSTORE
00000ba6: PUSH1 0x20
00000ba8: ADD
00000ba9: SWAP4
00000baa: POP
00000bab: POP
00000bac: POP
00000bad: POP
00000bae: PUSH1 0x20
00000bb0: PUSH1 0x40
00000bb2: MLOAD
00000bb3: DUP1
00000bb4: DUP4
00000bb5: SUB
00000bb6: DUP2
00000bb7: PUSH1 0x00
00000bb9: DUP8
00000bba: PUSH2 0x61da
00000bbd: GAS
00000bbe: SUB
00000bbf: CALL
00000bc0: ISZERO
00000bc1: PUSH2 0x0002
00000bc4: JUMPI
00000bc5: POP
00000bc6: POP
00000bc7: POP
00000bc8: PUSH1 0x40
00000bca: MLOAD
00000bcb: DUP1
00000bcc: MLOAD
00000bcd: SWAP1
00000bce: PUSH1 0x20
00000bd0: ADD
00000bd1: POP
00000bd2: SWAP1
00000bd3: POP
00000bd4: PUSH2 0x0bdd
00000bd7: JUMP
00000bd8: JUMPDEST
00000bd9: PUSH2 0x0002
00000bdc: JUMP
00000bdd: JUMPDEST
00000bde: SWAP1
00000bdf: 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
medium other detector Untrusted CALL target/value reachable 45 yes yes
view
trace_id: 0x4c6039fa534935c141f27cf080fee53f2bab6812c93dca9c53f00438c305071d
call_targets: 0x77a79a78c56504c6c1f7499852b6e1918a6d0ab4, 0x96477a1c968a0e64e53b7ed01d0d6e4a311945c2, 0xbaf42749e027bb38ce4f23ddae8c84da8a15488f, 0xc66ea802717bfb9833400264dd12c2bceaa34a6d
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x4c6039fa534935c141f27cf080fee53f2bab6812c93dca9c53f00438c305071d",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x77a79a78c56504c6c1f7499852b6e1918a6d0ab4",
        "0x96477a1c968a0e64e53b7ed01d0d6e4a311945c2",
        "0xbaf42749e027bb38ce4f23ddae8c84da8a15488f",
        "0xc66ea802717bfb9833400264dd12c2bceaa34a6d"
    ],
    "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": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23b872dd",
            "selector": "0x23b872dd",
            "calldata_variants": [
                "0x23b872dd",
                "0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23de6651",
            "selector": "0x23de6651",
            "calldata_variants": [
                "0x23de6651",
                "0x23de66510000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3018205f",
            "selector": "0x3018205f",
            "calldata_variants": [
                "0x3018205f",
                "0x3018205f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5687f2b8",
            "selector": "0x5687f2b8",
            "calldata_variants": [
                "0x5687f2b8",
                "0x5687f2b80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7e1db2a1",
            "selector": "0x7e1db2a1",
            "calldata_variants": [
                "0x7e1db2a1",
                "0x7e1db2a10000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1510,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1693,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1908,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 7,
    "guards_detected": [
        {
            "pc": 2726,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 7
}
medium other detector ETH value transfer possible 40 yes yes
view
trace_id: 0x4c6039fa534935c141f27cf080fee53f2bab6812c93dca9c53f00438c305071d
call_targets: 0x77a79a78c56504c6c1f7499852b6e1918a6d0ab4, 0x96477a1c968a0e64e53b7ed01d0d6e4a311945c2, 0xbaf42749e027bb38ce4f23ddae8c84da8a15488f, 0xc66ea802717bfb9833400264dd12c2bceaa34a6d
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x4c6039fa534935c141f27cf080fee53f2bab6812c93dca9c53f00438c305071d",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x77a79a78c56504c6c1f7499852b6e1918a6d0ab4",
        "0x96477a1c968a0e64e53b7ed01d0d6e4a311945c2",
        "0xbaf42749e027bb38ce4f23ddae8c84da8a15488f",
        "0xc66ea802717bfb9833400264dd12c2bceaa34a6d"
    ],
    "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": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23b872dd",
            "selector": "0x23b872dd",
            "calldata_variants": [
                "0x23b872dd",
                "0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23de6651",
            "selector": "0x23de6651",
            "calldata_variants": [
                "0x23de6651",
                "0x23de66510000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3018205f",
            "selector": "0x3018205f",
            "calldata_variants": [
                "0x3018205f",
                "0x3018205f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5687f2b8",
            "selector": "0x5687f2b8",
            "calldata_variants": [
                "0x5687f2b8",
                "0x5687f2b80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7e1db2a1",
            "selector": "0x7e1db2a1",
            "calldata_variants": [
                "0x7e1db2a1",
                "0x7e1db2a10000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1510,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1693,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1908,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 7,
    "guards_detected": [
        {
            "pc": 2726,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
medium access_control codex Privileged authority is coupled to the live external backend 75 no
view
evidence_json
{
    "evidence": "Slot 0x1 is loaded as the CALL target for all externally exposed token-style wrappers (`pc:0x5e6`, `pc:0x69d`, `pc:0x774`, `pc:0x854`, `pc:0x952`, `pc:0xa33`, `pc:0xbbf`). The auth routine at `pc:0xa52` also uses slot 0x1: in one mode it accepts `msg.sender == slot1`, and in the other it calls `0xb7009613`, which matches `canCall(address,address,bytes4)`, on slot 0x1 (`pc:0xb16`). Privileged selectors `0x7e1db2a1` and `0x92eefe9b` then write slot 0x1 directly (`pc:0x348`, `pc:0x3ee`).",
    "locations": [
        "pc:0xa52",
        "pc:0xb16",
        "pc:0x348",
        "pc:0x3ee",
        "pc:0x5e6",
        "pc:0x69d",
        "pc:0x774",
        "pc:0x854",
        "pc:0x952",
        "pc:0xa33",
        "pc:0xbbf",
        "selector:0x7e1db2a1",
        "selector:0x92eefe9b"
    ],
    "recommendation": "Separate authorization from the mutable backend address. Store owner/authority independently from the token backend, and do not let the currently called backend satisfy privileged checks. Adding explicit non-reentrant protection around privileged configuration/event-only functions would further reduce callback risk.",
    "exploit_scenario": "Best-effort bytecode inference shows slot 0x1 is both the backend called by normal token entrypoints and the authority consulted by privileged paths. If that backend is malicious, upgraded unsafely, or compromised, a routine user call can trigger a callback from the backend into this wrapper; because the backend is also the trusted authority, the callback can pass auth and rewrite the backend/mode or emit arbitrary ERC20 events, permanently redirecting the wrapper or falsifying logs."
}
medium other codex Backend CALL return data is decoded without length or interface validation 75 no
view
evidence_json
{
    "evidence": "Every external backend invocation requests a fixed 32-byte output and immediately loads it from memory after CALL success, with no visible `RETURNDATASIZE` check and no code-existence check before the call (`pc:0x5ef`-`pc:0x5f3`, `pc:0x6a6`-`pc:0x6aa`, `pc:0x77d`-`pc:0x781`, `pc:0x85d`-`pc:0x861`, `pc:0x95b`-`pc:0x95f`, `pc:0xa3c`-`pc:0xa40`, `pc:0xbc8`-`pc:0xbcc`). The config setters inferred from selectors `0x7e1db2a1` and `0x92eefe9b` store arbitrary addresses into slot 0x1 without any visible contract/interface validation (`pc:0x348`, `pc:0x3ee`).",
    "locations": [
        "pc:0x5ef",
        "pc:0x6a6",
        "pc:0x77d",
        "pc:0x85d",
        "pc:0x95b",
        "pc:0xa3c",
        "pc:0xbc8",
        "pc:0x348",
        "pc:0x3ee",
        "selector:0x7e1db2a1",
        "selector:0x92eefe9b"
    ],
    "recommendation": "Validate slot 0x1 before storing it: reject zero/EOA/self targets and require expected code/interface support. After each external CALL, check returndata length before decoding, and revert on empty or malformed responses instead of blindly `MLOAD`ing the output buffer.",
    "exploit_scenario": "If slot 0x1 is set to an EOA, to this contract itself, or to a contract that returns short or empty data, the low-level CALL can still succeed. The wrapper then reads 32 bytes from memory and returns that as a bool/uint/address result. Because the code reuses the same memory region for call input and output, stale calldata words can be reported as successful `transfer`/`approve` results or as bogus balances/allowances/total supply."
}