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

Analysis Run

019b3836-360e-730b-adcd-d15852dc100d

complete
Chain ID
1
Address
Block Number
Created
Fri, Dec 19, 2025 8:03 PM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
3519 artifact.fetch complete 1 / 3 3 months ago
3520 tool.cast_disasm complete 1 / 3 3 months ago
46396 analysis.bundle complete 1 / 3 1 week ago
46397 capability.graph complete 1 / 3 1 week ago
46398 detector.run complete 1 / 3 1 week ago
46399 validation.fork complete 1 / 3 1 week ago
113261 report.consolidate complete 1 / 6 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
1
No findings?
no
Summary
Bytecode review found one critical issue: a publicly reachable, unguarded selector appears to act like an initializer/mint routine and can overwrite the caller's token balance and token metadata. No proxy/delegatecall path was evidenced.
View stdout
{"no_findings":false,"summary":"Bytecode review found one critical issue: a publicly reachable, unguarded selector appears to act like an initializer/mint routine and can overwrite the caller's token balance and token metadata. No proxy/delegatecall path was evidenced.","findings":[{"severity":"critical","category":"auth","title":"Public unguarded initializer-like function can assign caller balance and rewrite token metadata","exploit_scenario":"Best-effort inference from bytecode: selector 0xe6a55699 decodes two dynamic string/bytes arguments plus two fixed values, substitutes a default amount of 1,000,000 when one amount input is zero, then writes directly to the caller's balance mapping at slot base 0x03. The same path also writes token metadata-style storage (the contract's string slots used by name()/symbol() and the low byte of slot 0x02 used by decimals()). Because no owner/once-only guard is visible before these writes, any attacker can call this function after deployment to set their own balance to an arbitrary value (or at least 1,000,000 via the default branch) and alter metadata, then transfer those tokens out.","recommendation":"Treat selector 0xe6a55699 as an exposed constructor/initializer until proven otherwise. Remove or permanently disable it after deployment, or gate it with a strict one-time initialization check plus privileged access control. If the contract is already deployed and immutable, assume token balances/metadata are attacker-controlled and migrate.","evidence":"Dispatcher exposes selector 0xe6a55699. Its path contains no auth checks before state writes. At pc 0x0405-0x0413 it branches to a hardcoded default amount 0x0f4240. At pc 0x0415-0x0431 it computes keccak(msg.sender, 0x03) and SSTOREs the supplied amount into the caller balance slot. The same function then performs string-storage writes rooted at slot 0x00/its data area (pc 0x0432-0x0493) and later writes the low byte of slot 0x02 (pc 0x0609-0x0614), matching the slots read by name()/symbol()/decimals().","locations":["selector:0xe6a55699","pc:0x0405","pc:0x042f","pc:0x0431","pc:0x0609","pc:0x0614"]}]}
View stderr
OpenAI Codex v0.118.0 (research preview)
--------
workdir: /tmp/codex-6oubwxvx
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5bc2-0a22-7c63-925a-cec3ec2f1a8d
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.

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

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".

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

