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

Analysis Run

019bab3b-aa63-72d5-84fa-0e2c93349ffe

complete
Chain ID
1
Address
Block Number
Created
Sun, Jan 11, 2026 4:06 AM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Bytecode only
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
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

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
1
No findings?
no
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.
View stdout
{"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"]}]}
View stderr
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
Metadata
{
    "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
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
19
EXT*/BALANCE
1
Total opcodes
4517
Flags
call_family_heavy
View cast disassembly output
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

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 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
view
trace_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
view
evidence_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
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 19
}