f1095a59-e30b-4f6d-877e-c15a18e9ea14
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 31124 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 76558 | artifact.fetch | complete | 1 / 3 | 2 weeks ago |
| 76559 | tool.cast_disasm | complete | 1 / 3 | 2 weeks ago |
| 76560 | analysis.bundle | complete | 1 / 3 | 2 weeks ago |
| 76561 | capability.graph | complete | 1 / 3 | 2 weeks ago |
| 76562 | detector.run | complete | 1 / 3 | 2 weeks ago |
| 76563 | validation.fork | complete | 1 / 3 | 2 weeks ago |
No slither job recorded yet.
[codex:281659] OpenAI Codex v0.77.0 (research preview)
[codex:281659] --------
[codex:281659] workdir: /tmp/codex-multi-z05n8dgt
[codex:281659] model: gpt-5.2-codex
[codex:281659] provider: openai
[codex:281659] approval: never
[codex:281659] sandbox: read-only
[codex:281659] reasoning effort: xhigh
[codex:281659] reasoning summaries: auto
[codex:281659] session id: 019b7b27-4cc3-7031-af92-f84d842fae4d
[codex:281659] --------
[codex:281659] user
[codex:281659] 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:281659]
[codex:281659] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:281659]
[codex:281659] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:281659] - Gas inefficiency, code quality, or best practices
[codex:281659] - Theoretical vulnerabilities without a clear extraction path
[codex:281659] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:281659] - Issues requiring social engineering or off-chain coordination
[codex:281659]
[codex:281659] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:281659] - CALL/DELEGATECALL with controllable destination or calldata
[codex:281659] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:281659] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:281659] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:281659] - External calls before state updates (reentrancy)
[codex:281659] - SELFDESTRUCT with controllable beneficiary
[codex:281659] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:281659]
[codex:281659] For each finding, you MUST explain:
[codex:281659] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:281659] 2. The concrete sequence of transactions to extract value
[codex:281659] 3. Why you believe this is exploitable (not just suspicious)
[codex:281659]
[codex:281659] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:281659] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:281659]
[codex:281659] Output MUST be valid JSON matching the provided schema.
[codex:281659] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:281659] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:281659] mcp startup: no servers
[codex:281659]
[codex:281659] thinking
[codex:281659] **Choosing file read method**
[codex:281659] exec
[codex:281659] /bin/bash -lc ls in /tmp/codex-multi-z05n8dgt succeeded in 5ms:
[codex:281659] BYTECODE_BUNDLE.txt
[codex:281659] codex-output-schema.json
[codex:281659]
[codex:281659] thinking
[codex:281659] **Reading file**
[codex:281659] exec
[codex:281659] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-z05n8dgt succeeded in 5ms:
[codex:281659] Runtime bytecode bundle for best-effort auditing.
[codex:281659] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:281659]
[codex:281659] FILE: runtime_bytecode.hex
[codex:281659] 0x6060604052361561011b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c271461017c578063173825d9146101d957806320ea8d861461020c5780632f54bf6e146102295780633411c81c146102745780634c3a6ae0146102c857806354741525146102ef5780637065cb481461032d578063784547a7146103605780638a88c4fe146103955780638b51d13f146103f05780639ace38c214610421578063a0e67e2b14610519578063a8abe69a1461058b578063b5dc40c31461062a578063b77bf600146106aa578063ba51a6df146106cd578063c01a8c84146106ea578063c642747414610707578063d74f8edd1461079a578063dc8452cd146107bd575b61017a5b6000341115610177573373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a25b5b565b005b346100005761019760048080359060200190919050506107e0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b346100005761020a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061081d565b005b34610000576102276004808035906020019091905050610af2565b005b346100005761025a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ca0565b604051808215151515815260200191505060405180910390f35b34610000576102ae600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610cc0565b604051808215151515815260200191505060405180910390f35b34610000576102d5610cef565b604051808215151515815260200191505060405180910390f35b3461000057610317600480803515159060200190919080351515906020019091905050610d02565b6040518082815260200191505060405180910390f35b346100005761035e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d99565b005b346100005761037b6004808035906020019091905050610fd9565b604051808215151515815260200191505060405180910390f35b34610000576103ee600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110c0565b005b346100005761040b60048080359060200190919050506113bb565b6040518082815260200191505060405180910390f35b346100005761043c6004808035906020019091905050611488565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001831515151581526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156105075780601f106104dc57610100808354040283529160200191610507565b820191906000526020600020905b8154815290600101906020018083116104ea57829003601f168201915b50509550505050505060405180910390f35b34610000576105266114e4565b6040518080602001828103825283818151815260200191508051906020019060200280838360008314610578575b80518252602083111561057857602082019150602081019050602083039250610554565b5050509050019250505060405180910390f35b34610000576105c5600480803590602001909190803590602001909190803515159060200190919080351515906020019091905050611582565b6040518080602001828103825283818151815260200191508051906020019060200280838360008314610617575b805182526020831115610617576020820191506020810190506020830392506105f3565b5050509050019250505060405180910390f35b346100005761064560048080359060200190919050506116ef565b6040518080602001828103825283818151815260200191508051906020019060200280838360008314610697575b80518252602083111561069757602082019150602081019050602083039250610673565b5050509050019250505060405180910390f35b34610000576106b7611924565b6040518082815260200191505060405180910390f35b34610000576106e8600480803590602001909190505061192a565b005b346100005761070560048080359060200190919050506119e8565b005b3461000057610784600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611bca565b6040518082815260200191505060405180910390f35b34610000576107a7611bea565b6040518082815260200191505060405180910390f35b34610000576107ca611bef565b6040518082815260200191505060405180910390f35b600481815481101561000057906000526020600020900160005b915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561085957610000565b81600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156108b257610000565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600091505b600160048054905003821015610a35578273ffffffffffffffffffffffffffffffffffffffff16600483815481101561000057906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a27576004600160048054905003815481101561000057906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600483815481101561000057906000526020600020900160005b6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a35565b5b818060010192505061090f565b6001600481818054905003915081815481835581811511610a8257818360005260206000209182019101610a8191905b80821115610a7d576000816000905550600101610a65565b5090565b5b505050506004805490506005541115610aa457610aa360048054905061192a565b5b8273ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405180905060405180910390a25b5b505b5050565b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610b4b57610000565b81336002600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610bb657610000565b836001600082815260200190815260200160002060030160009054906101000a900460ff1615610be557610000565b60006002600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e960405180905060405180910390a35b5b505b50505b5050565b60036020528060005260406000206000915054906101000a900460ff1681565b60026020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600060009054906101000a900460ff1681565b60006000600090505b600654811015610d9157838015610d4357506001600082815260200190815260200160002060030160009054906101000a900460ff16155b80610d775750828015610d7657506001600082815260200190815260200160002060030160009054906101000a900460ff165b5b15610d83576001820191505b5b8080600101915050610d0b565b5b5092915050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dd357610000565b80600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e2b57610000565b8160008173ffffffffffffffffffffffffffffffffffffffff161415610e5057610000565b6001600480549050016005546032821115610e6a57610000565b81811115610e7757610000565b6000811415610e8557610000565b6000821415610e9357610000565b6001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060048054806001018281815481835581811511610f3457818360005260206000209182019101610f3391905b80821115610f2f576000816000905550600101610f17565b5090565b5b505050916000526020600020900160005b87909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508473ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405180905060405180910390a25b5b50505b505b505b50565b60006000600060009150600090505b6004805490508110156110b857600260008581526020019081526020016000206000600483815481101561000057906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611097576001820191505b6005548214156110aa57600192506110b9565b5b8080600101915050610fe8565b5b5050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110fa57610000565b82600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561115357610000565b82600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111ab57610000565b8473ffffffffffffffffffffffffffffffffffffffff16600484815481101561000057906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561121d57610000565b83600484815481101561000057906000526020600020900160005b6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405180905060405180910390a28373ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405180905060405180910390a25b5b505b505b505050565b60006000600090505b60048054905081101561148157600260008481526020019081526020016000206000600483815481101561000057906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611473576001820191505b5b80806001019150506113c4565b5b50919050565b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201908060030160009054906101000a900460ff16905084565b6020604051908101604052806000815250600480548060200260200160405190810160405280929190818152602001828054801561157757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161152d575b505050505090505b90565b60206040519081016040528060008152506020604051908101604052806000815250600060006006546040518059106115b85750595b908082528060200260200182016040525b50925060009150600090505b6006548110156116755785801561160d57506001600082815260200190815260200160002060030160009054906101000a900460ff16155b80611641575084801561164057506001600082815260200190815260200160002060030160009054906101000a900460ff165b5b156116675780838381518110156100005790602001906020020181815250506001820191505b5b80806001019150506115d5565b8787036040518059106116855750595b908082528060200260200182016040525b5093508790505b868110156116e3578281815181101561000057906020019060200201518489830381518110156100005790602001906020020181815250505b808060010191505061169d565b5b505050949350505050565b60206040519081016040528060008152506020604051908101604052806000815250600060006004805490506040518059106117285750595b908082528060200260200182016040525b50925060009150600090505b60048054905081101561188257600260008681526020019081526020016000206000600483815481101561000057906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561187457600481815481101561000057906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683838151811015610000579060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001820191505b5b8080600101915050611745565b816040518059106118905750595b908082528060200260200182016040525b509350600090505b8181101561191b5782818151811015610000579060200190602002015184828151811015610000579060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b80806001019150506118a9565b5b505050919050565b60065481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561196457610000565b60048054905081603282111561197957610000565b8181111561198657610000565b600081141561199457610000565b60008214156119a257610000565b826005819055507fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a836040518082815260200191505060405180910390a15b5b50505b50565b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611a4157610000565b8160006001600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a9c57610000565b82336002600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b0657610000565b60016002600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef60405180905060405180910390a3611bbf85611bf5565b5b5b50505b505b5050565b6000611bd7848484611db9565b9050611be2816119e8565b5b9392505050565b603281565b60055481565b6000816001600082815260200190815260200160002060030160009054906101000a900460ff1615611c2657610000565b611c2f83610fd9565b15611db25760016000848152602001908152602001600020915060018260030160006101000a81548160ff0219169083151502179055508160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260010154836002016040518082805460018160011615610100020316600290048015611d0f5780601f10611ce457610100808354040283529160200191611d0f565b820191906000526020600020905b815481529060010190602001808311611cf257829003601f168201915b505091505060006040518083038185876185025a03f19250505015611d6357827f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7560405180905060405180910390a2611db1565b827f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923660405180905060405180910390a260008260030160006101000a81548160ff0219169083151502179055505b5b5b5b505050565b60008360008173ffffffffffffffffffffffffffffffffffffffff161415611de057610000565b60065491506080604051908101604052808673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001600015158152506001600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611ed657805160ff1916838001178555611f04565b82800160010185558215611f04579182015b82811115611f03578251825591602001919060010190611ee8565b5b509050611f2991905b80821115611f25576000816000905550600101611f0d565b5090565b505060608201518160030160006101000a81548160ff0219169083151502179055509050506001600660008282540192505081905550817fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5160405180905060405180910390a25b5b5093925050505600a165627a7a723058207d44fad584bdc5a513776a17ae9cd92b316a91c766c61812184adce9885e7c440029
[codex:281659]
[codex:281659] thinking
[codex:281659] **Preparing bytecode vulnerability analysis**
[codex:281659] exec
[codex:281659] /bin/bash -lc "python - <<'PY'
[codex:281659] import re
[codex:281659] from collections import Counter
[codex:281659]
[codex:281659] with open('BYTECODE_BUNDLE.txt','r') as f:
[codex:281659] data=f.read()
[codex:281659]
[codex:281659] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',data)
[codex:281659] assert m
[codex:281659] hexstr=m.group(1)[2:]
[codex:281659] code=bytes.fromhex(hexstr)
[codex:281659]
[codex:281659] # opcode map basic
[codex:281659] opmap={
[codex:281659] 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:281659] 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:281659] 0x20:'SHA3',
[codex:281659] 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:281659] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:281659] 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:281659] 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:281659] 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:281659] 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:281659] 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:281659] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:281659] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:281659] }
[codex:281659]
[codex:281659] ops=[]
[codex:281659] idx=0
[codex:281659] while idx<len(code):
[codex:281659] op=code[idx]
[codex:281659] name=opmap.get(op,f'OP_{op:02x}')
[codex:281659] if 0x60<=op<=0x7f:
[codex:281659] n=op-0x5f
[codex:281659] data=code[idx+1:idx+1+n]
[codex:281659] ops.append((idx,name,data))
[codex:281659] idx+=1+n
[codex:281659] else:
[codex:281659] ops.append((idx,name,None))
[codex:281659] idx+=1
[codex:281659]
[codex:281659] counts=Counter(name for _,name,_ in ops)
[codex:281659] # print interesting counts
[codex:281659] for k in ['CALL','DELEGATECALL','CALLCODE','SELFDESTRUCT','CREATE','CREATE2','STATICCALL']:
[codex:281659] print(k, counts.get(k,0))
[codex:281659]
[codex:281659] # find locations of CALL/DELEGATECALL/SELFDESTRUCT
[codex:281659] for k in ['CALL','DELEGATECALL','CALLCODE','SELFDESTRUCT']:
[codex:281659] loc=[i for i,name,_ in ops if name==k]
[codex:281659] print(k, loc[:20], 'count', len(loc))
[codex:281659]
[codex:281659] # Check for PUSH20 just before CALL? We'll do simple pattern scan: look for sequence ... PUSH20 <addr> ... CALL
[codex:281659]
[codex:281659] # find potential hardcoded addresses (PUSH20 data) near CALL
[codex:281659] call_idxs=[i for i,name,_ in ops if name=='CALL']
[codex:281659] # map from byte offset to op index
[codex:281659] op_index_by_pc={pc:i for i,(pc,_,_) in enumerate(ops)}
[codex:281659]
[codex:281659] for pc in call_idxs:
[codex:281659] oi=op_index_by_pc[pc]
[codex:281659] # look back 10 ops for PUSH20
[codex:281659] for j in range(max(0,oi-10),oi):
[codex:281659] pcj,name,data=ops[j]
[codex:281659] if name=='PUSH20':
[codex:281659] print('CALL at',pc,'near PUSH20',data.hex(),'at',pcj)
[codex:281659] break
[codex:281659]
[codex:281659] # For SELFDESTRUCT presence, no need if none.
[codex:281659]
[codex:281659] PY" in /tmp/codex-multi-z05n8dgt succeeded in 30ms:
[codex:281659] CALL 1
[codex:281659] DELEGATECALL 0
[codex:281659] CALLCODE 0
[codex:281659] SELFDESTRUCT 0
[codex:281659] CREATE 0
[codex:281659] CREATE2 0
[codex:281659] STATICCALL 0
[codex:281659] CALL [7461] count 1
[codex:281659] DELEGATECALL [] count 0
[codex:281659] CALLCODE [] count 0
[codex:281659] SELFDESTRUCT [] count 0
[codex:281659]
[codex:281659] thinking
[codex:281659] **Analyzing CALL instruction for value transfer**
[codex:281659] exec
[codex:281659] /bin/bash -lc "python - <<'PY'
[codex:281659] import re
[codex:281659] from collections import Counter
[codex:281659] with open('BYTECODE_BUNDLE.txt') as f:
[codex:281659] data=f.read()
[codex:281659] hexstr=re.search(r'0x[0-9a-fA-F]+',data).group(0)[2:]
[codex:281659] code=bytes.fromhex(hexstr)
[codex:281659]
[codex:281659] opmap={
[codex:281659] 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:281659] 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:281659] 0x20:'SHA3',
[codex:281659] 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:281659] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:281659] 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:281659] 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:281659] 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:281659] 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:281659] 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:281659] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:281659] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:281659] }
[codex:281659]
[codex:281659] ops=[]
[codex:281659] idx=0
[codex:281659] while idx<len(code):
[codex:281659] op=code[idx]
[codex:281659] name=opmap.get(op,f'OP_{op:02x}')
[codex:281659] if 0x60<=op<=0x7f:
[codex:281659] n=op-0x5f
[codex:281659] data=code[idx+1:idx+1+n]
[codex:281659] ops.append((idx,name,data))
[codex:281659] idx+=1+n
[codex:281659] else:
[codex:281659] ops.append((idx,name,None))
[codex:281659] idx+=1
[codex:281659]
[codex:281659] # find call
[codex:281659] call_pcs=[pc for pc,name,_ in ops if name=='CALL']
[codex:281659] print('CALL pcs',call_pcs)
[codex:281659]
[codex:281659] # print around call
[codex:281659] pc=call_pcs[0]
[codex:281659] # locate index
[codex:281659] idx_map={pc:i for i,(pc,_,_) in enumerate(ops)}
[codex:281659] start=idx_map[pc]-20
[codex:281659] end=idx_map[pc]+10
[codex:281659] for pc,name,data in ops[start:end]:
[codex:281659] if data is None:
[codex:281659] print(f\"{pc:04x}: {name}\")
[codex:281659] else:
[codex:281659] print(f\"{pc:04x}: {name} 0x{data.hex()}\")
[codex:281659] PY" in /tmp/codex-multi-z05n8dgt succeeded in 31ms:
[codex:281659] CALL pcs [7461]
[codex:281659] 1d0d: ADD
[codex:281659] 1d0e: SWAP2
[codex:281659] 1d0f: JUMPDEST
[codex:281659] 1d10: POP
[codex:281659] 1d11: POP
[codex:281659] 1d12: SWAP2
[codex:281659] 1d13: POP
[codex:281659] 1d14: POP
[codex:281659] 1d15: PUSH1 0x00
[codex:281659] 1d17: PUSH1 0x40
[codex:281659] 1d19: MLOAD
[codex:281659] 1d1a: DUP1
[codex:281659] 1d1b: DUP4
[codex:281659] 1d1c: SUB
[codex:281659] 1d1d: DUP2
[codex:281659] 1d1e: DUP6
[codex:281659] 1d1f: DUP8
[codex:281659] 1d20: PUSH2 0x8502
[codex:281659] 1d23: GAS
[codex:281659]
[codex:281659] thinking
[codex:281659] **Analyzing external ETH transfer function**
[codex:281659] exec
[codex:281659] /bin/bash -lc "python - <<'PY'
[codex:281659] import re
[codex:281659]
[codex:281659] data=open('BYTECODE_BUNDLE.txt').read()
[codex:281659] hexstr=re.search(r'0x[0-9a-fA-F]+',data).group(0)[2:]
[codex:281659] code=bytes.fromhex(hexstr)
[codex:281659]
[codex:281659] opmap={
[codex:281659] 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:281659] 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:281659] 0x20:'SHA3',
[codex:281659] 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:281659] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:281659] 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:281659] 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:281659] 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:281659] 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:281659] 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:281659] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:281659] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:281659] }
[codex:281659]
[codex:281659] ops=[]
[codex:281659] idx=0
[codex:281659] while idx<len(code):
[codex:281659] op=code[idx]
[codex:281659] name=opmap.get(op,f'OP_{op:02x}')
[codex:281659] if 0x60<=op<=0x7f:
[codex:281659] n=op-0x5f
[codex:281659] data=code[idx+1:idx+1+n]
[codex:281659] ops.append((idx,name,data))
[codex:281659] idx+=1+n
[codex:281659] else:
[codex:281659] ops.append((idx,name,None))
[codex:281659] idx+=1
[codex:281659]
[codex:281659] # print from around 0x1c00 to 0x1d90
[codex:281659] start=0x1c00
[codex:281659] end=0x1d90
[codex:281659] for pc,name,data in ops:
[codex:281659] if start<=pc<=end:
[codex:281659] if data is None:
[codex:281659] print(f\"{pc:04x}: {name}\")
[codex:281659] else:
[codex:281659] print(f\"{pc:04x}: {name} 0x{data.hex()}\")
[codex:281659] PY" in /tmp/codex-multi-z05n8dgt succeeded in 29ms:
[codex:281659] 1c00: PUSH1 0x20
[codex:281659] 1c02: ADD
[codex:281659] 1c03: SWAP1
[codex:281659] 1c04: DUP2
[codex:281659] 1c05: MSTORE
[codex:281659] 1c06: PUSH1 0x20
[codex:281659] 1c08: ADD
[codex:281659] 1c09: PUSH1 0x00
[codex:281659] 1c0b: SHA3
[codex:281659] 1c0c: PUSH1 0x03
[codex:281659] 1c0e: ADD
[codex:281659] 1c0f: PUSH1 0x00
[codex:281659] 1c11: SWAP1
[codex:281659] 1c12: SLOAD
[codex:281659] 1c13: SWAP1
[codex:281659] 1c14: PUSH2 0x0100
[codex:281659] 1c17: EXP
[codex:281659] 1c18: SWAP1
[codex:281659] 1c19: DIV
[codex:281659] 1c1a: PUSH1 0xff
[codex:281659]
[codex:281659] thinking
[codex:281659] **Decoding EVM CALL instruction details**
[codex:281659]
[codex:281659] I'm carefully parsing the bytecode around the CALL instruction to understand its stack arguments and gas calculation. I’m trying to reconstruct the stack setup symbolically to verify if the call sends ETH securely, checking for proper access control before the call. This involves tracing instructions and mapping typical Solidity CALL patterns while considering multiple function entries and jump destinations. I'll aim to build a stack analyzer to clarify call parameters.
[codex:281659] exec
[codex:281659] /bin/bash -lc "python - <<'PY'
[codex:281659] import re
[codex:281659]
[codex:281659] data=open('BYTECODE_BUNDLE.txt').read()
[codex:281659] hexstr=re.search(r'0x[0-9a-fA-F]+',data).group(0)[2:]
[codex:281659] code=bytes.fromhex(hexstr)
[codex:281659]
[codex:281659] opmap={
[codex:281659] 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:281659] 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:281659] 0x20:'SHA3',
[codex:281659] 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:281659] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:281659] 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:281659] 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:281659] 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:281659] 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:281659] 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:281659] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:281659] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:281659] }
[codex:281659]
[codex:281659] ops=[]
[codex:281659] idx=0
[codex:281659] while idx<len(code):
[codex:281659] op=code[idx]
[codex:281659] name=opmap.get(op,f'OP_{op:02x}')
[codex:281659] if 0x60<=op<=0x7f:
[codex:281659] n=op-0x5f
[codex:281659] data=code[idx+1:idx+1+n]
[codex:281659] ops.append((idx,name,data))
[codex:281659] idx+=1+n
[codex:281659] else:
[codex:281659] ops.append((idx,name,None))
[codex:281659] idx+=1
[codex:281659]
[codex:281659] start=0x1d90
[codex:281659] end=0x1f60
[codex:281659] for pc,name,data in ops:
[codex:281659] if start<=pc<=end:
[codex:281659] if data is None:
[codex:281659] print(f\"{pc:04x}: {name}\")
[codex:281659] else:
[codex:281659] print(f\"{pc:04x}: {name} 0x{data.hex()}\")
[codex:281659] PY" in /tmp/codex-multi-z05n8dgt succeeded in 31ms:
[codex:281659] 1d90: SWAP2
[codex:281659] 1d91: SUB
[codex:281659] 1d92: SWAP1
[codex:281659] 1d93: LOG2
[codex:281659] 1d94: PUSH1 0x00
[codex:281659] 1d96: DUP3
[codex:281659] 1d97: PUSH1 0x03
[codex:281659] 1d99: ADD
[codex:281659] 1d9a: PUSH1 0x00
[codex:281659] 1d9c: PUSH2 0x0100
[codex:281659] 1d9f: EXP
[codex:281659] 1da0: DUP2
[codex:281659] 1da1: SLOAD
[codex:281659] 1da2: DUP2
[codex:281659] 1da3: PUSH1 0xff
[codex:281659] 1da5: MUL
[codex:281659] 1da6: NOT
[codex:281659] 1da7: AND
[codex:281659] 1da8: SWAP1
[codex:281659] 1da9: DUP4
[codex:281659]
[codex:281659] thinking
[codex:281659] **Analyzing potential multisig wallet structure**
[codex:281659] exec
[codex:281659] /bin/bash -lc "python - <<'PY'
[codex:281659] import hashlib
[codex:281659]
[codex:281659] sigs=[
[codex:281659] 'addOwner(address)',
[codex:281659] 'removeOwner(address)',
[codex:281659] 'replaceOwner(address,address)',
[codex:281659] 'changeRequirement(uint256)',
[codex:281659] 'submitTransaction(address,uint256,bytes)',
[codex:281659] 'confirmTransaction(uint256)',
[codex:281659] 'revokeConfirmation(uint256)',
[codex:281659] 'executeTransaction(uint256)',
[codex:281659] 'isConfirmed(uint256)',
[codex:281659] 'isOwner(address)',
[codex:281659] 'getOwners()',
[codex:281659] 'getTransactionCount(bool,bool)',
[codex:281659] 'getConfirmationCount(uint256)',
[codex:281659] 'getConfirmations(uint256)',
[codex:281659] 'getTransactionIds(uint256,uint256,bool,bool)',
[codex:281659] 'transactions(uint256)',
[codex:281659] 'required()',
[codex:281659] 'ownerExists(address)',
[codex:281659] 'confirmationCount(uint256)',
[codex:281659] 'getConfirmations(uint256)',
[codex:281659] 'getTransactionCount(bool,bool)',
[codex:281659] 'getTransactionIds(uint256,uint256,bool,bool)',
[codex:281659] 'confirmations(uint256,address)',
[codex:281659] '
[codex:281659] ]
[codex:281659] for sig in sigs:
[codex:281659] if not sig: continue
[codex:281659] selector=hashlib.sha3_256(sig.encode()).hexdigest()[:8]
[codex:281659] print(sig, selector)
[codex:281659] PY" in /tmp/codex-multi-z05n8dgt exited 1 in 27ms:
[codex:281659] File "<stdin>", line 27
[codex:281659] '
[codex:281659] ^
[codex:281659] SyntaxError: unterminated string literal (detected at line 27)
[codex:281659]
[codex:281659] thinking
[codex:281659] **Considering keccak256 implementation options**
[codex:281659] exec
[codex:281659] /bin/bash -lc "python - <<'PY'
[codex:281659] try:
[codex:281659] import sha3
[codex:281659] print('sha3 available', sha3)
[codex:281659] except Exception as e:
[codex:281659] print('sha3 not available', e)
[codex:281659] PY" in /tmp/codex-multi-z05n8dgt succeeded in 17ms:
[codex:281659] sha3 not available No module named 'sha3'
[codex:281659]
[codex:281659] thinking
[codex:281659] **Considering keccak implementation**
[codex:281659] exec
[codex:281659] /bin/bash -lc "python - <<'PY'
[codex:281659] try:
[codex:281659] from Crypto.Hash import keccak
[codex:281659] print('pycryptodome available')
[codex:281659] except Exception as e:
[codex:281659] print('no', e)
[codex:281659] PY" in /tmp/codex-multi-z05n8dgt succeeded in 37ms:
[codex:281659] pycryptodome available
[codex:281659]
[codex:281659] thinking
[codex:281659] **Choosing keccak for selectors**
[codex:281659] exec
[codex:281659] /bin/bash -lc "python - <<'PY'
[codex:281659] from Crypto.Hash import keccak
[codex:281659]
[codex:281659] def selector(sig):
[codex:281659] k=keccak.new(digest_bits=256)
[codex:281659] k.update(sig.encode())
[codex:281659] return k.hexdigest()[:8]
[codex:281659]
[codex:281659] sigs=[
[codex:281659] 'addOwner(address)',
[codex:281659] 'removeOwner(address)',
[codex:281659] 'replaceOwner(address,address)',
[codex:281659] 'changeRequirement(uint256)',
[codex:281659] 'submitTransaction(address,uint256,bytes)',
[codex:281659] 'confirmTransaction(uint256)',
[codex:281659] 'revokeConfirmation(uint256)',
[codex:281659] 'executeTransaction(uint256)',
[codex:281659] 'isConfirmed(uint256)',
[codex:281659] 'isOwner(address)',
[codex:281659] 'getOwners()',
[codex:281659] 'getTransactionCount(bool,bool)',
[codex:281659] 'getConfirmationCount(uint256)',
[codex:281659] 'getConfirmations(uint256)',
[codex:281659] 'getTransactionIds(uint256,uint256,bool,bool)',
[codex:281659] 'transactions(uint256)',
[codex:281659] 'required()',
[codex:281659] 'getTransactionIds(uint256,uint256,bool,bool)',
[codex:281659] 'confirmations(uint256,address)',
[codex:281659] 'getConfirmationCount(uint256)',
[codex:281659] 'getTransactionCount(bool,bool)',
[codex:281659] 'getTransactionIds(uint256,uint256,bool,bool)',
[codex:281659] 'getConfirmations(uint256)',
[codex:281659] 'getTransactionCount(bool,bool)',
[codex:281659] 'getOwners()',
[codex:281659] 'getOwner(uint256)',
[codex:281659] 'ownerExists(address)',
[codex:281659] ]
[codex:281659]
[codex:281659] for sig in sigs:
[codex:281659] print(sig, selector(sig))
[codex:281659] PY" in /tmp/codex-multi-z05n8dgt succeeded in 38ms:
[codex:281659] addOwner(address) 7065cb48
[codex:281659] removeOwner(address) 173825d9
[codex:281659] replaceOwner(address,address) e20056e6
[codex:281659] changeRequirement(uint256) ba51a6df
[codex:281659] submitTransaction(address,uint256,bytes) c6427474
[codex:281659] confirmTransaction(uint256) c01a8c84
[codex:281659] revokeConfirmation(uint256) 20ea8d86
[codex:281659] executeTransaction(uint256) ee22610b
[codex:281659] isConfirmed(uint256) 784547a7
[codex:281659] isOwner(address) 2f54bf6e
[codex:281659] getOwners() a0e67e2b
[codex:281659] getTransactionCount(bool,bool) 54741525
[codex:281659] getConfirmationCount(uint256) 8b51d13f
[codex:281659] getConfirmations(uint256) b5dc40c3
[codex:281659] getTransactionIds(uint256,uint256,bool,bool) a8abe69a
[codex:281659] transactions(uint256) 9ace38c2
[codex:281659] required() dc8452cd
[codex:281659] getTransactionIds(uint256,uint256,bool,bool) a8abe69a
[codex:281659] confirmations(uint256,address) 3411c81c
[codex:281659] getConfirmationCount(uint256) 8b51d13f
[codex:281659]
[codex:281659] thinking
[codex:281659] **Identifying MultiSigWallet selectors**
[codex:281659] exec
[codex:281659] /bin/bash -lc "python - <<'PY'
[codex:281659] from Crypto.Hash import keccak
[codex:281659]
[codex:281659] def sel(sig):
[codex:281659] k=keccak.new(digest_bits=256)
[codex:281659] k.update(sig.encode())
[codex:281659] return k.hexdigest()[:8]
[codex:281659]
[codex:281659] cands=['MAX_OWNER_COUNT()','transactionCount()','getTransactionIds(uint256,uint256,bool,bool)','getConfirmationCount(uint256)',
[codex:281659] 'state()','getOwnerCount()','ownerCount()','isConfirmed(uint256)','getTransaction(uint256)','transactions(uint256)',
[codex:281659] 'ownerExists(address)','getOwner(uint256)','getOwners()','required()','getRequirement()',
[codex:281659] 'changeRequirement(uint256)','confirmTransaction(uint256)','executeTransaction(uint256)','submitTransaction(address,uint256,bytes)',
[codex:281659] 'replaceOwner(address,address)','removeOwner(address)','addOwner(address)','revokeConfirmation(uint256)',
[codex:281659] 'hasConfirmed(uint256,address)','getConfirmations(uint256)',
[codex:281659] 'getTransactionIds(uint256,uint256,bool,bool)',
[codex:281659] 'getConfirmationCount(uint256)',
[codex:281659] 'getTransactionCount(bool,bool)',
[codex:281659] 'getOwners()',
[codex:281659] 'getTransaction(uint256)',
[codex:281659] 'ownerExists(address)',
[codex:281659] 'state()',
[codex:281659] 'getTransactionCount(bool,bool)',
[codex:281659] 'getTransactionIds(uint256,uint256,bool,bool)',
[codex:281659] 'getConfirmationCount(uint256)',
[codex:281659] 'getOwners()',
[codex:281659] 'getTransactionCount(bool,bool)',
[codex:281659] 'getOwners()',
[codex:281659] ]
[codex:281659]
[codex:281659] for sig in cands:
[codex:281659] print(sig, sel(sig))
[codex:281659] PY" in /tmp/codex-multi-z05n8dgt succeeded in 46ms:
[codex:281659] MAX_OWNER_COUNT() d74f8edd
[codex:281659] transactionCount() b77bf600
[codex:281659] getTransactionIds(uint256,uint256,bool,bool) a8abe69a
[codex:281659] getConfirmationCount(uint256) 8b51d13f
[codex:281659] state() c19d93fb
[codex:281659] getOwnerCount() ef18374a
[codex:281659] ownerCount() 0db02622
[codex:281659] isConfirmed(uint256) 784547a7
[codex:281659] getTransaction(uint256) 33ea3dc8
[codex:281659] transactions(uint256) 9ace38c2
[codex:281659] ownerExists(address) 59dbfde8
[codex:281659] getOwner(uint256) c41a360a
[codex:281659] getOwners() a0e67e2b
[codex:281659] required() dc8452cd
[codex:281659] getRequirement() f2d9281e
[codex:281659] changeRequirement(uint256) ba51a6df
[codex:281659] confirmTransaction(uint256) c01a8c84
[codex:281659] executeTransaction(uint256) ee22610b
[codex:281659] submitTransaction(address,uint256,bytes) c6427474
[codex:281659] replaceOwner(address,address) e20056e6
[codex:281659]
[codex:281659] thinking
[codex:281659] **Analyzing function selectors**
[codex:281659] exec
[codex:281659] /bin/bash -lc "python - <<'PY'
[codex:281659] from Crypto.Hash import keccak
[codex:281659]
[codex:281659] def sel(sig):
[codex:281659] k=keccak.new(digest_bits=256)
[codex:281659] k.update(sig.encode())
[codex:281659] return k.hexdigest()[:8]
[codex:281659]
[codex:281659] print('owners(uint256)', sel('owners(uint256)'))
[codex:281659] print('ownerExists(address)', sel('ownerExists(address)'))
[codex:281659] print('isOwner(address)', sel('isOwner(address)'))
[codex:281659] print('transactions(uint256)', sel('transactions(uint256)'))
[codex:281659] print('getTransaction(uint256)', sel('getTransaction(uint256)'))
[codex:281659] print('getOwners()', sel('getOwners()'))
[codex:281659] print('getOwner(uint256)', sel('getOwner(uint256)'))
[codex:281659] print('getOwnerCount()', sel('getOwnerCount()'))
[codex:281659] PY" in /tmp/codex-multi-z05n8dgt succeeded in 40ms:
[codex:281659] owners(uint256) 025e7c27
[codex:281659] ownerExists(address) 59dbfde8
[codex:281659] isOwner(address) 2f54bf6e
[codex:281659] transactions(uint256) 9ace38c2
[codex:281659] getTransaction(uint256) 33ea3dc8
[codex:281659] getOwners() a0e67e2b
[codex:281659] getOwner(uint256) c41a360a
[codex:281659] getOwnerCount() ef18374a
[codex:281659]
[codex:281659] thinking
[codex:281659] **Analyzing MultiSigWallet function authorization**
[codex:281659] exec
[codex:281659] /bin/bash -lc "python - <<'PY'
[codex:281659] import re
[codex:281659]
[codex:281659] with open('BYTECODE_BUNDLE.txt') as f:
[codex:281659] data=f.read()
[codex:281659] hexstr=re.search(r'0x[0-9a-fA-F]+',data).group(0)[2:]
[codex:281659] code=bytes.fromhex(hexstr)
[codex:281659]
[codex:281659] # simple parse to get selectors and jump destinations by scanning for PUSH4 <sel> EQ PUSH2 <dest> JUMPI pattern in first 0x200 bytes
[codex:281659] selectors={}
[codex:281659]
[codex:281659] idx=0
[codex:281659] while idx<len(code)-6:
[codex:281659] op=code[idx]
[codex:281659] # detect PUSH4
[codex:281659] if op==0x63:
[codex:281659] sel=code[idx+1:idx+5].hex()
[codex:281659] # look ahead for EQ PUSH2 JUMPI pattern
[codex:281659] # pattern: PUSH4 <sel> EQ PUSH2 <dest> JUMPI
[codex:281659] # op at idx+5 should be EQ (0x14) maybe after 0x80? Hmm dispatch uses DUP1? But we can approximate scanning for 0x63 followed by 0x14 and 0x61 in near bytes.
[codex:281659] # We'll search next 10 bytes for PUSH2 then JUMPI.
[codex:281659] j=idx+5
[codex:281659] # skip potential 0x14 (EQ)
[codex:281659] if code[j]==0x14:
[codex:281659] # next is PUSH2
[codex:281659] if code[j+1]==0x61:
[codex:281659] dest=int.from_bytes(code[j+2:j+4],'big')
[codex:281659] if code[j+4]==0x57:
[codex:281659] selectors[int(sel,16)]=dest
[codex:281659] idx+=1
[codex:281659] idx+=1
[codex:281659]
[codex:281659] # print sorted by selector
[codex:281659] for sel,dest in sorted(selectors.items()):
[codex:281659] print(f\"0x{sel:08x} -> 0x{dest:04x}\")
[codex:281659] PY" in /tmp/codex-multi-z05n8dgt succeeded in 26ms:
[codex:281659] 0x025e7c27 -> 0x017c
[codex:281659] 0x173825d9 -> 0x01d9
[codex:281659] 0x20ea8d86 -> 0x020c
[codex:281659] 0x2f54bf6e -> 0x0229
[codex:281659] 0x3411c81c -> 0x0274
[codex:281659] 0x4c3a6ae0 -> 0x02c8
[codex:281659] 0x54741525 -> 0x02ef
[codex:281659] 0x7065cb48 -> 0x032d
[codex:281659] 0x784547a7 -> 0x0360
[codex:281659] 0x8a88c4fe -> 0x0395
[codex:281659] 0x8b51d13f -> 0x03f0
[codex:281659] 0x9ace38c2 -> 0x0421
[codex:281659] 0xa0e67e2b -> 0x0519
[codex:281659] 0xa8abe69a -> 0x058b
[codex:281659] 0xb5dc40c3 -> 0x062a
[codex:281659] 0xb77bf600 -> 0x06aa
[codex:281659] 0xba51a6df -> 0x06cd
[codex:281659] 0xc01a8c84 -> 0x06ea
[codex:281659] 0xc6427474 -> 0x0707
[codex:281659] 0xd74f8edd -> 0x079a
[codex:281659]
[codex:281659] thinking
[codex:281659] **Analyzing MultiSigWallet access control**
[codex:281659] exec
[codex:281659] /bin/bash -lc "python - <<'PY'
[codex:281659] import re
[codex:281659]
[codex:281659] with open('BYTECODE_BUNDLE.txt') as f:
[codex:281659] data=f.read()
[codex:281659] hexstr=re.search(r'0x[0-9a-fA-F]+',data).group(0)[2:]
[codex:281659] code=bytes.fromhex(hexstr)
[codex:281659]
[codex:281659] opmap={
[codex:281659] 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:281659] 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:281659] 0x20:'SHA3',
[codex:281659] 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:281659] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:281659] 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:281659] 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:281659] 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:281659] 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:281659] 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:281659] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:281659] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:281659] }
[codex:281659]
[codex:281659] # disassemble around function at 0x0707 (submitTransaction)
[codex:281659] start=0x0700
[codex:281659] end=0x0900
[codex:281659] ops=[]
[codex:281659] idx=0
[codex:281659] while idx<len(code):
[codex:281659] op=code[idx]
[codex:281659] name=opmap.get(op,f'OP_{op:02x}')
[codex:281659] if 0x60<=op<=0x7f:
[codex:281659] n=op-0x5f
[codex:281659] data=code[idx+1:idx+1+n]
[codex:281659] if start<=idx<=end:
[codex:281659] print(f\"{idx:04x}: {name} 0x{data.hex()}\")
[codex:281659] idx+=1+n
[codex:281659] else:
[codex:281659] if start<=idx<=end:
[codex:281659] print(f\"{idx:04x}: {name}\")
[codex:281659] idx+=1
[codex:281659] PY" in /tmp/codex-multi-z05n8dgt succeeded in 30ms:
[codex:281659] 0700: POP
[codex:281659] 0701: PUSH2 0x19e8
[codex:281659] 0704: JUMP
[codex:281659] 0705: JUMPDEST
[codex:281659] 0706: STOP
[codex:281659] 0707: JUMPDEST
[codex:281659] 0708: CALLVALUE
[codex:281659] 0709: PUSH2 0x0000
[codex:281659] 070c: JUMPI
[codex:281659] 070d: PUSH2 0x0784
[codex:281659] 0710: PUSH1 0x04
[codex:281659] 0712: DUP1
[codex:281659] 0713: DUP1
[codex:281659] 0714: CALLDATALOAD
[codex:281659] 0715: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:281659] 072a: AND
[codex:281659] 072b: SWAP1
[codex:281659] 072c: PUSH1 0x20
[codex:281659] 072e: ADD
[codex:281659] 072f: SWAP1
[codex:281659]
[codex:281659] thinking
[codex:281659] **Analyzing function boundaries and ownership checks**
[codex:281659]
[codex:281659] I'm parsing the disassembly near 0x0707 for `submitTransaction` but noticing an ownership check at 0x081d that seems to require `msg.sender == address(this)`, which is odd and typical for internal wallet calls. This indicates 0x081d belongs to another function, likely an owner-restricted call like `addOwner`. The `submitTransaction` function decodes parameters then jumps to an internal function at 0x1bca, where owner checks likely happen, so I'll focus next on analyzing that internal function to confirm.
[codex:281659] exec
[codex:281659] /bin/bash -lc "python - <<'PY'
[codex:281659] import re
[codex:281659]
[codex:281659] with open('BYTECODE_BUNDLE.txt') as f:
[codex:281659] data=f.read()
[codex:281659] hexstr=re.search(r'0x[0-9a-fA-F]+',data).group(0)[2:]
[codex:281659] code=bytes.fromhex(hexstr)
[codex:281659]
[codex:281659] opmap={
[codex:281659] 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:281659] 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:281659] 0x20:'SHA3',
[codex:281659] 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:281659] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:281659] 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:281659] 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:281659] 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:281659] 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:281659] 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:281659] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:281659] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:281659] }
[codex:281659]
[codex:281659] start=0x1b90
[codex:281659] end=0x1c40
[codex:281659]
[codex:281659] idx=0
[codex:281659] while idx<len(code):
[codex:281659] op=code[idx]
[codex:281659] name=opmap.get(op,f'OP_{op:02x}')
[codex:281659] if 0x60<=op<=0x7f:
[codex:281659] n=op-0x5f
[codex:281659] data=code[idx+1:idx+1+n]
[codex:281659] if start<=idx<=end:
[codex:281659] print(f\"{idx:04x}: {name} 0x{data.hex()}\")
[codex:281659] idx+=1+n
[codex:281659] else:
[codex:281659] if start<=idx<=end:
[codex:281659] print(f\"{idx:04x}: {name}\")
[codex:281659] idx+=1
[codex:281659] PY" in /tmp/codex-multi-z05n8dgt succeeded in 27ms:
[codex:281659] 1ba9: PUSH1 0x40
[codex:281659] 1bab: MLOAD
[codex:281659] 1bac: DUP1
[codex:281659] 1bad: SWAP1
[codex:281659] 1bae: POP
[codex:281659] 1baf: PUSH1 0x40
[codex:281659] 1bb1: MLOAD
[codex:281659] 1bb2: DUP1
[codex:281659] 1bb3: SWAP2
[codex:281659] 1bb4: SUB
[codex:281659] 1bb5: SWAP1
[codex:281659] 1bb6: LOG3
[codex:281659] 1bb7: PUSH2 0x1bbf
[codex:281659] 1bba: DUP6
[codex:281659] 1bbb: PUSH2 0x1bf5
[codex:281659] 1bbe: JUMP
[codex:281659] 1bbf: JUMPDEST
[codex:281659] 1bc0: JUMPDEST
[codex:281659] 1bc1: JUMPDEST
[codex:281659] 1bc2: POP
[codex:281659]
[codex:281659] thinking
[codex:281659] **Analyzing owner checks in MultiSigWallet**
[codex:281659] exec
[codex:281659] /bin/bash -lc "python - <<'PY'
[codex:281659] import re
[codex:281659]
[codex:281659] with open('BYTECODE_BUNDLE.txt') as f:
[codex:281659] data=f.read()
[codex:281659] hexstr=re.search(r'0x[0-9a-fA-F]+',data).group(0)[2:]
[codex:281659] code=bytes.fromhex(hexstr)
[codex:281659]
[codex:281659] opmap={
[codex:281659] 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:281659] 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:281659] 0x20:'SHA3',
[codex:281659] 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:281659] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:281659] 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:281659] 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:281659] 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:281659] 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:281659] 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:281659] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:281659] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:281659] }
[codex:281659]
[codex:281659] start=0x19c0
[codex:281659] end=0x1a60
[codex:281659]
[codex:281659] idx=0
[codex:281659] while idx<len(code):
[codex:281659] op=code[idx]
[codex:281659] name=opmap.get(op,f'OP_{op:02x}')
[codex:281659] if 0x60<=op<=0x7f:
[codex:281659] n=op-0x5f
[codex:281659] data=code[idx+1:idx+1+n]
[codex:281659] if start<=idx<=end:
[codex:281659] print(f\"{idx:04x}: {name} 0x{data.hex()}\")
[codex:281659] idx+=1+n
[codex:281659] else:
[codex:281659] if start<=idx<=end:
[codex:281659] print(f\"{idx:04x}: {name}\")
[codex:281659] idx+=1
[codex:281659] PY" in /tmp/codex-multi-z05n8dgt succeeded in 27ms:
[codex:281659] 19cb: DUP4
[codex:281659] 19cc: PUSH1 0x40
[codex:281659] 19ce: MLOAD
[codex:281659] 19cf: DUP1
[codex:281659] 19d0: DUP3
[codex:281659] 19d1: DUP2
[codex:281659] 19d2: MSTORE
[codex:281659] 19d3: PUSH1 0x20
[codex:281659] 19d5: ADD
[codex:281659] 19d6: SWAP2
[codex:281659] 19d7: POP
[codex:281659] 19d8: POP
[codex:281659] 19d9: PUSH1 0x40
[codex:281659] 19db: MLOAD
[codex:281659] 19dc: DUP1
[codex:281659] 19dd: SWAP2
[codex:281659] 19de: SUB
[codex:281659] 19df: SWAP1
[codex:281659] 19e0: LOG1
[codex:281659] 19e1: JUMPDEST
[codex:281659]
[codex:281659] thinking
[codex:281659] **Analyzing multi-signature wallet bytecode**
[codex:281659] codex
[codex:281659] {"no_findings":true,"summary":"No concrete, exploitable profit path found. Bytecode matches a standard MultiSigWallet pattern: only one external CALL (at 0x1d25) executes a stored transaction after owner-confirmation checks; no DELEGATECALL/SELFDESTRUCT or unguarded value transfers observed. Bytecode-only view can’t confirm runtime state (owners/required).","findings":[]}
[codex:281659] tokens used
[codex:281659] 94,268
[codex:281659] {"no_findings":true,"summary":"No concrete, exploitable profit path found. Bytecode matches a standard MultiSigWallet pattern: only one external CALL (at 0x1d25) executes a stored transaction after owner-confirmation checks; no DELEGATECALL/SELFDESTRUCT or unguarded value transfers observed. Bytecode-only view can’t confirm runtime state (owners/required).","findings":[]}
{
"codex": {
"ran_at": "2026-01-01T20:08:41.731705+00:00",
"returncode": 0
},
"summary": "No concrete, exploitable profit path found. Bytecode matches a standard MultiSigWallet pattern: only one external CALL (at 0x1d25) executes a stored transaction after owner-confirmation checks; no DELEGATECALL/SELFDESTRUCT or unguarded value transfers observed. Bytecode-only view can\u2019t confirm runtime state (owners/required).",
"raw_final": {
"summary": "No concrete, exploitable profit path found. Bytecode matches a standard MultiSigWallet pattern: only one external CALL (at 0x1d25) executes a stored transaction after owner-confirmation checks; no DELEGATECALL/SELFDESTRUCT or unguarded value transfers observed. Bytecode-only view can\u2019t confirm runtime state (owners/required).",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLDATASIZE 00000006: ISZERO 00000007: PUSH2 0x011b 0000000a: JUMPI 0000000b: PUSH1 0x00 0000000d: CALLDATALOAD 0000000e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000002c: SWAP1 0000002d: DIV 0000002e: PUSH4 0xffffffff 00000033: AND 00000034: DUP1 00000035: PUSH4 0x025e7c27 0000003a: EQ 0000003b: PUSH2 0x017c 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0x173825d9 00000045: EQ 00000046: PUSH2 0x01d9 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0x20ea8d86 00000050: EQ 00000051: PUSH2 0x020c 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0x2f54bf6e 0000005b: EQ 0000005c: PUSH2 0x0229 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0x3411c81c 00000066: EQ 00000067: PUSH2 0x0274 0000006a: JUMPI 0000006b: DUP1 0000006c: PUSH4 0x4c3a6ae0 00000071: EQ 00000072: PUSH2 0x02c8 00000075: JUMPI 00000076: DUP1 00000077: PUSH4 0x54741525 0000007c: EQ 0000007d: PUSH2 0x02ef 00000080: JUMPI 00000081: DUP1 00000082: PUSH4 0x7065cb48 00000087: EQ 00000088: PUSH2 0x032d 0000008b: JUMPI 0000008c: DUP1 0000008d: PUSH4 0x784547a7 00000092: EQ 00000093: PUSH2 0x0360 00000096: JUMPI 00000097: DUP1 00000098: PUSH4 0x8a88c4fe 0000009d: EQ 0000009e: PUSH2 0x0395 000000a1: JUMPI 000000a2: DUP1 000000a3: PUSH4 0x8b51d13f 000000a8: EQ 000000a9: PUSH2 0x03f0 000000ac: JUMPI 000000ad: DUP1 000000ae: PUSH4 0x9ace38c2 000000b3: EQ 000000b4: PUSH2 0x0421 000000b7: JUMPI 000000b8: DUP1 000000b9: PUSH4 0xa0e67e2b 000000be: EQ 000000bf: PUSH2 0x0519 000000c2: JUMPI 000000c3: DUP1 000000c4: PUSH4 0xa8abe69a 000000c9: EQ 000000ca: PUSH2 0x058b 000000cd: JUMPI 000000ce: DUP1 000000cf: PUSH4 0xb5dc40c3 000000d4: EQ 000000d5: PUSH2 0x062a 000000d8: JUMPI 000000d9: DUP1 000000da: PUSH4 0xb77bf600 000000df: EQ 000000e0: PUSH2 0x06aa 000000e3: JUMPI 000000e4: DUP1 000000e5: PUSH4 0xba51a6df 000000ea: EQ 000000eb: PUSH2 0x06cd 000000ee: JUMPI 000000ef: DUP1 000000f0: PUSH4 0xc01a8c84 000000f5: EQ 000000f6: PUSH2 0x06ea 000000f9: JUMPI 000000fa: DUP1 000000fb: PUSH4 0xc6427474 00000100: EQ 00000101: PUSH2 0x0707 00000104: JUMPI 00000105: DUP1 00000106: PUSH4 0xd74f8edd 0000010b: EQ 0000010c: PUSH2 0x079a 0000010f: JUMPI 00000110: DUP1 00000111: PUSH4 0xdc8452cd 00000116: EQ 00000117: PUSH2 0x07bd 0000011a: JUMPI 0000011b: JUMPDEST 0000011c: PUSH2 0x017a 0000011f: JUMPDEST 00000120: PUSH1 0x00 00000122: CALLVALUE 00000123: GT 00000124: ISZERO 00000125: PUSH2 0x0177 00000128: JUMPI 00000129: CALLER 0000012a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000013f: AND 00000140: PUSH32 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c 00000161: CALLVALUE 00000162: PUSH1 0x40 00000164: MLOAD 00000165: DUP1 00000166: DUP3 00000167: DUP2 00000168: MSTORE 00000169: PUSH1 0x20 0000016b: ADD 0000016c: SWAP2 0000016d: POP 0000016e: POP 0000016f: PUSH1 0x40 00000171: MLOAD 00000172: DUP1 00000173: SWAP2 00000174: SUB 00000175: SWAP1 00000176: LOG2 00000177: JUMPDEST 00000178: JUMPDEST 00000179: JUMP 0000017a: JUMPDEST 0000017b: STOP 0000017c: JUMPDEST 0000017d: CALLVALUE 0000017e: PUSH2 0x0000 00000181: JUMPI 00000182: PUSH2 0x0197 00000185: PUSH1 0x04 00000187: DUP1 00000188: DUP1 00000189: CALLDATALOAD 0000018a: SWAP1 0000018b: PUSH1 0x20 0000018d: ADD 0000018e: SWAP1 0000018f: SWAP2 00000190: SWAP1 00000191: POP 00000192: POP 00000193: PUSH2 0x07e0 00000196: JUMP 00000197: JUMPDEST 00000198: PUSH1 0x40 0000019a: MLOAD 0000019b: DUP1 0000019c: DUP3 0000019d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001b2: AND 000001b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001c8: AND 000001c9: DUP2 000001ca: MSTORE 000001cb: PUSH1 0x20 000001cd: ADD 000001ce: SWAP2 000001cf: POP 000001d0: POP 000001d1: PUSH1 0x40 000001d3: MLOAD 000001d4: DUP1 000001d5: SWAP2 000001d6: SUB 000001d7: SWAP1 000001d8: RETURN 000001d9: JUMPDEST 000001da: CALLVALUE 000001db: PUSH2 0x0000 000001de: JUMPI 000001df: PUSH2 0x020a 000001e2: PUSH1 0x04 000001e4: DUP1 000001e5: DUP1 000001e6: CALLDATALOAD 000001e7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001fc: AND 000001fd: SWAP1 000001fe: PUSH1 0x20 00000200: ADD 00000201: SWAP1 00000202: SWAP2 00000203: SWAP1 00000204: POP 00000205: POP 00000206: PUSH2 0x081d 00000209: JUMP 0000020a: JUMPDEST 0000020b: STOP 0000020c: JUMPDEST 0000020d: CALLVALUE 0000020e: PUSH2 0x0000 00000211: JUMPI 00000212: PUSH2 0x0227 00000215: PUSH1 0x04 00000217: DUP1 00000218: DUP1 00000219: CALLDATALOAD 0000021a: SWAP1 0000021b: PUSH1 0x20 0000021d: ADD 0000021e: SWAP1 0000021f: SWAP2 00000220: SWAP1 00000221: POP 00000222: POP 00000223: PUSH2 0x0af2 00000226: JUMP 00000227: JUMPDEST 00000228: STOP 00000229: JUMPDEST 0000022a: CALLVALUE 0000022b: PUSH2 0x0000 0000022e: JUMPI 0000022f: PUSH2 0x025a 00000232: PUSH1 0x04 00000234: DUP1 00000235: DUP1 00000236: CALLDATALOAD 00000237: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000024c: AND 0000024d: SWAP1 0000024e: PUSH1 0x20 00000250: ADD 00000251: SWAP1 00000252: SWAP2 00000253: SWAP1 00000254: POP 00000255: POP 00000256: PUSH2 0x0ca0 00000259: JUMP 0000025a: JUMPDEST 0000025b: PUSH1 0x40 0000025d: MLOAD 0000025e: DUP1 0000025f: DUP3 00000260: ISZERO 00000261: ISZERO 00000262: ISZERO 00000263: ISZERO 00000264: DUP2 00000265: MSTORE 00000266: PUSH1 0x20 00000268: ADD 00000269: SWAP2 0000026a: POP 0000026b: POP 0000026c: PUSH1 0x40 0000026e: MLOAD 0000026f: DUP1 00000270: SWAP2 00000271: SUB 00000272: SWAP1 00000273: RETURN 00000274: JUMPDEST 00000275: CALLVALUE 00000276: PUSH2 0x0000 00000279: JUMPI 0000027a: PUSH2 0x02ae 0000027d: PUSH1 0x04 0000027f: DUP1 00000280: DUP1 00000281: CALLDATALOAD 00000282: SWAP1 00000283: PUSH1 0x20 00000285: ADD 00000286: SWAP1 00000287: SWAP2 00000288: SWAP1 00000289: DUP1 0000028a: CALLDATALOAD 0000028b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002a0: AND 000002a1: SWAP1 000002a2: PUSH1 0x20 000002a4: ADD 000002a5: SWAP1 000002a6: SWAP2 000002a7: SWAP1 000002a8: POP 000002a9: POP 000002aa: PUSH2 0x0cc0 000002ad: JUMP 000002ae: JUMPDEST 000002af: PUSH1 0x40 000002b1: MLOAD 000002b2: DUP1 000002b3: DUP3 000002b4: ISZERO 000002b5: ISZERO 000002b6: ISZERO 000002b7: ISZERO 000002b8: DUP2 000002b9: MSTORE 000002ba: PUSH1 0x20 000002bc: ADD 000002bd: SWAP2 000002be: POP 000002bf: POP 000002c0: PUSH1 0x40 000002c2: MLOAD 000002c3: DUP1 000002c4: SWAP2 000002c5: SUB 000002c6: SWAP1 000002c7: RETURN 000002c8: JUMPDEST 000002c9: CALLVALUE 000002ca: PUSH2 0x0000 000002cd: JUMPI 000002ce: PUSH2 0x02d5 000002d1: PUSH2 0x0cef 000002d4: JUMP 000002d5: JUMPDEST 000002d6: PUSH1 0x40 000002d8: MLOAD 000002d9: DUP1 000002da: DUP3 000002db: ISZERO 000002dc: ISZERO 000002dd: ISZERO 000002de: ISZERO 000002df: DUP2 000002e0: MSTORE 000002e1: PUSH1 0x20 000002e3: ADD 000002e4: SWAP2 000002e5: POP 000002e6: POP 000002e7: PUSH1 0x40 000002e9: MLOAD 000002ea: DUP1 000002eb: SWAP2 000002ec: SUB 000002ed: SWAP1 000002ee: RETURN 000002ef: JUMPDEST 000002f0: CALLVALUE 000002f1: PUSH2 0x0000 000002f4: JUMPI 000002f5: PUSH2 0x0317 000002f8: PUSH1 0x04 000002fa: DUP1 000002fb: DUP1 000002fc: CALLDATALOAD 000002fd: ISZERO 000002fe: ISZERO 000002ff: SWAP1 00000300: PUSH1 0x20 00000302: ADD 00000303: SWAP1 00000304: SWAP2 00000305: SWAP1 00000306: DUP1 00000307: CALLDATALOAD 00000308: ISZERO 00000309: ISZERO 0000030a: SWAP1 0000030b: PUSH1 0x20 0000030d: ADD 0000030e: SWAP1 0000030f: SWAP2 00000310: SWAP1 00000311: POP 00000312: POP 00000313: PUSH2 0x0d02 00000316: JUMP 00000317: JUMPDEST 00000318: PUSH1 0x40 0000031a: MLOAD 0000031b: DUP1 0000031c: DUP3 0000031d: DUP2 0000031e: MSTORE 0000031f: PUSH1 0x20 00000321: ADD 00000322: SWAP2 00000323: POP 00000324: POP 00000325: PUSH1 0x40 00000327: MLOAD 00000328: DUP1 00000329: SWAP2 0000032a: SUB 0000032b: SWAP1 0000032c: RETURN 0000032d: JUMPDEST 0000032e: CALLVALUE 0000032f: PUSH2 0x0000 00000332: JUMPI 00000333: PUSH2 0x035e 00000336: PUSH1 0x04 00000338: DUP1 00000339: DUP1 0000033a: CALLDATALOAD 0000033b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000350: AND 00000351: SWAP1 00000352: PUSH1 0x20 00000354: ADD 00000355: SWAP1 00000356: SWAP2 00000357: SWAP1 00000358: POP 00000359: POP 0000035a: PUSH2 0x0d99 0000035d: JUMP 0000035e: JUMPDEST 0000035f: STOP 00000360: JUMPDEST 00000361: CALLVALUE 00000362: PUSH2 0x0000 00000365: JUMPI 00000366: PUSH2 0x037b 00000369: PUSH1 0x04 0000036b: DUP1 0000036c: DUP1 0000036d: CALLDATALOAD 0000036e: SWAP1 0000036f: PUSH1 0x20 00000371: ADD 00000372: SWAP1 00000373: SWAP2 00000374: SWAP1 00000375: POP 00000376: POP 00000377: PUSH2 0x0fd9 0000037a: JUMP 0000037b: JUMPDEST 0000037c: PUSH1 0x40 0000037e: MLOAD 0000037f: DUP1 00000380: DUP3 00000381: ISZERO 00000382: ISZERO 00000383: ISZERO 00000384: ISZERO 00000385: DUP2 00000386: MSTORE 00000387: PUSH1 0x20 00000389: ADD 0000038a: SWAP2 0000038b: POP 0000038c: POP 0000038d: PUSH1 0x40 0000038f: MLOAD 00000390: DUP1 00000391: SWAP2 00000392: SUB 00000393: SWAP1 00000394: RETURN 00000395: JUMPDEST 00000396: CALLVALUE 00000397: PUSH2 0x0000 0000039a: JUMPI 0000039b: PUSH2 0x03ee 0000039e: PUSH1 0x04 000003a0: DUP1 000003a1: DUP1 000003a2: CALLDATALOAD 000003a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003b8: AND 000003b9: SWAP1 000003ba: PUSH1 0x20 000003bc: ADD 000003bd: SWAP1 000003be: SWAP2 000003bf: SWAP1 000003c0: DUP1 000003c1: CALLDATALOAD 000003c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003d7: AND 000003d8: SWAP1 000003d9: PUSH1 0x20 000003db: ADD 000003dc: SWAP1 000003dd: SWAP2 000003de: SWAP1 000003df: DUP1 000003e0: CALLDATALOAD 000003e1: SWAP1 000003e2: PUSH1 0x20 000003e4: ADD 000003e5: SWAP1 000003e6: SWAP2 000003e7: SWAP1 000003e8: POP 000003e9: POP 000003ea: PUSH2 0x10c0 000003ed: JUMP 000003ee: JUMPDEST 000003ef: STOP 000003f0: JUMPDEST 000003f1: CALLVALUE 000003f2: PUSH2 0x0000 000003f5: JUMPI 000003f6: PUSH2 0x040b 000003f9: PUSH1 0x04 000003fb: DUP1 000003fc: DUP1 000003fd: CALLDATALOAD 000003fe: SWAP1 000003ff: PUSH1 0x20 00000401: ADD 00000402: SWAP1 00000403: SWAP2 00000404: SWAP1 00000405: POP 00000406: POP 00000407: PUSH2 0x13bb 0000040a: JUMP 0000040b: JUMPDEST 0000040c: PUSH1 0x40 0000040e: MLOAD 0000040f: DUP1 00000410: DUP3 00000411: DUP2 00000412: MSTORE 00000413: PUSH1 0x20 00000415: ADD 00000416: SWAP2 00000417: POP 00000418: POP 00000419: PUSH1 0x40 0000041b: MLOAD 0000041c: DUP1 0000041d: SWAP2 0000041e: SUB 0000041f: SWAP1 00000420: RETURN 00000421: JUMPDEST 00000422: CALLVALUE 00000423: PUSH2 0x0000 00000426: JUMPI 00000427: PUSH2 0x043c 0000042a: PUSH1 0x04 0000042c: DUP1 0000042d: DUP1 0000042e: CALLDATALOAD 0000042f: SWAP1 00000430: PUSH1 0x20 00000432: ADD 00000433: SWAP1 00000434: SWAP2 00000435: SWAP1 00000436: POP 00000437: POP 00000438: PUSH2 0x1488 0000043b: JUMP 0000043c: JUMPDEST 0000043d: PUSH1 0x40 0000043f: MLOAD 00000440: DUP1 00000441: DUP6 00000442: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000457: AND 00000458: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000046d: AND 0000046e: DUP2 0000046f: MSTORE 00000470: PUSH1 0x20 00000472: ADD 00000473: DUP5 00000474: DUP2 00000475: MSTORE 00000476: PUSH1 0x20 00000478: ADD 00000479: DUP1 0000047a: PUSH1 0x20 0000047c: ADD 0000047d: DUP4 0000047e: ISZERO 0000047f: ISZERO 00000480: ISZERO 00000481: ISZERO 00000482: DUP2 00000483: MSTORE 00000484: PUSH1 0x20 00000486: ADD 00000487: DUP3 00000488: DUP2 00000489: SUB 0000048a: DUP3 0000048b: MSTORE 0000048c: DUP5 0000048d: DUP2 0000048e: DUP2 0000048f: SLOAD 00000490: PUSH1 0x01 00000492: DUP2 00000493: PUSH1 0x01 00000495: AND 00000496: ISZERO 00000497: PUSH2 0x0100 0000049a: MUL 0000049b: SUB 0000049c: AND 0000049d: PUSH1 0x02 0000049f: SWAP1 000004a0: DIV 000004a1: DUP2 000004a2: MSTORE 000004a3: PUSH1 0x20 000004a5: ADD 000004a6: SWAP2 000004a7: POP 000004a8: DUP1 000004a9: SLOAD 000004aa: PUSH1 0x01 000004ac: DUP2 000004ad: PUSH1 0x01 000004af: AND 000004b0: ISZERO 000004b1: PUSH2 0x0100 000004b4: MUL 000004b5: SUB 000004b6: AND 000004b7: PUSH1 0x02 000004b9: SWAP1 000004ba: DIV 000004bb: DUP1 000004bc: ISZERO 000004bd: PUSH2 0x0507 000004c0: JUMPI 000004c1: DUP1 000004c2: PUSH1 0x1f 000004c4: LT 000004c5: PUSH2 0x04dc 000004c8: JUMPI 000004c9: PUSH2 0x0100 000004cc: DUP1 000004cd: DUP4 000004ce: SLOAD 000004cf: DIV 000004d0: MUL 000004d1: DUP4 000004d2: MSTORE 000004d3: SWAP2 000004d4: PUSH1 0x20 000004d6: ADD 000004d7: SWAP2 000004d8: PUSH2 0x0507 000004db: JUMP 000004dc: JUMPDEST 000004dd: DUP3 000004de: ADD 000004df: SWAP2 000004e0: SWAP1 000004e1: PUSH1 0x00 000004e3: MSTORE 000004e4: PUSH1 0x20 000004e6: PUSH1 0x00 000004e8: KECCAK256 000004e9: SWAP1 000004ea: JUMPDEST 000004eb: DUP2 000004ec: SLOAD 000004ed: DUP2 000004ee: MSTORE 000004ef: SWAP1 000004f0: PUSH1 0x01 000004f2: ADD 000004f3: SWAP1 000004f4: PUSH1 0x20 000004f6: ADD 000004f7: DUP1 000004f8: DUP4 000004f9: GT 000004fa: PUSH2 0x04ea 000004fd: JUMPI 000004fe: DUP3 000004ff: SWAP1 00000500: SUB 00000501: PUSH1 0x1f 00000503: AND 00000504: DUP3 00000505: ADD 00000506: SWAP2 00000507: JUMPDEST 00000508: POP 00000509: POP 0000050a: SWAP6 0000050b: POP 0000050c: POP 0000050d: POP 0000050e: POP 0000050f: POP 00000510: POP 00000511: PUSH1 0x40 00000513: MLOAD 00000514: DUP1 00000515: SWAP2 00000516: SUB 00000517: SWAP1 00000518: RETURN 00000519: JUMPDEST 0000051a: CALLVALUE 0000051b: PUSH2 0x0000 0000051e: JUMPI 0000051f: PUSH2 0x0526 00000522: PUSH2 0x14e4 00000525: JUMP 00000526: JUMPDEST 00000527: PUSH1 0x40 00000529: MLOAD 0000052a: DUP1 0000052b: DUP1 0000052c: PUSH1 0x20 0000052e: ADD 0000052f: DUP3 00000530: DUP2 00000531: SUB 00000532: DUP3 00000533: MSTORE 00000534: DUP4 00000535: DUP2 00000536: DUP2 00000537: MLOAD 00000538: DUP2 00000539: MSTORE 0000053a: PUSH1 0x20 0000053c: ADD 0000053d: SWAP2 0000053e: POP 0000053f: DUP1 00000540: MLOAD 00000541: SWAP1 00000542: PUSH1 0x20 00000544: ADD 00000545: SWAP1 00000546: PUSH1 0x20 00000548: MUL 00000549: DUP1 0000054a: DUP4 0000054b: DUP4 0000054c: PUSH1 0x00 0000054e: DUP4 0000054f: EQ 00000550: PUSH2 0x0578 00000553: JUMPI 00000554: JUMPDEST 00000555: DUP1 00000556: MLOAD 00000557: DUP3 00000558: MSTORE 00000559: PUSH1 0x20 0000055b: DUP4 0000055c: GT 0000055d: ISZERO 0000055e: PUSH2 0x0578 00000561: JUMPI 00000562: PUSH1 0x20 00000564: DUP3 00000565: ADD 00000566: SWAP2 00000567: POP 00000568: PUSH1 0x20 0000056a: DUP2 0000056b: ADD 0000056c: SWAP1 0000056d: POP 0000056e: PUSH1 0x20 00000570: DUP4 00000571: SUB 00000572: SWAP3 00000573: POP 00000574: PUSH2 0x0554 00000577: JUMP 00000578: JUMPDEST 00000579: POP 0000057a: POP 0000057b: POP 0000057c: SWAP1 0000057d: POP 0000057e: ADD 0000057f: SWAP3 00000580: POP 00000581: POP 00000582: POP 00000583: PUSH1 0x40 00000585: MLOAD 00000586: DUP1 00000587: SWAP2 00000588: SUB 00000589: SWAP1 0000058a: RETURN 0000058b: JUMPDEST 0000058c: CALLVALUE 0000058d: PUSH2 0x0000 00000590: JUMPI 00000591: PUSH2 0x05c5 00000594: PUSH1 0x04 00000596: DUP1 00000597: DUP1 00000598: CALLDATALOAD 00000599: SWAP1 0000059a: PUSH1 0x20 0000059c: ADD 0000059d: SWAP1 0000059e: SWAP2 0000059f: SWAP1 000005a0: DUP1 000005a1: CALLDATALOAD 000005a2: SWAP1 000005a3: PUSH1 0x20 000005a5: ADD 000005a6: SWAP1 000005a7: SWAP2 000005a8: SWAP1 000005a9: DUP1 000005aa: CALLDATALOAD 000005ab: ISZERO 000005ac: ISZERO 000005ad: SWAP1 000005ae: PUSH1 0x20 000005b0: ADD 000005b1: SWAP1 000005b2: SWAP2 000005b3: SWAP1 000005b4: DUP1 000005b5: CALLDATALOAD 000005b6: ISZERO 000005b7: ISZERO 000005b8: SWAP1 000005b9: PUSH1 0x20 000005bb: ADD 000005bc: SWAP1 000005bd: SWAP2 000005be: SWAP1 000005bf: POP 000005c0: POP 000005c1: PUSH2 0x1582 000005c4: JUMP 000005c5: JUMPDEST 000005c6: PUSH1 0x40 000005c8: MLOAD 000005c9: DUP1 000005ca: DUP1 000005cb: PUSH1 0x20 000005cd: ADD 000005ce: DUP3 000005cf: DUP2 000005d0: SUB 000005d1: DUP3 000005d2: MSTORE 000005d3: DUP4 000005d4: DUP2 000005d5: DUP2 000005d6: MLOAD 000005d7: DUP2 000005d8: MSTORE 000005d9: PUSH1 0x20 000005db: ADD 000005dc: SWAP2 000005dd: POP 000005de: DUP1 000005df: MLOAD 000005e0: SWAP1 000005e1: PUSH1 0x20 000005e3: ADD 000005e4: SWAP1 000005e5: PUSH1 0x20 000005e7: MUL 000005e8: DUP1 000005e9: DUP4 000005ea: DUP4 000005eb: PUSH1 0x00 000005ed: DUP4 000005ee: EQ 000005ef: PUSH2 0x0617 000005f2: JUMPI 000005f3: JUMPDEST 000005f4: DUP1 000005f5: MLOAD 000005f6: DUP3 000005f7: MSTORE 000005f8: PUSH1 0x20 000005fa: DUP4 000005fb: GT 000005fc: ISZERO 000005fd: PUSH2 0x0617 00000600: JUMPI 00000601: PUSH1 0x20 00000603: DUP3 00000604: ADD 00000605: SWAP2 00000606: POP 00000607: PUSH1 0x20 00000609: DUP2 0000060a: ADD 0000060b: SWAP1 0000060c: POP 0000060d: PUSH1 0x20 0000060f: DUP4 00000610: SUB 00000611: SWAP3 00000612: POP 00000613: PUSH2 0x05f3 00000616: JUMP 00000617: JUMPDEST 00000618: POP 00000619: POP 0000061a: POP 0000061b: SWAP1 0000061c: POP 0000061d: ADD 0000061e: SWAP3 0000061f: POP 00000620: POP 00000621: POP 00000622: PUSH1 0x40 00000624: MLOAD 00000625: DUP1 00000626: SWAP2 00000627: SUB 00000628: SWAP1 00000629: RETURN 0000062a: JUMPDEST 0000062b: CALLVALUE 0000062c: PUSH2 0x0000 0000062f: JUMPI 00000630: PUSH2 0x0645 00000633: PUSH1 0x04 00000635: DUP1 00000636: DUP1 00000637: CALLDATALOAD 00000638: SWAP1 00000639: PUSH1 0x20 0000063b: ADD 0000063c: SWAP1 0000063d: SWAP2 0000063e: SWAP1 0000063f: POP 00000640: POP 00000641: PUSH2 0x16ef 00000644: JUMP 00000645: JUMPDEST 00000646: PUSH1 0x40 00000648: MLOAD 00000649: DUP1 0000064a: DUP1 0000064b: PUSH1 0x20 0000064d: ADD 0000064e: DUP3 0000064f: DUP2 00000650: SUB 00000651: DUP3 00000652: MSTORE 00000653: DUP4 00000654: DUP2 00000655: DUP2 00000656: MLOAD 00000657: DUP2 00000658: MSTORE 00000659: PUSH1 0x20 0000065b: ADD 0000065c: SWAP2 0000065d: POP 0000065e: DUP1 0000065f: MLOAD 00000660: SWAP1 00000661: PUSH1 0x20 00000663: ADD 00000664: SWAP1 00000665: PUSH1 0x20 00000667: MUL 00000668: DUP1 00000669: DUP4 0000066a: DUP4 0000066b: PUSH1 0x00 0000066d: DUP4 0000066e: EQ 0000066f: PUSH2 0x0697 00000672: JUMPI 00000673: JUMPDEST 00000674: DUP1 00000675: MLOAD 00000676: DUP3 00000677: MSTORE 00000678: PUSH1 0x20 0000067a: DUP4 0000067b: GT 0000067c: ISZERO 0000067d: PUSH2 0x0697 00000680: JUMPI 00000681: PUSH1 0x20 00000683: DUP3 00000684: ADD 00000685: SWAP2 00000686: POP 00000687: PUSH1 0x20 00000689: DUP2 0000068a: ADD 0000068b: SWAP1 0000068c: POP 0000068d: PUSH1 0x20 0000068f: DUP4 00000690: SUB 00000691: SWAP3 00000692: POP 00000693: PUSH2 0x0673 00000696: JUMP 00000697: JUMPDEST 00000698: POP 00000699: POP 0000069a: POP 0000069b: SWAP1 0000069c: POP 0000069d: ADD 0000069e: SWAP3 0000069f: POP 000006a0: POP 000006a1: POP 000006a2: PUSH1 0x40 000006a4: MLOAD 000006a5: DUP1 000006a6: SWAP2 000006a7: SUB 000006a8: SWAP1 000006a9: RETURN 000006aa: JUMPDEST 000006ab: CALLVALUE 000006ac: PUSH2 0x0000 000006af: JUMPI 000006b0: PUSH2 0x06b7 000006b3: PUSH2 0x1924 000006b6: JUMP 000006b7: JUMPDEST 000006b8: PUSH1 0x40 000006ba: MLOAD 000006bb: DUP1 000006bc: DUP3 000006bd: DUP2 000006be: MSTORE 000006bf: PUSH1 0x20 000006c1: ADD 000006c2: SWAP2 000006c3: POP 000006c4: POP 000006c5: PUSH1 0x40 000006c7: MLOAD 000006c8: DUP1 000006c9: SWAP2 000006ca: SUB 000006cb: SWAP1 000006cc: RETURN 000006cd: JUMPDEST 000006ce: CALLVALUE 000006cf: PUSH2 0x0000 000006d2: JUMPI 000006d3: PUSH2 0x06e8 000006d6: PUSH1 0x04 000006d8: DUP1 000006d9: DUP1 000006da: CALLDATALOAD 000006db: SWAP1 000006dc: PUSH1 0x20 000006de: ADD 000006df: SWAP1 000006e0: SWAP2 000006e1: SWAP1 000006e2: POP 000006e3: POP 000006e4: PUSH2 0x192a 000006e7: JUMP 000006e8: JUMPDEST 000006e9: STOP 000006ea: JUMPDEST 000006eb: CALLVALUE 000006ec: PUSH2 0x0000 000006ef: JUMPI 000006f0: PUSH2 0x0705 000006f3: PUSH1 0x04 000006f5: DUP1 000006f6: DUP1 000006f7: CALLDATALOAD 000006f8: SWAP1 000006f9: PUSH1 0x20 000006fb: ADD 000006fc: SWAP1 000006fd: SWAP2 000006fe: SWAP1 000006ff: POP 00000700: POP 00000701: PUSH2 0x19e8 00000704: JUMP 00000705: JUMPDEST 00000706: STOP 00000707: JUMPDEST 00000708: CALLVALUE 00000709: PUSH2 0x0000 0000070c: JUMPI 0000070d: PUSH2 0x0784 00000710: PUSH1 0x04 00000712: DUP1 00000713: DUP1 00000714: CALLDATALOAD 00000715: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000072a: AND 0000072b: SWAP1 0000072c: PUSH1 0x20 0000072e: ADD 0000072f: SWAP1 00000730: SWAP2 00000731: SWAP1 00000732: DUP1 00000733: CALLDATALOAD 00000734: SWAP1 00000735: PUSH1 0x20 00000737: ADD 00000738: SWAP1 00000739: SWAP2 0000073a: SWAP1 0000073b: DUP1 0000073c: CALLDATALOAD 0000073d: SWAP1 0000073e: PUSH1 0x20 00000740: ADD 00000741: SWAP1 00000742: DUP3 00000743: ADD 00000744: DUP1 00000745: CALLDATALOAD 00000746: SWAP1 00000747: PUSH1 0x20 00000749: ADD 0000074a: SWAP1 0000074b: DUP1 0000074c: DUP1 0000074d: PUSH1 0x1f 0000074f: ADD 00000750: PUSH1 0x20 00000752: DUP1 00000753: SWAP2 00000754: DIV 00000755: MUL 00000756: PUSH1 0x20 00000758: ADD 00000759: PUSH1 0x40 0000075b: MLOAD 0000075c: SWAP1 0000075d: DUP2 0000075e: ADD 0000075f: PUSH1 0x40 00000761: MSTORE 00000762: DUP1 00000763: SWAP4 00000764: SWAP3 00000765: SWAP2 00000766: SWAP1 00000767: DUP2 00000768: DUP2 00000769: MSTORE 0000076a: PUSH1 0x20 0000076c: ADD 0000076d: DUP4 0000076e: DUP4 0000076f: DUP1 00000770: DUP3 00000771: DUP5 00000772: CALLDATACOPY 00000773: DUP3 00000774: ADD 00000775: SWAP2 00000776: POP 00000777: POP 00000778: POP 00000779: POP 0000077a: POP 0000077b: POP 0000077c: SWAP2 0000077d: SWAP1 0000077e: POP 0000077f: POP 00000780: PUSH2 0x1bca 00000783: JUMP 00000784: JUMPDEST 00000785: PUSH1 0x40 00000787: MLOAD 00000788: DUP1 00000789: DUP3 0000078a: DUP2 0000078b: MSTORE 0000078c: PUSH1 0x20 0000078e: ADD 0000078f: SWAP2 00000790: POP 00000791: POP 00000792: PUSH1 0x40 00000794: MLOAD 00000795: DUP1 00000796: SWAP2 00000797: SUB 00000798: SWAP1 00000799: RETURN 0000079a: JUMPDEST 0000079b: CALLVALUE 0000079c: PUSH2 0x0000 0000079f: JUMPI 000007a0: PUSH2 0x07a7 000007a3: PUSH2 0x1bea 000007a6: JUMP 000007a7: JUMPDEST 000007a8: PUSH1 0x40 000007aa: MLOAD 000007ab: DUP1 000007ac: DUP3 000007ad: DUP2 000007ae: MSTORE 000007af: PUSH1 0x20 000007b1: ADD 000007b2: SWAP2 000007b3: POP 000007b4: POP 000007b5: PUSH1 0x40 000007b7: MLOAD 000007b8: DUP1 000007b9: SWAP2 000007ba: SUB 000007bb: SWAP1 000007bc: RETURN 000007bd: JUMPDEST 000007be: CALLVALUE 000007bf: PUSH2 0x0000 000007c2: JUMPI 000007c3: PUSH2 0x07ca 000007c6: PUSH2 0x1bef 000007c9: JUMP 000007ca: JUMPDEST 000007cb: PUSH1 0x40 000007cd: MLOAD 000007ce: DUP1 000007cf: DUP3 000007d0: DUP2 000007d1: MSTORE 000007d2: PUSH1 0x20 000007d4: ADD 000007d5: SWAP2 000007d6: POP 000007d7: POP 000007d8: PUSH1 0x40 000007da: MLOAD 000007db: DUP1 000007dc: SWAP2 000007dd: SUB 000007de: SWAP1 000007df: RETURN 000007e0: JUMPDEST 000007e1: PUSH1 0x04 000007e3: DUP2 000007e4: DUP2 000007e5: SLOAD 000007e6: DUP2 000007e7: LT 000007e8: ISZERO 000007e9: PUSH2 0x0000 000007ec: JUMPI 000007ed: SWAP1 000007ee: PUSH1 0x00 000007f0: MSTORE 000007f1: PUSH1 0x20 000007f3: PUSH1 0x00 000007f5: KECCAK256 000007f6: SWAP1 000007f7: ADD 000007f8: PUSH1 0x00 000007fa: JUMPDEST 000007fb: SWAP2 000007fc: POP 000007fd: SLOAD 000007fe: SWAP1 000007ff: PUSH2 0x0100 00000802: EXP 00000803: SWAP1 00000804: DIV 00000805: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000081a: AND 0000081b: DUP2 0000081c: JUMP 0000081d: JUMPDEST 0000081e: PUSH1 0x00 00000820: ADDRESS 00000821: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000836: AND 00000837: CALLER 00000838: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000084d: AND 0000084e: EQ 0000084f: ISZERO 00000850: ISZERO 00000851: PUSH2 0x0859 00000854: JUMPI 00000855: PUSH2 0x0000 00000858: JUMP 00000859: JUMPDEST 0000085a: DUP2 0000085b: PUSH1 0x03 0000085d: PUSH1 0x00 0000085f: DUP3 00000860: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000875: AND 00000876: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000088b: AND 0000088c: DUP2 0000088d: MSTORE 0000088e: PUSH1 0x20 00000890: ADD 00000891: SWAP1 00000892: DUP2 00000893: MSTORE 00000894: PUSH1 0x20 00000896: ADD 00000897: PUSH1 0x00 00000899: KECCAK256 0000089a: PUSH1 0x00 0000089c: SWAP1 0000089d: SLOAD 0000089e: SWAP1 0000089f: PUSH2 0x0100 000008a2: EXP 000008a3: SWAP1 000008a4: DIV 000008a5: PUSH1 0xff 000008a7: AND 000008a8: ISZERO 000008a9: ISZERO 000008aa: PUSH2 0x08b2 000008ad: JUMPI 000008ae: PUSH2 0x0000 000008b1: JUMP 000008b2: JUMPDEST 000008b3: PUSH1 0x00 000008b5: PUSH1 0x03 000008b7: PUSH1 0x00 000008b9: DUP6 000008ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008cf: AND 000008d0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008e5: AND 000008e6: DUP2 000008e7: MSTORE 000008e8: PUSH1 0x20 000008ea: ADD 000008eb: SWAP1 000008ec: DUP2 000008ed: MSTORE 000008ee: PUSH1 0x20 000008f0: ADD 000008f1: PUSH1 0x00 000008f3: KECCAK256 000008f4: PUSH1 0x00 000008f6: PUSH2 0x0100 000008f9: EXP 000008fa: DUP2 000008fb: SLOAD 000008fc: DUP2 000008fd: PUSH1 0xff 000008ff: MUL 00000900: NOT 00000901: AND 00000902: SWAP1 00000903: DUP4 00000904: ISZERO 00000905: ISZERO 00000906: MUL 00000907: OR 00000908: SWAP1 00000909: SSTORE 0000090a: POP 0000090b: PUSH1 0x00 0000090d: SWAP2 0000090e: POP 0000090f: JUMPDEST 00000910: PUSH1 0x01 00000912: PUSH1 0x04 00000914: DUP1 00000915: SLOAD 00000916: SWAP1 00000917: POP 00000918: SUB 00000919: DUP3 0000091a: LT 0000091b: ISZERO 0000091c: PUSH2 0x0a35 0000091f: JUMPI 00000920: DUP3 00000921: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000936: AND 00000937: PUSH1 0x04 00000939: DUP4 0000093a: DUP2 0000093b: SLOAD 0000093c: DUP2 0000093d: LT 0000093e: ISZERO 0000093f: PUSH2 0x0000 00000942: JUMPI 00000943: SWAP1 00000944: PUSH1 0x00 00000946: MSTORE 00000947: PUSH1 0x20 00000949: PUSH1 0x00 0000094b: KECCAK256 0000094c: SWAP1 0000094d: ADD 0000094e: PUSH1 0x00 00000950: JUMPDEST 00000951: SWAP1 00000952: SLOAD 00000953: SWAP1 00000954: PUSH2 0x0100 00000957: EXP 00000958: SWAP1 00000959: DIV 0000095a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000096f: AND 00000970: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000985: AND 00000986: EQ 00000987: ISZERO 00000988: PUSH2 0x0a27 0000098b: JUMPI 0000098c: PUSH1 0x04 0000098e: PUSH1 0x01 00000990: PUSH1 0x04 00000992: DUP1 00000993: SLOAD 00000994: SWAP1 00000995: POP 00000996: SUB 00000997: DUP2 00000998: SLOAD 00000999: DUP2 0000099a: LT 0000099b: ISZERO 0000099c: PUSH2 0x0000 0000099f: JUMPI 000009a0: SWAP1 000009a1: PUSH1 0x00 000009a3: MSTORE 000009a4: PUSH1 0x20 000009a6: PUSH1 0x00 000009a8: KECCAK256 000009a9: SWAP1 000009aa: ADD 000009ab: PUSH1 0x00 000009ad: JUMPDEST 000009ae: SWAP1 000009af: SLOAD 000009b0: SWAP1 000009b1: PUSH2 0x0100 000009b4: EXP 000009b5: SWAP1 000009b6: DIV 000009b7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009cc: AND 000009cd: PUSH1 0x04 000009cf: DUP4 000009d0: DUP2 000009d1: SLOAD 000009d2: DUP2 000009d3: LT 000009d4: ISZERO 000009d5: PUSH2 0x0000 000009d8: JUMPI 000009d9: SWAP1 000009da: PUSH1 0x00 000009dc: MSTORE 000009dd: PUSH1 0x20 000009df: PUSH1 0x00 000009e1: KECCAK256 000009e2: SWAP1 000009e3: ADD 000009e4: PUSH1 0x00 000009e6: JUMPDEST 000009e7: PUSH2 0x0100 000009ea: EXP 000009eb: DUP2 000009ec: SLOAD 000009ed: DUP2 000009ee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a03: MUL 00000a04: NOT 00000a05: AND 00000a06: SWAP1 00000a07: DUP4 00000a08: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a1d: AND 00000a1e: MUL 00000a1f: OR 00000a20: SWAP1 00000a21: SSTORE 00000a22: POP 00000a23: PUSH2 0x0a35 00000a26: JUMP 00000a27: JUMPDEST 00000a28: JUMPDEST 00000a29: DUP2 00000a2a: DUP1 00000a2b: PUSH1 0x01 00000a2d: ADD 00000a2e: SWAP3 00000a2f: POP 00000a30: POP 00000a31: PUSH2 0x090f 00000a34: JUMP 00000a35: JUMPDEST 00000a36: PUSH1 0x01 00000a38: PUSH1 0x04 00000a3a: DUP2 00000a3b: DUP2 00000a3c: DUP1 00000a3d: SLOAD 00000a3e: SWAP1 00000a3f: POP 00000a40: SUB 00000a41: SWAP2 00000a42: POP 00000a43: DUP2 00000a44: DUP2 00000a45: SLOAD 00000a46: DUP2 00000a47: DUP4 00000a48: SSTORE 00000a49: DUP2 00000a4a: DUP2 00000a4b: ISZERO 00000a4c: GT 00000a4d: PUSH2 0x0a82 00000a50: JUMPI 00000a51: DUP2 00000a52: DUP4 00000a53: PUSH1 0x00 00000a55: MSTORE 00000a56: PUSH1 0x20 00000a58: PUSH1 0x00 00000a5a: KECCAK256 00000a5b: SWAP2 00000a5c: DUP3 00000a5d: ADD 00000a5e: SWAP2 00000a5f: ADD 00000a60: PUSH2 0x0a81 00000a63: SWAP2 00000a64: SWAP1 00000a65: JUMPDEST 00000a66: DUP1 00000a67: DUP3 00000a68: GT 00000a69: ISZERO 00000a6a: PUSH2 0x0a7d 00000a6d: JUMPI 00000a6e: PUSH1 0x00 00000a70: DUP2 00000a71: PUSH1 0x00 00000a73: SWAP1 00000a74: SSTORE 00000a75: POP 00000a76: PUSH1 0x01 00000a78: ADD 00000a79: PUSH2 0x0a65 00000a7c: JUMP 00000a7d: JUMPDEST 00000a7e: POP 00000a7f: SWAP1 00000a80: JUMP 00000a81: JUMPDEST 00000a82: JUMPDEST 00000a83: POP 00000a84: POP 00000a85: POP 00000a86: POP 00000a87: PUSH1 0x04 00000a89: DUP1 00000a8a: SLOAD 00000a8b: SWAP1 00000a8c: POP 00000a8d: PUSH1 0x05 00000a8f: SLOAD 00000a90: GT 00000a91: ISZERO 00000a92: PUSH2 0x0aa4 00000a95: JUMPI 00000a96: PUSH2 0x0aa3 00000a99: PUSH1 0x04 00000a9b: DUP1 00000a9c: SLOAD 00000a9d: SWAP1 00000a9e: POP 00000a9f: PUSH2 0x192a 00000aa2: JUMP 00000aa3: JUMPDEST 00000aa4: JUMPDEST 00000aa5: DUP3 00000aa6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000abb: AND 00000abc: PUSH32 0x8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b90 00000add: PUSH1 0x40 00000adf: MLOAD 00000ae0: DUP1 00000ae1: SWAP1 00000ae2: POP 00000ae3: PUSH1 0x40 00000ae5: MLOAD 00000ae6: DUP1 00000ae7: SWAP2 00000ae8: SUB 00000ae9: SWAP1 00000aea: LOG2 00000aeb: JUMPDEST 00000aec: JUMPDEST 00000aed: POP 00000aee: JUMPDEST 00000aef: POP 00000af0: POP 00000af1: JUMP 00000af2: JUMPDEST 00000af3: CALLER 00000af4: PUSH1 0x03 00000af6: PUSH1 0x00 00000af8: DUP3 00000af9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b0e: AND 00000b0f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b24: AND 00000b25: DUP2 00000b26: MSTORE 00000b27: PUSH1 0x20 00000b29: ADD 00000b2a: SWAP1 00000b2b: DUP2 00000b2c: MSTORE 00000b2d: PUSH1 0x20 00000b2f: ADD 00000b30: PUSH1 0x00 00000b32: KECCAK256 00000b33: PUSH1 0x00 00000b35: SWAP1 00000b36: SLOAD 00000b37: SWAP1 00000b38: PUSH2 0x0100 00000b3b: EXP 00000b3c: SWAP1 00000b3d: DIV 00000b3e: PUSH1 0xff 00000b40: AND 00000b41: ISZERO 00000b42: ISZERO 00000b43: PUSH2 0x0b4b 00000b46: JUMPI 00000b47: PUSH2 0x0000 00000b4a: JUMP 00000b4b: JUMPDEST 00000b4c: DUP2 00000b4d: CALLER 00000b4e: PUSH1 0x02 00000b50: PUSH1 0x00 00000b52: DUP4 00000b53: DUP2 00000b54: MSTORE 00000b55: PUSH1 0x20 00000b57: ADD 00000b58: SWAP1 00000b59: DUP2 00000b5a: MSTORE 00000b5b: PUSH1 0x20 00000b5d: ADD 00000b5e: PUSH1 0x00 00000b60: KECCAK256 00000b61: PUSH1 0x00 00000b63: DUP3 00000b64: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b79: AND 00000b7a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b8f: AND 00000b90: DUP2 00000b91: MSTORE 00000b92: PUSH1 0x20 00000b94: ADD 00000b95: SWAP1 00000b96: DUP2 00000b97: MSTORE 00000b98: PUSH1 0x20 00000b9a: ADD 00000b9b: PUSH1 0x00 00000b9d: KECCAK256 00000b9e: PUSH1 0x00 00000ba0: SWAP1 00000ba1: SLOAD 00000ba2: SWAP1 00000ba3: PUSH2 0x0100 00000ba6: EXP 00000ba7: SWAP1 00000ba8: DIV 00000ba9: PUSH1 0xff 00000bab: AND 00000bac: ISZERO 00000bad: ISZERO 00000bae: PUSH2 0x0bb6 00000bb1: JUMPI 00000bb2: PUSH2 0x0000 00000bb5: JUMP 00000bb6: JUMPDEST 00000bb7: DUP4 00000bb8: PUSH1 0x01 00000bba: PUSH1 0x00 00000bbc: DUP3 00000bbd: DUP2 00000bbe: MSTORE 00000bbf: PUSH1 0x20 00000bc1: ADD 00000bc2: SWAP1 00000bc3: DUP2 00000bc4: MSTORE 00000bc5: PUSH1 0x20 00000bc7: ADD 00000bc8: PUSH1 0x00 00000bca: KECCAK256 00000bcb: PUSH1 0x03 00000bcd: ADD 00000bce: PUSH1 0x00 00000bd0: SWAP1 00000bd1: SLOAD 00000bd2: SWAP1 00000bd3: PUSH2 0x0100 00000bd6: EXP 00000bd7: SWAP1 00000bd8: DIV 00000bd9: PUSH1 0xff 00000bdb: AND 00000bdc: ISZERO 00000bdd: PUSH2 0x0be5 00000be0: JUMPI 00000be1: PUSH2 0x0000 00000be4: JUMP 00000be5: JUMPDEST 00000be6: PUSH1 0x00 00000be8: PUSH1 0x02 00000bea: PUSH1 0x00 00000bec: DUP8 00000bed: DUP2 00000bee: MSTORE 00000bef: PUSH1 0x20 00000bf1: ADD 00000bf2: SWAP1 00000bf3: DUP2 00000bf4: MSTORE 00000bf5: PUSH1 0x20 00000bf7: ADD 00000bf8: PUSH1 0x00 00000bfa: KECCAK256 00000bfb: PUSH1 0x00 00000bfd: CALLER 00000bfe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c13: AND 00000c14: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c29: AND 00000c2a: DUP2 00000c2b: MSTORE 00000c2c: PUSH1 0x20 00000c2e: ADD 00000c2f: SWAP1 00000c30: DUP2 00000c31: MSTORE 00000c32: PUSH1 0x20 00000c34: ADD 00000c35: PUSH1 0x00 00000c37: KECCAK256 00000c38: PUSH1 0x00 00000c3a: PUSH2 0x0100 00000c3d: EXP 00000c3e: DUP2 00000c3f: SLOAD 00000c40: DUP2 00000c41: PUSH1 0xff 00000c43: MUL 00000c44: NOT 00000c45: AND 00000c46: SWAP1 00000c47: DUP4 00000c48: ISZERO 00000c49: ISZERO 00000c4a: MUL 00000c4b: OR 00000c4c: SWAP1 00000c4d: SSTORE 00000c4e: POP 00000c4f: DUP5 00000c50: CALLER 00000c51: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c66: AND 00000c67: PUSH32 0xf6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e9 00000c88: PUSH1 0x40 00000c8a: MLOAD 00000c8b: DUP1 00000c8c: SWAP1 00000c8d: POP 00000c8e: PUSH1 0x40 00000c90: MLOAD 00000c91: DUP1 00000c92: SWAP2 00000c93: SUB 00000c94: SWAP1 00000c95: LOG3 00000c96: JUMPDEST 00000c97: JUMPDEST 00000c98: POP 00000c99: JUMPDEST 00000c9a: POP 00000c9b: POP 00000c9c: JUMPDEST 00000c9d: POP 00000c9e: POP 00000c9f: JUMP 00000ca0: JUMPDEST 00000ca1: PUSH1 0x03 00000ca3: PUSH1 0x20 00000ca5: MSTORE 00000ca6: DUP1 00000ca7: PUSH1 0x00 00000ca9: MSTORE 00000caa: PUSH1 0x40 00000cac: PUSH1 0x00 00000cae: KECCAK256 00000caf: PUSH1 0x00 00000cb1: SWAP2 00000cb2: POP 00000cb3: SLOAD 00000cb4: SWAP1 00000cb5: PUSH2 0x0100 00000cb8: EXP 00000cb9: SWAP1 00000cba: DIV 00000cbb: PUSH1 0xff 00000cbd: AND 00000cbe: DUP2 00000cbf: JUMP 00000cc0: JUMPDEST 00000cc1: PUSH1 0x02 00000cc3: PUSH1 0x20 00000cc5: MSTORE 00000cc6: DUP2 00000cc7: PUSH1 0x00 00000cc9: MSTORE 00000cca: PUSH1 0x40 00000ccc: PUSH1 0x00 00000cce: KECCAK256 00000ccf: PUSH1 0x20 00000cd1: MSTORE 00000cd2: DUP1 00000cd3: PUSH1 0x00 00000cd5: MSTORE 00000cd6: PUSH1 0x40 00000cd8: PUSH1 0x00 00000cda: KECCAK256 00000cdb: PUSH1 0x00 00000cdd: SWAP2 00000cde: POP 00000cdf: SWAP2 00000ce0: POP 00000ce1: SWAP1 00000ce2: SLOAD 00000ce3: SWAP1 00000ce4: PUSH2 0x0100 00000ce7: EXP 00000ce8: SWAP1 00000ce9: DIV 00000cea: PUSH1 0xff 00000cec: AND 00000ced: DUP2 00000cee: JUMP 00000cef: JUMPDEST 00000cf0: PUSH1 0x00 00000cf2: PUSH1 0x00 00000cf4: SWAP1 00000cf5: SLOAD 00000cf6: SWAP1 00000cf7: PUSH2 0x0100 00000cfa: EXP 00000cfb: SWAP1 00000cfc: DIV 00000cfd: PUSH1 0xff 00000cff: AND 00000d00: DUP2 00000d01: JUMP 00000d02: JUMPDEST 00000d03: PUSH1 0x00 00000d05: PUSH1 0x00 00000d07: PUSH1 0x00 00000d09: SWAP1 00000d0a: POP 00000d0b: JUMPDEST 00000d0c: PUSH1 0x06 00000d0e: SLOAD 00000d0f: DUP2 00000d10: LT 00000d11: ISZERO 00000d12: PUSH2 0x0d91 00000d15: JUMPI 00000d16: DUP4 00000d17: DUP1 00000d18: ISZERO 00000d19: PUSH2 0x0d43 00000d1c: JUMPI 00000d1d: POP 00000d1e: PUSH1 0x01 00000d20: PUSH1 0x00 00000d22: DUP3 00000d23: DUP2 00000d24: MSTORE 00000d25: PUSH1 0x20 00000d27: ADD 00000d28: SWAP1 00000d29: DUP2 00000d2a: MSTORE 00000d2b: PUSH1 0x20 00000d2d: ADD 00000d2e: PUSH1 0x00 00000d30: KECCAK256 00000d31: PUSH1 0x03 00000d33: ADD 00000d34: PUSH1 0x00 00000d36: SWAP1 00000d37: SLOAD 00000d38: SWAP1 00000d39: PUSH2 0x0100 00000d3c: EXP 00000d3d: SWAP1 00000d3e: DIV 00000d3f: PUSH1 0xff 00000d41: AND 00000d42: ISZERO 00000d43: JUMPDEST 00000d44: DUP1 00000d45: PUSH2 0x0d77 00000d48: JUMPI 00000d49: POP 00000d4a: DUP3 00000d4b: DUP1 00000d4c: ISZERO 00000d4d: PUSH2 0x0d76 00000d50: JUMPI 00000d51: POP 00000d52: PUSH1 0x01 00000d54: PUSH1 0x00 00000d56: DUP3 00000d57: DUP2 00000d58: MSTORE 00000d59: PUSH1 0x20 00000d5b: ADD 00000d5c: SWAP1 00000d5d: DUP2 00000d5e: MSTORE 00000d5f: PUSH1 0x20 00000d61: ADD 00000d62: PUSH1 0x00 00000d64: KECCAK256 00000d65: PUSH1 0x03 00000d67: ADD 00000d68: PUSH1 0x00 00000d6a: SWAP1 00000d6b: SLOAD 00000d6c: SWAP1 00000d6d: PUSH2 0x0100 00000d70: EXP 00000d71: SWAP1 00000d72: DIV 00000d73: PUSH1 0xff 00000d75: AND 00000d76: JUMPDEST 00000d77: JUMPDEST 00000d78: ISZERO 00000d79: PUSH2 0x0d83 00000d7c: JUMPI 00000d7d: PUSH1 0x01 00000d7f: DUP3 00000d80: ADD 00000d81: SWAP2 00000d82: POP 00000d83: JUMPDEST 00000d84: JUMPDEST 00000d85: DUP1 00000d86: DUP1 00000d87: PUSH1 0x01 00000d89: ADD 00000d8a: SWAP2 00000d8b: POP 00000d8c: POP 00000d8d: PUSH2 0x0d0b 00000d90: JUMP 00000d91: JUMPDEST 00000d92: JUMPDEST 00000d93: POP 00000d94: SWAP3 00000d95: SWAP2 00000d96: POP 00000d97: POP 00000d98: JUMP 00000d99: JUMPDEST 00000d9a: ADDRESS 00000d9b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000db0: AND 00000db1: CALLER 00000db2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dc7: AND 00000dc8: EQ 00000dc9: ISZERO 00000dca: ISZERO 00000dcb: PUSH2 0x0dd3 00000dce: JUMPI 00000dcf: PUSH2 0x0000 00000dd2: JUMP 00000dd3: JUMPDEST 00000dd4: DUP1 00000dd5: PUSH1 0x03 00000dd7: PUSH1 0x00 00000dd9: DUP3 00000dda: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000def: AND 00000df0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e05: AND 00000e06: DUP2 00000e07: MSTORE 00000e08: PUSH1 0x20 00000e0a: ADD 00000e0b: SWAP1 00000e0c: DUP2 00000e0d: MSTORE 00000e0e: PUSH1 0x20 00000e10: ADD 00000e11: PUSH1 0x00 00000e13: KECCAK256 00000e14: PUSH1 0x00 00000e16: SWAP1 00000e17: SLOAD 00000e18: SWAP1 00000e19: PUSH2 0x0100 00000e1c: EXP 00000e1d: SWAP1 00000e1e: DIV 00000e1f: PUSH1 0xff 00000e21: AND 00000e22: ISZERO 00000e23: PUSH2 0x0e2b 00000e26: JUMPI 00000e27: PUSH2 0x0000 00000e2a: JUMP 00000e2b: JUMPDEST 00000e2c: DUP2 00000e2d: PUSH1 0x00 00000e2f: DUP2 00000e30: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e45: AND 00000e46: EQ 00000e47: ISZERO 00000e48: PUSH2 0x0e50 00000e4b: JUMPI 00000e4c: PUSH2 0x0000 00000e4f: JUMP 00000e50: JUMPDEST 00000e51: PUSH1 0x01 00000e53: PUSH1 0x04 00000e55: DUP1 00000e56: SLOAD 00000e57: SWAP1 00000e58: POP 00000e59: ADD 00000e5a: PUSH1 0x05 00000e5c: SLOAD 00000e5d: PUSH1 0x32 00000e5f: DUP3 00000e60: GT 00000e61: ISZERO 00000e62: PUSH2 0x0e6a 00000e65: JUMPI 00000e66: PUSH2 0x0000 00000e69: JUMP 00000e6a: JUMPDEST 00000e6b: DUP2 00000e6c: DUP2 00000e6d: GT 00000e6e: ISZERO 00000e6f: PUSH2 0x0e77 00000e72: JUMPI 00000e73: PUSH2 0x0000 00000e76: JUMP 00000e77: JUMPDEST 00000e78: PUSH1 0x00 00000e7a: DUP2 00000e7b: EQ 00000e7c: ISZERO 00000e7d: PUSH2 0x0e85 00000e80: JUMPI 00000e81: PUSH2 0x0000 00000e84: JUMP 00000e85: JUMPDEST 00000e86: PUSH1 0x00 00000e88: DUP3 00000e89: EQ 00000e8a: ISZERO 00000e8b: PUSH2 0x0e93 00000e8e: JUMPI 00000e8f: PUSH2 0x0000 00000e92: JUMP 00000e93: JUMPDEST 00000e94: PUSH1 0x01 00000e96: PUSH1 0x03 00000e98: PUSH1 0x00 00000e9a: DUP8 00000e9b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000eb0: AND 00000eb1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ec6: AND 00000ec7: DUP2 00000ec8: MSTORE 00000ec9: PUSH1 0x20 00000ecb: ADD 00000ecc: SWAP1 00000ecd: DUP2 00000ece: MSTORE 00000ecf: PUSH1 0x20 00000ed1: ADD 00000ed2: PUSH1 0x00 00000ed4: KECCAK256 00000ed5: PUSH1 0x00 00000ed7: PUSH2 0x0100 00000eda: EXP 00000edb: DUP2 00000edc: SLOAD 00000edd: DUP2 00000ede: PUSH1 0xff 00000ee0: MUL 00000ee1: NOT 00000ee2: AND 00000ee3: SWAP1 00000ee4: DUP4 00000ee5: ISZERO 00000ee6: ISZERO 00000ee7: MUL 00000ee8: OR 00000ee9: SWAP1 00000eea: SSTORE 00000eeb: POP 00000eec: PUSH1 0x04 00000eee: DUP1 00000eef: SLOAD 00000ef0: DUP1 00000ef1: PUSH1 0x01 00000ef3: ADD 00000ef4: DUP3 00000ef5: DUP2 00000ef6: DUP2 00000ef7: SLOAD 00000ef8: DUP2 00000ef9: DUP4 00000efa: SSTORE 00000efb: DUP2 00000efc: DUP2 00000efd: ISZERO 00000efe: GT 00000eff: PUSH2 0x0f34 00000f02: JUMPI 00000f03: DUP2 00000f04: DUP4 00000f05: PUSH1 0x00 00000f07: MSTORE 00000f08: PUSH1 0x20 00000f0a: PUSH1 0x00 00000f0c: KECCAK256 00000f0d: SWAP2 00000f0e: DUP3 00000f0f: ADD 00000f10: SWAP2 00000f11: ADD 00000f12: PUSH2 0x0f33 00000f15: SWAP2 00000f16: SWAP1 00000f17: JUMPDEST 00000f18: DUP1 00000f19: DUP3 00000f1a: GT 00000f1b: ISZERO 00000f1c: PUSH2 0x0f2f 00000f1f: JUMPI 00000f20: PUSH1 0x00 00000f22: DUP2 00000f23: PUSH1 0x00 00000f25: SWAP1 00000f26: SSTORE 00000f27: POP 00000f28: PUSH1 0x01 00000f2a: ADD 00000f2b: PUSH2 0x0f17 00000f2e: JUMP 00000f2f: JUMPDEST 00000f30: POP 00000f31: SWAP1 00000f32: JUMP 00000f33: JUMPDEST 00000f34: JUMPDEST 00000f35: POP 00000f36: POP 00000f37: POP 00000f38: SWAP2 00000f39: PUSH1 0x00 00000f3b: MSTORE 00000f3c: PUSH1 0x20 00000f3e: PUSH1 0x00 00000f40: KECCAK256 00000f41: SWAP1 00000f42: ADD 00000f43: PUSH1 0x00 00000f45: JUMPDEST 00000f46: DUP8 00000f47: SWAP1 00000f48: SWAP2 00000f49: SWAP1 00000f4a: SWAP2 00000f4b: PUSH2 0x0100 00000f4e: EXP 00000f4f: DUP2 00000f50: SLOAD 00000f51: DUP2 00000f52: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f67: MUL 00000f68: NOT 00000f69: AND 00000f6a: SWAP1 00000f6b: DUP4 00000f6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f81: AND 00000f82: MUL 00000f83: OR 00000f84: SWAP1 00000f85: SSTORE 00000f86: POP 00000f87: POP 00000f88: DUP5 00000f89: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f9e: AND 00000f9f: PUSH32 0xf39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d 00000fc0: PUSH1 0x40 00000fc2: MLOAD 00000fc3: DUP1 00000fc4: SWAP1 00000fc5: POP 00000fc6: PUSH1 0x40 00000fc8: MLOAD 00000fc9: DUP1 00000fca: SWAP2 00000fcb: SUB 00000fcc: SWAP1 00000fcd: LOG2 00000fce: JUMPDEST 00000fcf: JUMPDEST 00000fd0: POP 00000fd1: POP 00000fd2: JUMPDEST 00000fd3: POP 00000fd4: JUMPDEST 00000fd5: POP 00000fd6: JUMPDEST 00000fd7: POP 00000fd8: JUMP 00000fd9: JUMPDEST 00000fda: PUSH1 0x00 00000fdc: PUSH1 0x00 00000fde: PUSH1 0x00 00000fe0: PUSH1 0x00 00000fe2: SWAP2 00000fe3: POP 00000fe4: PUSH1 0x00 00000fe6: SWAP1 00000fe7: POP 00000fe8: JUMPDEST 00000fe9: PUSH1 0x04 00000feb: DUP1 00000fec: SLOAD 00000fed: SWAP1 00000fee: POP 00000fef: DUP2 00000ff0: LT 00000ff1: ISZERO 00000ff2: PUSH2 0x10b8 00000ff5: JUMPI 00000ff6: PUSH1 0x02 00000ff8: PUSH1 0x00 00000ffa: DUP6 00000ffb: DUP2 00000ffc: MSTORE 00000ffd: PUSH1 0x20 00000fff: ADD 00001000: SWAP1 00001001: DUP2 00001002: MSTORE 00001003: PUSH1 0x20 00001005: ADD 00001006: PUSH1 0x00 00001008: KECCAK256 00001009: PUSH1 0x00 0000100b: PUSH1 0x04 0000100d: DUP4 0000100e: DUP2 0000100f: SLOAD 00001010: DUP2 00001011: LT 00001012: ISZERO 00001013: PUSH2 0x0000 00001016: JUMPI 00001017: SWAP1 00001018: PUSH1 0x00 0000101a: MSTORE 0000101b: PUSH1 0x20 0000101d: PUSH1 0x00 0000101f: KECCAK256 00001020: SWAP1 00001021: ADD 00001022: PUSH1 0x00 00001024: JUMPDEST 00001025: SWAP1 00001026: SLOAD 00001027: SWAP1 00001028: PUSH2 0x0100 0000102b: EXP 0000102c: SWAP1 0000102d: DIV 0000102e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001043: AND 00001044: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001059: AND 0000105a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000106f: AND 00001070: DUP2 00001071: MSTORE 00001072: PUSH1 0x20 00001074: ADD 00001075: SWAP1 00001076: DUP2 00001077: MSTORE 00001078: PUSH1 0x20 0000107a: ADD 0000107b: PUSH1 0x00 0000107d: KECCAK256 0000107e: PUSH1 0x00 00001080: SWAP1 00001081: SLOAD 00001082: SWAP1 00001083: PUSH2 0x0100 00001086: EXP 00001087: SWAP1 00001088: DIV 00001089: PUSH1 0xff 0000108b: AND 0000108c: ISZERO 0000108d: PUSH2 0x1097 00001090: JUMPI 00001091: PUSH1 0x01 00001093: DUP3 00001094: ADD 00001095: SWAP2 00001096: POP 00001097: JUMPDEST 00001098: PUSH1 0x05 0000109a: SLOAD 0000109b: DUP3 0000109c: EQ 0000109d: ISZERO 0000109e: PUSH2 0x10aa 000010a1: JUMPI 000010a2: PUSH1 0x01 000010a4: SWAP3 000010a5: POP 000010a6: PUSH2 0x10b9 000010a9: JUMP 000010aa: JUMPDEST 000010ab: JUMPDEST 000010ac: DUP1 000010ad: DUP1 000010ae: PUSH1 0x01 000010b0: ADD 000010b1: SWAP2 000010b2: POP 000010b3: POP 000010b4: PUSH2 0x0fe8 000010b7: JUMP 000010b8: JUMPDEST 000010b9: JUMPDEST 000010ba: POP 000010bb: POP 000010bc: SWAP2 000010bd: SWAP1 000010be: POP 000010bf: JUMP 000010c0: JUMPDEST 000010c1: ADDRESS 000010c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010d7: AND 000010d8: CALLER 000010d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010ee: AND 000010ef: EQ 000010f0: ISZERO 000010f1: ISZERO 000010f2: PUSH2 0x10fa 000010f5: JUMPI 000010f6: PUSH2 0x0000 000010f9: JUMP 000010fa: JUMPDEST 000010fb: DUP3 000010fc: PUSH1 0x03 000010fe: PUSH1 0x00 00001100: DUP3 00001101: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001116: AND 00001117: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000112c: AND 0000112d: DUP2 0000112e: MSTORE 0000112f: PUSH1 0x20 00001131: ADD 00001132: SWAP1 00001133: DUP2 00001134: MSTORE 00001135: PUSH1 0x20 00001137: ADD 00001138: PUSH1 0x00 0000113a: KECCAK256 0000113b: PUSH1 0x00 0000113d: SWAP1 0000113e: SLOAD 0000113f: SWAP1 00001140: PUSH2 0x0100 00001143: EXP 00001144: SWAP1 00001145: DIV 00001146: PUSH1 0xff 00001148: AND 00001149: ISZERO 0000114a: ISZERO 0000114b: PUSH2 0x1153 0000114e: JUMPI 0000114f: PUSH2 0x0000 00001152: JUMP 00001153: JUMPDEST 00001154: DUP3 00001155: PUSH1 0x03 00001157: PUSH1 0x00 00001159: DUP3 0000115a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000116f: AND 00001170: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001185: AND 00001186: DUP2 00001187: MSTORE 00001188: PUSH1 0x20 0000118a: ADD 0000118b: SWAP1 0000118c: DUP2 0000118d: MSTORE 0000118e: PUSH1 0x20 00001190: ADD 00001191: PUSH1 0x00 00001193: KECCAK256 00001194: PUSH1 0x00 00001196: SWAP1 00001197: SLOAD 00001198: SWAP1 00001199: PUSH2 0x0100 0000119c: EXP 0000119d: SWAP1 0000119e: DIV 0000119f: PUSH1 0xff 000011a1: AND 000011a2: ISZERO 000011a3: PUSH2 0x11ab 000011a6: JUMPI 000011a7: PUSH2 0x0000 000011aa: JUMP 000011ab: JUMPDEST 000011ac: DUP5 000011ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011c2: AND 000011c3: PUSH1 0x04 000011c5: DUP5 000011c6: DUP2 000011c7: SLOAD 000011c8: DUP2 000011c9: LT 000011ca: ISZERO 000011cb: PUSH2 0x0000 000011ce: JUMPI 000011cf: SWAP1 000011d0: PUSH1 0x00 000011d2: MSTORE 000011d3: PUSH1 0x20 000011d5: PUSH1 0x00 000011d7: KECCAK256 000011d8: SWAP1 000011d9: ADD 000011da: PUSH1 0x00 000011dc: JUMPDEST 000011dd: SWAP1 000011de: SLOAD 000011df: SWAP1 000011e0: PUSH2 0x0100 000011e3: EXP 000011e4: SWAP1 000011e5: DIV 000011e6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011fb: AND 000011fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001211: AND 00001212: EQ 00001213: ISZERO 00001214: ISZERO 00001215: PUSH2 0x121d 00001218: JUMPI 00001219: PUSH2 0x0000 0000121c: JUMP 0000121d: JUMPDEST 0000121e: DUP4 0000121f: PUSH1 0x04 00001221: DUP5 00001222: DUP2 00001223: SLOAD 00001224: DUP2 00001225: LT 00001226: ISZERO 00001227: PUSH2 0x0000 0000122a: JUMPI 0000122b: SWAP1 0000122c: PUSH1 0x00 0000122e: MSTORE 0000122f: PUSH1 0x20 00001231: PUSH1 0x00 00001233: KECCAK256 00001234: SWAP1 00001235: ADD 00001236: PUSH1 0x00 00001238: JUMPDEST 00001239: PUSH2 0x0100 0000123c: EXP 0000123d: DUP2 0000123e: SLOAD 0000123f: DUP2 00001240: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001255: MUL 00001256: NOT 00001257: AND 00001258: SWAP1 00001259: DUP4 0000125a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000126f: AND 00001270: MUL 00001271: OR 00001272: SWAP1 00001273: SSTORE 00001274: POP 00001275: PUSH1 0x00 00001277: PUSH1 0x03 00001279: PUSH1 0x00 0000127b: DUP8 0000127c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001291: AND 00001292: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012a7: AND 000012a8: DUP2 000012a9: MSTORE 000012aa: PUSH1 0x20 000012ac: ADD 000012ad: SWAP1 000012ae: DUP2 000012af: MSTORE 000012b0: PUSH1 0x20 000012b2: ADD 000012b3: PUSH1 0x00 000012b5: KECCAK256 000012b6: PUSH1 0x00 000012b8: PUSH2 0x0100 000012bb: EXP 000012bc: DUP2 000012bd: SLOAD 000012be: DUP2 000012bf: PUSH1 0xff 000012c1: MUL 000012c2: NOT 000012c3: AND 000012c4: SWAP1 000012c5: DUP4 000012c6: ISZERO 000012c7: ISZERO 000012c8: MUL 000012c9: OR 000012ca: SWAP1 000012cb: SSTORE 000012cc: POP 000012cd: PUSH1 0x01 000012cf: PUSH1 0x03 000012d1: PUSH1 0x00 000012d3: DUP7 000012d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012e9: AND 000012ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012ff: AND 00001300: DUP2 00001301: MSTORE 00001302: PUSH1 0x20 00001304: ADD 00001305: SWAP1 00001306: DUP2 00001307: MSTORE 00001308: PUSH1 0x20 0000130a: ADD 0000130b: PUSH1 0x00 0000130d: KECCAK256 0000130e: PUSH1 0x00 00001310: PUSH2 0x0100 00001313: EXP 00001314: DUP2 00001315: SLOAD 00001316: DUP2 00001317: PUSH1 0xff 00001319: MUL 0000131a: NOT 0000131b: AND 0000131c: SWAP1 0000131d: DUP4 0000131e: ISZERO 0000131f: ISZERO 00001320: MUL 00001321: OR 00001322: SWAP1 00001323: SSTORE 00001324: POP 00001325: DUP5 00001326: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000133b: AND 0000133c: PUSH32 0x8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b90 0000135d: PUSH1 0x40 0000135f: MLOAD 00001360: DUP1 00001361: SWAP1 00001362: POP 00001363: PUSH1 0x40 00001365: MLOAD 00001366: DUP1 00001367: SWAP2 00001368: SUB 00001369: SWAP1 0000136a: LOG2 0000136b: DUP4 0000136c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001381: AND 00001382: PUSH32 0xf39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d 000013a3: PUSH1 0x40 000013a5: MLOAD 000013a6: DUP1 000013a7: SWAP1 000013a8: POP 000013a9: PUSH1 0x40 000013ab: MLOAD 000013ac: DUP1 000013ad: SWAP2 000013ae: SUB 000013af: SWAP1 000013b0: LOG2 000013b1: JUMPDEST 000013b2: JUMPDEST 000013b3: POP 000013b4: JUMPDEST 000013b5: POP 000013b6: JUMPDEST 000013b7: POP 000013b8: POP 000013b9: POP 000013ba: JUMP 000013bb: JUMPDEST 000013bc: PUSH1 0x00 000013be: PUSH1 0x00 000013c0: PUSH1 0x00 000013c2: SWAP1 000013c3: POP 000013c4: JUMPDEST 000013c5: PUSH1 0x04 000013c7: DUP1 000013c8: SLOAD 000013c9: SWAP1 000013ca: POP 000013cb: DUP2 000013cc: LT 000013cd: ISZERO 000013ce: PUSH2 0x1481 000013d1: JUMPI 000013d2: PUSH1 0x02 000013d4: PUSH1 0x00 000013d6: DUP5 000013d7: DUP2 000013d8: MSTORE 000013d9: PUSH1 0x20 000013db: ADD 000013dc: SWAP1 000013dd: DUP2 000013de: MSTORE 000013df: PUSH1 0x20 000013e1: ADD 000013e2: PUSH1 0x00 000013e4: KECCAK256 000013e5: PUSH1 0x00 000013e7: PUSH1 0x04 000013e9: DUP4 000013ea: DUP2 000013eb: SLOAD 000013ec: DUP2 000013ed: LT 000013ee: ISZERO 000013ef: PUSH2 0x0000 000013f2: JUMPI 000013f3: SWAP1 000013f4: PUSH1 0x00 000013f6: MSTORE 000013f7: PUSH1 0x20 000013f9: PUSH1 0x00 000013fb: KECCAK256 000013fc: SWAP1 000013fd: ADD 000013fe: PUSH1 0x00 00001400: JUMPDEST 00001401: SWAP1 00001402: SLOAD 00001403: SWAP1 00001404: PUSH2 0x0100 00001407: EXP 00001408: SWAP1 00001409: DIV 0000140a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000141f: AND 00001420: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001435: AND 00001436: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000144b: AND 0000144c: DUP2 0000144d: MSTORE 0000144e: PUSH1 0x20 00001450: ADD 00001451: SWAP1 00001452: DUP2 00001453: MSTORE 00001454: PUSH1 0x20 00001456: ADD 00001457: PUSH1 0x00 00001459: KECCAK256 0000145a: PUSH1 0x00 0000145c: SWAP1 0000145d: SLOAD 0000145e: SWAP1 0000145f: PUSH2 0x0100 00001462: EXP 00001463: SWAP1 00001464: DIV 00001465: PUSH1 0xff 00001467: AND 00001468: ISZERO 00001469: PUSH2 0x1473 0000146c: JUMPI 0000146d: PUSH1 0x01 0000146f: DUP3 00001470: ADD 00001471: SWAP2 00001472: POP 00001473: JUMPDEST 00001474: JUMPDEST 00001475: DUP1 00001476: DUP1 00001477: PUSH1 0x01 00001479: ADD 0000147a: SWAP2 0000147b: POP 0000147c: POP 0000147d: PUSH2 0x13c4 00001480: JUMP 00001481: JUMPDEST 00001482: JUMPDEST 00001483: POP 00001484: SWAP2 00001485: SWAP1 00001486: POP 00001487: JUMP 00001488: JUMPDEST 00001489: PUSH1 0x01 0000148b: PUSH1 0x20 0000148d: MSTORE 0000148e: DUP1 0000148f: PUSH1 0x00 00001491: MSTORE 00001492: PUSH1 0x40 00001494: PUSH1 0x00 00001496: KECCAK256 00001497: PUSH1 0x00 00001499: SWAP2 0000149a: POP 0000149b: SWAP1 0000149c: POP 0000149d: DUP1 0000149e: PUSH1 0x00 000014a0: ADD 000014a1: PUSH1 0x00 000014a3: SWAP1 000014a4: SLOAD 000014a5: SWAP1 000014a6: PUSH2 0x0100 000014a9: EXP 000014aa: SWAP1 000014ab: DIV 000014ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014c1: AND 000014c2: SWAP1 000014c3: DUP1 000014c4: PUSH1 0x01 000014c6: ADD 000014c7: SLOAD 000014c8: SWAP1 000014c9: DUP1 000014ca: PUSH1 0x02 000014cc: ADD 000014cd: SWAP1 000014ce: DUP1 000014cf: PUSH1 0x03 000014d1: ADD 000014d2: PUSH1 0x00 000014d4: SWAP1 000014d5: SLOAD 000014d6: SWAP1 000014d7: PUSH2 0x0100 000014da: EXP 000014db: SWAP1 000014dc: DIV 000014dd: PUSH1 0xff 000014df: AND 000014e0: SWAP1 000014e1: POP 000014e2: DUP5 000014e3: JUMP 000014e4: JUMPDEST 000014e5: PUSH1 0x20 000014e7: PUSH1 0x40 000014e9: MLOAD 000014ea: SWAP1 000014eb: DUP2 000014ec: ADD 000014ed: PUSH1 0x40 000014ef: MSTORE 000014f0: DUP1 000014f1: PUSH1 0x00 000014f3: DUP2 000014f4: MSTORE 000014f5: POP 000014f6: PUSH1 0x04 000014f8: DUP1 000014f9: SLOAD 000014fa: DUP1 000014fb: PUSH1 0x20 000014fd: MUL 000014fe: PUSH1 0x20 00001500: ADD 00001501: PUSH1 0x40 00001503: MLOAD 00001504: SWAP1 00001505: DUP2 00001506: ADD 00001507: PUSH1 0x40 00001509: MSTORE 0000150a: DUP1 0000150b: SWAP3 0000150c: SWAP2 0000150d: SWAP1 0000150e: DUP2 0000150f: DUP2 00001510: MSTORE 00001511: PUSH1 0x20 00001513: ADD 00001514: DUP3 00001515: DUP1 00001516: SLOAD 00001517: DUP1 00001518: ISZERO 00001519: PUSH2 0x1577 0000151c: JUMPI 0000151d: PUSH1 0x20 0000151f: MUL 00001520: DUP3 00001521: ADD 00001522: SWAP2 00001523: SWAP1 00001524: PUSH1 0x00 00001526: MSTORE 00001527: PUSH1 0x20 00001529: PUSH1 0x00 0000152b: KECCAK256 0000152c: SWAP1 0000152d: JUMPDEST 0000152e: DUP2 0000152f: PUSH1 0x00 00001531: SWAP1 00001532: SLOAD 00001533: SWAP1 00001534: PUSH2 0x0100 00001537: EXP 00001538: SWAP1 00001539: DIV 0000153a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000154f: AND 00001550: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001565: AND 00001566: DUP2 00001567: MSTORE 00001568: PUSH1 0x20 0000156a: ADD 0000156b: SWAP1 0000156c: PUSH1 0x01 0000156e: ADD 0000156f: SWAP1 00001570: DUP1 00001571: DUP4 00001572: GT 00001573: PUSH2 0x152d 00001576: JUMPI 00001577: JUMPDEST 00001578: POP 00001579: POP 0000157a: POP 0000157b: POP 0000157c: POP 0000157d: SWAP1 0000157e: POP 0000157f: JUMPDEST 00001580: SWAP1 00001581: JUMP 00001582: JUMPDEST 00001583: PUSH1 0x20 00001585: PUSH1 0x40 00001587: MLOAD 00001588: SWAP1 00001589: DUP2 0000158a: ADD 0000158b: PUSH1 0x40 0000158d: MSTORE 0000158e: DUP1 0000158f: PUSH1 0x00 00001591: DUP2 00001592: MSTORE 00001593: POP 00001594: PUSH1 0x20 00001596: PUSH1 0x40 00001598: MLOAD 00001599: SWAP1 0000159a: DUP2 0000159b: ADD 0000159c: PUSH1 0x40 0000159e: MSTORE 0000159f: DUP1 000015a0: PUSH1 0x00 000015a2: DUP2 000015a3: MSTORE 000015a4: POP 000015a5: PUSH1 0x00 000015a7: PUSH1 0x00 000015a9: PUSH1 0x06 000015ab: SLOAD 000015ac: PUSH1 0x40 000015ae: MLOAD 000015af: DUP1 000015b0: MSIZE 000015b1: LT 000015b2: PUSH2 0x15b8 000015b5: JUMPI 000015b6: POP 000015b7: MSIZE 000015b8: JUMPDEST 000015b9: SWAP1 000015ba: DUP1 000015bb: DUP3 000015bc: MSTORE 000015bd: DUP1 000015be: PUSH1 0x20 000015c0: MUL 000015c1: PUSH1 0x20 000015c3: ADD 000015c4: DUP3 000015c5: ADD 000015c6: PUSH1 0x40 000015c8: MSTORE 000015c9: JUMPDEST 000015ca: POP 000015cb: SWAP3 000015cc: POP 000015cd: PUSH1 0x00 000015cf: SWAP2 000015d0: POP 000015d1: PUSH1 0x00 000015d3: SWAP1 000015d4: POP 000015d5: JUMPDEST 000015d6: PUSH1 0x06 000015d8: SLOAD 000015d9: DUP2 000015da: LT 000015db: ISZERO 000015dc: PUSH2 0x1675 000015df: JUMPI 000015e0: DUP6 000015e1: DUP1 000015e2: ISZERO 000015e3: PUSH2 0x160d 000015e6: JUMPI 000015e7: POP 000015e8: PUSH1 0x01 000015ea: PUSH1 0x00 000015ec: DUP3 000015ed: DUP2 000015ee: MSTORE 000015ef: PUSH1 0x20 000015f1: ADD 000015f2: SWAP1 000015f3: DUP2 000015f4: MSTORE 000015f5: PUSH1 0x20 000015f7: ADD 000015f8: PUSH1 0x00 000015fa: KECCAK256 000015fb: PUSH1 0x03 000015fd: ADD 000015fe: PUSH1 0x00 00001600: SWAP1 00001601: SLOAD 00001602: SWAP1 00001603: PUSH2 0x0100 00001606: EXP 00001607: SWAP1 00001608: DIV 00001609: PUSH1 0xff 0000160b: AND 0000160c: ISZERO 0000160d: JUMPDEST 0000160e: DUP1 0000160f: PUSH2 0x1641 00001612: JUMPI 00001613: POP 00001614: DUP5 00001615: DUP1 00001616: ISZERO 00001617: PUSH2 0x1640 0000161a: JUMPI 0000161b: POP 0000161c: PUSH1 0x01 0000161e: PUSH1 0x00 00001620: DUP3 00001621: DUP2 00001622: MSTORE 00001623: PUSH1 0x20 00001625: ADD 00001626: SWAP1 00001627: DUP2 00001628: MSTORE 00001629: PUSH1 0x20 0000162b: ADD 0000162c: PUSH1 0x00 0000162e: KECCAK256 0000162f: PUSH1 0x03 00001631: ADD 00001632: PUSH1 0x00 00001634: SWAP1 00001635: SLOAD 00001636: SWAP1 00001637: PUSH2 0x0100 0000163a: EXP 0000163b: SWAP1 0000163c: DIV 0000163d: PUSH1 0xff 0000163f: AND 00001640: JUMPDEST 00001641: JUMPDEST 00001642: ISZERO 00001643: PUSH2 0x1667 00001646: JUMPI 00001647: DUP1 00001648: DUP4 00001649: DUP4 0000164a: DUP2 0000164b: MLOAD 0000164c: DUP2 0000164d: LT 0000164e: ISZERO 0000164f: PUSH2 0x0000 00001652: JUMPI 00001653: SWAP1 00001654: PUSH1 0x20 00001656: ADD 00001657: SWAP1 00001658: PUSH1 0x20 0000165a: MUL 0000165b: ADD 0000165c: DUP2 0000165d: DUP2 0000165e: MSTORE 0000165f: POP 00001660: POP 00001661: PUSH1 0x01 00001663: DUP3 00001664: ADD 00001665: SWAP2 00001666: POP 00001667: JUMPDEST 00001668: JUMPDEST 00001669: DUP1 0000166a: DUP1 0000166b: PUSH1 0x01 0000166d: ADD 0000166e: SWAP2 0000166f: POP 00001670: POP 00001671: PUSH2 0x15d5 00001674: JUMP 00001675: JUMPDEST 00001676: DUP8 00001677: DUP8 00001678: SUB 00001679: PUSH1 0x40 0000167b: MLOAD 0000167c: DUP1 0000167d: MSIZE 0000167e: LT 0000167f: PUSH2 0x1685 00001682: JUMPI 00001683: POP 00001684: MSIZE 00001685: JUMPDEST 00001686: SWAP1 00001687: DUP1 00001688: DUP3 00001689: MSTORE 0000168a: DUP1 0000168b: PUSH1 0x20 0000168d: MUL 0000168e: PUSH1 0x20 00001690: ADD 00001691: DUP3 00001692: ADD 00001693: PUSH1 0x40 00001695: MSTORE 00001696: JUMPDEST 00001697: POP 00001698: SWAP4 00001699: POP 0000169a: DUP8 0000169b: SWAP1 0000169c: POP 0000169d: JUMPDEST 0000169e: DUP7 0000169f: DUP2 000016a0: LT 000016a1: ISZERO 000016a2: PUSH2 0x16e3 000016a5: JUMPI 000016a6: DUP3 000016a7: DUP2 000016a8: DUP2 000016a9: MLOAD 000016aa: DUP2 000016ab: LT 000016ac: ISZERO 000016ad: PUSH2 0x0000 000016b0: JUMPI 000016b1: SWAP1 000016b2: PUSH1 0x20 000016b4: ADD 000016b5: SWAP1 000016b6: PUSH1 0x20 000016b8: MUL 000016b9: ADD 000016ba: MLOAD 000016bb: DUP5 000016bc: DUP10 000016bd: DUP4 000016be: SUB 000016bf: DUP2 000016c0: MLOAD 000016c1: DUP2 000016c2: LT 000016c3: ISZERO 000016c4: PUSH2 0x0000 000016c7: JUMPI 000016c8: SWAP1 000016c9: PUSH1 0x20 000016cb: ADD 000016cc: SWAP1 000016cd: PUSH1 0x20 000016cf: MUL 000016d0: ADD 000016d1: DUP2 000016d2: DUP2 000016d3: MSTORE 000016d4: POP 000016d5: POP 000016d6: JUMPDEST 000016d7: DUP1 000016d8: DUP1 000016d9: PUSH1 0x01 000016db: ADD 000016dc: SWAP2 000016dd: POP 000016de: POP 000016df: PUSH2 0x169d 000016e2: JUMP 000016e3: JUMPDEST 000016e4: JUMPDEST 000016e5: POP 000016e6: POP 000016e7: POP 000016e8: SWAP5 000016e9: SWAP4 000016ea: POP 000016eb: POP 000016ec: POP 000016ed: POP 000016ee: JUMP 000016ef: JUMPDEST 000016f0: PUSH1 0x20 000016f2: PUSH1 0x40 000016f4: MLOAD 000016f5: SWAP1 000016f6: DUP2 000016f7: ADD 000016f8: PUSH1 0x40 000016fa: MSTORE 000016fb: DUP1 000016fc: PUSH1 0x00 000016fe: DUP2 000016ff: MSTORE 00001700: POP 00001701: PUSH1 0x20 00001703: PUSH1 0x40 00001705: MLOAD 00001706: SWAP1 00001707: DUP2 00001708: ADD 00001709: PUSH1 0x40 0000170b: MSTORE 0000170c: DUP1 0000170d: PUSH1 0x00 0000170f: DUP2 00001710: MSTORE 00001711: POP 00001712: PUSH1 0x00 00001714: PUSH1 0x00 00001716: PUSH1 0x04 00001718: DUP1 00001719: SLOAD 0000171a: SWAP1 0000171b: POP 0000171c: PUSH1 0x40 0000171e: MLOAD 0000171f: DUP1 00001720: MSIZE 00001721: LT 00001722: PUSH2 0x1728 00001725: JUMPI 00001726: POP 00001727: MSIZE 00001728: JUMPDEST 00001729: SWAP1 0000172a: DUP1 0000172b: DUP3 0000172c: MSTORE 0000172d: DUP1 0000172e: PUSH1 0x20 00001730: MUL 00001731: PUSH1 0x20 00001733: ADD 00001734: DUP3 00001735: ADD 00001736: PUSH1 0x40 00001738: MSTORE 00001739: JUMPDEST 0000173a: POP 0000173b: SWAP3 0000173c: POP 0000173d: PUSH1 0x00 0000173f: SWAP2 00001740: POP 00001741: PUSH1 0x00 00001743: SWAP1 00001744: POP 00001745: JUMPDEST 00001746: PUSH1 0x04 00001748: DUP1 00001749: SLOAD 0000174a: SWAP1 0000174b: POP 0000174c: DUP2 0000174d: LT 0000174e: ISZERO 0000174f: PUSH2 0x1882 00001752: JUMPI 00001753: PUSH1 0x02 00001755: PUSH1 0x00 00001757: DUP7 00001758: DUP2 00001759: MSTORE 0000175a: PUSH1 0x20 0000175c: ADD 0000175d: SWAP1 0000175e: DUP2 0000175f: MSTORE 00001760: PUSH1 0x20 00001762: ADD 00001763: PUSH1 0x00 00001765: KECCAK256 00001766: PUSH1 0x00 00001768: PUSH1 0x04 0000176a: DUP4 0000176b: DUP2 0000176c: SLOAD 0000176d: DUP2 0000176e: LT 0000176f: ISZERO 00001770: PUSH2 0x0000 00001773: JUMPI 00001774: SWAP1 00001775: PUSH1 0x00 00001777: MSTORE 00001778: PUSH1 0x20 0000177a: PUSH1 0x00 0000177c: KECCAK256 0000177d: SWAP1 0000177e: ADD 0000177f: PUSH1 0x00 00001781: JUMPDEST 00001782: SWAP1 00001783: SLOAD 00001784: SWAP1 00001785: PUSH2 0x0100 00001788: EXP 00001789: SWAP1 0000178a: DIV 0000178b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017a0: AND 000017a1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017b6: AND 000017b7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017cc: AND 000017cd: DUP2 000017ce: MSTORE 000017cf: PUSH1 0x20 000017d1: ADD 000017d2: SWAP1 000017d3: DUP2 000017d4: MSTORE 000017d5: PUSH1 0x20 000017d7: ADD 000017d8: PUSH1 0x00 000017da: KECCAK256 000017db: PUSH1 0x00 000017dd: SWAP1 000017de: SLOAD 000017df: SWAP1 000017e0: PUSH2 0x0100 000017e3: EXP 000017e4: SWAP1 000017e5: DIV 000017e6: PUSH1 0xff 000017e8: AND 000017e9: ISZERO 000017ea: PUSH2 0x1874 000017ed: JUMPI 000017ee: PUSH1 0x04 000017f0: DUP2 000017f1: DUP2 000017f2: SLOAD 000017f3: DUP2 000017f4: LT 000017f5: ISZERO 000017f6: PUSH2 0x0000 000017f9: JUMPI 000017fa: SWAP1 000017fb: PUSH1 0x00 000017fd: MSTORE 000017fe: PUSH1 0x20 00001800: PUSH1 0x00 00001802: KECCAK256 00001803: SWAP1 00001804: ADD 00001805: PUSH1 0x00 00001807: JUMPDEST 00001808: SWAP1 00001809: SLOAD 0000180a: SWAP1 0000180b: PUSH2 0x0100 0000180e: EXP 0000180f: SWAP1 00001810: DIV 00001811: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001826: AND 00001827: DUP4 00001828: DUP4 00001829: DUP2 0000182a: MLOAD 0000182b: DUP2 0000182c: LT 0000182d: ISZERO 0000182e: PUSH2 0x0000 00001831: JUMPI 00001832: SWAP1 00001833: PUSH1 0x20 00001835: ADD 00001836: SWAP1 00001837: PUSH1 0x20 00001839: MUL 0000183a: ADD 0000183b: SWAP1 0000183c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001851: AND 00001852: SWAP1 00001853: DUP2 00001854: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001869: AND 0000186a: DUP2 0000186b: MSTORE 0000186c: POP 0000186d: POP 0000186e: PUSH1 0x01 00001870: DUP3 00001871: ADD 00001872: SWAP2 00001873: POP 00001874: JUMPDEST 00001875: JUMPDEST 00001876: DUP1 00001877: DUP1 00001878: PUSH1 0x01 0000187a: ADD 0000187b: SWAP2 0000187c: POP 0000187d: POP 0000187e: PUSH2 0x1745 00001881: JUMP 00001882: JUMPDEST 00001883: DUP2 00001884: PUSH1 0x40 00001886: MLOAD 00001887: DUP1 00001888: MSIZE 00001889: LT 0000188a: PUSH2 0x1890 0000188d: JUMPI 0000188e: POP 0000188f: MSIZE 00001890: JUMPDEST 00001891: SWAP1 00001892: DUP1 00001893: DUP3 00001894: MSTORE 00001895: DUP1 00001896: PUSH1 0x20 00001898: MUL 00001899: PUSH1 0x20 0000189b: ADD 0000189c: DUP3 0000189d: ADD 0000189e: PUSH1 0x40 000018a0: MSTORE 000018a1: JUMPDEST 000018a2: POP 000018a3: SWAP4 000018a4: POP 000018a5: PUSH1 0x00 000018a7: SWAP1 000018a8: POP 000018a9: JUMPDEST 000018aa: DUP2 000018ab: DUP2 000018ac: LT 000018ad: ISZERO 000018ae: PUSH2 0x191b 000018b1: JUMPI 000018b2: DUP3 000018b3: DUP2 000018b4: DUP2 000018b5: MLOAD 000018b6: DUP2 000018b7: LT 000018b8: ISZERO 000018b9: PUSH2 0x0000 000018bc: JUMPI 000018bd: SWAP1 000018be: PUSH1 0x20 000018c0: ADD 000018c1: SWAP1 000018c2: PUSH1 0x20 000018c4: MUL 000018c5: ADD 000018c6: MLOAD 000018c7: DUP5 000018c8: DUP3 000018c9: DUP2 000018ca: MLOAD 000018cb: DUP2 000018cc: LT 000018cd: ISZERO 000018ce: PUSH2 0x0000 000018d1: JUMPI 000018d2: SWAP1 000018d3: PUSH1 0x20 000018d5: ADD 000018d6: SWAP1 000018d7: PUSH1 0x20 000018d9: MUL 000018da: ADD 000018db: SWAP1 000018dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018f1: AND 000018f2: SWAP1 000018f3: DUP2 000018f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001909: AND 0000190a: DUP2 0000190b: MSTORE 0000190c: POP 0000190d: POP 0000190e: JUMPDEST 0000190f: DUP1 00001910: DUP1 00001911: PUSH1 0x01 00001913: ADD 00001914: SWAP2 00001915: POP 00001916: POP 00001917: PUSH2 0x18a9 0000191a: JUMP 0000191b: JUMPDEST 0000191c: JUMPDEST 0000191d: POP 0000191e: POP 0000191f: POP 00001920: SWAP2 00001921: SWAP1 00001922: POP 00001923: JUMP 00001924: JUMPDEST 00001925: PUSH1 0x06 00001927: SLOAD 00001928: DUP2 00001929: JUMP 0000192a: JUMPDEST 0000192b: ADDRESS 0000192c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001941: AND 00001942: CALLER 00001943: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001958: AND 00001959: EQ 0000195a: ISZERO 0000195b: ISZERO 0000195c: PUSH2 0x1964 0000195f: JUMPI 00001960: PUSH2 0x0000 00001963: JUMP 00001964: JUMPDEST 00001965: PUSH1 0x04 00001967: DUP1 00001968: SLOAD 00001969: SWAP1 0000196a: POP 0000196b: DUP2 0000196c: PUSH1 0x32 0000196e: DUP3 0000196f: GT 00001970: ISZERO 00001971: PUSH2 0x1979 00001974: JUMPI 00001975: PUSH2 0x0000 00001978: JUMP 00001979: JUMPDEST 0000197a: DUP2 0000197b: DUP2 0000197c: GT 0000197d: ISZERO 0000197e: PUSH2 0x1986 00001981: JUMPI 00001982: PUSH2 0x0000 00001985: JUMP 00001986: JUMPDEST 00001987: PUSH1 0x00 00001989: DUP2 0000198a: EQ 0000198b: ISZERO 0000198c: PUSH2 0x1994 0000198f: JUMPI 00001990: PUSH2 0x0000 00001993: JUMP 00001994: JUMPDEST 00001995: PUSH1 0x00 00001997: DUP3 00001998: EQ 00001999: ISZERO 0000199a: PUSH2 0x19a2 0000199d: JUMPI 0000199e: PUSH2 0x0000 000019a1: JUMP 000019a2: JUMPDEST 000019a3: DUP3 000019a4: PUSH1 0x05 000019a6: DUP2 000019a7: SWAP1 000019a8: SSTORE 000019a9: POP 000019aa: PUSH32 0xa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a 000019cb: DUP4 000019cc: PUSH1 0x40 000019ce: MLOAD 000019cf: DUP1 000019d0: DUP3 000019d1: DUP2 000019d2: MSTORE 000019d3: PUSH1 0x20 000019d5: ADD 000019d6: SWAP2 000019d7: POP 000019d8: POP 000019d9: PUSH1 0x40 000019db: MLOAD 000019dc: DUP1 000019dd: SWAP2 000019de: SUB 000019df: SWAP1 000019e0: LOG1 000019e1: JUMPDEST 000019e2: JUMPDEST 000019e3: POP 000019e4: POP 000019e5: JUMPDEST 000019e6: POP 000019e7: JUMP 000019e8: JUMPDEST 000019e9: CALLER 000019ea: PUSH1 0x03 000019ec: PUSH1 0x00 000019ee: DUP3 000019ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a04: AND 00001a05: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a1a: AND 00001a1b: DUP2 00001a1c: MSTORE 00001a1d: PUSH1 0x20 00001a1f: ADD 00001a20: SWAP1 00001a21: DUP2 00001a22: MSTORE 00001a23: PUSH1 0x20 00001a25: ADD 00001a26: PUSH1 0x00 00001a28: KECCAK256 00001a29: PUSH1 0x00 00001a2b: SWAP1 00001a2c: SLOAD 00001a2d: SWAP1 00001a2e: PUSH2 0x0100 00001a31: EXP 00001a32: SWAP1 00001a33: DIV 00001a34: PUSH1 0xff 00001a36: AND 00001a37: ISZERO 00001a38: ISZERO 00001a39: PUSH2 0x1a41 00001a3c: JUMPI 00001a3d: PUSH2 0x0000 00001a40: JUMP 00001a41: JUMPDEST 00001a42: DUP2 00001a43: PUSH1 0x00 00001a45: PUSH1 0x01 00001a47: PUSH1 0x00 00001a49: DUP4 00001a4a: DUP2 00001a4b: MSTORE 00001a4c: PUSH1 0x20 00001a4e: ADD 00001a4f: SWAP1 00001a50: DUP2 00001a51: MSTORE 00001a52: PUSH1 0x20 00001a54: ADD 00001a55: PUSH1 0x00 00001a57: KECCAK256 00001a58: PUSH1 0x00 00001a5a: ADD 00001a5b: PUSH1 0x00 00001a5d: SWAP1 00001a5e: SLOAD 00001a5f: SWAP1 00001a60: PUSH2 0x0100 00001a63: EXP 00001a64: SWAP1 00001a65: DIV 00001a66: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a7b: AND 00001a7c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a91: AND 00001a92: EQ 00001a93: ISZERO 00001a94: PUSH2 0x1a9c 00001a97: JUMPI 00001a98: PUSH2 0x0000 00001a9b: JUMP 00001a9c: JUMPDEST 00001a9d: DUP3 00001a9e: CALLER 00001a9f: PUSH1 0x02 00001aa1: PUSH1 0x00 00001aa3: DUP4 00001aa4: DUP2 00001aa5: MSTORE 00001aa6: PUSH1 0x20 00001aa8: ADD 00001aa9: SWAP1 00001aaa: DUP2 00001aab: MSTORE 00001aac: PUSH1 0x20 00001aae: ADD 00001aaf: PUSH1 0x00 00001ab1: KECCAK256 00001ab2: PUSH1 0x00 00001ab4: DUP3 00001ab5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001aca: AND 00001acb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ae0: AND 00001ae1: DUP2 00001ae2: MSTORE 00001ae3: PUSH1 0x20 00001ae5: ADD 00001ae6: SWAP1 00001ae7: DUP2 00001ae8: MSTORE 00001ae9: PUSH1 0x20 00001aeb: ADD 00001aec: PUSH1 0x00 00001aee: KECCAK256 00001aef: PUSH1 0x00 00001af1: SWAP1 00001af2: SLOAD 00001af3: SWAP1 00001af4: PUSH2 0x0100 00001af7: EXP 00001af8: SWAP1 00001af9: DIV 00001afa: PUSH1 0xff 00001afc: AND 00001afd: ISZERO 00001afe: PUSH2 0x1b06 00001b01: JUMPI 00001b02: PUSH2 0x0000 00001b05: JUMP 00001b06: JUMPDEST 00001b07: PUSH1 0x01 00001b09: PUSH1 0x02 00001b0b: PUSH1 0x00 00001b0d: DUP8 00001b0e: DUP2 00001b0f: MSTORE 00001b10: PUSH1 0x20 00001b12: ADD 00001b13: SWAP1 00001b14: DUP2 00001b15: MSTORE 00001b16: PUSH1 0x20 00001b18: ADD 00001b19: PUSH1 0x00 00001b1b: KECCAK256 00001b1c: PUSH1 0x00 00001b1e: CALLER 00001b1f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b34: AND 00001b35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b4a: AND 00001b4b: DUP2 00001b4c: MSTORE 00001b4d: PUSH1 0x20 00001b4f: ADD 00001b50: SWAP1 00001b51: DUP2 00001b52: MSTORE 00001b53: PUSH1 0x20 00001b55: ADD 00001b56: PUSH1 0x00 00001b58: KECCAK256 00001b59: PUSH1 0x00 00001b5b: PUSH2 0x0100 00001b5e: EXP 00001b5f: DUP2 00001b60: SLOAD 00001b61: DUP2 00001b62: PUSH1 0xff 00001b64: MUL 00001b65: NOT 00001b66: AND 00001b67: SWAP1 00001b68: DUP4 00001b69: ISZERO 00001b6a: ISZERO 00001b6b: MUL 00001b6c: OR 00001b6d: SWAP1 00001b6e: SSTORE 00001b6f: POP 00001b70: DUP5 00001b71: CALLER 00001b72: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b87: AND 00001b88: PUSH32 0x4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef 00001ba9: PUSH1 0x40 00001bab: MLOAD 00001bac: DUP1 00001bad: SWAP1 00001bae: POP 00001baf: PUSH1 0x40 00001bb1: MLOAD 00001bb2: DUP1 00001bb3: SWAP2 00001bb4: SUB 00001bb5: SWAP1 00001bb6: LOG3 00001bb7: PUSH2 0x1bbf 00001bba: DUP6 00001bbb: PUSH2 0x1bf5 00001bbe: JUMP 00001bbf: JUMPDEST 00001bc0: JUMPDEST 00001bc1: JUMPDEST 00001bc2: POP 00001bc3: POP 00001bc4: JUMPDEST 00001bc5: POP 00001bc6: JUMPDEST 00001bc7: POP 00001bc8: POP 00001bc9: JUMP 00001bca: JUMPDEST 00001bcb: PUSH1 0x00 00001bcd: PUSH2 0x1bd7 00001bd0: DUP5 00001bd1: DUP5 00001bd2: DUP5 00001bd3: PUSH2 0x1db9 00001bd6: JUMP 00001bd7: JUMPDEST 00001bd8: SWAP1 00001bd9: POP 00001bda: PUSH2 0x1be2 00001bdd: DUP2 00001bde: PUSH2 0x19e8 00001be1: JUMP 00001be2: JUMPDEST 00001be3: JUMPDEST 00001be4: SWAP4 00001be5: SWAP3 00001be6: POP 00001be7: POP 00001be8: POP 00001be9: JUMP 00001bea: JUMPDEST 00001beb: PUSH1 0x32 00001bed: DUP2 00001bee: JUMP 00001bef: JUMPDEST 00001bf0: PUSH1 0x05 00001bf2: SLOAD 00001bf3: DUP2 00001bf4: JUMP 00001bf5: JUMPDEST 00001bf6: PUSH1 0x00 00001bf8: DUP2 00001bf9: PUSH1 0x01 00001bfb: PUSH1 0x00 00001bfd: DUP3 00001bfe: DUP2 00001bff: MSTORE 00001c00: PUSH1 0x20 00001c02: ADD 00001c03: SWAP1 00001c04: DUP2 00001c05: MSTORE 00001c06: PUSH1 0x20 00001c08: ADD 00001c09: PUSH1 0x00 00001c0b: KECCAK256 00001c0c: PUSH1 0x03 00001c0e: ADD 00001c0f: PUSH1 0x00 00001c11: SWAP1 00001c12: SLOAD 00001c13: SWAP1 00001c14: PUSH2 0x0100 00001c17: EXP 00001c18: SWAP1 00001c19: DIV 00001c1a: PUSH1 0xff 00001c1c: AND 00001c1d: ISZERO 00001c1e: PUSH2 0x1c26 00001c21: JUMPI 00001c22: PUSH2 0x0000 00001c25: JUMP 00001c26: JUMPDEST 00001c27: PUSH2 0x1c2f 00001c2a: DUP4 00001c2b: PUSH2 0x0fd9 00001c2e: JUMP 00001c2f: JUMPDEST 00001c30: ISZERO 00001c31: PUSH2 0x1db2 00001c34: JUMPI 00001c35: PUSH1 0x01 00001c37: PUSH1 0x00 00001c39: DUP5 00001c3a: DUP2 00001c3b: MSTORE 00001c3c: PUSH1 0x20 00001c3e: ADD 00001c3f: SWAP1 00001c40: DUP2 00001c41: MSTORE 00001c42: PUSH1 0x20 00001c44: ADD 00001c45: PUSH1 0x00 00001c47: KECCAK256 00001c48: SWAP2 00001c49: POP 00001c4a: PUSH1 0x01 00001c4c: DUP3 00001c4d: PUSH1 0x03 00001c4f: ADD 00001c50: PUSH1 0x00 00001c52: PUSH2 0x0100 00001c55: EXP 00001c56: DUP2 00001c57: SLOAD 00001c58: DUP2 00001c59: PUSH1 0xff 00001c5b: MUL 00001c5c: NOT 00001c5d: AND 00001c5e: SWAP1 00001c5f: DUP4 00001c60: ISZERO 00001c61: ISZERO 00001c62: MUL 00001c63: OR 00001c64: SWAP1 00001c65: SSTORE 00001c66: POP 00001c67: DUP2 00001c68: PUSH1 0x00 00001c6a: ADD 00001c6b: PUSH1 0x00 00001c6d: SWAP1 00001c6e: SLOAD 00001c6f: SWAP1 00001c70: PUSH2 0x0100 00001c73: EXP 00001c74: SWAP1 00001c75: DIV 00001c76: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c8b: AND 00001c8c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ca1: AND 00001ca2: DUP3 00001ca3: PUSH1 0x01 00001ca5: ADD 00001ca6: SLOAD 00001ca7: DUP4 00001ca8: PUSH1 0x02 00001caa: ADD 00001cab: PUSH1 0x40 00001cad: MLOAD 00001cae: DUP1 00001caf: DUP3 00001cb0: DUP1 00001cb1: SLOAD 00001cb2: PUSH1 0x01 00001cb4: DUP2 00001cb5: PUSH1 0x01 00001cb7: AND 00001cb8: ISZERO 00001cb9: PUSH2 0x0100 00001cbc: MUL 00001cbd: SUB 00001cbe: AND 00001cbf: PUSH1 0x02 00001cc1: SWAP1 00001cc2: DIV 00001cc3: DUP1 00001cc4: ISZERO 00001cc5: PUSH2 0x1d0f 00001cc8: JUMPI 00001cc9: DUP1 00001cca: PUSH1 0x1f 00001ccc: LT 00001ccd: PUSH2 0x1ce4 00001cd0: JUMPI 00001cd1: PUSH2 0x0100 00001cd4: DUP1 00001cd5: DUP4 00001cd6: SLOAD 00001cd7: DIV 00001cd8: MUL 00001cd9: DUP4 00001cda: MSTORE 00001cdb: SWAP2 00001cdc: PUSH1 0x20 00001cde: ADD 00001cdf: SWAP2 00001ce0: PUSH2 0x1d0f 00001ce3: JUMP 00001ce4: JUMPDEST 00001ce5: DUP3 00001ce6: ADD 00001ce7: SWAP2 00001ce8: SWAP1 00001ce9: PUSH1 0x00 00001ceb: MSTORE 00001cec: PUSH1 0x20 00001cee: PUSH1 0x00 00001cf0: KECCAK256 00001cf1: SWAP1 00001cf2: JUMPDEST 00001cf3: DUP2 00001cf4: SLOAD 00001cf5: DUP2 00001cf6: MSTORE 00001cf7: SWAP1 00001cf8: PUSH1 0x01 00001cfa: ADD 00001cfb: SWAP1 00001cfc: PUSH1 0x20 00001cfe: ADD 00001cff: DUP1 00001d00: DUP4 00001d01: GT 00001d02: PUSH2 0x1cf2 00001d05: JUMPI 00001d06: DUP3 00001d07: SWAP1 00001d08: SUB 00001d09: PUSH1 0x1f 00001d0b: AND 00001d0c: DUP3 00001d0d: ADD 00001d0e: SWAP2 00001d0f: JUMPDEST 00001d10: POP 00001d11: POP 00001d12: SWAP2 00001d13: POP 00001d14: POP 00001d15: PUSH1 0x00 00001d17: PUSH1 0x40 00001d19: MLOAD 00001d1a: DUP1 00001d1b: DUP4 00001d1c: SUB 00001d1d: DUP2 00001d1e: DUP6 00001d1f: DUP8 00001d20: PUSH2 0x8502 00001d23: GAS 00001d24: SUB 00001d25: CALL 00001d26: SWAP3 00001d27: POP 00001d28: POP 00001d29: POP 00001d2a: ISZERO 00001d2b: PUSH2 0x1d63 00001d2e: JUMPI 00001d2f: DUP3 00001d30: PUSH32 0x33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed75 00001d51: PUSH1 0x40 00001d53: MLOAD 00001d54: DUP1 00001d55: SWAP1 00001d56: POP 00001d57: PUSH1 0x40 00001d59: MLOAD 00001d5a: DUP1 00001d5b: SWAP2 00001d5c: SUB 00001d5d: SWAP1 00001d5e: LOG2 00001d5f: PUSH2 0x1db1 00001d62: JUMP 00001d63: JUMPDEST 00001d64: DUP3 00001d65: PUSH32 0x526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b79236 00001d86: PUSH1 0x40 00001d88: MLOAD 00001d89: DUP1 00001d8a: SWAP1 00001d8b: POP 00001d8c: PUSH1 0x40 00001d8e: MLOAD 00001d8f: DUP1 00001d90: SWAP2 00001d91: SUB 00001d92: SWAP1 00001d93: LOG2 00001d94: PUSH1 0x00 00001d96: DUP3 00001d97: PUSH1 0x03 00001d99: ADD 00001d9a: PUSH1 0x00 00001d9c: PUSH2 0x0100 00001d9f: EXP 00001da0: DUP2 00001da1: SLOAD 00001da2: DUP2 00001da3: PUSH1 0xff 00001da5: MUL 00001da6: NOT 00001da7: AND 00001da8: SWAP1 00001da9: DUP4 00001daa: ISZERO 00001dab: ISZERO 00001dac: MUL 00001dad: OR 00001dae: SWAP1 00001daf: SSTORE 00001db0: POP 00001db1: JUMPDEST 00001db2: JUMPDEST 00001db3: JUMPDEST 00001db4: JUMPDEST 00001db5: POP 00001db6: POP 00001db7: POP 00001db8: JUMP 00001db9: JUMPDEST 00001dba: PUSH1 0x00 00001dbc: DUP4 00001dbd: PUSH1 0x00 00001dbf: DUP2 00001dc0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001dd5: AND 00001dd6: EQ 00001dd7: ISZERO 00001dd8: PUSH2 0x1de0 00001ddb: JUMPI 00001ddc: PUSH2 0x0000 00001ddf: JUMP 00001de0: JUMPDEST 00001de1: PUSH1 0x06 00001de3: SLOAD 00001de4: SWAP2 00001de5: POP 00001de6: PUSH1 0x80 00001de8: PUSH1 0x40 00001dea: MLOAD 00001deb: SWAP1 00001dec: DUP2 00001ded: ADD 00001dee: PUSH1 0x40 00001df0: MSTORE 00001df1: DUP1 00001df2: DUP7 00001df3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e08: AND 00001e09: DUP2 00001e0a: MSTORE 00001e0b: PUSH1 0x20 00001e0d: ADD 00001e0e: DUP6 00001e0f: DUP2 00001e10: MSTORE 00001e11: PUSH1 0x20 00001e13: ADD 00001e14: DUP5 00001e15: DUP2 00001e16: MSTORE 00001e17: PUSH1 0x20 00001e19: ADD 00001e1a: PUSH1 0x00 00001e1c: ISZERO 00001e1d: ISZERO 00001e1e: DUP2 00001e1f: MSTORE 00001e20: POP 00001e21: PUSH1 0x01 00001e23: PUSH1 0x00 00001e25: DUP5 00001e26: DUP2 00001e27: MSTORE 00001e28: PUSH1 0x20 00001e2a: ADD 00001e2b: SWAP1 00001e2c: DUP2 00001e2d: MSTORE 00001e2e: PUSH1 0x20 00001e30: ADD 00001e31: PUSH1 0x00 00001e33: KECCAK256 00001e34: PUSH1 0x00 00001e36: DUP3 00001e37: ADD 00001e38: MLOAD 00001e39: DUP2 00001e3a: PUSH1 0x00 00001e3c: ADD 00001e3d: PUSH1 0x00 00001e3f: PUSH2 0x0100 00001e42: EXP 00001e43: DUP2 00001e44: SLOAD 00001e45: DUP2 00001e46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e5b: MUL 00001e5c: NOT 00001e5d: AND 00001e5e: SWAP1 00001e5f: DUP4 00001e60: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e75: AND 00001e76: MUL 00001e77: OR 00001e78: SWAP1 00001e79: SSTORE 00001e7a: POP 00001e7b: PUSH1 0x20 00001e7d: DUP3 00001e7e: ADD 00001e7f: MLOAD 00001e80: DUP2 00001e81: PUSH1 0x01 00001e83: ADD 00001e84: SSTORE 00001e85: PUSH1 0x40 00001e87: DUP3 00001e88: ADD 00001e89: MLOAD 00001e8a: DUP2 00001e8b: PUSH1 0x02 00001e8d: ADD 00001e8e: SWAP1 00001e8f: DUP1 00001e90: MLOAD 00001e91: SWAP1 00001e92: PUSH1 0x20 00001e94: ADD 00001e95: SWAP1 00001e96: DUP3 00001e97: DUP1 00001e98: SLOAD 00001e99: PUSH1 0x01 00001e9b: DUP2 00001e9c: PUSH1 0x01 00001e9e: AND 00001e9f: ISZERO 00001ea0: PUSH2 0x0100 00001ea3: MUL 00001ea4: SUB 00001ea5: AND 00001ea6: PUSH1 0x02 00001ea8: SWAP1 00001ea9: DIV 00001eaa: SWAP1 00001eab: PUSH1 0x00 00001ead: MSTORE 00001eae: PUSH1 0x20 00001eb0: PUSH1 0x00 00001eb2: KECCAK256 00001eb3: SWAP1 00001eb4: PUSH1 0x1f 00001eb6: ADD 00001eb7: PUSH1 0x20 00001eb9: SWAP1 00001eba: DIV 00001ebb: DUP2 00001ebc: ADD 00001ebd: SWAP3 00001ebe: DUP3 00001ebf: PUSH1 0x1f 00001ec1: LT 00001ec2: PUSH2 0x1ed6 00001ec5: JUMPI 00001ec6: DUP1 00001ec7: MLOAD 00001ec8: PUSH1 0xff 00001eca: NOT 00001ecb: AND 00001ecc: DUP4 00001ecd: DUP1 00001ece: ADD 00001ecf: OR 00001ed0: DUP6 00001ed1: SSTORE 00001ed2: PUSH2 0x1f04 00001ed5: JUMP 00001ed6: JUMPDEST 00001ed7: DUP3 00001ed8: DUP1 00001ed9: ADD 00001eda: PUSH1 0x01 00001edc: ADD 00001edd: DUP6 00001ede: SSTORE 00001edf: DUP3 00001ee0: ISZERO 00001ee1: PUSH2 0x1f04 00001ee4: JUMPI 00001ee5: SWAP2 00001ee6: DUP3 00001ee7: ADD 00001ee8: JUMPDEST 00001ee9: DUP3 00001eea: DUP2 00001eeb: GT 00001eec: ISZERO 00001eed: PUSH2 0x1f03 00001ef0: JUMPI 00001ef1: DUP3 00001ef2: MLOAD 00001ef3: DUP3 00001ef4: SSTORE 00001ef5: SWAP2 00001ef6: PUSH1 0x20 00001ef8: ADD 00001ef9: SWAP2 00001efa: SWAP1 00001efb: PUSH1 0x01 00001efd: ADD 00001efe: SWAP1 00001eff: PUSH2 0x1ee8 00001f02: JUMP 00001f03: JUMPDEST 00001f04: JUMPDEST 00001f05: POP 00001f06: SWAP1 00001f07: POP 00001f08: PUSH2 0x1f29 00001f0b: SWAP2 00001f0c: SWAP1 00001f0d: JUMPDEST 00001f0e: DUP1 00001f0f: DUP3 00001f10: GT 00001f11: ISZERO 00001f12: PUSH2 0x1f25 00001f15: JUMPI 00001f16: PUSH1 0x00 00001f18: DUP2 00001f19: PUSH1 0x00 00001f1b: SWAP1 00001f1c: SSTORE 00001f1d: POP 00001f1e: PUSH1 0x01 00001f20: ADD 00001f21: PUSH2 0x1f0d 00001f24: JUMP 00001f25: JUMPDEST 00001f26: POP 00001f27: SWAP1 00001f28: JUMP 00001f29: JUMPDEST 00001f2a: POP 00001f2b: POP 00001f2c: PUSH1 0x60 00001f2e: DUP3 00001f2f: ADD 00001f30: MLOAD 00001f31: DUP2 00001f32: PUSH1 0x03 00001f34: ADD 00001f35: PUSH1 0x00 00001f37: PUSH2 0x0100 00001f3a: EXP 00001f3b: DUP2 00001f3c: SLOAD 00001f3d: DUP2 00001f3e: PUSH1 0xff 00001f40: MUL 00001f41: NOT 00001f42: AND 00001f43: SWAP1 00001f44: DUP4 00001f45: ISZERO 00001f46: ISZERO 00001f47: MUL 00001f48: OR 00001f49: SWAP1 00001f4a: SSTORE 00001f4b: POP 00001f4c: SWAP1 00001f4d: POP 00001f4e: POP 00001f4f: PUSH1 0x01 00001f51: PUSH1 0x06 00001f53: PUSH1 0x00 00001f55: DUP3 00001f56: DUP3 00001f57: SLOAD 00001f58: ADD 00001f59: SWAP3 00001f5a: POP 00001f5b: POP 00001f5c: DUP2 00001f5d: SWAP1 00001f5e: SSTORE 00001f5f: POP 00001f60: DUP2 00001f61: PUSH32 0xc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e51 00001f82: PUSH1 0x40 00001f84: MLOAD 00001f85: DUP1 00001f86: SWAP1 00001f87: POP 00001f88: PUSH1 0x40 00001f8a: MLOAD 00001f8b: DUP1 00001f8c: SWAP2 00001f8d: SUB 00001f8e: SWAP1 00001f8f: LOG2 00001f90: JUMPDEST 00001f91: JUMPDEST 00001f92: POP 00001f93: SWAP4 00001f94: SWAP3 00001f95: POP 00001f96: POP 00001f97: POP 00001f98: JUMP 00001f99: STOP 00001f9a: LOG1 00001f9b: PUSH6 0x627a7a723058 00001fa2: KECCAK256 00001fa3: PUSH30 0x44fad584bdc5a513776a17ae9cd92b316a91c766c61812184adce9885e7c 00001fc2: DIFFICULTY 00001fc3: STOP 00001fc4: UNKNOWN(0x29)
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xfbee52d001f7015d354b06d77eb67e0284eee8134a808aa9a6ee33c77f359e7a
call_targets:
0x729488d15a1b397cbd96cc02e2803af64390f44c
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xfbee52d001f7015d354b06d77eb67e0284eee8134a808aa9a6ee33c77f359e7a",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x729488d15a1b397cbd96cc02e2803af64390f44c"
],
"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": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x025e7c27",
"selector": "0x025e7c27",
"calldata_variants": [
"0x025e7c27",
"0x025e7c270000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x173825d9",
"selector": "0x173825d9",
"calldata_variants": [
"0x173825d9",
"0x173825d90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x20ea8d86",
"selector": "0x20ea8d86",
"calldata_variants": [
"0x20ea8d86",
"0x20ea8d860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2f54bf6e",
"selector": "0x2f54bf6e",
"calldata_variants": [
"0x2f54bf6e",
"0x2f54bf6e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3411c81c",
"selector": "0x3411c81c",
"calldata_variants": [
"0x3411c81c",
"0x3411c81c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4c3a6ae0",
"selector": "0x4c3a6ae0",
"calldata_variants": [
"0x4c3a6ae0",
"0x4c3a6ae00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x54741525",
"selector": "0x54741525",
"calldata_variants": [
"0x54741525",
"0x547415250000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7461,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 1,
"guards_detected": [
{
"pc": 2103,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3505,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4312,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6466,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 1
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xfbee52d001f7015d354b06d77eb67e0284eee8134a808aa9a6ee33c77f359e7a
call_targets:
0x729488d15a1b397cbd96cc02e2803af64390f44c
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xfbee52d001f7015d354b06d77eb67e0284eee8134a808aa9a6ee33c77f359e7a",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x729488d15a1b397cbd96cc02e2803af64390f44c"
],
"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": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x025e7c27",
"selector": "0x025e7c27",
"calldata_variants": [
"0x025e7c27",
"0x025e7c270000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x173825d9",
"selector": "0x173825d9",
"calldata_variants": [
"0x173825d9",
"0x173825d90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x20ea8d86",
"selector": "0x20ea8d86",
"calldata_variants": [
"0x20ea8d86",
"0x20ea8d860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2f54bf6e",
"selector": "0x2f54bf6e",
"calldata_variants": [
"0x2f54bf6e",
"0x2f54bf6e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3411c81c",
"selector": "0x3411c81c",
"calldata_variants": [
"0x3411c81c",
"0x3411c81c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4c3a6ae0",
"selector": "0x4c3a6ae0",
"calldata_variants": [
"0x4c3a6ae0",
"0x4c3a6ae00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x54741525",
"selector": "0x54741525",
"calldata_variants": [
"0x54741525",
"0x547415250000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7461,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": [
{
"pc": 2103,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3505,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4312,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6466,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|