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

Analysis Run

019c0ea9-0840-7237-af59-7bfbb24d83fa

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

What survived the funnel

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

Confirmed
0
Validated
0
Source
Bytecode only
Review Backing
Present
Best current signal
Authorization based on tx.origin
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
41781 artifact.fetch complete 1 / 3 2 months ago
41782 proxy.resolve complete 1 / 3 2 months ago
41783 tool.cast_disasm complete 1 / 3 2 months ago
41784 analysis.bundle complete 1 / 3 2 months ago
41785 capability.graph complete 1 / 3 2 months ago
41786 detector.run complete 1 / 3 2 months ago
41787 validation.fork complete 1 / 3 2 months ago
42328 report.consolidate complete 1 / 6 2 months ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Bytecode-only review (selectors inferred best-effort). Detected tx.origin used as an authorization guard (pc 8909) across all 21 discovered selectors. Also observed three low-level CALL sites with computed target/value; a trace suggests the target may be the contract itself, but trust/reentrancy safety cannot be fully confirmed from bytecode alone.
View stdout
{"no_findings":false,"summary":"Bytecode-only review (selectors inferred best-effort). Detected tx.origin used as an authorization guard (pc 8909) across all 21 discovered selectors. Also observed three low-level CALL sites with computed target/value; a trace suggests the target may be the contract itself, but trust/reentrancy safety cannot be fully confirmed from bytecode alone.","findings":[{"severity":"high","category":"auth","title":"Authorization relies on tx.origin","exploit_scenario":"If privileged checks are based on tx.origin, a malicious contract can trick a privileged EOA into calling it and then forward a call into this contract. The tx.origin remains the EOA, so the guard passes even though msg.sender is attacker-controlled, enabling unauthorized actions.","recommendation":"Replace tx.origin-based authorization with msg.sender checks and explicit role/ownership controls. If the intent is to restrict to EOAs, use a whitelist or alternative mechanisms rather than tx.origin.","evidence":"analysis_artifact.auth.guards shows tx_origin_used at pc 8909; all 21 discovered functions list this guard (selectors below), indicating broad reliance on tx.origin in access checks.","locations":["pc:8909","selector:0xca722cdc","selector:0xd6d30a51","selector:0xda76d5cd","selector:0xdf88126f","selector:0xe1fdb4b4","selector:0xfbd668a9","selector:0x6af04a57","selector:0x71587988","selector:0x8456cb59","selector:0xb047fb50","selector:0xb539cd55","selector:0x3f4ba83a","selector:0x41c0e1b5","selector:0x4e0a3379","selector:0x57246d23","selector:0x5c975abb","selector:0x0519ce79","selector:0x0a0f8168","selector:0x227ada37","selector:0x27d7874c","selector:0x2ba73c15"]},{"severity":"low","category":"reentrancy","title":"Low-level CALLs with computed target/value; trust and reentrancy safety unclear","exploit_scenario":"Bytecode shows external CALLs with computed target/value. If any path allows a user-influenced target or value, an attacker-controlled callee could reenter before state updates or cause fund loss. Validation tracing suggests the call target may be constant to the contract itself, but this is not confirmed for all paths.","recommendation":"Ensure external calls only reach trusted addresses, update state before calls, and use reentrancy guards where appropriate. If the intent is to call self, prefer internal calls to avoid external call frames; explicitly check call success/returndata.","evidence":"analysis_artifact.callsites lists CALL at pc 3322, 5156, 7901 with computed target/value and returndata_checked null; detector flagged untrusted CALL/ETH value transfer possible, while trace validation saw a constant target equal to the contract address (not confirmed for all paths).","locations":["pc:3322","pc:5156","pc:7901"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-_2415lrp
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0f1f-a9ad-7f20-a5b2-c82d30090e3c
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.

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

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

Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers
exec
/bin/bash -lc ls in /tmp/codex-_2415lrp succeeded in 6ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-_2415lrp succeeded in 8ms:
{
  "analysis_artifact": {
    "address": "0xbf96042d61937b1686b81557c3a92806f1727ecf",
    "artifact_hash": "0xfaf7c00d11bba0dca953e15a18b588a52a583c5081d731ea02274e19806d815c",
    "artifact_json": {
      "auth": {
        "guards": [
          {
            "pc": 8909,
            "type": "tx_origin_used"
          }
        ]
      },
      "basic_blocks": [
        {
          "end_pc": 12,
          "hash": "0x3b678a566ed99b991171254f620dfebf3d843a8bbeff65936fc04155ae4fa07a",
          "opcodes": [
            "PUSH1",
            "PUSH1",
exec
/bin/bash -lc 'rg -n "tx_origin|tx.origin|CALL" BYTECODE_BUNDLE.json' in /tmp/codex-_2415lrp succeeded in 22ms:
10:            "type": "tx_origin_used"
23:            "CALLDATASIZE",
35:            "CALLDATALOAD",
366:            "CALLVALUE",
431:            "CALLVALUE",
469:            "CALLDATASIZE",
497:            "CALLDATALOAD",
502:            "CALLDATALOAD",
507:            "CALLDATALOAD",
512:            "CALLDATALOAD",
517:            "CALLDATALOAD",
522:            "CALLDATALOAD",
526:            "CALLDATALOAD",
539:            "CALLVALUE",
566:            "CALLDATASIZE",
593:            "CALLDATALOAD",
610:            "CALLVALUE",
637:            "CALLDATASIZE",
664:            "CALLDATALOAD",
681:            "CALLVALUE",
exec
/bin/bash -lc "python - <<'PY'
import json
p='BYTECODE_BUNDLE.json'
with open(p) as f:
    data=json.load(f)
print('keys',data.keys())
print('detector_findings',len(data.get('detector_findings',[])))
print('heuristics_summary',data.get('heuristics_summary'))
art=data['analysis_artifact']['artifact_json']
print('artifact keys',art.keys())
print('auth',art.get('auth'))
# list callsites
calls=[x for x in art.get('basic_blocks',[]) if isinstance(x,dict) and x.get('type')=='callsite']
print('calls',calls)
# list functions
fns=[x for x in art.get('basic_blocks',[]) if isinstance(x,dict) and x.get('type')=='function']
print('functions count',len(fns))
print('selectors', [f.get('selector') for f in fns[:10]])
# try evidence bundle
print('has evidence_bundle', 'evidence_bundle' in data)
PY" in /tmp/codex-_2415lrp succeeded in 35ms:
keys dict_keys(['analysis_artifact', 'analysis_run', 'artifact', 'capability_graph', 'detector_findings', 'heuristics_summary'])
detector_findings 3
heuristics_summary {'create2_count': 0, 'delegatecall_count': 0, 'flags': ['heavy_ext_balance_usage'], 'selfdestruct_count': 0}
artifact keys dict_keys(['auth', 'basic_blocks', 'callsites', 'cfg_edges', 'cfg_hash', 'dispatcher_type', 'function_entries', 'functions', 'selectors', 'sinks', 'storage', 'version'])
auth {'guards': [{'pc': 8909, 'type': 'tx_origin_used'}]}
calls []
functions count 0
selectors []
has evidence_bundle False
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
art=data['analysis_artifact']['artifact_json']
print('callsites', art.get('callsites'))
print('sinks', art.get('sinks'))
print('selectors', art.get('selectors')[:20] if art.get('selectors') else None)
print('functions sample', art.get('functions')[:5] if art.get('functions') else None)
print('function_entries sample', art.get('function_entries')[:5] if art.get('function_entries') else None)
print('storage', art.get('storage')[:5] if art.get('storage') else None)
PY" in /tmp/codex-_2415lrp exited 1 in 49ms:
callsites [{'opcode': 'STATICCALL', 'pc': 1864, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'n/a'}, {'opcode': 'CALL', 'pc': 3322, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}, {'opcode': 'CALL', 'pc': 5156, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}, {'opcode': 'CALL', 'pc': 7901, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}]
sinks {'call': 3, 'create': 0, 'create2': 0, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 1, 'upgrade_slot_write_suspected': False}
selectors ['0xca722cdc', '0xd6d30a51', '0xda76d5cd', '0xdf88126f', '0xe1fdb4b4', '0xfbd668a9', '0x6af04a57', '0x71587988', '0x8456cb59', '0xb047fb50', '0xb539cd55', '0x3f4ba83a', '0x41c0e1b5', '0x4e0a3379', '0x57246d23', '0x5c975abb', '0x0519ce79', '0x0a0f8168', '0x227ada37', '0x27d7874c']
functions sample [{'auth': {'guards': [{'pc': 8909, 'type': 'tx_origin_used'}]}, 'entry_pc': 3396480220, 'selector': '0xca722cdc', 'sinks': {'call': 3, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 1}, 'storage': {'reads': 64, 'slots': [{'op': 'SLOAD', 'pc': 1116, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 1131, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 1146, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 1894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 2022, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000003'}, {'op': 'SLOAD', 'pc': 2117, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 2466, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2633, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2666, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2833, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 2866, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2950, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3044, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 3126, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3210, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3289, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 3349, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3368, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3385, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3552, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 3585, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3600, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3616, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 3631, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3715, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3810, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 3893, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3913, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3934, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 4030, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4104, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4124, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4139, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000003'}, {'op': 'SLOAD', 'pc': 4145, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4229, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4575, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 4723, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 4830, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 4868, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 5017, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 5123, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 5186, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 5208, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 5292, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 5583, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 5672, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 6966, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 7050, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 7145, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 7159, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 7575, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 7653, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}], 'writes': 19}}, {'auth': {'guards': [{'pc': 8909, 'type': 'tx_origin_used'}]}, 'entry_pc': 3665221069, 'selector': '0xd6d30a51', 'sinks': {'call': 3, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 1}, 'storage': {'reads': 64, 'slots': [{'op': 'SLOAD', 'pc': 1116, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 1131, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 1146, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 1894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 2022, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000003'}, {'op': 'SLOAD', 'pc': 2117, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 2466, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2633, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2666, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2833, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 2866, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2950, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3044, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 3126, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3210, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3289, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 3349, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3368, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3385, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3552, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 3585, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3600, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3616, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 3631, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3715, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3810, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 3893, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3913, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3934, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 4030, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4104, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4124, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4139, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000003'}, {'op': 'SLOAD', 'pc': 4145, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4229, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4575, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 4723, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 4830, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 4868, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 5017, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 5123, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 5186, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 5208, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 5292, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 5583, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 5672, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 6966, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 7050, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 7145, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 7159, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 7575, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 7653, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}], 'writes': 19}}, {'auth': {'guards': [{'pc': 8909, 'type': 'tx_origin_used'}]}, 'entry_pc': 3750236783, 'selector': '0xda76d5cd', 'sinks': {'call': 3, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 1}, 'storage': {'reads': 64, 'slots': [{'op': 'SLOAD', 'pc': 1116, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 1131, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 1146, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 1894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 2022, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000003'}, {'op': 'SLOAD', 'pc': 2117, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 2466, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2633, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2666, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2833, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 2866, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2950, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3044, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 3126, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3210, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3289, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 3349, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3368, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3385, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3552, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 3585, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3600, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3616, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 3631, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3715, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3810, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 3893, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3913, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3934, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 4030, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4104, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4124, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4139, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000003'}, {'op': 'SLOAD', 'pc': 4145, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4229, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4575, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 4723, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 4830, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 4868, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 5017, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 5123, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 5186, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 5208, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 5292, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 5583, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 5672, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 6966, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 7050, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 7145, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 7159, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 7575, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 7653, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}], 'writes': 19}}, {'auth': {'guards': [{'pc': 8909, 'type': 'tx_origin_used'}]}, 'entry_pc': 3791500468, 'selector': '0xdf88126f', 'sinks': {'call': 3, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 1}, 'storage': {'reads': 64, 'slots': [{'op': 'SLOAD', 'pc': 1116, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 1131, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 1146, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 1894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 2022, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000003'}, {'op': 'SLOAD', 'pc': 2117, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 2466, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2633, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2666, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2833, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 2866, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2950, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3044, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 3126, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3210, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3289, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 3349, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3368, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3385, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3552, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 3585, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3600, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3616, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 3631, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3715, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3810, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 3893, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3913, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3934, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 4030, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4104, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4124, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4139, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000003'}, {'op': 'SLOAD', 'pc': 4145, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4229, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4575, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 4723, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 4830, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 4868, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 5017, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 5123, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 5186, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 5208, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 5292, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 5583, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 5672, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 6966, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 7050, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 7145, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 7159, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 7575, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 7653, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}], 'writes': 19}}, {'auth': {'guards': [{'pc': 8909, 'type': 'tx_origin_used'}]}, 'entry_pc': 4225132713, 'selector': '0xe1fdb4b4', 'sinks': {'call': 3, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 1}, 'storage': {'reads': 64, 'slots': [{'op': 'SLOAD', 'pc': 1116, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 1131, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 1146, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 1894, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 2022, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000003'}, {'op': 'SLOAD', 'pc': 2117, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 2466, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2633, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2666, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2833, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 2866, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2950, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3044, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 3126, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3210, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3289, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 3349, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3368, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3385, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3552, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 3585, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3600, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3616, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 3631, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3715, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3810, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 3893, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 3913, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3934, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 4030, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4104, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4124, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4139, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000003'}, {'op': 'SLOAD', 'pc': 4145, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4229, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 4575, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 4723, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 4830, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 4868, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 5017, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 5123, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 5186, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 5208, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 5292, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 5583, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 5672, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 6966, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 7050, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 7145, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 7159, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 7575, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 7653, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}], 'writes': 19}}]
function_entries sample [{'entry_pc': 3396480220, 'selector': '0xca722cdc'}, {'entry_pc': 3665221069, 'selector': '0xd6d30a51'}, {'entry_pc': 3750236783, 'selector': '0xda76d5cd'}, {'entry_pc': 3791500468, 'selector': '0xdf88126f'}, {'entry_pc': 4225132713, 'selector': '0xe1fdb4b4'}]
Traceback (most recent call last):
  File "<stdin>", line 10, in <module>
KeyError: slice(None, 5, None)
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
art=data['analysis_artifact']['artifact_json']
functions=art.get('functions',[])
print('functions',len(functions))
# count tx.origin guard
count=0
selectors=[]
for fn in functions:
    guards=fn.get('auth',{}).get('guards',[])
    if any(g.get('type')=='tx_origin_used' for g in guards):
        count+=1
        selectors.append(fn.get('selector'))
print('tx.origin guarded fns',count)
print('selectors',selectors)
# sinks summary
sinks=art.get('sinks')
print('sinks',sinks)
# callsites
print('callsites',art.get('callsites'))
# storage slots maybe raw
storage=art.get('storage')
print('storage type',type(storage))
print('storage keys', storage.keys() if isinstance(storage, dict) else None)
if isinstance(storage, dict):
    print('storage slots count', len(storage.get('slots',[])))
PY" in /tmp/codex-_2415lrp succeeded in 32ms:
functions 21
tx.origin guarded fns 21
selectors ['0xca722cdc', '0xd6d30a51', '0xda76d5cd', '0xdf88126f', '0xe1fdb4b4', '0xfbd668a9', '0x6af04a57', '0x71587988', '0x8456cb59', '0xb047fb50', '0xb539cd55', '0x3f4ba83a', '0x41c0e1b5', '0x4e0a3379', '0x57246d23', '0x5c975abb', '0x0519ce79', '0x0a0f8168', '0x227ada37', '0x27d7874c', '0x2ba73c15']
sinks {'call': 3, 'create': 0, 'create2': 0, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 1, 'upgrade_slot_write_suspected': False}
callsites [{'opcode': 'STATICCALL', 'pc': 1864, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'n/a'}, {'opcode': 'CALL', 'pc': 3322, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}, {'opcode': 'CALL', 'pc': 5156, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}, {'opcode': 'CALL', 'pc': 7901, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}]
storage type <class 'dict'>
storage keys dict_keys(['keccak_count', 'reads', 'slots', 'writes'])
storage slots count 52
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
print('artifact keys', data.get('artifact',{}).keys())
print('capability_graph keys', data.get('capability_graph',{}).keys())
# maybe list entrypoints
cg=data.get('capability_graph',{})
if isinstance(cg, dict):
    print('cg functions', len(cg.get('functions',[])))
    # show any proxies
    print('cg dispatcher_type', cg.get('dispatcher_type'))
PY" in /tmp/codex-_2415lrp succeeded in 32ms:
artifact keys dict_keys(['codehash', 'compiler_json', 'implementation_address', 'is_proxy', 'runtime_bytecode', 'verified_source'])
capability_graph keys dict_keys(['address', 'block_number', 'chain_id', 'codehash', 'created_at', 'graph_hash', 'graph_json', 'id', 'updated_at', 'version'])
cg functions 0
cg dispatcher_type None
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
print(data['artifact'])
PY" in /tmp/codex-_2415lrp succeeded in 33ms:
{'codehash': '0x6a915396ed9b1c0b06358291c00a9519f997c52d964d0fd09d22fcfc9b8eb5ae', 'compiler_json': {'compiler_version': None, 'etherscan': {'contract_name': None, 'implementation': None, 'license': 'Unknown', 'proxy': '0', 'swarm_source': None}, 'optimizer_enabled': False, 'optimizer_runs': 0, 'proxy_evidence': {'status': 'not_proxy'}}, 'implementation_address': None, 'is_proxy': False, 'runtime_bytecode': {'full': '0x60806040526004361061012a5760003560e01c80636af04a57116100ab578063ca722cdc1161006f578063ca722cdc1461036c578063d6d30a511461039c578063da76d5cd146103c6578063df88126f146103f0578063e1fdb4b414610405578063fbd668a91461042f5761012a565b80636af04a57146102d357806371587988146102e85780638456cb591461031b578063b047fb5014610330578063b539cd55146103455761012a565b80633f4ba83a116100f25780633f4ba83a1461021c57806341c0e1b5146102315780634e0a33791461024657806357246d23146102795780635c975abb146102aa5761012a565b80630519ce791461012c5780630a0f81681461015d578063227ada371461017257806327d7874c146101b65780632ba73c15146101e9575b005b34801561013857600080fd5b50610141610459565b604080516001600160a01b039092168252519081900360200190f35b34801561016957600080fd5b50610141610468565b61012a600480360360e081101561018857600080fd5b5080359060208101359060408101359060608101359060808101359060a08101359060c0013560ff16610477565b3480156101c257600080fd5b5061012a600480360360208110156101d957600080fd5b50356001600160a01b031661099f565b3480156101f557600080fd5b5061012a6004803603602081101561020c57600080fd5b50356001600160a01b0316610a67565b34801561022857600080fd5b5061012a610b2f565b34801561023d57600080fd5b5061012a610c33565b34801561025257600080fd5b5061012a6004803603602081101561026957600080fd5b50356001600160a01b0316610d36565b34801561028557600080fd5b5061028e610dfe565b604080516001600160801b039092168252519081900360200190f35b3480156102b657600080fd5b506102bf610e0d565b604080519115158252519081900360200190f35b3480156102df57600080fd5b50610141610e1d565b3480156102f457600080fd5b5061012a6004803603602081101561030b57600080fd5b50356001600160a01b0316610e2c565b34801561032757600080fd5b5061012a610f32565b34801561033c57600080fd5b50610141611019565b34801561035157600080fd5b5061035a611028565b60408051918252519081900360200190f35b34801561037857600080fd5b5061012a6004803603604081101561038f57600080fd5b508035906020013561102e565b3480156103a857600080fd5b5061012a600480360360208110156103bf57600080fd5b50356111dc565b3480156103d257600080fd5b5061012a600480360360208110156103e957600080fd5b5035611301565b3480156103fc57600080fd5b5061028e61143f565b34801561041157600080fd5b5061012a6004803603602081101561042857600080fd5b5035611455565b34801561043b57600080fd5b5061012a6004803603602081101561045257600080fd5b5035611625565b6001546001600160a01b031681565b6000546001600160a01b031681565b600254600160a01b900460ff16156104c05760405162461bcd60e51b81526004018080602001828103825260248152602001806121636024913960400191505060405180910390fd5b600084815260056020526040902060028101546001600160a01b0316156105185760405162461bcd60e51b81526004018080602001828103825260218152602001806121426021913960400191505060405180910390fd5b3460018811801561052a575060fd8811155b61057b576040805162461bcd60e51b815260206004820152601e60248201527f4d6f64756c6f2073686f756c642062652077697468696e2072616e67652e0000604482015290519081900360640190fd5b662386f26fc10000811015801561059c5750693f870857a3e0e38000008111155b6105ed576040805162461bcd60e51b815260206004820152601e60248201527f416d6f756e742073686f756c642062652077697468696e2072616e67652e0000604482015290519081900360640190fd5b6000891180156106005750600160fd1b89105b61063f576040805162461bcd60e51b815260206004820152601c60248201526000805160206120bc833981519152604482015290519081900360640190fd5b8643111561068a576040805162461bcd60e51b815260206004820152601360248201527221b7b6b6b4ba103430b99032bc3834b932b21760691b604482015290519081900360640190fd5b6040805160208082018a905281830189905282518083038401815260609092019092528051910120601b60ff851614806106c757508360ff16601c145b6107025760405162461bcd60e51b81526004018080602001828103825260258152602001806120426025913960400191505060405180910390fd5b6040805160008152602080820180845284905260ff8716828401526060820189905260808201889052915160019260a0808401939192601f1981019281900390910190855afa158015610759573d6000803e3d6000fd5b5050604051601f1901516002546001600160a01b0390811691161490506107c7576040805162461bcd60e51b815260206004820152601d60248201527f4543445341207369676e6174757265206973206e6f742076616c69642e000000604482015290519081900360640190fd5b60006107d38a8c6116c6565b90506000806107e3858d85611a34565b60035491935091508501821115610841576040805162461bcd60e51b815260206004820152601a60248201527f6d617850726f666974206c696d69742076696f6c6174696f6e2e000000000000604482015290519081900360640190fd5b600480546001600160801b03600160801b808304821686018216810292821692909217808216850182166001600160801b03199190911617928390553031838216929093048116919091011611156108e0576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f74206166666f726420746f206c6f73652074686973206265742e00604482015290519081900360640190fd5b604080518b815290517f5bdd2fc99022530157777690475b670d3872f32262eb1d47d9ba8000dad58f879181900360200190a1505083546001600160801b0319166001600160801b03939093169290921760ff60801b1916600160801b60ff9a8b16021760ff60881b1916600160881b92909916919091029790971764ffffffffff60901b1916600160901b4364ffffffffff1602178155600181019790975550505060029093018054336001600160a01b0319909116179055505050565b6000546001600160a01b031633146109f3576040805162461bcd60e51b815260206004820152601260248201527173656e646572206d7573742062652063656f60701b604482015290519081900360640190fd5b6001600160a01b038116610a45576040805162461bcd60e51b815260206004820152601460248201527318d95bc81b5d5cdd081899481b9bdd081b9d5b1b60621b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610abb576040805162461bcd60e51b815260206004820152601260248201527173656e646572206d7573742062652063656f60701b604482015290519081900360640190fd5b6001600160a01b038116610b0d576040805162461bcd60e51b815260206004820152601460248201527318dbdbc81b5d5cdd081899481b9bdd081b9d5b1b60621b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b83576040805162461bcd60e51b815260206004820152601260248201527173656e646572206d7573742062652063656f60701b604482015290519081900360640190fd5b600254600160a01b900460ff16610be1576040805162461bcd60e51b815260206004820181905260248201527f6f6e6c79207768656e2074686520636f6e747261637420495320706175736564604482015290519081900360640190fd5b6006546001600160a01b031615610c295760405162461bcd60e51b81526004018080602001828103825260248152602001806122766024913960400191505060405180910390fd5b610c31611b33565b565b6000546001600160a01b03163314610c87576040805162461bcd60e51b815260206004820152601260248201527173656e646572206d7573742062652063656f60701b604482015290519081900360640190fd5b600454600160801b90046001600160801b031615610cd65760405162461bcd60e51b81526004018080602001828103825260488152602001806121de6048913960600191505060405180910390fd5b6001546040516001600160a01b0390911690303180156108fc02916000818181858888f19350505050158015610d10573d6000803e3d6000fd5b506002805460ff60a01b1916600160a01b179055600480546001600160801b0319169055565b6000546001600160a01b03163314610d8a576040805162461bcd60e51b815260206004820152601260248201527173656e646572206d7573742062652063656f60701b604482015290519081900360640190fd5b6001600160a01b038116610ddc576040805162461bcd60e51b815260206004820152601460248201527318d99bc81b5d5cdd081899481b9bdd081b9d5b1b60621b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160801b031681565b600254600160a01b900460ff1681565b6006546001600160a01b031681565b6000546001600160a01b03163314610e80576040805162461bcd60e51b815260206004820152601260248201527173656e646572206d7573742062652063656f60701b604482015290519081900360640190fd5b600254600160a01b900460ff16610ede576040805162461bcd60e51b815260206004820181905260248201527f6f6e6c79207768656e2074686520636f6e747261637420495320706175736564604482015290519081900360640190fd5b600680546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa4461993059181900360200190a150565b6002546001600160a01b0316331480610f5557506000546001600160a01b031633145b80610f6a57506001546001600160a01b031633145b610fbb576040805162461bcd60e51b815260206004820152601a60248201527f73656e646572206d7573742062652063656f2f63666f2f636f6f000000000000604482015290519081900360640190fd5b600254600160a01b900460ff16156110045760405162461bcd60e51b81526004018080602001828103825260248152602001806121636024913960400191505060405180910390fd5b6002805460ff60a01b1916600160a01b179055565b6002546001600160a01b031681565b60035481565b6002546001600160a01b03163314611082576040805162461bcd60e51b815260206004820152601260248201527173656e646572206d75737420626520636f6f60701b604482015290519081900360640190fd5b600254600160a01b900460ff16156110cb5760405162461bcd60e51b81526004018080602001828103825260248152602001806121636024913960400191505060405180910390fd5b6040805160208082018590528251808303820181529183018352815191810191909120600081815260059092529190208054600160901b900464ffffffffff164381106111495760405162461bcd60e51b81526004018080602001828103825260338152602001806121876033913960400191505060405180910390fd5b60fa810143111561118b5760405162461bcd60e51b81526004018080602001828103825260228152602001806122546022913960400191505060405180910390fd5b838140146111ca5760405162461bcd60e51b81526004018080602001828103825260338152602001806120896033913960400191505060405180910390fd5b6111d5828686611bf4565b5050505050565b6001546001600160a01b03163314611230576040805162461bcd60e51b815260206004820152601260248201527173656e646572206d7573742062652063666f60701b604482015290519081900360640190fd5b30318111156112705760405162461bcd60e51b81526004018080602001828103825260248152602001806121ba6024913960400191505060405180910390fd5b60045430316001600160801b03808316600160801b909304811692909201909116820111156112da576040805162461bcd60e51b81526020600482015260116024820152702737ba1032b737bab3b410333ab732399760791b604482015290519081900360640190fd5b600480546001600160801b031981166001600160801b039182169390930116919091179055565b6001546001600160a01b03163314611355576040805162461bcd60e51b815260206004820152601260248201527173656e646572206d7573742062652063666f60701b604482015290519081900360640190fd5b3031808211156113965760405162461bcd60e51b81526004018080602001828103825260248152602001806121ba6024913960400191505060405180910390fd5b60045430316001600160801b03808316600160801b90930481169290920190911683011115611400576040805162461bcd60e51b81526020600482015260116024820152702737ba1032b737bab3b410333ab732399760791b604482015290519081900360640190fd5b6001546040516001600160a01b039091169083156108fc029084906000818181858888f1935050505015801561143a573d6000803e3d6000fd5b505050565b600454600160801b90046001600160801b031681565b6002546001600160a01b031633146114a9576040805162461bcd60e51b815260206004820152601260248201527173656e646572206d75737420626520636f6f60701b604482015290519081900360640190fd5b600254600160a01b900460ff16156114f25760405162461bcd60e51b81526004018080602001828103825260248152602001806121636024913960400191505060405180910390fd5b600081815260056020526040902080546001600160801b0316806115475760405162461bcd60e51b81526004018080602001828103825260228152602001806121206022913960400191505060405180910390fd5b815464ffffffffff600160901b9091041660fa0143116115985760405162461bcd60e51b81526004018080602001828103825260228152602001806122546022913960400191505060405180910390fd5b81546001600160801b03191680835560009081906115cb90849060ff600160801b8204811691600160881b900416611a34565b600480546001600160801b03600160801b8083048216869003821602918116919091178082168490039091166001600160801b031991909116179055600286015491935091506111d5906001600160a01b03168480611e73565b6001546001600160a01b03163314611679576040805162461bcd60e51b815260206004820152601260248201527173656e646572206d7573742062652063666f60701b604482015290519081900360640190fd5b693f870857a3e0e380000081106116c15760405162461bcd60e51b81526004018080602001828103825260228152602001806120dc6022913960400191505060405180910390fd5b600355565b60006028831161176b576000821180156116e557506501000000000082105b611724576040805162461bcd60e51b815260206004820152601c60248201526000805160206120bc833981519152604482015290519081900360640190fd5b50603f7e0104104104104104104104104104104104104104104104104104104104104179200000000010000000000800000000040000000002000000000183021606611a2e565b605083116117d7576000821180156117865750600160501b82105b6117c5576040805162461bcd60e51b815260206004820152601c60248201526000805160206120bc833981519152604482015290519081900360640190fd5b6117d0826002611f89565b9050611a2e565b8260641415611832576000821180156117f05750828211155b61182b5760405162461bcd60e51b815260040180806020018281038252602e815260200180612226602e913960400191505060405180910390fd5b5080611a2e565b607883116118975760008211801561184d5750600160781b82105b61188c576040805162461bcd60e51b815260206004820152601c60248201526000805160206120bc833981519152604482015290519081900360640190fd5b6117d0826003611f89565b60a083116118fc576000821180156118b25750600160a01b82105b6118f1576040805162461bcd60e51b815260206004820152601c60248201526000805160206120bc833981519152604482015290519081900360640190fd5b6117d0826004611f89565b60c88311611961576000821180156119175750600160c81b82105b611956576040805162461bcd60e51b815260206004820152601c60248201526000805160206120bc833981519152604482015290519081900360640190fd5b6117d0826005611f89565b60f083116119c65760008211801561197c5750600160f01b82105b6119bb576040805162461bcd60e51b815260206004820152601c60248201526000805160206120bc833981519152604482015290519081900360640190fd5b6117d0826006611f89565b60fd8311611a2e576000821180156119e15750600160fd1b82105b611a20576040805162461bcd60e51b815260206004820152601c60248201526000805160206120bc833981519152604482015290519081900360640190fd5b611a2b826007611f89565b90505b92915050565b600080826000108015611a475750838311155b611a98576040805162461bcd60e51b815260206004820152601d60248201527f57696e2070726f626162696c697479206f7574206f662072616e67652e000000604482015290519081900360640190fd5b67016345785d8a0000851015611aaf576000611ab8565b66038d7ea4c680005b905060648504660110d9316ec000811015611ad75750660110d9316ec0005b858282011115611b185760405162461bcd60e51b81526004018080602001828103825260228152602001806120fe6022913960400191505060405180910390fd5b838583838903030281611b2757fe5b04925050935093915050565b6000546001600160a01b03163314611b87576040805162461bcd60e51b815260206004820152601260248201527173656e646572206d7573742062652063656f60701b604482015290519081900360640190fd5b600254600160a01b900460ff16611be5576040805162461bcd60e51b815260206004820181905260248201527f6f6e6c79207768656e2074686520636f6e747261637420495320706175736564604482015290519081900360640190fd5b6002805460ff60a01b19169055565b600254600160a01b900460ff1615611c3d5760405162461bcd60e51b81526004018080602001828103825260248152602001806121636024913960400191505060405180910390fd5b825460028401546001600160801b0382169160ff600160801b8204811692600160881b90920416906001600160a01b031680611cc0576040805162461bcd60e51b815260206004820152601e60248201527f47616d626c6572277320616464726573732063616e206e6f7420626520300000604482015290519081900360640190fd5b83611cfc5760405162461bcd60e51b81526004018080602001828103825260228152602001806121206022913960400191505060405180910390fd5b86546001600160801b0319168755604080516020808201899052818301889052825180830384018152606090920190925280519101206000848281611d3d57fe5b069050600080611d4e888888611a34565b909250905060008060648914801590611d68575060fd8911155b15611d87578c600101548560020a16600014611d82578391505b611d93565b87851015611d93578391505b600480546001600160801b03600160801b8083048216889003821602911617905567016345785d8a00008a10611e015760006103e88a8881611dd157fe5b0481611dd957fe5b06905080611dff57600480546001600160801b031981169091556001600160801b031691505b505b8015611e47576040805182815290516001600160a01b038916917fc388db0e8aa560a59633c094a0d0aa21322cd6234836fd5bac00fc5ae63b5783919081900360200190a25b611e648783830115611e5b57828401611e5e565b60015b84611e73565b50505050505050505050505050565b6001600160a01b038316611eb85760405162461bcd60e51b81526004018080602001828103825260228152602001806120676022913960400191505060405180910390fd5b60405130319084906001600160a01b0382169085156108fc029086906000818181858888f19350505050158015611ef3573d6000803e3d6000fd5b5030318483031415611f43576040805184815290516001600160a01b038716917fd4f43975feb89f48dd30cabbb32011045be187d1e11c8ea9faa43efc35282519919081900360200190a26111d5565b6040805185815290516001600160a01b038716917fac464fe4d3a86b9121261ac0a01dd981bfe0777c7c9d9c8f4473d31a9c0f9d2d919081900360200190a25050505050565b603f7e0104104104104104104104104104104104104104104104104104104104104179200000000010000000000800000000040000000002000000000164ffffffffff85160216068260015b838110156120395760289190911c90603f64ffffffffff8316792000000000100000000008000000000400000000020000000001027e0104104104104104104104104104104104104104104104104104104104104116069290920191600101611fd5565b50509291505056fe506172616d657465722076206d75737420626520657175616c20746f203237206f7220323842656e6566696369617279277320616464726573732063616e206e6f742062652030626c6f636b6861736828706c616365426c6f636b4e756d62657229206d75737420657175616c20746f20626c6f636b486173684d61736b2073686f756c642062652077697468696e2072616e67652e000000006d617850726f6669742073686f756c6420626520612073616e65206e756d6265722e42657420646f65736e2774206576656e20636f76657220686f75736520656467652e4265742073686f756c6420626520696e20616e2027616374697665272073746174654265742073686f756c6420626520696e20612027636c65616e272073746174652e6f6e6c79207768656e2074686520636f6e7472616374204953204e4f5420706175736564736574746c6542657420696e207468652073616d6520626c6f636b20617320706c6163654265742c206f72206265666f72652e496e63726561736520616d6f756e74206c6172676572207468616e2062616c616e63652e416c6c20626574732073686f756c642062652070726f6365737365642028736574746c6564206f7220726566756e64656429206265666f72652073656c662d64657374727563742e48696768206d6f64756c6f2072616e67652c206265744d61736b206c6172676572207468616e206d6f64756c6f2e426c6f636b686173682063616e277420626520717565726965642062792045564d2e6e6577436f6e7472616374416464726573732061646472657373206d7573742062652030a265627a7a723158203c8793442cb6212557df740bbf940c8f82074010536db3c912df4ea4ac7302bf64736f6c634300050b0032', 'head': None, 'length': 17822, 'tail': None, 'truncated': False}, 'verified_source': False}
codex
{"no_findings":false,"summary":"Bytecode-only review (selectors inferred best-effort). Detected tx.origin used as an authorization guard (pc 8909) across all 21 discovered selectors. Also observed three low-level CALL sites with computed target/value; a trace suggests the target may be the contract itself, but trust/reentrancy safety cannot be fully confirmed from bytecode alone.","findings":[{"severity":"high","category":"auth","title":"Authorization relies on tx.origin","exploit_scenario":"If privileged checks are based on tx.origin, a malicious contract can trick a privileged EOA into calling it and then forward a call into this contract. The tx.origin remains the EOA, so the guard passes even though msg.sender is attacker-controlled, enabling unauthorized actions.","recommendation":"Replace tx.origin-based authorization with msg.sender checks and explicit role/ownership controls. If the intent is to restrict to EOAs, use a whitelist or alternative mechanisms rather than tx.origin.","evidence":"analysis_artifact.auth.guards shows tx_origin_used at pc 8909; all 21 discovered functions list this guard (selectors below), indicating broad reliance on tx.origin in access checks.","locations":["pc:8909","selector:0xca722cdc","selector:0xd6d30a51","selector:0xda76d5cd","selector:0xdf88126f","selector:0xe1fdb4b4","selector:0xfbd668a9","selector:0x6af04a57","selector:0x71587988","selector:0x8456cb59","selector:0xb047fb50","selector:0xb539cd55","selector:0x3f4ba83a","selector:0x41c0e1b5","selector:0x4e0a3379","selector:0x57246d23","selector:0x5c975abb","selector:0x0519ce79","selector:0x0a0f8168","selector:0x227ada37","selector:0x27d7874c","selector:0x2ba73c15"]},{"severity":"low","category":"reentrancy","title":"Low-level CALLs with computed target/value; trust and reentrancy safety unclear","exploit_scenario":"Bytecode shows external CALLs with computed target/value. If any path allows a user-influenced target or value, an attacker-controlled callee could reenter before state updates or cause fund loss. Validation tracing suggests the call target may be constant to the contract itself, but this is not confirmed for all paths.","recommendation":"Ensure external calls only reach trusted addresses, update state before calls, and use reentrancy guards where appropriate. If the intent is to call self, prefer internal calls to avoid external call frames; explicitly check call success/returndata.","evidence":"analysis_artifact.callsites lists CALL at pc 3322, 5156, 7901 with computed target/value and returndata_checked null; detector flagged untrusted CALL/ETH value transfer possible, while trace validation saw a constant target equal to the contract address (not confirmed for all paths).","locations":["pc:3322","pc:5156","pc:7901"]}]}
tokens used
47,242
Metadata
{
    "codex": {
        "ran_at": "2026-01-30T13:40:12.236288+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 17822,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Bytecode-only review (selectors inferred best-effort). Detected tx.origin used as an authorization guard (pc 8909) across all 21 discovered selectors. Also observed three low-level CALL sites with computed target/value; a trace suggests the target may be the contract itself, but trust/reentrancy safety cannot be fully confirmed from bytecode alone.",
    "raw_final": {
        "summary": "Bytecode-only review (selectors inferred best-effort). Detected tx.origin used as an authorization guard (pc 8909) across all 21 discovered selectors. Also observed three low-level CALL sites with computed target/value; a trace suggests the target may be the contract itself, but trust/reentrancy safety cannot be fully confirmed from bytecode alone.",
        "findings": [
            {
                "title": "Authorization relies on tx.origin",
                "category": "auth",
                "evidence": "analysis_artifact.auth.guards shows tx_origin_used at pc 8909; all 21 discovered functions list this guard (selectors below), indicating broad reliance on tx.origin in access checks.",
                "severity": "high",
                "locations": [
                    "pc:8909",
                    "selector:0xca722cdc",
                    "selector:0xd6d30a51",
                    "selector:0xda76d5cd",
                    "selector:0xdf88126f",
                    "selector:0xe1fdb4b4",
                    "selector:0xfbd668a9",
                    "selector:0x6af04a57",
                    "selector:0x71587988",
                    "selector:0x8456cb59",
                    "selector:0xb047fb50",
                    "selector:0xb539cd55",
                    "selector:0x3f4ba83a",
                    "selector:0x41c0e1b5",
                    "selector:0x4e0a3379",
                    "selector:0x57246d23",
                    "selector:0x5c975abb",
                    "selector:0x0519ce79",
                    "selector:0x0a0f8168",
                    "selector:0x227ada37",
                    "selector:0x27d7874c",
                    "selector:0x2ba73c15"
                ],
                "recommendation": "Replace tx.origin-based authorization with msg.sender checks and explicit role/ownership controls. If the intent is to restrict to EOAs, use a whitelist or alternative mechanisms rather than tx.origin.",
                "exploit_scenario": "If privileged checks are based on tx.origin, a malicious contract can trick a privileged EOA into calling it and then forward a call into this contract. The tx.origin remains the EOA, so the guard passes even though msg.sender is attacker-controlled, enabling unauthorized actions."
            },
            {
                "title": "Low-level CALLs with computed target/value; trust and reentrancy safety unclear",
                "category": "reentrancy",
                "evidence": "analysis_artifact.callsites lists CALL at pc 3322, 5156, 7901 with computed target/value and returndata_checked null; detector flagged untrusted CALL/ETH value transfer possible, while trace validation saw a constant target equal to the contract address (not confirmed for all paths).",
                "severity": "low",
                "locations": [
                    "pc:3322",
                    "pc:5156",
                    "pc:7901"
                ],
                "recommendation": "Ensure external calls only reach trusted addresses, update state before calls, and use reentrancy guards where appropriate. If the intent is to call self, prefer internal calls to avoid external call frames; explicitly check call success/returndata.",
                "exploit_scenario": "Bytecode shows external CALLs with computed target/value. If any path allows a user-influenced target or value, an attacker-controlled callee could reenter before state updates or cause fund loss. Validation tracing suggests the call target may be constant to the contract itself, but this is not confirmed for all paths."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
4
EXT*/BALANCE
9
Total opcodes
5376
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 0x012a
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x6af04a57
00000019: GT
0000001a: PUSH2 0x00ab
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xca722cdc
00000024: GT
00000025: PUSH2 0x006f
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xca722cdc
0000002f: EQ
00000030: PUSH2 0x036c
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xd6d30a51
0000003a: EQ
0000003b: PUSH2 0x039c
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xda76d5cd
00000045: EQ
00000046: PUSH2 0x03c6
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xdf88126f
00000050: EQ
00000051: PUSH2 0x03f0
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xe1fdb4b4
0000005b: EQ
0000005c: PUSH2 0x0405
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xfbd668a9
00000066: EQ
00000067: PUSH2 0x042f
0000006a: JUMPI
0000006b: PUSH2 0x012a
0000006e: JUMP
0000006f: JUMPDEST
00000070: DUP1
00000071: PUSH4 0x6af04a57
00000076: EQ
00000077: PUSH2 0x02d3
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0x71587988
00000081: EQ
00000082: PUSH2 0x02e8
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0x8456cb59
0000008c: EQ
0000008d: PUSH2 0x031b
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0xb047fb50
00000097: EQ
00000098: PUSH2 0x0330
0000009b: JUMPI
0000009c: DUP1
0000009d: PUSH4 0xb539cd55
000000a2: EQ
000000a3: PUSH2 0x0345
000000a6: JUMPI
000000a7: PUSH2 0x012a
000000aa: JUMP
000000ab: JUMPDEST
000000ac: DUP1
000000ad: PUSH4 0x3f4ba83a
000000b2: GT
000000b3: PUSH2 0x00f2
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0x3f4ba83a
000000bd: EQ
000000be: PUSH2 0x021c
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0x41c0e1b5
000000c8: EQ
000000c9: PUSH2 0x0231
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH4 0x4e0a3379
000000d3: EQ
000000d4: PUSH2 0x0246
000000d7: JUMPI
000000d8: DUP1
000000d9: PUSH4 0x57246d23
000000de: EQ
000000df: PUSH2 0x0279
000000e2: JUMPI
000000e3: DUP1
000000e4: PUSH4 0x5c975abb
000000e9: EQ
000000ea: PUSH2 0x02aa
000000ed: JUMPI
000000ee: PUSH2 0x012a
000000f1: JUMP
000000f2: JUMPDEST
000000f3: DUP1
000000f4: PUSH4 0x0519ce79
000000f9: EQ
000000fa: PUSH2 0x012c
000000fd: JUMPI
000000fe: DUP1
000000ff: PUSH4 0x0a0f8168
00000104: EQ
00000105: PUSH2 0x015d
00000108: JUMPI
00000109: DUP1
0000010a: PUSH4 0x227ada37
0000010f: EQ
00000110: PUSH2 0x0172
00000113: JUMPI
00000114: DUP1
00000115: PUSH4 0x27d7874c
0000011a: EQ
0000011b: PUSH2 0x01b6
0000011e: JUMPI
0000011f: DUP1
00000120: PUSH4 0x2ba73c15
00000125: EQ
00000126: PUSH2 0x01e9
00000129: JUMPI
0000012a: JUMPDEST
0000012b: STOP
0000012c: JUMPDEST
0000012d: CALLVALUE
0000012e: DUP1
0000012f: ISZERO
00000130: PUSH2 0x0138
00000133: JUMPI
00000134: PUSH1 0x00
00000136: DUP1
00000137: REVERT
00000138: JUMPDEST
00000139: POP
0000013a: PUSH2 0x0141
0000013d: PUSH2 0x0459
00000140: JUMP
00000141: JUMPDEST
00000142: PUSH1 0x40
00000144: DUP1
00000145: MLOAD
00000146: PUSH1 0x01
00000148: PUSH1 0x01
0000014a: PUSH1 0xa0
0000014c: SHL
0000014d: SUB
0000014e: SWAP1
0000014f: SWAP3
00000150: AND
00000151: DUP3
00000152: MSTORE
00000153: MLOAD
00000154: SWAP1
00000155: DUP2
00000156: SWAP1
00000157: SUB
00000158: PUSH1 0x20
0000015a: ADD
0000015b: SWAP1
0000015c: RETURN
0000015d: JUMPDEST
0000015e: CALLVALUE
0000015f: DUP1
00000160: ISZERO
00000161: PUSH2 0x0169
00000164: JUMPI
00000165: PUSH1 0x00
00000167: DUP1
00000168: REVERT
00000169: JUMPDEST
0000016a: POP
0000016b: PUSH2 0x0141
0000016e: PUSH2 0x0468
00000171: JUMP
00000172: JUMPDEST
00000173: PUSH2 0x012a
00000176: PUSH1 0x04
00000178: DUP1
00000179: CALLDATASIZE
0000017a: SUB
0000017b: PUSH1 0xe0
0000017d: DUP2
0000017e: LT
0000017f: ISZERO
00000180: PUSH2 0x0188
00000183: JUMPI
00000184: PUSH1 0x00
00000186: DUP1
00000187: REVERT
00000188: JUMPDEST
00000189: POP
0000018a: DUP1
0000018b: CALLDATALOAD
0000018c: SWAP1
0000018d: PUSH1 0x20
0000018f: DUP2
00000190: ADD
00000191: CALLDATALOAD
00000192: SWAP1
00000193: PUSH1 0x40
00000195: DUP2
00000196: ADD
00000197: CALLDATALOAD
00000198: SWAP1
00000199: PUSH1 0x60
0000019b: DUP2
0000019c: ADD
0000019d: CALLDATALOAD
0000019e: SWAP1
0000019f: PUSH1 0x80
000001a1: DUP2
000001a2: ADD
000001a3: CALLDATALOAD
000001a4: SWAP1
000001a5: PUSH1 0xa0
000001a7: DUP2
000001a8: ADD
000001a9: CALLDATALOAD
000001aa: SWAP1
000001ab: PUSH1 0xc0
000001ad: ADD
000001ae: CALLDATALOAD
000001af: PUSH1 0xff
000001b1: AND
000001b2: PUSH2 0x0477
000001b5: JUMP
000001b6: JUMPDEST
000001b7: CALLVALUE
000001b8: DUP1
000001b9: ISZERO
000001ba: PUSH2 0x01c2
000001bd: JUMPI
000001be: PUSH1 0x00
000001c0: DUP1
000001c1: REVERT
000001c2: JUMPDEST
000001c3: POP
000001c4: PUSH2 0x012a
000001c7: PUSH1 0x04
000001c9: DUP1
000001ca: CALLDATASIZE
000001cb: SUB
000001cc: PUSH1 0x20
000001ce: DUP2
000001cf: LT
000001d0: ISZERO
000001d1: PUSH2 0x01d9
000001d4: JUMPI
000001d5: PUSH1 0x00
000001d7: DUP1
000001d8: REVERT
000001d9: JUMPDEST
000001da: POP
000001db: CALLDATALOAD
000001dc: PUSH1 0x01
000001de: PUSH1 0x01
000001e0: PUSH1 0xa0
000001e2: SHL
000001e3: SUB
000001e4: AND
000001e5: PUSH2 0x099f
000001e8: JUMP
000001e9: JUMPDEST
000001ea: CALLVALUE
000001eb: DUP1
000001ec: ISZERO
000001ed: PUSH2 0x01f5
000001f0: JUMPI
000001f1: PUSH1 0x00
000001f3: DUP1
000001f4: REVERT
000001f5: JUMPDEST
000001f6: POP
000001f7: PUSH2 0x012a
000001fa: PUSH1 0x04
000001fc: DUP1
000001fd: CALLDATASIZE
000001fe: SUB
000001ff: PUSH1 0x20
00000201: DUP2
00000202: LT
00000203: ISZERO
00000204: PUSH2 0x020c
00000207: JUMPI
00000208: PUSH1 0x00
0000020a: DUP1
0000020b: REVERT
0000020c: JUMPDEST
0000020d: POP
0000020e: CALLDATALOAD
0000020f: PUSH1 0x01
00000211: PUSH1 0x01
00000213: PUSH1 0xa0
00000215: SHL
00000216: SUB
00000217: AND
00000218: PUSH2 0x0a67
0000021b: JUMP
0000021c: JUMPDEST
0000021d: CALLVALUE
0000021e: DUP1
0000021f: ISZERO
00000220: PUSH2 0x0228
00000223: JUMPI
00000224: PUSH1 0x00
00000226: DUP1
00000227: REVERT
00000228: JUMPDEST
00000229: POP
0000022a: PUSH2 0x012a
0000022d: PUSH2 0x0b2f
00000230: JUMP
00000231: JUMPDEST
00000232: CALLVALUE
00000233: DUP1
00000234: ISZERO
00000235: PUSH2 0x023d
00000238: JUMPI
00000239: PUSH1 0x00
0000023b: DUP1
0000023c: REVERT
0000023d: JUMPDEST
0000023e: POP
0000023f: PUSH2 0x012a
00000242: PUSH2 0x0c33
00000245: JUMP
00000246: JUMPDEST
00000247: CALLVALUE
00000248: DUP1
00000249: ISZERO
0000024a: PUSH2 0x0252
0000024d: JUMPI
0000024e: PUSH1 0x00
00000250: DUP1
00000251: REVERT
00000252: JUMPDEST
00000253: POP
00000254: PUSH2 0x012a
00000257: PUSH1 0x04
00000259: DUP1
0000025a: CALLDATASIZE
0000025b: SUB
0000025c: PUSH1 0x20
0000025e: DUP2
0000025f: LT
00000260: ISZERO
00000261: PUSH2 0x0269
00000264: JUMPI
00000265: PUSH1 0x00
00000267: DUP1
00000268: REVERT
00000269: JUMPDEST
0000026a: POP
0000026b: CALLDATALOAD
0000026c: PUSH1 0x01
0000026e: PUSH1 0x01
00000270: PUSH1 0xa0
00000272: SHL
00000273: SUB
00000274: AND
00000275: PUSH2 0x0d36
00000278: JUMP
00000279: JUMPDEST
0000027a: CALLVALUE
0000027b: DUP1
0000027c: ISZERO
0000027d: PUSH2 0x0285
00000280: JUMPI
00000281: PUSH1 0x00
00000283: DUP1
00000284: REVERT
00000285: JUMPDEST
00000286: POP
00000287: PUSH2 0x028e
0000028a: PUSH2 0x0dfe
0000028d: JUMP
0000028e: JUMPDEST
0000028f: PUSH1 0x40
00000291: DUP1
00000292: MLOAD
00000293: PUSH1 0x01
00000295: PUSH1 0x01
00000297: PUSH1 0x80
00000299: SHL
0000029a: SUB
0000029b: SWAP1
0000029c: SWAP3
0000029d: AND
0000029e: DUP3
0000029f: MSTORE
000002a0: MLOAD
000002a1: SWAP1
000002a2: DUP2
000002a3: SWAP1
000002a4: SUB
000002a5: PUSH1 0x20
000002a7: ADD
000002a8: SWAP1
000002a9: RETURN
000002aa: JUMPDEST
000002ab: CALLVALUE
000002ac: DUP1
000002ad: ISZERO
000002ae: PUSH2 0x02b6
000002b1: JUMPI
000002b2: PUSH1 0x00
000002b4: DUP1
000002b5: REVERT
000002b6: JUMPDEST
000002b7: POP
000002b8: PUSH2 0x02bf
000002bb: PUSH2 0x0e0d
000002be: JUMP
000002bf: JUMPDEST
000002c0: PUSH1 0x40
000002c2: DUP1
000002c3: MLOAD
000002c4: SWAP2
000002c5: ISZERO
000002c6: ISZERO
000002c7: DUP3
000002c8: MSTORE
000002c9: MLOAD
000002ca: SWAP1
000002cb: DUP2
000002cc: SWAP1
000002cd: SUB
000002ce: PUSH1 0x20
000002d0: ADD
000002d1: SWAP1
000002d2: RETURN
000002d3: JUMPDEST
000002d4: CALLVALUE
000002d5: DUP1
000002d6: ISZERO
000002d7: PUSH2 0x02df
000002da: JUMPI
000002db: PUSH1 0x00
000002dd: DUP1
000002de: REVERT
000002df: JUMPDEST
000002e0: POP
000002e1: PUSH2 0x0141
000002e4: PUSH2 0x0e1d
000002e7: JUMP
000002e8: JUMPDEST
000002e9: CALLVALUE
000002ea: DUP1
000002eb: ISZERO
000002ec: PUSH2 0x02f4
000002ef: JUMPI
000002f0: PUSH1 0x00
000002f2: DUP1
000002f3: REVERT
000002f4: JUMPDEST
000002f5: POP
000002f6: PUSH2 0x012a
000002f9: PUSH1 0x04
000002fb: DUP1
000002fc: CALLDATASIZE
000002fd: SUB
000002fe: PUSH1 0x20
00000300: DUP2
00000301: LT
00000302: ISZERO
00000303: PUSH2 0x030b
00000306: JUMPI
00000307: PUSH1 0x00
00000309: DUP1
0000030a: REVERT
0000030b: JUMPDEST
0000030c: POP
0000030d: CALLDATALOAD
0000030e: PUSH1 0x01
00000310: PUSH1 0x01
00000312: PUSH1 0xa0
00000314: SHL
00000315: SUB
00000316: AND
00000317: PUSH2 0x0e2c
0000031a: JUMP
0000031b: JUMPDEST
0000031c: CALLVALUE
0000031d: DUP1
0000031e: ISZERO
0000031f: PUSH2 0x0327
00000322: JUMPI
00000323: PUSH1 0x00
00000325: DUP1
00000326: REVERT
00000327: JUMPDEST
00000328: POP
00000329: PUSH2 0x012a
0000032c: PUSH2 0x0f32
0000032f: JUMP
00000330: JUMPDEST
00000331: CALLVALUE
00000332: DUP1
00000333: ISZERO
00000334: PUSH2 0x033c
00000337: JUMPI
00000338: PUSH1 0x00
0000033a: DUP1
0000033b: REVERT
0000033c: JUMPDEST
0000033d: POP
0000033e: PUSH2 0x0141
00000341: PUSH2 0x1019
00000344: JUMP
00000345: JUMPDEST
00000346: CALLVALUE
00000347: DUP1
00000348: ISZERO
00000349: PUSH2 0x0351
0000034c: JUMPI
0000034d: PUSH1 0x00
0000034f: DUP1
00000350: REVERT
00000351: JUMPDEST
00000352: POP
00000353: PUSH2 0x035a
00000356: PUSH2 0x1028
00000359: JUMP
0000035a: JUMPDEST
0000035b: PUSH1 0x40
0000035d: DUP1
0000035e: MLOAD
0000035f: SWAP2
00000360: DUP3
00000361: MSTORE
00000362: MLOAD
00000363: SWAP1
00000364: DUP2
00000365: SWAP1
00000366: SUB
00000367: PUSH1 0x20
00000369: ADD
0000036a: SWAP1
0000036b: RETURN
0000036c: JUMPDEST
0000036d: CALLVALUE
0000036e: DUP1
0000036f: ISZERO
00000370: PUSH2 0x0378
00000373: JUMPI
00000374: PUSH1 0x00
00000376: DUP1
00000377: REVERT
00000378: JUMPDEST
00000379: POP
0000037a: PUSH2 0x012a
0000037d: PUSH1 0x04
0000037f: DUP1
00000380: CALLDATASIZE
00000381: SUB
00000382: PUSH1 0x40
00000384: DUP2
00000385: LT
00000386: ISZERO
00000387: PUSH2 0x038f
0000038a: JUMPI
0000038b: PUSH1 0x00
0000038d: DUP1
0000038e: REVERT
0000038f: JUMPDEST
00000390: POP
00000391: DUP1
00000392: CALLDATALOAD
00000393: SWAP1
00000394: PUSH1 0x20
00000396: ADD
00000397: CALLDATALOAD
00000398: PUSH2 0x102e
0000039b: JUMP
0000039c: JUMPDEST
0000039d: CALLVALUE
0000039e: DUP1
0000039f: ISZERO
000003a0: PUSH2 0x03a8
000003a3: JUMPI
000003a4: PUSH1 0x00
000003a6: DUP1
000003a7: REVERT
000003a8: JUMPDEST
000003a9: POP
000003aa: PUSH2 0x012a
000003ad: PUSH1 0x04
000003af: DUP1
000003b0: CALLDATASIZE
000003b1: SUB
000003b2: PUSH1 0x20
000003b4: DUP2
000003b5: LT
000003b6: ISZERO
000003b7: PUSH2 0x03bf
000003ba: JUMPI
000003bb: PUSH1 0x00
000003bd: DUP1
000003be: REVERT
000003bf: JUMPDEST
000003c0: POP
000003c1: CALLDATALOAD
000003c2: PUSH2 0x11dc
000003c5: JUMP
000003c6: JUMPDEST
000003c7: CALLVALUE
000003c8: DUP1
000003c9: ISZERO
000003ca: PUSH2 0x03d2
000003cd: JUMPI
000003ce: PUSH1 0x00
000003d0: DUP1
000003d1: REVERT
000003d2: JUMPDEST
000003d3: POP
000003d4: PUSH2 0x012a
000003d7: PUSH1 0x04
000003d9: DUP1
000003da: CALLDATASIZE
000003db: SUB
000003dc: PUSH1 0x20
000003de: DUP2
000003df: LT
000003e0: ISZERO
000003e1: PUSH2 0x03e9
000003e4: JUMPI
000003e5: PUSH1 0x00
000003e7: DUP1
000003e8: REVERT
000003e9: JUMPDEST
000003ea: POP
000003eb: CALLDATALOAD
000003ec: PUSH2 0x1301
000003ef: JUMP
000003f0: JUMPDEST
000003f1: CALLVALUE
000003f2: DUP1
000003f3: ISZERO
000003f4: PUSH2 0x03fc
000003f7: JUMPI
000003f8: PUSH1 0x00
000003fa: DUP1
000003fb: REVERT
000003fc: JUMPDEST
000003fd: POP
000003fe: PUSH2 0x028e
00000401: PUSH2 0x143f
00000404: JUMP
00000405: JUMPDEST
00000406: CALLVALUE
00000407: DUP1
00000408: ISZERO
00000409: PUSH2 0x0411
0000040c: JUMPI
0000040d: PUSH1 0x00
0000040f: DUP1
00000410: REVERT
00000411: JUMPDEST
00000412: POP
00000413: PUSH2 0x012a
00000416: PUSH1 0x04
00000418: DUP1
00000419: CALLDATASIZE
0000041a: SUB
0000041b: PUSH1 0x20
0000041d: DUP2
0000041e: LT
0000041f: ISZERO
00000420: PUSH2 0x0428
00000423: JUMPI
00000424: PUSH1 0x00
00000426: DUP1
00000427: REVERT
00000428: JUMPDEST
00000429: POP
0000042a: CALLDATALOAD
0000042b: PUSH2 0x1455
0000042e: JUMP
0000042f: JUMPDEST
00000430: CALLVALUE
00000431: DUP1
00000432: ISZERO
00000433: PUSH2 0x043b
00000436: JUMPI
00000437: PUSH1 0x00
00000439: DUP1
0000043a: REVERT
0000043b: JUMPDEST
0000043c: POP
0000043d: PUSH2 0x012a
00000440: PUSH1 0x04
00000442: DUP1
00000443: CALLDATASIZE
00000444: SUB
00000445: PUSH1 0x20
00000447: DUP2
00000448: LT
00000449: ISZERO
0000044a: PUSH2 0x0452
0000044d: JUMPI
0000044e: PUSH1 0x00
00000450: DUP1
00000451: REVERT
00000452: JUMPDEST
00000453: POP
00000454: CALLDATALOAD
00000455: PUSH2 0x1625
00000458: JUMP
00000459: JUMPDEST
0000045a: PUSH1 0x01
0000045c: SLOAD
0000045d: PUSH1 0x01
0000045f: PUSH1 0x01
00000461: PUSH1 0xa0
00000463: SHL
00000464: SUB
00000465: AND
00000466: DUP2
00000467: JUMP
00000468: JUMPDEST
00000469: PUSH1 0x00
0000046b: SLOAD
0000046c: PUSH1 0x01
0000046e: PUSH1 0x01
00000470: PUSH1 0xa0
00000472: SHL
00000473: SUB
00000474: AND
00000475: DUP2
00000476: JUMP
00000477: JUMPDEST
00000478: PUSH1 0x02
0000047a: SLOAD
0000047b: PUSH1 0x01
0000047d: PUSH1 0xa0
0000047f: SHL
00000480: SWAP1
00000481: DIV
00000482: PUSH1 0xff
00000484: AND
00000485: ISZERO
00000486: PUSH2 0x04c0
00000489: JUMPI
0000048a: PUSH1 0x40
0000048c: MLOAD
0000048d: PUSH3 0x461bcd
00000491: PUSH1 0xe5
00000493: SHL
00000494: DUP2
00000495: MSTORE
00000496: PUSH1 0x04
00000498: ADD
00000499: DUP1
0000049a: DUP1
0000049b: PUSH1 0x20
0000049d: ADD
0000049e: DUP3
0000049f: DUP2
000004a0: SUB
000004a1: DUP3
000004a2: MSTORE
000004a3: PUSH1 0x24
000004a5: DUP2
000004a6: MSTORE
000004a7: PUSH1 0x20
000004a9: ADD
000004aa: DUP1
000004ab: PUSH2 0x2163
000004ae: PUSH1 0x24
000004b0: SWAP2
000004b1: CODECOPY
000004b2: PUSH1 0x40
000004b4: ADD
000004b5: SWAP2
000004b6: POP
000004b7: POP
000004b8: PUSH1 0x40
000004ba: MLOAD
000004bb: DUP1
000004bc: SWAP2
000004bd: SUB
000004be: SWAP1
000004bf: REVERT
000004c0: JUMPDEST
000004c1: PUSH1 0x00
000004c3: DUP5
000004c4: DUP2
000004c5: MSTORE
000004c6: PUSH1 0x05
000004c8: PUSH1 0x20
000004ca: MSTORE
000004cb: PUSH1 0x40
000004cd: SWAP1
000004ce: KECCAK256
000004cf: PUSH1 0x02
000004d1: DUP2
000004d2: ADD
000004d3: SLOAD
000004d4: PUSH1 0x01
000004d6: PUSH1 0x01
000004d8: PUSH1 0xa0
000004da: SHL
000004db: SUB
000004dc: AND
000004dd: ISZERO
000004de: PUSH2 0x0518
000004e1: JUMPI
000004e2: PUSH1 0x40
000004e4: MLOAD
000004e5: PUSH3 0x461bcd
000004e9: PUSH1 0xe5
000004eb: SHL
000004ec: DUP2
000004ed: MSTORE
000004ee: PUSH1 0x04
000004f0: ADD
000004f1: DUP1
000004f2: DUP1
000004f3: PUSH1 0x20
000004f5: ADD
000004f6: DUP3
000004f7: DUP2
000004f8: SUB
000004f9: DUP3
000004fa: MSTORE
000004fb: PUSH1 0x21
000004fd: DUP2
000004fe: MSTORE
000004ff: PUSH1 0x20
00000501: ADD
00000502: DUP1
00000503: PUSH2 0x2142
00000506: PUSH1 0x21
00000508: SWAP2
00000509: CODECOPY
0000050a: PUSH1 0x40
0000050c: ADD
0000050d: SWAP2
0000050e: POP
0000050f: POP
00000510: PUSH1 0x40
00000512: MLOAD
00000513: DUP1
00000514: SWAP2
00000515: SUB
00000516: SWAP1
00000517: REVERT
00000518: JUMPDEST
00000519: CALLVALUE
0000051a: PUSH1 0x01
0000051c: DUP9
0000051d: GT
0000051e: DUP1
0000051f: ISZERO
00000520: PUSH2 0x052a
00000523: JUMPI
00000524: POP
00000525: PUSH1 0xfd
00000527: DUP9
00000528: GT
00000529: ISZERO
0000052a: JUMPDEST
0000052b: PUSH2 0x057b
0000052e: JUMPI
0000052f: PUSH1 0x40
00000531: DUP1
00000532: MLOAD
00000533: PUSH3 0x461bcd
00000537: PUSH1 0xe5
00000539: SHL
0000053a: DUP2
0000053b: MSTORE
0000053c: PUSH1 0x20
0000053e: PUSH1 0x04
00000540: DUP3
00000541: ADD
00000542: MSTORE
00000543: PUSH1 0x1e
00000545: PUSH1 0x24
00000547: DUP3
00000548: ADD
00000549: MSTORE
0000054a: PUSH32 0x4d6f64756c6f2073686f756c642062652077697468696e2072616e67652e0000
0000056b: PUSH1 0x44
0000056d: DUP3
0000056e: ADD
0000056f: MSTORE
00000570: SWAP1
00000571: MLOAD
00000572: SWAP1
00000573: DUP2
00000574: SWAP1
00000575: SUB
00000576: PUSH1 0x64
00000578: ADD
00000579: SWAP1
0000057a: REVERT
0000057b: JUMPDEST
0000057c: PUSH7 0x2386f26fc10000
00000584: DUP2
00000585: LT
00000586: ISZERO
00000587: DUP1
00000588: ISZERO
00000589: PUSH2 0x059c
0000058c: JUMPI
0000058d: POP
0000058e: PUSH10 0x3f870857a3e0e3800000
00000599: DUP2
0000059a: GT
0000059b: ISZERO
0000059c: JUMPDEST
0000059d: PUSH2 0x05ed
000005a0: JUMPI
000005a1: PUSH1 0x40
000005a3: DUP1
000005a4: MLOAD
000005a5: PUSH3 0x461bcd
000005a9: PUSH1 0xe5
000005ab: SHL
000005ac: DUP2
000005ad: MSTORE
000005ae: PUSH1 0x20
000005b0: PUSH1 0x04
000005b2: DUP3
000005b3: ADD
000005b4: MSTORE
000005b5: PUSH1 0x1e
000005b7: PUSH1 0x24
000005b9: DUP3
000005ba: ADD
000005bb: MSTORE
000005bc: PUSH32 0x416d6f756e742073686f756c642062652077697468696e2072616e67652e0000
000005dd: PUSH1 0x44
000005df: DUP3
000005e0: ADD
000005e1: MSTORE
000005e2: SWAP1
000005e3: MLOAD
000005e4: SWAP1
000005e5: DUP2
000005e6: SWAP1
000005e7: SUB
000005e8: PUSH1 0x64
000005ea: ADD
000005eb: SWAP1
000005ec: REVERT
000005ed: JUMPDEST
000005ee: PUSH1 0x00
000005f0: DUP10
000005f1: GT
000005f2: DUP1
000005f3: ISZERO
000005f4: PUSH2 0x0600
000005f7: JUMPI
000005f8: POP
000005f9: PUSH1 0x01
000005fb: PUSH1 0xfd
000005fd: SHL
000005fe: DUP10
000005ff: LT
00000600: JUMPDEST
00000601: PUSH2 0x063f
00000604: JUMPI
00000605: PUSH1 0x40
00000607: DUP1
00000608: MLOAD
00000609: PUSH3 0x461bcd
0000060d: PUSH1 0xe5
0000060f: SHL
00000610: DUP2
00000611: MSTORE
00000612: PUSH1 0x20
00000614: PUSH1 0x04
00000616: DUP3
00000617: ADD
00000618: MSTORE
00000619: PUSH1 0x1c
0000061b: PUSH1 0x24
0000061d: DUP3
0000061e: ADD
0000061f: MSTORE
00000620: PUSH1 0x00
00000622: DUP1
00000623: MLOAD
00000624: PUSH1 0x20
00000626: PUSH2 0x20bc
00000629: DUP4
0000062a: CODECOPY
0000062b: DUP2
0000062c: MLOAD
0000062d: SWAP2
0000062e: MSTORE
0000062f: PUSH1 0x44
00000631: DUP3
00000632: ADD
00000633: MSTORE
00000634: SWAP1
00000635: MLOAD
00000636: SWAP1
00000637: DUP2
00000638: SWAP1
00000639: SUB
0000063a: PUSH1 0x64
0000063c: ADD
0000063d: SWAP1
0000063e: REVERT
0000063f: JUMPDEST
00000640: DUP7
00000641: NUMBER
00000642: GT
00000643: ISZERO
00000644: PUSH2 0x068a
00000647: JUMPI
00000648: PUSH1 0x40
0000064a: DUP1
0000064b: MLOAD
0000064c: PUSH3 0x461bcd
00000650: PUSH1 0xe5
00000652: SHL
00000653: DUP2
00000654: MSTORE
00000655: PUSH1 0x20
00000657: PUSH1 0x04
00000659: DUP3
0000065a: ADD
0000065b: MSTORE
0000065c: PUSH1 0x13
0000065e: PUSH1 0x24
00000660: DUP3
00000661: ADD
00000662: MSTORE
00000663: PUSH19 0x21b7b6b6b4ba103430b99032bc3834b932b217
00000677: PUSH1 0x69
00000679: SHL
0000067a: PUSH1 0x44
0000067c: DUP3
0000067d: ADD
0000067e: MSTORE
0000067f: SWAP1
00000680: MLOAD
00000681: SWAP1
00000682: DUP2
00000683: SWAP1
00000684: SUB
00000685: PUSH1 0x64
00000687: ADD
00000688: SWAP1
00000689: REVERT
0000068a: JUMPDEST
0000068b: PUSH1 0x40
0000068d: DUP1
0000068e: MLOAD
0000068f: PUSH1 0x20
00000691: DUP1
00000692: DUP3
00000693: ADD
00000694: DUP11
00000695: SWAP1
00000696: MSTORE
00000697: DUP2
00000698: DUP4
00000699: ADD
0000069a: DUP10
0000069b: SWAP1
0000069c: MSTORE
0000069d: DUP3
0000069e: MLOAD
0000069f: DUP1
000006a0: DUP4
000006a1: SUB
000006a2: DUP5
000006a3: ADD
000006a4: DUP2
000006a5: MSTORE
000006a6: PUSH1 0x60
000006a8: SWAP1
000006a9: SWAP3
000006aa: ADD
000006ab: SWAP1
000006ac: SWAP3
000006ad: MSTORE
000006ae: DUP1
000006af: MLOAD
000006b0: SWAP2
000006b1: ADD
000006b2: KECCAK256
000006b3: PUSH1 0x1b
000006b5: PUSH1 0xff
000006b7: DUP6
000006b8: AND
000006b9: EQ
000006ba: DUP1
000006bb: PUSH2 0x06c7
000006be: JUMPI
000006bf: POP
000006c0: DUP4
000006c1: PUSH1 0xff
000006c3: AND
000006c4: PUSH1 0x1c
000006c6: EQ
000006c7: JUMPDEST
000006c8: PUSH2 0x0702
000006cb: JUMPI
000006cc: PUSH1 0x40
000006ce: MLOAD
000006cf: PUSH3 0x461bcd
000006d3: PUSH1 0xe5
000006d5: SHL
000006d6: DUP2
000006d7: MSTORE
000006d8: PUSH1 0x04
000006da: ADD
000006db: DUP1
000006dc: DUP1
000006dd: PUSH1 0x20
000006df: ADD
000006e0: DUP3
000006e1: DUP2
000006e2: SUB
000006e3: DUP3
000006e4: MSTORE
000006e5: PUSH1 0x25
000006e7: DUP2
000006e8: MSTORE
000006e9: PUSH1 0x20
000006eb: ADD
000006ec: DUP1
000006ed: PUSH2 0x2042
000006f0: PUSH1 0x25
000006f2: SWAP2
000006f3: CODECOPY
000006f4: PUSH1 0x40
000006f6: ADD
000006f7: SWAP2
000006f8: POP
000006f9: POP
000006fa: PUSH1 0x40
000006fc: MLOAD
000006fd: DUP1
000006fe: SWAP2
000006ff: SUB
00000700: SWAP1
00000701: REVERT
00000702: JUMPDEST
00000703: PUSH1 0x40
00000705: DUP1
00000706: MLOAD
00000707: PUSH1 0x00
00000709: DUP2
0000070a: MSTORE
0000070b: PUSH1 0x20
0000070d: DUP1
0000070e: DUP3
0000070f: ADD
00000710: DUP1
00000711: DUP5
00000712: MSTORE
00000713: DUP5
00000714: SWAP1
00000715: MSTORE
00000716: PUSH1 0xff
00000718: DUP8
00000719: AND
0000071a: DUP3
0000071b: DUP5
0000071c: ADD
0000071d: MSTORE
0000071e: PUSH1 0x60
00000720: DUP3
00000721: ADD
00000722: DUP10
00000723: SWAP1
00000724: MSTORE
00000725: PUSH1 0x80
00000727: DUP3
00000728: ADD
00000729: DUP9
0000072a: SWAP1
0000072b: MSTORE
0000072c: SWAP2
0000072d: MLOAD
0000072e: PUSH1 0x01
00000730: SWAP3
00000731: PUSH1 0xa0
00000733: DUP1
00000734: DUP5
00000735: ADD
00000736: SWAP4
00000737: SWAP2
00000738: SWAP3
00000739: PUSH1 0x1f
0000073b: NOT
0000073c: DUP2
0000073d: ADD
0000073e: SWAP3
0000073f: DUP2
00000740: SWAP1
00000741: SUB
00000742: SWAP1
00000743: SWAP2
00000744: ADD
00000745: SWAP1
00000746: DUP6
00000747: GAS
00000748: STATICCALL
00000749: ISZERO
0000074a: DUP1
0000074b: ISZERO
0000074c: PUSH2 0x0759
0000074f: JUMPI
00000750: RETURNDATASIZE
00000751: PUSH1 0x00
00000753: DUP1
00000754: RETURNDATACOPY
00000755: RETURNDATASIZE
00000756: PUSH1 0x00
00000758: REVERT
00000759: JUMPDEST
0000075a: POP
0000075b: POP
0000075c: PUSH1 0x40
0000075e: MLOAD
0000075f: PUSH1 0x1f
00000761: NOT
00000762: ADD
00000763: MLOAD
00000764: PUSH1 0x02
00000766: SLOAD
00000767: PUSH1 0x01
00000769: PUSH1 0x01
0000076b: PUSH1 0xa0
0000076d: SHL
0000076e: SUB
0000076f: SWAP1
00000770: DUP2
00000771: AND
00000772: SWAP2
00000773: AND
00000774: EQ
00000775: SWAP1
00000776: POP
00000777: PUSH2 0x07c7
0000077a: JUMPI
0000077b: PUSH1 0x40
0000077d: DUP1
0000077e: MLOAD
0000077f: PUSH3 0x461bcd
00000783: PUSH1 0xe5
00000785: SHL
00000786: DUP2
00000787: MSTORE
00000788: PUSH1 0x20
0000078a: PUSH1 0x04
0000078c: DUP3
0000078d: ADD
0000078e: MSTORE
0000078f: PUSH1 0x1d
00000791: PUSH1 0x24
00000793: DUP3
00000794: ADD
00000795: MSTORE
00000796: PUSH32 0x4543445341207369676e6174757265206973206e6f742076616c69642e000000
000007b7: PUSH1 0x44
000007b9: DUP3
000007ba: ADD
000007bb: MSTORE
000007bc: SWAP1
000007bd: MLOAD
000007be: SWAP1
000007bf: DUP2
000007c0: SWAP1
000007c1: SUB
000007c2: PUSH1 0x64
000007c4: ADD
000007c5: SWAP1
000007c6: REVERT
000007c7: JUMPDEST
000007c8: PUSH1 0x00
000007ca: PUSH2 0x07d3
000007cd: DUP11
000007ce: DUP13
000007cf: PUSH2 0x16c6
000007d2: JUMP
000007d3: JUMPDEST
000007d4: SWAP1
000007d5: POP
000007d6: PUSH1 0x00
000007d8: DUP1
000007d9: PUSH2 0x07e3
000007dc: DUP6
000007dd: DUP14
000007de: DUP6
000007df: PUSH2 0x1a34
000007e2: JUMP
000007e3: JUMPDEST
000007e4: PUSH1 0x03
000007e6: SLOAD
000007e7: SWAP2
000007e8: SWAP4
000007e9: POP
000007ea: SWAP2
000007eb: POP
000007ec: DUP6
000007ed: ADD
000007ee: DUP3
000007ef: GT
000007f0: ISZERO
000007f1: PUSH2 0x0841
000007f4: JUMPI
000007f5: PUSH1 0x40
000007f7: DUP1
000007f8: MLOAD
000007f9: PUSH3 0x461bcd
000007fd: PUSH1 0xe5
000007ff: SHL
00000800: DUP2
00000801: MSTORE
00000802: PUSH1 0x20
00000804: PUSH1 0x04
00000806: DUP3
00000807: ADD
00000808: MSTORE
00000809: PUSH1 0x1a
0000080b: PUSH1 0x24
0000080d: DUP3
0000080e: ADD
0000080f: MSTORE
00000810: PUSH32 0x6d617850726f666974206c696d69742076696f6c6174696f6e2e000000000000
00000831: PUSH1 0x44
00000833: DUP3
00000834: ADD
00000835: MSTORE
00000836: SWAP1
00000837: MLOAD
00000838: SWAP1
00000839: DUP2
0000083a: SWAP1
0000083b: SUB
0000083c: PUSH1 0x64
0000083e: ADD
0000083f: SWAP1
00000840: REVERT
00000841: JUMPDEST
00000842: PUSH1 0x04
00000844: DUP1
00000845: SLOAD
00000846: PUSH1 0x01
00000848: PUSH1 0x01
0000084a: PUSH1 0x80
0000084c: SHL
0000084d: SUB
0000084e: PUSH1 0x01
00000850: PUSH1 0x80
00000852: SHL
00000853: DUP1
00000854: DUP4
00000855: DIV
00000856: DUP3
00000857: AND
00000858: DUP7
00000859: ADD
0000085a: DUP3
0000085b: AND
0000085c: DUP2
0000085d: MUL
0000085e: SWAP3
0000085f: DUP3
00000860: AND
00000861: SWAP3
00000862: SWAP1
00000863: SWAP3
00000864: OR
00000865: DUP1
00000866: DUP3
00000867: AND
00000868: DUP6
00000869: ADD
0000086a: DUP3
0000086b: AND
0000086c: PUSH1 0x01
0000086e: PUSH1 0x01
00000870: PUSH1 0x80
00000872: SHL
00000873: SUB
00000874: NOT
00000875: SWAP2
00000876: SWAP1
00000877: SWAP2
00000878: AND
00000879: OR
0000087a: SWAP3
0000087b: DUP4
0000087c: SWAP1
0000087d: SSTORE
0000087e: ADDRESS
0000087f: BALANCE
00000880: DUP4
00000881: DUP3
00000882: AND
00000883: SWAP3
00000884: SWAP1
00000885: SWAP4
00000886: DIV
00000887: DUP2
00000888: AND
00000889: SWAP2
0000088a: SWAP1
0000088b: SWAP2
0000088c: ADD
0000088d: AND
0000088e: GT
0000088f: ISZERO
00000890: PUSH2 0x08e0
00000893: JUMPI
00000894: PUSH1 0x40
00000896: DUP1
00000897: MLOAD
00000898: PUSH3 0x461bcd
0000089c: PUSH1 0xe5
0000089e: SHL
0000089f: DUP2
000008a0: MSTORE
000008a1: PUSH1 0x20
000008a3: PUSH1 0x04
000008a5: DUP3
000008a6: ADD
000008a7: MSTORE
000008a8: PUSH1 0x1f
000008aa: PUSH1 0x24
000008ac: DUP3
000008ad: ADD
000008ae: MSTORE
000008af: PUSH32 0x43616e6e6f74206166666f726420746f206c6f73652074686973206265742e00
000008d0: PUSH1 0x44
000008d2: DUP3
000008d3: ADD
000008d4: MSTORE
000008d5: SWAP1
000008d6: MLOAD
000008d7: SWAP1
000008d8: DUP2
000008d9: SWAP1
000008da: SUB
000008db: PUSH1 0x64
000008dd: ADD
000008de: SWAP1
000008df: REVERT
000008e0: JUMPDEST
000008e1: PUSH1 0x40
000008e3: DUP1
000008e4: MLOAD
000008e5: DUP12
000008e6: DUP2
000008e7: MSTORE
000008e8: SWAP1
000008e9: MLOAD
000008ea: PUSH32 0x5bdd2fc99022530157777690475b670d3872f32262eb1d47d9ba8000dad58f87
0000090b: SWAP2
0000090c: DUP2
0000090d: SWAP1
0000090e: SUB
0000090f: PUSH1 0x20
00000911: ADD
00000912: SWAP1
00000913: LOG1
00000914: POP
00000915: POP
00000916: DUP4
00000917: SLOAD
00000918: PUSH1 0x01
0000091a: PUSH1 0x01
0000091c: PUSH1 0x80
0000091e: SHL
0000091f: SUB
00000920: NOT
00000921: AND
00000922: PUSH1 0x01
00000924: PUSH1 0x01
00000926: PUSH1 0x80
00000928: SHL
00000929: SUB
0000092a: SWAP4
0000092b: SWAP1
0000092c: SWAP4
0000092d: AND
0000092e: SWAP3
0000092f: SWAP1
00000930: SWAP3
00000931: OR
00000932: PUSH1 0xff
00000934: PUSH1 0x80
00000936: SHL
00000937: NOT
00000938: AND
00000939: PUSH1 0x01
0000093b: PUSH1 0x80
0000093d: SHL
0000093e: PUSH1 0xff
00000940: SWAP11
00000941: DUP12
00000942: AND
00000943: MUL
00000944: OR
00000945: PUSH1 0xff
00000947: PUSH1 0x88
00000949: SHL
0000094a: NOT
0000094b: AND
0000094c: PUSH1 0x01
0000094e: PUSH1 0x88
00000950: SHL
00000951: SWAP3
00000952: SWAP1
00000953: SWAP10
00000954: AND
00000955: SWAP2
00000956: SWAP1
00000957: SWAP2
00000958: MUL
00000959: SWAP8
0000095a: SWAP1
0000095b: SWAP8
0000095c: OR
0000095d: PUSH5 0xffffffffff
00000963: PUSH1 0x90
00000965: SHL
00000966: NOT
00000967: AND
00000968: PUSH1 0x01
0000096a: PUSH1 0x90
0000096c: SHL
0000096d: NUMBER
0000096e: PUSH5 0xffffffffff
00000974: AND
00000975: MUL
00000976: OR
00000977: DUP2
00000978: SSTORE
00000979: PUSH1 0x01
0000097b: DUP2
0000097c: ADD
0000097d: SWAP8
0000097e: SWAP1
0000097f: SWAP8
00000980: SSTORE
00000981: POP
00000982: POP
00000983: POP
00000984: PUSH1 0x02
00000986: SWAP1
00000987: SWAP4
00000988: ADD
00000989: DUP1
0000098a: SLOAD
0000098b: CALLER
0000098c: PUSH1 0x01
0000098e: PUSH1 0x01
00000990: PUSH1 0xa0
00000992: SHL
00000993: SUB
00000994: NOT
00000995: SWAP1
00000996: SWAP2
00000997: AND
00000998: OR
00000999: SWAP1
0000099a: SSTORE
0000099b: POP
0000099c: POP
0000099d: POP
0000099e: JUMP
0000099f: JUMPDEST
000009a0: PUSH1 0x00
000009a2: SLOAD
000009a3: PUSH1 0x01
000009a5: PUSH1 0x01
000009a7: PUSH1 0xa0
000009a9: SHL
000009aa: SUB
000009ab: AND
000009ac: CALLER
000009ad: EQ
000009ae: PUSH2 0x09f3
000009b1: JUMPI
000009b2: PUSH1 0x40
000009b4: DUP1
000009b5: MLOAD
000009b6: PUSH3 0x461bcd
000009ba: PUSH1 0xe5
000009bc: SHL
000009bd: DUP2
000009be: MSTORE
000009bf: PUSH1 0x20
000009c1: PUSH1 0x04
000009c3: DUP3
000009c4: ADD
000009c5: MSTORE
000009c6: PUSH1 0x12
000009c8: PUSH1 0x24
000009ca: DUP3
000009cb: ADD
000009cc: MSTORE
000009cd: PUSH18 0x73656e646572206d7573742062652063656f
000009e0: PUSH1 0x70
000009e2: SHL
000009e3: PUSH1 0x44
000009e5: DUP3
000009e6: ADD
000009e7: MSTORE
000009e8: SWAP1
000009e9: MLOAD
000009ea: SWAP1
000009eb: DUP2
000009ec: SWAP1
000009ed: SUB
000009ee: PUSH1 0x64
000009f0: ADD
000009f1: SWAP1
000009f2: REVERT
000009f3: JUMPDEST
000009f4: PUSH1 0x01
000009f6: PUSH1 0x01
000009f8: PUSH1 0xa0
000009fa: SHL
000009fb: SUB
000009fc: DUP2
000009fd: AND
000009fe: PUSH2 0x0a45
00000a01: JUMPI
00000a02: PUSH1 0x40
00000a04: DUP1
00000a05: MLOAD
00000a06: PUSH3 0x461bcd
00000a0a: PUSH1 0xe5
00000a0c: SHL
00000a0d: DUP2
00000a0e: MSTORE
00000a0f: PUSH1 0x20
00000a11: PUSH1 0x04
00000a13: DUP3
00000a14: ADD
00000a15: MSTORE
00000a16: PUSH1 0x14
00000a18: PUSH1 0x24
00000a1a: DUP3
00000a1b: ADD
00000a1c: MSTORE
00000a1d: PUSH20 0x18d95bc81b5d5cdd081899481b9bdd081b9d5b1b
00000a32: PUSH1 0x62
00000a34: SHL
00000a35: PUSH1 0x44
00000a37: DUP3
00000a38: ADD
00000a39: MSTORE
00000a3a: SWAP1
00000a3b: MLOAD
00000a3c: SWAP1
00000a3d: DUP2
00000a3e: SWAP1
00000a3f: SUB
00000a40: PUSH1 0x64
00000a42: ADD
00000a43: SWAP1
00000a44: REVERT
00000a45: JUMPDEST
00000a46: PUSH1 0x00
00000a48: DUP1
00000a49: SLOAD
00000a4a: PUSH1 0x01
00000a4c: PUSH1 0x01
00000a4e: PUSH1 0xa0
00000a50: SHL
00000a51: SUB
00000a52: NOT
00000a53: AND
00000a54: PUSH1 0x01
00000a56: PUSH1 0x01
00000a58: PUSH1 0xa0
00000a5a: SHL
00000a5b: SUB
00000a5c: SWAP3
00000a5d: SWAP1
00000a5e: SWAP3
00000a5f: AND
00000a60: SWAP2
00000a61: SWAP1
00000a62: SWAP2
00000a63: OR
00000a64: SWAP1
00000a65: SSTORE
00000a66: JUMP
00000a67: JUMPDEST
00000a68: PUSH1 0x00
00000a6a: SLOAD
00000a6b: PUSH1 0x01
00000a6d: PUSH1 0x01
00000a6f: PUSH1 0xa0
00000a71: SHL
00000a72: SUB
00000a73: AND
00000a74: CALLER
00000a75: EQ
00000a76: PUSH2 0x0abb
00000a79: JUMPI
00000a7a: PUSH1 0x40
00000a7c: DUP1
00000a7d: MLOAD
00000a7e: PUSH3 0x461bcd
00000a82: PUSH1 0xe5
00000a84: SHL
00000a85: DUP2
00000a86: MSTORE
00000a87: PUSH1 0x20
00000a89: PUSH1 0x04
00000a8b: DUP3
00000a8c: ADD
00000a8d: MSTORE
00000a8e: PUSH1 0x12
00000a90: PUSH1 0x24
00000a92: DUP3
00000a93: ADD
00000a94: MSTORE
00000a95: PUSH18 0x73656e646572206d7573742062652063656f
00000aa8: PUSH1 0x70
00000aaa: SHL
00000aab: PUSH1 0x44
00000aad: DUP3
00000aae: ADD
00000aaf: MSTORE
00000ab0: SWAP1
00000ab1: MLOAD
00000ab2: SWAP1
00000ab3: DUP2
00000ab4: SWAP1
00000ab5: SUB
00000ab6: PUSH1 0x64
00000ab8: ADD
00000ab9: SWAP1
00000aba: REVERT
00000abb: JUMPDEST
00000abc: PUSH1 0x01
00000abe: PUSH1 0x01
00000ac0: PUSH1 0xa0
00000ac2: SHL
00000ac3: SUB
00000ac4: DUP2
00000ac5: AND
00000ac6: PUSH2 0x0b0d
00000ac9: JUMPI
00000aca: PUSH1 0x40
00000acc: DUP1
00000acd: MLOAD
00000ace: PUSH3 0x461bcd
00000ad2: PUSH1 0xe5
00000ad4: SHL
00000ad5: DUP2
00000ad6: MSTORE
00000ad7: PUSH1 0x20
00000ad9: PUSH1 0x04
00000adb: DUP3
00000adc: ADD
00000add: MSTORE
00000ade: PUSH1 0x14
00000ae0: PUSH1 0x24
00000ae2: DUP3
00000ae3: ADD
00000ae4: MSTORE
00000ae5: PUSH20 0x18dbdbc81b5d5cdd081899481b9bdd081b9d5b1b
00000afa: PUSH1 0x62
00000afc: SHL
00000afd: PUSH1 0x44
00000aff: DUP3
00000b00: ADD
00000b01: MSTORE
00000b02: SWAP1
00000b03: MLOAD
00000b04: SWAP1
00000b05: DUP2
00000b06: SWAP1
00000b07: SUB
00000b08: PUSH1 0x64
00000b0a: ADD
00000b0b: SWAP1
00000b0c: REVERT
00000b0d: JUMPDEST
00000b0e: PUSH1 0x02
00000b10: DUP1
00000b11: SLOAD
00000b12: PUSH1 0x01
00000b14: PUSH1 0x01
00000b16: PUSH1 0xa0
00000b18: SHL
00000b19: SUB
00000b1a: NOT
00000b1b: AND
00000b1c: PUSH1 0x01
00000b1e: PUSH1 0x01
00000b20: PUSH1 0xa0
00000b22: SHL
00000b23: SUB
00000b24: SWAP3
00000b25: SWAP1
00000b26: SWAP3
00000b27: AND
00000b28: SWAP2
00000b29: SWAP1
00000b2a: SWAP2
00000b2b: OR
00000b2c: SWAP1
00000b2d: SSTORE
00000b2e: JUMP
00000b2f: JUMPDEST
00000b30: PUSH1 0x00
00000b32: SLOAD
00000b33: PUSH1 0x01
00000b35: PUSH1 0x01
00000b37: PUSH1 0xa0
00000b39: SHL
00000b3a: SUB
00000b3b: AND
00000b3c: CALLER
00000b3d: EQ
00000b3e: PUSH2 0x0b83
00000b41: JUMPI
00000b42: PUSH1 0x40
00000b44: DUP1
00000b45: MLOAD
00000b46: PUSH3 0x461bcd
00000b4a: PUSH1 0xe5
00000b4c: SHL
00000b4d: DUP2
00000b4e: MSTORE
00000b4f: PUSH1 0x20
00000b51: PUSH1 0x04
00000b53: DUP3
00000b54: ADD
00000b55: MSTORE
00000b56: PUSH1 0x12
00000b58: PUSH1 0x24
00000b5a: DUP3
00000b5b: ADD
00000b5c: MSTORE
00000b5d: PUSH18 0x73656e646572206d7573742062652063656f
00000b70: PUSH1 0x70
00000b72: SHL
00000b73: PUSH1 0x44
00000b75: DUP3
00000b76: ADD
00000b77: MSTORE
00000b78: SWAP1
00000b79: MLOAD
00000b7a: SWAP1
00000b7b: DUP2
00000b7c: SWAP1
00000b7d: SUB
00000b7e: PUSH1 0x64
00000b80: ADD
00000b81: SWAP1
00000b82: REVERT
00000b83: JUMPDEST
00000b84: PUSH1 0x02
00000b86: SLOAD
00000b87: PUSH1 0x01
00000b89: PUSH1 0xa0
00000b8b: SHL
00000b8c: SWAP1
00000b8d: DIV
00000b8e: PUSH1 0xff
00000b90: AND
00000b91: PUSH2 0x0be1
00000b94: JUMPI
00000b95: PUSH1 0x40
00000b97: DUP1
00000b98: MLOAD
00000b99: PUSH3 0x461bcd
00000b9d: PUSH1 0xe5
00000b9f: SHL
00000ba0: DUP2
00000ba1: MSTORE
00000ba2: PUSH1 0x20
00000ba4: PUSH1 0x04
00000ba6: DUP3
00000ba7: ADD
00000ba8: DUP2
00000ba9: SWAP1
00000baa: MSTORE
00000bab: PUSH1 0x24
00000bad: DUP3
00000bae: ADD
00000baf: MSTORE
00000bb0: PUSH32 0x6f6e6c79207768656e2074686520636f6e747261637420495320706175736564
00000bd1: PUSH1 0x44
00000bd3: DUP3
00000bd4: ADD
00000bd5: MSTORE
00000bd6: SWAP1
00000bd7: MLOAD
00000bd8: SWAP1
00000bd9: DUP2
00000bda: SWAP1
00000bdb: SUB
00000bdc: PUSH1 0x64
00000bde: ADD
00000bdf: SWAP1
00000be0: REVERT
00000be1: JUMPDEST
00000be2: PUSH1 0x06
00000be4: SLOAD
00000be5: PUSH1 0x01
00000be7: PUSH1 0x01
00000be9: PUSH1 0xa0
00000beb: SHL
00000bec: SUB
00000bed: AND
00000bee: ISZERO
00000bef: PUSH2 0x0c29
00000bf2: JUMPI
00000bf3: PUSH1 0x40
00000bf5: MLOAD
00000bf6: PUSH3 0x461bcd
00000bfa: PUSH1 0xe5
00000bfc: SHL
00000bfd: DUP2
00000bfe: MSTORE
00000bff: PUSH1 0x04
00000c01: ADD
00000c02: DUP1
00000c03: DUP1
00000c04: PUSH1 0x20
00000c06: ADD
00000c07: DUP3
00000c08: DUP2
00000c09: SUB
00000c0a: DUP3
00000c0b: MSTORE
00000c0c: PUSH1 0x24
00000c0e: DUP2
00000c0f: MSTORE
00000c10: PUSH1 0x20
00000c12: ADD
00000c13: DUP1
00000c14: PUSH2 0x2276
00000c17: PUSH1 0x24
00000c19: SWAP2
00000c1a: CODECOPY
00000c1b: PUSH1 0x40
00000c1d: ADD
00000c1e: SWAP2
00000c1f: POP
00000c20: POP
00000c21: PUSH1 0x40
00000c23: MLOAD
00000c24: DUP1
00000c25: SWAP2
00000c26: SUB
00000c27: SWAP1
00000c28: REVERT
00000c29: JUMPDEST
00000c2a: PUSH2 0x0c31
00000c2d: PUSH2 0x1b33
00000c30: JUMP
00000c31: JUMPDEST
00000c32: JUMP
00000c33: JUMPDEST
00000c34: PUSH1 0x00
00000c36: SLOAD
00000c37: PUSH1 0x01
00000c39: PUSH1 0x01
00000c3b: PUSH1 0xa0
00000c3d: SHL
00000c3e: SUB
00000c3f: AND
00000c40: CALLER
00000c41: EQ
00000c42: PUSH2 0x0c87
00000c45: JUMPI
00000c46: PUSH1 0x40
00000c48: DUP1
00000c49: MLOAD
00000c4a: PUSH3 0x461bcd
00000c4e: PUSH1 0xe5
00000c50: SHL
00000c51: DUP2
00000c52: MSTORE
00000c53: PUSH1 0x20
00000c55: PUSH1 0x04
00000c57: DUP3
00000c58: ADD
00000c59: MSTORE
00000c5a: PUSH1 0x12
00000c5c: PUSH1 0x24
00000c5e: DUP3
00000c5f: ADD
00000c60: MSTORE
00000c61: PUSH18 0x73656e646572206d7573742062652063656f
00000c74: PUSH1 0x70
00000c76: SHL
00000c77: PUSH1 0x44
00000c79: DUP3
00000c7a: ADD
00000c7b: MSTORE
00000c7c: SWAP1
00000c7d: MLOAD
00000c7e: SWAP1
00000c7f: DUP2
00000c80: SWAP1
00000c81: SUB
00000c82: PUSH1 0x64
00000c84: ADD
00000c85: SWAP1
00000c86: REVERT
00000c87: JUMPDEST
00000c88: PUSH1 0x04
00000c8a: SLOAD
00000c8b: PUSH1 0x01
00000c8d: PUSH1 0x80
00000c8f: SHL
00000c90: SWAP1
00000c91: DIV
00000c92: PUSH1 0x01
00000c94: PUSH1 0x01
00000c96: PUSH1 0x80
00000c98: SHL
00000c99: SUB
00000c9a: AND
00000c9b: ISZERO
00000c9c: PUSH2 0x0cd6
00000c9f: JUMPI
00000ca0: PUSH1 0x40
00000ca2: MLOAD
00000ca3: PUSH3 0x461bcd
00000ca7: PUSH1 0xe5
00000ca9: SHL
00000caa: DUP2
00000cab: MSTORE
00000cac: PUSH1 0x04
00000cae: ADD
00000caf: DUP1
00000cb0: DUP1
00000cb1: PUSH1 0x20
00000cb3: ADD
00000cb4: DUP3
00000cb5: DUP2
00000cb6: SUB
00000cb7: DUP3
00000cb8: MSTORE
00000cb9: PUSH1 0x48
00000cbb: DUP2
00000cbc: MSTORE
00000cbd: PUSH1 0x20
00000cbf: ADD
00000cc0: DUP1
00000cc1: PUSH2 0x21de
00000cc4: PUSH1 0x48
00000cc6: SWAP2
00000cc7: CODECOPY
00000cc8: PUSH1 0x60
00000cca: ADD
00000ccb: SWAP2
00000ccc: POP
00000ccd: POP
00000cce: PUSH1 0x40
00000cd0: MLOAD
00000cd1: DUP1
00000cd2: SWAP2
00000cd3: SUB
00000cd4: SWAP1
00000cd5: REVERT
00000cd6: JUMPDEST
00000cd7: PUSH1 0x01
00000cd9: SLOAD
00000cda: PUSH1 0x40
00000cdc: MLOAD
00000cdd: PUSH1 0x01
00000cdf: PUSH1 0x01
00000ce1: PUSH1 0xa0
00000ce3: SHL
00000ce4: SUB
00000ce5: SWAP1
00000ce6: SWAP2
00000ce7: AND
00000ce8: SWAP1
00000ce9: ADDRESS
00000cea: BALANCE
00000ceb: DUP1
00000cec: ISZERO
00000ced: PUSH2 0x08fc
00000cf0: MUL
00000cf1: SWAP2
00000cf2: PUSH1 0x00
00000cf4: DUP2
00000cf5: DUP2
00000cf6: DUP2
00000cf7: DUP6
00000cf8: DUP9
00000cf9: DUP9
00000cfa: CALL
00000cfb: SWAP4
00000cfc: POP
00000cfd: POP
00000cfe: POP
00000cff: POP
00000d00: ISZERO
00000d01: DUP1
00000d02: ISZERO
00000d03: PUSH2 0x0d10
00000d06: JUMPI
00000d07: RETURNDATASIZE
00000d08: PUSH1 0x00
00000d0a: DUP1
00000d0b: RETURNDATACOPY
00000d0c: RETURNDATASIZE
00000d0d: PUSH1 0x00
00000d0f: REVERT
00000d10: JUMPDEST
00000d11: POP
00000d12: PUSH1 0x02
00000d14: DUP1
00000d15: SLOAD
00000d16: PUSH1 0xff
00000d18: PUSH1 0xa0
00000d1a: SHL
00000d1b: NOT
00000d1c: AND
00000d1d: PUSH1 0x01
00000d1f: PUSH1 0xa0
00000d21: SHL
00000d22: OR
00000d23: SWAP1
00000d24: SSTORE
00000d25: PUSH1 0x04
00000d27: DUP1
00000d28: SLOAD
00000d29: PUSH1 0x01
00000d2b: PUSH1 0x01
00000d2d: PUSH1 0x80
00000d2f: SHL
00000d30: SUB
00000d31: NOT
00000d32: AND
00000d33: SWAP1
00000d34: SSTORE
00000d35: JUMP
00000d36: JUMPDEST
00000d37: PUSH1 0x00
00000d39: SLOAD
00000d3a: PUSH1 0x01
00000d3c: PUSH1 0x01
00000d3e: PUSH1 0xa0
00000d40: SHL
00000d41: SUB
00000d42: AND
00000d43: CALLER
00000d44: EQ
00000d45: PUSH2 0x0d8a
00000d48: JUMPI
00000d49: PUSH1 0x40
00000d4b: DUP1
00000d4c: MLOAD
00000d4d: PUSH3 0x461bcd
00000d51: PUSH1 0xe5
00000d53: SHL
00000d54: DUP2
00000d55: MSTORE
00000d56: PUSH1 0x20
00000d58: PUSH1 0x04
00000d5a: DUP3
00000d5b: ADD
00000d5c: MSTORE
00000d5d: PUSH1 0x12
00000d5f: PUSH1 0x24
00000d61: DUP3
00000d62: ADD
00000d63: MSTORE
00000d64: PUSH18 0x73656e646572206d7573742062652063656f
00000d77: PUSH1 0x70
00000d79: SHL
00000d7a: PUSH1 0x44
00000d7c: DUP3
00000d7d: ADD
00000d7e: MSTORE
00000d7f: SWAP1
00000d80: MLOAD
00000d81: SWAP1
00000d82: DUP2
00000d83: SWAP1
00000d84: SUB
00000d85: PUSH1 0x64
00000d87: ADD
00000d88: SWAP1
00000d89: REVERT
00000d8a: JUMPDEST
00000d8b: PUSH1 0x01
00000d8d: PUSH1 0x01
00000d8f: PUSH1 0xa0
00000d91: SHL
00000d92: SUB
00000d93: DUP2
00000d94: AND
00000d95: PUSH2 0x0ddc
00000d98: JUMPI
00000d99: PUSH1 0x40
00000d9b: DUP1
00000d9c: MLOAD
00000d9d: PUSH3 0x461bcd
00000da1: PUSH1 0xe5
00000da3: SHL
00000da4: DUP2
00000da5: MSTORE
00000da6: PUSH1 0x20
00000da8: PUSH1 0x04
00000daa: DUP3
00000dab: ADD
00000dac: MSTORE
00000dad: PUSH1 0x14
00000daf: PUSH1 0x24
00000db1: DUP3
00000db2: ADD
00000db3: MSTORE
00000db4: PUSH20 0x18d99bc81b5d5cdd081899481b9bdd081b9d5b1b
00000dc9: PUSH1 0x62
00000dcb: SHL
00000dcc: PUSH1 0x44
00000dce: DUP3
00000dcf: ADD
00000dd0: MSTORE
00000dd1: SWAP1
00000dd2: MLOAD
00000dd3: SWAP1
00000dd4: DUP2
00000dd5: SWAP1
00000dd6: SUB
00000dd7: PUSH1 0x64
00000dd9: ADD
00000dda: SWAP1
00000ddb: REVERT
00000ddc: JUMPDEST
00000ddd: PUSH1 0x01
00000ddf: DUP1
00000de0: SLOAD
00000de1: PUSH1 0x01
00000de3: PUSH1 0x01
00000de5: PUSH1 0xa0
00000de7: SHL
00000de8: SUB
00000de9: NOT
00000dea: AND
00000deb: PUSH1 0x01
00000ded: PUSH1 0x01
00000def: PUSH1 0xa0
00000df1: SHL
00000df2: SUB
00000df3: SWAP3
00000df4: SWAP1
00000df5: SWAP3
00000df6: AND
00000df7: SWAP2
00000df8: SWAP1
00000df9: SWAP2
00000dfa: OR
00000dfb: SWAP1
00000dfc: SSTORE
00000dfd: JUMP
00000dfe: JUMPDEST
00000dff: PUSH1 0x04
00000e01: SLOAD
00000e02: PUSH1 0x01
00000e04: PUSH1 0x01
00000e06: PUSH1 0x80
00000e08: SHL
00000e09: SUB
00000e0a: AND
00000e0b: DUP2
00000e0c: JUMP
00000e0d: JUMPDEST
00000e0e: PUSH1 0x02
00000e10: SLOAD
00000e11: PUSH1 0x01
00000e13: PUSH1 0xa0
00000e15: SHL
00000e16: SWAP1
00000e17: DIV
00000e18: PUSH1 0xff
00000e1a: AND
00000e1b: DUP2
00000e1c: JUMP
00000e1d: JUMPDEST
00000e1e: PUSH1 0x06
00000e20: SLOAD
00000e21: PUSH1 0x01
00000e23: PUSH1 0x01
00000e25: PUSH1 0xa0
00000e27: SHL
00000e28: SUB
00000e29: AND
00000e2a: DUP2
00000e2b: JUMP
00000e2c: JUMPDEST
00000e2d: PUSH1 0x00
00000e2f: SLOAD
00000e30: PUSH1 0x01
00000e32: PUSH1 0x01
00000e34: PUSH1 0xa0
00000e36: SHL
00000e37: SUB
00000e38: AND
00000e39: CALLER
00000e3a: EQ
00000e3b: PUSH2 0x0e80
00000e3e: JUMPI
00000e3f: PUSH1 0x40
00000e41: DUP1
00000e42: MLOAD
00000e43: PUSH3 0x461bcd
00000e47: PUSH1 0xe5
00000e49: SHL
00000e4a: DUP2
00000e4b: MSTORE
00000e4c: PUSH1 0x20
00000e4e: PUSH1 0x04
00000e50: DUP3
00000e51: ADD
00000e52: MSTORE
00000e53: PUSH1 0x12
00000e55: PUSH1 0x24
00000e57: DUP3
00000e58: ADD
00000e59: MSTORE
00000e5a: PUSH18 0x73656e646572206d7573742062652063656f
00000e6d: PUSH1 0x70
00000e6f: SHL
00000e70: PUSH1 0x44
00000e72: DUP3
00000e73: ADD
00000e74: MSTORE
00000e75: SWAP1
00000e76: MLOAD
00000e77: SWAP1
00000e78: DUP2
00000e79: SWAP1
00000e7a: SUB
00000e7b: PUSH1 0x64
00000e7d: ADD
00000e7e: SWAP1
00000e7f: REVERT
00000e80: JUMPDEST
00000e81: PUSH1 0x02
00000e83: SLOAD
00000e84: PUSH1 0x01
00000e86: PUSH1 0xa0
00000e88: SHL
00000e89: SWAP1
00000e8a: DIV
00000e8b: PUSH1 0xff
00000e8d: AND
00000e8e: PUSH2 0x0ede
00000e91: JUMPI
00000e92: PUSH1 0x40
00000e94: DUP1
00000e95: MLOAD
00000e96: PUSH3 0x461bcd
00000e9a: PUSH1 0xe5
00000e9c: SHL
00000e9d: DUP2
00000e9e: MSTORE
00000e9f: PUSH1 0x20
00000ea1: PUSH1 0x04
00000ea3: DUP3
00000ea4: ADD
00000ea5: DUP2
00000ea6: SWAP1
00000ea7: MSTORE
00000ea8: PUSH1 0x24
00000eaa: DUP3
00000eab: ADD
00000eac: MSTORE
00000ead: PUSH32 0x6f6e6c79207768656e2074686520636f6e747261637420495320706175736564
00000ece: PUSH1 0x44
00000ed0: DUP3
00000ed1: ADD
00000ed2: MSTORE
00000ed3: SWAP1
00000ed4: MLOAD
00000ed5: SWAP1
00000ed6: DUP2
00000ed7: SWAP1
00000ed8: SUB
00000ed9: PUSH1 0x64
00000edb: ADD
00000edc: SWAP1
00000edd: REVERT
00000ede: JUMPDEST
00000edf: PUSH1 0x06
00000ee1: DUP1
00000ee2: SLOAD
00000ee3: PUSH1 0x01
00000ee5: PUSH1 0x01
00000ee7: PUSH1 0xa0
00000ee9: SHL
00000eea: SUB
00000eeb: DUP4
00000eec: AND
00000eed: PUSH1 0x01
00000eef: PUSH1 0x01
00000ef1: PUSH1 0xa0
00000ef3: SHL
00000ef4: SUB
00000ef5: NOT
00000ef6: SWAP1
00000ef7: SWAP2
00000ef8: AND
00000ef9: DUP2
00000efa: OR
00000efb: SWAP1
00000efc: SWAP2
00000efd: SSTORE
00000efe: PUSH1 0x40
00000f00: DUP1
00000f01: MLOAD
00000f02: SWAP2
00000f03: DUP3
00000f04: MSTORE
00000f05: MLOAD
00000f06: PUSH32 0x450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa446199305
00000f27: SWAP2
00000f28: DUP2
00000f29: SWAP1
00000f2a: SUB
00000f2b: PUSH1 0x20
00000f2d: ADD
00000f2e: SWAP1
00000f2f: LOG1
00000f30: POP
00000f31: JUMP
00000f32: JUMPDEST
00000f33: PUSH1 0x02
00000f35: SLOAD
00000f36: PUSH1 0x01
00000f38: PUSH1 0x01
00000f3a: PUSH1 0xa0
00000f3c: SHL
00000f3d: SUB
00000f3e: AND
00000f3f: CALLER
00000f40: EQ
00000f41: DUP1
00000f42: PUSH2 0x0f55
00000f45: JUMPI
00000f46: POP
00000f47: PUSH1 0x00
00000f49: SLOAD
00000f4a: PUSH1 0x01
00000f4c: PUSH1 0x01
00000f4e: PUSH1 0xa0
00000f50: SHL
00000f51: SUB
00000f52: AND
00000f53: CALLER
00000f54: EQ
00000f55: JUMPDEST
00000f56: DUP1
00000f57: PUSH2 0x0f6a
00000f5a: JUMPI
00000f5b: POP
00000f5c: PUSH1 0x01
00000f5e: SLOAD
00000f5f: PUSH1 0x01
00000f61: PUSH1 0x01
00000f63: PUSH1 0xa0
00000f65: SHL
00000f66: SUB
00000f67: AND
00000f68: CALLER
00000f69: EQ
00000f6a: JUMPDEST
00000f6b: PUSH2 0x0fbb
00000f6e: JUMPI
00000f6f: PUSH1 0x40
00000f71: DUP1
00000f72: MLOAD
00000f73: PUSH3 0x461bcd
00000f77: PUSH1 0xe5
00000f79: SHL
00000f7a: DUP2
00000f7b: MSTORE
00000f7c: PUSH1 0x20
00000f7e: PUSH1 0x04
00000f80: DUP3
00000f81: ADD
00000f82: MSTORE
00000f83: PUSH1 0x1a
00000f85: PUSH1 0x24
00000f87: DUP3
00000f88: ADD
00000f89: MSTORE
00000f8a: PUSH32 0x73656e646572206d7573742062652063656f2f63666f2f636f6f000000000000
00000fab: PUSH1 0x44
00000fad: DUP3
00000fae: ADD
00000faf: MSTORE
00000fb0: SWAP1
00000fb1: MLOAD
00000fb2: SWAP1
00000fb3: DUP2
00000fb4: SWAP1
00000fb5: SUB
00000fb6: PUSH1 0x64
00000fb8: ADD
00000fb9: SWAP1
00000fba: REVERT
00000fbb: JUMPDEST
00000fbc: PUSH1 0x02
00000fbe: SLOAD
00000fbf: PUSH1 0x01
00000fc1: PUSH1 0xa0
00000fc3: SHL
00000fc4: SWAP1
00000fc5: DIV
00000fc6: PUSH1 0xff
00000fc8: AND
00000fc9: ISZERO
00000fca: PUSH2 0x1004
00000fcd: JUMPI
00000fce: PUSH1 0x40
00000fd0: MLOAD
00000fd1: PUSH3 0x461bcd
00000fd5: PUSH1 0xe5
00000fd7: SHL
00000fd8: DUP2
00000fd9: MSTORE
00000fda: PUSH1 0x04
00000fdc: ADD
00000fdd: DUP1
00000fde: DUP1
00000fdf: PUSH1 0x20
00000fe1: ADD
00000fe2: DUP3
00000fe3: DUP2
00000fe4: SUB
00000fe5: DUP3
00000fe6: MSTORE
00000fe7: PUSH1 0x24
00000fe9: DUP2
00000fea: MSTORE
00000feb: PUSH1 0x20
00000fed: ADD
00000fee: DUP1
00000fef: PUSH2 0x2163
00000ff2: PUSH1 0x24
00000ff4: SWAP2
00000ff5: CODECOPY
00000ff6: PUSH1 0x40
00000ff8: ADD
00000ff9: SWAP2
00000ffa: POP
00000ffb: POP
00000ffc: PUSH1 0x40
00000ffe: MLOAD
00000fff: DUP1
00001000: SWAP2
00001001: SUB
00001002: SWAP1
00001003: REVERT
00001004: JUMPDEST
00001005: PUSH1 0x02
00001007: DUP1
00001008: SLOAD
00001009: PUSH1 0xff
0000100b: PUSH1 0xa0
0000100d: SHL
0000100e: NOT
0000100f: AND
00001010: PUSH1 0x01
00001012: PUSH1 0xa0
00001014: SHL
00001015: OR
00001016: SWAP1
00001017: SSTORE
00001018: JUMP
00001019: JUMPDEST
0000101a: PUSH1 0x02
0000101c: SLOAD
0000101d: PUSH1 0x01
0000101f: PUSH1 0x01
00001021: PUSH1 0xa0
00001023: SHL
00001024: SUB
00001025: AND
00001026: DUP2
00001027: JUMP
00001028: JUMPDEST
00001029: PUSH1 0x03
0000102b: SLOAD
0000102c: DUP2
0000102d: JUMP
0000102e: JUMPDEST
0000102f: PUSH1 0x02
00001031: SLOAD
00001032: PUSH1 0x01
00001034: PUSH1 0x01
00001036: PUSH1 0xa0
00001038: SHL
00001039: SUB
0000103a: AND
0000103b: CALLER
0000103c: EQ
0000103d: PUSH2 0x1082
00001040: JUMPI
00001041: PUSH1 0x40
00001043: DUP1
00001044: MLOAD
00001045: PUSH3 0x461bcd
00001049: PUSH1 0xe5
0000104b: SHL
0000104c: DUP2
0000104d: MSTORE
0000104e: PUSH1 0x20
00001050: PUSH1 0x04
00001052: DUP3
00001053: ADD
00001054: MSTORE
00001055: PUSH1 0x12
00001057: PUSH1 0x24
00001059: DUP3
0000105a: ADD
0000105b: MSTORE
0000105c: PUSH18 0x73656e646572206d75737420626520636f6f
0000106f: PUSH1 0x70
00001071: SHL
00001072: PUSH1 0x44
00001074: DUP3
00001075: ADD
00001076: MSTORE
00001077: SWAP1
00001078: MLOAD
00001079: SWAP1
0000107a: DUP2
0000107b: SWAP1
0000107c: SUB
0000107d: PUSH1 0x64
0000107f: ADD
00001080: SWAP1
00001081: REVERT
00001082: JUMPDEST
00001083: PUSH1 0x02
00001085: SLOAD
00001086: PUSH1 0x01
00001088: PUSH1 0xa0
0000108a: SHL
0000108b: SWAP1
0000108c: DIV
0000108d: PUSH1 0xff
0000108f: AND
00001090: ISZERO
00001091: PUSH2 0x10cb
00001094: JUMPI
00001095: PUSH1 0x40
00001097: MLOAD
00001098: PUSH3 0x461bcd
0000109c: PUSH1 0xe5
0000109e: SHL
0000109f: DUP2
000010a0: MSTORE
000010a1: PUSH1 0x04
000010a3: ADD
000010a4: DUP1
000010a5: DUP1
000010a6: PUSH1 0x20
000010a8: ADD
000010a9: DUP3
000010aa: DUP2
000010ab: SUB
000010ac: DUP3
000010ad: MSTORE
000010ae: PUSH1 0x24
000010b0: DUP2
000010b1: MSTORE
000010b2: PUSH1 0x20
000010b4: ADD
000010b5: DUP1
000010b6: PUSH2 0x2163
000010b9: PUSH1 0x24
000010bb: SWAP2
000010bc: CODECOPY
000010bd: PUSH1 0x40
000010bf: ADD
000010c0: SWAP2
000010c1: POP
000010c2: POP
000010c3: PUSH1 0x40
000010c5: MLOAD
000010c6: DUP1
000010c7: SWAP2
000010c8: SUB
000010c9: SWAP1
000010ca: REVERT
000010cb: JUMPDEST
000010cc: PUSH1 0x40
000010ce: DUP1
000010cf: MLOAD
000010d0: PUSH1 0x20
000010d2: DUP1
000010d3: DUP3
000010d4: ADD
000010d5: DUP6
000010d6: SWAP1
000010d7: MSTORE
000010d8: DUP3
000010d9: MLOAD
000010da: DUP1
000010db: DUP4
000010dc: SUB
000010dd: DUP3
000010de: ADD
000010df: DUP2
000010e0: MSTORE
000010e1: SWAP2
000010e2: DUP4
000010e3: ADD
000010e4: DUP4
000010e5: MSTORE
000010e6: DUP2
000010e7: MLOAD
000010e8: SWAP2
000010e9: DUP2
000010ea: ADD
000010eb: SWAP2
000010ec: SWAP1
000010ed: SWAP2
000010ee: KECCAK256
000010ef: PUSH1 0x00
000010f1: DUP2
000010f2: DUP2
000010f3: MSTORE
000010f4: PUSH1 0x05
000010f6: SWAP1
000010f7: SWAP3
000010f8: MSTORE
000010f9: SWAP2
000010fa: SWAP1
000010fb: KECCAK256
000010fc: DUP1
000010fd: SLOAD
000010fe: PUSH1 0x01
00001100: PUSH1 0x90
00001102: SHL
00001103: SWAP1
00001104: DIV
00001105: PUSH5 0xffffffffff
0000110b: AND
0000110c: NUMBER
0000110d: DUP2
0000110e: LT
0000110f: PUSH2 0x1149
00001112: JUMPI
00001113: PUSH1 0x40
00001115: MLOAD
00001116: PUSH3 0x461bcd
0000111a: PUSH1 0xe5
0000111c: SHL
0000111d: DUP2
0000111e: MSTORE
0000111f: PUSH1 0x04
00001121: ADD
00001122: DUP1
00001123: DUP1
00001124: PUSH1 0x20
00001126: ADD
00001127: DUP3
00001128: DUP2
00001129: SUB
0000112a: DUP3
0000112b: MSTORE
0000112c: PUSH1 0x33
0000112e: DUP2
0000112f: MSTORE
00001130: PUSH1 0x20
00001132: ADD
00001133: DUP1
00001134: PUSH2 0x2187
00001137: PUSH1 0x33
00001139: SWAP2
0000113a: CODECOPY
0000113b: PUSH1 0x40
0000113d: ADD
0000113e: SWAP2
0000113f: POP
00001140: POP
00001141: PUSH1 0x40
00001143: MLOAD
00001144: DUP1
00001145: SWAP2
00001146: SUB
00001147: SWAP1
00001148: REVERT
00001149: JUMPDEST
0000114a: PUSH1 0xfa
0000114c: DUP2
0000114d: ADD
0000114e: NUMBER
0000114f: GT
00001150: ISZERO
00001151: PUSH2 0x118b
00001154: JUMPI
00001155: PUSH1 0x40
00001157: MLOAD
00001158: PUSH3 0x461bcd
0000115c: PUSH1 0xe5
0000115e: SHL
0000115f: DUP2
00001160: MSTORE
00001161: PUSH1 0x04
00001163: ADD
00001164: DUP1
00001165: DUP1
00001166: PUSH1 0x20
00001168: ADD
00001169: DUP3
0000116a: DUP2
0000116b: SUB
0000116c: DUP3
0000116d: MSTORE
0000116e: PUSH1 0x22
00001170: DUP2
00001171: MSTORE
00001172: PUSH1 0x20
00001174: ADD
00001175: DUP1
00001176: PUSH2 0x2254
00001179: PUSH1 0x22
0000117b: SWAP2
0000117c: CODECOPY
0000117d: PUSH1 0x40
0000117f: ADD
00001180: SWAP2
00001181: POP
00001182: POP
00001183: PUSH1 0x40
00001185: MLOAD
00001186: DUP1
00001187: SWAP2
00001188: SUB
00001189: SWAP1
0000118a: REVERT
0000118b: JUMPDEST
0000118c: DUP4
0000118d: DUP2
0000118e: BLOCKHASH
0000118f: EQ
00001190: PUSH2 0x11ca
00001193: JUMPI
00001194: PUSH1 0x40
00001196: MLOAD
00001197: PUSH3 0x461bcd
0000119b: PUSH1 0xe5
0000119d: SHL
0000119e: DUP2
0000119f: MSTORE
000011a0: PUSH1 0x04
000011a2: ADD
000011a3: DUP1
000011a4: DUP1
000011a5: PUSH1 0x20
000011a7: ADD
000011a8: DUP3
000011a9: DUP2
000011aa: SUB
000011ab: DUP3
000011ac: MSTORE
000011ad: PUSH1 0x33
000011af: DUP2
000011b0: MSTORE
000011b1: PUSH1 0x20
000011b3: ADD
000011b4: DUP1
000011b5: PUSH2 0x2089
000011b8: PUSH1 0x33
000011ba: SWAP2
000011bb: CODECOPY
000011bc: PUSH1 0x40
000011be: ADD
000011bf: SWAP2
000011c0: POP
000011c1: POP
000011c2: PUSH1 0x40
000011c4: MLOAD
000011c5: DUP1
000011c6: SWAP2
000011c7: SUB
000011c8: SWAP1
000011c9: REVERT
000011ca: JUMPDEST
000011cb: PUSH2 0x11d5
000011ce: DUP3
000011cf: DUP7
000011d0: DUP7
000011d1: PUSH2 0x1bf4
000011d4: JUMP
000011d5: JUMPDEST
000011d6: POP
000011d7: POP
000011d8: POP
000011d9: POP
000011da: POP
000011db: JUMP
000011dc: JUMPDEST
000011dd: PUSH1 0x01
000011df: SLOAD
000011e0: PUSH1 0x01
000011e2: PUSH1 0x01
000011e4: PUSH1 0xa0
000011e6: SHL
000011e7: SUB
000011e8: AND
000011e9: CALLER
000011ea: EQ
000011eb: PUSH2 0x1230
000011ee: JUMPI
000011ef: PUSH1 0x40
000011f1: DUP1
000011f2: MLOAD
000011f3: PUSH3 0x461bcd
000011f7: PUSH1 0xe5
000011f9: SHL
000011fa: DUP2
000011fb: MSTORE
000011fc: PUSH1 0x20
000011fe: PUSH1 0x04
00001200: DUP3
00001201: ADD
00001202: MSTORE
00001203: PUSH1 0x12
00001205: PUSH1 0x24
00001207: DUP3
00001208: ADD
00001209: MSTORE
0000120a: PUSH18 0x73656e646572206d7573742062652063666f
0000121d: PUSH1 0x70
0000121f: SHL
00001220: PUSH1 0x44
00001222: DUP3
00001223: ADD
00001224: MSTORE
00001225: SWAP1
00001226: MLOAD
00001227: SWAP1
00001228: DUP2
00001229: SWAP1
0000122a: SUB
0000122b: PUSH1 0x64
0000122d: ADD
0000122e: SWAP1
0000122f: REVERT
00001230: JUMPDEST
00001231: ADDRESS
00001232: BALANCE
00001233: DUP2
00001234: GT
00001235: ISZERO
00001236: PUSH2 0x1270
00001239: JUMPI
0000123a: PUSH1 0x40
0000123c: MLOAD
0000123d: PUSH3 0x461bcd
00001241: PUSH1 0xe5
00001243: SHL
00001244: DUP2
00001245: MSTORE
00001246: PUSH1 0x04
00001248: ADD
00001249: DUP1
0000124a: DUP1
0000124b: PUSH1 0x20
0000124d: ADD
0000124e: DUP3
0000124f: DUP2
00001250: SUB
00001251: DUP3
00001252: MSTORE
00001253: PUSH1 0x24
00001255: DUP2
00001256: MSTORE
00001257: PUSH1 0x20
00001259: ADD
0000125a: DUP1
0000125b: PUSH2 0x21ba
0000125e: PUSH1 0x24
00001260: SWAP2
00001261: CODECOPY
00001262: PUSH1 0x40
00001264: ADD
00001265: SWAP2
00001266: POP
00001267: POP
00001268: PUSH1 0x40
0000126a: MLOAD
0000126b: DUP1
0000126c: SWAP2
0000126d: SUB
0000126e: SWAP1
0000126f: REVERT
00001270: JUMPDEST
00001271: PUSH1 0x04
00001273: SLOAD
00001274: ADDRESS
00001275: BALANCE
00001276: PUSH1 0x01
00001278: PUSH1 0x01
0000127a: PUSH1 0x80
0000127c: SHL
0000127d: SUB
0000127e: DUP1
0000127f: DUP4
00001280: AND
00001281: PUSH1 0x01
00001283: PUSH1 0x80
00001285: SHL
00001286: SWAP1
00001287: SWAP4
00001288: DIV
00001289: DUP2
0000128a: AND
0000128b: SWAP3
0000128c: SWAP1
0000128d: SWAP3
0000128e: ADD
0000128f: SWAP1
00001290: SWAP2
00001291: AND
00001292: DUP3
00001293: ADD
00001294: GT
00001295: ISZERO
00001296: PUSH2 0x12da
00001299: JUMPI
0000129a: PUSH1 0x40
0000129c: DUP1
0000129d: MLOAD
0000129e: PUSH3 0x461bcd
000012a2: PUSH1 0xe5
000012a4: SHL
000012a5: DUP2
000012a6: MSTORE
000012a7: PUSH1 0x20
000012a9: PUSH1 0x04
000012ab: DUP3
000012ac: ADD
000012ad: MSTORE
000012ae: PUSH1 0x11
000012b0: PUSH1 0x24
000012b2: DUP3
000012b3: ADD
000012b4: MSTORE
000012b5: PUSH17 0x2737ba1032b737bab3b410333ab7323997
000012c7: PUSH1 0x79
000012c9: SHL
000012ca: PUSH1 0x44
000012cc: DUP3
000012cd: ADD
000012ce: MSTORE
000012cf: SWAP1
000012d0: MLOAD
000012d1: SWAP1
000012d2: DUP2
000012d3: SWAP1
000012d4: SUB
000012d5: PUSH1 0x64
000012d7: ADD
000012d8: SWAP1
000012d9: REVERT
000012da: JUMPDEST
000012db: PUSH1 0x04
000012dd: DUP1
000012de: SLOAD
000012df: PUSH1 0x01
000012e1: PUSH1 0x01
000012e3: PUSH1 0x80
000012e5: SHL
000012e6: SUB
000012e7: NOT
000012e8: DUP2
000012e9: AND
000012ea: PUSH1 0x01
000012ec: PUSH1 0x01
000012ee: PUSH1 0x80
000012f0: SHL
000012f1: SUB
000012f2: SWAP2
000012f3: DUP3
000012f4: AND
000012f5: SWAP4
000012f6: SWAP1
000012f7: SWAP4
000012f8: ADD
000012f9: AND
000012fa: SWAP2
000012fb: SWAP1
000012fc: SWAP2
000012fd: OR
000012fe: SWAP1
000012ff: SSTORE
00001300: JUMP
00001301: JUMPDEST
00001302: PUSH1 0x01
00001304: SLOAD
00001305: PUSH1 0x01
00001307: PUSH1 0x01
00001309: PUSH1 0xa0
0000130b: SHL
0000130c: SUB
0000130d: AND
0000130e: CALLER
0000130f: EQ
00001310: PUSH2 0x1355
00001313: JUMPI
00001314: PUSH1 0x40
00001316: DUP1
00001317: MLOAD
00001318: PUSH3 0x461bcd
0000131c: PUSH1 0xe5
0000131e: SHL
0000131f: DUP2
00001320: MSTORE
00001321: PUSH1 0x20
00001323: PUSH1 0x04
00001325: DUP3
00001326: ADD
00001327: MSTORE
00001328: PUSH1 0x12
0000132a: PUSH1 0x24
0000132c: DUP3
0000132d: ADD
0000132e: MSTORE
0000132f: PUSH18 0x73656e646572206d7573742062652063666f
00001342: PUSH1 0x70
00001344: SHL
00001345: PUSH1 0x44
00001347: DUP3
00001348: ADD
00001349: MSTORE
0000134a: SWAP1
0000134b: MLOAD
0000134c: SWAP1
0000134d: DUP2
0000134e: SWAP1
0000134f: SUB
00001350: PUSH1 0x64
00001352: ADD
00001353: SWAP1
00001354: REVERT
00001355: JUMPDEST
00001356: ADDRESS
00001357: BALANCE
00001358: DUP1
00001359: DUP3
0000135a: GT
0000135b: ISZERO
0000135c: PUSH2 0x1396
0000135f: JUMPI
00001360: PUSH1 0x40
00001362: MLOAD
00001363: PUSH3 0x461bcd
00001367: PUSH1 0xe5
00001369: SHL
0000136a: DUP2
0000136b: MSTORE
0000136c: PUSH1 0x04
0000136e: ADD
0000136f: DUP1
00001370: DUP1
00001371: PUSH1 0x20
00001373: ADD
00001374: DUP3
00001375: DUP2
00001376: SUB
00001377: DUP3
00001378: MSTORE
00001379: PUSH1 0x24
0000137b: DUP2
0000137c: MSTORE
0000137d: PUSH1 0x20
0000137f: ADD
00001380: DUP1
00001381: PUSH2 0x21ba
00001384: PUSH1 0x24
00001386: SWAP2
00001387: CODECOPY
00001388: PUSH1 0x40
0000138a: ADD
0000138b: SWAP2
0000138c: POP
0000138d: POP
0000138e: PUSH1 0x40
00001390: MLOAD
00001391: DUP1
00001392: SWAP2
00001393: SUB
00001394: SWAP1
00001395: REVERT
00001396: JUMPDEST
00001397: PUSH1 0x04
00001399: SLOAD
0000139a: ADDRESS
0000139b: BALANCE
0000139c: PUSH1 0x01
0000139e: PUSH1 0x01
000013a0: PUSH1 0x80
000013a2: SHL
000013a3: SUB
000013a4: DUP1
000013a5: DUP4
000013a6: AND
000013a7: PUSH1 0x01
000013a9: PUSH1 0x80
000013ab: SHL
000013ac: SWAP1
000013ad: SWAP4
000013ae: DIV
000013af: DUP2
000013b0: AND
000013b1: SWAP3
000013b2: SWAP1
000013b3: SWAP3
000013b4: ADD
000013b5: SWAP1
000013b6: SWAP2
000013b7: AND
000013b8: DUP4
000013b9: ADD
000013ba: GT
000013bb: ISZERO
000013bc: PUSH2 0x1400
000013bf: JUMPI
000013c0: PUSH1 0x40
000013c2: DUP1
000013c3: MLOAD
000013c4: PUSH3 0x461bcd
000013c8: PUSH1 0xe5
000013ca: SHL
000013cb: DUP2
000013cc: MSTORE
000013cd: PUSH1 0x20
000013cf: PUSH1 0x04
000013d1: DUP3
000013d2: ADD
000013d3: MSTORE
000013d4: PUSH1 0x11
000013d6: PUSH1 0x24
000013d8: DUP3
000013d9: ADD
000013da: MSTORE
000013db: PUSH17 0x2737ba1032b737bab3b410333ab7323997
000013ed: PUSH1 0x79
000013ef: SHL
000013f0: PUSH1 0x44
000013f2: DUP3
000013f3: ADD
000013f4: MSTORE
000013f5: SWAP1
000013f6: MLOAD
000013f7: SWAP1
000013f8: DUP2
000013f9: SWAP1
000013fa: SUB
000013fb: PUSH1 0x64
000013fd: ADD
000013fe: SWAP1
000013ff: REVERT
00001400: JUMPDEST
00001401: PUSH1 0x01
00001403: SLOAD
00001404: PUSH1 0x40
00001406: MLOAD
00001407: PUSH1 0x01
00001409: PUSH1 0x01
0000140b: PUSH1 0xa0
0000140d: SHL
0000140e: SUB
0000140f: SWAP1
00001410: SWAP2
00001411: AND
00001412: SWAP1
00001413: DUP4
00001414: ISZERO
00001415: PUSH2 0x08fc
00001418: MUL
00001419: SWAP1
0000141a: DUP5
0000141b: SWAP1
0000141c: PUSH1 0x00
0000141e: DUP2
0000141f: DUP2
00001420: DUP2
00001421: DUP6
00001422: DUP9
00001423: DUP9
00001424: CALL
00001425: SWAP4
00001426: POP
00001427: POP
00001428: POP
00001429: POP
0000142a: ISZERO
0000142b: DUP1
0000142c: ISZERO
0000142d: PUSH2 0x143a
00001430: JUMPI
00001431: RETURNDATASIZE
00001432: PUSH1 0x00
00001434: DUP1
00001435: RETURNDATACOPY
00001436: RETURNDATASIZE
00001437: PUSH1 0x00
00001439: REVERT
0000143a: JUMPDEST
0000143b: POP
0000143c: POP
0000143d: POP
0000143e: JUMP
0000143f: JUMPDEST
00001440: PUSH1 0x04
00001442: SLOAD
00001443: PUSH1 0x01
00001445: PUSH1 0x80
00001447: SHL
00001448: SWAP1
00001449: DIV
0000144a: PUSH1 0x01
0000144c: PUSH1 0x01
0000144e: PUSH1 0x80
00001450: SHL
00001451: SUB
00001452: AND
00001453: DUP2
00001454: JUMP
00001455: JUMPDEST
00001456: PUSH1 0x02
00001458: SLOAD
00001459: PUSH1 0x01
0000145b: PUSH1 0x01
0000145d: PUSH1 0xa0
0000145f: SHL
00001460: SUB
00001461: AND
00001462: CALLER
00001463: EQ
00001464: PUSH2 0x14a9
00001467: JUMPI
00001468: PUSH1 0x40
0000146a: DUP1
0000146b: MLOAD
0000146c: PUSH3 0x461bcd
00001470: PUSH1 0xe5
00001472: SHL
00001473: DUP2
00001474: MSTORE
00001475: PUSH1 0x20
00001477: PUSH1 0x04
00001479: DUP3
0000147a: ADD
0000147b: MSTORE
0000147c: PUSH1 0x12
0000147e: PUSH1 0x24
00001480: DUP3
00001481: ADD
00001482: MSTORE
00001483: PUSH18 0x73656e646572206d75737420626520636f6f
00001496: PUSH1 0x70
00001498: SHL
00001499: PUSH1 0x44
0000149b: DUP3
0000149c: ADD
0000149d: MSTORE
0000149e: SWAP1
0000149f: MLOAD
000014a0: SWAP1
000014a1: DUP2
000014a2: SWAP1
000014a3: SUB
000014a4: PUSH1 0x64
000014a6: ADD
000014a7: SWAP1
000014a8: REVERT
000014a9: JUMPDEST
000014aa: PUSH1 0x02
000014ac: SLOAD
000014ad: PUSH1 0x01
000014af: PUSH1 0xa0
000014b1: SHL
000014b2: SWAP1
000014b3: DIV
000014b4: PUSH1 0xff
000014b6: AND
000014b7: ISZERO
000014b8: PUSH2 0x14f2
000014bb: JUMPI
000014bc: PUSH1 0x40
000014be: MLOAD
000014bf: PUSH3 0x461bcd
000014c3: PUSH1 0xe5
000014c5: SHL
000014c6: DUP2
000014c7: MSTORE
000014c8: PUSH1 0x04
000014ca: ADD
000014cb: DUP1
000014cc: DUP1
000014cd: PUSH1 0x20
000014cf: ADD
000014d0: DUP3
000014d1: DUP2
000014d2: SUB
000014d3: DUP3
000014d4: MSTORE
000014d5: PUSH1 0x24
000014d7: DUP2
000014d8: MSTORE
000014d9: PUSH1 0x20
000014db: ADD
000014dc: DUP1
000014dd: PUSH2 0x2163
000014e0: PUSH1 0x24
000014e2: SWAP2
000014e3: CODECOPY
000014e4: PUSH1 0x40
000014e6: ADD
000014e7: SWAP2
000014e8: POP
000014e9: POP
000014ea: PUSH1 0x40
000014ec: MLOAD
000014ed: DUP1
000014ee: SWAP2
000014ef: SUB
000014f0: SWAP1
000014f1: REVERT
000014f2: JUMPDEST
000014f3: PUSH1 0x00
000014f5: DUP2
000014f6: DUP2
000014f7: MSTORE
000014f8: PUSH1 0x05
000014fa: PUSH1 0x20
000014fc: MSTORE
000014fd: PUSH1 0x40
000014ff: SWAP1
00001500: KECCAK256
00001501: DUP1
00001502: SLOAD
00001503: PUSH1 0x01
00001505: PUSH1 0x01
00001507: PUSH1 0x80
00001509: SHL
0000150a: SUB
0000150b: AND
0000150c: DUP1
0000150d: PUSH2 0x1547
00001510: JUMPI
00001511: PUSH1 0x40
00001513: MLOAD
00001514: PUSH3 0x461bcd
00001518: PUSH1 0xe5
0000151a: SHL
0000151b: DUP2
0000151c: MSTORE
0000151d: PUSH1 0x04
0000151f: ADD
00001520: DUP1
00001521: DUP1
00001522: PUSH1 0x20
00001524: ADD
00001525: DUP3
00001526: DUP2
00001527: SUB
00001528: DUP3
00001529: MSTORE
0000152a: PUSH1 0x22
0000152c: DUP2
0000152d: MSTORE
0000152e: PUSH1 0x20
00001530: ADD
00001531: DUP1
00001532: PUSH2 0x2120
00001535: PUSH1 0x22
00001537: SWAP2
00001538: CODECOPY
00001539: PUSH1 0x40
0000153b: ADD
0000153c: SWAP2
0000153d: POP
0000153e: POP
0000153f: PUSH1 0x40
00001541: MLOAD
00001542: DUP1
00001543: SWAP2
00001544: SUB
00001545: SWAP1
00001546: REVERT
00001547: JUMPDEST
00001548: DUP2
00001549: SLOAD
0000154a: PUSH5 0xffffffffff
00001550: PUSH1 0x01
00001552: PUSH1 0x90
00001554: SHL
00001555: SWAP1
00001556: SWAP2
00001557: DIV
00001558: AND
00001559: PUSH1 0xfa
0000155b: ADD
0000155c: NUMBER
0000155d: GT
0000155e: PUSH2 0x1598
00001561: JUMPI
00001562: PUSH1 0x40
00001564: MLOAD
00001565: PUSH3 0x461bcd
00001569: PUSH1 0xe5
0000156b: SHL
0000156c: DUP2
0000156d: MSTORE
0000156e: PUSH1 0x04
00001570: ADD
00001571: DUP1
00001572: DUP1
00001573: PUSH1 0x20
00001575: ADD
00001576: DUP3
00001577: DUP2
00001578: SUB
00001579: DUP3
0000157a: MSTORE
0000157b: PUSH1 0x22
0000157d: DUP2
0000157e: MSTORE
0000157f: PUSH1 0x20
00001581: ADD
00001582: DUP1
00001583: PUSH2 0x2254
00001586: PUSH1 0x22
00001588: SWAP2
00001589: CODECOPY
0000158a: PUSH1 0x40
0000158c: ADD
0000158d: SWAP2
0000158e: POP
0000158f: POP
00001590: PUSH1 0x40
00001592: MLOAD
00001593: DUP1
00001594: SWAP2
00001595: SUB
00001596: SWAP1
00001597: REVERT
00001598: JUMPDEST
00001599: DUP2
0000159a: SLOAD
0000159b: PUSH1 0x01
0000159d: PUSH1 0x01
0000159f: PUSH1 0x80
000015a1: SHL
000015a2: SUB
000015a3: NOT
000015a4: AND
000015a5: DUP1
000015a6: DUP4
000015a7: SSTORE
000015a8: PUSH1 0x00
000015aa: SWAP1
000015ab: DUP2
000015ac: SWAP1
000015ad: PUSH2 0x15cb
000015b0: SWAP1
000015b1: DUP5
000015b2: SWAP1
000015b3: PUSH1 0xff
000015b5: PUSH1 0x01
000015b7: PUSH1 0x80
000015b9: SHL
000015ba: DUP3
000015bb: DIV
000015bc: DUP2
000015bd: AND
000015be: SWAP2
000015bf: PUSH1 0x01
000015c1: PUSH1 0x88
000015c3: SHL
000015c4: SWAP1
000015c5: DIV
000015c6: AND
000015c7: PUSH2 0x1a34
000015ca: JUMP
000015cb: JUMPDEST
000015cc: PUSH1 0x04
000015ce: DUP1
000015cf: SLOAD
000015d0: PUSH1 0x01
000015d2: PUSH1 0x01
000015d4: PUSH1 0x80
000015d6: SHL
000015d7: SUB
000015d8: PUSH1 0x01
000015da: PUSH1 0x80
000015dc: SHL
000015dd: DUP1
000015de: DUP4
000015df: DIV
000015e0: DUP3
000015e1: AND
000015e2: DUP7
000015e3: SWAP1
000015e4: SUB
000015e5: DUP3
000015e6: AND
000015e7: MUL
000015e8: SWAP2
000015e9: DUP2
000015ea: AND
000015eb: SWAP2
000015ec: SWAP1
000015ed: SWAP2
000015ee: OR
000015ef: DUP1
000015f0: DUP3
000015f1: AND
000015f2: DUP5
000015f3: SWAP1
000015f4: SUB
000015f5: SWAP1
000015f6: SWAP2
000015f7: AND
000015f8: PUSH1 0x01
000015fa: PUSH1 0x01
000015fc: PUSH1 0x80
000015fe: SHL
000015ff: SUB
00001600: NOT
00001601: SWAP2
00001602: SWAP1
00001603: SWAP2
00001604: AND
00001605: OR
00001606: SWAP1
00001607: SSTORE
00001608: PUSH1 0x02
0000160a: DUP7
0000160b: ADD
0000160c: SLOAD
0000160d: SWAP2
0000160e: SWAP4
0000160f: POP
00001610: SWAP2
00001611: POP
00001612: PUSH2 0x11d5
00001615: SWAP1
00001616: PUSH1 0x01
00001618: PUSH1 0x01
0000161a: PUSH1 0xa0
0000161c: SHL
0000161d: SUB
0000161e: AND
0000161f: DUP5
00001620: DUP1
00001621: PUSH2 0x1e73
00001624: JUMP
00001625: JUMPDEST
00001626: PUSH1 0x01
00001628: SLOAD
00001629: PUSH1 0x01
0000162b: PUSH1 0x01
0000162d: PUSH1 0xa0
0000162f: SHL
00001630: SUB
00001631: AND
00001632: CALLER
00001633: EQ
00001634: PUSH2 0x1679
00001637: JUMPI
00001638: PUSH1 0x40
0000163a: DUP1
0000163b: MLOAD
0000163c: PUSH3 0x461bcd
00001640: PUSH1 0xe5
00001642: SHL
00001643: DUP2
00001644: MSTORE
00001645: PUSH1 0x20
00001647: PUSH1 0x04
00001649: DUP3
0000164a: ADD
0000164b: MSTORE
0000164c: PUSH1 0x12
0000164e: PUSH1 0x24
00001650: DUP3
00001651: ADD
00001652: MSTORE
00001653: PUSH18 0x73656e646572206d7573742062652063666f
00001666: PUSH1 0x70
00001668: SHL
00001669: PUSH1 0x44
0000166b: DUP3
0000166c: ADD
0000166d: MSTORE
0000166e: SWAP1
0000166f: MLOAD
00001670: SWAP1
00001671: DUP2
00001672: SWAP1
00001673: SUB
00001674: PUSH1 0x64
00001676: ADD
00001677: SWAP1
00001678: REVERT
00001679: JUMPDEST
0000167a: PUSH10 0x3f870857a3e0e3800000
00001685: DUP2
00001686: LT
00001687: PUSH2 0x16c1
0000168a: JUMPI
0000168b: PUSH1 0x40
0000168d: MLOAD
0000168e: PUSH3 0x461bcd
00001692: PUSH1 0xe5
00001694: SHL
00001695: DUP2
00001696: MSTORE
00001697: PUSH1 0x04
00001699: ADD
0000169a: DUP1
0000169b: DUP1
0000169c: PUSH1 0x20
0000169e: ADD
0000169f: DUP3
000016a0: DUP2
000016a1: SUB
000016a2: DUP3
000016a3: MSTORE
000016a4: PUSH1 0x22
000016a6: DUP2
000016a7: MSTORE
000016a8: PUSH1 0x20
000016aa: ADD
000016ab: DUP1
000016ac: PUSH2 0x20dc
000016af: PUSH1 0x22
000016b1: SWAP2
000016b2: CODECOPY
000016b3: PUSH1 0x40
000016b5: ADD
000016b6: SWAP2
000016b7: POP
000016b8: POP
000016b9: PUSH1 0x40
000016bb: MLOAD
000016bc: DUP1
000016bd: SWAP2
000016be: SUB
000016bf: SWAP1
000016c0: REVERT
000016c1: JUMPDEST
000016c2: PUSH1 0x03
000016c4: SSTORE
000016c5: JUMP
000016c6: JUMPDEST
000016c7: PUSH1 0x00
000016c9: PUSH1 0x28
000016cb: DUP4
000016cc: GT
000016cd: PUSH2 0x176b
000016d0: JUMPI
000016d1: PUSH1 0x00
000016d3: DUP3
000016d4: GT
000016d5: DUP1
000016d6: ISZERO
000016d7: PUSH2 0x16e5
000016da: JUMPI
000016db: POP
000016dc: PUSH6 0x010000000000
000016e3: DUP3
000016e4: LT
000016e5: JUMPDEST
000016e6: PUSH2 0x1724
000016e9: JUMPI
000016ea: PUSH1 0x40
000016ec: DUP1
000016ed: MLOAD
000016ee: PUSH3 0x461bcd
000016f2: PUSH1 0xe5
000016f4: SHL
000016f5: DUP2
000016f6: MSTORE
000016f7: PUSH1 0x20
000016f9: PUSH1 0x04
000016fb: DUP3
000016fc: ADD
000016fd: MSTORE
000016fe: PUSH1 0x1c
00001700: PUSH1 0x24
00001702: DUP3
00001703: ADD
00001704: MSTORE
00001705: PUSH1 0x00
00001707: DUP1
00001708: MLOAD
00001709: PUSH1 0x20
0000170b: PUSH2 0x20bc
0000170e: DUP4
0000170f: CODECOPY
00001710: DUP2
00001711: MLOAD
00001712: SWAP2
00001713: MSTORE
00001714: PUSH1 0x44
00001716: DUP3
00001717: ADD
00001718: MSTORE
00001719: SWAP1
0000171a: MLOAD
0000171b: SWAP1
0000171c: DUP2
0000171d: SWAP1
0000171e: SUB
0000171f: PUSH1 0x64
00001721: ADD
00001722: SWAP1
00001723: REVERT
00001724: JUMPDEST
00001725: POP
00001726: PUSH1 0x3f
00001728: PUSH31 0x01041041041041041041041041041041041041041041041041041041041041
00001748: PUSH26 0x2000000000100000000008000000000400000000020000000001
00001763: DUP4
00001764: MUL
00001765: AND
00001766: MOD
00001767: PUSH2 0x1a2e
0000176a: JUMP
0000176b: JUMPDEST
0000176c: PUSH1 0x50
0000176e: DUP4
0000176f: GT
00001770: PUSH2 0x17d7
00001773: JUMPI
00001774: PUSH1 0x00
00001776: DUP3
00001777: GT
00001778: DUP1
00001779: ISZERO
0000177a: PUSH2 0x1786
0000177d: JUMPI
0000177e: POP
0000177f: PUSH1 0x01
00001781: PUSH1 0x50
00001783: SHL
00001784: DUP3
00001785: LT
00001786: JUMPDEST
00001787: PUSH2 0x17c5
0000178a: JUMPI
0000178b: PUSH1 0x40
0000178d: DUP1
0000178e: MLOAD
0000178f: PUSH3 0x461bcd
00001793: PUSH1 0xe5
00001795: SHL
00001796: DUP2
00001797: MSTORE
00001798: PUSH1 0x20
0000179a: PUSH1 0x04
0000179c: DUP3
0000179d: ADD
0000179e: MSTORE
0000179f: PUSH1 0x1c
000017a1: PUSH1 0x24
000017a3: DUP3
000017a4: ADD
000017a5: MSTORE
000017a6: PUSH1 0x00
000017a8: DUP1
000017a9: MLOAD
000017aa: PUSH1 0x20
000017ac: PUSH2 0x20bc
000017af: DUP4
000017b0: CODECOPY
000017b1: DUP2
000017b2: MLOAD
000017b3: SWAP2
000017b4: MSTORE
000017b5: PUSH1 0x44
000017b7: DUP3
000017b8: ADD
000017b9: MSTORE
000017ba: SWAP1
000017bb: MLOAD
000017bc: SWAP1
000017bd: DUP2
000017be: SWAP1
000017bf: SUB
000017c0: PUSH1 0x64
000017c2: ADD
000017c3: SWAP1
000017c4: REVERT
000017c5: JUMPDEST
000017c6: PUSH2 0x17d0
000017c9: DUP3
000017ca: PUSH1 0x02
000017cc: PUSH2 0x1f89
000017cf: JUMP
000017d0: JUMPDEST
000017d1: SWAP1
000017d2: POP
000017d3: PUSH2 0x1a2e
000017d6: JUMP
000017d7: JUMPDEST
000017d8: DUP3
000017d9: PUSH1 0x64
000017db: EQ
000017dc: ISZERO
000017dd: PUSH2 0x1832
000017e0: JUMPI
000017e1: PUSH1 0x00
000017e3: DUP3
000017e4: GT
000017e5: DUP1
000017e6: ISZERO
000017e7: PUSH2 0x17f0
000017ea: JUMPI
000017eb: POP
000017ec: DUP3
000017ed: DUP3
000017ee: GT
000017ef: ISZERO
000017f0: JUMPDEST
000017f1: PUSH2 0x182b
000017f4: JUMPI
000017f5: PUSH1 0x40
000017f7: MLOAD
000017f8: PUSH3 0x461bcd
000017fc: PUSH1 0xe5
000017fe: SHL
000017ff: DUP2
00001800: MSTORE
00001801: PUSH1 0x04
00001803: ADD
00001804: DUP1
00001805: DUP1
00001806: PUSH1 0x20
00001808: ADD
00001809: DUP3
0000180a: DUP2
0000180b: SUB
0000180c: DUP3
0000180d: MSTORE
0000180e: PUSH1 0x2e
00001810: DUP2
00001811: MSTORE
00001812: PUSH1 0x20
00001814: ADD
00001815: DUP1
00001816: PUSH2 0x2226
00001819: PUSH1 0x2e
0000181b: SWAP2
0000181c: CODECOPY
0000181d: PUSH1 0x40
0000181f: ADD
00001820: SWAP2
00001821: POP
00001822: POP
00001823: PUSH1 0x40
00001825: MLOAD
00001826: DUP1
00001827: SWAP2
00001828: SUB
00001829: SWAP1
0000182a: REVERT
0000182b: JUMPDEST
0000182c: POP
0000182d: DUP1
0000182e: PUSH2 0x1a2e
00001831: JUMP
00001832: JUMPDEST
00001833: PUSH1 0x78
00001835: DUP4
00001836: GT
00001837: PUSH2 0x1897
0000183a: JUMPI
0000183b: PUSH1 0x00
0000183d: DUP3
0000183e: GT
0000183f: DUP1
00001840: ISZERO
00001841: PUSH2 0x184d
00001844: JUMPI
00001845: POP
00001846: PUSH1 0x01
00001848: PUSH1 0x78
0000184a: SHL
0000184b: DUP3
0000184c: LT
0000184d: JUMPDEST
0000184e: PUSH2 0x188c
00001851: JUMPI
00001852: PUSH1 0x40
00001854: DUP1
00001855: MLOAD
00001856: PUSH3 0x461bcd
0000185a: PUSH1 0xe5
0000185c: SHL
0000185d: DUP2
0000185e: MSTORE
0000185f: PUSH1 0x20
00001861: PUSH1 0x04
00001863: DUP3
00001864: ADD
00001865: MSTORE
00001866: PUSH1 0x1c
00001868: PUSH1 0x24
0000186a: DUP3
0000186b: ADD
0000186c: MSTORE
0000186d: PUSH1 0x00
0000186f: DUP1
00001870: MLOAD
00001871: PUSH1 0x20
00001873: PUSH2 0x20bc
00001876: DUP4
00001877: CODECOPY
00001878: DUP2
00001879: MLOAD
0000187a: SWAP2
0000187b: MSTORE
0000187c: PUSH1 0x44
0000187e: DUP3
0000187f: ADD
00001880: MSTORE
00001881: SWAP1
00001882: MLOAD
00001883: SWAP1
00001884: DUP2
00001885: SWAP1
00001886: SUB
00001887: PUSH1 0x64
00001889: ADD
0000188a: SWAP1
0000188b: REVERT
0000188c: JUMPDEST
0000188d: PUSH2 0x17d0
00001890: DUP3
00001891: PUSH1 0x03
00001893: PUSH2 0x1f89
00001896: JUMP
00001897: JUMPDEST
00001898: PUSH1 0xa0
0000189a: DUP4
0000189b: GT
0000189c: PUSH2 0x18fc
0000189f: JUMPI
000018a0: PUSH1 0x00
000018a2: DUP3
000018a3: GT
000018a4: DUP1
000018a5: ISZERO
000018a6: PUSH2 0x18b2
000018a9: JUMPI
000018aa: POP
000018ab: PUSH1 0x01
000018ad: PUSH1 0xa0
000018af: SHL
000018b0: DUP3
000018b1: LT
000018b2: JUMPDEST
000018b3: PUSH2 0x18f1
000018b6: JUMPI
000018b7: PUSH1 0x40
000018b9: DUP1
000018ba: MLOAD
000018bb: PUSH3 0x461bcd
000018bf: PUSH1 0xe5
000018c1: SHL
000018c2: DUP2
000018c3: MSTORE
000018c4: PUSH1 0x20
000018c6: PUSH1 0x04
000018c8: DUP3
000018c9: ADD
000018ca: MSTORE
000018cb: PUSH1 0x1c
000018cd: PUSH1 0x24
000018cf: DUP3
000018d0: ADD
000018d1: MSTORE
000018d2: PUSH1 0x00
000018d4: DUP1
000018d5: MLOAD
000018d6: PUSH1 0x20
000018d8: PUSH2 0x20bc
000018db: DUP4
000018dc: CODECOPY
000018dd: DUP2
000018de: MLOAD
000018df: SWAP2
000018e0: MSTORE
000018e1: PUSH1 0x44
000018e3: DUP3
000018e4: ADD
000018e5: MSTORE
000018e6: SWAP1
000018e7: MLOAD
000018e8: SWAP1
000018e9: DUP2
000018ea: SWAP1
000018eb: SUB
000018ec: PUSH1 0x64
000018ee: ADD
000018ef: SWAP1
000018f0: REVERT
000018f1: JUMPDEST
000018f2: PUSH2 0x17d0
000018f5: DUP3
000018f6: PUSH1 0x04
000018f8: PUSH2 0x1f89
000018fb: JUMP
000018fc: JUMPDEST
000018fd: PUSH1 0xc8
000018ff: DUP4
00001900: GT
00001901: PUSH2 0x1961
00001904: JUMPI
00001905: PUSH1 0x00
00001907: DUP3
00001908: GT
00001909: DUP1
0000190a: ISZERO
0000190b: PUSH2 0x1917
0000190e: JUMPI
0000190f: POP
00001910: PUSH1 0x01
00001912: PUSH1 0xc8
00001914: SHL
00001915: DUP3
00001916: LT
00001917: JUMPDEST
00001918: PUSH2 0x1956
0000191b: JUMPI
0000191c: PUSH1 0x40
0000191e: DUP1
0000191f: MLOAD
00001920: PUSH3 0x461bcd
00001924: PUSH1 0xe5
00001926: SHL
00001927: DUP2
00001928: MSTORE
00001929: PUSH1 0x20
0000192b: PUSH1 0x04
0000192d: DUP3
0000192e: ADD
0000192f: MSTORE
00001930: PUSH1 0x1c
00001932: PUSH1 0x24
00001934: DUP3
00001935: ADD
00001936: MSTORE
00001937: PUSH1 0x00
00001939: DUP1
0000193a: MLOAD
0000193b: PUSH1 0x20
0000193d: PUSH2 0x20bc
00001940: DUP4
00001941: CODECOPY
00001942: DUP2
00001943: MLOAD
00001944: SWAP2
00001945: MSTORE
00001946: PUSH1 0x44
00001948: DUP3
00001949: ADD
0000194a: MSTORE
0000194b: SWAP1
0000194c: MLOAD
0000194d: SWAP1
0000194e: DUP2
0000194f: SWAP1
00001950: SUB
00001951: PUSH1 0x64
00001953: ADD
00001954: SWAP1
00001955: REVERT
00001956: JUMPDEST
00001957: PUSH2 0x17d0
0000195a: DUP3
0000195b: PUSH1 0x05
0000195d: PUSH2 0x1f89
00001960: JUMP
00001961: JUMPDEST
00001962: PUSH1 0xf0
00001964: DUP4
00001965: GT
00001966: PUSH2 0x19c6
00001969: JUMPI
0000196a: PUSH1 0x00
0000196c: DUP3
0000196d: GT
0000196e: DUP1
0000196f: ISZERO
00001970: PUSH2 0x197c
00001973: JUMPI
00001974: POP
00001975: PUSH1 0x01
00001977: PUSH1 0xf0
00001979: SHL
0000197a: DUP3
0000197b: LT
0000197c: JUMPDEST
0000197d: PUSH2 0x19bb
00001980: JUMPI
00001981: PUSH1 0x40
00001983: DUP1
00001984: MLOAD
00001985: PUSH3 0x461bcd
00001989: PUSH1 0xe5
0000198b: SHL
0000198c: DUP2
0000198d: MSTORE
0000198e: PUSH1 0x20
00001990: PUSH1 0x04
00001992: DUP3
00001993: ADD
00001994: MSTORE
00001995: PUSH1 0x1c
00001997: PUSH1 0x24
00001999: DUP3
0000199a: ADD
0000199b: MSTORE
0000199c: PUSH1 0x00
0000199e: DUP1
0000199f: MLOAD
000019a0: PUSH1 0x20
000019a2: PUSH2 0x20bc
000019a5: DUP4
000019a6: CODECOPY
000019a7: DUP2
000019a8: MLOAD
000019a9: SWAP2
000019aa: MSTORE
000019ab: PUSH1 0x44
000019ad: DUP3
000019ae: ADD
000019af: MSTORE
000019b0: SWAP1
000019b1: MLOAD
000019b2: SWAP1
000019b3: DUP2
000019b4: SWAP1
000019b5: SUB
000019b6: PUSH1 0x64
000019b8: ADD
000019b9: SWAP1
000019ba: REVERT
000019bb: JUMPDEST
000019bc: PUSH2 0x17d0
000019bf: DUP3
000019c0: PUSH1 0x06
000019c2: PUSH2 0x1f89
000019c5: JUMP
000019c6: JUMPDEST
000019c7: PUSH1 0xfd
000019c9: DUP4
000019ca: GT
000019cb: PUSH2 0x1a2e
000019ce: JUMPI
000019cf: PUSH1 0x00
000019d1: DUP3
000019d2: GT
000019d3: DUP1
000019d4: ISZERO
000019d5: PUSH2 0x19e1
000019d8: JUMPI
000019d9: POP
000019da: PUSH1 0x01
000019dc: PUSH1 0xfd
000019de: SHL
000019df: DUP3
000019e0: LT
000019e1: JUMPDEST
000019e2: PUSH2 0x1a20
000019e5: JUMPI
000019e6: PUSH1 0x40
000019e8: DUP1
000019e9: MLOAD
000019ea: PUSH3 0x461bcd
000019ee: PUSH1 0xe5
000019f0: SHL
000019f1: DUP2
000019f2: MSTORE
000019f3: PUSH1 0x20
000019f5: PUSH1 0x04
000019f7: DUP3
000019f8: ADD
000019f9: MSTORE
000019fa: PUSH1 0x1c
000019fc: PUSH1 0x24
000019fe: DUP3
000019ff: ADD
00001a00: MSTORE
00001a01: PUSH1 0x00
00001a03: DUP1
00001a04: MLOAD
00001a05: PUSH1 0x20
00001a07: PUSH2 0x20bc
00001a0a: DUP4
00001a0b: CODECOPY
00001a0c: DUP2
00001a0d: MLOAD
00001a0e: SWAP2
00001a0f: MSTORE
00001a10: PUSH1 0x44
00001a12: DUP3
00001a13: ADD
00001a14: MSTORE
00001a15: SWAP1
00001a16: MLOAD
00001a17: SWAP1
00001a18: DUP2
00001a19: SWAP1
00001a1a: SUB
00001a1b: PUSH1 0x64
00001a1d: ADD
00001a1e: SWAP1
00001a1f: REVERT
00001a20: JUMPDEST
00001a21: PUSH2 0x1a2b
00001a24: DUP3
00001a25: PUSH1 0x07
00001a27: PUSH2 0x1f89
00001a2a: JUMP
00001a2b: JUMPDEST
00001a2c: SWAP1
00001a2d: POP
00001a2e: JUMPDEST
00001a2f: SWAP3
00001a30: SWAP2
00001a31: POP
00001a32: POP
00001a33: JUMP
00001a34: JUMPDEST
00001a35: PUSH1 0x00
00001a37: DUP1
00001a38: DUP3
00001a39: PUSH1 0x00
00001a3b: LT
00001a3c: DUP1
00001a3d: ISZERO
00001a3e: PUSH2 0x1a47
00001a41: JUMPI
00001a42: POP
00001a43: DUP4
00001a44: DUP4
00001a45: GT
00001a46: ISZERO
00001a47: JUMPDEST
00001a48: PUSH2 0x1a98
00001a4b: JUMPI
00001a4c: PUSH1 0x40
00001a4e: DUP1
00001a4f: MLOAD
00001a50: PUSH3 0x461bcd
00001a54: PUSH1 0xe5
00001a56: SHL
00001a57: DUP2
00001a58: MSTORE
00001a59: PUSH1 0x20
00001a5b: PUSH1 0x04
00001a5d: DUP3
00001a5e: ADD
00001a5f: MSTORE
00001a60: PUSH1 0x1d
00001a62: PUSH1 0x24
00001a64: DUP3
00001a65: ADD
00001a66: MSTORE
00001a67: PUSH32 0x57696e2070726f626162696c697479206f7574206f662072616e67652e000000
00001a88: PUSH1 0x44
00001a8a: DUP3
00001a8b: ADD
00001a8c: MSTORE
00001a8d: SWAP1
00001a8e: MLOAD
00001a8f: SWAP1
00001a90: DUP2
00001a91: SWAP1
00001a92: SUB
00001a93: PUSH1 0x64
00001a95: ADD
00001a96: SWAP1
00001a97: REVERT
00001a98: JUMPDEST
00001a99: PUSH8 0x016345785d8a0000
00001aa2: DUP6
00001aa3: LT
00001aa4: ISZERO
00001aa5: PUSH2 0x1aaf
00001aa8: JUMPI
00001aa9: PUSH1 0x00
00001aab: PUSH2 0x1ab8
00001aae: JUMP
00001aaf: JUMPDEST
00001ab0: PUSH7 0x038d7ea4c68000
00001ab8: JUMPDEST
00001ab9: SWAP1
00001aba: POP
00001abb: PUSH1 0x64
00001abd: DUP6
00001abe: DIV
00001abf: PUSH7 0x0110d9316ec000
00001ac7: DUP2
00001ac8: LT
00001ac9: ISZERO
00001aca: PUSH2 0x1ad7
00001acd: JUMPI
00001ace: POP
00001acf: PUSH7 0x0110d9316ec000
00001ad7: JUMPDEST
00001ad8: DUP6
00001ad9: DUP3
00001ada: DUP3
00001adb: ADD
00001adc: GT
00001add: ISZERO
00001ade: PUSH2 0x1b18
00001ae1: JUMPI
00001ae2: PUSH1 0x40
00001ae4: MLOAD
00001ae5: PUSH3 0x461bcd
00001ae9: PUSH1 0xe5
00001aeb: SHL
00001aec: DUP2
00001aed: MSTORE
00001aee: PUSH1 0x04
00001af0: ADD
00001af1: DUP1
00001af2: DUP1
00001af3: PUSH1 0x20
00001af5: ADD
00001af6: DUP3
00001af7: DUP2
00001af8: SUB
00001af9: DUP3
00001afa: MSTORE
00001afb: PUSH1 0x22
00001afd: DUP2
00001afe: MSTORE
00001aff: PUSH1 0x20
00001b01: ADD
00001b02: DUP1
00001b03: PUSH2 0x20fe
00001b06: PUSH1 0x22
00001b08: SWAP2
00001b09: CODECOPY
00001b0a: PUSH1 0x40
00001b0c: ADD
00001b0d: SWAP2
00001b0e: POP
00001b0f: POP
00001b10: PUSH1 0x40
00001b12: MLOAD
00001b13: DUP1
00001b14: SWAP2
00001b15: SUB
00001b16: SWAP1
00001b17: REVERT
00001b18: JUMPDEST
00001b19: DUP4
00001b1a: DUP6
00001b1b: DUP4
00001b1c: DUP4
00001b1d: DUP10
00001b1e: SUB
00001b1f: SUB
00001b20: MUL
00001b21: DUP2
00001b22: PUSH2 0x1b27
00001b25: JUMPI
00001b26: INVALID
00001b27: JUMPDEST
00001b28: DIV
00001b29: SWAP3
00001b2a: POP
00001b2b: POP
00001b2c: SWAP4
00001b2d: POP
00001b2e: SWAP4
00001b2f: SWAP2
00001b30: POP
00001b31: POP
00001b32: JUMP
00001b33: JUMPDEST
00001b34: PUSH1 0x00
00001b36: SLOAD
00001b37: PUSH1 0x01
00001b39: PUSH1 0x01
00001b3b: PUSH1 0xa0
00001b3d: SHL
00001b3e: SUB
00001b3f: AND
00001b40: CALLER
00001b41: EQ
00001b42: PUSH2 0x1b87
00001b45: JUMPI
00001b46: PUSH1 0x40
00001b48: DUP1
00001b49: MLOAD
00001b4a: PUSH3 0x461bcd
00001b4e: PUSH1 0xe5
00001b50: SHL
00001b51: DUP2
00001b52: MSTORE
00001b53: PUSH1 0x20
00001b55: PUSH1 0x04
00001b57: DUP3
00001b58: ADD
00001b59: MSTORE
00001b5a: PUSH1 0x12
00001b5c: PUSH1 0x24
00001b5e: DUP3
00001b5f: ADD
00001b60: MSTORE
00001b61: PUSH18 0x73656e646572206d7573742062652063656f
00001b74: PUSH1 0x70
00001b76: SHL
00001b77: PUSH1 0x44
00001b79: DUP3
00001b7a: ADD
00001b7b: MSTORE
00001b7c: SWAP1
00001b7d: MLOAD
00001b7e: SWAP1
00001b7f: DUP2
00001b80: SWAP1
00001b81: SUB
00001b82: PUSH1 0x64
00001b84: ADD
00001b85: SWAP1
00001b86: REVERT
00001b87: JUMPDEST
00001b88: PUSH1 0x02
00001b8a: SLOAD
00001b8b: PUSH1 0x01
00001b8d: PUSH1 0xa0
00001b8f: SHL
00001b90: SWAP1
00001b91: DIV
00001b92: PUSH1 0xff
00001b94: AND
00001b95: PUSH2 0x1be5
00001b98: JUMPI
00001b99: PUSH1 0x40
00001b9b: DUP1
00001b9c: MLOAD
00001b9d: PUSH3 0x461bcd
00001ba1: PUSH1 0xe5
00001ba3: SHL
00001ba4: DUP2
00001ba5: MSTORE
00001ba6: PUSH1 0x20
00001ba8: PUSH1 0x04
00001baa: DUP3
00001bab: ADD
00001bac: DUP2
00001bad: SWAP1
00001bae: MSTORE
00001baf: PUSH1 0x24
00001bb1: DUP3
00001bb2: ADD
00001bb3: MSTORE
00001bb4: PUSH32 0x6f6e6c79207768656e2074686520636f6e747261637420495320706175736564
00001bd5: PUSH1 0x44
00001bd7: DUP3
00001bd8: ADD
00001bd9: MSTORE
00001bda: SWAP1
00001bdb: MLOAD
00001bdc: SWAP1
00001bdd: DUP2
00001bde: SWAP1
00001bdf: SUB
00001be0: PUSH1 0x64
00001be2: ADD
00001be3: SWAP1
00001be4: REVERT
00001be5: JUMPDEST
00001be6: PUSH1 0x02
00001be8: DUP1
00001be9: SLOAD
00001bea: PUSH1 0xff
00001bec: PUSH1 0xa0
00001bee: SHL
00001bef: NOT
00001bf0: AND
00001bf1: SWAP1
00001bf2: SSTORE
00001bf3: JUMP
00001bf4: JUMPDEST
00001bf5: PUSH1 0x02
00001bf7: SLOAD
00001bf8: PUSH1 0x01
00001bfa: PUSH1 0xa0
00001bfc: SHL
00001bfd: SWAP1
00001bfe: DIV
00001bff: PUSH1 0xff
00001c01: AND
00001c02: ISZERO
00001c03: PUSH2 0x1c3d
00001c06: JUMPI
00001c07: PUSH1 0x40
00001c09: MLOAD
00001c0a: PUSH3 0x461bcd
00001c0e: PUSH1 0xe5
00001c10: SHL
00001c11: DUP2
00001c12: MSTORE
00001c13: PUSH1 0x04
00001c15: ADD
00001c16: DUP1
00001c17: DUP1
00001c18: PUSH1 0x20
00001c1a: ADD
00001c1b: DUP3
00001c1c: DUP2
00001c1d: SUB
00001c1e: DUP3
00001c1f: MSTORE
00001c20: PUSH1 0x24
00001c22: DUP2
00001c23: MSTORE
00001c24: PUSH1 0x20
00001c26: ADD
00001c27: DUP1
00001c28: PUSH2 0x2163
00001c2b: PUSH1 0x24
00001c2d: SWAP2
00001c2e: CODECOPY
00001c2f: PUSH1 0x40
00001c31: ADD
00001c32: SWAP2
00001c33: POP
00001c34: POP
00001c35: PUSH1 0x40
00001c37: MLOAD
00001c38: DUP1
00001c39: SWAP2
00001c3a: SUB
00001c3b: SWAP1
00001c3c: REVERT
00001c3d: JUMPDEST
00001c3e: DUP3
00001c3f: SLOAD
00001c40: PUSH1 0x02
00001c42: DUP5
00001c43: ADD
00001c44: SLOAD
00001c45: PUSH1 0x01
00001c47: PUSH1 0x01
00001c49: PUSH1 0x80
00001c4b: SHL
00001c4c: SUB
00001c4d: DUP3
00001c4e: AND
00001c4f: SWAP2
00001c50: PUSH1 0xff
00001c52: PUSH1 0x01
00001c54: PUSH1 0x80
00001c56: SHL
00001c57: DUP3
00001c58: DIV
00001c59: DUP2
00001c5a: AND
00001c5b: SWAP3
00001c5c: PUSH1 0x01
00001c5e: PUSH1 0x88
00001c60: SHL
00001c61: SWAP1
00001c62: SWAP3
00001c63: DIV
00001c64: AND
00001c65: SWAP1
00001c66: PUSH1 0x01
00001c68: PUSH1 0x01
00001c6a: PUSH1 0xa0
00001c6c: SHL
00001c6d: SUB
00001c6e: AND
00001c6f: DUP1
00001c70: PUSH2 0x1cc0
00001c73: JUMPI
00001c74: PUSH1 0x40
00001c76: DUP1
00001c77: MLOAD
00001c78: PUSH3 0x461bcd
00001c7c: PUSH1 0xe5
00001c7e: SHL
00001c7f: DUP2
00001c80: MSTORE
00001c81: PUSH1 0x20
00001c83: PUSH1 0x04
00001c85: DUP3
00001c86: ADD
00001c87: MSTORE
00001c88: PUSH1 0x1e
00001c8a: PUSH1 0x24
00001c8c: DUP3
00001c8d: ADD
00001c8e: MSTORE
00001c8f: PUSH32 0x47616d626c6572277320616464726573732063616e206e6f7420626520300000
00001cb0: PUSH1 0x44
00001cb2: DUP3
00001cb3: ADD
00001cb4: MSTORE
00001cb5: SWAP1
00001cb6: MLOAD
00001cb7: SWAP1
00001cb8: DUP2
00001cb9: SWAP1
00001cba: SUB
00001cbb: PUSH1 0x64
00001cbd: ADD
00001cbe: SWAP1
00001cbf: REVERT
00001cc0: JUMPDEST
00001cc1: DUP4
00001cc2: PUSH2 0x1cfc
00001cc5: JUMPI
00001cc6: PUSH1 0x40
00001cc8: MLOAD
00001cc9: PUSH3 0x461bcd
00001ccd: PUSH1 0xe5
00001ccf: SHL
00001cd0: DUP2
00001cd1: MSTORE
00001cd2: PUSH1 0x04
00001cd4: ADD
00001cd5: DUP1
00001cd6: DUP1
00001cd7: PUSH1 0x20
00001cd9: ADD
00001cda: DUP3
00001cdb: DUP2
00001cdc: SUB
00001cdd: DUP3
00001cde: MSTORE
00001cdf: PUSH1 0x22
00001ce1: DUP2
00001ce2: MSTORE
00001ce3: PUSH1 0x20
00001ce5: ADD
00001ce6: DUP1
00001ce7: PUSH2 0x2120
00001cea: PUSH1 0x22
00001cec: SWAP2
00001ced: CODECOPY
00001cee: PUSH1 0x40
00001cf0: ADD
00001cf1: SWAP2
00001cf2: POP
00001cf3: POP
00001cf4: PUSH1 0x40
00001cf6: MLOAD
00001cf7: DUP1
00001cf8: SWAP2
00001cf9: SUB
00001cfa: SWAP1
00001cfb: REVERT
00001cfc: JUMPDEST
00001cfd: DUP7
00001cfe: SLOAD
00001cff: PUSH1 0x01
00001d01: PUSH1 0x01
00001d03: PUSH1 0x80
00001d05: SHL
00001d06: SUB
00001d07: NOT
00001d08: AND
00001d09: DUP8
00001d0a: SSTORE
00001d0b: PUSH1 0x40
00001d0d: DUP1
00001d0e: MLOAD
00001d0f: PUSH1 0x20
00001d11: DUP1
00001d12: DUP3
00001d13: ADD
00001d14: DUP10
00001d15: SWAP1
00001d16: MSTORE
00001d17: DUP2
00001d18: DUP4
00001d19: ADD
00001d1a: DUP9
00001d1b: SWAP1
00001d1c: MSTORE
00001d1d: DUP3
00001d1e: MLOAD
00001d1f: DUP1
00001d20: DUP4
00001d21: SUB
00001d22: DUP5
00001d23: ADD
00001d24: DUP2
00001d25: MSTORE
00001d26: PUSH1 0x60
00001d28: SWAP1
00001d29: SWAP3
00001d2a: ADD
00001d2b: SWAP1
00001d2c: SWAP3
00001d2d: MSTORE
00001d2e: DUP1
00001d2f: MLOAD
00001d30: SWAP2
00001d31: ADD
00001d32: KECCAK256
00001d33: PUSH1 0x00
00001d35: DUP5
00001d36: DUP3
00001d37: DUP2
00001d38: PUSH2 0x1d3d
00001d3b: JUMPI
00001d3c: INVALID
00001d3d: JUMPDEST
00001d3e: MOD
00001d3f: SWAP1
00001d40: POP
00001d41: PUSH1 0x00
00001d43: DUP1
00001d44: PUSH2 0x1d4e
00001d47: DUP9
00001d48: DUP9
00001d49: DUP9
00001d4a: PUSH2 0x1a34
00001d4d: JUMP
00001d4e: JUMPDEST
00001d4f: SWAP1
00001d50: SWAP3
00001d51: POP
00001d52: SWAP1
00001d53: POP
00001d54: PUSH1 0x00
00001d56: DUP1
00001d57: PUSH1 0x64
00001d59: DUP10
00001d5a: EQ
00001d5b: DUP1
00001d5c: ISZERO
00001d5d: SWAP1
00001d5e: PUSH2 0x1d68
00001d61: JUMPI
00001d62: POP
00001d63: PUSH1 0xfd
00001d65: DUP10
00001d66: GT
00001d67: ISZERO
00001d68: JUMPDEST
00001d69: ISZERO
00001d6a: PUSH2 0x1d87
00001d6d: JUMPI
00001d6e: DUP13
00001d6f: PUSH1 0x01
00001d71: ADD
00001d72: SLOAD
00001d73: DUP6
00001d74: PUSH1 0x02
00001d76: EXP
00001d77: AND
00001d78: PUSH1 0x00
00001d7a: EQ
00001d7b: PUSH2 0x1d82
00001d7e: JUMPI
00001d7f: DUP4
00001d80: SWAP2
00001d81: POP
00001d82: JUMPDEST
00001d83: PUSH2 0x1d93
00001d86: JUMP
00001d87: JUMPDEST
00001d88: DUP8
00001d89: DUP6
00001d8a: LT
00001d8b: ISZERO
00001d8c: PUSH2 0x1d93
00001d8f: JUMPI
00001d90: DUP4
00001d91: SWAP2
00001d92: POP
00001d93: JUMPDEST
00001d94: PUSH1 0x04
00001d96: DUP1
00001d97: SLOAD
00001d98: PUSH1 0x01
00001d9a: PUSH1 0x01
00001d9c: PUSH1 0x80
00001d9e: SHL
00001d9f: SUB
00001da0: PUSH1 0x01
00001da2: PUSH1 0x80
00001da4: SHL
00001da5: DUP1
00001da6: DUP4
00001da7: DIV
00001da8: DUP3
00001da9: AND
00001daa: DUP9
00001dab: SWAP1
00001dac: SUB
00001dad: DUP3
00001dae: AND
00001daf: MUL
00001db0: SWAP2
00001db1: AND
00001db2: OR
00001db3: SWAP1
00001db4: SSTORE
00001db5: PUSH8 0x016345785d8a0000
00001dbe: DUP11
00001dbf: LT
00001dc0: PUSH2 0x1e01
00001dc3: JUMPI
00001dc4: PUSH1 0x00
00001dc6: PUSH2 0x03e8
00001dc9: DUP11
00001dca: DUP9
00001dcb: DUP2
00001dcc: PUSH2 0x1dd1
00001dcf: JUMPI
00001dd0: INVALID
00001dd1: JUMPDEST
00001dd2: DIV
00001dd3: DUP2
00001dd4: PUSH2 0x1dd9
00001dd7: JUMPI
00001dd8: INVALID
00001dd9: JUMPDEST
00001dda: MOD
00001ddb: SWAP1
00001ddc: POP
00001ddd: DUP1
00001dde: PUSH2 0x1dff
00001de1: JUMPI
00001de2: PUSH1 0x04
00001de4: DUP1
00001de5: SLOAD
00001de6: PUSH1 0x01
00001de8: PUSH1 0x01
00001dea: PUSH1 0x80
00001dec: SHL
00001ded: SUB
00001dee: NOT
00001def: DUP2
00001df0: AND
00001df1: SWAP1
00001df2: SWAP2
00001df3: SSTORE
00001df4: PUSH1 0x01
00001df6: PUSH1 0x01
00001df8: PUSH1 0x80
00001dfa: SHL
00001dfb: SUB
00001dfc: AND
00001dfd: SWAP2
00001dfe: POP
00001dff: JUMPDEST
00001e00: POP
00001e01: JUMPDEST
00001e02: DUP1
00001e03: ISZERO
00001e04: PUSH2 0x1e47
00001e07: JUMPI
00001e08: PUSH1 0x40
00001e0a: DUP1
00001e0b: MLOAD
00001e0c: DUP3
00001e0d: DUP2
00001e0e: MSTORE
00001e0f: SWAP1
00001e10: MLOAD
00001e11: PUSH1 0x01
00001e13: PUSH1 0x01
00001e15: PUSH1 0xa0
00001e17: SHL
00001e18: SUB
00001e19: DUP10
00001e1a: AND
00001e1b: SWAP2
00001e1c: PUSH32 0xc388db0e8aa560a59633c094a0d0aa21322cd6234836fd5bac00fc5ae63b5783
00001e3d: SWAP2
00001e3e: SWAP1
00001e3f: DUP2
00001e40: SWAP1
00001e41: SUB
00001e42: PUSH1 0x20
00001e44: ADD
00001e45: SWAP1
00001e46: LOG2
00001e47: JUMPDEST
00001e48: PUSH2 0x1e64
00001e4b: DUP8
00001e4c: DUP4
00001e4d: DUP4
00001e4e: ADD
00001e4f: ISZERO
00001e50: PUSH2 0x1e5b
00001e53: JUMPI
00001e54: DUP3
00001e55: DUP5
00001e56: ADD
00001e57: PUSH2 0x1e5e
00001e5a: JUMP
00001e5b: JUMPDEST
00001e5c: PUSH1 0x01
00001e5e: JUMPDEST
00001e5f: DUP5
00001e60: PUSH2 0x1e73
00001e63: JUMP
00001e64: JUMPDEST
00001e65: POP
00001e66: POP
00001e67: POP
00001e68: POP
00001e69: POP
00001e6a: POP
00001e6b: POP
00001e6c: POP
00001e6d: POP
00001e6e: POP
00001e6f: POP
00001e70: POP
00001e71: POP
00001e72: JUMP
00001e73: JUMPDEST
00001e74: PUSH1 0x01
00001e76: PUSH1 0x01
00001e78: PUSH1 0xa0
00001e7a: SHL
00001e7b: SUB
00001e7c: DUP4
00001e7d: AND
00001e7e: PUSH2 0x1eb8
00001e81: JUMPI
00001e82: PUSH1 0x40
00001e84: MLOAD
00001e85: PUSH3 0x461bcd
00001e89: PUSH1 0xe5
00001e8b: SHL
00001e8c: DUP2
00001e8d: MSTORE
00001e8e: PUSH1 0x04
00001e90: ADD
00001e91: DUP1
00001e92: DUP1
00001e93: PUSH1 0x20
00001e95: ADD
00001e96: DUP3
00001e97: DUP2
00001e98: SUB
00001e99: DUP3
00001e9a: MSTORE
00001e9b: PUSH1 0x22
00001e9d: DUP2
00001e9e: MSTORE
00001e9f: PUSH1 0x20
00001ea1: ADD
00001ea2: DUP1
00001ea3: PUSH2 0x2067
00001ea6: PUSH1 0x22
00001ea8: SWAP2
00001ea9: CODECOPY
00001eaa: PUSH1 0x40
00001eac: ADD
00001ead: SWAP2
00001eae: POP
00001eaf: POP
00001eb0: PUSH1 0x40
00001eb2: MLOAD
00001eb3: DUP1
00001eb4: SWAP2
00001eb5: SUB
00001eb6: SWAP1
00001eb7: REVERT
00001eb8: JUMPDEST
00001eb9: PUSH1 0x40
00001ebb: MLOAD
00001ebc: ADDRESS
00001ebd: BALANCE
00001ebe: SWAP1
00001ebf: DUP5
00001ec0: SWAP1
00001ec1: PUSH1 0x01
00001ec3: PUSH1 0x01
00001ec5: PUSH1 0xa0
00001ec7: SHL
00001ec8: SUB
00001ec9: DUP3
00001eca: AND
00001ecb: SWAP1
00001ecc: DUP6
00001ecd: ISZERO
00001ece: PUSH2 0x08fc
00001ed1: MUL
00001ed2: SWAP1
00001ed3: DUP7
00001ed4: SWAP1
00001ed5: PUSH1 0x00
00001ed7: DUP2
00001ed8: DUP2
00001ed9: DUP2
00001eda: DUP6
00001edb: DUP9
00001edc: DUP9
00001edd: CALL
00001ede: SWAP4
00001edf: POP
00001ee0: POP
00001ee1: POP
00001ee2: POP
00001ee3: ISZERO
00001ee4: DUP1
00001ee5: ISZERO
00001ee6: PUSH2 0x1ef3
00001ee9: JUMPI
00001eea: RETURNDATASIZE
00001eeb: PUSH1 0x00
00001eed: DUP1
00001eee: RETURNDATACOPY
00001eef: RETURNDATASIZE
00001ef0: PUSH1 0x00
00001ef2: REVERT
00001ef3: JUMPDEST
00001ef4: POP
00001ef5: ADDRESS
00001ef6: BALANCE
00001ef7: DUP5
00001ef8: DUP4
00001ef9: SUB
00001efa: EQ
00001efb: ISZERO
00001efc: PUSH2 0x1f43
00001eff: JUMPI
00001f00: PUSH1 0x40
00001f02: DUP1
00001f03: MLOAD
00001f04: DUP5
00001f05: DUP2
00001f06: MSTORE
00001f07: SWAP1
00001f08: MLOAD
00001f09: PUSH1 0x01
00001f0b: PUSH1 0x01
00001f0d: PUSH1 0xa0
00001f0f: SHL
00001f10: SUB
00001f11: DUP8
00001f12: AND
00001f13: SWAP2
00001f14: PUSH32 0xd4f43975feb89f48dd30cabbb32011045be187d1e11c8ea9faa43efc35282519
00001f35: SWAP2
00001f36: SWAP1
00001f37: DUP2
00001f38: SWAP1
00001f39: SUB
00001f3a: PUSH1 0x20
00001f3c: ADD
00001f3d: SWAP1
00001f3e: LOG2
00001f3f: PUSH2 0x11d5
00001f42: JUMP
00001f43: JUMPDEST
00001f44: PUSH1 0x40
00001f46: DUP1
00001f47: MLOAD
00001f48: DUP6
00001f49: DUP2
00001f4a: MSTORE
00001f4b: SWAP1
00001f4c: MLOAD
00001f4d: PUSH1 0x01
00001f4f: PUSH1 0x01
00001f51: PUSH1 0xa0
00001f53: SHL
00001f54: SUB
00001f55: DUP8
00001f56: AND
00001f57: SWAP2
00001f58: PUSH32 0xac464fe4d3a86b9121261ac0a01dd981bfe0777c7c9d9c8f4473d31a9c0f9d2d
00001f79: SWAP2
00001f7a: SWAP1
00001f7b: DUP2
00001f7c: SWAP1
00001f7d: SUB
00001f7e: PUSH1 0x20
00001f80: ADD
00001f81: SWAP1
00001f82: LOG2
00001f83: POP
00001f84: POP
00001f85: POP
00001f86: POP
00001f87: POP
00001f88: JUMP
00001f89: JUMPDEST
00001f8a: PUSH1 0x3f
00001f8c: PUSH31 0x01041041041041041041041041041041041041041041041041041041041041
00001fac: PUSH26 0x2000000000100000000008000000000400000000020000000001
00001fc7: PUSH5 0xffffffffff
00001fcd: DUP6
00001fce: AND
00001fcf: MUL
00001fd0: AND
00001fd1: MOD
00001fd2: DUP3
00001fd3: PUSH1 0x01
00001fd5: JUMPDEST
00001fd6: DUP4
00001fd7: DUP2
00001fd8: LT
00001fd9: ISZERO
00001fda: PUSH2 0x2039
00001fdd: JUMPI
00001fde: PUSH1 0x28
00001fe0: SWAP2
00001fe1: SWAP1
00001fe2: SWAP2
00001fe3: SHR
00001fe4: SWAP1
00001fe5: PUSH1 0x3f
00001fe7: PUSH5 0xffffffffff
00001fed: DUP4
00001fee: AND
00001fef: PUSH26 0x2000000000100000000008000000000400000000020000000001
0000200a: MUL
0000200b: PUSH31 0x01041041041041041041041041041041041041041041041041041041041041
0000202b: AND
0000202c: MOD
0000202d: SWAP3
0000202e: SWAP1
0000202f: SWAP3
00002030: ADD
00002031: SWAP2
00002032: PUSH1 0x01
00002034: ADD
00002035: PUSH2 0x1fd5
00002038: JUMP
00002039: JUMPDEST
0000203a: POP
0000203b: POP
0000203c: SWAP3
0000203d: SWAP2
0000203e: POP
0000203f: POP
00002040: JUMP
00002041: INVALID
00002042: POP
00002043: PUSH2 0x7261
00002046: PUSH14 0x657465722076206d757374206265
00002055: KECCAK256
00002056: PUSH6 0x7175616c2074
0000205d: PUSH16 0x203237206f7220323842656e65666963
0000206e: PUSH10 0x61727927732061646472
00002079: PUSH6 0x73732063616e
00002080: KECCAK256
00002081: PUSH15 0x6f742062652030626c6f636b686173
00002091: PUSH9 0x28706c616365426c6f
0000209b: PUSH4 0x6b4e756d
000020a0: PUSH3 0x657229
000020a4: KECCAK256
000020a5: PUSH14 0x75737420657175616c20746f2062
000020b4: PUSH13 0x6f636b486173684d61736b2073
000020c2: PUSH9 0x6f756c642062652077
000020cc: PUSH10 0x7468696e2072616e6765
000020d7: UNKNOWN(0x2E)
000020d8: STOP
000020d9: STOP
000020da: STOP
000020db: STOP
000020dc: PUSH14 0x617850726f6669742073686f756c
000020eb: PUSH5 0x2062652061
000020f1: KECCAK256
000020f2: PUSH20 0x616e65206e756d6265722e42657420646f65736e
00002107: UNKNOWN(0x27)
00002108: PUSH21 0x206576656e20636f76657220686f75736520656467
0000211e: PUSH6 0x2e4265742073
00002125: PUSH9 0x6f756c642062652069
0000212f: PUSH15 0x20616e202761637469766527207374
0000213f: PUSH2 0x7465
00002142: TIMESTAMP
00002143: PUSH6 0x742073686f75
0000214a: PUSH13 0x6420626520696e20612027636c
00002158: PUSH6 0x616e27207374
0000215f: PUSH2 0x7465
00002162: UNKNOWN(0x2E)
00002163: PUSH16 0x6e6c79207768656e2074686520636f6e
00002174: PUSH21 0x72616374204953204e4f5420706175736564736574
0000218a: PUSH21 0x6c6542657420696e207468652073616d6520626c6f
000021a0: PUSH4 0x6b206173
000021a5: KECCAK256
000021a6: PUSH17 0x6c6163654265742c206f72206265666f72
000021b8: PUSH6 0x2e496e637265
000021bf: PUSH2 0x7365
000021c2: KECCAK256
000021c3: PUSH2 0x6d6f
000021c6: PUSH22 0x6e74206c6172676572207468616e2062616c616e6365
000021dd: UNKNOWN(0x2E)
000021de: COINBASE
000021df: PUSH13 0x6c20626574732073686f756c64
000021ed: KECCAK256
000021ee: PUSH3 0x652070
000021f2: PUSH19 0x6f6365737365642028736574746c6564206f72
00002206: KECCAK256
00002207: PUSH19 0x6566756e64656429206265666f72652073656c
0000221b: PUSH7 0x2d646573747275
00002223: PUSH4 0x742e4869
00002228: PUSH8 0x68206d6f64756c6f
00002231: KECCAK256
00002232: PUSH19 0x616e67652c206265744d61736b206c61726765
00002246: PUSH19 0x207468616e206d6f64756c6f2e426c6f636b68
0000225a: PUSH2 0x7368
0000225d: KECCAK256
0000225e: PUSH4 0x616e2774
00002263: KECCAK256
00002264: PUSH3 0x652071
00002268: PUSH22 0x65726965642062792045564d2e6e6577436f6e747261
0000227f: PUSH4 0x74416464
00002284: PUSH19 0x6573732061646472657373206d757374206265
00002298: KECCAK256
00002299: ADDRESS
0000229a: LOG2
0000229b: PUSH6 0x627a7a723158
000022a2: KECCAK256
000022a3: EXTCODECOPY
000022a4: DUP8
000022a5: SWAP4
000022a6: DIFFICULTY
000022a7: UNKNOWN(0x2C)
000022a8: UNKNOWN(0xB6)
000022a9: UNKNOWN(0x21)
000022aa: UNKNOWN(0x25)
000022ab: JUMPI
000022ac: UNKNOWN(0xDF)
000022ad: PUSH21 0x0bbf940c8f82074010536db3c912df4ea4ac7302bf
000022c3: PUSH5 0x736f6c6343
000022c9: STOP
000022ca: SDIV
000022cb: SIGNEXTEND
000022cc: STOP
000022cd: ORIGIN

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xca722cdc",
            "selector": "0xca722cdc",
            "calldata_variants": [
                "0xca722cdc",
                "0xca722cdc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd6d30a51",
            "selector": "0xd6d30a51",
            "calldata_variants": [
                "0xd6d30a51",
                "0xd6d30a510000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xda76d5cd",
            "selector": "0xda76d5cd",
            "calldata_variants": [
                "0xda76d5cd",
                "0xda76d5cd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf88126f",
            "selector": "0xdf88126f",
            "calldata_variants": [
                "0xdf88126f",
                "0xdf88126f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe1fdb4b4",
            "selector": "0xe1fdb4b4",
            "calldata_variants": [
                "0xe1fdb4b4",
                "0xe1fdb4b40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfbd668a9",
            "selector": "0xfbd668a9",
            "calldata_variants": [
                "0xfbd668a9",
                "0xfbd668a90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6af04a57",
            "selector": "0x6af04a57",
            "calldata_variants": [
                "0x6af04a57",
                "0x6af04a570000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x71587988",
            "selector": "0x71587988",
            "calldata_variants": [
                "0x71587988",
                "0x715879880000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 8909,
            "type": "tx_origin_used"
        }
    ]
}
high auth codex Authorization relies on tx.origin 85 no
view
evidence_json
{
    "evidence": "analysis_artifact.auth.guards shows tx_origin_used at pc 8909; all 21 discovered functions list this guard (selectors below), indicating broad reliance on tx.origin in access checks.",
    "locations": [
        "pc:8909",
        "selector:0xca722cdc",
        "selector:0xd6d30a51",
        "selector:0xda76d5cd",
        "selector:0xdf88126f",
        "selector:0xe1fdb4b4",
        "selector:0xfbd668a9",
        "selector:0x6af04a57",
        "selector:0x71587988",
        "selector:0x8456cb59",
        "selector:0xb047fb50",
        "selector:0xb539cd55",
        "selector:0x3f4ba83a",
        "selector:0x41c0e1b5",
        "selector:0x4e0a3379",
        "selector:0x57246d23",
        "selector:0x5c975abb",
        "selector:0x0519ce79",
        "selector:0x0a0f8168",
        "selector:0x227ada37",
        "selector:0x27d7874c",
        "selector:0x2ba73c15"
    ],
    "recommendation": "Replace tx.origin-based authorization with msg.sender checks and explicit role/ownership controls. If the intent is to restrict to EOAs, use a whitelist or alternative mechanisms rather than tx.origin.",
    "exploit_scenario": "If privileged checks are based on tx.origin, a malicious contract can trick a privileged EOA into calling it and then forward a call into this contract. The tx.origin remains the EOA, so the guard passes even though msg.sender is attacker-controlled, enabling unauthorized actions."
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xef9c0dbcfc56c0b88e0db4fc462f9803a7c8ee40d90547dbb64d1ed21af36d1d
call_targets: 0xbf96042d61937b1686b81557c3a92806f1727ecf
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xef9c0dbcfc56c0b88e0db4fc462f9803a7c8ee40d90547dbb64d1ed21af36d1d",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xbf96042d61937b1686b81557c3a92806f1727ecf"
    ],
    "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": "0xca722cdc",
            "selector": "0xca722cdc",
            "calldata_variants": [
                "0xca722cdc",
                "0xca722cdc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd6d30a51",
            "selector": "0xd6d30a51",
            "calldata_variants": [
                "0xd6d30a51",
                "0xd6d30a510000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xda76d5cd",
            "selector": "0xda76d5cd",
            "calldata_variants": [
                "0xda76d5cd",
                "0xda76d5cd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf88126f",
            "selector": "0xdf88126f",
            "calldata_variants": [
                "0xdf88126f",
                "0xdf88126f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe1fdb4b4",
            "selector": "0xe1fdb4b4",
            "calldata_variants": [
                "0xe1fdb4b4",
                "0xe1fdb4b40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfbd668a9",
            "selector": "0xfbd668a9",
            "calldata_variants": [
                "0xfbd668a9",
                "0xfbd668a90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6af04a57",
            "selector": "0x6af04a57",
            "calldata_variants": [
                "0x6af04a57",
                "0x6af04a570000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x71587988",
            "selector": "0x71587988",
            "calldata_variants": [
                "0x71587988",
                "0x715879880000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3322,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5156,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7901,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [
        {
            "pc": 8909,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 3
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xef9c0dbcfc56c0b88e0db4fc462f9803a7c8ee40d90547dbb64d1ed21af36d1d
call_targets: 0xbf96042d61937b1686b81557c3a92806f1727ecf
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xef9c0dbcfc56c0b88e0db4fc462f9803a7c8ee40d90547dbb64d1ed21af36d1d",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xbf96042d61937b1686b81557c3a92806f1727ecf"
    ],
    "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": "0xca722cdc",
            "selector": "0xca722cdc",
            "calldata_variants": [
                "0xca722cdc",
                "0xca722cdc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd6d30a51",
            "selector": "0xd6d30a51",
            "calldata_variants": [
                "0xd6d30a51",
                "0xd6d30a510000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xda76d5cd",
            "selector": "0xda76d5cd",
            "calldata_variants": [
                "0xda76d5cd",
                "0xda76d5cd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf88126f",
            "selector": "0xdf88126f",
            "calldata_variants": [
                "0xdf88126f",
                "0xdf88126f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe1fdb4b4",
            "selector": "0xe1fdb4b4",
            "calldata_variants": [
                "0xe1fdb4b4",
                "0xe1fdb4b40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfbd668a9",
            "selector": "0xfbd668a9",
            "calldata_variants": [
                "0xfbd668a9",
                "0xfbd668a90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6af04a57",
            "selector": "0x6af04a57",
            "calldata_variants": [
                "0x6af04a57",
                "0x6af04a570000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x71587988",
            "selector": "0x71587988",
            "calldata_variants": [
                "0x71587988",
                "0x715879880000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3322,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5156,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7901,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": [
        {
            "pc": 8909,
            "type": "tx_origin_used"
        }
    ]
}
low reentrancy codex Low-level CALLs with computed target/value; trust and reentrancy safety unclear 65 no
view
evidence_json
{
    "evidence": "analysis_artifact.callsites lists CALL at pc 3322, 5156, 7901 with computed target/value and returndata_checked null; detector flagged untrusted CALL/ETH value transfer possible, while trace validation saw a constant target equal to the contract address (not confirmed for all paths).",
    "locations": [
        "pc:3322",
        "pc:5156",
        "pc:7901"
    ],
    "recommendation": "Ensure external calls only reach trusted addresses, update state before calls, and use reentrancy guards where appropriate. If the intent is to call self, prefer internal calls to avoid external call frames; explicitly check call success/returndata.",
    "exploit_scenario": "Bytecode shows external CALLs with computed target/value. If any path allows a user-influenced target or value, an attacker-controlled callee could reenter before state updates or cause fund loss. Validation tracing suggests the call target may be constant to the contract itself, but this is not confirmed for all paths."
}
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": 9
}