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

Analysis Run

f647bb59-39e9-4a04-ae07-3770254f3a02

complete
Chain ID
1
Address
Block Number
Created
Wed, Dec 31, 2025 2: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
Present
Best current signal
Untrusted CALL target/value reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30823 report.consolidate complete 1 / 1 3 months ago
104597 artifact.fetch complete 1 / 3 1 week ago
104598 tool.cast_disasm complete 1 / 3 1 week ago
104599 analysis.bundle complete 1 / 3 1 week ago
104600 capability.graph complete 1 / 3 1 week ago
104601 detector.run complete 1 / 3 1 week ago
104602 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
1
No findings?
no
Summary
One low-severity issue identified from the runtime bytecode patterns.
View stderr
[codex:514399] OpenAI Codex v0.77.0 (research preview)
[codex:514399] --------
[codex:514399] workdir: /tmp/codex-multi-gpl6ys85
[codex:514399] model: gpt-5.2-codex
[codex:514399] provider: openai
[codex:514399] approval: never
[codex:514399] sandbox: read-only
[codex:514399] reasoning effort: xhigh
[codex:514399] reasoning summaries: auto
[codex:514399] session id: 019b74d6-0695-73e0-b59c-400e143418bc
[codex:514399] --------
[codex:514399] user
[codex:514399] You are a security auditor. You are given EVM runtime bytecode (and possibly a disassembly) for a contract with NO verified source.
[codex:514399] This is best-effort. Do not hallucinate: only flag issues when there's a concrete, explainable angle from bytecode/disasm patterns.
[codex:514399] 
[codex:514399] You MUST read the full `BYTECODE_BUNDLE.txt` before concluding.
[codex:514399] 
[codex:514399] Output MUST be valid JSON matching the provided schema.
[codex:514399] - If you cannot identify a concrete issue from bytecode/disasm alone: set no_findings=true and findings=[].
[codex:514399] - Otherwise: include findings with severity/category/title/evidence and point locations to BYTECODE_BUNDLE.txt line ranges when possible.
[codex:514399] 
[codex:514399] Output constraints (IMPORTANT):
[codex:514399] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:514399] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:514399] mcp startup: no servers
[codex:514399] 
[codex:514399] thinking
[codex:514399] **Preparing to read bytecode bundle**
[codex:514399] exec
[codex:514399] /bin/bash -lc ls in /tmp/codex-multi-gpl6ys85 succeeded in 6ms:
[codex:514399] BYTECODE_BUNDLE.txt
[codex:514399] codex-output-schema.json
[codex:514399] exec
[codex:514399] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-gpl6ys85 succeeded in 5ms:
[codex:514399] Runtime bytecode bundle for best-effort auditing.
[codex:514399] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:514399] 
[codex:514399] FILE: runtime_bytecode.hex
[codex:514399] 0x6080604052600436106100295760003560e01c80631af2a2bc1461002e578063491f09dc1461019e575b600080fd5b61011a6004803603606081101561004457600080fd5b810190808035906020019064010000000081111561006157600080fd5b82018360208201111561007357600080fd5b8035906020019184600183028401116401000000008311171561009557600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156100d657600080fd5b8201836020820111156100e857600080fd5b8035906020019184600183028401116401000000008311171561010a57600080fd5b9091929391929390505050610271565b60405180831515815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610162578082015181840152602081019050610147565b50505050905090810190601f16801561018f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61026f600480360360e08110156101b457600080fd5b81019080803590602001906401000000008111156101d157600080fd5b8201836020820111156101e357600080fd5b8035906020019184600183028401116401000000008311171561020557600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919080351515906020019092919080351515906020019092919080359060200190929190803515159060200190929190505050610388565b005b6000606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102cd57600080fd5b60606040518060400160405280601281526020017f06e9a5950c843db1796a5c193f564d7cdaa5000000000000000000000000000081525090508573ffffffffffffffffffffffffffffffffffffffff1634868660405180838380828437808301925050509250505060006040518083038185875af1925050503d8060008114610373576040519150601f19603f3d011682016040523d82523d6000602084013e610378565b606091505b5092509250509550959350505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103e057600080fd5b60005a905060008773ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561042d57600080fd5b505afa158015610441573d6000803e3d6000fd5b505050506040513d602081101561045757600080fd5b8101908080519060200190929190505050905060008873ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156104b257600080fd5b505afa1580156104c6573d6000803e3d6000fd5b505050506040513d60208110156104dc57600080fd5b810190808051906020019092919050505090506000808a73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561053857600080fd5b505afa15801561054c573d6000803e3d6000fd5b505050506040513d606081101561056257600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505050915091506060604051806020016040528060008152509050600115158b151514156109615760008573ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561061657600080fd5b505afa15801561062a573d6000803e3d6000fd5b505050506040513d602081101561064057600080fd5b81019080805190602001909291905050509050836dffffffffffffffffffffffffffff1681111561095b57600115158b151514156106fe578c73ffffffffffffffffffffffffffffffffffffffff1663bc25cf77306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156106e157600080fd5b505af11580156106f5573d6000803e3d6000fd5b5050505061095a565b6000846dffffffffffffffffffffffffffff1682039050600115158b1515141561083f576000670de0b6b3a7640000828c028161073757fe5b0490508e73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f60008330886040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107d25780820151818401526020810190506107b7565b50505050905090810190601f1680156107ff5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561082157600080fd5b505af1158015610835573d6000803e3d6000fd5b5050505050610958565b6000670de0b6b3a7640000828c028161085457fe5b0490508e73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f82600030886040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108ef5780820151818401526020810190506108d4565b50505050905090810190601f16801561091c5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561093e57600080fd5b505af1158015610952573d6000803e3d6000fd5b50505050505b505b5b50610d11565b60008473ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156109ca57600080fd5b505afa1580156109de573d6000803e3d6000fd5b505050506040513d60208110156109f457600080fd5b81019080805190602001909291905050509050826dffffffffffffffffffffffffffff16811115610d0f57600115158b15151415610ab2578c73ffffffffffffffffffffffffffffffffffffffff1663bc25cf77306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610a9557600080fd5b505af1158015610aa9573d6000803e3d6000fd5b50505050610d0e565b6000836dffffffffffffffffffffffffffff1682039050600115158b15151415610bf3576000670de0b6b3a7640000828c0281610aeb57fe5b0490508e73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f82600030886040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610b86578082015181840152602081019050610b6b565b50505050905090810190601f168015610bb35780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610bd557600080fd5b505af1158015610be9573d6000803e3d6000fd5b5050505050610d0c565b6000670de0b6b3a7640000828c0281610c0857fe5b0490508e73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f60008330886040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610ca3578082015181840152602081019050610c88565b50505050905090810190601f168015610cd05780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610cf257600080fd5b505af1158015610d06573d6000803e3d6000fd5b50505050505b505b5b505b600115158715151415610df3576000803690506010025a886152080103019050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636366b93661a0aa61374a840181610d7e57fe5b046040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015610db557600080fd5b505af1158015610dc9573d6000803e3d6000fd5b505050506040513d6020811015610ddf57600080fd5b810190808051906020019092919050505050505b505050505050505050505050505056fea26469706673582212205b17721ae4b549e97c533937ff3ad1c2ff6a0cf08b7725eda7307444761f96cf64736f6c63430007010033
[codex:514399] 
[codex:514399] thinking
[codex:514399] **Auditing bytecode for function selectors**
[codex:514399] exec
[codex:514399] /bin/bash -lc 'nl -ba BYTECODE_BUNDLE.txt' in /tmp/codex-multi-gpl6ys85 succeeded in 6ms:
[codex:514399]      1	Runtime bytecode bundle for best-effort auditing.
[codex:514399]      2	Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:514399]      3	
[codex:514399]      4	FILE: runtime_bytecode.hex
[codex:514399]      5	0x6080604052600436106100295760003560e01c80631af2a2bc1461002e578063491f09dc1461019e575b600080fd5b61011a6004803603606081101561004457600080fd5b810190808035906020019064010000000081111561006157600080fd5b82018360208201111561007357600080fd5b8035906020019184600183028401116401000000008311171561009557600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156100d657600080fd5b8201836020820111156100e857600080fd5b8035906020019184600183028401116401000000008311171561010a57600080fd5b9091929391929390505050610271565b60405180831515815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610162578082015181840152602081019050610147565b50505050905090810190601f16801561018f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61026f600480360360e08110156101b457600080fd5b81019080803590602001906401000000008111156101d157600080fd5b8201836020820111156101e357600080fd5b8035906020019184600183028401116401000000008311171561020557600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919080351515906020019092919080351515906020019092919080359060200190929190803515159060200190929190505050610388565b005b6000606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102cd57600080fd5b60606040518060400160405280601281526020017f06e9a5950c843db1796a5c193f564d7cdaa5000000000000000000000000000081525090508573ffffffffffffffffffffffffffffffffffffffff1634868660405180838380828437808301925050509250505060006040518083038185875af1925050503d8060008114610373576040519150601f19603f3d011682016040523d82523d6000602084013e610378565b606091505b5092509250509550959350505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103e057600080fd5b60005a905060008773ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561042d57600080fd5b505afa158015610441573d6000803e3d6000fd5b505050506040513d602081101561045757600080fd5b8101908080519060200190929190505050905060008873ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156104b257600080fd5b505afa1580156104c6573d6000803e3d6000fd5b505050506040513d60208110156104dc57600080fd5b810190808051906020019092919050505090506000808a73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561053857600080fd5b505afa15801561054c573d6000803e3d6000fd5b505050506040513d606081101561056257600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505050915091506060604051806020016040528060008152509050600115158b151514156109615760008573ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561061657600080fd5b505afa15801561062a573d6000803e3d6000fd5b505050506040513d602081101561064057600080fd5b81019080805190602001909291905050509050836dffffffffffffffffffffffffffff1681111561095b57600115158b151514156106fe578c73ffffffffffffffffffffffffffffffffffffffff1663bc25cf77306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156106e157600080fd5b505af11580156106f5573d6000803e3d6000fd5b5050505061095a565b6000846dffffffffffffffffffffffffffff1682039050600115158b1515141561083f576000670de0b6b3a7640000828c028161073757fe5b0490508e73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f60008330886040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107d25780820151818401526020810190506107b7565b50505050905090810190601f1680156107ff5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561082157600080fd5b505af1158015610835573d6000803e3d6000fd5b5050505050610958565b6000670de0b6b3a7640000828c028161085457fe5b0490508e73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f82600030886040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108ef5780820151818401526020810190506108d4565b50505050905090810190601f16801561091c5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561093e57600080fd5b505af1158015610952573d6000803e3d6000fd5b50505050505b505b5b50610d11565b60008473ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156109ca57600080fd5b505afa1580156109de573d6000803e3d6000fd5b505050506040513d60208110156109f457600080fd5b81019080805190602001909291905050509050826dffffffffffffffffffffffffffff16811115610d0f57600115158b15151415610ab2578c73ffffffffffffffffffffffffffffffffffffffff1663bc25cf77306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610a9557600080fd5b505af1158015610aa9573d6000803e3d6000fd5b50505050610d0e565b6000836dffffffffffffffffffffffffffff1682039050600115158b15151415610bf3576000670de0b6b3a7640000828c0281610aeb57fe5b0490508e73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f82600030886040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610b86578082015181840152602081019050610b6b565b50505050905090810190601f168015610bb35780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610bd557600080fd5b505af1158015610be9573d6000803e3d6000fd5b5050505050610d0c565b6000670de0b6b3a7640000828c0281610c0857fe5b0490508e73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f60008330886040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610ca3578082015181840152602081019050610c88565b50505050905090810190601f168015610cd05780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610cf257600080fd5b505af1158015610d06573d6000803e3d6000fd5b50505050505b505b5b505b600115158715151415610df3576000803690506010025a886152080103019050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636366b93661a0aa61374a840181610d7e57fe5b046040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015610db557600080fd5b505af1158015610dc9573d6000803e3d6000fd5b505050506040513d6020811015610ddf57600080fd5b810190808051906020019092919050505050505b505050505050505050505050505056fea26469706673582212205b17721ae4b549e97c533937ff3ad1c2ff6a0cf08b7725eda7307444761f96cf64736f6c63430007010033
[codex:514399] 
[codex:514399] thinking
[codex:514399] **Analyzing bytecode for call patterns**
[codex:514399] exec
[codex:514399] /bin/bash -lc "python - <<'PY'
[codex:514399] import re
[codex:514399] from pathlib import Path
[codex:514399] hexdata=Path('BYTECODE_BUNDLE.txt').read_text().split('0x',1)[1].strip()
[codex:514399] # remove non-hex
[codex:514399] hexdata=re.sub(r'["'^0-9a-fA-F]'"', '', hexdata)
[codex:514399] code=bytes.fromhex(hexdata)
[codex:514399] # opcode map (partial)
[codex:514399] ops={
[codex:514399]     **{i:f'PUSH{i-0x5f}' for i in range(0x60,0x80)},
[codex:514399]     **{i:f'DUP{i-0x7f}' for i in range(0x80,0x90)},
[codex:514399]     **{i:f'SWAP{i-0x8f}' for i in range(0x90,0xa0)},
[codex:514399]     **{i:f'LOG{i-0xa0}' for i in range(0xa0,0xa5)},
[codex:514399] }
[codex:514399] # common opcodes
[codex:514399] names={
[codex:514399] 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:514399] 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:514399] 0x20:'SHA3',
[codex:514399] 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:514399] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:514399] 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:514399] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:514399] }
[codex:514399] ops.update(names)
[codex:514399] # Disassemble around first CALL after offset 0x0271? We'll find first occurrence of CALL (0xf1) and show context.
[codex:514399] call_positions=[i for i,b in enumerate(code) if b==0xf1]
[codex:514399] print('CALL count',len(call_positions))
[codex:514399] # print first few contexts
[codex:514399] for pos in call_positions[:3]:
[codex:514399]     start=max(0,pos-10)
[codex:514399]     end=min(len(code),pos+10)
[codex:514399]     # disassemble between start and end
[codex:514399]     i=start
[codex:514399]     out=[]
[codex:514399]     while i<end:
[codex:514399]         op=code[i]
[codex:514399]         name=ops.get(op,f'OP{op:02x}')
[codex:514399]         if 0x60<=op<=0x7f:
[codex:514399]             n=op-0x5f
[codex:514399]             data=code[i+1:i+1+n]
[codex:514399]             out.append(f'{i:04x}: {name} 0x{data.hex()}')
[codex:514399]             i+=1+n
[codex:514399]         else:
[codex:514399]             out.append(f'{i:04x}: {name}')
[codex:514399]             i+=1
[codex:514399]     print('---context around',pos)
[codex:514399]     print('\\n'.join(out))
[codex:514399] 
[codex:514399] # find CALL followed by ISZERO within next few ops
[codex:514399] for pos in call_positions:
[codex:514399]     # simple check: is any byte 0x15 within next 6 bytes
[codex:514399]     window=code[pos+1:pos+10]
[codex:514399]     if 0x15 in window:
[codex:514399]         continue
[codex:514399]     # print candidate
[codex:514399]     print('CALL without nearby ISZERO at',hex(pos))
[codex:514399]     break
[codex:514399] PY" in /tmp/codex-multi-gpl6ys85 succeeded in 33ms:
[codex:514399] CALL count 9
[codex:514399] ---context around 835
[codex:514399] 0339: PUSH1 0x40
[codex:514399] 033b: MLOAD
[codex:514399] 033c: DUP1
[codex:514399] 033d: DUP4
[codex:514399] 033e: SUB
[codex:514399] 033f: DUP2
[codex:514399] 0340: DUP6
[codex:514399] 0341: DUP8
[codex:514399] 0342: GAS
[codex:514399] 0343: CALL
[codex:514399] 0344: SWAP3
[codex:514399] 0345: POP
[codex:514399] 0346: POP
[codex:514399] 0347: POP
[codex:514399] 0348: RETURNDATASIZE
[codex:514399] 0349: DUP1
[codex:514399] 034a: PUSH1 0x00
[codex:514399] 034c: DUP2
[codex:514399] 
[codex:514399] thinking
[codex:514399] **Identifying unchecked CALL in bytecode**
[codex:514399] codex
[codex:514399] {"no_findings":false,"summary":"One low-severity issue identified from the runtime bytecode patterns.","findings":[{"severity":"low","category":"other","title":"Unchecked low-level CALL return value in external call helper","exploit_scenario":"The owner-only function appears to perform a low-level CALL to a user-supplied target and returns returndata without checking the CALL success flag. If the external call fails (e.g., reverts), this function will not revert and can return revert data as normal return data, potentially masking failure and leading to incorrect assumptions or operational loss if the caller assumes success.","recommendation":"Check the CALL return value and revert on failure (or explicitly document that failures are intentionally ignored). If this is meant to be a generic executor, bubble up reverts when the CALL fails.","evidence":"The CALL opcode is followed by stack cleanup and returndata handling but no ISZERO check of the CALL success flag. Sequence includes `...5af1 925050 3d8060008114...`, indicating the CALL result is ignored and only returndata size is inspected.","locations":["BYTECODE_BUNDLE.txt:5"]}]}
[codex:514399] tokens used
[codex:514399] 18,634
[codex:514399] {"no_findings":false,"summary":"One low-severity issue identified from the runtime bytecode patterns.","findings":[{"severity":"low","category":"other","title":"Unchecked low-level CALL return value in external call helper","exploit_scenario":"The owner-only function appears to perform a low-level CALL to a user-supplied target and returns returndata without checking the CALL success flag. If the external call fails (e.g., reverts), this function will not revert and can return revert data as normal return data, potentially masking failure and leading to incorrect assumptions or operational loss if the caller assumes success.","recommendation":"Check the CALL return value and revert on failure (or explicitly document that failures are intentionally ignored). If this is meant to be a generic executor, bubble up reverts when the CALL fails.","evidence":"The CALL opcode is followed by stack cleanup and returndata handling but no ISZERO check of the CALL success flag. Sequence includes `...5af1 925050 3d8060008114...`, indicating the CALL result is ignored and only returndata size is inspected.","locations":["BYTECODE_BUNDLE.txt:5"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-31T14:37:17.791391+00:00",
        "returncode": 0
    },
    "summary": "One low-severity issue identified from the runtime bytecode patterns.",
    "raw_final": {
        "summary": "One low-severity issue identified from the runtime bytecode patterns.",
        "findings": [
            {
                "title": "Unchecked low-level CALL return value in external call helper",
                "category": "other",
                "evidence": "The CALL opcode is followed by stack cleanup and returndata handling but no ISZERO check of the CALL success flag. Sequence includes `...5af1 925050 3d8060008114...`, indicating the CALL result is ignored and only returndata size is inspected.",
                "severity": "low",
                "locations": [
                    "BYTECODE_BUNDLE.txt:5"
                ],
                "recommendation": "Check the CALL return value and revert on failure (or explicitly document that failures are intentionally ignored). If this is meant to be a generic executor, bubble up reverts when the CALL fails.",
                "exploit_scenario": "The owner-only function appears to perform a low-level CALL to a user-supplied target and returns returndata without checking the CALL success flag. If the external call fails (e.g., reverts), this function will not revert and can return revert data as normal return data, potentially masking failure and leading to incorrect assumptions or operational loss if the caller assumes success."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
13
EXT*/BALANCE
12
Total opcodes
2267
Flags
heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0029
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x1af2a2bc
00000019: EQ
0000001a: PUSH2 0x002e
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0x491f09dc
00000024: EQ
00000025: PUSH2 0x019e
00000028: JUMPI
00000029: JUMPDEST
0000002a: PUSH1 0x00
0000002c: DUP1
0000002d: REVERT
0000002e: JUMPDEST
0000002f: PUSH2 0x011a
00000032: PUSH1 0x04
00000034: DUP1
00000035: CALLDATASIZE
00000036: SUB
00000037: PUSH1 0x60
00000039: DUP2
0000003a: LT
0000003b: ISZERO
0000003c: PUSH2 0x0044
0000003f: JUMPI
00000040: PUSH1 0x00
00000042: DUP1
00000043: REVERT
00000044: JUMPDEST
00000045: DUP2
00000046: ADD
00000047: SWAP1
00000048: DUP1
00000049: DUP1
0000004a: CALLDATALOAD
0000004b: SWAP1
0000004c: PUSH1 0x20
0000004e: ADD
0000004f: SWAP1
00000050: PUSH5 0x0100000000
00000056: DUP2
00000057: GT
00000058: ISZERO
00000059: PUSH2 0x0061
0000005c: JUMPI
0000005d: PUSH1 0x00
0000005f: DUP1
00000060: REVERT
00000061: JUMPDEST
00000062: DUP3
00000063: ADD
00000064: DUP4
00000065: PUSH1 0x20
00000067: DUP3
00000068: ADD
00000069: GT
0000006a: ISZERO
0000006b: PUSH2 0x0073
0000006e: JUMPI
0000006f: PUSH1 0x00
00000071: DUP1
00000072: REVERT
00000073: JUMPDEST
00000074: DUP1
00000075: CALLDATALOAD
00000076: SWAP1
00000077: PUSH1 0x20
00000079: ADD
0000007a: SWAP2
0000007b: DUP5
0000007c: PUSH1 0x01
0000007e: DUP4
0000007f: MUL
00000080: DUP5
00000081: ADD
00000082: GT
00000083: PUSH5 0x0100000000
00000089: DUP4
0000008a: GT
0000008b: OR
0000008c: ISZERO
0000008d: PUSH2 0x0095
00000090: JUMPI
00000091: PUSH1 0x00
00000093: DUP1
00000094: REVERT
00000095: JUMPDEST
00000096: SWAP1
00000097: SWAP2
00000098: SWAP3
00000099: SWAP4
0000009a: SWAP2
0000009b: SWAP3
0000009c: SWAP4
0000009d: SWAP1
0000009e: DUP1
0000009f: CALLDATALOAD
000000a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000b5: AND
000000b6: SWAP1
000000b7: PUSH1 0x20
000000b9: ADD
000000ba: SWAP1
000000bb: SWAP3
000000bc: SWAP2
000000bd: SWAP1
000000be: DUP1
000000bf: CALLDATALOAD
000000c0: SWAP1
000000c1: PUSH1 0x20
000000c3: ADD
000000c4: SWAP1
000000c5: PUSH5 0x0100000000
000000cb: DUP2
000000cc: GT
000000cd: ISZERO
000000ce: PUSH2 0x00d6
000000d1: JUMPI
000000d2: PUSH1 0x00
000000d4: DUP1
000000d5: REVERT
000000d6: JUMPDEST
000000d7: DUP3
000000d8: ADD
000000d9: DUP4
000000da: PUSH1 0x20
000000dc: DUP3
000000dd: ADD
000000de: GT
000000df: ISZERO
000000e0: PUSH2 0x00e8
000000e3: JUMPI
000000e4: PUSH1 0x00
000000e6: DUP1
000000e7: REVERT
000000e8: JUMPDEST
000000e9: DUP1
000000ea: CALLDATALOAD
000000eb: SWAP1
000000ec: PUSH1 0x20
000000ee: ADD
000000ef: SWAP2
000000f0: DUP5
000000f1: PUSH1 0x01
000000f3: DUP4
000000f4: MUL
000000f5: DUP5
000000f6: ADD
000000f7: GT
000000f8: PUSH5 0x0100000000
000000fe: DUP4
000000ff: GT
00000100: OR
00000101: ISZERO
00000102: PUSH2 0x010a
00000105: JUMPI
00000106: PUSH1 0x00
00000108: DUP1
00000109: REVERT
0000010a: JUMPDEST
0000010b: SWAP1
0000010c: SWAP2
0000010d: SWAP3
0000010e: SWAP4
0000010f: SWAP2
00000110: SWAP3
00000111: SWAP4
00000112: SWAP1
00000113: POP
00000114: POP
00000115: POP
00000116: PUSH2 0x0271
00000119: JUMP
0000011a: JUMPDEST
0000011b: PUSH1 0x40
0000011d: MLOAD
0000011e: DUP1
0000011f: DUP4
00000120: ISZERO
00000121: ISZERO
00000122: DUP2
00000123: MSTORE
00000124: PUSH1 0x20
00000126: ADD
00000127: DUP1
00000128: PUSH1 0x20
0000012a: ADD
0000012b: DUP3
0000012c: DUP2
0000012d: SUB
0000012e: DUP3
0000012f: MSTORE
00000130: DUP4
00000131: DUP2
00000132: DUP2
00000133: MLOAD
00000134: DUP2
00000135: MSTORE
00000136: PUSH1 0x20
00000138: ADD
00000139: SWAP2
0000013a: POP
0000013b: DUP1
0000013c: MLOAD
0000013d: SWAP1
0000013e: PUSH1 0x20
00000140: ADD
00000141: SWAP1
00000142: DUP1
00000143: DUP4
00000144: DUP4
00000145: PUSH1 0x00
00000147: JUMPDEST
00000148: DUP4
00000149: DUP2
0000014a: LT
0000014b: ISZERO
0000014c: PUSH2 0x0162
0000014f: JUMPI
00000150: DUP1
00000151: DUP3
00000152: ADD
00000153: MLOAD
00000154: DUP2
00000155: DUP5
00000156: ADD
00000157: MSTORE
00000158: PUSH1 0x20
0000015a: DUP2
0000015b: ADD
0000015c: SWAP1
0000015d: POP
0000015e: PUSH2 0x0147
00000161: JUMP
00000162: JUMPDEST
00000163: POP
00000164: POP
00000165: POP
00000166: POP
00000167: SWAP1
00000168: POP
00000169: SWAP1
0000016a: DUP2
0000016b: ADD
0000016c: SWAP1
0000016d: PUSH1 0x1f
0000016f: AND
00000170: DUP1
00000171: ISZERO
00000172: PUSH2 0x018f
00000175: JUMPI
00000176: DUP1
00000177: DUP3
00000178: SUB
00000179: DUP1
0000017a: MLOAD
0000017b: PUSH1 0x01
0000017d: DUP4
0000017e: PUSH1 0x20
00000180: SUB
00000181: PUSH2 0x0100
00000184: EXP
00000185: SUB
00000186: NOT
00000187: AND
00000188: DUP2
00000189: MSTORE
0000018a: PUSH1 0x20
0000018c: ADD
0000018d: SWAP2
0000018e: POP
0000018f: JUMPDEST
00000190: POP
00000191: SWAP4
00000192: POP
00000193: POP
00000194: POP
00000195: POP
00000196: PUSH1 0x40
00000198: MLOAD
00000199: DUP1
0000019a: SWAP2
0000019b: SUB
0000019c: SWAP1
0000019d: RETURN
0000019e: JUMPDEST
0000019f: PUSH2 0x026f
000001a2: PUSH1 0x04
000001a4: DUP1
000001a5: CALLDATASIZE
000001a6: SUB
000001a7: PUSH1 0xe0
000001a9: DUP2
000001aa: LT
000001ab: ISZERO
000001ac: PUSH2 0x01b4
000001af: JUMPI
000001b0: PUSH1 0x00
000001b2: DUP1
000001b3: REVERT
000001b4: JUMPDEST
000001b5: DUP2
000001b6: ADD
000001b7: SWAP1
000001b8: DUP1
000001b9: DUP1
000001ba: CALLDATALOAD
000001bb: SWAP1
000001bc: PUSH1 0x20
000001be: ADD
000001bf: SWAP1
000001c0: PUSH5 0x0100000000
000001c6: DUP2
000001c7: GT
000001c8: ISZERO
000001c9: PUSH2 0x01d1
000001cc: JUMPI
000001cd: PUSH1 0x00
000001cf: DUP1
000001d0: REVERT
000001d1: JUMPDEST
000001d2: DUP3
000001d3: ADD
000001d4: DUP4
000001d5: PUSH1 0x20
000001d7: DUP3
000001d8: ADD
000001d9: GT
000001da: ISZERO
000001db: PUSH2 0x01e3
000001de: JUMPI
000001df: PUSH1 0x00
000001e1: DUP1
000001e2: REVERT
000001e3: JUMPDEST
000001e4: DUP1
000001e5: CALLDATALOAD
000001e6: SWAP1
000001e7: PUSH1 0x20
000001e9: ADD
000001ea: SWAP2
000001eb: DUP5
000001ec: PUSH1 0x01
000001ee: DUP4
000001ef: MUL
000001f0: DUP5
000001f1: ADD
000001f2: GT
000001f3: PUSH5 0x0100000000
000001f9: DUP4
000001fa: GT
000001fb: OR
000001fc: ISZERO
000001fd: PUSH2 0x0205
00000200: JUMPI
00000201: PUSH1 0x00
00000203: DUP1
00000204: REVERT
00000205: JUMPDEST
00000206: SWAP1
00000207: SWAP2
00000208: SWAP3
00000209: SWAP4
0000020a: SWAP2
0000020b: SWAP3
0000020c: SWAP4
0000020d: SWAP1
0000020e: DUP1
0000020f: CALLDATALOAD
00000210: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000225: AND
00000226: SWAP1
00000227: PUSH1 0x20
00000229: ADD
0000022a: SWAP1
0000022b: SWAP3
0000022c: SWAP2
0000022d: SWAP1
0000022e: DUP1
0000022f: CALLDATALOAD
00000230: ISZERO
00000231: ISZERO
00000232: SWAP1
00000233: PUSH1 0x20
00000235: ADD
00000236: SWAP1
00000237: SWAP3
00000238: SWAP2
00000239: SWAP1
0000023a: DUP1
0000023b: CALLDATALOAD
0000023c: ISZERO
0000023d: ISZERO
0000023e: SWAP1
0000023f: PUSH1 0x20
00000241: ADD
00000242: SWAP1
00000243: SWAP3
00000244: SWAP2
00000245: SWAP1
00000246: DUP1
00000247: CALLDATALOAD
00000248: ISZERO
00000249: ISZERO
0000024a: SWAP1
0000024b: PUSH1 0x20
0000024d: ADD
0000024e: SWAP1
0000024f: SWAP3
00000250: SWAP2
00000251: SWAP1
00000252: DUP1
00000253: CALLDATALOAD
00000254: SWAP1
00000255: PUSH1 0x20
00000257: ADD
00000258: SWAP1
00000259: SWAP3
0000025a: SWAP2
0000025b: SWAP1
0000025c: DUP1
0000025d: CALLDATALOAD
0000025e: ISZERO
0000025f: ISZERO
00000260: SWAP1
00000261: PUSH1 0x20
00000263: ADD
00000264: SWAP1
00000265: SWAP3
00000266: SWAP2
00000267: SWAP1
00000268: POP
00000269: POP
0000026a: POP
0000026b: PUSH2 0x0388
0000026e: JUMP
0000026f: JUMPDEST
00000270: STOP
00000271: JUMPDEST
00000272: PUSH1 0x00
00000274: PUSH1 0x60
00000276: PUSH1 0x00
00000278: DUP1
00000279: SLOAD
0000027a: SWAP1
0000027b: PUSH2 0x0100
0000027e: EXP
0000027f: SWAP1
00000280: DIV
00000281: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000296: AND
00000297: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002ac: AND
000002ad: CALLER
000002ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002c3: AND
000002c4: EQ
000002c5: PUSH2 0x02cd
000002c8: JUMPI
000002c9: PUSH1 0x00
000002cb: DUP1
000002cc: REVERT
000002cd: JUMPDEST
000002ce: PUSH1 0x60
000002d0: PUSH1 0x40
000002d2: MLOAD
000002d3: DUP1
000002d4: PUSH1 0x40
000002d6: ADD
000002d7: PUSH1 0x40
000002d9: MSTORE
000002da: DUP1
000002db: PUSH1 0x12
000002dd: DUP2
000002de: MSTORE
000002df: PUSH1 0x20
000002e1: ADD
000002e2: PUSH32 0x06e9a5950c843db1796a5c193f564d7cdaa50000000000000000000000000000
00000303: DUP2
00000304: MSTORE
00000305: POP
00000306: SWAP1
00000307: POP
00000308: DUP6
00000309: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000031e: AND
0000031f: CALLVALUE
00000320: DUP7
00000321: DUP7
00000322: PUSH1 0x40
00000324: MLOAD
00000325: DUP1
00000326: DUP4
00000327: DUP4
00000328: DUP1
00000329: DUP3
0000032a: DUP5
0000032b: CALLDATACOPY
0000032c: DUP1
0000032d: DUP4
0000032e: ADD
0000032f: SWAP3
00000330: POP
00000331: POP
00000332: POP
00000333: SWAP3
00000334: POP
00000335: POP
00000336: POP
00000337: PUSH1 0x00
00000339: PUSH1 0x40
0000033b: MLOAD
0000033c: DUP1
0000033d: DUP4
0000033e: SUB
0000033f: DUP2
00000340: DUP6
00000341: DUP8
00000342: GAS
00000343: CALL
00000344: SWAP3
00000345: POP
00000346: POP
00000347: POP
00000348: RETURNDATASIZE
00000349: DUP1
0000034a: PUSH1 0x00
0000034c: DUP2
0000034d: EQ
0000034e: PUSH2 0x0373
00000351: JUMPI
00000352: PUSH1 0x40
00000354: MLOAD
00000355: SWAP2
00000356: POP
00000357: PUSH1 0x1f
00000359: NOT
0000035a: PUSH1 0x3f
0000035c: RETURNDATASIZE
0000035d: ADD
0000035e: AND
0000035f: DUP3
00000360: ADD
00000361: PUSH1 0x40
00000363: MSTORE
00000364: RETURNDATASIZE
00000365: DUP3
00000366: MSTORE
00000367: RETURNDATASIZE
00000368: PUSH1 0x00
0000036a: PUSH1 0x20
0000036c: DUP5
0000036d: ADD
0000036e: RETURNDATACOPY
0000036f: PUSH2 0x0378
00000372: JUMP
00000373: JUMPDEST
00000374: PUSH1 0x60
00000376: SWAP2
00000377: POP
00000378: JUMPDEST
00000379: POP
0000037a: SWAP3
0000037b: POP
0000037c: SWAP3
0000037d: POP
0000037e: POP
0000037f: SWAP6
00000380: POP
00000381: SWAP6
00000382: SWAP4
00000383: POP
00000384: POP
00000385: POP
00000386: POP
00000387: JUMP
00000388: JUMPDEST
00000389: PUSH1 0x00
0000038b: DUP1
0000038c: SLOAD
0000038d: SWAP1
0000038e: PUSH2 0x0100
00000391: EXP
00000392: SWAP1
00000393: DIV
00000394: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003a9: AND
000003aa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003bf: AND
000003c0: CALLER
000003c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003d6: AND
000003d7: EQ
000003d8: PUSH2 0x03e0
000003db: JUMPI
000003dc: PUSH1 0x00
000003de: DUP1
000003df: REVERT
000003e0: JUMPDEST
000003e1: PUSH1 0x00
000003e3: GAS
000003e4: SWAP1
000003e5: POP
000003e6: PUSH1 0x00
000003e8: DUP8
000003e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003fe: AND
000003ff: PUSH4 0x0dfe1681
00000404: PUSH1 0x40
00000406: MLOAD
00000407: DUP2
00000408: PUSH4 0xffffffff
0000040d: AND
0000040e: PUSH1 0xe0
00000410: SHL
00000411: DUP2
00000412: MSTORE
00000413: PUSH1 0x04
00000415: ADD
00000416: PUSH1 0x20
00000418: PUSH1 0x40
0000041a: MLOAD
0000041b: DUP1
0000041c: DUP4
0000041d: SUB
0000041e: DUP2
0000041f: DUP7
00000420: DUP1
00000421: EXTCODESIZE
00000422: ISZERO
00000423: DUP1
00000424: ISZERO
00000425: PUSH2 0x042d
00000428: JUMPI
00000429: PUSH1 0x00
0000042b: DUP1
0000042c: REVERT
0000042d: JUMPDEST
0000042e: POP
0000042f: GAS
00000430: STATICCALL
00000431: ISZERO
00000432: DUP1
00000433: ISZERO
00000434: PUSH2 0x0441
00000437: JUMPI
00000438: RETURNDATASIZE
00000439: PUSH1 0x00
0000043b: DUP1
0000043c: RETURNDATACOPY
0000043d: RETURNDATASIZE
0000043e: PUSH1 0x00
00000440: REVERT
00000441: JUMPDEST
00000442: POP
00000443: POP
00000444: POP
00000445: POP
00000446: PUSH1 0x40
00000448: MLOAD
00000449: RETURNDATASIZE
0000044a: PUSH1 0x20
0000044c: DUP2
0000044d: LT
0000044e: ISZERO
0000044f: PUSH2 0x0457
00000452: JUMPI
00000453: PUSH1 0x00
00000455: DUP1
00000456: REVERT
00000457: JUMPDEST
00000458: DUP2
00000459: ADD
0000045a: SWAP1
0000045b: DUP1
0000045c: DUP1
0000045d: MLOAD
0000045e: SWAP1
0000045f: PUSH1 0x20
00000461: ADD
00000462: SWAP1
00000463: SWAP3
00000464: SWAP2
00000465: SWAP1
00000466: POP
00000467: POP
00000468: POP
00000469: SWAP1
0000046a: POP
0000046b: PUSH1 0x00
0000046d: DUP9
0000046e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000483: AND
00000484: PUSH4 0xd21220a7
00000489: PUSH1 0x40
0000048b: MLOAD
0000048c: DUP2
0000048d: PUSH4 0xffffffff
00000492: AND
00000493: PUSH1 0xe0
00000495: SHL
00000496: DUP2
00000497: MSTORE
00000498: PUSH1 0x04
0000049a: ADD
0000049b: PUSH1 0x20
0000049d: PUSH1 0x40
0000049f: MLOAD
000004a0: DUP1
000004a1: DUP4
000004a2: SUB
000004a3: DUP2
000004a4: DUP7
000004a5: DUP1
000004a6: EXTCODESIZE
000004a7: ISZERO
000004a8: DUP1
000004a9: ISZERO
000004aa: PUSH2 0x04b2
000004ad: JUMPI
000004ae: PUSH1 0x00
000004b0: DUP1
000004b1: REVERT
000004b2: JUMPDEST
000004b3: POP
000004b4: GAS
000004b5: STATICCALL
000004b6: ISZERO
000004b7: DUP1
000004b8: ISZERO
000004b9: PUSH2 0x04c6
000004bc: JUMPI
000004bd: RETURNDATASIZE
000004be: PUSH1 0x00
000004c0: DUP1
000004c1: RETURNDATACOPY
000004c2: RETURNDATASIZE
000004c3: PUSH1 0x00
000004c5: REVERT
000004c6: JUMPDEST
000004c7: POP
000004c8: POP
000004c9: POP
000004ca: POP
000004cb: PUSH1 0x40
000004cd: MLOAD
000004ce: RETURNDATASIZE
000004cf: PUSH1 0x20
000004d1: DUP2
000004d2: LT
000004d3: ISZERO
000004d4: PUSH2 0x04dc
000004d7: JUMPI
000004d8: PUSH1 0x00
000004da: DUP1
000004db: REVERT
000004dc: JUMPDEST
000004dd: DUP2
000004de: ADD
000004df: SWAP1
000004e0: DUP1
000004e1: DUP1
000004e2: MLOAD
000004e3: SWAP1
000004e4: PUSH1 0x20
000004e6: ADD
000004e7: SWAP1
000004e8: SWAP3
000004e9: SWAP2
000004ea: SWAP1
000004eb: POP
000004ec: POP
000004ed: POP
000004ee: SWAP1
000004ef: POP
000004f0: PUSH1 0x00
000004f2: DUP1
000004f3: DUP11
000004f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000509: AND
0000050a: PUSH4 0x0902f1ac
0000050f: PUSH1 0x40
00000511: MLOAD
00000512: DUP2
00000513: PUSH4 0xffffffff
00000518: AND
00000519: PUSH1 0xe0
0000051b: SHL
0000051c: DUP2
0000051d: MSTORE
0000051e: PUSH1 0x04
00000520: ADD
00000521: PUSH1 0x60
00000523: PUSH1 0x40
00000525: MLOAD
00000526: DUP1
00000527: DUP4
00000528: SUB
00000529: DUP2
0000052a: DUP7
0000052b: DUP1
0000052c: EXTCODESIZE
0000052d: ISZERO
0000052e: DUP1
0000052f: ISZERO
00000530: PUSH2 0x0538
00000533: JUMPI
00000534: PUSH1 0x00
00000536: DUP1
00000537: REVERT
00000538: JUMPDEST
00000539: POP
0000053a: GAS
0000053b: STATICCALL
0000053c: ISZERO
0000053d: DUP1
0000053e: ISZERO
0000053f: PUSH2 0x054c
00000542: JUMPI
00000543: RETURNDATASIZE
00000544: PUSH1 0x00
00000546: DUP1
00000547: RETURNDATACOPY
00000548: RETURNDATASIZE
00000549: PUSH1 0x00
0000054b: REVERT
0000054c: JUMPDEST
0000054d: POP
0000054e: POP
0000054f: POP
00000550: POP
00000551: PUSH1 0x40
00000553: MLOAD
00000554: RETURNDATASIZE
00000555: PUSH1 0x60
00000557: DUP2
00000558: LT
00000559: ISZERO
0000055a: PUSH2 0x0562
0000055d: JUMPI
0000055e: PUSH1 0x00
00000560: DUP1
00000561: REVERT
00000562: JUMPDEST
00000563: DUP2
00000564: ADD
00000565: SWAP1
00000566: DUP1
00000567: DUP1
00000568: MLOAD
00000569: SWAP1
0000056a: PUSH1 0x20
0000056c: ADD
0000056d: SWAP1
0000056e: SWAP3
0000056f: SWAP2
00000570: SWAP1
00000571: DUP1
00000572: MLOAD
00000573: SWAP1
00000574: PUSH1 0x20
00000576: ADD
00000577: SWAP1
00000578: SWAP3
00000579: SWAP2
0000057a: SWAP1
0000057b: DUP1
0000057c: MLOAD
0000057d: SWAP1
0000057e: PUSH1 0x20
00000580: ADD
00000581: SWAP1
00000582: SWAP3
00000583: SWAP2
00000584: SWAP1
00000585: POP
00000586: POP
00000587: POP
00000588: POP
00000589: SWAP2
0000058a: POP
0000058b: SWAP2
0000058c: POP
0000058d: PUSH1 0x60
0000058f: PUSH1 0x40
00000591: MLOAD
00000592: DUP1
00000593: PUSH1 0x20
00000595: ADD
00000596: PUSH1 0x40
00000598: MSTORE
00000599: DUP1
0000059a: PUSH1 0x00
0000059c: DUP2
0000059d: MSTORE
0000059e: POP
0000059f: SWAP1
000005a0: POP
000005a1: PUSH1 0x01
000005a3: ISZERO
000005a4: ISZERO
000005a5: DUP12
000005a6: ISZERO
000005a7: ISZERO
000005a8: EQ
000005a9: ISZERO
000005aa: PUSH2 0x0961
000005ad: JUMPI
000005ae: PUSH1 0x00
000005b0: DUP6
000005b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005c6: AND
000005c7: PUSH4 0x70a08231
000005cc: DUP15
000005cd: PUSH1 0x40
000005cf: MLOAD
000005d0: DUP3
000005d1: PUSH4 0xffffffff
000005d6: AND
000005d7: PUSH1 0xe0
000005d9: SHL
000005da: DUP2
000005db: MSTORE
000005dc: PUSH1 0x04
000005de: ADD
000005df: DUP1
000005e0: DUP3
000005e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005f6: AND
000005f7: DUP2
000005f8: MSTORE
000005f9: PUSH1 0x20
000005fb: ADD
000005fc: SWAP2
000005fd: POP
000005fe: POP
000005ff: PUSH1 0x20
00000601: PUSH1 0x40
00000603: MLOAD
00000604: DUP1
00000605: DUP4
00000606: SUB
00000607: DUP2
00000608: DUP7
00000609: DUP1
0000060a: EXTCODESIZE
0000060b: ISZERO
0000060c: DUP1
0000060d: ISZERO
0000060e: PUSH2 0x0616
00000611: JUMPI
00000612: PUSH1 0x00
00000614: DUP1
00000615: REVERT
00000616: JUMPDEST
00000617: POP
00000618: GAS
00000619: STATICCALL
0000061a: ISZERO
0000061b: DUP1
0000061c: ISZERO
0000061d: PUSH2 0x062a
00000620: JUMPI
00000621: RETURNDATASIZE
00000622: PUSH1 0x00
00000624: DUP1
00000625: RETURNDATACOPY
00000626: RETURNDATASIZE
00000627: PUSH1 0x00
00000629: REVERT
0000062a: JUMPDEST
0000062b: POP
0000062c: POP
0000062d: POP
0000062e: POP
0000062f: PUSH1 0x40
00000631: MLOAD
00000632: RETURNDATASIZE
00000633: PUSH1 0x20
00000635: DUP2
00000636: LT
00000637: ISZERO
00000638: PUSH2 0x0640
0000063b: JUMPI
0000063c: PUSH1 0x00
0000063e: DUP1
0000063f: REVERT
00000640: JUMPDEST
00000641: DUP2
00000642: ADD
00000643: SWAP1
00000644: DUP1
00000645: DUP1
00000646: MLOAD
00000647: SWAP1
00000648: PUSH1 0x20
0000064a: ADD
0000064b: SWAP1
0000064c: SWAP3
0000064d: SWAP2
0000064e: SWAP1
0000064f: POP
00000650: POP
00000651: POP
00000652: SWAP1
00000653: POP
00000654: DUP4
00000655: PUSH14 0xffffffffffffffffffffffffffff
00000664: AND
00000665: DUP2
00000666: GT
00000667: ISZERO
00000668: PUSH2 0x095b
0000066b: JUMPI
0000066c: PUSH1 0x01
0000066e: ISZERO
0000066f: ISZERO
00000670: DUP12
00000671: ISZERO
00000672: ISZERO
00000673: EQ
00000674: ISZERO
00000675: PUSH2 0x06fe
00000678: JUMPI
00000679: DUP13
0000067a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000068f: AND
00000690: PUSH4 0xbc25cf77
00000695: ADDRESS
00000696: PUSH1 0x40
00000698: MLOAD
00000699: DUP3
0000069a: PUSH4 0xffffffff
0000069f: AND
000006a0: PUSH1 0xe0
000006a2: SHL
000006a3: DUP2
000006a4: MSTORE
000006a5: PUSH1 0x04
000006a7: ADD
000006a8: DUP1
000006a9: DUP3
000006aa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006bf: AND
000006c0: DUP2
000006c1: MSTORE
000006c2: PUSH1 0x20
000006c4: ADD
000006c5: SWAP2
000006c6: POP
000006c7: POP
000006c8: PUSH1 0x00
000006ca: PUSH1 0x40
000006cc: MLOAD
000006cd: DUP1
000006ce: DUP4
000006cf: SUB
000006d0: DUP2
000006d1: PUSH1 0x00
000006d3: DUP8
000006d4: DUP1
000006d5: EXTCODESIZE
000006d6: ISZERO
000006d7: DUP1
000006d8: ISZERO
000006d9: PUSH2 0x06e1
000006dc: JUMPI
000006dd: PUSH1 0x00
000006df: DUP1
000006e0: REVERT
000006e1: JUMPDEST
000006e2: POP
000006e3: GAS
000006e4: CALL
000006e5: ISZERO
000006e6: DUP1
000006e7: ISZERO
000006e8: PUSH2 0x06f5
000006eb: JUMPI
000006ec: RETURNDATASIZE
000006ed: PUSH1 0x00
000006ef: DUP1
000006f0: RETURNDATACOPY
000006f1: RETURNDATASIZE
000006f2: PUSH1 0x00
000006f4: REVERT
000006f5: JUMPDEST
000006f6: POP
000006f7: POP
000006f8: POP
000006f9: POP
000006fa: PUSH2 0x095a
000006fd: JUMP
000006fe: JUMPDEST
000006ff: PUSH1 0x00
00000701: DUP5
00000702: PUSH14 0xffffffffffffffffffffffffffff
00000711: AND
00000712: DUP3
00000713: SUB
00000714: SWAP1
00000715: POP
00000716: PUSH1 0x01
00000718: ISZERO
00000719: ISZERO
0000071a: DUP12
0000071b: ISZERO
0000071c: ISZERO
0000071d: EQ
0000071e: ISZERO
0000071f: PUSH2 0x083f
00000722: JUMPI
00000723: PUSH1 0x00
00000725: PUSH8 0x0de0b6b3a7640000
0000072e: DUP3
0000072f: DUP13
00000730: MUL
00000731: DUP2
00000732: PUSH2 0x0737
00000735: JUMPI
00000736: INVALID
00000737: JUMPDEST
00000738: DIV
00000739: SWAP1
0000073a: POP
0000073b: DUP15
0000073c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000751: AND
00000752: PUSH4 0x022c0d9f
00000757: PUSH1 0x00
00000759: DUP4
0000075a: ADDRESS
0000075b: DUP9
0000075c: PUSH1 0x40
0000075e: MLOAD
0000075f: DUP6
00000760: PUSH4 0xffffffff
00000765: AND
00000766: PUSH1 0xe0
00000768: SHL
00000769: DUP2
0000076a: MSTORE
0000076b: PUSH1 0x04
0000076d: ADD
0000076e: DUP1
0000076f: DUP6
00000770: DUP2
00000771: MSTORE
00000772: PUSH1 0x20
00000774: ADD
00000775: DUP5
00000776: DUP2
00000777: MSTORE
00000778: PUSH1 0x20
0000077a: ADD
0000077b: DUP4
0000077c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000791: AND
00000792: DUP2
00000793: MSTORE
00000794: PUSH1 0x20
00000796: ADD
00000797: DUP1
00000798: PUSH1 0x20
0000079a: ADD
0000079b: DUP3
0000079c: DUP2
0000079d: SUB
0000079e: DUP3
0000079f: MSTORE
000007a0: DUP4
000007a1: DUP2
000007a2: DUP2
000007a3: MLOAD
000007a4: DUP2
000007a5: MSTORE
000007a6: PUSH1 0x20
000007a8: ADD
000007a9: SWAP2
000007aa: POP
000007ab: DUP1
000007ac: MLOAD
000007ad: SWAP1
000007ae: PUSH1 0x20
000007b0: ADD
000007b1: SWAP1
000007b2: DUP1
000007b3: DUP4
000007b4: DUP4
000007b5: PUSH1 0x00
000007b7: JUMPDEST
000007b8: DUP4
000007b9: DUP2
000007ba: LT
000007bb: ISZERO
000007bc: PUSH2 0x07d2
000007bf: JUMPI
000007c0: DUP1
000007c1: DUP3
000007c2: ADD
000007c3: MLOAD
000007c4: DUP2
000007c5: DUP5
000007c6: ADD
000007c7: MSTORE
000007c8: PUSH1 0x20
000007ca: DUP2
000007cb: ADD
000007cc: SWAP1
000007cd: POP
000007ce: PUSH2 0x07b7
000007d1: JUMP
000007d2: JUMPDEST
000007d3: POP
000007d4: POP
000007d5: POP
000007d6: POP
000007d7: SWAP1
000007d8: POP
000007d9: SWAP1
000007da: DUP2
000007db: ADD
000007dc: SWAP1
000007dd: PUSH1 0x1f
000007df: AND
000007e0: DUP1
000007e1: ISZERO
000007e2: PUSH2 0x07ff
000007e5: JUMPI
000007e6: DUP1
000007e7: DUP3
000007e8: SUB
000007e9: DUP1
000007ea: MLOAD
000007eb: PUSH1 0x01
000007ed: DUP4
000007ee: PUSH1 0x20
000007f0: SUB
000007f1: PUSH2 0x0100
000007f4: EXP
000007f5: SUB
000007f6: NOT
000007f7: AND
000007f8: DUP2
000007f9: MSTORE
000007fa: PUSH1 0x20
000007fc: ADD
000007fd: SWAP2
000007fe: POP
000007ff: JUMPDEST
00000800: POP
00000801: SWAP6
00000802: POP
00000803: POP
00000804: POP
00000805: POP
00000806: POP
00000807: POP
00000808: PUSH1 0x00
0000080a: PUSH1 0x40
0000080c: MLOAD
0000080d: DUP1
0000080e: DUP4
0000080f: SUB
00000810: DUP2
00000811: PUSH1 0x00
00000813: DUP8
00000814: DUP1
00000815: EXTCODESIZE
00000816: ISZERO
00000817: DUP1
00000818: ISZERO
00000819: PUSH2 0x0821
0000081c: JUMPI
0000081d: PUSH1 0x00
0000081f: DUP1
00000820: REVERT
00000821: JUMPDEST
00000822: POP
00000823: GAS
00000824: CALL
00000825: ISZERO
00000826: DUP1
00000827: ISZERO
00000828: PUSH2 0x0835
0000082b: JUMPI
0000082c: RETURNDATASIZE
0000082d: PUSH1 0x00
0000082f: DUP1
00000830: RETURNDATACOPY
00000831: RETURNDATASIZE
00000832: PUSH1 0x00
00000834: REVERT
00000835: JUMPDEST
00000836: POP
00000837: POP
00000838: POP
00000839: POP
0000083a: POP
0000083b: PUSH2 0x0958
0000083e: JUMP
0000083f: JUMPDEST
00000840: PUSH1 0x00
00000842: PUSH8 0x0de0b6b3a7640000
0000084b: DUP3
0000084c: DUP13
0000084d: MUL
0000084e: DUP2
0000084f: PUSH2 0x0854
00000852: JUMPI
00000853: INVALID
00000854: JUMPDEST
00000855: DIV
00000856: SWAP1
00000857: POP
00000858: DUP15
00000859: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000086e: AND
0000086f: PUSH4 0x022c0d9f
00000874: DUP3
00000875: PUSH1 0x00
00000877: ADDRESS
00000878: DUP9
00000879: PUSH1 0x40
0000087b: MLOAD
0000087c: DUP6
0000087d: PUSH4 0xffffffff
00000882: AND
00000883: PUSH1 0xe0
00000885: SHL
00000886: DUP2
00000887: MSTORE
00000888: PUSH1 0x04
0000088a: ADD
0000088b: DUP1
0000088c: DUP6
0000088d: DUP2
0000088e: MSTORE
0000088f: PUSH1 0x20
00000891: ADD
00000892: DUP5
00000893: DUP2
00000894: MSTORE
00000895: PUSH1 0x20
00000897: ADD
00000898: DUP4
00000899: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008ae: AND
000008af: DUP2
000008b0: MSTORE
000008b1: PUSH1 0x20
000008b3: ADD
000008b4: DUP1
000008b5: PUSH1 0x20
000008b7: ADD
000008b8: DUP3
000008b9: DUP2
000008ba: SUB
000008bb: DUP3
000008bc: MSTORE
000008bd: DUP4
000008be: DUP2
000008bf: DUP2
000008c0: MLOAD
000008c1: DUP2
000008c2: MSTORE
000008c3: PUSH1 0x20
000008c5: ADD
000008c6: SWAP2
000008c7: POP
000008c8: DUP1
000008c9: MLOAD
000008ca: SWAP1
000008cb: PUSH1 0x20
000008cd: ADD
000008ce: SWAP1
000008cf: DUP1
000008d0: DUP4
000008d1: DUP4
000008d2: PUSH1 0x00
000008d4: JUMPDEST
000008d5: DUP4
000008d6: DUP2
000008d7: LT
000008d8: ISZERO
000008d9: PUSH2 0x08ef
000008dc: JUMPI
000008dd: DUP1
000008de: DUP3
000008df: ADD
000008e0: MLOAD
000008e1: DUP2
000008e2: DUP5
000008e3: ADD
000008e4: MSTORE
000008e5: PUSH1 0x20
000008e7: DUP2
000008e8: ADD
000008e9: SWAP1
000008ea: POP
000008eb: PUSH2 0x08d4
000008ee: JUMP
000008ef: JUMPDEST
000008f0: POP
000008f1: POP
000008f2: POP
000008f3: POP
000008f4: SWAP1
000008f5: POP
000008f6: SWAP1
000008f7: DUP2
000008f8: ADD
000008f9: SWAP1
000008fa: PUSH1 0x1f
000008fc: AND
000008fd: DUP1
000008fe: ISZERO
000008ff: PUSH2 0x091c
00000902: JUMPI
00000903: DUP1
00000904: DUP3
00000905: SUB
00000906: DUP1
00000907: MLOAD
00000908: PUSH1 0x01
0000090a: DUP4
0000090b: PUSH1 0x20
0000090d: SUB
0000090e: PUSH2 0x0100
00000911: EXP
00000912: SUB
00000913: NOT
00000914: AND
00000915: DUP2
00000916: MSTORE
00000917: PUSH1 0x20
00000919: ADD
0000091a: SWAP2
0000091b: POP
0000091c: JUMPDEST
0000091d: POP
0000091e: SWAP6
0000091f: POP
00000920: POP
00000921: POP
00000922: POP
00000923: POP
00000924: POP
00000925: PUSH1 0x00
00000927: PUSH1 0x40
00000929: MLOAD
0000092a: DUP1
0000092b: DUP4
0000092c: SUB
0000092d: DUP2
0000092e: PUSH1 0x00
00000930: DUP8
00000931: DUP1
00000932: EXTCODESIZE
00000933: ISZERO
00000934: DUP1
00000935: ISZERO
00000936: PUSH2 0x093e
00000939: JUMPI
0000093a: PUSH1 0x00
0000093c: DUP1
0000093d: REVERT
0000093e: JUMPDEST
0000093f: POP
00000940: GAS
00000941: CALL
00000942: ISZERO
00000943: DUP1
00000944: ISZERO
00000945: PUSH2 0x0952
00000948: JUMPI
00000949: RETURNDATASIZE
0000094a: PUSH1 0x00
0000094c: DUP1
0000094d: RETURNDATACOPY
0000094e: RETURNDATASIZE
0000094f: PUSH1 0x00
00000951: REVERT
00000952: JUMPDEST
00000953: POP
00000954: POP
00000955: POP
00000956: POP
00000957: POP
00000958: JUMPDEST
00000959: POP
0000095a: JUMPDEST
0000095b: JUMPDEST
0000095c: POP
0000095d: PUSH2 0x0d11
00000960: JUMP
00000961: JUMPDEST
00000962: PUSH1 0x00
00000964: DUP5
00000965: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000097a: AND
0000097b: PUSH4 0x70a08231
00000980: DUP15
00000981: PUSH1 0x40
00000983: MLOAD
00000984: DUP3
00000985: PUSH4 0xffffffff
0000098a: AND
0000098b: PUSH1 0xe0
0000098d: SHL
0000098e: DUP2
0000098f: MSTORE
00000990: PUSH1 0x04
00000992: ADD
00000993: DUP1
00000994: DUP3
00000995: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009aa: AND
000009ab: DUP2
000009ac: MSTORE
000009ad: PUSH1 0x20
000009af: ADD
000009b0: SWAP2
000009b1: POP
000009b2: POP
000009b3: PUSH1 0x20
000009b5: PUSH1 0x40
000009b7: MLOAD
000009b8: DUP1
000009b9: DUP4
000009ba: SUB
000009bb: DUP2
000009bc: DUP7
000009bd: DUP1
000009be: EXTCODESIZE
000009bf: ISZERO
000009c0: DUP1
000009c1: ISZERO
000009c2: PUSH2 0x09ca
000009c5: JUMPI
000009c6: PUSH1 0x00
000009c8: DUP1
000009c9: REVERT
000009ca: JUMPDEST
000009cb: POP
000009cc: GAS
000009cd: STATICCALL
000009ce: ISZERO
000009cf: DUP1
000009d0: ISZERO
000009d1: PUSH2 0x09de
000009d4: JUMPI
000009d5: RETURNDATASIZE
000009d6: PUSH1 0x00
000009d8: DUP1
000009d9: RETURNDATACOPY
000009da: RETURNDATASIZE
000009db: PUSH1 0x00
000009dd: REVERT
000009de: JUMPDEST
000009df: POP
000009e0: POP
000009e1: POP
000009e2: POP
000009e3: PUSH1 0x40
000009e5: MLOAD
000009e6: RETURNDATASIZE
000009e7: PUSH1 0x20
000009e9: DUP2
000009ea: LT
000009eb: ISZERO
000009ec: PUSH2 0x09f4
000009ef: JUMPI
000009f0: PUSH1 0x00
000009f2: DUP1
000009f3: REVERT
000009f4: JUMPDEST
000009f5: DUP2
000009f6: ADD
000009f7: SWAP1
000009f8: DUP1
000009f9: DUP1
000009fa: MLOAD
000009fb: SWAP1
000009fc: PUSH1 0x20
000009fe: ADD
000009ff: SWAP1
00000a00: SWAP3
00000a01: SWAP2
00000a02: SWAP1
00000a03: POP
00000a04: POP
00000a05: POP
00000a06: SWAP1
00000a07: POP
00000a08: DUP3
00000a09: PUSH14 0xffffffffffffffffffffffffffff
00000a18: AND
00000a19: DUP2
00000a1a: GT
00000a1b: ISZERO
00000a1c: PUSH2 0x0d0f
00000a1f: JUMPI
00000a20: PUSH1 0x01
00000a22: ISZERO
00000a23: ISZERO
00000a24: DUP12
00000a25: ISZERO
00000a26: ISZERO
00000a27: EQ
00000a28: ISZERO
00000a29: PUSH2 0x0ab2
00000a2c: JUMPI
00000a2d: DUP13
00000a2e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a43: AND
00000a44: PUSH4 0xbc25cf77
00000a49: ADDRESS
00000a4a: PUSH1 0x40
00000a4c: MLOAD
00000a4d: DUP3
00000a4e: PUSH4 0xffffffff
00000a53: AND
00000a54: PUSH1 0xe0
00000a56: SHL
00000a57: DUP2
00000a58: MSTORE
00000a59: PUSH1 0x04
00000a5b: ADD
00000a5c: DUP1
00000a5d: DUP3
00000a5e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a73: AND
00000a74: DUP2
00000a75: MSTORE
00000a76: PUSH1 0x20
00000a78: ADD
00000a79: SWAP2
00000a7a: POP
00000a7b: POP
00000a7c: PUSH1 0x00
00000a7e: PUSH1 0x40
00000a80: MLOAD
00000a81: DUP1
00000a82: DUP4
00000a83: SUB
00000a84: DUP2
00000a85: PUSH1 0x00
00000a87: DUP8
00000a88: DUP1
00000a89: EXTCODESIZE
00000a8a: ISZERO
00000a8b: DUP1
00000a8c: ISZERO
00000a8d: PUSH2 0x0a95
00000a90: JUMPI
00000a91: PUSH1 0x00
00000a93: DUP1
00000a94: REVERT
00000a95: JUMPDEST
00000a96: POP
00000a97: GAS
00000a98: CALL
00000a99: ISZERO
00000a9a: DUP1
00000a9b: ISZERO
00000a9c: PUSH2 0x0aa9
00000a9f: JUMPI
00000aa0: RETURNDATASIZE
00000aa1: PUSH1 0x00
00000aa3: DUP1
00000aa4: RETURNDATACOPY
00000aa5: RETURNDATASIZE
00000aa6: PUSH1 0x00
00000aa8: REVERT
00000aa9: JUMPDEST
00000aaa: POP
00000aab: POP
00000aac: POP
00000aad: POP
00000aae: PUSH2 0x0d0e
00000ab1: JUMP
00000ab2: JUMPDEST
00000ab3: PUSH1 0x00
00000ab5: DUP4
00000ab6: PUSH14 0xffffffffffffffffffffffffffff
00000ac5: AND
00000ac6: DUP3
00000ac7: SUB
00000ac8: SWAP1
00000ac9: POP
00000aca: PUSH1 0x01
00000acc: ISZERO
00000acd: ISZERO
00000ace: DUP12
00000acf: ISZERO
00000ad0: ISZERO
00000ad1: EQ
00000ad2: ISZERO
00000ad3: PUSH2 0x0bf3
00000ad6: JUMPI
00000ad7: PUSH1 0x00
00000ad9: PUSH8 0x0de0b6b3a7640000
00000ae2: DUP3
00000ae3: DUP13
00000ae4: MUL
00000ae5: DUP2
00000ae6: PUSH2 0x0aeb
00000ae9: JUMPI
00000aea: INVALID
00000aeb: JUMPDEST
00000aec: DIV
00000aed: SWAP1
00000aee: POP
00000aef: DUP15
00000af0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b05: AND
00000b06: PUSH4 0x022c0d9f
00000b0b: DUP3
00000b0c: PUSH1 0x00
00000b0e: ADDRESS
00000b0f: DUP9
00000b10: PUSH1 0x40
00000b12: MLOAD
00000b13: DUP6
00000b14: PUSH4 0xffffffff
00000b19: AND
00000b1a: PUSH1 0xe0
00000b1c: SHL
00000b1d: DUP2
00000b1e: MSTORE
00000b1f: PUSH1 0x04
00000b21: ADD
00000b22: DUP1
00000b23: DUP6
00000b24: DUP2
00000b25: MSTORE
00000b26: PUSH1 0x20
00000b28: ADD
00000b29: DUP5
00000b2a: DUP2
00000b2b: MSTORE
00000b2c: PUSH1 0x20
00000b2e: ADD
00000b2f: DUP4
00000b30: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b45: AND
00000b46: DUP2
00000b47: MSTORE
00000b48: PUSH1 0x20
00000b4a: ADD
00000b4b: DUP1
00000b4c: PUSH1 0x20
00000b4e: ADD
00000b4f: DUP3
00000b50: DUP2
00000b51: SUB
00000b52: DUP3
00000b53: MSTORE
00000b54: DUP4
00000b55: DUP2
00000b56: DUP2
00000b57: MLOAD
00000b58: DUP2
00000b59: MSTORE
00000b5a: PUSH1 0x20
00000b5c: ADD
00000b5d: SWAP2
00000b5e: POP
00000b5f: DUP1
00000b60: MLOAD
00000b61: SWAP1
00000b62: PUSH1 0x20
00000b64: ADD
00000b65: SWAP1
00000b66: DUP1
00000b67: DUP4
00000b68: DUP4
00000b69: PUSH1 0x00
00000b6b: JUMPDEST
00000b6c: DUP4
00000b6d: DUP2
00000b6e: LT
00000b6f: ISZERO
00000b70: PUSH2 0x0b86
00000b73: JUMPI
00000b74: DUP1
00000b75: DUP3
00000b76: ADD
00000b77: MLOAD
00000b78: DUP2
00000b79: DUP5
00000b7a: ADD
00000b7b: MSTORE
00000b7c: PUSH1 0x20
00000b7e: DUP2
00000b7f: ADD
00000b80: SWAP1
00000b81: POP
00000b82: PUSH2 0x0b6b
00000b85: JUMP
00000b86: JUMPDEST
00000b87: POP
00000b88: POP
00000b89: POP
00000b8a: POP
00000b8b: SWAP1
00000b8c: POP
00000b8d: SWAP1
00000b8e: DUP2
00000b8f: ADD
00000b90: SWAP1
00000b91: PUSH1 0x1f
00000b93: AND
00000b94: DUP1
00000b95: ISZERO
00000b96: PUSH2 0x0bb3
00000b99: JUMPI
00000b9a: DUP1
00000b9b: DUP3
00000b9c: SUB
00000b9d: DUP1
00000b9e: MLOAD
00000b9f: PUSH1 0x01
00000ba1: DUP4
00000ba2: PUSH1 0x20
00000ba4: SUB
00000ba5: PUSH2 0x0100
00000ba8: EXP
00000ba9: SUB
00000baa: NOT
00000bab: AND
00000bac: DUP2
00000bad: MSTORE
00000bae: PUSH1 0x20
00000bb0: ADD
00000bb1: SWAP2
00000bb2: POP
00000bb3: JUMPDEST
00000bb4: POP
00000bb5: SWAP6
00000bb6: POP
00000bb7: POP
00000bb8: POP
00000bb9: POP
00000bba: POP
00000bbb: POP
00000bbc: PUSH1 0x00
00000bbe: PUSH1 0x40
00000bc0: MLOAD
00000bc1: DUP1
00000bc2: DUP4
00000bc3: SUB
00000bc4: DUP2
00000bc5: PUSH1 0x00
00000bc7: DUP8
00000bc8: DUP1
00000bc9: EXTCODESIZE
00000bca: ISZERO
00000bcb: DUP1
00000bcc: ISZERO
00000bcd: PUSH2 0x0bd5
00000bd0: JUMPI
00000bd1: PUSH1 0x00
00000bd3: DUP1
00000bd4: REVERT
00000bd5: JUMPDEST
00000bd6: POP
00000bd7: GAS
00000bd8: CALL
00000bd9: ISZERO
00000bda: DUP1
00000bdb: ISZERO
00000bdc: PUSH2 0x0be9
00000bdf: JUMPI
00000be0: RETURNDATASIZE
00000be1: PUSH1 0x00
00000be3: DUP1
00000be4: RETURNDATACOPY
00000be5: RETURNDATASIZE
00000be6: PUSH1 0x00
00000be8: REVERT
00000be9: JUMPDEST
00000bea: POP
00000beb: POP
00000bec: POP
00000bed: POP
00000bee: POP
00000bef: PUSH2 0x0d0c
00000bf2: JUMP
00000bf3: JUMPDEST
00000bf4: PUSH1 0x00
00000bf6: PUSH8 0x0de0b6b3a7640000
00000bff: DUP3
00000c00: DUP13
00000c01: MUL
00000c02: DUP2
00000c03: PUSH2 0x0c08
00000c06: JUMPI
00000c07: INVALID
00000c08: JUMPDEST
00000c09: DIV
00000c0a: SWAP1
00000c0b: POP
00000c0c: DUP15
00000c0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c22: AND
00000c23: PUSH4 0x022c0d9f
00000c28: PUSH1 0x00
00000c2a: DUP4
00000c2b: ADDRESS
00000c2c: DUP9
00000c2d: PUSH1 0x40
00000c2f: MLOAD
00000c30: DUP6
00000c31: PUSH4 0xffffffff
00000c36: AND
00000c37: PUSH1 0xe0
00000c39: SHL
00000c3a: DUP2
00000c3b: MSTORE
00000c3c: PUSH1 0x04
00000c3e: ADD
00000c3f: DUP1
00000c40: DUP6
00000c41: DUP2
00000c42: MSTORE
00000c43: PUSH1 0x20
00000c45: ADD
00000c46: DUP5
00000c47: DUP2
00000c48: MSTORE
00000c49: PUSH1 0x20
00000c4b: ADD
00000c4c: DUP4
00000c4d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c62: AND
00000c63: DUP2
00000c64: MSTORE
00000c65: PUSH1 0x20
00000c67: ADD
00000c68: DUP1
00000c69: PUSH1 0x20
00000c6b: ADD
00000c6c: DUP3
00000c6d: DUP2
00000c6e: SUB
00000c6f: DUP3
00000c70: MSTORE
00000c71: DUP4
00000c72: DUP2
00000c73: DUP2
00000c74: MLOAD
00000c75: DUP2
00000c76: MSTORE
00000c77: PUSH1 0x20
00000c79: ADD
00000c7a: SWAP2
00000c7b: POP
00000c7c: DUP1
00000c7d: MLOAD
00000c7e: SWAP1
00000c7f: PUSH1 0x20
00000c81: ADD
00000c82: SWAP1
00000c83: DUP1
00000c84: DUP4
00000c85: DUP4
00000c86: PUSH1 0x00
00000c88: JUMPDEST
00000c89: DUP4
00000c8a: DUP2
00000c8b: LT
00000c8c: ISZERO
00000c8d: PUSH2 0x0ca3
00000c90: JUMPI
00000c91: DUP1
00000c92: DUP3
00000c93: ADD
00000c94: MLOAD
00000c95: DUP2
00000c96: DUP5
00000c97: ADD
00000c98: MSTORE
00000c99: PUSH1 0x20
00000c9b: DUP2
00000c9c: ADD
00000c9d: SWAP1
00000c9e: POP
00000c9f: PUSH2 0x0c88
00000ca2: JUMP
00000ca3: JUMPDEST
00000ca4: POP
00000ca5: POP
00000ca6: POP
00000ca7: POP
00000ca8: SWAP1
00000ca9: POP
00000caa: SWAP1
00000cab: DUP2
00000cac: ADD
00000cad: SWAP1
00000cae: PUSH1 0x1f
00000cb0: AND
00000cb1: DUP1
00000cb2: ISZERO
00000cb3: PUSH2 0x0cd0
00000cb6: JUMPI
00000cb7: DUP1
00000cb8: DUP3
00000cb9: SUB
00000cba: DUP1
00000cbb: MLOAD
00000cbc: PUSH1 0x01
00000cbe: DUP4
00000cbf: PUSH1 0x20
00000cc1: SUB
00000cc2: PUSH2 0x0100
00000cc5: EXP
00000cc6: SUB
00000cc7: NOT
00000cc8: AND
00000cc9: DUP2
00000cca: MSTORE
00000ccb: PUSH1 0x20
00000ccd: ADD
00000cce: SWAP2
00000ccf: POP
00000cd0: JUMPDEST
00000cd1: POP
00000cd2: SWAP6
00000cd3: POP
00000cd4: POP
00000cd5: POP
00000cd6: POP
00000cd7: POP
00000cd8: POP
00000cd9: PUSH1 0x00
00000cdb: PUSH1 0x40
00000cdd: MLOAD
00000cde: DUP1
00000cdf: DUP4
00000ce0: SUB
00000ce1: DUP2
00000ce2: PUSH1 0x00
00000ce4: DUP8
00000ce5: DUP1
00000ce6: EXTCODESIZE
00000ce7: ISZERO
00000ce8: DUP1
00000ce9: ISZERO
00000cea: PUSH2 0x0cf2
00000ced: JUMPI
00000cee: PUSH1 0x00
00000cf0: DUP1
00000cf1: REVERT
00000cf2: JUMPDEST
00000cf3: POP
00000cf4: GAS
00000cf5: CALL
00000cf6: ISZERO
00000cf7: DUP1
00000cf8: ISZERO
00000cf9: PUSH2 0x0d06
00000cfc: JUMPI
00000cfd: RETURNDATASIZE
00000cfe: PUSH1 0x00
00000d00: DUP1
00000d01: RETURNDATACOPY
00000d02: RETURNDATASIZE
00000d03: PUSH1 0x00
00000d05: REVERT
00000d06: JUMPDEST
00000d07: POP
00000d08: POP
00000d09: POP
00000d0a: POP
00000d0b: POP
00000d0c: JUMPDEST
00000d0d: POP
00000d0e: JUMPDEST
00000d0f: JUMPDEST
00000d10: POP
00000d11: JUMPDEST
00000d12: PUSH1 0x01
00000d14: ISZERO
00000d15: ISZERO
00000d16: DUP8
00000d17: ISZERO
00000d18: ISZERO
00000d19: EQ
00000d1a: ISZERO
00000d1b: PUSH2 0x0df3
00000d1e: JUMPI
00000d1f: PUSH1 0x00
00000d21: DUP1
00000d22: CALLDATASIZE
00000d23: SWAP1
00000d24: POP
00000d25: PUSH1 0x10
00000d27: MUL
00000d28: GAS
00000d29: DUP9
00000d2a: PUSH2 0x5208
00000d2d: ADD
00000d2e: SUB
00000d2f: ADD
00000d30: SWAP1
00000d31: POP
00000d32: PUSH1 0x01
00000d34: PUSH1 0x00
00000d36: SWAP1
00000d37: SLOAD
00000d38: SWAP1
00000d39: PUSH2 0x0100
00000d3c: EXP
00000d3d: SWAP1
00000d3e: DIV
00000d3f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d54: AND
00000d55: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d6a: AND
00000d6b: PUSH4 0x6366b936
00000d70: PUSH2 0xa0aa
00000d73: PUSH2 0x374a
00000d76: DUP5
00000d77: ADD
00000d78: DUP2
00000d79: PUSH2 0x0d7e
00000d7c: JUMPI
00000d7d: INVALID
00000d7e: JUMPDEST
00000d7f: DIV
00000d80: PUSH1 0x40
00000d82: MLOAD
00000d83: DUP3
00000d84: PUSH4 0xffffffff
00000d89: AND
00000d8a: PUSH1 0xe0
00000d8c: SHL
00000d8d: DUP2
00000d8e: MSTORE
00000d8f: PUSH1 0x04
00000d91: ADD
00000d92: DUP1
00000d93: DUP3
00000d94: DUP2
00000d95: MSTORE
00000d96: PUSH1 0x20
00000d98: ADD
00000d99: SWAP2
00000d9a: POP
00000d9b: POP
00000d9c: PUSH1 0x20
00000d9e: PUSH1 0x40
00000da0: MLOAD
00000da1: DUP1
00000da2: DUP4
00000da3: SUB
00000da4: DUP2
00000da5: PUSH1 0x00
00000da7: DUP8
00000da8: DUP1
00000da9: EXTCODESIZE
00000daa: ISZERO
00000dab: DUP1
00000dac: ISZERO
00000dad: PUSH2 0x0db5
00000db0: JUMPI
00000db1: PUSH1 0x00
00000db3: DUP1
00000db4: REVERT
00000db5: JUMPDEST
00000db6: POP
00000db7: GAS
00000db8: CALL
00000db9: ISZERO
00000dba: DUP1
00000dbb: ISZERO
00000dbc: PUSH2 0x0dc9
00000dbf: JUMPI
00000dc0: RETURNDATASIZE
00000dc1: PUSH1 0x00
00000dc3: DUP1
00000dc4: RETURNDATACOPY
00000dc5: RETURNDATASIZE
00000dc6: PUSH1 0x00
00000dc8: REVERT
00000dc9: JUMPDEST
00000dca: POP
00000dcb: POP
00000dcc: POP
00000dcd: POP
00000dce: PUSH1 0x40
00000dd0: MLOAD
00000dd1: RETURNDATASIZE
00000dd2: PUSH1 0x20
00000dd4: DUP2
00000dd5: LT
00000dd6: ISZERO
00000dd7: PUSH2 0x0ddf
00000dda: JUMPI
00000ddb: PUSH1 0x00
00000ddd: DUP1
00000dde: REVERT
00000ddf: JUMPDEST
00000de0: DUP2
00000de1: ADD
00000de2: SWAP1
00000de3: DUP1
00000de4: DUP1
00000de5: MLOAD
00000de6: SWAP1
00000de7: PUSH1 0x20
00000de9: ADD
00000dea: SWAP1
00000deb: SWAP3
00000dec: SWAP2
00000ded: SWAP1
00000dee: POP
00000def: POP
00000df0: POP
00000df1: POP
00000df2: POP
00000df3: JUMPDEST
00000df4: POP
00000df5: POP
00000df6: POP
00000df7: POP
00000df8: POP
00000df9: POP
00000dfa: POP
00000dfb: POP
00000dfc: POP
00000dfd: POP
00000dfe: POP
00000dff: POP
00000e00: POP
00000e01: POP
00000e02: JUMP
00000e03: INVALID
00000e04: LOG2
00000e05: PUSH5 0x6970667358
00000e0b: UNKNOWN(0x22)
00000e0c: SLT
00000e0d: KECCAK256
00000e0e: JUMPDEST
00000e0f: OR
00000e10: PUSH19 0x1ae4b549e97c533937ff3ad1c2ff6a0cf08b77
00000e24: UNKNOWN(0x25)
00000e25: UNKNOWN(0xED)
00000e26: UNKNOWN(0xA7)
00000e27: ADDRESS
00000e28: PUSH21

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xcf5d8280848a5894051d62115638916ad1bf7ac1309c92d0cb0430284ff3c3ab
call_targets: 0xe6c185e666f805001744a37ed709431caff8ad62
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xcf5d8280848a5894051d62115638916ad1bf7ac1309c92d0cb0430284ff3c3ab",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xe6c185e666f805001744a37ed709431caff8ad62"
    ],
    "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": "0x1af2a2bc",
            "selector": "0x1af2a2bc",
            "calldata_variants": [
                "0x1af2a2bc",
                "0x1af2a2bc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x491f09dc",
            "selector": "0x491f09dc",
            "calldata_variants": [
                "0x491f09dc",
                "0x491f09dc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 835,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1764,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2084,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 8,
    "guards_detected": [
        {
            "pc": 685,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 960,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 8
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xcf5d8280848a5894051d62115638916ad1bf7ac1309c92d0cb0430284ff3c3ab
call_targets: 0xe6c185e666f805001744a37ed709431caff8ad62
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xcf5d8280848a5894051d62115638916ad1bf7ac1309c92d0cb0430284ff3c3ab",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xe6c185e666f805001744a37ed709431caff8ad62"
    ],
    "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": "0x1af2a2bc",
            "selector": "0x1af2a2bc",
            "calldata_variants": [
                "0x1af2a2bc",
                "0x1af2a2bc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x491f09dc",
            "selector": "0x491f09dc",
            "calldata_variants": [
                "0x491f09dc",
                "0x491f09dc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 835,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1764,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2084,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 8,
    "guards_detected": [
        {
            "pc": 685,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 960,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
low other codex Unchecked low-level CALL return value in external call helper 65 no
view
evidence_json
{
    "evidence": "The CALL opcode is followed by stack cleanup and returndata handling but no ISZERO check of the CALL success flag. Sequence includes `...5af1 925050 3d8060008114...`, indicating the CALL result is ignored and only returndata size is inspected.",
    "locations": [
        "BYTECODE_BUNDLE.txt:5"
    ],
    "recommendation": "Check the CALL return value and revert on failure (or explicitly document that failures are intentionally ignored). If this is meant to be a generic executor, bubble up reverts when the CALL fails.",
    "exploit_scenario": "The owner-only function appears to perform a low-level CALL to a user-supplied target and returns returndata without checking the CALL success flag. If the external call fails (e.g., reverts), this function will not revert and can return revert data as normal return data, potentially masking failure and leading to incorrect assumptions or operational loss if the caller assumes success."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 12
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 13
}