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

Analysis Run

019be3d6-8257-7158-b579-591cc8b3ef79

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

What survived the funnel

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

Confirmed
0
Validated
0
Source
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
40631 artifact.fetch complete 1 / 3 2 months ago
40632 proxy.resolve complete 1 / 3 2 months ago
40633 tool.cast_disasm complete 1 / 3 2 months ago
40634 analysis.bundle complete 1 / 3 2 months ago
40635 capability.graph complete 1 / 3 2 months ago
40636 detector.run complete 1 / 3 2 months ago
40637 validation.fork complete 1 / 3 2 months ago
41263 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
1
No findings?
no
Summary
Bytecode shows a delegatecall‑based proxy/router pattern with computed targets and no detected auth guards; if the implementation target is mutable or user‑controlled, it can enable full takeover.
View stdout
{"no_findings":false,"summary":"Bytecode shows a delegatecall‑based proxy/router pattern with computed targets and no detected auth guards; if the implementation target is mutable or user‑controlled, it can enable full takeover.","findings":[{"severity":"medium","category":"upgradeability","title":"Computed DELEGATECALL target (slot 0x13) with no detected access control","exploit_scenario":"If any externally reachable function can update the delegatecall target (e.g., a setter for the address stored in slot 0x13), an attacker could point it to a malicious implementation and gain arbitrary code execution in the proxy’s storage context, draining funds or seizing control. The analysis could not confirm whether the target is immutable or protected, so this risk depends on hidden upgrade mechanisms.","recommendation":"Verify whether slot 0x13 is writable after deployment. If upgrades are intended, restrict setters with explicit access control and emit upgrade events; if upgrades are not intended, make the target immutable or hard‑code it and remove any setters.","evidence":"detector_findings[0] flags “Untrusted DELEGATECALL target reachable” with 11 delegatecall sites; callsites show computed targets (pc 356, 1158, 1293, 1502, 1650, 1848, 1969, 2134, 2244, 2540, 3139). Storage reads from slot 0x13 occur at pc 1523/1540/1667/1680/1697/1865. No auth guards detected (auth.guards=[]). Validation indicates a constant target 0xf50b… but not confirmed, so mutability remains uncertain.","locations":["pc:0x164","pc:0x486","pc:0x50d","pc:0x5de","pc:0x672","pc:0x738","pc:0x7b1","pc:0x856","pc:0x8c4","pc:0x9ec","pc:0xc43","pc:0x5f3","pc:0x604","pc:0x683","pc:0x690","pc:0x6a1","pc:0x749"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-zyhm7aun
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019be3fb-7fdf-73e0-8091-50ba19e62dca
--------
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

thinking
**Preparing to read bytecode bundle**
exec
/bin/bash -lc ls in /tmp/codex-zyhm7aun succeeded in 6ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-zyhm7aun succeeded in 6ms:
{
  "analysis_artifact": {
    "address": "0xe9bb610e707a631e3460a9830821d3970a378166",
    "artifact_hash": "0x1d844d67e51156532e818245d9a6b54ef30c84d458679d0df43a0181ad857b11",
    "artifact_json": {
      "auth": {
        "guards": []
      },
      "basic_blocks": [
        {
          "end_pc": 12,
          "hash": "0xfe9f3cb5b9cfc3ec79b37699381529be6876f4b3794f3568eed1cbbf0dd6ecf5",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "CALLDATASIZE",
            "LT",
            "PUSH2",

thinking
**Identifying proxy and storage patterns**

I'm focusing on detecting delegatecall usage and upgradeability by searching JSON bundles for storage slots and callsites to gather evidence of proxy patterns.
exec
/bin/bash -lc 'rg -n "storage" BYTECODE_BUNDLE.json | head' in /tmp/codex-zyhm7aun succeeded in 17ms:
4643:          "storage": {
4692:          "storage": {
4741:          "storage": {
4790:          "storage": {
4839:          "storage": {
4888:          "storage": {
4937:          "storage": {
4986:          "storage": {
5035:          "storage": {
5084:          "storage": {
exec
/bin/bash -lc "sed -n '4600,4705p' BYTECODE_BUNDLE.json" in /tmp/codex-zyhm7aun succeeded in 14ms:
        },
        {
          "entry_pc": 3271288764,
          "selector": "0xc0ee0b8a"
        },
        {
          "entry_pc": 3504541104,
          "selector": "0xc2fbe7bc"
        },
        {
          "entry_pc": 3552888016,
          "selector": "0xd0e30db0"
        },
        {
          "entry_pc": 3740822715,
          "selector": "0xd3c4c4d0"
        },
        {
          "entry_pc": 4179393699,
          "selector": "0xdef86cbb"

thinking
**Confirming proxy pattern**

Found many delegatecalls and storage reads at slot 0x13, suggesting a custom proxy or diamond pattern rather than standard EIP-1967. Next, I'll examine storage writes to slot 0x13 and others to identify upgradeability or admin controls.
exec
/bin/bash -lc "sed -n '4705,4860p' BYTECODE_BUNDLE.json" in /tmp/codex-zyhm7aun succeeded in 5ms:
              {
                "op": "SLOAD",
                "pc": 1667,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000013"
              },
              {
                "op": "SLOAD",
                "pc": 1680,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000013"
              },
              {
                "op": "SLOAD",
                "pc": 1697,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000013"
              },
              {
                "op": "SLOAD",
                "pc": 1865,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000013"
              }

thinking
**Investigating storage write details**

I'm focusing on pinpointing where storage writes occur since the current view only shows a count without slot details; next, I'll search all function entries for "writes" to find more explicit storage slot mappings or related evidence.
exec
/bin/bash -lc 'rg -n "writes" BYTECODE_BUNDLE.json | head' in /tmp/codex-zyhm7aun succeeded in 10ms:
4677:            "writes": 4
4726:            "writes": 4
4775:            "writes": 4
4824:            "writes": 4
4873:            "writes": 4
4922:            "writes": 4
4971:            "writes": 4
5020:            "writes": 4
5069:            "writes": 4
5118:            "writes": 4

thinking
**Noticing missing storage writes list**

Checked for a storage writes list but found none; planning to search for "storage_slots" to locate relevant sections in the evidence bundle.
exec
/bin/bash -lc 'rg -n "slots" BYTECODE_BUNDLE.json | head' in /tmp/codex-zyhm7aun succeeded in 7ms:
4645:            "slots": [
4694:            "slots": [
4743:            "slots": [
4792:            "slots": [
4841:            "slots": [
4890:            "slots": [
4939:            "slots": [
4988:            "slots": [
5037:            "slots": [
5086:            "slots": [


thinking
**Analyzing multiple delegatecall sites**

Noticing several delegatecalls likely linked to a dispatcher or fallback, possibly targeting a fixed implementation address stored in a slot or memory; planning to inspect opcodes around the key program counters to clarify call routing logic.
thinking
**Confirming proxy with hardcoded implementation**

Found a PUSH20 of a fixed address at a jump destination that matches a delegatecall pattern with extcodesize check, indicating a proxy to a hardcoded implementation; function selectors appear invalid due to analysis but all functions delegatecall this target, suggesting it's not upgradeable without evidence of SSTORE updating the implementation slot.
exec
/bin/bash -lc 'rg -n "SSTORE" BYTECODE_BUNDLE.json | head -n 40' in /tmp/codex-zyhm7aun succeeded in 14ms:
1742:            "SSTORE",
1844:            "SSTORE",
1890:            "SSTORE",
2029:            "SSTORE",
exec
/bin/bash -lc "sed -n '1700,1765p' BYTECODE_BUNDLE.json" in /tmp/codex-zyhm7aun succeeded in 10ms:
          ],
          "start_pc": 1513
        },
        {
          "end_pc": 1531,
          "hash": "0xe3e783d72818e1d3c4b93e699b0d4a5d753940ec5255e9272186d1026264548a",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "SLOAD",
            "PUSH1",
            "AND",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1520
        },
        {
          "end_pc": 1535,

thinking
**Investigating SSTORE usage**

I'm focusing on the code around the first SSTORE instruction near block 1639 to understand its context and why it's not at the top. I'll review surrounding code to clarify its role.
exec
/bin/bash -lc "sed -n '1600,1705p' BYTECODE_BUNDLE.json" in /tmp/codex-zyhm7aun succeeded in 8ms:
            "MLOAD",
            "PUSH1",
            "PUSH1",
            "EXP",
            "PUSH4",
            "OP_86",
            "AND",
            "MUL",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_81",
            "ADD",
            "OP_93",
            "OP_90",
            "OP_93",
            "MSTORE",
            "PUSH1",
            "OP_83",
            "ADD",

thinking
**Inspecting state checks and updates**

I'm analyzing the code around the SLOAD bit check near 1520 as a possible guard and the SSTORE at 1639 likely updating a state variable; next, I'll examine the instructions from 1513 to 1665 to clarify their roles.
exec
/bin/bash -lc "sed -n '1510,1675p' BYTECODE_BUNDLE.json" in /tmp/codex-zyhm7aun succeeded in 11ms:
          "end_pc": 1303,
          "hash": "0x250d61edaeafb05f221523b6f95153789cfdc707348ec20b73f16dc95299bb36",
          "opcodes": [
            "PUSH1",
            "OP_80",
            "REVERT"
          ],
          "start_pc": 1300
        },
        {
          "end_pc": 1311,
          "hash": "0xef2977e5ed140ea8a61aa8637c925ace634897d30c72867546fa225239ca28e0",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "POP",
            "POP",
            "POP",
            "POP",
            "POP",

thinking
**Inspecting storage writes around pc 1639**

I'm focusing on SSTORE at pc 1639 to see what state it modifies and whether any access control appears nearby, as the lack of guards raises potential admin vulnerability concerns. Next, I'll examine the instructions around pc 1639 to 1660 for storage writes and related checks.
exec
/bin/bash -lc "sed -n '1625,1665p' BYTECODE_BUNDLE.json" in /tmp/codex-zyhm7aun succeeded in 10ms:
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "PUSH1",
            "OP_82",
            "ADD",
            "MSTORE",
            "PUSH1",
            "ADD",
            "PUSH1",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_83",
            "SUB",
            "OP_81",
            "OP_86",
            "OP_80",

thinking
**Re-examining code around SSTORE block**

I'm focusing on the code snippet around start_pc 1639 where the SSTORE opcode appears, targeting lines 1635 to 1655 to ensure full visibility of that block.
exec
/bin/bash -lc "sed -n '1630,1655p' BYTECODE_BUNDLE.json" in /tmp/codex-zyhm7aun succeeded in 6ms:
            "PUSH1",
            "OP_82",
            "ADD",
            "MSTORE",
            "PUSH1",
            "ADD",
            "PUSH1",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_83",
            "SUB",
            "OP_81",
            "OP_86",
            "OP_80",
            "EXTCODESIZE",
            "ISZERO",
            "ISZERO",
            "PUSH2",
            "JUMPI"

thinking
**Planning targeted context extraction**

I'll locate all "SSTORE" occurrences with line numbers, then extract surrounding lines to understand each instance in more detail.
exec
/bin/bash -lc "sed -n '1728,1755p' BYTECODE_BUNDLE.json" in /tmp/codex-zyhm7aun succeeded in 14ms:
        {
          "end_pc": 1639,
          "hash": "0x4e5621f3c5ea563137a576fc62737eb3740556a2bdbf6017b7d3dc48d4c7a50b",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "OP_80",
            "SLOAD",
            "PUSH1",
            "NOT",
            "AND",
            "PUSH1",
            "OR",
            "OP_90",
            "SSTORE",
            "PUSH20",
            "PUSH4",
            "PUSH1",
            "OP_83",
            "PUSH1",

thinking
**Analyzing SSTORE usage pattern**

The SSTORE operates on slot 0 with bitwise ops typical for a packed boolean like a reentrancy guard; no direct access control seen. Next, I'll inspect code around line 1838-1850 for more context.
exec
/bin/bash -lc "sed -n '1836,1854p' BYTECODE_BUNDLE.json" in /tmp/codex-zyhm7aun succeeded in 23ms:
            "POP",
            "PUSH1",
            "OP_80",
            "SLOAD",
            "PUSH1",
            "NOT",
            "AND",
            "OP_90",
            "SSTORE",
            "POP",
            "POP",
            "JUMP"
          ],
          "start_pc": 1661
        },
        {
          "end_pc": 1688,
          "hash": "0xa128ba31d6d1567f458aae811222d30eb115e99690d32d1a266502582dd203c8",
          "opcodes": [

thinking
**Investigating multiple SSTORE uses**

I'm examining several SSTORE operations clustered around PCs 1661, 1844, and 1890, likely used repeatedly to clear the same storage bit. I'll focus next on the code between lines 1880 and 1905 to understand the third SSTORE's role.
exec
/bin/bash -lc "sed -n '1876,1905p' BYTECODE_BUNDLE.json" in /tmp/codex-zyhm7aun succeeded in 7ms:
        {
          "end_pc": 1837,
          "hash": "0xede396ac12e356a984b74b7c444ffb8afeee9731869daed11d401e7053e1f0f9",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "OP_80",
            "SLOAD",
            "PUSH1",
            "NOT",
            "AND",
            "PUSH1",
            "OR",
            "OP_90",
            "SSTORE",
            "PUSH20",
            "PUSH4",
            "PUSH1",
            "OP_85",
            "OP_85",

thinking
**Noticing multiple SSTOREs on the same slot**

There are at least three SSTORE operations targeting slot 0, likely a reentrancy guard, with a delegatecall nearby suggesting complex control flow; now focusing on the code around lines 2018–2040 to analyze the fourth SSTORE.
exec
/bin/bash -lc "sed -n '2016,2045p' BYTECODE_BUNDLE.json" in /tmp/codex-zyhm7aun succeeded in 7ms:
          "end_pc": 1876,
          "hash": "0x86931ded7d11e78696380ce5ca48314b8e6127aa50772dcab2de47919c9d5e90",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "POP",
            "PUSH1",
            "OP_80",
            "SLOAD",
            "PUSH1",
            "NOT",
            "AND",
            "OP_90",
            "SSTORE",
            "POP",
            "POP",
            "POP",
            "POP",
            "JUMP"
          ],


thinking
**Analyzing delegatecall target storage**

The delegatecall target appears stored in slot 0x13, suggesting it's not dynamic but possibly set once (e.g., in the constructor), explaining the reported constant address despite reading from storage. This hints at a modular or diamond pattern with reentrancy guards.
thinking
**Confirming no writes to delegatecall target slot**

There’s no evidence of writes to slot 0x13 at runtime, suggesting the delegatecall target is set immutably or only in the constructor. The detectors flag a computed delegatecall target, raising concern about potential upgradeability or unverified control, but no direct upgrade setter is visible so far.
exec
/bin/bash -lc 'rg -n "callsites" BYTECODE_BUNDLE.json' in /tmp/codex-zyhm7aun succeeded in 8ms:
3567:      "callsites": [
exec
/bin/bash -lc "sed -n '3520,3605p' BYTECODE_BUNDLE.json" in /tmp/codex-zyhm7aun succeeded in 8ms:
            "OP_80",
            "OP_83",
            "SUB",
            "OP_81",
            "OP_86",
            "OP_80",
            "EXTCODESIZE",
            "ISZERO",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 3646
        },
        {
          "end_pc": 3764,
          "hash": "0xc6ac1f4a25b0db6fd978cebd57a941fdf4bc8ce2d6039cb4f7ffe593cad9890e",
          "opcodes": [
            "PUSH1",
            "OP_80",
exec
/bin/bash -lc "sed -n '3605,3665p' BYTECODE_BUNDLE.json" in /tmp/codex-zyhm7aun succeeded in 7ms:
          "pc": 1848,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "n/a"
        },
        {
          "opcode": "DELEGATECALL",
          "pc": 1969,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "n/a"
        },
        {
          "opcode": "DELEGATECALL",
          "pc": 2134,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "n/a"
        },
        {


thinking
**Analyzing call target origins**

The call targets near callsites may be constants from nearby PUSH20 instructions or loaded from storage slot 0x13, which sometimes appears pushed as PUSH1 0x13 before SLOAD; I’ll verify these patterns around each callsite to distinguish constant versus storage-based targets.
thinking
**Identifying uncertain access control on delegatecall target**

Analysis shows delegatecall targets often loaded from storage slot 0x13 with no detected access control guards or admin checks around updates, but lack of evidence for state writes to that slot makes final risk unclear; also, delegatecall results ignore returndata, potentially causing functional issues.
exec
/bin/bash -lc 'rg -n "CALLER" BYTECODE_BUNDLE.json | head' in /tmp/codex-zyhm7aun succeeded in 9ms:



thinking
**Confirming absence of CALLER-based access control**

No CALLER opcode or similar access control is detected; analysis flags one untrusted delegatecall with a computed but constant target, leading to a cautious medium-severity finding noting possible risk if mutable storage changes occur and no guards are present.
thinking
**Summarizing untrusted delegatecall with upgradeability risk**

Delegatecall targets a computed address from storage slot 0x13 with no detected access control guards; analysis flags multiple callsites and emphasizes upgradeability risk if the slot is externally writable, recommending explicit admin restrictions and immutable patterns.
codex
{"no_findings":false,"summary":"Bytecode shows a delegatecall‑based proxy/router pattern with computed targets and no detected auth guards; if the implementation target is mutable or user‑controlled, it can enable full takeover.","findings":[{"severity":"medium","category":"upgradeability","title":"Computed DELEGATECALL target (slot 0x13) with no detected access control","exploit_scenario":"If any externally reachable function can update the delegatecall target (e.g., a setter for the address stored in slot 0x13), an attacker could point it to a malicious implementation and gain arbitrary code execution in the proxy’s storage context, draining funds or seizing control. The analysis could not confirm whether the target is immutable or protected, so this risk depends on hidden upgrade mechanisms.","recommendation":"Verify whether slot 0x13 is writable after deployment. If upgrades are intended, restrict setters with explicit access control and emit upgrade events; if upgrades are not intended, make the target immutable or hard‑code it and remove any setters.","evidence":"detector_findings[0] flags “Untrusted DELEGATECALL target reachable” with 11 delegatecall sites; callsites show computed targets (pc 356, 1158, 1293, 1502, 1650, 1848, 1969, 2134, 2244, 2540, 3139). Storage reads from slot 0x13 occur at pc 1523/1540/1667/1680/1697/1865. No auth guards detected (auth.guards=[]). Validation indicates a constant target 0xf50b… but not confirmed, so mutability remains uncertain.","locations":["pc:0x164","pc:0x486","pc:0x50d","pc:0x5de","pc:0x672","pc:0x738","pc:0x7b1","pc:0x856","pc:0x8c4","pc:0x9ec","pc:0xc43","pc:0x5f3","pc:0x604","pc:0x683","pc:0x690","pc:0x6a1","pc:0x749"]}]}
tokens used
59,430
Metadata
{
    "codex": {
        "ran_at": "2026-01-22T04:37:42.427658+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 7620,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Bytecode shows a delegatecall\u2011based proxy/router pattern with computed targets and no detected auth guards; if the implementation target is mutable or user\u2011controlled, it can enable full takeover.",
    "raw_final": {
        "summary": "Bytecode shows a delegatecall\u2011based proxy/router pattern with computed targets and no detected auth guards; if the implementation target is mutable or user\u2011controlled, it can enable full takeover.",
        "findings": [
            {
                "title": "Computed DELEGATECALL target (slot 0x13) with no detected access control",
                "category": "upgradeability",
                "evidence": "detector_findings[0] flags \u201cUntrusted DELEGATECALL target reachable\u201d with 11 delegatecall sites; callsites show computed targets (pc 356, 1158, 1293, 1502, 1650, 1848, 1969, 2134, 2244, 2540, 3139). Storage reads from slot 0x13 occur at pc 1523/1540/1667/1680/1697/1865. No auth guards detected (auth.guards=[]). Validation indicates a constant target 0xf50b\u2026 but not confirmed, so mutability remains uncertain.",
                "severity": "medium",
                "locations": [
                    "pc:0x164",
                    "pc:0x486",
                    "pc:0x50d",
                    "pc:0x5de",
                    "pc:0x672",
                    "pc:0x738",
                    "pc:0x7b1",
                    "pc:0x856",
                    "pc:0x8c4",
                    "pc:0x9ec",
                    "pc:0xc43",
                    "pc:0x5f3",
                    "pc:0x604",
                    "pc:0x683",
                    "pc:0x690",
                    "pc:0x6a1",
                    "pc:0x749"
                ],
                "recommendation": "Verify whether slot 0x13 is writable after deployment. If upgrades are intended, restrict setters with explicit access control and emit upgrade events; if upgrades are not intended, make the target immutable or hard\u2011code it and remove any setters.",
                "exploit_scenario": "If any externally reachable function can update the delegatecall target (e.g., a setter for the address stored in slot 0x13), an attacker could point it to a malicious implementation and gain arbitrary code execution in the proxy\u2019s storage context, draining funds or seizing control. The analysis could not confirm whether the target is immutable or protected, so this risk depends on hidden upgrade mechanisms."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
11
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
0
EXT*/BALANCE
23
Total opcodes
2359
Flags
delegatecall_present heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x010e
0000000c: JUMPI
0000000d: PUSH4 0xffffffff
00000012: PUSH1 0xe0
00000014: PUSH1 0x02
00000016: EXP
00000017: PUSH1 0x00
00000019: CALLDATALOAD
0000001a: DIV
0000001b: AND
0000001c: PUSH4 0x0be479e1
00000021: DUP2
00000022: EQ
00000023: PUSH2 0x0174
00000026: JUMPI
00000027: DUP1
00000028: PUSH4 0x14614af9
0000002d: EQ
0000002e: PUSH2 0x0189
00000031: JUMPI
00000032: DUP1
00000033: PUSH4 0x17f708fb
00000038: EQ
00000039: PUSH2 0x01a7
0000003c: JUMPI
0000003d: DUP1
0000003e: PUSH4 0x19f363bc
00000043: EQ
00000044: PUSH2 0x01ba
00000047: JUMPI
00000048: DUP1
00000049: PUSH4 0x2b55b792
0000004e: EQ
0000004f: PUSH2 0x01d1
00000052: JUMPI
00000053: DUP1
00000054: PUSH4 0x2d923501
00000059: EQ
0000005a: PUSH2 0x01f0
0000005d: JUMPI
0000005e: DUP1
0000005f: PUSH4 0x2e1a7d4d
00000064: EQ
00000065: PUSH2 0x021b
00000068: JUMPI
00000069: DUP1
0000006a: PUSH4 0x4d5a8e10
0000006f: EQ
00000070: PUSH2 0x0231
00000073: JUMPI
00000074: DUP1
00000075: PUSH4 0x54fd4d50
0000007a: EQ
0000007b: PUSH2 0x0260
0000007e: JUMPI
0000007f: DUP1
00000080: PUSH4 0x7ae20c59
00000085: EQ
00000086: PUSH2 0x0297
00000089: JUMPI
0000008a: DUP1
0000008b: PUSH4 0x7c422f1d
00000090: EQ
00000091: PUSH2 0x02b0
00000094: JUMPI
00000095: DUP1
00000096: PUSH4 0x853828b6
0000009b: EQ
0000009c: PUSH2 0x02e3
0000009f: JUMPI
000000a0: DUP1
000000a1: PUSH4 0x89fb8a48
000000a6: EQ
000000a7: PUSH2 0x02f6
000000aa: JUMPI
000000ab: DUP1
000000ac: PUSH4 0x9aae82c1
000000b1: EQ
000000b2: PUSH2 0x030c
000000b5: JUMPI
000000b6: DUP1
000000b7: PUSH4 0xa9cc4718
000000bc: EQ
000000bd: PUSH2 0x032b
000000c0: JUMPI
000000c1: DUP1
000000c2: PUSH4 0xc0ee0b8a
000000c7: EQ
000000c8: PUSH2 0x033e
000000cb: JUMPI
000000cc: DUP1
000000cd: PUSH4 0xc2fbe7bc
000000d2: EQ
000000d3: PUSH2 0x036d
000000d6: JUMPI
000000d7: DUP1
000000d8: PUSH4 0xd0e30db0
000000dd: EQ
000000de: PUSH2 0x0392
000000e1: JUMPI
000000e2: DUP1
000000e3: PUSH4 0xd3c4c4d0
000000e8: EQ
000000e9: PUSH2 0x039a
000000ec: JUMPI
000000ed: DUP1
000000ee: PUSH4 0xdef86cbb
000000f3: EQ
000000f4: PUSH2 0x03c4
000000f7: JUMPI
000000f8: DUP1
000000f9: PUSH4 0xf91c7ca3
000000fe: EQ
000000ff: PUSH2 0x03ee
00000102: JUMPI
00000103: DUP1
00000104: PUSH4 0xfffe58a2
00000109: EQ
0000010a: PUSH2 0x0412
0000010d: JUMPI
0000010e: JUMPDEST
0000010f: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000124: PUSH4 0x6c2802e8
00000129: PUSH1 0x00
0000012b: PUSH1 0x40
0000012d: MLOAD
0000012e: PUSH1 0xe0
00000130: PUSH1 0x02
00000132: EXP
00000133: PUSH4 0xffffffff
00000138: DUP5
00000139: AND
0000013a: MUL
0000013b: DUP2
0000013c: MSTORE
0000013d: PUSH1 0x04
0000013f: DUP2
00000140: ADD
00000141: SWAP2
00000142: SWAP1
00000143: SWAP2
00000144: MSTORE
00000145: PUSH1 0x24
00000147: ADD
00000148: PUSH1 0x00
0000014a: PUSH1 0x40
0000014c: MLOAD
0000014d: DUP1
0000014e: DUP4
0000014f: SUB
00000150: DUP2
00000151: DUP7
00000152: DUP1
00000153: EXTCODESIZE
00000154: ISZERO
00000155: ISZERO
00000156: PUSH2 0x015e
00000159: JUMPI
0000015a: PUSH1 0x00
0000015c: DUP1
0000015d: REVERT
0000015e: JUMPDEST
0000015f: PUSH2 0x02c6
00000162: GAS
00000163: SUB
00000164: DELEGATECALL
00000165: ISZERO
00000166: ISZERO
00000167: PUSH2 0x016f
0000016a: JUMPI
0000016b: PUSH1 0x00
0000016d: DUP1
0000016e: REVERT
0000016f: JUMPDEST
00000170: POP
00000171: POP
00000172: POP
00000173: STOP
00000174: JUMPDEST
00000175: CALLVALUE
00000176: ISZERO
00000177: PUSH2 0x017f
0000017a: JUMPI
0000017b: PUSH1 0x00
0000017d: DUP1
0000017e: REVERT
0000017f: JUMPDEST
00000180: PUSH2 0x0187
00000183: PUSH2 0x0430
00000186: JUMP
00000187: JUMPDEST
00000188: STOP
00000189: JUMPDEST
0000018a: PUSH2 0x0187
0000018d: PUSH1 0x01
0000018f: PUSH1 0xa0
00000191: PUSH1 0x02
00000193: EXP
00000194: SUB
00000195: PUSH1 0x04
00000197: CALLDATALOAD
00000198: DUP2
00000199: AND
0000019a: SWAP1
0000019b: PUSH1 0x24
0000019d: CALLDATALOAD
0000019e: SWAP1
0000019f: PUSH1 0x44
000001a1: CALLDATALOAD
000001a2: AND
000001a3: PUSH2 0x0496
000001a6: JUMP
000001a7: JUMPDEST
000001a8: CALLVALUE
000001a9: ISZERO
000001aa: PUSH2 0x01b2
000001ad: JUMPI
000001ae: PUSH1 0x00
000001b0: DUP1
000001b1: REVERT
000001b2: JUMPDEST
000001b3: PUSH2 0x0187
000001b6: PUSH2 0x0520
000001b9: JUMP
000001ba: JUMPDEST
000001bb: PUSH2 0x0187
000001be: PUSH1 0x04
000001c0: CALLDATALOAD
000001c1: PUSH1 0x01
000001c3: PUSH1 0xa0
000001c5: PUSH1 0x02
000001c7: EXP
000001c8: SUB
000001c9: PUSH1 0x24
000001cb: CALLDATALOAD
000001cc: AND
000001cd: PUSH2 0x0570
000001d0: JUMP
000001d1: JUMPDEST
000001d2: CALLVALUE
000001d3: ISZERO
000001d4: PUSH2 0x01dc
000001d7: JUMPI
000001d8: PUSH1 0x00
000001da: DUP1
000001db: REVERT
000001dc: JUMPDEST
000001dd: PUSH2 0x0187
000001e0: PUSH1 0x01
000001e2: PUSH1 0xa0
000001e4: PUSH1 0x02
000001e6: EXP
000001e7: SUB
000001e8: PUSH1 0x04
000001ea: CALLDATALOAD
000001eb: AND
000001ec: PUSH2 0x05f0
000001ef: JUMP
000001f0: JUMPDEST
000001f1: CALLVALUE
000001f2: ISZERO
000001f3: PUSH2 0x01fb
000001f6: JUMPI
000001f7: PUSH1 0x00
000001f9: DUP1
000001fa: REVERT
000001fb: JUMPDEST
000001fc: PUSH2 0x0187
000001ff: PUSH1 0x04
00000201: DUP1
00000202: CALLDATALOAD
00000203: PUSH1 0x01
00000205: PUSH1 0xa0
00000207: PUSH1 0x02
00000209: EXP
0000020a: SUB
0000020b: AND
0000020c: SWAP1
0000020d: PUSH1 0x24
0000020f: DUP1
00000210: CALLDATALOAD
00000211: SWAP1
00000212: DUP2
00000213: ADD
00000214: SWAP2
00000215: ADD
00000216: CALLDATALOAD
00000217: PUSH2 0x068d
0000021a: JUMP
0000021b: JUMPDEST
0000021c: CALLVALUE
0000021d: ISZERO
0000021e: PUSH2 0x0226
00000221: JUMPI
00000222: PUSH1 0x00
00000224: DUP1
00000225: REVERT
00000226: JUMPDEST
00000227: PUSH2 0x0187
0000022a: PUSH1 0x04
0000022c: CALLDATALOAD
0000022d: PUSH2 0x0755
00000230: JUMP
00000231: JUMPDEST
00000232: CALLVALUE
00000233: ISZERO
00000234: PUSH2 0x023c
00000237: JUMPI
00000238: PUSH1 0x00
0000023a: DUP1
0000023b: REVERT
0000023c: JUMPDEST
0000023d: PUSH2 0x0187
00000240: PUSH1 0x04
00000242: DUP1
00000243: CALLDATALOAD
00000244: PUSH1 0x01
00000246: PUSH1 0xa0
00000248: PUSH1 0x02
0000024a: EXP
0000024b: SUB
0000024c: AND
0000024d: SWAP1
0000024e: PUSH1 0x24
00000250: DUP1
00000251: CALLDATALOAD
00000252: SWAP2
00000253: PUSH1 0x44
00000255: CALLDATALOAD
00000256: SWAP2
00000257: DUP3
00000258: ADD
00000259: SWAP2
0000025a: ADD
0000025b: CALLDATALOAD
0000025c: PUSH2 0x07c2
0000025f: JUMP
00000260: JUMPDEST
00000261: CALLVALUE
00000262: ISZERO
00000263: PUSH2 0x026b
00000266: JUMPI
00000267: PUSH1 0x00
00000269: DUP1
0000026a: REVERT
0000026b: JUMPDEST
0000026c: PUSH2 0x0273
0000026f: PUSH2 0x086a
00000272: JUMP
00000273: JUMPDEST
00000274: PUSH1 0x40
00000276: MLOAD
00000277: DUP1
00000278: DUP5
00000279: DUP2
0000027a: MSTORE
0000027b: PUSH1 0x20
0000027d: ADD
0000027e: DUP4
0000027f: DUP2
00000280: MSTORE
00000281: PUSH1 0x20
00000283: ADD
00000284: DUP3
00000285: DUP2
00000286: MSTORE
00000287: PUSH1 0x20
00000289: ADD
0000028a: SWAP4
0000028b: POP
0000028c: POP
0000028d: POP
0000028e: POP
0000028f: PUSH1 0x40
00000291: MLOAD
00000292: DUP1
00000293: SWAP2
00000294: SUB
00000295: SWAP1
00000296: RETURN
00000297: JUMPDEST
00000298: CALLVALUE
00000299: ISZERO
0000029a: PUSH2 0x02a2
0000029d: JUMPI
0000029e: PUSH1 0x00
000002a0: DUP1
000002a1: REVERT
000002a2: JUMPDEST
000002a3: PUSH2 0x0187
000002a6: PUSH1 0x04
000002a8: CALLDATALOAD
000002a9: PUSH1 0x24
000002ab: CALLDATALOAD
000002ac: PUSH2 0x08f0
000002af: JUMP
000002b0: JUMPDEST
000002b1: CALLVALUE
000002b2: ISZERO
000002b3: PUSH2 0x02bb
000002b6: JUMPI
000002b7: PUSH1 0x00
000002b9: DUP1
000002ba: REVERT
000002bb: JUMPDEST
000002bc: PUSH2 0x0187
000002bf: PUSH1 0x04
000002c1: DUP1
000002c2: CALLDATALOAD
000002c3: PUSH1 0x01
000002c5: PUSH1 0xa0
000002c7: PUSH1 0x02
000002c9: EXP
000002ca: SUB
000002cb: AND
000002cc: SWAP1
000002cd: PUSH1 0x24
000002cf: DUP1
000002d0: CALLDATALOAD
000002d1: SWAP2
000002d2: PUSH1 0x44
000002d4: CALLDATALOAD
000002d5: SWAP2
000002d6: PUSH1 0x64
000002d8: CALLDATALOAD
000002d9: SWAP1
000002da: DUP2
000002db: ADD
000002dc: SWAP2
000002dd: ADD
000002de: CALLDATALOAD
000002df: PUSH2 0x094f
000002e2: JUMP
000002e3: JUMPDEST
000002e4: CALLVALUE
000002e5: ISZERO
000002e6: PUSH2 0x02ee
000002e9: JUMPI
000002ea: PUSH1 0x00
000002ec: DUP1
000002ed: REVERT
000002ee: JUMPDEST
000002ef: PUSH2 0x0187
000002f2: PUSH2 0x0a01
000002f5: JUMP
000002f6: JUMPDEST
000002f7: CALLVALUE
000002f8: ISZERO
000002f9: PUSH2 0x0301
000002fc: JUMPI
000002fd: PUSH1 0x00
000002ff: DUP1
00000300: REVERT
00000301: JUMPDEST
00000302: PUSH2 0x0187
00000305: PUSH1 0x04
00000307: CALLDATALOAD
00000308: PUSH2 0x0a51
0000030b: JUMP
0000030c: JUMPDEST
0000030d: CALLVALUE
0000030e: ISZERO
0000030f: PUSH2 0x0317
00000312: JUMPI
00000313: PUSH1 0x00
00000315: DUP1
00000316: REVERT
00000317: JUMPDEST
00000318: PUSH2 0x0187
0000031b: PUSH1 0x01
0000031d: PUSH1 0xa0
0000031f: PUSH1 0x02
00000321: EXP
00000322: SUB
00000323: PUSH1 0x04
00000325: CALLDATALOAD
00000326: AND
00000327: PUSH2 0x0aa7
0000032a: JUMP
0000032b: JUMPDEST
0000032c: CALLVALUE
0000032d: ISZERO
0000032e: PUSH2 0x0336
00000331: JUMPI
00000332: PUSH1 0x00
00000334: DUP1
00000335: REVERT
00000336: JUMPDEST
00000337: PUSH2 0x0187
0000033a: PUSH2 0x0b06
0000033d: JUMP
0000033e: JUMPDEST
0000033f: CALLVALUE
00000340: ISZERO
00000341: PUSH2 0x0349
00000344: JUMPI
00000345: PUSH1 0x00
00000347: DUP1
00000348: REVERT
00000349: JUMPDEST
0000034a: PUSH2 0x0187
0000034d: PUSH1 0x04
0000034f: DUP1
00000350: CALLDATALOAD
00000351: PUSH1 0x01
00000353: PUSH1 0xa0
00000355: PUSH1 0x02
00000357: EXP
00000358: SUB
00000359: AND
0000035a: SWAP1
0000035b: PUSH1 0x24
0000035d: DUP1
0000035e: CALLDATALOAD
0000035f: SWAP2
00000360: PUSH1 0x44
00000362: CALLDATALOAD
00000363: SWAP2
00000364: DUP3
00000365: ADD
00000366: SWAP2
00000367: ADD
00000368: CALLDATALOAD
00000369: PUSH2 0x0b56
0000036c: JUMP
0000036d: JUMPDEST
0000036e: CALLVALUE
0000036f: ISZERO
00000370: PUSH2 0x0378
00000373: JUMPI
00000374: PUSH1 0x00
00000376: DUP1
00000377: REVERT
00000378: JUMPDEST
00000379: PUSH2 0x0380
0000037c: PUSH2 0x0be4
0000037f: JUMP
00000380: JUMPDEST
00000381: PUSH1 0x40
00000383: MLOAD
00000384: SWAP1
00000385: DUP2
00000386: MSTORE
00000387: PUSH1 0x20
00000389: ADD
0000038a: PUSH1 0x40
0000038c: MLOAD
0000038d: DUP1
0000038e: SWAP2
0000038f: SUB
00000390: SWAP1
00000391: RETURN
00000392: JUMPDEST
00000393: PUSH2 0x0187
00000396: PUSH2 0x0c5c
00000399: JUMP
0000039a: JUMPDEST
0000039b: CALLVALUE
0000039c: ISZERO
0000039d: PUSH2 0x03a5
000003a0: JUMPI
000003a1: PUSH1 0x00
000003a3: DUP1
000003a4: REVERT
000003a5: JUMPDEST
000003a6: PUSH2 0x0187
000003a9: PUSH1 0x04
000003ab: DUP1
000003ac: CALLDATALOAD
000003ad: SWAP1
000003ae: PUSH1 0x24
000003b0: DUP1
000003b1: CALLDATALOAD
000003b2: SWAP2
000003b3: PUSH1 0x44
000003b5: CALLDATALOAD
000003b6: SWAP2
000003b7: PUSH1 0x64
000003b9: CALLDATALOAD
000003ba: SWAP1
000003bb: DUP2
000003bc: ADD
000003bd: SWAP2
000003be: ADD
000003bf: CALLDATALOAD
000003c0: PUSH2 0x0cac
000003c3: JUMP
000003c4: JUMPDEST
000003c5: CALLVALUE
000003c6: ISZERO
000003c7: PUSH2 0x03cf
000003ca: JUMPI
000003cb: PUSH1 0x00
000003cd: DUP1
000003ce: REVERT
000003cf: JUMPDEST
000003d0: PUSH2 0x0187
000003d3: PUSH1 0x24
000003d5: PUSH1 0x04
000003d7: DUP1
000003d8: CALLDATALOAD
000003d9: DUP3
000003da: DUP2
000003db: ADD
000003dc: SWAP3
000003dd: SWAP1
000003de: DUP3
000003df: ADD
000003e0: CALLDATALOAD
000003e1: SWAP2
000003e2: DUP2
000003e3: CALLDATALOAD
000003e4: SWAP2
000003e5: DUP3
000003e6: ADD
000003e7: SWAP2
000003e8: ADD
000003e9: CALLDATALOAD
000003ea: PUSH2 0x0d3b
000003ed: JUMP
000003ee: JUMPDEST
000003ef: CALLVALUE
000003f0: ISZERO
000003f1: PUSH2 0x03f9
000003f4: JUMPI
000003f5: PUSH1 0x00
000003f7: DUP1
000003f8: REVERT
000003f9: JUMPDEST
000003fa: PUSH2 0x0187
000003fd: PUSH1 0x01
000003ff: PUSH1 0xa0
00000401: PUSH1 0x02
00000403: EXP
00000404: SUB
00000405: PUSH1 0x04
00000407: CALLDATALOAD
00000408: AND
00000409: PUSH1 0x24
0000040b: CALLDATALOAD
0000040c: ISZERO
0000040d: ISZERO
0000040e: PUSH2 0x0dd5
00000411: JUMP
00000412: JUMPDEST
00000413: CALLVALUE
00000414: ISZERO
00000415: PUSH2 0x041d
00000418: JUMPI
00000419: PUSH1 0x00
0000041b: DUP1
0000041c: REVERT
0000041d: JUMPDEST
0000041e: PUSH2 0x0187
00000421: PUSH1 0x04
00000423: DUP1
00000424: CALLDATALOAD
00000425: PUSH1 0x24
00000427: DUP2
00000428: ADD
00000429: SWAP2
0000042a: ADD
0000042b: CALLDATALOAD
0000042c: PUSH2 0x0e3e
0000042f: JUMP
00000430: JUMPDEST
00000431: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000446: PUSH4 0x113da5d9
0000044b: PUSH1 0x00
0000044d: PUSH1 0x40
0000044f: MLOAD
00000450: PUSH1 0xe0
00000452: PUSH1 0x02
00000454: EXP
00000455: PUSH4 0xffffffff
0000045a: DUP5
0000045b: AND
0000045c: MUL
0000045d: DUP2
0000045e: MSTORE
0000045f: PUSH1 0x04
00000461: DUP2
00000462: ADD
00000463: SWAP2
00000464: SWAP1
00000465: SWAP2
00000466: MSTORE
00000467: PUSH1 0x24
00000469: ADD
0000046a: PUSH1 0x00
0000046c: PUSH1 0x40
0000046e: MLOAD
0000046f: DUP1
00000470: DUP4
00000471: SUB
00000472: DUP2
00000473: DUP7
00000474: DUP1
00000475: EXTCODESIZE
00000476: ISZERO
00000477: ISZERO
00000478: PUSH2 0x0480
0000047b: JUMPI
0000047c: PUSH1 0x00
0000047e: DUP1
0000047f: REVERT
00000480: JUMPDEST
00000481: PUSH2 0x02c6
00000484: GAS
00000485: SUB
00000486: DELEGATECALL
00000487: ISZERO
00000488: ISZERO
00000489: PUSH2 0x0491
0000048c: JUMPI
0000048d: PUSH1 0x00
0000048f: DUP1
00000490: REVERT
00000491: JUMPDEST
00000492: POP
00000493: POP
00000494: POP
00000495: JUMP
00000496: JUMPDEST
00000497: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
000004ac: PUSH4 0x4afcba30
000004b1: PUSH1 0x00
000004b3: DUP6
000004b4: DUP6
000004b5: DUP6
000004b6: PUSH1 0x40
000004b8: MLOAD
000004b9: PUSH1 0xe0
000004bb: PUSH1 0x02
000004bd: EXP
000004be: PUSH4 0xffffffff
000004c3: DUP8
000004c4: AND
000004c5: MUL
000004c6: DUP2
000004c7: MSTORE
000004c8: PUSH1 0x04
000004ca: DUP2
000004cb: ADD
000004cc: SWAP5
000004cd: SWAP1
000004ce: SWAP5
000004cf: MSTORE
000004d0: PUSH1 0x01
000004d2: PUSH1 0xa0
000004d4: PUSH1 0x02
000004d6: EXP
000004d7: SUB
000004d8: SWAP3
000004d9: DUP4
000004da: AND
000004db: PUSH1 0x24
000004dd: DUP6
000004de: ADD
000004df: MSTORE
000004e0: PUSH1 0x44
000004e2: DUP5
000004e3: ADD
000004e4: SWAP2
000004e5: SWAP1
000004e6: SWAP2
000004e7: MSTORE
000004e8: AND
000004e9: PUSH1 0x64
000004eb: DUP3
000004ec: ADD
000004ed: MSTORE
000004ee: PUSH1 0x84
000004f0: ADD
000004f1: PUSH1 0x00
000004f3: PUSH1 0x40
000004f5: MLOAD
000004f6: DUP1
000004f7: DUP4
000004f8: SUB
000004f9: DUP2
000004fa: DUP7
000004fb: DUP1
000004fc: EXTCODESIZE
000004fd: ISZERO
000004fe: ISZERO
000004ff: PUSH2 0x0507
00000502: JUMPI
00000503: PUSH1 0x00
00000505: DUP1
00000506: REVERT
00000507: JUMPDEST
00000508: PUSH2 0x02c6
0000050b: GAS
0000050c: SUB
0000050d: DELEGATECALL
0000050e: ISZERO
0000050f: ISZERO
00000510: PUSH2 0x0518
00000513: JUMPI
00000514: PUSH1 0x00
00000516: DUP1
00000517: REVERT
00000518: JUMPDEST
00000519: POP
0000051a: POP
0000051b: POP
0000051c: POP
0000051d: POP
0000051e: POP
0000051f: JUMP
00000520: JUMPDEST
00000521: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000536: PUSH4 0x7c6a8a68
0000053b: PUSH1 0x00
0000053d: PUSH1 0x40
0000053f: MLOAD
00000540: PUSH1 0xe0
00000542: PUSH1 0x02
00000544: EXP
00000545: PUSH4 0xffffffff
0000054a: DUP5
0000054b: AND
0000054c: MUL
0000054d: DUP2
0000054e: MSTORE
0000054f: PUSH1 0x04
00000551: DUP2
00000552: ADD
00000553: SWAP2
00000554: SWAP1
00000555: SWAP2
00000556: MSTORE
00000557: PUSH1 0x24
00000559: ADD
0000055a: PUSH1 0x00
0000055c: PUSH1 0x40
0000055e: MLOAD
0000055f: DUP1
00000560: DUP4
00000561: SUB
00000562: DUP2
00000563: DUP7
00000564: DUP1
00000565: EXTCODESIZE
00000566: ISZERO
00000567: ISZERO
00000568: PUSH2 0x0480
0000056b: JUMPI
0000056c: PUSH1 0x00
0000056e: DUP1
0000056f: REVERT
00000570: JUMPDEST
00000571: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000586: PUSH4 0x2fb2c6d2
0000058b: PUSH1 0x00
0000058d: DUP5
0000058e: DUP5
0000058f: PUSH1 0x40
00000591: MLOAD
00000592: PUSH1 0xe0
00000594: PUSH1 0x02
00000596: EXP
00000597: PUSH4 0xffffffff
0000059c: DUP7
0000059d: AND
0000059e: MUL
0000059f: DUP2
000005a0: MSTORE
000005a1: PUSH1 0x04
000005a3: DUP2
000005a4: ADD
000005a5: SWAP4
000005a6: SWAP1
000005a7: SWAP4
000005a8: MSTORE
000005a9: PUSH1 0x24
000005ab: DUP4
000005ac: ADD
000005ad: SWAP2
000005ae: SWAP1
000005af: SWAP2
000005b0: MSTORE
000005b1: PUSH1 0x01
000005b3: PUSH1 0xa0
000005b5: PUSH1 0x02
000005b7: EXP
000005b8: SUB
000005b9: AND
000005ba: PUSH1 0x44
000005bc: DUP3
000005bd: ADD
000005be: MSTORE
000005bf: PUSH1 0x64
000005c1: ADD
000005c2: PUSH1 0x00
000005c4: PUSH1 0x40
000005c6: MLOAD
000005c7: DUP1
000005c8: DUP4
000005c9: SUB
000005ca: DUP2
000005cb: DUP7
000005cc: DUP1
000005cd: EXTCODESIZE
000005ce: ISZERO
000005cf: ISZERO
000005d0: PUSH2 0x05d8
000005d3: JUMPI
000005d4: PUSH1 0x00
000005d6: DUP1
000005d7: REVERT
000005d8: JUMPDEST
000005d9: PUSH2 0x02c6
000005dc: GAS
000005dd: SUB
000005de: DELEGATECALL
000005df: ISZERO
000005e0: ISZERO
000005e1: PUSH2 0x05e9
000005e4: JUMPI
000005e5: PUSH1 0x00
000005e7: DUP1
000005e8: REVERT
000005e9: JUMPDEST
000005ea: POP
000005eb: POP
000005ec: POP
000005ed: POP
000005ee: POP
000005ef: JUMP
000005f0: JUMPDEST
000005f1: PUSH1 0x13
000005f3: SLOAD
000005f4: PUSH1 0xff
000005f6: AND
000005f7: ISZERO
000005f8: PUSH2 0x0600
000005fb: JUMPI
000005fc: PUSH1 0x00
000005fe: DUP1
000005ff: REVERT
00000600: JUMPDEST
00000601: PUSH1 0x13
00000603: DUP1
00000604: SLOAD
00000605: PUSH1 0xff
00000607: NOT
00000608: AND
00000609: PUSH1 0x01
0000060b: OR
0000060c: SWAP1
0000060d: SSTORE
0000060e: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000623: PUSH4 0x80b8871c
00000628: PUSH1 0x00
0000062a: DUP4
0000062b: PUSH1 0x40
0000062d: MLOAD
0000062e: PUSH1 0xe0
00000630: PUSH1 0x02
00000632: EXP
00000633: PUSH4 0xffffffff
00000638: DUP6
00000639: AND
0000063a: MUL
0000063b: DUP2
0000063c: MSTORE
0000063d: PUSH1 0x04
0000063f: DUP2
00000640: ADD
00000641: SWAP3
00000642: SWAP1
00000643: SWAP3
00000644: MSTORE
00000645: PUSH1 0x01
00000647: PUSH1 0xa0
00000649: PUSH1 0x02
0000064b: EXP
0000064c: SUB
0000064d: AND
0000064e: PUSH1 0x24
00000650: DUP3
00000651: ADD
00000652: MSTORE
00000653: PUSH1 0x44
00000655: ADD
00000656: PUSH1 0x00
00000658: PUSH1 0x40
0000065a: MLOAD
0000065b: DUP1
0000065c: DUP4
0000065d: SUB
0000065e: DUP2
0000065f: DUP7
00000660: DUP1
00000661: EXTCODESIZE
00000662: ISZERO
00000663: ISZERO
00000664: PUSH2 0x066c
00000667: JUMPI
00000668: PUSH1 0x00
0000066a: DUP1
0000066b: REVERT
0000066c: JUMPDEST
0000066d: PUSH2 0x02c6
00000670: GAS
00000671: SUB
00000672: DELEGATECALL
00000673: ISZERO
00000674: ISZERO
00000675: PUSH2 0x067d
00000678: JUMPI
00000679: PUSH1 0x00
0000067b: DUP1
0000067c: REVERT
0000067d: JUMPDEST
0000067e: POP
0000067f: POP
00000680: PUSH1 0x13
00000682: DUP1
00000683: SLOAD
00000684: PUSH1 0xff
00000686: NOT
00000687: AND
00000688: SWAP1
00000689: SSTORE
0000068a: POP
0000068b: POP
0000068c: JUMP
0000068d: JUMPDEST
0000068e: PUSH1 0x13
00000690: SLOAD
00000691: PUSH1 0xff
00000693: AND
00000694: ISZERO
00000695: PUSH2 0x069d
00000698: JUMPI
00000699: PUSH1 0x00
0000069b: DUP1
0000069c: REVERT
0000069d: JUMPDEST
0000069e: PUSH1 0x13
000006a0: DUP1
000006a1: SLOAD
000006a2: PUSH1 0xff
000006a4: NOT
000006a5: AND
000006a6: PUSH1 0x01
000006a8: OR
000006a9: SWAP1
000006aa: SSTORE
000006ab: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
000006c0: PUSH4 0x392a4fa2
000006c5: PUSH1 0x00
000006c7: DUP6
000006c8: DUP6
000006c9: DUP6
000006ca: PUSH1 0x40
000006cc: MLOAD
000006cd: PUSH1 0xe0
000006cf: PUSH1 0x02
000006d1: EXP
000006d2: PUSH4 0xffffffff
000006d7: DUP8
000006d8: AND
000006d9: MUL
000006da: DUP2
000006db: MSTORE
000006dc: PUSH1 0x04
000006de: DUP2
000006df: ADD
000006e0: DUP6
000006e1: DUP2
000006e2: MSTORE
000006e3: PUSH1 0x01
000006e5: PUSH1 0xa0
000006e7: PUSH1 0x02
000006e9: EXP
000006ea: SUB
000006eb: DUP6
000006ec: AND
000006ed: PUSH1 0x24
000006ef: DUP4
000006f0: ADD
000006f1: MSTORE
000006f2: PUSH1 0x60
000006f4: PUSH1 0x44
000006f6: DUP4
000006f7: ADD
000006f8: SWAP1
000006f9: DUP2
000006fa: MSTORE
000006fb: PUSH1 0x64
000006fd: DUP4
000006fe: ADD
000006ff: DUP5
00000700: SWAP1
00000701: MSTORE
00000702: SWAP1
00000703: SWAP2
00000704: PUSH1 0x84
00000706: ADD
00000707: DUP5
00000708: PUSH1 0x20
0000070a: DUP6
0000070b: MUL
0000070c: DUP1
0000070d: DUP3
0000070e: DUP5
0000070f: CALLDATACOPY
00000710: DUP3
00000711: ADD
00000712: SWAP2
00000713: POP
00000714: POP
00000715: SWAP6
00000716: POP
00000717: POP
00000718: POP
00000719: POP
0000071a: POP
0000071b: POP
0000071c: PUSH1 0x00
0000071e: PUSH1 0x40
00000720: MLOAD
00000721: DUP1
00000722: DUP4
00000723: SUB
00000724: DUP2
00000725: DUP7
00000726: DUP1
00000727: EXTCODESIZE
00000728: ISZERO
00000729: ISZERO
0000072a: PUSH2 0x0732
0000072d: JUMPI
0000072e: PUSH1 0x00
00000730: DUP1
00000731: REVERT
00000732: JUMPDEST
00000733: PUSH2 0x02c6
00000736: GAS
00000737: SUB
00000738: DELEGATECALL
00000739: ISZERO
0000073a: ISZERO
0000073b: PUSH2 0x0743
0000073e: JUMPI
0000073f: PUSH1 0x00
00000741: DUP1
00000742: REVERT
00000743: JUMPDEST
00000744: POP
00000745: POP
00000746: PUSH1 0x13
00000748: DUP1
00000749: SLOAD
0000074a: PUSH1 0xff
0000074c: NOT
0000074d: AND
0000074e: SWAP1
0000074f: SSTORE
00000750: POP
00000751: POP
00000752: POP
00000753: POP
00000754: JUMP
00000755: JUMPDEST
00000756: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
0000076b: PUSH4 0xf522fc1b
00000770: PUSH1 0x00
00000772: DUP4
00000773: PUSH1 0x40
00000775: MLOAD
00000776: PUSH1 0xe0
00000778: PUSH1 0x02
0000077a: EXP
0000077b: PUSH4 0xffffffff
00000780: DUP6
00000781: AND
00000782: MUL
00000783: DUP2
00000784: MSTORE
00000785: PUSH1 0x04
00000787: DUP2
00000788: ADD
00000789: SWAP3
0000078a: SWAP1
0000078b: SWAP3
0000078c: MSTORE
0000078d: PUSH1 0x24
0000078f: DUP3
00000790: ADD
00000791: MSTORE
00000792: PUSH1 0x44
00000794: ADD
00000795: PUSH1 0x00
00000797: PUSH1 0x40
00000799: MLOAD
0000079a: DUP1
0000079b: DUP4
0000079c: SUB
0000079d: DUP2
0000079e: DUP7
0000079f: DUP1
000007a0: EXTCODESIZE
000007a1: ISZERO
000007a2: ISZERO
000007a3: PUSH2 0x07ab
000007a6: JUMPI
000007a7: PUSH1 0x00
000007a9: DUP1
000007aa: REVERT
000007ab: JUMPDEST
000007ac: PUSH2 0x02c6
000007af: GAS
000007b0: SUB
000007b1: DELEGATECALL
000007b2: ISZERO
000007b3: ISZERO
000007b4: PUSH2 0x07bc
000007b7: JUMPI
000007b8: PUSH1 0x00
000007ba: DUP1
000007bb: REVERT
000007bc: JUMPDEST
000007bd: POP
000007be: POP
000007bf: POP
000007c0: POP
000007c1: JUMP
000007c2: JUMPDEST
000007c3: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
000007d8: PUSH4 0x512b893f
000007dd: PUSH1 0x00
000007df: DUP7
000007e0: DUP7
000007e1: DUP7
000007e2: DUP7
000007e3: PUSH1 0x40
000007e5: MLOAD
000007e6: PUSH1 0xe0
000007e8: PUSH1 0x02
000007ea: EXP
000007eb: PUSH4 0xffffffff
000007f0: DUP9
000007f1: AND
000007f2: MUL
000007f3: DUP2
000007f4: MSTORE
000007f5: PUSH1 0x04
000007f7: DUP2
000007f8: ADD
000007f9: DUP7
000007fa: DUP2
000007fb: MSTORE
000007fc: PUSH1 0x01
000007fe: PUSH1 0xa0
00000800: PUSH1 0x02
00000802: EXP
00000803: SUB
00000804: DUP7
00000805: AND
00000806: PUSH1 0x24
00000808: DUP4
00000809: ADD
0000080a: MSTORE
0000080b: PUSH1 0x44
0000080d: DUP3
0000080e: ADD
0000080f: DUP6
00000810: SWAP1
00000811: MSTORE
00000812: PUSH1 0x80
00000814: PUSH1 0x64
00000816: DUP4
00000817: ADD
00000818: SWAP1
00000819: DUP2
0000081a: MSTORE
0000081b: PUSH1 0x84
0000081d: DUP4
0000081e: ADD
0000081f: DUP5
00000820: SWAP1
00000821: MSTORE
00000822: SWAP1
00000823: SWAP2
00000824: PUSH1 0xa4
00000826: ADD
00000827: DUP5
00000828: DUP5
00000829: DUP1
0000082a: DUP3
0000082b: DUP5
0000082c: CALLDATACOPY
0000082d: DUP3
0000082e: ADD
0000082f: SWAP2
00000830: POP
00000831: POP
00000832: SWAP7
00000833: POP
00000834: POP
00000835: POP
00000836: POP
00000837: POP
00000838: POP
00000839: POP
0000083a: PUSH1 0x00
0000083c: PUSH1 0x40
0000083e: MLOAD
0000083f: DUP1
00000840: DUP4
00000841: SUB
00000842: DUP2
00000843: DUP7
00000844: DUP1
00000845: EXTCODESIZE
00000846: ISZERO
00000847: ISZERO
00000848: PUSH2 0x0850
0000084b: JUMPI
0000084c: PUSH1 0x00
0000084e: DUP1
0000084f: REVERT
00000850: JUMPDEST
00000851: PUSH2 0x02c6
00000854: GAS
00000855: SUB
00000856: DELEGATECALL
00000857: ISZERO
00000858: ISZERO
00000859: PUSH2 0x0861
0000085c: JUMPI
0000085d: PUSH1 0x00
0000085f: DUP1
00000860: REVERT
00000861: JUMPDEST
00000862: POP
00000863: POP
00000864: POP
00000865: POP
00000866: POP
00000867: POP
00000868: POP
00000869: JUMP
0000086a: JUMPDEST
0000086b: PUSH1 0x00
0000086d: DUP1
0000086e: PUSH1 0x00
00000870: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000885: PUSH4 0x54fd4d50
0000088a: PUSH1 0x00
0000088c: PUSH1 0x40
0000088e: MLOAD
0000088f: PUSH1 0x60
00000891: ADD
00000892: MSTORE
00000893: PUSH1 0x40
00000895: MLOAD
00000896: DUP2
00000897: PUSH4 0xffffffff
0000089c: AND
0000089d: PUSH1 0xe0
0000089f: PUSH1 0x02
000008a1: EXP
000008a2: MUL
000008a3: DUP2
000008a4: MSTORE
000008a5: PUSH1 0x04
000008a7: ADD
000008a8: PUSH1 0x60
000008aa: PUSH1 0x40
000008ac: MLOAD
000008ad: DUP1
000008ae: DUP4
000008af: SUB
000008b0: DUP2
000008b1: DUP7
000008b2: DUP1
000008b3: EXTCODESIZE
000008b4: ISZERO
000008b5: ISZERO
000008b6: PUSH2 0x08be
000008b9: JUMPI
000008ba: PUSH1 0x00
000008bc: DUP1
000008bd: REVERT
000008be: JUMPDEST
000008bf: PUSH2 0x02c6
000008c2: GAS
000008c3: SUB
000008c4: DELEGATECALL
000008c5: ISZERO
000008c6: ISZERO
000008c7: PUSH2 0x08cf
000008ca: JUMPI
000008cb: PUSH1 0x00
000008cd: DUP1
000008ce: REVERT
000008cf: JUMPDEST
000008d0: POP
000008d1: POP
000008d2: POP
000008d3: PUSH1 0x40
000008d5: MLOAD
000008d6: DUP1
000008d7: MLOAD
000008d8: SWAP1
000008d9: PUSH1 0x20
000008db: ADD
000008dc: DUP1
000008dd: MLOAD
000008de: SWAP1
000008df: PUSH1 0x20
000008e1: ADD
000008e2: DUP1
000008e3: MLOAD
000008e4: SWAP1
000008e5: POP
000008e6: SWAP3
000008e7: POP
000008e8: SWAP3
000008e9: POP
000008ea: SWAP3
000008eb: POP
000008ec: SWAP1
000008ed: SWAP2
000008ee: SWAP3
000008ef: JUMP
000008f0: JUMPDEST
000008f1: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000906: PUSH4 0x67cbcfc0
0000090b: PUSH1 0x00
0000090d: DUP5
0000090e: DUP5
0000090f: PUSH1 0x40
00000911: MLOAD
00000912: PUSH1 0xe0
00000914: PUSH1 0x02
00000916: EXP
00000917: PUSH4 0xffffffff
0000091c: DUP7
0000091d: AND
0000091e: MUL
0000091f: DUP2
00000920: MSTORE
00000921: PUSH1 0x04
00000923: DUP2
00000924: ADD
00000925: SWAP4
00000926: SWAP1
00000927: SWAP4
00000928: MSTORE
00000929: PUSH1 0x24
0000092b: DUP4
0000092c: ADD
0000092d: SWAP2
0000092e: SWAP1
0000092f: SWAP2
00000930: MSTORE
00000931: PUSH1 0x44
00000933: DUP3
00000934: ADD
00000935: MSTORE
00000936: PUSH1 0x64
00000938: ADD
00000939: PUSH1 0x00
0000093b: PUSH1 0x40
0000093d: MLOAD
0000093e: DUP1
0000093f: DUP4
00000940: SUB
00000941: DUP2
00000942: DUP7
00000943: DUP1
00000944: EXTCODESIZE
00000945: ISZERO
00000946: ISZERO
00000947: PUSH2 0x05d8
0000094a: JUMPI
0000094b: PUSH1 0x00
0000094d: DUP1
0000094e: REVERT
0000094f: JUMPDEST
00000950: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000965: PUSH4 0xb261039b
0000096a: PUSH1 0x00
0000096c: DUP8
0000096d: DUP8
0000096e: DUP8
0000096f: DUP8
00000970: DUP8
00000971: PUSH1 0x40
00000973: MLOAD
00000974: PUSH1 0xe0
00000976: PUSH1 0x02
00000978: EXP
00000979: PUSH4 0xffffffff
0000097e: DUP10
0000097f: AND
00000980: MUL
00000981: DUP2
00000982: MSTORE
00000983: PUSH1 0x04
00000985: DUP2
00000986: ADD
00000987: DUP8
00000988: DUP2
00000989: MSTORE
0000098a: PUSH1 0x01
0000098c: PUSH1 0xa0
0000098e: PUSH1 0x02
00000990: EXP
00000991: SUB
00000992: DUP8
00000993: AND
00000994: PUSH1 0x24
00000996: DUP4
00000997: ADD
00000998: MSTORE
00000999: PUSH1 0x44
0000099b: DUP3
0000099c: ADD
0000099d: DUP7
0000099e: SWAP1
0000099f: MSTORE
000009a0: PUSH1 0x64
000009a2: DUP3
000009a3: ADD
000009a4: DUP6
000009a5: SWAP1
000009a6: MSTORE
000009a7: PUSH1 0xa0
000009a9: PUSH1 0x84
000009ab: DUP4
000009ac: ADD
000009ad: SWAP1
000009ae: DUP2
000009af: MSTORE
000009b0: PUSH1 0xa4
000009b2: DUP4
000009b3: ADD
000009b4: DUP5
000009b5: SWAP1
000009b6: MSTORE
000009b7: SWAP1
000009b8: SWAP2
000009b9: PUSH1 0xc4
000009bb: ADD
000009bc: DUP5
000009bd: DUP5
000009be: DUP1
000009bf: DUP3
000009c0: DUP5
000009c1: CALLDATACOPY
000009c2: DUP3
000009c3: ADD
000009c4: SWAP2
000009c5: POP
000009c6: POP
000009c7: SWAP8
000009c8: POP
000009c9: POP
000009ca: POP
000009cb: POP
000009cc: POP
000009cd: POP
000009ce: POP
000009cf: POP
000009d0: PUSH1 0x00
000009d2: PUSH1 0x40
000009d4: MLOAD
000009d5: DUP1
000009d6: DUP4
000009d7: SUB
000009d8: DUP2
000009d9: DUP7
000009da: DUP1
000009db: EXTCODESIZE
000009dc: ISZERO
000009dd: ISZERO
000009de: PUSH2 0x09e6
000009e1: JUMPI
000009e2: PUSH1 0x00
000009e4: DUP1
000009e5: REVERT
000009e6: JUMPDEST
000009e7: PUSH2 0x02c6
000009ea: GAS
000009eb: SUB
000009ec: DELEGATECALL
000009ed: ISZERO
000009ee: ISZERO
000009ef: PUSH2 0x09f7
000009f2: JUMPI
000009f3: PUSH1 0x00
000009f5: DUP1
000009f6: REVERT
000009f7: JUMPDEST
000009f8: POP
000009f9: POP
000009fa: POP
000009fb: POP
000009fc: POP
000009fd: POP
000009fe: POP
000009ff: POP
00000a00: JUMP
00000a01: JUMPDEST
00000a02: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000a17: PUSH4 0xf64e7cda
00000a1c: PUSH1 0x00
00000a1e: PUSH1 0x40
00000a20: MLOAD
00000a21: PUSH1 0xe0
00000a23: PUSH1 0x02
00000a25: EXP
00000a26: PUSH4 0xffffffff
00000a2b: DUP5
00000a2c: AND
00000a2d: MUL
00000a2e: DUP2
00000a2f: MSTORE
00000a30: PUSH1 0x04
00000a32: DUP2
00000a33: ADD
00000a34: SWAP2
00000a35: SWAP1
00000a36: SWAP2
00000a37: MSTORE
00000a38: PUSH1 0x24
00000a3a: ADD
00000a3b: PUSH1 0x00
00000a3d: PUSH1 0x40
00000a3f: MLOAD
00000a40: DUP1
00000a41: DUP4
00000a42: SUB
00000a43: DUP2
00000a44: DUP7
00000a45: DUP1
00000a46: EXTCODESIZE
00000a47: ISZERO
00000a48: ISZERO
00000a49: PUSH2 0x0480
00000a4c: JUMPI
00000a4d: PUSH1 0x00
00000a4f: DUP1
00000a50: REVERT
00000a51: JUMPDEST
00000a52: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000a67: PUSH4 0x68540b6b
00000a6c: PUSH1 0x00
00000a6e: DUP4
00000a6f: PUSH1 0x40
00000a71: MLOAD
00000a72: PUSH1 0xe0
00000a74: PUSH1 0x02
00000a76: EXP
00000a77: PUSH4 0xffffffff
00000a7c: DUP6
00000a7d: AND
00000a7e: MUL
00000a7f: DUP2
00000a80: MSTORE
00000a81: PUSH1 0x04
00000a83: DUP2
00000a84: ADD
00000a85: SWAP3
00000a86: SWAP1
00000a87: SWAP3
00000a88: MSTORE
00000a89: PUSH1 0x24
00000a8b: DUP3
00000a8c: ADD
00000a8d: MSTORE
00000a8e: PUSH1 0x44
00000a90: ADD
00000a91: PUSH1 0x00
00000a93: PUSH1 0x40
00000a95: MLOAD
00000a96: DUP1
00000a97: DUP4
00000a98: SUB
00000a99: DUP2
00000a9a: DUP7
00000a9b: DUP1
00000a9c: EXTCODESIZE
00000a9d: ISZERO
00000a9e: ISZERO
00000a9f: PUSH2 0x07ab
00000aa2: JUMPI
00000aa3: PUSH1 0x00
00000aa5: DUP1
00000aa6: REVERT
00000aa7: JUMPDEST
00000aa8: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000abd: PUSH4 0xc27d2d45
00000ac2: PUSH1 0x00
00000ac4: DUP4
00000ac5: PUSH1 0x40
00000ac7: MLOAD
00000ac8: PUSH1 0xe0
00000aca: PUSH1 0x02
00000acc: EXP
00000acd: PUSH4 0xffffffff
00000ad2: DUP6
00000ad3: AND
00000ad4: MUL
00000ad5: DUP2
00000ad6: MSTORE
00000ad7: PUSH1 0x04
00000ad9: DUP2
00000ada: ADD
00000adb: SWAP3
00000adc: SWAP1
00000add: SWAP3
00000ade: MSTORE
00000adf: PUSH1 0x01
00000ae1: PUSH1 0xa0
00000ae3: PUSH1 0x02
00000ae5: EXP
00000ae6: SUB
00000ae7: AND
00000ae8: PUSH1 0x24
00000aea: DUP3
00000aeb: ADD
00000aec: MSTORE
00000aed: PUSH1 0x44
00000aef: ADD
00000af0: PUSH1 0x00
00000af2: PUSH1 0x40
00000af4: MLOAD
00000af5: DUP1
00000af6: DUP4
00000af7: SUB
00000af8: DUP2
00000af9: DUP7
00000afa: DUP1
00000afb: EXTCODESIZE
00000afc: ISZERO
00000afd: ISZERO
00000afe: PUSH2 0x07ab
00000b01: JUMPI
00000b02: PUSH1 0x00
00000b04: DUP1
00000b05: REVERT
00000b06: JUMPDEST
00000b07: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000b1c: PUSH4 0x62cea5b9
00000b21: PUSH1 0x00
00000b23: PUSH1 0x40
00000b25: MLOAD
00000b26: PUSH1 0xe0
00000b28: PUSH1 0x02
00000b2a: EXP
00000b2b: PUSH4 0xffffffff
00000b30: DUP5
00000b31: AND
00000b32: MUL
00000b33: DUP2
00000b34: MSTORE
00000b35: PUSH1 0x04
00000b37: DUP2
00000b38: ADD
00000b39: SWAP2
00000b3a: SWAP1
00000b3b: SWAP2
00000b3c: MSTORE
00000b3d: PUSH1 0x24
00000b3f: ADD
00000b40: PUSH1 0x00
00000b42: PUSH1 0x40
00000b44: MLOAD
00000b45: DUP1
00000b46: DUP4
00000b47: SUB
00000b48: DUP2
00000b49: DUP7
00000b4a: DUP1
00000b4b: EXTCODESIZE
00000b4c: ISZERO
00000b4d: ISZERO
00000b4e: PUSH2 0x0480
00000b51: JUMPI
00000b52: PUSH1 0x00
00000b54: DUP1
00000b55: REVERT
00000b56: JUMPDEST
00000b57: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000b6c: PUSH4 0xdde9806b
00000b71: PUSH1 0x00
00000b73: DUP7
00000b74: DUP7
00000b75: DUP7
00000b76: DUP7
00000b77: PUSH1 0x40
00000b79: MLOAD
00000b7a: PUSH1 0xe0
00000b7c: PUSH1 0x02
00000b7e: EXP
00000b7f: PUSH4 0xffffffff
00000b84: DUP9
00000b85: AND
00000b86: MUL
00000b87: DUP2
00000b88: MSTORE
00000b89: PUSH1 0x04
00000b8b: DUP2
00000b8c: ADD
00000b8d: DUP7
00000b8e: DUP2
00000b8f: MSTORE
00000b90: PUSH1 0x01
00000b92: PUSH1 0xa0
00000b94: PUSH1 0x02
00000b96: EXP
00000b97: SUB
00000b98: DUP7
00000b99: AND
00000b9a: PUSH1 0x24
00000b9c: DUP4
00000b9d: ADD
00000b9e: MSTORE
00000b9f: PUSH1 0x44
00000ba1: DUP3
00000ba2: ADD
00000ba3: DUP6
00000ba4: SWAP1
00000ba5: MSTORE
00000ba6: PUSH1 0x80
00000ba8: PUSH1 0x64
00000baa: DUP4
00000bab: ADD
00000bac: SWAP1
00000bad: DUP2
00000bae: MSTORE
00000baf: PUSH1 0x84
00000bb1: DUP4
00000bb2: ADD
00000bb3: DUP5
00000bb4: SWAP1
00000bb5: MSTORE
00000bb6: SWAP1
00000bb7: SWAP2
00000bb8: PUSH1 0xa4
00000bba: ADD
00000bbb: DUP5
00000bbc: DUP5
00000bbd: DUP1
00000bbe: DUP3
00000bbf: DUP5
00000bc0: CALLDATACOPY
00000bc1: DUP3
00000bc2: ADD
00000bc3: SWAP2
00000bc4: POP
00000bc5: POP
00000bc6: SWAP7
00000bc7: POP
00000bc8: POP
00000bc9: POP
00000bca: POP
00000bcb: POP
00000bcc: POP
00000bcd: POP
00000bce: PUSH1 0x00
00000bd0: PUSH1 0x40
00000bd2: MLOAD
00000bd3: DUP1
00000bd4: DUP4
00000bd5: SUB
00000bd6: DUP2
00000bd7: DUP7
00000bd8: DUP1
00000bd9: EXTCODESIZE
00000bda: ISZERO
00000bdb: ISZERO
00000bdc: PUSH2 0x0850
00000bdf: JUMPI
00000be0: PUSH1 0x00
00000be2: DUP1
00000be3: REVERT
00000be4: JUMPDEST
00000be5: PUSH1 0x00
00000be7: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000bfc: PUSH4 0xe8603f09
00000c01: DUP3
00000c02: DUP1
00000c03: PUSH1 0x40
00000c05: MLOAD
00000c06: PUSH1 0x20
00000c08: ADD
00000c09: MSTORE
00000c0a: PUSH1 0x40
00000c0c: MLOAD
00000c0d: PUSH1 0xe0
00000c0f: PUSH1 0x02
00000c11: EXP
00000c12: PUSH4 0xffffffff
00000c17: DUP5
00000c18: AND
00000c19: MUL
00000c1a: DUP2
00000c1b: MSTORE
00000c1c: PUSH1 0x04
00000c1e: DUP2
00000c1f: ADD
00000c20: SWAP2
00000c21: SWAP1
00000c22: SWAP2
00000c23: MSTORE
00000c24: PUSH1 0x24
00000c26: ADD
00000c27: PUSH1 0x20
00000c29: PUSH1 0x40
00000c2b: MLOAD
00000c2c: DUP1
00000c2d: DUP4
00000c2e: SUB
00000c2f: DUP2
00000c30: DUP7
00000c31: DUP1
00000c32: EXTCODESIZE
00000c33: ISZERO
00000c34: ISZERO
00000c35: PUSH2 0x0c3d
00000c38: JUMPI
00000c39: PUSH1 0x00
00000c3b: DUP1
00000c3c: REVERT
00000c3d: JUMPDEST
00000c3e: PUSH2 0x02c6
00000c41: GAS
00000c42: SUB
00000c43: DELEGATECALL
00000c44: ISZERO
00000c45: ISZERO
00000c46: PUSH2 0x0c4e
00000c49: JUMPI
00000c4a: PUSH1 0x00
00000c4c: DUP1
00000c4d: REVERT
00000c4e: JUMPDEST
00000c4f: POP
00000c50: POP
00000c51: POP
00000c52: PUSH1 0x40
00000c54: MLOAD
00000c55: DUP1
00000c56: MLOAD
00000c57: SWAP1
00000c58: POP
00000c59: POP
00000c5a: SWAP1
00000c5b: JUMP
00000c5c: JUMPDEST
00000c5d: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000c72: PUSH4 0xcc135813
00000c77: PUSH1 0x00
00000c79: PUSH1 0x40
00000c7b: MLOAD
00000c7c: PUSH1 0xe0
00000c7e: PUSH1 0x02
00000c80: EXP
00000c81: PUSH4 0xffffffff
00000c86: DUP5
00000c87: AND
00000c88: MUL
00000c89: DUP2
00000c8a: MSTORE
00000c8b: PUSH1 0x04
00000c8d: DUP2
00000c8e: ADD
00000c8f: SWAP2
00000c90: SWAP1
00000c91: SWAP2
00000c92: MSTORE
00000c93: PUSH1 0x24
00000c95: ADD
00000c96: PUSH1 0x00
00000c98: PUSH1 0x40
00000c9a: MLOAD
00000c9b: DUP1
00000c9c: DUP4
00000c9d: SUB
00000c9e: DUP2
00000c9f: DUP7
00000ca0: DUP1
00000ca1: EXTCODESIZE
00000ca2: ISZERO
00000ca3: ISZERO
00000ca4: PUSH2 0x0480
00000ca7: JUMPI
00000ca8: PUSH1 0x00
00000caa: DUP1
00000cab: REVERT
00000cac: JUMPDEST
00000cad: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000cc2: PUSH4 0x2006b39d
00000cc7: PUSH1 0x00
00000cc9: DUP8
00000cca: DUP8
00000ccb: DUP8
00000ccc: DUP8
00000ccd: DUP8
00000cce: PUSH1 0x40
00000cd0: MLOAD
00000cd1: DUP8
00000cd2: PUSH4 0xffffffff
00000cd7: AND
00000cd8: PUSH1 0xe0
00000cda: PUSH1 0x02
00000cdc: EXP
00000cdd: MUL
00000cde: DUP2
00000cdf: MSTORE
00000ce0: PUSH1 0x04
00000ce2: ADD
00000ce3: DUP1
00000ce4: DUP8
00000ce5: DUP2
00000ce6: MSTORE
00000ce7: PUSH1 0x20
00000ce9: ADD
00000cea: DUP7
00000ceb: DUP2
00000cec: MSTORE
00000ced: PUSH1 0x20
00000cef: ADD
00000cf0: DUP6
00000cf1: DUP2
00000cf2: MSTORE
00000cf3: PUSH1 0x20
00000cf5: ADD
00000cf6: DUP5
00000cf7: DUP2
00000cf8: MSTORE
00000cf9: PUSH1 0x20
00000cfb: ADD
00000cfc: DUP1
00000cfd: PUSH1 0x20
00000cff: ADD
00000d00: DUP3
00000d01: DUP2
00000d02: SUB
00000d03: DUP3
00000d04: MSTORE
00000d05: DUP5
00000d06: DUP5
00000d07: DUP3
00000d08: DUP2
00000d09: DUP2
00000d0a: MSTORE
00000d0b: PUSH1 0x20
00000d0d: ADD
00000d0e: SWAP3
00000d0f: POP
00000d10: PUSH1 0x20
00000d12: MUL
00000d13: DUP1
00000d14: DUP3
00000d15: DUP5
00000d16: CALLDATACOPY
00000d17: DUP3
00000d18: ADD
00000d19: SWAP2
00000d1a: POP
00000d1b: POP
00000d1c: SWAP8
00000d1d: POP
00000d1e: POP
00000d1f: POP
00000d20: POP
00000d21: POP
00000d22: POP
00000d23: POP
00000d24: POP
00000d25: PUSH1 0x00
00000d27: PUSH1 0x40
00000d29: MLOAD
00000d2a: DUP1
00000d2b: DUP4
00000d2c: SUB
00000d2d: DUP2
00000d2e: DUP7
00000d2f: DUP1
00000d30: EXTCODESIZE
00000d31: ISZERO
00000d32: ISZERO
00000d33: PUSH2 0x09e6
00000d36: JUMPI
00000d37: PUSH1 0x00
00000d39: DUP1
00000d3a: REVERT
00000d3b: JUMPDEST
00000d3c: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000d51: PUSH4 0x536b7ad5
00000d56: PUSH1 0x00
00000d58: DUP7
00000d59: DUP7
00000d5a: DUP7
00000d5b: DUP7
00000d5c: PUSH1 0x40
00000d5e: MLOAD
00000d5f: DUP7
00000d60: PUSH4 0xffffffff
00000d65: AND
00000d66: PUSH1 0xe0
00000d68: PUSH1 0x02
00000d6a: EXP
00000d6b: MUL
00000d6c: DUP2
00000d6d: MSTORE
00000d6e: PUSH1 0x04
00000d70: ADD
00000d71: DUP1
00000d72: DUP7
00000d73: DUP2
00000d74: MSTORE
00000d75: PUSH1 0x20
00000d77: ADD
00000d78: DUP1
00000d79: PUSH1 0x20
00000d7b: ADD
00000d7c: DUP1
00000d7d: PUSH1 0x20
00000d7f: ADD
00000d80: DUP4
00000d81: DUP2
00000d82: SUB
00000d83: DUP4
00000d84: MSTORE
00000d85: DUP8
00000d86: DUP8
00000d87: DUP3
00000d88: DUP2
00000d89: DUP2
00000d8a: MSTORE
00000d8b: PUSH1 0x20
00000d8d: ADD
00000d8e: SWAP3
00000d8f: POP
00000d90: PUSH1 0x20
00000d92: MUL
00000d93: DUP1
00000d94: DUP3
00000d95: DUP5
00000d96: CALLDATACOPY
00000d97: SWAP1
00000d98: SWAP2
00000d99: ADD
00000d9a: DUP5
00000d9b: DUP2
00000d9c: SUB
00000d9d: DUP4
00000d9e: MSTORE
00000d9f: DUP6
00000da0: DUP2
00000da1: MSTORE
00000da2: PUSH1 0x20
00000da4: SWAP1
00000da5: DUP2
00000da6: ADD
00000da7: SWAP2
00000da8: POP
00000da9: DUP7
00000daa: SWAP1
00000dab: DUP7
00000dac: MUL
00000dad: DUP1
00000dae: DUP3
00000daf: DUP5
00000db0: CALLDATACOPY
00000db1: DUP3
00000db2: ADD
00000db3: SWAP2
00000db4: POP
00000db5: POP
00000db6: SWAP8
00000db7: POP
00000db8: POP
00000db9: POP
00000dba: POP
00000dbb: POP
00000dbc: POP
00000dbd: POP
00000dbe: POP
00000dbf: PUSH1 0x00
00000dc1: PUSH1 0x40
00000dc3: MLOAD
00000dc4: DUP1
00000dc5: DUP4
00000dc6: SUB
00000dc7: DUP2
00000dc8: DUP7
00000dc9: DUP1
00000dca: EXTCODESIZE
00000dcb: ISZERO
00000dcc: ISZERO
00000dcd: PUSH2 0x0850
00000dd0: JUMPI
00000dd1: PUSH1 0x00
00000dd3: DUP1
00000dd4: REVERT
00000dd5: JUMPDEST
00000dd6: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000deb: PUSH4 0x663eb994
00000df0: PUSH1 0x00
00000df2: DUP5
00000df3: DUP5
00000df4: PUSH1 0x40
00000df6: MLOAD
00000df7: PUSH1 0xe0
00000df9: PUSH1 0x02
00000dfb: EXP
00000dfc: PUSH4 0xffffffff
00000e01: DUP7
00000e02: AND
00000e03: MUL
00000e04: DUP2
00000e05: MSTORE
00000e06: PUSH1 0x04
00000e08: DUP2
00000e09: ADD
00000e0a: SWAP4
00000e0b: SWAP1
00000e0c: SWAP4
00000e0d: MSTORE
00000e0e: PUSH1 0x01
00000e10: PUSH1 0xa0
00000e12: PUSH1 0x02
00000e14: EXP
00000e15: SUB
00000e16: SWAP1
00000e17: SWAP2
00000e18: AND
00000e19: PUSH1 0x24
00000e1b: DUP4
00000e1c: ADD
00000e1d: MSTORE
00000e1e: ISZERO
00000e1f: ISZERO
00000e20: PUSH1 0x44
00000e22: DUP3
00000e23: ADD
00000e24: MSTORE
00000e25: PUSH1 0x64
00000e27: ADD
00000e28: PUSH1 0x00
00000e2a: PUSH1 0x40
00000e2c: MLOAD
00000e2d: DUP1
00000e2e: DUP4
00000e2f: SUB
00000e30: DUP2
00000e31: DUP7
00000e32: DUP1
00000e33: EXTCODESIZE
00000e34: ISZERO
00000e35: ISZERO
00000e36: PUSH2 0x05d8
00000e39: JUMPI
00000e3a: PUSH1 0x00
00000e3c: DUP1
00000e3d: REVERT
00000e3e: JUMPDEST
00000e3f: PUSH20 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
00000e54: PUSH4 0xd4d357c0
00000e59: PUSH1 0x00
00000e5b: DUP5
00000e5c: DUP5
00000e5d: PUSH1 0x40
00000e5f: MLOAD
00000e60: PUSH1 0xe0
00000e62: PUSH1 0x02
00000e64: EXP
00000e65: PUSH4 0xffffffff
00000e6a: DUP7
00000e6b: AND
00000e6c: MUL
00000e6d: DUP2
00000e6e: MSTORE
00000e6f: PUSH1 0x04
00000e71: DUP2
00000e72: ADD
00000e73: DUP5
00000e74: DUP2
00000e75: MSTORE
00000e76: PUSH1 0x40
00000e78: PUSH1 0x24
00000e7a: DUP4
00000e7b: ADD
00000e7c: SWAP1
00000e7d: DUP2
00000e7e: MSTORE
00000e7f: PUSH1 0x44
00000e81: DUP4
00000e82: ADD
00000e83: DUP5
00000e84: SWAP1
00000e85: MSTORE
00000e86: SWAP1
00000e87: SWAP2
00000e88: PUSH1 0x64
00000e8a: ADD
00000e8b: DUP5
00000e8c: PUSH1 0x20
00000e8e: DUP6
00000e8f: MUL
00000e90: DUP1
00000e91: DUP3
00000e92: DUP5
00000e93: CALLDATACOPY
00000e94: DUP3
00000e95: ADD
00000e96: SWAP2
00000e97: POP
00000e98: POP
00000e99: SWAP5
00000e9a: POP
00000e9b: POP
00000e9c: POP
00000e9d: POP
00000e9e: POP
00000e9f: PUSH1 0x00
00000ea1: PUSH1 0x40
00000ea3: MLOAD
00000ea4: DUP1
00000ea5: DUP4
00000ea6: SUB
00000ea7: DUP2
00000ea8: DUP7
00000ea9: DUP1
00000eaa: EXTCODESIZE
00000eab: ISZERO
00000eac: ISZERO
00000ead: PUSH2 0x05d8
00000eb0: JUMPI
00000eb1: PUSH1 0x00
00000eb3: DUP1
00000eb4: REVERT
00000eb5: STOP
00000eb6: LOG1
00000eb7: PUSH6 0x627a7a723058
00000ebe: KECCAK256
00000ebf: PUSH20 0xaf256e7cd1ae46c52534d65645e32c80244484ce
00000ed4: UNKNOWN(0xC1)
00000ed5: LOG3
00000ed6: PUSH32

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: 0x8c5cf09743b140d6c9c113fa5aefb2cf66a0f636bb903777b8aec63da90811b2
call_targets: 0xf50b0957dfffe6ad144300f9e1a8b79c972e3516
target_varies: no
classification: constant_target
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x8c5cf09743b140d6c9c113fa5aefb2cf66a0f636bb903777b8aec63da90811b2",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf50b0957dfffe6ad144300f9e1a8b79c972e3516"
    ],
    "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": "0x0be479e1",
            "selector": "0x0be479e1",
            "calldata_variants": [
                "0x0be479e1",
                "0x0be479e10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x14614af9",
            "selector": "0x14614af9",
            "calldata_variants": [
                "0x14614af9",
                "0x14614af90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x17f708fb",
            "selector": "0x17f708fb",
            "calldata_variants": [
                "0x17f708fb",
                "0x17f708fb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x19f363bc",
            "selector": "0x19f363bc",
            "calldata_variants": [
                "0x19f363bc",
                "0x19f363bc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2b55b792",
            "selector": "0x2b55b792",
            "calldata_variants": [
                "0x2b55b792",
                "0x2b55b7920000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2d923501",
            "selector": "0x2d923501",
            "calldata_variants": [
                "0x2d923501",
                "0x2d9235010000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2e1a7d4d",
            "selector": "0x2e1a7d4d",
            "calldata_variants": [
                "0x2e1a7d4d",
                "0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4d5a8e10",
            "selector": "0x4d5a8e10",
            "calldata_variants": [
                "0x4d5a8e10",
                "0x4d5a8e100000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 356,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 1158,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 1293,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 11,
    "untrusted_delegatecall_count": 11
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 11
}
medium upgradeability codex Computed DELEGATECALL target (slot 0x13) with no detected access control 75 no
view
evidence_json
{
    "evidence": "detector_findings[0] flags \u201cUntrusted DELEGATECALL target reachable\u201d with 11 delegatecall sites; callsites show computed targets (pc 356, 1158, 1293, 1502, 1650, 1848, 1969, 2134, 2244, 2540, 3139). Storage reads from slot 0x13 occur at pc 1523/1540/1667/1680/1697/1865. No auth guards detected (auth.guards=[]). Validation indicates a constant target 0xf50b\u2026 but not confirmed, so mutability remains uncertain.",
    "locations": [
        "pc:0x164",
        "pc:0x486",
        "pc:0x50d",
        "pc:0x5de",
        "pc:0x672",
        "pc:0x738",
        "pc:0x7b1",
        "pc:0x856",
        "pc:0x8c4",
        "pc:0x9ec",
        "pc:0xc43",
        "pc:0x5f3",
        "pc:0x604",
        "pc:0x683",
        "pc:0x690",
        "pc:0x6a1",
        "pc:0x749"
    ],
    "recommendation": "Verify whether slot 0x13 is writable after deployment. If upgrades are intended, restrict setters with explicit access control and emit upgrade events; if upgrades are not intended, make the target immutable or hard\u2011code it and remove any setters.",
    "exploit_scenario": "If any externally reachable function can update the delegatecall target (e.g., a setter for the address stored in slot 0x13), an attacker could point it to a malicious implementation and gain arbitrary code execution in the proxy\u2019s storage context, draining funds or seizing control. The analysis could not confirm whether the target is immutable or protected, so this risk depends on hidden upgrade mechanisms."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 23
}