019bb004-7a88-71a8-a984-b890b5639b62
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 39262 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 39263 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 39264 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 39265 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 39266 | capability.graph | complete | 1 / 3 | 3 months ago |
| 39267 | detector.run | complete | 1 / 3 | 3 months ago |
| 39268 | validation.fork | complete | 1 / 3 | 3 months ago |
| 39437 | report.consolidate | complete | 1 / 6 | 3 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"1 medium finding: a low-level CALL at pc 4461 uses computed target/value with no explicit success validation in the artifacts; detector hits for tx.origin/CREATE appear in metadata after the INVALID marker and look non-executable.","findings":[{"severity":"medium","category":"reentrancy","title":"Low-level CALL to computed target/value without clear success handling","exploit_scenario":"If the CALL target/value are influenced by user input or mutable storage (they are marked as computed), a malicious recipient contract can revert or reenter during the call. The bytecode artifacts do not show a clear success check; if state is updated regardless, payouts could be silently lost or reentrancy could impact invariants. Uncertainty remains because only bytecode-level evidence is available.","recommendation":"Validate the CALL success flag and handle failures explicitly (revert or record failure). If this is a payout to external accounts, use a pull-based claim pattern and/or a reentrancy guard around state updates that interact with external calls.","evidence":"callsites list shows CALL at pc 4461 with computed target/value and `returndata_checked: null`; detector findings report untrusted CALL target and possible ETH value transfer for the same callsite.","locations":["pc:4461"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-b1wpn690
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb005-37a8-7882-a1c7-6fe6a51e5308
--------
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-b1wpn690 succeeded in 8ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-b1wpn690 succeeded in 7ms:
{
"analysis_artifact": {
"address": "0xecb55b39adb7c166ccab4ccb77463ded1d201de4",
"artifact_hash": "0x7e37dc63a9e7e68cd00378755045051d063bd2009d13e0c0c82e2ead83ca8114",
"artifact_json": {
"auth": {
"guards": [
{
"pc": 6054,
"type": "tx_origin_used"
}
]
},
"basic_blocks": [
{
"end_pc": 12,
"hash": "0x8f1f0df1f19269f02266b776852d6ed8040a605e1bb8a65f5667180b0eea0664",
"opcodes": [
"PUSH1",
"PUSH1",
thinking
**Investigating callsite with pc 4461**
exec
/bin/bash -lc 'rg -n "pc": 4461 BYTECODE_BUNDLE.json' in /tmp/codex-b1wpn690 exited 2 in 19ms:
rg: 4461: No such file or directory (os error 2)
thinking
**Noticing quoting misuse in rg pattern**
exec
/bin/bash -lc "rg -n \"pc\":\\ 4461 BYTECODE_BUNDLE.json" in /tmp/codex-b1wpn690 exited 1 in 6ms:
thinking
**Searching for numeric matches in code**
exec
/bin/bash -lc 'rg -n "4461" BYTECODE_BUNDLE.json | head' in /tmp/codex-b1wpn690 succeeded in 34ms:
6088: "pc": 4461,
15156: "to": "call:4461",
15160: "from": "call:4461",
17638: "id": "call:4461",
17640: "pc": 4461,
17857: "pc": 4461,
17900: "pc": 4461,
thinking
**Inspecting callsite usage**
exec
/bin/bash -lc "sed -n '6070,6120p' BYTECODE_BUNDLE.json" in /tmp/codex-b1wpn690 succeeded in 6ms:
"SHA3",
"OP_A1",
"OP_A3",
"OP_E8",
"ORIGIN",
"CREATE",
"OP_86",
"OP_DE",
"PUSH13",
"PUSH12",
"PUSH16"
],
"start_pc": 6041
}
],
"callsites": [
{
"opcode": "CALL",
"pc": 4461,
"returndata_checked": null,
thinking
**Searching for basic blocks around PC 4461**
exec
/bin/bash -lc 'rg -n "start_pc": 44" BYTECODE_BUNDLE.json | head' in /tmp/codex-b1wpn690 exited 2 in 5ms:
/bin/bash: -c: line 1: unexpected EOF while looking for matching `"'
/bin/bash: -c: line 2: syntax error: unexpected end of file
thinking
**Adjusting quote style**
exec
/bin/bash -lc "rg -n 'start_pc\": 44' BYTECODE_BUNDLE.json | head" in /tmp/codex-b1wpn690 succeeded in 10ms:
4485: "start_pc": 4424
4517: "start_pc": 4476
17046: "start_pc": 4424,
17053: "start_pc": 4476,
thinking
**Checking code block boundaries around PC 4461**
exec
/bin/bash -lc "sed -n '4440,4495p' BYTECODE_BUNDLE.json" in /tmp/codex-b1wpn690 succeeded in 8ms:
"end_pc": 4475,
"hash": "0xcb9620a4d00d0f8249e9b14bafc7ff3e112e8459e7d79566ace4bcb70b4207b5",
"opcodes": [
"JUMPDEST",
"PUSH1",
"MLOAD",
"OP_80",
"OP_91",
"SUB",
"OP_90",
"OP_A2",
"PUSH1",
"OP_83",
"PUSH1",
"PUSH1",
"PUSH1",
"SHL",
"SUB",
"AND",
"OP_82",
thinking
**Examining call and reentrancy patterns**
exec
/bin/bash -lc 'rg -n "storage" BYTECODE_BUNDLE.json | head -n 20' in /tmp/codex-b1wpn690 succeeded in 8ms:
8074: "storage": {
8243: "storage": {
8412: "storage": {
8581: "storage": {
8750: "storage": {
8919: "storage": {
9088: "storage": {
9257: "storage": {
9426: "storage": {
9595: "storage": {
9764: "storage": {
9933: "storage": {
10102: "storage": {
10271: "storage": {
10440: "storage": {
10609: "storage": {
10778: "storage": {
10947: "storage": {
11116: "storage": {
11285: "storage": {
thinking
**Inspecting storage sections near line 8074**
exec
/bin/bash -lc "sed -n '8040,8095p' BYTECODE_BUNDLE.json" in /tmp/codex-b1wpn690 succeeded in 26ms:
"entry_pc": null,
"selector": "0x23b872dd"
},
{
"entry_pc": 117300739,
"selector": "0x03c83302"
},
{
"entry_pc": 157198259,
"selector": "0x06fdde03"
},
{
"entry_pc": null,
"selector": "0x095ea7b3"
}
],
"functions": [
{
"auth": {
"guards": [
thinking
**Analyzing function and storage usage**
exec
/bin/bash -lc 'rg -n "360894a13ba1a321" BYTECODE_BUNDLE.json' in /tmp/codex-b1wpn690 exited 1 in 9ms:
thinking
**Analyzing potential vulnerabilities from auth guards and calls**
exec
/bin/bash -lc "rg -n '\"create\"' BYTECODE_BUNDLE.json | head" in /tmp/codex-b1wpn690 succeeded in 9ms:
12992: "create": 1,
thinking
**Examining code near line 12992**
exec
/bin/bash -lc "sed -n '12960,13030p' BYTECODE_BUNDLE.json" in /tmp/codex-b1wpn690 succeeded in 6ms:
"0xbe10b614",
"0xdd62ed3e",
"0xe30443bc",
"0xfbcbc0f1",
"0xa457c2d7",
"0xa8b9d240",
"0xa9059cbb",
"0xaafd847a",
"0x85a6b3ae",
"0x8da5cb5b",
"0x91b89fba",
"0x95d89b41",
"0x6a474002",
"0x70a08231",
"0x715018a6",
"0x36951356",
"0x39509351",
"0x4e7b827f",
"0x52b5f81d",
"0x27ce0147",
thinking
**Investigating contract creation references**
exec
/bin/bash -lc 'rg -n "evidence" BYTECODE_BUNDLE.json | head -n 20' in /tmp/codex-b1wpn690 succeeded in 33ms:
13185: "proxy_evidence": {
17831: "evidence_json": {
17852: "evidence_json": {
17895: "evidence_json": {
17938: "evidence_json": {
thinking
**Exploring proxy_evidence context**
exec
/bin/bash -lc "sed -n '13160,13210p' BYTECODE_BUNDLE.json" in /tmp/codex-b1wpn690 succeeded in 21ms:
},
"analysis_run": {
"address": "0xecb55b39adb7c166ccab4ccb77463ded1d201de4",
"block_number": null,
"chain_id": 1,
"child_links": [],
"created_at": "2026-01-12T02:24:02.000000Z",
"id": "019bb004-7a88-71a8-a984-b890b5639b62",
"parent_links": [],
"status": "running",
"updated_at": "2026-01-12T02:24:02.000000Z"
},
"artifact": {
"codehash": "0x286394bd7ba3c0ba46eb541309d0613e0f747a02142255a05ede82f982ffc6ce",
"compiler_json": {
"compiler_version": null,
"etherscan": {
"contract_name": null,
"implementation": null,
"license": "Unknown",
thinking
**Analyzing runtime bytecode and call behavior**
exec
/bin/bash -lc "python - <<'PY'
import json
import sys
from pathlib import Path
# opcode map
opcodes = {
0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
0x20:'SHA3',
0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for i in range(1,33):
opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17):
opcodes[0x8f+i]=f'SWAP{i}'
j = json.loads(Path('BYTECODE_BUNDLE.json').read_text())
hexcode = j['artifact']['runtime_bytecode']['full'][2:]
code = bytes.fromhex(hexcode)
start = 4400
end = 4505
pc = 0
out = []
while pc < len(code):
op = code[pc]
name = opcodes.get(op, f'OP_{op:02x}')
if start <= pc <= end:
if name.startswith('PUSH'):
n = int(name[4:])
data = code[pc+1:pc+1+n]
out.append((pc, name, data.hex()))
pc += 1+n
continue
out.append((pc, name, ''))
if name.startswith('PUSH'):
n = int(name[4:])
pc += 1+n
else:
pc += 1
for pc,name,data in out:
if data:
print(f'{pc:04x} {name} 0x{data}')
else:
print(f'{pc:04x} {name}')
PY" in /tmp/codex-b1wpn690 succeeded in 49ms:
1130 DUP8
1131 SWAP1
1132 SWAP2
1133 DUP3
1134 MSTORE
1135 PUSH1 0x01
1137 PUSH1 0x01
1139 PUSH1 0xa0
113b SHL
113c SUB
113d AND
113e PUSH1 0x20
1140 DUP3
1141 ADD
1142 MSTORE
1143 PUSH1 0x40
1145 ADD
1146 SWAP1
1147 JUMP
1148 JUMPDEST
thinking
**Analyzing low-level call in assembly**
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
opcodes = {0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17): opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17): opcodes[0x8f+i]=f'SWAP{i}'
j = json.loads(Path('BYTECODE_BUNDLE.json').read_text())
code = bytes.fromhex(j['artifact']['runtime_bytecode']['full'][2:])
start=0x10e0
end=0x11b5
pc=0
out=[]
while pc < len(code):
op=code[pc]
name=opcodes.get(op,f'OP_{op:02x}')
if start <= pc <= end:
if name.startswith('PUSH'):
n=int(name[4:])
data=code[pc+1:pc+1+n]
out.append((pc,name,data.hex()))
pc+=1+n
continue
out.append((pc,name,''))
if name.startswith('PUSH'):
n=int(name[4:])
pc+=1+n
else:
pc+=1
for pc,name,data in out:
if data:
print(f'{pc:04x} {name} 0x{data}')
else:
print(f'{pc:04x} {name}')
PY" in /tmp/codex-b1wpn690 succeeded in 64ms:
10e1 SWAP1
10e2 DUP3
10e3 PUSH2 0x0dd3
10e6 JUMP
10e7 JUMPDEST
10e8 PUSH1 0x01
10ea PUSH1 0x01
10ec PUSH1 0xa0
10ee SHL
10ef SUB
10f0 DUP6
10f1 AND
10f2 PUSH1 0x00
10f4 DUP2
10f5 DUP2
10f6 MSTORE
10f7 PUSH1 0x07
10f9 PUSH1 0x20
10fb MSTORE
10fc PUSH1 0x40
thinking
**Analyzing external calls and event logging**
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
opcodes = {0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17): opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17): opcodes[0x8f+i]=f'SWAP{i}'
j = json.loads(Path('BYTECODE_BUNDLE.json').read_text())
code = bytes.fromhex(j['artifact']['runtime_bytecode']['full'][2:])
start=0x1760
end=0x17d5
pc=0
out=[]
while pc < len(code):
op=code[pc]
name=opcodes.get(op,f'OP_{op:02x}')
if start <= pc <= end:
if name.startswith('PUSH'):
n=int(name[4:])
data=code[pc+1:pc+1+n]
out.append((pc,name,data.hex()))
pc+=1+n
continue
out.append((pc,name,''))
if name.startswith('PUSH'):
n=int(name[4:])
pc+=1+n
else:
pc+=1
for pc,name,data in out:
if data:
print(f'{pc:04x} {name} 0x{data}')
else:
print(f'{pc:04x} {name}')
PY" in /tmp/codex-b1wpn690 succeeded in 84ms:
1760 ISZERO
1761 PUSH1 0x01
1763 PUSH1 0xff
1765 SHL
1766 DUP6
1767 ADD
1768 DUP5
1769 SLT
176a AND
176b ISZERO
176c PUSH2 0x1777
176f JUMPI
1770 PUSH2 0x1777
1773 PUSH2 0x1623
1776 JUMP
1777 JUMPDEST
1778 PUSH1 0x01
177a PUSH1 0x01
177c PUSH1 0xff
177e SHL
thinking
**Analyzing ORIGIN and CREATE in metadata**
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
j=json.loads(Path('BYTECODE_BUNDLE.json').read_text())
code=bytes.fromhex(j['artifact']['runtime_bytecode']['full'][2:])
# find possible metadata start by looking for 0xfea2646970667358 (solc marker)
marker=b'\\xfea2646970667358'
idx=code.find(marker)
print('metadata_marker_pc', idx)
origin_pcs=[i for i,b in enumerate(code) if b==0x32]
print('origin_pcs', origin_pcs[:10], 'count', len(origin_pcs))
if idx"'!=-1:
pre=[pc for pc in origin_pcs if pc < idx]
print('"'origin_before_metadata', pre)
print('origin_after_metadata', [pc for pc in origin_pcs if pc>=idx][:10])
PY" in /tmp/codex-b1wpn690 succeeded in 35ms:
metadata_marker_pc -1
origin_pcs [2801, 3047, 3832, 4384, 4839, 5074, 5189, 5415, 6054] count 9
thinking
**Investigating missing metadata marker**
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
j=json.loads(Path('BYTECODE_BUNDLE.json').read_text())
code=bytes.fromhex(j['artifact']['runtime_bytecode']['full'][2:])
print('len', len(code))
print(code[-80:].hex())
PY" in /tmp/codex-b1wpn690 succeeded in 31ms:
len 6094
1b038401831381161561179257611792611623565b5050039056fea2646970667358221220a1a3e832f086de6cb61f3b31813c5ae482d8dd06bf6b057ed57fae724de6effc64736f6c634300080d0033
thinking
**Investigating metadata marker byte mismatch**
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
j=json.loads(Path('BYTECODE_BUNDLE.json').read_text())
code=bytes.fromhex(j['artifact']['runtime_bytecode']['full'][2:])
marker=bytes.fromhex('fea2646970667358')
idx=code.find(marker)
print('metadata_marker_pc', idx)
origin_pcs=[i for i,b in enumerate(code) if b==0x32]
print('origin_pcs', origin_pcs)
print('origin_before_metadata', [pc for pc in origin_pcs if pc < idx])
print('origin_after_metadata', [pc for pc in origin_pcs if pc >= idx])
PY" in /tmp/codex-b1wpn690 succeeded in 69ms:
metadata_marker_pc 6040
origin_pcs [2801, 3047, 3832, 4384, 4839, 5074, 5189, 5415, 6054]
origin_before_metadata [2801, 3047, 3832, 4384, 4839, 5074, 5189, 5415]
origin_after_metadata [6054]
thinking
**Analyzing actual ORIGIN instructions**
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
opcodes = {0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17): opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17): opcodes[0x8f+i]=f'SWAP{i}'
j=json.loads(Path('BYTECODE_BUNDLE.json').read_text())
code=bytes.fromhex(j['artifact']['runtime_bytecode']['full'][2:])
instrs=[]
pc=0
while pc < len(code):
op=code[pc]
name=opcodes.get(op, f'OP_{op:02x}')
instrs.append((pc, name))
if name.startswith('PUSH'):
n=int(name[4:])
pc += 1+n
else:
pc += 1
origin_pcs=[pc for pc,name in instrs if name=='ORIGIN']
create_pcs=[pc for pc,name in instrs if name=='CREATE']
print('origin_instr_pcs', origin_pcs)
print('create_instr_pcs', create_pcs)
PY" in /tmp/codex-b1wpn690 succeeded in 43ms:
origin_instr_pcs [6054]
create_instr_pcs [6055]
thinking
**Analyzing false positives and call validation**
I'm sorting out that ORIGIN and CREATE opcodes come from metadata, not executable code, so flagged uses are false positives. The real concern is an external call to an untrusted address with value sent, where the contract updates state before the call but doesn’t reliably check if the call succeeded—this could cause dividends to be lost if the transfer fails. I’m planning to disassemble further to verify how the call’s success flag is handled in later code.
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
opcodes = {0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
for i in range(1,33): opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17): opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17): opcodes[0x8f+i]=f'SWAP{i}'
j=json.loads(Path('BYTECODE_BUNDLE.json').read_text())
code=bytes.fromhex(j['artifact']['runtime_bytecode']['full'][2:])
start=0x1190
end=0x1215
pc=0
out=[]
while pc < len(code):
op=code[pc]
name=opcodes.get(op, f'OP_{op:02x}')
if start <= pc <= end:
if name.startswith('PUSH'):
n=int(name[4:])
data=code[pc+1:pc+1+n]
out.append((pc,name,data.hex()))
pc+=1+n
continue
out.append((pc,name,''))
if name.startswith('PUSH'):
n=int(name[4:])
pc+=1+n
else:
pc+=1
for pc,name,data in out:
if data:
print(f'{pc:04x} {name} 0x{data}')
else:
print(f'{pc:04x} {name}')
PY" in /tmp/codex-b1wpn690 succeeded in 34ms:
1190 MSTORE
1191 RETURNDATASIZE
1192 PUSH1 0x00
1194 PUSH1 0x20
1196 DUP5
1197 ADD
1198 RETURNDATACOPY
1199 PUSH2 0x11a2
119c JUMP
119d JUMPDEST
119e PUSH1 0x60
11a0 SWAP2
11a1 POP
11a2 JUMPDEST
11a3 POP
11a4 POP
11a5 SWAP1
11a6 POP
11a7 DUP1
11a8 PUSH2 0x11f4
thinking
**Analyzing call handling and potential risks**
codex
{"no_findings":false,"summary":"1 medium finding: a low-level CALL at pc 4461 uses computed target/value with no explicit success validation in the artifacts; detector hits for tx.origin/CREATE appear in metadata after the INVALID marker and look non-executable.","findings":[{"severity":"medium","category":"reentrancy","title":"Low-level CALL to computed target/value without clear success handling","exploit_scenario":"If the CALL target/value are influenced by user input or mutable storage (they are marked as computed), a malicious recipient contract can revert or reenter during the call. The bytecode artifacts do not show a clear success check; if state is updated regardless, payouts could be silently lost or reentrancy could impact invariants. Uncertainty remains because only bytecode-level evidence is available.","recommendation":"Validate the CALL success flag and handle failures explicitly (revert or record failure). If this is a payout to external accounts, use a pull-based claim pattern and/or a reentrancy guard around state updates that interact with external calls.","evidence":"callsites list shows CALL at pc 4461 with computed target/value and `returndata_checked: null`; detector findings report untrusted CALL target and possible ETH value transfer for the same callsite.","locations":["pc:4461"]}]}
tokens used
64,406
{
"codex": {
"ran_at": "2026-01-12T02:30:39.573686+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 12190,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "1 medium finding: a low-level CALL at pc 4461 uses computed target/value with no explicit success validation in the artifacts; detector hits for tx.origin/CREATE appear in metadata after the INVALID marker and look non-executable.",
"raw_final": {
"summary": "1 medium finding: a low-level CALL at pc 4461 uses computed target/value with no explicit success validation in the artifacts; detector hits for tx.origin/CREATE appear in metadata after the INVALID marker and look non-executable.",
"findings": [
{
"title": "Low-level CALL to computed target/value without clear success handling",
"category": "reentrancy",
"evidence": "callsites list shows CALL at pc 4461 with computed target/value and `returndata_checked: null`; detector findings report untrusted CALL target and possible ETH value transfer for the same callsite.",
"severity": "medium",
"locations": [
"pc:4461"
],
"recommendation": "Validate the CALL success flag and handle failures explicitly (revert or record failure). If this is a payout to external accounts, use a pull-based claim pattern and/or a reentrancy guard around state updates that interact with external calls.",
"exploit_scenario": "If the CALL target/value are influenced by user input or mutable storage (they are marked as computed), a malicious recipient contract can revert or reenter during the call. The bytecode artifacts do not show a clear success check; if state is updated regardless, payouts could be silently lost or reentrancy could impact invariants. Uncertainty remains because only bytecode-level evidence is available."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x01c6 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x6a474002 00000019: GT 0000001a: PUSH2 0x00f7 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xa457c2d7 00000024: GT 00000025: PUSH2 0x0095 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xbe10b614 0000002f: GT 00000030: PUSH2 0x0064 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xbe10b614 0000003a: EQ 0000003b: PUSH2 0x050a 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xdd62ed3e 00000045: EQ 00000046: PUSH2 0x053e 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xe30443bc 00000050: EQ 00000051: PUSH2 0x0584 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xfbcbc0f1 0000005b: EQ 0000005c: PUSH2 0x05a4 0000005f: JUMPI 00000060: PUSH1 0x00 00000062: DUP1 00000063: REVERT 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0xa457c2d7 0000006b: EQ 0000006c: PUSH2 0x0474 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xa8b9d240 00000076: EQ 00000077: PUSH2 0x0494 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xa9059cbb 00000081: EQ 00000082: PUSH2 0x04b4 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xaafd847a 0000008c: EQ 0000008d: PUSH2 0x04d4 00000090: JUMPI 00000091: PUSH1 0x00 00000093: DUP1 00000094: REVERT 00000095: JUMPDEST 00000096: DUP1 00000097: PUSH4 0x85a6b3ae 0000009c: GT 0000009d: PUSH2 0x00d1 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0x85a6b3ae 000000a7: EQ 000000a8: PUSH2 0x0401 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0x8da5cb5b 000000b2: EQ 000000b3: PUSH2 0x0417 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0x91b89fba 000000bd: EQ 000000be: PUSH2 0x043f 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0x95d89b41 000000c8: EQ 000000c9: PUSH2 0x045f 000000cc: JUMPI 000000cd: PUSH1 0x00 000000cf: DUP1 000000d0: REVERT 000000d1: JUMPDEST 000000d2: DUP1 000000d3: PUSH4 0x6a474002 000000d8: EQ 000000d9: PUSH2 0x03a1 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0x70a08231 000000e3: EQ 000000e4: PUSH2 0x03b6 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0x715018a6 000000ee: EQ 000000ef: PUSH2 0x03ec 000000f2: JUMPI 000000f3: PUSH1 0x00 000000f5: DUP1 000000f6: REVERT 000000f7: JUMPDEST 000000f8: DUP1 000000f9: PUSH4 0x27ce0147 000000fe: GT 000000ff: PUSH2 0x0164 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0x36951356 00000109: GT 0000010a: PUSH2 0x013e 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0x36951356 00000114: EQ 00000115: PUSH2 0x0311 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0x39509351 0000011f: EQ 00000120: PUSH2 0x0331 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0x4e7b827f 0000012a: EQ 0000012b: PUSH2 0x0351 0000012e: JUMPI 0000012f: DUP1 00000130: PUSH4 0x52b5f81d 00000135: EQ 00000136: PUSH2 0x0381 00000139: JUMPI 0000013a: PUSH1 0x00 0000013c: DUP1 0000013d: REVERT 0000013e: JUMPDEST 0000013f: DUP1 00000140: PUSH4 0x27ce0147 00000145: EQ 00000146: PUSH2 0x02b5 00000149: JUMPI 0000014a: DUP1 0000014b: PUSH4 0x313ce567 00000150: EQ 00000151: PUSH2 0x02d5 00000154: JUMPI 00000155: DUP1 00000156: PUSH4 0x31e79db0 0000015b: EQ 0000015c: PUSH2 0x02f1 0000015f: JUMPI 00000160: PUSH1 0x00 00000162: DUP1 00000163: REVERT 00000164: JUMPDEST 00000165: DUP1 00000166: PUSH4 0x09bbedde 0000016b: GT 0000016c: PUSH2 0x01a0 0000016f: JUMPI 00000170: DUP1 00000171: PUSH4 0x09bbedde 00000176: EQ 00000177: PUSH2 0x023d 0000017a: JUMPI 0000017b: DUP1 0000017c: PUSH4 0x18160ddd 00000181: EQ 00000182: PUSH2 0x0260 00000185: JUMPI 00000186: DUP1 00000187: PUSH4 0x18c18adb 0000018c: EQ 0000018d: PUSH2 0x0275 00000190: JUMPI 00000191: DUP1 00000192: PUSH4 0x23b872dd 00000197: EQ 00000198: PUSH2 0x0295 0000019b: JUMPI 0000019c: PUSH1 0x00 0000019e: DUP1 0000019f: REVERT 000001a0: JUMPDEST 000001a1: DUP1 000001a2: PUSH4 0x03c83302 000001a7: EQ 000001a8: PUSH2 0x01da 000001ab: JUMPI 000001ac: DUP1 000001ad: PUSH4 0x06fdde03 000001b2: EQ 000001b3: PUSH2 0x01e2 000001b6: JUMPI 000001b7: DUP1 000001b8: PUSH4 0x095ea7b3 000001bd: EQ 000001be: PUSH2 0x020d 000001c1: JUMPI 000001c2: PUSH1 0x00 000001c4: DUP1 000001c5: REVERT 000001c6: JUMPDEST 000001c7: CALLDATASIZE 000001c8: PUSH2 0x01d5 000001cb: JUMPI 000001cc: PUSH2 0x01d3 000001cf: PUSH2 0x05d9 000001d2: JUMP 000001d3: JUMPDEST 000001d4: STOP 000001d5: JUMPDEST 000001d6: PUSH1 0x00 000001d8: DUP1 000001d9: REVERT 000001da: JUMPDEST 000001db: PUSH2 0x01d3 000001de: PUSH2 0x05d9 000001e1: JUMP 000001e2: JUMPDEST 000001e3: CALLVALUE 000001e4: DUP1 000001e5: ISZERO 000001e6: PUSH2 0x01ee 000001e9: JUMPI 000001ea: PUSH1 0x00 000001ec: DUP1 000001ed: REVERT 000001ee: JUMPDEST 000001ef: POP 000001f0: PUSH2 0x01f7 000001f3: PUSH2 0x066c 000001f6: JUMP 000001f7: JUMPDEST 000001f8: PUSH1 0x40 000001fa: MLOAD 000001fb: PUSH2 0x0204 000001fe: SWAP2 000001ff: SWAP1 00000200: PUSH2 0x14f3 00000203: JUMP 00000204: JUMPDEST 00000205: PUSH1 0x40 00000207: MLOAD 00000208: DUP1 00000209: SWAP2 0000020a: SUB 0000020b: SWAP1 0000020c: RETURN 0000020d: JUMPDEST 0000020e: CALLVALUE 0000020f: DUP1 00000210: ISZERO 00000211: PUSH2 0x0219 00000214: JUMPI 00000215: PUSH1 0x00 00000217: DUP1 00000218: REVERT 00000219: JUMPDEST 0000021a: POP 0000021b: PUSH2 0x022d 0000021e: PUSH2 0x0228 00000221: CALLDATASIZE 00000222: PUSH1 0x04 00000224: PUSH2 0x1560 00000227: JUMP 00000228: JUMPDEST 00000229: PUSH2 0x06fe 0000022c: JUMP 0000022d: JUMPDEST 0000022e: PUSH1 0x40 00000230: MLOAD 00000231: SWAP1 00000232: ISZERO 00000233: ISZERO 00000234: DUP2 00000235: MSTORE 00000236: PUSH1 0x20 00000238: ADD 00000239: PUSH2 0x0204 0000023c: JUMP 0000023d: JUMPDEST 0000023e: CALLVALUE 0000023f: DUP1 00000240: ISZERO 00000241: PUSH2 0x0249 00000244: JUMPI 00000245: PUSH1 0x00 00000247: DUP1 00000248: REVERT 00000249: JUMPDEST 0000024a: POP 0000024b: PUSH2 0x0252 0000024e: PUSH2 0x0718 00000251: JUMP 00000252: JUMPDEST 00000253: PUSH1 0x40 00000255: MLOAD 00000256: SWAP1 00000257: DUP2 00000258: MSTORE 00000259: PUSH1 0x20 0000025b: ADD 0000025c: PUSH2 0x0204 0000025f: JUMP 00000260: JUMPDEST 00000261: CALLVALUE 00000262: DUP1 00000263: ISZERO 00000264: PUSH2 0x026c 00000267: JUMPI 00000268: PUSH1 0x00 0000026a: DUP1 0000026b: REVERT 0000026c: JUMPDEST 0000026d: POP 0000026e: PUSH1 0x02 00000270: SLOAD 00000271: PUSH2 0x0252 00000274: JUMP 00000275: JUMPDEST 00000276: CALLVALUE 00000277: DUP1 00000278: ISZERO 00000279: PUSH2 0x0281 0000027c: JUMPI 0000027d: PUSH1 0x00 0000027f: DUP1 00000280: REVERT 00000281: JUMPDEST 00000282: POP 00000283: PUSH2 0x01d3 00000286: PUSH2 0x0290 00000289: CALLDATASIZE 0000028a: PUSH1 0x04 0000028c: PUSH2 0x1560 0000028f: JUMP 00000290: JUMPDEST 00000291: PUSH2 0x0728 00000294: JUMP 00000295: JUMPDEST 00000296: CALLVALUE 00000297: DUP1 00000298: ISZERO 00000299: PUSH2 0x02a1 0000029c: JUMPI 0000029d: PUSH1 0x00 0000029f: DUP1 000002a0: REVERT 000002a1: JUMPDEST 000002a2: POP 000002a3: PUSH2 0x022d 000002a6: PUSH2 0x02b0 000002a9: CALLDATASIZE 000002aa: PUSH1 0x04 000002ac: PUSH2 0x158c 000002af: JUMP 000002b0: JUMPDEST 000002b1: PUSH2 0x0839 000002b4: JUMP 000002b5: JUMPDEST 000002b6: CALLVALUE 000002b7: DUP1 000002b8: ISZERO 000002b9: PUSH2 0x02c1 000002bc: JUMPI 000002bd: PUSH1 0x00 000002bf: DUP1 000002c0: REVERT 000002c1: JUMPDEST 000002c2: POP 000002c3: PUSH2 0x0252 000002c6: PUSH2 0x02d0 000002c9: CALLDATASIZE 000002ca: PUSH1 0x04 000002cc: PUSH2 0x15cd 000002cf: JUMP 000002d0: JUMPDEST 000002d1: PUSH2 0x085d 000002d4: JUMP 000002d5: JUMPDEST 000002d6: CALLVALUE 000002d7: DUP1 000002d8: ISZERO 000002d9: PUSH2 0x02e1 000002dc: JUMPI 000002dd: PUSH1 0x00 000002df: DUP1 000002e0: REVERT 000002e1: JUMPDEST 000002e2: POP 000002e3: PUSH1 0x40 000002e5: MLOAD 000002e6: PUSH1 0x12 000002e8: DUP2 000002e9: MSTORE 000002ea: PUSH1 0x20 000002ec: ADD 000002ed: PUSH2 0x0204 000002f0: JUMP 000002f1: JUMPDEST 000002f2: CALLVALUE 000002f3: DUP1 000002f4: ISZERO 000002f5: PUSH2 0x02fd 000002f8: JUMPI 000002f9: PUSH1 0x00 000002fb: DUP1 000002fc: REVERT 000002fd: JUMPDEST 000002fe: POP 000002ff: PUSH2 0x01d3 00000302: PUSH2 0x030c 00000305: CALLDATASIZE 00000306: PUSH1 0x04 00000308: PUSH2 0x15cd 0000030b: JUMP 0000030c: JUMPDEST 0000030d: PUSH2 0x08b9 00000310: JUMP 00000311: JUMPDEST 00000312: CALLVALUE 00000313: DUP1 00000314: ISZERO 00000315: PUSH2 0x031d 00000318: JUMPI 00000319: PUSH1 0x00 0000031b: DUP1 0000031c: REVERT 0000031d: JUMPDEST 0000031e: POP 0000031f: PUSH2 0x022d 00000322: PUSH2 0x032c 00000325: CALLDATASIZE 00000326: PUSH1 0x04 00000328: PUSH2 0x15cd 0000032b: JUMP 0000032c: JUMPDEST 0000032d: PUSH2 0x0997 00000330: JUMP 00000331: JUMPDEST 00000332: CALLVALUE 00000333: DUP1 00000334: ISZERO 00000335: PUSH2 0x033d 00000338: JUMPI 00000339: PUSH1 0x00 0000033b: DUP1 0000033c: REVERT 0000033d: JUMPDEST 0000033e: POP 0000033f: PUSH2 0x022d 00000342: PUSH2 0x034c 00000345: CALLDATASIZE 00000346: PUSH1 0x04 00000348: PUSH2 0x1560 0000034b: JUMP 0000034c: JUMPDEST 0000034d: PUSH2 0x09e3 00000350: JUMP 00000351: JUMPDEST 00000352: CALLVALUE 00000353: DUP1 00000354: ISZERO 00000355: PUSH2 0x035d 00000358: JUMPI 00000359: PUSH1 0x00 0000035b: DUP1 0000035c: REVERT 0000035d: JUMPDEST 0000035e: POP 0000035f: PUSH2 0x022d 00000362: PUSH2 0x036c 00000365: CALLDATASIZE 00000366: PUSH1 0x04 00000368: PUSH2 0x15cd 0000036b: JUMP 0000036c: JUMPDEST 0000036d: PUSH1 0x0d 0000036f: PUSH1 0x20 00000371: MSTORE 00000372: PUSH1 0x00 00000374: SWAP1 00000375: DUP2 00000376: MSTORE 00000377: PUSH1 0x40 00000379: SWAP1 0000037a: KECCAK256 0000037b: SLOAD 0000037c: PUSH1 0xff 0000037e: AND 0000037f: DUP2 00000380: JUMP 00000381: JUMPDEST 00000382: CALLVALUE 00000383: DUP1 00000384: ISZERO 00000385: PUSH2 0x038d 00000388: JUMPI 00000389: PUSH1 0x00 0000038b: DUP1 0000038c: REVERT 0000038d: JUMPDEST 0000038e: POP 0000038f: PUSH2 0x0252 00000392: PUSH2 0x039c 00000395: CALLDATASIZE 00000396: PUSH1 0x04 00000398: PUSH2 0x15ea 0000039b: JUMP 0000039c: JUMPDEST 0000039d: PUSH2 0x0a22 000003a0: JUMP 000003a1: JUMPDEST 000003a2: CALLVALUE 000003a3: DUP1 000003a4: ISZERO 000003a5: PUSH2 0x03ad 000003a8: JUMPI 000003a9: PUSH1 0x00 000003ab: DUP1 000003ac: REVERT 000003ad: JUMPDEST 000003ae: POP 000003af: PUSH2 0x01d3 000003b2: PUSH2 0x0a63 000003b5: JUMP 000003b6: JUMPDEST 000003b7: CALLVALUE 000003b8: DUP1 000003b9: ISZERO 000003ba: PUSH2 0x03c2 000003bd: JUMPI 000003be: PUSH1 0x00 000003c0: DUP1 000003c1: REVERT 000003c2: JUMPDEST 000003c3: POP 000003c4: PUSH2 0x0252 000003c7: PUSH2 0x03d1 000003ca: CALLDATASIZE 000003cb: PUSH1 0x04 000003cd: PUSH2 0x15cd 000003d0: JUMP 000003d1: JUMPDEST 000003d2: PUSH1 0x01 000003d4: PUSH1 0x01 000003d6: PUSH1 0xa0 000003d8: SHL 000003d9: SUB 000003da: AND 000003db: PUSH1 0x00 000003dd: SWAP1 000003de: DUP2 000003df: MSTORE 000003e0: PUSH1 0x20 000003e2: DUP2 000003e3: SWAP1 000003e4: MSTORE 000003e5: PUSH1 0x40 000003e7: SWAP1 000003e8: KECCAK256 000003e9: SLOAD 000003ea: SWAP1 000003eb: JUMP 000003ec: JUMPDEST 000003ed: CALLVALUE 000003ee: DUP1 000003ef: ISZERO 000003f0: PUSH2 0x03f8 000003f3: JUMPI 000003f4: PUSH1 0x00 000003f6: DUP1 000003f7: REVERT 000003f8: JUMPDEST 000003f9: POP 000003fa: PUSH2 0x01d3 000003fd: PUSH2 0x0b0b 00000400: JUMP 00000401: JUMPDEST 00000402: CALLVALUE 00000403: DUP1 00000404: ISZERO 00000405: PUSH2 0x040d 00000408: JUMPI 00000409: PUSH1 0x00 0000040b: DUP1 0000040c: REVERT 0000040d: JUMPDEST 0000040e: POP 0000040f: PUSH2 0x0252 00000412: PUSH1 0x08 00000414: SLOAD 00000415: DUP2 00000416: JUMP 00000417: JUMPDEST 00000418: CALLVALUE 00000419: DUP1 0000041a: ISZERO 0000041b: PUSH2 0x0423 0000041e: JUMPI 0000041f: PUSH1 0x00 00000421: DUP1 00000422: REVERT 00000423: JUMPDEST 00000424: POP 00000425: PUSH1 0x09 00000427: SLOAD 00000428: PUSH1 0x40 0000042a: MLOAD 0000042b: PUSH1 0x01 0000042d: PUSH1 0x01 0000042f: PUSH1 0xa0 00000431: SHL 00000432: SUB 00000433: SWAP1 00000434: SWAP2 00000435: AND 00000436: DUP2 00000437: MSTORE 00000438: PUSH1 0x20 0000043a: ADD 0000043b: PUSH2 0x0204 0000043e: JUMP 0000043f: JUMPDEST 00000440: CALLVALUE 00000441: DUP1 00000442: ISZERO 00000443: PUSH2 0x044b 00000446: JUMPI 00000447: PUSH1 0x00 00000449: DUP1 0000044a: REVERT 0000044b: JUMPDEST 0000044c: POP 0000044d: PUSH2 0x0252 00000450: PUSH2 0x045a 00000453: CALLDATASIZE 00000454: PUSH1 0x04 00000456: PUSH2 0x15cd 00000459: JUMP 0000045a: JUMPDEST 0000045b: PUSH2 0x0b7f 0000045e: JUMP 0000045f: JUMPDEST 00000460: CALLVALUE 00000461: DUP1 00000462: ISZERO 00000463: PUSH2 0x046b 00000466: JUMPI 00000467: PUSH1 0x00 00000469: DUP1 0000046a: REVERT 0000046b: JUMPDEST 0000046c: POP 0000046d: PUSH2 0x01f7 00000470: PUSH2 0x0b8a 00000473: JUMP 00000474: JUMPDEST 00000475: CALLVALUE 00000476: DUP1 00000477: ISZERO 00000478: PUSH2 0x0480 0000047b: JUMPI 0000047c: PUSH1 0x00 0000047e: DUP1 0000047f: REVERT 00000480: JUMPDEST 00000481: POP 00000482: PUSH2 0x022d 00000485: PUSH2 0x048f 00000488: CALLDATASIZE 00000489: PUSH1 0x04 0000048b: PUSH2 0x1560 0000048e: JUMP 0000048f: JUMPDEST 00000490: PUSH2 0x0b99 00000493: JUMP 00000494: JUMPDEST 00000495: CALLVALUE 00000496: DUP1 00000497: ISZERO 00000498: PUSH2 0x04a0 0000049b: JUMPI 0000049c: PUSH1 0x00 0000049e: DUP1 0000049f: REVERT 000004a0: JUMPDEST 000004a1: POP 000004a2: PUSH2 0x0252 000004a5: PUSH2 0x04af 000004a8: CALLDATASIZE 000004a9: PUSH1 0x04 000004ab: PUSH2 0x15cd 000004ae: JUMP 000004af: JUMPDEST 000004b0: PUSH2 0x0c2b 000004b3: JUMP 000004b4: JUMPDEST 000004b5: CALLVALUE 000004b6: DUP1 000004b7: ISZERO 000004b8: PUSH2 0x04c0 000004bb: JUMPI 000004bc: PUSH1 0x00 000004be: DUP1 000004bf: REVERT 000004c0: JUMPDEST 000004c1: POP 000004c2: PUSH2 0x022d 000004c5: PUSH2 0x04cf 000004c8: CALLDATASIZE 000004c9: PUSH1 0x04 000004cb: PUSH2 0x1560 000004ce: JUMP 000004cf: JUMPDEST 000004d0: PUSH2 0x0c57 000004d3: JUMP 000004d4: JUMPDEST 000004d5: CALLVALUE 000004d6: DUP1 000004d7: ISZERO 000004d8: PUSH2 0x04e0 000004db: JUMPI 000004dc: PUSH1 0x00 000004de: DUP1 000004df: REVERT 000004e0: JUMPDEST 000004e1: POP 000004e2: PUSH2 0x0252 000004e5: PUSH2 0x04ef 000004e8: CALLDATASIZE 000004e9: PUSH1 0x04 000004eb: PUSH2 0x15cd 000004ee: JUMP 000004ef: JUMPDEST 000004f0: PUSH1 0x01 000004f2: PUSH1 0x01 000004f4: PUSH1 0xa0 000004f6: SHL 000004f7: SUB 000004f8: AND 000004f9: PUSH1 0x00 000004fb: SWAP1 000004fc: DUP2 000004fd: MSTORE 000004fe: PUSH1 0x07 00000500: PUSH1 0x20 00000502: MSTORE 00000503: PUSH1 0x40 00000505: SWAP1 00000506: KECCAK256 00000507: SLOAD 00000508: SWAP1 00000509: JUMP 0000050a: JUMPDEST 0000050b: CALLVALUE 0000050c: DUP1 0000050d: ISZERO 0000050e: PUSH2 0x0516 00000511: JUMPI 00000512: PUSH1 0x00 00000514: DUP1 00000515: REVERT 00000516: JUMPDEST 00000517: POP 00000518: PUSH2 0x0252 0000051b: PUSH32 0x00000000000000000000000000000000000000000000021e19e0c9bab2400000 0000053c: DUP2 0000053d: JUMP 0000053e: JUMPDEST 0000053f: CALLVALUE 00000540: DUP1 00000541: ISZERO 00000542: PUSH2 0x054a 00000545: JUMPI 00000546: PUSH1 0x00 00000548: DUP1 00000549: REVERT 0000054a: JUMPDEST 0000054b: POP 0000054c: PUSH2 0x0252 0000054f: PUSH2 0x0559 00000552: CALLDATASIZE 00000553: PUSH1 0x04 00000555: PUSH2 0x15ea 00000558: JUMP 00000559: JUMPDEST 0000055a: PUSH1 0x01 0000055c: PUSH1 0x01 0000055e: PUSH1 0xa0 00000560: SHL 00000561: SUB 00000562: SWAP2 00000563: DUP3 00000564: AND 00000565: PUSH1 0x00 00000567: SWAP1 00000568: DUP2 00000569: MSTORE 0000056a: PUSH1 0x01 0000056c: PUSH1 0x20 0000056e: SWAP1 0000056f: DUP2 00000570: MSTORE 00000571: PUSH1 0x40 00000573: DUP1 00000574: DUP4 00000575: KECCAK256 00000576: SWAP4 00000577: SWAP1 00000578: SWAP5 00000579: AND 0000057a: DUP3 0000057b: MSTORE 0000057c: SWAP2 0000057d: SWAP1 0000057e: SWAP2 0000057f: MSTORE 00000580: KECCAK256 00000581: SLOAD 00000582: SWAP1 00000583: JUMP 00000584: JUMPDEST 00000585: CALLVALUE 00000586: DUP1 00000587: ISZERO 00000588: PUSH2 0x0590 0000058b: JUMPI 0000058c: PUSH1 0x00 0000058e: DUP1 0000058f: REVERT 00000590: JUMPDEST 00000591: POP 00000592: PUSH2 0x01d3 00000595: PUSH2 0x059f 00000598: CALLDATASIZE 00000599: PUSH1 0x04 0000059b: PUSH2 0x1560 0000059e: JUMP 0000059f: JUMPDEST 000005a0: PUSH2 0x0c65 000005a3: JUMP 000005a4: JUMPDEST 000005a5: CALLVALUE 000005a6: DUP1 000005a7: ISZERO 000005a8: PUSH2 0x05b0 000005ab: JUMPI 000005ac: PUSH1 0x00 000005ae: DUP1 000005af: REVERT 000005b0: JUMPDEST 000005b1: POP 000005b2: PUSH2 0x05c4 000005b5: PUSH2 0x05bf 000005b8: CALLDATASIZE 000005b9: PUSH1 0x04 000005bb: PUSH2 0x15cd 000005be: JUMP 000005bf: JUMPDEST 000005c0: PUSH2 0x0d93 000005c3: JUMP 000005c4: JUMPDEST 000005c5: PUSH1 0x40 000005c7: DUP1 000005c8: MLOAD 000005c9: SWAP3 000005ca: DUP4 000005cb: MSTORE 000005cc: PUSH1 0x20 000005ce: DUP4 000005cf: ADD 000005d0: SWAP2 000005d1: SWAP1 000005d2: SWAP2 000005d3: MSTORE 000005d4: ADD 000005d5: PUSH2 0x0204 000005d8: JUMP 000005d9: JUMPDEST 000005da: PUSH1 0x00 000005dc: PUSH2 0x05e4 000005df: PUSH1 0x02 000005e1: SLOAD 000005e2: SWAP1 000005e3: JUMP 000005e4: JUMPDEST 000005e5: GT 000005e6: PUSH2 0x05ee 000005e9: JUMPI 000005ea: PUSH1 0x00 000005ec: DUP1 000005ed: REVERT 000005ee: JUMPDEST 000005ef: CALLVALUE 000005f0: ISZERO 000005f1: PUSH2 0x066a 000005f4: JUMPI 000005f5: PUSH2 0x0621 000005f8: PUSH2 0x0600 000005fb: PUSH1 0x02 000005fd: SLOAD 000005fe: SWAP1 000005ff: JUMP 00000600: JUMPDEST 00000601: PUSH2 0x060e 00000604: CALLVALUE 00000605: PUSH1 0x01 00000607: PUSH1 0x80 00000609: SHL 0000060a: PUSH2 0x0dc0 0000060d: JUMP 0000060e: JUMPDEST 0000060f: PUSH2 0x0618 00000612: SWAP2 00000613: SWAP1 00000614: PUSH2 0x1639 00000617: JUMP 00000618: JUMPDEST 00000619: PUSH1 0x05 0000061b: SLOAD 0000061c: SWAP1 0000061d: PUSH2 0x0dd3 00000620: JUMP 00000621: JUMPDEST 00000622: PUSH1 0x05 00000624: SSTORE 00000625: PUSH1 0x40 00000627: MLOAD 00000628: CALLVALUE 00000629: DUP2 0000062a: MSTORE 0000062b: CALLER 0000062c: SWAP1 0000062d: PUSH32 0xa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d78454116511 0000064e: SWAP1 0000064f: PUSH1 0x20 00000651: ADD 00000652: PUSH1 0x40 00000654: MLOAD 00000655: DUP1 00000656: SWAP2 00000657: SUB 00000658: SWAP1 00000659: LOG2 0000065a: PUSH1 0x08 0000065c: SLOAD 0000065d: PUSH2 0x0666 00000660: SWAP1 00000661: CALLVALUE 00000662: PUSH2 0x0dd3 00000665: JUMP 00000666: JUMPDEST 00000667: PUSH1 0x08 00000669: SSTORE 0000066a: JUMPDEST 0000066b: JUMP 0000066c: JUMPDEST 0000066d: PUSH1 0x60 0000066f: PUSH1 0x03 00000671: DUP1 00000672: SLOAD 00000673: PUSH2 0x067b 00000676: SWAP1 00000677: PUSH2 0x165b 0000067a: JUMP 0000067b: JUMPDEST 0000067c: DUP1 0000067d: PUSH1 0x1f 0000067f: ADD 00000680: PUSH1 0x20 00000682: DUP1 00000683: SWAP2 00000684: DIV 00000685: MUL 00000686: PUSH1 0x20 00000688: ADD 00000689: PUSH1 0x40 0000068b: MLOAD 0000068c: SWAP1 0000068d: DUP2 0000068e: ADD 0000068f: PUSH1 0x40 00000691: MSTORE 00000692: DUP1 00000693: SWAP3 00000694: SWAP2 00000695: SWAP1 00000696: DUP2 00000697: DUP2 00000698: MSTORE 00000699: PUSH1 0x20 0000069b: ADD 0000069c: DUP3 0000069d: DUP1 0000069e: SLOAD 0000069f: PUSH2 0x06a7 000006a2: SWAP1 000006a3: PUSH2 0x165b 000006a6: JUMP 000006a7: JUMPDEST 000006a8: DUP1 000006a9: ISZERO 000006aa: PUSH2 0x06f4 000006ad: JUMPI 000006ae: DUP1 000006af: PUSH1 0x1f 000006b1: LT 000006b2: PUSH2 0x06c9 000006b5: JUMPI 000006b6: PUSH2 0x0100 000006b9: DUP1 000006ba: DUP4 000006bb: SLOAD 000006bc: DIV 000006bd: MUL 000006be: DUP4 000006bf: MSTORE 000006c0: SWAP2 000006c1: PUSH1 0x20 000006c3: ADD 000006c4: SWAP2 000006c5: PUSH2 0x06f4 000006c8: JUMP 000006c9: JUMPDEST 000006ca: DUP3 000006cb: ADD 000006cc: SWAP2 000006cd: SWAP1 000006ce: PUSH1 0x00 000006d0: MSTORE 000006d1: PUSH1 0x20 000006d3: PUSH1 0x00 000006d5: KECCAK256 000006d6: SWAP1 000006d7: JUMPDEST 000006d8: DUP2 000006d9: SLOAD 000006da: DUP2 000006db: MSTORE 000006dc: SWAP1 000006dd: PUSH1 0x01 000006df: ADD 000006e0: SWAP1 000006e1: PUSH1 0x20 000006e3: ADD 000006e4: DUP1 000006e5: DUP4 000006e6: GT 000006e7: PUSH2 0x06d7 000006ea: JUMPI 000006eb: DUP3 000006ec: SWAP1 000006ed: SUB 000006ee: PUSH1 0x1f 000006f0: AND 000006f1: DUP3 000006f2: ADD 000006f3: SWAP2 000006f4: JUMPDEST 000006f5: POP 000006f6: POP 000006f7: POP 000006f8: POP 000006f9: POP 000006fa: SWAP1 000006fb: POP 000006fc: SWAP1 000006fd: JUMP 000006fe: JUMPDEST 000006ff: PUSH1 0x00 00000701: CALLER 00000702: PUSH2 0x070c 00000705: DUP2 00000706: DUP6 00000707: DUP6 00000708: PUSH2 0x0ddf 0000070b: JUMP 0000070c: JUMPDEST 0000070d: PUSH1 0x01 0000070f: SWAP2 00000710: POP 00000711: POP 00000712: JUMPDEST 00000713: SWAP3 00000714: SWAP2 00000715: POP 00000716: POP 00000717: JUMP 00000718: JUMPDEST 00000719: PUSH1 0x00 0000071b: PUSH2 0x0723 0000071e: PUSH1 0x0b 00000720: SLOAD 00000721: SWAP1 00000722: JUMP 00000723: JUMPDEST 00000724: SWAP1 00000725: POP 00000726: SWAP1 00000727: JUMP 00000728: JUMPDEST 00000729: PUSH1 0x09 0000072b: SLOAD 0000072c: PUSH1 0x01 0000072e: PUSH1 0x01 00000730: PUSH1 0xa0 00000732: SHL 00000733: SUB 00000734: AND 00000735: CALLER 00000736: EQ 00000737: PUSH2 0x075b 0000073a: JUMPI 0000073b: PUSH1 0x40 0000073d: MLOAD 0000073e: PUSH3 0x461bcd 00000742: PUSH1 0xe5 00000744: SHL 00000745: DUP2 00000746: MSTORE 00000747: PUSH1 0x04 00000749: ADD 0000074a: PUSH2 0x0752 0000074d: SWAP1 0000074e: PUSH2 0x1695 00000751: JUMP 00000752: JUMPDEST 00000753: PUSH1 0x40 00000755: MLOAD 00000756: DUP1 00000757: SWAP2 00000758: SUB 00000759: SWAP1 0000075a: REVERT 0000075b: JUMPDEST 0000075c: PUSH1 0x01 0000075e: PUSH1 0x01 00000760: PUSH1 0xa0 00000762: SHL 00000763: SUB 00000764: DUP3 00000765: AND 00000766: PUSH1 0x00 00000768: SWAP1 00000769: DUP2 0000076a: MSTORE 0000076b: PUSH1 0x0d 0000076d: PUSH1 0x20 0000076f: MSTORE 00000770: PUSH1 0x40 00000772: SWAP1 00000773: KECCAK256 00000774: DUP1 00000775: SLOAD 00000776: PUSH1 0xff 00000778: NOT 00000779: AND 0000077a: SWAP1 0000077b: SSTORE 0000077c: PUSH32 0x00000000000000000000000000000000000000000000021e19e0c9bab2400000 0000079d: DUP2 0000079e: LT 0000079f: PUSH2 0x0801 000007a2: JUMPI 000007a3: PUSH2 0x07ac 000007a6: DUP3 000007a7: DUP3 000007a8: PUSH2 0x0e43 000007ab: JUMP 000007ac: JUMPDEST 000007ad: PUSH1 0x01 000007af: PUSH1 0x01 000007b1: PUSH1 0xa0 000007b3: SHL 000007b4: SUB 000007b5: DUP3 000007b6: AND 000007b7: PUSH1 0x00 000007b9: SWAP1 000007ba: DUP2 000007bb: MSTORE 000007bc: PUSH1 0x0c 000007be: PUSH1 0x20 000007c0: MSTORE 000007c1: PUSH1 0x40 000007c3: DUP2 000007c4: KECCAK256 000007c5: SLOAD 000007c6: PUSH1 0xff 000007c8: AND 000007c9: ISZERO 000007ca: ISZERO 000007cb: SWAP1 000007cc: SUB 000007cd: PUSH2 0x0801 000007d0: JUMPI 000007d1: PUSH1 0x01 000007d3: PUSH1 0x01 000007d5: PUSH1 0xa0 000007d7: SHL 000007d8: SUB 000007d9: DUP3 000007da: AND 000007db: PUSH1 0x00 000007dd: SWAP1 000007de: DUP2 000007df: MSTORE 000007e0: PUSH1 0x0c 000007e2: PUSH1 0x20 000007e4: MSTORE 000007e5: PUSH1 0x40 000007e7: SWAP1 000007e8: KECCAK256 000007e9: DUP1 000007ea: SLOAD 000007eb: PUSH1 0xff 000007ed: NOT 000007ee: AND 000007ef: PUSH1 0x01 000007f1: OR 000007f2: SWAP1 000007f3: SSTORE 000007f4: PUSH2 0x0801 000007f7: PUSH1 0x0b 000007f9: DUP1 000007fa: SLOAD 000007fb: PUSH1 0x01 000007fd: ADD 000007fe: SWAP1 000007ff: SSTORE 00000800: JUMP 00000801: JUMPDEST 00000802: PUSH1 0x40 00000804: MLOAD 00000805: PUSH1 0x01 00000807: PUSH1 0x01 00000809: PUSH1 0xa0 0000080b: SHL 0000080c: SUB 0000080d: DUP4 0000080e: AND 0000080f: SWAP1 00000810: PUSH32 0xa878b31040b2e6d0a9a3d3361209db3908ba62014b0dca52adbaee451d128b25 00000831: SWAP1 00000832: PUSH1 0x00 00000834: SWAP1 00000835: LOG2 00000836: POP 00000837: POP 00000838: JUMP 00000839: JUMPDEST 0000083a: PUSH1 0x00 0000083c: CALLER 0000083d: PUSH2 0x0847 00000840: DUP6 00000841: DUP3 00000842: DUP6 00000843: PUSH2 0x0ea2 00000846: JUMP 00000847: JUMPDEST 00000848: PUSH2 0x0852 0000084b: DUP6 0000084c: DUP6 0000084d: DUP6 0000084e: PUSH2 0x0f2e 00000851: JUMP 00000852: JUMPDEST 00000853: POP 00000854: PUSH1 0x01 00000856: SWAP5 00000857: SWAP4 00000858: POP 00000859: POP 0000085a: POP 0000085b: POP 0000085c: JUMP 0000085d: JUMPDEST 0000085e: PUSH1 0x01 00000860: PUSH1 0x01 00000862: PUSH1 0xa0 00000864: SHL 00000865: SUB 00000866: DUP2 00000867: AND 00000868: PUSH1 0x00 0000086a: SWAP1 0000086b: DUP2 0000086c: MSTORE 0000086d: PUSH1 0x06 0000086f: PUSH1 0x20 00000871: SWAP1 00000872: DUP2 00000873: MSTORE 00000874: PUSH1 0x40 00000876: DUP1 00000877: DUP4 00000878: KECCAK256 00000879: SLOAD 0000087a: SWAP2 0000087b: DUP4 0000087c: SWAP1 0000087d: MSTORE 0000087e: DUP3 0000087f: KECCAK256 00000880: SLOAD 00000881: PUSH1 0x05 00000883: SLOAD 00000884: PUSH1 0x01 00000886: PUSH1 0x80 00000888: SHL 00000889: SWAP3 0000088a: PUSH2 0x08af 0000088d: SWAP3 0000088e: PUSH2 0x08aa 00000891: SWAP3 00000892: PUSH2 0x08a4 00000895: SWAP2 00000896: PUSH2 0x089f 00000899: SWAP2 0000089a: SWAP1 0000089b: PUSH2 0x0dc0 0000089e: JUMP 0000089f: JUMPDEST 000008a0: PUSH2 0x0f8d 000008a3: JUMP 000008a4: JUMPDEST 000008a5: SWAP1 000008a6: PUSH2 0x0ffb 000008a9: JUMP 000008aa: JUMPDEST 000008ab: PUSH2 0x1007 000008ae: JUMP 000008af: JUMPDEST 000008b0: PUSH2 0x0712 000008b3: SWAP2 000008b4: SWAP1 000008b5: PUSH2 0x1639 000008b8: JUMP 000008b9: JUMPDEST 000008ba: PUSH1 0x09 000008bc: SLOAD 000008bd: PUSH1 0x01 000008bf: PUSH1 0x01 000008c1: PUSH1 0xa0 000008c3: SHL 000008c4: SUB 000008c5: AND 000008c6: CALLER 000008c7: EQ 000008c8: PUSH2 0x08e3 000008cb: JUMPI 000008cc: PUSH1 0x40 000008ce: MLOAD 000008cf: PUSH3 0x461bcd 000008d3: PUSH1 0xe5 000008d5: SHL 000008d6: DUP2 000008d7: MSTORE 000008d8: PUSH1 0x04 000008da: ADD 000008db: PUSH2 0x0752 000008de: SWAP1 000008df: PUSH2 0x1695 000008e2: JUMP 000008e3: JUMPDEST 000008e4: PUSH1 0x01 000008e6: PUSH1 0x01 000008e8: PUSH1 0xa0 000008ea: SHL 000008eb: SUB 000008ec: DUP2 000008ed: AND 000008ee: PUSH1 0x00 000008f0: SWAP1 000008f1: DUP2 000008f2: MSTORE 000008f3: PUSH1 0x0d 000008f5: PUSH1 0x20 000008f7: MSTORE 000008f8: PUSH1 0x40 000008fa: DUP2 000008fb: KECCAK256 000008fc: DUP1 000008fd: SLOAD 000008fe: PUSH1 0xff 00000900: NOT 00000901: AND 00000902: PUSH1 0x01 00000904: OR 00000905: SWAP1 00000906: SSTORE 00000907: PUSH2 0x0911 0000090a: SWAP1 0000090b: DUP3 0000090c: SWAP1 0000090d: PUSH2 0x0e43 00000910: JUMP 00000911: JUMPDEST 00000912: PUSH1 0x01 00000914: PUSH1 0x01 00000916: PUSH1 0xa0 00000918: SHL 00000919: SUB 0000091a: DUP2 0000091b: AND 0000091c: PUSH1 0x00 0000091e: SWAP1 0000091f: DUP2 00000920: MSTORE 00000921: PUSH1 0x0c 00000923: PUSH1 0x20 00000925: MSTORE 00000926: PUSH1 0x40 00000928: SWAP1 00000929: KECCAK256 0000092a: SLOAD 0000092b: PUSH1 0xff 0000092d: AND 0000092e: ISZERO 0000092f: ISZERO 00000930: PUSH1 0x01 00000932: SUB 00000933: PUSH2 0x0960 00000936: JUMPI 00000937: PUSH1 0x01 00000939: PUSH1 0x01 0000093b: PUSH1 0xa0 0000093d: SHL 0000093e: SUB 0000093f: DUP2 00000940: AND 00000941: PUSH1 0x00 00000943: SWAP1 00000944: DUP2 00000945: MSTORE 00000946: PUSH1 0x0c 00000948: PUSH1 0x20 0000094a: MSTORE 0000094b: PUSH1 0x40 0000094d: SWAP1 0000094e: KECCAK256 0000094f: DUP1 00000950: SLOAD 00000951: PUSH1 0xff 00000953: NOT 00000954: AND 00000955: SWAP1 00000956: SSTORE 00000957: PUSH2 0x0960 0000095a: PUSH1 0x0b 0000095c: PUSH2 0x1059 0000095f: JUMP 00000960: JUMPDEST 00000961: PUSH1 0x40 00000963: MLOAD 00000964: PUSH1 0x01 00000966: PUSH1 0x01 00000968: PUSH1 0xa0 0000096a: SHL 0000096b: SUB 0000096c: DUP3 0000096d: AND 0000096e: SWAP1 0000096f: PUSH32 0xa878b31040b2e6d0a9a3d3361209db3908ba62014b0dca52adbaee451d128b25 00000990: SWAP1 00000991: PUSH1 0x00 00000993: SWAP1 00000994: LOG2 00000995: POP 00000996: JUMP 00000997: JUMPDEST 00000998: PUSH1 0x09 0000099a: SLOAD 0000099b: PUSH1 0x00 0000099d: SWAP1 0000099e: PUSH1 0x01 000009a0: PUSH1 0x01 000009a2: PUSH1 0xa0 000009a4: SHL 000009a5: SUB 000009a6: AND 000009a7: CALLER 000009a8: EQ 000009a9: PUSH2 0x09c4 000009ac: JUMPI 000009ad: PUSH1 0x40 000009af: MLOAD 000009b0: PUSH3 0x461bcd 000009b4: PUSH1 0xe5 000009b6: SHL 000009b7: DUP2 000009b8: MSTORE 000009b9: PUSH1 0x04 000009bb: ADD 000009bc: PUSH2 0x0752 000009bf: SWAP1 000009c0: PUSH2 0x1695 000009c3: JUMP 000009c4: JUMPDEST 000009c5: POP 000009c6: PUSH1 0x01 000009c8: PUSH1 0x01 000009ca: PUSH1 0xa0 000009cc: SHL 000009cd: SUB 000009ce: AND 000009cf: PUSH1 0x00 000009d1: SWAP1 000009d2: DUP2 000009d3: MSTORE 000009d4: PUSH1 0x0d 000009d6: PUSH1 0x20 000009d8: MSTORE 000009d9: PUSH1 0x40 000009db: SWAP1 000009dc: KECCAK256 000009dd: SLOAD 000009de: PUSH1 0xff 000009e0: AND 000009e1: SWAP1 000009e2: JUMP 000009e3: JUMPDEST 000009e4: CALLER 000009e5: PUSH1 0x00 000009e7: DUP2 000009e8: DUP2 000009e9: MSTORE 000009ea: PUSH1 0x01 000009ec: PUSH1 0x20 000009ee: SWAP1 000009ef: DUP2 000009f0: MSTORE 000009f1: PUSH1 0x40 000009f3: DUP1 000009f4: DUP4 000009f5: KECCAK256 000009f6: PUSH1 0x01 000009f8: PUSH1 0x01 000009fa: PUSH1 0xa0 000009fc: SHL 000009fd: SUB 000009fe: DUP8 000009ff: AND 00000a00: DUP5 00000a01: MSTORE 00000a02: SWAP1 00000a03: SWAP2 00000a04: MSTORE 00000a05: DUP2 00000a06: KECCAK256 00000a07: SLOAD 00000a08: SWAP1 00000a09: SWAP2 00000a0a: SWAP1 00000a0b: PUSH2 0x070c 00000a0e: SWAP1 00000a0f: DUP3 00000a10: SWAP1 00000a11: DUP7 00000a12: SWAP1 00000a13: PUSH2 0x0a1d 00000a16: SWAP1 00000a17: DUP8 00000a18: SWAP1 00000a19: PUSH2 0x16ca 00000a1c: JUMP 00000a1d: JUMPDEST 00000a1e: PUSH2 0x0ddf 00000a21: JUMP 00000a22: JUMPDEST 00000a23: PUSH1 0x09 00000a25: SLOAD 00000a26: PUSH1 0x00 00000a28: SWAP1 00000a29: PUSH1 0x01 00000a2b: PUSH1 0x01 00000a2d: PUSH1 0xa0 00000a2f: SHL 00000a30: SUB 00000a31: AND 00000a32: CALLER 00000a33: EQ 00000a34: PUSH2 0x0a4f 00000a37: JUMPI 00000a38: PUSH1 0x40 00000a3a: MLOAD 00000a3b: PUSH3 0x461bcd 00000a3f: PUSH1 0xe5 00000a41: SHL 00000a42: DUP2 00000a43: MSTORE 00000a44: PUSH1 0x04 00000a46: ADD 00000a47: PUSH2 0x0752 00000a4a: SWAP1 00000a4b: PUSH2 0x1695 00000a4e: JUMP 00000a4f: JUMPDEST 00000a50: PUSH1 0x00 00000a52: PUSH2 0x0a5b 00000a55: DUP5 00000a56: DUP5 00000a57: PUSH2 0x10b0 00000a5a: JUMP 00000a5b: JUMPDEST 00000a5c: SWAP5 00000a5d: SWAP4 00000a5e: POP 00000a5f: POP 00000a60: POP 00000a61: POP 00000a62: JUMP 00000a63: JUMPDEST 00000a64: PUSH1 0x40 00000a66: MLOAD 00000a67: PUSH3 0x461bcd 00000a6b: PUSH1 0xe5 00000a6d: SHL 00000a6e: DUP2 00000a6f: MSTORE 00000a70: PUSH1 0x20 00000a72: PUSH1 0x04 00000a74: DUP3 00000a75: ADD 00000a76: MSTORE 00000a77: PUSH1 0x6b 00000a79: PUSH1 0x24 00000a7b: DUP3 00000a7c: ADD 00000a7d: MSTORE 00000a7e: PUSH32 0x4469616d6f6e645f4469766964656e645f547261636b65723a20776974686472 00000a9f: PUSH1 0x44 00000aa1: DUP3 00000aa2: ADD 00000aa3: MSTORE 00000aa4: PUSH32 0x61774469766964656e642064697361626c65642e20557365207468652027636c 00000ac5: PUSH1 0x64 00000ac7: DUP3 00000ac8: ADD 00000ac9: MSTORE 00000aca: PUSH32 0x61696d272066756e6374696f6e206f6e20746865206d61696e204469616d6f6e 00000aeb: PUSH1 0x84 00000aed: DUP3 00000aee: ADD 00000aef: MSTORE 00000af0: PUSH11 0x321031b7b73a3930b1ba17 00000afc: PUSH1 0xa9 00000afe: SHL 00000aff: PUSH1 0xa4 00000b01: DUP3 00000b02: ADD 00000b03: MSTORE 00000b04: PUSH1 0xc4 00000b06: ADD 00000b07: PUSH2 0x0752 00000b0a: JUMP 00000b0b: JUMPDEST 00000b0c: PUSH1 0x09 00000b0e: SLOAD 00000b0f: PUSH1 0x01 00000b11: PUSH1 0x01 00000b13: PUSH1 0xa0 00000b15: SHL 00000b16: SUB 00000b17: AND 00000b18: CALLER 00000b19: EQ 00000b1a: PUSH2 0x0b35 00000b1d: JUMPI 00000b1e: PUSH1 0x40 00000b20: MLOAD 00000b21: PUSH3 0x461bcd 00000b25: PUSH1 0xe5 00000b27: SHL 00000b28: DUP2 00000b29: MSTORE 00000b2a: PUSH1 0x04 00000b2c: ADD 00000b2d: PUSH2 0x0752 00000b30: SWAP1 00000b31: PUSH2 0x1695 00000b34: JUMP 00000b35: JUMPDEST 00000b36: PUSH1 0x09 00000b38: SLOAD 00000b39: PUSH1 0x40 00000b3b: MLOAD 00000b3c: PUSH1 0x00 00000b3e: SWAP2 00000b3f: PUSH1 0x01 00000b41: PUSH1 0x01 00000b43: PUSH1 0xa0 00000b45: SHL 00000b46: SUB 00000b47: AND 00000b48: SWAP1 00000b49: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00000b6a: SWAP1 00000b6b: DUP4 00000b6c: SWAP1 00000b6d: LOG3 00000b6e: PUSH1 0x09 00000b70: DUP1 00000b71: SLOAD 00000b72: PUSH1 0x01 00000b74: PUSH1 0x01 00000b76: PUSH1 0xa0 00000b78: SHL 00000b79: SUB 00000b7a: NOT 00000b7b: AND 00000b7c: SWAP1 00000b7d: SSTORE 00000b7e: JUMP 00000b7f: JUMPDEST 00000b80: PUSH1 0x00 00000b82: PUSH2 0x0712 00000b85: DUP3 00000b86: PUSH2 0x0c2b 00000b89: JUMP 00000b8a: JUMPDEST 00000b8b: PUSH1 0x60 00000b8d: PUSH1 0x04 00000b8f: DUP1 00000b90: SLOAD 00000b91: PUSH2 0x067b 00000b94: SWAP1 00000b95: PUSH2 0x165b 00000b98: JUMP 00000b99: JUMPDEST 00000b9a: CALLER 00000b9b: PUSH1 0x00 00000b9d: DUP2 00000b9e: DUP2 00000b9f: MSTORE 00000ba0: PUSH1 0x01 00000ba2: PUSH1 0x20 00000ba4: SWAP1 00000ba5: DUP2 00000ba6: MSTORE 00000ba7: PUSH1 0x40 00000ba9: DUP1 00000baa: DUP4 00000bab: KECCAK256 00000bac: PUSH1 0x01 00000bae: PUSH1 0x01 00000bb0: PUSH1 0xa0 00000bb2: SHL 00000bb3: SUB 00000bb4: DUP8 00000bb5: AND 00000bb6: DUP5 00000bb7: MSTORE 00000bb8: SWAP1 00000bb9: SWAP2 00000bba: MSTORE 00000bbb: DUP2 00000bbc: KECCAK256 00000bbd: SLOAD 00000bbe: SWAP1 00000bbf: SWAP2 00000bc0: SWAP1 00000bc1: DUP4 00000bc2: DUP2 00000bc3: LT 00000bc4: ISZERO 00000bc5: PUSH2 0x0c1e 00000bc8: JUMPI 00000bc9: PUSH1 0x40 00000bcb: MLOAD 00000bcc: PUSH3 0x461bcd 00000bd0: PUSH1 0xe5 00000bd2: SHL 00000bd3: DUP2 00000bd4: MSTORE 00000bd5: PUSH1 0x20 00000bd7: PUSH1 0x04 00000bd9: DUP3 00000bda: ADD 00000bdb: MSTORE 00000bdc: PUSH1 0x25 00000bde: PUSH1 0x24 00000be0: DUP3 00000be1: ADD 00000be2: MSTORE 00000be3: PUSH32 0x45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77 00000c04: PUSH1 0x44 00000c06: DUP3 00000c07: ADD 00000c08: MSTORE 00000c09: PUSH5 0x207a65726f 00000c0f: PUSH1 0xd8 00000c11: SHL 00000c12: PUSH1 0x64 00000c14: DUP3 00000c15: ADD 00000c16: MSTORE 00000c17: PUSH1 0x84 00000c19: ADD 00000c1a: PUSH2 0x0752 00000c1d: JUMP 00000c1e: JUMPDEST 00000c1f: PUSH2 0x0852 00000c22: DUP3 00000c23: DUP7 00000c24: DUP7 00000c25: DUP5 00000c26: SUB 00000c27: PUSH2 0x0ddf 00000c2a: JUMP 00000c2b: JUMPDEST 00000c2c: PUSH1 0x01 00000c2e: PUSH1 0x01 00000c30: PUSH1 0xa0 00000c32: SHL 00000c33: SUB 00000c34: DUP2 00000c35: AND 00000c36: PUSH1 0x00 00000c38: SWAP1 00000c39: DUP2 00000c3a: MSTORE 00000c3b: PUSH1 0x07 00000c3d: PUSH1 0x20 00000c3f: MSTORE 00000c40: PUSH1 0x40 00000c42: DUP2 00000c43: KECCAK256 00000c44: SLOAD 00000c45: PUSH2 0x0712 00000c48: SWAP1 00000c49: PUSH2 0x0c51 00000c4c: DUP5 00000c4d: PUSH2 0x085d 00000c50: JUMP 00000c51: JUMPDEST 00000c52: SWAP1 00000c53: PUSH2 0x1206 00000c56: JUMP 00000c57: JUMPDEST 00000c58: PUSH1 0x00 00000c5a: CALLER 00000c5b: PUSH2 0x070c 00000c5e: DUP2 00000c5f: DUP6 00000c60: DUP6 00000c61: PUSH2 0x0f2e 00000c64: JUMP 00000c65: JUMPDEST 00000c66: PUSH1 0x09 00000c68: SLOAD 00000c69: PUSH1 0x01 00000c6b: PUSH1 0x01 00000c6d: PUSH1 0xa0 00000c6f: SHL 00000c70: SUB 00000c71: AND 00000c72: CALLER 00000c73: EQ 00000c74: PUSH2 0x0c8f 00000c77: JUMPI 00000c78: PUSH1 0x40 00000c7a: MLOAD 00000c7b: PUSH3 0x461bcd 00000c7f: PUSH1 0xe5 00000c81: SHL 00000c82: DUP2 00000c83: MSTORE 00000c84: PUSH1 0x04 00000c86: ADD 00000c87: PUSH2 0x0752 00000c8a: SWAP1 00000c8b: PUSH2 0x1695 00000c8e: JUMP 00000c8f: JUMPDEST 00000c90: PUSH1 0x01 00000c92: PUSH1 0x01 00000c94: PUSH1 0xa0 00000c96: SHL 00000c97: SUB 00000c98: DUP3 00000c99: AND 00000c9a: PUSH1 0x00 00000c9c: SWAP1 00000c9d: DUP2 00000c9e: MSTORE 00000c9f: PUSH1 0x0d 00000ca1: PUSH1 0x20 00000ca3: MSTORE 00000ca4: PUSH1 0x40 00000ca6: SWAP1 00000ca7: KECCAK256 00000ca8: SLOAD 00000ca9: PUSH1 0xff 00000cab: AND 00000cac: PUSH2 0x0d35 00000caf: JUMPI 00000cb0: PUSH32 0x00000000000000000000000000000000000000000000021e19e0c9bab2400000 00000cd1: DUP2 00000cd2: LT 00000cd3: PUSH2 0x0d39 00000cd6: JUMPI 00000cd7: PUSH2 0x0ce0 00000cda: DUP3 00000cdb: DUP3 00000cdc: PUSH2 0x0e43 00000cdf: JUMP 00000ce0: JUMPDEST 00000ce1: PUSH1 0x01 00000ce3: PUSH1 0x01 00000ce5: PUSH1 0xa0 00000ce7: SHL 00000ce8: SUB 00000ce9: DUP3 00000cea: AND 00000ceb: PUSH1 0x00 00000ced: SWAP1 00000cee: DUP2 00000cef: MSTORE 00000cf0: PUSH1 0x0c 00000cf2: PUSH1 0x20 00000cf4: MSTORE 00000cf5: PUSH1 0x40 00000cf7: DUP2 00000cf8: KECCAK256 00000cf9: SLOAD 00000cfa: PUSH1 0xff 00000cfc: AND 00000cfd: ISZERO 00000cfe: ISZERO 00000cff: SWAP1 00000d00: SUB 00000d01: PUSH2 0x0d35 00000d04: JUMPI 00000d05: PUSH1 0x01 00000d07: PUSH1 0x01 00000d09: PUSH1 0xa0 00000d0b: SHL 00000d0c: SUB 00000d0d: DUP3 00000d0e: AND 00000d0f: PUSH1 0x00 00000d11: SWAP1 00000d12: DUP2 00000d13: MSTORE 00000d14: PUSH1 0x0c 00000d16: PUSH1 0x20 00000d18: MSTORE 00000d19: PUSH1 0x40 00000d1b: SWAP1 00000d1c: KECCAK256 00000d1d: DUP1 00000d1e: SLOAD 00000d1f: PUSH1 0xff 00000d21: NOT 00000d22: AND 00000d23: PUSH1 0x01 00000d25: OR 00000d26: SWAP1 00000d27: SSTORE 00000d28: PUSH2 0x0d35 00000d2b: PUSH1 0x0b 00000d2d: DUP1 00000d2e: SLOAD 00000d2f: PUSH1 0x01 00000d31: ADD 00000d32: SWAP1 00000d33: SSTORE 00000d34: JUMP 00000d35: JUMPDEST 00000d36: POP 00000d37: POP 00000d38: JUMP 00000d39: JUMPDEST 00000d3a: PUSH2 0x0d44 00000d3d: DUP3 00000d3e: PUSH1 0x00 00000d40: PUSH2 0x0e43 00000d43: JUMP 00000d44: JUMPDEST 00000d45: PUSH1 0x01 00000d47: PUSH1 0x01 00000d49: PUSH1 0xa0 00000d4b: SHL 00000d4c: SUB 00000d4d: DUP3 00000d4e: AND 00000d4f: PUSH1 0x00 00000d51: SWAP1 00000d52: DUP2 00000d53: MSTORE 00000d54: PUSH1 0x0c 00000d56: PUSH1 0x20 00000d58: MSTORE 00000d59: PUSH1 0x40 00000d5b: SWAP1 00000d5c: KECCAK256 00000d5d: SLOAD 00000d5e: PUSH1 0xff 00000d60: AND 00000d61: ISZERO 00000d62: ISZERO 00000d63: PUSH1 0x01 00000d65: SUB 00000d66: PUSH2 0x0d35 00000d69: JUMPI 00000d6a: PUSH1 0x01 00000d6c: PUSH1 0x01 00000d6e: PUSH1 0xa0 00000d70: SHL 00000d71: SUB 00000d72: DUP3 00000d73: AND 00000d74: PUSH1 0x00 00000d76: SWAP1 00000d77: DUP2 00000d78: MSTORE 00000d79: PUSH1 0x0c 00000d7b: PUSH1 0x20 00000d7d: MSTORE 00000d7e: PUSH1 0x40 00000d80: SWAP1 00000d81: KECCAK256 00000d82: DUP1 00000d83: SLOAD 00000d84: PUSH1 0xff 00000d86: NOT 00000d87: AND 00000d88: SWAP1 00000d89: SSTORE 00000d8a: PUSH2 0x0d35 00000d8d: PUSH1 0x0b 00000d8f: PUSH2 0x1059 00000d92: JUMP 00000d93: JUMPDEST 00000d94: PUSH1 0x00 00000d96: DUP1 00000d97: PUSH2 0x0d9f 00000d9a: DUP4 00000d9b: PUSH2 0x0c2b 00000d9e: JUMP 00000d9f: JUMPDEST 00000da0: PUSH1 0x01 00000da2: PUSH1 0x01 00000da4: PUSH1 0xa0 00000da6: SHL 00000da7: SUB 00000da8: SWAP1 00000da9: SWAP4 00000daa: AND 00000dab: PUSH1 0x00 00000dad: SWAP1 00000dae: DUP2 00000daf: MSTORE 00000db0: PUSH1 0x07 00000db2: PUSH1 0x20 00000db4: MSTORE 00000db5: PUSH1 0x40 00000db7: SWAP1 00000db8: KECCAK256 00000db9: SLOAD 00000dba: SWAP3 00000dbb: SWAP4 00000dbc: SWAP2 00000dbd: POP 00000dbe: POP 00000dbf: JUMP 00000dc0: JUMPDEST 00000dc1: PUSH1 0x00 00000dc3: PUSH2 0x0dcc 00000dc6: DUP3 00000dc7: DUP5 00000dc8: PUSH2 0x16e2 00000dcb: JUMP 00000dcc: JUMPDEST 00000dcd: SWAP4 00000dce: SWAP3 00000dcf: POP 00000dd0: POP 00000dd1: POP 00000dd2: JUMP 00000dd3: JUMPDEST 00000dd4: PUSH1 0x00 00000dd6: PUSH2 0x0dcc 00000dd9: DUP3 00000dda: DUP5 00000ddb: PUSH2 0x16ca 00000dde: JUMP 00000ddf: JUMPDEST 00000de0: PUSH1 0x40 00000de2: MLOAD 00000de3: PUSH3 0x461bcd 00000de7: PUSH1 0xe5 00000de9: SHL 00000dea: DUP2 00000deb: MSTORE 00000dec: PUSH1 0x20 00000dee: PUSH1 0x04 00000df0: DUP3 00000df1: ADD 00000df2: MSTORE 00000df3: PUSH1 0x2e 00000df5: PUSH1 0x24 00000df7: DUP3 00000df8: ADD 00000df9: MSTORE 00000dfa: PUSH32 0x4469616d6f6e645f4469766964656e645f547261636b65723a204e6f20617070 00000e1b: PUSH1 0x44 00000e1d: DUP3 00000e1e: ADD 00000e1f: MSTORE 00000e20: PUSH14 0x1c9bdd985b1cc8185b1b1bddd959 00000e2f: PUSH1 0x92 00000e31: SHL 00000e32: PUSH1 0x64 00000e34: DUP3 00000e35: ADD 00000e36: MSTORE 00000e37: PUSH1 0x84 00000e39: ADD 00000e3a: PUSH2 0x0752 00000e3d: JUMP 00000e3e: JUMPDEST 00000e3f: POP 00000e40: POP 00000e41: POP 00000e42: JUMP 00000e43: JUMPDEST 00000e44: PUSH1 0x01 00000e46: PUSH1 0x01 00000e48: PUSH1 0xa0 00000e4a: SHL 00000e4b: SUB 00000e4c: DUP3 00000e4d: AND 00000e4e: PUSH1 0x00 00000e50: SWAP1 00000e51: DUP2 00000e52: MSTORE 00000e53: PUSH1 0x20 00000e55: DUP2 00000e56: SWAP1 00000e57: MSTORE 00000e58: PUSH1 0x40 00000e5a: SWAP1 00000e5b: KECCAK256 00000e5c: SLOAD 00000e5d: DUP1 00000e5e: DUP3 00000e5f: GT 00000e60: ISZERO 00000e61: PUSH2 0x0e82 00000e64: JUMPI 00000e65: PUSH1 0x00 00000e67: PUSH2 0x0e70 00000e6a: DUP4 00000e6b: DUP4 00000e6c: PUSH2 0x1206 00000e6f: JUMP 00000e70: JUMPDEST 00000e71: SWAP1 00000e72: POP 00000e73: PUSH2 0x0e7c 00000e76: DUP5 00000e77: DUP3 00000e78: PUSH2 0x1212 00000e7b: JUMP 00000e7c: JUMPDEST 00000e7d: POP 00000e7e: POP 00000e7f: POP 00000e80: POP 00000e81: JUMP 00000e82: JUMPDEST 00000e83: DUP1 00000e84: DUP3 00000e85: LT 00000e86: ISZERO 00000e87: PUSH2 0x0e3e 00000e8a: JUMPI 00000e8b: PUSH1 0x00 00000e8d: PUSH2 0x0e96 00000e90: DUP3 00000e91: DUP5 00000e92: PUSH2 0x1206 00000e95: JUMP 00000e96: JUMPDEST 00000e97: SWAP1 00000e98: POP 00000e99: PUSH2 0x0e7c 00000e9c: DUP5 00000e9d: DUP3 00000e9e: PUSH2 0x1276 00000ea1: JUMP 00000ea2: JUMPDEST 00000ea3: PUSH1 0x01 00000ea5: PUSH1 0x01 00000ea7: PUSH1 0xa0 00000ea9: SHL 00000eaa: SUB 00000eab: DUP4 00000eac: DUP2 00000ead: AND 00000eae: PUSH1 0x00 00000eb0: SWAP1 00000eb1: DUP2 00000eb2: MSTORE 00000eb3: PUSH1 0x01 00000eb5: PUSH1 0x20 00000eb7: SWAP1 00000eb8: DUP2 00000eb9: MSTORE 00000eba: PUSH1 0x40 00000ebc: DUP1 00000ebd: DUP4 00000ebe: KECCAK256 00000ebf: SWAP4 00000ec0: DUP7 00000ec1: AND 00000ec2: DUP4 00000ec3: MSTORE 00000ec4: SWAP3 00000ec5: SWAP1 00000ec6: MSTORE 00000ec7: KECCAK256 00000ec8: SLOAD 00000ec9: PUSH1 0x00 00000ecb: NOT 00000ecc: DUP2 00000ecd: EQ 00000ece: PUSH2 0x0e7c 00000ed1: JUMPI 00000ed2: DUP2 00000ed3: DUP2 00000ed4: LT 00000ed5: ISZERO 00000ed6: PUSH2 0x0f21 00000ed9: JUMPI 00000eda: PUSH1 0x40 00000edc: MLOAD 00000edd: PUSH3 0x461bcd 00000ee1: PUSH1 0xe5 00000ee3: SHL 00000ee4: DUP2 00000ee5: MSTORE 00000ee6: PUSH1 0x20 00000ee8: PUSH1 0x04 00000eea: DUP3 00000eeb: ADD 00000eec: MSTORE 00000eed: PUSH1 0x1d 00000eef: PUSH1 0x24 00000ef1: DUP3 00000ef2: ADD 00000ef3: MSTORE 00000ef4: PUSH32 0x45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000 00000f15: PUSH1 0x44 00000f17: DUP3 00000f18: ADD 00000f19: MSTORE 00000f1a: PUSH1 0x64 00000f1c: ADD 00000f1d: PUSH2 0x0752 00000f20: JUMP 00000f21: JUMPDEST 00000f22: PUSH2 0x0e7c 00000f25: DUP5 00000f26: DUP5 00000f27: DUP5 00000f28: DUP5 00000f29: SUB 00000f2a: PUSH2 0x0ddf 00000f2d: JUMP 00000f2e: JUMPDEST 00000f2f: PUSH1 0x40 00000f31: MLOAD 00000f32: PUSH3 0x461bcd 00000f36: PUSH1 0xe5 00000f38: SHL 00000f39: DUP2 00000f3a: MSTORE 00000f3b: PUSH1 0x20 00000f3d: PUSH1 0x04 00000f3f: DUP3 00000f40: ADD 00000f41: MSTORE 00000f42: PUSH1 0x2e 00000f44: PUSH1 0x24 00000f46: DUP3 00000f47: ADD 00000f48: MSTORE 00000f49: PUSH32 0x4469616d6f6e645f4469766964656e645f547261636b65723a204e6f20747261 00000f6a: PUSH1 0x44 00000f6c: DUP3 00000f6d: ADD 00000f6e: MSTORE 00000f6f: PUSH14 0x1b9cd9995c9cc8185b1b1bddd959 00000f7e: PUSH1 0x92 00000f80: SHL 00000f81: PUSH1 0x64 00000f83: DUP3 00000f84: ADD 00000f85: MSTORE 00000f86: PUSH1 0x84 00000f88: ADD 00000f89: PUSH2 0x0752 00000f8c: JUMP 00000f8d: JUMPDEST 00000f8e: PUSH1 0x00 00000f90: PUSH1 0x01 00000f92: PUSH1 0x01 00000f94: PUSH1 0xff 00000f96: SHL 00000f97: SUB 00000f98: DUP3 00000f99: GT 00000f9a: ISZERO 00000f9b: PUSH2 0x0ff7 00000f9e: JUMPI 00000f9f: PUSH1 0x40 00000fa1: MLOAD 00000fa2: PUSH3 0x461bcd 00000fa6: PUSH1 0xe5 00000fa8: SHL 00000fa9: DUP2 00000faa: MSTORE 00000fab: PUSH1 0x20 00000fad: PUSH1 0x04 00000faf: DUP3 00000fb0: ADD 00000fb1: MSTORE 00000fb2: PUSH1 0x28 00000fb4: PUSH1 0x24 00000fb6: DUP3 00000fb7: ADD 00000fb8: MSTORE 00000fb9: PUSH32 0x53616665436173743a2076616c756520646f65736e27742066697420696e2061 00000fda: PUSH1 0x44 00000fdc: DUP3 00000fdd: ADD 00000fde: MSTORE 00000fdf: PUSH8 0x371034b73a191a9b 00000fe8: PUSH1 0xc1 00000fea: SHL 00000feb: PUSH1 0x64 00000fed: DUP3 00000fee: ADD 00000fef: MSTORE 00000ff0: PUSH1 0x84 00000ff2: ADD 00000ff3: PUSH2 0x0752 00000ff6: JUMP 00000ff7: JUMPDEST 00000ff8: POP 00000ff9: SWAP1 00000ffa: JUMP 00000ffb: JUMPDEST 00000ffc: PUSH1 0x00 00000ffe: PUSH2 0x0dcc 00001001: DUP3 00001002: DUP5 00001003: PUSH2 0x1701 00001006: JUMP 00001007: JUMPDEST 00001008: PUSH1 0x00 0000100a: DUP1 0000100b: DUP3 0000100c: SLT 0000100d: ISZERO 0000100e: PUSH2 0x0ff7 00001011: JUMPI 00001012: PUSH1 0x40 00001014: MLOAD 00001015: PUSH3 0x461bcd 00001019: PUSH1 0xe5 0000101b: SHL 0000101c: DUP2 0000101d: MSTORE 0000101e: PUSH1 0x20 00001020: PUSH1 0x04 00001022: DUP3 00001023: ADD 00001024: DUP2 00001025: SWAP1 00001026: MSTORE 00001027: PUSH1 0x24 00001029: DUP3 0000102a: ADD 0000102b: MSTORE 0000102c: PUSH32 0x53616665436173743a2076616c7565206d75737420626520706f736974697665 0000104d: PUSH1 0x44 0000104f: DUP3 00001050: ADD 00001051: MSTORE 00001052: PUSH1 0x64 00001054: ADD 00001055: PUSH2 0x0752 00001058: JUMP 00001059: JUMPDEST 0000105a: DUP1 0000105b: SLOAD 0000105c: DUP1 0000105d: PUSH2 0x10a8 00001060: JUMPI 00001061: PUSH1 0x40 00001063: MLOAD 00001064: PUSH3 0x461bcd 00001068: PUSH1 0xe5 0000106a: SHL 0000106b: DUP2 0000106c: MSTORE 0000106d: PUSH1 0x20 0000106f: PUSH1 0x04 00001071: DUP3 00001072: ADD 00001073: MSTORE 00001074: PUSH1 0x1b 00001076: PUSH1 0x24 00001078: DUP3 00001079: ADD 0000107a: MSTORE 0000107b: PUSH32 0x436f756e7465723a2064656372656d656e74206f766572666c6f770000000000 0000109c: PUSH1 0x44 0000109e: DUP3 0000109f: ADD 000010a0: MSTORE 000010a1: PUSH1 0x64 000010a3: ADD 000010a4: PUSH2 0x0752 000010a7: JUMP 000010a8: JUMPDEST 000010a9: PUSH1 0x00 000010ab: NOT 000010ac: ADD 000010ad: SWAP1 000010ae: SSTORE 000010af: JUMP 000010b0: JUMPDEST 000010b1: PUSH1 0x00 000010b3: DUP1 000010b4: PUSH2 0x10bc 000010b7: DUP5 000010b8: PUSH2 0x0c2b 000010bb: JUMP 000010bc: JUMPDEST 000010bd: SWAP1 000010be: POP 000010bf: DUP1 000010c0: ISZERO 000010c1: PUSH2 0x11fc 000010c4: JUMPI 000010c5: PUSH1 0x01 000010c7: PUSH1 0x01 000010c9: PUSH1 0xa0 000010cb: SHL 000010cc: SUB 000010cd: DUP5 000010ce: AND 000010cf: PUSH1 0x00 000010d1: SWAP1 000010d2: DUP2 000010d3: MSTORE 000010d4: PUSH1 0x07 000010d6: PUSH1 0x20 000010d8: MSTORE 000010d9: PUSH1 0x40 000010db: SWAP1 000010dc: KECCAK256 000010dd: SLOAD 000010de: PUSH2 0x10e7 000010e1: SWAP1 000010e2: DUP3 000010e3: PUSH2 0x0dd3 000010e6: JUMP 000010e7: JUMPDEST 000010e8: PUSH1 0x01 000010ea: PUSH1 0x01 000010ec: PUSH1 0xa0 000010ee: SHL 000010ef: SUB 000010f0: DUP6 000010f1: AND 000010f2: PUSH1 0x00 000010f4: DUP2 000010f5: DUP2 000010f6: MSTORE 000010f7: PUSH1 0x07 000010f9: PUSH1 0x20 000010fb: MSTORE 000010fc: PUSH1 0x40 000010fe: SWAP1 000010ff: DUP2 00001100: SWAP1 00001101: KECCAK256 00001102: SWAP3 00001103: SWAP1 00001104: SWAP3 00001105: SSTORE 00001106: SWAP1 00001107: MLOAD 00001108: PUSH32 0xeb063efb53b3790d2bc15284b59af7544466c8787c2883321ee27095647911b6 00001129: SWAP1 0000112a: PUSH2 0x1148 0000112d: SWAP1 0000112e: DUP5 0000112f: SWAP1 00001130: DUP8 00001131: SWAP1 00001132: SWAP2 00001133: DUP3 00001134: MSTORE 00001135: PUSH1 0x01 00001137: PUSH1 0x01 00001139: PUSH1 0xa0 0000113b: SHL 0000113c: SUB 0000113d: AND 0000113e: PUSH1 0x20 00001140: DUP3 00001141: ADD 00001142: MSTORE 00001143: PUSH1 0x40 00001145: ADD 00001146: SWAP1 00001147: JUMP 00001148: JUMPDEST 00001149: PUSH1 0x40 0000114b: MLOAD 0000114c: DUP1 0000114d: SWAP2 0000114e: SUB 0000114f: SWAP1 00001150: LOG2 00001151: PUSH1 0x00 00001153: DUP4 00001154: PUSH1 0x01 00001156: PUSH1 0x01 00001158: PUSH1 0xa0 0000115a: SHL 0000115b: SUB 0000115c: AND 0000115d: DUP3 0000115e: PUSH1 0x40 00001160: MLOAD 00001161: PUSH1 0x00 00001163: PUSH1 0x40 00001165: MLOAD 00001166: DUP1 00001167: DUP4 00001168: SUB 00001169: DUP2 0000116a: DUP6 0000116b: DUP8 0000116c: GAS 0000116d: CALL 0000116e: SWAP3 0000116f: POP 00001170: POP 00001171: POP 00001172: RETURNDATASIZE 00001173: DUP1 00001174: PUSH1 0x00 00001176: DUP2 00001177: EQ 00001178: PUSH2 0x119d 0000117b: JUMPI 0000117c: PUSH1 0x40 0000117e: MLOAD 0000117f: SWAP2 00001180: POP 00001181: PUSH1 0x1f 00001183: NOT 00001184: PUSH1 0x3f 00001186: RETURNDATASIZE 00001187: ADD 00001188: AND 00001189: DUP3 0000118a: ADD 0000118b: PUSH1 0x40 0000118d: MSTORE 0000118e: RETURNDATASIZE 0000118f: DUP3 00001190: MSTORE 00001191: RETURNDATASIZE 00001192: PUSH1 0x00 00001194: PUSH1 0x20 00001196: DUP5 00001197: ADD 00001198: RETURNDATACOPY 00001199: PUSH2 0x11a2 0000119c: JUMP 0000119d: JUMPDEST 0000119e: PUSH1 0x60 000011a0: SWAP2 000011a1: POP 000011a2: JUMPDEST 000011a3: POP 000011a4: POP 000011a5: SWAP1 000011a6: POP 000011a7: DUP1 000011a8: PUSH2 0x11f4 000011ab: JUMPI 000011ac: PUSH1 0x01 000011ae: PUSH1 0x01 000011b0: PUSH1 0xa0 000011b2: SHL 000011b3: SUB 000011b4: DUP6 000011b5: AND 000011b6: PUSH1 0x00 000011b8: SWAP1 000011b9: DUP2 000011ba: MSTORE 000011bb: PUSH1 0x07 000011bd: PUSH1 0x20 000011bf: MSTORE 000011c0: PUSH1 0x40 000011c2: SWAP1 000011c3: KECCAK256 000011c4: SLOAD 000011c5: PUSH2 0x11ce 000011c8: SWAP1 000011c9: DUP4 000011ca: PUSH2 0x1206 000011cd: JUMP 000011ce: JUMPDEST 000011cf: PUSH1 0x01 000011d1: PUSH1 0x01 000011d3: PUSH1 0xa0 000011d5: SHL 000011d6: SUB 000011d7: DUP7 000011d8: AND 000011d9: PUSH1 0x00 000011db: SWAP1 000011dc: DUP2 000011dd: MSTORE 000011de: PUSH1 0x07 000011e0: PUSH1 0x20 000011e2: MSTORE 000011e3: PUSH1 0x40 000011e5: DUP2 000011e6: KECCAK256 000011e7: SWAP2 000011e8: SWAP1 000011e9: SWAP2 000011ea: SSTORE 000011eb: SWAP3 000011ec: POP 000011ed: PUSH2 0x0712 000011f0: SWAP2 000011f1: POP 000011f2: POP 000011f3: JUMP 000011f4: JUMPDEST 000011f5: POP 000011f6: SWAP1 000011f7: POP 000011f8: PUSH2 0x0712 000011fb: JUMP 000011fc: JUMPDEST 000011fd: POP 000011fe: PUSH1 0x00 00001200: SWAP4 00001201: SWAP3 00001202: POP 00001203: POP 00001204: POP 00001205: JUMP 00001206: JUMPDEST 00001207: PUSH1 0x00 00001209: PUSH2 0x0dcc 0000120c: DUP3 0000120d: DUP5 0000120e: PUSH2 0x1742 00001211: JUMP 00001212: JUMPDEST 00001213: PUSH2 0x121c 00001216: DUP3 00001217: DUP3 00001218: PUSH2 0x12ba 0000121b: JUMP 0000121c: JUMPDEST 0000121d: PUSH2 0x1256 00001220: PUSH2 0x1237 00001223: PUSH2 0x089f 00001226: DUP4 00001227: PUSH1 0x05 00001229: SLOAD 0000122a: PUSH2 0x0dc0 0000122d: SWAP1 0000122e: SWAP2 0000122f: SWAP1 00001230: PUSH4 0xffffffff 00001235: AND 00001236: JUMP 00001237: JUMPDEST 00001238: PUSH1 0x01 0000123a: PUSH1 0x01 0000123c: PUSH1 0xa0 0000123e: SHL 0000123f: SUB 00001240: DUP5 00001241: AND 00001242: PUSH1 0x00 00001244: SWAP1 00001245: DUP2 00001246: MSTORE 00001247: PUSH1 0x06 00001249: PUSH1 0x20 0000124b: MSTORE 0000124c: PUSH1 0x40 0000124e: SWAP1 0000124f: KECCAK256 00001250: SLOAD 00001251: SWAP1 00001252: PUSH2 0x1399 00001255: JUMP 00001256: JUMPDEST 00001257: PUSH1 0x01 00001259: PUSH1 0x01 0000125b: PUSH1 0xa0 0000125d: SHL 0000125e: SUB 0000125f: SWAP1 00001260: SWAP3 00001261: AND 00001262: PUSH1 0x00 00001264: SWAP1 00001265: DUP2 00001266: MSTORE 00001267: PUSH1 0x06 00001269: PUSH1 0x20 0000126b: MSTORE 0000126c: PUSH1 0x40 0000126e: SWAP1 0000126f: KECCAK256 00001270: SWAP2 00001271: SWAP1 00001272: SWAP2 00001273: SSTORE 00001274: POP 00001275: JUMP 00001276: JUMPDEST 00001277: PUSH2 0x1280 0000127a: DUP3 0000127b: DUP3 0000127c: PUSH2 0x13a5 0000127f: JUMP 00001280: JUMPDEST 00001281: PUSH2 0x1256 00001284: PUSH2 0x129b 00001287: PUSH2 0x089f 0000128a: DUP4 0000128b: PUSH1 0x05 0000128d: SLOAD 0000128e: PUSH2 0x0dc0 00001291: SWAP1 00001292: SWAP2 00001293: SWAP1 00001294: PUSH4 0xffffffff 00001299: AND 0000129a: JUMP 0000129b: JUMPDEST 0000129c: PUSH1 0x01 0000129e: PUSH1 0x01 000012a0: PUSH1 0xa0 000012a2: SHL 000012a3: SUB 000012a4: DUP5 000012a5: AND 000012a6: PUSH1 0x00 000012a8: SWAP1 000012a9: DUP2 000012aa: MSTORE 000012ab: PUSH1 0x06 000012ad: PUSH1 0x20 000012af: MSTORE 000012b0: PUSH1 0x40 000012b2: SWAP1 000012b3: KECCAK256 000012b4: SLOAD 000012b5: SWAP1 000012b6: PUSH2 0x0ffb 000012b9: JUMP 000012ba: JUMPDEST 000012bb: PUSH1 0x01 000012bd: PUSH1 0x01 000012bf: PUSH1 0xa0 000012c1: SHL 000012c2: SUB 000012c3: DUP3 000012c4: AND 000012c5: PUSH2 0x1310 000012c8: JUMPI 000012c9: PUSH1 0x40 000012cb: MLOAD 000012cc: PUSH3 0x461bcd 000012d0: PUSH1 0xe5 000012d2: SHL 000012d3: DUP2 000012d4: MSTORE 000012d5: PUSH1 0x20 000012d7: PUSH1 0x04 000012d9: DUP3 000012da: ADD 000012db: MSTORE 000012dc: PUSH1 0x1f 000012de: PUSH1 0x24 000012e0: DUP3 000012e1: ADD 000012e2: MSTORE 000012e3: PUSH32 0x45524332303a206d696e7420746f20746865207a65726f206164647265737300 00001304: PUSH1 0x44 00001306: DUP3 00001307: ADD 00001308: MSTORE 00001309: PUSH1 0x64 0000130b: ADD 0000130c: PUSH2 0x0752 0000130f: JUMP 00001310: JUMPDEST 00001311: DUP1 00001312: PUSH1 0x02 00001314: PUSH1 0x00 00001316: DUP3 00001317: DUP3 00001318: SLOAD 00001319: PUSH2 0x1322 0000131c: SWAP2 0000131d: SWAP1 0000131e: PUSH2 0x16ca 00001321: JUMP 00001322: JUMPDEST 00001323: SWAP1 00001324: SWAP2 00001325: SSTORE 00001326: POP 00001327: POP 00001328: PUSH1 0x01 0000132a: PUSH1 0x01 0000132c: PUSH1 0xa0 0000132e: SHL 0000132f: SUB 00001330: DUP3 00001331: AND 00001332: PUSH1 0x00 00001334: SWAP1 00001335: DUP2 00001336: MSTORE 00001337: PUSH1 0x20 00001339: DUP2 0000133a: SWAP1 0000133b: MSTORE 0000133c: PUSH1 0x40 0000133e: DUP2 0000133f: KECCAK256 00001340: DUP1 00001341: SLOAD 00001342: DUP4 00001343: SWAP3 00001344: SWAP1 00001345: PUSH2 0x134f 00001348: SWAP1 00001349: DUP5 0000134a: SWAP1 0000134b: PUSH2 0x16ca 0000134e: JUMP 0000134f: JUMPDEST 00001350: SWAP1 00001351: SWAP2 00001352: SSTORE 00001353: POP 00001354: POP 00001355: PUSH1 0x40 00001357: MLOAD 00001358: DUP2 00001359: DUP2 0000135a: MSTORE 0000135b: PUSH1 0x01 0000135d: PUSH1 0x01 0000135f: PUSH1 0xa0 00001361: SHL 00001362: SUB 00001363: DUP4 00001364: AND 00001365: SWAP1 00001366: PUSH1 0x00 00001368: SWAP1 00001369: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 0000138a: SWAP1 0000138b: PUSH1 0x20 0000138d: ADD 0000138e: PUSH1 0x40 00001390: MLOAD 00001391: DUP1 00001392: SWAP2 00001393: SUB 00001394: SWAP1 00001395: LOG3 00001396: POP 00001397: POP 00001398: JUMP 00001399: JUMPDEST 0000139a: PUSH1 0x00 0000139c: PUSH2 0x0dcc 0000139f: DUP3 000013a0: DUP5 000013a1: PUSH2 0x1759 000013a4: JUMP 000013a5: JUMPDEST 000013a6: PUSH1 0x01 000013a8: PUSH1 0x01 000013aa: PUSH1 0xa0 000013ac: SHL 000013ad: SUB 000013ae: DUP3 000013af: AND 000013b0: PUSH2 0x1405 000013b3: JUMPI 000013b4: PUSH1 0x40 000013b6: MLOAD 000013b7: PUSH3 0x461bcd 000013bb: PUSH1 0xe5 000013bd: SHL 000013be: DUP2 000013bf: MSTORE 000013c0: PUSH1 0x20 000013c2: PUSH1 0x04 000013c4: DUP3 000013c5: ADD 000013c6: MSTORE 000013c7: PUSH1 0x21 000013c9: PUSH1 0x24 000013cb: DUP3 000013cc: ADD 000013cd: MSTORE 000013ce: PUSH32 0x45524332303a206275726e2066726f6d20746865207a65726f20616464726573 000013ef: PUSH1 0x44 000013f1: DUP3 000013f2: ADD 000013f3: MSTORE 000013f4: PUSH1 0x73 000013f6: PUSH1 0xf8 000013f8: SHL 000013f9: PUSH1 0x64 000013fb: DUP3 000013fc: ADD 000013fd: MSTORE 000013fe: PUSH1 0x84 00001400: ADD 00001401: PUSH2 0x0752 00001404: JUMP 00001405: JUMPDEST 00001406: PUSH1 0x01 00001408: PUSH1 0x01 0000140a: PUSH1 0xa0 0000140c: SHL 0000140d: SUB 0000140e: DUP3 0000140f: AND 00001410: PUSH1 0x00 00001412: SWAP1 00001413: DUP2 00001414: MSTORE 00001415: PUSH1 0x20 00001417: DUP2 00001418: SWAP1 00001419: MSTORE 0000141a: PUSH1 0x40 0000141c: SWAP1 0000141d: KECCAK256 0000141e: SLOAD 0000141f: DUP2 00001420: DUP2 00001421: LT 00001422: ISZERO 00001423: PUSH2 0x1479 00001426: JUMPI 00001427: PUSH1 0x40 00001429: MLOAD 0000142a: PUSH3 0x461bcd 0000142e: PUSH1 0xe5 00001430: SHL 00001431: DUP2 00001432: MSTORE 00001433: PUSH1 0x20 00001435: PUSH1 0x04 00001437: DUP3 00001438: ADD 00001439: MSTORE 0000143a: PUSH1 0x22 0000143c: PUSH1 0x24 0000143e: DUP3 0000143f: ADD 00001440: MSTORE 00001441: PUSH32 0x45524332303a206275726e20616d6f756e7420657863656564732062616c616e 00001462: PUSH1 0x44 00001464: DUP3 00001465: ADD 00001466: MSTORE 00001467: PUSH2 0x6365 0000146a: PUSH1 0xf0 0000146c: SHL 0000146d: PUSH1 0x64 0000146f: DUP3 00001470: ADD 00001471: MSTORE 00001472: PUSH1 0x84 00001474: ADD 00001475: PUSH2 0x0752 00001478: JUMP 00001479: JUMPDEST 0000147a: PUSH1 0x01 0000147c: PUSH1 0x01 0000147e: PUSH1 0xa0 00001480: SHL 00001481: SUB 00001482: DUP4 00001483: AND 00001484: PUSH1 0x00 00001486: SWAP1 00001487: DUP2 00001488: MSTORE 00001489: PUSH1 0x20 0000148b: DUP2 0000148c: SWAP1 0000148d: MSTORE 0000148e: PUSH1 0x40 00001490: DUP2 00001491: KECCAK256 00001492: DUP4 00001493: DUP4 00001494: SUB 00001495: SWAP1 00001496: SSTORE 00001497: PUSH1 0x02 00001499: DUP1 0000149a: SLOAD 0000149b: DUP5 0000149c: SWAP3 0000149d: SWAP1 0000149e: PUSH2 0x14a8 000014a1: SWAP1 000014a2: DUP5 000014a3: SWAP1 000014a4: PUSH2 0x1742 000014a7: JUMP 000014a8: JUMPDEST 000014a9: SWAP1 000014aa: SWAP2 000014ab: SSTORE 000014ac: POP 000014ad: POP 000014ae: PUSH1 0x40 000014b0: MLOAD 000014b1: DUP3 000014b2: DUP2 000014b3: MSTORE 000014b4: PUSH1 0x00 000014b6: SWAP1 000014b7: PUSH1 0x01 000014b9: PUSH1 0x01 000014bb: PUSH1 0xa0 000014bd: SHL 000014be: SUB 000014bf: DUP6 000014c0: AND 000014c1: SWAP1 000014c2: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000014e3: SWAP1 000014e4: PUSH1 0x20 000014e6: ADD 000014e7: PUSH1 0x40 000014e9: MLOAD 000014ea: DUP1 000014eb: SWAP2 000014ec: SUB 000014ed: SWAP1 000014ee: LOG3 000014ef: POP 000014f0: POP 000014f1: POP 000014f2: JUMP 000014f3: JUMPDEST 000014f4: PUSH1 0x00 000014f6: PUSH1 0x20 000014f8: DUP1 000014f9: DUP4 000014fa: MSTORE 000014fb: DUP4 000014fc: MLOAD 000014fd: DUP1 000014fe: DUP3 000014ff: DUP6 00001500: ADD 00001501: MSTORE 00001502: PUSH1 0x00 00001504: JUMPDEST 00001505: DUP2 00001506: DUP2 00001507: LT 00001508: ISZERO 00001509: PUSH2 0x1520 0000150c: JUMPI 0000150d: DUP6 0000150e: DUP2 0000150f: ADD 00001510: DUP4 00001511: ADD 00001512: MLOAD 00001513: DUP6 00001514: DUP3 00001515: ADD 00001516: PUSH1 0x40 00001518: ADD 00001519: MSTORE 0000151a: DUP3 0000151b: ADD 0000151c: PUSH2 0x1504 0000151f: JUMP 00001520: JUMPDEST 00001521: DUP2 00001522: DUP2 00001523: GT 00001524: ISZERO 00001525: PUSH2 0x1532 00001528: JUMPI 00001529: PUSH1 0x00 0000152b: PUSH1 0x40 0000152d: DUP4 0000152e: DUP8 0000152f: ADD 00001530: ADD 00001531: MSTORE 00001532: JUMPDEST 00001533: POP 00001534: PUSH1 0x1f 00001536: ADD 00001537: PUSH1 0x1f 00001539: NOT 0000153a: AND 0000153b: SWAP3 0000153c: SWAP1 0000153d: SWAP3 0000153e: ADD 0000153f: PUSH1 0x40 00001541: ADD 00001542: SWAP4 00001543: SWAP3 00001544: POP 00001545: POP 00001546: POP 00001547: JUMP 00001548: JUMPDEST 00001549: PUSH1 0x01 0000154b: PUSH1 0x01 0000154d: PUSH1 0xa0 0000154f: SHL 00001550: SUB 00001551: DUP2 00001552: AND 00001553: DUP2 00001554: EQ 00001555: PUSH2 0x155d 00001558: JUMPI 00001559: PUSH1 0x00 0000155b: DUP1 0000155c: REVERT 0000155d: JUMPDEST 0000155e: POP 0000155f: JUMP 00001560: JUMPDEST 00001561: PUSH1 0x00 00001563: DUP1 00001564: PUSH1 0x40 00001566: DUP4 00001567: DUP6 00001568: SUB 00001569: SLT 0000156a: ISZERO 0000156b: PUSH2 0x1573 0000156e: JUMPI 0000156f: PUSH1 0x00 00001571: DUP1 00001572: REVERT 00001573: JUMPDEST 00001574: DUP3 00001575: CALLDATALOAD 00001576: PUSH2 0x157e 00001579: DUP2 0000157a: PUSH2 0x1548 0000157d: JUMP 0000157e: JUMPDEST 0000157f: SWAP5 00001580: PUSH1 0x20 00001582: SWAP4 00001583: SWAP1 00001584: SWAP4 00001585: ADD 00001586: CALLDATALOAD 00001587: SWAP4 00001588: POP 00001589: POP 0000158a: POP 0000158b: JUMP 0000158c: JUMPDEST 0000158d: PUSH1 0x00 0000158f: DUP1 00001590: PUSH1 0x00 00001592: PUSH1 0x60 00001594: DUP5 00001595: DUP7 00001596: SUB 00001597: SLT 00001598: ISZERO 00001599: PUSH2 0x15a1 0000159c: JUMPI 0000159d: PUSH1 0x00 0000159f: DUP1 000015a0: REVERT 000015a1: JUMPDEST 000015a2: DUP4 000015a3: CALLDATALOAD 000015a4: PUSH2 0x15ac 000015a7: DUP2 000015a8: PUSH2 0x1548 000015ab: JUMP 000015ac: JUMPDEST 000015ad: SWAP3 000015ae: POP 000015af: PUSH1 0x20 000015b1: DUP5 000015b2: ADD 000015b3: CALLDATALOAD 000015b4: PUSH2 0x15bc 000015b7: DUP2 000015b8: PUSH2 0x1548 000015bb: JUMP 000015bc: JUMPDEST 000015bd: SWAP3 000015be: SWAP6 000015bf: SWAP3 000015c0: SWAP5 000015c1: POP 000015c2: POP 000015c3: POP 000015c4: PUSH1 0x40 000015c6: SWAP2 000015c7: SWAP1 000015c8: SWAP2 000015c9: ADD 000015ca: CALLDATALOAD 000015cb: SWAP1 000015cc: JUMP 000015cd: JUMPDEST 000015ce: PUSH1 0x00 000015d0: PUSH1 0x20 000015d2: DUP3 000015d3: DUP5 000015d4: SUB 000015d5: SLT 000015d6: ISZERO 000015d7: PUSH2 0x15df 000015da: JUMPI 000015db: PUSH1 0x00 000015dd: DUP1 000015de: REVERT 000015df: JUMPDEST 000015e0: DUP2 000015e1: CALLDATALOAD 000015e2: PUSH2 0x0dcc 000015e5: DUP2 000015e6: PUSH2 0x1548 000015e9: JUMP 000015ea: JUMPDEST 000015eb: PUSH1 0x00 000015ed: DUP1 000015ee: PUSH1 0x40 000015f0: DUP4 000015f1: DUP6 000015f2: SUB 000015f3: SLT 000015f4: ISZERO 000015f5: PUSH2 0x15fd 000015f8: JUMPI 000015f9: PUSH1 0x00 000015fb: DUP1 000015fc: REVERT 000015fd: JUMPDEST 000015fe: DUP3 000015ff: CALLDATALOAD 00001600: PUSH2 0x1608 00001603: DUP2 00001604: PUSH2 0x1548 00001607: JUMP 00001608: JUMPDEST 00001609: SWAP2 0000160a: POP 0000160b: PUSH1 0x20 0000160d: DUP4 0000160e: ADD 0000160f: CALLDATALOAD 00001610: PUSH2 0x1618 00001613: DUP2 00001614: PUSH2 0x1548 00001617: JUMP 00001618: JUMPDEST 00001619: DUP1 0000161a: SWAP2 0000161b: POP 0000161c: POP 0000161d: SWAP3 0000161e: POP 0000161f: SWAP3 00001620: SWAP1 00001621: POP 00001622: JUMP 00001623: JUMPDEST 00001624: PUSH4 0x4e487b71 00001629: PUSH1 0xe0 0000162b: SHL 0000162c: PUSH1 0x00 0000162e: MSTORE 0000162f: PUSH1 0x11 00001631: PUSH1 0x04 00001633: MSTORE 00001634: PUSH1 0x24 00001636: PUSH1 0x00 00001638: REVERT 00001639: JUMPDEST 0000163a: PUSH1 0x00 0000163c: DUP3 0000163d: PUSH2 0x1656 00001640: JUMPI 00001641: PUSH4 0x4e487b71 00001646: PUSH1 0xe0 00001648: SHL 00001649: PUSH1 0x00 0000164b: MSTORE 0000164c: PUSH1 0x12 0000164e: PUSH1 0x04 00001650: MSTORE 00001651: PUSH1 0x24 00001653: PUSH1 0x00 00001655: REVERT 00001656: JUMPDEST 00001657: POP 00001658: DIV 00001659: SWAP1 0000165a: JUMP 0000165b: JUMPDEST 0000165c: PUSH1 0x01 0000165e: DUP2 0000165f: DUP2 00001660: SHR 00001661: SWAP1 00001662: DUP3 00001663: AND 00001664: DUP1 00001665: PUSH2 0x166f 00001668: JUMPI 00001669: PUSH1 0x7f 0000166b: DUP3 0000166c: AND 0000166d: SWAP2 0000166e: POP 0000166f: JUMPDEST 00001670: PUSH1 0x20 00001672: DUP3 00001673: LT 00001674: DUP2 00001675: SUB 00001676: PUSH2 0x168f 00001679: JUMPI 0000167a: PUSH4 0x4e487b71 0000167f: PUSH1 0xe0 00001681: SHL 00001682: PUSH1 0x00 00001684: MSTORE 00001685: PUSH1 0x22 00001687: PUSH1 0x04 00001689: MSTORE 0000168a: PUSH1 0x24 0000168c: PUSH1 0x00 0000168e: REVERT 0000168f: JUMPDEST 00001690: POP 00001691: SWAP2 00001692: SWAP1 00001693: POP 00001694: JUMP 00001695: JUMPDEST 00001696: PUSH1 0x20 00001698: DUP1 00001699: DUP3 0000169a: MSTORE 0000169b: DUP2 0000169c: DUP2 0000169d: ADD 0000169e: MSTORE 0000169f: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 000016c0: PUSH1 0x40 000016c2: DUP3 000016c3: ADD 000016c4: MSTORE 000016c5: PUSH1 0x60 000016c7: ADD 000016c8: SWAP1 000016c9: JUMP 000016ca: JUMPDEST 000016cb: PUSH1 0x00 000016cd: DUP3 000016ce: NOT 000016cf: DUP3 000016d0: GT 000016d1: ISZERO 000016d2: PUSH2 0x16dd 000016d5: JUMPI 000016d6: PUSH2 0x16dd 000016d9: PUSH2 0x1623 000016dc: JUMP 000016dd: JUMPDEST 000016de: POP 000016df: ADD 000016e0: SWAP1 000016e1: JUMP 000016e2: JUMPDEST 000016e3: PUSH1 0x00 000016e5: DUP2 000016e6: PUSH1 0x00 000016e8: NOT 000016e9: DIV 000016ea: DUP4 000016eb: GT 000016ec: DUP3 000016ed: ISZERO 000016ee: ISZERO 000016ef: AND 000016f0: ISZERO 000016f1: PUSH2 0x16fc 000016f4: JUMPI 000016f5: PUSH2 0x16fc 000016f8: PUSH2 0x1623 000016fb: JUMP 000016fc: JUMPDEST 000016fd: POP 000016fe: MUL 000016ff: SWAP1 00001700: JUMP 00001701: JUMPDEST 00001702: PUSH1 0x00 00001704: DUP1 00001705: DUP3 00001706: SLT 00001707: DUP1 00001708: ISZERO 00001709: PUSH1 0x01 0000170b: PUSH1 0x01 0000170d: PUSH1 0xff 0000170f: SHL 00001710: SUB 00001711: DUP5 00001712: SWAP1 00001713: SUB 00001714: DUP6 00001715: SGT 00001716: AND 00001717: ISZERO 00001718: PUSH2 0x1723 0000171b: JUMPI 0000171c: PUSH2 0x1723 0000171f: PUSH2 0x1623 00001722: JUMP 00001723: JUMPDEST 00001724: PUSH1 0x01 00001726: PUSH1 0xff 00001728: SHL 00001729: DUP4 0000172a: SWAP1 0000172b: SUB 0000172c: DUP5 0000172d: SLT 0000172e: DUP2 0000172f: AND 00001730: ISZERO 00001731: PUSH2 0x173c 00001734: JUMPI 00001735: PUSH2 0x173c 00001738: PUSH2 0x1623 0000173b: JUMP 0000173c: JUMPDEST 0000173d: POP 0000173e: POP 0000173f: ADD 00001740: SWAP1 00001741: JUMP 00001742: JUMPDEST 00001743: PUSH1 0x00 00001745: DUP3 00001746: DUP3 00001747: LT 00001748: ISZERO 00001749: PUSH2 0x1754 0000174c: JUMPI 0000174d: PUSH2 0x1754 00001750: PUSH2 0x1623 00001753: JUMP 00001754: JUMPDEST 00001755: POP 00001756: SUB 00001757: SWAP1 00001758: JUMP 00001759: JUMPDEST 0000175a: PUSH1 0x00 0000175c: DUP1 0000175d: DUP4 0000175e: SLT 0000175f: DUP1 00001760: ISZERO 00001761: PUSH1 0x01 00001763: PUSH1 0xff 00001765: SHL 00001766: DUP6 00001767: ADD 00001768: DUP5 00001769: SLT 0000176a: AND 0000176b: ISZERO 0000176c: PUSH2 0x1777 0000176f: JUMPI 00001770: PUSH2 0x1777 00001773: PUSH2 0x1623 00001776: JUMP 00001777: JUMPDEST 00001778: PUSH1 0x01 0000177a: PUSH1 0x01 0000177c: PUSH1 0xff 0000177e: SHL 0000177f: SUB 00001780: DUP5 00001781: ADD 00001782: DUP4 00001783: SGT 00001784: DUP2 00001785: AND 00001786: ISZERO 00001787: PUSH2 0x1792 0000178a: JUMPI 0000178b: PUSH2 0x1792 0000178e: PUSH2 0x1623 00001791: JUMP 00001792: JUMPDEST 00001793: POP 00001794: POP 00001795: SUB 00001796: SWAP1 00001797: JUMP 00001798: INVALID 00001799: LOG2 0000179a: PUSH5 0x6970667358 000017a0: UNKNOWN(0x22) 000017a1: SLT 000017a2: KECCAK256 000017a3: LOG1 000017a4: LOG3 000017a5: UNKNOWN(0xE8) 000017a6: ORIGIN 000017a7: CREATE 000017a8: DUP7 000017a9: UNKNOWN(0xDE) 000017aa: PUSH13 0xb61f3b31813c5ae482d8dd06bf 000017b8: PUSH12 0x057ed57fae724de6effc6473 000017c5: PUSH16
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xbe10b614",
"selector": "0xbe10b614",
"calldata_variants": [
"0xbe10b614",
"0xbe10b6140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe30443bc",
"selector": "0xe30443bc",
"calldata_variants": [
"0xe30443bc",
"0xe30443bc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfbcbc0f1",
"selector": "0xfbcbc0f1",
"calldata_variants": [
"0xfbcbc0f1",
"0xfbcbc0f10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa457c2d7",
"selector": "0xa457c2d7",
"calldata_variants": [
"0xa457c2d7",
"0xa457c2d70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa8b9d240",
"selector": "0xa8b9d240",
"calldata_variants": [
"0xa8b9d240",
"0xa8b9d2400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaafd847a",
"selector": "0xaafd847a",
"calldata_variants": [
"0xaafd847a",
"0xaafd847a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 6054,
"type": "tx_origin_used"
}
]
}
|
| medium | reentrancy | codex | Low-level CALL to computed target/value without clear success handling | 75 | no | — |
viewevidence_json{
"evidence": "callsites list shows CALL at pc 4461 with computed target/value and `returndata_checked: null`; detector findings report untrusted CALL target and possible ETH value transfer for the same callsite.",
"locations": [
"pc:4461"
],
"recommendation": "Validate the CALL success flag and handle failures explicitly (revert or record failure). If this is a payout to external accounts, use a pull-based claim pattern and/or a reentrancy guard around state updates that interact with external calls.",
"exploit_scenario": "If the CALL target/value are influenced by user input or mutable storage (they are marked as computed), a malicious recipient contract can revert or reenter during the call. The bytecode artifacts do not show a clear success check; if state is updated regardless, payouts could be silently lost or reentrancy could impact invariants. Uncertainty remains because only bytecode-level evidence is available."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x0c826205efeb524661f215f5ba933e494832ce18b7c4819a39d0b706f8a78adb
call_targets:
0xecb55b39adb7c166ccab4ccb77463ded1d201de4
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x0c826205efeb524661f215f5ba933e494832ce18b7c4819a39d0b706f8a78adb",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xecb55b39adb7c166ccab4ccb77463ded1d201de4"
],
"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": "0xbe10b614",
"selector": "0xbe10b614",
"calldata_variants": [
"0xbe10b614",
"0xbe10b6140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe30443bc",
"selector": "0xe30443bc",
"calldata_variants": [
"0xe30443bc",
"0xe30443bc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfbcbc0f1",
"selector": "0xfbcbc0f1",
"calldata_variants": [
"0xfbcbc0f1",
"0xfbcbc0f10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa457c2d7",
"selector": "0xa457c2d7",
"calldata_variants": [
"0xa457c2d7",
"0xa457c2d70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa8b9d240",
"selector": "0xa8b9d240",
"calldata_variants": [
"0xa8b9d240",
"0xa8b9d2400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaafd847a",
"selector": "0xaafd847a",
"calldata_variants": [
"0xaafd847a",
"0xaafd847a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 4461,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 1,
"guards_detected": [
{
"pc": 6054,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 1
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x0c826205efeb524661f215f5ba933e494832ce18b7c4819a39d0b706f8a78adb
call_targets:
0xecb55b39adb7c166ccab4ccb77463ded1d201de4
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x0c826205efeb524661f215f5ba933e494832ce18b7c4819a39d0b706f8a78adb",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xecb55b39adb7c166ccab4ccb77463ded1d201de4"
],
"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": "0xbe10b614",
"selector": "0xbe10b614",
"calldata_variants": [
"0xbe10b614",
"0xbe10b6140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe30443bc",
"selector": "0xe30443bc",
"calldata_variants": [
"0xe30443bc",
"0xe30443bc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfbcbc0f1",
"selector": "0xfbcbc0f1",
"calldata_variants": [
"0xfbcbc0f1",
"0xfbcbc0f10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa457c2d7",
"selector": "0xa457c2d7",
"calldata_variants": [
"0xa457c2d7",
"0xa457c2d70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa8b9d240",
"selector": "0xa8b9d240",
"calldata_variants": [
"0xa8b9d240",
"0xa8b9d2400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaafd847a",
"selector": "0xaafd847a",
"calldata_variants": [
"0xaafd847a",
"0xaafd847a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 4461,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": [
{
"pc": 6054,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x59f9952796e75356aa0092d78ae5e744f4e5f9ce82527e6ace7bc1efecc27fa0
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x59f9952796e75356aa0092d78ae5e744f4e5f9ce82527e6ace7bc1efecc27fa0",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xbe10b614",
"selector": "0xbe10b614",
"calldata_variants": [
"0xbe10b614",
"0xbe10b6140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe30443bc",
"selector": "0xe30443bc",
"calldata_variants": [
"0xe30443bc",
"0xe30443bc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfbcbc0f1",
"selector": "0xfbcbc0f1",
"calldata_variants": [
"0xfbcbc0f1",
"0xfbcbc0f10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa457c2d7",
"selector": "0xa457c2d7",
"calldata_variants": [
"0xa457c2d7",
"0xa457c2d70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa8b9d240",
"selector": "0xa8b9d240",
"calldata_variants": [
"0xa8b9d240",
"0xa8b9d2400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaafd847a",
"selector": "0xaafd847a",
"calldata_variants": [
"0xaafd847a",
"0xaafd847a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 1,
"create2_count": 0
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 1,
"create2_count": 0
}
|