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

Analysis Run

019b3836-3ff6-7390-948c-69931f834a03

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

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
5137 artifact.fetch complete 1 / 3 3 months ago
5138 tool.cast_disasm complete 1 / 3 3 months ago
48832 analysis.bundle complete 1 / 3 1 week ago
48833 capability.graph complete 1 / 3 1 week ago
48834 detector.run complete 1 / 3 1 week ago
48835 validation.fork complete 1 / 3 1 week ago
113307 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
3
No findings?
no
Summary
Bytecode-only review found one strong privileged-balance-drain issue and two medium-confidence accounting/call-handling issues. Selector names are inferred best-effort from runtime behavior; several conclusions rely on storage-slot role inference rather than source names.
View stdout
{"no_findings":false,"summary":"Bytecode-only review found one strong privileged-balance-drain issue and two medium-confidence accounting/call-handling issues. Selector names are inferred best-effort from runtime behavior; several conclusions rely on storage-slot role inference rather than source names.","findings":[{"severity":"high","category":"access_control","title":"Owner-controlled source address can redirect public token payouts to arbitrary holder balances","exploit_scenario":"A privileged caller uses selector `0x7f2a8a80` to change storage slot 5 to a victim holder address. After that, any user can trigger the public payable path at `0xa6f2ae3a`; that path credits the caller's balance and debits the slot-5 address balance, effectively transferring tokens out of the victim account without that victim approving the transfer.","recommendation":"Do not let an admin point payout/debit logic at arbitrary holder addresses. Hard-code the treasury/source to the contract itself or an immutable trusted pool, or require explicit allowance/authorization from the debited address before reducing its balance.","evidence":"`0x7f2a8a80` is owner-gated by the slot-0 owner check at pcs 548-564 and writes the provided address into slot 5 at pc 1724-1755. The public payable path `0xa6f2ae3a` jumps to pc 1758 after a value check, then increases the caller balance in slot 7 at pcs 1866-1870 and decreases the slot-5 balance at pcs 1873-1917. Transfer-like logging follows at pc 1952, consistent with a balance move from the slot-5 address to the caller. Because slot 5 is admin-settable, the debited account is admin-controlled rather than fixed.","locations":["selector:0x7f2a8a80","selector:0xa6f2ae3a","selector:0xff9b3acf","pc:0x224","pc:0x6bc","pc:0x6de","pc:0x74a","pc:0x765","pc:0x777","pc:0x7a0"]},{"severity":"medium","category":"other","title":"`allowance()` appears to report the approved amount, not the remaining spendable amount","exploit_scenario":"A user approves a spender, the spender partially uses that approval through `transferFrom`, and off-chain/on-chain integrations then read `allowance()` and believe the full approved amount is still available. Subsequent transfers can revert unexpectedly because spending is tracked in a separate counter, creating integration failures and approval-renewal DoS patterns.","recommendation":"Either implement standard ERC-20 allowance semantics by decrementing the allowance mapping on `transferFrom`, or have `allowance()` return `approved - spent` and reset the spent counter when approvals are refreshed.","evidence":"The approval-like path at `0xcae9ca51` writes slot 8 at pc 912, then performs a `receiveApproval`-style callback. The standard allowance selector `0xdd62ed3e` reads slot 8 directly at pc 1191. But `transferFrom` (`0x23b872dd`) checks both slot 8 and a second nested mapping in slot 9: slot 8 is loaded around pc 1565, slot 9 is loaded around pc 1586, and slot 9 is incremented at pc 1678 instead of reducing slot 8. A separate getter `0xdc3080f2` reads slot 9 at pc 1154, which is consistent with a spent-allowance counter rather than standard remaining allowance accounting.","locations":["selector:0xcae9ca51","selector:0x23b872dd","selector:0xdd62ed3e","selector:0xdc3080f2","pc:0x390","pc:0x462","pc:0x633","pc:0x64a","pc:0x483","pc:0x499"]},{"severity":"medium","category":"other","title":"Token-for-ETH payout path ignores CALL failure after moving balances","exploit_scenario":"A caller invokes selector `0xe4849b32` through a contract wallet or fallback that reverts on ETH reception. The function first transfers tokens from the caller to the contract, then attempts an ETH payout via `CALL`, but it discards the return value. If the ETH transfer fails, the token movement still stands and the caller can lose tokens without receiving payment.","recommendation":"Check the `CALL` return value and revert on failure, or switch to a pull-payment withdrawal pattern so token accounting is finalized only after a successful claim.","evidence":"`0xe4849b32` enters at pc 1198 and jumps to pc 2016 after a balance check. In that block, storage is updated before the external call: one slot-7 balance is increased at pc 2049 and another is decreased at pc 2066. The function then performs a value-carrying `CALL` at pc 2089 to a computed target consistent with the caller, and immediately `POP`s the result instead of branching on success. Execution continues to emit a Transfer-like log at pc 2139 and returns normally, so payout failure does not roll back the prior balance changes.","locations":["selector:0xe4849b32","pc:0x7e0","pc:0x801","pc:0x812","pc:0x829","pc:0x85b"]}]}
View stderr
OpenAI Codex v0.118.0 (research preview)
--------
workdir: /tmp/codex-03j11m2y
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5c73-57cc-7a41-8b39-ec768abb2bfd
--------
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.
  → Inspect BYTECODE_BUNDLE.json and identify key bytecode artifacts, selectors, storage slots, and detector findings
  • Evaluate potential vulnerabilities from the bytecode evidence, focusing on proxy/upgradeability, access control, delegatecall, reentrancy, and unsafe external calls
  • Produce JSON findings with severity, exploit scenario, evidence, and precise locations
exec
/bin/bash -lc "pwd && rg --files -g 'BYTECODE_BUNDLE.json' -g 'AGENTS.md' -g '*.json'" in /tmp/codex-03j11m2y
 succeeded in 0ms:
/tmp/codex-03j11m2y
BYTECODE_BUNDLE.json
codex-output-schema.json

exec
/bin/bash -lc 'wc -c BYTECODE_BUNDLE.json && head -c 400 BYTECODE_BUNDLE.json' in /tmp/codex-03j11m2y
 succeeded in 0ms:
