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

Analysis Run

ec2e7590-4f5d-47d4-aab6-58122eb71633

complete
Chain ID
1
Address
Block Number
Created
Sat, Jan 3, 2026 12:07 AM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
31394 report.consolidate complete 1 / 1 3 months ago
111362 artifact.fetch complete 1 / 3 1 week ago
111363 tool.cast_disasm complete 1 / 3 1 week ago
111364 analysis.bundle complete 1 / 3 1 week ago
111365 capability.graph complete 1 / 3 1 week ago
111366 detector.run complete 1 / 3 1 week ago
111367 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 profit path identified from the provided runtime bytecode alone.
View stderr
[codex:1344852] OpenAI Codex v0.77.0 (research preview)
[codex:1344852] --------
[codex:1344852] workdir: /tmp/codex-multi-m3b50o_i
[codex:1344852] model: gpt-5.2-codex
[codex:1344852] provider: openai
[codex:1344852] approval: never
[codex:1344852] sandbox: read-only
[codex:1344852] reasoning effort: xhigh
[codex:1344852] reasoning summaries: auto
[codex:1344852] session id: 019b8124-73df-78c2-98e7-c77a67038b25
[codex:1344852] --------
[codex:1344852] user
[codex:1344852] 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:1344852] 
[codex:1344852] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:1344852] 
[codex:1344852] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1344852] - Gas inefficiency, code quality, or best practices
[codex:1344852] - Theoretical vulnerabilities without a clear extraction path
[codex:1344852] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:1344852] - Issues requiring social engineering or off-chain coordination
[codex:1344852] 
[codex:1344852] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:1344852] - CALL/DELEGATECALL with controllable destination or calldata
[codex:1344852] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:1344852] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:1344852] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:1344852] - External calls before state updates (reentrancy)
[codex:1344852] - SELFDESTRUCT with controllable beneficiary
[codex:1344852] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:1344852] 
[codex:1344852] For each finding, you MUST explain:
[codex:1344852] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:1344852] 2. The concrete sequence of transactions to extract value
[codex:1344852] 3. Why you believe this is exploitable (not just suspicious)
[codex:1344852] 
[codex:1344852] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:1344852] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:1344852] 
[codex:1344852] Output MUST be valid JSON matching the provided schema.
[codex:1344852] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1344852] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1344852] mcp startup: no servers
[codex:1344852] 
[codex:1344852] thinking
[codex:1344852] **Reviewing bytecode bundle file**
[codex:1344852] exec
[codex:1344852] /bin/bash -lc ls in /tmp/codex-multi-m3b50o_i succeeded in 5ms:
[codex:1344852] BYTECODE_BUNDLE.txt
[codex:1344852] codex-output-schema.json
[codex:1344852] exec
[codex:1344852] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-m3b50o_i succeeded in 5ms:
[codex:1344852] Runtime bytecode bundle for best-effort auditing.
[codex:1344852] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1344852] 
[codex:1344852] FILE: runtime_bytecode.hex
[codex:1344852] 0x6080604052600436106100dc575f3560e01c8063715018a61161007c5780638da5cb5b116100575780638da5cb5b1461025b578063dbe7e3bd14610284578063f2fde38b146102b2578063f3fef3a3146102d1575f80fd5b8063715018a61461020c5780638456cb591461022057806384b0196e14610234575f80fd5b80633644e515116100b75780633644e5151461017d5780633f4ba83a1461019f5780635c975abb146101b35780636c19e783146101ed575f80fd5b806301e33667146100e757806319b2288714610108578063238ac93314610127575f80fd5b366100e357005b5f80fd5b3480156100f2575f80fd5b5061010661010136600461159e565b6102f0565b005b348015610113575f80fd5b5061010661012236600461161f565b6103d3565b348015610132575f80fd5b506004546101539073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610188575f80fd5b50610191610874565b604051908152602001610174565b3480156101aa575f80fd5b50610106610882565b3480156101be575f80fd5b505f5474010000000000000000000000000000000000000000900460ff165b6040519015158152602001610174565b3480156101f8575f80fd5b506101066102073660046116ef565b610894565b348015610217575f80fd5b5061010661098c565b34801561022b575f80fd5b5061010661099d565b34801561023f575f80fd5b506102486109ad565b604051610174979695949392919061175b565b348015610266575f80fd5b505f5473ffffffffffffffffffffffffffffffffffffffff16610153565b34801561028f575f80fd5b506101dd61029e36600461181b565b60056020525f908152604090205460ff1681565b3480156102bd575f80fd5b506101066102cc3660046116ef565b610a0b565b3480156102dc575f80fd5b506101066102eb366004611832565b610aa8565b6102f8610b21565b73ffffffffffffffffffffffffffffffffffffffff83166103605760405162461bcd60e51b815260206004820152600d60248201527f496e76616c696420746f6b656e0000000000000000000000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166103c35760405162461bcd60e51b815260206004820152601160248201527f496e76616c696420726563697069656e740000000000000000000000000000006044820152606401610357565b6103ce838383610b87565b505050565b6103db610cd8565b6103e3610d1b565b8584146104325760405162461bcd60e51b815260206004820152601160248201527f4d69736d617463686564206172726179730000000000000000000000000000006044820152606401610357565b73ffffffffffffffffffffffffffffffffffffffff83166104955760405162461bcd60e51b815260206004820152601160248201527f496e76616c696420726563697069656e740000000000000000000000000000006044820152606401610357565b5f61057b7f5cffa6fb7ce27d00e223ca6efa7cd0ae989d0a3927c853d97037ab35cdd29a2989896040516020016104cd92919061185a565b6040516020818303038152906040528051906020012088886040516020016104f692919061185a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252805160209182012090830194909452810191909152606081019190915273ffffffffffffffffffffffffffffffffffffffff8616608082015260a00160405160208183030381529060405280519060200120610d6f565b90505f6105bd8285858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610dbc92505050565b60045490915073ffffffffffffffffffffffffffffffffffffffff80831691161461062a5760405162461bcd60e51b815260206004820152601760248201527f496e76616c6964206261746368207369676e61747572650000000000000000006044820152606401610357565b5f805b898110156107b8575f8b8b838181106106485761064861189a565b9050602002013590505f8a8a848181106106645761066461189a565b5f858152600560209081526040909120549102929092013592505060ff16156106fd57817fa4d49a1141c14cc38ea06a032ce2ff92c2818ca42ea900d3a656f4e761a1d65a826040516106ee918152604060208201819052600f908201527f416c726561647920636c61696d65640000000000000000000000000000000000606082015260800190565b60405180910390a250506107b0565b805f0361076b57817fa4d49a1141c14cc38ea06a032ce2ff92c2818ca42ea900d3a656f4e761a1d65a826040516106ee918152604060208201819052600e908201527f496e76616c696420616d6f756e74000000000000000000000000000000000000606082015260800190565b5f82815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556107ab81856118c7565b935050505b60010161062d565b505f81116108085760405162461bcd60e51b815260206004820152600f60248201527f4e6f2076616c696420636c61696d7300000000000000000000000000000000006044820152606401610357565b6108128682610de4565b60405181815273ffffffffffffffffffffffffffffffffffffffff87169033907fd1156c83da18470c12fae89ffa811f65a38db2f5b87da6aacd2eecf395d2cceb9060200160405180910390a350505061086b60018055565b50505050505050565b5f61087d610ed0565b905090565b61088a610b21565b610892611006565b565b61089c610b21565b73ffffffffffffffffffffffffffffffffffffffff81166108ff5760405162461bcd60e51b815260206004820152601d60248201527f5369676e65722063616e6e6f74206265207a65726f20616464726573730000006044820152606401610357565b60045460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f2d025324f0a785e8c12d0a0d91a9caa49df4ef20ff87e0df7213a1d4f3157beb905f90a3600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610994610b21565b6108925f611082565b6109a5610b21565b6108926110f6565b5f6060805f805f60606109be611164565b6109c6611191565b604080515f808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b610a13610b21565b73ffffffffffffffffffffffffffffffffffffffff8116610a9c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610357565b610aa581611082565b50565b610ab0610b21565b73ffffffffffffffffffffffffffffffffffffffff8216610b135760405162461bcd60e51b815260206004820152601160248201527f496e76616c696420726563697069656e740000000000000000000000000000006044820152606401610357565b610b1d8282610de4565b5050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146108925760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610357565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291515f92839290871691610c1d91906118ff565b5f604051808303815f865af19150503d805f8114610c56576040519150601f19603f3d011682016040523d82523d5f602084013e610c5b565b606091505b5091509150818015610c85575080511580610c85575080806020019051810190610c859190611915565b610cd15760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c4544006044820152606401610357565b5050505050565b600260015403610d14576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600155565b5f5474010000000000000000000000000000000000000000900460ff1615610892576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610db6610d7b610ed0565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b92915050565b5f805f80610dca86866111be565b925092509250610dda8282611207565b5090949350505050565b604080515f8082526020820190925273ffffffffffffffffffffffffffffffffffffffff8416908390604051610e1a91906118ff565b5f6040518083038185875af1925050503d805f8114610e54576040519150601f19603f3d011682016040523d82523d5f602084013e610e59565b606091505b50509050806103ce5760405162461bcd60e51b815260206004820152602360248201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960448201527f4c454400000000000000000000000000000000000000000000000000000000006064820152608401610357565b5f3073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000a4245f5d3de21db029642f6ee4a31fe513fc5ad816148015610f3557507f000000000000000000000000000000000000000000000000000000000000000146145b15610f5f57507f380b34c5a494a535a5b8ff9962de9f1ab23c2e3ffea11bed416208f015705ff590565b61087d604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f7d6a0cef142f1dae5db126c788fa78d30d48228eed89afa40425c12d00e4cf37918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b61100e61130a565b5f80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6110fe610d1b565b5f80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586110583390565b606061087d7f4d61657374726f436173686261636b000000000000000000000000000000000f600261135d565b606061087d7f3100000000000000000000000000000000000000000000000000000000000001600361135d565b5f805f83516041036111f5576020840151604085015160608601515f1a6111e788828585611406565b955095509550505050611200565b505081515f91506002905b9250925092565b5f82600381111561121a5761121a611934565b03611223575050565b600182600381111561123757611237611934565b0361126e576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600282600381111561128257611282611934565b036112bc576040517ffce698f700000000000000000000000000000000000000000000000000000000815260048101829052602401610357565b60038260038111156112d0576112d0611934565b03610b1d576040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260048101829052602401610357565b5f5474010000000000000000000000000000000000000000900460ff16610892576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606060ff831461137757611370836114f9565b9050610db6565b81805461138390611961565b80601f01602080910402602001604051908101604052809291908181526020018280546113af90611961565b80156113fa5780601f106113d1576101008083540402835291602001916113fa565b820191905f5260205f20905b8154815290600101906020018083116113dd57829003601f168201915b50505050509050610db6565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561143f57505f915060039050826114ef565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611490573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166114e657505f9250600191508290506114ef565b92505f91508190505b9450945094915050565b60605f61150583611536565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f60ff8216601f811115610db6576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114611599575f80fd5b919050565b5f805f606084860312156115b0575f80fd5b6115b984611576565b92506115c760208501611576565b9150604084013590509250925092565b5f8083601f8401126115e7575f80fd5b50813567ffffffffffffffff8111156115fe575f80fd5b6020830191508360208260051b8501011115611618575f80fd5b9250929050565b5f805f805f805f6080888a031215611635575f80fd5b873567ffffffffffffffff8082111561164c575f80fd5b6116588b838c016115d7565b909950975060208a0135915080821115611670575f80fd5b61167c8b838c016115d7565b909750955085915061169060408b01611576565b945060608a01359150808211156116a5575f80fd5b818a0191508a601f8301126116b8575f80fd5b8135818111156116c6575f80fd5b8b60208285010111156116d7575f80fd5b60208301945080935050505092959891949750929550565b5f602082840312156116ff575f80fd5b61170882611576565b9392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681525f602060e0602084015261179760e084018a61170f565b83810360408501526117a9818a61170f565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015611809578351835292840192918401916001016117ed565b50909c9b505050505050505050505050565b5f6020828403121561182b575f80fd5b5035919050565b5f8060408385031215611843575f80fd5b61184c83611576565b946020939093013593505050565b5f7f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611887575f80fd5b8260051b80858437919091019392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b80820180821115610db6577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f82518060208501845e5f920191825250919050565b5f60208284031215611925575f80fd5b81518015158114611708575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600181811c9082168061197557607f821691505b6020821081036119ac577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5091905056fea26469706673582212203b0d0809eefbe5375b9ed7eadc1898a503e0466bf2585615ca84debd1e7f0b6164736f6c63430008190033
[codex:1344852] 
[codex:1344852] thinking
[codex:1344852] **Examining contract for vulnerabilities**
[codex:1344852] exec
[codex:1344852] /bin/bash -lc "python - <<'PY'
[codex:1344852] import binascii, textwrap, sys
[codex:1344852] code=open('/tmp/codex-multi-m3b50o_i/BYTECODE_BUNDLE.txt').read().split('FILE: runtime_bytecode.hex')[1]
[codex:1344852] # extract hex string starting with 0x
[codex:1344852] import re
[codex:1344852] m=re.search(r'0x[0-9a-fA-F]+', code)
[codex:1344852] hexstr=m.group(0)[2:]
[codex:1344852] # disassemble
[codex:1344852] opcodes={
[codex:1344852] 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:1344852] 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:1344852] 0x20:'SHA3',
[codex:1344852] 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:1344852] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1344852] 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:1344852] 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',
[codex:1344852] 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:1344852] 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:1344852] 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:1344852] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1344852] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1344852] 
[codex:1344852] b=binascii.unhexlify(hexstr)
[codex:1344852] 
[codex:1344852] pc=0
[codex:1344852] out=[]
[codex:1344852] while pc<len(b):
[codex:1344852]     op=b[pc]
[codex:1344852]     if op>=0x60 and op<=0x7f:
[codex:1344852]         n=op-0x5f
[codex:1344852]         data=b[pc+1:pc+1+n]
[codex:1344852]         out.append(f\"{pc:04x}: {opcodes.get(op, hex(op))} 0x{data.hex()}\")
[codex:1344852]         pc+=1+n
[codex:1344852]     else:
[codex:1344852]         out.append(f\"{pc:04x}: {opcodes.get(op, hex(op))}\")
[codex:1344852]         pc+=1
[codex:1344852] 
[codex:1344852] # print a subset around 0x02f0 etc
[codex:1344852] for line in out[0:300]:
[codex:1344852]     pass
[codex:1344852] 
[codex:1344852] # Print around 0x02f0,0x03d0 etc
[codex:1344852] 
[codex:1344852] def print_range(start,end):
[codex:1344852]     for line in out:
[codex:1344852]         pc=int(line.split(':')[0],16)
[codex:1344852]         if start<=pc<=end:
[codex:1344852]             print(line)
[codex:1344852] 
[codex:1344852] print('---0x02e0-0x0400---')
[codex:1344852] print_range(0x02e0,0x0400)
[codex:1344852] print('---0x0b00-0x0c80---')
[codex:1344852] print_range(0x0b00,0x0c80)
[codex:1344852] print('---0x03d0-0x0800---')
[codex:1344852] print_range(0x03d0,0x0800)
[codex:1344852] print('---0x0d70-0x0e90---')
[codex:1344852] print_range(0x0d70,0x0e90)
[codex:1344852] PY" in /tmp/codex-multi-m3b50o_i succeeded in 38ms:
[codex:1344852] ---0x02e0-0x0400---
[codex:1344852] 02e1: PUSH2 0x02eb
[codex:1344852] 02e4: CALLDATASIZE
[codex:1344852] 02e5: PUSH1 0x04
[codex:1344852] 02e7: PUSH2 0x1832
[codex:1344852] 02ea: JUMP
[codex:1344852] 02eb: JUMPDEST
[codex:1344852] 02ec: PUSH2 0x0aa8
[codex:1344852] 02ef: JUMP
[codex:1344852] 02f0: JUMPDEST
[codex:1344852] 02f1: PUSH2 0x02f8
[codex:1344852] 02f4: PUSH2 0x0b21
[codex:1344852] 02f7: JUMP
[codex:1344852] 02f8: JUMPDEST
[codex:1344852] 02f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:1344852] 030e: DUP4
[codex:1344852] 030f: AND
[codex:1344852] 0310: PUSH2 0x0360
[codex:1344852] 0313: JUMPI
[codex:1344852] 0314: PUSH1 0x40
[codex:1344852] 
[codex:1344852] thinking
[codex:1344852] **Analyzing function access and ETH transfers**
[codex:1344852] exec
[codex:1344852] /bin/bash -lc "python - <<'PY'
[codex:1344852] import binascii, re
[codex:1344852] code=open('/tmp/codex-multi-m3b50o_i/BYTECODE_BUNDLE.txt').read()
[codex:1344852] hexstr=re.search(r'0x[0-9a-fA-F]+', code).group(0)[2:]
[codex:1344852] b=binascii.unhexlify(hexstr)
[codex:1344852] # simple disasm
[codex:1344852] opcodes={
[codex:1344852] 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:1344852] 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:1344852] 0x20:'SHA3',
[codex:1344852] 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:1344852] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1344852] 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:1344852] 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',
[codex:1344852] 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:1344852] 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:1344852] 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:1344852] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1344852] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1344852] 
[codex:1344852] pc=0
[codex:1344852] out=[]
[codex:1344852] while pc<len(b):
[codex:1344852]     op=b[pc]
[codex:1344852]     if 0x60<=op<=0x7f:
[codex:1344852]         n=op-0x5f
[codex:1344852]         data=b[pc+1:pc+1+n]
[codex:1344852]         out.append((pc,f\"{opcodes.get(op,hex(op))} 0x{data.hex()}\"))
[codex:1344852]         pc+=1+n
[codex:1344852]     else:
[codex:1344852]         out.append((pc,opcodes.get(op,hex(op))))
[codex:1344852]         pc+=1
[codex:1344852] 
[codex:1344852] # print range
[codex:1344852] for pc,ins in out:
[codex:1344852]     if 0x0a80<=pc<=0x0b60:
[codex:1344852]         print(f\"{pc:04x}: {ins}\")
[codex:1344852] PY" in /tmp/codex-multi-m3b50o_i succeeded in 30ms:
[codex:1344852] 0a90: PUSH1 0x64
[codex:1344852] 0a92: DUP3
[codex:1344852] 0a93: ADD
[codex:1344852] 0a94: MSTORE
[codex:1344852] 0a95: PUSH1 0x84
[codex:1344852] 0a97: ADD
[codex:1344852] 0a98: PUSH2 0x0357
[codex:1344852] 0a9b: JUMP
[codex:1344852] 0a9c: JUMPDEST
[codex:1344852] 0a9d: PUSH2 0x0aa5
[codex:1344852] 0aa0: DUP2
[codex:1344852] 0aa1: PUSH2 0x1082
[codex:1344852] 0aa4: JUMP
[codex:1344852] 0aa5: JUMPDEST
[codex:1344852] 0aa6: POP
[codex:1344852] 0aa7: JUMP
[codex:1344852] 0aa8: JUMPDEST
[codex:1344852] 0aa9: PUSH2 0x0ab0
[codex:1344852] 0aac: PUSH2 0x0b21
[codex:1344852] 0aaf: JUMP
[codex:1344852] 
[codex:1344852] thinking
[codex:1344852] **Analyzing ETH transfer and owner-only functions**
[codex:1344852] 
[codex:1344852] I'm exploring a likely owner-only function that transfers ETH by calling a helper at 0x0de4, which seems to perform a low-level CALL to send ETH to a recipient address with a specific amount. I’m also mapping other external functions to guess their purpose, such as paused states and signer settings, while checking for proper access control. This disassembly leads me to suspect functions like `withdraw(address,uint256)` or `transferETH(address,uint256)` with owner restrictions, so I’m carefully verifying no unguarded owner or signer changes exist.
[codex:1344852] exec
[codex:1344852] /bin/bash -lc "python - <<'PY'
[codex:1344852] import binascii, re
[codex:1344852] code=open('/tmp/codex-multi-m3b50o_i/BYTECODE_BUNDLE.txt').read()
[codex:1344852] hexstr=re.search(r'0x[0-9a-fA-F]+', code).group(0)[2:]
[codex:1344852] b=binascii.unhexlify(hexstr)
[codex:1344852] opcodes={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',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',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',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',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1344852] 
[codex:1344852] pc=0
[codex:1344852] out=[]
[codex:1344852] while pc<len(b):
[codex:1344852]     op=b[pc]
[codex:1344852]     if 0x60<=op<=0x7f:
[codex:1344852]         n=op-0x5f
[codex:1344852]         data=b[pc+1:pc+1+n]
[codex:1344852]         out.append((pc,f\"{opcodes.get(op,hex(op))} 0x{data.hex()}\"))
[codex:1344852]         pc+=1+n
[codex:1344852]     else:
[codex:1344852]         out.append((pc,opcodes.get(op,hex(op))))
[codex:1344852]         pc+=1
[codex:1344852] 
[codex:1344852] for pc,ins in out:
[codex:1344852]     if 0x0830<=pc<=0x0920:
[codex:1344852]         print(f\"{pc:04x}: {ins}\")
[codex:1344852] PY" in /tmp/codex-multi-m3b50o_i succeeded in 36ms:
[codex:1344852] 0830: SWAP1
[codex:1344852] 0831: CALLER
[codex:1344852] 0832: SWAP1
[codex:1344852] 0833: PUSH32 0xd1156c83da18470c12fae89ffa811f65a38db2f5b87da6aacd2eecf395d2cceb
[codex:1344852] 0854: SWAP1
[codex:1344852] 0855: PUSH1 0x20
[codex:1344852] 0857: ADD
[codex:1344852] 0858: PUSH1 0x40
[codex:1344852] 085a: MLOAD
[codex:1344852] 085b: DUP1
[codex:1344852] 085c: SWAP2
[codex:1344852] 085d: SUB
[codex:1344852] 085e: SWAP1
[codex:1344852] 085f: LOG3
[codex:1344852] 0860: POP
[codex:1344852] 0861: POP
[codex:1344852] 0862: POP
[codex:1344852] 0863: PUSH2 0x086b
[codex:1344852] 0866: PUSH1 0x01
[codex:1344852] 0868: DUP1
[codex:1344852] 
[codex:1344852] thinking
[codex:1344852] **Analyzing storage slots in disassembly**
[codex:1344852] exec
[codex:1344852] /bin/bash -lc "python - <<'PY'
[codex:1344852] import binascii, re
[codex:1344852] code=open('/tmp/codex-multi-m3b50o_i/BYTECODE_BUNDLE.txt').read()
[codex:1344852] hexstr=re.search(r'0x[0-9a-fA-F]+', code).group(0)[2:]
[codex:1344852] b=binascii.unhexlify(hexstr)
[codex:1344852] opcodes={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',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',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',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',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1344852] 
[codex:1344852] pc=0
[codex:1344852] out=[]
[codex:1344852] while pc<len(b):
[codex:1344852]     op=b[pc]
[codex:1344852]     if 0x60<=op<=0x7f:
[codex:1344852]         n=op-0x5f
[codex:1344852]         data=b[pc+1:pc+1+n]
[codex:1344852]         out.append((pc,f\"{opcodes.get(op,hex(op))} 0x{data.hex()}\"))
[codex:1344852]         pc+=1+n
[codex:1344852]     else:
[codex:1344852]         out.append((pc,opcodes.get(op,hex(op))))
[codex:1344852]         pc+=1
[codex:1344852] 
[codex:1344852] for pc,ins in out:
[codex:1344852]     if 0x18a0<=pc<=0x1900:
[codex:1344852]         print(f\"{pc:04x}: {ins}\")
[codex:1344852] PY" in /tmp/codex-multi-m3b50o_i succeeded in 26ms:
[codex:1344852] 18bc: 0x5f
[codex:1344852] 18bd: MSTORE
[codex:1344852] 18be: PUSH1 0x32
[codex:1344852] 18c0: PUSH1 0x04
[codex:1344852] 18c2: MSTORE
[codex:1344852] 18c3: PUSH1 0x24
[codex:1344852] 18c5: 0x5f
[codex:1344852] 18c6: REVERT
[codex:1344852] 18c7: JUMPDEST
[codex:1344852] 18c8: DUP1
[codex:1344852] 18c9: DUP3
[codex:1344852] 18ca: ADD
[codex:1344852] 18cb: DUP1
[codex:1344852] 18cc: DUP3
[codex:1344852] 18cd: GT
[codex:1344852] 18ce: ISZERO
[codex:1344852] 18cf: PUSH2 0x0db6
[codex:1344852] 18d2: JUMPI
[codex:1344852] 18d3: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
[codex:1344852] 18f4: 0x5f
[codex:1344852] 
[codex:1344852] thinking
[codex:1344852] **Analyzing safe math helper and transfer calls**
[codex:1344852] exec
[codex:1344852] /bin/bash -lc "python - <<'PY'
[codex:1344852] import binascii, re
[codex:1344852] code=open('/tmp/codex-multi-m3b50o_i/BYTECODE_BUNDLE.txt').read()
[codex:1344852] hexstr=re.search(r'0x[0-9a-fA-F]+', code).group(0)[2:]
[codex:1344852] b=binascii.unhexlify(hexstr)
[codex:1344852] 
[codex:1344852] opcodes={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',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',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',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',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1344852] 
[codex:1344852] pc=0
[codex:1344852] out=[]
[codex:1344852] while pc<len(b):
[codex:1344852]     op=b[pc]
[codex:1344852]     if 0x60<=op<=0x7f:
[codex:1344852]         n=op-0x5f
[codex:1344852]         data=b[pc+1:pc+1+n]
[codex:1344852]         out.append((pc,f\"{opcodes.get(op,hex(op))} 0x{data.hex()}\"))
[codex:1344852]         pc+=1+n
[codex:1344852]     else:
[codex:1344852]         out.append((pc,opcodes.get(op,hex(op))))
[codex:1344852]         pc+=1
[codex:1344852] 
[codex:1344852] for pc,ins in out:
[codex:1344852]     if 0x07f0<=pc<=0x0875:
[codex:1344852]         print(f\"{pc:04x}: {ins}\")
[codex:1344852] PY" in /tmp/codex-multi-m3b50o_i succeeded in 31ms:
[codex:1344852] 07fc: PUSH1 0x44
[codex:1344852] 07fe: DUP3
[codex:1344852] 07ff: ADD
[codex:1344852] 0800: MSTORE
[codex:1344852] 0801: PUSH1 0x64
[codex:1344852] 0803: ADD
[codex:1344852] 0804: PUSH2 0x0357
[codex:1344852] 0807: JUMP
[codex:1344852] 0808: JUMPDEST
[codex:1344852] 0809: PUSH2 0x0812
[codex:1344852] 080c: DUP7
[codex:1344852] 080d: DUP3
[codex:1344852] 080e: PUSH2 0x0de4
[codex:1344852] 0811: JUMP
[codex:1344852] 0812: JUMPDEST
[codex:1344852] 0813: PUSH1 0x40
[codex:1344852] 0815: MLOAD
[codex:1344852] 0816: DUP2
[codex:1344852] 0817: DUP2
[codex:1344852] 0818: MSTORE
[codex:1344852] 
[codex:1344852] 
[codex:1344852] thinking
[codex:1344852] **Analyzing ETH transfer helper and claim logic**
[codex:1344852] 
[codex:1344852] I'm dissecting the function at 0x0de4 and confirming it’s an ETH transfer helper using a raw CALL with value but no calldata, likely for sending ETH in the claim function. I’m also inspecting the stack and mapping usage around the claim process to understand how claimed amounts and flags are stored and validated, checking for access controls and potential vulnerabilities in the signature and claim logic.
[codex:1344852] thinking
[codex:1344852] **Examining claim loop and event emission**
[codex:1344852] 
[codex:1344852] I'm simulating stack behavior to clarify how the claim function processes arrays of recipients and amounts, and how it emits events logging claims. It looks like batch claims let a caller submit multiple recipients’ claims, and the contract transfers ETH accordingly while logging `Claimed` events referencing both recipient and caller.
[codex:1344852] exec
[codex:1344852] /bin/bash -lc "python - <<'PY'
[codex:1344852] import binascii, re
[codex:1344852] code=open('/tmp/codex-multi-m3b50o_i/BYTECODE_BUNDLE.txt').read()
[codex:1344852] hexstr=re.search(r'0x[0-9a-fA-F]+', code).group(0)[2:]
[codex:1344852] b=binascii.unhexlify(hexstr)
[codex:1344852] 
[codex:1344852] # disasm helper
[codex:1344852] opcodes={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',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',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',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',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1344852] 
[codex:1344852] pc=0
[codex:1344852] out=[]
[codex:1344852] while pc<len(b):
[codex:1344852]     op=b[pc]
[codex:1344852]     if 0x60<=op<=0x7f:
[codex:1344852]         n=op-0x5f
[codex:1344852]         data=b[pc+1:pc+1+n]
[codex:1344852]         out.append((pc,f\"{opcodes.get(op,hex(op))} 0x{data.hex()}\"))
[codex:1344852]         pc+=1+n
[codex:1344852]     else:
[codex:1344852]         out.append((pc,opcodes.get(op,hex(op))))
[codex:1344852]         pc+=1
[codex:1344852] 
[codex:1344852] for pc,ins in out:
[codex:1344852]     if 0x1600<=pc<=0x1685:
[codex:1344852]         print(f\"{pc:04x}: {ins}\")
[codex:1344852] PY" in /tmp/codex-multi-m3b50o_i succeeded in 26ms:
[codex:1344852] 1601: DUP4
[codex:1344852] 1602: ADD
[codex:1344852] 1603: SWAP2
[codex:1344852] 1604: POP
[codex:1344852] 1605: DUP4
[codex:1344852] 1606: PUSH1 0x20
[codex:1344852] 1608: DUP3
[codex:1344852] 1609: PUSH1 0x05
[codex:1344852] 160b: SHL
[codex:1344852] 160c: DUP6
[codex:1344852] 160d: ADD
[codex:1344852] 160e: ADD
[codex:1344852] 160f: GT
[codex:1344852] 1610: ISZERO
[codex:1344852] 1611: PUSH2 0x1618
[codex:1344852] 1614: JUMPI
[codex:1344852] 1615: 0x5f
[codex:1344852] 1616: DUP1
[codex:1344852] 1617: REVERT
[codex:1344852] 1618: JUMPDEST
[codex:1344852] 
[codex:1344852] thinking
[codex:1344852] **Analyzing ABI decoder setup**
[codex:1344852] exec
[codex:1344852] /bin/bash -lc "python - <<'PY'
[codex:1344852] import binascii, re
[codex:1344852] code=open('/tmp/codex-multi-m3b50o_i/BYTECODE_BUNDLE.txt').read()
[codex:1344852] hexstr=re.search(r'0x[0-9a-fA-F]+', code).group(0)[2:]
[codex:1344852] b=binascii.unhexlify(hexstr)
[codex:1344852] 
[codex:1344852] opcodes={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',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',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',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',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1344852] 
[codex:1344852] pc=0
[codex:1344852] out=[]
[codex:1344852] while pc<len(b):
[codex:1344852]     op=b[pc]
[codex:1344852]     if 0x60<=op<=0x7f:
[codex:1344852]         n=op-0x5f
[codex:1344852]         data=b[pc+1:pc+1+n]
[codex:1344852]         out.append((pc,f\"{opcodes.get(op,hex(op))} 0x{data.hex()}\"))
[codex:1344852]         pc+=1+n
[codex:1344852]     else:
[codex:1344852]         out.append((pc,opcodes.get(op,hex(op))))
[codex:1344852]         pc+=1
[codex:1344852] 
[codex:1344852] for pc,ins in out:
[codex:1344852]     if 0x1680<=pc<=0x16f5:
[codex:1344852]         print(f\"{pc:04x}: {ins}\")
[codex:1344852] PY" in /tmp/codex-multi-m3b50o_i succeeded in 26ms:
[codex:1344852] 1680: SWAP6
[codex:1344852] 1681: POP
[codex:1344852] 1682: DUP6
[codex:1344852] 1683: SWAP2
[codex:1344852] 1684: POP
[codex:1344852] 1685: PUSH2 0x1690
[codex:1344852] 1688: PUSH1 0x40
[codex:1344852] 168a: DUP12
[codex:1344852] 168b: ADD
[codex:1344852] 168c: PUSH2 0x1576
[codex:1344852] 168f: JUMP
[codex:1344852] 1690: JUMPDEST
[codex:1344852] 1691: SWAP5
[codex:1344852] 1692: POP
[codex:1344852] 1693: PUSH1 0x60
[codex:1344852] 1695: DUP11
[codex:1344852] 1696: ADD
[codex:1344852] 1697: CALLDATALOAD
[codex:1344852] 1698: SWAP2
[codex:1344852] 1699: POP
[codex:1344852] 
[codex:1344852] thinking
[codex:1344852] **Analyzing batch claim function and signature verification**
[codex:1344852] exec
[codex:1344852] /bin/bash -lc "python - <<'PY'
[codex:1344852] import binascii, re
[codex:1344852] code=open('/tmp/codex-multi-m3b50o_i/BYTECODE_BUNDLE.txt').read()
[codex:1344852] hexstr=re.search(r'0x[0-9a-fA-F]+', code).group(0)[2:]
[codex:1344852] b=binascii.unhexlify(hexstr)
[codex:1344852] 
[codex:1344852] opcodes={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',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',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',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',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1344852] 
[codex:1344852] pc=0
[codex:1344852] out=[]
[codex:1344852] while pc<len(b):
[codex:1344852]     op=b[pc]
[codex:1344852]     if 0x60<=op<=0x7f:
[codex:1344852]         n=op-0x5f
[codex:1344852]         data=b[pc+1:pc+1+n]
[codex:1344852]         out.append((pc,f\"{opcodes.get(op,hex(op))} 0x{data.hex()}\"))
[codex:1344852]         pc+=1+n
[codex:1344852]     else:
[codex:1344852]         out.append((pc,opcodes.get(op,hex(op))))
[codex:1344852]         pc+=1
[codex:1344852] 
[codex:1344852] for pc,ins in out:
[codex:1344852]     if 0x0ec0<=pc<=0x1040:
[codex:1344852]         print(f\"{pc:04x}: {ins}\")
[codex:1344852] PY" in /tmp/codex-multi-m3b50o_i succeeded in 26ms:
[codex:1344852] 0ec4: PUSH1 0x64
[codex:1344852] 0ec6: DUP3
[codex:1344852] 0ec7: ADD
[codex:1344852] 0ec8: MSTORE
[codex:1344852] 0ec9: PUSH1 0x84
[codex:1344852] 0ecb: ADD
[codex:1344852] 0ecc: PUSH2 0x0357
[codex:1344852] 0ecf: JUMP
[codex:1344852] 0ed0: JUMPDEST
[codex:1344852] 0ed1: 0x5f
[codex:1344852] 0ed2: ADDRESS
[codex:1344852] 0ed3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:1344852] 0ee8: PUSH32 0x000000000000000000000000a4245f5d3de21db029642f6ee4a31fe513fc5ad8
[codex:1344852] 0f09: AND
[codex:1344852] 0f0a: EQ
[codex:1344852] 0f0b: DUP1
[codex:1344852] 0f0c: ISZERO
[codex:1344852] 0f0d: PUSH2 0x0f35
[codex:1344852] 0f10: JUMPI
[codex:1344852] 0f11: POP
[codex:1344852] 
[codex:1344852] thinking
[codex:1344852] **Analyzing access control and dispatch functions**
[codex:1344852] exec
[codex:1344852] /bin/bash -lc "python - <<'PY'
[codex:1344852] import binascii, re
[codex:1344852] code=open('/tmp/codex-multi-m3b50o_i/BYTECODE_BUNDLE.txt').read()
[codex:1344852] hexstr=re.search(r'0x[0-9a-fA-F]+', code).group(0)[2:]
[codex:1344852] b=binascii.unhexlify(hexstr)
[codex:1344852] 
[codex:1344852] opcodes={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',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',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',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',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1344852] 
[codex:1344852] pc=0
[codex:1344852] out=[]
[codex:1344852] while pc<len(b):
[codex:1344852]     op=b[pc]
[codex:1344852]     if 0x60<=op<=0x7f:
[codex:1344852]         n=op-0x5f
[codex:1344852]         data=b[pc+1:pc+1+n]
[codex:1344852]         out.append((pc,f\"{opcodes.get(op,hex(op))} 0x{data.hex()}\"))
[codex:1344852]         pc+=1+n
[codex:1344852]     else:
[codex:1344852]         out.append((pc,opcodes.get(op,hex(op))))
[codex:1344852]         pc+=1
[codex:1344852] 
[codex:1344852] for pc,ins in out:
[codex:1344852]     if 0x0960<=pc<=0x0a60:
[codex:1344852]         print(f\"{pc:04x}: {ins}\")
[codex:1344852] PY" in /tmp/codex-multi-m3b50o_i succeeded in 25ms:
[codex:1344852] 096b: AND
[codex:1344852] 096c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:1344852] 0981: SWAP3
[codex:1344852] 0982: SWAP1
[codex:1344852] 0983: SWAP3
[codex:1344852] 0984: AND
[codex:1344852] 0985: SWAP2
[codex:1344852] 0986: SWAP1
[codex:1344852] 0987: SWAP2
[codex:1344852] 0988: OR
[codex:1344852] 0989: SWAP1
[codex:1344852] 098a: SSTORE
[codex:1344852] 098b: JUMP
[codex:1344852] 098c: JUMPDEST
[codex:1344852] 098d: PUSH2 0x0994
[codex:1344852] 0990: PUSH2 0x0b21
[codex:1344852] 0993: JUMP
[codex:1344852] 0994: JUMPDEST
[codex:1344852] 0995: PUSH2 0x0892
[codex:1344852] 0998: 0x5f
[codex:1344852] 
[codex:1344852] thinking
[codex:1344852] **Analyzing owner-only functions and reentrancy guards**
[codex:1344852] 
[codex:1344852] I'm investigating owner-only functions to confirm no unprotected admin actions, focusing on external calls that could transfer value. The claim function sets state before transfers, which might prevent reentrancy, and I’m examining storage at slot1 and calls around 0x0cd8 and 0x0d1b that suggest a reentrancy guard mechanism. I'll keep unpacking these details to understand protection mechanisms better.
[codex:1344852] exec
[codex:1344852] /bin/bash -lc "python - <<'PY'
[codex:1344852] import binascii, re
[codex:1344852] code=open('/tmp/codex-multi-m3b50o_i/BYTECODE_BUNDLE.txt').read()
[codex:1344852] hexstr=re.search(r'0x[0-9a-fA-F]+', code).group(0)[2:]
[codex:1344852] b=binascii.unhexlify(hexstr)
[codex:1344852] 
[codex:1344852] opcodes={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',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',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',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',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1344852] 
[codex:1344852] pc=0
[codex:1344852] out=[]
[codex:1344852] while pc<len(b):
[codex:1344852]     op=b[pc]
[codex:1344852]     if 0x60<=op<=0x7f:
[codex:1344852]         n=op-0x5f
[codex:1344852]         data=b[pc+1:pc+1+n]
[codex:1344852]         out.append((pc,f\"{opcodes.get(op,hex(op))} 0x{data.hex()}\"))
[codex:1344852]         pc+=1+n
[codex:1344852]     else:
[codex:1344852]         out.append((pc,opcodes.get(op,hex(op))))
[codex:1344852]         pc+=1
[codex:1344852] 
[codex:1344852] for pc,ins in out:
[codex:1344852]     if 0x0cc0<=pc<=0x0d30:
[codex:1344852]         print(f\"{pc:04x}: {ins}\")
[codex:1344852] PY" in /tmp/codex-multi-m3b50o_i succeeded in 25ms:
[codex:1344852] 0cc5: PUSH1 0x44
[codex:1344852] 0cc7: DUP3
[codex:1344852] 0cc8: ADD
[codex:1344852] 0cc9: MSTORE
[codex:1344852] 0cca: PUSH1 0x64
[codex:1344852] 0ccc: ADD
[codex:1344852] 0ccd: PUSH2 0x0357
[codex:1344852] 0cd0: JUMP
[codex:1344852] 0cd1: JUMPDEST
[codex:1344852] 0cd2: POP
[codex:1344852] 0cd3: POP
[codex:1344852] 0cd4: POP
[codex:1344852] 0cd5: POP
[codex:1344852] 0cd6: POP
[codex:1344852] 0cd7: JUMP
[codex:1344852] 0cd8: JUMPDEST
[codex:1344852] 0cd9: PUSH1 0x02
[codex:1344852] 0cdb: PUSH1 0x01
[codex:1344852] 0cdd: SLOAD
[codex:1344852] 0cde: SUB
[codex:1344852] 
[codex:1344852] thinking
[codex:1344852] **Analyzing reentrancy guard logic**
[codex:1344852] exec
[codex:1344852] /bin/bash -lc "python - <<'PY'
[codex:1344852] import binascii, re
[codex:1344852] code=open('/tmp/codex-multi-m3b50o_i/BYTECODE_BUNDLE.txt').read()
[codex:1344852] hexstr=re.search(r'0x[0-9a-fA-F]+', code).group(0)[2:]
[codex:1344852] b=binascii.unhexlify(hexstr)
[codex:1344852] 
[codex:1344852] # disasm
[codex:1344852] opcodes={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',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',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',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',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1344852] 
[codex:1344852] pc=0
[codex:1344852] out=[]
[codex:1344852] while pc<len(b):
[codex:1344852]     op=b[pc]
[codex:1344852]     if 0x60<=op<=0x7f:
[codex:1344852]         n=op-0x5f
[codex:1344852]         data=b[pc+1:pc+1+n]
[codex:1344852]         out.append((pc,f\"{opcodes.get(op,hex(op))} 0x{data.hex()}\"))
[codex:1344852]         pc+=1+n
[codex:1344852]     else:
[codex:1344852]         out.append((pc,opcodes.get(op,hex(op))))
[codex:1344852]         pc+=1
[codex:1344852] 
[codex:1344852] for pc,ins in out:
[codex:1344852]     if 0x0d1b<=pc<=0x0d70:
[codex:1344852]         print(f\"{pc:04x}: {ins}\")
[codex:1344852] PY" in /tmp/codex-multi-m3b50o_i succeeded in 34ms:
[codex:1344852] 0d1b: JUMPDEST
[codex:1344852] 0d1c: 0x5f
[codex:1344852] 0d1d: SLOAD
[codex:1344852] 0d1e: PUSH21 0x010000000000000000000000000000000000000000
[codex:1344852] 0d34: SWAP1
[codex:1344852] 0d35: DIV
[codex:1344852] 0d36: PUSH1 0xff
[codex:1344852] 0d38: AND
[codex:1344852] 0d39: ISZERO
[codex:1344852] 0d3a: PUSH2 0x0892
[codex:1344852] 0d3d: JUMPI
[codex:1344852] 0d3e: PUSH1 0x40
[codex:1344852] 0d40: MLOAD
[codex:1344852] 0d41: PUSH32 0xd93c066500000000000000000000000000000000000000000000000000000000
[codex:1344852] 0d62: DUP2
[codex:1344852] 0d63: MSTORE
[codex:1344852] 0d64: PUSH1 0x04
[codex:1344852] 0d66: ADD
[codex:1344852] 0d67: PUSH1 0x40
[codex:1344852] 0d69: MLOAD
[codex:1344852] 
[codex:1344852] thinking
[codex:1344852] **Analyzing reentrancy and signature checks**
[codex:1344852] exec
[codex:1344852] /bin/bash -lc "python - <<'PY'
[codex:1344852] import binascii, re
[codex:1344852] code=open('/tmp/codex-multi-m3b50o_i/BYTECODE_BUNDLE.txt').read()
[codex:1344852] hexstr=re.search(r'0x[0-9a-fA-F]+', code).group(0)[2:]
[codex:1344852] b=binascii.unhexlify(hexstr)
[codex:1344852] 
[codex:1344852] # disasm
[codex:1344852] opcodes={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',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',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',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',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1344852] 
[codex:1344852] pc=0
[codex:1344852] out=[]
[codex:1344852] while pc<len(b):
[codex:1344852]     op=b[pc]
[codex:1344852]     if 0x60<=op<=0x7f:
[codex:1344852]         n=op-0x5f
[codex:1344852]         data=b[pc+1:pc+1+n]
[codex:1344852]         out.append((pc,f\"{opcodes.get(op,hex(op))} 0x{data.hex()}\"))
[codex:1344852]         pc+=1+n
[codex:1344852]     else:
[codex:1344852]         out.append((pc,opcodes.get(op,hex(op))))
[codex:1344852]         pc+=1
[codex:1344852] 
[codex:1344852] for pc,ins in out:
[codex:1344852]     if 0x11a0<=pc<=0x1250:
[codex:1344852]         print(f\"{pc:04x}: {ins}\")
[codex:1344852] PY" in /tmp/codex-multi-m3b50o_i succeeded in 28ms:
[codex:1344852] 11b8: PUSH1 0x03
[codex:1344852] 11ba: PUSH2 0x135d
[codex:1344852] 11bd: JUMP
[codex:1344852] 11be: JUMPDEST
[codex:1344852] 11bf: 0x5f
[codex:1344852] 11c0: DUP1
[codex:1344852] 11c1: 0x5f
[codex:1344852] 11c2: DUP4
[codex:1344852] 11c3: MLOAD
[codex:1344852] 11c4: PUSH1 0x41
[codex:1344852] 11c6: SUB
[codex:1344852] 11c7: PUSH2 0x11f5
[codex:1344852] 11ca: JUMPI
[codex:1344852] 11cb: PUSH1 0x20
[codex:1344852] 11cd: DUP5
[codex:1344852] 11ce: ADD
[codex:1344852] 11cf: MLOAD
[codex:1344852] 11d0: PUSH1 0x40
[codex:1344852] 11d2: DUP6
[codex:1344852] 11d3: ADD
[codex:1344852] 
[codex:1344852] thinking
[codex:1344852] **Analyzing signature parsing constants**
[codex:1344852] exec
[codex:1344852] /bin/bash -lc "python - <<'PY'
[codex:1344852] import binascii, re
[codex:1344852] code=open('/tmp/codex-multi-m3b50o_i/BYTECODE_BUNDLE.txt').read()
[codex:1344852] hexstr=re.search(r'0x[0-9a-fA-F]+', code).group(0)[2:]
[codex:1344852] b=binascii.unhexlify(hexstr)
[codex:1344852] 
[codex:1344852] # disasm
[codex:1344852] opcodes={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',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',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',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',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1344852] 
[codex:1344852] pc=0
[codex:1344852] out=[]
[codex:1344852] while pc<len(b):
[codex:1344852]     op=b[pc]
[codex:1344852]     if 0x60<=op<=0x7f:
[codex:1344852]         n=op-0x5f
[codex:1344852]         data=b[pc+1:pc+1+n]
[codex:1344852]         out.append((pc,f\"{opcodes.get(op,hex(op))} 0x{data.hex()}\"))
[codex:1344852]         pc+=1+n
[codex:1344852]     else:
[codex:1344852]         out.append((pc,opcodes.get(op,hex(op))))
[codex:1344852]         pc+=1
[codex:1344852] 
[codex:1344852] for pc,ins in out:
[codex:1344852]     if 0x13f0<=pc<=0x1455:
[codex:1344852]         print(f\"{pc:04x}: {ins}\")
[codex:1344852] PY" in /tmp/codex-multi-m3b50o_i succeeded in 30ms:
[codex:1344852] 13f0: JUMPI
[codex:1344852] 13f1: DUP3
[codex:1344852] 13f2: SWAP1
[codex:1344852] 13f3: SUB
[codex:1344852] 13f4: PUSH1 0x1f
[codex:1344852] 13f6: AND
[codex:1344852] 13f7: DUP3
[codex:1344852] 13f8: ADD
[codex:1344852] 13f9: SWAP2
[codex:1344852] 13fa: JUMPDEST
[codex:1344852] 13fb: POP
[codex:1344852] 13fc: POP
[codex:1344852] 13fd: POP
[codex:1344852] 13fe: POP
[codex:1344852] 13ff: POP
[codex:1344852] 1400: SWAP1
[codex:1344852] 1401: POP
[codex:1344852] 1402: PUSH2 0x0db6
[codex:1344852] 1405: JUMP
[codex:1344852] 1406: JUMPDEST
[codex:1344852] 
[codex:1344852] thinking
[codex:1344852] **Confirming no exploitable paths**
[codex:1344852] codex
[codex:1344852] {"no_findings":true,"summary":"No concrete, exploitable profit path identified from the provided runtime bytecode alone.","findings":[]}
[codex:1344852] tokens used
[codex:1344852] 89,849
[codex:1344852] {"no_findings":true,"summary":"No concrete, exploitable profit path identified from the provided runtime bytecode alone.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-03T00:07:12.432874+00:00",
        "returncode": 0
    },
    "summary": "No concrete, exploitable profit path identified from the provided runtime bytecode alone.",
    "raw_final": {
        "summary": "No concrete, exploitable profit path identified from the provided runtime bytecode alone.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
3
EXT*/BALANCE
1
Total opcodes
3192
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x00dc
0000000c: JUMPI
0000000d: PUSH0
0000000e: CALLDATALOAD
0000000f: PUSH1 0xe0
00000011: SHR
00000012: DUP1
00000013: PUSH4 0x715018a6
00000018: GT
00000019: PUSH2 0x007c
0000001c: JUMPI
0000001d: DUP1
0000001e: PUSH4 0x8da5cb5b
00000023: GT
00000024: PUSH2 0x0057
00000027: JUMPI
00000028: DUP1
00000029: PUSH4 0x8da5cb5b
0000002e: EQ
0000002f: PUSH2 0x025b
00000032: JUMPI
00000033: DUP1
00000034: PUSH4 0xdbe7e3bd
00000039: EQ
0000003a: PUSH2 0x0284
0000003d: JUMPI
0000003e: DUP1
0000003f: PUSH4 0xf2fde38b
00000044: EQ
00000045: PUSH2 0x02b2
00000048: JUMPI
00000049: DUP1
0000004a: PUSH4 0xf3fef3a3
0000004f: EQ
00000050: PUSH2 0x02d1
00000053: JUMPI
00000054: PUSH0
00000055: DUP1
00000056: REVERT
00000057: JUMPDEST
00000058: DUP1
00000059: PUSH4 0x715018a6
0000005e: EQ
0000005f: PUSH2 0x020c
00000062: JUMPI
00000063: DUP1
00000064: PUSH4 0x8456cb59
00000069: EQ
0000006a: PUSH2 0x0220
0000006d: JUMPI
0000006e: DUP1
0000006f: PUSH4 0x84b0196e
00000074: EQ
00000075: PUSH2 0x0234
00000078: JUMPI
00000079: PUSH0
0000007a: DUP1
0000007b: REVERT
0000007c: JUMPDEST
0000007d: DUP1
0000007e: PUSH4 0x3644e515
00000083: GT
00000084: PUSH2 0x00b7
00000087: JUMPI
00000088: DUP1
00000089: PUSH4 0x3644e515
0000008e: EQ
0000008f: PUSH2 0x017d
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0x3f4ba83a
00000099: EQ
0000009a: PUSH2 0x019f
0000009d: JUMPI
0000009e: DUP1
0000009f: PUSH4 0x5c975abb
000000a4: EQ
000000a5: PUSH2 0x01b3
000000a8: JUMPI
000000a9: DUP1
000000aa: PUSH4 0x6c19e783
000000af: EQ
000000b0: PUSH2 0x01ed
000000b3: JUMPI
000000b4: PUSH0
000000b5: DUP1
000000b6: REVERT
000000b7: JUMPDEST
000000b8: DUP1
000000b9: PUSH4 0x01e33667
000000be: EQ
000000bf: PUSH2 0x00e7
000000c2: JUMPI
000000c3: DUP1
000000c4: PUSH4 0x19b22887
000000c9: EQ
000000ca: PUSH2 0x0108
000000cd: JUMPI
000000ce: DUP1
000000cf: PUSH4 0x238ac933
000000d4: EQ
000000d5: PUSH2 0x0127
000000d8: JUMPI
000000d9: PUSH0
000000da: DUP1
000000db: REVERT
000000dc: JUMPDEST
000000dd: CALLDATASIZE
000000de: PUSH2 0x00e3
000000e1: JUMPI
000000e2: STOP
000000e3: JUMPDEST
000000e4: PUSH0
000000e5: DUP1
000000e6: REVERT
000000e7: JUMPDEST
000000e8: CALLVALUE
000000e9: DUP1
000000ea: ISZERO
000000eb: PUSH2 0x00f2
000000ee: JUMPI
000000ef: PUSH0
000000f0: DUP1
000000f1: REVERT
000000f2: JUMPDEST
000000f3: POP
000000f4: PUSH2 0x0106
000000f7: PUSH2 0x0101
000000fa: CALLDATASIZE
000000fb: PUSH1 0x04
000000fd: PUSH2 0x159e
00000100: JUMP
00000101: JUMPDEST
00000102: PUSH2 0x02f0
00000105: JUMP
00000106: JUMPDEST
00000107: STOP
00000108: JUMPDEST
00000109: CALLVALUE
0000010a: DUP1
0000010b: ISZERO
0000010c: PUSH2 0x0113
0000010f: JUMPI
00000110: PUSH0
00000111: DUP1
00000112: REVERT
00000113: JUMPDEST
00000114: POP
00000115: PUSH2 0x0106
00000118: PUSH2 0x0122
0000011b: CALLDATASIZE
0000011c: PUSH1 0x04
0000011e: PUSH2 0x161f
00000121: JUMP
00000122: JUMPDEST
00000123: PUSH2 0x03d3
00000126: JUMP
00000127: JUMPDEST
00000128: CALLVALUE
00000129: DUP1
0000012a: ISZERO
0000012b: PUSH2 0x0132
0000012e: JUMPI
0000012f: PUSH0
00000130: DUP1
00000131: REVERT
00000132: JUMPDEST
00000133: POP
00000134: PUSH1 0x04
00000136: SLOAD
00000137: PUSH2 0x0153
0000013a: SWAP1
0000013b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000150: AND
00000151: DUP2
00000152: JUMP
00000153: JUMPDEST
00000154: PUSH1 0x40
00000156: MLOAD
00000157: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000016c: SWAP1
0000016d: SWAP2
0000016e: AND
0000016f: DUP2
00000170: MSTORE
00000171: PUSH1 0x20
00000173: ADD
00000174: JUMPDEST
00000175: PUSH1 0x40
00000177: MLOAD
00000178: DUP1
00000179: SWAP2
0000017a: SUB
0000017b: SWAP1
0000017c: RETURN
0000017d: JUMPDEST
0000017e: CALLVALUE
0000017f: DUP1
00000180: ISZERO
00000181: PUSH2 0x0188
00000184: JUMPI
00000185: PUSH0
00000186: DUP1
00000187: REVERT
00000188: JUMPDEST
00000189: POP
0000018a: PUSH2 0x0191
0000018d: PUSH2 0x0874
00000190: JUMP
00000191: JUMPDEST
00000192: PUSH1 0x40
00000194: MLOAD
00000195: SWAP1
00000196: DUP2
00000197: MSTORE
00000198: PUSH1 0x20
0000019a: ADD
0000019b: PUSH2 0x0174
0000019e: JUMP
0000019f: JUMPDEST
000001a0: CALLVALUE
000001a1: DUP1
000001a2: ISZERO
000001a3: PUSH2 0x01aa
000001a6: JUMPI
000001a7: PUSH0
000001a8: DUP1
000001a9: REVERT
000001aa: JUMPDEST
000001ab: POP
000001ac: PUSH2 0x0106
000001af: PUSH2 0x0882
000001b2: JUMP
000001b3: JUMPDEST
000001b4: CALLVALUE
000001b5: DUP1
000001b6: ISZERO
000001b7: PUSH2 0x01be
000001ba: JUMPI
000001bb: PUSH0
000001bc: DUP1
000001bd: REVERT
000001be: JUMPDEST
000001bf: POP
000001c0: PUSH0
000001c1: SLOAD
000001c2: PUSH21 0x010000000000000000000000000000000000000000
000001d8: SWAP1
000001d9: DIV
000001da: PUSH1 0xff
000001dc: AND
000001dd: JUMPDEST
000001de: PUSH1 0x40
000001e0: MLOAD
000001e1: SWAP1
000001e2: ISZERO
000001e3: ISZERO
000001e4: DUP2
000001e5: MSTORE
000001e6: PUSH1 0x20
000001e8: ADD
000001e9: PUSH2 0x0174
000001ec: JUMP
000001ed: JUMPDEST
000001ee: CALLVALUE
000001ef: DUP1
000001f0: ISZERO
000001f1: PUSH2 0x01f8
000001f4: JUMPI
000001f5: PUSH0
000001f6: DUP1
000001f7: REVERT
000001f8: JUMPDEST
000001f9: POP
000001fa: PUSH2 0x0106
000001fd: PUSH2 0x0207
00000200: CALLDATASIZE
00000201: PUSH1 0x04
00000203: PUSH2 0x16ef
00000206: JUMP
00000207: JUMPDEST
00000208: PUSH2 0x0894
0000020b: JUMP
0000020c: JUMPDEST
0000020d: CALLVALUE
0000020e: DUP1
0000020f: ISZERO
00000210: PUSH2 0x0217
00000213: JUMPI
00000214: PUSH0
00000215: DUP1
00000216: REVERT
00000217: JUMPDEST
00000218: POP
00000219: PUSH2 0x0106
0000021c: PUSH2 0x098c
0000021f: JUMP
00000220: JUMPDEST
00000221: CALLVALUE
00000222: DUP1
00000223: ISZERO
00000224: PUSH2 0x022b
00000227: JUMPI
00000228: PUSH0
00000229: DUP1
0000022a: REVERT
0000022b: JUMPDEST
0000022c: POP
0000022d: PUSH2 0x0106
00000230: PUSH2 0x099d
00000233: JUMP
00000234: JUMPDEST
00000235: CALLVALUE
00000236: DUP1
00000237: ISZERO
00000238: PUSH2 0x023f
0000023b: JUMPI
0000023c: PUSH0
0000023d: DUP1
0000023e: REVERT
0000023f: JUMPDEST
00000240: POP
00000241: PUSH2 0x0248
00000244: PUSH2 0x09ad
00000247: JUMP
00000248: JUMPDEST
00000249: PUSH1 0x40
0000024b: MLOAD
0000024c: PUSH2 0x0174
0000024f: SWAP8
00000250: SWAP7
00000251: SWAP6
00000252: SWAP5
00000253: SWAP4
00000254: SWAP3
00000255: SWAP2
00000256: SWAP1
00000257: PUSH2 0x175b
0000025a: JUMP
0000025b: JUMPDEST
0000025c: CALLVALUE
0000025d: DUP1
0000025e: ISZERO
0000025f: PUSH2 0x0266
00000262: JUMPI
00000263: PUSH0
00000264: DUP1
00000265: REVERT
00000266: JUMPDEST
00000267: POP
00000268: PUSH0
00000269: SLOAD
0000026a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000027f: AND
00000280: PUSH2 0x0153
00000283: JUMP
00000284: JUMPDEST
00000285: CALLVALUE
00000286: DUP1
00000287: ISZERO
00000288: PUSH2 0x028f
0000028b: JUMPI
0000028c: PUSH0
0000028d: DUP1
0000028e: REVERT
0000028f: JUMPDEST
00000290: POP
00000291: PUSH2 0x01dd
00000294: PUSH2 0x029e
00000297: CALLDATASIZE
00000298: PUSH1 0x04
0000029a: PUSH2 0x181b
0000029d: JUMP
0000029e: JUMPDEST
0000029f: PUSH1 0x05
000002a1: PUSH1 0x20
000002a3: MSTORE
000002a4: PUSH0
000002a5: SWAP1
000002a6: DUP2
000002a7: MSTORE
000002a8: PUSH1 0x40
000002aa: SWAP1
000002ab: KECCAK256
000002ac: SLOAD
000002ad: PUSH1 0xff
000002af: AND
000002b0: DUP2
000002b1: JUMP
000002b2: JUMPDEST
000002b3: CALLVALUE
000002b4: DUP1
000002b5: ISZERO
000002b6: PUSH2 0x02bd
000002b9: JUMPI
000002ba: PUSH0
000002bb: DUP1
000002bc: REVERT
000002bd: JUMPDEST
000002be: POP
000002bf: PUSH2 0x0106
000002c2: PUSH2 0x02cc
000002c5: CALLDATASIZE
000002c6: PUSH1 0x04
000002c8: PUSH2 0x16ef
000002cb: JUMP
000002cc: JUMPDEST
000002cd: PUSH2 0x0a0b
000002d0: JUMP
000002d1: JUMPDEST
000002d2: CALLVALUE
000002d3: DUP1
000002d4: ISZERO
000002d5: PUSH2 0x02dc
000002d8: JUMPI
000002d9: PUSH0
000002da: DUP1
000002db: REVERT
000002dc: JUMPDEST
000002dd: POP
000002de: PUSH2 0x0106
000002e1: PUSH2 0x02eb
000002e4: CALLDATASIZE
000002e5: PUSH1 0x04
000002e7: PUSH2 0x1832
000002ea: JUMP
000002eb: JUMPDEST
000002ec: PUSH2 0x0aa8
000002ef: JUMP
000002f0: JUMPDEST
000002f1: PUSH2 0x02f8
000002f4: PUSH2 0x0b21
000002f7: JUMP
000002f8: JUMPDEST
000002f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000030e: DUP4
0000030f: AND
00000310: PUSH2 0x0360
00000313: JUMPI
00000314: PUSH1 0x40
00000316: MLOAD
00000317: PUSH3 0x461bcd
0000031b: PUSH1 0xe5
0000031d: SHL
0000031e: DUP2
0000031f: MSTORE
00000320: PUSH1 0x20
00000322: PUSH1 0x04
00000324: DUP3
00000325: ADD
00000326: MSTORE
00000327: PUSH1 0x0d
00000329: PUSH1 0x24
0000032b: DUP3
0000032c: ADD
0000032d: MSTORE
0000032e: PUSH32 0x496e76616c696420746f6b656e00000000000000000000000000000000000000
0000034f: PUSH1 0x44
00000351: DUP3
00000352: ADD
00000353: MSTORE
00000354: PUSH1 0x64
00000356: ADD
00000357: JUMPDEST
00000358: PUSH1 0x40
0000035a: MLOAD
0000035b: DUP1
0000035c: SWAP2
0000035d: SUB
0000035e: SWAP1
0000035f: REVERT
00000360: JUMPDEST
00000361: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000376: DUP3
00000377: AND
00000378: PUSH2 0x03c3
0000037b: JUMPI
0000037c: PUSH1 0x40
0000037e: MLOAD
0000037f: PUSH3 0x461bcd
00000383: PUSH1 0xe5
00000385: SHL
00000386: DUP2
00000387: MSTORE
00000388: PUSH1 0x20
0000038a: PUSH1 0x04
0000038c: DUP3
0000038d: ADD
0000038e: MSTORE
0000038f: PUSH1 0x11
00000391: PUSH1 0x24
00000393: DUP3
00000394: ADD
00000395: MSTORE
00000396: PUSH32 0x496e76616c696420726563697069656e74000000000000000000000000000000
000003b7: PUSH1 0x44
000003b9: DUP3
000003ba: ADD
000003bb: MSTORE
000003bc: PUSH1 0x64
000003be: ADD
000003bf: PUSH2 0x0357
000003c2: JUMP
000003c3: JUMPDEST
000003c4: PUSH2 0x03ce
000003c7: DUP4
000003c8: DUP4
000003c9: DUP4
000003ca: PUSH2 0x0b87
000003cd: JUMP
000003ce: JUMPDEST
000003cf: POP
000003d0: POP
000003d1: POP
000003d2: JUMP
000003d3: JUMPDEST
000003d4: PUSH2 0x03db
000003d7: PUSH2 0x0cd8
000003da: JUMP
000003db: JUMPDEST
000003dc: PUSH2 0x03e3
000003df: PUSH2 0x0d1b
000003e2: JUMP
000003e3: JUMPDEST
000003e4: DUP6
000003e5: DUP5
000003e6: EQ
000003e7: PUSH2 0x0432
000003ea: JUMPI
000003eb: PUSH1 0x40
000003ed: MLOAD
000003ee: PUSH3 0x461bcd
000003f2: PUSH1 0xe5
000003f4: SHL
000003f5: DUP2
000003f6: MSTORE
000003f7: PUSH1 0x20
000003f9: PUSH1 0x04
000003fb: DUP3
000003fc: ADD
000003fd: MSTORE
000003fe: PUSH1 0x11
00000400: PUSH1 0x24
00000402: DUP3
00000403: ADD
00000404: MSTORE
00000405: PUSH32 0x4d69736d61746368656420617272617973000000000000000000000000000000
00000426: PUSH1 0x44
00000428: DUP3
00000429: ADD
0000042a: MSTORE
0000042b: PUSH1 0x64
0000042d: ADD
0000042e: PUSH2 0x0357
00000431: JUMP
00000432: JUMPDEST
00000433: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000448: DUP4
00000449: AND
0000044a: PUSH2 0x0495
0000044d: JUMPI
0000044e: PUSH1 0x40
00000450: MLOAD
00000451: PUSH3 0x461bcd
00000455: PUSH1 0xe5
00000457: SHL
00000458: DUP2
00000459: MSTORE
0000045a: PUSH1 0x20
0000045c: PUSH1 0x04
0000045e: DUP3
0000045f: ADD
00000460: MSTORE
00000461: PUSH1 0x11
00000463: PUSH1 0x24
00000465: DUP3
00000466: ADD
00000467: MSTORE
00000468: PUSH32 0x496e76616c696420726563697069656e74000000000000000000000000000000
00000489: PUSH1 0x44
0000048b: DUP3
0000048c: ADD
0000048d: MSTORE
0000048e: PUSH1 0x64
00000490: ADD
00000491: PUSH2 0x0357
00000494: JUMP
00000495: JUMPDEST
00000496: PUSH0
00000497: PUSH2 0x057b
0000049a: PUSH32 0x5cffa6fb7ce27d00e223ca6efa7cd0ae989d0a3927c853d97037ab35cdd29a29
000004bb: DUP10
000004bc: DUP10
000004bd: PUSH1 0x40
000004bf: MLOAD
000004c0: PUSH1 0x20
000004c2: ADD
000004c3: PUSH2 0x04cd
000004c6: SWAP3
000004c7: SWAP2
000004c8: SWAP1
000004c9: PUSH2 0x185a
000004cc: JUMP
000004cd: JUMPDEST
000004ce: PUSH1 0x40
000004d0: MLOAD
000004d1: PUSH1 0x20
000004d3: DUP2
000004d4: DUP4
000004d5: SUB
000004d6: SUB
000004d7: DUP2
000004d8: MSTORE
000004d9: SWAP1
000004da: PUSH1 0x40
000004dc: MSTORE
000004dd: DUP1
000004de: MLOAD
000004df: SWAP1
000004e0: PUSH1 0x20
000004e2: ADD
000004e3: KECCAK256
000004e4: DUP9
000004e5: DUP9
000004e6: PUSH1 0x40
000004e8: MLOAD
000004e9: PUSH1 0x20
000004eb: ADD
000004ec: PUSH2 0x04f6
000004ef: SWAP3
000004f0: SWAP2
000004f1: SWAP1
000004f2: PUSH2 0x185a
000004f5: JUMP
000004f6: JUMPDEST
000004f7: PUSH1 0x40
000004f9: DUP1
000004fa: MLOAD
000004fb: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
0000051c: DUP2
0000051d: DUP5
0000051e: SUB
0000051f: ADD
00000520: DUP2
00000521: MSTORE
00000522: DUP3
00000523: DUP3
00000524: MSTORE
00000525: DUP1
00000526: MLOAD
00000527: PUSH1 0x20
00000529: SWAP2
0000052a: DUP3
0000052b: ADD
0000052c: KECCAK256
0000052d: SWAP1
0000052e: DUP4
0000052f: ADD
00000530: SWAP5
00000531: SWAP1
00000532: SWAP5
00000533: MSTORE
00000534: DUP2
00000535: ADD
00000536: SWAP2
00000537: SWAP1
00000538: SWAP2
00000539: MSTORE
0000053a: PUSH1 0x60
0000053c: DUP2
0000053d: ADD
0000053e: SWAP2
0000053f: SWAP1
00000540: SWAP2
00000541: MSTORE
00000542: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000557: DUP7
00000558: AND
00000559: PUSH1 0x80
0000055b: DUP3
0000055c: ADD
0000055d: MSTORE
0000055e: PUSH1 0xa0
00000560: ADD
00000561: PUSH1 0x40
00000563: MLOAD
00000564: PUSH1 0x20
00000566: DUP2
00000567: DUP4
00000568: SUB
00000569: SUB
0000056a: DUP2
0000056b: MSTORE
0000056c: SWAP1
0000056d: PUSH1 0x40
0000056f: MSTORE
00000570: DUP1
00000571: MLOAD
00000572: SWAP1
00000573: PUSH1 0x20
00000575: ADD
00000576: KECCAK256
00000577: PUSH2 0x0d6f
0000057a: JUMP
0000057b: JUMPDEST
0000057c: SWAP1
0000057d: POP
0000057e: PUSH0
0000057f: PUSH2 0x05bd
00000582: DUP3
00000583: DUP6
00000584: DUP6
00000585: DUP1
00000586: DUP1
00000587: PUSH1 0x1f
00000589: ADD
0000058a: PUSH1 0x20
0000058c: DUP1
0000058d: SWAP2
0000058e: DIV
0000058f: MUL
00000590: PUSH1 0x20
00000592: ADD
00000593: PUSH1 0x40
00000595: MLOAD
00000596: SWAP1
00000597: DUP2
00000598: ADD
00000599: PUSH1 0x40
0000059b: MSTORE
0000059c: DUP1
0000059d: SWAP4
0000059e: SWAP3
0000059f: SWAP2
000005a0: SWAP1
000005a1: DUP2
000005a2: DUP2
000005a3: MSTORE
000005a4: PUSH1 0x20
000005a6: ADD
000005a7: DUP4
000005a8: DUP4
000005a9: DUP1
000005aa: DUP3
000005ab: DUP5
000005ac: CALLDATACOPY
000005ad: PUSH0
000005ae: SWAP3
000005af: ADD
000005b0: SWAP2
000005b1: SWAP1
000005b2: SWAP2
000005b3: MSTORE
000005b4: POP
000005b5: PUSH2 0x0dbc
000005b8: SWAP3
000005b9: POP
000005ba: POP
000005bb: POP
000005bc: JUMP
000005bd: JUMPDEST
000005be: PUSH1 0x04
000005c0: SLOAD
000005c1: SWAP1
000005c2: SWAP2
000005c3: POP
000005c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005d9: DUP1
000005da: DUP4
000005db: AND
000005dc: SWAP2
000005dd: AND
000005de: EQ
000005df: PUSH2 0x062a
000005e2: JUMPI
000005e3: PUSH1 0x40
000005e5: MLOAD
000005e6: PUSH3 0x461bcd
000005ea: PUSH1 0xe5
000005ec: SHL
000005ed: DUP2
000005ee: MSTORE
000005ef: PUSH1 0x20
000005f1: PUSH1 0x04
000005f3: DUP3
000005f4: ADD
000005f5: MSTORE
000005f6: PUSH1 0x17
000005f8: PUSH1 0x24
000005fa: DUP3
000005fb: ADD
000005fc: MSTORE
000005fd: PUSH32 0x496e76616c6964206261746368207369676e6174757265000000000000000000
0000061e: PUSH1 0x44
00000620: DUP3
00000621: ADD
00000622: MSTORE
00000623: PUSH1 0x64
00000625: ADD
00000626: PUSH2 0x0357
00000629: JUMP
0000062a: JUMPDEST
0000062b: PUSH0
0000062c: DUP1
0000062d: JUMPDEST
0000062e: DUP10
0000062f: DUP2
00000630: LT
00000631: ISZERO
00000632: PUSH2 0x07b8
00000635: JUMPI
00000636: PUSH0
00000637: DUP12
00000638: DUP12
00000639: DUP4
0000063a: DUP2
0000063b: DUP2
0000063c: LT
0000063d: PUSH2 0x0648
00000640: JUMPI
00000641: PUSH2 0x0648
00000644: PUSH2 0x189a
00000647: JUMP
00000648: JUMPDEST
00000649: SWAP1
0000064a: POP
0000064b: PUSH1 0x20
0000064d: MUL
0000064e: ADD
0000064f: CALLDATALOAD
00000650: SWAP1
00000651: POP
00000652: PUSH0
00000653: DUP11
00000654: DUP11
00000655: DUP5
00000656: DUP2
00000657: DUP2
00000658: LT
00000659: PUSH2 0x0664
0000065c: JUMPI
0000065d: PUSH2 0x0664
00000660: PUSH2 0x189a
00000663: JUMP
00000664: JUMPDEST
00000665: PUSH0
00000666: DUP6
00000667: DUP2
00000668: MSTORE
00000669: PUSH1 0x05
0000066b: PUSH1 0x20
0000066d: SWAP1
0000066e: DUP2
0000066f: MSTORE
00000670: PUSH1 0x40
00000672: SWAP1
00000673: SWAP2
00000674: KECCAK256
00000675: SLOAD
00000676: SWAP2
00000677: MUL
00000678: SWAP3
00000679: SWAP1
0000067a: SWAP3
0000067b: ADD
0000067c: CALLDATALOAD
0000067d: SWAP3
0000067e: POP
0000067f: POP
00000680: PUSH1 0xff
00000682: AND
00000683: ISZERO
00000684: PUSH2 0x06fd
00000687: JUMPI
00000688: DUP2
00000689: PUSH32 0xa4d49a1141c14cc38ea06a032ce2ff92c2818ca42ea900d3a656f4e761a1d65a
000006aa: DUP3
000006ab: PUSH1 0x40
000006ad: MLOAD
000006ae: PUSH2 0x06ee
000006b1: SWAP2
000006b2: DUP2
000006b3: MSTORE
000006b4: PUSH1 0x40
000006b6: PUSH1 0x20
000006b8: DUP3
000006b9: ADD
000006ba: DUP2
000006bb: SWAP1
000006bc: MSTORE
000006bd: PUSH1 0x0f
000006bf: SWAP1
000006c0: DUP3
000006c1: ADD
000006c2: MSTORE
000006c3: PUSH32 0x416c726561647920636c61696d65640000000000000000000000000000000000
000006e4: PUSH1 0x60
000006e6: DUP3
000006e7: ADD
000006e8: MSTORE
000006e9: PUSH1 0x80
000006eb: ADD
000006ec: SWAP1
000006ed: JUMP
000006ee: JUMPDEST
000006ef: PUSH1 0x40
000006f1: MLOAD
000006f2: DUP1
000006f3: SWAP2
000006f4: SUB
000006f5: SWAP1
000006f6: LOG2
000006f7: POP
000006f8: POP
000006f9: PUSH2 0x07b0
000006fc: JUMP
000006fd: JUMPDEST
000006fe: DUP1
000006ff: PUSH0
00000700: SUB
00000701: PUSH2 0x076b
00000704: JUMPI
00000705: DUP2
00000706: PUSH32 0xa4d49a1141c14cc38ea06a032ce2ff92c2818ca42ea900d3a656f4e761a1d65a
00000727: DUP3
00000728: PUSH1 0x40
0000072a: MLOAD
0000072b: PUSH2 0x06ee
0000072e: SWAP2
0000072f: DUP2
00000730: MSTORE
00000731: PUSH1 0x40
00000733: PUSH1 0x20
00000735: DUP3
00000736: ADD
00000737: DUP2
00000738: SWAP1
00000739: MSTORE
0000073a: PUSH1 0x0e
0000073c: SWAP1
0000073d: DUP3
0000073e: ADD
0000073f: MSTORE
00000740: PUSH32 0x496e76616c696420616d6f756e74000000000000000000000000000000000000
00000761: PUSH1 0x60
00000763: DUP3
00000764: ADD
00000765: MSTORE
00000766: PUSH1 0x80
00000768: ADD
00000769: SWAP1
0000076a: JUMP
0000076b: JUMPDEST
0000076c: PUSH0
0000076d: DUP3
0000076e: DUP2
0000076f: MSTORE
00000770: PUSH1 0x05
00000772: PUSH1 0x20
00000774: MSTORE
00000775: PUSH1 0x40
00000777: SWAP1
00000778: KECCAK256
00000779: DUP1
0000077a: SLOAD
0000077b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
0000079c: AND
0000079d: PUSH1 0x01
0000079f: OR
000007a0: SWAP1
000007a1: SSTORE
000007a2: PUSH2 0x07ab
000007a5: DUP2
000007a6: DUP6
000007a7: PUSH2 0x18c7
000007aa: JUMP
000007ab: JUMPDEST
000007ac: SWAP4
000007ad: POP
000007ae: POP
000007af: POP
000007b0: JUMPDEST
000007b1: PUSH1 0x01
000007b3: ADD
000007b4: PUSH2 0x062d
000007b7: JUMP
000007b8: JUMPDEST
000007b9: POP
000007ba: PUSH0
000007bb: DUP2
000007bc: GT
000007bd: PUSH2 0x0808
000007c0: JUMPI
000007c1: PUSH1 0x40
000007c3: MLOAD
000007c4: PUSH3 0x461bcd
000007c8: PUSH1 0xe5
000007ca: SHL
000007cb: DUP2
000007cc: MSTORE
000007cd: PUSH1 0x20
000007cf: PUSH1 0x04
000007d1: DUP3
000007d2: ADD
000007d3: MSTORE
000007d4: PUSH1 0x0f
000007d6: PUSH1 0x24
000007d8: DUP3
000007d9: ADD
000007da: MSTORE
000007db: PUSH32 0x4e6f2076616c696420636c61696d730000000000000000000000000000000000
000007fc: PUSH1 0x44
000007fe: DUP3
000007ff: ADD
00000800: MSTORE
00000801: PUSH1 0x64
00000803: ADD
00000804: PUSH2 0x0357
00000807: JUMP
00000808: JUMPDEST
00000809: PUSH2 0x0812
0000080c: DUP7
0000080d: DUP3
0000080e: PUSH2 0x0de4
00000811: JUMP
00000812: JUMPDEST
00000813: PUSH1 0x40
00000815: MLOAD
00000816: DUP2
00000817: DUP2
00000818: MSTORE
00000819: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000082e: DUP8
0000082f: AND
00000830: SWAP1
00000831: CALLER
00000832: SWAP1
00000833: PUSH32 0xd1156c83da18470c12fae89ffa811f65a38db2f5b87da6aacd2eecf395d2cceb
00000854: SWAP1
00000855: PUSH1 0x20
00000857: ADD
00000858: PUSH1 0x40
0000085a: MLOAD
0000085b: DUP1
0000085c: SWAP2
0000085d: SUB
0000085e: SWAP1
0000085f: LOG3
00000860: POP
00000861: POP
00000862: POP
00000863: PUSH2 0x086b
00000866: PUSH1 0x01
00000868: DUP1
00000869: SSTORE
0000086a: JUMP
0000086b: JUMPDEST
0000086c: POP
0000086d: POP
0000086e: POP
0000086f: POP
00000870: POP
00000871: POP
00000872: POP
00000873: JUMP
00000874: JUMPDEST
00000875: PUSH0
00000876: PUSH2 0x087d
00000879: PUSH2 0x0ed0
0000087c: JUMP
0000087d: JUMPDEST
0000087e: SWAP1
0000087f: POP
00000880: SWAP1
00000881: JUMP
00000882: JUMPDEST
00000883: PUSH2 0x088a
00000886: PUSH2 0x0b21
00000889: JUMP
0000088a: JUMPDEST
0000088b: PUSH2 0x0892
0000088e: PUSH2 0x1006
00000891: JUMP
00000892: JUMPDEST
00000893: JUMP
00000894: JUMPDEST
00000895: PUSH2 0x089c
00000898: PUSH2 0x0b21
0000089b: JUMP
0000089c: JUMPDEST
0000089d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008b2: DUP2
000008b3: AND
000008b4: PUSH2 0x08ff
000008b7: JUMPI
000008b8: PUSH1 0x40
000008ba: MLOAD
000008bb: PUSH3 0x461bcd
000008bf: PUSH1 0xe5
000008c1: SHL
000008c2: DUP2
000008c3: MSTORE
000008c4: PUSH1 0x20
000008c6: PUSH1 0x04
000008c8: DUP3
000008c9: ADD
000008ca: MSTORE
000008cb: PUSH1 0x1d
000008cd: PUSH1 0x24
000008cf: DUP3
000008d0: ADD
000008d1: MSTORE
000008d2: PUSH32 0x5369676e65722063616e6e6f74206265207a65726f2061646472657373000000
000008f3: PUSH1 0x44
000008f5: DUP3
000008f6: ADD
000008f7: MSTORE
000008f8: PUSH1 0x64
000008fa: ADD
000008fb: PUSH2 0x0357
000008fe: JUMP
000008ff: JUMPDEST
00000900: PUSH1 0x04
00000902: SLOAD
00000903: PUSH1 0x40
00000905: MLOAD
00000906: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000091b: DUP1
0000091c: DUP5
0000091d: AND
0000091e: SWAP3
0000091f: AND
00000920: SWAP1
00000921: PUSH32 0x2d025324f0a785e8c12d0a0d91a9caa49df4ef20ff87e0df7213a1d4f3157beb
00000942: SWAP1
00000943: PUSH0
00000944: SWAP1
00000945: LOG3
00000946: PUSH1 0x04
00000948: DUP1
00000949: SLOAD
0000094a: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
0000096b: AND
0000096c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000981: SWAP3
00000982: SWAP1
00000983: SWAP3
00000984: AND
00000985: SWAP2
00000986: SWAP1
00000987: SWAP2
00000988: OR
00000989: SWAP1
0000098a: SSTORE
0000098b: JUMP
0000098c: JUMPDEST
0000098d: PUSH2 0x0994
00000990: PUSH2 0x0b21
00000993: JUMP
00000994: JUMPDEST
00000995: PUSH2 0x0892
00000998: PUSH0
00000999: PUSH2 0x1082
0000099c: JUMP
0000099d: JUMPDEST
0000099e: PUSH2 0x09a5
000009a1: PUSH2 0x0b21
000009a4: JUMP
000009a5: JUMPDEST
000009a6: PUSH2 0x0892
000009a9: PUSH2 0x10f6
000009ac: JUMP
000009ad: JUMPDEST
000009ae: PUSH0
000009af: PUSH1 0x60
000009b1: DUP1
000009b2: PUSH0
000009b3: DUP1
000009b4: PUSH0
000009b5: PUSH1 0x60
000009b7: PUSH2 0x09be
000009ba: PUSH2 0x1164
000009bd: JUMP
000009be: JUMPDEST
000009bf: PUSH2 0x09c6
000009c2: PUSH2 0x1191
000009c5: JUMP
000009c6: JUMPDEST
000009c7: PUSH1 0x40
000009c9: DUP1
000009ca: MLOAD
000009cb: PUSH0
000009cc: DUP1
000009cd: DUP3
000009ce: MSTORE
000009cf: PUSH1 0x20
000009d1: DUP3
000009d2: ADD
000009d3: SWAP1
000009d4: SWAP3
000009d5: MSTORE
000009d6: PUSH32 0x0f00000000000000000000000000000000000000000000000000000000000000
000009f7: SWAP12
000009f8: SWAP4
000009f9: SWAP11
000009fa: POP
000009fb: SWAP2
000009fc: SWAP9
000009fd: POP
000009fe: CHAINID
000009ff: SWAP8
00000a00: POP
00000a01: ADDRESS
00000a02: SWAP7
00000a03: POP
00000a04: SWAP5
00000a05: POP
00000a06: SWAP3
00000a07: POP
00000a08: SWAP1
00000a09: POP
00000a0a: JUMP
00000a0b: JUMPDEST
00000a0c: PUSH2 0x0a13
00000a0f: PUSH2 0x0b21
00000a12: JUMP
00000a13: JUMPDEST
00000a14: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a29: DUP2
00000a2a: AND
00000a2b: PUSH2 0x0a9c
00000a2e: JUMPI
00000a2f: PUSH1 0x40
00000a31: MLOAD
00000a32: PUSH3 0x461bcd
00000a36: PUSH1 0xe5
00000a38: SHL
00000a39: DUP2
00000a3a: MSTORE
00000a3b: PUSH1 0x20
00000a3d: PUSH1 0x04
00000a3f: DUP3
00000a40: ADD
00000a41: MSTORE
00000a42: PUSH1 0x26
00000a44: PUSH1 0x24
00000a46: DUP3
00000a47: ADD
00000a48: MSTORE
00000a49: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061
00000a6a: PUSH1 0x44
00000a6c: DUP3
00000a6d: ADD
00000a6e: MSTORE
00000a6f: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000
00000a90: PUSH1 0x64
00000a92: DUP3
00000a93: ADD
00000a94: MSTORE
00000a95: PUSH1 0x84
00000a97: ADD
00000a98: PUSH2 0x0357
00000a9b: JUMP
00000a9c: JUMPDEST
00000a9d: PUSH2 0x0aa5
00000aa0: DUP2
00000aa1: PUSH2 0x1082
00000aa4: JUMP
00000aa5: JUMPDEST
00000aa6: POP
00000aa7: JUMP
00000aa8: JUMPDEST
00000aa9: PUSH2 0x0ab0
00000aac: PUSH2 0x0b21
00000aaf: JUMP
00000ab0: JUMPDEST
00000ab1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ac6: DUP3
00000ac7: AND
00000ac8: PUSH2 0x0b13
00000acb: JUMPI
00000acc: PUSH1 0x40
00000ace: MLOAD
00000acf: PUSH3 0x461bcd
00000ad3: PUSH1 0xe5
00000ad5: SHL
00000ad6: DUP2
00000ad7: MSTORE
00000ad8: PUSH1 0x20
00000ada: PUSH1 0x04
00000adc: DUP3
00000add: ADD
00000ade: MSTORE
00000adf: PUSH1 0x11
00000ae1: PUSH1 0x24
00000ae3: DUP3
00000ae4: ADD
00000ae5: MSTORE
00000ae6: PUSH32 0x496e76616c696420726563697069656e74000000000000000000000000000000
00000b07: PUSH1 0x44
00000b09: DUP3
00000b0a: ADD
00000b0b: MSTORE
00000b0c: PUSH1 0x64
00000b0e: ADD
00000b0f: PUSH2 0x0357
00000b12: JUMP
00000b13: JUMPDEST
00000b14: PUSH2 0x0b1d
00000b17: DUP3
00000b18: DUP3
00000b19: PUSH2 0x0de4
00000b1c: JUMP
00000b1d: JUMPDEST
00000b1e: POP
00000b1f: POP
00000b20: JUMP
00000b21: JUMPDEST
00000b22: PUSH0
00000b23: SLOAD
00000b24: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b39: AND
00000b3a: CALLER
00000b3b: EQ
00000b3c: PUSH2 0x0892
00000b3f: JUMPI
00000b40: PUSH1 0x40
00000b42: MLOAD
00000b43: PUSH3 0x461bcd
00000b47: PUSH1 0xe5
00000b49: SHL
00000b4a: DUP2
00000b4b: MSTORE
00000b4c: PUSH1 0x20
00000b4e: PUSH1 0x04
00000b50: DUP3
00000b51: ADD
00000b52: DUP2
00000b53: SWAP1
00000b54: MSTORE
00000b55: PUSH1 0x24
00000b57: DUP3
00000b58: ADD
00000b59: MSTORE
00000b5a: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
00000b7b: PUSH1 0x44
00000b7d: DUP3
00000b7e: ADD
00000b7f: MSTORE
00000b80: PUSH1 0x64
00000b82: ADD
00000b83: PUSH2 0x0357
00000b86: JUMP
00000b87: JUMPDEST
00000b88: PUSH1 0x40
00000b8a: DUP1
00000b8b: MLOAD
00000b8c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ba1: DUP5
00000ba2: DUP2
00000ba3: AND
00000ba4: PUSH1 0x24
00000ba6: DUP4
00000ba7: ADD
00000ba8: MSTORE
00000ba9: PUSH1 0x44
00000bab: DUP1
00000bac: DUP4
00000bad: ADD
00000bae: DUP6
00000baf: SWAP1
00000bb0: MSTORE
00000bb1: DUP4
00000bb2: MLOAD
00000bb3: DUP1
00000bb4: DUP5
00000bb5: SUB
00000bb6: SWAP1
00000bb7: SWAP2
00000bb8: ADD
00000bb9: DUP2
00000bba: MSTORE
00000bbb: PUSH1 0x64
00000bbd: SWAP1
00000bbe: SWAP3
00000bbf: ADD
00000bc0: DUP4
00000bc1: MSTORE
00000bc2: PUSH1 0x20
00000bc4: DUP3
00000bc5: ADD
00000bc6: DUP1
00000bc7: MLOAD
00000bc8: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000be5: AND
00000be6: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
00000c07: OR
00000c08: SWAP1
00000c09: MSTORE
00000c0a: SWAP2
00000c0b: MLOAD
00000c0c: PUSH0
00000c0d: SWAP3
00000c0e: DUP4
00000c0f: SWAP3
00000c10: SWAP1
00000c11: DUP8
00000c12: AND
00000c13: SWAP2
00000c14: PUSH2 0x0c1d
00000c17: SWAP2
00000c18: SWAP1
00000c19: PUSH2 0x18ff
00000c1c: JUMP
00000c1d: JUMPDEST
00000c1e: PUSH0
00000c1f: PUSH1 0x40
00000c21: MLOAD
00000c22: DUP1
00000c23: DUP4
00000c24: SUB
00000c25: DUP2
00000c26: PUSH0
00000c27: DUP7
00000c28: GAS
00000c29: CALL
00000c2a: SWAP2
00000c2b: POP
00000c2c: POP
00000c2d: RETURNDATASIZE
00000c2e: DUP1
00000c2f: PUSH0
00000c30: DUP2
00000c31: EQ
00000c32: PUSH2 0x0c56
00000c35: JUMPI
00000c36: PUSH1 0x40
00000c38: MLOAD
00000c39: SWAP2
00000c3a: POP
00000c3b: PUSH1 0x1f
00000c3d: NOT
00000c3e: PUSH1 0x3f
00000c40: RETURNDATASIZE
00000c41: ADD
00000c42: AND
00000c43: DUP3
00000c44: ADD
00000c45: PUSH1 0x40
00000c47: MSTORE
00000c48: RETURNDATASIZE
00000c49: DUP3
00000c4a: MSTORE
00000c4b: RETURNDATASIZE
00000c4c: PUSH0
00000c4d: PUSH1 0x20
00000c4f: DUP5
00000c50: ADD
00000c51: RETURNDATACOPY
00000c52: PUSH2 0x0c5b
00000c55: JUMP
00000c56: JUMPDEST
00000c57: PUSH1 0x60
00000c59: SWAP2
00000c5a: POP
00000c5b: JUMPDEST
00000c5c: POP
00000c5d: SWAP2
00000c5e: POP
00000c5f: SWAP2
00000c60: POP
00000c61: DUP2
00000c62: DUP1
00000c63: ISZERO
00000c64: PUSH2 0x0c85
00000c67: JUMPI
00000c68: POP
00000c69: DUP1
00000c6a: MLOAD
00000c6b: ISZERO
00000c6c: DUP1
00000c6d: PUSH2 0x0c85
00000c70: JUMPI
00000c71: POP
00000c72: DUP1
00000c73: DUP1
00000c74: PUSH1 0x20
00000c76: ADD
00000c77: SWAP1
00000c78: MLOAD
00000c79: DUP2
00000c7a: ADD
00000c7b: SWAP1
00000c7c: PUSH2 0x0c85
00000c7f: SWAP2
00000c80: SWAP1
00000c81: PUSH2 0x1915
00000c84: JUMP
00000c85: JUMPDEST
00000c86: PUSH2 0x0cd1
00000c89: JUMPI
00000c8a: PUSH1 0x40
00000c8c: MLOAD
00000c8d: PUSH3 0x461bcd
00000c91: PUSH1 0xe5
00000c93: SHL
00000c94: DUP2
00000c95: MSTORE
00000c96: PUSH1 0x20
00000c98: PUSH1 0x04
00000c9a: DUP3
00000c9b: ADD
00000c9c: MSTORE
00000c9d: PUSH1 0x1f
00000c9f: PUSH1 0x24
00000ca1: DUP3
00000ca2: ADD
00000ca3: MSTORE
00000ca4: PUSH32 0x5472616e7366657248656c7065723a205452414e534645525f4641494c454400
00000cc5: PUSH1 0x44
00000cc7: DUP3
00000cc8: ADD
00000cc9: MSTORE
00000cca: PUSH1 0x64
00000ccc: ADD
00000ccd: PUSH2 0x0357
00000cd0: JUMP
00000cd1: JUMPDEST
00000cd2: POP
00000cd3: POP
00000cd4: POP
00000cd5: POP
00000cd6: POP
00000cd7: JUMP
00000cd8: JUMPDEST
00000cd9: PUSH1 0x02
00000cdb: PUSH1 0x01
00000cdd: SLOAD
00000cde: SUB
00000cdf: PUSH2 0x0d14
00000ce2: JUMPI
00000ce3: PUSH1 0x40
00000ce5: MLOAD
00000ce6: PUSH32 0x3ee5aeb500000000000000000000000000000000000000000000000000000000
00000d07: DUP2
00000d08: MSTORE
00000d09: PUSH1 0x04
00000d0b: ADD
00000d0c: PUSH1 0x40
00000d0e: MLOAD
00000d0f: DUP1
00000d10: SWAP2
00000d11: SUB
00000d12: SWAP1
00000d13: REVERT
00000d14: JUMPDEST
00000d15: PUSH1 0x02
00000d17: PUSH1 0x01
00000d19: SSTORE
00000d1a: JUMP
00000d1b: JUMPDEST
00000d1c: PUSH0
00000d1d: SLOAD
00000d1e: PUSH21 0x010000000000000000000000000000000000000000
00000d34: SWAP1
00000d35: DIV
00000d36: PUSH1 0xff
00000d38: AND
00000d39: ISZERO
00000d3a: PUSH2 0x0892
00000d3d: JUMPI
00000d3e: PUSH1 0x40
00000d40: MLOAD
00000d41: PUSH32 0xd93c066500000000000000000000000000000000000000000000000000000000
00000d62: DUP2
00000d63: MSTORE
00000d64: PUSH1 0x04
00000d66: ADD
00000d67: PUSH1 0x40
00000d69: MLOAD
00000d6a: DUP1
00000d6b: SWAP2
00000d6c: SUB
00000d6d: SWAP1
00000d6e: REVERT
00000d6f: JUMPDEST
00000d70: PUSH0
00000d71: PUSH2 0x0db6
00000d74: PUSH2 0x0d7b
00000d77: PUSH2 0x0ed0
00000d7a: JUMP
00000d7b: JUMPDEST
00000d7c: DUP4
00000d7d: PUSH1 0x40
00000d7f: MLOAD
00000d80: PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000
00000da1: DUP2
00000da2: MSTORE
00000da3: PUSH1 0x02
00000da5: DUP2
00000da6: ADD
00000da7: SWAP3
00000da8: SWAP1
00000da9: SWAP3
00000daa: MSTORE
00000dab: PUSH1 0x22
00000dad: DUP3
00000dae: ADD
00000daf: MSTORE
00000db0: PUSH1 0x42
00000db2: SWAP1
00000db3: KECCAK256
00000db4: SWAP1
00000db5: JUMP
00000db6: JUMPDEST
00000db7: SWAP3
00000db8: SWAP2
00000db9: POP
00000dba: POP
00000dbb: JUMP
00000dbc: JUMPDEST
00000dbd: PUSH0
00000dbe: DUP1
00000dbf: PUSH0
00000dc0: DUP1
00000dc1: PUSH2 0x0dca
00000dc4: DUP7
00000dc5: DUP7
00000dc6: PUSH2 0x11be
00000dc9: JUMP
00000dca: JUMPDEST
00000dcb: SWAP3
00000dcc: POP
00000dcd: SWAP3
00000dce: POP
00000dcf: SWAP3
00000dd0: POP
00000dd1: PUSH2 0x0dda
00000dd4: DUP3
00000dd5: DUP3
00000dd6: PUSH2 0x1207
00000dd9: JUMP
00000dda: JUMPDEST
00000ddb: POP
00000ddc: SWAP1
00000ddd: SWAP5
00000dde: SWAP4
00000ddf: POP
00000de0: POP
00000de1: POP
00000de2: POP
00000de3: JUMP
00000de4: JUMPDEST
00000de5: PUSH1 0x40
00000de7: DUP1
00000de8: MLOAD
00000de9: PUSH0
00000dea: DUP1
00000deb: DUP3
00000dec: MSTORE
00000ded: PUSH1 0x20
00000def: DUP3
00000df0: ADD
00000df1: SWAP1
00000df2: SWAP3
00000df3: MSTORE
00000df4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e09: DUP5
00000e0a: AND
00000e0b: SWAP1
00000e0c: DUP4
00000e0d: SWAP1
00000e0e: PUSH1 0x40
00000e10: MLOAD
00000e11: PUSH2 0x0e1a
00000e14: SWAP2
00000e15: SWAP1
00000e16: PUSH2 0x18ff
00000e19: JUMP
00000e1a: JUMPDEST
00000e1b: PUSH0
00000e1c: PUSH1 0x40
00000e1e: MLOAD
00000e1f: DUP1
00000e20: DUP4
00000e21: SUB
00000e22: DUP2
00000e23: DUP6
00000e24: DUP8
00000e25: GAS
00000e26: CALL
00000e27: SWAP3
00000e28: POP
00000e29: POP
00000e2a: POP
00000e2b: RETURNDATASIZE
00000e2c: DUP1
00000e2d: PUSH0
00000e2e: DUP2
00000e2f: EQ
00000e30: PUSH2 0x0e54
00000e33: JUMPI
00000e34: PUSH1 0x40
00000e36: MLOAD
00000e37: SWAP2
00000e38: POP
00000e39: PUSH1 0x1f
00000e3b: NOT
00000e3c: PUSH1 0x3f
00000e3e: RETURNDATASIZE
00000e3f: ADD
00000e40: AND
00000e41: DUP3
00000e42: ADD
00000e43: PUSH1 0x40
00000e45: MSTORE
00000e46: RETURNDATASIZE
00000e47: DUP3
00000e48: MSTORE
00000e49: RETURNDATASIZE
00000e4a: PUSH0
00000e4b: PUSH1 0x20
00000e4d: DUP5
00000e4e: ADD
00000e4f: RETURNDATACOPY
00000e50: PUSH2 0x0e59
00000e53: JUMP
00000e54: JUMPDEST
00000e55: PUSH1 0x60
00000e57: SWAP2
00000e58: POP
00000e59: JUMPDEST
00000e5a: POP
00000e5b: POP
00000e5c: SWAP1
00000e5d: POP
00000e5e: DUP1
00000e5f: PUSH2 0x03ce
00000e62: JUMPI
00000e63: PUSH1 0x40
00000e65: MLOAD
00000e66: PUSH3 0x461bcd
00000e6a: PUSH1 0xe5
00000e6c: SHL
00000e6d: DUP2
00000e6e: MSTORE
00000e6f: PUSH1 0x20
00000e71: PUSH1 0x04
00000e73: DUP3
00000e74: ADD
00000e75: MSTORE
00000e76: PUSH1 0x23
00000e78: PUSH1 0x24
00000e7a: DUP3
00000e7b: ADD
00000e7c: MSTORE
00000e7d: PUSH32 0x5472616e7366657248656c7065723a204554485f5452414e534645525f464149
00000e9e: PUSH1 0x44
00000ea0: DUP3
00000ea1: ADD
00000ea2: MSTORE
00000ea3: PUSH32 0x4c45440000000000000000000000000000000000000000000000000000000000
00000ec4: PUSH1 0x64
00000ec6: DUP3
00000ec7: ADD
00000ec8: MSTORE
00000ec9: PUSH1 0x84
00000ecb: ADD
00000ecc: PUSH2 0x0357
00000ecf: JUMP
00000ed0: JUMPDEST
00000ed1: PUSH0
00000ed2: ADDRESS
00000ed3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ee8: PUSH32 0x000000000000000000000000a4245f5d3de21db029642f6ee4a31fe513fc5ad8
00000f09: AND
00000f0a: EQ
00000f0b: DUP1
00000f0c: ISZERO
00000f0d: PUSH2 0x0f35
00000f10: JUMPI
00000f11: POP
00000f12: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001
00000f33: CHAINID
00000f34: EQ
00000f35: JUMPDEST
00000f36: ISZERO
00000f37: PUSH2 0x0f5f
00000f3a: JUMPI
00000f3b: POP
00000f3c: PUSH32 0x380b34c5a494a535a5b8ff9962de9f1ab23c2e3ffea11bed416208f015705ff5
00000f5d: SWAP1
00000f5e: JUMP
00000f5f: JUMPDEST
00000f60: PUSH2 0x087d
00000f63: PUSH1 0x40
00000f65: DUP1
00000f66: MLOAD
00000f67: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
00000f88: PUSH1 0x20
00000f8a: DUP3
00000f8b: ADD
00000f8c: MSTORE
00000f8d: PUSH32 0x7d6a0cef142f1dae5db126c788fa78d30d48228eed89afa40425c12d00e4cf37
00000fae: SWAP2
00000faf: DUP2
00000fb0: ADD
00000fb1: SWAP2
00000fb2: SWAP1
00000fb3: SWAP2
00000fb4: MSTORE
00000fb5: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6
00000fd6: PUSH1 0x60
00000fd8: DUP3
00000fd9: ADD
00000fda: MSTORE
00000fdb: CHAINID
00000fdc: PUSH1 0x80
00000fde: DUP3
00000fdf: ADD
00000fe0: MSTORE
00000fe1: ADDRESS
00000fe2: PUSH1 0xa0
00000fe4: DUP3
00000fe5: ADD
00000fe6: MSTORE
00000fe7: PUSH0
00000fe8: SWAP1
00000fe9: PUSH1 0xc0
00000feb: ADD
00000fec: PUSH1 0x40
00000fee: MLOAD
00000fef: PUSH1 0x20
00000ff1: DUP2
00000ff2: DUP4
00000ff3: SUB
00000ff4: SUB
00000ff5: DUP2
00000ff6: MSTORE
00000ff7: SWAP1
00000ff8: PUSH1 0x40
00000ffa: MSTORE
00000ffb: DUP1
00000ffc: MLOAD
00000ffd: SWAP1
00000ffe: PUSH1 0x20
00001000: ADD
00001001: KECCAK256
00001002: SWAP1
00001003: POP
00001004: SWAP1
00001005: JUMP
00001006: JUMPDEST
00001007: PUSH2 0x100e
0000100a: PUSH2 0x130a
0000100d: JUMP
0000100e: JUMPDEST
0000100f: PUSH0
00001010: DUP1
00001011: SLOAD
00001012: PUSH32 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
00001033: AND
00001034: SWAP1
00001035: SSTORE
00001036: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa
00001057: CALLER
00001058: JUMPDEST
00001059: PUSH1 0x40
0000105b: MLOAD
0000105c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001071: SWAP1
00001072: SWAP2
00001073: AND
00001074: DUP2
00001075: MSTORE
00001076: PUSH1 0x20
00001078: ADD
00001079: PUSH1 0x40
0000107b: MLOAD
0000107c: DUP1
0000107d: SWAP2
0000107e: SUB
0000107f: SWAP1
00001080: LOG1
00001081: JUMP
00001082: JUMPDEST
00001083: PUSH0
00001084: DUP1
00001085: SLOAD
00001086: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000109b: DUP4
0000109c: DUP2
0000109d: AND
0000109e: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000010bf: DUP4
000010c0: AND
000010c1: DUP2
000010c2: OR
000010c3: DUP5
000010c4: SSTORE
000010c5: PUSH1 0x40
000010c7: MLOAD
000010c8: SWAP2
000010c9: SWAP1
000010ca: SWAP3
000010cb: AND
000010cc: SWAP3
000010cd: DUP4
000010ce: SWAP2
000010cf: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
000010f0: SWAP2
000010f1: SWAP1
000010f2: LOG3
000010f3: POP
000010f4: POP
000010f5: JUMP
000010f6: JUMPDEST
000010f7: PUSH2 0x10fe
000010fa: PUSH2 0x0d1b
000010fd: JUMP
000010fe: JUMPDEST
000010ff: PUSH0
00001100: DUP1
00001101: SLOAD
00001102: PUSH32 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
00001123: AND
00001124: PUSH21 0x010000000000000000000000000000000000000000
0000113a: OR
0000113b: SWAP1
0000113c: SSTORE
0000113d: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258
0000115e: PUSH2 0x1058
00001161: CALLER
00001162: SWAP1
00001163: JUMP
00001164: JUMPDEST
00001165: PUSH1 0x60
00001167: PUSH2 0x087d
0000116a: PUSH32 0x4d61657374726f436173686261636b000000000000000000000000000000000f
0000118b: PUSH1 0x02
0000118d: PUSH2 0x135d
00001190: JUMP
00001191: JUMPDEST
00001192: PUSH1 0x60
00001194: PUSH2 0x087d
00001197: PUSH32 0x3100000000000000000000000000000000000000000000000000000000000001
000011b8: PUSH1 0x03
000011ba: PUSH2 0x135d
000011bd: JUMP
000011be: JUMPDEST
000011bf: PUSH0
000011c0: DUP1
000011c1: PUSH0
000011c2: DUP4
000011c3: MLOAD
000011c4: PUSH1 0x41
000011c6: SUB
000011c7: PUSH2 0x11f5
000011ca: JUMPI
000011cb: PUSH1 0x20
000011cd: DUP5
000011ce: ADD
000011cf: MLOAD
000011d0: PUSH1 0x40
000011d2: DUP6
000011d3: ADD
000011d4: MLOAD
000011d5: PUSH1 0x60
000011d7: DUP7
000011d8: ADD
000011d9: MLOAD
000011da: PUSH0
000011db: BYTE
000011dc: PUSH2 0x11e7
000011df: DUP9
000011e0: DUP3
000011e1: DUP6
000011e2: DUP6
000011e3: PUSH2 0x1406
000011e6: JUMP
000011e7: JUMPDEST
000011e8: SWAP6
000011e9: POP
000011ea: SWAP6
000011eb: POP
000011ec: SWAP6
000011ed: POP
000011ee: POP
000011ef: POP
000011f0: POP
000011f1: PUSH2 0x1200
000011f4: JUMP
000011f5: JUMPDEST
000011f6: POP
000011f7: POP
000011f8: DUP2
000011f9: MLOAD
000011fa: PUSH0
000011fb: SWAP2
000011fc: POP
000011fd: PUSH1 0x02
000011ff: SWAP1
00001200: JUMPDEST
00001201: SWAP3
00001202: POP
00001203: SWAP3
00001204: POP
00001205: SWAP3
00001206: JUMP
00001207: JUMPDEST
00001208: PUSH0
00001209: DUP3
0000120a: PUSH1 0x03
0000120c: DUP2
0000120d: GT
0000120e: ISZERO
0000120f: PUSH2 0x121a
00001212: JUMPI
00001213: PUSH2 0x121a
00001216: PUSH2 0x1934
00001219: JUMP
0000121a: JUMPDEST
0000121b: SUB
0000121c: PUSH2 0x1223
0000121f: JUMPI
00001220: POP
00001221: POP
00001222: JUMP
00001223: JUMPDEST
00001224: PUSH1 0x01
00001226: DUP3
00001227: PUSH1 0x03
00001229: DUP2
0000122a: GT
0000122b: ISZERO
0000122c: PUSH2 0x1237
0000122f: JUMPI
00001230: PUSH2 0x1237
00001233: PUSH2 0x1934
00001236: JUMP
00001237: JUMPDEST
00001238: SUB
00001239: PUSH2 0x126e
0000123c: JUMPI
0000123d: PUSH1 0x40
0000123f: MLOAD
00001240: PUSH32 0xf645eedf00000000000000000000000000000000000000000000000000000000
00001261: DUP2
00001262: MSTORE
00001263: PUSH1 0x04
00001265: ADD
00001266: PUSH1 0x40
00001268: MLOAD
00001269: DUP1
0000126a: SWAP2
0000126b: SUB
0000126c: SWAP1
0000126d: REVERT
0000126e: JUMPDEST
0000126f: PUSH1 0x02
00001271: DUP3
00001272: PUSH1 0x03
00001274: DUP2
00001275: GT
00001276: ISZERO
00001277: PUSH2 0x1282
0000127a: JUMPI
0000127b: PUSH2 0x1282
0000127e: PUSH2 0x1934
00001281: JUMP
00001282: JUMPDEST
00001283: SUB
00001284: PUSH2 0x12bc
00001287: JUMPI
00001288: PUSH1 0x40
0000128a: MLOAD
0000128b: PUSH32 0xfce698f700000000000000000000000000000000000000000000000000000000
000012ac: DUP2
000012ad: MSTORE
000012ae: PUSH1 0x04
000012b0: DUP2
000012b1: ADD
000012b2: DUP3
000012b3: SWAP1
000012b4: MSTORE
000012b5: PUSH1 0x24
000012b7: ADD
000012b8: PUSH2 0x0357
000012bb: JUMP
000012bc: JUMPDEST
000012bd: PUSH1 0x03
000012bf: DUP3
000012c0: PUSH1 0x03
000012c2: DUP2
000012c3: GT
000012c4: ISZERO
000012c5: PUSH2 0x12d0
000012c8: JUMPI
000012c9: PUSH2 0x12d0
000012cc: PUSH2 0x1934
000012cf: JUMP
000012d0: JUMPDEST
000012d1: SUB
000012d2: PUSH2 0x0b1d
000012d5: JUMPI
000012d6: PUSH1 0x40
000012d8: MLOAD
000012d9: PUSH32 0xd78bce0c00000000000000000000000000000000000000000000000000000000
000012fa: DUP2
000012fb: MSTORE
000012fc: PUSH1 0x04
000012fe: DUP2
000012ff: ADD
00001300: DUP3
00001301: SWAP1
00001302: MSTORE
00001303: PUSH1 0x24
00001305: ADD
00001306: PUSH2 0x0357
00001309: JUMP
0000130a: JUMPDEST
0000130b: PUSH0
0000130c: SLOAD
0000130d: PUSH21 0x010000000000000000000000000000000000000000
00001323: SWAP1
00001324: DIV
00001325: PUSH1 0xff
00001327: AND
00001328: PUSH2 0x0892
0000132b: JUMPI
0000132c: PUSH1 0x40
0000132e: MLOAD
0000132f: PUSH32 0x8dfc202b00000000000000000000000000000000000000000000000000000000
00001350: DUP2
00001351: MSTORE
00001352: PUSH1 0x04
00001354: ADD
00001355: PUSH1 0x40
00001357: MLOAD
00001358: DUP1
00001359: SWAP2
0000135a: SUB
0000135b: SWAP1
0000135c: REVERT
0000135d: JUMPDEST
0000135e: PUSH1 0x60
00001360: PUSH1 0xff
00001362: DUP4
00001363: EQ
00001364: PUSH2 0x1377
00001367: JUMPI
00001368: PUSH2 0x1370
0000136b: DUP4
0000136c: PUSH2 0x14f9
0000136f: JUMP
00001370: JUMPDEST
00001371: SWAP1
00001372: POP
00001373: PUSH2 0x0db6
00001376: JUMP
00001377: JUMPDEST
00001378: DUP2
00001379: DUP1
0000137a: SLOAD
0000137b: PUSH2 0x1383
0000137e: SWAP1
0000137f: PUSH2 0x1961
00001382: JUMP
00001383: JUMPDEST
00001384: DUP1
00001385: PUSH1 0x1f
00001387: ADD
00001388: PUSH1 0x20
0000138a: DUP1
0000138b: SWAP2
0000138c: DIV
0000138d: MUL
0000138e: PUSH1 0x20
00001390: ADD
00001391: PUSH1 0x40
00001393: MLOAD
00001394: SWAP1
00001395: DUP2
00001396: ADD
00001397: PUSH1 0x40
00001399: MSTORE
0000139a: DUP1
0000139b: SWAP3
0000139c: SWAP2
0000139d: SWAP1
0000139e: DUP2
0000139f: DUP2
000013a0: MSTORE
000013a1: PUSH1 0x20
000013a3: ADD
000013a4: DUP3
000013a5: DUP1
000013a6: SLOAD
000013a7: PUSH2 0x13af
000013aa: SWAP1
000013ab: PUSH2 0x1961
000013ae: JUMP
000013af: JUMPDEST
000013b0: DUP1
000013b1: ISZERO
000013b2: PUSH2 0x13fa
000013b5: JUMPI
000013b6: DUP1
000013b7: PUSH1 0x1f
000013b9: LT
000013ba: PUSH2 0x13d1
000013bd: JUMPI
000013be: PUSH2 0x0100
000013c1: DUP1
000013c2: DUP4
000013c3: SLOAD
000013c4: DIV
000013c5: MUL
000013c6: DUP4
000013c7: MSTORE
000013c8: SWAP2
000013c9: PUSH1 0x20
000013cb: ADD
000013cc: SWAP2
000013cd: PUSH2 0x13fa
000013d0: JUMP
000013d1: JUMPDEST
000013d2: DUP3
000013d3: ADD
000013d4: SWAP2
000013d5: SWAP1
000013d6: PUSH0
000013d7: MSTORE
000013d8: PUSH1 0x20
000013da: PUSH0
000013db: KECCAK256
000013dc: SWAP1
000013dd: JUMPDEST
000013de: DUP2
000013df: SLOAD
000013e0: DUP2
000013e1: MSTORE
000013e2: SWAP1
000013e3: PUSH1 0x01
000013e5: ADD
000013e6: SWAP1
000013e7: PUSH1 0x20
000013e9: ADD
000013ea: DUP1
000013eb: DUP4
000013ec: GT
000013ed: PUSH2 0x13dd
000013f0: JUMPI
000013f1: DUP3
000013f2: SWAP1
000013f3: SUB
000013f4: PUSH1 0x1f
000013f6: AND
000013f7: DUP3
000013f8: ADD
000013f9: SWAP2
000013fa: JUMPDEST
000013fb: POP
000013fc: POP
000013fd: POP
000013fe: POP
000013ff: POP
00001400: SWAP1
00001401: POP
00001402: PUSH2 0x0db6
00001405: JUMP
00001406: JUMPDEST
00001407: PUSH0
00001408: DUP1
00001409: DUP1
0000140a: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
0000142b: DUP5
0000142c: GT
0000142d: ISZERO
0000142e: PUSH2 0x143f
00001431: JUMPI
00001432: POP
00001433: PUSH0
00001434: SWAP2
00001435: POP
00001436: PUSH1 0x03
00001438: SWAP1
00001439: POP
0000143a: DUP3
0000143b: PUSH2 0x14ef
0000143e: JUMP
0000143f: JUMPDEST
00001440: PUSH1 0x40
00001442: DUP1
00001443: MLOAD
00001444: PUSH0
00001445: DUP1
00001446: DUP3
00001447: MSTORE
00001448: PUSH1 0x20
0000144a: DUP3
0000144b: ADD
0000144c: DUP1
0000144d: DUP5
0000144e: MSTORE
0000144f: DUP11
00001450: SWAP1
00001451: MSTORE
00001452: PUSH1 0xff
00001454: DUP10
00001455: AND
00001456: SWAP3
00001457: DUP3
00001458: ADD
00001459: SWAP3
0000145a: SWAP1
0000145b: SWAP3
0000145c: MSTORE
0000145d: PUSH1 0x60
0000145f: DUP2
00001460: ADD
00001461: DUP8
00001462: SWAP1
00001463: MSTORE
00001464: PUSH1 0x80
00001466: DUP2
00001467: ADD
00001468: DUP7
00001469: SWAP1
0000146a: MSTORE
0000146b: PUSH1 0x01
0000146d: SWAP1
0000146e: PUSH1 0xa0
00001470: ADD
00001471: PUSH1 0x20
00001473: PUSH1 0x40
00001475: MLOAD
00001476: PUSH1 0x20
00001478: DUP2
00001479: SUB
0000147a: SWAP1
0000147b: DUP1
0000147c: DUP5
0000147d: SUB
0000147e: SWAP1
0000147f: DUP6
00001480: GAS
00001481: STATICCALL
00001482: ISZERO
00001483: DUP1
00001484: ISZERO
00001485: PUSH2 0x1490
00001488: JUMPI
00001489: RETURNDATASIZE
0000148a: PUSH0
0000148b: DUP1
0000148c: RETURNDATACOPY
0000148d: RETURNDATASIZE
0000148e: PUSH0
0000148f: REVERT
00001490: JUMPDEST
00001491: POP
00001492: POP
00001493: PUSH1 0x40
00001495: MLOAD
00001496: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000014b7: ADD
000014b8: MLOAD
000014b9: SWAP2
000014ba: POP
000014bb: POP
000014bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014d1: DUP2
000014d2: AND
000014d3: PUSH2 0x14e6
000014d6: JUMPI
000014d7: POP
000014d8: PUSH0
000014d9: SWAP3
000014da: POP
000014db: PUSH1 0x01
000014dd: SWAP2
000014de: POP
000014df: DUP3
000014e0: SWAP1
000014e1: POP
000014e2: PUSH2 0x14ef
000014e5: JUMP
000014e6: JUMPDEST
000014e7: SWAP3
000014e8: POP
000014e9: PUSH0
000014ea: SWAP2
000014eb: POP
000014ec: DUP2
000014ed: SWAP1
000014ee: POP
000014ef: JUMPDEST
000014f0: SWAP5
000014f1: POP
000014f2: SWAP5
000014f3: POP
000014f4: SWAP5
000014f5: SWAP2
000014f6: POP
000014f7: POP
000014f8: JUMP
000014f9: JUMPDEST
000014fa: PUSH1 0x60
000014fc: PUSH0
000014fd: PUSH2 0x1505
00001500: DUP4
00001501: PUSH2 0x1536
00001504: JUMP
00001505: JUMPDEST
00001506: PUSH1 0x40
00001508: DUP1
00001509: MLOAD
0000150a: PUSH1 0x20
0000150c: DUP1
0000150d: DUP3
0000150e: MSTORE
0000150f: DUP2
00001510: DUP4
00001511: ADD
00001512: SWAP1
00001513: SWAP3
00001514: MSTORE
00001515: SWAP2
00001516: SWAP3
00001517: POP
00001518: PUSH0
00001519: SWAP2
0000151a: SWAP1
0000151b: PUSH1 0x20
0000151d: DUP3
0000151e: ADD
0000151f: DUP2
00001520: DUP1
00001521: CALLDATASIZE
00001522: DUP4
00001523: CALLDATACOPY
00001524: POP
00001525: POP
00001526: POP
00001527: SWAP2
00001528: DUP3
00001529: MSTORE
0000152a: POP
0000152b: PUSH1 0x20
0000152d: DUP2
0000152e: ADD
0000152f: SWAP3
00001530: SWAP1
00001531: SWAP3
00001532: MSTORE
00001533: POP
00001534: SWAP1
00001535: JUMP
00001536: JUMPDEST
00001537: PUSH0
00001538: PUSH1 0xff
0000153a: DUP3
0000153b: AND
0000153c: PUSH1 0x1f
0000153e: DUP2
0000153f: GT
00001540: ISZERO
00001541: PUSH2 0x0db6
00001544: JUMPI
00001545: PUSH1 0x40
00001547: MLOAD
00001548: PUSH32 0xb3512b0c00000000000000000000000000000000000000000000000000000000
00001569: DUP2
0000156a: MSTORE
0000156b: PUSH1 0x04
0000156d: ADD
0000156e: PUSH1 0x40
00001570: MLOAD
00001571: DUP1
00001572: SWAP2
00001573: SUB
00001574: SWAP1
00001575: REVERT
00001576: JUMPDEST
00001577: DUP1
00001578: CALLDATALOAD
00001579: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000158e: DUP2
0000158f: AND
00001590: DUP2
00001591: EQ
00001592: PUSH2 0x1599
00001595: JUMPI
00001596: PUSH0
00001597: DUP1
00001598: REVERT
00001599: JUMPDEST
0000159a: SWAP2
0000159b: SWAP1
0000159c: POP
0000159d: JUMP
0000159e: JUMPDEST
0000159f: PUSH0
000015a0: DUP1
000015a1: PUSH0
000015a2: PUSH1 0x60
000015a4: DUP5
000015a5: DUP7
000015a6: SUB
000015a7: SLT
000015a8: ISZERO
000015a9: PUSH2 0x15b0
000015ac: JUMPI
000015ad: PUSH0
000015ae: DUP1
000015af: REVERT
000015b0: JUMPDEST
000015b1: PUSH2 0x15b9
000015b4: DUP5
000015b5: PUSH2 0x1576
000015b8: JUMP
000015b9: JUMPDEST
000015ba: SWAP3
000015bb: POP
000015bc: PUSH2 0x15c7
000015bf: PUSH1 0x20
000015c1: DUP6
000015c2: ADD
000015c3: PUSH2 0x1576
000015c6: JUMP
000015c7: JUMPDEST
000015c8: SWAP2
000015c9: POP
000015ca: PUSH1 0x40
000015cc: DUP5
000015cd: ADD
000015ce: CALLDATALOAD
000015cf: SWAP1
000015d0: POP
000015d1: SWAP3
000015d2: POP
000015d3: SWAP3
000015d4: POP
000015d5: SWAP3
000015d6: JUMP
000015d7: JUMPDEST
000015d8: PUSH0
000015d9: DUP1
000015da: DUP4
000015db: PUSH1 0x1f
000015dd: DUP5
000015de: ADD
000015df: SLT
000015e0: PUSH2 0x15e7
000015e3: JUMPI
000015e4: PUSH0
000015e5: DUP1
000015e6: REVERT
000015e7: JUMPDEST
000015e8: POP
000015e9: DUP2
000015ea: CALLDATALOAD
000015eb: PUSH8 0xffffffffffffffff
000015f4: DUP2
000015f5: GT
000015f6: ISZERO
000015f7: PUSH2 0x15fe
000015fa: JUMPI
000015fb: PUSH0
000015fc: DUP1
000015fd: REVERT
000015fe: JUMPDEST
000015ff: PUSH1 0x20
00001601: DUP4
00001602: ADD
00001603: SWAP2
00001604: POP
00001605: DUP4
00001606: PUSH1 0x20
00001608: DUP3
00001609: PUSH1 0x05
0000160b: SHL
0000160c: DUP6
0000160d: ADD
0000160e: ADD
0000160f: GT
00001610: ISZERO
00001611: PUSH2 0x1618
00001614: JUMPI
00001615: PUSH0
00001616: DUP1
00001617: REVERT
00001618: JUMPDEST
00001619: SWAP3
0000161a: POP
0000161b: SWAP3
0000161c: SWAP1
0000161d: POP
0000161e: JUMP
0000161f: JUMPDEST
00001620: PUSH0
00001621: DUP1
00001622: PUSH0
00001623: DUP1
00001624: PUSH0
00001625: DUP1
00001626: PUSH0
00001627: PUSH1 0x80
00001629: DUP9
0000162a: DUP11
0000162b: SUB
0000162c: SLT
0000162d: ISZERO
0000162e: PUSH2 0x1635
00001631: JUMPI
00001632: PUSH0
00001633: DUP1
00001634: REVERT
00001635: JUMPDEST
00001636: DUP8
00001637: CALLDATALOAD
00001638: PUSH8 0xffffffffffffffff
00001641: DUP1
00001642: DUP3
00001643: GT
00001644: ISZERO
00001645: PUSH2 0x164c
00001648: JUMPI
00001649: PUSH0
0000164a: DUP1
0000164b: REVERT
0000164c: JUMPDEST
0000164d: PUSH2 0x1658
00001650: DUP12
00001651: DUP4
00001652: DUP13
00001653: ADD
00001654: PUSH2 0x15d7
00001657: JUMP
00001658: JUMPDEST
00001659: SWAP1
0000165a: SWAP10
0000165b: POP
0000165c: SWAP8
0000165d: POP
0000165e: PUSH1 0x20
00001660: DUP11
00001661: ADD
00001662: CALLDATALOAD
00001663: SWAP2
00001664: POP
00001665: DUP1
00001666: DUP3
00001667: GT
00001668: ISZERO
00001669: PUSH2 0x1670
0000166c: JUMPI
0000166d: PUSH0
0000166e: DUP1
0000166f: REVERT
00001670: JUMPDEST
00001671: PUSH2 0x167c
00001674: DUP12
00001675: DUP4
00001676: DUP13
00001677: ADD
00001678: PUSH2 0x15d7
0000167b: JUMP
0000167c: JUMPDEST
0000167d: SWAP1
0000167e: SWAP8
0000167f: POP
00001680: SWAP6
00001681: POP
00001682: DUP6
00001683: SWAP2
00001684: POP
00001685: PUSH2 0x1690
00001688: PUSH1 0x40
0000168a: DUP12
0000168b: ADD
0000168c: PUSH2 0x1576
0000168f: JUMP
00001690: JUMPDEST
00001691: SWAP5
00001692: POP
00001693: PUSH1 0x60
00001695: DUP11
00001696: ADD
00001697: CALLDATALOAD
00001698: SWAP2
00001699: POP
0000169a: DUP1
0000169b: DUP3
0000169c: GT
0000169d: ISZERO
0000169e: PUSH2 0x16a5
000016a1: JUMPI
000016a2: PUSH0
000016a3: DUP1
000016a4: REVERT
000016a5: JUMPDEST
000016a6: DUP2
000016a7: DUP11
000016a8: ADD
000016a9: SWAP2
000016aa: POP
000016ab: DUP11
000016ac: PUSH1 0x1f
000016ae: DUP4
000016af: ADD
000016b0: SLT
000016b1: PUSH2 0x16b8
000016b4: JUMPI
000016b5: PUSH0
000016b6: DUP1
000016b7: REVERT
000016b8: JUMPDEST
000016b9: DUP2
000016ba: CALLDATALOAD
000016bb: DUP2
000016bc: DUP2
000016bd: GT
000016be: ISZERO
000016bf: PUSH2 0x16c6
000016c2: JUMPI
000016c3: PUSH0
000016c4: DUP1
000016c5: REVERT
000016c6: JUMPDEST
000016c7: DUP12
000016c8: PUSH1 0x20
000016ca: DUP3
000016cb: DUP6
000016cc: ADD
000016cd: ADD
000016ce: GT
000016cf: ISZERO
000016d0: PUSH2 0x16d7
000016d3: JUMPI
000016d4: PUSH0
000016d5: DUP1
000016d6: REVERT
000016d7: JUMPDEST
000016d8: PUSH1 0x20
000016da: DUP4
000016db: ADD
000016dc: SWAP5
000016dd: POP
000016de: DUP1
000016df: SWAP4
000016e0: POP
000016e1: POP
000016e2: POP
000016e3: POP
000016e4: SWAP3
000016e5: SWAP6
000016e6: SWAP9
000016e7: SWAP2
000016e8: SWAP5
000016e9: SWAP8
000016ea: POP
000016eb: SWAP3
000016ec: SWAP6
000016ed: POP
000016ee: JUMP
000016ef: JUMPDEST
000016f0: PUSH0
000016f1: PUSH1 0x20
000016f3: DUP3
000016f4: DUP5
000016f5: SUB
000016f6: SLT
000016f7: ISZERO
000016f8: PUSH2 0x16ff
000016fb: JUMPI
000016fc: PUSH0
000016fd: DUP1
000016fe: REVERT
000016ff: JUMPDEST
00001700: PUSH2 0x1708
00001703: DUP3
00001704: PUSH2 0x1576
00001707: JUMP
00001708: JUMPDEST
00001709: SWAP4
0000170a: SWAP3
0000170b: POP
0000170c: POP
0000170d: POP
0000170e: JUMP
0000170f: JUMPDEST
00001710: PUSH0
00001711: DUP2
00001712: MLOAD
00001713: DUP1
00001714: DUP5
00001715: MSTORE
00001716: DUP1
00001717: PUSH1 0x20
00001719: DUP5
0000171a: ADD
0000171b: PUSH1 0x20
0000171d: DUP7
0000171e: ADD
0000171f: MCOPY
00001720: PUSH0
00001721: PUSH1 0x20
00001723: DUP3
00001724: DUP7
00001725: ADD
00001726: ADD
00001727: MSTORE
00001728: PUSH1 0x20
0000172a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
0000174b: PUSH1 0x1f
0000174d: DUP4
0000174e: ADD
0000174f: AND
00001750: DUP6
00001751: ADD
00001752: ADD
00001753: SWAP2
00001754: POP
00001755: POP
00001756: SWAP3
00001757: SWAP2
00001758: POP
00001759: POP
0000175a: JUMP
0000175b: JUMPDEST
0000175c: PUSH32 0xff00000000000000000000000000000000000000000000000000000000000000
0000177d: DUP9
0000177e: AND
0000177f: DUP2
00001780: MSTORE
00001781: PUSH0
00001782: PUSH1 0x20
00001784: PUSH1 0xe0
00001786: PUSH1 0x20
00001788: DUP5
00001789: ADD
0000178a: MSTORE
0000178b: PUSH2 0x1797
0000178e: PUSH1 0xe0
00001790: DUP5
00001791: ADD
00001792: DUP11
00001793: PUSH2 0x170f
00001796: JUMP
00001797: JUMPDEST
00001798: DUP4
00001799: DUP2
0000179a: SUB
0000179b: PUSH1 0x40
0000179d: DUP6
0000179e: ADD
0000179f: MSTORE
000017a0: PUSH2 0x17a9
000017a3: DUP2
000017a4: DUP11
000017a5: PUSH2 0x170f
000017a8: JUMP
000017a9: JUMPDEST
000017aa: PUSH1 0x60
000017ac: DUP6
000017ad: ADD
000017ae: DUP10
000017af: SWAP1
000017b0: MSTORE
000017b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017c6: DUP9
000017c7: AND
000017c8: PUSH1 0x80
000017ca: DUP7
000017cb: ADD
000017cc: MSTORE
000017cd: PUSH1 0xa0
000017cf: DUP6
000017d0: ADD
000017d1: DUP8
000017d2: SWAP1
000017d3: MSTORE
000017d4: DUP5
000017d5: DUP2
000017d6: SUB
000017d7: PUSH1 0xc0
000017d9: DUP7
000017da: ADD
000017db: MSTORE
000017dc: DUP6
000017dd: MLOAD
000017de: DUP1
000017df: DUP3
000017e0: MSTORE
000017e1: PUSH1 0x20
000017e3: DUP1
000017e4: DUP9
000017e5: ADD
000017e6: SWAP4
000017e7: POP
000017e8: SWAP1
000017e9: SWAP2
000017ea: ADD
000017eb: SWAP1
000017ec: PUSH0
000017ed: JUMPDEST
000017ee: DUP2
000017ef: DUP2
000017f0: LT
000017f1: ISZERO
000017f2: PUSH2 0x1809
000017f5: JUMPI
000017f6: DUP4
000017f7: MLOAD
000017f8: DUP4
000017f9: MSTORE
000017fa: SWAP3
000017fb: DUP5
000017fc: ADD
000017fd: SWAP3
000017fe: SWAP2
000017ff: DUP5
00001800: ADD
00001801: SWAP2
00001802: PUSH1 0x01
00001804: ADD
00001805: PUSH2 0x17ed
00001808: JUMP
00001809: JUMPDEST
0000180a: POP
0000180b: SWAP1
0000180c: SWAP13
0000180d: SWAP12
0000180e: POP
0000180f: POP
00001810: POP
00001811: POP
00001812: POP
00001813: POP
00001814: POP
00001815: POP
00001816: POP
00001817: POP
00001818: POP
00001819: POP
0000181a: JUMP
0000181b: JUMPDEST
0000181c: PUSH0
0000181d: PUSH1 0x20
0000181f: DUP3
00001820: DUP5
00001821: SUB
00001822: SLT
00001823: ISZERO
00001824: PUSH2 0x182b
00001827: JUMPI
00001828: PUSH0
00001829: DUP1
0000182a: REVERT
0000182b: JUMPDEST
0000182c: POP
0000182d: CALLDATALOAD
0000182e: SWAP2
0000182f: SWAP1
00001830: POP
00001831: JUMP
00001832: JUMPDEST
00001833: PUSH0
00001834: DUP1
00001835: PUSH1 0x40
00001837: DUP4
00001838: DUP6
00001839: SUB
0000183a: SLT
0000183b: ISZERO
0000183c: PUSH2 0x1843
0000183f: JUMPI
00001840: PUSH0
00001841: DUP1
00001842: REVERT
00001843: JUMPDEST
00001844: PUSH2 0x184c
00001847: DUP4
00001848: PUSH2 0x1576
0000184b: JUMP
0000184c: JUMPDEST
0000184d: SWAP5
0000184e: PUSH1 0x20
00001850: SWAP4
00001851: SWAP1
00001852: SWAP4
00001853: ADD
00001854: CALLDATALOAD
00001855: SWAP4
00001856: POP
00001857: POP
00001858: POP
00001859: JUMP
0000185a: JUMPDEST
0000185b: PUSH0
0000185c: PUSH32 0x07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000187d: DUP4
0000187e: GT
0000187f: ISZERO
00001880: PUSH2 0x1887
00001883: JUMPI
00001884: PUSH0
00001885: DUP1
00001886: REVERT
00001887: JUMPDEST
00001888: DUP3
00001889: PUSH1 0x05
0000188b: SHL
0000188c: DUP1
0000188d: DUP6
0000188e: DUP5
0000188f: CALLDATACOPY
00001890: SWAP2
00001891: SWAP1
00001892: SWAP2
00001893: ADD
00001894: SWAP4
00001895: SWAP3
00001896: POP
00001897: POP
00001898: POP
00001899: JUMP
0000189a: JUMPDEST
0000189b: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000018bc: PUSH0
000018bd: MSTORE
000018be: PUSH1 0x32
000018c0: PUSH1 0x04
000018c2: MSTORE
000018c3: PUSH1 0x24
000018c5: PUSH0
000018c6: REVERT
000018c7: JUMPDEST
000018c8: DUP1
000018c9: DUP3
000018ca: ADD
000018cb: DUP1
000018cc: DUP3
000018cd: GT
000018ce: ISZERO
000018cf: PUSH2 0x0db6
000018d2: JUMPI
000018d3: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000018f4: PUSH0
000018f5: MSTORE
000018f6: PUSH1 0x11
000018f8: PUSH1 0x04
000018fa: MSTORE
000018fb: PUSH1 0x24
000018fd: PUSH0
000018fe: REVERT
000018ff: JUMPDEST
00001900: PUSH0
00001901: DUP3
00001902: MLOAD
00001903: DUP1
00001904: PUSH1 0x20
00001906: DUP6
00001907: ADD
00001908: DUP5
00001909: MCOPY
0000190a: PUSH0
0000190b: SWAP3
0000190c: ADD
0000190d: SWAP2
0000190e: DUP3
0000190f: MSTORE
00001910: POP
00001911: SWAP2
00001912: SWAP1
00001913: POP
00001914: JUMP
00001915: JUMPDEST
00001916: PUSH0
00001917: PUSH1 0x20
00001919: DUP3
0000191a: DUP5
0000191b: SUB
0000191c: SLT
0000191d: ISZERO
0000191e: PUSH2 0x1925
00001921: JUMPI
00001922: PUSH0
00001923: DUP1
00001924: REVERT
00001925: JUMPDEST
00001926: DUP2
00001927: MLOAD
00001928: DUP1
00001929: ISZERO
0000192a: ISZERO
0000192b: DUP2
0000192c: EQ
0000192d: PUSH2 0x1708
00001930: JUMPI
00001931: PUSH0
00001932: DUP1
00001933: REVERT
00001934: JUMPDEST
00001935: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00001956: PUSH0
00001957: MSTORE
00001958: PUSH1 0x21
0000195a: PUSH1 0x04
0000195c: MSTORE
0000195d: PUSH1 0x24
0000195f: PUSH0
00001960: REVERT
00001961: JUMPDEST
00001962: PUSH1 0x01
00001964: DUP2
00001965: DUP2
00001966: SHR
00001967: SWAP1
00001968: DUP3
00001969: AND
0000196a: DUP1
0000196b: PUSH2 0x1975
0000196e: JUMPI
0000196f: PUSH1 0x7f
00001971: DUP3
00001972: AND
00001973: SWAP2
00001974: POP
00001975: JUMPDEST
00001976: PUSH1 0x20
00001978: DUP3
00001979: LT
0000197a: DUP2
0000197b: SUB
0000197c: PUSH2 0x19ac
0000197f: JUMPI
00001980: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000019a1: PUSH0
000019a2: MSTORE
000019a3: PUSH1 0x22
000019a5: PUSH1 0x04
000019a7: MSTORE
000019a8: PUSH1 0x24
000019aa: PUSH0
000019ab: REVERT
000019ac: JUMPDEST
000019ad: POP
000019ae: SWAP2
000019af: SWAP1
000019b0: POP
000019b1: JUMP
000019b2: INVALID
000019b3: LOG2
000019b4: PUSH5 0x6970667358
000019ba: UNKNOWN(0x22)
000019bb: SLT
000019bc: KECCAK256
000019bd: EXTCODESIZE
000019be: UNKNOWN(0x0D)
000019bf: ADDMOD
000019c0: MULMOD
000019c1: UNKNOWN(0xEE)
000019c2: UNKNOWN(0xFB)
000019c3: UNKNOWN(0xE5)
000019c4: CALLDATACOPY
000019c5: JUMPDEST
000019c6: SWAP15
000019c7: UNKNOWN(0xD7)
000019c8: UNKNOWN(0xEA)
000019c9: UNKNOWN(0xDC)
000019ca: XOR
000019cb: SWAP9
000019cc: UNKNOWN(0xA5)
000019cd: SUB
000019ce: UNKNOWN(0xE0)
000019cf: CHAINID
000019d0: PUSH12 0xf2585615ca84debd1e7f0b61
000019dd: PUSH5 0x736f6c6343
000019e3: STOP
000019e4: ADDMOD
000019e5: NOT
000019e6: STOP
000019e7: 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: 0x377e2f09dcd4debcd59e2fdccd07010b3080430bd12489d39ffb1307132d6931
call_targets: 0xa4245f5d3de21db029642f6ee4a31fe513fc5ad8
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x377e2f09dcd4debcd59e2fdccd07010b3080430bd12489d39ffb1307132d6931",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xa4245f5d3de21db029642f6ee4a31fe513fc5ad8"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdbe7e3bd",
            "selector": "0xdbe7e3bd",
            "calldata_variants": [
                "0xdbe7e3bd",
                "0xdbe7e3bd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3fef3a3",
            "selector": "0xf3fef3a3",
            "calldata_variants": [
                "0xf3fef3a3",
                "0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x715018a6",
            "selector": "0x715018a6",
            "calldata_variants": [
                "0x715018a6",
                "0x715018a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8456cb59",
            "selector": "0x8456cb59",
            "calldata_variants": [
                "0x8456cb59",
                "0x8456cb590000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x84b0196e",
            "selector": "0x84b0196e",
            "calldata_variants": [
                "0x84b0196e",
                "0x84b0196e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3644e515",
            "selector": "0x3644e515",
            "calldata_variants": [
                "0x3644e515",
                "0x3644e5150000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3113,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3622,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x377e2f09dcd4debcd59e2fdccd07010b3080430bd12489d39ffb1307132d6931
call_targets: 0xa4245f5d3de21db029642f6ee4a31fe513fc5ad8
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x377e2f09dcd4debcd59e2fdccd07010b3080430bd12489d39ffb1307132d6931",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xa4245f5d3de21db029642f6ee4a31fe513fc5ad8"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdbe7e3bd",
            "selector": "0xdbe7e3bd",
            "calldata_variants": [
                "0xdbe7e3bd",
                "0xdbe7e3bd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3fef3a3",
            "selector": "0xf3fef3a3",
            "calldata_variants": [
                "0xf3fef3a3",
                "0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x715018a6",
            "selector": "0x715018a6",
            "calldata_variants": [
                "0x715018a6",
                "0x715018a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8456cb59",
            "selector": "0x8456cb59",
            "calldata_variants": [
                "0x8456cb59",
                "0x8456cb590000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x84b0196e",
            "selector": "0x84b0196e",
            "calldata_variants": [
                "0x84b0196e",
                "0x84b0196e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3644e515",
            "selector": "0x3644e515",
            "calldata_variants": [
                "0x3644e515",
                "0x3644e5150000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3113,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3622,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}