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

Analysis Run

019c0ea9-0945-71ab-a38f-8eb14a6f4179

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

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
42033 artifact.fetch complete 1 / 3 2 months ago
42034 proxy.resolve complete 1 / 3 2 months ago
42035 tool.cast_disasm complete 1 / 3 2 months ago
42036 analysis.bundle complete 1 / 3 2 months ago
42037 capability.graph complete 1 / 3 2 months ago
42038 detector.run complete 1 / 3 2 months ago
42039 validation.fork complete 1 / 3 2 months ago
42421 report.consolidate complete 1 / 6 2 months ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Bytecode shows two CALL sites (pc:0x5ca, pc:0xd5c) with computed targets/values and no explicit returndata checks; no delegatecall/proxy patterns detected. Access control heuristics indicate msg.sender is compared against a constant 0xffff… at multiple guard PCs, but this is uncertain from bytecode alone.
View stdout
{"no_findings":false,"summary":"Bytecode shows two CALL sites (pc:0x5ca, pc:0xd5c) with computed targets/values and no explicit returndata checks; no delegatecall/proxy patterns detected. Access control heuristics indicate msg.sender is compared against a constant 0xffff… at multiple guard PCs, but this is uncertain from bytecode alone.","findings":[{"severity":"medium","category":"other","title":"External CALL with computed target/value and unchecked return","exploit_scenario":"If any public entrypoint allows user-controlled call target or ETH value for these CALL sites, an attacker could trigger arbitrary external calls or ETH transfers (and potentially reentrancy) to drain funds or manipulate state. Validation data suggests the target may be constant (possibly self-call), so impact depends on actual reachability and control over arguments.","recommendation":"Confirm whether the CALL target/value can be influenced by untrusted callers. If so, restrict to an allowlist or enforce strict access control, and check/bubble up call return data. Consider reentrancy protections around external calls.","evidence":"Detector flagged 2 CALL sites with computed targets/values and returndata_checked = null; validation did not confirm variable targets and observed the contract’s own address as a target candidate.","locations":["pc:0x5ca","pc:0xd5c"]},{"severity":"low","category":"access_control","title":"Authorization guard compares msg.sender to constant 0xffff… (possible hardcoded admin/lockout)","exploit_scenario":"If the guard truly compares msg.sender to 0xffff… then privileged functions may be permanently inaccessible or controlled by an unexpected hardcoded address. This could affect admin actions (e.g., ownership transfer selector 0xf2fde38b) and operational controls.","recommendation":"Verify whether access control is intended to be hardcoded. Prefer storage-based ownership with proper initialization and the ability to rotate the admin. If this is a heuristic artifact, confirm the real owner/role checks in source or with more precise analysis.","evidence":"Auth heuristics report msg_sender_eq_const at pcs 1120, 1558, 1972, 2261, 2695, 2854 with value 0xffffffffffffffffffffffffffffffffffffffff.","locations":["pc:0x460","pc:0x616","pc:0x7b4","pc:0x8d5","pc:0xa87","pc:0xb26"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-yyy4du9o
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0f6c-efee-79b3-8fe7-f49b7f8d79f8
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.

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

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

Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers
exec
/bin/bash -lc ls in /tmp/codex-yyy4du9o succeeded in 7ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-yyy4du9o succeeded in 8ms:
{
  "analysis_artifact": {
    "address": "0x9ba6e731becc5c04878eef7d52c90a8cf07746ae",
    "artifact_hash": "0xe45476e67e107c8ad42c97a17212f811077c8c40a7d20a03764132f34653cb0b",
    "artifact_json": {
      "auth": {
        "guards": [
          {
            "pc": 1120,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
          },
          {
            "pc": 1558,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
          },
          {
            "pc": 1972,
            "type": "msg_sender_eq_const",
exec
/bin/bash -lc 'rg -n "storage|slot|eip1967|proxy|delegatecall|DELEGATECALL|callsite|selector" BYTECODE_BUNDLE.json' in /tmp/codex-yyy4du9o succeeded in 10ms:
2578:      "callsites": [
3242:      "dispatcher_type": "selector_jump_table",
3246:          "selector": "0xffffffff"
3250:          "selector": "0x13299604"
3254:          "selector": "0x43d726d6"
3258:          "selector": "0x4e71e0c8"
3262:          "selector": "0x4edc689d"
3266:          "selector": "0x521eb273"
3270:          "selector": "0x631449e5"
3274:          "selector": "0x8c52dc41"
3278:          "selector": "0x8da5cb5b"
3282:          "selector": "0xc19d93fb"
3286:          "selector": "0xcb13cddb"
3290:          "selector": "0xe30c3978"
3294:          "selector": "0xf2fde38b"
3298:          "selector": "0xf340fa01"
3302:          "selector": "0xfa89401a"
3342:          "selector": "0xffffffff",
3345:            "delegatecall": 0,
3349:          "storage": {
exec
/bin/bash -lc 'rg -n "function_summaries|functions|selector_jump_table|proxy_evidence|callsites" BYTECODE_BUNDLE.json' in /tmp/codex-yyy4du9o succeeded in 7ms:
2578:      "callsites": [
3242:      "dispatcher_type": "selector_jump_table",
3305:      "functions": [
5964:      "proxy_evidence": {
exec
/bin/bash -lc "sed -n '2520,2700p' BYTECODE_BUNDLE.json" in /tmp/codex-yyy4du9o succeeded in 6ms:
          "opcodes": [
            "INVALID"
          ],
          "start_pc": 3537
        },
        {
          "end_pc": 3547,
          "hash": "0x94bc51c404cd12e1f7b96cc0ebb7a12661a7aed5551753fc335a365ae56dbceb",
          "opcodes": [
            "JUMPDEST",
            "OP_80",
            "OP_91",
            "POP",
            "POP",
            "OP_92",
            "OP_91",
            "POP",
            "POP",
            "JUMP"
          ],
exec
/bin/bash -lc "sed -n '3240,3380p' BYTECODE_BUNDLE.json" in /tmp/codex-yyy4du9o succeeded in 8ms:
      ],
      "cfg_hash": "0xfaf78428fe9164f6aa2d2df2f766642384a92004ab614002264d40447ad1285c",
      "dispatcher_type": "selector_jump_table",
      "function_entries": [
        {
          "entry_pc": 213,
          "selector": "0xffffffff"
        },
        {
          "entry_pc": 1138173654,
          "selector": "0x13299604"
        },
        {
          "entry_pc": 1316085960,
          "selector": "0x43d726d6"
        },
        {
          "entry_pc": 1323067549,
          "selector": "0x4e71e0c8"
        },
exec
/bin/bash -lc "rg -n \"\\\"selector\\\": \\\"0xf2fde38b\\\"\" -n BYTECODE_BUNDLE.json" in /tmp/codex-yyy4du9o succeeded in 9ms:
3294:          "selector": "0xf2fde38b"
5322:          "selector": "0xf2fde38b",
7836:          "selector": "0xf2fde38b",
exec
/bin/bash -lc "sed -n '5300,5365p' BYTECODE_BUNDLE.json" in /tmp/codex-yyy4du9o succeeded in 8ms:
                "pc": 1972,
                "type": "msg_sender_eq_const",
                "value": "0xffffffffffffffffffffffffffffffffffffffff"
              },
              {
                "pc": 2261,
                "type": "msg_sender_eq_const",
                "value": "0xffffffffffffffffffffffffffffffffffffffff"
              },
              {
                "pc": 2695,
                "type": "msg_sender_eq_const",
                "value": "0xffffffffffffffffffffffffffffffffffffffff"
              },
              {
                "pc": 2854,
                "type": "msg_sender_eq_const",
                "value": "0xffffffffffffffffffffffffffffffffffffffff"
              }
            ]
exec
/bin/bash -lc "sed -n '5365,5445p' BYTECODE_BUNDLE.json" in /tmp/codex-yyy4du9o succeeded in 7ms:
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1654,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1755,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1920,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 2163,
exec
/bin/bash -lc "sed -n '5445,5525p' BYTECODE_BUNDLE.json" in /tmp/codex-yyy4du9o succeeded in 6ms:
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000014"
              }
            ],
            "writes": 8
          }
        },
        {
          "auth": {
            "guards": [
              {
                "pc": 1120,
                "type": "msg_sender_eq_const",
                "value": "0xffffffffffffffffffffffffffffffffffffffff"
              },
              {
                "pc": 1558,
                "type": "msg_sender_eq_const",
                "value": "0xffffffffffffffffffffffffffffffffffffffff"
              },
              {
exec
/bin/bash -lc "rg -n \"\\\"pc\\\": 1482\" -n BYTECODE_BUNDLE.json" in /tmp/codex-yyy4du9o succeeded in 8ms:
2581:          "pc": 1482,
7748:          "pc": 1482,
7866:            "pc": 1482,
7942:            "pc": 1482,
exec
/bin/bash -lc "sed -n '7800,7925p' BYTECODE_BUNDLE.json" in /tmp/codex-yyy4du9o succeeded in 6ms:
          "selector": "0x631449e5",
          "type": "function"
        },
        {
          "entry_pc": 2376452955,
          "id": "fn:0x8c52dc41",
          "selector": "0x8c52dc41",
          "type": "function"
        },
        {
          "entry_pc": 3248329723,
          "id": "fn:0x8da5cb5b",
          "selector": "0x8da5cb5b",
          "type": "function"
        },
        {
          "entry_pc": 3407072731,
          "id": "fn:0xc19d93fb",
          "selector": "0xc19d93fb",
          "type": "function"
exec
/bin/bash -lc "sed -n '5765,5835p' BYTECODE_BUNDLE.json" in /tmp/codex-yyy4du9o succeeded in 11ms:
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 2998,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000014"
              },
              {
                "op": "SLOAD",
                "pc": 3204,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000014"
              }
            ],
            "writes": 8
          }
        }
      ],
      "selectors": [
        "0xffffffff",
        "0x13299604",
exec
/bin/bash -lc 'rg -n "SSTORE" BYTECODE_BUNDLE.json' in /tmp/codex-yyy4du9o succeeded in 7ms:
1290:            "SSTORE",
1478:            "SSTORE",
1499:            "SSTORE",
1615:            "SSTORE",
1873:            "SSTORE",
2040:            "SSTORE",
2279:            "SSTORE",
2413:            "SSTORE",
exec
/bin/bash -lc "sed -n '1240,1315p' BYTECODE_BUNDLE.json" in /tmp/codex-yyy4du9o succeeded in 7ms:
            "PUSH1",
            "OP_80",
            "REVERT"
          ],
          "start_pc": 1293
        },
        {
          "end_pc": 1326,
          "hash": "0xe20526590429e2510078a969cc6f5a8cd82af1f01c82c5675a1e74ddfac2ce94",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "PUSH2",
            "EXP",
            "OP_81",
            "SLOAD",
            "OP_81",
            "PUSH1",
exec
/bin/bash -lc "sed -n '1450,1515p' BYTECODE_BUNDLE.json" in /tmp/codex-yyy4du9o succeeded in 6ms:
            "PUSH1",
            "OP_90",
            "SLOAD",
            "OP_90",
            "PUSH2",
            "EXP",
            "OP_90",
            "DIV",
            "PUSH20",
            "AND",
            "PUSH1",
            "OP_80",
            "PUSH2",
            "EXP",
            "OP_81",
            "SLOAD",
            "OP_81",
            "PUSH20",
            "MUL",
            "NOT",
codex
{"no_findings":false,"summary":"Bytecode shows two CALL sites (pc:0x5ca, pc:0xd5c) with computed targets/values and no explicit returndata checks; no delegatecall/proxy patterns detected. Access control heuristics indicate msg.sender is compared against a constant 0xffff… at multiple guard PCs, but this is uncertain from bytecode alone.","findings":[{"severity":"medium","category":"other","title":"External CALL with computed target/value and unchecked return","exploit_scenario":"If any public entrypoint allows user-controlled call target or ETH value for these CALL sites, an attacker could trigger arbitrary external calls or ETH transfers (and potentially reentrancy) to drain funds or manipulate state. Validation data suggests the target may be constant (possibly self-call), so impact depends on actual reachability and control over arguments.","recommendation":"Confirm whether the CALL target/value can be influenced by untrusted callers. If so, restrict to an allowlist or enforce strict access control, and check/bubble up call return data. Consider reentrancy protections around external calls.","evidence":"Detector flagged 2 CALL sites with computed targets/values and returndata_checked = null; validation did not confirm variable targets and observed the contract’s own address as a target candidate.","locations":["pc:0x5ca","pc:0xd5c"]},{"severity":"low","category":"access_control","title":"Authorization guard compares msg.sender to constant 0xffff… (possible hardcoded admin/lockout)","exploit_scenario":"If the guard truly compares msg.sender to 0xffff… then privileged functions may be permanently inaccessible or controlled by an unexpected hardcoded address. This could affect admin actions (e.g., ownership transfer selector 0xf2fde38b) and operational controls.","recommendation":"Verify whether access control is intended to be hardcoded. Prefer storage-based ownership with proper initialization and the ability to rotate the admin. If this is a heuristic artifact, confirm the real owner/role checks in source or with more precise analysis.","evidence":"Auth heuristics report msg_sender_eq_const at pcs 1120, 1558, 1972, 2261, 2695, 2854 with value 0xffffffffffffffffffffffffffffffffffffffff.","locations":["pc:0x460","pc:0x616","pc:0x7b4","pc:0x8d5","pc:0xa87","pc:0xb26"]}]}
tokens used
84,408
Metadata
{
    "codex": {
        "ran_at": "2026-01-30T15:04:16.002667+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 7186,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Bytecode shows two CALL sites (pc:0x5ca, pc:0xd5c) with computed targets/values and no explicit returndata checks; no delegatecall/proxy patterns detected. Access control heuristics indicate msg.sender is compared against a constant 0xffff\u2026 at multiple guard PCs, but this is uncertain from bytecode alone.",
    "raw_final": {
        "summary": "Bytecode shows two CALL sites (pc:0x5ca, pc:0xd5c) with computed targets/values and no explicit returndata checks; no delegatecall/proxy patterns detected. Access control heuristics indicate msg.sender is compared against a constant 0xffff\u2026 at multiple guard PCs, but this is uncertain from bytecode alone.",
        "findings": [
            {
                "title": "External CALL with computed target/value and unchecked return",
                "category": "other",
                "evidence": "Detector flagged 2 CALL sites with computed targets/values and returndata_checked = null; validation did not confirm variable targets and observed the contract\u2019s own address as a target candidate.",
                "severity": "medium",
                "locations": [
                    "pc:0x5ca",
                    "pc:0xd5c"
                ],
                "recommendation": "Confirm whether the CALL target/value can be influenced by untrusted callers. If so, restrict to an allowlist or enforce strict access control, and check/bubble up call return data. Consider reentrancy protections around external calls.",
                "exploit_scenario": "If any public entrypoint allows user-controlled call target or ETH value for these CALL sites, an attacker could trigger arbitrary external calls or ETH transfers (and potentially reentrancy) to drain funds or manipulate state. Validation data suggests the target may be constant (possibly self-call), so impact depends on actual reachability and control over arguments."
            },
            {
                "title": "Authorization guard compares msg.sender to constant 0xffff\u2026 (possible hardcoded admin/lockout)",
                "category": "access_control",
                "evidence": "Auth heuristics report msg_sender_eq_const at pcs 1120, 1558, 1972, 2261, 2695, 2854 with value 0xffffffffffffffffffffffffffffffffffffffff.",
                "severity": "low",
                "locations": [
                    "pc:0x460",
                    "pc:0x616",
                    "pc:0x7b4",
                    "pc:0x8d5",
                    "pc:0xa87",
                    "pc:0xb26"
                ],
                "recommendation": "Verify whether access control is intended to be hardcoded. Prefer storage-based ownership with proper initialization and the ability to rotate the admin. If this is a heuristic artifact, confirm the real owner/role checks in source or with more precise analysis.",
                "exploit_scenario": "If the guard truly compares msg.sender to 0xffff\u2026 then privileged functions may be permanently inaccessible or controlled by an unexpected hardcoded address. This could affect admin actions (e.g., ownership transfer selector 0xf2fde38b) and operational controls."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
1
Total opcodes
1521
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x00d0
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002e: SWAP1
0000002f: DIV
00000030: PUSH4 0xffffffff
00000035: AND
00000036: DUP1
00000037: PUSH4 0x13299604
0000003c: EQ
0000003d: PUSH2 0x00d5
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0x43d726d6
00000047: EQ
00000048: PUSH2 0x012a
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0x4e71e0c8
00000052: EQ
00000053: PUSH2 0x013f
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0x4edc689d
0000005d: EQ
0000005e: PUSH2 0x0154
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0x521eb273
00000068: EQ
00000069: PUSH2 0x0198
0000006c: JUMPI
0000006d: DUP1
0000006e: PUSH4 0x631449e5
00000073: EQ
00000074: PUSH2 0x01ed
00000077: JUMPI
00000078: DUP1
00000079: PUSH4 0x8c52dc41
0000007e: EQ
0000007f: PUSH2 0x021a
00000082: JUMPI
00000083: DUP1
00000084: PUSH4 0x8da5cb5b
00000089: EQ
0000008a: PUSH2 0x022f
0000008d: JUMPI
0000008e: DUP1
0000008f: PUSH4 0xc19d93fb
00000094: EQ
00000095: PUSH2 0x0284
00000098: JUMPI
00000099: DUP1
0000009a: PUSH4 0xcb13cddb
0000009f: EQ
000000a0: PUSH2 0x02bb
000000a3: JUMPI
000000a4: DUP1
000000a5: PUSH4 0xe30c3978
000000aa: EQ
000000ab: PUSH2 0x0308
000000ae: JUMPI
000000af: DUP1
000000b0: PUSH4 0xf2fde38b
000000b5: EQ
000000b6: PUSH2 0x035d
000000b9: JUMPI
000000ba: DUP1
000000bb: PUSH4 0xf340fa01
000000c0: EQ
000000c1: PUSH2 0x0396
000000c4: JUMPI
000000c5: DUP1
000000c6: PUSH4 0xfa89401a
000000cb: EQ
000000cc: PUSH2 0x03c4
000000cf: JUMPI
000000d0: JUMPDEST
000000d1: PUSH1 0x00
000000d3: DUP1
000000d4: REVERT
000000d5: JUMPDEST
000000d6: CALLVALUE
000000d7: ISZERO
000000d8: PUSH2 0x00e0
000000db: JUMPI
000000dc: PUSH1 0x00
000000de: DUP1
000000df: REVERT
000000e0: JUMPDEST
000000e1: PUSH2 0x00e8
000000e4: PUSH2 0x03fd
000000e7: JUMP
000000e8: JUMPDEST
000000e9: PUSH1 0x40
000000eb: MLOAD
000000ec: DUP1
000000ed: DUP3
000000ee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000103: AND
00000104: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000119: AND
0000011a: DUP2
0000011b: MSTORE
0000011c: PUSH1 0x20
0000011e: ADD
0000011f: SWAP2
00000120: POP
00000121: POP
00000122: PUSH1 0x40
00000124: MLOAD
00000125: DUP1
00000126: SWAP2
00000127: SUB
00000128: SWAP1
00000129: RETURN
0000012a: JUMPDEST
0000012b: CALLVALUE
0000012c: ISZERO
0000012d: PUSH2 0x0135
00000130: JUMPI
00000131: PUSH1 0x00
00000133: DUP1
00000134: REVERT
00000135: JUMPDEST
00000136: PUSH2 0x013d
00000139: PUSH2 0x0427
0000013c: JUMP
0000013d: JUMPDEST
0000013e: STOP
0000013f: JUMPDEST
00000140: CALLVALUE
00000141: ISZERO
00000142: PUSH2 0x014a
00000145: JUMPI
00000146: PUSH1 0x00
00000148: DUP1
00000149: REVERT
0000014a: JUMPDEST
0000014b: PUSH2 0x0152
0000014e: PUSH2 0x05dc
00000151: JUMP
00000152: JUMPDEST
00000153: STOP
00000154: JUMPDEST
00000155: CALLVALUE
00000156: ISZERO
00000157: PUSH2 0x015f
0000015a: JUMPI
0000015b: PUSH1 0x00
0000015d: DUP1
0000015e: REVERT
0000015f: JUMPDEST
00000160: PUSH2 0x0196
00000163: PUSH1 0x04
00000165: DUP1
00000166: DUP1
00000167: CALLDATALOAD
00000168: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000017d: AND
0000017e: SWAP1
0000017f: PUSH1 0x20
00000181: ADD
00000182: SWAP1
00000183: SWAP2
00000184: SWAP1
00000185: DUP1
00000186: CALLDATALOAD
00000187: ISZERO
00000188: ISZERO
00000189: SWAP1
0000018a: PUSH1 0x20
0000018c: ADD
0000018d: SWAP1
0000018e: SWAP2
0000018f: SWAP1
00000190: POP
00000191: POP
00000192: PUSH2 0x077b
00000195: JUMP
00000196: JUMPDEST
00000197: STOP
00000198: JUMPDEST
00000199: CALLVALUE
0000019a: ISZERO
0000019b: PUSH2 0x01a3
0000019e: JUMPI
0000019f: PUSH1 0x00
000001a1: DUP1
000001a2: REVERT
000001a3: JUMPDEST
000001a4: PUSH2 0x01ab
000001a7: PUSH2 0x086d
000001aa: JUMP
000001ab: JUMPDEST
000001ac: PUSH1 0x40
000001ae: MLOAD
000001af: DUP1
000001b0: DUP3
000001b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001c6: AND
000001c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001dc: AND
000001dd: DUP2
000001de: MSTORE
000001df: PUSH1 0x20
000001e1: ADD
000001e2: SWAP2
000001e3: POP
000001e4: POP
000001e5: PUSH1 0x40
000001e7: MLOAD
000001e8: DUP1
000001e9: SWAP2
000001ea: SUB
000001eb: SWAP1
000001ec: RETURN
000001ed: JUMPDEST
000001ee: CALLVALUE
000001ef: ISZERO
000001f0: PUSH2 0x01f8
000001f3: JUMPI
000001f4: PUSH1 0x00
000001f6: DUP1
000001f7: REVERT
000001f8: JUMPDEST
000001f9: PUSH2 0x0200
000001fc: PUSH2 0x0893
000001ff: JUMP
00000200: JUMPDEST
00000201: PUSH1 0x40
00000203: MLOAD
00000204: DUP1
00000205: DUP3
00000206: ISZERO
00000207: ISZERO
00000208: ISZERO
00000209: ISZERO
0000020a: DUP2
0000020b: MSTORE
0000020c: PUSH1 0x20
0000020e: ADD
0000020f: SWAP2
00000210: POP
00000211: POP
00000212: PUSH1 0x40
00000214: MLOAD
00000215: DUP1
00000216: SWAP2
00000217: SUB
00000218: SWAP1
00000219: RETURN
0000021a: JUMPDEST
0000021b: CALLVALUE
0000021c: ISZERO
0000021d: PUSH2 0x0225
00000220: JUMPI
00000221: PUSH1 0x00
00000223: DUP1
00000224: REVERT
00000225: JUMPDEST
00000226: PUSH2 0x022d
00000229: PUSH2 0x089c
0000022c: JUMP
0000022d: JUMPDEST
0000022e: STOP
0000022f: JUMPDEST
00000230: CALLVALUE
00000231: ISZERO
00000232: PUSH2 0x023a
00000235: JUMPI
00000236: PUSH1 0x00
00000238: DUP1
00000239: REVERT
0000023a: JUMPDEST
0000023b: PUSH2 0x0242
0000023e: PUSH2 0x09d8
00000241: JUMP
00000242: JUMPDEST
00000243: PUSH1 0x40
00000245: MLOAD
00000246: DUP1
00000247: DUP3
00000248: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000025d: AND
0000025e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000273: AND
00000274: DUP2
00000275: MSTORE
00000276: PUSH1 0x20
00000278: ADD
00000279: SWAP2
0000027a: POP
0000027b: POP
0000027c: PUSH1 0x40
0000027e: MLOAD
0000027f: DUP1
00000280: SWAP2
00000281: SUB
00000282: SWAP1
00000283: RETURN
00000284: JUMPDEST
00000285: CALLVALUE
00000286: ISZERO
00000287: PUSH2 0x028f
0000028a: JUMPI
0000028b: PUSH1 0x00
0000028d: DUP1
0000028e: REVERT
0000028f: JUMPDEST
00000290: PUSH2 0x0297
00000293: PUSH2 0x09fd
00000296: JUMP
00000297: JUMPDEST
00000298: PUSH1 0x40
0000029a: MLOAD
0000029b: DUP1
0000029c: DUP3
0000029d: PUSH1 0x02
0000029f: DUP2
000002a0: GT
000002a1: ISZERO
000002a2: PUSH2 0x02a7
000002a5: JUMPI
000002a6: INVALID
000002a7: JUMPDEST
000002a8: PUSH1 0xff
000002aa: AND
000002ab: DUP2
000002ac: MSTORE
000002ad: PUSH1 0x20
000002af: ADD
000002b0: SWAP2
000002b1: POP
000002b2: POP
000002b3: PUSH1 0x40
000002b5: MLOAD
000002b6: DUP1
000002b7: SWAP2
000002b8: SUB
000002b9: SWAP1
000002ba: RETURN
000002bb: JUMPDEST
000002bc: CALLVALUE
000002bd: ISZERO
000002be: PUSH2 0x02c6
000002c1: JUMPI
000002c2: PUSH1 0x00
000002c4: DUP1
000002c5: REVERT
000002c6: JUMPDEST
000002c7: PUSH2 0x02f2
000002ca: PUSH1 0x04
000002cc: DUP1
000002cd: DUP1
000002ce: CALLDATALOAD
000002cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002e4: AND
000002e5: SWAP1
000002e6: PUSH1 0x20
000002e8: ADD
000002e9: SWAP1
000002ea: SWAP2
000002eb: SWAP1
000002ec: POP
000002ed: POP
000002ee: PUSH2 0x0a10
000002f1: JUMP
000002f2: JUMPDEST
000002f3: PUSH1 0x40
000002f5: MLOAD
000002f6: DUP1
000002f7: DUP3
000002f8: DUP2
000002f9: MSTORE
000002fa: PUSH1 0x20
000002fc: ADD
000002fd: SWAP2
000002fe: POP
000002ff: POP
00000300: PUSH1 0x40
00000302: MLOAD
00000303: DUP1
00000304: SWAP2
00000305: SUB
00000306: SWAP1
00000307: RETURN
00000308: JUMPDEST
00000309: CALLVALUE
0000030a: ISZERO
0000030b: PUSH2 0x0313
0000030e: JUMPI
0000030f: PUSH1 0x00
00000311: DUP1
00000312: REVERT
00000313: JUMPDEST
00000314: PUSH2 0x031b
00000317: PUSH2 0x0a28
0000031a: JUMP
0000031b: JUMPDEST
0000031c: PUSH1 0x40
0000031e: MLOAD
0000031f: DUP1
00000320: DUP3
00000321: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000336: AND
00000337: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000034c: AND
0000034d: DUP2
0000034e: MSTORE
0000034f: PUSH1 0x20
00000351: ADD
00000352: SWAP2
00000353: POP
00000354: POP
00000355: PUSH1 0x40
00000357: MLOAD
00000358: DUP1
00000359: SWAP2
0000035a: SUB
0000035b: SWAP1
0000035c: RETURN
0000035d: JUMPDEST
0000035e: CALLVALUE
0000035f: ISZERO
00000360: PUSH2 0x0368
00000363: JUMPI
00000364: PUSH1 0x00
00000366: DUP1
00000367: REVERT
00000368: JUMPDEST
00000369: PUSH2 0x0394
0000036c: PUSH1 0x04
0000036e: DUP1
0000036f: DUP1
00000370: CALLDATALOAD
00000371: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000386: AND
00000387: SWAP1
00000388: PUSH1 0x20
0000038a: ADD
0000038b: SWAP1
0000038c: SWAP2
0000038d: SWAP1
0000038e: POP
0000038f: POP
00000390: PUSH2 0x0a4e
00000393: JUMP
00000394: JUMPDEST
00000395: STOP
00000396: JUMPDEST
00000397: PUSH2 0x03c2
0000039a: PUSH1 0x04
0000039c: DUP1
0000039d: DUP1
0000039e: CALLDATALOAD
0000039f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003b4: AND
000003b5: SWAP1
000003b6: PUSH1 0x20
000003b8: ADD
000003b9: SWAP1
000003ba: SWAP2
000003bb: SWAP1
000003bc: POP
000003bd: POP
000003be: PUSH2 0x0aed
000003c1: JUMP
000003c2: JUMPDEST
000003c3: STOP
000003c4: JUMPDEST
000003c5: CALLVALUE
000003c6: ISZERO
000003c7: PUSH2 0x03cf
000003ca: JUMPI
000003cb: PUSH1 0x00
000003cd: DUP1
000003ce: REVERT
000003cf: JUMPDEST
000003d0: PUSH2 0x03fb
000003d3: PUSH1 0x04
000003d5: DUP1
000003d6: DUP1
000003d7: CALLDATALOAD
000003d8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003ed: AND
000003ee: SWAP1
000003ef: PUSH1 0x20
000003f1: ADD
000003f2: SWAP1
000003f3: SWAP2
000003f4: SWAP1
000003f5: POP
000003f6: POP
000003f7: PUSH2 0x0c6f
000003fa: JUMP
000003fb: JUMPDEST
000003fc: STOP
000003fd: JUMPDEST
000003fe: PUSH1 0x00
00000400: PUSH1 0x04
00000402: PUSH1 0x00
00000404: SWAP1
00000405: SLOAD
00000406: SWAP1
00000407: PUSH2 0x0100
0000040a: EXP
0000040b: SWAP1
0000040c: DIV
0000040d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000422: AND
00000423: SWAP1
00000424: POP
00000425: SWAP1
00000426: JUMP
00000427: JUMPDEST
00000428: PUSH1 0x00
0000042a: DUP1
0000042b: SWAP1
0000042c: SLOAD
0000042d: SWAP1
0000042e: PUSH2 0x0100
00000431: EXP
00000432: SWAP1
00000433: DIV
00000434: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000449: AND
0000044a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000045f: AND
00000460: CALLER
00000461: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000476: AND
00000477: EQ
00000478: DUP1
00000479: PUSH2 0x04d2
0000047c: JUMPI
0000047d: POP
0000047e: PUSH1 0x01
00000480: ISZERO
00000481: ISZERO
00000482: PUSH1 0x01
00000484: PUSH1 0x00
00000486: CALLER
00000487: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000049c: AND
0000049d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004b2: AND
000004b3: DUP2
000004b4: MSTORE
000004b5: PUSH1 0x20
000004b7: ADD
000004b8: SWAP1
000004b9: DUP2
000004ba: MSTORE
000004bb: PUSH1 0x20
000004bd: ADD
000004be: PUSH1 0x00
000004c0: KECCAK256
000004c1: PUSH1 0x00
000004c3: SWAP1
000004c4: SLOAD
000004c5: SWAP1
000004c6: PUSH2 0x0100
000004c9: EXP
000004ca: SWAP1
000004cb: DIV
000004cc: PUSH1 0xff
000004ce: AND
000004cf: ISZERO
000004d0: ISZERO
000004d1: EQ
000004d2: JUMPDEST
000004d3: ISZERO
000004d4: ISZERO
000004d5: PUSH2 0x04dd
000004d8: JUMPI
000004d9: PUSH1 0x00
000004db: DUP1
000004dc: REVERT
000004dd: JUMPDEST
000004de: PUSH1 0x00
000004e0: PUSH1 0x02
000004e2: DUP2
000004e3: GT
000004e4: ISZERO
000004e5: PUSH2 0x04ea
000004e8: JUMPI
000004e9: INVALID
000004ea: JUMPDEST
000004eb: PUSH1 0x04
000004ed: PUSH1 0x14
000004ef: SWAP1
000004f0: SLOAD
000004f1: SWAP1
000004f2: PUSH2 0x0100
000004f5: EXP
000004f6: SWAP1
000004f7: DIV
000004f8: PUSH1 0xff
000004fa: AND
000004fb: PUSH1 0x02
000004fd: DUP2
000004fe: GT
000004ff: ISZERO
00000500: PUSH2 0x0505
00000503: JUMPI
00000504: INVALID
00000505: JUMPDEST
00000506: EQ
00000507: ISZERO
00000508: ISZERO
00000509: PUSH2 0x0511
0000050c: JUMPI
0000050d: PUSH1 0x00
0000050f: DUP1
00000510: REVERT
00000511: JUMPDEST
00000512: PUSH1 0x02
00000514: PUSH1 0x04
00000516: PUSH1 0x14
00000518: PUSH2 0x0100
0000051b: EXP
0000051c: DUP2
0000051d: SLOAD
0000051e: DUP2
0000051f: PUSH1 0xff
00000521: MUL
00000522: NOT
00000523: AND
00000524: SWAP1
00000525: DUP4
00000526: PUSH1 0x02
00000528: DUP2
00000529: GT
0000052a: ISZERO
0000052b: PUSH2 0x0530
0000052e: JUMPI
0000052f: INVALID
00000530: JUMPDEST
00000531: MUL
00000532: OR
00000533: SWAP1
00000534: SSTORE
00000535: POP
00000536: PUSH32 0x1cdde67b72a90f19919ac732a437ac2f7a10fc128d28c2a6e525d89ce5cd9d3a
00000557: PUSH1 0x40
00000559: MLOAD
0000055a: PUSH1 0x40
0000055c: MLOAD
0000055d: DUP1
0000055e: SWAP2
0000055f: SUB
00000560: SWAP1
00000561: LOG1
00000562: PUSH1 0x04
00000564: PUSH1 0x00
00000566: SWAP1
00000567: SLOAD
00000568: SWAP1
00000569: PUSH2 0x0100
0000056c: EXP
0000056d: SWAP1
0000056e: DIV
0000056f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000584: AND
00000585: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000059a: AND
0000059b: PUSH2 0x08fc
0000059e: ADDRESS
0000059f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005b4: AND
000005b5: BALANCE
000005b6: SWAP1
000005b7: DUP2
000005b8: ISZERO
000005b9: MUL
000005ba: SWAP1
000005bb: PUSH1 0x40
000005bd: MLOAD
000005be: PUSH1 0x00
000005c0: PUSH1 0x40
000005c2: MLOAD
000005c3: DUP1
000005c4: DUP4
000005c5: SUB
000005c6: DUP2
000005c7: DUP6
000005c8: DUP9
000005c9: DUP9
000005ca: CALL
000005cb: SWAP4
000005cc: POP
000005cd: POP
000005ce: POP
000005cf: POP
000005d0: ISZERO
000005d1: ISZERO
000005d2: PUSH2 0x05da
000005d5: JUMPI
000005d6: PUSH1 0x00
000005d8: DUP1
000005d9: REVERT
000005da: JUMPDEST
000005db: JUMP
000005dc: JUMPDEST
000005dd: PUSH1 0x02
000005df: PUSH1 0x00
000005e1: SWAP1
000005e2: SLOAD
000005e3: SWAP1
000005e4: PUSH2 0x0100
000005e7: EXP
000005e8: SWAP1
000005e9: DIV
000005ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005ff: AND
00000600: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000615: AND
00000616: CALLER
00000617: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000062c: AND
0000062d: EQ
0000062e: ISZERO
0000062f: ISZERO
00000630: PUSH2 0x0638
00000633: JUMPI
00000634: PUSH1 0x00
00000636: DUP1
00000637: REVERT
00000638: JUMPDEST
00000639: PUSH1 0x02
0000063b: PUSH1 0x00
0000063d: SWAP1
0000063e: SLOAD
0000063f: SWAP1
00000640: PUSH2 0x0100
00000643: EXP
00000644: SWAP1
00000645: DIV
00000646: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000065b: AND
0000065c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000671: AND
00000672: PUSH1 0x00
00000674: DUP1
00000675: SWAP1
00000676: SLOAD
00000677: SWAP1
00000678: PUSH2 0x0100
0000067b: EXP
0000067c: SWAP1
0000067d: DIV
0000067e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000693: AND
00000694: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006a9: AND
000006aa: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
000006cb: PUSH1 0x40
000006cd: MLOAD
000006ce: PUSH1 0x40
000006d0: MLOAD
000006d1: DUP1
000006d2: SWAP2
000006d3: SUB
000006d4: SWAP1
000006d5: LOG3
000006d6: PUSH1 0x02
000006d8: PUSH1 0x00
000006da: SWAP1
000006db: SLOAD
000006dc: SWAP1
000006dd: PUSH2 0x0100
000006e0: EXP
000006e1: SWAP1
000006e2: DIV
000006e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006f8: AND
000006f9: PUSH1 0x00
000006fb: DUP1
000006fc: PUSH2 0x0100
000006ff: EXP
00000700: DUP2
00000701: SLOAD
00000702: DUP2
00000703: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000718: MUL
00000719: NOT
0000071a: AND
0000071b: SWAP1
0000071c: DUP4
0000071d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000732: AND
00000733: MUL
00000734: OR
00000735: SWAP1
00000736: SSTORE
00000737: POP
00000738: PUSH1 0x00
0000073a: PUSH1 0x02
0000073c: PUSH1 0x00
0000073e: PUSH2 0x0100
00000741: EXP
00000742: DUP2
00000743: SLOAD
00000744: DUP2
00000745: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000075a: MUL
0000075b: NOT
0000075c: AND
0000075d: SWAP1
0000075e: DUP4
0000075f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000774: AND
00000775: MUL
00000776: OR
00000777: SWAP1
00000778: SSTORE
00000779: POP
0000077a: JUMP
0000077b: JUMPDEST
0000077c: PUSH1 0x00
0000077e: DUP1
0000077f: SWAP1
00000780: SLOAD
00000781: SWAP1
00000782: PUSH2 0x0100
00000785: EXP
00000786: SWAP1
00000787: DIV
00000788: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000079d: AND
0000079e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007b3: AND
000007b4: CALLER
000007b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007ca: AND
000007cb: EQ
000007cc: ISZERO
000007cd: ISZERO
000007ce: PUSH2 0x07d6
000007d1: JUMPI
000007d2: PUSH1 0x00
000007d4: DUP1
000007d5: REVERT
000007d6: JUMPDEST
000007d7: PUSH1 0x00
000007d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007ee: AND
000007ef: DUP3
000007f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000805: AND
00000806: EQ
00000807: ISZERO
00000808: ISZERO
00000809: ISZERO
0000080a: PUSH2 0x0812
0000080d: JUMPI
0000080e: PUSH1 0x00
00000810: DUP1
00000811: REVERT
00000812: JUMPDEST
00000813: DUP1
00000814: PUSH1 0x01
00000816: PUSH1 0x00
00000818: DUP5
00000819: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000082e: AND
0000082f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000844: AND
00000845: DUP2
00000846: MSTORE
00000847: PUSH1 0x20
00000849: ADD
0000084a: SWAP1
0000084b: DUP2
0000084c: MSTORE
0000084d: PUSH1 0x20
0000084f: ADD
00000850: PUSH1 0x00
00000852: KECCAK256
00000853: PUSH1 0x00
00000855: PUSH2 0x0100
00000858: EXP
00000859: DUP2
0000085a: SLOAD
0000085b: DUP2
0000085c: PUSH1 0xff
0000085e: MUL
0000085f: NOT
00000860: AND
00000861: SWAP1
00000862: DUP4
00000863: ISZERO
00000864: ISZERO
00000865: MUL
00000866: OR
00000867: SWAP1
00000868: SSTORE
00000869: POP
0000086a: POP
0000086b: POP
0000086c: JUMP
0000086d: JUMPDEST
0000086e: PUSH1 0x04
00000870: PUSH1 0x00
00000872: SWAP1
00000873: SLOAD
00000874: SWAP1
00000875: PUSH2 0x0100
00000878: EXP
00000879: SWAP1
0000087a: DIV
0000087b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000890: AND
00000891: DUP2
00000892: JUMP
00000893: JUMPDEST
00000894: PUSH1 0x00
00000896: PUSH1 0x01
00000898: SWAP1
00000899: POP
0000089a: SWAP1
0000089b: JUMP
0000089c: JUMPDEST
0000089d: PUSH1 0x00
0000089f: DUP1
000008a0: SWAP1
000008a1: SLOAD
000008a2: SWAP1
000008a3: PUSH2 0x0100
000008a6: EXP
000008a7: SWAP1
000008a8: DIV
000008a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008be: AND
000008bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008d4: AND
000008d5: CALLER
000008d6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008eb: AND
000008ec: EQ
000008ed: DUP1
000008ee: PUSH2 0x0947
000008f1: JUMPI
000008f2: POP
000008f3: PUSH1 0x01
000008f5: ISZERO
000008f6: ISZERO
000008f7: PUSH1 0x01
000008f9: PUSH1 0x00
000008fb: CALLER
000008fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000911: AND
00000912: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000927: AND
00000928: DUP2
00000929: MSTORE
0000092a: PUSH1 0x20
0000092c: ADD
0000092d: SWAP1
0000092e: DUP2
0000092f: MSTORE
00000930: PUSH1 0x20
00000932: ADD
00000933: PUSH1 0x00
00000935: KECCAK256
00000936: PUSH1 0x00
00000938: SWAP1
00000939: SLOAD
0000093a: SWAP1
0000093b: PUSH2 0x0100
0000093e: EXP
0000093f: SWAP1
00000940: DIV
00000941: PUSH1 0xff
00000943: AND
00000944: ISZERO
00000945: ISZERO
00000946: EQ
00000947: JUMPDEST
00000948: ISZERO
00000949: ISZERO
0000094a: PUSH2 0x0952
0000094d: JUMPI
0000094e: PUSH1 0x00
00000950: DUP1
00000951: REVERT
00000952: JUMPDEST
00000953: PUSH1 0x00
00000955: PUSH1 0x02
00000957: DUP2
00000958: GT
00000959: ISZERO
0000095a: PUSH2 0x095f
0000095d: JUMPI
0000095e: INVALID
0000095f: JUMPDEST
00000960: PUSH1 0x04
00000962: PUSH1 0x14
00000964: SWAP1
00000965: SLOAD
00000966: SWAP1
00000967: PUSH2 0x0100
0000096a: EXP
0000096b: SWAP1
0000096c: DIV
0000096d: PUSH1 0xff
0000096f: AND
00000970: PUSH1 0x02
00000972: DUP2
00000973: GT
00000974: ISZERO
00000975: PUSH2 0x097a
00000978: JUMPI
00000979: INVALID
0000097a: JUMPDEST
0000097b: EQ
0000097c: ISZERO
0000097d: ISZERO
0000097e: PUSH2 0x0986
00000981: JUMPI
00000982: PUSH1 0x00
00000984: DUP1
00000985: REVERT
00000986: JUMPDEST
00000987: PUSH1 0x01
00000989: PUSH1 0x04
0000098b: PUSH1 0x14
0000098d: PUSH2 0x0100
00000990: EXP
00000991: DUP2
00000992: SLOAD
00000993: DUP2
00000994: PUSH1 0xff
00000996: MUL
00000997: NOT
00000998: AND
00000999: SWAP1
0000099a: DUP4
0000099b: PUSH1 0x02
0000099d: DUP2
0000099e: GT
0000099f: ISZERO
000009a0: PUSH2 0x09a5
000009a3: JUMPI
000009a4: INVALID
000009a5: JUMPDEST
000009a6: MUL
000009a7: OR
000009a8: SWAP1
000009a9: SSTORE
000009aa: POP
000009ab: PUSH32 0x599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b89
000009cc: PUSH1 0x40
000009ce: MLOAD
000009cf: PUSH1 0x40
000009d1: MLOAD
000009d2: DUP1
000009d3: SWAP2
000009d4: SUB
000009d5: SWAP1
000009d6: LOG1
000009d7: JUMP
000009d8: JUMPDEST
000009d9: PUSH1 0x00
000009db: DUP1
000009dc: SWAP1
000009dd: SLOAD
000009de: SWAP1
000009df: PUSH2 0x0100
000009e2: EXP
000009e3: SWAP1
000009e4: DIV
000009e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009fa: AND
000009fb: DUP2
000009fc: JUMP
000009fd: JUMPDEST
000009fe: PUSH1 0x04
00000a00: PUSH1 0x14
00000a02: SWAP1
00000a03: SLOAD
00000a04: SWAP1
00000a05: PUSH2 0x0100
00000a08: EXP
00000a09: SWAP1
00000a0a: DIV
00000a0b: PUSH1 0xff
00000a0d: AND
00000a0e: DUP2
00000a0f: JUMP
00000a10: JUMPDEST
00000a11: PUSH1 0x03
00000a13: PUSH1 0x20
00000a15: MSTORE
00000a16: DUP1
00000a17: PUSH1 0x00
00000a19: MSTORE
00000a1a: PUSH1 0x40
00000a1c: PUSH1 0x00
00000a1e: KECCAK256
00000a1f: PUSH1 0x00
00000a21: SWAP2
00000a22: POP
00000a23: SWAP1
00000a24: POP
00000a25: SLOAD
00000a26: DUP2
00000a27: JUMP
00000a28: JUMPDEST
00000a29: PUSH1 0x02
00000a2b: PUSH1 0x00
00000a2d: SWAP1
00000a2e: SLOAD
00000a2f: SWAP1
00000a30: PUSH2 0x0100
00000a33: EXP
00000a34: SWAP1
00000a35: DIV
00000a36: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a4b: AND
00000a4c: DUP2
00000a4d: JUMP
00000a4e: JUMPDEST
00000a4f: PUSH1 0x00
00000a51: DUP1
00000a52: SWAP1
00000a53: SLOAD
00000a54: SWAP1
00000a55: PUSH2 0x0100
00000a58: EXP
00000a59: SWAP1
00000a5a: DIV
00000a5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a70: AND
00000a71: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a86: AND
00000a87: CALLER
00000a88: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a9d: AND
00000a9e: EQ
00000a9f: ISZERO
00000aa0: ISZERO
00000aa1: PUSH2 0x0aa9
00000aa4: JUMPI
00000aa5: PUSH1 0x00
00000aa7: DUP1
00000aa8: REVERT
00000aa9: JUMPDEST
00000aaa: DUP1
00000aab: PUSH1 0x02
00000aad: PUSH1 0x00
00000aaf: PUSH2 0x0100
00000ab2: EXP
00000ab3: DUP2
00000ab4: SLOAD
00000ab5: DUP2
00000ab6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000acb: MUL
00000acc: NOT
00000acd: AND
00000ace: SWAP1
00000acf: DUP4
00000ad0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ae5: AND
00000ae6: MUL
00000ae7: OR
00000ae8: SWAP1
00000ae9: SSTORE
00000aea: POP
00000aeb: POP
00000aec: JUMP
00000aed: JUMPDEST
00000aee: PUSH1 0x00
00000af0: DUP1
00000af1: SWAP1
00000af2: SLOAD
00000af3: SWAP1
00000af4: PUSH2 0x0100
00000af7: EXP
00000af8: SWAP1
00000af9: DIV
00000afa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b0f: AND
00000b10: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b25: AND
00000b26: CALLER
00000b27: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b3c: AND
00000b3d: EQ
00000b3e: DUP1
00000b3f: PUSH2 0x0b98
00000b42: JUMPI
00000b43: POP
00000b44: PUSH1 0x01
00000b46: ISZERO
00000b47: ISZERO
00000b48: PUSH1 0x01
00000b4a: PUSH1 0x00
00000b4c: CALLER
00000b4d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b62: AND
00000b63: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b78: AND
00000b79: DUP2
00000b7a: MSTORE
00000b7b: PUSH1 0x20
00000b7d: ADD
00000b7e: SWAP1
00000b7f: DUP2
00000b80: MSTORE
00000b81: PUSH1 0x20
00000b83: ADD
00000b84: PUSH1 0x00
00000b86: KECCAK256
00000b87: PUSH1 0x00
00000b89: SWAP1
00000b8a: SLOAD
00000b8b: SWAP1
00000b8c: PUSH2 0x0100
00000b8f: EXP
00000b90: SWAP1
00000b91: DIV
00000b92: PUSH1 0xff
00000b94: AND
00000b95: ISZERO
00000b96: ISZERO
00000b97: EQ
00000b98: JUMPDEST
00000b99: ISZERO
00000b9a: ISZERO
00000b9b: PUSH2 0x0ba3
00000b9e: JUMPI
00000b9f: PUSH1 0x00
00000ba1: DUP1
00000ba2: REVERT
00000ba3: JUMPDEST
00000ba4: PUSH1 0x00
00000ba6: PUSH1 0x02
00000ba8: DUP2
00000ba9: GT
00000baa: ISZERO
00000bab: PUSH2 0x0bb0
00000bae: JUMPI
00000baf: INVALID
00000bb0: JUMPDEST
00000bb1: PUSH1 0x04
00000bb3: PUSH1 0x14
00000bb5: SWAP1
00000bb6: SLOAD
00000bb7: SWAP1
00000bb8: PUSH2 0x0100
00000bbb: EXP
00000bbc: SWAP1
00000bbd: DIV
00000bbe: PUSH1 0xff
00000bc0: AND
00000bc1: PUSH1 0x02
00000bc3: DUP2
00000bc4: GT
00000bc5: ISZERO
00000bc6: PUSH2 0x0bcb
00000bc9: JUMPI
00000bca: INVALID
00000bcb: JUMPDEST
00000bcc: EQ
00000bcd: ISZERO
00000bce: ISZERO
00000bcf: PUSH2 0x0bd7
00000bd2: JUMPI
00000bd3: PUSH1 0x00
00000bd5: DUP1
00000bd6: REVERT
00000bd7: JUMPDEST
00000bd8: PUSH2 0x0c29
00000bdb: CALLVALUE
00000bdc: PUSH1 0x03
00000bde: PUSH1 0x00
00000be0: DUP5
00000be1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bf6: AND
00000bf7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c0c: AND
00000c0d: DUP2
00000c0e: MSTORE
00000c0f: PUSH1 0x20
00000c11: ADD
00000c12: SWAP1
00000c13: DUP2
00000c14: MSTORE
00000c15: PUSH1 0x20
00000c17: ADD
00000c18: PUSH1 0x00
00000c1a: KECCAK256
00000c1b: SLOAD
00000c1c: PUSH2 0x0dbe
00000c1f: SWAP1
00000c20: SWAP2
00000c21: SWAP1
00000c22: PUSH4 0xffffffff
00000c27: AND
00000c28: JUMP
00000c29: JUMPDEST
00000c2a: PUSH1 0x03
00000c2c: PUSH1 0x00
00000c2e: DUP4
00000c2f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c44: AND
00000c45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c5a: AND
00000c5b: DUP2
00000c5c: MSTORE
00000c5d: PUSH1 0x20
00000c5f: ADD
00000c60: SWAP1
00000c61: DUP2
00000c62: MSTORE
00000c63: PUSH1 0x20
00000c65: ADD
00000c66: PUSH1 0x00
00000c68: KECCAK256
00000c69: DUP2
00000c6a: SWAP1
00000c6b: SSTORE
00000c6c: POP
00000c6d: POP
00000c6e: JUMP
00000c6f: JUMPDEST
00000c70: PUSH1 0x00
00000c72: PUSH1 0x01
00000c74: PUSH1 0x02
00000c76: DUP2
00000c77: GT
00000c78: ISZERO
00000c79: PUSH2 0x0c7e
00000c7c: JUMPI
00000c7d: INVALID
00000c7e: JUMPDEST
00000c7f: PUSH1 0x04
00000c81: PUSH1 0x14
00000c83: SWAP1
00000c84: SLOAD
00000c85: SWAP1
00000c86: PUSH2 0x0100
00000c89: EXP
00000c8a: SWAP1
00000c8b: DIV
00000c8c: PUSH1 0xff
00000c8e: AND
00000c8f: PUSH1 0x02
00000c91: DUP2
00000c92: GT
00000c93: ISZERO
00000c94: PUSH2 0x0c99
00000c97: JUMPI
00000c98: INVALID
00000c99: JUMPDEST
00000c9a: EQ
00000c9b: ISZERO
00000c9c: ISZERO
00000c9d: PUSH2 0x0ca5
00000ca0: JUMPI
00000ca1: PUSH1 0x00
00000ca3: DUP1
00000ca4: REVERT
00000ca5: JUMPDEST
00000ca6: PUSH1 0x03
00000ca8: PUSH1 0x00
00000caa: DUP4
00000cab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cc0: AND
00000cc1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cd6: AND
00000cd7: DUP2
00000cd8: MSTORE
00000cd9: PUSH1 0x20
00000cdb: ADD
00000cdc: SWAP1
00000cdd: DUP2
00000cde: MSTORE
00000cdf: PUSH1 0x20
00000ce1: ADD
00000ce2: PUSH1 0x00
00000ce4: KECCAK256
00000ce5: SLOAD
00000ce6: SWAP1
00000ce7: POP
00000ce8: PUSH1 0x00
00000cea: PUSH1 0x03
00000cec: PUSH1 0x00
00000cee: DUP5
00000cef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d04: AND
00000d05: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d1a: AND
00000d1b: DUP2
00000d1c: MSTORE
00000d1d: PUSH1 0x20
00000d1f: ADD
00000d20: SWAP1
00000d21: DUP2
00000d22: MSTORE
00000d23: PUSH1 0x20
00000d25: ADD
00000d26: PUSH1 0x00
00000d28: KECCAK256
00000d29: DUP2
00000d2a: SWAP1
00000d2b: SSTORE
00000d2c: POP
00000d2d: DUP2
00000d2e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d43: AND
00000d44: PUSH2 0x08fc
00000d47: DUP3
00000d48: SWAP1
00000d49: DUP2
00000d4a: ISZERO
00000d4b: MUL
00000d4c: SWAP1
00000d4d: PUSH1 0x40
00000d4f: MLOAD
00000d50: PUSH1 0x00
00000d52: PUSH1 0x40
00000d54: MLOAD
00000d55: DUP1
00000d56: DUP4
00000d57: SUB
00000d58: DUP2
00000d59: DUP6
00000d5a: DUP9
00000d5b: DUP9
00000d5c: CALL
00000d5d: SWAP4
00000d5e: POP
00000d5f: POP
00000d60: POP
00000d61: POP
00000d62: ISZERO
00000d63: ISZERO
00000d64: PUSH2 0x0d6c
00000d67: JUMPI
00000d68: PUSH1 0x00
00000d6a: DUP1
00000d6b: REVERT
00000d6c: JUMPDEST
00000d6d: DUP2
00000d6e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d83: AND
00000d84: PUSH32 0xd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651
00000da5: DUP3
00000da6: PUSH1 0x40
00000da8: MLOAD
00000da9: DUP1
00000daa: DUP3
00000dab: DUP2
00000dac: MSTORE
00000dad: PUSH1 0x20
00000daf: ADD
00000db0: SWAP2
00000db1: POP
00000db2: POP
00000db3: PUSH1 0x40
00000db5: MLOAD
00000db6: DUP1
00000db7: SWAP2
00000db8: SUB
00000db9: SWAP1
00000dba: LOG2
00000dbb: POP
00000dbc: POP
00000dbd: JUMP
00000dbe: JUMPDEST
00000dbf: PUSH1 0x00
00000dc1: DUP1
00000dc2: DUP3
00000dc3: DUP5
00000dc4: ADD
00000dc5: SWAP1
00000dc6: POP
00000dc7: DUP4
00000dc8: DUP2
00000dc9: LT
00000dca: ISZERO
00000dcb: ISZERO
00000dcc: ISZERO
00000dcd: PUSH2 0x0dd2
00000dd0: JUMPI
00000dd1: INVALID
00000dd2: JUMPDEST
00000dd3: DUP1
00000dd4: SWAP2
00000dd5: POP
00000dd6: POP
00000dd7: SWAP3
00000dd8: SWAP2
00000dd9: POP
00000dda: POP
00000ddb: JUMP
00000ddc: STOP
00000ddd: LOG1
00000dde: PUSH6 0x627a7a723058
00000de5: KECCAK256
00000de6: UNKNOWN(0xEE)
00000de7: SHL
00000de8: EXP
00000de9: SWAP9
00000dea: SWAP5
00000deb: PUSH24 0x601be92ed3aee05dbf6d71ee31f804ed3e18e66544485e31
00000e04: DUP10
00000e05: UNKNOWN(0x0E)
00000e06: STOP
00000e07: UNKNOWN(0x29)

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x95d24d70c45423c09662bf2bafec42403abf37ae74a6e30160722fec20346671
call_targets: 0x9ba6e731becc5c04878eef7d52c90a8cf07746ae
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x95d24d70c45423c09662bf2bafec42403abf37ae74a6e30160722fec20346671",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x9ba6e731becc5c04878eef7d52c90a8cf07746ae"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x13299604",
            "selector": "0x13299604",
            "calldata_variants": [
                "0x13299604",
                "0x132996040000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x43d726d6",
            "selector": "0x43d726d6",
            "calldata_variants": [
                "0x43d726d6",
                "0x43d726d60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4e71e0c8",
            "selector": "0x4e71e0c8",
            "calldata_variants": [
                "0x4e71e0c8",
                "0x4e71e0c80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4edc689d",
            "selector": "0x4edc689d",
            "calldata_variants": [
                "0x4edc689d",
                "0x4edc689d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x521eb273",
            "selector": "0x521eb273",
            "calldata_variants": [
                "0x521eb273",
                "0x521eb2730000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x631449e5",
            "selector": "0x631449e5",
            "calldata_variants": [
                "0x631449e5",
                "0x631449e50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8c52dc41",
            "selector": "0x8c52dc41",
            "calldata_variants": [
                "0x8c52dc41",
                "0x8c52dc410000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1482,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "constant",
            "target_expression_category": "computed"
        },
        {
            "pc": 3420,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [
        {
            "pc": 1120,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1558,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1972,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 2261,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 2695,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 2854,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 2
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x95d24d70c45423c09662bf2bafec42403abf37ae74a6e30160722fec20346671
call_targets: 0x9ba6e731becc5c04878eef7d52c90a8cf07746ae
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x95d24d70c45423c09662bf2bafec42403abf37ae74a6e30160722fec20346671",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x9ba6e731becc5c04878eef7d52c90a8cf07746ae"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x13299604",
            "selector": "0x13299604",
            "calldata_variants": [
                "0x13299604",
                "0x132996040000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x43d726d6",
            "selector": "0x43d726d6",
            "calldata_variants": [
                "0x43d726d6",
                "0x43d726d60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4e71e0c8",
            "selector": "0x4e71e0c8",
            "calldata_variants": [
                "0x4e71e0c8",
                "0x4e71e0c80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4edc689d",
            "selector": "0x4edc689d",
            "calldata_variants": [
                "0x4edc689d",
                "0x4edc689d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x521eb273",
            "selector": "0x521eb273",
            "calldata_variants": [
                "0x521eb273",
                "0x521eb2730000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x631449e5",
            "selector": "0x631449e5",
            "calldata_variants": [
                "0x631449e5",
                "0x631449e50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8c52dc41",
            "selector": "0x8c52dc41",
            "calldata_variants": [
                "0x8c52dc41",
                "0x8c52dc410000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1482,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "constant",
            "target_expression_category": "computed"
        },
        {
            "pc": 3420,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": [
        {
            "pc": 1120,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1558,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 1972,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 2261,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 2695,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 2854,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
medium other codex External CALL with computed target/value and unchecked return 75 no
view
evidence_json
{
    "evidence": "Detector flagged 2 CALL sites with computed targets/values and returndata_checked = null; validation did not confirm variable targets and observed the contract\u2019s own address as a target candidate.",
    "locations": [
        "pc:0x5ca",
        "pc:0xd5c"
    ],
    "recommendation": "Confirm whether the CALL target/value can be influenced by untrusted callers. If so, restrict to an allowlist or enforce strict access control, and check/bubble up call return data. Consider reentrancy protections around external calls.",
    "exploit_scenario": "If any public entrypoint allows user-controlled call target or ETH value for these CALL sites, an attacker could trigger arbitrary external calls or ETH transfers (and potentially reentrancy) to drain funds or manipulate state. Validation data suggests the target may be constant (possibly self-call), so impact depends on actual reachability and control over arguments."
}
low access_control codex Authorization guard compares msg.sender to constant 0xffff… (possible hardcoded admin/lockout) 65 no
view
evidence_json
{
    "evidence": "Auth heuristics report msg_sender_eq_const at pcs 1120, 1558, 1972, 2261, 2695, 2854 with value 0xffffffffffffffffffffffffffffffffffffffff.",
    "locations": [
        "pc:0x460",
        "pc:0x616",
        "pc:0x7b4",
        "pc:0x8d5",
        "pc:0xa87",
        "pc:0xb26"
    ],
    "recommendation": "Verify whether access control is intended to be hardcoded. Prefer storage-based ownership with proper initialization and the ability to rotate the admin. If this is a heuristic artifact, confirm the real owner/role checks in source or with more precise analysis.",
    "exploit_scenario": "If the guard truly compares msg.sender to 0xffff\u2026 then privileged functions may be permanently inaccessible or controlled by an unexpected hardcoded address. This could affect admin actions (e.g., ownership transfer selector 0xf2fde38b) and operational controls."
}