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

Analysis Run

019b3836-229f-7340-9526-a8183608906c

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

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
325 artifact.fetch complete 1 / 3 3 months ago
326 tool.cast_disasm complete 1 / 3 3 months ago
43639 analysis.bundle complete 1 / 3 1 week ago
43640 capability.graph complete 1 / 3 1 week ago
43641 detector.run complete 1 / 3 1 week ago
43642 validation.fork complete 1 / 3 1 week ago
96181 report.consolidate complete 1 / 6 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Bytecode-only review found two meaningful accounting risks: settlement/refund paths use value-transferring CALLs with a hard-coded 5000 gas cap, ignore the success flag, and in the main settlement path clear storage afterward. No delegatecall/proxy issue was evidenced in the bundle.
View stdout
{"no_findings":false,"summary":"Bytecode-only review found two meaningful accounting risks: settlement/refund paths use value-transferring CALLs with a hard-coded 5000 gas cap, ignore the success flag, and in the main settlement path clear storage afterward. No delegatecall/proxy issue was evidenced in the bundle.","findings":[{"severity":"high","category":"other","title":"Settlement clears accounting even when ETH payouts fail","exploit_scenario":"A participant or payout recipient can be a contract whose fallback reverts or needs more than 5000 gas. When the settlement path executes, the ETH sends fail silently, but the function continues and clears the tracked balances/recipient state. The contract balance then remains in the contract without matching storage, so users can lose access to owed funds even though the settlement appears to have completed.","recommendation":"Do not ignore low-level call results. Revert the whole settlement if any payout fails, or switch to a pull-payment model where recipients withdraw themselves. Avoid hard-coded 5000-gas sends to untrusted recipients unless failure is explicitly handled.","evidence":"In selector 0xf2e497ae, pc 2093 and pc 2204 perform CALL with nonzero value to storage-derived recipients using gas 0x1388 (5000) and immediately POP the return value. The same routine then zeroes settlement-related storage with SSTOREs at pcs 2277, 2291, 2305, 2354, 2385, 2400, 2415, 2430, 2445, and 2511. This is strong evidence that failed payouts do not roll back accounting. This conclusion is based on bytecode semantics; exact field names are unknown.","locations":["selector:0xf2e497ae","pc:0x82d","pc:0x89c","pc:0x8e5","pc:0x8f3","pc:0x901","pc:0x932","pc:0x951","pc:0x960","pc:0x96f","pc:0x97e","pc:0x98d","pc:0x9cf"]},{"severity":"medium","category":"other","title":"Refund-on-error path can silently trap ETH","exploit_scenario":"If the payable entry path decides the supplied value is invalid, it attempts to refund msg.value back to msg.sender. A contract caller with a reverting or gas-hungry fallback can cause that refund to fail, while the function still returns an error code instead of reverting. The user-facing effect is that the call looks handled, but the ETH stays inside the contract.","recommendation":"For refund/error handling, check the CALL success flag and revert if the refund fails. Alternatively, avoid inline refunds and require explicit withdrawal from a credited balance.","evidence":"In selector 0x5a9809ed, the branch at pc 117 executes a CALL to CALLER with value=CALLVALUE and gas 0x1388 (5000), then POPs the success flag and returns a sentinel value. There is no evidence of a revert or compensating state update if that refund CALL fails. Because this is inferred from bytecode only, the exact business condition triggering the refund is best-effort.","locations":["selector:0x5a9809ed","pc:0x82"]}]}
View stderr
OpenAI Codex v0.118.0 (research preview)
--------
workdir: /tmp/codex-9rch6zu6
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5b1a-cc99-7b01-a3dc-aa4ab1adac0e
--------
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 'ls -la /tmp/codex-9rch6zu6' in /tmp/codex-9rch6zu6
 succeeded in 0ms:
total 176
drwx------   2 noahkuhn noahkuhn   4096 Apr  5 00:46 .
drwxrwxrwt 270 nobody   nogroup   24576 Apr  5 00:46 ..
-rw-rw-r--   1 noahkuhn noahkuhn 141895 Apr  5 00:46 BYTECODE_BUNDLE.json
-rw-rw-r--   1 noahkuhn noahkuhn    815 Apr  5 00:46 codex-output-schema.json

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

