019bab3b-aa63-72d5-84fa-0e2c93349ffe
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 |
|---|---|---|---|---|
| 38310 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 38311 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 38312 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 38313 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 38314 | capability.graph | complete | 1 / 3 | 3 months ago |
| 38315 | detector.run | complete | 1 / 3 | 3 months ago |
| 38316 | validation.fork | complete | 1 / 3 | 3 months ago |
| 38948 | report.consolidate | complete | 1 / 6 | 3 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"1 low-confidence issue flagged from bytecode: value-carrying CALLs use computed target/value, but validation only observed self-target, so impact is uncertain.","findings":[{"severity":"low","category":"other","title":"Value-carrying CALLs use computed target/value (untrusted call risk, unconfirmed)","exploit_scenario":"If a user can influence the CALL target/value derived from calldata or memory, they could direct ETH to arbitrary addresses or trigger unexpected external code execution; if state changes occur around these calls, reentrancy could also be possible. Validation traces only saw the contract calling itself, so this may be a false positive or limited to self-calls.","recommendation":"Confirm the CALL target/value sources in the high-level logic. If user-controlled, restrict targets (allowlist), avoid forwarding ETH, and add explicit access control and/or reentrancy protection. Ensure return values are checked and failures handled.","evidence":"Detector findings show three CALL sites with computed target/value (pc:984, 5447, 5905) and no guards detected; validation marked the target as constant self-address and unconfirmed. Callsite metadata lists target_expression_category/value_expression_category as 'computed'.","locations":["pc:0x3d8","pc:0x1547","pc:0x1711"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-ah276c5i
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bab57-8a8d-72c0-8d6a-1038a856ee6c
--------
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
**Reading BYTECODE_BUNDLE.json**
exec
/bin/bash -lc ls in /tmp/codex-ah276c5i succeeded in 5ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-ah276c5i succeeded in 13ms:
{
"analysis_artifact": {
"address": "0x9c5570e4615b1b1ae72f878edccb73b3951d0cb0",
"artifact_hash": "0x488158ded03297d339f6ebedc55c10451a02c0d416deefbf64400fd0029e21e7",
"artifact_json": {
"auth": {
"guards": []
},
"basic_blocks": [
{
"end_pc": 14,
"hash": "0xce14a88d5d118673186ff9453a98aefcfc68fad493fd6cde4e87b29553794988",
"opcodes": [
"PUSH1",
"OP_80",
"PUSH1",
"MSTORE",
"PUSH1",
"CALLDATASIZE",
"LT",
thinking
**Investigating bytecode audit details**
exec
/bin/bash -lc 'rg -n "evidence|storage|proxy|delegatecall|callsite|selector|slot" BYTECODE_BUNDLE.json | head -n 200' in /tmp/codex-ah276c5i succeeded in 19ms:
7447: "callsites": [
10215: "dispatcher_type": "selector_jump_table",
10219: "selector": "0x01ffc9a7"
10223: "selector": "0x07bd0265"
10227: "selector": "0x14bbe21c"
10231: "selector": "0x1765f52c"
10235: "selector": "0x248a9ca3"
10239: "selector": "0x2f2ff15d"
10243: "selector": "0x36568abe"
10247: "selector": "0x38af3eed"
10251: "selector": "0x91d14854"
10255: "selector": "0xa217fddf"
10259: "selector": "0xb61d27f6"
10263: "selector": "0xbf370ea9"
10267: "selector": "0xcd522365"
10271: "selector": "0xd547741f"
10280: "selector": "0x01ffc9a7",
10283: "delegatecall": 0,
10287: "storage": {
10289: "slots": [
thinking
**Preparing to extract callsite and evidence data**
exec
/bin/bash -lc "python - <<'PY'
import json, pprint
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
# Print summary keys
print(data.keys())
print('detector_findings', len(data.get('detector_findings', [])))
print('heuristics_summary', data.get('heuristics_summary'))
artifact=data['analysis_artifact']['artifact_json']
print('auth guards', artifact.get('auth',{}))
# Proxy evidence if present
print('proxy evidence', artifact.get('proxy_evidence', None))
print('is_proxy', artifact.get('is_proxy', None))
# functions
funcs=[f for f in artifact.get('functions', [])]
print('functions count', len(funcs))
print('selectors', [f.get('selector') for f in funcs])
# callsites
calls=[c for c in artifact.get('callsites', [])]
print('callsites', len(calls))
print(calls[:10])
# storage slots summary
storage=artifact.get('storage')
print('storage', storage)
PY" in /tmp/codex-ah276c5i succeeded in 115ms:
dict_keys(['analysis_artifact', 'analysis_run', 'artifact', 'capability_graph', 'detector_findings', 'heuristics_summary'])
detector_findings 2
heuristics_summary {'create2_count': 0, 'delegatecall_count': 0, 'flags': ['call_family_heavy'], 'selfdestruct_count': 0}
auth guards {'guards': []}
proxy evidence None
is_proxy None
functions count 14
selectors ['0x01ffc9a7', '0x07bd0265', '0x14bbe21c', '0x1765f52c', '0x248a9ca3', '0x2f2ff15d', '0x36568abe', '0x38af3eed', '0x91d14854', '0xa217fddf', '0xb61d27f6', '0xbf370ea9', '0xcd522365', '0xd547741f']
callsites 19
[{'opcode': 'STATICCALL', 'pc': 381, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'n/a'}, {'opcode': 'CALL', 'pc': 984, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}, {'opcode': 'STATICCALL', 'pc': 1731, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'n/a'}, {'opcode': 'STATICCALL', 'pc': 1799, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'n/a'}, {'opcode': 'STATICCALL', 'pc': 1847, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'n/a'}, {'opcode': 'STATICCALL', 'pc': 1894, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'n/a'}, {'opcode': 'STATICCALL', 'pc': 1945, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'n/a'}, {'opcode': 'STATICCALL', 'pc': 1997, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'n/a'}, {'opcode': 'STATICCALL', 'pc': 2051, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'n/a'}, {'opcode': 'STATICCALL', 'pc': 2160, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'n/a'}]
storage {'keccak_count': 18, 'reads': 13, 'slots': [{'op': 'SLOAD', 'pc': 1152, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 2969, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}], 'writes': 3}
thinking
**Inspecting artifact selectors**
exec
/bin/bash -lc "python - <<'PY'
import json, pprint
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
artifact=data['analysis_artifact']['artifact_json']
print('artifact keys', artifact.keys())
# list top-level sections maybe 'functions_detail' or 'function_selectors' etc
for k in artifact.keys():
if 'function' in k or 'selector' in k or 'proxy' in k:
print(k)
# maybe 'selectors' list with function details
print('selectors entry type', type(artifact.get('selectors')))
print('selectors length', len(artifact.get('selectors', [])))
# print one selector entry
sel_entries=artifact.get('selectors', [])
if sel_entries:
pprint.pprint(sel_entries[0])
# check if capability_graph etc
PY" in /tmp/codex-ah276c5i succeeded in 101ms:
artifact keys dict_keys(['auth', 'basic_blocks', 'callsites', 'cfg_edges', 'cfg_hash', 'dispatcher_type', 'function_entries', 'functions', 'selectors', 'sinks', 'storage', 'version'])
function_entries
functions
selectors
selectors entry type <class 'list'>
selectors length 14
'0x01ffc9a7'
thinking
**Checking function entries**
exec
/bin/bash -lc "python - <<'PY'
import json, pprint
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
artifact=data['analysis_artifact']['artifact_json']
fe=artifact.get('function_entries')
print('function_entries type', type(fe))
print('function_entries length', len(fe))
# print first few
pprint.pprint(fe[:3])
# print one function detail from artifact['functions']
funcs=artifact.get('functions')
print('functions len', len(funcs))
# show keys of first function entry
print('function keys', funcs[0].keys())
pprint.pprint(funcs[0])
PY" in /tmp/codex-ah276c5i succeeded in 95ms:
function_entries type <class 'list'>
function_entries length 14
[{'entry_pc': None, 'selector': '0x01ffc9a7'},
{'entry_pc': 347857436, 'selector': '0x07bd0265'},
{'entry_pc': 392557868, 'selector': '0x14bbe21c'}]
functions len 14
function keys dict_keys(['auth', 'entry_pc', 'selector', 'sinks', 'storage'])
{'auth': {'guards': []},
'entry_pc': None,
'selector': '0x01ffc9a7',
'sinks': {'call': 3, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 16},
'storage': {'reads': 13,
'slots': [{'op': 'SLOAD',
'pc': 1152,
'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'},
{'op': 'SLOAD',
'pc': 2969,
'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}],
'writes': 3}}
thinking
**Analyzing self-calls and potential reentrancy**
exec
/bin/bash -lc "python - <<'PY'
import json, pprint
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
print('top keys', data.keys())
# check analysis_run keys
print('analysis_run keys', data.get('analysis_run', {}).keys())
# check artifact top-level (not analysis_artifact)
print('artifact top-level keys', data.get('artifact', {}).keys())
# check capability_graph keys
print('capability_graph keys', data.get('capability_graph', {}).keys())
# maybe evidence bundle inside artifact
art=data.get('artifact', {})
for k in art.keys():
if 'evidence' in k or 'call' in k or 'storage' in k:
print('artifact key', k)
# print structure of artifact[\"capability_graph\"] etc
PY" in /tmp/codex-ah276c5i succeeded in 50ms:
top keys dict_keys(['analysis_artifact', 'analysis_run', 'artifact', 'capability_graph', 'detector_findings', 'heuristics_summary'])
analysis_run keys dict_keys(['address', 'block_number', 'chain_id', 'child_links', 'created_at', 'id', 'parent_links', 'status', 'updated_at'])
artifact top-level keys dict_keys(['codehash', 'compiler_json', 'implementation_address', 'is_proxy', 'runtime_bytecode', 'verified_source'])
capability_graph keys dict_keys(['address', 'block_number', 'chain_id', 'codehash', 'created_at', 'graph_hash', 'graph_json', 'id', 'updated_at', 'version'])
thinking
**Inspecting capability graph details**
exec
/bin/bash -lc "python - <<'PY'
import json, pprint
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
cg=data['capability_graph']['graph_json']
print('capability graph keys', cg.keys())
# check for callsites, storage, functions etc
for k in cg.keys():
if 'call' in k or 'storage' in k or 'proxy' in k or 'selector' in k or 'function' in k:
print(k)
print('proxy evidence', cg.get('proxy_evidence'))
print('is_proxy', cg.get('is_proxy'))
# print first callsite details
calls=cg.get('callsites', [])
print('callsites', len(calls))
if calls:
pprint.pprint(calls[:3])
# print any functions details maybe under \"functions\" or \"function_summaries\" etc
PY" in /tmp/codex-ah276c5i succeeded in 90ms:
capability graph keys dict_keys(['edges', 'nodes', 'version'])
proxy evidence None
is_proxy None
callsites 0
thinking
**Inspecting capability graph structure**
exec
/bin/bash -lc "python - <<'PY'
import json, pprint
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
cg=data['capability_graph']['graph_json']
nodes=cg.get('nodes', [])
print('nodes', len(nodes))
# count node types
from collections import Counter
cnt=Counter(n.get('type') for n in nodes)
print('node types', cnt)
# show some callsite nodes
call_nodes=[n for n in nodes if n.get('type')=='callsite']
print('callsite nodes', len(call_nodes))
if call_nodes:
pprint.pprint(call_nodes[:5])
# show some function nodes
func_nodes=[n for n in nodes if n.get('type')=='function']
print('function nodes', len(func_nodes))
if func_nodes:
pprint.pprint(func_nodes[:3])
# show some storage nodes
storage_nodes=[n for n in nodes if n.get('type')=='storage']
print('storage nodes', len(storage_nodes))
if storage_nodes:
pprint.pprint(storage_nodes[:3])
PY" in /tmp/codex-ah276c5i succeeded in 40ms:
nodes 452
node types Counter({'basic_block': 417, 'callsite': 19, 'function': 14, 'sink': 2})
callsite nodes 19
[{'id': 'call:381', 'opcode': 'STATICCALL', 'pc': 381, 'type': 'callsite'},
{'id': 'call:984', 'opcode': 'CALL', 'pc': 984, 'type': 'callsite'},
{'id': 'call:1731', 'opcode': 'STATICCALL', 'pc': 1731, 'type': 'callsite'},
{'id': 'call:1799', 'opcode': 'STATICCALL', 'pc': 1799, 'type': 'callsite'},
{'id': 'call:1847', 'opcode': 'STATICCALL', 'pc': 1847, 'type': 'callsite'}]
function nodes 14
[{'entry_pc': None,
'id': 'fn:0x01ffc9a7',
'selector': '0x01ffc9a7',
'type': 'function'},
{'entry_pc': 347857436,
'id': 'fn:0x07bd0265',
'selector': '0x07bd0265',
'type': 'function'},
{'entry_pc': 392557868,
'id': 'fn:0x14bbe21c',
'selector': '0x14bbe21c',
thinking
**Analyzing callsites and storage writes**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
artifact=data['analysis_artifact']['artifact_json']
# search basic_blocks for SSTORE
sstore_pcs=[]
for bb in artifact.get('basic_blocks', []):
ops=bb.get('opcodes', [])
if 'SSTORE' in ops:
# we don't have per-op pc; we can approximate? we have start_pc and end_pc
sstore_pcs.append((bb.get('start_pc'), bb.get('end_pc'), ops))
print('basic blocks with SSTORE', len(sstore_pcs))
print(sstore_pcs[:5])
PY" in /tmp/codex-ah276c5i succeeded in 27ms:
basic blocks with SSTORE 3
[(1420, 1497, ['JUMPDEST', 'OP_81', 'PUSH1', 'MSTORE', 'PUSH1', 'PUSH1', 'MSTORE', 'PUSH1', 'PUSH1', 'SHA3', 'OP_81', 'PUSH1', 'MSTORE', 'PUSH1', 'MSTORE', 'PUSH1', 'PUSH1', 'SHA3', 'PUSH1', 'PUSH1', 'NOT', 'OP_82', 'SLOAD', 'AND', 'OR', 'OP_90', 'SSTORE', 'CALLER', 'OP_91', 'PUSH32', 'PUSH1', 'OP_80', 'OP_A4', 'STOP']), (2965, 3037, ['JUMPDEST', 'PUSH1', 'OP_80', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'OP_92', 'OP_83', 'AND', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'NOT', 'OP_82', 'AND', 'OP_81', 'OR', 'OP_90', 'OP_92', 'SSTORE', 'OP_90', 'OP_91', 'AND', 'PUSH32', 'PUSH1', 'OP_80', 'OP_A3', 'STOP']), (4668, 4735, ['JUMPDEST', 'OP_80', 'OP_83', 'MSTORE', 'OP_82', 'PUSH1', 'MSTORE', 'PUSH1', 'OP_83', 'SHA3', 'OP_82', 'OP_84', 'MSTORE', 'PUSH1', 'MSTORE', 'PUSH1', 'OP_83', 'SHA3', 'PUSH1', 'NOT', 'OP_81', 'SLOAD', 'AND', 'OP_90', 'SSTORE', 'PUSH32', 'CALLER', 'OP_93', 'OP_80', 'OP_A4', 'JUMP'])]
thinking
**Analyzing SSTORE and CALL instruction order**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
artifact=data['analysis_artifact']['artifact_json']
call_pcs=[984,5447,5905]
for pc in call_pcs:
bb=None
for b in artifact['basic_blocks']:
if b['start_pc']<=pc<=b['end_pc']:
bb=b
break
print('pc', pc, 'bb', bb['start_pc'], bb['end_pc'])
print(bb['opcodes'])
print()
PY" in /tmp/codex-ah276c5i succeeded in 57ms:
pc 984 bb 976 991
['JUMPDEST', 'MLOAD', 'OP_91', 'PUSH1', 'CALLDATALOAD', 'OP_90', 'GAS', 'CALL', 'PUSH2', 'PUSH2', 'JUMP']
pc 5447 bb 5435 5454
['PUSH1', 'MSTORE', 'MLOAD', 'OP_82', 'OP_91', 'OP_82', 'OP_91', 'OP_90', 'OP_82', 'OP_8A', 'GAS', 'CALL', 'PUSH2', 'PUSH2', 'JUMP']
pc 5905 bb 5892 5911
['JUMPDEST', 'SUB', 'OP_92', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'GAS', 'CALL', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
thinking
**Analyzing return value checks after calls**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
artifact=data['analysis_artifact']['artifact_json']
# build dict start_pc->block
blocks={b['start_pc']: b for b in artifact['basic_blocks']}
for start in [992, 5455, 5912]:
b=blocks.get(start)
if b:
print('block', start, b['end_pc'])
print(b['opcodes'])
PY" in /tmp/codex-ah276c5i succeeded in 27ms:
block 992 1022
['JUMPDEST', 'OP_90', 'PUSH2', 'PUSH1', 'MLOAD', 'OP_92', 'OP_83', 'OP_92', 'ISZERO', 'ISZERO', 'OP_83', 'MSTORE', 'PUSH1', 'PUSH1', 'OP_84', 'ADD', 'MSTORE', 'PUSH1', 'OP_83', 'ADD', 'OP_90', 'PUSH2', 'JUMP']
block 5455 5460
['JUMPDEST', 'OP_81', 'PUSH2', 'JUMPI']
block 5912 5915
['PUSH2', 'JUMPI']
thinking
**Analyzing call result handling and function selectors**
I'm trying to figure out if the call result is checked by tracking call and jump instructions and inspecting whether success flags are handled. There's ambiguity since metadata shows no confirmation of return data being checked, and access control seems unclear. I'm also matching function selectors to common interfaces like ERC165 and ERC721 but see some unknown or custom selectors, prompting me to consider examining runtime bytecode and proxy detection.
exec
/bin/bash -lc "python - <<'PY'
import json, pprint
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
artifact=data['artifact']
print('artifact is_proxy', artifact.get('is_proxy'))
print('implementation_address', artifact.get('implementation_address'))
PY" in /tmp/codex-ah276c5i succeeded in 62ms:
artifact is_proxy False
implementation_address None
thinking
**Analyzing external call findings**
exec
/bin/bash -lc "python - <<'PY'
import json, pprint
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
artifact=data['analysis_artifact']['artifact_json']
calls=artifact.get('callsites', [])
for c in calls:
if c['opcode']=='CALL':
pprint.pprint(c)
PY" in /tmp/codex-ah276c5i succeeded in 44ms:
{'opcode': 'CALL',
'pc': 984,
'returndata_checked': None,
'target_expression_category': 'computed',
'value_expression_category': 'computed'}
{'opcode': 'CALL',
'pc': 5447,
'returndata_checked': None,
'target_expression_category': 'computed',
'value_expression_category': 'computed'}
{'opcode': 'CALL',
'pc': 5905,
'returndata_checked': None,
'target_expression_category': 'computed',
'value_expression_category': 'computed'}
thinking
**Analyzing callsite evidence and risk categorization**
I’m piecing together detector findings, bytecode, and validation data to classify external calls involving value transfers. The evidence suggests some calls use computed targets influenced by calldata, but validations often show calls targeting the contract itself, creating uncertainty. I’m leaning toward a “reentrancy” or “other” category due to possible fund drain risks and lack of reentrancy guards, and I’ll summarize findings with detailed evidence, recommendations, and cautious severity ratings.
exec
/bin/bash -lc "python - <<'PY'
pcs=[984,5447,5905]
for pc in pcs:
print(pc, hex(pc))
PY" in /tmp/codex-ah276c5i succeeded in 17ms:
984 0x3d8
5447 0x1547
5905 0x1711
thinking
**Deciding severity and category for findings**
codex
{"no_findings":false,"summary":"1 low-confidence issue flagged from bytecode: value-carrying CALLs use computed target/value, but validation only observed self-target, so impact is uncertain.","findings":[{"severity":"low","category":"other","title":"Value-carrying CALLs use computed target/value (untrusted call risk, unconfirmed)","exploit_scenario":"If a user can influence the CALL target/value derived from calldata or memory, they could direct ETH to arbitrary addresses or trigger unexpected external code execution; if state changes occur around these calls, reentrancy could also be possible. Validation traces only saw the contract calling itself, so this may be a false positive or limited to self-calls.","recommendation":"Confirm the CALL target/value sources in the high-level logic. If user-controlled, restrict targets (allowlist), avoid forwarding ETH, and add explicit access control and/or reentrancy protection. Ensure return values are checked and failures handled.","evidence":"Detector findings show three CALL sites with computed target/value (pc:984, 5447, 5905) and no guards detected; validation marked the target as constant self-address and unconfirmed. Callsite metadata lists target_expression_category/value_expression_category as 'computed'.","locations":["pc:0x3d8","pc:0x1547","pc:0x1711"]}]}
tokens used
40,351
{
"codex": {
"ran_at": "2026-01-11T04:39:11.397879+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 14232,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "1 low-confidence issue flagged from bytecode: value-carrying CALLs use computed target/value, but validation only observed self-target, so impact is uncertain.",
"raw_final": {
"summary": "1 low-confidence issue flagged from bytecode: value-carrying CALLs use computed target/value, but validation only observed self-target, so impact is uncertain.",
"findings": [
{
"title": "Value-carrying CALLs use computed target/value (untrusted call risk, unconfirmed)",
"category": "other",
"evidence": "Detector findings show three CALL sites with computed target/value (pc:984, 5447, 5905) and no guards detected; validation marked the target as constant self-address and unconfirmed. Callsite metadata lists target_expression_category/value_expression_category as 'computed'.",
"severity": "low",
"locations": [
"pc:0x3d8",
"pc:0x1547",
"pc:0x1711"
],
"recommendation": "Confirm the CALL target/value sources in the high-level logic. If user-controlled, restrict targets (allowlist), avoid forwarding ETH, and add explicit access control and/or reentrancy protection. Ensure return values are checked and failures handled.",
"exploit_scenario": "If a user can influence the CALL target/value derived from calldata or memory, they could direct ETH to arbitrary addresses or trigger unexpected external code execution; if state changes occur around these calls, reentrancy could also be possible. Validation traces only saw the contract calling itself, so this may be a false positive or limited to self-calls."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: DUP1 00000003: PUSH1 0x40 00000005: MSTORE 00000006: PUSH1 0x04 00000008: CALLDATASIZE 00000009: LT 0000000a: ISZERO 0000000b: PUSH2 0x001d 0000000e: JUMPI 0000000f: JUMPDEST 00000010: POP 00000011: CALLDATASIZE 00000012: ISZERO 00000013: PUSH2 0x001b 00000016: JUMPI 00000017: PUSH1 0x00 00000019: DUP1 0000001a: REVERT 0000001b: JUMPDEST 0000001c: STOP 0000001d: JUMPDEST 0000001e: PUSH1 0x00 00000020: CALLDATALOAD 00000021: PUSH1 0xe0 00000023: SHR 00000024: SWAP1 00000025: DUP2 00000026: PUSH4 0x01ffc9a7 0000002b: EQ 0000002c: PUSH2 0x0c19 0000002f: JUMPI 00000030: POP 00000031: DUP1 00000032: PUSH4 0x07bd0265 00000037: EQ 00000038: PUSH2 0x0bde 0000003b: JUMPI 0000003c: DUP1 0000003d: PUSH4 0x14bbe21c 00000042: EQ 00000043: PUSH2 0x0b74 00000046: JUMPI 00000047: DUP1 00000048: PUSH4 0x1765f52c 0000004d: EQ 0000004e: PUSH2 0x0609 00000051: JUMPI 00000052: DUP1 00000053: PUSH4 0x248a9ca3 00000058: EQ 00000059: PUSH2 0x05da 0000005c: JUMPI 0000005d: DUP1 0000005e: PUSH4 0x2f2ff15d 00000063: EQ 00000064: PUSH2 0x0527 00000067: JUMPI 00000068: DUP1 00000069: PUSH4 0x36568abe 0000006e: EQ 0000006f: PUSH2 0x0495 00000072: JUMPI 00000073: DUP1 00000074: PUSH4 0x38af3eed 00000079: EQ 0000007a: PUSH2 0x046c 0000007d: JUMPI 0000007e: DUP1 0000007f: PUSH4 0x91d14854 00000084: EQ 00000085: PUSH2 0x041f 00000088: JUMPI 00000089: DUP1 0000008a: PUSH4 0xa217fddf 0000008f: EQ 00000090: PUSH2 0x0403 00000093: JUMPI 00000094: DUP1 00000095: PUSH4 0xb61d27f6 0000009a: EQ 0000009b: PUSH2 0x0356 0000009e: JUMPI 0000009f: DUP1 000000a0: PUSH4 0xbf370ea9 000000a5: EQ 000000a6: PUSH2 0x027a 000000a9: JUMPI 000000aa: DUP1 000000ab: PUSH4 0xcd522365 000000b0: EQ 000000b1: PUSH2 0x0108 000000b4: JUMPI 000000b5: PUSH4 0xd547741f 000000ba: EQ 000000bb: PUSH2 0x00c4 000000be: JUMPI 000000bf: CODESIZE 000000c0: PUSH2 0x000f 000000c3: JUMP 000000c4: JUMPDEST 000000c5: CALLVALUE 000000c6: PUSH2 0x0103 000000c9: JUMPI 000000ca: PUSH1 0x40 000000cc: CALLDATASIZE 000000cd: PUSH1 0x03 000000cf: NOT 000000d0: ADD 000000d1: SLT 000000d2: PUSH2 0x0103 000000d5: JUMPI 000000d6: PUSH2 0x001b 000000d9: PUSH1 0x04 000000db: CALLDATALOAD 000000dc: PUSH2 0x00e3 000000df: PUSH2 0x0cae 000000e2: JUMP 000000e3: JUMPDEST 000000e4: SWAP1 000000e5: DUP1 000000e6: PUSH1 0x00 000000e8: MSTORE 000000e9: PUSH1 0x00 000000eb: PUSH1 0x20 000000ed: MSTORE 000000ee: PUSH2 0x00fe 000000f1: PUSH1 0x01 000000f3: PUSH1 0x40 000000f5: PUSH1 0x00 000000f7: KECCAK256 000000f8: ADD 000000f9: SLOAD 000000fa: PUSH2 0x1102 000000fd: JUMP 000000fe: JUMPDEST 000000ff: PUSH2 0x120c 00000102: JUMP 00000103: JUMPDEST 00000104: PUSH1 0x00 00000106: DUP1 00000107: REVERT 00000108: JUMPDEST 00000109: CALLVALUE 0000010a: PUSH2 0x0103 0000010d: JUMPI 0000010e: PUSH2 0x0100 00000111: CALLDATASIZE 00000112: PUSH1 0x03 00000114: NOT 00000115: ADD 00000116: SLT 00000117: PUSH2 0x0103 0000011a: JUMPI 0000011b: PUSH2 0x0122 0000011e: PUSH2 0x0c82 00000121: JUMP 00000122: JUMPDEST 00000123: PUSH2 0x012a 00000126: PUSH2 0x0c98 00000129: JUMP 0000012a: JUMPDEST 0000012b: PUSH2 0x0132 0000012e: PUSH2 0x0cc4 00000131: JUMP 00000132: JUMPDEST 00000133: SWAP2 00000134: PUSH2 0x013b 00000137: PUSH2 0x0cda 0000013a: JUMP 0000013b: JUMPDEST 0000013c: PUSH2 0x0149 0000013f: TIMESTAMP 00000140: PUSH1 0xe4 00000142: CALLDATALOAD 00000143: LT 00000144: ISZERO 00000145: PUSH2 0x13e5 00000148: JUMP 00000149: JUMPDEST 0000014a: PUSH2 0x0151 0000014d: PUSH2 0x0fbd 00000150: JUMP 00000151: JUMPDEST 00000152: PUSH1 0x40 00000154: MLOAD 00000155: PUSH4 0x70a08231 0000015a: PUSH1 0xe0 0000015c: SHL 0000015d: DUP2 0000015e: MSTORE 0000015f: ADDRESS 00000160: PUSH1 0x04 00000162: DUP3 00000163: ADD 00000164: MSTORE 00000165: PUSH1 0x20 00000167: SWAP4 00000168: PUSH1 0x01 0000016a: PUSH1 0x01 0000016c: PUSH1 0xa0 0000016e: SHL 0000016f: SUB 00000170: SWAP4 00000171: SWAP2 00000172: SWAP3 00000173: SWAP2 00000174: DUP6 00000175: DUP5 00000176: PUSH1 0x24 00000178: DUP2 00000179: DUP9 0000017a: DUP7 0000017b: AND 0000017c: GAS 0000017d: STATICCALL 0000017e: SWAP4 0000017f: DUP5 00000180: ISZERO 00000181: PUSH2 0x026e 00000184: JUMPI 00000185: PUSH1 0x00 00000187: SWAP5 00000188: PUSH2 0x023f 0000018b: JUMPI 0000018c: JUMPDEST 0000018d: POP 0000018e: DUP4 0000018f: ISZERO 00000190: PUSH2 0x01e7 00000193: JUMPI 00000194: PUSH2 0x01a0 00000197: SWAP4 00000198: SWAP3 00000199: SWAP2 0000019a: DUP8 0000019b: SWAP2 0000019c: PUSH2 0x14ef 0000019f: JUMP 000001a0: JUMPDEST 000001a1: SWAP6 000001a2: SWAP3 000001a3: POP 000001a4: POP 000001a5: POP 000001a6: PUSH2 0x01b3 000001a9: PUSH1 0xc4 000001ab: CALLDATALOAD 000001ac: DUP6 000001ad: LT 000001ae: ISZERO 000001af: PUSH2 0x1430 000001b2: JUMP 000001b3: JUMPDEST 000001b4: PUSH1 0x40 000001b6: MLOAD 000001b7: SWAP4 000001b8: DUP5 000001b9: MSTORE 000001ba: AND 000001bb: SWAP2 000001bc: PUSH32 0xb11b1294b212abea6b01f4149570bbac249623a3721f64ee4c1796400bb3213b 000001dd: PUSH1 0x24 000001df: CALLDATALOAD 000001e0: SWAP3 000001e1: PUSH1 0x04 000001e3: CALLDATALOAD 000001e4: SWAP3 000001e5: LOG4 000001e6: STOP 000001e7: JUMPDEST 000001e8: PUSH1 0x40 000001ea: MLOAD 000001eb: PUSH3 0x461bcd 000001ef: PUSH1 0xe5 000001f1: SHL 000001f2: DUP2 000001f3: MSTORE 000001f4: PUSH1 0x04 000001f6: DUP2 000001f7: ADD 000001f8: DUP8 000001f9: SWAP1 000001fa: MSTORE 000001fb: PUSH1 0x2a 000001fd: PUSH1 0x24 000001ff: DUP3 00000200: ADD 00000201: MSTORE 00000202: PUSH32 0x416d6d563253616e6477696368696e674d616b657256343a20416d6f756e7420 00000223: PUSH1 0x44 00000225: DUP3 00000226: ADD 00000227: MSTORE 00000228: PUSH10 0x696e206973207a65726f 00000233: PUSH1 0xb0 00000235: SHL 00000236: PUSH1 0x64 00000238: DUP3 00000239: ADD 0000023a: MSTORE 0000023b: PUSH1 0x84 0000023d: SWAP1 0000023e: REVERT 0000023f: JUMPDEST 00000240: SWAP1 00000241: SWAP4 00000242: POP 00000243: DUP6 00000244: DUP2 00000245: DUP2 00000246: RETURNDATASIZE 00000247: DUP4 00000248: GT 00000249: PUSH2 0x0267 0000024c: JUMPI 0000024d: JUMPDEST 0000024e: PUSH2 0x0257 00000251: DUP2 00000252: DUP4 00000253: PUSH2 0x0d3f 00000256: JUMP 00000257: JUMPDEST 00000258: DUP2 00000259: ADD 0000025a: SUB 0000025b: SLT 0000025c: PUSH2 0x0103 0000025f: JUMPI 00000260: MLOAD 00000261: SWAP3 00000262: DUP8 00000263: PUSH2 0x018c 00000266: JUMP 00000267: JUMPDEST 00000268: POP 00000269: RETURNDATASIZE 0000026a: PUSH2 0x024d 0000026d: JUMP 0000026e: JUMPDEST 0000026f: PUSH1 0x40 00000271: MLOAD 00000272: RETURNDATASIZE 00000273: PUSH1 0x00 00000275: DUP3 00000276: RETURNDATACOPY 00000277: RETURNDATASIZE 00000278: SWAP1 00000279: REVERT 0000027a: JUMPDEST 0000027b: CALLVALUE 0000027c: PUSH2 0x0103 0000027f: JUMPI 00000280: PUSH2 0x0120 00000283: CALLDATASIZE 00000284: PUSH1 0x03 00000286: NOT 00000287: ADD 00000288: SLT 00000289: PUSH2 0x0103 0000028c: JUMPI 0000028d: PUSH2 0x02d8 00000290: PUSH2 0x0297 00000293: PUSH2 0x0c82 00000296: JUMP 00000297: JUMPDEST 00000298: PUSH2 0x02e6 0000029b: PUSH2 0x02a2 0000029e: PUSH2 0x0c98 000002a1: JUMP 000002a2: JUMPDEST 000002a3: SWAP3 000002a4: DUP4 000002a5: SWAP3 000002a6: PUSH2 0x02ad 000002a9: PUSH2 0x0cc4 000002ac: JUMP 000002ad: JUMPDEST 000002ae: PUSH2 0x02b5 000002b1: PUSH2 0x0cda 000002b4: JUMP 000002b5: JUMPDEST 000002b6: SWAP1 000002b7: PUSH1 0xc4 000002b9: CALLDATALOAD 000002ba: SWAP7 000002bb: DUP8 000002bc: SWAP4 000002bd: PUSH2 0x02cb 000002c0: TIMESTAMP 000002c1: PUSH2 0x0104 000002c4: CALLDATALOAD 000002c5: LT 000002c6: ISZERO 000002c7: PUSH2 0x13e5 000002ca: JUMP 000002cb: JUMPDEST 000002cc: PUSH2 0x02d3 000002cf: PUSH2 0x0fbd 000002d2: JUMP 000002d3: JUMPDEST 000002d4: PUSH2 0x14ef 000002d7: JUMP 000002d8: JUMPDEST 000002d9: SWAP3 000002da: POP 000002db: POP 000002dc: POP 000002dd: PUSH1 0xe4 000002df: CALLDATALOAD 000002e0: GT 000002e1: ISZERO 000002e2: PUSH2 0x1430 000002e5: JUMP 000002e6: JUMPDEST 000002e7: PUSH1 0x00 000002e9: DUP3 000002ea: DUP2 000002eb: SUB 000002ec: SWAP3 000002ed: SLT 000002ee: PUSH1 0x00 000002f0: DUP4 000002f1: SLT 000002f2: DUP2 000002f3: AND 000002f4: SWAP1 000002f5: PUSH1 0x00 000002f7: DUP5 000002f8: SGT 000002f9: SWAP1 000002fa: ISZERO 000002fb: AND 000002fc: OR 000002fd: PUSH2 0x0340 00000300: JUMPI 00000301: PUSH1 0x40 00000303: MLOAD 00000304: SWAP2 00000305: DUP3 00000306: MSTORE 00000307: PUSH1 0x01 00000309: PUSH1 0x01 0000030b: PUSH1 0xa0 0000030d: SHL 0000030e: SUB 0000030f: AND 00000310: SWAP1 00000311: PUSH1 0x24 00000313: CALLDATALOAD 00000314: SWAP1 00000315: PUSH1 0x04 00000317: CALLDATALOAD 00000318: SWAP1 00000319: PUSH32 0xb11b1294b212abea6b01f4149570bbac249623a3721f64ee4c1796400bb3213b 0000033a: SWAP1 0000033b: PUSH1 0x20 0000033d: SWAP1 0000033e: LOG4 0000033f: STOP 00000340: JUMPDEST 00000341: PUSH4 0x4e487b71 00000346: PUSH1 0xe0 00000348: SHL 00000349: PUSH1 0x00 0000034b: MSTORE 0000034c: PUSH1 0x11 0000034e: PUSH1 0x04 00000350: MSTORE 00000351: PUSH1 0x24 00000353: PUSH1 0x00 00000355: REVERT 00000356: JUMPDEST 00000357: PUSH1 0x60 00000359: CALLDATASIZE 0000035a: PUSH1 0x03 0000035c: NOT 0000035d: ADD 0000035e: SLT 0000035f: PUSH2 0x0103 00000362: JUMPI 00000363: PUSH2 0x036a 00000366: PUSH2 0x0c6c 00000369: JUMP 0000036a: JUMPDEST 0000036b: PUSH1 0x44 0000036d: CALLDATALOAD 0000036e: PUSH1 0x01 00000370: PUSH1 0x01 00000372: PUSH1 0x40 00000374: SHL 00000375: SUB 00000376: DUP2 00000377: GT 00000378: PUSH2 0x0103 0000037b: JUMPI 0000037c: CALLDATASIZE 0000037d: PUSH1 0x23 0000037f: DUP3 00000380: ADD 00000381: SLT 00000382: ISZERO 00000383: PUSH2 0x0103 00000386: JUMPI 00000387: DUP1 00000388: PUSH1 0x04 0000038a: ADD 0000038b: CALLDATALOAD 0000038c: SWAP2 0000038d: PUSH2 0x0395 00000390: DUP4 00000391: PUSH2 0x0d60 00000394: JUMP 00000395: JUMPDEST 00000396: PUSH2 0x03a2 00000399: PUSH1 0x40 0000039b: MLOAD 0000039c: SWAP2 0000039d: DUP3 0000039e: PUSH2 0x0d3f 000003a1: JUMP 000003a2: JUMPDEST 000003a3: DUP4 000003a4: DUP2 000003a5: MSTORE 000003a6: PUSH1 0x20 000003a8: DUP2 000003a9: ADD 000003aa: SWAP1 000003ab: CALLDATASIZE 000003ac: PUSH1 0x24 000003ae: DUP7 000003af: DUP7 000003b0: ADD 000003b1: ADD 000003b2: GT 000003b3: PUSH2 0x0103 000003b6: JUMPI 000003b7: PUSH1 0x00 000003b9: PUSH1 0x20 000003bb: DUP7 000003bc: DUP3 000003bd: SWAP8 000003be: PUSH1 0x24 000003c0: DUP5 000003c1: SWAP9 000003c2: ADD 000003c3: DUP7 000003c4: CALLDATACOPY 000003c5: DUP4 000003c6: ADD 000003c7: ADD 000003c8: MSTORE 000003c9: PUSH2 0x03d0 000003cc: PUSH2 0x0dc3 000003cf: JUMP 000003d0: JUMPDEST 000003d1: MLOAD 000003d2: SWAP2 000003d3: PUSH1 0x24 000003d5: CALLDATALOAD 000003d6: SWAP1 000003d7: GAS 000003d8: CALL 000003d9: PUSH2 0x03e0 000003dc: PUSH2 0x13b5 000003df: JUMP 000003e0: JUMPDEST 000003e1: SWAP1 000003e2: PUSH2 0x03ff 000003e5: PUSH1 0x40 000003e7: MLOAD 000003e8: SWAP3 000003e9: DUP4 000003ea: SWAP3 000003eb: ISZERO 000003ec: ISZERO 000003ed: DUP4 000003ee: MSTORE 000003ef: PUSH1 0x40 000003f1: PUSH1 0x20 000003f3: DUP5 000003f4: ADD 000003f5: MSTORE 000003f6: PUSH1 0x40 000003f8: DUP4 000003f9: ADD 000003fa: SWAP1 000003fb: PUSH2 0x0d9e 000003fe: JUMP 000003ff: JUMPDEST 00000400: SUB 00000401: SWAP1 00000402: RETURN 00000403: JUMPDEST 00000404: CALLVALUE 00000405: PUSH2 0x0103 00000408: JUMPI 00000409: PUSH1 0x00 0000040b: CALLDATASIZE 0000040c: PUSH1 0x03 0000040e: NOT 0000040f: ADD 00000410: SLT 00000411: PUSH2 0x0103 00000414: JUMPI 00000415: PUSH1 0x20 00000417: PUSH1 0x40 00000419: MLOAD 0000041a: PUSH1 0x00 0000041c: DUP2 0000041d: MSTORE 0000041e: RETURN 0000041f: JUMPDEST 00000420: CALLVALUE 00000421: PUSH2 0x0103 00000424: JUMPI 00000425: PUSH1 0x40 00000427: CALLDATASIZE 00000428: PUSH1 0x03 0000042a: NOT 0000042b: ADD 0000042c: SLT 0000042d: PUSH2 0x0103 00000430: JUMPI 00000431: PUSH2 0x0438 00000434: PUSH2 0x0cae 00000437: JUMP 00000438: JUMPDEST 00000439: PUSH1 0x04 0000043b: CALLDATALOAD 0000043c: PUSH1 0x00 0000043e: MSTORE 0000043f: PUSH1 0x00 00000441: PUSH1 0x20 00000443: MSTORE 00000444: PUSH1 0x40 00000446: PUSH1 0x00 00000448: KECCAK256 00000449: SWAP1 0000044a: PUSH1 0x01 0000044c: DUP1 0000044d: PUSH1 0xa0 0000044f: SHL 00000450: SUB 00000451: AND 00000452: PUSH1 0x00 00000454: MSTORE 00000455: PUSH1 0x20 00000457: MSTORE 00000458: PUSH1 0x20 0000045a: PUSH1 0xff 0000045c: PUSH1 0x40 0000045e: PUSH1 0x00 00000460: KECCAK256 00000461: SLOAD 00000462: AND 00000463: PUSH1 0x40 00000465: MLOAD 00000466: SWAP1 00000467: ISZERO 00000468: ISZERO 00000469: DUP2 0000046a: MSTORE 0000046b: RETURN 0000046c: JUMPDEST 0000046d: CALLVALUE 0000046e: PUSH2 0x0103 00000471: JUMPI 00000472: PUSH1 0x00 00000474: CALLDATASIZE 00000475: PUSH1 0x03 00000477: NOT 00000478: ADD 00000479: SLT 0000047a: PUSH2 0x0103 0000047d: JUMPI 0000047e: PUSH1 0x01 00000480: SLOAD 00000481: PUSH1 0x40 00000483: MLOAD 00000484: PUSH1 0x01 00000486: PUSH1 0x01 00000488: PUSH1 0xa0 0000048a: SHL 0000048b: SUB 0000048c: SWAP1 0000048d: SWAP2 0000048e: AND 0000048f: DUP2 00000490: MSTORE 00000491: PUSH1 0x20 00000493: SWAP1 00000494: RETURN 00000495: JUMPDEST 00000496: CALLVALUE 00000497: PUSH2 0x0103 0000049a: JUMPI 0000049b: PUSH1 0x40 0000049d: CALLDATASIZE 0000049e: PUSH1 0x03 000004a0: NOT 000004a1: ADD 000004a2: SLT 000004a3: PUSH2 0x0103 000004a6: JUMPI 000004a7: PUSH2 0x04ae 000004aa: PUSH2 0x0cae 000004ad: JUMP 000004ae: JUMPDEST 000004af: CALLER 000004b0: PUSH1 0x01 000004b2: PUSH1 0x01 000004b4: PUSH1 0xa0 000004b6: SHL 000004b7: SUB 000004b8: DUP3 000004b9: AND 000004ba: SUB 000004bb: PUSH2 0x04ca 000004be: JUMPI 000004bf: PUSH2 0x001b 000004c2: SWAP1 000004c3: PUSH1 0x04 000004c5: CALLDATALOAD 000004c6: PUSH2 0x120c 000004c9: JUMP 000004ca: JUMPDEST 000004cb: PUSH1 0x40 000004cd: MLOAD 000004ce: PUSH3 0x461bcd 000004d2: PUSH1 0xe5 000004d4: SHL 000004d5: DUP2 000004d6: MSTORE 000004d7: PUSH1 0x20 000004d9: PUSH1 0x04 000004db: DUP3 000004dc: ADD 000004dd: MSTORE 000004de: PUSH1 0x2f 000004e0: PUSH1 0x24 000004e2: DUP3 000004e3: ADD 000004e4: MSTORE 000004e5: PUSH32 0x416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365 00000506: PUSH1 0x44 00000508: DUP3 00000509: ADD 0000050a: MSTORE 0000050b: PUSH15 0x103937b632b9903337b91039b2b633 0000051b: PUSH1 0x89 0000051d: SHL 0000051e: PUSH1 0x64 00000520: DUP3 00000521: ADD 00000522: MSTORE 00000523: PUSH1 0x84 00000525: SWAP1 00000526: REVERT 00000527: JUMPDEST 00000528: CALLVALUE 00000529: PUSH2 0x0103 0000052c: JUMPI 0000052d: PUSH1 0x40 0000052f: CALLDATASIZE 00000530: PUSH1 0x03 00000532: NOT 00000533: ADD 00000534: SLT 00000535: PUSH2 0x0103 00000538: JUMPI 00000539: PUSH1 0x04 0000053b: CALLDATALOAD 0000053c: PUSH2 0x0543 0000053f: PUSH2 0x0cae 00000542: JUMP 00000543: JUMPDEST 00000544: DUP2 00000545: PUSH1 0x00 00000547: MSTORE 00000548: PUSH1 0x00 0000054a: PUSH1 0x20 0000054c: MSTORE 0000054d: PUSH2 0x055d 00000550: PUSH1 0x01 00000552: PUSH1 0x40 00000554: PUSH1 0x00 00000556: KECCAK256 00000557: ADD 00000558: SLOAD 00000559: PUSH2 0x1102 0000055c: JUMP 0000055d: JUMPDEST 0000055e: DUP2 0000055f: PUSH1 0x00 00000561: MSTORE 00000562: PUSH1 0x00 00000564: PUSH1 0x20 00000566: MSTORE 00000567: PUSH1 0x40 00000569: PUSH1 0x00 0000056b: KECCAK256 0000056c: SWAP1 0000056d: PUSH1 0x01 0000056f: DUP1 00000570: PUSH1 0xa0 00000572: SHL 00000573: SUB 00000574: AND 00000575: SWAP1 00000576: DUP2 00000577: PUSH1 0x00 00000579: MSTORE 0000057a: PUSH1 0x20 0000057c: MSTORE 0000057d: PUSH1 0xff 0000057f: PUSH1 0x40 00000581: PUSH1 0x00 00000583: KECCAK256 00000584: SLOAD 00000585: AND 00000586: ISZERO 00000587: PUSH2 0x058c 0000058a: JUMPI 0000058b: STOP 0000058c: JUMPDEST 0000058d: DUP2 0000058e: PUSH1 0x00 00000590: MSTORE 00000591: PUSH1 0x00 00000593: PUSH1 0x20 00000595: MSTORE 00000596: PUSH1 0x40 00000598: PUSH1 0x00 0000059a: KECCAK256 0000059b: DUP2 0000059c: PUSH1 0x00 0000059e: MSTORE 0000059f: PUSH1 0x20 000005a1: MSTORE 000005a2: PUSH1 0x40 000005a4: PUSH1 0x00 000005a6: KECCAK256 000005a7: PUSH1 0x01 000005a9: PUSH1 0xff 000005ab: NOT 000005ac: DUP3 000005ad: SLOAD 000005ae: AND 000005af: OR 000005b0: SWAP1 000005b1: SSTORE 000005b2: CALLER 000005b3: SWAP2 000005b4: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d 000005d5: PUSH1 0x00 000005d7: DUP1 000005d8: LOG4 000005d9: STOP 000005da: JUMPDEST 000005db: CALLVALUE 000005dc: PUSH2 0x0103 000005df: JUMPI 000005e0: PUSH1 0x20 000005e2: CALLDATASIZE 000005e3: PUSH1 0x03 000005e5: NOT 000005e6: ADD 000005e7: SLT 000005e8: PUSH2 0x0103 000005eb: JUMPI 000005ec: PUSH1 0x04 000005ee: CALLDATALOAD 000005ef: PUSH1 0x00 000005f1: MSTORE 000005f2: PUSH1 0x00 000005f4: PUSH1 0x20 000005f6: MSTORE 000005f7: PUSH1 0x20 000005f9: PUSH1 0x01 000005fb: PUSH1 0x40 000005fd: PUSH1 0x00 000005ff: KECCAK256 00000600: ADD 00000601: SLOAD 00000602: PUSH1 0x40 00000604: MLOAD 00000605: SWAP1 00000606: DUP2 00000607: MSTORE 00000608: RETURN 00000609: JUMPDEST 0000060a: CALLVALUE 0000060b: PUSH2 0x0103 0000060e: JUMPI 0000060f: PUSH1 0xe0 00000611: CALLDATASIZE 00000612: PUSH1 0x03 00000614: NOT 00000615: ADD 00000616: SLT 00000617: PUSH2 0x0103 0000061a: JUMPI 0000061b: PUSH1 0x04 0000061d: CALLDATALOAD 0000061e: PUSH1 0x01 00000620: PUSH1 0x01 00000622: PUSH1 0xa0 00000624: SHL 00000625: SUB 00000626: DUP2 00000627: AND 00000628: SWAP1 00000629: SUB 0000062a: PUSH2 0x0103 0000062d: JUMPI 0000062e: PUSH1 0x24 00000630: CALLDATALOAD 00000631: PUSH1 0x01 00000633: PUSH1 0x01 00000635: PUSH1 0xa0 00000637: SHL 00000638: SUB 00000639: DUP2 0000063a: AND 0000063b: DUP2 0000063c: SUB 0000063d: PUSH2 0x0103 00000640: JUMPI 00000641: PUSH2 0x0648 00000644: PUSH2 0x0c82 00000647: JUMP 00000648: JUMPDEST 00000649: SWAP1 0000064a: PUSH2 0x0651 0000064d: PUSH2 0x0c98 00000650: JUMP 00000651: JUMPDEST 00000652: SWAP2 00000653: PUSH1 0x01 00000655: PUSH1 0x01 00000657: PUSH1 0x40 00000659: SHL 0000065a: SUB 0000065b: PUSH1 0xa4 0000065d: CALLDATALOAD 0000065e: GT 0000065f: PUSH2 0x0103 00000662: JUMPI 00000663: CALLDATASIZE 00000664: PUSH1 0x23 00000666: PUSH1 0xa4 00000668: CALLDATALOAD 00000669: ADD 0000066a: SLT 0000066b: ISZERO 0000066c: PUSH2 0x0103 0000066f: JUMPI 00000670: PUSH1 0x01 00000672: PUSH1 0x01 00000674: PUSH1 0x40 00000676: SHL 00000677: SUB 00000678: PUSH1 0xa4 0000067a: CALLDATALOAD 0000067b: PUSH1 0x04 0000067d: ADD 0000067e: CALLDATALOAD 0000067f: GT 00000680: PUSH2 0x0103 00000683: JUMPI 00000684: CALLDATASIZE 00000685: PUSH1 0x24 00000687: PUSH1 0xa4 00000689: CALLDATALOAD 0000068a: PUSH1 0x04 0000068c: ADD 0000068d: CALLDATALOAD 0000068e: PUSH1 0x05 00000690: SHL 00000691: PUSH1 0xa4 00000693: CALLDATALOAD 00000694: ADD 00000695: ADD 00000696: GT 00000697: PUSH2 0x0103 0000069a: JUMPI 0000069b: PUSH2 0x06a2 0000069e: PUSH2 0x0fbd 000006a1: JUMP 000006a2: JUMPDEST 000006a3: PUSH1 0x40 000006a5: MLOAD 000006a6: PUSH4 0xc45a0155 000006ab: PUSH1 0xe0 000006ad: SHL 000006ae: DUP2 000006af: MSTORE 000006b0: SWAP1 000006b1: PUSH1 0x20 000006b3: DUP3 000006b4: PUSH1 0x04 000006b6: DUP2 000006b7: DUP2 000006b8: CALLDATALOAD 000006b9: PUSH1 0x01 000006bb: PUSH1 0x01 000006bd: PUSH1 0xa0 000006bf: SHL 000006c0: SUB 000006c1: AND 000006c2: GAS 000006c3: STATICCALL 000006c4: SWAP2 000006c5: DUP3 000006c6: ISZERO 000006c7: PUSH2 0x026e 000006ca: JUMPI 000006cb: PUSH1 0x00 000006cd: SWAP3 000006ce: PUSH2 0x0b53 000006d1: JUMPI 000006d2: JUMPDEST 000006d3: POP 000006d4: PUSH1 0x40 000006d6: MLOAD 000006d7: PUSH4 0xe6a43905 000006dc: PUSH1 0xe0 000006de: SHL 000006df: DUP2 000006e0: MSTORE 000006e1: PUSH1 0x01 000006e3: PUSH1 0x01 000006e5: PUSH1 0xa0 000006e7: SHL 000006e8: SUB 000006e9: DUP3 000006ea: DUP2 000006eb: AND 000006ec: PUSH1 0x04 000006ee: DUP4 000006ef: ADD 000006f0: MSTORE 000006f1: DUP6 000006f2: DUP2 000006f3: AND 000006f4: PUSH1 0x24 000006f6: DUP4 000006f7: ADD 000006f8: MSTORE 000006f9: SWAP1 000006fa: SWAP3 000006fb: PUSH1 0x20 000006fd: SWAP2 000006fe: DUP5 000006ff: SWAP2 00000700: PUSH1 0x44 00000702: SWAP2 00000703: DUP4 00000704: SWAP2 00000705: AND 00000706: GAS 00000707: STATICCALL 00000708: SWAP2 00000709: DUP3 0000070a: ISZERO 0000070b: PUSH2 0x026e 0000070e: JUMPI 0000070f: PUSH1 0x00 00000711: SWAP3 00000712: PUSH2 0x0b32 00000715: JUMPI 00000716: JUMPDEST 00000717: POP 00000718: PUSH1 0x40 0000071a: MLOAD 0000071b: PUSH4 0x0dfe1681 00000720: PUSH1 0xe0 00000722: SHL 00000723: DUP2 00000724: MSTORE 00000725: SWAP3 00000726: PUSH1 0x20 00000728: DUP5 00000729: PUSH1 0x04 0000072b: DUP2 0000072c: PUSH1 0x01 0000072e: PUSH1 0x01 00000730: PUSH1 0xa0 00000732: SHL 00000733: SUB 00000734: DUP8 00000735: AND 00000736: GAS 00000737: STATICCALL 00000738: SWAP4 00000739: DUP5 0000073a: ISZERO 0000073b: PUSH2 0x026e 0000073e: JUMPI 0000073f: PUSH1 0x00 00000741: SWAP5 00000742: PUSH2 0x0b01 00000745: JUMPI 00000746: JUMPDEST 00000747: POP 00000748: PUSH1 0x40 0000074a: MLOAD 0000074b: PUSH4 0x0240bc6b 00000750: PUSH1 0xe2 00000752: SHL 00000753: DUP2 00000754: MSTORE 00000755: PUSH1 0x60 00000757: DUP2 00000758: PUSH1 0x04 0000075a: DUP2 0000075b: PUSH1 0x01 0000075d: PUSH1 0x01 0000075f: PUSH1 0xa0 00000761: SHL 00000762: SUB 00000763: DUP9 00000764: AND 00000765: GAS 00000766: STATICCALL 00000767: SWAP2 00000768: DUP3 00000769: ISZERO 0000076a: PUSH2 0x026e 0000076d: JUMPI 0000076e: PUSH1 0x00 00000770: SWAP2 00000771: PUSH1 0x00 00000773: SWAP4 00000774: PUSH2 0x0ace 00000777: JUMPI 00000778: JUMPDEST 00000779: POP 0000077a: PUSH1 0x40 0000077c: MLOAD 0000077d: PUSH4 0x50d25bcd 00000782: PUSH1 0xe0 00000784: SHL 00000785: DUP2 00000786: MSTORE 00000787: SWAP1 00000788: PUSH1 0x20 0000078a: DUP3 0000078b: PUSH1 0x04 0000078d: DUP2 0000078e: PUSH1 0x01 00000790: PUSH1 0x01 00000792: PUSH1 0xa0 00000794: SHL 00000795: SUB 00000796: DUP6 00000797: AND 00000798: GAS 00000799: STATICCALL 0000079a: SWAP2 0000079b: DUP3 0000079c: ISZERO 0000079d: PUSH2 0x026e 000007a0: JUMPI 000007a1: PUSH1 0x00 000007a3: SWAP3 000007a4: PUSH2 0x0a99 000007a7: JUMPI 000007a8: JUMPDEST 000007a9: POP 000007aa: PUSH1 0x40 000007ac: MLOAD 000007ad: PUSH4 0x313ce567 000007b2: PUSH1 0xe0 000007b4: SHL 000007b5: DUP2 000007b6: MSTORE 000007b7: SWAP2 000007b8: SWAP1 000007b9: PUSH1 0x20 000007bb: SWAP1 000007bc: DUP4 000007bd: SWAP1 000007be: PUSH1 0x04 000007c0: SWAP1 000007c1: DUP3 000007c2: SWAP1 000007c3: PUSH1 0x01 000007c5: PUSH1 0x01 000007c7: PUSH1 0xa0 000007c9: SHL 000007ca: SUB 000007cb: AND 000007cc: GAS 000007cd: STATICCALL 000007ce: SWAP2 000007cf: DUP3 000007d0: ISZERO 000007d1: PUSH2 0x026e 000007d4: JUMPI 000007d5: PUSH1 0x00 000007d7: SWAP3 000007d8: PUSH2 0x0a5b 000007db: JUMPI 000007dc: JUMPDEST 000007dd: POP 000007de: PUSH1 0x40 000007e0: MLOAD 000007e1: PUSH4 0x70a08231 000007e6: PUSH1 0xe0 000007e8: SHL 000007e9: DUP2 000007ea: MSTORE 000007eb: ADDRESS 000007ec: PUSH1 0x04 000007ee: DUP3 000007ef: ADD 000007f0: MSTORE 000007f1: SWAP3 000007f2: PUSH1 0x20 000007f4: DUP5 000007f5: PUSH1 0x24 000007f7: DUP2 000007f8: PUSH1 0x01 000007fa: PUSH1 0x01 000007fc: PUSH1 0xa0 000007fe: SHL 000007ff: SUB 00000800: DUP11 00000801: AND 00000802: GAS 00000803: STATICCALL 00000804: SWAP4 00000805: DUP5 00000806: ISZERO 00000807: PUSH2 0x026e 0000080a: JUMPI 0000080b: PUSH1 0x00 0000080d: SWAP5 0000080e: PUSH2 0x0a27 00000811: JUMPI 00000812: JUMPDEST 00000813: POP 00000814: PUSH1 0x40 00000816: MLOAD 00000817: SWAP5 00000818: PUSH4 0x07c0329d 0000081d: PUSH1 0xe2 0000081f: SHL 00000820: DUP7 00000821: MSTORE 00000822: PUSH1 0x44 00000824: DUP7 00000825: ADD 00000826: PUSH1 0xc4 00000828: CALLDATALOAD 00000829: PUSH1 0x04 0000082b: DUP9 0000082c: ADD 0000082d: MSTORE 0000082e: PUSH1 0x40 00000830: PUSH1 0x24 00000832: DUP9 00000833: ADD 00000834: MSTORE 00000835: PUSH1 0xa4 00000837: CALLDATALOAD 00000838: PUSH1 0x04 0000083a: ADD 0000083b: CALLDATALOAD 0000083c: SWAP1 0000083d: MSTORE 0000083e: PUSH1 0x64 00000840: DUP7 00000841: ADD 00000842: DUP7 00000843: PUSH1 0x24 00000845: PUSH1 0xa4 00000847: CALLDATALOAD 00000848: ADD 00000849: PUSH1 0x00 0000084b: JUMPDEST 0000084c: PUSH1 0xa4 0000084e: CALLDATALOAD 0000084f: PUSH1 0x04 00000851: ADD 00000852: CALLDATALOAD 00000853: DUP2 00000854: LT 00000855: PUSH2 0x09ef 00000858: JUMPI 00000859: POP 0000085a: PUSH1 0x00 0000085c: SWAP3 0000085d: DUP3 0000085e: SWAP1 0000085f: SUB 00000860: SWAP1 00000861: POP 00000862: DUP2 00000863: PUSH1 0x04 00000865: CALLDATALOAD 00000866: PUSH1 0x01 00000868: PUSH1 0x01 0000086a: PUSH1 0xa0 0000086c: SHL 0000086d: SUB 0000086e: AND 0000086f: GAS 00000870: STATICCALL 00000871: SWAP6 00000872: DUP7 00000873: ISZERO 00000874: PUSH2 0x026e 00000877: JUMPI 00000878: PUSH1 0x00 0000087a: SWAP7 0000087b: PUSH2 0x0937 0000087e: JUMPI 0000087f: JUMPDEST 00000880: POP 00000881: PUSH2 0x0919 00000884: SWAP4 00000885: PUSH2 0x0928 00000888: SWAP7 00000889: SWAP4 0000088a: PUSH2 0x03ff 0000088d: SWAP10 0000088e: SWAP9 0000088f: SWAP7 00000890: SWAP4 00000891: PUSH1 0xff 00000893: SWAP4 00000894: PUSH2 0x08bd 00000897: PUSH1 0x40 00000899: SWAP15 0000089a: PUSH2 0x08a9 0000089d: PUSH1 0x84 0000089f: CALLDATALOAD 000008a0: DUP3 000008a1: DUP14 000008a2: PUSH1 0x04 000008a4: CALLDATALOAD 000008a5: PUSH2 0x19b5 000008a8: JUMP 000008a9: JUMPDEST 000008aa: SWAP11 000008ab: PUSH2 0x08b3 000008ae: DUP13 000008af: PUSH2 0x19a5 000008b2: JUMP 000008b3: JUMPDEST 000008b4: MLOAD 000008b5: SWAP2 000008b6: PUSH1 0x04 000008b8: CALLDATALOAD 000008b9: PUSH2 0x19b5 000008bc: JUMP 000008bd: JUMPDEST 000008be: SWAP11 000008bf: DUP15 000008c0: MLOAD 000008c1: SWAP15 000008c2: DUP16 000008c3: SWAP15 000008c4: DUP16 000008c5: SWAP3 000008c6: NUMBER 000008c7: DUP5 000008c8: MSTORE 000008c9: PUSH1 0x01 000008cb: DUP1 000008cc: PUSH1 0xa0 000008ce: SHL 000008cf: SUB 000008d0: AND 000008d1: PUSH1 0x20 000008d3: DUP5 000008d4: ADD 000008d5: MSTORE 000008d6: PUSH1 0x01 000008d8: DUP1 000008d9: PUSH1 0xa0 000008db: SHL 000008dc: SUB 000008dd: AND 000008de: SWAP2 000008df: ADD 000008e0: MSTORE 000008e1: DUP13 000008e2: PUSH1 0x60 000008e4: PUSH1 0x01 000008e6: PUSH1 0x01 000008e8: PUSH1 0x70 000008ea: SHL 000008eb: SUB 000008ec: DUP1 000008ed: SWAP5 000008ee: AND 000008ef: SWAP2 000008f0: ADD 000008f1: MSTORE 000008f2: AND 000008f3: PUSH1 0x80 000008f5: DUP13 000008f6: ADD 000008f7: MSTORE 000008f8: PUSH1 0xa0 000008fa: DUP12 000008fb: ADD 000008fc: MSTORE 000008fd: AND 000008fe: PUSH1 0xc0 00000900: DUP10 00000901: ADD 00000902: MSTORE 00000903: PUSH1 0xe0 00000905: DUP9 00000906: ADD 00000907: MSTORE 00000908: PUSH2 0x0160 0000090b: DUP1 0000090c: PUSH2 0x0100 0000090f: DUP10 00000910: ADD 00000911: MSTORE 00000912: DUP8 00000913: ADD 00000914: SWAP1 00000915: PUSH2 0x0cf0 00000918: JUMP 00000919: JUMPDEST 0000091a: SWAP1 0000091b: DUP6 0000091c: DUP3 0000091d: SUB 0000091e: PUSH2 0x0120 00000921: DUP8 00000922: ADD 00000923: MSTORE 00000924: PUSH2 0x0cf0 00000927: JUMP 00000928: JUMPDEST 00000929: SWAP1 0000092a: DUP4 0000092b: DUP3 0000092c: SUB 0000092d: PUSH2 0x0140 00000930: DUP6 00000931: ADD 00000932: MSTORE 00000933: PUSH2 0x0cf0 00000936: JUMP 00000937: JUMPDEST 00000938: SWAP10 00000939: SWAP6 0000093a: POP 0000093b: RETURNDATASIZE 0000093c: DUP1 0000093d: PUSH1 0x00 0000093f: DUP13 00000940: RETURNDATACOPY 00000941: PUSH2 0x094a 00000944: DUP2 00000945: DUP13 00000946: PUSH2 0x0d3f 00000949: JUMP 0000094a: JUMPDEST 0000094b: DUP11 0000094c: ADD 0000094d: SWAP10 0000094e: PUSH1 0x20 00000950: DUP2 00000951: DUP13 00000952: SUB 00000953: SLT 00000954: PUSH2 0x0103 00000957: JUMPI 00000958: DUP1 00000959: MLOAD 0000095a: SWAP1 0000095b: PUSH1 0x01 0000095d: PUSH1 0x01 0000095f: PUSH1 0x40 00000961: SHL 00000962: SUB 00000963: DUP3 00000964: GT 00000965: PUSH2 0x0103 00000968: JUMPI 00000969: ADD 0000096a: SWAP10 0000096b: DUP1 0000096c: PUSH1 0x1f 0000096e: DUP13 0000096f: ADD 00000970: SLT 00000971: ISZERO 00000972: PUSH2 0x0103 00000975: JUMPI 00000976: DUP11 00000977: MLOAD 00000978: SWAP1 00000979: PUSH1 0x01 0000097b: PUSH1 0x01 0000097d: PUSH1 0x40 0000097f: SHL 00000980: SUB 00000981: DUP3 00000982: GT 00000983: PUSH2 0x09d9 00000986: JUMPI 00000987: DUP2 00000988: PUSH1 0x05 0000098a: SHL 0000098b: SWAP12 0000098c: DUP13 0000098d: SWAP3 0000098e: PUSH2 0x099d 00000991: PUSH1 0x20 00000993: PUSH1 0x40 00000995: MLOAD 00000996: SWAP6 00000997: ADD 00000998: DUP6 00000999: PUSH2 0x0d3f 0000099c: JUMP 0000099d: JUMPDEST 0000099e: DUP4 0000099f: MSTORE 000009a0: PUSH1 0x20 000009a2: DUP1 000009a3: DUP5 000009a4: ADD 000009a5: SWAP14 000009a6: DUP3 000009a7: ADD 000009a8: ADD 000009a9: SWAP2 000009aa: DUP3 000009ab: GT 000009ac: PUSH2 0x0103 000009af: JUMPI 000009b0: PUSH1 0x20 000009b2: ADD 000009b3: SWAP12 000009b4: JUMPDEST 000009b5: DUP2 000009b6: DUP14 000009b7: LT 000009b8: PUSH2 0x09c9 000009bb: JUMPI 000009bc: POP 000009bd: SWAP7 000009be: SWAP11 000009bf: POP 000009c0: SWAP6 000009c1: POP 000009c2: PUSH2 0x0919 000009c5: PUSH2 0x087f 000009c8: JUMP 000009c9: JUMPDEST 000009ca: DUP13 000009cb: MLOAD 000009cc: DUP2 000009cd: MSTORE 000009ce: PUSH1 0x20 000009d0: SWAP13 000009d1: DUP14 000009d2: ADD 000009d3: SWAP13 000009d4: ADD 000009d5: PUSH2 0x09b4 000009d8: JUMP 000009d9: JUMPDEST 000009da: PUSH4 0x4e487b71 000009df: PUSH1 0xe0 000009e1: SHL 000009e2: PUSH1 0x00 000009e4: MSTORE 000009e5: PUSH1 0x41 000009e7: PUSH1 0x04 000009e9: MSTORE 000009ea: PUSH1 0x24 000009ec: PUSH1 0x00 000009ee: REVERT 000009ef: JUMPDEST 000009f0: SWAP1 000009f1: SWAP3 000009f2: SWAP1 000009f3: SWAP2 000009f4: POP 000009f5: DUP3 000009f6: CALLDATALOAD 000009f7: SWAP1 000009f8: PUSH1 0x01 000009fa: PUSH1 0x01 000009fc: PUSH1 0xa0 000009fe: SHL 000009ff: SUB 00000a00: DUP3 00000a01: AND 00000a02: DUP3 00000a03: SUB 00000a04: PUSH2 0x0103 00000a07: JUMPI 00000a08: PUSH1 0x01 00000a0a: PUSH1 0x01 00000a0c: PUSH1 0xa0 00000a0e: SHL 00000a0f: SUB 00000a10: SWAP1 00000a11: SWAP2 00000a12: AND 00000a13: DUP2 00000a14: MSTORE 00000a15: PUSH1 0x20 00000a17: SWAP1 00000a18: DUP2 00000a19: ADD 00000a1a: SWAP3 00000a1b: DUP10 00000a1c: SWAP3 00000a1d: SWAP2 00000a1e: ADD 00000a1f: SWAP1 00000a20: PUSH1 0x01 00000a22: ADD 00000a23: PUSH2 0x084b 00000a26: JUMP 00000a27: JUMPDEST 00000a28: SWAP1 00000a29: SWAP4 00000a2a: POP 00000a2b: PUSH1 0x20 00000a2d: DUP2 00000a2e: RETURNDATASIZE 00000a2f: PUSH1 0x20 00000a31: GT 00000a32: PUSH2 0x0a53 00000a35: JUMPI 00000a36: JUMPDEST 00000a37: DUP2 00000a38: PUSH2 0x0a43 00000a3b: PUSH1 0x20 00000a3d: SWAP4 00000a3e: DUP4 00000a3f: PUSH2 0x0d3f 00000a42: JUMP 00000a43: JUMPDEST 00000a44: DUP2 00000a45: ADD 00000a46: SUB 00000a47: SLT 00000a48: PUSH2 0x0103 00000a4b: JUMPI 00000a4c: MLOAD 00000a4d: SWAP3 00000a4e: DUP10 00000a4f: PUSH2 0x0812 00000a52: JUMP 00000a53: JUMPDEST 00000a54: RETURNDATASIZE 00000a55: SWAP2 00000a56: POP 00000a57: PUSH2 0x0a36 00000a5a: JUMP 00000a5b: JUMPDEST 00000a5c: SWAP1 00000a5d: SWAP2 00000a5e: POP 00000a5f: PUSH1 0x20 00000a61: DUP2 00000a62: RETURNDATASIZE 00000a63: PUSH1 0x20 00000a65: GT 00000a66: PUSH2 0x0a91 00000a69: JUMPI 00000a6a: JUMPDEST 00000a6b: DUP2 00000a6c: PUSH2 0x0a77 00000a6f: PUSH1 0x20 00000a71: SWAP4 00000a72: DUP4 00000a73: PUSH2 0x0d3f 00000a76: JUMP 00000a77: JUMPDEST 00000a78: DUP2 00000a79: ADD 00000a7a: SUB 00000a7b: SLT 00000a7c: PUSH2 0x0103 00000a7f: JUMPI 00000a80: MLOAD 00000a81: PUSH1 0xff 00000a83: DUP2 00000a84: AND 00000a85: DUP2 00000a86: SUB 00000a87: PUSH2 0x0103 00000a8a: JUMPI 00000a8b: SWAP1 00000a8c: DUP9 00000a8d: PUSH2 0x07dc 00000a90: JUMP 00000a91: JUMPDEST 00000a92: RETURNDATASIZE 00000a93: SWAP2 00000a94: POP 00000a95: PUSH2 0x0a6a 00000a98: JUMP 00000a99: JUMPDEST 00000a9a: SWAP2 00000a9b: POP 00000a9c: PUSH1 0x20 00000a9e: DUP3 00000a9f: RETURNDATASIZE 00000aa0: PUSH1 0x20 00000aa2: GT 00000aa3: PUSH2 0x0ac6 00000aa6: JUMPI 00000aa7: JUMPDEST 00000aa8: DUP2 00000aa9: PUSH2 0x0ab4 00000aac: PUSH1 0x20 00000aae: SWAP4 00000aaf: DUP4 00000ab0: PUSH2 0x0d3f 00000ab3: JUMP 00000ab4: JUMPDEST 00000ab5: DUP2 00000ab6: ADD 00000ab7: SUB 00000ab8: SLT 00000ab9: PUSH2 0x0103 00000abc: JUMPI 00000abd: SWAP1 00000abe: MLOAD 00000abf: SWAP1 00000ac0: PUSH1 0x20 00000ac2: PUSH2 0x07a8 00000ac5: JUMP 00000ac6: JUMPDEST 00000ac7: RETURNDATASIZE 00000ac8: SWAP2 00000ac9: POP 00000aca: PUSH2 0x0aa7 00000acd: JUMP 00000ace: JUMPDEST 00000acf: SWAP1 00000ad0: SWAP3 00000ad1: POP 00000ad2: PUSH2 0x0af2 00000ad5: SWAP2 00000ad6: POP 00000ad7: PUSH1 0x60 00000ad9: RETURNDATASIZE 00000ada: DUP2 00000adb: GT 00000adc: PUSH2 0x0afa 00000adf: JUMPI 00000ae0: JUMPDEST 00000ae1: PUSH2 0x0aea 00000ae4: DUP2 00000ae5: DUP4 00000ae6: PUSH2 0x0d3f 00000ae9: JUMP 00000aea: JUMPDEST 00000aeb: DUP2 00000aec: ADD 00000aed: SWAP1 00000aee: PUSH2 0x14ac 00000af1: JUMP 00000af2: JUMPDEST 00000af3: POP 00000af4: SWAP2 00000af5: DUP8 00000af6: PUSH2 0x0778 00000af9: JUMP 00000afa: JUMPDEST 00000afb: POP 00000afc: RETURNDATASIZE 00000afd: PUSH2 0x0ae0 00000b00: JUMP 00000b01: JUMPDEST 00000b02: PUSH2 0x0b24 00000b05: SWAP2 00000b06: SWAP5 00000b07: POP 00000b08: PUSH1 0x20 00000b0a: RETURNDATASIZE 00000b0b: PUSH1 0x20 00000b0d: GT 00000b0e: PUSH2 0x0b2b 00000b11: JUMPI 00000b12: JUMPDEST 00000b13: PUSH2 0x0b1c 00000b16: DUP2 00000b17: DUP4 00000b18: PUSH2 0x0d3f 00000b1b: JUMP 00000b1c: JUMPDEST 00000b1d: DUP2 00000b1e: ADD 00000b1f: SWAP1 00000b20: PUSH2 0x1986 00000b23: JUMP 00000b24: JUMPDEST 00000b25: SWAP3 00000b26: DUP6 00000b27: PUSH2 0x0746 00000b2a: JUMP 00000b2b: JUMPDEST 00000b2c: POP 00000b2d: RETURNDATASIZE 00000b2e: PUSH2 0x0b12 00000b31: JUMP 00000b32: JUMPDEST 00000b33: PUSH2 0x0b4c 00000b36: SWAP2 00000b37: SWAP3 00000b38: POP 00000b39: PUSH1 0x20 00000b3b: RETURNDATASIZE 00000b3c: PUSH1 0x20 00000b3e: GT 00000b3f: PUSH2 0x0b2b 00000b42: JUMPI 00000b43: PUSH2 0x0b1c 00000b46: DUP2 00000b47: DUP4 00000b48: PUSH2 0x0d3f 00000b4b: JUMP 00000b4c: JUMPDEST 00000b4d: SWAP1 00000b4e: DUP5 00000b4f: PUSH2 0x0716 00000b52: JUMP 00000b53: JUMPDEST 00000b54: PUSH2 0x0b6d 00000b57: SWAP2 00000b58: SWAP3 00000b59: POP 00000b5a: PUSH1 0x20 00000b5c: RETURNDATASIZE 00000b5d: PUSH1 0x20 00000b5f: GT 00000b60: PUSH2 0x0b2b 00000b63: JUMPI 00000b64: PUSH2 0x0b1c 00000b67: DUP2 00000b68: DUP4 00000b69: PUSH2 0x0d3f 00000b6c: JUMP 00000b6d: JUMPDEST 00000b6e: SWAP1 00000b6f: DUP5 00000b70: PUSH2 0x06d2 00000b73: JUMP 00000b74: JUMPDEST 00000b75: CALLVALUE 00000b76: PUSH2 0x0103 00000b79: JUMPI 00000b7a: PUSH1 0x20 00000b7c: CALLDATASIZE 00000b7d: PUSH1 0x03 00000b7f: NOT 00000b80: ADD 00000b81: SLT 00000b82: PUSH2 0x0103 00000b85: JUMPI 00000b86: PUSH2 0x0b8d 00000b89: PUSH2 0x0c6c 00000b8c: JUMP 00000b8d: JUMPDEST 00000b8e: PUSH2 0x0b95 00000b91: PUSH2 0x0dc3 00000b94: JUMP 00000b95: JUMPDEST 00000b96: PUSH1 0x01 00000b98: DUP1 00000b99: SLOAD 00000b9a: PUSH1 0x01 00000b9c: PUSH1 0x01 00000b9e: PUSH1 0xa0 00000ba0: SHL 00000ba1: SUB 00000ba2: SWAP3 00000ba3: DUP4 00000ba4: AND 00000ba5: PUSH1 0x01 00000ba7: PUSH1 0x01 00000ba9: PUSH1 0xa0 00000bab: SHL 00000bac: SUB 00000bad: NOT 00000bae: DUP3 00000baf: AND 00000bb0: DUP2 00000bb1: OR 00000bb2: SWAP1 00000bb3: SWAP3 00000bb4: SSTORE 00000bb5: SWAP1 00000bb6: SWAP2 00000bb7: AND 00000bb8: PUSH32 0x57005c5083fa0952870a7906715a2f6f9ef2d01b4a423e4b3ce59c6129b1a763 00000bd9: PUSH1 0x00 00000bdb: DUP1 00000bdc: LOG3 00000bdd: STOP 00000bde: JUMPDEST 00000bdf: CALLVALUE 00000be0: PUSH2 0x0103 00000be3: JUMPI 00000be4: PUSH1 0x00 00000be6: CALLDATASIZE 00000be7: PUSH1 0x03 00000be9: NOT 00000bea: ADD 00000beb: SLT 00000bec: PUSH2 0x0103 00000bef: JUMPI 00000bf0: PUSH1 0x20 00000bf2: PUSH1 0x40 00000bf4: MLOAD 00000bf5: PUSH32 0xd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63 00000c16: DUP2 00000c17: MSTORE 00000c18: RETURN 00000c19: JUMPDEST 00000c1a: CALLVALUE 00000c1b: PUSH2 0x0103 00000c1e: JUMPI 00000c1f: PUSH1 0x20 00000c21: CALLDATASIZE 00000c22: PUSH1 0x03 00000c24: NOT 00000c25: ADD 00000c26: SLT 00000c27: PUSH2 0x0103 00000c2a: JUMPI 00000c2b: PUSH1 0x04 00000c2d: CALLDATALOAD 00000c2e: SWAP1 00000c2f: PUSH4 0xffffffff 00000c34: PUSH1 0xe0 00000c36: SHL 00000c37: DUP3 00000c38: AND 00000c39: DUP1 00000c3a: SWAP3 00000c3b: SUB 00000c3c: PUSH2 0x0103 00000c3f: JUMPI 00000c40: PUSH1 0x20 00000c42: SWAP2 00000c43: PUSH4 0x7965db0b 00000c48: PUSH1 0xe0 00000c4a: SHL 00000c4b: DUP2 00000c4c: EQ 00000c4d: SWAP1 00000c4e: DUP2 00000c4f: ISZERO 00000c50: PUSH2 0x0c5b 00000c53: JUMPI 00000c54: JUMPDEST 00000c55: POP 00000c56: ISZERO 00000c57: ISZERO 00000c58: DUP2 00000c59: MSTORE 00000c5a: RETURN 00000c5b: JUMPDEST 00000c5c: PUSH4 0x01ffc9a7 00000c61: PUSH1 0xe0 00000c63: SHL 00000c64: EQ 00000c65: SWAP1 00000c66: POP 00000c67: DUP4 00000c68: PUSH2 0x0c54 00000c6b: JUMP 00000c6c: JUMPDEST 00000c6d: PUSH1 0x04 00000c6f: CALLDATALOAD 00000c70: SWAP1 00000c71: PUSH1 0x01 00000c73: PUSH1 0x01 00000c75: PUSH1 0xa0 00000c77: SHL 00000c78: SUB 00000c79: DUP3 00000c7a: AND 00000c7b: DUP3 00000c7c: SUB 00000c7d: PUSH2 0x0103 00000c80: JUMPI 00000c81: JUMP 00000c82: JUMPDEST 00000c83: PUSH1 0x44 00000c85: CALLDATALOAD 00000c86: SWAP1 00000c87: PUSH1 0x01 00000c89: PUSH1 0x01 00000c8b: PUSH1 0xa0 00000c8d: SHL 00000c8e: SUB 00000c8f: DUP3 00000c90: AND 00000c91: DUP3 00000c92: SUB 00000c93: PUSH2 0x0103 00000c96: JUMPI 00000c97: JUMP 00000c98: JUMPDEST 00000c99: PUSH1 0x64 00000c9b: CALLDATALOAD 00000c9c: SWAP1 00000c9d: PUSH1 0x01 00000c9f: PUSH1 0x01 00000ca1: PUSH1 0xa0 00000ca3: SHL 00000ca4: SUB 00000ca5: DUP3 00000ca6: AND 00000ca7: DUP3 00000ca8: SUB 00000ca9: PUSH2 0x0103 00000cac: JUMPI 00000cad: JUMP 00000cae: JUMPDEST 00000caf: PUSH1 0x24 00000cb1: CALLDATALOAD 00000cb2: SWAP1 00000cb3: PUSH1 0x01 00000cb5: PUSH1 0x01 00000cb7: PUSH1 0xa0 00000cb9: SHL 00000cba: SUB 00000cbb: DUP3 00000cbc: AND 00000cbd: DUP3 00000cbe: SUB 00000cbf: PUSH2 0x0103 00000cc2: JUMPI 00000cc3: JUMP 00000cc4: JUMPDEST 00000cc5: PUSH1 0x84 00000cc7: CALLDATALOAD 00000cc8: SWAP1 00000cc9: PUSH1 0x01 00000ccb: PUSH1 0x01 00000ccd: PUSH1 0xa0 00000ccf: SHL 00000cd0: SUB 00000cd1: DUP3 00000cd2: AND 00000cd3: DUP3 00000cd4: SUB 00000cd5: PUSH2 0x0103 00000cd8: JUMPI 00000cd9: JUMP 00000cda: JUMPDEST 00000cdb: PUSH1 0xa4 00000cdd: CALLDATALOAD 00000cde: SWAP1 00000cdf: PUSH1 0x01 00000ce1: PUSH1 0x01 00000ce3: PUSH1 0xa0 00000ce5: SHL 00000ce6: SUB 00000ce7: DUP3 00000ce8: AND 00000ce9: DUP3 00000cea: SUB 00000ceb: PUSH2 0x0103 00000cee: JUMPI 00000cef: JUMP 00000cf0: JUMPDEST 00000cf1: SWAP1 00000cf2: DUP2 00000cf3: MLOAD 00000cf4: DUP1 00000cf5: DUP3 00000cf6: MSTORE 00000cf7: PUSH1 0x20 00000cf9: DUP1 00000cfa: DUP1 00000cfb: SWAP4 00000cfc: ADD 00000cfd: SWAP4 00000cfe: ADD 00000cff: SWAP2 00000d00: PUSH1 0x00 00000d02: JUMPDEST 00000d03: DUP3 00000d04: DUP2 00000d05: LT 00000d06: PUSH2 0x0d10 00000d09: JUMPI 00000d0a: POP 00000d0b: POP 00000d0c: POP 00000d0d: POP 00000d0e: SWAP1 00000d0f: JUMP 00000d10: JUMPDEST 00000d11: DUP4 00000d12: MLOAD 00000d13: DUP6 00000d14: MSTORE 00000d15: SWAP4 00000d16: DUP2 00000d17: ADD 00000d18: SWAP4 00000d19: SWAP3 00000d1a: DUP2 00000d1b: ADD 00000d1c: SWAP3 00000d1d: PUSH1 0x01 00000d1f: ADD 00000d20: PUSH2 0x0d02 00000d23: JUMP 00000d24: JUMPDEST 00000d25: PUSH1 0x80 00000d27: DUP2 00000d28: ADD 00000d29: SWAP1 00000d2a: DUP2 00000d2b: LT 00000d2c: PUSH1 0x01 00000d2e: PUSH1 0x01 00000d30: PUSH1 0x40 00000d32: SHL 00000d33: SUB 00000d34: DUP3 00000d35: GT 00000d36: OR 00000d37: PUSH2 0x09d9 00000d3a: JUMPI 00000d3b: PUSH1 0x40 00000d3d: MSTORE 00000d3e: JUMP 00000d3f: JUMPDEST 00000d40: SWAP1 00000d41: PUSH1 0x1f 00000d43: DUP1 00000d44: NOT 00000d45: SWAP2 00000d46: ADD 00000d47: AND 00000d48: DUP2 00000d49: ADD 00000d4a: SWAP1 00000d4b: DUP2 00000d4c: LT 00000d4d: PUSH1 0x01 00000d4f: PUSH1 0x01 00000d51: PUSH1 0x40 00000d53: SHL 00000d54: SUB 00000d55: DUP3 00000d56: GT 00000d57: OR 00000d58: PUSH2 0x09d9 00000d5b: JUMPI 00000d5c: PUSH1 0x40 00000d5e: MSTORE 00000d5f: JUMP 00000d60: JUMPDEST 00000d61: PUSH1 0x01 00000d63: PUSH1 0x01 00000d65: PUSH1 0x40 00000d67: SHL 00000d68: SUB 00000d69: DUP2 00000d6a: GT 00000d6b: PUSH2 0x09d9 00000d6e: JUMPI 00000d6f: PUSH1 0x1f 00000d71: ADD 00000d72: PUSH1 0x1f 00000d74: NOT 00000d75: AND 00000d76: PUSH1 0x20 00000d78: ADD 00000d79: SWAP1 00000d7a: JUMP 00000d7b: JUMPDEST 00000d7c: PUSH1 0x00 00000d7e: JUMPDEST 00000d7f: DUP4 00000d80: DUP2 00000d81: LT 00000d82: PUSH2 0x0d8e 00000d85: JUMPI 00000d86: POP 00000d87: POP 00000d88: PUSH1 0x00 00000d8a: SWAP2 00000d8b: ADD 00000d8c: MSTORE 00000d8d: JUMP 00000d8e: JUMPDEST 00000d8f: DUP2 00000d90: DUP2 00000d91: ADD 00000d92: MLOAD 00000d93: DUP4 00000d94: DUP3 00000d95: ADD 00000d96: MSTORE 00000d97: PUSH1 0x20 00000d99: ADD 00000d9a: PUSH2 0x0d7e 00000d9d: JUMP 00000d9e: JUMPDEST 00000d9f: SWAP1 00000da0: PUSH1 0x20 00000da2: SWAP2 00000da3: PUSH2 0x0db7 00000da6: DUP2 00000da7: MLOAD 00000da8: DUP1 00000da9: SWAP3 00000daa: DUP2 00000dab: DUP6 00000dac: MSTORE 00000dad: DUP6 00000dae: DUP1 00000daf: DUP7 00000db0: ADD 00000db1: SWAP2 00000db2: ADD 00000db3: PUSH2 0x0d7b 00000db6: JUMP 00000db7: JUMPDEST 00000db8: PUSH1 0x1f 00000dba: ADD 00000dbb: PUSH1 0x1f 00000dbd: NOT 00000dbe: AND 00000dbf: ADD 00000dc0: ADD 00000dc1: SWAP1 00000dc2: JUMP 00000dc3: JUMPDEST 00000dc4: CALLER 00000dc5: PUSH1 0x00 00000dc7: SWAP1 00000dc8: DUP2 00000dc9: MSTORE 00000dca: PUSH32 0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5 00000deb: PUSH1 0x20 00000ded: SWAP1 00000dee: DUP2 00000def: MSTORE 00000df0: PUSH1 0x40 00000df2: DUP1 00000df3: DUP4 00000df4: KECCAK256 00000df5: SLOAD 00000df6: SWAP1 00000df7: SWAP3 00000df8: SWAP1 00000df9: PUSH1 0xff 00000dfb: AND 00000dfc: ISZERO 00000dfd: PUSH2 0x0e05 00000e00: JUMPI 00000e01: POP 00000e02: POP 00000e03: POP 00000e04: JUMP 00000e05: JUMPDEST 00000e06: PUSH2 0x0e0e 00000e09: CALLER 00000e0a: PUSH2 0x12a7 00000e0d: JUMP 00000e0e: JUMPDEST 00000e0f: SWAP1 00000e10: DUP1 00000e11: DUP5 00000e12: MLOAD 00000e13: SWAP1 00000e14: PUSH2 0x0e1c 00000e17: DUP3 00000e18: PUSH2 0x0d24 00000e1b: JUMP 00000e1c: JUMPDEST 00000e1d: PUSH1 0x42 00000e1f: DUP3 00000e20: MSTORE 00000e21: DUP5 00000e22: DUP3 00000e23: ADD 00000e24: SWAP3 00000e25: PUSH1 0x60 00000e27: CALLDATASIZE 00000e28: DUP6 00000e29: CALLDATACOPY 00000e2a: DUP3 00000e2b: MLOAD 00000e2c: ISZERO 00000e2d: PUSH2 0x0fa9 00000e30: JUMPI 00000e31: PUSH1 0x30 00000e33: DUP5 00000e34: MSTORE8 00000e35: DUP3 00000e36: MLOAD 00000e37: SWAP1 00000e38: PUSH1 0x01 00000e3a: SWAP2 00000e3b: DUP3 00000e3c: LT 00000e3d: ISZERO 00000e3e: PUSH2 0x0fa9 00000e41: JUMPI 00000e42: SWAP1 00000e43: PUSH1 0x78 00000e45: PUSH1 0x21 00000e47: DUP6 00000e48: ADD 00000e49: MSTORE8 00000e4a: PUSH1 0x41 00000e4c: SWAP2 00000e4d: JUMPDEST 00000e4e: DUP2 00000e4f: DUP4 00000e50: GT 00000e51: PUSH2 0x0f3b 00000e54: JUMPI 00000e55: POP 00000e56: POP 00000e57: POP 00000e58: PUSH2 0x0ef9 00000e5b: JUMPI 00000e5c: PUSH1 0x48 00000e5e: PUSH2 0x0ef5 00000e61: SWAP4 00000e62: DUP7 00000e63: SWAP4 00000e64: PUSH2 0x0ed9 00000e67: SWAP4 00000e68: PUSH2 0x0eca 00000e6b: SWAP9 00000e6c: MLOAD 00000e6d: SWAP9 00000e6e: DUP10 00000e6f: SWAP4 00000e70: PUSH23 0x020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1 00000e88: PUSH1 0x4d 00000e8a: SHL 00000e8b: DUP11 00000e8c: DUP7 00000e8d: ADD 00000e8e: MSTORE 00000e8f: PUSH2 0x0ea1 00000e92: DUP2 00000e93: MLOAD 00000e94: DUP1 00000e95: SWAP3 00000e96: DUP13 00000e97: PUSH1 0x37 00000e99: DUP10 00000e9a: ADD 00000e9b: SWAP2 00000e9c: ADD 00000e9d: PUSH2 0x0d7b 00000ea0: JUMP 00000ea1: JUMPDEST 00000ea2: DUP5 00000ea3: ADD 00000ea4: SWAP2 00000ea5: PUSH17 0x01034b99036b4b9b9b4b733903937b6329 00000eb7: PUSH1 0x7d 00000eb9: SHL 00000eba: PUSH1 0x37 00000ebc: DUP5 00000ebd: ADD 00000ebe: MSTORE 00000ebf: MLOAD 00000ec0: DUP1 00000ec1: SWAP4 00000ec2: DUP7 00000ec3: DUP5 00000ec4: ADD 00000ec5: SWAP1 00000ec6: PUSH2 0x0d7b 00000ec9: JUMP 00000eca: JUMPDEST 00000ecb: ADD 00000ecc: SUB 00000ecd: PUSH1 0x28 00000ecf: DUP2 00000ed0: ADD 00000ed1: DUP8 00000ed2: MSTORE 00000ed3: ADD 00000ed4: DUP6 00000ed5: PUSH2 0x0d3f 00000ed8: JUMP 00000ed9: JUMPDEST 00000eda: MLOAD 00000edb: SWAP3 00000edc: DUP4 00000edd: SWAP3 00000ede: PUSH3 0x461bcd 00000ee2: PUSH1 0xe5 00000ee4: SHL 00000ee5: DUP5 00000ee6: MSTORE 00000ee7: PUSH1 0x04 00000ee9: DUP5 00000eea: ADD 00000eeb: MSTORE 00000eec: PUSH1 0x24 00000eee: DUP4 00000eef: ADD 00000ef0: SWAP1 00000ef1: PUSH2 0x0d9e 00000ef4: JUMP 00000ef5: JUMPDEST 00000ef6: SUB 00000ef7: SWAP1 00000ef8: REVERT 00000ef9: JUMPDEST 00000efa: PUSH1 0x64 00000efc: DUP5 00000efd: DUP7 00000efe: MLOAD 00000eff: SWAP1 00000f00: PUSH3 0x461bcd 00000f04: PUSH1 0xe5 00000f06: SHL 00000f07: DUP3 00000f08: MSTORE 00000f09: DUP1 00000f0a: PUSH1 0x04 00000f0c: DUP4 00000f0d: ADD 00000f0e: MSTORE 00000f0f: PUSH1 0x24 00000f11: DUP3 00000f12: ADD 00000f13: MSTORE 00000f14: PUSH32 0x537472696e67733a20686578206c656e67746820696e73756666696369656e74 00000f35: PUSH1 0x44 00000f37: DUP3 00000f38: ADD 00000f39: MSTORE 00000f3a: REVERT 00000f3b: JUMPDEST 00000f3c: SWAP1 00000f3d: SWAP2 00000f3e: SWAP3 00000f3f: PUSH1 0x0f 00000f41: DUP2 00000f42: AND 00000f43: PUSH1 0x10 00000f45: DUP2 00000f46: LT 00000f47: ISZERO 00000f48: PUSH2 0x0f95 00000f4b: JUMPI 00000f4c: PUSH16 0x181899199a1a9b1b9c1cb0b131b232b3 00000f5d: PUSH1 0x81 00000f5f: SHL 00000f60: SWAP1 00000f61: BYTE 00000f62: PUSH2 0x0f6b 00000f65: DUP6 00000f66: DUP8 00000f67: PUSH2 0x1280 00000f6a: JUMP 00000f6b: JUMPDEST 00000f6c: MSTORE8 00000f6d: PUSH1 0x04 00000f6f: SHR 00000f70: SWAP3 00000f71: DUP1 00000f72: ISZERO 00000f73: PUSH2 0x0f81 00000f76: JUMPI 00000f77: PUSH1 0x00 00000f79: NOT 00000f7a: ADD 00000f7b: SWAP2 00000f7c: SWAP1 00000f7d: PUSH2 0x0e4d 00000f80: JUMP 00000f81: JUMPDEST 00000f82: PUSH4 0x4e487b71 00000f87: PUSH1 0xe0 00000f89: SHL 00000f8a: DUP3 00000f8b: MSTORE 00000f8c: PUSH1 0x11 00000f8e: PUSH1 0x04 00000f90: MSTORE 00000f91: PUSH1 0x24 00000f93: DUP3 00000f94: REVERT 00000f95: JUMPDEST 00000f96: PUSH4 0x4e487b71 00000f9b: PUSH1 0xe0 00000f9d: SHL 00000f9e: DUP4 00000f9f: MSTORE 00000fa0: PUSH1 0x32 00000fa2: PUSH1 0x04 00000fa4: MSTORE 00000fa5: PUSH1 0x24 00000fa7: DUP4 00000fa8: REVERT 00000fa9: JUMPDEST 00000faa: PUSH4 0x4e487b71 00000faf: PUSH1 0xe0 00000fb1: SHL 00000fb2: DUP2 00000fb3: MSTORE 00000fb4: PUSH1 0x32 00000fb6: PUSH1 0x04 00000fb8: MSTORE 00000fb9: PUSH1 0x24 00000fbb: SWAP1 00000fbc: REVERT 00000fbd: JUMPDEST 00000fbe: CALLER 00000fbf: PUSH1 0x00 00000fc1: SWAP1 00000fc2: DUP2 00000fc3: MSTORE 00000fc4: PUSH32 0xdae2aa361dfd1ca020a396615627d436107c35eff9fe7738a3512819782d7069 00000fe5: PUSH1 0x20 00000fe7: SWAP1 00000fe8: DUP2 00000fe9: MSTORE 00000fea: PUSH1 0x40 00000fec: DUP1 00000fed: DUP4 00000fee: KECCAK256 00000fef: SLOAD 00000ff0: SWAP1 00000ff1: SWAP3 00000ff2: PUSH32 0xd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63 00001013: SWAP2 00001014: PUSH1 0xff 00001016: AND 00001017: ISZERO 00001018: PUSH2 0x1021 0000101b: JUMPI 0000101c: POP 0000101d: POP 0000101e: POP 0000101f: POP 00001020: JUMP 00001021: JUMPDEST 00001022: PUSH2 0x102a 00001025: CALLER 00001026: PUSH2 0x12a7 00001029: JUMP 0000102a: JUMPDEST 0000102b: SWAP2 0000102c: DUP5 0000102d: MLOAD 0000102e: SWAP1 0000102f: PUSH2 0x1037 00001032: DUP3 00001033: PUSH2 0x0d24 00001036: JUMP 00001037: JUMPDEST 00001038: PUSH1 0x42 0000103a: DUP3 0000103b: MSTORE 0000103c: DUP5 0000103d: DUP3 0000103e: ADD 0000103f: SWAP3 00001040: PUSH1 0x60 00001042: CALLDATASIZE 00001043: DUP6 00001044: CALLDATACOPY 00001045: DUP3 00001046: MLOAD 00001047: ISZERO 00001048: PUSH2 0x0fa9 0000104b: JUMPI 0000104c: PUSH1 0x30 0000104e: DUP5 0000104f: MSTORE8 00001050: DUP3 00001051: MLOAD 00001052: SWAP1 00001053: PUSH1 0x01 00001055: SWAP2 00001056: DUP3 00001057: LT 00001058: ISZERO 00001059: PUSH2 0x0fa9 0000105c: JUMPI 0000105d: SWAP1 0000105e: PUSH1 0x78 00001060: PUSH1 0x21 00001062: DUP6 00001063: ADD 00001064: MSTORE8 00001065: PUSH1 0x41 00001067: SWAP2 00001068: JUMPDEST 00001069: DUP2 0000106a: DUP4 0000106b: GT 0000106c: PUSH2 0x10bc 0000106f: JUMPI 00001070: POP 00001071: POP 00001072: POP 00001073: PUSH2 0x0ef9 00001076: JUMPI 00001077: PUSH1 0x48 00001079: PUSH2 0x0ef5 0000107c: SWAP4 0000107d: DUP7 0000107e: SWAP4 0000107f: PUSH2 0x0ed9 00001082: SWAP4 00001083: PUSH2 0x0eca 00001086: SWAP9 00001087: MLOAD 00001088: SWAP9 00001089: DUP10 0000108a: SWAP4 0000108b: PUSH23 0x020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1 000010a3: PUSH1 0x4d 000010a5: SHL 000010a6: DUP11 000010a7: DUP7 000010a8: ADD 000010a9: MSTORE 000010aa: PUSH2 0x0ea1 000010ad: DUP2 000010ae: MLOAD 000010af: DUP1 000010b0: SWAP3 000010b1: DUP13 000010b2: PUSH1 0x37 000010b4: DUP10 000010b5: ADD 000010b6: SWAP2 000010b7: ADD 000010b8: PUSH2 0x0d7b 000010bb: JUMP 000010bc: JUMPDEST 000010bd: SWAP1 000010be: SWAP2 000010bf: SWAP3 000010c0: PUSH1 0x0f 000010c2: DUP2 000010c3: AND 000010c4: PUSH1 0x10 000010c6: DUP2 000010c7: LT 000010c8: ISZERO 000010c9: PUSH2 0x0f95 000010cc: JUMPI 000010cd: PUSH16 0x181899199a1a9b1b9c1cb0b131b232b3 000010de: PUSH1 0x81 000010e0: SHL 000010e1: SWAP1 000010e2: BYTE 000010e3: PUSH2 0x10ec 000010e6: DUP6 000010e7: DUP8 000010e8: PUSH2 0x1280 000010eb: JUMP 000010ec: JUMPDEST 000010ed: MSTORE8 000010ee: PUSH1 0x04 000010f0: SHR 000010f1: SWAP3 000010f2: DUP1 000010f3: ISZERO 000010f4: PUSH2 0x0f81 000010f7: JUMPI 000010f8: PUSH1 0x00 000010fa: NOT 000010fb: ADD 000010fc: SWAP2 000010fd: SWAP1 000010fe: PUSH2 0x1068 00001101: JUMP 00001102: JUMPDEST 00001103: PUSH1 0x00 00001105: SWAP1 00001106: DUP1 00001107: DUP3 00001108: MSTORE 00001109: PUSH1 0x20 0000110b: SWAP1 0000110c: DUP3 0000110d: DUP3 0000110e: MSTORE 0000110f: PUSH1 0x40 00001111: SWAP3 00001112: DUP4 00001113: DUP2 00001114: KECCAK256 00001115: CALLER 00001116: DUP3 00001117: MSTORE 00001118: DUP4 00001119: MSTORE 0000111a: PUSH1 0xff 0000111c: DUP5 0000111d: DUP3 0000111e: KECCAK256 0000111f: SLOAD 00001120: AND 00001121: ISZERO 00001122: PUSH2 0x112b 00001125: JUMPI 00001126: POP 00001127: POP 00001128: POP 00001129: POP 0000112a: JUMP 0000112b: JUMPDEST 0000112c: PUSH2 0x1134 0000112f: CALLER 00001130: PUSH2 0x12a7 00001133: JUMP 00001134: JUMPDEST 00001135: SWAP2 00001136: DUP5 00001137: MLOAD 00001138: SWAP1 00001139: PUSH2 0x1141 0000113c: DUP3 0000113d: PUSH2 0x0d24 00001140: JUMP 00001141: JUMPDEST 00001142: PUSH1 0x42 00001144: DUP3 00001145: MSTORE 00001146: DUP5 00001147: DUP3 00001148: ADD 00001149: SWAP3 0000114a: PUSH1 0x60 0000114c: CALLDATASIZE 0000114d: DUP6 0000114e: CALLDATACOPY 0000114f: DUP3 00001150: MLOAD 00001151: ISZERO 00001152: PUSH2 0x0fa9 00001155: JUMPI 00001156: PUSH1 0x30 00001158: DUP5 00001159: MSTORE8 0000115a: DUP3 0000115b: MLOAD 0000115c: SWAP1 0000115d: PUSH1 0x01 0000115f: SWAP2 00001160: DUP3 00001161: LT 00001162: ISZERO 00001163: PUSH2 0x0fa9 00001166: JUMPI 00001167: SWAP1 00001168: PUSH1 0x78 0000116a: PUSH1 0x21 0000116c: DUP6 0000116d: ADD 0000116e: MSTORE8 0000116f: PUSH1 0x41 00001171: SWAP2 00001172: JUMPDEST 00001173: DUP2 00001174: DUP4 00001175: GT 00001176: PUSH2 0x11c6 00001179: JUMPI 0000117a: POP 0000117b: POP 0000117c: POP 0000117d: PUSH2 0x0ef9 00001180: JUMPI 00001181: PUSH1 0x48 00001183: PUSH2 0x0ef5 00001186: SWAP4 00001187: DUP7 00001188: SWAP4 00001189: PUSH2 0x0ed9 0000118c: SWAP4 0000118d: PUSH2 0x0eca 00001190: SWAP9 00001191: MLOAD 00001192: SWAP9 00001193: DUP10 00001194: SWAP4 00001195: PUSH23 0x020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1 000011ad: PUSH1 0x4d 000011af: SHL 000011b0: DUP11 000011b1: DUP7 000011b2: ADD 000011b3: MSTORE 000011b4: PUSH2 0x0ea1 000011b7: DUP2 000011b8: MLOAD 000011b9: DUP1 000011ba: SWAP3 000011bb: DUP13 000011bc: PUSH1 0x37 000011be: DUP10 000011bf: ADD 000011c0: SWAP2 000011c1: ADD 000011c2: PUSH2 0x0d7b 000011c5: JUMP 000011c6: JUMPDEST 000011c7: SWAP1 000011c8: SWAP2 000011c9: SWAP3 000011ca: PUSH1 0x0f 000011cc: DUP2 000011cd: AND 000011ce: PUSH1 0x10 000011d0: DUP2 000011d1: LT 000011d2: ISZERO 000011d3: PUSH2 0x0f95 000011d6: JUMPI 000011d7: PUSH16 0x181899199a1a9b1b9c1cb0b131b232b3 000011e8: PUSH1 0x81 000011ea: SHL 000011eb: SWAP1 000011ec: BYTE 000011ed: PUSH2 0x11f6 000011f0: DUP6 000011f1: DUP8 000011f2: PUSH2 0x1280 000011f5: JUMP 000011f6: JUMPDEST 000011f7: MSTORE8 000011f8: PUSH1 0x04 000011fa: SHR 000011fb: SWAP3 000011fc: DUP1 000011fd: ISZERO 000011fe: PUSH2 0x0f81 00001201: JUMPI 00001202: PUSH1 0x00 00001204: NOT 00001205: ADD 00001206: SWAP2 00001207: SWAP1 00001208: PUSH2 0x1172 0000120b: JUMP 0000120c: JUMPDEST 0000120d: SWAP1 0000120e: PUSH1 0x00 00001210: SWAP2 00001211: DUP1 00001212: DUP4 00001213: MSTORE 00001214: DUP3 00001215: PUSH1 0x20 00001217: MSTORE 00001218: PUSH1 0x40 0000121a: DUP4 0000121b: KECCAK256 0000121c: SWAP2 0000121d: PUSH1 0x01 0000121f: DUP1 00001220: PUSH1 0xa0 00001222: SHL 00001223: SUB 00001224: AND 00001225: SWAP2 00001226: DUP3 00001227: DUP5 00001228: MSTORE 00001229: PUSH1 0x20 0000122b: MSTORE 0000122c: PUSH1 0xff 0000122e: PUSH1 0x40 00001230: DUP5 00001231: KECCAK256 00001232: SLOAD 00001233: AND 00001234: PUSH2 0x123c 00001237: JUMPI 00001238: POP 00001239: POP 0000123a: POP 0000123b: JUMP 0000123c: JUMPDEST 0000123d: DUP1 0000123e: DUP4 0000123f: MSTORE 00001240: DUP3 00001241: PUSH1 0x20 00001243: MSTORE 00001244: PUSH1 0x40 00001246: DUP4 00001247: KECCAK256 00001248: DUP3 00001249: DUP5 0000124a: MSTORE 0000124b: PUSH1 0x20 0000124d: MSTORE 0000124e: PUSH1 0x40 00001250: DUP4 00001251: KECCAK256 00001252: PUSH1 0xff 00001254: NOT 00001255: DUP2 00001256: SLOAD 00001257: AND 00001258: SWAP1 00001259: SSTORE 0000125a: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b 0000127b: CALLER 0000127c: SWAP4 0000127d: DUP1 0000127e: LOG4 0000127f: JUMP 00001280: JUMPDEST 00001281: SWAP1 00001282: DUP2 00001283: MLOAD 00001284: DUP2 00001285: LT 00001286: ISZERO 00001287: PUSH2 0x1291 0000128a: JUMPI 0000128b: ADD 0000128c: PUSH1 0x20 0000128e: ADD 0000128f: SWAP1 00001290: JUMP 00001291: JUMPDEST 00001292: PUSH4 0x4e487b71 00001297: PUSH1 0xe0 00001299: SHL 0000129a: PUSH1 0x00 0000129c: MSTORE 0000129d: PUSH1 0x32 0000129f: PUSH1 0x04 000012a1: MSTORE 000012a2: PUSH1 0x24 000012a4: PUSH1 0x00 000012a6: REVERT 000012a7: JUMPDEST 000012a8: PUSH1 0x40 000012aa: MLOAD 000012ab: SWAP1 000012ac: PUSH1 0x60 000012ae: DUP3 000012af: ADD 000012b0: DUP3 000012b1: DUP2 000012b2: LT 000012b3: PUSH1 0x01 000012b5: PUSH1 0x01 000012b7: PUSH1 0x40 000012b9: SHL 000012ba: SUB 000012bb: DUP3 000012bc: GT 000012bd: OR 000012be: PUSH2 0x09d9 000012c1: JUMPI 000012c2: PUSH1 0x40 000012c4: MSTORE 000012c5: PUSH1 0x2a 000012c7: DUP3 000012c8: MSTORE 000012c9: PUSH1 0x20 000012cb: DUP3 000012cc: ADD 000012cd: PUSH1 0x40 000012cf: CALLDATASIZE 000012d0: DUP3 000012d1: CALLDATACOPY 000012d2: DUP3 000012d3: MLOAD 000012d4: ISZERO 000012d5: PUSH2 0x1291 000012d8: JUMPI 000012d9: PUSH1 0x30 000012db: SWAP1 000012dc: MSTORE8 000012dd: DUP2 000012de: MLOAD 000012df: PUSH1 0x01 000012e1: SWAP1 000012e2: DUP2 000012e3: LT 000012e4: ISZERO 000012e5: PUSH2 0x1291 000012e8: JUMPI 000012e9: PUSH1 0x78 000012eb: PUSH1 0x21 000012ed: DUP5 000012ee: ADD 000012ef: MSTORE8 000012f0: PUSH1 0x29 000012f2: SWAP1 000012f3: JUMPDEST 000012f4: DUP1 000012f5: DUP3 000012f6: GT 000012f7: PUSH2 0x1347 000012fa: JUMPI 000012fb: POP 000012fc: POP 000012fd: PUSH2 0x1303 00001300: JUMPI 00001301: SWAP1 00001302: JUMP 00001303: JUMPDEST 00001304: PUSH1 0x64 00001306: PUSH1 0x40 00001308: MLOAD 00001309: PUSH3 0x461bcd 0000130d: PUSH1 0xe5 0000130f: SHL 00001310: DUP2 00001311: MSTORE 00001312: PUSH1 0x20 00001314: PUSH1 0x04 00001316: DUP3 00001317: ADD 00001318: MSTORE 00001319: PUSH1 0x20 0000131b: PUSH1 0x24 0000131d: DUP3 0000131e: ADD 0000131f: MSTORE 00001320: PUSH32 0x537472696e67733a20686578206c656e67746820696e73756666696369656e74 00001341: PUSH1 0x44 00001343: DUP3 00001344: ADD 00001345: MSTORE 00001346: REVERT 00001347: JUMPDEST 00001348: SWAP1 00001349: SWAP2 0000134a: PUSH1 0x0f 0000134c: DUP2 0000134d: AND 0000134e: PUSH1 0x10 00001350: DUP2 00001351: LT 00001352: ISZERO 00001353: PUSH2 0x13a0 00001356: JUMPI 00001357: PUSH16 0x181899199a1a9b1b9c1cb0b131b232b3 00001368: PUSH1 0x81 0000136a: SHL 0000136b: SWAP1 0000136c: BYTE 0000136d: PUSH2 0x1376 00001370: DUP5 00001371: DUP7 00001372: PUSH2 0x1280 00001375: JUMP 00001376: JUMPDEST 00001377: MSTORE8 00001378: PUSH1 0x04 0000137a: SHR 0000137b: SWAP2 0000137c: DUP1 0000137d: ISZERO 0000137e: PUSH2 0x138b 00001381: JUMPI 00001382: PUSH1 0x00 00001384: NOT 00001385: ADD 00001386: SWAP1 00001387: PUSH2 0x12f3 0000138a: JUMP 0000138b: JUMPDEST 0000138c: PUSH1 0x24 0000138e: PUSH1 0x00 00001390: PUSH4 0x4e487b71 00001395: PUSH1 0xe0 00001397: SHL 00001398: DUP2 00001399: MSTORE 0000139a: PUSH1 0x11 0000139c: PUSH1 0x04 0000139e: MSTORE 0000139f: REVERT 000013a0: JUMPDEST 000013a1: PUSH1 0x24 000013a3: PUSH1 0x00 000013a5: PUSH4 0x4e487b71 000013aa: PUSH1 0xe0 000013ac: SHL 000013ad: DUP2 000013ae: MSTORE 000013af: PUSH1 0x32 000013b1: PUSH1 0x04 000013b3: MSTORE 000013b4: REVERT 000013b5: JUMPDEST 000013b6: RETURNDATASIZE 000013b7: ISZERO 000013b8: PUSH2 0x13e0 000013bb: JUMPI 000013bc: RETURNDATASIZE 000013bd: SWAP1 000013be: PUSH2 0x13c6 000013c1: DUP3 000013c2: PUSH2 0x0d60 000013c5: JUMP 000013c6: JUMPDEST 000013c7: SWAP2 000013c8: PUSH2 0x13d4 000013cb: PUSH1 0x40 000013cd: MLOAD 000013ce: SWAP4 000013cf: DUP5 000013d0: PUSH2 0x0d3f 000013d3: JUMP 000013d4: JUMPDEST 000013d5: DUP3 000013d6: MSTORE 000013d7: RETURNDATASIZE 000013d8: PUSH1 0x00 000013da: PUSH1 0x20 000013dc: DUP5 000013dd: ADD 000013de: RETURNDATACOPY 000013df: JUMP 000013e0: JUMPDEST 000013e1: PUSH1 0x60 000013e3: SWAP1 000013e4: JUMP 000013e5: JUMPDEST 000013e6: ISZERO 000013e7: PUSH2 0x13ec 000013ea: JUMPI 000013eb: JUMP 000013ec: JUMPDEST 000013ed: PUSH1 0x64 000013ef: PUSH1 0x40 000013f1: MLOAD 000013f2: PUSH3 0x461bcd 000013f6: PUSH1 0xe5 000013f8: SHL 000013f9: DUP2 000013fa: MSTORE 000013fb: PUSH1 0x20 000013fd: PUSH1 0x04 000013ff: DUP3 00001400: ADD 00001401: MSTORE 00001402: PUSH1 0x20 00001404: PUSH1 0x24 00001406: DUP3 00001407: ADD 00001408: MSTORE 00001409: PUSH32 0x416d6d563253616e6477696368696e674d616b657256343a2045585049524544 0000142a: PUSH1 0x44 0000142c: DUP3 0000142d: ADD 0000142e: MSTORE 0000142f: REVERT 00001430: JUMPDEST 00001431: ISZERO 00001432: PUSH2 0x1437 00001435: JUMPI 00001436: JUMP 00001437: JUMPDEST 00001438: PUSH1 0x40 0000143a: MLOAD 0000143b: PUSH3 0x461bcd 0000143f: PUSH1 0xe5 00001441: SHL 00001442: DUP2 00001443: MSTORE 00001444: PUSH1 0x20 00001446: PUSH1 0x04 00001448: DUP3 00001449: ADD 0000144a: MSTORE 0000144b: PUSH1 0x33 0000144d: PUSH1 0x24 0000144f: DUP3 00001450: ADD 00001451: MSTORE 00001452: PUSH32 0x416d6d563253616e6477696368696e674d616b657256343a20494e5355464649 00001473: PUSH1 0x44 00001475: DUP3 00001476: ADD 00001477: MSTORE 00001478: PUSH19 0x10d251539517d3d55514155517d05353d55395 0000148c: PUSH1 0x6a 0000148e: SHL 0000148f: PUSH1 0x64 00001491: DUP3 00001492: ADD 00001493: MSTORE 00001494: PUSH1 0x84 00001496: SWAP1 00001497: REVERT 00001498: JUMPDEST 00001499: MLOAD 0000149a: SWAP1 0000149b: PUSH1 0x01 0000149d: PUSH1 0x01 0000149f: PUSH1 0x70 000014a1: SHL 000014a2: SUB 000014a3: DUP3 000014a4: AND 000014a5: DUP3 000014a6: SUB 000014a7: PUSH2 0x0103 000014aa: JUMPI 000014ab: JUMP 000014ac: JUMPDEST 000014ad: SWAP1 000014ae: DUP2 000014af: PUSH1 0x60 000014b1: SWAP2 000014b2: SUB 000014b3: SLT 000014b4: PUSH2 0x0103 000014b7: JUMPI 000014b8: PUSH2 0x14c0 000014bb: DUP2 000014bc: PUSH2 0x1498 000014bf: JUMP 000014c0: JUMPDEST 000014c1: SWAP2 000014c2: PUSH1 0x40 000014c4: PUSH2 0x14cf 000014c7: PUSH1 0x20 000014c9: DUP5 000014ca: ADD 000014cb: PUSH2 0x1498 000014ce: JUMP 000014cf: JUMPDEST 000014d0: SWAP3 000014d1: ADD 000014d2: MLOAD 000014d3: PUSH4 0xffffffff 000014d8: DUP2 000014d9: AND 000014da: DUP2 000014db: SUB 000014dc: PUSH2 0x0103 000014df: JUMPI 000014e0: SWAP1 000014e1: JUMP 000014e2: JUMPDEST 000014e3: SWAP2 000014e4: SWAP1 000014e5: DUP3 000014e6: SUB 000014e7: SWAP2 000014e8: DUP3 000014e9: GT 000014ea: PUSH2 0x0340 000014ed: JUMPI 000014ee: JUMP 000014ef: JUMPDEST 000014f0: PUSH1 0x40 000014f2: MLOAD 000014f3: PUSH4 0xa9059cbb 000014f8: PUSH1 0xe0 000014fa: SHL 000014fb: PUSH1 0x20 000014fd: DUP3 000014fe: ADD 000014ff: SWAP1 00001500: DUP2 00001501: MSTORE 00001502: PUSH1 0x01 00001504: PUSH1 0x01 00001506: PUSH1 0xa0 00001508: SHL 00001509: SUB 0000150a: DUP4 0000150b: AND 0000150c: PUSH1 0x24 0000150e: DUP4 0000150f: ADD 00001510: MSTORE 00001511: PUSH1 0x44 00001513: DUP1 00001514: DUP4 00001515: ADD 00001516: DUP9 00001517: SWAP1 00001518: MSTORE 00001519: DUP3 0000151a: MSTORE 0000151b: SWAP6 0000151c: SWAP7 0000151d: SWAP3 0000151e: SWAP6 0000151f: SWAP3 00001520: SWAP4 00001521: SWAP3 00001522: PUSH1 0x00 00001524: SWAP2 00001525: PUSH1 0x80 00001527: DUP2 00001528: ADD 00001529: PUSH1 0x01 0000152b: PUSH1 0x01 0000152d: PUSH1 0x40 0000152f: SHL 00001530: SUB 00001531: DUP2 00001532: GT 00001533: DUP3 00001534: DUP3 00001535: LT 00001536: OR 00001537: PUSH2 0x1972 0000153a: JUMPI 0000153b: PUSH1 0x40 0000153d: MSTORE 0000153e: MLOAD 0000153f: DUP3 00001540: SWAP2 00001541: DUP3 00001542: SWAP2 00001543: SWAP1 00001544: DUP3 00001545: DUP11 00001546: GAS 00001547: CALL 00001548: PUSH2 0x154f 0000154b: PUSH2 0x13b5 0000154e: JUMP 0000154f: JUMPDEST 00001550: DUP2 00001551: PUSH2 0x193a 00001554: JUMPI 00001555: JUMPDEST 00001556: POP 00001557: ISZERO 00001558: PUSH2 0x18df 0000155b: JUMPI 0000155c: PUSH1 0x40 0000155e: MLOAD 0000155f: PUSH4 0x70a08231 00001564: PUSH1 0xe0 00001566: SHL 00001567: DUP2 00001568: MSTORE 00001569: ADDRESS 0000156a: PUSH1 0x04 0000156c: DUP3 0000156d: ADD 0000156e: MSTORE 0000156f: SWAP2 00001570: PUSH1 0x20 00001572: DUP4 00001573: PUSH1 0x24 00001575: DUP2 00001576: PUSH1 0x01 00001578: PUSH1 0x01 0000157a: PUSH1 0xa0 0000157c: SHL 0000157d: SUB 0000157e: DUP9 0000157f: AND 00001580: GAS 00001581: STATICCALL 00001582: SWAP3 00001583: DUP4 00001584: ISZERO 00001585: PUSH2 0x17d2 00001588: JUMPI 00001589: DUP3 0000158a: SWAP4 0000158b: PUSH2 0x18a7 0000158e: JUMPI 0000158f: JUMPDEST 00001590: POP 00001591: PUSH1 0x40 00001593: MLOAD 00001594: PUSH4 0x0240bc6b 00001599: PUSH1 0xe2 0000159b: SHL 0000159c: DUP2 0000159d: MSTORE 0000159e: SWAP7 0000159f: PUSH1 0x60 000015a1: DUP9 000015a2: PUSH1 0x04 000015a4: DUP2 000015a5: PUSH1 0x01 000015a7: PUSH1 0x01 000015a9: PUSH1 0xa0 000015ab: SHL 000015ac: SUB 000015ad: DUP7 000015ae: AND 000015af: GAS 000015b0: STATICCALL 000015b1: SWAP8 000015b2: DUP9 000015b3: ISZERO 000015b4: PUSH2 0x189c 000015b7: JUMPI 000015b8: DUP4 000015b9: SWAP1 000015ba: DUP5 000015bb: SWAP10 000015bc: PUSH2 0x1878 000015bf: JUMPI 000015c0: JUMPDEST 000015c1: POP 000015c2: PUSH1 0x01 000015c4: PUSH1 0x01 000015c6: PUSH1 0xa0 000015c8: SHL 000015c9: SUB 000015ca: DUP3 000015cb: DUP2 000015cc: AND 000015cd: SWAP1 000015ce: DUP10 000015cf: AND 000015d0: SUB 000015d1: PUSH2 0x1866 000015d4: JUMPI 000015d5: PUSH1 0x01 000015d7: PUSH1 0x01 000015d9: PUSH1 0x70 000015db: SHL 000015dc: SUB 000015dd: SWAP9 000015de: DUP10 000015df: AND 000015e0: SWAP9 000015e1: AND 000015e2: JUMPDEST 000015e3: PUSH1 0x40 000015e5: MLOAD 000015e6: PUSH4 0x70a08231 000015eb: PUSH1 0xe0 000015ed: SHL 000015ee: DUP2 000015ef: MSTORE 000015f0: PUSH1 0x01 000015f2: PUSH1 0x01 000015f4: PUSH1 0xa0 000015f6: SHL 000015f7: SUB 000015f8: DUP5 000015f9: DUP2 000015fa: AND 000015fb: PUSH1 0x04 000015fd: DUP4 000015fe: ADD 000015ff: MSTORE 00001600: PUSH1 0x20 00001602: SWAP1 00001603: DUP3 00001604: SWAP1 00001605: PUSH1 0x24 00001607: SWAP1 00001608: DUP3 00001609: SWAP1 0000160a: DUP8 0000160b: AND 0000160c: GAS 0000160d: STATICCALL 0000160e: DUP1 0000160f: ISZERO 00001610: PUSH2 0x185b 00001613: JUMPI 00001614: DUP3 00001615: SWAP1 00001616: DUP7 00001617: SWAP1 00001618: PUSH2 0x1825 0000161b: JUMPI 0000161c: JUMPDEST 0000161d: PUSH2 0x1626 00001620: SWAP3 00001621: POP 00001622: PUSH2 0x14e2 00001625: JUMP 00001626: JUMPDEST 00001627: SWAP9 00001628: DUP10 00001629: PUSH2 0x03e5 0000162c: DUP2 0000162d: MUL 0000162e: DIV 0000162f: PUSH2 0x03e5 00001632: EQ 00001633: DUP11 00001634: ISZERO 00001635: OR 00001636: ISZERO 00001637: PUSH2 0x1811 0000163a: JUMPI 0000163b: PUSH2 0x03e5 0000163e: DUP2 0000163f: DUP12 00001640: MUL 00001641: MUL 00001642: SWAP1 00001643: PUSH2 0x03e5 00001646: DUP12 00001647: MUL 00001648: DUP3 00001649: DIV 0000164a: EQ 0000164b: PUSH2 0x03e5 0000164e: DUP12 0000164f: MUL 00001650: ISZERO 00001651: OR 00001652: ISZERO 00001653: PUSH2 0x1811 00001656: JUMPI 00001657: PUSH2 0x03e8 0000165a: SWAP2 0000165b: DUP3 0000165c: DUP2 0000165d: MUL 0000165e: SWAP3 0000165f: DUP2 00001660: DUP5 00001661: DIV 00001662: EQ 00001663: SWAP1 00001664: ISZERO 00001665: OR 00001666: ISZERO 00001667: PUSH2 0x1811 0000166a: JUMPI 0000166b: PUSH2 0x03e5 0000166e: DUP11 0000166f: MUL 00001670: DUP3 00001671: ADD 00001672: DUP1 00001673: SWAP3 00001674: GT 00001675: PUSH2 0x1811 00001678: JUMPI 00001679: DUP2 0000167a: ISZERO 0000167b: PUSH2 0x17fd 0000167e: JUMPI 0000167f: DIV 00001680: SWAP7 00001681: PUSH1 0x01 00001683: PUSH1 0x01 00001685: PUSH1 0xa0 00001687: SHL 00001688: SUB 00001689: SWAP2 0000168a: DUP3 0000168b: AND 0000168c: SWAP2 0000168d: AND 0000168e: SUB 0000168f: PUSH2 0x17f5 00001692: JUMPI 00001693: DUP2 00001694: SWAP1 00001695: DUP7 00001696: JUMPDEST 00001697: PUSH1 0x40 00001699: MLOAD 0000169a: SWAP3 0000169b: PUSH1 0x20 0000169d: DUP5 0000169e: ADD 0000169f: DUP5 000016a0: DUP2 000016a1: LT 000016a2: PUSH1 0x01 000016a4: PUSH1 0x01 000016a6: PUSH1 0x40 000016a8: SHL 000016a9: SUB 000016aa: DUP3 000016ab: GT 000016ac: OR 000016ad: PUSH2 0x17e1 000016b0: JUMPI 000016b1: PUSH1 0x40 000016b3: MSTORE 000016b4: DUP5 000016b5: DUP5 000016b6: MSTORE 000016b7: PUSH1 0x01 000016b9: PUSH1 0x01 000016bb: PUSH1 0xa0 000016bd: SHL 000016be: SUB 000016bf: DUP4 000016c0: AND 000016c1: EXTCODESIZE 000016c2: ISZERO 000016c3: PUSH2 0x17dd 000016c6: JUMPI 000016c7: SWAP2 000016c8: PUSH2 0x1704 000016cb: SWAP4 000016cc: SWAP2 000016cd: DUP6 000016ce: DUP1 000016cf: SWAP5 000016d0: PUSH1 0x40 000016d2: MLOAD 000016d3: SWAP7 000016d4: DUP8 000016d5: SWAP6 000016d6: DUP7 000016d7: SWAP5 000016d8: DUP6 000016d9: SWAP4 000016da: PUSH4 0x022c0d9f 000016df: PUSH1 0xe0 000016e1: SHL 000016e2: DUP6 000016e3: MSTORE 000016e4: PUSH1 0x04 000016e6: DUP6 000016e7: ADD 000016e8: MSTORE 000016e9: PUSH1 0x24 000016eb: DUP5 000016ec: ADD 000016ed: MSTORE 000016ee: ADDRESS 000016ef: PUSH1 0x44 000016f1: DUP5 000016f2: ADD 000016f3: MSTORE 000016f4: PUSH1 0x80 000016f6: PUSH1 0x64 000016f8: DUP5 000016f9: ADD 000016fa: MSTORE 000016fb: PUSH1 0x84 000016fd: DUP4 000016fe: ADD 000016ff: SWAP1 00001700: PUSH2 0x0d9e 00001703: JUMP 00001704: JUMPDEST 00001705: SUB 00001706: SWAP3 00001707: PUSH1 0x01 00001709: PUSH1 0x01 0000170b: PUSH1 0xa0 0000170d: SHL 0000170e: SUB 0000170f: AND 00001710: GAS 00001711: CALL 00001712: DUP1 00001713: ISZERO 00001714: PUSH2 0x17d2 00001717: JUMPI 00001718: PUSH2 0x17a0 0000171b: JUMPI 0000171c: JUMPDEST 0000171d: POP 0000171e: PUSH1 0x40 00001720: MLOAD 00001721: PUSH4 0x70a08231 00001726: PUSH1 0xe0 00001728: SHL 00001729: DUP2 0000172a: MSTORE 0000172b: ADDRESS 0000172c: PUSH1 0x04 0000172e: DUP3 0000172f: ADD 00001730: MSTORE 00001731: SWAP3 00001732: PUSH1 0x20 00001734: SWAP1 00001735: DUP5 00001736: SWAP1 00001737: PUSH1 0x24 00001739: SWAP1 0000173a: DUP3 0000173b: SWAP1 0000173c: PUSH1 0x01 0000173e: PUSH1 0x01 00001740: PUSH1 0xa0 00001742: SHL 00001743: SUB 00001744: AND 00001745: GAS 00001746: STATICCALL 00001747: SWAP1 00001748: DUP2 00001749: ISZERO 0000174a: PUSH2 0x1794 0000174d: JUMPI 0000174e: SWAP1 0000174f: PUSH2 0x1760 00001752: JUMPI 00001753: JUMPDEST 00001754: PUSH2 0x175d 00001757: SWAP3 00001758: POP 00001759: PUSH2 0x14e2 0000175c: JUMP 0000175d: JUMPDEST 0000175e: SWAP1 0000175f: JUMP 00001760: JUMPDEST 00001761: POP 00001762: PUSH1 0x20 00001764: DUP3 00001765: RETURNDATASIZE 00001766: PUSH1 0x20 00001768: GT 00001769: PUSH2 0x178c 0000176c: JUMPI 0000176d: JUMPDEST 0000176e: DUP2 0000176f: PUSH2 0x177a 00001772: PUSH1 0x20 00001774: SWAP4 00001775: DUP4 00001776: PUSH2 0x0d3f 00001779: JUMP 0000177a: JUMPDEST 0000177b: DUP2 0000177c: ADD 0000177d: SUB 0000177e: SLT 0000177f: PUSH2 0x0103 00001782: JUMPI 00001783: PUSH2 0x175d 00001786: SWAP2 00001787: MLOAD 00001788: PUSH2 0x1753 0000178b: JUMP 0000178c: JUMPDEST 0000178d: RETURNDATASIZE 0000178e: SWAP2 0000178f: POP 00001790: PUSH2 0x176d 00001793: JUMP 00001794: JUMPDEST 00001795: PUSH1 0x40 00001797: MLOAD 00001798: SWAP1 00001799: RETURNDATASIZE 0000179a: SWAP1 0000179b: DUP3 0000179c: RETURNDATACOPY 0000179d: RETURNDATASIZE 0000179e: SWAP1 0000179f: REVERT 000017a0: JUMPDEST 000017a1: PUSH1 0x01 000017a3: PUSH1 0x01 000017a5: PUSH1 0x40 000017a7: SHL 000017a8: SUB 000017a9: DUP2 000017aa: SWAP5 000017ab: SWAP4 000017ac: SWAP5 000017ad: GT 000017ae: PUSH2 0x17be 000017b1: JUMPI 000017b2: PUSH1 0x40 000017b4: MSTORE 000017b5: SWAP1 000017b6: SWAP2 000017b7: SWAP1 000017b8: PUSH1 0x20 000017ba: PUSH2 0x171c 000017bd: JUMP 000017be: JUMPDEST 000017bf: PUSH4 0x4e487b71 000017c4: PUSH1 0xe0 000017c6: SHL 000017c7: DUP3 000017c8: MSTORE 000017c9: PUSH1 0x41 000017cb: PUSH1 0x04 000017cd: MSTORE 000017ce: PUSH1 0x24 000017d0: DUP3 000017d1: REVERT 000017d2: JUMPDEST 000017d3: PUSH1 0x40 000017d5: MLOAD 000017d6: RETURNDATASIZE 000017d7: DUP5 000017d8: DUP3 000017d9: RETURNDATACOPY 000017da: RETURNDATASIZE 000017db: SWAP1 000017dc: REVERT 000017dd: JUMPDEST 000017de: DUP5 000017df: DUP1 000017e0: REVERT 000017e1: JUMPDEST 000017e2: PUSH4 0x4e487b71 000017e7: PUSH1 0xe0 000017e9: SHL 000017ea: DUP7 000017eb: MSTORE 000017ec: PUSH1 0x41 000017ee: PUSH1 0x04 000017f0: MSTORE 000017f1: PUSH1 0x24 000017f3: DUP7 000017f4: REVERT 000017f5: JUMPDEST 000017f6: DUP6 000017f7: SWAP1 000017f8: DUP3 000017f9: PUSH2 0x1696 000017fc: JUMP 000017fd: JUMPDEST 000017fe: PUSH4 0x4e487b71 00001803: PUSH1 0xe0 00001805: SHL 00001806: DUP6 00001807: MSTORE 00001808: PUSH1 0x12 0000180a: PUSH1 0x04 0000180c: MSTORE 0000180d: PUSH1 0x24 0000180f: DUP6 00001810: REVERT 00001811: JUMPDEST 00001812: PUSH4 0x4e487b71 00001817: PUSH1 0xe0 00001819: SHL 0000181a: DUP6 0000181b: MSTORE 0000181c: PUSH1 0x11 0000181e: PUSH1 0x04 00001820: MSTORE 00001821: PUSH1 0x24 00001823: DUP6 00001824: REVERT 00001825: JUMPDEST 00001826: POP 00001827: POP 00001828: PUSH1 0x20 0000182a: DUP2 0000182b: RETURNDATASIZE 0000182c: PUSH1 0x20 0000182e: GT 0000182f: PUSH2 0x1853 00001832: JUMPI 00001833: JUMPDEST 00001834: DUP2 00001835: PUSH2 0x1840 00001838: PUSH1 0x20 0000183a: SWAP4 0000183b: DUP4 0000183c: PUSH2 0x0d3f 0000183f: JUMP 00001840: JUMPDEST 00001841: DUP2 00001842: ADD 00001843: SUB 00001844: SLT 00001845: PUSH2 0x17dd 00001848: JUMPI 00001849: DUP2 0000184a: PUSH2 0x1626 0000184d: SWAP2 0000184e: MLOAD 0000184f: PUSH2 0x161c 00001852: JUMP 00001853: JUMPDEST 00001854: RETURNDATASIZE 00001855: SWAP2 00001856: POP 00001857: PUSH2 0x1833 0000185a: JUMP 0000185b: JUMPDEST 0000185c: PUSH1 0x40 0000185e: MLOAD 0000185f: RETURNDATASIZE 00001860: DUP8 00001861: DUP3 00001862: RETURNDATACOPY 00001863: RETURNDATASIZE 00001864: SWAP1 00001865: REVERT 00001866: JUMPDEST 00001867: PUSH1 0x01 00001869: PUSH1 0x01 0000186b: PUSH1 0x70 0000186d: SHL 0000186e: SUB 0000186f: SWAP1 00001870: DUP2 00001871: AND 00001872: SWAP9 00001873: AND 00001874: PUSH2 0x15e2 00001877: JUMP 00001878: JUMPDEST 00001879: SWAP1 0000187a: POP 0000187b: PUSH2 0x1893 0000187e: SWAP2 0000187f: SWAP9 00001880: POP 00001881: PUSH1 0x60 00001883: RETURNDATASIZE 00001884: DUP2 00001885: GT 00001886: PUSH2 0x0afa 00001889: JUMPI 0000188a: PUSH2 0x0aea 0000188d: DUP2 0000188e: DUP4 0000188f: PUSH2 0x0d3f 00001892: JUMP 00001893: JUMPDEST 00001894: POP 00001895: SWAP8 00001896: SWAP1 00001897: CODESIZE 00001898: PUSH2 0x15c0 0000189b: JUMP 0000189c: JUMPDEST 0000189d: PUSH1 0x40 0000189f: MLOAD 000018a0: RETURNDATASIZE 000018a1: DUP6 000018a2: DUP3 000018a3: RETURNDATACOPY 000018a4: RETURNDATASIZE 000018a5: SWAP1 000018a6: REVERT 000018a7: JUMPDEST 000018a8: SWAP1 000018a9: SWAP3 000018aa: POP 000018ab: PUSH1 0x20 000018ad: DUP2 000018ae: RETURNDATASIZE 000018af: PUSH1 0x20 000018b1: GT 000018b2: PUSH2 0x18d7 000018b5: JUMPI 000018b6: JUMPDEST 000018b7: DUP2 000018b8: PUSH2 0x18c3 000018bb: PUSH1 0x20 000018bd: SWAP4 000018be: DUP4 000018bf: PUSH2 0x0d3f 000018c2: JUMP 000018c3: JUMPDEST 000018c4: DUP2 000018c5: ADD 000018c6: SUB 000018c7: SLT 000018c8: PUSH2 0x18d3 000018cb: JUMPI 000018cc: MLOAD 000018cd: SWAP2 000018ce: CODESIZE 000018cf: PUSH2 0x158f 000018d2: JUMP 000018d3: JUMPDEST 000018d4: POP 000018d5: DUP1 000018d6: REVERT 000018d7: JUMPDEST 000018d8: RETURNDATASIZE 000018d9: SWAP2 000018da: POP 000018db: PUSH2 0x18b6 000018de: JUMP 000018df: JUMPDEST 000018e0: PUSH1 0x40 000018e2: MLOAD 000018e3: PUSH3 0x461bcd 000018e7: PUSH1 0xe5 000018e9: SHL 000018ea: DUP2 000018eb: MSTORE 000018ec: PUSH1 0x20 000018ee: PUSH1 0x04 000018f0: DUP3 000018f1: ADD 000018f2: MSTORE 000018f3: PUSH1 0x2d 000018f5: PUSH1 0x24 000018f7: DUP3 000018f8: ADD 000018f9: MSTORE 000018fa: PUSH32 0x5472616e7366657248656c7065723a3a736166655472616e736665723a207472 0000191b: PUSH1 0x44 0000191d: DUP3 0000191e: ADD 0000191f: MSTORE 00001920: PUSH13 0x185b9cd9995c8819985a5b1959 0000192e: PUSH1 0x9a 00001930: SHL 00001931: PUSH1 0x64 00001933: DUP3 00001934: ADD 00001935: MSTORE 00001936: PUSH1 0x84 00001938: SWAP1 00001939: REVERT 0000193a: JUMPDEST 0000193b: DUP1 0000193c: MLOAD 0000193d: DUP1 0000193e: ISZERO 0000193f: SWAP3 00001940: POP 00001941: DUP3 00001942: ISZERO 00001943: PUSH2 0x194f 00001946: JUMPI 00001947: JUMPDEST 00001948: POP 00001949: POP 0000194a: CODESIZE 0000194b: PUSH2 0x1555 0000194e: JUMP 0000194f: JUMPDEST 00001950: DUP2 00001951: SWAP3 00001952: POP 00001953: SWAP1 00001954: PUSH1 0x20 00001956: SWAP2 00001957: DUP2 00001958: ADD 00001959: SUB 0000195a: SLT 0000195b: PUSH2 0x18d3 0000195e: JUMPI 0000195f: PUSH1 0x20 00001961: ADD 00001962: MLOAD 00001963: DUP1 00001964: ISZERO 00001965: ISZERO 00001966: DUP2 00001967: SUB 00001968: PUSH2 0x18d3 0000196b: JUMPI 0000196c: CODESIZE 0000196d: DUP1 0000196e: PUSH2 0x1947 00001971: JUMP 00001972: JUMPDEST 00001973: PUSH4 0x4e487b71 00001978: PUSH1 0xe0 0000197a: SHL 0000197b: DUP5 0000197c: MSTORE 0000197d: PUSH1 0x41 0000197f: PUSH1 0x04 00001981: MSTORE 00001982: PUSH1 0x24 00001984: DUP5 00001985: REVERT 00001986: JUMPDEST 00001987: SWAP1 00001988: DUP2 00001989: PUSH1 0x20 0000198b: SWAP2 0000198c: SUB 0000198d: SLT 0000198e: PUSH2 0x0103 00001991: JUMPI 00001992: MLOAD 00001993: PUSH1 0x01 00001995: PUSH1 0x01 00001997: PUSH1 0xa0 00001999: SHL 0000199a: SUB 0000199b: DUP2 0000199c: AND 0000199d: DUP2 0000199e: SUB 0000199f: PUSH2 0x0103 000019a2: JUMPI 000019a3: SWAP1 000019a4: JUMP 000019a5: JUMPDEST 000019a6: DUP1 000019a7: MLOAD 000019a8: PUSH1 0x03 000019aa: LT 000019ab: ISZERO 000019ac: PUSH2 0x1291 000019af: JUMPI 000019b0: PUSH1 0x80 000019b2: ADD 000019b3: SWAP1 000019b4: JUMP 000019b5: JUMPDEST 000019b6: SWAP1 000019b7: SWAP4 000019b8: SWAP3 000019b9: SWAP4 000019ba: PUSH1 0x40 000019bc: SWAP5 000019bd: DUP6 000019be: MLOAD 000019bf: SWAP4 000019c0: PUSH4 0xc45a0155 000019c5: PUSH1 0xe0 000019c7: SHL 000019c8: DUP6 000019c9: MSTORE 000019ca: PUSH1 0x20 000019cc: SWAP4 000019cd: PUSH1 0x04 000019cf: SWAP6 000019d0: DUP6 000019d1: DUP2 000019d2: DUP9 000019d3: DUP2 000019d4: PUSH1 0x01 000019d6: DUP1 000019d7: PUSH1 0xa0 000019d9: SHL 000019da: SUB 000019db: DUP1 000019dc: SWAP7 000019dd: AND 000019de: GAS 000019df: STATICCALL 000019e0: SWAP1 000019e1: DUP10 000019e2: DUP3 000019e3: ISZERO 000019e4: PUSH2 0x1b8b 000019e7: JUMPI 000019e8: PUSH2 0x1a2f 000019eb: SWAP3 000019ec: DUP8 000019ed: DUP6 000019ee: DUP12 000019ef: DUP9 000019f0: SWAP5 000019f1: DUP13 000019f2: SWAP7 000019f3: PUSH1 0x00 000019f5: SWAP6 000019f6: PUSH2 0x1b6c 000019f9: JUMPI 000019fa: JUMPDEST 000019fb: POP 000019fc: MLOAD 000019fd: PUSH4 0xe6a43905 00001a02: PUSH1 0xe0 00001a04: SHL 00001a05: DUP2 00001a06: MSTORE 00001a07: PUSH1 0x01 00001a09: PUSH1 0x01 00001a0b: PUSH1 0xa0 00001a0d: SHL 00001a0e: SUB 00001a0f: SWAP4 00001a10: DUP5 00001a11: AND 00001a12: SWAP2 00001a13: DUP2 00001a14: ADD 00001a15: SWAP2 00001a16: DUP3 00001a17: MSTORE 00001a18: SWAP3 00001a19: SWAP1 00001a1a: SWAP5 00001a1b: AND 00001a1c: PUSH1 0x20 00001a1e: DUP6 00001a1f: ADD 00001a20: MSTORE 00001a21: SWAP1 00001a22: SWAP5 00001a23: DUP6 00001a24: SWAP4 00001a25: DUP5 00001a26: SWAP3 00001a27: SWAP2 00001a28: DUP4 00001a29: SWAP2 00001a2a: PUSH1 0x40 00001a2c: ADD 00001a2d: SWAP1 00001a2e: JUMP 00001a2f: JUMPDEST 00001a30: SUB 00001a31: SWAP3 00001a32: AND 00001a33: GAS 00001a34: STATICCALL 00001a35: SWAP1 00001a36: DUP2 00001a37: ISZERO 00001a38: PUSH2 0x1b44 00001a3b: JUMPI 00001a3c: PUSH1 0x00 00001a3e: SWAP2 00001a3f: PUSH2 0x1b4f 00001a42: JUMPI 00001a43: JUMPDEST 00001a44: POP 00001a45: AND 00001a46: SWAP1 00001a47: DUP8 00001a48: MLOAD 00001a49: SWAP4 00001a4a: PUSH4 0x0dfe1681 00001a4f: PUSH1 0xe0 00001a51: SHL 00001a52: DUP6 00001a53: MSTORE 00001a54: DUP6 00001a55: DUP6 00001a56: DUP9 00001a57: DUP2 00001a58: DUP7 00001a59: GAS 00001a5a: STATICCALL 00001a5b: SWAP3 00001a5c: DUP4 00001a5d: ISZERO 00001a5e: PUSH2 0x1b44 00001a61: JUMPI 00001a62: PUSH2 0x1a73 00001a65: SWAP6 00001a66: PUSH1 0x00 00001a68: SWAP5 00001a69: PUSH2 0x1b25 00001a6c: JUMPI 00001a6d: JUMPDEST 00001a6e: POP 00001a6f: PUSH2 0x14ef 00001a72: JUMP 00001a73: JUMPDEST 00001a74: SWAP5 00001a75: SWAP2 00001a76: SWAP1 00001a77: SWAP3 00001a78: SWAP7 00001a79: DUP1 00001a7a: MLOAD 00001a7b: SWAP5 00001a7c: PUSH1 0xa0 00001a7e: DUP7 00001a7f: ADD 00001a80: DUP7 00001a81: DUP2 00001a82: LT 00001a83: PUSH1 0x01 00001a85: PUSH1 0x01 00001a87: PUSH1 0x40 00001a89: SHL 00001a8a: SUB 00001a8b: DUP3 00001a8c: GT 00001a8d: OR 00001a8e: PUSH2 0x1b10 00001a91: JUMPI 00001a92: DUP3 00001a93: MSTORE 00001a94: DUP4 00001a95: DUP7 00001a96: MSTORE 00001a97: DUP6 00001a98: ADD 00001a99: SWAP8 00001a9a: PUSH1 0x80 00001a9c: CALLDATASIZE 00001a9d: DUP11 00001a9e: CALLDATACOPY 00001a9f: DUP6 00001aa0: SWAP9 00001aa1: DUP7 00001aa2: MLOAD 00001aa3: ISZERO 00001aa4: PUSH2 0x1afb 00001aa7: JUMPI 00001aa8: MSTORE 00001aa9: DUP5 00001aaa: MLOAD 00001aab: PUSH1 0x01 00001aad: LT 00001aae: ISZERO 00001aaf: PUSH2 0x1ae6 00001ab2: JUMPI 00001ab3: DUP5 00001ab4: ADD 00001ab5: MSTORE 00001ab6: DUP3 00001ab7: MLOAD 00001ab8: PUSH1 0x02 00001aba: LT 00001abb: ISZERO 00001abc: PUSH2 0x1ad1 00001abf: JUMPI 00001ac0: POP 00001ac1: PUSH1 0x60 00001ac3: DUP3 00001ac4: ADD 00001ac5: MSTORE 00001ac6: PUSH2 0x1ace 00001ac9: SWAP1 00001aca: PUSH2 0x19a5 00001acd: JUMP 00001ace: JUMPDEST 00001acf: MSTORE 00001ad0: JUMP 00001ad1: JUMPDEST 00001ad2: PUSH1 0x32 00001ad4: SWAP1 00001ad5: PUSH4 0x4e487b71 00001ada: PUSH1 0xe0 00001adc: SHL 00001add: PUSH1 0x00 00001adf: MSTORE 00001ae0: MSTORE 00001ae1: PUSH1 0x24 00001ae3: PUSH1 0x00 00001ae5: REVERT 00001ae6: JUMPDEST 00001ae7: PUSH1 0x32 00001ae9: DUP4 00001aea: PUSH4 0x4e487b71 00001aef: PUSH1 0xe0 00001af1: SHL 00001af2: PUSH1 0x00 00001af4: MSTORE 00001af5: MSTORE 00001af6: PUSH1 0x24 00001af8: PUSH1 0x00 00001afa: REVERT 00001afb: JUMPDEST 00001afc: PUSH1 0x32 00001afe: DUP6 00001aff: PUSH4 0x4e487b71 00001b04: PUSH1 0xe0 00001b06: SHL 00001b07: PUSH1 0x00 00001b09: MSTORE 00001b0a: MSTORE 00001b0b: PUSH1 0x24 00001b0d: PUSH1 0x00 00001b0f: REVERT 00001b10: JUMPDEST 00001b11: PUSH1 0x41 00001b13: DUP6 00001b14: PUSH4 0x4e487b71 00001b19: PUSH1 0xe0 00001b1b: SHL 00001b1c: PUSH1 0x00 00001b1e: MSTORE 00001b1f: MSTORE 00001b20: PUSH1 0x24 00001b22: PUSH1 0x00 00001b24: REVERT 00001b25: JUMPDEST 00001b26: PUSH2 0x1b3d 00001b29: SWAP2 00001b2a: SWAP5 00001b2b: POP 00001b2c: DUP8 00001b2d: RETURNDATASIZE 00001b2e: DUP10 00001b2f: GT 00001b30: PUSH2 0x0b2b 00001b33: JUMPI 00001b34: PUSH2 0x0b1c 00001b37: DUP2 00001b38: DUP4 00001b39: PUSH2 0x0d3f 00001b3c: JUMP 00001b3d: JUMPDEST 00001b3e: SWAP3 00001b3f: CODESIZE 00001b40: PUSH2 0x1a6d 00001b43: JUMP 00001b44: JUMPDEST 00001b45: DUP10 00001b46: MLOAD 00001b47: RETURNDATASIZE 00001b48: PUSH1 0x00 00001b4a: DUP3 00001b4b: RETURNDATACOPY 00001b4c: RETURNDATASIZE 00001b4d: SWAP1 00001b4e: REVERT 00001b4f: JUMPDEST 00001b50: PUSH2 0x1b66 00001b53: SWAP2 00001b54: POP 00001b55: DUP7 00001b56: RETURNDATASIZE 00001b57: DUP9 00001b58: GT 00001b59: PUSH2 0x0b2b 00001b5c: JUMPI 00001b5d: PUSH2 0x0b1c 00001b60: DUP2 00001b61: DUP4 00001b62: PUSH2 0x0d3f 00001b65: JUMP 00001b66: JUMPDEST 00001b67: CODESIZE 00001b68: PUSH2 0x1a43 00001b6b: JUMP 00001b6c: JUMPDEST 00001b6d: PUSH2 0x1b84 00001b70: SWAP2 00001b71: SWAP6 00001b72: POP 00001b73: DUP8 00001b74: RETURNDATASIZE 00001b75: DUP10 00001b76: GT 00001b77: PUSH2 0x0b2b 00001b7a: JUMPI 00001b7b: PUSH2 0x0b1c 00001b7e: DUP2 00001b7f: DUP4 00001b80: PUSH2 0x0d3f 00001b83: JUMP 00001b84: JUMPDEST 00001b85: SWAP4 00001b86: CODESIZE 00001b87: PUSH2 0x19fa 00001b8a: JUMP 00001b8b: JUMPDEST 00001b8c: MLOAD 00001b8d: RETURNDATASIZE 00001b8e: PUSH1 0x00 00001b90: DUP3 00001b91: RETURNDATACOPY 00001b92: RETURNDATASIZE 00001b93: SWAP1 00001b94: REVERT 00001b95: INVALID 00001b96: LOG2 00001b97: PUSH5 0x6970667358 00001b9d: UNKNOWN(0x22) 00001b9e: SLT 00001b9f: KECCAK256 00001ba0: UNKNOWN(0x4F) 00001ba1: DUP3 00001ba2: UNKNOWN(0xA7) 00001ba3: UNKNOWN(0xC9) 00001ba4: UNKNOWN(0xDE) 00001ba5: UNKNOWN(0xB7) 00001ba6: MSIZE 00001ba7: UNKNOWN(0xEF) 00001ba8: BLOCKHASH 00001ba9: UNKNOWN(0xF9) 00001baa: BLOBBASEFEE 00001bab: SWAP8 00001bac: SWAP10 00001bad: UNKNOWN(0xF7) 00001bae: SHL 00001baf: UNKNOWN(0x4F) 00001bb0: RETURNDATACOPY 00001bb1: XOR 00001bb2: CALLER 00001bb3: UNKNOWN(0x2C) 00001bb4: MOD 00001bb5: STOP 00001bb6: UNKNOWN(0xFB) 00001bb7: UNKNOWN(0xDF) 00001bb8: UNKNOWN(0xD9) 00001bb9: SWAP7 00001bba: SWAP7 00001bbb: UNKNOWN(0xCD) 00001bbc: DUP15 00001bbd: UNKNOWN(0xBE) 00001bbe: JUMPDEST 00001bbf: ADD 00001bc0: PUSH5 0x736f6c6343 00001bc6: STOP 00001bc7: ADDMOD 00001bc8: SLT 00001bc9: STOP 00001bca: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xcba348c610a2c2f69c55f7eda8febf8ed6ea9ce3586a5a343aa9d5b810c5c506
call_targets:
0x9c5570e4615b1b1ae72f878edccb73b3951d0cb0
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xcba348c610a2c2f69c55f7eda8febf8ed6ea9ce3586a5a343aa9d5b810c5c506",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x9c5570e4615b1b1ae72f878edccb73b3951d0cb0"
],
"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": "0x01ffc9a7",
"selector": "0x01ffc9a7",
"calldata_variants": [
"0x01ffc9a7",
"0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x07bd0265",
"selector": "0x07bd0265",
"calldata_variants": [
"0x07bd0265",
"0x07bd02650000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x14bbe21c",
"selector": "0x14bbe21c",
"calldata_variants": [
"0x14bbe21c",
"0x14bbe21c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1765f52c",
"selector": "0x1765f52c",
"calldata_variants": [
"0x1765f52c",
"0x1765f52c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x248a9ca3",
"selector": "0x248a9ca3",
"calldata_variants": [
"0x248a9ca3",
"0x248a9ca30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2f2ff15d",
"selector": "0x2f2ff15d",
"calldata_variants": [
"0x2f2ff15d",
"0x2f2ff15d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x36568abe",
"selector": "0x36568abe",
"calldata_variants": [
"0x36568abe",
"0x36568abe0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x38af3eed",
"selector": "0x38af3eed",
"calldata_variants": [
"0x38af3eed",
"0x38af3eed0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 984,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5447,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5905,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [],
"untrusted_call_count": 3
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xcba348c610a2c2f69c55f7eda8febf8ed6ea9ce3586a5a343aa9d5b810c5c506
call_targets:
0x9c5570e4615b1b1ae72f878edccb73b3951d0cb0
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xcba348c610a2c2f69c55f7eda8febf8ed6ea9ce3586a5a343aa9d5b810c5c506",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x9c5570e4615b1b1ae72f878edccb73b3951d0cb0"
],
"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": "0x01ffc9a7",
"selector": "0x01ffc9a7",
"calldata_variants": [
"0x01ffc9a7",
"0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x07bd0265",
"selector": "0x07bd0265",
"calldata_variants": [
"0x07bd0265",
"0x07bd02650000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x14bbe21c",
"selector": "0x14bbe21c",
"calldata_variants": [
"0x14bbe21c",
"0x14bbe21c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1765f52c",
"selector": "0x1765f52c",
"calldata_variants": [
"0x1765f52c",
"0x1765f52c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x248a9ca3",
"selector": "0x248a9ca3",
"calldata_variants": [
"0x248a9ca3",
"0x248a9ca30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2f2ff15d",
"selector": "0x2f2ff15d",
"calldata_variants": [
"0x2f2ff15d",
"0x2f2ff15d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x36568abe",
"selector": "0x36568abe",
"calldata_variants": [
"0x36568abe",
"0x36568abe0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x38af3eed",
"selector": "0x38af3eed",
"calldata_variants": [
"0x38af3eed",
"0x38af3eed0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 984,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5447,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5905,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": []
}
|
| low | other | codex | Value-carrying CALLs use computed target/value (untrusted call risk, unconfirmed) | 65 | no | — |
viewevidence_json{
"evidence": "Detector findings show three CALL sites with computed target/value (pc:984, 5447, 5905) and no guards detected; validation marked the target as constant self-address and unconfirmed. Callsite metadata lists target_expression_category/value_expression_category as 'computed'.",
"locations": [
"pc:0x3d8",
"pc:0x1547",
"pc:0x1711"
],
"recommendation": "Confirm the CALL target/value sources in the high-level logic. If user-controlled, restrict targets (allowlist), avoid forwarding ETH, and add explicit access control and/or reentrancy protection. Ensure return values are checked and failures handled.",
"exploit_scenario": "If a user can influence the CALL target/value derived from calldata or memory, they could direct ETH to arbitrary addresses or trigger unexpected external code execution; if state changes occur around these calls, reentrancy could also be possible. Validation traces only saw the contract calling itself, so this may be a false positive or limited to self-calls."
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 19
}
|