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

Analysis Run

019ba9e0-be1a-720c-aa5c-bb5b994622e9

complete
Chain ID
1
Address
Block Number
Created
Sat, Jan 10, 2026 9:47 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
0
Validated
0
Source
Bytecode only
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
38061 artifact.fetch complete 1 / 3 3 months ago
38062 proxy.resolve complete 1 / 3 3 months ago
38063 tool.cast_disasm complete 1 / 3 3 months ago
38064 analysis.bundle complete 1 / 3 3 months ago
38065 capability.graph complete 1 / 3 3 months ago
38066 detector.run complete 1 / 3 3 months ago
38067 validation.fork complete 1 / 3 3 months ago
38175 report.consolidate complete 1 / 6 3 months ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
3
No findings?
no
Summary
Bytecode shows multiple computed external CALLs (some with ETH value), a CALLCODE instruction in an unreachable-looking block, and SSTOREs to slot 0/0xdead without detected guards. Findings below are conservative due to bytecode-only visibility and heuristic guard detection.
View stdout
{"no_findings":false,"summary":"Bytecode shows multiple computed external CALLs (some with ETH value), a CALLCODE instruction in an unreachable-looking block, and SSTOREs to slot 0/0xdead without detected guards. Findings below are conservative due to bytecode-only visibility and heuristic guard detection.","findings":[{"severity":"medium","category":"reentrancy","title":"Computed external CALLs with value (untrusted target) enable arbitrary call/reentrancy risk","exploit_scenario":"If any public entrypoint allows a user-controlled target/value to reach these CALL sites, an attacker can direct ETH/token transfers or invoke a malicious contract that reenters before state is finalized. Detector validation saw a constant target in one trace, but it was not confirmed; if the target is not actually constant/whitelisted, this is exploitable.","recommendation":"Constrain external call targets to fixed/allowlisted addresses, gate call paths with explicit access control, and add a reentrancy guard around state-changing flows that perform external calls. Where possible, prefer pull-based payouts over push-based ETH transfers.","evidence":"callsites list shows CALL with target_expression_category/value_expression_category = computed and returndata_checked = null at pc 494, 654, 1926, 2279, 3052, 3266, 3913; detector findings flagged \"Untrusted CALL target/value reachable\" and \"ETH value transfer possible\" with no guards detected.","locations":["pc:0x1ee","pc:0x28e","pc:0x786","pc:0x8e7","pc:0xbec","pc:0xcc2","pc:0xf49"]},{"severity":"low","category":"upgradeability","title":"CALLCODE present with computed target (delegatecall-like semantics)","exploit_scenario":"If reachable, CALLCODE executes external code in the caller’s storage context, enabling full state corruption or asset theft when the target can be influenced. The CFG shows no edges to the block containing CALLCODE, so it may be unreachable metadata; verify reachability.","recommendation":"Ensure the CALLCODE site is unreachable or remove it. If intentional proxy-like behavior exists, replace with DELEGATECALL and enforce strict access control and implementation validation (code size/allowlist) and emit upgrade events.","evidence":"callsites list includes opcode CALLCODE at pc 6266 with computed target/value; basic block 6257–6323 contains CALLCODE but CFG has no inbound/outbound edges (likely unreachable).","locations":["pc:0x187a"]},{"severity":"low","category":"access_control","title":"State slots 0 and 0xdead written without detected guards","exploit_scenario":"If an external function can reach the block at pc 705, it writes to slot 0 and slot 0xdead. If these slots represent owner/admin/flags, an attacker could reset privileged state or break invariants. Guard detection is heuristic, so this may be protected elsewhere.","recommendation":"Confirm the write path is restricted to authorized callers; add explicit access control checks and events for administrative state changes. If these slots are not privileged, consider documenting their role to aid auditors.","evidence":"storage analysis shows SSTORE at pc 709 (slot 0x0) and pc 715 (slot 0x…dead); auth.guards is empty across functions.","locations":["pc:0x2c5","pc:0x2cb"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-5hfh8pcs
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019baa65-e6ee-78e0-a00a-880954213ed6
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.

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

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

Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers

thinking
**Searching for BYTECODE_BUNDLE.json**
exec
/bin/bash -lc ls in /tmp/codex-5hfh8pcs succeeded in 8ms:
BYTECODE_BUNDLE.json
codex-output-schema.json

thinking
**Reading file contents**
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-5hfh8pcs succeeded in 35ms:
{
  "analysis_artifact": {
    "address": "0xf542a254b5deef1583d2904be9a6477d89d8f1aa",
    "artifact_hash": "0x4708a50a3352cafa821a721e4324b3135add659f0f0131642f481b35f2e997ec",
    "artifact_json": {
      "auth": {
        "guards": []
      },
      "basic_blocks": [
        {
          "end_pc": 12,
          "hash": "0x5a70f167cb74890329844757d35d65835803530077819a2247305056849a15e5",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "CALLDATASIZE",
            "LT",
            "PUSH2",

thinking
**Searching for storage evidence**
exec
/bin/bash -lc 'rg -n "storage|slot|evidence|proxy|delegatecall|callcode|selector|function" BYTECODE_BUNDLE.json | head -n 200' in /tmp/codex-5hfh8pcs succeeded in 8ms:
9783:      "dispatcher_type": "selector_jump_table",
9784:      "function_entries": [
9787:          "selector": "0xa9212b5b"
9791:          "selector": "0xb59b1176"
9795:          "selector": "0xb66437a5"
9799:          "selector": "0xd0e30db0"
9803:          "selector": "0xd547741f"
9807:          "selector": "0xffa1ad74"
9811:          "selector": "0x72c6838f"
9815:          "selector": "0x75b238fc"
9819:          "selector": "0x91d14854"
9823:          "selector": "0x9e281a98"
9827:          "selector": "0xa217fddf"
9831:          "selector": "0x2f2ff15d"
9835:          "selector": "0x338b5dea"
9839:          "selector": "0x36568abe"
9843:          "selector": "0x5ec181fb"
9847:          "selector": "0x6c665a55"
9851:          "selector": "0x01ffc9a7"
9855:          "selector": "0x02a882e6"

thinking
**Investigating callcode usage and evidence**
exec
/bin/bash -lc 'rg -n "callsite|callsites|evidence|storage" BYTECODE_BUNDLE.json | head -n 200' in /tmp/codex-5hfh8pcs succeeded in 11ms:
7401:      "callsites": [
9887:          "storage": {
9936:          "storage": {
9985:          "storage": {
10034:          "storage": {
10083:          "storage": {
10132:          "storage": {
10181:          "storage": {
10230:          "storage": {
10279:          "storage": {
10328:          "storage": {
10377:          "storage": {
10426:          "storage": {
10475:          "storage": {
10524:          "storage": {
10573:          "storage": {
10622:          "storage": {
10671:          "storage": {
10720:          "storage": {
10769:          "storage": {

thinking
**Checking callsites and proxies**
exec
/bin/bash -lc "sed -n '7380,7465p' BYTECODE_BUNDLE.json" in /tmp/codex-5hfh8pcs succeeded in 33ms:
          "start_pc": 6257
        },
        {
          "end_pc": 6326,
          "hash": "0x2883aa05905b6cb90a0cd720878ebb50da3e80574d26aa70af72000515c3a77c",
          "opcodes": [
            "ADDMOD",
            "BYTE",
            "STOP"
          ],
          "start_pc": 6324
        },
        {
          "end_pc": 6327,
          "hash": "0x50e47b1a0a6fadc11b694941c1eb8d32eea8b12995e62d9d759dc839ba7f16af",
          "opcodes": [
            "CALLER"
          ],
          "start_pc": 6327
        }
exec
/bin/bash -lc "sed -n '7465,7545p' BYTECODE_BUNDLE.json" in /tmp/codex-5hfh8pcs succeeded in 8ms:
        {
          "opcode": "CALL",
          "pc": 3913,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALLCODE",
          "pc": 6266,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        }
      ],
      "cfg_edges": [
        {
          "from": "bb:0",
          "to": "bb:301",
          "type": "control_flow"

thinking
**Reviewing code around line 11058**
exec
/bin/bash -lc "sed -n '10960,11140p' BYTECODE_BUNDLE.json" in /tmp/codex-5hfh8pcs succeeded in 17ms:
        "0xffa1ad74",
        "0x72c6838f",
        "0x75b238fc",
        "0x91d14854",
        "0x9e281a98",
        "0xa217fddf",
        "0x2f2ff15d",
        "0x338b5dea",
        "0x36568abe",
        "0x5ec181fb",
        "0x6c665a55",
        "0x01ffc9a7",
        "0x02a882e6",
        "0x1bad19d9",
        "0x248a9ca3",
        "0x2e1a7d4d",
        "0x7965db0b"
      ],
      "sinks": {
        "call": 8,

thinking
**Analyzing bytecode selectors and call patterns**
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
path=Path('/tmp/codex-5hfh8pcs/BYTECODE_BUNDLE.json')
data=json.loads(path.read_text())
# basic blocks from analysis_artifact.artifact_json
bbs=data['analysis_artifact']['artifact_json']['basic_blocks']
# find block containing pc 6266 and 494 etc
pcs=[494,654,1926,2279,3052,3266,3913,6266]
for pc in pcs:
    bb=None
    for b in bbs:
        if b['start_pc']<=pc<=b['end_pc']:
            bb=b
            break
    print('pc',pc,'bb',bb['start_pc'] if bb else None,bb['end_pc'] if bb else None, 'opcodes', bb['opcodes'][:20] if bb else None)
PY" in /tmp/codex-5hfh8pcs succeeded in 36ms:
pc 494 bb 491 501 opcodes ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 654 bb 641 661 opcodes ['JUMPDEST', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'PUSH0', 'OP_87', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 1926 bb 1923 1933 opcodes ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 2279 bb 2276 2286 opcodes ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 3052 bb 3049 3059 opcodes ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 3266 bb 3254 3279 opcodes ['JUMPDEST', 'PUSH0', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_85', 'OP_87', 'GAS', 'CALL', 'OP_92', 'POP', 'POP', 'POP', 'RETURNDATASIZE', 'OP_80', 'PUSH0', 'OP_81']
pc 3913 bb 3898 3918 opcodes ['JUMPDEST', 'PUSH0', 'OP_80', 'PUSH1', 'PUSH0', 'OP_84', 'MLOAD', 'PUSH1', 'OP_86', 'ADD', 'PUSH0', 'OP_88', 'GAS', 'CALL', 'OP_80', 'PUSH2', 'JUMPI']
pc 6266 bb 6257 6323 opcodes ['PUSH5', 'OP_C3', 'OP_87', 'OP_1E', 'CALLCODE', 'CALLDATALOAD', 'CHAINID', 'OP_DB', 'OP_26', 'OP_22', 'OP_25', 'OP_88', 'PUSH18', 'OP_94', 'ADDMOD', 'SDIV', 'ADD', 'OP_D3', 'OP_ED', 'OP_9E']

thinking
**Investigating suspicious bytecode region**
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
path=Path('/tmp/codex-5hfh8pcs/BYTECODE_BUNDLE.json')
data=json.loads(path.read_text())
edges=data['analysis_artifact']['artifact_json'].get('cfg_edges') or data['capability_graph']['graph_json'].get('edges')
# find if any edge to bb:6257 or bb:6257 is in edges
edge_to=[]
edge_from=[]
for e in edges:
    if e['to']=='bb:6257': edge_to.append(e)
    if e['from']=='bb:6257': edge_from.append(e)
print('edges to bb:6257',len(edge_to))
print('edges from bb:6257',len(edge_from))
if edge_to[:5]: print('sample to',edge_to[:5])
if edge_from[:5]: print('sample from',edge_from[:5])
PY" in /tmp/codex-5hfh8pcs succeeded in 32ms:
edges to bb:6257 0
edges from bb:6257 0

thinking
**Analyzing external calls and potential risks**

I'm inspecting external calls in the reachable code to assess possible reentrancy or untrusted call risks, checking opcode patterns for success checks on token transfers. The CALLCODE instruction appears unreachable but still flagged with computed parameters, so I'll treat it cautiously as low severity. I'll also consider missing access controls and ETH value transfers, parsing function and callsite data to better understand security implications.
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
path=Path('/tmp/codex-5hfh8pcs/BYTECODE_BUNDLE.json')
data=json.loads(path.read_text())
funcs=data['analysis_artifact']['artifact_json'].get('functions')
print('functions',len(funcs))
# For each function, show selector and if callsites? maybe there is summary in function object? let's inspect keys
print('function keys',funcs[0].keys())
# find functions with call_count or external calls
for f in funcs:
    sel=f.get('selector')
    calls=f.get('calls',None) or f.get('external_calls',None) or f.get('call')
    # there may be summary in f['sinks'] etc
    if 'sinks' in f and (f['sinks'].get('call') or f['sinks'].get('delegatecall') or f['sinks'].get('callcode')):
        print(sel,'sinks',f['sinks'])
PY" in /tmp/codex-5hfh8pcs succeeded in 91ms:
functions 22
function keys dict_keys(['auth', 'entry_pc', 'selector', 'sinks', 'storage'])
0xa9212b5b sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0xb59b1176 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0xb66437a5 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0xd0e30db0 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0xd547741f sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0xffa1ad74 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x72c6838f sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x75b238fc sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x91d14854 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x9e281a98 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0xa217fddf sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x2f2ff15d sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x338b5dea sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x36568abe sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x5ec181fb sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x6c665a55 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x01ffc9a7 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x02a882e6 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}

thinking
**Checking function auth guards**
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
path=Path('/tmp/codex-5hfh8pcs/BYTECODE_BUNDLE.json')
data=json.loads(path.read_text())
funcs=data['analysis_artifact']['artifact_json']['functions']
for f in funcs:
    if f.get('auth',{}).get('guards'):
        print(f['selector'],f['auth'])
PY" in /tmp/codex-5hfh8pcs succeeded in 83ms:


thinking
**Analyzing contract calls and storage risks**
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
path=Path('/tmp/codex-5hfh8pcs/BYTECODE_BUNDLE.json')
data=json.loads(path.read_text())
bbs=data['analysis_artifact']['artifact_json']['basic_blocks']
# find block containing pc 709 and 715
for pc in [709,715]:
    bb=None
    for b in bbs:
        if b['start_pc']<=pc<=b['end_pc']:
            bb=b
            break
    print('pc',pc,'bb',bb['start_pc'],bb['end_pc'],bb['opcodes'])
PY" in /tmp/codex-5hfh8pcs succeeded in 45ms:
pc 709 bb 705 728 ['JUMPDEST', 'PUSH0', 'PUSH1', 'SSTORE', 'PUSH2', 'PUSH1', 'SSTORE', 'OP_90', 'POP', 'PUSH2', 'OP_8A', 'OP_86', 'OP_83', 'OP_85', 'PUSH2', 'JUMP']
pc 715 bb 705 728 ['JUMPDEST', 'PUSH0', 'PUSH1', 'SSTORE', 'PUSH2', 'PUSH1', 'SSTORE', 'OP_90', 'POP', 'PUSH2', 'OP_8A', 'OP_86', 'OP_83', 'OP_85', 'PUSH2', 'JUMP']

thinking
**Analyzing storage writes and external call risks**

I’m piecing together how SSTORE instructions write to storage slots 0 and 0xdead, likely resetting state but without clear access control in the bytecode fragment. I’m also considering external calls with computed targets and ETH value transfers flagged by detectors, weighing risk severity amid some uncertainty about access guards and call target constants, while noting a potentially unreachable CALLCODE use linked to upgradeability risks. I want to summarize these findings clearly, referencing program counters in hex and emphasizing the caution around unprotected storage resets and external calls.
exec
/bin/bash -lc "python - <<'PY'
pcs=[494,654,1926,2279,3052,3266,3913,6266,709,715]
for pc in pcs:
    print(pc,hex(pc))
PY" in /tmp/codex-5hfh8pcs succeeded in 50ms:
494 0x1ee
654 0x28e
1926 0x786
2279 0x8e7
3052 0xbec
3266 0xcc2
3913 0xf49
6266 0x187a
709 0x2c5
715 0x2cb

thinking
**Preparing detailed security findings JSON**
codex
{"no_findings":false,"summary":"Bytecode shows multiple computed external CALLs (some with ETH value), a CALLCODE instruction in an unreachable-looking block, and SSTOREs to slot 0/0xdead without detected guards. Findings below are conservative due to bytecode-only visibility and heuristic guard detection.","findings":[{"severity":"medium","category":"reentrancy","title":"Computed external CALLs with value (untrusted target) enable arbitrary call/reentrancy risk","exploit_scenario":"If any public entrypoint allows a user-controlled target/value to reach these CALL sites, an attacker can direct ETH/token transfers or invoke a malicious contract that reenters before state is finalized. Detector validation saw a constant target in one trace, but it was not confirmed; if the target is not actually constant/whitelisted, this is exploitable.","recommendation":"Constrain external call targets to fixed/allowlisted addresses, gate call paths with explicit access control, and add a reentrancy guard around state-changing flows that perform external calls. Where possible, prefer pull-based payouts over push-based ETH transfers.","evidence":"callsites list shows CALL with target_expression_category/value_expression_category = computed and returndata_checked = null at pc 494, 654, 1926, 2279, 3052, 3266, 3913; detector findings flagged \"Untrusted CALL target/value reachable\" and \"ETH value transfer possible\" with no guards detected.","locations":["pc:0x1ee","pc:0x28e","pc:0x786","pc:0x8e7","pc:0xbec","pc:0xcc2","pc:0xf49"]},{"severity":"low","category":"upgradeability","title":"CALLCODE present with computed target (delegatecall-like semantics)","exploit_scenario":"If reachable, CALLCODE executes external code in the caller’s storage context, enabling full state corruption or asset theft when the target can be influenced. The CFG shows no edges to the block containing CALLCODE, so it may be unreachable metadata; verify reachability.","recommendation":"Ensure the CALLCODE site is unreachable or remove it. If intentional proxy-like behavior exists, replace with DELEGATECALL and enforce strict access control and implementation validation (code size/allowlist) and emit upgrade events.","evidence":"callsites list includes opcode CALLCODE at pc 6266 with computed target/value; basic block 6257–6323 contains CALLCODE but CFG has no inbound/outbound edges (likely unreachable).","locations":["pc:0x187a"]},{"severity":"low","category":"access_control","title":"State slots 0 and 0xdead written without detected guards","exploit_scenario":"If an external function can reach the block at pc 705, it writes to slot 0 and slot 0xdead. If these slots represent owner/admin/flags, an attacker could reset privileged state or break invariants. Guard detection is heuristic, so this may be protected elsewhere.","recommendation":"Confirm the write path is restricted to authorized callers; add explicit access control checks and events for administrative state changes. If these slots are not privileged, consider documenting their role to aid auditors.","evidence":"storage analysis shows SSTORE at pc 709 (slot 0x0) and pc 715 (slot 0x…dead); auth.guards is empty across functions.","locations":["pc:0x2c5","pc:0x2cb"]}]}
tokens used
50,727
Metadata
{
    "codex": {
        "ran_at": "2026-01-11T00:15:30.483146+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 12658,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Bytecode shows multiple computed external CALLs (some with ETH value), a CALLCODE instruction in an unreachable-looking block, and SSTOREs to slot 0/0xdead without detected guards. Findings below are conservative due to bytecode-only visibility and heuristic guard detection.",
    "raw_final": {
        "summary": "Bytecode shows multiple computed external CALLs (some with ETH value), a CALLCODE instruction in an unreachable-looking block, and SSTOREs to slot 0/0xdead without detected guards. Findings below are conservative due to bytecode-only visibility and heuristic guard detection.",
        "findings": [
            {
                "title": "Computed external CALLs with value (untrusted target) enable arbitrary call/reentrancy risk",
                "category": "reentrancy",
                "evidence": "callsites list shows CALL with target_expression_category/value_expression_category = computed and returndata_checked = null at pc 494, 654, 1926, 2279, 3052, 3266, 3913; detector findings flagged \"Untrusted CALL target/value reachable\" and \"ETH value transfer possible\" with no guards detected.",
                "severity": "medium",
                "locations": [
                    "pc:0x1ee",
                    "pc:0x28e",
                    "pc:0x786",
                    "pc:0x8e7",
                    "pc:0xbec",
                    "pc:0xcc2",
                    "pc:0xf49"
                ],
                "recommendation": "Constrain external call targets to fixed/allowlisted addresses, gate call paths with explicit access control, and add a reentrancy guard around state-changing flows that perform external calls. Where possible, prefer pull-based payouts over push-based ETH transfers.",
                "exploit_scenario": "If any public entrypoint allows a user-controlled target/value to reach these CALL sites, an attacker can direct ETH/token transfers or invoke a malicious contract that reenters before state is finalized. Detector validation saw a constant target in one trace, but it was not confirmed; if the target is not actually constant/whitelisted, this is exploitable."
            },
            {
                "title": "CALLCODE present with computed target (delegatecall-like semantics)",
                "category": "upgradeability",
                "evidence": "callsites list includes opcode CALLCODE at pc 6266 with computed target/value; basic block 6257\u20136323 contains CALLCODE but CFG has no inbound/outbound edges (likely unreachable).",
                "severity": "low",
                "locations": [
                    "pc:0x187a"
                ],
                "recommendation": "Ensure the CALLCODE site is unreachable or remove it. If intentional proxy-like behavior exists, replace with DELEGATECALL and enforce strict access control and implementation validation (code size/allowlist) and emit upgrade events.",
                "exploit_scenario": "If reachable, CALLCODE executes external code in the caller\u2019s storage context, enabling full state corruption or asset theft when the target can be influenced. The CFG shows no edges to the block containing CALLCODE, so it may be unreachable metadata; verify reachability."
            },
            {
                "title": "State slots 0 and 0xdead written without detected guards",
                "category": "access_control",
                "evidence": "storage analysis shows SSTORE at pc 709 (slot 0x0) and pc 715 (slot 0x\u2026dead); auth.guards is empty across functions.",
                "severity": "low",
                "locations": [
                    "pc:0x2c5",
                    "pc:0x2cb"
                ],
                "recommendation": "Confirm the write path is restricted to authorized callers; add explicit access control checks and events for administrative state changes. If these slots are not privileged, consider documenting their role to aid auditors.",
                "exploit_scenario": "If an external function can reach the block at pc 705, it writes to slot 0 and slot 0xdead. If these slots represent owner/admin/flags, an attacker could reset privileged state or break invariants. Guard detection is heuristic, so this may be protected elsewhere."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
11
EXT*/BALANCE
7
Total opcodes
4198
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x012d
0000000c: JUMPI
0000000d: PUSH0
0000000e: CALLDATALOAD
0000000f: PUSH1 0xe0
00000011: SHR
00000012: DUP1
00000013: PUSH4 0x72c6838f
00000018: GT
00000019: PUSH2 0x00aa
0000001c: JUMPI
0000001d: DUP1
0000001e: PUSH4 0xa9212b5b
00000023: GT
00000024: PUSH2 0x006e
00000027: JUMPI
00000028: DUP1
00000029: PUSH4 0xa9212b5b
0000002e: EQ
0000002f: PUSH2 0x04d6
00000032: JUMPI
00000033: DUP1
00000034: PUSH4 0xb59b1176
00000039: EQ
0000003a: PUSH2 0x04f5
0000003d: JUMPI
0000003e: DUP1
0000003f: PUSH4 0xb66437a5
00000044: EQ
00000045: PUSH2 0x0514
00000048: JUMPI
00000049: DUP1
0000004a: PUSH4 0xd0e30db0
0000004f: EQ
00000050: PUSH2 0x0547
00000053: JUMPI
00000054: DUP1
00000055: PUSH4 0xd547741f
0000005a: EQ
0000005b: PUSH2 0x054f
0000005e: JUMPI
0000005f: DUP1
00000060: PUSH4 0xffa1ad74
00000065: EQ
00000066: PUSH2 0x056e
00000069: JUMPI
0000006a: PUSH2 0x0134
0000006d: JUMP
0000006e: JUMPDEST
0000006f: DUP1
00000070: PUSH4 0x72c6838f
00000075: EQ
00000076: PUSH2 0x0444
00000079: JUMPI
0000007a: DUP1
0000007b: PUSH4 0x75b238fc
00000080: EQ
00000081: PUSH2 0x0485
00000084: JUMPI
00000085: DUP1
00000086: PUSH4 0x91d14854
0000008b: EQ
0000008c: PUSH2 0x0498
0000008f: JUMPI
00000090: DUP1
00000091: PUSH4 0x9e281a98
00000096: EQ
00000097: PUSH2 0x04b7
0000009a: JUMPI
0000009b: DUP1
0000009c: PUSH4 0xa217fddf
000000a1: EQ
000000a2: PUSH2 0x0485
000000a5: JUMPI
000000a6: PUSH2 0x0134
000000a9: JUMP
000000aa: JUMPDEST
000000ab: DUP1
000000ac: PUSH4 0x2f2ff15d
000000b1: GT
000000b2: PUSH2 0x00f1
000000b5: JUMPI
000000b6: DUP1
000000b7: PUSH4 0x2f2ff15d
000000bc: EQ
000000bd: PUSH2 0x03a9
000000c0: JUMPI
000000c1: DUP1
000000c2: PUSH4 0x338b5dea
000000c7: EQ
000000c8: PUSH2 0x03c8
000000cb: JUMPI
000000cc: DUP1
000000cd: PUSH4 0x36568abe
000000d2: EQ
000000d3: PUSH2 0x03e7
000000d6: JUMPI
000000d7: DUP1
000000d8: PUSH4 0x5ec181fb
000000dd: EQ
000000de: PUSH2 0x0406
000000e1: JUMPI
000000e2: DUP1
000000e3: PUSH4 0x6c665a55
000000e8: EQ
000000e9: PUSH2 0x0425
000000ec: JUMPI
000000ed: PUSH2 0x0134
000000f0: JUMP
000000f1: JUMPDEST
000000f2: DUP1
000000f3: PUSH4 0x01ffc9a7
000000f8: EQ
000000f9: PUSH2 0x02db
000000fc: JUMPI
000000fd: DUP1
000000fe: PUSH4 0x02a882e6
00000103: EQ
00000104: PUSH2 0x0310
00000107: JUMPI
00000108: DUP1
00000109: PUSH4 0x1bad19d9
0000010e: EQ
0000010f: PUSH2 0x033d
00000112: JUMPI
00000113: DUP1
00000114: PUSH4 0x248a9ca3
00000119: EQ
0000011a: PUSH2 0x035c
0000011d: JUMPI
0000011e: DUP1
0000011f: PUSH4 0x2e1a7d4d
00000124: EQ
00000125: PUSH2 0x038a
00000128: JUMPI
00000129: PUSH2 0x0134
0000012c: JUMP
0000012d: JUMPDEST
0000012e: CALLDATASIZE
0000012f: PUSH2 0x0134
00000132: JUMPI
00000133: STOP
00000134: JUMPDEST
00000135: PUSH2 0x015d
00000138: PUSH32 0xcad6d1a2298b8fe675ee5c5b6ae9e25f35e079d7c862db237f1f20200f9ea442
00000159: PUSH2 0x0582
0000015c: JUMP
0000015d: JUMPDEST
0000015e: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
0000017f: PUSH0
00000180: DUP1
00000181: DUP1
00000182: DUP1
00000183: DUP1
00000184: DUP1
00000185: PUSH2 0x0191
00000188: CALLDATASIZE
00000189: PUSH1 0x04
0000018b: DUP2
0000018c: DUP5
0000018d: PUSH2 0x0f9d
00000190: JUMP
00000191: JUMPDEST
00000192: DUP2
00000193: ADD
00000194: SWAP1
00000195: PUSH2 0x019e
00000198: SWAP2
00000199: SWAP1
0000019a: PUSH2 0x1307
0000019d: JUMP
0000019e: JUMPDEST
0000019f: SWAP6
000001a0: POP
000001a1: SWAP6
000001a2: POP
000001a3: SWAP6
000001a4: POP
000001a5: SWAP6
000001a6: POP
000001a7: SWAP6
000001a8: POP
000001a9: SWAP6
000001aa: POP
000001ab: PUSH0
000001ac: CALLVALUE
000001ad: GT
000001ae: ISZERO
000001af: PUSH2 0x0203
000001b2: JUMPI
000001b3: DUP7
000001b4: PUSH1 0x01
000001b6: PUSH1 0x01
000001b8: PUSH1 0xa0
000001ba: SHL
000001bb: SUB
000001bc: AND
000001bd: PUSH4 0xd0e30db0
000001c2: CALLVALUE
000001c3: PUSH1 0x40
000001c5: MLOAD
000001c6: DUP3
000001c7: PUSH4 0xffffffff
000001cc: AND
000001cd: PUSH1 0xe0
000001cf: SHL
000001d0: DUP2
000001d1: MSTORE
000001d2: PUSH1 0x04
000001d4: ADD
000001d5: PUSH0
000001d6: PUSH1 0x40
000001d8: MLOAD
000001d9: DUP1
000001da: DUP4
000001db: SUB
000001dc: DUP2
000001dd: DUP6
000001de: DUP9
000001df: DUP1
000001e0: EXTCODESIZE
000001e1: ISZERO
000001e2: DUP1
000001e3: ISZERO
000001e4: PUSH2 0x01eb
000001e7: JUMPI
000001e8: PUSH0
000001e9: DUP1
000001ea: REVERT
000001eb: JUMPDEST
000001ec: POP
000001ed: GAS
000001ee: CALL
000001ef: ISZERO
000001f0: DUP1
000001f1: ISZERO
000001f2: PUSH2 0x01fd
000001f5: JUMPI
000001f6: RETURNDATASIZE
000001f7: PUSH0
000001f8: DUP1
000001f9: RETURNDATACOPY
000001fa: RETURNDATASIZE
000001fb: PUSH0
000001fc: REVERT
000001fd: JUMPDEST
000001fe: POP
000001ff: POP
00000200: POP
00000201: POP
00000202: POP
00000203: JUMPDEST
00000204: PUSH0
00000205: PUSH2 0x020d
00000208: DUP8
00000209: PUSH2 0x058f
0000020c: JUMP
0000020d: JUMPDEST
0000020e: DUP6
0000020f: MLOAD
00000210: SWAP1
00000211: SWAP2
00000212: POP
00000213: PUSH2 0x021c
00000216: DUP8
00000217: DUP7
00000218: PUSH2 0x05d4
0000021b: JUMP
0000021c: JUMPDEST
0000021d: PUSH2 0x0225
00000220: DUP8
00000221: PUSH2 0x06bb
00000224: JUMP
00000225: JUMPDEST
00000226: PUSH1 0x01
00000228: PUSH1 0x01
0000022a: PUSH1 0xa0
0000022c: SHL
0000022d: SUB
0000022e: AND
0000022f: PUSH1 0x01
00000231: SWAP1
00000232: DUP2
00000233: SSTORE
00000234: PUSH2 0x023e
00000237: SWAP1
00000238: DUP3
00000239: SWAP1
0000023a: PUSH2 0x13f1
0000023d: JUMP
0000023e: JUMPDEST
0000023f: DUP6
00000240: MLOAD
00000241: PUSH2 0x024a
00000244: SWAP2
00000245: SWAP1
00000246: PUSH2 0x1404
00000249: JUMP
0000024a: JUMPDEST
0000024b: PUSH1 0x02
0000024d: SSTORE
0000024e: PUSH1 0x40
00000250: MLOAD
00000251: PUSH4 0x0d553a53
00000256: PUSH1 0xe4
00000258: SHL
00000259: DUP2
0000025a: MSTORE
0000025b: PUSH0
0000025c: SWAP1
0000025d: PUSH1 0x01
0000025f: PUSH1 0x01
00000261: PUSH1 0xa0
00000263: SHL
00000264: SUB
00000265: DUP5
00000266: AND
00000267: SWAP1
00000268: PUSH4 0xd553a530
0000026d: SWAP1
0000026e: PUSH2 0x0281
00000271: SWAP1
00000272: DUP12
00000273: SWAP1
00000274: DUP12
00000275: SWAP1
00000276: DUP12
00000277: SWAP1
00000278: DUP11
00000279: SWAP1
0000027a: PUSH1 0x04
0000027c: ADD
0000027d: PUSH2 0x15a0
00000280: JUMP
00000281: JUMPDEST
00000282: PUSH1 0x20
00000284: PUSH1 0x40
00000286: MLOAD
00000287: DUP1
00000288: DUP4
00000289: SUB
0000028a: DUP2
0000028b: PUSH0
0000028c: DUP8
0000028d: GAS
0000028e: CALL
0000028f: ISZERO
00000290: DUP1
00000291: ISZERO
00000292: PUSH2 0x029d
00000295: JUMPI
00000296: RETURNDATASIZE
00000297: PUSH0
00000298: DUP1
00000299: RETURNDATACOPY
0000029a: RETURNDATASIZE
0000029b: PUSH0
0000029c: REVERT
0000029d: JUMPDEST
0000029e: POP
0000029f: POP
000002a0: POP
000002a1: POP
000002a2: PUSH1 0x40
000002a4: MLOAD
000002a5: RETURNDATASIZE
000002a6: PUSH1 0x1f
000002a8: NOT
000002a9: PUSH1 0x1f
000002ab: DUP3
000002ac: ADD
000002ad: AND
000002ae: DUP3
000002af: ADD
000002b0: DUP1
000002b1: PUSH1 0x40
000002b3: MSTORE
000002b4: POP
000002b5: DUP2
000002b6: ADD
000002b7: SWAP1
000002b8: PUSH2 0x02c1
000002bb: SWAP2
000002bc: SWAP1
000002bd: PUSH2 0x15fd
000002c0: JUMP
000002c1: JUMPDEST
000002c2: PUSH0
000002c3: PUSH1 0x02
000002c5: SSTORE
000002c6: PUSH2 0xdead
000002c9: PUSH1 0x01
000002cb: SSTORE
000002cc: SWAP1
000002cd: POP
000002ce: PUSH2 0x02d9
000002d1: DUP11
000002d2: DUP7
000002d3: DUP4
000002d4: DUP6
000002d5: PUSH2 0x06d0
000002d8: JUMP
000002d9: JUMPDEST
000002da: STOP
000002db: JUMPDEST
000002dc: CALLVALUE
000002dd: DUP1
000002de: ISZERO
000002df: PUSH2 0x02e6
000002e2: JUMPI
000002e3: PUSH0
000002e4: DUP1
000002e5: REVERT
000002e6: JUMPDEST
000002e7: POP
000002e8: PUSH2 0x02fa
000002eb: PUSH2 0x02f5
000002ee: CALLDATASIZE
000002ef: PUSH1 0x04
000002f1: PUSH2 0x1636
000002f4: JUMP
000002f5: JUMPDEST
000002f6: PUSH2 0x07ab
000002f9: JUMP
000002fa: JUMPDEST
000002fb: PUSH1 0x40
000002fd: MLOAD
000002fe: PUSH2 0x0307
00000301: SWAP2
00000302: SWAP1
00000303: PUSH2 0x1654
00000306: JUMP
00000307: JUMPDEST
00000308: PUSH1 0x40
0000030a: MLOAD
0000030b: DUP1
0000030c: SWAP2
0000030d: SUB
0000030e: SWAP1
0000030f: RETURN
00000310: JUMPDEST
00000311: CALLVALUE
00000312: DUP1
00000313: ISZERO
00000314: PUSH2 0x031b
00000317: JUMPI
00000318: PUSH0
00000319: DUP1
0000031a: REVERT
0000031b: JUMPDEST
0000031c: POP
0000031d: PUSH2 0x0330
00000320: PUSH0
00000321: DUP1
00000322: MLOAD
00000323: PUSH1 0x20
00000325: PUSH2 0x1863
00000328: DUP4
00000329: CODECOPY
0000032a: DUP2
0000032b: MLOAD
0000032c: SWAP2
0000032d: MSTORE
0000032e: DUP2
0000032f: JUMP
00000330: JUMPDEST
00000331: PUSH1 0x40
00000333: MLOAD
00000334: PUSH2 0x0307
00000337: SWAP2
00000338: SWAP1
00000339: PUSH2 0x1662
0000033c: JUMP
0000033d: JUMPDEST
0000033e: CALLVALUE
0000033f: DUP1
00000340: ISZERO
00000341: PUSH2 0x0348
00000344: JUMPI
00000345: PUSH0
00000346: DUP1
00000347: REVERT
00000348: JUMPDEST
00000349: POP
0000034a: PUSH2 0x02d9
0000034d: PUSH2 0x0357
00000350: CALLDATASIZE
00000351: PUSH1 0x04
00000353: PUSH2 0x1670
00000356: JUMP
00000357: JUMPDEST
00000358: PUSH2 0x07df
0000035b: JUMP
0000035c: JUMPDEST
0000035d: CALLVALUE
0000035e: DUP1
0000035f: ISZERO
00000360: PUSH2 0x0367
00000363: JUMPI
00000364: PUSH0
00000365: DUP1
00000366: REVERT
00000367: JUMPDEST
00000368: POP
00000369: PUSH2 0x0330
0000036c: PUSH2 0x0376
0000036f: CALLDATASIZE
00000370: PUSH1 0x04
00000372: PUSH2 0x16ac
00000375: JUMP
00000376: JUMPDEST
00000377: PUSH0
00000378: SWAP1
00000379: DUP2
0000037a: MSTORE
0000037b: PUSH1 0x20
0000037d: DUP2
0000037e: SWAP1
0000037f: MSTORE
00000380: PUSH1 0x40
00000382: SWAP1
00000383: KECCAK256
00000384: PUSH1 0x01
00000386: ADD
00000387: SLOAD
00000388: SWAP1
00000389: JUMP
0000038a: JUMPDEST
0000038b: CALLVALUE
0000038c: DUP1
0000038d: ISZERO
0000038e: PUSH2 0x0395
00000391: JUMPI
00000392: PUSH0
00000393: DUP1
00000394: REVERT
00000395: JUMPDEST
00000396: POP
00000397: PUSH2 0x02d9
0000039a: PUSH2 0x03a4
0000039d: CALLDATASIZE
0000039e: PUSH1 0x04
000003a0: PUSH2 0x16ac
000003a3: JUMP
000003a4: JUMPDEST
000003a5: PUSH2 0x07fa
000003a8: JUMP
000003a9: JUMPDEST
000003aa: CALLVALUE
000003ab: DUP1
000003ac: ISZERO
000003ad: PUSH2 0x03b4
000003b0: JUMPI
000003b1: PUSH0
000003b2: DUP1
000003b3: REVERT
000003b4: JUMPDEST
000003b5: POP
000003b6: PUSH2 0x02d9
000003b9: PUSH2 0x03c3
000003bc: CALLDATASIZE
000003bd: PUSH1 0x04
000003bf: PUSH2 0x16ca
000003c2: JUMP
000003c3: JUMPDEST
000003c4: PUSH2 0x090a
000003c7: JUMP
000003c8: JUMPDEST
000003c9: CALLVALUE
000003ca: DUP1
000003cb: ISZERO
000003cc: PUSH2 0x03d3
000003cf: JUMPI
000003d0: PUSH0
000003d1: DUP1
000003d2: REVERT
000003d3: JUMPDEST
000003d4: POP
000003d5: PUSH2 0x02d9
000003d8: PUSH2 0x03e2
000003db: CALLDATASIZE
000003dc: PUSH1 0x04
000003de: PUSH2 0x16fa
000003e1: JUMP
000003e2: JUMPDEST
000003e3: PUSH2 0x092e
000003e6: JUMP
000003e7: JUMPDEST
000003e8: CALLVALUE
000003e9: DUP1
000003ea: ISZERO
000003eb: PUSH2 0x03f2
000003ee: JUMPI
000003ef: PUSH0
000003f0: DUP1
000003f1: REVERT
000003f2: JUMPDEST
000003f3: POP
000003f4: PUSH2 0x02d9
000003f7: PUSH2 0x0401
000003fa: CALLDATASIZE
000003fb: PUSH1 0x04
000003fd: PUSH2 0x16ca
00000400: JUMP
00000401: JUMPDEST
00000402: PUSH2 0x0944
00000405: JUMP
00000406: JUMPDEST
00000407: CALLVALUE
00000408: DUP1
00000409: ISZERO
0000040a: PUSH2 0x0411
0000040d: JUMPI
0000040e: PUSH0
0000040f: DUP1
00000410: REVERT
00000411: JUMPDEST
00000412: POP
00000413: PUSH2 0x02d9
00000416: PUSH2 0x0420
00000419: CALLDATASIZE
0000041a: PUSH1 0x04
0000041c: PUSH2 0x172a
0000041f: JUMP
00000420: JUMPDEST
00000421: PUSH2 0x0977
00000424: JUMP
00000425: JUMPDEST
00000426: CALLVALUE
00000427: DUP1
00000428: ISZERO
00000429: PUSH2 0x0430
0000042c: JUMPI
0000042d: PUSH0
0000042e: DUP1
0000042f: REVERT
00000430: JUMPDEST
00000431: POP
00000432: PUSH2 0x02d9
00000435: PUSH2 0x043f
00000438: CALLDATASIZE
00000439: PUSH1 0x04
0000043b: PUSH2 0x1762
0000043e: JUMP
0000043f: JUMPDEST
00000440: PUSH2 0x09da
00000443: JUMP
00000444: JUMPDEST
00000445: CALLVALUE
00000446: DUP1
00000447: ISZERO
00000448: PUSH2 0x044f
0000044b: JUMPI
0000044c: PUSH0
0000044d: DUP1
0000044e: REVERT
0000044f: JUMPDEST
00000450: POP
00000451: PUSH2 0x0478
00000454: PUSH2 0x045e
00000457: CALLDATASIZE
00000458: PUSH1 0x04
0000045a: PUSH2 0x16ac
0000045d: JUMP
0000045e: JUMPDEST
0000045f: PUSH1 0x03
00000461: PUSH1 0x20
00000463: MSTORE
00000464: PUSH0
00000465: SWAP1
00000466: DUP2
00000467: MSTORE
00000468: PUSH1 0x40
0000046a: SWAP1
0000046b: KECCAK256
0000046c: SLOAD
0000046d: PUSH1 0x01
0000046f: PUSH1 0x01
00000471: PUSH1 0xa0
00000473: SHL
00000474: SUB
00000475: AND
00000476: DUP2
00000477: JUMP
00000478: JUMPDEST
00000479: PUSH1 0x40
0000047b: MLOAD
0000047c: PUSH2 0x0307
0000047f: SWAP2
00000480: SWAP1
00000481: PUSH2 0x17ae
00000484: JUMP
00000485: JUMPDEST
00000486: CALLVALUE
00000487: DUP1
00000488: ISZERO
00000489: PUSH2 0x0490
0000048c: JUMPI
0000048d: PUSH0
0000048e: DUP1
0000048f: REVERT
00000490: JUMPDEST
00000491: POP
00000492: PUSH2 0x0330
00000495: PUSH0
00000496: DUP2
00000497: JUMP
00000498: JUMPDEST
00000499: CALLVALUE
0000049a: DUP1
0000049b: ISZERO
0000049c: PUSH2 0x04a3
0000049f: JUMPI
000004a0: PUSH0
000004a1: DUP1
000004a2: REVERT
000004a3: JUMPDEST
000004a4: POP
000004a5: PUSH2 0x02fa
000004a8: PUSH2 0x04b2
000004ab: CALLDATASIZE
000004ac: PUSH1 0x04
000004ae: PUSH2 0x16ca
000004b1: JUMP
000004b2: JUMPDEST
000004b3: PUSH2 0x0a79
000004b6: JUMP
000004b7: JUMPDEST
000004b8: CALLVALUE
000004b9: DUP1
000004ba: ISZERO
000004bb: PUSH2 0x04c2
000004be: JUMPI
000004bf: PUSH0
000004c0: DUP1
000004c1: REVERT
000004c2: JUMPDEST
000004c3: POP
000004c4: PUSH2 0x02d9
000004c7: PUSH2 0x04d1
000004ca: CALLDATASIZE
000004cb: PUSH1 0x04
000004cd: PUSH2 0x16fa
000004d0: JUMP
000004d1: JUMPDEST
000004d2: PUSH2 0x0aa1
000004d5: JUMP
000004d6: JUMPDEST
000004d7: CALLVALUE
000004d8: DUP1
000004d9: ISZERO
000004da: PUSH2 0x04e1
000004dd: JUMPI
000004de: PUSH0
000004df: DUP1
000004e0: REVERT
000004e1: JUMPDEST
000004e2: POP
000004e3: PUSH2 0x02d9
000004e6: PUSH2 0x04f0
000004e9: CALLDATASIZE
000004ea: PUSH1 0x04
000004ec: PUSH2 0x16ca
000004ef: JUMP
000004f0: JUMPDEST
000004f1: PUSH2 0x0b2b
000004f4: JUMP
000004f5: JUMPDEST
000004f6: CALLVALUE
000004f7: DUP1
000004f8: ISZERO
000004f9: PUSH2 0x0500
000004fc: JUMPI
000004fd: PUSH0
000004fe: DUP1
000004ff: REVERT
00000500: JUMPDEST
00000501: POP
00000502: PUSH2 0x02d9
00000505: PUSH2 0x050f
00000508: CALLDATASIZE
00000509: PUSH1 0x04
0000050b: PUSH2 0x16ac
0000050e: JUMP
0000050f: JUMPDEST
00000510: PUSH2 0x0b3f
00000513: JUMP
00000514: JUMPDEST
00000515: CALLVALUE
00000516: DUP1
00000517: ISZERO
00000518: PUSH2 0x051f
0000051b: JUMPI
0000051c: PUSH0
0000051d: DUP1
0000051e: REVERT
0000051f: JUMPDEST
00000520: POP
00000521: PUSH2 0x0330
00000524: PUSH32 0xcad6d1a2298b8fe675ee5c5b6ae9e25f35e079d7c862db237f1f20200f9ea442
00000545: DUP2
00000546: JUMP
00000547: JUMPDEST
00000548: PUSH2 0x02d9
0000054b: PUSH2 0x0b86
0000054e: JUMP
0000054f: JUMPDEST
00000550: CALLVALUE
00000551: DUP1
00000552: ISZERO
00000553: PUSH2 0x055a
00000556: JUMPI
00000557: PUSH0
00000558: DUP1
00000559: REVERT
0000055a: JUMPDEST
0000055b: POP
0000055c: PUSH2 0x02d9
0000055f: PUSH2 0x0569
00000562: CALLDATASIZE
00000563: PUSH1 0x04
00000565: PUSH2 0x16ca
00000568: JUMP
00000569: JUMPDEST
0000056a: PUSH2 0x0c03
0000056d: JUMP
0000056e: JUMPDEST
0000056f: CALLVALUE
00000570: DUP1
00000571: ISZERO
00000572: PUSH2 0x0579
00000575: JUMPI
00000576: PUSH0
00000577: DUP1
00000578: REVERT
00000579: JUMPDEST
0000057a: POP
0000057b: PUSH2 0x0330
0000057e: PUSH1 0x0b
00000580: DUP2
00000581: JUMP
00000582: JUMPDEST
00000583: PUSH2 0x058c
00000586: DUP2
00000587: CALLER
00000588: PUSH2 0x0c27
0000058b: JUMP
0000058c: JUMPDEST
0000058d: POP
0000058e: JUMP
0000058f: JUMPDEST
00000590: PUSH0
00000591: DUP2
00000592: DUP2
00000593: MSTORE
00000594: PUSH1 0x03
00000596: PUSH1 0x20
00000598: MSTORE
00000599: PUSH1 0x40
0000059b: SWAP1
0000059c: KECCAK256
0000059d: SLOAD
0000059e: PUSH1 0x01
000005a0: PUSH1 0x01
000005a2: PUSH1 0xa0
000005a4: SHL
000005a5: SUB
000005a6: AND
000005a7: DUP1
000005a8: PUSH2 0x05cf
000005ab: JUMPI
000005ac: DUP2
000005ad: PUSH1 0x40
000005af: MLOAD
000005b0: PUSH4 0x201e4ee7
000005b5: PUSH1 0xe0
000005b7: SHL
000005b8: DUP2
000005b9: MSTORE
000005ba: PUSH1 0x04
000005bc: ADD
000005bd: PUSH2 0x05c6
000005c0: SWAP2
000005c1: SWAP1
000005c2: PUSH2 0x1662
000005c5: JUMP
000005c6: JUMPDEST
000005c7: PUSH1 0x40
000005c9: MLOAD
000005ca: DUP1
000005cb: SWAP2
000005cc: SUB
000005cd: SWAP1
000005ce: REVERT
000005cf: JUMPDEST
000005d0: SWAP2
000005d1: SWAP1
000005d2: POP
000005d3: JUMP
000005d4: JUMPDEST
000005d5: PUSH0
000005d6: PUSH2 0x05de
000005d9: DUP4
000005da: PUSH2 0x0c56
000005dd: JUMP
000005de: JUMPDEST
000005df: SWAP1
000005e0: POP
000005e1: DUP1
000005e2: EXTCODESIZE
000005e3: PUSH0
000005e4: DUP2
000005e5: SWAP1
000005e6: SUB
000005e7: PUSH2 0x0605
000005ea: JUMPI
000005eb: DUP2
000005ec: PUSH1 0x40
000005ee: MLOAD
000005ef: PUSH4 0x52f544ed
000005f4: PUSH1 0xe1
000005f6: SHL
000005f7: DUP2
000005f8: MSTORE
000005f9: PUSH1 0x04
000005fb: ADD
000005fc: PUSH2 0x05c6
000005ff: SWAP2
00000600: SWAP1
00000601: PUSH2 0x17ae
00000604: JUMP
00000605: JUMPDEST
00000606: PUSH0
00000607: PUSH4 0x05f5e100
0000060c: SWAP1
0000060d: POP
0000060e: PUSH0
0000060f: DUP4
00000610: PUSH1 0x01
00000612: PUSH1 0x01
00000614: PUSH1 0xa0
00000616: SHL
00000617: SUB
00000618: AND
00000619: PUSH4 0x18160ddd
0000061e: PUSH1 0x40
00000620: MLOAD
00000621: DUP2
00000622: PUSH4 0xffffffff
00000627: AND
00000628: PUSH1 0xe0
0000062a: SHL
0000062b: DUP2
0000062c: MSTORE
0000062d: PUSH1 0x04
0000062f: ADD
00000630: PUSH1 0x20
00000632: PUSH1 0x40
00000634: MLOAD
00000635: DUP1
00000636: DUP4
00000637: SUB
00000638: DUP2
00000639: DUP7
0000063a: GAS
0000063b: STATICCALL
0000063c: ISZERO
0000063d: DUP1
0000063e: ISZERO
0000063f: PUSH2 0x064a
00000642: JUMPI
00000643: RETURNDATASIZE
00000644: PUSH0
00000645: DUP1
00000646: RETURNDATACOPY
00000647: RETURNDATASIZE
00000648: PUSH0
00000649: REVERT
0000064a: JUMPDEST
0000064b: POP
0000064c: POP
0000064d: POP
0000064e: POP
0000064f: PUSH1 0x40
00000651: MLOAD
00000652: RETURNDATASIZE
00000653: PUSH1 0x1f
00000655: NOT
00000656: PUSH1 0x1f
00000658: DUP3
00000659: ADD
0000065a: AND
0000065b: DUP3
0000065c: ADD
0000065d: DUP1
0000065e: PUSH1 0x40
00000660: MSTORE
00000661: POP
00000662: DUP2
00000663: ADD
00000664: SWAP1
00000665: PUSH2 0x066e
00000668: SWAP2
00000669: SWAP1
0000066a: PUSH2 0x15fd
0000066d: JUMP
0000066e: JUMPDEST
0000066f: SWAP1
00000670: POP
00000671: DUP2
00000672: DUP6
00000673: PUSH1 0x20
00000675: ADD
00000676: MLOAD
00000677: DUP3
00000678: PUSH2 0x0681
0000067b: SWAP2
0000067c: SWAP1
0000067d: PUSH2 0x1404
00000680: JUMP
00000681: JUMPDEST
00000682: PUSH2 0x068b
00000685: SWAP2
00000686: SWAP1
00000687: PUSH2 0x17d0
0000068a: JUMP
0000068b: JUMPDEST
0000068c: PUSH1 0x20
0000068e: DUP7
0000068f: ADD
00000690: MSTORE
00000691: PUSH1 0x40
00000693: DUP6
00000694: ADD
00000695: MLOAD
00000696: DUP3
00000697: SWAP1
00000698: PUSH2 0x06a1
0000069b: SWAP1
0000069c: DUP4
0000069d: PUSH2 0x1404
000006a0: JUMP
000006a1: JUMPDEST
000006a2: PUSH2 0x06ab
000006a5: SWAP2
000006a6: SWAP1
000006a7: PUSH2 0x17d0
000006aa: JUMP
000006ab: JUMPDEST
000006ac: PUSH1 0x40
000006ae: SWAP1
000006af: SWAP6
000006b0: ADD
000006b1: SWAP5
000006b2: SWAP1
000006b3: SWAP5
000006b4: MSTORE
000006b5: POP
000006b6: POP
000006b7: POP
000006b8: POP
000006b9: POP
000006ba: JUMP
000006bb: JUMPDEST
000006bc: PUSH1 0x20
000006be: DUP2
000006bf: ADD
000006c0: MLOAD
000006c1: PUSH0
000006c2: SWAP1
000006c3: PUSH1 0x01
000006c5: PUSH1 0x60
000006c7: SHL
000006c8: SWAP1
000006c9: DIV
000006ca: JUMPDEST
000006cb: SWAP3
000006cc: SWAP2
000006cd: POP
000006ce: POP
000006cf: JUMP
000006d0: JUMPDEST
000006d1: DUP3
000006d2: MLOAD
000006d3: DUP3
000006d4: LT
000006d5: ISZERO
000006d6: PUSH2 0x06f6
000006d9: JUMPI
000006da: DUP3
000006db: MLOAD
000006dc: PUSH1 0x40
000006de: MLOAD
000006df: PUSH4 0x52880093
000006e4: PUSH1 0xe1
000006e6: SHL
000006e7: DUP2
000006e8: MSTORE
000006e9: PUSH2 0x05c6
000006ec: SWAP2
000006ed: DUP5
000006ee: SWAP2
000006ef: PUSH1 0x04
000006f1: ADD
000006f2: PUSH2 0x17e3
000006f5: JUMP
000006f6: JUMPDEST
000006f7: PUSH1 0x20
000006f9: DUP4
000006fa: ADD
000006fb: MLOAD
000006fc: DUP1
000006fd: ISZERO
000006fe: DUP1
000006ff: PUSH2 0x0706
00000702: JUMPI
00000703: POP
00000704: DUP3
00000705: ISZERO
00000706: JUMPDEST
00000707: ISZERO
00000708: PUSH2 0x0711
0000070b: JUMPI
0000070c: POP
0000070d: PUSH2 0x07a5
00000710: JUMP
00000711: JUMPDEST
00000712: DUP4
00000713: PUSH1 0x40
00000715: ADD
00000716: MLOAD
00000717: ISZERO
00000718: PUSH2 0x0740
0000071b: JUMPI
0000071c: DUP2
0000071d: DUP4
0000071e: GT
0000071f: ISZERO
00000720: PUSH2 0x0727
00000723: JUMPI
00000724: DUP2
00000725: SWAP3
00000726: POP
00000727: JUMPDEST
00000728: PUSH2 0x0731
0000072b: DUP4
0000072c: DUP3
0000072d: PUSH2 0x1404
00000730: JUMP
00000731: JUMPDEST
00000732: SWAP1
00000733: POP
00000734: PUSH2 0x073d
00000737: DUP3
00000738: DUP3
00000739: PUSH2 0x17d0
0000073c: JUMP
0000073d: JUMPDEST
0000073e: SWAP1
0000073f: POP
00000740: JUMPDEST
00000741: PUSH1 0x40
00000743: MLOAD
00000744: PUSH4 0x2e1a7d4d
00000749: PUSH1 0xe0
0000074b: SHL
0000074c: DUP2
0000074d: MSTORE
0000074e: PUSH1 0x01
00000750: PUSH1 0x01
00000752: PUSH1 0xa0
00000754: SHL
00000755: SUB
00000756: DUP7
00000757: AND
00000758: SWAP1
00000759: PUSH4 0x2e1a7d4d
0000075e: SWAP1
0000075f: PUSH2 0x076c
00000762: SWAP1
00000763: DUP5
00000764: SWAP1
00000765: PUSH1 0x04
00000767: ADD
00000768: PUSH2 0x1662
0000076b: JUMP
0000076c: JUMPDEST
0000076d: PUSH0
0000076e: PUSH1 0x40
00000770: MLOAD
00000771: DUP1
00000772: DUP4
00000773: SUB
00000774: DUP2
00000775: PUSH0
00000776: DUP8
00000777: DUP1
00000778: EXTCODESIZE
00000779: ISZERO
0000077a: DUP1
0000077b: ISZERO
0000077c: PUSH2 0x0783
0000077f: JUMPI
00000780: PUSH0
00000781: DUP1
00000782: REVERT
00000783: JUMPDEST
00000784: POP
00000785: GAS
00000786: CALL
00000787: ISZERO
00000788: DUP1
00000789: ISZERO
0000078a: PUSH2 0x0795
0000078d: JUMPI
0000078e: RETURNDATASIZE
0000078f: PUSH0
00000790: DUP1
00000791: RETURNDATACOPY
00000792: RETURNDATASIZE
00000793: PUSH0
00000794: REVERT
00000795: JUMPDEST
00000796: POP
00000797: POP
00000798: POP
00000799: POP
0000079a: PUSH2 0x07a3
0000079d: COINBASE
0000079e: DUP3
0000079f: PUSH2 0x0c9e
000007a2: JUMP
000007a3: JUMPDEST
000007a4: POP
000007a5: JUMPDEST
000007a6: POP
000007a7: POP
000007a8: POP
000007a9: POP
000007aa: JUMP
000007ab: JUMPDEST
000007ac: PUSH0
000007ad: PUSH1 0x01
000007af: PUSH1 0x01
000007b1: PUSH1 0xe0
000007b3: SHL
000007b4: SUB
000007b5: NOT
000007b6: DUP3
000007b7: AND
000007b8: PUSH4 0x7965db0b
000007bd: PUSH1 0xe0
000007bf: SHL
000007c0: EQ
000007c1: DUP1
000007c2: PUSH2 0x06ca
000007c5: JUMPI
000007c6: POP
000007c7: PUSH4 0x01ffc9a7
000007cc: PUSH1 0xe0
000007ce: SHL
000007cf: PUSH1 0x01
000007d1: PUSH1 0x01
000007d3: PUSH1 0xe0
000007d5: SHL
000007d6: SUB
000007d7: NOT
000007d8: DUP4
000007d9: AND
000007da: EQ
000007db: PUSH2 0x06ca
000007de: JUMP
000007df: JUMPDEST
000007e0: PUSH0
000007e1: PUSH1 0x40
000007e3: MLOAD
000007e4: PUSH4 0x3283c86d
000007e9: PUSH1 0xe2
000007eb: SHL
000007ec: DUP2
000007ed: MSTORE
000007ee: PUSH1 0x04
000007f0: ADD
000007f1: PUSH2 0x05c6
000007f4: SWAP2
000007f5: SWAP1
000007f6: PUSH2 0x17ae
000007f9: JUMP
000007fa: JUMPDEST
000007fb: PUSH0
000007fc: PUSH2 0x0804
000007ff: DUP2
00000800: PUSH2 0x0582
00000803: JUMP
00000804: JUMPDEST
00000805: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000826: PUSH0
00000827: DUP4
00000828: SWAP1
00000829: SUB
0000082a: PUSH2 0x089b
0000082d: JUMPI
0000082e: PUSH1 0x40
00000830: MLOAD
00000831: PUSH4 0x70a08231
00000836: PUSH1 0xe0
00000838: SHL
00000839: DUP2
0000083a: MSTORE
0000083b: PUSH1 0x01
0000083d: PUSH1 0x01
0000083f: PUSH1 0xa0
00000841: SHL
00000842: SUB
00000843: DUP3
00000844: AND
00000845: SWAP1
00000846: PUSH4 0x70a08231
0000084b: SWAP1
0000084c: PUSH2 0x0859
0000084f: SWAP1
00000850: ADDRESS
00000851: SWAP1
00000852: PUSH1 0x04
00000854: ADD
00000855: PUSH2 0x17ae
00000858: JUMP
00000859: JUMPDEST
0000085a: PUSH1 0x20
0000085c: PUSH1 0x40
0000085e: MLOAD
0000085f: DUP1
00000860: DUP4
00000861: SUB
00000862: DUP2
00000863: DUP7
00000864: GAS
00000865: STATICCALL
00000866: ISZERO
00000867: DUP1
00000868: ISZERO
00000869: PUSH2 0x0874
0000086c: JUMPI
0000086d: RETURNDATASIZE
0000086e: PUSH0
0000086f: DUP1
00000870: RETURNDATACOPY
00000871: RETURNDATASIZE
00000872: PUSH0
00000873: REVERT
00000874: JUMPDEST
00000875: POP
00000876: POP
00000877: POP
00000878: POP
00000879: PUSH1 0x40
0000087b: MLOAD
0000087c: RETURNDATASIZE
0000087d: PUSH1 0x1f
0000087f: NOT
00000880: PUSH1 0x1f
00000882: DUP3
00000883: ADD
00000884: AND
00000885: DUP3
00000886: ADD
00000887: DUP1
00000888: PUSH1 0x40
0000088a: MSTORE
0000088b: POP
0000088c: DUP2
0000088d: ADD
0000088e: SWAP1
0000088f: PUSH2 0x0898
00000892: SWAP2
00000893: SWAP1
00000894: PUSH2 0x15fd
00000897: JUMP
00000898: JUMPDEST
00000899: SWAP3
0000089a: POP
0000089b: JUMPDEST
0000089c: DUP3
0000089d: ISZERO
0000089e: PUSH2 0x08fb
000008a1: JUMPI
000008a2: PUSH1 0x40
000008a4: MLOAD
000008a5: PUSH4 0x2e1a7d4d
000008aa: PUSH1 0xe0
000008ac: SHL
000008ad: DUP2
000008ae: MSTORE
000008af: PUSH1 0x01
000008b1: PUSH1 0x01
000008b3: PUSH1 0xa0
000008b5: SHL
000008b6: SUB
000008b7: DUP3
000008b8: AND
000008b9: SWAP1
000008ba: PUSH4 0x2e1a7d4d
000008bf: SWAP1
000008c0: PUSH2 0x08cd
000008c3: SWAP1
000008c4: DUP7
000008c5: SWAP1
000008c6: PUSH1 0x04
000008c8: ADD
000008c9: PUSH2 0x1662
000008cc: JUMP
000008cd: JUMPDEST
000008ce: PUSH0
000008cf: PUSH1 0x40
000008d1: MLOAD
000008d2: DUP1
000008d3: DUP4
000008d4: SUB
000008d5: DUP2
000008d6: PUSH0
000008d7: DUP8
000008d8: DUP1
000008d9: EXTCODESIZE
000008da: ISZERO
000008db: DUP1
000008dc: ISZERO
000008dd: PUSH2 0x08e4
000008e0: JUMPI
000008e1: PUSH0
000008e2: DUP1
000008e3: REVERT
000008e4: JUMPDEST
000008e5: POP
000008e6: GAS
000008e7: CALL
000008e8: ISZERO
000008e9: DUP1
000008ea: ISZERO
000008eb: PUSH2 0x08f6
000008ee: JUMPI
000008ef: RETURNDATASIZE
000008f0: PUSH0
000008f1: DUP1
000008f2: RETURNDATACOPY
000008f3: RETURNDATASIZE
000008f4: PUSH0
000008f5: REVERT
000008f6: JUMPDEST
000008f7: POP
000008f8: POP
000008f9: POP
000008fa: POP
000008fb: JUMPDEST
000008fc: PUSH2 0x0905
000008ff: CALLER
00000900: SELFBALANCE
00000901: PUSH2 0x0c9e
00000904: JUMP
00000905: JUMPDEST
00000906: POP
00000907: POP
00000908: POP
00000909: JUMP
0000090a: JUMPDEST
0000090b: PUSH0
0000090c: DUP3
0000090d: DUP2
0000090e: MSTORE
0000090f: PUSH1 0x20
00000911: DUP2
00000912: SWAP1
00000913: MSTORE
00000914: PUSH1 0x40
00000916: SWAP1
00000917: KECCAK256
00000918: PUSH1 0x01
0000091a: ADD
0000091b: SLOAD
0000091c: PUSH2 0x0924
0000091f: DUP2
00000920: PUSH2 0x0582
00000923: JUMP
00000924: JUMPDEST
00000925: PUSH2 0x07a5
00000928: DUP4
00000929: DUP4
0000092a: PUSH2 0x0d17
0000092d: JUMP
0000092e: JUMPDEST
0000092f: PUSH0
00000930: PUSH2 0x0938
00000933: DUP2
00000934: PUSH2 0x0582
00000937: JUMP
00000938: JUMPDEST
00000939: PUSH2 0x0905
0000093c: DUP4
0000093d: CALLER
0000093e: ADDRESS
0000093f: DUP6
00000940: PUSH2 0x0da6
00000943: JUMP
00000944: JUMPDEST
00000945: PUSH1 0x01
00000947: PUSH1 0x01
00000949: PUSH1 0xa0
0000094b: SHL
0000094c: SUB
0000094d: DUP2
0000094e: AND
0000094f: CALLER
00000950: EQ
00000951: PUSH2 0x096d
00000954: JUMPI
00000955: PUSH1 0x40
00000957: MLOAD
00000958: PUSH4 0x334bd919
0000095d: PUSH1 0xe1
0000095f: SHL
00000960: DUP2
00000961: MSTORE
00000962: PUSH1 0x04
00000964: ADD
00000965: PUSH1 0x40
00000967: MLOAD
00000968: DUP1
00000969: SWAP2
0000096a: SUB
0000096b: SWAP1
0000096c: REVERT
0000096d: JUMPDEST
0000096e: PUSH2 0x0905
00000971: DUP3
00000972: DUP3
00000973: PUSH2 0x0e00
00000976: JUMP
00000977: JUMPDEST
00000978: PUSH0
00000979: PUSH2 0x0981
0000097c: DUP2
0000097d: PUSH2 0x0582
00000980: JUMP
00000981: JUMPDEST
00000982: DUP2
00000983: MLOAD
00000984: PUSH32 0xcad6d1a2298b8fe675ee5c5b6ae9e25f35e079d7c862db237f1f20200f9ea442
000009a5: PUSH0
000009a6: JUMPDEST
000009a7: DUP3
000009a8: DUP2
000009a9: LT
000009aa: ISZERO
000009ab: PUSH2 0x07a3
000009ae: JUMPI
000009af: PUSH2 0x09d1
000009b2: DUP3
000009b3: DUP7
000009b4: DUP4
000009b5: DUP2
000009b6: MLOAD
000009b7: DUP2
000009b8: LT
000009b9: PUSH2 0x09c4
000009bc: JUMPI
000009bd: PUSH2 0x09c4
000009c0: PUSH2 0x17fe
000009c3: JUMP
000009c4: JUMPDEST
000009c5: PUSH1 0x20
000009c7: MUL
000009c8: PUSH1 0x20
000009ca: ADD
000009cb: ADD
000009cc: MLOAD
000009cd: PUSH2 0x0d17
000009d0: JUMP
000009d1: JUMPDEST
000009d2: POP
000009d3: PUSH1 0x01
000009d5: ADD
000009d6: PUSH2 0x09a6
000009d9: JUMP
000009da: JUMPDEST
000009db: PUSH2 0x09f0
000009de: PUSH0
000009df: DUP1
000009e0: MLOAD
000009e1: PUSH1 0x20
000009e3: PUSH2 0x1863
000009e6: DUP4
000009e7: CODECOPY
000009e8: DUP2
000009e9: MLOAD
000009ea: SWAP2
000009eb: MSTORE
000009ec: PUSH2 0x0582
000009ef: JUMP
000009f0: JUMPDEST
000009f1: PUSH1 0x01
000009f3: SLOAD
000009f4: PUSH1 0x02
000009f6: SLOAD
000009f7: PUSH1 0x01
000009f9: PUSH1 0x01
000009fb: PUSH1 0xa0
000009fd: SHL
000009fe: SUB
000009ff: DUP4
00000a00: AND
00000a01: SWAP1
00000a02: SWAP2
00000a03: EQ
00000a04: SWAP1
00000a05: DUP4
00000a06: GT
00000a07: DUP1
00000a08: ISZERO
00000a09: SWAP1
00000a0a: DUP1
00000a0b: PUSH2 0x0a12
00000a0e: JUMPI
00000a0f: POP
00000a10: DUP2
00000a11: ISZERO
00000a12: JUMPDEST
00000a13: ISZERO
00000a14: PUSH2 0x0a30
00000a17: JUMPI
00000a18: PUSH1 0x40
00000a1a: MLOAD
00000a1b: PUSH4 0x25cdf54f
00000a20: PUSH1 0xe2
00000a22: SHL
00000a23: DUP2
00000a24: MSTORE
00000a25: PUSH1 0x04
00000a27: ADD
00000a28: PUSH1 0x40
00000a2a: MLOAD
00000a2b: DUP1
00000a2c: SWAP2
00000a2d: SUB
00000a2e: SWAP1
00000a2f: REVERT
00000a30: JUMPDEST
00000a31: PUSH1 0x01
00000a33: PUSH1 0x01
00000a35: PUSH1 0xa0
00000a37: SHL
00000a38: SUB
00000a39: DUP6
00000a3a: AND
00000a3b: PUSH2 0x0a57
00000a3e: JUMPI
00000a3f: PUSH1 0x40
00000a41: MLOAD
00000a42: PUSH4 0x25cdf54f
00000a47: PUSH1 0xe2
00000a49: SHL
00000a4a: DUP2
00000a4b: MSTORE
00000a4c: PUSH1 0x04
00000a4e: ADD
00000a4f: PUSH1 0x40
00000a51: MLOAD
00000a52: DUP1
00000a53: SWAP2
00000a54: SUB
00000a55: SWAP1
00000a56: REVERT
00000a57: JUMPDEST
00000a58: DUP4
00000a59: PUSH1 0x02
00000a5b: PUSH0
00000a5c: DUP3
00000a5d: DUP3
00000a5e: SLOAD
00000a5f: PUSH2 0x0a68
00000a62: SWAP2
00000a63: SWAP1
00000a64: PUSH2 0x1812
00000a67: JUMP
00000a68: JUMPDEST
00000a69: SWAP1
00000a6a: SWAP2
00000a6b: SSTORE
00000a6c: POP
00000a6d: PUSH2 0x07a3
00000a70: SWAP1
00000a71: POP
00000a72: DUP4
00000a73: DUP7
00000a74: DUP7
00000a75: PUSH2 0x0e69
00000a78: JUMP
00000a79: JUMPDEST
00000a7a: PUSH0
00000a7b: SWAP2
00000a7c: DUP3
00000a7d: MSTORE
00000a7e: PUSH1 0x20
00000a80: DUP3
00000a81: DUP2
00000a82: MSTORE
00000a83: PUSH1 0x40
00000a85: DUP1
00000a86: DUP5
00000a87: KECCAK256
00000a88: PUSH1 0x01
00000a8a: PUSH1 0x01
00000a8c: PUSH1 0xa0
00000a8e: SHL
00000a8f: SUB
00000a90: SWAP4
00000a91: SWAP1
00000a92: SWAP4
00000a93: AND
00000a94: DUP5
00000a95: MSTORE
00000a96: SWAP2
00000a97: SWAP1
00000a98: MSTORE
00000a99: SWAP1
00000a9a: KECCAK256
00000a9b: SLOAD
00000a9c: PUSH1 0xff
00000a9e: AND
00000a9f: SWAP1
00000aa0: JUMP
00000aa1: JUMPDEST
00000aa2: PUSH0
00000aa3: PUSH2 0x0aab
00000aa6: DUP2
00000aa7: PUSH2 0x0582
00000aaa: JUMP
00000aab: JUMPDEST
00000aac: DUP2
00000aad: PUSH0
00000aae: SUB
00000aaf: PUSH2 0x0b20
00000ab2: JUMPI
00000ab3: PUSH1 0x40
00000ab5: MLOAD
00000ab6: PUSH4 0x70a08231
00000abb: PUSH1 0xe0
00000abd: SHL
00000abe: DUP2
00000abf: MSTORE
00000ac0: PUSH1 0x01
00000ac2: PUSH1 0x01
00000ac4: PUSH1 0xa0
00000ac6: SHL
00000ac7: SUB
00000ac8: DUP5
00000ac9: AND
00000aca: SWAP1
00000acb: PUSH4 0x70a08231
00000ad0: SWAP1
00000ad1: PUSH2 0x0ade
00000ad4: SWAP1
00000ad5: ADDRESS
00000ad6: SWAP1
00000ad7: PUSH1 0x04
00000ad9: ADD
00000ada: PUSH2 0x17ae
00000add: JUMP
00000ade: JUMPDEST
00000adf: PUSH1 0x20
00000ae1: PUSH1 0x40
00000ae3: MLOAD
00000ae4: DUP1
00000ae5: DUP4
00000ae6: SUB
00000ae7: DUP2
00000ae8: DUP7
00000ae9: GAS
00000aea: STATICCALL
00000aeb: ISZERO
00000aec: DUP1
00000aed: ISZERO
00000aee: PUSH2 0x0af9
00000af1: JUMPI
00000af2: RETURNDATASIZE
00000af3: PUSH0
00000af4: DUP1
00000af5: RETURNDATACOPY
00000af6: RETURNDATASIZE
00000af7: PUSH0
00000af8: REVERT
00000af9: JUMPDEST
00000afa: POP
00000afb: POP
00000afc: POP
00000afd: POP
00000afe: PUSH1 0x40
00000b00: MLOAD
00000b01: RETURNDATASIZE
00000b02: PUSH1 0x1f
00000b04: NOT
00000b05: PUSH1 0x1f
00000b07: DUP3
00000b08: ADD
00000b09: AND
00000b0a: DUP3
00000b0b: ADD
00000b0c: DUP1
00000b0d: PUSH1 0x40
00000b0f: MSTORE
00000b10: POP
00000b11: DUP2
00000b12: ADD
00000b13: SWAP1
00000b14: PUSH2 0x0b1d
00000b17: SWAP2
00000b18: SWAP1
00000b19: PUSH2 0x15fd
00000b1c: JUMP
00000b1d: JUMPDEST
00000b1e: SWAP2
00000b1f: POP
00000b20: JUMPDEST
00000b21: PUSH2 0x0905
00000b24: DUP4
00000b25: CALLER
00000b26: DUP5
00000b27: PUSH2 0x0e69
00000b2a: JUMP
00000b2b: JUMPDEST
00000b2c: PUSH0
00000b2d: PUSH2 0x0b35
00000b30: DUP2
00000b31: PUSH2 0x0582
00000b34: JUMP
00000b35: JUMPDEST
00000b36: PUSH2 0x0905
00000b39: DUP4
00000b3a: DUP4
00000b3b: PUSH2 0x0e8f
00000b3e: JUMP
00000b3f: JUMPDEST
00000b40: PUSH0
00000b41: PUSH2 0x0b49
00000b44: DUP2
00000b45: PUSH2 0x0582
00000b48: JUMP
00000b49: JUMPDEST
00000b4a: PUSH0
00000b4b: DUP3
00000b4c: DUP2
00000b4d: MSTORE
00000b4e: PUSH1 0x03
00000b50: PUSH1 0x20
00000b52: MSTORE
00000b53: PUSH1 0x40
00000b55: SWAP1
00000b56: KECCAK256
00000b57: DUP1
00000b58: SLOAD
00000b59: PUSH1 0x01
00000b5b: PUSH1 0x01
00000b5d: PUSH1 0xa0
00000b5f: SHL
00000b60: SUB
00000b61: NOT
00000b62: DUP2
00000b63: AND
00000b64: SWAP1
00000b65: SWAP2
00000b66: SSTORE
00000b67: PUSH1 0x01
00000b69: PUSH1 0x01
00000b6b: PUSH1 0xa0
00000b6d: SHL
00000b6e: SUB
00000b6f: AND
00000b70: PUSH2 0x07a5
00000b73: PUSH0
00000b74: DUP1
00000b75: MLOAD
00000b76: PUSH1 0x20
00000b78: PUSH2 0x1863
00000b7b: DUP4
00000b7c: CODECOPY
00000b7d: DUP2
00000b7e: MLOAD
00000b7f: SWAP2
00000b80: MSTORE
00000b81: DUP3
00000b82: PUSH2 0x0e00
00000b85: JUMP
00000b86: JUMPDEST
00000b87: PUSH0
00000b88: PUSH2 0x0b90
00000b8b: DUP2
00000b8c: PUSH2 0x0582
00000b8f: JUMP
00000b90: JUMPDEST
00000b91: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000bb2: PUSH1 0x01
00000bb4: PUSH1 0x01
00000bb6: PUSH1 0xa0
00000bb8: SHL
00000bb9: SUB
00000bba: AND
00000bbb: PUSH4 0xd0e30db0
00000bc0: CALLVALUE
00000bc1: PUSH1 0x40
00000bc3: MLOAD
00000bc4: DUP3
00000bc5: PUSH4 0xffffffff
00000bca: AND
00000bcb: PUSH1 0xe0
00000bcd: SHL
00000bce: DUP2
00000bcf: MSTORE
00000bd0: PUSH1 0x04
00000bd2: ADD
00000bd3: PUSH0
00000bd4: PUSH1 0x40
00000bd6: MLOAD
00000bd7: DUP1
00000bd8: DUP4
00000bd9: SUB
00000bda: DUP2
00000bdb: DUP6
00000bdc: DUP9
00000bdd: DUP1
00000bde: EXTCODESIZE
00000bdf: ISZERO
00000be0: DUP1
00000be1: ISZERO
00000be2: PUSH2 0x0be9
00000be5: JUMPI
00000be6: PUSH0
00000be7: DUP1
00000be8: REVERT
00000be9: JUMPDEST
00000bea: POP
00000beb: GAS
00000bec: CALL
00000bed: ISZERO
00000bee: DUP1
00000bef: ISZERO
00000bf0: PUSH2 0x0bfb
00000bf3: JUMPI
00000bf4: RETURNDATASIZE
00000bf5: PUSH0
00000bf6: DUP1
00000bf7: RETURNDATACOPY
00000bf8: RETURNDATASIZE
00000bf9: PUSH0
00000bfa: REVERT
00000bfb: JUMPDEST
00000bfc: POP
00000bfd: POP
00000bfe: POP
00000bff: POP
00000c00: POP
00000c01: POP
00000c02: JUMP
00000c03: JUMPDEST
00000c04: PUSH0
00000c05: DUP3
00000c06: DUP2
00000c07: MSTORE
00000c08: PUSH1 0x20
00000c0a: DUP2
00000c0b: SWAP1
00000c0c: MSTORE
00000c0d: PUSH1 0x40
00000c0f: SWAP1
00000c10: KECCAK256
00000c11: PUSH1 0x01
00000c13: ADD
00000c14: SLOAD
00000c15: PUSH2 0x0c1d
00000c18: DUP2
00000c19: PUSH2 0x0582
00000c1c: JUMP
00000c1d: JUMPDEST
00000c1e: PUSH2 0x07a5
00000c21: DUP4
00000c22: DUP4
00000c23: PUSH2 0x0e00
00000c26: JUMP
00000c27: JUMPDEST
00000c28: PUSH2 0x0c31
00000c2b: DUP3
00000c2c: DUP3
00000c2d: PUSH2 0x0a79
00000c30: JUMP
00000c31: JUMPDEST
00000c32: PUSH2 0x0c52
00000c35: JUMPI
00000c36: DUP1
00000c37: DUP3
00000c38: PUSH1 0x40
00000c3a: MLOAD
00000c3b: PUSH4 0xe2517d3f
00000c40: PUSH1 0xe0
00000c42: SHL
00000c43: DUP2
00000c44: MSTORE
00000c45: PUSH1 0x04
00000c47: ADD
00000c48: PUSH2 0x05c6
00000c4b: SWAP3
00000c4c: SWAP2
00000c4d: SWAP1
00000c4e: PUSH2 0x1825
00000c51: JUMP
00000c52: JUMPDEST
00000c53: POP
00000c54: POP
00000c55: JUMP
00000c56: JUMPDEST
00000c57: PUSH0
00000c58: DUP1
00000c59: PUSH2 0x0c61
00000c5c: DUP4
00000c5d: PUSH2 0x0f22
00000c60: JUMP
00000c61: JUMPDEST
00000c62: ISZERO
00000c63: PUSH2 0x0c79
00000c66: JUMPI
00000c67: PUSH2 0x0c72
00000c6a: PUSH1 0x14
00000c6c: PUSH1 0x04
00000c6e: PUSH2 0x1404
00000c71: JUMP
00000c72: JUMPDEST
00000c73: SWAP1
00000c74: POP
00000c75: PUSH2 0x0c88
00000c78: JUMP
00000c79: JUMPDEST
00000c7a: PUSH2 0x0c85
00000c7d: PUSH1 0x14
00000c7f: PUSH1 0x02
00000c81: PUSH2 0x1404
00000c84: JUMP
00000c85: JUMPDEST
00000c86: SWAP1
00000c87: POP
00000c88: JUMPDEST
00000c89: DUP1
00000c8a: DUP4
00000c8b: ADD
00000c8c: PUSH1 0x20
00000c8e: ADD
00000c8f: MLOAD
00000c90: PUSH1 0x01
00000c92: PUSH1 0x60
00000c94: SHL
00000c95: SWAP1
00000c96: DIV
00000c97: JUMPDEST
00000c98: SWAP4
00000c99: SWAP3
00000c9a: POP
00000c9b: POP
00000c9c: POP
00000c9d: JUMP
00000c9e: JUMPDEST
00000c9f: PUSH0
00000ca0: DUP3
00000ca1: PUSH1 0x01
00000ca3: PUSH1 0x01
00000ca5: PUSH1 0xa0
00000ca7: SHL
00000ca8: SUB
00000ca9: AND
00000caa: DUP3
00000cab: PUSH1 0x40
00000cad: MLOAD
00000cae: PUSH2 0x0cb6
00000cb1: SWAP1
00000cb2: PUSH2 0x1833
00000cb5: JUMP
00000cb6: JUMPDEST
00000cb7: PUSH0
00000cb8: PUSH1 0x40
00000cba: MLOAD
00000cbb: DUP1
00000cbc: DUP4
00000cbd: SUB
00000cbe: DUP2
00000cbf: DUP6
00000cc0: DUP8
00000cc1: GAS
00000cc2: CALL
00000cc3: SWAP3
00000cc4: POP
00000cc5: POP
00000cc6: POP
00000cc7: RETURNDATASIZE
00000cc8: DUP1
00000cc9: PUSH0
00000cca: DUP2
00000ccb: EQ
00000ccc: PUSH2 0x0cf0
00000ccf: JUMPI
00000cd0: PUSH1 0x40
00000cd2: MLOAD
00000cd3: SWAP2
00000cd4: POP
00000cd5: PUSH1 0x1f
00000cd7: NOT
00000cd8: PUSH1 0x3f
00000cda: RETURNDATASIZE
00000cdb: ADD
00000cdc: AND
00000cdd: DUP3
00000cde: ADD
00000cdf: PUSH1 0x40
00000ce1: MSTORE
00000ce2: RETURNDATASIZE
00000ce3: DUP3
00000ce4: MSTORE
00000ce5: RETURNDATASIZE
00000ce6: PUSH0
00000ce7: PUSH1 0x20
00000ce9: DUP5
00000cea: ADD
00000ceb: RETURNDATACOPY
00000cec: PUSH2 0x0cf5
00000cef: JUMP
00000cf0: JUMPDEST
00000cf1: PUSH1 0x60
00000cf3: SWAP2
00000cf4: POP
00000cf5: JUMPDEST
00000cf6: POP
00000cf7: POP
00000cf8: SWAP1
00000cf9: POP
00000cfa: DUP1
00000cfb: PUSH2 0x0905
00000cfe: JUMPI
00000cff: PUSH1 0x40
00000d01: MLOAD
00000d02: PUSH4 0x0db2c7f1
00000d07: PUSH1 0xe3
00000d09: SHL
00000d0a: DUP2
00000d0b: MSTORE
00000d0c: PUSH1 0x04
00000d0e: ADD
00000d0f: PUSH1 0x40
00000d11: MLOAD
00000d12: DUP1
00000d13: SWAP2
00000d14: SUB
00000d15: SWAP1
00000d16: REVERT
00000d17: JUMPDEST
00000d18: PUSH0
00000d19: PUSH2 0x0d22
00000d1c: DUP4
00000d1d: DUP4
00000d1e: PUSH2 0x0a79
00000d21: JUMP
00000d22: JUMPDEST
00000d23: PUSH2 0x0d9f
00000d26: JUMPI
00000d27: PUSH0
00000d28: DUP4
00000d29: DUP2
00000d2a: MSTORE
00000d2b: PUSH1 0x20
00000d2d: DUP2
00000d2e: DUP2
00000d2f: MSTORE
00000d30: PUSH1 0x40
00000d32: DUP1
00000d33: DUP4
00000d34: KECCAK256
00000d35: PUSH1 0x01
00000d37: PUSH1 0x01
00000d39: PUSH1 0xa0
00000d3b: SHL
00000d3c: SUB
00000d3d: DUP7
00000d3e: AND
00000d3f: DUP5
00000d40: MSTORE
00000d41: SWAP1
00000d42: SWAP2
00000d43: MSTORE
00000d44: SWAP1
00000d45: KECCAK256
00000d46: DUP1
00000d47: SLOAD
00000d48: PUSH1 0xff
00000d4a: NOT
00000d4b: AND
00000d4c: PUSH1 0x01
00000d4e: OR
00000d4f: SWAP1
00000d50: SSTORE
00000d51: PUSH2 0x0d57
00000d54: CALLER
00000d55: SWAP1
00000d56: JUMP
00000d57: JUMPDEST
00000d58: PUSH1 0x01
00000d5a: PUSH1 0x01
00000d5c: PUSH1 0xa0
00000d5e: SHL
00000d5f: SUB
00000d60: AND
00000d61: DUP3
00000d62: PUSH1 0x01
00000d64: PUSH1 0x01
00000d66: PUSH1 0xa0
00000d68: SHL
00000d69: SUB
00000d6a: AND
00000d6b: DUP5
00000d6c: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d
00000d8d: PUSH1 0x40
00000d8f: MLOAD
00000d90: PUSH1 0x40
00000d92: MLOAD
00000d93: DUP1
00000d94: SWAP2
00000d95: SUB
00000d96: SWAP1
00000d97: LOG4
00000d98: POP
00000d99: PUSH1 0x01
00000d9b: PUSH2 0x06ca
00000d9e: JUMP
00000d9f: JUMPDEST
00000da0: POP
00000da1: PUSH0
00000da2: PUSH2 0x06ca
00000da5: JUMP
00000da6: JUMPDEST
00000da7: PUSH2 0x07a5
00000daa: DUP5
00000dab: DUP6
00000dac: PUSH1 0x01
00000dae: PUSH1 0x01
00000db0: PUSH1 0xa0
00000db2: SHL
00000db3: SUB
00000db4: AND
00000db5: PUSH4 0x23b872dd
00000dba: DUP7
00000dbb: DUP7
00000dbc: DUP7
00000dbd: PUSH1 0x40
00000dbf: MLOAD
00000dc0: PUSH1 0x24
00000dc2: ADD
00000dc3: PUSH2 0x0dce
00000dc6: SWAP4
00000dc7: SWAP3
00000dc8: SWAP2
00000dc9: SWAP1
00000dca: PUSH2 0x183a
00000dcd: JUMP
00000dce: JUMPDEST
00000dcf: PUSH1 0x40
00000dd1: MLOAD
00000dd2: PUSH1 0x20
00000dd4: DUP2
00000dd5: DUP4
00000dd6: SUB
00000dd7: SUB
00000dd8: DUP2
00000dd9: MSTORE
00000dda: SWAP1
00000ddb: PUSH1 0x40
00000ddd: MSTORE
00000dde: SWAP2
00000ddf: POP
00000de0: PUSH1 0xe0
00000de2: SHL
00000de3: PUSH1 0x20
00000de5: DUP3
00000de6: ADD
00000de7: DUP1
00000de8: MLOAD
00000de9: PUSH1 0x01
00000deb: PUSH1 0x01
00000ded: PUSH1 0xe0
00000def: SHL
00000df0: SUB
00000df1: DUP4
00000df2: DUP2
00000df3: DUP4
00000df4: AND
00000df5: OR
00000df6: DUP4
00000df7: MSTORE
00000df8: POP
00000df9: POP
00000dfa: POP
00000dfb: POP
00000dfc: PUSH2 0x0f3a
00000dff: JUMP
00000e00: JUMPDEST
00000e01: PUSH0
00000e02: PUSH2 0x0e0b
00000e05: DUP4
00000e06: DUP4
00000e07: PUSH2 0x0a79
00000e0a: JUMP
00000e0b: JUMPDEST
00000e0c: ISZERO
00000e0d: PUSH2 0x0d9f
00000e10: JUMPI
00000e11: PUSH0
00000e12: DUP4
00000e13: DUP2
00000e14: MSTORE
00000e15: PUSH1 0x20
00000e17: DUP2
00000e18: DUP2
00000e19: MSTORE
00000e1a: PUSH1 0x40
00000e1c: DUP1
00000e1d: DUP4
00000e1e: KECCAK256
00000e1f: PUSH1 0x01
00000e21: PUSH1 0x01
00000e23: PUSH1 0xa0
00000e25: SHL
00000e26: SUB
00000e27: DUP7
00000e28: AND
00000e29: DUP1
00000e2a: DUP6
00000e2b: MSTORE
00000e2c: SWAP3
00000e2d: MSTORE
00000e2e: DUP1
00000e2f: DUP4
00000e30: KECCAK256
00000e31: DUP1
00000e32: SLOAD
00000e33: PUSH1 0xff
00000e35: NOT
00000e36: AND
00000e37: SWAP1
00000e38: SSTORE
00000e39: MLOAD
00000e3a: CALLER
00000e3b: SWAP3
00000e3c: DUP7
00000e3d: SWAP2
00000e3e: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b
00000e5f: SWAP2
00000e60: SWAP1
00000e61: LOG4
00000e62: POP
00000e63: PUSH1 0x01
00000e65: PUSH2 0x06ca
00000e68: JUMP
00000e69: JUMPDEST
00000e6a: PUSH2 0x0905
00000e6d: DUP4
00000e6e: DUP5
00000e6f: PUSH1 0x01
00000e71: PUSH1 0x01
00000e73: PUSH1 0xa0
00000e75: SHL
00000e76: SUB
00000e77: AND
00000e78: PUSH4 0xa9059cbb
00000e7d: DUP6
00000e7e: DUP6
00000e7f: PUSH1 0x40
00000e81: MLOAD
00000e82: PUSH1 0x24
00000e84: ADD
00000e85: PUSH2 0x0dce
00000e88: SWAP3
00000e89: SWAP2
00000e8a: SWAP1
00000e8b: PUSH2 0x1825
00000e8e: JUMP
00000e8f: JUMPDEST
00000e90: PUSH0
00000e91: DUP3
00000e92: DUP2
00000e93: MSTORE
00000e94: PUSH1 0x03
00000e96: PUSH1 0x20
00000e98: MSTORE
00000e99: PUSH1 0x40
00000e9b: SWAP1
00000e9c: KECCAK256
00000e9d: SLOAD
00000e9e: PUSH1 0x01
00000ea0: PUSH1 0x01
00000ea2: PUSH1 0xa0
00000ea4: SHL
00000ea5: SUB
00000ea6: AND
00000ea7: PUSH0
00000ea8: DUP1
00000ea9: MLOAD
00000eaa: PUSH1 0x20
00000eac: PUSH2 0x1863
00000eaf: DUP4
00000eb0: CODECOPY
00000eb1: DUP2
00000eb2: MLOAD
00000eb3: SWAP2
00000eb4: MSTORE
00000eb5: DUP2
00000eb6: ISZERO
00000eb7: PUSH2 0x0ec6
00000eba: JUMPI
00000ebb: PUSH2 0x0ec4
00000ebe: DUP2
00000ebf: DUP4
00000ec0: PUSH2 0x0e00
00000ec3: JUMP
00000ec4: JUMPDEST
00000ec5: POP
00000ec6: JUMPDEST
00000ec7: DUP3
00000ec8: PUSH1 0x01
00000eca: PUSH1 0x01
00000ecc: PUSH1 0xa0
00000ece: SHL
00000ecf: SUB
00000ed0: AND
00000ed1: EXTCODESIZE
00000ed2: PUSH0
00000ed3: SUB
00000ed4: PUSH2 0x0ef2
00000ed7: JUMPI
00000ed8: DUP3
00000ed9: PUSH1 0x40
00000edb: MLOAD
00000edc: PUSH4 0x3283c86d
00000ee1: PUSH1 0xe2
00000ee3: SHL
00000ee4: DUP2
00000ee5: MSTORE
00000ee6: PUSH1 0x04
00000ee8: ADD
00000ee9: PUSH2 0x05c6
00000eec: SWAP2
00000eed: SWAP1
00000eee: PUSH2 0x17ae
00000ef1: JUMP
00000ef2: JUMPDEST
00000ef3: PUSH0
00000ef4: DUP5
00000ef5: DUP2
00000ef6: MSTORE
00000ef7: PUSH1 0x03
00000ef9: PUSH1 0x20
00000efb: MSTORE
00000efc: PUSH1 0x40
00000efe: SWAP1
00000eff: KECCAK256
00000f00: DUP1
00000f01: SLOAD
00000f02: PUSH1 0x01
00000f04: PUSH1 0x01
00000f06: PUSH1 0xa0
00000f08: SHL
00000f09: SUB
00000f0a: NOT
00000f0b: AND
00000f0c: PUSH1 0x01
00000f0e: PUSH1 0x01
00000f10: PUSH1 0xa0
00000f12: SHL
00000f13: SUB
00000f14: DUP6
00000f15: AND
00000f16: OR
00000f17: SWAP1
00000f18: SSTORE
00000f19: PUSH2 0x07a3
00000f1c: DUP2
00000f1d: DUP5
00000f1e: PUSH2 0x0d17
00000f21: JUMP
00000f22: JUMPDEST
00000f23: PUSH0
00000f24: PUSH2 0x0f2f
00000f27: PUSH1 0x14
00000f29: PUSH1 0x05
00000f2b: PUSH2 0x1404
00000f2e: JUMP
00000f2f: JUMPDEST
00000f30: DUP3
00000f31: MLOAD
00000f32: LT
00000f33: ISZERO
00000f34: SWAP1
00000f35: POP
00000f36: SWAP2
00000f37: SWAP1
00000f38: POP
00000f39: JUMP
00000f3a: JUMPDEST
00000f3b: PUSH0
00000f3c: DUP1
00000f3d: PUSH1 0x20
00000f3f: PUSH0
00000f40: DUP5
00000f41: MLOAD
00000f42: PUSH1 0x20
00000f44: DUP7
00000f45: ADD
00000f46: PUSH0
00000f47: DUP9
00000f48: GAS
00000f49: CALL
00000f4a: DUP1
00000f4b: PUSH2 0x0f59
00000f4e: JUMPI
00000f4f: PUSH1 0x40
00000f51: MLOAD
00000f52: RETURNDATASIZE
00000f53: PUSH0
00000f54: DUP3
00000f55: RETURNDATACOPY
00000f56: RETURNDATASIZE
00000f57: DUP2
00000f58: REVERT
00000f59: JUMPDEST
00000f5a: POP
00000f5b: POP
00000f5c: PUSH0
00000f5d: MLOAD
00000f5e: RETURNDATASIZE
00000f5f: SWAP2
00000f60: POP
00000f61: DUP2
00000f62: ISZERO
00000f63: PUSH2 0x0f70
00000f66: JUMPI
00000f67: DUP1
00000f68: PUSH1 0x01
00000f6a: EQ
00000f6b: ISZERO
00000f6c: PUSH2 0x0f7d
00000f6f: JUMP
00000f70: JUMPDEST
00000f71: PUSH1 0x01
00000f73: PUSH1 0x01
00000f75: PUSH1 0xa0
00000f77: SHL
00000f78: SUB
00000f79: DUP5
00000f7a: AND
00000f7b: EXTCODESIZE
00000f7c: ISZERO
00000f7d: JUMPDEST
00000f7e: ISZERO
00000f7f: PUSH2 0x07a5
00000f82: JUMPI
00000f83: DUP4
00000f84: PUSH1 0x40
00000f86: MLOAD
00000f87: PUSH4 0x5274afe7
00000f8c: PUSH1 0xe0
00000f8e: SHL
00000f8f: DUP2
00000f90: MSTORE
00000f91: PUSH1 0x04
00000f93: ADD
00000f94: PUSH2 0x05c6
00000f97: SWAP2
00000f98: SWAP1
00000f99: PUSH2 0x17ae
00000f9c: JUMP
00000f9d: JUMPDEST
00000f9e: PUSH0
00000f9f: DUP1
00000fa0: DUP6
00000fa1: DUP6
00000fa2: GT
00000fa3: ISZERO
00000fa4: PUSH2 0x0fae
00000fa7: JUMPI
00000fa8: PUSH2 0x0fae
00000fab: PUSH0
00000fac: DUP1
00000fad: REVERT
00000fae: JUMPDEST
00000faf: DUP4
00000fb0: DUP7
00000fb1: GT
00000fb2: ISZERO
00000fb3: PUSH2 0x0fbd
00000fb6: JUMPI
00000fb7: PUSH2 0x0fbd
00000fba: PUSH0
00000fbb: DUP1
00000fbc: REVERT
00000fbd: JUMPDEST
00000fbe: POP
00000fbf: POP
00000fc0: DUP3
00000fc1: ADD
00000fc2: SWAP4
00000fc3: SWAP2
00000fc4: SWAP1
00000fc5: SWAP3
00000fc6: SUB
00000fc7: SWAP2
00000fc8: POP
00000fc9: JUMP
00000fca: JUMPDEST
00000fcb: DUP1
00000fcc: JUMPDEST
00000fcd: DUP2
00000fce: EQ
00000fcf: PUSH2 0x058c
00000fd2: JUMPI
00000fd3: PUSH0
00000fd4: DUP1
00000fd5: REVERT
00000fd6: JUMPDEST
00000fd7: DUP1
00000fd8: CALLDATALOAD
00000fd9: PUSH2 0x06ca
00000fdc: DUP2
00000fdd: PUSH2 0x0fca
00000fe0: JUMP
00000fe1: JUMPDEST
00000fe2: PUSH4 0x4e487b71
00000fe7: PUSH1 0xe0
00000fe9: SHL
00000fea: PUSH0
00000feb: MSTORE
00000fec: PUSH1 0x41
00000fee: PUSH1 0x04
00000ff0: MSTORE
00000ff1: PUSH1 0x24
00000ff3: PUSH0
00000ff4: REVERT
00000ff5: JUMPDEST
00000ff6: PUSH1 0x1f
00000ff8: NOT
00000ff9: PUSH1 0x1f
00000ffb: DUP4
00000ffc: ADD
00000ffd: AND
00000ffe: DUP2
00000fff: ADD
00001000: DUP2
00001001: DUP2
00001002: LT
00001003: PUSH8 0xffffffffffffffff
0000100c: DUP3
0000100d: GT
0000100e: OR
0000100f: ISZERO
00001010: PUSH2 0x101b
00001013: JUMPI
00001014: PUSH2 0x101b
00001017: PUSH2 0x0fe1
0000101a: JUMP
0000101b: JUMPDEST
0000101c: PUSH1 0x40
0000101e: MSTORE
0000101f: POP
00001020: POP
00001021: JUMP
00001022: JUMPDEST
00001023: PUSH0
00001024: PUSH2 0x102c
00001027: PUSH1 0x40
00001029: MLOAD
0000102a: SWAP1
0000102b: JUMP
0000102c: JUMPDEST
0000102d: SWAP1
0000102e: POP
0000102f: PUSH2 0x05cf
00001032: DUP3
00001033: DUP3
00001034: PUSH2 0x0ff5
00001037: JUMP
00001038: JUMPDEST
00001039: PUSH0
0000103a: PUSH8 0xffffffffffffffff
00001043: DUP3
00001044: GT
00001045: ISZERO
00001046: PUSH2 0x1051
00001049: JUMPI
0000104a: PUSH2 0x1051
0000104d: PUSH2 0x0fe1
00001050: JUMP
00001051: JUMPDEST
00001052: PUSH1 0x1f
00001054: NOT
00001055: PUSH1 0x1f
00001057: DUP4
00001058: ADD
00001059: AND
0000105a: PUSH1 0x20
0000105c: ADD
0000105d: SWAP3
0000105e: SWAP2
0000105f: POP
00001060: POP
00001061: JUMP
00001062: JUMPDEST
00001063: DUP3
00001064: DUP2
00001065: DUP4
00001066: CALLDATACOPY
00001067: POP
00001068: PUSH0
00001069: SWAP2
0000106a: ADD
0000106b: MSTORE
0000106c: JUMP
0000106d: JUMPDEST
0000106e: PUSH0
0000106f: PUSH2 0x107f
00001072: PUSH2 0x107a
00001075: DUP5
00001076: PUSH2 0x1038
00001079: JUMP
0000107a: JUMPDEST
0000107b: PUSH2 0x1022
0000107e: JUMP
0000107f: JUMPDEST
00001080: SWAP1
00001081: POP
00001082: DUP3
00001083: DUP2
00001084: MSTORE
00001085: PUSH1 0x20
00001087: DUP2
00001088: ADD
00001089: DUP5
0000108a: DUP5
0000108b: DUP5
0000108c: ADD
0000108d: GT
0000108e: ISZERO
0000108f: PUSH2 0x1099
00001092: JUMPI
00001093: PUSH2 0x1099
00001096: PUSH0
00001097: DUP1
00001098: REVERT
00001099: JUMPDEST
0000109a: PUSH2 0x10a4
0000109d: DUP5
0000109e: DUP3
0000109f: DUP6
000010a0: PUSH2 0x1062
000010a3: JUMP
000010a4: JUMPDEST
000010a5: POP
000010a6: SWAP4
000010a7: SWAP3
000010a8: POP
000010a9: POP
000010aa: POP
000010ab: JUMP
000010ac: JUMPDEST
000010ad: PUSH0
000010ae: DUP3
000010af: PUSH1 0x1f
000010b1: DUP4
000010b2: ADD
000010b3: SLT
000010b4: PUSH2 0x10be
000010b7: JUMPI
000010b8: PUSH2 0x10be
000010bb: PUSH0
000010bc: DUP1
000010bd: REVERT
000010be: JUMPDEST
000010bf: DUP2
000010c0: CALLDATALOAD
000010c1: PUSH2 0x10ce
000010c4: DUP5
000010c5: DUP3
000010c6: PUSH1 0x20
000010c8: DUP7
000010c9: ADD
000010ca: PUSH2 0x106d
000010cd: JUMP
000010ce: JUMPDEST
000010cf: SWAP5
000010d0: SWAP4
000010d1: POP
000010d2: POP
000010d3: POP
000010d4: POP
000010d5: JUMP
000010d6: JUMPDEST
000010d7: PUSH0
000010d8: PUSH8 0xffffffffffffffff
000010e1: DUP3
000010e2: GT
000010e3: ISZERO
000010e4: PUSH2 0x10ef
000010e7: JUMPI
000010e8: PUSH2 0x10ef
000010eb: PUSH2 0x0fe1
000010ee: JUMP
000010ef: JUMPDEST
000010f0: POP
000010f1: PUSH1 0x20
000010f3: SWAP1
000010f4: DUP2
000010f5: MUL
000010f6: ADD
000010f7: SWAP1
000010f8: JUMP
000010f9: JUMPDEST
000010fa: PUSH0
000010fb: PUSH1 0x01
000010fd: PUSH1 0x01
000010ff: PUSH1 0xa0
00001101: SHL
00001102: SUB
00001103: DUP3
00001104: AND
00001105: PUSH2 0x06ca
00001108: JUMP
00001109: JUMPDEST
0000110a: PUSH2 0x0fcc
0000110d: DUP2
0000110e: PUSH2 0x10f9
00001111: JUMP
00001112: JUMPDEST
00001113: DUP1
00001114: CALLDATALOAD
00001115: PUSH2 0x06ca
00001118: DUP2
00001119: PUSH2 0x1109
0000111c: JUMP
0000111d: JUMPDEST
0000111e: PUSH0
0000111f: PUSH2 0x112a
00001122: PUSH2 0x107a
00001125: DUP5
00001126: PUSH2 0x10d6
00001129: JUMP
0000112a: JUMPDEST
0000112b: DUP4
0000112c: DUP2
0000112d: MSTORE
0000112e: SWAP1
0000112f: POP
00001130: PUSH1 0x20
00001132: DUP1
00001133: DUP3
00001134: ADD
00001135: SWAP1
00001136: DUP5
00001137: MUL
00001138: DUP4
00001139: ADD
0000113a: DUP6
0000113b: DUP2
0000113c: GT
0000113d: ISZERO
0000113e: PUSH2 0x1148
00001141: JUMPI
00001142: PUSH2 0x1148
00001145: PUSH0
00001146: DUP1
00001147: REVERT
00001148: JUMPDEST
00001149: DUP4
0000114a: JUMPDEST
0000114b: DUP2
0000114c: DUP2
0000114d: LT
0000114e: ISZERO
0000114f: PUSH2 0x116c
00001152: JUMPI
00001153: DUP1
00001154: PUSH2 0x115d
00001157: DUP9
00001158: DUP3
00001159: PUSH2 0x1112
0000115c: JUMP
0000115d: JUMPDEST
0000115e: DUP5
0000115f: MSTORE
00001160: POP
00001161: PUSH1 0x20
00001163: SWAP3
00001164: DUP4
00001165: ADD
00001166: SWAP3
00001167: ADD
00001168: PUSH2 0x114a
0000116b: JUMP
0000116c: JUMPDEST
0000116d: POP
0000116e: POP
0000116f: POP
00001170: SWAP4
00001171: SWAP3
00001172: POP
00001173: POP
00001174: POP
00001175: JUMP
00001176: JUMPDEST
00001177: PUSH0
00001178: DUP3
00001179: PUSH1 0x1f
0000117b: DUP4
0000117c: ADD
0000117d: SLT
0000117e: PUSH2 0x1188
00001181: JUMPI
00001182: PUSH2 0x1188
00001185: PUSH0
00001186: DUP1
00001187: REVERT
00001188: JUMPDEST
00001189: DUP2
0000118a: CALLDATALOAD
0000118b: PUSH2 0x10ce
0000118e: DUP5
0000118f: DUP3
00001190: PUSH1 0x20
00001192: DUP7
00001193: ADD
00001194: PUSH2 0x111d
00001197: JUMP
00001198: JUMPDEST
00001199: PUSH1 0xff
0000119b: DUP2
0000119c: AND
0000119d: PUSH2 0x0fcc
000011a0: JUMP
000011a1: JUMPDEST
000011a2: DUP1
000011a3: CALLDATALOAD
000011a4: PUSH2 0x06ca
000011a7: DUP2
000011a8: PUSH2 0x1198
000011ab: JUMP
000011ac: JUMPDEST
000011ad: DUP1
000011ae: ISZERO
000011af: ISZERO
000011b0: PUSH2 0x0fcc
000011b3: JUMP
000011b4: JUMPDEST
000011b5: DUP1
000011b6: CALLDATALOAD
000011b7: PUSH2 0x06ca
000011ba: DUP2
000011bb: PUSH2 0x11ac
000011be: JUMP
000011bf: JUMPDEST
000011c0: PUSH0
000011c1: PUSH2 0x0140
000011c4: DUP3
000011c5: DUP5
000011c6: SUB
000011c7: SLT
000011c8: ISZERO
000011c9: PUSH2 0x11d3
000011cc: JUMPI
000011cd: PUSH2 0x11d3
000011d0: PUSH0
000011d1: DUP1
000011d2: REVERT
000011d3: JUMPDEST
000011d4: PUSH2 0x11de
000011d7: PUSH2 0x0140
000011da: PUSH2 0x1022
000011dd: JUMP
000011de: JUMPDEST
000011df: SWAP1
000011e0: POP
000011e1: PUSH0
000011e2: PUSH2 0x11eb
000011e5: DUP5
000011e6: DUP5
000011e7: PUSH2 0x0fd6
000011ea: JUMP
000011eb: JUMPDEST
000011ec: DUP3
000011ed: MSTORE
000011ee: POP
000011ef: PUSH1 0x20
000011f1: PUSH2 0x11fc
000011f4: DUP5
000011f5: DUP5
000011f6: DUP4
000011f7: ADD
000011f8: PUSH2 0x0fd6
000011fb: JUMP
000011fc: JUMPDEST
000011fd: PUSH1 0x20
000011ff: DUP4
00001200: ADD
00001201: MSTORE
00001202: POP
00001203: PUSH1 0x40
00001205: PUSH2 0x1210
00001208: DUP5
00001209: DUP3
0000120a: DUP6
0000120b: ADD
0000120c: PUSH2 0x0fd6
0000120f: JUMP
00001210: JUMPDEST
00001211: PUSH1 0x40
00001213: DUP4
00001214: ADD
00001215: MSTORE
00001216: POP
00001217: PUSH1 0x60
00001219: PUSH2 0x1224
0000121c: DUP5
0000121d: DUP3
0000121e: DUP6
0000121f: ADD
00001220: PUSH2 0x0fd6
00001223: JUMP
00001224: JUMPDEST
00001225: PUSH1 0x60
00001227: DUP4
00001228: ADD
00001229: MSTORE
0000122a: POP
0000122b: PUSH1 0x80
0000122d: PUSH2 0x1238
00001230: DUP5
00001231: DUP3
00001232: DUP6
00001233: ADD
00001234: PUSH2 0x0fd6
00001237: JUMP
00001238: JUMPDEST
00001239: PUSH1 0x80
0000123b: DUP4
0000123c: ADD
0000123d: MSTORE
0000123e: POP
0000123f: PUSH1 0xa0
00001241: PUSH2 0x124c
00001244: DUP5
00001245: DUP3
00001246: DUP6
00001247: ADD
00001248: PUSH2 0x0fd6
0000124b: JUMP
0000124c: JUMPDEST
0000124d: PUSH1 0xa0
0000124f: DUP4
00001250: ADD
00001251: MSTORE
00001252: POP
00001253: PUSH1 0xc0
00001255: PUSH2 0x1260
00001258: DUP5
00001259: DUP3
0000125a: DUP6
0000125b: ADD
0000125c: PUSH2 0x0fd6
0000125f: JUMP
00001260: JUMPDEST
00001261: PUSH1 0xc0
00001263: DUP4
00001264: ADD
00001265: MSTORE
00001266: POP
00001267: PUSH1 0xe0
00001269: PUSH2 0x1274
0000126c: DUP5
0000126d: DUP3
0000126e: DUP6
0000126f: ADD
00001270: PUSH2 0x11a1
00001273: JUMP
00001274: JUMPDEST
00001275: PUSH1 0xe0
00001277: DUP4
00001278: ADD
00001279: MSTORE
0000127a: POP
0000127b: PUSH2 0x0100
0000127e: PUSH2 0x1289
00001281: DUP5
00001282: DUP3
00001283: DUP6
00001284: ADD
00001285: PUSH2 0x11a1
00001288: JUMP
00001289: JUMPDEST
0000128a: PUSH2 0x0100
0000128d: DUP4
0000128e: ADD
0000128f: MSTORE
00001290: POP
00001291: PUSH2 0x0120
00001294: PUSH2 0x129f
00001297: DUP5
00001298: DUP3
00001299: DUP6
0000129a: ADD
0000129b: PUSH2 0x11b4
0000129e: JUMP
0000129f: JUMPDEST
000012a0: PUSH2 0x0120
000012a3: DUP4
000012a4: ADD
000012a5: MSTORE
000012a6: POP
000012a7: SWAP3
000012a8: SWAP2
000012a9: POP
000012aa: POP
000012ab: JUMP
000012ac: JUMPDEST
000012ad: PUSH0
000012ae: PUSH1 0x60
000012b0: DUP3
000012b1: DUP5
000012b2: SUB
000012b3: SLT
000012b4: ISZERO
000012b5: PUSH2 0x12bf
000012b8: JUMPI
000012b9: PUSH2 0x12bf
000012bc: PUSH0
000012bd: DUP1
000012be: REVERT
000012bf: JUMPDEST
000012c0: PUSH2 0x12c9
000012c3: PUSH1 0x60
000012c5: PUSH2 0x1022
000012c8: JUMP
000012c9: JUMPDEST
000012ca: SWAP1
000012cb: POP
000012cc: PUSH0
000012cd: PUSH2 0x12d6
000012d0: DUP5
000012d1: DUP5
000012d2: PUSH2 0x0fd6
000012d5: JUMP
000012d6: JUMPDEST
000012d7: DUP3
000012d8: MSTORE
000012d9: POP
000012da: PUSH1 0x20
000012dc: PUSH2 0x12e7
000012df: DUP5
000012e0: DUP5
000012e1: DUP4
000012e2: ADD
000012e3: PUSH2 0x0fd6
000012e6: JUMP
000012e7: JUMPDEST
000012e8: PUSH1 0x20
000012ea: DUP4
000012eb: ADD
000012ec: MSTORE
000012ed: POP
000012ee: PUSH1 0x40
000012f0: PUSH2 0x12fb
000012f3: DUP5
000012f4: DUP3
000012f5: DUP6
000012f6: ADD
000012f7: PUSH2 0x11b4
000012fa: JUMP
000012fb: JUMPDEST
000012fc: PUSH1 0x40
000012fe: DUP4
000012ff: ADD
00001300: MSTORE
00001301: POP
00001302: SWAP3
00001303: SWAP2
00001304: POP
00001305: POP
00001306: JUMP
00001307: JUMPDEST
00001308: PUSH0
00001309: DUP1
0000130a: PUSH0
0000130b: DUP1
0000130c: PUSH0
0000130d: DUP1
0000130e: PUSH2 0x0220
00001311: DUP8
00001312: DUP10
00001313: SUB
00001314: SLT
00001315: ISZERO
00001316: PUSH2 0x1320
00001319: JUMPI
0000131a: PUSH2 0x1320
0000131d: PUSH0
0000131e: DUP1
0000131f: REVERT
00001320: JUMPDEST
00001321: PUSH0
00001322: PUSH2 0x132b
00001325: DUP10
00001326: DUP10
00001327: PUSH2 0x0fd6
0000132a: JUMP
0000132b: JUMPDEST
0000132c: SWAP7
0000132d: POP
0000132e: POP
0000132f: PUSH1 0x20
00001331: DUP8
00001332: ADD
00001333: CALLDATALOAD
00001334: PUSH8 0xffffffffffffffff
0000133d: DUP2
0000133e: GT
0000133f: ISZERO
00001340: PUSH2 0x134a
00001343: JUMPI
00001344: PUSH2 0x134a
00001347: PUSH0
00001348: DUP1
00001349: REVERT
0000134a: JUMPDEST
0000134b: PUSH2 0x1356
0000134e: DUP10
0000134f: DUP3
00001350: DUP11
00001351: ADD
00001352: PUSH2 0x10ac
00001355: JUMP
00001356: JUMPDEST
00001357: SWAP6
00001358: POP
00001359: POP
0000135a: PUSH1 0x40
0000135c: DUP8
0000135d: ADD
0000135e: CALLDATALOAD
0000135f: PUSH8 0xffffffffffffffff
00001368: DUP2
00001369: GT
0000136a: ISZERO
0000136b: PUSH2 0x1375
0000136e: JUMPI
0000136f: PUSH2 0x1375
00001372: PUSH0
00001373: DUP1
00001374: REVERT
00001375: JUMPDEST
00001376: PUSH2 0x1381
00001379: DUP10
0000137a: DUP3
0000137b: DUP11
0000137c: ADD
0000137d: PUSH2 0x1176
00001380: JUMP
00001381: JUMPDEST
00001382: SWAP5
00001383: POP
00001384: POP
00001385: PUSH1 0x60
00001387: PUSH2 0x1392
0000138a: DUP10
0000138b: DUP3
0000138c: DUP11
0000138d: ADD
0000138e: PUSH2 0x11bf
00001391: JUMP
00001392: JUMPDEST
00001393: SWAP4
00001394: POP
00001395: POP
00001396: PUSH2 0x01a0
00001399: PUSH2 0x13a4
0000139c: DUP10
0000139d: DUP3
0000139e: DUP11
0000139f: ADD
000013a0: PUSH2 0x12ac
000013a3: JUMP
000013a4: JUMPDEST
000013a5: SWAP3
000013a6: POP
000013a7: POP
000013a8: PUSH2 0x0200
000013ab: DUP8
000013ac: ADD
000013ad: CALLDATALOAD
000013ae: PUSH8 0xffffffffffffffff
000013b7: DUP2
000013b8: GT
000013b9: ISZERO
000013ba: PUSH2 0x13c4
000013bd: JUMPI
000013be: PUSH2 0x13c4
000013c1: PUSH0
000013c2: DUP1
000013c3: REVERT
000013c4: JUMPDEST
000013c5: PUSH2 0x13d0
000013c8: DUP10
000013c9: DUP3
000013ca: DUP11
000013cb: ADD
000013cc: PUSH2 0x10ac
000013cf: JUMP
000013d0: JUMPDEST
000013d1: SWAP2
000013d2: POP
000013d3: POP
000013d4: SWAP3
000013d5: SWAP6
000013d6: POP
000013d7: SWAP3
000013d8: SWAP6
000013d9: POP
000013da: SWAP3
000013db: SWAP6
000013dc: JUMP
000013dd: JUMPDEST
000013de: PUSH4 0x4e487b71
000013e3: PUSH1 0xe0
000013e5: SHL
000013e6: PUSH0
000013e7: MSTORE
000013e8: PUSH1 0x11
000013ea: PUSH1 0x04
000013ec: MSTORE
000013ed: PUSH1 0x24
000013ef: PUSH0
000013f0: REVERT
000013f1: JUMPDEST
000013f2: DUP1
000013f3: DUP3
000013f4: ADD
000013f5: DUP1
000013f6: DUP3
000013f7: GT
000013f8: ISZERO
000013f9: PUSH2 0x06ca
000013fc: JUMPI
000013fd: PUSH2 0x06ca
00001400: PUSH2 0x13dd
00001403: JUMP
00001404: JUMPDEST
00001405: DUP2
00001406: DUP2
00001407: MUL
00001408: DUP1
00001409: DUP3
0000140a: ISZERO
0000140b: DUP4
0000140c: DUP3
0000140d: DIV
0000140e: DUP6
0000140f: EQ
00001410: OR
00001411: PUSH2 0x141c
00001414: JUMPI
00001415: PUSH2 0x141c
00001418: PUSH2 0x13dd
0000141b: JUMP
0000141c: JUMPDEST
0000141d: POP
0000141e: SWAP3
0000141f: SWAP2
00001420: POP
00001421: POP
00001422: JUMP
00001423: JUMPDEST
00001424: DUP3
00001425: DUP2
00001426: DUP4
00001427: MCOPY
00001428: POP
00001429: PUSH0
0000142a: SWAP2
0000142b: ADD
0000142c: MSTORE
0000142d: JUMP
0000142e: JUMPDEST
0000142f: PUSH0
00001430: PUSH2 0x1437
00001433: DUP3
00001434: MLOAD
00001435: SWAP1
00001436: JUMP
00001437: JUMPDEST
00001438: DUP1
00001439: DUP5
0000143a: MSTORE
0000143b: PUSH1 0x20
0000143d: DUP5
0000143e: ADD
0000143f: SWAP4
00001440: POP
00001441: PUSH2 0x144e
00001444: DUP2
00001445: DUP6
00001446: PUSH1 0x20
00001448: DUP7
00001449: ADD
0000144a: PUSH2 0x1423
0000144d: JUMP
0000144e: JUMPDEST
0000144f: PUSH1 0x1f
00001451: ADD
00001452: PUSH1 0x1f
00001454: NOT
00001455: AND
00001456: SWAP3
00001457: SWAP1
00001458: SWAP3
00001459: ADD
0000145a: SWAP3
0000145b: SWAP2
0000145c: POP
0000145d: POP
0000145e: JUMP
0000145f: JUMPDEST
00001460: PUSH2 0x1468
00001463: DUP2
00001464: PUSH2 0x10f9
00001467: JUMP
00001468: JUMPDEST
00001469: DUP3
0000146a: MSTORE
0000146b: POP
0000146c: POP
0000146d: JUMP
0000146e: JUMPDEST
0000146f: PUSH0
00001470: PUSH2 0x1479
00001473: DUP4
00001474: DUP4
00001475: PUSH2 0x145f
00001478: JUMP
00001479: JUMPDEST
0000147a: POP
0000147b: POP
0000147c: PUSH1 0x20
0000147e: ADD
0000147f: SWAP1
00001480: JUMP
00001481: JUMPDEST
00001482: PUSH0
00001483: PUSH2 0x148a
00001486: DUP3
00001487: MLOAD
00001488: SWAP1
00001489: JUMP
0000148a: JUMPDEST
0000148b: DUP1
0000148c: DUP5
0000148d: MSTORE
0000148e: PUSH1 0x20
00001490: SWAP4
00001491: DUP5
00001492: ADD
00001493: SWAP4
00001494: DUP4
00001495: ADD
00001496: DUP1
00001497: PUSH0
00001498: JUMPDEST
00001499: DUP4
0000149a: DUP2
0000149b: LT
0000149c: ISZERO
0000149d: PUSH2 0x14bd
000014a0: JUMPI
000014a1: DUP2
000014a2: MLOAD
000014a3: PUSH2 0x14ac
000014a6: DUP9
000014a7: DUP3
000014a8: PUSH2 0x146e
000014ab: JUMP
000014ac: JUMPDEST
000014ad: SWAP8
000014ae: POP
000014af: PUSH1 0x20
000014b1: DUP4
000014b2: ADD
000014b3: SWAP3
000014b4: POP
000014b5: POP
000014b6: PUSH1 0x01
000014b8: ADD
000014b9: PUSH2 0x1498
000014bc: JUMP
000014bd: JUMPDEST
000014be: POP
000014bf: SWAP5
000014c0: SWAP6
000014c1: SWAP5
000014c2: POP
000014c3: POP
000014c4: POP
000014c5: POP
000014c6: POP
000014c7: JUMP
000014c8: JUMPDEST
000014c9: DUP1
000014ca: PUSH2 0x1468
000014cd: JUMP
000014ce: JUMPDEST
000014cf: PUSH1 0xff
000014d1: DUP2
000014d2: AND
000014d3: PUSH2 0x1468
000014d6: JUMP
000014d7: JUMPDEST
000014d8: DUP1
000014d9: ISZERO
000014da: ISZERO
000014db: PUSH2 0x1468
000014de: JUMP
000014df: JUMPDEST
000014e0: DUP1
000014e1: MLOAD
000014e2: PUSH2 0x0140
000014e5: DUP4
000014e6: ADD
000014e7: SWAP1
000014e8: PUSH2 0x14f1
000014eb: DUP5
000014ec: DUP3
000014ed: PUSH2 0x14c8
000014f0: JUMP
000014f1: JUMPDEST
000014f2: POP
000014f3: PUSH1 0x20
000014f5: DUP3
000014f6: ADD
000014f7: MLOAD
000014f8: PUSH2 0x1504
000014fb: PUSH1 0x20
000014fd: DUP6
000014fe: ADD
000014ff: DUP3
00001500: PUSH2 0x14c8
00001503: JUMP
00001504: JUMPDEST
00001505: POP
00001506: PUSH1 0x40
00001508: DUP3
00001509: ADD
0000150a: MLOAD
0000150b: PUSH2 0x1517
0000150e: PUSH1 0x40
00001510: DUP6
00001511: ADD
00001512: DUP3
00001513: PUSH2 0x14c8
00001516: JUMP
00001517: JUMPDEST
00001518: POP
00001519: PUSH1 0x60
0000151b: DUP3
0000151c: ADD
0000151d: MLOAD
0000151e: PUSH2 0x152a
00001521: PUSH1 0x60
00001523: DUP6
00001524: ADD
00001525: DUP3
00001526: PUSH2 0x14c8
00001529: JUMP
0000152a: JUMPDEST
0000152b: POP
0000152c: PUSH1 0x80
0000152e: DUP3
0000152f: ADD
00001530: MLOAD
00001531: PUSH2 0x153d
00001534: PUSH1 0x80
00001536: DUP6
00001537: ADD
00001538: DUP3
00001539: PUSH2 0x14c8
0000153c: JUMP
0000153d: JUMPDEST
0000153e: POP
0000153f: PUSH1 0xa0
00001541: DUP3
00001542: ADD
00001543: MLOAD
00001544: PUSH2 0x1550
00001547: PUSH1 0xa0
00001549: DUP6
0000154a: ADD
0000154b: DUP3
0000154c: PUSH2 0x14c8
0000154f: JUMP
00001550: JUMPDEST
00001551: POP
00001552: PUSH1 0xc0
00001554: DUP3
00001555: ADD
00001556: MLOAD
00001557: PUSH2 0x1563
0000155a: PUSH1 0xc0
0000155c: DUP6
0000155d: ADD
0000155e: DUP3
0000155f: PUSH2 0x14c8
00001562: JUMP
00001563: JUMPDEST
00001564: POP
00001565: PUSH1 0xe0
00001567: DUP3
00001568: ADD
00001569: MLOAD
0000156a: PUSH2 0x1576
0000156d: PUSH1 0xe0
0000156f: DUP6
00001570: ADD
00001571: DUP3
00001572: PUSH2 0x14ce
00001575: JUMP
00001576: JUMPDEST
00001577: POP
00001578: PUSH2 0x0100
0000157b: DUP3
0000157c: ADD
0000157d: MLOAD
0000157e: PUSH2 0x158b
00001581: PUSH2 0x0100
00001584: DUP6
00001585: ADD
00001586: DUP3
00001587: PUSH2 0x14ce
0000158a: JUMP
0000158b: JUMPDEST
0000158c: POP
0000158d: PUSH2 0x0120
00001590: DUP3
00001591: ADD
00001592: MLOAD
00001593: PUSH2 0x07a5
00001596: PUSH2 0x0120
00001599: DUP6
0000159a: ADD
0000159b: DUP3
0000159c: PUSH2 0x14d7
0000159f: JUMP
000015a0: JUMPDEST
000015a1: PUSH2 0x01a0
000015a4: DUP1
000015a5: DUP3
000015a6: MSTORE
000015a7: DUP2
000015a8: ADD
000015a9: PUSH2 0x15b2
000015ac: DUP2
000015ad: DUP8
000015ae: PUSH2 0x142e
000015b1: JUMP
000015b2: JUMPDEST
000015b3: SWAP1
000015b4: POP
000015b5: DUP2
000015b6: DUP2
000015b7: SUB
000015b8: PUSH1 0x20
000015ba: DUP4
000015bb: ADD
000015bc: MSTORE
000015bd: PUSH2 0x15c6
000015c0: DUP2
000015c1: DUP7
000015c2: PUSH2 0x1481
000015c5: JUMP
000015c6: JUMPDEST
000015c7: SWAP1
000015c8: POP
000015c9: PUSH2 0x15d5
000015cc: PUSH1 0x40
000015ce: DUP4
000015cf: ADD
000015d0: DUP6
000015d1: PUSH2 0x14df
000015d4: JUMP
000015d5: JUMPDEST
000015d6: DUP2
000015d7: DUP2
000015d8: SUB
000015d9: PUSH2 0x0180
000015dc: DUP4
000015dd: ADD
000015de: MSTORE
000015df: PUSH2 0x15e8
000015e2: DUP2
000015e3: DUP5
000015e4: PUSH2 0x142e
000015e7: JUMP
000015e8: JUMPDEST
000015e9: SWAP7
000015ea: SWAP6
000015eb: POP
000015ec: POP
000015ed: POP
000015ee: POP
000015ef: POP
000015f0: POP
000015f1: JUMP
000015f2: JUMPDEST
000015f3: DUP1
000015f4: MLOAD
000015f5: PUSH2 0x06ca
000015f8: DUP2
000015f9: PUSH2 0x0fca
000015fc: JUMP
000015fd: JUMPDEST
000015fe: PUSH0
000015ff: PUSH1 0x20
00001601: DUP3
00001602: DUP5
00001603: SUB
00001604: SLT
00001605: ISZERO
00001606: PUSH2 0x1610
00001609: JUMPI
0000160a: PUSH2 0x1610
0000160d: PUSH0
0000160e: DUP1
0000160f: REVERT
00001610: JUMPDEST
00001611: PUSH0
00001612: PUSH2 0x10ce
00001615: DUP5
00001616: DUP5
00001617: PUSH2 0x15f2
0000161a: JUMP
0000161b: JUMPDEST
0000161c: PUSH1 0x01
0000161e: PUSH1 0x01
00001620: PUSH1 0xe0
00001622: SHL
00001623: SUB
00001624: NOT
00001625: DUP2
00001626: AND
00001627: PUSH2 0x0fcc
0000162a: JUMP
0000162b: JUMPDEST
0000162c: DUP1
0000162d: CALLDATALOAD
0000162e: PUSH2 0x06ca
00001631: DUP2
00001632: PUSH2 0x161b
00001635: JUMP
00001636: JUMPDEST
00001637: PUSH0
00001638: PUSH1 0x20
0000163a: DUP3
0000163b: DUP5
0000163c: SUB
0000163d: SLT
0000163e: ISZERO
0000163f: PUSH2 0x1649
00001642: JUMPI
00001643: PUSH2 0x1649
00001646: PUSH0
00001647: DUP1
00001648: REVERT
00001649: JUMPDEST
0000164a: PUSH0
0000164b: PUSH2 0x10ce
0000164e: DUP5
0000164f: DUP5
00001650: PUSH2 0x162b
00001653: JUMP
00001654: JUMPDEST
00001655: PUSH1 0x20
00001657: DUP2
00001658: ADD
00001659: PUSH2 0x06ca
0000165c: DUP3
0000165d: DUP5
0000165e: PUSH2 0x14d7
00001661: JUMP
00001662: JUMPDEST
00001663: PUSH1 0x20
00001665: DUP2
00001666: ADD
00001667: PUSH2 0x06ca
0000166a: DUP3
0000166b: DUP5
0000166c: PUSH2 0x14c8
0000166f: JUMP
00001670: JUMPDEST
00001671: PUSH0
00001672: DUP1
00001673: PUSH2 0x01a0
00001676: DUP4
00001677: DUP6
00001678: SUB
00001679: SLT
0000167a: ISZERO
0000167b: PUSH2 0x1685
0000167e: JUMPI
0000167f: PUSH2 0x1685
00001682: PUSH0
00001683: DUP1
00001684: REVERT
00001685: JUMPDEST
00001686: PUSH0
00001687: PUSH2 0x1690
0000168a: DUP6
0000168b: DUP6
0000168c: PUSH2 0x11bf
0000168f: JUMP
00001690: JUMPDEST
00001691: SWAP3
00001692: POP
00001693: POP
00001694: PUSH2 0x0140
00001697: PUSH2 0x16a2
0000169a: DUP6
0000169b: DUP3
0000169c: DUP7
0000169d: ADD
0000169e: PUSH2 0x12ac
000016a1: JUMP
000016a2: JUMPDEST
000016a3: SWAP2
000016a4: POP
000016a5: POP
000016a6: SWAP3
000016a7: POP
000016a8: SWAP3
000016a9: SWAP1
000016aa: POP
000016ab: JUMP
000016ac: JUMPDEST
000016ad: PUSH0
000016ae: PUSH1 0x20
000016b0: DUP3
000016b1: DUP5
000016b2: SUB
000016b3: SLT
000016b4: ISZERO
000016b5: PUSH2 0x16bf
000016b8: JUMPI
000016b9: PUSH2 0x16bf
000016bc: PUSH0
000016bd: DUP1
000016be: REVERT
000016bf: JUMPDEST
000016c0: PUSH0
000016c1: PUSH2 0x10ce
000016c4: DUP5
000016c5: DUP5
000016c6: PUSH2 0x0fd6
000016c9: JUMP
000016ca: JUMPDEST
000016cb: PUSH0
000016cc: DUP1
000016cd: PUSH1 0x40
000016cf: DUP4
000016d0: DUP6
000016d1: SUB
000016d2: SLT
000016d3: ISZERO
000016d4: PUSH2 0x16de
000016d7: JUMPI
000016d8: PUSH2 0x16de
000016db: PUSH0
000016dc: DUP1
000016dd: REVERT
000016de: JUMPDEST
000016df: PUSH0
000016e0: PUSH2 0x16e9
000016e3: DUP6
000016e4: DUP6
000016e5: PUSH2 0x0fd6
000016e8: JUMP
000016e9: JUMPDEST
000016ea: SWAP3
000016eb: POP
000016ec: POP
000016ed: PUSH1 0x20
000016ef: PUSH2 0x16a2
000016f2: DUP6
000016f3: DUP3
000016f4: DUP7
000016f5: ADD
000016f6: PUSH2 0x1112
000016f9: JUMP
000016fa: JUMPDEST
000016fb: PUSH0
000016fc: DUP1
000016fd: PUSH1 0x40
000016ff: DUP4
00001700: DUP6
00001701: SUB
00001702: SLT
00001703: ISZERO
00001704: PUSH2 0x170e
00001707: JUMPI
00001708: PUSH2 0x170e
0000170b: PUSH0
0000170c: DUP1
0000170d: REVERT
0000170e: JUMPDEST
0000170f: PUSH0
00001710: PUSH2 0x1719
00001713: DUP6
00001714: DUP6
00001715: PUSH2 0x1112
00001718: JUMP
00001719: JUMPDEST
0000171a: SWAP3
0000171b: POP
0000171c: POP
0000171d: PUSH1 0x20
0000171f: PUSH2 0x16a2
00001722: DUP6
00001723: DUP3
00001724: DUP7
00001725: ADD
00001726: PUSH2 0x0fd6
00001729: JUMP
0000172a: JUMPDEST
0000172b: PUSH0
0000172c: PUSH1 0x20
0000172e: DUP3
0000172f: DUP5
00001730: SUB
00001731: SLT
00001732: ISZERO
00001733: PUSH2 0x173d
00001736: JUMPI
00001737: PUSH2 0x173d
0000173a: PUSH0
0000173b: DUP1
0000173c: REVERT
0000173d: JUMPDEST
0000173e: DUP2
0000173f: CALLDATALOAD
00001740: PUSH8 0xffffffffffffffff
00001749: DUP2
0000174a: GT
0000174b: ISZERO
0000174c: PUSH2 0x1756
0000174f: JUMPI
00001750: PUSH2 0x1756
00001753: PUSH0
00001754: DUP1
00001755: REVERT
00001756: JUMPDEST
00001757: PUSH2 0x10ce
0000175a: DUP5
0000175b: DUP3
0000175c: DUP6
0000175d: ADD
0000175e: PUSH2 0x1176
00001761: JUMP
00001762: JUMPDEST
00001763: PUSH0
00001764: DUP1
00001765: PUSH0
00001766: PUSH1 0x60
00001768: DUP5
00001769: DUP7
0000176a: SUB
0000176b: SLT
0000176c: ISZERO
0000176d: PUSH2 0x1777
00001770: JUMPI
00001771: PUSH2 0x1777
00001774: PUSH0
00001775: DUP1
00001776: REVERT
00001777: JUMPDEST
00001778: PUSH0
00001779: PUSH2 0x1782
0000177c: DUP7
0000177d: DUP7
0000177e: PUSH2 0x1112
00001781: JUMP
00001782: JUMPDEST
00001783: SWAP4
00001784: POP
00001785: POP
00001786: PUSH1 0x20
00001788: PUSH2 0x1793
0000178b: DUP7
0000178c: DUP3
0000178d: DUP8
0000178e: ADD
0000178f: PUSH2 0x0fd6
00001792: JUMP
00001793: JUMPDEST
00001794: SWAP3
00001795: POP
00001796: POP
00001797: PUSH1 0x40
00001799: PUSH2 0x17a4
0000179c: DUP7
0000179d: DUP3
0000179e: DUP8
0000179f: ADD
000017a0: PUSH2 0x1112
000017a3: JUMP
000017a4: JUMPDEST
000017a5: SWAP2
000017a6: POP
000017a7: POP
000017a8: SWAP3
000017a9: POP
000017aa: SWAP3
000017ab: POP
000017ac: SWAP3
000017ad: JUMP
000017ae: JUMPDEST
000017af: PUSH1 0x20
000017b1: DUP2
000017b2: ADD
000017b3: PUSH2 0x06ca
000017b6: DUP3
000017b7: DUP5
000017b8: PUSH2 0x145f
000017bb: JUMP
000017bc: JUMPDEST
000017bd: PUSH4 0x4e487b71
000017c2: PUSH1 0xe0
000017c4: SHL
000017c5: PUSH0
000017c6: MSTORE
000017c7: PUSH1 0x12
000017c9: PUSH1 0x04
000017cb: MSTORE
000017cc: PUSH1 0x24
000017ce: PUSH0
000017cf: REVERT
000017d0: JUMPDEST
000017d1: PUSH0
000017d2: DUP3
000017d3: PUSH2 0x17de
000017d6: JUMPI
000017d7: PUSH2 0x17de
000017da: PUSH2 0x17bc
000017dd: JUMP
000017de: JUMPDEST
000017df: POP
000017e0: DIV
000017e1: SWAP1
000017e2: JUMP
000017e3: JUMPDEST
000017e4: PUSH1 0x40
000017e6: DUP2
000017e7: ADD
000017e8: PUSH2 0x17f1
000017eb: DUP3
000017ec: DUP6
000017ed: PUSH2 0x14c8
000017f0: JUMP
000017f1: JUMPDEST
000017f2: PUSH2 0x0c97
000017f5: PUSH1 0x20
000017f7: DUP4
000017f8: ADD
000017f9: DUP5
000017fa: PUSH2 0x14c8
000017fd: JUMP
000017fe: JUMPDEST
000017ff: PUSH4 0x4e487b71
00001804: PUSH1 0xe0
00001806: SHL
00001807: PUSH0
00001808: MSTORE
00001809: PUSH1 0x32
0000180b: PUSH1 0x04
0000180d: MSTORE
0000180e: PUSH1 0x24
00001810: PUSH0
00001811: REVERT
00001812: JUMPDEST
00001813: DUP2
00001814: DUP2
00001815: SUB
00001816: DUP2
00001817: DUP2
00001818: GT
00001819: ISZERO
0000181a: PUSH2 0x06ca
0000181d: JUMPI
0000181e: PUSH2 0x06ca
00001821: PUSH2 0x13dd
00001824: JUMP
00001825: JUMPDEST
00001826: PUSH1 0x40
00001828: DUP2
00001829: ADD
0000182a: PUSH2 0x17f1
0000182d: DUP3
0000182e: DUP6
0000182f: PUSH2 0x145f
00001832: JUMP
00001833: JUMPDEST
00001834: PUSH0
00001835: DUP2
00001836: PUSH2 0x06ca
00001839: JUMP
0000183a: JUMPDEST
0000183b: PUSH1 0x60
0000183d: DUP2
0000183e: ADD
0000183f: PUSH2 0x1848
00001842: DUP3
00001843: DUP7
00001844: PUSH2 0x145f
00001847: JUMP
00001848: JUMPDEST
00001849: PUSH2 0x1855
0000184c: PUSH1 0x20
0000184e: DUP4
0000184f: ADD
00001850: DUP6
00001851: PUSH2 0x145f
00001854: JUMP
00001855: JUMPDEST
00001856: PUSH2 0x10ce
00001859: PUSH1 0x40
0000185b: DUP4
0000185c: ADD
0000185d: DUP5
0000185e: PUSH2 0x14c8
00001861: JUMP
00001862: INVALID
00001863: UNKNOWN(0xDB)
00001864: UNKNOWN(0xEB)
00001865: PUSH6 0x7137b1822b3d
0000186c: SLOAD
0000186d: XOR
0000186e: UNKNOWN(0xBE)
0000186f: UNKNOWN(0xA6)
00001870: REVERT
00001871: PUSH5 0x1226d964b4
00001877: UNKNOWN(0xC3)
00001878: DUP8
00001879: CLZ
0000187a: CALLCODE
0000187b: CALLDATALOAD
0000187c: CHAINID
0000187d: UNKNOWN(0xDB)
0000187e: UNKNOWN(0x26)
0000187f: UNKNOWN(0x22)
00001880: UNKNOWN(0x25)
00001881: DUP9
00001882: PUSH18 0xa2646970667358221220a085de2a168524bd
00001895: SWAP5
00001896: ADDMOD
00001897: SDIV
00001898: ADD
00001899: UNKNOWN(0xD3)
0000189a: UNKNOWN(0xED)
0000189b: SWAP15
0000189c: SWAP4
0000189d: UNKNOWN(0x27)
0000189e: SLOAD
0000189f: UNKNOWN(0xAB)
000018a0: KECCAK256
000018a1: UNKNOWN(0xC9)
000018a2: SWAP6
000018a3: UNKNOWN(0xC6)
000018a4: UNKNOWN(0xAB)
000018a5: UNKNOWN(0xEB)
000018a6: PUSH11 0xe8b9ab0e74f664736f6c63
000018b2: NUMBER
000018b3: STOP
000018b4: ADDMOD
000018b5: BYTE
000018b6: STOP
000018b7: CALLER

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 no no
view
trace_id: 0x100e08ccccd60a4462ea14f909966aa2fa0bf5a8d2445de3415a9eebbf794b88
call_targets: 0xf542a254b5deef1583d2904be9a6477d89d8f1aa
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x100e08ccccd60a4462ea14f909966aa2fa0bf5a8d2445de3415a9eebbf794b88",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf542a254b5deef1583d2904be9a6477d89d8f1aa"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xa9212b5b",
            "selector": "0xa9212b5b",
            "calldata_variants": [
                "0xa9212b5b",
                "0xa9212b5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb59b1176",
            "selector": "0xb59b1176",
            "calldata_variants": [
                "0xb59b1176",
                "0xb59b11760000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb66437a5",
            "selector": "0xb66437a5",
            "calldata_variants": [
                "0xb66437a5",
                "0xb66437a50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd0e30db0",
            "selector": "0xd0e30db0",
            "calldata_variants": [
                "0xd0e30db0",
                "0xd0e30db00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffa1ad74",
            "selector": "0xffa1ad74",
            "calldata_variants": [
                "0xffa1ad74",
                "0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x72c6838f",
            "selector": "0x72c6838f",
            "calldata_variants": [
                "0x72c6838f",
                "0x72c6838f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x75b238fc",
            "selector": "0x75b238fc",
            "calldata_variants": [
                "0x75b238fc",
                "0x75b238fc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 494,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 654,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1926,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 8,
    "guards_detected": [],
    "untrusted_call_count": 8
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x100e08ccccd60a4462ea14f909966aa2fa0bf5a8d2445de3415a9eebbf794b88
call_targets: 0xf542a254b5deef1583d2904be9a6477d89d8f1aa
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x100e08ccccd60a4462ea14f909966aa2fa0bf5a8d2445de3415a9eebbf794b88",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf542a254b5deef1583d2904be9a6477d89d8f1aa"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xa9212b5b",
            "selector": "0xa9212b5b",
            "calldata_variants": [
                "0xa9212b5b",
                "0xa9212b5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb59b1176",
            "selector": "0xb59b1176",
            "calldata_variants": [
                "0xb59b1176",
                "0xb59b11760000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb66437a5",
            "selector": "0xb66437a5",
            "calldata_variants": [
                "0xb66437a5",
                "0xb66437a50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd0e30db0",
            "selector": "0xd0e30db0",
            "calldata_variants": [
                "0xd0e30db0",
                "0xd0e30db00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffa1ad74",
            "selector": "0xffa1ad74",
            "calldata_variants": [
                "0xffa1ad74",
                "0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x72c6838f",
            "selector": "0x72c6838f",
            "calldata_variants": [
                "0x72c6838f",
                "0x72c6838f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x75b238fc",
            "selector": "0x75b238fc",
            "calldata_variants": [
                "0x75b238fc",
                "0x75b238fc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 494,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 654,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1926,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 8,
    "guards_detected": []
}
medium reentrancy codex Computed external CALLs with value (untrusted target) enable arbitrary call/reentrancy risk 75 no
view
evidence_json
{
    "evidence": "callsites list shows CALL with target_expression_category/value_expression_category = computed and returndata_checked = null at pc 494, 654, 1926, 2279, 3052, 3266, 3913; detector findings flagged \"Untrusted CALL target/value reachable\" and \"ETH value transfer possible\" with no guards detected.",
    "locations": [
        "pc:0x1ee",
        "pc:0x28e",
        "pc:0x786",
        "pc:0x8e7",
        "pc:0xbec",
        "pc:0xcc2",
        "pc:0xf49"
    ],
    "recommendation": "Constrain external call targets to fixed/allowlisted addresses, gate call paths with explicit access control, and add a reentrancy guard around state-changing flows that perform external calls. Where possible, prefer pull-based payouts over push-based ETH transfers.",
    "exploit_scenario": "If any public entrypoint allows a user-controlled target/value to reach these CALL sites, an attacker can direct ETH/token transfers or invoke a malicious contract that reenters before state is finalized. Detector validation saw a constant target in one trace, but it was not confirmed; if the target is not actually constant/whitelisted, this is exploitable."
}
low upgradeability codex CALLCODE present with computed target (delegatecall-like semantics) 65 no
view
evidence_json
{
    "evidence": "callsites list includes opcode CALLCODE at pc 6266 with computed target/value; basic block 6257\u20136323 contains CALLCODE but CFG has no inbound/outbound edges (likely unreachable).",
    "locations": [
        "pc:0x187a"
    ],
    "recommendation": "Ensure the CALLCODE site is unreachable or remove it. If intentional proxy-like behavior exists, replace with DELEGATECALL and enforce strict access control and implementation validation (code size/allowlist) and emit upgrade events.",
    "exploit_scenario": "If reachable, CALLCODE executes external code in the caller\u2019s storage context, enabling full state corruption or asset theft when the target can be influenced. The CFG shows no edges to the block containing CALLCODE, so it may be unreachable metadata; verify reachability."
}
low access_control codex State slots 0 and 0xdead written without detected guards 65 no
view
evidence_json
{
    "evidence": "storage analysis shows SSTORE at pc 709 (slot 0x0) and pc 715 (slot 0x\u2026dead); auth.guards is empty across functions.",
    "locations": [
        "pc:0x2c5",
        "pc:0x2cb"
    ],
    "recommendation": "Confirm the write path is restricted to authorized callers; add explicit access control checks and events for administrative state changes. If these slots are not privileged, consider documenting their role to aid auditors.",
    "exploit_scenario": "If an external function can reach the block at pc 705, it writes to slot 0 and slot 0xdead. If these slots represent owner/admin/flags, an attacker could reset privileged state or break invariants. Guard detection is heuristic, so this may be protected elsewhere."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 7
}