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

Analysis Run

6b769b34-b8fc-4399-ab17-88943918ed56

complete
Chain ID
1
Address
Block Number
Created
Fri, Jan 2, 2026 6:37 PM
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 DELEGATECALL target 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
31315 report.consolidate complete 1 / 1 3 months ago
110888 artifact.fetch complete 1 / 3 1 week ago
110889 tool.cast_disasm complete 1 / 3 1 week ago
110890 analysis.bundle complete 1 / 3 1 week ago
110891 capability.graph complete 1 / 3 1 week ago
110892 detector.run complete 1 / 3 1 week ago
110893 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 path found in the runtime bytecode; all sensitive operations (value CALLs, token transfers, DELEGATECALL) are gated by hardcoded admin addresses and/or whitelist mappings that appear admin-only to modify, so no unprivileged profit path is evident from bytecode alone.
View stderr
[codex:343407] OpenAI Codex v0.77.0 (research preview)
[codex:343407] --------
[codex:343407] workdir: /tmp/codex-multi-jzzk4s_z
[codex:343407] model: gpt-5.2-codex
[codex:343407] provider: openai
[codex:343407] approval: never
[codex:343407] sandbox: read-only
[codex:343407] reasoning effort: xhigh
[codex:343407] reasoning summaries: auto
[codex:343407] session id: 019b7ffa-e086-7d20-ade6-4af56b271e08
[codex:343407] --------
[codex:343407] user
[codex:343407] 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:343407] 
[codex:343407] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:343407] 
[codex:343407] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:343407] - Gas inefficiency, code quality, or best practices
[codex:343407] - Theoretical vulnerabilities without a clear extraction path
[codex:343407] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:343407] - Issues requiring social engineering or off-chain coordination
[codex:343407] 
[codex:343407] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:343407] - CALL/DELEGATECALL with controllable destination or calldata
[codex:343407] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:343407] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:343407] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:343407] - External calls before state updates (reentrancy)
[codex:343407] - SELFDESTRUCT with controllable beneficiary
[codex:343407] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:343407] 
[codex:343407] For each finding, you MUST explain:
[codex:343407] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:343407] 2. The concrete sequence of transactions to extract value
[codex:343407] 3. Why you believe this is exploitable (not just suspicious)
[codex:343407] 
[codex:343407] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:343407] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:343407] 
[codex:343407] Output MUST be valid JSON matching the provided schema.
[codex:343407] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:343407] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:343407] mcp startup: no servers
[codex:343407] 
[codex:343407] thinking
[codex:343407] **Deciding on file reading method**
[codex:343407] exec
[codex:343407] /bin/bash -lc ls in /tmp/codex-multi-jzzk4s_z succeeded in 5ms:
[codex:343407] BYTECODE_BUNDLE.txt
[codex:343407] codex-output-schema.json
[codex:343407] exec
[codex:343407] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-jzzk4s_z succeeded in 5ms:
[codex:343407] Runtime bytecode bundle for best-effort auditing.
[codex:343407] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:343407] 
[codex:343407] FILE: runtime_bytecode.hex
[codex:343407] 0x6080604052600436106100865760003560e01c80638b9d7cd3116100595780638b9d7cd31461016557806392379af71461017a578063cfcaa498146101b3578063ee6804f0146101e6578063f79b6ec0146101ee57610086565b806338db9cf0146100885780635781aa86146100bb5780636bbc0545146100e557806387180a6714610132575b005b34801561009457600080fd5b50610086600480360360208110156100ab57600080fd5b50356001600160a01b0316610221565b3480156100c757600080fd5b50610086600480360360208110156100de57600080fd5b503561029b565b3480156100f157600080fd5b5061011e6004803603604081101561010857600080fd5b506001600160a01b0381351690602001356103c7565b604080519115158252519081900360200190f35b34801561013e57600080fd5b506100866004803603602081101561015557600080fd5b50356001600160a01b0316610535565b34801561017157600080fd5b506100866105a9565b34801561018657600080fd5b506100866004803603604081101561019d57600080fd5b506001600160a01b038135169060200135610726565b3480156101bf57600080fd5b50610086600480360360208110156101d657600080fd5b50356001600160a01b03166108a3565b61008661091a565b3480156101fa57600080fd5b506100866004803603602081101561021157600080fd5b50356001600160a01b031661091c565b3373b3e20b057cbf2c0d9d099bac6772af0c948c6ade146102745760408051600160e51b62461bcd0281526020600482015260026024820152600160f41b61065302604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b337344dba507b909a6f92f3a708a844d4c4f23622bee14806102d057503373ed7ce3de532213314bb07622d8bf606a4ba03cf1145b806102ee57503373e185e2ab092e8a046cbb815174d9d6aae1c91d9a145b8061030c57503373513a916e91af25745a01b2709d2083b6b3477815145b8061032657503360009081526020819052604090205460ff165b8061034457503373b3e20b057cbf2c0d9d099bac6772af0c948c6ade145b15156103825760408051600160e51b62461bcd0281526020600482015260026024820152600160f41b61065302604482015290519081900360640190fd5b60405173b3e20b057cbf2c0d9d099bac6772af0c948c6ade9082156108fc029083906000818181858888f193505050501580156103c3573d6000803e3d6000fd5b5050565b6000337344dba507b909a6f92f3a708a844d4c4f23622bee14806103fe57503373ed7ce3de532213314bb07622d8bf606a4ba03cf1145b8061041c57503373e185e2ab092e8a046cbb815174d9d6aae1c91d9a145b8061043a57503373513a916e91af25745a01b2709d2083b6b3477815145b8061045457503360009081526020819052604090205460ff165b8061047257503373b3e20b057cbf2c0d9d099bac6772af0c948c6ade145b15156104b05760408051600160e51b62461bcd0281526020600482015260026024820152600160f41b61065302604482015290519081900360640190fd5b60408051600160e01b63095ea7b30281523060048201526024810184905290516001600160a01b0385169163095ea7b39160448083019260209291908290030181600087803b15801561050257600080fd5b505af1158015610516573d6000803e3d6000fd5b505050506040513d602081101561052c57600080fd5b50519392505050565b3373b3e20b057cbf2c0d9d099bac6772af0c948c6ade146105885760408051600160e51b62461bcd0281526020600482015260026024820152600160f41b61065302604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b337344dba507b909a6f92f3a708a844d4c4f23622bee14806105de57503373ed7ce3de532213314bb07622d8bf606a4ba03cf1145b806105fc57503373e185e2ab092e8a046cbb815174d9d6aae1c91d9a145b8061061a57503373513a916e91af25745a01b2709d2083b6b3477815145b8061063457503360009081526020819052604090205460ff165b8061065257503373b3e20b057cbf2c0d9d099bac6772af0c948c6ade145b15156106905760408051600160e51b62461bcd0281526020600482015260026024820152600160f41b61065302604482015290519081900360640190fd5b6000604051602060048237516001600160a01b03811660009081526001602052604090205490915060ff1615156106f95760408051600160e51b62461bcd0281526020600482015260026024820152600160f41b61065302604482015290519081900360640190fd5b604051602436036024823760008160231936018185600019f43d6000833e808015610722573d83f35b3d83fd5b337344dba507b909a6f92f3a708a844d4c4f23622bee148061075b57503373ed7ce3de532213314bb07622d8bf606a4ba03cf1145b8061077957503373e185e2ab092e8a046cbb815174d9d6aae1c91d9a145b8061079757503373513a916e91af25745a01b2709d2083b6b3477815145b806107b157503360009081526020819052604090205460ff165b806107cf57503373b3e20b057cbf2c0d9d099bac6772af0c948c6ade145b151561080d5760408051600160e51b62461bcd0281526020600482015260026024820152600160f41b61065302604482015290519081900360640190fd5b60408051600160e01b63a9059cbb02815273b3e20b057cbf2c0d9d099bac6772af0c948c6ade60048201526024810183905290516001600160a01b0384169163a9059cbb9160448083019260209291908290030181600087803b15801561087357600080fd5b505af1158015610887573d6000803e3d6000fd5b505050506040513d602081101561089d57600080fd5b50505050565b3373b3e20b057cbf2c0d9d099bac6772af0c948c6ade146108f65760408051600160e51b62461bcd0281526020600482015260026024820152600160f41b61065302604482015290519081900360640190fd5b6001600160a01b03166000908152602081905260409020805460ff19166001179055565b565b3373b3e20b057cbf2c0d9d099bac6772af0c948c6ade1461096f5760408051600160e51b62461bcd0281526020600482015260026024820152600160f41b61065302604482015290519081900360640190fd5b6001600160a01b03166000908152602081905260409020805460ff1916905556fea165627a7a7230582076a204cde5afc2e3ee7ac7089f9b380eb5741310c682c5c3b6b067ecb27841470029
[codex:343407] 
[codex:343407] thinking
[codex:343407] **Analyzing bytecode for exploit paths**
[codex:343407] exec
[codex:343407] /bin/bash -lc "python - <<'PY'
[codex:343407] from eth_utils import decode_hex
[codex:343407] import sys
[codex:343407] 
[codex:343407] # minimal disassembler
[codex:343407] code=open('/tmp/codex-multi-jzzk4s_z/BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:343407] code=bytes.fromhex(code)
[codex:343407] 
[codex:343407] opnames = {
[codex:343407]     **{i: f'PUSH{i-0x5f}' for i in range(0x60,0x80)},
[codex:343407]     **{i: f'DUP{i-0x7f}' for i in range(0x80,0x90)},
[codex:343407]     **{i: f'SWAP{i-0x8f}' for i in range(0x90,0xa0)},
[codex:343407]     **{i: f'LOG{i-0xa0}' for i in range(0xa0,0xa5)},
[codex:343407] }
[codex:343407] # add some op names
[codex:343407] names = {
[codex:343407] 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:343407] 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:343407] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:343407] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:343407] 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:343407] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:343407] }
[codex:343407] 
[codex:343407] def disasm(start=0,end=None):
[codex:343407]     i=start
[codex:343407]     out=[]
[codex:343407]     while i < len(code) and (end is None or i<end):
[codex:343407]         op=code[i]
[codex:343407]         name=names.get(op) or opnames.get(op) or f'OP{op:02x}'
[codex:343407]         i+=1
[codex:343407]         if 0x60<=op<0x80:
[codex:343407]             n=op-0x5f
[codex:343407]             data=code[i:i+n]
[codex:343407]             i+=n
[codex:343407]             out.append((i-n-1, name, data.hex()))
[codex:343407]         else:
[codex:343407]             out.append((i-1,name,''))
[codex:343407]     return out
[codex:343407] 
[codex:343407] # print region around 0x5a9, 0x6f0
[codex:343407] for start in [0x5a0,0x6a0,0x700]:
[codex:343407]     print('---',hex(start))
[codex:343407]     for off,name,data in disasm(start, start+0x120):
[codex:343407]         if data:
[codex:343407]             print(f'{off:04x}: {name} 0x{data}')
[codex:343407]         else:
[codex:343407]             print(f'{off:04x}: {name}')
[codex:343407] PY" in /tmp/codex-multi-jzzk4s_z succeeded in 225ms:
[codex:343407] --- 0x5a0
[codex:343407] 05a0: DUP1
[codex:343407] 05a1: SLOAD
[codex:343407] 05a2: PUSH1 0xff
[codex:343407] 05a4: NOT
[codex:343407] 05a5: AND
[codex:343407] 05a6: SWAP1
[codex:343407] 05a7: SSTORE
[codex:343407] 05a8: JUMP
[codex:343407] 05a9: JUMPDEST
[codex:343407] 05aa: CALLER
[codex:343407] 05ab: PUSH20 0x44dba507b909a6f92f3a708a844d4c4f23622bee
[codex:343407] 05c0: EQ
[codex:343407] 05c1: DUP1
[codex:343407] 05c2: PUSH2 0x05de
[codex:343407] 05c5: JUMPI
[codex:343407] 05c6: POP
[codex:343407] 05c7: CALLER
[codex:343407] 05c8: PUSH20 0xed7ce3de532213314bb07622d8bf606a4ba03cf1
[codex:343407] 05dd: EQ
[codex:343407] 
[codex:343407] thinking
[codex:343407] **Continuing disassembly at 0x80d**
[codex:343407] exec
[codex:343407] /bin/bash -lc "python - <<'PY'
[codex:343407] from eth_utils import decode_hex
[codex:343407] code=open('/tmp/codex-multi-jzzk4s_z/BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:343407] code=bytes.fromhex(code)
[codex:343407] # disasm around 0x80d to 0x8b0
[codex:343407] opnames = {**{i:f'PUSH{i-0x5f}' for i in range(0x60,0x80)}, **{i:f'DUP{i-0x7f}' for i in range(0x80,0x90)}, **{i:f'SWAP{i-0x8f}' for i in range(0x90,0xa0)}, **{i:f'LOG{i-0xa0}' for i in range(0xa0,0xa5)}}
[codex:343407] names={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:343407] 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:343407] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:343407] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:343407] 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:343407] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:343407] 
[codex:343407] def disasm(start,end):
[codex:343407]     i=start
[codex:343407]     while i<end:
[codex:343407]         op=code[i]
[codex:343407]         name=names.get(op) or opnames.get(op) or f'OP{op:02x}'
[codex:343407]         i+=1
[codex:343407]         if 0x60<=op<0x80:
[codex:343407]             n=op-0x5f; data=code[i:i+n]; i+=n
[codex:343407]             print(f'{i-n-1:04x}: {name} 0x{data.hex()}')
[codex:343407]         else:
[codex:343407]             print(f'{i-1:04x}: {name}')
[codex:343407] 
[codex:343407] print('--- 0x80d-0x930')
[codex:343407] disasm(0x80d,0x930)
[codex:343407] PY" in /tmp/codex-multi-jzzk4s_z succeeded in 214ms:
[codex:343407] --- 0x80d-0x930
[codex:343407] 080d: JUMPDEST
[codex:343407] 080e: PUSH1 0x40
[codex:343407] 0810: DUP1
[codex:343407] 0811: MLOAD
[codex:343407] 0812: PUSH1 0x01
[codex:343407] 0814: PUSH1 0xe0
[codex:343407] 0816: SHL
[codex:343407] 0817: PUSH4 0xa9059cbb
[codex:343407] 081c: MUL
[codex:343407] 081d: DUP2
[codex:343407] 081e: MSTORE
[codex:343407] 081f: PUSH20 0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade
[codex:343407] 0834: PUSH1 0x04
[codex:343407] 0836: DUP3
[codex:343407] 0837: ADD
[codex:343407] 0838: MSTORE
[codex:343407] 0839: PUSH1 0x24
[codex:343407] 083b: DUP2
[codex:343407] 083c: ADD
[codex:343407] 
[codex:343407] thinking
[codex:343407] **Finishing review**
[codex:343407] exec
[codex:343407] /bin/bash -lc "python - <<'PY'
[codex:343407] code=open('/tmp/codex-multi-jzzk4s_z/BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:343407] code=bytes.fromhex(code)
[codex:343407] # disasm around 0x91c onwards
[codex:343407] opnames={**{i:f'PUSH{i-0x5f}' for i in range(0x60,0x80)},**{i:f'DUP{i-0x7f}' for i in range(0x80,0x90)},**{i:f'SWAP{i-0x8f}' for i in range(0x90,0xa0)},**{i:f'LOG{i-0xa0}' for i in range(0xa0,0xa5)}}
[codex:343407] ops={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:343407] 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:343407] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:343407] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:343407] 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:343407] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:343407] 
[codex:343407] def disasm(start,end):
[codex:343407]     i=start
[codex:343407]     while i<end:
[codex:343407]         op=code[i]
[codex:343407]         name=ops.get(op) or opnames.get(op) or f'OP{op:02x}'
[codex:343407]         i+=1
[codex:343407]         if 0x60<=op<0x80:
[codex:343407]             n=op-0x5f; data=code[i:i+n]; i+=n
[codex:343407]             print(f'{i-n-1:04x}: {name} 0x{data.hex()}')
[codex:343407]         else:
[codex:343407]             print(f'{i-1:04x}: {name}')
[codex:343407] 
[codex:343407] print('--- 0x91c-0x9f0')
[codex:343407] disasm(0x91c,0x9f0)
[codex:343407] PY" in /tmp/codex-multi-jzzk4s_z exited 1 in 30ms:
[codex:343407] --- 0x91c-0x9f0
[codex:343407] 091c: JUMPDEST
[codex:343407] 091d: CALLER
[codex:343407] 091e: PUSH20 0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade
[codex:343407] 0933: EQ
[codex:343407] 0934: PUSH2 0x096f
[codex:343407] 0937: JUMPI
[codex:343407] 0938: PUSH1 0x40
[codex:343407] 093a: DUP1
[codex:343407] 093b: MLOAD
[codex:343407] 093c: PUSH1 0x01
[codex:343407] 093e: PUSH1 0xe5
[codex:343407] 0940: SHL
[codex:343407] 0941: PUSH3 0x461bcd
[codex:343407] 0945: MUL
[codex:343407] 0946: DUP2
[codex:343407] 0947: MSTORE
[codex:343407] 0948: PUSH1 0x20
[codex:343407] 094a: PUSH1 0x04
[codex:343407] 094c: DUP3
[codex:343407] 
[codex:343407] 
[codex:343407] thinking
[codex:343407] **Analyzing delegatecall authorization logic**
[codex:343407] thinking
[codex:343407] **Reviewing whitelist modification and access control**
[codex:343407] 
[codex:343407] I'm checking if any functions allow non-admins to add themselves to the whitelist mapping; all setter functions require admin privileges, so only authorized addresses can modify the whitelist. This confirms delegatecall targets are restricted to admin-approved addresses, maintaining strict access control despite the potential risks of delegatecalling user-supplied addresses.
[codex:343407] exec
[codex:343407] /bin/bash -lc "python - <<'PY'
[codex:343407] code=open('/tmp/codex-multi-jzzk4s_z/BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:343407] code=bytes.fromhex(code)
[codex:343407] # disasm around 0x220-0x3d0
[codex:343407] opnames={**{i:f'PUSH{i-0x5f}' for i in range(0x60,0x80)},**{i:f'DUP{i-0x7f}' for i in range(0x80,0x90)},**{i:f'SWAP{i-0x8f}' for i in range(0x90,0xa0)},**{i:f'LOG{i-0xa0}' for i in range(0xa0,0xa5)}}
[codex:343407] ops={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:343407] 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:343407] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:343407] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:343407] 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:343407] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:343407] 
[codex:343407] def disasm(start,end):
[codex:343407]     i=start
[codex:343407]     while i<end:
[codex:343407]         op=code[i]
[codex:343407]         name=ops.get(op) or opnames.get(op) or f'OP{op:02x}'
[codex:343407]         i+=1
[codex:343407]         if 0x60<=op<0x80:
[codex:343407]             n=op-0x5f; data=code[i:i+n]; i+=n
[codex:343407]             print(f'{i-n-1:04x}: {name} 0x{data.hex()}')
[codex:343407]         else:
[codex:343407]             print(f'{i-1:04x}: {name}')
[codex:343407] 
[codex:343407] print('--- 0x220-0x3c0')
[codex:343407] disasm(0x220,0x3c0)
[codex:343407] PY" in /tmp/codex-multi-jzzk4s_z succeeded in 19ms:
[codex:343407] --- 0x220-0x3c0
[codex:343407] 0220: JUMP
[codex:343407] 0221: JUMPDEST
[codex:343407] 0222: CALLER
[codex:343407] 0223: PUSH20 0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade
[codex:343407] 0238: EQ
[codex:343407] 0239: PUSH2 0x0274
[codex:343407] 023c: JUMPI
[codex:343407] 023d: PUSH1 0x40
[codex:343407] 023f: DUP1
[codex:343407] 0240: MLOAD
[codex:343407] 0241: PUSH1 0x01
[codex:343407] 0243: PUSH1 0xe5
[codex:343407] 0245: SHL
[codex:343407] 0246: PUSH3 0x461bcd
[codex:343407] 024a: MUL
[codex:343407] 024b: DUP2
[codex:343407] 024c: MSTORE
[codex:343407] 024d: PUSH1 0x20
[codex:343407] 024f: PUSH1 0x04
[codex:343407] 
[codex:343407] thinking
[codex:343407] **Continuing exploration from offset 0x3c0**
[codex:343407] exec
[codex:343407] /bin/bash -lc "python - <<'PY'
[codex:343407] code=open('/tmp/codex-multi-jzzk4s_z/BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:343407] code=bytes.fromhex(code)
[codex:343407] # disasm around 0x3b0-0x520
[codex:343407] opnames={**{i:f'PUSH{i-0x5f}' for i in range(0x60,0x80)},**{i:f'DUP{i-0x7f}' for i in range(0x80,0x90)},**{i:f'SWAP{i-0x8f}' for i in range(0x90,0xa0)},**{i:f'LOG{i-0xa0}' for i in range(0xa0,0xa5)}}
[codex:343407] ops={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:343407] 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:343407] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:343407] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:343407] 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:343407] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:343407] 
[codex:343407] def disasm(start,end):
[codex:343407]     i=start
[codex:343407]     while i<end:
[codex:343407]         op=code[i]
[codex:343407]         name=ops.get(op) or opnames.get(op) or f'OP{op:02x}'
[codex:343407]         i+=1
[codex:343407]         if 0x60<=op<0x80:
[codex:343407]             n=op-0x5f; data=code[i:i+n]; i+=n
[codex:343407]             print(f'{i-n-1:04x}: {name} 0x{data.hex()}')
[codex:343407]         else:
[codex:343407]             print(f'{i-1:04x}: {name}')
[codex:343407] 
[codex:343407] print('--- 0x3b0-0x520')
[codex:343407] disasm(0x3b0,0x520)
[codex:343407] PY" in /tmp/codex-multi-jzzk4s_z succeeded in 18ms:
[codex:343407] --- 0x3b0-0x520
[codex:343407] 03b0: POP
[codex:343407] 03b1: POP
[codex:343407] 03b2: POP
[codex:343407] 03b3: ISZERO
[codex:343407] 03b4: DUP1
[codex:343407] 03b5: ISZERO
[codex:343407] 03b6: PUSH2 0x03c3
[codex:343407] 03b9: JUMPI
[codex:343407] 03ba: RETURNDATASIZE
[codex:343407] 03bb: PUSH1 0x00
[codex:343407] 03bd: DUP1
[codex:343407] 03be: RETURNDATACOPY
[codex:343407] 03bf: RETURNDATASIZE
[codex:343407] 03c0: PUSH1 0x00
[codex:343407] 03c2: REVERT
[codex:343407] 03c3: JUMPDEST
[codex:343407] 03c4: POP
[codex:343407] 03c5: POP
[codex:343407] 03c6: JUMP
[codex:343407] 
[codex:343407] thinking
[codex:343407] **Analyzing function call mechanics**
[codex:343407] exec
[codex:343407] /bin/bash -lc "python - <<'PY'
[codex:343407] code=open('/tmp/codex-multi-jzzk4s_z/BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:343407] code=bytes.fromhex(code)
[codex:343407] # disasm around 0x520-0x5b0
[codex:343407] opnames={**{i:f'PUSH{i-0x5f}' for i in range(0x60,0x80)},**{i:f'DUP{i-0x7f}' for i in range(0x80,0x90)},**{i:f'SWAP{i-0x8f}' for i in range(0x90,0xa0)},**{i:f'LOG{i-0xa0}' for i in range(0xa0,0xa5)}}
[codex:343407] ops={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:343407] 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:343407] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:343407] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:343407] 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:343407] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:343407] 
[codex:343407] def disasm(start,end):
[codex:343407]     i=start
[codex:343407]     while i<end:
[codex:343407]         op=code[i]
[codex:343407]         name=ops.get(op) or opnames.get(op) or f'OP{op:02x}'
[codex:343407]         i+=1
[codex:343407]         if 0x60<=op<0x80:
[codex:343407]             n=op-0x5f; data=code[i:i+n]; i+=n
[codex:343407]             print(f'{i-n-1:04x}: {name} 0x{data.hex()}')
[codex:343407]         else:
[codex:343407]             print(f'{i-1:04x}: {name}')
[codex:343407] 
[codex:343407] print('--- 0x520-0x5b0')
[codex:343407] disasm(0x520,0x5b0)
[codex:343407] PY" in /tmp/codex-multi-jzzk4s_z succeeded in 18ms:
[codex:343407] --- 0x520-0x5b0
[codex:343407] 0520: SHA3
[codex:343407] 0521: DUP2
[codex:343407] 0522: LT
[codex:343407] 0523: ISZERO
[codex:343407] 0524: PUSH2 0x052c
[codex:343407] 0527: JUMPI
[codex:343407] 0528: PUSH1 0x00
[codex:343407] 052a: DUP1
[codex:343407] 052b: REVERT
[codex:343407] 052c: JUMPDEST
[codex:343407] 052d: POP
[codex:343407] 052e: MLOAD
[codex:343407] 052f: SWAP4
[codex:343407] 0530: SWAP3
[codex:343407] 0531: POP
[codex:343407] 0532: POP
[codex:343407] 0533: POP
[codex:343407] 0534: JUMP
[codex:343407] 0535: JUMPDEST
[codex:343407] 
[codex:343407] 
[codex:343407] thinking
[codex:343407] **Analyzing bytecode for exploit paths**
[codex:343407] thinking
[codex:343407] **Preparing formal analysis summary**
[codex:343407] codex
[codex:343407] {"no_findings":true,"summary":"No concrete, exploitable value-extraction path found in the runtime bytecode; all sensitive operations (value CALLs, token transfers, DELEGATECALL) are gated by hardcoded admin addresses and/or whitelist mappings that appear admin-only to modify, so no unprivileged profit path is evident from bytecode alone.","findings":[]}
[codex:343407] tokens used
[codex:343407] 58,528
[codex:343407] {"no_findings":true,"summary":"No concrete, exploitable value-extraction path found in the runtime bytecode; all sensitive operations (value CALLs, token transfers, DELEGATECALL) are gated by hardcoded admin addresses and/or whitelist mappings that appear admin-only to modify, so no unprivileged profit path is evident from bytecode alone.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-02T18:37:49.704958+00:00",
        "returncode": 0
    },
    "summary": "No concrete, exploitable value-extraction path found in the runtime bytecode; all sensitive operations (value CALLs, token transfers, DELEGATECALL) are gated by hardcoded admin addresses and/or whitelist mappings that appear admin-only to modify, so no unprivileged profit path is evident from bytecode alone.",
    "raw_final": {
        "summary": "No concrete, exploitable value-extraction path found in the runtime bytecode; all sensitive operations (value CALLs, token transfers, DELEGATECALL) are gated by hardcoded admin addresses and/or whitelist mappings that appear admin-only to modify, so no unprivileged profit path is evident from bytecode alone.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
3
EXT*/BALANCE
2
Total opcodes
1409
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0086
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x8b9d7cd3
00000019: GT
0000001a: PUSH2 0x0059
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0x8b9d7cd3
00000024: EQ
00000025: PUSH2 0x0165
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0x92379af7
0000002f: EQ
00000030: PUSH2 0x017a
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xcfcaa498
0000003a: EQ
0000003b: PUSH2 0x01b3
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xee6804f0
00000045: EQ
00000046: PUSH2 0x01e6
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf79b6ec0
00000050: EQ
00000051: PUSH2 0x01ee
00000054: JUMPI
00000055: PUSH2 0x0086
00000058: JUMP
00000059: JUMPDEST
0000005a: DUP1
0000005b: PUSH4 0x38db9cf0
00000060: EQ
00000061: PUSH2 0x0088
00000064: JUMPI
00000065: DUP1
00000066: PUSH4 0x5781aa86
0000006b: EQ
0000006c: PUSH2 0x00bb
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0x6bbc0545
00000076: EQ
00000077: PUSH2 0x00e5
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0x87180a67
00000081: EQ
00000082: PUSH2 0x0132
00000085: JUMPI
00000086: JUMPDEST
00000087: STOP
00000088: JUMPDEST
00000089: CALLVALUE
0000008a: DUP1
0000008b: ISZERO
0000008c: PUSH2 0x0094
0000008f: JUMPI
00000090: PUSH1 0x00
00000092: DUP1
00000093: REVERT
00000094: JUMPDEST
00000095: POP
00000096: PUSH2 0x0086
00000099: PUSH1 0x04
0000009b: DUP1
0000009c: CALLDATASIZE
0000009d: SUB
0000009e: PUSH1 0x20
000000a0: DUP2
000000a1: LT
000000a2: ISZERO
000000a3: PUSH2 0x00ab
000000a6: JUMPI
000000a7: PUSH1 0x00
000000a9: DUP1
000000aa: REVERT
000000ab: JUMPDEST
000000ac: POP
000000ad: CALLDATALOAD
000000ae: PUSH1 0x01
000000b0: PUSH1 0x01
000000b2: PUSH1 0xa0
000000b4: SHL
000000b5: SUB
000000b6: AND
000000b7: PUSH2 0x0221
000000ba: JUMP
000000bb: JUMPDEST
000000bc: CALLVALUE
000000bd: DUP1
000000be: ISZERO
000000bf: PUSH2 0x00c7
000000c2: JUMPI
000000c3: PUSH1 0x00
000000c5: DUP1
000000c6: REVERT
000000c7: JUMPDEST
000000c8: POP
000000c9: PUSH2 0x0086
000000cc: PUSH1 0x04
000000ce: DUP1
000000cf: CALLDATASIZE
000000d0: SUB
000000d1: PUSH1 0x20
000000d3: DUP2
000000d4: LT
000000d5: ISZERO
000000d6: PUSH2 0x00de
000000d9: JUMPI
000000da: PUSH1 0x00
000000dc: DUP1
000000dd: REVERT
000000de: JUMPDEST
000000df: POP
000000e0: CALLDATALOAD
000000e1: PUSH2 0x029b
000000e4: JUMP
000000e5: JUMPDEST
000000e6: CALLVALUE
000000e7: DUP1
000000e8: ISZERO
000000e9: PUSH2 0x00f1
000000ec: JUMPI
000000ed: PUSH1 0x00
000000ef: DUP1
000000f0: REVERT
000000f1: JUMPDEST
000000f2: POP
000000f3: PUSH2 0x011e
000000f6: PUSH1 0x04
000000f8: DUP1
000000f9: CALLDATASIZE
000000fa: SUB
000000fb: PUSH1 0x40
000000fd: DUP2
000000fe: LT
000000ff: ISZERO
00000100: PUSH2 0x0108
00000103: JUMPI
00000104: PUSH1 0x00
00000106: DUP1
00000107: REVERT
00000108: JUMPDEST
00000109: POP
0000010a: PUSH1 0x01
0000010c: PUSH1 0x01
0000010e: PUSH1 0xa0
00000110: SHL
00000111: SUB
00000112: DUP2
00000113: CALLDATALOAD
00000114: AND
00000115: SWAP1
00000116: PUSH1 0x20
00000118: ADD
00000119: CALLDATALOAD
0000011a: PUSH2 0x03c7
0000011d: JUMP
0000011e: JUMPDEST
0000011f: PUSH1 0x40
00000121: DUP1
00000122: MLOAD
00000123: SWAP2
00000124: ISZERO
00000125: ISZERO
00000126: DUP3
00000127: MSTORE
00000128: MLOAD
00000129: SWAP1
0000012a: DUP2
0000012b: SWAP1
0000012c: SUB
0000012d: PUSH1 0x20
0000012f: ADD
00000130: SWAP1
00000131: RETURN
00000132: JUMPDEST
00000133: CALLVALUE
00000134: DUP1
00000135: ISZERO
00000136: PUSH2 0x013e
00000139: JUMPI
0000013a: PUSH1 0x00
0000013c: DUP1
0000013d: REVERT
0000013e: JUMPDEST
0000013f: POP
00000140: PUSH2 0x0086
00000143: PUSH1 0x04
00000145: DUP1
00000146: CALLDATASIZE
00000147: SUB
00000148: PUSH1 0x20
0000014a: DUP2
0000014b: LT
0000014c: ISZERO
0000014d: PUSH2 0x0155
00000150: JUMPI
00000151: PUSH1 0x00
00000153: DUP1
00000154: REVERT
00000155: JUMPDEST
00000156: POP
00000157: CALLDATALOAD
00000158: PUSH1 0x01
0000015a: PUSH1 0x01
0000015c: PUSH1 0xa0
0000015e: SHL
0000015f: SUB
00000160: AND
00000161: PUSH2 0x0535
00000164: JUMP
00000165: JUMPDEST
00000166: CALLVALUE
00000167: DUP1
00000168: ISZERO
00000169: PUSH2 0x0171
0000016c: JUMPI
0000016d: PUSH1 0x00
0000016f: DUP1
00000170: REVERT
00000171: JUMPDEST
00000172: POP
00000173: PUSH2 0x0086
00000176: PUSH2 0x05a9
00000179: JUMP
0000017a: JUMPDEST
0000017b: CALLVALUE
0000017c: DUP1
0000017d: ISZERO
0000017e: PUSH2 0x0186
00000181: JUMPI
00000182: PUSH1 0x00
00000184: DUP1
00000185: REVERT
00000186: JUMPDEST
00000187: POP
00000188: PUSH2 0x0086
0000018b: PUSH1 0x04
0000018d: DUP1
0000018e: CALLDATASIZE
0000018f: SUB
00000190: PUSH1 0x40
00000192: DUP2
00000193: LT
00000194: ISZERO
00000195: PUSH2 0x019d
00000198: JUMPI
00000199: PUSH1 0x00
0000019b: DUP1
0000019c: REVERT
0000019d: JUMPDEST
0000019e: POP
0000019f: PUSH1 0x01
000001a1: PUSH1 0x01
000001a3: PUSH1 0xa0
000001a5: SHL
000001a6: SUB
000001a7: DUP2
000001a8: CALLDATALOAD
000001a9: AND
000001aa: SWAP1
000001ab: PUSH1 0x20
000001ad: ADD
000001ae: CALLDATALOAD
000001af: PUSH2 0x0726
000001b2: JUMP
000001b3: JUMPDEST
000001b4: CALLVALUE
000001b5: DUP1
000001b6: ISZERO
000001b7: PUSH2 0x01bf
000001ba: JUMPI
000001bb: PUSH1 0x00
000001bd: DUP1
000001be: REVERT
000001bf: JUMPDEST
000001c0: POP
000001c1: PUSH2 0x0086
000001c4: PUSH1 0x04
000001c6: DUP1
000001c7: CALLDATASIZE
000001c8: SUB
000001c9: PUSH1 0x20
000001cb: DUP2
000001cc: LT
000001cd: ISZERO
000001ce: PUSH2 0x01d6
000001d1: JUMPI
000001d2: PUSH1 0x00
000001d4: DUP1
000001d5: REVERT
000001d6: JUMPDEST
000001d7: POP
000001d8: CALLDATALOAD
000001d9: PUSH1 0x01
000001db: PUSH1 0x01
000001dd: PUSH1 0xa0
000001df: SHL
000001e0: SUB
000001e1: AND
000001e2: PUSH2 0x08a3
000001e5: JUMP
000001e6: JUMPDEST
000001e7: PUSH2 0x0086
000001ea: PUSH2 0x091a
000001ed: JUMP
000001ee: JUMPDEST
000001ef: CALLVALUE
000001f0: DUP1
000001f1: ISZERO
000001f2: PUSH2 0x01fa
000001f5: JUMPI
000001f6: PUSH1 0x00
000001f8: DUP1
000001f9: REVERT
000001fa: JUMPDEST
000001fb: POP
000001fc: PUSH2 0x0086
000001ff: PUSH1 0x04
00000201: DUP1
00000202: CALLDATASIZE
00000203: SUB
00000204: PUSH1 0x20
00000206: DUP2
00000207: LT
00000208: ISZERO
00000209: PUSH2 0x0211
0000020c: JUMPI
0000020d: PUSH1 0x00
0000020f: DUP1
00000210: REVERT
00000211: JUMPDEST
00000212: POP
00000213: CALLDATALOAD
00000214: PUSH1 0x01
00000216: PUSH1 0x01
00000218: PUSH1 0xa0
0000021a: SHL
0000021b: SUB
0000021c: AND
0000021d: PUSH2 0x091c
00000220: JUMP
00000221: JUMPDEST
00000222: CALLER
00000223: PUSH20 0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade
00000238: EQ
00000239: PUSH2 0x0274
0000023c: JUMPI
0000023d: PUSH1 0x40
0000023f: DUP1
00000240: MLOAD
00000241: PUSH1 0x01
00000243: PUSH1 0xe5
00000245: SHL
00000246: PUSH3 0x461bcd
0000024a: MUL
0000024b: DUP2
0000024c: MSTORE
0000024d: PUSH1 0x20
0000024f: PUSH1 0x04
00000251: DUP3
00000252: ADD
00000253: MSTORE
00000254: PUSH1 0x02
00000256: PUSH1 0x24
00000258: DUP3
00000259: ADD
0000025a: MSTORE
0000025b: PUSH1 0x01
0000025d: PUSH1 0xf4
0000025f: SHL
00000260: PUSH2 0x0653
00000263: MUL
00000264: PUSH1 0x44
00000266: DUP3
00000267: ADD
00000268: MSTORE
00000269: SWAP1
0000026a: MLOAD
0000026b: SWAP1
0000026c: DUP2
0000026d: SWAP1
0000026e: SUB
0000026f: PUSH1 0x64
00000271: ADD
00000272: SWAP1
00000273: REVERT
00000274: JUMPDEST
00000275: PUSH1 0x01
00000277: PUSH1 0x01
00000279: PUSH1 0xa0
0000027b: SHL
0000027c: SUB
0000027d: AND
0000027e: PUSH1 0x00
00000280: SWAP1
00000281: DUP2
00000282: MSTORE
00000283: PUSH1 0x01
00000285: PUSH1 0x20
00000287: DUP2
00000288: SWAP1
00000289: MSTORE
0000028a: PUSH1 0x40
0000028c: SWAP1
0000028d: SWAP2
0000028e: KECCAK256
0000028f: DUP1
00000290: SLOAD
00000291: PUSH1 0xff
00000293: NOT
00000294: AND
00000295: SWAP1
00000296: SWAP2
00000297: OR
00000298: SWAP1
00000299: SSTORE
0000029a: JUMP
0000029b: JUMPDEST
0000029c: CALLER
0000029d: PUSH20 0x44dba507b909a6f92f3a708a844d4c4f23622bee
000002b2: EQ
000002b3: DUP1
000002b4: PUSH2 0x02d0
000002b7: JUMPI
000002b8: POP
000002b9: CALLER
000002ba: PUSH20 0xed7ce3de532213314bb07622d8bf606a4ba03cf1
000002cf: EQ
000002d0: JUMPDEST
000002d1: DUP1
000002d2: PUSH2 0x02ee
000002d5: JUMPI
000002d6: POP
000002d7: CALLER
000002d8: PUSH20 0xe185e2ab092e8a046cbb815174d9d6aae1c91d9a
000002ed: EQ
000002ee: JUMPDEST
000002ef: DUP1
000002f0: PUSH2 0x030c
000002f3: JUMPI
000002f4: POP
000002f5: CALLER
000002f6: PUSH20 0x513a916e91af25745a01b2709d2083b6b3477815
0000030b: EQ
0000030c: JUMPDEST
0000030d: DUP1
0000030e: PUSH2 0x0326
00000311: JUMPI
00000312: POP
00000313: CALLER
00000314: PUSH1 0x00
00000316: SWAP1
00000317: DUP2
00000318: MSTORE
00000319: PUSH1 0x20
0000031b: DUP2
0000031c: SWAP1
0000031d: MSTORE
0000031e: PUSH1 0x40
00000320: SWAP1
00000321: KECCAK256
00000322: SLOAD
00000323: PUSH1 0xff
00000325: AND
00000326: JUMPDEST
00000327: DUP1
00000328: PUSH2 0x0344
0000032b: JUMPI
0000032c: POP
0000032d: CALLER
0000032e: PUSH20 0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade
00000343: EQ
00000344: JUMPDEST
00000345: ISZERO
00000346: ISZERO
00000347: PUSH2 0x0382
0000034a: JUMPI
0000034b: PUSH1 0x40
0000034d: DUP1
0000034e: MLOAD
0000034f: PUSH1 0x01
00000351: PUSH1 0xe5
00000353: SHL
00000354: PUSH3 0x461bcd
00000358: MUL
00000359: DUP2
0000035a: MSTORE
0000035b: PUSH1 0x20
0000035d: PUSH1 0x04
0000035f: DUP3
00000360: ADD
00000361: MSTORE
00000362: PUSH1 0x02
00000364: PUSH1 0x24
00000366: DUP3
00000367: ADD
00000368: MSTORE
00000369: PUSH1 0x01
0000036b: PUSH1 0xf4
0000036d: SHL
0000036e: PUSH2 0x0653
00000371: MUL
00000372: PUSH1 0x44
00000374: DUP3
00000375: ADD
00000376: MSTORE
00000377: SWAP1
00000378: MLOAD
00000379: SWAP1
0000037a: DUP2
0000037b: SWAP1
0000037c: SUB
0000037d: PUSH1 0x64
0000037f: ADD
00000380: SWAP1
00000381: REVERT
00000382: JUMPDEST
00000383: PUSH1 0x40
00000385: MLOAD
00000386: PUSH20 0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade
0000039b: SWAP1
0000039c: DUP3
0000039d: ISZERO
0000039e: PUSH2 0x08fc
000003a1: MUL
000003a2: SWAP1
000003a3: DUP4
000003a4: SWAP1
000003a5: PUSH1 0x00
000003a7: DUP2
000003a8: DUP2
000003a9: DUP2
000003aa: DUP6
000003ab: DUP9
000003ac: DUP9
000003ad: CALL
000003ae: SWAP4
000003af: POP
000003b0: POP
000003b1: POP
000003b2: POP
000003b3: ISZERO
000003b4: DUP1
000003b5: ISZERO
000003b6: PUSH2 0x03c3
000003b9: JUMPI
000003ba: RETURNDATASIZE
000003bb: PUSH1 0x00
000003bd: DUP1
000003be: RETURNDATACOPY
000003bf: RETURNDATASIZE
000003c0: PUSH1 0x00
000003c2: REVERT
000003c3: JUMPDEST
000003c4: POP
000003c5: POP
000003c6: JUMP
000003c7: JUMPDEST
000003c8: PUSH1 0x00
000003ca: CALLER
000003cb: PUSH20 0x44dba507b909a6f92f3a708a844d4c4f23622bee
000003e0: EQ
000003e1: DUP1
000003e2: PUSH2 0x03fe
000003e5: JUMPI
000003e6: POP
000003e7: CALLER
000003e8: PUSH20 0xed7ce3de532213314bb07622d8bf606a4ba03cf1
000003fd: EQ
000003fe: JUMPDEST
000003ff: DUP1
00000400: PUSH2 0x041c
00000403: JUMPI
00000404: POP
00000405: CALLER
00000406: PUSH20 0xe185e2ab092e8a046cbb815174d9d6aae1c91d9a
0000041b: EQ
0000041c: JUMPDEST
0000041d: DUP1
0000041e: PUSH2 0x043a
00000421: JUMPI
00000422: POP
00000423: CALLER
00000424: PUSH20 0x513a916e91af25745a01b2709d2083b6b3477815
00000439: EQ
0000043a: JUMPDEST
0000043b: DUP1
0000043c: PUSH2 0x0454
0000043f: JUMPI
00000440: POP
00000441: CALLER
00000442: PUSH1 0x00
00000444: SWAP1
00000445: DUP2
00000446: MSTORE
00000447: PUSH1 0x20
00000449: DUP2
0000044a: SWAP1
0000044b: MSTORE
0000044c: PUSH1 0x40
0000044e: SWAP1
0000044f: KECCAK256
00000450: SLOAD
00000451: PUSH1 0xff
00000453: AND
00000454: JUMPDEST
00000455: DUP1
00000456: PUSH2 0x0472
00000459: JUMPI
0000045a: POP
0000045b: CALLER
0000045c: PUSH20 0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade
00000471: EQ
00000472: JUMPDEST
00000473: ISZERO
00000474: ISZERO
00000475: PUSH2 0x04b0
00000478: JUMPI
00000479: PUSH1 0x40
0000047b: DUP1
0000047c: MLOAD
0000047d: PUSH1 0x01
0000047f: PUSH1 0xe5
00000481: SHL
00000482: PUSH3 0x461bcd
00000486: MUL
00000487: DUP2
00000488: MSTORE
00000489: PUSH1 0x20
0000048b: PUSH1 0x04
0000048d: DUP3
0000048e: ADD
0000048f: MSTORE
00000490: PUSH1 0x02
00000492: PUSH1 0x24
00000494: DUP3
00000495: ADD
00000496: MSTORE
00000497: PUSH1 0x01
00000499: PUSH1 0xf4
0000049b: SHL
0000049c: PUSH2 0x0653
0000049f: MUL
000004a0: PUSH1 0x44
000004a2: DUP3
000004a3: ADD
000004a4: MSTORE
000004a5: SWAP1
000004a6: MLOAD
000004a7: SWAP1
000004a8: DUP2
000004a9: SWAP1
000004aa: SUB
000004ab: PUSH1 0x64
000004ad: ADD
000004ae: SWAP1
000004af: REVERT
000004b0: JUMPDEST
000004b1: PUSH1 0x40
000004b3: DUP1
000004b4: MLOAD
000004b5: PUSH1 0x01
000004b7: PUSH1 0xe0
000004b9: SHL
000004ba: PUSH4 0x095ea7b3
000004bf: MUL
000004c0: DUP2
000004c1: MSTORE
000004c2: ADDRESS
000004c3: PUSH1 0x04
000004c5: DUP3
000004c6: ADD
000004c7: MSTORE
000004c8: PUSH1 0x24
000004ca: DUP2
000004cb: ADD
000004cc: DUP5
000004cd: SWAP1
000004ce: MSTORE
000004cf: SWAP1
000004d0: MLOAD
000004d1: PUSH1 0x01
000004d3: PUSH1 0x01
000004d5: PUSH1 0xa0
000004d7: SHL
000004d8: SUB
000004d9: DUP6
000004da: AND
000004db: SWAP2
000004dc: PUSH4 0x095ea7b3
000004e1: SWAP2
000004e2: PUSH1 0x44
000004e4: DUP1
000004e5: DUP4
000004e6: ADD
000004e7: SWAP3
000004e8: PUSH1 0x20
000004ea: SWAP3
000004eb: SWAP2
000004ec: SWAP1
000004ed: DUP3
000004ee: SWAP1
000004ef: SUB
000004f0: ADD
000004f1: DUP2
000004f2: PUSH1 0x00
000004f4: DUP8
000004f5: DUP1
000004f6: EXTCODESIZE
000004f7: ISZERO
000004f8: DUP1
000004f9: ISZERO
000004fa: PUSH2 0x0502
000004fd: JUMPI
000004fe: PUSH1 0x00
00000500: DUP1
00000501: REVERT
00000502: JUMPDEST
00000503: POP
00000504: GAS
00000505: CALL
00000506: ISZERO
00000507: DUP1
00000508: ISZERO
00000509: PUSH2 0x0516
0000050c: JUMPI
0000050d: RETURNDATASIZE
0000050e: PUSH1 0x00
00000510: DUP1
00000511: RETURNDATACOPY
00000512: RETURNDATASIZE
00000513: PUSH1 0x00
00000515: REVERT
00000516: JUMPDEST
00000517: POP
00000518: POP
00000519: POP
0000051a: POP
0000051b: PUSH1 0x40
0000051d: MLOAD
0000051e: RETURNDATASIZE
0000051f: PUSH1 0x20
00000521: DUP2
00000522: LT
00000523: ISZERO
00000524: PUSH2 0x052c
00000527: JUMPI
00000528: PUSH1 0x00
0000052a: DUP1
0000052b: REVERT
0000052c: JUMPDEST
0000052d: POP
0000052e: MLOAD
0000052f: SWAP4
00000530: SWAP3
00000531: POP
00000532: POP
00000533: POP
00000534: JUMP
00000535: JUMPDEST
00000536: CALLER
00000537: PUSH20 0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade
0000054c: EQ
0000054d: PUSH2 0x0588
00000550: JUMPI
00000551: PUSH1 0x40
00000553: DUP1
00000554: MLOAD
00000555: PUSH1 0x01
00000557: PUSH1 0xe5
00000559: SHL
0000055a: PUSH3 0x461bcd
0000055e: MUL
0000055f: DUP2
00000560: MSTORE
00000561: PUSH1 0x20
00000563: PUSH1 0x04
00000565: DUP3
00000566: ADD
00000567: MSTORE
00000568: PUSH1 0x02
0000056a: PUSH1 0x24
0000056c: DUP3
0000056d: ADD
0000056e: MSTORE
0000056f: PUSH1 0x01
00000571: PUSH1 0xf4
00000573: SHL
00000574: PUSH2 0x0653
00000577: MUL
00000578: PUSH1 0x44
0000057a: DUP3
0000057b: ADD
0000057c: MSTORE
0000057d: SWAP1
0000057e: MLOAD
0000057f: SWAP1
00000580: DUP2
00000581: SWAP1
00000582: SUB
00000583: PUSH1 0x64
00000585: ADD
00000586: SWAP1
00000587: REVERT
00000588: JUMPDEST
00000589: PUSH1 0x01
0000058b: PUSH1 0x01
0000058d: PUSH1 0xa0
0000058f: SHL
00000590: SUB
00000591: AND
00000592: PUSH1 0x00
00000594: SWAP1
00000595: DUP2
00000596: MSTORE
00000597: PUSH1 0x01
00000599: PUSH1 0x20
0000059b: MSTORE
0000059c: PUSH1 0x40
0000059e: SWAP1
0000059f: KECCAK256
000005a0: DUP1
000005a1: SLOAD
000005a2: PUSH1 0xff
000005a4: NOT
000005a5: AND
000005a6: SWAP1
000005a7: SSTORE
000005a8: JUMP
000005a9: JUMPDEST
000005aa: CALLER
000005ab: PUSH20 0x44dba507b909a6f92f3a708a844d4c4f23622bee
000005c0: EQ
000005c1: DUP1
000005c2: PUSH2 0x05de
000005c5: JUMPI
000005c6: POP
000005c7: CALLER
000005c8: PUSH20 0xed7ce3de532213314bb07622d8bf606a4ba03cf1
000005dd: EQ
000005de: JUMPDEST
000005df: DUP1
000005e0: PUSH2 0x05fc
000005e3: JUMPI
000005e4: POP
000005e5: CALLER
000005e6: PUSH20 0xe185e2ab092e8a046cbb815174d9d6aae1c91d9a
000005fb: EQ
000005fc: JUMPDEST
000005fd: DUP1
000005fe: PUSH2 0x061a
00000601: JUMPI
00000602: POP
00000603: CALLER
00000604: PUSH20 0x513a916e91af25745a01b2709d2083b6b3477815
00000619: EQ
0000061a: JUMPDEST
0000061b: DUP1
0000061c: PUSH2 0x0634
0000061f: JUMPI
00000620: POP
00000621: CALLER
00000622: PUSH1 0x00
00000624: SWAP1
00000625: DUP2
00000626: MSTORE
00000627: PUSH1 0x20
00000629: DUP2
0000062a: SWAP1
0000062b: MSTORE
0000062c: PUSH1 0x40
0000062e: SWAP1
0000062f: KECCAK256
00000630: SLOAD
00000631: PUSH1 0xff
00000633: AND
00000634: JUMPDEST
00000635: DUP1
00000636: PUSH2 0x0652
00000639: JUMPI
0000063a: POP
0000063b: CALLER
0000063c: PUSH20 0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade
00000651: EQ
00000652: JUMPDEST
00000653: ISZERO
00000654: ISZERO
00000655: PUSH2 0x0690
00000658: JUMPI
00000659: PUSH1 0x40
0000065b: DUP1
0000065c: MLOAD
0000065d: PUSH1 0x01
0000065f: PUSH1 0xe5
00000661: SHL
00000662: PUSH3 0x461bcd
00000666: MUL
00000667: DUP2
00000668: MSTORE
00000669: PUSH1 0x20
0000066b: PUSH1 0x04
0000066d: DUP3
0000066e: ADD
0000066f: MSTORE
00000670: PUSH1 0x02
00000672: PUSH1 0x24
00000674: DUP3
00000675: ADD
00000676: MSTORE
00000677: PUSH1 0x01
00000679: PUSH1 0xf4
0000067b: SHL
0000067c: PUSH2 0x0653
0000067f: MUL
00000680: PUSH1 0x44
00000682: DUP3
00000683: ADD
00000684: MSTORE
00000685: SWAP1
00000686: MLOAD
00000687: SWAP1
00000688: DUP2
00000689: SWAP1
0000068a: SUB
0000068b: PUSH1 0x64
0000068d: ADD
0000068e: SWAP1
0000068f: REVERT
00000690: JUMPDEST
00000691: PUSH1 0x00
00000693: PUSH1 0x40
00000695: MLOAD
00000696: PUSH1 0x20
00000698: PUSH1 0x04
0000069a: DUP3
0000069b: CALLDATACOPY
0000069c: MLOAD
0000069d: PUSH1 0x01
0000069f: PUSH1 0x01
000006a1: PUSH1 0xa0
000006a3: SHL
000006a4: SUB
000006a5: DUP2
000006a6: AND
000006a7: PUSH1 0x00
000006a9: SWAP1
000006aa: DUP2
000006ab: MSTORE
000006ac: PUSH1 0x01
000006ae: PUSH1 0x20
000006b0: MSTORE
000006b1: PUSH1 0x40
000006b3: SWAP1
000006b4: KECCAK256
000006b5: SLOAD
000006b6: SWAP1
000006b7: SWAP2
000006b8: POP
000006b9: PUSH1 0xff
000006bb: AND
000006bc: ISZERO
000006bd: ISZERO
000006be: PUSH2 0x06f9
000006c1: JUMPI
000006c2: PUSH1 0x40
000006c4: DUP1
000006c5: MLOAD
000006c6: PUSH1 0x01
000006c8: PUSH1 0xe5
000006ca: SHL
000006cb: PUSH3 0x461bcd
000006cf: MUL
000006d0: DUP2
000006d1: MSTORE
000006d2: PUSH1 0x20
000006d4: PUSH1 0x04
000006d6: DUP3
000006d7: ADD
000006d8: MSTORE
000006d9: PUSH1 0x02
000006db: PUSH1 0x24
000006dd: DUP3
000006de: ADD
000006df: MSTORE
000006e0: PUSH1 0x01
000006e2: PUSH1 0xf4
000006e4: SHL
000006e5: PUSH2 0x0653
000006e8: MUL
000006e9: PUSH1 0x44
000006eb: DUP3
000006ec: ADD
000006ed: MSTORE
000006ee: SWAP1
000006ef: MLOAD
000006f0: SWAP1
000006f1: DUP2
000006f2: SWAP1
000006f3: SUB
000006f4: PUSH1 0x64
000006f6: ADD
000006f7: SWAP1
000006f8: REVERT
000006f9: JUMPDEST
000006fa: PUSH1 0x40
000006fc: MLOAD
000006fd: PUSH1 0x24
000006ff: CALLDATASIZE
00000700: SUB
00000701: PUSH1 0x24
00000703: DUP3
00000704: CALLDATACOPY
00000705: PUSH1 0x00
00000707: DUP2
00000708: PUSH1 0x23
0000070a: NOT
0000070b: CALLDATASIZE
0000070c: ADD
0000070d: DUP2
0000070e: DUP6
0000070f: PUSH1 0x00
00000711: NOT
00000712: DELEGATECALL
00000713: RETURNDATASIZE
00000714: PUSH1 0x00
00000716: DUP4
00000717: RETURNDATACOPY
00000718: DUP1
00000719: DUP1
0000071a: ISZERO
0000071b: PUSH2 0x0722
0000071e: JUMPI
0000071f: RETURNDATASIZE
00000720: DUP4
00000721: RETURN
00000722: JUMPDEST
00000723: RETURNDATASIZE
00000724: DUP4
00000725: REVERT
00000726: JUMPDEST
00000727: CALLER
00000728: PUSH20 0x44dba507b909a6f92f3a708a844d4c4f23622bee
0000073d: EQ
0000073e: DUP1
0000073f: PUSH2 0x075b
00000742: JUMPI
00000743: POP
00000744: CALLER
00000745: PUSH20 0xed7ce3de532213314bb07622d8bf606a4ba03cf1
0000075a: EQ
0000075b: JUMPDEST
0000075c: DUP1
0000075d: PUSH2 0x0779
00000760: JUMPI
00000761: POP
00000762: CALLER
00000763: PUSH20 0xe185e2ab092e8a046cbb815174d9d6aae1c91d9a
00000778: EQ
00000779: JUMPDEST
0000077a: DUP1
0000077b: PUSH2 0x0797
0000077e: JUMPI
0000077f: POP
00000780: CALLER
00000781: PUSH20 0x513a916e91af25745a01b2709d2083b6b3477815
00000796: EQ
00000797: JUMPDEST
00000798: DUP1
00000799: PUSH2 0x07b1
0000079c: JUMPI
0000079d: POP
0000079e: CALLER
0000079f: PUSH1 0x00
000007a1: SWAP1
000007a2: DUP2
000007a3: MSTORE
000007a4: PUSH1 0x20
000007a6: DUP2
000007a7: SWAP1
000007a8: MSTORE
000007a9: PUSH1 0x40
000007ab: SWAP1
000007ac: KECCAK256
000007ad: SLOAD
000007ae: PUSH1 0xff
000007b0: AND
000007b1: JUMPDEST
000007b2: DUP1
000007b3: PUSH2 0x07cf
000007b6: JUMPI
000007b7: POP
000007b8: CALLER
000007b9: PUSH20 0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade
000007ce: EQ
000007cf: JUMPDEST
000007d0: ISZERO
000007d1: ISZERO
000007d2: PUSH2 0x080d
000007d5: JUMPI
000007d6: PUSH1 0x40
000007d8: DUP1
000007d9: MLOAD
000007da: PUSH1 0x01
000007dc: PUSH1 0xe5
000007de: SHL
000007df: PUSH3 0x461bcd
000007e3: MUL
000007e4: DUP2
000007e5: MSTORE
000007e6: PUSH1 0x20
000007e8: PUSH1 0x04
000007ea: DUP3
000007eb: ADD
000007ec: MSTORE
000007ed: PUSH1 0x02
000007ef: PUSH1 0x24
000007f1: DUP3
000007f2: ADD
000007f3: MSTORE
000007f4: PUSH1 0x01
000007f6: PUSH1 0xf4
000007f8: SHL
000007f9: PUSH2 0x0653
000007fc: MUL
000007fd: PUSH1 0x44
000007ff: DUP3
00000800: ADD
00000801: MSTORE
00000802: SWAP1
00000803: MLOAD
00000804: SWAP1
00000805: DUP2
00000806: SWAP1
00000807: SUB
00000808: PUSH1 0x64
0000080a: ADD
0000080b: SWAP1
0000080c: REVERT
0000080d: JUMPDEST
0000080e: PUSH1 0x40
00000810: DUP1
00000811: MLOAD
00000812: PUSH1 0x01
00000814: PUSH1 0xe0
00000816: SHL
00000817: PUSH4 0xa9059cbb
0000081c: MUL
0000081d: DUP2
0000081e: MSTORE
0000081f: PUSH20 0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade
00000834: PUSH1 0x04
00000836: DUP3
00000837: ADD
00000838: MSTORE
00000839: PUSH1 0x24
0000083b: DUP2
0000083c: ADD
0000083d: DUP4
0000083e: SWAP1
0000083f: MSTORE
00000840: SWAP1
00000841: MLOAD
00000842: PUSH1 0x01
00000844: PUSH1 0x01
00000846: PUSH1 0xa0
00000848: SHL
00000849: SUB
0000084a: DUP5
0000084b: AND
0000084c: SWAP2
0000084d: PUSH4 0xa9059cbb
00000852: SWAP2
00000853: PUSH1 0x44
00000855: DUP1
00000856: DUP4
00000857: ADD
00000858: SWAP3
00000859: PUSH1 0x20
0000085b: SWAP3
0000085c: SWAP2
0000085d: SWAP1
0000085e: DUP3
0000085f: SWAP1
00000860: SUB
00000861: ADD
00000862: DUP2
00000863: PUSH1 0x00
00000865: DUP8
00000866: DUP1
00000867: EXTCODESIZE
00000868: ISZERO
00000869: DUP1
0000086a: ISZERO
0000086b: PUSH2 0x0873
0000086e: JUMPI
0000086f: PUSH1 0x00
00000871: DUP1
00000872: REVERT
00000873: JUMPDEST
00000874: POP
00000875: GAS
00000876: CALL
00000877: ISZERO
00000878: DUP1
00000879: ISZERO
0000087a: PUSH2 0x0887
0000087d: JUMPI
0000087e: RETURNDATASIZE
0000087f: PUSH1 0x00
00000881: DUP1
00000882: RETURNDATACOPY
00000883: RETURNDATASIZE
00000884: PUSH1 0x00
00000886: REVERT
00000887: JUMPDEST
00000888: POP
00000889: POP
0000088a: POP
0000088b: POP
0000088c: PUSH1 0x40
0000088e: MLOAD
0000088f: RETURNDATASIZE
00000890: PUSH1 0x20
00000892: DUP2
00000893: LT
00000894: ISZERO
00000895: PUSH2 0x089d
00000898: JUMPI
00000899: PUSH1 0x00
0000089b: DUP1
0000089c: REVERT
0000089d: JUMPDEST
0000089e: POP
0000089f: POP
000008a0: POP
000008a1: POP
000008a2: JUMP
000008a3: JUMPDEST
000008a4: CALLER
000008a5: PUSH20 0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade
000008ba: EQ
000008bb: PUSH2 0x08f6
000008be: JUMPI
000008bf: PUSH1 0x40
000008c1: DUP1
000008c2: MLOAD
000008c3: PUSH1 0x01
000008c5: PUSH1 0xe5
000008c7: SHL
000008c8: PUSH3 0x461bcd
000008cc: MUL
000008cd: DUP2
000008ce: MSTORE
000008cf: PUSH1 0x20
000008d1: PUSH1 0x04
000008d3: DUP3
000008d4: ADD
000008d5: MSTORE
000008d6: PUSH1 0x02
000008d8: PUSH1 0x24
000008da: DUP3
000008db: ADD
000008dc: MSTORE
000008dd: PUSH1 0x01
000008df: PUSH1 0xf4
000008e1: SHL
000008e2: PUSH2 0x0653
000008e5: MUL
000008e6: PUSH1 0x44
000008e8: DUP3
000008e9: ADD
000008ea: MSTORE
000008eb: SWAP1
000008ec: MLOAD
000008ed: SWAP1
000008ee: DUP2
000008ef: SWAP1
000008f0: SUB
000008f1: PUSH1 0x64
000008f3: ADD
000008f4: SWAP1
000008f5: REVERT
000008f6: JUMPDEST
000008f7: PUSH1 0x01
000008f9: PUSH1 0x01
000008fb: PUSH1 0xa0
000008fd: SHL
000008fe: SUB
000008ff: AND
00000900: PUSH1 0x00
00000902: SWAP1
00000903: DUP2
00000904: MSTORE
00000905: PUSH1 0x20
00000907: DUP2
00000908: SWAP1
00000909: MSTORE
0000090a: PUSH1 0x40
0000090c: SWAP1
0000090d: KECCAK256
0000090e: DUP1
0000090f: SLOAD
00000910: PUSH1 0xff
00000912: NOT
00000913: AND
00000914: PUSH1 0x01
00000916: OR
00000917: SWAP1
00000918: SSTORE
00000919: JUMP
0000091a: JUMPDEST
0000091b: JUMP
0000091c: JUMPDEST
0000091d: CALLER
0000091e: PUSH20 0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade
00000933: EQ
00000934: PUSH2 0x096f
00000937: JUMPI
00000938: PUSH1 0x40
0000093a: DUP1
0000093b: MLOAD
0000093c: PUSH1 0x01
0000093e: PUSH1 0xe5
00000940: SHL
00000941: PUSH3 0x461bcd
00000945: MUL
00000946: DUP2
00000947: MSTORE
00000948: PUSH1 0x20
0000094a: PUSH1 0x04
0000094c: DUP3
0000094d: ADD
0000094e: MSTORE
0000094f: PUSH1 0x02
00000951: PUSH1 0x24
00000953: DUP3
00000954: ADD
00000955: MSTORE
00000956: PUSH1 0x01
00000958: PUSH1 0xf4
0000095a: SHL
0000095b: PUSH2 0x0653
0000095e: MUL
0000095f: PUSH1 0x44
00000961: DUP3
00000962: ADD
00000963: MSTORE
00000964: SWAP1
00000965: MLOAD
00000966: SWAP1
00000967: DUP2
00000968: SWAP1
00000969: SUB
0000096a: PUSH1 0x64
0000096c: ADD
0000096d: SWAP1
0000096e: REVERT
0000096f: JUMPDEST
00000970: PUSH1 0x01
00000972: PUSH1 0x01
00000974: PUSH1 0xa0
00000976: SHL
00000977: SUB
00000978: AND
00000979: PUSH1 0x00
0000097b: SWAP1
0000097c: DUP2
0000097d: MSTORE
0000097e: PUSH1 0x20
00000980: DUP2
00000981: SWAP1
00000982: MSTORE
00000983: PUSH1 0x40
00000985: SWAP1
00000986: KECCAK256
00000987: DUP1
00000988: SLOAD
00000989: PUSH1 0xff
0000098b: NOT
0000098c: AND
0000098d: SWAP1
0000098e: SSTORE
0000098f: JUMP
00000990: INVALID
00000991: LOG1
00000992: PUSH6 0x627a7a723058
00000999: KECCAK256
0000099a: PUSH23 0xa204cde5afc2e3ee7ac7089f9b380eb5741310c682c5c3
000009b2: UNKNOWN(0xB6)
000009b3: UNKNOWN(0xB0)
000009b4: PUSH8

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high upgradeability detector Untrusted DELEGATECALL target reachable 55 no no
view
trace_id: 0x2f5d3cc69004d90fa629c405645e4895c3e8e3022924d71630933e806f5b81e0
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 108,
    "trace_id": "0x2f5d3cc69004d90fa629c405645e4895c3e8e3022924d71630933e806f5b81e0",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x8b9d7cd3",
            "selector": "0x8b9d7cd3",
            "calldata_variants": [
                "0x8b9d7cd3",
                "0x8b9d7cd30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x92379af7",
            "selector": "0x92379af7",
            "calldata_variants": [
                "0x92379af7",
                "0x92379af70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcfcaa498",
            "selector": "0xcfcaa498",
            "calldata_variants": [
                "0xcfcaa498",
                "0xcfcaa4980000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xee6804f0",
            "selector": "0xee6804f0",
            "calldata_variants": [
                "0xee6804f0",
                "0xee6804f00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf79b6ec0",
            "selector": "0xf79b6ec0",
            "calldata_variants": [
                "0xf79b6ec0",
                "0xf79b6ec00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x38db9cf0",
            "selector": "0x38db9cf0",
            "calldata_variants": [
                "0x38db9cf0",
                "0x38db9cf00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5781aa86",
            "selector": "0x5781aa86",
            "calldata_variants": [
                "0x5781aa86",
                "0x5781aa860000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6bbc0545",
            "selector": "0x6bbc0545",
            "calldata_variants": [
                "0x6bbc0545",
                "0x6bbc05450000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1810,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [
        {
            "pc": 568,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 690,
            "type": "msg_sender_eq_const",
            "value": 3.931096117696119e+47
        },
        {
            "pc": 719,
            "type": "msg_sender_eq_const",
            "value": 1.3558159552319625e+48
        },
        {
            "pc": 749,
            "type": "msg_sender_eq_const",
            "value": 1.2875086681238784e+48
        },
        {
            "pc": 779,
            "type": "msg_sender_eq_const",
            "value": 4.637343645644137e+47
        },
        {
            "pc": 835,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 992,
            "type": "msg_sender_eq_const",
            "value": 3.931096117696119e+47
        },
        {
            "pc": 1021,
            "type": "msg_sender_eq_const",
            "value": 1.3558159552319625e+48
        },
        {
            "pc": 1051,
            "type": "msg_sender_eq_const",
            "value": 1.2875086681238784e+48
        },
        {
            "pc": 1081,
            "type": "msg_sender_eq_const",
            "value": 4.637343645644137e+47
        },
        {
            "pc": 1137,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 1356,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 1472,
            "type": "msg_sender_eq_const",
            "value": 3.931096117696119e+47
        },
        {
            "pc": 1501,
            "type": "msg_sender_eq_const",
            "value": 1.3558159552319625e+48
        },
        {
            "pc": 1531,
            "type": "msg_sender_eq_const",
            "value": 1.2875086681238784e+48
        },
        {
            "pc": 1561,
            "type": "msg_sender_eq_const",
            "value": 4.637343645644137e+47
        },
        {
            "pc": 1617,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 1853,
            "type": "msg_sender_eq_const",
            "value": 3.931096117696119e+47
        },
        {
            "pc": 1882,
            "type": "msg_sender_eq_const",
            "value": 1.3558159552319625e+48
        },
        {
            "pc": 1912,
            "type": "msg_sender_eq_const",
            "value": 1.2875086681238784e+48
        },
        {
            "pc": 1942,
            "type": "msg_sender_eq_const",
            "value": 4.637343645644137e+47
        },
        {
            "pc": 1998,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 2234,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 2355,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 546,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 668,
            "type": "msg_sender_eq_const",
            "value": "0x44dba507b909a6f92f3a708a844d4c4f23622bee"
        },
        {
            "pc": 697,
            "type": "msg_sender_eq_const",
            "value": "0xed7ce3de532213314bb07622d8bf606a4ba03cf1"
        },
        {
            "pc": 727,
            "type": "msg_sender_eq_const",
            "value": "0xe185e2ab092e8a046cbb815174d9d6aae1c91d9a"
        },
        {
            "pc": 757,
            "type": "msg_sender_eq_const",
            "value": "0x513a916e91af25745a01b2709d2083b6b3477815"
        },
        {
            "pc": 813,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 970,
            "type": "msg_sender_eq_const",
            "value": "0x44dba507b909a6f92f3a708a844d4c4f23622bee"
        },
        {
            "pc": 999,
            "type": "msg_sender_eq_const",
            "value": "0xed7ce3de532213314bb07622d8bf606a4ba03cf1"
        },
        {
            "pc": 1029,
            "type": "msg_sender_eq_const",
            "value": "0xe185e2ab092e8a046cbb815174d9d6aae1c91d9a"
        },
        {
            "pc": 1059,
            "type": "msg_sender_eq_const",
            "value": "0x513a916e91af25745a01b2709d2083b6b3477815"
        },
        {
            "pc": 1115,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 1334,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 1450,
            "type": "msg_sender_eq_const",
            "value": "0x44dba507b909a6f92f3a708a844d4c4f23622bee"
        },
        {
            "pc": 1479,
            "type": "msg_sender_eq_const",
            "value": "0xed7ce3de532213314bb07622d8bf606a4ba03cf1"
        },
        {
            "pc": 1509,
            "type": "msg_sender_eq_const",
            "value": "0xe185e2ab092e8a046cbb815174d9d6aae1c91d9a"
        },
        {
            "pc": 1539,
            "type": "msg_sender_eq_const",
            "value": "0x513a916e91af25745a01b2709d2083b6b3477815"
        },
        {
            "pc": 1595,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 1831,
            "type": "msg_sender_eq_const",
            "value": "0x44dba507b909a6f92f3a708a844d4c4f23622bee"
        },
        {
            "pc": 1860,
            "type": "msg_sender_eq_const",
            "value": "0xed7ce3de532213314bb07622d8bf606a4ba03cf1"
        },
        {
            "pc": 1890,
            "type": "msg_sender_eq_const",
            "value": "0xe185e2ab092e8a046cbb815174d9d6aae1c91d9a"
        },
        {
            "pc": 1920,
            "type": "msg_sender_eq_const",
            "value": "0x513a916e91af25745a01b2709d2083b6b3477815"
        },
        {
            "pc": 1976,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 2212,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 2333,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        }
    ],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x3afa2ecf7a71330365428e48d372c845bde417e833404701f8e3abe021d0d25d
call_targets: 0xb958a8f59ac6145851729f73c7a6968311d8b633
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x3afa2ecf7a71330365428e48d372c845bde417e833404701f8e3abe021d0d25d",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb958a8f59ac6145851729f73c7a6968311d8b633"
    ],
    "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": "0x8b9d7cd3",
            "selector": "0x8b9d7cd3",
            "calldata_variants": [
                "0x8b9d7cd3",
                "0x8b9d7cd30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x92379af7",
            "selector": "0x92379af7",
            "calldata_variants": [
                "0x92379af7",
                "0x92379af70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcfcaa498",
            "selector": "0xcfcaa498",
            "calldata_variants": [
                "0xcfcaa498",
                "0xcfcaa4980000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xee6804f0",
            "selector": "0xee6804f0",
            "calldata_variants": [
                "0xee6804f0",
                "0xee6804f00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf79b6ec0",
            "selector": "0xf79b6ec0",
            "calldata_variants": [
                "0xf79b6ec0",
                "0xf79b6ec00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x38db9cf0",
            "selector": "0x38db9cf0",
            "calldata_variants": [
                "0x38db9cf0",
                "0x38db9cf00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5781aa86",
            "selector": "0x5781aa86",
            "calldata_variants": [
                "0x5781aa86",
                "0x5781aa860000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6bbc0545",
            "selector": "0x6bbc0545",
            "calldata_variants": [
                "0x6bbc0545",
                "0x6bbc05450000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 941,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1285,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2166,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": [
        {
            "pc": 568,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 690,
            "type": "msg_sender_eq_const",
            "value": 3.931096117696119e+47
        },
        {
            "pc": 719,
            "type": "msg_sender_eq_const",
            "value": 1.3558159552319625e+48
        },
        {
            "pc": 749,
            "type": "msg_sender_eq_const",
            "value": 1.2875086681238784e+48
        },
        {
            "pc": 779,
            "type": "msg_sender_eq_const",
            "value": 4.637343645644137e+47
        },
        {
            "pc": 835,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 992,
            "type": "msg_sender_eq_const",
            "value": 3.931096117696119e+47
        },
        {
            "pc": 1021,
            "type": "msg_sender_eq_const",
            "value": 1.3558159552319625e+48
        },
        {
            "pc": 1051,
            "type": "msg_sender_eq_const",
            "value": 1.2875086681238784e+48
        },
        {
            "pc": 1081,
            "type": "msg_sender_eq_const",
            "value": 4.637343645644137e+47
        },
        {
            "pc": 1137,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 1356,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 1472,
            "type": "msg_sender_eq_const",
            "value": 3.931096117696119e+47
        },
        {
            "pc": 1501,
            "type": "msg_sender_eq_const",
            "value": 1.3558159552319625e+48
        },
        {
            "pc": 1531,
            "type": "msg_sender_eq_const",
            "value": 1.2875086681238784e+48
        },
        {
            "pc": 1561,
            "type": "msg_sender_eq_const",
            "value": 4.637343645644137e+47
        },
        {
            "pc": 1617,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 1853,
            "type": "msg_sender_eq_const",
            "value": 3.931096117696119e+47
        },
        {
            "pc": 1882,
            "type": "msg_sender_eq_const",
            "value": 1.3558159552319625e+48
        },
        {
            "pc": 1912,
            "type": "msg_sender_eq_const",
            "value": 1.2875086681238784e+48
        },
        {
            "pc": 1942,
            "type": "msg_sender_eq_const",
            "value": 4.637343645644137e+47
        },
        {
            "pc": 1998,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 2234,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 2355,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 546,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 668,
            "type": "msg_sender_eq_const",
            "value": "0x44dba507b909a6f92f3a708a844d4c4f23622bee"
        },
        {
            "pc": 697,
            "type": "msg_sender_eq_const",
            "value": "0xed7ce3de532213314bb07622d8bf606a4ba03cf1"
        },
        {
            "pc": 727,
            "type": "msg_sender_eq_const",
            "value": "0xe185e2ab092e8a046cbb815174d9d6aae1c91d9a"
        },
        {
            "pc": 757,
            "type": "msg_sender_eq_const",
            "value": "0x513a916e91af25745a01b2709d2083b6b3477815"
        },
        {
            "pc": 813,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 970,
            "type": "msg_sender_eq_const",
            "value": "0x44dba507b909a6f92f3a708a844d4c4f23622bee"
        },
        {
            "pc": 999,
            "type": "msg_sender_eq_const",
            "value": "0xed7ce3de532213314bb07622d8bf606a4ba03cf1"
        },
        {
            "pc": 1029,
            "type": "msg_sender_eq_const",
            "value": "0xe185e2ab092e8a046cbb815174d9d6aae1c91d9a"
        },
        {
            "pc": 1059,
            "type": "msg_sender_eq_const",
            "value": "0x513a916e91af25745a01b2709d2083b6b3477815"
        },
        {
            "pc": 1115,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 1334,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 1450,
            "type": "msg_sender_eq_const",
            "value": "0x44dba507b909a6f92f3a708a844d4c4f23622bee"
        },
        {
            "pc": 1479,
            "type": "msg_sender_eq_const",
            "value": "0xed7ce3de532213314bb07622d8bf606a4ba03cf1"
        },
        {
            "pc": 1509,
            "type": "msg_sender_eq_const",
            "value": "0xe185e2ab092e8a046cbb815174d9d6aae1c91d9a"
        },
        {
            "pc": 1539,
            "type": "msg_sender_eq_const",
            "value": "0x513a916e91af25745a01b2709d2083b6b3477815"
        },
        {
            "pc": 1595,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 1831,
            "type": "msg_sender_eq_const",
            "value": "0x44dba507b909a6f92f3a708a844d4c4f23622bee"
        },
        {
            "pc": 1860,
            "type": "msg_sender_eq_const",
            "value": "0xed7ce3de532213314bb07622d8bf606a4ba03cf1"
        },
        {
            "pc": 1890,
            "type": "msg_sender_eq_const",
            "value": "0xe185e2ab092e8a046cbb815174d9d6aae1c91d9a"
        },
        {
            "pc": 1920,
            "type": "msg_sender_eq_const",
            "value": "0x513a916e91af25745a01b2709d2083b6b3477815"
        },
        {
            "pc": 1976,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 2212,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 2333,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x3afa2ecf7a71330365428e48d372c845bde417e833404701f8e3abe021d0d25d
call_targets: 0xb958a8f59ac6145851729f73c7a6968311d8b633
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x3afa2ecf7a71330365428e48d372c845bde417e833404701f8e3abe021d0d25d",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb958a8f59ac6145851729f73c7a6968311d8b633"
    ],
    "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": "0x8b9d7cd3",
            "selector": "0x8b9d7cd3",
            "calldata_variants": [
                "0x8b9d7cd3",
                "0x8b9d7cd30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x92379af7",
            "selector": "0x92379af7",
            "calldata_variants": [
                "0x92379af7",
                "0x92379af70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcfcaa498",
            "selector": "0xcfcaa498",
            "calldata_variants": [
                "0xcfcaa498",
                "0xcfcaa4980000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xee6804f0",
            "selector": "0xee6804f0",
            "calldata_variants": [
                "0xee6804f0",
                "0xee6804f00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf79b6ec0",
            "selector": "0xf79b6ec0",
            "calldata_variants": [
                "0xf79b6ec0",
                "0xf79b6ec00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x38db9cf0",
            "selector": "0x38db9cf0",
            "calldata_variants": [
                "0x38db9cf0",
                "0x38db9cf00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5781aa86",
            "selector": "0x5781aa86",
            "calldata_variants": [
                "0x5781aa86",
                "0x5781aa860000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6bbc0545",
            "selector": "0x6bbc0545",
            "calldata_variants": [
                "0x6bbc0545",
                "0x6bbc05450000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 941,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1285,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2166,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [
        {
            "pc": 568,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 690,
            "type": "msg_sender_eq_const",
            "value": 3.931096117696119e+47
        },
        {
            "pc": 719,
            "type": "msg_sender_eq_const",
            "value": 1.3558159552319625e+48
        },
        {
            "pc": 749,
            "type": "msg_sender_eq_const",
            "value": 1.2875086681238784e+48
        },
        {
            "pc": 779,
            "type": "msg_sender_eq_const",
            "value": 4.637343645644137e+47
        },
        {
            "pc": 835,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 992,
            "type": "msg_sender_eq_const",
            "value": 3.931096117696119e+47
        },
        {
            "pc": 1021,
            "type": "msg_sender_eq_const",
            "value": 1.3558159552319625e+48
        },
        {
            "pc": 1051,
            "type": "msg_sender_eq_const",
            "value": 1.2875086681238784e+48
        },
        {
            "pc": 1081,
            "type": "msg_sender_eq_const",
            "value": 4.637343645644137e+47
        },
        {
            "pc": 1137,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 1356,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 1472,
            "type": "msg_sender_eq_const",
            "value": 3.931096117696119e+47
        },
        {
            "pc": 1501,
            "type": "msg_sender_eq_const",
            "value": 1.3558159552319625e+48
        },
        {
            "pc": 1531,
            "type": "msg_sender_eq_const",
            "value": 1.2875086681238784e+48
        },
        {
            "pc": 1561,
            "type": "msg_sender_eq_const",
            "value": 4.637343645644137e+47
        },
        {
            "pc": 1617,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 1853,
            "type": "msg_sender_eq_const",
            "value": 3.931096117696119e+47
        },
        {
            "pc": 1882,
            "type": "msg_sender_eq_const",
            "value": 1.3558159552319625e+48
        },
        {
            "pc": 1912,
            "type": "msg_sender_eq_const",
            "value": 1.2875086681238784e+48
        },
        {
            "pc": 1942,
            "type": "msg_sender_eq_const",
            "value": 4.637343645644137e+47
        },
        {
            "pc": 1998,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 2234,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 2355,
            "type": "msg_sender_eq_const",
            "value": 1.0269502764947093e+48
        },
        {
            "pc": 546,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 668,
            "type": "msg_sender_eq_const",
            "value": "0x44dba507b909a6f92f3a708a844d4c4f23622bee"
        },
        {
            "pc": 697,
            "type": "msg_sender_eq_const",
            "value": "0xed7ce3de532213314bb07622d8bf606a4ba03cf1"
        },
        {
            "pc": 727,
            "type": "msg_sender_eq_const",
            "value": "0xe185e2ab092e8a046cbb815174d9d6aae1c91d9a"
        },
        {
            "pc": 757,
            "type": "msg_sender_eq_const",
            "value": "0x513a916e91af25745a01b2709d2083b6b3477815"
        },
        {
            "pc": 813,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 970,
            "type": "msg_sender_eq_const",
            "value": "0x44dba507b909a6f92f3a708a844d4c4f23622bee"
        },
        {
            "pc": 999,
            "type": "msg_sender_eq_const",
            "value": "0xed7ce3de532213314bb07622d8bf606a4ba03cf1"
        },
        {
            "pc": 1029,
            "type": "msg_sender_eq_const",
            "value": "0xe185e2ab092e8a046cbb815174d9d6aae1c91d9a"
        },
        {
            "pc": 1059,
            "type": "msg_sender_eq_const",
            "value": "0x513a916e91af25745a01b2709d2083b6b3477815"
        },
        {
            "pc": 1115,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 1334,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 1450,
            "type": "msg_sender_eq_const",
            "value": "0x44dba507b909a6f92f3a708a844d4c4f23622bee"
        },
        {
            "pc": 1479,
            "type": "msg_sender_eq_const",
            "value": "0xed7ce3de532213314bb07622d8bf606a4ba03cf1"
        },
        {
            "pc": 1509,
            "type": "msg_sender_eq_const",
            "value": "0xe185e2ab092e8a046cbb815174d9d6aae1c91d9a"
        },
        {
            "pc": 1539,
            "type": "msg_sender_eq_const",
            "value": "0x513a916e91af25745a01b2709d2083b6b3477815"
        },
        {
            "pc": 1595,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 1831,
            "type": "msg_sender_eq_const",
            "value": "0x44dba507b909a6f92f3a708a844d4c4f23622bee"
        },
        {
            "pc": 1860,
            "type": "msg_sender_eq_const",
            "value": "0xed7ce3de532213314bb07622d8bf606a4ba03cf1"
        },
        {
            "pc": 1890,
            "type": "msg_sender_eq_const",
            "value": "0xe185e2ab092e8a046cbb815174d9d6aae1c91d9a"
        },
        {
            "pc": 1920,
            "type": "msg_sender_eq_const",
            "value": "0x513a916e91af25745a01b2709d2083b6b3477815"
        },
        {
            "pc": 1976,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 2212,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        },
        {
            "pc": 2333,
            "type": "msg_sender_eq_const",
            "value": "0xb3e20b057cbf2c0d9d099bac6772af0c948c6ade"
        }
    ],
    "untrusted_call_count": 3
}