019ba9e0-be1a-720c-aa5c-bb5b994622e9
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 |
|---|---|---|---|---|
| 38061 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 38062 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 38063 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 38064 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 38065 | capability.graph | complete | 1 / 3 | 3 months ago |
| 38066 | detector.run | complete | 1 / 3 | 3 months ago |
| 38067 | validation.fork | complete | 1 / 3 | 3 months ago |
| 38175 | report.consolidate | complete | 1 / 6 | 3 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"Bytecode shows multiple computed external CALLs (some with ETH value), a CALLCODE instruction in an unreachable-looking block, and SSTOREs to slot 0/0xdead without detected guards. Findings below are conservative due to bytecode-only visibility and heuristic guard detection.","findings":[{"severity":"medium","category":"reentrancy","title":"Computed external CALLs with value (untrusted target) enable arbitrary call/reentrancy risk","exploit_scenario":"If any public entrypoint allows a user-controlled target/value to reach these CALL sites, an attacker can direct ETH/token transfers or invoke a malicious contract that reenters before state is finalized. Detector validation saw a constant target in one trace, but it was not confirmed; if the target is not actually constant/whitelisted, this is exploitable.","recommendation":"Constrain external call targets to fixed/allowlisted addresses, gate call paths with explicit access control, and add a reentrancy guard around state-changing flows that perform external calls. Where possible, prefer pull-based payouts over push-based ETH transfers.","evidence":"callsites list shows CALL with target_expression_category/value_expression_category = computed and returndata_checked = null at pc 494, 654, 1926, 2279, 3052, 3266, 3913; detector findings flagged \"Untrusted CALL target/value reachable\" and \"ETH value transfer possible\" with no guards detected.","locations":["pc:0x1ee","pc:0x28e","pc:0x786","pc:0x8e7","pc:0xbec","pc:0xcc2","pc:0xf49"]},{"severity":"low","category":"upgradeability","title":"CALLCODE present with computed target (delegatecall-like semantics)","exploit_scenario":"If reachable, CALLCODE executes external code in the caller’s storage context, enabling full state corruption or asset theft when the target can be influenced. The CFG shows no edges to the block containing CALLCODE, so it may be unreachable metadata; verify reachability.","recommendation":"Ensure the CALLCODE site is unreachable or remove it. If intentional proxy-like behavior exists, replace with DELEGATECALL and enforce strict access control and implementation validation (code size/allowlist) and emit upgrade events.","evidence":"callsites list includes opcode CALLCODE at pc 6266 with computed target/value; basic block 6257–6323 contains CALLCODE but CFG has no inbound/outbound edges (likely unreachable).","locations":["pc:0x187a"]},{"severity":"low","category":"access_control","title":"State slots 0 and 0xdead written without detected guards","exploit_scenario":"If an external function can reach the block at pc 705, it writes to slot 0 and slot 0xdead. If these slots represent owner/admin/flags, an attacker could reset privileged state or break invariants. Guard detection is heuristic, so this may be protected elsewhere.","recommendation":"Confirm the write path is restricted to authorized callers; add explicit access control checks and events for administrative state changes. If these slots are not privileged, consider documenting their role to aid auditors.","evidence":"storage analysis shows SSTORE at pc 709 (slot 0x0) and pc 715 (slot 0x…dead); auth.guards is empty across functions.","locations":["pc:0x2c5","pc:0x2cb"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-5hfh8pcs
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019baa65-e6ee-78e0-a00a-880954213ed6
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.
Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers
thinking
**Searching for BYTECODE_BUNDLE.json**
exec
/bin/bash -lc ls in /tmp/codex-5hfh8pcs succeeded in 8ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
thinking
**Reading file contents**
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-5hfh8pcs succeeded in 35ms:
{
"analysis_artifact": {
"address": "0xf542a254b5deef1583d2904be9a6477d89d8f1aa",
"artifact_hash": "0x4708a50a3352cafa821a721e4324b3135add659f0f0131642f481b35f2e997ec",
"artifact_json": {
"auth": {
"guards": []
},
"basic_blocks": [
{
"end_pc": 12,
"hash": "0x5a70f167cb74890329844757d35d65835803530077819a2247305056849a15e5",
"opcodes": [
"PUSH1",
"PUSH1",
"MSTORE",
"PUSH1",
"CALLDATASIZE",
"LT",
"PUSH2",
thinking
**Searching for storage evidence**
exec
/bin/bash -lc 'rg -n "storage|slot|evidence|proxy|delegatecall|callcode|selector|function" BYTECODE_BUNDLE.json | head -n 200' in /tmp/codex-5hfh8pcs succeeded in 8ms:
9783: "dispatcher_type": "selector_jump_table",
9784: "function_entries": [
9787: "selector": "0xa9212b5b"
9791: "selector": "0xb59b1176"
9795: "selector": "0xb66437a5"
9799: "selector": "0xd0e30db0"
9803: "selector": "0xd547741f"
9807: "selector": "0xffa1ad74"
9811: "selector": "0x72c6838f"
9815: "selector": "0x75b238fc"
9819: "selector": "0x91d14854"
9823: "selector": "0x9e281a98"
9827: "selector": "0xa217fddf"
9831: "selector": "0x2f2ff15d"
9835: "selector": "0x338b5dea"
9839: "selector": "0x36568abe"
9843: "selector": "0x5ec181fb"
9847: "selector": "0x6c665a55"
9851: "selector": "0x01ffc9a7"
9855: "selector": "0x02a882e6"
thinking
**Investigating callcode usage and evidence**
exec
/bin/bash -lc 'rg -n "callsite|callsites|evidence|storage" BYTECODE_BUNDLE.json | head -n 200' in /tmp/codex-5hfh8pcs succeeded in 11ms:
7401: "callsites": [
9887: "storage": {
9936: "storage": {
9985: "storage": {
10034: "storage": {
10083: "storage": {
10132: "storage": {
10181: "storage": {
10230: "storage": {
10279: "storage": {
10328: "storage": {
10377: "storage": {
10426: "storage": {
10475: "storage": {
10524: "storage": {
10573: "storage": {
10622: "storage": {
10671: "storage": {
10720: "storage": {
10769: "storage": {
thinking
**Checking callsites and proxies**
exec
/bin/bash -lc "sed -n '7380,7465p' BYTECODE_BUNDLE.json" in /tmp/codex-5hfh8pcs succeeded in 33ms:
"start_pc": 6257
},
{
"end_pc": 6326,
"hash": "0x2883aa05905b6cb90a0cd720878ebb50da3e80574d26aa70af72000515c3a77c",
"opcodes": [
"ADDMOD",
"BYTE",
"STOP"
],
"start_pc": 6324
},
{
"end_pc": 6327,
"hash": "0x50e47b1a0a6fadc11b694941c1eb8d32eea8b12995e62d9d759dc839ba7f16af",
"opcodes": [
"CALLER"
],
"start_pc": 6327
}
exec
/bin/bash -lc "sed -n '7465,7545p' BYTECODE_BUNDLE.json" in /tmp/codex-5hfh8pcs succeeded in 8ms:
{
"opcode": "CALL",
"pc": 3913,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALLCODE",
"pc": 6266,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
}
],
"cfg_edges": [
{
"from": "bb:0",
"to": "bb:301",
"type": "control_flow"
thinking
**Reviewing code around line 11058**
exec
/bin/bash -lc "sed -n '10960,11140p' BYTECODE_BUNDLE.json" in /tmp/codex-5hfh8pcs succeeded in 17ms:
"0xffa1ad74",
"0x72c6838f",
"0x75b238fc",
"0x91d14854",
"0x9e281a98",
"0xa217fddf",
"0x2f2ff15d",
"0x338b5dea",
"0x36568abe",
"0x5ec181fb",
"0x6c665a55",
"0x01ffc9a7",
"0x02a882e6",
"0x1bad19d9",
"0x248a9ca3",
"0x2e1a7d4d",
"0x7965db0b"
],
"sinks": {
"call": 8,
thinking
**Analyzing bytecode selectors and call patterns**
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
path=Path('/tmp/codex-5hfh8pcs/BYTECODE_BUNDLE.json')
data=json.loads(path.read_text())
# basic blocks from analysis_artifact.artifact_json
bbs=data['analysis_artifact']['artifact_json']['basic_blocks']
# find block containing pc 6266 and 494 etc
pcs=[494,654,1926,2279,3052,3266,3913,6266]
for pc in pcs:
bb=None
for b in bbs:
if b['start_pc']<=pc<=b['end_pc']:
bb=b
break
print('pc',pc,'bb',bb['start_pc'] if bb else None,bb['end_pc'] if bb else None, 'opcodes', bb['opcodes'][:20] if bb else None)
PY" in /tmp/codex-5hfh8pcs succeeded in 36ms:
pc 494 bb 491 501 opcodes ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 654 bb 641 661 opcodes ['JUMPDEST', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'PUSH0', 'OP_87', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 1926 bb 1923 1933 opcodes ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 2279 bb 2276 2286 opcodes ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 3052 bb 3049 3059 opcodes ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 3266 bb 3254 3279 opcodes ['JUMPDEST', 'PUSH0', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_85', 'OP_87', 'GAS', 'CALL', 'OP_92', 'POP', 'POP', 'POP', 'RETURNDATASIZE', 'OP_80', 'PUSH0', 'OP_81']
pc 3913 bb 3898 3918 opcodes ['JUMPDEST', 'PUSH0', 'OP_80', 'PUSH1', 'PUSH0', 'OP_84', 'MLOAD', 'PUSH1', 'OP_86', 'ADD', 'PUSH0', 'OP_88', 'GAS', 'CALL', 'OP_80', 'PUSH2', 'JUMPI']
pc 6266 bb 6257 6323 opcodes ['PUSH5', 'OP_C3', 'OP_87', 'OP_1E', 'CALLCODE', 'CALLDATALOAD', 'CHAINID', 'OP_DB', 'OP_26', 'OP_22', 'OP_25', 'OP_88', 'PUSH18', 'OP_94', 'ADDMOD', 'SDIV', 'ADD', 'OP_D3', 'OP_ED', 'OP_9E']
thinking
**Investigating suspicious bytecode region**
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
path=Path('/tmp/codex-5hfh8pcs/BYTECODE_BUNDLE.json')
data=json.loads(path.read_text())
edges=data['analysis_artifact']['artifact_json'].get('cfg_edges') or data['capability_graph']['graph_json'].get('edges')
# find if any edge to bb:6257 or bb:6257 is in edges
edge_to=[]
edge_from=[]
for e in edges:
if e['to']=='bb:6257': edge_to.append(e)
if e['from']=='bb:6257': edge_from.append(e)
print('edges to bb:6257',len(edge_to))
print('edges from bb:6257',len(edge_from))
if edge_to[:5]: print('sample to',edge_to[:5])
if edge_from[:5]: print('sample from',edge_from[:5])
PY" in /tmp/codex-5hfh8pcs succeeded in 32ms:
edges to bb:6257 0
edges from bb:6257 0
thinking
**Analyzing external calls and potential risks**
I'm inspecting external calls in the reachable code to assess possible reentrancy or untrusted call risks, checking opcode patterns for success checks on token transfers. The CALLCODE instruction appears unreachable but still flagged with computed parameters, so I'll treat it cautiously as low severity. I'll also consider missing access controls and ETH value transfers, parsing function and callsite data to better understand security implications.
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
path=Path('/tmp/codex-5hfh8pcs/BYTECODE_BUNDLE.json')
data=json.loads(path.read_text())
funcs=data['analysis_artifact']['artifact_json'].get('functions')
print('functions',len(funcs))
# For each function, show selector and if callsites? maybe there is summary in function object? let's inspect keys
print('function keys',funcs[0].keys())
# find functions with call_count or external calls
for f in funcs:
sel=f.get('selector')
calls=f.get('calls',None) or f.get('external_calls',None) or f.get('call')
# there may be summary in f['sinks'] etc
if 'sinks' in f and (f['sinks'].get('call') or f['sinks'].get('delegatecall') or f['sinks'].get('callcode')):
print(sel,'sinks',f['sinks'])
PY" in /tmp/codex-5hfh8pcs succeeded in 91ms:
functions 22
function keys dict_keys(['auth', 'entry_pc', 'selector', 'sinks', 'storage'])
0xa9212b5b sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0xb59b1176 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0xb66437a5 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0xd0e30db0 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0xd547741f sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0xffa1ad74 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x72c6838f sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x75b238fc sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x91d14854 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x9e281a98 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0xa217fddf sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x2f2ff15d sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x338b5dea sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x36568abe sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x5ec181fb sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x6c665a55 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x01ffc9a7 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
0x02a882e6 sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 3}
thinking
**Checking function auth guards**
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
path=Path('/tmp/codex-5hfh8pcs/BYTECODE_BUNDLE.json')
data=json.loads(path.read_text())
funcs=data['analysis_artifact']['artifact_json']['functions']
for f in funcs:
if f.get('auth',{}).get('guards'):
print(f['selector'],f['auth'])
PY" in /tmp/codex-5hfh8pcs succeeded in 83ms:
thinking
**Analyzing contract calls and storage risks**
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
path=Path('/tmp/codex-5hfh8pcs/BYTECODE_BUNDLE.json')
data=json.loads(path.read_text())
bbs=data['analysis_artifact']['artifact_json']['basic_blocks']
# find block containing pc 709 and 715
for pc in [709,715]:
bb=None
for b in bbs:
if b['start_pc']<=pc<=b['end_pc']:
bb=b
break
print('pc',pc,'bb',bb['start_pc'],bb['end_pc'],bb['opcodes'])
PY" in /tmp/codex-5hfh8pcs succeeded in 45ms:
pc 709 bb 705 728 ['JUMPDEST', 'PUSH0', 'PUSH1', 'SSTORE', 'PUSH2', 'PUSH1', 'SSTORE', 'OP_90', 'POP', 'PUSH2', 'OP_8A', 'OP_86', 'OP_83', 'OP_85', 'PUSH2', 'JUMP']
pc 715 bb 705 728 ['JUMPDEST', 'PUSH0', 'PUSH1', 'SSTORE', 'PUSH2', 'PUSH1', 'SSTORE', 'OP_90', 'POP', 'PUSH2', 'OP_8A', 'OP_86', 'OP_83', 'OP_85', 'PUSH2', 'JUMP']
thinking
**Analyzing storage writes and external call risks**
I’m piecing together how SSTORE instructions write to storage slots 0 and 0xdead, likely resetting state but without clear access control in the bytecode fragment. I’m also considering external calls with computed targets and ETH value transfers flagged by detectors, weighing risk severity amid some uncertainty about access guards and call target constants, while noting a potentially unreachable CALLCODE use linked to upgradeability risks. I want to summarize these findings clearly, referencing program counters in hex and emphasizing the caution around unprotected storage resets and external calls.
exec
/bin/bash -lc "python - <<'PY'
pcs=[494,654,1926,2279,3052,3266,3913,6266,709,715]
for pc in pcs:
print(pc,hex(pc))
PY" in /tmp/codex-5hfh8pcs succeeded in 50ms:
494 0x1ee
654 0x28e
1926 0x786
2279 0x8e7
3052 0xbec
3266 0xcc2
3913 0xf49
6266 0x187a
709 0x2c5
715 0x2cb
thinking
**Preparing detailed security findings JSON**
codex
{"no_findings":false,"summary":"Bytecode shows multiple computed external CALLs (some with ETH value), a CALLCODE instruction in an unreachable-looking block, and SSTOREs to slot 0/0xdead without detected guards. Findings below are conservative due to bytecode-only visibility and heuristic guard detection.","findings":[{"severity":"medium","category":"reentrancy","title":"Computed external CALLs with value (untrusted target) enable arbitrary call/reentrancy risk","exploit_scenario":"If any public entrypoint allows a user-controlled target/value to reach these CALL sites, an attacker can direct ETH/token transfers or invoke a malicious contract that reenters before state is finalized. Detector validation saw a constant target in one trace, but it was not confirmed; if the target is not actually constant/whitelisted, this is exploitable.","recommendation":"Constrain external call targets to fixed/allowlisted addresses, gate call paths with explicit access control, and add a reentrancy guard around state-changing flows that perform external calls. Where possible, prefer pull-based payouts over push-based ETH transfers.","evidence":"callsites list shows CALL with target_expression_category/value_expression_category = computed and returndata_checked = null at pc 494, 654, 1926, 2279, 3052, 3266, 3913; detector findings flagged \"Untrusted CALL target/value reachable\" and \"ETH value transfer possible\" with no guards detected.","locations":["pc:0x1ee","pc:0x28e","pc:0x786","pc:0x8e7","pc:0xbec","pc:0xcc2","pc:0xf49"]},{"severity":"low","category":"upgradeability","title":"CALLCODE present with computed target (delegatecall-like semantics)","exploit_scenario":"If reachable, CALLCODE executes external code in the caller’s storage context, enabling full state corruption or asset theft when the target can be influenced. The CFG shows no edges to the block containing CALLCODE, so it may be unreachable metadata; verify reachability.","recommendation":"Ensure the CALLCODE site is unreachable or remove it. If intentional proxy-like behavior exists, replace with DELEGATECALL and enforce strict access control and implementation validation (code size/allowlist) and emit upgrade events.","evidence":"callsites list includes opcode CALLCODE at pc 6266 with computed target/value; basic block 6257–6323 contains CALLCODE but CFG has no inbound/outbound edges (likely unreachable).","locations":["pc:0x187a"]},{"severity":"low","category":"access_control","title":"State slots 0 and 0xdead written without detected guards","exploit_scenario":"If an external function can reach the block at pc 705, it writes to slot 0 and slot 0xdead. If these slots represent owner/admin/flags, an attacker could reset privileged state or break invariants. Guard detection is heuristic, so this may be protected elsewhere.","recommendation":"Confirm the write path is restricted to authorized callers; add explicit access control checks and events for administrative state changes. If these slots are not privileged, consider documenting their role to aid auditors.","evidence":"storage analysis shows SSTORE at pc 709 (slot 0x0) and pc 715 (slot 0x…dead); auth.guards is empty across functions.","locations":["pc:0x2c5","pc:0x2cb"]}]}
tokens used
50,727
{
"codex": {
"ran_at": "2026-01-11T00:15:30.483146+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 12658,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Bytecode shows multiple computed external CALLs (some with ETH value), a CALLCODE instruction in an unreachable-looking block, and SSTOREs to slot 0/0xdead without detected guards. Findings below are conservative due to bytecode-only visibility and heuristic guard detection.",
"raw_final": {
"summary": "Bytecode shows multiple computed external CALLs (some with ETH value), a CALLCODE instruction in an unreachable-looking block, and SSTOREs to slot 0/0xdead without detected guards. Findings below are conservative due to bytecode-only visibility and heuristic guard detection.",
"findings": [
{
"title": "Computed external CALLs with value (untrusted target) enable arbitrary call/reentrancy risk",
"category": "reentrancy",
"evidence": "callsites list shows CALL with target_expression_category/value_expression_category = computed and returndata_checked = null at pc 494, 654, 1926, 2279, 3052, 3266, 3913; detector findings flagged \"Untrusted CALL target/value reachable\" and \"ETH value transfer possible\" with no guards detected.",
"severity": "medium",
"locations": [
"pc:0x1ee",
"pc:0x28e",
"pc:0x786",
"pc:0x8e7",
"pc:0xbec",
"pc:0xcc2",
"pc:0xf49"
],
"recommendation": "Constrain external call targets to fixed/allowlisted addresses, gate call paths with explicit access control, and add a reentrancy guard around state-changing flows that perform external calls. Where possible, prefer pull-based payouts over push-based ETH transfers.",
"exploit_scenario": "If any public entrypoint allows a user-controlled target/value to reach these CALL sites, an attacker can direct ETH/token transfers or invoke a malicious contract that reenters before state is finalized. Detector validation saw a constant target in one trace, but it was not confirmed; if the target is not actually constant/whitelisted, this is exploitable."
},
{
"title": "CALLCODE present with computed target (delegatecall-like semantics)",
"category": "upgradeability",
"evidence": "callsites list includes opcode CALLCODE at pc 6266 with computed target/value; basic block 6257\u20136323 contains CALLCODE but CFG has no inbound/outbound edges (likely unreachable).",
"severity": "low",
"locations": [
"pc:0x187a"
],
"recommendation": "Ensure the CALLCODE site is unreachable or remove it. If intentional proxy-like behavior exists, replace with DELEGATECALL and enforce strict access control and implementation validation (code size/allowlist) and emit upgrade events.",
"exploit_scenario": "If reachable, CALLCODE executes external code in the caller\u2019s storage context, enabling full state corruption or asset theft when the target can be influenced. The CFG shows no edges to the block containing CALLCODE, so it may be unreachable metadata; verify reachability."
},
{
"title": "State slots 0 and 0xdead written without detected guards",
"category": "access_control",
"evidence": "storage analysis shows SSTORE at pc 709 (slot 0x0) and pc 715 (slot 0x\u2026dead); auth.guards is empty across functions.",
"severity": "low",
"locations": [
"pc:0x2c5",
"pc:0x2cb"
],
"recommendation": "Confirm the write path is restricted to authorized callers; add explicit access control checks and events for administrative state changes. If these slots are not privileged, consider documenting their role to aid auditors.",
"exploit_scenario": "If an external function can reach the block at pc 705, it writes to slot 0 and slot 0xdead. If these slots represent owner/admin/flags, an attacker could reset privileged state or break invariants. Guard detection is heuristic, so this may be protected elsewhere."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x012d 0000000c: JUMPI 0000000d: PUSH0 0000000e: CALLDATALOAD 0000000f: PUSH1 0xe0 00000011: SHR 00000012: DUP1 00000013: PUSH4 0x72c6838f 00000018: GT 00000019: PUSH2 0x00aa 0000001c: JUMPI 0000001d: DUP1 0000001e: PUSH4 0xa9212b5b 00000023: GT 00000024: PUSH2 0x006e 00000027: JUMPI 00000028: DUP1 00000029: PUSH4 0xa9212b5b 0000002e: EQ 0000002f: PUSH2 0x04d6 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0xb59b1176 00000039: EQ 0000003a: PUSH2 0x04f5 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0xb66437a5 00000044: EQ 00000045: PUSH2 0x0514 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0xd0e30db0 0000004f: EQ 00000050: PUSH2 0x0547 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0xd547741f 0000005a: EQ 0000005b: PUSH2 0x054f 0000005e: JUMPI 0000005f: DUP1 00000060: PUSH4 0xffa1ad74 00000065: EQ 00000066: PUSH2 0x056e 00000069: JUMPI 0000006a: PUSH2 0x0134 0000006d: JUMP 0000006e: JUMPDEST 0000006f: DUP1 00000070: PUSH4 0x72c6838f 00000075: EQ 00000076: PUSH2 0x0444 00000079: JUMPI 0000007a: DUP1 0000007b: PUSH4 0x75b238fc 00000080: EQ 00000081: PUSH2 0x0485 00000084: JUMPI 00000085: DUP1 00000086: PUSH4 0x91d14854 0000008b: EQ 0000008c: PUSH2 0x0498 0000008f: JUMPI 00000090: DUP1 00000091: PUSH4 0x9e281a98 00000096: EQ 00000097: PUSH2 0x04b7 0000009a: JUMPI 0000009b: DUP1 0000009c: PUSH4 0xa217fddf 000000a1: EQ 000000a2: PUSH2 0x0485 000000a5: JUMPI 000000a6: PUSH2 0x0134 000000a9: JUMP 000000aa: JUMPDEST 000000ab: DUP1 000000ac: PUSH4 0x2f2ff15d 000000b1: GT 000000b2: PUSH2 0x00f1 000000b5: JUMPI 000000b6: DUP1 000000b7: PUSH4 0x2f2ff15d 000000bc: EQ 000000bd: PUSH2 0x03a9 000000c0: JUMPI 000000c1: DUP1 000000c2: PUSH4 0x338b5dea 000000c7: EQ 000000c8: PUSH2 0x03c8 000000cb: JUMPI 000000cc: DUP1 000000cd: PUSH4 0x36568abe 000000d2: EQ 000000d3: PUSH2 0x03e7 000000d6: JUMPI 000000d7: DUP1 000000d8: PUSH4 0x5ec181fb 000000dd: EQ 000000de: PUSH2 0x0406 000000e1: JUMPI 000000e2: DUP1 000000e3: PUSH4 0x6c665a55 000000e8: EQ 000000e9: PUSH2 0x0425 000000ec: JUMPI 000000ed: PUSH2 0x0134 000000f0: JUMP 000000f1: JUMPDEST 000000f2: DUP1 000000f3: PUSH4 0x01ffc9a7 000000f8: EQ 000000f9: PUSH2 0x02db 000000fc: JUMPI 000000fd: DUP1 000000fe: PUSH4 0x02a882e6 00000103: EQ 00000104: PUSH2 0x0310 00000107: JUMPI 00000108: DUP1 00000109: PUSH4 0x1bad19d9 0000010e: EQ 0000010f: PUSH2 0x033d 00000112: JUMPI 00000113: DUP1 00000114: PUSH4 0x248a9ca3 00000119: EQ 0000011a: PUSH2 0x035c 0000011d: JUMPI 0000011e: DUP1 0000011f: PUSH4 0x2e1a7d4d 00000124: EQ 00000125: PUSH2 0x038a 00000128: JUMPI 00000129: PUSH2 0x0134 0000012c: JUMP 0000012d: JUMPDEST 0000012e: CALLDATASIZE 0000012f: PUSH2 0x0134 00000132: JUMPI 00000133: STOP 00000134: JUMPDEST 00000135: PUSH2 0x015d 00000138: PUSH32 0xcad6d1a2298b8fe675ee5c5b6ae9e25f35e079d7c862db237f1f20200f9ea442 00000159: PUSH2 0x0582 0000015c: JUMP 0000015d: JUMPDEST 0000015e: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 0000017f: PUSH0 00000180: DUP1 00000181: DUP1 00000182: DUP1 00000183: DUP1 00000184: DUP1 00000185: PUSH2 0x0191 00000188: CALLDATASIZE 00000189: PUSH1 0x04 0000018b: DUP2 0000018c: DUP5 0000018d: PUSH2 0x0f9d 00000190: JUMP 00000191: JUMPDEST 00000192: DUP2 00000193: ADD 00000194: SWAP1 00000195: PUSH2 0x019e 00000198: SWAP2 00000199: SWAP1 0000019a: PUSH2 0x1307 0000019d: JUMP 0000019e: JUMPDEST 0000019f: SWAP6 000001a0: POP 000001a1: SWAP6 000001a2: POP 000001a3: SWAP6 000001a4: POP 000001a5: SWAP6 000001a6: POP 000001a7: SWAP6 000001a8: POP 000001a9: SWAP6 000001aa: POP 000001ab: PUSH0 000001ac: CALLVALUE 000001ad: GT 000001ae: ISZERO 000001af: PUSH2 0x0203 000001b2: JUMPI 000001b3: DUP7 000001b4: PUSH1 0x01 000001b6: PUSH1 0x01 000001b8: PUSH1 0xa0 000001ba: SHL 000001bb: SUB 000001bc: AND 000001bd: PUSH4 0xd0e30db0 000001c2: CALLVALUE 000001c3: PUSH1 0x40 000001c5: MLOAD 000001c6: DUP3 000001c7: PUSH4 0xffffffff 000001cc: AND 000001cd: PUSH1 0xe0 000001cf: SHL 000001d0: DUP2 000001d1: MSTORE 000001d2: PUSH1 0x04 000001d4: ADD 000001d5: PUSH0 000001d6: PUSH1 0x40 000001d8: MLOAD 000001d9: DUP1 000001da: DUP4 000001db: SUB 000001dc: DUP2 000001dd: DUP6 000001de: DUP9 000001df: DUP1 000001e0: EXTCODESIZE 000001e1: ISZERO 000001e2: DUP1 000001e3: ISZERO 000001e4: PUSH2 0x01eb 000001e7: JUMPI 000001e8: PUSH0 000001e9: DUP1 000001ea: REVERT 000001eb: JUMPDEST 000001ec: POP 000001ed: GAS 000001ee: CALL 000001ef: ISZERO 000001f0: DUP1 000001f1: ISZERO 000001f2: PUSH2 0x01fd 000001f5: JUMPI 000001f6: RETURNDATASIZE 000001f7: PUSH0 000001f8: DUP1 000001f9: RETURNDATACOPY 000001fa: RETURNDATASIZE 000001fb: PUSH0 000001fc: REVERT 000001fd: JUMPDEST 000001fe: POP 000001ff: POP 00000200: POP 00000201: POP 00000202: POP 00000203: JUMPDEST 00000204: PUSH0 00000205: PUSH2 0x020d 00000208: DUP8 00000209: PUSH2 0x058f 0000020c: JUMP 0000020d: JUMPDEST 0000020e: DUP6 0000020f: MLOAD 00000210: SWAP1 00000211: SWAP2 00000212: POP 00000213: PUSH2 0x021c 00000216: DUP8 00000217: DUP7 00000218: PUSH2 0x05d4 0000021b: JUMP 0000021c: JUMPDEST 0000021d: PUSH2 0x0225 00000220: DUP8 00000221: PUSH2 0x06bb 00000224: JUMP 00000225: JUMPDEST 00000226: PUSH1 0x01 00000228: PUSH1 0x01 0000022a: PUSH1 0xa0 0000022c: SHL 0000022d: SUB 0000022e: AND 0000022f: PUSH1 0x01 00000231: SWAP1 00000232: DUP2 00000233: SSTORE 00000234: PUSH2 0x023e 00000237: SWAP1 00000238: DUP3 00000239: SWAP1 0000023a: PUSH2 0x13f1 0000023d: JUMP 0000023e: JUMPDEST 0000023f: DUP6 00000240: MLOAD 00000241: PUSH2 0x024a 00000244: SWAP2 00000245: SWAP1 00000246: PUSH2 0x1404 00000249: JUMP 0000024a: JUMPDEST 0000024b: PUSH1 0x02 0000024d: SSTORE 0000024e: PUSH1 0x40 00000250: MLOAD 00000251: PUSH4 0x0d553a53 00000256: PUSH1 0xe4 00000258: SHL 00000259: DUP2 0000025a: MSTORE 0000025b: PUSH0 0000025c: SWAP1 0000025d: PUSH1 0x01 0000025f: PUSH1 0x01 00000261: PUSH1 0xa0 00000263: SHL 00000264: SUB 00000265: DUP5 00000266: AND 00000267: SWAP1 00000268: PUSH4 0xd553a530 0000026d: SWAP1 0000026e: PUSH2 0x0281 00000271: SWAP1 00000272: DUP12 00000273: SWAP1 00000274: DUP12 00000275: SWAP1 00000276: DUP12 00000277: SWAP1 00000278: DUP11 00000279: SWAP1 0000027a: PUSH1 0x04 0000027c: ADD 0000027d: PUSH2 0x15a0 00000280: JUMP 00000281: JUMPDEST 00000282: PUSH1 0x20 00000284: PUSH1 0x40 00000286: MLOAD 00000287: DUP1 00000288: DUP4 00000289: SUB 0000028a: DUP2 0000028b: PUSH0 0000028c: DUP8 0000028d: GAS 0000028e: CALL 0000028f: ISZERO 00000290: DUP1 00000291: ISZERO 00000292: PUSH2 0x029d 00000295: JUMPI 00000296: RETURNDATASIZE 00000297: PUSH0 00000298: DUP1 00000299: RETURNDATACOPY 0000029a: RETURNDATASIZE 0000029b: PUSH0 0000029c: REVERT 0000029d: JUMPDEST 0000029e: POP 0000029f: POP 000002a0: POP 000002a1: POP 000002a2: PUSH1 0x40 000002a4: MLOAD 000002a5: RETURNDATASIZE 000002a6: PUSH1 0x1f 000002a8: NOT 000002a9: PUSH1 0x1f 000002ab: DUP3 000002ac: ADD 000002ad: AND 000002ae: DUP3 000002af: ADD 000002b0: DUP1 000002b1: PUSH1 0x40 000002b3: MSTORE 000002b4: POP 000002b5: DUP2 000002b6: ADD 000002b7: SWAP1 000002b8: PUSH2 0x02c1 000002bb: SWAP2 000002bc: SWAP1 000002bd: PUSH2 0x15fd 000002c0: JUMP 000002c1: JUMPDEST 000002c2: PUSH0 000002c3: PUSH1 0x02 000002c5: SSTORE 000002c6: PUSH2 0xdead 000002c9: PUSH1 0x01 000002cb: SSTORE 000002cc: SWAP1 000002cd: POP 000002ce: PUSH2 0x02d9 000002d1: DUP11 000002d2: DUP7 000002d3: DUP4 000002d4: DUP6 000002d5: PUSH2 0x06d0 000002d8: JUMP 000002d9: JUMPDEST 000002da: STOP 000002db: JUMPDEST 000002dc: CALLVALUE 000002dd: DUP1 000002de: ISZERO 000002df: PUSH2 0x02e6 000002e2: JUMPI 000002e3: PUSH0 000002e4: DUP1 000002e5: REVERT 000002e6: JUMPDEST 000002e7: POP 000002e8: PUSH2 0x02fa 000002eb: PUSH2 0x02f5 000002ee: CALLDATASIZE 000002ef: PUSH1 0x04 000002f1: PUSH2 0x1636 000002f4: JUMP 000002f5: JUMPDEST 000002f6: PUSH2 0x07ab 000002f9: JUMP 000002fa: JUMPDEST 000002fb: PUSH1 0x40 000002fd: MLOAD 000002fe: PUSH2 0x0307 00000301: SWAP2 00000302: SWAP1 00000303: PUSH2 0x1654 00000306: JUMP 00000307: JUMPDEST 00000308: PUSH1 0x40 0000030a: MLOAD 0000030b: DUP1 0000030c: SWAP2 0000030d: SUB 0000030e: SWAP1 0000030f: RETURN 00000310: JUMPDEST 00000311: CALLVALUE 00000312: DUP1 00000313: ISZERO 00000314: PUSH2 0x031b 00000317: JUMPI 00000318: PUSH0 00000319: DUP1 0000031a: REVERT 0000031b: JUMPDEST 0000031c: POP 0000031d: PUSH2 0x0330 00000320: PUSH0 00000321: DUP1 00000322: MLOAD 00000323: PUSH1 0x20 00000325: PUSH2 0x1863 00000328: DUP4 00000329: CODECOPY 0000032a: DUP2 0000032b: MLOAD 0000032c: SWAP2 0000032d: MSTORE 0000032e: DUP2 0000032f: JUMP 00000330: JUMPDEST 00000331: PUSH1 0x40 00000333: MLOAD 00000334: PUSH2 0x0307 00000337: SWAP2 00000338: SWAP1 00000339: PUSH2 0x1662 0000033c: JUMP 0000033d: JUMPDEST 0000033e: CALLVALUE 0000033f: DUP1 00000340: ISZERO 00000341: PUSH2 0x0348 00000344: JUMPI 00000345: PUSH0 00000346: DUP1 00000347: REVERT 00000348: JUMPDEST 00000349: POP 0000034a: PUSH2 0x02d9 0000034d: PUSH2 0x0357 00000350: CALLDATASIZE 00000351: PUSH1 0x04 00000353: PUSH2 0x1670 00000356: JUMP 00000357: JUMPDEST 00000358: PUSH2 0x07df 0000035b: JUMP 0000035c: JUMPDEST 0000035d: CALLVALUE 0000035e: DUP1 0000035f: ISZERO 00000360: PUSH2 0x0367 00000363: JUMPI 00000364: PUSH0 00000365: DUP1 00000366: REVERT 00000367: JUMPDEST 00000368: POP 00000369: PUSH2 0x0330 0000036c: PUSH2 0x0376 0000036f: CALLDATASIZE 00000370: PUSH1 0x04 00000372: PUSH2 0x16ac 00000375: JUMP 00000376: JUMPDEST 00000377: PUSH0 00000378: SWAP1 00000379: DUP2 0000037a: MSTORE 0000037b: PUSH1 0x20 0000037d: DUP2 0000037e: SWAP1 0000037f: MSTORE 00000380: PUSH1 0x40 00000382: SWAP1 00000383: KECCAK256 00000384: PUSH1 0x01 00000386: ADD 00000387: SLOAD 00000388: SWAP1 00000389: JUMP 0000038a: JUMPDEST 0000038b: CALLVALUE 0000038c: DUP1 0000038d: ISZERO 0000038e: PUSH2 0x0395 00000391: JUMPI 00000392: PUSH0 00000393: DUP1 00000394: REVERT 00000395: JUMPDEST 00000396: POP 00000397: PUSH2 0x02d9 0000039a: PUSH2 0x03a4 0000039d: CALLDATASIZE 0000039e: PUSH1 0x04 000003a0: PUSH2 0x16ac 000003a3: JUMP 000003a4: JUMPDEST 000003a5: PUSH2 0x07fa 000003a8: JUMP 000003a9: JUMPDEST 000003aa: CALLVALUE 000003ab: DUP1 000003ac: ISZERO 000003ad: PUSH2 0x03b4 000003b0: JUMPI 000003b1: PUSH0 000003b2: DUP1 000003b3: REVERT 000003b4: JUMPDEST 000003b5: POP 000003b6: PUSH2 0x02d9 000003b9: PUSH2 0x03c3 000003bc: CALLDATASIZE 000003bd: PUSH1 0x04 000003bf: PUSH2 0x16ca 000003c2: JUMP 000003c3: JUMPDEST 000003c4: PUSH2 0x090a 000003c7: JUMP 000003c8: JUMPDEST 000003c9: CALLVALUE 000003ca: DUP1 000003cb: ISZERO 000003cc: PUSH2 0x03d3 000003cf: JUMPI 000003d0: PUSH0 000003d1: DUP1 000003d2: REVERT 000003d3: JUMPDEST 000003d4: POP 000003d5: PUSH2 0x02d9 000003d8: PUSH2 0x03e2 000003db: CALLDATASIZE 000003dc: PUSH1 0x04 000003de: PUSH2 0x16fa 000003e1: JUMP 000003e2: JUMPDEST 000003e3: PUSH2 0x092e 000003e6: JUMP 000003e7: JUMPDEST 000003e8: CALLVALUE 000003e9: DUP1 000003ea: ISZERO 000003eb: PUSH2 0x03f2 000003ee: JUMPI 000003ef: PUSH0 000003f0: DUP1 000003f1: REVERT 000003f2: JUMPDEST 000003f3: POP 000003f4: PUSH2 0x02d9 000003f7: PUSH2 0x0401 000003fa: CALLDATASIZE 000003fb: PUSH1 0x04 000003fd: PUSH2 0x16ca 00000400: JUMP 00000401: JUMPDEST 00000402: PUSH2 0x0944 00000405: JUMP 00000406: JUMPDEST 00000407: CALLVALUE 00000408: DUP1 00000409: ISZERO 0000040a: PUSH2 0x0411 0000040d: JUMPI 0000040e: PUSH0 0000040f: DUP1 00000410: REVERT 00000411: JUMPDEST 00000412: POP 00000413: PUSH2 0x02d9 00000416: PUSH2 0x0420 00000419: CALLDATASIZE 0000041a: PUSH1 0x04 0000041c: PUSH2 0x172a 0000041f: JUMP 00000420: JUMPDEST 00000421: PUSH2 0x0977 00000424: JUMP 00000425: JUMPDEST 00000426: CALLVALUE 00000427: DUP1 00000428: ISZERO 00000429: PUSH2 0x0430 0000042c: JUMPI 0000042d: PUSH0 0000042e: DUP1 0000042f: REVERT 00000430: JUMPDEST 00000431: POP 00000432: PUSH2 0x02d9 00000435: PUSH2 0x043f 00000438: CALLDATASIZE 00000439: PUSH1 0x04 0000043b: PUSH2 0x1762 0000043e: JUMP 0000043f: JUMPDEST 00000440: PUSH2 0x09da 00000443: JUMP 00000444: JUMPDEST 00000445: CALLVALUE 00000446: DUP1 00000447: ISZERO 00000448: PUSH2 0x044f 0000044b: JUMPI 0000044c: PUSH0 0000044d: DUP1 0000044e: REVERT 0000044f: JUMPDEST 00000450: POP 00000451: PUSH2 0x0478 00000454: PUSH2 0x045e 00000457: CALLDATASIZE 00000458: PUSH1 0x04 0000045a: PUSH2 0x16ac 0000045d: JUMP 0000045e: JUMPDEST 0000045f: PUSH1 0x03 00000461: PUSH1 0x20 00000463: MSTORE 00000464: PUSH0 00000465: SWAP1 00000466: DUP2 00000467: MSTORE 00000468: PUSH1 0x40 0000046a: SWAP1 0000046b: KECCAK256 0000046c: SLOAD 0000046d: PUSH1 0x01 0000046f: PUSH1 0x01 00000471: PUSH1 0xa0 00000473: SHL 00000474: SUB 00000475: AND 00000476: DUP2 00000477: JUMP 00000478: JUMPDEST 00000479: PUSH1 0x40 0000047b: MLOAD 0000047c: PUSH2 0x0307 0000047f: SWAP2 00000480: SWAP1 00000481: PUSH2 0x17ae 00000484: JUMP 00000485: JUMPDEST 00000486: CALLVALUE 00000487: DUP1 00000488: ISZERO 00000489: PUSH2 0x0490 0000048c: JUMPI 0000048d: PUSH0 0000048e: DUP1 0000048f: REVERT 00000490: JUMPDEST 00000491: POP 00000492: PUSH2 0x0330 00000495: PUSH0 00000496: DUP2 00000497: JUMP 00000498: JUMPDEST 00000499: CALLVALUE 0000049a: DUP1 0000049b: ISZERO 0000049c: PUSH2 0x04a3 0000049f: JUMPI 000004a0: PUSH0 000004a1: DUP1 000004a2: REVERT 000004a3: JUMPDEST 000004a4: POP 000004a5: PUSH2 0x02fa 000004a8: PUSH2 0x04b2 000004ab: CALLDATASIZE 000004ac: PUSH1 0x04 000004ae: PUSH2 0x16ca 000004b1: JUMP 000004b2: JUMPDEST 000004b3: PUSH2 0x0a79 000004b6: JUMP 000004b7: JUMPDEST 000004b8: CALLVALUE 000004b9: DUP1 000004ba: ISZERO 000004bb: PUSH2 0x04c2 000004be: JUMPI 000004bf: PUSH0 000004c0: DUP1 000004c1: REVERT 000004c2: JUMPDEST 000004c3: POP 000004c4: PUSH2 0x02d9 000004c7: PUSH2 0x04d1 000004ca: CALLDATASIZE 000004cb: PUSH1 0x04 000004cd: PUSH2 0x16fa 000004d0: JUMP 000004d1: JUMPDEST 000004d2: PUSH2 0x0aa1 000004d5: JUMP 000004d6: JUMPDEST 000004d7: CALLVALUE 000004d8: DUP1 000004d9: ISZERO 000004da: PUSH2 0x04e1 000004dd: JUMPI 000004de: PUSH0 000004df: DUP1 000004e0: REVERT 000004e1: JUMPDEST 000004e2: POP 000004e3: PUSH2 0x02d9 000004e6: PUSH2 0x04f0 000004e9: CALLDATASIZE 000004ea: PUSH1 0x04 000004ec: PUSH2 0x16ca 000004ef: JUMP 000004f0: JUMPDEST 000004f1: PUSH2 0x0b2b 000004f4: JUMP 000004f5: JUMPDEST 000004f6: CALLVALUE 000004f7: DUP1 000004f8: ISZERO 000004f9: PUSH2 0x0500 000004fc: JUMPI 000004fd: PUSH0 000004fe: DUP1 000004ff: REVERT 00000500: JUMPDEST 00000501: POP 00000502: PUSH2 0x02d9 00000505: PUSH2 0x050f 00000508: CALLDATASIZE 00000509: PUSH1 0x04 0000050b: PUSH2 0x16ac 0000050e: JUMP 0000050f: JUMPDEST 00000510: PUSH2 0x0b3f 00000513: JUMP 00000514: JUMPDEST 00000515: CALLVALUE 00000516: DUP1 00000517: ISZERO 00000518: PUSH2 0x051f 0000051b: JUMPI 0000051c: PUSH0 0000051d: DUP1 0000051e: REVERT 0000051f: JUMPDEST 00000520: POP 00000521: PUSH2 0x0330 00000524: PUSH32 0xcad6d1a2298b8fe675ee5c5b6ae9e25f35e079d7c862db237f1f20200f9ea442 00000545: DUP2 00000546: JUMP 00000547: JUMPDEST 00000548: PUSH2 0x02d9 0000054b: PUSH2 0x0b86 0000054e: JUMP 0000054f: JUMPDEST 00000550: CALLVALUE 00000551: DUP1 00000552: ISZERO 00000553: PUSH2 0x055a 00000556: JUMPI 00000557: PUSH0 00000558: DUP1 00000559: REVERT 0000055a: JUMPDEST 0000055b: POP 0000055c: PUSH2 0x02d9 0000055f: PUSH2 0x0569 00000562: CALLDATASIZE 00000563: PUSH1 0x04 00000565: PUSH2 0x16ca 00000568: JUMP 00000569: JUMPDEST 0000056a: PUSH2 0x0c03 0000056d: JUMP 0000056e: JUMPDEST 0000056f: CALLVALUE 00000570: DUP1 00000571: ISZERO 00000572: PUSH2 0x0579 00000575: JUMPI 00000576: PUSH0 00000577: DUP1 00000578: REVERT 00000579: JUMPDEST 0000057a: POP 0000057b: PUSH2 0x0330 0000057e: PUSH1 0x0b 00000580: DUP2 00000581: JUMP 00000582: JUMPDEST 00000583: PUSH2 0x058c 00000586: DUP2 00000587: CALLER 00000588: PUSH2 0x0c27 0000058b: JUMP 0000058c: JUMPDEST 0000058d: POP 0000058e: JUMP 0000058f: JUMPDEST 00000590: PUSH0 00000591: DUP2 00000592: DUP2 00000593: MSTORE 00000594: PUSH1 0x03 00000596: PUSH1 0x20 00000598: MSTORE 00000599: PUSH1 0x40 0000059b: SWAP1 0000059c: KECCAK256 0000059d: SLOAD 0000059e: PUSH1 0x01 000005a0: PUSH1 0x01 000005a2: PUSH1 0xa0 000005a4: SHL 000005a5: SUB 000005a6: AND 000005a7: DUP1 000005a8: PUSH2 0x05cf 000005ab: JUMPI 000005ac: DUP2 000005ad: PUSH1 0x40 000005af: MLOAD 000005b0: PUSH4 0x201e4ee7 000005b5: PUSH1 0xe0 000005b7: SHL 000005b8: DUP2 000005b9: MSTORE 000005ba: PUSH1 0x04 000005bc: ADD 000005bd: PUSH2 0x05c6 000005c0: SWAP2 000005c1: SWAP1 000005c2: PUSH2 0x1662 000005c5: JUMP 000005c6: JUMPDEST 000005c7: PUSH1 0x40 000005c9: MLOAD 000005ca: DUP1 000005cb: SWAP2 000005cc: SUB 000005cd: SWAP1 000005ce: REVERT 000005cf: JUMPDEST 000005d0: SWAP2 000005d1: SWAP1 000005d2: POP 000005d3: JUMP 000005d4: JUMPDEST 000005d5: PUSH0 000005d6: PUSH2 0x05de 000005d9: DUP4 000005da: PUSH2 0x0c56 000005dd: JUMP 000005de: JUMPDEST 000005df: SWAP1 000005e0: POP 000005e1: DUP1 000005e2: EXTCODESIZE 000005e3: PUSH0 000005e4: DUP2 000005e5: SWAP1 000005e6: SUB 000005e7: PUSH2 0x0605 000005ea: JUMPI 000005eb: DUP2 000005ec: PUSH1 0x40 000005ee: MLOAD 000005ef: PUSH4 0x52f544ed 000005f4: PUSH1 0xe1 000005f6: SHL 000005f7: DUP2 000005f8: MSTORE 000005f9: PUSH1 0x04 000005fb: ADD 000005fc: PUSH2 0x05c6 000005ff: SWAP2 00000600: SWAP1 00000601: PUSH2 0x17ae 00000604: JUMP 00000605: JUMPDEST 00000606: PUSH0 00000607: PUSH4 0x05f5e100 0000060c: SWAP1 0000060d: POP 0000060e: PUSH0 0000060f: DUP4 00000610: PUSH1 0x01 00000612: PUSH1 0x01 00000614: PUSH1 0xa0 00000616: SHL 00000617: SUB 00000618: AND 00000619: PUSH4 0x18160ddd 0000061e: PUSH1 0x40 00000620: MLOAD 00000621: DUP2 00000622: PUSH4 0xffffffff 00000627: AND 00000628: PUSH1 0xe0 0000062a: SHL 0000062b: DUP2 0000062c: MSTORE 0000062d: PUSH1 0x04 0000062f: ADD 00000630: PUSH1 0x20 00000632: PUSH1 0x40 00000634: MLOAD 00000635: DUP1 00000636: DUP4 00000637: SUB 00000638: DUP2 00000639: DUP7 0000063a: GAS 0000063b: STATICCALL 0000063c: ISZERO 0000063d: DUP1 0000063e: ISZERO 0000063f: PUSH2 0x064a 00000642: JUMPI 00000643: RETURNDATASIZE 00000644: PUSH0 00000645: DUP1 00000646: RETURNDATACOPY 00000647: RETURNDATASIZE 00000648: PUSH0 00000649: REVERT 0000064a: JUMPDEST 0000064b: POP 0000064c: POP 0000064d: POP 0000064e: POP 0000064f: PUSH1 0x40 00000651: MLOAD 00000652: RETURNDATASIZE 00000653: PUSH1 0x1f 00000655: NOT 00000656: PUSH1 0x1f 00000658: DUP3 00000659: ADD 0000065a: AND 0000065b: DUP3 0000065c: ADD 0000065d: DUP1 0000065e: PUSH1 0x40 00000660: MSTORE 00000661: POP 00000662: DUP2 00000663: ADD 00000664: SWAP1 00000665: PUSH2 0x066e 00000668: SWAP2 00000669: SWAP1 0000066a: PUSH2 0x15fd 0000066d: JUMP 0000066e: JUMPDEST 0000066f: SWAP1 00000670: POP 00000671: DUP2 00000672: DUP6 00000673: PUSH1 0x20 00000675: ADD 00000676: MLOAD 00000677: DUP3 00000678: PUSH2 0x0681 0000067b: SWAP2 0000067c: SWAP1 0000067d: PUSH2 0x1404 00000680: JUMP 00000681: JUMPDEST 00000682: PUSH2 0x068b 00000685: SWAP2 00000686: SWAP1 00000687: PUSH2 0x17d0 0000068a: JUMP 0000068b: JUMPDEST 0000068c: PUSH1 0x20 0000068e: DUP7 0000068f: ADD 00000690: MSTORE 00000691: PUSH1 0x40 00000693: DUP6 00000694: ADD 00000695: MLOAD 00000696: DUP3 00000697: SWAP1 00000698: PUSH2 0x06a1 0000069b: SWAP1 0000069c: DUP4 0000069d: PUSH2 0x1404 000006a0: JUMP 000006a1: JUMPDEST 000006a2: PUSH2 0x06ab 000006a5: SWAP2 000006a6: SWAP1 000006a7: PUSH2 0x17d0 000006aa: JUMP 000006ab: JUMPDEST 000006ac: PUSH1 0x40 000006ae: SWAP1 000006af: SWAP6 000006b0: ADD 000006b1: SWAP5 000006b2: SWAP1 000006b3: SWAP5 000006b4: MSTORE 000006b5: POP 000006b6: POP 000006b7: POP 000006b8: POP 000006b9: POP 000006ba: JUMP 000006bb: JUMPDEST 000006bc: PUSH1 0x20 000006be: DUP2 000006bf: ADD 000006c0: MLOAD 000006c1: PUSH0 000006c2: SWAP1 000006c3: PUSH1 0x01 000006c5: PUSH1 0x60 000006c7: SHL 000006c8: SWAP1 000006c9: DIV 000006ca: JUMPDEST 000006cb: SWAP3 000006cc: SWAP2 000006cd: POP 000006ce: POP 000006cf: JUMP 000006d0: JUMPDEST 000006d1: DUP3 000006d2: MLOAD 000006d3: DUP3 000006d4: LT 000006d5: ISZERO 000006d6: PUSH2 0x06f6 000006d9: JUMPI 000006da: DUP3 000006db: MLOAD 000006dc: PUSH1 0x40 000006de: MLOAD 000006df: PUSH4 0x52880093 000006e4: PUSH1 0xe1 000006e6: SHL 000006e7: DUP2 000006e8: MSTORE 000006e9: PUSH2 0x05c6 000006ec: SWAP2 000006ed: DUP5 000006ee: SWAP2 000006ef: PUSH1 0x04 000006f1: ADD 000006f2: PUSH2 0x17e3 000006f5: JUMP 000006f6: JUMPDEST 000006f7: PUSH1 0x20 000006f9: DUP4 000006fa: ADD 000006fb: MLOAD 000006fc: DUP1 000006fd: ISZERO 000006fe: DUP1 000006ff: PUSH2 0x0706 00000702: JUMPI 00000703: POP 00000704: DUP3 00000705: ISZERO 00000706: JUMPDEST 00000707: ISZERO 00000708: PUSH2 0x0711 0000070b: JUMPI 0000070c: POP 0000070d: PUSH2 0x07a5 00000710: JUMP 00000711: JUMPDEST 00000712: DUP4 00000713: PUSH1 0x40 00000715: ADD 00000716: MLOAD 00000717: ISZERO 00000718: PUSH2 0x0740 0000071b: JUMPI 0000071c: DUP2 0000071d: DUP4 0000071e: GT 0000071f: ISZERO 00000720: PUSH2 0x0727 00000723: JUMPI 00000724: DUP2 00000725: SWAP3 00000726: POP 00000727: JUMPDEST 00000728: PUSH2 0x0731 0000072b: DUP4 0000072c: DUP3 0000072d: PUSH2 0x1404 00000730: JUMP 00000731: JUMPDEST 00000732: SWAP1 00000733: POP 00000734: PUSH2 0x073d 00000737: DUP3 00000738: DUP3 00000739: PUSH2 0x17d0 0000073c: JUMP 0000073d: JUMPDEST 0000073e: SWAP1 0000073f: POP 00000740: JUMPDEST 00000741: PUSH1 0x40 00000743: MLOAD 00000744: PUSH4 0x2e1a7d4d 00000749: PUSH1 0xe0 0000074b: SHL 0000074c: DUP2 0000074d: MSTORE 0000074e: PUSH1 0x01 00000750: PUSH1 0x01 00000752: PUSH1 0xa0 00000754: SHL 00000755: SUB 00000756: DUP7 00000757: AND 00000758: SWAP1 00000759: PUSH4 0x2e1a7d4d 0000075e: SWAP1 0000075f: PUSH2 0x076c 00000762: SWAP1 00000763: DUP5 00000764: SWAP1 00000765: PUSH1 0x04 00000767: ADD 00000768: PUSH2 0x1662 0000076b: JUMP 0000076c: JUMPDEST 0000076d: PUSH0 0000076e: PUSH1 0x40 00000770: MLOAD 00000771: DUP1 00000772: DUP4 00000773: SUB 00000774: DUP2 00000775: PUSH0 00000776: DUP8 00000777: DUP1 00000778: EXTCODESIZE 00000779: ISZERO 0000077a: DUP1 0000077b: ISZERO 0000077c: PUSH2 0x0783 0000077f: JUMPI 00000780: PUSH0 00000781: DUP1 00000782: REVERT 00000783: JUMPDEST 00000784: POP 00000785: GAS 00000786: CALL 00000787: ISZERO 00000788: DUP1 00000789: ISZERO 0000078a: PUSH2 0x0795 0000078d: JUMPI 0000078e: RETURNDATASIZE 0000078f: PUSH0 00000790: DUP1 00000791: RETURNDATACOPY 00000792: RETURNDATASIZE 00000793: PUSH0 00000794: REVERT 00000795: JUMPDEST 00000796: POP 00000797: POP 00000798: POP 00000799: POP 0000079a: PUSH2 0x07a3 0000079d: COINBASE 0000079e: DUP3 0000079f: PUSH2 0x0c9e 000007a2: JUMP 000007a3: JUMPDEST 000007a4: POP 000007a5: JUMPDEST 000007a6: POP 000007a7: POP 000007a8: POP 000007a9: POP 000007aa: JUMP 000007ab: JUMPDEST 000007ac: PUSH0 000007ad: PUSH1 0x01 000007af: PUSH1 0x01 000007b1: PUSH1 0xe0 000007b3: SHL 000007b4: SUB 000007b5: NOT 000007b6: DUP3 000007b7: AND 000007b8: PUSH4 0x7965db0b 000007bd: PUSH1 0xe0 000007bf: SHL 000007c0: EQ 000007c1: DUP1 000007c2: PUSH2 0x06ca 000007c5: JUMPI 000007c6: POP 000007c7: PUSH4 0x01ffc9a7 000007cc: PUSH1 0xe0 000007ce: SHL 000007cf: PUSH1 0x01 000007d1: PUSH1 0x01 000007d3: PUSH1 0xe0 000007d5: SHL 000007d6: SUB 000007d7: NOT 000007d8: DUP4 000007d9: AND 000007da: EQ 000007db: PUSH2 0x06ca 000007de: JUMP 000007df: JUMPDEST 000007e0: PUSH0 000007e1: PUSH1 0x40 000007e3: MLOAD 000007e4: PUSH4 0x3283c86d 000007e9: PUSH1 0xe2 000007eb: SHL 000007ec: DUP2 000007ed: MSTORE 000007ee: PUSH1 0x04 000007f0: ADD 000007f1: PUSH2 0x05c6 000007f4: SWAP2 000007f5: SWAP1 000007f6: PUSH2 0x17ae 000007f9: JUMP 000007fa: JUMPDEST 000007fb: PUSH0 000007fc: PUSH2 0x0804 000007ff: DUP2 00000800: PUSH2 0x0582 00000803: JUMP 00000804: JUMPDEST 00000805: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000826: PUSH0 00000827: DUP4 00000828: SWAP1 00000829: SUB 0000082a: PUSH2 0x089b 0000082d: JUMPI 0000082e: PUSH1 0x40 00000830: MLOAD 00000831: PUSH4 0x70a08231 00000836: PUSH1 0xe0 00000838: SHL 00000839: DUP2 0000083a: MSTORE 0000083b: PUSH1 0x01 0000083d: PUSH1 0x01 0000083f: PUSH1 0xa0 00000841: SHL 00000842: SUB 00000843: DUP3 00000844: AND 00000845: SWAP1 00000846: PUSH4 0x70a08231 0000084b: SWAP1 0000084c: PUSH2 0x0859 0000084f: SWAP1 00000850: ADDRESS 00000851: SWAP1 00000852: PUSH1 0x04 00000854: ADD 00000855: PUSH2 0x17ae 00000858: JUMP 00000859: JUMPDEST 0000085a: PUSH1 0x20 0000085c: PUSH1 0x40 0000085e: MLOAD 0000085f: DUP1 00000860: DUP4 00000861: SUB 00000862: DUP2 00000863: DUP7 00000864: GAS 00000865: STATICCALL 00000866: ISZERO 00000867: DUP1 00000868: ISZERO 00000869: PUSH2 0x0874 0000086c: JUMPI 0000086d: RETURNDATASIZE 0000086e: PUSH0 0000086f: DUP1 00000870: RETURNDATACOPY 00000871: RETURNDATASIZE 00000872: PUSH0 00000873: REVERT 00000874: JUMPDEST 00000875: POP 00000876: POP 00000877: POP 00000878: POP 00000879: PUSH1 0x40 0000087b: MLOAD 0000087c: RETURNDATASIZE 0000087d: PUSH1 0x1f 0000087f: NOT 00000880: PUSH1 0x1f 00000882: DUP3 00000883: ADD 00000884: AND 00000885: DUP3 00000886: ADD 00000887: DUP1 00000888: PUSH1 0x40 0000088a: MSTORE 0000088b: POP 0000088c: DUP2 0000088d: ADD 0000088e: SWAP1 0000088f: PUSH2 0x0898 00000892: SWAP2 00000893: SWAP1 00000894: PUSH2 0x15fd 00000897: JUMP 00000898: JUMPDEST 00000899: SWAP3 0000089a: POP 0000089b: JUMPDEST 0000089c: DUP3 0000089d: ISZERO 0000089e: PUSH2 0x08fb 000008a1: JUMPI 000008a2: PUSH1 0x40 000008a4: MLOAD 000008a5: PUSH4 0x2e1a7d4d 000008aa: PUSH1 0xe0 000008ac: SHL 000008ad: DUP2 000008ae: MSTORE 000008af: PUSH1 0x01 000008b1: PUSH1 0x01 000008b3: PUSH1 0xa0 000008b5: SHL 000008b6: SUB 000008b7: DUP3 000008b8: AND 000008b9: SWAP1 000008ba: PUSH4 0x2e1a7d4d 000008bf: SWAP1 000008c0: PUSH2 0x08cd 000008c3: SWAP1 000008c4: DUP7 000008c5: SWAP1 000008c6: PUSH1 0x04 000008c8: ADD 000008c9: PUSH2 0x1662 000008cc: JUMP 000008cd: JUMPDEST 000008ce: PUSH0 000008cf: PUSH1 0x40 000008d1: MLOAD 000008d2: DUP1 000008d3: DUP4 000008d4: SUB 000008d5: DUP2 000008d6: PUSH0 000008d7: DUP8 000008d8: DUP1 000008d9: EXTCODESIZE 000008da: ISZERO 000008db: DUP1 000008dc: ISZERO 000008dd: PUSH2 0x08e4 000008e0: JUMPI 000008e1: PUSH0 000008e2: DUP1 000008e3: REVERT 000008e4: JUMPDEST 000008e5: POP 000008e6: GAS 000008e7: CALL 000008e8: ISZERO 000008e9: DUP1 000008ea: ISZERO 000008eb: PUSH2 0x08f6 000008ee: JUMPI 000008ef: RETURNDATASIZE 000008f0: PUSH0 000008f1: DUP1 000008f2: RETURNDATACOPY 000008f3: RETURNDATASIZE 000008f4: PUSH0 000008f5: REVERT 000008f6: JUMPDEST 000008f7: POP 000008f8: POP 000008f9: POP 000008fa: POP 000008fb: JUMPDEST 000008fc: PUSH2 0x0905 000008ff: CALLER 00000900: SELFBALANCE 00000901: PUSH2 0x0c9e 00000904: JUMP 00000905: JUMPDEST 00000906: POP 00000907: POP 00000908: POP 00000909: JUMP 0000090a: JUMPDEST 0000090b: PUSH0 0000090c: DUP3 0000090d: DUP2 0000090e: MSTORE 0000090f: PUSH1 0x20 00000911: DUP2 00000912: SWAP1 00000913: MSTORE 00000914: PUSH1 0x40 00000916: SWAP1 00000917: KECCAK256 00000918: PUSH1 0x01 0000091a: ADD 0000091b: SLOAD 0000091c: PUSH2 0x0924 0000091f: DUP2 00000920: PUSH2 0x0582 00000923: JUMP 00000924: JUMPDEST 00000925: PUSH2 0x07a5 00000928: DUP4 00000929: DUP4 0000092a: PUSH2 0x0d17 0000092d: JUMP 0000092e: JUMPDEST 0000092f: PUSH0 00000930: PUSH2 0x0938 00000933: DUP2 00000934: PUSH2 0x0582 00000937: JUMP 00000938: JUMPDEST 00000939: PUSH2 0x0905 0000093c: DUP4 0000093d: CALLER 0000093e: ADDRESS 0000093f: DUP6 00000940: PUSH2 0x0da6 00000943: JUMP 00000944: JUMPDEST 00000945: PUSH1 0x01 00000947: PUSH1 0x01 00000949: PUSH1 0xa0 0000094b: SHL 0000094c: SUB 0000094d: DUP2 0000094e: AND 0000094f: CALLER 00000950: EQ 00000951: PUSH2 0x096d 00000954: JUMPI 00000955: PUSH1 0x40 00000957: MLOAD 00000958: PUSH4 0x334bd919 0000095d: PUSH1 0xe1 0000095f: SHL 00000960: DUP2 00000961: MSTORE 00000962: PUSH1 0x04 00000964: ADD 00000965: PUSH1 0x40 00000967: MLOAD 00000968: DUP1 00000969: SWAP2 0000096a: SUB 0000096b: SWAP1 0000096c: REVERT 0000096d: JUMPDEST 0000096e: PUSH2 0x0905 00000971: DUP3 00000972: DUP3 00000973: PUSH2 0x0e00 00000976: JUMP 00000977: JUMPDEST 00000978: PUSH0 00000979: PUSH2 0x0981 0000097c: DUP2 0000097d: PUSH2 0x0582 00000980: JUMP 00000981: JUMPDEST 00000982: DUP2 00000983: MLOAD 00000984: PUSH32 0xcad6d1a2298b8fe675ee5c5b6ae9e25f35e079d7c862db237f1f20200f9ea442 000009a5: PUSH0 000009a6: JUMPDEST 000009a7: DUP3 000009a8: DUP2 000009a9: LT 000009aa: ISZERO 000009ab: PUSH2 0x07a3 000009ae: JUMPI 000009af: PUSH2 0x09d1 000009b2: DUP3 000009b3: DUP7 000009b4: DUP4 000009b5: DUP2 000009b6: MLOAD 000009b7: DUP2 000009b8: LT 000009b9: PUSH2 0x09c4 000009bc: JUMPI 000009bd: PUSH2 0x09c4 000009c0: PUSH2 0x17fe 000009c3: JUMP 000009c4: JUMPDEST 000009c5: PUSH1 0x20 000009c7: MUL 000009c8: PUSH1 0x20 000009ca: ADD 000009cb: ADD 000009cc: MLOAD 000009cd: PUSH2 0x0d17 000009d0: JUMP 000009d1: JUMPDEST 000009d2: POP 000009d3: PUSH1 0x01 000009d5: ADD 000009d6: PUSH2 0x09a6 000009d9: JUMP 000009da: JUMPDEST 000009db: PUSH2 0x09f0 000009de: PUSH0 000009df: DUP1 000009e0: MLOAD 000009e1: PUSH1 0x20 000009e3: PUSH2 0x1863 000009e6: DUP4 000009e7: CODECOPY 000009e8: DUP2 000009e9: MLOAD 000009ea: SWAP2 000009eb: MSTORE 000009ec: PUSH2 0x0582 000009ef: JUMP 000009f0: JUMPDEST 000009f1: PUSH1 0x01 000009f3: SLOAD 000009f4: PUSH1 0x02 000009f6: SLOAD 000009f7: PUSH1 0x01 000009f9: PUSH1 0x01 000009fb: PUSH1 0xa0 000009fd: SHL 000009fe: SUB 000009ff: DUP4 00000a00: AND 00000a01: SWAP1 00000a02: SWAP2 00000a03: EQ 00000a04: SWAP1 00000a05: DUP4 00000a06: GT 00000a07: DUP1 00000a08: ISZERO 00000a09: SWAP1 00000a0a: DUP1 00000a0b: PUSH2 0x0a12 00000a0e: JUMPI 00000a0f: POP 00000a10: DUP2 00000a11: ISZERO 00000a12: JUMPDEST 00000a13: ISZERO 00000a14: PUSH2 0x0a30 00000a17: JUMPI 00000a18: PUSH1 0x40 00000a1a: MLOAD 00000a1b: PUSH4 0x25cdf54f 00000a20: PUSH1 0xe2 00000a22: SHL 00000a23: DUP2 00000a24: MSTORE 00000a25: PUSH1 0x04 00000a27: ADD 00000a28: PUSH1 0x40 00000a2a: MLOAD 00000a2b: DUP1 00000a2c: SWAP2 00000a2d: SUB 00000a2e: SWAP1 00000a2f: REVERT 00000a30: JUMPDEST 00000a31: PUSH1 0x01 00000a33: PUSH1 0x01 00000a35: PUSH1 0xa0 00000a37: SHL 00000a38: SUB 00000a39: DUP6 00000a3a: AND 00000a3b: PUSH2 0x0a57 00000a3e: JUMPI 00000a3f: PUSH1 0x40 00000a41: MLOAD 00000a42: PUSH4 0x25cdf54f 00000a47: PUSH1 0xe2 00000a49: SHL 00000a4a: DUP2 00000a4b: MSTORE 00000a4c: PUSH1 0x04 00000a4e: ADD 00000a4f: PUSH1 0x40 00000a51: MLOAD 00000a52: DUP1 00000a53: SWAP2 00000a54: SUB 00000a55: SWAP1 00000a56: REVERT 00000a57: JUMPDEST 00000a58: DUP4 00000a59: PUSH1 0x02 00000a5b: PUSH0 00000a5c: DUP3 00000a5d: DUP3 00000a5e: SLOAD 00000a5f: PUSH2 0x0a68 00000a62: SWAP2 00000a63: SWAP1 00000a64: PUSH2 0x1812 00000a67: JUMP 00000a68: JUMPDEST 00000a69: SWAP1 00000a6a: SWAP2 00000a6b: SSTORE 00000a6c: POP 00000a6d: PUSH2 0x07a3 00000a70: SWAP1 00000a71: POP 00000a72: DUP4 00000a73: DUP7 00000a74: DUP7 00000a75: PUSH2 0x0e69 00000a78: JUMP 00000a79: JUMPDEST 00000a7a: PUSH0 00000a7b: SWAP2 00000a7c: DUP3 00000a7d: MSTORE 00000a7e: PUSH1 0x20 00000a80: DUP3 00000a81: DUP2 00000a82: MSTORE 00000a83: PUSH1 0x40 00000a85: DUP1 00000a86: DUP5 00000a87: KECCAK256 00000a88: PUSH1 0x01 00000a8a: PUSH1 0x01 00000a8c: PUSH1 0xa0 00000a8e: SHL 00000a8f: SUB 00000a90: SWAP4 00000a91: SWAP1 00000a92: SWAP4 00000a93: AND 00000a94: DUP5 00000a95: MSTORE 00000a96: SWAP2 00000a97: SWAP1 00000a98: MSTORE 00000a99: SWAP1 00000a9a: KECCAK256 00000a9b: SLOAD 00000a9c: PUSH1 0xff 00000a9e: AND 00000a9f: SWAP1 00000aa0: JUMP 00000aa1: JUMPDEST 00000aa2: PUSH0 00000aa3: PUSH2 0x0aab 00000aa6: DUP2 00000aa7: PUSH2 0x0582 00000aaa: JUMP 00000aab: JUMPDEST 00000aac: DUP2 00000aad: PUSH0 00000aae: SUB 00000aaf: PUSH2 0x0b20 00000ab2: JUMPI 00000ab3: PUSH1 0x40 00000ab5: MLOAD 00000ab6: PUSH4 0x70a08231 00000abb: PUSH1 0xe0 00000abd: SHL 00000abe: DUP2 00000abf: MSTORE 00000ac0: PUSH1 0x01 00000ac2: PUSH1 0x01 00000ac4: PUSH1 0xa0 00000ac6: SHL 00000ac7: SUB 00000ac8: DUP5 00000ac9: AND 00000aca: SWAP1 00000acb: PUSH4 0x70a08231 00000ad0: SWAP1 00000ad1: PUSH2 0x0ade 00000ad4: SWAP1 00000ad5: ADDRESS 00000ad6: SWAP1 00000ad7: PUSH1 0x04 00000ad9: ADD 00000ada: PUSH2 0x17ae 00000add: JUMP 00000ade: JUMPDEST 00000adf: PUSH1 0x20 00000ae1: PUSH1 0x40 00000ae3: MLOAD 00000ae4: DUP1 00000ae5: DUP4 00000ae6: SUB 00000ae7: DUP2 00000ae8: DUP7 00000ae9: GAS 00000aea: STATICCALL 00000aeb: ISZERO 00000aec: DUP1 00000aed: ISZERO 00000aee: PUSH2 0x0af9 00000af1: JUMPI 00000af2: RETURNDATASIZE 00000af3: PUSH0 00000af4: DUP1 00000af5: RETURNDATACOPY 00000af6: RETURNDATASIZE 00000af7: PUSH0 00000af8: REVERT 00000af9: JUMPDEST 00000afa: POP 00000afb: POP 00000afc: POP 00000afd: POP 00000afe: PUSH1 0x40 00000b00: MLOAD 00000b01: RETURNDATASIZE 00000b02: PUSH1 0x1f 00000b04: NOT 00000b05: PUSH1 0x1f 00000b07: DUP3 00000b08: ADD 00000b09: AND 00000b0a: DUP3 00000b0b: ADD 00000b0c: DUP1 00000b0d: PUSH1 0x40 00000b0f: MSTORE 00000b10: POP 00000b11: DUP2 00000b12: ADD 00000b13: SWAP1 00000b14: PUSH2 0x0b1d 00000b17: SWAP2 00000b18: SWAP1 00000b19: PUSH2 0x15fd 00000b1c: JUMP 00000b1d: JUMPDEST 00000b1e: SWAP2 00000b1f: POP 00000b20: JUMPDEST 00000b21: PUSH2 0x0905 00000b24: DUP4 00000b25: CALLER 00000b26: DUP5 00000b27: PUSH2 0x0e69 00000b2a: JUMP 00000b2b: JUMPDEST 00000b2c: PUSH0 00000b2d: PUSH2 0x0b35 00000b30: DUP2 00000b31: PUSH2 0x0582 00000b34: JUMP 00000b35: JUMPDEST 00000b36: PUSH2 0x0905 00000b39: DUP4 00000b3a: DUP4 00000b3b: PUSH2 0x0e8f 00000b3e: JUMP 00000b3f: JUMPDEST 00000b40: PUSH0 00000b41: PUSH2 0x0b49 00000b44: DUP2 00000b45: PUSH2 0x0582 00000b48: JUMP 00000b49: JUMPDEST 00000b4a: PUSH0 00000b4b: DUP3 00000b4c: DUP2 00000b4d: MSTORE 00000b4e: PUSH1 0x03 00000b50: PUSH1 0x20 00000b52: MSTORE 00000b53: PUSH1 0x40 00000b55: SWAP1 00000b56: KECCAK256 00000b57: DUP1 00000b58: SLOAD 00000b59: PUSH1 0x01 00000b5b: PUSH1 0x01 00000b5d: PUSH1 0xa0 00000b5f: SHL 00000b60: SUB 00000b61: NOT 00000b62: DUP2 00000b63: AND 00000b64: SWAP1 00000b65: SWAP2 00000b66: SSTORE 00000b67: PUSH1 0x01 00000b69: PUSH1 0x01 00000b6b: PUSH1 0xa0 00000b6d: SHL 00000b6e: SUB 00000b6f: AND 00000b70: PUSH2 0x07a5 00000b73: PUSH0 00000b74: DUP1 00000b75: MLOAD 00000b76: PUSH1 0x20 00000b78: PUSH2 0x1863 00000b7b: DUP4 00000b7c: CODECOPY 00000b7d: DUP2 00000b7e: MLOAD 00000b7f: SWAP2 00000b80: MSTORE 00000b81: DUP3 00000b82: PUSH2 0x0e00 00000b85: JUMP 00000b86: JUMPDEST 00000b87: PUSH0 00000b88: PUSH2 0x0b90 00000b8b: DUP2 00000b8c: PUSH2 0x0582 00000b8f: JUMP 00000b90: JUMPDEST 00000b91: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000bb2: PUSH1 0x01 00000bb4: PUSH1 0x01 00000bb6: PUSH1 0xa0 00000bb8: SHL 00000bb9: SUB 00000bba: AND 00000bbb: PUSH4 0xd0e30db0 00000bc0: CALLVALUE 00000bc1: PUSH1 0x40 00000bc3: MLOAD 00000bc4: DUP3 00000bc5: PUSH4 0xffffffff 00000bca: AND 00000bcb: PUSH1 0xe0 00000bcd: SHL 00000bce: DUP2 00000bcf: MSTORE 00000bd0: PUSH1 0x04 00000bd2: ADD 00000bd3: PUSH0 00000bd4: PUSH1 0x40 00000bd6: MLOAD 00000bd7: DUP1 00000bd8: DUP4 00000bd9: SUB 00000bda: DUP2 00000bdb: DUP6 00000bdc: DUP9 00000bdd: DUP1 00000bde: EXTCODESIZE 00000bdf: ISZERO 00000be0: DUP1 00000be1: ISZERO 00000be2: PUSH2 0x0be9 00000be5: JUMPI 00000be6: PUSH0 00000be7: DUP1 00000be8: REVERT 00000be9: JUMPDEST 00000bea: POP 00000beb: GAS 00000bec: CALL 00000bed: ISZERO 00000bee: DUP1 00000bef: ISZERO 00000bf0: PUSH2 0x0bfb 00000bf3: JUMPI 00000bf4: RETURNDATASIZE 00000bf5: PUSH0 00000bf6: DUP1 00000bf7: RETURNDATACOPY 00000bf8: RETURNDATASIZE 00000bf9: PUSH0 00000bfa: REVERT 00000bfb: JUMPDEST 00000bfc: POP 00000bfd: POP 00000bfe: POP 00000bff: POP 00000c00: POP 00000c01: POP 00000c02: JUMP 00000c03: JUMPDEST 00000c04: PUSH0 00000c05: DUP3 00000c06: DUP2 00000c07: MSTORE 00000c08: PUSH1 0x20 00000c0a: DUP2 00000c0b: SWAP1 00000c0c: MSTORE 00000c0d: PUSH1 0x40 00000c0f: SWAP1 00000c10: KECCAK256 00000c11: PUSH1 0x01 00000c13: ADD 00000c14: SLOAD 00000c15: PUSH2 0x0c1d 00000c18: DUP2 00000c19: PUSH2 0x0582 00000c1c: JUMP 00000c1d: JUMPDEST 00000c1e: PUSH2 0x07a5 00000c21: DUP4 00000c22: DUP4 00000c23: PUSH2 0x0e00 00000c26: JUMP 00000c27: JUMPDEST 00000c28: PUSH2 0x0c31 00000c2b: DUP3 00000c2c: DUP3 00000c2d: PUSH2 0x0a79 00000c30: JUMP 00000c31: JUMPDEST 00000c32: PUSH2 0x0c52 00000c35: JUMPI 00000c36: DUP1 00000c37: DUP3 00000c38: PUSH1 0x40 00000c3a: MLOAD 00000c3b: PUSH4 0xe2517d3f 00000c40: PUSH1 0xe0 00000c42: SHL 00000c43: DUP2 00000c44: MSTORE 00000c45: PUSH1 0x04 00000c47: ADD 00000c48: PUSH2 0x05c6 00000c4b: SWAP3 00000c4c: SWAP2 00000c4d: SWAP1 00000c4e: PUSH2 0x1825 00000c51: JUMP 00000c52: JUMPDEST 00000c53: POP 00000c54: POP 00000c55: JUMP 00000c56: JUMPDEST 00000c57: PUSH0 00000c58: DUP1 00000c59: PUSH2 0x0c61 00000c5c: DUP4 00000c5d: PUSH2 0x0f22 00000c60: JUMP 00000c61: JUMPDEST 00000c62: ISZERO 00000c63: PUSH2 0x0c79 00000c66: JUMPI 00000c67: PUSH2 0x0c72 00000c6a: PUSH1 0x14 00000c6c: PUSH1 0x04 00000c6e: PUSH2 0x1404 00000c71: JUMP 00000c72: JUMPDEST 00000c73: SWAP1 00000c74: POP 00000c75: PUSH2 0x0c88 00000c78: JUMP 00000c79: JUMPDEST 00000c7a: PUSH2 0x0c85 00000c7d: PUSH1 0x14 00000c7f: PUSH1 0x02 00000c81: PUSH2 0x1404 00000c84: JUMP 00000c85: JUMPDEST 00000c86: SWAP1 00000c87: POP 00000c88: JUMPDEST 00000c89: DUP1 00000c8a: DUP4 00000c8b: ADD 00000c8c: PUSH1 0x20 00000c8e: ADD 00000c8f: MLOAD 00000c90: PUSH1 0x01 00000c92: PUSH1 0x60 00000c94: SHL 00000c95: SWAP1 00000c96: DIV 00000c97: JUMPDEST 00000c98: SWAP4 00000c99: SWAP3 00000c9a: POP 00000c9b: POP 00000c9c: POP 00000c9d: JUMP 00000c9e: JUMPDEST 00000c9f: PUSH0 00000ca0: DUP3 00000ca1: PUSH1 0x01 00000ca3: PUSH1 0x01 00000ca5: PUSH1 0xa0 00000ca7: SHL 00000ca8: SUB 00000ca9: AND 00000caa: DUP3 00000cab: PUSH1 0x40 00000cad: MLOAD 00000cae: PUSH2 0x0cb6 00000cb1: SWAP1 00000cb2: PUSH2 0x1833 00000cb5: JUMP 00000cb6: JUMPDEST 00000cb7: PUSH0 00000cb8: PUSH1 0x40 00000cba: MLOAD 00000cbb: DUP1 00000cbc: DUP4 00000cbd: SUB 00000cbe: DUP2 00000cbf: DUP6 00000cc0: DUP8 00000cc1: GAS 00000cc2: CALL 00000cc3: SWAP3 00000cc4: POP 00000cc5: POP 00000cc6: POP 00000cc7: RETURNDATASIZE 00000cc8: DUP1 00000cc9: PUSH0 00000cca: DUP2 00000ccb: EQ 00000ccc: PUSH2 0x0cf0 00000ccf: JUMPI 00000cd0: PUSH1 0x40 00000cd2: MLOAD 00000cd3: SWAP2 00000cd4: POP 00000cd5: PUSH1 0x1f 00000cd7: NOT 00000cd8: PUSH1 0x3f 00000cda: RETURNDATASIZE 00000cdb: ADD 00000cdc: AND 00000cdd: DUP3 00000cde: ADD 00000cdf: PUSH1 0x40 00000ce1: MSTORE 00000ce2: RETURNDATASIZE 00000ce3: DUP3 00000ce4: MSTORE 00000ce5: RETURNDATASIZE 00000ce6: PUSH0 00000ce7: PUSH1 0x20 00000ce9: DUP5 00000cea: ADD 00000ceb: RETURNDATACOPY 00000cec: PUSH2 0x0cf5 00000cef: JUMP 00000cf0: JUMPDEST 00000cf1: PUSH1 0x60 00000cf3: SWAP2 00000cf4: POP 00000cf5: JUMPDEST 00000cf6: POP 00000cf7: POP 00000cf8: SWAP1 00000cf9: POP 00000cfa: DUP1 00000cfb: PUSH2 0x0905 00000cfe: JUMPI 00000cff: PUSH1 0x40 00000d01: MLOAD 00000d02: PUSH4 0x0db2c7f1 00000d07: PUSH1 0xe3 00000d09: SHL 00000d0a: DUP2 00000d0b: MSTORE 00000d0c: PUSH1 0x04 00000d0e: ADD 00000d0f: PUSH1 0x40 00000d11: MLOAD 00000d12: DUP1 00000d13: SWAP2 00000d14: SUB 00000d15: SWAP1 00000d16: REVERT 00000d17: JUMPDEST 00000d18: PUSH0 00000d19: PUSH2 0x0d22 00000d1c: DUP4 00000d1d: DUP4 00000d1e: PUSH2 0x0a79 00000d21: JUMP 00000d22: JUMPDEST 00000d23: PUSH2 0x0d9f 00000d26: JUMPI 00000d27: PUSH0 00000d28: DUP4 00000d29: DUP2 00000d2a: MSTORE 00000d2b: PUSH1 0x20 00000d2d: DUP2 00000d2e: DUP2 00000d2f: MSTORE 00000d30: PUSH1 0x40 00000d32: DUP1 00000d33: DUP4 00000d34: KECCAK256 00000d35: PUSH1 0x01 00000d37: PUSH1 0x01 00000d39: PUSH1 0xa0 00000d3b: SHL 00000d3c: SUB 00000d3d: DUP7 00000d3e: AND 00000d3f: DUP5 00000d40: MSTORE 00000d41: SWAP1 00000d42: SWAP2 00000d43: MSTORE 00000d44: SWAP1 00000d45: KECCAK256 00000d46: DUP1 00000d47: SLOAD 00000d48: PUSH1 0xff 00000d4a: NOT 00000d4b: AND 00000d4c: PUSH1 0x01 00000d4e: OR 00000d4f: SWAP1 00000d50: SSTORE 00000d51: PUSH2 0x0d57 00000d54: CALLER 00000d55: SWAP1 00000d56: JUMP 00000d57: JUMPDEST 00000d58: PUSH1 0x01 00000d5a: PUSH1 0x01 00000d5c: PUSH1 0xa0 00000d5e: SHL 00000d5f: SUB 00000d60: AND 00000d61: DUP3 00000d62: PUSH1 0x01 00000d64: PUSH1 0x01 00000d66: PUSH1 0xa0 00000d68: SHL 00000d69: SUB 00000d6a: AND 00000d6b: DUP5 00000d6c: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d 00000d8d: PUSH1 0x40 00000d8f: MLOAD 00000d90: PUSH1 0x40 00000d92: MLOAD 00000d93: DUP1 00000d94: SWAP2 00000d95: SUB 00000d96: SWAP1 00000d97: LOG4 00000d98: POP 00000d99: PUSH1 0x01 00000d9b: PUSH2 0x06ca 00000d9e: JUMP 00000d9f: JUMPDEST 00000da0: POP 00000da1: PUSH0 00000da2: PUSH2 0x06ca 00000da5: JUMP 00000da6: JUMPDEST 00000da7: PUSH2 0x07a5 00000daa: DUP5 00000dab: DUP6 00000dac: PUSH1 0x01 00000dae: PUSH1 0x01 00000db0: PUSH1 0xa0 00000db2: SHL 00000db3: SUB 00000db4: AND 00000db5: PUSH4 0x23b872dd 00000dba: DUP7 00000dbb: DUP7 00000dbc: DUP7 00000dbd: PUSH1 0x40 00000dbf: MLOAD 00000dc0: PUSH1 0x24 00000dc2: ADD 00000dc3: PUSH2 0x0dce 00000dc6: SWAP4 00000dc7: SWAP3 00000dc8: SWAP2 00000dc9: SWAP1 00000dca: PUSH2 0x183a 00000dcd: JUMP 00000dce: JUMPDEST 00000dcf: PUSH1 0x40 00000dd1: MLOAD 00000dd2: PUSH1 0x20 00000dd4: DUP2 00000dd5: DUP4 00000dd6: SUB 00000dd7: SUB 00000dd8: DUP2 00000dd9: MSTORE 00000dda: SWAP1 00000ddb: PUSH1 0x40 00000ddd: MSTORE 00000dde: SWAP2 00000ddf: POP 00000de0: PUSH1 0xe0 00000de2: SHL 00000de3: PUSH1 0x20 00000de5: DUP3 00000de6: ADD 00000de7: DUP1 00000de8: MLOAD 00000de9: PUSH1 0x01 00000deb: PUSH1 0x01 00000ded: PUSH1 0xe0 00000def: SHL 00000df0: SUB 00000df1: DUP4 00000df2: DUP2 00000df3: DUP4 00000df4: AND 00000df5: OR 00000df6: DUP4 00000df7: MSTORE 00000df8: POP 00000df9: POP 00000dfa: POP 00000dfb: POP 00000dfc: PUSH2 0x0f3a 00000dff: JUMP 00000e00: JUMPDEST 00000e01: PUSH0 00000e02: PUSH2 0x0e0b 00000e05: DUP4 00000e06: DUP4 00000e07: PUSH2 0x0a79 00000e0a: JUMP 00000e0b: JUMPDEST 00000e0c: ISZERO 00000e0d: PUSH2 0x0d9f 00000e10: JUMPI 00000e11: PUSH0 00000e12: DUP4 00000e13: DUP2 00000e14: MSTORE 00000e15: PUSH1 0x20 00000e17: DUP2 00000e18: DUP2 00000e19: MSTORE 00000e1a: PUSH1 0x40 00000e1c: DUP1 00000e1d: DUP4 00000e1e: KECCAK256 00000e1f: PUSH1 0x01 00000e21: PUSH1 0x01 00000e23: PUSH1 0xa0 00000e25: SHL 00000e26: SUB 00000e27: DUP7 00000e28: AND 00000e29: DUP1 00000e2a: DUP6 00000e2b: MSTORE 00000e2c: SWAP3 00000e2d: MSTORE 00000e2e: DUP1 00000e2f: DUP4 00000e30: KECCAK256 00000e31: DUP1 00000e32: SLOAD 00000e33: PUSH1 0xff 00000e35: NOT 00000e36: AND 00000e37: SWAP1 00000e38: SSTORE 00000e39: MLOAD 00000e3a: CALLER 00000e3b: SWAP3 00000e3c: DUP7 00000e3d: SWAP2 00000e3e: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b 00000e5f: SWAP2 00000e60: SWAP1 00000e61: LOG4 00000e62: POP 00000e63: PUSH1 0x01 00000e65: PUSH2 0x06ca 00000e68: JUMP 00000e69: JUMPDEST 00000e6a: PUSH2 0x0905 00000e6d: DUP4 00000e6e: DUP5 00000e6f: PUSH1 0x01 00000e71: PUSH1 0x01 00000e73: PUSH1 0xa0 00000e75: SHL 00000e76: SUB 00000e77: AND 00000e78: PUSH4 0xa9059cbb 00000e7d: DUP6 00000e7e: DUP6 00000e7f: PUSH1 0x40 00000e81: MLOAD 00000e82: PUSH1 0x24 00000e84: ADD 00000e85: PUSH2 0x0dce 00000e88: SWAP3 00000e89: SWAP2 00000e8a: SWAP1 00000e8b: PUSH2 0x1825 00000e8e: JUMP 00000e8f: JUMPDEST 00000e90: PUSH0 00000e91: DUP3 00000e92: DUP2 00000e93: MSTORE 00000e94: PUSH1 0x03 00000e96: PUSH1 0x20 00000e98: MSTORE 00000e99: PUSH1 0x40 00000e9b: SWAP1 00000e9c: KECCAK256 00000e9d: SLOAD 00000e9e: PUSH1 0x01 00000ea0: PUSH1 0x01 00000ea2: PUSH1 0xa0 00000ea4: SHL 00000ea5: SUB 00000ea6: AND 00000ea7: PUSH0 00000ea8: DUP1 00000ea9: MLOAD 00000eaa: PUSH1 0x20 00000eac: PUSH2 0x1863 00000eaf: DUP4 00000eb0: CODECOPY 00000eb1: DUP2 00000eb2: MLOAD 00000eb3: SWAP2 00000eb4: MSTORE 00000eb5: DUP2 00000eb6: ISZERO 00000eb7: PUSH2 0x0ec6 00000eba: JUMPI 00000ebb: PUSH2 0x0ec4 00000ebe: DUP2 00000ebf: DUP4 00000ec0: PUSH2 0x0e00 00000ec3: JUMP 00000ec4: JUMPDEST 00000ec5: POP 00000ec6: JUMPDEST 00000ec7: DUP3 00000ec8: PUSH1 0x01 00000eca: PUSH1 0x01 00000ecc: PUSH1 0xa0 00000ece: SHL 00000ecf: SUB 00000ed0: AND 00000ed1: EXTCODESIZE 00000ed2: PUSH0 00000ed3: SUB 00000ed4: PUSH2 0x0ef2 00000ed7: JUMPI 00000ed8: DUP3 00000ed9: PUSH1 0x40 00000edb: MLOAD 00000edc: PUSH4 0x3283c86d 00000ee1: PUSH1 0xe2 00000ee3: SHL 00000ee4: DUP2 00000ee5: MSTORE 00000ee6: PUSH1 0x04 00000ee8: ADD 00000ee9: PUSH2 0x05c6 00000eec: SWAP2 00000eed: SWAP1 00000eee: PUSH2 0x17ae 00000ef1: JUMP 00000ef2: JUMPDEST 00000ef3: PUSH0 00000ef4: DUP5 00000ef5: DUP2 00000ef6: MSTORE 00000ef7: PUSH1 0x03 00000ef9: PUSH1 0x20 00000efb: MSTORE 00000efc: PUSH1 0x40 00000efe: SWAP1 00000eff: KECCAK256 00000f00: DUP1 00000f01: SLOAD 00000f02: PUSH1 0x01 00000f04: PUSH1 0x01 00000f06: PUSH1 0xa0 00000f08: SHL 00000f09: SUB 00000f0a: NOT 00000f0b: AND 00000f0c: PUSH1 0x01 00000f0e: PUSH1 0x01 00000f10: PUSH1 0xa0 00000f12: SHL 00000f13: SUB 00000f14: DUP6 00000f15: AND 00000f16: OR 00000f17: SWAP1 00000f18: SSTORE 00000f19: PUSH2 0x07a3 00000f1c: DUP2 00000f1d: DUP5 00000f1e: PUSH2 0x0d17 00000f21: JUMP 00000f22: JUMPDEST 00000f23: PUSH0 00000f24: PUSH2 0x0f2f 00000f27: PUSH1 0x14 00000f29: PUSH1 0x05 00000f2b: PUSH2 0x1404 00000f2e: JUMP 00000f2f: JUMPDEST 00000f30: DUP3 00000f31: MLOAD 00000f32: LT 00000f33: ISZERO 00000f34: SWAP1 00000f35: POP 00000f36: SWAP2 00000f37: SWAP1 00000f38: POP 00000f39: JUMP 00000f3a: JUMPDEST 00000f3b: PUSH0 00000f3c: DUP1 00000f3d: PUSH1 0x20 00000f3f: PUSH0 00000f40: DUP5 00000f41: MLOAD 00000f42: PUSH1 0x20 00000f44: DUP7 00000f45: ADD 00000f46: PUSH0 00000f47: DUP9 00000f48: GAS 00000f49: CALL 00000f4a: DUP1 00000f4b: PUSH2 0x0f59 00000f4e: JUMPI 00000f4f: PUSH1 0x40 00000f51: MLOAD 00000f52: RETURNDATASIZE 00000f53: PUSH0 00000f54: DUP3 00000f55: RETURNDATACOPY 00000f56: RETURNDATASIZE 00000f57: DUP2 00000f58: REVERT 00000f59: JUMPDEST 00000f5a: POP 00000f5b: POP 00000f5c: PUSH0 00000f5d: MLOAD 00000f5e: RETURNDATASIZE 00000f5f: SWAP2 00000f60: POP 00000f61: DUP2 00000f62: ISZERO 00000f63: PUSH2 0x0f70 00000f66: JUMPI 00000f67: DUP1 00000f68: PUSH1 0x01 00000f6a: EQ 00000f6b: ISZERO 00000f6c: PUSH2 0x0f7d 00000f6f: JUMP 00000f70: JUMPDEST 00000f71: PUSH1 0x01 00000f73: PUSH1 0x01 00000f75: PUSH1 0xa0 00000f77: SHL 00000f78: SUB 00000f79: DUP5 00000f7a: AND 00000f7b: EXTCODESIZE 00000f7c: ISZERO 00000f7d: JUMPDEST 00000f7e: ISZERO 00000f7f: PUSH2 0x07a5 00000f82: JUMPI 00000f83: DUP4 00000f84: PUSH1 0x40 00000f86: MLOAD 00000f87: PUSH4 0x5274afe7 00000f8c: PUSH1 0xe0 00000f8e: SHL 00000f8f: DUP2 00000f90: MSTORE 00000f91: PUSH1 0x04 00000f93: ADD 00000f94: PUSH2 0x05c6 00000f97: SWAP2 00000f98: SWAP1 00000f99: PUSH2 0x17ae 00000f9c: JUMP 00000f9d: JUMPDEST 00000f9e: PUSH0 00000f9f: DUP1 00000fa0: DUP6 00000fa1: DUP6 00000fa2: GT 00000fa3: ISZERO 00000fa4: PUSH2 0x0fae 00000fa7: JUMPI 00000fa8: PUSH2 0x0fae 00000fab: PUSH0 00000fac: DUP1 00000fad: REVERT 00000fae: JUMPDEST 00000faf: DUP4 00000fb0: DUP7 00000fb1: GT 00000fb2: ISZERO 00000fb3: PUSH2 0x0fbd 00000fb6: JUMPI 00000fb7: PUSH2 0x0fbd 00000fba: PUSH0 00000fbb: DUP1 00000fbc: REVERT 00000fbd: JUMPDEST 00000fbe: POP 00000fbf: POP 00000fc0: DUP3 00000fc1: ADD 00000fc2: SWAP4 00000fc3: SWAP2 00000fc4: SWAP1 00000fc5: SWAP3 00000fc6: SUB 00000fc7: SWAP2 00000fc8: POP 00000fc9: JUMP 00000fca: JUMPDEST 00000fcb: DUP1 00000fcc: JUMPDEST 00000fcd: DUP2 00000fce: EQ 00000fcf: PUSH2 0x058c 00000fd2: JUMPI 00000fd3: PUSH0 00000fd4: DUP1 00000fd5: REVERT 00000fd6: JUMPDEST 00000fd7: DUP1 00000fd8: CALLDATALOAD 00000fd9: PUSH2 0x06ca 00000fdc: DUP2 00000fdd: PUSH2 0x0fca 00000fe0: JUMP 00000fe1: JUMPDEST 00000fe2: PUSH4 0x4e487b71 00000fe7: PUSH1 0xe0 00000fe9: SHL 00000fea: PUSH0 00000feb: MSTORE 00000fec: PUSH1 0x41 00000fee: PUSH1 0x04 00000ff0: MSTORE 00000ff1: PUSH1 0x24 00000ff3: PUSH0 00000ff4: REVERT 00000ff5: JUMPDEST 00000ff6: PUSH1 0x1f 00000ff8: NOT 00000ff9: PUSH1 0x1f 00000ffb: DUP4 00000ffc: ADD 00000ffd: AND 00000ffe: DUP2 00000fff: ADD 00001000: DUP2 00001001: DUP2 00001002: LT 00001003: PUSH8 0xffffffffffffffff 0000100c: DUP3 0000100d: GT 0000100e: OR 0000100f: ISZERO 00001010: PUSH2 0x101b 00001013: JUMPI 00001014: PUSH2 0x101b 00001017: PUSH2 0x0fe1 0000101a: JUMP 0000101b: JUMPDEST 0000101c: PUSH1 0x40 0000101e: MSTORE 0000101f: POP 00001020: POP 00001021: JUMP 00001022: JUMPDEST 00001023: PUSH0 00001024: PUSH2 0x102c 00001027: PUSH1 0x40 00001029: MLOAD 0000102a: SWAP1 0000102b: JUMP 0000102c: JUMPDEST 0000102d: SWAP1 0000102e: POP 0000102f: PUSH2 0x05cf 00001032: DUP3 00001033: DUP3 00001034: PUSH2 0x0ff5 00001037: JUMP 00001038: JUMPDEST 00001039: PUSH0 0000103a: PUSH8 0xffffffffffffffff 00001043: DUP3 00001044: GT 00001045: ISZERO 00001046: PUSH2 0x1051 00001049: JUMPI 0000104a: PUSH2 0x1051 0000104d: PUSH2 0x0fe1 00001050: JUMP 00001051: JUMPDEST 00001052: PUSH1 0x1f 00001054: NOT 00001055: PUSH1 0x1f 00001057: DUP4 00001058: ADD 00001059: AND 0000105a: PUSH1 0x20 0000105c: ADD 0000105d: SWAP3 0000105e: SWAP2 0000105f: POP 00001060: POP 00001061: JUMP 00001062: JUMPDEST 00001063: DUP3 00001064: DUP2 00001065: DUP4 00001066: CALLDATACOPY 00001067: POP 00001068: PUSH0 00001069: SWAP2 0000106a: ADD 0000106b: MSTORE 0000106c: JUMP 0000106d: JUMPDEST 0000106e: PUSH0 0000106f: PUSH2 0x107f 00001072: PUSH2 0x107a 00001075: DUP5 00001076: PUSH2 0x1038 00001079: JUMP 0000107a: JUMPDEST 0000107b: PUSH2 0x1022 0000107e: JUMP 0000107f: JUMPDEST 00001080: SWAP1 00001081: POP 00001082: DUP3 00001083: DUP2 00001084: MSTORE 00001085: PUSH1 0x20 00001087: DUP2 00001088: ADD 00001089: DUP5 0000108a: DUP5 0000108b: DUP5 0000108c: ADD 0000108d: GT 0000108e: ISZERO 0000108f: PUSH2 0x1099 00001092: JUMPI 00001093: PUSH2 0x1099 00001096: PUSH0 00001097: DUP1 00001098: REVERT 00001099: JUMPDEST 0000109a: PUSH2 0x10a4 0000109d: DUP5 0000109e: DUP3 0000109f: DUP6 000010a0: PUSH2 0x1062 000010a3: JUMP 000010a4: JUMPDEST 000010a5: POP 000010a6: SWAP4 000010a7: SWAP3 000010a8: POP 000010a9: POP 000010aa: POP 000010ab: JUMP 000010ac: JUMPDEST 000010ad: PUSH0 000010ae: DUP3 000010af: PUSH1 0x1f 000010b1: DUP4 000010b2: ADD 000010b3: SLT 000010b4: PUSH2 0x10be 000010b7: JUMPI 000010b8: PUSH2 0x10be 000010bb: PUSH0 000010bc: DUP1 000010bd: REVERT 000010be: JUMPDEST 000010bf: DUP2 000010c0: CALLDATALOAD 000010c1: PUSH2 0x10ce 000010c4: DUP5 000010c5: DUP3 000010c6: PUSH1 0x20 000010c8: DUP7 000010c9: ADD 000010ca: PUSH2 0x106d 000010cd: JUMP 000010ce: JUMPDEST 000010cf: SWAP5 000010d0: SWAP4 000010d1: POP 000010d2: POP 000010d3: POP 000010d4: POP 000010d5: JUMP 000010d6: JUMPDEST 000010d7: PUSH0 000010d8: PUSH8 0xffffffffffffffff 000010e1: DUP3 000010e2: GT 000010e3: ISZERO 000010e4: PUSH2 0x10ef 000010e7: JUMPI 000010e8: PUSH2 0x10ef 000010eb: PUSH2 0x0fe1 000010ee: JUMP 000010ef: JUMPDEST 000010f0: POP 000010f1: PUSH1 0x20 000010f3: SWAP1 000010f4: DUP2 000010f5: MUL 000010f6: ADD 000010f7: SWAP1 000010f8: JUMP 000010f9: JUMPDEST 000010fa: PUSH0 000010fb: PUSH1 0x01 000010fd: PUSH1 0x01 000010ff: PUSH1 0xa0 00001101: SHL 00001102: SUB 00001103: DUP3 00001104: AND 00001105: PUSH2 0x06ca 00001108: JUMP 00001109: JUMPDEST 0000110a: PUSH2 0x0fcc 0000110d: DUP2 0000110e: PUSH2 0x10f9 00001111: JUMP 00001112: JUMPDEST 00001113: DUP1 00001114: CALLDATALOAD 00001115: PUSH2 0x06ca 00001118: DUP2 00001119: PUSH2 0x1109 0000111c: JUMP 0000111d: JUMPDEST 0000111e: PUSH0 0000111f: PUSH2 0x112a 00001122: PUSH2 0x107a 00001125: DUP5 00001126: PUSH2 0x10d6 00001129: JUMP 0000112a: JUMPDEST 0000112b: DUP4 0000112c: DUP2 0000112d: MSTORE 0000112e: SWAP1 0000112f: POP 00001130: PUSH1 0x20 00001132: DUP1 00001133: DUP3 00001134: ADD 00001135: SWAP1 00001136: DUP5 00001137: MUL 00001138: DUP4 00001139: ADD 0000113a: DUP6 0000113b: DUP2 0000113c: GT 0000113d: ISZERO 0000113e: PUSH2 0x1148 00001141: JUMPI 00001142: PUSH2 0x1148 00001145: PUSH0 00001146: DUP1 00001147: REVERT 00001148: JUMPDEST 00001149: DUP4 0000114a: JUMPDEST 0000114b: DUP2 0000114c: DUP2 0000114d: LT 0000114e: ISZERO 0000114f: PUSH2 0x116c 00001152: JUMPI 00001153: DUP1 00001154: PUSH2 0x115d 00001157: DUP9 00001158: DUP3 00001159: PUSH2 0x1112 0000115c: JUMP 0000115d: JUMPDEST 0000115e: DUP5 0000115f: MSTORE 00001160: POP 00001161: PUSH1 0x20 00001163: SWAP3 00001164: DUP4 00001165: ADD 00001166: SWAP3 00001167: ADD 00001168: PUSH2 0x114a 0000116b: JUMP 0000116c: JUMPDEST 0000116d: POP 0000116e: POP 0000116f: POP 00001170: SWAP4 00001171: SWAP3 00001172: POP 00001173: POP 00001174: POP 00001175: JUMP 00001176: JUMPDEST 00001177: PUSH0 00001178: DUP3 00001179: PUSH1 0x1f 0000117b: DUP4 0000117c: ADD 0000117d: SLT 0000117e: PUSH2 0x1188 00001181: JUMPI 00001182: PUSH2 0x1188 00001185: PUSH0 00001186: DUP1 00001187: REVERT 00001188: JUMPDEST 00001189: DUP2 0000118a: CALLDATALOAD 0000118b: PUSH2 0x10ce 0000118e: DUP5 0000118f: DUP3 00001190: PUSH1 0x20 00001192: DUP7 00001193: ADD 00001194: PUSH2 0x111d 00001197: JUMP 00001198: JUMPDEST 00001199: PUSH1 0xff 0000119b: DUP2 0000119c: AND 0000119d: PUSH2 0x0fcc 000011a0: JUMP 000011a1: JUMPDEST 000011a2: DUP1 000011a3: CALLDATALOAD 000011a4: PUSH2 0x06ca 000011a7: DUP2 000011a8: PUSH2 0x1198 000011ab: JUMP 000011ac: JUMPDEST 000011ad: DUP1 000011ae: ISZERO 000011af: ISZERO 000011b0: PUSH2 0x0fcc 000011b3: JUMP 000011b4: JUMPDEST 000011b5: DUP1 000011b6: CALLDATALOAD 000011b7: PUSH2 0x06ca 000011ba: DUP2 000011bb: PUSH2 0x11ac 000011be: JUMP 000011bf: JUMPDEST 000011c0: PUSH0 000011c1: PUSH2 0x0140 000011c4: DUP3 000011c5: DUP5 000011c6: SUB 000011c7: SLT 000011c8: ISZERO 000011c9: PUSH2 0x11d3 000011cc: JUMPI 000011cd: PUSH2 0x11d3 000011d0: PUSH0 000011d1: DUP1 000011d2: REVERT 000011d3: JUMPDEST 000011d4: PUSH2 0x11de 000011d7: PUSH2 0x0140 000011da: PUSH2 0x1022 000011dd: JUMP 000011de: JUMPDEST 000011df: SWAP1 000011e0: POP 000011e1: PUSH0 000011e2: PUSH2 0x11eb 000011e5: DUP5 000011e6: DUP5 000011e7: PUSH2 0x0fd6 000011ea: JUMP 000011eb: JUMPDEST 000011ec: DUP3 000011ed: MSTORE 000011ee: POP 000011ef: PUSH1 0x20 000011f1: PUSH2 0x11fc 000011f4: DUP5 000011f5: DUP5 000011f6: DUP4 000011f7: ADD 000011f8: PUSH2 0x0fd6 000011fb: JUMP 000011fc: JUMPDEST 000011fd: PUSH1 0x20 000011ff: DUP4 00001200: ADD 00001201: MSTORE 00001202: POP 00001203: PUSH1 0x40 00001205: PUSH2 0x1210 00001208: DUP5 00001209: DUP3 0000120a: DUP6 0000120b: ADD 0000120c: PUSH2 0x0fd6 0000120f: JUMP 00001210: JUMPDEST 00001211: PUSH1 0x40 00001213: DUP4 00001214: ADD 00001215: MSTORE 00001216: POP 00001217: PUSH1 0x60 00001219: PUSH2 0x1224 0000121c: DUP5 0000121d: DUP3 0000121e: DUP6 0000121f: ADD 00001220: PUSH2 0x0fd6 00001223: JUMP 00001224: JUMPDEST 00001225: PUSH1 0x60 00001227: DUP4 00001228: ADD 00001229: MSTORE 0000122a: POP 0000122b: PUSH1 0x80 0000122d: PUSH2 0x1238 00001230: DUP5 00001231: DUP3 00001232: DUP6 00001233: ADD 00001234: PUSH2 0x0fd6 00001237: JUMP 00001238: JUMPDEST 00001239: PUSH1 0x80 0000123b: DUP4 0000123c: ADD 0000123d: MSTORE 0000123e: POP 0000123f: PUSH1 0xa0 00001241: PUSH2 0x124c 00001244: DUP5 00001245: DUP3 00001246: DUP6 00001247: ADD 00001248: PUSH2 0x0fd6 0000124b: JUMP 0000124c: JUMPDEST 0000124d: PUSH1 0xa0 0000124f: DUP4 00001250: ADD 00001251: MSTORE 00001252: POP 00001253: PUSH1 0xc0 00001255: PUSH2 0x1260 00001258: DUP5 00001259: DUP3 0000125a: DUP6 0000125b: ADD 0000125c: PUSH2 0x0fd6 0000125f: JUMP 00001260: JUMPDEST 00001261: PUSH1 0xc0 00001263: DUP4 00001264: ADD 00001265: MSTORE 00001266: POP 00001267: PUSH1 0xe0 00001269: PUSH2 0x1274 0000126c: DUP5 0000126d: DUP3 0000126e: DUP6 0000126f: ADD 00001270: PUSH2 0x11a1 00001273: JUMP 00001274: JUMPDEST 00001275: PUSH1 0xe0 00001277: DUP4 00001278: ADD 00001279: MSTORE 0000127a: POP 0000127b: PUSH2 0x0100 0000127e: PUSH2 0x1289 00001281: DUP5 00001282: DUP3 00001283: DUP6 00001284: ADD 00001285: PUSH2 0x11a1 00001288: JUMP 00001289: JUMPDEST 0000128a: PUSH2 0x0100 0000128d: DUP4 0000128e: ADD 0000128f: MSTORE 00001290: POP 00001291: PUSH2 0x0120 00001294: PUSH2 0x129f 00001297: DUP5 00001298: DUP3 00001299: DUP6 0000129a: ADD 0000129b: PUSH2 0x11b4 0000129e: JUMP 0000129f: JUMPDEST 000012a0: PUSH2 0x0120 000012a3: DUP4 000012a4: ADD 000012a5: MSTORE 000012a6: POP 000012a7: SWAP3 000012a8: SWAP2 000012a9: POP 000012aa: POP 000012ab: JUMP 000012ac: JUMPDEST 000012ad: PUSH0 000012ae: PUSH1 0x60 000012b0: DUP3 000012b1: DUP5 000012b2: SUB 000012b3: SLT 000012b4: ISZERO 000012b5: PUSH2 0x12bf 000012b8: JUMPI 000012b9: PUSH2 0x12bf 000012bc: PUSH0 000012bd: DUP1 000012be: REVERT 000012bf: JUMPDEST 000012c0: PUSH2 0x12c9 000012c3: PUSH1 0x60 000012c5: PUSH2 0x1022 000012c8: JUMP 000012c9: JUMPDEST 000012ca: SWAP1 000012cb: POP 000012cc: PUSH0 000012cd: PUSH2 0x12d6 000012d0: DUP5 000012d1: DUP5 000012d2: PUSH2 0x0fd6 000012d5: JUMP 000012d6: JUMPDEST 000012d7: DUP3 000012d8: MSTORE 000012d9: POP 000012da: PUSH1 0x20 000012dc: PUSH2 0x12e7 000012df: DUP5 000012e0: DUP5 000012e1: DUP4 000012e2: ADD 000012e3: PUSH2 0x0fd6 000012e6: JUMP 000012e7: JUMPDEST 000012e8: PUSH1 0x20 000012ea: DUP4 000012eb: ADD 000012ec: MSTORE 000012ed: POP 000012ee: PUSH1 0x40 000012f0: PUSH2 0x12fb 000012f3: DUP5 000012f4: DUP3 000012f5: DUP6 000012f6: ADD 000012f7: PUSH2 0x11b4 000012fa: JUMP 000012fb: JUMPDEST 000012fc: PUSH1 0x40 000012fe: DUP4 000012ff: ADD 00001300: MSTORE 00001301: POP 00001302: SWAP3 00001303: SWAP2 00001304: POP 00001305: POP 00001306: JUMP 00001307: JUMPDEST 00001308: PUSH0 00001309: DUP1 0000130a: PUSH0 0000130b: DUP1 0000130c: PUSH0 0000130d: DUP1 0000130e: PUSH2 0x0220 00001311: DUP8 00001312: DUP10 00001313: SUB 00001314: SLT 00001315: ISZERO 00001316: PUSH2 0x1320 00001319: JUMPI 0000131a: PUSH2 0x1320 0000131d: PUSH0 0000131e: DUP1 0000131f: REVERT 00001320: JUMPDEST 00001321: PUSH0 00001322: PUSH2 0x132b 00001325: DUP10 00001326: DUP10 00001327: PUSH2 0x0fd6 0000132a: JUMP 0000132b: JUMPDEST 0000132c: SWAP7 0000132d: POP 0000132e: POP 0000132f: PUSH1 0x20 00001331: DUP8 00001332: ADD 00001333: CALLDATALOAD 00001334: PUSH8 0xffffffffffffffff 0000133d: DUP2 0000133e: GT 0000133f: ISZERO 00001340: PUSH2 0x134a 00001343: JUMPI 00001344: PUSH2 0x134a 00001347: PUSH0 00001348: DUP1 00001349: REVERT 0000134a: JUMPDEST 0000134b: PUSH2 0x1356 0000134e: DUP10 0000134f: DUP3 00001350: DUP11 00001351: ADD 00001352: PUSH2 0x10ac 00001355: JUMP 00001356: JUMPDEST 00001357: SWAP6 00001358: POP 00001359: POP 0000135a: PUSH1 0x40 0000135c: DUP8 0000135d: ADD 0000135e: CALLDATALOAD 0000135f: PUSH8 0xffffffffffffffff 00001368: DUP2 00001369: GT 0000136a: ISZERO 0000136b: PUSH2 0x1375 0000136e: JUMPI 0000136f: PUSH2 0x1375 00001372: PUSH0 00001373: DUP1 00001374: REVERT 00001375: JUMPDEST 00001376: PUSH2 0x1381 00001379: DUP10 0000137a: DUP3 0000137b: DUP11 0000137c: ADD 0000137d: PUSH2 0x1176 00001380: JUMP 00001381: JUMPDEST 00001382: SWAP5 00001383: POP 00001384: POP 00001385: PUSH1 0x60 00001387: PUSH2 0x1392 0000138a: DUP10 0000138b: DUP3 0000138c: DUP11 0000138d: ADD 0000138e: PUSH2 0x11bf 00001391: JUMP 00001392: JUMPDEST 00001393: SWAP4 00001394: POP 00001395: POP 00001396: PUSH2 0x01a0 00001399: PUSH2 0x13a4 0000139c: DUP10 0000139d: DUP3 0000139e: DUP11 0000139f: ADD 000013a0: PUSH2 0x12ac 000013a3: JUMP 000013a4: JUMPDEST 000013a5: SWAP3 000013a6: POP 000013a7: POP 000013a8: PUSH2 0x0200 000013ab: DUP8 000013ac: ADD 000013ad: CALLDATALOAD 000013ae: PUSH8 0xffffffffffffffff 000013b7: DUP2 000013b8: GT 000013b9: ISZERO 000013ba: PUSH2 0x13c4 000013bd: JUMPI 000013be: PUSH2 0x13c4 000013c1: PUSH0 000013c2: DUP1 000013c3: REVERT 000013c4: JUMPDEST 000013c5: PUSH2 0x13d0 000013c8: DUP10 000013c9: DUP3 000013ca: DUP11 000013cb: ADD 000013cc: PUSH2 0x10ac 000013cf: JUMP 000013d0: JUMPDEST 000013d1: SWAP2 000013d2: POP 000013d3: POP 000013d4: SWAP3 000013d5: SWAP6 000013d6: POP 000013d7: SWAP3 000013d8: SWAP6 000013d9: POP 000013da: SWAP3 000013db: SWAP6 000013dc: JUMP 000013dd: JUMPDEST 000013de: PUSH4 0x4e487b71 000013e3: PUSH1 0xe0 000013e5: SHL 000013e6: PUSH0 000013e7: MSTORE 000013e8: PUSH1 0x11 000013ea: PUSH1 0x04 000013ec: MSTORE 000013ed: PUSH1 0x24 000013ef: PUSH0 000013f0: REVERT 000013f1: JUMPDEST 000013f2: DUP1 000013f3: DUP3 000013f4: ADD 000013f5: DUP1 000013f6: DUP3 000013f7: GT 000013f8: ISZERO 000013f9: PUSH2 0x06ca 000013fc: JUMPI 000013fd: PUSH2 0x06ca 00001400: PUSH2 0x13dd 00001403: JUMP 00001404: JUMPDEST 00001405: DUP2 00001406: DUP2 00001407: MUL 00001408: DUP1 00001409: DUP3 0000140a: ISZERO 0000140b: DUP4 0000140c: DUP3 0000140d: DIV 0000140e: DUP6 0000140f: EQ 00001410: OR 00001411: PUSH2 0x141c 00001414: JUMPI 00001415: PUSH2 0x141c 00001418: PUSH2 0x13dd 0000141b: JUMP 0000141c: JUMPDEST 0000141d: POP 0000141e: SWAP3 0000141f: SWAP2 00001420: POP 00001421: POP 00001422: JUMP 00001423: JUMPDEST 00001424: DUP3 00001425: DUP2 00001426: DUP4 00001427: MCOPY 00001428: POP 00001429: PUSH0 0000142a: SWAP2 0000142b: ADD 0000142c: MSTORE 0000142d: JUMP 0000142e: JUMPDEST 0000142f: PUSH0 00001430: PUSH2 0x1437 00001433: DUP3 00001434: MLOAD 00001435: SWAP1 00001436: JUMP 00001437: JUMPDEST 00001438: DUP1 00001439: DUP5 0000143a: MSTORE 0000143b: PUSH1 0x20 0000143d: DUP5 0000143e: ADD 0000143f: SWAP4 00001440: POP 00001441: PUSH2 0x144e 00001444: DUP2 00001445: DUP6 00001446: PUSH1 0x20 00001448: DUP7 00001449: ADD 0000144a: PUSH2 0x1423 0000144d: JUMP 0000144e: JUMPDEST 0000144f: PUSH1 0x1f 00001451: ADD 00001452: PUSH1 0x1f 00001454: NOT 00001455: AND 00001456: SWAP3 00001457: SWAP1 00001458: SWAP3 00001459: ADD 0000145a: SWAP3 0000145b: SWAP2 0000145c: POP 0000145d: POP 0000145e: JUMP 0000145f: JUMPDEST 00001460: PUSH2 0x1468 00001463: DUP2 00001464: PUSH2 0x10f9 00001467: JUMP 00001468: JUMPDEST 00001469: DUP3 0000146a: MSTORE 0000146b: POP 0000146c: POP 0000146d: JUMP 0000146e: JUMPDEST 0000146f: PUSH0 00001470: PUSH2 0x1479 00001473: DUP4 00001474: DUP4 00001475: PUSH2 0x145f 00001478: JUMP 00001479: JUMPDEST 0000147a: POP 0000147b: POP 0000147c: PUSH1 0x20 0000147e: ADD 0000147f: SWAP1 00001480: JUMP 00001481: JUMPDEST 00001482: PUSH0 00001483: PUSH2 0x148a 00001486: DUP3 00001487: MLOAD 00001488: SWAP1 00001489: JUMP 0000148a: JUMPDEST 0000148b: DUP1 0000148c: DUP5 0000148d: MSTORE 0000148e: PUSH1 0x20 00001490: SWAP4 00001491: DUP5 00001492: ADD 00001493: SWAP4 00001494: DUP4 00001495: ADD 00001496: DUP1 00001497: PUSH0 00001498: JUMPDEST 00001499: DUP4 0000149a: DUP2 0000149b: LT 0000149c: ISZERO 0000149d: PUSH2 0x14bd 000014a0: JUMPI 000014a1: DUP2 000014a2: MLOAD 000014a3: PUSH2 0x14ac 000014a6: DUP9 000014a7: DUP3 000014a8: PUSH2 0x146e 000014ab: JUMP 000014ac: JUMPDEST 000014ad: SWAP8 000014ae: POP 000014af: PUSH1 0x20 000014b1: DUP4 000014b2: ADD 000014b3: SWAP3 000014b4: POP 000014b5: POP 000014b6: PUSH1 0x01 000014b8: ADD 000014b9: PUSH2 0x1498 000014bc: JUMP 000014bd: JUMPDEST 000014be: POP 000014bf: SWAP5 000014c0: SWAP6 000014c1: SWAP5 000014c2: POP 000014c3: POP 000014c4: POP 000014c5: POP 000014c6: POP 000014c7: JUMP 000014c8: JUMPDEST 000014c9: DUP1 000014ca: PUSH2 0x1468 000014cd: JUMP 000014ce: JUMPDEST 000014cf: PUSH1 0xff 000014d1: DUP2 000014d2: AND 000014d3: PUSH2 0x1468 000014d6: JUMP 000014d7: JUMPDEST 000014d8: DUP1 000014d9: ISZERO 000014da: ISZERO 000014db: PUSH2 0x1468 000014de: JUMP 000014df: JUMPDEST 000014e0: DUP1 000014e1: MLOAD 000014e2: PUSH2 0x0140 000014e5: DUP4 000014e6: ADD 000014e7: SWAP1 000014e8: PUSH2 0x14f1 000014eb: DUP5 000014ec: DUP3 000014ed: PUSH2 0x14c8 000014f0: JUMP 000014f1: JUMPDEST 000014f2: POP 000014f3: PUSH1 0x20 000014f5: DUP3 000014f6: ADD 000014f7: MLOAD 000014f8: PUSH2 0x1504 000014fb: PUSH1 0x20 000014fd: DUP6 000014fe: ADD 000014ff: DUP3 00001500: PUSH2 0x14c8 00001503: JUMP 00001504: JUMPDEST 00001505: POP 00001506: PUSH1 0x40 00001508: DUP3 00001509: ADD 0000150a: MLOAD 0000150b: PUSH2 0x1517 0000150e: PUSH1 0x40 00001510: DUP6 00001511: ADD 00001512: DUP3 00001513: PUSH2 0x14c8 00001516: JUMP 00001517: JUMPDEST 00001518: POP 00001519: PUSH1 0x60 0000151b: DUP3 0000151c: ADD 0000151d: MLOAD 0000151e: PUSH2 0x152a 00001521: PUSH1 0x60 00001523: DUP6 00001524: ADD 00001525: DUP3 00001526: PUSH2 0x14c8 00001529: JUMP 0000152a: JUMPDEST 0000152b: POP 0000152c: PUSH1 0x80 0000152e: DUP3 0000152f: ADD 00001530: MLOAD 00001531: PUSH2 0x153d 00001534: PUSH1 0x80 00001536: DUP6 00001537: ADD 00001538: DUP3 00001539: PUSH2 0x14c8 0000153c: JUMP 0000153d: JUMPDEST 0000153e: POP 0000153f: PUSH1 0xa0 00001541: DUP3 00001542: ADD 00001543: MLOAD 00001544: PUSH2 0x1550 00001547: PUSH1 0xa0 00001549: DUP6 0000154a: ADD 0000154b: DUP3 0000154c: PUSH2 0x14c8 0000154f: JUMP 00001550: JUMPDEST 00001551: POP 00001552: PUSH1 0xc0 00001554: DUP3 00001555: ADD 00001556: MLOAD 00001557: PUSH2 0x1563 0000155a: PUSH1 0xc0 0000155c: DUP6 0000155d: ADD 0000155e: DUP3 0000155f: PUSH2 0x14c8 00001562: JUMP 00001563: JUMPDEST 00001564: POP 00001565: PUSH1 0xe0 00001567: DUP3 00001568: ADD 00001569: MLOAD 0000156a: PUSH2 0x1576 0000156d: PUSH1 0xe0 0000156f: DUP6 00001570: ADD 00001571: DUP3 00001572: PUSH2 0x14ce 00001575: JUMP 00001576: JUMPDEST 00001577: POP 00001578: PUSH2 0x0100 0000157b: DUP3 0000157c: ADD 0000157d: MLOAD 0000157e: PUSH2 0x158b 00001581: PUSH2 0x0100 00001584: DUP6 00001585: ADD 00001586: DUP3 00001587: PUSH2 0x14ce 0000158a: JUMP 0000158b: JUMPDEST 0000158c: POP 0000158d: PUSH2 0x0120 00001590: DUP3 00001591: ADD 00001592: MLOAD 00001593: PUSH2 0x07a5 00001596: PUSH2 0x0120 00001599: DUP6 0000159a: ADD 0000159b: DUP3 0000159c: PUSH2 0x14d7 0000159f: JUMP 000015a0: JUMPDEST 000015a1: PUSH2 0x01a0 000015a4: DUP1 000015a5: DUP3 000015a6: MSTORE 000015a7: DUP2 000015a8: ADD 000015a9: PUSH2 0x15b2 000015ac: DUP2 000015ad: DUP8 000015ae: PUSH2 0x142e 000015b1: JUMP 000015b2: JUMPDEST 000015b3: SWAP1 000015b4: POP 000015b5: DUP2 000015b6: DUP2 000015b7: SUB 000015b8: PUSH1 0x20 000015ba: DUP4 000015bb: ADD 000015bc: MSTORE 000015bd: PUSH2 0x15c6 000015c0: DUP2 000015c1: DUP7 000015c2: PUSH2 0x1481 000015c5: JUMP 000015c6: JUMPDEST 000015c7: SWAP1 000015c8: POP 000015c9: PUSH2 0x15d5 000015cc: PUSH1 0x40 000015ce: DUP4 000015cf: ADD 000015d0: DUP6 000015d1: PUSH2 0x14df 000015d4: JUMP 000015d5: JUMPDEST 000015d6: DUP2 000015d7: DUP2 000015d8: SUB 000015d9: PUSH2 0x0180 000015dc: DUP4 000015dd: ADD 000015de: MSTORE 000015df: PUSH2 0x15e8 000015e2: DUP2 000015e3: DUP5 000015e4: PUSH2 0x142e 000015e7: JUMP 000015e8: JUMPDEST 000015e9: SWAP7 000015ea: SWAP6 000015eb: POP 000015ec: POP 000015ed: POP 000015ee: POP 000015ef: POP 000015f0: POP 000015f1: JUMP 000015f2: JUMPDEST 000015f3: DUP1 000015f4: MLOAD 000015f5: PUSH2 0x06ca 000015f8: DUP2 000015f9: PUSH2 0x0fca 000015fc: JUMP 000015fd: JUMPDEST 000015fe: PUSH0 000015ff: PUSH1 0x20 00001601: DUP3 00001602: DUP5 00001603: SUB 00001604: SLT 00001605: ISZERO 00001606: PUSH2 0x1610 00001609: JUMPI 0000160a: PUSH2 0x1610 0000160d: PUSH0 0000160e: DUP1 0000160f: REVERT 00001610: JUMPDEST 00001611: PUSH0 00001612: PUSH2 0x10ce 00001615: DUP5 00001616: DUP5 00001617: PUSH2 0x15f2 0000161a: JUMP 0000161b: JUMPDEST 0000161c: PUSH1 0x01 0000161e: PUSH1 0x01 00001620: PUSH1 0xe0 00001622: SHL 00001623: SUB 00001624: NOT 00001625: DUP2 00001626: AND 00001627: PUSH2 0x0fcc 0000162a: JUMP 0000162b: JUMPDEST 0000162c: DUP1 0000162d: CALLDATALOAD 0000162e: PUSH2 0x06ca 00001631: DUP2 00001632: PUSH2 0x161b 00001635: JUMP 00001636: JUMPDEST 00001637: PUSH0 00001638: PUSH1 0x20 0000163a: DUP3 0000163b: DUP5 0000163c: SUB 0000163d: SLT 0000163e: ISZERO 0000163f: PUSH2 0x1649 00001642: JUMPI 00001643: PUSH2 0x1649 00001646: PUSH0 00001647: DUP1 00001648: REVERT 00001649: JUMPDEST 0000164a: PUSH0 0000164b: PUSH2 0x10ce 0000164e: DUP5 0000164f: DUP5 00001650: PUSH2 0x162b 00001653: JUMP 00001654: JUMPDEST 00001655: PUSH1 0x20 00001657: DUP2 00001658: ADD 00001659: PUSH2 0x06ca 0000165c: DUP3 0000165d: DUP5 0000165e: PUSH2 0x14d7 00001661: JUMP 00001662: JUMPDEST 00001663: PUSH1 0x20 00001665: DUP2 00001666: ADD 00001667: PUSH2 0x06ca 0000166a: DUP3 0000166b: DUP5 0000166c: PUSH2 0x14c8 0000166f: JUMP 00001670: JUMPDEST 00001671: PUSH0 00001672: DUP1 00001673: PUSH2 0x01a0 00001676: DUP4 00001677: DUP6 00001678: SUB 00001679: SLT 0000167a: ISZERO 0000167b: PUSH2 0x1685 0000167e: JUMPI 0000167f: PUSH2 0x1685 00001682: PUSH0 00001683: DUP1 00001684: REVERT 00001685: JUMPDEST 00001686: PUSH0 00001687: PUSH2 0x1690 0000168a: DUP6 0000168b: DUP6 0000168c: PUSH2 0x11bf 0000168f: JUMP 00001690: JUMPDEST 00001691: SWAP3 00001692: POP 00001693: POP 00001694: PUSH2 0x0140 00001697: PUSH2 0x16a2 0000169a: DUP6 0000169b: DUP3 0000169c: DUP7 0000169d: ADD 0000169e: PUSH2 0x12ac 000016a1: JUMP 000016a2: JUMPDEST 000016a3: SWAP2 000016a4: POP 000016a5: POP 000016a6: SWAP3 000016a7: POP 000016a8: SWAP3 000016a9: SWAP1 000016aa: POP 000016ab: JUMP 000016ac: JUMPDEST 000016ad: PUSH0 000016ae: PUSH1 0x20 000016b0: DUP3 000016b1: DUP5 000016b2: SUB 000016b3: SLT 000016b4: ISZERO 000016b5: PUSH2 0x16bf 000016b8: JUMPI 000016b9: PUSH2 0x16bf 000016bc: PUSH0 000016bd: DUP1 000016be: REVERT 000016bf: JUMPDEST 000016c0: PUSH0 000016c1: PUSH2 0x10ce 000016c4: DUP5 000016c5: DUP5 000016c6: PUSH2 0x0fd6 000016c9: JUMP 000016ca: JUMPDEST 000016cb: PUSH0 000016cc: DUP1 000016cd: PUSH1 0x40 000016cf: DUP4 000016d0: DUP6 000016d1: SUB 000016d2: SLT 000016d3: ISZERO 000016d4: PUSH2 0x16de 000016d7: JUMPI 000016d8: PUSH2 0x16de 000016db: PUSH0 000016dc: DUP1 000016dd: REVERT 000016de: JUMPDEST 000016df: PUSH0 000016e0: PUSH2 0x16e9 000016e3: DUP6 000016e4: DUP6 000016e5: PUSH2 0x0fd6 000016e8: JUMP 000016e9: JUMPDEST 000016ea: SWAP3 000016eb: POP 000016ec: POP 000016ed: PUSH1 0x20 000016ef: PUSH2 0x16a2 000016f2: DUP6 000016f3: DUP3 000016f4: DUP7 000016f5: ADD 000016f6: PUSH2 0x1112 000016f9: JUMP 000016fa: JUMPDEST 000016fb: PUSH0 000016fc: DUP1 000016fd: PUSH1 0x40 000016ff: DUP4 00001700: DUP6 00001701: SUB 00001702: SLT 00001703: ISZERO 00001704: PUSH2 0x170e 00001707: JUMPI 00001708: PUSH2 0x170e 0000170b: PUSH0 0000170c: DUP1 0000170d: REVERT 0000170e: JUMPDEST 0000170f: PUSH0 00001710: PUSH2 0x1719 00001713: DUP6 00001714: DUP6 00001715: PUSH2 0x1112 00001718: JUMP 00001719: JUMPDEST 0000171a: SWAP3 0000171b: POP 0000171c: POP 0000171d: PUSH1 0x20 0000171f: PUSH2 0x16a2 00001722: DUP6 00001723: DUP3 00001724: DUP7 00001725: ADD 00001726: PUSH2 0x0fd6 00001729: JUMP 0000172a: JUMPDEST 0000172b: PUSH0 0000172c: PUSH1 0x20 0000172e: DUP3 0000172f: DUP5 00001730: SUB 00001731: SLT 00001732: ISZERO 00001733: PUSH2 0x173d 00001736: JUMPI 00001737: PUSH2 0x173d 0000173a: PUSH0 0000173b: DUP1 0000173c: REVERT 0000173d: JUMPDEST 0000173e: DUP2 0000173f: CALLDATALOAD 00001740: PUSH8 0xffffffffffffffff 00001749: DUP2 0000174a: GT 0000174b: ISZERO 0000174c: PUSH2 0x1756 0000174f: JUMPI 00001750: PUSH2 0x1756 00001753: PUSH0 00001754: DUP1 00001755: REVERT 00001756: JUMPDEST 00001757: PUSH2 0x10ce 0000175a: DUP5 0000175b: DUP3 0000175c: DUP6 0000175d: ADD 0000175e: PUSH2 0x1176 00001761: JUMP 00001762: JUMPDEST 00001763: PUSH0 00001764: DUP1 00001765: PUSH0 00001766: PUSH1 0x60 00001768: DUP5 00001769: DUP7 0000176a: SUB 0000176b: SLT 0000176c: ISZERO 0000176d: PUSH2 0x1777 00001770: JUMPI 00001771: PUSH2 0x1777 00001774: PUSH0 00001775: DUP1 00001776: REVERT 00001777: JUMPDEST 00001778: PUSH0 00001779: PUSH2 0x1782 0000177c: DUP7 0000177d: DUP7 0000177e: PUSH2 0x1112 00001781: JUMP 00001782: JUMPDEST 00001783: SWAP4 00001784: POP 00001785: POP 00001786: PUSH1 0x20 00001788: PUSH2 0x1793 0000178b: DUP7 0000178c: DUP3 0000178d: DUP8 0000178e: ADD 0000178f: PUSH2 0x0fd6 00001792: JUMP 00001793: JUMPDEST 00001794: SWAP3 00001795: POP 00001796: POP 00001797: PUSH1 0x40 00001799: PUSH2 0x17a4 0000179c: DUP7 0000179d: DUP3 0000179e: DUP8 0000179f: ADD 000017a0: PUSH2 0x1112 000017a3: JUMP 000017a4: JUMPDEST 000017a5: SWAP2 000017a6: POP 000017a7: POP 000017a8: SWAP3 000017a9: POP 000017aa: SWAP3 000017ab: POP 000017ac: SWAP3 000017ad: JUMP 000017ae: JUMPDEST 000017af: PUSH1 0x20 000017b1: DUP2 000017b2: ADD 000017b3: PUSH2 0x06ca 000017b6: DUP3 000017b7: DUP5 000017b8: PUSH2 0x145f 000017bb: JUMP 000017bc: JUMPDEST 000017bd: PUSH4 0x4e487b71 000017c2: PUSH1 0xe0 000017c4: SHL 000017c5: PUSH0 000017c6: MSTORE 000017c7: PUSH1 0x12 000017c9: PUSH1 0x04 000017cb: MSTORE 000017cc: PUSH1 0x24 000017ce: PUSH0 000017cf: REVERT 000017d0: JUMPDEST 000017d1: PUSH0 000017d2: DUP3 000017d3: PUSH2 0x17de 000017d6: JUMPI 000017d7: PUSH2 0x17de 000017da: PUSH2 0x17bc 000017dd: JUMP 000017de: JUMPDEST 000017df: POP 000017e0: DIV 000017e1: SWAP1 000017e2: JUMP 000017e3: JUMPDEST 000017e4: PUSH1 0x40 000017e6: DUP2 000017e7: ADD 000017e8: PUSH2 0x17f1 000017eb: DUP3 000017ec: DUP6 000017ed: PUSH2 0x14c8 000017f0: JUMP 000017f1: JUMPDEST 000017f2: PUSH2 0x0c97 000017f5: PUSH1 0x20 000017f7: DUP4 000017f8: ADD 000017f9: DUP5 000017fa: PUSH2 0x14c8 000017fd: JUMP 000017fe: JUMPDEST 000017ff: PUSH4 0x4e487b71 00001804: PUSH1 0xe0 00001806: SHL 00001807: PUSH0 00001808: MSTORE 00001809: PUSH1 0x32 0000180b: PUSH1 0x04 0000180d: MSTORE 0000180e: PUSH1 0x24 00001810: PUSH0 00001811: REVERT 00001812: JUMPDEST 00001813: DUP2 00001814: DUP2 00001815: SUB 00001816: DUP2 00001817: DUP2 00001818: GT 00001819: ISZERO 0000181a: PUSH2 0x06ca 0000181d: JUMPI 0000181e: PUSH2 0x06ca 00001821: PUSH2 0x13dd 00001824: JUMP 00001825: JUMPDEST 00001826: PUSH1 0x40 00001828: DUP2 00001829: ADD 0000182a: PUSH2 0x17f1 0000182d: DUP3 0000182e: DUP6 0000182f: PUSH2 0x145f 00001832: JUMP 00001833: JUMPDEST 00001834: PUSH0 00001835: DUP2 00001836: PUSH2 0x06ca 00001839: JUMP 0000183a: JUMPDEST 0000183b: PUSH1 0x60 0000183d: DUP2 0000183e: ADD 0000183f: PUSH2 0x1848 00001842: DUP3 00001843: DUP7 00001844: PUSH2 0x145f 00001847: JUMP 00001848: JUMPDEST 00001849: PUSH2 0x1855 0000184c: PUSH1 0x20 0000184e: DUP4 0000184f: ADD 00001850: DUP6 00001851: PUSH2 0x145f 00001854: JUMP 00001855: JUMPDEST 00001856: PUSH2 0x10ce 00001859: PUSH1 0x40 0000185b: DUP4 0000185c: ADD 0000185d: DUP5 0000185e: PUSH2 0x14c8 00001861: JUMP 00001862: INVALID 00001863: UNKNOWN(0xDB) 00001864: UNKNOWN(0xEB) 00001865: PUSH6 0x7137b1822b3d 0000186c: SLOAD 0000186d: XOR 0000186e: UNKNOWN(0xBE) 0000186f: UNKNOWN(0xA6) 00001870: REVERT 00001871: PUSH5 0x1226d964b4 00001877: UNKNOWN(0xC3) 00001878: DUP8 00001879: CLZ 0000187a: CALLCODE 0000187b: CALLDATALOAD 0000187c: CHAINID 0000187d: UNKNOWN(0xDB) 0000187e: UNKNOWN(0x26) 0000187f: UNKNOWN(0x22) 00001880: UNKNOWN(0x25) 00001881: DUP9 00001882: PUSH18 0xa2646970667358221220a085de2a168524bd 00001895: SWAP5 00001896: ADDMOD 00001897: SDIV 00001898: ADD 00001899: UNKNOWN(0xD3) 0000189a: UNKNOWN(0xED) 0000189b: SWAP15 0000189c: SWAP4 0000189d: UNKNOWN(0x27) 0000189e: SLOAD 0000189f: UNKNOWN(0xAB) 000018a0: KECCAK256 000018a1: UNKNOWN(0xC9) 000018a2: SWAP6 000018a3: UNKNOWN(0xC6) 000018a4: UNKNOWN(0xAB) 000018a5: UNKNOWN(0xEB) 000018a6: PUSH11 0xe8b9ab0e74f664736f6c63 000018b2: NUMBER 000018b3: STOP 000018b4: ADDMOD 000018b5: BYTE 000018b6: STOP 000018b7: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x100e08ccccd60a4462ea14f909966aa2fa0bf5a8d2445de3415a9eebbf794b88
call_targets:
0xf542a254b5deef1583d2904be9a6477d89d8f1aa
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x100e08ccccd60a4462ea14f909966aa2fa0bf5a8d2445de3415a9eebbf794b88",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xf542a254b5deef1583d2904be9a6477d89d8f1aa"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xa9212b5b",
"selector": "0xa9212b5b",
"calldata_variants": [
"0xa9212b5b",
"0xa9212b5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb59b1176",
"selector": "0xb59b1176",
"calldata_variants": [
"0xb59b1176",
"0xb59b11760000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb66437a5",
"selector": "0xb66437a5",
"calldata_variants": [
"0xb66437a5",
"0xb66437a50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd0e30db0",
"selector": "0xd0e30db0",
"calldata_variants": [
"0xd0e30db0",
"0xd0e30db00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffa1ad74",
"selector": "0xffa1ad74",
"calldata_variants": [
"0xffa1ad74",
"0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x72c6838f",
"selector": "0x72c6838f",
"calldata_variants": [
"0x72c6838f",
"0x72c6838f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x75b238fc",
"selector": "0x75b238fc",
"calldata_variants": [
"0x75b238fc",
"0x75b238fc0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 494,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 654,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1926,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 8,
"guards_detected": [],
"untrusted_call_count": 8
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x100e08ccccd60a4462ea14f909966aa2fa0bf5a8d2445de3415a9eebbf794b88
call_targets:
0xf542a254b5deef1583d2904be9a6477d89d8f1aa
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x100e08ccccd60a4462ea14f909966aa2fa0bf5a8d2445de3415a9eebbf794b88",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xf542a254b5deef1583d2904be9a6477d89d8f1aa"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xa9212b5b",
"selector": "0xa9212b5b",
"calldata_variants": [
"0xa9212b5b",
"0xa9212b5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb59b1176",
"selector": "0xb59b1176",
"calldata_variants": [
"0xb59b1176",
"0xb59b11760000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb66437a5",
"selector": "0xb66437a5",
"calldata_variants": [
"0xb66437a5",
"0xb66437a50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd0e30db0",
"selector": "0xd0e30db0",
"calldata_variants": [
"0xd0e30db0",
"0xd0e30db00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffa1ad74",
"selector": "0xffa1ad74",
"calldata_variants": [
"0xffa1ad74",
"0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x72c6838f",
"selector": "0x72c6838f",
"calldata_variants": [
"0x72c6838f",
"0x72c6838f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x75b238fc",
"selector": "0x75b238fc",
"calldata_variants": [
"0x75b238fc",
"0x75b238fc0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 494,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 654,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1926,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 8,
"guards_detected": []
}
|
| medium | reentrancy | codex | Computed external CALLs with value (untrusted target) enable arbitrary call/reentrancy risk | 75 | no | — |
viewevidence_json{
"evidence": "callsites list shows CALL with target_expression_category/value_expression_category = computed and returndata_checked = null at pc 494, 654, 1926, 2279, 3052, 3266, 3913; detector findings flagged \"Untrusted CALL target/value reachable\" and \"ETH value transfer possible\" with no guards detected.",
"locations": [
"pc:0x1ee",
"pc:0x28e",
"pc:0x786",
"pc:0x8e7",
"pc:0xbec",
"pc:0xcc2",
"pc:0xf49"
],
"recommendation": "Constrain external call targets to fixed/allowlisted addresses, gate call paths with explicit access control, and add a reentrancy guard around state-changing flows that perform external calls. Where possible, prefer pull-based payouts over push-based ETH transfers.",
"exploit_scenario": "If any public entrypoint allows a user-controlled target/value to reach these CALL sites, an attacker can direct ETH/token transfers or invoke a malicious contract that reenters before state is finalized. Detector validation saw a constant target in one trace, but it was not confirmed; if the target is not actually constant/whitelisted, this is exploitable."
}
|
| low | upgradeability | codex | CALLCODE present with computed target (delegatecall-like semantics) | 65 | no | — |
viewevidence_json{
"evidence": "callsites list includes opcode CALLCODE at pc 6266 with computed target/value; basic block 6257\u20136323 contains CALLCODE but CFG has no inbound/outbound edges (likely unreachable).",
"locations": [
"pc:0x187a"
],
"recommendation": "Ensure the CALLCODE site is unreachable or remove it. If intentional proxy-like behavior exists, replace with DELEGATECALL and enforce strict access control and implementation validation (code size/allowlist) and emit upgrade events.",
"exploit_scenario": "If reachable, CALLCODE executes external code in the caller\u2019s storage context, enabling full state corruption or asset theft when the target can be influenced. The CFG shows no edges to the block containing CALLCODE, so it may be unreachable metadata; verify reachability."
}
|
| low | access_control | codex | State slots 0 and 0xdead written without detected guards | 65 | no | — |
viewevidence_json{
"evidence": "storage analysis shows SSTORE at pc 709 (slot 0x0) and pc 715 (slot 0x\u2026dead); auth.guards is empty across functions.",
"locations": [
"pc:0x2c5",
"pc:0x2cb"
],
"recommendation": "Confirm the write path is restricted to authorized callers; add explicit access control checks and events for administrative state changes. If these slots are not privileged, consider documenting their role to aid auditors.",
"exploit_scenario": "If an external function can reach the block at pc 705, it writes to slot 0 and slot 0xdead. If these slots represent owner/admin/flags, an attacker could reset privileged state or break invariants. Guard detection is heuristic, so this may be protected elsewhere."
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 7
}
|