192014 BYTECODE_BUNDLE.json
{
  "analysis_artifact": {
    "address": "0x2083ba165b902a02a6bf931287dfedd50a4ddd21",
    "artifact_hash": "0x73fe6d0762ce7c38bbd2d29ca468a258d6399bf7e7f2c31ef7251d3d5f99f585",
    "artifact_json": {
      "auth": {
        "guards": []
      },
      "basic_blocks": [
        {
          "end_pc": 10,
          "hash": "0x7b6ce063085d86d7a28c3db9177c7c3cbfb2c605a3b218fd361c15920a201f75",
      
exec
/bin/bash -lc "jq 'keys' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
[
  "analysis_artifact",
  "analysis_run",
  "artifact",
  "capability_graph",
  "detector_findings",
  "heuristics_summary"
]

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json | keys' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
[
  "auth",
  "basic_blocks",
  "callsites",
  "cfg_edges",
  "cfg_hash",
  "dispatcher_type",
  "function_entries",
  "functions",
  "selectors",
  "sinks",
  "storage",
  "version"
]

exec
/bin/bash -lc "jq '.detector_findings | length, map({id, title, severity, confidence})[:10]' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
3
[
  {
    "id": null,
    "title": "Untrusted CALL target/value reachable",
    "severity": "high",
    "confidence": 60
  },
  {
    "id": null,
    "title": "ETH value transfer possible",
    "severity": "high",
    "confidence": 55
  },
  {
    "id": null,
    "title": "CREATE/CREATE2 reachable",
    "severity": "medium",
    "confidence": 45
  }
]

exec
/bin/bash -lc "jq '.heuristics_summary | keys' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
[
  "create2_count",
  "delegatecall_count",
  "flags",
  "selfdestruct_count"
]

exec
/bin/bash -lc "jq '{flags:.heuristics_summary.flags,delegatecall_count:.heuristics_summary.delegatecall_count,create2_count:.heuristics_summary.create2_count,selfdestruct_count:.heuristics_summary.selfdestruct_count,dispatcher:.analysis_artifact.artifact_json.dispatcher_type,selectors:.analysis_artifact.artifact_json.selectors,functions:.analysis_artifact.artifact_json.functions,entries:.analysis_artifact.artifact_json.function_entries}' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
{
  "flags": [
    "create_opcodes_present"
  ],
  "delegatecall_count": 0,
  "create2_count": 2,
  "selfdestruct_count": 0,
  "dispatcher": "selector_jump_table",
  "selectors": [
    "0x06fdde03",
    "0x18160ddd",
    "0x1fe9eabc",
    "0x23b872dd",
    "0x313ce567",
    "0x41fa4876",
    "0x70a08231",
    "0x7f2a8a80",
    "0x8da5cb5b",
    "0x95d89b41",
    "0xa6f2ae3a",
    "0xa9059cbb",
    "0xaa295de9",
    "0xcae9ca51",
    "0xdc3080f2",
    "0xdd62ed3e",
    "0xe4849b32",
    "0xf2fde38b",
    "0xff9b3acf"
  ],
  "functions": [
    {
      "auth": {
        "guards": []
      },
      "entry_pc": null,
      "selector": "0x06fdde03",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 535423676,
      "selector": "0x18160ddd",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 599290589,
      "selector": "0x1fe9eabc",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 826074471,
      "selector": "0x23b872dd",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 1106921590,
      "selector": "0x313ce567",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 1889567281,
      "selector": "0x41fa4876",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 2133494400,
      "selector": "0x70a08231",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 2376452955,
      "selector": "0x7f2a8a80",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 2514000705,
      "selector": "0x8da5cb5b",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 2800922170,
      "selector": "0x95d89b41",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 2835717307,
      "selector": "0xa6f2ae3a",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 2854837737,
      "selector": "0xa9059cbb",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 3404319313,
      "selector": "0xaa295de9",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 3694166258,
      "selector": "0xcae9ca51",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 3714247998,
      "selector": "0xdc3080f2",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 3833895730,
      "selector": "0xdd62ed3e",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 4076725131,
      "selector": "0xe4849b32",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": 4288363215,
      "selector": "0xf2fde38b",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    },
    {
      "auth": {
        "guards": []
      },
      "entry_pc": null,
      "selector": "0xff9b3acf",
      "sinks": {
        "call": 6,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0
      },
      "storage": {
        "reads": 38,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 239,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
          },
          {
            "op": "SLOAD",
            "pc": 310,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 330,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
          },
          {
            "op": "SLOAD",
            "pc": 342,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 423,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
          },
          {
            "op": "SLOAD",
            "pc": 548,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 578,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 597,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
          },
          {
            "op": "SLOAD",
            "pc": 667,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
          },
          {
            "op": "SLOAD",
            "pc": 687,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SLOAD",
            "pc": 762,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
          },
          {
            "op": "SSTORE",
            "pc": 912,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1255,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1285,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1728,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1873,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 1955,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
          },
          {
            "op": "SLOAD",
            "pc": 2278,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 14
      }
    }
  ],
  "entries": [
    {
      "entry_pc": null,
      "selector": "0x06fdde03"
    },
    {
      "entry_pc": 535423676,
      "selector": "0x18160ddd"
    },
    {
      "entry_pc": 599290589,
      "selector": "0x1fe9eabc"
    },
    {
      "entry_pc": 826074471,
      "selector": "0x23b872dd"
    },
    {
      "entry_pc": 1106921590,
      "selector": "0x313ce567"
    },
    {
      "entry_pc": 1889567281,
      "selector": "0x41fa4876"
    },
    {
      "entry_pc": 2133494400,
      "selector": "0x70a08231"
    },
    {
      "entry_pc": 2376452955,
      "selector": "0x7f2a8a80"
    },
    {
      "entry_pc": 2514000705,
      "selector": "0x8da5cb5b"
    },
    {
      "entry_pc": 2800922170,
      "selector": "0x95d89b41"
    },
    {
      "entry_pc": 2835717307,
      "selector": "0xa6f2ae3a"
    },
    {
      "entry_pc": 2854837737,
      "selector": "0xa9059cbb"
    },
    {
      "entry_pc": 3404319313,
      "selector": "0xaa295de9"
    },
    {
      "entry_pc": 3694166258,
      "selector": "0xcae9ca51"
    },
    {
      "entry_pc": 3714247998,
      "selector": "0xdc3080f2"
    },
    {
      "entry_pc": 3833895730,
      "selector": "0xdd62ed3e"
    },
    {
      "entry_pc": 4076725131,
      "selector": "0xe4849b32"
    },
    {
      "entry_pc": 4288363215,
      "selector": "0xf2fde38b"
    },
    {
      "entry_pc": null,
      "selector": "0xff9b3acf"
    }
  ]
}

exec
/bin/bash -lc "jq '.detector_findings' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
[
  {
    "confidence": 60,
    "evidence_json": {
      "call_count": 6,
      "examples": [
        {
          "opcode": "CALL",
          "pc": 1037,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 1105,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 1351,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        }
      ],
      "guards_detected": [],
      "untrusted_call_count": 6
    },
    "normalized_json": {
      "sink": "CALL"
    },
    "severity": "high",
    "title": "Untrusted CALL target/value reachable",
    "validated": true,
    "validation_json": {
      "attempts": 1,
      "call_targets": [
        "0x0000000000000000000000000000000000000004",
        "0x2083ba165b902a02a6bf931287dfedd50a4ddd21"
      ],
      "classification": "target_varies",
      "confirmed": true,
      "errors": 0,
      "matched_probe": null,
      "sink": "CALL",
      "status": "confirmed",
      "target_varies": true,
      "trace_id": "0x660c0b29c9a4bf06d4bb1b723dbbea00b6be96e3e4cd3de8a6189de05924434c",
      "trace_mode": "callTracer"
    }
  },
  {
    "confidence": 55,
    "evidence_json": {
      "eth_value_calls": 6,
      "examples": [
        {
          "opcode": "CALL",
          "pc": 1037,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 1105,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 1351,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        }
      ],
      "guards_detected": []
    },
    "normalized_json": {
      "sink": "CALL",
      "value": "nonzero"
    },
    "severity": "high",
    "title": "ETH value transfer possible",
    "validated": true,
    "validation_json": {
      "attempts": 1,
      "call_targets": [
        "0x0000000000000000000000000000000000000004",
        "0x2083ba165b902a02a6bf931287dfedd50a4ddd21"
      ],
      "classification": "target_varies",
      "confirmed": true,
      "errors": 0,
      "matched_probe": null,
      "sink": "CALL",
      "status": "confirmed",
      "target_varies": true,
      "trace_id": "0x660c0b29c9a4bf06d4bb1b723dbbea00b6be96e3e4cd3de8a6189de05924434c",
      "trace_mode": "callTracer"
    }
  },
  {
    "confidence": 45,
    "evidence_json": {
      "create2_count": 2,
      "create_count": 0
    },
    "normalized_json": {
      "sink": "CREATE"
    },
    "severity": "medium",
    "title": "CREATE/CREATE2 reachable",
    "validated": false,
    "validation_json": {
      "attempts": 32,
      "call_targets": null,
      "classification": "no_sink",
      "confirmed": false,
      "errors": 0,
      "matched_probe": null,
      "sink": "CREATE",
      "status": "unknown",
      "target_varies": null,
      "trace_id": "0x4dea1a53aad4cc7c9e7fc299baf736455d4e203ca0bcdd45c2417c3c4d80a26f",
      "trace_mode": "structLogs"
    }
  }
]

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.sinks' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
{
  "call": 6,
  "create": 0,
  "create2": 2,
  "delegatecall": 0,
  "selfdestruct": 0,
  "staticcall": 0,
  "upgrade_slot_write_suspected": false
}

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.callsites' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
[
  {
    "opcode": "CALL",
    "pc": 1037,
    "returndata_checked": null,
    "target_expression_category": "computed",
    "value_expression_category": "computed"
  },
  {
    "opcode": "CALL",
    "pc": 1105,
    "returndata_checked": null,
    "target_expression_category": "computed",
    "value_expression_category": "computed"
  },
  {
    "opcode": "CALL",
    "pc": 1351,
    "returndata_checked": null,
    "target_expression_category": "computed",
    "value_expression_category": "computed"
  },
  {
    "opcode": "CALL",
    "pc": 2089,
    "returndata_checked": null,
    "target_expression_category": "computed",
    "value_expression_category": "computed"
  },
  {
    "opcode": "CALLCODE",
    "pc": 2360,
    "returndata_checked": null,
    "target_expression_category": "computed",
    "value_expression_category": "computed"
  },
  {
    "opcode": "CALL",
    "pc": 2378,
    "returndata_checked": null,
    "target_expression_category": "computed",
    "value_expression_category": "computed"
  }
]

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.storage' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
{
  "keccak_count": 30,
  "reads": 38,
  "slots": [
    {
      "op": "SLOAD",
      "pc": 239,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
    },
    {
      "op": "SLOAD",
      "pc": 310,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
    },
    {
      "op": "SLOAD",
      "pc": 330,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
    },
    {
      "op": "SLOAD",
      "pc": 342,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SLOAD",
      "pc": 423,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
    },
    {
      "op": "SLOAD",
      "pc": 548,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SLOAD",
      "pc": 578,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SLOAD",
      "pc": 597,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
    },
    {
      "op": "SLOAD",
      "pc": 667,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
    },
    {
      "op": "SLOAD",
      "pc": 687,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
    },
    {
      "op": "SLOAD",
      "pc": 762,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
    },
    {
      "op": "SSTORE",
      "pc": 912,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SLOAD",
      "pc": 1255,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "op": "SLOAD",
      "pc": 1285,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
    },
    {
      "op": "SLOAD",
      "pc": 1728,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
    },
    {
      "op": "SLOAD",
      "pc": 1873,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
    },
    {
      "op": "SLOAD",
      "pc": 1955,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
    },
    {
      "op": "SLOAD",
      "pc": 2278,
      "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
    }
  ],
  "writes": 14
}

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc <= 1105 and .end_pc >= 1037) | {start_pc,end_pc,ops}' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
{
  "start_pc": 765,
  "end_pc": 1053,
  "ops": null
}
{
  "start_pc": 1054,
  "end_pc": 1078,
  "ops": null
}
{
  "start_pc": 1079,
  "end_pc": 1110,
  "ops": null
}

exec
/bin/bash -lc "rg -n 'bytecode|disasm|opcodes|evm' BYTECODE_BUNDLE.json | head -n 50" in /tmp/codex-03j11m2y
 succeeded in 0ms:
13:          "opcodes": [
27:          "opcodes": [
45:          "opcodes": [
57:          "opcodes": [
69:          "opcodes": [
81:          "opcodes": [
93:          "opcodes": [
105:          "opcodes": [
117:          "opcodes": [
129:          "opcodes": [
141:          "opcodes": [
153:          "opcodes": [
165:          "opcodes": [
177:          "opcodes": [
189:          "opcodes": [
201:          "opcodes": [
213:          "opcodes": [
225:          "opcodes": [
237:          "opcodes": [
249:          "opcodes": [
261:          "opcodes": [
270:          "opcodes": [
331:          "opcodes": [
343:          "opcodes": [
364:          "opcodes": [
377:          "opcodes": [
405:          "opcodes": [
414:          "opcodes": [
453:          "opcodes": [
462:          "opcodes": [
477:          "opcodes": [
490:          "opcodes": [
501:          "opcodes": [
515:          "opcodes": [
560:          "opcodes": [
575:          "opcodes": [
587:          "opcodes": [
611:          "opcodes": [
638:          "opcodes": [
647:          "opcodes": [
666:          "opcodes": [
725:          "opcodes": [
737:          "opcodes": [
758:          "opcodes": [
782:          "opcodes": [
791:          "opcodes": [
828:          "opcodes": [
837:          "opcodes": [
850:          "opcodes": [
1085:          "opcodes": [

exec
/bin/bash -lc "jq '.analysis_artifact | keys' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
[
  "address",
  "artifact_hash",
  "artifact_json",
  "block_number",
  "chain_id",
  "codehash",
  "created_at",
  "id",
  "updated_at",
  "version"
]

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

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc <= 1050 and .end_pc >= 760) | {start_pc,end_pc,opcodes}' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
{
  "start_pc": 756,
  "end_pc": 764,
  "opcodes": [
    "JUMPDEST",
    "PUSH2",
    "PUSH1",
    "SLOAD",
    "OP_81",
    "JUMP"
  ]
}
{
  "start_pc": 765,
  "end_pc": 1053,
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "OP_80",
    "MLOAD",
    "PUSH1",
    "PUSH1",
    "CALLDATALOAD",
    "PUSH1",
    "OP_81",
    "OP_81",
    "ADD",
    "CALLDATALOAD",
    "PUSH1",
    "OP_81",
    "ADD",
    "OP_84",
    "OP_90",
    "DIV",
    "OP_84",
    "MUL",
    "OP_85",
    "ADD",
    "OP_84",
    "ADD",
    "OP_90",
    "OP_95",
    "MSTORE",
    "OP_84",
    "OP_84",
    "MSTORE",
    "PUSH2",
    "OP_94",
    "OP_81",
    "CALLDATALOAD",
    "OP_94",
    "PUSH1",
    "OP_80",
    "CALLDATALOAD",
    "OP_95",
    "OP_93",
    "OP_94",
    "PUSH1",
    "OP_94",
    "OP_92",
    "OP_93",
    "OP_91",
    "ADD",
    "OP_91",
    "OP_81",
    "OP_90",
    "OP_84",
    "ADD",
    "OP_83",
    "OP_82",
    "OP_80",
    "OP_82",
    "OP_84",
    "CALLDATACOPY",
    "POP",
    "OP_94",
    "OP_96",
    "POP",
    "POP",
    "POP",
    "POP",
    "POP",
    "POP",
    "POP",
    "PUSH1",
    "PUSH1",
    "OP_83",
    "PUSH1",
    "PUSH1",
    "POP",
    "PUSH1",
    "CALLER",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "EXP",
    "SUB",
    "AND",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "ADD",
    "OP_90",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "ADD",
    "PUSH1",
    "SHA3",
    "PUSH1",
    "POP",
    "PUSH1",
    "OP_87",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "EXP",
    "SUB",
    "AND",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "ADD",
    "OP_90",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "ADD",
    "PUSH1",
    "SHA3",
    "PUSH1",
    "POP",
    "OP_81",
    "OP_90",
    "SSTORE",
    "POP",
    "OP_84",
    "OP_90",
    "POP",
    "OP_80",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "EXP",
    "SUB",
    "AND",
    "PUSH4",
    "CALLER",
    "OP_86",
    "ADDRESS",
    "OP_87",
    "PUSH1",
    "MLOAD",
    "OP_85",
    "PUSH1",
    "PUSH1",
    "EXP",
    "MUL",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "ADD",
    "OP_80",
    "OP_85",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "EXP",
    "SUB",
    "AND",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "ADD",
    "OP_84",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "ADD",
    "OP_83",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "EXP",
    "SUB",
    "AND",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "ADD",
    "OP_80",
    "PUSH1",
    "ADD",
    "OP_82",
    "OP_81",
    "SUB",
    "OP_82",
    "MSTORE",
    "OP_83",
    "OP_81",
    "OP_81",
    "MLOAD",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "ADD",
    "OP_91",
    "POP",
    "OP_80",
    "MLOAD",
    "OP_90",
    "PUSH1",
    "ADD",
    "OP_90",
    "OP_80",
    "OP_83",
    "OP_83",
    "OP_82",
    "OP_90",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "OP_84",
    "PUSH1",
    "ADD",
    "DIV",
    "PUSH1",
    "MUL",
    "PUSH1",
    "ADD",
    "CALL",
    "POP",
    "OP_90",
    "POP",
    "OP_90",
    "OP_81",
    "ADD",
    "OP_90",
    "PUSH1",
    "AND",
    "OP_80",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ]
}

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc >= 1054 and .start_pc <= 1400) | {start_pc,end_pc,opcodes}' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
{
  "start_pc": 1054,
  "end_pc": 1078,
  "opcodes": [
    "OP_80",
    "OP_82",
    "SUB",
    "OP_80",
    "MLOAD",
    "PUSH1",
    "OP_83",
    "PUSH1",
    "SUB",
    "PUSH2",
    "EXP",
    "SUB",
    "NOT",
    "AND",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "ADD",
    "OP_91",
    "POP"
  ]
}
{
  "start_pc": 1079,
  "end_pc": 1110,
  "opcodes": [
    "JUMPDEST",
    "POP",
    "OP_95",
    "POP",
    "POP",
    "POP",
    "POP",
    "POP",
    "POP",
    "PUSH1",
    "PUSH1",
    "MLOAD",
    "OP_80",
    "OP_83",
    "SUB",
    "OP_81",
    "PUSH1",
    "OP_87",
    "PUSH2",
    "GAS",
    "SUB",
    "CALL",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 1111,
  "end_pc": 1123,
  "opcodes": [
    "POP",
    "PUSH1",
    "OP_97",
    "OP_96",
    "POP",
    "POP",
    "POP",
    "POP",
    "POP",
    "POP",
    "POP",
    "JUMP"
  ]
}
{
  "start_pc": 1124,
  "end_pc": 1160,
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "PUSH1",
    "OP_90",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "CALLDATALOAD",
    "PUSH1",
    "OP_90",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "OP_80",
    "OP_82",
    "SHA3",
    "OP_90",
    "OP_92",
    "MSTORE",
    "PUSH1",
    "CALLDATALOAD",
    "OP_81",
    "MSTORE",
    "SHA3",
    "SLOAD",
    "PUSH2",
    "OP_90",
    "OP_81",
    "JUMP"
  ]
}
{
  "start_pc": 1161,
  "end_pc": 1197,
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "PUSH1",
    "OP_90",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "CALLDATALOAD",
    "PUSH1",
    "OP_90",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "OP_80",
    "OP_82",
    "SHA3",
    "OP_90",
    "OP_92",
    "MSTORE",
    "PUSH1",
    "CALLDATALOAD",
    "OP_81",
    "MSTORE",
    "SHA3",
    "SLOAD",
    "PUSH2",
    "OP_90",
    "OP_81",
    "JUMP"
  ]
}
{
  "start_pc": 1198,
  "end_pc": 1241,
  "opcodes": [
    "JUMPDEST",
    "PUSH2",
    "PUSH1",
    "CALLDATALOAD",
    "CALLER",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "EXP",
    "SUB",
    "AND",
    "PUSH1",
    "OP_90",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "PUSH1",
    "MSTORE",
    "PUSH1",
    "OP_81",
    "SHA3",
    "SLOAD",
    "PUSH2",
    "OP_90",
    "OP_83",
    "OP_90",
    "LT",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 1242,
  "end_pc": 1245,
  "opcodes": [
    "PUSH2",
    "JUMP"
  ]
}
{
  "start_pc": 1246,
  "end_pc": 1274,
  "opcodes": [
    "JUMPDEST",
    "PUSH2",
    "PUSH1",
    "CALLDATALOAD",
    "PUSH1",
    "SLOAD",
    "CALLER",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "EXP",
    "SUB",
    "OP_90",
    "OP_81",
    "AND",
    "OP_91",
    "AND",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 1275,
  "end_pc": 1278,
  "opcodes": [
    "PUSH2",
    "JUMP"
  ]
}
{
  "start_pc": 1279,
  "end_pc": 1296,
  "opcodes": [
    "JUMPDEST",
    "PUSH2",
    "PUSH1",
    "SLOAD",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "EXP",
    "SUB",
    "AND",
    "OP_81",
    "JUMP"
  ]
}
{
  "start_pc": 1297,
  "end_pc": 1367,
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "MLOAD",
    "OP_80",
    "OP_80",
    "PUSH1",
    "ADD",
    "OP_82",
    "OP_81",
    "SUB",
    "OP_82",
    "MSTORE",
    "OP_83",
    "OP_81",
    "OP_81",
    "MLOAD",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "ADD",
    "OP_91",
    "POP",
    "OP_80",
    "MLOAD",
    "OP_90",
    "PUSH1",
    "ADD",
    "OP_90",
    "OP_80",
    "OP_83",
    "OP_83",
    "OP_82",
    "OP_90",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "OP_84",
    "PUSH1",
    "ADD",
    "DIV",
    "PUSH1",
    "MUL",
    "PUSH1",
    "ADD",
    "CALL",
    "POP",
    "OP_90",
    "POP",
    "OP_90",
    "OP_81",
    "ADD",
    "OP_90",
    "PUSH1",
    "AND",
    "OP_80",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 1368,
  "end_pc": 1392,
  "opcodes": [
    "OP_80",
    "OP_82",
    "SUB",
    "OP_80",
    "MLOAD",
    "PUSH1",
    "OP_83",
    "PUSH1",
    "SUB",
    "PUSH2",
    "EXP",
    "SUB",
    "NOT",
    "AND",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "ADD",
    "OP_91",
    "POP"
  ]
}
{
  "start_pc": 1393,
  "end_pc": 1406,
  "opcodes": [
    "JUMPDEST",
    "POP",
    "OP_92",
    "POP",
    "POP",
    "POP",
    "PUSH1",
    "MLOAD",
    "OP_80",
    "OP_91",
    "SUB",
    "OP_90",
    "RETURN"
  ]
}

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc >= 2000 and .start_pc <= 2400) | {start_pc,end_pc,opcodes}' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
{
  "start_pc": 2016,
  "end_pc": 2144,
  "opcodes": [
    "JUMPDEST",
    "ADDRESS",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "EXP",
    "SUB",
    "OP_90",
    "OP_81",
    "AND",
    "PUSH1",
    "OP_90",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "PUSH1",
    "MSTORE",
    "PUSH1",
    "OP_80",
    "OP_82",
    "SHA3",
    "OP_80",
    "SLOAD",
    "OP_87",
    "ADD",
    "OP_90",
    "SSTORE",
    "CALLER",
    "OP_90",
    "OP_92",
    "AND",
    "OP_80",
    "OP_82",
    "MSTORE",
    "OP_82",
    "OP_82",
    "SHA3",
    "OP_80",
    "SLOAD",
    "OP_87",
    "OP_90",
    "SUB",
    "OP_90",
    "SSTORE",
    "OP_91",
    "MLOAD",
    "PUSH4",
    "OP_84",
    "AND",
    "OP_86",
    "MUL",
    "OP_94",
    "POP",
    "OP_84",
    "OP_90",
    "OP_82",
    "OP_81",
    "OP_81",
    "OP_81",
    "OP_85",
    "OP_88",
    "OP_83",
    "CALL",
    "POP",
    "POP",
    "PUSH1",
    "OP_80",
    "MLOAD",
    "OP_87",
    "OP_81",
    "MSTORE",
    "OP_90",
    "MLOAD",
    "ADDRESS",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "EXP",
    "SUB",
    "AND",
    "OP_94",
    "OP_93",
    "POP",
    "PUSH1",
    "OP_80",
    "MLOAD",
    "PUSH1",
    "PUSH2",
    "OP_83",
    "CODECOPY",
    "OP_81",
    "MLOAD",
    "OP_91",
    "MSTORE",
    "OP_92",
    "POP",
    "OP_90",
    "OP_81",
    "OP_90",
    "SUB",
    "PUSH1",
    "ADD",
    "OP_90",
    "OP_A3",
    "POP",
    "OP_91",
    "OP_90",
    "POP",
    "JUMP"
  ]
}
{
  "start_pc": 2145,
  "end_pc": 2179,
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "EXP",
    "SUB",
    "OP_82",
    "AND",
    "PUSH1",
    "OP_90",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "PUSH1",
    "MSTORE",
    "PUSH1",
    "OP_90",
    "SHA3",
    "SLOAD",
    "OP_81",
    "OP_81",
    "ADD",
    "LT",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 2180,
  "end_pc": 2183,
  "opcodes": [
    "PUSH2",
    "JUMP"
  ]
}
{
  "start_pc": 2184,
  "end_pc": 2273,
  "opcodes": [
    "JUMPDEST",
    "CALLER",
    "PUSH1",
    "PUSH1",
    "PUSH1",
    "EXP",
    "SUB",
    "OP_90",
    "OP_81",
    "AND",
    "PUSH1",
    "OP_81",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "PUSH1",
    "OP_90",
    "OP_81",
    "MSTORE",
    "PUSH1",
    "OP_80",
    "OP_83",
    "SHA3",
    "OP_80",
    "SLOAD",
    "OP_87",
    "OP_90",
    "SUB",
    "OP_90",
    "SSTORE",
    "OP_93",
    "OP_86",
    "AND",
    "OP_80",
    "OP_83",
    "MSTORE",
    "OP_91",
    "OP_84",
    "OP_90",
    "SHA3",
    "OP_80",
    "SLOAD",
    "OP_86",
    "ADD",
    "OP_90",
    "SSTORE",
    "OP_83",
    "MLOAD",
    "OP_85",
    "OP_81",
    "MSTORE",
    "OP_93",
    "MLOAD",
    "OP_91",
    "OP_93",
    "PUSH1",
    "OP_80",
    "MLOAD",
    "PUSH1",
    "PUSH2",
    "OP_83",
    "CODECOPY",
    "OP_81",
    "MLOAD",
    "OP_91",
    "MSTORE",
    "OP_92",
    "OP_90",
    "OP_81",
    "OP_90",
    "SUB",
    "OP_90",
    "OP_91",
    "ADD",
    "OP_90",
    "OP_A3",
    "POP",
    "POP",
    "JUMP"
  ]
}
{
  "start_pc": 2274,
  "end_pc": 2307,
  "opcodes": [
    "JUMPDEST",
    "PUSH1",
    "OP_80",
    "SLOAD",
    "PUSH20",
    "NOT",
    "AND",
    "OP_82",
    "OR",
    "OP_90",
    "SSTORE",
    "POP",
    "JUMP"
  ]
}
{
  "start_pc": 2308,
  "end_pc": 2321,
  "opcodes": [
    "JUMPDEST",
    "OP_82",
    "ADD",
    "OP_91",
    "OP_90",
    "PUSH1",
    "MSTORE",
    "PUSH1",
    "PUSH1",
    "SHA3",
    "OP_90"
  ]
}
{
  "start_pc": 2322,
  "end_pc": 2341,
  "opcodes": [
    "JUMPDEST",
    "OP_81",
    "SLOAD",
    "OP_81",
    "MSTORE",
    "OP_90",
    "PUSH1",
    "ADD",
    "OP_90",
    "PUSH1",
    "ADD",
    "OP_80",
    "OP_83",
    "GT",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 2342,
  "end_pc": 2350,
  "opcodes": [
    "OP_82",
    "OP_90",
    "SUB",
    "PUSH1",
    "AND",
    "OP_82",
    "ADD",
    "OP_91"
  ]
}
{
  "start_pc": 2351,
  "end_pc": 2358,
  "opcodes": [
    "JUMPDEST",
    "POP",
    "POP",
    "POP",
    "POP",
    "POP",
    "OP_81",
    "JUMP"
  ]
}
{
  "start_pc": 2359,
  "end_pc": 2390,
  "opcodes": [
    "OP_DD",
    "CALLCODE",
    "MSTORE",
    "OP_AD",
    "SHL",
    "OP_E2",
    "OP_C8",
    "OP_9B",
    "PUSH10",
    "CALL",
    "PUSH4",
    "CREATE2",
    "GAS",
    "OP_4D",
    "CREATE2",
    "OP_23",
    "OP_B3",
    "OP_EF"
  ]
}

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.cfg_edges[] | select(.from==2359 or .to==2359 or .to==2360 or .to==2378 or .from==2274 or .to==2274 or .from==2016 or .to==2016)' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.cfg_edges[:20]' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
[
  {
    "from": "bb:0",
    "to": "bb:229",
    "type": "control_flow"
  },
  {
    "from": "bb:0",
    "to": "bb:11",
    "type": "control_flow_fallthrough"
  },
  {
    "from": "bb:11",
    "to": "bb:231",
    "type": "control_flow"
  },
  {
    "from": "bb:11",
    "to": "bb:31",
    "type": "control_flow_fallthrough"
  },
  {
    "from": "bb:31",
    "to": "bb:324",
    "type": "control_flow"
  },
  {
    "from": "bb:31",
    "to": "bb:42",
    "type": "control_flow_fallthrough"
  },
  {
    "from": "bb:42",
    "to": "bb:333",
    "type": "control_flow"
  },
  {
    "from": "bb:42",
    "to": "bb:53",
    "type": "control_flow_fallthrough"
  },
  {
    "from": "bb:53",
    "to": "bb:367",
    "type": "control_flow"
  },
  {
    "from": "bb:53",
    "to": "bb:64",
    "type": "control_flow_fallthrough"
  },
  {
    "from": "bb:64",
    "to": "bb:417",
    "type": "control_flow"
  },
  {
    "from": "bb:64",
    "to": "bb:75",
    "type": "control_flow_fallthrough"
  },
  {
    "from": "bb:75",
    "to": "bb:429",
    "type": "control_flow"
  },
  {
    "from": "bb:75",
    "to": "bb:86",
    "type": "control_flow_fallthrough"
  },
  {
    "from": "bb:86",
    "to": "bb:515",
    "type": "control_flow"
  },
  {
    "from": "bb:86",
    "to": "bb:97",
    "type": "control_flow_fallthrough"
  },
  {
    "from": "bb:97",
    "to": "bb:539",
    "type": "control_flow"
  },
  {
    "from": "bb:97",
    "to": "bb:108",
    "type": "control_flow_fallthrough"
  },
  {
    "from": "bb:108",
    "to": "bb:572",
    "type": "control_flow"
  },
  {
    "from": "bb:108",
    "to": "bb:119",
    "type": "control_flow_fallthrough"
  }
]

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.cfg_edges[] | select(.from==\"bb:2016\" or .to==\"bb:2016\" or .from==\"bb:2274\" or .to==\"bb:2274\" or .from==\"bb:2359\" or .to==\"bb:2359\")' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
{
  "from": "bb:1198",
  "to": "bb:2016",
  "type": "control_flow"
}
{
  "from": "bb:1246",
  "to": "bb:2274",
  "type": "control_flow"
}

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.basic_blocks[] | select(.start_pc < 230) | {start_pc,end_pc,opcodes}' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 succeeded in 0ms:
{
  "start_pc": 0,
  "end_pc": 10,
  "opcodes": [
    "PUSH1",
    "PUSH1",
    "MSTORE",
    "CALLDATASIZE",
    "ISZERO",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 11,
  "end_pc": 30,
  "opcodes": [
    "PUSH1",
    "PUSH1",
    "EXP",
    "PUSH1",
    "CALLDATALOAD",
    "DIV",
    "PUSH4",
    "OP_81",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 31,
  "end_pc": 41,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 42,
  "end_pc": 52,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 53,
  "end_pc": 63,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 64,
  "end_pc": 74,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 75,
  "end_pc": 85,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 86,
  "end_pc": 96,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 97,
  "end_pc": 107,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 108,
  "end_pc": 118,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 119,
  "end_pc": 129,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 130,
  "end_pc": 140,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 141,
  "end_pc": 151,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 152,
  "end_pc": 162,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 163,
  "end_pc": 173,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 174,
  "end_pc": 184,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 185,
  "end_pc": 195,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 196,
  "end_pc": 206,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 207,
  "end_pc": 217,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 218,
  "end_pc": 228,
  "opcodes": [
    "OP_80",
    "PUSH4",
    "EQ",
    "PUSH2",
    "JUMPI"
  ]
}
{
  "start_pc": 229,
  "end_pc": 230,
  "opcodes": [
    "JUMPDEST",
    "STOP"
  ]
}

exec
/bin/bash -lc "jq -r '.artifact.runtime_bytecode[:80], .artifact.is_proxy, .artifact.implementation_address, .artifact.verified_source' BYTECODE_BUNDLE.json" in /tmp/codex-03j11m2y
 exited 5 in 0ms:
jq: error (at BYTECODE_BUNDLE.json:6827): Cannot index object with object

exec
/bin/bash -lc "jq '.artifact' BYTECODE_BUNDLE.json | head -n 80" in /tmp/codex-03j11m2y
 succeeded in 0ms:
{
  "codehash": "0xb02c55ff94032a472866554e1627f870c48120d167e58ef3b5e931559e830b5d",
  "compiler_json": {
    "etherscan": {
      "skipped": true
    }
  },
  "implementation_address": null,
  "is_proxy": false,
  "runtime_bytecode": {
    "full": "0x606060405236156100e55760e060020a600035046306fdde0381146100e757806318160ddd146101445780631fe9eabc1461014d57806323b872dd1461016f578063313ce567146101a157806341fa4876146101ad57806370a08231146102035780637f2a8a801461021b5780638da5cb5b1461023c57806395d89b411461024e578063a6f2ae3a146102a9578063a9059cbb146102c5578063aa295de9146102f4578063cae9ca51146102fd578063dc3080f214610464578063dd62ed3e14610489578063e4849b32146104ae578063f2fde38b146104de578063ff9b3acf146104ff575b005b60408051600180546020600282841615610100026000190190921691909104601f8101829004820284018201909452838352610511939083018282801561092f5780601f106109045761010080835404028352916020019161092f565b61057f60045481565b6100e5600435600054600160a060020a0390811633909116146106b757610002565b61057f600435602435604435600160a060020a038316600090815260076020526040812054829010156105cc57610002565b61059160035460ff1681565b61057f6004356024355b600080805b838110156105c45760408051438390036000190140815260208101879052815190819003909101902060029006600014156101fb57600281900a909101905b6001016101bc565b61057f60043560076020526000908152604090205481565b6100e560043560005433600160a060020a039081169116146106bc57610002565b6105a7600054600160a060020a031681565b6105116002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561092f5780601f106109045761010080835404028352916020019161092f565b61057f600654349060009060649082908411156106de57610002565b6100e560043560243533600160a060020a03166000908152600760205260409020548190101561086157610002565b61057f60065481565b604080516020604435600481810135601f810184900484028501840190955284845261057f94813594602480359593946064949293910191819084018382808284375094965050505050505060006000836008600050600033600160a060020a03168152602001908152602001600020600050600087600160a060020a031681526020019081526020016000206000508190555084905080600160a060020a0316638f4ffcb1338630876040518560e060020a0281526004018085600160a060020a0316815260200184815260200183600160a060020a03168152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156104375780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303816000876161da5a03f11561000257506001979650505050505050565b60096020908152600435600090815260408082209092526024358152205461057f9081565b60086020908152600435600090815260408082209092526024358152205461057f9081565b61057f60043533600160a060020a031660009081526007602052604081205461138890839010156107e057610002565b6100e560043560005433600160a060020a039081169116146108e257610002565b6105a7600554600160a060020a031681565b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156105715780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051918252519081900360200190f35b6040805160ff9092168252519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b509392505050565b600160a060020a03831660009081526007602052604090205480830110156105f357610002565b600160a060020a03848116600081815260086020908152604080832033909516808452948252808320549383526009825280832094835293905291909120548301111561063f57610002565b600160a060020a038481166000818152600760209081526040808320805488900390558785168084528184208054890190558484526009835281842033909616845294825291829020805487019055815186815291516000805160206109378339815191529281900390910190a35060019392505050565b600655565b6005805473ffffffffffffffffffffffffffffffffffffffff19168217905550565b60408051438152426020820152808201869052905190819003606001902061070790600a6101b7565b90506102008110610719576064840292505b61020081101561072b57612648840292505b33600160a060020a03908116600081815260076020908152604080832080548901905560055485168352808320805463ffffffff89169081019091553090951680845292819020805495890190950390945583518781529351929391926000805160206109378339815191529281900390910190a36005546040805163ffffffff851681529051600160a060020a0392831692301691600080516020610937833981519152919081900360200190a350505090565b30600160a060020a039081166000908152600760205260408082208054870190553390921680825282822080548790039055915163ffffffff841686029450849082818181858883f1505060408051878152905130600160a060020a031694935060008051602061093783398151915292509081900360200190a350919050565b600160a060020a038216600090815260076020526040902054818101101561088857610002565b33600160a060020a0390811660008181526007602090815260408083208054879003905593861680835291849020805486019055835185815293519193600080516020610937833981519152929081900390910190a35050565b6000805473ffffffffffffffffffffffffffffffffffffffff19168217905550565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b50505050508156ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
    "head": null,
    "length": 4784,
    "tail": null,
    "truncated": false
  },
  "verified_source": false
}

exec
js_repl in /tmp/codex-03j11m2y
 succeeded in 106ms:
 994 SUB
 995 DUP3
 996 MSTORE
 997 DUP4
 998 DUP2
 999 DUP2
1000 MLOAD
1001 DUP2
1002 MSTORE
1003 PUSH1 0x20
1005 ADD
1006 SWAP2
1007 POP
1008 DUP1
1009 MLOAD
1010 SWAP1
1011 PUSH1 0x20
1013 ADD
1014 SWAP1
1015 DUP1
1016 DUP4
1017 DUP4
1018 DUP3
1019 SWAP1
1020 PUSH1 0x00
1022 PUSH1 0x04
1024 PUSH1 0x20
1026 DUP5
1027 PUSH1 0x1f
1029 ADD
1030 DIV
1031 PUSH1 0x0f
1033 MUL
1034 PUSH1 0x03
1036 ADD
1037 CALL
1038 POP
1039 SWAP1
1040 POP
1041 SWAP1
1042 DUP2
1043 ADD
1044 SWAP1
1045 PUSH1 0x1f
1047 AND
1048 DUP1
1049 ISZERO
1050 PUSH2 0x0437
1053 JUMPI
1054 DUP1
1055 DUP3
1056 SUB
1057 DUP1
1058 MLOAD
1059 PUSH1 0x01
1061 DUP4
1062 PUSH1 0x20
1064 SUB
1065 PUSH2 0x0100
1068 EXP
1069 SUB
1070 NOT
1071 AND
1072 DUP2
1073 MSTORE
1074 PUSH1 0x20
1076 ADD
1077 SWAP2
1078 POP
1079 JUMPDEST
1080 POP
---
1080 POP
1081 SWAP6
1082 POP
1083 POP
1084 POP
1085 POP
1086 POP
1087 POP
1088 PUSH1 0x00
1090 PUSH1 0x40
1092 MLOAD
1093 DUP1
1094 DUP4
1095 SUB
1096 DUP2
1097 PUSH1 0x00
1099 DUP8
1100 PUSH2 0x61da
1103 GAS
1104 SUB
1105 CALL
1106 ISZERO
1107 PUSH2 0x0002
1110 JUMPI
1111 POP
1112 PUSH1 0x01
1114 SWAP8
1115 SWAP7
1116 POP
1117 POP
1118 POP
1119 POP
1120 POP
1121 POP
1122 POP
1123 JUMP
1124 JUMPDEST
1125 PUSH1 0x09
1127 PUSH1 0x20
1129 SWAP1
1130 DUP2
---
1324 SWAP1
1325 PUSH1 0x20
1327 ADD
1328 SWAP1
1329 DUP1
1330 DUP4
1331 DUP4
1332 DUP3
1333 SWAP1
1334 PUSH1 0x00
1336 PUSH1 0x04
1338 PUSH1 0x20
1340 DUP5
1341 PUSH1 0x1f
1343 ADD
1344 DIV
1345 PUSH1 0x0f
1347 MUL
1348 PUSH1 0x03
1350 ADD
1351 CALL
1352 POP
1353 SWAP1
1354 POP
1355 SWAP1
1356 DUP2
1357 ADD
1358 SWAP1
1359 PUSH1 0x1f
1361 AND
1362 DUP1
1363 ISZERO
1364 PUSH2 0x0571
1367 JUMPI
1368 DUP1
1369 DUP3
1370 SUB
1371 DUP1
1372 MLOAD
1373 PUSH1 0x01
1375 DUP4
---
2060 DUP1
2061 SLOAD
2062 DUP8
2063 SWAP1
2064 SUB
2065 SWAP1
2066 SSTORE
2067 SWAP2
2068 MLOAD
2069 PUSH4 0xffffffff
2074 DUP5
2075 AND
2076 DUP7
2077 MUL
2078 SWAP5
2079 POP
2080 DUP5
2081 SWAP1
2082 DUP3
2083 DUP2
2084 DUP2
2085 DUP2
2086 DUP6
2087 DUP9
2088 DUP4
2089 CALL
2090 POP
2091 POP
2092 PUSH1 0x40
2094 DUP1
2095 MLOAD
2096 DUP8
2097 DUP2
2098 MSTORE
2099 SWAP1
2100 MLOAD
2101 ADDRESS
2102 PUSH1 0x01
2104 PUSH1 0xa0
2106 PUSH1 0x02
2108 EXP
2109 SUB
2110 AND
2111 SWAP5
2112 SWAP4
2113 POP
2114 PUSH1 0x00
2116 DUP1
2117 MLOAD
2118 PUSH1 0x20
2120 PUSH2 0x0937
exec
js_repl in /tmp/codex-03j11m2y
 succeeded in 1ms:
   0 PUSH1 0x60
   2 PUSH1 0x40
   4 MSTORE
   5 CALLDATASIZE
   6 ISZERO
   7 PUSH2 0x00e5
  10 JUMPI
  11 PUSH1 0xe0
  13 PUSH1 0x02
  15 EXP
  16 PUSH1 0x00
  18 CALLDATALOAD
  19 DIV
  20 PUSH4 0x06fdde03
  25 DUP2
  26 EQ
  27 PUSH2 0x00e7
  30 JUMPI
  31 DUP1
  32 PUSH4 0x18160ddd
  37 EQ
  38 PUSH2 0x0144
  41 JUMPI
  42 DUP1
  43 PUSH4 0x1fe9eabc
  48 EQ
  49 PUSH2 0x014d
  52 JUMPI
  53 DUP1
  54 PUSH4 0x23b872dd
  59 EQ
  60 PUSH2 0x016f
  63 JUMPI
  64 DUP1
  65 PUSH4 0x313ce567
  70 EQ
  71 PUSH2 0x01a1
  74 JUMPI
  75 DUP1
  76 PUSH4 0x41fa4876
  81 EQ
  82 PUSH2 0x01ad
  85 JUMPI
  86 DUP1
  87 PUSH4 0x70a08231
  92 EQ
  93 PUSH2 0x0203
  96 JUMPI
  97 DUP1
  98 PUSH4 0x7f2a8a80
 103 EQ
 104 PUSH2 0x021b
 107 JUMPI
 108 DUP1
 109 PUSH4 0x8da5cb5b
 114 EQ
 115 PUSH2 0x023c
 118 JUMPI
 119 DUP1
 120 PUSH4 0x95d89b41
 125 EQ
 126 PUSH2 0x024e
 129 JUMPI
 130 DUP1
 131 PUSH4 0xa6f2ae3a
 136 EQ
 137 PUSH2 0x02a9
 140 JUMPI
 141 DUP1
 142 PUSH4 0xa9059cbb
 147 EQ
 148 PUSH2 0x02c5
 151 JUMPI
 152 DUP1
 153 PUSH4 0xaa295de9
 158 EQ
 159 PUSH2 0x02f4
 162 JUMPI
 163 DUP1
 164 PUSH4 0xcae9ca51
 169 EQ
 170 PUSH2 0x02fd
 173 JUMPI
 174 DUP1
 175 PUSH4 0xdc3080f2
 180 EQ
 181 PUSH2 0x0464
 184 JUMPI
 185 DUP1
 186 PUSH4 0xdd62ed3e
 191 EQ
 192 PUSH2 0x0489
 195 JUMPI
 196 DUP1
 197 PUSH4 0xe4849b32
 202 EQ
 203 PUSH2 0x04ae
 206 JUMPI
 207 DUP1
 208 PUSH4 0xf2fde38b
 213 EQ
 214 PUSH2 0x04de
 217 JUMPI
 218 DUP1
 219 PUSH4 0xff9b3acf
 224 EQ
 225 PUSH2 0x04ff
 228 JUMPI
 229 JUMPDEST
 230 STOP
exec
js_repl in /tmp/codex-03j11m2y
 succeeded in 9ms:
ENTRY e7
 231 JUMPDEST
 232 PUSH1 0x40
 234 DUP1
 235 MLOAD
 236 PUSH1 0x01
 238 DUP1
 239 SLOAD
 240 PUSH1 0x20
 242 PUSH1 0x02
 244 DUP3
 245 DUP5
 246 AND
 247 ISZERO
 248 PUSH2 0x0100
 251 MUL
 252 PUSH1 0x00
 254 NOT
 255 ADD
 256 SWAP1
 257 SWAP3
 258 AND
 259 SWAP2
 260 SWAP1
 261 SWAP2
 262 DIV
 263 PUSH1 0x1f
 265 DUP2
 266 ADD
 267 DUP3
 268 SWAP1
 269 DIV
 270 DUP3
 271 MUL
---
ENTRY 144
 324 JUMPDEST
 325 PUSH2 0x057f
 328 PUSH1 0x04
 330 SLOAD
 331 DUP2
 332 JUMP
 333 JUMPDEST
 334 PUSH2 0x00e5
 337 PUSH1 0x04
 339 CALLDATALOAD
 340 PUSH1 0x00
 342 SLOAD
 343 PUSH1 0x01
 345 PUSH1 0xa0
 347 PUSH1 0x02
 349 EXP
 350 SUB
 351 SWAP1
 352 DUP2
 353 AND
 354 CALLER
 355 SWAP1
 356 SWAP2
 357 AND
 358 EQ
 359 PUSH2 0x06b7
 362 JUMPI
 363 PUSH2 0x0002
---
ENTRY 14d
 333 JUMPDEST
 334 PUSH2 0x00e5
 337 PUSH1 0x04
 339 CALLDATALOAD
 340 PUSH1 0x00
 342 SLOAD
 343 PUSH1 0x01
 345 PUSH1 0xa0
 347 PUSH1 0x02
 349 EXP
 350 SUB
 351 SWAP1
 352 DUP2
 353 AND
 354 CALLER
 355 SWAP1
 356 SWAP2
 357 AND
 358 EQ
 359 PUSH2 0x06b7
 362 JUMPI
 363 PUSH2 0x0002
 366 JUMP
 367 JUMPDEST
 368 PUSH2 0x057f
 371 PUSH1 0x04
 373 CALLDATALOAD
---
ENTRY 16f
 367 JUMPDEST
 368 PUSH2 0x057f
 371 PUSH1 0x04
 373 CALLDATALOAD
 374 PUSH1 0x24
 376 CALLDATALOAD
 377 PUSH1 0x44
 379 CALLDATALOAD
 380 PUSH1 0x01
 382 PUSH1 0xa0
 384 PUSH1 0x02
 386 EXP
 387 SUB
 388 DUP4
 389 AND
 390 PUSH1 0x00
 392 SWAP1
 393 DUP2
 394 MSTORE
 395 PUSH1 0x07
 397 PUSH1 0x20
 399 MSTORE
 400 PUSH1 0x40
 402 DUP2
 403 SHA3
 404 SLOAD
 405 DUP3
 406 SWAP1
 407 LT
---
ENTRY 1a1
 417 JUMPDEST
 418 PUSH2 0x0591
 421 PUSH1 0x03
 423 SLOAD
 424 PUSH1 0xff
 426 AND
 427 DUP2
 428 JUMP
 429 JUMPDEST
 430 PUSH2 0x057f
 433 PUSH1 0x04
 435 CALLDATALOAD
 436 PUSH1 0x24
 438 CALLDATALOAD
 439 JUMPDEST
 440 PUSH1 0x00
 442 DUP1
 443 DUP1
 444 JUMPDEST
 445 DUP4
 446 DUP2
 447 LT
 448 ISZERO
 449 PUSH2 0x05c4
 452 JUMPI
 453 PUSH1 0x40
 455 DUP1
 456 MLOAD
 457 NUMBER
---
ENTRY 1ad
 429 JUMPDEST
 430 PUSH2 0x057f
 433 PUSH1 0x04
 435 CALLDATALOAD
 436 PUSH1 0x24
 438 CALLDATALOAD
 439 JUMPDEST
 440 PUSH1 0x00
 442 DUP1
 443 DUP1
 444 JUMPDEST
 445 DUP4
 446 DUP2
 447 LT
 448 ISZERO
 449 PUSH2 0x05c4
 452 JUMPI
 453 PUSH1 0x40
 455 DUP1
 456 MLOAD
 457 NUMBER
 458 DUP4
 459 SWAP1
 460 SUB
 461 PUSH1 0x00
 463 NOT
 464 ADD
 465 BLOCKHASH
 466 DUP2
 467 MSTORE
 468 PUSH1 0x20
---
ENTRY 203
 515 JUMPDEST
 516 PUSH2 0x057f
 519 PUSH1 0x04
 521 CALLDATALOAD
 522 PUSH1 0x07
 524 PUSH1 0x20
 526 MSTORE
 527 PUSH1 0x00
 529 SWAP1
 530 DUP2
 531 MSTORE
 532 PUSH1 0x40
 534 SWAP1
 535 SHA3
 536 SLOAD
 537 DUP2
 538 JUMP
 539 JUMPDEST
 540 PUSH2 0x00e5
 543 PUSH1 0x04
 545 CALLDATALOAD
 546 PUSH1 0x00
 548 SLOAD
 549 CALLER
 550 PUSH1 0x01
 552 PUSH1 0xa0
 554 PUSH1 0x02
---
ENTRY 21b
 539 JUMPDEST
 540 PUSH2 0x00e5
 543 PUSH1 0x04
 545 CALLDATALOAD
 546 PUSH1 0x00
 548 SLOAD
 549 CALLER
 550 PUSH1 0x01
 552 PUSH1 0xa0
 554 PUSH1 0x02
 556 EXP
 557 SUB
 558 SWAP1
 559 DUP2
 560 AND
 561 SWAP2
 562 AND
 563 EQ
 564 PUSH2 0x06bc
 567 JUMPI
 568 PUSH2 0x0002
 571 JUMP
 572 JUMPDEST
 573 PUSH2 0x05a7
 576 PUSH1 0x00
 578 SLOAD
 579 PUSH1 0x01
---
ENTRY 23c
 572 JUMPDEST
 573 PUSH2 0x05a7
 576 PUSH1 0x00
 578 SLOAD
 579 PUSH1 0x01
 581 PUSH1 0xa0
 583 PUSH1 0x02
 585 EXP
 586 SUB
 587 AND
 588 DUP2
 589 JUMP
 590 JUMPDEST
 591 PUSH2 0x0511
 594 PUSH1 0x02
 596 DUP1
 597 SLOAD
 598 PUSH1 0x40
 600 DUP1
 601 MLOAD
 602 PUSH1 0x20
 604 PUSH1 0x01
 606 DUP5
 607 AND
 608 ISZERO
 609 PUSH2 0x0100
 612 MUL
---
ENTRY 24e
 590 JUMPDEST
 591 PUSH2 0x0511
 594 PUSH1 0x02
 596 DUP1
 597 SLOAD
 598 PUSH1 0x40
 600 DUP1
 601 MLOAD
 602 PUSH1 0x20
 604 PUSH1 0x01
 606 DUP5
 607 AND
 608 ISZERO
 609 PUSH2 0x0100
 612 MUL
 613 PUSH1 0x00
 615 NOT
 616 ADD
 617 SWAP1
 618 SWAP4
 619 AND
 620 DUP5
 621 SWAP1
 622 DIV
 623 PUSH1 0x1f
 625 DUP2
 626 ADD
 627 DUP5
 628 SWAP1
 629 DIV
 630 DUP5
---
ENTRY 2a9
 681 JUMPDEST
 682 PUSH2 0x057f
 685 PUSH1 0x06
 687 SLOAD
 688 CALLVALUE
 689 SWAP1
 690 PUSH1 0x00
 692 SWAP1
 693 PUSH1 0x64
 695 SWAP1
 696 DUP3
 697 SWAP1
 698 DUP5
 699 GT
 700 ISZERO
 701 PUSH2 0x06de
 704 JUMPI
 705 PUSH2 0x0002
 708 JUMP
 709 JUMPDEST
 710 PUSH2 0x00e5
 713 PUSH1 0x04
 715 CALLDATALOAD
 716 PUSH1 0x24
 718 CALLDATALOAD
 719 CALLER
 720 PUSH1 0x01
---
ENTRY 2c5
 709 JUMPDEST
 710 PUSH2 0x00e5
 713 PUSH1 0x04
 715 CALLDATALOAD
 716 PUSH1 0x24
 718 CALLDATALOAD
 719 CALLER
 720 PUSH1 0x01
 722 PUSH1 0xa0
 724 PUSH1 0x02
 726 EXP
 727 SUB
 728 AND
 729 PUSH1 0x00
 731 SWAP1
 732 DUP2
 733 MSTORE
 734 PUSH1 0x07
 736 PUSH1 0x20
 738 MSTORE
 739 PUSH1 0x40
 741 SWAP1
 742 SHA3
 743 SLOAD
 744 DUP2
 745 SWAP1
 746 LT
 747 ISZERO
 748 PUSH2 0x0861
---
ENTRY 2f4
 756 JUMPDEST
 757 PUSH2 0x057f
 760 PUSH1 0x06
 762 SLOAD
 763 DUP2
 764 JUMP
 765 JUMPDEST
 766 PUSH1 0x40
 768 DUP1
 769 MLOAD
 770 PUSH1 0x20
 772 PUSH1 0x44
 774 CALLDATALOAD
 775 PUSH1 0x04
 777 DUP2
 778 DUP2
 779 ADD
 780 CALLDATALOAD
 781 PUSH1 0x1f
 783 DUP2
 784 ADD
 785 DUP5
 786 SWAP1
 787 DIV
 788 DUP5
 789 MUL
 790 DUP6
 791 ADD
 792 DUP5
 793 ADD
 794 SWAP1
 795 SWAP6
 796 MSTORE
---
ENTRY 2fd
 765 JUMPDEST
 766 PUSH1 0x40
 768 DUP1
 769 MLOAD
 770 PUSH1 0x20
 772 PUSH1 0x44
 774 CALLDATALOAD
 775 PUSH1 0x04
 777 DUP2
 778 DUP2
 779 ADD
 780 CALLDATALOAD
 781 PUSH1 0x1f
 783 DUP2
 784 ADD
 785 DUP5
 786 SWAP1
 787 DIV
 788 DUP5
 789 MUL
 790 DUP6
 791 ADD
 792 DUP5
 793 ADD
 794 SWAP1
 795 SWAP6
 796 MSTORE
 797 DUP5
 798 DUP5
 799 MSTORE
 800 PUSH2 0x057f
 803 SWAP5
 804 DUP2
 805 CALLDATALOAD
---
ENTRY 464
1124 JUMPDEST
1125 PUSH1 0x09
1127 PUSH1 0x20
1129 SWAP1
1130 DUP2
1131 MSTORE
1132 PUSH1 0x04
1134 CALLDATALOAD
1135 PUSH1 0x00
1137 SWAP1
1138 DUP2
1139 MSTORE
1140 PUSH1 0x40
1142 DUP1
1143 DUP3
1144 SHA3
1145 SWAP1
1146 SWAP3
1147 MSTORE
1148 PUSH1 0x24
1150 CALLDATALOAD
1151 DUP2
1152 MSTORE
1153 SHA3
1154 SLOAD
1155 PUSH2 0x057f
1158 SWAP1
1159 DUP2
1160 JUMP
1161 JUMPDEST
1162 PUSH1 0x08
1164 PUSH1 0x20
---
ENTRY 489
1161 JUMPDEST
1162 PUSH1 0x08
1164 PUSH1 0x20
1166 SWAP1
1167 DUP2
1168 MSTORE
1169 PUSH1 0x04
1171 CALLDATALOAD
1172 PUSH1 0x00
1174 SWAP1
1175 DUP2
1176 MSTORE
1177 PUSH1 0x40
1179 DUP1
1180 DUP3
1181 SHA3
1182 SWAP1
1183 SWAP3
1184 MSTORE
1185 PUSH1 0x24
1187 CALLDATALOAD
1188 DUP2
1189 MSTORE
1190 SHA3
1191 SLOAD
1192 PUSH2 0x057f
1195 SWAP1
1196 DUP2
1197 JUMP
1198 JUMPDEST
1199 PUSH2 0x057f
---
ENTRY 4ae
1198 JUMPDEST
1199 PUSH2 0x057f
1202 PUSH1 0x04
1204 CALLDATALOAD
1205 CALLER
1206 PUSH1 0x01
1208 PUSH1 0xa0
1210 PUSH1 0x02
1212 EXP
1213 SUB
1214 AND
1215 PUSH1 0x00
1217 SWAP1
1218 DUP2
1219 MSTORE
1220 PUSH1 0x07
1222 PUSH1 0x20
1224 MSTORE
1225 PUSH1 0x40
1227 DUP2
1228 SHA3
1229 SLOAD
1230 PUSH2 0x1388
1233 SWAP1
1234 DUP4
1235 SWAP1
1236 LT
1237 ISZERO
1238 PUSH2 0x07e0
---
ENTRY 4de
1246 JUMPDEST
1247 PUSH2 0x00e5
1250 PUSH1 0x04
1252 CALLDATALOAD
1253 PUSH1 0x00
1255 SLOAD
1256 CALLER
1257 PUSH1 0x01
1259 PUSH1 0xa0
1261 PUSH1 0x02
1263 EXP
1264 SUB
1265 SWAP1
1266 DUP2
1267 AND
1268 SWAP2
1269 AND
1270 EQ
1271 PUSH2 0x08e2
1274 JUMPI
1275 PUSH2 0x0002
1278 JUMP
1279 JUMPDEST
1280 PUSH2 0x05a7
1283 PUSH1 0x05
1285 SLOAD
1286 PUSH1 0x01
---
ENTRY 4ff
1279 JUMPDEST
1280 PUSH2 0x05a7
1283 PUSH1 0x05
1285 SLOAD
1286 PUSH1 0x01
1288 PUSH1 0xa0
1290 PUSH1 0x02
1292 EXP
1293 SUB
1294 AND
1295 DUP2
1296 JUMP
1297 JUMPDEST
1298 PUSH1 0x40
1300 MLOAD
1301 DUP1
1302 DUP1
1303 PUSH1 0x20
1305 ADD
1306 DUP3
1307 DUP2
1308 SUB
1309 DUP3
1310 MSTORE
1311 DUP4
1312 DUP2
1313 DUP2
1314 MLOAD
1315 DUP2
1316 MSTORE
1317 PUSH1 0x20
1319 ADD
---
exec
js_repl in /tmp/codex-03j11m2y
 succeeded in 6ms:
 333 JUMPDEST
 334 PUSH2 0x00e5
 337 PUSH1 0x04
 339 CALLDATALOAD
 340 PUSH1 0x00
 342 SLOAD
 343 PUSH1 0x01
 345 PUSH1 0xa0
 347 PUSH1 0x02
 349 EXP
 350 SUB
 351 SWAP1
 352 DUP2
 353 AND
 354 CALLER
 355 SWAP1
 356 SWAP2
 357 AND
 358 EQ
 359 PUSH2 0x06b7
 362 JUMPI
 363 PUSH2 0x0002
 366 JUMP
 367 JUMPDEST
 368 PUSH2 0x057f
 371 PUSH1 0x04
 373 CALLDATALOAD
 374 PUSH1 0x24
 376 CALLDATALOAD
 377 PUSH1 0x44
 379 CALLDATALOAD
 380 PUSH1 0x01
 382 PUSH1 0xa0
 384 PUSH1 0x02
 386 EXP
 387 SUB
 388 DUP4
 389 AND
 390 PUSH1 0x00
 392 SWAP1
 393 DUP2
 394 MSTORE
 395 PUSH1 0x07
 397 PUSH1 0x20
 399 MSTORE
 400 PUSH1 0x40
 402 DUP2
 403 SHA3
 404 SLOAD
 405 DUP3
 406 SWAP1
 407 LT
 408 ISZERO
 409 PUSH2 0x05cc
 412 JUMPI
 413 PUSH2 0x0002
 416 JUMP
 417 JUMPDEST
 418 PUSH2 0x0591
 421 PUSH1 0x03
 423 SLOAD
 424 PUSH1 0xff
 426 AND
 427 DUP2
 428 JUMP
 429 JUMPDEST
 430 PUSH2 0x057f
 433 PUSH1 0x04
 435 CALLDATALOAD
 436 PUSH1 0x24
 438 CALLDATALOAD
 439 JUMPDEST
 440 PUSH1 0x00
 442 DUP1
 443 DUP1
 444 JUMPDEST
 445 DUP4
 446 DUP2
 447 LT
 448 ISZERO
 449 PUSH2 0x05c4
 452 JUMPI
 453 PUSH1 0x40
 455 DUP1
 456 MLOAD
 457 NUMBER
 458 DUP4
 459 SWAP1
 460 SUB
 461 PUSH1 0x00
 463 NOT
 464 ADD
 465 BLOCKHASH
 466 DUP2
 467 MSTORE
 468 PUSH1 0x20
 470 DUP2
 471 ADD
 472 DUP8
 473 SWAP1
 474 MSTORE
 475 DUP2
 476 MLOAD
 477 SWAP1
 478 DUP2
 479 SWAP1
 480 SUB
 481 SWAP1
 482 SWAP2
 483 ADD
 484 SWAP1
 485 SHA3
 486 PUSH1 0x02
 488 SWAP1
 489 MOD
 490 PUSH1 0x00
 492 EQ
 493 ISZERO
 494 PUSH2 0x01fb
 497 JUMPI
 498 PUSH1 0x02
 500 DUP2
 501 SWAP1
 502 EXP
 503 SWAP1
 504 SWAP2
 505 ADD
 506 SWAP1
 507 JUMPDEST
 508 PUSH1 0x01
 510 ADD
 511 PUSH2 0x01bc
 514 JUMP
 515 JUMPDEST
 516 PUSH2 0x057f
 519 PUSH1 0x04
 521 CALLDATALOAD
 522 PUSH1 0x07
 524 PUSH1 0x20
 526 MSTORE
 527 PUSH1 0x00
 529 SWAP1
 530 DUP2
 531 MSTORE
 532 PUSH1 0x40
 534 SWAP1
 535 SHA3
 536 SLOAD
 537 DUP2
 538 JUMP
 539 JUMPDEST
 540 PUSH2 0x00e5
 543 PUSH1 0x04
 545 CALLDATALOAD
 546 PUSH1 0x00
 548 SLOAD
 549 CALLER
 550 PUSH1 0x01
 552 PUSH1 0xa0
 554 PUSH1 0x02
 556 EXP
 557 SUB
 558 SWAP1
 559 DUP2
 560 AND
 561 SWAP2
 562 AND
 563 EQ
 564 PUSH2 0x06bc
 567 JUMPI
 568 PUSH2 0x0002
 571 JUMP
 572 JUMPDEST
 573 PUSH2 0x05a7
 576 PUSH1 0x00
 578 SLOAD
 579 PUSH1 0x01
 581 PUSH1 0xa0
 583 PUSH1 0x02
 585 EXP
 586 SUB
 587 AND
 588 DUP2
 589 JUMP
 590 JUMPDEST
 591 PUSH2 0x0511
 594 PUSH1 0x02
 596 DUP1
 597 SLOAD
 598 PUSH1 0x40
 600 DUP1
 601 MLOAD
 602 PUSH1 0x20
 604 PUSH1 0x01
 606 DUP5
 607 AND
 608 ISZERO
 609 PUSH2 0x0100
 612 MUL
 613 PUSH1 0x00
 615 NOT
 616 ADD
 617 SWAP1
 618 SWAP4
 619 AND
 620 DUP5
 621 SWAP1
 622 DIV
 623 PUSH1 0x1f
 625 DUP2
 626 ADD
 627 DUP5
 628 SWAP1
 629 DIV
 630 DUP5
 631 MUL
 632 DUP3
 633 ADD
 634 DUP5
 635 ADD
 636 SWAP1
 637 SWAP3
 638 MSTORE
 639 DUP2
 640 DUP2
 641 MSTORE
 642 SWAP3
 643 SWAP2
 644 DUP4
 645 ADD
 646 DUP3
 647 DUP3
 648 DUP1
 649 ISZERO
 650 PUSH2 0x092f
 653 JUMPI
 654 DUP1
 655 PUSH1 0x1f
 657 LT
 658 PUSH2 0x0904
 661 JUMPI
 662 PUSH2 0x0100
 665 DUP1
 666 DUP4
 667 SLOAD
 668 DIV
 669 MUL
 670 DUP4
 671 MSTORE
 672 SWAP2
 673 PUSH1 0x20
 675 ADD
 676 SWAP2
 677 PUSH2 0x092f
 680 JUMP
 681 JUMPDEST
 682 PUSH2 0x057f
 685 PUSH1 0x06
 687 SLOAD
 688 CALLVALUE
 689 SWAP1
 690 PUSH1 0x00
 692 SWAP1
 693 PUSH1 0x64
 695 SWAP1
 696 DUP3
 697 SWAP1
 698 DUP5
 699 GT
 700 ISZERO
 701 PUSH2 0x06de
 704 JUMPI
 705 PUSH2 0x0002
 708 JUMP
 709 JUMPDEST
 710 PUSH2 0x00e5
 713 PUSH1 0x04
 715 CALLDATALOAD
 716 PUSH1 0x24
 718 CALLDATALOAD
 719 CALLER
 720 PUSH1 0x01
 722 PUSH1 0xa0
 724 PUSH1 0x02
 726 EXP
 727 SUB
 728 AND
 729 PUSH1 0x00
 731 SWAP1
 732 DUP2
 733 MSTORE
 734 PUSH1 0x07
 736 PUSH1 0x20
 738 MSTORE
 739 PUSH1 0x40
 741 SWAP1
 742 SHA3
 743 SLOAD
 744 DUP2
 745 SWAP1
 746 LT
 747 ISZERO
 748 PUSH2 0x0861
 751 JUMPI
 752 PUSH2 0x0002
 755 JUMP
 756 JUMPDEST
 757 PUSH2 0x057f
 760 PUSH1 0x06
--- 1710-2300 ---
1710 POP
1711 PUSH1 0x01
1713 SWAP4
1714 SWAP3
1715 POP
1716 POP
1717 POP
1718 JUMP
1719 JUMPDEST
1720 PUSH1 0x06
1722 SSTORE
1723 JUMP
1724 JUMPDEST
1725 PUSH1 0x05
1727 DUP1
1728 SLOAD
1729 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
1750 NOT
1751 AND
1752 DUP3
1753 OR
1754 SWAP1
1755 SSTORE
1756 POP
1757 JUMP
1758 JUMPDEST
1759 PUSH1 0x40
1761 DUP1
1762 MLOAD
1763 NUMBER
1764 DUP2
1765 MSTORE
1766 TIMESTAMP
1767 PUSH1 0x20
1769 DUP3
1770 ADD
1771 MSTORE
1772 DUP1
1773 DUP3
1774 ADD
1775 DUP7
1776 SWAP1
1777 MSTORE
1778 SWAP1
1779 MLOAD
1780 SWAP1
1781 DUP2
1782 SWAP1
1783 SUB
1784 PUSH1 0x60
1786 ADD
1787 SWAP1
1788 SHA3
1789 PUSH2 0x0707
1792 SWAP1
1793 PUSH1 0x0a
1795 PUSH2 0x01b7
1798 JUMP
1799 JUMPDEST
1800 SWAP1
1801 POP
1802 PUSH2 0x0200
1805 DUP2
1806 LT
1807 PUSH2 0x0719
1810 JUMPI
1811 PUSH1 0x64
1813 DUP5
1814 MUL
1815 SWAP3
1816 POP
1817 JUMPDEST
1818 PUSH2 0x0200
1821 DUP2
1822 LT
1823 ISZERO
1824 PUSH2 0x072b
1827 JUMPI
1828 PUSH2 0x2648
1831 DUP5
1832 MUL
1833 SWAP3
1834 POP
1835 JUMPDEST
1836 CALLER
1837 PUSH1 0x01
1839 PUSH1 0xa0
1841 PUSH1 0x02
1843 EXP
1844 SUB
1845 SWAP1
1846 DUP2
1847 AND
1848 PUSH1 0x00
1850 DUP2
1851 DUP2
1852 MSTORE
1853 PUSH1 0x07
1855 PUSH1 0x20
1857 SWAP1
1858 DUP2
1859 MSTORE
1860 PUSH1 0x40
1862 DUP1
1863 DUP4
1864 SHA3
1865 DUP1
1866 SLOAD
1867 DUP10
1868 ADD
1869 SWAP1
1870 SSTORE
1871 PUSH1 0x05
1873 SLOAD
1874 DUP6
1875 AND
1876 DUP4
1877 MSTORE
1878 DUP1
1879 DUP4
1880 SHA3
1881 DUP1
1882 SLOAD
1883 PUSH4 0xffffffff
1888 DUP10
1889 AND
1890 SWAP1
1891 DUP2
1892 ADD
1893 SWAP1
1894 SWAP2
1895 SSTORE
1896 ADDRESS
1897 SWAP1
1898 SWAP6
1899 AND
1900 DUP1
1901 DUP5
1902 MSTORE
1903 SWAP3
1904 DUP2
1905 SWAP1
1906 SHA3
1907 DUP1
1908 SLOAD
1909 SWAP6
1910 DUP10
1911 ADD
1912 SWAP1
1913 SWAP6
1914 SUB
1915 SWAP1
1916 SWAP5
1917 SSTORE
1918 DUP4
1919 MLOAD
1920 DUP8
1921 DUP2
1922 MSTORE
1923 SWAP4
1924 MLOAD
1925 SWAP3
1926 SWAP4
1927 SWAP2
1928 SWAP3
1929 PUSH1 0x00
1931 DUP1
1932 MLOAD
1933 PUSH1 0x20
1935 PUSH2 0x0937
1938 DUP4
1939 CODECOPY
1940 DUP2
1941 MLOAD
1942 SWAP2
1943 MSTORE
1944 SWAP3
1945 DUP2
1946 SWAP1
1947 SUB
1948 SWAP1
1949 SWAP2
1950 ADD
1951 SWAP1
1952 LOG3
1953 PUSH1 0x05
1955 SLOAD
1956 PUSH1 0x40
1958 DUP1
1959 MLOAD
1960 PUSH4 0xffffffff
1965 DUP6
1966 AND
1967 DUP2
1968 MSTORE
1969 SWAP1
1970 MLOAD
1971 PUSH1 0x01
1973 PUSH1 0xa0
1975 PUSH1 0x02
1977 EXP
1978 SUB
1979 SWAP3
1980 DUP4
1981 AND
1982 SWAP3
1983 ADDRESS
1984 AND
1985 SWAP2
1986 PUSH1 0x00
1988 DUP1
1989 MLOAD
1990 PUSH1 0x20
1992 PUSH2 0x0937
1995 DUP4
1996 CODECOPY
1997 DUP2
1998 MLOAD
1999 SWAP2
2000 MSTORE
2001 SWAP2
2002 SWAP1
2003 DUP2
2004 SWAP1
2005 SUB
2006 PUSH1 0x20
2008 ADD
2009 SWAP1
2010 LOG3
2011 POP
2012 POP
2013 POP
2014 SWAP1
2015 JUMP
2016 JUMPDEST
2017 ADDRESS
2018 PUSH1 0x01
2020 PUSH1 0xa0
2022 PUSH1 0x02
2024 EXP
2025 SUB
2026 SWAP1
2027 DUP2
2028 AND
2029 PUSH1 0x00
2031 SWAP1
2032 DUP2
2033 MSTORE
2034 PUSH1 0x07
2036 PUSH1 0x20
2038 MSTORE
2039 PUSH1 0x40
2041 DUP1
2042 DUP3
2043 SHA3
2044 DUP1
2045 SLOAD
2046 DUP8
2047 ADD
2048 SWAP1
2049 SSTORE
2050 CALLER
2051 SWAP1
2052 SWAP3
2053 AND
2054 DUP1
2055 DUP3
2056 MSTORE
2057 DUP3
2058 DUP3
2059 SHA3
2060 DUP1
2061 SLOAD
2062 DUP8
2063 SWAP1
2064 SUB
2065 SWAP1
2066 SSTORE
2067 SWAP2
2068 MLOAD
2069 PUSH4 0xffffffff
2074 DUP5
2075 AND
2076 DUP7
2077 MUL
2078 SWAP5
2079 POP
2080 DUP5
2081 SWAP1
2082 DUP3
2083 DUP2
2084 DUP2
2085 DUP2
2086 DUP6
2087 DUP9
2088 DUP4
2089 CALL
2090 POP
2091 POP
2092 PUSH1 0x40
2094 DUP1
2095 MLOAD
2096 DUP8
2097 DUP2
2098 MSTORE
2099 SWAP1
2100 MLOAD
2101 ADDRESS
2102 PUSH1 0x01
2104 PUSH1 0xa0
2106 PUSH1 0x02
2108 EXP
2109 SUB
2110 AND
2111 SWAP5
2112 SWAP4
2113 POP
2114 PUSH1 0x00
2116 DUP1
2117 MLOAD
2118 PUSH1 0x20
2120 PUSH2 0x0937
2123 DUP4
2124 CODECOPY
2125 DUP2
2126 MLOAD
2127 SWAP2
2128 MSTORE
2129 SWAP3
2130 POP
2131 SWAP1
2132 DUP2
2133 SWAP1
2134 SUB
2135 PUSH1 0x20
2137 ADD
2138 SWAP1
2139 LOG3
2140 POP
2141 SWAP2
2142 SWAP1
2143 POP
2144 JUMP
2145 JUMPDEST
2146 PUSH1 0x01
2148 PUSH1 0xa0
2150 PUSH1 0x02
2152 EXP
2153 SUB
2154 DUP3
2155 AND
2156 PUSH1 0x00
2158 SWAP1
2159 DUP2
2160 MSTORE
2161 PUSH1 0x07
2163 PUSH1 0x20
2165 MSTORE
2166 PUSH1 0x40
2168 SWAP1
2169 SHA3
2170 SLOAD
2171 DUP2
2172 DUP2
2173 ADD
2174 LT
2175 ISZERO
2176 PUSH2 0x0888
2179 JUMPI
2180 PUSH2 0x0002
2183 JUMP
2184 JUMPDEST
2185 CALLER
2186 PUSH1 0x01
2188 PUSH1 0xa0
2190 PUSH1 0x02
2192 EXP
2193 SUB
2194 SWAP1
2195 DUP2
2196 AND
2197 PUSH1 0x00
2199 DUP2
2200 DUP2
2201 MSTORE
2202 PUSH1 0x07
2204 PUSH1 0x20
2206 SWAP1
2207 DUP2
2208 MSTORE
2209 PUSH1 0x40
2211 DUP1
2212 DUP4
2213 SHA3
2214 DUP1
2215 SLOAD
2216 DUP8
2217 SWAP1
2218 SUB
2219 SWAP1
2220 SSTORE
2221 SWAP4
2222 DUP7
2223 AND
2224 DUP1
2225 DUP4
2226 MSTORE
2227 SWAP2
2228 DUP5
2229 SWAP1
2230 SHA3
2231 DUP1
2232 SLOAD
2233 DUP7
2234 ADD
2235 SWAP1
2236 SSTORE
2237 DUP4
2238 MLOAD
2239 DUP6
2240 DUP2
2241 MSTORE
2242 SWAP4
2243 MLOAD
2244 SWAP2
2245 SWAP4
2246 PUSH1 0x00
2248 DUP1
2249 MLOAD
2250 PUSH1 0x20
2252 PUSH2 0x0937
2255 DUP4
2256 CODECOPY
2257 DUP2
2258 MLOAD
2259 SWAP2
2260 MSTORE
2261 SWAP3
2262 SWAP1
2263 DUP2
2264 SWAP1
2265 SUB
2266 SWAP1
2267 SWAP2
2268 ADD
2269 SWAP1
2270 LOG3
2271 POP
2272 POP
2273 JUMP
2274 JUMPDEST
2275 PUSH1 0x00
2277 DUP1
2278 SLOAD
2279 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
2300 NOT
exec
js_repl in /tmp/codex-03j11m2y
 succeeded in 1ms:
2274 JUMPDEST
2275 PUSH1 0x00
2277 DUP1
2278 SLOAD
2279 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
2300 NOT
2301 AND
2302 DUP3
2303 OR
2304 SWAP1
2305 SSTORE
2306 POP
2307 JUMP
2308 JUMPDEST
2309 DUP3
2310 ADD
2311 SWAP2
2312 SWAP1
2313 PUSH1 0x00
2315 MSTORE
2316 PUSH1 0x20
2318 PUSH1 0x00
2320 SHA3
2321 SWAP1
2322 JUMPDEST
2323 DUP2
2324 SLOAD
2325 DUP2
2326 MSTORE
2327 SWAP1
2328 PUSH1 0x01
2330 ADD
2331 SWAP1
2332 PUSH1 0x20
2334 ADD
2335 DUP1
2336 DUP4
2337 GT
2338 PUSH2 0x0912
2341 JUMPI
2342 DUP3
2343 SWAP1
2344 SUB
2345 PUSH1 0x1f
2347 AND
2348 DUP3
2349 ADD
2350 SWAP2
2351 JUMPDEST
2352 POP
2353 POP
2354 POP
2355 POP
2356 POP
2357 DUP2
2358 JUMP
exec
js_repl in /tmp/codex-03j11m2y
 succeeded in 3ms:
2359 OP_dd
2360 CALLCODE
2361 MSTORE
2362 OP_ad
2363 SHL
2364 OP_e2
2365 OP_c8
2366 SWAP12
2367 PUSH10 0xc2b068fc378daa952ba7
2378 CALL
2379 PUSH4 0xc4a11628
2384 CREATE2
2385 GAS
2386 OP_4d
2387 CREATE2
2388 OP_23
2389 OP_b3
2390 OP_ef
byte len 2391
exec
js_repl in /tmp/codex-03j11m2y
 succeeded in 5ms:
 765 JUMPDEST
 766 PUSH1 0x40
 768 DUP1
 769 MLOAD
 770 PUSH1 0x20
 772 PUSH1 0x44
 774 CALLDATALOAD
 775 PUSH1 0x04
 777 DUP2
 778 DUP2
 779 ADD
 780 CALLDATALOAD
 781 PUSH1 0x1f
 783 DUP2
 784 ADD
 785 DUP5
 786 SWAP1
 787 DIV
 788 DUP5
 789 MUL
 790 DUP6
 791 ADD
 792 DUP5
 793 ADD
 794 SWAP1
 795 SWAP6
 796 MSTORE
 797 DUP5
 798 DUP5
 799 MSTORE
 800 PUSH2 0x057f
 803 SWAP5
 804 DUP2
 805 CALLDATALOAD
 806 SWAP5
 807 PUSH1 0x24
 809 DUP1
 810 CALLDATALOAD
 811 SWAP6
 812 SWAP4
 813 SWAP5
 814 PUSH1 0x64
 816 SWAP5
 817 SWAP3
 818 SWAP4
 819 SWAP2
 820 ADD
 821 SWAP2
 822 DUP2
 823 SWAP1
 824 DUP5
 825 ADD
 826 DUP4
 827 DUP3
 828 DUP1
 829 DUP3
 830 DUP5
 831 CALLDATACOPY
 832 POP
 833 SWAP5
 834 SWAP7
 835 POP
 836 POP
 837 POP
 838 POP
 839 POP
 840 POP
 841 POP
 842 PUSH1 0x00
 844 PUSH1 0x00
 846 DUP4
 847 PUSH1 0x08
 849 PUSH1 0x00
 851 POP
 852 PUSH1 0x00
 854 CALLER
 855 PUSH1 0x01
 857 PUSH1 0xa0
 859 PUSH1 0x02
 861 EXP
 862 SUB
 863 AND
 864 DUP2
 865 MSTORE
 866 PUSH1 0x20
 868 ADD
 869 SWAP1
 870 DUP2
 871 MSTORE
 872 PUSH1 0x20
 874 ADD
 875 PUSH1 0x00
 877 SHA3
 878 PUSH1 0x00
 880 POP
 881 PUSH1 0x00
 883 DUP8
 884 PUSH1 0x01
 886 PUSH1 0xa0
 888 PUSH1 0x02
 890 EXP
 891 SUB
 892 AND
 893 DUP2
 894 MSTORE
 895 PUSH1 0x20
 897 ADD
 898 SWAP1
 899 DUP2
 900 MSTORE
 901 PUSH1 0x20
 903 ADD
 904 PUSH1 0x00
 906 SHA3
 907 PUSH1 0x00
 909 POP
 910 DUP2
 911 SWAP1
 912 SSTORE
 913 POP
 914 DUP5
 915 SWAP1
 916 POP
 917 DUP1
 918 PUSH1 0x01
 920 PUSH1 0xa0
 922 PUSH1 0x02
 924 EXP
 925 SUB
 926 AND
 927 PUSH4 0x8f4ffcb1
 932 CALLER
 933 DUP7
 934 ADDRESS
 935 DUP8
 936 PUSH1 0x40
 938 MLOAD
 939 DUP6
 940 PUSH1 0xe0
 942 PUSH1 0x02
 944 EXP
 945 MUL
 946 DUP2
 947 MSTORE
 948 PUSH1 0x04
 950 ADD
 951 DUP1
 952 DUP6
 953 PUSH1 0x01
 955 PUSH1 0xa0
 957 PUSH1 0x02
 959 EXP
 960 SUB
 961 AND
 962 DUP2
 963 MSTORE
 964 PUSH1 0x20
 966 ADD
 967 DUP5
 968 DUP2
 969 MSTORE
 970 PUSH1 0x20
 972 ADD
 973 DUP4
 974 PUSH1 0x01
 976 PUSH1 0xa0
 978 PUSH1 0x02
 980 EXP
 981 SUB
 982 AND
 983 DUP2
 984 MSTORE
 985 PUSH1 0x20
 987 ADD
 988 DUP1
 989 PUSH1 0x20
 991 ADD
 992 DUP3
 993 DUP2
 994 SUB
 995 DUP3
 996 MSTORE
 997 DUP4
 998 DUP2
 999 DUP2
1000 MLOAD
1001 DUP2
1002 MSTORE
1003 PUSH1 0x20
1005 ADD
1006 SWAP2
1007 POP
1008 DUP1
1009 MLOAD
1010 SWAP1
1011 PUSH1 0x20
1013 ADD
1014 SWAP1
1015 DUP1
1016 DUP4
1017 DUP4
1018 DUP3
1019 SWAP1
1020 PUSH1 0x00
1022 PUSH1 0x04
1024 PUSH1 0x20
1026 DUP5
1027 PUSH1 0x1f
1029 ADD
1030 DIV
1031 PUSH1 0x0f
1033 MUL
1034 PUSH1 0x03
1036 ADD
1037 CALL
1038 POP
1039 SWAP1
1040 POP
1041 SWAP1
1042 DUP2
1043 ADD
1044 SWAP1
1045 PUSH1 0x1f
1047 AND
1048 DUP1
1049 ISZERO
1050 PUSH2 0x0437
1053 JUMPI
1054 DUP1
1055 DUP3
1056 SUB
1057 DUP1
1058 MLOAD
1059 PUSH1 0x01
1061 DUP4
1062 PUSH1 0x20
1064 SUB
1065 PUSH2 0x0100
1068 EXP
1069 SUB
1070 NOT
1071 AND
1072 DUP2
1073 MSTORE
1074 PUSH1 0x20
1076 ADD
1077 SWAP2
1078 POP
1079 JUMPDEST
1080 POP
1081 SWAP6
1082 POP
1083 POP
1084 POP
1085 POP
1086 POP
1087 POP
1088 PUSH1 0x00
1090 PUSH1 0x40
1092 MLOAD
1093 DUP1
1094 DUP4
1095 SUB
1096 DUP2
1097 PUSH1 0x00
1099 DUP8
1100 PUSH2 0x61da
1103 GAS
1104 SUB
1105 CALL
1106 ISZERO
1107 PUSH2 0x0002
1110 JUMPI
1111 POP
1112 PUSH1 0x01
1114 SWAP8
1115 SWAP7
1116 POP
1117 POP
1118 POP
1119 POP
1120 POP
1121 POP
1122 POP
1123 JUMP
exec
js_repl in /tmp/codex-03j11m2y
 succeeded in 3ms:
 681 JUMPDEST
 682 PUSH2 0x057f
 685 PUSH1 0x06
 687 SLOAD
 688 CALLVALUE
 689 SWAP1
 690 PUSH1 0x00
 692 SWAP1
 693 PUSH1 0x64
 695 SWAP1
 696 DUP3
 697 SWAP1
 698 DUP5
 699 GT
 700 ISZERO
 701 PUSH2 0x06de
 704 JUMPI
 705 PUSH2 0x0002
 708 JUMP
 709 JUMPDEST
 710 PUSH2 0x00e5
 713 PUSH1 0x04
 715 CALLDATALOAD
 716 PUSH1 0x24
 718 CALLDATALOAD
 719 CALLER
 720 PUSH1 0x01
 722 PUSH1 0xa0
 724 PUSH1 0x02
 726 EXP
 727 SUB
 728 AND
 729 PUSH1 0x00
 731 SWAP1
 732 DUP2
 733 MSTORE
 734 PUSH1 0x07
 736 PUSH1 0x20
 738 MSTORE
 739 PUSH1 0x40
 741 SWAP1
 742 SHA3
 743 SLOAD
 744 DUP2
 745 SWAP1
 746 LT
 747 ISZERO
 748 PUSH2 0x0861
 751 JUMPI
 752 PUSH2 0x0002
 755 JUMP
 756 JUMPDEST
 757 PUSH2 0x057f
 760 PUSH1 0x06
 762 SLOAD
 763 DUP2
 764 JUMP
 765 JUMPDEST
exec
js_repl in /tmp/codex-03j11m2y
 succeeded in 2ms:
1407 JUMPDEST
1408 PUSH1 0x40
1410 DUP1
1411 MLOAD
1412 SWAP2
1413 DUP3
1414 MSTORE
1415 MLOAD
1416 SWAP1
1417 DUP2
1418 SWAP1
1419 SUB
1420 PUSH1 0x20
1422 ADD
1423 SWAP1
1424 RETURN
1425 JUMPDEST
1426 PUSH1 0x40
1428 DUP1
1429 MLOAD
1430 PUSH1 0xff
1432 SWAP1
1433 SWAP3
1434 AND
1435 DUP3
1436 MSTORE
1437 MLOAD
1438 SWAP1
1439 DUP2
1440 SWAP1
1441 SUB
1442 PUSH1 0x20
1444 ADD
1445 SWAP1
1446 RETURN
1447 JUMPDEST
1448 PUSH1 0x40
1450 DUP1
1451 MLOAD
1452 PUSH1 0x01
1454 PUSH1 0xa0
1456 PUSH1 0x02
1458 EXP
1459 SUB
1460 SWAP3
1461 SWAP1
1462 SWAP3
1463 AND
1464 DUP3
1465 MSTORE
1466 MLOAD
1467 SWAP1
1468 DUP2
1469 SWAP1
1470 SUB
1471 PUSH1 0x20
1473 ADD
1474 SWAP1
1475 RETURN
1476 JUMPDEST
1477 POP
1478 SWAP4
1479 SWAP3
1480 POP
1481 POP
1482 POP
1483 JUMP
1484 JUMPDEST
1485 PUSH1 0x01
1487 PUSH1 0xa0
1489 PUSH1 0x02
1491 EXP
1492 SUB
1493 DUP4
1494 AND
1495 PUSH1 0x00
1497 SWAP1
1498 DUP2
1499 MSTORE
1500 PUSH1 0x07
1502 PUSH1 0x20
1504 MSTORE
1505 PUSH1 0x40
1507 SWAP1
1508 SHA3
1509 SLOAD
1510 DUP1
1511 DUP4
1512 ADD
1513 LT
1514 ISZERO
1515 PUSH2 0x05f3
1518 JUMPI
1519 PUSH2 0x0002
1522 JUMP
1523 JUMPDEST
1524 PUSH1 0x01
1526 PUSH1 0xa0
1528 PUSH1 0x02
1530 EXP
1531 SUB
1532 DUP5
1533 DUP2
1534 AND
1535 PUSH1 0x00
1537 DUP2
1538 DUP2
1539 MSTORE
1540 PUSH1 0x08
1542 PUSH1 0x20
1544 SWAP1
1545 DUP2
1546 MSTORE
1547 PUSH1 0x40
1549 DUP1
1550 DUP4
1551 SHA3
1552 CALLER
1553 SWAP1
1554 SWAP6
1555 AND
1556 DUP1
1557 DUP5
1558 MSTORE
1559 SWAP5
1560 DUP3
1561 MSTORE
1562 DUP1
1563 DUP4
1564 SHA3
1565 SLOAD
1566 SWAP4
1567 DUP4
1568 MSTORE
1569 PUSH1 0x09
1571 DUP3
1572 MSTORE
1573 DUP1
1574 DUP4
1575 SHA3
1576 SWAP5
1577 DUP4
1578 MSTORE
1579 SWAP4
1580 SWAP1
1581 MSTORE
1582 SWAP2
1583 SWAP1
1584 SWAP2
1585 SHA3
1586 SLOAD
1587 DUP4
1588 ADD
1589 GT
1590 ISZERO
1591 PUSH2 0x063f
1594 JUMPI
1595 PUSH2 0x0002
1598 JUMP
1599 JUMPDEST
1600 PUSH1 0x01
1602 PUSH1 0xa0
1604 PUSH1 0x02
1606 EXP
1607 SUB
1608 DUP5
1609 DUP2
1610 AND
1611 PUSH1 0x00
1613 DUP2
1614 DUP2
1615 MSTORE
1616 PUSH1 0x07
1618 PUSH1 0x20
1620 SWAP1
1621 DUP2
1622 MSTORE
1623 PUSH1 0x40
1625 DUP1
1626 DUP4
1627 SHA3
1628 DUP1
1629 SLOAD
1630 DUP9
1631 SWAP1
1632 SUB
1633 SWAP1
1634 SSTORE
1635 DUP8
1636 DUP6
1637 AND
1638 DUP1
1639 DUP5
1640 MSTORE
1641 DUP2
1642 DUP5
1643 SHA3
1644 DUP1
1645 SLOAD
1646 DUP10
1647 ADD
1648 SWAP1
1649 SSTORE
1650 DUP5
1651 DUP5
1652 MSTORE
1653 PUSH1 0x09
1655 DUP4
1656 MSTORE
1657 DUP2
1658 DUP5
1659 SHA3
1660 CALLER
1661 SWAP1
1662 SWAP7
1663 AND
1664 DUP5
1665 MSTORE
1666 SWAP5
1667 DUP3
1668 MSTORE
1669 SWAP2
1670 DUP3
1671 SWAP1
1672 SHA3
1673 DUP1
1674 SLOAD
1675 DUP8
1676 ADD
1677 SWAP1
1678 SSTORE
1679 DUP2
1680 MLOAD
1681 DUP7
1682 DUP2
1683 MSTORE
1684 SWAP2
1685 MLOAD
1686 PUSH1 0x00
1688 DUP1
1689 MLOAD
1690 PUSH1 0x20
1692 PUSH2 0x0937
1695 DUP4
1696 CODECOPY
1697 DUP2
1698 MLOAD
1699 SWAP2
1700 MSTORE
1701 SWAP3
1702 DUP2
1703 SWAP1
1704 SUB
1705 SWAP1
1706 SWAP2
1707 ADD
1708 SWAP1
1709 LOG3
1710 POP
1711 PUSH1 0x01
1713 SWAP4
1714 SWAP3
1715 POP
1716 POP
1717 POP
1718 JUMP
exec
js_repl in /tmp/codex-03j11m2y
 succeeded in 1ms:
1198 JUMPDEST
1199 PUSH2 0x057f
1202 PUSH1 0x04
1204 CALLDATALOAD
1205 CALLER
1206 PUSH1 0x01
1208 PUSH1 0xa0
1210 PUSH1 0x02
1212 EXP
1213 SUB
1214 AND
1215 PUSH1 0x00
1217 SWAP1
1218 DUP2
1219 MSTORE
1220 PUSH1 0x07
1222 PUSH1 0x20
1224 MSTORE
1225 PUSH1 0x40
1227 DUP2
1228 SHA3
1229 SLOAD
1230 PUSH2 0x1388
1233 SWAP1
1234 DUP4
1235 SWAP1
1236 LT
1237 ISZERO
1238 PUSH2 0x07e0
1241 JUMPI
1242 PUSH2 0x0002
1245 JUMP
1246 JUMPDEST
exec
js_repl in /tmp/codex-03j11m2y
 succeeded in 10ms:
UNHANDLED 1198 JUMPDEST
stack: [ 'retpc' ]
exec
js_repl in /tmp/codex-03j11m2y
 succeeded in 15ms:
JUMPI 0x07e0 if ISZERO(LT(calldata[0x04],sload(keccak(mem@0x00,0x40))))
stack: [ 'retpc', '0x057f', 'calldata[0x04]', '0x00', '0x1388' ]
exec
js_repl in /tmp/codex-03j11m2y
 succeeded in 4ms:
SSTORE keccak(mem@0x00,0x40) = ADD(sload(keccak(mem@0x00,0x40)),amount)
SSTORE keccak(mem@0x00,0x40) = SUB(amount,ADD(sload(keccak(mem@0x00,0x40)),amount))
CALL to=AND(caller,SUB(0x01,EXP(0xa0,0x02))) value=MUL(AND(0xffffffff,0x1388),amount) inOff=mem[0x40] inSize=0x00 outOff=mem[0x40] outSize=0x00 gas=0x00
CODECOPY dest=0x00 off=0x0937 size=0x20
LOG3 mem[AND(address(this),SUB(0x01,EXP(0xa0,0x02))):AND(caller,SUB(0x01,EXP(0xa0,0x02)))] topics AND(caller,SUB(0x01,EXP(0xa0,0x02))), ADD(SUB(mem[0x40],mem[0x40]),0x20), mem[0x40]
JUMP 0x057f
stack: [ 'retpc', 'MUL(AND(0xffffffff,0x1388),amount)' ]
exec
js_repl in /tmp/codex-03j11m2y
 succeeded in 2ms:
JUMPI 0x06de if ISZERO(GT(sload(0x06),callvalue))
[ 'retpc', '0x057f', 'callvalue', '0x00', '0x64', '0x00' ]
  ✓ Inspect BYTECODE_BUNDLE.json and identify key bytecode artifacts, selectors, storage slots, and detector findings
  ✓ Evaluate potential vulnerabilities from the bytecode evidence, focusing on proxy/upgradeability, access control, delegatecall, reentrancy, and unsafe external calls
  → Produce JSON findings with severity, exploit scenario, evidence, and precise locations
codex
{"no_findings":false,"summary":"Bytecode-only review found one strong privileged-balance-drain issue and two medium-confidence accounting/call-handling issues. Selector names are inferred best-effort from runtime behavior; several conclusions rely on storage-slot role inference rather than source names.","findings":[{"severity":"high","category":"access_control","title":"Owner-controlled source address can redirect public token payouts to arbitrary holder balances","exploit_scenario":"A privileged caller uses selector `0x7f2a8a80` to change storage slot 5 to a victim holder address. After that, any user can trigger the public payable path at `0xa6f2ae3a`; that path credits the caller's balance and debits the slot-5 address balance, effectively transferring tokens out of the victim account without that victim approving the transfer.","recommendation":"Do not let an admin point payout/debit logic at arbitrary holder addresses. Hard-code the treasury/source to the contract itself or an immutable trusted pool, or require explicit allowance/authorization from the debited address before reducing its balance.","evidence":"`0x7f2a8a80` is owner-gated by the slot-0 owner check at pcs 548-564 and writes the provided address into slot 5 at pc 1724-1755. The public payable path `0xa6f2ae3a` jumps to pc 1758 after a value check, then increases the caller balance in slot 7 at pcs 1866-1870 and decreases the slot-5 balance at pcs 1873-1917. Transfer-like logging follows at pc 1952, consistent with a balance move from the slot-5 address to the caller. Because slot 5 is admin-settable, the debited account is admin-controlled rather than fixed.","locations":["selector:0x7f2a8a80","selector:0xa6f2ae3a","selector:0xff9b3acf","pc:0x224","pc:0x6bc","pc:0x6de","pc:0x74a","pc:0x765","pc:0x777","pc:0x7a0"]},{"severity":"medium","category":"other","title":"`allowance()` appears to report the approved amount, not the remaining spendable amount","exploit_scenario":"A user approves a spender, the spender partially uses that approval through `transferFrom`, and off-chain/on-chain integrations then read `allowance()` and believe the full approved amount is still available. Subsequent transfers can revert unexpectedly because spending is tracked in a separate counter, creating integration failures and approval-renewal DoS patterns.","recommendation":"Either implement standard ERC-20 allowance semantics by decrementing the allowance mapping on `transferFrom`, or have `allowance()` return `approved - spent` and reset the spent counter when approvals are refreshed.","evidence":"The approval-like path at `0xcae9ca51` writes slot 8 at pc 912, then performs a `receiveApproval`-style callback. The standard allowance selector `0xdd62ed3e` reads slot 8 directly at pc 1191. But `transferFrom` (`0x23b872dd`) checks both slot 8 and a second nested mapping in slot 9: slot 8 is loaded around pc 1565, slot 9 is loaded around pc 1586, and slot 9 is incremented at pc 1678 instead of reducing slot 8. A separate getter `0xdc3080f2` reads slot 9 at pc 1154, which is consistent with a spent-allowance counter rather than standard remaining allowance accounting.","locations":["selector:0xcae9ca51","selector:0x23b872dd","selector:0xdd62ed3e","selector:0xdc3080f2","pc:0x390","pc:0x462","pc:0x633","pc:0x64a","pc:0x483","pc:0x499"]},{"severity":"medium","category":"other","title":"Token-for-ETH payout path ignores CALL failure after moving balances","exploit_scenario":"A caller invokes selector `0xe4849b32` through a contract wallet or fallback that reverts on ETH reception. The function first transfers tokens from the caller to the contract, then attempts an ETH payout via `CALL`, but it discards the return value. If the ETH transfer fails, the token movement still stands and the caller can lose tokens without receiving payment.","recommendation":"Check the `CALL` return value and revert on failure, or switch to a pull-payment withdrawal pattern so token accounting is finalized only after a successful claim.","evidence":"`0xe4849b32` enters at pc 1198 and jumps to pc 2016 after a balance check. In that block, storage is updated before the external call: one slot-7 balance is increased at pc 2049 and another is decreased at pc 2066. The function then performs a value-carrying `CALL` at pc 2089 to a computed target consistent with the caller, and immediately `POP`s the result instead of branching on success. Execution continues to emit a Transfer-like log at pc 2139 and returns normally, so payout failure does not roll back the prior balance changes.","locations":["selector:0xe4849b32","pc:0x7e0","pc:0x801","pc:0x812","pc:0x829","pc:0x85b"]}]}
tokens used
93,522
Metadata
{
    "codex": {
        "ran_at": "2026-04-05T07:09:24.942317+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 4784,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Bytecode-only review found one strong privileged-balance-drain issue and two medium-confidence accounting/call-handling issues. Selector names are inferred best-effort from runtime behavior; several conclusions rely on storage-slot role inference rather than source names.",
    "raw_final": {
        "summary": "Bytecode-only review found one strong privileged-balance-drain issue and two medium-confidence accounting/call-handling issues. Selector names are inferred best-effort from runtime behavior; several conclusions rely on storage-slot role inference rather than source names.",
        "findings": [
            {
                "title": "Owner-controlled source address can redirect public token payouts to arbitrary holder balances",
                "category": "access_control",
                "evidence": "`0x7f2a8a80` is owner-gated by the slot-0 owner check at pcs 548-564 and writes the provided address into slot 5 at pc 1724-1755. The public payable path `0xa6f2ae3a` jumps to pc 1758 after a value check, then increases the caller balance in slot 7 at pcs 1866-1870 and decreases the slot-5 balance at pcs 1873-1917. Transfer-like logging follows at pc 1952, consistent with a balance move from the slot-5 address to the caller. Because slot 5 is admin-settable, the debited account is admin-controlled rather than fixed.",
                "severity": "high",
                "locations": [
                    "selector:0x7f2a8a80",
                    "selector:0xa6f2ae3a",
                    "selector:0xff9b3acf",
                    "pc:0x224",
                    "pc:0x6bc",
                    "pc:0x6de",
                    "pc:0x74a",
                    "pc:0x765",
                    "pc:0x777",
                    "pc:0x7a0"
                ],
                "recommendation": "Do not let an admin point payout/debit logic at arbitrary holder addresses. Hard-code the treasury/source to the contract itself or an immutable trusted pool, or require explicit allowance/authorization from the debited address before reducing its balance.",
                "exploit_scenario": "A privileged caller uses selector `0x7f2a8a80` to change storage slot 5 to a victim holder address. After that, any user can trigger the public payable path at `0xa6f2ae3a`; that path credits the caller's balance and debits the slot-5 address balance, effectively transferring tokens out of the victim account without that victim approving the transfer."
            },
            {
                "title": "`allowance()` appears to report the approved amount, not the remaining spendable amount",
                "category": "other",
                "evidence": "The approval-like path at `0xcae9ca51` writes slot 8 at pc 912, then performs a `receiveApproval`-style callback. The standard allowance selector `0xdd62ed3e` reads slot 8 directly at pc 1191. But `transferFrom` (`0x23b872dd`) checks both slot 8 and a second nested mapping in slot 9: slot 8 is loaded around pc 1565, slot 9 is loaded around pc 1586, and slot 9 is incremented at pc 1678 instead of reducing slot 8. A separate getter `0xdc3080f2` reads slot 9 at pc 1154, which is consistent with a spent-allowance counter rather than standard remaining allowance accounting.",
                "severity": "medium",
                "locations": [
                    "selector:0xcae9ca51",
                    "selector:0x23b872dd",
                    "selector:0xdd62ed3e",
                    "selector:0xdc3080f2",
                    "pc:0x390",
                    "pc:0x462",
                    "pc:0x633",
                    "pc:0x64a",
                    "pc:0x483",
                    "pc:0x499"
                ],
                "recommendation": "Either implement standard ERC-20 allowance semantics by decrementing the allowance mapping on `transferFrom`, or have `allowance()` return `approved - spent` and reset the spent counter when approvals are refreshed.",
                "exploit_scenario": "A user approves a spender, the spender partially uses that approval through `transferFrom`, and off-chain/on-chain integrations then read `allowance()` and believe the full approved amount is still available. Subsequent transfers can revert unexpectedly because spending is tracked in a separate counter, creating integration failures and approval-renewal DoS patterns."
            },
            {
                "title": "Token-for-ETH payout path ignores CALL failure after moving balances",
                "category": "other",
                "evidence": "`0xe4849b32` enters at pc 1198 and jumps to pc 2016 after a balance check. In that block, storage is updated before the external call: one slot-7 balance is increased at pc 2049 and another is decreased at pc 2066. The function then performs a value-carrying `CALL` at pc 2089 to a computed target consistent with the caller, and immediately `POP`s the result instead of branching on success. Execution continues to emit a Transfer-like log at pc 2139 and returns normally, so payout failure does not roll back the prior balance changes.",
                "severity": "medium",
                "locations": [
                    "selector:0xe4849b32",
                    "pc:0x7e0",
                    "pc:0x801",
                    "pc:0x812",
                    "pc:0x829",
                    "pc:0x85b"
                ],
                "recommendation": "Check the `CALL` return value and revert on failure, or switch to a pull-payment withdrawal pattern so token accounting is finalized only after a successful claim.",
                "exploit_scenario": "A caller invokes selector `0xe4849b32` through a contract wallet or fallback that reverts on ETH reception. The function first transfers tokens from the caller to the contract, then attempts an ETH payout via `CALL`, but it discards the return value. If the ETH transfer fails, the token movement still stands and the caller can lose tokens without receiving payment."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
2
CALL-family (heavy)
6
EXT*/BALANCE
0
Total opcodes
1783
Flags
create_opcodes_present
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x00e5
0000000a: JUMPI
0000000b: PUSH1 0xe0
0000000d: PUSH1 0x02
0000000f: EXP
00000010: PUSH1 0x00
00000012: CALLDATALOAD
00000013: DIV
00000014: PUSH4 0x06fdde03
00000019: DUP2
0000001a: EQ
0000001b: PUSH2 0x00e7
0000001e: JUMPI
0000001f: DUP1
00000020: PUSH4 0x18160ddd
00000025: EQ
00000026: PUSH2 0x0144
00000029: JUMPI
0000002a: DUP1
0000002b: PUSH4 0x1fe9eabc
00000030: EQ
00000031: PUSH2 0x014d
00000034: JUMPI
00000035: DUP1
00000036: PUSH4 0x23b872dd
0000003b: EQ
0000003c: PUSH2 0x016f
0000003f: JUMPI
00000040: DUP1
00000041: PUSH4 0x313ce567
00000046: EQ
00000047: PUSH2 0x01a1
0000004a: JUMPI
0000004b: DUP1
0000004c: PUSH4 0x41fa4876
00000051: EQ
00000052: PUSH2 0x01ad
00000055: JUMPI
00000056: DUP1
00000057: PUSH4 0x70a08231
0000005c: EQ
0000005d: PUSH2 0x0203
00000060: JUMPI
00000061: DUP1
00000062: PUSH4 0x7f2a8a80
00000067: EQ
00000068: PUSH2 0x021b
0000006b: JUMPI
0000006c: DUP1
0000006d: PUSH4 0x8da5cb5b
00000072: EQ
00000073: PUSH2 0x023c
00000076: JUMPI
00000077: DUP1
00000078: PUSH4 0x95d89b41
0000007d: EQ
0000007e: PUSH2 0x024e
00000081: JUMPI
00000082: DUP1
00000083: PUSH4 0xa6f2ae3a
00000088: EQ
00000089: PUSH2 0x02a9
0000008c: JUMPI
0000008d: DUP1
0000008e: PUSH4 0xa9059cbb
00000093: EQ
00000094: PUSH2 0x02c5
00000097: JUMPI
00000098: DUP1
00000099: PUSH4 0xaa295de9
0000009e: EQ
0000009f: PUSH2 0x02f4
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0xcae9ca51
000000a9: EQ
000000aa: PUSH2 0x02fd
000000ad: JUMPI
000000ae: DUP1
000000af: PUSH4 0xdc3080f2
000000b4: EQ
000000b5: PUSH2 0x0464
000000b8: JUMPI
000000b9: DUP1
000000ba: PUSH4 0xdd62ed3e
000000bf: EQ
000000c0: PUSH2 0x0489
000000c3: JUMPI
000000c4: DUP1
000000c5: PUSH4 0xe4849b32
000000ca: EQ
000000cb: PUSH2 0x04ae
000000ce: JUMPI
000000cf: DUP1
000000d0: PUSH4 0xf2fde38b
000000d5: EQ
000000d6: PUSH2 0x04de
000000d9: JUMPI
000000da: DUP1
000000db: PUSH4 0xff9b3acf
000000e0: EQ
000000e1: PUSH2 0x04ff
000000e4: JUMPI
000000e5: JUMPDEST
000000e6: STOP
000000e7: JUMPDEST
000000e8: PUSH1 0x40
000000ea: DUP1
000000eb: MLOAD
000000ec: PUSH1 0x01
000000ee: DUP1
000000ef: SLOAD
000000f0: PUSH1 0x20
000000f2: PUSH1 0x02
000000f4: DUP3
000000f5: DUP5
000000f6: AND
000000f7: ISZERO
000000f8: PUSH2 0x0100
000000fb: MUL
000000fc: PUSH1 0x00
000000fe: NOT
000000ff: ADD
00000100: SWAP1
00000101: SWAP3
00000102: AND
00000103: SWAP2
00000104: SWAP1
00000105: SWAP2
00000106: DIV
00000107: PUSH1 0x1f
00000109: DUP2
0000010a: ADD
0000010b: DUP3
0000010c: SWAP1
0000010d: DIV
0000010e: DUP3
0000010f: MUL
00000110: DUP5
00000111: ADD
00000112: DUP3
00000113: ADD
00000114: SWAP1
00000115: SWAP5
00000116: MSTORE
00000117: DUP4
00000118: DUP4
00000119: MSTORE
0000011a: PUSH2 0x0511
0000011d: SWAP4
0000011e: SWAP1
0000011f: DUP4
00000120: ADD
00000121: DUP3
00000122: DUP3
00000123: DUP1
00000124: ISZERO
00000125: PUSH2 0x092f
00000128: JUMPI
00000129: DUP1
0000012a: PUSH1 0x1f
0000012c: LT
0000012d: PUSH2 0x0904
00000130: JUMPI
00000131: PUSH2 0x0100
00000134: DUP1
00000135: DUP4
00000136: SLOAD
00000137: DIV
00000138: MUL
00000139: DUP4
0000013a: MSTORE
0000013b: SWAP2
0000013c: PUSH1 0x20
0000013e: ADD
0000013f: SWAP2
00000140: PUSH2 0x092f
00000143: JUMP
00000144: JUMPDEST
00000145: PUSH2 0x057f
00000148: PUSH1 0x04
0000014a: SLOAD
0000014b: DUP2
0000014c: JUMP
0000014d: JUMPDEST
0000014e: PUSH2 0x00e5
00000151: PUSH1 0x04
00000153: CALLDATALOAD
00000154: PUSH1 0x00
00000156: SLOAD
00000157: PUSH1 0x01
00000159: PUSH1 0xa0
0000015b: PUSH1 0x02
0000015d: EXP
0000015e: SUB
0000015f: SWAP1
00000160: DUP2
00000161: AND
00000162: CALLER
00000163: SWAP1
00000164: SWAP2
00000165: AND
00000166: EQ
00000167: PUSH2 0x06b7
0000016a: JUMPI
0000016b: PUSH2 0x0002
0000016e: JUMP
0000016f: JUMPDEST
00000170: PUSH2 0x057f
00000173: PUSH1 0x04
00000175: CALLDATALOAD
00000176: PUSH1 0x24
00000178: CALLDATALOAD
00000179: PUSH1 0x44
0000017b: CALLDATALOAD
0000017c: PUSH1 0x01
0000017e: PUSH1 0xa0
00000180: PUSH1 0x02
00000182: EXP
00000183: SUB
00000184: DUP4
00000185: AND
00000186: PUSH1 0x00
00000188: SWAP1
00000189: DUP2
0000018a: MSTORE
0000018b: PUSH1 0x07
0000018d: PUSH1 0x20
0000018f: MSTORE
00000190: PUSH1 0x40
00000192: DUP2
00000193: KECCAK256
00000194: SLOAD
00000195: DUP3
00000196: SWAP1
00000197: LT
00000198: ISZERO
00000199: PUSH2 0x05cc
0000019c: JUMPI
0000019d: PUSH2 0x0002
000001a0: JUMP
000001a1: JUMPDEST
000001a2: PUSH2 0x0591
000001a5: PUSH1 0x03
000001a7: SLOAD
000001a8: PUSH1 0xff
000001aa: AND
000001ab: DUP2
000001ac: JUMP
000001ad: JUMPDEST
000001ae: PUSH2 0x057f
000001b1: PUSH1 0x04
000001b3: CALLDATALOAD
000001b4: PUSH1 0x24
000001b6: CALLDATALOAD
000001b7: JUMPDEST
000001b8: PUSH1 0x00
000001ba: DUP1
000001bb: DUP1
000001bc: JUMPDEST
000001bd: DUP4
000001be: DUP2
000001bf: LT
000001c0: ISZERO
000001c1: PUSH2 0x05c4
000001c4: JUMPI
000001c5: PUSH1 0x40
000001c7: DUP1
000001c8: MLOAD
000001c9: NUMBER
000001ca: DUP4
000001cb: SWAP1
000001cc: SUB
000001cd: PUSH1 0x00
000001cf: NOT
000001d0: ADD
000001d1: BLOCKHASH
000001d2: DUP2
000001d3: MSTORE
000001d4: PUSH1 0x20
000001d6: DUP2
000001d7: ADD
000001d8: DUP8
000001d9: SWAP1
000001da: MSTORE
000001db: DUP2
000001dc: MLOAD
000001dd: SWAP1
000001de: DUP2
000001df: SWAP1
000001e0: SUB
000001e1: SWAP1
000001e2: SWAP2
000001e3: ADD
000001e4: SWAP1
000001e5: KECCAK256
000001e6: PUSH1 0x02
000001e8: SWAP1
000001e9: MOD
000001ea: PUSH1 0x00
000001ec: EQ
000001ed: ISZERO
000001ee: PUSH2 0x01fb
000001f1: JUMPI
000001f2: PUSH1 0x02
000001f4: DUP2
000001f5: SWAP1
000001f6: EXP
000001f7: SWAP1
000001f8: SWAP2
000001f9: ADD
000001fa: SWAP1
000001fb: JUMPDEST
000001fc: PUSH1 0x01
000001fe: ADD
000001ff: PUSH2 0x01bc
00000202: JUMP
00000203: JUMPDEST
00000204: PUSH2 0x057f
00000207: PUSH1 0x04
00000209: CALLDATALOAD
0000020a: PUSH1 0x07
0000020c: PUSH1 0x20
0000020e: MSTORE
0000020f: PUSH1 0x00
00000211: SWAP1
00000212: DUP2
00000213: MSTORE
00000214: PUSH1 0x40
00000216: SWAP1
00000217: KECCAK256
00000218: SLOAD
00000219: DUP2
0000021a: JUMP
0000021b: JUMPDEST
0000021c: PUSH2 0x00e5
0000021f: PUSH1 0x04
00000221: CALLDATALOAD
00000222: PUSH1 0x00
00000224: SLOAD
00000225: CALLER
00000226: PUSH1 0x01
00000228: PUSH1 0xa0
0000022a: PUSH1 0x02
0000022c: EXP
0000022d: SUB
0000022e: SWAP1
0000022f: DUP2
00000230: AND
00000231: SWAP2
00000232: AND
00000233: EQ
00000234: PUSH2 0x06bc
00000237: JUMPI
00000238: PUSH2 0x0002
0000023b: JUMP
0000023c: JUMPDEST
0000023d: PUSH2 0x05a7
00000240: PUSH1 0x00
00000242: SLOAD
00000243: PUSH1 0x01
00000245: PUSH1 0xa0
00000247: PUSH1 0x02
00000249: EXP
0000024a: SUB
0000024b: AND
0000024c: DUP2
0000024d: JUMP
0000024e: JUMPDEST
0000024f: PUSH2 0x0511
00000252: PUSH1 0x02
00000254: DUP1
00000255: SLOAD
00000256: PUSH1 0x40
00000258: DUP1
00000259: MLOAD
0000025a: PUSH1 0x20
0000025c: PUSH1 0x01
0000025e: DUP5
0000025f: AND
00000260: ISZERO
00000261: PUSH2 0x0100
00000264: MUL
00000265: PUSH1 0x00
00000267: NOT
00000268: ADD
00000269: SWAP1
0000026a: SWAP4
0000026b: AND
0000026c: DUP5
0000026d: SWAP1
0000026e: DIV
0000026f: PUSH1 0x1f
00000271: DUP2
00000272: ADD
00000273: DUP5
00000274: SWAP1
00000275: DIV
00000276: DUP5
00000277: MUL
00000278: DUP3
00000279: ADD
0000027a: DUP5
0000027b: ADD
0000027c: SWAP1
0000027d: SWAP3
0000027e: MSTORE
0000027f: DUP2
00000280: DUP2
00000281: MSTORE
00000282: SWAP3
00000283: SWAP2
00000284: DUP4
00000285: ADD
00000286: DUP3
00000287: DUP3
00000288: DUP1
00000289: ISZERO
0000028a: PUSH2 0x092f
0000028d: JUMPI
0000028e: DUP1
0000028f: PUSH1 0x1f
00000291: LT
00000292: PUSH2 0x0904
00000295: JUMPI
00000296: PUSH2 0x0100
00000299: DUP1
0000029a: DUP4
0000029b: SLOAD
0000029c: DIV
0000029d: MUL
0000029e: DUP4
0000029f: MSTORE
000002a0: SWAP2
000002a1: PUSH1 0x20
000002a3: ADD
000002a4: SWAP2
000002a5: PUSH2 0x092f
000002a8: JUMP
000002a9: JUMPDEST
000002aa: PUSH2 0x057f
000002ad: PUSH1 0x06
000002af: SLOAD
000002b0: CALLVALUE
000002b1: SWAP1
000002b2: PUSH1 0x00
000002b4: SWAP1
000002b5: PUSH1 0x64
000002b7: SWAP1
000002b8: DUP3
000002b9: SWAP1
000002ba: DUP5
000002bb: GT
000002bc: ISZERO
000002bd: PUSH2 0x06de
000002c0: JUMPI
000002c1: PUSH2 0x0002
000002c4: JUMP
000002c5: JUMPDEST
000002c6: PUSH2 0x00e5
000002c9: PUSH1 0x04
000002cb: CALLDATALOAD
000002cc: PUSH1 0x24
000002ce: CALLDATALOAD
000002cf: CALLER
000002d0: PUSH1 0x01
000002d2: PUSH1 0xa0
000002d4: PUSH1 0x02
000002d6: EXP
000002d7: SUB
000002d8: AND
000002d9: PUSH1 0x00
000002db: SWAP1
000002dc: DUP2
000002dd: MSTORE
000002de: PUSH1 0x07
000002e0: PUSH1 0x20
000002e2: MSTORE
000002e3: PUSH1 0x40
000002e5: SWAP1
000002e6: KECCAK256
000002e7: SLOAD
000002e8: DUP2
000002e9: SWAP1
000002ea: LT
000002eb: ISZERO
000002ec: PUSH2 0x0861
000002ef: JUMPI
000002f0: PUSH2 0x0002
000002f3: JUMP
000002f4: JUMPDEST
000002f5: PUSH2 0x057f
000002f8: PUSH1 0x06
000002fa: SLOAD
000002fb: DUP2
000002fc: JUMP
000002fd: JUMPDEST
000002fe: PUSH1 0x40
00000300: DUP1
00000301: MLOAD
00000302: PUSH1 0x20
00000304: PUSH1 0x44
00000306: CALLDATALOAD
00000307: PUSH1 0x04
00000309: DUP2
0000030a: DUP2
0000030b: ADD
0000030c: CALLDATALOAD
0000030d: PUSH1 0x1f
0000030f: DUP2
00000310: ADD
00000311: DUP5
00000312: SWAP1
00000313: DIV
00000314: DUP5
00000315: MUL
00000316: DUP6
00000317: ADD
00000318: DUP5
00000319: ADD
0000031a: SWAP1
0000031b: SWAP6
0000031c: MSTORE
0000031d: DUP5
0000031e: DUP5
0000031f: MSTORE
00000320: PUSH2 0x057f
00000323: SWAP5
00000324: DUP2
00000325: CALLDATALOAD
00000326: SWAP5
00000327: PUSH1 0x24
00000329: DUP1
0000032a: CALLDATALOAD
0000032b: SWAP6
0000032c: SWAP4
0000032d: SWAP5
0000032e: PUSH1 0x64
00000330: SWAP5
00000331: SWAP3
00000332: SWAP4
00000333: SWAP2
00000334: ADD
00000335: SWAP2
00000336: DUP2
00000337: SWAP1
00000338: DUP5
00000339: ADD
0000033a: DUP4
0000033b: DUP3
0000033c: DUP1
0000033d: DUP3
0000033e: DUP5
0000033f: CALLDATACOPY
00000340: POP
00000341: SWAP5
00000342: SWAP7
00000343: POP
00000344: POP
00000345: POP
00000346: POP
00000347: POP
00000348: POP
00000349: POP
0000034a: PUSH1 0x00
0000034c: PUSH1 0x00
0000034e: DUP4
0000034f: PUSH1 0x08
00000351: PUSH1 0x00
00000353: POP
00000354: PUSH1 0x00
00000356: CALLER
00000357: PUSH1 0x01
00000359: PUSH1 0xa0
0000035b: PUSH1 0x02
0000035d: EXP
0000035e: SUB
0000035f: AND
00000360: DUP2
00000361: MSTORE
00000362: PUSH1 0x20
00000364: ADD
00000365: SWAP1
00000366: DUP2
00000367: MSTORE
00000368: PUSH1 0x20
0000036a: ADD
0000036b: PUSH1 0x00
0000036d: KECCAK256
0000036e: PUSH1 0x00
00000370: POP
00000371: PUSH1 0x00
00000373: DUP8
00000374: PUSH1 0x01
00000376: PUSH1 0xa0
00000378: PUSH1 0x02
0000037a: EXP
0000037b: SUB
0000037c: AND
0000037d: DUP2
0000037e: MSTORE
0000037f: PUSH1 0x20
00000381: ADD
00000382: SWAP1
00000383: DUP2
00000384: MSTORE
00000385: PUSH1 0x20
00000387: ADD
00000388: PUSH1 0x00
0000038a: KECCAK256
0000038b: PUSH1 0x00
0000038d: POP
0000038e: DUP2
0000038f: SWAP1
00000390: SSTORE
00000391: POP
00000392: DUP5
00000393: SWAP1
00000394: POP
00000395: DUP1
00000396: PUSH1 0x01
00000398: PUSH1 0xa0
0000039a: PUSH1 0x02
0000039c: EXP
0000039d: SUB
0000039e: AND
0000039f: PUSH4 0x8f4ffcb1
000003a4: CALLER
000003a5: DUP7
000003a6: ADDRESS
000003a7: DUP8
000003a8: PUSH1 0x40
000003aa: MLOAD
000003ab: DUP6
000003ac: PUSH1 0xe0
000003ae: PUSH1 0x02
000003b0: EXP
000003b1: MUL
000003b2: DUP2
000003b3: MSTORE
000003b4: PUSH1 0x04
000003b6: ADD
000003b7: DUP1
000003b8: DUP6
000003b9: PUSH1 0x01
000003bb: PUSH1 0xa0
000003bd: PUSH1 0x02
000003bf: EXP
000003c0: SUB
000003c1: AND
000003c2: DUP2
000003c3: MSTORE
000003c4: PUSH1 0x20
000003c6: ADD
000003c7: DUP5
000003c8: DUP2
000003c9: MSTORE
000003ca: PUSH1 0x20
000003cc: ADD
000003cd: DUP4
000003ce: PUSH1 0x01
000003d0: PUSH1 0xa0
000003d2: PUSH1 0x02
000003d4: EXP
000003d5: SUB
000003d6: AND
000003d7: DUP2
000003d8: MSTORE
000003d9: PUSH1 0x20
000003db: ADD
000003dc: DUP1
000003dd: PUSH1 0x20
000003df: ADD
000003e0: DUP3
000003e1: DUP2
000003e2: SUB
000003e3: DUP3
000003e4: MSTORE
000003e5: DUP4
000003e6: DUP2
000003e7: DUP2
000003e8: MLOAD
000003e9: DUP2
000003ea: MSTORE
000003eb: PUSH1 0x20
000003ed: ADD
000003ee: SWAP2
000003ef: POP
000003f0: DUP1
000003f1: MLOAD
000003f2: SWAP1
000003f3: PUSH1 0x20
000003f5: ADD
000003f6: SWAP1
000003f7: DUP1
000003f8: DUP4
000003f9: DUP4
000003fa: DUP3
000003fb: SWAP1
000003fc: PUSH1 0x00
000003fe: PUSH1 0x04
00000400: PUSH1 0x20
00000402: DUP5
00000403: PUSH1 0x1f
00000405: ADD
00000406: DIV
00000407: PUSH1 0x0f
00000409: MUL
0000040a: PUSH1 0x03
0000040c: ADD
0000040d: CALL
0000040e: POP
0000040f: SWAP1
00000410: POP
00000411: SWAP1
00000412: DUP2
00000413: ADD
00000414: SWAP1
00000415: PUSH1 0x1f
00000417: AND
00000418: DUP1
00000419: ISZERO
0000041a: PUSH2 0x0437
0000041d: JUMPI
0000041e: DUP1
0000041f: DUP3
00000420: SUB
00000421: DUP1
00000422: MLOAD
00000423: PUSH1 0x01
00000425: DUP4
00000426: PUSH1 0x20
00000428: SUB
00000429: PUSH2 0x0100
0000042c: EXP
0000042d: SUB
0000042e: NOT
0000042f: AND
00000430: DUP2
00000431: MSTORE
00000432: PUSH1 0x20
00000434: ADD
00000435: SWAP2
00000436: POP
00000437: JUMPDEST
00000438: POP
00000439: SWAP6
0000043a: POP
0000043b: POP
0000043c: POP
0000043d: POP
0000043e: POP
0000043f: POP
00000440: PUSH1 0x00
00000442: PUSH1 0x40
00000444: MLOAD
00000445: DUP1
00000446: DUP4
00000447: SUB
00000448: DUP2
00000449: PUSH1 0x00
0000044b: DUP8
0000044c: PUSH2 0x61da
0000044f: GAS
00000450: SUB
00000451: CALL
00000452: ISZERO
00000453: PUSH2 0x0002
00000456: JUMPI
00000457: POP
00000458: PUSH1 0x01
0000045a: SWAP8
0000045b: SWAP7
0000045c: POP
0000045d: POP
0000045e: POP
0000045f: POP
00000460: POP
00000461: POP
00000462: POP
00000463: JUMP
00000464: JUMPDEST
00000465: PUSH1 0x09
00000467: PUSH1 0x20
00000469: SWAP1
0000046a: DUP2
0000046b: MSTORE
0000046c: PUSH1 0x04
0000046e: CALLDATALOAD
0000046f: PUSH1 0x00
00000471: SWAP1
00000472: DUP2
00000473: MSTORE
00000474: PUSH1 0x40
00000476: DUP1
00000477: DUP3
00000478: KECCAK256
00000479: SWAP1
0000047a: SWAP3
0000047b: MSTORE
0000047c: PUSH1 0x24
0000047e: CALLDATALOAD
0000047f: DUP2
00000480: MSTORE
00000481: KECCAK256
00000482: SLOAD
00000483: PUSH2 0x057f
00000486: SWAP1
00000487: DUP2
00000488: JUMP
00000489: JUMPDEST
0000048a: PUSH1 0x08
0000048c: PUSH1 0x20
0000048e: SWAP1
0000048f: DUP2
00000490: MSTORE
00000491: PUSH1 0x04
00000493: CALLDATALOAD
00000494: PUSH1 0x00
00000496: SWAP1
00000497: DUP2
00000498: MSTORE
00000499: PUSH1 0x40
0000049b: DUP1
0000049c: DUP3
0000049d: KECCAK256
0000049e: SWAP1
0000049f: SWAP3
000004a0: MSTORE
000004a1: PUSH1 0x24
000004a3: CALLDATALOAD
000004a4: DUP2
000004a5: MSTORE
000004a6: KECCAK256
000004a7: SLOAD
000004a8: PUSH2 0x057f
000004ab: SWAP1
000004ac: DUP2
000004ad: JUMP
000004ae: JUMPDEST
000004af: PUSH2 0x057f
000004b2: PUSH1 0x04
000004b4: CALLDATALOAD
000004b5: CALLER
000004b6: PUSH1 0x01
000004b8: PUSH1 0xa0
000004ba: PUSH1 0x02
000004bc: EXP
000004bd: SUB
000004be: AND
000004bf: PUSH1 0x00
000004c1: SWAP1
000004c2: DUP2
000004c3: MSTORE
000004c4: PUSH1 0x07
000004c6: PUSH1 0x20
000004c8: MSTORE
000004c9: PUSH1 0x40
000004cb: DUP2
000004cc: KECCAK256
000004cd: SLOAD
000004ce: PUSH2 0x1388
000004d1: SWAP1
000004d2: DUP4
000004d3: SWAP1
000004d4: LT
000004d5: ISZERO
000004d6: PUSH2 0x07e0
000004d9: JUMPI
000004da: PUSH2 0x0002
000004dd: JUMP
000004de: JUMPDEST
000004df: PUSH2 0x00e5
000004e2: PUSH1 0x04
000004e4: CALLDATALOAD
000004e5: PUSH1 0x00
000004e7: SLOAD
000004e8: CALLER
000004e9: PUSH1 0x01
000004eb: PUSH1 0xa0
000004ed: PUSH1 0x02
000004ef: EXP
000004f0: SUB
000004f1: SWAP1
000004f2: DUP2
000004f3: AND
000004f4: SWAP2
000004f5: AND
000004f6: EQ
000004f7: PUSH2 0x08e2
000004fa: JUMPI
000004fb: PUSH2 0x0002
000004fe: JUMP
000004ff: JUMPDEST
00000500: PUSH2 0x05a7
00000503: PUSH1 0x05
00000505: SLOAD
00000506: PUSH1 0x01
00000508: PUSH1 0xa0
0000050a: PUSH1 0x02
0000050c: EXP
0000050d: SUB
0000050e: AND
0000050f: DUP2
00000510: JUMP
00000511: JUMPDEST
00000512: PUSH1 0x40
00000514: MLOAD
00000515: DUP1
00000516: DUP1
00000517: PUSH1 0x20
00000519: ADD
0000051a: DUP3
0000051b: DUP2
0000051c: SUB
0000051d: DUP3
0000051e: MSTORE
0000051f: DUP4
00000520: DUP2
00000521: DUP2
00000522: MLOAD
00000523: DUP2
00000524: MSTORE
00000525: PUSH1 0x20
00000527: ADD
00000528: SWAP2
00000529: POP
0000052a: DUP1
0000052b: MLOAD
0000052c: SWAP1
0000052d: PUSH1 0x20
0000052f: ADD
00000530: SWAP1
00000531: DUP1
00000532: DUP4
00000533: DUP4
00000534: DUP3
00000535: SWAP1
00000536: PUSH1 0x00
00000538: PUSH1 0x04
0000053a: PUSH1 0x20
0000053c: DUP5
0000053d: PUSH1 0x1f
0000053f: ADD
00000540: DIV
00000541: PUSH1 0x0f
00000543: MUL
00000544: PUSH1 0x03
00000546: ADD
00000547: CALL
00000548: POP
00000549: SWAP1
0000054a: POP
0000054b: SWAP1
0000054c: DUP2
0000054d: ADD
0000054e: SWAP1
0000054f: PUSH1 0x1f
00000551: AND
00000552: DUP1
00000553: ISZERO
00000554: PUSH2 0x0571
00000557: JUMPI
00000558: DUP1
00000559: DUP3
0000055a: SUB
0000055b: DUP1
0000055c: MLOAD
0000055d: PUSH1 0x01
0000055f: DUP4
00000560: PUSH1 0x20
00000562: SUB
00000563: PUSH2 0x0100
00000566: EXP
00000567: SUB
00000568: NOT
00000569: AND
0000056a: DUP2
0000056b: MSTORE
0000056c: PUSH1 0x20
0000056e: ADD
0000056f: SWAP2
00000570: POP
00000571: JUMPDEST
00000572: POP
00000573: SWAP3
00000574: POP
00000575: POP
00000576: POP
00000577: PUSH1 0x40
00000579: MLOAD
0000057a: DUP1
0000057b: SWAP2
0000057c: SUB
0000057d: SWAP1
0000057e: RETURN
0000057f: JUMPDEST
00000580: PUSH1 0x40
00000582: DUP1
00000583: MLOAD
00000584: SWAP2
00000585: DUP3
00000586: MSTORE
00000587: MLOAD
00000588: SWAP1
00000589: DUP2
0000058a: SWAP1
0000058b: SUB
0000058c: PUSH1 0x20
0000058e: ADD
0000058f: SWAP1
00000590: RETURN
00000591: JUMPDEST
00000592: PUSH1 0x40
00000594: DUP1
00000595: MLOAD
00000596: PUSH1 0xff
00000598: SWAP1
00000599: SWAP3
0000059a: AND
0000059b: DUP3
0000059c: MSTORE
0000059d: MLOAD
0000059e: SWAP1
0000059f: DUP2
000005a0: SWAP1
000005a1: SUB
000005a2: PUSH1 0x20
000005a4: ADD
000005a5: SWAP1
000005a6: RETURN
000005a7: JUMPDEST
000005a8: PUSH1 0x40
000005aa: DUP1
000005ab: MLOAD
000005ac: PUSH1 0x01
000005ae: PUSH1 0xa0
000005b0: PUSH1 0x02
000005b2: EXP
000005b3: SUB
000005b4: SWAP3
000005b5: SWAP1
000005b6: SWAP3
000005b7: AND
000005b8: DUP3
000005b9: MSTORE
000005ba: MLOAD
000005bb: SWAP1
000005bc: DUP2
000005bd: SWAP1
000005be: SUB
000005bf: PUSH1 0x20
000005c1: ADD
000005c2: SWAP1
000005c3: RETURN
000005c4: JUMPDEST
000005c5: POP
000005c6: SWAP4
000005c7: SWAP3
000005c8: POP
000005c9: POP
000005ca: POP
000005cb: JUMP
000005cc: JUMPDEST
000005cd: PUSH1 0x01
000005cf: PUSH1 0xa0
000005d1: PUSH1 0x02
000005d3: EXP
000005d4: SUB
000005d5: DUP4
000005d6: AND
000005d7: PUSH1 0x00
000005d9: SWAP1
000005da: DUP2
000005db: MSTORE
000005dc: PUSH1 0x07
000005de: PUSH1 0x20
000005e0: MSTORE
000005e1: PUSH1 0x40
000005e3: SWAP1
000005e4: KECCAK256
000005e5: SLOAD
000005e6: DUP1
000005e7: DUP4
000005e8: ADD
000005e9: LT
000005ea: ISZERO
000005eb: PUSH2 0x05f3
000005ee: JUMPI
000005ef: PUSH2 0x0002
000005f2: JUMP
000005f3: JUMPDEST
000005f4: PUSH1 0x01
000005f6: PUSH1 0xa0
000005f8: PUSH1 0x02
000005fa: EXP
000005fb: SUB
000005fc: DUP5
000005fd: DUP2
000005fe: AND
000005ff: PUSH1 0x00
00000601: DUP2
00000602: DUP2
00000603: MSTORE
00000604: PUSH1 0x08
00000606: PUSH1 0x20
00000608: SWAP1
00000609: DUP2
0000060a: MSTORE
0000060b: PUSH1 0x40
0000060d: DUP1
0000060e: DUP4
0000060f: KECCAK256
00000610: CALLER
00000611: SWAP1
00000612: SWAP6
00000613: AND
00000614: DUP1
00000615: DUP5
00000616: MSTORE
00000617: SWAP5
00000618: DUP3
00000619: MSTORE
0000061a: DUP1
0000061b: DUP4
0000061c: KECCAK256
0000061d: SLOAD
0000061e: SWAP4
0000061f: DUP4
00000620: MSTORE
00000621: PUSH1 0x09
00000623: DUP3
00000624: MSTORE
00000625: DUP1
00000626: DUP4
00000627: KECCAK256
00000628: SWAP5
00000629: DUP4
0000062a: MSTORE
0000062b: SWAP4
0000062c: SWAP1
0000062d: MSTORE
0000062e: SWAP2
0000062f: SWAP1
00000630: SWAP2
00000631: KECCAK256
00000632: SLOAD
00000633: DUP4
00000634: ADD
00000635: GT
00000636: ISZERO
00000637: PUSH2 0x063f
0000063a: JUMPI
0000063b: PUSH2 0x0002
0000063e: JUMP
0000063f: JUMPDEST
00000640: PUSH1 0x01
00000642: PUSH1 0xa0
00000644: PUSH1 0x02
00000646: EXP
00000647: SUB
00000648: DUP5
00000649: DUP2
0000064a: AND
0000064b: PUSH1 0x00
0000064d: DUP2
0000064e: DUP2
0000064f: MSTORE
00000650: PUSH1 0x07
00000652: PUSH1 0x20
00000654: SWAP1
00000655: DUP2
00000656: MSTORE
00000657: PUSH1 0x40
00000659: DUP1
0000065a: DUP4
0000065b: KECCAK256
0000065c: DUP1
0000065d: SLOAD
0000065e: DUP9
0000065f: SWAP1
00000660: SUB
00000661: SWAP1
00000662: SSTORE
00000663: DUP8
00000664: DUP6
00000665: AND
00000666: DUP1
00000667: DUP5
00000668: MSTORE
00000669: DUP2
0000066a: DUP5
0000066b: KECCAK256
0000066c: DUP1
0000066d: SLOAD
0000066e: DUP10
0000066f: ADD
00000670: SWAP1
00000671: SSTORE
00000672: DUP5
00000673: DUP5
00000674: MSTORE
00000675: PUSH1 0x09
00000677: DUP4
00000678: MSTORE
00000679: DUP2
0000067a: DUP5
0000067b: KECCAK256
0000067c: CALLER
0000067d: SWAP1
0000067e: SWAP7
0000067f: AND
00000680: DUP5
00000681: MSTORE
00000682: SWAP5
00000683: DUP3
00000684: MSTORE
00000685: SWAP2
00000686: DUP3
00000687: SWAP1
00000688: KECCAK256
00000689: DUP1
0000068a: SLOAD
0000068b: DUP8
0000068c: ADD
0000068d: SWAP1
0000068e: SSTORE
0000068f: DUP2
00000690: MLOAD
00000691: DUP7
00000692: DUP2
00000693: MSTORE
00000694: SWAP2
00000695: MLOAD
00000696: PUSH1 0x00
00000698: DUP1
00000699: MLOAD
0000069a: PUSH1 0x20
0000069c: PUSH2 0x0937
0000069f: DUP4
000006a0: CODECOPY
000006a1: DUP2
000006a2: MLOAD
000006a3: SWAP2
000006a4: MSTORE
000006a5: SWAP3
000006a6: DUP2
000006a7: SWAP1
000006a8: SUB
000006a9: SWAP1
000006aa: SWAP2
000006ab: ADD
000006ac: SWAP1
000006ad: LOG3
000006ae: POP
000006af: PUSH1 0x01
000006b1: SWAP4
000006b2: SWAP3
000006b3: POP
000006b4: POP
000006b5: POP
000006b6: JUMP
000006b7: JUMPDEST
000006b8: PUSH1 0x06
000006ba: SSTORE
000006bb: JUMP
000006bc: JUMPDEST
000006bd: PUSH1 0x05
000006bf: DUP1
000006c0: SLOAD
000006c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006d6: NOT
000006d7: AND
000006d8: DUP3
000006d9: OR
000006da: SWAP1
000006db: SSTORE
000006dc: POP
000006dd: JUMP
000006de: JUMPDEST
000006df: PUSH1 0x40
000006e1: DUP1
000006e2: MLOAD
000006e3: NUMBER
000006e4: DUP2
000006e5: MSTORE
000006e6: TIMESTAMP
000006e7: PUSH1 0x20
000006e9: DUP3
000006ea: ADD
000006eb: MSTORE
000006ec: DUP1
000006ed: DUP3
000006ee: ADD
000006ef: DUP7
000006f0: SWAP1
000006f1: MSTORE
000006f2: SWAP1
000006f3: MLOAD
000006f4: SWAP1
000006f5: DUP2
000006f6: SWAP1
000006f7: SUB
000006f8: PUSH1 0x60
000006fa: ADD
000006fb: SWAP1
000006fc: KECCAK256
000006fd: PUSH2 0x0707
00000700: SWAP1
00000701: PUSH1 0x0a
00000703: PUSH2 0x01b7
00000706: JUMP
00000707: JUMPDEST
00000708: SWAP1
00000709: POP
0000070a: PUSH2 0x0200
0000070d: DUP2
0000070e: LT
0000070f: PUSH2 0x0719
00000712: JUMPI
00000713: PUSH1 0x64
00000715: DUP5
00000716: MUL
00000717: SWAP3
00000718: POP
00000719: JUMPDEST
0000071a: PUSH2 0x0200
0000071d: DUP2
0000071e: LT
0000071f: ISZERO
00000720: PUSH2 0x072b
00000723: JUMPI
00000724: PUSH2 0x2648
00000727: DUP5
00000728: MUL
00000729: SWAP3
0000072a: POP
0000072b: JUMPDEST
0000072c: CALLER
0000072d: PUSH1 0x01
0000072f: PUSH1 0xa0
00000731: PUSH1 0x02
00000733: EXP
00000734: SUB
00000735: SWAP1
00000736: DUP2
00000737: AND
00000738: PUSH1 0x00
0000073a: DUP2
0000073b: DUP2
0000073c: MSTORE
0000073d: PUSH1 0x07
0000073f: PUSH1 0x20
00000741: SWAP1
00000742: DUP2
00000743: MSTORE
00000744: PUSH1 0x40
00000746: DUP1
00000747: DUP4
00000748: KECCAK256
00000749: DUP1
0000074a: SLOAD
0000074b: DUP10
0000074c: ADD
0000074d: SWAP1
0000074e: SSTORE
0000074f: PUSH1 0x05
00000751: SLOAD
00000752: DUP6
00000753: AND
00000754: DUP4
00000755: MSTORE
00000756: DUP1
00000757: DUP4
00000758: KECCAK256
00000759: DUP1
0000075a: SLOAD
0000075b: PUSH4 0xffffffff
00000760: DUP10
00000761: AND
00000762: SWAP1
00000763: DUP2
00000764: ADD
00000765: SWAP1
00000766: SWAP2
00000767: SSTORE
00000768: ADDRESS
00000769: SWAP1
0000076a: SWAP6
0000076b: AND
0000076c: DUP1
0000076d: DUP5
0000076e: MSTORE
0000076f: SWAP3
00000770: DUP2
00000771: SWAP1
00000772: KECCAK256
00000773: DUP1
00000774: SLOAD
00000775: SWAP6
00000776: DUP10
00000777: ADD
00000778: SWAP1
00000779: SWAP6
0000077a: SUB
0000077b: SWAP1
0000077c: SWAP5
0000077d: SSTORE
0000077e: DUP4
0000077f: MLOAD
00000780: DUP8
00000781: DUP2
00000782: MSTORE
00000783: SWAP4
00000784: MLOAD
00000785: SWAP3
00000786: SWAP4
00000787: SWAP2
00000788: SWAP3
00000789: PUSH1 0x00
0000078b: DUP1
0000078c: MLOAD
0000078d: PUSH1 0x20
0000078f: PUSH2 0x0937
00000792: DUP4
00000793: CODECOPY
00000794: DUP2
00000795: MLOAD
00000796: SWAP2
00000797: MSTORE
00000798: SWAP3
00000799: DUP2
0000079a: SWAP1
0000079b: SUB
0000079c: SWAP1
0000079d: SWAP2
0000079e: ADD
0000079f: SWAP1
000007a0: LOG3
000007a1: PUSH1 0x05
000007a3: SLOAD
000007a4: PUSH1 0x40
000007a6: DUP1
000007a7: MLOAD
000007a8: PUSH4 0xffffffff
000007ad: DUP6
000007ae: AND
000007af: DUP2
000007b0: MSTORE
000007b1: SWAP1
000007b2: MLOAD
000007b3: PUSH1 0x01
000007b5: PUSH1 0xa0
000007b7: PUSH1 0x02
000007b9: EXP
000007ba: SUB
000007bb: SWAP3
000007bc: DUP4
000007bd: AND
000007be: SWAP3
000007bf: ADDRESS
000007c0: AND
000007c1: SWAP2
000007c2: PUSH1 0x00
000007c4: DUP1
000007c5: MLOAD
000007c6: PUSH1 0x20
000007c8: PUSH2 0x0937
000007cb: DUP4
000007cc: CODECOPY
000007cd: DUP2
000007ce: MLOAD
000007cf: SWAP2
000007d0: MSTORE
000007d1: SWAP2
000007d2: SWAP1
000007d3: DUP2
000007d4: SWAP1
000007d5: SUB
000007d6: PUSH1 0x20
000007d8: ADD
000007d9: SWAP1
000007da: LOG3
000007db: POP
000007dc: POP
000007dd: POP
000007de: SWAP1
000007df: JUMP
000007e0: JUMPDEST
000007e1: ADDRESS
000007e2: PUSH1 0x01
000007e4: PUSH1 0xa0
000007e6: PUSH1 0x02
000007e8: EXP
000007e9: SUB
000007ea: SWAP1
000007eb: DUP2
000007ec: AND
000007ed: PUSH1 0x00
000007ef: SWAP1
000007f0: DUP2
000007f1: MSTORE
000007f2: PUSH1 0x07
000007f4: PUSH1 0x20
000007f6: MSTORE
000007f7: PUSH1 0x40
000007f9: DUP1
000007fa: DUP3
000007fb: KECCAK256
000007fc: DUP1
000007fd: SLOAD
000007fe: DUP8
000007ff: ADD
00000800: SWAP1
00000801: SSTORE
00000802: CALLER
00000803: SWAP1
00000804: SWAP3
00000805: AND
00000806: DUP1
00000807: DUP3
00000808: MSTORE
00000809: DUP3
0000080a: DUP3
0000080b: KECCAK256
0000080c: DUP1
0000080d: SLOAD
0000080e: DUP8
0000080f: SWAP1
00000810: SUB
00000811: SWAP1
00000812: SSTORE
00000813: SWAP2
00000814: MLOAD
00000815: PUSH4 0xffffffff
0000081a: DUP5
0000081b: AND
0000081c: DUP7
0000081d: MUL
0000081e: SWAP5
0000081f: POP
00000820: DUP5
00000821: SWAP1
00000822: DUP3
00000823: DUP2
00000824: DUP2
00000825: DUP2
00000826: DUP6
00000827: DUP9
00000828: DUP4
00000829: CALL
0000082a: POP
0000082b: POP
0000082c: PUSH1 0x40
0000082e: DUP1
0000082f: MLOAD
00000830: DUP8
00000831: DUP2
00000832: MSTORE
00000833: SWAP1
00000834: MLOAD
00000835: ADDRESS
00000836: PUSH1 0x01
00000838: PUSH1 0xa0
0000083a: PUSH1 0x02
0000083c: EXP
0000083d: SUB
0000083e: AND
0000083f: SWAP5
00000840: SWAP4
00000841: POP
00000842: PUSH1 0x00
00000844: DUP1
00000845: MLOAD
00000846: PUSH1 0x20
00000848: PUSH2 0x0937
0000084b: DUP4
0000084c: CODECOPY
0000084d: DUP2
0000084e: MLOAD
0000084f: SWAP2
00000850: MSTORE
00000851: SWAP3
00000852: POP
00000853: SWAP1
00000854: DUP2
00000855: SWAP1
00000856: SUB
00000857: PUSH1 0x20
00000859: ADD
0000085a: SWAP1
0000085b: LOG3
0000085c: POP
0000085d: SWAP2
0000085e: SWAP1
0000085f: POP
00000860: JUMP
00000861: JUMPDEST
00000862: PUSH1 0x01
00000864: PUSH1 0xa0
00000866: PUSH1 0x02
00000868: EXP
00000869: SUB
0000086a: DUP3
0000086b: AND
0000086c: PUSH1 0x00
0000086e: SWAP1
0000086f: DUP2
00000870: MSTORE
00000871: PUSH1 0x07
00000873: PUSH1 0x20
00000875: MSTORE
00000876: PUSH1 0x40
00000878: SWAP1
00000879: KECCAK256
0000087a: SLOAD
0000087b: DUP2
0000087c: DUP2
0000087d: ADD
0000087e: LT
0000087f: ISZERO
00000880: PUSH2 0x0888
00000883: JUMPI
00000884: PUSH2 0x0002
00000887: JUMP
00000888: JUMPDEST
00000889: CALLER
0000088a: PUSH1 0x01
0000088c: PUSH1 0xa0
0000088e: PUSH1 0x02
00000890: EXP
00000891: SUB
00000892: SWAP1
00000893: DUP2
00000894: AND
00000895: PUSH1 0x00
00000897: DUP2
00000898: DUP2
00000899: MSTORE
0000089a: PUSH1 0x07
0000089c: PUSH1 0x20
0000089e: SWAP1
0000089f: DUP2
000008a0: MSTORE
000008a1: PUSH1 0x40
000008a3: DUP1
000008a4: DUP4
000008a5: KECCAK256
000008a6: DUP1
000008a7: SLOAD
000008a8: DUP8
000008a9: SWAP1
000008aa: SUB
000008ab: SWAP1
000008ac: SSTORE
000008ad: SWAP4
000008ae: DUP7
000008af: AND
000008b0: DUP1
000008b1: DUP4
000008b2: MSTORE
000008b3: SWAP2
000008b4: DUP5
000008b5: SWAP1
000008b6: KECCAK256
000008b7: DUP1
000008b8: SLOAD
000008b9: DUP7
000008ba: ADD
000008bb: SWAP1
000008bc: SSTORE
000008bd: DUP4
000008be: MLOAD
000008bf: DUP6
000008c0: DUP2
000008c1: MSTORE
000008c2: SWAP4
000008c3: MLOAD
000008c4: SWAP2
000008c5: SWAP4
000008c6: PUSH1 0x00
000008c8: DUP1
000008c9: MLOAD
000008ca: PUSH1 0x20
000008cc: PUSH2 0x0937
000008cf: DUP4
000008d0: CODECOPY
000008d1: DUP2
000008d2: MLOAD
000008d3: SWAP2
000008d4: MSTORE
000008d5: SWAP3
000008d6: SWAP1
000008d7: DUP2
000008d8: SWAP1
000008d9: SUB
000008da: SWAP1
000008db: SWAP2
000008dc: ADD
000008dd: SWAP1
000008de: LOG3
000008df: POP
000008e0: POP
000008e1: JUMP
000008e2: JUMPDEST
000008e3: PUSH1 0x00
000008e5: DUP1
000008e6: SLOAD
000008e7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008fc: NOT
000008fd: AND
000008fe: DUP3
000008ff: OR
00000900: SWAP1
00000901: SSTORE
00000902: POP
00000903: JUMP
00000904: JUMPDEST
00000905: DUP3
00000906: ADD
00000907: SWAP2
00000908: SWAP1
00000909: PUSH1 0x00
0000090b: MSTORE
0000090c: PUSH1 0x20
0000090e: PUSH1 0x00
00000910: KECCAK256
00000911: SWAP1
00000912: JUMPDEST
00000913: DUP2
00000914: SLOAD
00000915: DUP2
00000916: MSTORE
00000917: SWAP1
00000918: PUSH1 0x01
0000091a: ADD
0000091b: SWAP1
0000091c: PUSH1 0x20
0000091e: ADD
0000091f: DUP1
00000920: DUP4
00000921: GT
00000922: PUSH2 0x0912
00000925: JUMPI
00000926: DUP3
00000927: SWAP1
00000928: SUB
00000929: PUSH1 0x1f
0000092b: AND
0000092c: DUP3
0000092d: ADD
0000092e: SWAP2
0000092f: JUMPDEST
00000930: POP
00000931: POP
00000932: POP
00000933: POP
00000934: POP
00000935: DUP2
00000936: JUMP
00000937: UNKNOWN(0xDD)
00000938: CALLCODE
00000939: MSTORE
0000093a: UNKNOWN(0xAD)
0000093b: SHL
0000093c: UNKNOWN(0xE2)
0000093d: UNKNOWN(0xC8)
0000093e: SWAP12
0000093f: PUSH10 0xc2b068fc378daa952ba7
0000094a: CALL
0000094b: PUSH4 0xc4a11628
00000950: CREATE2
00000951: GAS
00000952: UNKNOWN(0x4D)
00000953: CREATE2
00000954: UNKNOWN(0x23)
00000955: UNKNOWN(0xB3)
00000956: UNKNOWN(0xEF)
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 detector Untrusted CALL target/value reachable 60 yes yes
view
trace_id: 0x660c0b29c9a4bf06d4bb1b723dbbea00b6be96e3e4cd3de8a6189de05924434c
call_targets: 0x0000000000000000000000000000000000000004, 0x2083ba165b902a02a6bf931287dfedd50a4ddd21
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x660c0b29c9a4bf06d4bb1b723dbbea00b6be96e3e4cd3de8a6189de05924434c",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000004",
        "0x2083ba165b902a02a6bf931287dfedd50a4ddd21"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1fe9eabc",
            "selector": "0x1fe9eabc",
            "calldata_variants": [
                "0x1fe9eabc",
                "0x1fe9eabc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23b872dd",
            "selector": "0x23b872dd",
            "calldata_variants": [
                "0x23b872dd",
                "0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x313ce567",
            "selector": "0x313ce567",
            "calldata_variants": [
                "0x313ce567",
                "0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41fa4876",
            "selector": "0x41fa4876",
            "calldata_variants": [
                "0x41fa4876",
                "0x41fa48760000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7f2a8a80",
            "selector": "0x7f2a8a80",
            "calldata_variants": [
                "0x7f2a8a80",
                "0x7f2a8a800000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1037,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1105,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1351,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 6,
    "guards_detected": [],
    "untrusted_call_count": 6
}
high other detector ETH value transfer possible 55 yes yes
view
trace_id: 0x660c0b29c9a4bf06d4bb1b723dbbea00b6be96e3e4cd3de8a6189de05924434c
call_targets: 0x0000000000000000000000000000000000000004, 0x2083ba165b902a02a6bf931287dfedd50a4ddd21
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x660c0b29c9a4bf06d4bb1b723dbbea00b6be96e3e4cd3de8a6189de05924434c",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000004",
        "0x2083ba165b902a02a6bf931287dfedd50a4ddd21"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1fe9eabc",
            "selector": "0x1fe9eabc",
            "calldata_variants": [
                "0x1fe9eabc",
                "0x1fe9eabc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23b872dd",
            "selector": "0x23b872dd",
            "calldata_variants": [
                "0x23b872dd",
                "0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x313ce567",
            "selector": "0x313ce567",
            "calldata_variants": [
                "0x313ce567",
                "0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41fa4876",
            "selector": "0x41fa4876",
            "calldata_variants": [
                "0x41fa4876",
                "0x41fa48760000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7f2a8a80",
            "selector": "0x7f2a8a80",
            "calldata_variants": [
                "0x7f2a8a80",
                "0x7f2a8a800000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1037,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1105,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1351,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 6,
    "guards_detected": []
}
high access_control codex Owner-controlled source address can redirect public token payouts to arbitrary holder balances 85 no
view
evidence_json
{
    "evidence": "`0x7f2a8a80` is owner-gated by the slot-0 owner check at pcs 548-564 and writes the provided address into slot 5 at pc 1724-1755. The public payable path `0xa6f2ae3a` jumps to pc 1758 after a value check, then increases the caller balance in slot 7 at pcs 1866-1870 and decreases the slot-5 balance at pcs 1873-1917. Transfer-like logging follows at pc 1952, consistent with a balance move from the slot-5 address to the caller. Because slot 5 is admin-settable, the debited account is admin-controlled rather than fixed.",
    "locations": [
        "selector:0x7f2a8a80",
        "selector:0xa6f2ae3a",
        "selector:0xff9b3acf",
        "pc:0x224",
        "pc:0x6bc",
        "pc:0x6de",
        "pc:0x74a",
        "pc:0x765",
        "pc:0x777",
        "pc:0x7a0"
    ],
    "recommendation": "Do not let an admin point payout/debit logic at arbitrary holder addresses. Hard-code the treasury/source to the contract itself or an immutable trusted pool, or require explicit allowance/authorization from the debited address before reducing its balance.",
    "exploit_scenario": "A privileged caller uses selector `0x7f2a8a80` to change storage slot 5 to a victim holder address. After that, any user can trigger the public payable path at `0xa6f2ae3a`; that path credits the caller's balance and debits the slot-5 address balance, effectively transferring tokens out of the victim account without that victim approving the transfer."
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x4dea1a53aad4cc7c9e7fc299baf736455d4e203ca0bcdd45c2417c3c4d80a26f
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x4dea1a53aad4cc7c9e7fc299baf736455d4e203ca0bcdd45c2417c3c4d80a26f",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1fe9eabc",
            "selector": "0x1fe9eabc",
            "calldata_variants": [
                "0x1fe9eabc",
                "0x1fe9eabc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23b872dd",
            "selector": "0x23b872dd",
            "calldata_variants": [
                "0x23b872dd",
                "0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x313ce567",
            "selector": "0x313ce567",
            "calldata_variants": [
                "0x313ce567",
                "0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x41fa4876",
            "selector": "0x41fa4876",
            "calldata_variants": [
                "0x41fa4876",
                "0x41fa48760000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7f2a8a80",
            "selector": "0x7f2a8a80",
            "calldata_variants": [
                "0x7f2a8a80",
                "0x7f2a8a800000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 0,
    "create2_count": 2
}
medium other codex `allowance()` appears to report the approved amount, not the remaining spendable amount 75 no
view
evidence_json
{
    "evidence": "The approval-like path at `0xcae9ca51` writes slot 8 at pc 912, then performs a `receiveApproval`-style callback. The standard allowance selector `0xdd62ed3e` reads slot 8 directly at pc 1191. But `transferFrom` (`0x23b872dd`) checks both slot 8 and a second nested mapping in slot 9: slot 8 is loaded around pc 1565, slot 9 is loaded around pc 1586, and slot 9 is incremented at pc 1678 instead of reducing slot 8. A separate getter `0xdc3080f2` reads slot 9 at pc 1154, which is consistent with a spent-allowance counter rather than standard remaining allowance accounting.",
    "locations": [
        "selector:0xcae9ca51",
        "selector:0x23b872dd",
        "selector:0xdd62ed3e",
        "selector:0xdc3080f2",
        "pc:0x390",
        "pc:0x462",
        "pc:0x633",
        "pc:0x64a",
        "pc:0x483",
        "pc:0x499"
    ],
    "recommendation": "Either implement standard ERC-20 allowance semantics by decrementing the allowance mapping on `transferFrom`, or have `allowance()` return `approved - spent` and reset the spent counter when approvals are refreshed.",
    "exploit_scenario": "A user approves a spender, the spender partially uses that approval through `transferFrom`, and off-chain/on-chain integrations then read `allowance()` and believe the full approved amount is still available. Subsequent transfers can revert unexpectedly because spending is tracked in a separate counter, creating integration failures and approval-renewal DoS patterns."
}
medium other codex Token-for-ETH payout path ignores CALL failure after moving balances 75 no
view
evidence_json
{
    "evidence": "`0xe4849b32` enters at pc 1198 and jumps to pc 2016 after a balance check. In that block, storage is updated before the external call: one slot-7 balance is increased at pc 2049 and another is decreased at pc 2066. The function then performs a value-carrying `CALL` at pc 2089 to a computed target consistent with the caller, and immediately `POP`s the result instead of branching on success. Execution continues to emit a Transfer-like log at pc 2139 and returns normally, so payout failure does not roll back the prior balance changes.",
    "locations": [
        "selector:0xe4849b32",
        "pc:0x7e0",
        "pc:0x801",
        "pc:0x812",
        "pc:0x829",
        "pc:0x85b"
    ],
    "recommendation": "Check the `CALL` return value and revert on failure, or switch to a pull-payment withdrawal pattern so token accounting is finalized only after a successful claim.",
    "exploit_scenario": "A caller invokes selector `0xe4849b32` through a contract wallet or fallback that reverts on ETH reception. The function first transfers tokens from the caller to the contract, then attempts an ETH payout via `CALL`, but it discards the return value. If the ETH transfer fails, the token movement still stands and the caller can lose tokens without receiving payment."
}