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

Analysis Run

c90ff39b-8887-4f79-8585-66d3b97d7a57

complete
Chain ID
1
Address
Block Number
Created
Fri, Jan 2, 2026 7:32 PM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
31325 report.consolidate complete 1 / 1 3 months ago
110948 artifact.fetch complete 1 / 3 1 week ago
110949 tool.cast_disasm complete 1 / 3 1 week ago
110950 analysis.bundle complete 1 / 3 1 week ago
110951 capability.graph complete 1 / 3 1 week ago
110952 detector.run complete 1 / 3 1 week ago
110953 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
0
No findings?
yes
Summary
No concrete, exploitable profit path was identified from the bytecode-only review; no executable delegatecall/selfdestruct and no clear unrestricted value-transfer or admin-takeover path was confirmed.
View stderr
[codex:82676] OpenAI Codex v0.77.0 (research preview)
[codex:82676] --------
[codex:82676] workdir: /tmp/codex-multi-ssoyeq0s
[codex:82676] model: gpt-5.2-codex
[codex:82676] provider: openai
[codex:82676] approval: never
[codex:82676] sandbox: read-only
[codex:82676] reasoning effort: xhigh
[codex:82676] reasoning summaries: auto
[codex:82676] session id: 019b8028-eb88-7801-94bb-e92c2576b8a9
[codex:82676] --------
[codex:82676] user
[codex:82676] 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:82676] 
[codex:82676] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:82676] 
[codex:82676] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:82676] - Gas inefficiency, code quality, or best practices
[codex:82676] - Theoretical vulnerabilities without a clear extraction path
[codex:82676] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:82676] - Issues requiring social engineering or off-chain coordination
[codex:82676] 
[codex:82676] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:82676] - CALL/DELEGATECALL with controllable destination or calldata
[codex:82676] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:82676] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:82676] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:82676] - External calls before state updates (reentrancy)
[codex:82676] - SELFDESTRUCT with controllable beneficiary
[codex:82676] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:82676] 
[codex:82676] For each finding, you MUST explain:
[codex:82676] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:82676] 2. The concrete sequence of transactions to extract value
[codex:82676] 3. Why you believe this is exploitable (not just suspicious)
[codex:82676] 
[codex:82676] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:82676] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:82676] 
[codex:82676] Output MUST be valid JSON matching the provided schema.
[codex:82676] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:82676] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:82676] mcp startup: no servers
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Planning to read BYTECODE_BUNDLE.txt**
[codex:82676] exec
[codex:82676] /bin/bash -lc ls in /tmp/codex-multi-ssoyeq0s succeeded in 6ms:
[codex:82676] BYTECODE_BUNDLE.txt
[codex:82676] codex-output-schema.json
[codex:82676] exec
[codex:82676] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-ssoyeq0s succeeded in 5ms:
[codex:82676] Runtime bytecode bundle for best-effort auditing.
[codex:82676] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:82676] 
[codex:82676] FILE: runtime_bytecode.hex
[codex:82676] 0x606060405236156101855763ffffffff60e060020a600035041663029a8bf7811461019857806306fdde03146101c4578063095ea7b31461025457806318160ddd146102875780631a9237de146102a957806323385089146102d057806323b872dd146102f757806323de665114610330578063313ce56714610357578063406838b31461037d578063490c0e8f146103a95780636461fe391461041557806370a0823114610494578063733480b7146104c257806377fe38a4146104e45780638bbbbfd31461054a57806395d89b4114610573578063a1e8ac0b14610603578063a340fff414610633578063a48a663c14610657578063a525f42c146106d0578063a66e6e5c14610706578063a9059cbb14610728578063aa46f96114610753578063ac35caee1461077f578063be9b42d2146107ee578063dd62ed3e1461081e578063f2ee596814610852578063f340fa0114610882578063f359671c146108aa578063f3fef3a314610921578063f77b8d7a14610954578063fcbdbaaa14610984575b6101965b61019233610a72565b505b565b005b34156101a057fe5b6101a8610aa9565b60408051600160a060020a039092168252519081900360200190f35b34156101cc57fe5b6101d4610ab9565b60408051602080825283518183015283519192839290830191850190808383821561021a575b80518252602083111561021a57601f1990920191602091820191016101fa565b505050905090810190601f1680156102465780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561025c57fe5b610273600160a060020a0360043516602435610b44565b604080519115158252519081900360200190f35b341561028f57fe5b610297610c34565b60408051918252519081900360200190f35b34156102b157fe5b610273600435610ca6565b604080519115158252519081900360200190f35b34156102d857fe5b610196600160a060020a0360043581169060243516604435610d8a565b005b34156102ff57fe5b610273600160a060020a0360043581169060243516604435610df4565b604080519115158252519081900360200190f35b341561033857fe5b610196600160a060020a0360043581169060243516604435610e1c565b005b341561035f57fe5b610367610e86565b6040805160ff9092168252519081900360200190f35b341561038557fe5b6101a8610ef8565b60408051600160a060020a039092168252519081900360200190f35b60408051602060046024803582810135601f8101859004850286018501909652858552610273958335600160a060020a03169593946044949392909201918190840183828082843750949650610f0795505050505050565b604080519115158252519081900360200190f35b341561041d57fe5b604080516020600460643581810135601f8101849004840285018401909552848452610273948235600160a060020a0390811695602480359092169560443595946084949293019190819084018382808284375094965061114c95505050505050565b604080519115158252519081900360200190f35b341561049c57fe5b610297600160a060020a0360043516611303565b60408051918252519081900360200190f35b61027360043560243561137e565b604080519115158252519081900360200190f35b604080516020600460443581810135601f81018490048402850184019095528484526102739482359460248035956064949293919092019181908401838280828437509496506113a495505050505050565b604080519115158252519081900360200190f35b341561055257fe5b61027360043515156113c5565b604080519115158252519081900360200190f35b341561057b57fe5b6101d4611451565b60408051602080825283518183015283519192839290830191850190808383821561021a575b80518252602083111561021a57601f1990920191602091820191016101fa565b505050905090810190601f1680156102465780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561060b57fe5b610273600160a060020a03600435166114df565b604080519115158252519081900360200190f35b341561063b57fe5b6102736114f4565b604080519115158252519081900360200190f35b341561065f57fe5b604080516020600460643581810135601f8101849004840285018401909552848452610273948235600160a060020a0316946024803595604435959460849492019190819084018382808284375094965061157e95505050505050565b604080519115158252519081900360200190f35b34156106d857fe5b610273600160a060020a0360043516602435604435611726565b604080519115158252519081900360200190f35b341561070e57fe5b61029761174e565b60408051918252519081900360200190f35b610273600160a060020a0360043516602435611754565b604080519115158252519081900360200190f35b341561075b57fe5b6101a861177a565b60408051600160a060020a039092168252519081900360200190f35b604080516020600460443581810135601f8101849004840285018401909552848452610273948235600160a060020a031694602480359560649492939190920191819084018382808284375094965061178995505050505050565b604080519115158252519081900360200190f35b34156107f657fe5b610273600160a060020a03600435166117aa565b604080519115158252519081900360200190f35b341561082657fe5b610297600160a060020a03600435811690602435166117f2565b60408051918252519081900360200190f35b341561085a57fe5b610273600160a060020a0360043516611876565b604080519115158252519081900360200190f35b610273600160a060020a0360043516610a72565b604080519115158252519081900360200190f35b34156108b257fe5b604080516020600460443581810135601f8101849004840285018401909552848452610273948235600160a060020a031694602480359560649492939190920191819084018382808284375094965061188b95505050505050565b604080519115158252519081900360200190f35b341561092957fe5b610273600160a060020a03600435166024356118ff565b604080519115158252519081900360200190f35b341561095c57fe5b610273600160a060020a0360043516611925565b604080519115158252519081900360200190f35b341561098c57fe5b60408051602060046024803582810135601f8101859004850286018501909652858552610273958335600160a060020a0316959394604494939290920191819084018382808284375050604080516020601f89358b0180359182018390048302840183019094528083529799988101979196509182019450925082915084018382808284375050604080516020601f89358b0180359182018390048302840183019094528083529799988101979196509182019450925082915084018382808284375094965061196595505050505050565b604080519115158252519081900360200190f35b6000610aa1826040604051908101604052806007815260200160ca60020a6611195c1bdcda5d02815250610f07565b90505b919050565b600054600160a060020a03165b90565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610b3c5780601f10610b1157610100808354040283529160200191610b3c565b820191906000526020600020905b815481529060010190602001808311610b1f57829003601f168201915b505050505081565b600160a060020a03331660009081526005602052604081205460ff161515610ba25733600160a060020a031660009081526005602090815260408083208054600160ff19918216811790925560049093529220805490911690911790555b60008054600154604080516020908101859052815160e060020a6314712e2f028152600160a060020a0389811660048301526024820189905260448201949094523384166064820152915192909316936314712e2f9360848084019491939192918390030190829087803b1515610c1557fe5b6102c65a03f11515610c2357fe5b5050604051519150505b5b92915050565b60008054600154604080516020908101859052815160e060020a63b524abcf02815260048101939093529051600160a060020a039093169263b524abcf92602480820193929182900301818787803b1515610c8b57fe5b6102c65a03f11515610c9957fe5b5050604051519150505b90565b60008054604080516020908101849052815160e060020a63a0f15b870281529151610aa193600160a060020a03169263a0f15b8792600480830193919282900301818887803b1515610cf457fe5b6102c65a03f11515610d0257fe5b505060405151600160a060020a031690506395829738610d2185611c5f565b6000604051602001526040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1515610d6757fe5b6102c65a03f11515610d7557fe5b50506040515190506117aa565b90505b919050565b60005433600160a060020a0390811691161415610ded5781600160a060020a031683600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35b5b5b505050565b6000610e12848484602060405190810160405280600081525061114c565b90505b9392505050565b60005433600160a060020a0390811691161415610ded5781600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b5b5b505050565b60008054600154604080516020908101859052815160e460020a630dc86e6f02815260048101939093529051600160a060020a039093169263dc86e6f092602480820193929182900301818787803b1515610c8b57fe5b6102c65a03f11515610c9957fe5b5050604051519150505b90565b600054600160a060020a031681565b600160a060020a03331660009081526005602052604081205460ff161515610f655733600160a060020a031660009081526005602090815260408083208054600160ff19918216811790925560049093529220805490911690911790555b341515610f7457506000610c2d565b30600160a060020a031683600160a060020a03161415610f9d57610f96611d04565b9050610c2d565b34610fa730611303565b101561102f57600054600154600160a060020a039091169063e0873c0690610fce30611303565b34036000604051602001526040518363ffffffff1660e060020a02815260040180836000191660001916815260200182815260200192505050602060405180830381600087803b151561101d57fe5b6102c65a03f1151561102b57fe5b5050505b60008054600154604080516020908101949094525160e160020a630b0ffb3102815230600160a060020a03818116600484018181528a8316602486015234604486018190526064860187905260a486019290925260c0608486019081528a5160c48701528a51939097169763161ff6629794968c96939590948c9489949360e4909101919086019080838382156110e1575b8051825260208311156110e157601f1990920191602091820191016110c1565b505050905090810190601f16801561110d5780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b1515610c1557fe5b6102c65a03f11515610c2357fe5b5050604051519150505b5b92915050565b600160a060020a03331660009081526005602052604081205460ff1615156111aa5733600160a060020a031660009081526005602090815260408083208054600160ff19918216811790925560049093529220805490911690911790555b6111b3846117aa565b156112d35760008054600154604080516020908101949094525160e160020a630b0ffb31028152600160a060020a0389811660048301908152898216602484015260448301899052606483018490523380831660a485015260c060848501908152895160c48601528951939096169663161ff662968d968d968d9691958d959490939260e49092019190860190808383821561126a575b80518252602083111561126a57601f19909201916020918201910161124a565b505050905090810190601f1680156112965780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b15156112b657fe5b6102c65a03f115156112c457fe5b50506040515191506112fa9050565b6112de858484611d1e565b15156112ec575060006112fa565b6112f68484611e3b565b5060015b5b949350505050565b60008054600154604080516020908101859052815160e160020a6326985b5f028152600160a060020a038781166004830152602482019490945291519290931692634d30b6be9260448084019382900301818787803b151561136157fe5b6102c65a03f1151561136f57fe5b5050604051519150505b919050565b600061139b838360206040519081016040528060008152506113a4565b90505b92915050565b60006113af33610a72565b50610e12848484611e70565b90505b9392505050565b600160a060020a03331660009081526005602052604081205460ff1615156114235733600160a060020a031660009081526005602090815260408083208054600160ff19918216811790925560049093529220805490911690911790555b5033600160a060020a03166000908152600460205260409020805460ff191682151517905560015b5b919050565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b3c5780601f10610b1157610100808354040283529160200191610b3c565b820191906000526020600020905b815481529060010190602001808311610b1f57829003601f168201915b505050505081565b60056020526000908152604090205460ff1681565b60008054600154600160a060020a039091169063ca448a889061151630611303565b6000604051602001526040518363ffffffff1660e060020a02815260040180836000191660001916815260200182815260200192505050602060405180830381600087803b1515610c8b57fe5b6102c65a03f11515610c9957fe5b5050604051519150505b90565b600160a060020a03331660009081526005602052604081205460ff1615156115dc5733600160a060020a031660009081526005602090815260408083208054600160ff19918216811790925560049093529220805490911690911790555b6115e584610ca6565b156116f55760008054604080516020908101939093525160e160020a6353481977028152600160a060020a0388811660048301908152602483018990526044830188905233808316608485015260a060648501908152885160a48601528851939095169563a69032ee958c958c958c958c959490939260c4019190860190808383821561168d575b80518252602083111561168d57601f19909201916020918201910161166d565b505050905090810190601f1680156116b95780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15156112b657fe5b6102c65a03f115156112c457fe5b50506040515191506112fa9050565b611700858484611d1e565b151561170e575060006112fa565b6112f6848484611fb7565b5060015b5b949350505050565b6000610e12848484602060405190810160405280600081525061157e565b90505b9392505050565b60015481565b600061139b83836020604051908101604052806000815250611789565b90505b92915050565b600654600160a060020a031681565b600061179433610a72565b50610e128484846120a8565b90505b9392505050565b600160a060020a03811660009081526005602052604081205460ff168015610aa15750600160a060020a03821660009081526004602052604090205460ff165b90505b919050565b60008054600154604080516020908101859052815160e360020a630391aba7028152600160a060020a0388811660048301528781166024830152604482019490945291519290931692631c8d5d389260648084019382900301818787803b1515610c1557fe5b6102c65a03f11515610c2357fe5b5050604051519150505b92915050565b60046020526000908152604090205460ff1681565b600160a060020a03331660009081526005602052604081205460ff1615156118e95733600160a060020a031660009081526005602090815260408083208054600160ff19918216811790925560049093529220805490911690911790555b610e128484846120a8565b90505b5b9392505050565b600061139b8383602060405190810160405280600081525061188b565b90505b92915050565b600654600090600160a060020a03161561194157506000610aa4565b5060068054600160a060020a031916600160a060020a03831617905560015b919050565b60008054600160a060020a03161561197f575060006112fa565b84600160a060020a031663085a47056119978661221b565b6040805160006020918201819052915160e060020a63ffffffff86160281526004810184815260248201849052601260848301819052600160a4840181905260c0604485019081528c5160c48601528c518d968d9694959394606481019260e4909101918901908083838215611a28575b805182526020831115611a2857601f199092019160209182019101611a08565b505050905090810190601f168015611a545780820380516001836020036101000a031916815260200191505b5083810382528651815286516020918201918801908083838215611a93575b805182526020831115611a9357601f199092019160209182019101611a73565b505050905090810190601f168015611abf5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b1515611ae057fe5b6102c65a03f11515611aee57fe5b50506040515115159050611b04575060006112fa565b60008054600160a060020a031916600160a060020a038716179055611b288461221b565b6001558251611b3e906002906020860190612282565b508351611b52906003906020870190612282565b5060008054600154604080516020908101859052815160e060020a63638a9ce9028152600160a060020a03308116600483015260248201949094529151929093169363638a9ce99360448084019491939192918390030190829087803b1515611bb757fe5b6102c65a03f11515611bc557fe5b50506040515190508015611c44575060008054600154604080516020908101859052815160e160020a63680b4e0f02815260048101939093529051600160a060020a039093169363d0169c1e936024808501949192918390030190829087803b1515611c2d57fe5b6102c65a03f11515611c3b57fe5b50506040515190505b15611c51575060016112fa565b60006000fd5b949350505050565b60008160045b1a60f860020a028260055b1a60f860020a028360065b1a60f860020a028460075b1a60f860020a028560085b1a60f860020a028660095b1a60f860020a0287600a5b60408051600160f860020a0319998a16815297891660018901529588166002880152938716600387015291861660048601528516600585015260f860020a911a02929092166006820152905190819003600701902090505b919050565b60003415611d1657611d163334612226565b5b5060005b90565b60008054600154604080516020908101859052905160e160020a630b0ffb31028152600160a060020a0388811660048301908152308083166024850152604484018a9052606484018690523380841660a486015260c0608486019081528a5160c48701528a51949098169763161ff662978d9793968d9691958d9590939260e490920191908601908083838215611dd0575b805182526020831115611dd057601f199092019160209182019101611db0565b505050905090810190601f168015611dfc5780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b1515611e1c57fe5b6102c65a03f11515611e2a57fe5b5050604051519150505b9392505050565b600082600160a060020a031630600160a060020a031614611e5c5782611e5e565b335b9050610ded8183612226565b5b505050565b60006000611e7d85610ca6565b15611f8d5760008054604080516020908101939093525160e160020a635348197702815233600160a060020a0381811660048401818152602485018c9052604485018b9052608485019190915260a060648501908152895160a48601528951929095169563a69032ee9593948c948c948c948894909360c40191908601908083838215611f25575b805182526020831115611f2557601f199092019160209182019101611f05565b505050905090810190601f168015611f515780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b1515611f7057fe5b6102c65a03f11515611f7e57fe5b5050604051519250611faf9050565b611f978484612241565b90508015611faa57611faa858585611fb7565b5b8091505b509392505050565b600654604080516000602091820152815160e560020a626c41550281526004810187815260248201938452855160448301528551600160a060020a0390951694630d882aa09488948a948994936064909101918501908083838215612037575b80518252602083111561203757601f199092019160209182019101612017565b505050905090810190601f1680156120635780820380516001836020036101000a031916815260200191505b5093505050506020604051808303818588803b151561207e57fe5b6125ee5a03f1151561208c57fe5b50506040515115159150610ded90505760006000fd5b5b505050565b600060006120b5856117aa565b80156120d3575084600160a060020a031633600160a060020a031614155b156121f25760008054600154604080516020908101949094525160e160020a630b0ffb3102815233600160a060020a03818116600484018181528c83166024860152604485018c90526064850186905260a485019190915260c0608485019081528a5160c48601528a51929096169663161ff6629693958d958d9591948d94899490939260e40191908601908083838215612189575b80518252602083111561218957601f199092019160209182019101612169565b505050905090810190601f1680156121b55780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b1515611f7057fe5b6102c65a03f11515611f7e57fe5b5050604051519250611faf9050565b6121fc8484612241565b90508015611faa57611faa8585611e3b565b5b8091505b509392505050565b60208101515b919050565b6122308282612257565b151561223c5760006000fd5b5b5050565b600061139b338484611d1e565b90505b92915050565b604051600090600160a060020a0384169083908381818185876187965a03f193505050505b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106122c357805160ff19168380011785556122f0565b828001600101855582156122f0579182015b828111156122f05782518255916020019190600101906122d5565b5b506122fd929150612301565b5090565b610ab691905b808211156122fd5760008155600101612307565b5090565b905600a165627a7a723058200ba15f49fdebda2e84f616d6d974fb33d15dcb8dd0992c834300f565f9d5c2e40029
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Analyzing bytecode for exploit indicators**
[codex:82676] exec
[codex:82676] /bin/bash -lc "python - <<'PY'
[codex:82676] import binascii
[codex:82676] import re
[codex:82676] from pathlib import Path
[codex:82676] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:82676] # extract hex after 0x on line 'FILE: runtime_bytecode.hex'
[codex:82676] import re
[codex:82676] m=re.search(r'0x([0-9a-fA-F]+)', hexdata)
[codex:82676] if not m:
[codex:82676]     print('no hex'); raise SystemExit
[codex:82676] h=m.group(1)
[codex:82676] code=bytes.fromhex(h)
[codex:82676] print('len', len(code))
[codex:82676] # find positions of delegatecall (0xf4), call (0xf1), callcode (0xf2), staticcall (0xfa), selfdestruct (0xff)
[codex:82676] ops={0xf1:'CALL',0xf2:'CALLCODE',0xf4:'DELEGATECALL',0xfa:'STATICCALL',0xff:'SELFDESTRUCT'}
[codex:82676] for op, name in ops.items():
[codex:82676]     positions=[i for i,b in enumerate(code) if b==op]
[codex:82676]     print(name, len(positions))
[codex:82676]     if positions:
[codex:82676]         print(' first', positions[:5])
[codex:82676] PY" in /tmp/codex-multi-ssoyeq0s succeeded in 29ms:
[codex:82676] len 9038
[codex:82676] CALL 23
[codex:82676]  first [3099, 3217, 3264, 3288, 3322]
[codex:82676] CALLCODE 4
[codex:82676]  first [325, 2110, 3658, 8407]
[codex:82676] DELEGATECALL 5
[codex:82676]  first [229, 250, 794, 1601, 3313]
[codex:82676] STATICCALL 10
[codex:82676]  first [338, 536, 1479, 4815, 4842]
[codex:82676] SELFDESTRUCT 42
[codex:82676]  first [12, 13, 14, 15, 228]
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Planning EVM bytecode disassembly**
[codex:82676] 
[codex:82676] I’m going to write a simple Python disassembler to parse the EVM bytecode, carefully distinguishing real instructions from data pushed onto the stack. This way, I can identify if and where delegatecall and selfdestruct opcodes actually appear in the code path and gather context around them to better understand any exploit possibilities.
[codex:82676] exec
[codex:82676] /bin/bash -lc "python - <<'PY'
[codex:82676] from pathlib import Path
[codex:82676] import re
[codex:82676] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:82676] m=re.search(r'0x([0-9a-fA-F]+)', hexdata)
[codex:82676] code=bytes.fromhex(m.group(1))
[codex:82676] # opcode names
[codex:82676] opnames={
[codex:82676] 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:82676] 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:82676] 0x20:'SHA3',
[codex:82676] 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:82676] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:82676] 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:82676] 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:82676] 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:82676] 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:82676] 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:82676] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:82676] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:82676] }
[codex:82676] # disassemble
[codex:82676] insts=[]
[codex:82676] i=0
[codex:82676] while i < len(code):
[codex:82676]     op=code[i]
[codex:82676]     name=opnames.get(op, f'OP{op:02x}')
[codex:82676]     arg=None
[codex:82676]     start=i
[codex:82676]     i+=1
[codex:82676]     if 0x60 <= op <= 0x7f:
[codex:82676]         n=op-0x5f
[codex:82676]         arg=code[i:i+n]
[codex:82676]         i+=n
[codex:82676]     insts.append((start, name, arg))
[codex:82676] 
[codex:82676] # Build lookup by offset
[codex:82676] offset_to_index={off:idx for idx,(off,_,_) in enumerate(insts)}
[codex:82676] 
[codex:82676] # function to show context around offset
[codex:82676] 
[codex:82676] def show_context(offset, radius=8):
[codex:82676]     if offset not in offset_to_index:
[codex:82676]         return []
[codex:82676]     idx=offset_to_index[offset]
[codex:82676]     start=max(0, idx-radius)
[codex:82676]     end=min(len(insts), idx+radius+1)
[codex:82676]     return insts[start:end]
[codex:82676] 
[codex:82676] # find actual op positions for DELEGATECALL/SELFDESTRUCT/CALL etc
[codex:82676] ops_of_interest={'DELEGATECALL','SELFDESTRUCT','CALL','CALLCODE'}
[codex:82676] for op in ops_of_interest:
[codex:82676]     positions=[off for off,name,arg in insts if name==op]
[codex:82676]     print(op, len(positions))
[codex:82676]     for off in positions[:5]:
[codex:82676]         print(' offset', off)
[codex:82676]         for o,name,arg in show_context(off,5):
[codex:82676]             if arg is None:
[codex:82676]                 print(f\" {o:04x}: {name}\")
[codex:82676]             else:
[codex:82676]                 print(f\" {o:04x}: {name} 0x{arg.hex()}\")
[codex:82676]         print('---')
[codex:82676]     if len(positions)>5:
[codex:82676]         print(' ...')
[codex:82676] 
[codex:82676] PY" in /tmp/codex-multi-ssoyeq0s succeeded in 35ms:
[codex:82676] SELFDESTRUCT 0
[codex:82676] CALL 20
[codex:82676]  offset 3099
[codex:82676]  0c14: INVALID
[codex:82676]  0c15: JUMPDEST
[codex:82676]  0c16: PUSH2 0x02c6
[codex:82676]  0c19: GAS
[codex:82676]  0c1a: SUB
[codex:82676]  0c1b: CALL
[codex:82676]  0c1c: ISZERO
[codex:82676]  0c1d: ISZERO
[codex:82676]  0c1e: PUSH2 0x0c23
[codex:82676]  0c21: JUMPI
[codex:82676]  0c22: INVALID
[codex:82676] ---
[codex:82676]  offset 3217
[codex:82676]  0c8a: INVALID
[codex:82676]  0c8b: JUMPDEST
[codex:82676]  0c8c: PUSH2 0x02c6
[codex:82676]  0c8f: GAS
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Analyzing contract calls and storage usage**
[codex:82676] exec
[codex:82676] /bin/bash -lc "python - <<'PY'
[codex:82676] from pathlib import Path
[codex:82676] import re
[codex:82676] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:82676] code=bytes.fromhex(re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1))
[codex:82676] # disassemble with push handling
[codex:82676] opnames={
[codex:82676] 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:82676] 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:82676] 0x20:'SHA3',
[codex:82676] 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:82676] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:82676] 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:82676] 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:82676] 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:82676] 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:82676] 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:82676] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:82676] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:82676] }
[codex:82676] insts=[]
[codex:82676] i=0
[codex:82676] while i < len(code):
[codex:82676]     op=code[i]
[codex:82676]     name=opnames.get(op, f'OP{op:02x}')
[codex:82676]     arg=None
[codex:82676]     start=i
[codex:82676]     i+=1
[codex:82676]     if 0x60 <= op <= 0x7f:
[codex:82676]         n=op-0x5f
[codex:82676]         arg=code[i:i+n]
[codex:82676]         i+=n
[codex:82676]     insts.append((start, name, arg))
[codex:82676] 
[codex:82676] # find SSTORE
[codex:82676] positions=[(off,name,arg) for off,name,arg in insts if name=='SSTORE']
[codex:82676] print('SSTORE count', len(positions))
[codex:82676] # show contexts
[codex:82676] index_by_off={off:idx for idx,(off,_,_) in enumerate(insts)}
[codex:82676] 
[codex:82676] def show(off, radius=6):
[codex:82676]     idx=index_by_off[off]
[codex:82676]     start=max(0, idx-radius)
[codex:82676]     end=min(len(insts), idx+radius+1)
[codex:82676]     for o,name,arg in insts[start:end]:
[codex:82676]         if arg is None:
[codex:82676]             print(f\" {o:04x}: {name}\")
[codex:82676]         else:
[codex:82676]             print(f\" {o:04x}: {name} 0x{arg.hex()}\")
[codex:82676] 
[codex:82676] for off,_,_ in positions:
[codex:82676]     print('--- SSTORE at', hex(off))
[codex:82676]     show(off, radius=8)
[codex:82676] PY" in /tmp/codex-multi-ssoyeq0s succeeded in 38ms:
[codex:82676] SSTORE count 20
[codex:82676] --- SSTORE at 0xb90
[codex:82676]  0b88: NOT
[codex:82676]  0b89: SWAP2
[codex:82676]  0b8a: DUP3
[codex:82676]  0b8b: AND
[codex:82676]  0b8c: DUP2
[codex:82676]  0b8d: OR
[codex:82676]  0b8e: SWAP1
[codex:82676]  0b8f: SWAP3
[codex:82676]  0b90: SSTORE
[codex:82676]  0b91: PUSH1 0x04
[codex:82676]  0b93: SWAP1
[codex:82676]  0b94: SWAP4
[codex:82676]  0b95: MSTORE
[codex:82676]  0b96: SWAP3
[codex:82676]  0b97: SHA3
[codex:82676]  0b98: DUP1
[codex:82676]  0b99: SLOAD
[codex:82676] --- SSTORE at 0xba1
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Analyzing SSTORE slot usage patterns**
[codex:82676] exec
[codex:82676] /bin/bash -lc "python - <<'PY'
[codex:82676] from pathlib import Path
[codex:82676] import re
[codex:82676] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:82676] code=bytes.fromhex(re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1))
[codex:82676] # disassemble
[codex:82676] opnames={
[codex:82676] 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:82676] 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:82676] 0x20:'SHA3',
[codex:82676] 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:82676] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:82676] 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:82676] 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:82676] 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:82676] 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:82676] 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:82676] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:82676] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:82676] }
[codex:82676] insts=[]
[codex:82676] i=0
[codex:82676] while i < len(code):
[codex:82676]     op=code[i]
[codex:82676]     name=opnames.get(op, f'OP{op:02x}')
[codex:82676]     arg=None
[codex:82676]     start=i
[codex:82676]     i+=1
[codex:82676]     if 0x60 <= op <= 0x7f:
[codex:82676]         n=op-0x5f
[codex:82676]         arg=code[i:i+n]
[codex:82676]         i+=n
[codex:82676]     insts.append((start, name, arg))
[codex:82676] 
[codex:82676] # show context around 0x1b00-0x1c20
[codex:82676] for off,name,arg in insts:
[codex:82676]     if 0x1ae0 <= off <= 0x1c60:
[codex:82676]         if arg is None:
[codex:82676]             print(f\"{off:04x}: {name}\")
[codex:82676]         else:
[codex:82676]             print(f\"{off:04x}: {name} 0x{arg.hex()}\")
[codex:82676] PY" in /tmp/codex-multi-ssoyeq0s succeeded in 34ms:
[codex:82676] 1ae0: JUMPDEST
[codex:82676] 1ae1: PUSH2 0x02c6
[codex:82676] 1ae4: GAS
[codex:82676] 1ae5: SUB
[codex:82676] 1ae6: CALL
[codex:82676] 1ae7: ISZERO
[codex:82676] 1ae8: ISZERO
[codex:82676] 1ae9: PUSH2 0x1aee
[codex:82676] 1aec: JUMPI
[codex:82676] 1aed: INVALID
[codex:82676] 1aee: JUMPDEST
[codex:82676] 1aef: POP
[codex:82676] 1af0: POP
[codex:82676] 1af1: PUSH1 0x40
[codex:82676] 1af3: MLOAD
[codex:82676] 1af4: MLOAD
[codex:82676] 1af5: ISZERO
[codex:82676] 1af6: ISZERO
[codex:82676] 1af7: SWAP1
[codex:82676] 1af8: POP
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Analyzing dispatcher and ownership update**
[codex:82676] exec
[codex:82676] /bin/bash -lc "python - <<'PY'
[codex:82676] from pathlib import Path
[codex:82676] import re
[codex:82676] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:82676] code=bytes.fromhex(re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1))
[codex:82676] # disassemble
[codex:82676] opnames={
[codex:82676] 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:82676] 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:82676] 0x20:'SHA3',
[codex:82676] 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:82676] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:82676] 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:82676] 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:82676] 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:82676] 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:82676] 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:82676] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:82676] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:82676] }
[codex:82676] insts=[]
[codex:82676] i=0
[codex:82676] while i < len(code):
[codex:82676]     op=code[i]
[codex:82676]     name=opnames.get(op, f'OP{op:02x}')
[codex:82676]     arg=None
[codex:82676]     start=i
[codex:82676]     i+=1
[codex:82676]     if 0x60 <= op <= 0x7f:
[codex:82676]         n=op-0x5f
[codex:82676]         arg=code[i:i+n]
[codex:82676]         i+=n
[codex:82676]     insts.append((start, name, arg))
[codex:82676] 
[codex:82676] # parse dispatcher: look for pattern PUSH4 sel, EQ, PUSH2 dest, JUMPI in early code (<0x300?)
[codex:82676] selectors=[]
[codex:82676] for idx,(off,name,arg) in enumerate(insts):
[codex:82676]     if name=='PUSH4' and off < 0x300:
[codex:82676]         # look ahead for EQ, PUSH2, JUMPI
[codex:82676]         if idx+3 < len(insts):
[codex:82676]             if insts[idx+1][1]=='EQ' and insts[idx+2][1]=='PUSH2' and insts[idx+3][1]=='JUMPI':
[codex:82676]                 sel=int.from_bytes(arg,'big')
[codex:82676]                 dest=int.from_bytes(insts[idx+2][2],'big')
[codex:82676]                 selectors.append((sel,dest,off))
[codex:82676] 
[codex:82676] print('selectors', len(selectors))
[codex:82676] for sel,dest,off in selectors:
[codex:82676]     print(f\"0x{sel:08x} -> 0x{dest:04x}\")
[codex:82676] PY" in /tmp/codex-multi-ssoyeq0s succeeded in 37ms:
[codex:82676] selectors 32
[codex:82676] 0x06fdde03 -> 0x01c4
[codex:82676] 0x095ea7b3 -> 0x0254
[codex:82676] 0x18160ddd -> 0x0287
[codex:82676] 0x1a9237de -> 0x02a9
[codex:82676] 0x23385089 -> 0x02d0
[codex:82676] 0x23b872dd -> 0x02f7
[codex:82676] 0x23de6651 -> 0x0330
[codex:82676] 0x313ce567 -> 0x0357
[codex:82676] 0x406838b3 -> 0x037d
[codex:82676] 0x490c0e8f -> 0x03a9
[codex:82676] 0x6461fe39 -> 0x0415
[codex:82676] 0x70a08231 -> 0x0494
[codex:82676] 0x733480b7 -> 0x04c2
[codex:82676] 0x77fe38a4 -> 0x04e4
[codex:82676] 0x8bbbbfd3 -> 0x054a
[codex:82676] 0x95d89b41 -> 0x0573
[codex:82676] 0xa1e8ac0b -> 0x0603
[codex:82676] 0xa340fff4 -> 0x0633
[codex:82676] 0xa48a663c -> 0x0657
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Analyzing missing selector parsing**
[codex:82676] exec
[codex:82676] /bin/bash -lc "python - <<'PY'
[codex:82676] from pathlib import Path
[codex:82676] import re
[codex:82676] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:82676] code=bytes.fromhex(re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1))
[codex:82676] # disassemble
[codex:82676] opnames={
[codex:82676] 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:82676] 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:82676] 0x20:'SHA3',
[codex:82676] 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:82676] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:82676] 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:82676] 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:82676] 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:82676] 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:82676] 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:82676] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:82676] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:82676] }
[codex:82676] insts=[]
[codex:82676] i=0
[codex:82676] while i < len(code):
[codex:82676]     op=code[i]
[codex:82676]     name=opnames.get(op, f'OP{op:02x}')
[codex:82676]     arg=None
[codex:82676]     start=i
[codex:82676]     i+=1
[codex:82676]     if 0x60 <= op <= 0x7f:
[codex:82676]         n=op-0x5f
[codex:82676]         arg=code[i:i+n]
[codex:82676]         i+=n
[codex:82676]     insts.append((start, name, arg))
[codex:82676] 
[codex:82676] # parse all push4/eq/push2/jumpi
[codex:82676] selectors=[]
[codex:82676] for idx,(off,name,arg) in enumerate(insts):
[codex:82676]     if name=='PUSH4':
[codex:82676]         if idx+3 < len(insts):
[codex:82676]             if insts[idx+1][1]=='EQ' and insts[idx+2][1]=='PUSH2' and insts[idx+3][1]=='JUMPI':
[codex:82676]                 sel=int.from_bytes(arg,'big')
[codex:82676]                 dest=int.from_bytes(insts[idx+2][2],'big')
[codex:82676]                 selectors.append((sel,dest,off))
[codex:82676] 
[codex:82676] print('selectors', len(selectors))
[codex:82676] for sel,dest,off in selectors:
[codex:82676]     if sel==0x029a8bf7:
[codex:82676]         print('found', hex(off), hex(dest))
[codex:82676] 
[codex:82676] # show first few selectors
[codex:82676] for sel,dest,off in selectors[:5]:
[codex:82676]     print(f\"0x{sel:08x} -> 0x{dest:04x} @ {off:04x}\")
[codex:82676] PY" in /tmp/codex-multi-ssoyeq0s succeeded in 40ms:
[codex:82676] selectors 32
[codex:82676] 0x06fdde03 -> 0x01c4 @ 0026
[codex:82676] 0x095ea7b3 -> 0x0254 @ 0031
[codex:82676] 0x18160ddd -> 0x0287 @ 003c
[codex:82676] 0x1a9237de -> 0x02a9 @ 0047
[codex:82676] 0x23385089 -> 0x02d0 @ 0052
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Analyzing selector parsing mismatch**
[codex:82676] exec
[codex:82676] /bin/bash -lc "python - <<'PY'
[codex:82676] from pathlib import Path
[codex:82676] import re
[codex:82676] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:82676] code=bytes.fromhex(re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1))
[codex:82676] # disassemble first 120 bytes
[codex:82676] opnames={
[codex:82676] 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:82676] 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:82676] 0x20:'SHA3',
[codex:82676] 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:82676] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:82676] 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:82676] 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:82676] 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:82676] 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:82676] 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:82676] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:82676] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:82676] }
[codex:82676] 
[codex:82676] i=0
[codex:82676] count=0
[codex:82676] while i < len(code) and i<0x80:
[codex:82676]     op=code[i]
[codex:82676]     name=opnames.get(op, f'OP{op:02x}')
[codex:82676]     arg=None
[codex:82676]     start=i
[codex:82676]     i+=1
[codex:82676]     if 0x60 <= op <= 0x7f:
[codex:82676]         n=op-0x5f
[codex:82676]         arg=code[i:i+n]
[codex:82676]         i+=n
[codex:82676]     if arg is None:
[codex:82676]         print(f\"{start:04x}: {name}\")
[codex:82676]     else:
[codex:82676]         print(f\"{start:04x}: {name} 0x{arg.hex()}\")
[codex:82676] PY" in /tmp/codex-multi-ssoyeq0s succeeded in 32ms:
[codex:82676] 0000: PUSH1 0x60
[codex:82676] 0002: PUSH1 0x40
[codex:82676] 0004: MSTORE
[codex:82676] 0005: CALLDATASIZE
[codex:82676] 0006: ISZERO
[codex:82676] 0007: PUSH2 0x0185
[codex:82676] 000a: JUMPI
[codex:82676] 000b: PUSH4 0xffffffff
[codex:82676] 0010: PUSH1 0xe0
[codex:82676] 0012: PUSH1 0x02
[codex:82676] 0014: EXP
[codex:82676] 0015: PUSH1 0x00
[codex:82676] 0017: CALLDATALOAD
[codex:82676] 0018: DIV
[codex:82676] 0019: AND
[codex:82676] 001a: PUSH4 0x029a8bf7
[codex:82676] 001f: DUP2
[codex:82676] 0020: EQ
[codex:82676] 0021: PUSH2 0x0198
[codex:82676] 0024: JUMPI
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Analyzing dispatcher opcode pattern**
[codex:82676] exec
[codex:82676] /bin/bash -lc "python - <<'PY'
[codex:82676] from pathlib import Path
[codex:82676] import re
[codex:82676] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:82676] code=bytes.fromhex(re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1))
[codex:82676] # disassemble
[codex:82676] opnames={
[codex:82676] 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:82676] 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:82676] 0x20:'SHA3',
[codex:82676] 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:82676] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:82676] 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:82676] 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:82676] 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:82676] 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:82676] 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:82676] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:82676] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:82676] }
[codex:82676] 
[codex:82676] # disassemble and show around 0x0c20-0x0c80
[codex:82676] insts=[]
[codex:82676] i=0
[codex:82676] while i < len(code):
[codex:82676]     op=code[i]
[codex:82676]     name=opnames.get(op, f'OP{op:02x}')
[codex:82676]     arg=None
[codex:82676]     start=i
[codex:82676]     i+=1
[codex:82676]     if 0x60 <= op <= 0x7f:
[codex:82676]         n=op-0x5f
[codex:82676]         arg=code[i:i+n]
[codex:82676]         i+=n
[codex:82676]     insts.append((start, name, arg))
[codex:82676] 
[codex:82676] for off,name,arg in insts:
[codex:82676]     if 0x0c20 <= off <= 0x0c80:
[codex:82676]         if arg is None:
[codex:82676]             print(f\"{off:04x}: {name}\")
[codex:82676]         else:
[codex:82676]             print(f\"{off:04x}: {name} 0x{arg.hex()}\")
[codex:82676] PY" in /tmp/codex-multi-ssoyeq0s succeeded in 34ms:
[codex:82676] 0c21: JUMPI
[codex:82676] 0c22: INVALID
[codex:82676] 0c23: JUMPDEST
[codex:82676] 0c24: POP
[codex:82676] 0c25: POP
[codex:82676] 0c26: PUSH1 0x40
[codex:82676] 0c28: MLOAD
[codex:82676] 0c29: MLOAD
[codex:82676] 0c2a: SWAP2
[codex:82676] 0c2b: POP
[codex:82676] 0c2c: POP
[codex:82676] 0c2d: JUMPDEST
[codex:82676] 0c2e: JUMPDEST
[codex:82676] 0c2f: SWAP3
[codex:82676] 0c30: SWAP2
[codex:82676] 0c31: POP
[codex:82676] 0c32: POP
[codex:82676] 0c33: JUMP
[codex:82676] 0c34: JUMPDEST
[codex:82676] 0c35: PUSH1 0x00
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Analyzing ownership and access control checks**
[codex:82676] exec
[codex:82676] /bin/bash -lc "python - <<'PY'
[codex:82676] from pathlib import Path
[codex:82676] import re
[codex:82676] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:82676] code=bytes.fromhex(re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1))
[codex:82676] 
[codex:82676] # disassemble
[codex:82676] opnames={
[codex:82676] 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:82676] 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:82676] 0x20:'SHA3',
[codex:82676] 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:82676] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:82676] 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:82676] 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:82676] 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:82676] 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:82676] 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:82676] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:82676] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:82676] }
[codex:82676] 
[codex:82676] insts=[]
[codex:82676] i=0
[codex:82676] while i < len(code):
[codex:82676]     op=code[i]
[codex:82676]     name=opnames.get(op, f'OP{op:02x}')
[codex:82676]     arg=None
[codex:82676]     start=i
[codex:82676]     i+=1
[codex:82676]     if 0x60 <= op <= 0x7f:
[codex:82676]         n=op-0x5f
[codex:82676]         arg=code[i:i+n]
[codex:82676]         i+=n
[codex:82676]     insts.append((start, name, arg))
[codex:82676] 
[codex:82676] # Build map from offset to index
[codex:82676] index_by_off={off:i for i,(off,_,_) in enumerate(insts)}
[codex:82676] 
[codex:82676] # external function entry points from dispatcher (addresses after jumpi)
[codex:82676] entries=[0x0198,0x01c4,0x0254,0x0287,0x02a9,0x02d0,0x02f7,0x0330,0x0357,0x037d,0x03a9,0x0415,0x0494,0x04c2,0x04e4,0x054a,0x0573,0x0603,0x0633,0x0657,0x06d0,0x0706,0x0728,0x0753,0x077f,0x07ee,0x081e,0x0852,0x0882,0x08aa,0x0921,0x0954,0x0984]
[codex:82676] 
[codex:82676] # check within first 40 instructions for owner check pattern: SLOAD and CALLER and EQ
[codex:82676] for entry in entries:
[codex:82676]     idx=index_by_off.get(entry)
[codex:82676]     if idx is None:
[codex:82676]         continue
[codex:82676]     window=insts[idx:idx+60]
[codex:82676]     ops=[name for _,name,_ in window]
[codex:82676]     if 'CALLER' in ops and 'SLOAD' in ops:
[codex:82676]         # compute if EQ appears after CALLER and SLOAD in window
[codex:82676]         if 'EQ' in ops or 'ISZERO' in ops:
[codex:82676]             print(f\"Entry 0x{entry:04x} has CALLER and SLOAD in first 60 ops\")
[codex:82676] PY" in /tmp/codex-multi-ssoyeq0s succeeded in 36ms:
[codex:82676] 
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Analyzing CALL patterns for reentrancy risks**
[codex:82676] 
[codex:82676] I'm digging into whether external calls use caller addresses or call values that might enable reentrancy exploits, planning to script analysis around CALL instructions and their nearby stack operations to catch suspicious patterns. This should help clarify if any calls forward ETH or tokens to user-controlled addresses.
[codex:82676] exec
[codex:82676] /bin/bash -lc "python - <<'PY'
[codex:82676] from pathlib import Path
[codex:82676] import re
[codex:82676] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:82676] code=bytes.fromhex(re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1))
[codex:82676] 
[codex:82676] # disassemble
[codex:82676] opnames={
[codex:82676] 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:82676] 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:82676] 0x20:'SHA3',
[codex:82676] 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:82676] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:82676] 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:82676] 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:82676] 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:82676] 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:82676] 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:82676] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:82676] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:82676] }
[codex:82676] 
[codex:82676] insts=[]
[codex:82676] i=0
[codex:82676] while i < len(code):
[codex:82676]     op=code[i]
[codex:82676]     name=opnames.get(op, f'OP{op:02x}')
[codex:82676]     arg=None
[codex:82676]     start=i
[codex:82676]     i+=1
[codex:82676]     if 0x60 <= op <= 0x7f:
[codex:82676]         n=op-0x5f
[codex:82676]         arg=code[i:i+n]
[codex:82676]         i+=n
[codex:82676]     insts.append((start, name, arg))
[codex:82676] 
[codex:82676] call_idxs=[i for i,(off,name,arg) in enumerate(insts) if name=='CALL']
[codex:82676] print('CALL count', len(call_idxs))
[codex:82676] for idx in call_idxs:
[codex:82676]     off=insts[idx][0]
[codex:82676]     print('--- CALL at', hex(off))
[codex:82676]     for o,name,arg in insts[max(0,idx-15):idx+1]:
[codex:82676]         if arg is None:
[codex:82676]             print(f\" {o:04x}: {name}\")
[codex:82676]         else:
[codex:82676]             print(f\" {o:04x}: {name} 0x{arg.hex()}\")
[codex:82676] PY" in /tmp/codex-multi-ssoyeq0s succeeded in 41ms:
[codex:82676] CALL count 20
[codex:82676] --- CALL at 0xc1b
[codex:82676]  0c08: SWAP1
[codex:82676]  0c09: DUP3
[codex:82676]  0c0a: SWAP1
[codex:82676]  0c0b: DUP8
[codex:82676]  0c0c: DUP1
[codex:82676]  0c0d: EXTCODESIZE
[codex:82676]  0c0e: ISZERO
[codex:82676]  0c0f: ISZERO
[codex:82676]  0c10: PUSH2 0x0c15
[codex:82676]  0c13: JUMPI
[codex:82676]  0c14: INVALID
[codex:82676]  0c15: JUMPDEST
[codex:82676]  0c16: PUSH2 0x02c6
[codex:82676]  0c19: GAS
[codex:82676]  0c1a: SUB
[codex:82676]  0c1b: CALL
[codex:82676] --- CALL at 0xc91
[codex:82676]  0c7e: ADD
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Analyzing storage writes and external calls**
[codex:82676] exec
[codex:82676] /bin/bash -lc "python - <<'PY'
[codex:82676] from pathlib import Path
[codex:82676] import re
[codex:82676] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:82676] code=bytes.fromhex(re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1))
[codex:82676] # disassemble
[codex:82676] opnames={
[codex:82676] 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:82676] 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:82676] 0x20:'SHA3',
[codex:82676] 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:82676] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:82676] 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:82676] 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:82676] 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:82676] 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:82676] 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:82676] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:82676] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:82676] }
[codex:82676] 
[codex:82676] insts=[]
[codex:82676] i=0
[codex:82676] while i < len(code):
[codex:82676]     op=code[i]
[codex:82676]     name=opnames.get(op, f'OP{op:02x}')
[codex:82676]     arg=None
[codex:82676]     start=i
[codex:82676]     i+=1
[codex:82676]     if 0x60 <= op <= 0x7f:
[codex:82676]         n=op-0x5f
[codex:82676]         arg=code[i:i+n]
[codex:82676]         i+=n
[codex:82676]     insts.append((start, name, arg))
[codex:82676] 
[codex:82676] # find PUSH2 0x1aee and 0x1ae0 refs
[codex:82676] for target in [0x1aee,0x1ae0,0x1b04,0x1b28]:
[codex:82676]     refs=[off for off,name,arg in insts if name=='PUSH2' and int.from_bytes(arg,'big')==target]
[codex:82676]     print(hex(target), 'refs', [hex(r) for r in refs])
[codex:82676] PY" in /tmp/codex-multi-ssoyeq0s succeeded in 41ms:
[codex:82676] 0x1aee refs ['0x1ae9']
[codex:82676] 0x1ae0 refs ['0x1adb']
[codex:82676] 0x1b04 refs ['0x1af9']
[codex:82676] 0x1b28 refs ['0x1b20']
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Analyzing function entry points**
[codex:82676] exec
[codex:82676] /bin/bash -lc "python - <<'PY'
[codex:82676] from pathlib import Path
[codex:82676] import re
[codex:82676] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:82676] code=bytes.fromhex(re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1))
[codex:82676] # disassemble
[codex:82676] opnames={
[codex:82676] 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:82676] 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:82676] 0x20:'SHA3',
[codex:82676] 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:82676] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:82676] 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:82676] 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:82676] 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:82676] 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:82676] 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:82676] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:82676] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:82676] }
[codex:82676] 
[codex:82676] insts=[]
[codex:82676] i=0
[codex:82676] while i < len(code):
[codex:82676]     op=code[i]
[codex:82676]     name=opnames.get(op, f'OP{op:02x}')
[codex:82676]     arg=None
[codex:82676]     start=i
[codex:82676]     i+=1
[codex:82676]     if 0x60 <= op <= 0x7f:
[codex:82676]         n=op-0x5f
[codex:82676]         arg=code[i:i+n]
[codex:82676]         i+=n
[codex:82676]     insts.append((start, name, arg))
[codex:82676] 
[codex:82676] # show disassembly from entry 0x0984 for ~200 bytes
[codex:82676] start=0x0984
[codex:82676] end=0x0a20
[codex:82676] for off,name,arg in insts:
[codex:82676]     if start <= off <= end:
[codex:82676]         if arg is None:
[codex:82676]             print(f\"{off:04x}: {name}\")
[codex:82676]         else:
[codex:82676]             print(f\"{off:04x}: {name} 0x{arg.hex()}\")
[codex:82676] PY" in /tmp/codex-multi-ssoyeq0s succeeded in 45ms:
[codex:82676] 0984: JUMPDEST
[codex:82676] 0985: CALLVALUE
[codex:82676] 0986: ISZERO
[codex:82676] 0987: PUSH2 0x098c
[codex:82676] 098a: JUMPI
[codex:82676] 098b: INVALID
[codex:82676] 098c: JUMPDEST
[codex:82676] 098d: PUSH1 0x40
[codex:82676] 098f: DUP1
[codex:82676] 0990: MLOAD
[codex:82676] 0991: PUSH1 0x20
[codex:82676] 0993: PUSH1 0x04
[codex:82676] 0995: PUSH1 0x24
[codex:82676] 0997: DUP1
[codex:82676] 0998: CALLDATALOAD
[codex:82676] 0999: DUP3
[codex:82676] 099a: DUP2
[codex:82676] 099b: ADD
[codex:82676] 099c: CALLDATALOAD
[codex:82676] 099d: PUSH1 0x1f
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Analyzing potential initialization function**
[codex:82676] exec
[codex:82676] /bin/bash -lc "python - <<'PY'
[codex:82676] from pathlib import Path
[codex:82676] import re
[codex:82676] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:82676] code=bytes.fromhex(re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1))
[codex:82676] 
[codex:82676] # disassemble
[codex:82676] opnames={
[codex:82676] 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:82676] 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:82676] 0x20:'SHA3',
[codex:82676] 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:82676] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:82676] 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:82676] 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:82676] 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:82676] 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:82676] 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:82676] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:82676] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:82676] }
[codex:82676] insts=[]
[codex:82676] i=0
[codex:82676] while i < len(code):
[codex:82676]     op=code[i]
[codex:82676]     name=opnames.get(op, f'OP{op:02x}')
[codex:82676]     arg=None
[codex:82676]     start=i
[codex:82676]     i+=1
[codex:82676]     if 0x60 <= op <= 0x7f:
[codex:82676]         n=op-0x5f
[codex:82676]         arg=code[i:i+n]
[codex:82676]         i+=n
[codex:82676]     insts.append((start, name, arg))
[codex:82676] 
[codex:82676] # find where PUSH2 0x1965 occurs
[codex:82676] for off,name,arg in insts:
[codex:82676]     if name=='PUSH2' and int.from_bytes(arg,'big') in [0x1965,0x195d,0x1b04,0x1b20,0x18ff,0x1925,0x1ae0,0x1b28]:
[codex:82676]         print(f\"{off:04x}: {name} 0x{int.from_bytes(arg,'big'):04x}\")
[codex:82676] PY" in /tmp/codex-multi-ssoyeq0s succeeded in 35ms:
[codex:82676] 093c: PUSH2 0x18ff
[codex:82676] 096c: PUSH2 0x1925
[codex:82676] 0a53: PUSH2 0x1965
[codex:82676] 1adb: PUSH2 0x1ae0
[codex:82676] 1af9: PUSH2 0x1b04
[codex:82676] 1b20: PUSH2 0x1b28
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Investigating internal function addresses**
[codex:82676] exec
[codex:82676] /bin/bash -lc "python - <<'PY'
[codex:82676] from pathlib import Path
[codex:82676] import re
[codex:82676] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:82676] code=bytes.fromhex(re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1))
[codex:82676] # disassemble
[codex:82676] opnames={
[codex:82676] 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:82676] 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:82676] 0x20:'SHA3',
[codex:82676] 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:82676] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:82676] 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:82676] 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:82676] 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:82676] 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:82676] 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:82676] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:82676] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:82676] }
[codex:82676] 
[codex:82676] insts=[]
[codex:82676] i=0
[codex:82676] while i < len(code):
[codex:82676]     op=code[i]
[codex:82676]     name=opnames.get(op, f'OP{op:02x}')
[codex:82676]     arg=None
[codex:82676]     start=i
[codex:82676]     i+=1
[codex:82676]     if 0x60 <= op <= 0x7f:
[codex:82676]         n=op-0x5f
[codex:82676]         arg=code[i:i+n]
[codex:82676]         i+=n
[codex:82676]     insts.append((start, name, arg))
[codex:82676] 
[codex:82676] # function to print from start to end
[codex:82676] 
[codex:82676] def dump(start, end):
[codex:82676]     print(f\"-- {start:04x}-{end:04x} --\")
[codex:82676]     for off,name,arg in insts:
[codex:82676]         if start <= off <= end:
[codex:82676]             if arg is None:
[codex:82676]                 print(f\"{off:04x}: {name}\")
[codex:82676]             else:
[codex:82676]                 print(f\"{off:04x}: {name} 0x{arg.hex()}\")
[codex:82676] 
[codex:82676] for s in [0x18ff,0x1925,0x1965]:
[codex:82676]     dump(s, s+0x60)
[codex:82676] PY" in /tmp/codex-multi-ssoyeq0s succeeded in 33ms:
[codex:82676] -- 18ff-195f --
[codex:82676] 18ff: JUMPDEST
[codex:82676] 1900: PUSH1 0x00
[codex:82676] 1902: PUSH2 0x139b
[codex:82676] 1905: DUP4
[codex:82676] 1906: DUP4
[codex:82676] 1907: PUSH1 0x20
[codex:82676] 1909: PUSH1 0x40
[codex:82676] 190b: MLOAD
[codex:82676] 190c: SWAP1
[codex:82676] 190d: DUP2
[codex:82676] 190e: ADD
[codex:82676] 190f: PUSH1 0x40
[codex:82676] 1911: MSTORE
[codex:82676] 1912: DUP1
[codex:82676] 1913: PUSH1 0x00
[codex:82676] 1915: DUP2
[codex:82676] 1916: MSTORE
[codex:82676] 1917: POP
[codex:82676] 1918: PUSH2 0x188b
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Analyzing initialization checks and storage slots**
[codex:82676] exec
[codex:82676] /bin/bash -lc "python - <<'PY'
[codex:82676] from pathlib import Path
[codex:82676] import re
[codex:82676] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:82676] code=bytes.fromhex(re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1))
[codex:82676] # disassemble
[codex:82676] opnames={
[codex:82676] 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:82676] 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:82676] 0x20:'SHA3',
[codex:82676] 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:82676] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:82676] 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:82676] 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:82676] 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:82676] 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:82676] 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:82676] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:82676] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:82676] }
[codex:82676] 
[codex:82676] insts=[]
[codex:82676] i=0
[codex:82676] while i < len(code):
[codex:82676]     op=code[i]
[codex:82676]     name=opnames.get(op, f'OP{op:02x}')
[codex:82676]     arg=None
[codex:82676]     start=i
[codex:82676]     i+=1
[codex:82676]     if 0x60 <= op <= 0x7f:
[codex:82676]         n=op-0x5f
[codex:82676]         arg=code[i:i+n]
[codex:82676]         i+=n
[codex:82676]     insts.append((start, name, arg))
[codex:82676] 
[codex:82676] # print from 0x1965 to 0x1b40
[codex:82676] start=0x1965
[codex:82676] end=0x1b40
[codex:82676] for off,name,arg in insts:
[codex:82676]     if start <= off <= end:
[codex:82676]         if arg is None:
[codex:82676]             print(f\"{off:04x}: {name}\")
[codex:82676]         else:
[codex:82676]             print(f\"{off:04x}: {name} 0x{arg.hex()}\")
[codex:82676] PY" in /tmp/codex-multi-ssoyeq0s succeeded in 44ms:
[codex:82676] 1965: JUMPDEST
[codex:82676] 1966: PUSH1 0x00
[codex:82676] 1968: DUP1
[codex:82676] 1969: SLOAD
[codex:82676] 196a: PUSH1 0x01
[codex:82676] 196c: PUSH1 0xa0
[codex:82676] 196e: PUSH1 0x02
[codex:82676] 1970: EXP
[codex:82676] 1971: SUB
[codex:82676] 1972: AND
[codex:82676] 1973: ISZERO
[codex:82676] 1974: PUSH2 0x197f
[codex:82676] 1977: JUMPI
[codex:82676] 1978: POP
[codex:82676] 1979: PUSH1 0x00
[codex:82676] 197b: PUSH2 0x12fa
[codex:82676] 197e: JUMP
[codex:82676] 197f: JUMPDEST
[codex:82676] 1980: DUP5
[codex:82676] 1981: PUSH1 0x01
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Analyzing initialization and transferFrom security**
[codex:82676] 
[codex:82676] I'm examining the contract's initializer that sets ownership and an external address only if the owner slot is zero, which is standard but could be risky if left uninitialized. Since this is runtime bytecode, I can't confirm if the constructor set the owner, so the exploitability from uninitialized state isn't concrete. I'm also looking into the transferFrom function to see if it improperly allows transfers without checking allowances, which would be a clear vulnerability if so. I'll continue disassembling around the transferFrom selector to verify this.
[codex:82676] exec
[codex:82676] /bin/bash -lc "python - <<'PY'
[codex:82676] from pathlib import Path
[codex:82676] import re
[codex:82676] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:82676] code=bytes.fromhex(re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1))
[codex:82676] # disassemble
[codex:82676] opnames={
[codex:82676] 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:82676] 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:82676] 0x20:'SHA3',
[codex:82676] 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:82676] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:82676] 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:82676] 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:82676] 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:82676] 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:82676] 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:82676] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:82676] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:82676] }
[codex:82676] 
[codex:82676] insts=[]
[codex:82676] i=0
[codex:82676] while i < len(code):
[codex:82676]     op=code[i]
[codex:82676]     name=opnames.get(op, f'OP{op:02x}')
[codex:82676]     arg=None
[codex:82676]     start=i
[codex:82676]     i+=1
[codex:82676]     if 0x60 <= op <= 0x7f:
[codex:82676]         n=op-0x5f
[codex:82676]         arg=code[i:i+n]
[codex:82676]         i+=n
[codex:82676]     insts.append((start, name, arg))
[codex:82676] 
[codex:82676] # show disassembly around 0x0df4 (transferFrom impl)
[codex:82676] start=0x0df4
[codex:82676] end=0x0f00
[codex:82676] for off,name,arg in insts:
[codex:82676]     if start <= off <= end:
[codex:82676]         if arg is None:
[codex:82676]             print(f\"{off:04x}: {name}\")
[codex:82676]         else:
[codex:82676]             print(f\"{off:04x}: {name} 0x{arg.hex()}\")
[codex:82676] PY" in /tmp/codex-multi-ssoyeq0s succeeded in 34ms:
[codex:82676] 0df4: JUMPDEST
[codex:82676] 0df5: PUSH1 0x00
[codex:82676] 0df7: PUSH2 0x0e12
[codex:82676] 0dfa: DUP5
[codex:82676] 0dfb: DUP5
[codex:82676] 0dfc: DUP5
[codex:82676] 0dfd: PUSH1 0x20
[codex:82676] 0dff: PUSH1 0x40
[codex:82676] 0e01: MLOAD
[codex:82676] 0e02: SWAP1
[codex:82676] 0e03: DUP2
[codex:82676] 0e04: ADD
[codex:82676] 0e05: PUSH1 0x40
[codex:82676] 0e07: MSTORE
[codex:82676] 0e08: DUP1
[codex:82676] 0e09: PUSH1 0x00
[codex:82676] 0e0b: DUP2
[codex:82676] 0e0c: MSTORE
[codex:82676] 0e0d: POP
[codex:82676] 0e0e: PUSH2 0x114c
[codex:82676] 
[codex:82676] thinking
[codex:82676] **Summarizing bytecode analysis results**
[codex:82676] 
[codex:82676] I’m wrapping up the review by confirming no obvious exploitable paths appear in the bytecode—no delegatecalls, selfdestructs, or unauthorized token transfers stand out. There might be initializer functions gated by an unset owner, but that’s not concrete without more deployment info. I’ll produce a concise JSON summary reflecting no findings as requested.
[codex:82676] codex
[codex:82676] {"no_findings":true,"summary":"No concrete, exploitable profit path was identified from the bytecode-only review; no executable delegatecall/selfdestruct and no clear unrestricted value-transfer or admin-takeover path was confirmed.","findings":[]}
[codex:82676] tokens used
[codex:82676] 98,778
[codex:82676] {"no_findings":true,"summary":"No concrete, exploitable profit path was identified from the bytecode-only review; no executable delegatecall/selfdestruct and no clear unrestricted value-transfer or admin-takeover path was confirmed.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-02T19:32:19.580872+00:00",
        "returncode": 0
    },
    "summary": "No concrete, exploitable profit path was identified from the bytecode-only review; no executable delegatecall/selfdestruct and no clear unrestricted value-transfer or admin-takeover path was confirmed.",
    "raw_final": {
        "summary": "No concrete, exploitable profit path was identified from the bytecode-only review; no executable delegatecall/selfdestruct and no clear unrestricted value-transfer or admin-takeover path was confirmed.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
20
EXT*/BALANCE
19
Total opcodes
6892
Flags
heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x0185
0000000a: JUMPI
0000000b: PUSH4 0xffffffff
00000010: PUSH1 0xe0
00000012: PUSH1 0x02
00000014: EXP
00000015: PUSH1 0x00
00000017: CALLDATALOAD
00000018: DIV
00000019: AND
0000001a: PUSH4 0x029a8bf7
0000001f: DUP2
00000020: EQ
00000021: PUSH2 0x0198
00000024: JUMPI
00000025: DUP1
00000026: PUSH4 0x06fdde03
0000002b: EQ
0000002c: PUSH2 0x01c4
0000002f: JUMPI
00000030: DUP1
00000031: PUSH4 0x095ea7b3
00000036: EQ
00000037: PUSH2 0x0254
0000003a: JUMPI
0000003b: DUP1
0000003c: PUSH4 0x18160ddd
00000041: EQ
00000042: PUSH2 0x0287
00000045: JUMPI
00000046: DUP1
00000047: PUSH4 0x1a9237de
0000004c: EQ
0000004d: PUSH2 0x02a9
00000050: JUMPI
00000051: DUP1
00000052: PUSH4 0x23385089
00000057: EQ
00000058: PUSH2 0x02d0
0000005b: JUMPI
0000005c: DUP1
0000005d: PUSH4 0x23b872dd
00000062: EQ
00000063: PUSH2 0x02f7
00000066: JUMPI
00000067: DUP1
00000068: PUSH4 0x23de6651
0000006d: EQ
0000006e: PUSH2 0x0330
00000071: JUMPI
00000072: DUP1
00000073: PUSH4 0x313ce567
00000078: EQ
00000079: PUSH2 0x0357
0000007c: JUMPI
0000007d: DUP1
0000007e: PUSH4 0x406838b3
00000083: EQ
00000084: PUSH2 0x037d
00000087: JUMPI
00000088: DUP1
00000089: PUSH4 0x490c0e8f
0000008e: EQ
0000008f: PUSH2 0x03a9
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0x6461fe39
00000099: EQ
0000009a: PUSH2 0x0415
0000009d: JUMPI
0000009e: DUP1
0000009f: PUSH4 0x70a08231
000000a4: EQ
000000a5: PUSH2 0x0494
000000a8: JUMPI
000000a9: DUP1
000000aa: PUSH4 0x733480b7
000000af: EQ
000000b0: PUSH2 0x04c2
000000b3: JUMPI
000000b4: DUP1
000000b5: PUSH4 0x77fe38a4
000000ba: EQ
000000bb: PUSH2 0x04e4
000000be: JUMPI
000000bf: DUP1
000000c0: PUSH4 0x8bbbbfd3
000000c5: EQ
000000c6: PUSH2 0x054a
000000c9: JUMPI
000000ca: DUP1
000000cb: PUSH4 0x95d89b41
000000d0: EQ
000000d1: PUSH2 0x0573
000000d4: JUMPI
000000d5: DUP1
000000d6: PUSH4 0xa1e8ac0b
000000db: EQ
000000dc: PUSH2 0x0603
000000df: JUMPI
000000e0: DUP1
000000e1: PUSH4 0xa340fff4
000000e6: EQ
000000e7: PUSH2 0x0633
000000ea: JUMPI
000000eb: DUP1
000000ec: PUSH4 0xa48a663c
000000f1: EQ
000000f2: PUSH2 0x0657
000000f5: JUMPI
000000f6: DUP1
000000f7: PUSH4 0xa525f42c
000000fc: EQ
000000fd: PUSH2 0x06d0
00000100: JUMPI
00000101: DUP1
00000102: PUSH4 0xa66e6e5c
00000107: EQ
00000108: PUSH2 0x0706
0000010b: JUMPI
0000010c: DUP1
0000010d: PUSH4 0xa9059cbb
00000112: EQ
00000113: PUSH2 0x0728
00000116: JUMPI
00000117: DUP1
00000118: PUSH4 0xaa46f961
0000011d: EQ
0000011e: PUSH2 0x0753
00000121: JUMPI
00000122: DUP1
00000123: PUSH4 0xac35caee
00000128: EQ
00000129: PUSH2 0x077f
0000012c: JUMPI
0000012d: DUP1
0000012e: PUSH4 0xbe9b42d2
00000133: EQ
00000134: PUSH2 0x07ee
00000137: JUMPI
00000138: DUP1
00000139: PUSH4 0xdd62ed3e
0000013e: EQ
0000013f: PUSH2 0x081e
00000142: JUMPI
00000143: DUP1
00000144: PUSH4 0xf2ee5968
00000149: EQ
0000014a: PUSH2 0x0852
0000014d: JUMPI
0000014e: DUP1
0000014f: PUSH4 0xf340fa01
00000154: EQ
00000155: PUSH2 0x0882
00000158: JUMPI
00000159: DUP1
0000015a: PUSH4 0xf359671c
0000015f: EQ
00000160: PUSH2 0x08aa
00000163: JUMPI
00000164: DUP1
00000165: PUSH4 0xf3fef3a3
0000016a: EQ
0000016b: PUSH2 0x0921
0000016e: JUMPI
0000016f: DUP1
00000170: PUSH4 0xf77b8d7a
00000175: EQ
00000176: PUSH2 0x0954
00000179: JUMPI
0000017a: DUP1
0000017b: PUSH4 0xfcbdbaaa
00000180: EQ
00000181: PUSH2 0x0984
00000184: JUMPI
00000185: JUMPDEST
00000186: PUSH2 0x0196
00000189: JUMPDEST
0000018a: PUSH2 0x0192
0000018d: CALLER
0000018e: PUSH2 0x0a72
00000191: JUMP
00000192: JUMPDEST
00000193: POP
00000194: JUMPDEST
00000195: JUMP
00000196: JUMPDEST
00000197: STOP
00000198: JUMPDEST
00000199: CALLVALUE
0000019a: ISZERO
0000019b: PUSH2 0x01a0
0000019e: JUMPI
0000019f: INVALID
000001a0: JUMPDEST
000001a1: PUSH2 0x01a8
000001a4: PUSH2 0x0aa9
000001a7: JUMP
000001a8: JUMPDEST
000001a9: PUSH1 0x40
000001ab: DUP1
000001ac: MLOAD
000001ad: PUSH1 0x01
000001af: PUSH1 0xa0
000001b1: PUSH1 0x02
000001b3: EXP
000001b4: SUB
000001b5: SWAP1
000001b6: SWAP3
000001b7: AND
000001b8: DUP3
000001b9: MSTORE
000001ba: MLOAD
000001bb: SWAP1
000001bc: DUP2
000001bd: SWAP1
000001be: SUB
000001bf: PUSH1 0x20
000001c1: ADD
000001c2: SWAP1
000001c3: RETURN
000001c4: JUMPDEST
000001c5: CALLVALUE
000001c6: ISZERO
000001c7: PUSH2 0x01cc
000001ca: JUMPI
000001cb: INVALID
000001cc: JUMPDEST
000001cd: PUSH2 0x01d4
000001d0: PUSH2 0x0ab9
000001d3: JUMP
000001d4: JUMPDEST
000001d5: PUSH1 0x40
000001d7: DUP1
000001d8: MLOAD
000001d9: PUSH1 0x20
000001db: DUP1
000001dc: DUP3
000001dd: MSTORE
000001de: DUP4
000001df: MLOAD
000001e0: DUP2
000001e1: DUP4
000001e2: ADD
000001e3: MSTORE
000001e4: DUP4
000001e5: MLOAD
000001e6: SWAP2
000001e7: SWAP3
000001e8: DUP4
000001e9: SWAP3
000001ea: SWAP1
000001eb: DUP4
000001ec: ADD
000001ed: SWAP2
000001ee: DUP6
000001ef: ADD
000001f0: SWAP1
000001f1: DUP1
000001f2: DUP4
000001f3: DUP4
000001f4: DUP3
000001f5: ISZERO
000001f6: PUSH2 0x021a
000001f9: JUMPI
000001fa: JUMPDEST
000001fb: DUP1
000001fc: MLOAD
000001fd: DUP3
000001fe: MSTORE
000001ff: PUSH1 0x20
00000201: DUP4
00000202: GT
00000203: ISZERO
00000204: PUSH2 0x021a
00000207: JUMPI
00000208: PUSH1 0x1f
0000020a: NOT
0000020b: SWAP1
0000020c: SWAP3
0000020d: ADD
0000020e: SWAP2
0000020f: PUSH1 0x20
00000211: SWAP2
00000212: DUP3
00000213: ADD
00000214: SWAP2
00000215: ADD
00000216: PUSH2 0x01fa
00000219: JUMP
0000021a: JUMPDEST
0000021b: POP
0000021c: POP
0000021d: POP
0000021e: SWAP1
0000021f: POP
00000220: SWAP1
00000221: DUP2
00000222: ADD
00000223: SWAP1
00000224: PUSH1 0x1f
00000226: AND
00000227: DUP1
00000228: ISZERO
00000229: PUSH2 0x0246
0000022c: JUMPI
0000022d: DUP1
0000022e: DUP3
0000022f: SUB
00000230: DUP1
00000231: MLOAD
00000232: PUSH1 0x01
00000234: DUP4
00000235: PUSH1 0x20
00000237: SUB
00000238: PUSH2 0x0100
0000023b: EXP
0000023c: SUB
0000023d: NOT
0000023e: AND
0000023f: DUP2
00000240: MSTORE
00000241: PUSH1 0x20
00000243: ADD
00000244: SWAP2
00000245: POP
00000246: JUMPDEST
00000247: POP
00000248: SWAP3
00000249: POP
0000024a: POP
0000024b: POP
0000024c: PUSH1 0x40
0000024e: MLOAD
0000024f: DUP1
00000250: SWAP2
00000251: SUB
00000252: SWAP1
00000253: RETURN
00000254: JUMPDEST
00000255: CALLVALUE
00000256: ISZERO
00000257: PUSH2 0x025c
0000025a: JUMPI
0000025b: INVALID
0000025c: JUMPDEST
0000025d: PUSH2 0x0273
00000260: PUSH1 0x01
00000262: PUSH1 0xa0
00000264: PUSH1 0x02
00000266: EXP
00000267: SUB
00000268: PUSH1 0x04
0000026a: CALLDATALOAD
0000026b: AND
0000026c: PUSH1 0x24
0000026e: CALLDATALOAD
0000026f: PUSH2 0x0b44
00000272: JUMP
00000273: JUMPDEST
00000274: PUSH1 0x40
00000276: DUP1
00000277: MLOAD
00000278: SWAP2
00000279: ISZERO
0000027a: ISZERO
0000027b: DUP3
0000027c: MSTORE
0000027d: MLOAD
0000027e: SWAP1
0000027f: DUP2
00000280: SWAP1
00000281: SUB
00000282: PUSH1 0x20
00000284: ADD
00000285: SWAP1
00000286: RETURN
00000287: JUMPDEST
00000288: CALLVALUE
00000289: ISZERO
0000028a: PUSH2 0x028f
0000028d: JUMPI
0000028e: INVALID
0000028f: JUMPDEST
00000290: PUSH2 0x0297
00000293: PUSH2 0x0c34
00000296: JUMP
00000297: JUMPDEST
00000298: PUSH1 0x40
0000029a: DUP1
0000029b: MLOAD
0000029c: SWAP2
0000029d: DUP3
0000029e: MSTORE
0000029f: MLOAD
000002a0: SWAP1
000002a1: DUP2
000002a2: SWAP1
000002a3: SUB
000002a4: PUSH1 0x20
000002a6: ADD
000002a7: SWAP1
000002a8: RETURN
000002a9: JUMPDEST
000002aa: CALLVALUE
000002ab: ISZERO
000002ac: PUSH2 0x02b1
000002af: JUMPI
000002b0: INVALID
000002b1: JUMPDEST
000002b2: PUSH2 0x0273
000002b5: PUSH1 0x04
000002b7: CALLDATALOAD
000002b8: PUSH2 0x0ca6
000002bb: JUMP
000002bc: JUMPDEST
000002bd: PUSH1 0x40
000002bf: DUP1
000002c0: MLOAD
000002c1: SWAP2
000002c2: ISZERO
000002c3: ISZERO
000002c4: DUP3
000002c5: MSTORE
000002c6: MLOAD
000002c7: SWAP1
000002c8: DUP2
000002c9: SWAP1
000002ca: SUB
000002cb: PUSH1 0x20
000002cd: ADD
000002ce: SWAP1
000002cf: RETURN
000002d0: JUMPDEST
000002d1: CALLVALUE
000002d2: ISZERO
000002d3: PUSH2 0x02d8
000002d6: JUMPI
000002d7: INVALID
000002d8: JUMPDEST
000002d9: PUSH2 0x0196
000002dc: PUSH1 0x01
000002de: PUSH1 0xa0
000002e0: PUSH1 0x02
000002e2: EXP
000002e3: SUB
000002e4: PUSH1 0x04
000002e6: CALLDATALOAD
000002e7: DUP2
000002e8: AND
000002e9: SWAP1
000002ea: PUSH1 0x24
000002ec: CALLDATALOAD
000002ed: AND
000002ee: PUSH1 0x44
000002f0: CALLDATALOAD
000002f1: PUSH2 0x0d8a
000002f4: JUMP
000002f5: JUMPDEST
000002f6: STOP
000002f7: JUMPDEST
000002f8: CALLVALUE
000002f9: ISZERO
000002fa: PUSH2 0x02ff
000002fd: JUMPI
000002fe: INVALID
000002ff: JUMPDEST
00000300: PUSH2 0x0273
00000303: PUSH1 0x01
00000305: PUSH1 0xa0
00000307: PUSH1 0x02
00000309: EXP
0000030a: SUB
0000030b: PUSH1 0x04
0000030d: CALLDATALOAD
0000030e: DUP2
0000030f: AND
00000310: SWAP1
00000311: PUSH1 0x24
00000313: CALLDATALOAD
00000314: AND
00000315: PUSH1 0x44
00000317: CALLDATALOAD
00000318: PUSH2 0x0df4
0000031b: JUMP
0000031c: JUMPDEST
0000031d: PUSH1 0x40
0000031f: DUP1
00000320: MLOAD
00000321: SWAP2
00000322: ISZERO
00000323: ISZERO
00000324: DUP3
00000325: MSTORE
00000326: MLOAD
00000327: SWAP1
00000328: DUP2
00000329: SWAP1
0000032a: SUB
0000032b: PUSH1 0x20
0000032d: ADD
0000032e: SWAP1
0000032f: RETURN
00000330: JUMPDEST
00000331: CALLVALUE
00000332: ISZERO
00000333: PUSH2 0x0338
00000336: JUMPI
00000337: INVALID
00000338: JUMPDEST
00000339: PUSH2 0x0196
0000033c: PUSH1 0x01
0000033e: PUSH1 0xa0
00000340: PUSH1 0x02
00000342: EXP
00000343: SUB
00000344: PUSH1 0x04
00000346: CALLDATALOAD
00000347: DUP2
00000348: AND
00000349: SWAP1
0000034a: PUSH1 0x24
0000034c: CALLDATALOAD
0000034d: AND
0000034e: PUSH1 0x44
00000350: CALLDATALOAD
00000351: PUSH2 0x0e1c
00000354: JUMP
00000355: JUMPDEST
00000356: STOP
00000357: JUMPDEST
00000358: CALLVALUE
00000359: ISZERO
0000035a: PUSH2 0x035f
0000035d: JUMPI
0000035e: INVALID
0000035f: JUMPDEST
00000360: PUSH2 0x0367
00000363: PUSH2 0x0e86
00000366: JUMP
00000367: JUMPDEST
00000368: PUSH1 0x40
0000036a: DUP1
0000036b: MLOAD
0000036c: PUSH1 0xff
0000036e: SWAP1
0000036f: SWAP3
00000370: AND
00000371: DUP3
00000372: MSTORE
00000373: MLOAD
00000374: SWAP1
00000375: DUP2
00000376: SWAP1
00000377: SUB
00000378: PUSH1 0x20
0000037a: ADD
0000037b: SWAP1
0000037c: RETURN
0000037d: JUMPDEST
0000037e: CALLVALUE
0000037f: ISZERO
00000380: PUSH2 0x0385
00000383: JUMPI
00000384: INVALID
00000385: JUMPDEST
00000386: PUSH2 0x01a8
00000389: PUSH2 0x0ef8
0000038c: JUMP
0000038d: JUMPDEST
0000038e: PUSH1 0x40
00000390: DUP1
00000391: MLOAD
00000392: PUSH1 0x01
00000394: PUSH1 0xa0
00000396: PUSH1 0x02
00000398: EXP
00000399: SUB
0000039a: SWAP1
0000039b: SWAP3
0000039c: AND
0000039d: DUP3
0000039e: MSTORE
0000039f: MLOAD
000003a0: SWAP1
000003a1: DUP2
000003a2: SWAP1
000003a3: SUB
000003a4: PUSH1 0x20
000003a6: ADD
000003a7: SWAP1
000003a8: RETURN
000003a9: JUMPDEST
000003aa: PUSH1 0x40
000003ac: DUP1
000003ad: MLOAD
000003ae: PUSH1 0x20
000003b0: PUSH1 0x04
000003b2: PUSH1 0x24
000003b4: DUP1
000003b5: CALLDATALOAD
000003b6: DUP3
000003b7: DUP2
000003b8: ADD
000003b9: CALLDATALOAD
000003ba: PUSH1 0x1f
000003bc: DUP2
000003bd: ADD
000003be: DUP6
000003bf: SWAP1
000003c0: DIV
000003c1: DUP6
000003c2: MUL
000003c3: DUP7
000003c4: ADD
000003c5: DUP6
000003c6: ADD
000003c7: SWAP1
000003c8: SWAP7
000003c9: MSTORE
000003ca: DUP6
000003cb: DUP6
000003cc: MSTORE
000003cd: PUSH2 0x0273
000003d0: SWAP6
000003d1: DUP4
000003d2: CALLDATALOAD
000003d3: PUSH1 0x01
000003d5: PUSH1 0xa0
000003d7: PUSH1 0x02
000003d9: EXP
000003da: SUB
000003db: AND
000003dc: SWAP6
000003dd: SWAP4
000003de: SWAP5
000003df: PUSH1 0x44
000003e1: SWAP5
000003e2: SWAP4
000003e3: SWAP3
000003e4: SWAP1
000003e5: SWAP3
000003e6: ADD
000003e7: SWAP2
000003e8: DUP2
000003e9: SWAP1
000003ea: DUP5
000003eb: ADD
000003ec: DUP4
000003ed: DUP3
000003ee: DUP1
000003ef: DUP3
000003f0: DUP5
000003f1: CALLDATACOPY
000003f2: POP
000003f3: SWAP5
000003f4: SWAP7
000003f5: POP
000003f6: PUSH2 0x0f07
000003f9: SWAP6
000003fa: POP
000003fb: POP
000003fc: POP
000003fd: POP
000003fe: POP
000003ff: POP
00000400: JUMP
00000401: JUMPDEST
00000402: PUSH1 0x40
00000404: DUP1
00000405: MLOAD
00000406: SWAP2
00000407: ISZERO
00000408: ISZERO
00000409: DUP3
0000040a: MSTORE
0000040b: MLOAD
0000040c: SWAP1
0000040d: DUP2
0000040e: SWAP1
0000040f: SUB
00000410: PUSH1 0x20
00000412: ADD
00000413: SWAP1
00000414: RETURN
00000415: JUMPDEST
00000416: CALLVALUE
00000417: ISZERO
00000418: PUSH2 0x041d
0000041b: JUMPI
0000041c: INVALID
0000041d: JUMPDEST
0000041e: PUSH1 0x40
00000420: DUP1
00000421: MLOAD
00000422: PUSH1 0x20
00000424: PUSH1 0x04
00000426: PUSH1 0x64
00000428: CALLDATALOAD
00000429: DUP2
0000042a: DUP2
0000042b: ADD
0000042c: CALLDATALOAD
0000042d: PUSH1 0x1f
0000042f: DUP2
00000430: ADD
00000431: DUP5
00000432: SWAP1
00000433: DIV
00000434: DUP5
00000435: MUL
00000436: DUP6
00000437: ADD
00000438: DUP5
00000439: ADD
0000043a: SWAP1
0000043b: SWAP6
0000043c: MSTORE
0000043d: DUP5
0000043e: DUP5
0000043f: MSTORE
00000440: PUSH2 0x0273
00000443: SWAP5
00000444: DUP3
00000445: CALLDATALOAD
00000446: PUSH1 0x01
00000448: PUSH1 0xa0
0000044a: PUSH1 0x02
0000044c: EXP
0000044d: SUB
0000044e: SWAP1
0000044f: DUP2
00000450: AND
00000451: SWAP6
00000452: PUSH1 0x24
00000454: DUP1
00000455: CALLDATALOAD
00000456: SWAP1
00000457: SWAP3
00000458: AND
00000459: SWAP6
0000045a: PUSH1 0x44
0000045c: CALLDATALOAD
0000045d: SWAP6
0000045e: SWAP5
0000045f: PUSH1 0x84
00000461: SWAP5
00000462: SWAP3
00000463: SWAP4
00000464: ADD
00000465: SWAP2
00000466: SWAP1
00000467: DUP2
00000468: SWAP1
00000469: DUP5
0000046a: ADD
0000046b: DUP4
0000046c: DUP3
0000046d: DUP1
0000046e: DUP3
0000046f: DUP5
00000470: CALLDATACOPY
00000471: POP
00000472: SWAP5
00000473: SWAP7
00000474: POP
00000475: PUSH2 0x114c
00000478: SWAP6
00000479: POP
0000047a: POP
0000047b: POP
0000047c: POP
0000047d: POP
0000047e: POP
0000047f: JUMP
00000480: JUMPDEST
00000481: PUSH1 0x40
00000483: DUP1
00000484: MLOAD
00000485: SWAP2
00000486: ISZERO
00000487: ISZERO
00000488: DUP3
00000489: MSTORE
0000048a: MLOAD
0000048b: SWAP1
0000048c: DUP2
0000048d: SWAP1
0000048e: SUB
0000048f: PUSH1 0x20
00000491: ADD
00000492: SWAP1
00000493: RETURN
00000494: JUMPDEST
00000495: CALLVALUE
00000496: ISZERO
00000497: PUSH2 0x049c
0000049a: JUMPI
0000049b: INVALID
0000049c: JUMPDEST
0000049d: PUSH2 0x0297
000004a0: PUSH1 0x01
000004a2: PUSH1 0xa0
000004a4: PUSH1 0x02
000004a6: EXP
000004a7: SUB
000004a8: PUSH1 0x04
000004aa: CALLDATALOAD
000004ab: AND
000004ac: PUSH2 0x1303
000004af: JUMP
000004b0: JUMPDEST
000004b1: PUSH1 0x40
000004b3: DUP1
000004b4: MLOAD
000004b5: SWAP2
000004b6: DUP3
000004b7: MSTORE
000004b8: MLOAD
000004b9: SWAP1
000004ba: DUP2
000004bb: SWAP1
000004bc: SUB
000004bd: PUSH1 0x20
000004bf: ADD
000004c0: SWAP1
000004c1: RETURN
000004c2: JUMPDEST
000004c3: PUSH2 0x0273
000004c6: PUSH1 0x04
000004c8: CALLDATALOAD
000004c9: PUSH1 0x24
000004cb: CALLDATALOAD
000004cc: PUSH2 0x137e
000004cf: JUMP
000004d0: JUMPDEST
000004d1: PUSH1 0x40
000004d3: DUP1
000004d4: MLOAD
000004d5: SWAP2
000004d6: ISZERO
000004d7: ISZERO
000004d8: DUP3
000004d9: MSTORE
000004da: MLOAD
000004db: SWAP1
000004dc: DUP2
000004dd: SWAP1
000004de: SUB
000004df: PUSH1 0x20
000004e1: ADD
000004e2: SWAP1
000004e3: RETURN
000004e4: JUMPDEST
000004e5: PUSH1 0x40
000004e7: DUP1
000004e8: MLOAD
000004e9: PUSH1 0x20
000004eb: PUSH1 0x04
000004ed: PUSH1 0x44
000004ef: CALLDATALOAD
000004f0: DUP2
000004f1: DUP2
000004f2: ADD
000004f3: CALLDATALOAD
000004f4: PUSH1 0x1f
000004f6: DUP2
000004f7: ADD
000004f8: DUP5
000004f9: SWAP1
000004fa: DIV
000004fb: DUP5
000004fc: MUL
000004fd: DUP6
000004fe: ADD
000004ff: DUP5
00000500: ADD
00000501: SWAP1
00000502: SWAP6
00000503: MSTORE
00000504: DUP5
00000505: DUP5
00000506: MSTORE
00000507: PUSH2 0x0273
0000050a: SWAP5
0000050b: DUP3
0000050c: CALLDATALOAD
0000050d: SWAP5
0000050e: PUSH1 0x24
00000510: DUP1
00000511: CALLDATALOAD
00000512: SWAP6
00000513: PUSH1 0x64
00000515: SWAP5
00000516: SWAP3
00000517: SWAP4
00000518: SWAP2
00000519: SWAP1
0000051a: SWAP3
0000051b: ADD
0000051c: SWAP2
0000051d: DUP2
0000051e: SWAP1
0000051f: DUP5
00000520: ADD
00000521: DUP4
00000522: DUP3
00000523: DUP1
00000524: DUP3
00000525: DUP5
00000526: CALLDATACOPY
00000527: POP
00000528: SWAP5
00000529: SWAP7
0000052a: POP
0000052b: PUSH2 0x13a4
0000052e: SWAP6
0000052f: POP
00000530: POP
00000531: POP
00000532: POP
00000533: POP
00000534: POP
00000535: JUMP
00000536: JUMPDEST
00000537: PUSH1 0x40
00000539: DUP1
0000053a: MLOAD
0000053b: SWAP2
0000053c: ISZERO
0000053d: ISZERO
0000053e: DUP3
0000053f: MSTORE
00000540: MLOAD
00000541: SWAP1
00000542: DUP2
00000543: SWAP1
00000544: SUB
00000545: PUSH1 0x20
00000547: ADD
00000548: SWAP1
00000549: RETURN
0000054a: JUMPDEST
0000054b: CALLVALUE
0000054c: ISZERO
0000054d: PUSH2 0x0552
00000550: JUMPI
00000551: INVALID
00000552: JUMPDEST
00000553: PUSH2 0x0273
00000556: PUSH1 0x04
00000558: CALLDATALOAD
00000559: ISZERO
0000055a: ISZERO
0000055b: PUSH2 0x13c5
0000055e: JUMP
0000055f: JUMPDEST
00000560: PUSH1 0x40
00000562: DUP1
00000563: MLOAD
00000564: SWAP2
00000565: ISZERO
00000566: ISZERO
00000567: DUP3
00000568: MSTORE
00000569: MLOAD
0000056a: SWAP1
0000056b: DUP2
0000056c: SWAP1
0000056d: SUB
0000056e: PUSH1 0x20
00000570: ADD
00000571: SWAP1
00000572: RETURN
00000573: JUMPDEST
00000574: CALLVALUE
00000575: ISZERO
00000576: PUSH2 0x057b
00000579: JUMPI
0000057a: INVALID
0000057b: JUMPDEST
0000057c: PUSH2 0x01d4
0000057f: PUSH2 0x1451
00000582: JUMP
00000583: JUMPDEST
00000584: PUSH1 0x40
00000586: DUP1
00000587: MLOAD
00000588: PUSH1 0x20
0000058a: DUP1
0000058b: DUP3
0000058c: MSTORE
0000058d: DUP4
0000058e: MLOAD
0000058f: DUP2
00000590: DUP4
00000591: ADD
00000592: MSTORE
00000593: DUP4
00000594: MLOAD
00000595: SWAP2
00000596: SWAP3
00000597: DUP4
00000598: SWAP3
00000599: SWAP1
0000059a: DUP4
0000059b: ADD
0000059c: SWAP2
0000059d: DUP6
0000059e: ADD
0000059f: SWAP1
000005a0: DUP1
000005a1: DUP4
000005a2: DUP4
000005a3: DUP3
000005a4: ISZERO
000005a5: PUSH2 0x021a
000005a8: JUMPI
000005a9: JUMPDEST
000005aa: DUP1
000005ab: MLOAD
000005ac: DUP3
000005ad: MSTORE
000005ae: PUSH1 0x20
000005b0: DUP4
000005b1: GT
000005b2: ISZERO
000005b3: PUSH2 0x021a
000005b6: JUMPI
000005b7: PUSH1 0x1f
000005b9: NOT
000005ba: SWAP1
000005bb: SWAP3
000005bc: ADD
000005bd: SWAP2
000005be: PUSH1 0x20
000005c0: SWAP2
000005c1: DUP3
000005c2: ADD
000005c3: SWAP2
000005c4: ADD
000005c5: PUSH2 0x01fa
000005c8: JUMP
000005c9: JUMPDEST
000005ca: POP
000005cb: POP
000005cc: POP
000005cd: SWAP1
000005ce: POP
000005cf: SWAP1
000005d0: DUP2
000005d1: ADD
000005d2: SWAP1
000005d3: PUSH1 0x1f
000005d5: AND
000005d6: DUP1
000005d7: ISZERO
000005d8: PUSH2 0x0246
000005db: JUMPI
000005dc: DUP1
000005dd: DUP3
000005de: SUB
000005df: DUP1
000005e0: MLOAD
000005e1: PUSH1 0x01
000005e3: DUP4
000005e4: PUSH1 0x20
000005e6: SUB
000005e7: PUSH2 0x0100
000005ea: EXP
000005eb: SUB
000005ec: NOT
000005ed: AND
000005ee: DUP2
000005ef: MSTORE
000005f0: PUSH1 0x20
000005f2: ADD
000005f3: SWAP2
000005f4: POP
000005f5: JUMPDEST
000005f6: POP
000005f7: SWAP3
000005f8: POP
000005f9: POP
000005fa: POP
000005fb: PUSH1 0x40
000005fd: MLOAD
000005fe: DUP1
000005ff: SWAP2
00000600: SUB
00000601: SWAP1
00000602: RETURN
00000603: JUMPDEST
00000604: CALLVALUE
00000605: ISZERO
00000606: PUSH2 0x060b
00000609: JUMPI
0000060a: INVALID
0000060b: JUMPDEST
0000060c: PUSH2 0x0273
0000060f: PUSH1 0x01
00000611: PUSH1 0xa0
00000613: PUSH1 0x02
00000615: EXP
00000616: SUB
00000617: PUSH1 0x04
00000619: CALLDATALOAD
0000061a: AND
0000061b: PUSH2 0x14df
0000061e: JUMP
0000061f: JUMPDEST
00000620: PUSH1 0x40
00000622: DUP1
00000623: MLOAD
00000624: SWAP2
00000625: ISZERO
00000626: ISZERO
00000627: DUP3
00000628: MSTORE
00000629: MLOAD
0000062a: SWAP1
0000062b: DUP2
0000062c: SWAP1
0000062d: SUB
0000062e: PUSH1 0x20
00000630: ADD
00000631: SWAP1
00000632: RETURN
00000633: JUMPDEST
00000634: CALLVALUE
00000635: ISZERO
00000636: PUSH2 0x063b
00000639: JUMPI
0000063a: INVALID
0000063b: JUMPDEST
0000063c: PUSH2 0x0273
0000063f: PUSH2 0x14f4
00000642: JUMP
00000643: JUMPDEST
00000644: PUSH1 0x40
00000646: DUP1
00000647: MLOAD
00000648: SWAP2
00000649: ISZERO
0000064a: ISZERO
0000064b: DUP3
0000064c: MSTORE
0000064d: MLOAD
0000064e: SWAP1
0000064f: DUP2
00000650: SWAP1
00000651: SUB
00000652: PUSH1 0x20
00000654: ADD
00000655: SWAP1
00000656: RETURN
00000657: JUMPDEST
00000658: CALLVALUE
00000659: ISZERO
0000065a: PUSH2 0x065f
0000065d: JUMPI
0000065e: INVALID
0000065f: JUMPDEST
00000660: PUSH1 0x40
00000662: DUP1
00000663: MLOAD
00000664: PUSH1 0x20
00000666: PUSH1 0x04
00000668: PUSH1 0x64
0000066a: CALLDATALOAD
0000066b: DUP2
0000066c: DUP2
0000066d: ADD
0000066e: CALLDATALOAD
0000066f: PUSH1 0x1f
00000671: DUP2
00000672: ADD
00000673: DUP5
00000674: SWAP1
00000675: DIV
00000676: DUP5
00000677: MUL
00000678: DUP6
00000679: ADD
0000067a: DUP5
0000067b: ADD
0000067c: SWAP1
0000067d: SWAP6
0000067e: MSTORE
0000067f: DUP5
00000680: DUP5
00000681: MSTORE
00000682: PUSH2 0x0273
00000685: SWAP5
00000686: DUP3
00000687: CALLDATALOAD
00000688: PUSH1 0x01
0000068a: PUSH1 0xa0
0000068c: PUSH1 0x02
0000068e: EXP
0000068f: SUB
00000690: AND
00000691: SWAP5
00000692: PUSH1 0x24
00000694: DUP1
00000695: CALLDATALOAD
00000696: SWAP6
00000697: PUSH1 0x44
00000699: CALLDATALOAD
0000069a: SWAP6
0000069b: SWAP5
0000069c: PUSH1 0x84
0000069e: SWAP5
0000069f: SWAP3
000006a0: ADD
000006a1: SWAP2
000006a2: SWAP1
000006a3: DUP2
000006a4: SWAP1
000006a5: DUP5
000006a6: ADD
000006a7: DUP4
000006a8: DUP3
000006a9: DUP1
000006aa: DUP3
000006ab: DUP5
000006ac: CALLDATACOPY
000006ad: POP
000006ae: SWAP5
000006af: SWAP7
000006b0: POP
000006b1: PUSH2 0x157e
000006b4: SWAP6
000006b5: POP
000006b6: POP
000006b7: POP
000006b8: POP
000006b9: POP
000006ba: POP
000006bb: JUMP
000006bc: JUMPDEST
000006bd: PUSH1 0x40
000006bf: DUP1
000006c0: MLOAD
000006c1: SWAP2
000006c2: ISZERO
000006c3: ISZERO
000006c4: DUP3
000006c5: MSTORE
000006c6: MLOAD
000006c7: SWAP1
000006c8: DUP2
000006c9: SWAP1
000006ca: SUB
000006cb: PUSH1 0x20
000006cd: ADD
000006ce: SWAP1
000006cf: RETURN
000006d0: JUMPDEST
000006d1: CALLVALUE
000006d2: ISZERO
000006d3: PUSH2 0x06d8
000006d6: JUMPI
000006d7: INVALID
000006d8: JUMPDEST
000006d9: PUSH2 0x0273
000006dc: PUSH1 0x01
000006de: PUSH1 0xa0
000006e0: PUSH1 0x02
000006e2: EXP
000006e3: SUB
000006e4: PUSH1 0x04
000006e6: CALLDATALOAD
000006e7: AND
000006e8: PUSH1 0x24
000006ea: CALLDATALOAD
000006eb: PUSH1 0x44
000006ed: CALLDATALOAD
000006ee: PUSH2 0x1726
000006f1: JUMP
000006f2: JUMPDEST
000006f3: PUSH1 0x40
000006f5: DUP1
000006f6: MLOAD
000006f7: SWAP2
000006f8: ISZERO
000006f9: ISZERO
000006fa: DUP3
000006fb: MSTORE
000006fc: MLOAD
000006fd: SWAP1
000006fe: DUP2
000006ff: SWAP1
00000700: SUB
00000701: PUSH1 0x20
00000703: ADD
00000704: SWAP1
00000705: RETURN
00000706: JUMPDEST
00000707: CALLVALUE
00000708: ISZERO
00000709: PUSH2 0x070e
0000070c: JUMPI
0000070d: INVALID
0000070e: JUMPDEST
0000070f: PUSH2 0x0297
00000712: PUSH2 0x174e
00000715: JUMP
00000716: JUMPDEST
00000717: PUSH1 0x40
00000719: DUP1
0000071a: MLOAD
0000071b: SWAP2
0000071c: DUP3
0000071d: MSTORE
0000071e: MLOAD
0000071f: SWAP1
00000720: DUP2
00000721: SWAP1
00000722: SUB
00000723: PUSH1 0x20
00000725: ADD
00000726: SWAP1
00000727: RETURN
00000728: JUMPDEST
00000729: PUSH2 0x0273
0000072c: PUSH1 0x01
0000072e: PUSH1 0xa0
00000730: PUSH1 0x02
00000732: EXP
00000733: SUB
00000734: PUSH1 0x04
00000736: CALLDATALOAD
00000737: AND
00000738: PUSH1 0x24
0000073a: CALLDATALOAD
0000073b: PUSH2 0x1754
0000073e: JUMP
0000073f: JUMPDEST
00000740: PUSH1 0x40
00000742: DUP1
00000743: MLOAD
00000744: SWAP2
00000745: ISZERO
00000746: ISZERO
00000747: DUP3
00000748: MSTORE
00000749: MLOAD
0000074a: SWAP1
0000074b: DUP2
0000074c: SWAP1
0000074d: SUB
0000074e: PUSH1 0x20
00000750: ADD
00000751: SWAP1
00000752: RETURN
00000753: JUMPDEST
00000754: CALLVALUE
00000755: ISZERO
00000756: PUSH2 0x075b
00000759: JUMPI
0000075a: INVALID
0000075b: JUMPDEST
0000075c: PUSH2 0x01a8
0000075f: PUSH2 0x177a
00000762: JUMP
00000763: JUMPDEST
00000764: PUSH1 0x40
00000766: DUP1
00000767: MLOAD
00000768: PUSH1 0x01
0000076a: PUSH1 0xa0
0000076c: PUSH1 0x02
0000076e: EXP
0000076f: SUB
00000770: SWAP1
00000771: SWAP3
00000772: AND
00000773: DUP3
00000774: MSTORE
00000775: MLOAD
00000776: SWAP1
00000777: DUP2
00000778: SWAP1
00000779: SUB
0000077a: PUSH1 0x20
0000077c: ADD
0000077d: SWAP1
0000077e: RETURN
0000077f: JUMPDEST
00000780: PUSH1 0x40
00000782: DUP1
00000783: MLOAD
00000784: PUSH1 0x20
00000786: PUSH1 0x04
00000788: PUSH1 0x44
0000078a: CALLDATALOAD
0000078b: DUP2
0000078c: DUP2
0000078d: ADD
0000078e: CALLDATALOAD
0000078f: PUSH1 0x1f
00000791: DUP2
00000792: ADD
00000793: DUP5
00000794: SWAP1
00000795: DIV
00000796: DUP5
00000797: MUL
00000798: DUP6
00000799: ADD
0000079a: DUP5
0000079b: ADD
0000079c: SWAP1
0000079d: SWAP6
0000079e: MSTORE
0000079f: DUP5
000007a0: DUP5
000007a1: MSTORE
000007a2: PUSH2 0x0273
000007a5: SWAP5
000007a6: DUP3
000007a7: CALLDATALOAD
000007a8: PUSH1 0x01
000007aa: PUSH1 0xa0
000007ac: PUSH1 0x02
000007ae: EXP
000007af: SUB
000007b0: AND
000007b1: SWAP5
000007b2: PUSH1 0x24
000007b4: DUP1
000007b5: CALLDATALOAD
000007b6: SWAP6
000007b7: PUSH1 0x64
000007b9: SWAP5
000007ba: SWAP3
000007bb: SWAP4
000007bc: SWAP2
000007bd: SWAP1
000007be: SWAP3
000007bf: ADD
000007c0: SWAP2
000007c1: DUP2
000007c2: SWAP1
000007c3: DUP5
000007c4: ADD
000007c5: DUP4
000007c6: DUP3
000007c7: DUP1
000007c8: DUP3
000007c9: DUP5
000007ca: CALLDATACOPY
000007cb: POP
000007cc: SWAP5
000007cd: SWAP7
000007ce: POP
000007cf: PUSH2 0x1789
000007d2: SWAP6
000007d3: POP
000007d4: POP
000007d5: POP
000007d6: POP
000007d7: POP
000007d8: POP
000007d9: JUMP
000007da: JUMPDEST
000007db: PUSH1 0x40
000007dd: DUP1
000007de: MLOAD
000007df: SWAP2
000007e0: ISZERO
000007e1: ISZERO
000007e2: DUP3
000007e3: MSTORE
000007e4: MLOAD
000007e5: SWAP1
000007e6: DUP2
000007e7: SWAP1
000007e8: SUB
000007e9: PUSH1 0x20
000007eb: ADD
000007ec: SWAP1
000007ed: RETURN
000007ee: JUMPDEST
000007ef: CALLVALUE
000007f0: ISZERO
000007f1: PUSH2 0x07f6
000007f4: JUMPI
000007f5: INVALID
000007f6: JUMPDEST
000007f7: PUSH2 0x0273
000007fa: PUSH1 0x01
000007fc: PUSH1 0xa0
000007fe: PUSH1 0x02
00000800: EXP
00000801: SUB
00000802: PUSH1 0x04
00000804: CALLDATALOAD
00000805: AND
00000806: PUSH2 0x17aa
00000809: JUMP
0000080a: JUMPDEST
0000080b: PUSH1 0x40
0000080d: DUP1
0000080e: MLOAD
0000080f: SWAP2
00000810: ISZERO
00000811: ISZERO
00000812: DUP3
00000813: MSTORE
00000814: MLOAD
00000815: SWAP1
00000816: DUP2
00000817: SWAP1
00000818: SUB
00000819: PUSH1 0x20
0000081b: ADD
0000081c: SWAP1
0000081d: RETURN
0000081e: JUMPDEST
0000081f: CALLVALUE
00000820: ISZERO
00000821: PUSH2 0x0826
00000824: JUMPI
00000825: INVALID
00000826: JUMPDEST
00000827: PUSH2 0x0297
0000082a: PUSH1 0x01
0000082c: PUSH1 0xa0
0000082e: PUSH1 0x02
00000830: EXP
00000831: SUB
00000832: PUSH1 0x04
00000834: CALLDATALOAD
00000835: DUP2
00000836: AND
00000837: SWAP1
00000838: PUSH1 0x24
0000083a: CALLDATALOAD
0000083b: AND
0000083c: PUSH2 0x17f2
0000083f: JUMP
00000840: JUMPDEST
00000841: PUSH1 0x40
00000843: DUP1
00000844: MLOAD
00000845: SWAP2
00000846: DUP3
00000847: MSTORE
00000848: MLOAD
00000849: SWAP1
0000084a: DUP2
0000084b: SWAP1
0000084c: SUB
0000084d: PUSH1 0x20
0000084f: ADD
00000850: SWAP1
00000851: RETURN
00000852: JUMPDEST
00000853: CALLVALUE
00000854: ISZERO
00000855: PUSH2 0x085a
00000858: JUMPI
00000859: INVALID
0000085a: JUMPDEST
0000085b: PUSH2 0x0273
0000085e: PUSH1 0x01
00000860: PUSH1 0xa0
00000862: PUSH1 0x02
00000864: EXP
00000865: SUB
00000866: PUSH1 0x04
00000868: CALLDATALOAD
00000869: AND
0000086a: PUSH2 0x1876
0000086d: JUMP
0000086e: JUMPDEST
0000086f: PUSH1 0x40
00000871: DUP1
00000872: MLOAD
00000873: SWAP2
00000874: ISZERO
00000875: ISZERO
00000876: DUP3
00000877: MSTORE
00000878: MLOAD
00000879: SWAP1
0000087a: DUP2
0000087b: SWAP1
0000087c: SUB
0000087d: PUSH1 0x20
0000087f: ADD
00000880: SWAP1
00000881: RETURN
00000882: JUMPDEST
00000883: PUSH2 0x0273
00000886: PUSH1 0x01
00000888: PUSH1 0xa0
0000088a: PUSH1 0x02
0000088c: EXP
0000088d: SUB
0000088e: PUSH1 0x04
00000890: CALLDATALOAD
00000891: AND
00000892: PUSH2 0x0a72
00000895: JUMP
00000896: JUMPDEST
00000897: PUSH1 0x40
00000899: DUP1
0000089a: MLOAD
0000089b: SWAP2
0000089c: ISZERO
0000089d: ISZERO
0000089e: DUP3
0000089f: MSTORE
000008a0: MLOAD
000008a1: SWAP1
000008a2: DUP2
000008a3: SWAP1
000008a4: SUB
000008a5: PUSH1 0x20
000008a7: ADD
000008a8: SWAP1
000008a9: RETURN
000008aa: JUMPDEST
000008ab: CALLVALUE
000008ac: ISZERO
000008ad: PUSH2 0x08b2
000008b0: JUMPI
000008b1: INVALID
000008b2: JUMPDEST
000008b3: PUSH1 0x40
000008b5: DUP1
000008b6: MLOAD
000008b7: PUSH1 0x20
000008b9: PUSH1 0x04
000008bb: PUSH1 0x44
000008bd: CALLDATALOAD
000008be: DUP2
000008bf: DUP2
000008c0: ADD
000008c1: CALLDATALOAD
000008c2: PUSH1 0x1f
000008c4: DUP2
000008c5: ADD
000008c6: DUP5
000008c7: SWAP1
000008c8: DIV
000008c9: DUP5
000008ca: MUL
000008cb: DUP6
000008cc: ADD
000008cd: DUP5
000008ce: ADD
000008cf: SWAP1
000008d0: SWAP6
000008d1: MSTORE
000008d2: DUP5
000008d3: DUP5
000008d4: MSTORE
000008d5: PUSH2 0x0273
000008d8: SWAP5
000008d9: DUP3
000008da: CALLDATALOAD
000008db: PUSH1 0x01
000008dd: PUSH1 0xa0
000008df: PUSH1 0x02
000008e1: EXP
000008e2: SUB
000008e3: AND
000008e4: SWAP5
000008e5: PUSH1 0x24
000008e7: DUP1
000008e8: CALLDATALOAD
000008e9: SWAP6
000008ea: PUSH1 0x64
000008ec: SWAP5
000008ed: SWAP3
000008ee: SWAP4
000008ef: SWAP2
000008f0: SWAP1
000008f1: SWAP3
000008f2: ADD
000008f3: SWAP2
000008f4: DUP2
000008f5: SWAP1
000008f6: DUP5
000008f7: ADD
000008f8: DUP4
000008f9: DUP3
000008fa: DUP1
000008fb: DUP3
000008fc: DUP5
000008fd: CALLDATACOPY
000008fe: POP
000008ff: SWAP5
00000900: SWAP7
00000901: POP
00000902: PUSH2 0x188b
00000905: SWAP6
00000906: POP
00000907: POP
00000908: POP
00000909: POP
0000090a: POP
0000090b: POP
0000090c: JUMP
0000090d: JUMPDEST
0000090e: PUSH1 0x40
00000910: DUP1
00000911: MLOAD
00000912: SWAP2
00000913: ISZERO
00000914: ISZERO
00000915: DUP3
00000916: MSTORE
00000917: MLOAD
00000918: SWAP1
00000919: DUP2
0000091a: SWAP1
0000091b: SUB
0000091c: PUSH1 0x20
0000091e: ADD
0000091f: SWAP1
00000920: RETURN
00000921: JUMPDEST
00000922: CALLVALUE
00000923: ISZERO
00000924: PUSH2 0x0929
00000927: JUMPI
00000928: INVALID
00000929: JUMPDEST
0000092a: PUSH2 0x0273
0000092d: PUSH1 0x01
0000092f: PUSH1 0xa0
00000931: PUSH1 0x02
00000933: EXP
00000934: SUB
00000935: PUSH1 0x04
00000937: CALLDATALOAD
00000938: AND
00000939: PUSH1 0x24
0000093b: CALLDATALOAD
0000093c: PUSH2 0x18ff
0000093f: JUMP
00000940: JUMPDEST
00000941: PUSH1 0x40
00000943: DUP1
00000944: MLOAD
00000945: SWAP2
00000946: ISZERO
00000947: ISZERO
00000948: DUP3
00000949: MSTORE
0000094a: MLOAD
0000094b: SWAP1
0000094c: DUP2
0000094d: SWAP1
0000094e: SUB
0000094f: PUSH1 0x20
00000951: ADD
00000952: SWAP1
00000953: RETURN
00000954: JUMPDEST
00000955: CALLVALUE
00000956: ISZERO
00000957: PUSH2 0x095c
0000095a: JUMPI
0000095b: INVALID
0000095c: JUMPDEST
0000095d: PUSH2 0x0273
00000960: PUSH1 0x01
00000962: PUSH1 0xa0
00000964: PUSH1 0x02
00000966: EXP
00000967: SUB
00000968: PUSH1 0x04
0000096a: CALLDATALOAD
0000096b: AND
0000096c: PUSH2 0x1925
0000096f: JUMP
00000970: JUMPDEST
00000971: PUSH1 0x40
00000973: DUP1
00000974: MLOAD
00000975: SWAP2
00000976: ISZERO
00000977: ISZERO
00000978: DUP3
00000979: MSTORE
0000097a: MLOAD
0000097b: SWAP1
0000097c: DUP2
0000097d: SWAP1
0000097e: SUB
0000097f: PUSH1 0x20
00000981: ADD
00000982: SWAP1
00000983: RETURN
00000984: JUMPDEST
00000985: CALLVALUE
00000986: ISZERO
00000987: PUSH2 0x098c
0000098a: JUMPI
0000098b: INVALID
0000098c: JUMPDEST
0000098d: PUSH1 0x40
0000098f: DUP1
00000990: MLOAD
00000991: PUSH1 0x20
00000993: PUSH1 0x04
00000995: PUSH1 0x24
00000997: DUP1
00000998: CALLDATALOAD
00000999: DUP3
0000099a: DUP2
0000099b: ADD
0000099c: CALLDATALOAD
0000099d: PUSH1 0x1f
0000099f: DUP2
000009a0: ADD
000009a1: DUP6
000009a2: SWAP1
000009a3: DIV
000009a4: DUP6
000009a5: MUL
000009a6: DUP7
000009a7: ADD
000009a8: DUP6
000009a9: ADD
000009aa: SWAP1
000009ab: SWAP7
000009ac: MSTORE
000009ad: DUP6
000009ae: DUP6
000009af: MSTORE
000009b0: PUSH2 0x0273
000009b3: SWAP6
000009b4: DUP4
000009b5: CALLDATALOAD
000009b6: PUSH1 0x01
000009b8: PUSH1 0xa0
000009ba: PUSH1 0x02
000009bc: EXP
000009bd: SUB
000009be: AND
000009bf: SWAP6
000009c0: SWAP4
000009c1: SWAP5
000009c2: PUSH1 0x44
000009c4: SWAP5
000009c5: SWAP4
000009c6: SWAP3
000009c7: SWAP1
000009c8: SWAP3
000009c9: ADD
000009ca: SWAP2
000009cb: DUP2
000009cc: SWAP1
000009cd: DUP5
000009ce: ADD
000009cf: DUP4
000009d0: DUP3
000009d1: DUP1
000009d2: DUP3
000009d3: DUP5
000009d4: CALLDATACOPY
000009d5: POP
000009d6: POP
000009d7: PUSH1 0x40
000009d9: DUP1
000009da: MLOAD
000009db: PUSH1 0x20
000009dd: PUSH1 0x1f
000009df: DUP10
000009e0: CALLDATALOAD
000009e1: DUP12
000009e2: ADD
000009e3: DUP1
000009e4: CALLDATALOAD
000009e5: SWAP2
000009e6: DUP3
000009e7: ADD
000009e8: DUP4
000009e9: SWAP1
000009ea: DIV
000009eb: DUP4
000009ec: MUL
000009ed: DUP5
000009ee: ADD
000009ef: DUP4
000009f0: ADD
000009f1: SWAP1
000009f2: SWAP5
000009f3: MSTORE
000009f4: DUP1
000009f5: DUP4
000009f6: MSTORE
000009f7: SWAP8
000009f8: SWAP10
000009f9: SWAP9
000009fa: DUP2
000009fb: ADD
000009fc: SWAP8
000009fd: SWAP2
000009fe: SWAP7
000009ff: POP
00000a00: SWAP2
00000a01: DUP3
00000a02: ADD
00000a03: SWAP5
00000a04: POP
00000a05: SWAP3
00000a06: POP
00000a07: DUP3
00000a08: SWAP2
00000a09: POP
00000a0a: DUP5
00000a0b: ADD
00000a0c: DUP4
00000a0d: DUP3
00000a0e: DUP1
00000a0f: DUP3
00000a10: DUP5
00000a11: CALLDATACOPY
00000a12: POP
00000a13: POP
00000a14: PUSH1 0x40
00000a16: DUP1
00000a17: MLOAD
00000a18: PUSH1 0x20
00000a1a: PUSH1 0x1f
00000a1c: DUP10
00000a1d: CALLDATALOAD
00000a1e: DUP12
00000a1f: ADD
00000a20: DUP1
00000a21: CALLDATALOAD
00000a22: SWAP2
00000a23: DUP3
00000a24: ADD
00000a25: DUP4
00000a26: SWAP1
00000a27: DIV
00000a28: DUP4
00000a29: MUL
00000a2a: DUP5
00000a2b: ADD
00000a2c: DUP4
00000a2d: ADD
00000a2e: SWAP1
00000a2f: SWAP5
00000a30: MSTORE
00000a31: DUP1
00000a32: DUP4
00000a33: MSTORE
00000a34: SWAP8
00000a35: SWAP10
00000a36: SWAP9
00000a37: DUP2
00000a38: ADD
00000a39: SWAP8
00000a3a: SWAP2
00000a3b: SWAP7
00000a3c: POP
00000a3d: SWAP2
00000a3e: DUP3
00000a3f: ADD
00000a40: SWAP5
00000a41: POP
00000a42: SWAP3
00000a43: POP
00000a44: DUP3
00000a45: SWAP2
00000a46: POP
00000a47: DUP5
00000a48: ADD
00000a49: DUP4
00000a4a: DUP3
00000a4b: DUP1
00000a4c: DUP3
00000a4d: DUP5
00000a4e: CALLDATACOPY
00000a4f: POP
00000a50: SWAP5
00000a51: SWAP7
00000a52: POP
00000a53: PUSH2 0x1965
00000a56: SWAP6
00000a57: POP
00000a58: POP
00000a59: POP
00000a5a: POP
00000a5b: POP
00000a5c: POP
00000a5d: JUMP
00000a5e: JUMPDEST
00000a5f: PUSH1 0x40
00000a61: DUP1
00000a62: MLOAD
00000a63: SWAP2
00000a64: ISZERO
00000a65: ISZERO
00000a66: DUP3
00000a67: MSTORE
00000a68: MLOAD
00000a69: SWAP1
00000a6a: DUP2
00000a6b: SWAP1
00000a6c: SUB
00000a6d: PUSH1 0x20
00000a6f: ADD
00000a70: SWAP1
00000a71: RETURN
00000a72: JUMPDEST
00000a73: PUSH1 0x00
00000a75: PUSH2 0x0aa1
00000a78: DUP3
00000a79: PUSH1 0x40
00000a7b: PUSH1 0x40
00000a7d: MLOAD
00000a7e: SWAP1
00000a7f: DUP2
00000a80: ADD
00000a81: PUSH1 0x40
00000a83: MSTORE
00000a84: DUP1
00000a85: PUSH1 0x07
00000a87: DUP2
00000a88: MSTORE
00000a89: PUSH1 0x20
00000a8b: ADD
00000a8c: PUSH1 0xca
00000a8e: PUSH1 0x02
00000a90: EXP
00000a91: PUSH7 0x11195c1bdcda5d
00000a99: MUL
00000a9a: DUP2
00000a9b: MSTORE
00000a9c: POP
00000a9d: PUSH2 0x0f07
00000aa0: JUMP
00000aa1: JUMPDEST
00000aa2: SWAP1
00000aa3: POP
00000aa4: JUMPDEST
00000aa5: SWAP2
00000aa6: SWAP1
00000aa7: POP
00000aa8: JUMP
00000aa9: JUMPDEST
00000aaa: PUSH1 0x00
00000aac: SLOAD
00000aad: PUSH1 0x01
00000aaf: PUSH1 0xa0
00000ab1: PUSH1 0x02
00000ab3: EXP
00000ab4: SUB
00000ab5: AND
00000ab6: JUMPDEST
00000ab7: SWAP1
00000ab8: JUMP
00000ab9: JUMPDEST
00000aba: PUSH1 0x02
00000abc: DUP1
00000abd: SLOAD
00000abe: PUSH1 0x40
00000ac0: DUP1
00000ac1: MLOAD
00000ac2: PUSH1 0x20
00000ac4: PUSH1 0x01
00000ac6: DUP5
00000ac7: AND
00000ac8: ISZERO
00000ac9: PUSH2 0x0100
00000acc: MUL
00000acd: PUSH1 0x00
00000acf: NOT
00000ad0: ADD
00000ad1: SWAP1
00000ad2: SWAP4
00000ad3: AND
00000ad4: DUP5
00000ad5: SWAP1
00000ad6: DIV
00000ad7: PUSH1 0x1f
00000ad9: DUP2
00000ada: ADD
00000adb: DUP5
00000adc: SWAP1
00000add: DIV
00000ade: DUP5
00000adf: MUL
00000ae0: DUP3
00000ae1: ADD
00000ae2: DUP5
00000ae3: ADD
00000ae4: SWAP1
00000ae5: SWAP3
00000ae6: MSTORE
00000ae7: DUP2
00000ae8: DUP2
00000ae9: MSTORE
00000aea: SWAP3
00000aeb: SWAP2
00000aec: DUP4
00000aed: ADD
00000aee: DUP3
00000aef: DUP3
00000af0: DUP1
00000af1: ISZERO
00000af2: PUSH2 0x0b3c
00000af5: JUMPI
00000af6: DUP1
00000af7: PUSH1 0x1f
00000af9: LT
00000afa: PUSH2 0x0b11
00000afd: JUMPI
00000afe: PUSH2 0x0100
00000b01: DUP1
00000b02: DUP4
00000b03: SLOAD
00000b04: DIV
00000b05: MUL
00000b06: DUP4
00000b07: MSTORE
00000b08: SWAP2
00000b09: PUSH1 0x20
00000b0b: ADD
00000b0c: SWAP2
00000b0d: PUSH2 0x0b3c
00000b10: JUMP
00000b11: JUMPDEST
00000b12: DUP3
00000b13: ADD
00000b14: SWAP2
00000b15: SWAP1
00000b16: PUSH1 0x00
00000b18: MSTORE
00000b19: PUSH1 0x20
00000b1b: PUSH1 0x00
00000b1d: KECCAK256
00000b1e: SWAP1
00000b1f: JUMPDEST
00000b20: DUP2
00000b21: SLOAD
00000b22: DUP2
00000b23: MSTORE
00000b24: SWAP1
00000b25: PUSH1 0x01
00000b27: ADD
00000b28: SWAP1
00000b29: PUSH1 0x20
00000b2b: ADD
00000b2c: DUP1
00000b2d: DUP4
00000b2e: GT
00000b2f: PUSH2 0x0b1f
00000b32: JUMPI
00000b33: DUP3
00000b34: SWAP1
00000b35: SUB
00000b36: PUSH1 0x1f
00000b38: AND
00000b39: DUP3
00000b3a: ADD
00000b3b: SWAP2
00000b3c: JUMPDEST
00000b3d: POP
00000b3e: POP
00000b3f: POP
00000b40: POP
00000b41: POP
00000b42: DUP2
00000b43: JUMP
00000b44: JUMPDEST
00000b45: PUSH1 0x01
00000b47: PUSH1 0xa0
00000b49: PUSH1 0x02
00000b4b: EXP
00000b4c: SUB
00000b4d: CALLER
00000b4e: AND
00000b4f: PUSH1 0x00
00000b51: SWAP1
00000b52: DUP2
00000b53: MSTORE
00000b54: PUSH1 0x05
00000b56: PUSH1 0x20
00000b58: MSTORE
00000b59: PUSH1 0x40
00000b5b: DUP2
00000b5c: KECCAK256
00000b5d: SLOAD
00000b5e: PUSH1 0xff
00000b60: AND
00000b61: ISZERO
00000b62: ISZERO
00000b63: PUSH2 0x0ba2
00000b66: JUMPI
00000b67: CALLER
00000b68: PUSH1 0x01
00000b6a: PUSH1 0xa0
00000b6c: PUSH1 0x02
00000b6e: EXP
00000b6f: SUB
00000b70: AND
00000b71: PUSH1 0x00
00000b73: SWAP1
00000b74: DUP2
00000b75: MSTORE
00000b76: PUSH1 0x05
00000b78: PUSH1 0x20
00000b7a: SWAP1
00000b7b: DUP2
00000b7c: MSTORE
00000b7d: PUSH1 0x40
00000b7f: DUP1
00000b80: DUP4
00000b81: KECCAK256
00000b82: DUP1
00000b83: SLOAD
00000b84: PUSH1 0x01
00000b86: PUSH1 0xff
00000b88: NOT
00000b89: SWAP2
00000b8a: DUP3
00000b8b: AND
00000b8c: DUP2
00000b8d: OR
00000b8e: SWAP1
00000b8f: SWAP3
00000b90: SSTORE
00000b91: PUSH1 0x04
00000b93: SWAP1
00000b94: SWAP4
00000b95: MSTORE
00000b96: SWAP3
00000b97: KECCAK256
00000b98: DUP1
00000b99: SLOAD
00000b9a: SWAP1
00000b9b: SWAP2
00000b9c: AND
00000b9d: SWAP1
00000b9e: SWAP2
00000b9f: OR
00000ba0: SWAP1
00000ba1: SSTORE
00000ba2: JUMPDEST
00000ba3: PUSH1 0x00
00000ba5: DUP1
00000ba6: SLOAD
00000ba7: PUSH1 0x01
00000ba9: SLOAD
00000baa: PUSH1 0x40
00000bac: DUP1
00000bad: MLOAD
00000bae: PUSH1 0x20
00000bb0: SWAP1
00000bb1: DUP2
00000bb2: ADD
00000bb3: DUP6
00000bb4: SWAP1
00000bb5: MSTORE
00000bb6: DUP2
00000bb7: MLOAD
00000bb8: PUSH1 0xe0
00000bba: PUSH1 0x02
00000bbc: EXP
00000bbd: PUSH4 0x14712e2f
00000bc2: MUL
00000bc3: DUP2
00000bc4: MSTORE
00000bc5: PUSH1 0x01
00000bc7: PUSH1 0xa0
00000bc9: PUSH1 0x02
00000bcb: EXP
00000bcc: SUB
00000bcd: DUP10
00000bce: DUP2
00000bcf: AND
00000bd0: PUSH1 0x04
00000bd2: DUP4
00000bd3: ADD
00000bd4: MSTORE
00000bd5: PUSH1 0x24
00000bd7: DUP3
00000bd8: ADD
00000bd9: DUP10
00000bda: SWAP1
00000bdb: MSTORE
00000bdc: PUSH1 0x44
00000bde: DUP3
00000bdf: ADD
00000be0: SWAP5
00000be1: SWAP1
00000be2: SWAP5
00000be3: MSTORE
00000be4: CALLER
00000be5: DUP5
00000be6: AND
00000be7: PUSH1 0x64
00000be9: DUP3
00000bea: ADD
00000beb: MSTORE
00000bec: SWAP2
00000bed: MLOAD
00000bee: SWAP3
00000bef: SWAP1
00000bf0: SWAP4
00000bf1: AND
00000bf2: SWAP4
00000bf3: PUSH4 0x14712e2f
00000bf8: SWAP4
00000bf9: PUSH1 0x84
00000bfb: DUP1
00000bfc: DUP5
00000bfd: ADD
00000bfe: SWAP5
00000bff: SWAP2
00000c00: SWAP4
00000c01: SWAP2
00000c02: SWAP3
00000c03: SWAP2
00000c04: DUP4
00000c05: SWAP1
00000c06: SUB
00000c07: ADD
00000c08: SWAP1
00000c09: DUP3
00000c0a: SWAP1
00000c0b: DUP8
00000c0c: DUP1
00000c0d: EXTCODESIZE
00000c0e: ISZERO
00000c0f: ISZERO
00000c10: PUSH2 0x0c15
00000c13: JUMPI
00000c14: INVALID
00000c15: JUMPDEST
00000c16: PUSH2 0x02c6
00000c19: GAS
00000c1a: SUB
00000c1b: CALL
00000c1c: ISZERO
00000c1d: ISZERO
00000c1e: PUSH2 0x0c23
00000c21: JUMPI
00000c22: INVALID
00000c23: JUMPDEST
00000c24: POP
00000c25: POP
00000c26: PUSH1 0x40
00000c28: MLOAD
00000c29: MLOAD
00000c2a: SWAP2
00000c2b: POP
00000c2c: POP
00000c2d: JUMPDEST
00000c2e: JUMPDEST
00000c2f: SWAP3
00000c30: SWAP2
00000c31: POP
00000c32: POP
00000c33: JUMP
00000c34: JUMPDEST
00000c35: PUSH1 0x00
00000c37: DUP1
00000c38: SLOAD
00000c39: PUSH1 0x01
00000c3b: SLOAD
00000c3c: PUSH1 0x40
00000c3e: DUP1
00000c3f: MLOAD
00000c40: PUSH1 0x20
00000c42: SWAP1
00000c43: DUP2
00000c44: ADD
00000c45: DUP6
00000c46: SWAP1
00000c47: MSTORE
00000c48: DUP2
00000c49: MLOAD
00000c4a: PUSH1 0xe0
00000c4c: PUSH1 0x02
00000c4e: EXP
00000c4f: PUSH4 0xb524abcf
00000c54: MUL
00000c55: DUP2
00000c56: MSTORE
00000c57: PUSH1 0x04
00000c59: DUP2
00000c5a: ADD
00000c5b: SWAP4
00000c5c: SWAP1
00000c5d: SWAP4
00000c5e: MSTORE
00000c5f: SWAP1
00000c60: MLOAD
00000c61: PUSH1 0x01
00000c63: PUSH1 0xa0
00000c65: PUSH1 0x02
00000c67: EXP
00000c68: SUB
00000c69: SWAP1
00000c6a: SWAP4
00000c6b: AND
00000c6c: SWAP3
00000c6d: PUSH4 0xb524abcf
00000c72: SWAP3
00000c73: PUSH1 0x24
00000c75: DUP1
00000c76: DUP3
00000c77: ADD
00000c78: SWAP4
00000c79: SWAP3
00000c7a: SWAP2
00000c7b: DUP3
00000c7c: SWAP1
00000c7d: SUB
00000c7e: ADD
00000c7f: DUP2
00000c80: DUP8
00000c81: DUP8
00000c82: DUP1
00000c83: EXTCODESIZE
00000c84: ISZERO
00000c85: ISZERO
00000c86: PUSH2 0x0c8b
00000c89: JUMPI
00000c8a: INVALID
00000c8b: JUMPDEST
00000c8c: PUSH2 0x02c6
00000c8f: GAS
00000c90: SUB
00000c91: CALL
00000c92: ISZERO
00000c93: ISZERO
00000c94: PUSH2 0x0c99
00000c97: JUMPI
00000c98: INVALID
00000c99: JUMPDEST
00000c9a: POP
00000c9b: POP
00000c9c: PUSH1 0x40
00000c9e: MLOAD
00000c9f: MLOAD
00000ca0: SWAP2
00000ca1: POP
00000ca2: POP
00000ca3: JUMPDEST
00000ca4: SWAP1
00000ca5: JUMP
00000ca6: JUMPDEST
00000ca7: PUSH1 0x00
00000ca9: DUP1
00000caa: SLOAD
00000cab: PUSH1 0x40
00000cad: DUP1
00000cae: MLOAD
00000caf: PUSH1 0x20
00000cb1: SWAP1
00000cb2: DUP2
00000cb3: ADD
00000cb4: DUP5
00000cb5: SWAP1
00000cb6: MSTORE
00000cb7: DUP2
00000cb8: MLOAD
00000cb9: PUSH1 0xe0
00000cbb: PUSH1 0x02
00000cbd: EXP
00000cbe: PUSH4 0xa0f15b87
00000cc3: MUL
00000cc4: DUP2
00000cc5: MSTORE
00000cc6: SWAP2
00000cc7: MLOAD
00000cc8: PUSH2 0x0aa1
00000ccb: SWAP4
00000ccc: PUSH1 0x01
00000cce: PUSH1 0xa0
00000cd0: PUSH1 0x02
00000cd2: EXP
00000cd3: SUB
00000cd4: AND
00000cd5: SWAP3
00000cd6: PUSH4 0xa0f15b87
00000cdb: SWAP3
00000cdc: PUSH1 0x04
00000cde: DUP1
00000cdf: DUP4
00000ce0: ADD
00000ce1: SWAP4
00000ce2: SWAP2
00000ce3: SWAP3
00000ce4: DUP3
00000ce5: SWAP1
00000ce6: SUB
00000ce7: ADD
00000ce8: DUP2
00000ce9: DUP9
00000cea: DUP8
00000ceb: DUP1
00000cec: EXTCODESIZE
00000ced: ISZERO
00000cee: ISZERO
00000cef: PUSH2 0x0cf4
00000cf2: JUMPI
00000cf3: INVALID
00000cf4: JUMPDEST
00000cf5: PUSH2 0x02c6
00000cf8: GAS
00000cf9: SUB
00000cfa: CALL
00000cfb: ISZERO
00000cfc: ISZERO
00000cfd: PUSH2 0x0d02
00000d00: JUMPI
00000d01: INVALID
00000d02: JUMPDEST
00000d03: POP
00000d04: POP
00000d05: PUSH1 0x40
00000d07: MLOAD
00000d08: MLOAD
00000d09: PUSH1 0x01
00000d0b: PUSH1 0xa0
00000d0d: PUSH1 0x02
00000d0f: EXP
00000d10: SUB
00000d11: AND
00000d12: SWAP1
00000d13: POP
00000d14: PUSH4 0x95829738
00000d19: PUSH2 0x0d21
00000d1c: DUP6
00000d1d: PUSH2 0x1c5f
00000d20: JUMP
00000d21: JUMPDEST
00000d22: PUSH1 0x00
00000d24: PUSH1 0x40
00000d26: MLOAD
00000d27: PUSH1 0x20
00000d29: ADD
00000d2a: MSTORE
00000d2b: PUSH1 0x40
00000d2d: MLOAD
00000d2e: DUP3
00000d2f: PUSH4 0xffffffff
00000d34: AND
00000d35: PUSH1 0xe0
00000d37: PUSH1 0x02
00000d39: EXP
00000d3a: MUL
00000d3b: DUP2
00000d3c: MSTORE
00000d3d: PUSH1 0x04
00000d3f: ADD
00000d40: DUP1
00000d41: DUP3
00000d42: PUSH1 0x00
00000d44: NOT
00000d45: AND
00000d46: PUSH1 0x00
00000d48: NOT
00000d49: AND
00000d4a: DUP2
00000d4b: MSTORE
00000d4c: PUSH1 0x20
00000d4e: ADD
00000d4f: SWAP2
00000d50: POP
00000d51: POP
00000d52: PUSH1 0x20
00000d54: PUSH1 0x40
00000d56: MLOAD
00000d57: DUP1
00000d58: DUP4
00000d59: SUB
00000d5a: DUP2
00000d5b: PUSH1 0x00
00000d5d: DUP8
00000d5e: DUP1
00000d5f: EXTCODESIZE
00000d60: ISZERO
00000d61: ISZERO
00000d62: PUSH2 0x0d67
00000d65: JUMPI
00000d66: INVALID
00000d67: JUMPDEST
00000d68: PUSH2 0x02c6
00000d6b: GAS
00000d6c: SUB
00000d6d: CALL
00000d6e: ISZERO
00000d6f: ISZERO
00000d70: PUSH2 0x0d75
00000d73: JUMPI
00000d74: INVALID
00000d75: JUMPDEST
00000d76: POP
00000d77: POP
00000d78: PUSH1 0x40
00000d7a: MLOAD
00000d7b: MLOAD
00000d7c: SWAP1
00000d7d: POP
00000d7e: PUSH2 0x17aa
00000d81: JUMP
00000d82: JUMPDEST
00000d83: SWAP1
00000d84: POP
00000d85: JUMPDEST
00000d86: SWAP2
00000d87: SWAP1
00000d88: POP
00000d89: JUMP
00000d8a: JUMPDEST
00000d8b: PUSH1 0x00
00000d8d: SLOAD
00000d8e: CALLER
00000d8f: PUSH1 0x01
00000d91: PUSH1 0xa0
00000d93: PUSH1 0x02
00000d95: EXP
00000d96: SUB
00000d97: SWAP1
00000d98: DUP2
00000d99: AND
00000d9a: SWAP2
00000d9b: AND
00000d9c: EQ
00000d9d: ISZERO
00000d9e: PUSH2 0x0ded
00000da1: JUMPI
00000da2: DUP2
00000da3: PUSH1 0x01
00000da5: PUSH1 0xa0
00000da7: PUSH1 0x02
00000da9: EXP
00000daa: SUB
00000dab: AND
00000dac: DUP4
00000dad: PUSH1 0x01
00000daf: PUSH1 0xa0
00000db1: PUSH1 0x02
00000db3: EXP
00000db4: SUB
00000db5: AND
00000db6: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00000dd7: DUP4
00000dd8: PUSH1 0x40
00000dda: MLOAD
00000ddb: DUP1
00000ddc: DUP3
00000ddd: DUP2
00000dde: MSTORE
00000ddf: PUSH1 0x20
00000de1: ADD
00000de2: SWAP2
00000de3: POP
00000de4: POP
00000de5: PUSH1 0x40
00000de7: MLOAD
00000de8: DUP1
00000de9: SWAP2
00000dea: SUB
00000deb: SWAP1
00000dec: LOG3
00000ded: JUMPDEST
00000dee: JUMPDEST
00000def: JUMPDEST
00000df0: POP
00000df1: POP
00000df2: POP
00000df3: JUMP
00000df4: JUMPDEST
00000df5: PUSH1 0x00
00000df7: PUSH2 0x0e12
00000dfa: DUP5
00000dfb: DUP5
00000dfc: DUP5
00000dfd: PUSH1 0x20
00000dff: PUSH1 0x40
00000e01: MLOAD
00000e02: SWAP1
00000e03: DUP2
00000e04: ADD
00000e05: PUSH1 0x40
00000e07: MSTORE
00000e08: DUP1
00000e09: PUSH1 0x00
00000e0b: DUP2
00000e0c: MSTORE
00000e0d: POP
00000e0e: PUSH2 0x114c
00000e11: JUMP
00000e12: JUMPDEST
00000e13: SWAP1
00000e14: POP
00000e15: JUMPDEST
00000e16: SWAP4
00000e17: SWAP3
00000e18: POP
00000e19: POP
00000e1a: POP
00000e1b: JUMP
00000e1c: JUMPDEST
00000e1d: PUSH1 0x00
00000e1f: SLOAD
00000e20: CALLER
00000e21: PUSH1 0x01
00000e23: PUSH1 0xa0
00000e25: PUSH1 0x02
00000e27: EXP
00000e28: SUB
00000e29: SWAP1
00000e2a: DUP2
00000e2b: AND
00000e2c: SWAP2
00000e2d: AND
00000e2e: EQ
00000e2f: ISZERO
00000e30: PUSH2 0x0ded
00000e33: JUMPI
00000e34: DUP2
00000e35: PUSH1 0x01
00000e37: PUSH1 0xa0
00000e39: PUSH1 0x02
00000e3b: EXP
00000e3c: SUB
00000e3d: AND
00000e3e: DUP4
00000e3f: PUSH1 0x01
00000e41: PUSH1 0xa0
00000e43: PUSH1 0x02
00000e45: EXP
00000e46: SUB
00000e47: AND
00000e48: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00000e69: DUP4
00000e6a: PUSH1 0x40
00000e6c: MLOAD
00000e6d: DUP1
00000e6e: DUP3
00000e6f: DUP2
00000e70: MSTORE
00000e71: PUSH1 0x20
00000e73: ADD
00000e74: SWAP2
00000e75: POP
00000e76: POP
00000e77: PUSH1 0x40
00000e79: MLOAD
00000e7a: DUP1
00000e7b: SWAP2
00000e7c: SUB
00000e7d: SWAP1
00000e7e: LOG3
00000e7f: JUMPDEST
00000e80: JUMPDEST
00000e81: JUMPDEST
00000e82: POP
00000e83: POP
00000e84: POP
00000e85: JUMP
00000e86: JUMPDEST
00000e87: PUSH1 0x00
00000e89: DUP1
00000e8a: SLOAD
00000e8b: PUSH1 0x01
00000e8d: SLOAD
00000e8e: PUSH1 0x40
00000e90: DUP1
00000e91: MLOAD
00000e92: PUSH1 0x20
00000e94: SWAP1
00000e95: DUP2
00000e96: ADD
00000e97: DUP6
00000e98: SWAP1
00000e99: MSTORE
00000e9a: DUP2
00000e9b: MLOAD
00000e9c: PUSH1 0xe4
00000e9e: PUSH1 0x02
00000ea0: EXP
00000ea1: PUSH4 0x0dc86e6f
00000ea6: MUL
00000ea7: DUP2
00000ea8: MSTORE
00000ea9: PUSH1 0x04
00000eab: DUP2
00000eac: ADD
00000ead: SWAP4
00000eae: SWAP1
00000eaf: SWAP4
00000eb0: MSTORE
00000eb1: SWAP1
00000eb2: MLOAD
00000eb3: PUSH1 0x01
00000eb5: PUSH1 0xa0
00000eb7: PUSH1 0x02
00000eb9: EXP
00000eba: SUB
00000ebb: SWAP1
00000ebc: SWAP4
00000ebd: AND
00000ebe: SWAP3
00000ebf: PUSH4 0xdc86e6f0
00000ec4: SWAP3
00000ec5: PUSH1 0x24
00000ec7: DUP1
00000ec8: DUP3
00000ec9: ADD
00000eca: SWAP4
00000ecb: SWAP3
00000ecc: SWAP2
00000ecd: DUP3
00000ece: SWAP1
00000ecf: SUB
00000ed0: ADD
00000ed1: DUP2
00000ed2: DUP8
00000ed3: DUP8
00000ed4: DUP1
00000ed5: EXTCODESIZE
00000ed6: ISZERO
00000ed7: ISZERO
00000ed8: PUSH2 0x0c8b
00000edb: JUMPI
00000edc: INVALID
00000edd: JUMPDEST
00000ede: PUSH2 0x02c6
00000ee1: GAS
00000ee2: SUB
00000ee3: CALL
00000ee4: ISZERO
00000ee5: ISZERO
00000ee6: PUSH2 0x0c99
00000ee9: JUMPI
00000eea: INVALID
00000eeb: JUMPDEST
00000eec: POP
00000eed: POP
00000eee: PUSH1 0x40
00000ef0: MLOAD
00000ef1: MLOAD
00000ef2: SWAP2
00000ef3: POP
00000ef4: POP
00000ef5: JUMPDEST
00000ef6: SWAP1
00000ef7: JUMP
00000ef8: JUMPDEST
00000ef9: PUSH1 0x00
00000efb: SLOAD
00000efc: PUSH1 0x01
00000efe: PUSH1 0xa0
00000f00: PUSH1 0x02
00000f02: EXP
00000f03: SUB
00000f04: AND
00000f05: DUP2
00000f06: JUMP
00000f07: JUMPDEST
00000f08: PUSH1 0x01
00000f0a: PUSH1 0xa0
00000f0c: PUSH1 0x02
00000f0e: EXP
00000f0f: SUB
00000f10: CALLER
00000f11: AND
00000f12: PUSH1 0x00
00000f14: SWAP1
00000f15: DUP2
00000f16: MSTORE
00000f17: PUSH1 0x05
00000f19: PUSH1 0x20
00000f1b: MSTORE
00000f1c: PUSH1 0x40
00000f1e: DUP2
00000f1f: KECCAK256
00000f20: SLOAD
00000f21: PUSH1 0xff
00000f23: AND
00000f24: ISZERO
00000f25: ISZERO
00000f26: PUSH2 0x0f65
00000f29: JUMPI
00000f2a: CALLER
00000f2b: PUSH1 0x01
00000f2d: PUSH1 0xa0
00000f2f: PUSH1 0x02
00000f31: EXP
00000f32: SUB
00000f33: AND
00000f34: PUSH1 0x00
00000f36: SWAP1
00000f37: DUP2
00000f38: MSTORE
00000f39: PUSH1 0x05
00000f3b: PUSH1 0x20
00000f3d: SWAP1
00000f3e: DUP2
00000f3f: MSTORE
00000f40: PUSH1 0x40
00000f42: DUP1
00000f43: DUP4
00000f44: KECCAK256
00000f45: DUP1
00000f46: SLOAD
00000f47: PUSH1 0x01
00000f49: PUSH1 0xff
00000f4b: NOT
00000f4c: SWAP2
00000f4d: DUP3
00000f4e: AND
00000f4f: DUP2
00000f50: OR
00000f51: SWAP1
00000f52: SWAP3
00000f53: SSTORE
00000f54: PUSH1 0x04
00000f56: SWAP1
00000f57: SWAP4
00000f58: MSTORE
00000f59: SWAP3
00000f5a: KECCAK256
00000f5b: DUP1
00000f5c: SLOAD
00000f5d: SWAP1
00000f5e: SWAP2
00000f5f: AND
00000f60: SWAP1
00000f61: SWAP2
00000f62: OR
00000f63: SWAP1
00000f64: SSTORE
00000f65: JUMPDEST
00000f66: CALLVALUE
00000f67: ISZERO
00000f68: ISZERO
00000f69: PUSH2 0x0f74
00000f6c: JUMPI
00000f6d: POP
00000f6e: PUSH1 0x00
00000f70: PUSH2 0x0c2d
00000f73: JUMP
00000f74: JUMPDEST
00000f75: ADDRESS
00000f76: PUSH1 0x01
00000f78: PUSH1 0xa0
00000f7a: PUSH1 0x02
00000f7c: EXP
00000f7d: SUB
00000f7e: AND
00000f7f: DUP4
00000f80: PUSH1 0x01
00000f82: PUSH1 0xa0
00000f84: PUSH1 0x02
00000f86: EXP
00000f87: SUB
00000f88: AND
00000f89: EQ
00000f8a: ISZERO
00000f8b: PUSH2 0x0f9d
00000f8e: JUMPI
00000f8f: PUSH2 0x0f96
00000f92: PUSH2 0x1d04
00000f95: JUMP
00000f96: JUMPDEST
00000f97: SWAP1
00000f98: POP
00000f99: PUSH2 0x0c2d
00000f9c: JUMP
00000f9d: JUMPDEST
00000f9e: CALLVALUE
00000f9f: PUSH2 0x0fa7
00000fa2: ADDRESS
00000fa3: PUSH2 0x1303
00000fa6: JUMP
00000fa7: JUMPDEST
00000fa8: LT
00000fa9: ISZERO
00000faa: PUSH2 0x102f
00000fad: JUMPI
00000fae: PUSH1 0x00
00000fb0: SLOAD
00000fb1: PUSH1 0x01
00000fb3: SLOAD
00000fb4: PUSH1 0x01
00000fb6: PUSH1 0xa0
00000fb8: PUSH1 0x02
00000fba: EXP
00000fbb: SUB
00000fbc: SWAP1
00000fbd: SWAP2
00000fbe: AND
00000fbf: SWAP1
00000fc0: PUSH4 0xe0873c06
00000fc5: SWAP1
00000fc6: PUSH2 0x0fce
00000fc9: ADDRESS
00000fca: PUSH2 0x1303
00000fcd: JUMP
00000fce: JUMPDEST
00000fcf: CALLVALUE
00000fd0: SUB
00000fd1: PUSH1 0x00
00000fd3: PUSH1 0x40
00000fd5: MLOAD
00000fd6: PUSH1 0x20
00000fd8: ADD
00000fd9: MSTORE
00000fda: PUSH1 0x40
00000fdc: MLOAD
00000fdd: DUP4
00000fde: PUSH4 0xffffffff
00000fe3: AND
00000fe4: PUSH1 0xe0
00000fe6: PUSH1 0x02
00000fe8: EXP
00000fe9: MUL
00000fea: DUP2
00000feb: MSTORE
00000fec: PUSH1 0x04
00000fee: ADD
00000fef: DUP1
00000ff0: DUP4
00000ff1: PUSH1 0x00
00000ff3: NOT
00000ff4: AND
00000ff5: PUSH1 0x00
00000ff7: NOT
00000ff8: AND
00000ff9: DUP2
00000ffa: MSTORE
00000ffb: PUSH1 0x20
00000ffd: ADD
00000ffe: DUP3
00000fff: DUP2
00001000: MSTORE
00001001: PUSH1 0x20
00001003: ADD
00001004: SWAP3
00001005: POP
00001006: POP
00001007: POP
00001008: PUSH1 0x20
0000100a: PUSH1 0x40
0000100c: MLOAD
0000100d: DUP1
0000100e: DUP4
0000100f: SUB
00001010: DUP2
00001011: PUSH1 0x00
00001013: DUP8
00001014: DUP1
00001015: EXTCODESIZE
00001016: ISZERO
00001017: ISZERO
00001018: PUSH2 0x101d
0000101b: JUMPI
0000101c: INVALID
0000101d: JUMPDEST
0000101e: PUSH2 0x02c6
00001021: GAS
00001022: SUB
00001023: CALL
00001024: ISZERO
00001025: ISZERO
00001026: PUSH2 0x102b
00001029: JUMPI
0000102a: INVALID
0000102b: JUMPDEST
0000102c: POP
0000102d: POP
0000102e: POP
0000102f: JUMPDEST
00001030: PUSH1 0x00
00001032: DUP1
00001033: SLOAD
00001034: PUSH1 0x01
00001036: SLOAD
00001037: PUSH1 0x40
00001039: DUP1
0000103a: MLOAD
0000103b: PUSH1 0x20
0000103d: SWAP1
0000103e: DUP2
0000103f: ADD
00001040: SWAP5
00001041: SWAP1
00001042: SWAP5
00001043: MSTORE
00001044: MLOAD
00001045: PUSH1 0xe1
00001047: PUSH1 0x02
00001049: EXP
0000104a: PUSH4 0x0b0ffb31
0000104f: MUL
00001050: DUP2
00001051: MSTORE
00001052: ADDRESS
00001053: PUSH1 0x01
00001055: PUSH1 0xa0
00001057: PUSH1 0x02
00001059: EXP
0000105a: SUB
0000105b: DUP2
0000105c: DUP2
0000105d: AND
0000105e: PUSH1 0x04
00001060: DUP5
00001061: ADD
00001062: DUP2
00001063: DUP2
00001064: MSTORE
00001065: DUP11
00001066: DUP4
00001067: AND
00001068: PUSH1 0x24
0000106a: DUP7
0000106b: ADD
0000106c: MSTORE
0000106d: CALLVALUE
0000106e: PUSH1 0x44
00001070: DUP7
00001071: ADD
00001072: DUP2
00001073: SWAP1
00001074: MSTORE
00001075: PUSH1 0x64
00001077: DUP7
00001078: ADD
00001079: DUP8
0000107a: SWAP1
0000107b: MSTORE
0000107c: PUSH1 0xa4
0000107e: DUP7
0000107f: ADD
00001080: SWAP3
00001081: SWAP1
00001082: SWAP3
00001083: MSTORE
00001084: PUSH1 0xc0
00001086: PUSH1 0x84
00001088: DUP7
00001089: ADD
0000108a: SWAP1
0000108b: DUP2
0000108c: MSTORE
0000108d: DUP11
0000108e: MLOAD
0000108f: PUSH1 0xc4
00001091: DUP8
00001092: ADD
00001093: MSTORE
00001094: DUP11
00001095: MLOAD
00001096: SWAP4
00001097: SWAP1
00001098: SWAP8
00001099: AND
0000109a: SWAP8
0000109b: PUSH4 0x161ff662
000010a0: SWAP8
000010a1: SWAP5
000010a2: SWAP7
000010a3: DUP13
000010a4: SWAP7
000010a5: SWAP4
000010a6: SWAP6
000010a7: SWAP1
000010a8: SWAP5
000010a9: DUP13
000010aa: SWAP5
000010ab: DUP10
000010ac: SWAP5
000010ad: SWAP4
000010ae: PUSH1 0xe4
000010b0: SWAP1
000010b1: SWAP2
000010b2: ADD
000010b3: SWAP2
000010b4: SWAP1
000010b5: DUP7
000010b6: ADD
000010b7: SWAP1
000010b8: DUP1
000010b9: DUP4
000010ba: DUP4
000010bb: DUP3
000010bc: ISZERO
000010bd: PUSH2 0x10e1
000010c0: JUMPI
000010c1: JUMPDEST
000010c2: DUP1
000010c3: MLOAD
000010c4: DUP3
000010c5: MSTORE
000010c6: PUSH1 0x20
000010c8: DUP4
000010c9: GT
000010ca: ISZERO
000010cb: PUSH2 0x10e1
000010ce: JUMPI
000010cf: PUSH1 0x1f
000010d1: NOT
000010d2: SWAP1
000010d3: SWAP3
000010d4: ADD
000010d5: SWAP2
000010d6: PUSH1 0x20
000010d8: SWAP2
000010d9: DUP3
000010da: ADD
000010db: SWAP2
000010dc: ADD
000010dd: PUSH2 0x10c1
000010e0: JUMP
000010e1: JUMPDEST
000010e2: POP
000010e3: POP
000010e4: POP
000010e5: SWAP1
000010e6: POP
000010e7: SWAP1
000010e8: DUP2
000010e9: ADD
000010ea: SWAP1
000010eb: PUSH1 0x1f
000010ed: AND
000010ee: DUP1
000010ef: ISZERO
000010f0: PUSH2 0x110d
000010f3: JUMPI
000010f4: DUP1
000010f5: DUP3
000010f6: SUB
000010f7: DUP1
000010f8: MLOAD
000010f9: PUSH1 0x01
000010fb: DUP4
000010fc: PUSH1 0x20
000010fe: SUB
000010ff: PUSH2 0x0100
00001102: EXP
00001103: SUB
00001104: NOT
00001105: AND
00001106: DUP2
00001107: MSTORE
00001108: PUSH1 0x20
0000110a: ADD
0000110b: SWAP2
0000110c: POP
0000110d: JUMPDEST
0000110e: POP
0000110f: SWAP8
00001110: POP
00001111: POP
00001112: POP
00001113: POP
00001114: POP
00001115: POP
00001116: POP
00001117: POP
00001118: PUSH1 0x20
0000111a: PUSH1 0x40
0000111c: MLOAD
0000111d: DUP1
0000111e: DUP4
0000111f: SUB
00001120: DUP2
00001121: PUSH1 0x00
00001123: DUP8
00001124: DUP1
00001125: EXTCODESIZE
00001126: ISZERO
00001127: ISZERO
00001128: PUSH2 0x0c15
0000112b: JUMPI
0000112c: INVALID
0000112d: JUMPDEST
0000112e: PUSH2 0x02c6
00001131: GAS
00001132: SUB
00001133: CALL
00001134: ISZERO
00001135: ISZERO
00001136: PUSH2 0x0c23
00001139: JUMPI
0000113a: INVALID
0000113b: JUMPDEST
0000113c: POP
0000113d: POP
0000113e: PUSH1 0x40
00001140: MLOAD
00001141: MLOAD
00001142: SWAP2
00001143: POP
00001144: POP
00001145: JUMPDEST
00001146: JUMPDEST
00001147: SWAP3
00001148: SWAP2
00001149: POP
0000114a: POP
0000114b: JUMP
0000114c: JUMPDEST
0000114d: PUSH1 0x01
0000114f: PUSH1 0xa0
00001151: PUSH1 0x02
00001153: EXP
00001154: SUB
00001155: CALLER
00001156: AND
00001157: PUSH1 0x00
00001159: SWAP1
0000115a: DUP2
0000115b: MSTORE
0000115c: PUSH1 0x05
0000115e: PUSH1 0x20
00001160: MSTORE
00001161: PUSH1 0x40
00001163: DUP2
00001164: KECCAK256
00001165: SLOAD
00001166: PUSH1 0xff
00001168: AND
00001169: ISZERO
0000116a: ISZERO
0000116b: PUSH2 0x11aa
0000116e: JUMPI
0000116f: CALLER
00001170: PUSH1 0x01
00001172: PUSH1 0xa0
00001174: PUSH1 0x02
00001176: EXP
00001177: SUB
00001178: AND
00001179: PUSH1 0x00
0000117b: SWAP1
0000117c: DUP2
0000117d: MSTORE
0000117e: PUSH1 0x05
00001180: PUSH1 0x20
00001182: SWAP1
00001183: DUP2
00001184: MSTORE
00001185: PUSH1 0x40
00001187: DUP1
00001188: DUP4
00001189: KECCAK256
0000118a: DUP1
0000118b: SLOAD
0000118c: PUSH1 0x01
0000118e: PUSH1 0xff
00001190: NOT
00001191: SWAP2
00001192: DUP3
00001193: AND
00001194: DUP2
00001195: OR
00001196: SWAP1
00001197: SWAP3
00001198: SSTORE
00001199: PUSH1 0x04
0000119b: SWAP1
0000119c: SWAP4
0000119d: MSTORE
0000119e: SWAP3
0000119f: KECCAK256
000011a0: DUP1
000011a1: SLOAD
000011a2: SWAP1
000011a3: SWAP2
000011a4: AND
000011a5: SWAP1
000011a6: SWAP2
000011a7: OR
000011a8: SWAP1
000011a9: SSTORE
000011aa: JUMPDEST
000011ab: PUSH2 0x11b3
000011ae: DUP5
000011af: PUSH2 0x17aa
000011b2: JUMP
000011b3: JUMPDEST
000011b4: ISZERO
000011b5: PUSH2 0x12d3
000011b8: JUMPI
000011b9: PUSH1 0x00
000011bb: DUP1
000011bc: SLOAD
000011bd: PUSH1 0x01
000011bf: SLOAD
000011c0: PUSH1 0x40
000011c2: DUP1
000011c3: MLOAD
000011c4: PUSH1 0x20
000011c6: SWAP1
000011c7: DUP2
000011c8: ADD
000011c9: SWAP5
000011ca: SWAP1
000011cb: SWAP5
000011cc: MSTORE
000011cd: MLOAD
000011ce: PUSH1 0xe1
000011d0: PUSH1 0x02
000011d2: EXP
000011d3: PUSH4 0x0b0ffb31
000011d8: MUL
000011d9: DUP2
000011da: MSTORE
000011db: PUSH1 0x01
000011dd: PUSH1 0xa0
000011df: PUSH1 0x02
000011e1: EXP
000011e2: SUB
000011e3: DUP10
000011e4: DUP2
000011e5: AND
000011e6: PUSH1 0x04
000011e8: DUP4
000011e9: ADD
000011ea: SWAP1
000011eb: DUP2
000011ec: MSTORE
000011ed: DUP10
000011ee: DUP3
000011ef: AND
000011f0: PUSH1 0x24
000011f2: DUP5
000011f3: ADD
000011f4: MSTORE
000011f5: PUSH1 0x44
000011f7: DUP4
000011f8: ADD
000011f9: DUP10
000011fa: SWAP1
000011fb: MSTORE
000011fc: PUSH1 0x64
000011fe: DUP4
000011ff: ADD
00001200: DUP5
00001201: SWAP1
00001202: MSTORE
00001203: CALLER
00001204: DUP1
00001205: DUP4
00001206: AND
00001207: PUSH1 0xa4
00001209: DUP6
0000120a: ADD
0000120b: MSTORE
0000120c: PUSH1 0xc0
0000120e: PUSH1 0x84
00001210: DUP6
00001211: ADD
00001212: SWAP1
00001213: DUP2
00001214: MSTORE
00001215: DUP10
00001216: MLOAD
00001217: PUSH1 0xc4
00001219: DUP7
0000121a: ADD
0000121b: MSTORE
0000121c: DUP10
0000121d: MLOAD
0000121e: SWAP4
0000121f: SWAP1
00001220: SWAP7
00001221: AND
00001222: SWAP7
00001223: PUSH4 0x161ff662
00001228: SWAP7
00001229: DUP14
0000122a: SWAP7
0000122b: DUP14
0000122c: SWAP7
0000122d: DUP14
0000122e: SWAP7
0000122f: SWAP2
00001230: SWAP6
00001231: DUP14
00001232: SWAP6
00001233: SWAP5
00001234: SWAP1
00001235: SWAP4
00001236: SWAP3
00001237: PUSH1 0xe4
00001239: SWAP1
0000123a: SWAP3
0000123b: ADD
0000123c: SWAP2
0000123d: SWAP1
0000123e: DUP7
0000123f: ADD
00001240: SWAP1
00001241: DUP1
00001242: DUP4
00001243: DUP4
00001244: DUP3
00001245: ISZERO
00001246: PUSH2 0x126a
00001249: JUMPI
0000124a: JUMPDEST
0000124b: DUP1
0000124c: MLOAD
0000124d: DUP3
0000124e: MSTORE
0000124f: PUSH1 0x20
00001251: DUP4
00001252: GT
00001253: ISZERO
00001254: PUSH2 0x126a
00001257: JUMPI
00001258: PUSH1 0x1f
0000125a: NOT
0000125b: SWAP1
0000125c: SWAP3
0000125d: ADD
0000125e: SWAP2
0000125f: PUSH1 0x20
00001261: SWAP2
00001262: DUP3
00001263: ADD
00001264: SWAP2
00001265: ADD
00001266: PUSH2 0x124a
00001269: JUMP
0000126a: JUMPDEST
0000126b: POP
0000126c: POP
0000126d: POP
0000126e: SWAP1
0000126f: POP
00001270: SWAP1
00001271: DUP2
00001272: ADD
00001273: SWAP1
00001274: PUSH1 0x1f
00001276: AND
00001277: DUP1
00001278: ISZERO
00001279: PUSH2 0x1296
0000127c: JUMPI
0000127d: DUP1
0000127e: DUP3
0000127f: SUB
00001280: DUP1
00001281: MLOAD
00001282: PUSH1 0x01
00001284: DUP4
00001285: PUSH1 0x20
00001287: SUB
00001288: PUSH2 0x0100
0000128b: EXP
0000128c: SUB
0000128d: NOT
0000128e: AND
0000128f: DUP2
00001290: MSTORE
00001291: PUSH1 0x20
00001293: ADD
00001294: SWAP2
00001295: POP
00001296: JUMPDEST
00001297: POP
00001298: SWAP8
00001299: POP
0000129a: POP
0000129b: POP
0000129c: POP
0000129d: POP
0000129e: POP
0000129f: POP
000012a0: POP
000012a1: PUSH1 0x20
000012a3: PUSH1 0x40
000012a5: MLOAD
000012a6: DUP1
000012a7: DUP4
000012a8: SUB
000012a9: DUP2
000012aa: PUSH1 0x00
000012ac: DUP8
000012ad: DUP1
000012ae: EXTCODESIZE
000012af: ISZERO
000012b0: ISZERO
000012b1: PUSH2 0x12b6
000012b4: JUMPI
000012b5: INVALID
000012b6: JUMPDEST
000012b7: PUSH2 0x02c6
000012ba: GAS
000012bb: SUB
000012bc: CALL
000012bd: ISZERO
000012be: ISZERO
000012bf: PUSH2 0x12c4
000012c2: JUMPI
000012c3: INVALID
000012c4: JUMPDEST
000012c5: POP
000012c6: POP
000012c7: PUSH1 0x40
000012c9: MLOAD
000012ca: MLOAD
000012cb: SWAP2
000012cc: POP
000012cd: PUSH2 0x12fa
000012d0: SWAP1
000012d1: POP
000012d2: JUMP
000012d3: JUMPDEST
000012d4: PUSH2 0x12de
000012d7: DUP6
000012d8: DUP5
000012d9: DUP5
000012da: PUSH2 0x1d1e
000012dd: JUMP
000012de: JUMPDEST
000012df: ISZERO
000012e0: ISZERO
000012e1: PUSH2 0x12ec
000012e4: JUMPI
000012e5: POP
000012e6: PUSH1 0x00
000012e8: PUSH2 0x12fa
000012eb: JUMP
000012ec: JUMPDEST
000012ed: PUSH2 0x12f6
000012f0: DUP5
000012f1: DUP5
000012f2: PUSH2 0x1e3b
000012f5: JUMP
000012f6: JUMPDEST
000012f7: POP
000012f8: PUSH1 0x01
000012fa: JUMPDEST
000012fb: JUMPDEST
000012fc: SWAP5
000012fd: SWAP4
000012fe: POP
000012ff: POP
00001300: POP
00001301: POP
00001302: JUMP
00001303: JUMPDEST
00001304: PUSH1 0x00
00001306: DUP1
00001307: SLOAD
00001308: PUSH1 0x01
0000130a: SLOAD
0000130b: PUSH1 0x40
0000130d: DUP1
0000130e: MLOAD
0000130f: PUSH1 0x20
00001311: SWAP1
00001312: DUP2
00001313: ADD
00001314: DUP6
00001315: SWAP1
00001316: MSTORE
00001317: DUP2
00001318: MLOAD
00001319: PUSH1 0xe1
0000131b: PUSH1 0x02
0000131d: EXP
0000131e: PUSH4 0x26985b5f
00001323: MUL
00001324: DUP2
00001325: MSTORE
00001326: PUSH1 0x01
00001328: PUSH1 0xa0
0000132a: PUSH1 0x02
0000132c: EXP
0000132d: SUB
0000132e: DUP8
0000132f: DUP2
00001330: AND
00001331: PUSH1 0x04
00001333: DUP4
00001334: ADD
00001335: MSTORE
00001336: PUSH1 0x24
00001338: DUP3
00001339: ADD
0000133a: SWAP5
0000133b: SWAP1
0000133c: SWAP5
0000133d: MSTORE
0000133e: SWAP2
0000133f: MLOAD
00001340: SWAP3
00001341: SWAP1
00001342: SWAP4
00001343: AND
00001344: SWAP3
00001345: PUSH4 0x4d30b6be
0000134a: SWAP3
0000134b: PUSH1 0x44
0000134d: DUP1
0000134e: DUP5
0000134f: ADD
00001350: SWAP4
00001351: DUP3
00001352: SWAP1
00001353: SUB
00001354: ADD
00001355: DUP2
00001356: DUP8
00001357: DUP8
00001358: DUP1
00001359: EXTCODESIZE
0000135a: ISZERO
0000135b: ISZERO
0000135c: PUSH2 0x1361
0000135f: JUMPI
00001360: INVALID
00001361: JUMPDEST
00001362: PUSH2 0x02c6
00001365: GAS
00001366: SUB
00001367: CALL
00001368: ISZERO
00001369: ISZERO
0000136a: PUSH2 0x136f
0000136d: JUMPI
0000136e: INVALID
0000136f: JUMPDEST
00001370: POP
00001371: POP
00001372: PUSH1 0x40
00001374: MLOAD
00001375: MLOAD
00001376: SWAP2
00001377: POP
00001378: POP
00001379: JUMPDEST
0000137a: SWAP2
0000137b: SWAP1
0000137c: POP
0000137d: JUMP
0000137e: JUMPDEST
0000137f: PUSH1 0x00
00001381: PUSH2 0x139b
00001384: DUP4
00001385: DUP4
00001386: PUSH1 0x20
00001388: PUSH1 0x40
0000138a: MLOAD
0000138b: SWAP1
0000138c: DUP2
0000138d: ADD
0000138e: PUSH1 0x40
00001390: MSTORE
00001391: DUP1
00001392: PUSH1 0x00
00001394: DUP2
00001395: MSTORE
00001396: POP
00001397: PUSH2 0x13a4
0000139a: JUMP
0000139b: JUMPDEST
0000139c: SWAP1
0000139d: POP
0000139e: JUMPDEST
0000139f: SWAP3
000013a0: SWAP2
000013a1: POP
000013a2: POP
000013a3: JUMP
000013a4: JUMPDEST
000013a5: PUSH1 0x00
000013a7: PUSH2 0x13af
000013aa: CALLER
000013ab: PUSH2 0x0a72
000013ae: JUMP
000013af: JUMPDEST
000013b0: POP
000013b1: PUSH2 0x0e12
000013b4: DUP5
000013b5: DUP5
000013b6: DUP5
000013b7: PUSH2 0x1e70
000013ba: JUMP
000013bb: JUMPDEST
000013bc: SWAP1
000013bd: POP
000013be: JUMPDEST
000013bf: SWAP4
000013c0: SWAP3
000013c1: POP
000013c2: POP
000013c3: POP
000013c4: JUMP
000013c5: JUMPDEST
000013c6: PUSH1 0x01
000013c8: PUSH1 0xa0
000013ca: PUSH1 0x02
000013cc: EXP
000013cd: SUB
000013ce: CALLER
000013cf: AND
000013d0: PUSH1 0x00
000013d2: SWAP1
000013d3: DUP2
000013d4: MSTORE
000013d5: PUSH1 0x05
000013d7: PUSH1 0x20
000013d9: MSTORE
000013da: PUSH1 0x40
000013dc: DUP2
000013dd: KECCAK256
000013de: SLOAD
000013df: PUSH1 0xff
000013e1: AND
000013e2: ISZERO
000013e3: ISZERO
000013e4: PUSH2 0x1423
000013e7: JUMPI
000013e8: CALLER
000013e9: PUSH1 0x01
000013eb: PUSH1 0xa0
000013ed: PUSH1 0x02
000013ef: EXP
000013f0: SUB
000013f1: AND
000013f2: PUSH1 0x00
000013f4: SWAP1
000013f5: DUP2
000013f6: MSTORE
000013f7: PUSH1 0x05
000013f9: PUSH1 0x20
000013fb: SWAP1
000013fc: DUP2
000013fd: MSTORE
000013fe: PUSH1 0x40
00001400: DUP1
00001401: DUP4
00001402: KECCAK256
00001403: DUP1
00001404: SLOAD
00001405: PUSH1 0x01
00001407: PUSH1 0xff
00001409: NOT
0000140a: SWAP2
0000140b: DUP3
0000140c: AND
0000140d: DUP2
0000140e: OR
0000140f: SWAP1
00001410: SWAP3
00001411: SSTORE
00001412: PUSH1 0x04
00001414: SWAP1
00001415: SWAP4
00001416: MSTORE
00001417: SWAP3
00001418: KECCAK256
00001419: DUP1
0000141a: SLOAD
0000141b: SWAP1
0000141c: SWAP2
0000141d: AND
0000141e: SWAP1
0000141f: SWAP2
00001420: OR
00001421: SWAP1
00001422: SSTORE
00001423: JUMPDEST
00001424: POP
00001425: CALLER
00001426: PUSH1 0x01
00001428: PUSH1 0xa0
0000142a: PUSH1 0x02
0000142c: EXP
0000142d: SUB
0000142e: AND
0000142f: PUSH1 0x00
00001431: SWAP1
00001432: DUP2
00001433: MSTORE
00001434: PUSH1 0x04
00001436: PUSH1 0x20
00001438: MSTORE
00001439: PUSH1 0x40
0000143b: SWAP1
0000143c: KECCAK256
0000143d: DUP1
0000143e: SLOAD
0000143f: PUSH1 0xff
00001441: NOT
00001442: AND
00001443: DUP3
00001444: ISZERO
00001445: ISZERO
00001446: OR
00001447: SWAP1
00001448: SSTORE
00001449: PUSH1 0x01
0000144b: JUMPDEST
0000144c: JUMPDEST
0000144d: SWAP2
0000144e: SWAP1
0000144f: POP
00001450: JUMP
00001451: JUMPDEST
00001452: PUSH1 0x03
00001454: DUP1
00001455: SLOAD
00001456: PUSH1 0x40
00001458: DUP1
00001459: MLOAD
0000145a: PUSH1 0x20
0000145c: PUSH1 0x02
0000145e: PUSH1 0x01
00001460: DUP6
00001461: AND
00001462: ISZERO
00001463: PUSH2 0x0100
00001466: MUL
00001467: PUSH1 0x00
00001469: NOT
0000146a: ADD
0000146b: SWAP1
0000146c: SWAP5
0000146d: AND
0000146e: SWAP4
0000146f: SWAP1
00001470: SWAP4
00001471: DIV
00001472: PUSH1 0x1f
00001474: DUP2
00001475: ADD
00001476: DUP5
00001477: SWAP1
00001478: DIV
00001479: DUP5
0000147a: MUL
0000147b: DUP3
0000147c: ADD
0000147d: DUP5
0000147e: ADD
0000147f: SWAP1
00001480: SWAP3
00001481: MSTORE
00001482: DUP2
00001483: DUP2
00001484: MSTORE
00001485: SWAP3
00001486: SWAP2
00001487: DUP4
00001488: ADD
00001489: DUP3
0000148a: DUP3
0000148b: DUP1
0000148c: ISZERO
0000148d: PUSH2 0x0b3c
00001490: JUMPI
00001491: DUP1
00001492: PUSH1 0x1f
00001494: LT
00001495: PUSH2 0x0b11
00001498: JUMPI
00001499: PUSH2 0x0100
0000149c: DUP1
0000149d: DUP4
0000149e: SLOAD
0000149f: DIV
000014a0: MUL
000014a1: DUP4
000014a2: MSTORE
000014a3: SWAP2
000014a4: PUSH1 0x20
000014a6: ADD
000014a7: SWAP2
000014a8: PUSH2 0x0b3c
000014ab: JUMP
000014ac: JUMPDEST
000014ad: DUP3
000014ae: ADD
000014af: SWAP2
000014b0: SWAP1
000014b1: PUSH1 0x00
000014b3: MSTORE
000014b4: PUSH1 0x20
000014b6: PUSH1 0x00
000014b8: KECCAK256
000014b9: SWAP1
000014ba: JUMPDEST
000014bb: DUP2
000014bc: SLOAD
000014bd: DUP2
000014be: MSTORE
000014bf: SWAP1
000014c0: PUSH1 0x01
000014c2: ADD
000014c3: SWAP1
000014c4: PUSH1 0x20
000014c6: ADD
000014c7: DUP1
000014c8: DUP4
000014c9: GT
000014ca: PUSH2 0x0b1f
000014cd: JUMPI
000014ce: DUP3
000014cf: SWAP1
000014d0: SUB
000014d1: PUSH1 0x1f
000014d3: AND
000014d4: DUP3
000014d5: ADD
000014d6: SWAP2
000014d7: JUMPDEST
000014d8: POP
000014d9: POP
000014da: POP
000014db: POP
000014dc: POP
000014dd: DUP2
000014de: JUMP
000014df: JUMPDEST
000014e0: PUSH1 0x05
000014e2: PUSH1 0x20
000014e4: MSTORE
000014e5: PUSH1 0x00
000014e7: SWAP1
000014e8: DUP2
000014e9: MSTORE
000014ea: PUSH1 0x40
000014ec: SWAP1
000014ed: KECCAK256
000014ee: SLOAD
000014ef: PUSH1 0xff
000014f1: AND
000014f2: DUP2
000014f3: JUMP
000014f4: JUMPDEST
000014f5: PUSH1 0x00
000014f7: DUP1
000014f8: SLOAD
000014f9: PUSH1 0x01
000014fb: SLOAD
000014fc: PUSH1 0x01
000014fe: PUSH1 0xa0
00001500: PUSH1 0x02
00001502: EXP
00001503: SUB
00001504: SWAP1
00001505: SWAP2
00001506: AND
00001507: SWAP1
00001508: PUSH4 0xca448a88
0000150d: SWAP1
0000150e: PUSH2 0x1516
00001511: ADDRESS
00001512: PUSH2 0x1303
00001515: JUMP
00001516: JUMPDEST
00001517: PUSH1 0x00
00001519: PUSH1 0x40
0000151b: MLOAD
0000151c: PUSH1 0x20
0000151e: ADD
0000151f: MSTORE
00001520: PUSH1 0x40
00001522: MLOAD
00001523: DUP4
00001524: PUSH4 0xffffffff
00001529: AND
0000152a: PUSH1 0xe0
0000152c: PUSH1 0x02
0000152e: EXP
0000152f: MUL
00001530: DUP2
00001531: MSTORE
00001532: PUSH1 0x04
00001534: ADD
00001535: DUP1
00001536: DUP4
00001537: PUSH1 0x00
00001539: NOT
0000153a: AND
0000153b: PUSH1 0x00
0000153d: NOT
0000153e: AND
0000153f: DUP2
00001540: MSTORE
00001541: PUSH1 0x20
00001543: ADD
00001544: DUP3
00001545: DUP2
00001546: MSTORE
00001547: PUSH1 0x20
00001549: ADD
0000154a: SWAP3
0000154b: POP
0000154c: POP
0000154d: POP
0000154e: PUSH1 0x20
00001550: PUSH1 0x40
00001552: MLOAD
00001553: DUP1
00001554: DUP4
00001555: SUB
00001556: DUP2
00001557: PUSH1 0x00
00001559: DUP8
0000155a: DUP1
0000155b: EXTCODESIZE
0000155c: ISZERO
0000155d: ISZERO
0000155e: PUSH2 0x0c8b
00001561: JUMPI
00001562: INVALID
00001563: JUMPDEST
00001564: PUSH2 0x02c6
00001567: GAS
00001568: SUB
00001569: CALL
0000156a: ISZERO
0000156b: ISZERO
0000156c: PUSH2 0x0c99
0000156f: JUMPI
00001570: INVALID
00001571: JUMPDEST
00001572: POP
00001573: POP
00001574: PUSH1 0x40
00001576: MLOAD
00001577: MLOAD
00001578: SWAP2
00001579: POP
0000157a: POP
0000157b: JUMPDEST
0000157c: SWAP1
0000157d: JUMP
0000157e: JUMPDEST
0000157f: PUSH1 0x01
00001581: PUSH1 0xa0
00001583: PUSH1 0x02
00001585: EXP
00001586: SUB
00001587: CALLER
00001588: AND
00001589: PUSH1 0x00
0000158b: SWAP1
0000158c: DUP2
0000158d: MSTORE
0000158e: PUSH1 0x05
00001590: PUSH1 0x20
00001592: MSTORE
00001593: PUSH1 0x40
00001595: DUP2
00001596: KECCAK256
00001597: SLOAD
00001598: PUSH1 0xff
0000159a: AND
0000159b: ISZERO
0000159c: ISZERO
0000159d: PUSH2 0x15dc
000015a0: JUMPI
000015a1: CALLER
000015a2: PUSH1 0x01
000015a4: PUSH1 0xa0
000015a6: PUSH1 0x02
000015a8: EXP
000015a9: SUB
000015aa: AND
000015ab: PUSH1 0x00
000015ad: SWAP1
000015ae: DUP2
000015af: MSTORE
000015b0: PUSH1 0x05
000015b2: PUSH1 0x20
000015b4: SWAP1
000015b5: DUP2
000015b6: MSTORE
000015b7: PUSH1 0x40
000015b9: DUP1
000015ba: DUP4
000015bb: KECCAK256
000015bc: DUP1
000015bd: SLOAD
000015be: PUSH1 0x01
000015c0: PUSH1 0xff
000015c2: NOT
000015c3: SWAP2
000015c4: DUP3
000015c5: AND
000015c6: DUP2
000015c7: OR
000015c8: SWAP1
000015c9: SWAP3
000015ca: SSTORE
000015cb: PUSH1 0x04
000015cd: SWAP1
000015ce: SWAP4
000015cf: MSTORE
000015d0: SWAP3
000015d1: KECCAK256
000015d2: DUP1
000015d3: SLOAD
000015d4: SWAP1
000015d5: SWAP2
000015d6: AND
000015d7: SWAP1
000015d8: SWAP2
000015d9: OR
000015da: SWAP1
000015db: SSTORE
000015dc: JUMPDEST
000015dd: PUSH2 0x15e5
000015e0: DUP5
000015e1: PUSH2 0x0ca6
000015e4: JUMP
000015e5: JUMPDEST
000015e6: ISZERO
000015e7: PUSH2 0x16f5
000015ea: JUMPI
000015eb: PUSH1 0x00
000015ed: DUP1
000015ee: SLOAD
000015ef: PUSH1 0x40
000015f1: DUP1
000015f2: MLOAD
000015f3: PUSH1 0x20
000015f5: SWAP1
000015f6: DUP2
000015f7: ADD
000015f8: SWAP4
000015f9: SWAP1
000015fa: SWAP4
000015fb: MSTORE
000015fc: MLOAD
000015fd: PUSH1 0xe1
000015ff: PUSH1 0x02
00001601: EXP
00001602: PUSH4 0x53481977
00001607: MUL
00001608: DUP2
00001609: MSTORE
0000160a: PUSH1 0x01
0000160c: PUSH1 0xa0
0000160e: PUSH1 0x02
00001610: EXP
00001611: SUB
00001612: DUP9
00001613: DUP2
00001614: AND
00001615: PUSH1 0x04
00001617: DUP4
00001618: ADD
00001619: SWAP1
0000161a: DUP2
0000161b: MSTORE
0000161c: PUSH1 0x24
0000161e: DUP4
0000161f: ADD
00001620: DUP10
00001621: SWAP1
00001622: MSTORE
00001623: PUSH1 0x44
00001625: DUP4
00001626: ADD
00001627: DUP9
00001628: SWAP1
00001629: MSTORE
0000162a: CALLER
0000162b: DUP1
0000162c: DUP4
0000162d: AND
0000162e: PUSH1 0x84
00001630: DUP6
00001631: ADD
00001632: MSTORE
00001633: PUSH1 0xa0
00001635: PUSH1 0x64
00001637: DUP6
00001638: ADD
00001639: SWAP1
0000163a: DUP2
0000163b: MSTORE
0000163c: DUP9
0000163d: MLOAD
0000163e: PUSH1 0xa4
00001640: DUP7
00001641: ADD
00001642: MSTORE
00001643: DUP9
00001644: MLOAD
00001645: SWAP4
00001646: SWAP1
00001647: SWAP6
00001648: AND
00001649: SWAP6
0000164a: PUSH4 0xa69032ee
0000164f: SWAP6
00001650: DUP13
00001651: SWAP6
00001652: DUP13
00001653: SWAP6
00001654: DUP13
00001655: SWAP6
00001656: DUP13
00001657: SWAP6
00001658: SWAP5
00001659: SWAP1
0000165a: SWAP4
0000165b: SWAP3
0000165c: PUSH1 0xc4
0000165e: ADD
0000165f: SWAP2
00001660: SWAP1
00001661: DUP7
00001662: ADD
00001663: SWAP1
00001664: DUP1
00001665: DUP4
00001666: DUP4
00001667: DUP3
00001668: ISZERO
00001669: PUSH2 0x168d
0000166c: JUMPI
0000166d: JUMPDEST
0000166e: DUP1
0000166f: MLOAD
00001670: DUP3
00001671: MSTORE
00001672: PUSH1 0x20
00001674: DUP4
00001675: GT
00001676: ISZERO
00001677: PUSH2 0x168d
0000167a: JUMPI
0000167b: PUSH1 0x1f
0000167d: NOT
0000167e: SWAP1
0000167f: SWAP3
00001680: ADD
00001681: SWAP2
00001682: PUSH1 0x20
00001684: SWAP2
00001685: DUP3
00001686: ADD
00001687: SWAP2
00001688: ADD
00001689: PUSH2 0x166d
0000168c: JUMP
0000168d: JUMPDEST
0000168e: POP
0000168f: POP
00001690: POP
00001691: SWAP1
00001692: POP
00001693: SWAP1
00001694: DUP2
00001695: ADD
00001696: SWAP1
00001697: PUSH1 0x1f
00001699: AND
0000169a: DUP1
0000169b: ISZERO
0000169c: PUSH2 0x16b9
0000169f: JUMPI
000016a0: DUP1
000016a1: DUP3
000016a2: SUB
000016a3: DUP1
000016a4: MLOAD
000016a5: PUSH1 0x01
000016a7: DUP4
000016a8: PUSH1 0x20
000016aa: SUB
000016ab: PUSH2 0x0100
000016ae: EXP
000016af: SUB
000016b0: NOT
000016b1: AND
000016b2: DUP2
000016b3: MSTORE
000016b4: PUSH1 0x20
000016b6: ADD
000016b7: SWAP2
000016b8: POP
000016b9: JUMPDEST
000016ba: POP
000016bb: SWAP7
000016bc: POP
000016bd: POP
000016be: POP
000016bf: POP
000016c0: POP
000016c1: POP
000016c2: POP
000016c3: PUSH1 0x20
000016c5: PUSH1 0x40
000016c7: MLOAD
000016c8: DUP1
000016c9: DUP4
000016ca: SUB
000016cb: DUP2
000016cc: PUSH1 0x00
000016ce: DUP8
000016cf: DUP1
000016d0: EXTCODESIZE
000016d1: ISZERO
000016d2: ISZERO
000016d3: PUSH2 0x12b6
000016d6: JUMPI
000016d7: INVALID
000016d8: JUMPDEST
000016d9: PUSH2 0x02c6
000016dc: GAS
000016dd: SUB
000016de: CALL
000016df: ISZERO
000016e0: ISZERO
000016e1: PUSH2 0x12c4
000016e4: JUMPI
000016e5: INVALID
000016e6: JUMPDEST
000016e7: POP
000016e8: POP
000016e9: PUSH1 0x40
000016eb: MLOAD
000016ec: MLOAD
000016ed: SWAP2
000016ee: POP
000016ef: PUSH2 0x12fa
000016f2: SWAP1
000016f3: POP
000016f4: JUMP
000016f5: JUMPDEST
000016f6: PUSH2 0x1700
000016f9: DUP6
000016fa: DUP5
000016fb: DUP5
000016fc: PUSH2 0x1d1e
000016ff: JUMP
00001700: JUMPDEST
00001701: ISZERO
00001702: ISZERO
00001703: PUSH2 0x170e
00001706: JUMPI
00001707: POP
00001708: PUSH1 0x00
0000170a: PUSH2 0x12fa
0000170d: JUMP
0000170e: JUMPDEST
0000170f: PUSH2 0x12f6
00001712: DUP5
00001713: DUP5
00001714: DUP5
00001715: PUSH2 0x1fb7
00001718: JUMP
00001719: JUMPDEST
0000171a: POP
0000171b: PUSH1 0x01
0000171d: JUMPDEST
0000171e: JUMPDEST
0000171f: SWAP5
00001720: SWAP4
00001721: POP
00001722: POP
00001723: POP
00001724: POP
00001725: JUMP
00001726: JUMPDEST
00001727: PUSH1 0x00
00001729: PUSH2 0x0e12
0000172c: DUP5
0000172d: DUP5
0000172e: DUP5
0000172f: PUSH1 0x20
00001731: PUSH1 0x40
00001733: MLOAD
00001734: SWAP1
00001735: DUP2
00001736: ADD
00001737: PUSH1 0x40
00001739: MSTORE
0000173a: DUP1
0000173b: PUSH1 0x00
0000173d: DUP2
0000173e: MSTORE
0000173f: POP
00001740: PUSH2 0x157e
00001743: JUMP
00001744: JUMPDEST
00001745: SWAP1
00001746: POP
00001747: JUMPDEST
00001748: SWAP4
00001749: SWAP3
0000174a: POP
0000174b: POP
0000174c: POP
0000174d: JUMP
0000174e: JUMPDEST
0000174f: PUSH1 0x01
00001751: SLOAD
00001752: DUP2
00001753: JUMP
00001754: JUMPDEST
00001755: PUSH1 0x00
00001757: PUSH2 0x139b
0000175a: DUP4
0000175b: DUP4
0000175c: PUSH1 0x20
0000175e: PUSH1 0x40
00001760: MLOAD
00001761: SWAP1
00001762: DUP2
00001763: ADD
00001764: PUSH1 0x40
00001766: MSTORE
00001767: DUP1
00001768: PUSH1 0x00
0000176a: DUP2
0000176b: MSTORE
0000176c: POP
0000176d: PUSH2 0x1789
00001770: JUMP
00001771: JUMPDEST
00001772: SWAP1
00001773: POP
00001774: JUMPDEST
00001775: SWAP3
00001776: SWAP2
00001777: POP
00001778: POP
00001779: JUMP
0000177a: JUMPDEST
0000177b: PUSH1 0x06
0000177d: SLOAD
0000177e: PUSH1 0x01
00001780: PUSH1 0xa0
00001782: PUSH1 0x02
00001784: EXP
00001785: SUB
00001786: AND
00001787: DUP2
00001788: JUMP
00001789: JUMPDEST
0000178a: PUSH1 0x00
0000178c: PUSH2 0x1794
0000178f: CALLER
00001790: PUSH2 0x0a72
00001793: JUMP
00001794: JUMPDEST
00001795: POP
00001796: PUSH2 0x0e12
00001799: DUP5
0000179a: DUP5
0000179b: DUP5
0000179c: PUSH2 0x20a8
0000179f: JUMP
000017a0: JUMPDEST
000017a1: SWAP1
000017a2: POP
000017a3: JUMPDEST
000017a4: SWAP4
000017a5: SWAP3
000017a6: POP
000017a7: POP
000017a8: POP
000017a9: JUMP
000017aa: JUMPDEST
000017ab: PUSH1 0x01
000017ad: PUSH1 0xa0
000017af: PUSH1 0x02
000017b1: EXP
000017b2: SUB
000017b3: DUP2
000017b4: AND
000017b5: PUSH1 0x00
000017b7: SWAP1
000017b8: DUP2
000017b9: MSTORE
000017ba: PUSH1 0x05
000017bc: PUSH1 0x20
000017be: MSTORE
000017bf: PUSH1 0x40
000017c1: DUP2
000017c2: KECCAK256
000017c3: SLOAD
000017c4: PUSH1 0xff
000017c6: AND
000017c7: DUP1
000017c8: ISZERO
000017c9: PUSH2 0x0aa1
000017cc: JUMPI
000017cd: POP
000017ce: PUSH1 0x01
000017d0: PUSH1 0xa0
000017d2: PUSH1 0x02
000017d4: EXP
000017d5: SUB
000017d6: DUP3
000017d7: AND
000017d8: PUSH1 0x00
000017da: SWAP1
000017db: DUP2
000017dc: MSTORE
000017dd: PUSH1 0x04
000017df: PUSH1 0x20
000017e1: MSTORE
000017e2: PUSH1 0x40
000017e4: SWAP1
000017e5: KECCAK256
000017e6: SLOAD
000017e7: PUSH1 0xff
000017e9: AND
000017ea: JUMPDEST
000017eb: SWAP1
000017ec: POP
000017ed: JUMPDEST
000017ee: SWAP2
000017ef: SWAP1
000017f0: POP
000017f1: JUMP
000017f2: JUMPDEST
000017f3: PUSH1 0x00
000017f5: DUP1
000017f6: SLOAD
000017f7: PUSH1 0x01
000017f9: SLOAD
000017fa: PUSH1 0x40
000017fc: DUP1
000017fd: MLOAD
000017fe: PUSH1 0x20
00001800: SWAP1
00001801: DUP2
00001802: ADD
00001803: DUP6
00001804: SWAP1
00001805: MSTORE
00001806: DUP2
00001807: MLOAD
00001808: PUSH1 0xe3
0000180a: PUSH1 0x02
0000180c: EXP
0000180d: PUSH4 0x0391aba7
00001812: MUL
00001813: DUP2
00001814: MSTORE
00001815: PUSH1 0x01
00001817: PUSH1 0xa0
00001819: PUSH1 0x02
0000181b: EXP
0000181c: SUB
0000181d: DUP9
0000181e: DUP2
0000181f: AND
00001820: PUSH1 0x04
00001822: DUP4
00001823: ADD
00001824: MSTORE
00001825: DUP8
00001826: DUP2
00001827: AND
00001828: PUSH1 0x24
0000182a: DUP4
0000182b: ADD
0000182c: MSTORE
0000182d: PUSH1 0x44
0000182f: DUP3
00001830: ADD
00001831: SWAP5
00001832: SWAP1
00001833: SWAP5
00001834: MSTORE
00001835: SWAP2
00001836: MLOAD
00001837: SWAP3
00001838: SWAP1
00001839: SWAP4
0000183a: AND
0000183b: SWAP3
0000183c: PUSH4 0x1c8d5d38
00001841: SWAP3
00001842: PUSH1 0x64
00001844: DUP1
00001845: DUP5
00001846: ADD
00001847: SWAP4
00001848: DUP3
00001849: SWAP1
0000184a: SUB
0000184b: ADD
0000184c: DUP2
0000184d: DUP8
0000184e: DUP8
0000184f: DUP1
00001850: EXTCODESIZE
00001851: ISZERO
00001852: ISZERO
00001853: PUSH2 0x0c15
00001856: JUMPI
00001857: INVALID
00001858: JUMPDEST
00001859: PUSH2 0x02c6
0000185c: GAS
0000185d: SUB
0000185e: CALL
0000185f: ISZERO
00001860: ISZERO
00001861: PUSH2 0x0c23
00001864: JUMPI
00001865: INVALID
00001866: JUMPDEST
00001867: POP
00001868: POP
00001869: PUSH1 0x40
0000186b: MLOAD
0000186c: MLOAD
0000186d: SWAP2
0000186e: POP
0000186f: POP
00001870: JUMPDEST
00001871: SWAP3
00001872: SWAP2
00001873: POP
00001874: POP
00001875: JUMP
00001876: JUMPDEST
00001877: PUSH1 0x04
00001879: PUSH1 0x20
0000187b: MSTORE
0000187c: PUSH1 0x00
0000187e: SWAP1
0000187f: DUP2
00001880: MSTORE
00001881: PUSH1 0x40
00001883: SWAP1
00001884: KECCAK256
00001885: SLOAD
00001886: PUSH1 0xff
00001888: AND
00001889: DUP2
0000188a: JUMP
0000188b: JUMPDEST
0000188c: PUSH1 0x01
0000188e: PUSH1 0xa0
00001890: PUSH1 0x02
00001892: EXP
00001893: SUB
00001894: CALLER
00001895: AND
00001896: PUSH1 0x00
00001898: SWAP1
00001899: DUP2
0000189a: MSTORE
0000189b: PUSH1 0x05
0000189d: PUSH1 0x20
0000189f: MSTORE
000018a0: PUSH1 0x40
000018a2: DUP2
000018a3: KECCAK256
000018a4: SLOAD
000018a5: PUSH1 0xff
000018a7: AND
000018a8: ISZERO
000018a9: ISZERO
000018aa: PUSH2 0x18e9
000018ad: JUMPI
000018ae: CALLER
000018af: PUSH1 0x01
000018b1: PUSH1 0xa0
000018b3: PUSH1 0x02
000018b5: EXP
000018b6: SUB
000018b7: AND
000018b8: PUSH1 0x00
000018ba: SWAP1
000018bb: DUP2
000018bc: MSTORE
000018bd: PUSH1 0x05
000018bf: PUSH1 0x20
000018c1: SWAP1
000018c2: DUP2
000018c3: MSTORE
000018c4: PUSH1 0x40
000018c6: DUP1
000018c7: DUP4
000018c8: KECCAK256
000018c9: DUP1
000018ca: SLOAD
000018cb: PUSH1 0x01
000018cd: PUSH1 0xff
000018cf: NOT
000018d0: SWAP2
000018d1: DUP3
000018d2: AND
000018d3: DUP2
000018d4: OR
000018d5: SWAP1
000018d6: SWAP3
000018d7: SSTORE
000018d8: PUSH1 0x04
000018da: SWAP1
000018db: SWAP4
000018dc: MSTORE
000018dd: SWAP3
000018de: KECCAK256
000018df: DUP1
000018e0: SLOAD
000018e1: SWAP1
000018e2: SWAP2
000018e3: AND
000018e4: SWAP1
000018e5: SWAP2
000018e6: OR
000018e7: SWAP1
000018e8: SSTORE
000018e9: JUMPDEST
000018ea: PUSH2 0x0e12
000018ed: DUP5
000018ee: DUP5
000018ef: DUP5
000018f0: PUSH2 0x20a8
000018f3: JUMP
000018f4: JUMPDEST
000018f5: SWAP1
000018f6: POP
000018f7: JUMPDEST
000018f8: JUMPDEST
000018f9: SWAP4
000018fa: SWAP3
000018fb: POP
000018fc: POP
000018fd: POP
000018fe: JUMP
000018ff: JUMPDEST
00001900: PUSH1 0x00
00001902: PUSH2 0x139b
00001905: DUP4
00001906: DUP4
00001907: PUSH1 0x20
00001909: PUSH1 0x40
0000190b: MLOAD
0000190c: SWAP1
0000190d: DUP2
0000190e: ADD
0000190f: PUSH1 0x40
00001911: MSTORE
00001912: DUP1
00001913: PUSH1 0x00
00001915: DUP2
00001916: MSTORE
00001917: POP
00001918: PUSH2 0x188b
0000191b: JUMP
0000191c: JUMPDEST
0000191d: SWAP1
0000191e: POP
0000191f: JUMPDEST
00001920: SWAP3
00001921: SWAP2
00001922: POP
00001923: POP
00001924: JUMP
00001925: JUMPDEST
00001926: PUSH1 0x06
00001928: SLOAD
00001929: PUSH1 0x00
0000192b: SWAP1
0000192c: PUSH1 0x01
0000192e: PUSH1 0xa0
00001930: PUSH1 0x02
00001932: EXP
00001933: SUB
00001934: AND
00001935: ISZERO
00001936: PUSH2 0x1941
00001939: JUMPI
0000193a: POP
0000193b: PUSH1 0x00
0000193d: PUSH2 0x0aa4
00001940: JUMP
00001941: JUMPDEST
00001942: POP
00001943: PUSH1 0x06
00001945: DUP1
00001946: SLOAD
00001947: PUSH1 0x01
00001949: PUSH1 0xa0
0000194b: PUSH1 0x02
0000194d: EXP
0000194e: SUB
0000194f: NOT
00001950: AND
00001951: PUSH1 0x01
00001953: PUSH1 0xa0
00001955: PUSH1 0x02
00001957: EXP
00001958: SUB
00001959: DUP4
0000195a: AND
0000195b: OR
0000195c: SWAP1
0000195d: SSTORE
0000195e: PUSH1 0x01
00001960: JUMPDEST
00001961: SWAP2
00001962: SWAP1
00001963: POP
00001964: JUMP
00001965: JUMPDEST
00001966: PUSH1 0x00
00001968: DUP1
00001969: SLOAD
0000196a: PUSH1 0x01
0000196c: PUSH1 0xa0
0000196e: PUSH1 0x02
00001970: EXP
00001971: SUB
00001972: AND
00001973: ISZERO
00001974: PUSH2 0x197f
00001977: JUMPI
00001978: POP
00001979: PUSH1 0x00
0000197b: PUSH2 0x12fa
0000197e: JUMP
0000197f: JUMPDEST
00001980: DUP5
00001981: PUSH1 0x01
00001983: PUSH1 0xa0
00001985: PUSH1 0x02
00001987: EXP
00001988: SUB
00001989: AND
0000198a: PUSH4 0x085a4705
0000198f: PUSH2 0x1997
00001992: DUP7
00001993: PUSH2 0x221b
00001996: JUMP
00001997: JUMPDEST
00001998: PUSH1 0x40
0000199a: DUP1
0000199b: MLOAD
0000199c: PUSH1 0x00
0000199e: PUSH1 0x20
000019a0: SWAP2
000019a1: DUP3
000019a2: ADD
000019a3: DUP2
000019a4: SWAP1
000019a5: MSTORE
000019a6: SWAP2
000019a7: MLOAD
000019a8: PUSH1 0xe0
000019aa: PUSH1 0x02
000019ac: EXP
000019ad: PUSH4 0xffffffff
000019b2: DUP7
000019b3: AND
000019b4: MUL
000019b5: DUP2
000019b6: MSTORE
000019b7: PUSH1 0x04
000019b9: DUP2
000019ba: ADD
000019bb: DUP5
000019bc: DUP2
000019bd: MSTORE
000019be: PUSH1 0x24
000019c0: DUP3
000019c1: ADD
000019c2: DUP5
000019c3: SWAP1
000019c4: MSTORE
000019c5: PUSH1 0x12
000019c7: PUSH1 0x84
000019c9: DUP4
000019ca: ADD
000019cb: DUP2
000019cc: SWAP1
000019cd: MSTORE
000019ce: PUSH1 0x01
000019d0: PUSH1 0xa4
000019d2: DUP5
000019d3: ADD
000019d4: DUP2
000019d5: SWAP1
000019d6: MSTORE
000019d7: PUSH1 0xc0
000019d9: PUSH1 0x44
000019db: DUP6
000019dc: ADD
000019dd: SWAP1
000019de: DUP2
000019df: MSTORE
000019e0: DUP13
000019e1: MLOAD
000019e2: PUSH1 0xc4
000019e4: DUP7
000019e5: ADD
000019e6: MSTORE
000019e7: DUP13
000019e8: MLOAD
000019e9: DUP14
000019ea: SWAP7
000019eb: DUP14
000019ec: SWAP7
000019ed: SWAP5
000019ee: SWAP6
000019ef: SWAP4
000019f0: SWAP5
000019f1: PUSH1 0x64
000019f3: DUP2
000019f4: ADD
000019f5: SWAP3
000019f6: PUSH1 0xe4
000019f8: SWAP1
000019f9: SWAP2
000019fa: ADD
000019fb: SWAP2
000019fc: DUP10
000019fd: ADD
000019fe: SWAP1
000019ff: DUP1
00001a00: DUP4
00001a01: DUP4
00001a02: DUP3
00001a03: ISZERO
00001a04: PUSH2 0x1a28
00001a07: JUMPI
00001a08: JUMPDEST
00001a09: DUP1
00001a0a: MLOAD
00001a0b: DUP3
00001a0c: MSTORE
00001a0d: PUSH1 0x20
00001a0f: DUP4
00001a10: GT
00001a11: ISZERO
00001a12: PUSH2 0x1a28
00001a15: JUMPI
00001a16: PUSH1 0x1f
00001a18: NOT
00001a19: SWAP1
00001a1a: SWAP3
00001a1b: ADD
00001a1c: SWAP2
00001a1d: PUSH1 0x20
00001a1f: SWAP2
00001a20: DUP3
00001a21: ADD
00001a22: SWAP2
00001a23: ADD
00001a24: PUSH2 0x1a08
00001a27: JUMP
00001a28: JUMPDEST
00001a29: POP
00001a2a: POP
00001a2b: POP
00001a2c: SWAP1
00001a2d: POP
00001a2e: SWAP1
00001a2f: DUP2
00001a30: ADD
00001a31: SWAP1
00001a32: PUSH1 0x1f
00001a34: AND
00001a35: DUP1
00001a36: ISZERO
00001a37: PUSH2 0x1a54
00001a3a: JUMPI
00001a3b: DUP1
00001a3c: DUP3
00001a3d: SUB
00001a3e: DUP1
00001a3f: MLOAD
00001a40: PUSH1 0x01
00001a42: DUP4
00001a43: PUSH1 0x20
00001a45: SUB
00001a46: PUSH2 0x0100
00001a49: EXP
00001a4a: SUB
00001a4b: NOT
00001a4c: AND
00001a4d: DUP2
00001a4e: MSTORE
00001a4f: PUSH1 0x20
00001a51: ADD
00001a52: SWAP2
00001a53: POP
00001a54: JUMPDEST
00001a55: POP
00001a56: DUP4
00001a57: DUP2
00001a58: SUB
00001a59: DUP3
00001a5a: MSTORE
00001a5b: DUP7
00001a5c: MLOAD
00001a5d: DUP2
00001a5e: MSTORE
00001a5f: DUP7
00001a60: MLOAD
00001a61: PUSH1 0x20
00001a63: SWAP2
00001a64: DUP3
00001a65: ADD
00001a66: SWAP2
00001a67: DUP9
00001a68: ADD
00001a69: SWAP1
00001a6a: DUP1
00001a6b: DUP4
00001a6c: DUP4
00001a6d: DUP3
00001a6e: ISZERO
00001a6f: PUSH2 0x1a93
00001a72: JUMPI
00001a73: JUMPDEST
00001a74: DUP1
00001a75: MLOAD
00001a76: DUP3
00001a77: MSTORE
00001a78: PUSH1 0x20
00001a7a: DUP4
00001a7b: GT
00001a7c: ISZERO
00001a7d: PUSH2 0x1a93
00001a80: JUMPI
00001a81: PUSH1 0x1f
00001a83: NOT
00001a84: SWAP1
00001a85: SWAP3
00001a86: ADD
00001a87: SWAP2
00001a88: PUSH1 0x20
00001a8a: SWAP2
00001a8b: DUP3
00001a8c: ADD
00001a8d: SWAP2
00001a8e: ADD
00001a8f: PUSH2 0x1a73
00001a92: JUMP
00001a93: JUMPDEST
00001a94: POP
00001a95: POP
00001a96: POP
00001a97: SWAP1
00001a98: POP
00001a99: SWAP1
00001a9a: DUP2
00001a9b: ADD
00001a9c: SWAP1
00001a9d: PUSH1 0x1f
00001a9f: AND
00001aa0: DUP1
00001aa1: ISZERO
00001aa2: PUSH2 0x1abf
00001aa5: JUMPI
00001aa6: DUP1
00001aa7: DUP3
00001aa8: SUB
00001aa9: DUP1
00001aaa: MLOAD
00001aab: PUSH1 0x01
00001aad: DUP4
00001aae: PUSH1 0x20
00001ab0: SUB
00001ab1: PUSH2 0x0100
00001ab4: EXP
00001ab5: SUB
00001ab6: NOT
00001ab7: AND
00001ab8: DUP2
00001ab9: MSTORE
00001aba: PUSH1 0x20
00001abc: ADD
00001abd: SWAP2
00001abe: POP
00001abf: JUMPDEST
00001ac0: POP
00001ac1: SWAP9
00001ac2: POP
00001ac3: POP
00001ac4: POP
00001ac5: POP
00001ac6: POP
00001ac7: POP
00001ac8: POP
00001ac9: POP
00001aca: POP
00001acb: PUSH1 0x20
00001acd: PUSH1 0x40
00001acf: MLOAD
00001ad0: DUP1
00001ad1: DUP4
00001ad2: SUB
00001ad3: DUP2
00001ad4: PUSH1 0x00
00001ad6: DUP8
00001ad7: DUP1
00001ad8: EXTCODESIZE
00001ad9: ISZERO
00001ada: ISZERO
00001adb: PUSH2 0x1ae0
00001ade: JUMPI
00001adf: INVALID
00001ae0: JUMPDEST
00001ae1: PUSH2 0x02c6
00001ae4: GAS
00001ae5: SUB
00001ae6: CALL
00001ae7: ISZERO
00001ae8: ISZERO
00001ae9: PUSH2 0x1aee
00001aec: JUMPI
00001aed: INVALID
00001aee: JUMPDEST
00001aef: POP
00001af0: POP
00001af1: PUSH1 0x40
00001af3: MLOAD
00001af4: MLOAD
00001af5: ISZERO
00001af6: ISZERO
00001af7: SWAP1
00001af8: POP
00001af9: PUSH2 0x1b04
00001afc: JUMPI
00001afd: POP
00001afe: PUSH1 0x00
00001b00: PUSH2 0x12fa
00001b03: JUMP
00001b04: JUMPDEST
00001b05: PUSH1 0x00
00001b07: DUP1
00001b08: SLOAD
00001b09: PUSH1 0x01
00001b0b: PUSH1 0xa0
00001b0d: PUSH1 0x02
00001b0f: EXP
00001b10: SUB
00001b11: NOT
00001b12: AND
00001b13: PUSH1 0x01
00001b15: PUSH1 0xa0
00001b17: PUSH1 0x02
00001b19: EXP
00001b1a: SUB
00001b1b: DUP8
00001b1c: AND
00001b1d: OR
00001b1e: SWAP1
00001b1f: SSTORE
00001b20: PUSH2 0x1b28
00001b23: DUP5
00001b24: PUSH2 0x221b
00001b27: JUMP
00001b28: JUMPDEST
00001b29: PUSH1 0x01
00001b2b: SSTORE
00001b2c: DUP3
00001b2d: MLOAD
00001b2e: PUSH2 0x1b3e
00001b31: SWAP1
00001b32: PUSH1 0x02
00001b34: SWAP1
00001b35: PUSH1 0x20
00001b37: DUP7
00001b38: ADD
00001b39: SWAP1
00001b3a: PUSH2 0x2282
00001b3d: JUMP
00001b3e: JUMPDEST
00001b3f: POP
00001b40: DUP4
00001b41: MLOAD
00001b42: PUSH2 0x1b52
00001b45: SWAP1
00001b46: PUSH1 0x03
00001b48: SWAP1
00001b49: PUSH1 0x20
00001b4b: DUP8
00001b4c: ADD
00001b4d: SWAP1
00001b4e: PUSH2 0x2282
00001b51: JUMP
00001b52: JUMPDEST
00001b53: POP
00001b54: PUSH1 0x00
00001b56: DUP1
00001b57: SLOAD
00001b58: PUSH1 0x01
00001b5a: SLOAD
00001b5b: PUSH1 0x40
00001b5d: DUP1
00001b5e: MLOAD
00001b5f: PUSH1 0x20
00001b61: SWAP1
00001b62: DUP2
00001b63: ADD
00001b64: DUP6
00001b65: SWAP1
00001b66: MSTORE
00001b67: DUP2
00001b68: MLOAD
00001b69: PUSH1 0xe0
00001b6b: PUSH1 0x02
00001b6d: EXP
00001b6e: PUSH4 0x638a9ce9
00001b73: MUL
00001b74: DUP2
00001b75: MSTORE
00001b76: PUSH1 0x01
00001b78: PUSH1 0xa0
00001b7a: PUSH1 0x02
00001b7c: EXP
00001b7d: SUB
00001b7e: ADDRESS
00001b7f: DUP2
00001b80: AND
00001b81: PUSH1 0x04
00001b83: DUP4
00001b84: ADD
00001b85: MSTORE
00001b86: PUSH1 0x24
00001b88: DUP3
00001b89: ADD
00001b8a: SWAP5
00001b8b: SWAP1
00001b8c: SWAP5
00001b8d: MSTORE
00001b8e: SWAP2
00001b8f: MLOAD
00001b90: SWAP3
00001b91: SWAP1
00001b92: SWAP4
00001b93: AND
00001b94: SWAP4
00001b95: PUSH4 0x638a9ce9
00001b9a: SWAP4
00001b9b: PUSH1 0x44
00001b9d: DUP1
00001b9e: DUP5
00001b9f: ADD
00001ba0: SWAP5
00001ba1: SWAP2
00001ba2: SWAP4
00001ba3: SWAP2
00001ba4: SWAP3
00001ba5: SWAP2
00001ba6: DUP4
00001ba7: SWAP1
00001ba8: SUB
00001ba9: ADD
00001baa: SWAP1
00001bab: DUP3
00001bac: SWAP1
00001bad: DUP8
00001bae: DUP1
00001baf: EXTCODESIZE
00001bb0: ISZERO
00001bb1: ISZERO
00001bb2: PUSH2 0x1bb7
00001bb5: JUMPI
00001bb6: INVALID
00001bb7: JUMPDEST
00001bb8: PUSH2 0x02c6
00001bbb: GAS
00001bbc: SUB
00001bbd: CALL
00001bbe: ISZERO
00001bbf: ISZERO
00001bc0: PUSH2 0x1bc5
00001bc3: JUMPI
00001bc4: INVALID
00001bc5: JUMPDEST
00001bc6: POP
00001bc7: POP
00001bc8: PUSH1 0x40
00001bca: MLOAD
00001bcb: MLOAD
00001bcc: SWAP1
00001bcd: POP
00001bce: DUP1
00001bcf: ISZERO
00001bd0: PUSH2 0x1c44
00001bd3: JUMPI
00001bd4: POP
00001bd5: PUSH1 0x00
00001bd7: DUP1
00001bd8: SLOAD
00001bd9: PUSH1 0x01
00001bdb: SLOAD
00001bdc: PUSH1 0x40
00001bde: DUP1
00001bdf: MLOAD
00001be0: PUSH1 0x20
00001be2: SWAP1
00001be3: DUP2
00001be4: ADD
00001be5: DUP6
00001be6: SWAP1
00001be7: MSTORE
00001be8: DUP2
00001be9: MLOAD
00001bea: PUSH1 0xe1
00001bec: PUSH1 0x02
00001bee: EXP
00001bef: PUSH4 0x680b4e0f
00001bf4: MUL
00001bf5: DUP2
00001bf6: MSTORE
00001bf7: PUSH1 0x04
00001bf9: DUP2
00001bfa: ADD
00001bfb: SWAP4
00001bfc: SWAP1
00001bfd: SWAP4
00001bfe: MSTORE
00001bff: SWAP1
00001c00: MLOAD
00001c01: PUSH1 0x01
00001c03: PUSH1 0xa0
00001c05: PUSH1 0x02
00001c07: EXP
00001c08: SUB
00001c09: SWAP1
00001c0a: SWAP4
00001c0b: AND
00001c0c: SWAP4
00001c0d: PUSH4 0xd0169c1e
00001c12: SWAP4
00001c13: PUSH1 0x24
00001c15: DUP1
00001c16: DUP6
00001c17: ADD
00001c18: SWAP5
00001c19: SWAP2
00001c1a: SWAP3
00001c1b: SWAP2
00001c1c: DUP4
00001c1d: SWAP1
00001c1e: SUB
00001c1f: ADD
00001c20: SWAP1
00001c21: DUP3
00001c22: SWAP1
00001c23: DUP8
00001c24: DUP1
00001c25: EXTCODESIZE
00001c26: ISZERO
00001c27: ISZERO
00001c28: PUSH2 0x1c2d
00001c2b: JUMPI
00001c2c: INVALID
00001c2d: JUMPDEST
00001c2e: PUSH2 0x02c6
00001c31: GAS
00001c32: SUB
00001c33: CALL
00001c34: ISZERO
00001c35: ISZERO
00001c36: PUSH2 0x1c3b
00001c39: JUMPI
00001c3a: INVALID
00001c3b: JUMPDEST
00001c3c: POP
00001c3d: POP
00001c3e: PUSH1 0x40
00001c40: MLOAD
00001c41: MLOAD
00001c42: SWAP1
00001c43: POP
00001c44: JUMPDEST
00001c45: ISZERO
00001c46: PUSH2 0x1c51
00001c49: JUMPI
00001c4a: POP
00001c4b: PUSH1 0x01
00001c4d: PUSH2 0x12fa
00001c50: JUMP
00001c51: JUMPDEST
00001c52: PUSH1 0x00
00001c54: PUSH1 0x00
00001c56: REVERT
00001c57: JUMPDEST
00001c58: SWAP5
00001c59: SWAP4
00001c5a: POP
00001c5b: POP
00001c5c: POP
00001c5d: POP
00001c5e: JUMP
00001c5f: JUMPDEST
00001c60: PUSH1 0x00
00001c62: DUP2
00001c63: PUSH1 0x04
00001c65: JUMPDEST
00001c66: BYTE
00001c67: PUSH1 0xf8
00001c69: PUSH1 0x02
00001c6b: EXP
00001c6c: MUL
00001c6d: DUP3
00001c6e: PUSH1 0x05
00001c70: JUMPDEST
00001c71: BYTE
00001c72: PUSH1 0xf8
00001c74: PUSH1 0x02
00001c76: EXP
00001c77: MUL
00001c78: DUP4
00001c79: PUSH1 0x06
00001c7b: JUMPDEST
00001c7c: BYTE
00001c7d: PUSH1 0xf8
00001c7f: PUSH1 0x02
00001c81: EXP
00001c82: MUL
00001c83: DUP5
00001c84: PUSH1 0x07
00001c86: JUMPDEST
00001c87: BYTE
00001c88: PUSH1 0xf8
00001c8a: PUSH1 0x02
00001c8c: EXP
00001c8d: MUL
00001c8e: DUP6
00001c8f: PUSH1 0x08
00001c91: JUMPDEST
00001c92: BYTE
00001c93: PUSH1 0xf8
00001c95: PUSH1 0x02
00001c97: EXP
00001c98: MUL
00001c99: DUP7
00001c9a: PUSH1 0x09
00001c9c: JUMPDEST
00001c9d: BYTE
00001c9e: PUSH1 0xf8
00001ca0: PUSH1 0x02
00001ca2: EXP
00001ca3: MUL
00001ca4: DUP8
00001ca5: PUSH1 0x0a
00001ca7: JUMPDEST
00001ca8: PUSH1 0x40
00001caa: DUP1
00001cab: MLOAD
00001cac: PUSH1 0x01
00001cae: PUSH1 0xf8
00001cb0: PUSH1 0x02
00001cb2: EXP
00001cb3: SUB
00001cb4: NOT
00001cb5: SWAP10
00001cb6: DUP11
00001cb7: AND
00001cb8: DUP2
00001cb9: MSTORE
00001cba: SWAP8
00001cbb: DUP10
00001cbc: AND
00001cbd: PUSH1 0x01
00001cbf: DUP10
00001cc0: ADD
00001cc1: MSTORE
00001cc2: SWAP6
00001cc3: DUP9
00001cc4: AND
00001cc5: PUSH1 0x02
00001cc7: DUP9
00001cc8: ADD
00001cc9: MSTORE
00001cca: SWAP4
00001ccb: DUP8
00001ccc: AND
00001ccd: PUSH1 0x03
00001ccf: DUP8
00001cd0: ADD
00001cd1: MSTORE
00001cd2: SWAP2
00001cd3: DUP7
00001cd4: AND
00001cd5: PUSH1 0x04
00001cd7: DUP7
00001cd8: ADD
00001cd9: MSTORE
00001cda: DUP6
00001cdb: AND
00001cdc: PUSH1 0x05
00001cde: DUP6
00001cdf: ADD
00001ce0: MSTORE
00001ce1: PUSH1 0xf8
00001ce3: PUSH1 0x02
00001ce5: EXP
00001ce6: SWAP2
00001ce7: BYTE
00001ce8: MUL
00001ce9: SWAP3
00001cea: SWAP1
00001ceb: SWAP3
00001cec: AND
00001ced: PUSH1 0x06
00001cef: DUP3
00001cf0: ADD
00001cf1: MSTORE
00001cf2: SWAP1
00001cf3: MLOAD
00001cf4: SWAP1
00001cf5: DUP2
00001cf6: SWAP1
00001cf7: SUB
00001cf8: PUSH1 0x07
00001cfa: ADD
00001cfb: SWAP1
00001cfc: KECCAK256
00001cfd: SWAP1
00001cfe: POP
00001cff: JUMPDEST
00001d00: SWAP2
00001d01: SWAP1
00001d02: POP
00001d03: JUMP
00001d04: JUMPDEST
00001d05: PUSH1 0x00
00001d07: CALLVALUE
00001d08: ISZERO
00001d09: PUSH2 0x1d16
00001d0c: JUMPI
00001d0d: PUSH2 0x1d16
00001d10: CALLER
00001d11: CALLVALUE
00001d12: PUSH2 0x2226
00001d15: JUMP
00001d16: JUMPDEST
00001d17: JUMPDEST
00001d18: POP
00001d19: PUSH1 0x00
00001d1b: JUMPDEST
00001d1c: SWAP1
00001d1d: JUMP
00001d1e: JUMPDEST
00001d1f: PUSH1 0x00
00001d21: DUP1
00001d22: SLOAD
00001d23: PUSH1 0x01
00001d25: SLOAD
00001d26: PUSH1 0x40
00001d28: DUP1
00001d29: MLOAD
00001d2a: PUSH1 0x20
00001d2c: SWAP1
00001d2d: DUP2
00001d2e: ADD
00001d2f: DUP6
00001d30: SWAP1
00001d31: MSTORE
00001d32: SWAP1
00001d33: MLOAD
00001d34: PUSH1 0xe1
00001d36: PUSH1 0x02
00001d38: EXP
00001d39: PUSH4 0x0b0ffb31
00001d3e: MUL
00001d3f: DUP2
00001d40: MSTORE
00001d41: PUSH1 0x01
00001d43: PUSH1 0xa0
00001d45: PUSH1 0x02
00001d47: EXP
00001d48: SUB
00001d49: DUP9
00001d4a: DUP2
00001d4b: AND
00001d4c: PUSH1 0x04
00001d4e: DUP4
00001d4f: ADD
00001d50: SWAP1
00001d51: DUP2
00001d52: MSTORE
00001d53: ADDRESS
00001d54: DUP1
00001d55: DUP4
00001d56: AND
00001d57: PUSH1 0x24
00001d59: DUP6
00001d5a: ADD
00001d5b: MSTORE
00001d5c: PUSH1 0x44
00001d5e: DUP5
00001d5f: ADD
00001d60: DUP11
00001d61: SWAP1
00001d62: MSTORE
00001d63: PUSH1 0x64
00001d65: DUP5
00001d66: ADD
00001d67: DUP7
00001d68: SWAP1
00001d69: MSTORE
00001d6a: CALLER
00001d6b: DUP1
00001d6c: DUP5
00001d6d: AND
00001d6e: PUSH1 0xa4
00001d70: DUP7
00001d71: ADD
00001d72: MSTORE
00001d73: PUSH1 0xc0
00001d75: PUSH1 0x84
00001d77: DUP7
00001d78: ADD
00001d79: SWAP1
00001d7a: DUP2
00001d7b: MSTORE
00001d7c: DUP11
00001d7d: MLOAD
00001d7e: PUSH1 0xc4
00001d80: DUP8
00001d81: ADD
00001d82: MSTORE
00001d83: DUP11
00001d84: MLOAD
00001d85: SWAP5
00001d86: SWAP1
00001d87: SWAP9
00001d88: AND
00001d89: SWAP8
00001d8a: PUSH4 0x161ff662
00001d8f: SWAP8
00001d90: DUP14
00001d91: SWAP8
00001d92: SWAP4
00001d93: SWAP7
00001d94: DUP14
00001d95: SWAP7
00001d96: SWAP2
00001d97: SWAP6
00001d98: DUP14
00001d99: SWAP6
00001d9a: SWAP1
00001d9b: SWAP4
00001d9c: SWAP3
00001d9d: PUSH1 0xe4
00001d9f: SWAP1
00001da0: SWAP3
00001da1: ADD
00001da2: SWAP2
00001da3: SWAP1
00001da4: DUP7
00001da5: ADD
00001da6: SWAP1
00001da7: DUP1
00001da8: DUP4
00001da9: DUP4
00001daa: DUP3
00001dab: ISZERO
00001dac: PUSH2 0x1dd0
00001daf: JUMPI
00001db0: JUMPDEST
00001db1: DUP1
00001db2: MLOAD
00001db3: DUP3
00001db4: MSTORE
00001db5: PUSH1 0x20
00001db7: DUP4
00001db8: GT
00001db9: ISZERO
00001dba: PUSH2 0x1dd0
00001dbd: JUMPI
00001dbe: PUSH1 0x1f
00001dc0: NOT
00001dc1: SWAP1
00001dc2: SWAP3
00001dc3: ADD
00001dc4: SWAP2
00001dc5: PUSH1 0x20
00001dc7: SWAP2
00001dc8: DUP3
00001dc9: ADD
00001dca: SWAP2
00001dcb: ADD
00001dcc: PUSH2 0x1db0
00001dcf: JUMP
00001dd0: JUMPDEST
00001dd1: POP
00001dd2: POP
00001dd3: POP
00001dd4: SWAP1
00001dd5: POP
00001dd6: SWAP1
00001dd7: DUP2
00001dd8: ADD
00001dd9: SWAP1
00001dda: PUSH1 0x1f
00001ddc: AND
00001ddd: DUP1
00001dde: ISZERO
00001ddf: PUSH2 0x1dfc
00001de2: JUMPI
00001de3: DUP1
00001de4: DUP3
00001de5: SUB
00001de6: DUP1
00001de7: MLOAD
00001de8: PUSH1 0x01
00001dea: DUP4
00001deb: PUSH1 0x20
00001ded: SUB
00001dee: PUSH2 0x0100
00001df1: EXP
00001df2: SUB
00001df3: NOT
00001df4: AND
00001df5: DUP2
00001df6: MSTORE
00001df7: PUSH1 0x20
00001df9: ADD
00001dfa: SWAP2
00001dfb: POP
00001dfc: JUMPDEST
00001dfd: POP
00001dfe: SWAP8
00001dff: POP
00001e00: POP
00001e01: POP
00001e02: POP
00001e03: POP
00001e04: POP
00001e05: POP
00001e06: POP
00001e07: PUSH1 0x20
00001e09: PUSH1 0x40
00001e0b: MLOAD
00001e0c: DUP1
00001e0d: DUP4
00001e0e: SUB
00001e0f: DUP2
00001e10: PUSH1 0x00
00001e12: DUP8
00001e13: DUP1
00001e14: EXTCODESIZE
00001e15: ISZERO
00001e16: ISZERO
00001e17: PUSH2 0x1e1c
00001e1a: JUMPI
00001e1b: INVALID
00001e1c: JUMPDEST
00001e1d: PUSH2 0x02c6
00001e20: GAS
00001e21: SUB
00001e22: CALL
00001e23: ISZERO
00001e24: ISZERO
00001e25: PUSH2 0x1e2a
00001e28: JUMPI
00001e29: INVALID
00001e2a: JUMPDEST
00001e2b: POP
00001e2c: POP
00001e2d: PUSH1 0x40
00001e2f: MLOAD
00001e30: MLOAD
00001e31: SWAP2
00001e32: POP
00001e33: POP
00001e34: JUMPDEST
00001e35: SWAP4
00001e36: SWAP3
00001e37: POP
00001e38: POP
00001e39: POP
00001e3a: JUMP
00001e3b: JUMPDEST
00001e3c: PUSH1 0x00
00001e3e: DUP3
00001e3f: PUSH1 0x01
00001e41: PUSH1 0xa0
00001e43: PUSH1 0x02
00001e45: EXP
00001e46: SUB
00001e47: AND
00001e48: ADDRESS
00001e49: PUSH1 0x01
00001e4b: PUSH1 0xa0
00001e4d: PUSH1 0x02
00001e4f: EXP
00001e50: SUB
00001e51: AND
00001e52: EQ
00001e53: PUSH2 0x1e5c
00001e56: JUMPI
00001e57: DUP3
00001e58: PUSH2 0x1e5e
00001e5b: JUMP
00001e5c: JUMPDEST
00001e5d: CALLER
00001e5e: JUMPDEST
00001e5f: SWAP1
00001e60: POP
00001e61: PUSH2 0x0ded
00001e64: DUP2
00001e65: DUP4
00001e66: PUSH2 0x2226
00001e69: JUMP
00001e6a: JUMPDEST
00001e6b: JUMPDEST
00001e6c: POP
00001e6d: POP
00001e6e: POP
00001e6f: JUMP
00001e70: JUMPDEST
00001e71: PUSH1 0x00
00001e73: PUSH1 0x00
00001e75: PUSH2 0x1e7d
00001e78: DUP6
00001e79: PUSH2 0x0ca6
00001e7c: JUMP
00001e7d: JUMPDEST
00001e7e: ISZERO
00001e7f: PUSH2 0x1f8d
00001e82: JUMPI
00001e83: PUSH1 0x00
00001e85: DUP1
00001e86: SLOAD
00001e87: PUSH1 0x40
00001e89: DUP1
00001e8a: MLOAD
00001e8b: PUSH1 0x20
00001e8d: SWAP1
00001e8e: DUP2
00001e8f: ADD
00001e90: SWAP4
00001e91: SWAP1
00001e92: SWAP4
00001e93: MSTORE
00001e94: MLOAD
00001e95: PUSH1 0xe1
00001e97: PUSH1 0x02
00001e99: EXP
00001e9a: PUSH4 0x53481977
00001e9f: MUL
00001ea0: DUP2
00001ea1: MSTORE
00001ea2: CALLER
00001ea3: PUSH1 0x01
00001ea5: PUSH1 0xa0
00001ea7: PUSH1 0x02
00001ea9: EXP
00001eaa: SUB
00001eab: DUP2
00001eac: DUP2
00001ead: AND
00001eae: PUSH1 0x04
00001eb0: DUP5
00001eb1: ADD
00001eb2: DUP2
00001eb3: DUP2
00001eb4: MSTORE
00001eb5: PUSH1 0x24
00001eb7: DUP6
00001eb8: ADD
00001eb9: DUP13
00001eba: SWAP1
00001ebb: MSTORE
00001ebc: PUSH1 0x44
00001ebe: DUP6
00001ebf: ADD
00001ec0: DUP12
00001ec1: SWAP1
00001ec2: MSTORE
00001ec3: PUSH1 0x84
00001ec5: DUP6
00001ec6: ADD
00001ec7: SWAP2
00001ec8: SWAP1
00001ec9: SWAP2
00001eca: MSTORE
00001ecb: PUSH1 0xa0
00001ecd: PUSH1 0x64
00001ecf: DUP6
00001ed0: ADD
00001ed1: SWAP1
00001ed2: DUP2
00001ed3: MSTORE
00001ed4: DUP10
00001ed5: MLOAD
00001ed6: PUSH1 0xa4
00001ed8: DUP7
00001ed9: ADD
00001eda: MSTORE
00001edb: DUP10
00001edc: MLOAD
00001edd: SWAP3
00001ede: SWAP1
00001edf: SWAP6
00001ee0: AND
00001ee1: SWAP6
00001ee2: PUSH4 0xa69032ee
00001ee7: SWAP6
00001ee8: SWAP4
00001ee9: SWAP5
00001eea: DUP13
00001eeb: SWAP5
00001eec: DUP13
00001eed: SWAP5
00001eee: DUP13
00001eef: SWAP5
00001ef0: DUP9
00001ef1: SWAP5
00001ef2: SWAP1
00001ef3: SWAP4
00001ef4: PUSH1 0xc4
00001ef6: ADD
00001ef7: SWAP2
00001ef8: SWAP1
00001ef9: DUP7
00001efa: ADD
00001efb: SWAP1
00001efc: DUP1
00001efd: DUP4
00001efe: DUP4
00001eff: DUP3
00001f00: ISZERO
00001f01: PUSH2 0x1f25
00001f04: JUMPI
00001f05: JUMPDEST
00001f06: DUP1
00001f07: MLOAD
00001f08: DUP3
00001f09: MSTORE
00001f0a: PUSH1 0x20
00001f0c: DUP4
00001f0d: GT
00001f0e: ISZERO
00001f0f: PUSH2 0x1f25
00001f12: JUMPI
00001f13: PUSH1 0x1f
00001f15: NOT
00001f16: SWAP1
00001f17: SWAP3
00001f18: ADD
00001f19: SWAP2
00001f1a: PUSH1 0x20
00001f1c: SWAP2
00001f1d: DUP3
00001f1e: ADD
00001f1f: SWAP2
00001f20: ADD
00001f21: PUSH2 0x1f05
00001f24: JUMP
00001f25: JUMPDEST
00001f26: POP
00001f27: POP
00001f28: POP
00001f29: SWAP1
00001f2a: POP
00001f2b: SWAP1
00001f2c: DUP2
00001f2d: ADD
00001f2e: SWAP1
00001f2f: PUSH1 0x1f
00001f31: AND
00001f32: DUP1
00001f33: ISZERO
00001f34: PUSH2 0x1f51
00001f37: JUMPI
00001f38: DUP1
00001f39: DUP3
00001f3a: SUB
00001f3b: DUP1
00001f3c: MLOAD
00001f3d: PUSH1 0x01
00001f3f: DUP4
00001f40: PUSH1 0x20
00001f42: SUB
00001f43: PUSH2 0x0100
00001f46: EXP
00001f47: SUB
00001f48: NOT
00001f49: AND
00001f4a: DUP2
00001f4b: MSTORE
00001f4c: PUSH1 0x20
00001f4e: ADD
00001f4f: SWAP2
00001f50: POP
00001f51: JUMPDEST
00001f52: POP
00001f53: SWAP7
00001f54: POP
00001f55: POP
00001f56: POP
00001f57: POP
00001f58: POP
00001f59: POP
00001f5a: POP
00001f5b: PUSH1 0x20
00001f5d: PUSH1 0x40
00001f5f: MLOAD
00001f60: DUP1
00001f61: DUP4
00001f62: SUB
00001f63: DUP2
00001f64: PUSH1 0x00
00001f66: DUP8
00001f67: DUP1
00001f68: EXTCODESIZE
00001f69: ISZERO
00001f6a: ISZERO
00001f6b: PUSH2 0x1f70
00001f6e: JUMPI
00001f6f: INVALID
00001f70: JUMPDEST
00001f71: PUSH2 0x02c6
00001f74: GAS
00001f75: SUB
00001f76: CALL
00001f77: ISZERO
00001f78: ISZERO
00001f79: PUSH2 0x1f7e
00001f7c: JUMPI
00001f7d: INVALID
00001f7e: JUMPDEST
00001f7f: POP
00001f80: POP
00001f81: PUSH1 0x40
00001f83: MLOAD
00001f84: MLOAD
00001f85: SWAP3
00001f86: POP
00001f87: PUSH2 0x1faf
00001f8a: SWAP1
00001f8b: POP
00001f8c: JUMP
00001f8d: JUMPDEST
00001f8e: PUSH2 0x1f97
00001f91: DUP5
00001f92: DUP5
00001f93: PUSH2 0x2241
00001f96: JUMP
00001f97: JUMPDEST
00001f98: SWAP1
00001f99: POP
00001f9a: DUP1
00001f9b: ISZERO
00001f9c: PUSH2 0x1faa
00001f9f: JUMPI
00001fa0: PUSH2 0x1faa
00001fa3: DUP6
00001fa4: DUP6
00001fa5: DUP6
00001fa6: PUSH2 0x1fb7
00001fa9: JUMP
00001faa: JUMPDEST
00001fab: JUMPDEST
00001fac: DUP1
00001fad: SWAP2
00001fae: POP
00001faf: JUMPDEST
00001fb0: POP
00001fb1: SWAP4
00001fb2: SWAP3
00001fb3: POP
00001fb4: POP
00001fb5: POP
00001fb6: JUMP
00001fb7: JUMPDEST
00001fb8: PUSH1 0x06
00001fba: SLOAD
00001fbb: PUSH1 0x40
00001fbd: DUP1
00001fbe: MLOAD
00001fbf: PUSH1 0x00
00001fc1: PUSH1 0x20
00001fc3: SWAP2
00001fc4: DUP3
00001fc5: ADD
00001fc6: MSTORE
00001fc7: DUP2
00001fc8: MLOAD
00001fc9: PUSH1 0xe5
00001fcb: PUSH1 0x02
00001fcd: EXP
00001fce: PUSH3 0x6c4155
00001fd2: MUL
00001fd3: DUP2
00001fd4: MSTORE
00001fd5: PUSH1 0x04
00001fd7: DUP2
00001fd8: ADD
00001fd9: DUP8
00001fda: DUP2
00001fdb: MSTORE
00001fdc: PUSH1 0x24
00001fde: DUP3
00001fdf: ADD
00001fe0: SWAP4
00001fe1: DUP5
00001fe2: MSTORE
00001fe3: DUP6
00001fe4: MLOAD
00001fe5: PUSH1 0x44
00001fe7: DUP4
00001fe8: ADD
00001fe9: MSTORE
00001fea: DUP6
00001feb: MLOAD
00001fec: PUSH1 0x01
00001fee: PUSH1 0xa0
00001ff0: PUSH1 0x02
00001ff2: EXP
00001ff3: SUB
00001ff4: SWAP1
00001ff5: SWAP6
00001ff6: AND
00001ff7: SWAP5
00001ff8: PUSH4 0x0d882aa0
00001ffd: SWAP5
00001ffe: DUP9
00001fff: SWAP5
00002000: DUP11
00002001: SWAP5
00002002: DUP10
00002003: SWAP5
00002004: SWAP4
00002005: PUSH1 0x64
00002007: SWAP1
00002008: SWAP2
00002009: ADD
0000200a: SWAP2
0000200b: DUP6
0000200c: ADD
0000200d: SWAP1
0000200e: DUP1
0000200f: DUP4
00002010: DUP4
00002011: DUP3
00002012: ISZERO
00002013: PUSH2 0x2037
00002016: JUMPI
00002017: JUMPDEST
00002018: DUP1
00002019: MLOAD
0000201a: DUP3
0000201b: MSTORE
0000201c: PUSH1 0x20
0000201e: DUP4
0000201f: GT
00002020: ISZERO
00002021: PUSH2 0x2037
00002024: JUMPI
00002025: PUSH1 0x1f
00002027: NOT
00002028: SWAP1
00002029: SWAP3
0000202a: ADD
0000202b: SWAP2
0000202c: PUSH1 0x20
0000202e: SWAP2
0000202f: DUP3
00002030: ADD
00002031: SWAP2
00002032: ADD
00002033: PUSH2 0x2017
00002036: JUMP
00002037: JUMPDEST
00002038: POP
00002039: POP
0000203a: POP
0000203b: SWAP1
0000203c: POP
0000203d: SWAP1
0000203e: DUP2
0000203f: ADD
00002040: SWAP1
00002041: PUSH1 0x1f
00002043: AND
00002044: DUP1
00002045: ISZERO
00002046: PUSH2 0x2063
00002049: JUMPI
0000204a: DUP1
0000204b: DUP3
0000204c: SUB
0000204d: DUP1
0000204e: MLOAD
0000204f: PUSH1 0x01
00002051: DUP4
00002052: PUSH1 0x20
00002054: SUB
00002055: PUSH2 0x0100
00002058: EXP
00002059: SUB
0000205a: NOT
0000205b: AND
0000205c: DUP2
0000205d: MSTORE
0000205e: PUSH1 0x20
00002060: ADD
00002061: SWAP2
00002062: POP
00002063: JUMPDEST
00002064: POP
00002065: SWAP4
00002066: POP
00002067: POP
00002068: POP
00002069: POP
0000206a: PUSH1 0x20
0000206c: PUSH1 0x40
0000206e: MLOAD
0000206f: DUP1
00002070: DUP4
00002071: SUB
00002072: DUP2
00002073: DUP6
00002074: DUP9
00002075: DUP1
00002076: EXTCODESIZE
00002077: ISZERO
00002078: ISZERO
00002079: PUSH2 0x207e
0000207c: JUMPI
0000207d: INVALID
0000207e: JUMPDEST
0000207f: PUSH2 0x25ee
00002082: GAS
00002083: SUB
00002084: CALL
00002085: ISZERO
00002086: ISZERO
00002087: PUSH2 0x208c
0000208a: JUMPI
0000208b: INVALID
0000208c: JUMPDEST
0000208d: POP
0000208e: POP
0000208f: PUSH1 0x40
00002091: MLOAD
00002092: MLOAD
00002093: ISZERO
00002094: ISZERO
00002095: SWAP2
00002096: POP
00002097: PUSH2 0x0ded
0000209a: SWAP1
0000209b: POP
0000209c: JUMPI
0000209d: PUSH1 0x00
0000209f: PUSH1 0x00
000020a1: REVERT
000020a2: JUMPDEST
000020a3: JUMPDEST
000020a4: POP
000020a5: POP
000020a6: POP
000020a7: JUMP
000020a8: JUMPDEST
000020a9: PUSH1 0x00
000020ab: PUSH1 0x00
000020ad: PUSH2 0x20b5
000020b0: DUP6
000020b1: PUSH2 0x17aa
000020b4: JUMP
000020b5: JUMPDEST
000020b6: DUP1
000020b7: ISZERO
000020b8: PUSH2 0x20d3
000020bb: JUMPI
000020bc: POP
000020bd: DUP5
000020be: PUSH1 0x01
000020c0: PUSH1 0xa0
000020c2: PUSH1 0x02
000020c4: EXP
000020c5: SUB
000020c6: AND
000020c7: CALLER
000020c8: PUSH1 0x01
000020ca: PUSH1 0xa0
000020cc: PUSH1 0x02
000020ce: EXP
000020cf: SUB
000020d0: AND
000020d1: EQ
000020d2: ISZERO
000020d3: JUMPDEST
000020d4: ISZERO
000020d5: PUSH2 0x21f2
000020d8: JUMPI
000020d9: PUSH1 0x00
000020db: DUP1
000020dc: SLOAD
000020dd: PUSH1 0x01
000020df: SLOAD
000020e0: PUSH1 0x40
000020e2: DUP1
000020e3: MLOAD
000020e4: PUSH1 0x20
000020e6: SWAP1
000020e7: DUP2
000020e8: ADD
000020e9: SWAP5
000020ea: SWAP1
000020eb: SWAP5
000020ec: MSTORE
000020ed: MLOAD
000020ee: PUSH1 0xe1
000020f0: PUSH1 0x02
000020f2: EXP
000020f3: PUSH4 0x0b0ffb31
000020f8: MUL
000020f9: DUP2
000020fa: MSTORE
000020fb: CALLER
000020fc: PUSH1 0x01
000020fe: PUSH1 0xa0
00002100: PUSH1 0x02
00002102: EXP
00002103: SUB
00002104: DUP2
00002105: DUP2
00002106: AND
00002107: PUSH1 0x04
00002109: DUP5
0000210a: ADD
0000210b: DUP2
0000210c: DUP2
0000210d: MSTORE
0000210e: DUP13
0000210f: DUP4
00002110: AND
00002111: PUSH1 0x24
00002113: DUP7
00002114: ADD
00002115: MSTORE
00002116: PUSH1 0x44
00002118: DUP6
00002119: ADD
0000211a: DUP13
0000211b: SWAP1
0000211c: MSTORE
0000211d: PUSH1 0x64
0000211f: DUP6
00002120: ADD
00002121: DUP7
00002122: SWAP1
00002123: MSTORE
00002124: PUSH1 0xa4
00002126: DUP6
00002127: ADD
00002128: SWAP2
00002129: SWAP1
0000212a: SWAP2
0000212b: MSTORE
0000212c: PUSH1 0xc0
0000212e: PUSH1 0x84
00002130: DUP6
00002131: ADD
00002132: SWAP1
00002133: DUP2
00002134: MSTORE
00002135: DUP11
00002136: MLOAD
00002137: PUSH1 0xc4
00002139: DUP7
0000213a: ADD
0000213b: MSTORE
0000213c: DUP11
0000213d: MLOAD
0000213e: SWAP3
0000213f: SWAP1
00002140: SWAP7
00002141: AND
00002142: SWAP7
00002143: PUSH4 0x161ff662
00002148: SWAP7
00002149: SWAP4
0000214a: SWAP6
0000214b: DUP14
0000214c: SWAP6
0000214d: DUP14
0000214e: SWAP6
0000214f: SWAP2
00002150: SWAP5
00002151: DUP14
00002152: SWAP5
00002153: DUP10
00002154: SWAP5
00002155: SWAP1
00002156: SWAP4
00002157: SWAP3
00002158: PUSH1 0xe4
0000215a: ADD
0000215b: SWAP2
0000215c: SWAP1
0000215d: DUP7
0000215e: ADD
0000215f: SWAP1
00002160: DUP1
00002161: DUP4
00002162: DUP4
00002163: DUP3
00002164: ISZERO
00002165: PUSH2 0x2189
00002168: JUMPI
00002169: JUMPDEST
0000216a: DUP1
0000216b: MLOAD
0000216c: DUP3
0000216d: MSTORE
0000216e: PUSH1 0x20
00002170: DUP4
00002171: GT
00002172: ISZERO
00002173: PUSH2 0x2189
00002176: JUMPI
00002177: PUSH1 0x1f
00002179: NOT
0000217a: SWAP1
0000217b: SWAP3
0000217c: ADD
0000217d: SWAP2
0000217e: PUSH1 0x20
00002180: SWAP2
00002181: DUP3
00002182: ADD
00002183: SWAP2
00002184: ADD
00002185: PUSH2 0x2169
00002188: JUMP
00002189: JUMPDEST
0000218a: POP
0000218b: POP
0000218c: POP
0000218d: SWAP1
0000218e: POP
0000218f: SWAP1
00002190: DUP2
00002191: ADD
00002192: SWAP1
00002193: PUSH1 0x1f
00002195: AND
00002196: DUP1
00002197: ISZERO
00002198: PUSH2 0x21b5
0000219b: JUMPI
0000219c: DUP1
0000219d: DUP3
0000219e: SUB
0000219f: DUP1
000021a0: MLOAD
000021a1: PUSH1 0x01
000021a3: DUP4
000021a4: PUSH1 0x20
000021a6: SUB
000021a7: PUSH2 0x0100
000021aa: EXP
000021ab: SUB
000021ac: NOT
000021ad: AND
000021ae: DUP2
000021af: MSTORE
000021b0: PUSH1 0x20
000021b2: ADD
000021b3: SWAP2
000021b4: POP
000021b5: JUMPDEST
000021b6: POP
000021b7: SWAP8
000021b8: POP
000021b9: POP
000021ba: POP
000021bb: POP
000021bc: POP
000021bd: POP
000021be: POP
000021bf: POP
000021c0: PUSH1 0x20
000021c2: PUSH1 0x40
000021c4: MLOAD
000021c5: DUP1
000021c6: DUP4
000021c7: SUB
000021c8: DUP2
000021c9: PUSH1 0x00
000021cb: DUP8
000021cc: DUP1
000021cd: EXTCODESIZE
000021ce: ISZERO
000021cf: ISZERO
000021d0: PUSH2 0x1f70
000021d3: JUMPI
000021d4: INVALID
000021d5: JUMPDEST
000021d6: PUSH2 0x02c6
000021d9: GAS
000021da: SUB
000021db: CALL
000021dc: ISZERO
000021dd: ISZERO
000021de: PUSH2 0x1f7e
000021e1: JUMPI
000021e2: INVALID
000021e3: JUMPDEST
000021e4: POP
000021e5: POP
000021e6: PUSH1 0x40
000021e8: MLOAD
000021e9: MLOAD
000021ea: SWAP3
000021eb: POP
000021ec: PUSH2 0x1faf
000021ef: SWAP1
000021f0: POP
000021f1: JUMP
000021f2: JUMPDEST
000021f3: PUSH2 0x21fc
000021f6: DUP5
000021f7: DUP5
000021f8: PUSH2 0x2241
000021fb: JUMP
000021fc: JUMPDEST
000021fd: SWAP1
000021fe: POP
000021ff: DUP1
00002200: ISZERO
00002201: PUSH2 0x1faa
00002204: JUMPI
00002205: PUSH2 0x1faa
00002208: DUP6
00002209: DUP6
0000220a: PUSH2 0x1e3b
0000220d: JUMP
0000220e: JUMPDEST
0000220f: JUMPDEST
00002210: DUP1
00002211: SWAP2
00002212: POP
00002213: JUMPDEST
00002214: POP
00002215: SWAP4
00002216: SWAP3
00002217: POP
00002218: POP
00002219: POP
0000221a: JUMP
0000221b: JUMPDEST
0000221c: PUSH1 0x20
0000221e: DUP2
0000221f: ADD
00002220: MLOAD
00002221: JUMPDEST
00002222: SWAP2
00002223: SWAP1
00002224: POP
00002225: JUMP
00002226: JUMPDEST
00002227: PUSH2 0x2230
0000222a: DUP3
0000222b: DUP3
0000222c: PUSH2 0x2257
0000222f: JUMP
00002230: JUMPDEST
00002231: ISZERO
00002232: ISZERO
00002233: PUSH2 0x223c
00002236: JUMPI
00002237: PUSH1 0x00
00002239: PUSH1 0x00
0000223b: REVERT
0000223c: JUMPDEST
0000223d: JUMPDEST
0000223e: POP
0000223f: POP
00002240: JUMP
00002241: JUMPDEST
00002242: PUSH1 0x00
00002244: PUSH2 0x139b
00002247: CALLER
00002248: DUP5
00002249: DUP5
0000224a: PUSH2 0x1d1e
0000224d: JUMP
0000224e: JUMPDEST
0000224f: SWAP1
00002250: POP
00002251: JUMPDEST
00002252: SWAP3
00002253: SWAP2
00002254: POP
00002255: POP
00002256: JUMP
00002257: JUMPDEST
00002258: PUSH1 0x40
0000225a: MLOAD
0000225b: PUSH1 0x00
0000225d: SWAP1
0000225e: PUSH1 0x01
00002260: PUSH1 0xa0
00002262: PUSH1 0x02
00002264: EXP
00002265: SUB
00002266: DUP5
00002267: AND
00002268: SWAP1
00002269: DUP4
0000226a: SWAP1
0000226b: DUP4
0000226c: DUP2
0000226d: DUP2
0000226e: DUP2
0000226f: DUP6
00002270: DUP8
00002271: PUSH2 0x8796
00002274: GAS
00002275: SUB
00002276: CALL
00002277: SWAP4
00002278: POP
00002279: POP
0000227a: POP
0000227b: POP
0000227c: JUMPDEST
0000227d: SWAP3
0000227e: SWAP2
0000227f: POP
00002280: POP
00002281: JUMP
00002282: JUMPDEST
00002283: DUP3
00002284: DUP1
00002285: SLOAD
00002286: PUSH1 0x01
00002288: DUP2
00002289: PUSH1 0x01
0000228b: AND
0000228c: ISZERO
0000228d: PUSH2 0x0100
00002290: MUL
00002291: SUB
00002292: AND
00002293: PUSH1 0x02
00002295: SWAP1
00002296: DIV
00002297: SWAP1
00002298: PUSH1 0x00
0000229a: MSTORE
0000229b: PUSH1 0x20
0000229d: PUSH1 0x00
0000229f: KECCAK256
000022a0: SWAP1
000022a1: PUSH1 0x1f
000022a3: ADD
000022a4: PUSH1 0x20
000022a6: SWAP1
000022a7: DIV
000022a8: DUP2
000022a9: ADD
000022aa: SWAP3
000022ab: DUP3
000022ac: PUSH1 0x1f
000022ae: LT
000022af: PUSH2 0x22c3
000022b2: JUMPI
000022b3: DUP1
000022b4: MLOAD
000022b5: PUSH1 0xff
000022b7: NOT
000022b8: AND
000022b9: DUP4
000022ba: DUP1
000022bb: ADD
000022bc: OR
000022bd: DUP6
000022be: SSTORE
000022bf: PUSH2 0x22f0
000022c2: JUMP
000022c3: JUMPDEST
000022c4: DUP3
000022c5: DUP1
000022c6: ADD
000022c7: PUSH1 0x01
000022c9: ADD
000022ca: DUP6
000022cb: SSTORE
000022cc: DUP3
000022cd: ISZERO
000022ce: PUSH2 0x22f0
000022d1: JUMPI
000022d2: SWAP2
000022d3: DUP3
000022d4: ADD
000022d5: JUMPDEST
000022d6: DUP3
000022d7: DUP2
000022d8: GT
000022d9: ISZERO
000022da: PUSH2 0x22f0
000022dd: JUMPI
000022de: DUP3
000022df: MLOAD
000022e0: DUP3
000022e1: SSTORE
000022e2: SWAP2
000022e3: PUSH1 0x20
000022e5: ADD
000022e6: SWAP2
000022e7: SWAP1
000022e8: PUSH1 0x01
000022ea: ADD
000022eb: SWAP1
000022ec: PUSH2 0x22d5
000022ef: JUMP
000022f0: JUMPDEST
000022f1: JUMPDEST
000022f2: POP
000022f3: PUSH2 0x22fd
000022f6: SWAP3
000022f7: SWAP2
000022f8: POP
000022f9: PUSH2 0x2301
000022fc: JUMP
000022fd: JUMPDEST
000022fe: POP
000022ff: SWAP1
00002300: JUMP
00002301: JUMPDEST
00002302: PUSH2 0x0ab6
00002305: SWAP2
00002306: SWAP1
00002307: JUMPDEST
00002308: DUP1
00002309: DUP3
0000230a: GT
0000230b: ISZERO
0000230c: PUSH2 0x22fd
0000230f: JUMPI
00002310: PUSH1 0x00
00002312: DUP2
00002313: SSTORE
00002314: PUSH1 0x01
00002316: ADD
00002317: PUSH2 0x2307
0000231a: JUMP
0000231b: JUMPDEST
0000231c: POP
0000231d: SWAP1
0000231e: JUMP
0000231f: JUMPDEST
00002320: SWAP1
00002321: JUMP
00002322: STOP
00002323: LOG1
00002324: PUSH6 0x627a7a723058
0000232b: KECCAK256
0000232c: SIGNEXTEND
0000232d: LOG1
0000232e: PUSH0
0000232f: BLOBHASH
00002330: REVERT
00002331: UNKNOWN(0xEB)
00002332: UNKNOWN(0xDA)
00002333: UNKNOWN(0x2E)
00002334: DUP5
00002335: UNKNOWN(0xF6)
00002336: AND
00002337: UNKNOWN(0xD6)
00002338: UNKNOWN(0xD9)
00002339: PUSH21

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x44ddeb6145fce5dbd580004660b0d40258ca6e3ce246541669842eb33596eeba
call_targets: 0x7ea2df0f49d1cf7cb3a328f0038822b08aeb0ac1
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x44ddeb6145fce5dbd580004660b0d40258ca6e3ce246541669842eb33596eeba",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x7ea2df0f49d1cf7cb3a328f0038822b08aeb0ac1"
    ],
    "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": "0x029a8bf7",
            "selector": "0x029a8bf7",
            "calldata_variants": [
                "0x029a8bf7",
                "0x029a8bf70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1a9237de",
            "selector": "0x1a9237de",
            "calldata_variants": [
                "0x1a9237de",
                "0x1a9237de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23385089",
            "selector": "0x23385089",
            "calldata_variants": [
                "0x23385089",
                "0x233850890000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23b872dd",
            "selector": "0x23b872dd",
            "calldata_variants": [
                "0x23b872dd",
                "0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23de6651",
            "selector": "0x23de6651",
            "calldata_variants": [
                "0x23de6651",
                "0x23de66510000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3099,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3217,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3322,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 20,
    "guards_detected": [],
    "untrusted_call_count": 20
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x44ddeb6145fce5dbd580004660b0d40258ca6e3ce246541669842eb33596eeba
call_targets: 0x7ea2df0f49d1cf7cb3a328f0038822b08aeb0ac1
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x44ddeb6145fce5dbd580004660b0d40258ca6e3ce246541669842eb33596eeba",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x7ea2df0f49d1cf7cb3a328f0038822b08aeb0ac1"
    ],
    "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": "0x029a8bf7",
            "selector": "0x029a8bf7",
            "calldata_variants": [
                "0x029a8bf7",
                "0x029a8bf70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1a9237de",
            "selector": "0x1a9237de",
            "calldata_variants": [
                "0x1a9237de",
                "0x1a9237de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23385089",
            "selector": "0x23385089",
            "calldata_variants": [
                "0x23385089",
                "0x233850890000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23b872dd",
            "selector": "0x23b872dd",
            "calldata_variants": [
                "0x23b872dd",
                "0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23de6651",
            "selector": "0x23de6651",
            "calldata_variants": [
                "0x23de6651",
                "0x23de66510000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3099,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3217,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3322,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 20,
    "guards_detected": []
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 19
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 20
}