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

Analysis Run

a9da075f-fe7e-4e80-be46-4b4273075130

complete
Chain ID
1
Address
Block Number
Created
Wed, Dec 31, 2025 7:43 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 proxy context implementation known
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
30901 report.consolidate complete 1 / 1 3 months ago
94417 artifact.fetch complete 1 / 3 1 week ago
94418 tool.cast_disasm complete 1 / 3 1 week ago
94419 analysis.bundle complete 1 / 3 1 week ago
94420 capability.graph complete 1 / 3 1 week ago
94421 detector.run complete 1 / 3 1 week ago
94422 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
0
No findings?
yes
Summary
No concrete, exploitable profit path identified from bytecode-only review of runtime_bytecode.hex; external calls are limited to ERC20-style interactions with no delegatecall/selfdestruct and no evident unprotected value transfer.
View stderr
[codex:1207805] OpenAI Codex v0.77.0 (research preview)
[codex:1207805] --------
[codex:1207805] workdir: /tmp/codex-multi-7v75wvem
[codex:1207805] model: gpt-5.2-codex
[codex:1207805] provider: openai
[codex:1207805] approval: never
[codex:1207805] sandbox: read-only
[codex:1207805] reasoning effort: xhigh
[codex:1207805] reasoning summaries: auto
[codex:1207805] session id: 019b75e7-8505-73e3-bb21-ff33109f1b58
[codex:1207805] --------
[codex:1207805] user
[codex:1207805] 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:1207805] 
[codex:1207805] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:1207805] 
[codex:1207805] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1207805] - Gas inefficiency, code quality, or best practices
[codex:1207805] - Theoretical vulnerabilities without a clear extraction path
[codex:1207805] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:1207805] - Issues requiring social engineering or off-chain coordination
[codex:1207805] 
[codex:1207805] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:1207805] - CALL/DELEGATECALL with controllable destination or calldata
[codex:1207805] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:1207805] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:1207805] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:1207805] - External calls before state updates (reentrancy)
[codex:1207805] - SELFDESTRUCT with controllable beneficiary
[codex:1207805] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:1207805] 
[codex:1207805] For each finding, you MUST explain:
[codex:1207805] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:1207805] 2. The concrete sequence of transactions to extract value
[codex:1207805] 3. Why you believe this is exploitable (not just suspicious)
[codex:1207805] 
[codex:1207805] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:1207805] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:1207805] 
[codex:1207805] Output MUST be valid JSON matching the provided schema.
[codex:1207805] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1207805] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1207805] mcp startup: no servers
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Reading file contents**
[codex:1207805] exec
[codex:1207805] /bin/bash -lc ls in /tmp/codex-multi-7v75wvem succeeded in 6ms:
[codex:1207805] BYTECODE_BUNDLE.txt
[codex:1207805] codex-output-schema.json
[codex:1207805] exec
[codex:1207805] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-7v75wvem succeeded in 6ms:
[codex:1207805] Runtime bytecode bundle for best-effort auditing.
[codex:1207805] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1207805] 
[codex:1207805] FILE: runtime_bytecode.hex
[codex:1207805] 0x608060405234801561001057600080fd5b50600436106102745760003560e01c80639ab7cfaa11610151578063d2763186116100c3578063e8a70ee211610087578063e8a70ee214610717578063e9935b4a1461072a578063f2e0ec481461073d578063f4daaba114610750578063f6246ea114610778578063f851a4401461079857600080fd5b8063d276318614610696578063d4673de9146106a9578063daf9c210146106bc578063dbba0f01146106df578063e78cea92146106f257600080fd5b8063bc56602f11610115578063bc56602f146105d7578063c639651d146105f7578063c652a0b514610617578063c859b3fe14610640578063c86726f614610653578063cf6682a21461067657600080fd5b80639ab7cfaa146104b15780639f0ebb93146104c5578063aee9c872146104fc578063b32c4d8d1461051c578063b5af090f146105ab57600080fd5b806375829def116101ea5780638456cb59116101ae5780638456cb591461043e57806387ea0961146104465780638bad0c0a146104605780638dd148021461046857806390e0cfcb1461047b578063920b03081461049e57600080fd5b806375829def146103f5578063770be784146104085780637d7763ce1461041b5780638129fc1c1461042e578063821461381461043657600080fd5b80633f4ba83a1161023c5780633f4ba83a146103165780634013c89c1461031e57806341220439146103315780634506e935146103445780635ac442821461036f5780635c975abb146103d757600080fd5b8063085c967f146102795780632325b5f7146102a357806326b3293f146102c9578063284c0c44146102de578063306275be14610303575b600080fd5b61028c610287366004612ad5565b6107a9565b60405161029a929190612b26565b60405180910390f35b6002546102b790600160581b900460ff1681565b60405160ff909116815260200161029a565b6102dc6102d7366004612bec565b61092c565b005b6102f16102ec366004612c1f565b6109dd565b60405161029a96959493929190612c41565b6102dc610311366004612c8e565b610a4a565b6102dc610aa4565b6102dc61032c366004612ca9565b610b21565b6102dc61033f366004612ce1565b610c7a565b600254610357906001600160401b031681565b6040516001600160401b03909116815260200161029a565b61038261037d366004612ad5565b610e82565b6040805183516001600160701b031681526020808501516001600160401b039081169183019190915284830151169181019190915260609283015161ffff16928101929092521515608082015260a00161029a565b600154600160a01b900460ff165b604051901515815260200161029a565b6102dc610403366004612c8e565b610f2f565b6102dc610416366004612c8e565b61102a565b6102dc610429366004612ca9565b61113c565b6102dc611191565b6103e56112a9565b6102dc611389565b60015461035790600160a81b90046001600160401b031681565b6102dc611405565b6102dc610476366004612c8e565b611488565b6103e5610489366004612c8e565b600f6020526000908152604090205460ff1681565b6102dc6104ac366004612ca9565b61164d565b6002546102b790600160501b900460ff1681565b6104ee6104d3366004612c8e565b6001600160a01b031660009081526011602052604090205490565b60405190815260200161029a565b6104ee61050a366004612c8e565b60136020526000908152604090205481565b61057061052a366004612ad5565b600d602052600090815260409020546001600160701b038116906001600160401b03600160701b8204811691600160b01b81049091169061ffff600160f01b9091041684565b604080516001600160701b039590951685526001600160401b039384166020860152919092169083015261ffff16606082015260800161029a565b6103e56105b9366004612c8e565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104ee6105e5366004612c8e565b60146020526000908152604090205481565b6104ee610605366004612c8e565b60126020526000908152604090205481565b6104ee610625366004612c8e565b6001600160a01b031660009081526012602052604090205490565b6102dc61064e366004612d57565b6116a2565b6103e5610661366004612c8e565b60106020526000908152604090205460ff1681565b6104ee610684366004612c8e565b60156020526000908152604090205481565b6102dc6106a4366004612c8e565b611752565b6102dc6106b7366004612dea565b6118a7565b6103e56106ca366004612c8e565b600e6020526000908152604090205460ff1681565b6103e56106ed366004612e0e565b611952565b6001546001600160a01b03165b6040516001600160a01b03909116815260200161029a565b6102dc610725366004612e4a565b611b3c565b6102dc610738366004612bec565b611c1b565b6102dc61074b366004612e4a565b611d21565b60025461076590600160401b900461ffff1681565b60405161ffff909116815260200161029a565b6104ee610786366004612c8e565b60116020526000908152604090205481565b6000546001600160a01b03166106ff565b6060600080600d816107bc600187612e83565b815260208082019290925260409081016000908120825160808101845290546001600160701b0381168252600160701b81046001600160401b0390811695830195909552600160b01b810490941692810192909252600160f01b90920461ffff1660608201529150601690610832600187612e83565b815260200190815260200160002061084982611ecf565b81805480602002602001604051908101604052809291908181526020016000905b8282101561091c5760008481526020908190206040805160c0810182526006860290920180546001600160701b0316835260018101546001600160a01b0390811694840194909452600281015491830191909152600381015490921660608201526004808301546080830152600583015491929160a084019160ff909116908111156108f8576108f8612aee565b600481111561090957610909612aee565b815250508152602001906001019061086a565b5050505091509250925050915091565b600154600160a01b900460ff161561097e5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064015b60405180910390fd5b60008061098c858585611f00565b604080516001600160701b038085168252831660208201529294509092507f6c15ce44793c685a79cde26a0bd5419ef4f3a337991f156be7b365962001b4a791015b60405180910390a15050505050565b601660205281600052604060002081815481106109f957600080fd5b60009182526020909120600690910201805460018201546002830154600384015460048501546005909501546001600160701b0390941696506001600160a01b039283169550909391169160ff1686565b33610a5d6000546001600160a01b031690565b6001600160a01b031614610a835760405162461bcd60e51b815260040161097590612e96565b6001600160a01b03166000908152600e60205260409020805460ff19169055565b33610ab76000546001600160a01b031690565b6001600160a01b031614610add5760405162461bcd60e51b815260040161097590612e96565b6001805460ff60a01b19169055604051600081527f9422424b175dda897495a07b091ef74a3ef715cf6d866fc972954c1c7f459304906020015b60405180910390a1565b33610b346000546001600160a01b031690565b6001600160a01b031614610b5a5760405162461bcd60e51b815260040161097590612e96565b6001600160a01b0382166000908152600e602052604090205460ff16610b925760405162461bcd60e51b815260040161097590612ed9565b610b9b826124f0565b15610bf95760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420696e697420666f72206d696e7461626c652f6275726e61626c6044820152676520746f6b656e7360c01b6064820152608401610975565b6001600160a01b03821660009081526010602052604090205460ff16610c315760405162461bcd60e51b815260040161097590612f04565b6001600160a01b03821660009081526013602052604081208054839290610c59908490612f45565b90915550829050610c756001600160a01b03821633308561250e565b505050565b33610c8d6000546001600160a01b031690565b6001600160a01b031614610cb35760405162461bcd60e51b815260040161097590612e96565b84610cd55783610cd55760405162461bcd60e51b815260040161097590612f04565b6001600160a01b0388166000908152600e602090815260408083208054600160ff1991821617909155600f8352818420805482168a1580159190911790915560108452828520805490921689151517909155601183528184208b90556012909252909120879055610db2578215610da25760405162461bcd60e51b815260206004820152602b60248201527f4d696e742d6275726e20746f6b656e73206d7573742068617665203020746f7460448201526a616c2062616c616e63652160a81b6064820152608401610975565b610dad888383611c1b565b610e78565b8115610e105760405162461bcd60e51b815260206004820152602760248201527f53746f72656420746f6b656e73206d75737420686176652030206d696e742062604482015266616c616e63652160c81b6064820152608401610975565b8015610e6e5760405162461bcd60e51b815260206004820152602760248201527f53746f72656420746f6b656e73206d75737420686176652030206275726e2062604482015266616c616e63652160c81b6064820152608401610975565b610e788884610b21565b5050505050505050565b60408051608081018252600080825260208201819052918101829052606081018290529080600d81610eb5600187612e83565b81526020808201929092526040908101600020815160808101835290546001600160701b0381168252600160701b81046001600160401b0390811694830194909452600160b01b810490931691810191909152600160f01b90910461ffff166060820152905080610f2581611ecf565b9250925050915091565b33610f426000546001600160a01b031690565b6001600160a01b031614610f685760405162461bcd60e51b815260040161097590612e96565b6001600160a01b038116610fcf5760405162461bcd60e51b815260206004820152602860248201527f41646d696e526f6c653a206e65772061646d696e20697320746865207a65726f604482015267206164647265737360c01b6064820152608401610975565b600080546040516001600160a01b03808516939216917fe379ac64de02d8184ca1a871ac486cb8137de77e485ede140e97057b9c765ffd91a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3361103d6000546001600160a01b031690565b6001600160a01b0316146110635760405162461bcd60e51b815260040161097590612e96565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156110ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d09190612f58565b6001600160a01b0384166000908152600e60205260408120549192509060ff161561111f576001600160a01b0384166000908152601360205260409020546111189083612e83565b9050611122565b50805b6111366001600160a01b0384163383612575565b50505050565b3361114f6000546001600160a01b031690565b6001600160a01b0316146111755760405162461bcd60e51b815260040161097590612e96565b6001600160a01b03909116600090815260126020526040902055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156111d65750825b90506000826001600160401b031660011480156111f25750303b155b905081158015611200575080155b1561121e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561124857845460ff60401b1916600160401b1785555b6112506125a6565b6112586125c0565b6112606125d8565b83156112a257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016109ce565b5050505050565b600154600090600160a81b90046001600160401b031681036112cb5750600090565b60018054600091600d9183916112f091600160a81b90046001600160401b0316612f71565b6001600160401b0390811682526020808301939093526040918201600020825160808101845290546001600160701b0381168252600160701b8104831694820194909452600160b01b840490911691810191909152600160f01b90910461ffff1660608201529050611360612605565b61136c57600191505090565b61137581611ecf565b61138157600191505090565b600091505090565b3361139c6000546001600160a01b031690565b6001600160a01b0316146113c25760405162461bcd60e51b815260040161097590612e96565b6001805460ff60a01b1916600160a01b1781556040519081527f9422424b175dda897495a07b091ef74a3ef715cf6d866fc972954c1c7f45930490602001610b17565b336114186000546001600160a01b031690565b6001600160a01b03161461143e5760405162461bcd60e51b815260040161097590612e96565b600080546040516001600160a01b03909116907fe379ac64de02d8184ca1a871ac486cb8137de77e485ede140e97057b9c765ffd908390a3600080546001600160a01b0319169055565b3361149b6000546001600160a01b031690565b6001600160a01b0316146114c15760405162461bcd60e51b815260040161097590612e96565b6001600160a01b03811661152a5760405162461bcd60e51b815260206004820152602a60248201527f427269646765526f6c653a206e65772062726964676520697320746865207a65604482015269726f206164647265737360b01b6064820152608401610975565b6001546001600160a01b03908116908216036115885760405162461bcd60e51b815260206004820152601860248201527f427269646765526f6c653a2073616d65206164647265737300000000000000006044820152606401610975565b6001600160a01b0381163b6115f15760405162461bcd60e51b815260206004820152602960248201527f427269646765526f6c653a206e657720627269646765206d75737420626520616044820152680818dbdb9d1c9858dd60ba1b6064820152608401610975565b6001546040516001600160a01b038084169216907fcca5fddab921a878ddbd4edb737a2cf3ac6df70864f108606647d1b37a5e07a090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b336116606000546001600160a01b031690565b6001600160a01b0316146116865760405162461bcd60e51b815260040161097590612e96565b6001600160a01b03909116600090815260116020526040902055565b600154600160a01b900460ff16156116ef5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610975565b6000806116fd878787611f00565b60405191935091506001600160701b038316907fce848da21487607afba5c5a500c2ad1002d9b8db97ca5512671309df071113b29061174190849088908890612f98565b60405180910390a250505050505050565b336117656000546001600160a01b031690565b6001600160a01b03161461178b5760405162461bcd60e51b815260040161097590612e96565b6001600160a01b0381166000908152600e602052604090205460ff166117c35760405162461bcd60e51b815260040161097590612ed9565b6117cc816124f0565b156118195760405162461bcd60e51b815260206004820152601a60248201527f546f6b656e206973206d696e7461626c652f6275726e61626c650000000000006044820152606401610975565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611862573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118869190612f58565b6001600160a01b039093166000908152601360205260409020929092555050565b336118ba6000546001600160a01b031690565b6001600160a01b0316146118e05760405162461bcd60e51b815260040161097590612e96565b606461ffff8216111561192b5760405162461bcd60e51b8152602060048201526013602482015272084c2e8c6d040e6d2f4ca40e8dede40d0d2ced606b1b6044820152606401610975565b6002805461ffff909216600160401b0269ffff000000000000000019909216919091179055565b6000336119676001546001600160a01b031690565b6001600160a01b0316146119c95760405162461bcd60e51b8152602060048201526024808201527f41636365737320436f6e74726f6c3a2073656e646572206973206e6f742042726044820152636964676560e01b6064820152608401610975565b6119d2846124f0565b611a38578360006119ed6001600160a01b03831685876126e4565b9050806119ff57600092505050611b35565b6001600160a01b03861660009081526013602052604081208054879290611a27908490612e83565b9091555060019350611b3592505050565b6001600160a01b03841660009081526010602052604090205460ff1615611ae4576001600160a01b038416600090815260146020526040902054611a7d908490612f45565b6001600160a01b0385166000908152601560205260409020541015611ae45760405162461bcd60e51b815260206004820152601860248201527f4e6f7420656e6f756768206275726e656420746f6b656e7300000000000000006044820152606401610975565b6000611af18584866127cb565b905080611b02576000915050611b35565b6001600160a01b03851660009081526014602052604081208054869290611b2a908490612f45565b909155506001925050505b9392505050565b33611b4f6000546001600160a01b031690565b6001600160a01b031614611b755760405162461bcd60e51b815260040161097590612e96565b60025460ff600160581b90910481169082161115611bfb5760405162461bcd60e51b815260206004820152603760248201527f43616e6e6f7420696e63726561736520626174636820626c6f636b206c696d6960448201527f74206f76657220736574746c656d656e74206c696d69740000000000000000006064820152608401610975565b6002805460ff909216600160501b0260ff60501b19909216919091179055565b33611c2e6000546001600160a01b031690565b6001600160a01b031614611c545760405162461bcd60e51b815260040161097590612e96565b6001600160a01b0383166000908152600e602052604090205460ff16611c8c5760405162461bcd60e51b815260040161097590612ed9565b611c95836124f0565b611cf65760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420696e697420666f72206e6f6e206d696e7461626c652f62757260448201526b6e61626c6520746f6b656e7360a01b6064820152608401610975565b6001600160a01b03909216600090815260156020908152604080832094909455601490529190912055565b33611d346000546001600160a01b031690565b6001600160a01b031614611d5a5760405162461bcd60e51b815260040161097590612e96565b600154600160a01b900460ff16611daa5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610975565b611db26112a9565b15611e1b5760405162461bcd60e51b815260206004820152603360248201527f43616e6e6f74206368616e6765206261746368536574746c654c696d697420776044820152726974682070656e64696e67206261746368657360681b6064820152608401610975565b60025460ff600160501b90910481169082161015611eaf5760405162461bcd60e51b815260206004820152604560248201527f43616e6e6f74206465637265617365206261746368536574746c654c696d697460448201527f20756e646572207468652076616c7565206f6620626174636820626c6f636b206064820152641b1a5b5a5d60da1b608482015260a401610975565b6002805460ff909216600160581b0260ff60581b19909216919091179055565b60025460408201516000914391611ef091600160581b900460ff1690612fd7565b6001600160401b03161092915050565b6001600160a01b0383166000908152600e6020526040812054819060ff16611f3a5760405162461bcd60e51b815260040161097590612ed9565b6001600160a01b038516600090815260116020526040902054841015611fc85760405162461bcd60e51b815260206004820152603c60248201527f547269656420746f206465706f73697420616e20616d6f756e742062656c6f7760448201527f20746865206d696e696d756d20737065636966696564206c696d6974000000006064820152608401610975565b6001600160a01b0385166000908152601260205260409020548411156120565760405162461bcd60e51b815260206004820152603c60248201527f547269656420746f206465706f73697420616e20616d6f756e742061626f766560448201527f20746865206d6178696d756d20737065636966696564206c696d6974000000006064820152608401610975565b436000612061612605565b156120fe575060018054600160a81b90046001600160401b03166000818152600d60205260409020916120949190612fd7565b81546001600160401b039182166001600160b01b031990911617600160701b8483160217825560018054600160a81b90049091169060156120d483612ff7565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505061213c565b60018054600d916000916121229190600160a81b90046001600160401b0316612f71565b6001600160401b0316815260200190815260200160002090505b600254600090612156906001600160401b03166001612fd7565b6001600160401b031690506016600060018060159054906101000a90046001600160401b03166121869190612f71565b6001600160401b031681526020019081526020016000206040518060c00160405280836001600160701b031681526020018a6001600160a01b03168152602001898152602001336001600160a01b03168152602001888152602001600160048111156121f4576121f4612aee565b90528154600181810184556000938452602093849020835160069093020180546001600160701b039093166dffffffffffffffffffffffffffff199093169290921782559282015181840180546001600160a01b039283166001600160a01b031991821617909155604084015160028401556060840151600384018054919093169116179055608082015160048083019190915560a0830151600583018054949593949193909260ff199092169184908111156122b3576122b3612aee565b021790555050825467ffffffffffffffff60b01b1916600160b01b6001600160401b0386160217808455600160f01b900461ffff16905082601e6122f68361301d565b825461ffff9182166101009390930a928302919092021990911617905550600280546001600160401b031690600061232d83612ff7565b82546001600160401b039182166101009390930a928302919092021990911617905550878061235b816124f0565b15612494576001600160a01b038a1660009081526010602052604090205460ff16612402576001600160a01b038a1660009081526015602090815260408083205460149092528220546123ae9190612e83565b9050898110156124005760405162461bcd60e51b815260206004820152601860248201527f4e6f7420656e6f756768206d696e74656420746f6b656e7300000000000000006044820152606401610975565b505b6001600160a01b038a16600090815260156020526040812080548b929061242a908490612f45565b909155505060405163079cc67960e41b8152336004820152602481018a90526001600160a01b038216906379cc679090604401600060405180830381600087803b15801561247757600080fd5b505af115801561248b573d6000803e3d6000fd5b505050506124d7565b6001600160a01b038a16600090815260136020526040812080548b92906124bc908490612f45565b909155506124d790506001600160a01b03831633308c61250e565b505090546001600160701b031697909650945050505050565b6001600160a01b03166000908152600f602052604090205460ff1690565b6040516001600160a01b0384811660248301528381166044830152606482018390526111369186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612843565b6040516001600160a01b03838116602483015260448201839052610c7591859182169063a9059cbb90606401612543565b6125ae6128a6565b6125b66128ef565b6125be6128ff565b565b6125c86128a6565b6125d06128ef565b6125be612907565b6125e06128a6565b600280546bffffffff000000000000000019166b2828000a0000000000000000179055565b600154600090600160a81b90046001600160401b031681036126275750600190565b60018054600091600d91839161264c91600160a81b90046001600160401b0316612f71565b6001600160401b0390811682526020808301939093526040918201600020825160808101845290546001600160701b0381168252600160701b81048316948201859052600160b01b810490921692810192909252600160f01b900461ffff16606082018190529092506126be91612924565b806126de5750600254606082015161ffff600160401b9092048216911610155b91505090565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283928392918816916127429190613034565b6000604051808303816000865af19150503d806000811461277f576040519150601f19603f3d011682016040523d82523d6000602084013e612784565b606091505b50915091508161279957600092505050611b35565b80516000036127ad57600192505050611b35565b808060200190518101906127c19190613063565b9695505050505050565b6040516340c10f1960e01b81526001600160a01b0383811660048301526024820183905260009185918216906340c10f1990604401600060405180830381600087803b15801561281a57600080fd5b505af192505050801561282b575060015b612839576000915050611b35565b6001915050611b35565b60006128586001600160a01b03841683612966565b9050805160001415801561287d57508080602001905181019061287b9190613063565b155b15610c7557604051635274afe760e01b81526001600160a01b0384166004820152602401610975565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166125be57604051631afcd79f60e31b815260040160405180910390fd5b6128f76128a6565b6125be612974565b6125be6128a6565b61290f6128a6565b6001805460ff60a01b1916600160a01b179055565b60008261ffff1660000361293a57506000612960565b600254439061295390600160501b900460ff1684612fd7565b6001600160401b03161090505b92915050565b6060611b35838360006129bf565b61297c6128a6565b600080546001600160a01b031916339081178255604051909182917fe379ac64de02d8184ca1a871ac486cb8137de77e485ede140e97057b9c765ffd908290a350565b6060814710156129e45760405163cd78605960e01b8152306004820152602401610975565b600080856001600160a01b03168486604051612a009190613034565b60006040518083038185875af1925050503d8060008114612a3d576040519150601f19603f3d011682016040523d82523d6000602084013e612a42565b606091505b50915091506127c1868383606082612a6257612a5d82612aa9565b611b35565b8151158015612a7957506001600160a01b0384163b155b15612aa257604051639996b31560e01b81526001600160a01b0385166004820152602401610975565b5080611b35565b805115612ab95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b600060208284031215612ae757600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60058110612b2257634e487b7160e01b600052602160045260246000fd5b9052565b6040808252835182820181905260009190606090818501906020808901865b83811015612bb257815180516001600160701b03168652838101516001600160a01b039081168588015288820151898801528782015116878701526080808201519087015260a09081015190612b9d81880183612b04565b505060c0949094019390820190600101612b45565b5050829550612bc48188018915159052565b50505050509392505050565b80356001600160a01b0381168114612be757600080fd5b919050565b600080600060608486031215612c0157600080fd5b612c0a84612bd0565b95602085013595506040909401359392505050565b60008060408385031215612c3257600080fd5b50508035926020909101359150565b6001600160701b03871681526001600160a01b03868116602083015260408201869052841660608201526080810183905260c08101612c8360a0830184612b04565b979650505050505050565b600060208284031215612ca057600080fd5b611b3582612bd0565b60008060408385031215612cbc57600080fd5b612cc583612bd0565b946020939093013593505050565b8015158114612ad257600080fd5b600080600080600080600080610100898b031215612cfe57600080fd5b612d0789612bd0565b975060208901359650604089013595506060890135612d2581612cd3565b94506080890135612d3581612cd3565b979a969950949793969560a0850135955060c08501359460e001359350915050565b600080600080600060808688031215612d6f57600080fd5b612d7886612bd0565b9450602086013593506040860135925060608601356001600160401b0380821115612da257600080fd5b818801915088601f830112612db657600080fd5b813581811115612dc557600080fd5b896020828501011115612dd757600080fd5b9699959850939650602001949392505050565b600060208284031215612dfc57600080fd5b813561ffff81168114611b3557600080fd5b600080600060608486031215612e2357600080fd5b612e2c84612bd0565b925060208401359150612e4160408501612bd0565b90509250925092565b600060208284031215612e5c57600080fd5b813560ff81168114611b3557600080fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561296057612960612e6d565b60208082526023908201527f41636365737320436f6e74726f6c3a2073656e646572206973206e6f7420416460408201526236b4b760e91b606082015260800190565b6020808252601190820152702ab739bab83837b93a32b2103a37b5b2b760791b604082015260600190565b60208082526021908201527f4f6e6c79206e617469766520746f6b656e732063616e2062652073746f7265646040820152602160f81b606082015260800190565b8082018082111561296057612960612e6d565b600060208284031215612f6a57600080fd5b5051919050565b6001600160401b03828116828216039080821115612f9157612f91612e6d565b5092915050565b6001600160701b038416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b6001600160401b03818116838216019080821115612f9157612f91612e6d565b60006001600160401b0380831681810361301357613013612e6d565b6001019392505050565b600061ffff80831681810361301357613013612e6d565b6000825160005b81811015613055576020818601810151858301520161303b565b506000920191825250919050565b60006020828403121561307557600080fd5b8151611b3581612cd356fea164736f6c6343000814000a
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Analyzing bytecode for critical opcode patterns**
[codex:1207805] exec
[codex:1207805] /bin/bash -lc "python - <<'PY'
[codex:1207805] import binascii
[codex:1207805] import re
[codex:1207805] from pathlib import Path
[codex:1207805] hexdata=Path('/tmp/codex-multi-7v75wvem/BYTECODE_BUNDLE.txt').read_text()
[codex:1207805] # extract runtime bytecode hex (0x...)
[codex:1207805] m=re.search(r'0x[0-9a-fA-F]+', hexdata)
[codex:1207805] if not m:
[codex:1207805]     print('no hex')
[codex:1207805]     raise SystemExit
[codex:1207805] hexstr=m.group(0)[2:]
[codex:1207805] code=bytes.fromhex(hexstr)
[codex:1207805] # opcode map
[codex:1207805] opnames={
[codex:1207805] 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:1207805] 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:1207805] 0x20:'SHA3',
[codex:1207805] 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:1207805] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1207805] 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:1207805] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1207805] 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:1207805] 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:1207805] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1207805] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1207805] }
[codex:1207805] 
[codex:1207805] ops=[]
[codex:1207805] pcs=[]
[codex:1207805] i=0
[codex:1207805] while i<len(code):
[codex:1207805]     op=code[i]
[codex:1207805]     name=opnames.get(op,'UNKNOWN')
[codex:1207805]     pcs.append(i)
[codex:1207805]     if 0x60<=op<=0x7f:
[codex:1207805]         n=op-0x5f
[codex:1207805]         data=code[i+1:i+1+n]
[codex:1207805]         ops.append((i,name,n,data))
[codex:1207805]         i+=1+n
[codex:1207805]     else:
[codex:1207805]         ops.append((i,name,0,b''))
[codex:1207805]         i+=1
[codex:1207805] 
[codex:1207805] # find interesting opcodes
[codex:1207805] interesting={'CALL','DELEGATECALL','CALLCODE','SELFDESTRUCT','CREATE','CREATE2'}
[codex:1207805] for pc,name,n,data in ops:
[codex:1207805]     if name in interesting:
[codex:1207805]         print(f\"{pc:04x}: {name}\")
[codex:1207805] PY" in /tmp/codex-multi-7v75wvem succeeded in 46ms:
[codex:1207805] 247a: CALL
[codex:1207805] 2750: CALL
[codex:1207805] 281d: CALL
[codex:1207805] 2a0d: CALL
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Analyzing CALL opcode usage**
[codex:1207805] exec
[codex:1207805] /bin/bash -lc "python - <<'PY'
[codex:1207805] import re
[codex:1207805] from pathlib import Path
[codex:1207805] hexdata=Path('/tmp/codex-multi-7v75wvem/BYTECODE_BUNDLE.txt').read_text()
[codex:1207805] hexstr=re.search(r'0x[0-9a-fA-F]+',hexdata).group(0)[2:]
[codex:1207805] code=bytes.fromhex(hexstr)
[codex:1207805] # opcode names
[codex:1207805] opnames={
[codex:1207805] 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:1207805] 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:1207805] 0x20:'SHA3',
[codex:1207805] 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:1207805] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1207805] 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:1207805] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1207805] 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:1207805] 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:1207805] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1207805] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1207805] }
[codex:1207805] 
[codex:1207805] # disassemble
[codex:1207805] ops=[]
[codex:1207805] # map pc->index
[codex:1207805] pc_to_index={}
[codex:1207805] 
[codex:1207805] i=0
[codex:1207805] idx=0
[codex:1207805] while i<len(code):
[codex:1207805]     op=code[i]
[codex:1207805]     name=opnames.get(op,'UNKNOWN')
[codex:1207805]     pc_to_index[i]=idx
[codex:1207805]     if 0x60<=op<=0x7f:
[codex:1207805]         n=op-0x5f
[codex:1207805]         data=code[i+1:i+1+n]
[codex:1207805]         ops.append((i,name,n,data))
[codex:1207805]         i+=1+n
[codex:1207805]     else:
[codex:1207805]         ops.append((i,name,0,b''))
[codex:1207805]         i+=1
[codex:1207805]     idx+=1
[codex:1207805] 
[codex:1207805] # function to print around pc
[codex:1207805] from bisect import bisect
[codex:1207805] 
[codex:1207805] pcs=[op[0] for op in ops]
[codex:1207805] 
[codex:1207805] def print_around(target, radius=12):
[codex:1207805]     # find index of op starting at target
[codex:1207805]     idx=pc_to_index.get(target)
[codex:1207805]     if idx is None:
[codex:1207805]         # find nearest less
[codex:1207805]         for i in range(len(pcs)-1):
[codex:1207805]             if pcs[i]<target<pcs[i+1]:
[codex:1207805]                 idx=i
[codex:1207805]                 break
[codex:1207805]     start=max(0, idx-radius)
[codex:1207805]     end=min(len(ops), idx+radius+1)
[codex:1207805]     print(f\"--- around {target:04x} ---\")
[codex:1207805]     for pc,name,n,data in ops[start:end]:
[codex:1207805]         extra=''
[codex:1207805]         if n:
[codex:1207805]             extra='0x'+data.hex()
[codex:1207805]         mark='>>' if pc==target else '  '
[codex:1207805]         print(f\"{mark} {pc:04x}: {name} {extra}\")
[codex:1207805] 
[codex:1207805] for pc in [0x247a,0x2750,0x281d,0x2a0d]:
[codex:1207805]     print_around(pc, radius=16)
[codex:1207805] 
[codex:1207805] PY" in /tmp/codex-multi-7v75wvem succeeded in 35ms:
[codex:1207805] --- around 247a ---
[codex:1207805]    2466: DUP2 
[codex:1207805]    2467: PUSH1 0x00
[codex:1207805]    2469: DUP8 
[codex:1207805]    246a: DUP1 
[codex:1207805]    246b: EXTCODESIZE 
[codex:1207805]    246c: ISZERO 
[codex:1207805]    246d: DUP1 
[codex:1207805]    246e: ISZERO 
[codex:1207805]    246f: PUSH2 0x2477
[codex:1207805]    2472: JUMPI 
[codex:1207805]    2473: PUSH1 0x00
[codex:1207805]    2475: DUP1 
[codex:1207805]    2476: REVERT 
[codex:1207805]    2477: JUMPDEST 
[codex:1207805]    2478: POP 
[codex:1207805]    2479: GAS 
[codex:1207805] >> 247a: CALL 
[codex:1207805]    247b: ISZERO 
[codex:1207805]    247c: DUP1 
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Analyzing CALL argument context**
[codex:1207805] exec
[codex:1207805] /bin/bash -lc "python - <<'PY'
[codex:1207805] import re
[codex:1207805] from pathlib import Path
[codex:1207805] hexdata=Path('/tmp/codex-multi-7v75wvem/BYTECODE_BUNDLE.txt').read_text()
[codex:1207805] hexstr=re.search(r'0x[0-9a-fA-F]+',hexdata).group(0)[2:]
[codex:1207805] code=bytes.fromhex(hexstr)
[codex:1207805] # opcode names
[codex:1207805] opnames={
[codex:1207805] 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:1207805] 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:1207805] 0x20:'SHA3',
[codex:1207805] 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:1207805] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1207805] 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:1207805] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1207805] 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:1207805] 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:1207805] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1207805] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1207805] }
[codex:1207805] 
[codex:1207805] # disassemble
[codex:1207805] ops=[]
[codex:1207805] 
[codex:1207805] i=0
[codex:1207805] while i<len(code):
[codex:1207805]     op=code[i]
[codex:1207805]     name=opnames.get(op,'UNKNOWN')
[codex:1207805]     if 0x60<=op<=0x7f:
[codex:1207805]         n=op-0x5f
[codex:1207805]         data=code[i+1:i+1+n]
[codex:1207805]         ops.append((i,name,n,data))
[codex:1207805]         i+=1+n
[codex:1207805]     else:
[codex:1207805]         ops.append((i,name,0,b''))
[codex:1207805]         i+=1
[codex:1207805] 
[codex:1207805] # print range around 0x2460-0x2495
[codex:1207805] start=0x2440
[codex:1207805] end=0x24a5
[codex:1207805] for pc,name,n,data in ops:
[codex:1207805]     if pc<start or pc>end:
[codex:1207805]         continue
[codex:1207805]     extra=''
[codex:1207805]     if n:
[codex:1207805]         extra='0x'+data.hex()
[codex:1207805]     print(f\"{pc:04x}: {name} {extra}\")
[codex:1207805] 
[codex:1207805] PY" in /tmp/codex-multi-7v75wvem succeeded in 34ms:
[codex:1207805] 2440: DUP3 
[codex:1207805] 2441: ADD 
[codex:1207805] 2442: MSTORE 
[codex:1207805] 2443: PUSH1 0x24
[codex:1207805] 2445: DUP2 
[codex:1207805] 2446: ADD 
[codex:1207805] 2447: DUP11 
[codex:1207805] 2448: SWAP1 
[codex:1207805] 2449: MSTORE 
[codex:1207805] 244a: PUSH1 0x01
[codex:1207805] 244c: PUSH1 0x01
[codex:1207805] 244e: PUSH1 0xa0
[codex:1207805] 2450: SHL 
[codex:1207805] 2451: SUB 
[codex:1207805] 2452: DUP3 
[codex:1207805] 2453: AND 
[codex:1207805] 2454: SWAP1 
[codex:1207805] 2455: PUSH4 0x79cc6790
[codex:1207805] 245a: SWAP1 
[codex:1207805] 245b: PUSH1 0x44
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Analyzing calldata construction for call instruction**
[codex:1207805] exec
[codex:1207805] /bin/bash -lc "python - <<'PY'
[codex:1207805] import re
[codex:1207805] from pathlib import Path
[codex:1207805] hexdata=Path('/tmp/codex-multi-7v75wvem/BYTECODE_BUNDLE.txt').read_text()
[codex:1207805] hexstr=re.search(r'0x[0-9a-fA-F]+',hexdata).group(0)[2:]
[codex:1207805] code=bytes.fromhex(hexstr)
[codex:1207805] # opcode map
[codex:1207805] opnames={
[codex:1207805] 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:1207805] 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:1207805] 0x20:'SHA3',
[codex:1207805] 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:1207805] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1207805] 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:1207805] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1207805] 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:1207805] 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:1207805] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1207805] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1207805] }
[codex:1207805] 
[codex:1207805] # disassemble
[codex:1207805] ops=[]
[codex:1207805] 
[codex:1207805] i=0
[codex:1207805] while i<len(code):
[codex:1207805]     op=code[i]
[codex:1207805]     name=opnames.get(op,'UNKNOWN')
[codex:1207805]     if 0x60<=op<=0x7f:
[codex:1207805]         n=op-0x5f
[codex:1207805]         data=code[i+1:i+1+n]
[codex:1207805]         ops.append((i,name,n,data))
[codex:1207805]         i+=1+n
[codex:1207805]     else:
[codex:1207805]         ops.append((i,name,0,b''))
[codex:1207805]         i+=1
[codex:1207805] 
[codex:1207805] start=0x23b0
[codex:1207805] end=0x24ff
[codex:1207805] for pc,name,n,data in ops:
[codex:1207805]     if pc<start or pc>end:
[codex:1207805]         continue
[codex:1207805]     extra=''
[codex:1207805]     if n:
[codex:1207805]         extra='0x'+data.hex()
[codex:1207805]     print(f\"{pc:04x}: {name} {extra}\")
[codex:1207805] 
[codex:1207805] PY" in /tmp/codex-multi-7v75wvem succeeded in 34ms:
[codex:1207805] 23b0: POP 
[codex:1207805] 23b1: DUP10 
[codex:1207805] 23b2: DUP2 
[codex:1207805] 23b3: LT 
[codex:1207805] 23b4: ISZERO 
[codex:1207805] 23b5: PUSH2 0x2400
[codex:1207805] 23b8: JUMPI 
[codex:1207805] 23b9: PUSH1 0x40
[codex:1207805] 23bb: MLOAD 
[codex:1207805] 23bc: PUSH3 0x461bcd
[codex:1207805] 23c0: PUSH1 0xe5
[codex:1207805] 23c2: SHL 
[codex:1207805] 23c3: DUP2 
[codex:1207805] 23c4: MSTORE 
[codex:1207805] 23c5: PUSH1 0x20
[codex:1207805] 23c7: PUSH1 0x04
[codex:1207805] 23c9: DUP3 
[codex:1207805] 23ca: ADD 
[codex:1207805] 23cb: MSTORE 
[codex:1207805] 23cc: PUSH1 0x18
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Investigating CALL instruction arguments**
[codex:1207805] exec
[codex:1207805] /bin/bash -lc "python - <<'PY'
[codex:1207805] import re
[codex:1207805] from pathlib import Path
[codex:1207805] hexdata=Path('/tmp/codex-multi-7v75wvem/BYTECODE_BUNDLE.txt').read_text()
[codex:1207805] hexstr=re.search(r'0x[0-9a-fA-F]+',hexdata).group(0)[2:]
[codex:1207805] code=bytes.fromhex(hexstr)
[codex:1207805] 
[codex:1207805] opnames={
[codex:1207805] 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:1207805] 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:1207805] 0x20:'SHA3',
[codex:1207805] 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:1207805] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1207805] 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:1207805] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1207805] 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:1207805] 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:1207805] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1207805] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1207805] }
[codex:1207805] 
[codex:1207805] ops=[]
[codex:1207805] i=0
[codex:1207805] while i<len(code):
[codex:1207805]     op=code[i]
[codex:1207805]     name=opnames.get(op,'UNKNOWN')
[codex:1207805]     if 0x60<=op<=0x7f:
[codex:1207805]         n=op-0x5f
[codex:1207805]         data=code[i+1:i+1+n]
[codex:1207805]         ops.append((i,name,n,data))
[codex:1207805]         i+=1+n
[codex:1207805]     else:
[codex:1207805]         ops.append((i,name,0,b''))
[codex:1207805]         i+=1
[codex:1207805] 
[codex:1207805] start=0x26e0
[codex:1207805] end=0x27c0
[codex:1207805] for pc,name,n,data in ops:
[codex:1207805]     if pc<start or pc>end:
[codex:1207805]         continue
[codex:1207805]     extra=''
[codex:1207805]     if n:
[codex:1207805]         extra='0x'+data.hex()
[codex:1207805]     print(f\"{pc:04x}: {name} {extra}\")
[codex:1207805] 
[codex:1207805] PY" in /tmp/codex-multi-7v75wvem succeeded in 34ms:
[codex:1207805] 26e0: POP 
[codex:1207805] 26e1: POP 
[codex:1207805] 26e2: SWAP1 
[codex:1207805] 26e3: JUMP 
[codex:1207805] 26e4: JUMPDEST 
[codex:1207805] 26e5: PUSH1 0x40
[codex:1207805] 26e7: DUP1 
[codex:1207805] 26e8: MLOAD 
[codex:1207805] 26e9: PUSH1 0x01
[codex:1207805] 26eb: PUSH1 0x01
[codex:1207805] 26ed: PUSH1 0xa0
[codex:1207805] 26ef: SHL 
[codex:1207805] 26f0: SUB 
[codex:1207805] 26f1: DUP5 
[codex:1207805] 26f2: DUP2 
[codex:1207805] 26f3: AND 
[codex:1207805] 26f4: PUSH1 0x24
[codex:1207805] 26f6: DUP4 
[codex:1207805] 26f7: ADD 
[codex:1207805] 26f8: MSTORE 
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Analyzing SafeERC20 call stack**
[codex:1207805] exec
[codex:1207805] /bin/bash -lc "python - <<'PY'
[codex:1207805] import re
[codex:1207805] from pathlib import Path
[codex:1207805] hexdata=Path('/tmp/codex-multi-7v75wvem/BYTECODE_BUNDLE.txt').read_text()
[codex:1207805] hexstr=re.search(r'0x[0-9a-fA-F]+',hexdata).group(0)[2:]
[codex:1207805] code=bytes.fromhex(hexstr)
[codex:1207805] 
[codex:1207805] opnames={
[codex:1207805] 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:1207805] 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:1207805] 0x20:'SHA3',
[codex:1207805] 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:1207805] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1207805] 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:1207805] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1207805] 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:1207805] 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:1207805] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1207805] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1207805] }
[codex:1207805] 
[codex:1207805] ops=[]
[codex:1207805] i=0
[codex:1207805] while i<len(code):
[codex:1207805]     op=code[i]
[codex:1207805]     name=opnames.get(op,'UNKNOWN')
[codex:1207805]     if 0x60<=op<=0x7f:
[codex:1207805]         n=op-0x5f
[codex:1207805]         data=code[i+1:i+1+n]
[codex:1207805]         ops.append((i,name,n,data))
[codex:1207805]         i+=1+n
[codex:1207805]     else:
[codex:1207805]         ops.append((i,name,0,b''))
[codex:1207805]         i+=1
[codex:1207805] 
[codex:1207805] start=0x27f0
[codex:1207805] end=0x2850
[codex:1207805] for pc,name,n,data in ops:
[codex:1207805]     if pc<start or pc>end:
[codex:1207805]         continue
[codex:1207805]     extra=''
[codex:1207805]     if n:
[codex:1207805]         extra='0x'+data.hex()
[codex:1207805]     print(f\"{pc:04x}: {name} {extra}\")
[codex:1207805] PY" in /tmp/codex-multi-7v75wvem succeeded in 35ms:
[codex:1207805] 27f0: PUSH1 0x00
[codex:1207805] 27f2: SWAP2 
[codex:1207805] 27f3: DUP6 
[codex:1207805] 27f4: SWAP2 
[codex:1207805] 27f5: DUP3 
[codex:1207805] 27f6: AND 
[codex:1207805] 27f7: SWAP1 
[codex:1207805] 27f8: PUSH4 0x40c10f19
[codex:1207805] 27fd: SWAP1 
[codex:1207805] 27fe: PUSH1 0x44
[codex:1207805] 2800: ADD 
[codex:1207805] 2801: PUSH1 0x00
[codex:1207805] 2803: PUSH1 0x40
[codex:1207805] 2805: MLOAD 
[codex:1207805] 2806: DUP1 
[codex:1207805] 2807: DUP4 
[codex:1207805] 2808: SUB 
[codex:1207805] 2809: DUP2 
[codex:1207805] 280a: PUSH1 0x00
[codex:1207805] 280c: DUP8 
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Analyzing mint function calls**
[codex:1207805] exec
[codex:1207805] /bin/bash -lc "python - <<'PY'
[codex:1207805] import re
[codex:1207805] from pathlib import Path
[codex:1207805] hexdata=Path('/tmp/codex-multi-7v75wvem/BYTECODE_BUNDLE.txt').read_text()
[codex:1207805] hexstr=re.search(r'0x[0-9a-fA-F]+',hexdata).group(0)[2:]
[codex:1207805] code=bytes.fromhex(hexstr)
[codex:1207805] 
[codex:1207805] opnames={
[codex:1207805] 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:1207805] 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:1207805] 0x20:'SHA3',
[codex:1207805] 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:1207805] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1207805] 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:1207805] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1207805] 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:1207805] 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:1207805] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1207805] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1207805] }
[codex:1207805] 
[codex:1207805] ops=[]
[codex:1207805] i=0
[codex:1207805] while i<len(code):
[codex:1207805]     op=code[i]
[codex:1207805]     name=opnames.get(op,'UNKNOWN')
[codex:1207805]     if 0x60<=op<=0x7f:
[codex:1207805]         n=op-0x5f
[codex:1207805]         data=code[i+1:i+1+n]
[codex:1207805]         ops.append((i,name,n,data))
[codex:1207805]         i+=1+n
[codex:1207805]     else:
[codex:1207805]         ops.append((i,name,0,b''))
[codex:1207805]         i+=1
[codex:1207805] 
[codex:1207805] start=0x2980
[codex:1207805] end=0x2a40
[codex:1207805] for pc,name,n,data in ops:
[codex:1207805]     if pc<start or pc>end:
[codex:1207805]         continue
[codex:1207805]     extra=''
[codex:1207805]     if n:
[codex:1207805]         extra='0x'+data.hex()
[codex:1207805]     print(f\"{pc:04x}: {name} {extra}\")
[codex:1207805] PY" in /tmp/codex-multi-7v75wvem succeeded in 33ms:
[codex:1207805] 2980: SLOAD 
[codex:1207805] 2981: PUSH1 0x01
[codex:1207805] 2983: PUSH1 0x01
[codex:1207805] 2985: PUSH1 0xa0
[codex:1207805] 2987: SHL 
[codex:1207805] 2988: SUB 
[codex:1207805] 2989: NOT 
[codex:1207805] 298a: AND 
[codex:1207805] 298b: CALLER 
[codex:1207805] 298c: SWAP1 
[codex:1207805] 298d: DUP2 
[codex:1207805] 298e: OR 
[codex:1207805] 298f: DUP3 
[codex:1207805] 2990: SSTORE 
[codex:1207805] 2991: PUSH1 0x40
[codex:1207805] 2993: MLOAD 
[codex:1207805] 2994: SWAP1 
[codex:1207805] 2995: SWAP2 
[codex:1207805] 2996: DUP3 
[codex:1207805] 2997: SWAP2 
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Analyzing functionCallWithValue usage**
[codex:1207805] exec
[codex:1207805] /bin/bash -lc "python - <<'PY'
[codex:1207805] import re
[codex:1207805] from pathlib import Path
[codex:1207805] hexdata=Path('/tmp/codex-multi-7v75wvem/BYTECODE_BUNDLE.txt').read_text()
[codex:1207805] hexstr=re.search(r'0x[0-9a-fA-F]+',hexdata).group(0)[2:]
[codex:1207805] code=bytes.fromhex(hexstr)
[codex:1207805] 
[codex:1207805] opnames={
[codex:1207805] 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:1207805] 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:1207805] 0x20:'SHA3',
[codex:1207805] 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:1207805] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1207805] 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:1207805] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1207805] 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:1207805] 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:1207805] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1207805] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1207805] }
[codex:1207805] 
[codex:1207805] # disassemble
[codex:1207805] ops=[]
[codex:1207805] i=0
[codex:1207805] while i<len(code):
[codex:1207805]     op=code[i]
[codex:1207805]     name=opnames.get(op,'UNKNOWN')
[codex:1207805]     if 0x60<=op<=0x7f:
[codex:1207805]         n=op-0x5f
[codex:1207805]         data=code[i+1:i+1+n]
[codex:1207805]         ops.append((i,name,n,data))
[codex:1207805]         i+=1+n
[codex:1207805]     else:
[codex:1207805]         ops.append((i,name,0,b''))
[codex:1207805]         i+=1
[codex:1207805] 
[codex:1207805] # print around 0x3034
[codex:1207805] start=0x3010
[codex:1207805] end=0x3070
[codex:1207805] for pc,name,n,data in ops:
[codex:1207805]     if pc<start or pc>end:
[codex:1207805]         continue
[codex:1207805]     extra=''
[codex:1207805]     if n:
[codex:1207805]         extra='0x'+data.hex()
[codex:1207805]     print(f\"{pc:04x}: {name} {extra}\")
[codex:1207805] PY" in /tmp/codex-multi-7v75wvem succeeded in 33ms:
[codex:1207805] 3012: JUMP 
[codex:1207805] 3013: JUMPDEST 
[codex:1207805] 3014: PUSH1 0x01
[codex:1207805] 3016: ADD 
[codex:1207805] 3017: SWAP4 
[codex:1207805] 3018: SWAP3 
[codex:1207805] 3019: POP 
[codex:1207805] 301a: POP 
[codex:1207805] 301b: POP 
[codex:1207805] 301c: JUMP 
[codex:1207805] 301d: JUMPDEST 
[codex:1207805] 301e: PUSH1 0x00
[codex:1207805] 3020: PUSH2 0xffff
[codex:1207805] 3023: DUP1 
[codex:1207805] 3024: DUP4 
[codex:1207805] 3025: AND 
[codex:1207805] 3026: DUP2 
[codex:1207805] 3027: DUP2 
[codex:1207805] 3028: SUB 
[codex:1207805] 3029: PUSH2 0x3013
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Analyzing bridge contract bytecode for access control and exploits**
[codex:1207805] exec
[codex:1207805] /bin/bash -lc "python - <<'PY'
[codex:1207805] import re
[codex:1207805] from pathlib import Path
[codex:1207805] hexdata=Path('/tmp/codex-multi-7v75wvem/BYTECODE_BUNDLE.txt').read_text()
[codex:1207805] hexstr=re.search(r'0x[0-9a-fA-F]+',hexdata).group(0)[2:]
[codex:1207805] code=bytes.fromhex(hexstr)
[codex:1207805] 
[codex:1207805] # simple disasm to list opcode counts
[codex:1207805] from collections import Counter
[codex:1207805] 
[codex:1207805] ops=[]
[codex:1207805] counts=Counter()
[codex:1207805] 
[codex:1207805] i=0
[codex:1207805] while i<len(code):
[codex:1207805]     op=code[i]
[codex:1207805]     counts[op]+=1
[codex:1207805]     if 0x60<=op<=0x7f:
[codex:1207805]         i+=1+(op-0x5f)
[codex:1207805]     else:
[codex:1207805]         i+=1
[codex:1207805] 
[codex:1207805] # check staticcall, delegatecall, selfdestruct
[codex:1207805] for name,opcode in [('STATICCALL',0xfa),('DELEGATECALL',0xf4),('SELFDESTRUCT',0xff)]:
[codex:1207805]     print(name, counts.get(opcode,0))
[codex:1207805] PY" in /tmp/codex-multi-7v75wvem succeeded in 34ms:
[codex:1207805] STATICCALL 2
[codex:1207805] DELEGATECALL 0
[codex:1207805] SELFDESTRUCT 0
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Investigating STATICCALL instructions**
[codex:1207805] exec
[codex:1207805] /bin/bash -lc "python - <<'PY'
[codex:1207805] import re
[codex:1207805] from pathlib import Path
[codex:1207805] hexdata=Path('/tmp/codex-multi-7v75wvem/BYTECODE_BUNDLE.txt').read_text()
[codex:1207805] hexstr=re.search(r'0x[0-9a-fA-F]+',hexdata).group(0)[2:]
[codex:1207805] code=bytes.fromhex(hexstr)
[codex:1207805] 
[codex:1207805] opnames={
[codex:1207805] 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:1207805] 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:1207805] 0x20:'SHA3',
[codex:1207805] 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:1207805] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1207805] 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:1207805] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1207805] 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:1207805] 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:1207805] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1207805] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1207805] }
[codex:1207805] 
[codex:1207805] # disassemble
[codex:1207805] ops=[]
[codex:1207805] 
[codex:1207805] i=0
[codex:1207805] while i<len(code):
[codex:1207805]     op=code[i]
[codex:1207805]     name=opnames.get(op,'UNKNOWN')
[codex:1207805]     if 0x60<=op<=0x7f:
[codex:1207805]         n=op-0x5f
[codex:1207805]         data=code[i+1:i+1+n]
[codex:1207805]         ops.append((i,name,n,data))
[codex:1207805]         i+=1+n
[codex:1207805]     else:
[codex:1207805]         ops.append((i,name,0,b''))
[codex:1207805]         i+=1
[codex:1207805] 
[codex:1207805] for pc,name,n,data in ops:
[codex:1207805]     if name=='STATICCALL':
[codex:1207805]         print(f\"{pc:04x}: STATICCALL\")
[codex:1207805] PY" in /tmp/codex-multi-7v75wvem succeeded in 35ms:
[codex:1207805] 109b: STATICCALL
[codex:1207805] 1851: STATICCALL
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Inspecting staticcall positions**
[codex:1207805] exec
[codex:1207805] /bin/bash -lc "python - <<'PY'
[codex:1207805] import re
[codex:1207805] from pathlib import Path
[codex:1207805] hexdata=Path('/tmp/codex-multi-7v75wvem/BYTECODE_BUNDLE.txt').read_text()
[codex:1207805] hexstr=re.search(r'0x[0-9a-fA-F]+',hexdata).group(0)[2:]
[codex:1207805] code=bytes.fromhex(hexstr)
[codex:1207805] 
[codex:1207805] opnames={
[codex:1207805] 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:1207805] 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:1207805] 0x20:'SHA3',
[codex:1207805] 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:1207805] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1207805] 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:1207805] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1207805] 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:1207805] 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:1207805] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1207805] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1207805] }
[codex:1207805] 
[codex:1207805] # disassemble
[codex:1207805] ops=[]
[codex:1207805] 
[codex:1207805] i=0
[codex:1207805] while i<len(code):
[codex:1207805]     op=code[i]
[codex:1207805]     name=opnames.get(op,'UNKNOWN')
[codex:1207805]     if 0x60<=op<=0x7f:
[codex:1207805]         n=op-0x5f
[codex:1207805]         data=code[i+1:i+1+n]
[codex:1207805]         ops.append((i,name,n,data))
[codex:1207805]         i+=1+n
[codex:1207805]     else:
[codex:1207805]         ops.append((i,name,0,b''))
[codex:1207805]         i+=1
[codex:1207805] 
[codex:1207805] for target in [0x109b,0x1851]:
[codex:1207805]     start=target-40
[codex:1207805]     end=target+40
[codex:1207805]     print('---',hex(target),'---')
[codex:1207805]     for pc,name,n,data in ops:
[codex:1207805]         if pc<start or pc>end:
[codex:1207805]             continue
[codex:1207805]         extra=''
[codex:1207805]         if n:
[codex:1207805]             extra='0x'+data.hex()
[codex:1207805]         mark='>>' if pc==target else '  '
[codex:1207805]         print(f\"{mark} {pc:04x}: {name} {extra}\")
[codex:1207805] PY" in /tmp/codex-multi-7v75wvem succeeded in 37ms:
[codex:1207805] --- 0x109b ---
[codex:1207805]    1074: DUP3 
[codex:1207805]    1075: ADD 
[codex:1207805]    1076: MSTORE 
[codex:1207805]    1077: DUP2 
[codex:1207805]    1078: SWAP1 
[codex:1207805]    1079: PUSH1 0x00
[codex:1207805]    107b: SWAP1 
[codex:1207805]    107c: PUSH1 0x01
[codex:1207805]    107e: PUSH1 0x01
[codex:1207805]    1080: PUSH1 0xa0
[codex:1207805]    1082: SHL 
[codex:1207805]    1083: SUB 
[codex:1207805]    1084: DUP4 
[codex:1207805]    1085: AND 
[codex:1207805]    1086: SWAP1 
[codex:1207805]    1087: PUSH4 0x70a08231
[codex:1207805]    108c: SWAP1 
[codex:1207805]    108d: PUSH1 0x24
[codex:1207805]    108f: ADD 
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Analyzing token transfer access controls**
[codex:1207805] exec
[codex:1207805] /bin/bash -lc "python - <<'PY'
[codex:1207805] import re
[codex:1207805] from pathlib import Path
[codex:1207805] hexdata=Path('/tmp/codex-multi-7v75wvem/BYTECODE_BUNDLE.txt').read_text()
[codex:1207805] hexstr=re.search(r'0x[0-9a-fA-F]+',hexdata).group(0)[2:]
[codex:1207805] code=bytes.fromhex(hexstr)
[codex:1207805] 
[codex:1207805] opnames={
[codex:1207805] 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:1207805] 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:1207805] 0x20:'SHA3',
[codex:1207805] 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:1207805] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1207805] 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:1207805] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1207805] 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:1207805] 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:1207805] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1207805] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1207805] }
[codex:1207805] 
[codex:1207805] # disassemble
[codex:1207805] ops=[]
[codex:1207805] 
[codex:1207805] i=0
[codex:1207805] while i<len(code):
[codex:1207805]     op=code[i]
[codex:1207805]     name=opnames.get(op,'UNKNOWN')
[codex:1207805]     if 0x60<=op<=0x7f:
[codex:1207805]         n=op-0x5f
[codex:1207805]         data=code[i+1:i+1+n]
[codex:1207805]         ops.append((i,name,n,data))
[codex:1207805]         i+=1+n
[codex:1207805]     else:
[codex:1207805]         ops.append((i,name,0,b''))
[codex:1207805]         i+=1
[codex:1207805] 
[codex:1207805] # list sstore with window
[codex:1207805] for idx,(pc,name,n,data) in enumerate(ops):
[codex:1207805]     if name"'!='"'SSTORE':
[codex:1207805]         continue
[codex:1207805]     print(f\"SSTORE at {pc:04x}\")
[codex:1207805]     # show previous 8 ops
[codex:1207805]     for j in range(max(0,idx-8), idx+1):
[codex:1207805]         pc2,name2,n2,data2=ops[j]
[codex:1207805]         extra=''
[codex:1207805]         if n2:
[codex:1207805]             extra='0x'+data2.hex()
[codex:1207805]         mark='>>' if j==idx else '  '
[codex:1207805]         print(f\"{mark} {pc2:04x}: {name2} {extra}\")
[codex:1207805]     print('---')
[codex:1207805] PY" in /tmp/codex-multi-7v75wvem succeeded in 35ms:
[codex:1207805] SSTORE at 0aa2
[codex:1207805]    0a99: SWAP1 
[codex:1207805]    0a9a: SHA3 
[codex:1207805]    0a9b: DUP1 
[codex:1207805]    0a9c: SLOAD 
[codex:1207805]    0a9d: PUSH1 0xff
[codex:1207805]    0a9f: NOT 
[codex:1207805]    0aa0: AND 
[codex:1207805]    0aa1: SWAP1 
[codex:1207805] >> 0aa2: SSTORE 
[codex:1207805] ---
[codex:1207805] SSTORE at 0aea
[codex:1207805]    0ae0: DUP1 
[codex:1207805]    0ae1: SLOAD 
[codex:1207805]    0ae2: PUSH1 0xff
[codex:1207805]    0ae4: PUSH1 0xa0
[codex:1207805]    0ae6: SHL 
[codex:1207805]    0ae7: NOT 
[codex:1207805]    0ae8: AND 
[codex:1207805]    0ae9: SWAP1 
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Analyzing admin slot access patterns**
[codex:1207805] exec
[codex:1207805] /bin/bash -lc "python - <<'PY'
[codex:1207805] import re
[codex:1207805] from pathlib import Path
[codex:1207805] hexdata=Path('/tmp/codex-multi-7v75wvem/BYTECODE_BUNDLE.txt').read_text()
[codex:1207805] hexstr=re.search(r'0x[0-9a-fA-F]+',hexdata).group(0)[2:]
[codex:1207805] code=bytes.fromhex(hexstr)
[codex:1207805] 
[codex:1207805] opnames={
[codex:1207805] 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:1207805] 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:1207805] 0x20:'SHA3',
[codex:1207805] 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:1207805] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1207805] 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:1207805] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1207805] 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:1207805] 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:1207805] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1207805] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1207805] }
[codex:1207805] 
[codex:1207805] # disassemble
[codex:1207805] ops=[]
[codex:1207805] 
[codex:1207805] i=0
[codex:1207805] while i<len(code):
[codex:1207805]     op=code[i]
[codex:1207805]     name=opnames.get(op,'UNKNOWN')
[codex:1207805]     if 0x60<=op<=0x7f:
[codex:1207805]         n=op-0x5f
[codex:1207805]         data=code[i+1:i+1+n]
[codex:1207805]         ops.append((i,name,n,data))
[codex:1207805]         i+=1+n
[codex:1207805]     else:
[codex:1207805]         ops.append((i,name,0,b''))
[codex:1207805]         i+=1
[codex:1207805] 
[codex:1207805] # find SLOAD preceded by PUSH1 0x00
[codex:1207805] for idx,(pc,name,n,data) in enumerate(ops):
[codex:1207805]     if name"'!='"'SLOAD':
[codex:1207805]         continue
[codex:1207805]     if idx==0:
[codex:1207805]         continue
[codex:1207805]     prev=ops[idx-1]
[codex:1207805]     if prev[1].startswith('PUSH') and prev[3]==b'\\x00':
[codex:1207805]         # print window
[codex:1207805]         print(f\"SLOAD slot0 at {pc:04x}\")
[codex:1207805]         for j in range(max(0,idx-5), idx+5):
[codex:1207805]             pc2,name2,n2,data2=ops[j]
[codex:1207805]             extra=''
[codex:1207805]             if n2:
[codex:1207805]                 extra='0x'+data2.hex()
[codex:1207805]             mark='>>' if j==idx else '  '
[codex:1207805]             print(f\"{mark} {pc2:04x}: {name2} {extra}\")
[codex:1207805]         print('---')
[codex:1207805] PY" in /tmp/codex-multi-7v75wvem succeeded in 34ms:
[codex:1207805] SLOAD slot0 at 079b
[codex:1207805]    0795: SLOAD 
[codex:1207805]    0796: DUP2 
[codex:1207805]    0797: JUMP 
[codex:1207805]    0798: JUMPDEST 
[codex:1207805]    0799: PUSH1 0x00
[codex:1207805] >> 079b: SLOAD 
[codex:1207805]    079c: PUSH1 0x01
[codex:1207805]    079e: PUSH1 0x01
[codex:1207805]    07a0: PUSH1 0xa0
[codex:1207805]    07a2: SHL 
[codex:1207805] ---
[codex:1207805] SLOAD slot0 at 0a51
[codex:1207805]    0a49: JUMP 
[codex:1207805]    0a4a: JUMPDEST 
[codex:1207805]    0a4b: CALLER 
[codex:1207805]    0a4c: PUSH2 0x0a5d
[codex:1207805]    0a4f: PUSH1 0x00
[codex:1207805] >> 0a51: SLOAD 
[codex:1207805]    0a52: PUSH1 0x01
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Analyzing storage and access checks**
[codex:1207805] exec
[codex:1207805] /bin/bash -lc "python - <<'PY'
[codex:1207805] import re
[codex:1207805] from pathlib import Path
[codex:1207805] hexdata=Path('/tmp/codex-multi-7v75wvem/BYTECODE_BUNDLE.txt').read_text()
[codex:1207805] hexstr=re.search(r'0x[0-9a-fA-F]+',hexdata).group(0)[2:]
[codex:1207805] code=bytes.fromhex(hexstr)
[codex:1207805] 
[codex:1207805] opnames={
[codex:1207805] 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:1207805] 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:1207805] 0x20:'SHA3',
[codex:1207805] 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:1207805] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1207805] 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:1207805] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1207805] 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:1207805] 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:1207805] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1207805] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1207805] }
[codex:1207805] 
[codex:1207805] # disassemble
[codex:1207805] ops=[]
[codex:1207805] 
[codex:1207805] i=0
[codex:1207805] while i<len(code):
[codex:1207805]     op=code[i]
[codex:1207805]     name=opnames.get(op,'UNKNOWN')
[codex:1207805]     if 0x60<=op<=0x7f:
[codex:1207805]         n=op-0x5f
[codex:1207805]         data=code[i+1:i+1+n]
[codex:1207805]         ops.append((i,name,n,data))
[codex:1207805]         i+=1+n
[codex:1207805]     else:
[codex:1207805]         ops.append((i,name,0,b''))
[codex:1207805]         i+=1
[codex:1207805] 
[codex:1207805] start=0x2940
[codex:1207805] end=0x29c5
[codex:1207805] for pc,name,n,data in ops:
[codex:1207805]     if pc<start or pc>end:
[codex:1207805]         continue
[codex:1207805]     extra=''
[codex:1207805]     if n:
[codex:1207805]         extra='0x'+data.hex()
[codex:1207805]     print(f\"{pc:04x}: {name} {extra}\")
[codex:1207805] PY" in /tmp/codex-multi-7v75wvem succeeded in 34ms:
[codex:1207805] 2940: PUSH2 0x2953
[codex:1207805] 2943: SWAP1 
[codex:1207805] 2944: PUSH1 0x01
[codex:1207805] 2946: PUSH1 0x50
[codex:1207805] 2948: SHL 
[codex:1207805] 2949: SWAP1 
[codex:1207805] 294a: DIV 
[codex:1207805] 294b: PUSH1 0xff
[codex:1207805] 294d: AND 
[codex:1207805] 294e: DUP5 
[codex:1207805] 294f: PUSH2 0x2fd7
[codex:1207805] 2952: JUMP 
[codex:1207805] 2953: JUMPDEST 
[codex:1207805] 2954: PUSH1 0x01
[codex:1207805] 2956: PUSH1 0x01
[codex:1207805] 2958: PUSH1 0x40
[codex:1207805] 295a: SHL 
[codex:1207805] 295b: SUB 
[codex:1207805] 295c: AND 
[codex:1207805] 295d: LT 
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Examining function behavior for slot0 update**
[codex:1207805] exec
[codex:1207805] /bin/bash -lc "python - <<'PY'
[codex:1207805] import re
[codex:1207805] from pathlib import Path
[codex:1207805] hexdata=Path('/tmp/codex-multi-7v75wvem/BYTECODE_BUNDLE.txt').read_text()
[codex:1207805] hexstr=re.search(r'0x[0-9a-fA-F]+',hexdata).group(0)[2:]
[codex:1207805] code=bytes.fromhex(hexstr)
[codex:1207805] 
[codex:1207805] opnames={
[codex:1207805] 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:1207805] 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:1207805] 0x20:'SHA3',
[codex:1207805] 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:1207805] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1207805] 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:1207805] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1207805] 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:1207805] 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:1207805] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1207805] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1207805] }
[codex:1207805] 
[codex:1207805] ops=[]
[codex:1207805] 
[codex:1207805] i=0
[codex:1207805] while i<len(code):
[codex:1207805]     op=code[i]
[codex:1207805]     name=opnames.get(op,'UNKNOWN')
[codex:1207805]     if 0x60<=op<=0x7f:
[codex:1207805]         n=op-0x5f
[codex:1207805]         data=code[i+1:i+1+n]
[codex:1207805]         ops.append((i,name,n,data))
[codex:1207805]         i+=1+n
[codex:1207805]     else:
[codex:1207805]         ops.append((i,name,0,b''))
[codex:1207805]         i+=1
[codex:1207805] 
[codex:1207805] start=0x2860
[codex:1207805] end=0x28f0
[codex:1207805] for pc,name,n,data in ops:
[codex:1207805]     if pc<start or pc>end:
[codex:1207805]         continue
[codex:1207805]     extra=''
[codex:1207805]     if n:
[codex:1207805]         extra='0x'+data.hex()
[codex:1207805]     print(f\"{pc:04x}: {name} {extra}\")
[codex:1207805] PY" in /tmp/codex-multi-7v75wvem succeeded in 33ms:
[codex:1207805] 2860: ISZERO 
[codex:1207805] 2861: DUP1 
[codex:1207805] 2862: ISZERO 
[codex:1207805] 2863: PUSH2 0x287d
[codex:1207805] 2866: JUMPI 
[codex:1207805] 2867: POP 
[codex:1207805] 2868: DUP1 
[codex:1207805] 2869: DUP1 
[codex:1207805] 286a: PUSH1 0x20
[codex:1207805] 286c: ADD 
[codex:1207805] 286d: SWAP1 
[codex:1207805] 286e: MLOAD 
[codex:1207805] 286f: DUP2 
[codex:1207805] 2870: ADD 
[codex:1207805] 2871: SWAP1 
[codex:1207805] 2872: PUSH2 0x287b
[codex:1207805] 2875: SWAP2 
[codex:1207805] 2876: SWAP1 
[codex:1207805] 2877: PUSH2 0x3063
[codex:1207805] 287a: JUMP 
[codex:1207805] 
[codex:1207805] thinking
[codex:1207805] **Analyzing bytecode for vulnerabilities**
[codex:1207805] codex
[codex:1207805] {"no_findings":true,"summary":"No concrete, exploitable profit path identified from bytecode-only review of runtime_bytecode.hex; external calls are limited to ERC20-style interactions with no delegatecall/selfdestruct and no evident unprotected value transfer.","findings":[]}
[codex:1207805] tokens used
[codex:1207805] 98,065
[codex:1207805] {"no_findings":true,"summary":"No concrete, exploitable profit path identified from bytecode-only review of runtime_bytecode.hex; external calls are limited to ERC20-style interactions with no delegatecall/selfdestruct and no evident unprotected value transfer.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-31T19:43:54.370116+00:00",
        "returncode": 0
    },
    "summary": "No concrete, exploitable profit path identified from bytecode-only review of runtime_bytecode.hex; external calls are limited to ERC20-style interactions with no delegatecall/selfdestruct and no evident unprotected value transfer.",
    "raw_final": {
        "summary": "No concrete, exploitable profit path identified from bytecode-only review of runtime_bytecode.hex; external calls are limited to ERC20-style interactions with no delegatecall/selfdestruct and no evident unprotected value transfer.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
6
EXT*/BALANCE
5
Total opcodes
7773
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x0010
0000000b: JUMPI
0000000c: PUSH1 0x00
0000000e: DUP1
0000000f: REVERT
00000010: JUMPDEST
00000011: POP
00000012: PUSH1 0x04
00000014: CALLDATASIZE
00000015: LT
00000016: PUSH2 0x0274
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x9ab7cfaa
00000026: GT
00000027: PUSH2 0x0151
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xd2763186
00000031: GT
00000032: PUSH2 0x00c3
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xe8a70ee2
0000003c: GT
0000003d: PUSH2 0x0087
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xe8a70ee2
00000047: EQ
00000048: PUSH2 0x0717
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xe9935b4a
00000052: EQ
00000053: PUSH2 0x072a
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xf2e0ec48
0000005d: EQ
0000005e: PUSH2 0x073d
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xf4daaba1
00000068: EQ
00000069: PUSH2 0x0750
0000006c: JUMPI
0000006d: DUP1
0000006e: PUSH4 0xf6246ea1
00000073: EQ
00000074: PUSH2 0x0778
00000077: JUMPI
00000078: DUP1
00000079: PUSH4 0xf851a440
0000007e: EQ
0000007f: PUSH2 0x0798
00000082: JUMPI
00000083: PUSH1 0x00
00000085: DUP1
00000086: REVERT
00000087: JUMPDEST
00000088: DUP1
00000089: PUSH4 0xd2763186
0000008e: EQ
0000008f: PUSH2 0x0696
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0xd4673de9
00000099: EQ
0000009a: PUSH2 0x06a9
0000009d: JUMPI
0000009e: DUP1
0000009f: PUSH4 0xdaf9c210
000000a4: EQ
000000a5: PUSH2 0x06bc
000000a8: JUMPI
000000a9: DUP1
000000aa: PUSH4 0xdbba0f01
000000af: EQ
000000b0: PUSH2 0x06df
000000b3: JUMPI
000000b4: DUP1
000000b5: PUSH4 0xe78cea92
000000ba: EQ
000000bb: PUSH2 0x06f2
000000be: JUMPI
000000bf: PUSH1 0x00
000000c1: DUP1
000000c2: REVERT
000000c3: JUMPDEST
000000c4: DUP1
000000c5: PUSH4 0xbc56602f
000000ca: GT
000000cb: PUSH2 0x0115
000000ce: JUMPI
000000cf: DUP1
000000d0: PUSH4 0xbc56602f
000000d5: EQ
000000d6: PUSH2 0x05d7
000000d9: JUMPI
000000da: DUP1
000000db: PUSH4 0xc639651d
000000e0: EQ
000000e1: PUSH2 0x05f7
000000e4: JUMPI
000000e5: DUP1
000000e6: PUSH4 0xc652a0b5
000000eb: EQ
000000ec: PUSH2 0x0617
000000ef: JUMPI
000000f0: DUP1
000000f1: PUSH4 0xc859b3fe
000000f6: EQ
000000f7: PUSH2 0x0640
000000fa: JUMPI
000000fb: DUP1
000000fc: PUSH4 0xc86726f6
00000101: EQ
00000102: PUSH2 0x0653
00000105: JUMPI
00000106: DUP1
00000107: PUSH4 0xcf6682a2
0000010c: EQ
0000010d: PUSH2 0x0676
00000110: JUMPI
00000111: PUSH1 0x00
00000113: DUP1
00000114: REVERT
00000115: JUMPDEST
00000116: DUP1
00000117: PUSH4 0x9ab7cfaa
0000011c: EQ
0000011d: PUSH2 0x04b1
00000120: JUMPI
00000121: DUP1
00000122: PUSH4 0x9f0ebb93
00000127: EQ
00000128: PUSH2 0x04c5
0000012b: JUMPI
0000012c: DUP1
0000012d: PUSH4 0xaee9c872
00000132: EQ
00000133: PUSH2 0x04fc
00000136: JUMPI
00000137: DUP1
00000138: PUSH4 0xb32c4d8d
0000013d: EQ
0000013e: PUSH2 0x051c
00000141: JUMPI
00000142: DUP1
00000143: PUSH4 0xb5af090f
00000148: EQ
00000149: PUSH2 0x05ab
0000014c: JUMPI
0000014d: PUSH1 0x00
0000014f: DUP1
00000150: REVERT
00000151: JUMPDEST
00000152: DUP1
00000153: PUSH4 0x75829def
00000158: GT
00000159: PUSH2 0x01ea
0000015c: JUMPI
0000015d: DUP1
0000015e: PUSH4 0x8456cb59
00000163: GT
00000164: PUSH2 0x01ae
00000167: JUMPI
00000168: DUP1
00000169: PUSH4 0x8456cb59
0000016e: EQ
0000016f: PUSH2 0x043e
00000172: JUMPI
00000173: DUP1
00000174: PUSH4 0x87ea0961
00000179: EQ
0000017a: PUSH2 0x0446
0000017d: JUMPI
0000017e: DUP1
0000017f: PUSH4 0x8bad0c0a
00000184: EQ
00000185: PUSH2 0x0460
00000188: JUMPI
00000189: DUP1
0000018a: PUSH4 0x8dd14802
0000018f: EQ
00000190: PUSH2 0x0468
00000193: JUMPI
00000194: DUP1
00000195: PUSH4 0x90e0cfcb
0000019a: EQ
0000019b: PUSH2 0x047b
0000019e: JUMPI
0000019f: DUP1
000001a0: PUSH4 0x920b0308
000001a5: EQ
000001a6: PUSH2 0x049e
000001a9: JUMPI
000001aa: PUSH1 0x00
000001ac: DUP1
000001ad: REVERT
000001ae: JUMPDEST
000001af: DUP1
000001b0: PUSH4 0x75829def
000001b5: EQ
000001b6: PUSH2 0x03f5
000001b9: JUMPI
000001ba: DUP1
000001bb: PUSH4 0x770be784
000001c0: EQ
000001c1: PUSH2 0x0408
000001c4: JUMPI
000001c5: DUP1
000001c6: PUSH4 0x7d7763ce
000001cb: EQ
000001cc: PUSH2 0x041b
000001cf: JUMPI
000001d0: DUP1
000001d1: PUSH4 0x8129fc1c
000001d6: EQ
000001d7: PUSH2 0x042e
000001da: JUMPI
000001db: DUP1
000001dc: PUSH4 0x82146138
000001e1: EQ
000001e2: PUSH2 0x0436
000001e5: JUMPI
000001e6: PUSH1 0x00
000001e8: DUP1
000001e9: REVERT
000001ea: JUMPDEST
000001eb: DUP1
000001ec: PUSH4 0x3f4ba83a
000001f1: GT
000001f2: PUSH2 0x023c
000001f5: JUMPI
000001f6: DUP1
000001f7: PUSH4 0x3f4ba83a
000001fc: EQ
000001fd: PUSH2 0x0316
00000200: JUMPI
00000201: DUP1
00000202: PUSH4 0x4013c89c
00000207: EQ
00000208: PUSH2 0x031e
0000020b: JUMPI
0000020c: DUP1
0000020d: PUSH4 0x41220439
00000212: EQ
00000213: PUSH2 0x0331
00000216: JUMPI
00000217: DUP1
00000218: PUSH4 0x4506e935
0000021d: EQ
0000021e: PUSH2 0x0344
00000221: JUMPI
00000222: DUP1
00000223: PUSH4 0x5ac44282
00000228: EQ
00000229: PUSH2 0x036f
0000022c: JUMPI
0000022d: DUP1
0000022e: PUSH4 0x5c975abb
00000233: EQ
00000234: PUSH2 0x03d7
00000237: JUMPI
00000238: PUSH1 0x00
0000023a: DUP1
0000023b: REVERT
0000023c: JUMPDEST
0000023d: DUP1
0000023e: PUSH4 0x085c967f
00000243: EQ
00000244: PUSH2 0x0279
00000247: JUMPI
00000248: DUP1
00000249: PUSH4 0x2325b5f7
0000024e: EQ
0000024f: PUSH2 0x02a3
00000252: JUMPI
00000253: DUP1
00000254: PUSH4 0x26b3293f
00000259: EQ
0000025a: PUSH2 0x02c9
0000025d: JUMPI
0000025e: DUP1
0000025f: PUSH4 0x284c0c44
00000264: EQ
00000265: PUSH2 0x02de
00000268: JUMPI
00000269: DUP1
0000026a: PUSH4 0x306275be
0000026f: EQ
00000270: PUSH2 0x0303
00000273: JUMPI
00000274: JUMPDEST
00000275: PUSH1 0x00
00000277: DUP1
00000278: REVERT
00000279: JUMPDEST
0000027a: PUSH2 0x028c
0000027d: PUSH2 0x0287
00000280: CALLDATASIZE
00000281: PUSH1 0x04
00000283: PUSH2 0x2ad5
00000286: JUMP
00000287: JUMPDEST
00000288: PUSH2 0x07a9
0000028b: JUMP
0000028c: JUMPDEST
0000028d: PUSH1 0x40
0000028f: MLOAD
00000290: PUSH2 0x029a
00000293: SWAP3
00000294: SWAP2
00000295: SWAP1
00000296: PUSH2 0x2b26
00000299: JUMP
0000029a: JUMPDEST
0000029b: PUSH1 0x40
0000029d: MLOAD
0000029e: DUP1
0000029f: SWAP2
000002a0: SUB
000002a1: SWAP1
000002a2: RETURN
000002a3: JUMPDEST
000002a4: PUSH1 0x02
000002a6: SLOAD
000002a7: PUSH2 0x02b7
000002aa: SWAP1
000002ab: PUSH1 0x01
000002ad: PUSH1 0x58
000002af: SHL
000002b0: SWAP1
000002b1: DIV
000002b2: PUSH1 0xff
000002b4: AND
000002b5: DUP2
000002b6: JUMP
000002b7: JUMPDEST
000002b8: PUSH1 0x40
000002ba: MLOAD
000002bb: PUSH1 0xff
000002bd: SWAP1
000002be: SWAP2
000002bf: AND
000002c0: DUP2
000002c1: MSTORE
000002c2: PUSH1 0x20
000002c4: ADD
000002c5: PUSH2 0x029a
000002c8: JUMP
000002c9: JUMPDEST
000002ca: PUSH2 0x02dc
000002cd: PUSH2 0x02d7
000002d0: CALLDATASIZE
000002d1: PUSH1 0x04
000002d3: PUSH2 0x2bec
000002d6: JUMP
000002d7: JUMPDEST
000002d8: PUSH2 0x092c
000002db: JUMP
000002dc: JUMPDEST
000002dd: STOP
000002de: JUMPDEST
000002df: PUSH2 0x02f1
000002e2: PUSH2 0x02ec
000002e5: CALLDATASIZE
000002e6: PUSH1 0x04
000002e8: PUSH2 0x2c1f
000002eb: JUMP
000002ec: JUMPDEST
000002ed: PUSH2 0x09dd
000002f0: JUMP
000002f1: JUMPDEST
000002f2: PUSH1 0x40
000002f4: MLOAD
000002f5: PUSH2 0x029a
000002f8: SWAP7
000002f9: SWAP6
000002fa: SWAP5
000002fb: SWAP4
000002fc: SWAP3
000002fd: SWAP2
000002fe: SWAP1
000002ff: PUSH2 0x2c41
00000302: JUMP
00000303: JUMPDEST
00000304: PUSH2 0x02dc
00000307: PUSH2 0x0311
0000030a: CALLDATASIZE
0000030b: PUSH1 0x04
0000030d: PUSH2 0x2c8e
00000310: JUMP
00000311: JUMPDEST
00000312: PUSH2 0x0a4a
00000315: JUMP
00000316: JUMPDEST
00000317: PUSH2 0x02dc
0000031a: PUSH2 0x0aa4
0000031d: JUMP
0000031e: JUMPDEST
0000031f: PUSH2 0x02dc
00000322: PUSH2 0x032c
00000325: CALLDATASIZE
00000326: PUSH1 0x04
00000328: PUSH2 0x2ca9
0000032b: JUMP
0000032c: JUMPDEST
0000032d: PUSH2 0x0b21
00000330: JUMP
00000331: JUMPDEST
00000332: PUSH2 0x02dc
00000335: PUSH2 0x033f
00000338: CALLDATASIZE
00000339: PUSH1 0x04
0000033b: PUSH2 0x2ce1
0000033e: JUMP
0000033f: JUMPDEST
00000340: PUSH2 0x0c7a
00000343: JUMP
00000344: JUMPDEST
00000345: PUSH1 0x02
00000347: SLOAD
00000348: PUSH2 0x0357
0000034b: SWAP1
0000034c: PUSH1 0x01
0000034e: PUSH1 0x01
00000350: PUSH1 0x40
00000352: SHL
00000353: SUB
00000354: AND
00000355: DUP2
00000356: JUMP
00000357: JUMPDEST
00000358: PUSH1 0x40
0000035a: MLOAD
0000035b: PUSH1 0x01
0000035d: PUSH1 0x01
0000035f: PUSH1 0x40
00000361: SHL
00000362: SUB
00000363: SWAP1
00000364: SWAP2
00000365: AND
00000366: DUP2
00000367: MSTORE
00000368: PUSH1 0x20
0000036a: ADD
0000036b: PUSH2 0x029a
0000036e: JUMP
0000036f: JUMPDEST
00000370: PUSH2 0x0382
00000373: PUSH2 0x037d
00000376: CALLDATASIZE
00000377: PUSH1 0x04
00000379: PUSH2 0x2ad5
0000037c: JUMP
0000037d: JUMPDEST
0000037e: PUSH2 0x0e82
00000381: JUMP
00000382: JUMPDEST
00000383: PUSH1 0x40
00000385: DUP1
00000386: MLOAD
00000387: DUP4
00000388: MLOAD
00000389: PUSH1 0x01
0000038b: PUSH1 0x01
0000038d: PUSH1 0x70
0000038f: SHL
00000390: SUB
00000391: AND
00000392: DUP2
00000393: MSTORE
00000394: PUSH1 0x20
00000396: DUP1
00000397: DUP6
00000398: ADD
00000399: MLOAD
0000039a: PUSH1 0x01
0000039c: PUSH1 0x01
0000039e: PUSH1 0x40
000003a0: SHL
000003a1: SUB
000003a2: SWAP1
000003a3: DUP2
000003a4: AND
000003a5: SWAP2
000003a6: DUP4
000003a7: ADD
000003a8: SWAP2
000003a9: SWAP1
000003aa: SWAP2
000003ab: MSTORE
000003ac: DUP5
000003ad: DUP4
000003ae: ADD
000003af: MLOAD
000003b0: AND
000003b1: SWAP2
000003b2: DUP2
000003b3: ADD
000003b4: SWAP2
000003b5: SWAP1
000003b6: SWAP2
000003b7: MSTORE
000003b8: PUSH1 0x60
000003ba: SWAP3
000003bb: DUP4
000003bc: ADD
000003bd: MLOAD
000003be: PUSH2 0xffff
000003c1: AND
000003c2: SWAP3
000003c3: DUP2
000003c4: ADD
000003c5: SWAP3
000003c6: SWAP1
000003c7: SWAP3
000003c8: MSTORE
000003c9: ISZERO
000003ca: ISZERO
000003cb: PUSH1 0x80
000003cd: DUP3
000003ce: ADD
000003cf: MSTORE
000003d0: PUSH1 0xa0
000003d2: ADD
000003d3: PUSH2 0x029a
000003d6: JUMP
000003d7: JUMPDEST
000003d8: PUSH1 0x01
000003da: SLOAD
000003db: PUSH1 0x01
000003dd: PUSH1 0xa0
000003df: SHL
000003e0: SWAP1
000003e1: DIV
000003e2: PUSH1 0xff
000003e4: AND
000003e5: JUMPDEST
000003e6: PUSH1 0x40
000003e8: MLOAD
000003e9: SWAP1
000003ea: ISZERO
000003eb: ISZERO
000003ec: DUP2
000003ed: MSTORE
000003ee: PUSH1 0x20
000003f0: ADD
000003f1: PUSH2 0x029a
000003f4: JUMP
000003f5: JUMPDEST
000003f6: PUSH2 0x02dc
000003f9: PUSH2 0x0403
000003fc: CALLDATASIZE
000003fd: PUSH1 0x04
000003ff: PUSH2 0x2c8e
00000402: JUMP
00000403: JUMPDEST
00000404: PUSH2 0x0f2f
00000407: JUMP
00000408: JUMPDEST
00000409: PUSH2 0x02dc
0000040c: PUSH2 0x0416
0000040f: CALLDATASIZE
00000410: PUSH1 0x04
00000412: PUSH2 0x2c8e
00000415: JUMP
00000416: JUMPDEST
00000417: PUSH2 0x102a
0000041a: JUMP
0000041b: JUMPDEST
0000041c: PUSH2 0x02dc
0000041f: PUSH2 0x0429
00000422: CALLDATASIZE
00000423: PUSH1 0x04
00000425: PUSH2 0x2ca9
00000428: JUMP
00000429: JUMPDEST
0000042a: PUSH2 0x113c
0000042d: JUMP
0000042e: JUMPDEST
0000042f: PUSH2 0x02dc
00000432: PUSH2 0x1191
00000435: JUMP
00000436: JUMPDEST
00000437: PUSH2 0x03e5
0000043a: PUSH2 0x12a9
0000043d: JUMP
0000043e: JUMPDEST
0000043f: PUSH2 0x02dc
00000442: PUSH2 0x1389
00000445: JUMP
00000446: JUMPDEST
00000447: PUSH1 0x01
00000449: SLOAD
0000044a: PUSH2 0x0357
0000044d: SWAP1
0000044e: PUSH1 0x01
00000450: PUSH1 0xa8
00000452: SHL
00000453: SWAP1
00000454: DIV
00000455: PUSH1 0x01
00000457: PUSH1 0x01
00000459: PUSH1 0x40
0000045b: SHL
0000045c: SUB
0000045d: AND
0000045e: DUP2
0000045f: JUMP
00000460: JUMPDEST
00000461: PUSH2 0x02dc
00000464: PUSH2 0x1405
00000467: JUMP
00000468: JUMPDEST
00000469: PUSH2 0x02dc
0000046c: PUSH2 0x0476
0000046f: CALLDATASIZE
00000470: PUSH1 0x04
00000472: PUSH2 0x2c8e
00000475: JUMP
00000476: JUMPDEST
00000477: PUSH2 0x1488
0000047a: JUMP
0000047b: JUMPDEST
0000047c: PUSH2 0x03e5
0000047f: PUSH2 0x0489
00000482: CALLDATASIZE
00000483: PUSH1 0x04
00000485: PUSH2 0x2c8e
00000488: JUMP
00000489: JUMPDEST
0000048a: PUSH1 0x0f
0000048c: PUSH1 0x20
0000048e: MSTORE
0000048f: PUSH1 0x00
00000491: SWAP1
00000492: DUP2
00000493: MSTORE
00000494: PUSH1 0x40
00000496: SWAP1
00000497: KECCAK256
00000498: SLOAD
00000499: PUSH1 0xff
0000049b: AND
0000049c: DUP2
0000049d: JUMP
0000049e: JUMPDEST
0000049f: PUSH2 0x02dc
000004a2: PUSH2 0x04ac
000004a5: CALLDATASIZE
000004a6: PUSH1 0x04
000004a8: PUSH2 0x2ca9
000004ab: JUMP
000004ac: JUMPDEST
000004ad: PUSH2 0x164d
000004b0: JUMP
000004b1: JUMPDEST
000004b2: PUSH1 0x02
000004b4: SLOAD
000004b5: PUSH2 0x02b7
000004b8: SWAP1
000004b9: PUSH1 0x01
000004bb: PUSH1 0x50
000004bd: SHL
000004be: SWAP1
000004bf: DIV
000004c0: PUSH1 0xff
000004c2: AND
000004c3: DUP2
000004c4: JUMP
000004c5: JUMPDEST
000004c6: PUSH2 0x04ee
000004c9: PUSH2 0x04d3
000004cc: CALLDATASIZE
000004cd: PUSH1 0x04
000004cf: PUSH2 0x2c8e
000004d2: JUMP
000004d3: JUMPDEST
000004d4: PUSH1 0x01
000004d6: PUSH1 0x01
000004d8: PUSH1 0xa0
000004da: SHL
000004db: SUB
000004dc: AND
000004dd: PUSH1 0x00
000004df: SWAP1
000004e0: DUP2
000004e1: MSTORE
000004e2: PUSH1 0x11
000004e4: PUSH1 0x20
000004e6: MSTORE
000004e7: PUSH1 0x40
000004e9: SWAP1
000004ea: KECCAK256
000004eb: SLOAD
000004ec: SWAP1
000004ed: JUMP
000004ee: JUMPDEST
000004ef: PUSH1 0x40
000004f1: MLOAD
000004f2: SWAP1
000004f3: DUP2
000004f4: MSTORE
000004f5: PUSH1 0x20
000004f7: ADD
000004f8: PUSH2 0x029a
000004fb: JUMP
000004fc: JUMPDEST
000004fd: PUSH2 0x04ee
00000500: PUSH2 0x050a
00000503: CALLDATASIZE
00000504: PUSH1 0x04
00000506: PUSH2 0x2c8e
00000509: JUMP
0000050a: JUMPDEST
0000050b: PUSH1 0x13
0000050d: PUSH1 0x20
0000050f: MSTORE
00000510: PUSH1 0x00
00000512: SWAP1
00000513: DUP2
00000514: MSTORE
00000515: PUSH1 0x40
00000517: SWAP1
00000518: KECCAK256
00000519: SLOAD
0000051a: DUP2
0000051b: JUMP
0000051c: JUMPDEST
0000051d: PUSH2 0x0570
00000520: PUSH2 0x052a
00000523: CALLDATASIZE
00000524: PUSH1 0x04
00000526: PUSH2 0x2ad5
00000529: JUMP
0000052a: JUMPDEST
0000052b: PUSH1 0x0d
0000052d: PUSH1 0x20
0000052f: MSTORE
00000530: PUSH1 0x00
00000532: SWAP1
00000533: DUP2
00000534: MSTORE
00000535: PUSH1 0x40
00000537: SWAP1
00000538: KECCAK256
00000539: SLOAD
0000053a: PUSH1 0x01
0000053c: PUSH1 0x01
0000053e: PUSH1 0x70
00000540: SHL
00000541: SUB
00000542: DUP2
00000543: AND
00000544: SWAP1
00000545: PUSH1 0x01
00000547: PUSH1 0x01
00000549: PUSH1 0x40
0000054b: SHL
0000054c: SUB
0000054d: PUSH1 0x01
0000054f: PUSH1 0x70
00000551: SHL
00000552: DUP3
00000553: DIV
00000554: DUP2
00000555: AND
00000556: SWAP2
00000557: PUSH1 0x01
00000559: PUSH1 0xb0
0000055b: SHL
0000055c: DUP2
0000055d: DIV
0000055e: SWAP1
0000055f: SWAP2
00000560: AND
00000561: SWAP1
00000562: PUSH2 0xffff
00000565: PUSH1 0x01
00000567: PUSH1 0xf0
00000569: SHL
0000056a: SWAP1
0000056b: SWAP2
0000056c: DIV
0000056d: AND
0000056e: DUP5
0000056f: JUMP
00000570: JUMPDEST
00000571: PUSH1 0x40
00000573: DUP1
00000574: MLOAD
00000575: PUSH1 0x01
00000577: PUSH1 0x01
00000579: PUSH1 0x70
0000057b: SHL
0000057c: SUB
0000057d: SWAP6
0000057e: SWAP1
0000057f: SWAP6
00000580: AND
00000581: DUP6
00000582: MSTORE
00000583: PUSH1 0x01
00000585: PUSH1 0x01
00000587: PUSH1 0x40
00000589: SHL
0000058a: SUB
0000058b: SWAP4
0000058c: DUP5
0000058d: AND
0000058e: PUSH1 0x20
00000590: DUP7
00000591: ADD
00000592: MSTORE
00000593: SWAP2
00000594: SWAP1
00000595: SWAP3
00000596: AND
00000597: SWAP1
00000598: DUP4
00000599: ADD
0000059a: MSTORE
0000059b: PUSH2 0xffff
0000059e: AND
0000059f: PUSH1 0x60
000005a1: DUP3
000005a2: ADD
000005a3: MSTORE
000005a4: PUSH1 0x80
000005a6: ADD
000005a7: PUSH2 0x029a
000005aa: JUMP
000005ab: JUMPDEST
000005ac: PUSH2 0x03e5
000005af: PUSH2 0x05b9
000005b2: CALLDATASIZE
000005b3: PUSH1 0x04
000005b5: PUSH2 0x2c8e
000005b8: JUMP
000005b9: JUMPDEST
000005ba: PUSH1 0x01
000005bc: PUSH1 0x01
000005be: PUSH1 0xa0
000005c0: SHL
000005c1: SUB
000005c2: AND
000005c3: PUSH1 0x00
000005c5: SWAP1
000005c6: DUP2
000005c7: MSTORE
000005c8: PUSH1 0x0e
000005ca: PUSH1 0x20
000005cc: MSTORE
000005cd: PUSH1 0x40
000005cf: SWAP1
000005d0: KECCAK256
000005d1: SLOAD
000005d2: PUSH1 0xff
000005d4: AND
000005d5: SWAP1
000005d6: JUMP
000005d7: JUMPDEST
000005d8: PUSH2 0x04ee
000005db: PUSH2 0x05e5
000005de: CALLDATASIZE
000005df: PUSH1 0x04
000005e1: PUSH2 0x2c8e
000005e4: JUMP
000005e5: JUMPDEST
000005e6: PUSH1 0x14
000005e8: PUSH1 0x20
000005ea: MSTORE
000005eb: PUSH1 0x00
000005ed: SWAP1
000005ee: DUP2
000005ef: MSTORE
000005f0: PUSH1 0x40
000005f2: SWAP1
000005f3: KECCAK256
000005f4: SLOAD
000005f5: DUP2
000005f6: JUMP
000005f7: JUMPDEST
000005f8: PUSH2 0x04ee
000005fb: PUSH2 0x0605
000005fe: CALLDATASIZE
000005ff: PUSH1 0x04
00000601: PUSH2 0x2c8e
00000604: JUMP
00000605: JUMPDEST
00000606: PUSH1 0x12
00000608: PUSH1 0x20
0000060a: MSTORE
0000060b: PUSH1 0x00
0000060d: SWAP1
0000060e: DUP2
0000060f: MSTORE
00000610: PUSH1 0x40
00000612: SWAP1
00000613: KECCAK256
00000614: SLOAD
00000615: DUP2
00000616: JUMP
00000617: JUMPDEST
00000618: PUSH2 0x04ee
0000061b: PUSH2 0x0625
0000061e: CALLDATASIZE
0000061f: PUSH1 0x04
00000621: PUSH2 0x2c8e
00000624: JUMP
00000625: JUMPDEST
00000626: PUSH1 0x01
00000628: PUSH1 0x01
0000062a: PUSH1 0xa0
0000062c: SHL
0000062d: SUB
0000062e: AND
0000062f: PUSH1 0x00
00000631: SWAP1
00000632: DUP2
00000633: MSTORE
00000634: PUSH1 0x12
00000636: PUSH1 0x20
00000638: MSTORE
00000639: PUSH1 0x40
0000063b: SWAP1
0000063c: KECCAK256
0000063d: SLOAD
0000063e: SWAP1
0000063f: JUMP
00000640: JUMPDEST
00000641: PUSH2 0x02dc
00000644: PUSH2 0x064e
00000647: CALLDATASIZE
00000648: PUSH1 0x04
0000064a: PUSH2 0x2d57
0000064d: JUMP
0000064e: JUMPDEST
0000064f: PUSH2 0x16a2
00000652: JUMP
00000653: JUMPDEST
00000654: PUSH2 0x03e5
00000657: PUSH2 0x0661
0000065a: CALLDATASIZE
0000065b: PUSH1 0x04
0000065d: PUSH2 0x2c8e
00000660: JUMP
00000661: JUMPDEST
00000662: PUSH1 0x10
00000664: PUSH1 0x20
00000666: MSTORE
00000667: PUSH1 0x00
00000669: SWAP1
0000066a: DUP2
0000066b: MSTORE
0000066c: PUSH1 0x40
0000066e: SWAP1
0000066f: KECCAK256
00000670: SLOAD
00000671: PUSH1 0xff
00000673: AND
00000674: DUP2
00000675: JUMP
00000676: JUMPDEST
00000677: PUSH2 0x04ee
0000067a: PUSH2 0x0684
0000067d: CALLDATASIZE
0000067e: PUSH1 0x04
00000680: PUSH2 0x2c8e
00000683: JUMP
00000684: JUMPDEST
00000685: PUSH1 0x15
00000687: PUSH1 0x20
00000689: MSTORE
0000068a: PUSH1 0x00
0000068c: SWAP1
0000068d: DUP2
0000068e: MSTORE
0000068f: PUSH1 0x40
00000691: SWAP1
00000692: KECCAK256
00000693: SLOAD
00000694: DUP2
00000695: JUMP
00000696: JUMPDEST
00000697: PUSH2 0x02dc
0000069a: PUSH2 0x06a4
0000069d: CALLDATASIZE
0000069e: PUSH1 0x04
000006a0: PUSH2 0x2c8e
000006a3: JUMP
000006a4: JUMPDEST
000006a5: PUSH2 0x1752
000006a8: JUMP
000006a9: JUMPDEST
000006aa: PUSH2 0x02dc
000006ad: PUSH2 0x06b7
000006b0: CALLDATASIZE
000006b1: PUSH1 0x04
000006b3: PUSH2 0x2dea
000006b6: JUMP
000006b7: JUMPDEST
000006b8: PUSH2 0x18a7
000006bb: JUMP
000006bc: JUMPDEST
000006bd: PUSH2 0x03e5
000006c0: PUSH2 0x06ca
000006c3: CALLDATASIZE
000006c4: PUSH1 0x04
000006c6: PUSH2 0x2c8e
000006c9: JUMP
000006ca: JUMPDEST
000006cb: PUSH1 0x0e
000006cd: PUSH1 0x20
000006cf: MSTORE
000006d0: PUSH1 0x00
000006d2: SWAP1
000006d3: DUP2
000006d4: MSTORE
000006d5: PUSH1 0x40
000006d7: SWAP1
000006d8: KECCAK256
000006d9: SLOAD
000006da: PUSH1 0xff
000006dc: AND
000006dd: DUP2
000006de: JUMP
000006df: JUMPDEST
000006e0: PUSH2 0x03e5
000006e3: PUSH2 0x06ed
000006e6: CALLDATASIZE
000006e7: PUSH1 0x04
000006e9: PUSH2 0x2e0e
000006ec: JUMP
000006ed: JUMPDEST
000006ee: PUSH2 0x1952
000006f1: JUMP
000006f2: JUMPDEST
000006f3: PUSH1 0x01
000006f5: SLOAD
000006f6: PUSH1 0x01
000006f8: PUSH1 0x01
000006fa: PUSH1 0xa0
000006fc: SHL
000006fd: SUB
000006fe: AND
000006ff: JUMPDEST
00000700: PUSH1 0x40
00000702: MLOAD
00000703: PUSH1 0x01
00000705: PUSH1 0x01
00000707: PUSH1 0xa0
00000709: SHL
0000070a: SUB
0000070b: SWAP1
0000070c: SWAP2
0000070d: AND
0000070e: DUP2
0000070f: MSTORE
00000710: PUSH1 0x20
00000712: ADD
00000713: PUSH2 0x029a
00000716: JUMP
00000717: JUMPDEST
00000718: PUSH2 0x02dc
0000071b: PUSH2 0x0725
0000071e: CALLDATASIZE
0000071f: PUSH1 0x04
00000721: PUSH2 0x2e4a
00000724: JUMP
00000725: JUMPDEST
00000726: PUSH2 0x1b3c
00000729: JUMP
0000072a: JUMPDEST
0000072b: PUSH2 0x02dc
0000072e: PUSH2 0x0738
00000731: CALLDATASIZE
00000732: PUSH1 0x04
00000734: PUSH2 0x2bec
00000737: JUMP
00000738: JUMPDEST
00000739: PUSH2 0x1c1b
0000073c: JUMP
0000073d: JUMPDEST
0000073e: PUSH2 0x02dc
00000741: PUSH2 0x074b
00000744: CALLDATASIZE
00000745: PUSH1 0x04
00000747: PUSH2 0x2e4a
0000074a: JUMP
0000074b: JUMPDEST
0000074c: PUSH2 0x1d21
0000074f: JUMP
00000750: JUMPDEST
00000751: PUSH1 0x02
00000753: SLOAD
00000754: PUSH2 0x0765
00000757: SWAP1
00000758: PUSH1 0x01
0000075a: PUSH1 0x40
0000075c: SHL
0000075d: SWAP1
0000075e: DIV
0000075f: PUSH2 0xffff
00000762: AND
00000763: DUP2
00000764: JUMP
00000765: JUMPDEST
00000766: PUSH1 0x40
00000768: MLOAD
00000769: PUSH2 0xffff
0000076c: SWAP1
0000076d: SWAP2
0000076e: AND
0000076f: DUP2
00000770: MSTORE
00000771: PUSH1 0x20
00000773: ADD
00000774: PUSH2 0x029a
00000777: JUMP
00000778: JUMPDEST
00000779: PUSH2 0x04ee
0000077c: PUSH2 0x0786
0000077f: CALLDATASIZE
00000780: PUSH1 0x04
00000782: PUSH2 0x2c8e
00000785: JUMP
00000786: JUMPDEST
00000787: PUSH1 0x11
00000789: PUSH1 0x20
0000078b: MSTORE
0000078c: PUSH1 0x00
0000078e: SWAP1
0000078f: DUP2
00000790: MSTORE
00000791: PUSH1 0x40
00000793: SWAP1
00000794: KECCAK256
00000795: SLOAD
00000796: DUP2
00000797: JUMP
00000798: JUMPDEST
00000799: PUSH1 0x00
0000079b: SLOAD
0000079c: PUSH1 0x01
0000079e: PUSH1 0x01
000007a0: PUSH1 0xa0
000007a2: SHL
000007a3: SUB
000007a4: AND
000007a5: PUSH2 0x06ff
000007a8: JUMP
000007a9: JUMPDEST
000007aa: PUSH1 0x60
000007ac: PUSH1 0x00
000007ae: DUP1
000007af: PUSH1 0x0d
000007b1: DUP2
000007b2: PUSH2 0x07bc
000007b5: PUSH1 0x01
000007b7: DUP8
000007b8: PUSH2 0x2e83
000007bb: JUMP
000007bc: JUMPDEST
000007bd: DUP2
000007be: MSTORE
000007bf: PUSH1 0x20
000007c1: DUP1
000007c2: DUP3
000007c3: ADD
000007c4: SWAP3
000007c5: SWAP1
000007c6: SWAP3
000007c7: MSTORE
000007c8: PUSH1 0x40
000007ca: SWAP1
000007cb: DUP2
000007cc: ADD
000007cd: PUSH1 0x00
000007cf: SWAP1
000007d0: DUP2
000007d1: KECCAK256
000007d2: DUP3
000007d3: MLOAD
000007d4: PUSH1 0x80
000007d6: DUP2
000007d7: ADD
000007d8: DUP5
000007d9: MSTORE
000007da: SWAP1
000007db: SLOAD
000007dc: PUSH1 0x01
000007de: PUSH1 0x01
000007e0: PUSH1 0x70
000007e2: SHL
000007e3: SUB
000007e4: DUP2
000007e5: AND
000007e6: DUP3
000007e7: MSTORE
000007e8: PUSH1 0x01
000007ea: PUSH1 0x70
000007ec: SHL
000007ed: DUP2
000007ee: DIV
000007ef: PUSH1 0x01
000007f1: PUSH1 0x01
000007f3: PUSH1 0x40
000007f5: SHL
000007f6: SUB
000007f7: SWAP1
000007f8: DUP2
000007f9: AND
000007fa: SWAP6
000007fb: DUP4
000007fc: ADD
000007fd: SWAP6
000007fe: SWAP1
000007ff: SWAP6
00000800: MSTORE
00000801: PUSH1 0x01
00000803: PUSH1 0xb0
00000805: SHL
00000806: DUP2
00000807: DIV
00000808: SWAP1
00000809: SWAP5
0000080a: AND
0000080b: SWAP3
0000080c: DUP2
0000080d: ADD
0000080e: SWAP3
0000080f: SWAP1
00000810: SWAP3
00000811: MSTORE
00000812: PUSH1 0x01
00000814: PUSH1 0xf0
00000816: SHL
00000817: SWAP1
00000818: SWAP3
00000819: DIV
0000081a: PUSH2 0xffff
0000081d: AND
0000081e: PUSH1 0x60
00000820: DUP3
00000821: ADD
00000822: MSTORE
00000823: SWAP2
00000824: POP
00000825: PUSH1 0x16
00000827: SWAP1
00000828: PUSH2 0x0832
0000082b: PUSH1 0x01
0000082d: DUP8
0000082e: PUSH2 0x2e83
00000831: JUMP
00000832: JUMPDEST
00000833: DUP2
00000834: MSTORE
00000835: PUSH1 0x20
00000837: ADD
00000838: SWAP1
00000839: DUP2
0000083a: MSTORE
0000083b: PUSH1 0x20
0000083d: ADD
0000083e: PUSH1 0x00
00000840: KECCAK256
00000841: PUSH2 0x0849
00000844: DUP3
00000845: PUSH2 0x1ecf
00000848: JUMP
00000849: JUMPDEST
0000084a: DUP2
0000084b: DUP1
0000084c: SLOAD
0000084d: DUP1
0000084e: PUSH1 0x20
00000850: MUL
00000851: PUSH1 0x20
00000853: ADD
00000854: PUSH1 0x40
00000856: MLOAD
00000857: SWAP1
00000858: DUP2
00000859: ADD
0000085a: PUSH1 0x40
0000085c: MSTORE
0000085d: DUP1
0000085e: SWAP3
0000085f: SWAP2
00000860: SWAP1
00000861: DUP2
00000862: DUP2
00000863: MSTORE
00000864: PUSH1 0x20
00000866: ADD
00000867: PUSH1 0x00
00000869: SWAP1
0000086a: JUMPDEST
0000086b: DUP3
0000086c: DUP3
0000086d: LT
0000086e: ISZERO
0000086f: PUSH2 0x091c
00000872: JUMPI
00000873: PUSH1 0x00
00000875: DUP5
00000876: DUP2
00000877: MSTORE
00000878: PUSH1 0x20
0000087a: SWAP1
0000087b: DUP2
0000087c: SWAP1
0000087d: KECCAK256
0000087e: PUSH1 0x40
00000880: DUP1
00000881: MLOAD
00000882: PUSH1 0xc0
00000884: DUP2
00000885: ADD
00000886: DUP3
00000887: MSTORE
00000888: PUSH1 0x06
0000088a: DUP7
0000088b: MUL
0000088c: SWAP1
0000088d: SWAP3
0000088e: ADD
0000088f: DUP1
00000890: SLOAD
00000891: PUSH1 0x01
00000893: PUSH1 0x01
00000895: PUSH1 0x70
00000897: SHL
00000898: SUB
00000899: AND
0000089a: DUP4
0000089b: MSTORE
0000089c: PUSH1 0x01
0000089e: DUP2
0000089f: ADD
000008a0: SLOAD
000008a1: PUSH1 0x01
000008a3: PUSH1 0x01
000008a5: PUSH1 0xa0
000008a7: SHL
000008a8: SUB
000008a9: SWAP1
000008aa: DUP2
000008ab: AND
000008ac: SWAP5
000008ad: DUP5
000008ae: ADD
000008af: SWAP5
000008b0: SWAP1
000008b1: SWAP5
000008b2: MSTORE
000008b3: PUSH1 0x02
000008b5: DUP2
000008b6: ADD
000008b7: SLOAD
000008b8: SWAP2
000008b9: DUP4
000008ba: ADD
000008bb: SWAP2
000008bc: SWAP1
000008bd: SWAP2
000008be: MSTORE
000008bf: PUSH1 0x03
000008c1: DUP2
000008c2: ADD
000008c3: SLOAD
000008c4: SWAP1
000008c5: SWAP3
000008c6: AND
000008c7: PUSH1 0x60
000008c9: DUP3
000008ca: ADD
000008cb: MSTORE
000008cc: PUSH1 0x04
000008ce: DUP1
000008cf: DUP4
000008d0: ADD
000008d1: SLOAD
000008d2: PUSH1 0x80
000008d4: DUP4
000008d5: ADD
000008d6: MSTORE
000008d7: PUSH1 0x05
000008d9: DUP4
000008da: ADD
000008db: SLOAD
000008dc: SWAP2
000008dd: SWAP3
000008de: SWAP2
000008df: PUSH1 0xa0
000008e1: DUP5
000008e2: ADD
000008e3: SWAP2
000008e4: PUSH1 0xff
000008e6: SWAP1
000008e7: SWAP2
000008e8: AND
000008e9: SWAP1
000008ea: DUP2
000008eb: GT
000008ec: ISZERO
000008ed: PUSH2 0x08f8
000008f0: JUMPI
000008f1: PUSH2 0x08f8
000008f4: PUSH2 0x2aee
000008f7: JUMP
000008f8: JUMPDEST
000008f9: PUSH1 0x04
000008fb: DUP2
000008fc: GT
000008fd: ISZERO
000008fe: PUSH2 0x0909
00000901: JUMPI
00000902: PUSH2 0x0909
00000905: PUSH2 0x2aee
00000908: JUMP
00000909: JUMPDEST
0000090a: DUP2
0000090b: MSTORE
0000090c: POP
0000090d: POP
0000090e: DUP2
0000090f: MSTORE
00000910: PUSH1 0x20
00000912: ADD
00000913: SWAP1
00000914: PUSH1 0x01
00000916: ADD
00000917: SWAP1
00000918: PUSH2 0x086a
0000091b: JUMP
0000091c: JUMPDEST
0000091d: POP
0000091e: POP
0000091f: POP
00000920: POP
00000921: SWAP2
00000922: POP
00000923: SWAP3
00000924: POP
00000925: SWAP3
00000926: POP
00000927: POP
00000928: SWAP2
00000929: POP
0000092a: SWAP2
0000092b: JUMP
0000092c: JUMPDEST
0000092d: PUSH1 0x01
0000092f: SLOAD
00000930: PUSH1 0x01
00000932: PUSH1 0xa0
00000934: SHL
00000935: SWAP1
00000936: DIV
00000937: PUSH1 0xff
00000939: AND
0000093a: ISZERO
0000093b: PUSH2 0x097e
0000093e: JUMPI
0000093f: PUSH1 0x40
00000941: MLOAD
00000942: PUSH3 0x461bcd
00000946: PUSH1 0xe5
00000948: SHL
00000949: DUP2
0000094a: MSTORE
0000094b: PUSH1 0x20
0000094d: PUSH1 0x04
0000094f: DUP3
00000950: ADD
00000951: MSTORE
00000952: PUSH1 0x10
00000954: PUSH1 0x24
00000956: DUP3
00000957: ADD
00000958: MSTORE
00000959: PUSH16 0x14185d5cd8589b194e881c185d5cd959
0000096a: PUSH1 0x82
0000096c: SHL
0000096d: PUSH1 0x44
0000096f: DUP3
00000970: ADD
00000971: MSTORE
00000972: PUSH1 0x64
00000974: ADD
00000975: JUMPDEST
00000976: PUSH1 0x40
00000978: MLOAD
00000979: DUP1
0000097a: SWAP2
0000097b: SUB
0000097c: SWAP1
0000097d: REVERT
0000097e: JUMPDEST
0000097f: PUSH1 0x00
00000981: DUP1
00000982: PUSH2 0x098c
00000985: DUP6
00000986: DUP6
00000987: DUP6
00000988: PUSH2 0x1f00
0000098b: JUMP
0000098c: JUMPDEST
0000098d: PUSH1 0x40
0000098f: DUP1
00000990: MLOAD
00000991: PUSH1 0x01
00000993: PUSH1 0x01
00000995: PUSH1 0x70
00000997: SHL
00000998: SUB
00000999: DUP1
0000099a: DUP6
0000099b: AND
0000099c: DUP3
0000099d: MSTORE
0000099e: DUP4
0000099f: AND
000009a0: PUSH1 0x20
000009a2: DUP3
000009a3: ADD
000009a4: MSTORE
000009a5: SWAP3
000009a6: SWAP5
000009a7: POP
000009a8: SWAP1
000009a9: SWAP3
000009aa: POP
000009ab: PUSH32 0x6c15ce44793c685a79cde26a0bd5419ef4f3a337991f156be7b365962001b4a7
000009cc: SWAP2
000009cd: ADD
000009ce: JUMPDEST
000009cf: PUSH1 0x40
000009d1: MLOAD
000009d2: DUP1
000009d3: SWAP2
000009d4: SUB
000009d5: SWAP1
000009d6: LOG1
000009d7: POP
000009d8: POP
000009d9: POP
000009da: POP
000009db: POP
000009dc: JUMP
000009dd: JUMPDEST
000009de: PUSH1 0x16
000009e0: PUSH1 0x20
000009e2: MSTORE
000009e3: DUP2
000009e4: PUSH1 0x00
000009e6: MSTORE
000009e7: PUSH1 0x40
000009e9: PUSH1 0x00
000009eb: KECCAK256
000009ec: DUP2
000009ed: DUP2
000009ee: SLOAD
000009ef: DUP2
000009f0: LT
000009f1: PUSH2 0x09f9
000009f4: JUMPI
000009f5: PUSH1 0x00
000009f7: DUP1
000009f8: REVERT
000009f9: JUMPDEST
000009fa: PUSH1 0x00
000009fc: SWAP2
000009fd: DUP3
000009fe: MSTORE
000009ff: PUSH1 0x20
00000a01: SWAP1
00000a02: SWAP2
00000a03: KECCAK256
00000a04: PUSH1 0x06
00000a06: SWAP1
00000a07: SWAP2
00000a08: MUL
00000a09: ADD
00000a0a: DUP1
00000a0b: SLOAD
00000a0c: PUSH1 0x01
00000a0e: DUP3
00000a0f: ADD
00000a10: SLOAD
00000a11: PUSH1 0x02
00000a13: DUP4
00000a14: ADD
00000a15: SLOAD
00000a16: PUSH1 0x03
00000a18: DUP5
00000a19: ADD
00000a1a: SLOAD
00000a1b: PUSH1 0x04
00000a1d: DUP6
00000a1e: ADD
00000a1f: SLOAD
00000a20: PUSH1 0x05
00000a22: SWAP1
00000a23: SWAP6
00000a24: ADD
00000a25: SLOAD
00000a26: PUSH1 0x01
00000a28: PUSH1 0x01
00000a2a: PUSH1 0x70
00000a2c: SHL
00000a2d: SUB
00000a2e: SWAP1
00000a2f: SWAP5
00000a30: AND
00000a31: SWAP7
00000a32: POP
00000a33: PUSH1 0x01
00000a35: PUSH1 0x01
00000a37: PUSH1 0xa0
00000a39: SHL
00000a3a: SUB
00000a3b: SWAP3
00000a3c: DUP4
00000a3d: AND
00000a3e: SWAP6
00000a3f: POP
00000a40: SWAP1
00000a41: SWAP4
00000a42: SWAP2
00000a43: AND
00000a44: SWAP2
00000a45: PUSH1 0xff
00000a47: AND
00000a48: DUP7
00000a49: JUMP
00000a4a: JUMPDEST
00000a4b: CALLER
00000a4c: PUSH2 0x0a5d
00000a4f: PUSH1 0x00
00000a51: SLOAD
00000a52: PUSH1 0x01
00000a54: PUSH1 0x01
00000a56: PUSH1 0xa0
00000a58: SHL
00000a59: SUB
00000a5a: AND
00000a5b: SWAP1
00000a5c: JUMP
00000a5d: JUMPDEST
00000a5e: PUSH1 0x01
00000a60: PUSH1 0x01
00000a62: PUSH1 0xa0
00000a64: SHL
00000a65: SUB
00000a66: AND
00000a67: EQ
00000a68: PUSH2 0x0a83
00000a6b: JUMPI
00000a6c: PUSH1 0x40
00000a6e: MLOAD
00000a6f: PUSH3 0x461bcd
00000a73: PUSH1 0xe5
00000a75: SHL
00000a76: DUP2
00000a77: MSTORE
00000a78: PUSH1 0x04
00000a7a: ADD
00000a7b: PUSH2 0x0975
00000a7e: SWAP1
00000a7f: PUSH2 0x2e96
00000a82: JUMP
00000a83: JUMPDEST
00000a84: PUSH1 0x01
00000a86: PUSH1 0x01
00000a88: PUSH1 0xa0
00000a8a: SHL
00000a8b: SUB
00000a8c: AND
00000a8d: PUSH1 0x00
00000a8f: SWAP1
00000a90: DUP2
00000a91: MSTORE
00000a92: PUSH1 0x0e
00000a94: PUSH1 0x20
00000a96: MSTORE
00000a97: PUSH1 0x40
00000a99: SWAP1
00000a9a: KECCAK256
00000a9b: DUP1
00000a9c: SLOAD
00000a9d: PUSH1 0xff
00000a9f: NOT
00000aa0: AND
00000aa1: SWAP1
00000aa2: SSTORE
00000aa3: JUMP
00000aa4: JUMPDEST
00000aa5: CALLER
00000aa6: PUSH2 0x0ab7
00000aa9: PUSH1 0x00
00000aab: SLOAD
00000aac: PUSH1 0x01
00000aae: PUSH1 0x01
00000ab0: PUSH1 0xa0
00000ab2: SHL
00000ab3: SUB
00000ab4: AND
00000ab5: SWAP1
00000ab6: JUMP
00000ab7: JUMPDEST
00000ab8: PUSH1 0x01
00000aba: PUSH1 0x01
00000abc: PUSH1 0xa0
00000abe: SHL
00000abf: SUB
00000ac0: AND
00000ac1: EQ
00000ac2: PUSH2 0x0add
00000ac5: JUMPI
00000ac6: PUSH1 0x40
00000ac8: MLOAD
00000ac9: PUSH3 0x461bcd
00000acd: PUSH1 0xe5
00000acf: SHL
00000ad0: DUP2
00000ad1: MSTORE
00000ad2: PUSH1 0x04
00000ad4: ADD
00000ad5: PUSH2 0x0975
00000ad8: SWAP1
00000ad9: PUSH2 0x2e96
00000adc: JUMP
00000add: JUMPDEST
00000ade: PUSH1 0x01
00000ae0: DUP1
00000ae1: SLOAD
00000ae2: PUSH1 0xff
00000ae4: PUSH1 0xa0
00000ae6: SHL
00000ae7: NOT
00000ae8: AND
00000ae9: SWAP1
00000aea: SSTORE
00000aeb: PUSH1 0x40
00000aed: MLOAD
00000aee: PUSH1 0x00
00000af0: DUP2
00000af1: MSTORE
00000af2: PUSH32 0x9422424b175dda897495a07b091ef74a3ef715cf6d866fc972954c1c7f459304
00000b13: SWAP1
00000b14: PUSH1 0x20
00000b16: ADD
00000b17: JUMPDEST
00000b18: PUSH1 0x40
00000b1a: MLOAD
00000b1b: DUP1
00000b1c: SWAP2
00000b1d: SUB
00000b1e: SWAP1
00000b1f: LOG1
00000b20: JUMP
00000b21: JUMPDEST
00000b22: CALLER
00000b23: PUSH2 0x0b34
00000b26: PUSH1 0x00
00000b28: SLOAD
00000b29: PUSH1 0x01
00000b2b: PUSH1 0x01
00000b2d: PUSH1 0xa0
00000b2f: SHL
00000b30: SUB
00000b31: AND
00000b32: SWAP1
00000b33: JUMP
00000b34: JUMPDEST
00000b35: PUSH1 0x01
00000b37: PUSH1 0x01
00000b39: PUSH1 0xa0
00000b3b: SHL
00000b3c: SUB
00000b3d: AND
00000b3e: EQ
00000b3f: PUSH2 0x0b5a
00000b42: JUMPI
00000b43: PUSH1 0x40
00000b45: MLOAD
00000b46: PUSH3 0x461bcd
00000b4a: PUSH1 0xe5
00000b4c: SHL
00000b4d: DUP2
00000b4e: MSTORE
00000b4f: PUSH1 0x04
00000b51: ADD
00000b52: PUSH2 0x0975
00000b55: SWAP1
00000b56: PUSH2 0x2e96
00000b59: JUMP
00000b5a: JUMPDEST
00000b5b: PUSH1 0x01
00000b5d: PUSH1 0x01
00000b5f: PUSH1 0xa0
00000b61: SHL
00000b62: SUB
00000b63: DUP3
00000b64: AND
00000b65: PUSH1 0x00
00000b67: SWAP1
00000b68: DUP2
00000b69: MSTORE
00000b6a: PUSH1 0x0e
00000b6c: PUSH1 0x20
00000b6e: MSTORE
00000b6f: PUSH1 0x40
00000b71: SWAP1
00000b72: KECCAK256
00000b73: SLOAD
00000b74: PUSH1 0xff
00000b76: AND
00000b77: PUSH2 0x0b92
00000b7a: JUMPI
00000b7b: PUSH1 0x40
00000b7d: MLOAD
00000b7e: PUSH3 0x461bcd
00000b82: PUSH1 0xe5
00000b84: SHL
00000b85: DUP2
00000b86: MSTORE
00000b87: PUSH1 0x04
00000b89: ADD
00000b8a: PUSH2 0x0975
00000b8d: SWAP1
00000b8e: PUSH2 0x2ed9
00000b91: JUMP
00000b92: JUMPDEST
00000b93: PUSH2 0x0b9b
00000b96: DUP3
00000b97: PUSH2 0x24f0
00000b9a: JUMP
00000b9b: JUMPDEST
00000b9c: ISZERO
00000b9d: PUSH2 0x0bf9
00000ba0: JUMPI
00000ba1: PUSH1 0x40
00000ba3: MLOAD
00000ba4: PUSH3 0x461bcd
00000ba8: PUSH1 0xe5
00000baa: SHL
00000bab: DUP2
00000bac: MSTORE
00000bad: PUSH1 0x20
00000baf: PUSH1 0x04
00000bb1: DUP3
00000bb2: ADD
00000bb3: MSTORE
00000bb4: PUSH1 0x28
00000bb6: PUSH1 0x24
00000bb8: DUP3
00000bb9: ADD
00000bba: MSTORE
00000bbb: PUSH32 0x43616e6e6f7420696e697420666f72206d696e7461626c652f6275726e61626c
00000bdc: PUSH1 0x44
00000bde: DUP3
00000bdf: ADD
00000be0: MSTORE
00000be1: PUSH8 0x6520746f6b656e73
00000bea: PUSH1 0xc0
00000bec: SHL
00000bed: PUSH1 0x64
00000bef: DUP3
00000bf0: ADD
00000bf1: MSTORE
00000bf2: PUSH1 0x84
00000bf4: ADD
00000bf5: PUSH2 0x0975
00000bf8: JUMP
00000bf9: JUMPDEST
00000bfa: PUSH1 0x01
00000bfc: PUSH1 0x01
00000bfe: PUSH1 0xa0
00000c00: SHL
00000c01: SUB
00000c02: DUP3
00000c03: AND
00000c04: PUSH1 0x00
00000c06: SWAP1
00000c07: DUP2
00000c08: MSTORE
00000c09: PUSH1 0x10
00000c0b: PUSH1 0x20
00000c0d: MSTORE
00000c0e: PUSH1 0x40
00000c10: SWAP1
00000c11: KECCAK256
00000c12: SLOAD
00000c13: PUSH1 0xff
00000c15: AND
00000c16: PUSH2 0x0c31
00000c19: JUMPI
00000c1a: PUSH1 0x40
00000c1c: MLOAD
00000c1d: PUSH3 0x461bcd
00000c21: PUSH1 0xe5
00000c23: SHL
00000c24: DUP2
00000c25: MSTORE
00000c26: PUSH1 0x04
00000c28: ADD
00000c29: PUSH2 0x0975
00000c2c: SWAP1
00000c2d: PUSH2 0x2f04
00000c30: JUMP
00000c31: JUMPDEST
00000c32: PUSH1 0x01
00000c34: PUSH1 0x01
00000c36: PUSH1 0xa0
00000c38: SHL
00000c39: SUB
00000c3a: DUP3
00000c3b: AND
00000c3c: PUSH1 0x00
00000c3e: SWAP1
00000c3f: DUP2
00000c40: MSTORE
00000c41: PUSH1 0x13
00000c43: PUSH1 0x20
00000c45: MSTORE
00000c46: PUSH1 0x40
00000c48: DUP2
00000c49: KECCAK256
00000c4a: DUP1
00000c4b: SLOAD
00000c4c: DUP4
00000c4d: SWAP3
00000c4e: SWAP1
00000c4f: PUSH2 0x0c59
00000c52: SWAP1
00000c53: DUP5
00000c54: SWAP1
00000c55: PUSH2 0x2f45
00000c58: JUMP
00000c59: JUMPDEST
00000c5a: SWAP1
00000c5b: SWAP2
00000c5c: SSTORE
00000c5d: POP
00000c5e: DUP3
00000c5f: SWAP1
00000c60: POP
00000c61: PUSH2 0x0c75
00000c64: PUSH1 0x01
00000c66: PUSH1 0x01
00000c68: PUSH1 0xa0
00000c6a: SHL
00000c6b: SUB
00000c6c: DUP3
00000c6d: AND
00000c6e: CALLER
00000c6f: ADDRESS
00000c70: DUP6
00000c71: PUSH2 0x250e
00000c74: JUMP
00000c75: JUMPDEST
00000c76: POP
00000c77: POP
00000c78: POP
00000c79: JUMP
00000c7a: JUMPDEST
00000c7b: CALLER
00000c7c: PUSH2 0x0c8d
00000c7f: PUSH1 0x00
00000c81: SLOAD
00000c82: PUSH1 0x01
00000c84: PUSH1 0x01
00000c86: PUSH1 0xa0
00000c88: SHL
00000c89: SUB
00000c8a: AND
00000c8b: SWAP1
00000c8c: JUMP
00000c8d: JUMPDEST
00000c8e: PUSH1 0x01
00000c90: PUSH1 0x01
00000c92: PUSH1 0xa0
00000c94: SHL
00000c95: SUB
00000c96: AND
00000c97: EQ
00000c98: PUSH2 0x0cb3
00000c9b: JUMPI
00000c9c: PUSH1 0x40
00000c9e: MLOAD
00000c9f: PUSH3 0x461bcd
00000ca3: PUSH1 0xe5
00000ca5: SHL
00000ca6: DUP2
00000ca7: MSTORE
00000ca8: PUSH1 0x04
00000caa: ADD
00000cab: PUSH2 0x0975
00000cae: SWAP1
00000caf: PUSH2 0x2e96
00000cb2: JUMP
00000cb3: JUMPDEST
00000cb4: DUP5
00000cb5: PUSH2 0x0cd5
00000cb8: JUMPI
00000cb9: DUP4
00000cba: PUSH2 0x0cd5
00000cbd: JUMPI
00000cbe: PUSH1 0x40
00000cc0: MLOAD
00000cc1: PUSH3 0x461bcd
00000cc5: PUSH1 0xe5
00000cc7: SHL
00000cc8: DUP2
00000cc9: MSTORE
00000cca: PUSH1 0x04
00000ccc: ADD
00000ccd: PUSH2 0x0975
00000cd0: SWAP1
00000cd1: PUSH2 0x2f04
00000cd4: JUMP
00000cd5: JUMPDEST
00000cd6: PUSH1 0x01
00000cd8: PUSH1 0x01
00000cda: PUSH1 0xa0
00000cdc: SHL
00000cdd: SUB
00000cde: DUP9
00000cdf: AND
00000ce0: PUSH1 0x00
00000ce2: SWAP1
00000ce3: DUP2
00000ce4: MSTORE
00000ce5: PUSH1 0x0e
00000ce7: PUSH1 0x20
00000ce9: SWAP1
00000cea: DUP2
00000ceb: MSTORE
00000cec: PUSH1 0x40
00000cee: DUP1
00000cef: DUP4
00000cf0: KECCAK256
00000cf1: DUP1
00000cf2: SLOAD
00000cf3: PUSH1 0x01
00000cf5: PUSH1 0xff
00000cf7: NOT
00000cf8: SWAP2
00000cf9: DUP3
00000cfa: AND
00000cfb: OR
00000cfc: SWAP1
00000cfd: SWAP2
00000cfe: SSTORE
00000cff: PUSH1 0x0f
00000d01: DUP4
00000d02: MSTORE
00000d03: DUP2
00000d04: DUP5
00000d05: KECCAK256
00000d06: DUP1
00000d07: SLOAD
00000d08: DUP3
00000d09: AND
00000d0a: DUP11
00000d0b: ISZERO
00000d0c: DUP1
00000d0d: ISZERO
00000d0e: SWAP2
00000d0f: SWAP1
00000d10: SWAP2
00000d11: OR
00000d12: SWAP1
00000d13: SWAP2
00000d14: SSTORE
00000d15: PUSH1 0x10
00000d17: DUP5
00000d18: MSTORE
00000d19: DUP3
00000d1a: DUP6
00000d1b: KECCAK256
00000d1c: DUP1
00000d1d: SLOAD
00000d1e: SWAP1
00000d1f: SWAP3
00000d20: AND
00000d21: DUP10
00000d22: ISZERO
00000d23: ISZERO
00000d24: OR
00000d25: SWAP1
00000d26: SWAP2
00000d27: SSTORE
00000d28: PUSH1 0x11
00000d2a: DUP4
00000d2b: MSTORE
00000d2c: DUP2
00000d2d: DUP5
00000d2e: KECCAK256
00000d2f: DUP12
00000d30: SWAP1
00000d31: SSTORE
00000d32: PUSH1 0x12
00000d34: SWAP1
00000d35: SWAP3
00000d36: MSTORE
00000d37: SWAP1
00000d38: SWAP2
00000d39: KECCAK256
00000d3a: DUP8
00000d3b: SWAP1
00000d3c: SSTORE
00000d3d: PUSH2 0x0db2
00000d40: JUMPI
00000d41: DUP3
00000d42: ISZERO
00000d43: PUSH2 0x0da2
00000d46: JUMPI
00000d47: PUSH1 0x40
00000d49: MLOAD
00000d4a: PUSH3 0x461bcd
00000d4e: PUSH1 0xe5
00000d50: SHL
00000d51: DUP2
00000d52: MSTORE
00000d53: PUSH1 0x20
00000d55: PUSH1 0x04
00000d57: DUP3
00000d58: ADD
00000d59: MSTORE
00000d5a: PUSH1 0x2b
00000d5c: PUSH1 0x24
00000d5e: DUP3
00000d5f: ADD
00000d60: MSTORE
00000d61: PUSH32 0x4d696e742d6275726e20746f6b656e73206d7573742068617665203020746f74
00000d82: PUSH1 0x44
00000d84: DUP3
00000d85: ADD
00000d86: MSTORE
00000d87: PUSH11 0x616c2062616c616e636521
00000d93: PUSH1 0xa8
00000d95: SHL
00000d96: PUSH1 0x64
00000d98: DUP3
00000d99: ADD
00000d9a: MSTORE
00000d9b: PUSH1 0x84
00000d9d: ADD
00000d9e: PUSH2 0x0975
00000da1: JUMP
00000da2: JUMPDEST
00000da3: PUSH2 0x0dad
00000da6: DUP9
00000da7: DUP4
00000da8: DUP4
00000da9: PUSH2 0x1c1b
00000dac: JUMP
00000dad: JUMPDEST
00000dae: PUSH2 0x0e78
00000db1: JUMP
00000db2: JUMPDEST
00000db3: DUP2
00000db4: ISZERO
00000db5: PUSH2 0x0e10
00000db8: JUMPI
00000db9: PUSH1 0x40
00000dbb: MLOAD
00000dbc: PUSH3 0x461bcd
00000dc0: PUSH1 0xe5
00000dc2: SHL
00000dc3: DUP2
00000dc4: MSTORE
00000dc5: PUSH1 0x20
00000dc7: PUSH1 0x04
00000dc9: DUP3
00000dca: ADD
00000dcb: MSTORE
00000dcc: PUSH1 0x27
00000dce: PUSH1 0x24
00000dd0: DUP3
00000dd1: ADD
00000dd2: MSTORE
00000dd3: PUSH32 0x53746f72656420746f6b656e73206d75737420686176652030206d696e742062
00000df4: PUSH1 0x44
00000df6: DUP3
00000df7: ADD
00000df8: MSTORE
00000df9: PUSH7 0x616c616e636521
00000e01: PUSH1 0xc8
00000e03: SHL
00000e04: PUSH1 0x64
00000e06: DUP3
00000e07: ADD
00000e08: MSTORE
00000e09: PUSH1 0x84
00000e0b: ADD
00000e0c: PUSH2 0x0975
00000e0f: JUMP
00000e10: JUMPDEST
00000e11: DUP1
00000e12: ISZERO
00000e13: PUSH2 0x0e6e
00000e16: JUMPI
00000e17: PUSH1 0x40
00000e19: MLOAD
00000e1a: PUSH3 0x461bcd
00000e1e: PUSH1 0xe5
00000e20: SHL
00000e21: DUP2
00000e22: MSTORE
00000e23: PUSH1 0x20
00000e25: PUSH1 0x04
00000e27: DUP3
00000e28: ADD
00000e29: MSTORE
00000e2a: PUSH1 0x27
00000e2c: PUSH1 0x24
00000e2e: DUP3
00000e2f: ADD
00000e30: MSTORE
00000e31: PUSH32 0x53746f72656420746f6b656e73206d75737420686176652030206275726e2062
00000e52: PUSH1 0x44
00000e54: DUP3
00000e55: ADD
00000e56: MSTORE
00000e57: PUSH7 0x616c616e636521
00000e5f: PUSH1 0xc8
00000e61: SHL
00000e62: PUSH1 0x64
00000e64: DUP3
00000e65: ADD
00000e66: MSTORE
00000e67: PUSH1 0x84
00000e69: ADD
00000e6a: PUSH2 0x0975
00000e6d: JUMP
00000e6e: JUMPDEST
00000e6f: PUSH2 0x0e78
00000e72: DUP9
00000e73: DUP5
00000e74: PUSH2 0x0b21
00000e77: JUMP
00000e78: JUMPDEST
00000e79: POP
00000e7a: POP
00000e7b: POP
00000e7c: POP
00000e7d: POP
00000e7e: POP
00000e7f: POP
00000e80: POP
00000e81: JUMP
00000e82: JUMPDEST
00000e83: PUSH1 0x40
00000e85: DUP1
00000e86: MLOAD
00000e87: PUSH1 0x80
00000e89: DUP2
00000e8a: ADD
00000e8b: DUP3
00000e8c: MSTORE
00000e8d: PUSH1 0x00
00000e8f: DUP1
00000e90: DUP3
00000e91: MSTORE
00000e92: PUSH1 0x20
00000e94: DUP3
00000e95: ADD
00000e96: DUP2
00000e97: SWAP1
00000e98: MSTORE
00000e99: SWAP2
00000e9a: DUP2
00000e9b: ADD
00000e9c: DUP3
00000e9d: SWAP1
00000e9e: MSTORE
00000e9f: PUSH1 0x60
00000ea1: DUP2
00000ea2: ADD
00000ea3: DUP3
00000ea4: SWAP1
00000ea5: MSTORE
00000ea6: SWAP1
00000ea7: DUP1
00000ea8: PUSH1 0x0d
00000eaa: DUP2
00000eab: PUSH2 0x0eb5
00000eae: PUSH1 0x01
00000eb0: DUP8
00000eb1: PUSH2 0x2e83
00000eb4: JUMP
00000eb5: JUMPDEST
00000eb6: DUP2
00000eb7: MSTORE
00000eb8: PUSH1 0x20
00000eba: DUP1
00000ebb: DUP3
00000ebc: ADD
00000ebd: SWAP3
00000ebe: SWAP1
00000ebf: SWAP3
00000ec0: MSTORE
00000ec1: PUSH1 0x40
00000ec3: SWAP1
00000ec4: DUP2
00000ec5: ADD
00000ec6: PUSH1 0x00
00000ec8: KECCAK256
00000ec9: DUP2
00000eca: MLOAD
00000ecb: PUSH1 0x80
00000ecd: DUP2
00000ece: ADD
00000ecf: DUP4
00000ed0: MSTORE
00000ed1: SWAP1
00000ed2: SLOAD
00000ed3: PUSH1 0x01
00000ed5: PUSH1 0x01
00000ed7: PUSH1 0x70
00000ed9: SHL
00000eda: SUB
00000edb: DUP2
00000edc: AND
00000edd: DUP3
00000ede: MSTORE
00000edf: PUSH1 0x01
00000ee1: PUSH1 0x70
00000ee3: SHL
00000ee4: DUP2
00000ee5: DIV
00000ee6: PUSH1 0x01
00000ee8: PUSH1 0x01
00000eea: PUSH1 0x40
00000eec: SHL
00000eed: SUB
00000eee: SWAP1
00000eef: DUP2
00000ef0: AND
00000ef1: SWAP5
00000ef2: DUP4
00000ef3: ADD
00000ef4: SWAP5
00000ef5: SWAP1
00000ef6: SWAP5
00000ef7: MSTORE
00000ef8: PUSH1 0x01
00000efa: PUSH1 0xb0
00000efc: SHL
00000efd: DUP2
00000efe: DIV
00000eff: SWAP1
00000f00: SWAP4
00000f01: AND
00000f02: SWAP2
00000f03: DUP2
00000f04: ADD
00000f05: SWAP2
00000f06: SWAP1
00000f07: SWAP2
00000f08: MSTORE
00000f09: PUSH1 0x01
00000f0b: PUSH1 0xf0
00000f0d: SHL
00000f0e: SWAP1
00000f0f: SWAP2
00000f10: DIV
00000f11: PUSH2 0xffff
00000f14: AND
00000f15: PUSH1 0x60
00000f17: DUP3
00000f18: ADD
00000f19: MSTORE
00000f1a: SWAP1
00000f1b: POP
00000f1c: DUP1
00000f1d: PUSH2 0x0f25
00000f20: DUP2
00000f21: PUSH2 0x1ecf
00000f24: JUMP
00000f25: JUMPDEST
00000f26: SWAP3
00000f27: POP
00000f28: SWAP3
00000f29: POP
00000f2a: POP
00000f2b: SWAP2
00000f2c: POP
00000f2d: SWAP2
00000f2e: JUMP
00000f2f: JUMPDEST
00000f30: CALLER
00000f31: PUSH2 0x0f42
00000f34: PUSH1 0x00
00000f36: SLOAD
00000f37: PUSH1 0x01
00000f39: PUSH1 0x01
00000f3b: PUSH1 0xa0
00000f3d: SHL
00000f3e: SUB
00000f3f: AND
00000f40: SWAP1
00000f41: JUMP
00000f42: JUMPDEST
00000f43: PUSH1 0x01
00000f45: PUSH1 0x01
00000f47: PUSH1 0xa0
00000f49: SHL
00000f4a: SUB
00000f4b: AND
00000f4c: EQ
00000f4d: PUSH2 0x0f68
00000f50: JUMPI
00000f51: PUSH1 0x40
00000f53: MLOAD
00000f54: PUSH3 0x461bcd
00000f58: PUSH1 0xe5
00000f5a: SHL
00000f5b: DUP2
00000f5c: MSTORE
00000f5d: PUSH1 0x04
00000f5f: ADD
00000f60: PUSH2 0x0975
00000f63: SWAP1
00000f64: PUSH2 0x2e96
00000f67: JUMP
00000f68: JUMPDEST
00000f69: PUSH1 0x01
00000f6b: PUSH1 0x01
00000f6d: PUSH1 0xa0
00000f6f: SHL
00000f70: SUB
00000f71: DUP2
00000f72: AND
00000f73: PUSH2 0x0fcf
00000f76: JUMPI
00000f77: PUSH1 0x40
00000f79: MLOAD
00000f7a: PUSH3 0x461bcd
00000f7e: PUSH1 0xe5
00000f80: SHL
00000f81: DUP2
00000f82: MSTORE
00000f83: PUSH1 0x20
00000f85: PUSH1 0x04
00000f87: DUP3
00000f88: ADD
00000f89: MSTORE
00000f8a: PUSH1 0x28
00000f8c: PUSH1 0x24
00000f8e: DUP3
00000f8f: ADD
00000f90: MSTORE
00000f91: PUSH32 0x41646d696e526f6c653a206e65772061646d696e20697320746865207a65726f
00000fb2: PUSH1 0x44
00000fb4: DUP3
00000fb5: ADD
00000fb6: MSTORE
00000fb7: PUSH8 0x2061646472657373
00000fc0: PUSH1 0xc0
00000fc2: SHL
00000fc3: PUSH1 0x64
00000fc5: DUP3
00000fc6: ADD
00000fc7: MSTORE
00000fc8: PUSH1 0x84
00000fca: ADD
00000fcb: PUSH2 0x0975
00000fce: JUMP
00000fcf: JUMPDEST
00000fd0: PUSH1 0x00
00000fd2: DUP1
00000fd3: SLOAD
00000fd4: PUSH1 0x40
00000fd6: MLOAD
00000fd7: PUSH1 0x01
00000fd9: PUSH1 0x01
00000fdb: PUSH1 0xa0
00000fdd: SHL
00000fde: SUB
00000fdf: DUP1
00000fe0: DUP6
00000fe1: AND
00000fe2: SWAP4
00000fe3: SWAP3
00000fe4: AND
00000fe5: SWAP2
00000fe6: PUSH32 0xe379ac64de02d8184ca1a871ac486cb8137de77e485ede140e97057b9c765ffd
00001007: SWAP2
00001008: LOG3
00001009: PUSH1 0x00
0000100b: DUP1
0000100c: SLOAD
0000100d: PUSH1 0x01
0000100f: PUSH1 0x01
00001011: PUSH1 0xa0
00001013: SHL
00001014: SUB
00001015: NOT
00001016: AND
00001017: PUSH1 0x01
00001019: PUSH1 0x01
0000101b: PUSH1 0xa0
0000101d: SHL
0000101e: SUB
0000101f: SWAP3
00001020: SWAP1
00001021: SWAP3
00001022: AND
00001023: SWAP2
00001024: SWAP1
00001025: SWAP2
00001026: OR
00001027: SWAP1
00001028: SSTORE
00001029: JUMP
0000102a: JUMPDEST
0000102b: CALLER
0000102c: PUSH2 0x103d
0000102f: PUSH1 0x00
00001031: SLOAD
00001032: PUSH1 0x01
00001034: PUSH1 0x01
00001036: PUSH1 0xa0
00001038: SHL
00001039: SUB
0000103a: AND
0000103b: SWAP1
0000103c: JUMP
0000103d: JUMPDEST
0000103e: PUSH1 0x01
00001040: PUSH1 0x01
00001042: PUSH1 0xa0
00001044: SHL
00001045: SUB
00001046: AND
00001047: EQ
00001048: PUSH2 0x1063
0000104b: JUMPI
0000104c: PUSH1 0x40
0000104e: MLOAD
0000104f: PUSH3 0x461bcd
00001053: PUSH1 0xe5
00001055: SHL
00001056: DUP2
00001057: MSTORE
00001058: PUSH1 0x04
0000105a: ADD
0000105b: PUSH2 0x0975
0000105e: SWAP1
0000105f: PUSH2 0x2e96
00001062: JUMP
00001063: JUMPDEST
00001064: PUSH1 0x40
00001066: MLOAD
00001067: PUSH4 0x70a08231
0000106c: PUSH1 0xe0
0000106e: SHL
0000106f: DUP2
00001070: MSTORE
00001071: ADDRESS
00001072: PUSH1 0x04
00001074: DUP3
00001075: ADD
00001076: MSTORE
00001077: DUP2
00001078: SWAP1
00001079: PUSH1 0x00
0000107b: SWAP1
0000107c: PUSH1 0x01
0000107e: PUSH1 0x01
00001080: PUSH1 0xa0
00001082: SHL
00001083: SUB
00001084: DUP4
00001085: AND
00001086: SWAP1
00001087: PUSH4 0x70a08231
0000108c: SWAP1
0000108d: PUSH1 0x24
0000108f: ADD
00001090: PUSH1 0x20
00001092: PUSH1 0x40
00001094: MLOAD
00001095: DUP1
00001096: DUP4
00001097: SUB
00001098: DUP2
00001099: DUP7
0000109a: GAS
0000109b: STATICCALL
0000109c: ISZERO
0000109d: DUP1
0000109e: ISZERO
0000109f: PUSH2 0x10ac
000010a2: JUMPI
000010a3: RETURNDATASIZE
000010a4: PUSH1 0x00
000010a6: DUP1
000010a7: RETURNDATACOPY
000010a8: RETURNDATASIZE
000010a9: PUSH1 0x00
000010ab: REVERT
000010ac: JUMPDEST
000010ad: POP
000010ae: POP
000010af: POP
000010b0: POP
000010b1: PUSH1 0x40
000010b3: MLOAD
000010b4: RETURNDATASIZE
000010b5: PUSH1 0x1f
000010b7: NOT
000010b8: PUSH1 0x1f
000010ba: DUP3
000010bb: ADD
000010bc: AND
000010bd: DUP3
000010be: ADD
000010bf: DUP1
000010c0: PUSH1 0x40
000010c2: MSTORE
000010c3: POP
000010c4: DUP2
000010c5: ADD
000010c6: SWAP1
000010c7: PUSH2 0x10d0
000010ca: SWAP2
000010cb: SWAP1
000010cc: PUSH2 0x2f58
000010cf: JUMP
000010d0: JUMPDEST
000010d1: PUSH1 0x01
000010d3: PUSH1 0x01
000010d5: PUSH1 0xa0
000010d7: SHL
000010d8: SUB
000010d9: DUP5
000010da: AND
000010db: PUSH1 0x00
000010dd: SWAP1
000010de: DUP2
000010df: MSTORE
000010e0: PUSH1 0x0e
000010e2: PUSH1 0x20
000010e4: MSTORE
000010e5: PUSH1 0x40
000010e7: DUP2
000010e8: KECCAK256
000010e9: SLOAD
000010ea: SWAP2
000010eb: SWAP3
000010ec: POP
000010ed: SWAP1
000010ee: PUSH1 0xff
000010f0: AND
000010f1: ISZERO
000010f2: PUSH2 0x111f
000010f5: JUMPI
000010f6: PUSH1 0x01
000010f8: PUSH1 0x01
000010fa: PUSH1 0xa0
000010fc: SHL
000010fd: SUB
000010fe: DUP5
000010ff: AND
00001100: PUSH1 0x00
00001102: SWAP1
00001103: DUP2
00001104: MSTORE
00001105: PUSH1 0x13
00001107: PUSH1 0x20
00001109: MSTORE
0000110a: PUSH1 0x40
0000110c: SWAP1
0000110d: KECCAK256
0000110e: SLOAD
0000110f: PUSH2 0x1118
00001112: SWAP1
00001113: DUP4
00001114: PUSH2 0x2e83
00001117: JUMP
00001118: JUMPDEST
00001119: SWAP1
0000111a: POP
0000111b: PUSH2 0x1122
0000111e: JUMP
0000111f: JUMPDEST
00001120: POP
00001121: DUP1
00001122: JUMPDEST
00001123: PUSH2 0x1136
00001126: PUSH1 0x01
00001128: PUSH1 0x01
0000112a: PUSH1 0xa0
0000112c: SHL
0000112d: SUB
0000112e: DUP5
0000112f: AND
00001130: CALLER
00001131: DUP4
00001132: PUSH2 0x2575
00001135: JUMP
00001136: JUMPDEST
00001137: POP
00001138: POP
00001139: POP
0000113a: POP
0000113b: JUMP
0000113c: JUMPDEST
0000113d: CALLER
0000113e: PUSH2 0x114f
00001141: PUSH1 0x00
00001143: SLOAD
00001144: PUSH1 0x01
00001146: PUSH1 0x01
00001148: PUSH1 0xa0
0000114a: SHL
0000114b: SUB
0000114c: AND
0000114d: SWAP1
0000114e: JUMP
0000114f: JUMPDEST
00001150: PUSH1 0x01
00001152: PUSH1 0x01
00001154: PUSH1 0xa0
00001156: SHL
00001157: SUB
00001158: AND
00001159: EQ
0000115a: PUSH2 0x1175
0000115d: JUMPI
0000115e: PUSH1 0x40
00001160: MLOAD
00001161: PUSH3 0x461bcd
00001165: PUSH1 0xe5
00001167: SHL
00001168: DUP2
00001169: MSTORE
0000116a: PUSH1 0x04
0000116c: ADD
0000116d: PUSH2 0x0975
00001170: SWAP1
00001171: PUSH2 0x2e96
00001174: JUMP
00001175: JUMPDEST
00001176: PUSH1 0x01
00001178: PUSH1 0x01
0000117a: PUSH1 0xa0
0000117c: SHL
0000117d: SUB
0000117e: SWAP1
0000117f: SWAP2
00001180: AND
00001181: PUSH1 0x00
00001183: SWAP1
00001184: DUP2
00001185: MSTORE
00001186: PUSH1 0x12
00001188: PUSH1 0x20
0000118a: MSTORE
0000118b: PUSH1 0x40
0000118d: SWAP1
0000118e: KECCAK256
0000118f: SSTORE
00001190: JUMP
00001191: JUMPDEST
00001192: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
000011b3: DUP1
000011b4: SLOAD
000011b5: PUSH1 0x01
000011b7: PUSH1 0x40
000011b9: SHL
000011ba: DUP2
000011bb: DIV
000011bc: PUSH1 0xff
000011be: AND
000011bf: ISZERO
000011c0: SWAP1
000011c1: PUSH1 0x01
000011c3: PUSH1 0x01
000011c5: PUSH1 0x40
000011c7: SHL
000011c8: SUB
000011c9: AND
000011ca: PUSH1 0x00
000011cc: DUP2
000011cd: ISZERO
000011ce: DUP1
000011cf: ISZERO
000011d0: PUSH2 0x11d6
000011d3: JUMPI
000011d4: POP
000011d5: DUP3
000011d6: JUMPDEST
000011d7: SWAP1
000011d8: POP
000011d9: PUSH1 0x00
000011db: DUP3
000011dc: PUSH1 0x01
000011de: PUSH1 0x01
000011e0: PUSH1 0x40
000011e2: SHL
000011e3: SUB
000011e4: AND
000011e5: PUSH1 0x01
000011e7: EQ
000011e8: DUP1
000011e9: ISZERO
000011ea: PUSH2 0x11f2
000011ed: JUMPI
000011ee: POP
000011ef: ADDRESS
000011f0: EXTCODESIZE
000011f1: ISZERO
000011f2: JUMPDEST
000011f3: SWAP1
000011f4: POP
000011f5: DUP2
000011f6: ISZERO
000011f7: DUP1
000011f8: ISZERO
000011f9: PUSH2 0x1200
000011fc: JUMPI
000011fd: POP
000011fe: DUP1
000011ff: ISZERO
00001200: JUMPDEST
00001201: ISZERO
00001202: PUSH2 0x121e
00001205: JUMPI
00001206: PUSH1 0x40
00001208: MLOAD
00001209: PUSH4 0xf92ee8a9
0000120e: PUSH1 0xe0
00001210: SHL
00001211: DUP2
00001212: MSTORE
00001213: PUSH1 0x04
00001215: ADD
00001216: PUSH1 0x40
00001218: MLOAD
00001219: DUP1
0000121a: SWAP2
0000121b: SUB
0000121c: SWAP1
0000121d: REVERT
0000121e: JUMPDEST
0000121f: DUP5
00001220: SLOAD
00001221: PUSH8 0xffffffffffffffff
0000122a: NOT
0000122b: AND
0000122c: PUSH1 0x01
0000122e: OR
0000122f: DUP6
00001230: SSTORE
00001231: DUP4
00001232: ISZERO
00001233: PUSH2 0x1248
00001236: JUMPI
00001237: DUP5
00001238: SLOAD
00001239: PUSH1 0xff
0000123b: PUSH1 0x40
0000123d: SHL
0000123e: NOT
0000123f: AND
00001240: PUSH1 0x01
00001242: PUSH1 0x40
00001244: SHL
00001245: OR
00001246: DUP6
00001247: SSTORE
00001248: JUMPDEST
00001249: PUSH2 0x1250
0000124c: PUSH2 0x25a6
0000124f: JUMP
00001250: JUMPDEST
00001251: PUSH2 0x1258
00001254: PUSH2 0x25c0
00001257: JUMP
00001258: JUMPDEST
00001259: PUSH2 0x1260
0000125c: PUSH2 0x25d8
0000125f: JUMP
00001260: JUMPDEST
00001261: DUP4
00001262: ISZERO
00001263: PUSH2 0x12a2
00001266: JUMPI
00001267: DUP5
00001268: SLOAD
00001269: PUSH1 0xff
0000126b: PUSH1 0x40
0000126d: SHL
0000126e: NOT
0000126f: AND
00001270: DUP6
00001271: SSTORE
00001272: PUSH1 0x40
00001274: MLOAD
00001275: PUSH1 0x01
00001277: DUP2
00001278: MSTORE
00001279: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
0000129a: SWAP1
0000129b: PUSH1 0x20
0000129d: ADD
0000129e: PUSH2 0x09ce
000012a1: JUMP
000012a2: JUMPDEST
000012a3: POP
000012a4: POP
000012a5: POP
000012a6: POP
000012a7: POP
000012a8: JUMP
000012a9: JUMPDEST
000012aa: PUSH1 0x01
000012ac: SLOAD
000012ad: PUSH1 0x00
000012af: SWAP1
000012b0: PUSH1 0x01
000012b2: PUSH1 0xa8
000012b4: SHL
000012b5: SWAP1
000012b6: DIV
000012b7: PUSH1 0x01
000012b9: PUSH1 0x01
000012bb: PUSH1 0x40
000012bd: SHL
000012be: SUB
000012bf: AND
000012c0: DUP2
000012c1: SUB
000012c2: PUSH2 0x12cb
000012c5: JUMPI
000012c6: POP
000012c7: PUSH1 0x00
000012c9: SWAP1
000012ca: JUMP
000012cb: JUMPDEST
000012cc: PUSH1 0x01
000012ce: DUP1
000012cf: SLOAD
000012d0: PUSH1 0x00
000012d2: SWAP2
000012d3: PUSH1 0x0d
000012d5: SWAP2
000012d6: DUP4
000012d7: SWAP2
000012d8: PUSH2 0x12f0
000012db: SWAP2
000012dc: PUSH1 0x01
000012de: PUSH1 0xa8
000012e0: SHL
000012e1: SWAP1
000012e2: DIV
000012e3: PUSH1 0x01
000012e5: PUSH1 0x01
000012e7: PUSH1 0x40
000012e9: SHL
000012ea: SUB
000012eb: AND
000012ec: PUSH2 0x2f71
000012ef: JUMP
000012f0: JUMPDEST
000012f1: PUSH1 0x01
000012f3: PUSH1 0x01
000012f5: PUSH1 0x40
000012f7: SHL
000012f8: SUB
000012f9: SWAP1
000012fa: DUP2
000012fb: AND
000012fc: DUP3
000012fd: MSTORE
000012fe: PUSH1 0x20
00001300: DUP1
00001301: DUP4
00001302: ADD
00001303: SWAP4
00001304: SWAP1
00001305: SWAP4
00001306: MSTORE
00001307: PUSH1 0x40
00001309: SWAP2
0000130a: DUP3
0000130b: ADD
0000130c: PUSH1 0x00
0000130e: KECCAK256
0000130f: DUP3
00001310: MLOAD
00001311: PUSH1 0x80
00001313: DUP2
00001314: ADD
00001315: DUP5
00001316: MSTORE
00001317: SWAP1
00001318: SLOAD
00001319: PUSH1 0x01
0000131b: PUSH1 0x01
0000131d: PUSH1 0x70
0000131f: SHL
00001320: SUB
00001321: DUP2
00001322: AND
00001323: DUP3
00001324: MSTORE
00001325: PUSH1 0x01
00001327: PUSH1 0x70
00001329: SHL
0000132a: DUP2
0000132b: DIV
0000132c: DUP4
0000132d: AND
0000132e: SWAP5
0000132f: DUP3
00001330: ADD
00001331: SWAP5
00001332: SWAP1
00001333: SWAP5
00001334: MSTORE
00001335: PUSH1 0x01
00001337: PUSH1 0xb0
00001339: SHL
0000133a: DUP5
0000133b: DIV
0000133c: SWAP1
0000133d: SWAP2
0000133e: AND
0000133f: SWAP2
00001340: DUP2
00001341: ADD
00001342: SWAP2
00001343: SWAP1
00001344: SWAP2
00001345: MSTORE
00001346: PUSH1 0x01
00001348: PUSH1 0xf0
0000134a: SHL
0000134b: SWAP1
0000134c: SWAP2
0000134d: DIV
0000134e: PUSH2 0xffff
00001351: AND
00001352: PUSH1 0x60
00001354: DUP3
00001355: ADD
00001356: MSTORE
00001357: SWAP1
00001358: POP
00001359: PUSH2 0x1360
0000135c: PUSH2 0x2605
0000135f: JUMP
00001360: JUMPDEST
00001361: PUSH2 0x136c
00001364: JUMPI
00001365: PUSH1 0x01
00001367: SWAP2
00001368: POP
00001369: POP
0000136a: SWAP1
0000136b: JUMP
0000136c: JUMPDEST
0000136d: PUSH2 0x1375
00001370: DUP2
00001371: PUSH2 0x1ecf
00001374: JUMP
00001375: JUMPDEST
00001376: PUSH2 0x1381
00001379: JUMPI
0000137a: PUSH1 0x01
0000137c: SWAP2
0000137d: POP
0000137e: POP
0000137f: SWAP1
00001380: JUMP
00001381: JUMPDEST
00001382: PUSH1 0x00
00001384: SWAP2
00001385: POP
00001386: POP
00001387: SWAP1
00001388: JUMP
00001389: JUMPDEST
0000138a: CALLER
0000138b: PUSH2 0x139c
0000138e: PUSH1 0x00
00001390: SLOAD
00001391: PUSH1 0x01
00001393: PUSH1 0x01
00001395: PUSH1 0xa0
00001397: SHL
00001398: SUB
00001399: AND
0000139a: SWAP1
0000139b: JUMP
0000139c: JUMPDEST
0000139d: PUSH1 0x01
0000139f: PUSH1 0x01
000013a1: PUSH1 0xa0
000013a3: SHL
000013a4: SUB
000013a5: AND
000013a6: EQ
000013a7: PUSH2 0x13c2
000013aa: JUMPI
000013ab: PUSH1 0x40
000013ad: MLOAD
000013ae: PUSH3 0x461bcd
000013b2: PUSH1 0xe5
000013b4: SHL
000013b5: DUP2
000013b6: MSTORE
000013b7: PUSH1 0x04
000013b9: ADD
000013ba: PUSH2 0x0975
000013bd: SWAP1
000013be: PUSH2 0x2e96
000013c1: JUMP
000013c2: JUMPDEST
000013c3: PUSH1 0x01
000013c5: DUP1
000013c6: SLOAD
000013c7: PUSH1 0xff
000013c9: PUSH1 0xa0
000013cb: SHL
000013cc: NOT
000013cd: AND
000013ce: PUSH1 0x01
000013d0: PUSH1 0xa0
000013d2: SHL
000013d3: OR
000013d4: DUP2
000013d5: SSTORE
000013d6: PUSH1 0x40
000013d8: MLOAD
000013d9: SWAP1
000013da: DUP2
000013db: MSTORE
000013dc: PUSH32 0x9422424b175dda897495a07b091ef74a3ef715cf6d866fc972954c1c7f459304
000013fd: SWAP1
000013fe: PUSH1 0x20
00001400: ADD
00001401: PUSH2 0x0b17
00001404: JUMP
00001405: JUMPDEST
00001406: CALLER
00001407: PUSH2 0x1418
0000140a: PUSH1 0x00
0000140c: SLOAD
0000140d: PUSH1 0x01
0000140f: PUSH1 0x01
00001411: PUSH1 0xa0
00001413: SHL
00001414: SUB
00001415: AND
00001416: SWAP1
00001417: JUMP
00001418: JUMPDEST
00001419: PUSH1 0x01
0000141b: PUSH1 0x01
0000141d: PUSH1 0xa0
0000141f: SHL
00001420: SUB
00001421: AND
00001422: EQ
00001423: PUSH2 0x143e
00001426: JUMPI
00001427: PUSH1 0x40
00001429: MLOAD
0000142a: PUSH3 0x461bcd
0000142e: PUSH1 0xe5
00001430: SHL
00001431: DUP2
00001432: MSTORE
00001433: PUSH1 0x04
00001435: ADD
00001436: PUSH2 0x0975
00001439: SWAP1
0000143a: PUSH2 0x2e96
0000143d: JUMP
0000143e: JUMPDEST
0000143f: PUSH1 0x00
00001441: DUP1
00001442: SLOAD
00001443: PUSH1 0x40
00001445: MLOAD
00001446: PUSH1 0x01
00001448: PUSH1 0x01
0000144a: PUSH1 0xa0
0000144c: SHL
0000144d: SUB
0000144e: SWAP1
0000144f: SWAP2
00001450: AND
00001451: SWAP1
00001452: PUSH32 0xe379ac64de02d8184ca1a871ac486cb8137de77e485ede140e97057b9c765ffd
00001473: SWAP1
00001474: DUP4
00001475: SWAP1
00001476: LOG3
00001477: PUSH1 0x00
00001479: DUP1
0000147a: SLOAD
0000147b: PUSH1 0x01
0000147d: PUSH1 0x01
0000147f: PUSH1 0xa0
00001481: SHL
00001482: SUB
00001483: NOT
00001484: AND
00001485: SWAP1
00001486: SSTORE
00001487: JUMP
00001488: JUMPDEST
00001489: CALLER
0000148a: PUSH2 0x149b
0000148d: PUSH1 0x00
0000148f: SLOAD
00001490: PUSH1 0x01
00001492: PUSH1 0x01
00001494: PUSH1 0xa0
00001496: SHL
00001497: SUB
00001498: AND
00001499: SWAP1
0000149a: JUMP
0000149b: JUMPDEST
0000149c: PUSH1 0x01
0000149e: PUSH1 0x01
000014a0: PUSH1 0xa0
000014a2: SHL
000014a3: SUB
000014a4: AND
000014a5: EQ
000014a6: PUSH2 0x14c1
000014a9: JUMPI
000014aa: PUSH1 0x40
000014ac: MLOAD
000014ad: PUSH3 0x461bcd
000014b1: PUSH1 0xe5
000014b3: SHL
000014b4: DUP2
000014b5: MSTORE
000014b6: PUSH1 0x04
000014b8: ADD
000014b9: PUSH2 0x0975
000014bc: SWAP1
000014bd: PUSH2 0x2e96
000014c0: JUMP
000014c1: JUMPDEST
000014c2: PUSH1 0x01
000014c4: PUSH1 0x01
000014c6: PUSH1 0xa0
000014c8: SHL
000014c9: SUB
000014ca: DUP2
000014cb: AND
000014cc: PUSH2 0x152a
000014cf: JUMPI
000014d0: PUSH1 0x40
000014d2: MLOAD
000014d3: PUSH3 0x461bcd
000014d7: PUSH1 0xe5
000014d9: SHL
000014da: DUP2
000014db: MSTORE
000014dc: PUSH1 0x20
000014de: PUSH1 0x04
000014e0: DUP3
000014e1: ADD
000014e2: MSTORE
000014e3: PUSH1 0x2a
000014e5: PUSH1 0x24
000014e7: DUP3
000014e8: ADD
000014e9: MSTORE
000014ea: PUSH32 0x427269646765526f6c653a206e65772062726964676520697320746865207a65
0000150b: PUSH1 0x44
0000150d: DUP3
0000150e: ADD
0000150f: MSTORE
00001510: PUSH10 0x726f2061646472657373
0000151b: PUSH1 0xb0
0000151d: SHL
0000151e: PUSH1 0x64
00001520: DUP3
00001521: ADD
00001522: MSTORE
00001523: PUSH1 0x84
00001525: ADD
00001526: PUSH2 0x0975
00001529: JUMP
0000152a: JUMPDEST
0000152b: PUSH1 0x01
0000152d: SLOAD
0000152e: PUSH1 0x01
00001530: PUSH1 0x01
00001532: PUSH1 0xa0
00001534: SHL
00001535: SUB
00001536: SWAP1
00001537: DUP2
00001538: AND
00001539: SWAP1
0000153a: DUP3
0000153b: AND
0000153c: SUB
0000153d: PUSH2 0x1588
00001540: JUMPI
00001541: PUSH1 0x40
00001543: MLOAD
00001544: PUSH3 0x461bcd
00001548: PUSH1 0xe5
0000154a: SHL
0000154b: DUP2
0000154c: MSTORE
0000154d: PUSH1 0x20
0000154f: PUSH1 0x04
00001551: DUP3
00001552: ADD
00001553: MSTORE
00001554: PUSH1 0x18
00001556: PUSH1 0x24
00001558: DUP3
00001559: ADD
0000155a: MSTORE
0000155b: PUSH32 0x427269646765526f6c653a2073616d6520616464726573730000000000000000
0000157c: PUSH1 0x44
0000157e: DUP3
0000157f: ADD
00001580: MSTORE
00001581: PUSH1 0x64
00001583: ADD
00001584: PUSH2 0x0975
00001587: JUMP
00001588: JUMPDEST
00001589: PUSH1 0x01
0000158b: PUSH1 0x01
0000158d: PUSH1 0xa0
0000158f: SHL
00001590: SUB
00001591: DUP2
00001592: AND
00001593: EXTCODESIZE
00001594: PUSH2 0x15f1
00001597: JUMPI
00001598: PUSH1 0x40
0000159a: MLOAD
0000159b: PUSH3 0x461bcd
0000159f: PUSH1 0xe5
000015a1: SHL
000015a2: DUP2
000015a3: MSTORE
000015a4: PUSH1 0x20
000015a6: PUSH1 0x04
000015a8: DUP3
000015a9: ADD
000015aa: MSTORE
000015ab: PUSH1 0x29
000015ad: PUSH1 0x24
000015af: DUP3
000015b0: ADD
000015b1: MSTORE
000015b2: PUSH32 0x427269646765526f6c653a206e657720627269646765206d7573742062652061
000015d3: PUSH1 0x44
000015d5: DUP3
000015d6: ADD
000015d7: MSTORE
000015d8: PUSH9 0x0818dbdb9d1c9858dd
000015e2: PUSH1 0xba
000015e4: SHL
000015e5: PUSH1 0x64
000015e7: DUP3
000015e8: ADD
000015e9: MSTORE
000015ea: PUSH1 0x84
000015ec: ADD
000015ed: PUSH2 0x0975
000015f0: JUMP
000015f1: JUMPDEST
000015f2: PUSH1 0x01
000015f4: SLOAD
000015f5: PUSH1 0x40
000015f7: MLOAD
000015f8: PUSH1 0x01
000015fa: PUSH1 0x01
000015fc: PUSH1 0xa0
000015fe: SHL
000015ff: SUB
00001600: DUP1
00001601: DUP5
00001602: AND
00001603: SWAP3
00001604: AND
00001605: SWAP1
00001606: PUSH32 0xcca5fddab921a878ddbd4edb737a2cf3ac6df70864f108606647d1b37a5e07a0
00001627: SWAP1
00001628: PUSH1 0x00
0000162a: SWAP1
0000162b: LOG3
0000162c: PUSH1 0x01
0000162e: DUP1
0000162f: SLOAD
00001630: PUSH1 0x01
00001632: PUSH1 0x01
00001634: PUSH1 0xa0
00001636: SHL
00001637: SUB
00001638: NOT
00001639: AND
0000163a: PUSH1 0x01
0000163c: PUSH1 0x01
0000163e: PUSH1 0xa0
00001640: SHL
00001641: SUB
00001642: SWAP3
00001643: SWAP1
00001644: SWAP3
00001645: AND
00001646: SWAP2
00001647: SWAP1
00001648: SWAP2
00001649: OR
0000164a: SWAP1
0000164b: SSTORE
0000164c: JUMP
0000164d: JUMPDEST
0000164e: CALLER
0000164f: PUSH2 0x1660
00001652: PUSH1 0x00
00001654: SLOAD
00001655: PUSH1 0x01
00001657: PUSH1 0x01
00001659: PUSH1 0xa0
0000165b: SHL
0000165c: SUB
0000165d: AND
0000165e: SWAP1
0000165f: JUMP
00001660: JUMPDEST
00001661: PUSH1 0x01
00001663: PUSH1 0x01
00001665: PUSH1 0xa0
00001667: SHL
00001668: SUB
00001669: AND
0000166a: EQ
0000166b: PUSH2 0x1686
0000166e: JUMPI
0000166f: PUSH1 0x40
00001671: MLOAD
00001672: PUSH3 0x461bcd
00001676: PUSH1 0xe5
00001678: SHL
00001679: DUP2
0000167a: MSTORE
0000167b: PUSH1 0x04
0000167d: ADD
0000167e: PUSH2 0x0975
00001681: SWAP1
00001682: PUSH2 0x2e96
00001685: JUMP
00001686: JUMPDEST
00001687: PUSH1 0x01
00001689: PUSH1 0x01
0000168b: PUSH1 0xa0
0000168d: SHL
0000168e: SUB
0000168f: SWAP1
00001690: SWAP2
00001691: AND
00001692: PUSH1 0x00
00001694: SWAP1
00001695: DUP2
00001696: MSTORE
00001697: PUSH1 0x11
00001699: PUSH1 0x20
0000169b: MSTORE
0000169c: PUSH1 0x40
0000169e: SWAP1
0000169f: KECCAK256
000016a0: SSTORE
000016a1: JUMP
000016a2: JUMPDEST
000016a3: PUSH1 0x01
000016a5: SLOAD
000016a6: PUSH1 0x01
000016a8: PUSH1 0xa0
000016aa: SHL
000016ab: SWAP1
000016ac: DIV
000016ad: PUSH1 0xff
000016af: AND
000016b0: ISZERO
000016b1: PUSH2 0x16ef
000016b4: JUMPI
000016b5: PUSH1 0x40
000016b7: MLOAD
000016b8: PUSH3 0x461bcd
000016bc: PUSH1 0xe5
000016be: SHL
000016bf: DUP2
000016c0: MSTORE
000016c1: PUSH1 0x20
000016c3: PUSH1 0x04
000016c5: DUP3
000016c6: ADD
000016c7: MSTORE
000016c8: PUSH1 0x10
000016ca: PUSH1 0x24
000016cc: DUP3
000016cd: ADD
000016ce: MSTORE
000016cf: PUSH16 0x14185d5cd8589b194e881c185d5cd959
000016e0: PUSH1 0x82
000016e2: SHL
000016e3: PUSH1 0x44
000016e5: DUP3
000016e6: ADD
000016e7: MSTORE
000016e8: PUSH1 0x64
000016ea: ADD
000016eb: PUSH2 0x0975
000016ee: JUMP
000016ef: JUMPDEST
000016f0: PUSH1 0x00
000016f2: DUP1
000016f3: PUSH2 0x16fd
000016f6: DUP8
000016f7: DUP8
000016f8: DUP8
000016f9: PUSH2 0x1f00
000016fc: JUMP
000016fd: JUMPDEST
000016fe: PUSH1 0x40
00001700: MLOAD
00001701: SWAP2
00001702: SWAP4
00001703: POP
00001704: SWAP2
00001705: POP
00001706: PUSH1 0x01
00001708: PUSH1 0x01
0000170a: PUSH1 0x70
0000170c: SHL
0000170d: SUB
0000170e: DUP4
0000170f: AND
00001710: SWAP1
00001711: PUSH32 0xce848da21487607afba5c5a500c2ad1002d9b8db97ca5512671309df071113b2
00001732: SWAP1
00001733: PUSH2 0x1741
00001736: SWAP1
00001737: DUP5
00001738: SWAP1
00001739: DUP9
0000173a: SWAP1
0000173b: DUP9
0000173c: SWAP1
0000173d: PUSH2 0x2f98
00001740: JUMP
00001741: JUMPDEST
00001742: PUSH1 0x40
00001744: MLOAD
00001745: DUP1
00001746: SWAP2
00001747: SUB
00001748: SWAP1
00001749: LOG2
0000174a: POP
0000174b: POP
0000174c: POP
0000174d: POP
0000174e: POP
0000174f: POP
00001750: POP
00001751: JUMP
00001752: JUMPDEST
00001753: CALLER
00001754: PUSH2 0x1765
00001757: PUSH1 0x00
00001759: SLOAD
0000175a: PUSH1 0x01
0000175c: PUSH1 0x01
0000175e: PUSH1 0xa0
00001760: SHL
00001761: SUB
00001762: AND
00001763: SWAP1
00001764: JUMP
00001765: JUMPDEST
00001766: PUSH1 0x01
00001768: PUSH1 0x01
0000176a: PUSH1 0xa0
0000176c: SHL
0000176d: SUB
0000176e: AND
0000176f: EQ
00001770: PUSH2 0x178b
00001773: JUMPI
00001774: PUSH1 0x40
00001776: MLOAD
00001777: PUSH3 0x461bcd
0000177b: PUSH1 0xe5
0000177d: SHL
0000177e: DUP2
0000177f: MSTORE
00001780: PUSH1 0x04
00001782: ADD
00001783: PUSH2 0x0975
00001786: SWAP1
00001787: PUSH2 0x2e96
0000178a: JUMP
0000178b: JUMPDEST
0000178c: PUSH1 0x01
0000178e: PUSH1 0x01
00001790: PUSH1 0xa0
00001792: SHL
00001793: SUB
00001794: DUP2
00001795: AND
00001796: PUSH1 0x00
00001798: SWAP1
00001799: DUP2
0000179a: MSTORE
0000179b: PUSH1 0x0e
0000179d: PUSH1 0x20
0000179f: MSTORE
000017a0: PUSH1 0x40
000017a2: SWAP1
000017a3: KECCAK256
000017a4: SLOAD
000017a5: PUSH1 0xff
000017a7: AND
000017a8: PUSH2 0x17c3
000017ab: JUMPI
000017ac: PUSH1 0x40
000017ae: MLOAD
000017af: PUSH3 0x461bcd
000017b3: PUSH1 0xe5
000017b5: SHL
000017b6: DUP2
000017b7: MSTORE
000017b8: PUSH1 0x04
000017ba: ADD
000017bb: PUSH2 0x0975
000017be: SWAP1
000017bf: PUSH2 0x2ed9
000017c2: JUMP
000017c3: JUMPDEST
000017c4: PUSH2 0x17cc
000017c7: DUP2
000017c8: PUSH2 0x24f0
000017cb: JUMP
000017cc: JUMPDEST
000017cd: ISZERO
000017ce: PUSH2 0x1819
000017d1: JUMPI
000017d2: PUSH1 0x40
000017d4: MLOAD
000017d5: PUSH3 0x461bcd
000017d9: PUSH1 0xe5
000017db: SHL
000017dc: DUP2
000017dd: MSTORE
000017de: PUSH1 0x20
000017e0: PUSH1 0x04
000017e2: DUP3
000017e3: ADD
000017e4: MSTORE
000017e5: PUSH1 0x1a
000017e7: PUSH1 0x24
000017e9: DUP3
000017ea: ADD
000017eb: MSTORE
000017ec: PUSH32 0x546f6b656e206973206d696e7461626c652f6275726e61626c65000000000000
0000180d: PUSH1 0x44
0000180f: DUP3
00001810: ADD
00001811: MSTORE
00001812: PUSH1 0x64
00001814: ADD
00001815: PUSH2 0x0975
00001818: JUMP
00001819: JUMPDEST
0000181a: PUSH1 0x40
0000181c: MLOAD
0000181d: PUSH4 0x70a08231
00001822: PUSH1 0xe0
00001824: SHL
00001825: DUP2
00001826: MSTORE
00001827: ADDRESS
00001828: PUSH1 0x04
0000182a: DUP3
0000182b: ADD
0000182c: MSTORE
0000182d: DUP2
0000182e: SWAP1
0000182f: PUSH1 0x00
00001831: SWAP1
00001832: PUSH1 0x01
00001834: PUSH1 0x01
00001836: PUSH1 0xa0
00001838: SHL
00001839: SUB
0000183a: DUP4
0000183b: AND
0000183c: SWAP1
0000183d: PUSH4 0x70a08231
00001842: SWAP1
00001843: PUSH1 0x24
00001845: ADD
00001846: PUSH1 0x20
00001848: PUSH1 0x40
0000184a: MLOAD
0000184b: DUP1
0000184c: DUP4
0000184d: SUB
0000184e: DUP2
0000184f: DUP7
00001850: GAS
00001851: STATICCALL
00001852: ISZERO
00001853: DUP1
00001854: ISZERO
00001855: PUSH2 0x1862
00001858: JUMPI
00001859: RETURNDATASIZE
0000185a: PUSH1 0x00
0000185c: DUP1
0000185d: RETURNDATACOPY
0000185e: RETURNDATASIZE
0000185f: PUSH1 0x00
00001861: REVERT
00001862: JUMPDEST
00001863: POP
00001864: POP
00001865: POP
00001866: POP
00001867: PUSH1 0x40
00001869: MLOAD
0000186a: RETURNDATASIZE
0000186b: PUSH1 0x1f
0000186d: NOT
0000186e: PUSH1 0x1f
00001870: DUP3
00001871: ADD
00001872: AND
00001873: DUP3
00001874: ADD
00001875: DUP1
00001876: PUSH1 0x40
00001878: MSTORE
00001879: POP
0000187a: DUP2
0000187b: ADD
0000187c: SWAP1
0000187d: PUSH2 0x1886
00001880: SWAP2
00001881: SWAP1
00001882: PUSH2 0x2f58
00001885: JUMP
00001886: JUMPDEST
00001887: PUSH1 0x01
00001889: PUSH1 0x01
0000188b: PUSH1 0xa0
0000188d: SHL
0000188e: SUB
0000188f: SWAP1
00001890: SWAP4
00001891: AND
00001892: PUSH1 0x00
00001894: SWAP1
00001895: DUP2
00001896: MSTORE
00001897: PUSH1 0x13
00001899: PUSH1 0x20
0000189b: MSTORE
0000189c: PUSH1 0x40
0000189e: SWAP1
0000189f: KECCAK256
000018a0: SWAP3
000018a1: SWAP1
000018a2: SWAP3
000018a3: SSTORE
000018a4: POP
000018a5: POP
000018a6: JUMP
000018a7: JUMPDEST
000018a8: CALLER
000018a9: PUSH2 0x18ba
000018ac: PUSH1 0x00
000018ae: SLOAD
000018af: PUSH1 0x01
000018b1: PUSH1 0x01
000018b3: PUSH1 0xa0
000018b5: SHL
000018b6: SUB
000018b7: AND
000018b8: SWAP1
000018b9: JUMP
000018ba: JUMPDEST
000018bb: PUSH1 0x01
000018bd: PUSH1 0x01
000018bf: PUSH1 0xa0
000018c1: SHL
000018c2: SUB
000018c3: AND
000018c4: EQ
000018c5: PUSH2 0x18e0
000018c8: JUMPI
000018c9: PUSH1 0x40
000018cb: MLOAD
000018cc: PUSH3 0x461bcd
000018d0: PUSH1 0xe5
000018d2: SHL
000018d3: DUP2
000018d4: MSTORE
000018d5: PUSH1 0x04
000018d7: ADD
000018d8: PUSH2 0x0975
000018db: SWAP1
000018dc: PUSH2 0x2e96
000018df: JUMP
000018e0: JUMPDEST
000018e1: PUSH1 0x64
000018e3: PUSH2 0xffff
000018e6: DUP3
000018e7: AND
000018e8: GT
000018e9: ISZERO
000018ea: PUSH2 0x192b
000018ed: JUMPI
000018ee: PUSH1 0x40
000018f0: MLOAD
000018f1: PUSH3 0x461bcd
000018f5: PUSH1 0xe5
000018f7: SHL
000018f8: DUP2
000018f9: MSTORE
000018fa: PUSH1 0x20
000018fc: PUSH1 0x04
000018fe: DUP3
000018ff: ADD
00001900: MSTORE
00001901: PUSH1 0x13
00001903: PUSH1 0x24
00001905: DUP3
00001906: ADD
00001907: MSTORE
00001908: PUSH19 0x084c2e8c6d040e6d2f4ca40e8dede40d0d2ced
0000191c: PUSH1 0x6b
0000191e: SHL
0000191f: PUSH1 0x44
00001921: DUP3
00001922: ADD
00001923: MSTORE
00001924: PUSH1 0x64
00001926: ADD
00001927: PUSH2 0x0975
0000192a: JUMP
0000192b: JUMPDEST
0000192c: PUSH1 0x02
0000192e: DUP1
0000192f: SLOAD
00001930: PUSH2 0xffff
00001933: SWAP1
00001934: SWAP3
00001935: AND
00001936: PUSH1 0x01
00001938: PUSH1 0x40
0000193a: SHL
0000193b: MUL
0000193c: PUSH10 0xffff0000000000000000
00001947: NOT
00001948: SWAP1
00001949: SWAP3
0000194a: AND
0000194b: SWAP2
0000194c: SWAP1
0000194d: SWAP2
0000194e: OR
0000194f: SWAP1
00001950: SSTORE
00001951: JUMP
00001952: JUMPDEST
00001953: PUSH1 0x00
00001955: CALLER
00001956: PUSH2 0x1967
00001959: PUSH1 0x01
0000195b: SLOAD
0000195c: PUSH1 0x01
0000195e: PUSH1 0x01
00001960: PUSH1 0xa0
00001962: SHL
00001963: SUB
00001964: AND
00001965: SWAP1
00001966: JUMP
00001967: JUMPDEST
00001968: PUSH1 0x01
0000196a: PUSH1 0x01
0000196c: PUSH1 0xa0
0000196e: SHL
0000196f: SUB
00001970: AND
00001971: EQ
00001972: PUSH2 0x19c9
00001975: JUMPI
00001976: PUSH1 0x40
00001978: MLOAD
00001979: PUSH3 0x461bcd
0000197d: PUSH1 0xe5
0000197f: SHL
00001980: DUP2
00001981: MSTORE
00001982: PUSH1 0x20
00001984: PUSH1 0x04
00001986: DUP3
00001987: ADD
00001988: MSTORE
00001989: PUSH1 0x24
0000198b: DUP1
0000198c: DUP3
0000198d: ADD
0000198e: MSTORE
0000198f: PUSH32 0x41636365737320436f6e74726f6c3a2073656e646572206973206e6f74204272
000019b0: PUSH1 0x44
000019b2: DUP3
000019b3: ADD
000019b4: MSTORE
000019b5: PUSH4 0x69646765
000019ba: PUSH1 0xe0
000019bc: SHL
000019bd: PUSH1 0x64
000019bf: DUP3
000019c0: ADD
000019c1: MSTORE
000019c2: PUSH1 0x84
000019c4: ADD
000019c5: PUSH2 0x0975
000019c8: JUMP
000019c9: JUMPDEST
000019ca: PUSH2 0x19d2
000019cd: DUP5
000019ce: PUSH2 0x24f0
000019d1: JUMP
000019d2: JUMPDEST
000019d3: PUSH2 0x1a38
000019d6: JUMPI
000019d7: DUP4
000019d8: PUSH1 0x00
000019da: PUSH2 0x19ed
000019dd: PUSH1 0x01
000019df: PUSH1 0x01
000019e1: PUSH1 0xa0
000019e3: SHL
000019e4: SUB
000019e5: DUP4
000019e6: AND
000019e7: DUP6
000019e8: DUP8
000019e9: PUSH2 0x26e4
000019ec: JUMP
000019ed: JUMPDEST
000019ee: SWAP1
000019ef: POP
000019f0: DUP1
000019f1: PUSH2 0x19ff
000019f4: JUMPI
000019f5: PUSH1 0x00
000019f7: SWAP3
000019f8: POP
000019f9: POP
000019fa: POP
000019fb: PUSH2 0x1b35
000019fe: JUMP
000019ff: JUMPDEST
00001a00: PUSH1 0x01
00001a02: PUSH1 0x01
00001a04: PUSH1 0xa0
00001a06: SHL
00001a07: SUB
00001a08: DUP7
00001a09: AND
00001a0a: PUSH1 0x00
00001a0c: SWAP1
00001a0d: DUP2
00001a0e: MSTORE
00001a0f: PUSH1 0x13
00001a11: PUSH1 0x20
00001a13: MSTORE
00001a14: PUSH1 0x40
00001a16: DUP2
00001a17: KECCAK256
00001a18: DUP1
00001a19: SLOAD
00001a1a: DUP8
00001a1b: SWAP3
00001a1c: SWAP1
00001a1d: PUSH2 0x1a27
00001a20: SWAP1
00001a21: DUP5
00001a22: SWAP1
00001a23: PUSH2 0x2e83
00001a26: JUMP
00001a27: JUMPDEST
00001a28: SWAP1
00001a29: SWAP2
00001a2a: SSTORE
00001a2b: POP
00001a2c: PUSH1 0x01
00001a2e: SWAP4
00001a2f: POP
00001a30: PUSH2 0x1b35
00001a33: SWAP3
00001a34: POP
00001a35: POP
00001a36: POP
00001a37: JUMP
00001a38: JUMPDEST
00001a39: PUSH1 0x01
00001a3b: PUSH1 0x01
00001a3d: PUSH1 0xa0
00001a3f: SHL
00001a40: SUB
00001a41: DUP5
00001a42: AND
00001a43: PUSH1 0x00
00001a45: SWAP1
00001a46: DUP2
00001a47: MSTORE
00001a48: PUSH1 0x10
00001a4a: PUSH1 0x20
00001a4c: MSTORE
00001a4d: PUSH1 0x40
00001a4f: SWAP1
00001a50: KECCAK256
00001a51: SLOAD
00001a52: PUSH1 0xff
00001a54: AND
00001a55: ISZERO
00001a56: PUSH2 0x1ae4
00001a59: JUMPI
00001a5a: PUSH1 0x01
00001a5c: PUSH1 0x01
00001a5e: PUSH1 0xa0
00001a60: SHL
00001a61: SUB
00001a62: DUP5
00001a63: AND
00001a64: PUSH1 0x00
00001a66: SWAP1
00001a67: DUP2
00001a68: MSTORE
00001a69: PUSH1 0x14
00001a6b: PUSH1 0x20
00001a6d: MSTORE
00001a6e: PUSH1 0x40
00001a70: SWAP1
00001a71: KECCAK256
00001a72: SLOAD
00001a73: PUSH2 0x1a7d
00001a76: SWAP1
00001a77: DUP5
00001a78: SWAP1
00001a79: PUSH2 0x2f45
00001a7c: JUMP
00001a7d: JUMPDEST
00001a7e: PUSH1 0x01
00001a80: PUSH1 0x01
00001a82: PUSH1 0xa0
00001a84: SHL
00001a85: SUB
00001a86: DUP6
00001a87: AND
00001a88: PUSH1 0x00
00001a8a: SWAP1
00001a8b: DUP2
00001a8c: MSTORE
00001a8d: PUSH1 0x15
00001a8f: PUSH1 0x20
00001a91: MSTORE
00001a92: PUSH1 0x40
00001a94: SWAP1
00001a95: KECCAK256
00001a96: SLOAD
00001a97: LT
00001a98: ISZERO
00001a99: PUSH2 0x1ae4
00001a9c: JUMPI
00001a9d: PUSH1 0x40
00001a9f: MLOAD
00001aa0: PUSH3 0x461bcd
00001aa4: PUSH1 0xe5
00001aa6: SHL
00001aa7: DUP2
00001aa8: MSTORE
00001aa9: PUSH1 0x20
00001aab: PUSH1 0x04
00001aad: DUP3
00001aae: ADD
00001aaf: MSTORE
00001ab0: PUSH1 0x18
00001ab2: PUSH1 0x24
00001ab4: DUP3
00001ab5: ADD
00001ab6: MSTORE
00001ab7: PUSH32 0x4e6f7420656e6f756768206275726e656420746f6b656e730000000000000000
00001ad8: PUSH1 0x44
00001ada: DUP3
00001adb: ADD
00001adc: MSTORE
00001add: PUSH1 0x64
00001adf: ADD
00001ae0: PUSH2 0x0975
00001ae3: JUMP
00001ae4: JUMPDEST
00001ae5: PUSH1 0x00
00001ae7: PUSH2 0x1af1
00001aea: DUP6
00001aeb: DUP5
00001aec: DUP7
00001aed: PUSH2 0x27cb
00001af0: JUMP
00001af1: JUMPDEST
00001af2: SWAP1
00001af3: POP
00001af4: DUP1
00001af5: PUSH2 0x1b02
00001af8: JUMPI
00001af9: PUSH1 0x00
00001afb: SWAP2
00001afc: POP
00001afd: POP
00001afe: PUSH2 0x1b35
00001b01: JUMP
00001b02: JUMPDEST
00001b03: PUSH1 0x01
00001b05: PUSH1 0x01
00001b07: PUSH1 0xa0
00001b09: SHL
00001b0a: SUB
00001b0b: DUP6
00001b0c: AND
00001b0d: PUSH1 0x00
00001b0f: SWAP1
00001b10: DUP2
00001b11: MSTORE
00001b12: PUSH1 0x14
00001b14: PUSH1 0x20
00001b16: MSTORE
00001b17: PUSH1 0x40
00001b19: DUP2
00001b1a: KECCAK256
00001b1b: DUP1
00001b1c: SLOAD
00001b1d: DUP7
00001b1e: SWAP3
00001b1f: SWAP1
00001b20: PUSH2 0x1b2a
00001b23: SWAP1
00001b24: DUP5
00001b25: SWAP1
00001b26: PUSH2 0x2f45
00001b29: JUMP
00001b2a: JUMPDEST
00001b2b: SWAP1
00001b2c: SWAP2
00001b2d: SSTORE
00001b2e: POP
00001b2f: PUSH1 0x01
00001b31: SWAP3
00001b32: POP
00001b33: POP
00001b34: POP
00001b35: JUMPDEST
00001b36: SWAP4
00001b37: SWAP3
00001b38: POP
00001b39: POP
00001b3a: POP
00001b3b: JUMP
00001b3c: JUMPDEST
00001b3d: CALLER
00001b3e: PUSH2 0x1b4f
00001b41: PUSH1 0x00
00001b43: SLOAD
00001b44: PUSH1 0x01
00001b46: PUSH1 0x01
00001b48: PUSH1 0xa0
00001b4a: SHL
00001b4b: SUB
00001b4c: AND
00001b4d: SWAP1
00001b4e: JUMP
00001b4f: JUMPDEST
00001b50: PUSH1 0x01
00001b52: PUSH1 0x01
00001b54: PUSH1 0xa0
00001b56: SHL
00001b57: SUB
00001b58: AND
00001b59: EQ
00001b5a: PUSH2 0x1b75
00001b5d: JUMPI
00001b5e: PUSH1 0x40
00001b60: MLOAD
00001b61: PUSH3 0x461bcd
00001b65: PUSH1 0xe5
00001b67: SHL
00001b68: DUP2
00001b69: MSTORE
00001b6a: PUSH1 0x04
00001b6c: ADD
00001b6d: PUSH2 0x0975
00001b70: SWAP1
00001b71: PUSH2 0x2e96
00001b74: JUMP
00001b75: JUMPDEST
00001b76: PUSH1 0x02
00001b78: SLOAD
00001b79: PUSH1 0xff
00001b7b: PUSH1 0x01
00001b7d: PUSH1 0x58
00001b7f: SHL
00001b80: SWAP1
00001b81: SWAP2
00001b82: DIV
00001b83: DUP2
00001b84: AND
00001b85: SWAP1
00001b86: DUP3
00001b87: AND
00001b88: GT
00001b89: ISZERO
00001b8a: PUSH2 0x1bfb
00001b8d: JUMPI
00001b8e: PUSH1 0x40
00001b90: MLOAD
00001b91: PUSH3 0x461bcd
00001b95: PUSH1 0xe5
00001b97: SHL
00001b98: DUP2
00001b99: MSTORE
00001b9a: PUSH1 0x20
00001b9c: PUSH1 0x04
00001b9e: DUP3
00001b9f: ADD
00001ba0: MSTORE
00001ba1: PUSH1 0x37
00001ba3: PUSH1 0x24
00001ba5: DUP3
00001ba6: ADD
00001ba7: MSTORE
00001ba8: PUSH32 0x43616e6e6f7420696e63726561736520626174636820626c6f636b206c696d69
00001bc9: PUSH1 0x44
00001bcb: DUP3
00001bcc: ADD
00001bcd: MSTORE
00001bce: PUSH32 0x74206f76657220736574746c656d656e74206c696d6974000000000000000000
00001bef: PUSH1 0x64
00001bf1: DUP3
00001bf2: ADD
00001bf3: MSTORE
00001bf4: PUSH1 0x84
00001bf6: ADD
00001bf7: PUSH2 0x0975
00001bfa: JUMP
00001bfb: JUMPDEST
00001bfc: PUSH1 0x02
00001bfe: DUP1
00001bff: SLOAD
00001c00: PUSH1 0xff
00001c02: SWAP1
00001c03: SWAP3
00001c04: AND
00001c05: PUSH1 0x01
00001c07: PUSH1 0x50
00001c09: SHL
00001c0a: MUL
00001c0b: PUSH1 0xff
00001c0d: PUSH1 0x50
00001c0f: SHL
00001c10: NOT
00001c11: SWAP1
00001c12: SWAP3
00001c13: AND
00001c14: SWAP2
00001c15: SWAP1
00001c16: SWAP2
00001c17: OR
00001c18: SWAP1
00001c19: SSTORE
00001c1a: JUMP
00001c1b: JUMPDEST
00001c1c: CALLER
00001c1d: PUSH2 0x1c2e
00001c20: PUSH1 0x00
00001c22: SLOAD
00001c23: PUSH1 0x01
00001c25: PUSH1 0x01
00001c27: PUSH1 0xa0
00001c29: SHL
00001c2a: SUB
00001c2b: AND
00001c2c: SWAP1
00001c2d: JUMP
00001c2e: JUMPDEST
00001c2f: PUSH1 0x01
00001c31: PUSH1 0x01
00001c33: PUSH1 0xa0
00001c35: SHL
00001c36: SUB
00001c37: AND
00001c38: EQ
00001c39: PUSH2 0x1c54
00001c3c: JUMPI
00001c3d: PUSH1 0x40
00001c3f: MLOAD
00001c40: PUSH3 0x461bcd
00001c44: PUSH1 0xe5
00001c46: SHL
00001c47: DUP2
00001c48: MSTORE
00001c49: PUSH1 0x04
00001c4b: ADD
00001c4c: PUSH2 0x0975
00001c4f: SWAP1
00001c50: PUSH2 0x2e96
00001c53: JUMP
00001c54: JUMPDEST
00001c55: PUSH1 0x01
00001c57: PUSH1 0x01
00001c59: PUSH1 0xa0
00001c5b: SHL
00001c5c: SUB
00001c5d: DUP4
00001c5e: AND
00001c5f: PUSH1 0x00
00001c61: SWAP1
00001c62: DUP2
00001c63: MSTORE
00001c64: PUSH1 0x0e
00001c66: PUSH1 0x20
00001c68: MSTORE
00001c69: PUSH1 0x40
00001c6b: SWAP1
00001c6c: KECCAK256
00001c6d: SLOAD
00001c6e: PUSH1 0xff
00001c70: AND
00001c71: PUSH2 0x1c8c
00001c74: JUMPI
00001c75: PUSH1 0x40
00001c77: MLOAD
00001c78: PUSH3 0x461bcd
00001c7c: PUSH1 0xe5
00001c7e: SHL
00001c7f: DUP2
00001c80: MSTORE
00001c81: PUSH1 0x04
00001c83: ADD
00001c84: PUSH2 0x0975
00001c87: SWAP1
00001c88: PUSH2 0x2ed9
00001c8b: JUMP
00001c8c: JUMPDEST
00001c8d: PUSH2 0x1c95
00001c90: DUP4
00001c91: PUSH2 0x24f0
00001c94: JUMP
00001c95: JUMPDEST
00001c96: PUSH2 0x1cf6
00001c99: JUMPI
00001c9a: PUSH1 0x40
00001c9c: MLOAD
00001c9d: PUSH3 0x461bcd
00001ca1: PUSH1 0xe5
00001ca3: SHL
00001ca4: DUP2
00001ca5: MSTORE
00001ca6: PUSH1 0x20
00001ca8: PUSH1 0x04
00001caa: DUP3
00001cab: ADD
00001cac: MSTORE
00001cad: PUSH1 0x2c
00001caf: PUSH1 0x24
00001cb1: DUP3
00001cb2: ADD
00001cb3: MSTORE
00001cb4: PUSH32 0x43616e6e6f7420696e697420666f72206e6f6e206d696e7461626c652f627572
00001cd5: PUSH1 0x44
00001cd7: DUP3
00001cd8: ADD
00001cd9: MSTORE
00001cda: PUSH12 0x6e61626c6520746f6b656e73
00001ce7: PUSH1 0xa0
00001ce9: SHL
00001cea: PUSH1 0x64
00001cec: DUP3
00001ced: ADD
00001cee: MSTORE
00001cef: PUSH1 0x84
00001cf1: ADD
00001cf2: PUSH2 0x0975
00001cf5: JUMP
00001cf6: JUMPDEST
00001cf7: PUSH1 0x01
00001cf9: PUSH1 0x01
00001cfb: PUSH1 0xa0
00001cfd: SHL
00001cfe: SUB
00001cff: SWAP1
00001d00: SWAP3
00001d01: AND
00001d02: PUSH1 0x00
00001d04: SWAP1
00001d05: DUP2
00001d06: MSTORE
00001d07: PUSH1 0x15
00001d09: PUSH1 0x20
00001d0b: SWAP1
00001d0c: DUP2
00001d0d: MSTORE
00001d0e: PUSH1 0x40
00001d10: DUP1
00001d11: DUP4
00001d12: KECCAK256
00001d13: SWAP5
00001d14: SWAP1
00001d15: SWAP5
00001d16: SSTORE
00001d17: PUSH1 0x14
00001d19: SWAP1
00001d1a: MSTORE
00001d1b: SWAP2
00001d1c: SWAP1
00001d1d: SWAP2
00001d1e: KECCAK256
00001d1f: SSTORE
00001d20: JUMP
00001d21: JUMPDEST
00001d22: CALLER
00001d23: PUSH2 0x1d34
00001d26: PUSH1 0x00
00001d28: SLOAD
00001d29: PUSH1 0x01
00001d2b: PUSH1 0x01
00001d2d: PUSH1 0xa0
00001d2f: SHL
00001d30: SUB
00001d31: AND
00001d32: SWAP1
00001d33: JUMP
00001d34: JUMPDEST
00001d35: PUSH1 0x01
00001d37: PUSH1 0x01
00001d39: PUSH1 0xa0
00001d3b: SHL
00001d3c: SUB
00001d3d: AND
00001d3e: EQ
00001d3f: PUSH2 0x1d5a
00001d42: JUMPI
00001d43: PUSH1 0x40
00001d45: MLOAD
00001d46: PUSH3 0x461bcd
00001d4a: PUSH1 0xe5
00001d4c: SHL
00001d4d: DUP2
00001d4e: MSTORE
00001d4f: PUSH1 0x04
00001d51: ADD
00001d52: PUSH2 0x0975
00001d55: SWAP1
00001d56: PUSH2 0x2e96
00001d59: JUMP
00001d5a: JUMPDEST
00001d5b: PUSH1 0x01
00001d5d: SLOAD
00001d5e: PUSH1 0x01
00001d60: PUSH1 0xa0
00001d62: SHL
00001d63: SWAP1
00001d64: DIV
00001d65: PUSH1 0xff
00001d67: AND
00001d68: PUSH2 0x1daa
00001d6b: JUMPI
00001d6c: PUSH1 0x40
00001d6e: MLOAD
00001d6f: PUSH3 0x461bcd
00001d73: PUSH1 0xe5
00001d75: SHL
00001d76: DUP2
00001d77: MSTORE
00001d78: PUSH1 0x20
00001d7a: PUSH1 0x04
00001d7c: DUP3
00001d7d: ADD
00001d7e: MSTORE
00001d7f: PUSH1 0x14
00001d81: PUSH1 0x24
00001d83: DUP3
00001d84: ADD
00001d85: MSTORE
00001d86: PUSH20 0x14185d5cd8589b194e881b9bdd081c185d5cd959
00001d9b: PUSH1 0x62
00001d9d: SHL
00001d9e: PUSH1 0x44
00001da0: DUP3
00001da1: ADD
00001da2: MSTORE
00001da3: PUSH1 0x64
00001da5: ADD
00001da6: PUSH2 0x0975
00001da9: JUMP
00001daa: JUMPDEST
00001dab: PUSH2 0x1db2
00001dae: PUSH2 0x12a9
00001db1: JUMP
00001db2: JUMPDEST
00001db3: ISZERO
00001db4: PUSH2 0x1e1b
00001db7: JUMPI
00001db8: PUSH1 0x40
00001dba: MLOAD
00001dbb: PUSH3 0x461bcd
00001dbf: PUSH1 0xe5
00001dc1: SHL
00001dc2: DUP2
00001dc3: MSTORE
00001dc4: PUSH1 0x20
00001dc6: PUSH1 0x04
00001dc8: DUP3
00001dc9: ADD
00001dca: MSTORE
00001dcb: PUSH1 0x33
00001dcd: PUSH1 0x24
00001dcf: DUP3
00001dd0: ADD
00001dd1: MSTORE
00001dd2: PUSH32 0x43616e6e6f74206368616e6765206261746368536574746c654c696d69742077
00001df3: PUSH1 0x44
00001df5: DUP3
00001df6: ADD
00001df7: MSTORE
00001df8: PUSH19 0x6974682070656e64696e672062617463686573
00001e0c: PUSH1 0x68
00001e0e: SHL
00001e0f: PUSH1 0x64
00001e11: DUP3
00001e12: ADD
00001e13: MSTORE
00001e14: PUSH1 0x84
00001e16: ADD
00001e17: PUSH2 0x0975
00001e1a: JUMP
00001e1b: JUMPDEST
00001e1c: PUSH1 0x02
00001e1e: SLOAD
00001e1f: PUSH1 0xff
00001e21: PUSH1 0x01
00001e23: PUSH1 0x50
00001e25: SHL
00001e26: SWAP1
00001e27: SWAP2
00001e28: DIV
00001e29: DUP2
00001e2a: AND
00001e2b: SWAP1
00001e2c: DUP3
00001e2d: AND
00001e2e: LT
00001e2f: ISZERO
00001e30: PUSH2 0x1eaf
00001e33: JUMPI
00001e34: PUSH1 0x40
00001e36: MLOAD
00001e37: PUSH3 0x461bcd
00001e3b: PUSH1 0xe5
00001e3d: SHL
00001e3e: DUP2
00001e3f: MSTORE
00001e40: PUSH1 0x20
00001e42: PUSH1 0x04
00001e44: DUP3
00001e45: ADD
00001e46: MSTORE
00001e47: PUSH1 0x45
00001e49: PUSH1 0x24
00001e4b: DUP3
00001e4c: ADD
00001e4d: MSTORE
00001e4e: PUSH32 0x43616e6e6f74206465637265617365206261746368536574746c654c696d6974
00001e6f: PUSH1 0x44
00001e71: DUP3
00001e72: ADD
00001e73: MSTORE
00001e74: PUSH32 0x20756e646572207468652076616c7565206f6620626174636820626c6f636b20
00001e95: PUSH1 0x64
00001e97: DUP3
00001e98: ADD
00001e99: MSTORE
00001e9a: PUSH5 0x1b1a5b5a5d
00001ea0: PUSH1 0xda
00001ea2: SHL
00001ea3: PUSH1 0x84
00001ea5: DUP3
00001ea6: ADD
00001ea7: MSTORE
00001ea8: PUSH1 0xa4
00001eaa: ADD
00001eab: PUSH2 0x0975
00001eae: JUMP
00001eaf: JUMPDEST
00001eb0: PUSH1 0x02
00001eb2: DUP1
00001eb3: SLOAD
00001eb4: PUSH1 0xff
00001eb6: SWAP1
00001eb7: SWAP3
00001eb8: AND
00001eb9: PUSH1 0x01
00001ebb: PUSH1 0x58
00001ebd: SHL
00001ebe: MUL
00001ebf: PUSH1 0xff
00001ec1: PUSH1 0x58
00001ec3: SHL
00001ec4: NOT
00001ec5: SWAP1
00001ec6: SWAP3
00001ec7: AND
00001ec8: SWAP2
00001ec9: SWAP1
00001eca: SWAP2
00001ecb: OR
00001ecc: SWAP1
00001ecd: SSTORE
00001ece: JUMP
00001ecf: JUMPDEST
00001ed0: PUSH1 0x02
00001ed2: SLOAD
00001ed3: PUSH1 0x40
00001ed5: DUP3
00001ed6: ADD
00001ed7: MLOAD
00001ed8: PUSH1 0x00
00001eda: SWAP2
00001edb: NUMBER
00001edc: SWAP2
00001edd: PUSH2 0x1ef0
00001ee0: SWAP2
00001ee1: PUSH1 0x01
00001ee3: PUSH1 0x58
00001ee5: SHL
00001ee6: SWAP1
00001ee7: DIV
00001ee8: PUSH1 0xff
00001eea: AND
00001eeb: SWAP1
00001eec: PUSH2 0x2fd7
00001eef: JUMP
00001ef0: JUMPDEST
00001ef1: PUSH1 0x01
00001ef3: PUSH1 0x01
00001ef5: PUSH1 0x40
00001ef7: SHL
00001ef8: SUB
00001ef9: AND
00001efa: LT
00001efb: SWAP3
00001efc: SWAP2
00001efd: POP
00001efe: POP
00001eff: JUMP
00001f00: JUMPDEST
00001f01: PUSH1 0x01
00001f03: PUSH1 0x01
00001f05: PUSH1 0xa0
00001f07: SHL
00001f08: SUB
00001f09: DUP4
00001f0a: AND
00001f0b: PUSH1 0x00
00001f0d: SWAP1
00001f0e: DUP2
00001f0f: MSTORE
00001f10: PUSH1 0x0e
00001f12: PUSH1 0x20
00001f14: MSTORE
00001f15: PUSH1 0x40
00001f17: DUP2
00001f18: KECCAK256
00001f19: SLOAD
00001f1a: DUP2
00001f1b: SWAP1
00001f1c: PUSH1 0xff
00001f1e: AND
00001f1f: PUSH2 0x1f3a
00001f22: JUMPI
00001f23: PUSH1 0x40
00001f25: MLOAD
00001f26: PUSH3 0x461bcd
00001f2a: PUSH1 0xe5
00001f2c: SHL
00001f2d: DUP2
00001f2e: MSTORE
00001f2f: PUSH1 0x04
00001f31: ADD
00001f32: PUSH2 0x0975
00001f35: SWAP1
00001f36: PUSH2 0x2ed9
00001f39: JUMP
00001f3a: JUMPDEST
00001f3b: PUSH1 0x01
00001f3d: PUSH1 0x01
00001f3f: PUSH1 0xa0
00001f41: SHL
00001f42: SUB
00001f43: DUP6
00001f44: AND
00001f45: PUSH1 0x00
00001f47: SWAP1
00001f48: DUP2
00001f49: MSTORE
00001f4a: PUSH1 0x11
00001f4c: PUSH1 0x20
00001f4e: MSTORE
00001f4f: PUSH1 0x40
00001f51: SWAP1
00001f52: KECCAK256
00001f53: SLOAD
00001f54: DUP5
00001f55: LT
00001f56: ISZERO
00001f57: PUSH2 0x1fc8
00001f5a: JUMPI
00001f5b: PUSH1 0x40
00001f5d: MLOAD
00001f5e: PUSH3 0x461bcd
00001f62: PUSH1 0xe5
00001f64: SHL
00001f65: DUP2
00001f66: MSTORE
00001f67: PUSH1 0x20
00001f69: PUSH1 0x04
00001f6b: DUP3
00001f6c: ADD
00001f6d: MSTORE
00001f6e: PUSH1 0x3c
00001f70: PUSH1 0x24
00001f72: DUP3
00001f73: ADD
00001f74: MSTORE
00001f75: PUSH32 0x547269656420746f206465706f73697420616e20616d6f756e742062656c6f77
00001f96: PUSH1 0x44
00001f98: DUP3
00001f99: ADD
00001f9a: MSTORE
00001f9b: PUSH32 0x20746865206d696e696d756d20737065636966696564206c696d697400000000
00001fbc: PUSH1 0x64
00001fbe: DUP3
00001fbf: ADD
00001fc0: MSTORE
00001fc1: PUSH1 0x84
00001fc3: ADD
00001fc4: PUSH2 0x0975
00001fc7: JUMP
00001fc8: JUMPDEST
00001fc9: PUSH1 0x01
00001fcb: PUSH1 0x01
00001fcd: PUSH1 0xa0
00001fcf: SHL
00001fd0: SUB
00001fd1: DUP6
00001fd2: AND
00001fd3: PUSH1 0x00
00001fd5: SWAP1
00001fd6: DUP2
00001fd7: MSTORE
00001fd8: PUSH1 0x12
00001fda: PUSH1 0x20
00001fdc: MSTORE
00001fdd: PUSH1 0x40
00001fdf: SWAP1
00001fe0: KECCAK256
00001fe1: SLOAD
00001fe2: DUP5
00001fe3: GT
00001fe4: ISZERO
00001fe5: PUSH2 0x2056
00001fe8: JUMPI
00001fe9: PUSH1 0x40
00001feb: MLOAD
00001fec: PUSH3 0x461bcd
00001ff0: PUSH1 0xe5
00001ff2: SHL
00001ff3: DUP2
00001ff4: MSTORE
00001ff5: PUSH1 0x20
00001ff7: PUSH1 0x04
00001ff9: DUP3
00001ffa: ADD
00001ffb: MSTORE
00001ffc: PUSH1 0x3c
00001ffe: PUSH1 0x24
00002000: DUP3
00002001: ADD
00002002: MSTORE
00002003: PUSH32 0x547269656420746f206465706f73697420616e20616d6f756e742061626f7665
00002024: PUSH1 0x44
00002026: DUP3
00002027: ADD
00002028: MSTORE
00002029: PUSH32 0x20746865206d6178696d756d20737065636966696564206c696d697400000000
0000204a: PUSH1 0x64
0000204c: DUP3
0000204d: ADD
0000204e: MSTORE
0000204f: PUSH1 0x84
00002051: ADD
00002052: PUSH2 0x0975
00002055: JUMP
00002056: JUMPDEST
00002057: NUMBER
00002058: PUSH1 0x00
0000205a: PUSH2 0x2061
0000205d: PUSH2 0x2605
00002060: JUMP
00002061: JUMPDEST
00002062: ISZERO
00002063: PUSH2 0x20fe
00002066: JUMPI
00002067: POP
00002068: PUSH1 0x01
0000206a: DUP1
0000206b: SLOAD
0000206c: PUSH1 0x01
0000206e: PUSH1 0xa8
00002070: SHL
00002071: SWAP1
00002072: DIV
00002073: PUSH1 0x01
00002075: PUSH1 0x01
00002077: PUSH1 0x40
00002079: SHL
0000207a: SUB
0000207b: AND
0000207c: PUSH1 0x00
0000207e: DUP2
0000207f: DUP2
00002080: MSTORE
00002081: PUSH1 0x0d
00002083: PUSH1 0x20
00002085: MSTORE
00002086: PUSH1 0x40
00002088: SWAP1
00002089: KECCAK256
0000208a: SWAP2
0000208b: PUSH2 0x2094
0000208e: SWAP2
0000208f: SWAP1
00002090: PUSH2 0x2fd7
00002093: JUMP
00002094: JUMPDEST
00002095: DUP2
00002096: SLOAD
00002097: PUSH1 0x01
00002099: PUSH1 0x01
0000209b: PUSH1 0x40
0000209d: SHL
0000209e: SUB
0000209f: SWAP2
000020a0: DUP3
000020a1: AND
000020a2: PUSH1 0x01
000020a4: PUSH1 0x01
000020a6: PUSH1 0xb0
000020a8: SHL
000020a9: SUB
000020aa: NOT
000020ab: SWAP1
000020ac: SWAP2
000020ad: AND
000020ae: OR
000020af: PUSH1 0x01
000020b1: PUSH1 0x70
000020b3: SHL
000020b4: DUP5
000020b5: DUP4
000020b6: AND
000020b7: MUL
000020b8: OR
000020b9: DUP3
000020ba: SSTORE
000020bb: PUSH1 0x01
000020bd: DUP1
000020be: SLOAD
000020bf: PUSH1 0x01
000020c1: PUSH1 0xa8
000020c3: SHL
000020c4: SWAP1
000020c5: DIV
000020c6: SWAP1
000020c7: SWAP2
000020c8: AND
000020c9: SWAP1
000020ca: PUSH1 0x15
000020cc: PUSH2 0x20d4
000020cf: DUP4
000020d0: PUSH2 0x2ff7
000020d3: JUMP
000020d4: JUMPDEST
000020d5: SWAP2
000020d6: SWAP1
000020d7: PUSH2 0x0100
000020da: EXP
000020db: DUP2
000020dc: SLOAD
000020dd: DUP2
000020de: PUSH1 0x01
000020e0: PUSH1 0x01
000020e2: PUSH1 0x40
000020e4: SHL
000020e5: SUB
000020e6: MUL
000020e7: NOT
000020e8: AND
000020e9: SWAP1
000020ea: DUP4
000020eb: PUSH1 0x01
000020ed: PUSH1 0x01
000020ef: PUSH1 0x40
000020f1: SHL
000020f2: SUB
000020f3: AND
000020f4: MUL
000020f5: OR
000020f6: SWAP1
000020f7: SSTORE
000020f8: POP
000020f9: POP
000020fa: PUSH2 0x213c
000020fd: JUMP
000020fe: JUMPDEST
000020ff: PUSH1 0x01
00002101: DUP1
00002102: SLOAD
00002103: PUSH1 0x0d
00002105: SWAP2
00002106: PUSH1 0x00
00002108: SWAP2
00002109: PUSH2 0x2122
0000210c: SWAP2
0000210d: SWAP1
0000210e: PUSH1 0x01
00002110: PUSH1 0xa8
00002112: SHL
00002113: SWAP1
00002114: DIV
00002115: PUSH1 0x01
00002117: PUSH1 0x01
00002119: PUSH1 0x40
0000211b: SHL
0000211c: SUB
0000211d: AND
0000211e: PUSH2 0x2f71
00002121: JUMP
00002122: JUMPDEST
00002123: PUSH1 0x01
00002125: PUSH1 0x01
00002127: PUSH1 0x40
00002129: SHL
0000212a: SUB
0000212b: AND
0000212c: DUP2
0000212d: MSTORE
0000212e: PUSH1 0x20
00002130: ADD
00002131: SWAP1
00002132: DUP2
00002133: MSTORE
00002134: PUSH1 0x20
00002136: ADD
00002137: PUSH1 0x00
00002139: KECCAK256
0000213a: SWAP1
0000213b: POP
0000213c: JUMPDEST
0000213d: PUSH1 0x02
0000213f: SLOAD
00002140: PUSH1 0x00
00002142: SWAP1
00002143: PUSH2 0x2156
00002146: SWAP1
00002147: PUSH1 0x01
00002149: PUSH1 0x01
0000214b: PUSH1 0x40
0000214d: SHL
0000214e: SUB
0000214f: AND
00002150: PUSH1 0x01
00002152: PUSH2 0x2fd7
00002155: JUMP
00002156: JUMPDEST
00002157: PUSH1 0x01
00002159: PUSH1 0x01
0000215b: PUSH1 0x40
0000215d: SHL
0000215e: SUB
0000215f: AND
00002160: SWAP1
00002161: POP
00002162: PUSH1 0x16
00002164: PUSH1 0x00
00002166: PUSH1 0x01
00002168: DUP1
00002169: PUSH1 0x15
0000216b: SWAP1
0000216c: SLOAD
0000216d: SWAP1
0000216e: PUSH2 0x0100
00002171: EXP
00002172: SWAP1
00002173: DIV
00002174: PUSH1 0x01
00002176: PUSH1 0x01
00002178: PUSH1 0x40
0000217a: SHL
0000217b: SUB
0000217c: AND
0000217d: PUSH2 0x2186
00002180: SWAP2
00002181: SWAP1
00002182: PUSH2 0x2f71
00002185: JUMP
00002186: JUMPDEST
00002187: PUSH1 0x01
00002189: PUSH1 0x01
0000218b: PUSH1 0x40
0000218d: SHL
0000218e: SUB
0000218f: AND
00002190: DUP2
00002191: MSTORE
00002192: PUSH1 0x20
00002194: ADD
00002195: SWAP1
00002196: DUP2
00002197: MSTORE
00002198: PUSH1 0x20
0000219a: ADD
0000219b: PUSH1 0x00
0000219d: KECCAK256
0000219e: PUSH1 0x40
000021a0: MLOAD
000021a1: DUP1
000021a2: PUSH1 0xc0
000021a4: ADD
000021a5: PUSH1 0x40
000021a7: MSTORE
000021a8: DUP1
000021a9: DUP4
000021aa: PUSH1 0x01
000021ac: PUSH1 0x01
000021ae: PUSH1 0x70
000021b0: SHL
000021b1: SUB
000021b2: AND
000021b3: DUP2
000021b4: MSTORE
000021b5: PUSH1 0x20
000021b7: ADD
000021b8: DUP11
000021b9: PUSH1 0x01
000021bb: PUSH1 0x01
000021bd: PUSH1 0xa0
000021bf: SHL
000021c0: SUB
000021c1: AND
000021c2: DUP2
000021c3: MSTORE
000021c4: PUSH1 0x20
000021c6: ADD
000021c7: DUP10
000021c8: DUP2
000021c9: MSTORE
000021ca: PUSH1 0x20
000021cc: ADD
000021cd: CALLER
000021ce: PUSH1 0x01
000021d0: PUSH1 0x01
000021d2: PUSH1 0xa0
000021d4: SHL
000021d5: SUB
000021d6: AND
000021d7: DUP2
000021d8: MSTORE
000021d9: PUSH1 0x20
000021db: ADD
000021dc: DUP9
000021dd: DUP2
000021de: MSTORE
000021df: PUSH1 0x20
000021e1: ADD
000021e2: PUSH1 0x01
000021e4: PUSH1 0x04
000021e6: DUP2
000021e7: GT
000021e8: ISZERO
000021e9: PUSH2 0x21f4
000021ec: JUMPI
000021ed: PUSH2 0x21f4
000021f0: PUSH2 0x2aee
000021f3: JUMP
000021f4: JUMPDEST
000021f5: SWAP1
000021f6: MSTORE
000021f7: DUP2
000021f8: SLOAD
000021f9: PUSH1 0x01
000021fb: DUP2
000021fc: DUP2
000021fd: ADD
000021fe: DUP5
000021ff: SSTORE
00002200: PUSH1 0x00
00002202: SWAP4
00002203: DUP5
00002204: MSTORE
00002205: PUSH1 0x20
00002207: SWAP4
00002208: DUP5
00002209: SWAP1
0000220a: KECCAK256
0000220b: DUP4
0000220c: MLOAD
0000220d: PUSH1 0x06
0000220f: SWAP1
00002210: SWAP4
00002211: MUL
00002212: ADD
00002213: DUP1
00002214: SLOAD
00002215: PUSH1 0x01
00002217: PUSH1 0x01
00002219: PUSH1 0x70
0000221b: SHL
0000221c: SUB
0000221d: SWAP1
0000221e: SWAP4
0000221f: AND
00002220: PUSH14 0xffffffffffffffffffffffffffff
0000222f: NOT
00002230: SWAP1
00002231: SWAP4
00002232: AND
00002233: SWAP3
00002234: SWAP1
00002235: SWAP3
00002236: OR
00002237: DUP3
00002238: SSTORE
00002239: SWAP3
0000223a: DUP3
0000223b: ADD
0000223c: MLOAD
0000223d: DUP2
0000223e: DUP5
0000223f: ADD
00002240: DUP1
00002241: SLOAD
00002242: PUSH1 0x01
00002244: PUSH1 0x01
00002246: PUSH1 0xa0
00002248: SHL
00002249: SUB
0000224a: SWAP3
0000224b: DUP4
0000224c: AND
0000224d: PUSH1 0x01
0000224f: PUSH1 0x01
00002251: PUSH1 0xa0
00002253: SHL
00002254: SUB
00002255: NOT
00002256: SWAP2
00002257: DUP3
00002258: AND
00002259: OR
0000225a: SWAP1
0000225b: SWAP2
0000225c: SSTORE
0000225d: PUSH1 0x40
0000225f: DUP5
00002260: ADD
00002261: MLOAD
00002262: PUSH1 0x02
00002264: DUP5
00002265: ADD
00002266: SSTORE
00002267: PUSH1 0x60
00002269: DUP5
0000226a: ADD
0000226b: MLOAD
0000226c: PUSH1 0x03
0000226e: DUP5
0000226f: ADD
00002270: DUP1
00002271: SLOAD
00002272: SWAP2
00002273: SWAP1
00002274: SWAP4
00002275: AND
00002276: SWAP2
00002277: AND
00002278: OR
00002279: SWAP1
0000227a: SSTORE
0000227b: PUSH1 0x80
0000227d: DUP3
0000227e: ADD
0000227f: MLOAD
00002280: PUSH1 0x04
00002282: DUP1
00002283: DUP4
00002284: ADD
00002285: SWAP2
00002286: SWAP1
00002287: SWAP2
00002288: SSTORE
00002289: PUSH1 0xa0
0000228b: DUP4
0000228c: ADD
0000228d: MLOAD
0000228e: PUSH1 0x05
00002290: DUP4
00002291: ADD
00002292: DUP1
00002293: SLOAD
00002294: SWAP5
00002295: SWAP6
00002296: SWAP4
00002297: SWAP5
00002298: SWAP2
00002299: SWAP4
0000229a: SWAP1
0000229b: SWAP3
0000229c: PUSH1 0xff
0000229e: NOT
0000229f: SWAP1
000022a0: SWAP3
000022a1: AND
000022a2: SWAP2
000022a3: DUP5
000022a4: SWAP1
000022a5: DUP2
000022a6: GT
000022a7: ISZERO
000022a8: PUSH2 0x22b3
000022ab: JUMPI
000022ac: PUSH2 0x22b3
000022af: PUSH2 0x2aee
000022b2: JUMP
000022b3: JUMPDEST
000022b4: MUL
000022b5: OR
000022b6: SWAP1
000022b7: SSTORE
000022b8: POP
000022b9: POP
000022ba: DUP3
000022bb: SLOAD
000022bc: PUSH8 0xffffffffffffffff
000022c5: PUSH1 0xb0
000022c7: SHL
000022c8: NOT
000022c9: AND
000022ca: PUSH1 0x01
000022cc: PUSH1 0xb0
000022ce: SHL
000022cf: PUSH1 0x01
000022d1: PUSH1 0x01
000022d3: PUSH1 0x40
000022d5: SHL
000022d6: SUB
000022d7: DUP7
000022d8: AND
000022d9: MUL
000022da: OR
000022db: DUP1
000022dc: DUP5
000022dd: SSTORE
000022de: PUSH1 0x01
000022e0: PUSH1 0xf0
000022e2: SHL
000022e3: SWAP1
000022e4: DIV
000022e5: PUSH2 0xffff
000022e8: AND
000022e9: SWAP1
000022ea: POP
000022eb: DUP3
000022ec: PUSH1 0x1e
000022ee: PUSH2 0x22f6
000022f1: DUP4
000022f2: PUSH2 0x301d
000022f5: JUMP
000022f6: JUMPDEST
000022f7: DUP3
000022f8: SLOAD
000022f9: PUSH2 0xffff
000022fc: SWAP2
000022fd: DUP3
000022fe: AND
000022ff: PUSH2 0x0100
00002302: SWAP4
00002303: SWAP1
00002304: SWAP4
00002305: EXP
00002306: SWAP3
00002307: DUP4
00002308: MUL
00002309: SWAP2
0000230a: SWAP1
0000230b: SWAP3
0000230c: MUL
0000230d: NOT
0000230e: SWAP1
0000230f: SWAP2
00002310: AND
00002311: OR
00002312: SWAP1
00002313: SSTORE
00002314: POP
00002315: PUSH1 0x02
00002317: DUP1
00002318: SLOAD
00002319: PUSH1 0x01
0000231b: PUSH1 0x01
0000231d: PUSH1 0x40
0000231f: SHL
00002320: SUB
00002321: AND
00002322: SWAP1
00002323: PUSH1 0x00
00002325: PUSH2 0x232d
00002328: DUP4
00002329: PUSH2 0x2ff7
0000232c: JUMP
0000232d: JUMPDEST
0000232e: DUP3
0000232f: SLOAD
00002330: PUSH1 0x01
00002332: PUSH1 0x01
00002334: PUSH1 0x40
00002336: SHL
00002337: SUB
00002338: SWAP2
00002339: DUP3
0000233a: AND
0000233b: PUSH2 0x0100
0000233e: SWAP4
0000233f: SWAP1
00002340: SWAP4
00002341: EXP
00002342: SWAP3
00002343: DUP4
00002344: MUL
00002345: SWAP2
00002346: SWAP1
00002347: SWAP3
00002348: MUL
00002349: NOT
0000234a: SWAP1
0000234b: SWAP2
0000234c: AND
0000234d: OR
0000234e: SWAP1
0000234f: SSTORE
00002350: POP
00002351: DUP8
00002352: DUP1
00002353: PUSH2 0x235b
00002356: DUP2
00002357: PUSH2 0x24f0
0000235a: JUMP
0000235b: JUMPDEST
0000235c: ISZERO
0000235d: PUSH2 0x2494
00002360: JUMPI
00002361: PUSH1 0x01
00002363: PUSH1 0x01
00002365: PUSH1 0xa0
00002367: SHL
00002368: SUB
00002369: DUP11
0000236a: AND
0000236b: PUSH1 0x00
0000236d: SWAP1
0000236e: DUP2
0000236f: MSTORE
00002370: PUSH1 0x10
00002372: PUSH1 0x20
00002374: MSTORE
00002375: PUSH1 0x40
00002377: SWAP1
00002378: KECCAK256
00002379: SLOAD
0000237a: PUSH1 0xff
0000237c: AND
0000237d: PUSH2 0x2402
00002380: JUMPI
00002381: PUSH1 0x01
00002383: PUSH1 0x01
00002385: PUSH1 0xa0
00002387: SHL
00002388: SUB
00002389: DUP11
0000238a: AND
0000238b: PUSH1 0x00
0000238d: SWAP1
0000238e: DUP2
0000238f: MSTORE
00002390: PUSH1 0x15
00002392: PUSH1 0x20
00002394: SWAP1
00002395: DUP2
00002396: MSTORE
00002397: PUSH1 0x40
00002399: DUP1
0000239a: DUP4
0000239b: KECCAK256
0000239c: SLOAD
0000239d: PUSH1 0x14
0000239f: SWAP1
000023a0: SWAP3
000023a1: MSTORE
000023a2: DUP3
000023a3: KECCAK256
000023a4: SLOAD
000023a5: PUSH2 0x23ae
000023a8: SWAP2
000023a9: SWAP1
000023aa: PUSH2 0x2e83
000023ad: JUMP
000023ae: JUMPDEST
000023af: SWAP1
000023b0: POP
000023b1: DUP10
000023b2: DUP2
000023b3: LT
000023b4: ISZERO
000023b5: PUSH2 0x2400
000023b8: JUMPI
000023b9: PUSH1 0x40
000023bb: MLOAD
000023bc: PUSH3 0x461bcd
000023c0: PUSH1 0xe5
000023c2: SHL
000023c3: DUP2
000023c4: MSTORE
000023c5: PUSH1 0x20
000023c7: PUSH1 0x04
000023c9: DUP3
000023ca: ADD
000023cb: MSTORE
000023cc: PUSH1 0x18
000023ce: PUSH1 0x24
000023d0: DUP3
000023d1: ADD
000023d2: MSTORE
000023d3: PUSH32 0x4e6f7420656e6f756768206d696e74656420746f6b656e730000000000000000
000023f4: PUSH1 0x44
000023f6: DUP3
000023f7: ADD
000023f8: MSTORE
000023f9: PUSH1 0x64
000023fb: ADD
000023fc: PUSH2 0x0975
000023ff: JUMP
00002400: JUMPDEST
00002401: POP
00002402: JUMPDEST
00002403: PUSH1 0x01
00002405: PUSH1 0x01
00002407: PUSH1 0xa0
00002409: SHL
0000240a: SUB
0000240b: DUP11
0000240c: AND
0000240d: PUSH1 0x00
0000240f: SWAP1
00002410: DUP2
00002411: MSTORE
00002412: PUSH1 0x15
00002414: PUSH1 0x20
00002416: MSTORE
00002417: PUSH1 0x40
00002419: DUP2
0000241a: KECCAK256
0000241b: DUP1
0000241c: SLOAD
0000241d: DUP12
0000241e: SWAP3
0000241f: SWAP1
00002420: PUSH2 0x242a
00002423: SWAP1
00002424: DUP5
00002425: SWAP1
00002426: PUSH2 0x2f45
00002429: JUMP
0000242a: JUMPDEST
0000242b: SWAP1
0000242c: SWAP2
0000242d: SSTORE
0000242e: POP
0000242f: POP
00002430: PUSH1 0x40
00002432: MLOAD
00002433: PUSH4 0x079cc679
00002438: PUSH1 0xe4
0000243a: SHL
0000243b: DUP2
0000243c: MSTORE
0000243d: CALLER
0000243e: PUSH1 0x04
00002440: DUP3
00002441: ADD
00002442: MSTORE
00002443: PUSH1 0x24
00002445: DUP2
00002446: ADD
00002447: DUP11
00002448: SWAP1
00002449: MSTORE
0000244a: PUSH1 0x01
0000244c: PUSH1 0x01
0000244e: PUSH1 0xa0
00002450: SHL
00002451: SUB
00002452: DUP3
00002453: AND
00002454: SWAP1
00002455: PUSH4 0x79cc6790
0000245a: SWAP1
0000245b: PUSH1 0x44
0000245d: ADD
0000245e: PUSH1 0x00
00002460: PUSH1 0x40
00002462: MLOAD
00002463: DUP1
00002464: DUP4
00002465: SUB
00002466: DUP2
00002467: PUSH1 0x00
00002469: DUP8
0000246a: DUP1
0000246b: EXTCODESIZE
0000246c: ISZERO
0000246d: DUP1
0000246e: ISZERO
0000246f: PUSH2 0x2477
00002472: JUMPI
00002473: PUSH1 0x00
00002475: DUP1
00002476: REVERT
00002477: JUMPDEST
00002478: POP
00002479: GAS
0000247a: CALL
0000247b: ISZERO
0000247c: DUP1
0000247d: ISZERO
0000247e: PUSH2 0x248b
00002481: JUMPI
00002482: RETURNDATASIZE
00002483: PUSH1 0x00
00002485: DUP1
00002486: RETURNDATACOPY
00002487: RETURNDATASIZE
00002488: PUSH1 0x00
0000248a: REVERT
0000248b: JUMPDEST
0000248c: POP
0000248d: POP
0000248e: POP
0000248f: POP
00002490: PUSH2 0x24d7
00002493: JUMP
00002494: JUMPDEST
00002495: PUSH1 0x01
00002497: PUSH1 0x01
00002499: PUSH1 0xa0
0000249b: SHL
0000249c: SUB
0000249d: DUP11
0000249e: AND
0000249f: PUSH1 0x00
000024a1: SWAP1
000024a2: DUP2
000024a3: MSTORE
000024a4: PUSH1 0x13
000024a6: PUSH1 0x20
000024a8: MSTORE
000024a9: PUSH1 0x40
000024ab: DUP2
000024ac: KECCAK256
000024ad: DUP1
000024ae: SLOAD
000024af: DUP12
000024b0: SWAP3
000024b1: SWAP1
000024b2: PUSH2 0x24bc
000024b5: SWAP1
000024b6: DUP5
000024b7: SWAP1
000024b8: PUSH2 0x2f45
000024bb: JUMP
000024bc: JUMPDEST
000024bd: SWAP1
000024be: SWAP2
000024bf: SSTORE
000024c0: POP
000024c1: PUSH2 0x24d7
000024c4: SWAP1
000024c5: POP
000024c6: PUSH1 0x01
000024c8: PUSH1 0x01
000024ca: PUSH1 0xa0
000024cc: SHL
000024cd: SUB
000024ce: DUP4
000024cf: AND
000024d0: CALLER
000024d1: ADDRESS
000024d2: DUP13
000024d3: PUSH2 0x250e
000024d6: JUMP
000024d7: JUMPDEST
000024d8: POP
000024d9: POP
000024da: SWAP1
000024db: SLOAD
000024dc: PUSH1 0x01
000024de: PUSH1 0x01
000024e0: PUSH1 0x70
000024e2: SHL
000024e3: SUB
000024e4: AND
000024e5: SWAP8
000024e6: SWAP1
000024e7: SWAP7
000024e8: POP
000024e9: SWAP5
000024ea: POP
000024eb: POP
000024ec: POP
000024ed: POP
000024ee: POP
000024ef: JUMP
000024f0: JUMPDEST
000024f1: PUSH1 0x01
000024f3: PUSH1 0x01
000024f5: PUSH1 0xa0
000024f7: SHL
000024f8: SUB
000024f9: AND
000024fa: PUSH1 0x00
000024fc: SWAP1
000024fd: DUP2
000024fe: MSTORE
000024ff: PUSH1 0x0f
00002501: PUSH1 0x20
00002503: MSTORE
00002504: PUSH1 0x40
00002506: SWAP1
00002507: KECCAK256
00002508: SLOAD
00002509: PUSH1 0xff
0000250b: AND
0000250c: SWAP1
0000250d: JUMP
0000250e: JUMPDEST
0000250f: PUSH1 0x40
00002511: MLOAD
00002512: PUSH1 0x01
00002514: PUSH1 0x01
00002516: PUSH1 0xa0
00002518: SHL
00002519: SUB
0000251a: DUP5
0000251b: DUP2
0000251c: AND
0000251d: PUSH1 0x24
0000251f: DUP4
00002520: ADD
00002521: MSTORE
00002522: DUP4
00002523: DUP2
00002524: AND
00002525: PUSH1 0x44
00002527: DUP4
00002528: ADD
00002529: MSTORE
0000252a: PUSH1 0x64
0000252c: DUP3
0000252d: ADD
0000252e: DUP4
0000252f: SWAP1
00002530: MSTORE
00002531: PUSH2 0x1136
00002534: SWAP2
00002535: DUP7
00002536: SWAP2
00002537: DUP3
00002538: AND
00002539: SWAP1
0000253a: PUSH4 0x23b872dd
0000253f: SWAP1
00002540: PUSH1 0x84
00002542: ADD
00002543: JUMPDEST
00002544: PUSH1 0x40
00002546: MLOAD
00002547: PUSH1 0x20
00002549: DUP2
0000254a: DUP4
0000254b: SUB
0000254c: SUB
0000254d: DUP2
0000254e: MSTORE
0000254f: SWAP1
00002550: PUSH1 0x40
00002552: MSTORE
00002553: SWAP2
00002554: POP
00002555: PUSH1 0xe0
00002557: SHL
00002558: PUSH1 0x20
0000255a: DUP3
0000255b: ADD
0000255c: DUP1
0000255d: MLOAD
0000255e: PUSH1 0x01
00002560: PUSH1 0x01
00002562: PUSH1 0xe0
00002564: SHL
00002565: SUB
00002566: DUP4
00002567: DUP2
00002568: DUP4
00002569: AND
0000256a: OR
0000256b: DUP4
0000256c: MSTORE
0000256d: POP
0000256e: POP
0000256f: POP
00002570: POP
00002571: PUSH2 0x2843
00002574: JUMP
00002575: JUMPDEST
00002576: PUSH1 0x40
00002578: MLOAD
00002579: PUSH1 0x01
0000257b: PUSH1 0x01
0000257d: PUSH1 0xa0
0000257f: SHL
00002580: SUB
00002581: DUP4
00002582: DUP2
00002583: AND
00002584: PUSH1 0x24
00002586: DUP4
00002587: ADD
00002588: MSTORE
00002589: PUSH1 0x44
0000258b: DUP3
0000258c: ADD
0000258d: DUP4
0000258e: SWAP1
0000258f: MSTORE
00002590: PUSH2 0x0c75
00002593: SWAP2
00002594: DUP6
00002595: SWAP2
00002596: DUP3
00002597: AND
00002598: SWAP1
00002599: PUSH4 0xa9059cbb
0000259e: SWAP1
0000259f: PUSH1 0x64
000025a1: ADD
000025a2: PUSH2 0x2543
000025a5: JUMP
000025a6: JUMPDEST
000025a7: PUSH2 0x25ae
000025aa: PUSH2 0x28a6
000025ad: JUMP
000025ae: JUMPDEST
000025af: PUSH2 0x25b6
000025b2: PUSH2 0x28ef
000025b5: JUMP
000025b6: JUMPDEST
000025b7: PUSH2 0x25be
000025ba: PUSH2 0x28ff
000025bd: JUMP
000025be: JUMPDEST
000025bf: JUMP
000025c0: JUMPDEST
000025c1: PUSH2 0x25c8
000025c4: PUSH2 0x28a6
000025c7: JUMP
000025c8: JUMPDEST
000025c9: PUSH2 0x25d0
000025cc: PUSH2 0x28ef
000025cf: JUMP
000025d0: JUMPDEST
000025d1: PUSH2 0x25be
000025d4: PUSH2 0x2907
000025d7: JUMP
000025d8: JUMPDEST
000025d9: PUSH2 0x25e0
000025dc: PUSH2 0x28a6
000025df: JUMP
000025e0: JUMPDEST
000025e1: PUSH1 0x02
000025e3: DUP1
000025e4: SLOAD
000025e5: PUSH12 0xffffffff0000000000000000
000025f2: NOT
000025f3: AND
000025f4: PUSH12 0x2828000a0000000000000000
00002601: OR
00002602: SWAP1
00002603: SSTORE
00002604: JUMP
00002605: JUMPDEST
00002606: PUSH1 0x01
00002608: SLOAD
00002609: PUSH1 0x00
0000260b: SWAP1
0000260c: PUSH1 0x01
0000260e: PUSH1 0xa8
00002610: SHL
00002611: SWAP1
00002612: DIV
00002613: PUSH1 0x01
00002615: PUSH1 0x01
00002617: PUSH1 0x40
00002619: SHL
0000261a: SUB
0000261b: AND
0000261c: DUP2
0000261d: SUB
0000261e: PUSH2 0x2627
00002621: JUMPI
00002622: POP
00002623: PUSH1 0x01
00002625: SWAP1
00002626: JUMP
00002627: JUMPDEST
00002628: PUSH1 0x01
0000262a: DUP1
0000262b: SLOAD
0000262c: PUSH1 0x00
0000262e: SWAP2
0000262f: PUSH1 0x0d
00002631: SWAP2
00002632: DUP4
00002633: SWAP2
00002634: PUSH2 0x264c
00002637: SWAP2
00002638: PUSH1 0x01
0000263a: PUSH1 0xa8
0000263c: SHL
0000263d: SWAP1
0000263e: DIV
0000263f: PUSH1 0x01
00002641: PUSH1 0x01
00002643: PUSH1 0x40
00002645: SHL
00002646: SUB
00002647: AND
00002648: PUSH2 0x2f71
0000264b: JUMP
0000264c: JUMPDEST
0000264d: PUSH1 0x01
0000264f: PUSH1 0x01
00002651: PUSH1 0x40
00002653: SHL
00002654: SUB
00002655: SWAP1
00002656: DUP2
00002657: AND
00002658: DUP3
00002659: MSTORE
0000265a: PUSH1 0x20
0000265c: DUP1
0000265d: DUP4
0000265e: ADD
0000265f: SWAP4
00002660: SWAP1
00002661: SWAP4
00002662: MSTORE
00002663: PUSH1 0x40
00002665: SWAP2
00002666: DUP3
00002667: ADD
00002668: PUSH1 0x00
0000266a: KECCAK256
0000266b: DUP3
0000266c: MLOAD
0000266d: PUSH1 0x80
0000266f: DUP2
00002670: ADD
00002671: DUP5
00002672: MSTORE
00002673: SWAP1
00002674: SLOAD
00002675: PUSH1 0x01
00002677: PUSH1 0x01
00002679: PUSH1 0x70
0000267b: SHL
0000267c: SUB
0000267d: DUP2
0000267e: AND
0000267f: DUP3
00002680: MSTORE
00002681: PUSH1 0x01
00002683: PUSH1 0x70
00002685: SHL
00002686: DUP2
00002687: DIV
00002688: DUP4
00002689: AND
0000268a: SWAP5
0000268b: DUP3
0000268c: ADD
0000268d: DUP6
0000268e: SWAP1
0000268f: MSTORE
00002690: PUSH1 0x01
00002692: PUSH1 0xb0
00002694: SHL
00002695: DUP2
00002696: DIV
00002697: SWAP1
00002698: SWAP3
00002699: AND
0000269a: SWAP3
0000269b: DUP2
0000269c: ADD
0000269d: SWAP3
0000269e: SWAP1
0000269f: SWAP3
000026a0: MSTORE
000026a1: PUSH1 0x01
000026a3: PUSH1 0xf0
000026a5: SHL
000026a6: SWAP1
000026a7: DIV
000026a8: PUSH2 0xffff
000026ab: AND
000026ac: PUSH1 0x60
000026ae: DUP3
000026af: ADD
000026b0: DUP2
000026b1: SWAP1
000026b2: MSTORE
000026b3: SWAP1
000026b4: SWAP3
000026b5: POP
000026b6: PUSH2 0x26be
000026b9: SWAP2
000026ba: PUSH2 0x2924
000026bd: JUMP
000026be: JUMPDEST
000026bf: DUP1
000026c0: PUSH2 0x26de
000026c3: JUMPI
000026c4: POP
000026c5: PUSH1 0x02
000026c7: SLOAD
000026c8: PUSH1 0x60
000026ca: DUP3
000026cb: ADD
000026cc: MLOAD
000026cd: PUSH2 0xffff
000026d0: PUSH1 0x01
000026d2: PUSH1 0x40
000026d4: SHL
000026d5: SWAP1
000026d6: SWAP3
000026d7: DIV
000026d8: DUP3
000026d9: AND
000026da: SWAP2
000026db: AND
000026dc: LT
000026dd: ISZERO
000026de: JUMPDEST
000026df: SWAP2
000026e0: POP
000026e1: POP
000026e2: SWAP1
000026e3: JUMP
000026e4: JUMPDEST
000026e5: PUSH1 0x40
000026e7: DUP1
000026e8: MLOAD
000026e9: PUSH1 0x01
000026eb: PUSH1 0x01
000026ed: PUSH1 0xa0
000026ef: SHL
000026f0: SUB
000026f1: DUP5
000026f2: DUP2
000026f3: AND
000026f4: PUSH1 0x24
000026f6: DUP4
000026f7: ADD
000026f8: MSTORE
000026f9: PUSH1 0x44
000026fb: DUP1
000026fc: DUP4
000026fd: ADD
000026fe: DUP6
000026ff: SWAP1
00002700: MSTORE
00002701: DUP4
00002702: MLOAD
00002703: DUP1
00002704: DUP5
00002705: SUB
00002706: SWAP1
00002707: SWAP2
00002708: ADD
00002709: DUP2
0000270a: MSTORE
0000270b: PUSH1 0x64
0000270d: SWAP1
0000270e: SWAP3
0000270f: ADD
00002710: DUP4
00002711: MSTORE
00002712: PUSH1 0x20
00002714: DUP3
00002715: ADD
00002716: DUP1
00002717: MLOAD
00002718: PUSH1 0x01
0000271a: PUSH1 0x01
0000271c: PUSH1 0xe0
0000271e: SHL
0000271f: SUB
00002720: AND
00002721: PUSH4 0xa9059cbb
00002726: PUSH1 0xe0
00002728: SHL
00002729: OR
0000272a: SWAP1
0000272b: MSTORE
0000272c: SWAP2
0000272d: MLOAD
0000272e: PUSH1 0x00
00002730: SWAP3
00002731: DUP4
00002732: SWAP3
00002733: DUP4
00002734: SWAP3
00002735: SWAP2
00002736: DUP9
00002737: AND
00002738: SWAP2
00002739: PUSH2 0x2742
0000273c: SWAP2
0000273d: SWAP1
0000273e: PUSH2 0x3034
00002741: JUMP
00002742: JUMPDEST
00002743: PUSH1 0x00
00002745: PUSH1 0x40
00002747: MLOAD
00002748: DUP1
00002749: DUP4
0000274a: SUB
0000274b: DUP2
0000274c: PUSH1 0x00
0000274e: DUP7
0000274f: GAS
00002750: CALL
00002751: SWAP2
00002752: POP
00002753: POP
00002754: RETURNDATASIZE
00002755: DUP1
00002756: PUSH1 0x00
00002758: DUP2
00002759: EQ
0000275a: PUSH2 0x277f
0000275d: JUMPI
0000275e: PUSH1 0x40
00002760: MLOAD
00002761: SWAP2
00002762: POP
00002763: PUSH1 0x1f
00002765: NOT
00002766: PUSH1 0x3f
00002768: RETURNDATASIZE
00002769: ADD
0000276a: AND
0000276b: DUP3
0000276c: ADD
0000276d: PUSH1 0x40
0000276f: MSTORE
00002770: RETURNDATASIZE
00002771: DUP3
00002772: MSTORE
00002773: RETURNDATASIZE
00002774: PUSH1 0x00
00002776: PUSH1 0x20
00002778: DUP5
00002779: ADD
0000277a: RETURNDATACOPY
0000277b: PUSH2 0x2784
0000277e: JUMP
0000277f: JUMPDEST
00002780: PUSH1 0x60
00002782: SWAP2
00002783: POP
00002784: JUMPDEST
00002785: POP
00002786: SWAP2
00002787: POP
00002788: SWAP2
00002789: POP
0000278a: DUP2
0000278b: PUSH2 0x2799
0000278e: JUMPI
0000278f: PUSH1 0x00
00002791: SWAP3
00002792: POP
00002793: POP
00002794: POP
00002795: PUSH2 0x1b35
00002798: JUMP
00002799: JUMPDEST
0000279a: DUP1
0000279b: MLOAD
0000279c: PUSH1 0x00
0000279e: SUB
0000279f: PUSH2 0x27ad
000027a2: JUMPI
000027a3: PUSH1 0x01
000027a5: SWAP3
000027a6: POP
000027a7: POP
000027a8: POP
000027a9: PUSH2 0x1b35
000027ac: JUMP
000027ad: JUMPDEST
000027ae: DUP1
000027af: DUP1
000027b0: PUSH1 0x20
000027b2: ADD
000027b3: SWAP1
000027b4: MLOAD
000027b5: DUP2
000027b6: ADD
000027b7: SWAP1
000027b8: PUSH2 0x27c1
000027bb: SWAP2
000027bc: SWAP1
000027bd: PUSH2 0x3063
000027c0: JUMP
000027c1: JUMPDEST
000027c2: SWAP7
000027c3: SWAP6
000027c4: POP
000027c5: POP
000027c6: POP
000027c7: POP
000027c8: POP
000027c9: POP
000027ca: JUMP
000027cb: JUMPDEST
000027cc: PUSH1 0x40
000027ce: MLOAD
000027cf: PUSH4 0x40c10f19
000027d4: PUSH1 0xe0
000027d6: SHL
000027d7: DUP2
000027d8: MSTORE
000027d9: PUSH1 0x01
000027db: PUSH1 0x01
000027dd: PUSH1 0xa0
000027df: SHL
000027e0: SUB
000027e1: DUP4
000027e2: DUP2
000027e3: AND
000027e4: PUSH1 0x04
000027e6: DUP4
000027e7: ADD
000027e8: MSTORE
000027e9: PUSH1 0x24
000027eb: DUP3
000027ec: ADD
000027ed: DUP4
000027ee: SWAP1
000027ef: MSTORE
000027f0: PUSH1 0x00
000027f2: SWAP2
000027f3: DUP6
000027f4: SWAP2
000027f5: DUP3
000027f6: AND
000027f7: SWAP1
000027f8: PUSH4 0x40c10f19
000027fd: SWAP1
000027fe: PUSH1 0x44
00002800: ADD
00002801: PUSH1 0x00
00002803: PUSH1 0x40
00002805: MLOAD
00002806: DUP1
00002807: DUP4
00002808: SUB
00002809: DUP2
0000280a: PUSH1 0x00
0000280c: DUP8
0000280d: DUP1
0000280e: EXTCODESIZE
0000280f: ISZERO
00002810: DUP1
00002811: ISZERO
00002812: PUSH2 0x281a
00002815: JUMPI
00002816: PUSH1 0x00
00002818: DUP1
00002819: REVERT
0000281a: JUMPDEST
0000281b: POP
0000281c: GAS
0000281d: CALL
0000281e: SWAP3
0000281f: POP
00002820: POP
00002821: POP
00002822: DUP1
00002823: ISZERO
00002824: PUSH2 0x282b
00002827: JUMPI
00002828: POP
00002829: PUSH1 0x01
0000282b: JUMPDEST
0000282c: PUSH2 0x2839
0000282f: JUMPI
00002830: PUSH1 0x00
00002832: SWAP2
00002833: POP
00002834: POP
00002835: PUSH2 0x1b35
00002838: JUMP
00002839: JUMPDEST
0000283a: PUSH1 0x01
0000283c: SWAP2
0000283d: POP
0000283e: POP
0000283f: PUSH2 0x1b35
00002842: JUMP
00002843: JUMPDEST
00002844: PUSH1 0x00
00002846: PUSH2 0x2858
00002849: PUSH1 0x01
0000284b: PUSH1 0x01
0000284d: PUSH1 0xa0
0000284f: SHL
00002850: SUB
00002851: DUP5
00002852: AND
00002853: DUP4
00002854: PUSH2 0x2966
00002857: JUMP
00002858: JUMPDEST
00002859: SWAP1
0000285a: POP
0000285b: DUP1
0000285c: MLOAD
0000285d: PUSH1 0x00
0000285f: EQ
00002860: ISZERO
00002861: DUP1
00002862: ISZERO
00002863: PUSH2 0x287d
00002866: JUMPI
00002867: POP
00002868: DUP1
00002869: DUP1
0000286a: PUSH1 0x20
0000286c: ADD
0000286d: SWAP1
0000286e: MLOAD
0000286f: DUP2
00002870: ADD
00002871: SWAP1
00002872: PUSH2 0x287b
00002875: SWAP2
00002876: SWAP1
00002877: PUSH2 0x3063
0000287a: JUMP
0000287b: JUMPDEST
0000287c: ISZERO
0000287d: JUMPDEST
0000287e: ISZERO
0000287f: PUSH2 0x0c75
00002882: JUMPI
00002883: PUSH1 0x40
00002885: MLOAD
00002886: PUSH4 0x5274afe7
0000288b: PUSH1 0xe0
0000288d: SHL
0000288e: DUP2
0000288f: MSTORE
00002890: PUSH1 0x01
00002892: PUSH1 0x01
00002894: PUSH1 0xa0
00002896: SHL
00002897: SUB
00002898: DUP5
00002899: AND
0000289a: PUSH1 0x04
0000289c: DUP3
0000289d: ADD
0000289e: MSTORE
0000289f: PUSH1 0x24
000028a1: ADD
000028a2: PUSH2 0x0975
000028a5: JUMP
000028a6: JUMPDEST
000028a7: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
000028c8: SLOAD
000028c9: PUSH1 0x01
000028cb: PUSH1 0x40
000028cd: SHL
000028ce: SWAP1
000028cf: DIV
000028d0: PUSH1 0xff
000028d2: AND
000028d3: PUSH2 0x25be
000028d6: JUMPI
000028d7: PUSH1 0x40
000028d9: MLOAD
000028da: PUSH4 0x1afcd79f
000028df: PUSH1 0xe3
000028e1: SHL
000028e2: DUP2
000028e3: MSTORE
000028e4: PUSH1 0x04
000028e6: ADD
000028e7: PUSH1 0x40
000028e9: MLOAD
000028ea: DUP1
000028eb: SWAP2
000028ec: SUB
000028ed: SWAP1
000028ee: REVERT
000028ef: JUMPDEST
000028f0: PUSH2 0x28f7
000028f3: PUSH2 0x28a6
000028f6: JUMP
000028f7: JUMPDEST
000028f8: PUSH2 0x25be
000028fb: PUSH2 0x2974
000028fe: JUMP
000028ff: JUMPDEST
00002900: PUSH2 0x25be
00002903: PUSH2 0x28a6
00002906: JUMP
00002907: JUMPDEST
00002908: PUSH2 0x290f
0000290b: PUSH2 0x28a6
0000290e: JUMP
0000290f: JUMPDEST
00002910: PUSH1 0x01
00002912: DUP1
00002913: SLOAD
00002914: PUSH1 0xff
00002916: PUSH1 0xa0
00002918: SHL
00002919: NOT
0000291a: AND
0000291b: PUSH1 0x01
0000291d: PUSH1 0xa0
0000291f: SHL
00002920: OR
00002921: SWAP1
00002922: SSTORE
00002923: JUMP
00002924: JUMPDEST
00002925: PUSH1 0x00
00002927: DUP3
00002928: PUSH2 0xffff
0000292b: AND
0000292c: PUSH1 0x00
0000292e: SUB
0000292f: PUSH2 0x293a
00002932: JUMPI
00002933: POP
00002934: PUSH1 0x00
00002936: PUSH2 0x2960
00002939: JUMP
0000293a: JUMPDEST
0000293b: PUSH1 0x02
0000293d: SLOAD
0000293e: NUMBER
0000293f: SWAP1
00002940: PUSH2 0x2953
00002943: SWAP1
00002944: PUSH1 0x01
00002946: PUSH1 0x50
00002948: SHL
00002949: SWAP1
0000294a: DIV
0000294b: PUSH1 0xff
0000294d: AND
0000294e: DUP5
0000294f: PUSH2 0x2fd7
00002952: JUMP
00002953: JUMPDEST
00002954: PUSH1 0x01
00002956: PUSH1 0x01
00002958: PUSH1 0x40
0000295a: SHL
0000295b: SUB
0000295c: AND
0000295d: LT
0000295e: SWAP1
0000295f: POP
00002960: JUMPDEST
00002961: SWAP3
00002962: SWAP2
00002963: POP
00002964: POP
00002965: JUMP
00002966: JUMPDEST
00002967: PUSH1 0x60
00002969: PUSH2 0x1b35
0000296c: DUP4
0000296d: DUP4
0000296e: PUSH1 0x00
00002970: PUSH2 0x29bf
00002973: JUMP
00002974: JUMPDEST
00002975: PUSH2 0x297c
00002978: PUSH2 0x28a6
0000297b: JUMP
0000297c: JUMPDEST
0000297d: PUSH1 0x00
0000297f: DUP1
00002980: SLOAD
00002981: PUSH1 0x01
00002983: PUSH1 0x01
00002985: PUSH1 0xa0
00002987: SHL
00002988: SUB
00002989: NOT
0000298a: AND
0000298b: CALLER
0000298c: SWAP1
0000298d: DUP2
0000298e: OR
0000298f: DUP3
00002990: SSTORE
00002991: PUSH1 0x40
00002993: MLOAD
00002994: SWAP1
00002995: SWAP2
00002996: DUP3
00002997: SWAP2
00002998: PUSH32 0xe379ac64de02d8184ca1a871ac486cb8137de77e485ede140e97057b9c765ffd
000029b9: SWAP1
000029ba: DUP3
000029bb: SWAP1
000029bc: LOG3
000029bd: POP
000029be: JUMP
000029bf: JUMPDEST
000029c0: PUSH1 0x60
000029c2: DUP2
000029c3: SELFBALANCE
000029c4: LT
000029c5: ISZERO
000029c6: PUSH2 0x29e4
000029c9: JUMPI
000029ca: PUSH1 0x40
000029cc: MLOAD
000029cd: PUSH4 0xcd786059
000029d2: PUSH1 0xe0
000029d4: SHL
000029d5: DUP2
000029d6: MSTORE
000029d7: ADDRESS
000029d8: PUSH1 0x04
000029da: DUP3
000029db: ADD
000029dc: MSTORE
000029dd: PUSH1 0x24
000029df: ADD
000029e0: PUSH2 0x0975
000029e3: JUMP
000029e4: JUMPDEST
000029e5: PUSH1 0x00
000029e7: DUP1
000029e8: DUP6
000029e9: PUSH1 0x01
000029eb: PUSH1 0x01
000029ed: PUSH1 0xa0
000029ef: SHL
000029f0: SUB
000029f1: AND
000029f2: DUP5
000029f3: DUP7
000029f4: PUSH1 0x40
000029f6: MLOAD
000029f7: PUSH2 0x2a00
000029fa: SWAP2
000029fb: SWAP1
000029fc: PUSH2 0x3034
000029ff: JUMP
00002a00: JUMPDEST
00002a01: PUSH1 0x00
00002a03: PUSH1 0x40
00002a05: MLOAD
00002a06: DUP1
00002a07: DUP4
00002a08: SUB
00002a09: DUP2
00002a0a: DUP6
00002a0b: DUP8
00002a0c: GAS
00002a0d: CALL
00002a0e: SWAP3
00002a0f: POP
00002a10: POP
00002a11: POP
00002a12: RETURNDATASIZE
00002a13: DUP1
00002a14: PUSH1 0x00
00002a16: DUP2
00002a17: EQ
00002a18: PUSH2 0x2a3d
00002a1b: JUMPI
00002a1c: PUSH1 0x40
00002a1e: MLOAD
00002a1f: SWAP2
00002a20: POP
00002a21: PUSH1 0x1f
00002a23: NOT
00002a24: PUSH1 0x3f
00002a26: RETURNDATASIZE
00002a27: ADD
00002a28: AND
00002a29: DUP3
00002a2a: ADD
00002a2b: PUSH1 0x40
00002a2d: MSTORE
00002a2e: RETURNDATASIZE
00002a2f: DUP3
00002a30: MSTORE
00002a31: RETURNDATASIZE
00002a32: PUSH1 0x00
00002a34: PUSH1 0x20
00002a36: DUP5
00002a37: ADD
00002a38: RETURNDATACOPY
00002a39: PUSH2 0x2a42
00002a3c: JUMP
00002a3d: JUMPDEST
00002a3e: PUSH1 0x60
00002a40: SWAP2
00002a41: POP
00002a42: JUMPDEST
00002a43: POP
00002a44: SWAP2
00002a45: POP
00002a46: SWAP2
00002a47: POP
00002a48: PUSH2 0x27c1
00002a4b: DUP7
00002a4c: DUP4
00002a4d: DUP4
00002a4e: PUSH1 0x60
00002a50: DUP3
00002a51: PUSH2 0x2a62
00002a54: JUMPI
00002a55: PUSH2 0x2a5d
00002a58: DUP3
00002a59: PUSH2 0x2aa9
00002a5c: JUMP
00002a5d: JUMPDEST
00002a5e: PUSH2 0x1b35
00002a61: JUMP
00002a62: JUMPDEST
00002a63: DUP2
00002a64: MLOAD
00002a65: ISZERO
00002a66: DUP1
00002a67: ISZERO
00002a68: PUSH2 0x2a79
00002a6b: JUMPI
00002a6c: POP
00002a6d: PUSH1 0x01
00002a6f: PUSH1 0x01
00002a71: PUSH1 0xa0
00002a73: SHL
00002a74: SUB
00002a75: DUP5
00002a76: AND
00002a77: EXTCODESIZE
00002a78: ISZERO
00002a79: JUMPDEST
00002a7a: ISZERO
00002a7b: PUSH2 0x2aa2
00002a7e: JUMPI
00002a7f: PUSH1 0x40
00002a81: MLOAD
00002a82: PUSH4 0x9996b315
00002a87: PUSH1 0xe0
00002a89: SHL
00002a8a: DUP2
00002a8b: MSTORE
00002a8c: PUSH1 0x01
00002a8e: PUSH1 0x01
00002a90: PUSH1 0xa0
00002a92: SHL
00002a93: SUB
00002a94: DUP6
00002a95: AND
00002a96: PUSH1 0x04
00002a98: DUP3
00002a99: ADD
00002a9a: MSTORE
00002a9b: PUSH1 0x24
00002a9d: ADD
00002a9e: PUSH2 0x0975
00002aa1: JUMP
00002aa2: JUMPDEST
00002aa3: POP
00002aa4: DUP1
00002aa5: PUSH2 0x1b35
00002aa8: JUMP
00002aa9: JUMPDEST
00002aaa: DUP1
00002aab: MLOAD
00002aac: ISZERO
00002aad: PUSH2 0x2ab9
00002ab0: JUMPI
00002ab1: DUP1
00002ab2: MLOAD
00002ab3: DUP1
00002ab4: DUP3
00002ab5: PUSH1 0x20
00002ab7: ADD
00002ab8: REVERT
00002ab9: JUMPDEST
00002aba: PUSH1 0x40
00002abc: MLOAD
00002abd: PUSH4 0x0a12f521
00002ac2: PUSH1 0xe1
00002ac4: SHL
00002ac5: DUP2
00002ac6: MSTORE
00002ac7: PUSH1 0x04
00002ac9: ADD
00002aca: PUSH1 0x40
00002acc: MLOAD
00002acd: DUP1
00002ace: SWAP2
00002acf: SUB
00002ad0: SWAP1
00002ad1: REVERT
00002ad2: JUMPDEST
00002ad3: POP
00002ad4: JUMP
00002ad5: JUMPDEST
00002ad6: PUSH1 0x00
00002ad8: PUSH1 0x20
00002ada: DUP3
00002adb: DUP5
00002adc: SUB
00002add: SLT
00002ade: ISZERO
00002adf: PUSH2 0x2ae7
00002ae2: JUMPI
00002ae3: PUSH1 0x00
00002ae5: DUP1
00002ae6: REVERT
00002ae7: JUMPDEST
00002ae8: POP
00002ae9: CALLDATALOAD
00002aea: SWAP2
00002aeb: SWAP1
00002aec: POP
00002aed: JUMP
00002aee: JUMPDEST
00002aef: PUSH4 0x4e487b71
00002af4: PUSH1 0xe0
00002af6: SHL
00002af7: PUSH1 0x00
00002af9: MSTORE
00002afa: PUSH1 0x21
00002afc: PUSH1 0x04
00002afe: MSTORE
00002aff: PUSH1 0x24
00002b01: PUSH1 0x00
00002b03: REVERT
00002b04: JUMPDEST
00002b05: PUSH1 0x05
00002b07: DUP2
00002b08: LT
00002b09: PUSH2 0x2b22
00002b0c: JUMPI
00002b0d: PUSH4 0x4e487b71
00002b12: PUSH1 0xe0
00002b14: SHL
00002b15: PUSH1 0x00
00002b17: MSTORE
00002b18: PUSH1 0x21
00002b1a: PUSH1 0x04
00002b1c: MSTORE
00002b1d: PUSH1 0x24
00002b1f: PUSH1 0x00
00002b21: REVERT
00002b22: JUMPDEST
00002b23: SWAP1
00002b24: MSTORE
00002b25: JUMP
00002b26: JUMPDEST
00002b27: PUSH1 0x40
00002b29: DUP1
00002b2a: DUP3
00002b2b: MSTORE
00002b2c: DUP4
00002b2d: MLOAD
00002b2e: DUP3
00002b2f: DUP3
00002b30: ADD
00002b31: DUP2
00002b32: SWAP1
00002b33: MSTORE
00002b34: PUSH1 0x00
00002b36: SWAP2
00002b37: SWAP1
00002b38: PUSH1 0x60
00002b3a: SWAP1
00002b3b: DUP2
00002b3c: DUP6
00002b3d: ADD
00002b3e: SWAP1
00002b3f: PUSH1 0x20
00002b41: DUP1
00002b42: DUP10
00002b43: ADD
00002b44: DUP7
00002b45: JUMPDEST
00002b46: DUP4
00002b47: DUP2
00002b48: LT
00002b49: ISZERO
00002b4a: PUSH2 0x2bb2
00002b4d: JUMPI
00002b4e: DUP2
00002b4f: MLOAD
00002b50: DUP1
00002b51: MLOAD
00002b52: PUSH1 0x01
00002b54: PUSH1 0x01
00002b56: PUSH1 0x70
00002b58: SHL
00002b59: SUB
00002b5a: AND
00002b5b: DUP7
00002b5c: MSTORE
00002b5d: DUP4
00002b5e: DUP2
00002b5f: ADD
00002b60: MLOAD
00002b61: PUSH1 0x01
00002b63: PUSH1 0x01
00002b65: PUSH1 0xa0
00002b67: SHL
00002b68: SUB
00002b69: SWAP1
00002b6a: DUP2
00002b6b: AND
00002b6c: DUP6
00002b6d: DUP9
00002b6e: ADD
00002b6f: MSTORE
00002b70: DUP9
00002b71: DUP3
00002b72: ADD
00002b73: MLOAD
00002b74: DUP10
00002b75: DUP9
00002b76: ADD
00002b77: MSTORE
00002b78: DUP8
00002b79: DUP3
00002b7a: ADD
00002b7b: MLOAD
00002b7c: AND
00002b7d: DUP8
00002b7e: DUP8
00002b7f: ADD
00002b80: MSTORE
00002b81: PUSH1 0x80
00002b83: DUP1
00002b84: DUP3
00002b85: ADD
00002b86: MLOAD
00002b87: SWAP1
00002b88: DUP8
00002b89: ADD
00002b8a: MSTORE
00002b8b: PUSH1 0xa0
00002b8d: SWAP1
00002b8e: DUP2
00002b8f: ADD
00002b90: MLOAD
00002b91: SWAP1
00002b92: PUSH2 0x2b9d
00002b95: DUP2
00002b96: DUP9
00002b97: ADD
00002b98: DUP4
00002b99: PUSH2 0x2b04
00002b9c: JUMP
00002b9d: JUMPDEST
00002b9e: POP
00002b9f: POP
00002ba0: PUSH1 0xc0
00002ba2: SWAP5
00002ba3: SWAP1
00002ba4: SWAP5
00002ba5: ADD
00002ba6: SWAP4
00002ba7: SWAP1
00002ba8: DUP3
00002ba9: ADD
00002baa: SWAP1
00002bab: PUSH1 0x01
00002bad: ADD
00002bae: PUSH2 0x2b45
00002bb1: JUMP
00002bb2: JUMPDEST
00002bb3: POP
00002bb4: POP
00002bb5: DUP3
00002bb6: SWAP6
00002bb7: POP
00002bb8: PUSH2 0x2bc4
00002bbb: DUP2
00002bbc: DUP9
00002bbd: ADD
00002bbe: DUP10
00002bbf: ISZERO
00002bc0: ISZERO
00002bc1: SWAP1
00002bc2: MSTORE
00002bc3: JUMP
00002bc4: JUMPDEST
00002bc5: POP
00002bc6: POP
00002bc7: POP
00002bc8: POP
00002bc9: POP
00002bca: SWAP4
00002bcb: SWAP3
00002bcc: POP
00002bcd: POP
00002bce: POP
00002bcf: JUMP
00002bd0: JUMPDEST
00002bd1: DUP1
00002bd2: CALLDATALOAD
00002bd3: PUSH1 0x01
00002bd5: PUSH1 0x01
00002bd7: PUSH1 0xa0
00002bd9: SHL
00002bda: SUB
00002bdb: DUP2
00002bdc: AND
00002bdd: DUP2
00002bde: EQ
00002bdf: PUSH2 0x2be7
00002be2: JUMPI
00002be3: PUSH1 0x00
00002be5: DUP1
00002be6: REVERT
00002be7: JUMPDEST
00002be8: SWAP2
00002be9: SWAP1
00002bea: POP
00002beb: JUMP
00002bec: JUMPDEST
00002bed: PUSH1 0x00
00002bef: DUP1
00002bf0: PUSH1 0x00
00002bf2: PUSH1 0x60
00002bf4: DUP5
00002bf5: DUP7
00002bf6: SUB
00002bf7: SLT
00002bf8: ISZERO
00002bf9: PUSH2 0x2c01
00002bfc: JUMPI
00002bfd: PUSH1 0x00
00002bff: DUP1
00002c00: REVERT
00002c01: JUMPDEST
00002c02: PUSH2 0x2c0a
00002c05: DUP5
00002c06: PUSH2 0x2bd0
00002c09: JUMP
00002c0a: JUMPDEST
00002c0b: SWAP6
00002c0c: PUSH1 0x20
00002c0e: DUP6
00002c0f: ADD
00002c10: CALLDATALOAD
00002c11: SWAP6
00002c12: POP
00002c13: PUSH1 0x40
00002c15: SWAP1
00002c16: SWAP5
00002c17: ADD
00002c18: CALLDATALOAD
00002c19: SWAP4
00002c1a: SWAP3
00002c1b: POP
00002c1c: POP
00002c1d: POP
00002c1e: JUMP
00002c1f: JUMPDEST
00002c20: PUSH1 0x00
00002c22: DUP1
00002c23: PUSH1 0x40
00002c25: DUP4
00002c26: DUP6
00002c27: SUB
00002c28: SLT
00002c29: ISZERO
00002c2a: PUSH2 0x2c32
00002c2d: JUMPI
00002c2e: PUSH1 0x00
00002c30: DUP1
00002c31: REVERT
00002c32: JUMPDEST
00002c33: POP
00002c34: POP
00002c35: DUP1
00002c36: CALLDATALOAD
00002c37: SWAP3
00002c38: PUSH1 0x20
00002c3a: SWAP1
00002c3b: SWAP2
00002c3c: ADD
00002c3d: CALLDATALOAD
00002c3e: SWAP2
00002c3f: POP
00002c40: JUMP
00002c41: JUMPDEST
00002c42: PUSH1 0x01
00002c44: PUSH1 0x01
00002c46: PUSH1 0x70
00002c48: SHL
00002c49: SUB
00002c4a: DUP8
00002c4b: AND
00002c4c: DUP2
00002c4d: MSTORE
00002c4e: PUSH1 0x01
00002c50: PUSH1 0x01
00002c52: PUSH1 0xa0
00002c54: SHL
00002c55: SUB
00002c56: DUP7
00002c57: DUP2
00002c58: AND
00002c59: PUSH1 0x20
00002c5b: DUP4
00002c5c: ADD
00002c5d: MSTORE
00002c5e: PUSH1 0x40
00002c60: DUP3
00002c61: ADD
00002c62: DUP7
00002c63: SWAP1
00002c64: MSTORE
00002c65: DUP5
00002c66: AND
00002c67: PUSH1 0x60
00002c69: DUP3
00002c6a: ADD
00002c6b: MSTORE
00002c6c: PUSH1 0x80
00002c6e: DUP2
00002c6f: ADD
00002c70: DUP4
00002c71: SWAP1
00002c72: MSTORE
00002c73: PUSH1 0xc0
00002c75: DUP2
00002c76: ADD
00002c77: PUSH2 0x2c83
00002c7a: PUSH1 0xa0
00002c7c: DUP4
00002c7d: ADD
00002c7e: DUP5
00002c7f: PUSH2 0x2b04
00002c82: JUMP
00002c83: JUMPDEST
00002c84: SWAP8
00002c85: SWAP7
00002c86: POP
00002c87: POP
00002c88: POP
00002c89: POP
00002c8a: POP
00002c8b: POP
00002c8c: POP
00002c8d: JUMP
00002c8e: JUMPDEST
00002c8f: PUSH1 0x00
00002c91: PUSH1 0x20
00002c93: DUP3
00002c94: DUP5
00002c95: SUB
00002c96: SLT
00002c97: ISZERO
00002c98: PUSH2 0x2ca0
00002c9b: JUMPI
00002c9c: PUSH1 0x00
00002c9e: DUP1
00002c9f: REVERT
00002ca0: JUMPDEST
00002ca1: PUSH2 0x1b35
00002ca4: DUP3
00002ca5: PUSH2 0x2bd0
00002ca8: JUMP
00002ca9: JUMPDEST
00002caa: PUSH1 0x00
00002cac: DUP1
00002cad: PUSH1 0x40
00002caf: DUP4
00002cb0: DUP6
00002cb1: SUB
00002cb2: SLT
00002cb3: ISZERO
00002cb4: PUSH2 0x2cbc
00002cb7: JUMPI
00002cb8: PUSH1 0x00
00002cba: DUP1
00002cbb: REVERT
00002cbc: JUMPDEST
00002cbd: PUSH2 0x2cc5
00002cc0: DUP4
00002cc1: PUSH2 0x2bd0
00002cc4: JUMP
00002cc5: JUMPDEST
00002cc6: SWAP5
00002cc7: PUSH1 0x20
00002cc9: SWAP4
00002cca: SWAP1
00002ccb: SWAP4
00002ccc: ADD
00002ccd: CALLDATALOAD
00002cce: SWAP4
00002ccf: POP
00002cd0: POP
00002cd1: POP
00002cd2: JUMP
00002cd3: JUMPDEST
00002cd4: DUP1
00002cd5: ISZERO
00002cd6: ISZERO
00002cd7: DUP2
00002cd8: EQ
00002cd9: PUSH2 0x2ad2
00002cdc: JUMPI
00002cdd: PUSH1 0x00
00002cdf: DUP1
00002ce0: REVERT
00002ce1: JUMPDEST
00002ce2: PUSH1 0x00
00002ce4: DUP1
00002ce5: PUSH1 0x00
00002ce7: DUP1
00002ce8: PUSH1 0x00
00002cea: DUP1
00002ceb: PUSH1 0x00
00002ced: DUP1
00002cee: PUSH2 0x0100
00002cf1: DUP10
00002cf2: DUP12
00002cf3: SUB
00002cf4: SLT
00002cf5: ISZERO
00002cf6: PUSH2 0x2cfe
00002cf9: JUMPI
00002cfa: PUSH1 0x00
00002cfc: DUP1
00002cfd: REVERT
00002cfe: JUMPDEST
00002cff: PUSH2 0x2d07
00002d02: DUP10
00002d03: PUSH2 0x2bd0
00002d06: JUMP
00002d07: JUMPDEST
00002d08: SWAP8
00002d09: POP
00002d0a: PUSH1 0x20
00002d0c: DUP10
00002d0d: ADD
00002d0e: CALLDATALOAD
00002d0f: SWAP7
00002d10: POP
00002d11: PUSH1 0x40
00002d13: DUP10
00002d14: ADD
00002d15: CALLDATALOAD
00002d16: SWAP6
00002d17: POP
00002d18: PUSH1 0x60
00002d1a: DUP10
00002d1b: ADD
00002d1c: CALLDATALOAD
00002d1d: PUSH2 0x2d25
00002d20: DUP2
00002d21: PUSH2 0x2cd3
00002d24: JUMP
00002d25: JUMPDEST
00002d26: SWAP5
00002d27: POP
00002d28: PUSH1 0x80
00002d2a: DUP10
00002d2b: ADD
00002d2c: CALLDATALOAD
00002d2d: PUSH2 0x2d35
00002d30: DUP2
00002d31: PUSH2 0x2cd3
00002d34: JUMP
00002d35: JUMPDEST
00002d36: SWAP8
00002d37: SWAP11
00002d38: SWAP7
00002d39: SWAP10
00002d3a: POP
00002d3b: SWAP5
00002d3c: SWAP8
00002d3d: SWAP4
00002d3e: SWAP7
00002d3f: SWAP6
00002d40: PUSH1 0xa0
00002d42: DUP6
00002d43: ADD
00002d44: CALLDATALOAD
00002d45: SWAP6
00002d46: POP
00002d47: PUSH1 0xc0
00002d49: DUP6
00002d4a: ADD
00002d4b: CALLDATALOAD
00002d4c: SWAP5
00002d4d: PUSH1 0xe0
00002d4f: ADD
00002d50: CALLDATALOAD
00002d51: SWAP4
00002d52: POP
00002d53: SWAP2
00002d54: POP
00002d55: POP
00002d56: JUMP
00002d57: JUMPDEST
00002d58: PUSH1 0x00
00002d5a: DUP1
00002d5b: PUSH1 0x00
00002d5d: DUP1
00002d5e: PUSH1 0x00
00002d60: PUSH1 0x80
00002d62: DUP7
00002d63: DUP9
00002d64: SUB
00002d65: SLT
00002d66: ISZERO
00002d67: PUSH2 0x2d6f
00002d6a: JUMPI
00002d6b: PUSH1 0x00
00002d6d: DUP1
00002d6e: REVERT
00002d6f: JUMPDEST
00002d70: PUSH2 0x2d78
00002d73: DUP7
00002d74: PUSH2 0x2bd0
00002d77: JUMP
00002d78: JUMPDEST
00002d79: SWAP5
00002d7a: POP
00002d7b: PUSH1 0x20
00002d7d: DUP7
00002d7e: ADD
00002d7f: CALLDATALOAD
00002d80: SWAP4
00002d81: POP
00002d82: PUSH1 0x40
00002d84: DUP7
00002d85: ADD
00002d86: CALLDATALOAD
00002d87: SWAP3
00002d88: POP
00002d89: PUSH1 0x60
00002d8b: DUP7
00002d8c: ADD
00002d8d: CALLDATALOAD
00002d8e: PUSH1 0x01
00002d90: PUSH1 0x01
00002d92: PUSH1 0x40
00002d94: SHL
00002d95: SUB
00002d96: DUP1
00002d97: DUP3
00002d98: GT
00002d99: ISZERO
00002d9a: PUSH2 0x2da2
00002d9d: JUMPI
00002d9e: PUSH1 0x00
00002da0: DUP1
00002da1: REVERT
00002da2: JUMPDEST
00002da3: DUP2
00002da4: DUP9
00002da5: ADD
00002da6: SWAP2
00002da7: POP
00002da8: DUP9
00002da9: PUSH1 0x1f
00002dab: DUP4
00002dac: ADD
00002dad: SLT
00002dae: PUSH2 0x2db6
00002db1: JUMPI
00002db2: PUSH1 0x00
00002db4: DUP1
00002db5: REVERT
00002db6: JUMPDEST
00002db7: DUP2
00002db8: CALLDATALOAD
00002db9: DUP2
00002dba: DUP2
00002dbb: GT
00002dbc: ISZERO
00002dbd: PUSH2 0x2dc5
00002dc0: JUMPI
00002dc1: PUSH1 0x00
00002dc3: DUP1
00002dc4: REVERT
00002dc5: JUMPDEST
00002dc6: DUP10
00002dc7: PUSH1 0x20
00002dc9: DUP3
00002dca: DUP6
00002dcb: ADD
00002dcc: ADD
00002dcd: GT
00002dce: ISZERO
00002dcf: PUSH2 0x2dd7
00002dd2: JUMPI
00002dd3: PUSH1 0x00
00002dd5: DUP1
00002dd6: REVERT
00002dd7: JUMPDEST
00002dd8: SWAP7
00002dd9: SWAP10
00002dda: SWAP6
00002ddb: SWAP9
00002ddc: POP
00002ddd: SWAP4
00002dde: SWAP7
00002ddf: POP
00002de0: PUSH1 0x20
00002de2: ADD
00002de3: SWAP5
00002de4: SWAP4
00002de5: SWAP3
00002de6: POP
00002de7: POP
00002de8: POP
00002de9: JUMP
00002dea: JUMPDEST
00002deb: PUSH1 0x00
00002ded: PUSH1 0x20
00002def: DUP3
00002df0: DUP5
00002df1: SUB
00002df2: SLT
00002df3: ISZERO
00002df4: PUSH2 0x2dfc
00002df7: JUMPI
00002df8: PUSH1 0x00
00002dfa: DUP1
00002dfb: REVERT
00002dfc: JUMPDEST
00002dfd: DUP2
00002dfe: CALLDATALOAD
00002dff: PUSH2 0xffff
00002e02: DUP2
00002e03: AND
00002e04: DUP2
00002e05: EQ
00002e06: PUSH2 0x1b35
00002e09: JUMPI
00002e0a: PUSH1 0x00
00002e0c: DUP1
00002e0d: REVERT
00002e0e: JUMPDEST
00002e0f: PUSH1 0x00
00002e11: DUP1
00002e12: PUSH1 0x00
00002e14: PUSH1 0x60
00002e16: DUP5
00002e17: DUP7
00002e18: SUB
00002e19: SLT
00002e1a: ISZERO
00002e1b: PUSH2 0x2e23
00002e1e: JUMPI
00002e1f: PUSH1 0x00
00002e21: DUP1
00002e22: REVERT
00002e23: JUMPDEST
00002e24: PUSH2 0x2e2c
00002e27: DUP5
00002e28: PUSH2 0x2bd0
00002e2b: JUMP
00002e2c: JUMPDEST
00002e2d: SWAP3
00002e2e: POP
00002e2f: PUSH1 0x20
00002e31: DUP5
00002e32: ADD
00002e33: CALLDATALOAD
00002e34: SWAP2
00002e35: POP
00002e36: PUSH2 0x2e41
00002e39: PUSH1 0x40
00002e3b: DUP6
00002e3c: ADD
00002e3d: PUSH2 0x2bd0
00002e40: JUMP
00002e41: JUMPDEST
00002e42: SWAP1
00002e43: POP
00002e44: SWAP3
00002e45: POP
00002e46: SWAP3
00002e47: POP
00002e48: SWAP3
00002e49: JUMP
00002e4a: JUMPDEST
00002e4b: PUSH1 0x00
00002e4d: PUSH1 0x20
00002e4f: DUP3
00002e50: DUP5
00002e51: SUB
00002e52: SLT
00002e53: ISZERO
00002e54: PUSH2 0x2e5c
00002e57: JUMPI
00002e58: PUSH1 0x00
00002e5a: DUP1
00002e5b: REVERT
00002e5c: JUMPDEST
00002e5d: DUP2
00002e5e: CALLDATALOAD
00002e5f: PUSH1 0xff
00002e61: DUP2
00002e62: AND
00002e63: DUP2
00002e64: EQ
00002e65: PUSH2 0x1b35
00002e68: JUMPI
00002e69: PUSH1 0x00
00002e6b: DUP1
00002e6c: REVERT
00002e6d: JUMPDEST
00002e6e: PUSH4 0x4e487b71
00002e73: PUSH1 0xe0
00002e75: SHL
00002e76: PUSH1 0x00
00002e78: MSTORE
00002e79: PUSH1 0x11
00002e7b: PUSH1 0x04
00002e7d: MSTORE
00002e7e: PUSH1 0x24
00002e80: PUSH1 0x00
00002e82: REVERT
00002e83: JUMPDEST
00002e84: DUP2
00002e85: DUP2
00002e86: SUB
00002e87: DUP2
00002e88: DUP2
00002e89: GT
00002e8a: ISZERO
00002e8b: PUSH2 0x2960
00002e8e: JUMPI
00002e8f: PUSH2 0x2960
00002e92: PUSH2 0x2e6d
00002e95: JUMP
00002e96: JUMPDEST
00002e97: PUSH1 0x20
00002e99: DUP1
00002e9a: DUP3
00002e9b: MSTORE
00002e9c: PUSH1 0x23
00002e9e: SWAP1
00002e9f: DUP3
00002ea0: ADD
00002ea1: MSTORE
00002ea2: PUSH32 0x41636365737320436f6e74726f6c3a2073656e646572206973206e6f74204164
00002ec3: PUSH1 0x40
00002ec5: DUP3
00002ec6: ADD
00002ec7: MSTORE
00002ec8: PUSH3 0x36b4b7
00002ecc: PUSH1 0xe9
00002ece: SHL
00002ecf: PUSH1 0x60
00002ed1: DUP3
00002ed2: ADD
00002ed3: MSTORE
00002ed4: PUSH1 0x80
00002ed6: ADD
00002ed7: SWAP1
00002ed8: JUMP
00002ed9: JUMPDEST
00002eda: PUSH1 0x20
00002edc: DUP1
00002edd: DUP3
00002ede: MSTORE
00002edf: PUSH1 0x11
00002ee1: SWAP1
00002ee2: DUP3
00002ee3: ADD
00002ee4: MSTORE
00002ee5: PUSH17 0x2ab739bab83837b93a32b2103a37b5b2b7
00002ef7: PUSH1 0x79
00002ef9: SHL
00002efa: PUSH1 0x40
00002efc: DUP3
00002efd: ADD
00002efe: MSTORE
00002eff: PUSH1 0x60
00002f01: ADD
00002f02: SWAP1
00002f03: JUMP
00002f04: JUMPDEST
00002f05: PUSH1 0x20
00002f07: DUP1
00002f08: DUP3
00002f09: MSTORE
00002f0a: PUSH1 0x21
00002f0c: SWAP1
00002f0d: DUP3
00002f0e: ADD
00002f0f: MSTORE
00002f10: PUSH32 0x4f6e6c79206e617469766520746f6b656e732063616e2062652073746f726564
00002f31: PUSH1 0x40
00002f33: DUP3
00002f34: ADD
00002f35: MSTORE
00002f36: PUSH1 0x21
00002f38: PUSH1 0xf8
00002f3a: SHL
00002f3b: PUSH1 0x60
00002f3d: DUP3
00002f3e: ADD
00002f3f: MSTORE
00002f40: PUSH1 0x80
00002f42: ADD
00002f43: SWAP1
00002f44: JUMP
00002f45: JUMPDEST
00002f46: DUP1
00002f47: DUP3
00002f48: ADD
00002f49: DUP1
00002f4a: DUP3
00002f4b: GT
00002f4c: ISZERO
00002f4d: PUSH2 0x2960
00002f50: JUMPI
00002f51: PUSH2 0x2960
00002f54: PUSH2 0x2e6d
00002f57: JUMP
00002f58: JUMPDEST
00002f59: PUSH1 0x00
00002f5b: PUSH1 0x20
00002f5d: DUP3
00002f5e: DUP5
00002f5f: SUB
00002f60: SLT
00002f61: ISZERO
00002f62: PUSH2 0x2f6a
00002f65: JUMPI
00002f66: PUSH1 0x00
00002f68: DUP1
00002f69: REVERT
00002f6a: JUMPDEST
00002f6b: POP
00002f6c: MLOAD
00002f6d: SWAP2
00002f6e: SWAP1
00002f6f: POP
00002f70: JUMP
00002f71: JUMPDEST
00002f72: PUSH1 0x01
00002f74: PUSH1 0x01
00002f76: PUSH1 0x40
00002f78: SHL
00002f79: SUB
00002f7a: DUP3
00002f7b: DUP2
00002f7c: AND
00002f7d: DUP3
00002f7e: DUP3
00002f7f: AND
00002f80: SUB
00002f81: SWAP1
00002f82: DUP1
00002f83: DUP3
00002f84: GT
00002f85: ISZERO
00002f86: PUSH2 0x2f91
00002f89: JUMPI
00002f8a: PUSH2 0x2f91
00002f8d: PUSH2 0x2e6d
00002f90: JUMP
00002f91: JUMPDEST
00002f92: POP
00002f93: SWAP3
00002f94: SWAP2
00002f95: POP
00002f96: POP
00002f97: JUMP
00002f98: JUMPDEST
00002f99: PUSH1 0x01
00002f9b: PUSH1 0x01
00002f9d: PUSH1 0x70
00002f9f: SHL
00002fa0: SUB
00002fa1: DUP5
00002fa2: AND
00002fa3: DUP2
00002fa4: MSTORE
00002fa5: PUSH1 0x40
00002fa7: PUSH1 0x20
00002fa9: DUP3
00002faa: ADD
00002fab: MSTORE
00002fac: DUP2
00002fad: PUSH1 0x40
00002faf: DUP3
00002fb0: ADD
00002fb1: MSTORE
00002fb2: DUP2
00002fb3: DUP4
00002fb4: PUSH1 0x60
00002fb6: DUP4
00002fb7: ADD
00002fb8: CALLDATACOPY
00002fb9: PUSH1 0x00
00002fbb: DUP2
00002fbc: DUP4
00002fbd: ADD
00002fbe: PUSH1 0x60
00002fc0: SWAP1
00002fc1: DUP2
00002fc2: ADD
00002fc3: SWAP2
00002fc4: SWAP1
00002fc5: SWAP2
00002fc6: MSTORE
00002fc7: PUSH1 0x1f
00002fc9: SWAP1
00002fca: SWAP3
00002fcb: ADD
00002fcc: PUSH1 0x1f
00002fce: NOT
00002fcf: AND
00002fd0: ADD
00002fd1: ADD
00002fd2: SWAP3
00002fd3: SWAP2
00002fd4: POP
00002fd5: POP
00002fd6: JUMP
00002fd7: JUMPDEST
00002fd8: PUSH1 0x01
00002fda: PUSH1 0x01
00002fdc: PUSH1 0x40
00002fde: SHL
00002fdf: SUB
00002fe0: DUP2
00002fe1: DUP2
00002fe2: AND
00002fe3: DUP4
00002fe4: DUP3
00002fe5: AND
00002fe6: ADD
00002fe7: SWAP1
00002fe8: DUP1
00002fe9: DUP3
00002fea: GT
00002feb: ISZERO
00002fec: PUSH2 0x2f91
00002fef: JUMPI
00002ff0: PUSH2 0x2f91
00002ff3: PUSH2 0x2e6d
00002ff6: JUMP
00002ff7: JUMPDEST
00002ff8: PUSH1 0x00
00002ffa: PUSH1 0x01
00002ffc: PUSH1 0x01
00002ffe: PUSH1 0x40
00003000: SHL
00003001: SUB
00003002: DUP1
00003003: DUP4
00003004: AND
00003005: DUP2
00003006: DUP2
00003007: SUB
00003008: PUSH2 0x3013
0000300b: JUMPI
0000300c: PUSH2 0x3013
0000300f: PUSH2 0x2e6d
00003012: JUMP
00003013: JUMPDEST
00003014: PUSH1 0x01
00003016: ADD
00003017: SWAP4
00003018: SWAP3
00003019: POP
0000301a: POP
0000301b: POP
0000301c: JUMP
0000301d: JUMPDEST
0000301e: PUSH1 0x00
00003020: PUSH2 0xffff
00003023: DUP1
00003024: DUP4
00003025: AND
00003026: DUP2
00003027: DUP2
00003028: SUB
00003029: PUSH2 0x3013
0000302c: JUMPI
0000302d: PUSH2 0x3013
00003030: PUSH2 0x2e6d
00003033: JUMP
00003034: JUMPDEST
00003035: PUSH1 0x00
00003037: DUP3
00003038: MLOAD
00003039: PUSH1 0x00
0000303b: JUMPDEST
0000303c: DUP2
0000303d: DUP2
0000303e: LT
0000303f: ISZERO
00003040: PUSH2 0x3055
00003043: JUMPI
00003044: PUSH1 0x20
00003046: DUP2
00003047: DUP7
00003048: ADD
00003049: DUP2
0000304a: ADD
0000304b: MLOAD
0000304c: DUP6
0000304d: DUP4
0000304e: ADD
0000304f: MSTORE
00003050: ADD
00003051: PUSH2 0x303b
00003054: JUMP
00003055: JUMPDEST
00003056: POP
00003057: PUSH1 0x00
00003059: SWAP3
0000305a: ADD
0000305b: SWAP2
0000305c: DUP3
0000305d: MSTORE
0000305e: POP
0000305f: SWAP2
00003060: SWAP1
00003061: POP
00003062: JUMP
00003063: JUMPDEST
00003064: PUSH1 0x00
00003066: PUSH1 0x20
00003068: DUP3
00003069: DUP5
0000306a: SUB
0000306b: SLT
0000306c: ISZERO
0000306d: PUSH2 0x3075
00003070: JUMPI
00003071: PUSH1 0x00
00003073: DUP1
00003074: REVERT
00003075: JUMPDEST
00003076: DUP2
00003077: MLOAD
00003078: PUSH2 0x1b35
0000307b: DUP2
0000307c: PUSH2 0x2cd3
0000307f: JUMP
00003080: INVALID
00003081: LOG1
00003082: PUSH5 0x736f6c6343
00003088: STOP
00003089: ADDMOD
0000308a: EQ
0000308b: STOP
0000308c: EXP

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: 0xe7b41b9e091d8c6f24433928dc120bb23ee454307a1458db2267c51df5aa15ee
call_targets: 0xb4fbad36699eab4c8b919cdc5336975ffff8bfda
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xe7b41b9e091d8c6f24433928dc120bb23ee454307a1458db2267c51df5aa15ee",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb4fbad36699eab4c8b919cdc5336975ffff8bfda"
    ],
    "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": "0xe8a70ee2",
            "selector": "0xe8a70ee2",
            "calldata_variants": [
                "0xe8a70ee2",
                "0xe8a70ee20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe9935b4a",
            "selector": "0xe9935b4a",
            "calldata_variants": [
                "0xe9935b4a",
                "0xe9935b4a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2e0ec48",
            "selector": "0xf2e0ec48",
            "calldata_variants": [
                "0xf2e0ec48",
                "0xf2e0ec480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf4daaba1",
            "selector": "0xf4daaba1",
            "calldata_variants": [
                "0xf4daaba1",
                "0xf4daaba10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6246ea1",
            "selector": "0xf6246ea1",
            "calldata_variants": [
                "0xf6246ea1",
                "0xf6246ea10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf851a440",
            "selector": "0xf851a440",
            "calldata_variants": [
                "0xf851a440",
                "0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd2763186",
            "selector": "0xd2763186",
            "calldata_variants": [
                "0xd2763186",
                "0xd27631860000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd4673de9",
            "selector": "0xd4673de9",
            "calldata_variants": [
                "0xd4673de9",
                "0xd4673de90000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 9338,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10064,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10269,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [],
    "untrusted_call_count": 4
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xe7b41b9e091d8c6f24433928dc120bb23ee454307a1458db2267c51df5aa15ee
call_targets: 0xb4fbad36699eab4c8b919cdc5336975ffff8bfda
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xe7b41b9e091d8c6f24433928dc120bb23ee454307a1458db2267c51df5aa15ee",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb4fbad36699eab4c8b919cdc5336975ffff8bfda"
    ],
    "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": "0xe8a70ee2",
            "selector": "0xe8a70ee2",
            "calldata_variants": [
                "0xe8a70ee2",
                "0xe8a70ee20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe9935b4a",
            "selector": "0xe9935b4a",
            "calldata_variants": [
                "0xe9935b4a",
                "0xe9935b4a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2e0ec48",
            "selector": "0xf2e0ec48",
            "calldata_variants": [
                "0xf2e0ec48",
                "0xf2e0ec480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf4daaba1",
            "selector": "0xf4daaba1",
            "calldata_variants": [
                "0xf4daaba1",
                "0xf4daaba10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6246ea1",
            "selector": "0xf6246ea1",
            "calldata_variants": [
                "0xf6246ea1",
                "0xf6246ea10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf851a440",
            "selector": "0xf851a440",
            "calldata_variants": [
                "0xf851a440",
                "0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd2763186",
            "selector": "0xd2763186",
            "calldata_variants": [
                "0xd2763186",
                "0xd27631860000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd4673de9",
            "selector": "0xd4673de9",
            "calldata_variants": [
                "0xd4673de9",
                "0xd4673de90000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 9338,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10064,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10269,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "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": 5
}