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

Analysis Run

84ef7e3c-0bf1-448d-859f-8a8ea5d8a823

complete
Chain ID
1
Address
Block Number
Created
Sat, Jan 3, 2026 9:32 PM
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
31460 report.consolidate complete 1 / 1 3 months ago
77386 artifact.fetch complete 1 / 3 1 week ago
77387 tool.cast_disasm complete 1 / 3 1 week ago
77388 analysis.bundle complete 1 / 3 1 week ago
77389 capability.graph complete 1 / 3 1 week ago
77390 detector.run complete 1 / 3 1 week ago
77391 validation.fork complete 1 / 3 1 week ago

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 value-extraction path identified in the bytecode; value-transfer and swap routines appear role-gated with fixed external targets.
View stderr
[codex:1225850] OpenAI Codex v0.77.0 (research preview)
[codex:1225850] --------
[codex:1225850] workdir: /tmp/codex-multi-5105loqe
[codex:1225850] model: gpt-5.2-codex
[codex:1225850] provider: openai
[codex:1225850] approval: never
[codex:1225850] sandbox: read-only
[codex:1225850] reasoning effort: xhigh
[codex:1225850] reasoning summaries: auto
[codex:1225850] session id: 019b85bc-8cc7-7df3-b1da-ada722af7458
[codex:1225850] --------
[codex:1225850] user
[codex:1225850] You are a profit-focused exploit hunter analyzing EVM bytecode. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1225850] 
[codex:1225850] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:1225850] 
[codex:1225850] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1225850] - Gas inefficiency, code quality, or best practices
[codex:1225850] - Theoretical vulnerabilities without a clear extraction path
[codex:1225850] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:1225850] - Issues requiring social engineering or off-chain coordination
[codex:1225850] 
[codex:1225850] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:1225850] - CALL/DELEGATECALL with controllable destination or calldata
[codex:1225850] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:1225850] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:1225850] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:1225850] - External calls before state updates (reentrancy)
[codex:1225850] - SELFDESTRUCT with controllable beneficiary
[codex:1225850] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:1225850] 
[codex:1225850] For each finding, you MUST explain:
[codex:1225850] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:1225850] 2. The concrete sequence of transactions to extract value
[codex:1225850] 3. Why you believe this is exploitable (not just suspicious)
[codex:1225850] 
[codex:1225850] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:1225850] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:1225850] 
[codex:1225850] Output MUST be valid JSON matching the provided schema.
[codex:1225850] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1225850] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1225850] mcp startup: no servers
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Reading instructions and BYTECODE_BUNDLE.txt**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc ls in /tmp/codex-multi-5105loqe succeeded in 6ms:
[codex:1225850] BYTECODE_BUNDLE.txt
[codex:1225850] codex-output-schema.json
[codex:1225850] exec
[codex:1225850] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-5105loqe succeeded in 5ms:
[codex:1225850] Runtime bytecode bundle for best-effort auditing.
[codex:1225850] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1225850] 
[codex:1225850] FILE: runtime_bytecode.hex
[codex:1225850] 0x6080604052600436106101025760003560e01c806375b238fc116100955780639df806d6116100645780639df806d61461032b578063a217fddf1461034b578063ad5c464814610360578063ba8bca5a14610394578063d547741f146103c857600080fd5b806375b238fc1461026f5780637a01a1da146102a357806389a30271146102d757806391d148541461030b57600080fd5b80632b2604f1116100d15780632b2604f1146101db5780632f2ff15d1461020f57806336568abe1461022f57806351cff8d91461024f57600080fd5b806301ffc9a71461010e578063248a9ca31461014357806327810b6e1461018157806329675f29146101b957600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b5061012e61012936600461118c565b6103e8565b60405190151581526020015b60405180910390f35b34801561014f57600080fd5b5061017361015e3660046111b6565b60009081526020819052604090206001015490565b60405190815260200161013a565b34801561018d57600080fd5b506001546101a1906001600160a01b031681565b6040516001600160a01b03909116815260200161013a565b3480156101c557600080fd5b506101d96101d43660046111dd565b61041f565b005b3480156101e757600080fd5b506101a17f00000000000000000000000062d0a8458ed7719fdaf978fe5929c6d342b0bfce81565b34801561021b57600080fd5b506101d961022a366004611238565b610562565b34801561023b57600080fd5b506101d961024a366004611238565b61058c565b34801561025b57600080fd5b506101d961026a366004611264565b61060f565b34801561027b57600080fd5b506101737fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b3480156102af57600080fd5b506101737ff8cd32ed93fc2f9fc78152a14807c9609af3d99c5fe4dc6b106a801aaddfe90e81565b3480156102e357600080fd5b506101a17f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b34801561031757600080fd5b5061012e610326366004611238565b610779565b34801561033757600080fd5b506101d9610346366004611264565b6107a2565b34801561035757600080fd5b50610173600081565b34801561036c57600080fd5b506101a17f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b3480156103a057600080fd5b506101a17f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156103d457600080fd5b506101d96103e3366004611238565b610848565b60006001600160e01b03198216637965db0b60e01b148061041957506301ffc9a760e01b6001600160e01b03198316145b92915050565b7ff8cd32ed93fc2f9fc78152a14807c9609af3d99c5fe4dc6b106a801aaddfe90e6104498161086d565b6000851161046a5760405163162908e360e11b815260040160405180910390fd5b821561052f576040516370a0823160e01b81523060048201526000907f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001600160a01b0316906370a0823190602401602060405180830381865afa1580156104d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fb919061127f565b90508581101561051e5760405163c52e3eff60e01b815260040160405180910390fd5b61052986868561087a565b5061055b565b844710156105505760405163c52e3eff60e01b815260040160405180910390fd5b61055b858584610a82565b5050505050565b60008281526020819052604090206001015461057d8161086d565b6105878383610bde565b505050565b6001600160a01b03811633146106015760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61060b8282610c62565b5050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756106398161086d565b60006001600160a01b0383166106da57504760008161066b5760405163c52e3eff60e01b815260040160405180910390fd5b60405133908390600081818185875af1925050503d80600081146106ab576040519150601f19603f3d011682016040523d82523d6000602084013e6106b0565b606091505b505080915050806106d457604051631d42c86760e21b815260040160405180910390fd5b50505050565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561071e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610742919061127f565b9050600081116107655760405163c52e3eff60e01b815260040160405180910390fd5b6105876001600160a01b0384163383610cc7565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756107cc8161086d565b6001600160a01b0382166107f35760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0384169081179091556040519081527f073f38af2c94f21e221425553daa2b4d4d0c0737465b75791e3706316b9eb8869060200160405180910390a15050565b6000828152602081905260409020600101546108638161086d565b6105878383610c62565b6108778133610d19565b50565b60408051600380825260808201909252600091602082016060803683370190505090507f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48816000815181106108d1576108d16112ae565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610925576109256112ae565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000062d0a8458ed7719fdaf978fe5929c6d342b0bfce81600281518110610979576109796112ae565b6001600160a01b0392831660209182029290920101526001546040516338ed173960e01b81526000927f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8116926338ed1739926109e5928a928a92899291909116908a90600401611309565b6000604051808303816000875af1158015610a04573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a2c9190810190611345565b905060008160018351610a3f9190611428565b81518110610a4f57610a4f6112ae565b6020026020010151905060008111610a7a5760405163081ceff360e41b815260040160405180910390fd5b505050505050565b6040805160028082526060820183526000926020830190803683370190505090507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600081518110610ad757610ad76112ae565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000062d0a8458ed7719fdaf978fe5929c6d342b0bfce81600181518110610b2b57610b2b6112ae565b6001600160a01b039283166020918202929092010152600154604051637ff36ab560e01b81526000927f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d811692637ff36ab5928992610b97928a92899291909116908a9060040161143b565b60006040518083038185885af1158015610bb5573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052610a2c9190810190611345565b610be88282610779565b61060b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610c1e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610c6c8282610779565b1561060b576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610587908490610d72565b610d238282610779565b61060b57610d3081610e47565b610d3b836020610e59565b604051602001610d4c929190611494565b60408051601f198184030181529082905262461bcd60e51b82526105f891600401611509565b6000610dc7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ffc9092919063ffffffff16565b9050805160001480610de8575080806020019051810190610de8919061153c565b6105875760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105f8565b60606104196001600160a01b03831660145b60606000610e68836002611559565b610e73906002611570565b67ffffffffffffffff811115610e8b57610e8b611298565b6040519080825280601f01601f191660200182016040528015610eb5576020820181803683370190505b509050600360fc1b81600081518110610ed057610ed06112ae565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610eff57610eff6112ae565b60200101906001600160f81b031916908160001a9053506000610f23846002611559565b610f2e906001611570565b90505b6001811115610fa6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610f6257610f626112ae565b1a60f81b828281518110610f7857610f786112ae565b60200101906001600160f81b031916908160001a90535060049490941c93610f9f81611583565b9050610f31565b508315610ff55760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105f8565b9392505050565b606061100b8484600085611013565b949350505050565b6060824710156110745760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105f8565b600080866001600160a01b03168587604051611090919061159a565b60006040518083038185875af1925050503d80600081146110cd576040519150601f19603f3d011682016040523d82523d6000602084013e6110d2565b606091505b50915091506110e3878383876110ee565b979650505050505050565b6060831561115d578251600003611156576001600160a01b0385163b6111565760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105f8565b508161100b565b61100b83838151156111725781518083602001fd5b8060405162461bcd60e51b81526004016105f89190611509565b60006020828403121561119e57600080fd5b81356001600160e01b031981168114610ff557600080fd5b6000602082840312156111c857600080fd5b5035919050565b801515811461087757600080fd5b600080600080608085870312156111f357600080fd5b8435935060208501359250604085013561120c816111cf565b9396929550929360600135925050565b80356001600160a01b038116811461123357600080fd5b919050565b6000806040838503121561124b57600080fd5b8235915061125b6020840161121c565b90509250929050565b60006020828403121561127657600080fd5b610ff58261121c565b60006020828403121561129157600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020840193506020830160005b828110156112ff5781516001600160a01b03168652602095860195909101906001016112d8565b5093949350505050565b85815284602082015260a06040820152600061132860a08301866112c4565b6001600160a01b0394909416606083015250608001529392505050565b60006020828403121561135757600080fd5b815167ffffffffffffffff81111561136e57600080fd5b8201601f8101841361137f57600080fd5b805167ffffffffffffffff81111561139957611399611298565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156113c6576113c6611298565b6040529182526020818401810192908101878411156113e457600080fd5b6020850194505b83851015611407578451808252602095860195909350016113eb565b509695505050505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561041957610419611412565b84815260806020820152600061145460808301866112c4565b6001600160a01b03949094166040830152506060015292915050565b60005b8381101561148b578181015183820152602001611473565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516114cc816017850160208801611470565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516114fd816028840160208801611470565b01602801949350505050565b6020815260008251806020840152611528816040850160208701611470565b601f01601f19169190910160400192915050565b60006020828403121561154e57600080fd5b8151610ff5816111cf565b808202811582820484141761041957610419611412565b8082018082111561041957610419611412565b60008161159257611592611412565b506000190190565b600082516115ac818460208701611470565b919091019291505056fea26469706673582212201cc4f025aea76981268579ae06cdc546a1bfbdbf47c5db93df0b53a134045a8f64736f6c634300081c0033
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Analyzing Solidity bytecode for vulnerabilities**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] # remove possible trailing
[codex:1225850] if hexdata.endswith('\"'):
[codex:1225850]     hexdata=hexdata.strip('\"')
[codex:1225850] # bytes
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] # opcode lengths for PUSH
[codex:1225850] ops=[]
[codex:1225850] 
[codex:1225850] def opcode_len(op):
[codex:1225850]     if 0x60 <= op <= 0x7f:
[codex:1225850]         return 1 + (op-0x5f)
[codex:1225850]     return 1
[codex:1225850] 
[codex:1225850] # map opcode names minimal
[codex:1225850] names={
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xff:'SELFDESTRUCT',
[codex:1225850] 0x55:'SSTORE',0x54:'SLOAD',0x56:'JUMP',0x57:'JUMPI',0x5b:'JUMPDEST'
[codex:1225850] }
[codex:1225850] 
[codex:1225850] i=0
[codex:1225850] while i < len(code):
[codex:1225850]     op=code[i]
[codex:1225850]     ops.append((i,op))
[codex:1225850]     i+=opcode_len(op)
[codex:1225850] 
[codex:1225850] # find CALL/DELEGATECALL/SELFDESTRUCT
[codex:1225850] for i,op in ops:
[codex:1225850]     if op in (0xf1,0xf4,0xff,0xf2,0xf0,0xf5,0xfa):
[codex:1225850]         print(hex(i), names.get(op,hex(op)))
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 33ms:
[codex:1225850] 0x4c6 STATICCALL
[codex:1225850] 0x67b CALL
[codex:1225850] 0x70d STATICCALL
[codex:1225850] 0x9f3 CALL
[codex:1225850] 0xba4 CALL
[codex:1225850] 0x109d CALL
[codex:1225850] 0x15c3 CREATE
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Examining contract opcodes and creating disassembler**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] # opcode names
[codex:1225850] opnames = {i: f'PUSH{i-0x5f}' for i in range(0x60,0x80)}
[codex:1225850] # add
[codex:1225850] names={
[codex:1225850] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1225850] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1225850] 0x20:'SHA3',
[codex:1225850] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850] 
[codex:1225850] names.update(opnames)
[codex:1225850] 
[codex:1225850] def disasm(start, end):
[codex:1225850]     i=start
[codex:1225850]     out=[]
[codex:1225850]     while i<end:
[codex:1225850]         op=code[i]
[codex:1225850]         name=names.get(op, hex(op))
[codex:1225850]         if 0x60<=op<=0x7f:
[codex:1225850]             n=op-0x5f
[codex:1225850]             data=code[i+1:i+1+n]
[codex:1225850]             out.append((i, name, data.hex()))
[codex:1225850]             i+=1+n
[codex:1225850]         else:
[codex:1225850]             out.append((i,name,''))
[codex:1225850]             i+=1
[codex:1225850]     return out
[codex:1225850] 
[codex:1225850] # identify call offsets
[codex:1225850] call_offsets=[0x4c6,0x67b,0x70d,0x9f3,0xba4,0x109d,0x15c3]
[codex:1225850] for off in call_offsets:
[codex:1225850]     start=max(0,off-40)
[codex:1225850]     end=min(len(code),off+40)
[codex:1225850]     print('\\n== around',hex(off))
[codex:1225850]     for i,name,data in disasm(start,end):
[codex:1225850]         mark='>>' if i==off else '  '
[codex:1225850]         if data:
[codex:1225850]             print(f\"{mark} {i:04x} {name} {data}\")
[codex:1225850]         else:
[codex:1225850]             print(f\"{mark} {i:04x} {name}\")
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 26ms:
[codex:1225850] 
[codex:1225850] == around 0x4c6
[codex:1225850]    049e SWAP14
[codex:1225850]    049f 0x4a
[codex:1225850]    04a0 0x2e
[codex:1225850]    04a1 SWAP15
[codex:1225850]    04a2 0xb0
[codex:1225850]    04a3 0xce
[codex:1225850]    04a4 CALLDATASIZE
[codex:1225850]    04a5 MOD
[codex:1225850]    04a6 0xeb
[codex:1225850]    04a7 BASEFEE
[codex:1225850]    04a8 PUSH1 01
[codex:1225850]    04aa PUSH1 01
[codex:1225850]    04ac PUSH1 a0
[codex:1225850]    04ae SHL
[codex:1225850]    04af SUB
[codex:1225850]    04b0 AND
[codex:1225850]    04b1 SWAP1
[codex:1225850]    04b2 PUSH4 70a08231
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Analyzing ABI decoding functions and external calls**
[codex:1225850] 
[codex:1225850] I’m piecing together how the contract decodes multi-parameter calls, focusing on an ABI decoder that handles four parameters including at least one address validated by a typical address-checking subroutine. I’m also examining key external calls like balanceOf and Uniswap router to assess if user input addresses affect their usage or if restrictions apply. This will help me understand the contract’s flow around critical functions like swaps or withdrawals.
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] 
[codex:1225850] # simple disasm function around 0x111f0
[codex:1225850] start=0x111e0
[codex:1225850] end=0x11240
[codex:1225850] 
[codex:1225850] names={
[codex:1225850] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1225850] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1225850] 0x20:'SHA3',
[codex:1225850] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850] 
[codex:1225850] # disasm
[codex:1225850] 
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850]     op=code[i]
[codex:1225850]     name=names.get(op, hex(op))
[codex:1225850]     if 0x60<=op<=0x7f:
[codex:1225850]         n=op-0x5f
[codex:1225850]         data=code[i+1:i+1+n]
[codex:1225850]         print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850]         i+=1+n
[codex:1225850]     else:
[codex:1225850]         print(f\"{i:04x}: {name}\")
[codex:1225850]         i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe exited 1 in 31ms:
[codex:1225850] Traceback (most recent call last):
[codex:1225850]   File "<stdin>", line 27, in <module>
[codex:1225850] IndexError: index out of range
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Adjusting code length specification**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] 
[codex:1225850] start=0x111e0
[codex:1225850] end=0x11280
[codex:1225850] if end>len(code): end=len(code)
[codex:1225850] 
[codex:1225850] names={
[codex:1225850] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1225850] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1225850] 0x20:'SHA3',
[codex:1225850] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850] 
[codex:1225850] 
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850]     op=code[i]
[codex:1225850]     name=names.get(op, hex(op))
[codex:1225850]     if 0x60<=op<=0x7f:
[codex:1225850]         n=op-0x5f
[codex:1225850]         data=code[i+1:i+1+n]
[codex:1225850]         print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850]         i+=1+n
[codex:1225850]     else:
[codex:1225850]         print(f\"{i:04x}: {name}\")
[codex:1225850]         i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 23ms:
[codex:1225850] 
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Checking code length for offsets**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] print(len(code), hex(len(code)))
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 22ms:
[codex:1225850] 5612 0x15ec
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Correcting address interpretation**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] 
[codex:1225850] start=0x11e0
[codex:1225850] end=0x1240
[codex:1225850] if end>len(code): end=len(code)
[codex:1225850] 
[codex:1225850] names={
[codex:1225850] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1225850] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1225850] 0x20:'SHA3',
[codex:1225850] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850] 
[codex:1225850] 
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850]     op=code[i]
[codex:1225850]     name=names.get(op, hex(op))
[codex:1225850]     if 0x60<=op<=0x7f:
[codex:1225850]         n=op-0x5f
[codex:1225850]         data=code[i+1:i+1+n]
[codex:1225850]         print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850]         i+=1+n
[codex:1225850]     else:
[codex:1225850]         print(f\"{i:04x}: {name}\")
[codex:1225850]         i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 23ms:
[codex:1225850] 11e0: DUP1
[codex:1225850] 11e1: PUSH1 00
[codex:1225850] 11e3: DUP1
[codex:1225850] 11e4: PUSH1 80
[codex:1225850] 11e6: DUP6
[codex:1225850] 11e7: DUP8
[codex:1225850] 11e8: SUB
[codex:1225850] 11e9: SLT
[codex:1225850] 11ea: ISZERO
[codex:1225850] 11eb: PUSH2 11f3
[codex:1225850] 11ee: JUMPI
[codex:1225850] 11ef: PUSH1 00
[codex:1225850] 11f1: DUP1
[codex:1225850] 11f2: REVERT
[codex:1225850] 11f3: JUMPDEST
[codex:1225850] 11f4: DUP5
[codex:1225850] 11f5: CALLDATALOAD
[codex:1225850] 11f6: SWAP4
[codex:1225850] 11f7: POP
[codex:1225850] 11f8: PUSH1 20
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Identifying function parameter decoding**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] 
[codex:1225850] start=0x1250
[codex:1225850] end=0x12b0
[codex:1225850] 
[codex:1225850] names={
[codex:1225850] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1225850] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1225850] 0x20:'SHA3',
[codex:1225850] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850] 
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850]     op=code[i]
[codex:1225850]     name=names.get(op, hex(op))
[codex:1225850]     if 0x60<=op<=0x7f:
[codex:1225850]         n=op-0x5f
[codex:1225850]         data=code[i+1:i+1+n]
[codex:1225850]         print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850]         i+=1+n
[codex:1225850]     else:
[codex:1225850]         print(f\"{i:04x}: {name}\")
[codex:1225850]         i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 23ms:
[codex:1225850] 1250: PUSH2 125b
[codex:1225850] 1253: PUSH1 20
[codex:1225850] 1255: DUP5
[codex:1225850] 1256: ADD
[codex:1225850] 1257: PUSH2 121c
[codex:1225850] 125a: JUMP
[codex:1225850] 125b: JUMPDEST
[codex:1225850] 125c: SWAP1
[codex:1225850] 125d: POP
[codex:1225850] 125e: SWAP3
[codex:1225850] 125f: POP
[codex:1225850] 1260: SWAP3
[codex:1225850] 1261: SWAP1
[codex:1225850] 1262: POP
[codex:1225850] 1263: JUMP
[codex:1225850] 1264: JUMPDEST
[codex:1225850] 1265: PUSH1 00
[codex:1225850] 1267: PUSH1 20
[codex:1225850] 1269: DUP3
[codex:1225850] 126a: DUP5
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Analyzing function selectors and dispatch mappings**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] 
[codex:1225850] start=0x0600
[codex:1225850] end=0x06f0
[codex:1225850] 
[codex:1225850] names={
[codex:1225850] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1225850] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1225850] 0x20:'SHA3',
[codex:1225850] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850] 
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850]     op=code[i]
[codex:1225850]     name=names.get(op, hex(op))
[codex:1225850]     if 0x60<=op<=0x7f:
[codex:1225850]         n=op-0x5f
[codex:1225850]         data=code[i+1:i+1+n]
[codex:1225850]         print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850]         i+=1+n
[codex:1225850]     else:
[codex:1225850]         print(f\"{i:04x}: {name}\")
[codex:1225850]         i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 26ms:
[codex:1225850] 0600: REVERT
[codex:1225850] 0601: JUMPDEST
[codex:1225850] 0602: PUSH2 060b
[codex:1225850] 0605: DUP3
[codex:1225850] 0606: DUP3
[codex:1225850] 0607: PUSH2 0c62
[codex:1225850] 060a: JUMP
[codex:1225850] 060b: JUMPDEST
[codex:1225850] 060c: POP
[codex:1225850] 060d: POP
[codex:1225850] 060e: JUMP
[codex:1225850] 060f: JUMPDEST
[codex:1225850] 0610: PUSH32 a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775
[codex:1225850] 0631: PUSH2 0639
[codex:1225850] 0634: DUP2
[codex:1225850] 0635: PUSH2 086d
[codex:1225850] 0638: JUMP
[codex:1225850] 0639: JUMPDEST
[codex:1225850] 063a: PUSH1 00
[codex:1225850] 063c: PUSH1 01
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Requesting more content**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] 
[codex:1225850] start=0x06d8
[codex:1225850] end=0x0760
[codex:1225850] 
[codex:1225850] names={
[codex:1225850] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1225850] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1225850] 0x20:'SHA3',
[codex:1225850] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850] 
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850]     op=code[i]
[codex:1225850]     name=names.get(op, hex(op))
[codex:1225850]     if 0x60<=op<=0x7f:
[codex:1225850]         n=op-0x5f
[codex:1225850]         data=code[i+1:i+1+n]
[codex:1225850]         print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850]         i+=1+n
[codex:1225850]     else:
[codex:1225850]         print(f\"{i:04x}: {name}\")
[codex:1225850]         i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 35ms:
[codex:1225850] 06d8: POP
[codex:1225850] 06d9: JUMP
[codex:1225850] 06da: JUMPDEST
[codex:1225850] 06db: PUSH1 40
[codex:1225850] 06dd: MLOAD
[codex:1225850] 06de: PUSH4 70a08231
[codex:1225850] 06e3: PUSH1 e0
[codex:1225850] 06e5: SHL
[codex:1225850] 06e6: DUP2
[codex:1225850] 06e7: MSTORE
[codex:1225850] 06e8: ADDRESS
[codex:1225850] 06e9: PUSH1 04
[codex:1225850] 06eb: DUP3
[codex:1225850] 06ec: ADD
[codex:1225850] 06ed: MSTORE
[codex:1225850] 06ee: PUSH1 01
[codex:1225850] 06f0: PUSH1 01
[codex:1225850] 06f2: PUSH1 a0
[codex:1225850] 06f4: SHL
[codex:1225850] 06f5: SUB
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Requesting continuation**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] 
[codex:1225850] start=0x0740
[codex:1225850] end=0x07a5
[codex:1225850] 
[codex:1225850] names={
[codex:1225850] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1225850] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1225850] 0x20:'SHA3',
[codex:1225850] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850] 
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850]     op=code[i]
[codex:1225850]     name=names.get(op, hex(op))
[codex:1225850]     if 0x60<=op<=0x7f:
[codex:1225850]         n=op-0x5f
[codex:1225850]         data=code[i+1:i+1+n]
[codex:1225850]         print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850]         i+=1+n
[codex:1225850]     else:
[codex:1225850]         print(f\"{i:04x}: {name}\")
[codex:1225850]         i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 22ms:
[codex:1225850] 0740: PUSH32 565b9050600081116107655760405163c52e3eff60e01b815260040160405180
[codex:1225850] 0761: SWAP2
[codex:1225850] 0762: SUB
[codex:1225850] 0763: SWAP1
[codex:1225850] 0764: REVERT
[codex:1225850] 0765: JUMPDEST
[codex:1225850] 0766: PUSH2 0587
[codex:1225850] 0769: PUSH1 01
[codex:1225850] 076b: PUSH1 01
[codex:1225850] 076d: PUSH1 a0
[codex:1225850] 076f: SHL
[codex:1225850] 0770: SUB
[codex:1225850] 0771: DUP5
[codex:1225850] 0772: AND
[codex:1225850] 0773: CALLER
[codex:1225850] 0774: DUP4
[codex:1225850] 0775: PUSH2 0cc7
[codex:1225850] 0778: JUMP
[codex:1225850] 0779: JUMPDEST
[codex:1225850] 077a: PUSH1 00
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Analyzing conditional token withdrawal flow**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] 
[codex:1225850] start=0x0860
[codex:1225850] end=0x08a0
[codex:1225850] 
[codex:1225850] names={
[codex:1225850] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1225850] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1225850] 0x20:'SHA3',
[codex:1225850] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850] 
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850]     op=code[i]
[codex:1225850]     name=names.get(op, hex(op))
[codex:1225850]     if 0x60<=op<=0x7f:
[codex:1225850]         n=op-0x5f
[codex:1225850]         data=code[i+1:i+1+n]
[codex:1225850]         print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850]         i+=1+n
[codex:1225850]     else:
[codex:1225850]         print(f\"{i:04x}: {name}\")
[codex:1225850]         i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 23ms:
[codex:1225850] 0860: ADDMOD
[codex:1225850] 0861: PUSH14 565b6105878383610c62565b6108
[codex:1225850] 0870: PUSH24 8133610d19565b50565b6040805160038082526080820190
[codex:1225850] 0889: SWAP3
[codex:1225850] 088a: MSTORE
[codex:1225850] 088b: PUSH1 00
[codex:1225850] 088d: SWAP2
[codex:1225850] 088e: PUSH1 20
[codex:1225850] 0890: DUP3
[codex:1225850] 0891: ADD
[codex:1225850] 0892: PUSH1 60
[codex:1225850] 0894: DUP1
[codex:1225850] 0895: CALLDATASIZE
[codex:1225850] 0896: DUP4
[codex:1225850] 0897: CALLDATACOPY
[codex:1225850] 0898: ADD
[codex:1225850] 0899: SWAP1
[codex:1225850] 089a: POP
[codex:1225850] 089b: POP
[codex:1225850] 089c: SWAP1
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Adjusting disassembly start point**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] # list JUMPDEST near range
[codex:1225850] for i,b in enumerate(code):
[codex:1225850]     if b==0x5b and 0x0800 <= i <= 0x0900:
[codex:1225850]         print(hex(i))
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 22ms:
[codex:1225850] 0x82e
[codex:1225850] 0x848
[codex:1225850] 0x863
[codex:1225850] 0x86d
[codex:1225850] 0x877
[codex:1225850] 0x87a
[codex:1225850] 0x8d1
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Disassembling around JUMPDEST**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] 
[codex:1225850] start=0x86d
[codex:1225850] end=0x890
[codex:1225850] 
[codex:1225850] names={
[codex:1225850] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1225850] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1225850] 0x20:'SHA3',
[codex:1225850] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850] 
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850]     op=code[i]
[codex:1225850]     name=names.get(op, hex(op))
[codex:1225850]     if 0x60<=op<=0x7f:
[codex:1225850]         n=op-0x5f
[codex:1225850]         data=code[i+1:i+1+n]
[codex:1225850]         print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850]         i+=1+n
[codex:1225850]     else:
[codex:1225850]         print(f\"{i:04x}: {name}\")
[codex:1225850]         i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 25ms:
[codex:1225850] 086d: JUMPDEST
[codex:1225850] 086e: PUSH2 0877
[codex:1225850] 0871: DUP2
[codex:1225850] 0872: CALLER
[codex:1225850] 0873: PUSH2 0d19
[codex:1225850] 0876: JUMP
[codex:1225850] 0877: JUMPDEST
[codex:1225850] 0878: POP
[codex:1225850] 0879: JUMP
[codex:1225850] 087a: JUMPDEST
[codex:1225850] 087b: PUSH1 40
[codex:1225850] 087d: DUP1
[codex:1225850] 087e: MLOAD
[codex:1225850] 087f: PUSH1 03
[codex:1225850] 0881: DUP1
[codex:1225850] 0882: DUP3
[codex:1225850] 0883: MSTORE
[codex:1225850] 0884: PUSH1 80
[codex:1225850] 0886: DUP3
[codex:1225850] 0887: ADD
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Analyzing role-based access control and potential vulnerabilities**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] 
[codex:1225850] ops=[]
[codex:1225850] 
[codex:1225850] def opcode_len(op):
[codex:1225850]     if 0x60 <= op <= 0x7f:
[codex:1225850]         return 1 + (op-0x5f)
[codex:1225850]     return 1
[codex:1225850] 
[codex:1225850] # gather SSTORE locations
[codex:1225850] sstore_offsets=[]
[codex:1225850] 
[codex:1225850] 
[codex:1225850] i=0
[codex:1225850] while i < len(code):
[codex:1225850]     op=code[i]
[codex:1225850]     if op==0x55:
[codex:1225850]         sstore_offsets.append(i)
[codex:1225850]     i+=opcode_len(op)
[codex:1225850] 
[codex:1225850] print('SSTORE offsets:', [hex(o) for o in sstore_offsets])
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 25ms:
[codex:1225850] SSTORE offsets: ['0x811', '0xc17', '0xc9a']
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Inspecting SSTORE instructions**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] 
[codex:1225850] names={
[codex:1225850] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1225850] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1225850] 0x20:'SHA3',
[codex:1225850] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850] 
[codex:1225850] def disasm(start,end):
[codex:1225850]     i=start
[codex:1225850]     out=[]
[codex:1225850]     while i<end:
[codex:1225850]         op=code[i]
[codex:1225850]         name=names.get(op,hex(op))
[codex:1225850]         if 0x60<=op<=0x7f:
[codex:1225850]             n=op-0x5f
[codex:1225850]             data=code[i+1:i+1+n]
[codex:1225850]             out.append((i,name,data.hex()))
[codex:1225850]             i+=1+n
[codex:1225850]         else:
[codex:1225850]             out.append((i,name,''))
[codex:1225850]             i+=1
[codex:1225850]     return out
[codex:1225850] 
[codex:1225850] for off in [0x811,0xc17,0xc9a]:
[codex:1225850]     print('\\n== around',hex(off))
[codex:1225850]     for i,name,data in disasm(off-20, off+20):
[codex:1225850]         mark='>>' if i==off else '  '
[codex:1225850]         if data:
[codex:1225850]             print(f\"{mark} {i:04x} {name} {data}\")
[codex:1225850]         else:
[codex:1225850]             print(f\"{mark} {i:04x} {name}\")
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 23ms:
[codex:1225850] 
[codex:1225850] == around 0x811
[codex:1225850]    07fd LOG0
[codex:1225850]    07fe SHL
[codex:1225850]    07ff SUB
[codex:1225850]    0800 NOT
[codex:1225850]    0801 AND
[codex:1225850]    0802 PUSH1 01
[codex:1225850]    0804 PUSH1 01
[codex:1225850]    0806 PUSH1 a0
[codex:1225850]    0808 SHL
[codex:1225850]    0809 SUB
[codex:1225850]    080a DUP5
[codex:1225850]    080b AND
[codex:1225850]    080c SWAP1
[codex:1225850]    080d DUP2
[codex:1225850]    080e OR
[codex:1225850]    080f SWAP1
[codex:1225850]    0810 SWAP2
[codex:1225850] >> 0811 SSTORE
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Analyzing role-based storage writes and access**
[codex:1225850] 
[codex:1225850] I'm looking through specific SSTORE instructions to identify if any role changes or state updates lack protection. The setter seems guarded by role checks, and role revocations or grants also appear controlled. I'm curious about a token swap function with external calls that might be risky if accessible without proper roles, so I'll dig deeper into its role checks next.
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] 
[codex:1225850] start=0x0410
[codex:1225850] end=0x0560
[codex:1225850] 
[codex:1225850] names={
[codex:1225850] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1225850] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1225850] 0x20:'SHA3',
[codex:1225850] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850] 
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850]     op=code[i]
[codex:1225850]     name=names.get(op, hex(op))
[codex:1225850]     if 0x60<=op<=0x7f:
[codex:1225850]         n=op-0x5f
[codex:1225850]         data=code[i+1:i+1+n]
[codex:1225850]         print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850]         i+=1+n
[codex:1225850]     else:
[codex:1225850]         print(f\"{i:04x}: {name}\")
[codex:1225850]         i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 26ms:
[codex:1225850] 0410: ADD
[codex:1225850] 0411: PUSH1 e0
[codex:1225850] 0413: SHL
[codex:1225850] 0414: SUB
[codex:1225850] 0415: NOT
[codex:1225850] 0416: DUP4
[codex:1225850] 0417: AND
[codex:1225850] 0418: EQ
[codex:1225850] 0419: JUMPDEST
[codex:1225850] 041a: SWAP3
[codex:1225850] 041b: SWAP2
[codex:1225850] 041c: POP
[codex:1225850] 041d: POP
[codex:1225850] 041e: JUMP
[codex:1225850] 041f: JUMPDEST
[codex:1225850] 0420: PUSH32 f8cd32ed93fc2f9fc78152a14807c9609af3d99c5fe4dc6b106a801aaddfe90e
[codex:1225850] 0441: PUSH2 0449
[codex:1225850] 0444: DUP2
[codex:1225850] 0445: PUSH2 086d
[codex:1225850] 0448: JUMP
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Analyzing conditional swap logic**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] 
[codex:1225850] start=0x087a
[codex:1225850] end=0x0a90
[codex:1225850] 
[codex:1225850] names={
[codex:1225850] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1225850] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1225850] 0x20:'SHA3',
[codex:1225850] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850] 
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850]     op=code[i]
[codex:1225850]     name=names.get(op, hex(op))
[codex:1225850]     if 0x60<=op<=0x7f:
[codex:1225850]         n=op-0x5f
[codex:1225850]         data=code[i+1:i+1+n]
[codex:1225850]         print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850]         i+=1+n
[codex:1225850]     else:
[codex:1225850]         print(f\"{i:04x}: {name}\")
[codex:1225850]         i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 24ms:
[codex:1225850] 087a: JUMPDEST
[codex:1225850] 087b: PUSH1 40
[codex:1225850] 087d: DUP1
[codex:1225850] 087e: MLOAD
[codex:1225850] 087f: PUSH1 03
[codex:1225850] 0881: DUP1
[codex:1225850] 0882: DUP3
[codex:1225850] 0883: MSTORE
[codex:1225850] 0884: PUSH1 80
[codex:1225850] 0886: DUP3
[codex:1225850] 0887: ADD
[codex:1225850] 0888: SWAP1
[codex:1225850] 0889: SWAP3
[codex:1225850] 088a: MSTORE
[codex:1225850] 088b: PUSH1 00
[codex:1225850] 088d: SWAP2
[codex:1225850] 088e: PUSH1 20
[codex:1225850] 0890: DUP3
[codex:1225850] 0891: ADD
[codex:1225850] 0892: PUSH1 60
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Analyzing token swap functions and recipients**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] 
[codex:1225850] start=0x0a82
[codex:1225850] end=0x0c10
[codex:1225850] 
[codex:1225850] names={
[codex:1225850] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1225850] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1225850] 0x20:'SHA3',
[codex:1225850] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850] 
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850]     op=code[i]
[codex:1225850]     name=names.get(op, hex(op))
[codex:1225850]     if 0x60<=op<=0x7f:
[codex:1225850]         n=op-0x5f
[codex:1225850]         data=code[i+1:i+1+n]
[codex:1225850]         print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850]         i+=1+n
[codex:1225850]     else:
[codex:1225850]         print(f\"{i:04x}: {name}\")
[codex:1225850]         i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 25ms:
[codex:1225850] 0a82: JUMPDEST
[codex:1225850] 0a83: PUSH1 40
[codex:1225850] 0a85: DUP1
[codex:1225850] 0a86: MLOAD
[codex:1225850] 0a87: PUSH1 02
[codex:1225850] 0a89: DUP1
[codex:1225850] 0a8a: DUP3
[codex:1225850] 0a8b: MSTORE
[codex:1225850] 0a8c: PUSH1 60
[codex:1225850] 0a8e: DUP3
[codex:1225850] 0a8f: ADD
[codex:1225850] 0a90: DUP4
[codex:1225850] 0a91: MSTORE
[codex:1225850] 0a92: PUSH1 00
[codex:1225850] 0a94: SWAP3
[codex:1225850] 0a95: PUSH1 20
[codex:1225850] 0a97: DUP4
[codex:1225850] 0a98: ADD
[codex:1225850] 0a99: SWAP1
[codex:1225850] 0a9a: DUP1
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Analyzing role-based function protections**
[codex:1225850] exec
[codex:1225850] /bin/bash -lc "python - <<'PY'
[codex:1225850] import re
[codex:1225850] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:1225850] code=bytes.fromhex(hexdata)
[codex:1225850] 
[codex:1225850] # disasm around 0x0d19
[codex:1225850] start=0x0d10
[codex:1225850] end=0x0d90
[codex:1225850] 
[codex:1225850] names={
[codex:1225850] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1225850] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1225850] 0x20:'SHA3',
[codex:1225850] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1225850] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1225850] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1225850] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1225850] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1225850] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1225850] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1225850] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1225850] }
[codex:1225850] 
[codex:1225850] i=start
[codex:1225850] while i<end:
[codex:1225850]     op=code[i]
[codex:1225850]     name=names.get(op, hex(op))
[codex:1225850]     if 0x60<=op<=0x7f:
[codex:1225850]         n=op-0x5f
[codex:1225850]         data=code[i+1:i+1+n]
[codex:1225850]         print(f\"{i:04x}: {name} {data.hex()}\")
[codex:1225850]         i+=1+n
[codex:1225850]     else:
[codex:1225850]         print(f\"{i:04x}: {name}\")
[codex:1225850]         i+=1
[codex:1225850] PY" in /tmp/codex-multi-5105loqe succeeded in 23ms:
[codex:1225850] 0d10: SDIV
[codex:1225850] 0d11: DUP8
[codex:1225850] 0d12: SWAP1
[codex:1225850] 0d13: DUP5
[codex:1225850] 0d14: SWAP1
[codex:1225850] 0d15: PUSH2 0d72
[codex:1225850] 0d18: JUMP
[codex:1225850] 0d19: JUMPDEST
[codex:1225850] 0d1a: PUSH2 0d23
[codex:1225850] 0d1d: DUP3
[codex:1225850] 0d1e: DUP3
[codex:1225850] 0d1f: PUSH2 0779
[codex:1225850] 0d22: JUMP
[codex:1225850] 0d23: JUMPDEST
[codex:1225850] 0d24: PUSH2 060b
[codex:1225850] 0d27: JUMPI
[codex:1225850] 0d28: PUSH2 0d30
[codex:1225850] 0d2b: DUP2
[codex:1225850] 0d2c: PUSH2 0e47
[codex:1225850] 0d2f: JUMP
[codex:1225850] 
[codex:1225850] thinking
[codex:1225850] **Concluding vulnerability analysis**
[codex:1225850] 
[codex:1225850] I've carefully checked the bytecode for any exploitable paths involving role checks, external calls, value transfers, and storage access; everything seems properly restricted with no clear attack vector. I'll produce a JSON report stating no findings, per the user's requested schema.
[codex:1225850] codex
[codex:1225850] {"no_findings":true,"summary":"No concrete, exploitable value-extraction path identified in the bytecode; value-transfer and swap routines appear role-gated with fixed external targets.","findings":[]}
[codex:1225850] tokens used
[codex:1225850] 92,803
[codex:1225850] {"no_findings":true,"summary":"No concrete, exploitable value-extraction path identified in the bytecode; value-transfer and swap routines appear role-gated with fixed external targets.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-03T21:32:06.421058+00:00",
        "returncode": 0
    },
    "summary": "No concrete, exploitable value-extraction path identified in the bytecode; value-transfer and swap routines appear role-gated with fixed external targets.",
    "raw_final": {
        "summary": "No concrete, exploitable value-extraction path identified in the bytecode; value-transfer and swap routines appear role-gated with fixed external targets.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
6
EXT*/BALANCE
1
Total opcodes
3301
Flags
create_opcodes_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0102
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x75b238fc
00000019: GT
0000001a: PUSH2 0x0095
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0x9df806d6
00000024: GT
00000025: PUSH2 0x0064
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0x9df806d6
0000002f: EQ
00000030: PUSH2 0x032b
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xa217fddf
0000003a: EQ
0000003b: PUSH2 0x034b
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xad5c4648
00000045: EQ
00000046: PUSH2 0x0360
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xba8bca5a
00000050: EQ
00000051: PUSH2 0x0394
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xd547741f
0000005b: EQ
0000005c: PUSH2 0x03c8
0000005f: JUMPI
00000060: PUSH1 0x00
00000062: DUP1
00000063: REVERT
00000064: JUMPDEST
00000065: DUP1
00000066: PUSH4 0x75b238fc
0000006b: EQ
0000006c: PUSH2 0x026f
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0x7a01a1da
00000076: EQ
00000077: PUSH2 0x02a3
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0x89a30271
00000081: EQ
00000082: PUSH2 0x02d7
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0x91d14854
0000008c: EQ
0000008d: PUSH2 0x030b
00000090: JUMPI
00000091: PUSH1 0x00
00000093: DUP1
00000094: REVERT
00000095: JUMPDEST
00000096: DUP1
00000097: PUSH4 0x2b2604f1
0000009c: GT
0000009d: PUSH2 0x00d1
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0x2b2604f1
000000a7: EQ
000000a8: PUSH2 0x01db
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0x2f2ff15d
000000b2: EQ
000000b3: PUSH2 0x020f
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0x36568abe
000000bd: EQ
000000be: PUSH2 0x022f
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0x51cff8d9
000000c8: EQ
000000c9: PUSH2 0x024f
000000cc: JUMPI
000000cd: PUSH1 0x00
000000cf: DUP1
000000d0: REVERT
000000d1: JUMPDEST
000000d2: DUP1
000000d3: PUSH4 0x01ffc9a7
000000d8: EQ
000000d9: PUSH2 0x010e
000000dc: JUMPI
000000dd: DUP1
000000de: PUSH4 0x248a9ca3
000000e3: EQ
000000e4: PUSH2 0x0143
000000e7: JUMPI
000000e8: DUP1
000000e9: PUSH4 0x27810b6e
000000ee: EQ
000000ef: PUSH2 0x0181
000000f2: JUMPI
000000f3: DUP1
000000f4: PUSH4 0x29675f29
000000f9: EQ
000000fa: PUSH2 0x01b9
000000fd: JUMPI
000000fe: PUSH1 0x00
00000100: DUP1
00000101: REVERT
00000102: JUMPDEST
00000103: CALLDATASIZE
00000104: PUSH2 0x0109
00000107: JUMPI
00000108: STOP
00000109: JUMPDEST
0000010a: PUSH1 0x00
0000010c: DUP1
0000010d: REVERT
0000010e: JUMPDEST
0000010f: CALLVALUE
00000110: DUP1
00000111: ISZERO
00000112: PUSH2 0x011a
00000115: JUMPI
00000116: PUSH1 0x00
00000118: DUP1
00000119: REVERT
0000011a: JUMPDEST
0000011b: POP
0000011c: PUSH2 0x012e
0000011f: PUSH2 0x0129
00000122: CALLDATASIZE
00000123: PUSH1 0x04
00000125: PUSH2 0x118c
00000128: JUMP
00000129: JUMPDEST
0000012a: PUSH2 0x03e8
0000012d: JUMP
0000012e: JUMPDEST
0000012f: PUSH1 0x40
00000131: MLOAD
00000132: SWAP1
00000133: ISZERO
00000134: ISZERO
00000135: DUP2
00000136: MSTORE
00000137: PUSH1 0x20
00000139: ADD
0000013a: JUMPDEST
0000013b: PUSH1 0x40
0000013d: MLOAD
0000013e: DUP1
0000013f: SWAP2
00000140: SUB
00000141: SWAP1
00000142: RETURN
00000143: JUMPDEST
00000144: CALLVALUE
00000145: DUP1
00000146: ISZERO
00000147: PUSH2 0x014f
0000014a: JUMPI
0000014b: PUSH1 0x00
0000014d: DUP1
0000014e: REVERT
0000014f: JUMPDEST
00000150: POP
00000151: PUSH2 0x0173
00000154: PUSH2 0x015e
00000157: CALLDATASIZE
00000158: PUSH1 0x04
0000015a: PUSH2 0x11b6
0000015d: JUMP
0000015e: JUMPDEST
0000015f: PUSH1 0x00
00000161: SWAP1
00000162: DUP2
00000163: MSTORE
00000164: PUSH1 0x20
00000166: DUP2
00000167: SWAP1
00000168: MSTORE
00000169: PUSH1 0x40
0000016b: SWAP1
0000016c: KECCAK256
0000016d: PUSH1 0x01
0000016f: ADD
00000170: SLOAD
00000171: SWAP1
00000172: JUMP
00000173: JUMPDEST
00000174: PUSH1 0x40
00000176: MLOAD
00000177: SWAP1
00000178: DUP2
00000179: MSTORE
0000017a: PUSH1 0x20
0000017c: ADD
0000017d: PUSH2 0x013a
00000180: JUMP
00000181: JUMPDEST
00000182: CALLVALUE
00000183: DUP1
00000184: ISZERO
00000185: PUSH2 0x018d
00000188: JUMPI
00000189: PUSH1 0x00
0000018b: DUP1
0000018c: REVERT
0000018d: JUMPDEST
0000018e: POP
0000018f: PUSH1 0x01
00000191: SLOAD
00000192: PUSH2 0x01a1
00000195: SWAP1
00000196: PUSH1 0x01
00000198: PUSH1 0x01
0000019a: PUSH1 0xa0
0000019c: SHL
0000019d: SUB
0000019e: AND
0000019f: DUP2
000001a0: JUMP
000001a1: JUMPDEST
000001a2: PUSH1 0x40
000001a4: MLOAD
000001a5: PUSH1 0x01
000001a7: PUSH1 0x01
000001a9: PUSH1 0xa0
000001ab: SHL
000001ac: SUB
000001ad: SWAP1
000001ae: SWAP2
000001af: AND
000001b0: DUP2
000001b1: MSTORE
000001b2: PUSH1 0x20
000001b4: ADD
000001b5: PUSH2 0x013a
000001b8: JUMP
000001b9: JUMPDEST
000001ba: CALLVALUE
000001bb: DUP1
000001bc: ISZERO
000001bd: PUSH2 0x01c5
000001c0: JUMPI
000001c1: PUSH1 0x00
000001c3: DUP1
000001c4: REVERT
000001c5: JUMPDEST
000001c6: POP
000001c7: PUSH2 0x01d9
000001ca: PUSH2 0x01d4
000001cd: CALLDATASIZE
000001ce: PUSH1 0x04
000001d0: PUSH2 0x11dd
000001d3: JUMP
000001d4: JUMPDEST
000001d5: PUSH2 0x041f
000001d8: JUMP
000001d9: JUMPDEST
000001da: STOP
000001db: JUMPDEST
000001dc: CALLVALUE
000001dd: DUP1
000001de: ISZERO
000001df: PUSH2 0x01e7
000001e2: JUMPI
000001e3: PUSH1 0x00
000001e5: DUP1
000001e6: REVERT
000001e7: JUMPDEST
000001e8: POP
000001e9: PUSH2 0x01a1
000001ec: PUSH32 0x00000000000000000000000062d0a8458ed7719fdaf978fe5929c6d342b0bfce
0000020d: DUP2
0000020e: JUMP
0000020f: JUMPDEST
00000210: CALLVALUE
00000211: DUP1
00000212: ISZERO
00000213: PUSH2 0x021b
00000216: JUMPI
00000217: PUSH1 0x00
00000219: DUP1
0000021a: REVERT
0000021b: JUMPDEST
0000021c: POP
0000021d: PUSH2 0x01d9
00000220: PUSH2 0x022a
00000223: CALLDATASIZE
00000224: PUSH1 0x04
00000226: PUSH2 0x1238
00000229: JUMP
0000022a: JUMPDEST
0000022b: PUSH2 0x0562
0000022e: JUMP
0000022f: JUMPDEST
00000230: CALLVALUE
00000231: DUP1
00000232: ISZERO
00000233: PUSH2 0x023b
00000236: JUMPI
00000237: PUSH1 0x00
00000239: DUP1
0000023a: REVERT
0000023b: JUMPDEST
0000023c: POP
0000023d: PUSH2 0x01d9
00000240: PUSH2 0x024a
00000243: CALLDATASIZE
00000244: PUSH1 0x04
00000246: PUSH2 0x1238
00000249: JUMP
0000024a: JUMPDEST
0000024b: PUSH2 0x058c
0000024e: JUMP
0000024f: JUMPDEST
00000250: CALLVALUE
00000251: DUP1
00000252: ISZERO
00000253: PUSH2 0x025b
00000256: JUMPI
00000257: PUSH1 0x00
00000259: DUP1
0000025a: REVERT
0000025b: JUMPDEST
0000025c: POP
0000025d: PUSH2 0x01d9
00000260: PUSH2 0x026a
00000263: CALLDATASIZE
00000264: PUSH1 0x04
00000266: PUSH2 0x1264
00000269: JUMP
0000026a: JUMPDEST
0000026b: PUSH2 0x060f
0000026e: JUMP
0000026f: JUMPDEST
00000270: CALLVALUE
00000271: DUP1
00000272: ISZERO
00000273: PUSH2 0x027b
00000276: JUMPI
00000277: PUSH1 0x00
00000279: DUP1
0000027a: REVERT
0000027b: JUMPDEST
0000027c: POP
0000027d: PUSH2 0x0173
00000280: PUSH32 0xa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775
000002a1: DUP2
000002a2: JUMP
000002a3: JUMPDEST
000002a4: CALLVALUE
000002a5: DUP1
000002a6: ISZERO
000002a7: PUSH2 0x02af
000002aa: JUMPI
000002ab: PUSH1 0x00
000002ad: DUP1
000002ae: REVERT
000002af: JUMPDEST
000002b0: POP
000002b1: PUSH2 0x0173
000002b4: PUSH32 0xf8cd32ed93fc2f9fc78152a14807c9609af3d99c5fe4dc6b106a801aaddfe90e
000002d5: DUP2
000002d6: JUMP
000002d7: JUMPDEST
000002d8: CALLVALUE
000002d9: DUP1
000002da: ISZERO
000002db: PUSH2 0x02e3
000002de: JUMPI
000002df: PUSH1 0x00
000002e1: DUP1
000002e2: REVERT
000002e3: JUMPDEST
000002e4: POP
000002e5: PUSH2 0x01a1
000002e8: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
00000309: DUP2
0000030a: JUMP
0000030b: JUMPDEST
0000030c: CALLVALUE
0000030d: DUP1
0000030e: ISZERO
0000030f: PUSH2 0x0317
00000312: JUMPI
00000313: PUSH1 0x00
00000315: DUP1
00000316: REVERT
00000317: JUMPDEST
00000318: POP
00000319: PUSH2 0x012e
0000031c: PUSH2 0x0326
0000031f: CALLDATASIZE
00000320: PUSH1 0x04
00000322: PUSH2 0x1238
00000325: JUMP
00000326: JUMPDEST
00000327: PUSH2 0x0779
0000032a: JUMP
0000032b: JUMPDEST
0000032c: CALLVALUE
0000032d: DUP1
0000032e: ISZERO
0000032f: PUSH2 0x0337
00000332: JUMPI
00000333: PUSH1 0x00
00000335: DUP1
00000336: REVERT
00000337: JUMPDEST
00000338: POP
00000339: PUSH2 0x01d9
0000033c: PUSH2 0x0346
0000033f: CALLDATASIZE
00000340: PUSH1 0x04
00000342: PUSH2 0x1264
00000345: JUMP
00000346: JUMPDEST
00000347: PUSH2 0x07a2
0000034a: JUMP
0000034b: JUMPDEST
0000034c: CALLVALUE
0000034d: DUP1
0000034e: ISZERO
0000034f: PUSH2 0x0357
00000352: JUMPI
00000353: PUSH1 0x00
00000355: DUP1
00000356: REVERT
00000357: JUMPDEST
00000358: POP
00000359: PUSH2 0x0173
0000035c: PUSH1 0x00
0000035e: DUP2
0000035f: JUMP
00000360: JUMPDEST
00000361: CALLVALUE
00000362: DUP1
00000363: ISZERO
00000364: PUSH2 0x036c
00000367: JUMPI
00000368: PUSH1 0x00
0000036a: DUP1
0000036b: REVERT
0000036c: JUMPDEST
0000036d: POP
0000036e: PUSH2 0x01a1
00000371: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000392: DUP2
00000393: JUMP
00000394: JUMPDEST
00000395: CALLVALUE
00000396: DUP1
00000397: ISZERO
00000398: PUSH2 0x03a0
0000039b: JUMPI
0000039c: PUSH1 0x00
0000039e: DUP1
0000039f: REVERT
000003a0: JUMPDEST
000003a1: POP
000003a2: PUSH2 0x01a1
000003a5: PUSH32 0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
000003c6: DUP2
000003c7: JUMP
000003c8: JUMPDEST
000003c9: CALLVALUE
000003ca: DUP1
000003cb: ISZERO
000003cc: PUSH2 0x03d4
000003cf: JUMPI
000003d0: PUSH1 0x00
000003d2: DUP1
000003d3: REVERT
000003d4: JUMPDEST
000003d5: POP
000003d6: PUSH2 0x01d9
000003d9: PUSH2 0x03e3
000003dc: CALLDATASIZE
000003dd: PUSH1 0x04
000003df: PUSH2 0x1238
000003e2: JUMP
000003e3: JUMPDEST
000003e4: PUSH2 0x0848
000003e7: JUMP
000003e8: JUMPDEST
000003e9: PUSH1 0x00
000003eb: PUSH1 0x01
000003ed: PUSH1 0x01
000003ef: PUSH1 0xe0
000003f1: SHL
000003f2: SUB
000003f3: NOT
000003f4: DUP3
000003f5: AND
000003f6: PUSH4 0x7965db0b
000003fb: PUSH1 0xe0
000003fd: SHL
000003fe: EQ
000003ff: DUP1
00000400: PUSH2 0x0419
00000403: JUMPI
00000404: POP
00000405: PUSH4 0x01ffc9a7
0000040a: PUSH1 0xe0
0000040c: SHL
0000040d: PUSH1 0x01
0000040f: PUSH1 0x01
00000411: PUSH1 0xe0
00000413: SHL
00000414: SUB
00000415: NOT
00000416: DUP4
00000417: AND
00000418: EQ
00000419: JUMPDEST
0000041a: SWAP3
0000041b: SWAP2
0000041c: POP
0000041d: POP
0000041e: JUMP
0000041f: JUMPDEST
00000420: PUSH32 0xf8cd32ed93fc2f9fc78152a14807c9609af3d99c5fe4dc6b106a801aaddfe90e
00000441: PUSH2 0x0449
00000444: DUP2
00000445: PUSH2 0x086d
00000448: JUMP
00000449: JUMPDEST
0000044a: PUSH1 0x00
0000044c: DUP6
0000044d: GT
0000044e: PUSH2 0x046a
00000451: JUMPI
00000452: PUSH1 0x40
00000454: MLOAD
00000455: PUSH4 0x162908e3
0000045a: PUSH1 0xe1
0000045c: SHL
0000045d: DUP2
0000045e: MSTORE
0000045f: PUSH1 0x04
00000461: ADD
00000462: PUSH1 0x40
00000464: MLOAD
00000465: DUP1
00000466: SWAP2
00000467: SUB
00000468: SWAP1
00000469: REVERT
0000046a: JUMPDEST
0000046b: DUP3
0000046c: ISZERO
0000046d: PUSH2 0x052f
00000470: JUMPI
00000471: PUSH1 0x40
00000473: MLOAD
00000474: PUSH4 0x70a08231
00000479: PUSH1 0xe0
0000047b: SHL
0000047c: DUP2
0000047d: MSTORE
0000047e: ADDRESS
0000047f: PUSH1 0x04
00000481: DUP3
00000482: ADD
00000483: MSTORE
00000484: PUSH1 0x00
00000486: SWAP1
00000487: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
000004a8: PUSH1 0x01
000004aa: PUSH1 0x01
000004ac: PUSH1 0xa0
000004ae: SHL
000004af: SUB
000004b0: AND
000004b1: SWAP1
000004b2: PUSH4 0x70a08231
000004b7: SWAP1
000004b8: PUSH1 0x24
000004ba: ADD
000004bb: PUSH1 0x20
000004bd: PUSH1 0x40
000004bf: MLOAD
000004c0: DUP1
000004c1: DUP4
000004c2: SUB
000004c3: DUP2
000004c4: DUP7
000004c5: GAS
000004c6: STATICCALL
000004c7: ISZERO
000004c8: DUP1
000004c9: ISZERO
000004ca: PUSH2 0x04d7
000004cd: JUMPI
000004ce: RETURNDATASIZE
000004cf: PUSH1 0x00
000004d1: DUP1
000004d2: RETURNDATACOPY
000004d3: RETURNDATASIZE
000004d4: PUSH1 0x00
000004d6: REVERT
000004d7: JUMPDEST
000004d8: POP
000004d9: POP
000004da: POP
000004db: POP
000004dc: PUSH1 0x40
000004de: MLOAD
000004df: RETURNDATASIZE
000004e0: PUSH1 0x1f
000004e2: NOT
000004e3: PUSH1 0x1f
000004e5: DUP3
000004e6: ADD
000004e7: AND
000004e8: DUP3
000004e9: ADD
000004ea: DUP1
000004eb: PUSH1 0x40
000004ed: MSTORE
000004ee: POP
000004ef: DUP2
000004f0: ADD
000004f1: SWAP1
000004f2: PUSH2 0x04fb
000004f5: SWAP2
000004f6: SWAP1
000004f7: PUSH2 0x127f
000004fa: JUMP
000004fb: JUMPDEST
000004fc: SWAP1
000004fd: POP
000004fe: DUP6
000004ff: DUP2
00000500: LT
00000501: ISZERO
00000502: PUSH2 0x051e
00000505: JUMPI
00000506: PUSH1 0x40
00000508: MLOAD
00000509: PUSH4 0xc52e3eff
0000050e: PUSH1 0xe0
00000510: SHL
00000511: DUP2
00000512: MSTORE
00000513: PUSH1 0x04
00000515: ADD
00000516: PUSH1 0x40
00000518: MLOAD
00000519: DUP1
0000051a: SWAP2
0000051b: SUB
0000051c: SWAP1
0000051d: REVERT
0000051e: JUMPDEST
0000051f: PUSH2 0x0529
00000522: DUP7
00000523: DUP7
00000524: DUP6
00000525: PUSH2 0x087a
00000528: JUMP
00000529: JUMPDEST
0000052a: POP
0000052b: PUSH2 0x055b
0000052e: JUMP
0000052f: JUMPDEST
00000530: DUP5
00000531: SELFBALANCE
00000532: LT
00000533: ISZERO
00000534: PUSH2 0x0550
00000537: JUMPI
00000538: PUSH1 0x40
0000053a: MLOAD
0000053b: PUSH4 0xc52e3eff
00000540: PUSH1 0xe0
00000542: SHL
00000543: DUP2
00000544: MSTORE
00000545: PUSH1 0x04
00000547: ADD
00000548: PUSH1 0x40
0000054a: MLOAD
0000054b: DUP1
0000054c: SWAP2
0000054d: SUB
0000054e: SWAP1
0000054f: REVERT
00000550: JUMPDEST
00000551: PUSH2 0x055b
00000554: DUP6
00000555: DUP6
00000556: DUP5
00000557: PUSH2 0x0a82
0000055a: JUMP
0000055b: JUMPDEST
0000055c: POP
0000055d: POP
0000055e: POP
0000055f: POP
00000560: POP
00000561: JUMP
00000562: JUMPDEST
00000563: PUSH1 0x00
00000565: DUP3
00000566: DUP2
00000567: MSTORE
00000568: PUSH1 0x20
0000056a: DUP2
0000056b: SWAP1
0000056c: MSTORE
0000056d: PUSH1 0x40
0000056f: SWAP1
00000570: KECCAK256
00000571: PUSH1 0x01
00000573: ADD
00000574: SLOAD
00000575: PUSH2 0x057d
00000578: DUP2
00000579: PUSH2 0x086d
0000057c: JUMP
0000057d: JUMPDEST
0000057e: PUSH2 0x0587
00000581: DUP4
00000582: DUP4
00000583: PUSH2 0x0bde
00000586: JUMP
00000587: JUMPDEST
00000588: POP
00000589: POP
0000058a: POP
0000058b: JUMP
0000058c: JUMPDEST
0000058d: PUSH1 0x01
0000058f: PUSH1 0x01
00000591: PUSH1 0xa0
00000593: SHL
00000594: SUB
00000595: DUP2
00000596: AND
00000597: CALLER
00000598: EQ
00000599: PUSH2 0x0601
0000059c: JUMPI
0000059d: PUSH1 0x40
0000059f: MLOAD
000005a0: PUSH3 0x461bcd
000005a4: PUSH1 0xe5
000005a6: SHL
000005a7: DUP2
000005a8: MSTORE
000005a9: PUSH1 0x20
000005ab: PUSH1 0x04
000005ad: DUP3
000005ae: ADD
000005af: MSTORE
000005b0: PUSH1 0x2f
000005b2: PUSH1 0x24
000005b4: DUP3
000005b5: ADD
000005b6: MSTORE
000005b7: PUSH32 0x416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365
000005d8: PUSH1 0x44
000005da: DUP3
000005db: ADD
000005dc: MSTORE
000005dd: PUSH15 0x103937b632b9903337b91039b2b633
000005ed: PUSH1 0x89
000005ef: SHL
000005f0: PUSH1 0x64
000005f2: DUP3
000005f3: ADD
000005f4: MSTORE
000005f5: PUSH1 0x84
000005f7: ADD
000005f8: JUMPDEST
000005f9: PUSH1 0x40
000005fb: MLOAD
000005fc: DUP1
000005fd: SWAP2
000005fe: SUB
000005ff: SWAP1
00000600: REVERT
00000601: JUMPDEST
00000602: PUSH2 0x060b
00000605: DUP3
00000606: DUP3
00000607: PUSH2 0x0c62
0000060a: JUMP
0000060b: JUMPDEST
0000060c: POP
0000060d: POP
0000060e: JUMP
0000060f: JUMPDEST
00000610: PUSH32 0xa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775
00000631: PUSH2 0x0639
00000634: DUP2
00000635: PUSH2 0x086d
00000638: JUMP
00000639: JUMPDEST
0000063a: PUSH1 0x00
0000063c: PUSH1 0x01
0000063e: PUSH1 0x01
00000640: PUSH1 0xa0
00000642: SHL
00000643: SUB
00000644: DUP4
00000645: AND
00000646: PUSH2 0x06da
00000649: JUMPI
0000064a: POP
0000064b: SELFBALANCE
0000064c: PUSH1 0x00
0000064e: DUP2
0000064f: PUSH2 0x066b
00000652: JUMPI
00000653: PUSH1 0x40
00000655: MLOAD
00000656: PUSH4 0xc52e3eff
0000065b: PUSH1 0xe0
0000065d: SHL
0000065e: DUP2
0000065f: MSTORE
00000660: PUSH1 0x04
00000662: ADD
00000663: PUSH1 0x40
00000665: MLOAD
00000666: DUP1
00000667: SWAP2
00000668: SUB
00000669: SWAP1
0000066a: REVERT
0000066b: JUMPDEST
0000066c: PUSH1 0x40
0000066e: MLOAD
0000066f: CALLER
00000670: SWAP1
00000671: DUP4
00000672: SWAP1
00000673: PUSH1 0x00
00000675: DUP2
00000676: DUP2
00000677: DUP2
00000678: DUP6
00000679: DUP8
0000067a: GAS
0000067b: CALL
0000067c: SWAP3
0000067d: POP
0000067e: POP
0000067f: POP
00000680: RETURNDATASIZE
00000681: DUP1
00000682: PUSH1 0x00
00000684: DUP2
00000685: EQ
00000686: PUSH2 0x06ab
00000689: JUMPI
0000068a: PUSH1 0x40
0000068c: MLOAD
0000068d: SWAP2
0000068e: POP
0000068f: PUSH1 0x1f
00000691: NOT
00000692: PUSH1 0x3f
00000694: RETURNDATASIZE
00000695: ADD
00000696: AND
00000697: DUP3
00000698: ADD
00000699: PUSH1 0x40
0000069b: MSTORE
0000069c: RETURNDATASIZE
0000069d: DUP3
0000069e: MSTORE
0000069f: RETURNDATASIZE
000006a0: PUSH1 0x00
000006a2: PUSH1 0x20
000006a4: DUP5
000006a5: ADD
000006a6: RETURNDATACOPY
000006a7: PUSH2 0x06b0
000006aa: JUMP
000006ab: JUMPDEST
000006ac: PUSH1 0x60
000006ae: SWAP2
000006af: POP
000006b0: JUMPDEST
000006b1: POP
000006b2: POP
000006b3: DUP1
000006b4: SWAP2
000006b5: POP
000006b6: POP
000006b7: DUP1
000006b8: PUSH2 0x06d4
000006bb: JUMPI
000006bc: PUSH1 0x40
000006be: MLOAD
000006bf: PUSH4 0x1d42c867
000006c4: PUSH1 0xe2
000006c6: SHL
000006c7: DUP2
000006c8: MSTORE
000006c9: PUSH1 0x04
000006cb: ADD
000006cc: PUSH1 0x40
000006ce: MLOAD
000006cf: DUP1
000006d0: SWAP2
000006d1: SUB
000006d2: SWAP1
000006d3: REVERT
000006d4: JUMPDEST
000006d5: POP
000006d6: POP
000006d7: POP
000006d8: POP
000006d9: JUMP
000006da: JUMPDEST
000006db: PUSH1 0x40
000006dd: MLOAD
000006de: PUSH4 0x70a08231
000006e3: PUSH1 0xe0
000006e5: SHL
000006e6: DUP2
000006e7: MSTORE
000006e8: ADDRESS
000006e9: PUSH1 0x04
000006eb: DUP3
000006ec: ADD
000006ed: MSTORE
000006ee: PUSH1 0x01
000006f0: PUSH1 0x01
000006f2: PUSH1 0xa0
000006f4: SHL
000006f5: SUB
000006f6: DUP5
000006f7: AND
000006f8: SWAP1
000006f9: PUSH4 0x70a08231
000006fe: SWAP1
000006ff: PUSH1 0x24
00000701: ADD
00000702: PUSH1 0x20
00000704: PUSH1 0x40
00000706: MLOAD
00000707: DUP1
00000708: DUP4
00000709: SUB
0000070a: DUP2
0000070b: DUP7
0000070c: GAS
0000070d: STATICCALL
0000070e: ISZERO
0000070f: DUP1
00000710: ISZERO
00000711: PUSH2 0x071e
00000714: JUMPI
00000715: RETURNDATASIZE
00000716: PUSH1 0x00
00000718: DUP1
00000719: RETURNDATACOPY
0000071a: RETURNDATASIZE
0000071b: PUSH1 0x00
0000071d: REVERT
0000071e: JUMPDEST
0000071f: POP
00000720: POP
00000721: POP
00000722: POP
00000723: PUSH1 0x40
00000725: MLOAD
00000726: RETURNDATASIZE
00000727: PUSH1 0x1f
00000729: NOT
0000072a: PUSH1 0x1f
0000072c: DUP3
0000072d: ADD
0000072e: AND
0000072f: DUP3
00000730: ADD
00000731: DUP1
00000732: PUSH1 0x40
00000734: MSTORE
00000735: POP
00000736: DUP2
00000737: ADD
00000738: SWAP1
00000739: PUSH2 0x0742
0000073c: SWAP2
0000073d: SWAP1
0000073e: PUSH2 0x127f
00000741: JUMP
00000742: JUMPDEST
00000743: SWAP1
00000744: POP
00000745: PUSH1 0x00
00000747: DUP2
00000748: GT
00000749: PUSH2 0x0765
0000074c: JUMPI
0000074d: PUSH1 0x40
0000074f: MLOAD
00000750: PUSH4 0xc52e3eff
00000755: PUSH1 0xe0
00000757: SHL
00000758: DUP2
00000759: MSTORE
0000075a: PUSH1 0x04
0000075c: ADD
0000075d: PUSH1 0x40
0000075f: MLOAD
00000760: DUP1
00000761: SWAP2
00000762: SUB
00000763: SWAP1
00000764: REVERT
00000765: JUMPDEST
00000766: PUSH2 0x0587
00000769: PUSH1 0x01
0000076b: PUSH1 0x01
0000076d: PUSH1 0xa0
0000076f: SHL
00000770: SUB
00000771: DUP5
00000772: AND
00000773: CALLER
00000774: DUP4
00000775: PUSH2 0x0cc7
00000778: JUMP
00000779: JUMPDEST
0000077a: PUSH1 0x00
0000077c: SWAP2
0000077d: DUP3
0000077e: MSTORE
0000077f: PUSH1 0x20
00000781: DUP3
00000782: DUP2
00000783: MSTORE
00000784: PUSH1 0x40
00000786: DUP1
00000787: DUP5
00000788: KECCAK256
00000789: PUSH1 0x01
0000078b: PUSH1 0x01
0000078d: PUSH1 0xa0
0000078f: SHL
00000790: SUB
00000791: SWAP4
00000792: SWAP1
00000793: SWAP4
00000794: AND
00000795: DUP5
00000796: MSTORE
00000797: SWAP2
00000798: SWAP1
00000799: MSTORE
0000079a: SWAP1
0000079b: KECCAK256
0000079c: SLOAD
0000079d: PUSH1 0xff
0000079f: AND
000007a0: SWAP1
000007a1: JUMP
000007a2: JUMPDEST
000007a3: PUSH32 0xa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775
000007c4: PUSH2 0x07cc
000007c7: DUP2
000007c8: PUSH2 0x086d
000007cb: JUMP
000007cc: JUMPDEST
000007cd: PUSH1 0x01
000007cf: PUSH1 0x01
000007d1: PUSH1 0xa0
000007d3: SHL
000007d4: SUB
000007d5: DUP3
000007d6: AND
000007d7: PUSH2 0x07f3
000007da: JUMPI
000007db: PUSH1 0x40
000007dd: MLOAD
000007de: PUSH4 0xe6c4247b
000007e3: PUSH1 0xe0
000007e5: SHL
000007e6: DUP2
000007e7: MSTORE
000007e8: PUSH1 0x04
000007ea: ADD
000007eb: PUSH1 0x40
000007ed: MLOAD
000007ee: DUP1
000007ef: SWAP2
000007f0: SUB
000007f1: SWAP1
000007f2: REVERT
000007f3: JUMPDEST
000007f4: PUSH1 0x01
000007f6: DUP1
000007f7: SLOAD
000007f8: PUSH1 0x01
000007fa: PUSH1 0x01
000007fc: PUSH1 0xa0
000007fe: SHL
000007ff: SUB
00000800: NOT
00000801: AND
00000802: PUSH1 0x01
00000804: PUSH1 0x01
00000806: PUSH1 0xa0
00000808: SHL
00000809: SUB
0000080a: DUP5
0000080b: AND
0000080c: SWAP1
0000080d: DUP2
0000080e: OR
0000080f: SWAP1
00000810: SWAP2
00000811: SSTORE
00000812: PUSH1 0x40
00000814: MLOAD
00000815: SWAP1
00000816: DUP2
00000817: MSTORE
00000818: PUSH32 0x073f38af2c94f21e221425553daa2b4d4d0c0737465b75791e3706316b9eb886
00000839: SWAP1
0000083a: PUSH1 0x20
0000083c: ADD
0000083d: PUSH1 0x40
0000083f: MLOAD
00000840: DUP1
00000841: SWAP2
00000842: SUB
00000843: SWAP1
00000844: LOG1
00000845: POP
00000846: POP
00000847: JUMP
00000848: JUMPDEST
00000849: PUSH1 0x00
0000084b: DUP3
0000084c: DUP2
0000084d: MSTORE
0000084e: PUSH1 0x20
00000850: DUP2
00000851: SWAP1
00000852: MSTORE
00000853: PUSH1 0x40
00000855: SWAP1
00000856: KECCAK256
00000857: PUSH1 0x01
00000859: ADD
0000085a: SLOAD
0000085b: PUSH2 0x0863
0000085e: DUP2
0000085f: PUSH2 0x086d
00000862: JUMP
00000863: JUMPDEST
00000864: PUSH2 0x0587
00000867: DUP4
00000868: DUP4
00000869: PUSH2 0x0c62
0000086c: JUMP
0000086d: JUMPDEST
0000086e: PUSH2 0x0877
00000871: DUP2
00000872: CALLER
00000873: PUSH2 0x0d19
00000876: JUMP
00000877: JUMPDEST
00000878: POP
00000879: JUMP
0000087a: JUMPDEST
0000087b: PUSH1 0x40
0000087d: DUP1
0000087e: MLOAD
0000087f: PUSH1 0x03
00000881: DUP1
00000882: DUP3
00000883: MSTORE
00000884: PUSH1 0x80
00000886: DUP3
00000887: ADD
00000888: SWAP1
00000889: SWAP3
0000088a: MSTORE
0000088b: PUSH1 0x00
0000088d: SWAP2
0000088e: PUSH1 0x20
00000890: DUP3
00000891: ADD
00000892: PUSH1 0x60
00000894: DUP1
00000895: CALLDATASIZE
00000896: DUP4
00000897: CALLDATACOPY
00000898: ADD
00000899: SWAP1
0000089a: POP
0000089b: POP
0000089c: SWAP1
0000089d: POP
0000089e: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
000008bf: DUP2
000008c0: PUSH1 0x00
000008c2: DUP2
000008c3: MLOAD
000008c4: DUP2
000008c5: LT
000008c6: PUSH2 0x08d1
000008c9: JUMPI
000008ca: PUSH2 0x08d1
000008cd: PUSH2 0x12ae
000008d0: JUMP
000008d1: JUMPDEST
000008d2: PUSH1 0x20
000008d4: MUL
000008d5: PUSH1 0x20
000008d7: ADD
000008d8: ADD
000008d9: SWAP1
000008da: PUSH1 0x01
000008dc: PUSH1 0x01
000008de: PUSH1 0xa0
000008e0: SHL
000008e1: SUB
000008e2: AND
000008e3: SWAP1
000008e4: DUP2
000008e5: PUSH1 0x01
000008e7: PUSH1 0x01
000008e9: PUSH1 0xa0
000008eb: SHL
000008ec: SUB
000008ed: AND
000008ee: DUP2
000008ef: MSTORE
000008f0: POP
000008f1: POP
000008f2: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000913: DUP2
00000914: PUSH1 0x01
00000916: DUP2
00000917: MLOAD
00000918: DUP2
00000919: LT
0000091a: PUSH2 0x0925
0000091d: JUMPI
0000091e: PUSH2 0x0925
00000921: PUSH2 0x12ae
00000924: JUMP
00000925: JUMPDEST
00000926: PUSH1 0x20
00000928: MUL
00000929: PUSH1 0x20
0000092b: ADD
0000092c: ADD
0000092d: SWAP1
0000092e: PUSH1 0x01
00000930: PUSH1 0x01
00000932: PUSH1 0xa0
00000934: SHL
00000935: SUB
00000936: AND
00000937: SWAP1
00000938: DUP2
00000939: PUSH1 0x01
0000093b: PUSH1 0x01
0000093d: PUSH1 0xa0
0000093f: SHL
00000940: SUB
00000941: AND
00000942: DUP2
00000943: MSTORE
00000944: POP
00000945: POP
00000946: PUSH32 0x00000000000000000000000062d0a8458ed7719fdaf978fe5929c6d342b0bfce
00000967: DUP2
00000968: PUSH1 0x02
0000096a: DUP2
0000096b: MLOAD
0000096c: DUP2
0000096d: LT
0000096e: PUSH2 0x0979
00000971: JUMPI
00000972: PUSH2 0x0979
00000975: PUSH2 0x12ae
00000978: JUMP
00000979: JUMPDEST
0000097a: PUSH1 0x01
0000097c: PUSH1 0x01
0000097e: PUSH1 0xa0
00000980: SHL
00000981: SUB
00000982: SWAP3
00000983: DUP4
00000984: AND
00000985: PUSH1 0x20
00000987: SWAP2
00000988: DUP3
00000989: MUL
0000098a: SWAP3
0000098b: SWAP1
0000098c: SWAP3
0000098d: ADD
0000098e: ADD
0000098f: MSTORE
00000990: PUSH1 0x01
00000992: SLOAD
00000993: PUSH1 0x40
00000995: MLOAD
00000996: PUSH4 0x38ed1739
0000099b: PUSH1 0xe0
0000099d: SHL
0000099e: DUP2
0000099f: MSTORE
000009a0: PUSH1 0x00
000009a2: SWAP3
000009a3: PUSH32 0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
000009c4: DUP2
000009c5: AND
000009c6: SWAP3
000009c7: PUSH4 0x38ed1739
000009cc: SWAP3
000009cd: PUSH2 0x09e5
000009d0: SWAP3
000009d1: DUP11
000009d2: SWAP3
000009d3: DUP11
000009d4: SWAP3
000009d5: DUP10
000009d6: SWAP3
000009d7: SWAP2
000009d8: SWAP1
000009d9: SWAP2
000009da: AND
000009db: SWAP1
000009dc: DUP11
000009dd: SWAP1
000009de: PUSH1 0x04
000009e0: ADD
000009e1: PUSH2 0x1309
000009e4: JUMP
000009e5: JUMPDEST
000009e6: PUSH1 0x00
000009e8: PUSH1 0x40
000009ea: MLOAD
000009eb: DUP1
000009ec: DUP4
000009ed: SUB
000009ee: DUP2
000009ef: PUSH1 0x00
000009f1: DUP8
000009f2: GAS
000009f3: CALL
000009f4: ISZERO
000009f5: DUP1
000009f6: ISZERO
000009f7: PUSH2 0x0a04
000009fa: JUMPI
000009fb: RETURNDATASIZE
000009fc: PUSH1 0x00
000009fe: DUP1
000009ff: RETURNDATACOPY
00000a00: RETURNDATASIZE
00000a01: PUSH1 0x00
00000a03: REVERT
00000a04: JUMPDEST
00000a05: POP
00000a06: POP
00000a07: POP
00000a08: POP
00000a09: PUSH1 0x40
00000a0b: MLOAD
00000a0c: RETURNDATASIZE
00000a0d: PUSH1 0x00
00000a0f: DUP3
00000a10: RETURNDATACOPY
00000a11: PUSH1 0x1f
00000a13: RETURNDATASIZE
00000a14: SWAP1
00000a15: DUP2
00000a16: ADD
00000a17: PUSH1 0x1f
00000a19: NOT
00000a1a: AND
00000a1b: DUP3
00000a1c: ADD
00000a1d: PUSH1 0x40
00000a1f: MSTORE
00000a20: PUSH2 0x0a2c
00000a23: SWAP2
00000a24: SWAP1
00000a25: DUP2
00000a26: ADD
00000a27: SWAP1
00000a28: PUSH2 0x1345
00000a2b: JUMP
00000a2c: JUMPDEST
00000a2d: SWAP1
00000a2e: POP
00000a2f: PUSH1 0x00
00000a31: DUP2
00000a32: PUSH1 0x01
00000a34: DUP4
00000a35: MLOAD
00000a36: PUSH2 0x0a3f
00000a39: SWAP2
00000a3a: SWAP1
00000a3b: PUSH2 0x1428
00000a3e: JUMP
00000a3f: JUMPDEST
00000a40: DUP2
00000a41: MLOAD
00000a42: DUP2
00000a43: LT
00000a44: PUSH2 0x0a4f
00000a47: JUMPI
00000a48: PUSH2 0x0a4f
00000a4b: PUSH2 0x12ae
00000a4e: JUMP
00000a4f: JUMPDEST
00000a50: PUSH1 0x20
00000a52: MUL
00000a53: PUSH1 0x20
00000a55: ADD
00000a56: ADD
00000a57: MLOAD
00000a58: SWAP1
00000a59: POP
00000a5a: PUSH1 0x00
00000a5c: DUP2
00000a5d: GT
00000a5e: PUSH2 0x0a7a
00000a61: JUMPI
00000a62: PUSH1 0x40
00000a64: MLOAD
00000a65: PUSH4 0x081ceff3
00000a6a: PUSH1 0xe4
00000a6c: SHL
00000a6d: DUP2
00000a6e: MSTORE
00000a6f: PUSH1 0x04
00000a71: ADD
00000a72: PUSH1 0x40
00000a74: MLOAD
00000a75: DUP1
00000a76: SWAP2
00000a77: SUB
00000a78: SWAP1
00000a79: REVERT
00000a7a: JUMPDEST
00000a7b: POP
00000a7c: POP
00000a7d: POP
00000a7e: POP
00000a7f: POP
00000a80: POP
00000a81: JUMP
00000a82: JUMPDEST
00000a83: PUSH1 0x40
00000a85: DUP1
00000a86: MLOAD
00000a87: PUSH1 0x02
00000a89: DUP1
00000a8a: DUP3
00000a8b: MSTORE
00000a8c: PUSH1 0x60
00000a8e: DUP3
00000a8f: ADD
00000a90: DUP4
00000a91: MSTORE
00000a92: PUSH1 0x00
00000a94: SWAP3
00000a95: PUSH1 0x20
00000a97: DUP4
00000a98: ADD
00000a99: SWAP1
00000a9a: DUP1
00000a9b: CALLDATASIZE
00000a9c: DUP4
00000a9d: CALLDATACOPY
00000a9e: ADD
00000a9f: SWAP1
00000aa0: POP
00000aa1: POP
00000aa2: SWAP1
00000aa3: POP
00000aa4: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000ac5: DUP2
00000ac6: PUSH1 0x00
00000ac8: DUP2
00000ac9: MLOAD
00000aca: DUP2
00000acb: LT
00000acc: PUSH2 0x0ad7
00000acf: JUMPI
00000ad0: PUSH2 0x0ad7
00000ad3: PUSH2 0x12ae
00000ad6: JUMP
00000ad7: JUMPDEST
00000ad8: PUSH1 0x20
00000ada: MUL
00000adb: PUSH1 0x20
00000add: ADD
00000ade: ADD
00000adf: SWAP1
00000ae0: PUSH1 0x01
00000ae2: PUSH1 0x01
00000ae4: PUSH1 0xa0
00000ae6: SHL
00000ae7: SUB
00000ae8: AND
00000ae9: SWAP1
00000aea: DUP2
00000aeb: PUSH1 0x01
00000aed: PUSH1 0x01
00000aef: PUSH1 0xa0
00000af1: SHL
00000af2: SUB
00000af3: AND
00000af4: DUP2
00000af5: MSTORE
00000af6: POP
00000af7: POP
00000af8: PUSH32 0x00000000000000000000000062d0a8458ed7719fdaf978fe5929c6d342b0bfce
00000b19: DUP2
00000b1a: PUSH1 0x01
00000b1c: DUP2
00000b1d: MLOAD
00000b1e: DUP2
00000b1f: LT
00000b20: PUSH2 0x0b2b
00000b23: JUMPI
00000b24: PUSH2 0x0b2b
00000b27: PUSH2 0x12ae
00000b2a: JUMP
00000b2b: JUMPDEST
00000b2c: PUSH1 0x01
00000b2e: PUSH1 0x01
00000b30: PUSH1 0xa0
00000b32: SHL
00000b33: SUB
00000b34: SWAP3
00000b35: DUP4
00000b36: AND
00000b37: PUSH1 0x20
00000b39: SWAP2
00000b3a: DUP3
00000b3b: MUL
00000b3c: SWAP3
00000b3d: SWAP1
00000b3e: SWAP3
00000b3f: ADD
00000b40: ADD
00000b41: MSTORE
00000b42: PUSH1 0x01
00000b44: SLOAD
00000b45: PUSH1 0x40
00000b47: MLOAD
00000b48: PUSH4 0x7ff36ab5
00000b4d: PUSH1 0xe0
00000b4f: SHL
00000b50: DUP2
00000b51: MSTORE
00000b52: PUSH1 0x00
00000b54: SWAP3
00000b55: PUSH32 0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
00000b76: DUP2
00000b77: AND
00000b78: SWAP3
00000b79: PUSH4 0x7ff36ab5
00000b7e: SWAP3
00000b7f: DUP10
00000b80: SWAP3
00000b81: PUSH2 0x0b97
00000b84: SWAP3
00000b85: DUP11
00000b86: SWAP3
00000b87: DUP10
00000b88: SWAP3
00000b89: SWAP2
00000b8a: SWAP1
00000b8b: SWAP2
00000b8c: AND
00000b8d: SWAP1
00000b8e: DUP11
00000b8f: SWAP1
00000b90: PUSH1 0x04
00000b92: ADD
00000b93: PUSH2 0x143b
00000b96: JUMP
00000b97: JUMPDEST
00000b98: PUSH1 0x00
00000b9a: PUSH1 0x40
00000b9c: MLOAD
00000b9d: DUP1
00000b9e: DUP4
00000b9f: SUB
00000ba0: DUP2
00000ba1: DUP6
00000ba2: DUP9
00000ba3: GAS
00000ba4: CALL
00000ba5: ISZERO
00000ba6: DUP1
00000ba7: ISZERO
00000ba8: PUSH2 0x0bb5
00000bab: JUMPI
00000bac: RETURNDATASIZE
00000bad: PUSH1 0x00
00000baf: DUP1
00000bb0: RETURNDATACOPY
00000bb1: RETURNDATASIZE
00000bb2: PUSH1 0x00
00000bb4: REVERT
00000bb5: JUMPDEST
00000bb6: POP
00000bb7: POP
00000bb8: POP
00000bb9: POP
00000bba: POP
00000bbb: PUSH1 0x40
00000bbd: MLOAD
00000bbe: RETURNDATASIZE
00000bbf: PUSH1 0x00
00000bc1: DUP3
00000bc2: RETURNDATACOPY
00000bc3: PUSH1 0x1f
00000bc5: RETURNDATASIZE
00000bc6: SWAP1
00000bc7: DUP2
00000bc8: ADD
00000bc9: PUSH1 0x1f
00000bcb: NOT
00000bcc: AND
00000bcd: DUP3
00000bce: ADD
00000bcf: PUSH1 0x40
00000bd1: MSTORE
00000bd2: PUSH2 0x0a2c
00000bd5: SWAP2
00000bd6: SWAP1
00000bd7: DUP2
00000bd8: ADD
00000bd9: SWAP1
00000bda: PUSH2 0x1345
00000bdd: JUMP
00000bde: JUMPDEST
00000bdf: PUSH2 0x0be8
00000be2: DUP3
00000be3: DUP3
00000be4: PUSH2 0x0779
00000be7: JUMP
00000be8: JUMPDEST
00000be9: PUSH2 0x060b
00000bec: JUMPI
00000bed: PUSH1 0x00
00000bef: DUP3
00000bf0: DUP2
00000bf1: MSTORE
00000bf2: PUSH1 0x20
00000bf4: DUP2
00000bf5: DUP2
00000bf6: MSTORE
00000bf7: PUSH1 0x40
00000bf9: DUP1
00000bfa: DUP4
00000bfb: KECCAK256
00000bfc: PUSH1 0x01
00000bfe: PUSH1 0x01
00000c00: PUSH1 0xa0
00000c02: SHL
00000c03: SUB
00000c04: DUP6
00000c05: AND
00000c06: DUP5
00000c07: MSTORE
00000c08: SWAP1
00000c09: SWAP2
00000c0a: MSTORE
00000c0b: SWAP1
00000c0c: KECCAK256
00000c0d: DUP1
00000c0e: SLOAD
00000c0f: PUSH1 0xff
00000c11: NOT
00000c12: AND
00000c13: PUSH1 0x01
00000c15: OR
00000c16: SWAP1
00000c17: SSTORE
00000c18: PUSH2 0x0c1e
00000c1b: CALLER
00000c1c: SWAP1
00000c1d: JUMP
00000c1e: JUMPDEST
00000c1f: PUSH1 0x01
00000c21: PUSH1 0x01
00000c23: PUSH1 0xa0
00000c25: SHL
00000c26: SUB
00000c27: AND
00000c28: DUP2
00000c29: PUSH1 0x01
00000c2b: PUSH1 0x01
00000c2d: PUSH1 0xa0
00000c2f: SHL
00000c30: SUB
00000c31: AND
00000c32: DUP4
00000c33: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d
00000c54: PUSH1 0x40
00000c56: MLOAD
00000c57: PUSH1 0x40
00000c59: MLOAD
00000c5a: DUP1
00000c5b: SWAP2
00000c5c: SUB
00000c5d: SWAP1
00000c5e: LOG4
00000c5f: POP
00000c60: POP
00000c61: JUMP
00000c62: JUMPDEST
00000c63: PUSH2 0x0c6c
00000c66: DUP3
00000c67: DUP3
00000c68: PUSH2 0x0779
00000c6b: JUMP
00000c6c: JUMPDEST
00000c6d: ISZERO
00000c6e: PUSH2 0x060b
00000c71: JUMPI
00000c72: PUSH1 0x00
00000c74: DUP3
00000c75: DUP2
00000c76: MSTORE
00000c77: PUSH1 0x20
00000c79: DUP2
00000c7a: DUP2
00000c7b: MSTORE
00000c7c: PUSH1 0x40
00000c7e: DUP1
00000c7f: DUP4
00000c80: KECCAK256
00000c81: PUSH1 0x01
00000c83: PUSH1 0x01
00000c85: PUSH1 0xa0
00000c87: SHL
00000c88: SUB
00000c89: DUP6
00000c8a: AND
00000c8b: DUP1
00000c8c: DUP6
00000c8d: MSTORE
00000c8e: SWAP3
00000c8f: MSTORE
00000c90: DUP1
00000c91: DUP4
00000c92: KECCAK256
00000c93: DUP1
00000c94: SLOAD
00000c95: PUSH1 0xff
00000c97: NOT
00000c98: AND
00000c99: SWAP1
00000c9a: SSTORE
00000c9b: MLOAD
00000c9c: CALLER
00000c9d: SWAP3
00000c9e: DUP6
00000c9f: SWAP2
00000ca0: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b
00000cc1: SWAP2
00000cc2: SWAP1
00000cc3: LOG4
00000cc4: POP
00000cc5: POP
00000cc6: JUMP
00000cc7: JUMPDEST
00000cc8: PUSH1 0x40
00000cca: DUP1
00000ccb: MLOAD
00000ccc: PUSH1 0x01
00000cce: PUSH1 0x01
00000cd0: PUSH1 0xa0
00000cd2: SHL
00000cd3: SUB
00000cd4: DUP5
00000cd5: AND
00000cd6: PUSH1 0x24
00000cd8: DUP3
00000cd9: ADD
00000cda: MSTORE
00000cdb: PUSH1 0x44
00000cdd: DUP1
00000cde: DUP3
00000cdf: ADD
00000ce0: DUP5
00000ce1: SWAP1
00000ce2: MSTORE
00000ce3: DUP3
00000ce4: MLOAD
00000ce5: DUP1
00000ce6: DUP4
00000ce7: SUB
00000ce8: SWAP1
00000ce9: SWAP2
00000cea: ADD
00000ceb: DUP2
00000cec: MSTORE
00000ced: PUSH1 0x64
00000cef: SWAP1
00000cf0: SWAP2
00000cf1: ADD
00000cf2: SWAP1
00000cf3: SWAP2
00000cf4: MSTORE
00000cf5: PUSH1 0x20
00000cf7: DUP2
00000cf8: ADD
00000cf9: DUP1
00000cfa: MLOAD
00000cfb: PUSH1 0x01
00000cfd: PUSH1 0x01
00000cff: PUSH1 0xe0
00000d01: SHL
00000d02: SUB
00000d03: AND
00000d04: PUSH4 0xa9059cbb
00000d09: PUSH1 0xe0
00000d0b: SHL
00000d0c: OR
00000d0d: SWAP1
00000d0e: MSTORE
00000d0f: PUSH2 0x0587
00000d12: SWAP1
00000d13: DUP5
00000d14: SWAP1
00000d15: PUSH2 0x0d72
00000d18: JUMP
00000d19: JUMPDEST
00000d1a: PUSH2 0x0d23
00000d1d: DUP3
00000d1e: DUP3
00000d1f: PUSH2 0x0779
00000d22: JUMP
00000d23: JUMPDEST
00000d24: PUSH2 0x060b
00000d27: JUMPI
00000d28: PUSH2 0x0d30
00000d2b: DUP2
00000d2c: PUSH2 0x0e47
00000d2f: JUMP
00000d30: JUMPDEST
00000d31: PUSH2 0x0d3b
00000d34: DUP4
00000d35: PUSH1 0x20
00000d37: PUSH2 0x0e59
00000d3a: JUMP
00000d3b: JUMPDEST
00000d3c: PUSH1 0x40
00000d3e: MLOAD
00000d3f: PUSH1 0x20
00000d41: ADD
00000d42: PUSH2 0x0d4c
00000d45: SWAP3
00000d46: SWAP2
00000d47: SWAP1
00000d48: PUSH2 0x1494
00000d4b: JUMP
00000d4c: JUMPDEST
00000d4d: PUSH1 0x40
00000d4f: DUP1
00000d50: MLOAD
00000d51: PUSH1 0x1f
00000d53: NOT
00000d54: DUP2
00000d55: DUP5
00000d56: SUB
00000d57: ADD
00000d58: DUP2
00000d59: MSTORE
00000d5a: SWAP1
00000d5b: DUP3
00000d5c: SWAP1
00000d5d: MSTORE
00000d5e: PUSH3 0x461bcd
00000d62: PUSH1 0xe5
00000d64: SHL
00000d65: DUP3
00000d66: MSTORE
00000d67: PUSH2 0x05f8
00000d6a: SWAP2
00000d6b: PUSH1 0x04
00000d6d: ADD
00000d6e: PUSH2 0x1509
00000d71: JUMP
00000d72: JUMPDEST
00000d73: PUSH1 0x00
00000d75: PUSH2 0x0dc7
00000d78: DUP3
00000d79: PUSH1 0x40
00000d7b: MLOAD
00000d7c: DUP1
00000d7d: PUSH1 0x40
00000d7f: ADD
00000d80: PUSH1 0x40
00000d82: MSTORE
00000d83: DUP1
00000d84: PUSH1 0x20
00000d86: DUP2
00000d87: MSTORE
00000d88: PUSH1 0x20
00000d8a: ADD
00000d8b: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
00000dac: DUP2
00000dad: MSTORE
00000dae: POP
00000daf: DUP6
00000db0: PUSH1 0x01
00000db2: PUSH1 0x01
00000db4: PUSH1 0xa0
00000db6: SHL
00000db7: SUB
00000db8: AND
00000db9: PUSH2 0x0ffc
00000dbc: SWAP1
00000dbd: SWAP3
00000dbe: SWAP2
00000dbf: SWAP1
00000dc0: PUSH4 0xffffffff
00000dc5: AND
00000dc6: JUMP
00000dc7: JUMPDEST
00000dc8: SWAP1
00000dc9: POP
00000dca: DUP1
00000dcb: MLOAD
00000dcc: PUSH1 0x00
00000dce: EQ
00000dcf: DUP1
00000dd0: PUSH2 0x0de8
00000dd3: JUMPI
00000dd4: POP
00000dd5: DUP1
00000dd6: DUP1
00000dd7: PUSH1 0x20
00000dd9: ADD
00000dda: SWAP1
00000ddb: MLOAD
00000ddc: DUP2
00000ddd: ADD
00000dde: SWAP1
00000ddf: PUSH2 0x0de8
00000de2: SWAP2
00000de3: SWAP1
00000de4: PUSH2 0x153c
00000de7: JUMP
00000de8: JUMPDEST
00000de9: PUSH2 0x0587
00000dec: JUMPI
00000ded: PUSH1 0x40
00000def: MLOAD
00000df0: PUSH3 0x461bcd
00000df4: PUSH1 0xe5
00000df6: SHL
00000df7: DUP2
00000df8: MSTORE
00000df9: PUSH1 0x20
00000dfb: PUSH1 0x04
00000dfd: DUP3
00000dfe: ADD
00000dff: MSTORE
00000e00: PUSH1 0x2a
00000e02: PUSH1 0x24
00000e04: DUP3
00000e05: ADD
00000e06: MSTORE
00000e07: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
00000e28: PUSH1 0x44
00000e2a: DUP3
00000e2b: ADD
00000e2c: MSTORE
00000e2d: PUSH10 0x1bdd081cdd58d8d95959
00000e38: PUSH1 0xb2
00000e3a: SHL
00000e3b: PUSH1 0x64
00000e3d: DUP3
00000e3e: ADD
00000e3f: MSTORE
00000e40: PUSH1 0x84
00000e42: ADD
00000e43: PUSH2 0x05f8
00000e46: JUMP
00000e47: JUMPDEST
00000e48: PUSH1 0x60
00000e4a: PUSH2 0x0419
00000e4d: PUSH1 0x01
00000e4f: PUSH1 0x01
00000e51: PUSH1 0xa0
00000e53: SHL
00000e54: SUB
00000e55: DUP4
00000e56: AND
00000e57: PUSH1 0x14
00000e59: JUMPDEST
00000e5a: PUSH1 0x60
00000e5c: PUSH1 0x00
00000e5e: PUSH2 0x0e68
00000e61: DUP4
00000e62: PUSH1 0x02
00000e64: PUSH2 0x1559
00000e67: JUMP
00000e68: JUMPDEST
00000e69: PUSH2 0x0e73
00000e6c: SWAP1
00000e6d: PUSH1 0x02
00000e6f: PUSH2 0x1570
00000e72: JUMP
00000e73: JUMPDEST
00000e74: PUSH8 0xffffffffffffffff
00000e7d: DUP2
00000e7e: GT
00000e7f: ISZERO
00000e80: PUSH2 0x0e8b
00000e83: JUMPI
00000e84: PUSH2 0x0e8b
00000e87: PUSH2 0x1298
00000e8a: JUMP
00000e8b: JUMPDEST
00000e8c: PUSH1 0x40
00000e8e: MLOAD
00000e8f: SWAP1
00000e90: DUP1
00000e91: DUP3
00000e92: MSTORE
00000e93: DUP1
00000e94: PUSH1 0x1f
00000e96: ADD
00000e97: PUSH1 0x1f
00000e99: NOT
00000e9a: AND
00000e9b: PUSH1 0x20
00000e9d: ADD
00000e9e: DUP3
00000e9f: ADD
00000ea0: PUSH1 0x40
00000ea2: MSTORE
00000ea3: DUP1
00000ea4: ISZERO
00000ea5: PUSH2 0x0eb5
00000ea8: JUMPI
00000ea9: PUSH1 0x20
00000eab: DUP3
00000eac: ADD
00000ead: DUP2
00000eae: DUP1
00000eaf: CALLDATASIZE
00000eb0: DUP4
00000eb1: CALLDATACOPY
00000eb2: ADD
00000eb3: SWAP1
00000eb4: POP
00000eb5: JUMPDEST
00000eb6: POP
00000eb7: SWAP1
00000eb8: POP
00000eb9: PUSH1 0x03
00000ebb: PUSH1 0xfc
00000ebd: SHL
00000ebe: DUP2
00000ebf: PUSH1 0x00
00000ec1: DUP2
00000ec2: MLOAD
00000ec3: DUP2
00000ec4: LT
00000ec5: PUSH2 0x0ed0
00000ec8: JUMPI
00000ec9: PUSH2 0x0ed0
00000ecc: PUSH2 0x12ae
00000ecf: JUMP
00000ed0: JUMPDEST
00000ed1: PUSH1 0x20
00000ed3: ADD
00000ed4: ADD
00000ed5: SWAP1
00000ed6: PUSH1 0x01
00000ed8: PUSH1 0x01
00000eda: PUSH1 0xf8
00000edc: SHL
00000edd: SUB
00000ede: NOT
00000edf: AND
00000ee0: SWAP1
00000ee1: DUP2
00000ee2: PUSH1 0x00
00000ee4: BYTE
00000ee5: SWAP1
00000ee6: MSTORE8
00000ee7: POP
00000ee8: PUSH1 0x0f
00000eea: PUSH1 0xfb
00000eec: SHL
00000eed: DUP2
00000eee: PUSH1 0x01
00000ef0: DUP2
00000ef1: MLOAD
00000ef2: DUP2
00000ef3: LT
00000ef4: PUSH2 0x0eff
00000ef7: JUMPI
00000ef8: PUSH2 0x0eff
00000efb: PUSH2 0x12ae
00000efe: JUMP
00000eff: JUMPDEST
00000f00: PUSH1 0x20
00000f02: ADD
00000f03: ADD
00000f04: SWAP1
00000f05: PUSH1 0x01
00000f07: PUSH1 0x01
00000f09: PUSH1 0xf8
00000f0b: SHL
00000f0c: SUB
00000f0d: NOT
00000f0e: AND
00000f0f: SWAP1
00000f10: DUP2
00000f11: PUSH1 0x00
00000f13: BYTE
00000f14: SWAP1
00000f15: MSTORE8
00000f16: POP
00000f17: PUSH1 0x00
00000f19: PUSH2 0x0f23
00000f1c: DUP5
00000f1d: PUSH1 0x02
00000f1f: PUSH2 0x1559
00000f22: JUMP
00000f23: JUMPDEST
00000f24: PUSH2 0x0f2e
00000f27: SWAP1
00000f28: PUSH1 0x01
00000f2a: PUSH2 0x1570
00000f2d: JUMP
00000f2e: JUMPDEST
00000f2f: SWAP1
00000f30: POP
00000f31: JUMPDEST
00000f32: PUSH1 0x01
00000f34: DUP2
00000f35: GT
00000f36: ISZERO
00000f37: PUSH2 0x0fa6
00000f3a: JUMPI
00000f3b: PUSH16 0x181899199a1a9b1b9c1cb0b131b232b3
00000f4c: PUSH1 0x81
00000f4e: SHL
00000f4f: DUP6
00000f50: PUSH1 0x0f
00000f52: AND
00000f53: PUSH1 0x10
00000f55: DUP2
00000f56: LT
00000f57: PUSH2 0x0f62
00000f5a: JUMPI
00000f5b: PUSH2 0x0f62
00000f5e: PUSH2 0x12ae
00000f61: JUMP
00000f62: JUMPDEST
00000f63: BYTE
00000f64: PUSH1 0xf8
00000f66: SHL
00000f67: DUP3
00000f68: DUP3
00000f69: DUP2
00000f6a: MLOAD
00000f6b: DUP2
00000f6c: LT
00000f6d: PUSH2 0x0f78
00000f70: JUMPI
00000f71: PUSH2 0x0f78
00000f74: PUSH2 0x12ae
00000f77: JUMP
00000f78: JUMPDEST
00000f79: PUSH1 0x20
00000f7b: ADD
00000f7c: ADD
00000f7d: SWAP1
00000f7e: PUSH1 0x01
00000f80: PUSH1 0x01
00000f82: PUSH1 0xf8
00000f84: SHL
00000f85: SUB
00000f86: NOT
00000f87: AND
00000f88: SWAP1
00000f89: DUP2
00000f8a: PUSH1 0x00
00000f8c: BYTE
00000f8d: SWAP1
00000f8e: MSTORE8
00000f8f: POP
00000f90: PUSH1 0x04
00000f92: SWAP5
00000f93: SWAP1
00000f94: SWAP5
00000f95: SHR
00000f96: SWAP4
00000f97: PUSH2 0x0f9f
00000f9a: DUP2
00000f9b: PUSH2 0x1583
00000f9e: JUMP
00000f9f: JUMPDEST
00000fa0: SWAP1
00000fa1: POP
00000fa2: PUSH2 0x0f31
00000fa5: JUMP
00000fa6: JUMPDEST
00000fa7: POP
00000fa8: DUP4
00000fa9: ISZERO
00000faa: PUSH2 0x0ff5
00000fad: JUMPI
00000fae: PUSH1 0x40
00000fb0: MLOAD
00000fb1: PUSH3 0x461bcd
00000fb5: PUSH1 0xe5
00000fb7: SHL
00000fb8: DUP2
00000fb9: MSTORE
00000fba: PUSH1 0x20
00000fbc: PUSH1 0x04
00000fbe: DUP3
00000fbf: ADD
00000fc0: DUP2
00000fc1: SWAP1
00000fc2: MSTORE
00000fc3: PUSH1 0x24
00000fc5: DUP3
00000fc6: ADD
00000fc7: MSTORE
00000fc8: PUSH32 0x537472696e67733a20686578206c656e67746820696e73756666696369656e74
00000fe9: PUSH1 0x44
00000feb: DUP3
00000fec: ADD
00000fed: MSTORE
00000fee: PUSH1 0x64
00000ff0: ADD
00000ff1: PUSH2 0x05f8
00000ff4: JUMP
00000ff5: JUMPDEST
00000ff6: SWAP4
00000ff7: SWAP3
00000ff8: POP
00000ff9: POP
00000ffa: POP
00000ffb: JUMP
00000ffc: JUMPDEST
00000ffd: PUSH1 0x60
00000fff: PUSH2 0x100b
00001002: DUP5
00001003: DUP5
00001004: PUSH1 0x00
00001006: DUP6
00001007: PUSH2 0x1013
0000100a: JUMP
0000100b: JUMPDEST
0000100c: SWAP5
0000100d: SWAP4
0000100e: POP
0000100f: POP
00001010: POP
00001011: POP
00001012: JUMP
00001013: JUMPDEST
00001014: PUSH1 0x60
00001016: DUP3
00001017: SELFBALANCE
00001018: LT
00001019: ISZERO
0000101a: PUSH2 0x1074
0000101d: JUMPI
0000101e: PUSH1 0x40
00001020: MLOAD
00001021: PUSH3 0x461bcd
00001025: PUSH1 0xe5
00001027: SHL
00001028: DUP2
00001029: MSTORE
0000102a: PUSH1 0x20
0000102c: PUSH1 0x04
0000102e: DUP3
0000102f: ADD
00001030: MSTORE
00001031: PUSH1 0x26
00001033: PUSH1 0x24
00001035: DUP3
00001036: ADD
00001037: MSTORE
00001038: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f
00001059: PUSH1 0x44
0000105b: DUP3
0000105c: ADD
0000105d: MSTORE
0000105e: PUSH6 0x1c8818d85b1b
00001065: PUSH1 0xd2
00001067: SHL
00001068: PUSH1 0x64
0000106a: DUP3
0000106b: ADD
0000106c: MSTORE
0000106d: PUSH1 0x84
0000106f: ADD
00001070: PUSH2 0x05f8
00001073: JUMP
00001074: JUMPDEST
00001075: PUSH1 0x00
00001077: DUP1
00001078: DUP7
00001079: PUSH1 0x01
0000107b: PUSH1 0x01
0000107d: PUSH1 0xa0
0000107f: SHL
00001080: SUB
00001081: AND
00001082: DUP6
00001083: DUP8
00001084: PUSH1 0x40
00001086: MLOAD
00001087: PUSH2 0x1090
0000108a: SWAP2
0000108b: SWAP1
0000108c: PUSH2 0x159a
0000108f: JUMP
00001090: JUMPDEST
00001091: PUSH1 0x00
00001093: PUSH1 0x40
00001095: MLOAD
00001096: DUP1
00001097: DUP4
00001098: SUB
00001099: DUP2
0000109a: DUP6
0000109b: DUP8
0000109c: GAS
0000109d: CALL
0000109e: SWAP3
0000109f: POP
000010a0: POP
000010a1: POP
000010a2: RETURNDATASIZE
000010a3: DUP1
000010a4: PUSH1 0x00
000010a6: DUP2
000010a7: EQ
000010a8: PUSH2 0x10cd
000010ab: JUMPI
000010ac: PUSH1 0x40
000010ae: MLOAD
000010af: SWAP2
000010b0: POP
000010b1: PUSH1 0x1f
000010b3: NOT
000010b4: PUSH1 0x3f
000010b6: RETURNDATASIZE
000010b7: ADD
000010b8: AND
000010b9: DUP3
000010ba: ADD
000010bb: PUSH1 0x40
000010bd: MSTORE
000010be: RETURNDATASIZE
000010bf: DUP3
000010c0: MSTORE
000010c1: RETURNDATASIZE
000010c2: PUSH1 0x00
000010c4: PUSH1 0x20
000010c6: DUP5
000010c7: ADD
000010c8: RETURNDATACOPY
000010c9: PUSH2 0x10d2
000010cc: JUMP
000010cd: JUMPDEST
000010ce: PUSH1 0x60
000010d0: SWAP2
000010d1: POP
000010d2: JUMPDEST
000010d3: POP
000010d4: SWAP2
000010d5: POP
000010d6: SWAP2
000010d7: POP
000010d8: PUSH2 0x10e3
000010db: DUP8
000010dc: DUP4
000010dd: DUP4
000010de: DUP8
000010df: PUSH2 0x10ee
000010e2: JUMP
000010e3: JUMPDEST
000010e4: SWAP8
000010e5: SWAP7
000010e6: POP
000010e7: POP
000010e8: POP
000010e9: POP
000010ea: POP
000010eb: POP
000010ec: POP
000010ed: JUMP
000010ee: JUMPDEST
000010ef: PUSH1 0x60
000010f1: DUP4
000010f2: ISZERO
000010f3: PUSH2 0x115d
000010f6: JUMPI
000010f7: DUP3
000010f8: MLOAD
000010f9: PUSH1 0x00
000010fb: SUB
000010fc: PUSH2 0x1156
000010ff: JUMPI
00001100: PUSH1 0x01
00001102: PUSH1 0x01
00001104: PUSH1 0xa0
00001106: SHL
00001107: SUB
00001108: DUP6
00001109: AND
0000110a: EXTCODESIZE
0000110b: PUSH2 0x1156
0000110e: JUMPI
0000110f: PUSH1 0x40
00001111: MLOAD
00001112: PUSH3 0x461bcd
00001116: PUSH1 0xe5
00001118: SHL
00001119: DUP2
0000111a: MSTORE
0000111b: PUSH1 0x20
0000111d: PUSH1 0x04
0000111f: DUP3
00001120: ADD
00001121: MSTORE
00001122: PUSH1 0x1d
00001124: PUSH1 0x24
00001126: DUP3
00001127: ADD
00001128: MSTORE
00001129: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
0000114a: PUSH1 0x44
0000114c: DUP3
0000114d: ADD
0000114e: MSTORE
0000114f: PUSH1 0x64
00001151: ADD
00001152: PUSH2 0x05f8
00001155: JUMP
00001156: JUMPDEST
00001157: POP
00001158: DUP2
00001159: PUSH2 0x100b
0000115c: JUMP
0000115d: JUMPDEST
0000115e: PUSH2 0x100b
00001161: DUP4
00001162: DUP4
00001163: DUP2
00001164: MLOAD
00001165: ISZERO
00001166: PUSH2 0x1172
00001169: JUMPI
0000116a: DUP2
0000116b: MLOAD
0000116c: DUP1
0000116d: DUP4
0000116e: PUSH1 0x20
00001170: ADD
00001171: REVERT
00001172: JUMPDEST
00001173: DUP1
00001174: PUSH1 0x40
00001176: MLOAD
00001177: PUSH3 0x461bcd
0000117b: PUSH1 0xe5
0000117d: SHL
0000117e: DUP2
0000117f: MSTORE
00001180: PUSH1 0x04
00001182: ADD
00001183: PUSH2 0x05f8
00001186: SWAP2
00001187: SWAP1
00001188: PUSH2 0x1509
0000118b: JUMP
0000118c: JUMPDEST
0000118d: PUSH1 0x00
0000118f: PUSH1 0x20
00001191: DUP3
00001192: DUP5
00001193: SUB
00001194: SLT
00001195: ISZERO
00001196: PUSH2 0x119e
00001199: JUMPI
0000119a: PUSH1 0x00
0000119c: DUP1
0000119d: REVERT
0000119e: JUMPDEST
0000119f: DUP2
000011a0: CALLDATALOAD
000011a1: PUSH1 0x01
000011a3: PUSH1 0x01
000011a5: PUSH1 0xe0
000011a7: SHL
000011a8: SUB
000011a9: NOT
000011aa: DUP2
000011ab: AND
000011ac: DUP2
000011ad: EQ
000011ae: PUSH2 0x0ff5
000011b1: JUMPI
000011b2: PUSH1 0x00
000011b4: DUP1
000011b5: REVERT
000011b6: JUMPDEST
000011b7: PUSH1 0x00
000011b9: PUSH1 0x20
000011bb: DUP3
000011bc: DUP5
000011bd: SUB
000011be: SLT
000011bf: ISZERO
000011c0: PUSH2 0x11c8
000011c3: JUMPI
000011c4: PUSH1 0x00
000011c6: DUP1
000011c7: REVERT
000011c8: JUMPDEST
000011c9: POP
000011ca: CALLDATALOAD
000011cb: SWAP2
000011cc: SWAP1
000011cd: POP
000011ce: JUMP
000011cf: JUMPDEST
000011d0: DUP1
000011d1: ISZERO
000011d2: ISZERO
000011d3: DUP2
000011d4: EQ
000011d5: PUSH2 0x0877
000011d8: JUMPI
000011d9: PUSH1 0x00
000011db: DUP1
000011dc: REVERT
000011dd: JUMPDEST
000011de: PUSH1 0x00
000011e0: DUP1
000011e1: PUSH1 0x00
000011e3: DUP1
000011e4: PUSH1 0x80
000011e6: DUP6
000011e7: DUP8
000011e8: SUB
000011e9: SLT
000011ea: ISZERO
000011eb: PUSH2 0x11f3
000011ee: JUMPI
000011ef: PUSH1 0x00
000011f1: DUP1
000011f2: REVERT
000011f3: JUMPDEST
000011f4: DUP5
000011f5: CALLDATALOAD
000011f6: SWAP4
000011f7: POP
000011f8: PUSH1 0x20
000011fa: DUP6
000011fb: ADD
000011fc: CALLDATALOAD
000011fd: SWAP3
000011fe: POP
000011ff: PUSH1 0x40
00001201: DUP6
00001202: ADD
00001203: CALLDATALOAD
00001204: PUSH2 0x120c
00001207: DUP2
00001208: PUSH2 0x11cf
0000120b: JUMP
0000120c: JUMPDEST
0000120d: SWAP4
0000120e: SWAP7
0000120f: SWAP3
00001210: SWAP6
00001211: POP
00001212: SWAP3
00001213: SWAP4
00001214: PUSH1 0x60
00001216: ADD
00001217: CALLDATALOAD
00001218: SWAP3
00001219: POP
0000121a: POP
0000121b: JUMP
0000121c: JUMPDEST
0000121d: DUP1
0000121e: CALLDATALOAD
0000121f: PUSH1 0x01
00001221: PUSH1 0x01
00001223: PUSH1 0xa0
00001225: SHL
00001226: SUB
00001227: DUP2
00001228: AND
00001229: DUP2
0000122a: EQ
0000122b: PUSH2 0x1233
0000122e: JUMPI
0000122f: PUSH1 0x00
00001231: DUP1
00001232: REVERT
00001233: JUMPDEST
00001234: SWAP2
00001235: SWAP1
00001236: POP
00001237: JUMP
00001238: JUMPDEST
00001239: PUSH1 0x00
0000123b: DUP1
0000123c: PUSH1 0x40
0000123e: DUP4
0000123f: DUP6
00001240: SUB
00001241: SLT
00001242: ISZERO
00001243: PUSH2 0x124b
00001246: JUMPI
00001247: PUSH1 0x00
00001249: DUP1
0000124a: REVERT
0000124b: JUMPDEST
0000124c: DUP3
0000124d: CALLDATALOAD
0000124e: SWAP2
0000124f: POP
00001250: PUSH2 0x125b
00001253: PUSH1 0x20
00001255: DUP5
00001256: ADD
00001257: PUSH2 0x121c
0000125a: JUMP
0000125b: JUMPDEST
0000125c: SWAP1
0000125d: POP
0000125e: SWAP3
0000125f: POP
00001260: SWAP3
00001261: SWAP1
00001262: POP
00001263: JUMP
00001264: JUMPDEST
00001265: PUSH1 0x00
00001267: PUSH1 0x20
00001269: DUP3
0000126a: DUP5
0000126b: SUB
0000126c: SLT
0000126d: ISZERO
0000126e: PUSH2 0x1276
00001271: JUMPI
00001272: PUSH1 0x00
00001274: DUP1
00001275: REVERT
00001276: JUMPDEST
00001277: PUSH2 0x0ff5
0000127a: DUP3
0000127b: PUSH2 0x121c
0000127e: JUMP
0000127f: JUMPDEST
00001280: PUSH1 0x00
00001282: PUSH1 0x20
00001284: DUP3
00001285: DUP5
00001286: SUB
00001287: SLT
00001288: ISZERO
00001289: PUSH2 0x1291
0000128c: JUMPI
0000128d: PUSH1 0x00
0000128f: DUP1
00001290: REVERT
00001291: JUMPDEST
00001292: POP
00001293: MLOAD
00001294: SWAP2
00001295: SWAP1
00001296: POP
00001297: JUMP
00001298: JUMPDEST
00001299: PUSH4 0x4e487b71
0000129e: PUSH1 0xe0
000012a0: SHL
000012a1: PUSH1 0x00
000012a3: MSTORE
000012a4: PUSH1 0x41
000012a6: PUSH1 0x04
000012a8: MSTORE
000012a9: PUSH1 0x24
000012ab: PUSH1 0x00
000012ad: REVERT
000012ae: JUMPDEST
000012af: PUSH4 0x4e487b71
000012b4: PUSH1 0xe0
000012b6: SHL
000012b7: PUSH1 0x00
000012b9: MSTORE
000012ba: PUSH1 0x32
000012bc: PUSH1 0x04
000012be: MSTORE
000012bf: PUSH1 0x24
000012c1: PUSH1 0x00
000012c3: REVERT
000012c4: JUMPDEST
000012c5: PUSH1 0x00
000012c7: DUP2
000012c8: MLOAD
000012c9: DUP1
000012ca: DUP5
000012cb: MSTORE
000012cc: PUSH1 0x20
000012ce: DUP5
000012cf: ADD
000012d0: SWAP4
000012d1: POP
000012d2: PUSH1 0x20
000012d4: DUP4
000012d5: ADD
000012d6: PUSH1 0x00
000012d8: JUMPDEST
000012d9: DUP3
000012da: DUP2
000012db: LT
000012dc: ISZERO
000012dd: PUSH2 0x12ff
000012e0: JUMPI
000012e1: DUP2
000012e2: MLOAD
000012e3: PUSH1 0x01
000012e5: PUSH1 0x01
000012e7: PUSH1 0xa0
000012e9: SHL
000012ea: SUB
000012eb: AND
000012ec: DUP7
000012ed: MSTORE
000012ee: PUSH1 0x20
000012f0: SWAP6
000012f1: DUP7
000012f2: ADD
000012f3: SWAP6
000012f4: SWAP1
000012f5: SWAP2
000012f6: ADD
000012f7: SWAP1
000012f8: PUSH1 0x01
000012fa: ADD
000012fb: PUSH2 0x12d8
000012fe: JUMP
000012ff: JUMPDEST
00001300: POP
00001301: SWAP4
00001302: SWAP5
00001303: SWAP4
00001304: POP
00001305: POP
00001306: POP
00001307: POP
00001308: JUMP
00001309: JUMPDEST
0000130a: DUP6
0000130b: DUP2
0000130c: MSTORE
0000130d: DUP5
0000130e: PUSH1 0x20
00001310: DUP3
00001311: ADD
00001312: MSTORE
00001313: PUSH1 0xa0
00001315: PUSH1 0x40
00001317: DUP3
00001318: ADD
00001319: MSTORE
0000131a: PUSH1 0x00
0000131c: PUSH2 0x1328
0000131f: PUSH1 0xa0
00001321: DUP4
00001322: ADD
00001323: DUP7
00001324: PUSH2 0x12c4
00001327: JUMP
00001328: JUMPDEST
00001329: PUSH1 0x01
0000132b: PUSH1 0x01
0000132d: PUSH1 0xa0
0000132f: SHL
00001330: SUB
00001331: SWAP5
00001332: SWAP1
00001333: SWAP5
00001334: AND
00001335: PUSH1 0x60
00001337: DUP4
00001338: ADD
00001339: MSTORE
0000133a: POP
0000133b: PUSH1 0x80
0000133d: ADD
0000133e: MSTORE
0000133f: SWAP4
00001340: SWAP3
00001341: POP
00001342: POP
00001343: POP
00001344: JUMP
00001345: JUMPDEST
00001346: PUSH1 0x00
00001348: PUSH1 0x20
0000134a: DUP3
0000134b: DUP5
0000134c: SUB
0000134d: SLT
0000134e: ISZERO
0000134f: PUSH2 0x1357
00001352: JUMPI
00001353: PUSH1 0x00
00001355: DUP1
00001356: REVERT
00001357: JUMPDEST
00001358: DUP2
00001359: MLOAD
0000135a: PUSH8 0xffffffffffffffff
00001363: DUP2
00001364: GT
00001365: ISZERO
00001366: PUSH2 0x136e
00001369: JUMPI
0000136a: PUSH1 0x00
0000136c: DUP1
0000136d: REVERT
0000136e: JUMPDEST
0000136f: DUP3
00001370: ADD
00001371: PUSH1 0x1f
00001373: DUP2
00001374: ADD
00001375: DUP5
00001376: SGT
00001377: PUSH2 0x137f
0000137a: JUMPI
0000137b: PUSH1 0x00
0000137d: DUP1
0000137e: REVERT
0000137f: JUMPDEST
00001380: DUP1
00001381: MLOAD
00001382: PUSH8 0xffffffffffffffff
0000138b: DUP2
0000138c: GT
0000138d: ISZERO
0000138e: PUSH2 0x1399
00001391: JUMPI
00001392: PUSH2 0x1399
00001395: PUSH2 0x1298
00001398: JUMP
00001399: JUMPDEST
0000139a: DUP1
0000139b: PUSH1 0x05
0000139d: SHL
0000139e: PUSH1 0x40
000013a0: MLOAD
000013a1: PUSH1 0x1f
000013a3: NOT
000013a4: PUSH1 0x3f
000013a6: DUP4
000013a7: ADD
000013a8: AND
000013a9: DUP2
000013aa: ADD
000013ab: DUP2
000013ac: DUP2
000013ad: LT
000013ae: PUSH8 0xffffffffffffffff
000013b7: DUP3
000013b8: GT
000013b9: OR
000013ba: ISZERO
000013bb: PUSH2 0x13c6
000013be: JUMPI
000013bf: PUSH2 0x13c6
000013c2: PUSH2 0x1298
000013c5: JUMP
000013c6: JUMPDEST
000013c7: PUSH1 0x40
000013c9: MSTORE
000013ca: SWAP2
000013cb: DUP3
000013cc: MSTORE
000013cd: PUSH1 0x20
000013cf: DUP2
000013d0: DUP5
000013d1: ADD
000013d2: DUP2
000013d3: ADD
000013d4: SWAP3
000013d5: SWAP1
000013d6: DUP2
000013d7: ADD
000013d8: DUP8
000013d9: DUP5
000013da: GT
000013db: ISZERO
000013dc: PUSH2 0x13e4
000013df: JUMPI
000013e0: PUSH1 0x00
000013e2: DUP1
000013e3: REVERT
000013e4: JUMPDEST
000013e5: PUSH1 0x20
000013e7: DUP6
000013e8: ADD
000013e9: SWAP5
000013ea: POP
000013eb: JUMPDEST
000013ec: DUP4
000013ed: DUP6
000013ee: LT
000013ef: ISZERO
000013f0: PUSH2 0x1407
000013f3: JUMPI
000013f4: DUP5
000013f5: MLOAD
000013f6: DUP1
000013f7: DUP3
000013f8: MSTORE
000013f9: PUSH1 0x20
000013fb: SWAP6
000013fc: DUP7
000013fd: ADD
000013fe: SWAP6
000013ff: SWAP1
00001400: SWAP4
00001401: POP
00001402: ADD
00001403: PUSH2 0x13eb
00001406: JUMP
00001407: JUMPDEST
00001408: POP
00001409: SWAP7
0000140a: SWAP6
0000140b: POP
0000140c: POP
0000140d: POP
0000140e: POP
0000140f: POP
00001410: POP
00001411: JUMP
00001412: JUMPDEST
00001413: PUSH4 0x4e487b71
00001418: PUSH1 0xe0
0000141a: SHL
0000141b: PUSH1 0x00
0000141d: MSTORE
0000141e: PUSH1 0x11
00001420: PUSH1 0x04
00001422: MSTORE
00001423: PUSH1 0x24
00001425: PUSH1 0x00
00001427: REVERT
00001428: JUMPDEST
00001429: DUP2
0000142a: DUP2
0000142b: SUB
0000142c: DUP2
0000142d: DUP2
0000142e: GT
0000142f: ISZERO
00001430: PUSH2 0x0419
00001433: JUMPI
00001434: PUSH2 0x0419
00001437: PUSH2 0x1412
0000143a: JUMP
0000143b: JUMPDEST
0000143c: DUP5
0000143d: DUP2
0000143e: MSTORE
0000143f: PUSH1 0x80
00001441: PUSH1 0x20
00001443: DUP3
00001444: ADD
00001445: MSTORE
00001446: PUSH1 0x00
00001448: PUSH2 0x1454
0000144b: PUSH1 0x80
0000144d: DUP4
0000144e: ADD
0000144f: DUP7
00001450: PUSH2 0x12c4
00001453: JUMP
00001454: JUMPDEST
00001455: PUSH1 0x01
00001457: PUSH1 0x01
00001459: PUSH1 0xa0
0000145b: SHL
0000145c: SUB
0000145d: SWAP5
0000145e: SWAP1
0000145f: SWAP5
00001460: AND
00001461: PUSH1 0x40
00001463: DUP4
00001464: ADD
00001465: MSTORE
00001466: POP
00001467: PUSH1 0x60
00001469: ADD
0000146a: MSTORE
0000146b: SWAP3
0000146c: SWAP2
0000146d: POP
0000146e: POP
0000146f: JUMP
00001470: JUMPDEST
00001471: PUSH1 0x00
00001473: JUMPDEST
00001474: DUP4
00001475: DUP2
00001476: LT
00001477: ISZERO
00001478: PUSH2 0x148b
0000147b: JUMPI
0000147c: DUP2
0000147d: DUP2
0000147e: ADD
0000147f: MLOAD
00001480: DUP4
00001481: DUP3
00001482: ADD
00001483: MSTORE
00001484: PUSH1 0x20
00001486: ADD
00001487: PUSH2 0x1473
0000148a: JUMP
0000148b: JUMPDEST
0000148c: POP
0000148d: POP
0000148e: PUSH1 0x00
00001490: SWAP2
00001491: ADD
00001492: MSTORE
00001493: JUMP
00001494: JUMPDEST
00001495: PUSH32 0x416363657373436f6e74726f6c3a206163636f756e7420000000000000000000
000014b6: DUP2
000014b7: MSTORE
000014b8: PUSH1 0x00
000014ba: DUP4
000014bb: MLOAD
000014bc: PUSH2 0x14cc
000014bf: DUP2
000014c0: PUSH1 0x17
000014c2: DUP6
000014c3: ADD
000014c4: PUSH1 0x20
000014c6: DUP9
000014c7: ADD
000014c8: PUSH2 0x1470
000014cb: JUMP
000014cc: JUMPDEST
000014cd: PUSH17 0x01034b99036b4b9b9b4b733903937b6329
000014df: PUSH1 0x7d
000014e1: SHL
000014e2: PUSH1 0x17
000014e4: SWAP2
000014e5: DUP5
000014e6: ADD
000014e7: SWAP2
000014e8: DUP3
000014e9: ADD
000014ea: MSTORE
000014eb: DUP4
000014ec: MLOAD
000014ed: PUSH2 0x14fd
000014f0: DUP2
000014f1: PUSH1 0x28
000014f3: DUP5
000014f4: ADD
000014f5: PUSH1 0x20
000014f7: DUP9
000014f8: ADD
000014f9: PUSH2 0x1470
000014fc: JUMP
000014fd: JUMPDEST
000014fe: ADD
000014ff: PUSH1 0x28
00001501: ADD
00001502: SWAP5
00001503: SWAP4
00001504: POP
00001505: POP
00001506: POP
00001507: POP
00001508: JUMP
00001509: JUMPDEST
0000150a: PUSH1 0x20
0000150c: DUP2
0000150d: MSTORE
0000150e: PUSH1 0x00
00001510: DUP3
00001511: MLOAD
00001512: DUP1
00001513: PUSH1 0x20
00001515: DUP5
00001516: ADD
00001517: MSTORE
00001518: PUSH2 0x1528
0000151b: DUP2
0000151c: PUSH1 0x40
0000151e: DUP6
0000151f: ADD
00001520: PUSH1 0x20
00001522: DUP8
00001523: ADD
00001524: PUSH2 0x1470
00001527: JUMP
00001528: JUMPDEST
00001529: PUSH1 0x1f
0000152b: ADD
0000152c: PUSH1 0x1f
0000152e: NOT
0000152f: AND
00001530: SWAP2
00001531: SWAP1
00001532: SWAP2
00001533: ADD
00001534: PUSH1 0x40
00001536: ADD
00001537: SWAP3
00001538: SWAP2
00001539: POP
0000153a: POP
0000153b: JUMP
0000153c: JUMPDEST
0000153d: PUSH1 0x00
0000153f: PUSH1 0x20
00001541: DUP3
00001542: DUP5
00001543: SUB
00001544: SLT
00001545: ISZERO
00001546: PUSH2 0x154e
00001549: JUMPI
0000154a: PUSH1 0x00
0000154c: DUP1
0000154d: REVERT
0000154e: JUMPDEST
0000154f: DUP2
00001550: MLOAD
00001551: PUSH2 0x0ff5
00001554: DUP2
00001555: PUSH2 0x11cf
00001558: JUMP
00001559: JUMPDEST
0000155a: DUP1
0000155b: DUP3
0000155c: MUL
0000155d: DUP2
0000155e: ISZERO
0000155f: DUP3
00001560: DUP3
00001561: DIV
00001562: DUP5
00001563: EQ
00001564: OR
00001565: PUSH2 0x0419
00001568: JUMPI
00001569: PUSH2 0x0419
0000156c: PUSH2 0x1412
0000156f: JUMP
00001570: JUMPDEST
00001571: DUP1
00001572: DUP3
00001573: ADD
00001574: DUP1
00001575: DUP3
00001576: GT
00001577: ISZERO
00001578: PUSH2 0x0419
0000157b: JUMPI
0000157c: PUSH2 0x0419
0000157f: PUSH2 0x1412
00001582: JUMP
00001583: JUMPDEST
00001584: PUSH1 0x00
00001586: DUP2
00001587: PUSH2 0x1592
0000158a: JUMPI
0000158b: PUSH2 0x1592
0000158e: PUSH2 0x1412
00001591: JUMP
00001592: JUMPDEST
00001593: POP
00001594: PUSH1 0x00
00001596: NOT
00001597: ADD
00001598: SWAP1
00001599: JUMP
0000159a: JUMPDEST
0000159b: PUSH1 0x00
0000159d: DUP3
0000159e: MLOAD
0000159f: PUSH2 0x15ac
000015a2: DUP2
000015a3: DUP5
000015a4: PUSH1 0x20
000015a6: DUP8
000015a7: ADD
000015a8: PUSH2 0x1470
000015ab: JUMP
000015ac: JUMPDEST
000015ad: SWAP2
000015ae: SWAP1
000015af: SWAP2
000015b0: ADD
000015b1: SWAP3
000015b2: SWAP2
000015b3: POP
000015b4: POP
000015b5: JUMP
000015b6: INVALID
000015b7: LOG2
000015b8: PUSH5 0x6970667358
000015be: UNKNOWN(0x22)
000015bf: SLT
000015c0: KECCAK256
000015c1: SHR
000015c2: UNKNOWN(0xC4)
000015c3: CREATE
000015c4: UNKNOWN(0x25)
000015c5: UNKNOWN(0xAE)
000015c6: UNKNOWN(0xA7)
000015c7: PUSH10 0x81268579ae06cdc546a1
000015d2: UNKNOWN(0xBF)
000015d3: UNKNOWN(0xBD)
000015d4: UNKNOWN(0xBF)
000015d5: SELFBALANCE
000015d6: UNKNOWN(0xC5)
000015d7: UNKNOWN(0xDB)
000015d8: SWAP4
000015d9: UNKNOWN(0xDF)
000015da: SIGNEXTEND
000015db: MSTORE8
000015dc: LOG1
000015dd: CALLVALUE
000015de: DIV
000015df: GAS
000015e0: DUP16
000015e1: PUSH5 0x736f6c6343
000015e7: STOP
000015e8: ADDMOD
000015e9: SHR
000015ea: STOP
000015eb: CALLER

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: 0xe66183863e38f4860aafdd2c42a40d186071d9d061ea56c5fca43696bc647e21
call_targets: 0x2cb343fad3a2221824e9e4137b636c31300a8bf0
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xe66183863e38f4860aafdd2c42a40d186071d9d061ea56c5fca43696bc647e21",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x2cb343fad3a2221824e9e4137b636c31300a8bf0"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x9df806d6",
            "selector": "0x9df806d6",
            "calldata_variants": [
                "0x9df806d6",
                "0x9df806d60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa217fddf",
            "selector": "0xa217fddf",
            "calldata_variants": [
                "0xa217fddf",
                "0xa217fddf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xad5c4648",
            "selector": "0xad5c4648",
            "calldata_variants": [
                "0xad5c4648",
                "0xad5c46480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xba8bca5a",
            "selector": "0xba8bca5a",
            "calldata_variants": [
                "0xba8bca5a",
                "0xba8bca5a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x75b238fc",
            "selector": "0x75b238fc",
            "calldata_variants": [
                "0x75b238fc",
                "0x75b238fc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7a01a1da",
            "selector": "0x7a01a1da",
            "calldata_variants": [
                "0x7a01a1da",
                "0x7a01a1da0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x89a30271",
            "selector": "0x89a30271",
            "calldata_variants": [
                "0x89a30271",
                "0x89a302710000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1659,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2547,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2980,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [],
    "untrusted_call_count": 4
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xe66183863e38f4860aafdd2c42a40d186071d9d061ea56c5fca43696bc647e21
call_targets: 0x2cb343fad3a2221824e9e4137b636c31300a8bf0
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xe66183863e38f4860aafdd2c42a40d186071d9d061ea56c5fca43696bc647e21",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x2cb343fad3a2221824e9e4137b636c31300a8bf0"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x9df806d6",
            "selector": "0x9df806d6",
            "calldata_variants": [
                "0x9df806d6",
                "0x9df806d60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa217fddf",
            "selector": "0xa217fddf",
            "calldata_variants": [
                "0xa217fddf",
                "0xa217fddf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xad5c4648",
            "selector": "0xad5c4648",
            "calldata_variants": [
                "0xad5c4648",
                "0xad5c46480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xba8bca5a",
            "selector": "0xba8bca5a",
            "calldata_variants": [
                "0xba8bca5a",
                "0xba8bca5a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x75b238fc",
            "selector": "0x75b238fc",
            "calldata_variants": [
                "0x75b238fc",
                "0x75b238fc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7a01a1da",
            "selector": "0x7a01a1da",
            "calldata_variants": [
                "0x7a01a1da",
                "0x7a01a1da0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x89a30271",
            "selector": "0x89a30271",
            "calldata_variants": [
                "0x89a30271",
                "0x89a302710000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1659,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2547,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2980,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": []
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x2d04e0b4d5ae5ccd61d484c78db4a4d674342219200728e0f7933792dd24ae25
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x2d04e0b4d5ae5ccd61d484c78db4a4d674342219200728e0f7933792dd24ae25",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x9df806d6",
            "selector": "0x9df806d6",
            "calldata_variants": [
                "0x9df806d6",
                "0x9df806d60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa217fddf",
            "selector": "0xa217fddf",
            "calldata_variants": [
                "0xa217fddf",
                "0xa217fddf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xad5c4648",
            "selector": "0xad5c4648",
            "calldata_variants": [
                "0xad5c4648",
                "0xad5c46480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xba8bca5a",
            "selector": "0xba8bca5a",
            "calldata_variants": [
                "0xba8bca5a",
                "0xba8bca5a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x75b238fc",
            "selector": "0x75b238fc",
            "calldata_variants": [
                "0x75b238fc",
                "0x75b238fc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7a01a1da",
            "selector": "0x7a01a1da",
            "calldata_variants": [
                "0x7a01a1da",
                "0x7a01a1da0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x89a30271",
            "selector": "0x89a30271",
            "calldata_variants": [
                "0x89a30271",
                "0x89a302710000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 1,
    "create2_count": 0
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}