019c0ea9-0840-7237-af59-7bfbb24d83fa
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| 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 |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"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"]}]}
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
{
"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
}
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
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_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 | — |
viewevidence_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 |
viewtrace_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 |
viewtrace_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 | — |
viewevidence_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 | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 9
}
|