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

Analysis Run

019c0ea9-2c1f-712c-a452-775a4bc4cf33

complete
Chain ID
1
Address
Block Number
Created
Fri, Jan 30, 2026 11:28 AM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Bytecode only
Review Backing
Present
Best current signal
Untrusted DELEGATECALL target 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
42180 artifact.fetch complete 1 / 3 2 months ago
42181 proxy.resolve complete 1 / 3 2 months ago
42182 tool.cast_disasm complete 1 / 3 2 months ago
42183 analysis.bundle complete 1 / 3 2 months ago
42184 capability.graph complete 1 / 3 2 months ago
42185 detector.run complete 1 / 3 2 months ago
42186 validation.fork complete 1 / 3 2 months ago
42478 report.consolidate complete 1 / 6 2 months ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
3
No findings?
no
Summary
Bytecode shows EIP-1967/UUPS-style upgradeability markers and low-level external calls (CALL/DELEGATECALL), plus a SELFDESTRUCT opcode. Detectors report computed targets/values and no detected guards, so the impact depends on runtime access control that is not visible in bytecode alone.
View stdout
{"no_findings":false,"summary":"Bytecode shows EIP-1967/UUPS-style upgradeability markers and low-level external calls (CALL/DELEGATECALL), plus a SELFDESTRUCT opcode. Detectors report computed targets/values and no detected guards, so the impact depends on runtime access control that is not visible in bytecode alone.","findings":[{"severity":"medium","category":"other","title":"Computed DELEGATECALL target reachable (possible arbitrary code execution if unguarded)","exploit_scenario":"If an externally reachable path allows a caller to influence the delegatecall target (e.g., upgrade or delegatecall helper), an attacker could delegatecall into a malicious contract and take over storage, change critical slots, or trigger destructive behavior. Guard detection is heuristic, so this is a risk if access control is weak or bypassed.","recommendation":"Ensure delegatecall targets are strictly controlled (owner/role checks, allowlist/codehash validation) and that upgrade authorization cannot be bypassed. Consider additional runtime checks around delegatecall targets.","evidence":"Callsite shows DELEGATECALL at pc 3313 with target_expression_category \"computed\" and no guards detected in the analysis artifact; EIP-1967 slot reads are present, suggesting upgradeability paths may drive delegatecall.","locations":["pc:0xcf1"]},{"severity":"medium","category":"reentrancy","title":"Low-level CALL with ETH value to computed target","exploit_scenario":"Two CALL sites can transfer ETH to a computed target. If state is updated after these calls or if the target is attacker-controlled, a malicious callee could reenter or block execution. Return-data handling is unknown, so failed calls might not be detected in all paths.","recommendation":"Apply checks-effects-interactions or a reentrancy guard around value transfers, validate/limit call targets and values, and ensure call success is explicitly handled.","evidence":"CALL at pc 563 and pc 1199 with target_expression_category \"computed\" and value_expression_category \"computed\"; returndata_checked is null in the evidence bundle.","locations":["pc:0x233","pc:0x4af"]},{"severity":"medium","category":"other","title":"SELFDESTRUCT opcode present and marked reachable","exploit_scenario":"If any externally callable path can reach SELFDESTRUCT (directly or via delegatecall through a proxy), the contract/proxy could be destroyed and its balance sent to an arbitrary beneficiary, permanently disabling functionality.","recommendation":"Remove SELFDESTRUCT or gate it behind strong access control and ensure it is not reachable via proxy delegatecall paths.","evidence":"Basic block starting at pc 4363 contains a SELFDESTRUCT opcode; detector flagged SELFDESTRUCT reachable with no guards detected.","locations":["pc:0x110b"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-z066ubuq
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0f96-47ba-78e1-aa0a-954beb1255d7
--------
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.
mcp startup: no servers
exec
/bin/bash -lc ls in /tmp/codex-z066ubuq succeeded in 6ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-z066ubuq succeeded in 6ms:
{
  "analysis_artifact": {
    "address": "0x7e0ae8e65fc3c322c9f2bedf630ce8ef799e292e",
    "artifact_hash": "0x8819dced5c43b7292431c83555e507d5f017a9fdeb572e6df22ba182d6a261a4",
    "artifact_json": {
      "auth": {
        "guards": []
      },
      "basic_blocks": [
        {
          "end_pc": 12,
          "hash": "0x7226f32bd1464d2f0494bff81111618f88488e0fa37dc599c9907e2b1d214668",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "CALLDATASIZE",
            "LT",
            "PUSH2",
exec
/bin/bash -lc 'rg -n "SELFDESTRUCT" BYTECODE_BUNDLE.json' in /tmp/codex-z066ubuq succeeded in 17ms:
3600:            "SELFDESTRUCT"
8476:        "sink": "SELFDESTRUCT"
8479:      "title": "SELFDESTRUCT reachable",
8488:        "sink": "SELFDESTRUCT",
exec
/bin/bash -lc "sed -n '3588,3615p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
            "OP_23",
            "ADDRESS",
            "OP_A9",
            "OP_D3",
            "OP_9E",
            "MUL",
            "OP_25",
            "OP_23",
            "OP_CD",
            "OP_1E",
            "PUSH5",
            "OP_9E",
            "SELFDESTRUCT"
          ],
          "start_pc": 4363
        },
        {
          "end_pc": 4450,
          "hash": "0x424b28caf4fc803df0980311dad2d1107b569537cadd72c9062c0ebd6e79da6f",
          "opcodes": [
exec
/bin/bash -lc "python - <<'PY'
print(hex(4363))
print(hex(563))
print(hex(1199))
print(hex(3313))
PY" in /tmp/codex-z066ubuq succeeded in 19ms:
0x110b
0x233
0x4af
0xcf1
exec
/bin/bash -lc 'rg -n "3313" -n BYTECODE_BUNDLE.json' in /tmp/codex-z066ubuq succeeded in 7ms:
3660:          "pc": 3313,
5658:      "full": "0x60806040526004361061009a5760003560e01c80634847a79c1161006957806352d1902d1161004e57806352d1902d146101a25780636323d7af146101b7578063cd6dc687146101df57600080fd5b80634847a79c1461016f5780634f1ef2861461018f57600080fd5b80630f4414c8146100a6578063150b7a02146100dd5780633659cfe61461012e578063375974eb1461015057600080fd5b366100a157005b600080fd5b3480156100b257600080fd5b506100c66100c1366004610def565b6101ff565b6040516100d4929190610e9a565b60405180910390f35b3480156100e957600080fd5b506100fd6100f8366004610ebd565b610274565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016100d4565b34801561013a57600080fd5b5061014e610149366004610f2c565b6102e1565b005b34801561015c57600080fd5b506065545b6040519081526020016100d4565b34801561017b57600080fd5b506100c661018a366004610f47565b610483565b61014e61019d366004610fa0565b6104d0565b3480156101ae57600080fd5b5061016161065e565b3480156101c357600080fd5b506066546040516001600160a01b0390911681526020016100d4565b3480156101eb57600080fd5b5061014e6101fa366004610f47565b610723565b6000606061020b6107ce565b846001600160a01b03168484604051610225929190611062565b6000604051808303816000865af19150503d8060008114610262576040519150601f19603f3d011682016040523d82523d6000602084013e610267565b606091505b5091509150935093915050565b6040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f150b7a02000000000000000000000000000000000000000000000000000000001790526000906102d790611072565b9695505050505050565b6001600160a01b037f0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e1630036103845760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b7f0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e6001600160a01b03166103df7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b03161461045b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f78790000000000000000000000000000000000000000606482015260840161037b565b6104648161082a565b6040805160008082526020820190925261048091839190610832565b50565b6000606061048f6107ce565b6040516001600160a01b0385169084156108fc029085906000818181858888f1935050505060405180602001604052806000815250915091505b9250929050565b6001600160a01b037f0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e16300361056e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c0000000000000000000000000000000000000000606482015260840161037b565b7f0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e6001600160a01b03166105c97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b0316146106455760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f78790000000000000000000000000000000000000000606482015260840161037b565b61064e8261082a565b61065a82826001610832565b5050565b6000306001600160a01b037f0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e16146106fe5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161037b565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b60016000610730826109d7565b90508015610748576000805461ff0019166101001790555b606680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038616179055606583905580156107c8576000805461ff001916905560405160ff831681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6066546001600160a01b031633146108285760405162461bcd60e51b815260206004820152601260248201527f556e2d617574686f72697a65642063616c6c0000000000000000000000000000604482015260640161037b565b565b6104806107ce565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561086a5761086583610b10565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156108c4575060408051601f3d908101601f191682019092526108c1918101906110c2565b60015b6109365760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f742055555053000000000000000000000000000000000000606482015260840161037b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146109cb5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c65555549440000000000000000000000000000000000000000000000606482015260840161037b565b50610865838383610be6565b60008054610100900460ff1615610a74578160ff1660011480156109fa5750303b155b610a6c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161037b565b506000919050565b60005460ff808416911610610af15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161037b565b506000805460ff191660ff92909216919091179055600190565b919050565b6001600160a01b0381163b610b8d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161037b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610bef83610c0b565b600082511180610bfc5750805b15610865576107c88383610c4b565b610c1481610b10565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b610cca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161037b565b600080846001600160a01b031684604051610ce591906110db565b600060405180830381855af49150503d8060008114610d20576040519150601f19603f3d011682016040523d82523d6000602084013e610d25565b606091505b5091509150610d4d828260405180606001604052806027815260200161110b60279139610d56565b95945050505050565b60608315610d65575081610d8f565b825115610d755782518084602001fd5b8160405162461bcd60e51b815260040161037b91906110f7565b9392505050565b80356001600160a01b0381168114610b0b57600080fd5b60008083601f840112610dbf57600080fd5b50813567ffffffffffffffff811115610dd757600080fd5b6020830191508360208285010111156104c957600080fd5b600080600060408486031215610e0457600080fd5b610e0d84610d96565b9250602084013567ffffffffffffffff811115610e2957600080fd5b610e3586828701610dad565b9497909650939450505050565b60005b83811015610e5d578181015183820152602001610e45565b838111156107c85750506000910152565b60008151808452610e86816020860160208601610e42565b601f01601f19169290920160200192915050565b8215158152604060208201526000610eb56040830184610e6e565b949350505050565b600080600080600060808688031215610ed557600080fd5b610ede86610d96565b9450610eec60208701610d96565b935060408601359250606086013567ffffffffffffffff811115610f0f57600080fd5b610f1b88828901610dad565b969995985093965092949392505050565b600060208284031215610f3e57600080fd5b610d8f82610d96565b60008060408385031215610f5a57600080fd5b610f6383610d96565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060408385031215610fb357600080fd5b610fbc83610d96565b9150602083013567ffffffffffffffff80821115610fd957600080fd5b818501915085601f830112610fed57600080fd5b813581811115610fff57610fff610f71565b604051601f8201601f19908116603f0116810190838211818310171561102757611027610f71565b8160405282815288602084870101111561104057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b8183823760009101908152919050565b6000815160208301517fffffffff00000000000000000000000000000000000000000000000000000000808216935060048310156110ba5780818460040360031b1b83161693505b505050919050565b6000602082840312156110d457600080fd5b5051919050565b600082516110ed818460208701610e42565b9190910192915050565b602081526000610d8f6020830184610e6e56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212202cbb61a35c0b1b1abc5c2330a9d39e022523cd1e643481d730339effd1d59b0f64736f6c634300080d0033",
6772:          "to": "call:3313",
6776:          "from": "call:3313",
8264:          "id": "call:3313",
8266:          "pc": 3313,
8350:            "pc": 3313,
exec
/bin/bash -lc 'rg -n "storage" BYTECODE_BUNDLE.json | head' in /tmp/codex-z066ubuq succeeded in 7ms:
4756:          "storage": {
4840:          "storage": {
4924:          "storage": {
5008:          "storage": {
5092:          "storage": {
5176:          "storage": {
5260:          "storage": {
5344:          "storage": {
5428:          "storage": {
5521:      "storage": {
exec
/bin/bash -lc "sed -n '5480,5560p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
              },
              {
                "op": "SLOAD",
                "pc": 2679,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 2806,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 2992,
                "slot": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"
              }
            ],
            "writes": 6
          }
        }
exec
/bin/bash -lc "sed -n '5560,5650p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
          {
            "op": "SLOAD",
            "pc": 2001,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000066"
          },
          {
            "op": "SLOAD",
            "pc": 2132,
            "slot": "0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143"
          },
          {
            "op": "SLOAD",
            "pc": 2523,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 2679,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
exec
/bin/bash -lc "sed -n '6700,6795p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 7ms:
        {
          "from": "bb:4315",
          "to": "bb:3650",
          "type": "control_flow"
        },
        {
          "from": "bb:4343",
          "to": "bb:3694",
          "type": "control_flow"
        },
        {
          "from": "fn:0x52d1902d",
          "to": "bb:1389465645",
          "type": "entry"
        },
        {
          "from": "fn:0x6323d7af",
          "to": "bb:3446523527",
          "type": "entry"
        },
exec
/bin/bash -lc 'rg -n "function" BYTECODE_BUNDLE.json | head' in /tmp/codex-z066ubuq succeeded in 7ms:
4705:      "function_entries": [
4743:      "functions": [
8285:          "type": "function"
8291:          "type": "function"
8297:          "type": "function"
8303:          "type": "function"
8309:          "type": "function"
8315:          "type": "function"
8321:          "type": "function"
8327:          "type": "function"
exec
/bin/bash -lc "sed -n '4688,4765p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 7ms:
          "from": "bb:4290",
          "to": "bb:4304",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:4315",
          "to": "bb:3650",
          "type": "control_flow"
        },
        {
          "from": "bb:4343",
          "to": "bb:3694",
          "type": "control_flow"
        }
      ],
      "cfg_hash": "0x8fdd92f7a6412d5333bd1adb0ca39274a38b4a0e0a51c0aea9b2b8db82097e25",
      "dispatcher_type": "selector_jump_table",
      "function_entries": [
        {
          "entry_pc": 1389465645,
exec
/bin/bash -lc "sed -n '4765,4845p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 7ms:
                "op": "SLOAD",
                "pc": 455,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000066"
              },
              {
                "op": "SLOAD",
                "pc": 979,
                "slot": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"
              },
              {
                "op": "SLOAD",
                "pc": 1469,
                "slot": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"
              },
              {
                "op": "SLOAD",
                "pc": 1852,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
exec
/bin/bash -lc 'rg -n "start_pc": 549 BYTECODE_BUNDLE.json' in /tmp/codex-z066ubuq exited 2 in 10ms:
rg: 549: No such file or directory (os error 2)
exec
/bin/bash -lc "rg -n '\"start_pc\": 549' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
748:          "start_pc": 549
7178:          "start_pc": 549,
exec
/bin/bash -lc "sed -n '730,770p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
            "OP_83",
            "SUB",
            "OP_81",
            "PUSH1",
            "OP_86",
            "GAS",
            "CALL",
            "OP_91",
            "POP",
            "POP",
            "RETURNDATASIZE",
            "OP_80",
            "PUSH1",
            "OP_81",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 549
        },
exec
/bin/bash -lc "rg -n '\"start_pc\": 3301' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
2321:          "start_pc": 3301
7689:          "start_pc": 3301,
exec
/bin/bash -lc "sed -n '2310,2345p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 8ms:
            "OP_91",
            "POP",
            "POP",
            "RETURNDATASIZE",
            "OP_80",
            "PUSH1",
            "OP_81",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 3301
        },
        {
          "end_pc": 3359,
          "hash": "0xa6dc7b7c7bd3f3f5ea6a0a71145f539ea304295219fc04ef1c216dcbd1ee758b",
          "opcodes": [
            "PUSH1",
            "MLOAD",
            "OP_91",
exec
/bin/bash -lc "sed -n '2295,2335p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
        {
          "end_pc": 3326,
          "hash": "0x2f46b3822fa61f2c4ed1fefde71fec224975fbb906322192716e53c7b0877369",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_83",
            "SUB",
            "OP_81",
            "OP_85",
            "GAS",
            "DELEGATECALL",
            "OP_91",
            "POP",
            "POP",
            "RETURNDATASIZE",
            "OP_80",
exec
/bin/bash -lc "sed -n '1125,1185p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
            "OP_81",
            "MSTORE",
            "POP",
            "OP_91",
            "POP",
            "OP_91",
            "POP"
          ],
          "start_pc": 1167
        },
        {
          "end_pc": 1231,
          "hash": "0xef634d2255057dcd7706fc4f65dff7da6680b268c6bbb81f0d6f892d6890cd16",
          "opcodes": [
            "JUMPDEST",
            "OP_92",
            "POP",
            "OP_92",
            "OP_90",
            "POP",
exec
/bin/bash -lc 'rg -n "pc": 1199 BYTECODE_BUNDLE.json -C 2' in /tmp/codex-z066ubuq exited 2 in 17ms:
rg: 1199: No such file or directory (os error 2)
exec
/bin/bash -lc "rg -n '\"pc\": 1199' BYTECODE_BUNDLE.json -C 2" in /tmp/codex-z066ubuq succeeded in 6ms:
3644-        {
3645-          "opcode": "CALL",
3646:          "pc": 1199,
3647-          "returndata_checked": null,
3648-          "target_expression_category": "computed",
--
8252-          "id": "call:1199",
8253-          "opcode": "CALL",
8254:          "pc": 1199,
8255-          "type": "callsite"
8256-        },
--
8391-          {
8392-            "opcode": "CALL",
8393:            "pc": 1199,
8394-            "returndata_checked": null,
8395-            "target_expression_category": "computed",
--
8436-          {
8437-            "opcode": "CALL",
exec
/bin/bash -lc "sed -n '3608,3668p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
            "OP_D1",
            "OP_D5",
            "OP_9B",
            "OP_0F",
            "PUSH5",
            "STOP"
          ],
          "start_pc": 4440
        },
        {
          "end_pc": 4453,
          "hash": "0xc6696f917b4d3718b9a0ecb35311b56723647991e403041867d2a4a2932748ba",
          "opcodes": [
            "ADDMOD",
            "OP_0D",
            "STOP"
          ],
          "start_pc": 4451
        },
        {
exec
/bin/bash -lc 'rg -n "SSTORE" BYTECODE_BUNDLE.json | head' in /tmp/codex-z066ubuq succeeded in 9ms:
1435:            "SSTORE"
1458:            "SSTORE",
1462:            "SSTORE",
1481:            "SSTORE",
2013:            "SSTORE",
2112:            "SSTORE",
exec
/bin/bash -lc "sed -n '1400,1475p' BYTECODE_BUNDLE.json" in /tmp/codex-z066ubuq succeeded in 6ms:
            "PUSH1",
            "PUSH2",
            "OP_82",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1827
        },
        {
          "end_pc": 1848,
          "hash": "0xdc1e1f29291fee394b8f1ee42b8a55b858cf967e3d4c0d94fd1093e3c610ae3a",
          "opcodes": [
            "JUMPDEST",
            "OP_90",
            "POP",
            "OP_80",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
codex
{"no_findings":false,"summary":"Bytecode shows EIP-1967/UUPS-style upgradeability markers and low-level external calls (CALL/DELEGATECALL), plus a SELFDESTRUCT opcode. Detectors report computed targets/values and no detected guards, so the impact depends on runtime access control that is not visible in bytecode alone.","findings":[{"severity":"medium","category":"other","title":"Computed DELEGATECALL target reachable (possible arbitrary code execution if unguarded)","exploit_scenario":"If an externally reachable path allows a caller to influence the delegatecall target (e.g., upgrade or delegatecall helper), an attacker could delegatecall into a malicious contract and take over storage, change critical slots, or trigger destructive behavior. Guard detection is heuristic, so this is a risk if access control is weak or bypassed.","recommendation":"Ensure delegatecall targets are strictly controlled (owner/role checks, allowlist/codehash validation) and that upgrade authorization cannot be bypassed. Consider additional runtime checks around delegatecall targets.","evidence":"Callsite shows DELEGATECALL at pc 3313 with target_expression_category \"computed\" and no guards detected in the analysis artifact; EIP-1967 slot reads are present, suggesting upgradeability paths may drive delegatecall.","locations":["pc:0xcf1"]},{"severity":"medium","category":"reentrancy","title":"Low-level CALL with ETH value to computed target","exploit_scenario":"Two CALL sites can transfer ETH to a computed target. If state is updated after these calls or if the target is attacker-controlled, a malicious callee could reenter or block execution. Return-data handling is unknown, so failed calls might not be detected in all paths.","recommendation":"Apply checks-effects-interactions or a reentrancy guard around value transfers, validate/limit call targets and values, and ensure call success is explicitly handled.","evidence":"CALL at pc 563 and pc 1199 with target_expression_category \"computed\" and value_expression_category \"computed\"; returndata_checked is null in the evidence bundle.","locations":["pc:0x233","pc:0x4af"]},{"severity":"medium","category":"other","title":"SELFDESTRUCT opcode present and marked reachable","exploit_scenario":"If any externally callable path can reach SELFDESTRUCT (directly or via delegatecall through a proxy), the contract/proxy could be destroyed and its balance sent to an arbitrary beneficiary, permanently disabling functionality.","recommendation":"Remove SELFDESTRUCT or gate it behind strong access control and ensure it is not reachable via proxy delegatecall paths.","evidence":"Basic block starting at pc 4363 contains a SELFDESTRUCT opcode; detector flagged SELFDESTRUCT reachable with no guards detected.","locations":["pc:0x110b"]}]}
tokens used
148,124
Metadata
{
    "codex": {
        "ran_at": "2026-01-30T15:50:33.055188+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 8912,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Bytecode shows EIP-1967/UUPS-style upgradeability markers and low-level external calls (CALL/DELEGATECALL), plus a SELFDESTRUCT opcode. Detectors report computed targets/values and no detected guards, so the impact depends on runtime access control that is not visible in bytecode alone.",
    "raw_final": {
        "summary": "Bytecode shows EIP-1967/UUPS-style upgradeability markers and low-level external calls (CALL/DELEGATECALL), plus a SELFDESTRUCT opcode. Detectors report computed targets/values and no detected guards, so the impact depends on runtime access control that is not visible in bytecode alone.",
        "findings": [
            {
                "title": "Computed DELEGATECALL target reachable (possible arbitrary code execution if unguarded)",
                "category": "other",
                "evidence": "Callsite shows DELEGATECALL at pc 3313 with target_expression_category \"computed\" and no guards detected in the analysis artifact; EIP-1967 slot reads are present, suggesting upgradeability paths may drive delegatecall.",
                "severity": "medium",
                "locations": [
                    "pc:0xcf1"
                ],
                "recommendation": "Ensure delegatecall targets are strictly controlled (owner/role checks, allowlist/codehash validation) and that upgrade authorization cannot be bypassed. Consider additional runtime checks around delegatecall targets.",
                "exploit_scenario": "If an externally reachable path allows a caller to influence the delegatecall target (e.g., upgrade or delegatecall helper), an attacker could delegatecall into a malicious contract and take over storage, change critical slots, or trigger destructive behavior. Guard detection is heuristic, so this is a risk if access control is weak or bypassed."
            },
            {
                "title": "Low-level CALL with ETH value to computed target",
                "category": "reentrancy",
                "evidence": "CALL at pc 563 and pc 1199 with target_expression_category \"computed\" and value_expression_category \"computed\"; returndata_checked is null in the evidence bundle.",
                "severity": "medium",
                "locations": [
                    "pc:0x233",
                    "pc:0x4af"
                ],
                "recommendation": "Apply checks-effects-interactions or a reentrancy guard around value transfers, validate/limit call targets and values, and ensure call success is explicitly handled.",
                "exploit_scenario": "Two CALL sites can transfer ETH to a computed target. If state is updated after these calls or if the target is attacker-controlled, a malicious callee could reenter or block execution. Return-data handling is unknown, so failed calls might not be detected in all paths."
            },
            {
                "title": "SELFDESTRUCT opcode present and marked reachable",
                "category": "other",
                "evidence": "Basic block starting at pc 4363 contains a SELFDESTRUCT opcode; detector flagged SELFDESTRUCT reachable with no guards detected.",
                "severity": "medium",
                "locations": [
                    "pc:0x110b"
                ],
                "recommendation": "Remove SELFDESTRUCT or gate it behind strong access control and ensure it is not reachable via proxy delegatecall paths.",
                "exploit_scenario": "If any externally callable path can reach SELFDESTRUCT (directly or via delegatecall through a proxy), the contract/proxy could be destroyed and its balance sent to an arbitrary beneficiary, permanently disabling functionality."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
1
CREATE2
0
CALL-family (heavy)
3
EXT*/BALANCE
3
Total opcodes
2162
Flags
delegatecall_present selfdestruct_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x009a
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x4847a79c
00000019: GT
0000001a: PUSH2 0x0069
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0x52d1902d
00000024: GT
00000025: PUSH2 0x004e
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0x52d1902d
0000002f: EQ
00000030: PUSH2 0x01a2
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0x6323d7af
0000003a: EQ
0000003b: PUSH2 0x01b7
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xcd6dc687
00000045: EQ
00000046: PUSH2 0x01df
00000049: JUMPI
0000004a: PUSH1 0x00
0000004c: DUP1
0000004d: REVERT
0000004e: JUMPDEST
0000004f: DUP1
00000050: PUSH4 0x4847a79c
00000055: EQ
00000056: PUSH2 0x016f
00000059: JUMPI
0000005a: DUP1
0000005b: PUSH4 0x4f1ef286
00000060: EQ
00000061: PUSH2 0x018f
00000064: JUMPI
00000065: PUSH1 0x00
00000067: DUP1
00000068: REVERT
00000069: JUMPDEST
0000006a: DUP1
0000006b: PUSH4 0x0f4414c8
00000070: EQ
00000071: PUSH2 0x00a6
00000074: JUMPI
00000075: DUP1
00000076: PUSH4 0x150b7a02
0000007b: EQ
0000007c: PUSH2 0x00dd
0000007f: JUMPI
00000080: DUP1
00000081: PUSH4 0x3659cfe6
00000086: EQ
00000087: PUSH2 0x012e
0000008a: JUMPI
0000008b: DUP1
0000008c: PUSH4 0x375974eb
00000091: EQ
00000092: PUSH2 0x0150
00000095: JUMPI
00000096: PUSH1 0x00
00000098: DUP1
00000099: REVERT
0000009a: JUMPDEST
0000009b: CALLDATASIZE
0000009c: PUSH2 0x00a1
0000009f: JUMPI
000000a0: STOP
000000a1: JUMPDEST
000000a2: PUSH1 0x00
000000a4: DUP1
000000a5: REVERT
000000a6: JUMPDEST
000000a7: CALLVALUE
000000a8: DUP1
000000a9: ISZERO
000000aa: PUSH2 0x00b2
000000ad: JUMPI
000000ae: PUSH1 0x00
000000b0: DUP1
000000b1: REVERT
000000b2: JUMPDEST
000000b3: POP
000000b4: PUSH2 0x00c6
000000b7: PUSH2 0x00c1
000000ba: CALLDATASIZE
000000bb: PUSH1 0x04
000000bd: PUSH2 0x0def
000000c0: JUMP
000000c1: JUMPDEST
000000c2: PUSH2 0x01ff
000000c5: JUMP
000000c6: JUMPDEST
000000c7: PUSH1 0x40
000000c9: MLOAD
000000ca: PUSH2 0x00d4
000000cd: SWAP3
000000ce: SWAP2
000000cf: SWAP1
000000d0: PUSH2 0x0e9a
000000d3: JUMP
000000d4: JUMPDEST
000000d5: PUSH1 0x40
000000d7: MLOAD
000000d8: DUP1
000000d9: SWAP2
000000da: SUB
000000db: SWAP1
000000dc: RETURN
000000dd: JUMPDEST
000000de: CALLVALUE
000000df: DUP1
000000e0: ISZERO
000000e1: PUSH2 0x00e9
000000e4: JUMPI
000000e5: PUSH1 0x00
000000e7: DUP1
000000e8: REVERT
000000e9: JUMPDEST
000000ea: POP
000000eb: PUSH2 0x00fd
000000ee: PUSH2 0x00f8
000000f1: CALLDATASIZE
000000f2: PUSH1 0x04
000000f4: PUSH2 0x0ebd
000000f7: JUMP
000000f8: JUMPDEST
000000f9: PUSH2 0x0274
000000fc: JUMP
000000fd: JUMPDEST
000000fe: PUSH1 0x40
00000100: MLOAD
00000101: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000122: SWAP1
00000123: SWAP2
00000124: AND
00000125: DUP2
00000126: MSTORE
00000127: PUSH1 0x20
00000129: ADD
0000012a: PUSH2 0x00d4
0000012d: JUMP
0000012e: JUMPDEST
0000012f: CALLVALUE
00000130: DUP1
00000131: ISZERO
00000132: PUSH2 0x013a
00000135: JUMPI
00000136: PUSH1 0x00
00000138: DUP1
00000139: REVERT
0000013a: JUMPDEST
0000013b: POP
0000013c: PUSH2 0x014e
0000013f: PUSH2 0x0149
00000142: CALLDATASIZE
00000143: PUSH1 0x04
00000145: PUSH2 0x0f2c
00000148: JUMP
00000149: JUMPDEST
0000014a: PUSH2 0x02e1
0000014d: JUMP
0000014e: JUMPDEST
0000014f: STOP
00000150: JUMPDEST
00000151: CALLVALUE
00000152: DUP1
00000153: ISZERO
00000154: PUSH2 0x015c
00000157: JUMPI
00000158: PUSH1 0x00
0000015a: DUP1
0000015b: REVERT
0000015c: JUMPDEST
0000015d: POP
0000015e: PUSH1 0x65
00000160: SLOAD
00000161: JUMPDEST
00000162: PUSH1 0x40
00000164: MLOAD
00000165: SWAP1
00000166: DUP2
00000167: MSTORE
00000168: PUSH1 0x20
0000016a: ADD
0000016b: PUSH2 0x00d4
0000016e: JUMP
0000016f: JUMPDEST
00000170: CALLVALUE
00000171: DUP1
00000172: ISZERO
00000173: PUSH2 0x017b
00000176: JUMPI
00000177: PUSH1 0x00
00000179: DUP1
0000017a: REVERT
0000017b: JUMPDEST
0000017c: POP
0000017d: PUSH2 0x00c6
00000180: PUSH2 0x018a
00000183: CALLDATASIZE
00000184: PUSH1 0x04
00000186: PUSH2 0x0f47
00000189: JUMP
0000018a: JUMPDEST
0000018b: PUSH2 0x0483
0000018e: JUMP
0000018f: JUMPDEST
00000190: PUSH2 0x014e
00000193: PUSH2 0x019d
00000196: CALLDATASIZE
00000197: PUSH1 0x04
00000199: PUSH2 0x0fa0
0000019c: JUMP
0000019d: JUMPDEST
0000019e: PUSH2 0x04d0
000001a1: JUMP
000001a2: JUMPDEST
000001a3: CALLVALUE
000001a4: DUP1
000001a5: ISZERO
000001a6: PUSH2 0x01ae
000001a9: JUMPI
000001aa: PUSH1 0x00
000001ac: DUP1
000001ad: REVERT
000001ae: JUMPDEST
000001af: POP
000001b0: PUSH2 0x0161
000001b3: PUSH2 0x065e
000001b6: JUMP
000001b7: JUMPDEST
000001b8: CALLVALUE
000001b9: DUP1
000001ba: ISZERO
000001bb: PUSH2 0x01c3
000001be: JUMPI
000001bf: PUSH1 0x00
000001c1: DUP1
000001c2: REVERT
000001c3: JUMPDEST
000001c4: POP
000001c5: PUSH1 0x66
000001c7: SLOAD
000001c8: PUSH1 0x40
000001ca: MLOAD
000001cb: PUSH1 0x01
000001cd: PUSH1 0x01
000001cf: PUSH1 0xa0
000001d1: SHL
000001d2: SUB
000001d3: SWAP1
000001d4: SWAP2
000001d5: AND
000001d6: DUP2
000001d7: MSTORE
000001d8: PUSH1 0x20
000001da: ADD
000001db: PUSH2 0x00d4
000001de: JUMP
000001df: JUMPDEST
000001e0: CALLVALUE
000001e1: DUP1
000001e2: ISZERO
000001e3: PUSH2 0x01eb
000001e6: JUMPI
000001e7: PUSH1 0x00
000001e9: DUP1
000001ea: REVERT
000001eb: JUMPDEST
000001ec: POP
000001ed: PUSH2 0x014e
000001f0: PUSH2 0x01fa
000001f3: CALLDATASIZE
000001f4: PUSH1 0x04
000001f6: PUSH2 0x0f47
000001f9: JUMP
000001fa: JUMPDEST
000001fb: PUSH2 0x0723
000001fe: JUMP
000001ff: JUMPDEST
00000200: PUSH1 0x00
00000202: PUSH1 0x60
00000204: PUSH2 0x020b
00000207: PUSH2 0x07ce
0000020a: JUMP
0000020b: JUMPDEST
0000020c: DUP5
0000020d: PUSH1 0x01
0000020f: PUSH1 0x01
00000211: PUSH1 0xa0
00000213: SHL
00000214: SUB
00000215: AND
00000216: DUP5
00000217: DUP5
00000218: PUSH1 0x40
0000021a: MLOAD
0000021b: PUSH2 0x0225
0000021e: SWAP3
0000021f: SWAP2
00000220: SWAP1
00000221: PUSH2 0x1062
00000224: JUMP
00000225: JUMPDEST
00000226: PUSH1 0x00
00000228: PUSH1 0x40
0000022a: MLOAD
0000022b: DUP1
0000022c: DUP4
0000022d: SUB
0000022e: DUP2
0000022f: PUSH1 0x00
00000231: DUP7
00000232: GAS
00000233: CALL
00000234: SWAP2
00000235: POP
00000236: POP
00000237: RETURNDATASIZE
00000238: DUP1
00000239: PUSH1 0x00
0000023b: DUP2
0000023c: EQ
0000023d: PUSH2 0x0262
00000240: JUMPI
00000241: PUSH1 0x40
00000243: MLOAD
00000244: SWAP2
00000245: POP
00000246: PUSH1 0x1f
00000248: NOT
00000249: PUSH1 0x3f
0000024b: RETURNDATASIZE
0000024c: ADD
0000024d: AND
0000024e: DUP3
0000024f: ADD
00000250: PUSH1 0x40
00000252: MSTORE
00000253: RETURNDATASIZE
00000254: DUP3
00000255: MSTORE
00000256: RETURNDATASIZE
00000257: PUSH1 0x00
00000259: PUSH1 0x20
0000025b: DUP5
0000025c: ADD
0000025d: RETURNDATACOPY
0000025e: PUSH2 0x0267
00000261: JUMP
00000262: JUMPDEST
00000263: PUSH1 0x60
00000265: SWAP2
00000266: POP
00000267: JUMPDEST
00000268: POP
00000269: SWAP2
0000026a: POP
0000026b: SWAP2
0000026c: POP
0000026d: SWAP4
0000026e: POP
0000026f: SWAP4
00000270: SWAP2
00000271: POP
00000272: POP
00000273: JUMP
00000274: JUMPDEST
00000275: PUSH1 0x40
00000277: DUP1
00000278: MLOAD
00000279: PUSH1 0x04
0000027b: DUP2
0000027c: MSTORE
0000027d: PUSH1 0x24
0000027f: DUP2
00000280: ADD
00000281: SWAP1
00000282: SWAP2
00000283: MSTORE
00000284: PUSH1 0x20
00000286: DUP2
00000287: ADD
00000288: DUP1
00000289: MLOAD
0000028a: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000002a7: AND
000002a8: PUSH32 0x150b7a0200000000000000000000000000000000000000000000000000000000
000002c9: OR
000002ca: SWAP1
000002cb: MSTORE
000002cc: PUSH1 0x00
000002ce: SWAP1
000002cf: PUSH2 0x02d7
000002d2: SWAP1
000002d3: PUSH2 0x1072
000002d6: JUMP
000002d7: JUMPDEST
000002d8: SWAP7
000002d9: SWAP6
000002da: POP
000002db: POP
000002dc: POP
000002dd: POP
000002de: POP
000002df: POP
000002e0: JUMP
000002e1: JUMPDEST
000002e2: PUSH1 0x01
000002e4: PUSH1 0x01
000002e6: PUSH1 0xa0
000002e8: SHL
000002e9: SUB
000002ea: PUSH32 0x0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e
0000030b: AND
0000030c: ADDRESS
0000030d: SUB
0000030e: PUSH2 0x0384
00000311: JUMPI
00000312: PUSH1 0x40
00000314: MLOAD
00000315: PUSH3 0x461bcd
00000319: PUSH1 0xe5
0000031b: SHL
0000031c: DUP2
0000031d: MSTORE
0000031e: PUSH1 0x20
00000320: PUSH1 0x04
00000322: DUP3
00000323: ADD
00000324: MSTORE
00000325: PUSH1 0x2c
00000327: PUSH1 0x24
00000329: DUP3
0000032a: ADD
0000032b: MSTORE
0000032c: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820
0000034d: PUSH1 0x44
0000034f: DUP3
00000350: ADD
00000351: MSTORE
00000352: PUSH32 0x64656c656761746563616c6c0000000000000000000000000000000000000000
00000373: PUSH1 0x64
00000375: DUP3
00000376: ADD
00000377: MSTORE
00000378: PUSH1 0x84
0000037a: ADD
0000037b: JUMPDEST
0000037c: PUSH1 0x40
0000037e: MLOAD
0000037f: DUP1
00000380: SWAP2
00000381: SUB
00000382: SWAP1
00000383: REVERT
00000384: JUMPDEST
00000385: PUSH32 0x0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e
000003a6: PUSH1 0x01
000003a8: PUSH1 0x01
000003aa: PUSH1 0xa0
000003ac: SHL
000003ad: SUB
000003ae: AND
000003af: PUSH2 0x03df
000003b2: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
000003d3: SLOAD
000003d4: PUSH1 0x01
000003d6: PUSH1 0x01
000003d8: PUSH1 0xa0
000003da: SHL
000003db: SUB
000003dc: AND
000003dd: SWAP1
000003de: JUMP
000003df: JUMPDEST
000003e0: PUSH1 0x01
000003e2: PUSH1 0x01
000003e4: PUSH1 0xa0
000003e6: SHL
000003e7: SUB
000003e8: AND
000003e9: EQ
000003ea: PUSH2 0x045b
000003ed: JUMPI
000003ee: PUSH1 0x40
000003f0: MLOAD
000003f1: PUSH3 0x461bcd
000003f5: PUSH1 0xe5
000003f7: SHL
000003f8: DUP2
000003f9: MSTORE
000003fa: PUSH1 0x20
000003fc: PUSH1 0x04
000003fe: DUP3
000003ff: ADD
00000400: MSTORE
00000401: PUSH1 0x2c
00000403: PUSH1 0x24
00000405: DUP3
00000406: ADD
00000407: MSTORE
00000408: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820
00000429: PUSH1 0x44
0000042b: DUP3
0000042c: ADD
0000042d: MSTORE
0000042e: PUSH32 0x6163746976652070726f78790000000000000000000000000000000000000000
0000044f: PUSH1 0x64
00000451: DUP3
00000452: ADD
00000453: MSTORE
00000454: PUSH1 0x84
00000456: ADD
00000457: PUSH2 0x037b
0000045a: JUMP
0000045b: JUMPDEST
0000045c: PUSH2 0x0464
0000045f: DUP2
00000460: PUSH2 0x082a
00000463: JUMP
00000464: JUMPDEST
00000465: PUSH1 0x40
00000467: DUP1
00000468: MLOAD
00000469: PUSH1 0x00
0000046b: DUP1
0000046c: DUP3
0000046d: MSTORE
0000046e: PUSH1 0x20
00000470: DUP3
00000471: ADD
00000472: SWAP1
00000473: SWAP3
00000474: MSTORE
00000475: PUSH2 0x0480
00000478: SWAP2
00000479: DUP4
0000047a: SWAP2
0000047b: SWAP1
0000047c: PUSH2 0x0832
0000047f: JUMP
00000480: JUMPDEST
00000481: POP
00000482: JUMP
00000483: JUMPDEST
00000484: PUSH1 0x00
00000486: PUSH1 0x60
00000488: PUSH2 0x048f
0000048b: PUSH2 0x07ce
0000048e: JUMP
0000048f: JUMPDEST
00000490: PUSH1 0x40
00000492: MLOAD
00000493: PUSH1 0x01
00000495: PUSH1 0x01
00000497: PUSH1 0xa0
00000499: SHL
0000049a: SUB
0000049b: DUP6
0000049c: AND
0000049d: SWAP1
0000049e: DUP5
0000049f: ISZERO
000004a0: PUSH2 0x08fc
000004a3: MUL
000004a4: SWAP1
000004a5: DUP6
000004a6: SWAP1
000004a7: PUSH1 0x00
000004a9: DUP2
000004aa: DUP2
000004ab: DUP2
000004ac: DUP6
000004ad: DUP9
000004ae: DUP9
000004af: CALL
000004b0: SWAP4
000004b1: POP
000004b2: POP
000004b3: POP
000004b4: POP
000004b5: PUSH1 0x40
000004b7: MLOAD
000004b8: DUP1
000004b9: PUSH1 0x20
000004bb: ADD
000004bc: PUSH1 0x40
000004be: MSTORE
000004bf: DUP1
000004c0: PUSH1 0x00
000004c2: DUP2
000004c3: MSTORE
000004c4: POP
000004c5: SWAP2
000004c6: POP
000004c7: SWAP2
000004c8: POP
000004c9: JUMPDEST
000004ca: SWAP3
000004cb: POP
000004cc: SWAP3
000004cd: SWAP1
000004ce: POP
000004cf: JUMP
000004d0: JUMPDEST
000004d1: PUSH1 0x01
000004d3: PUSH1 0x01
000004d5: PUSH1 0xa0
000004d7: SHL
000004d8: SUB
000004d9: PUSH32 0x0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e
000004fa: AND
000004fb: ADDRESS
000004fc: SUB
000004fd: PUSH2 0x056e
00000500: JUMPI
00000501: PUSH1 0x40
00000503: MLOAD
00000504: PUSH3 0x461bcd
00000508: PUSH1 0xe5
0000050a: SHL
0000050b: DUP2
0000050c: MSTORE
0000050d: PUSH1 0x20
0000050f: PUSH1 0x04
00000511: DUP3
00000512: ADD
00000513: MSTORE
00000514: PUSH1 0x2c
00000516: PUSH1 0x24
00000518: DUP3
00000519: ADD
0000051a: MSTORE
0000051b: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820
0000053c: PUSH1 0x44
0000053e: DUP3
0000053f: ADD
00000540: MSTORE
00000541: PUSH32 0x64656c656761746563616c6c0000000000000000000000000000000000000000
00000562: PUSH1 0x64
00000564: DUP3
00000565: ADD
00000566: MSTORE
00000567: PUSH1 0x84
00000569: ADD
0000056a: PUSH2 0x037b
0000056d: JUMP
0000056e: JUMPDEST
0000056f: PUSH32 0x0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e
00000590: PUSH1 0x01
00000592: PUSH1 0x01
00000594: PUSH1 0xa0
00000596: SHL
00000597: SUB
00000598: AND
00000599: PUSH2 0x05c9
0000059c: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
000005bd: SLOAD
000005be: PUSH1 0x01
000005c0: PUSH1 0x01
000005c2: PUSH1 0xa0
000005c4: SHL
000005c5: SUB
000005c6: AND
000005c7: SWAP1
000005c8: JUMP
000005c9: JUMPDEST
000005ca: PUSH1 0x01
000005cc: PUSH1 0x01
000005ce: PUSH1 0xa0
000005d0: SHL
000005d1: SUB
000005d2: AND
000005d3: EQ
000005d4: PUSH2 0x0645
000005d7: JUMPI
000005d8: PUSH1 0x40
000005da: MLOAD
000005db: PUSH3 0x461bcd
000005df: PUSH1 0xe5
000005e1: SHL
000005e2: DUP2
000005e3: MSTORE
000005e4: PUSH1 0x20
000005e6: PUSH1 0x04
000005e8: DUP3
000005e9: ADD
000005ea: MSTORE
000005eb: PUSH1 0x2c
000005ed: PUSH1 0x24
000005ef: DUP3
000005f0: ADD
000005f1: MSTORE
000005f2: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820
00000613: PUSH1 0x44
00000615: DUP3
00000616: ADD
00000617: MSTORE
00000618: PUSH32 0x6163746976652070726f78790000000000000000000000000000000000000000
00000639: PUSH1 0x64
0000063b: DUP3
0000063c: ADD
0000063d: MSTORE
0000063e: PUSH1 0x84
00000640: ADD
00000641: PUSH2 0x037b
00000644: JUMP
00000645: JUMPDEST
00000646: PUSH2 0x064e
00000649: DUP3
0000064a: PUSH2 0x082a
0000064d: JUMP
0000064e: JUMPDEST
0000064f: PUSH2 0x065a
00000652: DUP3
00000653: DUP3
00000654: PUSH1 0x01
00000656: PUSH2 0x0832
00000659: JUMP
0000065a: JUMPDEST
0000065b: POP
0000065c: POP
0000065d: JUMP
0000065e: JUMPDEST
0000065f: PUSH1 0x00
00000661: ADDRESS
00000662: PUSH1 0x01
00000664: PUSH1 0x01
00000666: PUSH1 0xa0
00000668: SHL
00000669: SUB
0000066a: PUSH32 0x0000000000000000000000007e0ae8e65fc3c322c9f2bedf630ce8ef799e292e
0000068b: AND
0000068c: EQ
0000068d: PUSH2 0x06fe
00000690: JUMPI
00000691: PUSH1 0x40
00000693: MLOAD
00000694: PUSH3 0x461bcd
00000698: PUSH1 0xe5
0000069a: SHL
0000069b: DUP2
0000069c: MSTORE
0000069d: PUSH1 0x20
0000069f: PUSH1 0x04
000006a1: DUP3
000006a2: ADD
000006a3: MSTORE
000006a4: PUSH1 0x38
000006a6: PUSH1 0x24
000006a8: DUP3
000006a9: ADD
000006aa: MSTORE
000006ab: PUSH32 0x555550535570677261646561626c653a206d757374206e6f742062652063616c
000006cc: PUSH1 0x44
000006ce: DUP3
000006cf: ADD
000006d0: MSTORE
000006d1: PUSH32 0x6c6564207468726f7567682064656c656761746563616c6c0000000000000000
000006f2: PUSH1 0x64
000006f4: DUP3
000006f5: ADD
000006f6: MSTORE
000006f7: PUSH1 0x84
000006f9: ADD
000006fa: PUSH2 0x037b
000006fd: JUMP
000006fe: JUMPDEST
000006ff: POP
00000700: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
00000721: SWAP1
00000722: JUMP
00000723: JUMPDEST
00000724: PUSH1 0x01
00000726: PUSH1 0x00
00000728: PUSH2 0x0730
0000072b: DUP3
0000072c: PUSH2 0x09d7
0000072f: JUMP
00000730: JUMPDEST
00000731: SWAP1
00000732: POP
00000733: DUP1
00000734: ISZERO
00000735: PUSH2 0x0748
00000738: JUMPI
00000739: PUSH1 0x00
0000073b: DUP1
0000073c: SLOAD
0000073d: PUSH2 0xff00
00000740: NOT
00000741: AND
00000742: PUSH2 0x0100
00000745: OR
00000746: SWAP1
00000747: SSTORE
00000748: JUMPDEST
00000749: PUSH1 0x66
0000074b: DUP1
0000074c: SLOAD
0000074d: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
0000076e: AND
0000076f: PUSH1 0x01
00000771: PUSH1 0x01
00000773: PUSH1 0xa0
00000775: SHL
00000776: SUB
00000777: DUP7
00000778: AND
00000779: OR
0000077a: SWAP1
0000077b: SSTORE
0000077c: PUSH1 0x65
0000077e: DUP4
0000077f: SWAP1
00000780: SSTORE
00000781: DUP1
00000782: ISZERO
00000783: PUSH2 0x07c8
00000786: JUMPI
00000787: PUSH1 0x00
00000789: DUP1
0000078a: SLOAD
0000078b: PUSH2 0xff00
0000078e: NOT
0000078f: AND
00000790: SWAP1
00000791: SSTORE
00000792: PUSH1 0x40
00000794: MLOAD
00000795: PUSH1 0xff
00000797: DUP4
00000798: AND
00000799: DUP2
0000079a: MSTORE
0000079b: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498
000007bc: SWAP1
000007bd: PUSH1 0x20
000007bf: ADD
000007c0: PUSH1 0x40
000007c2: MLOAD
000007c3: DUP1
000007c4: SWAP2
000007c5: SUB
000007c6: SWAP1
000007c7: LOG1
000007c8: JUMPDEST
000007c9: POP
000007ca: POP
000007cb: POP
000007cc: POP
000007cd: JUMP
000007ce: JUMPDEST
000007cf: PUSH1 0x66
000007d1: SLOAD
000007d2: PUSH1 0x01
000007d4: PUSH1 0x01
000007d6: PUSH1 0xa0
000007d8: SHL
000007d9: SUB
000007da: AND
000007db: CALLER
000007dc: EQ
000007dd: PUSH2 0x0828
000007e0: JUMPI
000007e1: PUSH1 0x40
000007e3: MLOAD
000007e4: PUSH3 0x461bcd
000007e8: PUSH1 0xe5
000007ea: SHL
000007eb: DUP2
000007ec: MSTORE
000007ed: PUSH1 0x20
000007ef: PUSH1 0x04
000007f1: DUP3
000007f2: ADD
000007f3: MSTORE
000007f4: PUSH1 0x12
000007f6: PUSH1 0x24
000007f8: DUP3
000007f9: ADD
000007fa: MSTORE
000007fb: PUSH32 0x556e2d617574686f72697a65642063616c6c0000000000000000000000000000
0000081c: PUSH1 0x44
0000081e: DUP3
0000081f: ADD
00000820: MSTORE
00000821: PUSH1 0x64
00000823: ADD
00000824: PUSH2 0x037b
00000827: JUMP
00000828: JUMPDEST
00000829: JUMP
0000082a: JUMPDEST
0000082b: PUSH2 0x0480
0000082e: PUSH2 0x07ce
00000831: JUMP
00000832: JUMPDEST
00000833: PUSH32 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143
00000854: SLOAD
00000855: PUSH1 0xff
00000857: AND
00000858: ISZERO
00000859: PUSH2 0x086a
0000085c: JUMPI
0000085d: PUSH2 0x0865
00000860: DUP4
00000861: PUSH2 0x0b10
00000864: JUMP
00000865: JUMPDEST
00000866: POP
00000867: POP
00000868: POP
00000869: JUMP
0000086a: JUMPDEST
0000086b: DUP3
0000086c: PUSH1 0x01
0000086e: PUSH1 0x01
00000870: PUSH1 0xa0
00000872: SHL
00000873: SUB
00000874: AND
00000875: PUSH4 0x52d1902d
0000087a: PUSH1 0x40
0000087c: MLOAD
0000087d: DUP2
0000087e: PUSH4 0xffffffff
00000883: AND
00000884: PUSH1 0xe0
00000886: SHL
00000887: DUP2
00000888: MSTORE
00000889: PUSH1 0x04
0000088b: ADD
0000088c: PUSH1 0x20
0000088e: PUSH1 0x40
00000890: MLOAD
00000891: DUP1
00000892: DUP4
00000893: SUB
00000894: DUP2
00000895: DUP7
00000896: GAS
00000897: STATICCALL
00000898: SWAP3
00000899: POP
0000089a: POP
0000089b: POP
0000089c: DUP1
0000089d: ISZERO
0000089e: PUSH2 0x08c4
000008a1: JUMPI
000008a2: POP
000008a3: PUSH1 0x40
000008a5: DUP1
000008a6: MLOAD
000008a7: PUSH1 0x1f
000008a9: RETURNDATASIZE
000008aa: SWAP1
000008ab: DUP2
000008ac: ADD
000008ad: PUSH1 0x1f
000008af: NOT
000008b0: AND
000008b1: DUP3
000008b2: ADD
000008b3: SWAP1
000008b4: SWAP3
000008b5: MSTORE
000008b6: PUSH2 0x08c1
000008b9: SWAP2
000008ba: DUP2
000008bb: ADD
000008bc: SWAP1
000008bd: PUSH2 0x10c2
000008c0: JUMP
000008c1: JUMPDEST
000008c2: PUSH1 0x01
000008c4: JUMPDEST
000008c5: PUSH2 0x0936
000008c8: JUMPI
000008c9: PUSH1 0x40
000008cb: MLOAD
000008cc: PUSH3 0x461bcd
000008d0: PUSH1 0xe5
000008d2: SHL
000008d3: DUP2
000008d4: MSTORE
000008d5: PUSH1 0x20
000008d7: PUSH1 0x04
000008d9: DUP3
000008da: ADD
000008db: MSTORE
000008dc: PUSH1 0x2e
000008de: PUSH1 0x24
000008e0: DUP3
000008e1: ADD
000008e2: MSTORE
000008e3: PUSH32 0x45524331393637557067726164653a206e657720696d706c656d656e74617469
00000904: PUSH1 0x44
00000906: DUP3
00000907: ADD
00000908: MSTORE
00000909: PUSH32 0x6f6e206973206e6f742055555053000000000000000000000000000000000000
0000092a: PUSH1 0x64
0000092c: DUP3
0000092d: ADD
0000092e: MSTORE
0000092f: PUSH1 0x84
00000931: ADD
00000932: PUSH2 0x037b
00000935: JUMP
00000936: JUMPDEST
00000937: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
00000958: DUP2
00000959: EQ
0000095a: PUSH2 0x09cb
0000095d: JUMPI
0000095e: PUSH1 0x40
00000960: MLOAD
00000961: PUSH3 0x461bcd
00000965: PUSH1 0xe5
00000967: SHL
00000968: DUP2
00000969: MSTORE
0000096a: PUSH1 0x20
0000096c: PUSH1 0x04
0000096e: DUP3
0000096f: ADD
00000970: MSTORE
00000971: PUSH1 0x29
00000973: PUSH1 0x24
00000975: DUP3
00000976: ADD
00000977: MSTORE
00000978: PUSH32 0x45524331393637557067726164653a20756e737570706f727465642070726f78
00000999: PUSH1 0x44
0000099b: DUP3
0000099c: ADD
0000099d: MSTORE
0000099e: PUSH32 0x6961626c65555549440000000000000000000000000000000000000000000000
000009bf: PUSH1 0x64
000009c1: DUP3
000009c2: ADD
000009c3: MSTORE
000009c4: PUSH1 0x84
000009c6: ADD
000009c7: PUSH2 0x037b
000009ca: JUMP
000009cb: JUMPDEST
000009cc: POP
000009cd: PUSH2 0x0865
000009d0: DUP4
000009d1: DUP4
000009d2: DUP4
000009d3: PUSH2 0x0be6
000009d6: JUMP
000009d7: JUMPDEST
000009d8: PUSH1 0x00
000009da: DUP1
000009db: SLOAD
000009dc: PUSH2 0x0100
000009df: SWAP1
000009e0: DIV
000009e1: PUSH1 0xff
000009e3: AND
000009e4: ISZERO
000009e5: PUSH2 0x0a74
000009e8: JUMPI
000009e9: DUP2
000009ea: PUSH1 0xff
000009ec: AND
000009ed: PUSH1 0x01
000009ef: EQ
000009f0: DUP1
000009f1: ISZERO
000009f2: PUSH2 0x09fa
000009f5: JUMPI
000009f6: POP
000009f7: ADDRESS
000009f8: EXTCODESIZE
000009f9: ISZERO
000009fa: JUMPDEST
000009fb: PUSH2 0x0a6c
000009fe: JUMPI
000009ff: PUSH1 0x40
00000a01: MLOAD
00000a02: PUSH3 0x461bcd
00000a06: PUSH1 0xe5
00000a08: SHL
00000a09: DUP2
00000a0a: MSTORE
00000a0b: PUSH1 0x20
00000a0d: PUSH1 0x04
00000a0f: DUP3
00000a10: ADD
00000a11: MSTORE
00000a12: PUSH1 0x2e
00000a14: PUSH1 0x24
00000a16: DUP3
00000a17: ADD
00000a18: MSTORE
00000a19: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561
00000a3a: PUSH1 0x44
00000a3c: DUP3
00000a3d: ADD
00000a3e: MSTORE
00000a3f: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000
00000a60: PUSH1 0x64
00000a62: DUP3
00000a63: ADD
00000a64: MSTORE
00000a65: PUSH1 0x84
00000a67: ADD
00000a68: PUSH2 0x037b
00000a6b: JUMP
00000a6c: JUMPDEST
00000a6d: POP
00000a6e: PUSH1 0x00
00000a70: SWAP2
00000a71: SWAP1
00000a72: POP
00000a73: JUMP
00000a74: JUMPDEST
00000a75: PUSH1 0x00
00000a77: SLOAD
00000a78: PUSH1 0xff
00000a7a: DUP1
00000a7b: DUP5
00000a7c: AND
00000a7d: SWAP2
00000a7e: AND
00000a7f: LT
00000a80: PUSH2 0x0af1
00000a83: JUMPI
00000a84: PUSH1 0x40
00000a86: MLOAD
00000a87: PUSH3 0x461bcd
00000a8b: PUSH1 0xe5
00000a8d: SHL
00000a8e: DUP2
00000a8f: MSTORE
00000a90: PUSH1 0x20
00000a92: PUSH1 0x04
00000a94: DUP3
00000a95: ADD
00000a96: MSTORE
00000a97: PUSH1 0x2e
00000a99: PUSH1 0x24
00000a9b: DUP3
00000a9c: ADD
00000a9d: MSTORE
00000a9e: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561
00000abf: PUSH1 0x44
00000ac1: DUP3
00000ac2: ADD
00000ac3: MSTORE
00000ac4: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000
00000ae5: PUSH1 0x64
00000ae7: DUP3
00000ae8: ADD
00000ae9: MSTORE
00000aea: PUSH1 0x84
00000aec: ADD
00000aed: PUSH2 0x037b
00000af0: JUMP
00000af1: JUMPDEST
00000af2: POP
00000af3: PUSH1 0x00
00000af5: DUP1
00000af6: SLOAD
00000af7: PUSH1 0xff
00000af9: NOT
00000afa: AND
00000afb: PUSH1 0xff
00000afd: SWAP3
00000afe: SWAP1
00000aff: SWAP3
00000b00: AND
00000b01: SWAP2
00000b02: SWAP1
00000b03: SWAP2
00000b04: OR
00000b05: SWAP1
00000b06: SSTORE
00000b07: PUSH1 0x01
00000b09: SWAP1
00000b0a: JUMP
00000b0b: JUMPDEST
00000b0c: SWAP2
00000b0d: SWAP1
00000b0e: POP
00000b0f: JUMP
00000b10: JUMPDEST
00000b11: PUSH1 0x01
00000b13: PUSH1 0x01
00000b15: PUSH1 0xa0
00000b17: SHL
00000b18: SUB
00000b19: DUP2
00000b1a: AND
00000b1b: EXTCODESIZE
00000b1c: PUSH2 0x0b8d
00000b1f: JUMPI
00000b20: PUSH1 0x40
00000b22: MLOAD
00000b23: PUSH3 0x461bcd
00000b27: PUSH1 0xe5
00000b29: SHL
00000b2a: DUP2
00000b2b: MSTORE
00000b2c: PUSH1 0x20
00000b2e: PUSH1 0x04
00000b30: DUP3
00000b31: ADD
00000b32: MSTORE
00000b33: PUSH1 0x2d
00000b35: PUSH1 0x24
00000b37: DUP3
00000b38: ADD
00000b39: MSTORE
00000b3a: PUSH32 0x455243313936373a206e657720696d706c656d656e746174696f6e206973206e
00000b5b: PUSH1 0x44
00000b5d: DUP3
00000b5e: ADD
00000b5f: MSTORE
00000b60: PUSH32 0x6f74206120636f6e747261637400000000000000000000000000000000000000
00000b81: PUSH1 0x64
00000b83: DUP3
00000b84: ADD
00000b85: MSTORE
00000b86: PUSH1 0x84
00000b88: ADD
00000b89: PUSH2 0x037b
00000b8c: JUMP
00000b8d: JUMPDEST
00000b8e: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
00000baf: DUP1
00000bb0: SLOAD
00000bb1: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000bd2: AND
00000bd3: PUSH1 0x01
00000bd5: PUSH1 0x01
00000bd7: PUSH1 0xa0
00000bd9: SHL
00000bda: SUB
00000bdb: SWAP3
00000bdc: SWAP1
00000bdd: SWAP3
00000bde: AND
00000bdf: SWAP2
00000be0: SWAP1
00000be1: SWAP2
00000be2: OR
00000be3: SWAP1
00000be4: SSTORE
00000be5: JUMP
00000be6: JUMPDEST
00000be7: PUSH2 0x0bef
00000bea: DUP4
00000beb: PUSH2 0x0c0b
00000bee: JUMP
00000bef: JUMPDEST
00000bf0: PUSH1 0x00
00000bf2: DUP3
00000bf3: MLOAD
00000bf4: GT
00000bf5: DUP1
00000bf6: PUSH2 0x0bfc
00000bf9: JUMPI
00000bfa: POP
00000bfb: DUP1
00000bfc: JUMPDEST
00000bfd: ISZERO
00000bfe: PUSH2 0x0865
00000c01: JUMPI
00000c02: PUSH2 0x07c8
00000c05: DUP4
00000c06: DUP4
00000c07: PUSH2 0x0c4b
00000c0a: JUMP
00000c0b: JUMPDEST
00000c0c: PUSH2 0x0c14
00000c0f: DUP2
00000c10: PUSH2 0x0b10
00000c13: JUMP
00000c14: JUMPDEST
00000c15: PUSH1 0x40
00000c17: MLOAD
00000c18: PUSH1 0x01
00000c1a: PUSH1 0x01
00000c1c: PUSH1 0xa0
00000c1e: SHL
00000c1f: SUB
00000c20: DUP3
00000c21: AND
00000c22: SWAP1
00000c23: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b
00000c44: SWAP1
00000c45: PUSH1 0x00
00000c47: SWAP1
00000c48: LOG2
00000c49: POP
00000c4a: JUMP
00000c4b: JUMPDEST
00000c4c: PUSH1 0x60
00000c4e: PUSH1 0x01
00000c50: PUSH1 0x01
00000c52: PUSH1 0xa0
00000c54: SHL
00000c55: SUB
00000c56: DUP4
00000c57: AND
00000c58: EXTCODESIZE
00000c59: PUSH2 0x0cca
00000c5c: JUMPI
00000c5d: PUSH1 0x40
00000c5f: MLOAD
00000c60: PUSH3 0x461bcd
00000c64: PUSH1 0xe5
00000c66: SHL
00000c67: DUP2
00000c68: MSTORE
00000c69: PUSH1 0x20
00000c6b: PUSH1 0x04
00000c6d: DUP3
00000c6e: ADD
00000c6f: MSTORE
00000c70: PUSH1 0x26
00000c72: PUSH1 0x24
00000c74: DUP3
00000c75: ADD
00000c76: MSTORE
00000c77: PUSH32 0x416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f
00000c98: PUSH1 0x44
00000c9a: DUP3
00000c9b: ADD
00000c9c: MSTORE
00000c9d: PUSH32 0x6e74726163740000000000000000000000000000000000000000000000000000
00000cbe: PUSH1 0x64
00000cc0: DUP3
00000cc1: ADD
00000cc2: MSTORE
00000cc3: PUSH1 0x84
00000cc5: ADD
00000cc6: PUSH2 0x037b
00000cc9: JUMP
00000cca: JUMPDEST
00000ccb: PUSH1 0x00
00000ccd: DUP1
00000cce: DUP5
00000ccf: PUSH1 0x01
00000cd1: PUSH1 0x01
00000cd3: PUSH1 0xa0
00000cd5: SHL
00000cd6: SUB
00000cd7: AND
00000cd8: DUP5
00000cd9: PUSH1 0x40
00000cdb: MLOAD
00000cdc: PUSH2 0x0ce5
00000cdf: SWAP2
00000ce0: SWAP1
00000ce1: PUSH2 0x10db
00000ce4: JUMP
00000ce5: JUMPDEST
00000ce6: PUSH1 0x00
00000ce8: PUSH1 0x40
00000cea: MLOAD
00000ceb: DUP1
00000cec: DUP4
00000ced: SUB
00000cee: DUP2
00000cef: DUP6
00000cf0: GAS
00000cf1: DELEGATECALL
00000cf2: SWAP2
00000cf3: POP
00000cf4: POP
00000cf5: RETURNDATASIZE
00000cf6: DUP1
00000cf7: PUSH1 0x00
00000cf9: DUP2
00000cfa: EQ
00000cfb: PUSH2 0x0d20
00000cfe: JUMPI
00000cff: PUSH1 0x40
00000d01: MLOAD
00000d02: SWAP2
00000d03: POP
00000d04: PUSH1 0x1f
00000d06: NOT
00000d07: PUSH1 0x3f
00000d09: RETURNDATASIZE
00000d0a: ADD
00000d0b: AND
00000d0c: DUP3
00000d0d: ADD
00000d0e: PUSH1 0x40
00000d10: MSTORE
00000d11: RETURNDATASIZE
00000d12: DUP3
00000d13: MSTORE
00000d14: RETURNDATASIZE
00000d15: PUSH1 0x00
00000d17: PUSH1 0x20
00000d19: DUP5
00000d1a: ADD
00000d1b: RETURNDATACOPY
00000d1c: PUSH2 0x0d25
00000d1f: JUMP
00000d20: JUMPDEST
00000d21: PUSH1 0x60
00000d23: SWAP2
00000d24: POP
00000d25: JUMPDEST
00000d26: POP
00000d27: SWAP2
00000d28: POP
00000d29: SWAP2
00000d2a: POP
00000d2b: PUSH2 0x0d4d
00000d2e: DUP3
00000d2f: DUP3
00000d30: PUSH1 0x40
00000d32: MLOAD
00000d33: DUP1
00000d34: PUSH1 0x60
00000d36: ADD
00000d37: PUSH1 0x40
00000d39: MSTORE
00000d3a: DUP1
00000d3b: PUSH1 0x27
00000d3d: DUP2
00000d3e: MSTORE
00000d3f: PUSH1 0x20
00000d41: ADD
00000d42: PUSH2 0x110b
00000d45: PUSH1 0x27
00000d47: SWAP2
00000d48: CODECOPY
00000d49: PUSH2 0x0d56
00000d4c: JUMP
00000d4d: JUMPDEST
00000d4e: SWAP6
00000d4f: SWAP5
00000d50: POP
00000d51: POP
00000d52: POP
00000d53: POP
00000d54: POP
00000d55: JUMP
00000d56: JUMPDEST
00000d57: PUSH1 0x60
00000d59: DUP4
00000d5a: ISZERO
00000d5b: PUSH2 0x0d65
00000d5e: JUMPI
00000d5f: POP
00000d60: DUP2
00000d61: PUSH2 0x0d8f
00000d64: JUMP
00000d65: JUMPDEST
00000d66: DUP3
00000d67: MLOAD
00000d68: ISZERO
00000d69: PUSH2 0x0d75
00000d6c: JUMPI
00000d6d: DUP3
00000d6e: MLOAD
00000d6f: DUP1
00000d70: DUP5
00000d71: PUSH1 0x20
00000d73: ADD
00000d74: REVERT
00000d75: JUMPDEST
00000d76: DUP2
00000d77: PUSH1 0x40
00000d79: MLOAD
00000d7a: PUSH3 0x461bcd
00000d7e: PUSH1 0xe5
00000d80: SHL
00000d81: DUP2
00000d82: MSTORE
00000d83: PUSH1 0x04
00000d85: ADD
00000d86: PUSH2 0x037b
00000d89: SWAP2
00000d8a: SWAP1
00000d8b: PUSH2 0x10f7
00000d8e: JUMP
00000d8f: JUMPDEST
00000d90: SWAP4
00000d91: SWAP3
00000d92: POP
00000d93: POP
00000d94: POP
00000d95: JUMP
00000d96: JUMPDEST
00000d97: DUP1
00000d98: CALLDATALOAD
00000d99: PUSH1 0x01
00000d9b: PUSH1 0x01
00000d9d: PUSH1 0xa0
00000d9f: SHL
00000da0: SUB
00000da1: DUP2
00000da2: AND
00000da3: DUP2
00000da4: EQ
00000da5: PUSH2 0x0b0b
00000da8: JUMPI
00000da9: PUSH1 0x00
00000dab: DUP1
00000dac: REVERT
00000dad: JUMPDEST
00000dae: PUSH1 0x00
00000db0: DUP1
00000db1: DUP4
00000db2: PUSH1 0x1f
00000db4: DUP5
00000db5: ADD
00000db6: SLT
00000db7: PUSH2 0x0dbf
00000dba: JUMPI
00000dbb: PUSH1 0x00
00000dbd: DUP1
00000dbe: REVERT
00000dbf: JUMPDEST
00000dc0: POP
00000dc1: DUP2
00000dc2: CALLDATALOAD
00000dc3: PUSH8 0xffffffffffffffff
00000dcc: DUP2
00000dcd: GT
00000dce: ISZERO
00000dcf: PUSH2 0x0dd7
00000dd2: JUMPI
00000dd3: PUSH1 0x00
00000dd5: DUP1
00000dd6: REVERT
00000dd7: JUMPDEST
00000dd8: PUSH1 0x20
00000dda: DUP4
00000ddb: ADD
00000ddc: SWAP2
00000ddd: POP
00000dde: DUP4
00000ddf: PUSH1 0x20
00000de1: DUP3
00000de2: DUP6
00000de3: ADD
00000de4: ADD
00000de5: GT
00000de6: ISZERO
00000de7: PUSH2 0x04c9
00000dea: JUMPI
00000deb: PUSH1 0x00
00000ded: DUP1
00000dee: REVERT
00000def: JUMPDEST
00000df0: PUSH1 0x00
00000df2: DUP1
00000df3: PUSH1 0x00
00000df5: PUSH1 0x40
00000df7: DUP5
00000df8: DUP7
00000df9: SUB
00000dfa: SLT
00000dfb: ISZERO
00000dfc: PUSH2 0x0e04
00000dff: JUMPI
00000e00: PUSH1 0x00
00000e02: DUP1
00000e03: REVERT
00000e04: JUMPDEST
00000e05: PUSH2 0x0e0d
00000e08: DUP5
00000e09: PUSH2 0x0d96
00000e0c: JUMP
00000e0d: JUMPDEST
00000e0e: SWAP3
00000e0f: POP
00000e10: PUSH1 0x20
00000e12: DUP5
00000e13: ADD
00000e14: CALLDATALOAD
00000e15: PUSH8 0xffffffffffffffff
00000e1e: DUP2
00000e1f: GT
00000e20: ISZERO
00000e21: PUSH2 0x0e29
00000e24: JUMPI
00000e25: PUSH1 0x00
00000e27: DUP1
00000e28: REVERT
00000e29: JUMPDEST
00000e2a: PUSH2 0x0e35
00000e2d: DUP7
00000e2e: DUP3
00000e2f: DUP8
00000e30: ADD
00000e31: PUSH2 0x0dad
00000e34: JUMP
00000e35: JUMPDEST
00000e36: SWAP5
00000e37: SWAP8
00000e38: SWAP1
00000e39: SWAP7
00000e3a: POP
00000e3b: SWAP4
00000e3c: SWAP5
00000e3d: POP
00000e3e: POP
00000e3f: POP
00000e40: POP
00000e41: JUMP
00000e42: JUMPDEST
00000e43: PUSH1 0x00
00000e45: JUMPDEST
00000e46: DUP4
00000e47: DUP2
00000e48: LT
00000e49: ISZERO
00000e4a: PUSH2 0x0e5d
00000e4d: JUMPI
00000e4e: DUP2
00000e4f: DUP2
00000e50: ADD
00000e51: MLOAD
00000e52: DUP4
00000e53: DUP3
00000e54: ADD
00000e55: MSTORE
00000e56: PUSH1 0x20
00000e58: ADD
00000e59: PUSH2 0x0e45
00000e5c: JUMP
00000e5d: JUMPDEST
00000e5e: DUP4
00000e5f: DUP2
00000e60: GT
00000e61: ISZERO
00000e62: PUSH2 0x07c8
00000e65: JUMPI
00000e66: POP
00000e67: POP
00000e68: PUSH1 0x00
00000e6a: SWAP2
00000e6b: ADD
00000e6c: MSTORE
00000e6d: JUMP
00000e6e: JUMPDEST
00000e6f: PUSH1 0x00
00000e71: DUP2
00000e72: MLOAD
00000e73: DUP1
00000e74: DUP5
00000e75: MSTORE
00000e76: PUSH2 0x0e86
00000e79: DUP2
00000e7a: PUSH1 0x20
00000e7c: DUP7
00000e7d: ADD
00000e7e: PUSH1 0x20
00000e80: DUP7
00000e81: ADD
00000e82: PUSH2 0x0e42
00000e85: JUMP
00000e86: JUMPDEST
00000e87: PUSH1 0x1f
00000e89: ADD
00000e8a: PUSH1 0x1f
00000e8c: NOT
00000e8d: AND
00000e8e: SWAP3
00000e8f: SWAP1
00000e90: SWAP3
00000e91: ADD
00000e92: PUSH1 0x20
00000e94: ADD
00000e95: SWAP3
00000e96: SWAP2
00000e97: POP
00000e98: POP
00000e99: JUMP
00000e9a: JUMPDEST
00000e9b: DUP3
00000e9c: ISZERO
00000e9d: ISZERO
00000e9e: DUP2
00000e9f: MSTORE
00000ea0: PUSH1 0x40
00000ea2: PUSH1 0x20
00000ea4: DUP3
00000ea5: ADD
00000ea6: MSTORE
00000ea7: PUSH1 0x00
00000ea9: PUSH2 0x0eb5
00000eac: PUSH1 0x40
00000eae: DUP4
00000eaf: ADD
00000eb0: DUP5
00000eb1: PUSH2 0x0e6e
00000eb4: JUMP
00000eb5: JUMPDEST
00000eb6: SWAP5
00000eb7: SWAP4
00000eb8: POP
00000eb9: POP
00000eba: POP
00000ebb: POP
00000ebc: JUMP
00000ebd: JUMPDEST
00000ebe: PUSH1 0x00
00000ec0: DUP1
00000ec1: PUSH1 0x00
00000ec3: DUP1
00000ec4: PUSH1 0x00
00000ec6: PUSH1 0x80
00000ec8: DUP7
00000ec9: DUP9
00000eca: SUB
00000ecb: SLT
00000ecc: ISZERO
00000ecd: PUSH2 0x0ed5
00000ed0: JUMPI
00000ed1: PUSH1 0x00
00000ed3: DUP1
00000ed4: REVERT
00000ed5: JUMPDEST
00000ed6: PUSH2 0x0ede
00000ed9: DUP7
00000eda: PUSH2 0x0d96
00000edd: JUMP
00000ede: JUMPDEST
00000edf: SWAP5
00000ee0: POP
00000ee1: PUSH2 0x0eec
00000ee4: PUSH1 0x20
00000ee6: DUP8
00000ee7: ADD
00000ee8: PUSH2 0x0d96
00000eeb: JUMP
00000eec: JUMPDEST
00000eed: SWAP4
00000eee: POP
00000eef: PUSH1 0x40
00000ef1: DUP7
00000ef2: ADD
00000ef3: CALLDATALOAD
00000ef4: SWAP3
00000ef5: POP
00000ef6: PUSH1 0x60
00000ef8: DUP7
00000ef9: ADD
00000efa: CALLDATALOAD
00000efb: PUSH8 0xffffffffffffffff
00000f04: DUP2
00000f05: GT
00000f06: ISZERO
00000f07: PUSH2 0x0f0f
00000f0a: JUMPI
00000f0b: PUSH1 0x00
00000f0d: DUP1
00000f0e: REVERT
00000f0f: JUMPDEST
00000f10: PUSH2 0x0f1b
00000f13: DUP9
00000f14: DUP3
00000f15: DUP10
00000f16: ADD
00000f17: PUSH2 0x0dad
00000f1a: JUMP
00000f1b: JUMPDEST
00000f1c: SWAP7
00000f1d: SWAP10
00000f1e: SWAP6
00000f1f: SWAP9
00000f20: POP
00000f21: SWAP4
00000f22: SWAP7
00000f23: POP
00000f24: SWAP3
00000f25: SWAP5
00000f26: SWAP4
00000f27: SWAP3
00000f28: POP
00000f29: POP
00000f2a: POP
00000f2b: JUMP
00000f2c: JUMPDEST
00000f2d: PUSH1 0x00
00000f2f: PUSH1 0x20
00000f31: DUP3
00000f32: DUP5
00000f33: SUB
00000f34: SLT
00000f35: ISZERO
00000f36: PUSH2 0x0f3e
00000f39: JUMPI
00000f3a: PUSH1 0x00
00000f3c: DUP1
00000f3d: REVERT
00000f3e: JUMPDEST
00000f3f: PUSH2 0x0d8f
00000f42: DUP3
00000f43: PUSH2 0x0d96
00000f46: JUMP
00000f47: JUMPDEST
00000f48: PUSH1 0x00
00000f4a: DUP1
00000f4b: PUSH1 0x40
00000f4d: DUP4
00000f4e: DUP6
00000f4f: SUB
00000f50: SLT
00000f51: ISZERO
00000f52: PUSH2 0x0f5a
00000f55: JUMPI
00000f56: PUSH1 0x00
00000f58: DUP1
00000f59: REVERT
00000f5a: JUMPDEST
00000f5b: PUSH2 0x0f63
00000f5e: DUP4
00000f5f: PUSH2 0x0d96
00000f62: JUMP
00000f63: JUMPDEST
00000f64: SWAP5
00000f65: PUSH1 0x20
00000f67: SWAP4
00000f68: SWAP1
00000f69: SWAP4
00000f6a: ADD
00000f6b: CALLDATALOAD
00000f6c: SWAP4
00000f6d: POP
00000f6e: POP
00000f6f: POP
00000f70: JUMP
00000f71: JUMPDEST
00000f72: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00000f93: PUSH1 0x00
00000f95: MSTORE
00000f96: PUSH1 0x41
00000f98: PUSH1 0x04
00000f9a: MSTORE
00000f9b: PUSH1 0x24
00000f9d: PUSH1 0x00
00000f9f: REVERT
00000fa0: JUMPDEST
00000fa1: PUSH1 0x00
00000fa3: DUP1
00000fa4: PUSH1 0x40
00000fa6: DUP4
00000fa7: DUP6
00000fa8: SUB
00000fa9: SLT
00000faa: ISZERO
00000fab: PUSH2 0x0fb3
00000fae: JUMPI
00000faf: PUSH1 0x00
00000fb1: DUP1
00000fb2: REVERT
00000fb3: JUMPDEST
00000fb4: PUSH2 0x0fbc
00000fb7: DUP4
00000fb8: PUSH2 0x0d96
00000fbb: JUMP
00000fbc: JUMPDEST
00000fbd: SWAP2
00000fbe: POP
00000fbf: PUSH1 0x20
00000fc1: DUP4
00000fc2: ADD
00000fc3: CALLDATALOAD
00000fc4: PUSH8 0xffffffffffffffff
00000fcd: DUP1
00000fce: DUP3
00000fcf: GT
00000fd0: ISZERO
00000fd1: PUSH2 0x0fd9
00000fd4: JUMPI
00000fd5: PUSH1 0x00
00000fd7: DUP1
00000fd8: REVERT
00000fd9: JUMPDEST
00000fda: DUP2
00000fdb: DUP6
00000fdc: ADD
00000fdd: SWAP2
00000fde: POP
00000fdf: DUP6
00000fe0: PUSH1 0x1f
00000fe2: DUP4
00000fe3: ADD
00000fe4: SLT
00000fe5: PUSH2 0x0fed
00000fe8: JUMPI
00000fe9: PUSH1 0x00
00000feb: DUP1
00000fec: REVERT
00000fed: JUMPDEST
00000fee: DUP2
00000fef: CALLDATALOAD
00000ff0: DUP2
00000ff1: DUP2
00000ff2: GT
00000ff3: ISZERO
00000ff4: PUSH2 0x0fff
00000ff7: JUMPI
00000ff8: PUSH2 0x0fff
00000ffb: PUSH2 0x0f71
00000ffe: JUMP
00000fff: JUMPDEST
00001000: PUSH1 0x40
00001002: MLOAD
00001003: PUSH1 0x1f
00001005: DUP3
00001006: ADD
00001007: PUSH1 0x1f
00001009: NOT
0000100a: SWAP1
0000100b: DUP2
0000100c: AND
0000100d: PUSH1 0x3f
0000100f: ADD
00001010: AND
00001011: DUP2
00001012: ADD
00001013: SWAP1
00001014: DUP4
00001015: DUP3
00001016: GT
00001017: DUP2
00001018: DUP4
00001019: LT
0000101a: OR
0000101b: ISZERO
0000101c: PUSH2 0x1027
0000101f: JUMPI
00001020: PUSH2 0x1027
00001023: PUSH2 0x0f71
00001026: JUMP
00001027: JUMPDEST
00001028: DUP2
00001029: PUSH1 0x40
0000102b: MSTORE
0000102c: DUP3
0000102d: DUP2
0000102e: MSTORE
0000102f: DUP9
00001030: PUSH1 0x20
00001032: DUP5
00001033: DUP8
00001034: ADD
00001035: ADD
00001036: GT
00001037: ISZERO
00001038: PUSH2 0x1040
0000103b: JUMPI
0000103c: PUSH1 0x00
0000103e: DUP1
0000103f: REVERT
00001040: JUMPDEST
00001041: DUP3
00001042: PUSH1 0x20
00001044: DUP7
00001045: ADD
00001046: PUSH1 0x20
00001048: DUP4
00001049: ADD
0000104a: CALLDATACOPY
0000104b: PUSH1 0x00
0000104d: PUSH1 0x20
0000104f: DUP5
00001050: DUP4
00001051: ADD
00001052: ADD
00001053: MSTORE
00001054: DUP1
00001055: SWAP6
00001056: POP
00001057: POP
00001058: POP
00001059: POP
0000105a: POP
0000105b: POP
0000105c: SWAP3
0000105d: POP
0000105e: SWAP3
0000105f: SWAP1
00001060: POP
00001061: JUMP
00001062: JUMPDEST
00001063: DUP2
00001064: DUP4
00001065: DUP3
00001066: CALLDATACOPY
00001067: PUSH1 0x00
00001069: SWAP2
0000106a: ADD
0000106b: SWAP1
0000106c: DUP2
0000106d: MSTORE
0000106e: SWAP2
0000106f: SWAP1
00001070: POP
00001071: JUMP
00001072: JUMPDEST
00001073: PUSH1 0x00
00001075: DUP2
00001076: MLOAD
00001077: PUSH1 0x20
00001079: DUP4
0000107a: ADD
0000107b: MLOAD
0000107c: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000109d: DUP1
0000109e: DUP3
0000109f: AND
000010a0: SWAP4
000010a1: POP
000010a2: PUSH1 0x04
000010a4: DUP4
000010a5: LT
000010a6: ISZERO
000010a7: PUSH2 0x10ba
000010aa: JUMPI
000010ab: DUP1
000010ac: DUP2
000010ad: DUP5
000010ae: PUSH1 0x04
000010b0: SUB
000010b1: PUSH1 0x03
000010b3: SHL
000010b4: SHL
000010b5: DUP4
000010b6: AND
000010b7: AND
000010b8: SWAP4
000010b9: POP
000010ba: JUMPDEST
000010bb: POP
000010bc: POP
000010bd: POP
000010be: SWAP2
000010bf: SWAP1
000010c0: POP
000010c1: JUMP
000010c2: JUMPDEST
000010c3: PUSH1 0x00
000010c5: PUSH1 0x20
000010c7: DUP3
000010c8: DUP5
000010c9: SUB
000010ca: SLT
000010cb: ISZERO
000010cc: PUSH2 0x10d4
000010cf: JUMPI
000010d0: PUSH1 0x00
000010d2: DUP1
000010d3: REVERT
000010d4: JUMPDEST
000010d5: POP
000010d6: MLOAD
000010d7: SWAP2
000010d8: SWAP1
000010d9: POP
000010da: JUMP
000010db: JUMPDEST
000010dc: PUSH1 0x00
000010de: DUP3
000010df: MLOAD
000010e0: PUSH2 0x10ed
000010e3: DUP2
000010e4: DUP5
000010e5: PUSH1 0x20
000010e7: DUP8
000010e8: ADD
000010e9: PUSH2 0x0e42
000010ec: JUMP
000010ed: JUMPDEST
000010ee: SWAP2
000010ef: SWAP1
000010f0: SWAP2
000010f1: ADD
000010f2: SWAP3
000010f3: SWAP2
000010f4: POP
000010f5: POP
000010f6: JUMP
000010f7: JUMPDEST
000010f8: PUSH1 0x20
000010fa: DUP2
000010fb: MSTORE
000010fc: PUSH1 0x00
000010fe: PUSH2 0x0d8f
00001101: PUSH1 0x20
00001103: DUP4
00001104: ADD
00001105: DUP5
00001106: PUSH2 0x0e6e
00001109: JUMP
0000110a: INVALID
0000110b: COINBASE
0000110c: PUSH5 0x6472657373
00001112: GASPRICE
00001113: KECCAK256
00001114: PUSH13 0x6f772d6c6576656c2064656c65
00001122: PUSH8 0x6174652063616c6c
0000112b: KECCAK256
0000112c: PUSH7 0x61696c6564a264
00001134: PUSH10 0x706673582212202cbb61
0000113f: LOG3
00001140: TLOAD
00001141: SIGNEXTEND
00001142: SHL
00001143: BYTE
00001144: UNKNOWN(0xBC)
00001145: TLOAD
00001146: UNKNOWN(0x23)
00001147: ADDRESS
00001148: UNKNOWN(0xA9)
00001149: UNKNOWN(0xD3)
0000114a: SWAP15
0000114b: MUL
0000114c: UNKNOWN(0x25)
0000114d: UNKNOWN(0x23)
0000114e: UNKNOWN(0xCD)
0000114f: CLZ
00001150: PUSH5 0x3481d73033
00001156: SWAP15
00001157: SELFDESTRUCT
00001158: UNKNOWN(0xD1)
00001159: UNKNOWN(0xD5)
0000115a: SWAP12
0000115b: UNKNOWN(0x0F)
0000115c: PUSH5 0x736f6c6343
00001162: STOP
00001163: ADDMOD
00001164: UNKNOWN(0x0D)
00001165: STOP
00001166: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0x326c787eb124749565235d89fbb63c4577dc6275117394980b200a95b8f81d6a
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 108,
    "trace_id": "0x326c787eb124749565235d89fbb63c4577dc6275117394980b200a95b8f81d6a",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x52d1902d",
            "selector": "0x52d1902d",
            "calldata_variants": [
                "0x52d1902d",
                "0x52d1902d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6323d7af",
            "selector": "0x6323d7af",
            "calldata_variants": [
                "0x6323d7af",
                "0x6323d7af0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcd6dc687",
            "selector": "0xcd6dc687",
            "calldata_variants": [
                "0xcd6dc687",
                "0xcd6dc6870000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4847a79c",
            "selector": "0x4847a79c",
            "calldata_variants": [
                "0x4847a79c",
                "0x4847a79c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4f1ef286",
            "selector": "0x4f1ef286",
            "calldata_variants": [
                "0x4f1ef286",
                "0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0f4414c8",
            "selector": "0x0f4414c8",
            "calldata_variants": [
                "0x0f4414c8",
                "0x0f4414c80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x150b7a02",
            "selector": "0x150b7a02",
            "calldata_variants": [
                "0x150b7a02",
                "0x150b7a020000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3659cfe6",
            "selector": "0x3659cfe6",
            "calldata_variants": [
                "0x3659cfe6",
                "0x3659cfe60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3313,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
high other cast SELFDESTRUCT present 85 no
view
evidence_json
{
    "notes": "selfdestruct can remove contract code and send funds; review reachability",
    "selfdestruct_count": 1
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x9d8b6b4b446b751b01d4cc62c2649a78ec603eaab66714f455a98a47affbd022
call_targets: 0x7e0ae8e65fc3c322c9f2bedf630ce8ef799e292e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x9d8b6b4b446b751b01d4cc62c2649a78ec603eaab66714f455a98a47affbd022",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x7e0ae8e65fc3c322c9f2bedf630ce8ef799e292e"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x52d1902d",
            "selector": "0x52d1902d",
            "calldata_variants": [
                "0x52d1902d",
                "0x52d1902d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6323d7af",
            "selector": "0x6323d7af",
            "calldata_variants": [
                "0x6323d7af",
                "0x6323d7af0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcd6dc687",
            "selector": "0xcd6dc687",
            "calldata_variants": [
                "0xcd6dc687",
                "0xcd6dc6870000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4847a79c",
            "selector": "0x4847a79c",
            "calldata_variants": [
                "0x4847a79c",
                "0x4847a79c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4f1ef286",
            "selector": "0x4f1ef286",
            "calldata_variants": [
                "0x4f1ef286",
                "0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0f4414c8",
            "selector": "0x0f4414c8",
            "calldata_variants": [
                "0x0f4414c8",
                "0x0f4414c80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x150b7a02",
            "selector": "0x150b7a02",
            "calldata_variants": [
                "0x150b7a02",
                "0x150b7a020000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3659cfe6",
            "selector": "0x3659cfe6",
            "calldata_variants": [
                "0x3659cfe6",
                "0x3659cfe60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 563,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1199,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x9d8b6b4b446b751b01d4cc62c2649a78ec603eaab66714f455a98a47affbd022
call_targets: 0x7e0ae8e65fc3c322c9f2bedf630ce8ef799e292e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x9d8b6b4b446b751b01d4cc62c2649a78ec603eaab66714f455a98a47affbd022",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x7e0ae8e65fc3c322c9f2bedf630ce8ef799e292e"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x52d1902d",
            "selector": "0x52d1902d",
            "calldata_variants": [
                "0x52d1902d",
                "0x52d1902d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6323d7af",
            "selector": "0x6323d7af",
            "calldata_variants": [
                "0x6323d7af",
                "0x6323d7af0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcd6dc687",
            "selector": "0xcd6dc687",
            "calldata_variants": [
                "0xcd6dc687",
                "0xcd6dc6870000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4847a79c",
            "selector": "0x4847a79c",
            "calldata_variants": [
                "0x4847a79c",
                "0x4847a79c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4f1ef286",
            "selector": "0x4f1ef286",
            "calldata_variants": [
                "0x4f1ef286",
                "0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0f4414c8",
            "selector": "0x0f4414c8",
            "calldata_variants": [
                "0x0f4414c8",
                "0x0f4414c80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x150b7a02",
            "selector": "0x150b7a02",
            "calldata_variants": [
                "0x150b7a02",
                "0x150b7a020000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3659cfe6",
            "selector": "0x3659cfe6",
            "calldata_variants": [
                "0x3659cfe6",
                "0x3659cfe60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 563,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1199,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}
high other detector SELFDESTRUCT reachable 65 no no
view
trace_id: 0x80088c6f1b9b1dc3fe139e1edce4a4d40e82965a6451a03f32393480a79804de
validation_json
{
    "sink": "SELFDESTRUCT",
    "errors": 0,
    "status": "unknown",
    "attempts": 18,
    "trace_id": "0x80088c6f1b9b1dc3fe139e1edce4a4d40e82965a6451a03f32393480a79804de",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x52d1902d",
            "selector": "0x52d1902d",
            "calldata_variants": [
                "0x52d1902d",
                "0x52d1902d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6323d7af",
            "selector": "0x6323d7af",
            "calldata_variants": [
                "0x6323d7af",
                "0x6323d7af0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcd6dc687",
            "selector": "0xcd6dc687",
            "calldata_variants": [
                "0xcd6dc687",
                "0xcd6dc6870000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4847a79c",
            "selector": "0x4847a79c",
            "calldata_variants": [
                "0x4847a79c",
                "0x4847a79c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4f1ef286",
            "selector": "0x4f1ef286",
            "calldata_variants": [
                "0x4f1ef286",
                "0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0f4414c8",
            "selector": "0x0f4414c8",
            "calldata_variants": [
                "0x0f4414c8",
                "0x0f4414c80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x150b7a02",
            "selector": "0x150b7a02",
            "calldata_variants": [
                "0x150b7a02",
                "0x150b7a020000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3659cfe6",
            "selector": "0x3659cfe6",
            "calldata_variants": [
                "0x3659cfe6",
                "0x3659cfe60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [],
    "selfdestruct_count": 1
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
medium other codex Computed DELEGATECALL target reachable (possible arbitrary code execution if unguarded) 75 no
view
evidence_json
{
    "evidence": "Callsite shows DELEGATECALL at pc 3313 with target_expression_category \"computed\" and no guards detected in the analysis artifact; EIP-1967 slot reads are present, suggesting upgradeability paths may drive delegatecall.",
    "locations": [
        "pc:0xcf1"
    ],
    "recommendation": "Ensure delegatecall targets are strictly controlled (owner/role checks, allowlist/codehash validation) and that upgrade authorization cannot be bypassed. Consider additional runtime checks around delegatecall targets.",
    "exploit_scenario": "If an externally reachable path allows a caller to influence the delegatecall target (e.g., upgrade or delegatecall helper), an attacker could delegatecall into a malicious contract and take over storage, change critical slots, or trigger destructive behavior. Guard detection is heuristic, so this is a risk if access control is weak or bypassed."
}
medium reentrancy codex Low-level CALL with ETH value to computed target 75 no
view
evidence_json
{
    "evidence": "CALL at pc 563 and pc 1199 with target_expression_category \"computed\" and value_expression_category \"computed\"; returndata_checked is null in the evidence bundle.",
    "locations": [
        "pc:0x233",
        "pc:0x4af"
    ],
    "recommendation": "Apply checks-effects-interactions or a reentrancy guard around value transfers, validate/limit call targets and values, and ensure call success is explicitly handled.",
    "exploit_scenario": "Two CALL sites can transfer ETH to a computed target. If state is updated after these calls or if the target is attacker-controlled, a malicious callee could reenter or block execution. Return-data handling is unknown, so failed calls might not be detected in all paths."
}
medium other codex SELFDESTRUCT opcode present and marked reachable 75 no
view
evidence_json
{
    "evidence": "Basic block starting at pc 4363 contains a SELFDESTRUCT opcode; detector flagged SELFDESTRUCT reachable with no guards detected.",
    "locations": [
        "pc:0x110b"
    ],
    "recommendation": "Remove SELFDESTRUCT or gate it behind strong access control and ensure it is not reachable via proxy delegatecall paths.",
    "exploit_scenario": "If any externally callable path can reach SELFDESTRUCT (directly or via delegatecall through a proxy), the contract/proxy could be destroyed and its balance sent to an arbitrary beneficiary, permanently disabling functionality."
}