84ef7e3c-0bf1-448d-859f-8a8ea5d8a823
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 |
|---|---|---|---|---|
| 31460 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 77386 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 77387 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 77388 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 77389 | capability.graph | complete | 1 / 3 | 1 week ago |
| 77390 | detector.run | complete | 1 / 3 | 1 week ago |
| 77391 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1225850] OpenAI Codex v0.77.0 (research preview)
[codex:1225850] --------
[codex:1225850] workdir: /tmp/codex-multi-5105loqe
[codex:1225850] model: gpt-5.2-codex
[codex:1225850] provider: openai
[codex:1225850] approval: never
[codex:1225850] sandbox: read-only
[codex:1225850] reasoning effort: xhigh
[codex:1225850] reasoning summaries: auto
[codex:1225850] session id: 019b85bc-8cc7-7df3-b1da-ada722af7458
[codex:1225850] --------
[codex:1225850] user
[codex:1225850] You are a profit-focused exploit hunter analyzing EVM bytecode. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1225850]
[codex:1225850] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:1225850]
[codex:1225850] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1225850] - Gas inefficiency, code quality, or best practices
[codex:1225850] - Theoretical vulnerabilities without a clear extraction path
[codex:1225850] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:1225850] - Issues requiring social engineering or off-chain coordination
[codex:1225850]
[codex:1225850] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:1225850] - CALL/DELEGATECALL with controllable destination or calldata
[codex:1225850] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:1225850] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:1225850] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:1225850] - External calls before state updates (reentrancy)
[codex:1225850] - SELFDESTRUCT with controllable beneficiary
[codex:1225850] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:1225850]
[codex:1225850] For each finding, you MUST explain:
[codex:1225850] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:1225850] 2. The concrete sequence of transactions to extract value
[codex:1225850] 3. Why you believe this is exploitable (not just suspicious)
[codex:1225850]
[codex:1225850] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:1225850] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:1225850]
[codex:1225850] Output MUST be valid JSON matching the provided schema.
[codex:1225850] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1225850] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1225850] mcp startup: no servers
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Reading instructions and BYTECODE_BUNDLE.txt**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc ls in /tmp/codex-multi-5105loqe succeeded in 6ms:
[codex:1225850] BYTECODE_BUNDLE.txt
[codex:1225850] codex-output-schema.json
[codex:1225850] exec
[codex:1225850] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-5105loqe succeeded in 5ms:
[codex:1225850] Runtime bytecode bundle for best-effort auditing.
[codex:1225850] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1225850]
[codex:1225850] FILE: runtime_bytecode.hex
[codex:1225850] 0x6080604052600436106101025760003560e01c806375b238fc116100955780639df806d6116100645780639df806d61461032b578063a217fddf1461034b578063ad5c464814610360578063ba8bca5a14610394578063d547741f146103c857600080fd5b806375b238fc1461026f5780637a01a1da146102a357806389a30271146102d757806391d148541461030b57600080fd5b80632b2604f1116100d15780632b2604f1146101db5780632f2ff15d1461020f57806336568abe1461022f57806351cff8d91461024f57600080fd5b806301ffc9a71461010e578063248a9ca31461014357806327810b6e1461018157806329675f29146101b957600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b5061012e61012936600461118c565b6103e8565b60405190151581526020015b60405180910390f35b34801561014f57600080fd5b5061017361015e3660046111b6565b60009081526020819052604090206001015490565b60405190815260200161013a565b34801561018d57600080fd5b506001546101a1906001600160a01b031681565b6040516001600160a01b03909116815260200161013a565b3480156101c557600080fd5b506101d96101d43660046111dd565b61041f565b005b3480156101e757600080fd5b506101a17f00000000000000000000000062d0a8458ed7719fdaf978fe5929c6d342b0bfce81565b34801561021b57600080fd5b506101d961022a366004611238565b610562565b34801561023b57600080fd5b506101d961024a366004611238565b61058c565b34801561025b57600080fd5b506101d961026a366004611264565b61060f565b34801561027b57600080fd5b506101737fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b3480156102af57600080fd5b506101737ff8cd32ed93fc2f9fc78152a14807c9609af3d99c5fe4dc6b106a801aaddfe90e81565b3480156102e357600080fd5b506101a17f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b34801561031757600080fd5b5061012e610326366004611238565b610779565b34801561033757600080fd5b506101d9610346366004611264565b6107a2565b34801561035757600080fd5b50610173600081565b34801561036c57600080fd5b506101a17f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b3480156103a057600080fd5b506101a17f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156103d457600080fd5b506101d96103e3366004611238565b610848565b60006001600160e01b03198216637965db0b60e01b148061041957506301ffc9a760e01b6001600160e01b03198316145b92915050565b7ff8cd32ed93fc2f9fc78152a14807c9609af3d99c5fe4dc6b106a801aaddfe90e6104498161086d565b6000851161046a5760405163162908e360e11b815260040160405180910390fd5b821561052f576040516370a0823160e01b81523060048201526000907f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001600160a01b0316906370a0823190602401602060405180830381865afa1580156104d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fb919061127f565b90508581101561051e5760405163c52e3eff60e01b815260040160405180910390fd5b61052986868561087a565b5061055b565b844710156105505760405163c52e3eff60e01b815260040160405180910390fd5b61055b858584610a82565b5050505050565b60008281526020819052604090206001015461057d8161086d565b6105878383610bde565b505050565b6001600160a01b03811633146106015760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61060b8282610c62565b5050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756106398161086d565b60006001600160a01b0383166106da57504760008161066b5760405163c52e3eff60e01b815260040160405180910390fd5b60405133908390600081818185875af1925050503d80600081146106ab576040519150601f19603f3d011682016040523d82523d6000602084013e6106b0565b606091505b505080915050806106d457604051631d42c86760e21b815260040160405180910390fd5b50505050565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561071e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610742919061127f565b9050600081116107655760405163c52e3eff60e01b815260040160405180910390fd5b6105876001600160a01b0384163383610cc7565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756107cc8161086d565b6001600160a01b0382166107f35760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0384169081179091556040519081527f073f38af2c94f21e221425553daa2b4d4d0c0737465b75791e3706316b9eb8869060200160405180910390a15050565b6000828152602081905260409020600101546108638161086d565b6105878383610c62565b6108778133610d19565b50565b60408051600380825260808201909252600091602082016060803683370190505090507f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48816000815181106108d1576108d16112ae565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610925576109256112ae565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000062d0a8458ed7719fdaf978fe5929c6d342b0bfce81600281518110610979576109796112ae565b6001600160a01b0392831660209182029290920101526001546040516338ed173960e01b81526000927f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8116926338ed1739926109e5928a928a92899291909116908a90600401611309565b6000604051808303816000875af1158015610a04573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a2c9190810190611345565b905060008160018351610a3f9190611428565b81518110610a4f57610a4f6112ae565b6020026020010151905060008111610a7a5760405163081ceff360e41b815260040160405180910390fd5b505050505050565b6040805160028082526060820183526000926020830190803683370190505090507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600081518110610ad757610ad76112ae565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000062d0a8458ed7719fdaf978fe5929c6d342b0bfce81600181518110610b2b57610b2b6112ae565b6001600160a01b039283166020918202929092010152600154604051637ff36ab560e01b81526000927f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d811692637ff36ab5928992610b97928a92899291909116908a9060040161143b565b60006040518083038185885af1158015610bb5573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052610a2c9190810190611345565b610be88282610779565b61060b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610c1e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610c6c8282610779565b1561060b576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610587908490610d72565b610d238282610779565b61060b57610d3081610e47565b610d3b836020610e59565b604051602001610d4c929190611494565b60408051601f198184030181529082905262461bcd60e51b82526105f891600401611509565b6000610dc7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ffc9092919063ffffffff16565b9050805160001480610de8575080806020019051810190610de8919061153c565b6105875760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105f8565b60606104196001600160a01b03831660145b60606000610e68836002611559565b610e73906002611570565b67ffffffffffffffff811115610e8b57610e8b611298565b6040519080825280601f01601f191660200182016040528015610eb5576020820181803683370190505b509050600360fc1b81600081518110610ed057610ed06112ae565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610eff57610eff6112ae565b60200101906001600160f81b031916908160001a9053506000610f23846002611559565b610f2e906001611570565b90505b6001811115610fa6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610f6257610f626112ae565b1a60f81b828281518110610f7857610f786112ae565b60200101906001600160f81b031916908160001a90535060049490941c93610f9f81611583565b9050610f31565b508315610ff55760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105f8565b9392505050565b606061100b8484600085611013565b949350505050565b6060824710156110745760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105f8565b600080866001600160a01b03168587604051611090919061159a565b60006040518083038185875af1925050503d80600081146110cd576040519150601f19603f3d011682016040523d82523d6000602084013e6110d2565b606091505b50915091506110e3878383876110ee565b979650505050505050565b6060831561115d578251600003611156576001600160a01b0385163b6111565760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105f8565b508161100b565b61100b83838151156111725781518083602001fd5b8060405162461bcd60e51b81526004016105f89190611509565b60006020828403121561119e57600080fd5b81356001600160e01b031981168114610ff557600080fd5b6000602082840312156111c857600080fd5b5035919050565b801515811461087757600080fd5b600080600080608085870312156111f357600080fd5b8435935060208501359250604085013561120c816111cf565b9396929550929360600135925050565b80356001600160a01b038116811461123357600080fd5b919050565b6000806040838503121561124b57600080fd5b8235915061125b6020840161121c565b90509250929050565b60006020828403121561127657600080fd5b610ff58261121c565b60006020828403121561129157600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020840193506020830160005b828110156112ff5781516001600160a01b03168652602095860195909101906001016112d8565b5093949350505050565b85815284602082015260a06040820152600061132860a08301866112c4565b6001600160a01b0394909416606083015250608001529392505050565b60006020828403121561135757600080fd5b815167ffffffffffffffff81111561136e57600080fd5b8201601f8101841361137f57600080fd5b805167ffffffffffffffff81111561139957611399611298565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156113c6576113c6611298565b6040529182526020818401810192908101878411156113e457600080fd5b6020850194505b83851015611407578451808252602095860195909350016113eb565b509695505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561041957610419611412565b84815260806020820152600061145460808301866112c4565b6001600160a01b03949094166040830152506060015292915050565b60005b8381101561148b578181015183820152602001611473565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516114cc816017850160208801611470565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516114fd816028840160208801611470565b01602801949350505050565b6020815260008251806020840152611528816040850160208701611470565b601f01601f19169190910160400192915050565b60006020828403121561154e57600080fd5b8151610ff5816111cf565b808202811582820484141761041957610419611412565b8082018082111561041957610419611412565b60008161159257611592611412565b506000190190565b600082516115ac818460208701611470565b919091019291505056fea26469706673582212201cc4f025aea76981268579ae06cdc546a1bfbdbf47c5db93df0b53a134045a8f64736f6c634300081c0033
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Analyzing Solidity bytecode for vulnerabilities**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] # remove possible trailing
[codex:1225850] if hexdata.endswith('\"'):
[codex:1225850] hexdata=hexdata.strip('\"')
[codex:1225850] # bytes
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] # opcode lengths for PUSH
[codex:1225850] ops=[]
[codex:1225850]
[codex:1225850] def opcode_len(op):
[codex:1225850] if 0x60 <= op <= 0x7f:
[codex:1225850] return 1 + (op-0x5f)
[codex:1225850] return 1
[codex:1225850]
[codex:1225850] # map opcode names minimal
[codex:1225850] names={
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xff:'SELFDESTRUCT',
[codex:1225850] 0x55:'SSTORE',0x54:'SLOAD',0x56:'JUMP',0x57:'JUMPI',0x5b:'JUMPDEST'
[codex:1225850] }
[codex:1225850]
[codex:1225850] i=0
[codex:1225850] while i < len(code):
[codex:1225850] op=code[i]
[codex:1225850] ops.append((i,op))
[codex:1225850] i+=opcode_len(op)
[codex:1225850]
[codex:1225850] # find CALL/DELEGATECALL/SELFDESTRUCT
[codex:1225850] for i,op in ops:
[codex:1225850] if op in (0xf1,0xf4,0xff,0xf2,0xf0,0xf5,0xfa):
[codex:1225850] print(hex(i), names.get(op,hex(op)))
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 33ms:
[codex:1225850] 0x4c6 STATICCALL
[codex:1225850] 0x67b CALL
[codex:1225850] 0x70d STATICCALL
[codex:1225850] 0x9f3 CALL
[codex:1225850] 0xba4 CALL
[codex:1225850] 0x109d CALL
[codex:1225850] 0x15c3 CREATE
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Examining contract opcodes and creating disassembler**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] # opcode names
[codex:1225850] opnames = {i: f'PUSH{i-0x5f}' for i in range(0x60,0x80)}
[codex:1225850] # add
[codex:1225850] names={
[codex:1225850] 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:1225850] 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:1225850] 0x20:'SHA3',
[codex:1225850] 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:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 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:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850]
[codex:1225850] names.update(opnames)
[codex:1225850]
[codex:1225850] def disasm(start, end):
[codex:1225850] i=start
[codex:1225850] out=[]
[codex:1225850] while i<end:
[codex:1225850] op=code[i]
[codex:1225850] name=names.get(op, hex(op))
[codex:1225850] if 0x60<=op<=0x7f:
[codex:1225850] n=op-0x5f
[codex:1225850] data=code[i+1:i+1+n]
[codex:1225850] out.append((i, name, data.hex()))
[codex:1225850] i+=1+n
[codex:1225850] else:
[codex:1225850] out.append((i,name,''))
[codex:1225850] i+=1
[codex:1225850] return out
[codex:1225850]
[codex:1225850] # identify call offsets
[codex:1225850] call_offsets=[0x4c6,0x67b,0x70d,0x9f3,0xba4,0x109d,0x15c3]
[codex:1225850] for off in call_offsets:
[codex:1225850] start=max(0,off-40)
[codex:1225850] end=min(len(code),off+40)
[codex:1225850] print('\\n== around',hex(off))
[codex:1225850] for i,name,data in disasm(start,end):
[codex:1225850] mark='>>' if i==off else ' '
[codex:1225850] if data:
[codex:1225850] print(f\"{mark} {i:04x} {name} {data}\")
[codex:1225850] else:
[codex:1225850] print(f\"{mark} {i:04x} {name}\")
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 26ms:
[codex:1225850]
[codex:1225850] == around 0x4c6
[codex:1225850] 049e SWAP14
[codex:1225850] 049f 0x4a
[codex:1225850] 04a0 0x2e
[codex:1225850] 04a1 SWAP15
[codex:1225850] 04a2 0xb0
[codex:1225850] 04a3 0xce
[codex:1225850] 04a4 CALLDATASIZE
[codex:1225850] 04a5 MOD
[codex:1225850] 04a6 0xeb
[codex:1225850] 04a7 BASEFEE
[codex:1225850] 04a8 PUSH1 01
[codex:1225850] 04aa PUSH1 01
[codex:1225850] 04ac PUSH1 a0
[codex:1225850] 04ae SHL
[codex:1225850] 04af SUB
[codex:1225850] 04b0 AND
[codex:1225850] 04b1 SWAP1
[codex:1225850] 04b2 PUSH4 70a08231
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Analyzing ABI decoding functions and external calls**
[codex:1225850]
[codex:1225850] I’m piecing together how the contract decodes multi-parameter calls, focusing on an ABI decoder that handles four parameters including at least one address validated by a typical address-checking subroutine. I’m also examining key external calls like balanceOf and Uniswap router to assess if user input addresses affect their usage or if restrictions apply. This will help me understand the contract’s flow around critical functions like swaps or withdrawals.
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850]
[codex:1225850] # simple disasm function around 0x111f0
[codex:1225850] start=0x111e0
[codex:1225850] end=0x11240
[codex:1225850]
[codex:1225850] names={
[codex:1225850] 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:1225850] 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:1225850] 0x20:'SHA3',
[codex:1225850] 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:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 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:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850]
[codex:1225850] # disasm
[codex:1225850]
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850] op=code[i]
[codex:1225850] name=names.get(op, hex(op))
[codex:1225850] if 0x60<=op<=0x7f:
[codex:1225850] n=op-0x5f
[codex:1225850] data=code[i+1:i+1+n]
[codex:1225850] print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850] i+=1+n
[codex:1225850] else:
[codex:1225850] print(f\"{i:04x}: {name}\")
[codex:1225850] i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe exited 1 in 31ms:
[codex:1225850] Traceback (most recent call last):
[codex:1225850] File "<stdin>", line 27, in <module>
[codex:1225850] IndexError: index out of range
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Adjusting code length specification**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850]
[codex:1225850] start=0x111e0
[codex:1225850] end=0x11280
[codex:1225850] if end>len(code): end=len(code)
[codex:1225850]
[codex:1225850] names={
[codex:1225850] 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:1225850] 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:1225850] 0x20:'SHA3',
[codex:1225850] 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:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 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:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850]
[codex:1225850]
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850] op=code[i]
[codex:1225850] name=names.get(op, hex(op))
[codex:1225850] if 0x60<=op<=0x7f:
[codex:1225850] n=op-0x5f
[codex:1225850] data=code[i+1:i+1+n]
[codex:1225850] print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850] i+=1+n
[codex:1225850] else:
[codex:1225850] print(f\"{i:04x}: {name}\")
[codex:1225850] i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 23ms:
[codex:1225850]
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Checking code length for offsets**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] print(len(code), hex(len(code)))
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 22ms:
[codex:1225850] 5612 0x15ec
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Correcting address interpretation**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850]
[codex:1225850] start=0x11e0
[codex:1225850] end=0x1240
[codex:1225850] if end>len(code): end=len(code)
[codex:1225850]
[codex:1225850] names={
[codex:1225850] 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:1225850] 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:1225850] 0x20:'SHA3',
[codex:1225850] 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:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 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:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850]
[codex:1225850]
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850] op=code[i]
[codex:1225850] name=names.get(op, hex(op))
[codex:1225850] if 0x60<=op<=0x7f:
[codex:1225850] n=op-0x5f
[codex:1225850] data=code[i+1:i+1+n]
[codex:1225850] print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850] i+=1+n
[codex:1225850] else:
[codex:1225850] print(f\"{i:04x}: {name}\")
[codex:1225850] i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 23ms:
[codex:1225850] 11e0: DUP1
[codex:1225850] 11e1: PUSH1 00
[codex:1225850] 11e3: DUP1
[codex:1225850] 11e4: PUSH1 80
[codex:1225850] 11e6: DUP6
[codex:1225850] 11e7: DUP8
[codex:1225850] 11e8: SUB
[codex:1225850] 11e9: SLT
[codex:1225850] 11ea: ISZERO
[codex:1225850] 11eb: PUSH2 11f3
[codex:1225850] 11ee: JUMPI
[codex:1225850] 11ef: PUSH1 00
[codex:1225850] 11f1: DUP1
[codex:1225850] 11f2: REVERT
[codex:1225850] 11f3: JUMPDEST
[codex:1225850] 11f4: DUP5
[codex:1225850] 11f5: CALLDATALOAD
[codex:1225850] 11f6: SWAP4
[codex:1225850] 11f7: POP
[codex:1225850] 11f8: PUSH1 20
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Identifying function parameter decoding**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850]
[codex:1225850] start=0x1250
[codex:1225850] end=0x12b0
[codex:1225850]
[codex:1225850] names={
[codex:1225850] 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:1225850] 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:1225850] 0x20:'SHA3',
[codex:1225850] 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:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 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:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850]
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850] op=code[i]
[codex:1225850] name=names.get(op, hex(op))
[codex:1225850] if 0x60<=op<=0x7f:
[codex:1225850] n=op-0x5f
[codex:1225850] data=code[i+1:i+1+n]
[codex:1225850] print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850] i+=1+n
[codex:1225850] else:
[codex:1225850] print(f\"{i:04x}: {name}\")
[codex:1225850] i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 23ms:
[codex:1225850] 1250: PUSH2 125b
[codex:1225850] 1253: PUSH1 20
[codex:1225850] 1255: DUP5
[codex:1225850] 1256: ADD
[codex:1225850] 1257: PUSH2 121c
[codex:1225850] 125a: JUMP
[codex:1225850] 125b: JUMPDEST
[codex:1225850] 125c: SWAP1
[codex:1225850] 125d: POP
[codex:1225850] 125e: SWAP3
[codex:1225850] 125f: POP
[codex:1225850] 1260: SWAP3
[codex:1225850] 1261: SWAP1
[codex:1225850] 1262: POP
[codex:1225850] 1263: JUMP
[codex:1225850] 1264: JUMPDEST
[codex:1225850] 1265: PUSH1 00
[codex:1225850] 1267: PUSH1 20
[codex:1225850] 1269: DUP3
[codex:1225850] 126a: DUP5
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Analyzing function selectors and dispatch mappings**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850]
[codex:1225850] start=0x0600
[codex:1225850] end=0x06f0
[codex:1225850]
[codex:1225850] names={
[codex:1225850] 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:1225850] 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:1225850] 0x20:'SHA3',
[codex:1225850] 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:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 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:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850]
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850] op=code[i]
[codex:1225850] name=names.get(op, hex(op))
[codex:1225850] if 0x60<=op<=0x7f:
[codex:1225850] n=op-0x5f
[codex:1225850] data=code[i+1:i+1+n]
[codex:1225850] print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850] i+=1+n
[codex:1225850] else:
[codex:1225850] print(f\"{i:04x}: {name}\")
[codex:1225850] i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 26ms:
[codex:1225850] 0600: REVERT
[codex:1225850] 0601: JUMPDEST
[codex:1225850] 0602: PUSH2 060b
[codex:1225850] 0605: DUP3
[codex:1225850] 0606: DUP3
[codex:1225850] 0607: PUSH2 0c62
[codex:1225850] 060a: JUMP
[codex:1225850] 060b: JUMPDEST
[codex:1225850] 060c: POP
[codex:1225850] 060d: POP
[codex:1225850] 060e: JUMP
[codex:1225850] 060f: JUMPDEST
[codex:1225850] 0610: PUSH32 a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775
[codex:1225850] 0631: PUSH2 0639
[codex:1225850] 0634: DUP2
[codex:1225850] 0635: PUSH2 086d
[codex:1225850] 0638: JUMP
[codex:1225850] 0639: JUMPDEST
[codex:1225850] 063a: PUSH1 00
[codex:1225850] 063c: PUSH1 01
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Requesting more content**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850]
[codex:1225850] start=0x06d8
[codex:1225850] end=0x0760
[codex:1225850]
[codex:1225850] names={
[codex:1225850] 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:1225850] 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:1225850] 0x20:'SHA3',
[codex:1225850] 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:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 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:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850]
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850] op=code[i]
[codex:1225850] name=names.get(op, hex(op))
[codex:1225850] if 0x60<=op<=0x7f:
[codex:1225850] n=op-0x5f
[codex:1225850] data=code[i+1:i+1+n]
[codex:1225850] print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850] i+=1+n
[codex:1225850] else:
[codex:1225850] print(f\"{i:04x}: {name}\")
[codex:1225850] i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 35ms:
[codex:1225850] 06d8: POP
[codex:1225850] 06d9: JUMP
[codex:1225850] 06da: JUMPDEST
[codex:1225850] 06db: PUSH1 40
[codex:1225850] 06dd: MLOAD
[codex:1225850] 06de: PUSH4 70a08231
[codex:1225850] 06e3: PUSH1 e0
[codex:1225850] 06e5: SHL
[codex:1225850] 06e6: DUP2
[codex:1225850] 06e7: MSTORE
[codex:1225850] 06e8: ADDRESS
[codex:1225850] 06e9: PUSH1 04
[codex:1225850] 06eb: DUP3
[codex:1225850] 06ec: ADD
[codex:1225850] 06ed: MSTORE
[codex:1225850] 06ee: PUSH1 01
[codex:1225850] 06f0: PUSH1 01
[codex:1225850] 06f2: PUSH1 a0
[codex:1225850] 06f4: SHL
[codex:1225850] 06f5: SUB
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Requesting continuation**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850]
[codex:1225850] start=0x0740
[codex:1225850] end=0x07a5
[codex:1225850]
[codex:1225850] names={
[codex:1225850] 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:1225850] 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:1225850] 0x20:'SHA3',
[codex:1225850] 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:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 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:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850]
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850] op=code[i]
[codex:1225850] name=names.get(op, hex(op))
[codex:1225850] if 0x60<=op<=0x7f:
[codex:1225850] n=op-0x5f
[codex:1225850] data=code[i+1:i+1+n]
[codex:1225850] print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850] i+=1+n
[codex:1225850] else:
[codex:1225850] print(f\"{i:04x}: {name}\")
[codex:1225850] i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 22ms:
[codex:1225850] 0740: PUSH32 565b9050600081116107655760405163c52e3eff60e01b815260040160405180
[codex:1225850] 0761: SWAP2
[codex:1225850] 0762: SUB
[codex:1225850] 0763: SWAP1
[codex:1225850] 0764: REVERT
[codex:1225850] 0765: JUMPDEST
[codex:1225850] 0766: PUSH2 0587
[codex:1225850] 0769: PUSH1 01
[codex:1225850] 076b: PUSH1 01
[codex:1225850] 076d: PUSH1 a0
[codex:1225850] 076f: SHL
[codex:1225850] 0770: SUB
[codex:1225850] 0771: DUP5
[codex:1225850] 0772: AND
[codex:1225850] 0773: CALLER
[codex:1225850] 0774: DUP4
[codex:1225850] 0775: PUSH2 0cc7
[codex:1225850] 0778: JUMP
[codex:1225850] 0779: JUMPDEST
[codex:1225850] 077a: PUSH1 00
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Analyzing conditional token withdrawal flow**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850]
[codex:1225850] start=0x0860
[codex:1225850] end=0x08a0
[codex:1225850]
[codex:1225850] names={
[codex:1225850] 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:1225850] 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:1225850] 0x20:'SHA3',
[codex:1225850] 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:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 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:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850]
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850] op=code[i]
[codex:1225850] name=names.get(op, hex(op))
[codex:1225850] if 0x60<=op<=0x7f:
[codex:1225850] n=op-0x5f
[codex:1225850] data=code[i+1:i+1+n]
[codex:1225850] print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850] i+=1+n
[codex:1225850] else:
[codex:1225850] print(f\"{i:04x}: {name}\")
[codex:1225850] i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 23ms:
[codex:1225850] 0860: ADDMOD
[codex:1225850] 0861: PUSH14 565b6105878383610c62565b6108
[codex:1225850] 0870: PUSH24 8133610d19565b50565b6040805160038082526080820190
[codex:1225850] 0889: SWAP3
[codex:1225850] 088a: MSTORE
[codex:1225850] 088b: PUSH1 00
[codex:1225850] 088d: SWAP2
[codex:1225850] 088e: PUSH1 20
[codex:1225850] 0890: DUP3
[codex:1225850] 0891: ADD
[codex:1225850] 0892: PUSH1 60
[codex:1225850] 0894: DUP1
[codex:1225850] 0895: CALLDATASIZE
[codex:1225850] 0896: DUP4
[codex:1225850] 0897: CALLDATACOPY
[codex:1225850] 0898: ADD
[codex:1225850] 0899: SWAP1
[codex:1225850] 089a: POP
[codex:1225850] 089b: POP
[codex:1225850] 089c: SWAP1
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Adjusting disassembly start point**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] # list JUMPDEST near range
[codex:1225850] for i,b in enumerate(code):
[codex:1225850] if b==0x5b and 0x0800 <= i <= 0x0900:
[codex:1225850] print(hex(i))
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 22ms:
[codex:1225850] 0x82e
[codex:1225850] 0x848
[codex:1225850] 0x863
[codex:1225850] 0x86d
[codex:1225850] 0x877
[codex:1225850] 0x87a
[codex:1225850] 0x8d1
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Disassembling around JUMPDEST**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850]
[codex:1225850] start=0x86d
[codex:1225850] end=0x890
[codex:1225850]
[codex:1225850] names={
[codex:1225850] 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:1225850] 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:1225850] 0x20:'SHA3',
[codex:1225850] 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:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 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:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850]
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850] op=code[i]
[codex:1225850] name=names.get(op, hex(op))
[codex:1225850] if 0x60<=op<=0x7f:
[codex:1225850] n=op-0x5f
[codex:1225850] data=code[i+1:i+1+n]
[codex:1225850] print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850] i+=1+n
[codex:1225850] else:
[codex:1225850] print(f\"{i:04x}: {name}\")
[codex:1225850] i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 25ms:
[codex:1225850] 086d: JUMPDEST
[codex:1225850] 086e: PUSH2 0877
[codex:1225850] 0871: DUP2
[codex:1225850] 0872: CALLER
[codex:1225850] 0873: PUSH2 0d19
[codex:1225850] 0876: JUMP
[codex:1225850] 0877: JUMPDEST
[codex:1225850] 0878: POP
[codex:1225850] 0879: JUMP
[codex:1225850] 087a: JUMPDEST
[codex:1225850] 087b: PUSH1 40
[codex:1225850] 087d: DUP1
[codex:1225850] 087e: MLOAD
[codex:1225850] 087f: PUSH1 03
[codex:1225850] 0881: DUP1
[codex:1225850] 0882: DUP3
[codex:1225850] 0883: MSTORE
[codex:1225850] 0884: PUSH1 80
[codex:1225850] 0886: DUP3
[codex:1225850] 0887: ADD
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Analyzing role-based access control and potential vulnerabilities**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850]
[codex:1225850] ops=[]
[codex:1225850]
[codex:1225850] def opcode_len(op):
[codex:1225850] if 0x60 <= op <= 0x7f:
[codex:1225850] return 1 + (op-0x5f)
[codex:1225850] return 1
[codex:1225850]
[codex:1225850] # gather SSTORE locations
[codex:1225850] sstore_offsets=[]
[codex:1225850]
[codex:1225850]
[codex:1225850] i=0
[codex:1225850] while i < len(code):
[codex:1225850] op=code[i]
[codex:1225850] if op==0x55:
[codex:1225850] sstore_offsets.append(i)
[codex:1225850] i+=opcode_len(op)
[codex:1225850]
[codex:1225850] print('SSTORE offsets:', [hex(o) for o in sstore_offsets])
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 25ms:
[codex:1225850] SSTORE offsets: ['0x811', '0xc17', '0xc9a']
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Inspecting SSTORE instructions**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850]
[codex:1225850] names={
[codex:1225850] 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:1225850] 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:1225850] 0x20:'SHA3',
[codex:1225850] 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:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 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:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850]
[codex:1225850] def disasm(start,end):
[codex:1225850] i=start
[codex:1225850] out=[]
[codex:1225850] while i<end:
[codex:1225850] op=code[i]
[codex:1225850] name=names.get(op,hex(op))
[codex:1225850] if 0x60<=op<=0x7f:
[codex:1225850] n=op-0x5f
[codex:1225850] data=code[i+1:i+1+n]
[codex:1225850] out.append((i,name,data.hex()))
[codex:1225850] i+=1+n
[codex:1225850] else:
[codex:1225850] out.append((i,name,''))
[codex:1225850] i+=1
[codex:1225850] return out
[codex:1225850]
[codex:1225850] for off in [0x811,0xc17,0xc9a]:
[codex:1225850] print('\\n== around',hex(off))
[codex:1225850] for i,name,data in disasm(off-20, off+20):
[codex:1225850] mark='>>' if i==off else ' '
[codex:1225850] if data:
[codex:1225850] print(f\"{mark} {i:04x} {name} {data}\")
[codex:1225850] else:
[codex:1225850] print(f\"{mark} {i:04x} {name}\")
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 23ms:
[codex:1225850]
[codex:1225850] == around 0x811
[codex:1225850] 07fd LOG0
[codex:1225850] 07fe SHL
[codex:1225850] 07ff SUB
[codex:1225850] 0800 NOT
[codex:1225850] 0801 AND
[codex:1225850] 0802 PUSH1 01
[codex:1225850] 0804 PUSH1 01
[codex:1225850] 0806 PUSH1 a0
[codex:1225850] 0808 SHL
[codex:1225850] 0809 SUB
[codex:1225850] 080a DUP5
[codex:1225850] 080b AND
[codex:1225850] 080c SWAP1
[codex:1225850] 080d DUP2
[codex:1225850] 080e OR
[codex:1225850] 080f SWAP1
[codex:1225850] 0810 SWAP2
[codex:1225850] >> 0811 SSTORE
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Analyzing role-based storage writes and access**
[codex:1225850]
[codex:1225850] I'm looking through specific SSTORE instructions to identify if any role changes or state updates lack protection. The setter seems guarded by role checks, and role revocations or grants also appear controlled. I'm curious about a token swap function with external calls that might be risky if accessible without proper roles, so I'll dig deeper into its role checks next.
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850]
[codex:1225850] start=0x0410
[codex:1225850] end=0x0560
[codex:1225850]
[codex:1225850] names={
[codex:1225850] 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:1225850] 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:1225850] 0x20:'SHA3',
[codex:1225850] 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:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 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:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850]
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850] op=code[i]
[codex:1225850] name=names.get(op, hex(op))
[codex:1225850] if 0x60<=op<=0x7f:
[codex:1225850] n=op-0x5f
[codex:1225850] data=code[i+1:i+1+n]
[codex:1225850] print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850] i+=1+n
[codex:1225850] else:
[codex:1225850] print(f\"{i:04x}: {name}\")
[codex:1225850] i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 26ms:
[codex:1225850] 0410: ADD
[codex:1225850] 0411: PUSH1 e0
[codex:1225850] 0413: SHL
[codex:1225850] 0414: SUB
[codex:1225850] 0415: NOT
[codex:1225850] 0416: DUP4
[codex:1225850] 0417: AND
[codex:1225850] 0418: EQ
[codex:1225850] 0419: JUMPDEST
[codex:1225850] 041a: SWAP3
[codex:1225850] 041b: SWAP2
[codex:1225850] 041c: POP
[codex:1225850] 041d: POP
[codex:1225850] 041e: JUMP
[codex:1225850] 041f: JUMPDEST
[codex:1225850] 0420: PUSH32 f8cd32ed93fc2f9fc78152a14807c9609af3d99c5fe4dc6b106a801aaddfe90e
[codex:1225850] 0441: PUSH2 0449
[codex:1225850] 0444: DUP2
[codex:1225850] 0445: PUSH2 086d
[codex:1225850] 0448: JUMP
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Analyzing conditional swap logic**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850]
[codex:1225850] start=0x087a
[codex:1225850] end=0x0a90
[codex:1225850]
[codex:1225850] names={
[codex:1225850] 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:1225850] 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:1225850] 0x20:'SHA3',
[codex:1225850] 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:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 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:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850]
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850] op=code[i]
[codex:1225850] name=names.get(op, hex(op))
[codex:1225850] if 0x60<=op<=0x7f:
[codex:1225850] n=op-0x5f
[codex:1225850] data=code[i+1:i+1+n]
[codex:1225850] print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850] i+=1+n
[codex:1225850] else:
[codex:1225850] print(f\"{i:04x}: {name}\")
[codex:1225850] i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 24ms:
[codex:1225850] 087a: JUMPDEST
[codex:1225850] 087b: PUSH1 40
[codex:1225850] 087d: DUP1
[codex:1225850] 087e: MLOAD
[codex:1225850] 087f: PUSH1 03
[codex:1225850] 0881: DUP1
[codex:1225850] 0882: DUP3
[codex:1225850] 0883: MSTORE
[codex:1225850] 0884: PUSH1 80
[codex:1225850] 0886: DUP3
[codex:1225850] 0887: ADD
[codex:1225850] 0888: SWAP1
[codex:1225850] 0889: SWAP3
[codex:1225850] 088a: MSTORE
[codex:1225850] 088b: PUSH1 00
[codex:1225850] 088d: SWAP2
[codex:1225850] 088e: PUSH1 20
[codex:1225850] 0890: DUP3
[codex:1225850] 0891: ADD
[codex:1225850] 0892: PUSH1 60
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Analyzing token swap functions and recipients**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850]
[codex:1225850] start=0x0a82
[codex:1225850] end=0x0c10
[codex:1225850]
[codex:1225850] names={
[codex:1225850] 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:1225850] 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:1225850] 0x20:'SHA3',
[codex:1225850] 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:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 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:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850]
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850] op=code[i]
[codex:1225850] name=names.get(op, hex(op))
[codex:1225850] if 0x60<=op<=0x7f:
[codex:1225850] n=op-0x5f
[codex:1225850] data=code[i+1:i+1+n]
[codex:1225850] print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850] i+=1+n
[codex:1225850] else:
[codex:1225850] print(f\"{i:04x}: {name}\")
[codex:1225850] i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 25ms:
[codex:1225850] 0a82: JUMPDEST
[codex:1225850] 0a83: PUSH1 40
[codex:1225850] 0a85: DUP1
[codex:1225850] 0a86: MLOAD
[codex:1225850] 0a87: PUSH1 02
[codex:1225850] 0a89: DUP1
[codex:1225850] 0a8a: DUP3
[codex:1225850] 0a8b: MSTORE
[codex:1225850] 0a8c: PUSH1 60
[codex:1225850] 0a8e: DUP3
[codex:1225850] 0a8f: ADD
[codex:1225850] 0a90: DUP4
[codex:1225850] 0a91: MSTORE
[codex:1225850] 0a92: PUSH1 00
[codex:1225850] 0a94: SWAP3
[codex:1225850] 0a95: PUSH1 20
[codex:1225850] 0a97: DUP4
[codex:1225850] 0a98: ADD
[codex:1225850] 0a99: SWAP1
[codex:1225850] 0a9a: DUP1
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Analyzing role-based function protections**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850]
[codex:1225850] # disasm around 0x0d19
[codex:1225850] start=0x0d10
[codex:1225850] end=0x0d90
[codex:1225850]
[codex:1225850] names={
[codex:1225850] 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:1225850] 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:1225850] 0x20:'SHA3',
[codex:1225850] 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:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 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:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850]
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850] op=code[i]
[codex:1225850] name=names.get(op, hex(op))
[codex:1225850] if 0x60<=op<=0x7f:
[codex:1225850] n=op-0x5f
[codex:1225850] data=code[i+1:i+1+n]
[codex:1225850] print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850] i+=1+n
[codex:1225850] else:
[codex:1225850] print(f\"{i:04x}: {name}\")
[codex:1225850] i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 23ms:
[codex:1225850] 0d10: SDIV
[codex:1225850] 0d11: DUP8
[codex:1225850] 0d12: SWAP1
[codex:1225850] 0d13: DUP5
[codex:1225850] 0d14: SWAP1
[codex:1225850] 0d15: PUSH2 0d72
[codex:1225850] 0d18: JUMP
[codex:1225850] 0d19: JUMPDEST
[codex:1225850] 0d1a: PUSH2 0d23
[codex:1225850] 0d1d: DUP3
[codex:1225850] 0d1e: DUP3
[codex:1225850] 0d1f: PUSH2 0779
[codex:1225850] 0d22: JUMP
[codex:1225850] 0d23: JUMPDEST
[codex:1225850] 0d24: PUSH2 060b
[codex:1225850] 0d27: JUMPI
[codex:1225850] 0d28: PUSH2 0d30
[codex:1225850] 0d2b: DUP2
[codex:1225850] 0d2c: PUSH2 0e47
[codex:1225850] 0d2f: JUMP
[codex:1225850]
[codex:1225850] thinking
[codex:1225850] **Concluding vulnerability analysis**
[codex:1225850]
[codex:1225850] I've carefully checked the bytecode for any exploitable paths involving role checks, external calls, value transfers, and storage access; everything seems properly restricted with no clear attack vector. I'll produce a JSON report stating no findings, per the user's requested schema.
[codex:1225850] codex
[codex:1225850] {"no_findings":true,"summary":"No concrete, exploitable value-extraction path identified in the bytecode; value-transfer and swap routines appear role-gated with fixed external targets.","findings":[]}
[codex:1225850] tokens used
[codex:1225850] 92,803
[codex:1225850] {"no_findings":true,"summary":"No concrete, exploitable value-extraction path identified in the bytecode; value-transfer and swap routines appear role-gated with fixed external targets.","findings":[]}
{
"codex": {
"ran_at": "2026-01-03T21:32:06.421058+00:00",
"returncode": 0
},
"summary": "No concrete, exploitable value-extraction path identified in the bytecode; value-transfer and swap routines appear role-gated with fixed external targets.",
"raw_final": {
"summary": "No concrete, exploitable value-extraction path identified in the bytecode; value-transfer and swap routines appear role-gated with fixed external targets.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0102 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x75b238fc 00000019: GT 0000001a: PUSH2 0x0095 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x9df806d6 00000024: GT 00000025: PUSH2 0x0064 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0x9df806d6 0000002f: EQ 00000030: PUSH2 0x032b 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xa217fddf 0000003a: EQ 0000003b: PUSH2 0x034b 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xad5c4648 00000045: EQ 00000046: PUSH2 0x0360 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xba8bca5a 00000050: EQ 00000051: PUSH2 0x0394 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xd547741f 0000005b: EQ 0000005c: PUSH2 0x03c8 0000005f: JUMPI 00000060: PUSH1 0x00 00000062: DUP1 00000063: REVERT 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0x75b238fc 0000006b: EQ 0000006c: PUSH2 0x026f 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0x7a01a1da 00000076: EQ 00000077: PUSH2 0x02a3 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0x89a30271 00000081: EQ 00000082: PUSH2 0x02d7 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0x91d14854 0000008c: EQ 0000008d: PUSH2 0x030b 00000090: JUMPI 00000091: PUSH1 0x00 00000093: DUP1 00000094: REVERT 00000095: JUMPDEST 00000096: DUP1 00000097: PUSH4 0x2b2604f1 0000009c: GT 0000009d: PUSH2 0x00d1 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0x2b2604f1 000000a7: EQ 000000a8: PUSH2 0x01db 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0x2f2ff15d 000000b2: EQ 000000b3: PUSH2 0x020f 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0x36568abe 000000bd: EQ 000000be: PUSH2 0x022f 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0x51cff8d9 000000c8: EQ 000000c9: PUSH2 0x024f 000000cc: JUMPI 000000cd: PUSH1 0x00 000000cf: DUP1 000000d0: REVERT 000000d1: JUMPDEST 000000d2: DUP1 000000d3: PUSH4 0x01ffc9a7 000000d8: EQ 000000d9: PUSH2 0x010e 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0x248a9ca3 000000e3: EQ 000000e4: PUSH2 0x0143 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0x27810b6e 000000ee: EQ 000000ef: PUSH2 0x0181 000000f2: JUMPI 000000f3: DUP1 000000f4: PUSH4 0x29675f29 000000f9: EQ 000000fa: PUSH2 0x01b9 000000fd: JUMPI 000000fe: PUSH1 0x00 00000100: DUP1 00000101: REVERT 00000102: JUMPDEST 00000103: CALLDATASIZE 00000104: PUSH2 0x0109 00000107: JUMPI 00000108: STOP 00000109: JUMPDEST 0000010a: PUSH1 0x00 0000010c: DUP1 0000010d: REVERT 0000010e: JUMPDEST 0000010f: CALLVALUE 00000110: DUP1 00000111: ISZERO 00000112: PUSH2 0x011a 00000115: JUMPI 00000116: PUSH1 0x00 00000118: DUP1 00000119: REVERT 0000011a: JUMPDEST 0000011b: POP 0000011c: PUSH2 0x012e 0000011f: PUSH2 0x0129 00000122: CALLDATASIZE 00000123: PUSH1 0x04 00000125: PUSH2 0x118c 00000128: JUMP 00000129: JUMPDEST 0000012a: PUSH2 0x03e8 0000012d: JUMP 0000012e: JUMPDEST 0000012f: PUSH1 0x40 00000131: MLOAD 00000132: SWAP1 00000133: ISZERO 00000134: ISZERO 00000135: DUP2 00000136: MSTORE 00000137: PUSH1 0x20 00000139: ADD 0000013a: JUMPDEST 0000013b: PUSH1 0x40 0000013d: MLOAD 0000013e: DUP1 0000013f: SWAP2 00000140: SUB 00000141: SWAP1 00000142: RETURN 00000143: JUMPDEST 00000144: CALLVALUE 00000145: DUP1 00000146: ISZERO 00000147: PUSH2 0x014f 0000014a: JUMPI 0000014b: PUSH1 0x00 0000014d: DUP1 0000014e: REVERT 0000014f: JUMPDEST 00000150: POP 00000151: PUSH2 0x0173 00000154: PUSH2 0x015e 00000157: CALLDATASIZE 00000158: PUSH1 0x04 0000015a: PUSH2 0x11b6 0000015d: JUMP 0000015e: JUMPDEST 0000015f: PUSH1 0x00 00000161: SWAP1 00000162: DUP2 00000163: MSTORE 00000164: PUSH1 0x20 00000166: DUP2 00000167: SWAP1 00000168: MSTORE 00000169: PUSH1 0x40 0000016b: SWAP1 0000016c: KECCAK256 0000016d: PUSH1 0x01 0000016f: ADD 00000170: SLOAD 00000171: SWAP1 00000172: JUMP 00000173: JUMPDEST 00000174: PUSH1 0x40 00000176: MLOAD 00000177: SWAP1 00000178: DUP2 00000179: MSTORE 0000017a: PUSH1 0x20 0000017c: ADD 0000017d: PUSH2 0x013a 00000180: JUMP 00000181: JUMPDEST 00000182: CALLVALUE 00000183: DUP1 00000184: ISZERO 00000185: PUSH2 0x018d 00000188: JUMPI 00000189: PUSH1 0x00 0000018b: DUP1 0000018c: REVERT 0000018d: JUMPDEST 0000018e: POP 0000018f: PUSH1 0x01 00000191: SLOAD 00000192: PUSH2 0x01a1 00000195: SWAP1 00000196: PUSH1 0x01 00000198: PUSH1 0x01 0000019a: PUSH1 0xa0 0000019c: SHL 0000019d: SUB 0000019e: AND 0000019f: DUP2 000001a0: JUMP 000001a1: JUMPDEST 000001a2: PUSH1 0x40 000001a4: MLOAD 000001a5: PUSH1 0x01 000001a7: PUSH1 0x01 000001a9: PUSH1 0xa0 000001ab: SHL 000001ac: SUB 000001ad: SWAP1 000001ae: SWAP2 000001af: AND 000001b0: DUP2 000001b1: MSTORE 000001b2: PUSH1 0x20 000001b4: ADD 000001b5: PUSH2 0x013a 000001b8: JUMP 000001b9: JUMPDEST 000001ba: CALLVALUE 000001bb: DUP1 000001bc: ISZERO 000001bd: PUSH2 0x01c5 000001c0: JUMPI 000001c1: PUSH1 0x00 000001c3: DUP1 000001c4: REVERT 000001c5: JUMPDEST 000001c6: POP 000001c7: PUSH2 0x01d9 000001ca: PUSH2 0x01d4 000001cd: CALLDATASIZE 000001ce: PUSH1 0x04 000001d0: PUSH2 0x11dd 000001d3: JUMP 000001d4: JUMPDEST 000001d5: PUSH2 0x041f 000001d8: JUMP 000001d9: JUMPDEST 000001da: STOP 000001db: JUMPDEST 000001dc: CALLVALUE 000001dd: DUP1 000001de: ISZERO 000001df: PUSH2 0x01e7 000001e2: JUMPI 000001e3: PUSH1 0x00 000001e5: DUP1 000001e6: REVERT 000001e7: JUMPDEST 000001e8: POP 000001e9: PUSH2 0x01a1 000001ec: PUSH32 0x00000000000000000000000062d0a8458ed7719fdaf978fe5929c6d342b0bfce 0000020d: DUP2 0000020e: JUMP 0000020f: JUMPDEST 00000210: CALLVALUE 00000211: DUP1 00000212: ISZERO 00000213: PUSH2 0x021b 00000216: JUMPI 00000217: PUSH1 0x00 00000219: DUP1 0000021a: REVERT 0000021b: JUMPDEST 0000021c: POP 0000021d: PUSH2 0x01d9 00000220: PUSH2 0x022a 00000223: CALLDATASIZE 00000224: PUSH1 0x04 00000226: PUSH2 0x1238 00000229: JUMP 0000022a: JUMPDEST 0000022b: PUSH2 0x0562 0000022e: JUMP 0000022f: JUMPDEST 00000230: CALLVALUE 00000231: DUP1 00000232: ISZERO 00000233: PUSH2 0x023b 00000236: JUMPI 00000237: PUSH1 0x00 00000239: DUP1 0000023a: REVERT 0000023b: JUMPDEST 0000023c: POP 0000023d: PUSH2 0x01d9 00000240: PUSH2 0x024a 00000243: CALLDATASIZE 00000244: PUSH1 0x04 00000246: PUSH2 0x1238 00000249: JUMP 0000024a: JUMPDEST 0000024b: PUSH2 0x058c 0000024e: JUMP 0000024f: JUMPDEST 00000250: CALLVALUE 00000251: DUP1 00000252: ISZERO 00000253: PUSH2 0x025b 00000256: JUMPI 00000257: PUSH1 0x00 00000259: DUP1 0000025a: REVERT 0000025b: JUMPDEST 0000025c: POP 0000025d: PUSH2 0x01d9 00000260: PUSH2 0x026a 00000263: CALLDATASIZE 00000264: PUSH1 0x04 00000266: PUSH2 0x1264 00000269: JUMP 0000026a: JUMPDEST 0000026b: PUSH2 0x060f 0000026e: JUMP 0000026f: JUMPDEST 00000270: CALLVALUE 00000271: DUP1 00000272: ISZERO 00000273: PUSH2 0x027b 00000276: JUMPI 00000277: PUSH1 0x00 00000279: DUP1 0000027a: REVERT 0000027b: JUMPDEST 0000027c: POP 0000027d: PUSH2 0x0173 00000280: PUSH32 0xa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775 000002a1: DUP2 000002a2: JUMP 000002a3: JUMPDEST 000002a4: CALLVALUE 000002a5: DUP1 000002a6: ISZERO 000002a7: PUSH2 0x02af 000002aa: JUMPI 000002ab: PUSH1 0x00 000002ad: DUP1 000002ae: REVERT 000002af: JUMPDEST 000002b0: POP 000002b1: PUSH2 0x0173 000002b4: PUSH32 0xf8cd32ed93fc2f9fc78152a14807c9609af3d99c5fe4dc6b106a801aaddfe90e 000002d5: DUP2 000002d6: JUMP 000002d7: JUMPDEST 000002d8: CALLVALUE 000002d9: DUP1 000002da: ISZERO 000002db: PUSH2 0x02e3 000002de: JUMPI 000002df: PUSH1 0x00 000002e1: DUP1 000002e2: REVERT 000002e3: JUMPDEST 000002e4: POP 000002e5: PUSH2 0x01a1 000002e8: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00000309: DUP2 0000030a: JUMP 0000030b: JUMPDEST 0000030c: CALLVALUE 0000030d: DUP1 0000030e: ISZERO 0000030f: PUSH2 0x0317 00000312: JUMPI 00000313: PUSH1 0x00 00000315: DUP1 00000316: REVERT 00000317: JUMPDEST 00000318: POP 00000319: PUSH2 0x012e 0000031c: PUSH2 0x0326 0000031f: CALLDATASIZE 00000320: PUSH1 0x04 00000322: PUSH2 0x1238 00000325: JUMP 00000326: JUMPDEST 00000327: PUSH2 0x0779 0000032a: JUMP 0000032b: JUMPDEST 0000032c: CALLVALUE 0000032d: DUP1 0000032e: ISZERO 0000032f: PUSH2 0x0337 00000332: JUMPI 00000333: PUSH1 0x00 00000335: DUP1 00000336: REVERT 00000337: JUMPDEST 00000338: POP 00000339: PUSH2 0x01d9 0000033c: PUSH2 0x0346 0000033f: CALLDATASIZE 00000340: PUSH1 0x04 00000342: PUSH2 0x1264 00000345: JUMP 00000346: JUMPDEST 00000347: PUSH2 0x07a2 0000034a: JUMP 0000034b: JUMPDEST 0000034c: CALLVALUE 0000034d: DUP1 0000034e: ISZERO 0000034f: PUSH2 0x0357 00000352: JUMPI 00000353: PUSH1 0x00 00000355: DUP1 00000356: REVERT 00000357: JUMPDEST 00000358: POP 00000359: PUSH2 0x0173 0000035c: PUSH1 0x00 0000035e: DUP2 0000035f: JUMP 00000360: JUMPDEST 00000361: CALLVALUE 00000362: DUP1 00000363: ISZERO 00000364: PUSH2 0x036c 00000367: JUMPI 00000368: PUSH1 0x00 0000036a: DUP1 0000036b: REVERT 0000036c: JUMPDEST 0000036d: POP 0000036e: PUSH2 0x01a1 00000371: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000392: DUP2 00000393: JUMP 00000394: JUMPDEST 00000395: CALLVALUE 00000396: DUP1 00000397: ISZERO 00000398: PUSH2 0x03a0 0000039b: JUMPI 0000039c: PUSH1 0x00 0000039e: DUP1 0000039f: REVERT 000003a0: JUMPDEST 000003a1: POP 000003a2: PUSH2 0x01a1 000003a5: PUSH32 0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d 000003c6: DUP2 000003c7: JUMP 000003c8: JUMPDEST 000003c9: CALLVALUE 000003ca: DUP1 000003cb: ISZERO 000003cc: PUSH2 0x03d4 000003cf: JUMPI 000003d0: PUSH1 0x00 000003d2: DUP1 000003d3: REVERT 000003d4: JUMPDEST 000003d5: POP 000003d6: PUSH2 0x01d9 000003d9: PUSH2 0x03e3 000003dc: CALLDATASIZE 000003dd: PUSH1 0x04 000003df: PUSH2 0x1238 000003e2: JUMP 000003e3: JUMPDEST 000003e4: PUSH2 0x0848 000003e7: JUMP 000003e8: JUMPDEST 000003e9: PUSH1 0x00 000003eb: PUSH1 0x01 000003ed: PUSH1 0x01 000003ef: PUSH1 0xe0 000003f1: SHL 000003f2: SUB 000003f3: NOT 000003f4: DUP3 000003f5: AND 000003f6: PUSH4 0x7965db0b 000003fb: PUSH1 0xe0 000003fd: SHL 000003fe: EQ 000003ff: DUP1 00000400: PUSH2 0x0419 00000403: JUMPI 00000404: POP 00000405: PUSH4 0x01ffc9a7 0000040a: PUSH1 0xe0 0000040c: SHL 0000040d: PUSH1 0x01 0000040f: PUSH1 0x01 00000411: PUSH1 0xe0 00000413: SHL 00000414: SUB 00000415: NOT 00000416: DUP4 00000417: AND 00000418: EQ 00000419: JUMPDEST 0000041a: SWAP3 0000041b: SWAP2 0000041c: POP 0000041d: POP 0000041e: JUMP 0000041f: JUMPDEST 00000420: PUSH32 0xf8cd32ed93fc2f9fc78152a14807c9609af3d99c5fe4dc6b106a801aaddfe90e 00000441: PUSH2 0x0449 00000444: DUP2 00000445: PUSH2 0x086d 00000448: JUMP 00000449: JUMPDEST 0000044a: PUSH1 0x00 0000044c: DUP6 0000044d: GT 0000044e: PUSH2 0x046a 00000451: JUMPI 00000452: PUSH1 0x40 00000454: MLOAD 00000455: PUSH4 0x162908e3 0000045a: PUSH1 0xe1 0000045c: SHL 0000045d: DUP2 0000045e: MSTORE 0000045f: PUSH1 0x04 00000461: ADD 00000462: PUSH1 0x40 00000464: MLOAD 00000465: DUP1 00000466: SWAP2 00000467: SUB 00000468: SWAP1 00000469: REVERT 0000046a: JUMPDEST 0000046b: DUP3 0000046c: ISZERO 0000046d: PUSH2 0x052f 00000470: JUMPI 00000471: PUSH1 0x40 00000473: MLOAD 00000474: PUSH4 0x70a08231 00000479: PUSH1 0xe0 0000047b: SHL 0000047c: DUP2 0000047d: MSTORE 0000047e: ADDRESS 0000047f: PUSH1 0x04 00000481: DUP3 00000482: ADD 00000483: MSTORE 00000484: PUSH1 0x00 00000486: SWAP1 00000487: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 000004a8: PUSH1 0x01 000004aa: PUSH1 0x01 000004ac: PUSH1 0xa0 000004ae: SHL 000004af: SUB 000004b0: AND 000004b1: SWAP1 000004b2: PUSH4 0x70a08231 000004b7: SWAP1 000004b8: PUSH1 0x24 000004ba: ADD 000004bb: PUSH1 0x20 000004bd: PUSH1 0x40 000004bf: MLOAD 000004c0: DUP1 000004c1: DUP4 000004c2: SUB 000004c3: DUP2 000004c4: DUP7 000004c5: GAS 000004c6: STATICCALL 000004c7: ISZERO 000004c8: DUP1 000004c9: ISZERO 000004ca: PUSH2 0x04d7 000004cd: JUMPI 000004ce: RETURNDATASIZE 000004cf: PUSH1 0x00 000004d1: DUP1 000004d2: RETURNDATACOPY 000004d3: RETURNDATASIZE 000004d4: PUSH1 0x00 000004d6: REVERT 000004d7: JUMPDEST 000004d8: POP 000004d9: POP 000004da: POP 000004db: POP 000004dc: PUSH1 0x40 000004de: MLOAD 000004df: RETURNDATASIZE 000004e0: PUSH1 0x1f 000004e2: NOT 000004e3: PUSH1 0x1f 000004e5: DUP3 000004e6: ADD 000004e7: AND 000004e8: DUP3 000004e9: ADD 000004ea: DUP1 000004eb: PUSH1 0x40 000004ed: MSTORE 000004ee: POP 000004ef: DUP2 000004f0: ADD 000004f1: SWAP1 000004f2: PUSH2 0x04fb 000004f5: SWAP2 000004f6: SWAP1 000004f7: PUSH2 0x127f 000004fa: JUMP 000004fb: JUMPDEST 000004fc: SWAP1 000004fd: POP 000004fe: DUP6 000004ff: DUP2 00000500: LT 00000501: ISZERO 00000502: PUSH2 0x051e 00000505: JUMPI 00000506: PUSH1 0x40 00000508: MLOAD 00000509: PUSH4 0xc52e3eff 0000050e: PUSH1 0xe0 00000510: SHL 00000511: DUP2 00000512: MSTORE 00000513: PUSH1 0x04 00000515: ADD 00000516: PUSH1 0x40 00000518: MLOAD 00000519: DUP1 0000051a: SWAP2 0000051b: SUB 0000051c: SWAP1 0000051d: REVERT 0000051e: JUMPDEST 0000051f: PUSH2 0x0529 00000522: DUP7 00000523: DUP7 00000524: DUP6 00000525: PUSH2 0x087a 00000528: JUMP 00000529: JUMPDEST 0000052a: POP 0000052b: PUSH2 0x055b 0000052e: JUMP 0000052f: JUMPDEST 00000530: DUP5 00000531: SELFBALANCE 00000532: LT 00000533: ISZERO 00000534: PUSH2 0x0550 00000537: JUMPI 00000538: PUSH1 0x40 0000053a: MLOAD 0000053b: PUSH4 0xc52e3eff 00000540: PUSH1 0xe0 00000542: SHL 00000543: DUP2 00000544: MSTORE 00000545: PUSH1 0x04 00000547: ADD 00000548: PUSH1 0x40 0000054a: MLOAD 0000054b: DUP1 0000054c: SWAP2 0000054d: SUB 0000054e: SWAP1 0000054f: REVERT 00000550: JUMPDEST 00000551: PUSH2 0x055b 00000554: DUP6 00000555: DUP6 00000556: DUP5 00000557: PUSH2 0x0a82 0000055a: JUMP 0000055b: JUMPDEST 0000055c: POP 0000055d: POP 0000055e: POP 0000055f: POP 00000560: POP 00000561: JUMP 00000562: JUMPDEST 00000563: PUSH1 0x00 00000565: DUP3 00000566: DUP2 00000567: MSTORE 00000568: PUSH1 0x20 0000056a: DUP2 0000056b: SWAP1 0000056c: MSTORE 0000056d: PUSH1 0x40 0000056f: SWAP1 00000570: KECCAK256 00000571: PUSH1 0x01 00000573: ADD 00000574: SLOAD 00000575: PUSH2 0x057d 00000578: DUP2 00000579: PUSH2 0x086d 0000057c: JUMP 0000057d: JUMPDEST 0000057e: PUSH2 0x0587 00000581: DUP4 00000582: DUP4 00000583: PUSH2 0x0bde 00000586: JUMP 00000587: JUMPDEST 00000588: POP 00000589: POP 0000058a: POP 0000058b: JUMP 0000058c: JUMPDEST 0000058d: PUSH1 0x01 0000058f: PUSH1 0x01 00000591: PUSH1 0xa0 00000593: SHL 00000594: SUB 00000595: DUP2 00000596: AND 00000597: CALLER 00000598: EQ 00000599: PUSH2 0x0601 0000059c: JUMPI 0000059d: PUSH1 0x40 0000059f: MLOAD 000005a0: PUSH3 0x461bcd 000005a4: PUSH1 0xe5 000005a6: SHL 000005a7: DUP2 000005a8: MSTORE 000005a9: PUSH1 0x20 000005ab: PUSH1 0x04 000005ad: DUP3 000005ae: ADD 000005af: MSTORE 000005b0: PUSH1 0x2f 000005b2: PUSH1 0x24 000005b4: DUP3 000005b5: ADD 000005b6: MSTORE 000005b7: PUSH32 0x416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365 000005d8: PUSH1 0x44 000005da: DUP3 000005db: ADD 000005dc: MSTORE 000005dd: PUSH15 0x103937b632b9903337b91039b2b633 000005ed: PUSH1 0x89 000005ef: SHL 000005f0: PUSH1 0x64 000005f2: DUP3 000005f3: ADD 000005f4: MSTORE 000005f5: PUSH1 0x84 000005f7: ADD 000005f8: JUMPDEST 000005f9: PUSH1 0x40 000005fb: MLOAD 000005fc: DUP1 000005fd: SWAP2 000005fe: SUB 000005ff: SWAP1 00000600: REVERT 00000601: JUMPDEST 00000602: PUSH2 0x060b 00000605: DUP3 00000606: DUP3 00000607: PUSH2 0x0c62 0000060a: JUMP 0000060b: JUMPDEST 0000060c: POP 0000060d: POP 0000060e: JUMP 0000060f: JUMPDEST 00000610: PUSH32 0xa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775 00000631: PUSH2 0x0639 00000634: DUP2 00000635: PUSH2 0x086d 00000638: JUMP 00000639: JUMPDEST 0000063a: PUSH1 0x00 0000063c: PUSH1 0x01 0000063e: PUSH1 0x01 00000640: PUSH1 0xa0 00000642: SHL 00000643: SUB 00000644: DUP4 00000645: AND 00000646: PUSH2 0x06da 00000649: JUMPI 0000064a: POP 0000064b: SELFBALANCE 0000064c: PUSH1 0x00 0000064e: DUP2 0000064f: PUSH2 0x066b 00000652: JUMPI 00000653: PUSH1 0x40 00000655: MLOAD 00000656: PUSH4 0xc52e3eff 0000065b: PUSH1 0xe0 0000065d: SHL 0000065e: DUP2 0000065f: MSTORE 00000660: PUSH1 0x04 00000662: ADD 00000663: PUSH1 0x40 00000665: MLOAD 00000666: DUP1 00000667: SWAP2 00000668: SUB 00000669: SWAP1 0000066a: REVERT 0000066b: JUMPDEST 0000066c: PUSH1 0x40 0000066e: MLOAD 0000066f: CALLER 00000670: SWAP1 00000671: DUP4 00000672: SWAP1 00000673: PUSH1 0x00 00000675: DUP2 00000676: DUP2 00000677: DUP2 00000678: DUP6 00000679: DUP8 0000067a: GAS 0000067b: CALL 0000067c: SWAP3 0000067d: POP 0000067e: POP 0000067f: POP 00000680: RETURNDATASIZE 00000681: DUP1 00000682: PUSH1 0x00 00000684: DUP2 00000685: EQ 00000686: PUSH2 0x06ab 00000689: JUMPI 0000068a: PUSH1 0x40 0000068c: MLOAD 0000068d: SWAP2 0000068e: POP 0000068f: PUSH1 0x1f 00000691: NOT 00000692: PUSH1 0x3f 00000694: RETURNDATASIZE 00000695: ADD 00000696: AND 00000697: DUP3 00000698: ADD 00000699: PUSH1 0x40 0000069b: MSTORE 0000069c: RETURNDATASIZE 0000069d: DUP3 0000069e: MSTORE 0000069f: RETURNDATASIZE 000006a0: PUSH1 0x00 000006a2: PUSH1 0x20 000006a4: DUP5 000006a5: ADD 000006a6: RETURNDATACOPY 000006a7: PUSH2 0x06b0 000006aa: JUMP 000006ab: JUMPDEST 000006ac: PUSH1 0x60 000006ae: SWAP2 000006af: POP 000006b0: JUMPDEST 000006b1: POP 000006b2: POP 000006b3: DUP1 000006b4: SWAP2 000006b5: POP 000006b6: POP 000006b7: DUP1 000006b8: PUSH2 0x06d4 000006bb: JUMPI 000006bc: PUSH1 0x40 000006be: MLOAD 000006bf: PUSH4 0x1d42c867 000006c4: PUSH1 0xe2 000006c6: SHL 000006c7: DUP2 000006c8: MSTORE 000006c9: PUSH1 0x04 000006cb: ADD 000006cc: PUSH1 0x40 000006ce: MLOAD 000006cf: DUP1 000006d0: SWAP2 000006d1: SUB 000006d2: SWAP1 000006d3: REVERT 000006d4: JUMPDEST 000006d5: POP 000006d6: POP 000006d7: POP 000006d8: POP 000006d9: JUMP 000006da: JUMPDEST 000006db: PUSH1 0x40 000006dd: MLOAD 000006de: PUSH4 0x70a08231 000006e3: PUSH1 0xe0 000006e5: SHL 000006e6: DUP2 000006e7: MSTORE 000006e8: ADDRESS 000006e9: PUSH1 0x04 000006eb: DUP3 000006ec: ADD 000006ed: MSTORE 000006ee: PUSH1 0x01 000006f0: PUSH1 0x01 000006f2: PUSH1 0xa0 000006f4: SHL 000006f5: SUB 000006f6: DUP5 000006f7: AND 000006f8: SWAP1 000006f9: PUSH4 0x70a08231 000006fe: SWAP1 000006ff: PUSH1 0x24 00000701: ADD 00000702: PUSH1 0x20 00000704: PUSH1 0x40 00000706: MLOAD 00000707: DUP1 00000708: DUP4 00000709: SUB 0000070a: DUP2 0000070b: DUP7 0000070c: GAS 0000070d: STATICCALL 0000070e: ISZERO 0000070f: DUP1 00000710: ISZERO 00000711: PUSH2 0x071e 00000714: JUMPI 00000715: RETURNDATASIZE 00000716: PUSH1 0x00 00000718: DUP1 00000719: RETURNDATACOPY 0000071a: RETURNDATASIZE 0000071b: PUSH1 0x00 0000071d: REVERT 0000071e: JUMPDEST 0000071f: POP 00000720: POP 00000721: POP 00000722: POP 00000723: PUSH1 0x40 00000725: MLOAD 00000726: RETURNDATASIZE 00000727: PUSH1 0x1f 00000729: NOT 0000072a: PUSH1 0x1f 0000072c: DUP3 0000072d: ADD 0000072e: AND 0000072f: DUP3 00000730: ADD 00000731: DUP1 00000732: PUSH1 0x40 00000734: MSTORE 00000735: POP 00000736: DUP2 00000737: ADD 00000738: SWAP1 00000739: PUSH2 0x0742 0000073c: SWAP2 0000073d: SWAP1 0000073e: PUSH2 0x127f 00000741: JUMP 00000742: JUMPDEST 00000743: SWAP1 00000744: POP 00000745: PUSH1 0x00 00000747: DUP2 00000748: GT 00000749: PUSH2 0x0765 0000074c: JUMPI 0000074d: PUSH1 0x40 0000074f: MLOAD 00000750: PUSH4 0xc52e3eff 00000755: PUSH1 0xe0 00000757: SHL 00000758: DUP2 00000759: MSTORE 0000075a: PUSH1 0x04 0000075c: ADD 0000075d: PUSH1 0x40 0000075f: MLOAD 00000760: DUP1 00000761: SWAP2 00000762: SUB 00000763: SWAP1 00000764: REVERT 00000765: JUMPDEST 00000766: PUSH2 0x0587 00000769: PUSH1 0x01 0000076b: PUSH1 0x01 0000076d: PUSH1 0xa0 0000076f: SHL 00000770: SUB 00000771: DUP5 00000772: AND 00000773: CALLER 00000774: DUP4 00000775: PUSH2 0x0cc7 00000778: JUMP 00000779: JUMPDEST 0000077a: PUSH1 0x00 0000077c: SWAP2 0000077d: DUP3 0000077e: MSTORE 0000077f: PUSH1 0x20 00000781: DUP3 00000782: DUP2 00000783: MSTORE 00000784: PUSH1 0x40 00000786: DUP1 00000787: DUP5 00000788: KECCAK256 00000789: PUSH1 0x01 0000078b: PUSH1 0x01 0000078d: PUSH1 0xa0 0000078f: SHL 00000790: SUB 00000791: SWAP4 00000792: SWAP1 00000793: SWAP4 00000794: AND 00000795: DUP5 00000796: MSTORE 00000797: SWAP2 00000798: SWAP1 00000799: MSTORE 0000079a: SWAP1 0000079b: KECCAK256 0000079c: SLOAD 0000079d: PUSH1 0xff 0000079f: AND 000007a0: SWAP1 000007a1: JUMP 000007a2: JUMPDEST 000007a3: PUSH32 0xa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775 000007c4: PUSH2 0x07cc 000007c7: DUP2 000007c8: PUSH2 0x086d 000007cb: JUMP 000007cc: JUMPDEST 000007cd: PUSH1 0x01 000007cf: PUSH1 0x01 000007d1: PUSH1 0xa0 000007d3: SHL 000007d4: SUB 000007d5: DUP3 000007d6: AND 000007d7: PUSH2 0x07f3 000007da: JUMPI 000007db: PUSH1 0x40 000007dd: MLOAD 000007de: PUSH4 0xe6c4247b 000007e3: PUSH1 0xe0 000007e5: SHL 000007e6: DUP2 000007e7: MSTORE 000007e8: PUSH1 0x04 000007ea: ADD 000007eb: PUSH1 0x40 000007ed: MLOAD 000007ee: DUP1 000007ef: SWAP2 000007f0: SUB 000007f1: SWAP1 000007f2: REVERT 000007f3: JUMPDEST 000007f4: PUSH1 0x01 000007f6: DUP1 000007f7: SLOAD 000007f8: PUSH1 0x01 000007fa: PUSH1 0x01 000007fc: PUSH1 0xa0 000007fe: SHL 000007ff: SUB 00000800: NOT 00000801: AND 00000802: PUSH1 0x01 00000804: PUSH1 0x01 00000806: PUSH1 0xa0 00000808: SHL 00000809: SUB 0000080a: DUP5 0000080b: AND 0000080c: SWAP1 0000080d: DUP2 0000080e: OR 0000080f: SWAP1 00000810: SWAP2 00000811: SSTORE 00000812: PUSH1 0x40 00000814: MLOAD 00000815: SWAP1 00000816: DUP2 00000817: MSTORE 00000818: PUSH32 0x073f38af2c94f21e221425553daa2b4d4d0c0737465b75791e3706316b9eb886 00000839: SWAP1 0000083a: PUSH1 0x20 0000083c: ADD 0000083d: PUSH1 0x40 0000083f: MLOAD 00000840: DUP1 00000841: SWAP2 00000842: SUB 00000843: SWAP1 00000844: LOG1 00000845: POP 00000846: POP 00000847: JUMP 00000848: JUMPDEST 00000849: PUSH1 0x00 0000084b: DUP3 0000084c: DUP2 0000084d: MSTORE 0000084e: PUSH1 0x20 00000850: DUP2 00000851: SWAP1 00000852: MSTORE 00000853: PUSH1 0x40 00000855: SWAP1 00000856: KECCAK256 00000857: PUSH1 0x01 00000859: ADD 0000085a: SLOAD 0000085b: PUSH2 0x0863 0000085e: DUP2 0000085f: PUSH2 0x086d 00000862: JUMP 00000863: JUMPDEST 00000864: PUSH2 0x0587 00000867: DUP4 00000868: DUP4 00000869: PUSH2 0x0c62 0000086c: JUMP 0000086d: JUMPDEST 0000086e: PUSH2 0x0877 00000871: DUP2 00000872: CALLER 00000873: PUSH2 0x0d19 00000876: JUMP 00000877: JUMPDEST 00000878: POP 00000879: JUMP 0000087a: JUMPDEST 0000087b: PUSH1 0x40 0000087d: DUP1 0000087e: MLOAD 0000087f: PUSH1 0x03 00000881: DUP1 00000882: DUP3 00000883: MSTORE 00000884: PUSH1 0x80 00000886: DUP3 00000887: ADD 00000888: SWAP1 00000889: SWAP3 0000088a: MSTORE 0000088b: PUSH1 0x00 0000088d: SWAP2 0000088e: PUSH1 0x20 00000890: DUP3 00000891: ADD 00000892: PUSH1 0x60 00000894: DUP1 00000895: CALLDATASIZE 00000896: DUP4 00000897: CALLDATACOPY 00000898: ADD 00000899: SWAP1 0000089a: POP 0000089b: POP 0000089c: SWAP1 0000089d: POP 0000089e: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 000008bf: DUP2 000008c0: PUSH1 0x00 000008c2: DUP2 000008c3: MLOAD 000008c4: DUP2 000008c5: LT 000008c6: PUSH2 0x08d1 000008c9: JUMPI 000008ca: PUSH2 0x08d1 000008cd: PUSH2 0x12ae 000008d0: JUMP 000008d1: JUMPDEST 000008d2: PUSH1 0x20 000008d4: MUL 000008d5: PUSH1 0x20 000008d7: ADD 000008d8: ADD 000008d9: SWAP1 000008da: PUSH1 0x01 000008dc: PUSH1 0x01 000008de: PUSH1 0xa0 000008e0: SHL 000008e1: SUB 000008e2: AND 000008e3: SWAP1 000008e4: DUP2 000008e5: PUSH1 0x01 000008e7: PUSH1 0x01 000008e9: PUSH1 0xa0 000008eb: SHL 000008ec: SUB 000008ed: AND 000008ee: DUP2 000008ef: MSTORE 000008f0: POP 000008f1: POP 000008f2: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000913: DUP2 00000914: PUSH1 0x01 00000916: DUP2 00000917: MLOAD 00000918: DUP2 00000919: LT 0000091a: PUSH2 0x0925 0000091d: JUMPI 0000091e: PUSH2 0x0925 00000921: PUSH2 0x12ae 00000924: JUMP 00000925: JUMPDEST 00000926: PUSH1 0x20 00000928: MUL 00000929: PUSH1 0x20 0000092b: ADD 0000092c: ADD 0000092d: SWAP1 0000092e: PUSH1 0x01 00000930: PUSH1 0x01 00000932: PUSH1 0xa0 00000934: SHL 00000935: SUB 00000936: AND 00000937: SWAP1 00000938: DUP2 00000939: PUSH1 0x01 0000093b: PUSH1 0x01 0000093d: PUSH1 0xa0 0000093f: SHL 00000940: SUB 00000941: AND 00000942: DUP2 00000943: MSTORE 00000944: POP 00000945: POP 00000946: PUSH32 0x00000000000000000000000062d0a8458ed7719fdaf978fe5929c6d342b0bfce 00000967: DUP2 00000968: PUSH1 0x02 0000096a: DUP2 0000096b: MLOAD 0000096c: DUP2 0000096d: LT 0000096e: PUSH2 0x0979 00000971: JUMPI 00000972: PUSH2 0x0979 00000975: PUSH2 0x12ae 00000978: JUMP 00000979: JUMPDEST 0000097a: PUSH1 0x01 0000097c: PUSH1 0x01 0000097e: PUSH1 0xa0 00000980: SHL 00000981: SUB 00000982: SWAP3 00000983: DUP4 00000984: AND 00000985: PUSH1 0x20 00000987: SWAP2 00000988: DUP3 00000989: MUL 0000098a: SWAP3 0000098b: SWAP1 0000098c: SWAP3 0000098d: ADD 0000098e: ADD 0000098f: MSTORE 00000990: PUSH1 0x01 00000992: SLOAD 00000993: PUSH1 0x40 00000995: MLOAD 00000996: PUSH4 0x38ed1739 0000099b: PUSH1 0xe0 0000099d: SHL 0000099e: DUP2 0000099f: MSTORE 000009a0: PUSH1 0x00 000009a2: SWAP3 000009a3: PUSH32 0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d 000009c4: DUP2 000009c5: AND 000009c6: SWAP3 000009c7: PUSH4 0x38ed1739 000009cc: SWAP3 000009cd: PUSH2 0x09e5 000009d0: SWAP3 000009d1: DUP11 000009d2: SWAP3 000009d3: DUP11 000009d4: SWAP3 000009d5: DUP10 000009d6: SWAP3 000009d7: SWAP2 000009d8: SWAP1 000009d9: SWAP2 000009da: AND 000009db: SWAP1 000009dc: DUP11 000009dd: SWAP1 000009de: PUSH1 0x04 000009e0: ADD 000009e1: PUSH2 0x1309 000009e4: JUMP 000009e5: JUMPDEST 000009e6: PUSH1 0x00 000009e8: PUSH1 0x40 000009ea: MLOAD 000009eb: DUP1 000009ec: DUP4 000009ed: SUB 000009ee: DUP2 000009ef: PUSH1 0x00 000009f1: DUP8 000009f2: GAS 000009f3: CALL 000009f4: ISZERO 000009f5: DUP1 000009f6: ISZERO 000009f7: PUSH2 0x0a04 000009fa: JUMPI 000009fb: RETURNDATASIZE 000009fc: PUSH1 0x00 000009fe: DUP1 000009ff: RETURNDATACOPY 00000a00: RETURNDATASIZE 00000a01: PUSH1 0x00 00000a03: REVERT 00000a04: JUMPDEST 00000a05: POP 00000a06: POP 00000a07: POP 00000a08: POP 00000a09: PUSH1 0x40 00000a0b: MLOAD 00000a0c: RETURNDATASIZE 00000a0d: PUSH1 0x00 00000a0f: DUP3 00000a10: RETURNDATACOPY 00000a11: PUSH1 0x1f 00000a13: RETURNDATASIZE 00000a14: SWAP1 00000a15: DUP2 00000a16: ADD 00000a17: PUSH1 0x1f 00000a19: NOT 00000a1a: AND 00000a1b: DUP3 00000a1c: ADD 00000a1d: PUSH1 0x40 00000a1f: MSTORE 00000a20: PUSH2 0x0a2c 00000a23: SWAP2 00000a24: SWAP1 00000a25: DUP2 00000a26: ADD 00000a27: SWAP1 00000a28: PUSH2 0x1345 00000a2b: JUMP 00000a2c: JUMPDEST 00000a2d: SWAP1 00000a2e: POP 00000a2f: PUSH1 0x00 00000a31: DUP2 00000a32: PUSH1 0x01 00000a34: DUP4 00000a35: MLOAD 00000a36: PUSH2 0x0a3f 00000a39: SWAP2 00000a3a: SWAP1 00000a3b: PUSH2 0x1428 00000a3e: JUMP 00000a3f: JUMPDEST 00000a40: DUP2 00000a41: MLOAD 00000a42: DUP2 00000a43: LT 00000a44: PUSH2 0x0a4f 00000a47: JUMPI 00000a48: PUSH2 0x0a4f 00000a4b: PUSH2 0x12ae 00000a4e: JUMP 00000a4f: JUMPDEST 00000a50: PUSH1 0x20 00000a52: MUL 00000a53: PUSH1 0x20 00000a55: ADD 00000a56: ADD 00000a57: MLOAD 00000a58: SWAP1 00000a59: POP 00000a5a: PUSH1 0x00 00000a5c: DUP2 00000a5d: GT 00000a5e: PUSH2 0x0a7a 00000a61: JUMPI 00000a62: PUSH1 0x40 00000a64: MLOAD 00000a65: PUSH4 0x081ceff3 00000a6a: PUSH1 0xe4 00000a6c: SHL 00000a6d: DUP2 00000a6e: MSTORE 00000a6f: PUSH1 0x04 00000a71: ADD 00000a72: PUSH1 0x40 00000a74: MLOAD 00000a75: DUP1 00000a76: SWAP2 00000a77: SUB 00000a78: SWAP1 00000a79: REVERT 00000a7a: JUMPDEST 00000a7b: POP 00000a7c: POP 00000a7d: POP 00000a7e: POP 00000a7f: POP 00000a80: POP 00000a81: JUMP 00000a82: JUMPDEST 00000a83: PUSH1 0x40 00000a85: DUP1 00000a86: MLOAD 00000a87: PUSH1 0x02 00000a89: DUP1 00000a8a: DUP3 00000a8b: MSTORE 00000a8c: PUSH1 0x60 00000a8e: DUP3 00000a8f: ADD 00000a90: DUP4 00000a91: MSTORE 00000a92: PUSH1 0x00 00000a94: SWAP3 00000a95: PUSH1 0x20 00000a97: DUP4 00000a98: ADD 00000a99: SWAP1 00000a9a: DUP1 00000a9b: CALLDATASIZE 00000a9c: DUP4 00000a9d: CALLDATACOPY 00000a9e: ADD 00000a9f: SWAP1 00000aa0: POP 00000aa1: POP 00000aa2: SWAP1 00000aa3: POP 00000aa4: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000ac5: DUP2 00000ac6: PUSH1 0x00 00000ac8: DUP2 00000ac9: MLOAD 00000aca: DUP2 00000acb: LT 00000acc: PUSH2 0x0ad7 00000acf: JUMPI 00000ad0: PUSH2 0x0ad7 00000ad3: PUSH2 0x12ae 00000ad6: JUMP 00000ad7: JUMPDEST 00000ad8: PUSH1 0x20 00000ada: MUL 00000adb: PUSH1 0x20 00000add: ADD 00000ade: ADD 00000adf: SWAP1 00000ae0: PUSH1 0x01 00000ae2: PUSH1 0x01 00000ae4: PUSH1 0xa0 00000ae6: SHL 00000ae7: SUB 00000ae8: AND 00000ae9: SWAP1 00000aea: DUP2 00000aeb: PUSH1 0x01 00000aed: PUSH1 0x01 00000aef: PUSH1 0xa0 00000af1: SHL 00000af2: SUB 00000af3: AND 00000af4: DUP2 00000af5: MSTORE 00000af6: POP 00000af7: POP 00000af8: PUSH32 0x00000000000000000000000062d0a8458ed7719fdaf978fe5929c6d342b0bfce 00000b19: DUP2 00000b1a: PUSH1 0x01 00000b1c: DUP2 00000b1d: MLOAD 00000b1e: DUP2 00000b1f: LT 00000b20: PUSH2 0x0b2b 00000b23: JUMPI 00000b24: PUSH2 0x0b2b 00000b27: PUSH2 0x12ae 00000b2a: JUMP 00000b2b: JUMPDEST 00000b2c: PUSH1 0x01 00000b2e: PUSH1 0x01 00000b30: PUSH1 0xa0 00000b32: SHL 00000b33: SUB 00000b34: SWAP3 00000b35: DUP4 00000b36: AND 00000b37: PUSH1 0x20 00000b39: SWAP2 00000b3a: DUP3 00000b3b: MUL 00000b3c: SWAP3 00000b3d: SWAP1 00000b3e: SWAP3 00000b3f: ADD 00000b40: ADD 00000b41: MSTORE 00000b42: PUSH1 0x01 00000b44: SLOAD 00000b45: PUSH1 0x40 00000b47: MLOAD 00000b48: PUSH4 0x7ff36ab5 00000b4d: PUSH1 0xe0 00000b4f: SHL 00000b50: DUP2 00000b51: MSTORE 00000b52: PUSH1 0x00 00000b54: SWAP3 00000b55: PUSH32 0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d 00000b76: DUP2 00000b77: AND 00000b78: SWAP3 00000b79: PUSH4 0x7ff36ab5 00000b7e: SWAP3 00000b7f: DUP10 00000b80: SWAP3 00000b81: PUSH2 0x0b97 00000b84: SWAP3 00000b85: DUP11 00000b86: SWAP3 00000b87: DUP10 00000b88: SWAP3 00000b89: SWAP2 00000b8a: SWAP1 00000b8b: SWAP2 00000b8c: AND 00000b8d: SWAP1 00000b8e: DUP11 00000b8f: SWAP1 00000b90: PUSH1 0x04 00000b92: ADD 00000b93: PUSH2 0x143b 00000b96: JUMP 00000b97: JUMPDEST 00000b98: PUSH1 0x00 00000b9a: PUSH1 0x40 00000b9c: MLOAD 00000b9d: DUP1 00000b9e: DUP4 00000b9f: SUB 00000ba0: DUP2 00000ba1: DUP6 00000ba2: DUP9 00000ba3: GAS 00000ba4: CALL 00000ba5: ISZERO 00000ba6: DUP1 00000ba7: ISZERO 00000ba8: PUSH2 0x0bb5 00000bab: JUMPI 00000bac: RETURNDATASIZE 00000bad: PUSH1 0x00 00000baf: DUP1 00000bb0: RETURNDATACOPY 00000bb1: RETURNDATASIZE 00000bb2: PUSH1 0x00 00000bb4: REVERT 00000bb5: JUMPDEST 00000bb6: POP 00000bb7: POP 00000bb8: POP 00000bb9: POP 00000bba: POP 00000bbb: PUSH1 0x40 00000bbd: MLOAD 00000bbe: RETURNDATASIZE 00000bbf: PUSH1 0x00 00000bc1: DUP3 00000bc2: RETURNDATACOPY 00000bc3: PUSH1 0x1f 00000bc5: RETURNDATASIZE 00000bc6: SWAP1 00000bc7: DUP2 00000bc8: ADD 00000bc9: PUSH1 0x1f 00000bcb: NOT 00000bcc: AND 00000bcd: DUP3 00000bce: ADD 00000bcf: PUSH1 0x40 00000bd1: MSTORE 00000bd2: PUSH2 0x0a2c 00000bd5: SWAP2 00000bd6: SWAP1 00000bd7: DUP2 00000bd8: ADD 00000bd9: SWAP1 00000bda: PUSH2 0x1345 00000bdd: JUMP 00000bde: JUMPDEST 00000bdf: PUSH2 0x0be8 00000be2: DUP3 00000be3: DUP3 00000be4: PUSH2 0x0779 00000be7: JUMP 00000be8: JUMPDEST 00000be9: PUSH2 0x060b 00000bec: JUMPI 00000bed: PUSH1 0x00 00000bef: DUP3 00000bf0: DUP2 00000bf1: MSTORE 00000bf2: PUSH1 0x20 00000bf4: DUP2 00000bf5: DUP2 00000bf6: MSTORE 00000bf7: PUSH1 0x40 00000bf9: DUP1 00000bfa: DUP4 00000bfb: KECCAK256 00000bfc: PUSH1 0x01 00000bfe: PUSH1 0x01 00000c00: PUSH1 0xa0 00000c02: SHL 00000c03: SUB 00000c04: DUP6 00000c05: AND 00000c06: DUP5 00000c07: MSTORE 00000c08: SWAP1 00000c09: SWAP2 00000c0a: MSTORE 00000c0b: SWAP1 00000c0c: KECCAK256 00000c0d: DUP1 00000c0e: SLOAD 00000c0f: PUSH1 0xff 00000c11: NOT 00000c12: AND 00000c13: PUSH1 0x01 00000c15: OR 00000c16: SWAP1 00000c17: SSTORE 00000c18: PUSH2 0x0c1e 00000c1b: CALLER 00000c1c: SWAP1 00000c1d: JUMP 00000c1e: JUMPDEST 00000c1f: PUSH1 0x01 00000c21: PUSH1 0x01 00000c23: PUSH1 0xa0 00000c25: SHL 00000c26: SUB 00000c27: AND 00000c28: DUP2 00000c29: PUSH1 0x01 00000c2b: PUSH1 0x01 00000c2d: PUSH1 0xa0 00000c2f: SHL 00000c30: SUB 00000c31: AND 00000c32: DUP4 00000c33: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d 00000c54: PUSH1 0x40 00000c56: MLOAD 00000c57: PUSH1 0x40 00000c59: MLOAD 00000c5a: DUP1 00000c5b: SWAP2 00000c5c: SUB 00000c5d: SWAP1 00000c5e: LOG4 00000c5f: POP 00000c60: POP 00000c61: JUMP 00000c62: JUMPDEST 00000c63: PUSH2 0x0c6c 00000c66: DUP3 00000c67: DUP3 00000c68: PUSH2 0x0779 00000c6b: JUMP 00000c6c: JUMPDEST 00000c6d: ISZERO 00000c6e: PUSH2 0x060b 00000c71: JUMPI 00000c72: PUSH1 0x00 00000c74: DUP3 00000c75: DUP2 00000c76: MSTORE 00000c77: PUSH1 0x20 00000c79: DUP2 00000c7a: DUP2 00000c7b: MSTORE 00000c7c: PUSH1 0x40 00000c7e: DUP1 00000c7f: DUP4 00000c80: KECCAK256 00000c81: PUSH1 0x01 00000c83: PUSH1 0x01 00000c85: PUSH1 0xa0 00000c87: SHL 00000c88: SUB 00000c89: DUP6 00000c8a: AND 00000c8b: DUP1 00000c8c: DUP6 00000c8d: MSTORE 00000c8e: SWAP3 00000c8f: MSTORE 00000c90: DUP1 00000c91: DUP4 00000c92: KECCAK256 00000c93: DUP1 00000c94: SLOAD 00000c95: PUSH1 0xff 00000c97: NOT 00000c98: AND 00000c99: SWAP1 00000c9a: SSTORE 00000c9b: MLOAD 00000c9c: CALLER 00000c9d: SWAP3 00000c9e: DUP6 00000c9f: SWAP2 00000ca0: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b 00000cc1: SWAP2 00000cc2: SWAP1 00000cc3: LOG4 00000cc4: POP 00000cc5: POP 00000cc6: JUMP 00000cc7: JUMPDEST 00000cc8: PUSH1 0x40 00000cca: DUP1 00000ccb: MLOAD 00000ccc: PUSH1 0x01 00000cce: PUSH1 0x01 00000cd0: PUSH1 0xa0 00000cd2: SHL 00000cd3: SUB 00000cd4: DUP5 00000cd5: AND 00000cd6: PUSH1 0x24 00000cd8: DUP3 00000cd9: ADD 00000cda: MSTORE 00000cdb: PUSH1 0x44 00000cdd: DUP1 00000cde: DUP3 00000cdf: ADD 00000ce0: DUP5 00000ce1: SWAP1 00000ce2: MSTORE 00000ce3: DUP3 00000ce4: MLOAD 00000ce5: DUP1 00000ce6: DUP4 00000ce7: SUB 00000ce8: SWAP1 00000ce9: SWAP2 00000cea: ADD 00000ceb: DUP2 00000cec: MSTORE 00000ced: PUSH1 0x64 00000cef: SWAP1 00000cf0: SWAP2 00000cf1: ADD 00000cf2: SWAP1 00000cf3: SWAP2 00000cf4: MSTORE 00000cf5: PUSH1 0x20 00000cf7: DUP2 00000cf8: ADD 00000cf9: DUP1 00000cfa: MLOAD 00000cfb: PUSH1 0x01 00000cfd: PUSH1 0x01 00000cff: PUSH1 0xe0 00000d01: SHL 00000d02: SUB 00000d03: AND 00000d04: PUSH4 0xa9059cbb 00000d09: PUSH1 0xe0 00000d0b: SHL 00000d0c: OR 00000d0d: SWAP1 00000d0e: MSTORE 00000d0f: PUSH2 0x0587 00000d12: SWAP1 00000d13: DUP5 00000d14: SWAP1 00000d15: PUSH2 0x0d72 00000d18: JUMP 00000d19: JUMPDEST 00000d1a: PUSH2 0x0d23 00000d1d: DUP3 00000d1e: DUP3 00000d1f: PUSH2 0x0779 00000d22: JUMP 00000d23: JUMPDEST 00000d24: PUSH2 0x060b 00000d27: JUMPI 00000d28: PUSH2 0x0d30 00000d2b: DUP2 00000d2c: PUSH2 0x0e47 00000d2f: JUMP 00000d30: JUMPDEST 00000d31: PUSH2 0x0d3b 00000d34: DUP4 00000d35: PUSH1 0x20 00000d37: PUSH2 0x0e59 00000d3a: JUMP 00000d3b: JUMPDEST 00000d3c: PUSH1 0x40 00000d3e: MLOAD 00000d3f: PUSH1 0x20 00000d41: ADD 00000d42: PUSH2 0x0d4c 00000d45: SWAP3 00000d46: SWAP2 00000d47: SWAP1 00000d48: PUSH2 0x1494 00000d4b: JUMP 00000d4c: JUMPDEST 00000d4d: PUSH1 0x40 00000d4f: DUP1 00000d50: MLOAD 00000d51: PUSH1 0x1f 00000d53: NOT 00000d54: DUP2 00000d55: DUP5 00000d56: SUB 00000d57: ADD 00000d58: DUP2 00000d59: MSTORE 00000d5a: SWAP1 00000d5b: DUP3 00000d5c: SWAP1 00000d5d: MSTORE 00000d5e: PUSH3 0x461bcd 00000d62: PUSH1 0xe5 00000d64: SHL 00000d65: DUP3 00000d66: MSTORE 00000d67: PUSH2 0x05f8 00000d6a: SWAP2 00000d6b: PUSH1 0x04 00000d6d: ADD 00000d6e: PUSH2 0x1509 00000d71: JUMP 00000d72: JUMPDEST 00000d73: PUSH1 0x00 00000d75: PUSH2 0x0dc7 00000d78: DUP3 00000d79: PUSH1 0x40 00000d7b: MLOAD 00000d7c: DUP1 00000d7d: PUSH1 0x40 00000d7f: ADD 00000d80: PUSH1 0x40 00000d82: MSTORE 00000d83: DUP1 00000d84: PUSH1 0x20 00000d86: DUP2 00000d87: MSTORE 00000d88: PUSH1 0x20 00000d8a: ADD 00000d8b: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 00000dac: DUP2 00000dad: MSTORE 00000dae: POP 00000daf: DUP6 00000db0: PUSH1 0x01 00000db2: PUSH1 0x01 00000db4: PUSH1 0xa0 00000db6: SHL 00000db7: SUB 00000db8: AND 00000db9: PUSH2 0x0ffc 00000dbc: SWAP1 00000dbd: SWAP3 00000dbe: SWAP2 00000dbf: SWAP1 00000dc0: PUSH4 0xffffffff 00000dc5: AND 00000dc6: JUMP 00000dc7: JUMPDEST 00000dc8: SWAP1 00000dc9: POP 00000dca: DUP1 00000dcb: MLOAD 00000dcc: PUSH1 0x00 00000dce: EQ 00000dcf: DUP1 00000dd0: PUSH2 0x0de8 00000dd3: JUMPI 00000dd4: POP 00000dd5: DUP1 00000dd6: DUP1 00000dd7: PUSH1 0x20 00000dd9: ADD 00000dda: SWAP1 00000ddb: MLOAD 00000ddc: DUP2 00000ddd: ADD 00000dde: SWAP1 00000ddf: PUSH2 0x0de8 00000de2: SWAP2 00000de3: SWAP1 00000de4: PUSH2 0x153c 00000de7: JUMP 00000de8: JUMPDEST 00000de9: PUSH2 0x0587 00000dec: JUMPI 00000ded: PUSH1 0x40 00000def: MLOAD 00000df0: PUSH3 0x461bcd 00000df4: PUSH1 0xe5 00000df6: SHL 00000df7: DUP2 00000df8: MSTORE 00000df9: PUSH1 0x20 00000dfb: PUSH1 0x04 00000dfd: DUP3 00000dfe: ADD 00000dff: MSTORE 00000e00: PUSH1 0x2a 00000e02: PUSH1 0x24 00000e04: DUP3 00000e05: ADD 00000e06: MSTORE 00000e07: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 00000e28: PUSH1 0x44 00000e2a: DUP3 00000e2b: ADD 00000e2c: MSTORE 00000e2d: PUSH10 0x1bdd081cdd58d8d95959 00000e38: PUSH1 0xb2 00000e3a: SHL 00000e3b: PUSH1 0x64 00000e3d: DUP3 00000e3e: ADD 00000e3f: MSTORE 00000e40: PUSH1 0x84 00000e42: ADD 00000e43: PUSH2 0x05f8 00000e46: JUMP 00000e47: JUMPDEST 00000e48: PUSH1 0x60 00000e4a: PUSH2 0x0419 00000e4d: PUSH1 0x01 00000e4f: PUSH1 0x01 00000e51: PUSH1 0xa0 00000e53: SHL 00000e54: SUB 00000e55: DUP4 00000e56: AND 00000e57: PUSH1 0x14 00000e59: JUMPDEST 00000e5a: PUSH1 0x60 00000e5c: PUSH1 0x00 00000e5e: PUSH2 0x0e68 00000e61: DUP4 00000e62: PUSH1 0x02 00000e64: PUSH2 0x1559 00000e67: JUMP 00000e68: JUMPDEST 00000e69: PUSH2 0x0e73 00000e6c: SWAP1 00000e6d: PUSH1 0x02 00000e6f: PUSH2 0x1570 00000e72: JUMP 00000e73: JUMPDEST 00000e74: PUSH8 0xffffffffffffffff 00000e7d: DUP2 00000e7e: GT 00000e7f: ISZERO 00000e80: PUSH2 0x0e8b 00000e83: JUMPI 00000e84: PUSH2 0x0e8b 00000e87: PUSH2 0x1298 00000e8a: JUMP 00000e8b: JUMPDEST 00000e8c: PUSH1 0x40 00000e8e: MLOAD 00000e8f: SWAP1 00000e90: DUP1 00000e91: DUP3 00000e92: MSTORE 00000e93: DUP1 00000e94: PUSH1 0x1f 00000e96: ADD 00000e97: PUSH1 0x1f 00000e99: NOT 00000e9a: AND 00000e9b: PUSH1 0x20 00000e9d: ADD 00000e9e: DUP3 00000e9f: ADD 00000ea0: PUSH1 0x40 00000ea2: MSTORE 00000ea3: DUP1 00000ea4: ISZERO 00000ea5: PUSH2 0x0eb5 00000ea8: JUMPI 00000ea9: PUSH1 0x20 00000eab: DUP3 00000eac: ADD 00000ead: DUP2 00000eae: DUP1 00000eaf: CALLDATASIZE 00000eb0: DUP4 00000eb1: CALLDATACOPY 00000eb2: ADD 00000eb3: SWAP1 00000eb4: POP 00000eb5: JUMPDEST 00000eb6: POP 00000eb7: SWAP1 00000eb8: POP 00000eb9: PUSH1 0x03 00000ebb: PUSH1 0xfc 00000ebd: SHL 00000ebe: DUP2 00000ebf: PUSH1 0x00 00000ec1: DUP2 00000ec2: MLOAD 00000ec3: DUP2 00000ec4: LT 00000ec5: PUSH2 0x0ed0 00000ec8: JUMPI 00000ec9: PUSH2 0x0ed0 00000ecc: PUSH2 0x12ae 00000ecf: JUMP 00000ed0: JUMPDEST 00000ed1: PUSH1 0x20 00000ed3: ADD 00000ed4: ADD 00000ed5: SWAP1 00000ed6: PUSH1 0x01 00000ed8: PUSH1 0x01 00000eda: PUSH1 0xf8 00000edc: SHL 00000edd: SUB 00000ede: NOT 00000edf: AND 00000ee0: SWAP1 00000ee1: DUP2 00000ee2: PUSH1 0x00 00000ee4: BYTE 00000ee5: SWAP1 00000ee6: MSTORE8 00000ee7: POP 00000ee8: PUSH1 0x0f 00000eea: PUSH1 0xfb 00000eec: SHL 00000eed: DUP2 00000eee: PUSH1 0x01 00000ef0: DUP2 00000ef1: MLOAD 00000ef2: DUP2 00000ef3: LT 00000ef4: PUSH2 0x0eff 00000ef7: JUMPI 00000ef8: PUSH2 0x0eff 00000efb: PUSH2 0x12ae 00000efe: JUMP 00000eff: JUMPDEST 00000f00: PUSH1 0x20 00000f02: ADD 00000f03: ADD 00000f04: SWAP1 00000f05: PUSH1 0x01 00000f07: PUSH1 0x01 00000f09: PUSH1 0xf8 00000f0b: SHL 00000f0c: SUB 00000f0d: NOT 00000f0e: AND 00000f0f: SWAP1 00000f10: DUP2 00000f11: PUSH1 0x00 00000f13: BYTE 00000f14: SWAP1 00000f15: MSTORE8 00000f16: POP 00000f17: PUSH1 0x00 00000f19: PUSH2 0x0f23 00000f1c: DUP5 00000f1d: PUSH1 0x02 00000f1f: PUSH2 0x1559 00000f22: JUMP 00000f23: JUMPDEST 00000f24: PUSH2 0x0f2e 00000f27: SWAP1 00000f28: PUSH1 0x01 00000f2a: PUSH2 0x1570 00000f2d: JUMP 00000f2e: JUMPDEST 00000f2f: SWAP1 00000f30: POP 00000f31: JUMPDEST 00000f32: PUSH1 0x01 00000f34: DUP2 00000f35: GT 00000f36: ISZERO 00000f37: PUSH2 0x0fa6 00000f3a: JUMPI 00000f3b: PUSH16 0x181899199a1a9b1b9c1cb0b131b232b3 00000f4c: PUSH1 0x81 00000f4e: SHL 00000f4f: DUP6 00000f50: PUSH1 0x0f 00000f52: AND 00000f53: PUSH1 0x10 00000f55: DUP2 00000f56: LT 00000f57: PUSH2 0x0f62 00000f5a: JUMPI 00000f5b: PUSH2 0x0f62 00000f5e: PUSH2 0x12ae 00000f61: JUMP 00000f62: JUMPDEST 00000f63: BYTE 00000f64: PUSH1 0xf8 00000f66: SHL 00000f67: DUP3 00000f68: DUP3 00000f69: DUP2 00000f6a: MLOAD 00000f6b: DUP2 00000f6c: LT 00000f6d: PUSH2 0x0f78 00000f70: JUMPI 00000f71: PUSH2 0x0f78 00000f74: PUSH2 0x12ae 00000f77: JUMP 00000f78: JUMPDEST 00000f79: PUSH1 0x20 00000f7b: ADD 00000f7c: ADD 00000f7d: SWAP1 00000f7e: PUSH1 0x01 00000f80: PUSH1 0x01 00000f82: PUSH1 0xf8 00000f84: SHL 00000f85: SUB 00000f86: NOT 00000f87: AND 00000f88: SWAP1 00000f89: DUP2 00000f8a: PUSH1 0x00 00000f8c: BYTE 00000f8d: SWAP1 00000f8e: MSTORE8 00000f8f: POP 00000f90: PUSH1 0x04 00000f92: SWAP5 00000f93: SWAP1 00000f94: SWAP5 00000f95: SHR 00000f96: SWAP4 00000f97: PUSH2 0x0f9f 00000f9a: DUP2 00000f9b: PUSH2 0x1583 00000f9e: JUMP 00000f9f: JUMPDEST 00000fa0: SWAP1 00000fa1: POP 00000fa2: PUSH2 0x0f31 00000fa5: JUMP 00000fa6: JUMPDEST 00000fa7: POP 00000fa8: DUP4 00000fa9: ISZERO 00000faa: PUSH2 0x0ff5 00000fad: JUMPI 00000fae: PUSH1 0x40 00000fb0: MLOAD 00000fb1: PUSH3 0x461bcd 00000fb5: PUSH1 0xe5 00000fb7: SHL 00000fb8: DUP2 00000fb9: MSTORE 00000fba: PUSH1 0x20 00000fbc: PUSH1 0x04 00000fbe: DUP3 00000fbf: ADD 00000fc0: DUP2 00000fc1: SWAP1 00000fc2: MSTORE 00000fc3: PUSH1 0x24 00000fc5: DUP3 00000fc6: ADD 00000fc7: MSTORE 00000fc8: PUSH32 0x537472696e67733a20686578206c656e67746820696e73756666696369656e74 00000fe9: PUSH1 0x44 00000feb: DUP3 00000fec: ADD 00000fed: MSTORE 00000fee: PUSH1 0x64 00000ff0: ADD 00000ff1: PUSH2 0x05f8 00000ff4: JUMP 00000ff5: JUMPDEST 00000ff6: SWAP4 00000ff7: SWAP3 00000ff8: POP 00000ff9: POP 00000ffa: POP 00000ffb: JUMP 00000ffc: JUMPDEST 00000ffd: PUSH1 0x60 00000fff: PUSH2 0x100b 00001002: DUP5 00001003: DUP5 00001004: PUSH1 0x00 00001006: DUP6 00001007: PUSH2 0x1013 0000100a: JUMP 0000100b: JUMPDEST 0000100c: SWAP5 0000100d: SWAP4 0000100e: POP 0000100f: POP 00001010: POP 00001011: POP 00001012: JUMP 00001013: JUMPDEST 00001014: PUSH1 0x60 00001016: DUP3 00001017: SELFBALANCE 00001018: LT 00001019: ISZERO 0000101a: PUSH2 0x1074 0000101d: JUMPI 0000101e: PUSH1 0x40 00001020: MLOAD 00001021: PUSH3 0x461bcd 00001025: PUSH1 0xe5 00001027: SHL 00001028: DUP2 00001029: MSTORE 0000102a: PUSH1 0x20 0000102c: PUSH1 0x04 0000102e: DUP3 0000102f: ADD 00001030: MSTORE 00001031: PUSH1 0x26 00001033: PUSH1 0x24 00001035: DUP3 00001036: ADD 00001037: MSTORE 00001038: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f 00001059: PUSH1 0x44 0000105b: DUP3 0000105c: ADD 0000105d: MSTORE 0000105e: PUSH6 0x1c8818d85b1b 00001065: PUSH1 0xd2 00001067: SHL 00001068: PUSH1 0x64 0000106a: DUP3 0000106b: ADD 0000106c: MSTORE 0000106d: PUSH1 0x84 0000106f: ADD 00001070: PUSH2 0x05f8 00001073: JUMP 00001074: JUMPDEST 00001075: PUSH1 0x00 00001077: DUP1 00001078: DUP7 00001079: PUSH1 0x01 0000107b: PUSH1 0x01 0000107d: PUSH1 0xa0 0000107f: SHL 00001080: SUB 00001081: AND 00001082: DUP6 00001083: DUP8 00001084: PUSH1 0x40 00001086: MLOAD 00001087: PUSH2 0x1090 0000108a: SWAP2 0000108b: SWAP1 0000108c: PUSH2 0x159a 0000108f: JUMP 00001090: JUMPDEST 00001091: PUSH1 0x00 00001093: PUSH1 0x40 00001095: MLOAD 00001096: DUP1 00001097: DUP4 00001098: SUB 00001099: DUP2 0000109a: DUP6 0000109b: DUP8 0000109c: GAS 0000109d: CALL 0000109e: SWAP3 0000109f: POP 000010a0: POP 000010a1: POP 000010a2: RETURNDATASIZE 000010a3: DUP1 000010a4: PUSH1 0x00 000010a6: DUP2 000010a7: EQ 000010a8: PUSH2 0x10cd 000010ab: JUMPI 000010ac: PUSH1 0x40 000010ae: MLOAD 000010af: SWAP2 000010b0: POP 000010b1: PUSH1 0x1f 000010b3: NOT 000010b4: PUSH1 0x3f 000010b6: RETURNDATASIZE 000010b7: ADD 000010b8: AND 000010b9: DUP3 000010ba: ADD 000010bb: PUSH1 0x40 000010bd: MSTORE 000010be: RETURNDATASIZE 000010bf: DUP3 000010c0: MSTORE 000010c1: RETURNDATASIZE 000010c2: PUSH1 0x00 000010c4: PUSH1 0x20 000010c6: DUP5 000010c7: ADD 000010c8: RETURNDATACOPY 000010c9: PUSH2 0x10d2 000010cc: JUMP 000010cd: JUMPDEST 000010ce: PUSH1 0x60 000010d0: SWAP2 000010d1: POP 000010d2: JUMPDEST 000010d3: POP 000010d4: SWAP2 000010d5: POP 000010d6: SWAP2 000010d7: POP 000010d8: PUSH2 0x10e3 000010db: DUP8 000010dc: DUP4 000010dd: DUP4 000010de: DUP8 000010df: PUSH2 0x10ee 000010e2: JUMP 000010e3: JUMPDEST 000010e4: SWAP8 000010e5: SWAP7 000010e6: POP 000010e7: POP 000010e8: POP 000010e9: POP 000010ea: POP 000010eb: POP 000010ec: POP 000010ed: JUMP 000010ee: JUMPDEST 000010ef: PUSH1 0x60 000010f1: DUP4 000010f2: ISZERO 000010f3: PUSH2 0x115d 000010f6: JUMPI 000010f7: DUP3 000010f8: MLOAD 000010f9: PUSH1 0x00 000010fb: SUB 000010fc: PUSH2 0x1156 000010ff: JUMPI 00001100: PUSH1 0x01 00001102: PUSH1 0x01 00001104: PUSH1 0xa0 00001106: SHL 00001107: SUB 00001108: DUP6 00001109: AND 0000110a: EXTCODESIZE 0000110b: PUSH2 0x1156 0000110e: JUMPI 0000110f: PUSH1 0x40 00001111: MLOAD 00001112: PUSH3 0x461bcd 00001116: PUSH1 0xe5 00001118: SHL 00001119: DUP2 0000111a: MSTORE 0000111b: PUSH1 0x20 0000111d: PUSH1 0x04 0000111f: DUP3 00001120: ADD 00001121: MSTORE 00001122: PUSH1 0x1d 00001124: PUSH1 0x24 00001126: DUP3 00001127: ADD 00001128: MSTORE 00001129: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 0000114a: PUSH1 0x44 0000114c: DUP3 0000114d: ADD 0000114e: MSTORE 0000114f: PUSH1 0x64 00001151: ADD 00001152: PUSH2 0x05f8 00001155: JUMP 00001156: JUMPDEST 00001157: POP 00001158: DUP2 00001159: PUSH2 0x100b 0000115c: JUMP 0000115d: JUMPDEST 0000115e: PUSH2 0x100b 00001161: DUP4 00001162: DUP4 00001163: DUP2 00001164: MLOAD 00001165: ISZERO 00001166: PUSH2 0x1172 00001169: JUMPI 0000116a: DUP2 0000116b: MLOAD 0000116c: DUP1 0000116d: DUP4 0000116e: PUSH1 0x20 00001170: ADD 00001171: REVERT 00001172: JUMPDEST 00001173: DUP1 00001174: PUSH1 0x40 00001176: MLOAD 00001177: PUSH3 0x461bcd 0000117b: PUSH1 0xe5 0000117d: SHL 0000117e: DUP2 0000117f: MSTORE 00001180: PUSH1 0x04 00001182: ADD 00001183: PUSH2 0x05f8 00001186: SWAP2 00001187: SWAP1 00001188: PUSH2 0x1509 0000118b: JUMP 0000118c: JUMPDEST 0000118d: PUSH1 0x00 0000118f: PUSH1 0x20 00001191: DUP3 00001192: DUP5 00001193: SUB 00001194: SLT 00001195: ISZERO 00001196: PUSH2 0x119e 00001199: JUMPI 0000119a: PUSH1 0x00 0000119c: DUP1 0000119d: REVERT 0000119e: JUMPDEST 0000119f: DUP2 000011a0: CALLDATALOAD 000011a1: PUSH1 0x01 000011a3: PUSH1 0x01 000011a5: PUSH1 0xe0 000011a7: SHL 000011a8: SUB 000011a9: NOT 000011aa: DUP2 000011ab: AND 000011ac: DUP2 000011ad: EQ 000011ae: PUSH2 0x0ff5 000011b1: JUMPI 000011b2: PUSH1 0x00 000011b4: DUP1 000011b5: REVERT 000011b6: JUMPDEST 000011b7: PUSH1 0x00 000011b9: PUSH1 0x20 000011bb: DUP3 000011bc: DUP5 000011bd: SUB 000011be: SLT 000011bf: ISZERO 000011c0: PUSH2 0x11c8 000011c3: JUMPI 000011c4: PUSH1 0x00 000011c6: DUP1 000011c7: REVERT 000011c8: JUMPDEST 000011c9: POP 000011ca: CALLDATALOAD 000011cb: SWAP2 000011cc: SWAP1 000011cd: POP 000011ce: JUMP 000011cf: JUMPDEST 000011d0: DUP1 000011d1: ISZERO 000011d2: ISZERO 000011d3: DUP2 000011d4: EQ 000011d5: PUSH2 0x0877 000011d8: JUMPI 000011d9: PUSH1 0x00 000011db: DUP1 000011dc: REVERT 000011dd: JUMPDEST 000011de: PUSH1 0x00 000011e0: DUP1 000011e1: PUSH1 0x00 000011e3: DUP1 000011e4: PUSH1 0x80 000011e6: DUP6 000011e7: DUP8 000011e8: SUB 000011e9: SLT 000011ea: ISZERO 000011eb: PUSH2 0x11f3 000011ee: JUMPI 000011ef: PUSH1 0x00 000011f1: DUP1 000011f2: REVERT 000011f3: JUMPDEST 000011f4: DUP5 000011f5: CALLDATALOAD 000011f6: SWAP4 000011f7: POP 000011f8: PUSH1 0x20 000011fa: DUP6 000011fb: ADD 000011fc: CALLDATALOAD 000011fd: SWAP3 000011fe: POP 000011ff: PUSH1 0x40 00001201: DUP6 00001202: ADD 00001203: CALLDATALOAD 00001204: PUSH2 0x120c 00001207: DUP2 00001208: PUSH2 0x11cf 0000120b: JUMP 0000120c: JUMPDEST 0000120d: SWAP4 0000120e: SWAP7 0000120f: SWAP3 00001210: SWAP6 00001211: POP 00001212: SWAP3 00001213: SWAP4 00001214: PUSH1 0x60 00001216: ADD 00001217: CALLDATALOAD 00001218: SWAP3 00001219: POP 0000121a: POP 0000121b: JUMP 0000121c: JUMPDEST 0000121d: DUP1 0000121e: CALLDATALOAD 0000121f: PUSH1 0x01 00001221: PUSH1 0x01 00001223: PUSH1 0xa0 00001225: SHL 00001226: SUB 00001227: DUP2 00001228: AND 00001229: DUP2 0000122a: EQ 0000122b: PUSH2 0x1233 0000122e: JUMPI 0000122f: PUSH1 0x00 00001231: DUP1 00001232: REVERT 00001233: JUMPDEST 00001234: SWAP2 00001235: SWAP1 00001236: POP 00001237: JUMP 00001238: JUMPDEST 00001239: PUSH1 0x00 0000123b: DUP1 0000123c: PUSH1 0x40 0000123e: DUP4 0000123f: DUP6 00001240: SUB 00001241: SLT 00001242: ISZERO 00001243: PUSH2 0x124b 00001246: JUMPI 00001247: PUSH1 0x00 00001249: DUP1 0000124a: REVERT 0000124b: JUMPDEST 0000124c: DUP3 0000124d: CALLDATALOAD 0000124e: SWAP2 0000124f: POP 00001250: PUSH2 0x125b 00001253: PUSH1 0x20 00001255: DUP5 00001256: ADD 00001257: PUSH2 0x121c 0000125a: JUMP 0000125b: JUMPDEST 0000125c: SWAP1 0000125d: POP 0000125e: SWAP3 0000125f: POP 00001260: SWAP3 00001261: SWAP1 00001262: POP 00001263: JUMP 00001264: JUMPDEST 00001265: PUSH1 0x00 00001267: PUSH1 0x20 00001269: DUP3 0000126a: DUP5 0000126b: SUB 0000126c: SLT 0000126d: ISZERO 0000126e: PUSH2 0x1276 00001271: JUMPI 00001272: PUSH1 0x00 00001274: DUP1 00001275: REVERT 00001276: JUMPDEST 00001277: PUSH2 0x0ff5 0000127a: DUP3 0000127b: PUSH2 0x121c 0000127e: JUMP 0000127f: JUMPDEST 00001280: PUSH1 0x00 00001282: PUSH1 0x20 00001284: DUP3 00001285: DUP5 00001286: SUB 00001287: SLT 00001288: ISZERO 00001289: PUSH2 0x1291 0000128c: JUMPI 0000128d: PUSH1 0x00 0000128f: DUP1 00001290: REVERT 00001291: JUMPDEST 00001292: POP 00001293: MLOAD 00001294: SWAP2 00001295: SWAP1 00001296: POP 00001297: JUMP 00001298: JUMPDEST 00001299: PUSH4 0x4e487b71 0000129e: PUSH1 0xe0 000012a0: SHL 000012a1: PUSH1 0x00 000012a3: MSTORE 000012a4: PUSH1 0x41 000012a6: PUSH1 0x04 000012a8: MSTORE 000012a9: PUSH1 0x24 000012ab: PUSH1 0x00 000012ad: REVERT 000012ae: JUMPDEST 000012af: PUSH4 0x4e487b71 000012b4: PUSH1 0xe0 000012b6: SHL 000012b7: PUSH1 0x00 000012b9: MSTORE 000012ba: PUSH1 0x32 000012bc: PUSH1 0x04 000012be: MSTORE 000012bf: PUSH1 0x24 000012c1: PUSH1 0x00 000012c3: REVERT 000012c4: JUMPDEST 000012c5: PUSH1 0x00 000012c7: DUP2 000012c8: MLOAD 000012c9: DUP1 000012ca: DUP5 000012cb: MSTORE 000012cc: PUSH1 0x20 000012ce: DUP5 000012cf: ADD 000012d0: SWAP4 000012d1: POP 000012d2: PUSH1 0x20 000012d4: DUP4 000012d5: ADD 000012d6: PUSH1 0x00 000012d8: JUMPDEST 000012d9: DUP3 000012da: DUP2 000012db: LT 000012dc: ISZERO 000012dd: PUSH2 0x12ff 000012e0: JUMPI 000012e1: DUP2 000012e2: MLOAD 000012e3: PUSH1 0x01 000012e5: PUSH1 0x01 000012e7: PUSH1 0xa0 000012e9: SHL 000012ea: SUB 000012eb: AND 000012ec: DUP7 000012ed: MSTORE 000012ee: PUSH1 0x20 000012f0: SWAP6 000012f1: DUP7 000012f2: ADD 000012f3: SWAP6 000012f4: SWAP1 000012f5: SWAP2 000012f6: ADD 000012f7: SWAP1 000012f8: PUSH1 0x01 000012fa: ADD 000012fb: PUSH2 0x12d8 000012fe: JUMP 000012ff: JUMPDEST 00001300: POP 00001301: SWAP4 00001302: SWAP5 00001303: SWAP4 00001304: POP 00001305: POP 00001306: POP 00001307: POP 00001308: JUMP 00001309: JUMPDEST 0000130a: DUP6 0000130b: DUP2 0000130c: MSTORE 0000130d: DUP5 0000130e: PUSH1 0x20 00001310: DUP3 00001311: ADD 00001312: MSTORE 00001313: PUSH1 0xa0 00001315: PUSH1 0x40 00001317: DUP3 00001318: ADD 00001319: MSTORE 0000131a: PUSH1 0x00 0000131c: PUSH2 0x1328 0000131f: PUSH1 0xa0 00001321: DUP4 00001322: ADD 00001323: DUP7 00001324: PUSH2 0x12c4 00001327: JUMP 00001328: JUMPDEST 00001329: PUSH1 0x01 0000132b: PUSH1 0x01 0000132d: PUSH1 0xa0 0000132f: SHL 00001330: SUB 00001331: SWAP5 00001332: SWAP1 00001333: SWAP5 00001334: AND 00001335: PUSH1 0x60 00001337: DUP4 00001338: ADD 00001339: MSTORE 0000133a: POP 0000133b: PUSH1 0x80 0000133d: ADD 0000133e: MSTORE 0000133f: SWAP4 00001340: SWAP3 00001341: POP 00001342: POP 00001343: POP 00001344: JUMP 00001345: JUMPDEST 00001346: PUSH1 0x00 00001348: PUSH1 0x20 0000134a: DUP3 0000134b: DUP5 0000134c: SUB 0000134d: SLT 0000134e: ISZERO 0000134f: PUSH2 0x1357 00001352: JUMPI 00001353: PUSH1 0x00 00001355: DUP1 00001356: REVERT 00001357: JUMPDEST 00001358: DUP2 00001359: MLOAD 0000135a: PUSH8 0xffffffffffffffff 00001363: DUP2 00001364: GT 00001365: ISZERO 00001366: PUSH2 0x136e 00001369: JUMPI 0000136a: PUSH1 0x00 0000136c: DUP1 0000136d: REVERT 0000136e: JUMPDEST 0000136f: DUP3 00001370: ADD 00001371: PUSH1 0x1f 00001373: DUP2 00001374: ADD 00001375: DUP5 00001376: SGT 00001377: PUSH2 0x137f 0000137a: JUMPI 0000137b: PUSH1 0x00 0000137d: DUP1 0000137e: REVERT 0000137f: JUMPDEST 00001380: DUP1 00001381: MLOAD 00001382: PUSH8 0xffffffffffffffff 0000138b: DUP2 0000138c: GT 0000138d: ISZERO 0000138e: PUSH2 0x1399 00001391: JUMPI 00001392: PUSH2 0x1399 00001395: PUSH2 0x1298 00001398: JUMP 00001399: JUMPDEST 0000139a: DUP1 0000139b: PUSH1 0x05 0000139d: SHL 0000139e: PUSH1 0x40 000013a0: MLOAD 000013a1: PUSH1 0x1f 000013a3: NOT 000013a4: PUSH1 0x3f 000013a6: DUP4 000013a7: ADD 000013a8: AND 000013a9: DUP2 000013aa: ADD 000013ab: DUP2 000013ac: DUP2 000013ad: LT 000013ae: PUSH8 0xffffffffffffffff 000013b7: DUP3 000013b8: GT 000013b9: OR 000013ba: ISZERO 000013bb: PUSH2 0x13c6 000013be: JUMPI 000013bf: PUSH2 0x13c6 000013c2: PUSH2 0x1298 000013c5: JUMP 000013c6: JUMPDEST 000013c7: PUSH1 0x40 000013c9: MSTORE 000013ca: SWAP2 000013cb: DUP3 000013cc: MSTORE 000013cd: PUSH1 0x20 000013cf: DUP2 000013d0: DUP5 000013d1: ADD 000013d2: DUP2 000013d3: ADD 000013d4: SWAP3 000013d5: SWAP1 000013d6: DUP2 000013d7: ADD 000013d8: DUP8 000013d9: DUP5 000013da: GT 000013db: ISZERO 000013dc: PUSH2 0x13e4 000013df: JUMPI 000013e0: PUSH1 0x00 000013e2: DUP1 000013e3: REVERT 000013e4: JUMPDEST 000013e5: PUSH1 0x20 000013e7: DUP6 000013e8: ADD 000013e9: SWAP5 000013ea: POP 000013eb: JUMPDEST 000013ec: DUP4 000013ed: DUP6 000013ee: LT 000013ef: ISZERO 000013f0: PUSH2 0x1407 000013f3: JUMPI 000013f4: DUP5 000013f5: MLOAD 000013f6: DUP1 000013f7: DUP3 000013f8: MSTORE 000013f9: PUSH1 0x20 000013fb: SWAP6 000013fc: DUP7 000013fd: ADD 000013fe: SWAP6 000013ff: SWAP1 00001400: SWAP4 00001401: POP 00001402: ADD 00001403: PUSH2 0x13eb 00001406: JUMP 00001407: JUMPDEST 00001408: POP 00001409: SWAP7 0000140a: SWAP6 0000140b: POP 0000140c: POP 0000140d: POP 0000140e: POP 0000140f: POP 00001410: POP 00001411: JUMP 00001412: JUMPDEST 00001413: PUSH4 0x4e487b71 00001418: PUSH1 0xe0 0000141a: SHL 0000141b: PUSH1 0x00 0000141d: MSTORE 0000141e: PUSH1 0x11 00001420: PUSH1 0x04 00001422: MSTORE 00001423: PUSH1 0x24 00001425: PUSH1 0x00 00001427: REVERT 00001428: JUMPDEST 00001429: DUP2 0000142a: DUP2 0000142b: SUB 0000142c: DUP2 0000142d: DUP2 0000142e: GT 0000142f: ISZERO 00001430: PUSH2 0x0419 00001433: JUMPI 00001434: PUSH2 0x0419 00001437: PUSH2 0x1412 0000143a: JUMP 0000143b: JUMPDEST 0000143c: DUP5 0000143d: DUP2 0000143e: MSTORE 0000143f: PUSH1 0x80 00001441: PUSH1 0x20 00001443: DUP3 00001444: ADD 00001445: MSTORE 00001446: PUSH1 0x00 00001448: PUSH2 0x1454 0000144b: PUSH1 0x80 0000144d: DUP4 0000144e: ADD 0000144f: DUP7 00001450: PUSH2 0x12c4 00001453: JUMP 00001454: JUMPDEST 00001455: PUSH1 0x01 00001457: PUSH1 0x01 00001459: PUSH1 0xa0 0000145b: SHL 0000145c: SUB 0000145d: SWAP5 0000145e: SWAP1 0000145f: SWAP5 00001460: AND 00001461: PUSH1 0x40 00001463: DUP4 00001464: ADD 00001465: MSTORE 00001466: POP 00001467: PUSH1 0x60 00001469: ADD 0000146a: MSTORE 0000146b: SWAP3 0000146c: SWAP2 0000146d: POP 0000146e: POP 0000146f: JUMP 00001470: JUMPDEST 00001471: PUSH1 0x00 00001473: JUMPDEST 00001474: DUP4 00001475: DUP2 00001476: LT 00001477: ISZERO 00001478: PUSH2 0x148b 0000147b: JUMPI 0000147c: DUP2 0000147d: DUP2 0000147e: ADD 0000147f: MLOAD 00001480: DUP4 00001481: DUP3 00001482: ADD 00001483: MSTORE 00001484: PUSH1 0x20 00001486: ADD 00001487: PUSH2 0x1473 0000148a: JUMP 0000148b: JUMPDEST 0000148c: POP 0000148d: POP 0000148e: PUSH1 0x00 00001490: SWAP2 00001491: ADD 00001492: MSTORE 00001493: JUMP 00001494: JUMPDEST 00001495: PUSH32 0x416363657373436f6e74726f6c3a206163636f756e7420000000000000000000 000014b6: DUP2 000014b7: MSTORE 000014b8: PUSH1 0x00 000014ba: DUP4 000014bb: MLOAD 000014bc: PUSH2 0x14cc 000014bf: DUP2 000014c0: PUSH1 0x17 000014c2: DUP6 000014c3: ADD 000014c4: PUSH1 0x20 000014c6: DUP9 000014c7: ADD 000014c8: PUSH2 0x1470 000014cb: JUMP 000014cc: JUMPDEST 000014cd: PUSH17 0x01034b99036b4b9b9b4b733903937b6329 000014df: PUSH1 0x7d 000014e1: SHL 000014e2: PUSH1 0x17 000014e4: SWAP2 000014e5: DUP5 000014e6: ADD 000014e7: SWAP2 000014e8: DUP3 000014e9: ADD 000014ea: MSTORE 000014eb: DUP4 000014ec: MLOAD 000014ed: PUSH2 0x14fd 000014f0: DUP2 000014f1: PUSH1 0x28 000014f3: DUP5 000014f4: ADD 000014f5: PUSH1 0x20 000014f7: DUP9 000014f8: ADD 000014f9: PUSH2 0x1470 000014fc: JUMP 000014fd: JUMPDEST 000014fe: ADD 000014ff: PUSH1 0x28 00001501: ADD 00001502: SWAP5 00001503: SWAP4 00001504: POP 00001505: POP 00001506: POP 00001507: POP 00001508: JUMP 00001509: JUMPDEST 0000150a: PUSH1 0x20 0000150c: DUP2 0000150d: MSTORE 0000150e: PUSH1 0x00 00001510: DUP3 00001511: MLOAD 00001512: DUP1 00001513: PUSH1 0x20 00001515: DUP5 00001516: ADD 00001517: MSTORE 00001518: PUSH2 0x1528 0000151b: DUP2 0000151c: PUSH1 0x40 0000151e: DUP6 0000151f: ADD 00001520: PUSH1 0x20 00001522: DUP8 00001523: ADD 00001524: PUSH2 0x1470 00001527: JUMP 00001528: JUMPDEST 00001529: PUSH1 0x1f 0000152b: ADD 0000152c: PUSH1 0x1f 0000152e: NOT 0000152f: AND 00001530: SWAP2 00001531: SWAP1 00001532: SWAP2 00001533: ADD 00001534: PUSH1 0x40 00001536: ADD 00001537: SWAP3 00001538: SWAP2 00001539: POP 0000153a: POP 0000153b: JUMP 0000153c: JUMPDEST 0000153d: PUSH1 0x00 0000153f: PUSH1 0x20 00001541: DUP3 00001542: DUP5 00001543: SUB 00001544: SLT 00001545: ISZERO 00001546: PUSH2 0x154e 00001549: JUMPI 0000154a: PUSH1 0x00 0000154c: DUP1 0000154d: REVERT 0000154e: JUMPDEST 0000154f: DUP2 00001550: MLOAD 00001551: PUSH2 0x0ff5 00001554: DUP2 00001555: PUSH2 0x11cf 00001558: JUMP 00001559: JUMPDEST 0000155a: DUP1 0000155b: DUP3 0000155c: MUL 0000155d: DUP2 0000155e: ISZERO 0000155f: DUP3 00001560: DUP3 00001561: DIV 00001562: DUP5 00001563: EQ 00001564: OR 00001565: PUSH2 0x0419 00001568: JUMPI 00001569: PUSH2 0x0419 0000156c: PUSH2 0x1412 0000156f: JUMP 00001570: JUMPDEST 00001571: DUP1 00001572: DUP3 00001573: ADD 00001574: DUP1 00001575: DUP3 00001576: GT 00001577: ISZERO 00001578: PUSH2 0x0419 0000157b: JUMPI 0000157c: PUSH2 0x0419 0000157f: PUSH2 0x1412 00001582: JUMP 00001583: JUMPDEST 00001584: PUSH1 0x00 00001586: DUP2 00001587: PUSH2 0x1592 0000158a: JUMPI 0000158b: PUSH2 0x1592 0000158e: PUSH2 0x1412 00001591: JUMP 00001592: JUMPDEST 00001593: POP 00001594: PUSH1 0x00 00001596: NOT 00001597: ADD 00001598: SWAP1 00001599: JUMP 0000159a: JUMPDEST 0000159b: PUSH1 0x00 0000159d: DUP3 0000159e: MLOAD 0000159f: PUSH2 0x15ac 000015a2: DUP2 000015a3: DUP5 000015a4: PUSH1 0x20 000015a6: DUP8 000015a7: ADD 000015a8: PUSH2 0x1470 000015ab: JUMP 000015ac: JUMPDEST 000015ad: SWAP2 000015ae: SWAP1 000015af: SWAP2 000015b0: ADD 000015b1: SWAP3 000015b2: SWAP2 000015b3: POP 000015b4: POP 000015b5: JUMP 000015b6: INVALID 000015b7: LOG2 000015b8: PUSH5 0x6970667358 000015be: UNKNOWN(0x22) 000015bf: SLT 000015c0: KECCAK256 000015c1: SHR 000015c2: UNKNOWN(0xC4) 000015c3: CREATE 000015c4: UNKNOWN(0x25) 000015c5: UNKNOWN(0xAE) 000015c6: UNKNOWN(0xA7) 000015c7: PUSH10 0x81268579ae06cdc546a1 000015d2: UNKNOWN(0xBF) 000015d3: UNKNOWN(0xBD) 000015d4: UNKNOWN(0xBF) 000015d5: SELFBALANCE 000015d6: UNKNOWN(0xC5) 000015d7: UNKNOWN(0xDB) 000015d8: SWAP4 000015d9: UNKNOWN(0xDF) 000015da: SIGNEXTEND 000015db: MSTORE8 000015dc: LOG1 000015dd: CALLVALUE 000015de: DIV 000015df: GAS 000015e0: DUP16 000015e1: PUSH5 0x736f6c6343 000015e7: STOP 000015e8: ADDMOD 000015e9: SHR 000015ea: STOP 000015eb: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xe66183863e38f4860aafdd2c42a40d186071d9d061ea56c5fca43696bc647e21
call_targets:
0x2cb343fad3a2221824e9e4137b636c31300a8bf0
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xe66183863e38f4860aafdd2c42a40d186071d9d061ea56c5fca43696bc647e21",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x2cb343fad3a2221824e9e4137b636c31300a8bf0"
],
"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": "0x9df806d6",
"selector": "0x9df806d6",
"calldata_variants": [
"0x9df806d6",
"0x9df806d60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa217fddf",
"selector": "0xa217fddf",
"calldata_variants": [
"0xa217fddf",
"0xa217fddf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xad5c4648",
"selector": "0xad5c4648",
"calldata_variants": [
"0xad5c4648",
"0xad5c46480000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xba8bca5a",
"selector": "0xba8bca5a",
"calldata_variants": [
"0xba8bca5a",
"0xba8bca5a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x75b238fc",
"selector": "0x75b238fc",
"calldata_variants": [
"0x75b238fc",
"0x75b238fc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7a01a1da",
"selector": "0x7a01a1da",
"calldata_variants": [
"0x7a01a1da",
"0x7a01a1da0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x89a30271",
"selector": "0x89a30271",
"calldata_variants": [
"0x89a30271",
"0x89a302710000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1659,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2547,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2980,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 4,
"guards_detected": [],
"untrusted_call_count": 4
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xe66183863e38f4860aafdd2c42a40d186071d9d061ea56c5fca43696bc647e21
call_targets:
0x2cb343fad3a2221824e9e4137b636c31300a8bf0
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xe66183863e38f4860aafdd2c42a40d186071d9d061ea56c5fca43696bc647e21",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x2cb343fad3a2221824e9e4137b636c31300a8bf0"
],
"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": "0x9df806d6",
"selector": "0x9df806d6",
"calldata_variants": [
"0x9df806d6",
"0x9df806d60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa217fddf",
"selector": "0xa217fddf",
"calldata_variants": [
"0xa217fddf",
"0xa217fddf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xad5c4648",
"selector": "0xad5c4648",
"calldata_variants": [
"0xad5c4648",
"0xad5c46480000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xba8bca5a",
"selector": "0xba8bca5a",
"calldata_variants": [
"0xba8bca5a",
"0xba8bca5a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x75b238fc",
"selector": "0x75b238fc",
"calldata_variants": [
"0x75b238fc",
"0x75b238fc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7a01a1da",
"selector": "0x7a01a1da",
"calldata_variants": [
"0x7a01a1da",
"0x7a01a1da0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x89a30271",
"selector": "0x89a30271",
"calldata_variants": [
"0x89a30271",
"0x89a302710000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1659,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2547,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2980,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 4,
"guards_detected": []
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x2d04e0b4d5ae5ccd61d484c78db4a4d674342219200728e0f7933792dd24ae25
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x2d04e0b4d5ae5ccd61d484c78db4a4d674342219200728e0f7933792dd24ae25",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x9df806d6",
"selector": "0x9df806d6",
"calldata_variants": [
"0x9df806d6",
"0x9df806d60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa217fddf",
"selector": "0xa217fddf",
"calldata_variants": [
"0xa217fddf",
"0xa217fddf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xad5c4648",
"selector": "0xad5c4648",
"calldata_variants": [
"0xad5c4648",
"0xad5c46480000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xba8bca5a",
"selector": "0xba8bca5a",
"calldata_variants": [
"0xba8bca5a",
"0xba8bca5a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x75b238fc",
"selector": "0x75b238fc",
"calldata_variants": [
"0x75b238fc",
"0x75b238fc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7a01a1da",
"selector": "0x7a01a1da",
"calldata_variants": [
"0x7a01a1da",
"0x7a01a1da0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x89a30271",
"selector": "0x89a30271",
"calldata_variants": [
"0x89a30271",
"0x89a302710000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 1,
"create2_count": 0
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 1,
"create2_count": 0
}
|