13782684-6c80-4a2d-abfa-a44ebe897c9f
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 |
|---|---|---|---|---|
| 31489 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 77560 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 77561 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 77562 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 77563 | capability.graph | complete | 1 / 3 | 1 week ago |
| 77564 | detector.run | complete | 1 / 3 | 1 week ago |
| 77565 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:996958] OpenAI Codex v0.77.0 (research preview)
[codex:996958] --------
[codex:996958] workdir: /tmp/codex-multi-s02w5tz7
[codex:996958] model: gpt-5.2-codex
[codex:996958] provider: openai
[codex:996958] approval: never
[codex:996958] sandbox: read-only
[codex:996958] reasoning effort: xhigh
[codex:996958] reasoning summaries: auto
[codex:996958] session id: 019b864f-9df0-7b70-89de-a374524bf80b
[codex:996958] --------
[codex:996958] user
[codex:996958] 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:996958]
[codex:996958] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:996958]
[codex:996958] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:996958] - Gas inefficiency, code quality, or best practices
[codex:996958] - Theoretical vulnerabilities without a clear extraction path
[codex:996958] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:996958] - Issues requiring social engineering or off-chain coordination
[codex:996958]
[codex:996958] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:996958] - CALL/DELEGATECALL with controllable destination or calldata
[codex:996958] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:996958] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:996958] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:996958] - External calls before state updates (reentrancy)
[codex:996958] - SELFDESTRUCT with controllable beneficiary
[codex:996958] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:996958]
[codex:996958] For each finding, you MUST explain:
[codex:996958] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:996958] 2. The concrete sequence of transactions to extract value
[codex:996958] 3. Why you believe this is exploitable (not just suspicious)
[codex:996958]
[codex:996958] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:996958] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:996958]
[codex:996958] Output MUST be valid JSON matching the provided schema.
[codex:996958] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:996958] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:996958] mcp startup: no servers
[codex:996958]
[codex:996958] thinking
[codex:996958] **Reviewing task instructions**
[codex:996958] exec
[codex:996958] /bin/bash -lc ls in /tmp/codex-multi-s02w5tz7 succeeded in 6ms:
[codex:996958] BYTECODE_BUNDLE.txt
[codex:996958] codex-output-schema.json
[codex:996958]
[codex:996958] thinking
[codex:996958] **Preparing to read file contents**
[codex:996958] exec
[codex:996958] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-s02w5tz7 succeeded in 5ms:
[codex:996958] Runtime bytecode bundle for best-effort auditing.
[codex:996958] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:996958]
[codex:996958] FILE: runtime_bytecode.hex
[codex:996958] 0x6080604052600436106100845760003560e01c80638da5cb5b116100565780638da5cb5b14610102578063982fb9d81461012f578063c81e25ab1461016f578063cdeb14851461019f578063f2fde38b146101bf57005b806346b0813b1461008d5780636c04204e146100ad578063715018a6146100cd5780637670d1d8146100e257005b3661008b57005b005b34801561009957600080fd5b5061008b6100a8366004610afd565b6101df565b3480156100b957600080fd5b5061008b6100c8366004610b95565b6102a8565b3480156100d957600080fd5b5061008b610593565b3480156100ee57600080fd5b5061008b6100fd366004610afd565b6105a7565b34801561010e57600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b34801561013b57600080fd5b5061015f61014a366004610c13565b60016020526000908152604090205460ff1681565b6040519015158152602001610126565b34801561017b57600080fd5b5061015f61018a366004610c37565b60026020526000908152604090205460ff1681565b3480156101ab57600080fd5b5061008b6101ba366004610c50565b61065f565b3480156101cb57600080fd5b5061008b6101da366004610c13565b6108e6565b6101e761095f565b600081511161023d5760405162461bcd60e51b815260206004820152601f60248201527f506c656173652070617373206174206c65617374206f6e652073656e6465720060448201526064015b60405180910390fd5b60005b81518110156102a457600180600084848151811061026057610260610cbd565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061029c81610cd3565b915050610240565b5050565b3360009081526001602052604090205460ff166103075760405162461bcd60e51b815260206004820152601d60248201527f43616c6c6572206973206e6f7420617070726f7665642073656e6465720000006044820152606401610234565b60008181526002602052604090205460ff161561035f5760405162461bcd60e51b815260206004820152601660248201527510985d18da081dd85cc8185b1c9958591e481cd95b9d60521b6044820152606401610234565b81518351146103805760405162461bcd60e51b815260040161023490610cfa565b60005b835181101561053957600080866001600160a01b031663a9059cbb60e01b8785815181106103b3576103b3610cbd565b60200260200101518786815181106103cd576103cd610cbd565b60209081029190910101516040516001600160a01b039092166024830152604482015260640160408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516104319190610d41565b6000604051808303816000865af19150503d806000811461046e576040519150601f19603f3d011682016040523d82523d6000602084013e610473565b606091505b5091509150816104bd5760405162461bcd60e51b8152602060048201526015602482015274131bddcb5b195d995b0818d85b1b0819985a5b1959605a1b6044820152606401610234565b80511561052457808060200190518101906104d89190610d70565b6105245760405162461bcd60e51b815260206004820152601f60248201527f4552433230206f7065726174696f6e20646964206e6f742073756363656564006044820152606401610234565b5050808061053190610cd3565b915050610383565b5060008181526002602052604090819020805460ff19166001179055517ff973a404f52ae16dd11a5d146523df4aacafc60aba31263f058c8d866f612795906105859083815260200190565b60405180910390a150505050565b61059b61095f565b6105a560006109b9565b565b6105af61095f565b60008151116106005760405162461bcd60e51b815260206004820152601f60248201527f506c656173652070617373206174206c65617374206f6e652073656e646572006044820152606401610234565b60005b81518110156102a4576001600083838151811061062257610622610cbd565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191690558061065781610cd3565b915050610603565b3360009081526001602052604090205460ff166106be5760405162461bcd60e51b815260206004820152601d60248201527f43616c6c6572206973206e6f7420617070726f7665642073656e6465720000006044820152606401610234565b60008181526002602052604090205460ff16156107125760405162461bcd60e51b815260206004820152601260248201527110985d18da08185b1c9958591e481d5cd95960721b6044820152606401610234565b60008351116107785760405162461bcd60e51b815260206004820152602c60248201527f506c656173652070617373206174206c65617374206f6e652064657374696e6160448201526b74696f6e206164647265737360a01b6064820152608401610234565b81518351146107995760405162461bcd60e51b815260040161023490610cfa565b60005b835181101561088d5760008482815181106107b9576107b9610cbd565b60200260200101516001600160a01b03168483815181106107dc576107dc610cbd565b602002602001015160405160006040518083038185875af1925050503d8060008114610824576040519150601f19603f3d011682016040523d82523d6000602084013e610829565b606091505b505090508061087a5760405162461bcd60e51b815260206004820152601e60248201527f5478207761732072656a65637465642062792064657374696e6174696f6e00006044820152606401610234565b508061088581610cd3565b91505061079c565b5060008181526002602052604090819020805460ff19166001179055517ff973a404f52ae16dd11a5d146523df4aacafc60aba31263f058c8d866f612795906108d99083815260200190565b60405180910390a1505050565b6108ee61095f565b6001600160a01b0381166109535760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610234565b61095c816109b9565b50565b6000546001600160a01b031633146105a55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610234565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610a4857610a48610a09565b604052919050565b600067ffffffffffffffff821115610a6a57610a6a610a09565b5060051b60200190565b6001600160a01b038116811461095c57600080fd5b600082601f830112610a9a57600080fd5b81356020610aaf610aaa83610a50565b610a1f565b82815260059290921b84018101918181019086841115610ace57600080fd5b8286015b84811015610af2578035610ae581610a74565b8352918301918301610ad2565b509695505050505050565b600060208284031215610b0f57600080fd5b813567ffffffffffffffff811115610b2657600080fd5b610b3284828501610a89565b949350505050565b600082601f830112610b4b57600080fd5b81356020610b5b610aaa83610a50565b82815260059290921b84018101918181019086841115610b7a57600080fd5b8286015b84811015610af25780358352918301918301610b7e565b60008060008060808587031215610bab57600080fd5b8435610bb681610a74565b9350602085013567ffffffffffffffff80821115610bd357600080fd5b610bdf88838901610a89565b94506040870135915080821115610bf557600080fd5b50610c0287828801610b3a565b949793965093946060013593505050565b600060208284031215610c2557600080fd5b8135610c3081610a74565b9392505050565b600060208284031215610c4957600080fd5b5035919050565b600080600060608486031215610c6557600080fd5b833567ffffffffffffffff80821115610c7d57600080fd5b610c8987838801610a89565b94506020860135915080821115610c9f57600080fd5b50610cac86828701610b3a565b925050604084013590509250925092565b634e487b7160e01b600052603260045260246000fd5b600060018201610cf357634e487b7160e01b600052601160045260246000fd5b5060010190565b60208082526027908201527f456163682064657374696e6174696f6e2073686f756c642068617665206f776e60408201526608185b5bdd5b9d60ca1b606082015260800190565b6000825160005b81811015610d625760208186018101518583015201610d48565b506000920191825250919050565b600060208284031215610d8257600080fd5b81518015158114610c3057600080fdfea2646970667358221220ab43ebd68ef99a626ac4c1c67e10bb8b547ac6228c955da5db2f47c2cc34fd3964736f6c63430008140033
[codex:996958]
[codex:996958] thinking
[codex:996958] **Examining EVM bytecode functions**
[codex:996958] exec
[codex:996958] /bin/bash -lc "python - <<'PY'
[codex:996958] import binascii
[codex:996958] s='10985d18da08185b1c9958591e481d5cd9596072'
[codex:996958] print(len(s)//2)
[codex:996958] print(bytes.fromhex(s))
[codex:996958] PY" in /tmp/codex-multi-s02w5tz7 succeeded in 18ms:
[codex:996958] 20
[codex:996958] b'\x10\x98]\x18\xda\x08\x18[\x1c\x99XY\x1eH\x1d\\\xd9Y`r'
[codex:996958]
[codex:996958] thinking
[codex:996958] **Analyzing hex and ASCII length discrepancies**
[codex:996958] exec
[codex:996958] /bin/bash -lc "python - <<'PY'
[codex:996958] import binascii
[codex:996958] s='10985d18da08185b1c9958591e481d5cd95960721b'
[codex:996958] print(len(s)//2)
[codex:996958] print(bytes.fromhex(s))
[codex:996958] PY" in /tmp/codex-multi-s02w5tz7 succeeded in 20ms:
[codex:996958] 21
[codex:996958] b'\x10\x98]\x18\xda\x08\x18[\x1c\x99XY\x1eH\x1d\\\xd9Y`r\x1b'
[codex:996958]
[codex:996958]
[codex:996958]
[codex:996958] thinking
[codex:996958] **Examining complex contract functions and mappings**
[codex:996958] thinking
[codex:996958] **Parsing function parameters and sender checks in detail**
[codex:996958]
[codex:996958] I’m tracing how the contract decodes function inputs, verifies approved senders via mapping keys, and ensures arrays match in length for batch sends. It looks like send functions require approved senders and check destinations but only once for all destinations, raising interesting questions about the exact whitelist logic.
[codex:996958] thinking
[codex:996958] **Analyzing destination whitelist checks and revert encoding**
[codex:996958]
[codex:996958] I’m examining how the contract approves senders and destinations, noting a potential mismatch where destinations may not be individually checked in batch sends. Also, I’m unpacking the complex bytecode patterns used to encode revert strings and error selectors, trying to understand their custom encoding scheme.
[codex:996958] exec
[codex:996958] /bin/bash -lc "python - <<'PY'
[codex:996958] val=0x461bcd
[codex:996958] res=val<<0xe5
[codex:996958] print(hex(res))
[codex:996958] # maybe take top 4 bytes?
[codex:996958] print(hex(res>>224))
[codex:996958] PY" in /tmp/codex-multi-s02w5tz7 succeeded in 17ms:
[codex:996958] 0x8c379a000000000000000000000000000000000000000000000000000000000
[codex:996958] 0x8c379a0
[codex:996958]
[codex:996958] thinking
[codex:996958] **Decoding Error(string) revert pattern**
[codex:996958] exec
[codex:996958] /bin/bash -lc "python - <<'PY'
[codex:996958] import re
[codex:996958] from binascii import unhexlify
[codex:996958]
[codex:996958] hexdata=open('BYTECODE_BUNDLE.txt').read()
[codex:996958] # extract runtime bytecode hex after 0x
[codex:996958] m=re.search(r'0x([0-9a-fA-F]+)', hexdata)
[codex:996958] hexstr=m.group(1)
[codex:996958] code=bytes.fromhex(hexstr)
[codex:996958] # find ascii strings of length >=4
[codex:996958] strings=[]
[codex:996958] cur=b''
[codex:996958] start=None
[codex:996958] for i,b in enumerate(code):
[codex:996958] if 32 <= b < 127:
[codex:996958] if start is None:
[codex:996958] start=i
[codex:996958] cur=bytes([b])
[codex:996958] else:
[codex:996958] cur+=bytes([b])
[codex:996958] else:
[codex:996958] if start is not None and len(cur)>=4:
[codex:996958] strings.append((start,cur))
[codex:996958] start=None
[codex:996958] cur=b''
[codex:996958] if start is not None and len(cur)>=4:
[codex:996958] strings.append((start,cur))
[codex:996958] for off,s in strings:
[codex:996958] print(hex(off), s)
[codex:996958] PY" in /tmp/codex-multi-s02w5tz7 succeeded in 25ms:
[codex:996958] 0x2 b'`@R`'
[codex:996958] 0x112 b'T`@Q`'
[codex:996958] 0x126 b'[`@Q'
[codex:996958] 0x14d b'` R`'
[codex:996958] 0x15e b'V[`@Q'
[codex:996958] 0x16d b'&V[4'
[codex:996958] 0x188 b'7V[`'
[codex:996958] 0x18d b'` R`'
[codex:996958] 0x1b8 b'PV[a'
[codex:996958] 0x1bd b'_V[4'
[codex:996958] 0x1e5 b'_V[`'
[codex:996958] 0x1ef b'=W`@QbF'
[codex:996958] 0x1fc b'R` `'
[codex:996958] 0x20c b'Please pass at least one sender'
[codex:996958] 0x234 b'[`@Q'
[codex:996958] 0x25f b'V[` '
[codex:996958] 0x2a2 b'@V[PPV[3`'
[codex:996958] 0x2b1 b'` R`@'
[codex:996958] 0x2bf b'W`@QbF'
[codex:996958] 0x2cb b'R` `'
[codex:996958]
[codex:996958] thinking
[codex:996958] **Analyzing extracted revert strings and contract logic**
[codex:996958] exec
[codex:996958] /bin/bash -lc "python - <<'PY'
[codex:996958] import re
[codex:996958] from binascii import unhexlify
[codex:996958]
[codex:996958] hexdata=open('BYTECODE_BUNDLE.txt').read()
[codex:996958] hexstr=re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:996958] code=bytes.fromhex(hexstr)
[codex:996958]
[codex:996958] # EVM opcode table
[codex:996958] opcodes={
[codex:996958] 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:996958] 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:996958] 0x20:'SHA3',
[codex:996958] 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:996958] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:996958] 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:996958] 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:996958] 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:996958] 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:996958] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:996958] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:996958] }
[codex:996958]
[codex:996958] # disassemble range around 0x2a8 and 0x65f
[codex:996958]
[codex:996958] def disasm(start, end):
[codex:996958] i=start
[codex:996958] while i<end:
[codex:996958] op=code[i]
[codex:996958] name=opcodes.get(op, f'UNKNOWN_{op:02x}')
[codex:996958] if 0x60 <= op <= 0x7f:
[codex:996958] n=op-0x5f
[codex:996958] data=code[i+1:i+1+n]
[codex:996958] print(f'{i:04x}: {name} 0x{data.hex()}')
[codex:996958] i+=1+n
[codex:996958] else:
[codex:996958] print(f'{i:04x}: {name}')
[codex:996958] i+=1
[codex:996958]
[codex:996958] print('--- disasm 0x2a8-0x3a0 ---')
[codex:996958] disasm(0x2a8,0x3a0)
[codex:996958] print('--- disasm 0x3a0-0x540 ---')
[codex:996958] disasm(0x3a0,0x540)
[codex:996958] print('--- disasm 0x65f-0x7a5 ---')
[codex:996958] disasm(0x65f,0x7a5)
[codex:996958] print('--- disasm 0x7a5-0x890 ---')
[codex:996958] disasm(0x7a5,0x890)
[codex:996958] PY" in /tmp/codex-multi-s02w5tz7 succeeded in 24ms:
[codex:996958] --- disasm 0x2a8-0x3a0 ---
[codex:996958] 02a8: JUMPDEST
[codex:996958] 02a9: CALLER
[codex:996958] 02aa: PUSH1 0x00
[codex:996958] 02ac: SWAP1
[codex:996958] 02ad: DUP2
[codex:996958] 02ae: MSTORE
[codex:996958] 02af: PUSH1 0x01
[codex:996958] 02b1: PUSH1 0x20
[codex:996958] 02b3: MSTORE
[codex:996958] 02b4: PUSH1 0x40
[codex:996958] 02b6: SWAP1
[codex:996958] 02b7: SHA3
[codex:996958] 02b8: SLOAD
[codex:996958] 02b9: PUSH1 0xff
[codex:996958] 02bb: AND
[codex:996958] 02bc: PUSH2 0x0307
[codex:996958] 02bf: JUMPI
[codex:996958] 02c0: PUSH1 0x40
[codex:996958] 02c2: MLOAD
[codex:996958]
[codex:996958] thinking
[codex:996958] **Extending disassembly range**
[codex:996958] exec
[codex:996958] /bin/bash -lc "python - <<'PY'
[codex:996958] import re
[codex:996958] hexdata=open('BYTECODE_BUNDLE.txt').read()
[codex:996958] hexstr=re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:996958] code=bytes.fromhex(hexstr)
[codex:996958]
[codex:996958] opcodes={
[codex:996958] 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:996958] 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:996958] 0x20:'SHA3',
[codex:996958] 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:996958] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:996958] 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:996958] 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:996958] 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:996958] 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:996958] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:996958] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:996958] }
[codex:996958]
[codex:996958] def disasm(start,end):
[codex:996958] i=start
[codex:996958] while i<end:
[codex:996958] op=code[i]
[codex:996958] name=opcodes.get(op, f'UNKNOWN_{op:02x}')
[codex:996958] if 0x60<=op<=0x7f:
[codex:996958] n=op-0x5f
[codex:996958] data=code[i+1:i+1+n]
[codex:996958] print(f'{i:04x}: {name} 0x{data.hex()}')
[codex:996958] i+=1+n
[codex:996958] else:
[codex:996958] print(f'{i:04x}: {name}')
[codex:996958] i+=1
[codex:996958]
[codex:996958] print('--- disasm 0x538-0x5b0 ---')
[codex:996958] disasm(0x538,0x5b0)
[codex:996958] print('--- disasm 0x88d-0x910 ---')
[codex:996958] disasm(0x88d,0x910)
[codex:996958] PY" in /tmp/codex-multi-s02w5tz7 succeeded in 27ms:
[codex:996958] --- disasm 0x538-0x5b0 ---
[codex:996958] 0538: JUMP
[codex:996958] 0539: JUMPDEST
[codex:996958] 053a: POP
[codex:996958] 053b: PUSH1 0x00
[codex:996958] 053d: DUP2
[codex:996958] 053e: DUP2
[codex:996958] 053f: MSTORE
[codex:996958] 0540: PUSH1 0x02
[codex:996958] 0542: PUSH1 0x20
[codex:996958] 0544: MSTORE
[codex:996958] 0545: PUSH1 0x40
[codex:996958] 0547: SWAP1
[codex:996958] 0548: DUP2
[codex:996958] 0549: SWAP1
[codex:996958] 054a: SHA3
[codex:996958] 054b: DUP1
[codex:996958] 054c: SLOAD
[codex:996958] 054d: PUSH1 0xff
[codex:996958] 054f: NOT
[codex:996958]
[codex:996958] thinking
[codex:996958] **Analyzing stack usage for mapping keys**
[codex:996958] exec
[codex:996958] /bin/bash -lc "python - <<'PY'
[codex:996958] import re
[codex:996958] hexdata=open('BYTECODE_BUNDLE.txt').read()
[codex:996958] hexstr=re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:996958] code=bytes.fromhex(hexstr)
[codex:996958]
[codex:996958] opcodes={
[codex:996958] 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:996958] 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:996958] 0x20:'SHA3',
[codex:996958] 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:996958] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:996958] 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:996958] 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:996958] 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:996958] 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:996958] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:996958] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:996958] }
[codex:996958]
[codex:996958] def disasm(start,end):
[codex:996958] i=start
[codex:996958] while i<end:
[codex:996958] op=code[i]
[codex:996958] name=opcodes.get(op, f'UNKNOWN_{op:02x}')
[codex:996958] if 0x60<=op<=0x7f:
[codex:996958] n=op-0x5f
[codex:996958] data=code[i+1:i+1+n]
[codex:996958] print(f'{i:04x}: {name} 0x{data.hex()}')
[codex:996958] i+=1+n
[codex:996958] else:
[codex:996958] print(f'{i:04x}: {name}')
[codex:996958] i+=1
[codex:996958]
[codex:996958] print('--- disasm 0xb95-0xc10 ---')
[codex:996958] disasm(0xb95,0xc10)
[codex:996958] PY" in /tmp/codex-multi-s02w5tz7 succeeded in 24ms:
[codex:996958] --- disasm 0xb95-0xc10 ---
[codex:996958] 0b95: JUMPDEST
[codex:996958] 0b96: PUSH1 0x00
[codex:996958] 0b98: DUP1
[codex:996958] 0b99: PUSH1 0x00
[codex:996958] 0b9b: DUP1
[codex:996958] 0b9c: PUSH1 0x80
[codex:996958] 0b9e: DUP6
[codex:996958] 0b9f: DUP8
[codex:996958] 0ba0: SUB
[codex:996958] 0ba1: SLT
[codex:996958] 0ba2: ISZERO
[codex:996958] 0ba3: PUSH2 0x0bab
[codex:996958] 0ba6: JUMPI
[codex:996958] 0ba7: PUSH1 0x00
[codex:996958] 0ba9: DUP1
[codex:996958] 0baa: REVERT
[codex:996958] 0bab: JUMPDEST
[codex:996958] 0bac: DUP5
[codex:996958] 0bad: CALLDATALOAD
[codex:996958]
[codex:996958] thinking
[codex:996958] **Continuing to review swap order**
[codex:996958] exec
[codex:996958] /bin/bash -lc "python - <<'PY'
[codex:996958] import re
[codex:996958] hexdata=open('BYTECODE_BUNDLE.txt').read()
[codex:996958] hexstr=re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:996958] code=bytes.fromhex(hexstr)
[codex:996958]
[codex:996958] opcodes={
[codex:996958] 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:996958] 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:996958] 0x20:'SHA3',
[codex:996958] 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:996958] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:996958] 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:996958] 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:996958] 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:996958] 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:996958] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:996958] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:996958] }
[codex:996958]
[codex:996958] def disasm(start,end):
[codex:996958] i=start
[codex:996958] while i<end:
[codex:996958] op=code[i]
[codex:996958] name=opcodes.get(op, f'UNKNOWN_{op:02x}')
[codex:996958] if 0x60<=op<=0x7f:
[codex:996958] n=op-0x5f
[codex:996958] data=code[i+1:i+1+n]
[codex:996958] print(f'{i:04x}: {name} 0x{data.hex()}')
[codex:996958] i+=1+n
[codex:996958] else:
[codex:996958] print(f'{i:04x}: {name}')
[codex:996958] i+=1
[codex:996958]
[codex:996958] print('--- disasm 0xc10-0xc40 ---')
[codex:996958] disasm(0xc10,0xc40)
[codex:996958] PY" in /tmp/codex-multi-s02w5tz7 succeeded in 23ms:
[codex:996958] --- disasm 0xc10-0xc40 ---
[codex:996958] 0c10: POP
[codex:996958] 0c11: POP
[codex:996958] 0c12: JUMP
[codex:996958] 0c13: JUMPDEST
[codex:996958] 0c14: PUSH1 0x00
[codex:996958] 0c16: PUSH1 0x20
[codex:996958] 0c18: DUP3
[codex:996958] 0c19: DUP5
[codex:996958] 0c1a: SUB
[codex:996958] 0c1b: SLT
[codex:996958] 0c1c: ISZERO
[codex:996958] 0c1d: PUSH2 0x0c25
[codex:996958] 0c20: JUMPI
[codex:996958] 0c21: PUSH1 0x00
[codex:996958] 0c23: DUP1
[codex:996958] 0c24: REVERT
[codex:996958] 0c25: JUMPDEST
[codex:996958] 0c26: DUP2
[codex:996958] 0c27: CALLDATALOAD
[codex:996958]
[codex:996958] thinking
[codex:996958] **Analyzing bytecode and exploit potential**
[codex:996958]
[codex:996958] I’m carefully tracing the bytecode, focusing on stack order and parameter usage to understand how input parameters map and how approval checks are implemented. By examining token transfer calls, array pointer handling, and owner-only restrictions, I deduce no obvious exploit path exists for unauthorized value extraction. I’m preparing a JSON report indicating no findings, based on the absence of unchecked delegatecalls, selfdestructs, or approval bypasses.
[codex:996958] codex
[codex:996958] {"no_findings":true,"summary":"No concrete, exploitable value-extraction paths found in the provided runtime bytecode; value-transfer functions (ERC20 transfers and ETH CALLs) are gated by an approved-sender mapping, and whitelist management is restricted by an owner check.","findings":[]}
[codex:996958] tokens used
[codex:996958] 56,687
[codex:996958] {"no_findings":true,"summary":"No concrete, exploitable value-extraction paths found in the provided runtime bytecode; value-transfer functions (ERC20 transfers and ETH CALLs) are gated by an approved-sender mapping, and whitelist management is restricted by an owner check.","findings":[]}
{
"codex": {
"ran_at": "2026-01-04T00:10:56.613852+00:00",
"returncode": 0
},
"summary": "No concrete, exploitable value-extraction paths found in the provided runtime bytecode; value-transfer functions (ERC20 transfers and ETH CALLs) are gated by an approved-sender mapping, and whitelist management is restricted by an owner check.",
"raw_final": {
"summary": "No concrete, exploitable value-extraction paths found in the provided runtime bytecode; value-transfer functions (ERC20 transfers and ETH CALLs) are gated by an approved-sender mapping, and whitelist management is restricted by an owner check.",
"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 0x0084 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x8da5cb5b 00000019: GT 0000001a: PUSH2 0x0056 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x8da5cb5b 00000024: EQ 00000025: PUSH2 0x0102 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0x982fb9d8 0000002f: EQ 00000030: PUSH2 0x012f 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xc81e25ab 0000003a: EQ 0000003b: PUSH2 0x016f 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xcdeb1485 00000045: EQ 00000046: PUSH2 0x019f 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf2fde38b 00000050: EQ 00000051: PUSH2 0x01bf 00000054: JUMPI 00000055: STOP 00000056: JUMPDEST 00000057: DUP1 00000058: PUSH4 0x46b0813b 0000005d: EQ 0000005e: PUSH2 0x008d 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0x6c04204e 00000068: EQ 00000069: PUSH2 0x00ad 0000006c: JUMPI 0000006d: DUP1 0000006e: PUSH4 0x715018a6 00000073: EQ 00000074: PUSH2 0x00cd 00000077: JUMPI 00000078: DUP1 00000079: PUSH4 0x7670d1d8 0000007e: EQ 0000007f: PUSH2 0x00e2 00000082: JUMPI 00000083: STOP 00000084: JUMPDEST 00000085: CALLDATASIZE 00000086: PUSH2 0x008b 00000089: JUMPI 0000008a: STOP 0000008b: JUMPDEST 0000008c: STOP 0000008d: JUMPDEST 0000008e: CALLVALUE 0000008f: DUP1 00000090: ISZERO 00000091: PUSH2 0x0099 00000094: JUMPI 00000095: PUSH1 0x00 00000097: DUP1 00000098: REVERT 00000099: JUMPDEST 0000009a: POP 0000009b: PUSH2 0x008b 0000009e: PUSH2 0x00a8 000000a1: CALLDATASIZE 000000a2: PUSH1 0x04 000000a4: PUSH2 0x0afd 000000a7: JUMP 000000a8: JUMPDEST 000000a9: PUSH2 0x01df 000000ac: JUMP 000000ad: JUMPDEST 000000ae: CALLVALUE 000000af: DUP1 000000b0: ISZERO 000000b1: PUSH2 0x00b9 000000b4: JUMPI 000000b5: PUSH1 0x00 000000b7: DUP1 000000b8: REVERT 000000b9: JUMPDEST 000000ba: POP 000000bb: PUSH2 0x008b 000000be: PUSH2 0x00c8 000000c1: CALLDATASIZE 000000c2: PUSH1 0x04 000000c4: PUSH2 0x0b95 000000c7: JUMP 000000c8: JUMPDEST 000000c9: PUSH2 0x02a8 000000cc: JUMP 000000cd: JUMPDEST 000000ce: CALLVALUE 000000cf: DUP1 000000d0: ISZERO 000000d1: PUSH2 0x00d9 000000d4: JUMPI 000000d5: PUSH1 0x00 000000d7: DUP1 000000d8: REVERT 000000d9: JUMPDEST 000000da: POP 000000db: PUSH2 0x008b 000000de: PUSH2 0x0593 000000e1: JUMP 000000e2: JUMPDEST 000000e3: CALLVALUE 000000e4: DUP1 000000e5: ISZERO 000000e6: PUSH2 0x00ee 000000e9: JUMPI 000000ea: PUSH1 0x00 000000ec: DUP1 000000ed: REVERT 000000ee: JUMPDEST 000000ef: POP 000000f0: PUSH2 0x008b 000000f3: PUSH2 0x00fd 000000f6: CALLDATASIZE 000000f7: PUSH1 0x04 000000f9: PUSH2 0x0afd 000000fc: JUMP 000000fd: JUMPDEST 000000fe: PUSH2 0x05a7 00000101: JUMP 00000102: JUMPDEST 00000103: CALLVALUE 00000104: DUP1 00000105: ISZERO 00000106: PUSH2 0x010e 00000109: JUMPI 0000010a: PUSH1 0x00 0000010c: DUP1 0000010d: REVERT 0000010e: JUMPDEST 0000010f: POP 00000110: PUSH1 0x00 00000112: SLOAD 00000113: PUSH1 0x40 00000115: MLOAD 00000116: PUSH1 0x01 00000118: PUSH1 0x01 0000011a: PUSH1 0xa0 0000011c: SHL 0000011d: SUB 0000011e: SWAP1 0000011f: SWAP2 00000120: AND 00000121: DUP2 00000122: MSTORE 00000123: PUSH1 0x20 00000125: ADD 00000126: JUMPDEST 00000127: PUSH1 0x40 00000129: MLOAD 0000012a: DUP1 0000012b: SWAP2 0000012c: SUB 0000012d: SWAP1 0000012e: RETURN 0000012f: JUMPDEST 00000130: CALLVALUE 00000131: DUP1 00000132: ISZERO 00000133: PUSH2 0x013b 00000136: JUMPI 00000137: PUSH1 0x00 00000139: DUP1 0000013a: REVERT 0000013b: JUMPDEST 0000013c: POP 0000013d: PUSH2 0x015f 00000140: PUSH2 0x014a 00000143: CALLDATASIZE 00000144: PUSH1 0x04 00000146: PUSH2 0x0c13 00000149: JUMP 0000014a: JUMPDEST 0000014b: PUSH1 0x01 0000014d: PUSH1 0x20 0000014f: MSTORE 00000150: PUSH1 0x00 00000152: SWAP1 00000153: DUP2 00000154: MSTORE 00000155: PUSH1 0x40 00000157: SWAP1 00000158: KECCAK256 00000159: SLOAD 0000015a: PUSH1 0xff 0000015c: AND 0000015d: DUP2 0000015e: JUMP 0000015f: JUMPDEST 00000160: PUSH1 0x40 00000162: MLOAD 00000163: SWAP1 00000164: ISZERO 00000165: ISZERO 00000166: DUP2 00000167: MSTORE 00000168: PUSH1 0x20 0000016a: ADD 0000016b: PUSH2 0x0126 0000016e: JUMP 0000016f: JUMPDEST 00000170: CALLVALUE 00000171: DUP1 00000172: ISZERO 00000173: PUSH2 0x017b 00000176: JUMPI 00000177: PUSH1 0x00 00000179: DUP1 0000017a: REVERT 0000017b: JUMPDEST 0000017c: POP 0000017d: PUSH2 0x015f 00000180: PUSH2 0x018a 00000183: CALLDATASIZE 00000184: PUSH1 0x04 00000186: PUSH2 0x0c37 00000189: JUMP 0000018a: JUMPDEST 0000018b: PUSH1 0x02 0000018d: PUSH1 0x20 0000018f: MSTORE 00000190: PUSH1 0x00 00000192: SWAP1 00000193: DUP2 00000194: MSTORE 00000195: PUSH1 0x40 00000197: SWAP1 00000198: KECCAK256 00000199: SLOAD 0000019a: PUSH1 0xff 0000019c: AND 0000019d: DUP2 0000019e: JUMP 0000019f: JUMPDEST 000001a0: CALLVALUE 000001a1: DUP1 000001a2: ISZERO 000001a3: PUSH2 0x01ab 000001a6: JUMPI 000001a7: PUSH1 0x00 000001a9: DUP1 000001aa: REVERT 000001ab: JUMPDEST 000001ac: POP 000001ad: PUSH2 0x008b 000001b0: PUSH2 0x01ba 000001b3: CALLDATASIZE 000001b4: PUSH1 0x04 000001b6: PUSH2 0x0c50 000001b9: JUMP 000001ba: JUMPDEST 000001bb: PUSH2 0x065f 000001be: JUMP 000001bf: JUMPDEST 000001c0: CALLVALUE 000001c1: DUP1 000001c2: ISZERO 000001c3: PUSH2 0x01cb 000001c6: JUMPI 000001c7: PUSH1 0x00 000001c9: DUP1 000001ca: REVERT 000001cb: JUMPDEST 000001cc: POP 000001cd: PUSH2 0x008b 000001d0: PUSH2 0x01da 000001d3: CALLDATASIZE 000001d4: PUSH1 0x04 000001d6: PUSH2 0x0c13 000001d9: JUMP 000001da: JUMPDEST 000001db: PUSH2 0x08e6 000001de: JUMP 000001df: JUMPDEST 000001e0: PUSH2 0x01e7 000001e3: PUSH2 0x095f 000001e6: JUMP 000001e7: JUMPDEST 000001e8: PUSH1 0x00 000001ea: DUP2 000001eb: MLOAD 000001ec: GT 000001ed: PUSH2 0x023d 000001f0: JUMPI 000001f1: PUSH1 0x40 000001f3: MLOAD 000001f4: PUSH3 0x461bcd 000001f8: PUSH1 0xe5 000001fa: SHL 000001fb: DUP2 000001fc: MSTORE 000001fd: PUSH1 0x20 000001ff: PUSH1 0x04 00000201: DUP3 00000202: ADD 00000203: MSTORE 00000204: PUSH1 0x1f 00000206: PUSH1 0x24 00000208: DUP3 00000209: ADD 0000020a: MSTORE 0000020b: PUSH32 0x506c656173652070617373206174206c65617374206f6e652073656e64657200 0000022c: PUSH1 0x44 0000022e: DUP3 0000022f: ADD 00000230: MSTORE 00000231: PUSH1 0x64 00000233: ADD 00000234: JUMPDEST 00000235: PUSH1 0x40 00000237: MLOAD 00000238: DUP1 00000239: SWAP2 0000023a: SUB 0000023b: SWAP1 0000023c: REVERT 0000023d: JUMPDEST 0000023e: PUSH1 0x00 00000240: JUMPDEST 00000241: DUP2 00000242: MLOAD 00000243: DUP2 00000244: LT 00000245: ISZERO 00000246: PUSH2 0x02a4 00000249: JUMPI 0000024a: PUSH1 0x01 0000024c: DUP1 0000024d: PUSH1 0x00 0000024f: DUP5 00000250: DUP5 00000251: DUP2 00000252: MLOAD 00000253: DUP2 00000254: LT 00000255: PUSH2 0x0260 00000258: JUMPI 00000259: PUSH2 0x0260 0000025c: PUSH2 0x0cbd 0000025f: JUMP 00000260: JUMPDEST 00000261: PUSH1 0x20 00000263: SWAP1 00000264: DUP2 00000265: MUL 00000266: SWAP2 00000267: SWAP1 00000268: SWAP2 00000269: ADD 0000026a: DUP2 0000026b: ADD 0000026c: MLOAD 0000026d: PUSH1 0x01 0000026f: PUSH1 0x01 00000271: PUSH1 0xa0 00000273: SHL 00000274: SUB 00000275: AND 00000276: DUP3 00000277: MSTORE 00000278: DUP2 00000279: ADD 0000027a: SWAP2 0000027b: SWAP1 0000027c: SWAP2 0000027d: MSTORE 0000027e: PUSH1 0x40 00000280: ADD 00000281: PUSH1 0x00 00000283: KECCAK256 00000284: DUP1 00000285: SLOAD 00000286: PUSH1 0xff 00000288: NOT 00000289: AND 0000028a: SWAP2 0000028b: ISZERO 0000028c: ISZERO 0000028d: SWAP2 0000028e: SWAP1 0000028f: SWAP2 00000290: OR 00000291: SWAP1 00000292: SSTORE 00000293: DUP1 00000294: PUSH2 0x029c 00000297: DUP2 00000298: PUSH2 0x0cd3 0000029b: JUMP 0000029c: JUMPDEST 0000029d: SWAP2 0000029e: POP 0000029f: POP 000002a0: PUSH2 0x0240 000002a3: JUMP 000002a4: JUMPDEST 000002a5: POP 000002a6: POP 000002a7: JUMP 000002a8: JUMPDEST 000002a9: CALLER 000002aa: PUSH1 0x00 000002ac: SWAP1 000002ad: DUP2 000002ae: MSTORE 000002af: PUSH1 0x01 000002b1: PUSH1 0x20 000002b3: MSTORE 000002b4: PUSH1 0x40 000002b6: SWAP1 000002b7: KECCAK256 000002b8: SLOAD 000002b9: PUSH1 0xff 000002bb: AND 000002bc: PUSH2 0x0307 000002bf: JUMPI 000002c0: PUSH1 0x40 000002c2: MLOAD 000002c3: PUSH3 0x461bcd 000002c7: PUSH1 0xe5 000002c9: SHL 000002ca: DUP2 000002cb: MSTORE 000002cc: PUSH1 0x20 000002ce: PUSH1 0x04 000002d0: DUP3 000002d1: ADD 000002d2: MSTORE 000002d3: PUSH1 0x1d 000002d5: PUSH1 0x24 000002d7: DUP3 000002d8: ADD 000002d9: MSTORE 000002da: PUSH32 0x43616c6c6572206973206e6f7420617070726f7665642073656e646572000000 000002fb: PUSH1 0x44 000002fd: DUP3 000002fe: ADD 000002ff: MSTORE 00000300: PUSH1 0x64 00000302: ADD 00000303: PUSH2 0x0234 00000306: JUMP 00000307: JUMPDEST 00000308: PUSH1 0x00 0000030a: DUP2 0000030b: DUP2 0000030c: MSTORE 0000030d: PUSH1 0x02 0000030f: PUSH1 0x20 00000311: MSTORE 00000312: PUSH1 0x40 00000314: SWAP1 00000315: KECCAK256 00000316: SLOAD 00000317: PUSH1 0xff 00000319: AND 0000031a: ISZERO 0000031b: PUSH2 0x035f 0000031e: JUMPI 0000031f: PUSH1 0x40 00000321: MLOAD 00000322: PUSH3 0x461bcd 00000326: PUSH1 0xe5 00000328: SHL 00000329: DUP2 0000032a: MSTORE 0000032b: PUSH1 0x20 0000032d: PUSH1 0x04 0000032f: DUP3 00000330: ADD 00000331: MSTORE 00000332: PUSH1 0x16 00000334: PUSH1 0x24 00000336: DUP3 00000337: ADD 00000338: MSTORE 00000339: PUSH22 0x10985d18da081dd85cc8185b1c9958591e481cd95b9d 00000350: PUSH1 0x52 00000352: SHL 00000353: PUSH1 0x44 00000355: DUP3 00000356: ADD 00000357: MSTORE 00000358: PUSH1 0x64 0000035a: ADD 0000035b: PUSH2 0x0234 0000035e: JUMP 0000035f: JUMPDEST 00000360: DUP2 00000361: MLOAD 00000362: DUP4 00000363: MLOAD 00000364: EQ 00000365: PUSH2 0x0380 00000368: JUMPI 00000369: PUSH1 0x40 0000036b: MLOAD 0000036c: PUSH3 0x461bcd 00000370: PUSH1 0xe5 00000372: SHL 00000373: DUP2 00000374: MSTORE 00000375: PUSH1 0x04 00000377: ADD 00000378: PUSH2 0x0234 0000037b: SWAP1 0000037c: PUSH2 0x0cfa 0000037f: JUMP 00000380: JUMPDEST 00000381: PUSH1 0x00 00000383: JUMPDEST 00000384: DUP4 00000385: MLOAD 00000386: DUP2 00000387: LT 00000388: ISZERO 00000389: PUSH2 0x0539 0000038c: JUMPI 0000038d: PUSH1 0x00 0000038f: DUP1 00000390: DUP7 00000391: PUSH1 0x01 00000393: PUSH1 0x01 00000395: PUSH1 0xa0 00000397: SHL 00000398: SUB 00000399: AND 0000039a: PUSH4 0xa9059cbb 0000039f: PUSH1 0xe0 000003a1: SHL 000003a2: DUP8 000003a3: DUP6 000003a4: DUP2 000003a5: MLOAD 000003a6: DUP2 000003a7: LT 000003a8: PUSH2 0x03b3 000003ab: JUMPI 000003ac: PUSH2 0x03b3 000003af: PUSH2 0x0cbd 000003b2: JUMP 000003b3: JUMPDEST 000003b4: PUSH1 0x20 000003b6: MUL 000003b7: PUSH1 0x20 000003b9: ADD 000003ba: ADD 000003bb: MLOAD 000003bc: DUP8 000003bd: DUP7 000003be: DUP2 000003bf: MLOAD 000003c0: DUP2 000003c1: LT 000003c2: PUSH2 0x03cd 000003c5: JUMPI 000003c6: PUSH2 0x03cd 000003c9: PUSH2 0x0cbd 000003cc: JUMP 000003cd: JUMPDEST 000003ce: PUSH1 0x20 000003d0: SWAP1 000003d1: DUP2 000003d2: MUL 000003d3: SWAP2 000003d4: SWAP1 000003d5: SWAP2 000003d6: ADD 000003d7: ADD 000003d8: MLOAD 000003d9: PUSH1 0x40 000003db: MLOAD 000003dc: PUSH1 0x01 000003de: PUSH1 0x01 000003e0: PUSH1 0xa0 000003e2: SHL 000003e3: SUB 000003e4: SWAP1 000003e5: SWAP3 000003e6: AND 000003e7: PUSH1 0x24 000003e9: DUP4 000003ea: ADD 000003eb: MSTORE 000003ec: PUSH1 0x44 000003ee: DUP3 000003ef: ADD 000003f0: MSTORE 000003f1: PUSH1 0x64 000003f3: ADD 000003f4: PUSH1 0x40 000003f6: DUP1 000003f7: MLOAD 000003f8: PUSH1 0x1f 000003fa: NOT 000003fb: DUP2 000003fc: DUP5 000003fd: SUB 000003fe: ADD 000003ff: DUP2 00000400: MSTORE 00000401: SWAP2 00000402: DUP2 00000403: MSTORE 00000404: PUSH1 0x20 00000406: DUP3 00000407: ADD 00000408: DUP1 00000409: MLOAD 0000040a: PUSH1 0x01 0000040c: PUSH1 0x01 0000040e: PUSH1 0xe0 00000410: SHL 00000411: SUB 00000412: AND 00000413: PUSH1 0x01 00000415: PUSH1 0x01 00000417: PUSH1 0xe0 00000419: SHL 0000041a: SUB 0000041b: NOT 0000041c: SWAP1 0000041d: SWAP5 0000041e: AND 0000041f: SWAP4 00000420: SWAP1 00000421: SWAP4 00000422: OR 00000423: SWAP1 00000424: SWAP3 00000425: MSTORE 00000426: SWAP1 00000427: MLOAD 00000428: PUSH2 0x0431 0000042b: SWAP2 0000042c: SWAP1 0000042d: PUSH2 0x0d41 00000430: JUMP 00000431: JUMPDEST 00000432: PUSH1 0x00 00000434: PUSH1 0x40 00000436: MLOAD 00000437: DUP1 00000438: DUP4 00000439: SUB 0000043a: DUP2 0000043b: PUSH1 0x00 0000043d: DUP7 0000043e: GAS 0000043f: CALL 00000440: SWAP2 00000441: POP 00000442: POP 00000443: RETURNDATASIZE 00000444: DUP1 00000445: PUSH1 0x00 00000447: DUP2 00000448: EQ 00000449: PUSH2 0x046e 0000044c: JUMPI 0000044d: PUSH1 0x40 0000044f: MLOAD 00000450: SWAP2 00000451: POP 00000452: PUSH1 0x1f 00000454: NOT 00000455: PUSH1 0x3f 00000457: RETURNDATASIZE 00000458: ADD 00000459: AND 0000045a: DUP3 0000045b: ADD 0000045c: PUSH1 0x40 0000045e: MSTORE 0000045f: RETURNDATASIZE 00000460: DUP3 00000461: MSTORE 00000462: RETURNDATASIZE 00000463: PUSH1 0x00 00000465: PUSH1 0x20 00000467: DUP5 00000468: ADD 00000469: RETURNDATACOPY 0000046a: PUSH2 0x0473 0000046d: JUMP 0000046e: JUMPDEST 0000046f: PUSH1 0x60 00000471: SWAP2 00000472: POP 00000473: JUMPDEST 00000474: POP 00000475: SWAP2 00000476: POP 00000477: SWAP2 00000478: POP 00000479: DUP2 0000047a: PUSH2 0x04bd 0000047d: JUMPI 0000047e: PUSH1 0x40 00000480: MLOAD 00000481: PUSH3 0x461bcd 00000485: PUSH1 0xe5 00000487: SHL 00000488: DUP2 00000489: MSTORE 0000048a: PUSH1 0x20 0000048c: PUSH1 0x04 0000048e: DUP3 0000048f: ADD 00000490: MSTORE 00000491: PUSH1 0x15 00000493: PUSH1 0x24 00000495: DUP3 00000496: ADD 00000497: MSTORE 00000498: PUSH21 0x131bddcb5b195d995b0818d85b1b0819985a5b1959 000004ae: PUSH1 0x5a 000004b0: SHL 000004b1: PUSH1 0x44 000004b3: DUP3 000004b4: ADD 000004b5: MSTORE 000004b6: PUSH1 0x64 000004b8: ADD 000004b9: PUSH2 0x0234 000004bc: JUMP 000004bd: JUMPDEST 000004be: DUP1 000004bf: MLOAD 000004c0: ISZERO 000004c1: PUSH2 0x0524 000004c4: JUMPI 000004c5: DUP1 000004c6: DUP1 000004c7: PUSH1 0x20 000004c9: ADD 000004ca: SWAP1 000004cb: MLOAD 000004cc: DUP2 000004cd: ADD 000004ce: SWAP1 000004cf: PUSH2 0x04d8 000004d2: SWAP2 000004d3: SWAP1 000004d4: PUSH2 0x0d70 000004d7: JUMP 000004d8: JUMPDEST 000004d9: PUSH2 0x0524 000004dc: JUMPI 000004dd: PUSH1 0x40 000004df: MLOAD 000004e0: PUSH3 0x461bcd 000004e4: PUSH1 0xe5 000004e6: SHL 000004e7: DUP2 000004e8: MSTORE 000004e9: PUSH1 0x20 000004eb: PUSH1 0x04 000004ed: DUP3 000004ee: ADD 000004ef: MSTORE 000004f0: PUSH1 0x1f 000004f2: PUSH1 0x24 000004f4: DUP3 000004f5: ADD 000004f6: MSTORE 000004f7: PUSH32 0x4552433230206f7065726174696f6e20646964206e6f74207375636365656400 00000518: PUSH1 0x44 0000051a: DUP3 0000051b: ADD 0000051c: MSTORE 0000051d: PUSH1 0x64 0000051f: ADD 00000520: PUSH2 0x0234 00000523: JUMP 00000524: JUMPDEST 00000525: POP 00000526: POP 00000527: DUP1 00000528: DUP1 00000529: PUSH2 0x0531 0000052c: SWAP1 0000052d: PUSH2 0x0cd3 00000530: JUMP 00000531: JUMPDEST 00000532: SWAP2 00000533: POP 00000534: POP 00000535: PUSH2 0x0383 00000538: JUMP 00000539: JUMPDEST 0000053a: POP 0000053b: PUSH1 0x00 0000053d: DUP2 0000053e: DUP2 0000053f: MSTORE 00000540: PUSH1 0x02 00000542: PUSH1 0x20 00000544: MSTORE 00000545: PUSH1 0x40 00000547: SWAP1 00000548: DUP2 00000549: SWAP1 0000054a: KECCAK256 0000054b: DUP1 0000054c: SLOAD 0000054d: PUSH1 0xff 0000054f: NOT 00000550: AND 00000551: PUSH1 0x01 00000553: OR 00000554: SWAP1 00000555: SSTORE 00000556: MLOAD 00000557: PUSH32 0xf973a404f52ae16dd11a5d146523df4aacafc60aba31263f058c8d866f612795 00000578: SWAP1 00000579: PUSH2 0x0585 0000057c: SWAP1 0000057d: DUP4 0000057e: DUP2 0000057f: MSTORE 00000580: PUSH1 0x20 00000582: ADD 00000583: SWAP1 00000584: JUMP 00000585: JUMPDEST 00000586: PUSH1 0x40 00000588: MLOAD 00000589: DUP1 0000058a: SWAP2 0000058b: SUB 0000058c: SWAP1 0000058d: LOG1 0000058e: POP 0000058f: POP 00000590: POP 00000591: POP 00000592: JUMP 00000593: JUMPDEST 00000594: PUSH2 0x059b 00000597: PUSH2 0x095f 0000059a: JUMP 0000059b: JUMPDEST 0000059c: PUSH2 0x05a5 0000059f: PUSH1 0x00 000005a1: PUSH2 0x09b9 000005a4: JUMP 000005a5: JUMPDEST 000005a6: JUMP 000005a7: JUMPDEST 000005a8: PUSH2 0x05af 000005ab: PUSH2 0x095f 000005ae: JUMP 000005af: JUMPDEST 000005b0: PUSH1 0x00 000005b2: DUP2 000005b3: MLOAD 000005b4: GT 000005b5: PUSH2 0x0600 000005b8: JUMPI 000005b9: PUSH1 0x40 000005bb: MLOAD 000005bc: PUSH3 0x461bcd 000005c0: PUSH1 0xe5 000005c2: SHL 000005c3: DUP2 000005c4: MSTORE 000005c5: PUSH1 0x20 000005c7: PUSH1 0x04 000005c9: DUP3 000005ca: ADD 000005cb: MSTORE 000005cc: PUSH1 0x1f 000005ce: PUSH1 0x24 000005d0: DUP3 000005d1: ADD 000005d2: MSTORE 000005d3: PUSH32 0x506c656173652070617373206174206c65617374206f6e652073656e64657200 000005f4: PUSH1 0x44 000005f6: DUP3 000005f7: ADD 000005f8: MSTORE 000005f9: PUSH1 0x64 000005fb: ADD 000005fc: PUSH2 0x0234 000005ff: JUMP 00000600: JUMPDEST 00000601: PUSH1 0x00 00000603: JUMPDEST 00000604: DUP2 00000605: MLOAD 00000606: DUP2 00000607: LT 00000608: ISZERO 00000609: PUSH2 0x02a4 0000060c: JUMPI 0000060d: PUSH1 0x01 0000060f: PUSH1 0x00 00000611: DUP4 00000612: DUP4 00000613: DUP2 00000614: MLOAD 00000615: DUP2 00000616: LT 00000617: PUSH2 0x0622 0000061a: JUMPI 0000061b: PUSH2 0x0622 0000061e: PUSH2 0x0cbd 00000621: JUMP 00000622: JUMPDEST 00000623: PUSH1 0x20 00000625: SWAP1 00000626: DUP2 00000627: MUL 00000628: SWAP2 00000629: SWAP1 0000062a: SWAP2 0000062b: ADD 0000062c: DUP2 0000062d: ADD 0000062e: MLOAD 0000062f: PUSH1 0x01 00000631: PUSH1 0x01 00000633: PUSH1 0xa0 00000635: SHL 00000636: SUB 00000637: AND 00000638: DUP3 00000639: MSTORE 0000063a: DUP2 0000063b: ADD 0000063c: SWAP2 0000063d: SWAP1 0000063e: SWAP2 0000063f: MSTORE 00000640: PUSH1 0x40 00000642: ADD 00000643: PUSH1 0x00 00000645: KECCAK256 00000646: DUP1 00000647: SLOAD 00000648: PUSH1 0xff 0000064a: NOT 0000064b: AND 0000064c: SWAP1 0000064d: SSTORE 0000064e: DUP1 0000064f: PUSH2 0x0657 00000652: DUP2 00000653: PUSH2 0x0cd3 00000656: JUMP 00000657: JUMPDEST 00000658: SWAP2 00000659: POP 0000065a: POP 0000065b: PUSH2 0x0603 0000065e: JUMP 0000065f: JUMPDEST 00000660: CALLER 00000661: PUSH1 0x00 00000663: SWAP1 00000664: DUP2 00000665: MSTORE 00000666: PUSH1 0x01 00000668: PUSH1 0x20 0000066a: MSTORE 0000066b: PUSH1 0x40 0000066d: SWAP1 0000066e: KECCAK256 0000066f: SLOAD 00000670: PUSH1 0xff 00000672: AND 00000673: PUSH2 0x06be 00000676: JUMPI 00000677: PUSH1 0x40 00000679: MLOAD 0000067a: PUSH3 0x461bcd 0000067e: PUSH1 0xe5 00000680: SHL 00000681: DUP2 00000682: MSTORE 00000683: PUSH1 0x20 00000685: PUSH1 0x04 00000687: DUP3 00000688: ADD 00000689: MSTORE 0000068a: PUSH1 0x1d 0000068c: PUSH1 0x24 0000068e: DUP3 0000068f: ADD 00000690: MSTORE 00000691: PUSH32 0x43616c6c6572206973206e6f7420617070726f7665642073656e646572000000 000006b2: PUSH1 0x44 000006b4: DUP3 000006b5: ADD 000006b6: MSTORE 000006b7: PUSH1 0x64 000006b9: ADD 000006ba: PUSH2 0x0234 000006bd: JUMP 000006be: JUMPDEST 000006bf: PUSH1 0x00 000006c1: DUP2 000006c2: DUP2 000006c3: MSTORE 000006c4: PUSH1 0x02 000006c6: PUSH1 0x20 000006c8: MSTORE 000006c9: PUSH1 0x40 000006cb: SWAP1 000006cc: KECCAK256 000006cd: SLOAD 000006ce: PUSH1 0xff 000006d0: AND 000006d1: ISZERO 000006d2: PUSH2 0x0712 000006d5: JUMPI 000006d6: PUSH1 0x40 000006d8: MLOAD 000006d9: PUSH3 0x461bcd 000006dd: PUSH1 0xe5 000006df: SHL 000006e0: DUP2 000006e1: MSTORE 000006e2: PUSH1 0x20 000006e4: PUSH1 0x04 000006e6: DUP3 000006e7: ADD 000006e8: MSTORE 000006e9: PUSH1 0x12 000006eb: PUSH1 0x24 000006ed: DUP3 000006ee: ADD 000006ef: MSTORE 000006f0: PUSH18 0x10985d18da08185b1c9958591e481d5cd959 00000703: PUSH1 0x72 00000705: SHL 00000706: PUSH1 0x44 00000708: DUP3 00000709: ADD 0000070a: MSTORE 0000070b: PUSH1 0x64 0000070d: ADD 0000070e: PUSH2 0x0234 00000711: JUMP 00000712: JUMPDEST 00000713: PUSH1 0x00 00000715: DUP4 00000716: MLOAD 00000717: GT 00000718: PUSH2 0x0778 0000071b: JUMPI 0000071c: PUSH1 0x40 0000071e: MLOAD 0000071f: PUSH3 0x461bcd 00000723: PUSH1 0xe5 00000725: SHL 00000726: DUP2 00000727: MSTORE 00000728: PUSH1 0x20 0000072a: PUSH1 0x04 0000072c: DUP3 0000072d: ADD 0000072e: MSTORE 0000072f: PUSH1 0x2c 00000731: PUSH1 0x24 00000733: DUP3 00000734: ADD 00000735: MSTORE 00000736: PUSH32 0x506c656173652070617373206174206c65617374206f6e652064657374696e61 00000757: PUSH1 0x44 00000759: DUP3 0000075a: ADD 0000075b: MSTORE 0000075c: PUSH12 0x74696f6e2061646472657373 00000769: PUSH1 0xa0 0000076b: SHL 0000076c: PUSH1 0x64 0000076e: DUP3 0000076f: ADD 00000770: MSTORE 00000771: PUSH1 0x84 00000773: ADD 00000774: PUSH2 0x0234 00000777: JUMP 00000778: JUMPDEST 00000779: DUP2 0000077a: MLOAD 0000077b: DUP4 0000077c: MLOAD 0000077d: EQ 0000077e: PUSH2 0x0799 00000781: JUMPI 00000782: PUSH1 0x40 00000784: MLOAD 00000785: PUSH3 0x461bcd 00000789: PUSH1 0xe5 0000078b: SHL 0000078c: DUP2 0000078d: MSTORE 0000078e: PUSH1 0x04 00000790: ADD 00000791: PUSH2 0x0234 00000794: SWAP1 00000795: PUSH2 0x0cfa 00000798: JUMP 00000799: JUMPDEST 0000079a: PUSH1 0x00 0000079c: JUMPDEST 0000079d: DUP4 0000079e: MLOAD 0000079f: DUP2 000007a0: LT 000007a1: ISZERO 000007a2: PUSH2 0x088d 000007a5: JUMPI 000007a6: PUSH1 0x00 000007a8: DUP5 000007a9: DUP3 000007aa: DUP2 000007ab: MLOAD 000007ac: DUP2 000007ad: LT 000007ae: PUSH2 0x07b9 000007b1: JUMPI 000007b2: PUSH2 0x07b9 000007b5: PUSH2 0x0cbd 000007b8: JUMP 000007b9: JUMPDEST 000007ba: PUSH1 0x20 000007bc: MUL 000007bd: PUSH1 0x20 000007bf: ADD 000007c0: ADD 000007c1: MLOAD 000007c2: PUSH1 0x01 000007c4: PUSH1 0x01 000007c6: PUSH1 0xa0 000007c8: SHL 000007c9: SUB 000007ca: AND 000007cb: DUP5 000007cc: DUP4 000007cd: DUP2 000007ce: MLOAD 000007cf: DUP2 000007d0: LT 000007d1: PUSH2 0x07dc 000007d4: JUMPI 000007d5: PUSH2 0x07dc 000007d8: PUSH2 0x0cbd 000007db: JUMP 000007dc: JUMPDEST 000007dd: PUSH1 0x20 000007df: MUL 000007e0: PUSH1 0x20 000007e2: ADD 000007e3: ADD 000007e4: MLOAD 000007e5: PUSH1 0x40 000007e7: MLOAD 000007e8: PUSH1 0x00 000007ea: PUSH1 0x40 000007ec: MLOAD 000007ed: DUP1 000007ee: DUP4 000007ef: SUB 000007f0: DUP2 000007f1: DUP6 000007f2: DUP8 000007f3: GAS 000007f4: CALL 000007f5: SWAP3 000007f6: POP 000007f7: POP 000007f8: POP 000007f9: RETURNDATASIZE 000007fa: DUP1 000007fb: PUSH1 0x00 000007fd: DUP2 000007fe: EQ 000007ff: PUSH2 0x0824 00000802: JUMPI 00000803: PUSH1 0x40 00000805: MLOAD 00000806: SWAP2 00000807: POP 00000808: PUSH1 0x1f 0000080a: NOT 0000080b: PUSH1 0x3f 0000080d: RETURNDATASIZE 0000080e: ADD 0000080f: AND 00000810: DUP3 00000811: ADD 00000812: PUSH1 0x40 00000814: MSTORE 00000815: RETURNDATASIZE 00000816: DUP3 00000817: MSTORE 00000818: RETURNDATASIZE 00000819: PUSH1 0x00 0000081b: PUSH1 0x20 0000081d: DUP5 0000081e: ADD 0000081f: RETURNDATACOPY 00000820: PUSH2 0x0829 00000823: JUMP 00000824: JUMPDEST 00000825: PUSH1 0x60 00000827: SWAP2 00000828: POP 00000829: JUMPDEST 0000082a: POP 0000082b: POP 0000082c: SWAP1 0000082d: POP 0000082e: DUP1 0000082f: PUSH2 0x087a 00000832: JUMPI 00000833: PUSH1 0x40 00000835: MLOAD 00000836: PUSH3 0x461bcd 0000083a: PUSH1 0xe5 0000083c: SHL 0000083d: DUP2 0000083e: MSTORE 0000083f: PUSH1 0x20 00000841: PUSH1 0x04 00000843: DUP3 00000844: ADD 00000845: MSTORE 00000846: PUSH1 0x1e 00000848: PUSH1 0x24 0000084a: DUP3 0000084b: ADD 0000084c: MSTORE 0000084d: PUSH32 0x5478207761732072656a65637465642062792064657374696e6174696f6e0000 0000086e: PUSH1 0x44 00000870: DUP3 00000871: ADD 00000872: MSTORE 00000873: PUSH1 0x64 00000875: ADD 00000876: PUSH2 0x0234 00000879: JUMP 0000087a: JUMPDEST 0000087b: POP 0000087c: DUP1 0000087d: PUSH2 0x0885 00000880: DUP2 00000881: PUSH2 0x0cd3 00000884: JUMP 00000885: JUMPDEST 00000886: SWAP2 00000887: POP 00000888: POP 00000889: PUSH2 0x079c 0000088c: JUMP 0000088d: JUMPDEST 0000088e: POP 0000088f: PUSH1 0x00 00000891: DUP2 00000892: DUP2 00000893: MSTORE 00000894: PUSH1 0x02 00000896: PUSH1 0x20 00000898: MSTORE 00000899: PUSH1 0x40 0000089b: SWAP1 0000089c: DUP2 0000089d: SWAP1 0000089e: KECCAK256 0000089f: DUP1 000008a0: SLOAD 000008a1: PUSH1 0xff 000008a3: NOT 000008a4: AND 000008a5: PUSH1 0x01 000008a7: OR 000008a8: SWAP1 000008a9: SSTORE 000008aa: MLOAD 000008ab: PUSH32 0xf973a404f52ae16dd11a5d146523df4aacafc60aba31263f058c8d866f612795 000008cc: SWAP1 000008cd: PUSH2 0x08d9 000008d0: SWAP1 000008d1: DUP4 000008d2: DUP2 000008d3: MSTORE 000008d4: PUSH1 0x20 000008d6: ADD 000008d7: SWAP1 000008d8: JUMP 000008d9: JUMPDEST 000008da: PUSH1 0x40 000008dc: MLOAD 000008dd: DUP1 000008de: SWAP2 000008df: SUB 000008e0: SWAP1 000008e1: LOG1 000008e2: POP 000008e3: POP 000008e4: POP 000008e5: JUMP 000008e6: JUMPDEST 000008e7: PUSH2 0x08ee 000008ea: PUSH2 0x095f 000008ed: JUMP 000008ee: JUMPDEST 000008ef: PUSH1 0x01 000008f1: PUSH1 0x01 000008f3: PUSH1 0xa0 000008f5: SHL 000008f6: SUB 000008f7: DUP2 000008f8: AND 000008f9: PUSH2 0x0953 000008fc: JUMPI 000008fd: PUSH1 0x40 000008ff: MLOAD 00000900: PUSH3 0x461bcd 00000904: PUSH1 0xe5 00000906: SHL 00000907: DUP2 00000908: MSTORE 00000909: PUSH1 0x20 0000090b: PUSH1 0x04 0000090d: DUP3 0000090e: ADD 0000090f: MSTORE 00000910: PUSH1 0x26 00000912: PUSH1 0x24 00000914: DUP3 00000915: ADD 00000916: MSTORE 00000917: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 00000938: PUSH1 0x44 0000093a: DUP3 0000093b: ADD 0000093c: MSTORE 0000093d: PUSH6 0x646472657373 00000944: PUSH1 0xd0 00000946: SHL 00000947: PUSH1 0x64 00000949: DUP3 0000094a: ADD 0000094b: MSTORE 0000094c: PUSH1 0x84 0000094e: ADD 0000094f: PUSH2 0x0234 00000952: JUMP 00000953: JUMPDEST 00000954: PUSH2 0x095c 00000957: DUP2 00000958: PUSH2 0x09b9 0000095b: JUMP 0000095c: JUMPDEST 0000095d: POP 0000095e: JUMP 0000095f: JUMPDEST 00000960: PUSH1 0x00 00000962: SLOAD 00000963: PUSH1 0x01 00000965: PUSH1 0x01 00000967: PUSH1 0xa0 00000969: SHL 0000096a: SUB 0000096b: AND 0000096c: CALLER 0000096d: EQ 0000096e: PUSH2 0x05a5 00000971: JUMPI 00000972: PUSH1 0x40 00000974: MLOAD 00000975: PUSH3 0x461bcd 00000979: PUSH1 0xe5 0000097b: SHL 0000097c: DUP2 0000097d: MSTORE 0000097e: PUSH1 0x20 00000980: PUSH1 0x04 00000982: DUP3 00000983: ADD 00000984: DUP2 00000985: SWAP1 00000986: MSTORE 00000987: PUSH1 0x24 00000989: DUP3 0000098a: ADD 0000098b: MSTORE 0000098c: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 000009ad: PUSH1 0x44 000009af: DUP3 000009b0: ADD 000009b1: MSTORE 000009b2: PUSH1 0x64 000009b4: ADD 000009b5: PUSH2 0x0234 000009b8: JUMP 000009b9: JUMPDEST 000009ba: PUSH1 0x00 000009bc: DUP1 000009bd: SLOAD 000009be: PUSH1 0x01 000009c0: PUSH1 0x01 000009c2: PUSH1 0xa0 000009c4: SHL 000009c5: SUB 000009c6: DUP4 000009c7: DUP2 000009c8: AND 000009c9: PUSH1 0x01 000009cb: PUSH1 0x01 000009cd: PUSH1 0xa0 000009cf: SHL 000009d0: SUB 000009d1: NOT 000009d2: DUP4 000009d3: AND 000009d4: DUP2 000009d5: OR 000009d6: DUP5 000009d7: SSTORE 000009d8: PUSH1 0x40 000009da: MLOAD 000009db: SWAP2 000009dc: SWAP1 000009dd: SWAP3 000009de: AND 000009df: SWAP3 000009e0: DUP4 000009e1: SWAP2 000009e2: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00000a03: SWAP2 00000a04: SWAP1 00000a05: LOG3 00000a06: POP 00000a07: POP 00000a08: JUMP 00000a09: JUMPDEST 00000a0a: PUSH4 0x4e487b71 00000a0f: PUSH1 0xe0 00000a11: SHL 00000a12: PUSH1 0x00 00000a14: MSTORE 00000a15: PUSH1 0x41 00000a17: PUSH1 0x04 00000a19: MSTORE 00000a1a: PUSH1 0x24 00000a1c: PUSH1 0x00 00000a1e: REVERT 00000a1f: JUMPDEST 00000a20: PUSH1 0x40 00000a22: MLOAD 00000a23: PUSH1 0x1f 00000a25: DUP3 00000a26: ADD 00000a27: PUSH1 0x1f 00000a29: NOT 00000a2a: AND 00000a2b: DUP2 00000a2c: ADD 00000a2d: PUSH8 0xffffffffffffffff 00000a36: DUP2 00000a37: GT 00000a38: DUP3 00000a39: DUP3 00000a3a: LT 00000a3b: OR 00000a3c: ISZERO 00000a3d: PUSH2 0x0a48 00000a40: JUMPI 00000a41: PUSH2 0x0a48 00000a44: PUSH2 0x0a09 00000a47: JUMP 00000a48: JUMPDEST 00000a49: PUSH1 0x40 00000a4b: MSTORE 00000a4c: SWAP2 00000a4d: SWAP1 00000a4e: POP 00000a4f: JUMP 00000a50: JUMPDEST 00000a51: PUSH1 0x00 00000a53: PUSH8 0xffffffffffffffff 00000a5c: DUP3 00000a5d: GT 00000a5e: ISZERO 00000a5f: PUSH2 0x0a6a 00000a62: JUMPI 00000a63: PUSH2 0x0a6a 00000a66: PUSH2 0x0a09 00000a69: JUMP 00000a6a: JUMPDEST 00000a6b: POP 00000a6c: PUSH1 0x05 00000a6e: SHL 00000a6f: PUSH1 0x20 00000a71: ADD 00000a72: SWAP1 00000a73: JUMP 00000a74: JUMPDEST 00000a75: PUSH1 0x01 00000a77: PUSH1 0x01 00000a79: PUSH1 0xa0 00000a7b: SHL 00000a7c: SUB 00000a7d: DUP2 00000a7e: AND 00000a7f: DUP2 00000a80: EQ 00000a81: PUSH2 0x095c 00000a84: JUMPI 00000a85: PUSH1 0x00 00000a87: DUP1 00000a88: REVERT 00000a89: JUMPDEST 00000a8a: PUSH1 0x00 00000a8c: DUP3 00000a8d: PUSH1 0x1f 00000a8f: DUP4 00000a90: ADD 00000a91: SLT 00000a92: PUSH2 0x0a9a 00000a95: JUMPI 00000a96: PUSH1 0x00 00000a98: DUP1 00000a99: REVERT 00000a9a: JUMPDEST 00000a9b: DUP2 00000a9c: CALLDATALOAD 00000a9d: PUSH1 0x20 00000a9f: PUSH2 0x0aaf 00000aa2: PUSH2 0x0aaa 00000aa5: DUP4 00000aa6: PUSH2 0x0a50 00000aa9: JUMP 00000aaa: JUMPDEST 00000aab: PUSH2 0x0a1f 00000aae: JUMP 00000aaf: JUMPDEST 00000ab0: DUP3 00000ab1: DUP2 00000ab2: MSTORE 00000ab3: PUSH1 0x05 00000ab5: SWAP3 00000ab6: SWAP1 00000ab7: SWAP3 00000ab8: SHL 00000ab9: DUP5 00000aba: ADD 00000abb: DUP2 00000abc: ADD 00000abd: SWAP2 00000abe: DUP2 00000abf: DUP2 00000ac0: ADD 00000ac1: SWAP1 00000ac2: DUP7 00000ac3: DUP5 00000ac4: GT 00000ac5: ISZERO 00000ac6: PUSH2 0x0ace 00000ac9: JUMPI 00000aca: PUSH1 0x00 00000acc: DUP1 00000acd: REVERT 00000ace: JUMPDEST 00000acf: DUP3 00000ad0: DUP7 00000ad1: ADD 00000ad2: JUMPDEST 00000ad3: DUP5 00000ad4: DUP2 00000ad5: LT 00000ad6: ISZERO 00000ad7: PUSH2 0x0af2 00000ada: JUMPI 00000adb: DUP1 00000adc: CALLDATALOAD 00000add: PUSH2 0x0ae5 00000ae0: DUP2 00000ae1: PUSH2 0x0a74 00000ae4: JUMP 00000ae5: JUMPDEST 00000ae6: DUP4 00000ae7: MSTORE 00000ae8: SWAP2 00000ae9: DUP4 00000aea: ADD 00000aeb: SWAP2 00000aec: DUP4 00000aed: ADD 00000aee: PUSH2 0x0ad2 00000af1: JUMP 00000af2: JUMPDEST 00000af3: POP 00000af4: SWAP7 00000af5: SWAP6 00000af6: POP 00000af7: POP 00000af8: POP 00000af9: POP 00000afa: POP 00000afb: POP 00000afc: JUMP 00000afd: JUMPDEST 00000afe: PUSH1 0x00 00000b00: PUSH1 0x20 00000b02: DUP3 00000b03: DUP5 00000b04: SUB 00000b05: SLT 00000b06: ISZERO 00000b07: PUSH2 0x0b0f 00000b0a: JUMPI 00000b0b: PUSH1 0x00 00000b0d: DUP1 00000b0e: REVERT 00000b0f: JUMPDEST 00000b10: DUP2 00000b11: CALLDATALOAD 00000b12: PUSH8 0xffffffffffffffff 00000b1b: DUP2 00000b1c: GT 00000b1d: ISZERO 00000b1e: PUSH2 0x0b26 00000b21: JUMPI 00000b22: PUSH1 0x00 00000b24: DUP1 00000b25: REVERT 00000b26: JUMPDEST 00000b27: PUSH2 0x0b32 00000b2a: DUP5 00000b2b: DUP3 00000b2c: DUP6 00000b2d: ADD 00000b2e: PUSH2 0x0a89 00000b31: JUMP 00000b32: JUMPDEST 00000b33: SWAP5 00000b34: SWAP4 00000b35: POP 00000b36: POP 00000b37: POP 00000b38: POP 00000b39: JUMP 00000b3a: JUMPDEST 00000b3b: PUSH1 0x00 00000b3d: DUP3 00000b3e: PUSH1 0x1f 00000b40: DUP4 00000b41: ADD 00000b42: SLT 00000b43: PUSH2 0x0b4b 00000b46: JUMPI 00000b47: PUSH1 0x00 00000b49: DUP1 00000b4a: REVERT 00000b4b: JUMPDEST 00000b4c: DUP2 00000b4d: CALLDATALOAD 00000b4e: PUSH1 0x20 00000b50: PUSH2 0x0b5b 00000b53: PUSH2 0x0aaa 00000b56: DUP4 00000b57: PUSH2 0x0a50 00000b5a: JUMP 00000b5b: JUMPDEST 00000b5c: DUP3 00000b5d: DUP2 00000b5e: MSTORE 00000b5f: PUSH1 0x05 00000b61: SWAP3 00000b62: SWAP1 00000b63: SWAP3 00000b64: SHL 00000b65: DUP5 00000b66: ADD 00000b67: DUP2 00000b68: ADD 00000b69: SWAP2 00000b6a: DUP2 00000b6b: DUP2 00000b6c: ADD 00000b6d: SWAP1 00000b6e: DUP7 00000b6f: DUP5 00000b70: GT 00000b71: ISZERO 00000b72: PUSH2 0x0b7a 00000b75: JUMPI 00000b76: PUSH1 0x00 00000b78: DUP1 00000b79: REVERT 00000b7a: JUMPDEST 00000b7b: DUP3 00000b7c: DUP7 00000b7d: ADD 00000b7e: JUMPDEST 00000b7f: DUP5 00000b80: DUP2 00000b81: LT 00000b82: ISZERO 00000b83: PUSH2 0x0af2 00000b86: JUMPI 00000b87: DUP1 00000b88: CALLDATALOAD 00000b89: DUP4 00000b8a: MSTORE 00000b8b: SWAP2 00000b8c: DUP4 00000b8d: ADD 00000b8e: SWAP2 00000b8f: DUP4 00000b90: ADD 00000b91: PUSH2 0x0b7e 00000b94: JUMP 00000b95: JUMPDEST 00000b96: PUSH1 0x00 00000b98: DUP1 00000b99: PUSH1 0x00 00000b9b: DUP1 00000b9c: PUSH1 0x80 00000b9e: DUP6 00000b9f: DUP8 00000ba0: SUB 00000ba1: SLT 00000ba2: ISZERO 00000ba3: PUSH2 0x0bab 00000ba6: JUMPI 00000ba7: PUSH1 0x00 00000ba9: DUP1 00000baa: REVERT 00000bab: JUMPDEST 00000bac: DUP5 00000bad: CALLDATALOAD 00000bae: PUSH2 0x0bb6 00000bb1: DUP2 00000bb2: PUSH2 0x0a74 00000bb5: JUMP 00000bb6: JUMPDEST 00000bb7: SWAP4 00000bb8: POP 00000bb9: PUSH1 0x20 00000bbb: DUP6 00000bbc: ADD 00000bbd: CALLDATALOAD 00000bbe: PUSH8 0xffffffffffffffff 00000bc7: DUP1 00000bc8: DUP3 00000bc9: GT 00000bca: ISZERO 00000bcb: PUSH2 0x0bd3 00000bce: JUMPI 00000bcf: PUSH1 0x00 00000bd1: DUP1 00000bd2: REVERT 00000bd3: JUMPDEST 00000bd4: PUSH2 0x0bdf 00000bd7: DUP9 00000bd8: DUP4 00000bd9: DUP10 00000bda: ADD 00000bdb: PUSH2 0x0a89 00000bde: JUMP 00000bdf: JUMPDEST 00000be0: SWAP5 00000be1: POP 00000be2: PUSH1 0x40 00000be4: DUP8 00000be5: ADD 00000be6: CALLDATALOAD 00000be7: SWAP2 00000be8: POP 00000be9: DUP1 00000bea: DUP3 00000beb: GT 00000bec: ISZERO 00000bed: PUSH2 0x0bf5 00000bf0: JUMPI 00000bf1: PUSH1 0x00 00000bf3: DUP1 00000bf4: REVERT 00000bf5: JUMPDEST 00000bf6: POP 00000bf7: PUSH2 0x0c02 00000bfa: DUP8 00000bfb: DUP3 00000bfc: DUP9 00000bfd: ADD 00000bfe: PUSH2 0x0b3a 00000c01: JUMP 00000c02: JUMPDEST 00000c03: SWAP5 00000c04: SWAP8 00000c05: SWAP4 00000c06: SWAP7 00000c07: POP 00000c08: SWAP4 00000c09: SWAP5 00000c0a: PUSH1 0x60 00000c0c: ADD 00000c0d: CALLDATALOAD 00000c0e: SWAP4 00000c0f: POP 00000c10: POP 00000c11: POP 00000c12: JUMP 00000c13: JUMPDEST 00000c14: PUSH1 0x00 00000c16: PUSH1 0x20 00000c18: DUP3 00000c19: DUP5 00000c1a: SUB 00000c1b: SLT 00000c1c: ISZERO 00000c1d: PUSH2 0x0c25 00000c20: JUMPI 00000c21: PUSH1 0x00 00000c23: DUP1 00000c24: REVERT 00000c25: JUMPDEST 00000c26: DUP2 00000c27: CALLDATALOAD 00000c28: PUSH2 0x0c30 00000c2b: DUP2 00000c2c: PUSH2 0x0a74 00000c2f: JUMP 00000c30: JUMPDEST 00000c31: SWAP4 00000c32: SWAP3 00000c33: POP 00000c34: POP 00000c35: POP 00000c36: JUMP 00000c37: JUMPDEST 00000c38: PUSH1 0x00 00000c3a: PUSH1 0x20 00000c3c: DUP3 00000c3d: DUP5 00000c3e: SUB 00000c3f: SLT 00000c40: ISZERO 00000c41: PUSH2 0x0c49 00000c44: JUMPI 00000c45: PUSH1 0x00 00000c47: DUP1 00000c48: REVERT 00000c49: JUMPDEST 00000c4a: POP 00000c4b: CALLDATALOAD 00000c4c: SWAP2 00000c4d: SWAP1 00000c4e: POP 00000c4f: JUMP 00000c50: JUMPDEST 00000c51: PUSH1 0x00 00000c53: DUP1 00000c54: PUSH1 0x00 00000c56: PUSH1 0x60 00000c58: DUP5 00000c59: DUP7 00000c5a: SUB 00000c5b: SLT 00000c5c: ISZERO 00000c5d: PUSH2 0x0c65 00000c60: JUMPI 00000c61: PUSH1 0x00 00000c63: DUP1 00000c64: REVERT 00000c65: JUMPDEST 00000c66: DUP4 00000c67: CALLDATALOAD 00000c68: PUSH8 0xffffffffffffffff 00000c71: DUP1 00000c72: DUP3 00000c73: GT 00000c74: ISZERO 00000c75: PUSH2 0x0c7d 00000c78: JUMPI 00000c79: PUSH1 0x00 00000c7b: DUP1 00000c7c: REVERT 00000c7d: JUMPDEST 00000c7e: PUSH2 0x0c89 00000c81: DUP8 00000c82: DUP4 00000c83: DUP9 00000c84: ADD 00000c85: PUSH2 0x0a89 00000c88: JUMP 00000c89: JUMPDEST 00000c8a: SWAP5 00000c8b: POP 00000c8c: PUSH1 0x20 00000c8e: DUP7 00000c8f: ADD 00000c90: CALLDATALOAD 00000c91: SWAP2 00000c92: POP 00000c93: DUP1 00000c94: DUP3 00000c95: GT 00000c96: ISZERO 00000c97: PUSH2 0x0c9f 00000c9a: JUMPI 00000c9b: PUSH1 0x00 00000c9d: DUP1 00000c9e: REVERT 00000c9f: JUMPDEST 00000ca0: POP 00000ca1: PUSH2 0x0cac 00000ca4: DUP7 00000ca5: DUP3 00000ca6: DUP8 00000ca7: ADD 00000ca8: PUSH2 0x0b3a 00000cab: JUMP 00000cac: JUMPDEST 00000cad: SWAP3 00000cae: POP 00000caf: POP 00000cb0: PUSH1 0x40 00000cb2: DUP5 00000cb3: ADD 00000cb4: CALLDATALOAD 00000cb5: SWAP1 00000cb6: POP 00000cb7: SWAP3 00000cb8: POP 00000cb9: SWAP3 00000cba: POP 00000cbb: SWAP3 00000cbc: JUMP 00000cbd: JUMPDEST 00000cbe: PUSH4 0x4e487b71 00000cc3: PUSH1 0xe0 00000cc5: SHL 00000cc6: PUSH1 0x00 00000cc8: MSTORE 00000cc9: PUSH1 0x32 00000ccb: PUSH1 0x04 00000ccd: MSTORE 00000cce: PUSH1 0x24 00000cd0: PUSH1 0x00 00000cd2: REVERT 00000cd3: JUMPDEST 00000cd4: PUSH1 0x00 00000cd6: PUSH1 0x01 00000cd8: DUP3 00000cd9: ADD 00000cda: PUSH2 0x0cf3 00000cdd: JUMPI 00000cde: PUSH4 0x4e487b71 00000ce3: PUSH1 0xe0 00000ce5: SHL 00000ce6: PUSH1 0x00 00000ce8: MSTORE 00000ce9: PUSH1 0x11 00000ceb: PUSH1 0x04 00000ced: MSTORE 00000cee: PUSH1 0x24 00000cf0: PUSH1 0x00 00000cf2: REVERT 00000cf3: JUMPDEST 00000cf4: POP 00000cf5: PUSH1 0x01 00000cf7: ADD 00000cf8: SWAP1 00000cf9: JUMP 00000cfa: JUMPDEST 00000cfb: PUSH1 0x20 00000cfd: DUP1 00000cfe: DUP3 00000cff: MSTORE 00000d00: PUSH1 0x27 00000d02: SWAP1 00000d03: DUP3 00000d04: ADD 00000d05: MSTORE 00000d06: PUSH32 0x456163682064657374696e6174696f6e2073686f756c642068617665206f776e 00000d27: PUSH1 0x40 00000d29: DUP3 00000d2a: ADD 00000d2b: MSTORE 00000d2c: PUSH7 0x08185b5bdd5b9d 00000d34: PUSH1 0xca 00000d36: SHL 00000d37: PUSH1 0x60 00000d39: DUP3 00000d3a: ADD 00000d3b: MSTORE 00000d3c: PUSH1 0x80 00000d3e: ADD 00000d3f: SWAP1 00000d40: JUMP 00000d41: JUMPDEST 00000d42: PUSH1 0x00 00000d44: DUP3 00000d45: MLOAD 00000d46: PUSH1 0x00 00000d48: JUMPDEST 00000d49: DUP2 00000d4a: DUP2 00000d4b: LT 00000d4c: ISZERO 00000d4d: PUSH2 0x0d62 00000d50: JUMPI 00000d51: PUSH1 0x20 00000d53: DUP2 00000d54: DUP7 00000d55: ADD 00000d56: DUP2 00000d57: ADD 00000d58: MLOAD 00000d59: DUP6 00000d5a: DUP4 00000d5b: ADD 00000d5c: MSTORE 00000d5d: ADD 00000d5e: PUSH2 0x0d48 00000d61: JUMP 00000d62: JUMPDEST 00000d63: POP 00000d64: PUSH1 0x00 00000d66: SWAP3 00000d67: ADD 00000d68: SWAP2 00000d69: DUP3 00000d6a: MSTORE 00000d6b: POP 00000d6c: SWAP2 00000d6d: SWAP1 00000d6e: POP 00000d6f: JUMP 00000d70: JUMPDEST 00000d71: PUSH1 0x00 00000d73: PUSH1 0x20 00000d75: DUP3 00000d76: DUP5 00000d77: SUB 00000d78: SLT 00000d79: ISZERO 00000d7a: PUSH2 0x0d82 00000d7d: JUMPI 00000d7e: PUSH1 0x00 00000d80: DUP1 00000d81: REVERT 00000d82: JUMPDEST 00000d83: DUP2 00000d84: MLOAD 00000d85: DUP1 00000d86: ISZERO 00000d87: ISZERO 00000d88: DUP2 00000d89: EQ 00000d8a: PUSH2 0x0c30 00000d8d: JUMPI 00000d8e: PUSH1 0x00 00000d90: DUP1 00000d91: REVERT 00000d92: INVALID 00000d93: LOG2 00000d94: PUSH5 0x6970667358 00000d9a: UNKNOWN(0x22) 00000d9b: SLT 00000d9c: KECCAK256 00000d9d: UNKNOWN(0xAB) 00000d9e: NUMBER 00000d9f: UNKNOWN(0xEB) 00000da0: UNKNOWN(0xD6) 00000da1: DUP15 00000da2: UNKNOWN(0xF9) 00000da3: SWAP11 00000da4: PUSH3 0x6ac4c1 00000da8: UNKNOWN(0xC6) 00000da9: PUSH31
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x2c6c4327b4df65b7c556018992358c001ce5f4ddaae577a7a193bc3503190878
call_targets:
0x21667fda170a5f827b31c0f8fc8dc34f4d82d177
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x2c6c4327b4df65b7c556018992358c001ce5f4ddaae577a7a193bc3503190878",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x21667fda170a5f827b31c0f8fc8dc34f4d82d177"
],
"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": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x982fb9d8",
"selector": "0x982fb9d8",
"calldata_variants": [
"0x982fb9d8",
"0x982fb9d80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc81e25ab",
"selector": "0xc81e25ab",
"calldata_variants": [
"0xc81e25ab",
"0xc81e25ab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcdeb1485",
"selector": "0xcdeb1485",
"calldata_variants": [
"0xcdeb1485",
"0xcdeb14850000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x46b0813b",
"selector": "0x46b0813b",
"calldata_variants": [
"0x46b0813b",
"0x46b0813b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6c04204e",
"selector": "0x6c04204e",
"calldata_variants": [
"0x6c04204e",
"0x6c04204e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x715018a6",
"selector": "0x715018a6",
"calldata_variants": [
"0x715018a6",
"0x715018a60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1087,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2036,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x2c6c4327b4df65b7c556018992358c001ce5f4ddaae577a7a193bc3503190878
call_targets:
0x21667fda170a5f827b31c0f8fc8dc34f4d82d177
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x2c6c4327b4df65b7c556018992358c001ce5f4ddaae577a7a193bc3503190878",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x21667fda170a5f827b31c0f8fc8dc34f4d82d177"
],
"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": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x982fb9d8",
"selector": "0x982fb9d8",
"calldata_variants": [
"0x982fb9d8",
"0x982fb9d80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc81e25ab",
"selector": "0xc81e25ab",
"calldata_variants": [
"0xc81e25ab",
"0xc81e25ab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcdeb1485",
"selector": "0xcdeb1485",
"calldata_variants": [
"0xcdeb1485",
"0xcdeb14850000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x46b0813b",
"selector": "0x46b0813b",
"calldata_variants": [
"0x46b0813b",
"0x46b0813b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6c04204e",
"selector": "0x6c04204e",
"calldata_variants": [
"0x6c04204e",
"0x6c04204e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x715018a6",
"selector": "0x715018a6",
"calldata_variants": [
"0x715018a6",
"0x715018a60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1087,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2036,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|