exec
/bin/bash -lc "sed -n '1,220p' /tmp/codex-9rch6zu6/codex-output-schema.json" in /tmp/codex-9rch6zu6
 succeeded in 0ms:
{"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
exec
/bin/bash -lc "sed -n '1,260p' /tmp/codex-9rch6zu6/BYTECODE_BUNDLE.json" in /tmp/codex-9rch6zu6
 succeeded in 0ms:
{
  "analysis_artifact": {
    "address": "0xe881af13bf55c97562fe8d2da2f6ea8e3ff66f98",
    "artifact_hash": "0x3429f7040a761f9baf463cc18ace85e86466a442cc7162e7419e135c50894833",
    "artifact_json": {
      "auth": {
        "guards": [
          {
            "pc": 1453,
            "type": "msg_sender_eq_storage"
          },
          {
            "pc": 1535,
            "type": "msg_sender_eq_storage"
          },
          {
            "pc": 1582,
            "type": "msg_sender_eq_storage"
          }
        ]
      },
      "basic_blocks": [
        {
          "end_pc": 51,
          "hash": "0x5723e7b581a74915e4bb870d0de7cef828473daa28271a75e0901edf45dba1f4",
          "opcodes": [
            "PUSH1",
            "PUSH2",
            "MSTORE8",
            "PUSH29",
            "PUSH1",
            "CALLDATALOAD",
            "DIV",
            "PUSH4",
            "OP_81",
            "EQ",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 0
        },
        {
          "end_pc": 116,
          "hash": "0xc64afa52a6ed8bede3d748810a7ce462e4981d12064d05e580e91fca3c57f64e",
          "opcodes": [
            "CALLDATASIZE",
            "MSIZE",
            "OP_90",
            "MSIZE",
            "ADD",
            "PUSH1",
            "OP_90",
            "MSTORE",
            "CALLDATASIZE",
            "PUSH1",
            "OP_82",
            "CALLDATACOPY",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "OP_82",
            "ADD",
            "ADD",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "CALLDATALOAD",
            "PUSH1",
            "OP_82",
            "ADD",
            "ADD",
            "PUSH1",
            "MSTORE",
            "POP",
            "PUSH1",
            "MLOAD",
            "CALLVALUE",
            "SLT",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 52
        },
        {
          "end_pc": 146,
          "hash": "0x95d0c443df0c99f8a354fb812005646077227c41ffc97c4664d745bfc7492010",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "CALLVALUE",
            "CALLER",
            "PUSH2",
            "CALL",
            "POP",
            "PUSH1",
            "PUSH1",
            "SUB",
            "PUSH2",
            "MSTORE",
            "PUSH1",
            "PUSH2",
            "RETURN"
          ],
          "start_pc": 117
        },
        {
          "end_pc": 218,
          "hash": "0xb9ce58bbe35e398f5c2229dc30c044b46aaa7239b0fb94f3c9bb027c4002249b",
          "opcodes": [
            "JUMPDEST",
            "PUSH15",
            "SLOAD",
            "PUSH2",
            "MSTORE",
            "PUSH1",
            "MLOAD",
            "CALLVALUE",
            "SUB",
            "PUSH2",
            "PUSH2",
            "MLOAD",
            "MUL",
            "SSTORE",
            "PUSH1",
            "MLOAD",
            "PUSH2",
            "PUSH2",
            "MLOAD",
            "MUL",
            "PUSH1",
            "ADD",
            "SSTORE",
            "PUSH1",
            "MLOAD",
            "PUSH2",
            "PUSH2",
            "MLOAD",
            "MUL",
            "PUSH1",
            "ADD",
            "SSTORE",
            "PUSH1",
            "PUSH2",
            "MSTORE"
          ],
          "start_pc": 147
        },
        {
          "end_pc": 236,
          "hash": "0x995d1a31fd400d8af3a2d04aceb99954c5bd7a6681dde9f2c81ec11ed124e370",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "MLOAD",
            "SUB",
            "MLOAD",
            "PUSH2",
            "MLOAD",
            "SLT",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 219
        },
        {
          "end_pc": 347,
          "hash": "0x04e9bedf1d5e76f7b3ddd89fba307c47a47c9facb81aa2ed6c78f62dbf111cae",
          "opcodes": [
            "PUSH2",
            "MLOAD",
            "PUSH1",
            "MUL",
            "PUSH1",
            "MLOAD",
            "ADD",
            "MLOAD",
            "PUSH2",
            "MLOAD",
            "PUSH2",
            "PUSH2",
            "MLOAD",
            "MUL",
            "PUSH1",
            "ADD",
            "ADD",
            "SSTORE",
            "PUSH1",
            "PUSH1",
            "MSIZE",
            "OP_90",
            "MSIZE",
            "ADD",
            "PUSH1",
            "OP_90",
            "MSTORE",
            "ADD",
            "PUSH2",
            "MLOAD",
            "PUSH2",
            "MLOAD",
            "PUSH1",
            "MUL",
            "PUSH1",
            "MLOAD",
            "ADD",
            "MLOAD",
            "PUSH32",
            "PUSH1",
            "OP_84",
            "OP_A3",
            "POP",
            "PUSH1",
            "PUSH2",
            "MLOAD",
            "ADD",
            "PUSH2",
            "MSTORE",
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 237
        },
        {
          "end_pc": 410,
          "hash": "0x4f5fe04325200d70b49280d95a20c5c825946d7dd27bd922b0f3729ac923e317",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH1",
            "MLOAD",
            "SUB",
            "MLOAD",
            "PUSH2",
            "PUSH2",
            "MLOAD",
            "MUL",
            "PUSH2",
            "ADD",
            "SSTORE",
            "PUSH1",
            "MLOAD",
            "PUSH2",

exec
/bin/bash -lc "rg -n 'detector|delegatecall|DELEGATECALL|CALL\\\"|CALL,|STATICCALL|SELFDESTRUCT|selectors|storage|proxy|1967|callsites|findings|external|SSTORE|CALLER' /tmp/codex-9rch6zu6/BYTECODE_BUNDLE.json" in /tmp/codex-9rch6zu6
 succeeded in 0ms:
10:            "type": "msg_sender_eq_storage"
14:            "type": "msg_sender_eq_storage"
18:            "type": "msg_sender_eq_storage"
107:            "CALLER",
109:            "CALL",
139:            "SSTORE",
148:            "SSTORE",
157:            "SSTORE",
204:            "SSTORE",
257:            "SSTORE",
266:            "SSTORE",
278:            "SSTORE",
329:            "SSTORE",
351:            "SSTORE",
464:            "CALL",
507:            "CALL",
552:            "CALL",
1150:            "CALLER",
1236:            "CALLER",
1299:            "CALLER",
1411:            "SSTORE",
1426:            "CALLER",
1476:            "SSTORE",
1540:            "SSTORE",
1750:            "CALL",
1849:            "CALL",
1877:            "SSTORE",
1885:            "SSTORE",
1893:            "SSTORE",
1935:            "SSTORE",
1959:            "SSTORE",
1967:            "SSTORE",
1975:            "SSTORE",
1983:            "SSTORE",
1991:            "SSTORE",
2050:            "SSTORE"
2102:      "callsites": [
2104:          "opcode": "CALL",
2111:          "opcode": "CALL",
2118:          "opcode": "CALL",
2125:          "opcode": "CALL",
2132:          "opcode": "CALL",
2139:          "opcode": "CALL",
2750:                "type": "msg_sender_eq_storage"
2754:                "type": "msg_sender_eq_storage"
2758:                "type": "msg_sender_eq_storage"
2766:            "delegatecall": 0,
2770:          "storage": {
2779:                "op": "SSTORE",
2784:                "op": "SSTORE",
2789:                "op": "SSTORE",
2799:                "op": "SSTORE",
2804:                "op": "SSTORE",
2809:                "op": "SSTORE",
2814:                "op": "SSTORE",
2819:                "op": "SSTORE",
2824:                "op": "SSTORE",
2829:                "op": "SSTORE",
2834:                "op": "SSTORE",
2839:                "op": "SSTORE",
2844:                "op": "SSTORE",
2857:                "type": "msg_sender_eq_storage"
2861:                "type": "msg_sender_eq_storage"
2865:                "type": "msg_sender_eq_storage"
2873:            "delegatecall": 0,
2877:          "storage": {
2886:                "op": "SSTORE",
2891:                "op": "SSTORE",
2896:                "op": "SSTORE",
2906:                "op": "SSTORE",
2911:                "op": "SSTORE",
2916:                "op": "SSTORE",
2921:                "op": "SSTORE",
2926:                "op": "SSTORE",
2931:                "op": "SSTORE",
2936:                "op": "SSTORE",
2941:                "op": "SSTORE",
2946:                "op": "SSTORE",
2951:                "op": "SSTORE",
2964:                "type": "msg_sender_eq_storage"
2968:                "type": "msg_sender_eq_storage"
2972:                "type": "msg_sender_eq_storage"
2980:            "delegatecall": 0,
2984:          "storage": {
2993:                "op": "SSTORE",
2998:                "op": "SSTORE",
3003:                "op": "SSTORE",
3013:                "op": "SSTORE",
3018:                "op": "SSTORE",
3023:                "op": "SSTORE",
3028:                "op": "SSTORE",
3033:                "op": "SSTORE",
3038:                "op": "SSTORE",
3043:                "op": "SSTORE",
3048:                "op": "SSTORE",
3053:                "op": "SSTORE",
3058:                "op": "SSTORE",
3071:                "type": "msg_sender_eq_storage"
3075:                "type": "msg_sender_eq_storage"
3079:                "type": "msg_sender_eq_storage"
3087:            "delegatecall": 0,
3091:          "storage": {
3100:                "op": "SSTORE",
3105:                "op": "SSTORE",
3110:                "op": "SSTORE",
3120:                "op": "SSTORE",
3125:                "op": "SSTORE",
3130:                "op": "SSTORE",
3135:                "op": "SSTORE",
3140:                "op": "SSTORE",
3145:                "op": "SSTORE",
3150:                "op": "SSTORE",
3155:                "op": "SSTORE",
3160:                "op": "SSTORE",
3165:                "op": "SSTORE",
3178:                "type": "msg_sender_eq_storage"
3182:                "type": "msg_sender_eq_storage"
3186:                "type": "msg_sender_eq_storage"
3194:            "delegatecall": 0,
3198:          "storage": {
3207:                "op": "SSTORE",
3212:                "op": "SSTORE",
3217:                "op": "SSTORE",
3227:                "op": "SSTORE",
3232:                "op": "SSTORE",
3237:                "op": "SSTORE",
3242:                "op": "SSTORE",
3247:                "op": "SSTORE",
3252:                "op": "SSTORE",
3257:                "op": "SSTORE",
3262:                "op": "SSTORE",
3267:                "op": "SSTORE",
3272:                "op": "SSTORE",
3285:                "type": "msg_sender_eq_storage"
3289:                "type": "msg_sender_eq_storage"
3293:                "type": "msg_sender_eq_storage"
3301:            "delegatecall": 0,
3305:          "storage": {
3314:                "op": "SSTORE",
3319:                "op": "SSTORE",
3324:                "op": "SSTORE",
3334:                "op": "SSTORE",
3339:                "op": "SSTORE",
3344:                "op": "SSTORE",
3349:                "op": "SSTORE",
3354:                "op": "SSTORE",
3359:                "op": "SSTORE",
3364:                "op": "SSTORE",
3369:                "op": "SSTORE",
3374:                "op": "SSTORE",
3379:                "op": "SSTORE",
3392:                "type": "msg_sender_eq_storage"
3396:                "type": "msg_sender_eq_storage"
3400:                "type": "msg_sender_eq_storage"
3408:            "delegatecall": 0,
3412:          "storage": {
3421:                "op": "SSTORE",
3426:                "op": "SSTORE",
3431:                "op": "SSTORE",
3441:                "op": "SSTORE",
3446:                "op": "SSTORE",
3451:                "op": "SSTORE",
3456:                "op": "SSTORE",
3461:                "op": "SSTORE",
3466:                "op": "SSTORE",
3471:                "op": "SSTORE",
3476:                "op": "SSTORE",
3481:                "op": "SSTORE",
3486:                "op": "SSTORE",
3499:                "type": "msg_sender_eq_storage"
3503:                "type": "msg_sender_eq_storage"
3507:                "type": "msg_sender_eq_storage"
3515:            "delegatecall": 0,
3519:          "storage": {
3528:                "op": "SSTORE",
3533:                "op": "SSTORE",
3538:                "op": "SSTORE",
3548:                "op": "SSTORE",
3553:                "op": "SSTORE",
3558:                "op": "SSTORE",
3563:                "op": "SSTORE",
3568:                "op": "SSTORE",
3573:                "op": "SSTORE",
3578:                "op": "SSTORE",
3583:                "op": "SSTORE",
3588:                "op": "SSTORE",
3593:                "op": "SSTORE",
3602:      "selectors": [
3616:        "delegatecall": 0,
3621:      "storage": {
3631:            "op": "SSTORE",
3636:            "op": "SSTORE",
3641:            "op": "SSTORE",
3651:            "op": "SSTORE",
3656:            "op": "SSTORE",
3661:            "op": "SSTORE",
3666:            "op": "SSTORE",
3671:            "op": "SSTORE",
3676:            "op": "SSTORE",
3681:            "op": "SSTORE",
3686:            "op": "SSTORE",
3691:            "op": "SSTORE",
3696:            "op": "SSTORE",
3732:    "is_proxy": false,
5005:          "opcode": "CALL",
5011:          "opcode": "CALL",
5017:          "opcode": "CALL",
5023:          "opcode": "CALL",
5029:          "opcode": "CALL",
5035:          "opcode": "CALL",
5098:  "detector_findings": [
5105:            "opcode": "CALL",
5112:            "opcode": "CALL",
5119:            "opcode": "CALL",
5129:            "type": "msg_sender_eq_storage"
5133:            "type": "msg_sender_eq_storage"
5137:            "type": "msg_sender_eq_storage"
5143:        "sink": "CALL"
5158:        "sink": "CALL",
5171:            "opcode": "CALL",
5178:            "opcode": "CALL",
5185:            "opcode": "CALL",
5195:            "type": "msg_sender_eq_storage"
5199:            "type": "msg_sender_eq_storage"
5203:            "type": "msg_sender_eq_storage"
5208:        "sink": "CALL",
5224:        "sink": "CALL",
5234:    "delegatecall_count": 0,

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

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.selectors' /tmp/codex-9rch6zu6/BYTECODE_BUNDLE.json" in /tmp/codex-9rch6zu6
 succeeded in 0ms:
[
  "0x5a9809ed",
  "0xd5f39e24",
  "0xa11af387",
  "0x7b0ae934",
  "0xd966f799",
  "0x3cd86b77",
  "0x8f26e0fe",
  "0xf2e497ae"
]

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.callsites' /tmp/codex-9rch6zu6/BYTECODE_BUNDLE.json" in /tmp/codex-9rch6zu6
 succeeded in 0ms:
[
  {
    "opcode": "CALL",
    "pc": 130,
    "returndata_checked": null,
    "target_expression_category": "constant",
    "value_expression_category": "constant_zero"
  },
  {
    "opcode": "CALL",
    "pc": 652,
    "returndata_checked": null,
    "target_expression_category": "computed",
    "value_expression_category": "constant"
  },
  {
    "opcode": "CALL",
    "pc": 691,
    "returndata_checked": null,
    "target_expression_category": "computed",
    "value_expression_category": "computed"
  },
  {
    "opcode": "CALL",
    "pc": 731,
    "returndata_checked": null,
    "target_expression_category": "computed",
    "value_expression_category": "computed"
  },
  {
    "opcode": "CALL",
    "pc": 2093,
    "returndata_checked": null,
    "target_expression_category": "constant",
    "value_expression_category": "constant_zero"
  },
  {
    "opcode": "CALL",
    "pc": 2204,
    "returndata_checked": null,
    "target_expression_category": "constant",
    "value_expression_category": "constant_zero"
  }
]

exec
/bin/bash -lc "jq '.detector_findings' /tmp/codex-9rch6zu6/BYTECODE_BUNDLE.json" in /tmp/codex-9rch6zu6
 succeeded in 0ms:
[
  {
    "confidence": 45,
    "evidence_json": {
      "call_count": 6,
      "examples": [
        {
          "opcode": "CALL",
          "pc": 652,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "constant"
        },
        {
          "opcode": "CALL",
          "pc": 691,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 731,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        }
      ],
      "guards_detected": [
        {
          "pc": 1453,
          "type": "msg_sender_eq_storage"
        },
        {
          "pc": 1535,
          "type": "msg_sender_eq_storage"
        },
        {
          "pc": 1582,
          "type": "msg_sender_eq_storage"
        }
      ],
      "untrusted_call_count": 3
    },
    "normalized_json": {
      "sink": "CALL"
    },
    "severity": "medium",
    "title": "Untrusted CALL target/value reachable",
    "validated": true,
    "validation_json": {
      "attempts": 1,
      "call_targets": [
        "0x0000000000000000000000000000000000000004",
        "0xe881af13bf55c97562fe8d2da2f6ea8e3ff66f98"
      ],
      "classification": "target_varies",
      "confirmed": true,
      "errors": 0,
      "matched_probe": null,
      "sink": "CALL",
      "status": "confirmed",
      "target_varies": true,
      "trace_id": "0xecb988addb74b8b83ee7d34fd147817300d9a87bc616c829980120049f95f98d",
      "trace_mode": "callTracer"
    }
  },
  {
    "confidence": 40,
    "evidence_json": {
      "eth_value_calls": 3,
      "examples": [
        {
          "opcode": "CALL",
          "pc": 652,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "constant"
        },
        {
          "opcode": "CALL",
          "pc": 691,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 731,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        }
      ],
      "guards_detected": [
        {
          "pc": 1453,
          "type": "msg_sender_eq_storage"
        },
        {
          "pc": 1535,
          "type": "msg_sender_eq_storage"
        },
        {
          "pc": 1582,
          "type": "msg_sender_eq_storage"
        }
      ]
    },
    "normalized_json": {
      "sink": "CALL",
      "value": "nonzero"
    },
    "severity": "medium",
    "title": "ETH value transfer possible",
    "validated": true,
    "validation_json": {
      "attempts": 1,
      "call_targets": [
        "0x0000000000000000000000000000000000000004",
        "0xe881af13bf55c97562fe8d2da2f6ea8e3ff66f98"
      ],
      "classification": "target_varies",
      "confirmed": true,
      "errors": 0,
      "matched_probe": null,
      "sink": "CALL",
      "status": "confirmed",
      "target_varies": true,
      "trace_id": "0xecb988addb74b8b83ee7d34fd147817300d9a87bc616c829980120049f95f98d",
      "trace_mode": "callTracer"
    }
  }
]

exec
/bin/bash -lc "jq '.heuristics_summary' /tmp/codex-9rch6zu6/BYTECODE_BUNDLE.json" in /tmp/codex-9rch6zu6
 succeeded in 0ms:
{
  "create2_count": 0,
  "delegatecall_count": 0,
  "flags": [],
  "selfdestruct_count": 0
}

exec
/bin/bash -lc "jq '.capability_graph' /tmp/codex-9rch6zu6/BYTECODE_BUNDLE.json" in /tmp/codex-9rch6zu6
 succeeded in 0ms:
{
  "address": "0xe881af13bf55c97562fe8d2da2f6ea8e3ff66f98",
  "block_number": null,
  "chain_id": 1,
  "codehash": "0x14ec3badbfda5bbc9e5df724588ca0f91275c1d43d4ac9b14449d713212a2c1a",
  "created_at": "2026-04-04T19:45:40.000000Z",
  "graph_hash": "0x54508cfc3299d6ddc0da332e8ac6f2de56de3de8d0acd21b57e224b0f055c4e7",
  "graph_json": {
    "edges": [
      {
        "from": "bb:0",
        "to": "bb:812",
        "type": "control_flow"
      },
      {
        "from": "bb:0",
        "to": "bb:52",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:52",
        "to": "bb:147",
        "type": "control_flow"
      },
      {
        "from": "bb:52",
        "to": "bb:117",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:147",
        "to": "bb:219",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:219",
        "to": "bb:348",
        "type": "control_flow"
      },
      {
        "from": "bb:219",
        "to": "bb:237",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:237",
        "to": "bb:219",
        "type": "control_flow"
      },
      {
        "from": "bb:348",
        "to": "bb:411",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:411",
        "to": "bb:480",
        "type": "control_flow"
      },
      {
        "from": "bb:411",
        "to": "bb:432",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:432",
        "to": "bb:411",
        "type": "control_flow"
      },
      {
        "from": "bb:480",
        "to": "bb:658",
        "type": "control_flow"
      },
      {
        "from": "bb:480",
        "to": "bb:657",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:658",
        "to": "bb:697",
        "type": "control_flow"
      },
      {
        "from": "bb:658",
        "to": "bb:696",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:697",
        "to": "bb:737",
        "type": "control_flow"
      },
      {
        "from": "bb:697",
        "to": "bb:736",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:812",
        "to": "bb:851",
        "type": "control_flow"
      },
      {
        "from": "bb:812",
        "to": "bb:825",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:851",
        "to": "bb:949",
        "type": "control_flow"
      },
      {
        "from": "bb:851",
        "to": "bb:864",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:948",
        "to": "bb:949",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:949",
        "to": "bb:1103",
        "type": "control_flow"
      },
      {
        "from": "bb:949",
        "to": "bb:962",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:962",
        "to": "bb:1007",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1007",
        "to": "bb:1071",
        "type": "control_flow"
      },
      {
        "from": "bb:1007",
        "to": "bb:1023",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1023",
        "to": "bb:1007",
        "type": "control_flow"
      },
      {
        "from": "bb:1102",
        "to": "bb:1103",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1103",
        "to": "bb:1146",
        "type": "control_flow"
      },
      {
        "from": "bb:1103",
        "to": "bb:1116",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1146",
        "to": "bb:1314",
        "type": "control_flow"
      },
      {
        "from": "bb:1146",
        "to": "bb:1159",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1159",
        "to": "bb:1205",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1205",
        "to": "bb:1276",
        "type": "control_flow"
      },
      {
        "from": "bb:1205",
        "to": "bb:1224",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1224",
        "to": "bb:1205",
        "type": "control_flow"
      },
      {
        "from": "bb:1313",
        "to": "bb:1314",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1314",
        "to": "bb:1354",
        "type": "control_flow"
      },
      {
        "from": "bb:1314",
        "to": "bb:1327",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1354",
        "to": "bb:2542",
        "type": "control_flow"
      },
      {
        "from": "bb:1354",
        "to": "bb:1367",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1367",
        "to": "bb:1411",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1411",
        "to": "bb:1521",
        "type": "control_flow"
      },
      {
        "from": "bb:1411",
        "to": "bb:1435",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1435",
        "to": "bb:1505",
        "type": "control_flow"
      },
      {
        "from": "bb:1435",
        "to": "bb:1459",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1459",
        "to": "bb:1504",
        "type": "control_flow"
      },
      {
        "from": "bb:1459",
        "to": "bb:1496",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1496",
        "to": "bb:1504",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1504",
        "to": "bb:1505",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1505",
        "to": "bb:1411",
        "type": "control_flow"
      },
      {
        "from": "bb:1521",
        "to": "bb:1552",
        "type": "control_flow"
      },
      {
        "from": "bb:1521",
        "to": "bb:1541",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1541",
        "to": "bb:1555",
        "type": "control_flow"
      },
      {
        "from": "bb:1552",
        "to": "bb:1555",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1555",
        "to": "bb:1568",
        "type": "control_flow"
      },
      {
        "from": "bb:1555",
        "to": "bb:1561",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1561",
        "to": "bb:1568",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1568",
        "to": "bb:1599",
        "type": "control_flow"
      },
      {
        "from": "bb:1568",
        "to": "bb:1588",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1588",
        "to": "bb:1602",
        "type": "control_flow"
      },
      {
        "from": "bb:1599",
        "to": "bb:1602",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1602",
        "to": "bb:1615",
        "type": "control_flow"
      },
      {
        "from": "bb:1602",
        "to": "bb:1608",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1608",
        "to": "bb:1615",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1615",
        "to": "bb:1643",
        "type": "control_flow"
      },
      {
        "from": "bb:1615",
        "to": "bb:1631",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1643",
        "to": "bb:1918",
        "type": "control_flow"
      },
      {
        "from": "bb:1643",
        "to": "bb:1757",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1757",
        "to": "bb:1841",
        "type": "control_flow"
      },
      {
        "from": "bb:1757",
        "to": "bb:1766",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1766",
        "to": "bb:1836",
        "type": "control_flow"
      },
      {
        "from": "bb:1766",
        "to": "bb:1830",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1830",
        "to": "bb:1836",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1836",
        "to": "bb:1913",
        "type": "control_flow"
      },
      {
        "from": "bb:1841",
        "to": "bb:1912",
        "type": "control_flow"
      },
      {
        "from": "bb:1841",
        "to": "bb:1906",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1906",
        "to": "bb:1912",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1912",
        "to": "bb:1913",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1913",
        "to": "bb:1942",
        "type": "control_flow"
      },
      {
        "from": "bb:1918",
        "to": "bb:1934",
        "type": "control_flow"
      },
      {
        "from": "bb:1918",
        "to": "bb:1928",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1928",
        "to": "bb:1937",
        "type": "control_flow"
      },
      {
        "from": "bb:1934",
        "to": "bb:1937",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1937",
        "to": "bb:1942",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1942",
        "to": "bb:2529",
        "type": "control_flow"
      },
      {
        "from": "bb:1942",
        "to": "bb:1952",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:1952",
        "to": "bb:2011",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2011",
        "to": "bb:2111",
        "type": "control_flow"
      },
      {
        "from": "bb:2011",
        "to": "bb:2035",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2035",
        "to": "bb:2095",
        "type": "control_flow"
      },
      {
        "from": "bb:2035",
        "to": "bb:2061",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2061",
        "to": "bb:2095",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2095",
        "to": "bb:2011",
        "type": "control_flow"
      },
      {
        "from": "bb:2111",
        "to": "bb:2140",
        "type": "control_flow"
      },
      {
        "from": "bb:2111",
        "to": "bb:2124",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2124",
        "to": "bb:2153",
        "type": "control_flow"
      },
      {
        "from": "bb:2140",
        "to": "bb:2153",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2153",
        "to": "bb:2312",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2312",
        "to": "bb:2370",
        "type": "control_flow"
      },
      {
        "from": "bb:2312",
        "to": "bb:2336",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2336",
        "to": "bb:2312",
        "type": "control_flow"
      },
      {
        "from": "bb:2370",
        "to": "bb:2452",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2452",
        "to": "bb:2528",
        "type": "control_flow"
      },
      {
        "from": "bb:2452",
        "to": "bb:2465",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2465",
        "to": "bb:2512",
        "type": "control_flow"
      },
      {
        "from": "bb:2465",
        "to": "bb:2492",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2492",
        "to": "bb:2512",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:2512",
        "to": "bb:2452",
        "type": "control_flow"
      },
      {
        "from": "bb:2528",
        "to": "bb:2529",
        "type": "control_flow_fallthrough"
      },
      {
        "from": "bb:117",
        "to": "call:130",
        "type": "contains"
      },
      {
        "from": "call:130",
        "to": "sink:call",
        "type": "capability"
      },
      {
        "from": "bb:480",
        "to": "call:652",
        "type": "contains"
      },
      {
        "from": "call:652",
        "to": "sink:call",
        "type": "capability"
      },
      {
        "from": "bb:658",
        "to": "call:691",
        "type": "contains"
      },
      {
        "from": "call:691",
        "to": "sink:call",
        "type": "capability"
      },
      {
        "from": "bb:697",
        "to": "call:731",
        "type": "contains"
      },
      {
        "from": "call:731",
        "to": "sink:call",
        "type": "capability"
      },
      {
        "from": "bb:2061",
        "to": "call:2093",
        "type": "contains"
      },
      {
        "from": "call:2093",
        "to": "sink:call",
        "type": "capability"
      },
      {
        "from": "bb:2153",
        "to": "call:2204",
        "type": "contains"
      },
      {
        "from": "call:2204",
        "to": "sink:call",
        "type": "capability"
      }
    ],
    "nodes": [
      {
        "end_pc": 51,
        "hash": "0x5723e7b581a74915e4bb870d0de7cef828473daa28271a75e0901edf45dba1f4",
        "id": "bb:0",
        "start_pc": 0,
        "type": "basic_block"
      },
      {
        "end_pc": 116,
        "hash": "0xc64afa52a6ed8bede3d748810a7ce462e4981d12064d05e580e91fca3c57f64e",
        "id": "bb:52",
        "start_pc": 52,
        "type": "basic_block"
      },
      {
        "end_pc": 146,
        "hash": "0x95d0c443df0c99f8a354fb812005646077227c41ffc97c4664d745bfc7492010",
        "id": "bb:117",
        "start_pc": 117,
        "type": "basic_block"
      },
      {
        "end_pc": 218,
        "hash": "0xb9ce58bbe35e398f5c2229dc30c044b46aaa7239b0fb94f3c9bb027c4002249b",
        "id": "bb:147",
        "start_pc": 147,
        "type": "basic_block"
      },
      {
        "end_pc": 236,
        "hash": "0x995d1a31fd400d8af3a2d04aceb99954c5bd7a6681dde9f2c81ec11ed124e370",
        "id": "bb:219",
        "start_pc": 219,
        "type": "basic_block"
      },
      {
        "end_pc": 347,
        "hash": "0x04e9bedf1d5e76f7b3ddd89fba307c47a47c9facb81aa2ed6c78f62dbf111cae",
        "id": "bb:237",
        "start_pc": 237,
        "type": "basic_block"
      },
      {
        "end_pc": 410,
        "hash": "0x4f5fe04325200d70b49280d95a20c5c825946d7dd27bd922b0f3729ac923e317",
        "id": "bb:348",
        "start_pc": 348,
        "type": "basic_block"
      },
      {
        "end_pc": 431,
        "hash": "0xbb5eaa7d8ade37dfdbe2fd7fc17d1f46146c144d8a78ce12a3703db2924e4581",
        "id": "bb:411",
        "start_pc": 411,
        "type": "basic_block"
      },
      {
        "end_pc": 479,
        "hash": "0x8ce3febd87531c167b39638f21ff3277425467da4f9abeb9f8e71582433c17b2",
        "id": "bb:432",
        "start_pc": 432,
        "type": "basic_block"
      },
      {
        "end_pc": 656,
        "hash": "0xdc6cde18a506eb8fcca268f7dbd46f64cc981f13ceea8af6eb02d3b402a4ea3a",
        "id": "bb:480",
        "start_pc": 480,
        "type": "basic_block"
      },
      {
        "end_pc": 657,
        "hash": "0x3bfb78486b215386193bd29d00dbe4ac6b0cc2bb4333a925f2ffeeb14de05570",
        "id": "bb:657",
        "start_pc": 657,
        "type": "basic_block"
      },
      {
        "end_pc": 695,
        "hash": "0xa9dd62bb1a7afd457f24065aad81d2301267c39581238ecde5f642358d7e955b",
        "id": "bb:658",
        "start_pc": 658,
        "type": "basic_block"
      },
      {
        "end_pc": 696,
        "hash": "0xdec2f753288586d9e2ce2cd344f33f06fcf14bccb3208cceebacfc21dd4026f9",
        "id": "bb:696",
        "start_pc": 696,
        "type": "basic_block"
      },
      {
        "end_pc": 735,
        "hash": "0x8521eca7a6ee9c51f0f220f240e6ab0af81ff23e025699bba01827bd52c56284",
        "id": "bb:697",
        "start_pc": 697,
        "type": "basic_block"
      },
      {
        "end_pc": 736,
        "hash": "0x78b379482b810b0e2ed777c9e81b1a10f5bcc0b4527db810231d4b5ad42a71d6",
        "id": "bb:736",
        "start_pc": 736,
        "type": "basic_block"
      },
      {
        "end_pc": 811,
        "hash": "0xc70880fb03365c6bd80352c76c51a7d5e6e37db0b3dd8b4d6e6013aa1eb982ca",
        "id": "bb:737",
        "start_pc": 737,
        "type": "basic_block"
      },
      {
        "end_pc": 824,
        "hash": "0x46e7c7733ecb5418befbaa55330483d9fa2b50ebf3a842180e5daae87abee271",
        "id": "bb:812",
        "start_pc": 812,
        "type": "basic_block"
      },
      {
        "end_pc": 850,
        "hash": "0x2d36bfbb744e530c24d7278c75a29770a36639e23d42fafae7bc3bc9fe78e867",
        "id": "bb:825",
        "start_pc": 825,
        "type": "basic_block"
      },
      {
        "end_pc": 863,
        "hash": "0xd2bd1cf66a9f14b968652acb6f14b10449e5a0f14626d360c36513b0a3c6ada1",
        "id": "bb:851",
        "start_pc": 851,
        "type": "basic_block"
      },
      {
        "end_pc": 947,
        "hash": "0x069b40b273d1b688084652d5ee7fb91552c7bb0d4a46d99e69eb9a561151db5d",
        "id": "bb:864",
        "start_pc": 864,
        "type": "basic_block"
      },
      {
        "end_pc": 948,
        "hash": "0xbcc65cc92732a07883cb9111bde4c1fa5a6f371bf7dccf29ef65f0cbb4063e68",
        "id": "bb:948",
        "start_pc": 948,
        "type": "basic_block"
      },
      {
        "end_pc": 961,
        "hash": "0xba51cd9d0179eb293bf7c31b56b9e9b23895a653c3e3d044204ace2b8f1b9a79",
        "id": "bb:949",
        "start_pc": 949,
        "type": "basic_block"
      },
      {
        "end_pc": 1006,
        "hash": "0x0aeae1e0355e00ca3dc45c15921adb98c7049a27d94f4acfcd258c431b04846d",
        "id": "bb:962",
        "start_pc": 962,
        "type": "basic_block"
      },
      {
        "end_pc": 1022,
        "hash": "0xfb81baa1ccd845b16cb09169ca0973cf932576a0013c77c423a60af062911223",
        "id": "bb:1007",
        "start_pc": 1007,
        "type": "basic_block"
      },
      {
        "end_pc": 1070,
        "hash": "0xced929f1f813864818c1eb52a43224e774d0906e859f60343897eba7dcab87b9",
        "id": "bb:1023",
        "start_pc": 1023,
        "type": "basic_block"
      },
      {
        "end_pc": 1101,
        "hash": "0xac371ab0ac073e3c33c7337ec7cea7c46b1ccf013ba45a35ca39192519fbd147",
        "id": "bb:1071",
        "start_pc": 1071,
        "type": "basic_block"
      },
      {
        "end_pc": 1102,
        "hash": "0xfdb3064c6afbc844b1b59aa429f73fc8ca8bebb6dedcb8be354695e1cd608cc7",
        "id": "bb:1102",
        "start_pc": 1102,
        "type": "basic_block"
      },
      {
        "end_pc": 1115,
        "hash": "0x878c0ac6a1c54b02ef506a8d94ccae7536a94be422594b0b12a194aea0e9eb41",
        "id": "bb:1103",
        "start_pc": 1103,
        "type": "basic_block"
      },
      {
        "end_pc": 1145,
        "hash": "0x1ac9669ea15371da163d55ad1efc1794eadd4aac2e7c029edb29ff0040b1bb1b",
        "id": "bb:1116",
        "start_pc": 1116,
        "type": "basic_block"
      },
      {
        "end_pc": 1158,
        "hash": "0xee0450e91529a68bdfcda9bab942ec2a2bd885d3b07cb32733dfe91285167ea1",
        "id": "bb:1146",
        "start_pc": 1146,
        "type": "basic_block"
      },
      {
        "end_pc": 1204,
        "hash": "0xc3855da757179a9777c7376267eda3023b77a9fa1ddd88466a776f0bb3cd1dfa",
        "id": "bb:1159",
        "start_pc": 1159,
        "type": "basic_block"
      },
      {
        "end_pc": 1223,
        "hash": "0x98d99eb414bfe6e7f52d6571a3ad4cb79249f7c61db1e06485ce2b48603e552e",
        "id": "bb:1205",
        "start_pc": 1205,
        "type": "basic_block"
      },
      {
        "end_pc": 1275,
        "hash": "0x4e8d35feabba534bd714be260c1735d52eeb21bfeb54bf9ac5ec41097815be8e",
        "id": "bb:1224",
        "start_pc": 1224,
        "type": "basic_block"
      },
      {
        "end_pc": 1312,
        "hash": "0x41c11aed06fdfef02e3ae6e48b98599c9c16c27cf49afc2805f848859e93e3a2",
        "id": "bb:1276",
        "start_pc": 1276,
        "type": "basic_block"
      },
      {
        "end_pc": 1313,
        "hash": "0x322f08406cdb67a1dfad5403143175f427654f135688990e8a661f59182705f5",
        "id": "bb:1313",
        "start_pc": 1313,
        "type": "basic_block"
      },
      {
        "end_pc": 1326,
        "hash": "0xcd971c88892faf823ef6b0f464328baf11cd30375e5d8a0bdb7c5ae5395b21e9",
        "id": "bb:1314",
        "start_pc": 1314,
        "type": "basic_block"
      },
      {
        "end_pc": 1353,
        "hash": "0xc429efdb539523877e3ec082f9dce562e0cc73beba8b0a10f6b10e37a21c94da",
        "id": "bb:1327",
        "start_pc": 1327,
        "type": "basic_block"
      },
      {
        "end_pc": 1366,
        "hash": "0xbf93d4f2c0fc5a767d92b348f445be0892942316e6ae24f8d73540d67500bd2e",
        "id": "bb:1354",
        "start_pc": 1354,
        "type": "basic_block"
      },
      {
        "end_pc": 1410,
        "hash": "0xa243201e35e077b4f1d5d155568156b32911b16dc91e1469047a89c1c3d319b8",
        "id": "bb:1367",
        "start_pc": 1367,
        "type": "basic_block"
      },
      {
        "end_pc": 1434,
        "hash": "0x34cf6ddbf2ecde259e77fa3f68b4a4e9c439543593329bb556fc6c3ad4b9e44e",
        "id": "bb:1411",
        "start_pc": 1411,
        "type": "basic_block"
      },
      {
        "end_pc": 1458,
        "hash": "0x4070326fdf4c2d3b74e6b1c5b856b9463840245062c1ee85d2e020c7637ab667",
        "id": "bb:1435",
        "start_pc": 1435,
        "type": "basic_block"
      },
      {
        "end_pc": 1495,
        "hash": "0x6f695bc6cc3c204d49f1006db097756855af68512350430a62cdc3ed54894723",
        "id": "bb:1459",
        "start_pc": 1459,
        "type": "basic_block"
      },
      {
        "end_pc": 1503,
        "hash": "0xd79f80a8855e4dd6935e807b75f231c31c2ede67cb95bc066f775d9a611c26ba",
        "id": "bb:1496",
        "start_pc": 1496,
        "type": "basic_block"
      },
      {
        "end_pc": 1504,
        "hash": "0xf8a0f5a98beadf8f2f0b15991e3c49914b03898cd58375df58e028ecaed3aba6",
        "id": "bb:1504",
        "start_pc": 1504,
        "type": "basic_block"
      },
      {
        "end_pc": 1520,
        "hash": "0xe3891146d668a92d37a5f8956c1b68950adb4322cbd02abfcde926ed1743c456",
        "id": "bb:1505",
        "start_pc": 1505,
        "type": "basic_block"
      },
      {
        "end_pc": 1540,
        "hash": "0x034b682c8fca7f8e2e61544b4069ea970ead3010a413d7db9ad058dcef0a328d",
        "id": "bb:1521",
        "start_pc": 1521,
        "type": "basic_block"
      },
      {
        "end_pc": 1551,
        "hash": "0x70bf7a2e1418f90ed84439bf1f857f4cdc48f0a7ec5dc15676e7c6196ee7de9d",
        "id": "bb:1541",
        "start_pc": 1541,
        "type": "basic_block"
      },
      {
        "end_pc": 1553,
        "hash": "0x4843abda37db57888a978b8506e6099579af0460f1999a9afb2f3d0e6cfbcfa8",
        "id": "bb:1552",
        "start_pc": 1552,
        "type": "basic_block"
      },
      {
        "end_pc": 1560,
        "hash": "0x722f2a7cf63fd4078b19b4695c0994ca512afdb46d4e26bb3d4c6cfe225943e7",
        "id": "bb:1555",
        "start_pc": 1555,
        "type": "basic_block"
      },
      {
        "end_pc": 1567,
        "hash": "0xdea805b369cb267983325890728a0bc13c2e11b05ba9275fcfdcd36993106446",
        "id": "bb:1561",
        "start_pc": 1561,
        "type": "basic_block"
      },
      {
        "end_pc": 1587,
        "hash": "0xd4f9d07bfef67cef493f5adc5666626e006277fa6f31e4c509a02cdd7215b49d",
        "id": "bb:1568",
        "start_pc": 1568,
        "type": "basic_block"
      },
      {
        "end_pc": 1598,
        "hash": "0x565a7967da32dfa95a961771c3f1a97055cdca73994e49f52ad0a4d93183dfde",
        "id": "bb:1588",
        "start_pc": 1588,
        "type": "basic_block"
      },
      {
        "end_pc": 1600,
        "hash": "0xb42ee911e3b3470b89c1745396371117532b98187109774a0a0e9f5de704bae5",
        "id": "bb:1599",
        "start_pc": 1599,
        "type": "basic_block"
      },
      {
        "end_pc": 1607,
        "hash": "0x718387923d96916713451da1bcc9302fba604f39b801f4dfb2f73ef183aaa679",
        "id": "bb:1602",
        "start_pc": 1602,
        "type": "basic_block"
      },
      {
        "end_pc": 1614,
        "hash": "0x97d9d397e689432c8afa8181a70f2a9a4a1e2df73e90a6be434bbd981db77af3",
        "id": "bb:1608",
        "start_pc": 1608,
        "type": "basic_block"
      },
      {
        "end_pc": 1630,
        "hash": "0x87f91d1302ef3894f0ba69a8326fb08c8518be0367f901b9b33623acee3f65af",
        "id": "bb:1615",
        "start_pc": 1615,
        "type": "basic_block"
      },
      {
        "end_pc": 1642,
        "hash": "0x540b6864389e2a568c3fa6696f6fb977e3b96b21b011510b5700b9bf31e69619",
        "id": "bb:1631",
        "start_pc": 1631,
        "type": "basic_block"
      },
      {
        "end_pc": 1756,
        "hash": "0x4fd70c58ac628034d969f5545db2075a21dae2b7d6ef585cd531f2dd912de634",
        "id": "bb:1643",
        "start_pc": 1643,
        "type": "basic_block"
      },
      {
        "end_pc": 1765,
        "hash": "0xbbf1b53b9e59f3e87269964c734c9d9da5fa60e2ec8d5484ce40598e89067e0a",
        "id": "bb:1757",
        "start_pc": 1757,
        "type": "basic_block"
      },
      {
        "end_pc": 1829,
        "hash": "0xc4684678509ef8b7bcd2e9df853f4fec54e5914feac8c3bb4dfc9a815b551c2f",
        "id": "bb:1766",
        "start_pc": 1766,
        "type": "basic_block"
      },
      {
        "end_pc": 1835,
        "hash": "0x5310ad09bf805c4e419b645896601ed24c5919c0ea0601f2ea8f05b7081ed1fc",
        "id": "bb:1830",
        "start_pc": 1830,
        "type": "basic_block"
      },
      {
        "end_pc": 1840,
        "hash": "0x093b0046e8aa1a7047a0ee7e7a4db084b9ff3b7a4e05a7e35cfe22a90f761bf6",
        "id": "bb:1836",
        "start_pc": 1836,
        "type": "basic_block"
      },
      {
        "end_pc": 1905,
        "hash": "0xd5d1c69f1093459add85a328f8f65b1b6643834847b0a147738f59474ab067fe",
        "id": "bb:1841",
        "start_pc": 1841,
        "type": "basic_block"
      },
      {
        "end_pc": 1911,
        "hash": "0x6ae22c81a626dc8fd4729f09ddbdf37f933f9a3bef0888692118c6ede57ed4c2",
        "id": "bb:1906",
        "start_pc": 1906,
        "type": "basic_block"
      },
      {
        "end_pc": 1912,
        "hash": "0x34fe9165c95ab3aa838787d3e44f9b39525c1686c2cf3b2639691aabd2b8acf0",
        "id": "bb:1912",
        "start_pc": 1912,
        "type": "basic_block"
      },
      {
        "end_pc": 1917,
        "hash": "0x70ecfe3424c2a9276a82415606b6b490c99227df654c56b4be532440c49f3091",
        "id": "bb:1913",
        "start_pc": 1913,
        "type": "basic_block"
      },
      {
        "end_pc": 1927,
        "hash": "0x58fb84486744040f33249763c5ed64f1921ef6317155314c5eacbe4a9f2f0701",
        "id": "bb:1918",
        "start_pc": 1918,
        "type": "basic_block"
      },
      {
        "end_pc": 1933,
        "hash": "0xfba84a5b5d4501bf5affa9de3a469096346a899161477dd0d7d83b81460f155a",
        "id": "bb:1928",
        "start_pc": 1928,
        "type": "basic_block"
      },
      {
        "end_pc": 1935,
        "hash": "0x40f33ce5dd6b6d1fb0afdc58e80a33989ce581511cd6017a084aa4c0256cbb84",
        "id": "bb:1934",
        "start_pc": 1934,
        "type": "basic_block"
      },
      {
        "end_pc": 1941,
        "hash": "0xbb1a3cc93750d1406d846cb4959daa3a2db3ccec9066bcadbab21079b26c2658",
        "id": "bb:1937",
        "start_pc": 1937,
        "type": "basic_block"
      },
      {
        "end_pc": 1951,
        "hash": "0x83afc05bf893dc878104a31a02f517913b0d9e19b945e1e73b1965d48eddaffa",
        "id": "bb:1942",
        "start_pc": 1942,
        "type": "basic_block"
      },
      {
        "end_pc": 2010,
        "hash": "0xee9bca1be50b575e13d3813ff0967a06a01d7693fb635f54452fa68164fb47a8",
        "id": "bb:1952",
        "start_pc": 1952,
        "type": "basic_block"
      },
      {
        "end_pc": 2034,
        "hash": "0x5bb0d9457e267eb56ecda8fbd920a074f062262c5a29d0200aeca7c827ccef06",
        "id": "bb:2011",
        "start_pc": 2011,
        "type": "basic_block"
      },
      {
        "end_pc": 2060,
        "hash": "0x224863a61fef07c89053db252c212d527f8f73a545edb193cb8c26394cd98b8a",
        "id": "bb:2035",
        "start_pc": 2035,
        "type": "basic_block"
      },
      {
        "end_pc": 2094,
        "hash": "0x42ff6bf526478becaacafde6c6e0d0f3f370e1ebf0d61a13437902461514c791",
        "id": "bb:2061",
        "start_pc": 2061,
        "type": "basic_block"
      },
      {
        "end_pc": 2110,
        "hash": "0x463a7ebc012d07596a116301308dd880ef8fddc0346076964aad6798e36f9905",
        "id": "bb:2095",
        "start_pc": 2095,
        "type": "basic_block"
      },
      {
        "end_pc": 2123,
        "hash": "0xe0a12b150e74b8c3124681fdfaf5972423579fd7624c973e32d67c125a1b1128",
        "id": "bb:2111",
        "start_pc": 2111,
        "type": "basic_block"
      },
      {
        "end_pc": 2139,
        "hash": "0x21630389780de18cfbbd499d2dff5a00151757b8a4af9eba62c101981a4909b2",
        "id": "bb:2124",
        "start_pc": 2124,
        "type": "basic_block"
      },
      {
        "end_pc": 2152,
        "hash": "0x9872c244e66f103dbe658d67fa280684f999cce4de30efe1e6978f1c8f65dd07",
        "id": "bb:2140",
        "start_pc": 2140,
        "type": "basic_block"
      },
      {
        "end_pc": 2311,
        "hash": "0xde4a74deb9464a524892f8e2a414174277c0b02690ee80cf5a3c7acfea5882f7",
        "id": "bb:2153",
        "start_pc": 2153,
        "type": "basic_block"
      },
      {
        "end_pc": 2335,
        "hash": "0x84ad4e3879f351974821c23343925ead2f24285487f95772d35af8afde47fcf8",
        "id": "bb:2312",
        "start_pc": 2312,
        "type": "basic_block"
      },
      {
        "end_pc": 2369,
        "hash": "0xc014eeeaac836d24ac7d7aec0de501e439b37805428276b54488b80fe7ee51ce",
        "id": "bb:2336",
        "start_pc": 2336,
        "type": "basic_block"
      },
      {
        "end_pc": 2451,
        "hash": "0x0a75b3c389144eead7a444c405ac74ede33df4c4906c44ae1761352f3b3221f2",
        "id": "bb:2370",
        "start_pc": 2370,
        "type": "basic_block"
      },
      {
        "end_pc": 2464,
        "hash": "0xc4926b055e59535368159e21dd71ec23857206c0dd307d066d9928538b0d546e",
        "id": "bb:2452",
        "start_pc": 2452,
        "type": "basic_block"
      },
      {
        "end_pc": 2491,
        "hash": "0x8e07c885c5107e93d28add3203f9abe07a3801f348830a819265bbd24760d709",
        "id": "bb:2465",
        "start_pc": 2465,
        "type": "basic_block"
      },
      {
        "end_pc": 2511,
        "hash": "0x06a16bbdc912edc24e20f6f28a636e4ac35fc762f0af4bc0145dc88e27d42b27",
        "id": "bb:2492",
        "start_pc": 2492,
        "type": "basic_block"
      },
      {
        "end_pc": 2527,
        "hash": "0x070950c975e6973b8898d2347b96ac0931d5c967a20616c3e8149dfeed229fbf",
        "id": "bb:2512",
        "start_pc": 2512,
        "type": "basic_block"
      },
      {
        "end_pc": 2528,
        "hash": "0xe3bf256cfab860436a52357043f0436c7af07a3b7afffecbe8b2e36791bf7d6e",
        "id": "bb:2528",
        "start_pc": 2528,
        "type": "basic_block"
      },
      {
        "end_pc": 2541,
        "hash": "0x1c6609552e96255244721b70fa03a761fea1affdb274664803810e6f48a5761f",
        "id": "bb:2529",
        "start_pc": 2529,
        "type": "basic_block"
      },
      {
        "end_pc": 2543,
        "hash": "0xca34432540a8da9e726ee419a126785b71a57ecb0d06b7b4058b65a83db669b1",
        "id": "bb:2542",
        "start_pc": 2542,
        "type": "basic_block"
      },
      {
        "id": "call:130",
        "opcode": "CALL",
        "pc": 130,
        "type": "callsite"
      },
      {
        "id": "call:652",
        "opcode": "CALL",
        "pc": 652,
        "type": "callsite"
      },
      {
        "id": "call:691",
        "opcode": "CALL",
        "pc": 691,
        "type": "callsite"
      },
      {
        "id": "call:731",
        "opcode": "CALL",
        "pc": 731,
        "type": "callsite"
      },
      {
        "id": "call:2093",
        "opcode": "CALL",
        "pc": 2093,
        "type": "callsite"
      },
      {
        "id": "call:2204",
        "opcode": "CALL",
        "pc": 2204,
        "type": "callsite"
      },
      {
        "id": "sink:call",
        "type": "sink"
      },
      {
        "entry_pc": null,
        "id": "fn:0x5a9809ed",
        "selector": "0x5a9809ed",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0xd5f39e24",
        "selector": "0xd5f39e24",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0xa11af387",
        "selector": "0xa11af387",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0x7b0ae934",
        "selector": "0x7b0ae934",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0xd966f799",
        "selector": "0xd966f799",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0x3cd86b77",
        "selector": "0x3cd86b77",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0x8f26e0fe",
        "selector": "0x8f26e0fe",
        "type": "function"
      },
      {
        "entry_pc": null,
        "id": "fn:0xf2e497ae",
        "selector": "0xf2e497ae",
        "type": "function"
      }
    ],
    "version": "capability_graph_v1"
  },
  "id": 1570,
  "updated_at": "2026-04-04T19:45:40.000000Z",
  "version": "capability_graph_v1"
}

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.storage' /tmp/codex-9rch6zu6/BYTECODE_BUNDLE.json" in /tmp/codex-9rch6zu6
 succeeded in 0ms:
{
  "keccak_count": 0,
  "reads": 34,
  "slots": [
    {
      "op": "SLOAD",
      "pc": 164,
      "slot": "0x0000000000000000000000000000000000027220000000000000000000000000"
    },
    {
      "op": "SSTORE",
      "pc": 197,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000060"
    },
    {
      "op": "SSTORE",
      "pc": 212,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000080"
    },
    {
      "op": "SSTORE",
      "pc": 384,
      "slot": "0x00000000000000000000000000000000000000000000000000000000000000c0"
    },
    {
      "op": "SLOAD",
      "pc": 1343,
      "slot": "0x0000000000000000000000000000000000027220000000000000000000000000"
    },
    {
      "op": "SSTORE",
      "pc": 2277,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SSTORE",
      "pc": 2291,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SSTORE",
      "pc": 2305,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SSTORE",
      "pc": 2354,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SSTORE",
      "pc": 2385,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SSTORE",
      "pc": 2400,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SSTORE",
      "pc": 2415,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SSTORE",
      "pc": 2430,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SSTORE",
      "pc": 2445,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SSTORE",
      "pc": 2511,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    }
  ],
  "writes": 22
}

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc==480 or .start_pc==658 or .start_pc==697 or .start_pc==737 or .start_pc==1952 or .start_pc==2011 or .start_pc==2035 or .start_pc==2061 or .start_pc==2111 or .start_pc==2153 or .start_pc==1643 or .start_pc==1757 or .start_pc==1841 or .start_pc==1411 or .start_pc==1435 or .start_pc==1459 or .start_pc==1521 or .start_pc==1568 or .start_pc==1615 or .start_pc==1314 or .start_pc==1367)' /tmp/codex-9rch6zu6/BYTECODE_BUNDLE.json" in /tmp/codex-9rch6zu6
 succeeded in 0ms:
{
  "end_pc": 656,
  "hash": "0xdc6cde18a506eb8fcca268f7dbd46f64cc981f13ceea8af6eb02d3b402a4ea3a",
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "PUSH2",
    "MLOAD",
    "ADD",
    "PUSH15",
    "SSTORE",
    "PUSH1",
    "PUSH1",
    "PUSH2",
    "MSIZE",
    "OP_90",
    "MSIZE",
    "ADD",
    "PUSH1",
    "OP_90",
    "MSTORE",
    "ADD",
    "PUSH1",
    "MLOAD",
    "CALLVALUE",
    "SUB",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "MLOAD",
    "PUSH1",
    "OP_81",
    "SUB",
    "MLOAD",
    "PUSH1",
    "MUL",
    "PUSH1",
    "ADD",
    "OP_83",
    "PUSH1",
    "OP_84",
    "ADD",
    "MSTORE",
    "PUSH1",
    "OP_82",
    "SUB",
    "PUSH1",
    "OP_84",
    "ADD",
    "MSTORE",
    "OP_80",
    "PUSH2",
    "OP_84",
    "ADD",
    "MSTORE",
    "OP_80",
    "OP_84",
    "ADD",
    "OP_93",
    "POP",
    "POP",
    "POP",
    "PUSH1",
    "MLOAD",
    "PUSH1",
    "OP_82",
    "ADD",
    "MSTORE",
    "PUSH1",
    "MLOAD",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "OP_83",
    "SUB",
    "MLOAD",
    "ADD",
    "DIV",
    "PUSH1",
    "MUL",
    "PUSH1",
    "ADD",
    "OP_83",
    "PUSH1",
    "OP_84",
    "ADD",
    "MSTORE",
    "PUSH1",
    "OP_82",
    "SUB",
    "PUSH1",
    "OP_84",
    "ADD",
    "MSTORE",
    "OP_80",
    "PUSH2",
    "OP_84",
    "ADD",
    "MSTORE",
    "OP_80",
    "OP_84",
    "ADD",
    "OP_93",
    "POP",
    "POP",
    "POP",
    "OP_81",
    "PUSH1",
    "ADD",
    "MSIZE",
    "OP_90",
    "MSIZE",
    "ADD",
    "PUSH1",
    "OP_90",
    "MSTORE",
    "PUSH1",
    "OP_81",
    "PUSH1",
    "OP_84",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "CALL",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 480
}
{
  "end_pc": 695,
  "hash": "0xa9dd62bb1a7afd457f24065aad81d2301267c39581238ecde5f642358d7e955b",
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "OP_81",
    "ADD",
    "OP_92",
    "POP",
    "PUSH2",
    "OP_82",
    "ADD",
    "MLOAD",
    "OP_80",
    "OP_80",
    "OP_85",
    "OP_82",
    "PUSH1",
    "OP_87",
    "ADD",
    "MLOAD",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "OP_87",
    "SDIV",
    "PUSH1",
    "ADD",
    "CALL",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 658
}
{
  "end_pc": 735,
  "hash": "0x8521eca7a6ee9c51f0f220f240e6ab0af81ff23e025699bba01827bd52c56284",
  "opcodes": [
    "JUMPDEST",
    "POP",
    "OP_80",
    "OP_84",
    "ADD",
    "OP_93",
    "POP",
    "POP",
    "PUSH2",
    "OP_82",
    "ADD",
    "MLOAD",
    "OP_80",
    "OP_80",
    "OP_85",
    "OP_82",
    "PUSH1",
    "OP_87",
    "ADD",
    "MLOAD",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "OP_87",
    "SDIV",
    "PUSH1",
    "ADD",
    "CALL",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 697
}
{
  "end_pc": 811,
  "hash": "0xc70880fb03365c6bd80352c76c51a7d5e6e37db0b3dd8b4d6e6013aa1eb982ca",
  "opcodes": [
    "JUMPDEST",
    "POP",
    "OP_80",
    "OP_84",
    "ADD",
    "OP_93",
    "POP",
    "POP",
    "OP_80",
    "OP_83",
    "SUB",
    "PUSH2",
    "MLOAD",
    "PUSH1",
    "MLOAD",
    "PUSH1",
    "MLOAD",
    "PUSH32",
    "OP_84",
    "OP_86",
    "OP_A4",
    "POP",
    "POP",
    "POP",
    "POP",
    "PUSH2",
    "MLOAD",
    "PUSH2",
    "MSTORE",
    "PUSH1",
    "PUSH2",
    "RETURN"
  ],
  "start_pc": 737
}
{
  "end_pc": 1326,
  "hash": "0xcd971c88892faf823ef6b0f464328baf11cd30375e5d8a0bdb7c5ae5395b21e9",
  "opcodes": [
    "JUMPDEST",
    "PUSH4",
    "OP_81",
    "EQ",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1314
}
{
  "end_pc": 1410,
  "hash": "0xa243201e35e077b4f1d5d155568156b32911b16dc91e1469047a89c1c3d319b8",
  "opcodes": [
    "CALLDATASIZE",
    "MSIZE",
    "OP_90",
    "MSIZE",
    "ADD",
    "PUSH1",
    "OP_90",
    "MSTORE",
    "CALLDATASIZE",
    "PUSH1",
    "OP_82",
    "CALLDATACOPY",
    "PUSH1",
    "CALLDATALOAD",
    "PUSH2",
    "MSTORE",
    "PUSH1",
    "CALLDATALOAD",
    "PUSH2",
    "MSTORE",
    "POP",
    "PUSH1",
    "PUSH1",
    "SUB",
    "PUSH2",
    "MSTORE",
    "PUSH1",
    "PUSH2",
    "MSTORE"
  ],
  "start_pc": 1367
}
{
  "end_pc": 1434,
  "hash": "0x34cf6ddbf2ecde259e77fa3f68b4a4e9c439543593329bb556fc6c3ad4b9e44e",
  "opcodes": [
    "JUMPDEST",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "PUSH2",
    "MLOAD",
    "SLT",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1411
}
{
  "end_pc": 1458,
  "hash": "0x4070326fdf4c2d3b74e6b1c5b856b9463840245062c1ee85d2e020c7637ab667",
  "opcodes": [
    "CALLER",
    "PUSH2",
    "MLOAD",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH1",
    "ADD",
    "ADD",
    "SLOAD",
    "EQ",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1435
}
{
  "end_pc": 1495,
  "hash": "0x6f695bc6cc3c204d49f1006db097756855af68512350430a62cdc3ed54894723",
  "opcodes": [
    "PUSH2",
    "MLOAD",
    "PUSH1",
    "EXP",
    "PUSH2",
    "MSTORE",
    "PUSH1",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "PUSH2",
    "MLOAD",
    "AND",
    "EQ",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1459
}
{
  "end_pc": 1540,
  "hash": "0x034b682c8fca7f8e2e61544b4069ea970ead3010a413d7db9ad058dcef0a328d",
  "opcodes": [
    "JUMPDEST",
    "CALLER",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH1",
    "ADD",
    "SLOAD",
    "EQ",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1521
}
{
  "end_pc": 1587,
  "hash": "0xd4f9d07bfef67cef493f5adc5666626e006277fa6f31e4c509a02cdd7215b49d",
  "opcodes": [
    "JUMPDEST",
    "CALLER",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH1",
    "ADD",
    "SLOAD",
    "EQ",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1568
}
{
  "end_pc": 1630,
  "hash": "0x87f91d1302ef3894f0ba69a8326fb08c8518be0367f901b9b33623acee3f65af",
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "PUSH1",
    "SUB",
    "PUSH2",
    "MLOAD",
    "EQ",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1615
}
{
  "end_pc": 1756,
  "hash": "0x4fd70c58ac628034d969f5545db2075a21dae2b7d6ef585cd531f2dd912de634",
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "PUSH2",
    "MSTORE",
    "PUSH2",
    "MLOAD",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "OR",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SSTORE",
    "PUSH1",
    "PUSH1",
    "MSIZE",
    "OP_90",
    "MSIZE",
    "ADD",
    "PUSH1",
    "OP_90",
    "MSTORE",
    "ADD",
    "PUSH2",
    "MLOAD",
    "OP_81",
    "MSTORE",
    "CALLER",
    "PUSH2",
    "MLOAD",
    "PUSH32",
    "PUSH1",
    "OP_84",
    "OP_A3",
    "POP",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "EQ",
    "ISZERO",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1643
}
{
  "end_pc": 1765,
  "hash": "0xbbf1b53b9e59f3e87269964c734c9d9da5fa60e2ec8d5484ce40598e89067e0a",
  "opcodes": [
    "PUSH2",
    "MLOAD",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1757
}
{
  "end_pc": 1905,
  "hash": "0xd5d1c69f1093459add85a328f8f65b1b6643834847b0a147738f59474ab067fe",
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "ADD",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SSTORE",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "PUSH1",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "MUL",
    "SGT",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1841
}
{
  "end_pc": 2010,
  "hash": "0xee9bca1be50b575e13d3813ff0967a06a01d7693fb635f54452fa68164fb47a8",
  "opcodes": [
    "PUSH1",
    "PUSH2",
    "MSTORE",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "ADD",
    "PUSH2",
    "MSTORE",
    "PUSH2",
    "MLOAD",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "SDIV",
    "PUSH2",
    "MSTORE"
  ],
  "start_pc": 1952
}
{
  "end_pc": 2034,
  "hash": "0x5bb0d9457e267eb56ecda8fbd920a074f062262c5a29d0200aeca7c827ccef06",
  "opcodes": [
    "JUMPDEST",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "PUSH2",
    "MLOAD",
    "SLT",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 2011
}
{
  "end_pc": 2060,
  "hash": "0x224863a61fef07c89053db252c212d527f8f73a545edb193cb8c26394cd98b8a",
  "opcodes": [
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "PUSH2",
    "MLOAD",
    "PUSH1",
    "EXP",
    "AND",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 2035
}
{
  "end_pc": 2094,
  "hash": "0x42ff6bf526478becaacafde6c6e0d0f3f370e1ebf0d61a13437902461514c791",
  "opcodes": [
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "PUSH2",
    "MLOAD",
    "PUSH2",
    "MLOAD",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH1",
    "ADD",
    "ADD",
    "SLOAD",
    "PUSH2",
    "CALL",
    "POP"
  ],
  "start_pc": 2061
}
{
  "end_pc": 2123,
  "hash": "0xe0a12b150e74b8c3124681fdfaf5972423579fd7624c973e32d67c125a1b1128",
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "PUSH2",
    "MLOAD",
    "EQ",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 2111
}
{
  "end_pc": 2311,
  "hash": "0xde4a74deb9464a524892f8e2a414174277c0b02690ee80cf5a3c7acfea5882f7",
  "opcodes": [
    "JUMPDEST",
    "PUSH2",
    "MSTORE",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "PUSH2",
    "MLOAD",
    "EQ",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "MUL",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "SLOAD",
    "ADD",
    "PUSH2",
    "MLOAD",
    "PUSH2",
    "CALL",
    "POP",
    "PUSH1",
    "PUSH1",
    "MSIZE",
    "OP_90",
    "MSIZE",
    "ADD",
    "PUSH1",
    "OP_90",
    "MSTORE",
    "ADD",
    "PUSH2",
    "MLOAD",
    "OP_81",
    "MSTORE",
    "PUSH2",
    "MLOAD",
    "PUSH32",
    "PUSH1",
    "OP_83",
    "OP_A2",
    "POP",
    "PUSH1",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "SSTORE",
    "PUSH1",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH1",
    "ADD",
    "SSTORE",
    "PUSH1",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH1",
    "ADD",
    "SSTORE",
    "PUSH1",
    "PUSH2",
    "MSTORE"
  ],
  "start_pc": 2153
}

exec
/bin/bash -lc "jq '.artifact | keys' /tmp/codex-9rch6zu6/BYTECODE_BUNDLE.json" in /tmp/codex-9rch6zu6
 succeeded in 0ms:
[
  "codehash",
  "compiler_json",
  "implementation_address",
  "is_proxy",
  "runtime_bytecode",
  "verified_source"
]

exec
/bin/bash -lc "jq '.analysis_run' /tmp/codex-9rch6zu6/BYTECODE_BUNDLE.json" in /tmp/codex-9rch6zu6
 succeeded in 0ms:
{
  "address": "0xe881af13bf55c97562fe8d2da2f6ea8e3ff66f98",
  "block_number": null,
  "chain_id": 1,
  "child_links": [],
  "created_at": "2025-12-19T20:03:50.000000Z",
  "id": "019b3836-229f-7340-9526-a8183608906c",
  "parent_links": [],
  "status": "running",
  "updated_at": "2026-04-04T19:45:39.000000Z"
}

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

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc==812 or .start_pc==825 or .start_pc==851 or .start_pc==864 or .start_pc==949 or .start_pc==962 or .start_pc==1007 or .start_pc==1071 or .start_pc==1103 or .start_pc==1116 or .start_pc==1146 or .start_pc==1159 or .start_pc==1205 or .start_pc==1276 or .start_pc==1327 or .start_pc==1354 or .start_pc==1521 or .start_pc==1541 or .start_pc==1552 or .start_pc==1555 or .start_pc==1561 or .start_pc==1588 or .start_pc==1599 or .start_pc==1602 or .start_pc==1608 or .start_pc==1631 or .start_pc==1766 or .start_pc==1830 or .start_pc==1836 or .start_pc==1918 or .start_pc==1928 or .start_pc==1934 or .start_pc==1937 or .start_pc==1942 or .start_pc==2312 or .start_pc==2336 or .start_pc==2370 or .start_pc==2452 or .start_pc==2465 or .start_pc==2492 or .start_pc==2512 or .start_pc==2529 or .start_pc==2542)' /tmp/codex-9rch6zu6/BYTECODE_BUNDLE.json" in /tmp/codex-9rch6zu6
 succeeded in 0ms:
{
  "end_pc": 824,
  "hash": "0x46e7c7733ecb5418befbaa55330483d9fa2b50ebf3a842180e5daae87abee271",
  "opcodes": [
    "JUMPDEST",
    "PUSH4",
    "OP_81",
    "EQ",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 812
}
{
  "end_pc": 850,
  "hash": "0x2d36bfbb744e530c24d7278c75a29770a36639e23d42fafae7bc3bc9fe78e867",
  "opcodes": [
    "PUSH1",
    "CALLDATALOAD",
    "PUSH2",
    "MSTORE",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "SLOAD",
    "PUSH2",
    "MSTORE",
    "PUSH1",
    "PUSH2",
    "RETURN"
  ],
  "start_pc": 825
}
{
  "end_pc": 863,
  "hash": "0xd2bd1cf66a9f14b968652acb6f14b10449e5a0f14626d360c36513b0a3c6ada1",
  "opcodes": [
    "JUMPDEST",
    "PUSH4",
    "OP_81",
    "EQ",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 851
}
{
  "end_pc": 947,
  "hash": "0x069b40b273d1b688084652d5ee7fb91552c7bb0d4a46d99e69eb9a561151db5d",
  "opcodes": [
    "PUSH1",
    "CALLDATALOAD",
    "PUSH2",
    "MSTORE",
    "PUSH1",
    "MSIZE",
    "OP_90",
    "MSIZE",
    "ADD",
    "PUSH1",
    "OP_90",
    "MSTORE",
    "PUSH1",
    "OP_81",
    "MSTORE",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH1",
    "ADD",
    "SLOAD",
    "PUSH1",
    "OP_82",
    "ADD",
    "MSTORE",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH1",
    "ADD",
    "SLOAD",
    "PUSH1",
    "OP_82",
    "ADD",
    "MSTORE",
    "PUSH1",
    "OP_81",
    "ADD",
    "OP_90",
    "POP",
    "PUSH1",
    "PUSH1",
    "OP_82",
    "SUB",
    "MSTORE",
    "PUSH1",
    "PUSH1",
    "OP_82",
    "SUB",
    "MLOAD",
    "MUL",
    "PUSH1",
    "ADD",
    "PUSH1",
    "OP_82",
    "SUB",
    "RETURN"
  ],
  "start_pc": 864
}
{
  "end_pc": 961,
  "hash": "0xba51cd9d0179eb293bf7c31b56b9e9b23895a653c3e3d044204ace2b8f1b9a79",
  "opcodes": [
    "JUMPDEST",
    "PUSH4",
    "OP_81",
    "EQ",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 949
}
{
  "end_pc": 1006,
  "hash": "0x0aeae1e0355e00ca3dc45c15921adb98c7049a27d94f4acfcd258c431b04846d",
  "opcodes": [
    "PUSH1",
    "CALLDATALOAD",
    "PUSH2",
    "MSTORE",
    "PUSH1",
    "MSIZE",
    "OP_90",
    "MSIZE",
    "ADD",
    "PUSH1",
    "OP_90",
    "MSTORE",
    "PUSH2",
    "MSTORE",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "PUSH2",
    "MLOAD",
    "MSTORE",
    "PUSH1",
    "PUSH2",
    "MSTORE"
  ],
  "start_pc": 962
}
{
  "end_pc": 1022,
  "hash": "0xfb81baa1ccd845b16cb09169ca0973cf932576a0013c77c423a60af062911223",
  "opcodes": [
    "JUMPDEST",
    "PUSH2",
    "MLOAD",
    "MLOAD",
    "PUSH2",
    "MLOAD",
    "SLT",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1007
}
{
  "end_pc": 1101,
  "hash": "0xac371ab0ac073e3c33c7337ec7cea7c46b1ccf013ba45a35ca39192519fbd147",
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "PUSH2",
    "MLOAD",
    "ADD",
    "PUSH1",
    "PUSH1",
    "OP_82",
    "SUB",
    "MSTORE",
    "PUSH1",
    "PUSH1",
    "OP_82",
    "SUB",
    "MLOAD",
    "MUL",
    "PUSH1",
    "ADD",
    "PUSH1",
    "OP_82",
    "SUB",
    "RETURN"
  ],
  "start_pc": 1071
}
{
  "end_pc": 1115,
  "hash": "0x878c0ac6a1c54b02ef506a8d94ccae7536a94be422594b0b12a194aea0e9eb41",
  "opcodes": [
    "JUMPDEST",
    "PUSH4",
    "OP_81",
    "EQ",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1103
}
{
  "end_pc": 1145,
  "hash": "0x1ac9669ea15371da163d55ad1efc1794eadd4aac2e7c029edb29ff0040b1bb1b",
  "opcodes": [
    "PUSH1",
    "CALLDATALOAD",
    "PUSH2",
    "MSTORE",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "PUSH2",
    "MSTORE",
    "PUSH1",
    "PUSH2",
    "RETURN"
  ],
  "start_pc": 1116
}
{
  "end_pc": 1158,
  "hash": "0xee0450e91529a68bdfcda9bab942ec2a2bd885d3b07cb32733dfe91285167ea1",
  "opcodes": [
    "JUMPDEST",
    "PUSH4",
    "OP_81",
    "EQ",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1146
}
{
  "end_pc": 1204,
  "hash": "0xc3855da757179a9777c7376267eda3023b77a9fa1ddd88466a776f0bb3cd1dfa",
  "opcodes": [
    "PUSH1",
    "CALLDATALOAD",
    "PUSH2",
    "MSTORE",
    "PUSH2",
    "MSIZE",
    "OP_90",
    "MSIZE",
    "ADD",
    "PUSH1",
    "OP_90",
    "MSTORE",
    "PUSH2",
    "MSTORE",
    "PUSH1",
    "PUSH2",
    "MSTORE",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "PUSH2",
    "MLOAD",
    "MSTORE"
  ],
  "start_pc": 1159
}
{
  "end_pc": 1223,
  "hash": "0x98d99eb414bfe6e7f52d6571a3ad4cb79249f7c61db1e06485ce2b48603e552e",
  "opcodes": [
    "JUMPDEST",
    "PUSH2",
    "MLOAD",
    "MLOAD",
    "PUSH1",
    "PUSH2",
    "MLOAD",
    "MUL",
    "SLT",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1205
}
{
  "end_pc": 1312,
  "hash": "0x41c11aed06fdfef02e3ae6e48b98599c9c16c27cf49afc2805f848859e93e3a2",
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "PUSH2",
    "MLOAD",
    "ADD",
    "PUSH1",
    "PUSH1",
    "OP_82",
    "SUB",
    "MSTORE",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "OP_83",
    "SUB",
    "MLOAD",
    "PUSH1",
    "ADD",
    "ADD",
    "DIV",
    "PUSH1",
    "MUL",
    "PUSH1",
    "OP_82",
    "SUB",
    "RETURN"
  ],
  "start_pc": 1276
}
{
  "end_pc": 1353,
  "hash": "0xc429efdb539523877e3ec082f9dce562e0cc73beba8b0a10f6b10e37a21c94da",
  "opcodes": [
    "PUSH15",
    "SLOAD",
    "PUSH2",
    "MSTORE",
    "PUSH1",
    "PUSH2",
    "RETURN"
  ],
  "start_pc": 1327
}
{
  "end_pc": 1366,
  "hash": "0xbf93d4f2c0fc5a767d92b348f445be0892942316e6ae24f8d73540d67500bd2e",
  "opcodes": [
    "JUMPDEST",
    "PUSH4",
    "OP_81",
    "EQ",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1354
}
{
  "end_pc": 1540,
  "hash": "0x034b682c8fca7f8e2e61544b4069ea970ead3010a413d7db9ad058dcef0a328d",
  "opcodes": [
    "JUMPDEST",
    "CALLER",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH1",
    "ADD",
    "SLOAD",
    "EQ",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1521
}
{
  "end_pc": 1551,
  "hash": "0x70bf7a2e1418f90ed84439bf1f857f4cdc48f0a7ec5dc15676e7c6196ee7de9d",
  "opcodes": [
    "PUSH1",
    "PUSH2",
    "MLOAD",
    "EQ",
    "PUSH2",
    "JUMP"
  ],
  "start_pc": 1541
}
{
  "end_pc": 1553,
  "hash": "0x4843abda37db57888a978b8506e6099579af0460f1999a9afb2f3d0e6cfbcfa8",
  "opcodes": [
    "JUMPDEST",
    "PUSH1"
  ],
  "start_pc": 1552
}
{
  "end_pc": 1560,
  "hash": "0x722f2a7cf63fd4078b19b4695c0994ca512afdb46d4e26bb3d4c6cfe225943e7",
  "opcodes": [
    "JUMPDEST",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1555
}
{
  "end_pc": 1567,
  "hash": "0xdea805b369cb267983325890728a0bc13c2e11b05ba9275fcfdcd36993106446",
  "opcodes": [
    "PUSH2",
    "PUSH2",
    "MSTORE"
  ],
  "start_pc": 1561
}
{
  "end_pc": 1598,
  "hash": "0x565a7967da32dfa95a961771c3f1a97055cdca73994e49f52ad0a4d93183dfde",
  "opcodes": [
    "PUSH1",
    "PUSH2",
    "MLOAD",
    "EQ",
    "PUSH2",
    "JUMP"
  ],
  "start_pc": 1588
}
{
  "end_pc": 1600,
  "hash": "0xb42ee911e3b3470b89c1745396371117532b98187109774a0a0e9f5de704bae5",
  "opcodes": [
    "JUMPDEST",
    "PUSH1"
  ],
  "start_pc": 1599
}
{
  "end_pc": 1607,
  "hash": "0x718387923d96916713451da1bcc9302fba604f39b801f4dfb2f73ef183aaa679",
  "opcodes": [
    "JUMPDEST",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1602
}
{
  "end_pc": 1614,
  "hash": "0x97d9d397e689432c8afa8181a70f2a9a4a1e2df73e90a6be434bbd981db77af3",
  "opcodes": [
    "PUSH2",
    "PUSH2",
    "MSTORE"
  ],
  "start_pc": 1608
}
{
  "end_pc": 1642,
  "hash": "0x540b6864389e2a568c3fa6696f6fb977e3b96b21b011510b5700b9bf31e69619",
  "opcodes": [
    "PUSH1",
    "PUSH2",
    "MSTORE",
    "PUSH1",
    "PUSH2",
    "RETURN"
  ],
  "start_pc": 1631
}
{
  "end_pc": 1829,
  "hash": "0xc4684678509ef8b7bcd2e9df853f4fec54e5914feac8c3bb4dfc9a815b551c2f",
  "opcodes": [
    "PUSH1",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "ADD",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SSTORE",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "PUSH1",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "MUL",
    "SGT",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1766
}
{
  "end_pc": 1835,
  "hash": "0x5310ad09bf805c4e419b645896601ed24c5919c0ea0601f2ea8f05b7081ed1fc",
  "opcodes": [
    "PUSH1",
    "PUSH2",
    "MSTORE"
  ],
  "start_pc": 1830
}
{
  "end_pc": 1840,
  "hash": "0x093b0046e8aa1a7047a0ee7e7a4db084b9ff3b7a4e05a7e35cfe22a90f761bf6",
  "opcodes": [
    "JUMPDEST",
    "PUSH2",
    "JUMP"
  ],
  "start_pc": 1836
}
{
  "end_pc": 1927,
  "hash": "0x58fb84486744040f33249763c5ed64f1921ef6317155314c5eacbe4a9f2f0701",
  "opcodes": [
    "JUMPDEST",
    "PUSH2",
    "MLOAD",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1918
}
{
  "end_pc": 1933,
  "hash": "0xfba84a5b5d4501bf5affa9de3a469096346a899161477dd0d7d83b81460f155a",
  "opcodes": [
    "PUSH1",
    "PUSH2",
    "JUMP"
  ],
  "start_pc": 1928
}
{
  "end_pc": 1935,
  "hash": "0x40f33ce5dd6b6d1fb0afdc58e80a33989ce581511cd6017a084aa4c0256cbb84",
  "opcodes": [
    "JUMPDEST",
    "PUSH1"
  ],
  "start_pc": 1934
}
{
  "end_pc": 1941,
  "hash": "0xbb1a3cc93750d1406d846cb4959daa3a2db3ccec9066bcadbab21079b26c2658",
  "opcodes": [
    "JUMPDEST",
    "PUSH2",
    "MSTORE"
  ],
  "start_pc": 1937
}
{
  "end_pc": 1951,
  "hash": "0x83afc05bf893dc878104a31a02f517913b0d9e19b945e1e73b1965d48eddaffa",
  "opcodes": [
    "JUMPDEST",
    "PUSH2",
    "MLOAD",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 1942
}
{
  "end_pc": 2335,
  "hash": "0x84ad4e3879f351974821c23343925ead2f24285487f95772d35af8afde47fcf8",
  "opcodes": [
    "JUMPDEST",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SLOAD",
    "PUSH2",
    "MLOAD",
    "SLT",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 2312
}
{
  "end_pc": 2369,
  "hash": "0xc014eeeaac836d24ac7d7aec0de501e439b37805428276b54488b80fe7ee51ce",
  "opcodes": [
    "PUSH1",
    "PUSH2",
    "MLOAD",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH1",
    "ADD",
    "ADD",
    "SSTORE",
    "PUSH1",
    "PUSH2",
    "MLOAD",
    "ADD",
    "PUSH2",
    "MSTORE",
    "PUSH2",
    "JUMP"
  ],
  "start_pc": 2336
}
{
  "end_pc": 2451,
  "hash": "0x0a75b3c389144eead7a444c405ac74ede33df4c4906c44ae1761352f3b3221f2",
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SSTORE",
    "PUSH1",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SSTORE",
    "PUSH1",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SSTORE",
    "PUSH1",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SSTORE",
    "PUSH1",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "SSTORE",
    "PUSH1",
    "PUSH2",
    "MSTORE"
  ],
  "start_pc": 2370
}
{
  "end_pc": 2464,
  "hash": "0xc4926b055e59535368159e21dd71ec23857206c0dd307d066d9928538b0d546e",
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "PUSH2",
    "MLOAD",
    "SLT",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 2452
}
{
  "end_pc": 2491,
  "hash": "0x8e07c885c5107e93d28add3203f9abe07a3801f348830a819265bbd24760d709",
  "opcodes": [
    "PUSH1",
    "PUSH2",
    "MLOAD",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "ADD",
    "SLOAD",
    "EQ",
    "ISZERO",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ],
  "start_pc": 2465
}
{
  "end_pc": 2511,
  "hash": "0x06a16bbdc912edc24e20f6f28a636e4ac35fc762f0af4bc0145dc88e27d42b27",
  "opcodes": [
    "PUSH1",
    "PUSH2",
    "MLOAD",
    "PUSH2",
    "PUSH2",
    "MLOAD",
    "MUL",
    "PUSH2",
    "ADD",
    "ADD",
    "SSTORE"
  ],
  "start_pc": 2492
}
{
  "end_pc": 2527,
  "hash": "0x070950c975e6973b8898d2347b96ac0931d5c967a20616c3e8149dfeed229fbf",
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "PUSH2",
    "MLOAD",
    "ADD",
    "PUSH2",
    "MSTORE",
    "PUSH2",
    "JUMP"
  ],
  "start_pc": 2512
}
{
  "end_pc": 2541,
  "hash": "0x1c6609552e96255244721b70fa03a761fea1affdb274664803810e6f48a5761f",
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "PUSH2",
    "MSTORE",
    "PUSH1",
    "PUSH2",
    "RETURN"
  ],
  "start_pc": 2529
}
{
  "end_pc": 2543,
  "hash": "0xca34432540a8da9e726ee419a126785b71a57ecb0d06b7b4058b65a83db669b1",
  "opcodes": [
    "JUMPDEST",
    "POP"
  ],
  "start_pc": 2542
}

exec
js_repl in /tmp/codex-9rch6zu6
2026-04-05T00:47:32.047366Z ERROR codex_core::tools::router: error=bundle.artifact.runtime_bytecode.replace is not a function
 exited 1 in 185ms:
bundle.artifact.runtime_bytecode.replace is not a function
exec
js_repl in /tmp/codex-9rch6zu6
 succeeded in 6ms:
exec
js_repl in /tmp/codex-9rch6zu6
 succeeded in 1ms:
object
{
  full: '0x600061047f537c010000000000000000000000000000000000000000000000000000000060003504635a9809ed81141561032c573659905901600090523660048237600435606052602435608052604435602082010160a05260643560c052608435602082010160e0525060c0513412156100935760006000600060003433611388f1506001600003610100526020610100f35b6e027220000000000000000000000000546101205260c05134036127226101205102556060516127226101205102600101556080516127226101205102600201556000610140525b602060a051035161014051121561015c576101405160200260a05101516101405161272261012051026003010155601c6020599059016000905201610120516101405160200260a05101517f1250e52636eed438f884679df55d2911cf41764cf8b2da1bd22d29b0eb14f80e600084a35060016101405101610140526100db565b602060a05103516127226101205102612713015560c05161272261012051026127170155602060e0510351612722610120510261271801556000610140525b602060e05103516020610140510212156101e0576101405160200260e0510151600161014051016127226101205102612718010155600161014051016101405261019b565b600161012051016e027220000000000000000000000000556080601c6101a059905901600090520160c0513403815260a05160208103516020026020018360208401526020820360a0840152806101208401528084019350505060c051604082015260e0516020601f602083035101046020026020018360608401526020820360e0840152806101608401528084019350505081600401599059016000905260808160808460006004601ef161029257fe5b6080810192506101208201518080858260a087015160006004600a8705601201f16102b957fe5b508084019350506101608201518080858260e087015160006004600a8705601201f16102e157fe5b50808401935050808303610120516080516060517f8d936b1bd3fc635710969ccfba471fb17d598d9d1971b538dd712e1e4b4f4dba8486a45050505061012051610220526020610220f35b63d5f39e248114156103535760043561012052612722610120510254610240526020610240f35b63a11af3878114156103b5576004356101205260605990590160009052600281526127226101205102600101546020820152612722610120510260020154604082015260208101905060206040820352602060208203510260400160408203f3505b637b0ae93481141561044f576004356101205260c859905901600090526102a052612722610120510261271301546102a051526000610140525b6102a0515161014051121561042f576101405161272261012051026003010154600161014051016020026102a051015260016101405101610140526103ef565b60206102a0510160206040820352602060208203510260400160408203f3505b63d966f79981141561047a5760043561012052612722610120510261271701546102e05260206102e0f35b633cd86b7781141561052257600435610120526101405990590160009052610300526000610140526127226101205102612718015461030051525b61030051516020610140510212156104fc576001610140510161272261012051026127180101546001610140510160200261030051015260016101405101610140526104b5565b60206103005101602060408203526020601f6020830351604001010460200260408203f3505b638f26e0fe81141561054a576e02722000000000000000000000000054610340526020610340f35b63f2e497ae8114156109ee5736599059016000905236600482376004356101205260243561036052506001600003610380526000610140525b612722610120510261271301546101405112156105f15733610140516127226101205102600301015414156105e1576101405160020a6103a0526000612722610120510261271401546103a0511614156105e05761014051610380525b5b6001610140510161014052610583565b3361272261012051026001015414156106105760006103605114610613565b60005b15610620576103e7610380525b33612722610120510260020154141561063f5760016103605114610642565b60005b1561064f576103e7610380525b600160000361038051141561066b5760006103c05260206103c0f35b60006103e0526103a051612722610120510261271401541761272261012051026127140155601c604059905901600090520161036051815233610120517fcfa82ef0390c8f3e57ebe6c0665352a383667e792af012d350d9786ee5173d26602084a3506103e76103805114151561077e5761036051156107315760016127226101205102612715015401612722610120510261271501556127226101205102612713015460026127226101205102612715015402131561072c5760016103e0525b610779565b6001612722610120510261271601540161272261012051026127160155612722610120510261271301546002612722610120510261271601540213156107785760026103e0525b5b610796565b610360511561078e576001610791565b60025b6103e0525b6103e051156109e15760006101405261272261012051026127160154612722610120510261271501540161040052610400516127226101205102612717015405610420525b6127226101205102612713015461014051121561083f57612722610120510261271401546101405160020a161561082f576000600060006000610420516101405161272261012051026003010154611388f1505b60016101405101610140526107db565b60016103e051141561085c57612722610120510260010154610869565b6127226101205102600201545b6104405260006000600060006000610400511461272261012051026127170154026127226101205102540161044051611388f150601c6040599059016000905201610440518152610120517fd73429fe3d5eae9e487e60af3e9befceddbdbd53695543a735e2d8face8269d3602083a2506000612722610120510255600061272261012051026001015560006127226101205102600201556000610140525b6127226101205102612713015461014051121561094257600061014051612722610120510260030101556001610140510161014052610908565b6000612722610120510261271301556000612722610120510261271401556000612722610120510261271501556000612722610120510261271601556000612722610120510261271701556000610140525b600a6101405112156109e05760006101405161272261012051026127180101541415156109d05760006101405161272261012051026127180101555b6001610140510161014052610994565b5b6001610460526020610460f35b50',
  head: null,
  length: 5090,
  tail: null,
  truncated: false
}
exec
js_repl in /tmp/codex-9rch6zu6
 succeeded in 5ms:
   0: PUSH1 0x00
   2: PUSH2 0x047f
   5: MSTORE8
   6: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
  36: PUSH1 0x00
  38: CALLDATALOAD
  39: DIV
  40: PUSH4 0x5a9809ed
  45: DUP2
  46: EQ
  47: ISZERO
  48: PUSH2 0x032c
  51: JUMPI
  52: CALLDATASIZE
  53: MSIZE
  54: SWAP1
  55: MSIZE
  56: ADD
  57: PUSH1 0x00
  59: SWAP1
  60: MSTORE
  61: CALLDATASIZE
  62: PUSH1 0x04
  64: DUP3
  65: CALLDATACOPY
  66: PUSH1 0x04
  68: CALLDATALOAD
  69: PUSH1 0x60
  71: MSTORE
  72: PUSH1 0x24
  74: CALLDATALOAD
  75: PUSH1 0x80
  77: MSTORE
  78: PUSH1 0x44
  80: CALLDATALOAD
  81: PUSH1 0x20
  83: DUP3
  84: ADD
  85: ADD
  86: PUSH1 0xa0
  88: MSTORE
  89: PUSH1 0x64
  91: CALLDATALOAD
  92: PUSH1 0xc0
  94: MSTORE
  95: PUSH1 0x84
  97: CALLDATALOAD
  98: PUSH1 0x20
 100: DUP3
 101: ADD
 102: ADD
 103: PUSH1 0xe0
 105: MSTORE
 106: POP
 107: PUSH1 0xc0
 109: MLOAD
 110: CALLVALUE
 111: SLT
 112: ISZERO
 113: PUSH2 0x0093
 116: JUMPI
 117: PUSH1 0x00
 119: PUSH1 0x00
 121: PUSH1 0x00
 123: PUSH1 0x00
 125: CALLVALUE
 126: CALLER
 127: PUSH2 0x1388
 130: CALL
 131: POP
 132: PUSH1 0x01
 134: PUSH1 0x00
 136: SUB
 137: PUSH2 0x0100
 140: MSTORE
 141: PUSH1 0x20
 143: PUSH2 0x0100
 146: RETURN
 147: JUMPDEST
 148: PUSH15 0x027220000000000000000000000000
 164: SLOAD
 165: PUSH2 0x0120
 168: MSTORE
 169: PUSH1 0xc0
 171: MLOAD
 172: CALLVALUE
 173: SUB
 174: PUSH2 0x2722
 177: PUSH2 0x0120
 180: MLOAD
 181: MUL
 182: SSTORE
 183: PUSH1 0x60
 185: MLOAD
 186: PUSH2 0x2722
 189: PUSH2 0x0120
 192: MLOAD
 193: MUL
 194: PUSH1 0x01
 196: ADD
 197: SSTORE
 198: PUSH1 0x80
 200: MLOAD
 201: PUSH2 0x2722
 204: PUSH2 0x0120
 207: MLOAD
 208: MUL
 209: PUSH1 0x02
 211: ADD
 212: SSTORE
 213: PUSH1 0x00
 215: PUSH2 0x0140
 218: MSTORE
 219: JUMPDEST
 220: PUSH1 0x20

---
1320: DUP2
1321: EQ
1322: ISZERO
1323: PUSH2 0x054a
1326: JUMPI
1327: PUSH15 0x027220000000000000000000000000
1343: SLOAD
1344: PUSH2 0x0340
1347: MSTORE
1348: PUSH1 0x20
1350: PUSH2 0x0340
1353: RETURN
1354: JUMPDEST
1355: PUSH4 0xf2e497ae
1360: DUP2
1361: EQ
1362: ISZERO
1363: PUSH2 0x09ee
1366: JUMPI
1367: CALLDATASIZE
1368: MSIZE
1369: SWAP1
1370: MSIZE
1371: ADD
1372: PUSH1 0x00
1374: SWAP1
1375: MSTORE
1376: CALLDATASIZE
1377: PUSH1 0x04
1379: DUP3
1380: CALLDATACOPY
1381: PUSH1 0x04
1383: CALLDATALOAD
1384: PUSH2 0x0120
1387: MSTORE
1388: PUSH1 0x24
1390: CALLDATALOAD
1391: PUSH2 0x0360
1394: MSTORE
1395: POP
1396: PUSH1 0x01
1398: PUSH1 0x00
1400: SUB
1401: PUSH2 0x0380
1404: MSTORE
1405: PUSH1 0x00
1407: PUSH2 0x0140
1410: MSTORE
1411: JUMPDEST
1412: PUSH2 0x2722
1415: PUSH2 0x0120
1418: MLOAD
1419: MUL
1420: PUSH2 0x2713
1423: ADD
1424: SLOAD
1425: PUSH2 0x0140
1428: MLOAD
1429: SLT
1430: ISZERO
1431: PUSH2 0x05f1
1434: JUMPI
1435: CALLER
1436: PUSH2 0x0140
1439: MLOAD
1440: PUSH2 0x2722
1443: PUSH2 0x0120
1446: MLOAD
1447: MUL
1448: PUSH1 0x03
1450: ADD
1451: ADD
1452: SLOAD
1453: EQ
1454: ISZERO
1455: PUSH2 0x05e1
1458: JUMPI
1459: PUSH2 0x0140
1462: MLOAD
1463: PUSH1 0x02
1465: EXP
1466: PUSH2 0x03a0
1469: MSTORE
1470: PUSH1 0x00
1472: PUSH2 0x2722
1475: PUSH2 0x0120
1478: MLOAD
1479: MUL
1480: PUSH2 0x2714
1483: ADD
1484: SLOAD
1485: PUSH2 0x03a0
1488: MLOAD
1489: AND
1490: EQ
1491: ISZERO
1492: PUSH2 0x05e0
1495: JUMPI
1496: PUSH2 0x0140
1499: MLOAD
1500: PUSH2 0x0380
1503: MSTORE
1504: JUMPDEST
1505: JUMPDEST
1506: PUSH1 0x01
1508: PUSH2 0x0140
1511: MLOAD
1512: ADD
1513: PUSH2 0x0140
1516: MSTORE
1517: PUSH2 0x0583
1520: JUMP
1521: JUMPDEST
1522: CALLER
1523: PUSH2 0x2722
1526: PUSH2 0x0120
1529: MLOAD
1530: MUL
1531: PUSH1 0x01
1533: ADD
1534: SLOAD
1535: EQ
1536: ISZERO
1537: PUSH2 0x0610
1540: JUMPI
1541: PUSH1 0x00
1543: PUSH2 0x0360
1546: MLOAD
1547: EQ
1548: PUSH2 0x0613
1551: JUMP
1552: JUMPDEST
1553: PUSH1 0x00
1555: JUMPDEST
1556: ISZERO
1557: PUSH2 0x0620
1560: JUMPI
1561: PUSH2 0x03e7
1564: PUSH2 0x0380
1567: MSTORE
1568: JUMPDEST
1569: CALLER
1570: PUSH2 0x2722
1573: PUSH2 0x0120
1576: MLOAD
1577: MUL
1578: PUSH1 0x02
1580: ADD
1581: SLOAD
1582: EQ
1583: ISZERO
1584: PUSH2 0x063f
1587: JUMPI
1588: PUSH1 0x01
1590: PUSH2 0x0360
1593: MLOAD
1594: EQ
1595: PUSH2 0x0642
1598: JUMP
1599: JUMPDEST
1600: PUSH1 0x00
1602: JUMPDEST
1603: ISZERO
1604: PUSH2 0x064f
1607: JUMPI
1608: PUSH2 0x03e7
1611: PUSH2 0x0380
1614: MSTORE
1615: JUMPDEST
1616: PUSH1 0x01
1618: PUSH1 0x00
1620: SUB
1621: PUSH2 0x0380
1624: MLOAD
1625: EQ
1626: ISZERO
1627: PUSH2 0x066b
1630: JUMPI
1631: PUSH1 0x00
1633: PUSH2 0x03c0
1636: MSTORE
1637: PUSH1 0x20
1639: PUSH2 0x03c0
1642: RETURN
1643: JUMPDEST
1644: PUSH1 0x00
1646: PUSH2 0x03e0
1649: MSTORE
1650: PUSH2 0x03a0
1653: MLOAD
1654: PUSH2 0x2722
1657: PUSH2 0x0120
1660: MLOAD
1661: MUL
1662: PUSH2 0x2714
1665: ADD
1666: SLOAD
1667: OR
1668: PUSH2 0x2722
1671: PUSH2 0x0120
1674: MLOAD
1675: MUL
1676: PUSH2 0x2714
1679: ADD
1680: SSTORE
1681: PUSH1 0x1c
1683: PUSH1 0x40
1685: MSIZE
1686: SWAP1
1687: MSIZE
1688: ADD
1689: PUSH1 0x00
1691: SWAP1
1692: MSTORE
1693: ADD
1694: PUSH2 0x0360
1697: MLOAD
1698: DUP2
1699: MSTORE
1700: CALLER
1701: PUSH2 0x0120
1704: MLOAD
1705: PUSH32 0xcfa82ef0390c8f3e57ebe6c0665352a383667e792af012d350d9786ee5173d26

---
1750: EQ
1751: ISZERO
1752: ISZERO
1753: PUSH2 0x077e
1756: JUMPI
1757: PUSH2 0x0360
1760: MLOAD
1761: ISZERO
1762: PUSH2 0x0731
1765: JUMPI
1766: PUSH1 0x01
1768: PUSH2 0x2722
1771: PUSH2 0x0120
1774: MLOAD
1775: MUL
1776: PUSH2 0x2715
1779: ADD
1780: SLOAD
1781: ADD
1782: PUSH2 0x2722
1785: PUSH2 0x0120
1788: MLOAD
1789: MUL
1790: PUSH2 0x2715
1793: ADD
1794: SSTORE
1795: PUSH2 0x2722
1798: PUSH2 0x0120
1801: MLOAD
1802: MUL
1803: PUSH2 0x2713
1806: ADD
1807: SLOAD
1808: PUSH1 0x02
1810: PUSH2 0x2722
1813: PUSH2 0x0120
1816: MLOAD
1817: MUL
1818: PUSH2 0x2715
1821: ADD
1822: SLOAD
1823: MUL
1824: SGT
1825: ISZERO
1826: PUSH2 0x072c
1829: JUMPI
1830: PUSH1 0x01
1832: PUSH2 0x03e0
1835: MSTORE
1836: JUMPDEST
1837: PUSH2 0x0779
1840: JUMP
1841: JUMPDEST
1842: PUSH1 0x01
1844: PUSH2 0x2722
1847: PUSH2 0x0120
1850: MLOAD
1851: MUL
1852: PUSH2 0x2716
1855: ADD
1856: SLOAD
1857: ADD
1858: PUSH2 0x2722
1861: PUSH2 0x0120
1864: MLOAD
1865: MUL
1866: PUSH2 0x2716
1869: ADD
1870: SSTORE
1871: PUSH2 0x2722
1874: PUSH2 0x0120
1877: MLOAD
1878: MUL
1879: PUSH2 0x2713
1882: ADD
1883: SLOAD
1884: PUSH1 0x02
1886: PUSH2 0x2722
1889: PUSH2 0x0120
1892: MLOAD
1893: MUL
1894: PUSH2 0x2716
1897: ADD
1898: SLOAD
1899: MUL
1900: SGT
1901: ISZERO
1902: PUSH2 0x0778
1905: JUMPI
1906: PUSH1 0x02
1908: PUSH2 0x03e0
1911: MSTORE
1912: JUMPDEST
1913: JUMPDEST
1914: PUSH2 0x0796
1917: JUMP
1918: JUMPDEST
1919: PUSH2 0x0360
1922: MLOAD
1923: ISZERO
1924: PUSH2 0x078e
1927: JUMPI
1928: PUSH1 0x01
1930: PUSH2 0x0791
1933: JUMP
1934: JUMPDEST
1935: PUSH1 0x02
1937: JUMPDEST
1938: PUSH2 0x03e0
1941: MSTORE
1942: JUMPDEST
1943: PUSH2 0x03e0
1946: MLOAD
1947: ISZERO
1948: PUSH2 0x09e1
1951: JUMPI
1952: PUSH1 0x00
1954: PUSH2 0x0140
1957: MSTORE
1958: PUSH2 0x2722
1961: PUSH2 0x0120
1964: MLOAD
1965: MUL
1966: PUSH2 0x2716
1969: ADD
1970: SLOAD
1971: PUSH2 0x2722
1974: PUSH2 0x0120
1977: MLOAD
1978: MUL
1979: PUSH2 0x2715
1982: ADD
1983: SLOAD
1984: ADD
1985: PUSH2 0x0400
1988: MSTORE
1989: PUSH2 0x0400
1992: MLOAD
1993: PUSH2 0x2722
1996: PUSH2 0x0120
1999: MLOAD
2000: MUL
2001: PUSH2 0x2717
2004: ADD
2005: SLOAD
2006: SDIV
2007: PUSH2 0x0420
2010: MSTORE
2011: JUMPDEST
2012: PUSH2 0x2722
2015: PUSH2 0x0120
2018: MLOAD
2019: MUL
2020: PUSH2 0x2713
2023: ADD
2024: SLOAD
2025: PUSH2 0x0140
2028: MLOAD
2029: SLT
2030: ISZERO
2031: PUSH2 0x083f
2034: JUMPI
2035: PUSH2 0x2722
2038: PUSH2 0x0120
2041: MLOAD
2042: MUL
2043: PUSH2 0x2714
2046: ADD
2047: SLOAD
2048: PUSH2 0x0140
2051: MLOAD
2052: PUSH1 0x02
2054: EXP
2055: AND
2056: ISZERO
2057: PUSH2 0x082f
2060: JUMPI
2061: PUSH1 0x00
2063: PUSH1 0x00
2065: PUSH1 0x00
2067: PUSH1 0x00
2069: PUSH2 0x0420
2072: MLOAD
2073: PUSH2 0x0140
2076: MLOAD
2077: PUSH2 0x2722
2080: PUSH2 0x0120
2083: MLOAD
2084: MUL
2085: PUSH1 0x03
2087: ADD
2088: ADD
2089: SLOAD
2090: PUSH2 0x1388
2093: CALL
2094: POP
2095: JUMPDEST
2096: PUSH1 0x01
2098: PUSH2 0x0140
2101: MLOAD
2102: ADD
2103: PUSH2 0x0140
2106: MSTORE
2107: PUSH2 0x07db
2110: JUMP
2111: JUMPDEST
2112: PUSH1 0x01
2114: PUSH2 0x03e0
2117: MLOAD
2118: EQ
2119: ISZERO
2120: PUSH2 0x085c
2123: JUMPI
2124: PUSH2 0x2722
2127: PUSH2 0x0120
2130: MLOAD
2131: MUL
2132: PUSH1 0x01
2134: ADD
2135: SLOAD
2136: PUSH2 0x0869
2139: JUMP
2140: JUMPDEST
2141: PUSH2 0x2722
2144: PUSH2 0x0120
2147: MLOAD
2148: MUL
2149: PUSH1 0x02
2151: ADD
2152: SLOAD
2153: JUMPDEST
2154: PUSH2 0x0440
2157: MSTORE
2158: PUSH1 0x00
2160: PUSH1 0x00
2162: PUSH1 0x00
2164: PUSH1 0x00
2166: PUSH1 0x00
2168: PUSH2 0x0400
2171: MLOAD
2172: EQ
2173: PUSH2 0x2722
2176: PUSH2 0x0120
2179: MLOAD
2180: MUL
2181: PUSH2 0x2717
2184: ADD
2185: SLOAD
2186: MUL
2187: PUSH2 0x2722
2190: PUSH2 0x0120
2193: MLOAD
2194: MUL
2195: SLOAD
2196: ADD
2197: PUSH2 0x0440
2200: MLOAD
2201: PUSH2 0x1388
2204: CALL
2205: POP
2206: PUSH1 0x1c
2208: PUSH1 0x40
2210: MSIZE
2211: SWAP1
2212: MSIZE
2213: ADD
2214: PUSH1 0x00
2216: SWAP1
2217: MSTORE
2218: ADD
2219: PUSH2 0x0440
2222: MLOAD
2223: DUP2
2224: MSTORE
2225: PUSH2 0x0120
2228: MLOAD
2229: PUSH32 0xd73429fe3d5eae9e487e60af3e9befceddbdbd53695543a735e2d8face8269d3
2262: PUSH1 0x20
2264: DUP4
2265: LOG2
2266: POP
2267: PUSH1 0x00
2269: PUSH2 0x2722
2272: PUSH2 0x0120
2275: MLOAD
2276: MUL
2277: SSTORE
2278: PUSH1 0x00
2280: PUSH2 0x2722
2283: PUSH2 0x0120
2286: MLOAD
2287: MUL
2288: PUSH1 0x01
2290: ADD
2291: SSTORE
2292: PUSH1 0x00
2294: PUSH2 0x2722
2297: PUSH2 0x0120
2300: MLOAD
2301: MUL
2302: PUSH1 0x02
2304: ADD
2305: SSTORE
2306: PUSH1 0x00
2308: PUSH2 0x0140
2311: MSTORE
2312: JUMPDEST
2313: PUSH2 0x2722
2316: PUSH2 0x0120
2319: MLOAD
2320: MUL
exec
js_repl in /tmp/codex-9rch6zu6
 succeeded in 5ms:
2312: JUMPDEST
2313: PUSH2 0x2722
2316: PUSH2 0x0120
2319: MLOAD
2320: MUL
2321: PUSH2 0x2713
2324: ADD
2325: SLOAD
2326: PUSH2 0x0140
2329: MLOAD
2330: SLT
2331: ISZERO
2332: PUSH2 0x0942
2335: JUMPI
2336: PUSH1 0x00
2338: PUSH2 0x0140
2341: MLOAD
2342: PUSH2 0x2722
2345: PUSH2 0x0120
2348: MLOAD
2349: MUL
2350: PUSH1 0x03
2352: ADD
2353: ADD
2354: SSTORE
2355: PUSH1 0x01
2357: PUSH2 0x0140
2360: MLOAD
2361: ADD
2362: PUSH2 0x0140
2365: MSTORE
2366: PUSH2 0x0908
2369: JUMP
2370: JUMPDEST
2371: PUSH1 0x00
2373: PUSH2 0x2722
2376: PUSH2 0x0120
2379: MLOAD
2380: MUL
2381: PUSH2 0x2713
2384: ADD
2385: SSTORE
2386: PUSH1 0x00
2388: PUSH2 0x2722
2391: PUSH2 0x0120
2394: MLOAD
2395: MUL
2396: PUSH2 0x2714
2399: ADD
2400: SSTORE
2401: PUSH1 0x00
2403: PUSH2 0x2722
2406: PUSH2 0x0120
2409: MLOAD
2410: MUL
2411: PUSH2 0x2715
2414: ADD
2415: SSTORE
2416: PUSH1 0x00
2418: PUSH2 0x2722
2421: PUSH2 0x0120
2424: MLOAD
2425: MUL
2426: PUSH2 0x2716
2429: ADD
2430: SSTORE
2431: PUSH1 0x00
2433: PUSH2 0x2722
2436: PUSH2 0x0120
2439: MLOAD
2440: MUL
2441: PUSH2 0x2717
2444: ADD
2445: SSTORE
2446: PUSH1 0x00
2448: PUSH2 0x0140
2451: MSTORE
2452: JUMPDEST
2453: PUSH1 0x0a
2455: PUSH2 0x0140
2458: MLOAD
2459: SLT
2460: ISZERO
2461: PUSH2 0x09e0
2464: JUMPI
2465: PUSH1 0x00
2467: PUSH2 0x0140
2470: MLOAD
2471: PUSH2 0x2722
2474: PUSH2 0x0120
2477: MLOAD
2478: MUL
2479: PUSH2 0x2718
2482: ADD
2483: ADD
2484: SLOAD
2485: EQ
2486: ISZERO
2487: ISZERO
2488: PUSH2 0x09d0
2491: JUMPI
2492: PUSH1 0x00
2494: PUSH2 0x0140
2497: MLOAD
2498: PUSH2 0x2722
2501: PUSH2 0x0120
2504: MLOAD
2505: MUL
2506: PUSH2 0x2718
2509: ADD
2510: ADD
2511: SSTORE
2512: JUMPDEST
2513: PUSH1 0x01
2515: PUSH2 0x0140
2518: MLOAD
2519: ADD
2520: PUSH2 0x0140
2523: MSTORE
2524: PUSH2 0x0994
2527: JUMP
2528: JUMPDEST
2529: JUMPDEST
2530: PUSH1 0x01
2532: PUSH2 0x0460
2535: MSTORE
2536: PUSH1 0x20
2538: PUSH2 0x0460
2541: RETURN
2542: JUMPDEST
2543: POP
exec
js_repl in /tmp/codex-9rch6zu6
 succeeded in 6ms:
 801: MLOAD
 802: PUSH2 0x0220
 805: MSTORE
 806: PUSH1 0x20
 808: PUSH2 0x0220
 811: RETURN
 812: JUMPDEST
 813: PUSH4 0xd5f39e24
 818: DUP2
 819: EQ
 820: ISZERO
 821: PUSH2 0x0353
 824: JUMPI
 825: PUSH1 0x04
 827: CALLDATALOAD
 828: PUSH2 0x0120
 831: MSTORE
 832: PUSH2 0x2722
 835: PUSH2 0x0120
 838: MLOAD
 839: MUL
 840: SLOAD
 841: PUSH2 0x0240
 844: MSTORE
 845: PUSH1 0x20
 847: PUSH2 0x0240
 850: RETURN
 851: JUMPDEST
 852: PUSH4 0xa11af387
 857: DUP2
 858: EQ
 859: ISZERO
 860: PUSH2 0x03b5
 863: JUMPI
 864: PUSH1 0x04
 866: CALLDATALOAD
 867: PUSH2 0x0120
 870: MSTORE
 871: PUSH1 0x60
 873: MSIZE
 874: SWAP1
 875: MSIZE
 876: ADD
 877: PUSH1 0x00
 879: SWAP1
 880: MSTORE
 881: PUSH1 0x02
 883: DUP2
 884: MSTORE
 885: PUSH2 0x2722
 888: PUSH2 0x0120
 891: MLOAD
 892: MUL
 893: PUSH1 0x01
 895: ADD
 896: SLOAD
 897: PUSH1 0x20
 899: DUP3
 900: ADD
 901: MSTORE
 902: PUSH2 0x2722
 905: PUSH2 0x0120
 908: MLOAD
 909: MUL
 910: PUSH1 0x02
 912: ADD
 913: SLOAD
 914: PUSH1 0x40
 916: DUP3
 917: ADD
 918: MSTORE
 919: PUSH1 0x20
 921: DUP2
 922: ADD
 923: SWAP1
 924: POP
 925: PUSH1 0x20
 927: PUSH1 0x40
 929: DUP3
 930: SUB
 931: MSTORE
 932: PUSH1 0x20
 934: PUSH1 0x20
 936: DUP3
 937: SUB
 938: MLOAD
 939: MUL
 940: PUSH1 0x40
 942: ADD
 943: PUSH1 0x40
 945: DUP3
 946: SUB
 947: RETURN
 948: POP
 949: JUMPDEST
 950: PUSH4 0x7b0ae934
 955: DUP2
 956: EQ
 957: ISZERO
 958: PUSH2 0x044f
 961: JUMPI
 962: PUSH1 0x04
 964: CALLDATALOAD
 965: PUSH2 0x0120
 968: MSTORE
 969: PUSH1 0xc8
 971: MSIZE
 972: SWAP1
 973: MSIZE
 974: ADD
 975: PUSH1 0x00
 977: SWAP1
 978: MSTORE
 979: PUSH2 0x02a0
 982: MSTORE
 983: PUSH2 0x2722
 986: PUSH2 0x0120
 989: MLOAD
 990: MUL
 991: PUSH2 0x2713
 994: ADD
 995: SLOAD
 996: PUSH2 0x02a0
 999: MLOAD
1000: MSTORE
1001: PUSH1 0x00
1003: PUSH2 0x0140
1006: MSTORE
1007: JUMPDEST
1008: PUSH2 0x02a0
1011: MLOAD
1012: MLOAD
1013: PUSH2 0x0140
1016: MLOAD
1017: SLT
1018: ISZERO
1019: PUSH2 0x042f
1022: JUMPI
1023: PUSH2 0x0140
1026: MLOAD
1027: PUSH2 0x2722
1030: PUSH2 0x0120
1033: MLOAD
1034: MUL
1035: PUSH1 0x03
1037: ADD
1038: ADD
1039: SLOAD
1040: PUSH1 0x01
1042: PUSH2 0x0140
1045: MLOAD
1046: ADD
1047: PUSH1 0x20
1049: MUL
1050: PUSH2 0x02a0
1053: MLOAD
1054: ADD
1055: MSTORE
1056: PUSH1 0x01
1058: PUSH2 0x0140
1061: MLOAD
1062: ADD
1063: PUSH2 0x0140
1066: MSTORE
1067: PUSH2 0x03ef
1070: JUMP
1071: JUMPDEST
1072: PUSH1 0x20
1074: PUSH2 0x02a0
1077: MLOAD
1078: ADD
1079: PUSH1 0x20
1081: PUSH1 0x40
1083: DUP3
1084: SUB
1085: MSTORE
1086: PUSH1 0x20
1088: PUSH1 0x20
1090: DUP3
1091: SUB
1092: MLOAD
1093: MUL
1094: PUSH1 0x40
1096: ADD
1097: PUSH1 0x40
1099: DUP3
1100: SUB
1101: RETURN
1102: POP
1103: JUMPDEST
1104: PUSH4 0xd966f799
1109: DUP2
1110: EQ
1111: ISZERO
1112: PUSH2 0x047a
1115: JUMPI
1116: PUSH1 0x04
1118: CALLDATALOAD
1119: PUSH2 0x0120
1122: MSTORE
1123: PUSH2 0x2722
1126: PUSH2 0x0120
1129: MLOAD
1130: MUL
1131: PUSH2 0x2717
1134: ADD
1135: SLOAD
1136: PUSH2 0x02e0
1139: MSTORE
1140: PUSH1 0x20
1142: PUSH2 0x02e0
1145: RETURN
1146: JUMPDEST
1147: PUSH4 0x3cd86b77
1152: DUP2
1153: EQ
1154: ISZERO
1155: PUSH2 0x0522
1158: JUMPI
1159: PUSH1 0x04
1161: CALLDATALOAD
1162: PUSH2 0x0120
1165: MSTORE
1166: PUSH2 0x0140
1169: MSIZE
1170: SWAP1
1171: MSIZE
1172: ADD
1173: PUSH1 0x00
1175: SWAP1
1176: MSTORE
1177: PUSH2 0x0300
1180: MSTORE
1181: PUSH1 0x00
1183: PUSH2 0x0140
1186: MSTORE
1187: PUSH2 0x2722
1190: PUSH2 0x0120
1193: MLOAD
1194: MUL
1195: PUSH2 0x2718
1198: ADD
1199: SLOAD
1200: PUSH2 0x0300
1203: MLOAD
1204: MSTORE
1205: JUMPDEST
1206: PUSH2 0x0300
1209: MLOAD
1210: MLOAD
1211: PUSH1 0x20
1213: PUSH2 0x0140
1216: MLOAD
1217: MUL
1218: SLT
1219: ISZERO
1220: PUSH2 0x04fc
1223: JUMPI
1224: PUSH1 0x01
1226: PUSH2 0x0140
1229: MLOAD
1230: ADD
1231: PUSH2 0x2722
1234: PUSH2 0x0120
1237: MLOAD
1238: MUL
1239: PUSH2 0x2718
1242: ADD
1243: ADD
1244: SLOAD
1245: PUSH1 0x01
1247: PUSH2 0x0140
1250: MLOAD
1251: ADD
1252: PUSH1 0x20
1254: MUL
1255: PUSH2 0x0300
1258: MLOAD
1259: ADD
1260: MSTORE
1261: PUSH1 0x01
1263: PUSH2 0x0140
1266: MLOAD
1267: ADD
1268: PUSH2 0x0140
1271: MSTORE
1272: PUSH2 0x04b5
1275: JUMP
1276: JUMPDEST
1277: PUSH1 0x20
1279: PUSH2 0x0300
1282: MLOAD
1283: ADD
1284: PUSH1 0x20
1286: PUSH1 0x40
1288: DUP3
1289: SUB
1290: MSTORE
1291: PUSH1 0x20
1293: PUSH1 0x1f
1295: PUSH1 0x20
1297: DUP4
1298: SUB
1299: MLOAD
1300: PUSH1 0x40
1302: ADD
1303: ADD
1304: DIV
1305: PUSH1 0x20
1307: MUL
1308: PUSH1 0x40
1310: DUP3
1311: SUB
1312: RETURN
1313: POP
1314: JUMPDEST
1315: PUSH4 0x8f26e0fe
1320: DUP2
1321: EQ
1322: ISZERO
1323: PUSH2 0x054a
1326: JUMPI
1327: PUSH15 0x027220000000000000000000000000
1343: SLOAD
1344: PUSH2 0x0340
1347: MSTORE
1348: PUSH1 0x20
1350: PUSH2 0x0340
1353: RETURN
1354: JUMPDEST
1355: PUSH4 0xf2e497ae
1360: DUP2
1361: EQ
1362: ISZERO
1363: PUSH2 0x09ee
1366: JUMPI
1367: CALLDATASIZE
1368: MSIZE
1369: SWAP1
1370: MSIZE
exec
js_repl in /tmp/codex-9rch6zu6
 succeeded in 2ms:
 462: ADD
 463: ADD
 464: SSTORE
 465: PUSH1 0x01
 467: PUSH2 0x0140
 470: MLOAD
 471: ADD
 472: PUSH2 0x0140
 475: MSTORE
 476: PUSH2 0x019b
 479: JUMP
 480: JUMPDEST
 481: PUSH1 0x01
 483: PUSH2 0x0120
 486: MLOAD
 487: ADD
 488: PUSH15 0x027220000000000000000000000000
 504: SSTORE
 505: PUSH1 0x80
 507: PUSH1 0x1c
 509: PUSH2 0x01a0
 512: MSIZE
 513: SWAP1
 514: MSIZE
 515: ADD
 516: PUSH1 0x00
 518: SWAP1
 519: MSTORE
 520: ADD
 521: PUSH1 0xc0
 523: MLOAD
 524: CALLVALUE
 525: SUB
 526: DUP2
 527: MSTORE
 528: PUSH1 0xa0
 530: MLOAD
 531: PUSH1 0x20
 533: DUP2
 534: SUB
 535: MLOAD
 536: PUSH1 0x20
 538: MUL
 539: PUSH1 0x20
 541: ADD
 542: DUP4
 543: PUSH1 0x20
 545: DUP5
 546: ADD
 547: MSTORE
 548: PUSH1 0x20
 550: DUP3
 551: SUB
 552: PUSH1 0xa0
 554: DUP5
 555: ADD
 556: MSTORE
 557: DUP1
 558: PUSH2 0x0120
 561: DUP5
 562: ADD
 563: MSTORE
 564: DUP1
 565: DUP5
 566: ADD
 567: SWAP4
 568: POP
 569: POP
 570: POP
 571: PUSH1 0xc0
 573: MLOAD
 574: PUSH1 0x40
 576: DUP3
 577: ADD
 578: MSTORE
 579: PUSH1 0xe0
 581: MLOAD
 582: PUSH1 0x20
 584: PUSH1 0x1f
 586: PUSH1 0x20
 588: DUP4
 589: SUB
 590: MLOAD
 591: ADD
 592: DIV
 593: PUSH1 0x20
 595: MUL
 596: PUSH1 0x20
 598: ADD
 599: DUP4
 600: PUSH1 0x60
 602: DUP5
 603: ADD
 604: MSTORE
 605: PUSH1 0x20
 607: DUP3
 608: SUB
 609: PUSH1 0xe0
 611: DUP5
 612: ADD
 613: MSTORE
 614: DUP1
 615: PUSH2 0x0160
 618: DUP5
 619: ADD
 620: MSTORE
 621: DUP1
 622: DUP5
 623: ADD
 624: SWAP4
 625: POP
 626: POP
 627: POP
 628: DUP2
 629: PUSH1 0x04
 631: ADD
 632: MSIZE
 633: SWAP1
 634: MSIZE
 635: ADD
 636: PUSH1 0x00
 638: SWAP1
 639: MSTORE
 640: PUSH1 0x80
 642: DUP2
 643: PUSH1 0x80
 645: DUP5
 646: PUSH1 0x00
 648: PUSH1 0x04
 650: PUSH1 0x1e
 652: CALL
 653: PUSH2 0x0292
 656: JUMPI
 657: INVALID
 658: JUMPDEST
 659: PUSH1 0x80
 661: DUP2
 662: ADD
 663: SWAP3
 664: POP
 665: PUSH2 0x0120
 668: DUP3
 669: ADD
 670: MLOAD
 671: DUP1
 672: DUP1
 673: DUP6
 674: DUP3
 675: PUSH1 0xa0
 677: DUP8
 678: ADD
 679: MLOAD
 680: PUSH1 0x00
 682: PUSH1 0x04
 684: PUSH1 0x0a
 686: DUP8
 687: SDIV
 688: PUSH1 0x12
 690: ADD
 691: CALL
 692: PUSH2 0x02b9
 695: JUMPI
 696: INVALID
 697: JUMPDEST
 698: POP
 699: DUP1
 700: DUP5
 701: ADD
 702: SWAP4
 703: POP
 704: POP
 705: PUSH2 0x0160
 708: DUP3
 709: ADD
 710: MLOAD
 711: DUP1
 712: DUP1
 713: DUP6
 714: DUP3
 715: PUSH1 0xe0
 717: DUP8
 718: ADD
 719: MLOAD
 720: PUSH1 0x00
 722: PUSH1 0x04
 724: PUSH1 0x0a
 726: DUP8
 727: SDIV
 728: PUSH1 0x12
 730: ADD
 731: CALL
 732: PUSH2 0x02e1
 735: JUMPI
 736: INVALID
 737: JUMPDEST
 738: POP
 739: DUP1
 740: DUP5
 741: ADD
 742: SWAP4
 743: POP
 744: POP
 745: DUP1
 746: DUP4
 747: SUB
 748: PUSH2 0x0120
 751: MLOAD
 752: PUSH1 0x80
 754: MLOAD
 755: PUSH1 0x60
 757: MLOAD
 758: PUSH32 0x8d936b1bd3fc635710969ccfba471fb17d598d9d1971b538dd712e1e4b4f4dba
codex
{"no_findings":false,"summary":"Bytecode-only review found two meaningful accounting risks: settlement/refund paths use value-transferring CALLs with a hard-coded 5000 gas cap, ignore the success flag, and in the main settlement path clear storage afterward. No delegatecall/proxy issue was evidenced in the bundle.","findings":[{"severity":"high","category":"other","title":"Settlement clears accounting even when ETH payouts fail","exploit_scenario":"A participant or payout recipient can be a contract whose fallback reverts or needs more than 5000 gas. When the settlement path executes, the ETH sends fail silently, but the function continues and clears the tracked balances/recipient state. The contract balance then remains in the contract without matching storage, so users can lose access to owed funds even though the settlement appears to have completed.","recommendation":"Do not ignore low-level call results. Revert the whole settlement if any payout fails, or switch to a pull-payment model where recipients withdraw themselves. Avoid hard-coded 5000-gas sends to untrusted recipients unless failure is explicitly handled.","evidence":"In selector 0xf2e497ae, pc 2093 and pc 2204 perform CALL with nonzero value to storage-derived recipients using gas 0x1388 (5000) and immediately POP the return value. The same routine then zeroes settlement-related storage with SSTOREs at pcs 2277, 2291, 2305, 2354, 2385, 2400, 2415, 2430, 2445, and 2511. This is strong evidence that failed payouts do not roll back accounting. This conclusion is based on bytecode semantics; exact field names are unknown.","locations":["selector:0xf2e497ae","pc:0x82d","pc:0x89c","pc:0x8e5","pc:0x8f3","pc:0x901","pc:0x932","pc:0x951","pc:0x960","pc:0x96f","pc:0x97e","pc:0x98d","pc:0x9cf"]},{"severity":"medium","category":"other","title":"Refund-on-error path can silently trap ETH","exploit_scenario":"If the payable entry path decides the supplied value is invalid, it attempts to refund msg.value back to msg.sender. A contract caller with a reverting or gas-hungry fallback can cause that refund to fail, while the function still returns an error code instead of reverting. The user-facing effect is that the call looks handled, but the ETH stays inside the contract.","recommendation":"For refund/error handling, check the CALL success flag and revert if the refund fails. Alternatively, avoid inline refunds and require explicit withdrawal from a credited balance.","evidence":"In selector 0x5a9809ed, the branch at pc 117 executes a CALL to CALLER with value=CALLVALUE and gas 0x1388 (5000), then POPs the success flag and returns a sentinel value. There is no evidence of a revert or compensating state update if that refund CALL fails. Because this is inferred from bytecode only, the exact business condition triggering the refund is best-effort.","locations":["selector:0x5a9809ed","pc:0x82"]}]}
tokens used
82,146
Metadata
{
    "codex": {
        "ran_at": "2026-04-05T00:49:50.382229+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 5090,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Bytecode-only review found two meaningful accounting risks: settlement/refund paths use value-transferring CALLs with a hard-coded 5000 gas cap, ignore the success flag, and in the main settlement path clear storage afterward. No delegatecall/proxy issue was evidenced in the bundle.",
    "raw_final": {
        "summary": "Bytecode-only review found two meaningful accounting risks: settlement/refund paths use value-transferring CALLs with a hard-coded 5000 gas cap, ignore the success flag, and in the main settlement path clear storage afterward. No delegatecall/proxy issue was evidenced in the bundle.",
        "findings": [
            {
                "title": "Settlement clears accounting even when ETH payouts fail",
                "category": "other",
                "evidence": "In selector 0xf2e497ae, pc 2093 and pc 2204 perform CALL with nonzero value to storage-derived recipients using gas 0x1388 (5000) and immediately POP the return value. The same routine then zeroes settlement-related storage with SSTOREs at pcs 2277, 2291, 2305, 2354, 2385, 2400, 2415, 2430, 2445, and 2511. This is strong evidence that failed payouts do not roll back accounting. This conclusion is based on bytecode semantics; exact field names are unknown.",
                "severity": "high",
                "locations": [
                    "selector:0xf2e497ae",
                    "pc:0x82d",
                    "pc:0x89c",
                    "pc:0x8e5",
                    "pc:0x8f3",
                    "pc:0x901",
                    "pc:0x932",
                    "pc:0x951",
                    "pc:0x960",
                    "pc:0x96f",
                    "pc:0x97e",
                    "pc:0x98d",
                    "pc:0x9cf"
                ],
                "recommendation": "Do not ignore low-level call results. Revert the whole settlement if any payout fails, or switch to a pull-payment model where recipients withdraw themselves. Avoid hard-coded 5000-gas sends to untrusted recipients unless failure is explicitly handled.",
                "exploit_scenario": "A participant or payout recipient can be a contract whose fallback reverts or needs more than 5000 gas. When the settlement path executes, the ETH sends fail silently, but the function continues and clears the tracked balances/recipient state. The contract balance then remains in the contract without matching storage, so users can lose access to owed funds even though the settlement appears to have completed."
            },
            {
                "title": "Refund-on-error path can silently trap ETH",
                "category": "other",
                "evidence": "In selector 0x5a9809ed, the branch at pc 117 executes a CALL to CALLER with value=CALLVALUE and gas 0x1388 (5000), then POPs the success flag and returns a sentinel value. There is no evidence of a revert or compensating state update if that refund CALL fails. Because this is inferred from bytecode only, the exact business condition triggering the refund is best-effort.",
                "severity": "medium",
                "locations": [
                    "selector:0x5a9809ed",
                    "pc:0x82"
                ],
                "recommendation": "For refund/error handling, check the CALL success flag and revert if the refund fails. Alternatively, avoid inline refunds and require explicit withdrawal from a credited balance.",
                "exploit_scenario": "If the payable entry path decides the supplied value is invalid, it attempts to refund msg.value back to msg.sender. A contract caller with a reverting or gas-hungry fallback can cause that refund to fail, while the function still returns an error code instead of reverting. The user-facing effect is that the call looks handled, but the ETH stays inside the contract."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
6
EXT*/BALANCE
0
Total opcodes
1448
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x00
00000002: PUSH2 0x047f
00000005: MSTORE8
00000006: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000024: PUSH1 0x00
00000026: CALLDATALOAD
00000027: DIV
00000028: PUSH4 0x5a9809ed
0000002d: DUP2
0000002e: EQ
0000002f: ISZERO
00000030: PUSH2 0x032c
00000033: JUMPI
00000034: CALLDATASIZE
00000035: MSIZE
00000036: SWAP1
00000037: MSIZE
00000038: ADD
00000039: PUSH1 0x00
0000003b: SWAP1
0000003c: MSTORE
0000003d: CALLDATASIZE
0000003e: PUSH1 0x04
00000040: DUP3
00000041: CALLDATACOPY
00000042: PUSH1 0x04
00000044: CALLDATALOAD
00000045: PUSH1 0x60
00000047: MSTORE
00000048: PUSH1 0x24
0000004a: CALLDATALOAD
0000004b: PUSH1 0x80
0000004d: MSTORE
0000004e: PUSH1 0x44
00000050: CALLDATALOAD
00000051: PUSH1 0x20
00000053: DUP3
00000054: ADD
00000055: ADD
00000056: PUSH1 0xa0
00000058: MSTORE
00000059: PUSH1 0x64
0000005b: CALLDATALOAD
0000005c: PUSH1 0xc0
0000005e: MSTORE
0000005f: PUSH1 0x84
00000061: CALLDATALOAD
00000062: PUSH1 0x20
00000064: DUP3
00000065: ADD
00000066: ADD
00000067: PUSH1 0xe0
00000069: MSTORE
0000006a: POP
0000006b: PUSH1 0xc0
0000006d: MLOAD
0000006e: CALLVALUE
0000006f: SLT
00000070: ISZERO
00000071: PUSH2 0x0093
00000074: JUMPI
00000075: PUSH1 0x00
00000077: PUSH1 0x00
00000079: PUSH1 0x00
0000007b: PUSH1 0x00
0000007d: CALLVALUE
0000007e: CALLER
0000007f: PUSH2 0x1388
00000082: CALL
00000083: POP
00000084: PUSH1 0x01
00000086: PUSH1 0x00
00000088: SUB
00000089: PUSH2 0x0100
0000008c: MSTORE
0000008d: PUSH1 0x20
0000008f: PUSH2 0x0100
00000092: RETURN
00000093: JUMPDEST
00000094: PUSH15 0x027220000000000000000000000000
000000a4: SLOAD
000000a5: PUSH2 0x0120
000000a8: MSTORE
000000a9: PUSH1 0xc0
000000ab: MLOAD
000000ac: CALLVALUE
000000ad: SUB
000000ae: PUSH2 0x2722
000000b1: PUSH2 0x0120
000000b4: MLOAD
000000b5: MUL
000000b6: SSTORE
000000b7: PUSH1 0x60
000000b9: MLOAD
000000ba: PUSH2 0x2722
000000bd: PUSH2 0x0120
000000c0: MLOAD
000000c1: MUL
000000c2: PUSH1 0x01
000000c4: ADD
000000c5: SSTORE
000000c6: PUSH1 0x80
000000c8: MLOAD
000000c9: PUSH2 0x2722
000000cc: PUSH2 0x0120
000000cf: MLOAD
000000d0: MUL
000000d1: PUSH1 0x02
000000d3: ADD
000000d4: SSTORE
000000d5: PUSH1 0x00
000000d7: PUSH2 0x0140
000000da: MSTORE
000000db: JUMPDEST
000000dc: PUSH1 0x20
000000de: PUSH1 0xa0
000000e0: MLOAD
000000e1: SUB
000000e2: MLOAD
000000e3: PUSH2 0x0140
000000e6: MLOAD
000000e7: SLT
000000e8: ISZERO
000000e9: PUSH2 0x015c
000000ec: JUMPI
000000ed: PUSH2 0x0140
000000f0: MLOAD
000000f1: PUSH1 0x20
000000f3: MUL
000000f4: PUSH1 0xa0
000000f6: MLOAD
000000f7: ADD
000000f8: MLOAD
000000f9: PUSH2 0x0140
000000fc: MLOAD
000000fd: PUSH2 0x2722
00000100: PUSH2 0x0120
00000103: MLOAD
00000104: MUL
00000105: PUSH1 0x03
00000107: ADD
00000108: ADD
00000109: SSTORE
0000010a: PUSH1 0x1c
0000010c: PUSH1 0x20
0000010e: MSIZE
0000010f: SWAP1
00000110: MSIZE
00000111: ADD
00000112: PUSH1 0x00
00000114: SWAP1
00000115: MSTORE
00000116: ADD
00000117: PUSH2 0x0120
0000011a: MLOAD
0000011b: PUSH2 0x0140
0000011e: MLOAD
0000011f: PUSH1 0x20
00000121: MUL
00000122: PUSH1 0xa0
00000124: MLOAD
00000125: ADD
00000126: MLOAD
00000127: PUSH32 0x1250e52636eed438f884679df55d2911cf41764cf8b2da1bd22d29b0eb14f80e
00000148: PUSH1 0x00
0000014a: DUP5
0000014b: LOG3
0000014c: POP
0000014d: PUSH1 0x01
0000014f: PUSH2 0x0140
00000152: MLOAD
00000153: ADD
00000154: PUSH2 0x0140
00000157: MSTORE
00000158: PUSH2 0x00db
0000015b: JUMP
0000015c: JUMPDEST
0000015d: PUSH1 0x20
0000015f: PUSH1 0xa0
00000161: MLOAD
00000162: SUB
00000163: MLOAD
00000164: PUSH2 0x2722
00000167: PUSH2 0x0120
0000016a: MLOAD
0000016b: MUL
0000016c: PUSH2 0x2713
0000016f: ADD
00000170: SSTORE
00000171: PUSH1 0xc0
00000173: MLOAD
00000174: PUSH2 0x2722
00000177: PUSH2 0x0120
0000017a: MLOAD
0000017b: MUL
0000017c: PUSH2 0x2717
0000017f: ADD
00000180: SSTORE
00000181: PUSH1 0x20
00000183: PUSH1 0xe0
00000185: MLOAD
00000186: SUB
00000187: MLOAD
00000188: PUSH2 0x2722
0000018b: PUSH2 0x0120
0000018e: MLOAD
0000018f: MUL
00000190: PUSH2 0x2718
00000193: ADD
00000194: SSTORE
00000195: PUSH1 0x00
00000197: PUSH2 0x0140
0000019a: MSTORE
0000019b: JUMPDEST
0000019c: PUSH1 0x20
0000019e: PUSH1 0xe0
000001a0: MLOAD
000001a1: SUB
000001a2: MLOAD
000001a3: PUSH1 0x20
000001a5: PUSH2 0x0140
000001a8: MLOAD
000001a9: MUL
000001aa: SLT
000001ab: ISZERO
000001ac: PUSH2 0x01e0
000001af: JUMPI
000001b0: PUSH2 0x0140
000001b3: MLOAD
000001b4: PUSH1 0x20
000001b6: MUL
000001b7: PUSH1 0xe0
000001b9: MLOAD
000001ba: ADD
000001bb: MLOAD
000001bc: PUSH1 0x01
000001be: PUSH2 0x0140
000001c1: MLOAD
000001c2: ADD
000001c3: PUSH2 0x2722
000001c6: PUSH2 0x0120
000001c9: MLOAD
000001ca: MUL
000001cb: PUSH2 0x2718
000001ce: ADD
000001cf: ADD
000001d0: SSTORE
000001d1: PUSH1 0x01
000001d3: PUSH2 0x0140
000001d6: MLOAD
000001d7: ADD
000001d8: PUSH2 0x0140
000001db: MSTORE
000001dc: PUSH2 0x019b
000001df: JUMP
000001e0: JUMPDEST
000001e1: PUSH1 0x01
000001e3: PUSH2 0x0120
000001e6: MLOAD
000001e7: ADD
000001e8: PUSH15 0x027220000000000000000000000000
000001f8: SSTORE
000001f9: PUSH1 0x80
000001fb: PUSH1 0x1c
000001fd: PUSH2 0x01a0
00000200: MSIZE
00000201: SWAP1
00000202: MSIZE
00000203: ADD
00000204: PUSH1 0x00
00000206: SWAP1
00000207: MSTORE
00000208: ADD
00000209: PUSH1 0xc0
0000020b: MLOAD
0000020c: CALLVALUE
0000020d: SUB
0000020e: DUP2
0000020f: MSTORE
00000210: PUSH1 0xa0
00000212: MLOAD
00000213: PUSH1 0x20
00000215: DUP2
00000216: SUB
00000217: MLOAD
00000218: PUSH1 0x20
0000021a: MUL
0000021b: PUSH1 0x20
0000021d: ADD
0000021e: DUP4
0000021f: PUSH1 0x20
00000221: DUP5
00000222: ADD
00000223: MSTORE
00000224: PUSH1 0x20
00000226: DUP3
00000227: SUB
00000228: PUSH1 0xa0
0000022a: DUP5
0000022b: ADD
0000022c: MSTORE
0000022d: DUP1
0000022e: PUSH2 0x0120
00000231: DUP5
00000232: ADD
00000233: MSTORE
00000234: DUP1
00000235: DUP5
00000236: ADD
00000237: SWAP4
00000238: POP
00000239: POP
0000023a: POP
0000023b: PUSH1 0xc0
0000023d: MLOAD
0000023e: PUSH1 0x40
00000240: DUP3
00000241: ADD
00000242: MSTORE
00000243: PUSH1 0xe0
00000245: MLOAD
00000246: PUSH1 0x20
00000248: PUSH1 0x1f
0000024a: PUSH1 0x20
0000024c: DUP4
0000024d: SUB
0000024e: MLOAD
0000024f: ADD
00000250: DIV
00000251: PUSH1 0x20
00000253: MUL
00000254: PUSH1 0x20
00000256: ADD
00000257: DUP4
00000258: PUSH1 0x60
0000025a: DUP5
0000025b: ADD
0000025c: MSTORE
0000025d: PUSH1 0x20
0000025f: DUP3
00000260: SUB
00000261: PUSH1 0xe0
00000263: DUP5
00000264: ADD
00000265: MSTORE
00000266: DUP1
00000267: PUSH2 0x0160
0000026a: DUP5
0000026b: ADD
0000026c: MSTORE
0000026d: DUP1
0000026e: DUP5
0000026f: ADD
00000270: SWAP4
00000271: POP
00000272: POP
00000273: POP
00000274: DUP2
00000275: PUSH1 0x04
00000277: ADD
00000278: MSIZE
00000279: SWAP1
0000027a: MSIZE
0000027b: ADD
0000027c: PUSH1 0x00
0000027e: SWAP1
0000027f: MSTORE
00000280: PUSH1 0x80
00000282: DUP2
00000283: PUSH1 0x80
00000285: DUP5
00000286: PUSH1 0x00
00000288: PUSH1 0x04
0000028a: PUSH1 0x1e
0000028c: CALL
0000028d: PUSH2 0x0292
00000290: JUMPI
00000291: INVALID
00000292: JUMPDEST
00000293: PUSH1 0x80
00000295: DUP2
00000296: ADD
00000297: SWAP3
00000298: POP
00000299: PUSH2 0x0120
0000029c: DUP3
0000029d: ADD
0000029e: MLOAD
0000029f: DUP1
000002a0: DUP1
000002a1: DUP6
000002a2: DUP3
000002a3: PUSH1 0xa0
000002a5: DUP8
000002a6: ADD
000002a7: MLOAD
000002a8: PUSH1 0x00
000002aa: PUSH1 0x04
000002ac: PUSH1 0x0a
000002ae: DUP8
000002af: SDIV
000002b0: PUSH1 0x12
000002b2: ADD
000002b3: CALL
000002b4: PUSH2 0x02b9
000002b7: JUMPI
000002b8: INVALID
000002b9: JUMPDEST
000002ba: POP
000002bb: DUP1
000002bc: DUP5
000002bd: ADD
000002be: SWAP4
000002bf: POP
000002c0: POP
000002c1: PUSH2 0x0160
000002c4: DUP3
000002c5: ADD
000002c6: MLOAD
000002c7: DUP1
000002c8: DUP1
000002c9: DUP6
000002ca: DUP3
000002cb: PUSH1 0xe0
000002cd: DUP8
000002ce: ADD
000002cf: MLOAD
000002d0: PUSH1 0x00
000002d2: PUSH1 0x04
000002d4: PUSH1 0x0a
000002d6: DUP8
000002d7: SDIV
000002d8: PUSH1 0x12
000002da: ADD
000002db: CALL
000002dc: PUSH2 0x02e1
000002df: JUMPI
000002e0: INVALID
000002e1: JUMPDEST
000002e2: POP
000002e3: DUP1
000002e4: DUP5
000002e5: ADD
000002e6: SWAP4
000002e7: POP
000002e8: POP
000002e9: DUP1
000002ea: DUP4
000002eb: SUB
000002ec: PUSH2 0x0120
000002ef: MLOAD
000002f0: PUSH1 0x80
000002f2: MLOAD
000002f3: PUSH1 0x60
000002f5: MLOAD
000002f6: PUSH32 0x8d936b1bd3fc635710969ccfba471fb17d598d9d1971b538dd712e1e4b4f4dba
00000317: DUP5
00000318: DUP7
00000319: LOG4
0000031a: POP
0000031b: POP
0000031c: POP
0000031d: POP
0000031e: PUSH2 0x0120
00000321: MLOAD
00000322: PUSH2 0x0220
00000325: MSTORE
00000326: PUSH1 0x20
00000328: PUSH2 0x0220
0000032b: RETURN
0000032c: JUMPDEST
0000032d: PUSH4 0xd5f39e24
00000332: DUP2
00000333: EQ
00000334: ISZERO
00000335: PUSH2 0x0353
00000338: JUMPI
00000339: PUSH1 0x04
0000033b: CALLDATALOAD
0000033c: PUSH2 0x0120
0000033f: MSTORE
00000340: PUSH2 0x2722
00000343: PUSH2 0x0120
00000346: MLOAD
00000347: MUL
00000348: SLOAD
00000349: PUSH2 0x0240
0000034c: MSTORE
0000034d: PUSH1 0x20
0000034f: PUSH2 0x0240
00000352: RETURN
00000353: JUMPDEST
00000354: PUSH4 0xa11af387
00000359: DUP2
0000035a: EQ
0000035b: ISZERO
0000035c: PUSH2 0x03b5
0000035f: JUMPI
00000360: PUSH1 0x04
00000362: CALLDATALOAD
00000363: PUSH2 0x0120
00000366: MSTORE
00000367: PUSH1 0x60
00000369: MSIZE
0000036a: SWAP1
0000036b: MSIZE
0000036c: ADD
0000036d: PUSH1 0x00
0000036f: SWAP1
00000370: MSTORE
00000371: PUSH1 0x02
00000373: DUP2
00000374: MSTORE
00000375: PUSH2 0x2722
00000378: PUSH2 0x0120
0000037b: MLOAD
0000037c: MUL
0000037d: PUSH1 0x01
0000037f: ADD
00000380: SLOAD
00000381: PUSH1 0x20
00000383: DUP3
00000384: ADD
00000385: MSTORE
00000386: PUSH2 0x2722
00000389: PUSH2 0x0120
0000038c: MLOAD
0000038d: MUL
0000038e: PUSH1 0x02
00000390: ADD
00000391: SLOAD
00000392: PUSH1 0x40
00000394: DUP3
00000395: ADD
00000396: MSTORE
00000397: PUSH1 0x20
00000399: DUP2
0000039a: ADD
0000039b: SWAP1
0000039c: POP
0000039d: PUSH1 0x20
0000039f: PUSH1 0x40
000003a1: DUP3
000003a2: SUB
000003a3: MSTORE
000003a4: PUSH1 0x20
000003a6: PUSH1 0x20
000003a8: DUP3
000003a9: SUB
000003aa: MLOAD
000003ab: MUL
000003ac: PUSH1 0x40
000003ae: ADD
000003af: PUSH1 0x40
000003b1: DUP3
000003b2: SUB
000003b3: RETURN
000003b4: POP
000003b5: JUMPDEST
000003b6: PUSH4 0x7b0ae934
000003bb: DUP2
000003bc: EQ
000003bd: ISZERO
000003be: PUSH2 0x044f
000003c1: JUMPI
000003c2: PUSH1 0x04
000003c4: CALLDATALOAD
000003c5: PUSH2 0x0120
000003c8: MSTORE
000003c9: PUSH1 0xc8
000003cb: MSIZE
000003cc: SWAP1
000003cd: MSIZE
000003ce: ADD
000003cf: PUSH1 0x00
000003d1: SWAP1
000003d2: MSTORE
000003d3: PUSH2 0x02a0
000003d6: MSTORE
000003d7: PUSH2 0x2722
000003da: PUSH2 0x0120
000003dd: MLOAD
000003de: MUL
000003df: PUSH2 0x2713
000003e2: ADD
000003e3: SLOAD
000003e4: PUSH2 0x02a0
000003e7: MLOAD
000003e8: MSTORE
000003e9: PUSH1 0x00
000003eb: PUSH2 0x0140
000003ee: MSTORE
000003ef: JUMPDEST
000003f0: PUSH2 0x02a0
000003f3: MLOAD
000003f4: MLOAD
000003f5: PUSH2 0x0140
000003f8: MLOAD
000003f9: SLT
000003fa: ISZERO
000003fb: PUSH2 0x042f
000003fe: JUMPI
000003ff: PUSH2 0x0140
00000402: MLOAD
00000403: PUSH2 0x2722
00000406: PUSH2 0x0120
00000409: MLOAD
0000040a: MUL
0000040b: PUSH1 0x03
0000040d: ADD
0000040e: ADD
0000040f: SLOAD
00000410: PUSH1 0x01
00000412: PUSH2 0x0140
00000415: MLOAD
00000416: ADD
00000417: PUSH1 0x20
00000419: MUL
0000041a: PUSH2 0x02a0
0000041d: MLOAD
0000041e: ADD
0000041f: MSTORE
00000420: PUSH1 0x01
00000422: PUSH2 0x0140
00000425: MLOAD
00000426: ADD
00000427: PUSH2 0x0140
0000042a: MSTORE
0000042b: PUSH2 0x03ef
0000042e: JUMP
0000042f: JUMPDEST
00000430: PUSH1 0x20
00000432: PUSH2 0x02a0
00000435: MLOAD
00000436: ADD
00000437: PUSH1 0x20
00000439: PUSH1 0x40
0000043b: DUP3
0000043c: SUB
0000043d: MSTORE
0000043e: PUSH1 0x20
00000440: PUSH1 0x20
00000442: DUP3
00000443: SUB
00000444: MLOAD
00000445: MUL
00000446: PUSH1 0x40
00000448: ADD
00000449: PUSH1 0x40
0000044b: DUP3
0000044c: SUB
0000044d: RETURN
0000044e: POP
0000044f: JUMPDEST
00000450: PUSH4 0xd966f799
00000455: DUP2
00000456: EQ
00000457: ISZERO
00000458: PUSH2 0x047a
0000045b: JUMPI
0000045c: PUSH1 0x04
0000045e: CALLDATALOAD
0000045f: PUSH2 0x0120
00000462: MSTORE
00000463: PUSH2 0x2722
00000466: PUSH2 0x0120
00000469: MLOAD
0000046a: MUL
0000046b: PUSH2 0x2717
0000046e: ADD
0000046f: SLOAD
00000470: PUSH2 0x02e0
00000473: MSTORE
00000474: PUSH1 0x20
00000476: PUSH2 0x02e0
00000479: RETURN
0000047a: JUMPDEST
0000047b: PUSH4 0x3cd86b77
00000480: DUP2
00000481: EQ
00000482: ISZERO
00000483: PUSH2 0x0522
00000486: JUMPI
00000487: PUSH1 0x04
00000489: CALLDATALOAD
0000048a: PUSH2 0x0120
0000048d: MSTORE
0000048e: PUSH2 0x0140
00000491: MSIZE
00000492: SWAP1
00000493: MSIZE
00000494: ADD
00000495: PUSH1 0x00
00000497: SWAP1
00000498: MSTORE
00000499: PUSH2 0x0300
0000049c: MSTORE
0000049d: PUSH1 0x00
0000049f: PUSH2 0x0140
000004a2: MSTORE
000004a3: PUSH2 0x2722
000004a6: PUSH2 0x0120
000004a9: MLOAD
000004aa: MUL
000004ab: PUSH2 0x2718
000004ae: ADD
000004af: SLOAD
000004b0: PUSH2 0x0300
000004b3: MLOAD
000004b4: MSTORE
000004b5: JUMPDEST
000004b6: PUSH2 0x0300
000004b9: MLOAD
000004ba: MLOAD
000004bb: PUSH1 0x20
000004bd: PUSH2 0x0140
000004c0: MLOAD
000004c1: MUL
000004c2: SLT
000004c3: ISZERO
000004c4: PUSH2 0x04fc
000004c7: JUMPI
000004c8: PUSH1 0x01
000004ca: PUSH2 0x0140
000004cd: MLOAD
000004ce: ADD
000004cf: PUSH2 0x2722
000004d2: PUSH2 0x0120
000004d5: MLOAD
000004d6: MUL
000004d7: PUSH2 0x2718
000004da: ADD
000004db: ADD
000004dc: SLOAD
000004dd: PUSH1 0x01
000004df: PUSH2 0x0140
000004e2: MLOAD
000004e3: ADD
000004e4: PUSH1 0x20
000004e6: MUL
000004e7: PUSH2 0x0300
000004ea: MLOAD
000004eb: ADD
000004ec: MSTORE
000004ed: PUSH1 0x01
000004ef: PUSH2 0x0140
000004f2: MLOAD
000004f3: ADD
000004f4: PUSH2 0x0140
000004f7: MSTORE
000004f8: PUSH2 0x04b5
000004fb: JUMP
000004fc: JUMPDEST
000004fd: PUSH1 0x20
000004ff: PUSH2 0x0300
00000502: MLOAD
00000503: ADD
00000504: PUSH1 0x20
00000506: PUSH1 0x40
00000508: DUP3
00000509: SUB
0000050a: MSTORE
0000050b: PUSH1 0x20
0000050d: PUSH1 0x1f
0000050f: PUSH1 0x20
00000511: DUP4
00000512: SUB
00000513: MLOAD
00000514: PUSH1 0x40
00000516: ADD
00000517: ADD
00000518: DIV
00000519: PUSH1 0x20
0000051b: MUL
0000051c: PUSH1 0x40
0000051e: DUP3
0000051f: SUB
00000520: RETURN
00000521: POP
00000522: JUMPDEST
00000523: PUSH4 0x8f26e0fe
00000528: DUP2
00000529: EQ
0000052a: ISZERO
0000052b: PUSH2 0x054a
0000052e: JUMPI
0000052f: PUSH15 0x027220000000000000000000000000
0000053f: SLOAD
00000540: PUSH2 0x0340
00000543: MSTORE
00000544: PUSH1 0x20
00000546: PUSH2 0x0340
00000549: RETURN
0000054a: JUMPDEST
0000054b: PUSH4 0xf2e497ae
00000550: DUP2
00000551: EQ
00000552: ISZERO
00000553: PUSH2 0x09ee
00000556: JUMPI
00000557: CALLDATASIZE
00000558: MSIZE
00000559: SWAP1
0000055a: MSIZE
0000055b: ADD
0000055c: PUSH1 0x00
0000055e: SWAP1
0000055f: MSTORE
00000560: CALLDATASIZE
00000561: PUSH1 0x04
00000563: DUP3
00000564: CALLDATACOPY
00000565: PUSH1 0x04
00000567: CALLDATALOAD
00000568: PUSH2 0x0120
0000056b: MSTORE
0000056c: PUSH1 0x24
0000056e: CALLDATALOAD
0000056f: PUSH2 0x0360
00000572: MSTORE
00000573: POP
00000574: PUSH1 0x01
00000576: PUSH1 0x00
00000578: SUB
00000579: PUSH2 0x0380
0000057c: MSTORE
0000057d: PUSH1 0x00
0000057f: PUSH2 0x0140
00000582: MSTORE
00000583: JUMPDEST
00000584: PUSH2 0x2722
00000587: PUSH2 0x0120
0000058a: MLOAD
0000058b: MUL
0000058c: PUSH2 0x2713
0000058f: ADD
00000590: SLOAD
00000591: PUSH2 0x0140
00000594: MLOAD
00000595: SLT
00000596: ISZERO
00000597: PUSH2 0x05f1
0000059a: JUMPI
0000059b: CALLER
0000059c: PUSH2 0x0140
0000059f: MLOAD
000005a0: PUSH2 0x2722
000005a3: PUSH2 0x0120
000005a6: MLOAD
000005a7: MUL
000005a8: PUSH1 0x03
000005aa: ADD
000005ab: ADD
000005ac: SLOAD
000005ad: EQ
000005ae: ISZERO
000005af: PUSH2 0x05e1
000005b2: JUMPI
000005b3: PUSH2 0x0140
000005b6: MLOAD
000005b7: PUSH1 0x02
000005b9: EXP
000005ba: PUSH2 0x03a0
000005bd: MSTORE
000005be: PUSH1 0x00
000005c0: PUSH2 0x2722
000005c3: PUSH2 0x0120
000005c6: MLOAD
000005c7: MUL
000005c8: PUSH2 0x2714
000005cb: ADD
000005cc: SLOAD
000005cd: PUSH2 0x03a0
000005d0: MLOAD
000005d1: AND
000005d2: EQ
000005d3: ISZERO
000005d4: PUSH2 0x05e0
000005d7: JUMPI
000005d8: PUSH2 0x0140
000005db: MLOAD
000005dc: PUSH2 0x0380
000005df: MSTORE
000005e0: JUMPDEST
000005e1: JUMPDEST
000005e2: PUSH1 0x01
000005e4: PUSH2 0x0140
000005e7: MLOAD
000005e8: ADD
000005e9: PUSH2 0x0140
000005ec: MSTORE
000005ed: PUSH2 0x0583
000005f0: JUMP
000005f1: JUMPDEST
000005f2: CALLER
000005f3: PUSH2 0x2722
000005f6: PUSH2 0x0120
000005f9: MLOAD
000005fa: MUL
000005fb: PUSH1 0x01
000005fd: ADD
000005fe: SLOAD
000005ff: EQ
00000600: ISZERO
00000601: PUSH2 0x0610
00000604: JUMPI
00000605: PUSH1 0x00
00000607: PUSH2 0x0360
0000060a: MLOAD
0000060b: EQ
0000060c: PUSH2 0x0613
0000060f: JUMP
00000610: JUMPDEST
00000611: PUSH1 0x00
00000613: JUMPDEST
00000614: ISZERO
00000615: PUSH2 0x0620
00000618: JUMPI
00000619: PUSH2 0x03e7
0000061c: PUSH2 0x0380
0000061f: MSTORE
00000620: JUMPDEST
00000621: CALLER
00000622: PUSH2 0x2722
00000625: PUSH2 0x0120
00000628: MLOAD
00000629: MUL
0000062a: PUSH1 0x02
0000062c: ADD
0000062d: SLOAD
0000062e: EQ
0000062f: ISZERO
00000630: PUSH2 0x063f
00000633: JUMPI
00000634: PUSH1 0x01
00000636: PUSH2 0x0360
00000639: MLOAD
0000063a: EQ
0000063b: PUSH2 0x0642
0000063e: JUMP
0000063f: JUMPDEST
00000640: PUSH1 0x00
00000642: JUMPDEST
00000643: ISZERO
00000644: PUSH2 0x064f
00000647: JUMPI
00000648: PUSH2 0x03e7
0000064b: PUSH2 0x0380
0000064e: MSTORE
0000064f: JUMPDEST
00000650: PUSH1 0x01
00000652: PUSH1 0x00
00000654: SUB
00000655: PUSH2 0x0380
00000658: MLOAD
00000659: EQ
0000065a: ISZERO
0000065b: PUSH2 0x066b
0000065e: JUMPI
0000065f: PUSH1 0x00
00000661: PUSH2 0x03c0
00000664: MSTORE
00000665: PUSH1 0x20
00000667: PUSH2 0x03c0
0000066a: RETURN
0000066b: JUMPDEST
0000066c: PUSH1 0x00
0000066e: PUSH2 0x03e0
00000671: MSTORE
00000672: PUSH2 0x03a0
00000675: MLOAD
00000676: PUSH2 0x2722
00000679: PUSH2 0x0120
0000067c: MLOAD
0000067d: MUL
0000067e: PUSH2 0x2714
00000681: ADD
00000682: SLOAD
00000683: OR
00000684: PUSH2 0x2722
00000687: PUSH2 0x0120
0000068a: MLOAD
0000068b: MUL
0000068c: PUSH2 0x2714
0000068f: ADD
00000690: SSTORE
00000691: PUSH1 0x1c
00000693: PUSH1 0x40
00000695: MSIZE
00000696: SWAP1
00000697: MSIZE
00000698: ADD
00000699: PUSH1 0x00
0000069b: SWAP1
0000069c: MSTORE
0000069d: ADD
0000069e: PUSH2 0x0360
000006a1: MLOAD
000006a2: DUP2
000006a3: MSTORE
000006a4: CALLER
000006a5: PUSH2 0x0120
000006a8: MLOAD
000006a9: PUSH32 0xcfa82ef0390c8f3e57ebe6c0665352a383667e792af012d350d9786ee5173d26
000006ca: PUSH1 0x20
000006cc: DUP5
000006cd: LOG3
000006ce: POP
000006cf: PUSH2 0x03e7
000006d2: PUSH2 0x0380
000006d5: MLOAD
000006d6: EQ
000006d7: ISZERO
000006d8: ISZERO
000006d9: PUSH2 0x077e
000006dc: JUMPI
000006dd: PUSH2 0x0360
000006e0: MLOAD
000006e1: ISZERO
000006e2: PUSH2 0x0731
000006e5: JUMPI
000006e6: PUSH1 0x01
000006e8: PUSH2 0x2722
000006eb: PUSH2 0x0120
000006ee: MLOAD
000006ef: MUL
000006f0: PUSH2 0x2715
000006f3: ADD
000006f4: SLOAD
000006f5: ADD
000006f6: PUSH2 0x2722
000006f9: PUSH2 0x0120
000006fc: MLOAD
000006fd: MUL
000006fe: PUSH2 0x2715
00000701: ADD
00000702: SSTORE
00000703: PUSH2 0x2722
00000706: PUSH2 0x0120
00000709: MLOAD
0000070a: MUL
0000070b: PUSH2 0x2713
0000070e: ADD
0000070f: SLOAD
00000710: PUSH1 0x02
00000712: PUSH2 0x2722
00000715: PUSH2 0x0120
00000718: MLOAD
00000719: MUL
0000071a: PUSH2 0x2715
0000071d: ADD
0000071e: SLOAD
0000071f: MUL
00000720: SGT
00000721: ISZERO
00000722: PUSH2 0x072c
00000725: JUMPI
00000726: PUSH1 0x01
00000728: PUSH2 0x03e0
0000072b: MSTORE
0000072c: JUMPDEST
0000072d: PUSH2 0x0779
00000730: JUMP
00000731: JUMPDEST
00000732: PUSH1 0x01
00000734: PUSH2 0x2722
00000737: PUSH2 0x0120
0000073a: MLOAD
0000073b: MUL
0000073c: PUSH2 0x2716
0000073f: ADD
00000740: SLOAD
00000741: ADD
00000742: PUSH2 0x2722
00000745: PUSH2 0x0120
00000748: MLOAD
00000749: MUL
0000074a: PUSH2 0x2716
0000074d: ADD
0000074e: SSTORE
0000074f: PUSH2 0x2722
00000752: PUSH2 0x0120
00000755: MLOAD
00000756: MUL
00000757: PUSH2 0x2713
0000075a: ADD
0000075b: SLOAD
0000075c: PUSH1 0x02
0000075e: PUSH2 0x2722
00000761: PUSH2 0x0120
00000764: MLOAD
00000765: MUL
00000766: PUSH2 0x2716
00000769: ADD
0000076a: SLOAD
0000076b: MUL
0000076c: SGT
0000076d: ISZERO
0000076e: PUSH2 0x0778
00000771: JUMPI
00000772: PUSH1 0x02
00000774: PUSH2 0x03e0
00000777: MSTORE
00000778: JUMPDEST
00000779: JUMPDEST
0000077a: PUSH2 0x0796
0000077d: JUMP
0000077e: JUMPDEST
0000077f: PUSH2 0x0360
00000782: MLOAD
00000783: ISZERO
00000784: PUSH2 0x078e
00000787: JUMPI
00000788: PUSH1 0x01
0000078a: PUSH2 0x0791
0000078d: JUMP
0000078e: JUMPDEST
0000078f: PUSH1 0x02
00000791: JUMPDEST
00000792: PUSH2 0x03e0
00000795: MSTORE
00000796: JUMPDEST
00000797: PUSH2 0x03e0
0000079a: MLOAD
0000079b: ISZERO
0000079c: PUSH2 0x09e1
0000079f: JUMPI
000007a0: PUSH1 0x00
000007a2: PUSH2 0x0140
000007a5: MSTORE
000007a6: PUSH2 0x2722
000007a9: PUSH2 0x0120
000007ac: MLOAD
000007ad: MUL
000007ae: PUSH2 0x2716
000007b1: ADD
000007b2: SLOAD
000007b3: PUSH2 0x2722
000007b6: PUSH2 0x0120
000007b9: MLOAD
000007ba: MUL
000007bb: PUSH2 0x2715
000007be: ADD
000007bf: SLOAD
000007c0: ADD
000007c1: PUSH2 0x0400
000007c4: MSTORE
000007c5: PUSH2 0x0400
000007c8: MLOAD
000007c9: PUSH2 0x2722
000007cc: PUSH2 0x0120
000007cf: MLOAD
000007d0: MUL
000007d1: PUSH2 0x2717
000007d4: ADD
000007d5: SLOAD
000007d6: SDIV
000007d7: PUSH2 0x0420
000007da: MSTORE
000007db: JUMPDEST
000007dc: PUSH2 0x2722
000007df: PUSH2 0x0120
000007e2: MLOAD
000007e3: MUL
000007e4: PUSH2 0x2713
000007e7: ADD
000007e8: SLOAD
000007e9: PUSH2 0x0140
000007ec: MLOAD
000007ed: SLT
000007ee: ISZERO
000007ef: PUSH2 0x083f
000007f2: JUMPI
000007f3: PUSH2 0x2722
000007f6: PUSH2 0x0120
000007f9: MLOAD
000007fa: MUL
000007fb: PUSH2 0x2714
000007fe: ADD
000007ff: SLOAD
00000800: PUSH2 0x0140
00000803: MLOAD
00000804: PUSH1 0x02
00000806: EXP
00000807: AND
00000808: ISZERO
00000809: PUSH2 0x082f
0000080c: JUMPI
0000080d: PUSH1 0x00
0000080f: PUSH1 0x00
00000811: PUSH1 0x00
00000813: PUSH1 0x00
00000815: PUSH2 0x0420
00000818: MLOAD
00000819: PUSH2 0x0140
0000081c: MLOAD
0000081d: PUSH2 0x2722
00000820: PUSH2 0x0120
00000823: MLOAD
00000824: MUL
00000825: PUSH1 0x03
00000827: ADD
00000828: ADD
00000829: SLOAD
0000082a: PUSH2 0x1388
0000082d: CALL
0000082e: POP
0000082f: JUMPDEST
00000830: PUSH1 0x01
00000832: PUSH2 0x0140
00000835: MLOAD
00000836: ADD
00000837: PUSH2 0x0140
0000083a: MSTORE
0000083b: PUSH2 0x07db
0000083e: JUMP
0000083f: JUMPDEST
00000840: PUSH1 0x01
00000842: PUSH2 0x03e0
00000845: MLOAD
00000846: EQ
00000847: ISZERO
00000848: PUSH2 0x085c
0000084b: JUMPI
0000084c: PUSH2 0x2722
0000084f: PUSH2 0x0120
00000852: MLOAD
00000853: MUL
00000854: PUSH1 0x01
00000856: ADD
00000857: SLOAD
00000858: PUSH2 0x0869
0000085b: JUMP
0000085c: JUMPDEST
0000085d: PUSH2 0x2722
00000860: PUSH2 0x0120
00000863: MLOAD
00000864: MUL
00000865: PUSH1 0x02
00000867: ADD
00000868: SLOAD
00000869: JUMPDEST
0000086a: PUSH2 0x0440
0000086d: MSTORE
0000086e: PUSH1 0x00
00000870: PUSH1 0x00
00000872: PUSH1 0x00
00000874: PUSH1 0x00
00000876: PUSH1 0x00
00000878: PUSH2 0x0400
0000087b: MLOAD
0000087c: EQ
0000087d: PUSH2 0x2722
00000880: PUSH2 0x0120
00000883: MLOAD
00000884: MUL
00000885: PUSH2 0x2717
00000888: ADD
00000889: SLOAD
0000088a: MUL
0000088b: PUSH2 0x2722
0000088e: PUSH2 0x0120
00000891: MLOAD
00000892: MUL
00000893: SLOAD
00000894: ADD
00000895: PUSH2 0x0440
00000898: MLOAD
00000899: PUSH2 0x1388
0000089c: CALL
0000089d: POP
0000089e: PUSH1 0x1c
000008a0: PUSH1 0x40
000008a2: MSIZE
000008a3: SWAP1
000008a4: MSIZE
000008a5: ADD
000008a6: PUSH1 0x00
000008a8: SWAP1
000008a9: MSTORE
000008aa: ADD
000008ab: PUSH2 0x0440
000008ae: MLOAD
000008af: DUP2
000008b0: MSTORE
000008b1: PUSH2 0x0120
000008b4: MLOAD
000008b5: PUSH32 0xd73429fe3d5eae9e487e60af3e9befceddbdbd53695543a735e2d8face8269d3
000008d6: PUSH1 0x20
000008d8: DUP4
000008d9: LOG2
000008da: POP
000008db: PUSH1 0x00
000008dd: PUSH2 0x2722
000008e0: PUSH2 0x0120
000008e3: MLOAD
000008e4: MUL
000008e5: SSTORE
000008e6: PUSH1 0x00
000008e8: PUSH2 0x2722
000008eb: PUSH2 0x0120
000008ee: MLOAD
000008ef: MUL
000008f0: PUSH1 0x01
000008f2: ADD
000008f3: SSTORE
000008f4: PUSH1 0x00
000008f6: PUSH2 0x2722
000008f9: PUSH2 0x0120
000008fc: MLOAD
000008fd: MUL
000008fe: PUSH1 0x02
00000900: ADD
00000901: SSTORE
00000902: PUSH1 0x00
00000904: PUSH2 0x0140
00000907: MSTORE
00000908: JUMPDEST
00000909: PUSH2 0x2722
0000090c: PUSH2 0x0120
0000090f: MLOAD
00000910: MUL
00000911: PUSH2 0x2713
00000914: ADD
00000915: SLOAD
00000916: PUSH2 0x0140
00000919: MLOAD
0000091a: SLT
0000091b: ISZERO
0000091c: PUSH2 0x0942
0000091f: JUMPI
00000920: PUSH1 0x00
00000922: PUSH2 0x0140
00000925: MLOAD
00000926: PUSH2 0x2722
00000929: PUSH2 0x0120
0000092c: MLOAD
0000092d: MUL
0000092e: PUSH1 0x03
00000930: ADD
00000931: ADD
00000932: SSTORE
00000933: PUSH1 0x01
00000935: PUSH2 0x0140
00000938: MLOAD
00000939: ADD
0000093a: PUSH2 0x0140
0000093d: MSTORE
0000093e: PUSH2 0x0908
00000941: JUMP
00000942: JUMPDEST
00000943: PUSH1 0x00
00000945: PUSH2 0x2722
00000948: PUSH2 0x0120
0000094b: MLOAD
0000094c: MUL
0000094d: PUSH2 0x2713
00000950: ADD
00000951: SSTORE
00000952: PUSH1 0x00
00000954: PUSH2 0x2722
00000957: PUSH2 0x0120
0000095a: MLOAD
0000095b: MUL
0000095c: PUSH2 0x2714
0000095f: ADD
00000960: SSTORE
00000961: PUSH1 0x00
00000963: PUSH2 0x2722
00000966: PUSH2 0x0120
00000969: MLOAD
0000096a: MUL
0000096b: PUSH2 0x2715
0000096e: ADD
0000096f: SSTORE
00000970: PUSH1 0x00
00000972: PUSH2 0x2722
00000975: PUSH2 0x0120
00000978: MLOAD
00000979: MUL
0000097a: PUSH2 0x2716
0000097d: ADD
0000097e: SSTORE
0000097f: PUSH1 0x00
00000981: PUSH2 0x2722
00000984: PUSH2 0x0120
00000987: MLOAD
00000988: MUL
00000989: PUSH2 0x2717
0000098c: ADD
0000098d: SSTORE
0000098e: PUSH1 0x00
00000990: PUSH2 0x0140
00000993: MSTORE
00000994: JUMPDEST
00000995: PUSH1 0x0a
00000997: PUSH2 0x0140
0000099a: MLOAD
0000099b: SLT
0000099c: ISZERO
0000099d: PUSH2 0x09e0
000009a0: JUMPI
000009a1: PUSH1 0x00
000009a3: PUSH2 0x0140
000009a6: MLOAD
000009a7: PUSH2 0x2722
000009aa: PUSH2 0x0120
000009ad: MLOAD
000009ae: MUL
000009af: PUSH2 0x2718
000009b2: ADD
000009b3: ADD
000009b4: SLOAD
000009b5: EQ
000009b6: ISZERO
000009b7: ISZERO
000009b8: PUSH2 0x09d0
000009bb: JUMPI
000009bc: PUSH1 0x00
000009be: PUSH2 0x0140
000009c1: MLOAD
000009c2: PUSH2 0x2722
000009c5: PUSH2 0x0120
000009c8: MLOAD
000009c9: MUL
000009ca: PUSH2 0x2718
000009cd: ADD
000009ce: ADD
000009cf: SSTORE
000009d0: JUMPDEST
000009d1: PUSH1 0x01
000009d3: PUSH2 0x0140
000009d6: MLOAD
000009d7: ADD
000009d8: PUSH2 0x0140
000009db: MSTORE
000009dc: PUSH2 0x0994
000009df: JUMP
000009e0: JUMPDEST
000009e1: JUMPDEST
000009e2: PUSH1 0x01
000009e4: PUSH2 0x0460
000009e7: MSTORE
000009e8: PUSH1 0x20
000009ea: PUSH2 0x0460
000009ed: RETURN
000009ee: JUMPDEST
000009ef: POP
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
high other codex Settlement clears accounting even when ETH payouts fail 85 no
view
evidence_json
{
    "evidence": "In selector 0xf2e497ae, pc 2093 and pc 2204 perform CALL with nonzero value to storage-derived recipients using gas 0x1388 (5000) and immediately POP the return value. The same routine then zeroes settlement-related storage with SSTOREs at pcs 2277, 2291, 2305, 2354, 2385, 2400, 2415, 2430, 2445, and 2511. This is strong evidence that failed payouts do not roll back accounting. This conclusion is based on bytecode semantics; exact field names are unknown.",
    "locations": [
        "selector:0xf2e497ae",
        "pc:0x82d",
        "pc:0x89c",
        "pc:0x8e5",
        "pc:0x8f3",
        "pc:0x901",
        "pc:0x932",
        "pc:0x951",
        "pc:0x960",
        "pc:0x96f",
        "pc:0x97e",
        "pc:0x98d",
        "pc:0x9cf"
    ],
    "recommendation": "Do not ignore low-level call results. Revert the whole settlement if any payout fails, or switch to a pull-payment model where recipients withdraw themselves. Avoid hard-coded 5000-gas sends to untrusted recipients unless failure is explicitly handled.",
    "exploit_scenario": "A participant or payout recipient can be a contract whose fallback reverts or needs more than 5000 gas. When the settlement path executes, the ETH sends fail silently, but the function continues and clears the tracked balances/recipient state. The contract balance then remains in the contract without matching storage, so users can lose access to owed funds even though the settlement appears to have completed."
}
medium other detector Untrusted CALL target/value reachable 45 yes yes
view
trace_id: 0xecb988addb74b8b83ee7d34fd147817300d9a87bc616c829980120049f95f98d
call_targets: 0x0000000000000000000000000000000000000004, 0xe881af13bf55c97562fe8d2da2f6ea8e3ff66f98
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0xecb988addb74b8b83ee7d34fd147817300d9a87bc616c829980120049f95f98d",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000004",
        "0xe881af13bf55c97562fe8d2da2f6ea8e3ff66f98"
    ],
    "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": "0x5a9809ed",
            "selector": "0x5a9809ed",
            "calldata_variants": [
                "0x5a9809ed",
                "0x5a9809ed0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd5f39e24",
            "selector": "0xd5f39e24",
            "calldata_variants": [
                "0xd5f39e24",
                "0xd5f39e240000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa11af387",
            "selector": "0xa11af387",
            "calldata_variants": [
                "0xa11af387",
                "0xa11af3870000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7b0ae934",
            "selector": "0x7b0ae934",
            "calldata_variants": [
                "0x7b0ae934",
                "0x7b0ae9340000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd966f799",
            "selector": "0xd966f799",
            "calldata_variants": [
                "0xd966f799",
                "0xd966f7990000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3cd86b77",
            "selector": "0x3cd86b77",
            "calldata_variants": [
                "0x3cd86b77",
                "0x3cd86b770000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8f26e0fe",
            "selector": "0x8f26e0fe",
            "calldata_variants": [
                "0x8f26e0fe",
                "0x8f26e0fe0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2e497ae",
            "selector": "0xf2e497ae",
            "calldata_variants": [
                "0xf2e497ae",
                "0xf2e497ae0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 652,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "constant",
            "target_expression_category": "computed"
        },
        {
            "pc": 691,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 731,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 6,
    "guards_detected": [
        {
            "pc": 1453,
            "type": "msg_sender_eq_storage"
        },
        {
            "pc": 1535,
            "type": "msg_sender_eq_storage"
        },
        {
            "pc": 1582,
            "type": "msg_sender_eq_storage"
        }
    ],
    "untrusted_call_count": 3
}
medium other detector ETH value transfer possible 40 yes yes
view
trace_id: 0xecb988addb74b8b83ee7d34fd147817300d9a87bc616c829980120049f95f98d
call_targets: 0x0000000000000000000000000000000000000004, 0xe881af13bf55c97562fe8d2da2f6ea8e3ff66f98
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0xecb988addb74b8b83ee7d34fd147817300d9a87bc616c829980120049f95f98d",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000004",
        "0xe881af13bf55c97562fe8d2da2f6ea8e3ff66f98"
    ],
    "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": "0x5a9809ed",
            "selector": "0x5a9809ed",
            "calldata_variants": [
                "0x5a9809ed",
                "0x5a9809ed0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd5f39e24",
            "selector": "0xd5f39e24",
            "calldata_variants": [
                "0xd5f39e24",
                "0xd5f39e240000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa11af387",
            "selector": "0xa11af387",
            "calldata_variants": [
                "0xa11af387",
                "0xa11af3870000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7b0ae934",
            "selector": "0x7b0ae934",
            "calldata_variants": [
                "0x7b0ae934",
                "0x7b0ae9340000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd966f799",
            "selector": "0xd966f799",
            "calldata_variants": [
                "0xd966f799",
                "0xd966f7990000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3cd86b77",
            "selector": "0x3cd86b77",
            "calldata_variants": [
                "0x3cd86b77",
                "0x3cd86b770000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8f26e0fe",
            "selector": "0x8f26e0fe",
            "calldata_variants": [
                "0x8f26e0fe",
                "0x8f26e0fe0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2e497ae",
            "selector": "0xf2e497ae",
            "calldata_variants": [
                "0xf2e497ae",
                "0xf2e497ae0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 652,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "constant",
            "target_expression_category": "computed"
        },
        {
            "pc": 691,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 731,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": [
        {
            "pc": 1453,
            "type": "msg_sender_eq_storage"
        },
        {
            "pc": 1535,
            "type": "msg_sender_eq_storage"
        },
        {
            "pc": 1582,
            "type": "msg_sender_eq_storage"
        }
    ]
}
medium other codex Refund-on-error path can silently trap ETH 75 no
view
evidence_json
{
    "evidence": "In selector 0x5a9809ed, the branch at pc 117 executes a CALL to CALLER with value=CALLVALUE and gas 0x1388 (5000), then POPs the success flag and returns a sentinel value. There is no evidence of a revert or compensating state update if that refund CALL fails. Because this is inferred from bytecode only, the exact business condition triggering the refund is best-effort.",
    "locations": [
        "selector:0x5a9809ed",
        "pc:0x82"
    ],
    "recommendation": "For refund/error handling, check the CALL success flag and revert if the refund fails. Alternatively, avoid inline refunds and require explicit withdrawal from a credited balance.",
    "exploit_scenario": "If the payable entry path decides the supplied value is invalid, it attempts to refund msg.value back to msg.sender. A contract caller with a reverting or gas-hungry fallback can cause that refund to fail, while the function still returns an error code instead of reverting. The user-facing effect is that the call looks handled, but the ETH stays inside the contract."
}