71966474-9bba-497f-8be2-fc9bca6059fa
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 31181 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 76900 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 76901 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 76902 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 76903 | capability.graph | complete | 1 / 3 | 1 week ago |
| 76904 | detector.run | complete | 1 / 3 | 1 week ago |
| 76905 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1293828] OpenAI Codex v0.77.0 (research preview)
[codex:1293828] --------
[codex:1293828] workdir: /tmp/codex-multi-t61lugcv
[codex:1293828] model: gpt-5.2-codex
[codex:1293828] provider: openai
[codex:1293828] approval: never
[codex:1293828] sandbox: read-only
[codex:1293828] reasoning effort: xhigh
[codex:1293828] reasoning summaries: auto
[codex:1293828] session id: 019b7c6b-d6f0-7370-b08b-3b9a616ad21d
[codex:1293828] --------
[codex:1293828] user
[codex:1293828] 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:1293828]
[codex:1293828] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:1293828]
[codex:1293828] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1293828] - Gas inefficiency, code quality, or best practices
[codex:1293828] - Theoretical vulnerabilities without a clear extraction path
[codex:1293828] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:1293828] - Issues requiring social engineering or off-chain coordination
[codex:1293828]
[codex:1293828] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:1293828] - CALL/DELEGATECALL with controllable destination or calldata
[codex:1293828] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:1293828] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:1293828] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:1293828] - External calls before state updates (reentrancy)
[codex:1293828] - SELFDESTRUCT with controllable beneficiary
[codex:1293828] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:1293828]
[codex:1293828] For each finding, you MUST explain:
[codex:1293828] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:1293828] 2. The concrete sequence of transactions to extract value
[codex:1293828] 3. Why you believe this is exploitable (not just suspicious)
[codex:1293828]
[codex:1293828] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:1293828] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:1293828]
[codex:1293828] Output MUST be valid JSON matching the provided schema.
[codex:1293828] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1293828] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1293828] mcp startup: no servers
[codex:1293828]
[codex:1293828] thinking
[codex:1293828] **Preparing to read file contents**
[codex:1293828] exec
[codex:1293828] /bin/bash -lc ls in /tmp/codex-multi-t61lugcv succeeded in 5ms:
[codex:1293828] BYTECODE_BUNDLE.txt
[codex:1293828] codex-output-schema.json
[codex:1293828] exec
[codex:1293828] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-t61lugcv succeeded in 5ms:
[codex:1293828] Runtime bytecode bundle for best-effort auditing.
[codex:1293828] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1293828]
[codex:1293828] FILE: runtime_bytecode.hex
[codex:1293828] 0x6080604052600436101561001d575b366105f55761001b610e69565b005b6100275f35610076565b80632f54bf6e1461007157806342cde4e81461006c578063a0ab965314610067578063aa5df9e2146100625763affed0e00361000e576105c0565b61057d565b610454565b610244565b6101a3565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b60018060a01b031690565b6100a29061008e565b90565b6100ae81610099565b036100b557565b5f80fd5b905035906100c6826100a5565b565b906020828203126100e1576100de915f016100b9565b90565b610086565b90565b6100fd6100f86101029261008e565b6100e6565b61008e565b90565b61010e906100e9565b90565b61011a90610105565b90565b9061012790610111565b5f5260205260405f2090565b1c90565b60ff1690565b61014d9060086101529302610133565b610137565b90565b90610160915461013d565b90565b610179906101746002915f9261011d565b610155565b90565b151590565b61018a9061017c565b9052565b91906101a1905f60208501940190610181565b565b346101d3576101cf6101be6101b93660046100c8565b610163565b6101c661007c565b9182918261018e565b0390f35b610082565b5f9103126101e257565b610086565b90565b6101fa9060086101ff9302610133565b6101e7565b90565b9061020d91546101ea565b90565b61021c60015f90610202565b90565b90565b61022b9061021f565b9052565b9190610242905f60208501940190610222565b565b34610274576102543660046101d8565b61027061025f610210565b61026761007c565b9182918261022f565b0390f35b610082565b5f80fd5b5f80fd5b5f80fd5b909182601f830112156102bf5781359167ffffffffffffffff83116102ba5760200192602083028401116102b557565b610281565b61027d565b610279565b909182601f830112156102fe5781359167ffffffffffffffff83116102f95760200192602083028401116102f457565b610281565b61027d565b610279565b61030c8161021f565b0361031357565b5f80fd5b9050359061032482610303565b565b909182601f830112156103605781359167ffffffffffffffff831161035b57602001926001830284011161035657565b610281565b61027d565b610279565b90916101008284031261044a575f82013567ffffffffffffffff81116104455783610391918401610285565b929093602082013567ffffffffffffffff811161044057816103b49184016102c4565b929093604082013567ffffffffffffffff811161043b57836103d79184016102c4565b9290936103e781606084016100b9565b926103f58260808501610317565b9260a08101359167ffffffffffffffff83116104365761041a84610433948401610326565b93909461042a8160c086016100b9565b9360e001610317565b90565b61008a565b61008a565b61008a565b61008a565b610086565b5f0190565b346104925761047c610467366004610365565b9a999099989198979297969396959495610b3e565b61048461007c565b8061048e8161044f565b0390f35b610082565b906020828203126104b0576104ad915f01610317565b90565b610086565b634e487b7160e01b5f52603260045260245ffd5b5490565b5f5260205f2090565b6104df816104c9565b8210156104f9576104f16001916104cd565b910201905f90565b6104b5565b60018060a01b031690565b61051990600861051e9302610133565b6104fe565b90565b9061052c9154610509565b90565b600361053a816104c9565b821015610557576105549161054e916104d6565b90610521565b90565b5f80fd5b61056490610099565b9052565b919061057b905f6020850194019061055b565b565b346105ad576105a9610598610593366004610497565b61052f565b6105a061007c565b91829182610568565b0390f35b610082565b6105bd5f5f90610202565b90565b346105f0576105d03660046101d8565b6105ec6105db6105b2565b6105e361007c565b9182918261022f565b0390f35b610082565b5f80fd5b5090565b5f1c90565b61060e610613916105fd565b6101e7565b90565b6106209054610602565b90565b5090565b90565b61063e61063961064392610627565b6100e6565b61008e565b90565b61064f9061062a565b90565b90565b90565b5f1b90565b61067161066c61067692610652565b610658565b610655565b90565b6106a27fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647261065d565b90565b90565b6106bc6106b76106c1926106a5565b610658565b610655565b90565b6106ed7fb7a0bfa1b79f2443f4d73ebb9259cddbcd510b18be6fc4da7d1aa7b1786e73e66106a8565b90565b90565b61070761070261070c926106f0565b610658565b610655565b90565b6107387fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66106f3565b90565b61074490610105565b90565b90565b61075e61075961076392610747565b610658565b610655565b90565b61078f7f251543af6a222378665a76fe38dbceae4871a070b7fdaf5c6c30cf758dc33cc061074a565b90565b61079b90610655565b9052565b91946107e76107f1929897956107dd60a0966107d36107f89a6107c960c08a019e5f8b0190610792565b6020890190610792565b6040870190610792565b6060850190610222565b608083019061055b565b0190610792565b565b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b90610822906107fa565b810190811067ffffffffffffffff82111761083c57604052565b610804565b60200190565b5190565b90565b61086261085d6108679261084b565b610658565b610655565b90565b6108937f3ee892349ae4bbe61dce18f95115b5dc02daf49204cc602458cd4c1f540d56d761084e565b90565b5f80fd5b906108ad6108a661007c565b9283610818565b565b67ffffffffffffffff81116108cd576108c96020916107fa565b0190565b610804565b90825f939282370152565b909291926108f26108ed826108af565b61089a565b9381855260208501908284011161090e5761090c926108d2565b565b610896565b61091e9136916108dd565b90565b949290979695939160e08601985f870161093a91610792565b602086016109479161055b565b6040850161095491610222565b6060840161096191610792565b6080830161096e91610222565b60a0820161097b9161055b565b60c00161098791610222565b565b905090565b5f61190160f01b910152565b6109a660028092610989565b6109af8161098e565b0190565b90565b6109c26109c791610655565b6109b3565b9052565b60208093926109e66109df6109ee9461099a565b80926109b6565b0180926109b6565b0190565b634e487b7160e01b5f52601160045260245ffd5b610a0f9061021f565b5f198114610a1d5760010190565b6109f2565b90610a2e5f1991610658565b9181191691161790565b610a4c610a47610a519261021f565b6100e6565b61021f565b90565b90565b90610a6c610a67610a7392610a38565b610a54565b8254610a22565b9055565b905090565b909182610a8c81610a9393610a77565b80936108d2565b0190565b9091610aa292610a7c565b90565b90610ab7610ab2836108af565b61089a565b918252565b606090565b3d5f14610adc57610ad13d610aa5565b903d5f602084013e5b565b610ae4610abc565b90610ada565b60209181520190565b9190610b0d81610b0681610b1295610aea565b80956108d2565b6107fa565b0190565b91610b3b939192610b2e60408201945f830190610222565b6020818503910152610af3565b90565b919598979a9399929699949094610b568789906105f9565b610b71610b6b610b666001610616565b61021f565b9161021f565b10610e4d57610b818789906105f9565b610b9d610b97610b928486906105f9565b61021f565b9161021f565b14158015610e1e575b610e025783610bbd610bb733610099565b91610099565b141580610ddf575b610dc357610d48975f9788978b8f8f8f610ca590610c96610cdf948e610cfe9e610c62610bf0610679565b610c3e610bfb6106c4565b91610c2f610c0761070f565b46610c113061073b565b90610c1a610766565b92610c2361007c565b9788966020880161079f565b60208201810382520382610818565b610c50610c4a82610847565b91610841565b2099610c5a61086a565b969894610913565b610c74610c6e82610847565b91610841565b205f610c7f90610616565b919293610c8a61007c565b98899760208901610921565b60208201810382520382610818565b610cb7610cb182610847565b91610841565b2091610cd0610cc461007c565b938492602084016109cb565b60208201810382520382610818565b610cf1610ceb82610847565b91610841565b209590919293949561100e565b610d18610d12610d0d84610616565b610a06565b83610a57565b85908790919089918792610d36610d2d61007c565b94859283610a97565b0393f1610d41610ac1565b501561017c565b610da757610d553061073b565b9192939093610da2610d90610d8a7fc25cfed0b22da6a56f0e5ff784979a0b8623eddf2aee4acd33c2adefb09cbab695610111565b95610111565b95610d9961007c565b93849384610b16565b0390a3565b5f63de44a57160e01b815280610dbf6004820161044f565b0390fd5b5f63710c949760e01b815280610ddb6004820161044f565b0390fd5b5083610dfb610df5610df05f610646565b610099565b91610099565b1415610bc5565b5f6360b2804560e11b815280610e1a6004820161044f565b0390fd5b50610e2a8789906105f9565b610e46610e40610e3b868a90610623565b61021f565b9161021f565b1415610ba6565b5f633724e34360e11b815280610e656004820161044f565b0390fd5b33610e733061073b565b3491610ebd610eab610ea57f1d34d19757361fd4aa48c5023224a5cbb511fef3e3ae1ebb3634e00a496b74d793610111565b93610111565b93610eb461007c565b9182918261022f565b0390a3565b610ed6610ed1610edb92610627565b6100e6565b61021f565b90565b6001610eea910161021f565b90565b9190811015610efd576020020190565b6104b5565b610f0b81610655565b03610f1257565b5f80fd5b35610f2081610f02565b90565b610f2f610f34916105fd565b610a38565b90565b90565b610f4e610f49610f5392610f37565b6100e6565b61021f565b90565b9190811015610f66576020020190565b6104b5565b60ff1690565b610f7a81610f6b565b03610f8157565b5f80fd5b35610f8f81610f71565b90565b610f9b90610f6b565b9052565b610fd4610fdb94610fca606094989795610fc0608086019a5f870190610792565b6020850190610f92565b6040830190610792565b0190610792565b565b610fe561007c565b3d5f823e3d90fd5b610ff9610ffe916105fd565b610137565b90565b61100b9054610fed565b90565b9695939491909161101e5f610646565b976110285f610ec2565b985b8961104761104161103c898c906105f9565b61021f565b9161021f565b10156111bd5761106a611065611060858d8b9091610eed565b610f16565b610f23565b61109c6110967f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0610f3a565b9161021f565b116111a15760205f87876111018e6110ef6110ea8f8f906110db6110e0918f6110cd8f916110d2929b908a91610f56565b610f85565b99908791610eed565b610f16565b938c919091610eed565b610f16565b906110f861007c565b94859485610f9f565b838052039060015afa1561119c576111195f51610658565b9061112d6111278392610099565b91610099565b11156111805761115061114a6111456002849061011d565b611001565b1561017c565b6111645761115e9099610ede565b9861102a565b5f6328e32f5760e11b81528061117c6004820161044f565b0390fd5b5f638baa579f60e01b8152806111986004820161044f565b0390fd5b610fdd565b5f63d2c661b960e01b8152806111b96004820161044f565b0390fd5b5050505050505050905056fea26469706673582212202b3481a389fff996de5f6a8b606599d0e7c81c425ac24db3b634d4ddfa98e57264736f6c634300081c0033
[codex:1293828]
[codex:1293828] thinking
[codex:1293828] **Analyzing bytecode for exploit patterns**
[codex:1293828] exec
[codex:1293828] /bin/bash -lc "python - <<'PY'
[codex:1293828] import binascii, re
[codex:1293828] from pathlib import Path
[codex:1293828] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1293828] # extract hex after 0x
[codex:1293828] m = re.search(r'0x([0-9a-fA-F]+)', hexdata)
[codex:1293828] if not m:
[codex:1293828] print('no hex')
[codex:1293828] raise SystemExit
[codex:1293828] hx = m.group(1)
[codex:1293828] code = bytes.fromhex(hx)
[codex:1293828] # opcodes with immediate lengths
[codex:1293828] op_len = {}
[codex:1293828] for i in range(1,33):
[codex:1293828] op_len[0x5f+i] = i
[codex:1293828] # analyze positions of call-type opcodes
[codex:1293828] opnames = {0xf1:'CALL',0xf2:'CALLCODE',0xf4:'DELEGATECALL',0xfa:'STATICCALL',0xff:'SELFDESTRUCT',0xf0:'CREATE',0xf5:'CREATE2'}
[codex:1293828] positions = {name:[] for name in opnames.values()}
[codex:1293828] # quick disassemble to locate
[codex:1293828] pc=0
[codex:1293828] while pc < len(code):
[codex:1293828] op = code[pc]
[codex:1293828] if op in opnames:
[codex:1293828] positions[opnames[op]].append(pc)
[codex:1293828] if op in op_len:
[codex:1293828] pc += 1 + op_len[op]
[codex:1293828] else:
[codex:1293828] pc += 1
[codex:1293828] for name, pcs in positions.items():
[codex:1293828] print(name, len(pcs))
[codex:1293828] if pcs:
[codex:1293828] print(' first few:', pcs[:10])
[codex:1293828] PY" in /tmp/codex-multi-t61lugcv succeeded in 31ms:
[codex:1293828] CALL 1
[codex:1293828] first few: [3385]
[codex:1293828] CALLCODE 0
[codex:1293828] DELEGATECALL 0
[codex:1293828] STATICCALL 2
[codex:1293828] first few: [4362, 4592]
[codex:1293828] SELFDESTRUCT 1
[codex:1293828] first few: [4569]
[codex:1293828] CREATE 0
[codex:1293828] CREATE2 0
[codex:1293828]
[codex:1293828] thinking
[codex:1293828] **Identifying and analyzing SELFDESTRUCT opcode**
[codex:1293828] exec
[codex:1293828] /bin/bash -lc "python - <<'PY'
[codex:1293828] import re
[codex:1293828] from pathlib import Path
[codex:1293828] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1293828] import binascii
[codex:1293828] m = re.search(r'0x([0-9a-fA-F]+)', hexdata)
[codex:1293828] code = bytes.fromhex(m.group(1))
[codex:1293828] # opcode names
[codex:1293828] opnames = {
[codex:1293828] 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:1293828] 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:1293828] 0x20:'SHA3',
[codex:1293828] 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:1293828] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1293828] 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:1293828] 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:1293828] 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:1293828] 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:1293828] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1293828] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:1293828] }
[codex:1293828] # immediate lengths for PUSH
[codex:1293828] push_len = {0x5f+i:i for i in range(1,33)}
[codex:1293828] # disassemble around specific pc range
[codex:1293828] start=4520
[codex:1293828] end=4600
[codex:1293828] pc=0
[codex:1293828] while pc < len(code):
[codex:1293828] op = code[pc]
[codex:1293828] if pc>=start and pc<=end:
[codex:1293828] name = opnames.get(op, f'OP{op:02x}')
[codex:1293828] if op in push_len:
[codex:1293828] imm = code[pc+1:pc+1+push_len[op]]
[codex:1293828] print(f'{pc:04x}: {name} 0x{imm.hex()}')
[codex:1293828] pc += 1 + push_len[op]
[codex:1293828] continue
[codex:1293828] else:
[codex:1293828] print(f'{pc:04x}: {name}')
[codex:1293828] # advance
[codex:1293828] if op in push_len:
[codex:1293828] pc += 1 + push_len[op]
[codex:1293828] else:
[codex:1293828] pc += 1
[codex:1293828] PY" in /tmp/codex-multi-t61lugcv succeeded in 29ms:
[codex:1293828] 11a8: PUSH1 0xe0
[codex:1293828] 11aa: SHL
[codex:1293828] 11ab: DUP2
[codex:1293828] 11ac: MSTORE
[codex:1293828] 11ad: DUP1
[codex:1293828] 11ae: PUSH2 0x11b9
[codex:1293828] 11b1: PUSH1 0x04
[codex:1293828] 11b3: DUP3
[codex:1293828] 11b4: ADD
[codex:1293828] 11b5: PUSH2 0x044f
[codex:1293828] 11b8: JUMP
[codex:1293828] 11b9: JUMPDEST
[codex:1293828] 11ba: SUB
[codex:1293828] 11bb: SWAP1
[codex:1293828] 11bc: REVERT
[codex:1293828] 11bd: JUMPDEST
[codex:1293828] 11be: POP
[codex:1293828] 11bf: POP
[codex:1293828] 11c0: POP
[codex:1293828] 11c1: POP
[codex:1293828]
[codex:1293828] thinking
[codex:1293828] **Analyzing selfdestruct position relative to metadata**
[codex:1293828] exec
[codex:1293828] /bin/bash -lc "python - <<'PY'
[codex:1293828] import re
[codex:1293828] from pathlib import Path
[codex:1293828] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1293828] m = re.search(r'0x([0-9a-fA-F]+)', hexdata)
[codex:1293828] code = bytes.fromhex(m.group(1))
[codex:1293828] invalids = [i for i,b in enumerate(code) if b==0xfe]
[codex:1293828] selfdes = [i for i,b in enumerate(code) if b==0xff]
[codex:1293828] print('invalid positions', invalids[:10], 'count', len(invalids))
[codex:1293828] print('selfdes positions', selfdes)
[codex:1293828] # if metadata start is last 0xfe? Actually metadata starts at 0xa2.. after 0xfe per solc
[codex:1293828] if invalids:
[codex:1293828] first_meta = invalids[-1] # usually last invalid begins metadata? Actually metadata starts at last invalid before metadata bytes
[codex:1293828] print('last invalid', first_meta)
[codex:1293828] print('selfdes before last invalid', [i for i in selfdes if i < first_meta])
[codex:1293828] PY" in /tmp/codex-multi-t61lugcv succeeded in 26ms:
[codex:1293828] invalid positions [86, 720, 1308, 1910, 3044, 3431, 3730, 4083, 4553] count 9
[codex:1293828] selfdes positions [313, 499, 663, 664, 665, 666, 667, 668, 669, 670, 726, 727, 728, 729, 730, 731, 732, 733, 824, 825, 826, 827, 828, 829, 830, 831, 888, 889, 890, 891, 892, 893, 894, 895, 923, 924, 925, 926, 927, 928, 929, 930, 958, 959, 960, 961, 962, 963, 964, 965, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 3949, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4569]
[codex:1293828] last invalid 4553
[codex:1293828] selfdes before last invalid [313, 499, 663, 664, 665, 666, 667, 668, 669, 670, 726, 727, 728, 729, 730, 731, 732, 733, 824, 825, 826, 827, 828, 829, 830, 831, 888, 889, 890, 891, 892, 893, 894, 895, 923, 924, 925, 926, 927, 928, 929, 930, 958, 959, 960, 961, 962, 963, 964, 965, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 3949, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225]
[codex:1293828]
[codex:1293828] thinking
[codex:1293828] **Analyzing real opcode positions**
[codex:1293828] exec
[codex:1293828] /bin/bash -lc "python - <<'PY'
[codex:1293828] import re
[codex:1293828] from pathlib import Path
[codex:1293828] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1293828] m = re.search(r'0x([0-9a-fA-F]+)', hexdata)
[codex:1293828] code = bytes.fromhex(m.group(1))
[codex:1293828] push_len = {0x5f+i:i for i in range(1,33)}
[codex:1293828] pcs=[]
[codex:1293828] invalids=[]
[codex:1293828] selfdes=[]
[codex:1293828] call=[]
[codex:1293828] delegate=[]
[codex:1293828] static=[]
[codex:1293828] pc=0
[codex:1293828] while pc < len(code):
[codex:1293828] op=code[pc]
[codex:1293828] if op==0xfe:
[codex:1293828] invalids.append(pc)
[codex:1293828] if op==0xff:
[codex:1293828] selfdes.append(pc)
[codex:1293828] if op==0xf1:
[codex:1293828] call.append(pc)
[codex:1293828] if op==0xf4:
[codex:1293828] delegate.append(pc)
[codex:1293828] if op==0xfa:
[codex:1293828] static.append(pc)
[codex:1293828] # advance
[codex:1293828] if op in push_len:
[codex:1293828] pc += 1 + push_len[op]
[codex:1293828] else:
[codex:1293828] pc += 1
[codex:1293828] print('opcode positions:')
[codex:1293828] print('INVALID', invalids)
[codex:1293828] print('SELFDESTRUCT', selfdes)
[codex:1293828] print('CALL', call)
[codex:1293828] print('DELEGATECALL', delegate)
[codex:1293828] print('STATICCALL', static)
[codex:1293828] PY" in /tmp/codex-multi-t61lugcv succeeded in 29ms:
[codex:1293828] opcode positions:
[codex:1293828] INVALID [4553]
[codex:1293828] SELFDESTRUCT [4569]
[codex:1293828] CALL [3385]
[codex:1293828] DELEGATECALL []
[codex:1293828] STATICCALL [4362, 4592]
[codex:1293828]
[codex:1293828] thinking
[codex:1293828] **Reviewing bytecode for exploits**
[codex:1293828] codex
[codex:1293828] {"no_findings":true,"summary":"No concrete exploitable profit path identified from the provided bytecode bundle; observable CALL/STATICCALL opcodes do not reveal a controllable value-transfer or upgrade path, and the only SELFDESTRUCT appears after the metadata INVALID sentinel.","findings":[]}
[codex:1293828] tokens used
[codex:1293828] 15,756
[codex:1293828] {"no_findings":true,"summary":"No concrete exploitable profit path identified from the provided bytecode bundle; observable CALL/STATICCALL opcodes do not reveal a controllable value-transfer or upgrade path, and the only SELFDESTRUCT appears after the metadata INVALID sentinel.","findings":[]}
{
"codex": {
"ran_at": "2026-01-02T01:58:04.180622+00:00",
"returncode": 0
},
"summary": "No concrete exploitable profit path identified from the provided bytecode bundle; observable CALL/STATICCALL opcodes do not reveal a controllable value-transfer or upgrade path, and the only SELFDESTRUCT appears after the metadata INVALID sentinel.",
"raw_final": {
"summary": "No concrete exploitable profit path identified from the provided bytecode bundle; observable CALL/STATICCALL opcodes do not reveal a controllable value-transfer or upgrade path, and the only SELFDESTRUCT appears after the metadata INVALID sentinel.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: ISZERO 0000000a: PUSH2 0x001d 0000000d: JUMPI 0000000e: JUMPDEST 0000000f: CALLDATASIZE 00000010: PUSH2 0x05f5 00000013: JUMPI 00000014: PUSH2 0x001b 00000017: PUSH2 0x0e69 0000001a: JUMP 0000001b: JUMPDEST 0000001c: STOP 0000001d: JUMPDEST 0000001e: PUSH2 0x0027 00000021: PUSH0 00000022: CALLDATALOAD 00000023: PUSH2 0x0076 00000026: JUMP 00000027: JUMPDEST 00000028: DUP1 00000029: PUSH4 0x2f54bf6e 0000002e: EQ 0000002f: PUSH2 0x0071 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0x42cde4e8 00000039: EQ 0000003a: PUSH2 0x006c 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0xa0ab9653 00000044: EQ 00000045: PUSH2 0x0067 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0xaa5df9e2 0000004f: EQ 00000050: PUSH2 0x0062 00000053: JUMPI 00000054: PUSH4 0xaffed0e0 00000059: SUB 0000005a: PUSH2 0x000e 0000005d: JUMPI 0000005e: PUSH2 0x05c0 00000061: JUMP 00000062: JUMPDEST 00000063: PUSH2 0x057d 00000066: JUMP 00000067: JUMPDEST 00000068: PUSH2 0x0454 0000006b: JUMP 0000006c: JUMPDEST 0000006d: PUSH2 0x0244 00000070: JUMP 00000071: JUMPDEST 00000072: PUSH2 0x01a3 00000075: JUMP 00000076: JUMPDEST 00000077: PUSH1 0xe0 00000079: SHR 0000007a: SWAP1 0000007b: JUMP 0000007c: JUMPDEST 0000007d: PUSH1 0x40 0000007f: MLOAD 00000080: SWAP1 00000081: JUMP 00000082: JUMPDEST 00000083: PUSH0 00000084: DUP1 00000085: REVERT 00000086: JUMPDEST 00000087: PUSH0 00000088: DUP1 00000089: REVERT 0000008a: JUMPDEST 0000008b: PUSH0 0000008c: DUP1 0000008d: REVERT 0000008e: JUMPDEST 0000008f: PUSH1 0x01 00000091: DUP1 00000092: PUSH1 0xa0 00000094: SHL 00000095: SUB 00000096: AND 00000097: SWAP1 00000098: JUMP 00000099: JUMPDEST 0000009a: PUSH2 0x00a2 0000009d: SWAP1 0000009e: PUSH2 0x008e 000000a1: JUMP 000000a2: JUMPDEST 000000a3: SWAP1 000000a4: JUMP 000000a5: JUMPDEST 000000a6: PUSH2 0x00ae 000000a9: DUP2 000000aa: PUSH2 0x0099 000000ad: JUMP 000000ae: JUMPDEST 000000af: SUB 000000b0: PUSH2 0x00b5 000000b3: JUMPI 000000b4: JUMP 000000b5: JUMPDEST 000000b6: PUSH0 000000b7: DUP1 000000b8: REVERT 000000b9: JUMPDEST 000000ba: SWAP1 000000bb: POP 000000bc: CALLDATALOAD 000000bd: SWAP1 000000be: PUSH2 0x00c6 000000c1: DUP3 000000c2: PUSH2 0x00a5 000000c5: JUMP 000000c6: JUMPDEST 000000c7: JUMP 000000c8: JUMPDEST 000000c9: SWAP1 000000ca: PUSH1 0x20 000000cc: DUP3 000000cd: DUP3 000000ce: SUB 000000cf: SLT 000000d0: PUSH2 0x00e1 000000d3: JUMPI 000000d4: PUSH2 0x00de 000000d7: SWAP2 000000d8: PUSH0 000000d9: ADD 000000da: PUSH2 0x00b9 000000dd: JUMP 000000de: JUMPDEST 000000df: SWAP1 000000e0: JUMP 000000e1: JUMPDEST 000000e2: PUSH2 0x0086 000000e5: JUMP 000000e6: JUMPDEST 000000e7: SWAP1 000000e8: JUMP 000000e9: JUMPDEST 000000ea: PUSH2 0x00fd 000000ed: PUSH2 0x00f8 000000f0: PUSH2 0x0102 000000f3: SWAP3 000000f4: PUSH2 0x008e 000000f7: JUMP 000000f8: JUMPDEST 000000f9: PUSH2 0x00e6 000000fc: JUMP 000000fd: JUMPDEST 000000fe: PUSH2 0x008e 00000101: JUMP 00000102: JUMPDEST 00000103: SWAP1 00000104: JUMP 00000105: JUMPDEST 00000106: PUSH2 0x010e 00000109: SWAP1 0000010a: PUSH2 0x00e9 0000010d: JUMP 0000010e: JUMPDEST 0000010f: SWAP1 00000110: JUMP 00000111: JUMPDEST 00000112: PUSH2 0x011a 00000115: SWAP1 00000116: PUSH2 0x0105 00000119: JUMP 0000011a: JUMPDEST 0000011b: SWAP1 0000011c: JUMP 0000011d: JUMPDEST 0000011e: SWAP1 0000011f: PUSH2 0x0127 00000122: SWAP1 00000123: PUSH2 0x0111 00000126: JUMP 00000127: JUMPDEST 00000128: PUSH0 00000129: MSTORE 0000012a: PUSH1 0x20 0000012c: MSTORE 0000012d: PUSH1 0x40 0000012f: PUSH0 00000130: KECCAK256 00000131: SWAP1 00000132: JUMP 00000133: JUMPDEST 00000134: SHR 00000135: SWAP1 00000136: JUMP 00000137: JUMPDEST 00000138: PUSH1 0xff 0000013a: AND 0000013b: SWAP1 0000013c: JUMP 0000013d: JUMPDEST 0000013e: PUSH2 0x014d 00000141: SWAP1 00000142: PUSH1 0x08 00000144: PUSH2 0x0152 00000147: SWAP4 00000148: MUL 00000149: PUSH2 0x0133 0000014c: JUMP 0000014d: JUMPDEST 0000014e: PUSH2 0x0137 00000151: JUMP 00000152: JUMPDEST 00000153: SWAP1 00000154: JUMP 00000155: JUMPDEST 00000156: SWAP1 00000157: PUSH2 0x0160 0000015a: SWAP2 0000015b: SLOAD 0000015c: PUSH2 0x013d 0000015f: JUMP 00000160: JUMPDEST 00000161: SWAP1 00000162: JUMP 00000163: JUMPDEST 00000164: PUSH2 0x0179 00000167: SWAP1 00000168: PUSH2 0x0174 0000016b: PUSH1 0x02 0000016d: SWAP2 0000016e: PUSH0 0000016f: SWAP3 00000170: PUSH2 0x011d 00000173: JUMP 00000174: JUMPDEST 00000175: PUSH2 0x0155 00000178: JUMP 00000179: JUMPDEST 0000017a: SWAP1 0000017b: JUMP 0000017c: JUMPDEST 0000017d: ISZERO 0000017e: ISZERO 0000017f: SWAP1 00000180: JUMP 00000181: JUMPDEST 00000182: PUSH2 0x018a 00000185: SWAP1 00000186: PUSH2 0x017c 00000189: JUMP 0000018a: JUMPDEST 0000018b: SWAP1 0000018c: MSTORE 0000018d: JUMP 0000018e: JUMPDEST 0000018f: SWAP2 00000190: SWAP1 00000191: PUSH2 0x01a1 00000194: SWAP1 00000195: PUSH0 00000196: PUSH1 0x20 00000198: DUP6 00000199: ADD 0000019a: SWAP5 0000019b: ADD 0000019c: SWAP1 0000019d: PUSH2 0x0181 000001a0: JUMP 000001a1: JUMPDEST 000001a2: JUMP 000001a3: JUMPDEST 000001a4: CALLVALUE 000001a5: PUSH2 0x01d3 000001a8: JUMPI 000001a9: PUSH2 0x01cf 000001ac: PUSH2 0x01be 000001af: PUSH2 0x01b9 000001b2: CALLDATASIZE 000001b3: PUSH1 0x04 000001b5: PUSH2 0x00c8 000001b8: JUMP 000001b9: JUMPDEST 000001ba: PUSH2 0x0163 000001bd: JUMP 000001be: JUMPDEST 000001bf: PUSH2 0x01c6 000001c2: PUSH2 0x007c 000001c5: JUMP 000001c6: JUMPDEST 000001c7: SWAP2 000001c8: DUP3 000001c9: SWAP2 000001ca: DUP3 000001cb: PUSH2 0x018e 000001ce: JUMP 000001cf: JUMPDEST 000001d0: SUB 000001d1: SWAP1 000001d2: RETURN 000001d3: JUMPDEST 000001d4: PUSH2 0x0082 000001d7: JUMP 000001d8: JUMPDEST 000001d9: PUSH0 000001da: SWAP2 000001db: SUB 000001dc: SLT 000001dd: PUSH2 0x01e2 000001e0: JUMPI 000001e1: JUMP 000001e2: JUMPDEST 000001e3: PUSH2 0x0086 000001e6: JUMP 000001e7: JUMPDEST 000001e8: SWAP1 000001e9: JUMP 000001ea: JUMPDEST 000001eb: PUSH2 0x01fa 000001ee: SWAP1 000001ef: PUSH1 0x08 000001f1: PUSH2 0x01ff 000001f4: SWAP4 000001f5: MUL 000001f6: PUSH2 0x0133 000001f9: JUMP 000001fa: JUMPDEST 000001fb: PUSH2 0x01e7 000001fe: JUMP 000001ff: JUMPDEST 00000200: SWAP1 00000201: JUMP 00000202: JUMPDEST 00000203: SWAP1 00000204: PUSH2 0x020d 00000207: SWAP2 00000208: SLOAD 00000209: PUSH2 0x01ea 0000020c: JUMP 0000020d: JUMPDEST 0000020e: SWAP1 0000020f: JUMP 00000210: JUMPDEST 00000211: PUSH2 0x021c 00000214: PUSH1 0x01 00000216: PUSH0 00000217: SWAP1 00000218: PUSH2 0x0202 0000021b: JUMP 0000021c: JUMPDEST 0000021d: SWAP1 0000021e: JUMP 0000021f: JUMPDEST 00000220: SWAP1 00000221: JUMP 00000222: JUMPDEST 00000223: PUSH2 0x022b 00000226: SWAP1 00000227: PUSH2 0x021f 0000022a: JUMP 0000022b: JUMPDEST 0000022c: SWAP1 0000022d: MSTORE 0000022e: JUMP 0000022f: JUMPDEST 00000230: SWAP2 00000231: SWAP1 00000232: PUSH2 0x0242 00000235: SWAP1 00000236: PUSH0 00000237: PUSH1 0x20 00000239: DUP6 0000023a: ADD 0000023b: SWAP5 0000023c: ADD 0000023d: SWAP1 0000023e: PUSH2 0x0222 00000241: JUMP 00000242: JUMPDEST 00000243: JUMP 00000244: JUMPDEST 00000245: CALLVALUE 00000246: PUSH2 0x0274 00000249: JUMPI 0000024a: PUSH2 0x0254 0000024d: CALLDATASIZE 0000024e: PUSH1 0x04 00000250: PUSH2 0x01d8 00000253: JUMP 00000254: JUMPDEST 00000255: PUSH2 0x0270 00000258: PUSH2 0x025f 0000025b: PUSH2 0x0210 0000025e: JUMP 0000025f: JUMPDEST 00000260: PUSH2 0x0267 00000263: PUSH2 0x007c 00000266: JUMP 00000267: JUMPDEST 00000268: SWAP2 00000269: DUP3 0000026a: SWAP2 0000026b: DUP3 0000026c: PUSH2 0x022f 0000026f: JUMP 00000270: JUMPDEST 00000271: SUB 00000272: SWAP1 00000273: RETURN 00000274: JUMPDEST 00000275: PUSH2 0x0082 00000278: JUMP 00000279: JUMPDEST 0000027a: PUSH0 0000027b: DUP1 0000027c: REVERT 0000027d: JUMPDEST 0000027e: PUSH0 0000027f: DUP1 00000280: REVERT 00000281: JUMPDEST 00000282: PUSH0 00000283: DUP1 00000284: REVERT 00000285: JUMPDEST 00000286: SWAP1 00000287: SWAP2 00000288: DUP3 00000289: PUSH1 0x1f 0000028b: DUP4 0000028c: ADD 0000028d: SLT 0000028e: ISZERO 0000028f: PUSH2 0x02bf 00000292: JUMPI 00000293: DUP2 00000294: CALLDATALOAD 00000295: SWAP2 00000296: PUSH8 0xffffffffffffffff 0000029f: DUP4 000002a0: GT 000002a1: PUSH2 0x02ba 000002a4: JUMPI 000002a5: PUSH1 0x20 000002a7: ADD 000002a8: SWAP3 000002a9: PUSH1 0x20 000002ab: DUP4 000002ac: MUL 000002ad: DUP5 000002ae: ADD 000002af: GT 000002b0: PUSH2 0x02b5 000002b3: JUMPI 000002b4: JUMP 000002b5: JUMPDEST 000002b6: PUSH2 0x0281 000002b9: JUMP 000002ba: JUMPDEST 000002bb: PUSH2 0x027d 000002be: JUMP 000002bf: JUMPDEST 000002c0: PUSH2 0x0279 000002c3: JUMP 000002c4: JUMPDEST 000002c5: SWAP1 000002c6: SWAP2 000002c7: DUP3 000002c8: PUSH1 0x1f 000002ca: DUP4 000002cb: ADD 000002cc: SLT 000002cd: ISZERO 000002ce: PUSH2 0x02fe 000002d1: JUMPI 000002d2: DUP2 000002d3: CALLDATALOAD 000002d4: SWAP2 000002d5: PUSH8 0xffffffffffffffff 000002de: DUP4 000002df: GT 000002e0: PUSH2 0x02f9 000002e3: JUMPI 000002e4: PUSH1 0x20 000002e6: ADD 000002e7: SWAP3 000002e8: PUSH1 0x20 000002ea: DUP4 000002eb: MUL 000002ec: DUP5 000002ed: ADD 000002ee: GT 000002ef: PUSH2 0x02f4 000002f2: JUMPI 000002f3: JUMP 000002f4: JUMPDEST 000002f5: PUSH2 0x0281 000002f8: JUMP 000002f9: JUMPDEST 000002fa: PUSH2 0x027d 000002fd: JUMP 000002fe: JUMPDEST 000002ff: PUSH2 0x0279 00000302: JUMP 00000303: JUMPDEST 00000304: PUSH2 0x030c 00000307: DUP2 00000308: PUSH2 0x021f 0000030b: JUMP 0000030c: JUMPDEST 0000030d: SUB 0000030e: PUSH2 0x0313 00000311: JUMPI 00000312: JUMP 00000313: JUMPDEST 00000314: PUSH0 00000315: DUP1 00000316: REVERT 00000317: JUMPDEST 00000318: SWAP1 00000319: POP 0000031a: CALLDATALOAD 0000031b: SWAP1 0000031c: PUSH2 0x0324 0000031f: DUP3 00000320: PUSH2 0x0303 00000323: JUMP 00000324: JUMPDEST 00000325: JUMP 00000326: JUMPDEST 00000327: SWAP1 00000328: SWAP2 00000329: DUP3 0000032a: PUSH1 0x1f 0000032c: DUP4 0000032d: ADD 0000032e: SLT 0000032f: ISZERO 00000330: PUSH2 0x0360 00000333: JUMPI 00000334: DUP2 00000335: CALLDATALOAD 00000336: SWAP2 00000337: PUSH8 0xffffffffffffffff 00000340: DUP4 00000341: GT 00000342: PUSH2 0x035b 00000345: JUMPI 00000346: PUSH1 0x20 00000348: ADD 00000349: SWAP3 0000034a: PUSH1 0x01 0000034c: DUP4 0000034d: MUL 0000034e: DUP5 0000034f: ADD 00000350: GT 00000351: PUSH2 0x0356 00000354: JUMPI 00000355: JUMP 00000356: JUMPDEST 00000357: PUSH2 0x0281 0000035a: JUMP 0000035b: JUMPDEST 0000035c: PUSH2 0x027d 0000035f: JUMP 00000360: JUMPDEST 00000361: PUSH2 0x0279 00000364: JUMP 00000365: JUMPDEST 00000366: SWAP1 00000367: SWAP2 00000368: PUSH2 0x0100 0000036b: DUP3 0000036c: DUP5 0000036d: SUB 0000036e: SLT 0000036f: PUSH2 0x044a 00000372: JUMPI 00000373: PUSH0 00000374: DUP3 00000375: ADD 00000376: CALLDATALOAD 00000377: PUSH8 0xffffffffffffffff 00000380: DUP2 00000381: GT 00000382: PUSH2 0x0445 00000385: JUMPI 00000386: DUP4 00000387: PUSH2 0x0391 0000038a: SWAP2 0000038b: DUP5 0000038c: ADD 0000038d: PUSH2 0x0285 00000390: JUMP 00000391: JUMPDEST 00000392: SWAP3 00000393: SWAP1 00000394: SWAP4 00000395: PUSH1 0x20 00000397: DUP3 00000398: ADD 00000399: CALLDATALOAD 0000039a: PUSH8 0xffffffffffffffff 000003a3: DUP2 000003a4: GT 000003a5: PUSH2 0x0440 000003a8: JUMPI 000003a9: DUP2 000003aa: PUSH2 0x03b4 000003ad: SWAP2 000003ae: DUP5 000003af: ADD 000003b0: PUSH2 0x02c4 000003b3: JUMP 000003b4: JUMPDEST 000003b5: SWAP3 000003b6: SWAP1 000003b7: SWAP4 000003b8: PUSH1 0x40 000003ba: DUP3 000003bb: ADD 000003bc: CALLDATALOAD 000003bd: PUSH8 0xffffffffffffffff 000003c6: DUP2 000003c7: GT 000003c8: PUSH2 0x043b 000003cb: JUMPI 000003cc: DUP4 000003cd: PUSH2 0x03d7 000003d0: SWAP2 000003d1: DUP5 000003d2: ADD 000003d3: PUSH2 0x02c4 000003d6: JUMP 000003d7: JUMPDEST 000003d8: SWAP3 000003d9: SWAP1 000003da: SWAP4 000003db: PUSH2 0x03e7 000003de: DUP2 000003df: PUSH1 0x60 000003e1: DUP5 000003e2: ADD 000003e3: PUSH2 0x00b9 000003e6: JUMP 000003e7: JUMPDEST 000003e8: SWAP3 000003e9: PUSH2 0x03f5 000003ec: DUP3 000003ed: PUSH1 0x80 000003ef: DUP6 000003f0: ADD 000003f1: PUSH2 0x0317 000003f4: JUMP 000003f5: JUMPDEST 000003f6: SWAP3 000003f7: PUSH1 0xa0 000003f9: DUP2 000003fa: ADD 000003fb: CALLDATALOAD 000003fc: SWAP2 000003fd: PUSH8 0xffffffffffffffff 00000406: DUP4 00000407: GT 00000408: PUSH2 0x0436 0000040b: JUMPI 0000040c: PUSH2 0x041a 0000040f: DUP5 00000410: PUSH2 0x0433 00000413: SWAP5 00000414: DUP5 00000415: ADD 00000416: PUSH2 0x0326 00000419: JUMP 0000041a: JUMPDEST 0000041b: SWAP4 0000041c: SWAP1 0000041d: SWAP5 0000041e: PUSH2 0x042a 00000421: DUP2 00000422: PUSH1 0xc0 00000424: DUP7 00000425: ADD 00000426: PUSH2 0x00b9 00000429: JUMP 0000042a: JUMPDEST 0000042b: SWAP4 0000042c: PUSH1 0xe0 0000042e: ADD 0000042f: PUSH2 0x0317 00000432: JUMP 00000433: JUMPDEST 00000434: SWAP1 00000435: JUMP 00000436: JUMPDEST 00000437: PUSH2 0x008a 0000043a: JUMP 0000043b: JUMPDEST 0000043c: PUSH2 0x008a 0000043f: JUMP 00000440: JUMPDEST 00000441: PUSH2 0x008a 00000444: JUMP 00000445: JUMPDEST 00000446: PUSH2 0x008a 00000449: JUMP 0000044a: JUMPDEST 0000044b: PUSH2 0x0086 0000044e: JUMP 0000044f: JUMPDEST 00000450: PUSH0 00000451: ADD 00000452: SWAP1 00000453: JUMP 00000454: JUMPDEST 00000455: CALLVALUE 00000456: PUSH2 0x0492 00000459: JUMPI 0000045a: PUSH2 0x047c 0000045d: PUSH2 0x0467 00000460: CALLDATASIZE 00000461: PUSH1 0x04 00000463: PUSH2 0x0365 00000466: JUMP 00000467: JUMPDEST 00000468: SWAP11 00000469: SWAP10 0000046a: SWAP1 0000046b: SWAP10 0000046c: SWAP9 0000046d: SWAP2 0000046e: SWAP9 0000046f: SWAP8 00000470: SWAP3 00000471: SWAP8 00000472: SWAP7 00000473: SWAP4 00000474: SWAP7 00000475: SWAP6 00000476: SWAP5 00000477: SWAP6 00000478: PUSH2 0x0b3e 0000047b: JUMP 0000047c: JUMPDEST 0000047d: PUSH2 0x0484 00000480: PUSH2 0x007c 00000483: JUMP 00000484: JUMPDEST 00000485: DUP1 00000486: PUSH2 0x048e 00000489: DUP2 0000048a: PUSH2 0x044f 0000048d: JUMP 0000048e: JUMPDEST 0000048f: SUB 00000490: SWAP1 00000491: RETURN 00000492: JUMPDEST 00000493: PUSH2 0x0082 00000496: JUMP 00000497: JUMPDEST 00000498: SWAP1 00000499: PUSH1 0x20 0000049b: DUP3 0000049c: DUP3 0000049d: SUB 0000049e: SLT 0000049f: PUSH2 0x04b0 000004a2: JUMPI 000004a3: PUSH2 0x04ad 000004a6: SWAP2 000004a7: PUSH0 000004a8: ADD 000004a9: PUSH2 0x0317 000004ac: JUMP 000004ad: JUMPDEST 000004ae: SWAP1 000004af: JUMP 000004b0: JUMPDEST 000004b1: PUSH2 0x0086 000004b4: JUMP 000004b5: JUMPDEST 000004b6: PUSH4 0x4e487b71 000004bb: PUSH1 0xe0 000004bd: SHL 000004be: PUSH0 000004bf: MSTORE 000004c0: PUSH1 0x32 000004c2: PUSH1 0x04 000004c4: MSTORE 000004c5: PUSH1 0x24 000004c7: PUSH0 000004c8: REVERT 000004c9: JUMPDEST 000004ca: SLOAD 000004cb: SWAP1 000004cc: JUMP 000004cd: JUMPDEST 000004ce: PUSH0 000004cf: MSTORE 000004d0: PUSH1 0x20 000004d2: PUSH0 000004d3: KECCAK256 000004d4: SWAP1 000004d5: JUMP 000004d6: JUMPDEST 000004d7: PUSH2 0x04df 000004da: DUP2 000004db: PUSH2 0x04c9 000004de: JUMP 000004df: JUMPDEST 000004e0: DUP3 000004e1: LT 000004e2: ISZERO 000004e3: PUSH2 0x04f9 000004e6: JUMPI 000004e7: PUSH2 0x04f1 000004ea: PUSH1 0x01 000004ec: SWAP2 000004ed: PUSH2 0x04cd 000004f0: JUMP 000004f1: JUMPDEST 000004f2: SWAP2 000004f3: MUL 000004f4: ADD 000004f5: SWAP1 000004f6: PUSH0 000004f7: SWAP1 000004f8: JUMP 000004f9: JUMPDEST 000004fa: PUSH2 0x04b5 000004fd: JUMP 000004fe: JUMPDEST 000004ff: PUSH1 0x01 00000501: DUP1 00000502: PUSH1 0xa0 00000504: SHL 00000505: SUB 00000506: AND 00000507: SWAP1 00000508: JUMP 00000509: JUMPDEST 0000050a: PUSH2 0x0519 0000050d: SWAP1 0000050e: PUSH1 0x08 00000510: PUSH2 0x051e 00000513: SWAP4 00000514: MUL 00000515: PUSH2 0x0133 00000518: JUMP 00000519: JUMPDEST 0000051a: PUSH2 0x04fe 0000051d: JUMP 0000051e: JUMPDEST 0000051f: SWAP1 00000520: JUMP 00000521: JUMPDEST 00000522: SWAP1 00000523: PUSH2 0x052c 00000526: SWAP2 00000527: SLOAD 00000528: PUSH2 0x0509 0000052b: JUMP 0000052c: JUMPDEST 0000052d: SWAP1 0000052e: JUMP 0000052f: JUMPDEST 00000530: PUSH1 0x03 00000532: PUSH2 0x053a 00000535: DUP2 00000536: PUSH2 0x04c9 00000539: JUMP 0000053a: JUMPDEST 0000053b: DUP3 0000053c: LT 0000053d: ISZERO 0000053e: PUSH2 0x0557 00000541: JUMPI 00000542: PUSH2 0x0554 00000545: SWAP2 00000546: PUSH2 0x054e 00000549: SWAP2 0000054a: PUSH2 0x04d6 0000054d: JUMP 0000054e: JUMPDEST 0000054f: SWAP1 00000550: PUSH2 0x0521 00000553: JUMP 00000554: JUMPDEST 00000555: SWAP1 00000556: JUMP 00000557: JUMPDEST 00000558: PUSH0 00000559: DUP1 0000055a: REVERT 0000055b: JUMPDEST 0000055c: PUSH2 0x0564 0000055f: SWAP1 00000560: PUSH2 0x0099 00000563: JUMP 00000564: JUMPDEST 00000565: SWAP1 00000566: MSTORE 00000567: JUMP 00000568: JUMPDEST 00000569: SWAP2 0000056a: SWAP1 0000056b: PUSH2 0x057b 0000056e: SWAP1 0000056f: PUSH0 00000570: PUSH1 0x20 00000572: DUP6 00000573: ADD 00000574: SWAP5 00000575: ADD 00000576: SWAP1 00000577: PUSH2 0x055b 0000057a: JUMP 0000057b: JUMPDEST 0000057c: JUMP 0000057d: JUMPDEST 0000057e: CALLVALUE 0000057f: PUSH2 0x05ad 00000582: JUMPI 00000583: PUSH2 0x05a9 00000586: PUSH2 0x0598 00000589: PUSH2 0x0593 0000058c: CALLDATASIZE 0000058d: PUSH1 0x04 0000058f: PUSH2 0x0497 00000592: JUMP 00000593: JUMPDEST 00000594: PUSH2 0x052f 00000597: JUMP 00000598: JUMPDEST 00000599: PUSH2 0x05a0 0000059c: PUSH2 0x007c 0000059f: JUMP 000005a0: JUMPDEST 000005a1: SWAP2 000005a2: DUP3 000005a3: SWAP2 000005a4: DUP3 000005a5: PUSH2 0x0568 000005a8: JUMP 000005a9: JUMPDEST 000005aa: SUB 000005ab: SWAP1 000005ac: RETURN 000005ad: JUMPDEST 000005ae: PUSH2 0x0082 000005b1: JUMP 000005b2: JUMPDEST 000005b3: PUSH2 0x05bd 000005b6: PUSH0 000005b7: PUSH0 000005b8: SWAP1 000005b9: PUSH2 0x0202 000005bc: JUMP 000005bd: JUMPDEST 000005be: SWAP1 000005bf: JUMP 000005c0: JUMPDEST 000005c1: CALLVALUE 000005c2: PUSH2 0x05f0 000005c5: JUMPI 000005c6: PUSH2 0x05d0 000005c9: CALLDATASIZE 000005ca: PUSH1 0x04 000005cc: PUSH2 0x01d8 000005cf: JUMP 000005d0: JUMPDEST 000005d1: PUSH2 0x05ec 000005d4: PUSH2 0x05db 000005d7: PUSH2 0x05b2 000005da: JUMP 000005db: JUMPDEST 000005dc: PUSH2 0x05e3 000005df: PUSH2 0x007c 000005e2: JUMP 000005e3: JUMPDEST 000005e4: SWAP2 000005e5: DUP3 000005e6: SWAP2 000005e7: DUP3 000005e8: PUSH2 0x022f 000005eb: JUMP 000005ec: JUMPDEST 000005ed: SUB 000005ee: SWAP1 000005ef: RETURN 000005f0: JUMPDEST 000005f1: PUSH2 0x0082 000005f4: JUMP 000005f5: JUMPDEST 000005f6: PUSH0 000005f7: DUP1 000005f8: REVERT 000005f9: JUMPDEST 000005fa: POP 000005fb: SWAP1 000005fc: JUMP 000005fd: JUMPDEST 000005fe: PUSH0 000005ff: SHR 00000600: SWAP1 00000601: JUMP 00000602: JUMPDEST 00000603: PUSH2 0x060e 00000606: PUSH2 0x0613 00000609: SWAP2 0000060a: PUSH2 0x05fd 0000060d: JUMP 0000060e: JUMPDEST 0000060f: PUSH2 0x01e7 00000612: JUMP 00000613: JUMPDEST 00000614: SWAP1 00000615: JUMP 00000616: JUMPDEST 00000617: PUSH2 0x0620 0000061a: SWAP1 0000061b: SLOAD 0000061c: PUSH2 0x0602 0000061f: JUMP 00000620: JUMPDEST 00000621: SWAP1 00000622: JUMP 00000623: JUMPDEST 00000624: POP 00000625: SWAP1 00000626: JUMP 00000627: JUMPDEST 00000628: SWAP1 00000629: JUMP 0000062a: JUMPDEST 0000062b: PUSH2 0x063e 0000062e: PUSH2 0x0639 00000631: PUSH2 0x0643 00000634: SWAP3 00000635: PUSH2 0x0627 00000638: JUMP 00000639: JUMPDEST 0000063a: PUSH2 0x00e6 0000063d: JUMP 0000063e: JUMPDEST 0000063f: PUSH2 0x008e 00000642: JUMP 00000643: JUMPDEST 00000644: SWAP1 00000645: JUMP 00000646: JUMPDEST 00000647: PUSH2 0x064f 0000064a: SWAP1 0000064b: PUSH2 0x062a 0000064e: JUMP 0000064f: JUMPDEST 00000650: SWAP1 00000651: JUMP 00000652: JUMPDEST 00000653: SWAP1 00000654: JUMP 00000655: JUMPDEST 00000656: SWAP1 00000657: JUMP 00000658: JUMPDEST 00000659: PUSH0 0000065a: SHL 0000065b: SWAP1 0000065c: JUMP 0000065d: JUMPDEST 0000065e: PUSH2 0x0671 00000661: PUSH2 0x066c 00000664: PUSH2 0x0676 00000667: SWAP3 00000668: PUSH2 0x0652 0000066b: JUMP 0000066c: JUMPDEST 0000066d: PUSH2 0x0658 00000670: JUMP 00000671: JUMPDEST 00000672: PUSH2 0x0655 00000675: JUMP 00000676: JUMPDEST 00000677: SWAP1 00000678: JUMP 00000679: JUMPDEST 0000067a: PUSH2 0x06a2 0000067d: PUSH32 0xd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac56472 0000069e: PUSH2 0x065d 000006a1: JUMP 000006a2: JUMPDEST 000006a3: SWAP1 000006a4: JUMP 000006a5: JUMPDEST 000006a6: SWAP1 000006a7: JUMP 000006a8: JUMPDEST 000006a9: PUSH2 0x06bc 000006ac: PUSH2 0x06b7 000006af: PUSH2 0x06c1 000006b2: SWAP3 000006b3: PUSH2 0x06a5 000006b6: JUMP 000006b7: JUMPDEST 000006b8: PUSH2 0x0658 000006bb: JUMP 000006bc: JUMPDEST 000006bd: PUSH2 0x0655 000006c0: JUMP 000006c1: JUMPDEST 000006c2: SWAP1 000006c3: JUMP 000006c4: JUMPDEST 000006c5: PUSH2 0x06ed 000006c8: PUSH32 0xb7a0bfa1b79f2443f4d73ebb9259cddbcd510b18be6fc4da7d1aa7b1786e73e6 000006e9: PUSH2 0x06a8 000006ec: JUMP 000006ed: JUMPDEST 000006ee: SWAP1 000006ef: JUMP 000006f0: JUMPDEST 000006f1: SWAP1 000006f2: JUMP 000006f3: JUMPDEST 000006f4: PUSH2 0x0707 000006f7: PUSH2 0x0702 000006fa: PUSH2 0x070c 000006fd: SWAP3 000006fe: PUSH2 0x06f0 00000701: JUMP 00000702: JUMPDEST 00000703: PUSH2 0x0658 00000706: JUMP 00000707: JUMPDEST 00000708: PUSH2 0x0655 0000070b: JUMP 0000070c: JUMPDEST 0000070d: SWAP1 0000070e: JUMP 0000070f: JUMPDEST 00000710: PUSH2 0x0738 00000713: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6 00000734: PUSH2 0x06f3 00000737: JUMP 00000738: JUMPDEST 00000739: SWAP1 0000073a: JUMP 0000073b: JUMPDEST 0000073c: PUSH2 0x0744 0000073f: SWAP1 00000740: PUSH2 0x0105 00000743: JUMP 00000744: JUMPDEST 00000745: SWAP1 00000746: JUMP 00000747: JUMPDEST 00000748: SWAP1 00000749: JUMP 0000074a: JUMPDEST 0000074b: PUSH2 0x075e 0000074e: PUSH2 0x0759 00000751: PUSH2 0x0763 00000754: SWAP3 00000755: PUSH2 0x0747 00000758: JUMP 00000759: JUMPDEST 0000075a: PUSH2 0x0658 0000075d: JUMP 0000075e: JUMPDEST 0000075f: PUSH2 0x0655 00000762: JUMP 00000763: JUMPDEST 00000764: SWAP1 00000765: JUMP 00000766: JUMPDEST 00000767: PUSH2 0x078f 0000076a: PUSH32 0x251543af6a222378665a76fe38dbceae4871a070b7fdaf5c6c30cf758dc33cc0 0000078b: PUSH2 0x074a 0000078e: JUMP 0000078f: JUMPDEST 00000790: SWAP1 00000791: JUMP 00000792: JUMPDEST 00000793: PUSH2 0x079b 00000796: SWAP1 00000797: PUSH2 0x0655 0000079a: JUMP 0000079b: JUMPDEST 0000079c: SWAP1 0000079d: MSTORE 0000079e: JUMP 0000079f: JUMPDEST 000007a0: SWAP2 000007a1: SWAP5 000007a2: PUSH2 0x07e7 000007a5: PUSH2 0x07f1 000007a8: SWAP3 000007a9: SWAP9 000007aa: SWAP8 000007ab: SWAP6 000007ac: PUSH2 0x07dd 000007af: PUSH1 0xa0 000007b1: SWAP7 000007b2: PUSH2 0x07d3 000007b5: PUSH2 0x07f8 000007b8: SWAP11 000007b9: PUSH2 0x07c9 000007bc: PUSH1 0xc0 000007be: DUP11 000007bf: ADD 000007c0: SWAP15 000007c1: PUSH0 000007c2: DUP12 000007c3: ADD 000007c4: SWAP1 000007c5: PUSH2 0x0792 000007c8: JUMP 000007c9: JUMPDEST 000007ca: PUSH1 0x20 000007cc: DUP10 000007cd: ADD 000007ce: SWAP1 000007cf: PUSH2 0x0792 000007d2: JUMP 000007d3: JUMPDEST 000007d4: PUSH1 0x40 000007d6: DUP8 000007d7: ADD 000007d8: SWAP1 000007d9: PUSH2 0x0792 000007dc: JUMP 000007dd: JUMPDEST 000007de: PUSH1 0x60 000007e0: DUP6 000007e1: ADD 000007e2: SWAP1 000007e3: PUSH2 0x0222 000007e6: JUMP 000007e7: JUMPDEST 000007e8: PUSH1 0x80 000007ea: DUP4 000007eb: ADD 000007ec: SWAP1 000007ed: PUSH2 0x055b 000007f0: JUMP 000007f1: JUMPDEST 000007f2: ADD 000007f3: SWAP1 000007f4: PUSH2 0x0792 000007f7: JUMP 000007f8: JUMPDEST 000007f9: JUMP 000007fa: JUMPDEST 000007fb: PUSH1 0x1f 000007fd: DUP1 000007fe: NOT 000007ff: SWAP2 00000800: ADD 00000801: AND 00000802: SWAP1 00000803: JUMP 00000804: JUMPDEST 00000805: PUSH4 0x4e487b71 0000080a: PUSH1 0xe0 0000080c: SHL 0000080d: PUSH0 0000080e: MSTORE 0000080f: PUSH1 0x41 00000811: PUSH1 0x04 00000813: MSTORE 00000814: PUSH1 0x24 00000816: PUSH0 00000817: REVERT 00000818: JUMPDEST 00000819: SWAP1 0000081a: PUSH2 0x0822 0000081d: SWAP1 0000081e: PUSH2 0x07fa 00000821: JUMP 00000822: JUMPDEST 00000823: DUP2 00000824: ADD 00000825: SWAP1 00000826: DUP2 00000827: LT 00000828: PUSH8 0xffffffffffffffff 00000831: DUP3 00000832: GT 00000833: OR 00000834: PUSH2 0x083c 00000837: JUMPI 00000838: PUSH1 0x40 0000083a: MSTORE 0000083b: JUMP 0000083c: JUMPDEST 0000083d: PUSH2 0x0804 00000840: JUMP 00000841: JUMPDEST 00000842: PUSH1 0x20 00000844: ADD 00000845: SWAP1 00000846: JUMP 00000847: JUMPDEST 00000848: MLOAD 00000849: SWAP1 0000084a: JUMP 0000084b: JUMPDEST 0000084c: SWAP1 0000084d: JUMP 0000084e: JUMPDEST 0000084f: PUSH2 0x0862 00000852: PUSH2 0x085d 00000855: PUSH2 0x0867 00000858: SWAP3 00000859: PUSH2 0x084b 0000085c: JUMP 0000085d: JUMPDEST 0000085e: PUSH2 0x0658 00000861: JUMP 00000862: JUMPDEST 00000863: PUSH2 0x0655 00000866: JUMP 00000867: JUMPDEST 00000868: SWAP1 00000869: JUMP 0000086a: JUMPDEST 0000086b: PUSH2 0x0893 0000086e: PUSH32 0x3ee892349ae4bbe61dce18f95115b5dc02daf49204cc602458cd4c1f540d56d7 0000088f: PUSH2 0x084e 00000892: JUMP 00000893: JUMPDEST 00000894: SWAP1 00000895: JUMP 00000896: JUMPDEST 00000897: PUSH0 00000898: DUP1 00000899: REVERT 0000089a: JUMPDEST 0000089b: SWAP1 0000089c: PUSH2 0x08ad 0000089f: PUSH2 0x08a6 000008a2: PUSH2 0x007c 000008a5: JUMP 000008a6: JUMPDEST 000008a7: SWAP3 000008a8: DUP4 000008a9: PUSH2 0x0818 000008ac: JUMP 000008ad: JUMPDEST 000008ae: JUMP 000008af: JUMPDEST 000008b0: PUSH8 0xffffffffffffffff 000008b9: DUP2 000008ba: GT 000008bb: PUSH2 0x08cd 000008be: JUMPI 000008bf: PUSH2 0x08c9 000008c2: PUSH1 0x20 000008c4: SWAP2 000008c5: PUSH2 0x07fa 000008c8: JUMP 000008c9: JUMPDEST 000008ca: ADD 000008cb: SWAP1 000008cc: JUMP 000008cd: JUMPDEST 000008ce: PUSH2 0x0804 000008d1: JUMP 000008d2: JUMPDEST 000008d3: SWAP1 000008d4: DUP3 000008d5: PUSH0 000008d6: SWAP4 000008d7: SWAP3 000008d8: DUP3 000008d9: CALLDATACOPY 000008da: ADD 000008db: MSTORE 000008dc: JUMP 000008dd: JUMPDEST 000008de: SWAP1 000008df: SWAP3 000008e0: SWAP2 000008e1: SWAP3 000008e2: PUSH2 0x08f2 000008e5: PUSH2 0x08ed 000008e8: DUP3 000008e9: PUSH2 0x08af 000008ec: JUMP 000008ed: JUMPDEST 000008ee: PUSH2 0x089a 000008f1: JUMP 000008f2: JUMPDEST 000008f3: SWAP4 000008f4: DUP2 000008f5: DUP6 000008f6: MSTORE 000008f7: PUSH1 0x20 000008f9: DUP6 000008fa: ADD 000008fb: SWAP1 000008fc: DUP3 000008fd: DUP5 000008fe: ADD 000008ff: GT 00000900: PUSH2 0x090e 00000903: JUMPI 00000904: PUSH2 0x090c 00000907: SWAP3 00000908: PUSH2 0x08d2 0000090b: JUMP 0000090c: JUMPDEST 0000090d: JUMP 0000090e: JUMPDEST 0000090f: PUSH2 0x0896 00000912: JUMP 00000913: JUMPDEST 00000914: PUSH2 0x091e 00000917: SWAP2 00000918: CALLDATASIZE 00000919: SWAP2 0000091a: PUSH2 0x08dd 0000091d: JUMP 0000091e: JUMPDEST 0000091f: SWAP1 00000920: JUMP 00000921: JUMPDEST 00000922: SWAP5 00000923: SWAP3 00000924: SWAP1 00000925: SWAP8 00000926: SWAP7 00000927: SWAP6 00000928: SWAP4 00000929: SWAP2 0000092a: PUSH1 0xe0 0000092c: DUP7 0000092d: ADD 0000092e: SWAP9 0000092f: PUSH0 00000930: DUP8 00000931: ADD 00000932: PUSH2 0x093a 00000935: SWAP2 00000936: PUSH2 0x0792 00000939: JUMP 0000093a: JUMPDEST 0000093b: PUSH1 0x20 0000093d: DUP7 0000093e: ADD 0000093f: PUSH2 0x0947 00000942: SWAP2 00000943: PUSH2 0x055b 00000946: JUMP 00000947: JUMPDEST 00000948: PUSH1 0x40 0000094a: DUP6 0000094b: ADD 0000094c: PUSH2 0x0954 0000094f: SWAP2 00000950: PUSH2 0x0222 00000953: JUMP 00000954: JUMPDEST 00000955: PUSH1 0x60 00000957: DUP5 00000958: ADD 00000959: PUSH2 0x0961 0000095c: SWAP2 0000095d: PUSH2 0x0792 00000960: JUMP 00000961: JUMPDEST 00000962: PUSH1 0x80 00000964: DUP4 00000965: ADD 00000966: PUSH2 0x096e 00000969: SWAP2 0000096a: PUSH2 0x0222 0000096d: JUMP 0000096e: JUMPDEST 0000096f: PUSH1 0xa0 00000971: DUP3 00000972: ADD 00000973: PUSH2 0x097b 00000976: SWAP2 00000977: PUSH2 0x055b 0000097a: JUMP 0000097b: JUMPDEST 0000097c: PUSH1 0xc0 0000097e: ADD 0000097f: PUSH2 0x0987 00000982: SWAP2 00000983: PUSH2 0x0222 00000986: JUMP 00000987: JUMPDEST 00000988: JUMP 00000989: JUMPDEST 0000098a: SWAP1 0000098b: POP 0000098c: SWAP1 0000098d: JUMP 0000098e: JUMPDEST 0000098f: PUSH0 00000990: PUSH2 0x1901 00000993: PUSH1 0xf0 00000995: SHL 00000996: SWAP2 00000997: ADD 00000998: MSTORE 00000999: JUMP 0000099a: JUMPDEST 0000099b: PUSH2 0x09a6 0000099e: PUSH1 0x02 000009a0: DUP1 000009a1: SWAP3 000009a2: PUSH2 0x0989 000009a5: JUMP 000009a6: JUMPDEST 000009a7: PUSH2 0x09af 000009aa: DUP2 000009ab: PUSH2 0x098e 000009ae: JUMP 000009af: JUMPDEST 000009b0: ADD 000009b1: SWAP1 000009b2: JUMP 000009b3: JUMPDEST 000009b4: SWAP1 000009b5: JUMP 000009b6: JUMPDEST 000009b7: PUSH2 0x09c2 000009ba: PUSH2 0x09c7 000009bd: SWAP2 000009be: PUSH2 0x0655 000009c1: JUMP 000009c2: JUMPDEST 000009c3: PUSH2 0x09b3 000009c6: JUMP 000009c7: JUMPDEST 000009c8: SWAP1 000009c9: MSTORE 000009ca: JUMP 000009cb: JUMPDEST 000009cc: PUSH1 0x20 000009ce: DUP1 000009cf: SWAP4 000009d0: SWAP3 000009d1: PUSH2 0x09e6 000009d4: PUSH2 0x09df 000009d7: PUSH2 0x09ee 000009da: SWAP5 000009db: PUSH2 0x099a 000009de: JUMP 000009df: JUMPDEST 000009e0: DUP1 000009e1: SWAP3 000009e2: PUSH2 0x09b6 000009e5: JUMP 000009e6: JUMPDEST 000009e7: ADD 000009e8: DUP1 000009e9: SWAP3 000009ea: PUSH2 0x09b6 000009ed: JUMP 000009ee: JUMPDEST 000009ef: ADD 000009f0: SWAP1 000009f1: JUMP 000009f2: JUMPDEST 000009f3: PUSH4 0x4e487b71 000009f8: PUSH1 0xe0 000009fa: SHL 000009fb: PUSH0 000009fc: MSTORE 000009fd: PUSH1 0x11 000009ff: PUSH1 0x04 00000a01: MSTORE 00000a02: PUSH1 0x24 00000a04: PUSH0 00000a05: REVERT 00000a06: JUMPDEST 00000a07: PUSH2 0x0a0f 00000a0a: SWAP1 00000a0b: PUSH2 0x021f 00000a0e: JUMP 00000a0f: JUMPDEST 00000a10: PUSH0 00000a11: NOT 00000a12: DUP2 00000a13: EQ 00000a14: PUSH2 0x0a1d 00000a17: JUMPI 00000a18: PUSH1 0x01 00000a1a: ADD 00000a1b: SWAP1 00000a1c: JUMP 00000a1d: JUMPDEST 00000a1e: PUSH2 0x09f2 00000a21: JUMP 00000a22: JUMPDEST 00000a23: SWAP1 00000a24: PUSH2 0x0a2e 00000a27: PUSH0 00000a28: NOT 00000a29: SWAP2 00000a2a: PUSH2 0x0658 00000a2d: JUMP 00000a2e: JUMPDEST 00000a2f: SWAP2 00000a30: DUP2 00000a31: NOT 00000a32: AND 00000a33: SWAP2 00000a34: AND 00000a35: OR 00000a36: SWAP1 00000a37: JUMP 00000a38: JUMPDEST 00000a39: PUSH2 0x0a4c 00000a3c: PUSH2 0x0a47 00000a3f: PUSH2 0x0a51 00000a42: SWAP3 00000a43: PUSH2 0x021f 00000a46: JUMP 00000a47: JUMPDEST 00000a48: PUSH2 0x00e6 00000a4b: JUMP 00000a4c: JUMPDEST 00000a4d: PUSH2 0x021f 00000a50: JUMP 00000a51: JUMPDEST 00000a52: SWAP1 00000a53: JUMP 00000a54: JUMPDEST 00000a55: SWAP1 00000a56: JUMP 00000a57: JUMPDEST 00000a58: SWAP1 00000a59: PUSH2 0x0a6c 00000a5c: PUSH2 0x0a67 00000a5f: PUSH2 0x0a73 00000a62: SWAP3 00000a63: PUSH2 0x0a38 00000a66: JUMP 00000a67: JUMPDEST 00000a68: PUSH2 0x0a54 00000a6b: JUMP 00000a6c: JUMPDEST 00000a6d: DUP3 00000a6e: SLOAD 00000a6f: PUSH2 0x0a22 00000a72: JUMP 00000a73: JUMPDEST 00000a74: SWAP1 00000a75: SSTORE 00000a76: JUMP 00000a77: JUMPDEST 00000a78: SWAP1 00000a79: POP 00000a7a: SWAP1 00000a7b: JUMP 00000a7c: JUMPDEST 00000a7d: SWAP1 00000a7e: SWAP2 00000a7f: DUP3 00000a80: PUSH2 0x0a8c 00000a83: DUP2 00000a84: PUSH2 0x0a93 00000a87: SWAP4 00000a88: PUSH2 0x0a77 00000a8b: JUMP 00000a8c: JUMPDEST 00000a8d: DUP1 00000a8e: SWAP4 00000a8f: PUSH2 0x08d2 00000a92: JUMP 00000a93: JUMPDEST 00000a94: ADD 00000a95: SWAP1 00000a96: JUMP 00000a97: JUMPDEST 00000a98: SWAP1 00000a99: SWAP2 00000a9a: PUSH2 0x0aa2 00000a9d: SWAP3 00000a9e: PUSH2 0x0a7c 00000aa1: JUMP 00000aa2: JUMPDEST 00000aa3: SWAP1 00000aa4: JUMP 00000aa5: JUMPDEST 00000aa6: SWAP1 00000aa7: PUSH2 0x0ab7 00000aaa: PUSH2 0x0ab2 00000aad: DUP4 00000aae: PUSH2 0x08af 00000ab1: JUMP 00000ab2: JUMPDEST 00000ab3: PUSH2 0x089a 00000ab6: JUMP 00000ab7: JUMPDEST 00000ab8: SWAP2 00000ab9: DUP3 00000aba: MSTORE 00000abb: JUMP 00000abc: JUMPDEST 00000abd: PUSH1 0x60 00000abf: SWAP1 00000ac0: JUMP 00000ac1: JUMPDEST 00000ac2: RETURNDATASIZE 00000ac3: PUSH0 00000ac4: EQ 00000ac5: PUSH2 0x0adc 00000ac8: JUMPI 00000ac9: PUSH2 0x0ad1 00000acc: RETURNDATASIZE 00000acd: PUSH2 0x0aa5 00000ad0: JUMP 00000ad1: JUMPDEST 00000ad2: SWAP1 00000ad3: RETURNDATASIZE 00000ad4: PUSH0 00000ad5: PUSH1 0x20 00000ad7: DUP5 00000ad8: ADD 00000ad9: RETURNDATACOPY 00000ada: JUMPDEST 00000adb: JUMP 00000adc: JUMPDEST 00000add: PUSH2 0x0ae4 00000ae0: PUSH2 0x0abc 00000ae3: JUMP 00000ae4: JUMPDEST 00000ae5: SWAP1 00000ae6: PUSH2 0x0ada 00000ae9: JUMP 00000aea: JUMPDEST 00000aeb: PUSH1 0x20 00000aed: SWAP2 00000aee: DUP2 00000aef: MSTORE 00000af0: ADD 00000af1: SWAP1 00000af2: JUMP 00000af3: JUMPDEST 00000af4: SWAP2 00000af5: SWAP1 00000af6: PUSH2 0x0b0d 00000af9: DUP2 00000afa: PUSH2 0x0b06 00000afd: DUP2 00000afe: PUSH2 0x0b12 00000b01: SWAP6 00000b02: PUSH2 0x0aea 00000b05: JUMP 00000b06: JUMPDEST 00000b07: DUP1 00000b08: SWAP6 00000b09: PUSH2 0x08d2 00000b0c: JUMP 00000b0d: JUMPDEST 00000b0e: PUSH2 0x07fa 00000b11: JUMP 00000b12: JUMPDEST 00000b13: ADD 00000b14: SWAP1 00000b15: JUMP 00000b16: JUMPDEST 00000b17: SWAP2 00000b18: PUSH2 0x0b3b 00000b1b: SWAP4 00000b1c: SWAP2 00000b1d: SWAP3 00000b1e: PUSH2 0x0b2e 00000b21: PUSH1 0x40 00000b23: DUP3 00000b24: ADD 00000b25: SWAP5 00000b26: PUSH0 00000b27: DUP4 00000b28: ADD 00000b29: SWAP1 00000b2a: PUSH2 0x0222 00000b2d: JUMP 00000b2e: JUMPDEST 00000b2f: PUSH1 0x20 00000b31: DUP2 00000b32: DUP6 00000b33: SUB 00000b34: SWAP2 00000b35: ADD 00000b36: MSTORE 00000b37: PUSH2 0x0af3 00000b3a: JUMP 00000b3b: JUMPDEST 00000b3c: SWAP1 00000b3d: JUMP 00000b3e: JUMPDEST 00000b3f: SWAP2 00000b40: SWAP6 00000b41: SWAP9 00000b42: SWAP8 00000b43: SWAP11 00000b44: SWAP4 00000b45: SWAP10 00000b46: SWAP3 00000b47: SWAP7 00000b48: SWAP10 00000b49: SWAP5 00000b4a: SWAP1 00000b4b: SWAP5 00000b4c: PUSH2 0x0b56 00000b4f: DUP8 00000b50: DUP10 00000b51: SWAP1 00000b52: PUSH2 0x05f9 00000b55: JUMP 00000b56: JUMPDEST 00000b57: PUSH2 0x0b71 00000b5a: PUSH2 0x0b6b 00000b5d: PUSH2 0x0b66 00000b60: PUSH1 0x01 00000b62: PUSH2 0x0616 00000b65: JUMP 00000b66: JUMPDEST 00000b67: PUSH2 0x021f 00000b6a: JUMP 00000b6b: JUMPDEST 00000b6c: SWAP2 00000b6d: PUSH2 0x021f 00000b70: JUMP 00000b71: JUMPDEST 00000b72: LT 00000b73: PUSH2 0x0e4d 00000b76: JUMPI 00000b77: PUSH2 0x0b81 00000b7a: DUP8 00000b7b: DUP10 00000b7c: SWAP1 00000b7d: PUSH2 0x05f9 00000b80: JUMP 00000b81: JUMPDEST 00000b82: PUSH2 0x0b9d 00000b85: PUSH2 0x0b97 00000b88: PUSH2 0x0b92 00000b8b: DUP5 00000b8c: DUP7 00000b8d: SWAP1 00000b8e: PUSH2 0x05f9 00000b91: JUMP 00000b92: JUMPDEST 00000b93: PUSH2 0x021f 00000b96: JUMP 00000b97: JUMPDEST 00000b98: SWAP2 00000b99: PUSH2 0x021f 00000b9c: JUMP 00000b9d: JUMPDEST 00000b9e: EQ 00000b9f: ISZERO 00000ba0: DUP1 00000ba1: ISZERO 00000ba2: PUSH2 0x0e1e 00000ba5: JUMPI 00000ba6: JUMPDEST 00000ba7: PUSH2 0x0e02 00000baa: JUMPI 00000bab: DUP4 00000bac: PUSH2 0x0bbd 00000baf: PUSH2 0x0bb7 00000bb2: CALLER 00000bb3: PUSH2 0x0099 00000bb6: JUMP 00000bb7: JUMPDEST 00000bb8: SWAP2 00000bb9: PUSH2 0x0099 00000bbc: JUMP 00000bbd: JUMPDEST 00000bbe: EQ 00000bbf: ISZERO 00000bc0: DUP1 00000bc1: PUSH2 0x0ddf 00000bc4: JUMPI 00000bc5: JUMPDEST 00000bc6: PUSH2 0x0dc3 00000bc9: JUMPI 00000bca: PUSH2 0x0d48 00000bcd: SWAP8 00000bce: PUSH0 00000bcf: SWAP8 00000bd0: DUP9 00000bd1: SWAP8 00000bd2: DUP12 00000bd3: DUP16 00000bd4: DUP16 00000bd5: DUP16 00000bd6: PUSH2 0x0ca5 00000bd9: SWAP1 00000bda: PUSH2 0x0c96 00000bdd: PUSH2 0x0cdf 00000be0: SWAP5 00000be1: DUP15 00000be2: PUSH2 0x0cfe 00000be5: SWAP15 00000be6: PUSH2 0x0c62 00000be9: PUSH2 0x0bf0 00000bec: PUSH2 0x0679 00000bef: JUMP 00000bf0: JUMPDEST 00000bf1: PUSH2 0x0c3e 00000bf4: PUSH2 0x0bfb 00000bf7: PUSH2 0x06c4 00000bfa: JUMP 00000bfb: JUMPDEST 00000bfc: SWAP2 00000bfd: PUSH2 0x0c2f 00000c00: PUSH2 0x0c07 00000c03: PUSH2 0x070f 00000c06: JUMP 00000c07: JUMPDEST 00000c08: CHAINID 00000c09: PUSH2 0x0c11 00000c0c: ADDRESS 00000c0d: PUSH2 0x073b 00000c10: JUMP 00000c11: JUMPDEST 00000c12: SWAP1 00000c13: PUSH2 0x0c1a 00000c16: PUSH2 0x0766 00000c19: JUMP 00000c1a: JUMPDEST 00000c1b: SWAP3 00000c1c: PUSH2 0x0c23 00000c1f: PUSH2 0x007c 00000c22: JUMP 00000c23: JUMPDEST 00000c24: SWAP8 00000c25: DUP9 00000c26: SWAP7 00000c27: PUSH1 0x20 00000c29: DUP9 00000c2a: ADD 00000c2b: PUSH2 0x079f 00000c2e: JUMP 00000c2f: JUMPDEST 00000c30: PUSH1 0x20 00000c32: DUP3 00000c33: ADD 00000c34: DUP2 00000c35: SUB 00000c36: DUP3 00000c37: MSTORE 00000c38: SUB 00000c39: DUP3 00000c3a: PUSH2 0x0818 00000c3d: JUMP 00000c3e: JUMPDEST 00000c3f: PUSH2 0x0c50 00000c42: PUSH2 0x0c4a 00000c45: DUP3 00000c46: PUSH2 0x0847 00000c49: JUMP 00000c4a: JUMPDEST 00000c4b: SWAP2 00000c4c: PUSH2 0x0841 00000c4f: JUMP 00000c50: JUMPDEST 00000c51: KECCAK256 00000c52: SWAP10 00000c53: PUSH2 0x0c5a 00000c56: PUSH2 0x086a 00000c59: JUMP 00000c5a: JUMPDEST 00000c5b: SWAP7 00000c5c: SWAP9 00000c5d: SWAP5 00000c5e: PUSH2 0x0913 00000c61: JUMP 00000c62: JUMPDEST 00000c63: PUSH2 0x0c74 00000c66: PUSH2 0x0c6e 00000c69: DUP3 00000c6a: PUSH2 0x0847 00000c6d: JUMP 00000c6e: JUMPDEST 00000c6f: SWAP2 00000c70: PUSH2 0x0841 00000c73: JUMP 00000c74: JUMPDEST 00000c75: KECCAK256 00000c76: PUSH0 00000c77: PUSH2 0x0c7f 00000c7a: SWAP1 00000c7b: PUSH2 0x0616 00000c7e: JUMP 00000c7f: JUMPDEST 00000c80: SWAP2 00000c81: SWAP3 00000c82: SWAP4 00000c83: PUSH2 0x0c8a 00000c86: PUSH2 0x007c 00000c89: JUMP 00000c8a: JUMPDEST 00000c8b: SWAP9 00000c8c: DUP10 00000c8d: SWAP8 00000c8e: PUSH1 0x20 00000c90: DUP10 00000c91: ADD 00000c92: PUSH2 0x0921 00000c95: JUMP 00000c96: JUMPDEST 00000c97: PUSH1 0x20 00000c99: DUP3 00000c9a: ADD 00000c9b: DUP2 00000c9c: SUB 00000c9d: DUP3 00000c9e: MSTORE 00000c9f: SUB 00000ca0: DUP3 00000ca1: PUSH2 0x0818 00000ca4: JUMP 00000ca5: JUMPDEST 00000ca6: PUSH2 0x0cb7 00000ca9: PUSH2 0x0cb1 00000cac: DUP3 00000cad: PUSH2 0x0847 00000cb0: JUMP 00000cb1: JUMPDEST 00000cb2: SWAP2 00000cb3: PUSH2 0x0841 00000cb6: JUMP 00000cb7: JUMPDEST 00000cb8: KECCAK256 00000cb9: SWAP2 00000cba: PUSH2 0x0cd0 00000cbd: PUSH2 0x0cc4 00000cc0: PUSH2 0x007c 00000cc3: JUMP 00000cc4: JUMPDEST 00000cc5: SWAP4 00000cc6: DUP5 00000cc7: SWAP3 00000cc8: PUSH1 0x20 00000cca: DUP5 00000ccb: ADD 00000ccc: PUSH2 0x09cb 00000ccf: JUMP 00000cd0: JUMPDEST 00000cd1: PUSH1 0x20 00000cd3: DUP3 00000cd4: ADD 00000cd5: DUP2 00000cd6: SUB 00000cd7: DUP3 00000cd8: MSTORE 00000cd9: SUB 00000cda: DUP3 00000cdb: PUSH2 0x0818 00000cde: JUMP 00000cdf: JUMPDEST 00000ce0: PUSH2 0x0cf1 00000ce3: PUSH2 0x0ceb 00000ce6: DUP3 00000ce7: PUSH2 0x0847 00000cea: JUMP 00000ceb: JUMPDEST 00000cec: SWAP2 00000ced: PUSH2 0x0841 00000cf0: JUMP 00000cf1: JUMPDEST 00000cf2: KECCAK256 00000cf3: SWAP6 00000cf4: SWAP1 00000cf5: SWAP2 00000cf6: SWAP3 00000cf7: SWAP4 00000cf8: SWAP5 00000cf9: SWAP6 00000cfa: PUSH2 0x100e 00000cfd: JUMP 00000cfe: JUMPDEST 00000cff: PUSH2 0x0d18 00000d02: PUSH2 0x0d12 00000d05: PUSH2 0x0d0d 00000d08: DUP5 00000d09: PUSH2 0x0616 00000d0c: JUMP 00000d0d: JUMPDEST 00000d0e: PUSH2 0x0a06 00000d11: JUMP 00000d12: JUMPDEST 00000d13: DUP4 00000d14: PUSH2 0x0a57 00000d17: JUMP 00000d18: JUMPDEST 00000d19: DUP6 00000d1a: SWAP1 00000d1b: DUP8 00000d1c: SWAP1 00000d1d: SWAP2 00000d1e: SWAP1 00000d1f: DUP10 00000d20: SWAP2 00000d21: DUP8 00000d22: SWAP3 00000d23: PUSH2 0x0d36 00000d26: PUSH2 0x0d2d 00000d29: PUSH2 0x007c 00000d2c: JUMP 00000d2d: JUMPDEST 00000d2e: SWAP5 00000d2f: DUP6 00000d30: SWAP3 00000d31: DUP4 00000d32: PUSH2 0x0a97 00000d35: JUMP 00000d36: JUMPDEST 00000d37: SUB 00000d38: SWAP4 00000d39: CALL 00000d3a: PUSH2 0x0d41 00000d3d: PUSH2 0x0ac1 00000d40: JUMP 00000d41: JUMPDEST 00000d42: POP 00000d43: ISZERO 00000d44: PUSH2 0x017c 00000d47: JUMP 00000d48: JUMPDEST 00000d49: PUSH2 0x0da7 00000d4c: JUMPI 00000d4d: PUSH2 0x0d55 00000d50: ADDRESS 00000d51: PUSH2 0x073b 00000d54: JUMP 00000d55: JUMPDEST 00000d56: SWAP2 00000d57: SWAP3 00000d58: SWAP4 00000d59: SWAP1 00000d5a: SWAP4 00000d5b: PUSH2 0x0da2 00000d5e: PUSH2 0x0d90 00000d61: PUSH2 0x0d8a 00000d64: PUSH32 0xc25cfed0b22da6a56f0e5ff784979a0b8623eddf2aee4acd33c2adefb09cbab6 00000d85: SWAP6 00000d86: PUSH2 0x0111 00000d89: JUMP 00000d8a: JUMPDEST 00000d8b: SWAP6 00000d8c: PUSH2 0x0111 00000d8f: JUMP 00000d90: JUMPDEST 00000d91: SWAP6 00000d92: PUSH2 0x0d99 00000d95: PUSH2 0x007c 00000d98: JUMP 00000d99: JUMPDEST 00000d9a: SWAP4 00000d9b: DUP5 00000d9c: SWAP4 00000d9d: DUP5 00000d9e: PUSH2 0x0b16 00000da1: JUMP 00000da2: JUMPDEST 00000da3: SUB 00000da4: SWAP1 00000da5: LOG3 00000da6: JUMP 00000da7: JUMPDEST 00000da8: PUSH0 00000da9: PUSH4 0xde44a571 00000dae: PUSH1 0xe0 00000db0: SHL 00000db1: DUP2 00000db2: MSTORE 00000db3: DUP1 00000db4: PUSH2 0x0dbf 00000db7: PUSH1 0x04 00000db9: DUP3 00000dba: ADD 00000dbb: PUSH2 0x044f 00000dbe: JUMP 00000dbf: JUMPDEST 00000dc0: SUB 00000dc1: SWAP1 00000dc2: REVERT 00000dc3: JUMPDEST 00000dc4: PUSH0 00000dc5: PUSH4 0x710c9497 00000dca: PUSH1 0xe0 00000dcc: SHL 00000dcd: DUP2 00000dce: MSTORE 00000dcf: DUP1 00000dd0: PUSH2 0x0ddb 00000dd3: PUSH1 0x04 00000dd5: DUP3 00000dd6: ADD 00000dd7: PUSH2 0x044f 00000dda: JUMP 00000ddb: JUMPDEST 00000ddc: SUB 00000ddd: SWAP1 00000dde: REVERT 00000ddf: JUMPDEST 00000de0: POP 00000de1: DUP4 00000de2: PUSH2 0x0dfb 00000de5: PUSH2 0x0df5 00000de8: PUSH2 0x0df0 00000deb: PUSH0 00000dec: PUSH2 0x0646 00000def: JUMP 00000df0: JUMPDEST 00000df1: PUSH2 0x0099 00000df4: JUMP 00000df5: JUMPDEST 00000df6: SWAP2 00000df7: PUSH2 0x0099 00000dfa: JUMP 00000dfb: JUMPDEST 00000dfc: EQ 00000dfd: ISZERO 00000dfe: PUSH2 0x0bc5 00000e01: JUMP 00000e02: JUMPDEST 00000e03: PUSH0 00000e04: PUSH4 0x60b28045 00000e09: PUSH1 0xe1 00000e0b: SHL 00000e0c: DUP2 00000e0d: MSTORE 00000e0e: DUP1 00000e0f: PUSH2 0x0e1a 00000e12: PUSH1 0x04 00000e14: DUP3 00000e15: ADD 00000e16: PUSH2 0x044f 00000e19: JUMP 00000e1a: JUMPDEST 00000e1b: SUB 00000e1c: SWAP1 00000e1d: REVERT 00000e1e: JUMPDEST 00000e1f: POP 00000e20: PUSH2 0x0e2a 00000e23: DUP8 00000e24: DUP10 00000e25: SWAP1 00000e26: PUSH2 0x05f9 00000e29: JUMP 00000e2a: JUMPDEST 00000e2b: PUSH2 0x0e46 00000e2e: PUSH2 0x0e40 00000e31: PUSH2 0x0e3b 00000e34: DUP7 00000e35: DUP11 00000e36: SWAP1 00000e37: PUSH2 0x0623 00000e3a: JUMP 00000e3b: JUMPDEST 00000e3c: PUSH2 0x021f 00000e3f: JUMP 00000e40: JUMPDEST 00000e41: SWAP2 00000e42: PUSH2 0x021f 00000e45: JUMP 00000e46: JUMPDEST 00000e47: EQ 00000e48: ISZERO 00000e49: PUSH2 0x0ba6 00000e4c: JUMP 00000e4d: JUMPDEST 00000e4e: PUSH0 00000e4f: PUSH4 0x3724e343 00000e54: PUSH1 0xe1 00000e56: SHL 00000e57: DUP2 00000e58: MSTORE 00000e59: DUP1 00000e5a: PUSH2 0x0e65 00000e5d: PUSH1 0x04 00000e5f: DUP3 00000e60: ADD 00000e61: PUSH2 0x044f 00000e64: JUMP 00000e65: JUMPDEST 00000e66: SUB 00000e67: SWAP1 00000e68: REVERT 00000e69: JUMPDEST 00000e6a: CALLER 00000e6b: PUSH2 0x0e73 00000e6e: ADDRESS 00000e6f: PUSH2 0x073b 00000e72: JUMP 00000e73: JUMPDEST 00000e74: CALLVALUE 00000e75: SWAP2 00000e76: PUSH2 0x0ebd 00000e79: PUSH2 0x0eab 00000e7c: PUSH2 0x0ea5 00000e7f: PUSH32 0x1d34d19757361fd4aa48c5023224a5cbb511fef3e3ae1ebb3634e00a496b74d7 00000ea0: SWAP4 00000ea1: PUSH2 0x0111 00000ea4: JUMP 00000ea5: JUMPDEST 00000ea6: SWAP4 00000ea7: PUSH2 0x0111 00000eaa: JUMP 00000eab: JUMPDEST 00000eac: SWAP4 00000ead: PUSH2 0x0eb4 00000eb0: PUSH2 0x007c 00000eb3: JUMP 00000eb4: JUMPDEST 00000eb5: SWAP2 00000eb6: DUP3 00000eb7: SWAP2 00000eb8: DUP3 00000eb9: PUSH2 0x022f 00000ebc: JUMP 00000ebd: JUMPDEST 00000ebe: SUB 00000ebf: SWAP1 00000ec0: LOG3 00000ec1: JUMP 00000ec2: JUMPDEST 00000ec3: PUSH2 0x0ed6 00000ec6: PUSH2 0x0ed1 00000ec9: PUSH2 0x0edb 00000ecc: SWAP3 00000ecd: PUSH2 0x0627 00000ed0: JUMP 00000ed1: JUMPDEST 00000ed2: PUSH2 0x00e6 00000ed5: JUMP 00000ed6: JUMPDEST 00000ed7: PUSH2 0x021f 00000eda: JUMP 00000edb: JUMPDEST 00000edc: SWAP1 00000edd: JUMP 00000ede: JUMPDEST 00000edf: PUSH1 0x01 00000ee1: PUSH2 0x0eea 00000ee4: SWAP2 00000ee5: ADD 00000ee6: PUSH2 0x021f 00000ee9: JUMP 00000eea: JUMPDEST 00000eeb: SWAP1 00000eec: JUMP 00000eed: JUMPDEST 00000eee: SWAP2 00000eef: SWAP1 00000ef0: DUP2 00000ef1: LT 00000ef2: ISZERO 00000ef3: PUSH2 0x0efd 00000ef6: JUMPI 00000ef7: PUSH1 0x20 00000ef9: MUL 00000efa: ADD 00000efb: SWAP1 00000efc: JUMP 00000efd: JUMPDEST 00000efe: PUSH2 0x04b5 00000f01: JUMP 00000f02: JUMPDEST 00000f03: PUSH2 0x0f0b 00000f06: DUP2 00000f07: PUSH2 0x0655 00000f0a: JUMP 00000f0b: JUMPDEST 00000f0c: SUB 00000f0d: PUSH2 0x0f12 00000f10: JUMPI 00000f11: JUMP 00000f12: JUMPDEST 00000f13: PUSH0 00000f14: DUP1 00000f15: REVERT 00000f16: JUMPDEST 00000f17: CALLDATALOAD 00000f18: PUSH2 0x0f20 00000f1b: DUP2 00000f1c: PUSH2 0x0f02 00000f1f: JUMP 00000f20: JUMPDEST 00000f21: SWAP1 00000f22: JUMP 00000f23: JUMPDEST 00000f24: PUSH2 0x0f2f 00000f27: PUSH2 0x0f34 00000f2a: SWAP2 00000f2b: PUSH2 0x05fd 00000f2e: JUMP 00000f2f: JUMPDEST 00000f30: PUSH2 0x0a38 00000f33: JUMP 00000f34: JUMPDEST 00000f35: SWAP1 00000f36: JUMP 00000f37: JUMPDEST 00000f38: SWAP1 00000f39: JUMP 00000f3a: JUMPDEST 00000f3b: PUSH2 0x0f4e 00000f3e: PUSH2 0x0f49 00000f41: PUSH2 0x0f53 00000f44: SWAP3 00000f45: PUSH2 0x0f37 00000f48: JUMP 00000f49: JUMPDEST 00000f4a: PUSH2 0x00e6 00000f4d: JUMP 00000f4e: JUMPDEST 00000f4f: PUSH2 0x021f 00000f52: JUMP 00000f53: JUMPDEST 00000f54: SWAP1 00000f55: JUMP 00000f56: JUMPDEST 00000f57: SWAP2 00000f58: SWAP1 00000f59: DUP2 00000f5a: LT 00000f5b: ISZERO 00000f5c: PUSH2 0x0f66 00000f5f: JUMPI 00000f60: PUSH1 0x20 00000f62: MUL 00000f63: ADD 00000f64: SWAP1 00000f65: JUMP 00000f66: JUMPDEST 00000f67: PUSH2 0x04b5 00000f6a: JUMP 00000f6b: JUMPDEST 00000f6c: PUSH1 0xff 00000f6e: AND 00000f6f: SWAP1 00000f70: JUMP 00000f71: JUMPDEST 00000f72: PUSH2 0x0f7a 00000f75: DUP2 00000f76: PUSH2 0x0f6b 00000f79: JUMP 00000f7a: JUMPDEST 00000f7b: SUB 00000f7c: PUSH2 0x0f81 00000f7f: JUMPI 00000f80: JUMP 00000f81: JUMPDEST 00000f82: PUSH0 00000f83: DUP1 00000f84: REVERT 00000f85: JUMPDEST 00000f86: CALLDATALOAD 00000f87: PUSH2 0x0f8f 00000f8a: DUP2 00000f8b: PUSH2 0x0f71 00000f8e: JUMP 00000f8f: JUMPDEST 00000f90: SWAP1 00000f91: JUMP 00000f92: JUMPDEST 00000f93: PUSH2 0x0f9b 00000f96: SWAP1 00000f97: PUSH2 0x0f6b 00000f9a: JUMP 00000f9b: JUMPDEST 00000f9c: SWAP1 00000f9d: MSTORE 00000f9e: JUMP 00000f9f: JUMPDEST 00000fa0: PUSH2 0x0fd4 00000fa3: PUSH2 0x0fdb 00000fa6: SWAP5 00000fa7: PUSH2 0x0fca 00000faa: PUSH1 0x60 00000fac: SWAP5 00000fad: SWAP9 00000fae: SWAP8 00000faf: SWAP6 00000fb0: PUSH2 0x0fc0 00000fb3: PUSH1 0x80 00000fb5: DUP7 00000fb6: ADD 00000fb7: SWAP11 00000fb8: PUSH0 00000fb9: DUP8 00000fba: ADD 00000fbb: SWAP1 00000fbc: PUSH2 0x0792 00000fbf: JUMP 00000fc0: JUMPDEST 00000fc1: PUSH1 0x20 00000fc3: DUP6 00000fc4: ADD 00000fc5: SWAP1 00000fc6: PUSH2 0x0f92 00000fc9: JUMP 00000fca: JUMPDEST 00000fcb: PUSH1 0x40 00000fcd: DUP4 00000fce: ADD 00000fcf: SWAP1 00000fd0: PUSH2 0x0792 00000fd3: JUMP 00000fd4: JUMPDEST 00000fd5: ADD 00000fd6: SWAP1 00000fd7: PUSH2 0x0792 00000fda: JUMP 00000fdb: JUMPDEST 00000fdc: JUMP 00000fdd: JUMPDEST 00000fde: PUSH2 0x0fe5 00000fe1: PUSH2 0x007c 00000fe4: JUMP 00000fe5: JUMPDEST 00000fe6: RETURNDATASIZE 00000fe7: PUSH0 00000fe8: DUP3 00000fe9: RETURNDATACOPY 00000fea: RETURNDATASIZE 00000feb: SWAP1 00000fec: REVERT 00000fed: JUMPDEST 00000fee: PUSH2 0x0ff9 00000ff1: PUSH2 0x0ffe 00000ff4: SWAP2 00000ff5: PUSH2 0x05fd 00000ff8: JUMP 00000ff9: JUMPDEST 00000ffa: PUSH2 0x0137 00000ffd: JUMP 00000ffe: JUMPDEST 00000fff: SWAP1 00001000: JUMP 00001001: JUMPDEST 00001002: PUSH2 0x100b 00001005: SWAP1 00001006: SLOAD 00001007: PUSH2 0x0fed 0000100a: JUMP 0000100b: JUMPDEST 0000100c: SWAP1 0000100d: JUMP 0000100e: JUMPDEST 0000100f: SWAP7 00001010: SWAP6 00001011: SWAP4 00001012: SWAP5 00001013: SWAP2 00001014: SWAP1 00001015: SWAP2 00001016: PUSH2 0x101e 00001019: PUSH0 0000101a: PUSH2 0x0646 0000101d: JUMP 0000101e: JUMPDEST 0000101f: SWAP8 00001020: PUSH2 0x1028 00001023: PUSH0 00001024: PUSH2 0x0ec2 00001027: JUMP 00001028: JUMPDEST 00001029: SWAP9 0000102a: JUMPDEST 0000102b: DUP10 0000102c: PUSH2 0x1047 0000102f: PUSH2 0x1041 00001032: PUSH2 0x103c 00001035: DUP10 00001036: DUP13 00001037: SWAP1 00001038: PUSH2 0x05f9 0000103b: JUMP 0000103c: JUMPDEST 0000103d: PUSH2 0x021f 00001040: JUMP 00001041: JUMPDEST 00001042: SWAP2 00001043: PUSH2 0x021f 00001046: JUMP 00001047: JUMPDEST 00001048: LT 00001049: ISZERO 0000104a: PUSH2 0x11bd 0000104d: JUMPI 0000104e: PUSH2 0x106a 00001051: PUSH2 0x1065 00001054: PUSH2 0x1060 00001057: DUP6 00001058: DUP14 00001059: DUP12 0000105a: SWAP1 0000105b: SWAP2 0000105c: PUSH2 0x0eed 0000105f: JUMP 00001060: JUMPDEST 00001061: PUSH2 0x0f16 00001064: JUMP 00001065: JUMPDEST 00001066: PUSH2 0x0f23 00001069: JUMP 0000106a: JUMPDEST 0000106b: PUSH2 0x109c 0000106e: PUSH2 0x1096 00001071: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 00001092: PUSH2 0x0f3a 00001095: JUMP 00001096: JUMPDEST 00001097: SWAP2 00001098: PUSH2 0x021f 0000109b: JUMP 0000109c: JUMPDEST 0000109d: GT 0000109e: PUSH2 0x11a1 000010a1: JUMPI 000010a2: PUSH1 0x20 000010a4: PUSH0 000010a5: DUP8 000010a6: DUP8 000010a7: PUSH2 0x1101 000010aa: DUP15 000010ab: PUSH2 0x10ef 000010ae: PUSH2 0x10ea 000010b1: DUP16 000010b2: DUP16 000010b3: SWAP1 000010b4: PUSH2 0x10db 000010b7: PUSH2 0x10e0 000010ba: SWAP2 000010bb: DUP16 000010bc: PUSH2 0x10cd 000010bf: DUP16 000010c0: SWAP2 000010c1: PUSH2 0x10d2 000010c4: SWAP3 000010c5: SWAP12 000010c6: SWAP1 000010c7: DUP11 000010c8: SWAP2 000010c9: PUSH2 0x0f56 000010cc: JUMP 000010cd: JUMPDEST 000010ce: PUSH2 0x0f85 000010d1: JUMP 000010d2: JUMPDEST 000010d3: SWAP10 000010d4: SWAP1 000010d5: DUP8 000010d6: SWAP2 000010d7: PUSH2 0x0eed 000010da: JUMP 000010db: JUMPDEST 000010dc: PUSH2 0x0f16 000010df: JUMP 000010e0: JUMPDEST 000010e1: SWAP4 000010e2: DUP13 000010e3: SWAP2 000010e4: SWAP1 000010e5: SWAP2 000010e6: PUSH2 0x0eed 000010e9: JUMP 000010ea: JUMPDEST 000010eb: PUSH2 0x0f16 000010ee: JUMP 000010ef: JUMPDEST 000010f0: SWAP1 000010f1: PUSH2 0x10f8 000010f4: PUSH2 0x007c 000010f7: JUMP 000010f8: JUMPDEST 000010f9: SWAP5 000010fa: DUP6 000010fb: SWAP5 000010fc: DUP6 000010fd: PUSH2 0x0f9f 00001100: JUMP 00001101: JUMPDEST 00001102: DUP4 00001103: DUP1 00001104: MSTORE 00001105: SUB 00001106: SWAP1 00001107: PUSH1 0x01 00001109: GAS 0000110a: STATICCALL 0000110b: ISZERO 0000110c: PUSH2 0x119c 0000110f: JUMPI 00001110: PUSH2 0x1119 00001113: PUSH0 00001114: MLOAD 00001115: PUSH2 0x0658 00001118: JUMP 00001119: JUMPDEST 0000111a: SWAP1 0000111b: PUSH2 0x112d 0000111e: PUSH2 0x1127 00001121: DUP4 00001122: SWAP3 00001123: PUSH2 0x0099 00001126: JUMP 00001127: JUMPDEST 00001128: SWAP2 00001129: PUSH2 0x0099 0000112c: JUMP 0000112d: JUMPDEST 0000112e: GT 0000112f: ISZERO 00001130: PUSH2 0x1180 00001133: JUMPI 00001134: PUSH2 0x1150 00001137: PUSH2 0x114a 0000113a: PUSH2 0x1145 0000113d: PUSH1 0x02 0000113f: DUP5 00001140: SWAP1 00001141: PUSH2 0x011d 00001144: JUMP 00001145: JUMPDEST 00001146: PUSH2 0x1001 00001149: JUMP 0000114a: JUMPDEST 0000114b: ISZERO 0000114c: PUSH2 0x017c 0000114f: JUMP 00001150: JUMPDEST 00001151: PUSH2 0x1164 00001154: JUMPI 00001155: PUSH2 0x115e 00001158: SWAP1 00001159: SWAP10 0000115a: PUSH2 0x0ede 0000115d: JUMP 0000115e: JUMPDEST 0000115f: SWAP9 00001160: PUSH2 0x102a 00001163: JUMP 00001164: JUMPDEST 00001165: PUSH0 00001166: PUSH4 0x28e32f57 0000116b: PUSH1 0xe1 0000116d: SHL 0000116e: DUP2 0000116f: MSTORE 00001170: DUP1 00001171: PUSH2 0x117c 00001174: PUSH1 0x04 00001176: DUP3 00001177: ADD 00001178: PUSH2 0x044f 0000117b: JUMP 0000117c: JUMPDEST 0000117d: SUB 0000117e: SWAP1 0000117f: REVERT 00001180: JUMPDEST 00001181: PUSH0 00001182: PUSH4 0x8baa579f 00001187: PUSH1 0xe0 00001189: SHL 0000118a: DUP2 0000118b: MSTORE 0000118c: DUP1 0000118d: PUSH2 0x1198 00001190: PUSH1 0x04 00001192: DUP3 00001193: ADD 00001194: PUSH2 0x044f 00001197: JUMP 00001198: JUMPDEST 00001199: SUB 0000119a: SWAP1 0000119b: REVERT 0000119c: JUMPDEST 0000119d: PUSH2 0x0fdd 000011a0: JUMP 000011a1: JUMPDEST 000011a2: PUSH0 000011a3: PUSH4 0xd2c661b9 000011a8: PUSH1 0xe0 000011aa: SHL 000011ab: DUP2 000011ac: MSTORE 000011ad: DUP1 000011ae: PUSH2 0x11b9 000011b1: PUSH1 0x04 000011b3: DUP3 000011b4: ADD 000011b5: PUSH2 0x044f 000011b8: JUMP 000011b9: JUMPDEST 000011ba: SUB 000011bb: SWAP1 000011bc: REVERT 000011bd: JUMPDEST 000011be: POP 000011bf: POP 000011c0: POP 000011c1: POP 000011c2: POP 000011c3: POP 000011c4: POP 000011c5: POP 000011c6: SWAP1 000011c7: POP 000011c8: JUMP 000011c9: INVALID 000011ca: LOG2 000011cb: PUSH5 0x6970667358 000011d1: UNKNOWN(0x22) 000011d2: SLT 000011d3: KECCAK256 000011d4: UNKNOWN(0x2B) 000011d5: CALLVALUE 000011d6: DUP2 000011d7: LOG3 000011d8: DUP10 000011d9: SELFDESTRUCT 000011da: UNKNOWN(0xF9) 000011db: SWAP7 000011dc: UNKNOWN(0xDE) 000011dd: PUSH0 000011de: PUSH11 0x8b606599d0e7c81c425ac2 000011ea: UNKNOWN(0x4D) 000011eb: UNKNOWN(0xB3) 000011ec: UNKNOWN(0xB6) 000011ed: CALLVALUE 000011ee: UNKNOWN(0xD4) 000011ef: UNKNOWN(0xDD) 000011f0: STATICCALL 000011f1: SWAP9 000011f2: UNKNOWN(0xE5) 000011f3: PUSH19
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | cast | SELFDESTRUCT present | 85 | no | — |
viewevidence_json{
"notes": "selfdestruct can remove contract code and send funds; review reachability",
"selfdestruct_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xdc21b092fbf2151816a3d060c1e17d1f12270866939c70e5777211de83aa3781
call_targets:
0xc82abe4dfa94b9b5453d31274fb7500459a0d12d
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xdc21b092fbf2151816a3d060c1e17d1f12270866939c70e5777211de83aa3781",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xc82abe4dfa94b9b5453d31274fb7500459a0d12d"
],
"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": "0x2f54bf6e",
"selector": "0x2f54bf6e",
"calldata_variants": [
"0x2f54bf6e",
"0x2f54bf6e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x42cde4e8",
"selector": "0x42cde4e8",
"calldata_variants": [
"0x42cde4e8",
"0x42cde4e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa0ab9653",
"selector": "0xa0ab9653",
"calldata_variants": [
"0xa0ab9653",
"0xa0ab96530000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaa5df9e2",
"selector": "0xaa5df9e2",
"calldata_variants": [
"0xaa5df9e2",
"0xaa5df9e20000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3385,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 1,
"guards_detected": [],
"untrusted_call_count": 1
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xdc21b092fbf2151816a3d060c1e17d1f12270866939c70e5777211de83aa3781
call_targets:
0xc82abe4dfa94b9b5453d31274fb7500459a0d12d
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xdc21b092fbf2151816a3d060c1e17d1f12270866939c70e5777211de83aa3781",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xc82abe4dfa94b9b5453d31274fb7500459a0d12d"
],
"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": "0x2f54bf6e",
"selector": "0x2f54bf6e",
"calldata_variants": [
"0x2f54bf6e",
"0x2f54bf6e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x42cde4e8",
"selector": "0x42cde4e8",
"calldata_variants": [
"0x42cde4e8",
"0x42cde4e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa0ab9653",
"selector": "0xa0ab9653",
"calldata_variants": [
"0xa0ab9653",
"0xa0ab96530000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaa5df9e2",
"selector": "0xaa5df9e2",
"calldata_variants": [
"0xaa5df9e2",
"0xaa5df9e20000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3385,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": []
}
|
| high | other | detector | SELFDESTRUCT reachable | 65 | no | no |
viewtrace_id: 0x3a1374122b6270c8223241a8a556fbb0fde0d589fb1e53cf95eccbcd414e556e
validation_json{
"sink": "SELFDESTRUCT",
"errors": 0,
"status": "unknown",
"attempts": 8,
"trace_id": "0x3a1374122b6270c8223241a8a556fbb0fde0d589fb1e53cf95eccbcd414e556e",
"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": "0x2f54bf6e",
"selector": "0x2f54bf6e",
"calldata_variants": [
"0x2f54bf6e",
"0x2f54bf6e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x42cde4e8",
"selector": "0x42cde4e8",
"calldata_variants": [
"0x42cde4e8",
"0x42cde4e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa0ab9653",
"selector": "0xa0ab9653",
"calldata_variants": [
"0xa0ab9653",
"0xa0ab96530000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaa5df9e2",
"selector": "0xaa5df9e2",
"calldata_variants": [
"0xaa5df9e2",
"0xaa5df9e20000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [],
"selfdestruct_count": 1
}
|