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

Analysis Run

af29b02b-953d-4a9b-9069-3f7e90e09a02

complete
Chain ID
1
Address
Block Number
Created
Sun, Jan 4, 2026 4:37 AM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Bytecode only
Review Backing
Not yet
Best current signal
Untrusted CALL target/value reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
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

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: no

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
0
No findings?
yes
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.
View stderr
[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":[]}
Metadata
{
    "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
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
4
EXT*/BALANCE
2
Total opcodes
2304
Flags
No heuristic flags raised.
View cast disassembly output
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

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_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
view
trace_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": []
}