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

Analysis Run

1f0fb84a-3a72-4dcc-a50e-dd772a793302

complete
Chain ID
1
Address
Block Number
Created
Sun, Jan 4, 2026 7:46 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
31603 report.consolidate complete 1 / 1 3 months ago
111416 artifact.fetch complete 1 / 3 1 week ago
111417 tool.cast_disasm complete 1 / 3 1 week ago
111418 analysis.bundle complete 1 / 3 1 week ago
111419 capability.graph complete 1 / 3 1 week ago
111420 detector.run complete 1 / 3 1 week ago
111421 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
No concrete, exploitable value-extraction paths were identifiable from the runtime bytecode alone; external calls appear tied to stored recipients with state updates/owner checks, and no controllable delegatecall/selfdestruct or unrestricted value transfer was observed.
View stderr
[codex:282097] OpenAI Codex v0.77.0 (research preview)
[codex:282097] --------
[codex:282097] workdir: /tmp/codex-multi-5tc116lb
[codex:282097] model: gpt-5.2-codex
[codex:282097] provider: openai
[codex:282097] approval: never
[codex:282097] sandbox: read-only
[codex:282097] reasoning effort: xhigh
[codex:282097] reasoning summaries: auto
[codex:282097] session id: 019b87ec-a285-7d31-9739-17910d6f6b12
[codex:282097] --------
[codex:282097] user
[codex:282097] 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:282097] 
[codex:282097] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:282097] 
[codex:282097] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:282097] - Gas inefficiency, code quality, or best practices
[codex:282097] - Theoretical vulnerabilities without a clear extraction path
[codex:282097] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:282097] - Issues requiring social engineering or off-chain coordination
[codex:282097] 
[codex:282097] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:282097] - CALL/DELEGATECALL with controllable destination or calldata
[codex:282097] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:282097] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:282097] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:282097] - External calls before state updates (reentrancy)
[codex:282097] - SELFDESTRUCT with controllable beneficiary
[codex:282097] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:282097] 
[codex:282097] For each finding, you MUST explain:
[codex:282097] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:282097] 2. The concrete sequence of transactions to extract value
[codex:282097] 3. Why you believe this is exploitable (not just suspicious)
[codex:282097] 
[codex:282097] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:282097] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:282097] 
[codex:282097] Output MUST be valid JSON matching the provided schema.
[codex:282097] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:282097] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:282097] mcp startup: no servers
[codex:282097] 
[codex:282097] thinking
[codex:282097] **Preparing to read BYTECODE_BUNDLE.txt**
[codex:282097] exec
[codex:282097] /bin/bash -lc ls in /tmp/codex-multi-5tc116lb succeeded in 6ms:
[codex:282097] BYTECODE_BUNDLE.txt
[codex:282097] codex-output-schema.json
[codex:282097] exec
[codex:282097] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-5tc116lb succeeded in 5ms:
[codex:282097] Runtime bytecode bundle for best-effort auditing.
[codex:282097] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:282097] 
[codex:282097] FILE: runtime_bytecode.hex
[codex:282097] 0x6060604052600436106100cc5763ffffffff60e060020a60003504166308fec02d81146100ce57806314c2ab11146100f357806334b9384c1461010657806380776e2e146101255780638404c195146101745780639413f25c146101935780639592619c146101b25780639af608c9146101c5578063ae517b7914610221578063b49ff06014610234578063d8580a6f14610247578063dff90b5b1461025a578063e75f7ddb14610262578063f01fe69214610294578063fd8c06c6146102b6578063ffe7d95b146102d5575b005b34156100d957600080fd5b6100e16102e8565b60405190815260200160405180910390f35b34156100fe57600080fd5b6100e16102ee565b341561011157600080fd5b6100cc600160a060020a03600435166102f4565b341561013057600080fd5b610144600160a060020a0360043516610388565b604051600160a060020a039093168352602083019190915215156040808301919091526060909101905180910390f35b341561017f57600080fd5b6100cc600160a060020a03600435166103b9565b341561019e57600080fd5b6100cc600160a060020a03600435166103fd565b34156101bd57600080fd5b6100e16104e2565b34156101d057600080fd5b6101e4600160a060020a0360043516610505565b6040518085815260200184815260200183600160a060020a0316600160a060020a0316815260200182815260200194505050505060405180910390f35b341561022c57600080fd5b6100e161053b565b341561023f57600080fd5b6100cc610541565b341561025257600080fd5b6100cc6105b4565b6100e16105d5565b341561026d57600080fd5b610278600435610687565b604051600160a060020a03909116815260200160405180910390f35b341561029f57600080fd5b6100e1600435600160a060020a03602435166106af565b34156102c157600080fd5b6100e1600160a060020a036004351661078d565b34156102e057600080fd5b6100e16107a2565b60015481565b60065481565b600160a060020a03811660009081526005602052604081208282805b60025482101561037457600280548390811061032857fe5b600091825260209091200154600160a060020a03169050848061035c575080600160a060020a031633600160a060020a0316145b94506103698484836107a8565b600190910190610310565b84151561038057600080fd5b505050505050565b600060208190529081526040902060028101546003820154600490920154600160a060020a03909116919060ff1683565b6000806103c76002336108c4565b15156103d257600080fd5b5050600160a060020a0381166000908152600560205260409020816103f88282336107a8565b505050565b600160a060020a0381166000908152602081905260408120600381015490919081901161042957600080fd5b600482015460ff161561043b57600080fd5b60048201805460ff19166001179055600382015461049390836002604080519081016040529190828260026020028201915b81548152602001906001019080831161046d57505050505061092190919063ffffffff16565b905060008111156103f8576001546104b1908263ffffffff61095216565b6001556002820154600160a060020a03168160405160006040518083038185875af19250505015156103f857600080fd5b33600160a060020a031660009081526020819052604090206001810154905b5090565b600160a060020a039081166000908152602081905260409020805460018201546002830154600390930154919490939290921691565b60045481565b600080805b6002548210156105a857600280548390811061055e57fe5b600091825260209091200154600160a060020a031690508280610592575080600160a060020a031633600160a060020a0316145b925061059d81610964565b600190910190610546565b8215156103f857600080fd5b6105bf6002336108c4565b15156105ca57600080fd5b6105d333610964565b565b60008080348190116105e657600080fd5b600160a060020a033316600090815260208190526040902060038101549092501561061057600080fd5b600082600101541161062157600080fd5b34600383018190556106689083600260408051908101604090815283548252909291908301600183016020850180831161046d57505050505061092190919063ffffffff16565b60015490915061067e908263ffffffff6109df16565b60015591505090565b600280548290811061069557fe5b600091825260209091200154600160a060020a0316905081565b600080806706f05b59d3b2000085106106c757600080fd5b600160a060020a033316600090815260208190526040902091508160010154156106f057600080fd5b61071761070f61070787600263ffffffff6109f516565b600754610a0a565b600654610a21565b60028301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03871617905590506040805190810160405285815260208101610764878463ffffffff6109df16565b90526107739083906002610b9a565b50610784858263ffffffff6109df16565b95945050505050565b60056020526000908152604090206001015481565b60075481565b60006108388284600160a060020a03166370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156107fc57600080fd5b5af1151561080957600080fd5b50505060405180519050604080519081016040526001815260025460208201528792919063ffffffff610a3916565b905082600160a060020a031663a9059cbb838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561088e57600080fd5b5af1151561089b57600080fd5b5050506040518051905015156108be576108bc84838363ffffffff610b0916565b505b50505050565b6000805b83548110156109155782600160a060020a031684828154811015156108e957fe5b600091825260209091200154600160a060020a0316141561090d576001915061091a565b6001016108c8565b600091505b5092915050565b6000610949602084015161093d8551859063ffffffff610b6f16565b9063ffffffff6109f516565b90505b92915050565b60008282111561095e57fe5b50900390565b60006109af8261098960015430600160a060020a03163161095290919063ffffffff16565b60408051908101604052600181526002546020820152600392919063ffffffff610a3916565b905081600160a060020a03168160405160006040518083038185875af19250505015156109db57600080fd5b5050565b6000828201838110156109ee57fe5b9392505050565b60008183811515610a0257fe5b049392505050565b600081831015610a1b57508161094c565b50919050565b600081831015610a3257508061094c565b5090919050565b600080600080610a66610a598960010154886109df90919063ffffffff16565b869063ffffffff61092116565b600160a060020a038816600090815260208a90526040902054909350915082821115610a8e57fe5b610a9e838363ffffffff61095216565b600160a060020a038816600090815260208a90526040902054909150610aca908263ffffffff6109df16565b600160a060020a038816600090815260208a905260409020556001880154610af8908263ffffffff6109df16565b600189015592505050949350505050565b600160a060020a038216600090815260208490526040812054610b32908363ffffffff61095216565b600160a060020a0384166000908152602086905260409020556001840154610b60908363ffffffff61095216565b84600101819055509392505050565b600080831515610b82576000915061091a565b50828202828482811515610b9257fe5b04146109ee57fe5b8260028101928215610bc8579160200282015b82811115610bc8578251825591602001919060010190610bad565b5061050192610be89250905b808211156105015760008155600101610bd4565b905600a165627a7a723058204c46491b1999aac050408abcd77d4a42ae176b1f6bb1949134182ebd981f4ce30029
[codex:282097] 
[codex:282097] thinking
[codex:282097] **Planning offline EVM bytecode disassembly**
[codex:282097] 
[codex:282097] I'll approach this by creating a simple Python EVM disassembler to analyze the runtime bytecode offline, focusing on decoding function selectors and inspecting storage accesses and calls to determine potential exploit paths. This way, I can work within the read-only environment without relying on external tools or network access.
[codex:282097] exec
[codex:282097] /bin/bash -lc "python - <<'PY'
[codex:282097] import binascii
[codex:282097] code_hex=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:282097] code=bytes.fromhex(code_hex)
[codex:282097] # simple disassembler
[codex:282097] opcodes={
[codex:282097]     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:282097]     0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',
[codex:282097]     0x20:'SHA3',
[codex:282097]     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:282097]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',
[codex:282097]     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:282097]     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:282097]     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:282097]     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:282097]     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:282097]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:282097]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:282097] }
[codex:282097] 
[codex:282097] pc=0
[codex:282097] while pc<len(code):
[codex:282097]     op=code[pc]
[codex:282097]     name=opcodes.get(op, f'UNKNOWN_{op:02x}')
[codex:282097]     if 0x60<=op<=0x7f:
[codex:282097]         n=op-0x5f
[codex:282097]         data=code[pc+1:pc+1+n]
[codex:282097]         print(f'{pc:04x}: {name} 0x{data.hex()}')
[codex:282097]         pc+=1+n
[codex:282097]     else:
[codex:282097]         print(f'{pc:04x}: {name}')
[codex:282097]         pc+=1
[codex:282097] PY" in /tmp/codex-multi-5tc116lb succeeded in 20ms:
[codex:282097] 0000: PUSH1 0x60
[codex:282097] 0002: PUSH1 0x40
[codex:282097] 0004: MSTORE
[codex:282097] 0005: PUSH1 0x04
[codex:282097] 0007: CALLDATASIZE
[codex:282097] 0008: LT
[codex:282097] 0009: PUSH2 0x00cc
[codex:282097] 000c: JUMPI
[codex:282097] 000d: PUSH4 0xffffffff
[codex:282097] 0012: PUSH1 0xe0
[codex:282097] 0014: PUSH1 0x02
[codex:282097] 0016: EXP
[codex:282097] 0017: PUSH1 0x00
[codex:282097] 0019: CALLDATALOAD
[codex:282097] 001a: DIV
[codex:282097] 001b: AND
[codex:282097] 001c: PUSH4 0x08fec02d
[codex:282097] 0021: DUP2
[codex:282097] 0022: EQ
[codex:282097] 0023: PUSH2 0x00ce
[codex:282097] 
[codex:282097] 
[codex:282097] 
[codex:282097] thinking
[codex:282097] **Analyzing contract bytecode and storage patterns**
[codex:282097] 
[codex:282097] I'm carefully dissecting the contract’s bytecode to understand its structure and function; it resembles a multisig or token distribution DAO, with owner arrays, mappings, and calls to token balance and transfer functions. I'm tracing stack operations and storage slots to infer function behavior, access control checks, and internal calls—especially around token transfers—to spot any vulnerabilities or exploit paths. This detailed dive should help me know if there's a clear profit exploit or just typical multisig logic.
[codex:282097] thinking
[codex:282097] **Analyzing contract functions and storage layout**
[codex:282097] 
[codex:282097] I'm tracing functions in this contract to understand how deposits, withdrawals, and token transfers work, especially focusing on how mappings and arrays store owner info and balances. I'm carefully tracking stack and storage operations to see if any function could let someone move tokens or ETH without proper authorization. This involves decoding function selectors, internal calls, and ensuring callvalue checks and safe math to identify potential vulnerabilities or logic flaws.
[codex:282097] thinking
[codex:282097] **Mapping stack and loop variables in distribution function**
[codex:282097] 
[codex:282097] I'm carefully reconstructing stack positions and variable roles in the owner-distribution loop function to understand how it iterates and applies checks before calling the internal payout function. Tracing these stack manipulations helps me verify access conditions and how owner addresses are loaded and validated. I'm also examining a key function that processes withdrawals based on address mappings, checking storage flags and cryptic conditions that might control withdrawal eligibility or state changes. This is a detailed step to map storage layout and control flow.
[codex:282097] exec
[codex:282097] /bin/bash -lc "python - <<'PY'
[codex:282097] print(int('06f05b59d3b20000',16))
[codex:282097] PY" in /tmp/codex-multi-5tc116lb succeeded in 18ms:
[codex:282097] 500000000000000000
[codex:282097] 
[codex:282097] 
[codex:282097] thinking
[codex:282097] **Analyzing smart contract storage and function behavior**
[codex:282097] thinking
[codex:282097] **Reviewing withdrawal and reentrancy mechanics**
[codex:282097] 
[codex:282097] I'm carefully tracing the withdrawal function to see if it securely updates state before external calls and if reentrancy or unauthorized withdrawals might be possible; the flag set before the call suggests some protection, but I'll watch for gaps that could let an attacker withdraw others’ funds or exploit call parameters.
[codex:282097] exec
[codex:282097] /bin/bash -lc "python - <<'PY'
[codex:282097] import binascii
[codex:282097] code_hex=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:282097] code=bytes.fromhex(code_hex)
[codex:282097] print('ORIGIN' in [code[i]==0x32 for i in range(len(code))])
[codex:282097] print([i for i,b in enumerate(code) if b==0x32][:10])
[codex:282097] PY" in /tmp/codex-multi-5tc116lb succeeded in 21ms:
[codex:282097] False
[codex:282097] [2602, 2853]
[codex:282097] 
[codex:282097] thinking
[codex:282097] **Analyzing potential origin usage and calls**
[codex:282097] exec
[codex:282097] /bin/bash -lc "python - <<'PY'
[codex:282097] import binascii
[codex:282097] code_hex=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:282097] code=bytes.fromhex(code_hex)
[codex:282097] print('delegatecall positions', [i for i,b in enumerate(code) if b==0xf4])
[codex:282097] print('selfdestruct positions', [i for i,b in enumerate(code) if b==0xff])
[codex:282097] PY" in /tmp/codex-multi-5tc116lb succeeded in 18ms:
[codex:282097] delegatecall positions [291]
[codex:282097] selfdestruct positions [14, 15, 16, 17, 195, 949, 1072, 1091, 1165, 1166, 1167, 1168, 1192, 1193, 1194, 1195, 1634, 1635, 1636, 1637, 1653, 1654, 1655, 1656, 1790, 1791, 1792, 1793, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1883, 1884, 1885, 1886, 1915, 1916, 1917, 1918, 1992, 1993, 1994, 1995, 2095, 2096, 2097, 2098, 2133, 2134, 2135, 2136, 2227, 2228, 2229, 2230, 2356, 2357, 2358, 2359, 2368, 2369, 2370, 2371, 2435, 2436, 2437, 2438, 2470, 2471, 2472, 2473, 2643, 2644, 2645, 2646, 2653, 2654, 2655, 2656, 2709, 2710, 2711, 2712, 2753, 2754, 2755, 2756, 2799, 2800, 2801, 2802, 2857, 2858, 2859, 2860, 2903, 2904, 2905, 2906]
[codex:282097] 
[codex:282097] thinking
[codex:282097] **Analyzing contract storage and call patterns**
[codex:282097] exec
[codex:282097] /bin/bash -lc "python - <<'PY'
[codex:282097] import hashlib
[codex:282097] 
[codex:282097] def sig(s):
[codex:282097]     return hashlib.sha3_256(s.encode()).hexdigest()[:8]
[codex:282097] 
[codex:282097] names=['owners(uint256)','getOwner(uint256)','owner(uint256)','getOwners()','ownersCount()','isOwner(address)','getBalance(address)','deposit()','withdraw(address)','withdraw()','distribute()','payout(address)','claim(address)','claim()','addOwner(address)','removeOwner(address)','submitTransaction(address,uint256,bytes)','executeTransaction(uint256)','confirmTransaction(uint256)','revokeConfirmation(uint256)','getTransaction(uint256)','getTransactionCount(bool,bool)']
[codex:282097] for n in names:
[codex:282097]     print(n, sig(n))
[codex:282097] PY" in /tmp/codex-multi-5tc116lb succeeded in 24ms:
[codex:282097] owners(uint256) bfdf98b2
[codex:282097] getOwner(uint256) 6615c00e
[codex:282097] owner(uint256) 19544b96
[codex:282097] getOwners() 9588d8c5
[codex:282097] ownersCount() 40c08459
[codex:282097] isOwner(address) 44fac43f
[codex:282097] getBalance(address) 628b4d7e
[codex:282097] deposit() 9c02207e
[codex:282097] withdraw(address) 2909145d
[codex:282097] withdraw() f7f84189
[codex:282097] distribute() aae75061
[codex:282097] payout(address) fdce3ed1
[codex:282097] claim(address) 6b5f4ad7
[codex:282097] claim() 6c161277
[codex:282097] addOwner(address) 8c54d081
[codex:282097] removeOwner(address) 04e4834f
[codex:282097] submitTransaction(address,uint256,bytes) 6cb8c0ee
[codex:282097] executeTransaction(uint256) 343ad26e
[codex:282097] confirmTransaction(uint256) 593c9bda
[codex:282097] revokeConfirmation(uint256) bb64c6be
[codex:282097] 
[codex:282097] 
[codex:282097] 
[codex:282097] 
[codex:282097] thinking
[codex:282097] **Analyzing bytecode for exploit paths**
[codex:282097] thinking
[codex:282097] **Examining token transfer and reentrancy details**
[codex:282097] 
[codex:282097] I'm carefully tracing the order of state updates and external calls around token transfers and ETH sends, confirming that storage updates happen before external calls to mitigate reentrancy risk. I'm also analyzing complex function logic involving loops over owners and token distributions, trying to understand access controls and parameter roles to see if any unrestricted transfers or withdrawals could be exploited. This involves symbolic stack simulation and detailed bytecode inspection, but so far no clear unauthorized access or exploit path emerges.
[codex:282097] thinking
[codex:282097] **Analyzing withdrawal logic and access controls**
[codex:282097] 
[codex:282097] I'm stepping through the withdrawal function to confirm it properly checks balances and withdrawal flags before sending funds. By symbolically tracking storage loads and conditions, I see it updates state before sending ETH, reducing reentrancy risk. I’m also verifying that users can only withdraw their own deposits since key-based storage uses `msg.sender` and that recipient addresses can’t be arbitrarily set for others. Though some jumps and calls are complex, authorization seems enforced, and the code uses safe math. I’m considering scenarios where parameter checks might allow withdrawals on zero balances or bypass ownership, but the logic appears robust so far.
[codex:282097] thinking
[codex:282097] **Examining owner update and withdrawal flag resets**
[codex:282097] 
[codex:282097] I’m investigating whether any function besides the main withdrawal logic can reset the withdrawal flag stored at base+4, which might allow repeated withdrawals if reset improperly. There’s a suspicion that a function with signature 0xf01fe692 could let anyone add themselves as owner without payment, potentially enabling unauthorized withdrawals if owners can withdraw fees. I’m also checking if storage writes elsewhere overwrite the flag unintentionally, focusing on patterns like `PUSH1 0x04` followed by `SSTORE` in disassembly to find any updates to that mapping slot beyond the withdrawal function.
[codex:282097] exec
[codex:282097] /bin/bash -lc "python - <<'PY'
[codex:282097] import re
[codex:282097] lines=open('disasm.txt','w')
[codex:282097] PY" in /tmp/codex-multi-5tc116lb exited 1 in 30ms:
[codex:282097] Traceback (most recent call last):
[codex:282097]   File "<stdin>", line 2, in <module>
[codex:282097] PermissionError: [Errno 13] Permission denied: 'disasm.txt'
[codex:282097] 
[codex:282097] thinking
[codex:282097] **Preparing in-memory analysis of SSTORE from disassembly**
[codex:282097] exec
[codex:282097] /bin/bash -lc "python - <<'PY'
[codex:282097] import binascii
[codex:282097] code_hex=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:282097] code=bytes.fromhex(code_hex)
[codex:282097] # disassemble to list of (pc, op, arg)
[codex:282097] opcodes={
[codex:282097]     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:282097]     0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',
[codex:282097]     0x20:'SHA3',
[codex:282097]     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:282097]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',
[codex:282097]     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:282097]     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:282097]     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:282097]     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:282097]     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:282097]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:282097]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:282097] }
[codex:282097] 
[codex:282097] # build list
[codex:282097] ops=[]
[codex:282097] pc=0
[codex:282097] while pc < len(code):
[codex:282097]     op=code[pc]
[codex:282097]     name=opcodes.get(op, f'UNKNOWN_{op:02x}')
[codex:282097]     if 0x60<=op<=0x7f:
[codex:282097]         n=op-0x5f
[codex:282097]         data=code[pc+1:pc+1+n]
[codex:282097]         ops.append((pc,name,data.hex()))
[codex:282097]         pc+=1+n
[codex:282097]     else:
[codex:282097]         ops.append((pc,name,''))
[codex:282097]         pc+=1
[codex:282097] 
[codex:282097] # print context around SSTORE
[codex:282097] for i,(pc,name,arg) in enumerate(ops):
[codex:282097]     if name=='SSTORE':
[codex:282097]         print('--- SSTORE at',hex(pc))
[codex:282097]         for j in range(max(0,i-5), min(len(ops), i+6)):
[codex:282097]             pc2,name2,arg2=ops[j]
[codex:282097]             if arg2:
[codex:282097]                 print(f'{pc2:04x}: {name2} 0x{arg2}')
[codex:282097]             else:
[codex:282097]                 print(f'{pc2:04x}: {name2}')
[codex:282097] PY" in /tmp/codex-multi-5tc116lb succeeded in 20ms:
[codex:282097] --- SSTORE at 0x44a
[codex:282097] 0444: NOT
[codex:282097] 0445: AND
[codex:282097] 0446: PUSH1 0x01
[codex:282097] 0448: OR
[codex:282097] 0449: SWAP1
[codex:282097] 044a: SSTORE
[codex:282097] 044b: PUSH1 0x03
[codex:282097] 044d: DUP3
[codex:282097] 044e: ADD
[codex:282097] 044f: SLOAD
[codex:282097] 0450: PUSH2 0x0493
[codex:282097] --- SSTORE at 0x4b4
[codex:282097] 04ac: PUSH2 0x0952
[codex:282097] 04af: AND
[codex:282097] 04b0: JUMP
[codex:282097] 04b1: JUMPDEST
[codex:282097] 04b2: PUSH1 0x01
[codex:282097] 04b4: SSTORE
[codex:282097] 04b5: PUSH1 0x02
[codex:282097] 
[codex:282097] thinking
[codex:282097] **Confirming no exploitable flaws found**
[codex:282097] 
[codex:282097] I'm carefully verifying that the contract has proper ownership checks on token transfers and no unsafe use of `tx.origin`, `selfdestruct`, or `delegatecall`. The stored flags prevent reentrancy, and external calls are guarded by owner checks, so I conclude no concrete exploit path exists. I'll prepare a concise JSON summary indicating no findings as requested.
[codex:282097] codex
[codex:282097] {"no_findings":true,"summary":"No concrete, exploitable value-extraction paths were identifiable from the runtime bytecode alone; external calls appear tied to stored recipients with state updates/owner checks, and no controllable delegatecall/selfdestruct or unrestricted value transfer was observed.","findings":[]}
[codex:282097] tokens used
[codex:282097] 76,956
[codex:282097] {"no_findings":true,"summary":"No concrete, exploitable value-extraction paths were identifiable from the runtime bytecode alone; external calls appear tied to stored recipients with state updates/owner checks, and no controllable delegatecall/selfdestruct or unrestricted value transfer was observed.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-04T07:46:56.834465+00:00",
        "returncode": 0
    },
    "summary": "No concrete, exploitable value-extraction paths were identifiable from the runtime bytecode alone; external calls appear tied to stored recipients with state updates/owner checks, and no controllable delegatecall/selfdestruct or unrestricted value transfer was observed.",
    "raw_final": {
        "summary": "No concrete, exploitable value-extraction paths were identifiable from the runtime bytecode alone; external calls appear tied to stored recipients with state updates/owner checks, and no controllable delegatecall/selfdestruct or unrestricted value transfer was observed.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
4
EXT*/BALANCE
3
Total opcodes
2157
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x00cc
0000000c: JUMPI
0000000d: PUSH4 0xffffffff
00000012: PUSH1 0xe0
00000014: PUSH1 0x02
00000016: EXP
00000017: PUSH1 0x00
00000019: CALLDATALOAD
0000001a: DIV
0000001b: AND
0000001c: PUSH4 0x08fec02d
00000021: DUP2
00000022: EQ
00000023: PUSH2 0x00ce
00000026: JUMPI
00000027: DUP1
00000028: PUSH4 0x14c2ab11
0000002d: EQ
0000002e: PUSH2 0x00f3
00000031: JUMPI
00000032: DUP1
00000033: PUSH4 0x34b9384c
00000038: EQ
00000039: PUSH2 0x0106
0000003c: JUMPI
0000003d: DUP1
0000003e: PUSH4 0x80776e2e
00000043: EQ
00000044: PUSH2 0x0125
00000047: JUMPI
00000048: DUP1
00000049: PUSH4 0x8404c195
0000004e: EQ
0000004f: PUSH2 0x0174
00000052: JUMPI
00000053: DUP1
00000054: PUSH4 0x9413f25c
00000059: EQ
0000005a: PUSH2 0x0193
0000005d: JUMPI
0000005e: DUP1
0000005f: PUSH4 0x9592619c
00000064: EQ
00000065: PUSH2 0x01b2
00000068: JUMPI
00000069: DUP1
0000006a: PUSH4 0x9af608c9
0000006f: EQ
00000070: PUSH2 0x01c5
00000073: JUMPI
00000074: DUP1
00000075: PUSH4 0xae517b79
0000007a: EQ
0000007b: PUSH2 0x0221
0000007e: JUMPI
0000007f: DUP1
00000080: PUSH4 0xb49ff060
00000085: EQ
00000086: PUSH2 0x0234
00000089: JUMPI
0000008a: DUP1
0000008b: PUSH4 0xd8580a6f
00000090: EQ
00000091: PUSH2 0x0247
00000094: JUMPI
00000095: DUP1
00000096: PUSH4 0xdff90b5b
0000009b: EQ
0000009c: PUSH2 0x025a
0000009f: JUMPI
000000a0: DUP1
000000a1: PUSH4 0xe75f7ddb
000000a6: EQ
000000a7: PUSH2 0x0262
000000aa: JUMPI
000000ab: DUP1
000000ac: PUSH4 0xf01fe692
000000b1: EQ
000000b2: PUSH2 0x0294
000000b5: JUMPI
000000b6: DUP1
000000b7: PUSH4 0xfd8c06c6
000000bc: EQ
000000bd: PUSH2 0x02b6
000000c0: JUMPI
000000c1: DUP1
000000c2: PUSH4 0xffe7d95b
000000c7: EQ
000000c8: PUSH2 0x02d5
000000cb: JUMPI
000000cc: JUMPDEST
000000cd: STOP
000000ce: JUMPDEST
000000cf: CALLVALUE
000000d0: ISZERO
000000d1: PUSH2 0x00d9
000000d4: JUMPI
000000d5: PUSH1 0x00
000000d7: DUP1
000000d8: REVERT
000000d9: JUMPDEST
000000da: PUSH2 0x00e1
000000dd: PUSH2 0x02e8
000000e0: JUMP
000000e1: JUMPDEST
000000e2: PUSH1 0x40
000000e4: MLOAD
000000e5: SWAP1
000000e6: DUP2
000000e7: MSTORE
000000e8: PUSH1 0x20
000000ea: ADD
000000eb: PUSH1 0x40
000000ed: MLOAD
000000ee: DUP1
000000ef: SWAP2
000000f0: SUB
000000f1: SWAP1
000000f2: RETURN
000000f3: JUMPDEST
000000f4: CALLVALUE
000000f5: ISZERO
000000f6: PUSH2 0x00fe
000000f9: JUMPI
000000fa: PUSH1 0x00
000000fc: DUP1
000000fd: REVERT
000000fe: JUMPDEST
000000ff: PUSH2 0x00e1
00000102: PUSH2 0x02ee
00000105: JUMP
00000106: JUMPDEST
00000107: CALLVALUE
00000108: ISZERO
00000109: PUSH2 0x0111
0000010c: JUMPI
0000010d: PUSH1 0x00
0000010f: DUP1
00000110: REVERT
00000111: JUMPDEST
00000112: PUSH2 0x00cc
00000115: PUSH1 0x01
00000117: PUSH1 0xa0
00000119: PUSH1 0x02
0000011b: EXP
0000011c: SUB
0000011d: PUSH1 0x04
0000011f: CALLDATALOAD
00000120: AND
00000121: PUSH2 0x02f4
00000124: JUMP
00000125: JUMPDEST
00000126: CALLVALUE
00000127: ISZERO
00000128: PUSH2 0x0130
0000012b: JUMPI
0000012c: PUSH1 0x00
0000012e: DUP1
0000012f: REVERT
00000130: JUMPDEST
00000131: PUSH2 0x0144
00000134: PUSH1 0x01
00000136: PUSH1 0xa0
00000138: PUSH1 0x02
0000013a: EXP
0000013b: SUB
0000013c: PUSH1 0x04
0000013e: CALLDATALOAD
0000013f: AND
00000140: PUSH2 0x0388
00000143: JUMP
00000144: JUMPDEST
00000145: PUSH1 0x40
00000147: MLOAD
00000148: PUSH1 0x01
0000014a: PUSH1 0xa0
0000014c: PUSH1 0x02
0000014e: EXP
0000014f: SUB
00000150: SWAP1
00000151: SWAP4
00000152: AND
00000153: DUP4
00000154: MSTORE
00000155: PUSH1 0x20
00000157: DUP4
00000158: ADD
00000159: SWAP2
0000015a: SWAP1
0000015b: SWAP2
0000015c: MSTORE
0000015d: ISZERO
0000015e: ISZERO
0000015f: PUSH1 0x40
00000161: DUP1
00000162: DUP4
00000163: ADD
00000164: SWAP2
00000165: SWAP1
00000166: SWAP2
00000167: MSTORE
00000168: PUSH1 0x60
0000016a: SWAP1
0000016b: SWAP2
0000016c: ADD
0000016d: SWAP1
0000016e: MLOAD
0000016f: DUP1
00000170: SWAP2
00000171: SUB
00000172: SWAP1
00000173: RETURN
00000174: JUMPDEST
00000175: CALLVALUE
00000176: ISZERO
00000177: PUSH2 0x017f
0000017a: JUMPI
0000017b: PUSH1 0x00
0000017d: DUP1
0000017e: REVERT
0000017f: JUMPDEST
00000180: PUSH2 0x00cc
00000183: PUSH1 0x01
00000185: PUSH1 0xa0
00000187: PUSH1 0x02
00000189: EXP
0000018a: SUB
0000018b: PUSH1 0x04
0000018d: CALLDATALOAD
0000018e: AND
0000018f: PUSH2 0x03b9
00000192: JUMP
00000193: JUMPDEST
00000194: CALLVALUE
00000195: ISZERO
00000196: PUSH2 0x019e
00000199: JUMPI
0000019a: PUSH1 0x00
0000019c: DUP1
0000019d: REVERT
0000019e: JUMPDEST
0000019f: PUSH2 0x00cc
000001a2: PUSH1 0x01
000001a4: PUSH1 0xa0
000001a6: PUSH1 0x02
000001a8: EXP
000001a9: SUB
000001aa: PUSH1 0x04
000001ac: CALLDATALOAD
000001ad: AND
000001ae: PUSH2 0x03fd
000001b1: JUMP
000001b2: JUMPDEST
000001b3: CALLVALUE
000001b4: ISZERO
000001b5: PUSH2 0x01bd
000001b8: JUMPI
000001b9: PUSH1 0x00
000001bb: DUP1
000001bc: REVERT
000001bd: JUMPDEST
000001be: PUSH2 0x00e1
000001c1: PUSH2 0x04e2
000001c4: JUMP
000001c5: JUMPDEST
000001c6: CALLVALUE
000001c7: ISZERO
000001c8: PUSH2 0x01d0
000001cb: JUMPI
000001cc: PUSH1 0x00
000001ce: DUP1
000001cf: REVERT
000001d0: JUMPDEST
000001d1: PUSH2 0x01e4
000001d4: PUSH1 0x01
000001d6: PUSH1 0xa0
000001d8: PUSH1 0x02
000001da: EXP
000001db: SUB
000001dc: PUSH1 0x04
000001de: CALLDATALOAD
000001df: AND
000001e0: PUSH2 0x0505
000001e3: JUMP
000001e4: JUMPDEST
000001e5: PUSH1 0x40
000001e7: MLOAD
000001e8: DUP1
000001e9: DUP6
000001ea: DUP2
000001eb: MSTORE
000001ec: PUSH1 0x20
000001ee: ADD
000001ef: DUP5
000001f0: DUP2
000001f1: MSTORE
000001f2: PUSH1 0x20
000001f4: ADD
000001f5: DUP4
000001f6: PUSH1 0x01
000001f8: PUSH1 0xa0
000001fa: PUSH1 0x02
000001fc: EXP
000001fd: SUB
000001fe: AND
000001ff: PUSH1 0x01
00000201: PUSH1 0xa0
00000203: PUSH1 0x02
00000205: EXP
00000206: SUB
00000207: AND
00000208: DUP2
00000209: MSTORE
0000020a: PUSH1 0x20
0000020c: ADD
0000020d: DUP3
0000020e: DUP2
0000020f: MSTORE
00000210: PUSH1 0x20
00000212: ADD
00000213: SWAP5
00000214: POP
00000215: POP
00000216: POP
00000217: POP
00000218: POP
00000219: PUSH1 0x40
0000021b: MLOAD
0000021c: DUP1
0000021d: SWAP2
0000021e: SUB
0000021f: SWAP1
00000220: RETURN
00000221: JUMPDEST
00000222: CALLVALUE
00000223: ISZERO
00000224: PUSH2 0x022c
00000227: JUMPI
00000228: PUSH1 0x00
0000022a: DUP1
0000022b: REVERT
0000022c: JUMPDEST
0000022d: PUSH2 0x00e1
00000230: PUSH2 0x053b
00000233: JUMP
00000234: JUMPDEST
00000235: CALLVALUE
00000236: ISZERO
00000237: PUSH2 0x023f
0000023a: JUMPI
0000023b: PUSH1 0x00
0000023d: DUP1
0000023e: REVERT
0000023f: JUMPDEST
00000240: PUSH2 0x00cc
00000243: PUSH2 0x0541
00000246: JUMP
00000247: JUMPDEST
00000248: CALLVALUE
00000249: ISZERO
0000024a: PUSH2 0x0252
0000024d: JUMPI
0000024e: PUSH1 0x00
00000250: DUP1
00000251: REVERT
00000252: JUMPDEST
00000253: PUSH2 0x00cc
00000256: PUSH2 0x05b4
00000259: JUMP
0000025a: JUMPDEST
0000025b: PUSH2 0x00e1
0000025e: PUSH2 0x05d5
00000261: JUMP
00000262: JUMPDEST
00000263: CALLVALUE
00000264: ISZERO
00000265: PUSH2 0x026d
00000268: JUMPI
00000269: PUSH1 0x00
0000026b: DUP1
0000026c: REVERT
0000026d: JUMPDEST
0000026e: PUSH2 0x0278
00000271: PUSH1 0x04
00000273: CALLDATALOAD
00000274: PUSH2 0x0687
00000277: JUMP
00000278: JUMPDEST
00000279: PUSH1 0x40
0000027b: MLOAD
0000027c: PUSH1 0x01
0000027e: PUSH1 0xa0
00000280: PUSH1 0x02
00000282: EXP
00000283: SUB
00000284: SWAP1
00000285: SWAP2
00000286: AND
00000287: DUP2
00000288: MSTORE
00000289: PUSH1 0x20
0000028b: ADD
0000028c: PUSH1 0x40
0000028e: MLOAD
0000028f: DUP1
00000290: SWAP2
00000291: SUB
00000292: SWAP1
00000293: RETURN
00000294: JUMPDEST
00000295: CALLVALUE
00000296: ISZERO
00000297: PUSH2 0x029f
0000029a: JUMPI
0000029b: PUSH1 0x00
0000029d: DUP1
0000029e: REVERT
0000029f: JUMPDEST
000002a0: PUSH2 0x00e1
000002a3: PUSH1 0x04
000002a5: CALLDATALOAD
000002a6: PUSH1 0x01
000002a8: PUSH1 0xa0
000002aa: PUSH1 0x02
000002ac: EXP
000002ad: SUB
000002ae: PUSH1 0x24
000002b0: CALLDATALOAD
000002b1: AND
000002b2: PUSH2 0x06af
000002b5: JUMP
000002b6: JUMPDEST
000002b7: CALLVALUE
000002b8: ISZERO
000002b9: PUSH2 0x02c1
000002bc: JUMPI
000002bd: PUSH1 0x00
000002bf: DUP1
000002c0: REVERT
000002c1: JUMPDEST
000002c2: PUSH2 0x00e1
000002c5: PUSH1 0x01
000002c7: PUSH1 0xa0
000002c9: PUSH1 0x02
000002cb: EXP
000002cc: SUB
000002cd: PUSH1 0x04
000002cf: CALLDATALOAD
000002d0: AND
000002d1: PUSH2 0x078d
000002d4: JUMP
000002d5: JUMPDEST
000002d6: CALLVALUE
000002d7: ISZERO
000002d8: PUSH2 0x02e0
000002db: JUMPI
000002dc: PUSH1 0x00
000002de: DUP1
000002df: REVERT
000002e0: JUMPDEST
000002e1: PUSH2 0x00e1
000002e4: PUSH2 0x07a2
000002e7: JUMP
000002e8: JUMPDEST
000002e9: PUSH1 0x01
000002eb: SLOAD
000002ec: DUP2
000002ed: JUMP
000002ee: JUMPDEST
000002ef: PUSH1 0x06
000002f1: SLOAD
000002f2: DUP2
000002f3: JUMP
000002f4: JUMPDEST
000002f5: PUSH1 0x01
000002f7: PUSH1 0xa0
000002f9: PUSH1 0x02
000002fb: EXP
000002fc: SUB
000002fd: DUP2
000002fe: AND
000002ff: PUSH1 0x00
00000301: SWAP1
00000302: DUP2
00000303: MSTORE
00000304: PUSH1 0x05
00000306: PUSH1 0x20
00000308: MSTORE
00000309: PUSH1 0x40
0000030b: DUP2
0000030c: KECCAK256
0000030d: DUP3
0000030e: DUP3
0000030f: DUP1
00000310: JUMPDEST
00000311: PUSH1 0x02
00000313: SLOAD
00000314: DUP3
00000315: LT
00000316: ISZERO
00000317: PUSH2 0x0374
0000031a: JUMPI
0000031b: PUSH1 0x02
0000031d: DUP1
0000031e: SLOAD
0000031f: DUP4
00000320: SWAP1
00000321: DUP2
00000322: LT
00000323: PUSH2 0x0328
00000326: JUMPI
00000327: INVALID
00000328: JUMPDEST
00000329: PUSH1 0x00
0000032b: SWAP2
0000032c: DUP3
0000032d: MSTORE
0000032e: PUSH1 0x20
00000330: SWAP1
00000331: SWAP2
00000332: KECCAK256
00000333: ADD
00000334: SLOAD
00000335: PUSH1 0x01
00000337: PUSH1 0xa0
00000339: PUSH1 0x02
0000033b: EXP
0000033c: SUB
0000033d: AND
0000033e: SWAP1
0000033f: POP
00000340: DUP5
00000341: DUP1
00000342: PUSH2 0x035c
00000345: JUMPI
00000346: POP
00000347: DUP1
00000348: PUSH1 0x01
0000034a: PUSH1 0xa0
0000034c: PUSH1 0x02
0000034e: EXP
0000034f: SUB
00000350: AND
00000351: CALLER
00000352: PUSH1 0x01
00000354: PUSH1 0xa0
00000356: PUSH1 0x02
00000358: EXP
00000359: SUB
0000035a: AND
0000035b: EQ
0000035c: JUMPDEST
0000035d: SWAP5
0000035e: POP
0000035f: PUSH2 0x0369
00000362: DUP5
00000363: DUP5
00000364: DUP4
00000365: PUSH2 0x07a8
00000368: JUMP
00000369: JUMPDEST
0000036a: PUSH1 0x01
0000036c: SWAP1
0000036d: SWAP2
0000036e: ADD
0000036f: SWAP1
00000370: PUSH2 0x0310
00000373: JUMP
00000374: JUMPDEST
00000375: DUP5
00000376: ISZERO
00000377: ISZERO
00000378: PUSH2 0x0380
0000037b: JUMPI
0000037c: PUSH1 0x00
0000037e: DUP1
0000037f: REVERT
00000380: JUMPDEST
00000381: POP
00000382: POP
00000383: POP
00000384: POP
00000385: POP
00000386: POP
00000387: JUMP
00000388: JUMPDEST
00000389: PUSH1 0x00
0000038b: PUSH1 0x20
0000038d: DUP2
0000038e: SWAP1
0000038f: MSTORE
00000390: SWAP1
00000391: DUP2
00000392: MSTORE
00000393: PUSH1 0x40
00000395: SWAP1
00000396: KECCAK256
00000397: PUSH1 0x02
00000399: DUP2
0000039a: ADD
0000039b: SLOAD
0000039c: PUSH1 0x03
0000039e: DUP3
0000039f: ADD
000003a0: SLOAD
000003a1: PUSH1 0x04
000003a3: SWAP1
000003a4: SWAP3
000003a5: ADD
000003a6: SLOAD
000003a7: PUSH1 0x01
000003a9: PUSH1 0xa0
000003ab: PUSH1 0x02
000003ad: EXP
000003ae: SUB
000003af: SWAP1
000003b0: SWAP2
000003b1: AND
000003b2: SWAP2
000003b3: SWAP1
000003b4: PUSH1 0xff
000003b6: AND
000003b7: DUP4
000003b8: JUMP
000003b9: JUMPDEST
000003ba: PUSH1 0x00
000003bc: DUP1
000003bd: PUSH2 0x03c7
000003c0: PUSH1 0x02
000003c2: CALLER
000003c3: PUSH2 0x08c4
000003c6: JUMP
000003c7: JUMPDEST
000003c8: ISZERO
000003c9: ISZERO
000003ca: PUSH2 0x03d2
000003cd: JUMPI
000003ce: PUSH1 0x00
000003d0: DUP1
000003d1: REVERT
000003d2: JUMPDEST
000003d3: POP
000003d4: POP
000003d5: PUSH1 0x01
000003d7: PUSH1 0xa0
000003d9: PUSH1 0x02
000003db: EXP
000003dc: SUB
000003dd: DUP2
000003de: AND
000003df: PUSH1 0x00
000003e1: SWAP1
000003e2: DUP2
000003e3: MSTORE
000003e4: PUSH1 0x05
000003e6: PUSH1 0x20
000003e8: MSTORE
000003e9: PUSH1 0x40
000003eb: SWAP1
000003ec: KECCAK256
000003ed: DUP2
000003ee: PUSH2 0x03f8
000003f1: DUP3
000003f2: DUP3
000003f3: CALLER
000003f4: PUSH2 0x07a8
000003f7: JUMP
000003f8: JUMPDEST
000003f9: POP
000003fa: POP
000003fb: POP
000003fc: JUMP
000003fd: JUMPDEST
000003fe: PUSH1 0x01
00000400: PUSH1 0xa0
00000402: PUSH1 0x02
00000404: EXP
00000405: SUB
00000406: DUP2
00000407: AND
00000408: PUSH1 0x00
0000040a: SWAP1
0000040b: DUP2
0000040c: MSTORE
0000040d: PUSH1 0x20
0000040f: DUP2
00000410: SWAP1
00000411: MSTORE
00000412: PUSH1 0x40
00000414: DUP2
00000415: KECCAK256
00000416: PUSH1 0x03
00000418: DUP2
00000419: ADD
0000041a: SLOAD
0000041b: SWAP1
0000041c: SWAP2
0000041d: SWAP1
0000041e: DUP2
0000041f: SWAP1
00000420: GT
00000421: PUSH2 0x0429
00000424: JUMPI
00000425: PUSH1 0x00
00000427: DUP1
00000428: REVERT
00000429: JUMPDEST
0000042a: PUSH1 0x04
0000042c: DUP3
0000042d: ADD
0000042e: SLOAD
0000042f: PUSH1 0xff
00000431: AND
00000432: ISZERO
00000433: PUSH2 0x043b
00000436: JUMPI
00000437: PUSH1 0x00
00000439: DUP1
0000043a: REVERT
0000043b: JUMPDEST
0000043c: PUSH1 0x04
0000043e: DUP3
0000043f: ADD
00000440: DUP1
00000441: SLOAD
00000442: PUSH1 0xff
00000444: NOT
00000445: AND
00000446: PUSH1 0x01
00000448: OR
00000449: SWAP1
0000044a: SSTORE
0000044b: PUSH1 0x03
0000044d: DUP3
0000044e: ADD
0000044f: SLOAD
00000450: PUSH2 0x0493
00000453: SWAP1
00000454: DUP4
00000455: PUSH1 0x02
00000457: PUSH1 0x40
00000459: DUP1
0000045a: MLOAD
0000045b: SWAP1
0000045c: DUP2
0000045d: ADD
0000045e: PUSH1 0x40
00000460: MSTORE
00000461: SWAP2
00000462: SWAP1
00000463: DUP3
00000464: DUP3
00000465: PUSH1 0x02
00000467: PUSH1 0x20
00000469: MUL
0000046a: DUP3
0000046b: ADD
0000046c: SWAP2
0000046d: JUMPDEST
0000046e: DUP2
0000046f: SLOAD
00000470: DUP2
00000471: MSTORE
00000472: PUSH1 0x20
00000474: ADD
00000475: SWAP1
00000476: PUSH1 0x01
00000478: ADD
00000479: SWAP1
0000047a: DUP1
0000047b: DUP4
0000047c: GT
0000047d: PUSH2 0x046d
00000480: JUMPI
00000481: POP
00000482: POP
00000483: POP
00000484: POP
00000485: POP
00000486: PUSH2 0x0921
00000489: SWAP1
0000048a: SWAP2
0000048b: SWAP1
0000048c: PUSH4 0xffffffff
00000491: AND
00000492: JUMP
00000493: JUMPDEST
00000494: SWAP1
00000495: POP
00000496: PUSH1 0x00
00000498: DUP2
00000499: GT
0000049a: ISZERO
0000049b: PUSH2 0x03f8
0000049e: JUMPI
0000049f: PUSH1 0x01
000004a1: SLOAD
000004a2: PUSH2 0x04b1
000004a5: SWAP1
000004a6: DUP3
000004a7: PUSH4 0xffffffff
000004ac: PUSH2 0x0952
000004af: AND
000004b0: JUMP
000004b1: JUMPDEST
000004b2: PUSH1 0x01
000004b4: SSTORE
000004b5: PUSH1 0x02
000004b7: DUP3
000004b8: ADD
000004b9: SLOAD
000004ba: PUSH1 0x01
000004bc: PUSH1 0xa0
000004be: PUSH1 0x02
000004c0: EXP
000004c1: SUB
000004c2: AND
000004c3: DUP2
000004c4: PUSH1 0x40
000004c6: MLOAD
000004c7: PUSH1 0x00
000004c9: PUSH1 0x40
000004cb: MLOAD
000004cc: DUP1
000004cd: DUP4
000004ce: SUB
000004cf: DUP2
000004d0: DUP6
000004d1: DUP8
000004d2: GAS
000004d3: CALL
000004d4: SWAP3
000004d5: POP
000004d6: POP
000004d7: POP
000004d8: ISZERO
000004d9: ISZERO
000004da: PUSH2 0x03f8
000004dd: JUMPI
000004de: PUSH1 0x00
000004e0: DUP1
000004e1: REVERT
000004e2: JUMPDEST
000004e3: CALLER
000004e4: PUSH1 0x01
000004e6: PUSH1 0xa0
000004e8: PUSH1 0x02
000004ea: EXP
000004eb: SUB
000004ec: AND
000004ed: PUSH1 0x00
000004ef: SWAP1
000004f0: DUP2
000004f1: MSTORE
000004f2: PUSH1 0x20
000004f4: DUP2
000004f5: SWAP1
000004f6: MSTORE
000004f7: PUSH1 0x40
000004f9: SWAP1
000004fa: KECCAK256
000004fb: PUSH1 0x01
000004fd: DUP2
000004fe: ADD
000004ff: SLOAD
00000500: SWAP1
00000501: JUMPDEST
00000502: POP
00000503: SWAP1
00000504: JUMP
00000505: JUMPDEST
00000506: PUSH1 0x01
00000508: PUSH1 0xa0
0000050a: PUSH1 0x02
0000050c: EXP
0000050d: SUB
0000050e: SWAP1
0000050f: DUP2
00000510: AND
00000511: PUSH1 0x00
00000513: SWAP1
00000514: DUP2
00000515: MSTORE
00000516: PUSH1 0x20
00000518: DUP2
00000519: SWAP1
0000051a: MSTORE
0000051b: PUSH1 0x40
0000051d: SWAP1
0000051e: KECCAK256
0000051f: DUP1
00000520: SLOAD
00000521: PUSH1 0x01
00000523: DUP3
00000524: ADD
00000525: SLOAD
00000526: PUSH1 0x02
00000528: DUP4
00000529: ADD
0000052a: SLOAD
0000052b: PUSH1 0x03
0000052d: SWAP1
0000052e: SWAP4
0000052f: ADD
00000530: SLOAD
00000531: SWAP2
00000532: SWAP5
00000533: SWAP1
00000534: SWAP4
00000535: SWAP3
00000536: SWAP1
00000537: SWAP3
00000538: AND
00000539: SWAP2
0000053a: JUMP
0000053b: JUMPDEST
0000053c: PUSH1 0x04
0000053e: SLOAD
0000053f: DUP2
00000540: JUMP
00000541: JUMPDEST
00000542: PUSH1 0x00
00000544: DUP1
00000545: DUP1
00000546: JUMPDEST
00000547: PUSH1 0x02
00000549: SLOAD
0000054a: DUP3
0000054b: LT
0000054c: ISZERO
0000054d: PUSH2 0x05a8
00000550: JUMPI
00000551: PUSH1 0x02
00000553: DUP1
00000554: SLOAD
00000555: DUP4
00000556: SWAP1
00000557: DUP2
00000558: LT
00000559: PUSH2 0x055e
0000055c: JUMPI
0000055d: INVALID
0000055e: JUMPDEST
0000055f: PUSH1 0x00
00000561: SWAP2
00000562: DUP3
00000563: MSTORE
00000564: PUSH1 0x20
00000566: SWAP1
00000567: SWAP2
00000568: KECCAK256
00000569: ADD
0000056a: SLOAD
0000056b: PUSH1 0x01
0000056d: PUSH1 0xa0
0000056f: PUSH1 0x02
00000571: EXP
00000572: SUB
00000573: AND
00000574: SWAP1
00000575: POP
00000576: DUP3
00000577: DUP1
00000578: PUSH2 0x0592
0000057b: JUMPI
0000057c: POP
0000057d: DUP1
0000057e: PUSH1 0x01
00000580: PUSH1 0xa0
00000582: PUSH1 0x02
00000584: EXP
00000585: SUB
00000586: AND
00000587: CALLER
00000588: PUSH1 0x01
0000058a: PUSH1 0xa0
0000058c: PUSH1 0x02
0000058e: EXP
0000058f: SUB
00000590: AND
00000591: EQ
00000592: JUMPDEST
00000593: SWAP3
00000594: POP
00000595: PUSH2 0x059d
00000598: DUP2
00000599: PUSH2 0x0964
0000059c: JUMP
0000059d: JUMPDEST
0000059e: PUSH1 0x01
000005a0: SWAP1
000005a1: SWAP2
000005a2: ADD
000005a3: SWAP1
000005a4: PUSH2 0x0546
000005a7: JUMP
000005a8: JUMPDEST
000005a9: DUP3
000005aa: ISZERO
000005ab: ISZERO
000005ac: PUSH2 0x03f8
000005af: JUMPI
000005b0: PUSH1 0x00
000005b2: DUP1
000005b3: REVERT
000005b4: JUMPDEST
000005b5: PUSH2 0x05bf
000005b8: PUSH1 0x02
000005ba: CALLER
000005bb: PUSH2 0x08c4
000005be: JUMP
000005bf: JUMPDEST
000005c0: ISZERO
000005c1: ISZERO
000005c2: PUSH2 0x05ca
000005c5: JUMPI
000005c6: PUSH1 0x00
000005c8: DUP1
000005c9: REVERT
000005ca: JUMPDEST
000005cb: PUSH2 0x05d3
000005ce: CALLER
000005cf: PUSH2 0x0964
000005d2: JUMP
000005d3: JUMPDEST
000005d4: JUMP
000005d5: JUMPDEST
000005d6: PUSH1 0x00
000005d8: DUP1
000005d9: DUP1
000005da: CALLVALUE
000005db: DUP2
000005dc: SWAP1
000005dd: GT
000005de: PUSH2 0x05e6
000005e1: JUMPI
000005e2: PUSH1 0x00
000005e4: DUP1
000005e5: REVERT
000005e6: JUMPDEST
000005e7: PUSH1 0x01
000005e9: PUSH1 0xa0
000005eb: PUSH1 0x02
000005ed: EXP
000005ee: SUB
000005ef: CALLER
000005f0: AND
000005f1: PUSH1 0x00
000005f3: SWAP1
000005f4: DUP2
000005f5: MSTORE
000005f6: PUSH1 0x20
000005f8: DUP2
000005f9: SWAP1
000005fa: MSTORE
000005fb: PUSH1 0x40
000005fd: SWAP1
000005fe: KECCAK256
000005ff: PUSH1 0x03
00000601: DUP2
00000602: ADD
00000603: SLOAD
00000604: SWAP1
00000605: SWAP3
00000606: POP
00000607: ISZERO
00000608: PUSH2 0x0610
0000060b: JUMPI
0000060c: PUSH1 0x00
0000060e: DUP1
0000060f: REVERT
00000610: JUMPDEST
00000611: PUSH1 0x00
00000613: DUP3
00000614: PUSH1 0x01
00000616: ADD
00000617: SLOAD
00000618: GT
00000619: PUSH2 0x0621
0000061c: JUMPI
0000061d: PUSH1 0x00
0000061f: DUP1
00000620: REVERT
00000621: JUMPDEST
00000622: CALLVALUE
00000623: PUSH1 0x03
00000625: DUP4
00000626: ADD
00000627: DUP2
00000628: SWAP1
00000629: SSTORE
0000062a: PUSH2 0x0668
0000062d: SWAP1
0000062e: DUP4
0000062f: PUSH1 0x02
00000631: PUSH1 0x40
00000633: DUP1
00000634: MLOAD
00000635: SWAP1
00000636: DUP2
00000637: ADD
00000638: PUSH1 0x40
0000063a: SWAP1
0000063b: DUP2
0000063c: MSTORE
0000063d: DUP4
0000063e: SLOAD
0000063f: DUP3
00000640: MSTORE
00000641: SWAP1
00000642: SWAP3
00000643: SWAP2
00000644: SWAP1
00000645: DUP4
00000646: ADD
00000647: PUSH1 0x01
00000649: DUP4
0000064a: ADD
0000064b: PUSH1 0x20
0000064d: DUP6
0000064e: ADD
0000064f: DUP1
00000650: DUP4
00000651: GT
00000652: PUSH2 0x046d
00000655: JUMPI
00000656: POP
00000657: POP
00000658: POP
00000659: POP
0000065a: POP
0000065b: PUSH2 0x0921
0000065e: SWAP1
0000065f: SWAP2
00000660: SWAP1
00000661: PUSH4 0xffffffff
00000666: AND
00000667: JUMP
00000668: JUMPDEST
00000669: PUSH1 0x01
0000066b: SLOAD
0000066c: SWAP1
0000066d: SWAP2
0000066e: POP
0000066f: PUSH2 0x067e
00000672: SWAP1
00000673: DUP3
00000674: PUSH4 0xffffffff
00000679: PUSH2 0x09df
0000067c: AND
0000067d: JUMP
0000067e: JUMPDEST
0000067f: PUSH1 0x01
00000681: SSTORE
00000682: SWAP2
00000683: POP
00000684: POP
00000685: SWAP1
00000686: JUMP
00000687: JUMPDEST
00000688: PUSH1 0x02
0000068a: DUP1
0000068b: SLOAD
0000068c: DUP3
0000068d: SWAP1
0000068e: DUP2
0000068f: LT
00000690: PUSH2 0x0695
00000693: JUMPI
00000694: INVALID
00000695: JUMPDEST
00000696: PUSH1 0x00
00000698: SWAP2
00000699: DUP3
0000069a: MSTORE
0000069b: PUSH1 0x20
0000069d: SWAP1
0000069e: SWAP2
0000069f: KECCAK256
000006a0: ADD
000006a1: SLOAD
000006a2: PUSH1 0x01
000006a4: PUSH1 0xa0
000006a6: PUSH1 0x02
000006a8: EXP
000006a9: SUB
000006aa: AND
000006ab: SWAP1
000006ac: POP
000006ad: DUP2
000006ae: JUMP
000006af: JUMPDEST
000006b0: PUSH1 0x00
000006b2: DUP1
000006b3: DUP1
000006b4: PUSH8 0x06f05b59d3b20000
000006bd: DUP6
000006be: LT
000006bf: PUSH2 0x06c7
000006c2: JUMPI
000006c3: PUSH1 0x00
000006c5: DUP1
000006c6: REVERT
000006c7: JUMPDEST
000006c8: PUSH1 0x01
000006ca: PUSH1 0xa0
000006cc: PUSH1 0x02
000006ce: EXP
000006cf: SUB
000006d0: CALLER
000006d1: AND
000006d2: PUSH1 0x00
000006d4: SWAP1
000006d5: DUP2
000006d6: MSTORE
000006d7: PUSH1 0x20
000006d9: DUP2
000006da: SWAP1
000006db: MSTORE
000006dc: PUSH1 0x40
000006de: SWAP1
000006df: KECCAK256
000006e0: SWAP2
000006e1: POP
000006e2: DUP2
000006e3: PUSH1 0x01
000006e5: ADD
000006e6: SLOAD
000006e7: ISZERO
000006e8: PUSH2 0x06f0
000006eb: JUMPI
000006ec: PUSH1 0x00
000006ee: DUP1
000006ef: REVERT
000006f0: JUMPDEST
000006f1: PUSH2 0x0717
000006f4: PUSH2 0x070f
000006f7: PUSH2 0x0707
000006fa: DUP8
000006fb: PUSH1 0x02
000006fd: PUSH4 0xffffffff
00000702: PUSH2 0x09f5
00000705: AND
00000706: JUMP
00000707: JUMPDEST
00000708: PUSH1 0x07
0000070a: SLOAD
0000070b: PUSH2 0x0a0a
0000070e: JUMP
0000070f: JUMPDEST
00000710: PUSH1 0x06
00000712: SLOAD
00000713: PUSH2 0x0a21
00000716: JUMP
00000717: JUMPDEST
00000718: PUSH1 0x02
0000071a: DUP4
0000071b: ADD
0000071c: DUP1
0000071d: SLOAD
0000071e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000733: NOT
00000734: AND
00000735: PUSH1 0x01
00000737: PUSH1 0xa0
00000739: PUSH1 0x02
0000073b: EXP
0000073c: SUB
0000073d: DUP8
0000073e: AND
0000073f: OR
00000740: SWAP1
00000741: SSTORE
00000742: SWAP1
00000743: POP
00000744: PUSH1 0x40
00000746: DUP1
00000747: MLOAD
00000748: SWAP1
00000749: DUP2
0000074a: ADD
0000074b: PUSH1 0x40
0000074d: MSTORE
0000074e: DUP6
0000074f: DUP2
00000750: MSTORE
00000751: PUSH1 0x20
00000753: DUP2
00000754: ADD
00000755: PUSH2 0x0764
00000758: DUP8
00000759: DUP5
0000075a: PUSH4 0xffffffff
0000075f: PUSH2 0x09df
00000762: AND
00000763: JUMP
00000764: JUMPDEST
00000765: SWAP1
00000766: MSTORE
00000767: PUSH2 0x0773
0000076a: SWAP1
0000076b: DUP4
0000076c: SWAP1
0000076d: PUSH1 0x02
0000076f: PUSH2 0x0b9a
00000772: JUMP
00000773: JUMPDEST
00000774: POP
00000775: PUSH2 0x0784
00000778: DUP6
00000779: DUP3
0000077a: PUSH4 0xffffffff
0000077f: PUSH2 0x09df
00000782: AND
00000783: JUMP
00000784: JUMPDEST
00000785: SWAP6
00000786: SWAP5
00000787: POP
00000788: POP
00000789: POP
0000078a: POP
0000078b: POP
0000078c: JUMP
0000078d: JUMPDEST
0000078e: PUSH1 0x05
00000790: PUSH1 0x20
00000792: MSTORE
00000793: PUSH1 0x00
00000795: SWAP1
00000796: DUP2
00000797: MSTORE
00000798: PUSH1 0x40
0000079a: SWAP1
0000079b: KECCAK256
0000079c: PUSH1 0x01
0000079e: ADD
0000079f: SLOAD
000007a0: DUP2
000007a1: JUMP
000007a2: JUMPDEST
000007a3: PUSH1 0x07
000007a5: SLOAD
000007a6: DUP2
000007a7: JUMP
000007a8: JUMPDEST
000007a9: PUSH1 0x00
000007ab: PUSH2 0x0838
000007ae: DUP3
000007af: DUP5
000007b0: PUSH1 0x01
000007b2: PUSH1 0xa0
000007b4: PUSH1 0x02
000007b6: EXP
000007b7: SUB
000007b8: AND
000007b9: PUSH4 0x70a08231
000007be: ADDRESS
000007bf: PUSH1 0x40
000007c1: MLOAD
000007c2: PUSH1 0xe0
000007c4: PUSH1 0x02
000007c6: EXP
000007c7: PUSH4 0xffffffff
000007cc: DUP5
000007cd: AND
000007ce: MUL
000007cf: DUP2
000007d0: MSTORE
000007d1: PUSH1 0x01
000007d3: PUSH1 0xa0
000007d5: PUSH1 0x02
000007d7: EXP
000007d8: SUB
000007d9: SWAP1
000007da: SWAP2
000007db: AND
000007dc: PUSH1 0x04
000007de: DUP3
000007df: ADD
000007e0: MSTORE
000007e1: PUSH1 0x24
000007e3: ADD
000007e4: PUSH1 0x20
000007e6: PUSH1 0x40
000007e8: MLOAD
000007e9: DUP1
000007ea: DUP4
000007eb: SUB
000007ec: DUP2
000007ed: PUSH1 0x00
000007ef: DUP8
000007f0: DUP1
000007f1: EXTCODESIZE
000007f2: ISZERO
000007f3: ISZERO
000007f4: PUSH2 0x07fc
000007f7: JUMPI
000007f8: PUSH1 0x00
000007fa: DUP1
000007fb: REVERT
000007fc: JUMPDEST
000007fd: GAS
000007fe: CALL
000007ff: ISZERO
00000800: ISZERO
00000801: PUSH2 0x0809
00000804: JUMPI
00000805: PUSH1 0x00
00000807: DUP1
00000808: REVERT
00000809: JUMPDEST
0000080a: POP
0000080b: POP
0000080c: POP
0000080d: PUSH1 0x40
0000080f: MLOAD
00000810: DUP1
00000811: MLOAD
00000812: SWAP1
00000813: POP
00000814: PUSH1 0x40
00000816: DUP1
00000817: MLOAD
00000818: SWAP1
00000819: DUP2
0000081a: ADD
0000081b: PUSH1 0x40
0000081d: MSTORE
0000081e: PUSH1 0x01
00000820: DUP2
00000821: MSTORE
00000822: PUSH1 0x02
00000824: SLOAD
00000825: PUSH1 0x20
00000827: DUP3
00000828: ADD
00000829: MSTORE
0000082a: DUP8
0000082b: SWAP3
0000082c: SWAP2
0000082d: SWAP1
0000082e: PUSH4 0xffffffff
00000833: PUSH2 0x0a39
00000836: AND
00000837: JUMP
00000838: JUMPDEST
00000839: SWAP1
0000083a: POP
0000083b: DUP3
0000083c: PUSH1 0x01
0000083e: PUSH1 0xa0
00000840: PUSH1 0x02
00000842: EXP
00000843: SUB
00000844: AND
00000845: PUSH4 0xa9059cbb
0000084a: DUP4
0000084b: DUP4
0000084c: PUSH1 0x40
0000084e: MLOAD
0000084f: PUSH1 0xe0
00000851: PUSH1 0x02
00000853: EXP
00000854: PUSH4 0xffffffff
00000859: DUP6
0000085a: AND
0000085b: MUL
0000085c: DUP2
0000085d: MSTORE
0000085e: PUSH1 0x01
00000860: PUSH1 0xa0
00000862: PUSH1 0x02
00000864: EXP
00000865: SUB
00000866: SWAP1
00000867: SWAP3
00000868: AND
00000869: PUSH1 0x04
0000086b: DUP4
0000086c: ADD
0000086d: MSTORE
0000086e: PUSH1 0x24
00000870: DUP3
00000871: ADD
00000872: MSTORE
00000873: PUSH1 0x44
00000875: ADD
00000876: PUSH1 0x20
00000878: PUSH1 0x40
0000087a: MLOAD
0000087b: DUP1
0000087c: DUP4
0000087d: SUB
0000087e: DUP2
0000087f: PUSH1 0x00
00000881: DUP8
00000882: DUP1
00000883: EXTCODESIZE
00000884: ISZERO
00000885: ISZERO
00000886: PUSH2 0x088e
00000889: JUMPI
0000088a: PUSH1 0x00
0000088c: DUP1
0000088d: REVERT
0000088e: JUMPDEST
0000088f: GAS
00000890: CALL
00000891: ISZERO
00000892: ISZERO
00000893: PUSH2 0x089b
00000896: JUMPI
00000897: PUSH1 0x00
00000899: DUP1
0000089a: REVERT
0000089b: JUMPDEST
0000089c: POP
0000089d: POP
0000089e: POP
0000089f: PUSH1 0x40
000008a1: MLOAD
000008a2: DUP1
000008a3: MLOAD
000008a4: SWAP1
000008a5: POP
000008a6: ISZERO
000008a7: ISZERO
000008a8: PUSH2 0x08be
000008ab: JUMPI
000008ac: PUSH2 0x08bc
000008af: DUP5
000008b0: DUP4
000008b1: DUP4
000008b2: PUSH4 0xffffffff
000008b7: PUSH2 0x0b09
000008ba: AND
000008bb: JUMP
000008bc: JUMPDEST
000008bd: POP
000008be: JUMPDEST
000008bf: POP
000008c0: POP
000008c1: POP
000008c2: POP
000008c3: JUMP
000008c4: JUMPDEST
000008c5: PUSH1 0x00
000008c7: DUP1
000008c8: JUMPDEST
000008c9: DUP4
000008ca: SLOAD
000008cb: DUP2
000008cc: LT
000008cd: ISZERO
000008ce: PUSH2 0x0915
000008d1: JUMPI
000008d2: DUP3
000008d3: PUSH1 0x01
000008d5: PUSH1 0xa0
000008d7: PUSH1 0x02
000008d9: EXP
000008da: SUB
000008db: AND
000008dc: DUP5
000008dd: DUP3
000008de: DUP2
000008df: SLOAD
000008e0: DUP2
000008e1: LT
000008e2: ISZERO
000008e3: ISZERO
000008e4: PUSH2 0x08e9
000008e7: JUMPI
000008e8: INVALID
000008e9: JUMPDEST
000008ea: PUSH1 0x00
000008ec: SWAP2
000008ed: DUP3
000008ee: MSTORE
000008ef: PUSH1 0x20
000008f1: SWAP1
000008f2: SWAP2
000008f3: KECCAK256
000008f4: ADD
000008f5: SLOAD
000008f6: PUSH1 0x01
000008f8: PUSH1 0xa0
000008fa: PUSH1 0x02
000008fc: EXP
000008fd: SUB
000008fe: AND
000008ff: EQ
00000900: ISZERO
00000901: PUSH2 0x090d
00000904: JUMPI
00000905: PUSH1 0x01
00000907: SWAP2
00000908: POP
00000909: PUSH2 0x091a
0000090c: JUMP
0000090d: JUMPDEST
0000090e: PUSH1 0x01
00000910: ADD
00000911: PUSH2 0x08c8
00000914: JUMP
00000915: JUMPDEST
00000916: PUSH1 0x00
00000918: SWAP2
00000919: POP
0000091a: JUMPDEST
0000091b: POP
0000091c: SWAP3
0000091d: SWAP2
0000091e: POP
0000091f: POP
00000920: JUMP
00000921: JUMPDEST
00000922: PUSH1 0x00
00000924: PUSH2 0x0949
00000927: PUSH1 0x20
00000929: DUP5
0000092a: ADD
0000092b: MLOAD
0000092c: PUSH2 0x093d
0000092f: DUP6
00000930: MLOAD
00000931: DUP6
00000932: SWAP1
00000933: PUSH4 0xffffffff
00000938: PUSH2 0x0b6f
0000093b: AND
0000093c: JUMP
0000093d: JUMPDEST
0000093e: SWAP1
0000093f: PUSH4 0xffffffff
00000944: PUSH2 0x09f5
00000947: AND
00000948: JUMP
00000949: JUMPDEST
0000094a: SWAP1
0000094b: POP
0000094c: JUMPDEST
0000094d: SWAP3
0000094e: SWAP2
0000094f: POP
00000950: POP
00000951: JUMP
00000952: JUMPDEST
00000953: PUSH1 0x00
00000955: DUP3
00000956: DUP3
00000957: GT
00000958: ISZERO
00000959: PUSH2 0x095e
0000095c: JUMPI
0000095d: INVALID
0000095e: JUMPDEST
0000095f: POP
00000960: SWAP1
00000961: SUB
00000962: SWAP1
00000963: JUMP
00000964: JUMPDEST
00000965: PUSH1 0x00
00000967: PUSH2 0x09af
0000096a: DUP3
0000096b: PUSH2 0x0989
0000096e: PUSH1 0x01
00000970: SLOAD
00000971: ADDRESS
00000972: PUSH1 0x01
00000974: PUSH1 0xa0
00000976: PUSH1 0x02
00000978: EXP
00000979: SUB
0000097a: AND
0000097b: BALANCE
0000097c: PUSH2 0x0952
0000097f: SWAP1
00000980: SWAP2
00000981: SWAP1
00000982: PUSH4 0xffffffff
00000987: AND
00000988: JUMP
00000989: JUMPDEST
0000098a: PUSH1 0x40
0000098c: DUP1
0000098d: MLOAD
0000098e: SWAP1
0000098f: DUP2
00000990: ADD
00000991: PUSH1 0x40
00000993: MSTORE
00000994: PUSH1 0x01
00000996: DUP2
00000997: MSTORE
00000998: PUSH1 0x02
0000099a: SLOAD
0000099b: PUSH1 0x20
0000099d: DUP3
0000099e: ADD
0000099f: MSTORE
000009a0: PUSH1 0x03
000009a2: SWAP3
000009a3: SWAP2
000009a4: SWAP1
000009a5: PUSH4 0xffffffff
000009aa: PUSH2 0x0a39
000009ad: AND
000009ae: JUMP
000009af: JUMPDEST
000009b0: SWAP1
000009b1: POP
000009b2: DUP2
000009b3: PUSH1 0x01
000009b5: PUSH1 0xa0
000009b7: PUSH1 0x02
000009b9: EXP
000009ba: SUB
000009bb: AND
000009bc: DUP2
000009bd: PUSH1 0x40
000009bf: MLOAD
000009c0: PUSH1 0x00
000009c2: PUSH1 0x40
000009c4: MLOAD
000009c5: DUP1
000009c6: DUP4
000009c7: SUB
000009c8: DUP2
000009c9: DUP6
000009ca: DUP8
000009cb: GAS
000009cc: CALL
000009cd: SWAP3
000009ce: POP
000009cf: POP
000009d0: POP
000009d1: ISZERO
000009d2: ISZERO
000009d3: PUSH2 0x09db
000009d6: JUMPI
000009d7: PUSH1 0x00
000009d9: DUP1
000009da: REVERT
000009db: JUMPDEST
000009dc: POP
000009dd: POP
000009de: JUMP
000009df: JUMPDEST
000009e0: PUSH1 0x00
000009e2: DUP3
000009e3: DUP3
000009e4: ADD
000009e5: DUP4
000009e6: DUP2
000009e7: LT
000009e8: ISZERO
000009e9: PUSH2 0x09ee
000009ec: JUMPI
000009ed: INVALID
000009ee: JUMPDEST
000009ef: SWAP4
000009f0: SWAP3
000009f1: POP
000009f2: POP
000009f3: POP
000009f4: JUMP
000009f5: JUMPDEST
000009f6: PUSH1 0x00
000009f8: DUP2
000009f9: DUP4
000009fa: DUP2
000009fb: ISZERO
000009fc: ISZERO
000009fd: PUSH2 0x0a02
00000a00: JUMPI
00000a01: INVALID
00000a02: JUMPDEST
00000a03: DIV
00000a04: SWAP4
00000a05: SWAP3
00000a06: POP
00000a07: POP
00000a08: POP
00000a09: JUMP
00000a0a: JUMPDEST
00000a0b: PUSH1 0x00
00000a0d: DUP2
00000a0e: DUP4
00000a0f: LT
00000a10: ISZERO
00000a11: PUSH2 0x0a1b
00000a14: JUMPI
00000a15: POP
00000a16: DUP2
00000a17: PUSH2 0x094c
00000a1a: JUMP
00000a1b: JUMPDEST
00000a1c: POP
00000a1d: SWAP2
00000a1e: SWAP1
00000a1f: POP
00000a20: JUMP
00000a21: JUMPDEST
00000a22: PUSH1 0x00
00000a24: DUP2
00000a25: DUP4
00000a26: LT
00000a27: ISZERO
00000a28: PUSH2 0x0a32
00000a2b: JUMPI
00000a2c: POP
00000a2d: DUP1
00000a2e: PUSH2 0x094c
00000a31: JUMP
00000a32: JUMPDEST
00000a33: POP
00000a34: SWAP1
00000a35: SWAP2
00000a36: SWAP1
00000a37: POP
00000a38: JUMP
00000a39: JUMPDEST
00000a3a: PUSH1 0x00
00000a3c: DUP1
00000a3d: PUSH1 0x00
00000a3f: DUP1
00000a40: PUSH2 0x0a66
00000a43: PUSH2 0x0a59
00000a46: DUP10
00000a47: PUSH1 0x01
00000a49: ADD
00000a4a: SLOAD
00000a4b: DUP9
00000a4c: PUSH2 0x09df
00000a4f: SWAP1
00000a50: SWAP2
00000a51: SWAP1
00000a52: PUSH4 0xffffffff
00000a57: AND
00000a58: JUMP
00000a59: JUMPDEST
00000a5a: DUP7
00000a5b: SWAP1
00000a5c: PUSH4 0xffffffff
00000a61: PUSH2 0x0921
00000a64: AND
00000a65: JUMP
00000a66: JUMPDEST
00000a67: PUSH1 0x01
00000a69: PUSH1 0xa0
00000a6b: PUSH1 0x02
00000a6d: EXP
00000a6e: SUB
00000a6f: DUP9
00000a70: AND
00000a71: PUSH1 0x00
00000a73: SWAP1
00000a74: DUP2
00000a75: MSTORE
00000a76: PUSH1 0x20
00000a78: DUP11
00000a79: SWAP1
00000a7a: MSTORE
00000a7b: PUSH1 0x40
00000a7d: SWAP1
00000a7e: KECCAK256
00000a7f: SLOAD
00000a80: SWAP1
00000a81: SWAP4
00000a82: POP
00000a83: SWAP2
00000a84: POP
00000a85: DUP3
00000a86: DUP3
00000a87: GT
00000a88: ISZERO
00000a89: PUSH2 0x0a8e
00000a8c: JUMPI
00000a8d: INVALID
00000a8e: JUMPDEST
00000a8f: PUSH2 0x0a9e
00000a92: DUP4
00000a93: DUP4
00000a94: PUSH4 0xffffffff
00000a99: PUSH2 0x0952
00000a9c: AND
00000a9d: JUMP
00000a9e: JUMPDEST
00000a9f: PUSH1 0x01
00000aa1: PUSH1 0xa0
00000aa3: PUSH1 0x02
00000aa5: EXP
00000aa6: SUB
00000aa7: DUP9
00000aa8: AND
00000aa9: PUSH1 0x00
00000aab: SWAP1
00000aac: DUP2
00000aad: MSTORE
00000aae: PUSH1 0x20
00000ab0: DUP11
00000ab1: SWAP1
00000ab2: MSTORE
00000ab3: PUSH1 0x40
00000ab5: SWAP1
00000ab6: KECCAK256
00000ab7: SLOAD
00000ab8: SWAP1
00000ab9: SWAP2
00000aba: POP
00000abb: PUSH2 0x0aca
00000abe: SWAP1
00000abf: DUP3
00000ac0: PUSH4 0xffffffff
00000ac5: PUSH2 0x09df
00000ac8: AND
00000ac9: JUMP
00000aca: JUMPDEST
00000acb: PUSH1 0x01
00000acd: PUSH1 0xa0
00000acf: PUSH1 0x02
00000ad1: EXP
00000ad2: SUB
00000ad3: DUP9
00000ad4: AND
00000ad5: PUSH1 0x00
00000ad7: SWAP1
00000ad8: DUP2
00000ad9: MSTORE
00000ada: PUSH1 0x20
00000adc: DUP11
00000add: SWAP1
00000ade: MSTORE
00000adf: PUSH1 0x40
00000ae1: SWAP1
00000ae2: KECCAK256
00000ae3: SSTORE
00000ae4: PUSH1 0x01
00000ae6: DUP9
00000ae7: ADD
00000ae8: SLOAD
00000ae9: PUSH2 0x0af8
00000aec: SWAP1
00000aed: DUP3
00000aee: PUSH4 0xffffffff
00000af3: PUSH2 0x09df
00000af6: AND
00000af7: JUMP
00000af8: JUMPDEST
00000af9: PUSH1 0x01
00000afb: DUP10
00000afc: ADD
00000afd: SSTORE
00000afe: SWAP3
00000aff: POP
00000b00: POP
00000b01: POP
00000b02: SWAP5
00000b03: SWAP4
00000b04: POP
00000b05: POP
00000b06: POP
00000b07: POP
00000b08: JUMP
00000b09: JUMPDEST
00000b0a: PUSH1 0x01
00000b0c: PUSH1 0xa0
00000b0e: PUSH1 0x02
00000b10: EXP
00000b11: SUB
00000b12: DUP3
00000b13: AND
00000b14: PUSH1 0x00
00000b16: SWAP1
00000b17: DUP2
00000b18: MSTORE
00000b19: PUSH1 0x20
00000b1b: DUP5
00000b1c: SWAP1
00000b1d: MSTORE
00000b1e: PUSH1 0x40
00000b20: DUP2
00000b21: KECCAK256
00000b22: SLOAD
00000b23: PUSH2 0x0b32
00000b26: SWAP1
00000b27: DUP4
00000b28: PUSH4 0xffffffff
00000b2d: PUSH2 0x0952
00000b30: AND
00000b31: JUMP
00000b32: JUMPDEST
00000b33: PUSH1 0x01
00000b35: PUSH1 0xa0
00000b37: PUSH1 0x02
00000b39: EXP
00000b3a: SUB
00000b3b: DUP5
00000b3c: AND
00000b3d: PUSH1 0x00
00000b3f: SWAP1
00000b40: DUP2
00000b41: MSTORE
00000b42: PUSH1 0x20
00000b44: DUP7
00000b45: SWAP1
00000b46: MSTORE
00000b47: PUSH1 0x40
00000b49: SWAP1
00000b4a: KECCAK256
00000b4b: SSTORE
00000b4c: PUSH1 0x01
00000b4e: DUP5
00000b4f: ADD
00000b50: SLOAD
00000b51: PUSH2 0x0b60
00000b54: SWAP1
00000b55: DUP4
00000b56: PUSH4 0xffffffff
00000b5b: PUSH2 0x0952
00000b5e: AND
00000b5f: JUMP
00000b60: JUMPDEST
00000b61: DUP5
00000b62: PUSH1 0x01
00000b64: ADD
00000b65: DUP2
00000b66: SWAP1
00000b67: SSTORE
00000b68: POP
00000b69: SWAP4
00000b6a: SWAP3
00000b6b: POP
00000b6c: POP
00000b6d: POP
00000b6e: JUMP
00000b6f: JUMPDEST
00000b70: PUSH1 0x00
00000b72: DUP1
00000b73: DUP4
00000b74: ISZERO
00000b75: ISZERO
00000b76: PUSH2 0x0b82
00000b79: JUMPI
00000b7a: PUSH1 0x00
00000b7c: SWAP2
00000b7d: POP
00000b7e: PUSH2 0x091a
00000b81: JUMP
00000b82: JUMPDEST
00000b83: POP
00000b84: DUP3
00000b85: DUP3
00000b86: MUL
00000b87: DUP3
00000b88: DUP5
00000b89: DUP3
00000b8a: DUP2
00000b8b: ISZERO
00000b8c: ISZERO
00000b8d: PUSH2 0x0b92
00000b90: JUMPI
00000b91: INVALID
00000b92: JUMPDEST
00000b93: DIV
00000b94: EQ
00000b95: PUSH2 0x09ee
00000b98: JUMPI
00000b99: INVALID
00000b9a: JUMPDEST
00000b9b: DUP3
00000b9c: PUSH1 0x02
00000b9e: DUP2
00000b9f: ADD
00000ba0: SWAP3
00000ba1: DUP3
00000ba2: ISZERO
00000ba3: PUSH2 0x0bc8
00000ba6: JUMPI
00000ba7: SWAP2
00000ba8: PUSH1 0x20
00000baa: MUL
00000bab: DUP3
00000bac: ADD
00000bad: JUMPDEST
00000bae: DUP3
00000baf: DUP2
00000bb0: GT
00000bb1: ISZERO
00000bb2: PUSH2 0x0bc8
00000bb5: JUMPI
00000bb6: DUP3
00000bb7: MLOAD
00000bb8: DUP3
00000bb9: SSTORE
00000bba: SWAP2
00000bbb: PUSH1 0x20
00000bbd: ADD
00000bbe: SWAP2
00000bbf: SWAP1
00000bc0: PUSH1 0x01
00000bc2: ADD
00000bc3: SWAP1
00000bc4: PUSH2 0x0bad
00000bc7: JUMP
00000bc8: JUMPDEST
00000bc9: POP
00000bca: PUSH2 0x0501
00000bcd: SWAP3
00000bce: PUSH2 0x0be8
00000bd1: SWAP3
00000bd2: POP
00000bd3: SWAP1
00000bd4: JUMPDEST
00000bd5: DUP1
00000bd6: DUP3
00000bd7: GT
00000bd8: ISZERO
00000bd9: PUSH2 0x0501
00000bdc: JUMPI
00000bdd: PUSH1 0x00
00000bdf: DUP2
00000be0: SSTORE
00000be1: PUSH1 0x01
00000be3: ADD
00000be4: PUSH2 0x0bd4
00000be7: JUMP
00000be8: JUMPDEST
00000be9: SWAP1
00000bea: JUMP
00000beb: STOP
00000bec: LOG1
00000bed: PUSH6 0x627a7a723058
00000bf4: KECCAK256
00000bf5: UNKNOWN(0x4C)
00000bf6: CHAINID
00000bf7: BLOBHASH
00000bf8: SHL
00000bf9: NOT
00000bfa: SWAP10
00000bfb: UNKNOWN(0xAA)
00000bfc: UNKNOWN(0xC0)
00000bfd: POP
00000bfe: BLOCKHASH
00000bff: DUP11
00000c00: UNKNOWN(0xBC)
00000c01: UNKNOWN(0xD7)
00000c02: PUSH30

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: 0x5bcad3166d79ab6b6a8714ff819389dc78f2f7e44e1459ad7f9e7729db3a642c
call_targets: 0xe6bd9c2996e41f2ac1fa1eeff2abb25fdb6c00f6
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x5bcad3166d79ab6b6a8714ff819389dc78f2f7e44e1459ad7f9e7729db3a642c",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xe6bd9c2996e41f2ac1fa1eeff2abb25fdb6c00f6"
    ],
    "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": "0x08fec02d",
            "selector": "0x08fec02d",
            "calldata_variants": [
                "0x08fec02d",
                "0x08fec02d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x14c2ab11",
            "selector": "0x14c2ab11",
            "calldata_variants": [
                "0x14c2ab11",
                "0x14c2ab110000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x34b9384c",
            "selector": "0x34b9384c",
            "calldata_variants": [
                "0x34b9384c",
                "0x34b9384c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x80776e2e",
            "selector": "0x80776e2e",
            "calldata_variants": [
                "0x80776e2e",
                "0x80776e2e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8404c195",
            "selector": "0x8404c195",
            "calldata_variants": [
                "0x8404c195",
                "0x8404c1950000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9413f25c",
            "selector": "0x9413f25c",
            "calldata_variants": [
                "0x9413f25c",
                "0x9413f25c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9592619c",
            "selector": "0x9592619c",
            "calldata_variants": [
                "0x9592619c",
                "0x9592619c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9af608c9",
            "selector": "0x9af608c9",
            "calldata_variants": [
                "0x9af608c9",
                "0x9af608c90000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1235,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2046,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2192,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [],
    "untrusted_call_count": 4
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x5bcad3166d79ab6b6a8714ff819389dc78f2f7e44e1459ad7f9e7729db3a642c
call_targets: 0xe6bd9c2996e41f2ac1fa1eeff2abb25fdb6c00f6
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x5bcad3166d79ab6b6a8714ff819389dc78f2f7e44e1459ad7f9e7729db3a642c",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xe6bd9c2996e41f2ac1fa1eeff2abb25fdb6c00f6"
    ],
    "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": "0x08fec02d",
            "selector": "0x08fec02d",
            "calldata_variants": [
                "0x08fec02d",
                "0x08fec02d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x14c2ab11",
            "selector": "0x14c2ab11",
            "calldata_variants": [
                "0x14c2ab11",
                "0x14c2ab110000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x34b9384c",
            "selector": "0x34b9384c",
            "calldata_variants": [
                "0x34b9384c",
                "0x34b9384c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x80776e2e",
            "selector": "0x80776e2e",
            "calldata_variants": [
                "0x80776e2e",
                "0x80776e2e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8404c195",
            "selector": "0x8404c195",
            "calldata_variants": [
                "0x8404c195",
                "0x8404c1950000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9413f25c",
            "selector": "0x9413f25c",
            "calldata_variants": [
                "0x9413f25c",
                "0x9413f25c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9592619c",
            "selector": "0x9592619c",
            "calldata_variants": [
                "0x9592619c",
                "0x9592619c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9af608c9",
            "selector": "0x9af608c9",
            "calldata_variants": [
                "0x9af608c9",
                "0x9af608c90000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1235,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2046,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2192,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": []
}