af29b02b-953d-4a9b-9069-3f7e90e09a02
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 |
|---|---|---|---|---|
| 31558 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 77975 | artifact.fetch | complete | 1 / 3 | 2 weeks ago |
| 77976 | tool.cast_disasm | complete | 1 / 3 | 2 weeks ago |
| 77977 | analysis.bundle | complete | 1 / 3 | 2 weeks ago |
| 77978 | capability.graph | complete | 1 / 3 | 2 weeks ago |
| 77979 | detector.run | complete | 1 / 3 | 2 weeks ago |
| 77980 | validation.fork | complete | 1 / 3 | 2 weeks ago |
No slither job recorded yet.
[codex:541113] OpenAI Codex v0.77.0 (research preview)
[codex:541113] --------
[codex:541113] workdir: /tmp/codex-multi-a3f0e_eg
[codex:541113] model: gpt-5.2-codex
[codex:541113] provider: openai
[codex:541113] approval: never
[codex:541113] sandbox: read-only
[codex:541113] reasoning effort: xhigh
[codex:541113] reasoning summaries: auto
[codex:541113] session id: 019b8743-abd5-7d92-ba0f-c8e0a0779e88
[codex:541113] --------
[codex:541113] user
[codex:541113] 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:541113]
[codex:541113] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:541113]
[codex:541113] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:541113] - Gas inefficiency, code quality, or best practices
[codex:541113] - Theoretical vulnerabilities without a clear extraction path
[codex:541113] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:541113] - Issues requiring social engineering or off-chain coordination
[codex:541113]
[codex:541113] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:541113] - CALL/DELEGATECALL with controllable destination or calldata
[codex:541113] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:541113] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:541113] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:541113] - External calls before state updates (reentrancy)
[codex:541113] - SELFDESTRUCT with controllable beneficiary
[codex:541113] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:541113]
[codex:541113] For each finding, you MUST explain:
[codex:541113] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:541113] 2. The concrete sequence of transactions to extract value
[codex:541113] 3. Why you believe this is exploitable (not just suspicious)
[codex:541113]
[codex:541113] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:541113] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:541113]
[codex:541113] Output MUST be valid JSON matching the provided schema.
[codex:541113] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:541113] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:541113] mcp startup: no servers
[codex:541113]
[codex:541113] thinking
[codex:541113] **Preparing to read BYTECODE_BUNDLE.txt and skills**
[codex:541113] exec
[codex:541113] /bin/bash -lc ls in /tmp/codex-multi-a3f0e_eg succeeded in 6ms:
[codex:541113] BYTECODE_BUNDLE.txt
[codex:541113] codex-output-schema.json
[codex:541113]
[codex:541113] thinking
[codex:541113] **Reading file contents**
[codex:541113] exec
[codex:541113] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-a3f0e_eg succeeded in 5ms:
[codex:541113] Runtime bytecode bundle for best-effort auditing.
[codex:541113] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:541113]
[codex:541113] FILE: runtime_bytecode.hex
[codex:541113] 0x6080604052600436106100b55760003560e01c8063abf7f5eb11610069578063e7f974ec1161004e578063e7f974ec146101fc578063f2fde38b1461021c578063f7888aec1461023c576100bc565b8063abf7f5eb146101af578063e1af091e146101dc576100bc565b8063715018a61161009a578063715018a61461013e5780638da5cb5b14610153578063983ef3ed1461017b576100bc565b80630cb8150f146100be5780632ac5278114610103576100bc565b366100bc57005b005b3480156100ca57600080fd5b506100ee6100d9366004610d62565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561010f57600080fd5b5061013061011e366004610d62565b60026020526000908152604090205481565b6040519081526020016100fa565b34801561014a57600080fd5b506100bc61025c565b34801561015f57600080fd5b506000546040516001600160a01b0390911681526020016100fa565b34801561018757600080fd5b506101307f000000000000000000000000000000000000000000000000000000000000000481565b3480156101bb57600080fd5b506101cf6101ca366004610dd7565b610321565b6040516100fa9190610f43565b3480156101e857600080fd5b506100bc6101f7366004610dae565b6104ac565b34801561020857600080fd5b50610130610217366004610d62565b610600565b34801561022857600080fd5b506100bc610237366004610d62565b6106fd565b34801561024857600080fd5b50610130610257366004610d7c565b61084a565b3361026f6000546001600160a01b031690565b6001600160a01b0316146102ca5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6060336103366000546001600160a01b031690565b6001600160a01b03161461038c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c1565b606083516000141561039f5750816103cb565b8380519060200120836040516020016103b9929190610edf565b60405160208183030381529060405290505b600080876001600160a01b031687846040516103e79190610f27565b60006040518083038185875af1925050503d8060008114610424576040519150601f19603f3d011682016040523d82523d6000602084013e610429565b606091505b5091509150816104a15760405162461bcd60e51b815260206004820152603b60248201527f57616c6c65743a3a657865637574655472616e73616374696f6e3a205472616e60448201527f73616374696f6e20657865637574696f6e2072657665727465642e000000000060648201526084016102c1565b979650505050505050565b3360009081526001602052604090205460ff1661050b5760405162461bcd60e51b815260206004820152600e60248201527f6e6f74206120726563656976657200000000000000000000000000000000000060448201526064016102c1565b610515338361084a565b8111156105645760405162461bcd60e51b815260206004820152600860248201527f746f6f206d75636800000000000000000000000000000000000000000000000060448201526064016102c1565b6001600160a01b0382166000908152600260205260408120805483929061058c908490610f56565b90915550503360009081526001602081815260408084206001600160a01b03871685529092019052812080548392906105c6908490610f56565b90915550506001600160a01b0382166105e8576105e333826108e8565b6105fc565b6105fc6001600160a01b0383163383610a06565b5050565b60006001600160a01b03821661064c576000805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b546106459047610f56565b90506106f8565b6001600160a01b038216600081815260026020526040908190205490517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091906370a082319060240160206040518083038186803b1580156106b657600080fd5b505afa1580156106ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ee9190610e9b565b6106459190610f56565b919050565b336107106000546001600160a01b031690565b6001600160a01b0316146107665760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c1565b6001600160a01b0381166107e25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102c1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b03821660009081526001602052604081205460ff16610872575060006108e2565b60007f000000000000000000000000000000000000000000000000000000000000000461089e84610600565b6108a89190610f6e565b6001600160a01b038086166000908152600160208181526040808420948916845293909101905220549091506108de9082610f8e565b9150505b92915050565b804710156109385760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016102c1565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610985576040519150601f19603f3d011682016040523d82523d6000602084013e61098a565b606091505b5050905080610a015760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016102c1565b505050565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610a0192869291600091610ac4918516908490610b54565b805190915015610a015780806020019051810190610ae29190610e7b565b610a015760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016102c1565b6060610b638484600085610b6d565b90505b9392505050565b606082471015610be55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016102c1565b843b610c335760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102c1565b600080866001600160a01b03168587604051610c4f9190610f27565b60006040518083038185875af1925050503d8060008114610c8c576040519150601f19603f3d011682016040523d82523d6000602084013e610c91565b606091505b50915091506104a182828660608315610cab575081610b66565b825115610cbb5782518084602001fd5b8160405162461bcd60e51b81526004016102c19190610f43565b600067ffffffffffffffff80841115610cf057610cf0610feb565b604051601f8501601f19908116603f01168101908282118183101715610d1857610d18610feb565b81604052809350858152868686011115610d3157600080fd5b858560208301376000602087830101525050509392505050565b80356001600160a01b03811681146106f857600080fd5b600060208284031215610d73578081fd5b610b6682610d4b565b60008060408385031215610d8e578081fd5b610d9783610d4b565b9150610da560208401610d4b565b90509250929050565b60008060408385031215610dc0578182fd5b610dc983610d4b565b946020939093013593505050565b60008060008060808587031215610dec578182fd5b610df585610d4b565b935060208501359250604085013567ffffffffffffffff80821115610e18578384fd5b818701915087601f830112610e2b578384fd5b610e3a88833560208501610cd5565b93506060870135915080821115610e4f578283fd5b508501601f81018713610e60578182fd5b610e6f87823560208401610cd5565b91505092959194509250565b600060208284031215610e8c578081fd5b81518015158114610b66578182fd5b600060208284031215610eac578081fd5b5051919050565b60008151808452610ecb816020860160208601610fa5565b601f01601f19169290920160200192915050565b60007fffffffff00000000000000000000000000000000000000000000000000000000841682528251610f19816004850160208701610fa5565b919091016004019392505050565b60008251610f39818460208701610fa5565b9190910192915050565b600060208252610b666020830184610eb3565b60008219821115610f6957610f69610fd5565b500190565b600082610f8957634e487b7160e01b81526012600452602481fd5b500490565b600082821015610fa057610fa0610fd5565b500390565b60005b83811015610fc0578181015183820152602001610fa8565b83811115610fcf576000848401525b50505050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220f649162663ab89a4cda16543eee69c0a0eae43db752152fb31ee3c3c6739a32e64736f6c63430008020033
[codex:541113]
[codex:541113]
[codex:541113] thinking
[codex:541113] **Analyzing wallet contract bytecode**
[codex:541113]
[codex:541113] I'm carefully mapping function selectors to logic, identifying storage slots for owner and receiver mappings. I’m verifying key functions like `executeTransaction` (owner-only external call), ownership transfers, and withdrawal limits checking for possible exploits, especially around access controls and the "not a receiver" guard. This detailed bytecode walk helps me understand if there are any unprotected operations or vulnerabilities.
[codex:541113] thinking
[codex:541113] **Analyzing EVM bytecode interaction with token balances**
[codex:541113]
[codex:541113] I'm examining how the bytecode handles calls to `balanceOf` on token addresses and decoding stack operations around mapping storage reads. I'm parsing opcode sequences to understand how allowances and balances are loaded and updated, looking closely at withdraw logic, ownership transfers, and safety checks to evaluate potential vulnerabilities. I'll keep exploring how external calls and storage updates order could affect security.
[codex:541113] exec
[codex:541113] /bin/bash -lc "python - <<'PY'
[codex:541113] from binascii import unhexlify
[codex:541113] import re
[codex:541113] import sys
[codex:541113] from textwrap import wrap
[codex:541113]
[codex:541113] # load bytecode
[codex:541113] hexdata=open('/tmp/codex-multi-a3f0e_eg/BYTECODE_BUNDLE.txt').read()
[codex:541113] # extract runtime_bytecode.hex
[codex:541113] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', hexdata)
[codex:541113] if not m:
[codex:541113] print('not found'); sys.exit(1)
[codex:541113] code=m.group(1)[2:]
[codex:541113]
[codex:541113] # disassembler
[codex:541113] ops={
[codex:541113] 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:541113] 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:541113] 0x20:'SHA3',
[codex:541113] 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:541113] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:541113] 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:541113] 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:541113] 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:541113] 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:541113] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:541113] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:541113] }
[codex:541113]
[codex:541113] code_bytes=unhexlify(code)
[codex:541113]
[codex:541113] # Disassemble specific range
[codex:541113] start=0x320
[codex:541113] end=0x5ff
[codex:541113]
[codex:541113] pc=0
[codex:541113] out=[]
[codex:541113] while pc < len(code_bytes):
[codex:541113] op=code_bytes[pc]
[codex:541113] name=ops.get(op, f'OP{op:02x}')
[codex:541113] pc0=pc
[codex:541113] pc+=1
[codex:541113] arg=None
[codex:541113] if 0x60<=op<=0x7f:
[codex:541113] n=op-0x5f
[codex:541113] arg=code_bytes[pc:pc+n]
[codex:541113] pc+=n
[codex:541113] name=f'{name} 0x{arg.hex()}'
[codex:541113] if pc0>=start and pc0<=end:
[codex:541113] out.append(f'{pc0:04x}: {name}')
[codex:541113]
[codex:541113] # print subset around start
[codex:541113] for line in out:
[codex:541113] print(line)
[codex:541113] PY" in /tmp/codex-multi-a3f0e_eg succeeded in 37ms:
[codex:541113] 0320: JUMP
[codex:541113] 0321: JUMPDEST
[codex:541113] 0322: PUSH1 0x60
[codex:541113] 0324: CALLER
[codex:541113] 0325: PUSH2 0x0336
[codex:541113] 0328: PUSH1 0x00
[codex:541113] 032a: SLOAD
[codex:541113] 032b: PUSH1 0x01
[codex:541113] 032d: PUSH1 0x01
[codex:541113] 032f: PUSH1 0xa0
[codex:541113] 0331: SHL
[codex:541113] 0332: SUB
[codex:541113] 0333: AND
[codex:541113] 0334: SWAP1
[codex:541113] 0335: JUMP
[codex:541113] 0336: JUMPDEST
[codex:541113] 0337: PUSH1 0x01
[codex:541113] 0339: PUSH1 0x01
[codex:541113] 033b: PUSH1 0xa0
[codex:541113] 033d: SHL
[codex:541113]
[codex:541113] thinking
[codex:541113] **Analyzing stack behavior after internal call**
[codex:541113] exec
[codex:541113] /bin/bash -lc "python - <<'PY'
[codex:541113] from binascii import unhexlify
[codex:541113] import re
[codex:541113] ops={
[codex:541113] 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:541113] 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:541113] 0x20:'SHA3',
[codex:541113] 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:541113] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:541113] 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:541113] 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:541113] 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:541113] 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:541113] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:541113] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:541113] }
[codex:541113] import re
[codex:541113] hexdata=open('/tmp/codex-multi-a3f0e_eg/BYTECODE_BUNDLE.txt').read()
[codex:541113] code=re.search(r'runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', hexdata).group(1)[2:]
[codex:541113] code_bytes=unhexlify(code)
[codex:541113]
[codex:541113] def disasm(start,end):
[codex:541113] pc=0
[codex:541113] while pc < len(code_bytes):
[codex:541113] op=code_bytes[pc]
[codex:541113] name=ops.get(op, f'OP{op:02x}')
[codex:541113] pc0=pc
[codex:541113] pc+=1
[codex:541113] if 0x60<=op<=0x7f:
[codex:541113] n=op-0x5f
[codex:541113] arg=code_bytes[pc:pc+n]
[codex:541113] pc+=n
[codex:541113] name=f'{name} 0x{arg.hex()}'
[codex:541113] if start<=pc0<=end:
[codex:541113] print(f'{pc0:04x}: {name}')
[codex:541113]
[codex:541113] # disasm around 0xf50
[codex:541113] print('--- around 0xf50 ---')
[codex:541113] disasm(0xf40,0xf80)
[codex:541113] PY" in /tmp/codex-multi-a3f0e_eg succeeded in 28ms:
[codex:541113] --- around 0xf50 ---
[codex:541113] 0f40: POP
[codex:541113] 0f41: POP
[codex:541113] 0f42: JUMP
[codex:541113] 0f43: JUMPDEST
[codex:541113] 0f44: PUSH1 0x00
[codex:541113] 0f46: PUSH1 0x20
[codex:541113] 0f48: DUP3
[codex:541113] 0f49: MSTORE
[codex:541113] 0f4a: PUSH2 0x0b66
[codex:541113] 0f4d: PUSH1 0x20
[codex:541113] 0f4f: DUP4
[codex:541113] 0f50: ADD
[codex:541113] 0f51: DUP5
[codex:541113] 0f52: PUSH2 0x0eb3
[codex:541113] 0f55: JUMP
[codex:541113] 0f56: JUMPDEST
[codex:541113] 0f57: PUSH1 0x00
[codex:541113] 0f59: DUP3
[codex:541113] 0f5a: NOT
[codex:541113]
[codex:541113] thinking
[codex:541113] **Analyzing addition with overflow check**
[codex:541113] exec
[codex:541113] /bin/bash -lc "python - <<'PY'
[codex:541113] from binascii import unhexlify
[codex:541113] import re
[codex:541113] ops={
[codex:541113] 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:541113] 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:541113] 0x20:'SHA3',
[codex:541113] 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:541113] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:541113] 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:541113] 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:541113] 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:541113] 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:541113] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:541113] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:541113] }
[codex:541113] hexdata=open('/tmp/codex-multi-a3f0e_eg/BYTECODE_BUNDLE.txt').read()
[codex:541113] code=re.search(r'runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', hexdata).group(1)[2:]
[codex:541113] code_bytes=unhexlify(code)
[codex:541113]
[codex:541113] def disasm(start,end):
[codex:541113] pc=0
[codex:541113] while pc < len(code_bytes):
[codex:541113] op=code_bytes[pc]
[codex:541113] name=ops.get(op, f'OP{op:02x}')
[codex:541113] pc0=pc
[codex:541113] pc+=1
[codex:541113] if 0x60<=op<=0x7f:
[codex:541113] n=op-0x5f
[codex:541113] arg=code_bytes[pc:pc+n]
[codex:541113] pc+=n
[codex:541113] name=f'{name} 0x{arg.hex()}'
[codex:541113] if start<=pc0<=end:
[codex:541113] print(f'{pc0:04x}: {name}')
[codex:541113]
[codex:541113] print('--- around 0x084a ---')
[codex:541113] disasm(0x840,0x8f0)
[codex:541113] PY" in /tmp/codex-multi-a3f0e_eg succeeded in 25ms:
[codex:541113] --- around 0x084a ---
[codex:541113] 0840: SWAP1
[codex:541113] 0841: SWAP3
[codex:541113] 0842: AND
[codex:541113] 0843: SWAP2
[codex:541113] 0844: SWAP1
[codex:541113] 0845: SWAP2
[codex:541113] 0846: OR
[codex:541113] 0847: SWAP1
[codex:541113] 0848: SSTORE
[codex:541113] 0849: JUMP
[codex:541113] 084a: JUMPDEST
[codex:541113] 084b: PUSH1 0x01
[codex:541113] 084d: PUSH1 0x01
[codex:541113] 084f: PUSH1 0xa0
[codex:541113] 0851: SHL
[codex:541113] 0852: SUB
[codex:541113] 0853: DUP3
[codex:541113] 0854: AND
[codex:541113] 0855: PUSH1 0x00
[codex:541113]
[codex:541113] thinking
[codex:541113] **Analyzing function at 0x084a**
[codex:541113] exec
[codex:541113] /bin/bash -lc "python - <<'PY'
[codex:541113] from binascii import unhexlify
[codex:541113] import re
[codex:541113] ops={
[codex:541113] 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:541113] 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:541113] 0x20:'SHA3',
[codex:541113] 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:541113] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:541113] 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:541113] 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:541113] 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:541113] 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:541113] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:541113] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:541113] }
[codex:541113] hexdata=open('/tmp/codex-multi-a3f0e_eg/BYTECODE_BUNDLE.txt').read()
[codex:541113] code=re.search(r'runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', hexdata).group(1)[2:]
[codex:541113] code_bytes=unhexlify(code)
[codex:541113]
[codex:541113] def disasm(start,end):
[codex:541113] pc=0
[codex:541113] while pc < len(code_bytes):
[codex:541113] op=code_bytes[pc]
[codex:541113] name=ops.get(op, f'OP{op:02x}')
[codex:541113] pc0=pc
[codex:541113] pc+=1
[codex:541113] if 0x60<=op<=0x7f:
[codex:541113] n=op-0x5f
[codex:541113] arg=code_bytes[pc:pc+n]
[codex:541113] pc+=n
[codex:541113] name=f'{name} 0x{arg.hex()}'
[codex:541113] if start<=pc0<=end:
[codex:541113] print(f'{pc0:04x}: {name}')
[codex:541113]
[codex:541113] print('--- around 0x0f6e ---')
[codex:541113] disasm(0x0f6e,0x0fa5)
[codex:541113] PY" in /tmp/codex-multi-a3f0e_eg succeeded in 25ms:
[codex:541113] --- around 0x0f6e ---
[codex:541113] 0f6e: JUMPDEST
[codex:541113] 0f6f: PUSH1 0x00
[codex:541113] 0f71: DUP3
[codex:541113] 0f72: PUSH2 0x0f89
[codex:541113] 0f75: JUMPI
[codex:541113] 0f76: PUSH4 0x4e487b71
[codex:541113] 0f7b: PUSH1 0xe0
[codex:541113] 0f7d: SHL
[codex:541113] 0f7e: DUP2
[codex:541113] 0f7f: MSTORE
[codex:541113] 0f80: PUSH1 0x12
[codex:541113] 0f82: PUSH1 0x04
[codex:541113] 0f84: MSTORE
[codex:541113] 0f85: PUSH1 0x24
[codex:541113] 0f87: DUP2
[codex:541113] 0f88: REVERT
[codex:541113] 0f89: JUMPDEST
[codex:541113] 0f8a: POP
[codex:541113] 0f8b: DIV
[codex:541113]
[codex:541113] thinking
[codex:541113] **Analyzing safe division and subtraction functions**
[codex:541113] exec
[codex:541113] /bin/bash -lc "python - <<'PY'
[codex:541113] from binascii import unhexlify
[codex:541113] import re
[codex:541113] ops={
[codex:541113] 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:541113] 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:541113] 0x20:'SHA3',
[codex:541113] 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:541113] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:541113] 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:541113] 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:541113] 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:541113] 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:541113] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:541113] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:541113] }
[codex:541113] hexdata=open('/tmp/codex-multi-a3f0e_eg/BYTECODE_BUNDLE.txt').read()
[codex:541113] code=re.search(r'runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', hexdata).group(1)[2:]
[codex:541113] code_bytes=unhexlify(code)
[codex:541113]
[codex:541113] def disasm(start,end):
[codex:541113] pc=0
[codex:541113] while pc < len(code_bytes):
[codex:541113] op=code_bytes[pc]
[codex:541113] name=ops.get(op, f'OP{op:02x}')
[codex:541113] pc0=pc
[codex:541113] pc+=1
[codex:541113] if 0x60<=op<=0x7f:
[codex:541113] n=op-0x5f
[codex:541113] arg=code_bytes[pc:pc+n]
[codex:541113] pc+=n
[codex:541113] name=f'{name} 0x{arg.hex()}'
[codex:541113] if start<=pc0<=end:
[codex:541113] print(f'{pc0:04x}: {name}')
[codex:541113]
[codex:541113] print('--- around 0x0600 ---')
[codex:541113] disasm(0x600,0x700)
[codex:541113] PY" in /tmp/codex-multi-a3f0e_eg succeeded in 35ms:
[codex:541113] --- around 0x0600 ---
[codex:541113] 0600: JUMPDEST
[codex:541113] 0601: PUSH1 0x00
[codex:541113] 0603: PUSH1 0x01
[codex:541113] 0605: PUSH1 0x01
[codex:541113] 0607: PUSH1 0xa0
[codex:541113] 0609: SHL
[codex:541113] 060a: SUB
[codex:541113] 060b: DUP3
[codex:541113] 060c: AND
[codex:541113] 060d: PUSH2 0x064c
[codex:541113] 0610: JUMPI
[codex:541113] 0611: PUSH1 0x00
[codex:541113] 0613: DUP1
[codex:541113] 0614: MSTORE
[codex:541113] 0615: PUSH1 0x02
[codex:541113] 0617: PUSH1 0x20
[codex:541113] 0619: MSTORE
[codex:541113] 061a: PUSH32 0xac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b
[codex:541113] 063b: SLOAD
[codex:541113]
[codex:541113] thinking
[codex:541113] **Analyzing token balance function behavior**
[codex:541113] exec
[codex:541113] /bin/bash -lc "python - <<'PY'
[codex:541113] from binascii import unhexlify
[codex:541113] import re
[codex:541113] ops={
[codex:541113] 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:541113] 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:541113] 0x20:'SHA3',
[codex:541113] 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:541113] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:541113] 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:541113] 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:541113] 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:541113] 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:541113] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:541113] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:541113] }
[codex:541113] hexdata=open('/tmp/codex-multi-a3f0e_eg/BYTECODE_BUNDLE.txt').read()
[codex:541113] code=re.search(r'runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', hexdata).group(1)[2:]
[codex:541113] code_bytes=unhexlify(code)
[codex:541113]
[codex:541113] def disasm(start,end):
[codex:541113] pc=0
[codex:541113] while pc < len(code_bytes):
[codex:541113] op=code_bytes[pc]
[codex:541113] name=ops.get(op, f'OP{op:02x}')
[codex:541113] pc0=pc
[codex:541113] pc+=1
[codex:541113] if 0x60<=op<=0x7f:
[codex:541113] n=op-0x5f
[codex:541113] arg=code_bytes[pc:pc+n]
[codex:541113] pc+=n
[codex:541113] name=f'{name} 0x{arg.hex()}'
[codex:541113] if start<=pc0<=end:
[codex:541113] print(f'{pc0:04x}: {name}')
[codex:541113]
[codex:541113] print('--- around 0x01f0 ---')
[codex:541113] disasm(0x1f0,0x230)
[codex:541113] PY" in /tmp/codex-multi-a3f0e_eg succeeded in 26ms:
[codex:541113] --- around 0x01f0 ---
[codex:541113] 01f0: CALLDATASIZE
[codex:541113] 01f1: PUSH1 0x04
[codex:541113] 01f3: PUSH2 0x0dae
[codex:541113] 01f6: JUMP
[codex:541113] 01f7: JUMPDEST
[codex:541113] 01f8: PUSH2 0x04ac
[codex:541113] 01fb: JUMP
[codex:541113] 01fc: JUMPDEST
[codex:541113] 01fd: CALLVALUE
[codex:541113] 01fe: DUP1
[codex:541113] 01ff: ISZERO
[codex:541113] 0200: PUSH2 0x0208
[codex:541113] 0203: JUMPI
[codex:541113] 0204: PUSH1 0x00
[codex:541113] 0206: DUP1
[codex:541113] 0207: REVERT
[codex:541113] 0208: JUMPDEST
[codex:541113] 0209: POP
[codex:541113] 020a: PUSH2 0x0130
[codex:541113]
[codex:541113] thinking
[codex:541113] **Analyzing internal call stack behavior**
[codex:541113] exec
[codex:541113] /bin/bash -lc "python - <<'PY'
[codex:541113] from binascii import unhexlify
[codex:541113] import re
[codex:541113] ops={
[codex:541113] 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:541113] 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:541113] 0x20:'SHA3',
[codex:541113] 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:541113] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:541113] 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:541113] 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:541113] 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:541113] 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:541113] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:541113] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:541113] }
[codex:541113] hexdata=open('/tmp/codex-multi-a3f0e_eg/BYTECODE_BUNDLE.txt').read()
[codex:541113] code=re.search(r'runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', hexdata).group(1)[2:]
[codex:541113] code_bytes=unhexlify(code)
[codex:541113]
[codex:541113] def disasm(start,end):
[codex:541113] pc=0
[codex:541113] while pc < len(code_bytes):
[codex:541113] op=code_bytes[pc]
[codex:541113] name=ops.get(op, f'OP{op:02x}')
[codex:541113] pc0=pc
[codex:541113] pc+=1
[codex:541113] if 0x60<=op<=0x7f:
[codex:541113] n=op-0x5f
[codex:541113] arg=code_bytes[pc:pc+n]
[codex:541113] pc+=n
[codex:541113] name=f'{name} 0x{arg.hex()}'
[codex:541113] if start<=pc0<=end:
[codex:541113] print(f'{pc0:04x}: {name}')
[codex:541113]
[codex:541113] print('--- around 0x0d60 ---')
[codex:541113] disasm(0x0d60,0x0d90)
[codex:541113] PY" in /tmp/codex-multi-a3f0e_eg succeeded in 30ms:
[codex:541113] --- around 0x0d60 ---
[codex:541113] 0d60: DUP1
[codex:541113] 0d61: REVERT
[codex:541113] 0d62: JUMPDEST
[codex:541113] 0d63: PUSH1 0x00
[codex:541113] 0d65: PUSH1 0x20
[codex:541113] 0d67: DUP3
[codex:541113] 0d68: DUP5
[codex:541113] 0d69: SUB
[codex:541113] 0d6a: SLT
[codex:541113] 0d6b: ISZERO
[codex:541113] 0d6c: PUSH2 0x0d73
[codex:541113] 0d6f: JUMPI
[codex:541113] 0d70: DUP1
[codex:541113] 0d71: DUP2
[codex:541113] 0d72: REVERT
[codex:541113] 0d73: JUMPDEST
[codex:541113] 0d74: PUSH2 0x0b66
[codex:541113] 0d77: DUP3
[codex:541113] 0d78: PUSH2 0x0d4b
[codex:541113]
[codex:541113]
[codex:541113] thinking
[codex:541113] **Examining contract functions and storage layout**
[codex:541113] thinking
[codex:541113] **Verifying reentrancy and access controls**
[codex:541113]
[codex:541113] I’m reviewing whether reentrancy could enable unauthorized withdrawals or if access control flaws exist, especially in executeTransaction and withdraw functions. The contract updates state before external calls, which limits reentrancy risks. I’m also checking for suspicious opcodes like delegatecall or selfdestruct to spot hidden attack vectors.
[codex:541113] exec
[codex:541113] /bin/bash -lc "python - <<'PY'
[codex:541113] from binascii import unhexlify
[codex:541113] import re
[codex:541113] hexdata=open('/tmp/codex-multi-a3f0e_eg/BYTECODE_BUNDLE.txt').read()
[codex:541113] code=re.search(r'runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)', hexdata).group(1)[2:]
[codex:541113] code_bytes=unhexlify(code)
[codex:541113] print('DELEGATECALL', [i for i,b in enumerate(code_bytes) if b==0xf4][:5])
[codex:541113] print('SELFDESTRUCT', [i for i,b in enumerate(code_bytes) if b==0xff][:5])
[codex:541113] print('CALLCODE', [i for i,b in enumerate(code_bytes) if b==0xf2][:5])
[codex:541113] PY" in /tmp/codex-multi-a3f0e_eg succeeded in 24ms:
[codex:541113] DELEGATECALL []
[codex:541113] SELFDESTRUCT [234, 776, 777, 778, 779]
[codex:541113] CALLCODE [54, 749, 2056]
[codex:541113]
[codex:541113] thinking
[codex:541113] **Analyzing bytecode for exploits**
[codex:541113]
[codex:541113] I carefully reviewed the bytecode for exploitation signs, especially SELFDESTRUCT and delegatecall instructions, but none appeared as actual opcodes. I considered tricky scenarios like bypassing owner checks via delegatecall but found no concrete exploit paths. The focus is on producing a JSON output confirming no findings with a clear summary.
[codex:541113] codex
[codex:541113] {"no_findings":true,"summary":"No concrete, exploitable profit path found in the provided runtime bytecode; access controls and withdrawal accounting appear consistent, and no unprotected external call/upgrade/selfdestruct paths are exposed.","findings":[]}
[codex:541113] tokens used
[codex:541113] 59,921
[codex:541113] {"no_findings":true,"summary":"No concrete, exploitable profit path found in the provided runtime bytecode; access controls and withdrawal accounting appear consistent, and no unprotected external call/upgrade/selfdestruct paths are exposed.","findings":[]}
{
"codex": {
"ran_at": "2026-01-04T04:37:03.298873+00:00",
"returncode": 0
},
"summary": "No concrete, exploitable profit path found in the provided runtime bytecode; access controls and withdrawal accounting appear consistent, and no unprotected external call/upgrade/selfdestruct paths are exposed.",
"raw_final": {
"summary": "No concrete, exploitable profit path found in the provided runtime bytecode; access controls and withdrawal accounting appear consistent, and no unprotected external call/upgrade/selfdestruct paths are exposed.",
"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 0x00b5 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0xabf7f5eb 00000019: GT 0000001a: PUSH2 0x0069 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xe7f974ec 00000024: GT 00000025: PUSH2 0x004e 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xe7f974ec 0000002f: EQ 00000030: PUSH2 0x01fc 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xf2fde38b 0000003a: EQ 0000003b: PUSH2 0x021c 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xf7888aec 00000045: EQ 00000046: PUSH2 0x023c 00000049: JUMPI 0000004a: PUSH2 0x00bc 0000004d: JUMP 0000004e: JUMPDEST 0000004f: DUP1 00000050: PUSH4 0xabf7f5eb 00000055: EQ 00000056: PUSH2 0x01af 00000059: JUMPI 0000005a: DUP1 0000005b: PUSH4 0xe1af091e 00000060: EQ 00000061: PUSH2 0x01dc 00000064: JUMPI 00000065: PUSH2 0x00bc 00000068: JUMP 00000069: JUMPDEST 0000006a: DUP1 0000006b: PUSH4 0x715018a6 00000070: GT 00000071: PUSH2 0x009a 00000074: JUMPI 00000075: DUP1 00000076: PUSH4 0x715018a6 0000007b: EQ 0000007c: PUSH2 0x013e 0000007f: JUMPI 00000080: DUP1 00000081: PUSH4 0x8da5cb5b 00000086: EQ 00000087: PUSH2 0x0153 0000008a: JUMPI 0000008b: DUP1 0000008c: PUSH4 0x983ef3ed 00000091: EQ 00000092: PUSH2 0x017b 00000095: JUMPI 00000096: PUSH2 0x00bc 00000099: JUMP 0000009a: JUMPDEST 0000009b: DUP1 0000009c: PUSH4 0x0cb8150f 000000a1: EQ 000000a2: PUSH2 0x00be 000000a5: JUMPI 000000a6: DUP1 000000a7: PUSH4 0x2ac52781 000000ac: EQ 000000ad: PUSH2 0x0103 000000b0: JUMPI 000000b1: PUSH2 0x00bc 000000b4: JUMP 000000b5: JUMPDEST 000000b6: CALLDATASIZE 000000b7: PUSH2 0x00bc 000000ba: JUMPI 000000bb: STOP 000000bc: JUMPDEST 000000bd: STOP 000000be: JUMPDEST 000000bf: CALLVALUE 000000c0: DUP1 000000c1: ISZERO 000000c2: PUSH2 0x00ca 000000c5: JUMPI 000000c6: PUSH1 0x00 000000c8: DUP1 000000c9: REVERT 000000ca: JUMPDEST 000000cb: POP 000000cc: PUSH2 0x00ee 000000cf: PUSH2 0x00d9 000000d2: CALLDATASIZE 000000d3: PUSH1 0x04 000000d5: PUSH2 0x0d62 000000d8: JUMP 000000d9: JUMPDEST 000000da: PUSH1 0x01 000000dc: PUSH1 0x20 000000de: MSTORE 000000df: PUSH1 0x00 000000e1: SWAP1 000000e2: DUP2 000000e3: MSTORE 000000e4: PUSH1 0x40 000000e6: SWAP1 000000e7: KECCAK256 000000e8: SLOAD 000000e9: PUSH1 0xff 000000eb: AND 000000ec: DUP2 000000ed: JUMP 000000ee: JUMPDEST 000000ef: PUSH1 0x40 000000f1: MLOAD 000000f2: SWAP1 000000f3: ISZERO 000000f4: ISZERO 000000f5: DUP2 000000f6: MSTORE 000000f7: PUSH1 0x20 000000f9: ADD 000000fa: JUMPDEST 000000fb: PUSH1 0x40 000000fd: MLOAD 000000fe: DUP1 000000ff: SWAP2 00000100: SUB 00000101: SWAP1 00000102: RETURN 00000103: JUMPDEST 00000104: CALLVALUE 00000105: DUP1 00000106: ISZERO 00000107: PUSH2 0x010f 0000010a: JUMPI 0000010b: PUSH1 0x00 0000010d: DUP1 0000010e: REVERT 0000010f: JUMPDEST 00000110: POP 00000111: PUSH2 0x0130 00000114: PUSH2 0x011e 00000117: CALLDATASIZE 00000118: PUSH1 0x04 0000011a: PUSH2 0x0d62 0000011d: JUMP 0000011e: JUMPDEST 0000011f: PUSH1 0x02 00000121: PUSH1 0x20 00000123: MSTORE 00000124: PUSH1 0x00 00000126: SWAP1 00000127: DUP2 00000128: MSTORE 00000129: PUSH1 0x40 0000012b: SWAP1 0000012c: KECCAK256 0000012d: SLOAD 0000012e: DUP2 0000012f: JUMP 00000130: JUMPDEST 00000131: PUSH1 0x40 00000133: MLOAD 00000134: SWAP1 00000135: DUP2 00000136: MSTORE 00000137: PUSH1 0x20 00000139: ADD 0000013a: PUSH2 0x00fa 0000013d: JUMP 0000013e: JUMPDEST 0000013f: CALLVALUE 00000140: DUP1 00000141: ISZERO 00000142: PUSH2 0x014a 00000145: JUMPI 00000146: PUSH1 0x00 00000148: DUP1 00000149: REVERT 0000014a: JUMPDEST 0000014b: POP 0000014c: PUSH2 0x00bc 0000014f: PUSH2 0x025c 00000152: JUMP 00000153: JUMPDEST 00000154: CALLVALUE 00000155: DUP1 00000156: ISZERO 00000157: PUSH2 0x015f 0000015a: JUMPI 0000015b: PUSH1 0x00 0000015d: DUP1 0000015e: REVERT 0000015f: JUMPDEST 00000160: POP 00000161: PUSH1 0x00 00000163: SLOAD 00000164: PUSH1 0x40 00000166: MLOAD 00000167: PUSH1 0x01 00000169: PUSH1 0x01 0000016b: PUSH1 0xa0 0000016d: SHL 0000016e: SUB 0000016f: SWAP1 00000170: SWAP2 00000171: AND 00000172: DUP2 00000173: MSTORE 00000174: PUSH1 0x20 00000176: ADD 00000177: PUSH2 0x00fa 0000017a: JUMP 0000017b: JUMPDEST 0000017c: CALLVALUE 0000017d: DUP1 0000017e: ISZERO 0000017f: PUSH2 0x0187 00000182: JUMPI 00000183: PUSH1 0x00 00000185: DUP1 00000186: REVERT 00000187: JUMPDEST 00000188: POP 00000189: PUSH2 0x0130 0000018c: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000004 000001ad: DUP2 000001ae: JUMP 000001af: JUMPDEST 000001b0: CALLVALUE 000001b1: DUP1 000001b2: ISZERO 000001b3: PUSH2 0x01bb 000001b6: JUMPI 000001b7: PUSH1 0x00 000001b9: DUP1 000001ba: REVERT 000001bb: JUMPDEST 000001bc: POP 000001bd: PUSH2 0x01cf 000001c0: PUSH2 0x01ca 000001c3: CALLDATASIZE 000001c4: PUSH1 0x04 000001c6: PUSH2 0x0dd7 000001c9: JUMP 000001ca: JUMPDEST 000001cb: PUSH2 0x0321 000001ce: JUMP 000001cf: JUMPDEST 000001d0: PUSH1 0x40 000001d2: MLOAD 000001d3: PUSH2 0x00fa 000001d6: SWAP2 000001d7: SWAP1 000001d8: PUSH2 0x0f43 000001db: JUMP 000001dc: JUMPDEST 000001dd: CALLVALUE 000001de: DUP1 000001df: ISZERO 000001e0: PUSH2 0x01e8 000001e3: JUMPI 000001e4: PUSH1 0x00 000001e6: DUP1 000001e7: REVERT 000001e8: JUMPDEST 000001e9: POP 000001ea: PUSH2 0x00bc 000001ed: PUSH2 0x01f7 000001f0: CALLDATASIZE 000001f1: PUSH1 0x04 000001f3: PUSH2 0x0dae 000001f6: JUMP 000001f7: JUMPDEST 000001f8: PUSH2 0x04ac 000001fb: JUMP 000001fc: JUMPDEST 000001fd: CALLVALUE 000001fe: DUP1 000001ff: ISZERO 00000200: PUSH2 0x0208 00000203: JUMPI 00000204: PUSH1 0x00 00000206: DUP1 00000207: REVERT 00000208: JUMPDEST 00000209: POP 0000020a: PUSH2 0x0130 0000020d: PUSH2 0x0217 00000210: CALLDATASIZE 00000211: PUSH1 0x04 00000213: PUSH2 0x0d62 00000216: JUMP 00000217: JUMPDEST 00000218: PUSH2 0x0600 0000021b: JUMP 0000021c: JUMPDEST 0000021d: CALLVALUE 0000021e: DUP1 0000021f: ISZERO 00000220: PUSH2 0x0228 00000223: JUMPI 00000224: PUSH1 0x00 00000226: DUP1 00000227: REVERT 00000228: JUMPDEST 00000229: POP 0000022a: PUSH2 0x00bc 0000022d: PUSH2 0x0237 00000230: CALLDATASIZE 00000231: PUSH1 0x04 00000233: PUSH2 0x0d62 00000236: JUMP 00000237: JUMPDEST 00000238: PUSH2 0x06fd 0000023b: JUMP 0000023c: JUMPDEST 0000023d: CALLVALUE 0000023e: DUP1 0000023f: ISZERO 00000240: PUSH2 0x0248 00000243: JUMPI 00000244: PUSH1 0x00 00000246: DUP1 00000247: REVERT 00000248: JUMPDEST 00000249: POP 0000024a: PUSH2 0x0130 0000024d: PUSH2 0x0257 00000250: CALLDATASIZE 00000251: PUSH1 0x04 00000253: PUSH2 0x0d7c 00000256: JUMP 00000257: JUMPDEST 00000258: PUSH2 0x084a 0000025b: JUMP 0000025c: JUMPDEST 0000025d: CALLER 0000025e: PUSH2 0x026f 00000261: PUSH1 0x00 00000263: SLOAD 00000264: PUSH1 0x01 00000266: PUSH1 0x01 00000268: PUSH1 0xa0 0000026a: SHL 0000026b: SUB 0000026c: AND 0000026d: SWAP1 0000026e: JUMP 0000026f: JUMPDEST 00000270: PUSH1 0x01 00000272: PUSH1 0x01 00000274: PUSH1 0xa0 00000276: SHL 00000277: SUB 00000278: AND 00000279: EQ 0000027a: PUSH2 0x02ca 0000027d: JUMPI 0000027e: PUSH1 0x40 00000280: MLOAD 00000281: PUSH3 0x461bcd 00000285: PUSH1 0xe5 00000287: SHL 00000288: DUP2 00000289: MSTORE 0000028a: PUSH1 0x20 0000028c: PUSH1 0x04 0000028e: DUP3 0000028f: ADD 00000290: DUP2 00000291: SWAP1 00000292: MSTORE 00000293: PUSH1 0x24 00000295: DUP3 00000296: ADD 00000297: MSTORE 00000298: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 000002b9: PUSH1 0x44 000002bb: DUP3 000002bc: ADD 000002bd: MSTORE 000002be: PUSH1 0x64 000002c0: ADD 000002c1: JUMPDEST 000002c2: PUSH1 0x40 000002c4: MLOAD 000002c5: DUP1 000002c6: SWAP2 000002c7: SUB 000002c8: SWAP1 000002c9: REVERT 000002ca: JUMPDEST 000002cb: PUSH1 0x00 000002cd: DUP1 000002ce: SLOAD 000002cf: PUSH1 0x40 000002d1: MLOAD 000002d2: PUSH1 0x01 000002d4: PUSH1 0x01 000002d6: PUSH1 0xa0 000002d8: SHL 000002d9: SUB 000002da: SWAP1 000002db: SWAP2 000002dc: AND 000002dd: SWAP1 000002de: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000002ff: SWAP1 00000300: DUP4 00000301: SWAP1 00000302: LOG3 00000303: PUSH1 0x00 00000305: DUP1 00000306: SLOAD 00000307: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000031c: NOT 0000031d: AND 0000031e: SWAP1 0000031f: SSTORE 00000320: JUMP 00000321: JUMPDEST 00000322: PUSH1 0x60 00000324: CALLER 00000325: PUSH2 0x0336 00000328: PUSH1 0x00 0000032a: SLOAD 0000032b: PUSH1 0x01 0000032d: PUSH1 0x01 0000032f: PUSH1 0xa0 00000331: SHL 00000332: SUB 00000333: AND 00000334: SWAP1 00000335: JUMP 00000336: JUMPDEST 00000337: PUSH1 0x01 00000339: PUSH1 0x01 0000033b: PUSH1 0xa0 0000033d: SHL 0000033e: SUB 0000033f: AND 00000340: EQ 00000341: PUSH2 0x038c 00000344: JUMPI 00000345: PUSH1 0x40 00000347: MLOAD 00000348: PUSH3 0x461bcd 0000034c: PUSH1 0xe5 0000034e: SHL 0000034f: DUP2 00000350: MSTORE 00000351: PUSH1 0x20 00000353: PUSH1 0x04 00000355: DUP3 00000356: ADD 00000357: DUP2 00000358: SWAP1 00000359: MSTORE 0000035a: PUSH1 0x24 0000035c: DUP3 0000035d: ADD 0000035e: MSTORE 0000035f: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00000380: PUSH1 0x44 00000382: DUP3 00000383: ADD 00000384: MSTORE 00000385: PUSH1 0x64 00000387: ADD 00000388: PUSH2 0x02c1 0000038b: JUMP 0000038c: JUMPDEST 0000038d: PUSH1 0x60 0000038f: DUP4 00000390: MLOAD 00000391: PUSH1 0x00 00000393: EQ 00000394: ISZERO 00000395: PUSH2 0x039f 00000398: JUMPI 00000399: POP 0000039a: DUP2 0000039b: PUSH2 0x03cb 0000039e: JUMP 0000039f: JUMPDEST 000003a0: DUP4 000003a1: DUP1 000003a2: MLOAD 000003a3: SWAP1 000003a4: PUSH1 0x20 000003a6: ADD 000003a7: KECCAK256 000003a8: DUP4 000003a9: PUSH1 0x40 000003ab: MLOAD 000003ac: PUSH1 0x20 000003ae: ADD 000003af: PUSH2 0x03b9 000003b2: SWAP3 000003b3: SWAP2 000003b4: SWAP1 000003b5: PUSH2 0x0edf 000003b8: JUMP 000003b9: JUMPDEST 000003ba: PUSH1 0x40 000003bc: MLOAD 000003bd: PUSH1 0x20 000003bf: DUP2 000003c0: DUP4 000003c1: SUB 000003c2: SUB 000003c3: DUP2 000003c4: MSTORE 000003c5: SWAP1 000003c6: PUSH1 0x40 000003c8: MSTORE 000003c9: SWAP1 000003ca: POP 000003cb: JUMPDEST 000003cc: PUSH1 0x00 000003ce: DUP1 000003cf: DUP8 000003d0: PUSH1 0x01 000003d2: PUSH1 0x01 000003d4: PUSH1 0xa0 000003d6: SHL 000003d7: SUB 000003d8: AND 000003d9: DUP8 000003da: DUP5 000003db: PUSH1 0x40 000003dd: MLOAD 000003de: PUSH2 0x03e7 000003e1: SWAP2 000003e2: SWAP1 000003e3: PUSH2 0x0f27 000003e6: JUMP 000003e7: JUMPDEST 000003e8: PUSH1 0x00 000003ea: PUSH1 0x40 000003ec: MLOAD 000003ed: DUP1 000003ee: DUP4 000003ef: SUB 000003f0: DUP2 000003f1: DUP6 000003f2: DUP8 000003f3: GAS 000003f4: CALL 000003f5: SWAP3 000003f6: POP 000003f7: POP 000003f8: POP 000003f9: RETURNDATASIZE 000003fa: DUP1 000003fb: PUSH1 0x00 000003fd: DUP2 000003fe: EQ 000003ff: PUSH2 0x0424 00000402: JUMPI 00000403: PUSH1 0x40 00000405: MLOAD 00000406: SWAP2 00000407: POP 00000408: PUSH1 0x1f 0000040a: NOT 0000040b: PUSH1 0x3f 0000040d: RETURNDATASIZE 0000040e: ADD 0000040f: AND 00000410: DUP3 00000411: ADD 00000412: PUSH1 0x40 00000414: MSTORE 00000415: RETURNDATASIZE 00000416: DUP3 00000417: MSTORE 00000418: RETURNDATASIZE 00000419: PUSH1 0x00 0000041b: PUSH1 0x20 0000041d: DUP5 0000041e: ADD 0000041f: RETURNDATACOPY 00000420: PUSH2 0x0429 00000423: JUMP 00000424: JUMPDEST 00000425: PUSH1 0x60 00000427: SWAP2 00000428: POP 00000429: JUMPDEST 0000042a: POP 0000042b: SWAP2 0000042c: POP 0000042d: SWAP2 0000042e: POP 0000042f: DUP2 00000430: PUSH2 0x04a1 00000433: JUMPI 00000434: PUSH1 0x40 00000436: MLOAD 00000437: PUSH3 0x461bcd 0000043b: PUSH1 0xe5 0000043d: SHL 0000043e: DUP2 0000043f: MSTORE 00000440: PUSH1 0x20 00000442: PUSH1 0x04 00000444: DUP3 00000445: ADD 00000446: MSTORE 00000447: PUSH1 0x3b 00000449: PUSH1 0x24 0000044b: DUP3 0000044c: ADD 0000044d: MSTORE 0000044e: PUSH32 0x57616c6c65743a3a657865637574655472616e73616374696f6e3a205472616e 0000046f: PUSH1 0x44 00000471: DUP3 00000472: ADD 00000473: MSTORE 00000474: PUSH32 0x73616374696f6e20657865637574696f6e2072657665727465642e0000000000 00000495: PUSH1 0x64 00000497: DUP3 00000498: ADD 00000499: MSTORE 0000049a: PUSH1 0x84 0000049c: ADD 0000049d: PUSH2 0x02c1 000004a0: JUMP 000004a1: JUMPDEST 000004a2: SWAP8 000004a3: SWAP7 000004a4: POP 000004a5: POP 000004a6: POP 000004a7: POP 000004a8: POP 000004a9: POP 000004aa: POP 000004ab: JUMP 000004ac: JUMPDEST 000004ad: CALLER 000004ae: PUSH1 0x00 000004b0: SWAP1 000004b1: DUP2 000004b2: MSTORE 000004b3: PUSH1 0x01 000004b5: PUSH1 0x20 000004b7: MSTORE 000004b8: PUSH1 0x40 000004ba: SWAP1 000004bb: KECCAK256 000004bc: SLOAD 000004bd: PUSH1 0xff 000004bf: AND 000004c0: PUSH2 0x050b 000004c3: JUMPI 000004c4: PUSH1 0x40 000004c6: MLOAD 000004c7: PUSH3 0x461bcd 000004cb: PUSH1 0xe5 000004cd: SHL 000004ce: DUP2 000004cf: MSTORE 000004d0: PUSH1 0x20 000004d2: PUSH1 0x04 000004d4: DUP3 000004d5: ADD 000004d6: MSTORE 000004d7: PUSH1 0x0e 000004d9: PUSH1 0x24 000004db: DUP3 000004dc: ADD 000004dd: MSTORE 000004de: PUSH32 0x6e6f742061207265636569766572000000000000000000000000000000000000 000004ff: PUSH1 0x44 00000501: DUP3 00000502: ADD 00000503: MSTORE 00000504: PUSH1 0x64 00000506: ADD 00000507: PUSH2 0x02c1 0000050a: JUMP 0000050b: JUMPDEST 0000050c: PUSH2 0x0515 0000050f: CALLER 00000510: DUP4 00000511: PUSH2 0x084a 00000514: JUMP 00000515: JUMPDEST 00000516: DUP2 00000517: GT 00000518: ISZERO 00000519: PUSH2 0x0564 0000051c: JUMPI 0000051d: PUSH1 0x40 0000051f: MLOAD 00000520: PUSH3 0x461bcd 00000524: PUSH1 0xe5 00000526: SHL 00000527: DUP2 00000528: MSTORE 00000529: PUSH1 0x20 0000052b: PUSH1 0x04 0000052d: DUP3 0000052e: ADD 0000052f: MSTORE 00000530: PUSH1 0x08 00000532: PUSH1 0x24 00000534: DUP3 00000535: ADD 00000536: MSTORE 00000537: PUSH32 0x746f6f206d756368000000000000000000000000000000000000000000000000 00000558: PUSH1 0x44 0000055a: DUP3 0000055b: ADD 0000055c: MSTORE 0000055d: PUSH1 0x64 0000055f: ADD 00000560: PUSH2 0x02c1 00000563: JUMP 00000564: JUMPDEST 00000565: PUSH1 0x01 00000567: PUSH1 0x01 00000569: PUSH1 0xa0 0000056b: SHL 0000056c: SUB 0000056d: DUP3 0000056e: AND 0000056f: PUSH1 0x00 00000571: SWAP1 00000572: DUP2 00000573: MSTORE 00000574: PUSH1 0x02 00000576: PUSH1 0x20 00000578: MSTORE 00000579: PUSH1 0x40 0000057b: DUP2 0000057c: KECCAK256 0000057d: DUP1 0000057e: SLOAD 0000057f: DUP4 00000580: SWAP3 00000581: SWAP1 00000582: PUSH2 0x058c 00000585: SWAP1 00000586: DUP5 00000587: SWAP1 00000588: PUSH2 0x0f56 0000058b: JUMP 0000058c: JUMPDEST 0000058d: SWAP1 0000058e: SWAP2 0000058f: SSTORE 00000590: POP 00000591: POP 00000592: CALLER 00000593: PUSH1 0x00 00000595: SWAP1 00000596: DUP2 00000597: MSTORE 00000598: PUSH1 0x01 0000059a: PUSH1 0x20 0000059c: DUP2 0000059d: DUP2 0000059e: MSTORE 0000059f: PUSH1 0x40 000005a1: DUP1 000005a2: DUP5 000005a3: KECCAK256 000005a4: PUSH1 0x01 000005a6: PUSH1 0x01 000005a8: PUSH1 0xa0 000005aa: SHL 000005ab: SUB 000005ac: DUP8 000005ad: AND 000005ae: DUP6 000005af: MSTORE 000005b0: SWAP1 000005b1: SWAP3 000005b2: ADD 000005b3: SWAP1 000005b4: MSTORE 000005b5: DUP2 000005b6: KECCAK256 000005b7: DUP1 000005b8: SLOAD 000005b9: DUP4 000005ba: SWAP3 000005bb: SWAP1 000005bc: PUSH2 0x05c6 000005bf: SWAP1 000005c0: DUP5 000005c1: SWAP1 000005c2: PUSH2 0x0f56 000005c5: JUMP 000005c6: JUMPDEST 000005c7: SWAP1 000005c8: SWAP2 000005c9: SSTORE 000005ca: POP 000005cb: POP 000005cc: PUSH1 0x01 000005ce: PUSH1 0x01 000005d0: PUSH1 0xa0 000005d2: SHL 000005d3: SUB 000005d4: DUP3 000005d5: AND 000005d6: PUSH2 0x05e8 000005d9: JUMPI 000005da: PUSH2 0x05e3 000005dd: CALLER 000005de: DUP3 000005df: PUSH2 0x08e8 000005e2: JUMP 000005e3: JUMPDEST 000005e4: PUSH2 0x05fc 000005e7: JUMP 000005e8: JUMPDEST 000005e9: PUSH2 0x05fc 000005ec: PUSH1 0x01 000005ee: PUSH1 0x01 000005f0: PUSH1 0xa0 000005f2: SHL 000005f3: SUB 000005f4: DUP4 000005f5: AND 000005f6: CALLER 000005f7: DUP4 000005f8: PUSH2 0x0a06 000005fb: JUMP 000005fc: JUMPDEST 000005fd: POP 000005fe: POP 000005ff: JUMP 00000600: JUMPDEST 00000601: PUSH1 0x00 00000603: PUSH1 0x01 00000605: PUSH1 0x01 00000607: PUSH1 0xa0 00000609: SHL 0000060a: SUB 0000060b: DUP3 0000060c: AND 0000060d: PUSH2 0x064c 00000610: JUMPI 00000611: PUSH1 0x00 00000613: DUP1 00000614: MSTORE 00000615: PUSH1 0x02 00000617: PUSH1 0x20 00000619: MSTORE 0000061a: PUSH32 0xac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b 0000063b: SLOAD 0000063c: PUSH2 0x0645 0000063f: SWAP1 00000640: SELFBALANCE 00000641: PUSH2 0x0f56 00000644: JUMP 00000645: JUMPDEST 00000646: SWAP1 00000647: POP 00000648: PUSH2 0x06f8 0000064b: JUMP 0000064c: JUMPDEST 0000064d: PUSH1 0x01 0000064f: PUSH1 0x01 00000651: PUSH1 0xa0 00000653: SHL 00000654: SUB 00000655: DUP3 00000656: AND 00000657: PUSH1 0x00 00000659: DUP2 0000065a: DUP2 0000065b: MSTORE 0000065c: PUSH1 0x02 0000065e: PUSH1 0x20 00000660: MSTORE 00000661: PUSH1 0x40 00000663: SWAP1 00000664: DUP2 00000665: SWAP1 00000666: KECCAK256 00000667: SLOAD 00000668: SWAP1 00000669: MLOAD 0000066a: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 0000068b: DUP2 0000068c: MSTORE 0000068d: ADDRESS 0000068e: PUSH1 0x04 00000690: DUP3 00000691: ADD 00000692: MSTORE 00000693: SWAP1 00000694: SWAP2 00000695: SWAP1 00000696: PUSH4 0x70a08231 0000069b: SWAP1 0000069c: PUSH1 0x24 0000069e: ADD 0000069f: PUSH1 0x20 000006a1: PUSH1 0x40 000006a3: MLOAD 000006a4: DUP1 000006a5: DUP4 000006a6: SUB 000006a7: DUP2 000006a8: DUP7 000006a9: DUP1 000006aa: EXTCODESIZE 000006ab: ISZERO 000006ac: DUP1 000006ad: ISZERO 000006ae: PUSH2 0x06b6 000006b1: JUMPI 000006b2: PUSH1 0x00 000006b4: DUP1 000006b5: REVERT 000006b6: JUMPDEST 000006b7: POP 000006b8: GAS 000006b9: STATICCALL 000006ba: ISZERO 000006bb: DUP1 000006bc: ISZERO 000006bd: PUSH2 0x06ca 000006c0: JUMPI 000006c1: RETURNDATASIZE 000006c2: PUSH1 0x00 000006c4: DUP1 000006c5: RETURNDATACOPY 000006c6: RETURNDATASIZE 000006c7: PUSH1 0x00 000006c9: REVERT 000006ca: JUMPDEST 000006cb: POP 000006cc: POP 000006cd: POP 000006ce: POP 000006cf: PUSH1 0x40 000006d1: MLOAD 000006d2: RETURNDATASIZE 000006d3: PUSH1 0x1f 000006d5: NOT 000006d6: PUSH1 0x1f 000006d8: DUP3 000006d9: ADD 000006da: AND 000006db: DUP3 000006dc: ADD 000006dd: DUP1 000006de: PUSH1 0x40 000006e0: MSTORE 000006e1: POP 000006e2: DUP2 000006e3: ADD 000006e4: SWAP1 000006e5: PUSH2 0x06ee 000006e8: SWAP2 000006e9: SWAP1 000006ea: PUSH2 0x0e9b 000006ed: JUMP 000006ee: JUMPDEST 000006ef: PUSH2 0x0645 000006f2: SWAP2 000006f3: SWAP1 000006f4: PUSH2 0x0f56 000006f7: JUMP 000006f8: JUMPDEST 000006f9: SWAP2 000006fa: SWAP1 000006fb: POP 000006fc: JUMP 000006fd: JUMPDEST 000006fe: CALLER 000006ff: PUSH2 0x0710 00000702: PUSH1 0x00 00000704: SLOAD 00000705: PUSH1 0x01 00000707: PUSH1 0x01 00000709: PUSH1 0xa0 0000070b: SHL 0000070c: SUB 0000070d: AND 0000070e: SWAP1 0000070f: JUMP 00000710: JUMPDEST 00000711: PUSH1 0x01 00000713: PUSH1 0x01 00000715: PUSH1 0xa0 00000717: SHL 00000718: SUB 00000719: AND 0000071a: EQ 0000071b: PUSH2 0x0766 0000071e: JUMPI 0000071f: PUSH1 0x40 00000721: MLOAD 00000722: PUSH3 0x461bcd 00000726: PUSH1 0xe5 00000728: SHL 00000729: DUP2 0000072a: MSTORE 0000072b: PUSH1 0x20 0000072d: PUSH1 0x04 0000072f: DUP3 00000730: ADD 00000731: DUP2 00000732: SWAP1 00000733: MSTORE 00000734: PUSH1 0x24 00000736: DUP3 00000737: ADD 00000738: MSTORE 00000739: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 0000075a: PUSH1 0x44 0000075c: DUP3 0000075d: ADD 0000075e: MSTORE 0000075f: PUSH1 0x64 00000761: ADD 00000762: PUSH2 0x02c1 00000765: JUMP 00000766: JUMPDEST 00000767: PUSH1 0x01 00000769: PUSH1 0x01 0000076b: PUSH1 0xa0 0000076d: SHL 0000076e: SUB 0000076f: DUP2 00000770: AND 00000771: PUSH2 0x07e2 00000774: JUMPI 00000775: PUSH1 0x40 00000777: MLOAD 00000778: PUSH3 0x461bcd 0000077c: PUSH1 0xe5 0000077e: SHL 0000077f: DUP2 00000780: MSTORE 00000781: PUSH1 0x20 00000783: PUSH1 0x04 00000785: DUP3 00000786: ADD 00000787: MSTORE 00000788: PUSH1 0x26 0000078a: PUSH1 0x24 0000078c: DUP3 0000078d: ADD 0000078e: MSTORE 0000078f: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 000007b0: PUSH1 0x44 000007b2: DUP3 000007b3: ADD 000007b4: MSTORE 000007b5: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 000007d6: PUSH1 0x64 000007d8: DUP3 000007d9: ADD 000007da: MSTORE 000007db: PUSH1 0x84 000007dd: ADD 000007de: PUSH2 0x02c1 000007e1: JUMP 000007e2: JUMPDEST 000007e3: PUSH1 0x00 000007e5: DUP1 000007e6: SLOAD 000007e7: PUSH1 0x40 000007e9: MLOAD 000007ea: PUSH1 0x01 000007ec: PUSH1 0x01 000007ee: PUSH1 0xa0 000007f0: SHL 000007f1: SUB 000007f2: DUP1 000007f3: DUP6 000007f4: AND 000007f5: SWAP4 000007f6: SWAP3 000007f7: AND 000007f8: SWAP2 000007f9: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 0000081a: SWAP2 0000081b: LOG3 0000081c: PUSH1 0x00 0000081e: DUP1 0000081f: SLOAD 00000820: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000835: NOT 00000836: AND 00000837: PUSH1 0x01 00000839: PUSH1 0x01 0000083b: PUSH1 0xa0 0000083d: SHL 0000083e: SUB 0000083f: SWAP3 00000840: SWAP1 00000841: SWAP3 00000842: AND 00000843: SWAP2 00000844: SWAP1 00000845: SWAP2 00000846: OR 00000847: SWAP1 00000848: SSTORE 00000849: JUMP 0000084a: JUMPDEST 0000084b: PUSH1 0x01 0000084d: PUSH1 0x01 0000084f: PUSH1 0xa0 00000851: SHL 00000852: SUB 00000853: DUP3 00000854: AND 00000855: PUSH1 0x00 00000857: SWAP1 00000858: DUP2 00000859: MSTORE 0000085a: PUSH1 0x01 0000085c: PUSH1 0x20 0000085e: MSTORE 0000085f: PUSH1 0x40 00000861: DUP2 00000862: KECCAK256 00000863: SLOAD 00000864: PUSH1 0xff 00000866: AND 00000867: PUSH2 0x0872 0000086a: JUMPI 0000086b: POP 0000086c: PUSH1 0x00 0000086e: PUSH2 0x08e2 00000871: JUMP 00000872: JUMPDEST 00000873: PUSH1 0x00 00000875: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000004 00000896: PUSH2 0x089e 00000899: DUP5 0000089a: PUSH2 0x0600 0000089d: JUMP 0000089e: JUMPDEST 0000089f: PUSH2 0x08a8 000008a2: SWAP2 000008a3: SWAP1 000008a4: PUSH2 0x0f6e 000008a7: JUMP 000008a8: JUMPDEST 000008a9: PUSH1 0x01 000008ab: PUSH1 0x01 000008ad: PUSH1 0xa0 000008af: SHL 000008b0: SUB 000008b1: DUP1 000008b2: DUP7 000008b3: AND 000008b4: PUSH1 0x00 000008b6: SWAP1 000008b7: DUP2 000008b8: MSTORE 000008b9: PUSH1 0x01 000008bb: PUSH1 0x20 000008bd: DUP2 000008be: DUP2 000008bf: MSTORE 000008c0: PUSH1 0x40 000008c2: DUP1 000008c3: DUP5 000008c4: KECCAK256 000008c5: SWAP5 000008c6: DUP10 000008c7: AND 000008c8: DUP5 000008c9: MSTORE 000008ca: SWAP4 000008cb: SWAP1 000008cc: SWAP2 000008cd: ADD 000008ce: SWAP1 000008cf: MSTORE 000008d0: KECCAK256 000008d1: SLOAD 000008d2: SWAP1 000008d3: SWAP2 000008d4: POP 000008d5: PUSH2 0x08de 000008d8: SWAP1 000008d9: DUP3 000008da: PUSH2 0x0f8e 000008dd: JUMP 000008de: JUMPDEST 000008df: SWAP2 000008e0: POP 000008e1: POP 000008e2: JUMPDEST 000008e3: SWAP3 000008e4: SWAP2 000008e5: POP 000008e6: POP 000008e7: JUMP 000008e8: JUMPDEST 000008e9: DUP1 000008ea: SELFBALANCE 000008eb: LT 000008ec: ISZERO 000008ed: PUSH2 0x0938 000008f0: JUMPI 000008f1: PUSH1 0x40 000008f3: MLOAD 000008f4: PUSH3 0x461bcd 000008f8: PUSH1 0xe5 000008fa: SHL 000008fb: DUP2 000008fc: MSTORE 000008fd: PUSH1 0x20 000008ff: PUSH1 0x04 00000901: DUP3 00000902: ADD 00000903: MSTORE 00000904: PUSH1 0x1d 00000906: PUSH1 0x24 00000908: DUP3 00000909: ADD 0000090a: MSTORE 0000090b: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e6365000000 0000092c: PUSH1 0x44 0000092e: DUP3 0000092f: ADD 00000930: MSTORE 00000931: PUSH1 0x64 00000933: ADD 00000934: PUSH2 0x02c1 00000937: JUMP 00000938: JUMPDEST 00000939: PUSH1 0x00 0000093b: DUP3 0000093c: PUSH1 0x01 0000093e: PUSH1 0x01 00000940: PUSH1 0xa0 00000942: SHL 00000943: SUB 00000944: AND 00000945: DUP3 00000946: PUSH1 0x40 00000948: MLOAD 00000949: PUSH1 0x00 0000094b: PUSH1 0x40 0000094d: MLOAD 0000094e: DUP1 0000094f: DUP4 00000950: SUB 00000951: DUP2 00000952: DUP6 00000953: DUP8 00000954: GAS 00000955: CALL 00000956: SWAP3 00000957: POP 00000958: POP 00000959: POP 0000095a: RETURNDATASIZE 0000095b: DUP1 0000095c: PUSH1 0x00 0000095e: DUP2 0000095f: EQ 00000960: PUSH2 0x0985 00000963: JUMPI 00000964: PUSH1 0x40 00000966: MLOAD 00000967: SWAP2 00000968: POP 00000969: PUSH1 0x1f 0000096b: NOT 0000096c: PUSH1 0x3f 0000096e: RETURNDATASIZE 0000096f: ADD 00000970: AND 00000971: DUP3 00000972: ADD 00000973: PUSH1 0x40 00000975: MSTORE 00000976: RETURNDATASIZE 00000977: DUP3 00000978: MSTORE 00000979: RETURNDATASIZE 0000097a: PUSH1 0x00 0000097c: PUSH1 0x20 0000097e: DUP5 0000097f: ADD 00000980: RETURNDATACOPY 00000981: PUSH2 0x098a 00000984: JUMP 00000985: JUMPDEST 00000986: PUSH1 0x60 00000988: SWAP2 00000989: POP 0000098a: JUMPDEST 0000098b: POP 0000098c: POP 0000098d: SWAP1 0000098e: POP 0000098f: DUP1 00000990: PUSH2 0x0a01 00000993: JUMPI 00000994: PUSH1 0x40 00000996: MLOAD 00000997: PUSH3 0x461bcd 0000099b: PUSH1 0xe5 0000099d: SHL 0000099e: DUP2 0000099f: MSTORE 000009a0: PUSH1 0x20 000009a2: PUSH1 0x04 000009a4: DUP3 000009a5: ADD 000009a6: MSTORE 000009a7: PUSH1 0x3a 000009a9: PUSH1 0x24 000009ab: DUP3 000009ac: ADD 000009ad: MSTORE 000009ae: PUSH32 0x416464726573733a20756e61626c6520746f2073656e642076616c75652c2072 000009cf: PUSH1 0x44 000009d1: DUP3 000009d2: ADD 000009d3: MSTORE 000009d4: PUSH32 0x6563697069656e74206d61792068617665207265766572746564000000000000 000009f5: PUSH1 0x64 000009f7: DUP3 000009f8: ADD 000009f9: MSTORE 000009fa: PUSH1 0x84 000009fc: ADD 000009fd: PUSH2 0x02c1 00000a00: JUMP 00000a01: JUMPDEST 00000a02: POP 00000a03: POP 00000a04: POP 00000a05: JUMP 00000a06: JUMPDEST 00000a07: PUSH1 0x40 00000a09: DUP1 00000a0a: MLOAD 00000a0b: PUSH1 0x01 00000a0d: PUSH1 0x01 00000a0f: PUSH1 0xa0 00000a11: SHL 00000a12: SUB 00000a13: DUP5 00000a14: DUP2 00000a15: AND 00000a16: PUSH1 0x24 00000a18: DUP4 00000a19: ADD 00000a1a: MSTORE 00000a1b: PUSH1 0x44 00000a1d: DUP1 00000a1e: DUP4 00000a1f: ADD 00000a20: DUP6 00000a21: SWAP1 00000a22: MSTORE 00000a23: DUP4 00000a24: MLOAD 00000a25: DUP1 00000a26: DUP5 00000a27: SUB 00000a28: SWAP1 00000a29: SWAP2 00000a2a: ADD 00000a2b: DUP2 00000a2c: MSTORE 00000a2d: PUSH1 0x64 00000a2f: SWAP1 00000a30: SWAP3 00000a31: ADD 00000a32: DUP4 00000a33: MSTORE 00000a34: PUSH1 0x20 00000a36: DUP1 00000a37: DUP4 00000a38: ADD 00000a39: DUP1 00000a3a: MLOAD 00000a3b: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000a58: AND 00000a59: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 00000a7a: OR 00000a7b: SWAP1 00000a7c: MSTORE 00000a7d: DUP4 00000a7e: MLOAD 00000a7f: DUP1 00000a80: DUP6 00000a81: ADD 00000a82: SWAP1 00000a83: SWAP5 00000a84: MSTORE 00000a85: DUP1 00000a86: DUP5 00000a87: MSTORE 00000a88: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 00000aa9: SWAP1 00000aaa: DUP5 00000aab: ADD 00000aac: MSTORE 00000aad: PUSH2 0x0a01 00000ab0: SWAP3 00000ab1: DUP7 00000ab2: SWAP3 00000ab3: SWAP2 00000ab4: PUSH1 0x00 00000ab6: SWAP2 00000ab7: PUSH2 0x0ac4 00000aba: SWAP2 00000abb: DUP6 00000abc: AND 00000abd: SWAP1 00000abe: DUP5 00000abf: SWAP1 00000ac0: PUSH2 0x0b54 00000ac3: JUMP 00000ac4: JUMPDEST 00000ac5: DUP1 00000ac6: MLOAD 00000ac7: SWAP1 00000ac8: SWAP2 00000ac9: POP 00000aca: ISZERO 00000acb: PUSH2 0x0a01 00000ace: JUMPI 00000acf: DUP1 00000ad0: DUP1 00000ad1: PUSH1 0x20 00000ad3: ADD 00000ad4: SWAP1 00000ad5: MLOAD 00000ad6: DUP2 00000ad7: ADD 00000ad8: SWAP1 00000ad9: PUSH2 0x0ae2 00000adc: SWAP2 00000add: SWAP1 00000ade: PUSH2 0x0e7b 00000ae1: JUMP 00000ae2: JUMPDEST 00000ae3: PUSH2 0x0a01 00000ae6: JUMPI 00000ae7: PUSH1 0x40 00000ae9: MLOAD 00000aea: PUSH3 0x461bcd 00000aee: PUSH1 0xe5 00000af0: SHL 00000af1: DUP2 00000af2: MSTORE 00000af3: PUSH1 0x20 00000af5: PUSH1 0x04 00000af7: DUP3 00000af8: ADD 00000af9: MSTORE 00000afa: PUSH1 0x2a 00000afc: PUSH1 0x24 00000afe: DUP3 00000aff: ADD 00000b00: MSTORE 00000b01: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 00000b22: PUSH1 0x44 00000b24: DUP3 00000b25: ADD 00000b26: MSTORE 00000b27: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000 00000b48: PUSH1 0x64 00000b4a: DUP3 00000b4b: ADD 00000b4c: MSTORE 00000b4d: PUSH1 0x84 00000b4f: ADD 00000b50: PUSH2 0x02c1 00000b53: JUMP 00000b54: JUMPDEST 00000b55: PUSH1 0x60 00000b57: PUSH2 0x0b63 00000b5a: DUP5 00000b5b: DUP5 00000b5c: PUSH1 0x00 00000b5e: DUP6 00000b5f: PUSH2 0x0b6d 00000b62: JUMP 00000b63: JUMPDEST 00000b64: SWAP1 00000b65: POP 00000b66: JUMPDEST 00000b67: SWAP4 00000b68: SWAP3 00000b69: POP 00000b6a: POP 00000b6b: POP 00000b6c: JUMP 00000b6d: JUMPDEST 00000b6e: PUSH1 0x60 00000b70: DUP3 00000b71: SELFBALANCE 00000b72: LT 00000b73: ISZERO 00000b74: PUSH2 0x0be5 00000b77: JUMPI 00000b78: PUSH1 0x40 00000b7a: MLOAD 00000b7b: PUSH3 0x461bcd 00000b7f: PUSH1 0xe5 00000b81: SHL 00000b82: DUP2 00000b83: MSTORE 00000b84: PUSH1 0x20 00000b86: PUSH1 0x04 00000b88: DUP3 00000b89: ADD 00000b8a: MSTORE 00000b8b: PUSH1 0x26 00000b8d: PUSH1 0x24 00000b8f: DUP3 00000b90: ADD 00000b91: MSTORE 00000b92: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f 00000bb3: PUSH1 0x44 00000bb5: DUP3 00000bb6: ADD 00000bb7: MSTORE 00000bb8: PUSH32 0x722063616c6c0000000000000000000000000000000000000000000000000000 00000bd9: PUSH1 0x64 00000bdb: DUP3 00000bdc: ADD 00000bdd: MSTORE 00000bde: PUSH1 0x84 00000be0: ADD 00000be1: PUSH2 0x02c1 00000be4: JUMP 00000be5: JUMPDEST 00000be6: DUP5 00000be7: EXTCODESIZE 00000be8: PUSH2 0x0c33 00000beb: JUMPI 00000bec: PUSH1 0x40 00000bee: MLOAD 00000bef: PUSH3 0x461bcd 00000bf3: PUSH1 0xe5 00000bf5: SHL 00000bf6: DUP2 00000bf7: MSTORE 00000bf8: PUSH1 0x20 00000bfa: PUSH1 0x04 00000bfc: DUP3 00000bfd: ADD 00000bfe: MSTORE 00000bff: PUSH1 0x1d 00000c01: PUSH1 0x24 00000c03: DUP3 00000c04: ADD 00000c05: MSTORE 00000c06: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 00000c27: PUSH1 0x44 00000c29: DUP3 00000c2a: ADD 00000c2b: MSTORE 00000c2c: PUSH1 0x64 00000c2e: ADD 00000c2f: PUSH2 0x02c1 00000c32: JUMP 00000c33: JUMPDEST 00000c34: PUSH1 0x00 00000c36: DUP1 00000c37: DUP7 00000c38: PUSH1 0x01 00000c3a: PUSH1 0x01 00000c3c: PUSH1 0xa0 00000c3e: SHL 00000c3f: SUB 00000c40: AND 00000c41: DUP6 00000c42: DUP8 00000c43: PUSH1 0x40 00000c45: MLOAD 00000c46: PUSH2 0x0c4f 00000c49: SWAP2 00000c4a: SWAP1 00000c4b: PUSH2 0x0f27 00000c4e: JUMP 00000c4f: JUMPDEST 00000c50: PUSH1 0x00 00000c52: PUSH1 0x40 00000c54: MLOAD 00000c55: DUP1 00000c56: DUP4 00000c57: SUB 00000c58: DUP2 00000c59: DUP6 00000c5a: DUP8 00000c5b: GAS 00000c5c: CALL 00000c5d: SWAP3 00000c5e: POP 00000c5f: POP 00000c60: POP 00000c61: RETURNDATASIZE 00000c62: DUP1 00000c63: PUSH1 0x00 00000c65: DUP2 00000c66: EQ 00000c67: PUSH2 0x0c8c 00000c6a: JUMPI 00000c6b: PUSH1 0x40 00000c6d: MLOAD 00000c6e: SWAP2 00000c6f: POP 00000c70: PUSH1 0x1f 00000c72: NOT 00000c73: PUSH1 0x3f 00000c75: RETURNDATASIZE 00000c76: ADD 00000c77: AND 00000c78: DUP3 00000c79: ADD 00000c7a: PUSH1 0x40 00000c7c: MSTORE 00000c7d: RETURNDATASIZE 00000c7e: DUP3 00000c7f: MSTORE 00000c80: RETURNDATASIZE 00000c81: PUSH1 0x00 00000c83: PUSH1 0x20 00000c85: DUP5 00000c86: ADD 00000c87: RETURNDATACOPY 00000c88: PUSH2 0x0c91 00000c8b: JUMP 00000c8c: JUMPDEST 00000c8d: PUSH1 0x60 00000c8f: SWAP2 00000c90: POP 00000c91: JUMPDEST 00000c92: POP 00000c93: SWAP2 00000c94: POP 00000c95: SWAP2 00000c96: POP 00000c97: PUSH2 0x04a1 00000c9a: DUP3 00000c9b: DUP3 00000c9c: DUP7 00000c9d: PUSH1 0x60 00000c9f: DUP4 00000ca0: ISZERO 00000ca1: PUSH2 0x0cab 00000ca4: JUMPI 00000ca5: POP 00000ca6: DUP2 00000ca7: PUSH2 0x0b66 00000caa: JUMP 00000cab: JUMPDEST 00000cac: DUP3 00000cad: MLOAD 00000cae: ISZERO 00000caf: PUSH2 0x0cbb 00000cb2: JUMPI 00000cb3: DUP3 00000cb4: MLOAD 00000cb5: DUP1 00000cb6: DUP5 00000cb7: PUSH1 0x20 00000cb9: ADD 00000cba: REVERT 00000cbb: JUMPDEST 00000cbc: DUP2 00000cbd: PUSH1 0x40 00000cbf: MLOAD 00000cc0: PUSH3 0x461bcd 00000cc4: PUSH1 0xe5 00000cc6: SHL 00000cc7: DUP2 00000cc8: MSTORE 00000cc9: PUSH1 0x04 00000ccb: ADD 00000ccc: PUSH2 0x02c1 00000ccf: SWAP2 00000cd0: SWAP1 00000cd1: PUSH2 0x0f43 00000cd4: JUMP 00000cd5: JUMPDEST 00000cd6: PUSH1 0x00 00000cd8: PUSH8 0xffffffffffffffff 00000ce1: DUP1 00000ce2: DUP5 00000ce3: GT 00000ce4: ISZERO 00000ce5: PUSH2 0x0cf0 00000ce8: JUMPI 00000ce9: PUSH2 0x0cf0 00000cec: PUSH2 0x0feb 00000cef: JUMP 00000cf0: JUMPDEST 00000cf1: PUSH1 0x40 00000cf3: MLOAD 00000cf4: PUSH1 0x1f 00000cf6: DUP6 00000cf7: ADD 00000cf8: PUSH1 0x1f 00000cfa: NOT 00000cfb: SWAP1 00000cfc: DUP2 00000cfd: AND 00000cfe: PUSH1 0x3f 00000d00: ADD 00000d01: AND 00000d02: DUP2 00000d03: ADD 00000d04: SWAP1 00000d05: DUP3 00000d06: DUP3 00000d07: GT 00000d08: DUP2 00000d09: DUP4 00000d0a: LT 00000d0b: OR 00000d0c: ISZERO 00000d0d: PUSH2 0x0d18 00000d10: JUMPI 00000d11: PUSH2 0x0d18 00000d14: PUSH2 0x0feb 00000d17: JUMP 00000d18: JUMPDEST 00000d19: DUP2 00000d1a: PUSH1 0x40 00000d1c: MSTORE 00000d1d: DUP1 00000d1e: SWAP4 00000d1f: POP 00000d20: DUP6 00000d21: DUP2 00000d22: MSTORE 00000d23: DUP7 00000d24: DUP7 00000d25: DUP7 00000d26: ADD 00000d27: GT 00000d28: ISZERO 00000d29: PUSH2 0x0d31 00000d2c: JUMPI 00000d2d: PUSH1 0x00 00000d2f: DUP1 00000d30: REVERT 00000d31: JUMPDEST 00000d32: DUP6 00000d33: DUP6 00000d34: PUSH1 0x20 00000d36: DUP4 00000d37: ADD 00000d38: CALLDATACOPY 00000d39: PUSH1 0x00 00000d3b: PUSH1 0x20 00000d3d: DUP8 00000d3e: DUP4 00000d3f: ADD 00000d40: ADD 00000d41: MSTORE 00000d42: POP 00000d43: POP 00000d44: POP 00000d45: SWAP4 00000d46: SWAP3 00000d47: POP 00000d48: POP 00000d49: POP 00000d4a: JUMP 00000d4b: JUMPDEST 00000d4c: DUP1 00000d4d: CALLDATALOAD 00000d4e: PUSH1 0x01 00000d50: PUSH1 0x01 00000d52: PUSH1 0xa0 00000d54: SHL 00000d55: SUB 00000d56: DUP2 00000d57: AND 00000d58: DUP2 00000d59: EQ 00000d5a: PUSH2 0x06f8 00000d5d: JUMPI 00000d5e: PUSH1 0x00 00000d60: DUP1 00000d61: REVERT 00000d62: JUMPDEST 00000d63: PUSH1 0x00 00000d65: PUSH1 0x20 00000d67: DUP3 00000d68: DUP5 00000d69: SUB 00000d6a: SLT 00000d6b: ISZERO 00000d6c: PUSH2 0x0d73 00000d6f: JUMPI 00000d70: DUP1 00000d71: DUP2 00000d72: REVERT 00000d73: JUMPDEST 00000d74: PUSH2 0x0b66 00000d77: DUP3 00000d78: PUSH2 0x0d4b 00000d7b: JUMP 00000d7c: JUMPDEST 00000d7d: PUSH1 0x00 00000d7f: DUP1 00000d80: PUSH1 0x40 00000d82: DUP4 00000d83: DUP6 00000d84: SUB 00000d85: SLT 00000d86: ISZERO 00000d87: PUSH2 0x0d8e 00000d8a: JUMPI 00000d8b: DUP1 00000d8c: DUP2 00000d8d: REVERT 00000d8e: JUMPDEST 00000d8f: PUSH2 0x0d97 00000d92: DUP4 00000d93: PUSH2 0x0d4b 00000d96: JUMP 00000d97: JUMPDEST 00000d98: SWAP2 00000d99: POP 00000d9a: PUSH2 0x0da5 00000d9d: PUSH1 0x20 00000d9f: DUP5 00000da0: ADD 00000da1: PUSH2 0x0d4b 00000da4: JUMP 00000da5: JUMPDEST 00000da6: SWAP1 00000da7: POP 00000da8: SWAP3 00000da9: POP 00000daa: SWAP3 00000dab: SWAP1 00000dac: POP 00000dad: JUMP 00000dae: JUMPDEST 00000daf: PUSH1 0x00 00000db1: DUP1 00000db2: PUSH1 0x40 00000db4: DUP4 00000db5: DUP6 00000db6: SUB 00000db7: SLT 00000db8: ISZERO 00000db9: PUSH2 0x0dc0 00000dbc: JUMPI 00000dbd: DUP2 00000dbe: DUP3 00000dbf: REVERT 00000dc0: JUMPDEST 00000dc1: PUSH2 0x0dc9 00000dc4: DUP4 00000dc5: PUSH2 0x0d4b 00000dc8: JUMP 00000dc9: JUMPDEST 00000dca: SWAP5 00000dcb: PUSH1 0x20 00000dcd: SWAP4 00000dce: SWAP1 00000dcf: SWAP4 00000dd0: ADD 00000dd1: CALLDATALOAD 00000dd2: SWAP4 00000dd3: POP 00000dd4: POP 00000dd5: POP 00000dd6: JUMP 00000dd7: JUMPDEST 00000dd8: PUSH1 0x00 00000dda: DUP1 00000ddb: PUSH1 0x00 00000ddd: DUP1 00000dde: PUSH1 0x80 00000de0: DUP6 00000de1: DUP8 00000de2: SUB 00000de3: SLT 00000de4: ISZERO 00000de5: PUSH2 0x0dec 00000de8: JUMPI 00000de9: DUP2 00000dea: DUP3 00000deb: REVERT 00000dec: JUMPDEST 00000ded: PUSH2 0x0df5 00000df0: DUP6 00000df1: PUSH2 0x0d4b 00000df4: JUMP 00000df5: JUMPDEST 00000df6: SWAP4 00000df7: POP 00000df8: PUSH1 0x20 00000dfa: DUP6 00000dfb: ADD 00000dfc: CALLDATALOAD 00000dfd: SWAP3 00000dfe: POP 00000dff: PUSH1 0x40 00000e01: DUP6 00000e02: ADD 00000e03: CALLDATALOAD 00000e04: PUSH8 0xffffffffffffffff 00000e0d: DUP1 00000e0e: DUP3 00000e0f: GT 00000e10: ISZERO 00000e11: PUSH2 0x0e18 00000e14: JUMPI 00000e15: DUP4 00000e16: DUP5 00000e17: REVERT 00000e18: JUMPDEST 00000e19: DUP2 00000e1a: DUP8 00000e1b: ADD 00000e1c: SWAP2 00000e1d: POP 00000e1e: DUP8 00000e1f: PUSH1 0x1f 00000e21: DUP4 00000e22: ADD 00000e23: SLT 00000e24: PUSH2 0x0e2b 00000e27: JUMPI 00000e28: DUP4 00000e29: DUP5 00000e2a: REVERT 00000e2b: JUMPDEST 00000e2c: PUSH2 0x0e3a 00000e2f: DUP9 00000e30: DUP4 00000e31: CALLDATALOAD 00000e32: PUSH1 0x20 00000e34: DUP6 00000e35: ADD 00000e36: PUSH2 0x0cd5 00000e39: JUMP 00000e3a: JUMPDEST 00000e3b: SWAP4 00000e3c: POP 00000e3d: PUSH1 0x60 00000e3f: DUP8 00000e40: ADD 00000e41: CALLDATALOAD 00000e42: SWAP2 00000e43: POP 00000e44: DUP1 00000e45: DUP3 00000e46: GT 00000e47: ISZERO 00000e48: PUSH2 0x0e4f 00000e4b: JUMPI 00000e4c: DUP3 00000e4d: DUP4 00000e4e: REVERT 00000e4f: JUMPDEST 00000e50: POP 00000e51: DUP6 00000e52: ADD 00000e53: PUSH1 0x1f 00000e55: DUP2 00000e56: ADD 00000e57: DUP8 00000e58: SGT 00000e59: PUSH2 0x0e60 00000e5c: JUMPI 00000e5d: DUP2 00000e5e: DUP3 00000e5f: REVERT 00000e60: JUMPDEST 00000e61: PUSH2 0x0e6f 00000e64: DUP8 00000e65: DUP3 00000e66: CALLDATALOAD 00000e67: PUSH1 0x20 00000e69: DUP5 00000e6a: ADD 00000e6b: PUSH2 0x0cd5 00000e6e: JUMP 00000e6f: JUMPDEST 00000e70: SWAP2 00000e71: POP 00000e72: POP 00000e73: SWAP3 00000e74: SWAP6 00000e75: SWAP2 00000e76: SWAP5 00000e77: POP 00000e78: SWAP3 00000e79: POP 00000e7a: JUMP 00000e7b: JUMPDEST 00000e7c: PUSH1 0x00 00000e7e: PUSH1 0x20 00000e80: DUP3 00000e81: DUP5 00000e82: SUB 00000e83: SLT 00000e84: ISZERO 00000e85: PUSH2 0x0e8c 00000e88: JUMPI 00000e89: DUP1 00000e8a: DUP2 00000e8b: REVERT 00000e8c: JUMPDEST 00000e8d: DUP2 00000e8e: MLOAD 00000e8f: DUP1 00000e90: ISZERO 00000e91: ISZERO 00000e92: DUP2 00000e93: EQ 00000e94: PUSH2 0x0b66 00000e97: JUMPI 00000e98: DUP2 00000e99: DUP3 00000e9a: REVERT 00000e9b: JUMPDEST 00000e9c: PUSH1 0x00 00000e9e: PUSH1 0x20 00000ea0: DUP3 00000ea1: DUP5 00000ea2: SUB 00000ea3: SLT 00000ea4: ISZERO 00000ea5: PUSH2 0x0eac 00000ea8: JUMPI 00000ea9: DUP1 00000eaa: DUP2 00000eab: REVERT 00000eac: JUMPDEST 00000ead: POP 00000eae: MLOAD 00000eaf: SWAP2 00000eb0: SWAP1 00000eb1: POP 00000eb2: JUMP 00000eb3: JUMPDEST 00000eb4: PUSH1 0x00 00000eb6: DUP2 00000eb7: MLOAD 00000eb8: DUP1 00000eb9: DUP5 00000eba: MSTORE 00000ebb: PUSH2 0x0ecb 00000ebe: DUP2 00000ebf: PUSH1 0x20 00000ec1: DUP7 00000ec2: ADD 00000ec3: PUSH1 0x20 00000ec5: DUP7 00000ec6: ADD 00000ec7: PUSH2 0x0fa5 00000eca: JUMP 00000ecb: JUMPDEST 00000ecc: PUSH1 0x1f 00000ece: ADD 00000ecf: PUSH1 0x1f 00000ed1: NOT 00000ed2: AND 00000ed3: SWAP3 00000ed4: SWAP1 00000ed5: SWAP3 00000ed6: ADD 00000ed7: PUSH1 0x20 00000ed9: ADD 00000eda: SWAP3 00000edb: SWAP2 00000edc: POP 00000edd: POP 00000ede: JUMP 00000edf: JUMPDEST 00000ee0: PUSH1 0x00 00000ee2: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000f03: DUP5 00000f04: AND 00000f05: DUP3 00000f06: MSTORE 00000f07: DUP3 00000f08: MLOAD 00000f09: PUSH2 0x0f19 00000f0c: DUP2 00000f0d: PUSH1 0x04 00000f0f: DUP6 00000f10: ADD 00000f11: PUSH1 0x20 00000f13: DUP8 00000f14: ADD 00000f15: PUSH2 0x0fa5 00000f18: JUMP 00000f19: JUMPDEST 00000f1a: SWAP2 00000f1b: SWAP1 00000f1c: SWAP2 00000f1d: ADD 00000f1e: PUSH1 0x04 00000f20: ADD 00000f21: SWAP4 00000f22: SWAP3 00000f23: POP 00000f24: POP 00000f25: POP 00000f26: JUMP 00000f27: JUMPDEST 00000f28: PUSH1 0x00 00000f2a: DUP3 00000f2b: MLOAD 00000f2c: PUSH2 0x0f39 00000f2f: DUP2 00000f30: DUP5 00000f31: PUSH1 0x20 00000f33: DUP8 00000f34: ADD 00000f35: PUSH2 0x0fa5 00000f38: JUMP 00000f39: JUMPDEST 00000f3a: SWAP2 00000f3b: SWAP1 00000f3c: SWAP2 00000f3d: ADD 00000f3e: SWAP3 00000f3f: SWAP2 00000f40: POP 00000f41: POP 00000f42: JUMP 00000f43: JUMPDEST 00000f44: PUSH1 0x00 00000f46: PUSH1 0x20 00000f48: DUP3 00000f49: MSTORE 00000f4a: PUSH2 0x0b66 00000f4d: PUSH1 0x20 00000f4f: DUP4 00000f50: ADD 00000f51: DUP5 00000f52: PUSH2 0x0eb3 00000f55: JUMP 00000f56: JUMPDEST 00000f57: PUSH1 0x00 00000f59: DUP3 00000f5a: NOT 00000f5b: DUP3 00000f5c: GT 00000f5d: ISZERO 00000f5e: PUSH2 0x0f69 00000f61: JUMPI 00000f62: PUSH2 0x0f69 00000f65: PUSH2 0x0fd5 00000f68: JUMP 00000f69: JUMPDEST 00000f6a: POP 00000f6b: ADD 00000f6c: SWAP1 00000f6d: JUMP 00000f6e: JUMPDEST 00000f6f: PUSH1 0x00 00000f71: DUP3 00000f72: PUSH2 0x0f89 00000f75: JUMPI 00000f76: PUSH4 0x4e487b71 00000f7b: PUSH1 0xe0 00000f7d: SHL 00000f7e: DUP2 00000f7f: MSTORE 00000f80: PUSH1 0x12 00000f82: PUSH1 0x04 00000f84: MSTORE 00000f85: PUSH1 0x24 00000f87: DUP2 00000f88: REVERT 00000f89: JUMPDEST 00000f8a: POP 00000f8b: DIV 00000f8c: SWAP1 00000f8d: JUMP 00000f8e: JUMPDEST 00000f8f: PUSH1 0x00 00000f91: DUP3 00000f92: DUP3 00000f93: LT 00000f94: ISZERO 00000f95: PUSH2 0x0fa0 00000f98: JUMPI 00000f99: PUSH2 0x0fa0 00000f9c: PUSH2 0x0fd5 00000f9f: JUMP 00000fa0: JUMPDEST 00000fa1: POP 00000fa2: SUB 00000fa3: SWAP1 00000fa4: JUMP 00000fa5: JUMPDEST 00000fa6: PUSH1 0x00 00000fa8: JUMPDEST 00000fa9: DUP4 00000faa: DUP2 00000fab: LT 00000fac: ISZERO 00000fad: PUSH2 0x0fc0 00000fb0: JUMPI 00000fb1: DUP2 00000fb2: DUP2 00000fb3: ADD 00000fb4: MLOAD 00000fb5: DUP4 00000fb6: DUP3 00000fb7: ADD 00000fb8: MSTORE 00000fb9: PUSH1 0x20 00000fbb: ADD 00000fbc: PUSH2 0x0fa8 00000fbf: JUMP 00000fc0: JUMPDEST 00000fc1: DUP4 00000fc2: DUP2 00000fc3: GT 00000fc4: ISZERO 00000fc5: PUSH2 0x0fcf 00000fc8: JUMPI 00000fc9: PUSH1 0x00 00000fcb: DUP5 00000fcc: DUP5 00000fcd: ADD 00000fce: MSTORE 00000fcf: JUMPDEST 00000fd0: POP 00000fd1: POP 00000fd2: POP 00000fd3: POP 00000fd4: JUMP 00000fd5: JUMPDEST 00000fd6: PUSH4 0x4e487b71 00000fdb: PUSH1 0xe0 00000fdd: SHL 00000fde: PUSH1 0x00 00000fe0: MSTORE 00000fe1: PUSH1 0x11 00000fe3: PUSH1 0x04 00000fe5: MSTORE 00000fe6: PUSH1 0x24 00000fe8: PUSH1 0x00 00000fea: REVERT 00000feb: JUMPDEST 00000fec: PUSH4 0x4e487b71 00000ff1: PUSH1 0xe0 00000ff3: SHL 00000ff4: PUSH1 0x00 00000ff6: MSTORE 00000ff7: PUSH1 0x41 00000ff9: PUSH1 0x04 00000ffb: MSTORE 00000ffc: PUSH1 0x24 00000ffe: PUSH1 0x00 00001000: REVERT 00001001: INVALID 00001002: LOG2 00001003: PUSH5 0x6970667358 00001009: UNKNOWN(0x22) 0000100a: SLT 0000100b: KECCAK256 0000100c: UNKNOWN(0xF6) 0000100d: BLOBHASH 0000100e: AND 0000100f: UNKNOWN(0x26) 00001010: PUSH4 0xab89a4cd 00001015: LOG1 00001016: PUSH6 0x43eee69c0a0e 0000101d: UNKNOWN(0xAE) 0000101e: NUMBER 0000101f: UNKNOWN(0xDB) 00001020: PUSH22 0x2152fb31ee3c3c6739a32e64736f6c63430008020033
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xbf539531995ea5266ae14a25089575a90ac31fcd9a29cfb9371057e68ea4d15c
call_targets:
0x55d3eeac5fc4703f483209fd18dac46d4f47cb70
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xbf539531995ea5266ae14a25089575a90ac31fcd9a29cfb9371057e68ea4d15c",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x55d3eeac5fc4703f483209fd18dac46d4f47cb70"
],
"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": "0xe7f974ec",
"selector": "0xe7f974ec",
"calldata_variants": [
"0xe7f974ec",
"0xe7f974ec0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf7888aec",
"selector": "0xf7888aec",
"calldata_variants": [
"0xf7888aec",
"0xf7888aec0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xabf7f5eb",
"selector": "0xabf7f5eb",
"calldata_variants": [
"0xabf7f5eb",
"0xabf7f5eb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe1af091e",
"selector": "0xe1af091e",
"calldata_variants": [
"0xe1af091e",
"0xe1af091e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x715018a6",
"selector": "0x715018a6",
"calldata_variants": [
"0x715018a6",
"0x715018a60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x983ef3ed",
"selector": "0x983ef3ed",
"calldata_variants": [
"0x983ef3ed",
"0x983ef3ed0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1012,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2389,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3164,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [],
"untrusted_call_count": 3
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xbf539531995ea5266ae14a25089575a90ac31fcd9a29cfb9371057e68ea4d15c
call_targets:
0x55d3eeac5fc4703f483209fd18dac46d4f47cb70
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xbf539531995ea5266ae14a25089575a90ac31fcd9a29cfb9371057e68ea4d15c",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x55d3eeac5fc4703f483209fd18dac46d4f47cb70"
],
"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": "0xe7f974ec",
"selector": "0xe7f974ec",
"calldata_variants": [
"0xe7f974ec",
"0xe7f974ec0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf7888aec",
"selector": "0xf7888aec",
"calldata_variants": [
"0xf7888aec",
"0xf7888aec0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xabf7f5eb",
"selector": "0xabf7f5eb",
"calldata_variants": [
"0xabf7f5eb",
"0xabf7f5eb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe1af091e",
"selector": "0xe1af091e",
"calldata_variants": [
"0xe1af091e",
"0xe1af091e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x715018a6",
"selector": "0x715018a6",
"calldata_variants": [
"0x715018a6",
"0x715018a60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x983ef3ed",
"selector": "0x983ef3ed",
"calldata_variants": [
"0x983ef3ed",
"0x983ef3ed0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1012,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2389,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3164,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": []
}
|