exec
/bin/bash -lc "sed -n '1,260p' BYTECODE_BUNDLE.json" in /tmp/codex-6oubwxvx
 succeeded in 0ms:
{
  "analysis_artifact": {
    "address": "0xd7e021cd9096cc0ca642828c1045eb10c6b1ff2e",
    "artifact_hash": "0xfea0adb18744356b8eb99b6533a70b0a822674b96a9a2dc7eaaf984766a5a5ed",
    "artifact_json": {
      "auth": {
        "guards": []
      },
      "basic_blocks": [
        {
          "end_pc": 10,
          "hash": "0xea84cd9b520f9ac15ee69facebf0514d237ae3f350495e573c06816e7e3d08cf",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "CALLDATASIZE",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 0
        },
        {
          "end_pc": 30,
          "hash": "0x8351f5fd39e1769e53f7b93891e5bf598f6939b3ca7289b6c03bc34019c93201",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "EXP",
            "PUSH1",
            "CALLDATALOAD",
            "DIV",
            "PUSH4",
            "OP_81",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 11
        },
        {
          "end_pc": 41,
          "hash": "0xea91c1b81d5ade23782261ac75a2ddbefec41c29e5137fe0f73d110d1360453a",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 31
        },
        {
          "end_pc": 52,
          "hash": "0x228d4f4a0da6e8bd757cd28745f2b4958c98f67409067116a44ee02e8fb97f2e",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 42
        },
        {
          "end_pc": 63,
          "hash": "0x8096f3cfd9edec3e7cc023f44a1b3efc324394bf105a360e74ee74cec9645bee",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 53
        },
        {
          "end_pc": 74,
          "hash": "0xbd0a2e97a2bec8ff409bd49d326d4bf123281b9f3389fc84be8d43e868501fda",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 64
        },
        {
          "end_pc": 85,
          "hash": "0x323160771fb6e7c7da57f8357b78993b37652095a88c7d92e450971fdd87a521",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 75
        },
        {
          "end_pc": 96,
          "hash": "0x28d78f8c295f5d6fa4668c2c25bc255a1de639c44330425dc83b2d4af5d0d1b3",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 86
        },
        {
          "end_pc": 107,
          "hash": "0x14fa9bb36dc33abaefb59b781741c01df2241d4bc3938f8a5464713a8a15b36b",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 97
        },
        {
          "end_pc": 118,
          "hash": "0xf5dcd67c858320278cac7baf5040cb5147bce7dd8b519b24eaba45d5fe0a1009",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 108
        },
        {
          "end_pc": 129,
          "hash": "0x28f905c7a227a234e956a16c5275ba2797487e3de2e5267d4ba2df8db3e34f4c",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 119
        },
        {
          "end_pc": 137,
          "hash": "0x656b8169beec60c42239989f91c962dd84d0262fd46d3f7eb1ba22508d55b606",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 130
        },
        {
          "end_pc": 204,
          "hash": "0x38971221762cbfec0153d84fe906fd6c9dc28d87bfffa225e8fd4966a6afbaeb",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "OP_80",
            "MLOAD",
            "PUSH1",
            "OP_80",
            "SLOAD",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "OP_83",
            "AND",
            "ISZERO",
            "PUSH2",
            "MUL",
            "PUSH1",
            "NOT",
            "ADD",
            "OP_90",
            "OP_92",
            "AND",
            "OP_91",
            "OP_90",
            "OP_91",
            "DIV",
            "PUSH1",
            "OP_81",
            "ADD",
            "OP_82",
            "OP_90",
            "DIV",
            "OP_82",
            "MUL",
            "OP_84",
            "ADD",
            "OP_82",
            "ADD",
            "OP_90",
            "OP_94",
            "MSTORE",
            "OP_83",
            "OP_83",
            "MSTORE",
            "PUSH2",
            "OP_93",
            "OP_90",
            "OP_83",
            "ADD",
            "OP_82",
            "OP_82",
            "OP_80",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 138
        },
        {
          "end_pc": 212,
          "hash": "0x928ebfc536e486a92c1c3c2ac85d2ffc79efe0a62d98edefc901aa993c36cdf8",
          "opcodes": [
            "OP_80",
            "PUSH1",
            "LT",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 205
        },
        {
          "end_pc": 231,
          "hash": "0xc81dbc6115471deb494f3879f83e159c33370e1a61cd4c3025937246f5ec2c48",
          "opcodes": [
            "PUSH2",
            "OP_80",
            "OP_83",
            "SLOAD",
            "DIV",
            "MUL",
            "OP_83",
            "MSTORE",
            "OP_91",
            "PUSH1",
            "ADD",
            "OP_91",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 213
        },
        {
          "end_pc": 277,
          "hash": "0x3727821badd7555d42d8b36030ebe49c8cdfed69d0c332453f2296758a68c865",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",

exec
/bin/bash -lc "sed -n '261,520p' BYTECODE_BUNDLE.json" in /tmp/codex-6oubwxvx
 succeeded in 0ms:
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "OP_83",
            "AND",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "OP_81",
            "SHA3",
            "SLOAD",
            "OP_82",
            "OP_90",
            "LT",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 232
        },
        {
          "end_pc": 281,
          "hash": "0x023ddd88da6bacdf435db2f10910d47ff60d71a6ea606f961f9b83b1ae104a28",
          "opcodes": [
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 278
        },
        {
          "end_pc": 293,
          "hash": "0x462a56aa72e9ff02dacf52c17579dade6411f9ceb064b53336bc9c7d58755dec",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH1",
            "SLOAD",
            "PUSH1",
            "AND",
            "OP_81",
            "JUMP"
          ],
          "start_pc": 282
        },
        {
          "end_pc": 317,
          "hash": "0xda6e4981f173e6846859f48d3ee8d0a4d11cd03d5630e84f60b02f42cffa5a68",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_90",
            "SHA3",
            "SLOAD",
            "OP_81",
            "JUMP"
          ],
          "start_pc": 294
        },
        {
          "end_pc": 383,
          "hash": "0x79440b01e09d06218d0758f678c100c6b7585d97c44fe6297bc1b2ddfb672c24",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "OP_80",
            "MLOAD",
            "PUSH1",
            "OP_80",
            "SLOAD",
            "PUSH1",
            "PUSH1",
            "OP_82",
            "OP_84",
            "AND",
            "ISZERO",
            "PUSH2",
            "MUL",
            "PUSH1",
            "NOT",
            "ADD",
            "OP_90",
            "OP_92",
            "AND",
            "OP_91",
            "OP_90",
            "OP_91",
            "DIV",
            "PUSH1",
            "OP_81",
            "ADD",
            "OP_82",
            "OP_90",
            "DIV",
            "OP_82",
            "MUL",
            "OP_84",
            "ADD",
            "OP_82",
            "ADD",
            "OP_90",
            "OP_94",
            "MSTORE",
            "OP_83",
            "OP_83",
            "MSTORE",
            "PUSH2",
            "OP_93",
            "OP_90",
            "OP_83",
            "ADD",
            "OP_82",
            "OP_82",
            "OP_80",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 318
        },
        {
          "end_pc": 391,
          "hash": "0x4d086cb51e2525272cdaedaf0bff8b98b465d4b48af9f9d8d9e2f10dbef35f41",
          "opcodes": [
            "OP_80",
            "PUSH1",
            "LT",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 384
        },
        {
          "end_pc": 410,
          "hash": "0xfb3cd24b9f64b5ac274cbb174f7dbd0cfe4eb930a257bcd0b74a056f38a2a53b",
          "opcodes": [
            "PUSH2",
            "OP_80",
            "OP_83",
            "SLOAD",
            "DIV",
            "MUL",
            "OP_83",
            "MSTORE",
            "OP_91",
            "PUSH1",
            "ADD",
            "OP_91",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 392
        },
        {
          "end_pc": 453,
          "hash": "0x78494d4ec59d88eb683ce17dc9dfb54a579887623c0a8946ccf8509edb8a806f",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "CALLER",
            "AND",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "OP_90",
            "SHA3",
            "SLOAD",
            "OP_81",
            "OP_90",
            "LT",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 411
        },
        {
          "end_pc": 457,
          "hash": "0x958fbcdb7a5ddbe9800f3036e3e1271ad6366089e41feec49d2009270f7a633c",
          "opcodes": [
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 454
        },
        {
          "end_pc": 746,
          "hash": "0xb1a9ccc4293e762601f5777144e0565aedded23f54abec5a2a67ad1ab696e176",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "OP_80",
            "MLOAD",
            "PUSH1",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "OP_81",
            "OP_81",
            "ADD",
            "CALLDATALOAD",
            "PUSH1",
            "OP_81",
            "ADD",
            "OP_84",
            "OP_90",
            "DIV",
            "OP_84",
            "MUL",
            "OP_85",
            "ADD",
            "OP_84",
            "ADD",
            "OP_90",
            "OP_95",
            "MSTORE",
            "OP_84",
            "OP_84",
            "MSTORE",
            "PUSH2",
            "OP_94",
            "OP_81",
            "CALLDATALOAD",
            "OP_94",

exec
/bin/bash -lc "sed -n '521,780p' BYTECODE_BUNDLE.json" in /tmp/codex-6oubwxvx
 succeeded in 0ms:
            "PUSH1",
            "OP_80",
            "CALLDATALOAD",
            "OP_95",
            "OP_93",
            "OP_94",
            "PUSH1",
            "OP_94",
            "OP_92",
            "OP_93",
            "OP_91",
            "ADD",
            "OP_91",
            "OP_81",
            "OP_90",
            "OP_84",
            "ADD",
            "OP_83",
            "OP_82",
            "OP_80",
            "OP_82",
            "OP_84",
            "CALLDATACOPY",
            "POP",
            "OP_94",
            "OP_96",
            "POP",
            "POP",
            "POP",
            "POP",
            "POP",
            "POP",
            "POP",
            "PUSH1",
            "PUSH1",
            "OP_83",
            "PUSH1",
            "PUSH1",
            "POP",
            "PUSH1",
            "CALLER",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "PUSH1",
            "SHA3",
            "PUSH1",
            "POP",
            "PUSH1",
            "OP_87",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "PUSH1",
            "SHA3",
            "PUSH1",
            "POP",
            "OP_81",
            "OP_90",
            "SSTORE",
            "POP",
            "OP_84",
            "OP_90",
            "POP",
            "OP_80",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "PUSH4",
            "CALLER",
            "OP_86",
            "ADDRESS",
            "OP_87",
            "PUSH1",
            "MLOAD",
            "OP_85",
            "PUSH1",
            "PUSH1",
            "EXP",
            "MUL",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_80",
            "OP_85",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_84",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_83",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_80",
            "PUSH1",
            "ADD",
            "OP_82",
            "OP_81",
            "SUB",
            "OP_82",
            "MSTORE",
            "OP_83",
            "OP_81",
            "OP_81",
            "MLOAD",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_91",
            "POP",
            "OP_80",
            "MLOAD",
            "OP_90",
            "PUSH1",
            "ADD",
            "OP_90",
            "OP_80",
            "OP_83",
            "OP_83",
            "OP_82",
            "OP_90",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "OP_84",
            "PUSH1",
            "ADD",
            "DIV",
            "PUSH1",
            "MUL",
            "PUSH1",
            "ADD",
            "CALL",
            "POP",
            "OP_90",
            "POP",
            "OP_90",
            "OP_81",
            "ADD",
            "OP_90",
            "PUSH1",
            "AND",
            "OP_80",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 458
        },
        {
          "end_pc": 771,
          "hash": "0x7c2076afc0682a3d6432dcba9c9d72eae5659d0deac2fdf4963620548e4c0bf6",
          "opcodes": [
            "OP_80",
            "OP_82",
            "SUB",
            "OP_80",
            "MLOAD",
            "PUSH1",
            "OP_83",
            "PUSH1",
            "SUB",
            "PUSH2",
            "EXP",
            "SUB",
            "NOT",
            "AND",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_91",
            "POP"
          ],
          "start_pc": 747
        },
        {
          "end_pc": 803,
          "hash": "0x682309155583e9bf5684c645805d02775c0489d8a310e39a455eed1845ae107b",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "OP_95",
            "POP",
            "POP",
            "POP",
            "POP",
            "POP",
            "POP",
            "PUSH1",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_83",
            "SUB",
            "OP_81",
            "PUSH1",
            "OP_87",
            "PUSH2",
            "GAS",
            "SUB",
            "CALL",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 772
        },
        {
          "end_pc": 813,
          "hash": "0x8423287e75318bb1a97109158b92abd95e8ab3344b10d1323330706b22a820e1",
          "opcodes": [
            "POP",

exec
/bin/bash -lc "sed -n '781,1040p' BYTECODE_BUNDLE.json" in /tmp/codex-6oubwxvx
 succeeded in 0ms:
            "POP",
            "POP",
            "POP",
            "OP_93",
            "OP_92",
            "POP",
            "POP",
            "POP",
            "JUMP"
          ],
          "start_pc": 804
        },
        {
          "end_pc": 850,
          "hash": "0x92c9e32cf0f987f1a236d75ac5d4c138e581e3d6a86237e091fac06940024978",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_80",
            "OP_82",
            "SHA3",
            "OP_90",
            "OP_92",
            "MSTORE",
            "PUSH1",
            "CALLDATALOAD",
            "OP_81",
            "MSTORE",
            "SHA3",
            "SLOAD",
            "PUSH2",
            "OP_90",
            "OP_81",
            "JUMP"
          ],
          "start_pc": 814
        },
        {
          "end_pc": 886,
          "hash": "0x78e6651f795163cda33a1f7d0e0c76914e57579b5bd8a6706bd4e2edfe8572ea",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "OP_81",
            "OP_81",
            "MSTORE",
            "OP_90",
            "CALLDATALOAD",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_80",
            "OP_82",
            "SHA3",
            "OP_90",
            "OP_92",
            "MSTORE",
            "PUSH1",
            "CALLDATALOAD",
            "OP_81",
            "MSTORE",
            "SHA3",
            "SLOAD",
            "PUSH2",
            "OP_90",
            "OP_81",
            "JUMP"
          ],
          "start_pc": 851
        },
        {
          "end_pc": 1037,
          "hash": "0x67efb1797e26c9ccb6d697ddb1f38d26a53d286b514f57d2602f4ad3e9bdfd71",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "OP_80",
            "MLOAD",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "OP_80",
            "CALLDATALOAD",
            "OP_82",
            "OP_81",
            "ADD",
            "CALLDATALOAD",
            "PUSH1",
            "OP_81",
            "ADD",
            "OP_85",
            "OP_90",
            "DIV",
            "OP_85",
            "MUL",
            "OP_86",
            "ADD",
            "OP_85",
            "ADD",
            "OP_90",
            "OP_96",
            "MSTORE",
            "OP_85",
            "OP_85",
            "MSTORE",
            "PUSH2",
            "OP_95",
            "OP_83",
            "CALLDATALOAD",
            "OP_95",
            "OP_93",
            "OP_94",
            "PUSH1",
            "OP_94",
            "OP_93",
            "OP_92",
            "OP_90",
            "OP_92",
            "ADD",
            "OP_91",
            "OP_81",
            "OP_90",
            "OP_84",
            "ADD",
            "OP_83",
            "OP_82",
            "OP_80",
            "OP_82",
            "OP_84",
            "CALLDATACOPY",
            "POP",
            "POP",
            "PUSH1",
            "OP_80",
            "MLOAD",
            "PUSH1",
            "PUSH1",
            "CALLDATALOAD",
            "OP_80",
            "OP_8B",
            "ADD",
            "CALLDATALOAD",
            "PUSH1",
            "OP_81",
            "ADD",
            "OP_83",
            "OP_90",
            "DIV",
            "OP_83",
            "MUL",
            "OP_84",
            "ADD",
            "OP_83",
            "ADD",
            "OP_90",
            "OP_94",
            "MSTORE",
            "OP_83",
            "OP_83",
            "MSTORE",
            "OP_97",
            "OP_99",
            "OP_98",
            "CALLDATALOAD",
            "OP_98",
            "OP_97",
            "PUSH1",
            "OP_97",
            "POP",
            "OP_91",
            "OP_95",
            "POP",
            "PUSH1",
            "OP_91",
            "OP_90",
            "OP_91",
            "ADD",
            "OP_93",
            "POP",
            "OP_90",
            "OP_91",
            "POP",
            "OP_81",
            "OP_90",
            "OP_84",
            "ADD",
            "OP_83",
            "OP_82",
            "OP_80",
            "OP_82",
            "OP_84",
            "CALLDATACOPY",
            "POP",
            "OP_94",
            "OP_96",
            "POP",
            "POP",
            "POP",
            "POP",
            "POP",
            "POP",
            "POP",
            "OP_83",
            "PUSH1",
            "EQ",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 887
        },
        {
          "end_pc": 1043,
          "hash": "0x5cc8f085bf045416d506a06eca3f45893d7d9c52f57fe2e639c54db01115e953",
          "opcodes": [
            "PUSH3",
            "OP_93",
            "POP"
          ],
          "start_pc": 1038
        },
        {
          "end_pc": 1159,
          "hash": "0x8174752e74b8def418331b7165089609798a5734a04fdd5f85e0cf0d221c1e3e",
          "opcodes": [
            "JUMPDEST",
            "CALLER",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "AND",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_82",
            "SHA3",
            "OP_86",

exec
/bin/bash -lc "sed -n '1041,1300p' BYTECODE_BUNDLE.json" in /tmp/codex-6oubwxvx
 succeeded in 0ms:
            "OP_90",
            "SSTORE",
            "OP_81",
            "SLOAD",
            "OP_85",
            "MLOAD",
            "OP_83",
            "OP_80",
            "MSTORE",
            "PUSH32",
            "PUSH1",
            "PUSH1",
            "OP_84",
            "AND",
            "ISZERO",
            "PUSH2",
            "MUL",
            "PUSH1",
            "NOT",
            "ADD",
            "OP_90",
            "OP_93",
            "AND",
            "OP_92",
            "OP_90",
            "OP_92",
            "DIV",
            "PUSH1",
            "OP_90",
            "OP_81",
            "ADD",
            "OP_84",
            "OP_90",
            "DIV",
            "OP_83",
            "ADD",
            "OP_93",
            "OP_91",
            "OP_92",
            "OP_91",
            "OP_88",
            "ADD",
            "OP_90",
            "OP_83",
            "OP_90",
            "LT",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1044
        },
        {
          "end_pc": 1171,
          "hash": "0xc2594a85c8424b4aa8682355108db57e7975c538e8280d2edaf2820ac1f56bc4",
          "opcodes": [
            "OP_80",
            "MLOAD",
            "PUSH1",
            "NOT",
            "AND",
            "OP_83",
            "OP_80",
            "ADD",
            "OR",
            "OP_85",
            "SSTORE"
          ],
          "start_pc": 1160
        },
        {
          "end_pc": 1179,
          "hash": "0x47df8deec78e215adda608591446915028e81768f8106c607d0ed62004dfd868",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "PUSH2",
            "OP_92",
            "OP_91",
            "POP"
          ],
          "start_pc": 1172
        },
        {
          "end_pc": 1188,
          "hash": "0x83ae68d2d97dadea7d665d4f4a82e04e308bcef01d09838c4dfdadb9ca755f09",
          "opcodes": [
            "JUMPDEST",
            "OP_80",
            "OP_82",
            "GT",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1180
        },
        {
          "end_pc": 1199,
          "hash": "0x4867b9bb9af12967835219ac5485f157f44d0b4989d3b4dbbb0f55521667907f",
          "opcodes": [
            "PUSH1",
            "OP_81",
            "SSTORE",
            "PUSH1",
            "ADD",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1189
        },
        {
          "end_pc": 1201,
          "hash": "0x27c317ad1a54b6db4f67a7c719d879f80caf5d6801a3c25b5ccfebdfe3c1bcd4",
          "opcodes": [
            "JUMPDEST",
            "STOP"
          ],
          "start_pc": 1200
        },
        {
          "end_pc": 1272,
          "hash": "0x870d8e186946ce7aae17d83b53734c9fcbcc3b4a02d0b2718bc7af9560d31d34",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_80",
            "PUSH1",
            "ADD",
            "OP_82",
            "OP_81",
            "SUB",
            "OP_82",
            "MSTORE",
            "OP_83",
            "OP_81",
            "OP_81",
            "MLOAD",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_91",
            "POP",
            "OP_80",
            "MLOAD",
            "OP_90",
            "PUSH1",
            "ADD",
            "OP_90",
            "OP_80",
            "OP_83",
            "OP_83",
            "OP_82",
            "OP_90",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "OP_84",
            "PUSH1",
            "ADD",
            "DIV",
            "PUSH1",
            "MUL",
            "PUSH1",
            "ADD",
            "CALL",
            "POP",
            "OP_90",
            "POP",
            "OP_90",
            "OP_81",
            "ADD",
            "OP_90",
            "PUSH1",
            "AND",
            "OP_80",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1202
        },
        {
          "end_pc": 1297,
          "hash": "0xe69d9fe9ee12c042e74938a1ac6a4ef3de80d31f481ade0fd37efa6ba65f3049",
          "opcodes": [
            "OP_80",
            "OP_82",
            "SUB",
            "OP_80",
            "MLOAD",
            "PUSH1",
            "OP_83",
            "PUSH1",
            "SUB",
            "PUSH2",
            "EXP",
            "SUB",
            "NOT",
            "AND",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_91",
            "POP"
          ],
          "start_pc": 1273
        },
        {
          "end_pc": 1311,
          "hash": "0x184c3035d2b104dba14e64b04c82f37e9443c82faadf877a8909961217ab1364",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "OP_92",
            "POP",
            "POP",
            "POP",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_91",
            "SUB",
            "OP_90",
            "RETURN"
          ],
          "start_pc": 1298
        },
        {
          "end_pc": 1329,
          "hash": "0x1d1008b7a5732c71d2606411876fd0afba8f65ba284a8d2afca4c1fc8e4accd0",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "OP_80",
            "MLOAD",
            "OP_91",
            "OP_82",
            "MSTORE",
            "MLOAD",
            "OP_90",
            "OP_81",
            "OP_90",
            "SUB",
            "PUSH1",
            "ADD",
            "OP_90",
            "RETURN"
          ],
          "start_pc": 1312
        },
        {
          "end_pc": 1352,
          "hash": "0x09420f56ef15035d2227cb28a919609caa878665b8cdd261d6ebd5ae832a6e66",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",

exec
/bin/bash -lc "sed -n '1301,1560p' BYTECODE_BUNDLE.json" in /tmp/codex-6oubwxvx
 succeeded in 0ms:
            "OP_80",
            "MLOAD",
            "PUSH1",
            "OP_92",
            "OP_90",
            "OP_92",
            "AND",
            "OP_82",
            "MSTORE",
            "MLOAD",
            "OP_90",
            "OP_81",
            "OP_90",
            "SUB",
            "PUSH1",
            "ADD",
            "OP_90",
            "RETURN"
          ],
          "start_pc": 1330
        },
        {
          "end_pc": 1367,
          "hash": "0xbb0b2612a5e5b39bb5477fce03a1b55257c3476df41e2412656c9096804d45bc",
          "opcodes": [
            "JUMPDEST",
            "OP_82",
            "OP_80",
            "ADD",
            "PUSH1",
            "ADD",
            "OP_85",
            "SSTORE",
            "OP_82",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1353
        },
        {
          "end_pc": 1370,
          "hash": "0x13b17a5c8fdfa48b410caff42f1fdaefad767abef48eddd4bf9923d0774236a8",
          "opcodes": [
            "OP_91",
            "OP_82",
            "ADD"
          ],
          "start_pc": 1368
        },
        {
          "end_pc": 1379,
          "hash": "0xbfdff3d5c5912b6479818eb1b264172d85ccbfa9470e741fbd14ba927598501c",
          "opcodes": [
            "JUMPDEST",
            "OP_82",
            "OP_81",
            "GT",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1371
        },
        {
          "end_pc": 1400,
          "hash": "0xbb9e291c7aca8baa054d812b37f9d9b4ab8ba40d07da3decb32d7c72855150e6",
          "opcodes": [
            "OP_82",
            "MLOAD",
            "OP_82",
            "PUSH1",
            "POP",
            "SSTORE",
            "OP_91",
            "PUSH1",
            "ADD",
            "OP_91",
            "OP_90",
            "PUSH1",
            "ADD",
            "OP_90",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1380
        },
        {
          "end_pc": 1465,
          "hash": "0x388e53b0506aa00eb8615308b9261f1c367cb5659ae2ca261cfb1e2ccd115fc6",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "POP",
            "OP_80",
            "PUSH1",
            "PUSH1",
            "POP",
            "OP_90",
            "OP_80",
            "MLOAD",
            "OP_90",
            "PUSH1",
            "ADD",
            "OP_90",
            "OP_82",
            "OP_80",
            "SLOAD",
            "PUSH1",
            "OP_81",
            "PUSH1",
            "AND",
            "ISZERO",
            "PUSH2",
            "MUL",
            "SUB",
            "AND",
            "PUSH1",
            "OP_90",
            "DIV",
            "OP_90",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "PUSH1",
            "SHA3",
            "OP_90",
            "PUSH1",
            "ADD",
            "PUSH1",
            "OP_90",
            "DIV",
            "OP_81",
            "ADD",
            "OP_92",
            "OP_82",
            "PUSH1",
            "LT",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1401
        },
        {
          "end_pc": 1477,
          "hash": "0x75f8f4a754bab781dce2195c9f4580a2332a5951a456e7535dc55bd2a6cc5f2b",
          "opcodes": [
            "OP_80",
            "MLOAD",
            "PUSH1",
            "NOT",
            "AND",
            "OP_83",
            "OP_80",
            "ADD",
            "OR",
            "OP_85",
            "SSTORE"
          ],
          "start_pc": 1466
        },
        {
          "end_pc": 1489,
          "hash": "0x976d149b0f65788f03ba599039443002c5ae96c1610dbf4e72c25b2a7dbedeae",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "PUSH2",
            "OP_92",
            "OP_91",
            "POP",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1478
        },
        {
          "end_pc": 1493,
          "hash": "0xfcf560b5d3c59a69c761c56d74a8444a98a89d43009b278d14839bfa6a36c781",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "OP_90",
            "JUMP"
          ],
          "start_pc": 1490
        },
        {
          "end_pc": 1508,
          "hash": "0x9f778431795dd53b148a2a7138b15c04bdc02a8ddd041cc9c145952157726f6e",
          "opcodes": [
            "JUMPDEST",
            "OP_82",
            "OP_80",
            "ADD",
            "PUSH1",
            "ADD",
            "OP_85",
            "SSTORE",
            "OP_82",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1494
        },
        {
          "end_pc": 1511,
          "hash": "0x5eb78e9fca7bfc8b39c303bf362216752f998ffc240a6164abe60cebee10a754",
          "opcodes": [
            "OP_91",
            "OP_82",
            "ADD"
          ],
          "start_pc": 1509
        },
        {
          "end_pc": 1520,
          "hash": "0x45f57e2ad7f6ae4d5dbc786de040e95de2dfc0de2850e170569d8fe91fe5112c",
          "opcodes": [
            "JUMPDEST",
            "OP_82",
            "OP_81",
            "GT",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1512
        },
        {
          "end_pc": 1541,
          "hash": "0x93e73e8ca84e6a1111492c972da49a54be645fa13e8ffe10fca845a08c9b8f28",
          "opcodes": [
            "OP_82",
            "MLOAD",
            "OP_82",
            "PUSH1",
            "POP",
            "SSTORE",
            "OP_91",
            "PUSH1",
            "ADD",
            "OP_91",
            "OP_90",
            "PUSH1",
            "ADD",
            "OP_90",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1521
        },
        {
          "end_pc": 1561,
          "hash": "0x1bd25c4766b3439c88b8da3a221f3dcaa3306b80f7465d420d65a3eca3843b32",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "POP",

exec
/bin/bash -lc "sed -n '1561,1820p' BYTECODE_BUNDLE.json" in /tmp/codex-6oubwxvx
 succeeded in 0ms:
            "PUSH1",
            "OP_80",
            "SLOAD",
            "PUSH1",
            "NOT",
            "AND",
            "OP_83",
            "OR",
            "OP_90",
            "SSTORE",
            "POP",
            "POP",
            "POP",
            "POP",
            "JUMP"
          ],
          "start_pc": 1542
        },
        {
          "end_pc": 1596,
          "hash": "0x18d03af663e95b906a79dc769474652c4cdb498702d89ce629226bf8a0e8809e",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "OP_83",
            "AND",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "OP_90",
            "SHA3",
            "SLOAD",
            "OP_80",
            "OP_83",
            "ADD",
            "LT",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1562
        },
        {
          "end_pc": 1600,
          "hash": "0xa2662acadea39c1b83bffbb8d25c4996a4f2fec7e61308e2c92defb72eb54e49",
          "opcodes": [
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1597
        },
        {
          "end_pc": 1672,
          "hash": "0xd4660133f6e645b0cd03c21369c648f51ac93f17999890ff7254175090ebbf4d",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "OP_84",
            "OP_81",
            "AND",
            "PUSH1",
            "OP_81",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_80",
            "OP_83",
            "SHA3",
            "CALLER",
            "OP_90",
            "OP_95",
            "AND",
            "OP_80",
            "OP_84",
            "MSTORE",
            "OP_94",
            "OP_82",
            "MSTORE",
            "OP_80",
            "OP_83",
            "SHA3",
            "SLOAD",
            "OP_93",
            "OP_83",
            "MSTORE",
            "PUSH1",
            "OP_82",
            "MSTORE",
            "OP_80",
            "OP_83",
            "SHA3",
            "OP_94",
            "OP_83",
            "MSTORE",
            "OP_93",
            "OP_90",
            "MSTORE",
            "OP_91",
            "OP_90",
            "OP_91",
            "SHA3",
            "SLOAD",
            "OP_83",
            "ADD",
            "GT",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1601
        },
        {
          "end_pc": 1676,
          "hash": "0x870472c7bff8639efb07babd426ec1a231cdbd624bb8723583a57b0a029866dc",
          "opcodes": [
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1673
        },
        {
          "end_pc": 1815,
          "hash": "0xa85a8d0954048a0699f2ce1d4c1489da609fb5f3c7e7bf05d347acc31d26a76b",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "OP_84",
            "OP_81",
            "AND",
            "PUSH1",
            "OP_81",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_80",
            "OP_83",
            "SHA3",
            "OP_80",
            "SLOAD",
            "OP_88",
            "OP_90",
            "SUB",
            "OP_90",
            "SSTORE",
            "OP_87",
            "OP_85",
            "AND",
            "OP_80",
            "OP_84",
            "MSTORE",
            "OP_81",
            "OP_84",
            "SHA3",
            "OP_80",
            "SLOAD",
            "OP_89",
            "ADD",
            "OP_90",
            "SSTORE",
            "OP_93",
            "OP_83",
            "MSTORE",
            "PUSH1",
            "OP_82",
            "MSTORE",
            "OP_80",
            "OP_83",
            "SHA3",
            "CALLER",
            "OP_90",
            "OP_95",
            "AND",
            "OP_80",
            "OP_84",
            "MSTORE",
            "OP_94",
            "OP_82",
            "MSTORE",
            "OP_91",
            "OP_82",
            "OP_90",
            "SHA3",
            "OP_80",
            "SLOAD",
            "OP_87",
            "ADD",
            "OP_90",
            "SSTORE",
            "OP_81",
            "MLOAD",
            "OP_86",
            "OP_81",
            "MSTORE",
            "OP_91",
            "MLOAD",
            "OP_92",
            "OP_93",
            "OP_92",
            "PUSH32",
            "OP_92",
            "OP_81",
            "OP_90",
            "SUB",
            "OP_90",
            "OP_91",
            "ADD",
            "OP_90",
            "OP_A3",
            "OP_93",
            "OP_92",
            "POP",
            "POP",
            "POP",
            "JUMP"
          ],
          "start_pc": 1677
        },
        {
          "end_pc": 1850,
          "hash": "0xc7d3ed3f99a15e3133bf58d125cd82dccbd6556ec31048c30d036537d6392907",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "OP_82",
            "AND",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",

exec
/bin/bash -lc "sed -n '1821,2080p' BYTECODE_BUNDLE.json" in /tmp/codex-6oubwxvx
 succeeded in 0ms:
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "OP_90",
            "SHA3",
            "SLOAD",
            "OP_80",
            "OP_82",
            "ADD",
            "LT",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1816
        },
        {
          "end_pc": 1854,
          "hash": "0x957e2b614a25914b20777a7e4743ceb61b3f2239bfef81b392c1950188f79742",
          "opcodes": [
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 1851
        },
        {
          "end_pc": 1961,
          "hash": "0xa9d8fbba03866b6d5a09e917f24ad76a1abad106d4ad673bc107911a84b4df65",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "EXP",
            "SUB",
            "CALLER",
            "OP_81",
            "AND",
            "PUSH1",
            "OP_81",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "PUSH1",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "OP_80",
            "OP_83",
            "SHA3",
            "OP_80",
            "SLOAD",
            "OP_87",
            "OP_90",
            "SUB",
            "OP_90",
            "SSTORE",
            "OP_93",
            "OP_86",
            "AND",
            "OP_80",
            "OP_83",
            "MSTORE",
            "OP_91",
            "OP_84",
            "OP_90",
            "SHA3",
            "OP_80",
            "SLOAD",
            "OP_86",
            "ADD",
            "OP_90",
            "SSTORE",
            "OP_83",
            "MLOAD",
            "OP_85",
            "OP_81",
            "MSTORE",
            "OP_93",
            "MLOAD",
            "OP_91",
            "OP_93",
            "PUSH32",
            "OP_92",
            "OP_90",
            "OP_81",
            "OP_90",
            "SUB",
            "OP_90",
            "OP_91",
            "ADD",
            "OP_90",
            "OP_A3",
            "POP",
            "POP",
            "JUMP"
          ],
          "start_pc": 1855
        },
        {
          "end_pc": 1975,
          "hash": "0x069a527f18c11b5c184ad8af8e2a44a7271d00299085f2c75fa58bc7b14c6e8a",
          "opcodes": [
            "JUMPDEST",
            "OP_82",
            "ADD",
            "OP_91",
            "OP_90",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "PUSH1",
            "SHA3",
            "OP_90"
          ],
          "start_pc": 1962
        },
        {
          "end_pc": 1995,
          "hash": "0x7f74445fa727d64c60bc43dfcd9cfbc323fc343a915df69776c3c584e11d2b21",
          "opcodes": [
            "JUMPDEST",
            "OP_81",
            "SLOAD",
            "OP_81",
            "MSTORE",
            "OP_90",
            "PUSH1",
            "ADD",
            "OP_90",
            "PUSH1",
            "ADD",
            "OP_80",
            "OP_83",
            "GT",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1976
        },
        {
          "end_pc": 2004,
          "hash": "0x0f98a4d4fe86de2980c9621395cce18f4e0131f415ad575d16e2aa9a8abb4431",
          "opcodes": [
            "OP_82",
            "OP_90",
            "SUB",
            "PUSH1",
            "AND",
            "OP_82",
            "ADD",
            "OP_91"
          ],
          "start_pc": 1996
        },
        {
          "end_pc": 2012,
          "hash": "0x900b7c6e9ccca62a2f0a9ebd4a4d82d50ef20e22eee5bf2417eff09b642ae5d1",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "POP",
            "POP",
            "POP",
            "POP",
            "OP_81",
            "JUMP"
          ],
          "start_pc": 2005
        }
      ],
      "callsites": [
        {
          "opcode": "CALL",
          "pc": 730,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 798,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 1256,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        }
      ],
      "cfg_edges": [
        {
          "from": "bb:0",
          "to": "bb:130",
          "type": "control_flow"
        },
        {
          "from": "bb:0",
          "to": "bb:11",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:11",
          "to": "bb:138",
          "type": "control_flow"
        },
        {
          "from": "bb:11",
          "to": "bb:31",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:31",
          "to": "bb:232",
          "type": "control_flow"
        },
        {
          "from": "bb:31",
          "to": "bb:42",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:42",
          "to": "bb:282",
          "type": "control_flow"
        },
        {
          "from": "bb:42",
          "to": "bb:53",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:53",
          "to": "bb:294",
          "type": "control_flow"
        },
        {
          "from": "bb:53",
          "to": "bb:64",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:64",
          "to": "bb:318",
          "type": "control_flow"
        },
        {
          "from": "bb:64",
          "to": "bb:75",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:75",
          "to": "bb:411",

exec
/bin/bash -lc "rg -n 'selectors|detector|storage|proxy|delegate|eip|1967|minimal|beacon|findings|evidence|summary|function|slot' BYTECODE_BUNDLE.json" in /tmp/codex-6oubwxvx
 succeeded in 0ms:
2416:      "function_entries": [
2458:      "functions": [
2467:            "delegatecall": 0,
2471:          "storage": {
2473:            "slots": [
2477:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2482:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2487:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2492:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
2497:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2502:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2507:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2521:            "delegatecall": 0,
2525:          "storage": {
2527:            "slots": [
2531:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2536:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2541:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2546:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
2551:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2556:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2561:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2575:            "delegatecall": 0,
2579:          "storage": {
2581:            "slots": [
2585:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2590:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2595:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2600:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
2605:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2610:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2615:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2629:            "delegatecall": 0,
2633:          "storage": {
2635:            "slots": [
2639:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2644:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2649:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2654:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
2659:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2664:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2669:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2683:            "delegatecall": 0,
2687:          "storage": {
2689:            "slots": [
2693:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2698:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2703:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2708:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
2713:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2718:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2723:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2737:            "delegatecall": 0,
2741:          "storage": {
2743:            "slots": [
2747:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2752:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2757:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2762:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
2767:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2772:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2777:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2791:            "delegatecall": 0,
2795:          "storage": {
2797:            "slots": [
2801:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2806:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2811:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2816:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
2821:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2826:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2831:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2845:            "delegatecall": 0,
2849:          "storage": {
2851:            "slots": [
2855:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2860:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2865:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2870:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
2875:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2880:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2885:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2899:            "delegatecall": 0,
2903:          "storage": {
2905:            "slots": [
2909:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2914:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2919:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2924:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
2929:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2934:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2939:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2953:            "delegatecall": 0,
2957:          "storage": {
2959:            "slots": [
2963:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2968:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2973:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
2978:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
2983:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
2988:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
2993:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
3000:      "selectors": [
3016:        "delegatecall": 0,
3019:        "upgrade_slot_write_suspected": false
3021:      "storage": {
3024:        "slots": [
3028:            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
3033:            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
3038:            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
3043:            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
3048:            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
3053:            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
3058:            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
3092:    "is_proxy": false,
4085:          "type": "function"
4091:          "type": "function"
4097:          "type": "function"
4103:          "type": "function"
4109:          "type": "function"
4115:          "type": "function"
4121:          "type": "function"
4127:          "type": "function"
4133:          "type": "function"
4139:          "type": "function"
4148:  "detector_findings": [
4151:      "evidence_json": {
4204:      "evidence_json": {
4256:  "heuristics_summary": {
4258:    "delegatecall_count": 0,

exec
/bin/bash -lc "sed -n '2400,3065p' BYTECODE_BUNDLE.json" in /tmp/codex-6oubwxvx
 succeeded in 0ms:
          "to": "bb:1976",
          "type": "control_flow"
        },
        {
          "from": "bb:1976",
          "to": "bb:1996",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1996",
          "to": "bb:2005",
          "type": "control_flow_fallthrough"
        }
      ],
      "cfg_hash": "0xeff6114514882b30af3310e8e3e8858171c54b501ad262b929edf57618a8644b",
      "dispatcher_type": "selector_jump_table",
      "function_entries": [
        {
          "entry_pc": null,
          "selector": "0x06fdde03"
        },
        {
          "entry_pc": 826074471,
          "selector": "0x23b872dd"
        },
        {
          "entry_pc": 1889567281,
          "selector": "0x313ce567"
        },
        {
          "entry_pc": 2514000705,
          "selector": "0x70a08231"
        },
        {
          "entry_pc": 2835717307,
          "selector": "0x95d89b41"
        },
        {
          "entry_pc": 3404319313,
          "selector": "0xa9059cbb"
        },
        {
          "entry_pc": 3694166258,
          "selector": "0xcae9ca51"
        },
        {
          "entry_pc": 3714247998,
          "selector": "0xdc3080f2"
        },
        {
          "entry_pc": 3869595289,
          "selector": "0xdd62ed3e"
        },
        {
          "entry_pc": 1200,
          "selector": "0xe6a55699"
        }
      ],
      "functions": [
        {
          "auth": {
            "guards": []
          },
          "entry_pc": null,
          "selector": "0x06fdde03",
          "sinks": {
            "call": 3,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 23,
            "slots": [
              {
                "op": "SLOAD",
                "pc": 146,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 218,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SLOAD",
                "pc": 288,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              },
              {
                "op": "SLOAD",
                "pc": 326,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
              },
              {
                "op": "SLOAD",
                "pc": 397,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SSTORE",
                "pc": 605,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1548,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              }
            ],
            "writes": 15
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 826074471,
          "selector": "0x23b872dd",
          "sinks": {
            "call": 3,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 23,
            "slots": [
              {
                "op": "SLOAD",
                "pc": 146,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 218,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SLOAD",
                "pc": 288,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              },
              {
                "op": "SLOAD",
                "pc": 326,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
              },
              {
                "op": "SLOAD",
                "pc": 397,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SSTORE",
                "pc": 605,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1548,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              }
            ],
            "writes": 15
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 1889567281,
          "selector": "0x313ce567",
          "sinks": {
            "call": 3,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 23,
            "slots": [
              {
                "op": "SLOAD",
                "pc": 146,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 218,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SLOAD",
                "pc": 288,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              },
              {
                "op": "SLOAD",
                "pc": 326,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
              },
              {
                "op": "SLOAD",
                "pc": 397,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SSTORE",
                "pc": 605,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1548,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              }
            ],
            "writes": 15
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 2514000705,
          "selector": "0x70a08231",
          "sinks": {
            "call": 3,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 23,
            "slots": [
              {
                "op": "SLOAD",
                "pc": 146,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 218,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SLOAD",
                "pc": 288,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              },
              {
                "op": "SLOAD",
                "pc": 326,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
              },
              {
                "op": "SLOAD",
                "pc": 397,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SSTORE",
                "pc": 605,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1548,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              }
            ],
            "writes": 15
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 2835717307,
          "selector": "0x95d89b41",
          "sinks": {
            "call": 3,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 23,
            "slots": [
              {
                "op": "SLOAD",
                "pc": 146,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 218,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SLOAD",
                "pc": 288,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              },
              {
                "op": "SLOAD",
                "pc": 326,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
              },
              {
                "op": "SLOAD",
                "pc": 397,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SSTORE",
                "pc": 605,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1548,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              }
            ],
            "writes": 15
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 3404319313,
          "selector": "0xa9059cbb",
          "sinks": {
            "call": 3,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 23,
            "slots": [
              {
                "op": "SLOAD",
                "pc": 146,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 218,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SLOAD",
                "pc": 288,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              },
              {
                "op": "SLOAD",
                "pc": 326,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
              },
              {
                "op": "SLOAD",
                "pc": 397,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SSTORE",
                "pc": 605,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1548,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              }
            ],
            "writes": 15
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 3694166258,
          "selector": "0xcae9ca51",
          "sinks": {
            "call": 3,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 23,
            "slots": [
              {
                "op": "SLOAD",
                "pc": 146,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 218,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SLOAD",
                "pc": 288,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              },
              {
                "op": "SLOAD",
                "pc": 326,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
              },
              {
                "op": "SLOAD",
                "pc": 397,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SSTORE",
                "pc": 605,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1548,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              }
            ],
            "writes": 15
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 3714247998,
          "selector": "0xdc3080f2",
          "sinks": {
            "call": 3,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 23,
            "slots": [
              {
                "op": "SLOAD",
                "pc": 146,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 218,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SLOAD",
                "pc": 288,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              },
              {
                "op": "SLOAD",
                "pc": 326,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
              },
              {
                "op": "SLOAD",
                "pc": 397,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SSTORE",
                "pc": 605,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1548,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              }
            ],
            "writes": 15
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 3869595289,
          "selector": "0xdd62ed3e",
          "sinks": {
            "call": 3,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 23,
            "slots": [
              {
                "op": "SLOAD",
                "pc": 146,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 218,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SLOAD",
                "pc": 288,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              },
              {
                "op": "SLOAD",
                "pc": 326,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
              },
              {
                "op": "SLOAD",
                "pc": 397,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SSTORE",
                "pc": 605,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1548,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              }
            ],
            "writes": 15
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 1200,
          "selector": "0xe6a55699",
          "sinks": {
            "call": 3,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 23,
            "slots": [
              {
                "op": "SLOAD",
                "pc": 146,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 218,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SLOAD",
                "pc": 288,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              },
              {
                "op": "SLOAD",
                "pc": 326,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
              },
              {
                "op": "SLOAD",
                "pc": 397,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
              },
              {
                "op": "SSTORE",
                "pc": 605,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1548,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
              }
            ],
            "writes": 15
          }
        }
      ],
      "selectors": [
        "0x06fdde03",
        "0x23b872dd",
        "0x313ce567",
        "0x70a08231",
        "0x95d89b41",
        "0xa9059cbb",
        "0xcae9ca51",
        "0xdc3080f2",
        "0xdd62ed3e",
        "0xe6a55699"
      ],
      "sinks": {
        "call": 3,
        "create": 0,
        "create2": 0,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0,
        "upgrade_slot_write_suspected": false
      },
      "storage": {
        "keccak_count": 24,
        "reads": 23,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 146,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 218,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 288,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 326,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 397,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SSTORE",
            "pc": 605,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          }
        ],
        "writes": 15
      },
      "version": "analysis_artifact_v1"
    },
    "block_number": null,

exec
/bin/bash -lc "sed -n '3066,4305p' BYTECODE_BUNDLE.json" in /tmp/codex-6oubwxvx
 succeeded in 0ms:
    "chain_id": 1,
    "codehash": "0xb82f4cf330c308fc4ae018c6e614624522012565a0acc3a1a22dc4c44d007cef",
    "created_at": "2026-04-04T19:55:26.000000Z",
    "id": 2256,
    "updated_at": "2026-04-04T19:55:26.000000Z",
    "version": "analysis_artifact_v1"
  },
  "analysis_run": {
    "address": "0xd7e021cd9096cc0ca642828c1045eb10c6b1ff2e",
    "block_number": null,
    "chain_id": 1,
    "child_links": [],
    "created_at": "2025-12-19T20:03:55.000000Z",
    "id": "019b3836-360e-730b-adcd-d15852dc100d",
    "parent_links": [],
    "status": "running",
    "updated_at": "2026-04-04T19:55:26.000000Z"
  },
  "artifact": {
    "codehash": "0xb82f4cf330c308fc4ae018c6e614624522012565a0acc3a1a22dc4c44d007cef",
    "compiler_json": {
      "etherscan": {
        "skipped": true
      }
    },
    "implementation_address": null,
    "is_proxy": false,
    "runtime_bytecode": {
      "full": "0x606060405236156100825760e060020a600035046306fdde03811461008a57806323b872dd146100e8578063313ce5671461011a57806370a082311461012657806395d89b411461013e578063a9059cbb1461019b578063cae9ca51146101ca578063dc3080f21461032e578063dd62ed3e14610353578063e6a5569914610377575b6104b0610002565b6040805160008054602060026001831615610100026000190190921691909104601f81018290048202840182019094528383526104b293908301828280156107d55780601f106107aa576101008083540402835291602001916107d5565b610520600435602435604435600160a060020a0383166000908152600360205260408120548290101561061a57610002565b61053260025460ff1681565b61052060043560036020526000908152604090205481565b60408051600180546020600282841615610100026000190190921691909104601f81018290048202840182019094528383526104b293908301828280156107d55780601f106107aa576101008083540402835291602001916107d5565b6104b0600435602435600160a060020a0333166000908152600360205260409020548190101561071857610002565b604080516020604435600481810135601f810184900484028501840190955284845261052094813594602480359593946064949293910191819084018382808284375094965050505050505060006000836004600050600033600160a060020a03168152602001908152602001600020600050600087600160a060020a031681526020019081526020016000206000508190555084905080600160a060020a0316638f4ffcb1338630876040518560e060020a0281526004018085600160a060020a0316815260200184815260200183600160a060020a03168152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303816000876161da5a03f11561000257505050509392505050565b6005602090815260043560009081526040808220909252602435815220546105209081565b60046020818152903560009081526040808220909252602435815220546105209081565b60408051602060046024803582810135601f81018590048502860185019096528585526104b0958335959394604494939290920191819084018382808284375050604080516020606435808b0135601f81018390048302840183019094528383529799983598976084975091955060249190910193509091508190840183828082843750949650505050505050836000141561041457620f424093505b33600160a060020a031660009081526003602090815260408220869055815485518380527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56360026001841615610100026000190190931692909204601f90810184900483019391929188019083901061054957805160ff19168380011785555b506105799291505b808211156105d2576000815560010161049c565b005b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156105125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051918252519081900360200190f35b6040805160ff929092168252519081900360200190f35b82800160010185558215610494579182015b8281111561049457825182600050559160200191906001019061055b565b50508060016000509080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106105d657805160ff19168380011785555b5061060692915061049c565b5090565b828001600101855582156105c6579182015b828111156105c65782518260005055916020019190600101906105e8565b50506002805460ff19168317905550505050565b600160a060020a038316600090815260036020526040902054808301101561064157610002565b600160a060020a03848116600081815260046020908152604080832033909516808452948252808320549383526005825280832094835293905291909120548301111561068d57610002565b600160a060020a03848116600081815260036020908152604080832080548890039055878516808452818420805489019055938352600582528083203390951680845294825291829020805487019055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a39392505050565b600160a060020a038216600090815260036020526040902054808201101561073f57610002565b600160a060020a03338116600081815260036020908152604080832080548790039055938616808352918490208054860190558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b50505050508156",
      "head": null,
      "length": 4028,
      "tail": null,
      "truncated": false
    },
    "verified_source": false
  },
  "capability_graph": {
    "address": "0xd7e021cd9096cc0ca642828c1045eb10c6b1ff2e",
    "block_number": null,
    "chain_id": 1,
    "codehash": "0xb82f4cf330c308fc4ae018c6e614624522012565a0acc3a1a22dc4c44d007cef",
    "created_at": "2026-04-04T19:55:27.000000Z",
    "graph_hash": "0xe2ab8bdee7d7f30898694e4ec7e474b078b769d20cbe14a56797512666f8ba58",
    "graph_json": {
      "edges": [
        {
          "from": "bb:0",
          "to": "bb:130",
          "type": "control_flow"
        },
        {
          "from": "bb:0",
          "to": "bb:11",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:11",
          "to": "bb:138",
          "type": "control_flow"
        },
        {
          "from": "bb:11",
          "to": "bb:31",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:31",
          "to": "bb:232",
          "type": "control_flow"
        },
        {
          "from": "bb:31",
          "to": "bb:42",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:42",
          "to": "bb:282",
          "type": "control_flow"
        },
        {
          "from": "bb:42",
          "to": "bb:53",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:53",
          "to": "bb:294",
          "type": "control_flow"
        },
        {
          "from": "bb:53",
          "to": "bb:64",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:64",
          "to": "bb:318",
          "type": "control_flow"
        },
        {
          "from": "bb:64",
          "to": "bb:75",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:75",
          "to": "bb:411",
          "type": "control_flow"
        },
        {
          "from": "bb:75",
          "to": "bb:86",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:86",
          "to": "bb:458",
          "type": "control_flow"
        },
        {
          "from": "bb:86",
          "to": "bb:97",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:97",
          "to": "bb:814",
          "type": "control_flow"
        },
        {
          "from": "bb:97",
          "to": "bb:108",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:108",
          "to": "bb:851",
          "type": "control_flow"
        },
        {
          "from": "bb:108",
          "to": "bb:119",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:119",
          "to": "bb:887",
          "type": "control_flow"
        },
        {
          "from": "bb:119",
          "to": "bb:130",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:138",
          "to": "bb:2005",
          "type": "control_flow"
        },
        {
          "from": "bb:138",
          "to": "bb:205",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:205",
          "to": "bb:1962",
          "type": "control_flow"
        },
        {
          "from": "bb:205",
          "to": "bb:213",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:213",
          "to": "bb:2005",
          "type": "control_flow"
        },
        {
          "from": "bb:232",
          "to": "bb:1562",
          "type": "control_flow"
        },
        {
          "from": "bb:232",
          "to": "bb:278",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:318",
          "to": "bb:2005",
          "type": "control_flow"
        },
        {
          "from": "bb:318",
          "to": "bb:384",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:384",
          "to": "bb:1962",
          "type": "control_flow"
        },
        {
          "from": "bb:384",
          "to": "bb:392",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:392",
          "to": "bb:2005",
          "type": "control_flow"
        },
        {
          "from": "bb:411",
          "to": "bb:1816",
          "type": "control_flow"
        },
        {
          "from": "bb:411",
          "to": "bb:454",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:458",
          "to": "bb:772",
          "type": "control_flow"
        },
        {
          "from": "bb:458",
          "to": "bb:747",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:747",
          "to": "bb:772",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:772",
          "to": "bb:804",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:887",
          "to": "bb:1044",
          "type": "control_flow"
        },
        {
          "from": "bb:887",
          "to": "bb:1038",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1038",
          "to": "bb:1044",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1044",
          "to": "bb:1353",
          "type": "control_flow"
        },
        {
          "from": "bb:1044",
          "to": "bb:1160",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1160",
          "to": "bb:1172",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1172",
          "to": "bb:1180",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1180",
          "to": "bb:1490",
          "type": "control_flow"
        },
        {
          "from": "bb:1180",
          "to": "bb:1189",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1189",
          "to": "bb:1180",
          "type": "control_flow"
        },
        {
          "from": "bb:1202",
          "to": "bb:1298",
          "type": "control_flow"
        },
        {
          "from": "bb:1202",
          "to": "bb:1273",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1273",
          "to": "bb:1298",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1353",
          "to": "bb:1172",
          "type": "control_flow"
        },
        {
          "from": "bb:1353",
          "to": "bb:1368",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1368",
          "to": "bb:1371",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1371",
          "to": "bb:1172",
          "type": "control_flow"
        },
        {
          "from": "bb:1371",
          "to": "bb:1380",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1380",
          "to": "bb:1371",
          "type": "control_flow"
        },
        {
          "from": "bb:1401",
          "to": "bb:1494",
          "type": "control_flow"
        },
        {
          "from": "bb:1401",
          "to": "bb:1466",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1466",
          "to": "bb:1478",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1478",
          "to": "bb:1180",
          "type": "control_flow"
        },
        {
          "from": "bb:1494",
          "to": "bb:1478",
          "type": "control_flow"
        },
        {
          "from": "bb:1494",
          "to": "bb:1509",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1509",
          "to": "bb:1512",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1512",
          "to": "bb:1478",
          "type": "control_flow"
        },
        {
          "from": "bb:1512",
          "to": "bb:1521",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1521",
          "to": "bb:1512",
          "type": "control_flow"
        },
        {
          "from": "bb:1562",
          "to": "bb:1601",
          "type": "control_flow"
        },
        {
          "from": "bb:1562",
          "to": "bb:1597",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1601",
          "to": "bb:1677",
          "type": "control_flow"
        },
        {
          "from": "bb:1601",
          "to": "bb:1673",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1816",
          "to": "bb:1855",
          "type": "control_flow"
        },
        {
          "from": "bb:1816",
          "to": "bb:1851",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1962",
          "to": "bb:1976",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1976",
          "to": "bb:1976",
          "type": "control_flow"
        },
        {
          "from": "bb:1976",
          "to": "bb:1996",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:1996",
          "to": "bb:2005",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "fn:0x23b872dd",
          "to": "bb:826074471",
          "type": "entry"
        },
        {
          "from": "fn:0x313ce567",
          "to": "bb:1889567281",
          "type": "entry"
        },
        {
          "from": "fn:0x70a08231",
          "to": "bb:2514000705",
          "type": "entry"
        },
        {
          "from": "fn:0x95d89b41",
          "to": "bb:2835717307",
          "type": "entry"
        },
        {
          "from": "fn:0xa9059cbb",
          "to": "bb:3404319313",
          "type": "entry"
        },
        {
          "from": "fn:0xcae9ca51",
          "to": "bb:3694166258",
          "type": "entry"
        },
        {
          "from": "fn:0xdc3080f2",
          "to": "bb:3714247998",
          "type": "entry"
        },
        {
          "from": "fn:0xdd62ed3e",
          "to": "bb:3869595289",
          "type": "entry"
        },
        {
          "from": "fn:0xe6a55699",
          "to": "bb:1200",
          "type": "entry"
        },
        {
          "from": "bb:458",
          "to": "call:730",
          "type": "contains"
        },
        {
          "from": "call:730",
          "to": "sink:call",
          "type": "capability"
        },
        {
          "from": "bb:772",
          "to": "call:798",
          "type": "contains"
        },
        {
          "from": "call:798",
          "to": "sink:call",
          "type": "capability"
        },
        {
          "from": "bb:1202",
          "to": "call:1256",
          "type": "contains"
        },
        {
          "from": "call:1256",
          "to": "sink:call",
          "type": "capability"
        }
      ],
      "nodes": [
        {
          "end_pc": 10,
          "hash": "0xea84cd9b520f9ac15ee69facebf0514d237ae3f350495e573c06816e7e3d08cf",
          "id": "bb:0",
          "start_pc": 0,
          "type": "basic_block"
        },
        {
          "end_pc": 30,
          "hash": "0x8351f5fd39e1769e53f7b93891e5bf598f6939b3ca7289b6c03bc34019c93201",
          "id": "bb:11",
          "start_pc": 11,
          "type": "basic_block"
        },
        {
          "end_pc": 41,
          "hash": "0xea91c1b81d5ade23782261ac75a2ddbefec41c29e5137fe0f73d110d1360453a",
          "id": "bb:31",
          "start_pc": 31,
          "type": "basic_block"
        },
        {
          "end_pc": 52,
          "hash": "0x228d4f4a0da6e8bd757cd28745f2b4958c98f67409067116a44ee02e8fb97f2e",
          "id": "bb:42",
          "start_pc": 42,
          "type": "basic_block"
        },
        {
          "end_pc": 63,
          "hash": "0x8096f3cfd9edec3e7cc023f44a1b3efc324394bf105a360e74ee74cec9645bee",
          "id": "bb:53",
          "start_pc": 53,
          "type": "basic_block"
        },
        {
          "end_pc": 74,
          "hash": "0xbd0a2e97a2bec8ff409bd49d326d4bf123281b9f3389fc84be8d43e868501fda",
          "id": "bb:64",
          "start_pc": 64,
          "type": "basic_block"
        },
        {
          "end_pc": 85,
          "hash": "0x323160771fb6e7c7da57f8357b78993b37652095a88c7d92e450971fdd87a521",
          "id": "bb:75",
          "start_pc": 75,
          "type": "basic_block"
        },
        {
          "end_pc": 96,
          "hash": "0x28d78f8c295f5d6fa4668c2c25bc255a1de639c44330425dc83b2d4af5d0d1b3",
          "id": "bb:86",
          "start_pc": 86,
          "type": "basic_block"
        },
        {
          "end_pc": 107,
          "hash": "0x14fa9bb36dc33abaefb59b781741c01df2241d4bc3938f8a5464713a8a15b36b",
          "id": "bb:97",
          "start_pc": 97,
          "type": "basic_block"
        },
        {
          "end_pc": 118,
          "hash": "0xf5dcd67c858320278cac7baf5040cb5147bce7dd8b519b24eaba45d5fe0a1009",
          "id": "bb:108",
          "start_pc": 108,
          "type": "basic_block"
        },
        {
          "end_pc": 129,
          "hash": "0x28f905c7a227a234e956a16c5275ba2797487e3de2e5267d4ba2df8db3e34f4c",
          "id": "bb:119",
          "start_pc": 119,
          "type": "basic_block"
        },
        {
          "end_pc": 137,
          "hash": "0x656b8169beec60c42239989f91c962dd84d0262fd46d3f7eb1ba22508d55b606",
          "id": "bb:130",
          "start_pc": 130,
          "type": "basic_block"
        },
        {
          "end_pc": 204,
          "hash": "0x38971221762cbfec0153d84fe906fd6c9dc28d87bfffa225e8fd4966a6afbaeb",
          "id": "bb:138",
          "start_pc": 138,
          "type": "basic_block"
        },
        {
          "end_pc": 212,
          "hash": "0x928ebfc536e486a92c1c3c2ac85d2ffc79efe0a62d98edefc901aa993c36cdf8",
          "id": "bb:205",
          "start_pc": 205,
          "type": "basic_block"
        },
        {
          "end_pc": 231,
          "hash": "0xc81dbc6115471deb494f3879f83e159c33370e1a61cd4c3025937246f5ec2c48",
          "id": "bb:213",
          "start_pc": 213,
          "type": "basic_block"
        },
        {
          "end_pc": 277,
          "hash": "0x3727821badd7555d42d8b36030ebe49c8cdfed69d0c332453f2296758a68c865",
          "id": "bb:232",
          "start_pc": 232,
          "type": "basic_block"
        },
        {
          "end_pc": 281,
          "hash": "0x023ddd88da6bacdf435db2f10910d47ff60d71a6ea606f961f9b83b1ae104a28",
          "id": "bb:278",
          "start_pc": 278,
          "type": "basic_block"
        },
        {
          "end_pc": 293,
          "hash": "0x462a56aa72e9ff02dacf52c17579dade6411f9ceb064b53336bc9c7d58755dec",
          "id": "bb:282",
          "start_pc": 282,
          "type": "basic_block"
        },
        {
          "end_pc": 317,
          "hash": "0xda6e4981f173e6846859f48d3ee8d0a4d11cd03d5630e84f60b02f42cffa5a68",
          "id": "bb:294",
          "start_pc": 294,
          "type": "basic_block"
        },
        {
          "end_pc": 383,
          "hash": "0x79440b01e09d06218d0758f678c100c6b7585d97c44fe6297bc1b2ddfb672c24",
          "id": "bb:318",
          "start_pc": 318,
          "type": "basic_block"
        },
        {
          "end_pc": 391,
          "hash": "0x4d086cb51e2525272cdaedaf0bff8b98b465d4b48af9f9d8d9e2f10dbef35f41",
          "id": "bb:384",
          "start_pc": 384,
          "type": "basic_block"
        },
        {
          "end_pc": 410,
          "hash": "0xfb3cd24b9f64b5ac274cbb174f7dbd0cfe4eb930a257bcd0b74a056f38a2a53b",
          "id": "bb:392",
          "start_pc": 392,
          "type": "basic_block"
        },
        {
          "end_pc": 453,
          "hash": "0x78494d4ec59d88eb683ce17dc9dfb54a579887623c0a8946ccf8509edb8a806f",
          "id": "bb:411",
          "start_pc": 411,
          "type": "basic_block"
        },
        {
          "end_pc": 457,
          "hash": "0x958fbcdb7a5ddbe9800f3036e3e1271ad6366089e41feec49d2009270f7a633c",
          "id": "bb:454",
          "start_pc": 454,
          "type": "basic_block"
        },
        {
          "end_pc": 746,
          "hash": "0xb1a9ccc4293e762601f5777144e0565aedded23f54abec5a2a67ad1ab696e176",
          "id": "bb:458",
          "start_pc": 458,
          "type": "basic_block"
        },
        {
          "end_pc": 771,
          "hash": "0x7c2076afc0682a3d6432dcba9c9d72eae5659d0deac2fdf4963620548e4c0bf6",
          "id": "bb:747",
          "start_pc": 747,
          "type": "basic_block"
        },
        {
          "end_pc": 803,
          "hash": "0x682309155583e9bf5684c645805d02775c0489d8a310e39a455eed1845ae107b",
          "id": "bb:772",
          "start_pc": 772,
          "type": "basic_block"
        },
        {
          "end_pc": 813,
          "hash": "0x8423287e75318bb1a97109158b92abd95e8ab3344b10d1323330706b22a820e1",
          "id": "bb:804",
          "start_pc": 804,
          "type": "basic_block"
        },
        {
          "end_pc": 850,
          "hash": "0x92c9e32cf0f987f1a236d75ac5d4c138e581e3d6a86237e091fac06940024978",
          "id": "bb:814",
          "start_pc": 814,
          "type": "basic_block"
        },
        {
          "end_pc": 886,
          "hash": "0x78e6651f795163cda33a1f7d0e0c76914e57579b5bd8a6706bd4e2edfe8572ea",
          "id": "bb:851",
          "start_pc": 851,
          "type": "basic_block"
        },
        {
          "end_pc": 1037,
          "hash": "0x67efb1797e26c9ccb6d697ddb1f38d26a53d286b514f57d2602f4ad3e9bdfd71",
          "id": "bb:887",
          "start_pc": 887,
          "type": "basic_block"
        },
        {
          "end_pc": 1043,
          "hash": "0x5cc8f085bf045416d506a06eca3f45893d7d9c52f57fe2e639c54db01115e953",
          "id": "bb:1038",
          "start_pc": 1038,
          "type": "basic_block"
        },
        {
          "end_pc": 1159,
          "hash": "0x8174752e74b8def418331b7165089609798a5734a04fdd5f85e0cf0d221c1e3e",
          "id": "bb:1044",
          "start_pc": 1044,
          "type": "basic_block"
        },
        {
          "end_pc": 1171,
          "hash": "0xc2594a85c8424b4aa8682355108db57e7975c538e8280d2edaf2820ac1f56bc4",
          "id": "bb:1160",
          "start_pc": 1160,
          "type": "basic_block"
        },
        {
          "end_pc": 1179,
          "hash": "0x47df8deec78e215adda608591446915028e81768f8106c607d0ed62004dfd868",
          "id": "bb:1172",
          "start_pc": 1172,
          "type": "basic_block"
        },
        {
          "end_pc": 1188,
          "hash": "0x83ae68d2d97dadea7d665d4f4a82e04e308bcef01d09838c4dfdadb9ca755f09",
          "id": "bb:1180",
          "start_pc": 1180,
          "type": "basic_block"
        },
        {
          "end_pc": 1199,
          "hash": "0x4867b9bb9af12967835219ac5485f157f44d0b4989d3b4dbbb0f55521667907f",
          "id": "bb:1189",
          "start_pc": 1189,
          "type": "basic_block"
        },
        {
          "end_pc": 1201,
          "hash": "0x27c317ad1a54b6db4f67a7c719d879f80caf5d6801a3c25b5ccfebdfe3c1bcd4",
          "id": "bb:1200",
          "start_pc": 1200,
          "type": "basic_block"
        },
        {
          "end_pc": 1272,
          "hash": "0x870d8e186946ce7aae17d83b53734c9fcbcc3b4a02d0b2718bc7af9560d31d34",
          "id": "bb:1202",
          "start_pc": 1202,
          "type": "basic_block"
        },
        {
          "end_pc": 1297,
          "hash": "0xe69d9fe9ee12c042e74938a1ac6a4ef3de80d31f481ade0fd37efa6ba65f3049",
          "id": "bb:1273",
          "start_pc": 1273,
          "type": "basic_block"
        },
        {
          "end_pc": 1311,
          "hash": "0x184c3035d2b104dba14e64b04c82f37e9443c82faadf877a8909961217ab1364",
          "id": "bb:1298",
          "start_pc": 1298,
          "type": "basic_block"
        },
        {
          "end_pc": 1329,
          "hash": "0x1d1008b7a5732c71d2606411876fd0afba8f65ba284a8d2afca4c1fc8e4accd0",
          "id": "bb:1312",
          "start_pc": 1312,
          "type": "basic_block"
        },
        {
          "end_pc": 1352,
          "hash": "0x09420f56ef15035d2227cb28a919609caa878665b8cdd261d6ebd5ae832a6e66",
          "id": "bb:1330",
          "start_pc": 1330,
          "type": "basic_block"
        },
        {
          "end_pc": 1367,
          "hash": "0xbb0b2612a5e5b39bb5477fce03a1b55257c3476df41e2412656c9096804d45bc",
          "id": "bb:1353",
          "start_pc": 1353,
          "type": "basic_block"
        },
        {
          "end_pc": 1370,
          "hash": "0x13b17a5c8fdfa48b410caff42f1fdaefad767abef48eddd4bf9923d0774236a8",
          "id": "bb:1368",
          "start_pc": 1368,
          "type": "basic_block"
        },
        {
          "end_pc": 1379,
          "hash": "0xbfdff3d5c5912b6479818eb1b264172d85ccbfa9470e741fbd14ba927598501c",
          "id": "bb:1371",
          "start_pc": 1371,
          "type": "basic_block"
        },
        {
          "end_pc": 1400,
          "hash": "0xbb9e291c7aca8baa054d812b37f9d9b4ab8ba40d07da3decb32d7c72855150e6",
          "id": "bb:1380",
          "start_pc": 1380,
          "type": "basic_block"
        },
        {
          "end_pc": 1465,
          "hash": "0x388e53b0506aa00eb8615308b9261f1c367cb5659ae2ca261cfb1e2ccd115fc6",
          "id": "bb:1401",
          "start_pc": 1401,
          "type": "basic_block"
        },
        {
          "end_pc": 1477,
          "hash": "0x75f8f4a754bab781dce2195c9f4580a2332a5951a456e7535dc55bd2a6cc5f2b",
          "id": "bb:1466",
          "start_pc": 1466,
          "type": "basic_block"
        },
        {
          "end_pc": 1489,
          "hash": "0x976d149b0f65788f03ba599039443002c5ae96c1610dbf4e72c25b2a7dbedeae",
          "id": "bb:1478",
          "start_pc": 1478,
          "type": "basic_block"
        },
        {
          "end_pc": 1493,
          "hash": "0xfcf560b5d3c59a69c761c56d74a8444a98a89d43009b278d14839bfa6a36c781",
          "id": "bb:1490",
          "start_pc": 1490,
          "type": "basic_block"
        },
        {
          "end_pc": 1508,
          "hash": "0x9f778431795dd53b148a2a7138b15c04bdc02a8ddd041cc9c145952157726f6e",
          "id": "bb:1494",
          "start_pc": 1494,
          "type": "basic_block"
        },
        {
          "end_pc": 1511,
          "hash": "0x5eb78e9fca7bfc8b39c303bf362216752f998ffc240a6164abe60cebee10a754",
          "id": "bb:1509",
          "start_pc": 1509,
          "type": "basic_block"
        },
        {
          "end_pc": 1520,
          "hash": "0x45f57e2ad7f6ae4d5dbc786de040e95de2dfc0de2850e170569d8fe91fe5112c",
          "id": "bb:1512",
          "start_pc": 1512,
          "type": "basic_block"
        },
        {
          "end_pc": 1541,
          "hash": "0x93e73e8ca84e6a1111492c972da49a54be645fa13e8ffe10fca845a08c9b8f28",
          "id": "bb:1521",
          "start_pc": 1521,
          "type": "basic_block"
        },
        {
          "end_pc": 1561,
          "hash": "0x1bd25c4766b3439c88b8da3a221f3dcaa3306b80f7465d420d65a3eca3843b32",
          "id": "bb:1542",
          "start_pc": 1542,
          "type": "basic_block"
        },
        {
          "end_pc": 1596,
          "hash": "0x18d03af663e95b906a79dc769474652c4cdb498702d89ce629226bf8a0e8809e",
          "id": "bb:1562",
          "start_pc": 1562,
          "type": "basic_block"
        },
        {
          "end_pc": 1600,
          "hash": "0xa2662acadea39c1b83bffbb8d25c4996a4f2fec7e61308e2c92defb72eb54e49",
          "id": "bb:1597",
          "start_pc": 1597,
          "type": "basic_block"
        },
        {
          "end_pc": 1672,
          "hash": "0xd4660133f6e645b0cd03c21369c648f51ac93f17999890ff7254175090ebbf4d",
          "id": "bb:1601",
          "start_pc": 1601,
          "type": "basic_block"
        },
        {
          "end_pc": 1676,
          "hash": "0x870472c7bff8639efb07babd426ec1a231cdbd624bb8723583a57b0a029866dc",
          "id": "bb:1673",
          "start_pc": 1673,
          "type": "basic_block"
        },
        {
          "end_pc": 1815,
          "hash": "0xa85a8d0954048a0699f2ce1d4c1489da609fb5f3c7e7bf05d347acc31d26a76b",
          "id": "bb:1677",
          "start_pc": 1677,
          "type": "basic_block"
        },
        {
          "end_pc": 1850,
          "hash": "0xc7d3ed3f99a15e3133bf58d125cd82dccbd6556ec31048c30d036537d6392907",
          "id": "bb:1816",
          "start_pc": 1816,
          "type": "basic_block"
        },
        {
          "end_pc": 1854,
          "hash": "0x957e2b614a25914b20777a7e4743ceb61b3f2239bfef81b392c1950188f79742",
          "id": "bb:1851",
          "start_pc": 1851,
          "type": "basic_block"
        },
        {
          "end_pc": 1961,
          "hash": "0xa9d8fbba03866b6d5a09e917f24ad76a1abad106d4ad673bc107911a84b4df65",
          "id": "bb:1855",
          "start_pc": 1855,
          "type": "basic_block"
        },
        {
          "end_pc": 1975,
          "hash": "0x069a527f18c11b5c184ad8af8e2a44a7271d00299085f2c75fa58bc7b14c6e8a",
          "id": "bb:1962",
          "start_pc": 1962,
          "type": "basic_block"
        },
        {
          "end_pc": 1995,
          "hash": "0x7f74445fa727d64c60bc43dfcd9cfbc323fc343a915df69776c3c584e11d2b21",
          "id": "bb:1976",
          "start_pc": 1976,
          "type": "basic_block"
        },
        {
          "end_pc": 2004,
          "hash": "0x0f98a4d4fe86de2980c9621395cce18f4e0131f415ad575d16e2aa9a8abb4431",
          "id": "bb:1996",
          "start_pc": 1996,
          "type": "basic_block"
        },
        {
          "end_pc": 2012,
          "hash": "0x900b7c6e9ccca62a2f0a9ebd4a4d82d50ef20e22eee5bf2417eff09b642ae5d1",
          "id": "bb:2005",
          "start_pc": 2005,
          "type": "basic_block"
        },
        {
          "id": "call:730",
          "opcode": "CALL",
          "pc": 730,
          "type": "callsite"
        },
        {
          "id": "call:798",
          "opcode": "CALL",
          "pc": 798,
          "type": "callsite"
        },
        {
          "id": "call:1256",
          "opcode": "CALL",
          "pc": 1256,
          "type": "callsite"
        },
        {
          "id": "sink:call",
          "type": "sink"
        },
        {
          "entry_pc": null,
          "id": "fn:0x06fdde03",
          "selector": "0x06fdde03",
          "type": "function"
        },
        {
          "entry_pc": 826074471,
          "id": "fn:0x23b872dd",
          "selector": "0x23b872dd",
          "type": "function"
        },
        {
          "entry_pc": 1889567281,
          "id": "fn:0x313ce567",
          "selector": "0x313ce567",
          "type": "function"
        },
        {
          "entry_pc": 2514000705,
          "id": "fn:0x70a08231",
          "selector": "0x70a08231",
          "type": "function"
        },
        {
          "entry_pc": 2835717307,
          "id": "fn:0x95d89b41",
          "selector": "0x95d89b41",
          "type": "function"
        },
        {
          "entry_pc": 3404319313,
          "id": "fn:0xa9059cbb",
          "selector": "0xa9059cbb",
          "type": "function"
        },
        {
          "entry_pc": 3694166258,
          "id": "fn:0xcae9ca51",
          "selector": "0xcae9ca51",
          "type": "function"
        },
        {
          "entry_pc": 3714247998,
          "id": "fn:0xdc3080f2",
          "selector": "0xdc3080f2",
          "type": "function"
        },
        {
          "entry_pc": 3869595289,
          "id": "fn:0xdd62ed3e",
          "selector": "0xdd62ed3e",
          "type": "function"
        },
        {
          "entry_pc": 1200,
          "id": "fn:0xe6a55699",
          "selector": "0xe6a55699",
          "type": "function"
        }
      ],
      "version": "capability_graph_v1"
    },
    "id": 2256,
    "updated_at": "2026-04-04T19:55:27.000000Z",
    "version": "capability_graph_v1"
  },
  "detector_findings": [
    {
      "confidence": 60,
      "evidence_json": {
        "call_count": 3,
        "examples": [
          {
            "opcode": "CALL",
            "pc": 730,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          },
          {
            "opcode": "CALL",
            "pc": 798,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          },
          {
            "opcode": "CALL",
            "pc": 1256,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          }
        ],
        "guards_detected": [],
        "untrusted_call_count": 3
      },
      "normalized_json": {
        "sink": "CALL"
      },
      "severity": "high",
      "title": "Untrusted CALL target/value reachable",
      "validated": true,
      "validation_json": {
        "attempts": 1,
        "call_targets": [
          "0x0000000000000000000000000000000000000004",
          "0xd7e021cd9096cc0ca642828c1045eb10c6b1ff2e"
        ],
        "classification": "target_varies",
        "confirmed": true,
        "errors": 0,
        "matched_probe": null,
        "sink": "CALL",
        "status": "confirmed",
        "target_varies": true,
        "trace_id": "0xa9d677aa6509ece2fd226c7db29b18b9c179b96b8e0ead3a3912327c1670adbb",
        "trace_mode": "callTracer"
      }
    },
    {
      "confidence": 55,
      "evidence_json": {
        "eth_value_calls": 3,
        "examples": [
          {
            "opcode": "CALL",
            "pc": 730,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          },
          {
            "opcode": "CALL",
            "pc": 798,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          },
          {
            "opcode": "CALL",
            "pc": 1256,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          }
        ],
        "guards_detected": []
      },
      "normalized_json": {
        "sink": "CALL",
        "value": "nonzero"
      },
      "severity": "high",
      "title": "ETH value transfer possible",
      "validated": true,
      "validation_json": {
        "attempts": 1,
        "call_targets": [
          "0x0000000000000000000000000000000000000004",
          "0xd7e021cd9096cc0ca642828c1045eb10c6b1ff2e"
        ],
        "classification": "target_varies",
        "confirmed": true,
        "errors": 0,
        "matched_probe": null,
        "sink": "CALL",
        "status": "confirmed",
        "target_varies": true,
        "trace_id": "0xa9d677aa6509ece2fd226c7db29b18b9c179b96b8e0ead3a3912327c1670adbb",
        "trace_mode": "callTracer"
      }
    }
  ],
  "heuristics_summary": {
    "create2_count": 0,
    "delegatecall_count": 0,
    "flags": [],
    "selfdestruct_count": 0
  }
}
exec
/bin/bash -lc "python - <<'PY'
from textwrap import wrap
bytecode='606060405236156100825760e060020a600035046306fdde03811461008a57806323b872dd146100e8578063313ce5671461011a57806370a082311461012657806395d89b411461013e578063a9059cbb1461019b578063cae9ca51146101ca578063dc3080f21461032e578063dd62ed3e14610353578063e6a5569914610377575b6104b0610002565b6040805160008054602060026001831615610100026000190190921691909104601f81018290048202840182019094528383526104b293908301828280156107d55780601f106107aa576101008083540402835291602001916107d5565b610520600435602435604435600160a060020a0383166000908152600360205260408120548290101561061a57610002565b61053260025460ff1681565b61052060043560036020526000908152604090205481565b60408051600180546020600282841615610100026000190190921691909104601f81018290048202840182019094528383526104b293908301828280156107d55780601f106107aa576101008083540402835291602001916107d5565b6104b0600435602435600160a060020a0333166000908152600360205260409020548190101561071857610002565b604080516020604435600481810135601f810184900484028501840190955284845261052094813594602480359593946064949293910191819084018382808284375094965050505050505060006000836004600050600033600160a060020a03168152602001908152602001600020600050600087600160a060020a031681526020019081526020016000206000508190555084905080600160a060020a0316638f4ffcb1338630876040518560e060020a0281526004018085600160a060020a0316815260200184815260200183600160a060020a03168152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303816000876161da5a03f11561000257505050509392505050565b6005602090815260043560009081526040808220909252602435815220546105209081565b60046020818152903560009081526040808220909252602435815220546105209081565b60408051602060046024803582810135601f81018590048502860185019096528585526104b0958335959394604494939290920191819084018382808284375050604080516020606435808b0135601f81018390048302840183019094528383529799983598976084975091955060249190910193509091508190840183828082843750949650505050505050836000141561041457620f424093505b33600160a060020a031660009081526003602090815260408220869055815485518380527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56360026001841615610100026000190190931692909204601f90810184900483019391929188019083901061054957805160ff19168380011785555b506105799291505b808211156105d2576000815560010161049c565b005b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156105125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051918252519081900360200190f35b6040805160ff929092168252519081900360200190f35b82800160010185558215610494579182015b8281111561049457825182600050559160200191906001019061055b565b50508060016000509080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106105d657805160ff19168380011785555b5061060692915061049c565b5090565b828001600101855582156105c6579182015b828111156105c65782518260005055916020019190600101906105e8565b50506002805460ff19168317905550505050565b600160a060020a038316600090815260036020526040902054808301101561064157610002565b600160a060020a03848116600081815260046020908152604080832033909516808452948252808320549383526005825280832094835293905291909120548301111561068d57610002565b600160a060020a03848116600081815260036020908152604080832080548890039055878516808452818420805489019055938352600582528083203390951680845294825291829020805487019055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a39392505050565b600160a060020a038216600090815260036020526040902054808201101561073f57610002565b600160a060020a03338116600081815260036020908152604080832080548790039055938616808352918490208054860190558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b50505050508156'
try:
 import pyevmasm
except ImportError as e:
 print('no pyevmasm', e)
PY" in /tmp/codex-6oubwxvx
 succeeded in 0ms:
no pyevmasm No module named 'pyevmasm'

exec
/bin/bash -lc "python - <<'PY'
bytecode='606060405236156100825760e060020a600035046306fdde03811461008a57806323b872dd146100e8578063313ce5671461011a57806370a082311461012657806395d89b411461013e578063a9059cbb1461019b578063cae9ca51146101ca578063dc3080f21461032e578063dd62ed3e14610353578063e6a5569914610377575b6104b0610002565b6040805160008054602060026001831615610100026000190190921691909104601f81018290048202840182019094528383526104b293908301828280156107d55780601f106107aa576101008083540402835291602001916107d5565b610520600435602435604435600160a060020a0383166000908152600360205260408120548290101561061a57610002565b61053260025460ff1681565b61052060043560036020526000908152604090205481565b60408051600180546020600282841615610100026000190190921691909104601f81018290048202840182019094528383526104b293908301828280156107d55780601f106107aa576101008083540402835291602001916107d5565b6104b0600435602435600160a060020a0333166000908152600360205260409020548190101561071857610002565b604080516020604435600481810135601f810184900484028501840190955284845261052094813594602480359593946064949293910191819084018382808284375094965050505050505060006000836004600050600033600160a060020a03168152602001908152602001600020600050600087600160a060020a031681526020019081526020016000206000508190555084905080600160a060020a0316638f4ffcb1338630876040518560e060020a0281526004018085600160a060020a0316815260200184815260200183600160a060020a03168152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303816000876161da5a03f11561000257505050509392505050565b6005602090815260043560009081526040808220909252602435815220546105209081565b60046020818152903560009081526040808220909252602435815220546105209081565b60408051602060046024803582810135601f81018590048502860185019096528585526104b0958335959394604494939290920191819084018382808284375050604080516020606435808b0135601f81018390048302840183019094528383529799983598976084975091955060249190910193509091508190840183828082843750949650505050505050836000141561041457620f424093505b33600160a060020a031660009081526003602090815260408220869055815485518380527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56360026001841615610100026000190190931692909204601f90810184900483019391929188019083901061054957805160ff19168380011785555b506105799291505b808211156105d2576000815560010161049c565b005b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156105125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051918252519081900360200190f35b6040805160ff929092168252519081900360200190f35b82800160010185558215610494579182015b8281111561049457825182600050559160200191906001019061055b565b50508060016000509080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106105d657805160ff19168380011785555b5061060692915061049c565b5090565b828001600101855582156105c6579182015b828111156105c65782518260005055916020019190600101906105e8565b50506002805460ff19168317905550505050565b600160a060020a038316600090815260036020526040902054808301101561064157610002565b600160a060020a03848116600081815260046020908152604080832033909516808452948252808320549383526005825280832094835293905291909120548301111561068d57610002565b600160a060020a03848116600081815260036020908152604080832080548890039055878516808452818420805489019055938352600582528083203390951680845294825291829020805487019055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a39392505050565b600160a060020a038216600090815260036020526040902054808201101561073f57610002565b600160a060020a03338116600081815260036020908152604080832080548790039055938616808352918490208054860190558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b50505050508156'
ops={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): ops[0x5f+i]=f'PUSH{i}'
for i in range(1,17): ops[0x7f+i]=f'DUP{i}'
for i in range(1,17): ops[0x8f+i]=f'SWAP{i}'
for i in range(0,5): ops[0xa0+i]=f'LOG{i}'
code=bytes.fromhex(bytecode)
pcs_to_show={0x19b,0x1ca,0x32e,0x377,0x520,0x532,0x61a,0x718,0x414,0x458,0x772,0x1202,0x1044,0x1677,0x1855,0x814,0x851}
# print around certain ranges
ranges=[(0x180,0x330),(0x330,0x3a0),(0x500,0x740)]
for start,end in ranges:
  print(f'-- range {start:#x}-{end:#x} --')
  pc=start
  while pc<end and pc<len(code):
    op=code[pc]
    name=ops.get(op,f'OP_{op:02x}')
    if name.startswith('PUSH'):
      n=int(name[4:])
      data=code[pc+1:pc+1+n]
      print(f'{pc:04x}: {name} 0x{data.hex()}')
      pc+=1+n
    else:
      print(f'{pc:04x}: {name}')
      pc+=1
PY" in /tmp/codex-6oubwxvx
 succeeded in 0ms:
-- range 0x180-0x330 --
0180: DUP1
0181: PUSH1 0x1f
0183: LT
0184: PUSH2 0x07aa
0187: JUMPI
0188: PUSH2 0x0100
018b: DUP1
018c: DUP4
018d: SLOAD
018e: DIV
018f: MUL
0190: DUP4
0191: MSTORE
0192: SWAP2
0193: PUSH1 0x20
0195: ADD
0196: SWAP2
0197: PUSH2 0x07d5
019a: JUMP
019b: JUMPDEST
019c: PUSH2 0x04b0
019f: PUSH1 0x04
01a1: CALLDATALOAD
01a2: PUSH1 0x24
01a4: CALLDATALOAD
01a5: PUSH1 0x01
01a7: PUSH1 0xa0
01a9: PUSH1 0x02
01ab: EXP
01ac: SUB
01ad: CALLER
01ae: AND
01af: PUSH1 0x00
01b1: SWAP1
01b2: DUP2
01b3: MSTORE
01b4: PUSH1 0x03
01b6: PUSH1 0x20
01b8: MSTORE
01b9: PUSH1 0x40
01bb: SWAP1
01bc: SHA3
01bd: SLOAD
01be: DUP2
01bf: SWAP1
01c0: LT
01c1: ISZERO
01c2: PUSH2 0x0718
01c5: JUMPI
01c6: PUSH2 0x0002
01c9: JUMP
01ca: JUMPDEST
01cb: PUSH1 0x40
01cd: DUP1
01ce: MLOAD
01cf: PUSH1 0x20
01d1: PUSH1 0x44
01d3: CALLDATALOAD
01d4: PUSH1 0x04
01d6: DUP2
01d7: DUP2
01d8: ADD
01d9: CALLDATALOAD
01da: PUSH1 0x1f
01dc: DUP2
01dd: ADD
01de: DUP5
01df: SWAP1
01e0: DIV
01e1: DUP5
01e2: MUL
01e3: DUP6
01e4: ADD
01e5: DUP5
01e6: ADD
01e7: SWAP1
01e8: SWAP6
01e9: MSTORE
01ea: DUP5
01eb: DUP5
01ec: MSTORE
01ed: PUSH2 0x0520
01f0: SWAP5
01f1: DUP2
01f2: CALLDATALOAD
01f3: SWAP5
01f4: PUSH1 0x24
01f6: DUP1
01f7: CALLDATALOAD
01f8: SWAP6
01f9: SWAP4
01fa: SWAP5
01fb: PUSH1 0x64
01fd: SWAP5
01fe: SWAP3
01ff: SWAP4
0200: SWAP2
0201: ADD
0202: SWAP2
0203: DUP2
0204: SWAP1
0205: DUP5
0206: ADD
0207: DUP4
0208: DUP3
0209: DUP1
020a: DUP3
020b: DUP5
020c: CALLDATACOPY
020d: POP
020e: SWAP5
020f: SWAP7
0210: POP
0211: POP
0212: POP
0213: POP
0214: POP
0215: POP
0216: POP
0217: PUSH1 0x00
0219: PUSH1 0x00
021b: DUP4
021c: PUSH1 0x04
021e: PUSH1 0x00
0220: POP
0221: PUSH1 0x00
0223: CALLER
0224: PUSH1 0x01
0226: PUSH1 0xa0
0228: PUSH1 0x02
022a: EXP
022b: SUB
022c: AND
022d: DUP2
022e: MSTORE
022f: PUSH1 0x20
0231: ADD
0232: SWAP1
0233: DUP2
0234: MSTORE
0235: PUSH1 0x20
0237: ADD
0238: PUSH1 0x00
023a: SHA3
023b: PUSH1 0x00
023d: POP
023e: PUSH1 0x00
0240: DUP8
0241: PUSH1 0x01
0243: PUSH1 0xa0
0245: PUSH1 0x02
0247: EXP
0248: SUB
0249: AND
024a: DUP2
024b: MSTORE
024c: PUSH1 0x20
024e: ADD
024f: SWAP1
0250: DUP2
0251: MSTORE
0252: PUSH1 0x20
0254: ADD
0255: PUSH1 0x00
0257: SHA3
0258: PUSH1 0x00
025a: POP
025b: DUP2
025c: SWAP1
025d: SSTORE
025e: POP
025f: DUP5
0260: SWAP1
0261: POP
0262: DUP1
0263: PUSH1 0x01
0265: PUSH1 0xa0
0267: PUSH1 0x02
0269: EXP
026a: SUB
026b: AND
026c: PUSH4 0x8f4ffcb1
0271: CALLER
0272: DUP7
0273: ADDRESS
0274: DUP8
0275: PUSH1 0x40
0277: MLOAD
0278: DUP6
0279: PUSH1 0xe0
027b: PUSH1 0x02
027d: EXP
027e: MUL
027f: DUP2
0280: MSTORE
0281: PUSH1 0x04
0283: ADD
0284: DUP1
0285: DUP6
0286: PUSH1 0x01
0288: PUSH1 0xa0
028a: PUSH1 0x02
028c: EXP
028d: SUB
028e: AND
028f: DUP2
0290: MSTORE
0291: PUSH1 0x20
0293: ADD
0294: DUP5
0295: DUP2
0296: MSTORE
0297: PUSH1 0x20
0299: ADD
029a: DUP4
029b: PUSH1 0x01
029d: PUSH1 0xa0
029f: PUSH1 0x02
02a1: EXP
02a2: SUB
02a3: AND
02a4: DUP2
02a5: MSTORE
02a6: PUSH1 0x20
02a8: ADD
02a9: DUP1
02aa: PUSH1 0x20
02ac: ADD
02ad: DUP3
02ae: DUP2
02af: SUB
02b0: DUP3
02b1: MSTORE
02b2: DUP4
02b3: DUP2
02b4: DUP2
02b5: MLOAD
02b6: DUP2
02b7: MSTORE
02b8: PUSH1 0x20
02ba: ADD
02bb: SWAP2
02bc: POP
02bd: DUP1
02be: MLOAD
02bf: SWAP1
02c0: PUSH1 0x20
02c2: ADD
02c3: SWAP1
02c4: DUP1
02c5: DUP4
02c6: DUP4
02c7: DUP3
02c8: SWAP1
02c9: PUSH1 0x00
02cb: PUSH1 0x04
02cd: PUSH1 0x20
02cf: DUP5
02d0: PUSH1 0x1f
02d2: ADD
02d3: DIV
02d4: PUSH1 0x0f
02d6: MUL
02d7: PUSH1 0x03
02d9: ADD
02da: CALL
02db: POP
02dc: SWAP1
02dd: POP
02de: SWAP1
02df: DUP2
02e0: ADD
02e1: SWAP1
02e2: PUSH1 0x1f
02e4: AND
02e5: DUP1
02e6: ISZERO
02e7: PUSH2 0x0304
02ea: JUMPI
02eb: DUP1
02ec: DUP3
02ed: SUB
02ee: DUP1
02ef: MLOAD
02f0: PUSH1 0x01
02f2: DUP4
02f3: PUSH1 0x20
02f5: SUB
02f6: PUSH2 0x0100
02f9: EXP
02fa: SUB
02fb: NOT
02fc: AND
02fd: DUP2
02fe: MSTORE
02ff: PUSH1 0x20
0301: ADD
0302: SWAP2
0303: POP
0304: JUMPDEST
0305: POP
0306: SWAP6
0307: POP
0308: POP
0309: POP
030a: POP
030b: POP
030c: POP
030d: PUSH1 0x00
030f: PUSH1 0x40
0311: MLOAD
0312: DUP1
0313: DUP4
0314: SUB
0315: DUP2
0316: PUSH1 0x00
0318: DUP8
0319: PUSH2 0x61da
031c: GAS
031d: SUB
031e: CALL
031f: ISZERO
0320: PUSH2 0x0002
0323: JUMPI
0324: POP
0325: POP
0326: POP
0327: POP
0328: SWAP4
0329: SWAP3
032a: POP
032b: POP
032c: POP
032d: JUMP
032e: JUMPDEST
032f: PUSH1 0x05
-- range 0x330-0x3a0 --
0330: SDIV
0331: PUSH1 0x20
0333: SWAP1
0334: DUP2
0335: MSTORE
0336: PUSH1 0x04
0338: CALLDATALOAD
0339: PUSH1 0x00
033b: SWAP1
033c: DUP2
033d: MSTORE
033e: PUSH1 0x40
0340: DUP1
0341: DUP3
0342: SHA3
0343: SWAP1
0344: SWAP3
0345: MSTORE
0346: PUSH1 0x24
0348: CALLDATALOAD
0349: DUP2
034a: MSTORE
034b: SHA3
034c: SLOAD
034d: PUSH2 0x0520
0350: SWAP1
0351: DUP2
0352: JUMP
0353: JUMPDEST
0354: PUSH1 0x04
0356: PUSH1 0x20
0358: DUP2
0359: DUP2
035a: MSTORE
035b: SWAP1
035c: CALLDATALOAD
035d: PUSH1 0x00
035f: SWAP1
0360: DUP2
0361: MSTORE
0362: PUSH1 0x40
0364: DUP1
0365: DUP3
0366: SHA3
0367: SWAP1
0368: SWAP3
0369: MSTORE
036a: PUSH1 0x24
036c: CALLDATALOAD
036d: DUP2
036e: MSTORE
036f: SHA3
0370: SLOAD
0371: PUSH2 0x0520
0374: SWAP1
0375: DUP2
0376: JUMP
0377: JUMPDEST
0378: PUSH1 0x40
037a: DUP1
037b: MLOAD
037c: PUSH1 0x20
037e: PUSH1 0x04
0380: PUSH1 0x24
0382: DUP1
0383: CALLDATALOAD
0384: DUP3
0385: DUP2
0386: ADD
0387: CALLDATALOAD
0388: PUSH1 0x1f
038a: DUP2
038b: ADD
038c: DUP6
038d: SWAP1
038e: DIV
038f: DUP6
0390: MUL
0391: DUP7
0392: ADD
0393: DUP6
0394: ADD
0395: SWAP1
0396: SWAP7
0397: MSTORE
0398: DUP6
0399: DUP6
039a: MSTORE
039b: PUSH2 0x04b0
039e: SWAP6
039f: DUP4
-- range 0x500-0x740 --
0500: DUP4
0501: PUSH1 0x20
0503: SUB
0504: PUSH2 0x0100
0507: EXP
0508: SUB
0509: NOT
050a: AND
050b: DUP2
050c: MSTORE
050d: PUSH1 0x20
050f: ADD
0510: SWAP2
0511: POP
0512: JUMPDEST
0513: POP
0514: SWAP3
0515: POP
0516: POP
0517: POP
0518: PUSH1 0x40
051a: MLOAD
051b: DUP1
051c: SWAP2
051d: SUB
051e: SWAP1
051f: RETURN
0520: JUMPDEST
0521: PUSH1 0x40
0523: DUP1
0524: MLOAD
0525: SWAP2
0526: DUP3
0527: MSTORE
0528: MLOAD
0529: SWAP1
052a: DUP2
052b: SWAP1
052c: SUB
052d: PUSH1 0x20
052f: ADD
0530: SWAP1
0531: RETURN
0532: JUMPDEST
0533: PUSH1 0x40
0535: DUP1
0536: MLOAD
0537: PUSH1 0xff
0539: SWAP3
053a: SWAP1
053b: SWAP3
053c: AND
053d: DUP3
053e: MSTORE
053f: MLOAD
0540: SWAP1
0541: DUP2
0542: SWAP1
0543: SUB
0544: PUSH1 0x20
0546: ADD
0547: SWAP1
0548: RETURN
0549: JUMPDEST
054a: DUP3
054b: DUP1
054c: ADD
054d: PUSH1 0x01
054f: ADD
0550: DUP6
0551: SSTORE
0552: DUP3
0553: ISZERO
0554: PUSH2 0x0494
0557: JUMPI
0558: SWAP2
0559: DUP3
055a: ADD
055b: JUMPDEST
055c: DUP3
055d: DUP2
055e: GT
055f: ISZERO
0560: PUSH2 0x0494
0563: JUMPI
0564: DUP3
0565: MLOAD
0566: DUP3
0567: PUSH1 0x00
0569: POP
056a: SSTORE
056b: SWAP2
056c: PUSH1 0x20
056e: ADD
056f: SWAP2
0570: SWAP1
0571: PUSH1 0x01
0573: ADD
0574: SWAP1
0575: PUSH2 0x055b
0578: JUMP
0579: JUMPDEST
057a: POP
057b: POP
057c: DUP1
057d: PUSH1 0x01
057f: PUSH1 0x00
0581: POP
0582: SWAP1
0583: DUP1
0584: MLOAD
0585: SWAP1
0586: PUSH1 0x20
0588: ADD
0589: SWAP1
058a: DUP3
058b: DUP1
058c: SLOAD
058d: PUSH1 0x01
058f: DUP2
0590: PUSH1 0x01
0592: AND
0593: ISZERO
0594: PUSH2 0x0100
0597: MUL
0598: SUB
0599: AND
059a: PUSH1 0x02
059c: SWAP1
059d: DIV
059e: SWAP1
059f: PUSH1 0x00
05a1: MSTORE
05a2: PUSH1 0x20
05a4: PUSH1 0x00
05a6: SHA3
05a7: SWAP1
05a8: PUSH1 0x1f
05aa: ADD
05ab: PUSH1 0x20
05ad: SWAP1
05ae: DIV
05af: DUP2
05b0: ADD
05b1: SWAP3
05b2: DUP3
05b3: PUSH1 0x1f
05b5: LT
05b6: PUSH2 0x05d6
05b9: JUMPI
05ba: DUP1
05bb: MLOAD
05bc: PUSH1 0xff
05be: NOT
05bf: AND
05c0: DUP4
05c1: DUP1
05c2: ADD
05c3: OR
05c4: DUP6
05c5: SSTORE
05c6: JUMPDEST
05c7: POP
05c8: PUSH2 0x0606
05cb: SWAP3
05cc: SWAP2
05cd: POP
05ce: PUSH2 0x049c
05d1: JUMP
05d2: JUMPDEST
05d3: POP
05d4: SWAP1
05d5: JUMP
05d6: JUMPDEST
05d7: DUP3
05d8: DUP1
05d9: ADD
05da: PUSH1 0x01
05dc: ADD
05dd: DUP6
05de: SSTORE
05df: DUP3
05e0: ISZERO
05e1: PUSH2 0x05c6
05e4: JUMPI
05e5: SWAP2
05e6: DUP3
05e7: ADD
05e8: JUMPDEST
05e9: DUP3
05ea: DUP2
05eb: GT
05ec: ISZERO
05ed: PUSH2 0x05c6
05f0: JUMPI
05f1: DUP3
05f2: MLOAD
05f3: DUP3
05f4: PUSH1 0x00
05f6: POP
05f7: SSTORE
05f8: SWAP2
05f9: PUSH1 0x20
05fb: ADD
05fc: SWAP2
05fd: SWAP1
05fe: PUSH1 0x01
0600: ADD
0601: SWAP1
0602: PUSH2 0x05e8
0605: JUMP
0606: JUMPDEST
0607: POP
0608: POP
0609: PUSH1 0x02
060b: DUP1
060c: SLOAD
060d: PUSH1 0xff
060f: NOT
0610: AND
0611: DUP4
0612: OR
0613: SWAP1
0614: SSTORE
0615: POP
0616: POP
0617: POP
0618: POP
0619: JUMP
061a: JUMPDEST
061b: PUSH1 0x01
061d: PUSH1 0xa0
061f: PUSH1 0x02
0621: EXP
0622: SUB
0623: DUP4
0624: AND
0625: PUSH1 0x00
0627: SWAP1
0628: DUP2
0629: MSTORE
062a: PUSH1 0x03
062c: PUSH1 0x20
062e: MSTORE
062f: PUSH1 0x40
0631: SWAP1
0632: SHA3
0633: SLOAD
0634: DUP1
0635: DUP4
0636: ADD
0637: LT
0638: ISZERO
0639: PUSH2 0x0641
063c: JUMPI
063d: PUSH2 0x0002
0640: JUMP
0641: JUMPDEST
0642: PUSH1 0x01
0644: PUSH1 0xa0
0646: PUSH1 0x02
0648: EXP
0649: SUB
064a: DUP5
064b: DUP2
064c: AND
064d: PUSH1 0x00
064f: DUP2
0650: DUP2
0651: MSTORE
0652: PUSH1 0x04
0654: PUSH1 0x20
0656: SWAP1
0657: DUP2
0658: MSTORE
0659: PUSH1 0x40
065b: DUP1
065c: DUP4
065d: SHA3
065e: CALLER
065f: SWAP1
0660: SWAP6
0661: AND
0662: DUP1
0663: DUP5
0664: MSTORE
0665: SWAP5
0666: DUP3
0667: MSTORE
0668: DUP1
0669: DUP4
066a: SHA3
066b: SLOAD
066c: SWAP4
066d: DUP4
066e: MSTORE
066f: PUSH1 0x05
0671: DUP3
0672: MSTORE
0673: DUP1
0674: DUP4
0675: SHA3
0676: SWAP5
0677: DUP4
0678: MSTORE
0679: SWAP4
067a: SWAP1
067b: MSTORE
067c: SWAP2
067d: SWAP1
067e: SWAP2
067f: SHA3
0680: SLOAD
0681: DUP4
0682: ADD
0683: GT
0684: ISZERO
0685: PUSH2 0x068d
0688: JUMPI
0689: PUSH2 0x0002
068c: JUMP
068d: JUMPDEST
068e: PUSH1 0x01
0690: PUSH1 0xa0
0692: PUSH1 0x02
0694: EXP
0695: SUB
0696: DUP5
0697: DUP2
0698: AND
0699: PUSH1 0x00
069b: DUP2
069c: DUP2
069d: MSTORE
069e: PUSH1 0x03
06a0: PUSH1 0x20
06a2: SWAP1
06a3: DUP2
06a4: MSTORE
06a5: PUSH1 0x40
06a7: DUP1
06a8: DUP4
06a9: SHA3
06aa: DUP1
06ab: SLOAD
06ac: DUP9
06ad: SWAP1
06ae: SUB
06af: SWAP1
06b0: SSTORE
06b1: DUP8
06b2: DUP6
06b3: AND
06b4: DUP1
06b5: DUP5
06b6: MSTORE
06b7: DUP2
06b8: DUP5
06b9: SHA3
06ba: DUP1
06bb: SLOAD
06bc: DUP10
06bd: ADD
06be: SWAP1
06bf: SSTORE
06c0: SWAP4
06c1: DUP4
06c2: MSTORE
06c3: PUSH1 0x05
06c5: DUP3
06c6: MSTORE
06c7: DUP1
06c8: DUP4
06c9: SHA3
06ca: CALLER
06cb: SWAP1
06cc: SWAP6
06cd: AND
06ce: DUP1
06cf: DUP5
06d0: MSTORE
06d1: SWAP5
06d2: DUP3
06d3: MSTORE
06d4: SWAP2
06d5: DUP3
06d6: SWAP1
06d7: SHA3
06d8: DUP1
06d9: SLOAD
06da: DUP8
06db: ADD
06dc: SWAP1
06dd: SSTORE
06de: DUP2
06df: MLOAD
06e0: DUP7
06e1: DUP2
06e2: MSTORE
06e3: SWAP2
06e4: MLOAD
06e5: SWAP3
06e6: SWAP4
06e7: SWAP3
06e8: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
0709: SWAP3
070a: DUP2
070b: SWAP1
070c: SUB
070d: SWAP1
070e: SWAP2
070f: ADD
0710: SWAP1
0711: LOG3
0712: SWAP4
0713: SWAP3
0714: POP
0715: POP
0716: POP
0717: JUMP
0718: JUMPDEST
0719: PUSH1 0x01
071b: PUSH1 0xa0
071d: PUSH1 0x02
071f: EXP
0720: SUB
0721: DUP3
0722: AND
0723: PUSH1 0x00
0725: SWAP1
0726: DUP2
0727: MSTORE
0728: PUSH1 0x03
072a: PUSH1 0x20
072c: MSTORE
072d: PUSH1 0x40
072f: SWAP1
0730: SHA3
0731: SLOAD
0732: DUP1
0733: DUP3
0734: ADD
0735: LT
0736: ISZERO
0737: PUSH2 0x073f
073a: JUMPI
073b: PUSH2 0x0002
073e: JUMP
073f: JUMPDEST

exec
/bin/bash -lc "python - <<'PY'
bytecode='606060405236156100825760e060020a600035046306fdde03811461008a57806323b872dd146100e8578063313ce5671461011a57806370a082311461012657806395d89b411461013e578063a9059cbb1461019b578063cae9ca51146101ca578063dc3080f21461032e578063dd62ed3e14610353578063e6a5569914610377575b6104b0610002565b6040805160008054602060026001831615610100026000190190921691909104601f81018290048202840182019094528383526104b293908301828280156107d55780601f106107aa576101008083540402835291602001916107d5565b610520600435602435604435600160a060020a0383166000908152600360205260408120548290101561061a57610002565b61053260025460ff1681565b61052060043560036020526000908152604090205481565b60408051600180546020600282841615610100026000190190921691909104601f81018290048202840182019094528383526104b293908301828280156107d55780601f106107aa576101008083540402835291602001916107d5565b6104b0600435602435600160a060020a0333166000908152600360205260409020548190101561071857610002565b604080516020604435600481810135601f810184900484028501840190955284845261052094813594602480359593946064949293910191819084018382808284375094965050505050505060006000836004600050600033600160a060020a03168152602001908152602001600020600050600087600160a060020a031681526020019081526020016000206000508190555084905080600160a060020a0316638f4ffcb1338630876040518560e060020a0281526004018085600160a060020a0316815260200184815260200183600160a060020a03168152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303816000876161da5a03f11561000257505050509392505050565b6005602090815260043560009081526040808220909252602435815220546105209081565b60046020818152903560009081526040808220909252602435815220546105209081565b60408051602060046024803582810135601f81018590048502860185019096528585526104b0958335959394604494939290920191819084018382808284375050604080516020606435808b0135601f81018390048302840183019094528383529799983598976084975091955060249190910193509091508190840183828082843750949650505050505050836000141561041457620f424093505b33600160a060020a031660009081526003602090815260408220869055815485518380527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56360026001841615610100026000190190931692909204601f90810184900483019391929188019083901061054957805160ff19168380011785555b506105799291505b808211156105d2576000815560010161049c565b005b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156105125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051918252519081900360200190f35b6040805160ff929092168252519081900360200190f35b82800160010185558215610494579182015b8281111561049457825182600050559160200191906001019061055b565b50508060016000509080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106105d657805160ff19168380011785555b5061060692915061049c565b5090565b828001600101855582156105c6579182015b828111156105c65782518260005055916020019190600101906105e8565b50506002805460ff19168317905550505050565b600160a060020a038316600090815260036020526040902054808301101561064157610002565b600160a060020a03848116600081815260046020908152604080832033909516808452948252808320549383526005825280832094835293905291909120548301111561068d57610002565b600160a060020a03848116600081815260036020908152604080832080548890039055878516808452818420805489019055938352600582528083203390951680845294825291829020805487019055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a39392505050565b600160a060020a038216600090815260036020526040902054808201101561073f57610002565b600160a060020a03338116600081815260036020908152604080832080548790039055938616808352918490208054860190558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b50505050508156'
ops={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): ops[0x5f+i]=f'PUSH{i}'
for i in range(1,17): ops[0x7f+i]=f'DUP{i}'
for i in range(1,17): ops[0x8f+i]=f'SWAP{i}'
for i in range(0,5): ops[0xa0+i]=f'LOG{i}'
code=bytes.fromhex(bytecode)
start,end=0x73f,0x7c0
pc=start
while pc<end and pc<len(code):
 op=code[pc]; name=ops.get(op,f'OP_{op:02x}')
 if name.startswith('PUSH'):
  n=int(name[4:]); data=code[pc+1:pc+1+n]
  print(f'{pc:04x}: {name} 0x{data.hex()}'); pc+=1+n
 else:
  print(f'{pc:04x}: {name}'); pc+=1
PY" in /tmp/codex-6oubwxvx
 succeeded in 0ms:
073f: JUMPDEST
0740: PUSH1 0x01
0742: PUSH1 0xa0
0744: PUSH1 0x02
0746: EXP
0747: SUB
0748: CALLER
0749: DUP2
074a: AND
074b: PUSH1 0x00
074d: DUP2
074e: DUP2
074f: MSTORE
0750: PUSH1 0x03
0752: PUSH1 0x20
0754: SWAP1
0755: DUP2
0756: MSTORE
0757: PUSH1 0x40
0759: DUP1
075a: DUP4
075b: SHA3
075c: DUP1
075d: SLOAD
075e: DUP8
075f: SWAP1
0760: SUB
0761: SWAP1
0762: SSTORE
0763: SWAP4
0764: DUP7
0765: AND
0766: DUP1
0767: DUP4
0768: MSTORE
0769: SWAP2
076a: DUP5
076b: SWAP1
076c: SHA3
076d: DUP1
076e: SLOAD
076f: DUP7
0770: ADD
0771: SWAP1
0772: SSTORE
0773: DUP4
0774: MLOAD
0775: DUP6
0776: DUP2
0777: MSTORE
0778: SWAP4
0779: MLOAD
077a: SWAP2
077b: SWAP4
077c: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
079d: SWAP3
079e: SWAP1
079f: DUP2
07a0: SWAP1
07a1: SUB
07a2: SWAP1
07a3: SWAP2
07a4: ADD
07a5: SWAP1
07a6: LOG3
07a7: POP
07a8: POP
07a9: JUMP
07aa: JUMPDEST
07ab: DUP3
07ac: ADD
07ad: SWAP2
07ae: SWAP1
07af: PUSH1 0x00
07b1: MSTORE
07b2: PUSH1 0x20
07b4: PUSH1 0x00
07b6: SHA3
07b7: SWAP1
07b8: JUMPDEST
07b9: DUP2
07ba: SLOAD
07bb: DUP2
07bc: MSTORE
07bd: SWAP1
07be: PUSH1 0x01

exec
/bin/bash -lc "python - <<'PY'
# continue small tail
bytecode='606060405236156100825760e060020a600035046306fdde03811461008a57806323b872dd146100e8578063313ce5671461011a57806370a082311461012657806395d89b411461013e578063a9059cbb1461019b578063cae9ca51146101ca578063dc3080f21461032e578063dd62ed3e14610353578063e6a5569914610377575b6104b0610002565b6040805160008054602060026001831615610100026000190190921691909104601f81018290048202840182019094528383526104b293908301828280156107d55780601f106107aa576101008083540402835291602001916107d5565b610520600435602435604435600160a060020a0383166000908152600360205260408120548290101561061a57610002565b61053260025460ff1681565b61052060043560036020526000908152604090205481565b60408051600180546020600282841615610100026000190190921691909104601f81018290048202840182019094528383526104b293908301828280156107d55780601f106107aa576101008083540402835291602001916107d5565b6104b0600435602435600160a060020a0333166000908152600360205260409020548190101561071857610002565b604080516020604435600481810135601f810184900484028501840190955284845261052094813594602480359593946064949293910191819084018382808284375094965050505050505060006000836004600050600033600160a060020a03168152602001908152602001600020600050600087600160a060020a031681526020019081526020016000206000508190555084905080600160a060020a0316638f4ffcb1338630876040518560e060020a0281526004018085600160a060020a0316815260200184815260200183600160a060020a03168152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303816000876161da5a03f11561000257505050509392505050565b6005602090815260043560009081526040808220909252602435815220546105209081565b60046020818152903560009081526040808220909252602435815220546105209081565b60408051602060046024803582810135601f81018590048502860185019096528585526104b0958335959394604494939290920191819084018382808284375050604080516020606435808b0135601f81018390048302840183019094528383529799983598976084975091955060249190910193509091508190840183828082843750949650505050505050836000141561041457620f424093505b33600160a060020a031660009081526003602090815260408220869055815485518380527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56360026001841615610100026000190190931692909204601f90810184900483019391929188019083901061054957805160ff19168380011785555b506105799291505b808211156105d2576000815560010161049c565b005b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156105125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051918252519081900360200190f35b6040805160ff929092168252519081900360200190f35b82800160010185558215610494579182015b8281111561049457825182600050559160200191906001019061055b565b50508060016000509080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106105d657805160ff19168380011785555b5061060692915061049c565b5090565b828001600101855582156105c6579182015b828111156105c65782518260005055916020019190600101906105e8565b50506002805460ff19168317905550505050565b600160a060020a038316600090815260036020526040902054808301101561064157610002565b600160a060020a03848116600081815260046020908152604080832033909516808452948252808320549383526005825280832094835293905291909120548301111561068d57610002565b600160a060020a03848116600081815260036020908152604080832080548890039055878516808452818420805489019055938352600582528083203390951680845294825291829020805487019055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a39392505050565b600160a060020a038216600090815260036020526040902054808201101561073f57610002565b600160a060020a03338116600081815260036020908152604080832080548790039055938616808352918490208054860190558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b50505050508156'
ops={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): ops[0x5f+i]=f'PUSH{i}'
for i in range(1,17): ops[0x7f+i]=f'DUP{i}'
for i in range(1,17): ops[0x8f+i]=f'SWAP{i}'
for i in range(0,5): ops[0xa0+i]=f'LOG{i}'
code=bytes.fromhex(bytecode)
start,end=0x7be,0x7e6
pc=start
while pc<end and pc<len(code):
 op=code[pc]; name=ops.get(op,f'OP_{op:02x}')
 if name.startswith('PUSH'):
  n=int(name[4:]); data=code[pc+1:pc+1+n]
  print(f'{pc:04x}: {name} 0x{data.hex()}'); pc+=1+n
 else:
  print(f'{pc:04x}: {name}'); pc+=1
PY" in /tmp/codex-6oubwxvx
 succeeded in 0ms:
07be: PUSH1 0x01
07c0: ADD
07c1: SWAP1
07c2: PUSH1 0x20
07c4: ADD
07c5: DUP1
07c6: DUP4
07c7: GT
07c8: PUSH2 0x07b8
07cb: JUMPI
07cc: DUP3
07cd: SWAP1
07ce: SUB
07cf: PUSH1 0x1f
07d1: AND
07d2: DUP3
07d3: ADD
07d4: SWAP2
07d5: JUMPDEST
07d6: POP
07d7: POP
07d8: POP
07d9: POP
07da: POP
07db: DUP2
07dc: JUMP

exec
/bin/bash -lc "python - <<'PY'
# disassemble 0x377-0x4b5 region
bytecode='606060405236156100825760e060020a600035046306fdde03811461008a57806323b872dd146100e8578063313ce5671461011a57806370a082311461012657806395d89b411461013e578063a9059cbb1461019b578063cae9ca51146101ca578063dc3080f21461032e578063dd62ed3e14610353578063e6a5569914610377575b6104b0610002565b6040805160008054602060026001831615610100026000190190921691909104601f81018290048202840182019094528383526104b293908301828280156107d55780601f106107aa576101008083540402835291602001916107d5565b610520600435602435604435600160a060020a0383166000908152600360205260408120548290101561061a57610002565b61053260025460ff1681565b61052060043560036020526000908152604090205481565b60408051600180546020600282841615610100026000190190921691909104601f81018290048202840182019094528383526104b293908301828280156107d55780601f106107aa576101008083540402835291602001916107d5565b6104b0600435602435600160a060020a0333166000908152600360205260409020548190101561071857610002565b604080516020604435600481810135601f810184900484028501840190955284845261052094813594602480359593946064949293910191819084018382808284375094965050505050505060006000836004600050600033600160a060020a03168152602001908152602001600020600050600087600160a060020a031681526020019081526020016000206000508190555084905080600160a060020a0316638f4ffcb1338630876040518560e060020a0281526004018085600160a060020a0316815260200184815260200183600160a060020a03168152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303816000876161da5a03f11561000257505050509392505050565b6005602090815260043560009081526040808220909252602435815220546105209081565b60046020818152903560009081526040808220909252602435815220546105209081565b60408051602060046024803582810135601f81018590048502860185019096528585526104b0958335959394604494939290920191819084018382808284375050604080516020606435808b0135601f81018390048302840183019094528383529799983598976084975091955060249190910193509091508190840183828082843750949650505050505050836000141561041457620f424093505b33600160a060020a031660009081526003602090815260408220869055815485518380527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56360026001841615610100026000190190931692909204601f90810184900483019391929188019083901061054957805160ff19168380011785555b506105799291505b808211156105d2576000815560010161049c565b005b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156105125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051918252519081900360200190f35b6040805160ff929092168252519081900360200190f35b82800160010185558215610494579182015b8281111561049457825182600050559160200191906001019061055b565b50508060016000509080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106105d657805160ff19168380011785555b5061060692915061049c565b5090565b828001600101855582156105c6579182015b828111156105c65782518260005055916020019190600101906105e8565b50506002805460ff19168317905550505050565b600160a060020a038316600090815260036020526040902054808301101561064157610002565b600160a060020a03848116600081815260046020908152604080832033909516808452948252808320549383526005825280832094835293905291909120548301111561068d57610002565b600160a060020a03848116600081815260036020908152604080832080548890039055878516808452818420805489019055938352600582528083203390951680845294825291829020805487019055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a39392505050565b600160a060020a038216600090815260036020526040902054808201101561073f57610002565b600160a060020a03338116600081815260036020908152604080832080548790039055938616808352918490208054860190558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b50505050508156'
ops={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): ops[0x5f+i]=f'PUSH{i}'
for i in range(1,17): ops[0x7f+i]=f'DUP{i}'
for i in range(1,17): ops[0x8f+i]=f'SWAP{i}'
for i in range(0,5): ops[0xa0+i]=f'LOG{i}'
code=bytes.fromhex(bytecode)
start,end=0x377,0x4b5
pc=start
while pc<end and pc<len(code):
 op=code[pc]; name=ops.get(op,f'OP_{op:02x}')
 if name.startswith('PUSH'):
  n=int(name[4:]); data=code[pc+1:pc+1+n]
  print(f'{pc:04x}: {name} 0x{data.hex()}'); pc+=1+n
 else:
  print(f'{pc:04x}: {name}'); pc+=1
PY" in /tmp/codex-6oubwxvx
 succeeded in 0ms:
0377: JUMPDEST
0378: PUSH1 0x40
037a: DUP1
037b: MLOAD
037c: PUSH1 0x20
037e: PUSH1 0x04
0380: PUSH1 0x24
0382: DUP1
0383: CALLDATALOAD
0384: DUP3
0385: DUP2
0386: ADD
0387: CALLDATALOAD
0388: PUSH1 0x1f
038a: DUP2
038b: ADD
038c: DUP6
038d: SWAP1
038e: DIV
038f: DUP6
0390: MUL
0391: DUP7
0392: ADD
0393: DUP6
0394: ADD
0395: SWAP1
0396: SWAP7
0397: MSTORE
0398: DUP6
0399: DUP6
039a: MSTORE
039b: PUSH2 0x04b0
039e: SWAP6
039f: DUP4
03a0: CALLDATALOAD
03a1: SWAP6
03a2: SWAP4
03a3: SWAP5
03a4: PUSH1 0x44
03a6: SWAP5
03a7: SWAP4
03a8: SWAP3
03a9: SWAP1
03aa: SWAP3
03ab: ADD
03ac: SWAP2
03ad: DUP2
03ae: SWAP1
03af: DUP5
03b0: ADD
03b1: DUP4
03b2: DUP3
03b3: DUP1
03b4: DUP3
03b5: DUP5
03b6: CALLDATACOPY
03b7: POP
03b8: POP
03b9: PUSH1 0x40
03bb: DUP1
03bc: MLOAD
03bd: PUSH1 0x20
03bf: PUSH1 0x64
03c1: CALLDATALOAD
03c2: DUP1
03c3: DUP12
03c4: ADD
03c5: CALLDATALOAD
03c6: PUSH1 0x1f
03c8: DUP2
03c9: ADD
03ca: DUP4
03cb: SWAP1
03cc: DIV
03cd: DUP4
03ce: MUL
03cf: DUP5
03d0: ADD
03d1: DUP4
03d2: ADD
03d3: SWAP1
03d4: SWAP5
03d5: MSTORE
03d6: DUP4
03d7: DUP4
03d8: MSTORE
03d9: SWAP8
03da: SWAP10
03db: SWAP9
03dc: CALLDATALOAD
03dd: SWAP9
03de: SWAP8
03df: PUSH1 0x84
03e1: SWAP8
03e2: POP
03e3: SWAP2
03e4: SWAP6
03e5: POP
03e6: PUSH1 0x24
03e8: SWAP2
03e9: SWAP1
03ea: SWAP2
03eb: ADD
03ec: SWAP4
03ed: POP
03ee: SWAP1
03ef: SWAP2
03f0: POP
03f1: DUP2
03f2: SWAP1
03f3: DUP5
03f4: ADD
03f5: DUP4
03f6: DUP3
03f7: DUP1
03f8: DUP3
03f9: DUP5
03fa: CALLDATACOPY
03fb: POP
03fc: SWAP5
03fd: SWAP7
03fe: POP
03ff: POP
0400: POP
0401: POP
0402: POP
0403: POP
0404: POP
0405: DUP4
0406: PUSH1 0x00
0408: EQ
0409: ISZERO
040a: PUSH2 0x0414
040d: JUMPI
040e: PUSH3 0x0f4240
0412: SWAP4
0413: POP
0414: JUMPDEST
0415: CALLER
0416: PUSH1 0x01
0418: PUSH1 0xa0
041a: PUSH1 0x02
041c: EXP
041d: SUB
041e: AND
041f: PUSH1 0x00
0421: SWAP1
0422: DUP2
0423: MSTORE
0424: PUSH1 0x03
0426: PUSH1 0x20
0428: SWAP1
0429: DUP2
042a: MSTORE
042b: PUSH1 0x40
042d: DUP3
042e: SHA3
042f: DUP7
0430: SWAP1
0431: SSTORE
0432: DUP2
0433: SLOAD
0434: DUP6
0435: MLOAD
0436: DUP4
0437: DUP1
0438: MSTORE
0439: PUSH32 0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563
045a: PUSH1 0x02
045c: PUSH1 0x01
045e: DUP5
045f: AND
0460: ISZERO
0461: PUSH2 0x0100
0464: MUL
0465: PUSH1 0x00
0467: NOT
0468: ADD
0469: SWAP1
046a: SWAP4
046b: AND
046c: SWAP3
046d: SWAP1
046e: SWAP3
046f: DIV
0470: PUSH1 0x1f
0472: SWAP1
0473: DUP2
0474: ADD
0475: DUP5
0476: SWAP1
0477: DIV
0478: DUP4
0479: ADD
047a: SWAP4
047b: SWAP2
047c: SWAP3
047d: SWAP2
047e: DUP9
047f: ADD
0480: SWAP1
0481: DUP4
0482: SWAP1
0483: LT
0484: PUSH2 0x0549
0487: JUMPI
0488: DUP1
0489: MLOAD
048a: PUSH1 0xff
048c: NOT
048d: AND
048e: DUP4
048f: DUP1
0490: ADD
0491: OR
0492: DUP6
0493: SSTORE
0494: JUMPDEST
0495: POP
0496: PUSH2 0x0579
0499: SWAP3
049a: SWAP2
049b: POP
049c: JUMPDEST
049d: DUP1
049e: DUP3
049f: GT
04a0: ISZERO
04a1: PUSH2 0x05d2
04a4: JUMPI
04a5: PUSH1 0x00
04a7: DUP2
04a8: SSTORE
04a9: PUSH1 0x01
04ab: ADD
04ac: PUSH2 0x049c
04af: JUMP
04b0: JUMPDEST
04b1: STOP
04b2: JUMPDEST
04b3: PUSH1 0x40

exec
/bin/bash -lc "rg -n \"e6a55699|cae9ca51|dc3080f2|8f4ffcb1\" /usr /home -g '*.json' -g '*.txt' -g '*.csv' -g '*.md' -g '*.ts' -g '*.js' -g '*.py' 2>/dev/null | head -n 50" in /tmp/codex-6oubwxvx
 succeeded in 1443ms:
codex
{"no_findings":false,"summary":"Bytecode review found one critical issue: a publicly reachable, unguarded selector appears to act like an initializer/mint routine and can overwrite the caller's token balance and token metadata. No proxy/delegatecall path was evidenced.","findings":[{"severity":"critical","category":"auth","title":"Public unguarded initializer-like function can assign caller balance and rewrite token metadata","exploit_scenario":"Best-effort inference from bytecode: selector 0xe6a55699 decodes two dynamic string/bytes arguments plus two fixed values, substitutes a default amount of 1,000,000 when one amount input is zero, then writes directly to the caller's balance mapping at slot base 0x03. The same path also writes token metadata-style storage (the contract's string slots used by name()/symbol() and the low byte of slot 0x02 used by decimals()). Because no owner/once-only guard is visible before these writes, any attacker can call this function after deployment to set their own balance to an arbitrary value (or at least 1,000,000 via the default branch) and alter metadata, then transfer those tokens out.","recommendation":"Treat selector 0xe6a55699 as an exposed constructor/initializer until proven otherwise. Remove or permanently disable it after deployment, or gate it with a strict one-time initialization check plus privileged access control. If the contract is already deployed and immutable, assume token balances/metadata are attacker-controlled and migrate.","evidence":"Dispatcher exposes selector 0xe6a55699. Its path contains no auth checks before state writes. At pc 0x0405-0x0413 it branches to a hardcoded default amount 0x0f4240. At pc 0x0415-0x0431 it computes keccak(msg.sender, 0x03) and SSTOREs the supplied amount into the caller balance slot. The same function then performs string-storage writes rooted at slot 0x00/its data area (pc 0x0432-0x0493) and later writes the low byte of slot 0x02 (pc 0x0609-0x0614), matching the slots read by name()/symbol()/decimals().","locations":["selector:0xe6a55699","pc:0x0405","pc:0x042f","pc:0x0431","pc:0x0609","pc:0x0614"]}]}
tokens used
102,897
Metadata
{
    "codex": {
        "ran_at": "2026-04-05T03:54:54.506067+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 4028,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Bytecode review found one critical issue: a publicly reachable, unguarded selector appears to act like an initializer/mint routine and can overwrite the caller's token balance and token metadata. No proxy/delegatecall path was evidenced.",
    "raw_final": {
        "summary": "Bytecode review found one critical issue: a publicly reachable, unguarded selector appears to act like an initializer/mint routine and can overwrite the caller's token balance and token metadata. No proxy/delegatecall path was evidenced.",
        "findings": [
            {
                "title": "Public unguarded initializer-like function can assign caller balance and rewrite token metadata",
                "category": "auth",
                "evidence": "Dispatcher exposes selector 0xe6a55699. Its path contains no auth checks before state writes. At pc 0x0405-0x0413 it branches to a hardcoded default amount 0x0f4240. At pc 0x0415-0x0431 it computes keccak(msg.sender, 0x03) and SSTOREs the supplied amount into the caller balance slot. The same function then performs string-storage writes rooted at slot 0x00/its data area (pc 0x0432-0x0493) and later writes the low byte of slot 0x02 (pc 0x0609-0x0614), matching the slots read by name()/symbol()/decimals().",
                "severity": "critical",
                "locations": [
                    "selector:0xe6a55699",
                    "pc:0x0405",
                    "pc:0x042f",
                    "pc:0x0431",
                    "pc:0x0609",
                    "pc:0x0614"
                ],
                "recommendation": "Treat selector 0xe6a55699 as an exposed constructor/initializer until proven otherwise. Remove or permanently disable it after deployment, or gate it with a strict one-time initialization check plus privileged access control. If the contract is already deployed and immutable, assume token balances/metadata are attacker-controlled and migrate.",
                "exploit_scenario": "Best-effort inference from bytecode: selector 0xe6a55699 decodes two dynamic string/bytes arguments plus two fixed values, substitutes a default amount of 1,000,000 when one amount input is zero, then writes directly to the caller's balance mapping at slot base 0x03. The same path also writes token metadata-style storage (the contract's string slots used by name()/symbol() and the low byte of slot 0x02 used by decimals()). Because no owner/once-only guard is visible before these writes, any attacker can call this function after deployment to set their own balance to an arbitrary value (or at least 1,000,000 via the default branch) and alter metadata, then transfer those tokens out."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
3
EXT*/BALANCE
0
Total opcodes
1507
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x0082
0000000a: JUMPI
0000000b: PUSH1 0xe0
0000000d: PUSH1 0x02
0000000f: EXP
00000010: PUSH1 0x00
00000012: CALLDATALOAD
00000013: DIV
00000014: PUSH4 0x06fdde03
00000019: DUP2
0000001a: EQ
0000001b: PUSH2 0x008a
0000001e: JUMPI
0000001f: DUP1
00000020: PUSH4 0x23b872dd
00000025: EQ
00000026: PUSH2 0x00e8
00000029: JUMPI
0000002a: DUP1
0000002b: PUSH4 0x313ce567
00000030: EQ
00000031: PUSH2 0x011a
00000034: JUMPI
00000035: DUP1
00000036: PUSH4 0x70a08231
0000003b: EQ
0000003c: PUSH2 0x0126
0000003f: JUMPI
00000040: DUP1
00000041: PUSH4 0x95d89b41
00000046: EQ
00000047: PUSH2 0x013e
0000004a: JUMPI
0000004b: DUP1
0000004c: PUSH4 0xa9059cbb
00000051: EQ
00000052: PUSH2 0x019b
00000055: JUMPI
00000056: DUP1
00000057: PUSH4 0xcae9ca51
0000005c: EQ
0000005d: PUSH2 0x01ca
00000060: JUMPI
00000061: DUP1
00000062: PUSH4 0xdc3080f2
00000067: EQ
00000068: PUSH2 0x032e
0000006b: JUMPI
0000006c: DUP1
0000006d: PUSH4 0xdd62ed3e
00000072: EQ
00000073: PUSH2 0x0353
00000076: JUMPI
00000077: DUP1
00000078: PUSH4 0xe6a55699
0000007d: EQ
0000007e: PUSH2 0x0377
00000081: JUMPI
00000082: JUMPDEST
00000083: PUSH2 0x04b0
00000086: PUSH2 0x0002
00000089: JUMP
0000008a: JUMPDEST
0000008b: PUSH1 0x40
0000008d: DUP1
0000008e: MLOAD
0000008f: PUSH1 0x00
00000091: DUP1
00000092: SLOAD
00000093: PUSH1 0x20
00000095: PUSH1 0x02
00000097: PUSH1 0x01
00000099: DUP4
0000009a: AND
0000009b: ISZERO
0000009c: PUSH2 0x0100
0000009f: MUL
000000a0: PUSH1 0x00
000000a2: NOT
000000a3: ADD
000000a4: SWAP1
000000a5: SWAP3
000000a6: AND
000000a7: SWAP2
000000a8: SWAP1
000000a9: SWAP2
000000aa: DIV
000000ab: PUSH1 0x1f
000000ad: DUP2
000000ae: ADD
000000af: DUP3
000000b0: SWAP1
000000b1: DIV
000000b2: DUP3
000000b3: MUL
000000b4: DUP5
000000b5: ADD
000000b6: DUP3
000000b7: ADD
000000b8: SWAP1
000000b9: SWAP5
000000ba: MSTORE
000000bb: DUP4
000000bc: DUP4
000000bd: MSTORE
000000be: PUSH2 0x04b2
000000c1: SWAP4
000000c2: SWAP1
000000c3: DUP4
000000c4: ADD
000000c5: DUP3
000000c6: DUP3
000000c7: DUP1
000000c8: ISZERO
000000c9: PUSH2 0x07d5
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH1 0x1f
000000d0: LT
000000d1: PUSH2 0x07aa
000000d4: JUMPI
000000d5: PUSH2 0x0100
000000d8: DUP1
000000d9: DUP4
000000da: SLOAD
000000db: DIV
000000dc: MUL
000000dd: DUP4
000000de: MSTORE
000000df: SWAP2
000000e0: PUSH1 0x20
000000e2: ADD
000000e3: SWAP2
000000e4: PUSH2 0x07d5
000000e7: JUMP
000000e8: JUMPDEST
000000e9: PUSH2 0x0520
000000ec: PUSH1 0x04
000000ee: CALLDATALOAD
000000ef: PUSH1 0x24
000000f1: CALLDATALOAD
000000f2: PUSH1 0x44
000000f4: CALLDATALOAD
000000f5: PUSH1 0x01
000000f7: PUSH1 0xa0
000000f9: PUSH1 0x02
000000fb: EXP
000000fc: SUB
000000fd: DUP4
000000fe: AND
000000ff: PUSH1 0x00
00000101: SWAP1
00000102: DUP2
00000103: MSTORE
00000104: PUSH1 0x03
00000106: PUSH1 0x20
00000108: MSTORE
00000109: PUSH1 0x40
0000010b: DUP2
0000010c: KECCAK256
0000010d: SLOAD
0000010e: DUP3
0000010f: SWAP1
00000110: LT
00000111: ISZERO
00000112: PUSH2 0x061a
00000115: JUMPI
00000116: PUSH2 0x0002
00000119: JUMP
0000011a: JUMPDEST
0000011b: PUSH2 0x0532
0000011e: PUSH1 0x02
00000120: SLOAD
00000121: PUSH1 0xff
00000123: AND
00000124: DUP2
00000125: JUMP
00000126: JUMPDEST
00000127: PUSH2 0x0520
0000012a: PUSH1 0x04
0000012c: CALLDATALOAD
0000012d: PUSH1 0x03
0000012f: PUSH1 0x20
00000131: MSTORE
00000132: PUSH1 0x00
00000134: SWAP1
00000135: DUP2
00000136: MSTORE
00000137: PUSH1 0x40
00000139: SWAP1
0000013a: KECCAK256
0000013b: SLOAD
0000013c: DUP2
0000013d: JUMP
0000013e: JUMPDEST
0000013f: PUSH1 0x40
00000141: DUP1
00000142: MLOAD
00000143: PUSH1 0x01
00000145: DUP1
00000146: SLOAD
00000147: PUSH1 0x20
00000149: PUSH1 0x02
0000014b: DUP3
0000014c: DUP5
0000014d: AND
0000014e: ISZERO
0000014f: PUSH2 0x0100
00000152: MUL
00000153: PUSH1 0x00
00000155: NOT
00000156: ADD
00000157: SWAP1
00000158: SWAP3
00000159: AND
0000015a: SWAP2
0000015b: SWAP1
0000015c: SWAP2
0000015d: DIV
0000015e: PUSH1 0x1f
00000160: DUP2
00000161: ADD
00000162: DUP3
00000163: SWAP1
00000164: DIV
00000165: DUP3
00000166: MUL
00000167: DUP5
00000168: ADD
00000169: DUP3
0000016a: ADD
0000016b: SWAP1
0000016c: SWAP5
0000016d: MSTORE
0000016e: DUP4
0000016f: DUP4
00000170: MSTORE
00000171: PUSH2 0x04b2
00000174: SWAP4
00000175: SWAP1
00000176: DUP4
00000177: ADD
00000178: DUP3
00000179: DUP3
0000017a: DUP1
0000017b: ISZERO
0000017c: PUSH2 0x07d5
0000017f: JUMPI
00000180: DUP1
00000181: PUSH1 0x1f
00000183: LT
00000184: PUSH2 0x07aa
00000187: JUMPI
00000188: PUSH2 0x0100
0000018b: DUP1
0000018c: DUP4
0000018d: SLOAD
0000018e: DIV
0000018f: MUL
00000190: DUP4
00000191: MSTORE
00000192: SWAP2
00000193: PUSH1 0x20
00000195: ADD
00000196: SWAP2
00000197: PUSH2 0x07d5
0000019a: JUMP
0000019b: JUMPDEST
0000019c: PUSH2 0x04b0
0000019f: PUSH1 0x04
000001a1: CALLDATALOAD
000001a2: PUSH1 0x24
000001a4: CALLDATALOAD
000001a5: PUSH1 0x01
000001a7: PUSH1 0xa0
000001a9: PUSH1 0x02
000001ab: EXP
000001ac: SUB
000001ad: CALLER
000001ae: AND
000001af: PUSH1 0x00
000001b1: SWAP1
000001b2: DUP2
000001b3: MSTORE
000001b4: PUSH1 0x03
000001b6: PUSH1 0x20
000001b8: MSTORE
000001b9: PUSH1 0x40
000001bb: SWAP1
000001bc: KECCAK256
000001bd: SLOAD
000001be: DUP2
000001bf: SWAP1
000001c0: LT
000001c1: ISZERO
000001c2: PUSH2 0x0718
000001c5: JUMPI
000001c6: PUSH2 0x0002
000001c9: JUMP
000001ca: JUMPDEST
000001cb: PUSH1 0x40
000001cd: DUP1
000001ce: MLOAD
000001cf: PUSH1 0x20
000001d1: PUSH1 0x44
000001d3: CALLDATALOAD
000001d4: PUSH1 0x04
000001d6: DUP2
000001d7: DUP2
000001d8: ADD
000001d9: CALLDATALOAD
000001da: PUSH1 0x1f
000001dc: DUP2
000001dd: ADD
000001de: DUP5
000001df: SWAP1
000001e0: DIV
000001e1: DUP5
000001e2: MUL
000001e3: DUP6
000001e4: ADD
000001e5: DUP5
000001e6: ADD
000001e7: SWAP1
000001e8: SWAP6
000001e9: MSTORE
000001ea: DUP5
000001eb: DUP5
000001ec: MSTORE
000001ed: PUSH2 0x0520
000001f0: SWAP5
000001f1: DUP2
000001f2: CALLDATALOAD
000001f3: SWAP5
000001f4: PUSH1 0x24
000001f6: DUP1
000001f7: CALLDATALOAD
000001f8: SWAP6
000001f9: SWAP4
000001fa: SWAP5
000001fb: PUSH1 0x64
000001fd: SWAP5
000001fe: SWAP3
000001ff: SWAP4
00000200: SWAP2
00000201: ADD
00000202: SWAP2
00000203: DUP2
00000204: SWAP1
00000205: DUP5
00000206: ADD
00000207: DUP4
00000208: DUP3
00000209: DUP1
0000020a: DUP3
0000020b: DUP5
0000020c: CALLDATACOPY
0000020d: POP
0000020e: SWAP5
0000020f: SWAP7
00000210: POP
00000211: POP
00000212: POP
00000213: POP
00000214: POP
00000215: POP
00000216: POP
00000217: PUSH1 0x00
00000219: PUSH1 0x00
0000021b: DUP4
0000021c: PUSH1 0x04
0000021e: PUSH1 0x00
00000220: POP
00000221: PUSH1 0x00
00000223: CALLER
00000224: PUSH1 0x01
00000226: PUSH1 0xa0
00000228: PUSH1 0x02
0000022a: EXP
0000022b: SUB
0000022c: AND
0000022d: DUP2
0000022e: MSTORE
0000022f: PUSH1 0x20
00000231: ADD
00000232: SWAP1
00000233: DUP2
00000234: MSTORE
00000235: PUSH1 0x20
00000237: ADD
00000238: PUSH1 0x00
0000023a: KECCAK256
0000023b: PUSH1 0x00
0000023d: POP
0000023e: PUSH1 0x00
00000240: DUP8
00000241: PUSH1 0x01
00000243: PUSH1 0xa0
00000245: PUSH1 0x02
00000247: EXP
00000248: SUB
00000249: AND
0000024a: DUP2
0000024b: MSTORE
0000024c: PUSH1 0x20
0000024e: ADD
0000024f: SWAP1
00000250: DUP2
00000251: MSTORE
00000252: PUSH1 0x20
00000254: ADD
00000255: PUSH1 0x00
00000257: KECCAK256
00000258: PUSH1 0x00
0000025a: POP
0000025b: DUP2
0000025c: SWAP1
0000025d: SSTORE
0000025e: POP
0000025f: DUP5
00000260: SWAP1
00000261: POP
00000262: DUP1
00000263: PUSH1 0x01
00000265: PUSH1 0xa0
00000267: PUSH1 0x02
00000269: EXP
0000026a: SUB
0000026b: AND
0000026c: PUSH4 0x8f4ffcb1
00000271: CALLER
00000272: DUP7
00000273: ADDRESS
00000274: DUP8
00000275: PUSH1 0x40
00000277: MLOAD
00000278: DUP6
00000279: PUSH1 0xe0
0000027b: PUSH1 0x02
0000027d: EXP
0000027e: MUL
0000027f: DUP2
00000280: MSTORE
00000281: PUSH1 0x04
00000283: ADD
00000284: DUP1
00000285: DUP6
00000286: PUSH1 0x01
00000288: PUSH1 0xa0
0000028a: PUSH1 0x02
0000028c: EXP
0000028d: SUB
0000028e: AND
0000028f: DUP2
00000290: MSTORE
00000291: PUSH1 0x20
00000293: ADD
00000294: DUP5
00000295: DUP2
00000296: MSTORE
00000297: PUSH1 0x20
00000299: ADD
0000029a: DUP4
0000029b: PUSH1 0x01
0000029d: PUSH1 0xa0
0000029f: PUSH1 0x02
000002a1: EXP
000002a2: SUB
000002a3: AND
000002a4: DUP2
000002a5: MSTORE
000002a6: PUSH1 0x20
000002a8: ADD
000002a9: DUP1
000002aa: PUSH1 0x20
000002ac: ADD
000002ad: DUP3
000002ae: DUP2
000002af: SUB
000002b0: DUP3
000002b1: MSTORE
000002b2: DUP4
000002b3: DUP2
000002b4: DUP2
000002b5: MLOAD
000002b6: DUP2
000002b7: MSTORE
000002b8: PUSH1 0x20
000002ba: ADD
000002bb: SWAP2
000002bc: POP
000002bd: DUP1
000002be: MLOAD
000002bf: SWAP1
000002c0: PUSH1 0x20
000002c2: ADD
000002c3: SWAP1
000002c4: DUP1
000002c5: DUP4
000002c6: DUP4
000002c7: DUP3
000002c8: SWAP1
000002c9: PUSH1 0x00
000002cb: PUSH1 0x04
000002cd: PUSH1 0x20
000002cf: DUP5
000002d0: PUSH1 0x1f
000002d2: ADD
000002d3: DIV
000002d4: PUSH1 0x0f
000002d6: MUL
000002d7: PUSH1 0x03
000002d9: ADD
000002da: CALL
000002db: POP
000002dc: SWAP1
000002dd: POP
000002de: SWAP1
000002df: DUP2
000002e0: ADD
000002e1: SWAP1
000002e2: PUSH1 0x1f
000002e4: AND
000002e5: DUP1
000002e6: ISZERO
000002e7: PUSH2 0x0304
000002ea: JUMPI
000002eb: DUP1
000002ec: DUP3
000002ed: SUB
000002ee: DUP1
000002ef: MLOAD
000002f0: PUSH1 0x01
000002f2: DUP4
000002f3: PUSH1 0x20
000002f5: SUB
000002f6: PUSH2 0x0100
000002f9: EXP
000002fa: SUB
000002fb: NOT
000002fc: AND
000002fd: DUP2
000002fe: MSTORE
000002ff: PUSH1 0x20
00000301: ADD
00000302: SWAP2
00000303: POP
00000304: JUMPDEST
00000305: POP
00000306: SWAP6
00000307: POP
00000308: POP
00000309: POP
0000030a: POP
0000030b: POP
0000030c: POP
0000030d: PUSH1 0x00
0000030f: PUSH1 0x40
00000311: MLOAD
00000312: DUP1
00000313: DUP4
00000314: SUB
00000315: DUP2
00000316: PUSH1 0x00
00000318: DUP8
00000319: PUSH2 0x61da
0000031c: GAS
0000031d: SUB
0000031e: CALL
0000031f: ISZERO
00000320: PUSH2 0x0002
00000323: JUMPI
00000324: POP
00000325: POP
00000326: POP
00000327: POP
00000328: SWAP4
00000329: SWAP3
0000032a: POP
0000032b: POP
0000032c: POP
0000032d: JUMP
0000032e: JUMPDEST
0000032f: PUSH1 0x05
00000331: PUSH1 0x20
00000333: SWAP1
00000334: DUP2
00000335: MSTORE
00000336: PUSH1 0x04
00000338: CALLDATALOAD
00000339: PUSH1 0x00
0000033b: SWAP1
0000033c: DUP2
0000033d: MSTORE
0000033e: PUSH1 0x40
00000340: DUP1
00000341: DUP3
00000342: KECCAK256
00000343: SWAP1
00000344: SWAP3
00000345: MSTORE
00000346: PUSH1 0x24
00000348: CALLDATALOAD
00000349: DUP2
0000034a: MSTORE
0000034b: KECCAK256
0000034c: SLOAD
0000034d: PUSH2 0x0520
00000350: SWAP1
00000351: DUP2
00000352: JUMP
00000353: JUMPDEST
00000354: PUSH1 0x04
00000356: PUSH1 0x20
00000358: DUP2
00000359: DUP2
0000035a: MSTORE
0000035b: SWAP1
0000035c: CALLDATALOAD
0000035d: PUSH1 0x00
0000035f: SWAP1
00000360: DUP2
00000361: MSTORE
00000362: PUSH1 0x40
00000364: DUP1
00000365: DUP3
00000366: KECCAK256
00000367: SWAP1
00000368: SWAP3
00000369: MSTORE
0000036a: PUSH1 0x24
0000036c: CALLDATALOAD
0000036d: DUP2
0000036e: MSTORE
0000036f: KECCAK256
00000370: SLOAD
00000371: PUSH2 0x0520
00000374: SWAP1
00000375: DUP2
00000376: JUMP
00000377: JUMPDEST
00000378: PUSH1 0x40
0000037a: DUP1
0000037b: MLOAD
0000037c: PUSH1 0x20
0000037e: PUSH1 0x04
00000380: PUSH1 0x24
00000382: DUP1
00000383: CALLDATALOAD
00000384: DUP3
00000385: DUP2
00000386: ADD
00000387: CALLDATALOAD
00000388: PUSH1 0x1f
0000038a: DUP2
0000038b: ADD
0000038c: DUP6
0000038d: SWAP1
0000038e: DIV
0000038f: DUP6
00000390: MUL
00000391: DUP7
00000392: ADD
00000393: DUP6
00000394: ADD
00000395: SWAP1
00000396: SWAP7
00000397: MSTORE
00000398: DUP6
00000399: DUP6
0000039a: MSTORE
0000039b: PUSH2 0x04b0
0000039e: SWAP6
0000039f: DUP4
000003a0: CALLDATALOAD
000003a1: SWAP6
000003a2: SWAP4
000003a3: SWAP5
000003a4: PUSH1 0x44
000003a6: SWAP5
000003a7: SWAP4
000003a8: SWAP3
000003a9: SWAP1
000003aa: SWAP3
000003ab: ADD
000003ac: SWAP2
000003ad: DUP2
000003ae: SWAP1
000003af: DUP5
000003b0: ADD
000003b1: DUP4
000003b2: DUP3
000003b3: DUP1
000003b4: DUP3
000003b5: DUP5
000003b6: CALLDATACOPY
000003b7: POP
000003b8: POP
000003b9: PUSH1 0x40
000003bb: DUP1
000003bc: MLOAD
000003bd: PUSH1 0x20
000003bf: PUSH1 0x64
000003c1: CALLDATALOAD
000003c2: DUP1
000003c3: DUP12
000003c4: ADD
000003c5: CALLDATALOAD
000003c6: PUSH1 0x1f
000003c8: DUP2
000003c9: ADD
000003ca: DUP4
000003cb: SWAP1
000003cc: DIV
000003cd: DUP4
000003ce: MUL
000003cf: DUP5
000003d0: ADD
000003d1: DUP4
000003d2: ADD
000003d3: SWAP1
000003d4: SWAP5
000003d5: MSTORE
000003d6: DUP4
000003d7: DUP4
000003d8: MSTORE
000003d9: SWAP8
000003da: SWAP10
000003db: SWAP9
000003dc: CALLDATALOAD
000003dd: SWAP9
000003de: SWAP8
000003df: PUSH1 0x84
000003e1: SWAP8
000003e2: POP
000003e3: SWAP2
000003e4: SWAP6
000003e5: POP
000003e6: PUSH1 0x24
000003e8: SWAP2
000003e9: SWAP1
000003ea: SWAP2
000003eb: ADD
000003ec: SWAP4
000003ed: POP
000003ee: SWAP1
000003ef: SWAP2
000003f0: POP
000003f1: DUP2
000003f2: SWAP1
000003f3: DUP5
000003f4: ADD
000003f5: DUP4
000003f6: DUP3
000003f7: DUP1
000003f8: DUP3
000003f9: DUP5
000003fa: CALLDATACOPY
000003fb: POP
000003fc: SWAP5
000003fd: SWAP7
000003fe: POP
000003ff: POP
00000400: POP
00000401: POP
00000402: POP
00000403: POP
00000404: POP
00000405: DUP4
00000406: PUSH1 0x00
00000408: EQ
00000409: ISZERO
0000040a: PUSH2 0x0414
0000040d: JUMPI
0000040e: PUSH3 0x0f4240
00000412: SWAP4
00000413: POP
00000414: JUMPDEST
00000415: CALLER
00000416: PUSH1 0x01
00000418: PUSH1 0xa0
0000041a: PUSH1 0x02
0000041c: EXP
0000041d: SUB
0000041e: AND
0000041f: PUSH1 0x00
00000421: SWAP1
00000422: DUP2
00000423: MSTORE
00000424: PUSH1 0x03
00000426: PUSH1 0x20
00000428: SWAP1
00000429: DUP2
0000042a: MSTORE
0000042b: PUSH1 0x40
0000042d: DUP3
0000042e: KECCAK256
0000042f: DUP7
00000430: SWAP1
00000431: SSTORE
00000432: DUP2
00000433: SLOAD
00000434: DUP6
00000435: MLOAD
00000436: DUP4
00000437: DUP1
00000438: MSTORE
00000439: PUSH32 0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563
0000045a: PUSH1 0x02
0000045c: PUSH1 0x01
0000045e: DUP5
0000045f: AND
00000460: ISZERO
00000461: PUSH2 0x0100
00000464: MUL
00000465: PUSH1 0x00
00000467: NOT
00000468: ADD
00000469: SWAP1
0000046a: SWAP4
0000046b: AND
0000046c: SWAP3
0000046d: SWAP1
0000046e: SWAP3
0000046f: DIV
00000470: PUSH1 0x1f
00000472: SWAP1
00000473: DUP2
00000474: ADD
00000475: DUP5
00000476: SWAP1
00000477: DIV
00000478: DUP4
00000479: ADD
0000047a: SWAP4
0000047b: SWAP2
0000047c: SWAP3
0000047d: SWAP2
0000047e: DUP9
0000047f: ADD
00000480: SWAP1
00000481: DUP4
00000482: SWAP1
00000483: LT
00000484: PUSH2 0x0549
00000487: JUMPI
00000488: DUP1
00000489: MLOAD
0000048a: PUSH1 0xff
0000048c: NOT
0000048d: AND
0000048e: DUP4
0000048f: DUP1
00000490: ADD
00000491: OR
00000492: DUP6
00000493: SSTORE
00000494: JUMPDEST
00000495: POP
00000496: PUSH2 0x0579
00000499: SWAP3
0000049a: SWAP2
0000049b: POP
0000049c: JUMPDEST
0000049d: DUP1
0000049e: DUP3
0000049f: GT
000004a0: ISZERO
000004a1: PUSH2 0x05d2
000004a4: JUMPI
000004a5: PUSH1 0x00
000004a7: DUP2
000004a8: SSTORE
000004a9: PUSH1 0x01
000004ab: ADD
000004ac: PUSH2 0x049c
000004af: JUMP
000004b0: JUMPDEST
000004b1: STOP
000004b2: JUMPDEST
000004b3: PUSH1 0x40
000004b5: MLOAD
000004b6: DUP1
000004b7: DUP1
000004b8: PUSH1 0x20
000004ba: ADD
000004bb: DUP3
000004bc: DUP2
000004bd: SUB
000004be: DUP3
000004bf: MSTORE
000004c0: DUP4
000004c1: DUP2
000004c2: DUP2
000004c3: MLOAD
000004c4: DUP2
000004c5: MSTORE
000004c6: PUSH1 0x20
000004c8: ADD
000004c9: SWAP2
000004ca: POP
000004cb: DUP1
000004cc: MLOAD
000004cd: SWAP1
000004ce: PUSH1 0x20
000004d0: ADD
000004d1: SWAP1
000004d2: DUP1
000004d3: DUP4
000004d4: DUP4
000004d5: DUP3
000004d6: SWAP1
000004d7: PUSH1 0x00
000004d9: PUSH1 0x04
000004db: PUSH1 0x20
000004dd: DUP5
000004de: PUSH1 0x1f
000004e0: ADD
000004e1: DIV
000004e2: PUSH1 0x0f
000004e4: MUL
000004e5: PUSH1 0x03
000004e7: ADD
000004e8: CALL
000004e9: POP
000004ea: SWAP1
000004eb: POP
000004ec: SWAP1
000004ed: DUP2
000004ee: ADD
000004ef: SWAP1
000004f0: PUSH1 0x1f
000004f2: AND
000004f3: DUP1
000004f4: ISZERO
000004f5: PUSH2 0x0512
000004f8: JUMPI
000004f9: DUP1
000004fa: DUP3
000004fb: SUB
000004fc: DUP1
000004fd: MLOAD
000004fe: PUSH1 0x01
00000500: DUP4
00000501: PUSH1 0x20
00000503: SUB
00000504: PUSH2 0x0100
00000507: EXP
00000508: SUB
00000509: NOT
0000050a: AND
0000050b: DUP2
0000050c: MSTORE
0000050d: PUSH1 0x20
0000050f: ADD
00000510: SWAP2
00000511: POP
00000512: JUMPDEST
00000513: POP
00000514: SWAP3
00000515: POP
00000516: POP
00000517: POP
00000518: PUSH1 0x40
0000051a: MLOAD
0000051b: DUP1
0000051c: SWAP2
0000051d: SUB
0000051e: SWAP1
0000051f: RETURN
00000520: JUMPDEST
00000521: PUSH1 0x40
00000523: DUP1
00000524: MLOAD
00000525: SWAP2
00000526: DUP3
00000527: MSTORE
00000528: MLOAD
00000529: SWAP1
0000052a: DUP2
0000052b: SWAP1
0000052c: SUB
0000052d: PUSH1 0x20
0000052f: ADD
00000530: SWAP1
00000531: RETURN
00000532: JUMPDEST
00000533: PUSH1 0x40
00000535: DUP1
00000536: MLOAD
00000537: PUSH1 0xff
00000539: SWAP3
0000053a: SWAP1
0000053b: SWAP3
0000053c: AND
0000053d: DUP3
0000053e: MSTORE
0000053f: MLOAD
00000540: SWAP1
00000541: DUP2
00000542: SWAP1
00000543: SUB
00000544: PUSH1 0x20
00000546: ADD
00000547: SWAP1
00000548: RETURN
00000549: JUMPDEST
0000054a: DUP3
0000054b: DUP1
0000054c: ADD
0000054d: PUSH1 0x01
0000054f: ADD
00000550: DUP6
00000551: SSTORE
00000552: DUP3
00000553: ISZERO
00000554: PUSH2 0x0494
00000557: JUMPI
00000558: SWAP2
00000559: DUP3
0000055a: ADD
0000055b: JUMPDEST
0000055c: DUP3
0000055d: DUP2
0000055e: GT
0000055f: ISZERO
00000560: PUSH2 0x0494
00000563: JUMPI
00000564: DUP3
00000565: MLOAD
00000566: DUP3
00000567: PUSH1 0x00
00000569: POP
0000056a: SSTORE
0000056b: SWAP2
0000056c: PUSH1 0x20
0000056e: ADD
0000056f: SWAP2
00000570: SWAP1
00000571: PUSH1 0x01
00000573: ADD
00000574: SWAP1
00000575: PUSH2 0x055b
00000578: JUMP
00000579: JUMPDEST
0000057a: POP
0000057b: POP
0000057c: DUP1
0000057d: PUSH1 0x01
0000057f: PUSH1 0x00
00000581: POP
00000582: SWAP1
00000583: DUP1
00000584: MLOAD
00000585: SWAP1
00000586: PUSH1 0x20
00000588: ADD
00000589: SWAP1
0000058a: DUP3
0000058b: DUP1
0000058c: SLOAD
0000058d: PUSH1 0x01
0000058f: DUP2
00000590: PUSH1 0x01
00000592: AND
00000593: ISZERO
00000594: PUSH2 0x0100
00000597: MUL
00000598: SUB
00000599: AND
0000059a: PUSH1 0x02
0000059c: SWAP1
0000059d: DIV
0000059e: SWAP1
0000059f: PUSH1 0x00
000005a1: MSTORE
000005a2: PUSH1 0x20
000005a4: PUSH1 0x00
000005a6: KECCAK256
000005a7: SWAP1
000005a8: PUSH1 0x1f
000005aa: ADD
000005ab: PUSH1 0x20
000005ad: SWAP1
000005ae: DIV
000005af: DUP2
000005b0: ADD
000005b1: SWAP3
000005b2: DUP3
000005b3: PUSH1 0x1f
000005b5: LT
000005b6: PUSH2 0x05d6
000005b9: JUMPI
000005ba: DUP1
000005bb: MLOAD
000005bc: PUSH1 0xff
000005be: NOT
000005bf: AND
000005c0: DUP4
000005c1: DUP1
000005c2: ADD
000005c3: OR
000005c4: DUP6
000005c5: SSTORE
000005c6: JUMPDEST
000005c7: POP
000005c8: PUSH2 0x0606
000005cb: SWAP3
000005cc: SWAP2
000005cd: POP
000005ce: PUSH2 0x049c
000005d1: JUMP
000005d2: JUMPDEST
000005d3: POP
000005d4: SWAP1
000005d5: JUMP
000005d6: JUMPDEST
000005d7: DUP3
000005d8: DUP1
000005d9: ADD
000005da: PUSH1 0x01
000005dc: ADD
000005dd: DUP6
000005de: SSTORE
000005df: DUP3
000005e0: ISZERO
000005e1: PUSH2 0x05c6
000005e4: JUMPI
000005e5: SWAP2
000005e6: DUP3
000005e7: ADD
000005e8: JUMPDEST
000005e9: DUP3
000005ea: DUP2
000005eb: GT
000005ec: ISZERO
000005ed: PUSH2 0x05c6
000005f0: JUMPI
000005f1: DUP3
000005f2: MLOAD
000005f3: DUP3
000005f4: PUSH1 0x00
000005f6: POP
000005f7: SSTORE
000005f8: SWAP2
000005f9: PUSH1 0x20
000005fb: ADD
000005fc: SWAP2
000005fd: SWAP1
000005fe: PUSH1 0x01
00000600: ADD
00000601: SWAP1
00000602: PUSH2 0x05e8
00000605: JUMP
00000606: JUMPDEST
00000607: POP
00000608: POP
00000609: PUSH1 0x02
0000060b: DUP1
0000060c: SLOAD
0000060d: PUSH1 0xff
0000060f: NOT
00000610: AND
00000611: DUP4
00000612: OR
00000613: SWAP1
00000614: SSTORE
00000615: POP
00000616: POP
00000617: POP
00000618: POP
00000619: JUMP
0000061a: JUMPDEST
0000061b: PUSH1 0x01
0000061d: PUSH1 0xa0
0000061f: PUSH1 0x02
00000621: EXP
00000622: SUB
00000623: DUP4
00000624: AND
00000625: PUSH1 0x00
00000627: SWAP1
00000628: DUP2
00000629: MSTORE
0000062a: PUSH1 0x03
0000062c: PUSH1 0x20
0000062e: MSTORE
0000062f: PUSH1 0x40
00000631: SWAP1
00000632: KECCAK256
00000633: SLOAD
00000634: DUP1
00000635: DUP4
00000636: ADD
00000637: LT
00000638: ISZERO
00000639: PUSH2 0x0641
0000063c: JUMPI
0000063d: PUSH2 0x0002
00000640: JUMP
00000641: JUMPDEST
00000642: PUSH1 0x01
00000644: PUSH1 0xa0
00000646: PUSH1 0x02
00000648: EXP
00000649: SUB
0000064a: DUP5
0000064b: DUP2
0000064c: AND
0000064d: PUSH1 0x00
0000064f: DUP2
00000650: DUP2
00000651: MSTORE
00000652: PUSH1 0x04
00000654: PUSH1 0x20
00000656: SWAP1
00000657: DUP2
00000658: MSTORE
00000659: PUSH1 0x40
0000065b: DUP1
0000065c: DUP4
0000065d: KECCAK256
0000065e: CALLER
0000065f: SWAP1
00000660: SWAP6
00000661: AND
00000662: DUP1
00000663: DUP5
00000664: MSTORE
00000665: SWAP5
00000666: DUP3
00000667: MSTORE
00000668: DUP1
00000669: DUP4
0000066a: KECCAK256
0000066b: SLOAD
0000066c: SWAP4
0000066d: DUP4
0000066e: MSTORE
0000066f: PUSH1 0x05
00000671: DUP3
00000672: MSTORE
00000673: DUP1
00000674: DUP4
00000675: KECCAK256
00000676: SWAP5
00000677: DUP4
00000678: MSTORE
00000679: SWAP4
0000067a: SWAP1
0000067b: MSTORE
0000067c: SWAP2
0000067d: SWAP1
0000067e: SWAP2
0000067f: KECCAK256
00000680: SLOAD
00000681: DUP4
00000682: ADD
00000683: GT
00000684: ISZERO
00000685: PUSH2 0x068d
00000688: JUMPI
00000689: PUSH2 0x0002
0000068c: JUMP
0000068d: JUMPDEST
0000068e: PUSH1 0x01
00000690: PUSH1 0xa0
00000692: PUSH1 0x02
00000694: EXP
00000695: SUB
00000696: DUP5
00000697: DUP2
00000698: AND
00000699: PUSH1 0x00
0000069b: DUP2
0000069c: DUP2
0000069d: MSTORE
0000069e: PUSH1 0x03
000006a0: PUSH1 0x20
000006a2: SWAP1
000006a3: DUP2
000006a4: MSTORE
000006a5: PUSH1 0x40
000006a7: DUP1
000006a8: DUP4
000006a9: KECCAK256
000006aa: DUP1
000006ab: SLOAD
000006ac: DUP9
000006ad: SWAP1
000006ae: SUB
000006af: SWAP1
000006b0: SSTORE
000006b1: DUP8
000006b2: DUP6
000006b3: AND
000006b4: DUP1
000006b5: DUP5
000006b6: MSTORE
000006b7: DUP2
000006b8: DUP5
000006b9: KECCAK256
000006ba: DUP1
000006bb: SLOAD
000006bc: DUP10
000006bd: ADD
000006be: SWAP1
000006bf: SSTORE
000006c0: SWAP4
000006c1: DUP4
000006c2: MSTORE
000006c3: PUSH1 0x05
000006c5: DUP3
000006c6: MSTORE
000006c7: DUP1
000006c8: DUP4
000006c9: KECCAK256
000006ca: CALLER
000006cb: SWAP1
000006cc: SWAP6
000006cd: AND
000006ce: DUP1
000006cf: DUP5
000006d0: MSTORE
000006d1: SWAP5
000006d2: DUP3
000006d3: MSTORE
000006d4: SWAP2
000006d5: DUP3
000006d6: SWAP1
000006d7: KECCAK256
000006d8: DUP1
000006d9: SLOAD
000006da: DUP8
000006db: ADD
000006dc: SWAP1
000006dd: SSTORE
000006de: DUP2
000006df: MLOAD
000006e0: DUP7
000006e1: DUP2
000006e2: MSTORE
000006e3: SWAP2
000006e4: MLOAD
000006e5: SWAP3
000006e6: SWAP4
000006e7: SWAP3
000006e8: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00000709: SWAP3
0000070a: DUP2
0000070b: SWAP1
0000070c: SUB
0000070d: SWAP1
0000070e: SWAP2
0000070f: ADD
00000710: SWAP1
00000711: LOG3
00000712: SWAP4
00000713: SWAP3
00000714: POP
00000715: POP
00000716: POP
00000717: JUMP
00000718: JUMPDEST
00000719: PUSH1 0x01
0000071b: PUSH1 0xa0
0000071d: PUSH1 0x02
0000071f: EXP
00000720: SUB
00000721: DUP3
00000722: AND
00000723: PUSH1 0x00
00000725: SWAP1
00000726: DUP2
00000727: MSTORE
00000728: PUSH1 0x03
0000072a: PUSH1 0x20
0000072c: MSTORE
0000072d: PUSH1 0x40
0000072f: SWAP1
00000730: KECCAK256
00000731: SLOAD
00000732: DUP1
00000733: DUP3
00000734: ADD
00000735: LT
00000736: ISZERO
00000737: PUSH2 0x073f
0000073a: JUMPI
0000073b: PUSH2 0x0002
0000073e: JUMP
0000073f: JUMPDEST
00000740: PUSH1 0x01
00000742: PUSH1 0xa0
00000744: PUSH1 0x02
00000746: EXP
00000747: SUB
00000748: CALLER
00000749: DUP2
0000074a: AND
0000074b: PUSH1 0x00
0000074d: DUP2
0000074e: DUP2
0000074f: MSTORE
00000750: PUSH1 0x03
00000752: PUSH1 0x20
00000754: SWAP1
00000755: DUP2
00000756: MSTORE
00000757: PUSH1 0x40
00000759: DUP1
0000075a: DUP4
0000075b: KECCAK256
0000075c: DUP1
0000075d: SLOAD
0000075e: DUP8
0000075f: SWAP1
00000760: SUB
00000761: SWAP1
00000762: SSTORE
00000763: SWAP4
00000764: DUP7
00000765: AND
00000766: DUP1
00000767: DUP4
00000768: MSTORE
00000769: SWAP2
0000076a: DUP5
0000076b: SWAP1
0000076c: KECCAK256
0000076d: DUP1
0000076e: SLOAD
0000076f: DUP7
00000770: ADD
00000771: SWAP1
00000772: SSTORE
00000773: DUP4
00000774: MLOAD
00000775: DUP6
00000776: DUP2
00000777: MSTORE
00000778: SWAP4
00000779: MLOAD
0000077a: SWAP2
0000077b: SWAP4
0000077c: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
0000079d: SWAP3
0000079e: SWAP1
0000079f: DUP2
000007a0: SWAP1
000007a1: SUB
000007a2: SWAP1
000007a3: SWAP2
000007a4: ADD
000007a5: SWAP1
000007a6: LOG3
000007a7: POP
000007a8: POP
000007a9: JUMP
000007aa: JUMPDEST
000007ab: DUP3
000007ac: ADD
000007ad: SWAP2
000007ae: SWAP1
000007af: PUSH1 0x00
000007b1: MSTORE
000007b2: PUSH1 0x20
000007b4: PUSH1 0x00
000007b6: KECCAK256
000007b7: SWAP1
000007b8: JUMPDEST
000007b9: DUP2
000007ba: SLOAD
000007bb: DUP2
000007bc: MSTORE
000007bd: SWAP1
000007be: PUSH1 0x01
000007c0: ADD
000007c1: SWAP1
000007c2: PUSH1 0x20
000007c4: ADD
000007c5: DUP1
000007c6: DUP4
000007c7: GT
000007c8: PUSH2 0x07b8
000007cb: JUMPI
000007cc: DUP3
000007cd: SWAP1
000007ce: SUB
000007cf: PUSH1 0x1f
000007d1: AND
000007d2: DUP3
000007d3: ADD
000007d4: SWAP2
000007d5: JUMPDEST
000007d6: POP
000007d7: POP
000007d8: POP
000007d9: POP
000007da: POP
000007db: DUP2
000007dc: JUMP
View stderr
Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment.

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical auth codex Public unguarded initializer-like function can assign caller balance and rewrite token metadata 90 no
view
evidence_json
{
    "evidence": "Dispatcher exposes selector 0xe6a55699. Its path contains no auth checks before state writes. At pc 0x0405-0x0413 it branches to a hardcoded default amount 0x0f4240. At pc 0x0415-0x0431 it computes keccak(msg.sender, 0x03) and SSTOREs the supplied amount into the caller balance slot. The same function then performs string-storage writes rooted at slot 0x00/its data area (pc 0x0432-0x0493) and later writes the low byte of slot 0x02 (pc 0x0609-0x0614), matching the slots read by name()/symbol()/decimals().",
    "locations": [
        "selector:0xe6a55699",
        "pc:0x0405",
        "pc:0x042f",
        "pc:0x0431",
        "pc:0x0609",
        "pc:0x0614"
    ],
    "recommendation": "Treat selector 0xe6a55699 as an exposed constructor/initializer until proven otherwise. Remove or permanently disable it after deployment, or gate it with a strict one-time initialization check plus privileged access control. If the contract is already deployed and immutable, assume token balances/metadata are attacker-controlled and migrate.",
    "exploit_scenario": "Best-effort inference from bytecode: selector 0xe6a55699 decodes two dynamic string/bytes arguments plus two fixed values, substitutes a default amount of 1,000,000 when one amount input is zero, then writes directly to the caller's balance mapping at slot base 0x03. The same path also writes token metadata-style storage (the contract's string slots used by name()/symbol() and the low byte of slot 0x02 used by decimals()). Because no owner/once-only guard is visible before these writes, any attacker can call this function after deployment to set their own balance to an arbitrary value (or at least 1,000,000 via the default branch) and alter metadata, then transfer those tokens out."
}
high other detector Untrusted CALL target/value reachable 60 yes yes
view
trace_id: 0xa9d677aa6509ece2fd226c7db29b18b9c179b96b8e0ead3a3912327c1670adbb
call_targets: 0x0000000000000000000000000000000000000004, 0xd7e021cd9096cc0ca642828c1045eb10c6b1ff2e
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0xa9d677aa6509ece2fd226c7db29b18b9c179b96b8e0ead3a3912327c1670adbb",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000004",
        "0xd7e021cd9096cc0ca642828c1045eb10c6b1ff2e"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23b872dd",
            "selector": "0x23b872dd",
            "calldata_variants": [
                "0x23b872dd",
                "0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x313ce567",
            "selector": "0x313ce567",
            "calldata_variants": [
                "0x313ce567",
                "0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x95d89b41",
            "selector": "0x95d89b41",
            "calldata_variants": [
                "0x95d89b41",
                "0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa9059cbb",
            "selector": "0xa9059cbb",
            "calldata_variants": [
                "0xa9059cbb",
                "0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcae9ca51",
            "selector": "0xcae9ca51",
            "calldata_variants": [
                "0xcae9ca51",
                "0xcae9ca510000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdc3080f2",
            "selector": "0xdc3080f2",
            "calldata_variants": [
                "0xdc3080f2",
                "0xdc3080f20000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 730,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 798,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1256,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [],
    "untrusted_call_count": 3
}
high other detector ETH value transfer possible 55 yes yes
view
trace_id: 0xa9d677aa6509ece2fd226c7db29b18b9c179b96b8e0ead3a3912327c1670adbb
call_targets: 0x0000000000000000000000000000000000000004, 0xd7e021cd9096cc0ca642828c1045eb10c6b1ff2e
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0xa9d677aa6509ece2fd226c7db29b18b9c179b96b8e0ead3a3912327c1670adbb",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000004",
        "0xd7e021cd9096cc0ca642828c1045eb10c6b1ff2e"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23b872dd",
            "selector": "0x23b872dd",
            "calldata_variants": [
                "0x23b872dd",
                "0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x313ce567",
            "selector": "0x313ce567",
            "calldata_variants": [
                "0x313ce567",
                "0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x95d89b41",
            "selector": "0x95d89b41",
            "calldata_variants": [
                "0x95d89b41",
                "0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa9059cbb",
            "selector": "0xa9059cbb",
            "calldata_variants": [
                "0xa9059cbb",
                "0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcae9ca51",
            "selector": "0xcae9ca51",
            "calldata_variants": [
                "0xcae9ca51",
                "0xcae9ca510000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdc3080f2",
            "selector": "0xdc3080f2",
            "calldata_variants": [
                "0xdc3080f2",
                "0xdc3080f20000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 730,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 798,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1256,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": []
}