f647bb59-39e9-4a04-ae07-3770254f3a02
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 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 |
No slither job recorded yet.
[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"]}]}
{
"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
}
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
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_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 |
viewtrace_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 | — |
viewevidence_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 | — |
viewevidence_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 | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 13
}
|