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

Analysis Run

926e2c1a-40ab-4a2e-b2c1-42805e1bef0b

complete
Chain ID
1
Address
Block Number
Created
Fri, Jan 2, 2026 6:02 AM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
31243 report.consolidate complete 1 / 1 3 months ago
104717 artifact.fetch complete 1 / 3 1 week ago
104718 tool.cast_disasm complete 1 / 3 1 week ago
104719 analysis.bundle complete 1 / 3 1 week ago
104720 capability.graph complete 1 / 3 1 week ago
104721 detector.run complete 1 / 3 1 week ago
104722 validation.fork complete 1 / 3 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: no

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
0
No findings?
yes
Summary
Reviewed runtime bytecode; all value-transfer paths (CALL, ERC20 transfer, ERC721 safeTransferFrom) are gated by an owner check against storage slot 1, and no public function reaches those helpers without that check. No concrete, exploitable profit path identified from bytecode alone.
View stderr
[codex:338277] OpenAI Codex v0.77.0 (research preview)
[codex:338277] --------
[codex:338277] workdir: /tmp/codex-multi-988b9dc5
[codex:338277] model: gpt-5.2-codex
[codex:338277] provider: openai
[codex:338277] approval: never
[codex:338277] sandbox: read-only
[codex:338277] reasoning effort: xhigh
[codex:338277] reasoning summaries: auto
[codex:338277] session id: 019b7d47-d4e9-7210-8490-90802fca0e6a
[codex:338277] --------
[codex:338277] user
[codex:338277] You are a profit-focused exploit hunter analyzing EVM bytecode. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:338277] 
[codex:338277] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:338277] 
[codex:338277] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:338277] - Gas inefficiency, code quality, or best practices
[codex:338277] - Theoretical vulnerabilities without a clear extraction path
[codex:338277] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:338277] - Issues requiring social engineering or off-chain coordination
[codex:338277] 
[codex:338277] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:338277] - CALL/DELEGATECALL with controllable destination or calldata
[codex:338277] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:338277] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:338277] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:338277] - External calls before state updates (reentrancy)
[codex:338277] - SELFDESTRUCT with controllable beneficiary
[codex:338277] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:338277] 
[codex:338277] For each finding, you MUST explain:
[codex:338277] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:338277] 2. The concrete sequence of transactions to extract value
[codex:338277] 3. Why you believe this is exploitable (not just suspicious)
[codex:338277] 
[codex:338277] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:338277] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:338277] 
[codex:338277] Output MUST be valid JSON matching the provided schema.
[codex:338277] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:338277] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:338277] mcp startup: no servers
[codex:338277] 
[codex:338277] thinking
[codex:338277] **Preparing to locate BYTECODE_BUNDLE.txt**
[codex:338277] exec
[codex:338277] /bin/bash -lc 'rg --files' in /tmp/codex-multi-988b9dc5 succeeded in 8ms:
[codex:338277] codex-output-schema.json
[codex:338277] BYTECODE_BUNDLE.txt
[codex:338277] 
[codex:338277] thinking
[codex:338277] **Reading AGENTS skills and BYTECODE_BUNDLE**
[codex:338277] exec
[codex:338277] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-988b9dc5 succeeded in 5ms:
[codex:338277] Runtime bytecode bundle for best-effort auditing.
[codex:338277] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:338277] 
[codex:338277] FILE: runtime_bytecode.hex
[codex:338277] 0x6080604052600436106100b95763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663150b7a0281146100ff5780632c8ef8411461016d578063375b74c314610185578063441e15d0146101b6578063522b3d17146101f1578063526327f2146102335780635aa79b6b1461026957806360de3a2614610281578063bab8965d146102ab578063cb81fecf146102c3578063eb9b6816146102d8578063ecf644f1146102f0575b60003411156100fd576040805133815234602082015281517f939e51ac2fd009b158d6344f7e68a83d8d18d9b0cc88cf514aac6aaa9cad2a18929181900390910190a15b005b34801561010b57600080fd5b50610138600160a060020a036004803582169160248035909116916044359160643590810191013561031a565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b34801561017957600080fd5b506100fd600435610344565b34801561019157600080fd5b5061019a610441565b60408051600160a060020a039092168252519081900360200190f35b3480156101c257600080fd5b506101ce600435610450565b60408051600160a060020a03909316835260208301919091528051918290030190f35b3480156101fd57600080fd5b50610209600435610475565b60408051600160a060020a0394851681529290931660208301528183015290519081900360600190f35b34801561023f57600080fd5b50610257600160a060020a03600435166024356104a3565b60408051918252519081900360200190f35b34801561027557600080fd5b506100fd600435610629565b34801561028d57600080fd5b50610257600160a060020a0360043581169060243516604435610738565b3480156102b757600080fd5b506100fd600435610902565b3480156102cf57600080fd5b50610257610a10565b3480156102e457600080fd5b50610209600435610a16565b3480156102fc57600080fd5b50610257600160a060020a0360043581169060243516604435610a44565b7f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b600154600090819081908190600160a060020a0316331461036457600080fd5b60008581526002602052604090208054909450600160a060020a0316925082151561038e57600080fd5b600180850154600087815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff191681559093018190559151909350600160a060020a0385169184156108fc02918591818181858888f193505050509050801561043a5760408051868152600160a060020a038516602082015280820184905290517fa60bf978b126b18592f5814e3f5a8a515c7398d434c3e3c80509c2cabe29a3169181900360600190a15b5050505050565b600154600160a060020a031681565b60026020526000908152604090208054600190910154600160a060020a039091169082565b600460205260009081526040902080546001820154600290920154600160a060020a03918216929091169083565b600080600160a060020a03841615156104bb57600080fd5b6104c3610c0e565b6040805160208082018490527f526327f200000000000000000000000000000000000000000000000000000000828401526c01000000000000000000000000600160a060020a0389160260448301526058808301889052835180840390910181526078909201928390528151939450909282918401908083835b6020831061055c5780518252601f19909201916020918201910161053d565b51815160001960209485036101000a019081169019909116179052604080519490920184900384208483018352600160a060020a038b81168087528684018c815260008481526002865286812098518954941673ffffffffffffffffffffffffffffffffffffffff199094169390931788555160019097019690965554835182815292830152818301949094526060810189905290519296507feb834e5a149cb8e47021251c336929a69cf86727196572529a29bf1b3a22d35a9450829003608001925050a15092915050565b6001546000908190819081908190600160a060020a0316331461064b57600080fd5b60008681526004602052604090208054909550600160a060020a0316935083151561067557600080fd5b60018086015460028088015460008a8152600460205260408120805473ffffffffffffffffffffffffffffffffffffffff19908116825595810180549096169095559390910192909255600160a060020a0316935091506106d7848484610cb7565b905080156107305760408051878152600160a060020a0380871660208301528516818301526060810184905290517feb1b982af03fc8d04e3d1ec453261a3fa4dad85540be27231a6e729d9c34f1b79181900360800190a15b505050505050565b600080600160a060020a038516151561075057600080fd5b600160a060020a038416151561076557600080fd5b61076d610c0e565b6040805160208082018490527f60de3a2600000000000000000000000000000000000000000000000000000000828401526c01000000000000000000000000600160a060020a03808b16820260448501528916026058830152606c80830188905283518084039091018152608c909201928390528151939450909282918401908083835b602083106108105780518252601f1990920191602091820191016107f1565b51815160001960209485036101000a019081169019919091161790526040805194909201849003842060608086018452600160a060020a03808e168088528d82168886018181528988018f81526000878152600489528981209b518c5490871673ffffffffffffffffffffffffffffffffffffffff19918216178d55925160018d0180549190971693169290921790945592516002909901989098559054855184815294850152838501528201949094526080810189905290519296507f02f609a1c03b13108a8069c96fbcfb080db656ce3f52dfdaa9af431e2d71dc65945082900360a001925050a1509392505050565b6001546000908190819081908190600160a060020a0316331461092457600080fd5b60008681526003602052604090208054909550600160a060020a0316935083151561094e57600080fd5b60018086015460028088015460008a8152600360205260408120805473ffffffffffffffffffffffffffffffffffffffff19908116825595810180549096169095559390910192909255600160a060020a0316935091506109b0848484610d27565b905080156107305760408051878152600160a060020a0380871660208301528516818301526060810184905290517f05b708c886ad83ae717f113aa484cdf529c07892cecc7000be8e7e876a841d1b9181900360800190a1505050505050565b60005481565b600360205260009081526040902080546001820154600290920154600160a060020a03918216929091169083565b600080600160a060020a0385161515610a5c57600080fd5b600160a060020a0384161515610a7157600080fd5b610a79610c0e565b6040805160208082018490527fecf644f100000000000000000000000000000000000000000000000000000000828401526c01000000000000000000000000600160a060020a03808b16820260448501528916026058830152606c80830188905283518084039091018152608c909201928390528151939450909282918401908083835b60208310610b1c5780518252601f199092019160209182019101610afd565b51815160001960209485036101000a019081169019919091161790526040805194909201849003842060608086018452600160a060020a03808e168088528d82168886018181528988018f81526000878152600389528981209b518c5490871673ffffffffffffffffffffffffffffffffffffffff19918216178d55925160018d0180549190971693169290921790945592516002909901989098559054855184815294850152838501528201949094526080810189905290519296507f620b1d454866258768f710e230edb1977b9f7349de5a633e5e34337d6e9fffab945082900360a001925050a1509392505050565b60008054600101808255604080516000194301406020808301919091526c0100000000000000000000000030028284015260548083019490945282518083039094018452607490910191829052825182918401908083835b60208310610c855780518252601f199092019160209182019101610c66565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905090565b604080517f42842e0e000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a0384811660248301526044820184905291516000928616916342842e0e9160648083019286929190829003018183875af1979650505050505050565b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03848116600483015260248201849052915160009286169163a9059cbb9160448083019286929190829003018183875af19796505050505050505600a165627a7a7230582033b4c81ac296b8d1be9b1e1771aae54c63b57d9df3ff2a1dfb5202fc7d44c3ee0029
[codex:338277] 
[codex:338277] thinking
[codex:338277] **Preparing to analyze bytecode for vulnerabilities**
[codex:338277] exec
[codex:338277] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-988b9dc5 succeeded in 5ms:
[codex:338277] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:338277] 
[codex:338277] thinking
[codex:338277] **Interpreting bytecode for exploit analysis**
[codex:338277] exec
[codex:338277] /bin/bash -lc "python - <<'PY'
[codex:338277] from eth_utils import decode_hex
[codex:338277] 
[codex:338277] PY" in /tmp/codex-multi-988b9dc5 succeeded in 236ms:
[codex:338277] 
[codex:338277] 
[codex:338277] thinking
[codex:338277] **Verifying eth_utils availability and planning disassembler**
[codex:338277] exec
[codex:338277] /bin/bash -lc "python - <<'PY'
[codex:338277] import binascii
[codex:338277] 
[codex:338277] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[-1].strip()
[codex:338277] # the file includes runtime bytecode hex after 0x; ensure only hex digits
[codex:338277] hexdata=''.join(ch for ch in hexdata if ch in '0123456789abcdef')
[codex:338277] 
[codex:338277] code=binascii.unhexlify(hexdata)
[codex:338277] 
[codex:338277] opcodes = {
[codex:338277]     0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:338277]     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',
[codex:338277]     0x20:'SHA3',
[codex:338277]     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',
[codex:338277]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:338277]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:338277]     0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:338277]     0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:338277]     0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:338277]     0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:338277]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:338277]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:338277] }
[codex:338277] 
[codex:338277] i=0
[codex:338277] while i < len(code):
[codex:338277]     op=code[i]
[codex:338277]     name=opcodes.get(op,f'OP{op:02x}')
[codex:338277]     if 0x60 <= op <= 0x7f:
[codex:338277]         n=op-0x5f
[codex:338277]         data=code[i+1:i+1+n]
[codex:338277]         print(f'{i:04x}: {name} 0x{data.hex()}')
[codex:338277]         i+=1+n
[codex:338277]     else:
[codex:338277]         print(f'{i:04x}: {name}')
[codex:338277]         i+=1
[codex:338277] PY" in /tmp/codex-multi-988b9dc5 succeeded in 21ms:
[codex:338277] 0000: PUSH1 0x80
[codex:338277] 0002: PUSH1 0x40
[codex:338277] 0004: MSTORE
[codex:338277] 0005: PUSH1 0x04
[codex:338277] 0007: CALLDATASIZE
[codex:338277] 0008: LT
[codex:338277] 0009: PUSH2 0x00b9
[codex:338277] 000c: JUMPI
[codex:338277] 000d: PUSH4 0xffffffff
[codex:338277] 0012: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
[codex:338277] 0030: PUSH1 0x00
[codex:338277] 0032: CALLDATALOAD
[codex:338277] 0033: DIV
[codex:338277] 0034: AND
[codex:338277] 0035: PUSH4 0x150b7a02
[codex:338277] 003a: DUP2
[codex:338277] 003b: EQ
[codex:338277] 003c: PUSH2 0x00ff
[codex:338277] 003f: JUMPI
[codex:338277] 0040: DUP1
[codex:338277] 
[codex:338277] 
[codex:338277] thinking
[codex:338277] **Analyzing contract functions and access controls**
[codex:338277] thinking
[codex:338277] **Investigating function roles and event signatures**
[codex:338277] 
[codex:338277] I'm piecing together the contract's purpose—possibly an escrow or gasless token transfer system—by matching function selectors and event hashes. I’m examining storage writes and external calls to spot any function that might transfer assets without proper authorization, trying to clarify if any public functions call token transfer helpers or only owner-only functions do. Next, I might analyze call sites to the token transfer helpers to confirm access control.
[codex:338277] exec
[codex:338277] /bin/bash -lc "python - <<'PY'
[codex:338277] import binascii
[codex:338277] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[-1].strip()
[codex:338277] hexdata=''.join(ch for ch in hexdata if ch in '0123456789abcdef')
[codex:338277] code=binascii.unhexlify(hexdata)
[codex:338277] # find push2 0x0cb7 / 0x0d27 / 0x0cb7
[codex:338277] for target in [0x0cb7,0x0d27]:
[codex:338277]     locs=[]
[codex:338277]     for i,b in enumerate(code[:-2]):
[codex:338277]         if b==0x61 and code[i+1]==(target>>8)&0xff and code[i+2]==(target&0xff):
[codex:338277]             locs.append(i)
[codex:338277]     print(hex(target), [hex(l) for l in locs])
[codex:338277] PY" in /tmp/codex-multi-988b9dc5 succeeded in 18ms:
[codex:338277] 0xcb7 ['0x6d3']
[codex:338277] 0xd27 ['0x9ac']
[codex:338277] 
[codex:338277] thinking
[codex:338277] **Evaluating potential exploit paths**
[codex:338277] exec
[codex:338277] /bin/bash -lc "python - <<'PY'
[codex:338277] import binascii
[codex:338277] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[-1].strip()
[codex:338277] hexdata=''.join(ch for ch in hexdata if ch in '0123456789abcdef')
[codex:338277] code=binascii.unhexlify(hexdata)
[codex:338277] callers=[i for i,b in enumerate(code) if b==0x33]
[codex:338277] print(callers)
[codex:338277] PY" in /tmp/codex-multi-988b9dc5 succeeded in 19ms:
[codex:338277] [117, 199, 858, 1539, 1601, 2330, 3061, 3483]
[codex:338277] 
[codex:338277] thinking
[codex:338277] **Analyzing storage writes for exploit potential**
[codex:338277] 
[codex:338277] I'm looking closely at how SSTORE instructions are used in non-owner functions to see if any write directly to critical storage slots like slot1, which holds owner info. This might reveal a vulnerability enabling an attacker to manipulate ownership or trigger unauthorized transfers. I'll script disassembly around SSTOREs to identify if slots come from user input or constants.
[codex:338277] exec
[codex:338277] /bin/bash -lc "python - <<'PY'
[codex:338277] import binascii
[codex:338277] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[-1].strip()
[codex:338277] hexdata=''.join(ch for ch in hexdata if ch in '0123456789abcdef')
[codex:338277] code=binascii.unhexlify(hexdata)
[codex:338277] 
[codex:338277] opnames={0x55:'SSTORE',0x54:'SLOAD'}
[codex:338277] # quick disasm function to show around
[codex:338277] from collections import defaultdict
[codex:338277] 
[codex:338277] # find offset to index mapping for simple stepping (variable length)
[codex:338277] opcodes = {}
[codex:338277] # fill minimal to compute length
[codex:338277] for i in range(256):
[codex:338277]     if 0x60 <= i <= 0x7f:
[codex:338277]         opcodes[i]=1+(i-0x5f)
[codex:338277]     else:
[codex:338277]         opcodes[i]=1
[codex:338277] 
[codex:338277] # build map index->offset positions for each instruction
[codex:338277] idx=0
[codex:338277] positions=[]
[codex:338277] while idx < len(code):
[codex:338277]     positions.append(idx)
[codex:338277]     op=code[idx]
[codex:338277]     idx += opcodes[op]
[codex:338277] 
[codex:338277] # map from offset to instruction index
[codex:338277] pos_to_idx={pos:i for i,pos in enumerate(positions)}
[codex:338277] 
[codex:338277] # simple disasm output around SSTORE
[codex:338277] 
[codex:338277] def opname(op):
[codex:338277]     names={
[codex:338277]         0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:338277]         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',
[codex:338277]         0x20:'SHA3',
[codex:338277]         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',
[codex:338277]         0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:338277]         0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:338277]         0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:338277]         0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:338277]         0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:338277]         0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:338277]     }
[codex:338277]     if 0x60 <= op <= 0x7f:
[codex:338277]         return f'PUSH{op-0x5f}'
[codex:338277]     return names.get(op,f'OP{op:02x}')
[codex:338277] 
[codex:338277] # build list of instructions with immediate data
[codex:338277] insts=[]
[codex:338277] idx=0
[codex:338277] while idx < len(code):
[codex:338277]     op=code[idx]
[codex:338277]     if 0x60<=op<=0x7f:
[codex:338277]         n=op-0x5f
[codex:338277]         data=code[idx+1:idx+1+n]
[codex:338277]         insts.append((idx,op,data))
[codex:338277]         idx+=1+n
[codex:338277]     else:
[codex:338277]         insts.append((idx,op,b''))
[codex:338277]         idx+=1
[codex:338277] 
[codex:338277] # locate SSTORE
[codex:338277] for i,(offset,op,data) in enumerate(insts):
[codex:338277]     if op==0x55:
[codex:338277]         # print 5 instructions before and after
[codex:338277]         start=max(0,i-5)
[codex:338277]         end=min(len(insts),i+6)
[codex:338277]         print('--- SSTORE at',hex(offset))
[codex:338277]         for off,op2,data2 in insts[start:end]:
[codex:338277]             if 0x60<=op2<=0x7f:
[codex:338277]                 print(f'{off:04x}: {opname(op2)} 0x{data2.hex()}')
[codex:338277]             else:
[codex:338277]                 print(f'{off:04x}: {opname(op2)}')
[codex:338277] PY" in /tmp/codex-multi-988b9dc5 succeeded in 24ms:
[codex:338277] --- SSTORE at 0x3be
[codex:338277] 03a5: SLOAD
[codex:338277] 03a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:338277] 03bb: NOT
[codex:338277] 03bc: AND
[codex:338277] 03bd: DUP2
[codex:338277] 03be: SSTORE
[codex:338277] 03bf: SWAP1
[codex:338277] 03c0: SWAP4
[codex:338277] 03c1: ADD
[codex:338277] 03c2: DUP2
[codex:338277] 03c3: SWAP1
[codex:338277] --- SSTORE at 0x3c4
[codex:338277] 03bf: SWAP1
[codex:338277] 03c0: SWAP4
[codex:338277] 03c1: ADD
[codex:338277] 03c2: DUP2
[codex:338277] 03c3: SWAP1
[codex:338277] 03c4: SSTORE
[codex:338277] 03c5: SWAP2
[codex:338277] 
[codex:338277] thinking
[codex:338277] **Analyzing potential storage and call vulnerabilities**
[codex:338277] exec
[codex:338277] /bin/bash -lc "python - <<'PY'
[codex:338277] import binascii
[codex:338277] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[-1].strip()
[codex:338277] hexdata=''.join(ch for ch in hexdata if ch in '0123456789abcdef')
[codex:338277] code=binascii.unhexlify(hexdata)
[codex:338277] # find push2 0x0344
[codex:338277] locs=[]
[codex:338277] for i,b in enumerate(code[:-2]):
[codex:338277]     if b==0x61 and code[i+1]==0x03 and code[i+2]==0x44:
[codex:338277]         locs.append(i)
[codex:338277] print(locs)
[codex:338277] PY" in /tmp/codex-multi-988b9dc5 succeeded in 19ms:
[codex:338277] [385]
[codex:338277] 
[codex:338277] thinking
[codex:338277] **Preparing bytecode analysis summary**
[codex:338277] codex
[codex:338277] {"no_findings":true,"summary":"Reviewed runtime bytecode; all value-transfer paths (CALL, ERC20 transfer, ERC721 safeTransferFrom) are gated by an owner check against storage slot 1, and no public function reaches those helpers without that check. No concrete, exploitable profit path identified from bytecode alone.","findings":[]}
[codex:338277] tokens used
[codex:338277] 155,341
[codex:338277] {"no_findings":true,"summary":"Reviewed runtime bytecode; all value-transfer paths (CALL, ERC20 transfer, ERC721 safeTransferFrom) are gated by an owner check against storage slot 1, and no public function reaches those helpers without that check. No concrete, exploitable profit path identified from bytecode alone.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-02T06:02:06.157763+00:00",
        "returncode": 0
    },
    "summary": "Reviewed runtime bytecode; all value-transfer paths (CALL, ERC20 transfer, ERC721 safeTransferFrom) are gated by an owner check against storage slot 1, and no public function reaches those helpers without that check. No concrete, exploitable profit path identified from bytecode alone.",
    "raw_final": {
        "summary": "Reviewed runtime bytecode; all value-transfer paths (CALL, ERC20 transfer, ERC721 safeTransferFrom) are gated by an owner check against storage slot 1, and no public function reaches those helpers without that check. No concrete, exploitable profit path identified from bytecode alone.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
3
EXT*/BALANCE
0
Total opcodes
2297
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x00b9
0000000c: JUMPI
0000000d: PUSH4 0xffffffff
00000012: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000030: PUSH1 0x00
00000032: CALLDATALOAD
00000033: DIV
00000034: AND
00000035: PUSH4 0x150b7a02
0000003a: DUP2
0000003b: EQ
0000003c: PUSH2 0x00ff
0000003f: JUMPI
00000040: DUP1
00000041: PUSH4 0x2c8ef841
00000046: EQ
00000047: PUSH2 0x016d
0000004a: JUMPI
0000004b: DUP1
0000004c: PUSH4 0x375b74c3
00000051: EQ
00000052: PUSH2 0x0185
00000055: JUMPI
00000056: DUP1
00000057: PUSH4 0x441e15d0
0000005c: EQ
0000005d: PUSH2 0x01b6
00000060: JUMPI
00000061: DUP1
00000062: PUSH4 0x522b3d17
00000067: EQ
00000068: PUSH2 0x01f1
0000006b: JUMPI
0000006c: DUP1
0000006d: PUSH4 0x526327f2
00000072: EQ
00000073: PUSH2 0x0233
00000076: JUMPI
00000077: DUP1
00000078: PUSH4 0x5aa79b6b
0000007d: EQ
0000007e: PUSH2 0x0269
00000081: JUMPI
00000082: DUP1
00000083: PUSH4 0x60de3a26
00000088: EQ
00000089: PUSH2 0x0281
0000008c: JUMPI
0000008d: DUP1
0000008e: PUSH4 0xbab8965d
00000093: EQ
00000094: PUSH2 0x02ab
00000097: JUMPI
00000098: DUP1
00000099: PUSH4 0xcb81fecf
0000009e: EQ
0000009f: PUSH2 0x02c3
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0xeb9b6816
000000a9: EQ
000000aa: PUSH2 0x02d8
000000ad: JUMPI
000000ae: DUP1
000000af: PUSH4 0xecf644f1
000000b4: EQ
000000b5: PUSH2 0x02f0
000000b8: JUMPI
000000b9: JUMPDEST
000000ba: PUSH1 0x00
000000bc: CALLVALUE
000000bd: GT
000000be: ISZERO
000000bf: PUSH2 0x00fd
000000c2: JUMPI
000000c3: PUSH1 0x40
000000c5: DUP1
000000c6: MLOAD
000000c7: CALLER
000000c8: DUP2
000000c9: MSTORE
000000ca: CALLVALUE
000000cb: PUSH1 0x20
000000cd: DUP3
000000ce: ADD
000000cf: MSTORE
000000d0: DUP2
000000d1: MLOAD
000000d2: PUSH32 0x939e51ac2fd009b158d6344f7e68a83d8d18d9b0cc88cf514aac6aaa9cad2a18
000000f3: SWAP3
000000f4: SWAP2
000000f5: DUP2
000000f6: SWAP1
000000f7: SUB
000000f8: SWAP1
000000f9: SWAP2
000000fa: ADD
000000fb: SWAP1
000000fc: LOG1
000000fd: JUMPDEST
000000fe: STOP
000000ff: JUMPDEST
00000100: CALLVALUE
00000101: DUP1
00000102: ISZERO
00000103: PUSH2 0x010b
00000106: JUMPI
00000107: PUSH1 0x00
00000109: DUP1
0000010a: REVERT
0000010b: JUMPDEST
0000010c: POP
0000010d: PUSH2 0x0138
00000110: PUSH1 0x01
00000112: PUSH1 0xa0
00000114: PUSH1 0x02
00000116: EXP
00000117: SUB
00000118: PUSH1 0x04
0000011a: DUP1
0000011b: CALLDATALOAD
0000011c: DUP3
0000011d: AND
0000011e: SWAP2
0000011f: PUSH1 0x24
00000121: DUP1
00000122: CALLDATALOAD
00000123: SWAP1
00000124: SWAP2
00000125: AND
00000126: SWAP2
00000127: PUSH1 0x44
00000129: CALLDATALOAD
0000012a: SWAP2
0000012b: PUSH1 0x64
0000012d: CALLDATALOAD
0000012e: SWAP1
0000012f: DUP2
00000130: ADD
00000131: SWAP2
00000132: ADD
00000133: CALLDATALOAD
00000134: PUSH2 0x031a
00000137: JUMP
00000138: JUMPDEST
00000139: PUSH1 0x40
0000013b: DUP1
0000013c: MLOAD
0000013d: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000015e: SWAP1
0000015f: SWAP3
00000160: AND
00000161: DUP3
00000162: MSTORE
00000163: MLOAD
00000164: SWAP1
00000165: DUP2
00000166: SWAP1
00000167: SUB
00000168: PUSH1 0x20
0000016a: ADD
0000016b: SWAP1
0000016c: RETURN
0000016d: JUMPDEST
0000016e: CALLVALUE
0000016f: DUP1
00000170: ISZERO
00000171: PUSH2 0x0179
00000174: JUMPI
00000175: PUSH1 0x00
00000177: DUP1
00000178: REVERT
00000179: JUMPDEST
0000017a: POP
0000017b: PUSH2 0x00fd
0000017e: PUSH1 0x04
00000180: CALLDATALOAD
00000181: PUSH2 0x0344
00000184: JUMP
00000185: JUMPDEST
00000186: CALLVALUE
00000187: DUP1
00000188: ISZERO
00000189: PUSH2 0x0191
0000018c: JUMPI
0000018d: PUSH1 0x00
0000018f: DUP1
00000190: REVERT
00000191: JUMPDEST
00000192: POP
00000193: PUSH2 0x019a
00000196: PUSH2 0x0441
00000199: JUMP
0000019a: JUMPDEST
0000019b: PUSH1 0x40
0000019d: DUP1
0000019e: MLOAD
0000019f: PUSH1 0x01
000001a1: PUSH1 0xa0
000001a3: PUSH1 0x02
000001a5: EXP
000001a6: SUB
000001a7: SWAP1
000001a8: SWAP3
000001a9: AND
000001aa: DUP3
000001ab: MSTORE
000001ac: MLOAD
000001ad: SWAP1
000001ae: DUP2
000001af: SWAP1
000001b0: SUB
000001b1: PUSH1 0x20
000001b3: ADD
000001b4: SWAP1
000001b5: RETURN
000001b6: JUMPDEST
000001b7: CALLVALUE
000001b8: DUP1
000001b9: ISZERO
000001ba: PUSH2 0x01c2
000001bd: JUMPI
000001be: PUSH1 0x00
000001c0: DUP1
000001c1: REVERT
000001c2: JUMPDEST
000001c3: POP
000001c4: PUSH2 0x01ce
000001c7: PUSH1 0x04
000001c9: CALLDATALOAD
000001ca: PUSH2 0x0450
000001cd: JUMP
000001ce: JUMPDEST
000001cf: PUSH1 0x40
000001d1: DUP1
000001d2: MLOAD
000001d3: PUSH1 0x01
000001d5: PUSH1 0xa0
000001d7: PUSH1 0x02
000001d9: EXP
000001da: SUB
000001db: SWAP1
000001dc: SWAP4
000001dd: AND
000001de: DUP4
000001df: MSTORE
000001e0: PUSH1 0x20
000001e2: DUP4
000001e3: ADD
000001e4: SWAP2
000001e5: SWAP1
000001e6: SWAP2
000001e7: MSTORE
000001e8: DUP1
000001e9: MLOAD
000001ea: SWAP2
000001eb: DUP3
000001ec: SWAP1
000001ed: SUB
000001ee: ADD
000001ef: SWAP1
000001f0: RETURN
000001f1: JUMPDEST
000001f2: CALLVALUE
000001f3: DUP1
000001f4: ISZERO
000001f5: PUSH2 0x01fd
000001f8: JUMPI
000001f9: PUSH1 0x00
000001fb: DUP1
000001fc: REVERT
000001fd: JUMPDEST
000001fe: POP
000001ff: PUSH2 0x0209
00000202: PUSH1 0x04
00000204: CALLDATALOAD
00000205: PUSH2 0x0475
00000208: JUMP
00000209: JUMPDEST
0000020a: PUSH1 0x40
0000020c: DUP1
0000020d: MLOAD
0000020e: PUSH1 0x01
00000210: PUSH1 0xa0
00000212: PUSH1 0x02
00000214: EXP
00000215: SUB
00000216: SWAP5
00000217: DUP6
00000218: AND
00000219: DUP2
0000021a: MSTORE
0000021b: SWAP3
0000021c: SWAP1
0000021d: SWAP4
0000021e: AND
0000021f: PUSH1 0x20
00000221: DUP4
00000222: ADD
00000223: MSTORE
00000224: DUP2
00000225: DUP4
00000226: ADD
00000227: MSTORE
00000228: SWAP1
00000229: MLOAD
0000022a: SWAP1
0000022b: DUP2
0000022c: SWAP1
0000022d: SUB
0000022e: PUSH1 0x60
00000230: ADD
00000231: SWAP1
00000232: RETURN
00000233: JUMPDEST
00000234: CALLVALUE
00000235: DUP1
00000236: ISZERO
00000237: PUSH2 0x023f
0000023a: JUMPI
0000023b: PUSH1 0x00
0000023d: DUP1
0000023e: REVERT
0000023f: JUMPDEST
00000240: POP
00000241: PUSH2 0x0257
00000244: PUSH1 0x01
00000246: PUSH1 0xa0
00000248: PUSH1 0x02
0000024a: EXP
0000024b: SUB
0000024c: PUSH1 0x04
0000024e: CALLDATALOAD
0000024f: AND
00000250: PUSH1 0x24
00000252: CALLDATALOAD
00000253: PUSH2 0x04a3
00000256: JUMP
00000257: JUMPDEST
00000258: PUSH1 0x40
0000025a: DUP1
0000025b: MLOAD
0000025c: SWAP2
0000025d: DUP3
0000025e: MSTORE
0000025f: MLOAD
00000260: SWAP1
00000261: DUP2
00000262: SWAP1
00000263: SUB
00000264: PUSH1 0x20
00000266: ADD
00000267: SWAP1
00000268: RETURN
00000269: JUMPDEST
0000026a: CALLVALUE
0000026b: DUP1
0000026c: ISZERO
0000026d: PUSH2 0x0275
00000270: JUMPI
00000271: PUSH1 0x00
00000273: DUP1
00000274: REVERT
00000275: JUMPDEST
00000276: POP
00000277: PUSH2 0x00fd
0000027a: PUSH1 0x04
0000027c: CALLDATALOAD
0000027d: PUSH2 0x0629
00000280: JUMP
00000281: JUMPDEST
00000282: CALLVALUE
00000283: DUP1
00000284: ISZERO
00000285: PUSH2 0x028d
00000288: JUMPI
00000289: PUSH1 0x00
0000028b: DUP1
0000028c: REVERT
0000028d: JUMPDEST
0000028e: POP
0000028f: PUSH2 0x0257
00000292: PUSH1 0x01
00000294: PUSH1 0xa0
00000296: PUSH1 0x02
00000298: EXP
00000299: SUB
0000029a: PUSH1 0x04
0000029c: CALLDATALOAD
0000029d: DUP2
0000029e: AND
0000029f: SWAP1
000002a0: PUSH1 0x24
000002a2: CALLDATALOAD
000002a3: AND
000002a4: PUSH1 0x44
000002a6: CALLDATALOAD
000002a7: PUSH2 0x0738
000002aa: JUMP
000002ab: JUMPDEST
000002ac: CALLVALUE
000002ad: DUP1
000002ae: ISZERO
000002af: PUSH2 0x02b7
000002b2: JUMPI
000002b3: PUSH1 0x00
000002b5: DUP1
000002b6: REVERT
000002b7: JUMPDEST
000002b8: POP
000002b9: PUSH2 0x00fd
000002bc: PUSH1 0x04
000002be: CALLDATALOAD
000002bf: PUSH2 0x0902
000002c2: JUMP
000002c3: JUMPDEST
000002c4: CALLVALUE
000002c5: DUP1
000002c6: ISZERO
000002c7: PUSH2 0x02cf
000002ca: JUMPI
000002cb: PUSH1 0x00
000002cd: DUP1
000002ce: REVERT
000002cf: JUMPDEST
000002d0: POP
000002d1: PUSH2 0x0257
000002d4: PUSH2 0x0a10
000002d7: JUMP
000002d8: JUMPDEST
000002d9: CALLVALUE
000002da: DUP1
000002db: ISZERO
000002dc: PUSH2 0x02e4
000002df: JUMPI
000002e0: PUSH1 0x00
000002e2: DUP1
000002e3: REVERT
000002e4: JUMPDEST
000002e5: POP
000002e6: PUSH2 0x0209
000002e9: PUSH1 0x04
000002eb: CALLDATALOAD
000002ec: PUSH2 0x0a16
000002ef: JUMP
000002f0: JUMPDEST
000002f1: CALLVALUE
000002f2: DUP1
000002f3: ISZERO
000002f4: PUSH2 0x02fc
000002f7: JUMPI
000002f8: PUSH1 0x00
000002fa: DUP1
000002fb: REVERT
000002fc: JUMPDEST
000002fd: POP
000002fe: PUSH2 0x0257
00000301: PUSH1 0x01
00000303: PUSH1 0xa0
00000305: PUSH1 0x02
00000307: EXP
00000308: SUB
00000309: PUSH1 0x04
0000030b: CALLDATALOAD
0000030c: DUP2
0000030d: AND
0000030e: SWAP1
0000030f: PUSH1 0x24
00000311: CALLDATALOAD
00000312: AND
00000313: PUSH1 0x44
00000315: CALLDATALOAD
00000316: PUSH2 0x0a44
00000319: JUMP
0000031a: JUMPDEST
0000031b: PUSH32 0x150b7a0200000000000000000000000000000000000000000000000000000000
0000033c: SWAP6
0000033d: SWAP5
0000033e: POP
0000033f: POP
00000340: POP
00000341: POP
00000342: POP
00000343: JUMP
00000344: JUMPDEST
00000345: PUSH1 0x01
00000347: SLOAD
00000348: PUSH1 0x00
0000034a: SWAP1
0000034b: DUP2
0000034c: SWAP1
0000034d: DUP2
0000034e: SWAP1
0000034f: DUP2
00000350: SWAP1
00000351: PUSH1 0x01
00000353: PUSH1 0xa0
00000355: PUSH1 0x02
00000357: EXP
00000358: SUB
00000359: AND
0000035a: CALLER
0000035b: EQ
0000035c: PUSH2 0x0364
0000035f: JUMPI
00000360: PUSH1 0x00
00000362: DUP1
00000363: REVERT
00000364: JUMPDEST
00000365: PUSH1 0x00
00000367: DUP6
00000368: DUP2
00000369: MSTORE
0000036a: PUSH1 0x02
0000036c: PUSH1 0x20
0000036e: MSTORE
0000036f: PUSH1 0x40
00000371: SWAP1
00000372: KECCAK256
00000373: DUP1
00000374: SLOAD
00000375: SWAP1
00000376: SWAP5
00000377: POP
00000378: PUSH1 0x01
0000037a: PUSH1 0xa0
0000037c: PUSH1 0x02
0000037e: EXP
0000037f: SUB
00000380: AND
00000381: SWAP3
00000382: POP
00000383: DUP3
00000384: ISZERO
00000385: ISZERO
00000386: PUSH2 0x038e
00000389: JUMPI
0000038a: PUSH1 0x00
0000038c: DUP1
0000038d: REVERT
0000038e: JUMPDEST
0000038f: PUSH1 0x01
00000391: DUP1
00000392: DUP6
00000393: ADD
00000394: SLOAD
00000395: PUSH1 0x00
00000397: DUP8
00000398: DUP2
00000399: MSTORE
0000039a: PUSH1 0x02
0000039c: PUSH1 0x20
0000039e: MSTORE
0000039f: PUSH1 0x40
000003a1: DUP1
000003a2: DUP3
000003a3: KECCAK256
000003a4: DUP1
000003a5: SLOAD
000003a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003bb: NOT
000003bc: AND
000003bd: DUP2
000003be: SSTORE
000003bf: SWAP1
000003c0: SWAP4
000003c1: ADD
000003c2: DUP2
000003c3: SWAP1
000003c4: SSTORE
000003c5: SWAP2
000003c6: MLOAD
000003c7: SWAP1
000003c8: SWAP4
000003c9: POP
000003ca: PUSH1 0x01
000003cc: PUSH1 0xa0
000003ce: PUSH1 0x02
000003d0: EXP
000003d1: SUB
000003d2: DUP6
000003d3: AND
000003d4: SWAP2
000003d5: DUP5
000003d6: ISZERO
000003d7: PUSH2 0x08fc
000003da: MUL
000003db: SWAP2
000003dc: DUP6
000003dd: SWAP2
000003de: DUP2
000003df: DUP2
000003e0: DUP2
000003e1: DUP6
000003e2: DUP9
000003e3: DUP9
000003e4: CALL
000003e5: SWAP4
000003e6: POP
000003e7: POP
000003e8: POP
000003e9: POP
000003ea: SWAP1
000003eb: POP
000003ec: DUP1
000003ed: ISZERO
000003ee: PUSH2 0x043a
000003f1: JUMPI
000003f2: PUSH1 0x40
000003f4: DUP1
000003f5: MLOAD
000003f6: DUP7
000003f7: DUP2
000003f8: MSTORE
000003f9: PUSH1 0x01
000003fb: PUSH1 0xa0
000003fd: PUSH1 0x02
000003ff: EXP
00000400: SUB
00000401: DUP6
00000402: AND
00000403: PUSH1 0x20
00000405: DUP3
00000406: ADD
00000407: MSTORE
00000408: DUP1
00000409: DUP3
0000040a: ADD
0000040b: DUP5
0000040c: SWAP1
0000040d: MSTORE
0000040e: SWAP1
0000040f: MLOAD
00000410: PUSH32 0xa60bf978b126b18592f5814e3f5a8a515c7398d434c3e3c80509c2cabe29a316
00000431: SWAP2
00000432: DUP2
00000433: SWAP1
00000434: SUB
00000435: PUSH1 0x60
00000437: ADD
00000438: SWAP1
00000439: LOG1
0000043a: JUMPDEST
0000043b: POP
0000043c: POP
0000043d: POP
0000043e: POP
0000043f: POP
00000440: JUMP
00000441: JUMPDEST
00000442: PUSH1 0x01
00000444: SLOAD
00000445: PUSH1 0x01
00000447: PUSH1 0xa0
00000449: PUSH1 0x02
0000044b: EXP
0000044c: SUB
0000044d: AND
0000044e: DUP2
0000044f: JUMP
00000450: JUMPDEST
00000451: PUSH1 0x02
00000453: PUSH1 0x20
00000455: MSTORE
00000456: PUSH1 0x00
00000458: SWAP1
00000459: DUP2
0000045a: MSTORE
0000045b: PUSH1 0x40
0000045d: SWAP1
0000045e: KECCAK256
0000045f: DUP1
00000460: SLOAD
00000461: PUSH1 0x01
00000463: SWAP1
00000464: SWAP2
00000465: ADD
00000466: SLOAD
00000467: PUSH1 0x01
00000469: PUSH1 0xa0
0000046b: PUSH1 0x02
0000046d: EXP
0000046e: SUB
0000046f: SWAP1
00000470: SWAP2
00000471: AND
00000472: SWAP1
00000473: DUP3
00000474: JUMP
00000475: JUMPDEST
00000476: PUSH1 0x04
00000478: PUSH1 0x20
0000047a: MSTORE
0000047b: PUSH1 0x00
0000047d: SWAP1
0000047e: DUP2
0000047f: MSTORE
00000480: PUSH1 0x40
00000482: SWAP1
00000483: KECCAK256
00000484: DUP1
00000485: SLOAD
00000486: PUSH1 0x01
00000488: DUP3
00000489: ADD
0000048a: SLOAD
0000048b: PUSH1 0x02
0000048d: SWAP1
0000048e: SWAP3
0000048f: ADD
00000490: SLOAD
00000491: PUSH1 0x01
00000493: PUSH1 0xa0
00000495: PUSH1 0x02
00000497: EXP
00000498: SUB
00000499: SWAP2
0000049a: DUP3
0000049b: AND
0000049c: SWAP3
0000049d: SWAP1
0000049e: SWAP2
0000049f: AND
000004a0: SWAP1
000004a1: DUP4
000004a2: JUMP
000004a3: JUMPDEST
000004a4: PUSH1 0x00
000004a6: DUP1
000004a7: PUSH1 0x01
000004a9: PUSH1 0xa0
000004ab: PUSH1 0x02
000004ad: EXP
000004ae: SUB
000004af: DUP5
000004b0: AND
000004b1: ISZERO
000004b2: ISZERO
000004b3: PUSH2 0x04bb
000004b6: JUMPI
000004b7: PUSH1 0x00
000004b9: DUP1
000004ba: REVERT
000004bb: JUMPDEST
000004bc: PUSH2 0x04c3
000004bf: PUSH2 0x0c0e
000004c2: JUMP
000004c3: JUMPDEST
000004c4: PUSH1 0x40
000004c6: DUP1
000004c7: MLOAD
000004c8: PUSH1 0x20
000004ca: DUP1
000004cb: DUP3
000004cc: ADD
000004cd: DUP5
000004ce: SWAP1
000004cf: MSTORE
000004d0: PUSH32 0x526327f200000000000000000000000000000000000000000000000000000000
000004f1: DUP3
000004f2: DUP5
000004f3: ADD
000004f4: MSTORE
000004f5: PUSH13 0x01000000000000000000000000
00000503: PUSH1 0x01
00000505: PUSH1 0xa0
00000507: PUSH1 0x02
00000509: EXP
0000050a: SUB
0000050b: DUP10
0000050c: AND
0000050d: MUL
0000050e: PUSH1 0x44
00000510: DUP4
00000511: ADD
00000512: MSTORE
00000513: PUSH1 0x58
00000515: DUP1
00000516: DUP4
00000517: ADD
00000518: DUP9
00000519: SWAP1
0000051a: MSTORE
0000051b: DUP4
0000051c: MLOAD
0000051d: DUP1
0000051e: DUP5
0000051f: SUB
00000520: SWAP1
00000521: SWAP2
00000522: ADD
00000523: DUP2
00000524: MSTORE
00000525: PUSH1 0x78
00000527: SWAP1
00000528: SWAP3
00000529: ADD
0000052a: SWAP3
0000052b: DUP4
0000052c: SWAP1
0000052d: MSTORE
0000052e: DUP2
0000052f: MLOAD
00000530: SWAP4
00000531: SWAP5
00000532: POP
00000533: SWAP1
00000534: SWAP3
00000535: DUP3
00000536: SWAP2
00000537: DUP5
00000538: ADD
00000539: SWAP1
0000053a: DUP1
0000053b: DUP4
0000053c: DUP4
0000053d: JUMPDEST
0000053e: PUSH1 0x20
00000540: DUP4
00000541: LT
00000542: PUSH2 0x055c
00000545: JUMPI
00000546: DUP1
00000547: MLOAD
00000548: DUP3
00000549: MSTORE
0000054a: PUSH1 0x1f
0000054c: NOT
0000054d: SWAP1
0000054e: SWAP3
0000054f: ADD
00000550: SWAP2
00000551: PUSH1 0x20
00000553: SWAP2
00000554: DUP3
00000555: ADD
00000556: SWAP2
00000557: ADD
00000558: PUSH2 0x053d
0000055b: JUMP
0000055c: JUMPDEST
0000055d: MLOAD
0000055e: DUP2
0000055f: MLOAD
00000560: PUSH1 0x00
00000562: NOT
00000563: PUSH1 0x20
00000565: SWAP5
00000566: DUP6
00000567: SUB
00000568: PUSH2 0x0100
0000056b: EXP
0000056c: ADD
0000056d: SWAP1
0000056e: DUP2
0000056f: AND
00000570: SWAP1
00000571: NOT
00000572: SWAP1
00000573: SWAP2
00000574: AND
00000575: OR
00000576: SWAP1
00000577: MSTORE
00000578: PUSH1 0x40
0000057a: DUP1
0000057b: MLOAD
0000057c: SWAP5
0000057d: SWAP1
0000057e: SWAP3
0000057f: ADD
00000580: DUP5
00000581: SWAP1
00000582: SUB
00000583: DUP5
00000584: KECCAK256
00000585: DUP5
00000586: DUP4
00000587: ADD
00000588: DUP4
00000589: MSTORE
0000058a: PUSH1 0x01
0000058c: PUSH1 0xa0
0000058e: PUSH1 0x02
00000590: EXP
00000591: SUB
00000592: DUP12
00000593: DUP2
00000594: AND
00000595: DUP1
00000596: DUP8
00000597: MSTORE
00000598: DUP7
00000599: DUP5
0000059a: ADD
0000059b: DUP13
0000059c: DUP2
0000059d: MSTORE
0000059e: PUSH1 0x00
000005a0: DUP5
000005a1: DUP2
000005a2: MSTORE
000005a3: PUSH1 0x02
000005a5: DUP7
000005a6: MSTORE
000005a7: DUP7
000005a8: DUP2
000005a9: KECCAK256
000005aa: SWAP9
000005ab: MLOAD
000005ac: DUP10
000005ad: SLOAD
000005ae: SWAP5
000005af: AND
000005b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005c5: NOT
000005c6: SWAP1
000005c7: SWAP5
000005c8: AND
000005c9: SWAP4
000005ca: SWAP1
000005cb: SWAP4
000005cc: OR
000005cd: DUP9
000005ce: SSTORE
000005cf: MLOAD
000005d0: PUSH1 0x01
000005d2: SWAP1
000005d3: SWAP8
000005d4: ADD
000005d5: SWAP7
000005d6: SWAP1
000005d7: SWAP7
000005d8: SSTORE
000005d9: SLOAD
000005da: DUP4
000005db: MLOAD
000005dc: DUP3
000005dd: DUP2
000005de: MSTORE
000005df: SWAP3
000005e0: DUP4
000005e1: ADD
000005e2: MSTORE
000005e3: DUP2
000005e4: DUP4
000005e5: ADD
000005e6: SWAP5
000005e7: SWAP1
000005e8: SWAP5
000005e9: MSTORE
000005ea: PUSH1 0x60
000005ec: DUP2
000005ed: ADD
000005ee: DUP10
000005ef: SWAP1
000005f0: MSTORE
000005f1: SWAP1
000005f2: MLOAD
000005f3: SWAP3
000005f4: SWAP7
000005f5: POP
000005f6: PUSH32 0xeb834e5a149cb8e47021251c336929a69cf86727196572529a29bf1b3a22d35a
00000617: SWAP5
00000618: POP
00000619: DUP3
0000061a: SWAP1
0000061b: SUB
0000061c: PUSH1 0x80
0000061e: ADD
0000061f: SWAP3
00000620: POP
00000621: POP
00000622: LOG1
00000623: POP
00000624: SWAP3
00000625: SWAP2
00000626: POP
00000627: POP
00000628: JUMP
00000629: JUMPDEST
0000062a: PUSH1 0x01
0000062c: SLOAD
0000062d: PUSH1 0x00
0000062f: SWAP1
00000630: DUP2
00000631: SWAP1
00000632: DUP2
00000633: SWAP1
00000634: DUP2
00000635: SWAP1
00000636: DUP2
00000637: SWAP1
00000638: PUSH1 0x01
0000063a: PUSH1 0xa0
0000063c: PUSH1 0x02
0000063e: EXP
0000063f: SUB
00000640: AND
00000641: CALLER
00000642: EQ
00000643: PUSH2 0x064b
00000646: JUMPI
00000647: PUSH1 0x00
00000649: DUP1
0000064a: REVERT
0000064b: JUMPDEST
0000064c: PUSH1 0x00
0000064e: DUP7
0000064f: DUP2
00000650: MSTORE
00000651: PUSH1 0x04
00000653: PUSH1 0x20
00000655: MSTORE
00000656: PUSH1 0x40
00000658: SWAP1
00000659: KECCAK256
0000065a: DUP1
0000065b: SLOAD
0000065c: SWAP1
0000065d: SWAP6
0000065e: POP
0000065f: PUSH1 0x01
00000661: PUSH1 0xa0
00000663: PUSH1 0x02
00000665: EXP
00000666: SUB
00000667: AND
00000668: SWAP4
00000669: POP
0000066a: DUP4
0000066b: ISZERO
0000066c: ISZERO
0000066d: PUSH2 0x0675
00000670: JUMPI
00000671: PUSH1 0x00
00000673: DUP1
00000674: REVERT
00000675: JUMPDEST
00000676: PUSH1 0x01
00000678: DUP1
00000679: DUP7
0000067a: ADD
0000067b: SLOAD
0000067c: PUSH1 0x02
0000067e: DUP1
0000067f: DUP9
00000680: ADD
00000681: SLOAD
00000682: PUSH1 0x00
00000684: DUP11
00000685: DUP2
00000686: MSTORE
00000687: PUSH1 0x04
00000689: PUSH1 0x20
0000068b: MSTORE
0000068c: PUSH1 0x40
0000068e: DUP2
0000068f: KECCAK256
00000690: DUP1
00000691: SLOAD
00000692: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006a7: NOT
000006a8: SWAP1
000006a9: DUP2
000006aa: AND
000006ab: DUP3
000006ac: SSTORE
000006ad: SWAP6
000006ae: DUP2
000006af: ADD
000006b0: DUP1
000006b1: SLOAD
000006b2: SWAP1
000006b3: SWAP7
000006b4: AND
000006b5: SWAP1
000006b6: SWAP6
000006b7: SSTORE
000006b8: SWAP4
000006b9: SWAP1
000006ba: SWAP2
000006bb: ADD
000006bc: SWAP3
000006bd: SWAP1
000006be: SWAP3
000006bf: SSTORE
000006c0: PUSH1 0x01
000006c2: PUSH1 0xa0
000006c4: PUSH1 0x02
000006c6: EXP
000006c7: SUB
000006c8: AND
000006c9: SWAP4
000006ca: POP
000006cb: SWAP2
000006cc: POP
000006cd: PUSH2 0x06d7
000006d0: DUP5
000006d1: DUP5
000006d2: DUP5
000006d3: PUSH2 0x0cb7
000006d6: JUMP
000006d7: JUMPDEST
000006d8: SWAP1
000006d9: POP
000006da: DUP1
000006db: ISZERO
000006dc: PUSH2 0x0730
000006df: JUMPI
000006e0: PUSH1 0x40
000006e2: DUP1
000006e3: MLOAD
000006e4: DUP8
000006e5: DUP2
000006e6: MSTORE
000006e7: PUSH1 0x01
000006e9: PUSH1 0xa0
000006eb: PUSH1 0x02
000006ed: EXP
000006ee: SUB
000006ef: DUP1
000006f0: DUP8
000006f1: AND
000006f2: PUSH1 0x20
000006f4: DUP4
000006f5: ADD
000006f6: MSTORE
000006f7: DUP6
000006f8: AND
000006f9: DUP2
000006fa: DUP4
000006fb: ADD
000006fc: MSTORE
000006fd: PUSH1 0x60
000006ff: DUP2
00000700: ADD
00000701: DUP5
00000702: SWAP1
00000703: MSTORE
00000704: SWAP1
00000705: MLOAD
00000706: PUSH32 0xeb1b982af03fc8d04e3d1ec453261a3fa4dad85540be27231a6e729d9c34f1b7
00000727: SWAP2
00000728: DUP2
00000729: SWAP1
0000072a: SUB
0000072b: PUSH1 0x80
0000072d: ADD
0000072e: SWAP1
0000072f: LOG1
00000730: JUMPDEST
00000731: POP
00000732: POP
00000733: POP
00000734: POP
00000735: POP
00000736: POP
00000737: JUMP
00000738: JUMPDEST
00000739: PUSH1 0x00
0000073b: DUP1
0000073c: PUSH1 0x01
0000073e: PUSH1 0xa0
00000740: PUSH1 0x02
00000742: EXP
00000743: SUB
00000744: DUP6
00000745: AND
00000746: ISZERO
00000747: ISZERO
00000748: PUSH2 0x0750
0000074b: JUMPI
0000074c: PUSH1 0x00
0000074e: DUP1
0000074f: REVERT
00000750: JUMPDEST
00000751: PUSH1 0x01
00000753: PUSH1 0xa0
00000755: PUSH1 0x02
00000757: EXP
00000758: SUB
00000759: DUP5
0000075a: AND
0000075b: ISZERO
0000075c: ISZERO
0000075d: PUSH2 0x0765
00000760: JUMPI
00000761: PUSH1 0x00
00000763: DUP1
00000764: REVERT
00000765: JUMPDEST
00000766: PUSH2 0x076d
00000769: PUSH2 0x0c0e
0000076c: JUMP
0000076d: JUMPDEST
0000076e: PUSH1 0x40
00000770: DUP1
00000771: MLOAD
00000772: PUSH1 0x20
00000774: DUP1
00000775: DUP3
00000776: ADD
00000777: DUP5
00000778: SWAP1
00000779: MSTORE
0000077a: PUSH32 0x60de3a2600000000000000000000000000000000000000000000000000000000
0000079b: DUP3
0000079c: DUP5
0000079d: ADD
0000079e: MSTORE
0000079f: PUSH13 0x01000000000000000000000000
000007ad: PUSH1 0x01
000007af: PUSH1 0xa0
000007b1: PUSH1 0x02
000007b3: EXP
000007b4: SUB
000007b5: DUP1
000007b6: DUP12
000007b7: AND
000007b8: DUP3
000007b9: MUL
000007ba: PUSH1 0x44
000007bc: DUP6
000007bd: ADD
000007be: MSTORE
000007bf: DUP10
000007c0: AND
000007c1: MUL
000007c2: PUSH1 0x58
000007c4: DUP4
000007c5: ADD
000007c6: MSTORE
000007c7: PUSH1 0x6c
000007c9: DUP1
000007ca: DUP4
000007cb: ADD
000007cc: DUP9
000007cd: SWAP1
000007ce: MSTORE
000007cf: DUP4
000007d0: MLOAD
000007d1: DUP1
000007d2: DUP5
000007d3: SUB
000007d4: SWAP1
000007d5: SWAP2
000007d6: ADD
000007d7: DUP2
000007d8: MSTORE
000007d9: PUSH1 0x8c
000007db: SWAP1
000007dc: SWAP3
000007dd: ADD
000007de: SWAP3
000007df: DUP4
000007e0: SWAP1
000007e1: MSTORE
000007e2: DUP2
000007e3: MLOAD
000007e4: SWAP4
000007e5: SWAP5
000007e6: POP
000007e7: SWAP1
000007e8: SWAP3
000007e9: DUP3
000007ea: SWAP2
000007eb: DUP5
000007ec: ADD
000007ed: SWAP1
000007ee: DUP1
000007ef: DUP4
000007f0: DUP4
000007f1: JUMPDEST
000007f2: PUSH1 0x20
000007f4: DUP4
000007f5: LT
000007f6: PUSH2 0x0810
000007f9: JUMPI
000007fa: DUP1
000007fb: MLOAD
000007fc: DUP3
000007fd: MSTORE
000007fe: PUSH1 0x1f
00000800: NOT
00000801: SWAP1
00000802: SWAP3
00000803: ADD
00000804: SWAP2
00000805: PUSH1 0x20
00000807: SWAP2
00000808: DUP3
00000809: ADD
0000080a: SWAP2
0000080b: ADD
0000080c: PUSH2 0x07f1
0000080f: JUMP
00000810: JUMPDEST
00000811: MLOAD
00000812: DUP2
00000813: MLOAD
00000814: PUSH1 0x00
00000816: NOT
00000817: PUSH1 0x20
00000819: SWAP5
0000081a: DUP6
0000081b: SUB
0000081c: PUSH2 0x0100
0000081f: EXP
00000820: ADD
00000821: SWAP1
00000822: DUP2
00000823: AND
00000824: SWAP1
00000825: NOT
00000826: SWAP2
00000827: SWAP1
00000828: SWAP2
00000829: AND
0000082a: OR
0000082b: SWAP1
0000082c: MSTORE
0000082d: PUSH1 0x40
0000082f: DUP1
00000830: MLOAD
00000831: SWAP5
00000832: SWAP1
00000833: SWAP3
00000834: ADD
00000835: DUP5
00000836: SWAP1
00000837: SUB
00000838: DUP5
00000839: KECCAK256
0000083a: PUSH1 0x60
0000083c: DUP1
0000083d: DUP7
0000083e: ADD
0000083f: DUP5
00000840: MSTORE
00000841: PUSH1 0x01
00000843: PUSH1 0xa0
00000845: PUSH1 0x02
00000847: EXP
00000848: SUB
00000849: DUP1
0000084a: DUP15
0000084b: AND
0000084c: DUP1
0000084d: DUP9
0000084e: MSTORE
0000084f: DUP14
00000850: DUP3
00000851: AND
00000852: DUP9
00000853: DUP7
00000854: ADD
00000855: DUP2
00000856: DUP2
00000857: MSTORE
00000858: DUP10
00000859: DUP9
0000085a: ADD
0000085b: DUP16
0000085c: DUP2
0000085d: MSTORE
0000085e: PUSH1 0x00
00000860: DUP8
00000861: DUP2
00000862: MSTORE
00000863: PUSH1 0x04
00000865: DUP10
00000866: MSTORE
00000867: DUP10
00000868: DUP2
00000869: KECCAK256
0000086a: SWAP12
0000086b: MLOAD
0000086c: DUP13
0000086d: SLOAD
0000086e: SWAP1
0000086f: DUP8
00000870: AND
00000871: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000886: NOT
00000887: SWAP2
00000888: DUP3
00000889: AND
0000088a: OR
0000088b: DUP14
0000088c: SSTORE
0000088d: SWAP3
0000088e: MLOAD
0000088f: PUSH1 0x01
00000891: DUP14
00000892: ADD
00000893: DUP1
00000894: SLOAD
00000895: SWAP2
00000896: SWAP1
00000897: SWAP8
00000898: AND
00000899: SWAP4
0000089a: AND
0000089b: SWAP3
0000089c: SWAP1
0000089d: SWAP3
0000089e: OR
0000089f: SWAP1
000008a0: SWAP5
000008a1: SSTORE
000008a2: SWAP3
000008a3: MLOAD
000008a4: PUSH1 0x02
000008a6: SWAP1
000008a7: SWAP10
000008a8: ADD
000008a9: SWAP9
000008aa: SWAP1
000008ab: SWAP9
000008ac: SSTORE
000008ad: SWAP1
000008ae: SLOAD
000008af: DUP6
000008b0: MLOAD
000008b1: DUP5
000008b2: DUP2
000008b3: MSTORE
000008b4: SWAP5
000008b5: DUP6
000008b6: ADD
000008b7: MSTORE
000008b8: DUP4
000008b9: DUP6
000008ba: ADD
000008bb: MSTORE
000008bc: DUP3
000008bd: ADD
000008be: SWAP5
000008bf: SWAP1
000008c0: SWAP5
000008c1: MSTORE
000008c2: PUSH1 0x80
000008c4: DUP2
000008c5: ADD
000008c6: DUP10
000008c7: SWAP1
000008c8: MSTORE
000008c9: SWAP1
000008ca: MLOAD
000008cb: SWAP3
000008cc: SWAP7
000008cd: POP
000008ce: PUSH32 0x02f609a1c03b13108a8069c96fbcfb080db656ce3f52dfdaa9af431e2d71dc65
000008ef: SWAP5
000008f0: POP
000008f1: DUP3
000008f2: SWAP1
000008f3: SUB
000008f4: PUSH1 0xa0
000008f6: ADD
000008f7: SWAP3
000008f8: POP
000008f9: POP
000008fa: LOG1
000008fb: POP
000008fc: SWAP4
000008fd: SWAP3
000008fe: POP
000008ff: POP
00000900: POP
00000901: JUMP
00000902: JUMPDEST
00000903: PUSH1 0x01
00000905: SLOAD
00000906: PUSH1 0x00
00000908: SWAP1
00000909: DUP2
0000090a: SWAP1
0000090b: DUP2
0000090c: SWAP1
0000090d: DUP2
0000090e: SWAP1
0000090f: DUP2
00000910: SWAP1
00000911: PUSH1 0x01
00000913: PUSH1 0xa0
00000915: PUSH1 0x02
00000917: EXP
00000918: SUB
00000919: AND
0000091a: CALLER
0000091b: EQ
0000091c: PUSH2 0x0924
0000091f: JUMPI
00000920: PUSH1 0x00
00000922: DUP1
00000923: REVERT
00000924: JUMPDEST
00000925: PUSH1 0x00
00000927: DUP7
00000928: DUP2
00000929: MSTORE
0000092a: PUSH1 0x03
0000092c: PUSH1 0x20
0000092e: MSTORE
0000092f: PUSH1 0x40
00000931: SWAP1
00000932: KECCAK256
00000933: DUP1
00000934: SLOAD
00000935: SWAP1
00000936: SWAP6
00000937: POP
00000938: PUSH1 0x01
0000093a: PUSH1 0xa0
0000093c: PUSH1 0x02
0000093e: EXP
0000093f: SUB
00000940: AND
00000941: SWAP4
00000942: POP
00000943: DUP4
00000944: ISZERO
00000945: ISZERO
00000946: PUSH2 0x094e
00000949: JUMPI
0000094a: PUSH1 0x00
0000094c: DUP1
0000094d: REVERT
0000094e: JUMPDEST
0000094f: PUSH1 0x01
00000951: DUP1
00000952: DUP7
00000953: ADD
00000954: SLOAD
00000955: PUSH1 0x02
00000957: DUP1
00000958: DUP9
00000959: ADD
0000095a: SLOAD
0000095b: PUSH1 0x00
0000095d: DUP11
0000095e: DUP2
0000095f: MSTORE
00000960: PUSH1 0x03
00000962: PUSH1 0x20
00000964: MSTORE
00000965: PUSH1 0x40
00000967: DUP2
00000968: KECCAK256
00000969: DUP1
0000096a: SLOAD
0000096b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000980: NOT
00000981: SWAP1
00000982: DUP2
00000983: AND
00000984: DUP3
00000985: SSTORE
00000986: SWAP6
00000987: DUP2
00000988: ADD
00000989: DUP1
0000098a: SLOAD
0000098b: SWAP1
0000098c: SWAP7
0000098d: AND
0000098e: SWAP1
0000098f: SWAP6
00000990: SSTORE
00000991: SWAP4
00000992: SWAP1
00000993: SWAP2
00000994: ADD
00000995: SWAP3
00000996: SWAP1
00000997: SWAP3
00000998: SSTORE
00000999: PUSH1 0x01
0000099b: PUSH1 0xa0
0000099d: PUSH1 0x02
0000099f: EXP
000009a0: SUB
000009a1: AND
000009a2: SWAP4
000009a3: POP
000009a4: SWAP2
000009a5: POP
000009a6: PUSH2 0x09b0
000009a9: DUP5
000009aa: DUP5
000009ab: DUP5
000009ac: PUSH2 0x0d27
000009af: JUMP
000009b0: JUMPDEST
000009b1: SWAP1
000009b2: POP
000009b3: DUP1
000009b4: ISZERO
000009b5: PUSH2 0x0730
000009b8: JUMPI
000009b9: PUSH1 0x40
000009bb: DUP1
000009bc: MLOAD
000009bd: DUP8
000009be: DUP2
000009bf: MSTORE
000009c0: PUSH1 0x01
000009c2: PUSH1 0xa0
000009c4: PUSH1 0x02
000009c6: EXP
000009c7: SUB
000009c8: DUP1
000009c9: DUP8
000009ca: AND
000009cb: PUSH1 0x20
000009cd: DUP4
000009ce: ADD
000009cf: MSTORE
000009d0: DUP6
000009d1: AND
000009d2: DUP2
000009d3: DUP4
000009d4: ADD
000009d5: MSTORE
000009d6: PUSH1 0x60
000009d8: DUP2
000009d9: ADD
000009da: DUP5
000009db: SWAP1
000009dc: MSTORE
000009dd: SWAP1
000009de: MLOAD
000009df: PUSH32 0x05b708c886ad83ae717f113aa484cdf529c07892cecc7000be8e7e876a841d1b
00000a00: SWAP2
00000a01: DUP2
00000a02: SWAP1
00000a03: SUB
00000a04: PUSH1 0x80
00000a06: ADD
00000a07: SWAP1
00000a08: LOG1
00000a09: POP
00000a0a: POP
00000a0b: POP
00000a0c: POP
00000a0d: POP
00000a0e: POP
00000a0f: JUMP
00000a10: JUMPDEST
00000a11: PUSH1 0x00
00000a13: SLOAD
00000a14: DUP2
00000a15: JUMP
00000a16: JUMPDEST
00000a17: PUSH1 0x03
00000a19: PUSH1 0x20
00000a1b: MSTORE
00000a1c: PUSH1 0x00
00000a1e: SWAP1
00000a1f: DUP2
00000a20: MSTORE
00000a21: PUSH1 0x40
00000a23: SWAP1
00000a24: KECCAK256
00000a25: DUP1
00000a26: SLOAD
00000a27: PUSH1 0x01
00000a29: DUP3
00000a2a: ADD
00000a2b: SLOAD
00000a2c: PUSH1 0x02
00000a2e: SWAP1
00000a2f: SWAP3
00000a30: ADD
00000a31: SLOAD
00000a32: PUSH1 0x01
00000a34: PUSH1 0xa0
00000a36: PUSH1 0x02
00000a38: EXP
00000a39: SUB
00000a3a: SWAP2
00000a3b: DUP3
00000a3c: AND
00000a3d: SWAP3
00000a3e: SWAP1
00000a3f: SWAP2
00000a40: AND
00000a41: SWAP1
00000a42: DUP4
00000a43: JUMP
00000a44: JUMPDEST
00000a45: PUSH1 0x00
00000a47: DUP1
00000a48: PUSH1 0x01
00000a4a: PUSH1 0xa0
00000a4c: PUSH1 0x02
00000a4e: EXP
00000a4f: SUB
00000a50: DUP6
00000a51: AND
00000a52: ISZERO
00000a53: ISZERO
00000a54: PUSH2 0x0a5c
00000a57: JUMPI
00000a58: PUSH1 0x00
00000a5a: DUP1
00000a5b: REVERT
00000a5c: JUMPDEST
00000a5d: PUSH1 0x01
00000a5f: PUSH1 0xa0
00000a61: PUSH1 0x02
00000a63: EXP
00000a64: SUB
00000a65: DUP5
00000a66: AND
00000a67: ISZERO
00000a68: ISZERO
00000a69: PUSH2 0x0a71
00000a6c: JUMPI
00000a6d: PUSH1 0x00
00000a6f: DUP1
00000a70: REVERT
00000a71: JUMPDEST
00000a72: PUSH2 0x0a79
00000a75: PUSH2 0x0c0e
00000a78: JUMP
00000a79: JUMPDEST
00000a7a: PUSH1 0x40
00000a7c: DUP1
00000a7d: MLOAD
00000a7e: PUSH1 0x20
00000a80: DUP1
00000a81: DUP3
00000a82: ADD
00000a83: DUP5
00000a84: SWAP1
00000a85: MSTORE
00000a86: PUSH32 0xecf644f100000000000000000000000000000000000000000000000000000000
00000aa7: DUP3
00000aa8: DUP5
00000aa9: ADD
00000aaa: MSTORE
00000aab: PUSH13 0x01000000000000000000000000
00000ab9: PUSH1 0x01
00000abb: PUSH1 0xa0
00000abd: PUSH1 0x02
00000abf: EXP
00000ac0: SUB
00000ac1: DUP1
00000ac2: DUP12
00000ac3: AND
00000ac4: DUP3
00000ac5: MUL
00000ac6: PUSH1 0x44
00000ac8: DUP6
00000ac9: ADD
00000aca: MSTORE
00000acb: DUP10
00000acc: AND
00000acd: MUL
00000ace: PUSH1 0x58
00000ad0: DUP4
00000ad1: ADD
00000ad2: MSTORE
00000ad3: PUSH1 0x6c
00000ad5: DUP1
00000ad6: DUP4
00000ad7: ADD
00000ad8: DUP9
00000ad9: SWAP1
00000ada: MSTORE
00000adb: DUP4
00000adc: MLOAD
00000add: DUP1
00000ade: DUP5
00000adf: SUB
00000ae0: SWAP1
00000ae1: SWAP2
00000ae2: ADD
00000ae3: DUP2
00000ae4: MSTORE
00000ae5: PUSH1 0x8c
00000ae7: SWAP1
00000ae8: SWAP3
00000ae9: ADD
00000aea: SWAP3
00000aeb: DUP4
00000aec: SWAP1
00000aed: MSTORE
00000aee: DUP2
00000aef: MLOAD
00000af0: SWAP4
00000af1: SWAP5
00000af2: POP
00000af3: SWAP1
00000af4: SWAP3
00000af5: DUP3
00000af6: SWAP2
00000af7: DUP5
00000af8: ADD
00000af9: SWAP1
00000afa: DUP1
00000afb: DUP4
00000afc: DUP4
00000afd: JUMPDEST
00000afe: PUSH1 0x20
00000b00: DUP4
00000b01: LT
00000b02: PUSH2 0x0b1c
00000b05: JUMPI
00000b06: DUP1
00000b07: MLOAD
00000b08: DUP3
00000b09: MSTORE
00000b0a: PUSH1 0x1f
00000b0c: NOT
00000b0d: SWAP1
00000b0e: SWAP3
00000b0f: ADD
00000b10: SWAP2
00000b11: PUSH1 0x20
00000b13: SWAP2
00000b14: DUP3
00000b15: ADD
00000b16: SWAP2
00000b17: ADD
00000b18: PUSH2 0x0afd
00000b1b: JUMP
00000b1c: JUMPDEST
00000b1d: MLOAD
00000b1e: DUP2
00000b1f: MLOAD
00000b20: PUSH1 0x00
00000b22: NOT
00000b23: PUSH1 0x20
00000b25: SWAP5
00000b26: DUP6
00000b27: SUB
00000b28: PUSH2 0x0100
00000b2b: EXP
00000b2c: ADD
00000b2d: SWAP1
00000b2e: DUP2
00000b2f: AND
00000b30: SWAP1
00000b31: NOT
00000b32: SWAP2
00000b33: SWAP1
00000b34: SWAP2
00000b35: AND
00000b36: OR
00000b37: SWAP1
00000b38: MSTORE
00000b39: PUSH1 0x40
00000b3b: DUP1
00000b3c: MLOAD
00000b3d: SWAP5
00000b3e: SWAP1
00000b3f: SWAP3
00000b40: ADD
00000b41: DUP5
00000b42: SWAP1
00000b43: SUB
00000b44: DUP5
00000b45: KECCAK256
00000b46: PUSH1 0x60
00000b48: DUP1
00000b49: DUP7
00000b4a: ADD
00000b4b: DUP5
00000b4c: MSTORE
00000b4d: PUSH1 0x01
00000b4f: PUSH1 0xa0
00000b51: PUSH1 0x02
00000b53: EXP
00000b54: SUB
00000b55: DUP1
00000b56: DUP15
00000b57: AND
00000b58: DUP1
00000b59: DUP9
00000b5a: MSTORE
00000b5b: DUP14
00000b5c: DUP3
00000b5d: AND
00000b5e: DUP9
00000b5f: DUP7
00000b60: ADD
00000b61: DUP2
00000b62: DUP2
00000b63: MSTORE
00000b64: DUP10
00000b65: DUP9
00000b66: ADD
00000b67: DUP16
00000b68: DUP2
00000b69: MSTORE
00000b6a: PUSH1 0x00
00000b6c: DUP8
00000b6d: DUP2
00000b6e: MSTORE
00000b6f: PUSH1 0x03
00000b71: DUP10
00000b72: MSTORE
00000b73: DUP10
00000b74: DUP2
00000b75: KECCAK256
00000b76: SWAP12
00000b77: MLOAD
00000b78: DUP13
00000b79: SLOAD
00000b7a: SWAP1
00000b7b: DUP8
00000b7c: AND
00000b7d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b92: NOT
00000b93: SWAP2
00000b94: DUP3
00000b95: AND
00000b96: OR
00000b97: DUP14
00000b98: SSTORE
00000b99: SWAP3
00000b9a: MLOAD
00000b9b: PUSH1 0x01
00000b9d: DUP14
00000b9e: ADD
00000b9f: DUP1
00000ba0: SLOAD
00000ba1: SWAP2
00000ba2: SWAP1
00000ba3: SWAP8
00000ba4: AND
00000ba5: SWAP4
00000ba6: AND
00000ba7: SWAP3
00000ba8: SWAP1
00000ba9: SWAP3
00000baa: OR
00000bab: SWAP1
00000bac: SWAP5
00000bad: SSTORE
00000bae: SWAP3
00000baf: MLOAD
00000bb0: PUSH1 0x02
00000bb2: SWAP1
00000bb3: SWAP10
00000bb4: ADD
00000bb5: SWAP9
00000bb6: SWAP1
00000bb7: SWAP9
00000bb8: SSTORE
00000bb9: SWAP1
00000bba: SLOAD
00000bbb: DUP6
00000bbc: MLOAD
00000bbd: DUP5
00000bbe: DUP2
00000bbf: MSTORE
00000bc0: SWAP5
00000bc1: DUP6
00000bc2: ADD
00000bc3: MSTORE
00000bc4: DUP4
00000bc5: DUP6
00000bc6: ADD
00000bc7: MSTORE
00000bc8: DUP3
00000bc9: ADD
00000bca: SWAP5
00000bcb: SWAP1
00000bcc: SWAP5
00000bcd: MSTORE
00000bce: PUSH1 0x80
00000bd0: DUP2
00000bd1: ADD
00000bd2: DUP10
00000bd3: SWAP1
00000bd4: MSTORE
00000bd5: SWAP1
00000bd6: MLOAD
00000bd7: SWAP3
00000bd8: SWAP7
00000bd9: POP
00000bda: PUSH32 0x620b1d454866258768f710e230edb1977b9f7349de5a633e5e34337d6e9fffab
00000bfb: SWAP5
00000bfc: POP
00000bfd: DUP3
00000bfe: SWAP1
00000bff: SUB
00000c00: PUSH1 0xa0
00000c02: ADD
00000c03: SWAP3
00000c04: POP
00000c05: POP
00000c06: LOG1
00000c07: POP
00000c08: SWAP4
00000c09: SWAP3
00000c0a: POP
00000c0b: POP
00000c0c: POP
00000c0d: JUMP
00000c0e: JUMPDEST
00000c0f: PUSH1 0x00
00000c11: DUP1
00000c12: SLOAD
00000c13: PUSH1 0x01
00000c15: ADD
00000c16: DUP1
00000c17: DUP3
00000c18: SSTORE
00000c19: PUSH1 0x40
00000c1b: DUP1
00000c1c: MLOAD
00000c1d: PUSH1 0x00
00000c1f: NOT
00000c20: NUMBER
00000c21: ADD
00000c22: BLOCKHASH
00000c23: PUSH1 0x20
00000c25: DUP1
00000c26: DUP4
00000c27: ADD
00000c28: SWAP2
00000c29: SWAP1
00000c2a: SWAP2
00000c2b: MSTORE
00000c2c: PUSH13 0x01000000000000000000000000
00000c3a: ADDRESS
00000c3b: MUL
00000c3c: DUP3
00000c3d: DUP5
00000c3e: ADD
00000c3f: MSTORE
00000c40: PUSH1 0x54
00000c42: DUP1
00000c43: DUP4
00000c44: ADD
00000c45: SWAP5
00000c46: SWAP1
00000c47: SWAP5
00000c48: MSTORE
00000c49: DUP3
00000c4a: MLOAD
00000c4b: DUP1
00000c4c: DUP4
00000c4d: SUB
00000c4e: SWAP1
00000c4f: SWAP5
00000c50: ADD
00000c51: DUP5
00000c52: MSTORE
00000c53: PUSH1 0x74
00000c55: SWAP1
00000c56: SWAP2
00000c57: ADD
00000c58: SWAP2
00000c59: DUP3
00000c5a: SWAP1
00000c5b: MSTORE
00000c5c: DUP3
00000c5d: MLOAD
00000c5e: DUP3
00000c5f: SWAP2
00000c60: DUP5
00000c61: ADD
00000c62: SWAP1
00000c63: DUP1
00000c64: DUP4
00000c65: DUP4
00000c66: JUMPDEST
00000c67: PUSH1 0x20
00000c69: DUP4
00000c6a: LT
00000c6b: PUSH2 0x0c85
00000c6e: JUMPI
00000c6f: DUP1
00000c70: MLOAD
00000c71: DUP3
00000c72: MSTORE
00000c73: PUSH1 0x1f
00000c75: NOT
00000c76: SWAP1
00000c77: SWAP3
00000c78: ADD
00000c79: SWAP2
00000c7a: PUSH1 0x20
00000c7c: SWAP2
00000c7d: DUP3
00000c7e: ADD
00000c7f: SWAP2
00000c80: ADD
00000c81: PUSH2 0x0c66
00000c84: JUMP
00000c85: JUMPDEST
00000c86: PUSH1 0x01
00000c88: DUP4
00000c89: PUSH1 0x20
00000c8b: SUB
00000c8c: PUSH2 0x0100
00000c8f: EXP
00000c90: SUB
00000c91: DUP1
00000c92: NOT
00000c93: DUP3
00000c94: MLOAD
00000c95: AND
00000c96: DUP2
00000c97: DUP5
00000c98: MLOAD
00000c99: AND
00000c9a: DUP1
00000c9b: DUP3
00000c9c: OR
00000c9d: DUP6
00000c9e: MSTORE
00000c9f: POP
00000ca0: POP
00000ca1: POP
00000ca2: POP
00000ca3: POP
00000ca4: POP
00000ca5: SWAP1
00000ca6: POP
00000ca7: ADD
00000ca8: SWAP2
00000ca9: POP
00000caa: POP
00000cab: PUSH1 0x40
00000cad: MLOAD
00000cae: DUP1
00000caf: SWAP2
00000cb0: SUB
00000cb1: SWAP1
00000cb2: KECCAK256
00000cb3: SWAP1
00000cb4: POP
00000cb5: SWAP1
00000cb6: JUMP
00000cb7: JUMPDEST
00000cb8: PUSH1 0x40
00000cba: DUP1
00000cbb: MLOAD
00000cbc: PUSH32 0x42842e0e00000000000000000000000000000000000000000000000000000000
00000cdd: DUP2
00000cde: MSTORE
00000cdf: ADDRESS
00000ce0: PUSH1 0x04
00000ce2: DUP3
00000ce3: ADD
00000ce4: MSTORE
00000ce5: PUSH1 0x01
00000ce7: PUSH1 0xa0
00000ce9: PUSH1 0x02
00000ceb: EXP
00000cec: SUB
00000ced: DUP5
00000cee: DUP2
00000cef: AND
00000cf0: PUSH1 0x24
00000cf2: DUP4
00000cf3: ADD
00000cf4: MSTORE
00000cf5: PUSH1 0x44
00000cf7: DUP3
00000cf8: ADD
00000cf9: DUP5
00000cfa: SWAP1
00000cfb: MSTORE
00000cfc: SWAP2
00000cfd: MLOAD
00000cfe: PUSH1 0x00
00000d00: SWAP3
00000d01: DUP7
00000d02: AND
00000d03: SWAP2
00000d04: PUSH4 0x42842e0e
00000d09: SWAP2
00000d0a: PUSH1 0x64
00000d0c: DUP1
00000d0d: DUP4
00000d0e: ADD
00000d0f: SWAP3
00000d10: DUP7
00000d11: SWAP3
00000d12: SWAP2
00000d13: SWAP1
00000d14: DUP3
00000d15: SWAP1
00000d16: SUB
00000d17: ADD
00000d18: DUP2
00000d19: DUP4
00000d1a: DUP8
00000d1b: GAS
00000d1c: CALL
00000d1d: SWAP8
00000d1e: SWAP7
00000d1f: POP
00000d20: POP
00000d21: POP
00000d22: POP
00000d23: POP
00000d24: POP
00000d25: POP
00000d26: JUMP
00000d27: JUMPDEST
00000d28: PUSH1 0x40
00000d2a: DUP1
00000d2b: MLOAD
00000d2c: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
00000d4d: DUP2
00000d4e: MSTORE
00000d4f: PUSH1 0x01
00000d51: PUSH1 0xa0
00000d53: PUSH1 0x02
00000d55: EXP
00000d56: SUB
00000d57: DUP5
00000d58: DUP2
00000d59: AND
00000d5a: PUSH1 0x04
00000d5c: DUP4
00000d5d: ADD
00000d5e: MSTORE
00000d5f: PUSH1 0x24
00000d61: DUP3
00000d62: ADD
00000d63: DUP5
00000d64: SWAP1
00000d65: MSTORE
00000d66: SWAP2
00000d67: MLOAD
00000d68: PUSH1 0x00
00000d6a: SWAP3
00000d6b: DUP7
00000d6c: AND
00000d6d: SWAP2
00000d6e: PUSH4 0xa9059cbb
00000d73: SWAP2
00000d74: PUSH1 0x44
00000d76: DUP1
00000d77: DUP4
00000d78: ADD
00000d79: SWAP3
00000d7a: DUP7
00000d7b: SWAP3
00000d7c: SWAP2
00000d7d: SWAP1
00000d7e: DUP3
00000d7f: SWAP1
00000d80: SUB
00000d81: ADD
00000d82: DUP2
00000d83: DUP4
00000d84: DUP8
00000d85: GAS
00000d86: CALL
00000d87: SWAP8
00000d88: SWAP7
00000d89: POP
00000d8a: POP
00000d8b: POP
00000d8c: POP
00000d8d: POP
00000d8e: POP
00000d8f: POP
00000d90: JUMP
00000d91: STOP
00000d92: LOG1
00000d93: PUSH6 0x627a7a723058
00000d9a: KECCAK256
00000d9b: CALLER
00000d9c: UNKNOWN(0xB4)
00000d9d: UNKNOWN(0xC8)
00000d9e: BYTE
00000d9f: UNKNOWN(0xC2)
00000da0: SWAP7
00000da1: UNKNOWN(0xB8)
00000da2: UNKNOWN(0xD1)
00000da3: UNKNOWN(0xBE)
00000da4: SWAP12
00000da5: CLZ
00000da6: OR
00000da7: PUSH18 0xaae54c63b57d9df3ff2a1dfb5202fc7d44c3
00000dba: UNKNOWN(0xEE)
00000dbb: STOP
00000dbc: UNKNOWN(0x29)

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x741ca11ccd2966b5e9ef4b2361e8852cf95fba2c3922e24398fa11118da3e7f1
call_targets: 0x0c8d88fc589c410a6e5d72535a1806f5169773fc
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x741ca11ccd2966b5e9ef4b2361e8852cf95fba2c3922e24398fa11118da3e7f1",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0c8d88fc589c410a6e5d72535a1806f5169773fc"
    ],
    "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": "0x150b7a02",
            "selector": "0x150b7a02",
            "calldata_variants": [
                "0x150b7a02",
                "0x150b7a020000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2c8ef841",
            "selector": "0x2c8ef841",
            "calldata_variants": [
                "0x2c8ef841",
                "0x2c8ef8410000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x375b74c3",
            "selector": "0x375b74c3",
            "calldata_variants": [
                "0x375b74c3",
                "0x375b74c30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x441e15d0",
            "selector": "0x441e15d0",
            "calldata_variants": [
                "0x441e15d0",
                "0x441e15d00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x522b3d17",
            "selector": "0x522b3d17",
            "calldata_variants": [
                "0x522b3d17",
                "0x522b3d170000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x526327f2",
            "selector": "0x526327f2",
            "calldata_variants": [
                "0x526327f2",
                "0x526327f20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5aa79b6b",
            "selector": "0x5aa79b6b",
            "calldata_variants": [
                "0x5aa79b6b",
                "0x5aa79b6b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x60de3a26",
            "selector": "0x60de3a26",
            "calldata_variants": [
                "0x60de3a26",
                "0x60de3a260000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 996,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3356,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3462,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [],
    "untrusted_call_count": 3
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x741ca11ccd2966b5e9ef4b2361e8852cf95fba2c3922e24398fa11118da3e7f1
call_targets: 0x0c8d88fc589c410a6e5d72535a1806f5169773fc
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x741ca11ccd2966b5e9ef4b2361e8852cf95fba2c3922e24398fa11118da3e7f1",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0c8d88fc589c410a6e5d72535a1806f5169773fc"
    ],
    "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": "0x150b7a02",
            "selector": "0x150b7a02",
            "calldata_variants": [
                "0x150b7a02",
                "0x150b7a020000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2c8ef841",
            "selector": "0x2c8ef841",
            "calldata_variants": [
                "0x2c8ef841",
                "0x2c8ef8410000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x375b74c3",
            "selector": "0x375b74c3",
            "calldata_variants": [
                "0x375b74c3",
                "0x375b74c30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x441e15d0",
            "selector": "0x441e15d0",
            "calldata_variants": [
                "0x441e15d0",
                "0x441e15d00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x522b3d17",
            "selector": "0x522b3d17",
            "calldata_variants": [
                "0x522b3d17",
                "0x522b3d170000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x526327f2",
            "selector": "0x526327f2",
            "calldata_variants": [
                "0x526327f2",
                "0x526327f20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5aa79b6b",
            "selector": "0x5aa79b6b",
            "calldata_variants": [
                "0x5aa79b6b",
                "0x5aa79b6b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x60de3a26",
            "selector": "0x60de3a26",
            "calldata_variants": [
                "0x60de3a26",
                "0x60de3a260000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 996,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3356,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3462,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": []
}