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

Analysis Run

5c191618-8592-4dd2-9d7f-cadcc5ff4d40

complete
Chain ID
1
Address
Block Number
Created
Tue, Dec 30, 2025 2:29 AM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30662 report.consolidate complete 1 / 1 3 months ago
74968 artifact.fetch complete 1 / 3 2 weeks ago
74969 tool.cast_disasm complete 1 / 3 2 weeks ago
74970 analysis.bundle complete 1 / 3 2 weeks ago
74971 capability.graph complete 1 / 3 2 weeks ago
74972 detector.run complete 1 / 3 2 weeks ago
74973 validation.fork complete 1 / 3 2 weeks ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
0
No findings?
yes
Summary
No concrete, explainable security issues were identified from the provided runtime bytecode/disassembly alone.
View stderr
[codex:713015] OpenAI Codex v0.77.0 (research preview)
[codex:713015] --------
[codex:713015] workdir: /tmp/codex-multi-4yerr9fx
[codex:713015] model: gpt-5.2-codex
[codex:713015] provider: openai
[codex:713015] approval: never
[codex:713015] sandbox: read-only
[codex:713015] reasoning effort: xhigh
[codex:713015] reasoning summaries: auto
[codex:713015] session id: 019b6d13-4e3c-72e0-a07f-39aabce90306
[codex:713015] --------
[codex:713015] user
[codex:713015] You are a security auditor. You are given EVM runtime bytecode (and possibly a disassembly) for a contract with NO verified source.
[codex:713015] This is best-effort. Do not hallucinate: only flag issues when there's a concrete, explainable angle from bytecode/disasm patterns.
[codex:713015] 
[codex:713015] You MUST read the full `BYTECODE_BUNDLE.txt` before concluding.
[codex:713015] 
[codex:713015] Output MUST be valid JSON matching the provided schema.
[codex:713015] - If you cannot identify a concrete issue from bytecode/disasm alone: set no_findings=true and findings=[].
[codex:713015] - Otherwise: include findings with severity/category/title/evidence and point locations to BYTECODE_BUNDLE.txt line ranges when possible.
[codex:713015] 
[codex:713015] Output constraints (IMPORTANT):
[codex:713015] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:713015] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:713015] mcp startup: no servers
[codex:713015] 
[codex:713015] thinking
[codex:713015] **Reading BYTECODE_BUNDLE.txt file**
[codex:713015] exec
[codex:713015] /bin/bash -lc 'cat /tmp/codex-multi-4yerr9fx/BYTECODE_BUNDLE.txt' in /tmp/codex-multi-4yerr9fx succeeded in 5ms:
[codex:713015] Runtime bytecode bundle for best-effort auditing.
[codex:713015] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:713015] 
[codex:713015] FILE: runtime_bytecode.hex
[codex:713015] 0x608060405234801561001057600080fd5b506004361061016c5760003560e01c8063c133163c116100cd578063eeaf04b111610081578063f0ba326111610066578063f0ba32611461032c578063f31fad0014610365578063fa461e331461037857600080fd5b8063eeaf04b1146102f1578063eebe93781461031957600080fd5b8063ca04108f116100b2578063ca04108f146102b8578063cc9fb041146102cb578063d4fae269146102de57600080fd5b8063c133163c14610231578063c587533e1461027f57600080fd5b806375ddbe8b11610124578063820a885911610109578063820a8859146101f85780638e85abd61461020b578063ac07c9701461021e57600080fd5b806375ddbe8b146101d25780637b48a5bc146101e557600080fd5b806338088cbb1161015557806338088cbb146101995780635b1d3b20146101ac5780636518aab3146101bf57600080fd5b806302d889101461017157806337bd827d14610186575b600080fd5b61018461017f366004612358565b61038b565b005b6101846101943660046123ca565b6106d6565b6101846101a73660046122c0565b61084e565b6101846101ba3660046122dd565b610958565b6101846101cd3660046122dd565b610bba565b6101846101e0366004612358565b610d72565b6101846101f33660046122c0565b611008565b610184610206366004612358565b61110f565b6101846102193660046122c0565b6113ce565b61018461022c36600461240c565b6114d5565b61026a61023f3660046122c0565b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b60405190151581526020015b60405180910390f35b61026a61028d3660046122c0565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b6101846102c63660046122c0565b61175e565b6101846102d93660046122c0565b611861565b6101846102ec366004612358565b611964565b60005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610276565b61018461032736600461239e565b611b74565b61026a61033a3660046122c0565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205460ff1690565b6101846103733660046122c0565b611b9a565b6101846103863660046124cd565b611c9c565b3360009081526001602052604090205460ff16610409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f46513637566a000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b8360008461042e73ffffffffffffffffffffffffffffffffffffffff82168487611e26565b6000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561047757600080fd5b505afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af91906125cc565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c811660048301526dffffffffffffffffffffffffffff93841695509190921692508391908516906370a082319060240160206040518083038186803b15801561053457600080fd5b505afa158015610548573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056c9190612611565b61057691906127bf565b93506000610586856103e5612782565b905060006105948383612782565b90506000826105a5866103e8612782565b6105af919061272f565b905060006105bd8284612747565b905089811015610629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f766e5364303100000000000000000000000000000000000000000000000000006044820152606401610400565b73ffffffffffffffffffffffffffffffffffffffff891663022c0d9f60008330825b6040519080825280601f01601f191660200182016040528015610675576020820181803683370190505b506040518563ffffffff1660e01b815260040161069594939291906126d7565b600060405180830381600087803b1580156106af57600080fd5b505af11580156106c3573d6000803e3d6000fd5b5050505050505050505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633148061070b57503360009081526002602052604090205460ff165b610771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f674a3565443900000000000000000000000000000000000000000000000000006044820152606401610400565b600054819073ffffffffffffffffffffffffffffffffffffffff808316911614806107c1575073ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff165b610827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f36316f49467300000000000000000000000000000000000000000000000000006044820152606401610400565b61084873ffffffffffffffffffffffffffffffffffffffff85168385611e26565b50505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f7a333254684400000000000000000000000000000000000000000000000000006044820152606401610400565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051938452908301919091527fe62434620f54c008068249f571016a0f7df8ccc9221d147292beb68c81d9065091015b60405180910390a150565b3360009081526001602052604090205460ff166109d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f46513637566a00000000000000000000000000000000000000000000000000006044820152606401610400565b6040805173ffffffffffffffffffffffffffffffffffffffff8088166020830152881691810191909152606081018590528790600090608001604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018152828252805160209182012083830190925273ffffffffffffffffffffffffffffffffffffffff8b81168452908301829052909250600090841663128acb083083610a7e8b611eff565b8987604051602001610ab89190815173ffffffffffffffffffffffffffffffffffffffff1681526020918201519181019190915260400190565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401610ae7959493929190612690565b6040805180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3891906124a9565b50905085610b458261283b565b1015610bad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f35744438445000000000000000000000000000000000000000000000000000006044820152606401610400565b5050505050505050505050565b3360009081526001602052604090205460ff16610c33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f46513637566a00000000000000000000000000000000000000000000000000006044820152606401610400565b6040805173ffffffffffffffffffffffffffffffffffffffff88811660208084018290528983168486015260608085018a905285518086039091018152608085018087528151919092012060c0850190955290815260a090920183905289929190600090841663128acb08306001610caa8b611eff565b8987604051602001610ce49190815173ffffffffffffffffffffffffffffffffffffffff1681526020918201519181019190915260400190565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401610d13959493929190612690565b6040805180830381600087803b158015610d2c57600080fd5b505af1158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6491906124a9565b9150508581610b459061283b565b3360009081526001602052604090205460ff16610deb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f46513637566a00000000000000000000000000000000000000000000000000006044820152606401610400565b60008490506000808273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610e3957600080fd5b505afa158015610e4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7191906125cc565b506dffffffffffffffffffffffffffff91821693501690506000610e97866103e5612782565b90506000610ea58383612782565b9050600082610eb6866103e8612782565b610ec0919061272f565b90506000610ece8284612747565b905087811015610f3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f766e5364303100000000000000000000000000000000000000000000000000006044820152606401610400565b89610f5c73ffffffffffffffffffffffffffffffffffffffff82168d8c611e26565b73ffffffffffffffffffffffffffffffffffffffff881663022c0d9f60008430825b6040519080825280601f01601f191660200182016040528015610fa8576020820181803683370190505b506040518563ffffffff1660e01b8152600401610fc894939291906126d7565b600060405180830381600087803b158015610fe257600080fd5b505af1158015610ff6573d6000803e3d6000fd5b50505050505050505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f7a333254684400000000000000000000000000000000000000000000000000006044820152606401610400565b73ffffffffffffffffffffffffffffffffffffffff811660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558251938452908301527fe1721e7850c58e663b742158d3d6ccfa99d3d7b5a8efbb0bfefffb70f3be66e5910161094d565b3360009081526001602052604090205460ff16611188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f46513637566a00000000000000000000000000000000000000000000000000006044820152606401610400565b836000846111ad73ffffffffffffffffffffffffffffffffffffffff82168487611e26565b6000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156111f657600080fd5b505afa15801561120a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122e91906125cc565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c811660048301526dffffffffffffffffffffffffffff93841695509190921692508291908516906370a082319060240160206040518083038186803b1580156112b357600080fd5b505afa1580156112c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112eb9190612611565b6112f591906127bf565b93506000611305856103e5612782565b905060006113138483612782565b9050600082611324856103e8612782565b61132e919061272f565b9050600061133c8284612747565b9050898110156113a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f766e5364303100000000000000000000000000000000000000000000000000006044820152606401610400565b73ffffffffffffffffffffffffffffffffffffffff891663022c0d9f826000308161064b565b60005473ffffffffffffffffffffffffffffffffffffffff16331461144f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f7a333254684400000000000000000000000000000000000000000000000000006044820152606401610400565b73ffffffffffffffffffffffffffffffffffffffff811660008181526003602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558251938452908301527f8bfc8adfd431e0ea67d873424a45d8156394a2eed744fcad59903299534060a9910161094d565b60005473ffffffffffffffffffffffffffffffffffffffff1633148061150a57503360009081526002602052604090205460ff165b611570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f674a3565443900000000000000000000000000000000000000000000000000006044820152606401610400565b600054819073ffffffffffffffffffffffffffffffffffffffff808316911614806115c0575073ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff165b611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f36316f49467300000000000000000000000000000000000000000000000000006044820152606401610400565b60005b83811015611757576000858583818110611645576116456128a3565b905060200201602081019061165a91906122c0565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a082319060240160206040518083038186803b1580156116c157600080fd5b505afa1580156116d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f99190612611565b90506117448482888886818110611712576117126128a3565b905060200201602081019061172791906122c0565b73ffffffffffffffffffffffffffffffffffffffff169190611e26565b508061174f81612802565b915050611629565b5050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146117df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f7a333254684400000000000000000000000000000000000000000000000000006044820152606401610400565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051938452908301919091527fe1721e7850c58e663b742158d3d6ccfa99d3d7b5a8efbb0bfefffb70f3be66e5910161094d565b60005473ffffffffffffffffffffffffffffffffffffffff1633146118e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f7a333254684400000000000000000000000000000000000000000000000000006044820152606401610400565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051938452908301919091527f8bfc8adfd431e0ea67d873424a45d8156394a2eed744fcad59903299534060a9910161094d565b3360009081526001602052604090205460ff166119dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f46513637566a00000000000000000000000000000000000000000000000000006044820152606401610400565b60008490506000808273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611a2b57600080fd5b505afa158015611a3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6391906125cc565b506dffffffffffffffffffffffffffff91821693501690506000611a89866103e5612782565b90506000611a978483612782565b9050600082611aa8856103e8612782565b611ab2919061272f565b90506000611ac08284612747565b905087811015611b2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f766e5364303100000000000000000000000000000000000000000000000000006044820152606401610400565b89611b4e73ffffffffffffffffffffffffffffffffffffffff82168d8c611e26565b73ffffffffffffffffffffffffffffffffffffffff881663022c0d9f8360003081610f7e565b611b9673ffffffffffffffffffffffffffffffffffffffff8316333084611f31565b5050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611c1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f7a333254684400000000000000000000000000000000000000000000000000006044820152606401610400565b73ffffffffffffffffffffffffffffffffffffffff811660008181526001602081815260409283902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905582519384528301527fe62434620f54c008068249f571016a0f7df8ccc9221d147292beb68c81d90650910161094d565b731f98431c8ad98523631ae4a59f267346ea31f9847fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546000611ce08486018661254d565b602081810151604080517fff0000000000000000000000000000000000000000000000000000000000000081850152606088901b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166021820152603581019290925260558083018790528151808403909101815260759092019052805191012090915073ffffffffffffffffffffffffffffffffffffffff81163314611de3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f486b3136576400000000000000000000000000000000000000000000000000006044820152606401610400565b6000808913611df25787611df4565b885b8351909150611e1a73ffffffffffffffffffffffffffffffffffffffff82163384611e26565b50505050505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611efa9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611f8f565b505050565b60007f80000000000000000000000000000000000000000000000000000000000000008210611f2d57600080fd5b5090565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526108489085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611e78565b6000611ff1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661209b9092919063ffffffff16565b805190915015611efa578080602001905181019061200f9190612487565b611efa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610400565b60606120aa84846000856120b4565b90505b9392505050565b606082471015612146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610400565b73ffffffffffffffffffffffffffffffffffffffff85163b6121c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610400565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516121ed9190612674565b60006040518083038185875af1925050503d806000811461222a576040519150601f19603f3d011682016040523d82523d6000602084013e61222f565b606091505b509150915061223f82828661224a565b979650505050505050565b606083156122595750816120ad565b8251156122695782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610400919061271c565b80516dffffffffffffffffffffffffffff811681146122bb57600080fd5b919050565b6000602082840312156122d257600080fd5b81356120ad816128d2565b600080600080600080600060e0888a0312156122f857600080fd5b8735612303816128d2565b96506020880135612313816128d2565b95506040880135612323816128d2565b9450606088013593506080880135925060a0880135915060c0880135612348816128d2565b8091505092959891949750929550565b6000806000806080858703121561236e57600080fd5b8435612379816128d2565b93506020850135612389816128d2565b93969395505050506040820135916060013590565b600080604083850312156123b157600080fd5b82356123bc816128d2565b946020939093013593505050565b6000806000606084860312156123df57600080fd5b83356123ea816128d2565b9250602084013591506040840135612401816128d2565b809150509250925092565b60008060006040848603121561242157600080fd5b833567ffffffffffffffff8082111561243957600080fd5b818601915086601f83011261244d57600080fd5b81358181111561245c57600080fd5b8760208260051b850101111561247157600080fd5b60209283019550935050840135612401816128d2565b60006020828403121561249957600080fd5b815180151581146120ad57600080fd5b600080604083850312156124bc57600080fd5b505080516020909101519092909150565b600080600080606085870312156124e357600080fd5b8435935060208501359250604085013567ffffffffffffffff8082111561250957600080fd5b818701915087601f83011261251d57600080fd5b81358181111561252c57600080fd5b88602082850101111561253e57600080fd5b95989497505060200194505050565b60006040828403121561255f57600080fd5b6040516040810181811067ffffffffffffffff821117156125a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405282356125b7816128d2565b81526020928301359281019290925250919050565b6000806000606084860312156125e157600080fd5b6125ea8461229d565b92506125f86020850161229d565b9150604084015163ffffffff8116811461240157600080fd5b60006020828403121561262357600080fd5b5051919050565b600081518084526126428160208601602086016127d6565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082516126868184602087016127d6565b9190910192915050565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a0608083015261223f60a083018461262a565b84815283602082015273ffffffffffffffffffffffffffffffffffffffff83166040820152608060608201526000612712608083018461262a565b9695505050505050565b6020815260006120ad602083018461262a565b6000821982111561274257612742612874565b500190565b60008261277d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127ba576127ba612874565b500290565b6000828210156127d1576127d1612874565b500390565b60005b838110156127f15781810151838201526020016127d9565b838111156108485750506000910152565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561283457612834612874565b5060010190565b60007f800000000000000000000000000000000000000000000000000000000000000082141561286d5761286d612874565b5060000390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff811681146128f457600080fd5b5056fea264697066735822122032956574c9dedf8a502aec1a66f71fd2cea03abca87f4cfa89d2c47c82fc832b64736f6c63430008070033
[codex:713015] 
[codex:713015] thinking
[codex:713015] **Analyzing bytecode for vulnerabilities**
[codex:713015] 
[codex:713015] I'm examining the bytecode patterns to spot access control checks, external calls, and potential risks like missing reentrancy guards or unsafe delegatecalls. Since I can't run external tools, I'll write a Python script to disassemble the bytecode and look for critical opcodes like ORIGIN or DELEGATECALL, aiming for concrete findings without guessing.
[codex:713015] exec
[codex:713015] /bin/bash -lc "python - <<'PY'
[codex:713015] import re
[codex:713015] from pathlib import Path
[codex:713015] 
[codex:713015] path = Path('/tmp/codex-multi-4yerr9fx/BYTECODE_BUNDLE.txt')
[codex:713015] text = path.read_text()
[codex:713015] # extract runtime bytecode hex after line 'FILE: runtime_bytecode.hex'
[codex:713015] hex_match = re.search(r'FILE: runtime_bytecode\\.hex\\n(0x[0-9a-fA-F]+)', text)
[codex:713015] if not hex_match:
[codex:713015]     print('hex not found')
[codex:713015]     raise SystemExit
[codex:713015] hexstr = hex_match.group(1)[2:]
[codex:713015] # map opcodes
[codex:713015] opcodes = {i: f'OP_{i:02x}' for i in range(256)}
[codex:713015] # fill known opcodes
[codex:713015] names = {
[codex:713015]     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:713015]     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:713015]     0x20:'SHA3',
[codex:713015]     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:713015]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:713015]     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:713015]     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:713015]     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:713015]     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:713015]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:713015]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:713015] }
[codex:713015] 
[codex:713015] for k,v in names.items():
[codex:713015]     opcodes[k] = v
[codex:713015] 
[codex:713015] # disassemble and find potential risk ops
[codex:713015] b = bytes.fromhex(hexstr)
[codex:713015] ops = []
[codex:713015] i=0
[codex:713015] while i < len(b):
[codex:713015]     op = b[i]
[codex:713015]     name = opcodes[op]
[codex:713015]     if 0x60 <= op <= 0x7f:
[codex:713015]         n = op-0x5f
[codex:713015]         data = b[i+1:i+1+n]
[codex:713015]         ops.append((i, name, data.hex()))
[codex:713015]         i += 1+n
[codex:713015]     else:
[codex:713015]         ops.append((i, name, ''))
[codex:713015]         i += 1
[codex:713015] 
[codex:713015] # quick scans
[codex:713015] interesting = {'DELEGATECALL','SELFDESTRUCT','CALLCODE','ORIGIN'}
[codex:713015] found = [(i,name,arg) for (i,name,arg) in ops if name in interesting]
[codex:713015] print('interesting ops:', found[:20])
[codex:713015] print('counts:', {op: sum(1 for _,n,_ in ops if n==op) for op in interesting})
[codex:713015] # count CALL and SSTORE for potential reentrancy patterns later
[codex:713015] print('CALL count', sum(1 for _,n,_ in ops if n=='CALL'))
[codex:713015] print('SSTORE count', sum(1 for _,n,_ in ops if n=='SSTORE'))
[codex:713015] 
[codex:713015] # show first occurrences of ORIGIN if any
[codex:713015] for i,name,arg in found:
[codex:713015]     if name == 'ORIGIN':
[codex:713015]         print('origin at', hex(i))
[codex:713015] 
[codex:713015] PY" in /tmp/codex-multi-4yerr9fx succeeded in 51ms:
[codex:713015] interesting ops: [(10498, 'ORIGIN', '')]
[codex:713015] counts: {'SELFDESTRUCT': 0, 'DELEGATECALL': 0, 'ORIGIN': 1, 'CALLCODE': 0}
[codex:713015] CALL count 5
[codex:713015] SSTORE count 6
[codex:713015] origin at 0x2902
[codex:713015] 
[codex:713015] thinking
[codex:713015] **Inspecting ORIGIN opcode usage**
[codex:713015] exec
[codex:713015] /bin/bash -lc "python - <<'PY'
[codex:713015] import re
[codex:713015] from pathlib import Path
[codex:713015] 
[codex:713015] path = Path('/tmp/codex-multi-4yerr9fx/BYTECODE_BUNDLE.txt')
[codex:713015] text = path.read_text()
[codex:713015] hex_match = re.search(r'FILE: runtime_bytecode\\.hex\\n(0x[0-9a-fA-F]+)', text)
[codex:713015] hexstr = hex_match.group(1)[2:]
[codex:713015] 
[codex:713015] opcodes = {i: f'OP_{i:02x}' for i in range(256)}
[codex:713015] names = {
[codex:713015]     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:713015]     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:713015]     0x20:'SHA3',
[codex:713015]     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:713015]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:713015]     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:713015]     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:713015]     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:713015]     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:713015]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:713015]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:713015] }
[codex:713015] for k,v in names.items():
[codex:713015]     opcodes[k] = v
[codex:713015] 
[codex:713015] b = bytes.fromhex(hexstr)
[codex:713015] ops = []
[codex:713015] i=0
[codex:713015] while i < len(b):
[codex:713015]     op = b[i]
[codex:713015]     name = opcodes[op]
[codex:713015]     if 0x60 <= op <= 0x7f:
[codex:713015]         n = op-0x5f
[codex:713015]         data = b[i+1:i+1+n]
[codex:713015]         ops.append((i, name, data.hex()))
[codex:713015]         i += 1+n
[codex:713015]     else:
[codex:713015]         ops.append((i, name, ''))
[codex:713015]         i += 1
[codex:713015] 
[codex:713015] # find context around origin offset 0x2902
[codex:713015] origin_offset = 0x2902
[codex:713015] # find index in ops list near this offset
[codex:713015] idx = next(i for i,(off,_,__) in enumerate(ops) if off == origin_offset)
[codex:713015] start = max(0, idx-20)
[codex:713015] end = min(len(ops), idx+20)
[codex:713015] for off, name, data in ops[start:end]:
[codex:713015]     if data:
[codex:713015]         print(f\"{off:06x}: {name} 0x{data}\")
[codex:713015]     else:
[codex:713015]         print(f\"{off:06x}: {name}\")
[codex:713015] PY" in /tmp/codex-multi-4yerr9fx succeeded in 36ms:
[codex:713015] 0028d2: JUMPDEST
[codex:713015] 0028d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:713015] 0028e8: DUP2
[codex:713015] 0028e9: AND
[codex:713015] 0028ea: DUP2
[codex:713015] 0028eb: EQ
[codex:713015] 0028ec: PUSH2 0x28f4
[codex:713015] 0028ef: JUMPI
[codex:713015] 0028f0: PUSH1 0x00
[codex:713015] 0028f2: DUP1
[codex:713015] 0028f3: REVERT
[codex:713015] 0028f4: JUMPDEST
[codex:713015] 0028f5: POP
[codex:713015] 0028f6: JUMP
[codex:713015] 0028f7: INVALID
[codex:713015] 0028f8: LOG2
[codex:713015] 0028f9: PUSH5 0x6970667358
[codex:713015] 0028ff: OP_22
[codex:713015] 002900: SLT
[codex:713015] 002901: SHA3
[codex:713015] 
[codex:713015] thinking
[codex:713015] **Analyzing metadata and storage modifications for vulnerabilities**
[codex:713015] 
[codex:713015] I'm investigating the bytecode metadata where ORIGIN appears but is not executed code, so it's likely not a vulnerability source. Next, I'm focusing on CALL and SSTORE instructions to check if state changes happen after external calls without protection, which might indicate reentrancy risks. I'll script a disassembly to track SSTORE positions and surrounding instructions to see if access control or reentrancy guards exist around those storage writes.
[codex:713015] exec
[codex:713015] /bin/bash -lc "python - <<'PY'
[codex:713015] import re
[codex:713015] from pathlib import Path
[codex:713015] 
[codex:713015] text = Path('/tmp/codex-multi-4yerr9fx/BYTECODE_BUNDLE.txt').read_text()
[codex:713015] hex_match = re.search(r'FILE: runtime_bytecode\\.hex\\n(0x[0-9a-fA-F]+)', text)
[codex:713015] hexstr = hex_match.group(1)[2:]
[codex:713015] 
[codex:713015] opcodes = {i: f'OP_{i:02x}' for i in range(256)}
[codex:713015] names = {
[codex:713015]     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:713015]     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:713015]     0x20:'SHA3',
[codex:713015]     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:713015]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:713015]     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:713015]     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:713015]     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:713015]     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:713015]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:713015]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:713015] }
[codex:713015] for k,v in names.items():
[codex:713015]     opcodes[k] = v
[codex:713015] 
[codex:713015] b = bytes.fromhex(hexstr)
[codex:713015] ops = []
[codex:713015] i=0
[codex:713015] while i < len(b):
[codex:713015]     op = b[i]
[codex:713015]     name = opcodes[op]
[codex:713015]     if 0x60 <= op <= 0x7f:
[codex:713015]         n = op-0x5f
[codex:713015]         data = b[i+1:i+1+n]
[codex:713015]         ops.append((i, name, data.hex()))
[codex:713015]         i += 1+n
[codex:713015]     else:
[codex:713015]         ops.append((i, name, ''))
[codex:713015]         i += 1
[codex:713015] 
[codex:713015] # find SSTORE positions
[codex:713015] sstore_indices = [idx for idx,(off,name,arg) in enumerate(ops) if name=='SSTORE']
[codex:713015] print('SSTORE count', len(sstore_indices))
[codex:713015] for idx in sstore_indices:
[codex:713015]     start = max(0, idx-10)
[codex:713015]     end = min(len(ops), idx+10)
[codex:713015]     print('\\n--- SSTORE at offset', hex(ops[idx][0]), '---')
[codex:713015]     for off,name,arg in ops[start:end]:
[codex:713015]         if arg:
[codex:713015]             print(f\"{off:06x}: {name} 0x{arg}\")
[codex:713015]         else:
[codex:713015]             print(f\"{off:06x}: {name}\")
[codex:713015] PY" in /tmp/codex-multi-4yerr9fx succeeded in 33ms:
[codex:713015] SSTORE count 6
[codex:713015] 
[codex:713015] --- SSTORE at offset 0x91d ---
[codex:713015] 0008f2: MSTORE
[codex:713015] 0008f3: PUSH1 0x40
[codex:713015] 0008f5: DUP1
[codex:713015] 0008f6: DUP4
[codex:713015] 0008f7: SHA3
[codex:713015] 0008f8: DUP1
[codex:713015] 0008f9: SLOAD
[codex:713015] 0008fa: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
[codex:713015] 00091b: AND
[codex:713015] 00091c: SWAP1
[codex:713015] 00091d: SSTORE
[codex:713015] 00091e: DUP1
[codex:713015] 00091f: MLOAD
[codex:713015] 000920: SWAP4
[codex:713015] 000921: DUP5
[codex:713015] 000922: MSTORE
[codex:713015] 000923: SWAP1
[codex:713015] 
[codex:713015] thinking
[codex:713015] **Investigating SSTORE context and line referencing**
[codex:713015] exec
[codex:713015] /bin/bash -lc 'nl -ba /tmp/codex-multi-4yerr9fx/BYTECODE_BUNDLE.txt | head -n 20' in /tmp/codex-multi-4yerr9fx succeeded in 6ms:
[codex:713015]      1	Runtime bytecode bundle for best-effort auditing.
[codex:713015]      2	Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:713015]      3	
[codex:713015]      4	FILE: runtime_bytecode.hex
[codex:713015]      5	0x608060405234801561001057600080fd5b506004361061016c5760003560e01c8063c133163c116100cd578063eeaf04b111610081578063f0ba326111610066578063f0ba32611461032c578063f31fad0014610365578063fa461e331461037857600080fd5b8063eeaf04b1146102f1578063eebe93781461031957600080fd5b8063ca04108f116100b2578063ca04108f146102b8578063cc9fb041146102cb578063d4fae269146102de57600080fd5b8063c133163c14610231578063c587533e1461027f57600080fd5b806375ddbe8b11610124578063820a885911610109578063820a8859146101f85780638e85abd61461020b578063ac07c9701461021e57600080fd5b806375ddbe8b146101d25780637b48a5bc146101e557600080fd5b806338088cbb1161015557806338088cbb146101995780635b1d3b20146101ac5780636518aab3146101bf57600080fd5b806302d889101461017157806337bd827d14610186575b600080fd5b61018461017f366004612358565b61038b565b005b6101846101943660046123ca565b6106d6565b6101846101a73660046122c0565b61084e565b6101846101ba3660046122dd565b610958565b6101846101cd3660046122dd565b610bba565b6101846101e0366004612358565b610d72565b6101846101f33660046122c0565b611008565b610184610206366004612358565b61110f565b6101846102193660046122c0565b6113ce565b61018461022c36600461240c565b6114d5565b61026a61023f3660046122c0565b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b60405190151581526020015b60405180910390f35b61026a61028d3660046122c0565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b6101846102c63660046122c0565b61175e565b6101846102d93660046122c0565b611861565b6101846102ec366004612358565b611964565b60005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610276565b61018461032736600461239e565b611b74565b61026a61033a3660046122c0565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205460ff1690565b6101846103733660046122c0565b611b9a565b6101846103863660046124cd565b611c9c565b3360009081526001602052604090205460ff16610409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f46513637566a000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b8360008461042e73ffffffffffffffffffffffffffffffffffffffff82168487611e26565b6000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561047757600080fd5b505afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af91906125cc565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c811660048301526dffffffffffffffffffffffffffff93841695509190921692508391908516906370a082319060240160206040518083038186803b15801561053457600080fd5b505afa158015610548573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056c9190612611565b61057691906127bf565b93506000610586856103e5612782565b905060006105948383612782565b90506000826105a5866103e8612782565b6105af919061272f565b905060006105bd8284612747565b905089811015610629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f766e5364303100000000000000000000000000000000000000000000000000006044820152606401610400565b73ffffffffffffffffffffffffffffffffffffffff891663022c0d9f60008330825b6040519080825280601f01601f191660200182016040528015610675576020820181803683370190505b506040518563ffffffff1660e01b815260040161069594939291906126d7565b600060405180830381600087803b1580156106af57600080fd5b505af11580156106c3573d6000803e3d6000fd5b5050505050505050505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633148061070b57503360009081526002602052604090205460ff165b610771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f674a3565443900000000000000000000000000000000000000000000000000006044820152606401610400565b600054819073ffffffffffffffffffffffffffffffffffffffff808316911614806107c1575073ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff165b610827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f36316f49467300000000000000000000000000000000000000000000000000006044820152606401610400565b61084873ffffffffffffffffffffffffffffffffffffffff85168385611e26565b50505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f7a333254684400000000000000000000000000000000000000000000000000006044820152606401610400565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260016020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051938452908301919091527fe62434620f54c008068249f571016a0f7df8ccc9221d147292beb68c81d9065091015b60405180910390a150565b3360009081526001602052604090205460ff166109d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f46513637566a00000000000000000000000000000000000000000000000000006044820152606401610400565b6040805173ffffffffffffffffffffffffffffffffffffffff8088166020830152881691810191909152606081018590528790600090608001604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018152828252805160209182012083830190925273ffffffffffffffffffffffffffffffffffffffff8b81168452908301829052909250600090841663128acb083083610a7e8b611eff565b8987604051602001610ab89190815173ffffffffffffffffffffffffffffffffffffffff1681526020918201519181019190915260400190565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401610ae7959493929190612690565b6040805180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3891906124a9565b50905085610b458261283b565b1015610bad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f35744438445000000000000000000000000000000000000000000000000000006044820152606401610400565b5050505050505050505050565b3360009081526001602052604090205460ff16610c33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f46513637566a00000000000000000000000000000000000000000000000000006044820152606401610400565b6040805173ffffffffffffffffffffffffffffffffffffffff88811660208084018290528983168486015260608085018a905285518086039091018152608085018087528151919092012060c0850190955290815260a090920183905289929190600090841663128acb08306001610caa8b611eff565b8987604051602001610ce49190815173ffffffffffffffffffffffffffffffffffffffff1681526020918201519181019190915260400190565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401610d13959493929190612690565b6040805180830381600087803b158015610d2c57600080fd5b505af1158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6491906124a9565b9150508581610b459061283b565b3360009081526001602052604090205460ff16610deb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f46513637566a00000000000000000000000000000000000000000000000000006044820152606401610400565b60008490506000808273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610e3957600080fd5b505afa158015610e4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7191906125cc565b506dffffffffffffffffffffffffffff91821693501690506000610e97866103e5612782565b90506000610ea58383612782565b9050600082610eb6866103e8612782565b610ec0919061272f565b90506000610ece8284612747565b905087811015610f3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f766e5364303100000000000000000000000000000000000000000000000000006044820152606401610400565b89610f5c73ffffffffffffffffffffffffffffffffffffffff82168d8c611e26565b73ffffffffffffffffffffffffffffffffffffffff881663022c0d9f60008430825b6040519080825280601f01601f191660200182016040528015610fa8576020820181803683370190505b506040518563ffffffff1660e01b8152600401610fc894939291906126d7565b600060405180830381600087803b158015610fe257600080fd5b505af1158015610ff6573d6000803e3d6000fd5b50505050505050505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f7a333254684400000000000000000000000000000000000000000000000000006044820152606401610400565b73ffffffffffffffffffffffffffffffffffffffff811660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558251938452908301527fe1721e7850c58e663b742158d3d6ccfa99d3d7b5a8efbb0bfefffb70f3be66e5910161094d565b3360009081526001602052604090205460ff16611188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f46513637566a00000000000000000000000000000000000000000000000000006044820152606401610400565b836000846111ad73ffffffffffffffffffffffffffffffffffffffff82168487611e26565b6000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156111f657600080fd5b505afa15801561120a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122e91906125cc565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c811660048301526dffffffffffffffffffffffffffff93841695509190921692508291908516906370a082319060240160206040518083038186803b1580156112b357600080fd5b505afa1580156112c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112eb9190612611565b6112f591906127bf565b93506000611305856103e5612782565b905060006113138483612782565b9050600082611324856103e8612782565b61132e919061272f565b9050600061133c8284612747565b9050898110156113a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f766e5364303100000000000000000000000000000000000000000000000000006044820152606401610400565b73ffffffffffffffffffffffffffffffffffffffff891663022c0d9f826000308161064b565b60005473ffffffffffffffffffffffffffffffffffffffff16331461144f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f7a333254684400000000000000000000000000000000000000000000000000006044820152606401610400565b73ffffffffffffffffffffffffffffffffffffffff811660008181526003602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558251938452908301527f8bfc8adfd431e0ea67d873424a45d8156394a2eed744fcad59903299534060a9910161094d565b60005473ffffffffffffffffffffffffffffffffffffffff1633148061150a57503360009081526002602052604090205460ff165b611570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f674a3565443900000000000000000000000000000000000000000000000000006044820152606401610400565b600054819073ffffffffffffffffffffffffffffffffffffffff808316911614806115c0575073ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff165b611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f36316f49467300000000000000000000000000000000000000000000000000006044820152606401610400565b60005b83811015611757576000858583818110611645576116456128a3565b905060200201602081019061165a91906122c0565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a082319060240160206040518083038186803b1580156116c157600080fd5b505afa1580156116d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f99190612611565b90506117448482888886818110611712576117126128a3565b905060200201602081019061172791906122c0565b73ffffffffffffffffffffffffffffffffffffffff169190611e26565b508061174f81612802565b915050611629565b5050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146117df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f7a333254684400000000000000000000000000000000000000000000000000006044820152606401610400565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051938452908301919091527fe1721e7850c58e663b742158d3d6ccfa99d3d7b5a8efbb0bfefffb70f3be66e5910161094d565b60005473ffffffffffffffffffffffffffffffffffffffff1633146118e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f7a333254684400000000000000000000000000000000000000000000000000006044820152606401610400565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051938452908301919091527f8bfc8adfd431e0ea67d873424a45d8156394a2eed744fcad59903299534060a9910161094d565b3360009081526001602052604090205460ff166119dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f46513637566a00000000000000000000000000000000000000000000000000006044820152606401610400565b60008490506000808273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611a2b57600080fd5b505afa158015611a3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6391906125cc565b506dffffffffffffffffffffffffffff91821693501690506000611a89866103e5612782565b90506000611a978483612782565b9050600082611aa8856103e8612782565b611ab2919061272f565b90506000611ac08284612747565b905087811015611b2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f766e5364303100000000000000000000000000000000000000000000000000006044820152606401610400565b89611b4e73ffffffffffffffffffffffffffffffffffffffff82168d8c611e26565b73ffffffffffffffffffffffffffffffffffffffff881663022c0d9f8360003081610f7e565b611b9673ffffffffffffffffffffffffffffffffffffffff8316333084611f31565b5050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611c1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f7a333254684400000000000000000000000000000000000000000000000000006044820152606401610400565b73ffffffffffffffffffffffffffffffffffffffff811660008181526001602081815260409283902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905582519384528301527fe62434620f54c008068249f571016a0f7df8ccc9221d147292beb68c81d90650910161094d565b731f98431c8ad98523631ae4a59f267346ea31f9847fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546000611ce08486018661254d565b602081810151604080517fff0000000000000000000000000000000000000000000000000000000000000081850152606088901b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166021820152603581019290925260558083018790528151808403909101815260759092019052805191012090915073ffffffffffffffffffffffffffffffffffffffff81163314611de3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f486b3136576400000000000000000000000000000000000000000000000000006044820152606401610400565b6000808913611df25787611df4565b885b8351909150611e1a73ffffffffffffffffffffffffffffffffffffffff82163384611e26565b50505050505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052611efa9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611f8f565b505050565b60007f80000000000000000000000000000000000000000000000000000000000000008210611f2d57600080fd5b5090565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526108489085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611e78565b6000611ff1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661209b9092919063ffffffff16565b805190915015611efa578080602001905181019061200f9190612487565b611efa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610400565b60606120aa84846000856120b4565b90505b9392505050565b606082471015612146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610400565b73ffffffffffffffffffffffffffffffffffffffff85163b6121c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610400565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516121ed9190612674565b60006040518083038185875af1925050503d806000811461222a576040519150601f19603f3d011682016040523d82523d6000602084013e61222f565b606091505b509150915061223f82828661224a565b979650505050505050565b606083156122595750816120ad565b8251156122695782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610400919061271c565b80516dffffffffffffffffffffffffffff811681146122bb57600080fd5b919050565b6000602082840312156122d257600080fd5b81356120ad816128d2565b600080600080600080600060e0888a0312156122f857600080fd5b8735612303816128d2565b96506020880135612313816128d2565b95506040880135612323816128d2565b9450606088013593506080880135925060a0880135915060c0880135612348816128d2565b8091505092959891949750929550565b6000806000806080858703121561236e57600080fd5b8435612379816128d2565b93506020850135612389816128d2565b93969395505050506040820135916060013590565b600080604083850312156123b157600080fd5b82356123bc816128d2565b946020939093013593505050565b6000806000606084860312156123df57600080fd5b83356123ea816128d2565b9250602084013591506040840135612401816128d2565b809150509250925092565b60008060006040848603121561242157600080fd5b833567ffffffffffffffff8082111561243957600080fd5b818601915086601f83011261244d57600080fd5b81358181111561245c57600080fd5b8760208260051b850101111561247157600080fd5b60209283019550935050840135612401816128d2565b60006020828403121561249957600080fd5b815180151581146120ad57600080fd5b600080604083850312156124bc57600080fd5b505080516020909101519092909150565b600080600080606085870312156124e357600080fd5b8435935060208501359250604085013567ffffffffffffffff8082111561250957600080fd5b818701915087601f83011261251d57600080fd5b81358181111561252c57600080fd5b88602082850101111561253e57600080fd5b95989497505060200194505050565b60006040828403121561255f57600080fd5b6040516040810181811067ffffffffffffffff821117156125a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405282356125b7816128d2565b81526020928301359281019290925250919050565b6000806000606084860312156125e157600080fd5b6125ea8461229d565b92506125f86020850161229d565b9150604084015163ffffffff8116811461240157600080fd5b60006020828403121561262357600080fd5b5051919050565b600081518084526126428160208601602086016127d6565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082516126868184602087016127d6565b9190910192915050565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a0608083015261223f60a083018461262a565b84815283602082015273ffffffffffffffffffffffffffffffffffffffff83166040820152608060608201526000612712608083018461262a565b9695505050505050565b6020815260006120ad602083018461262a565b6000821982111561274257612742612874565b500190565b60008261277d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127ba576127ba612874565b500290565b6000828210156127d1576127d1612874565b500390565b60005b838110156127f15781810151838201526020016127d9565b838111156108485750506000910152565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561283457612834612874565b5060010190565b60007f800000000000000000000000000000000000000000000000000000000000000082141561286d5761286d612874565b5060000390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff811681146128f457600080fd5b5056fea264697066735822122032956574c9dedf8a502aec1a66f71fd2cea03abca87f4cfa89d2c47c82fc832b64736f6c63430008070033
[codex:713015] 
[codex:713015] thinking
[codex:713015] **Analyzing bytecode call patterns**
[codex:713015] exec
[codex:713015] /bin/bash -lc "python - <<'PY'
[codex:713015] import re
[codex:713015] from pathlib import Path
[codex:713015] 
[codex:713015] text = Path('/tmp/codex-multi-4yerr9fx/BYTECODE_BUNDLE.txt').read_text()
[codex:713015] hex_match = re.search(r'FILE: runtime_bytecode\\.hex\\n(0x[0-9a-fA-F]+)', text)
[codex:713015] hexstr = hex_match.group(1)[2:]
[codex:713015] 
[codex:713015] opcodes = {i: f'OP_{i:02x}' for i in range(256)}
[codex:713015] names = {
[codex:713015]     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:713015]     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:713015]     0x20:'SHA3',
[codex:713015]     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:713015]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:713015]     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:713015]     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:713015]     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:713015]     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:713015]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:713015]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:713015] }
[codex:713015] for k,v in names.items():
[codex:713015]     opcodes[k] = v
[codex:713015] 
[codex:713015] b = bytes.fromhex(hexstr)
[codex:713015] ops = []
[codex:713015] i=0
[codex:713015] while i < len(b):
[codex:713015]     op = b[i]
[codex:713015]     name = opcodes[op]
[codex:713015]     if 0x60 <= op <= 0x7f:
[codex:713015]         n = op-0x5f
[codex:713015]         data = b[i+1:i+1+n]
[codex:713015]         ops.append((i, name, data.hex()))
[codex:713015]         i += 1+n
[codex:713015]     else:
[codex:713015]         ops.append((i, name, ''))
[codex:713015]         i += 1
[codex:713015] 
[codex:713015] call_indices = [idx for idx,(off,name,arg) in enumerate(ops) if name=='CALL']
[codex:713015] print('CALL count', len(call_indices))
[codex:713015] for idx in call_indices:
[codex:713015]     start = max(0, idx-15)
[codex:713015]     end = min(len(ops), idx+15)
[codex:713015]     print('\\n--- CALL at offset', hex(ops[idx][0]), '---')
[codex:713015]     for off,name,arg in ops[start:end]:
[codex:713015]         if arg:
[codex:713015]             print(f\"{off:06x}: {name} 0x{arg}\")
[codex:713015]         else:
[codex:713015]             print(f\"{off:06x}: {name}\")
[codex:713015] PY" in /tmp/codex-multi-4yerr9fx succeeded in 32ms:
[codex:713015] CALL count 5
[codex:713015] 
[codex:713015] --- CALL at offset 0x6b2 ---
[codex:713015] 00069f: PUSH1 0x00
[codex:713015] 0006a1: DUP8
[codex:713015] 0006a2: DUP1
[codex:713015] 0006a3: EXTCODESIZE
[codex:713015] 0006a4: ISZERO
[codex:713015] 0006a5: DUP1
[codex:713015] 0006a6: ISZERO
[codex:713015] 0006a7: PUSH2 0x06af
[codex:713015] 0006aa: JUMPI
[codex:713015] 0006ab: PUSH1 0x00
[codex:713015] 0006ad: DUP1
[codex:713015] 0006ae: REVERT
[codex:713015] 0006af: JUMPDEST
[codex:713015] 0006b0: POP
[codex:713015] 0006b1: GAS
[codex:713015] 0006b2: CALL
[codex:713015] 0006b3: ISZERO
[codex:713015] 
[codex:713015] thinking
[codex:713015] **Analyzing low-level call patterns and potential vulnerabilities**
[codex:713015] exec
[codex:713015] /bin/bash -lc "python - <<'PY'
[codex:713015] import re
[codex:713015] from pathlib import Path
[codex:713015] 
[codex:713015] text = Path('/tmp/codex-multi-4yerr9fx/BYTECODE_BUNDLE.txt').read_text()
[codex:713015] hex_match = re.search(r'FILE: runtime_bytecode\\.hex\\n(0x[0-9a-fA-F]+)', text)
[codex:713015] hexstr = hex_match.group(1)[2:]
[codex:713015] 
[codex:713015] opcodes = {i: f'OP_{i:02x}' for i in range(256)}
[codex:713015] names = {
[codex:713015]     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:713015]     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:713015]     0x20:'SHA3',
[codex:713015]     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:713015]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:713015]     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:713015]     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:713015]     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:713015]     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:713015]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:713015]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:713015] }
[codex:713015] for k,v in names.items():
[codex:713015]     opcodes[k] = v
[codex:713015] 
[codex:713015] b = bytes.fromhex(hexstr)
[codex:713015] ops = []
[codex:713015] i=0
[codex:713015] while i < len(b):
[codex:713015]     op = b[i]
[codex:713015]     name = opcodes[op]
[codex:713015]     if 0x60 <= op <= 0x7f:
[codex:713015]         n = op-0x5f
[codex:713015]         data = b[i+1:i+1+n]
[codex:713015]         ops.append((i, name, data.hex()))
[codex:713015]         i += 1+n
[codex:713015]     else:
[codex:713015]         ops.append((i, name, ''))
[codex:713015]         i += 1
[codex:713015] 
[codex:713015] # print around offset 0x1c9c
[codex:713015] start_offset = 0x1c60
[codex:713015] end_offset = 0x1d60
[codex:713015] for off,name,arg in ops:
[codex:713015]     if start_offset <= off <= end_offset:
[codex:713015]         if arg:
[codex:713015]             print(f\"{off:06x}: {name} 0x{arg}\")
[codex:713015]         else:
[codex:713015]             print(f\"{off:06x}: {name}\")
[codex:713015] PY" in /tmp/codex-multi-4yerr9fx succeeded in 33ms:
[codex:713015] 001c68: AND
[codex:713015] 001c69: DUP4
[codex:713015] 001c6a: OR
[codex:713015] 001c6b: SWAP1
[codex:713015] 001c6c: SSTORE
[codex:713015] 001c6d: DUP3
[codex:713015] 001c6e: MLOAD
[codex:713015] 001c6f: SWAP4
[codex:713015] 001c70: DUP5
[codex:713015] 001c71: MSTORE
[codex:713015] 001c72: DUP4
[codex:713015] 001c73: ADD
[codex:713015] 001c74: MSTORE
[codex:713015] 001c75: PUSH32 0xe62434620f54c008068249f571016a0f7df8ccc9221d147292beb68c81d90650
[codex:713015] 001c96: SWAP2
[codex:713015] 001c97: ADD
[codex:713015] 001c98: PUSH2 0x094d
[codex:713015] 001c9b: JUMP
[codex:713015] 001c9c: JUMPDEST
[codex:713015] 001c9d: PUSH20 0x1f98431c8ad98523631ae4a59f267346ea31f984
[codex:713015] 
[codex:713015] thinking
[codex:713015] **Analyzing Uniswap-based contract for issues**
[codex:713015] codex
[codex:713015] {"no_findings":true,"summary":"No concrete, explainable security issues were identified from the provided runtime bytecode/disassembly alone.","findings":[]}
[codex:713015] tokens used
[codex:713015] 46,488
[codex:713015] {"no_findings":true,"summary":"No concrete, explainable security issues were identified from the provided runtime bytecode/disassembly alone.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-30T02:29:31.154935+00:00",
        "returncode": 0
    },
    "summary": "No concrete, explainable security issues were identified from the provided runtime bytecode/disassembly alone.",
    "raw_final": {
        "summary": "No concrete, explainable security issues were identified from the provided runtime bytecode/disassembly alone.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
12
EXT*/BALANCE
12
Total opcodes
4773
Flags
heavy_ext_balance_usage call_family_heavy
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 0x016c
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0xc133163c
00000026: GT
00000027: PUSH2 0x00cd
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xeeaf04b1
00000031: GT
00000032: PUSH2 0x0081
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xf0ba3261
0000003c: GT
0000003d: PUSH2 0x0066
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xf0ba3261
00000047: EQ
00000048: PUSH2 0x032c
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xf31fad00
00000052: EQ
00000053: PUSH2 0x0365
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xfa461e33
0000005d: EQ
0000005e: PUSH2 0x0378
00000061: JUMPI
00000062: PUSH1 0x00
00000064: DUP1
00000065: REVERT
00000066: JUMPDEST
00000067: DUP1
00000068: PUSH4 0xeeaf04b1
0000006d: EQ
0000006e: PUSH2 0x02f1
00000071: JUMPI
00000072: DUP1
00000073: PUSH4 0xeebe9378
00000078: EQ
00000079: PUSH2 0x0319
0000007c: JUMPI
0000007d: PUSH1 0x00
0000007f: DUP1
00000080: REVERT
00000081: JUMPDEST
00000082: DUP1
00000083: PUSH4 0xca04108f
00000088: GT
00000089: PUSH2 0x00b2
0000008c: JUMPI
0000008d: DUP1
0000008e: PUSH4 0xca04108f
00000093: EQ
00000094: PUSH2 0x02b8
00000097: JUMPI
00000098: DUP1
00000099: PUSH4 0xcc9fb041
0000009e: EQ
0000009f: PUSH2 0x02cb
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0xd4fae269
000000a9: EQ
000000aa: PUSH2 0x02de
000000ad: JUMPI
000000ae: PUSH1 0x00
000000b0: DUP1
000000b1: REVERT
000000b2: JUMPDEST
000000b3: DUP1
000000b4: PUSH4 0xc133163c
000000b9: EQ
000000ba: PUSH2 0x0231
000000bd: JUMPI
000000be: DUP1
000000bf: PUSH4 0xc587533e
000000c4: EQ
000000c5: PUSH2 0x027f
000000c8: JUMPI
000000c9: PUSH1 0x00
000000cb: DUP1
000000cc: REVERT
000000cd: JUMPDEST
000000ce: DUP1
000000cf: PUSH4 0x75ddbe8b
000000d4: GT
000000d5: PUSH2 0x0124
000000d8: JUMPI
000000d9: DUP1
000000da: PUSH4 0x820a8859
000000df: GT
000000e0: PUSH2 0x0109
000000e3: JUMPI
000000e4: DUP1
000000e5: PUSH4 0x820a8859
000000ea: EQ
000000eb: PUSH2 0x01f8
000000ee: JUMPI
000000ef: DUP1
000000f0: PUSH4 0x8e85abd6
000000f5: EQ
000000f6: PUSH2 0x020b
000000f9: JUMPI
000000fa: DUP1
000000fb: PUSH4 0xac07c970
00000100: EQ
00000101: PUSH2 0x021e
00000104: JUMPI
00000105: PUSH1 0x00
00000107: DUP1
00000108: REVERT
00000109: JUMPDEST
0000010a: DUP1
0000010b: PUSH4 0x75ddbe8b
00000110: EQ
00000111: PUSH2 0x01d2
00000114: JUMPI
00000115: DUP1
00000116: PUSH4 0x7b48a5bc
0000011b: EQ
0000011c: PUSH2 0x01e5
0000011f: JUMPI
00000120: PUSH1 0x00
00000122: DUP1
00000123: REVERT
00000124: JUMPDEST
00000125: DUP1
00000126: PUSH4 0x38088cbb
0000012b: GT
0000012c: PUSH2 0x0155
0000012f: JUMPI
00000130: DUP1
00000131: PUSH4 0x38088cbb
00000136: EQ
00000137: PUSH2 0x0199
0000013a: JUMPI
0000013b: DUP1
0000013c: PUSH4 0x5b1d3b20
00000141: EQ
00000142: PUSH2 0x01ac
00000145: JUMPI
00000146: DUP1
00000147: PUSH4 0x6518aab3
0000014c: EQ
0000014d: PUSH2 0x01bf
00000150: JUMPI
00000151: PUSH1 0x00
00000153: DUP1
00000154: REVERT
00000155: JUMPDEST
00000156: DUP1
00000157: PUSH4 0x02d88910
0000015c: EQ
0000015d: PUSH2 0x0171
00000160: JUMPI
00000161: DUP1
00000162: PUSH4 0x37bd827d
00000167: EQ
00000168: PUSH2 0x0186
0000016b: JUMPI
0000016c: JUMPDEST
0000016d: PUSH1 0x00
0000016f: DUP1
00000170: REVERT
00000171: JUMPDEST
00000172: PUSH2 0x0184
00000175: PUSH2 0x017f
00000178: CALLDATASIZE
00000179: PUSH1 0x04
0000017b: PUSH2 0x2358
0000017e: JUMP
0000017f: JUMPDEST
00000180: PUSH2 0x038b
00000183: JUMP
00000184: JUMPDEST
00000185: STOP
00000186: JUMPDEST
00000187: PUSH2 0x0184
0000018a: PUSH2 0x0194
0000018d: CALLDATASIZE
0000018e: PUSH1 0x04
00000190: PUSH2 0x23ca
00000193: JUMP
00000194: JUMPDEST
00000195: PUSH2 0x06d6
00000198: JUMP
00000199: JUMPDEST
0000019a: PUSH2 0x0184
0000019d: PUSH2 0x01a7
000001a0: CALLDATASIZE
000001a1: PUSH1 0x04
000001a3: PUSH2 0x22c0
000001a6: JUMP
000001a7: JUMPDEST
000001a8: PUSH2 0x084e
000001ab: JUMP
000001ac: JUMPDEST
000001ad: PUSH2 0x0184
000001b0: PUSH2 0x01ba
000001b3: CALLDATASIZE
000001b4: PUSH1 0x04
000001b6: PUSH2 0x22dd
000001b9: JUMP
000001ba: JUMPDEST
000001bb: PUSH2 0x0958
000001be: JUMP
000001bf: JUMPDEST
000001c0: PUSH2 0x0184
000001c3: PUSH2 0x01cd
000001c6: CALLDATASIZE
000001c7: PUSH1 0x04
000001c9: PUSH2 0x22dd
000001cc: JUMP
000001cd: JUMPDEST
000001ce: PUSH2 0x0bba
000001d1: JUMP
000001d2: JUMPDEST
000001d3: PUSH2 0x0184
000001d6: PUSH2 0x01e0
000001d9: CALLDATASIZE
000001da: PUSH1 0x04
000001dc: PUSH2 0x2358
000001df: JUMP
000001e0: JUMPDEST
000001e1: PUSH2 0x0d72
000001e4: JUMP
000001e5: JUMPDEST
000001e6: PUSH2 0x0184
000001e9: PUSH2 0x01f3
000001ec: CALLDATASIZE
000001ed: PUSH1 0x04
000001ef: PUSH2 0x22c0
000001f2: JUMP
000001f3: JUMPDEST
000001f4: PUSH2 0x1008
000001f7: JUMP
000001f8: JUMPDEST
000001f9: PUSH2 0x0184
000001fc: PUSH2 0x0206
000001ff: CALLDATASIZE
00000200: PUSH1 0x04
00000202: PUSH2 0x2358
00000205: JUMP
00000206: JUMPDEST
00000207: PUSH2 0x110f
0000020a: JUMP
0000020b: JUMPDEST
0000020c: PUSH2 0x0184
0000020f: PUSH2 0x0219
00000212: CALLDATASIZE
00000213: PUSH1 0x04
00000215: PUSH2 0x22c0
00000218: JUMP
00000219: JUMPDEST
0000021a: PUSH2 0x13ce
0000021d: JUMP
0000021e: JUMPDEST
0000021f: PUSH2 0x0184
00000222: PUSH2 0x022c
00000225: CALLDATASIZE
00000226: PUSH1 0x04
00000228: PUSH2 0x240c
0000022b: JUMP
0000022c: JUMPDEST
0000022d: PUSH2 0x14d5
00000230: JUMP
00000231: JUMPDEST
00000232: PUSH2 0x026a
00000235: PUSH2 0x023f
00000238: CALLDATASIZE
00000239: PUSH1 0x04
0000023b: PUSH2 0x22c0
0000023e: JUMP
0000023f: JUMPDEST
00000240: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000255: AND
00000256: PUSH1 0x00
00000258: SWAP1
00000259: DUP2
0000025a: MSTORE
0000025b: PUSH1 0x03
0000025d: PUSH1 0x20
0000025f: MSTORE
00000260: PUSH1 0x40
00000262: SWAP1
00000263: KECCAK256
00000264: SLOAD
00000265: PUSH1 0xff
00000267: AND
00000268: SWAP1
00000269: JUMP
0000026a: JUMPDEST
0000026b: PUSH1 0x40
0000026d: MLOAD
0000026e: SWAP1
0000026f: ISZERO
00000270: ISZERO
00000271: DUP2
00000272: MSTORE
00000273: PUSH1 0x20
00000275: ADD
00000276: JUMPDEST
00000277: PUSH1 0x40
00000279: MLOAD
0000027a: DUP1
0000027b: SWAP2
0000027c: SUB
0000027d: SWAP1
0000027e: RETURN
0000027f: JUMPDEST
00000280: PUSH2 0x026a
00000283: PUSH2 0x028d
00000286: CALLDATASIZE
00000287: PUSH1 0x04
00000289: PUSH2 0x22c0
0000028c: JUMP
0000028d: JUMPDEST
0000028e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002a3: AND
000002a4: PUSH1 0x00
000002a6: SWAP1
000002a7: DUP2
000002a8: MSTORE
000002a9: PUSH1 0x01
000002ab: PUSH1 0x20
000002ad: MSTORE
000002ae: PUSH1 0x40
000002b0: SWAP1
000002b1: KECCAK256
000002b2: SLOAD
000002b3: PUSH1 0xff
000002b5: AND
000002b6: SWAP1
000002b7: JUMP
000002b8: JUMPDEST
000002b9: PUSH2 0x0184
000002bc: PUSH2 0x02c6
000002bf: CALLDATASIZE
000002c0: PUSH1 0x04
000002c2: PUSH2 0x22c0
000002c5: JUMP
000002c6: JUMPDEST
000002c7: PUSH2 0x175e
000002ca: JUMP
000002cb: JUMPDEST
000002cc: PUSH2 0x0184
000002cf: PUSH2 0x02d9
000002d2: CALLDATASIZE
000002d3: PUSH1 0x04
000002d5: PUSH2 0x22c0
000002d8: JUMP
000002d9: JUMPDEST
000002da: PUSH2 0x1861
000002dd: JUMP
000002de: JUMPDEST
000002df: PUSH2 0x0184
000002e2: PUSH2 0x02ec
000002e5: CALLDATASIZE
000002e6: PUSH1 0x04
000002e8: PUSH2 0x2358
000002eb: JUMP
000002ec: JUMPDEST
000002ed: PUSH2 0x1964
000002f0: JUMP
000002f1: JUMPDEST
000002f2: PUSH1 0x00
000002f4: SLOAD
000002f5: PUSH1 0x40
000002f7: MLOAD
000002f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000030d: SWAP1
0000030e: SWAP2
0000030f: AND
00000310: DUP2
00000311: MSTORE
00000312: PUSH1 0x20
00000314: ADD
00000315: PUSH2 0x0276
00000318: JUMP
00000319: JUMPDEST
0000031a: PUSH2 0x0184
0000031d: PUSH2 0x0327
00000320: CALLDATASIZE
00000321: PUSH1 0x04
00000323: PUSH2 0x239e
00000326: JUMP
00000327: JUMPDEST
00000328: PUSH2 0x1b74
0000032b: JUMP
0000032c: JUMPDEST
0000032d: PUSH2 0x026a
00000330: PUSH2 0x033a
00000333: CALLDATASIZE
00000334: PUSH1 0x04
00000336: PUSH2 0x22c0
00000339: JUMP
0000033a: JUMPDEST
0000033b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000350: AND
00000351: PUSH1 0x00
00000353: SWAP1
00000354: DUP2
00000355: MSTORE
00000356: PUSH1 0x02
00000358: PUSH1 0x20
0000035a: MSTORE
0000035b: PUSH1 0x40
0000035d: SWAP1
0000035e: KECCAK256
0000035f: SLOAD
00000360: PUSH1 0xff
00000362: AND
00000363: SWAP1
00000364: JUMP
00000365: JUMPDEST
00000366: PUSH2 0x0184
00000369: PUSH2 0x0373
0000036c: CALLDATASIZE
0000036d: PUSH1 0x04
0000036f: PUSH2 0x22c0
00000372: JUMP
00000373: JUMPDEST
00000374: PUSH2 0x1b9a
00000377: JUMP
00000378: JUMPDEST
00000379: PUSH2 0x0184
0000037c: PUSH2 0x0386
0000037f: CALLDATASIZE
00000380: PUSH1 0x04
00000382: PUSH2 0x24cd
00000385: JUMP
00000386: JUMPDEST
00000387: PUSH2 0x1c9c
0000038a: JUMP
0000038b: JUMPDEST
0000038c: CALLER
0000038d: PUSH1 0x00
0000038f: SWAP1
00000390: DUP2
00000391: MSTORE
00000392: PUSH1 0x01
00000394: PUSH1 0x20
00000396: MSTORE
00000397: PUSH1 0x40
00000399: SWAP1
0000039a: KECCAK256
0000039b: SLOAD
0000039c: PUSH1 0xff
0000039e: AND
0000039f: PUSH2 0x0409
000003a2: JUMPI
000003a3: PUSH1 0x40
000003a5: MLOAD
000003a6: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000003c7: DUP2
000003c8: MSTORE
000003c9: PUSH1 0x20
000003cb: PUSH1 0x04
000003cd: DUP3
000003ce: ADD
000003cf: MSTORE
000003d0: PUSH1 0x06
000003d2: PUSH1 0x24
000003d4: DUP3
000003d5: ADD
000003d6: MSTORE
000003d7: PUSH32 0x46513637566a0000000000000000000000000000000000000000000000000000
000003f8: PUSH1 0x44
000003fa: DUP3
000003fb: ADD
000003fc: MSTORE
000003fd: PUSH1 0x64
000003ff: ADD
00000400: JUMPDEST
00000401: PUSH1 0x40
00000403: MLOAD
00000404: DUP1
00000405: SWAP2
00000406: SUB
00000407: SWAP1
00000408: REVERT
00000409: JUMPDEST
0000040a: DUP4
0000040b: PUSH1 0x00
0000040d: DUP5
0000040e: PUSH2 0x042e
00000411: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000426: DUP3
00000427: AND
00000428: DUP5
00000429: DUP8
0000042a: PUSH2 0x1e26
0000042d: JUMP
0000042e: JUMPDEST
0000042f: PUSH1 0x00
00000431: DUP1
00000432: DUP5
00000433: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000448: AND
00000449: PUSH4 0x0902f1ac
0000044e: PUSH1 0x40
00000450: MLOAD
00000451: DUP2
00000452: PUSH4 0xffffffff
00000457: AND
00000458: PUSH1 0xe0
0000045a: SHL
0000045b: DUP2
0000045c: MSTORE
0000045d: PUSH1 0x04
0000045f: ADD
00000460: PUSH1 0x60
00000462: PUSH1 0x40
00000464: MLOAD
00000465: DUP1
00000466: DUP4
00000467: SUB
00000468: DUP2
00000469: DUP7
0000046a: DUP1
0000046b: EXTCODESIZE
0000046c: ISZERO
0000046d: DUP1
0000046e: ISZERO
0000046f: PUSH2 0x0477
00000472: JUMPI
00000473: PUSH1 0x00
00000475: DUP1
00000476: REVERT
00000477: JUMPDEST
00000478: POP
00000479: GAS
0000047a: STATICCALL
0000047b: ISZERO
0000047c: DUP1
0000047d: ISZERO
0000047e: PUSH2 0x048b
00000481: JUMPI
00000482: RETURNDATASIZE
00000483: PUSH1 0x00
00000485: DUP1
00000486: RETURNDATACOPY
00000487: RETURNDATASIZE
00000488: PUSH1 0x00
0000048a: REVERT
0000048b: JUMPDEST
0000048c: POP
0000048d: POP
0000048e: POP
0000048f: POP
00000490: PUSH1 0x40
00000492: MLOAD
00000493: RETURNDATASIZE
00000494: PUSH1 0x1f
00000496: NOT
00000497: PUSH1 0x1f
00000499: DUP3
0000049a: ADD
0000049b: AND
0000049c: DUP3
0000049d: ADD
0000049e: DUP1
0000049f: PUSH1 0x40
000004a1: MSTORE
000004a2: POP
000004a3: DUP2
000004a4: ADD
000004a5: SWAP1
000004a6: PUSH2 0x04af
000004a9: SWAP2
000004aa: SWAP1
000004ab: PUSH2 0x25cc
000004ae: JUMP
000004af: JUMPDEST
000004b0: POP
000004b1: PUSH1 0x40
000004b3: MLOAD
000004b4: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
000004d5: DUP2
000004d6: MSTORE
000004d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004ec: DUP13
000004ed: DUP2
000004ee: AND
000004ef: PUSH1 0x04
000004f1: DUP4
000004f2: ADD
000004f3: MSTORE
000004f4: PUSH14 0xffffffffffffffffffffffffffff
00000503: SWAP4
00000504: DUP5
00000505: AND
00000506: SWAP6
00000507: POP
00000508: SWAP2
00000509: SWAP1
0000050a: SWAP3
0000050b: AND
0000050c: SWAP3
0000050d: POP
0000050e: DUP4
0000050f: SWAP2
00000510: SWAP1
00000511: DUP6
00000512: AND
00000513: SWAP1
00000514: PUSH4 0x70a08231
00000519: SWAP1
0000051a: PUSH1 0x24
0000051c: ADD
0000051d: PUSH1 0x20
0000051f: PUSH1 0x40
00000521: MLOAD
00000522: DUP1
00000523: DUP4
00000524: SUB
00000525: DUP2
00000526: DUP7
00000527: DUP1
00000528: EXTCODESIZE
00000529: ISZERO
0000052a: DUP1
0000052b: ISZERO
0000052c: PUSH2 0x0534
0000052f: JUMPI
00000530: PUSH1 0x00
00000532: DUP1
00000533: REVERT
00000534: JUMPDEST
00000535: POP
00000536: GAS
00000537: STATICCALL
00000538: ISZERO
00000539: DUP1
0000053a: ISZERO
0000053b: PUSH2 0x0548
0000053e: JUMPI
0000053f: RETURNDATASIZE
00000540: PUSH1 0x00
00000542: DUP1
00000543: RETURNDATACOPY
00000544: RETURNDATASIZE
00000545: PUSH1 0x00
00000547: REVERT
00000548: JUMPDEST
00000549: POP
0000054a: POP
0000054b: POP
0000054c: POP
0000054d: PUSH1 0x40
0000054f: MLOAD
00000550: RETURNDATASIZE
00000551: PUSH1 0x1f
00000553: NOT
00000554: PUSH1 0x1f
00000556: DUP3
00000557: ADD
00000558: AND
00000559: DUP3
0000055a: ADD
0000055b: DUP1
0000055c: PUSH1 0x40
0000055e: MSTORE
0000055f: POP
00000560: DUP2
00000561: ADD
00000562: SWAP1
00000563: PUSH2 0x056c
00000566: SWAP2
00000567: SWAP1
00000568: PUSH2 0x2611
0000056b: JUMP
0000056c: JUMPDEST
0000056d: PUSH2 0x0576
00000570: SWAP2
00000571: SWAP1
00000572: PUSH2 0x27bf
00000575: JUMP
00000576: JUMPDEST
00000577: SWAP4
00000578: POP
00000579: PUSH1 0x00
0000057b: PUSH2 0x0586
0000057e: DUP6
0000057f: PUSH2 0x03e5
00000582: PUSH2 0x2782
00000585: JUMP
00000586: JUMPDEST
00000587: SWAP1
00000588: POP
00000589: PUSH1 0x00
0000058b: PUSH2 0x0594
0000058e: DUP4
0000058f: DUP4
00000590: PUSH2 0x2782
00000593: JUMP
00000594: JUMPDEST
00000595: SWAP1
00000596: POP
00000597: PUSH1 0x00
00000599: DUP3
0000059a: PUSH2 0x05a5
0000059d: DUP7
0000059e: PUSH2 0x03e8
000005a1: PUSH2 0x2782
000005a4: JUMP
000005a5: JUMPDEST
000005a6: PUSH2 0x05af
000005a9: SWAP2
000005aa: SWAP1
000005ab: PUSH2 0x272f
000005ae: JUMP
000005af: JUMPDEST
000005b0: SWAP1
000005b1: POP
000005b2: PUSH1 0x00
000005b4: PUSH2 0x05bd
000005b7: DUP3
000005b8: DUP5
000005b9: PUSH2 0x2747
000005bc: JUMP
000005bd: JUMPDEST
000005be: SWAP1
000005bf: POP
000005c0: DUP10
000005c1: DUP2
000005c2: LT
000005c3: ISZERO
000005c4: PUSH2 0x0629
000005c7: JUMPI
000005c8: PUSH1 0x40
000005ca: MLOAD
000005cb: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000005ec: DUP2
000005ed: MSTORE
000005ee: PUSH1 0x20
000005f0: PUSH1 0x04
000005f2: DUP3
000005f3: ADD
000005f4: MSTORE
000005f5: PUSH1 0x06
000005f7: PUSH1 0x24
000005f9: DUP3
000005fa: ADD
000005fb: MSTORE
000005fc: PUSH32 0x766e536430310000000000000000000000000000000000000000000000000000
0000061d: PUSH1 0x44
0000061f: DUP3
00000620: ADD
00000621: MSTORE
00000622: PUSH1 0x64
00000624: ADD
00000625: PUSH2 0x0400
00000628: JUMP
00000629: JUMPDEST
0000062a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000063f: DUP10
00000640: AND
00000641: PUSH4 0x022c0d9f
00000646: PUSH1 0x00
00000648: DUP4
00000649: ADDRESS
0000064a: DUP3
0000064b: JUMPDEST
0000064c: PUSH1 0x40
0000064e: MLOAD
0000064f: SWAP1
00000650: DUP1
00000651: DUP3
00000652: MSTORE
00000653: DUP1
00000654: PUSH1 0x1f
00000656: ADD
00000657: PUSH1 0x1f
00000659: NOT
0000065a: AND
0000065b: PUSH1 0x20
0000065d: ADD
0000065e: DUP3
0000065f: ADD
00000660: PUSH1 0x40
00000662: MSTORE
00000663: DUP1
00000664: ISZERO
00000665: PUSH2 0x0675
00000668: JUMPI
00000669: PUSH1 0x20
0000066b: DUP3
0000066c: ADD
0000066d: DUP2
0000066e: DUP1
0000066f: CALLDATASIZE
00000670: DUP4
00000671: CALLDATACOPY
00000672: ADD
00000673: SWAP1
00000674: POP
00000675: JUMPDEST
00000676: POP
00000677: PUSH1 0x40
00000679: MLOAD
0000067a: DUP6
0000067b: PUSH4 0xffffffff
00000680: AND
00000681: PUSH1 0xe0
00000683: SHL
00000684: DUP2
00000685: MSTORE
00000686: PUSH1 0x04
00000688: ADD
00000689: PUSH2 0x0695
0000068c: SWAP5
0000068d: SWAP4
0000068e: SWAP3
0000068f: SWAP2
00000690: SWAP1
00000691: PUSH2 0x26d7
00000694: JUMP
00000695: JUMPDEST
00000696: PUSH1 0x00
00000698: PUSH1 0x40
0000069a: MLOAD
0000069b: DUP1
0000069c: DUP4
0000069d: SUB
0000069e: DUP2
0000069f: PUSH1 0x00
000006a1: DUP8
000006a2: DUP1
000006a3: EXTCODESIZE
000006a4: ISZERO
000006a5: DUP1
000006a6: ISZERO
000006a7: PUSH2 0x06af
000006aa: JUMPI
000006ab: PUSH1 0x00
000006ad: DUP1
000006ae: REVERT
000006af: JUMPDEST
000006b0: POP
000006b1: GAS
000006b2: CALL
000006b3: ISZERO
000006b4: DUP1
000006b5: ISZERO
000006b6: PUSH2 0x06c3
000006b9: JUMPI
000006ba: RETURNDATASIZE
000006bb: PUSH1 0x00
000006bd: DUP1
000006be: RETURNDATACOPY
000006bf: RETURNDATASIZE
000006c0: PUSH1 0x00
000006c2: REVERT
000006c3: JUMPDEST
000006c4: POP
000006c5: POP
000006c6: POP
000006c7: POP
000006c8: POP
000006c9: POP
000006ca: POP
000006cb: POP
000006cc: POP
000006cd: POP
000006ce: POP
000006cf: POP
000006d0: POP
000006d1: POP
000006d2: POP
000006d3: POP
000006d4: POP
000006d5: JUMP
000006d6: JUMPDEST
000006d7: PUSH1 0x00
000006d9: SLOAD
000006da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006ef: AND
000006f0: CALLER
000006f1: EQ
000006f2: DUP1
000006f3: PUSH2 0x070b
000006f6: JUMPI
000006f7: POP
000006f8: CALLER
000006f9: PUSH1 0x00
000006fb: SWAP1
000006fc: DUP2
000006fd: MSTORE
000006fe: PUSH1 0x02
00000700: PUSH1 0x20
00000702: MSTORE
00000703: PUSH1 0x40
00000705: SWAP1
00000706: KECCAK256
00000707: SLOAD
00000708: PUSH1 0xff
0000070a: AND
0000070b: JUMPDEST
0000070c: PUSH2 0x0771
0000070f: JUMPI
00000710: PUSH1 0x40
00000712: MLOAD
00000713: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000734: DUP2
00000735: MSTORE
00000736: PUSH1 0x20
00000738: PUSH1 0x04
0000073a: DUP3
0000073b: ADD
0000073c: MSTORE
0000073d: PUSH1 0x06
0000073f: PUSH1 0x24
00000741: DUP3
00000742: ADD
00000743: MSTORE
00000744: PUSH32 0x674a356544390000000000000000000000000000000000000000000000000000
00000765: PUSH1 0x44
00000767: DUP3
00000768: ADD
00000769: MSTORE
0000076a: PUSH1 0x64
0000076c: ADD
0000076d: PUSH2 0x0400
00000770: JUMP
00000771: JUMPDEST
00000772: PUSH1 0x00
00000774: SLOAD
00000775: DUP2
00000776: SWAP1
00000777: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000078c: DUP1
0000078d: DUP4
0000078e: AND
0000078f: SWAP2
00000790: AND
00000791: EQ
00000792: DUP1
00000793: PUSH2 0x07c1
00000796: JUMPI
00000797: POP
00000798: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007ad: DUP2
000007ae: AND
000007af: PUSH1 0x00
000007b1: SWAP1
000007b2: DUP2
000007b3: MSTORE
000007b4: PUSH1 0x03
000007b6: PUSH1 0x20
000007b8: MSTORE
000007b9: PUSH1 0x40
000007bb: SWAP1
000007bc: KECCAK256
000007bd: SLOAD
000007be: PUSH1 0xff
000007c0: AND
000007c1: JUMPDEST
000007c2: PUSH2 0x0827
000007c5: JUMPI
000007c6: PUSH1 0x40
000007c8: MLOAD
000007c9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000007ea: DUP2
000007eb: MSTORE
000007ec: PUSH1 0x20
000007ee: PUSH1 0x04
000007f0: DUP3
000007f1: ADD
000007f2: MSTORE
000007f3: PUSH1 0x06
000007f5: PUSH1 0x24
000007f7: DUP3
000007f8: ADD
000007f9: MSTORE
000007fa: PUSH32 0x36316f4946730000000000000000000000000000000000000000000000000000
0000081b: PUSH1 0x44
0000081d: DUP3
0000081e: ADD
0000081f: MSTORE
00000820: PUSH1 0x64
00000822: ADD
00000823: PUSH2 0x0400
00000826: JUMP
00000827: JUMPDEST
00000828: PUSH2 0x0848
0000082b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000840: DUP6
00000841: AND
00000842: DUP4
00000843: DUP6
00000844: PUSH2 0x1e26
00000847: JUMP
00000848: JUMPDEST
00000849: POP
0000084a: POP
0000084b: POP
0000084c: POP
0000084d: JUMP
0000084e: JUMPDEST
0000084f: PUSH1 0x00
00000851: SLOAD
00000852: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000867: AND
00000868: CALLER
00000869: EQ
0000086a: PUSH2 0x08cf
0000086d: JUMPI
0000086e: PUSH1 0x40
00000870: MLOAD
00000871: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000892: DUP2
00000893: MSTORE
00000894: PUSH1 0x20
00000896: PUSH1 0x04
00000898: DUP3
00000899: ADD
0000089a: MSTORE
0000089b: PUSH1 0x06
0000089d: PUSH1 0x24
0000089f: DUP3
000008a0: ADD
000008a1: MSTORE
000008a2: PUSH32 0x7a33325468440000000000000000000000000000000000000000000000000000
000008c3: PUSH1 0x44
000008c5: DUP3
000008c6: ADD
000008c7: MSTORE
000008c8: PUSH1 0x64
000008ca: ADD
000008cb: PUSH2 0x0400
000008ce: JUMP
000008cf: JUMPDEST
000008d0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008e5: DUP2
000008e6: AND
000008e7: PUSH1 0x00
000008e9: DUP2
000008ea: DUP2
000008eb: MSTORE
000008ec: PUSH1 0x01
000008ee: PUSH1 0x20
000008f0: SWAP1
000008f1: DUP2
000008f2: MSTORE
000008f3: PUSH1 0x40
000008f5: DUP1
000008f6: DUP4
000008f7: KECCAK256
000008f8: DUP1
000008f9: SLOAD
000008fa: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
0000091b: AND
0000091c: SWAP1
0000091d: SSTORE
0000091e: DUP1
0000091f: MLOAD
00000920: SWAP4
00000921: DUP5
00000922: MSTORE
00000923: SWAP1
00000924: DUP4
00000925: ADD
00000926: SWAP2
00000927: SWAP1
00000928: SWAP2
00000929: MSTORE
0000092a: PUSH32 0xe62434620f54c008068249f571016a0f7df8ccc9221d147292beb68c81d90650
0000094b: SWAP2
0000094c: ADD
0000094d: JUMPDEST
0000094e: PUSH1 0x40
00000950: MLOAD
00000951: DUP1
00000952: SWAP2
00000953: SUB
00000954: SWAP1
00000955: LOG1
00000956: POP
00000957: JUMP
00000958: JUMPDEST
00000959: CALLER
0000095a: PUSH1 0x00
0000095c: SWAP1
0000095d: DUP2
0000095e: MSTORE
0000095f: PUSH1 0x01
00000961: PUSH1 0x20
00000963: MSTORE
00000964: PUSH1 0x40
00000966: SWAP1
00000967: KECCAK256
00000968: SLOAD
00000969: PUSH1 0xff
0000096b: AND
0000096c: PUSH2 0x09d1
0000096f: JUMPI
00000970: PUSH1 0x40
00000972: MLOAD
00000973: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000994: DUP2
00000995: MSTORE
00000996: PUSH1 0x20
00000998: PUSH1 0x04
0000099a: DUP3
0000099b: ADD
0000099c: MSTORE
0000099d: PUSH1 0x06
0000099f: PUSH1 0x24
000009a1: DUP3
000009a2: ADD
000009a3: MSTORE
000009a4: PUSH32 0x46513637566a0000000000000000000000000000000000000000000000000000
000009c5: PUSH1 0x44
000009c7: DUP3
000009c8: ADD
000009c9: MSTORE
000009ca: PUSH1 0x64
000009cc: ADD
000009cd: PUSH2 0x0400
000009d0: JUMP
000009d1: JUMPDEST
000009d2: PUSH1 0x40
000009d4: DUP1
000009d5: MLOAD
000009d6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009eb: DUP1
000009ec: DUP9
000009ed: AND
000009ee: PUSH1 0x20
000009f0: DUP4
000009f1: ADD
000009f2: MSTORE
000009f3: DUP9
000009f4: AND
000009f5: SWAP2
000009f6: DUP2
000009f7: ADD
000009f8: SWAP2
000009f9: SWAP1
000009fa: SWAP2
000009fb: MSTORE
000009fc: PUSH1 0x60
000009fe: DUP2
000009ff: ADD
00000a00: DUP6
00000a01: SWAP1
00000a02: MSTORE
00000a03: DUP8
00000a04: SWAP1
00000a05: PUSH1 0x00
00000a07: SWAP1
00000a08: PUSH1 0x80
00000a0a: ADD
00000a0b: PUSH1 0x40
00000a0d: DUP1
00000a0e: MLOAD
00000a0f: DUP1
00000a10: DUP4
00000a11: SUB
00000a12: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00000a33: ADD
00000a34: DUP2
00000a35: MSTORE
00000a36: DUP3
00000a37: DUP3
00000a38: MSTORE
00000a39: DUP1
00000a3a: MLOAD
00000a3b: PUSH1 0x20
00000a3d: SWAP2
00000a3e: DUP3
00000a3f: ADD
00000a40: KECCAK256
00000a41: DUP4
00000a42: DUP4
00000a43: ADD
00000a44: SWAP1
00000a45: SWAP3
00000a46: MSTORE
00000a47: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a5c: DUP12
00000a5d: DUP2
00000a5e: AND
00000a5f: DUP5
00000a60: MSTORE
00000a61: SWAP1
00000a62: DUP4
00000a63: ADD
00000a64: DUP3
00000a65: SWAP1
00000a66: MSTORE
00000a67: SWAP1
00000a68: SWAP3
00000a69: POP
00000a6a: PUSH1 0x00
00000a6c: SWAP1
00000a6d: DUP5
00000a6e: AND
00000a6f: PUSH4 0x128acb08
00000a74: ADDRESS
00000a75: DUP4
00000a76: PUSH2 0x0a7e
00000a79: DUP12
00000a7a: PUSH2 0x1eff
00000a7d: JUMP
00000a7e: JUMPDEST
00000a7f: DUP10
00000a80: DUP8
00000a81: PUSH1 0x40
00000a83: MLOAD
00000a84: PUSH1 0x20
00000a86: ADD
00000a87: PUSH2 0x0ab8
00000a8a: SWAP2
00000a8b: SWAP1
00000a8c: DUP2
00000a8d: MLOAD
00000a8e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000aa3: AND
00000aa4: DUP2
00000aa5: MSTORE
00000aa6: PUSH1 0x20
00000aa8: SWAP2
00000aa9: DUP3
00000aaa: ADD
00000aab: MLOAD
00000aac: SWAP2
00000aad: DUP2
00000aae: ADD
00000aaf: SWAP2
00000ab0: SWAP1
00000ab1: SWAP2
00000ab2: MSTORE
00000ab3: PUSH1 0x40
00000ab5: ADD
00000ab6: SWAP1
00000ab7: JUMP
00000ab8: JUMPDEST
00000ab9: PUSH1 0x40
00000abb: MLOAD
00000abc: PUSH1 0x20
00000abe: DUP2
00000abf: DUP4
00000ac0: SUB
00000ac1: SUB
00000ac2: DUP2
00000ac3: MSTORE
00000ac4: SWAP1
00000ac5: PUSH1 0x40
00000ac7: MSTORE
00000ac8: PUSH1 0x40
00000aca: MLOAD
00000acb: DUP7
00000acc: PUSH4 0xffffffff
00000ad1: AND
00000ad2: PUSH1 0xe0
00000ad4: SHL
00000ad5: DUP2
00000ad6: MSTORE
00000ad7: PUSH1 0x04
00000ad9: ADD
00000ada: PUSH2 0x0ae7
00000add: SWAP6
00000ade: SWAP5
00000adf: SWAP4
00000ae0: SWAP3
00000ae1: SWAP2
00000ae2: SWAP1
00000ae3: PUSH2 0x2690
00000ae6: JUMP
00000ae7: JUMPDEST
00000ae8: PUSH1 0x40
00000aea: DUP1
00000aeb: MLOAD
00000aec: DUP1
00000aed: DUP4
00000aee: SUB
00000aef: DUP2
00000af0: PUSH1 0x00
00000af2: DUP8
00000af3: DUP1
00000af4: EXTCODESIZE
00000af5: ISZERO
00000af6: DUP1
00000af7: ISZERO
00000af8: PUSH2 0x0b00
00000afb: JUMPI
00000afc: PUSH1 0x00
00000afe: DUP1
00000aff: REVERT
00000b00: JUMPDEST
00000b01: POP
00000b02: GAS
00000b03: CALL
00000b04: ISZERO
00000b05: DUP1
00000b06: ISZERO
00000b07: PUSH2 0x0b14
00000b0a: JUMPI
00000b0b: RETURNDATASIZE
00000b0c: PUSH1 0x00
00000b0e: DUP1
00000b0f: RETURNDATACOPY
00000b10: RETURNDATASIZE
00000b11: PUSH1 0x00
00000b13: REVERT
00000b14: JUMPDEST
00000b15: POP
00000b16: POP
00000b17: POP
00000b18: POP
00000b19: PUSH1 0x40
00000b1b: MLOAD
00000b1c: RETURNDATASIZE
00000b1d: PUSH1 0x1f
00000b1f: NOT
00000b20: PUSH1 0x1f
00000b22: DUP3
00000b23: ADD
00000b24: AND
00000b25: DUP3
00000b26: ADD
00000b27: DUP1
00000b28: PUSH1 0x40
00000b2a: MSTORE
00000b2b: POP
00000b2c: DUP2
00000b2d: ADD
00000b2e: SWAP1
00000b2f: PUSH2 0x0b38
00000b32: SWAP2
00000b33: SWAP1
00000b34: PUSH2 0x24a9
00000b37: JUMP
00000b38: JUMPDEST
00000b39: POP
00000b3a: SWAP1
00000b3b: POP
00000b3c: DUP6
00000b3d: PUSH2 0x0b45
00000b40: DUP3
00000b41: PUSH2 0x283b
00000b44: JUMP
00000b45: JUMPDEST
00000b46: LT
00000b47: ISZERO
00000b48: PUSH2 0x0bad
00000b4b: JUMPI
00000b4c: PUSH1 0x40
00000b4e: MLOAD
00000b4f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000b70: DUP2
00000b71: MSTORE
00000b72: PUSH1 0x20
00000b74: PUSH1 0x04
00000b76: DUP3
00000b77: ADD
00000b78: MSTORE
00000b79: PUSH1 0x06
00000b7b: PUSH1 0x24
00000b7d: DUP3
00000b7e: ADD
00000b7f: MSTORE
00000b80: PUSH32 0x3574443844500000000000000000000000000000000000000000000000000000
00000ba1: PUSH1 0x44
00000ba3: DUP3
00000ba4: ADD
00000ba5: MSTORE
00000ba6: PUSH1 0x64
00000ba8: ADD
00000ba9: PUSH2 0x0400
00000bac: JUMP
00000bad: JUMPDEST
00000bae: POP
00000baf: POP
00000bb0: POP
00000bb1: POP
00000bb2: POP
00000bb3: POP
00000bb4: POP
00000bb5: POP
00000bb6: POP
00000bb7: POP
00000bb8: POP
00000bb9: JUMP
00000bba: JUMPDEST
00000bbb: CALLER
00000bbc: PUSH1 0x00
00000bbe: SWAP1
00000bbf: DUP2
00000bc0: MSTORE
00000bc1: PUSH1 0x01
00000bc3: PUSH1 0x20
00000bc5: MSTORE
00000bc6: PUSH1 0x40
00000bc8: SWAP1
00000bc9: KECCAK256
00000bca: SLOAD
00000bcb: PUSH1 0xff
00000bcd: AND
00000bce: PUSH2 0x0c33
00000bd1: JUMPI
00000bd2: PUSH1 0x40
00000bd4: MLOAD
00000bd5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000bf6: DUP2
00000bf7: MSTORE
00000bf8: PUSH1 0x20
00000bfa: PUSH1 0x04
00000bfc: DUP3
00000bfd: ADD
00000bfe: MSTORE
00000bff: PUSH1 0x06
00000c01: PUSH1 0x24
00000c03: DUP3
00000c04: ADD
00000c05: MSTORE
00000c06: PUSH32 0x46513637566a0000000000000000000000000000000000000000000000000000
00000c27: PUSH1 0x44
00000c29: DUP3
00000c2a: ADD
00000c2b: MSTORE
00000c2c: PUSH1 0x64
00000c2e: ADD
00000c2f: PUSH2 0x0400
00000c32: JUMP
00000c33: JUMPDEST
00000c34: PUSH1 0x40
00000c36: DUP1
00000c37: MLOAD
00000c38: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c4d: DUP9
00000c4e: DUP2
00000c4f: AND
00000c50: PUSH1 0x20
00000c52: DUP1
00000c53: DUP5
00000c54: ADD
00000c55: DUP3
00000c56: SWAP1
00000c57: MSTORE
00000c58: DUP10
00000c59: DUP4
00000c5a: AND
00000c5b: DUP5
00000c5c: DUP7
00000c5d: ADD
00000c5e: MSTORE
00000c5f: PUSH1 0x60
00000c61: DUP1
00000c62: DUP6
00000c63: ADD
00000c64: DUP11
00000c65: SWAP1
00000c66: MSTORE
00000c67: DUP6
00000c68: MLOAD
00000c69: DUP1
00000c6a: DUP7
00000c6b: SUB
00000c6c: SWAP1
00000c6d: SWAP2
00000c6e: ADD
00000c6f: DUP2
00000c70: MSTORE
00000c71: PUSH1 0x80
00000c73: DUP6
00000c74: ADD
00000c75: DUP1
00000c76: DUP8
00000c77: MSTORE
00000c78: DUP2
00000c79: MLOAD
00000c7a: SWAP2
00000c7b: SWAP1
00000c7c: SWAP3
00000c7d: ADD
00000c7e: KECCAK256
00000c7f: PUSH1 0xc0
00000c81: DUP6
00000c82: ADD
00000c83: SWAP1
00000c84: SWAP6
00000c85: MSTORE
00000c86: SWAP1
00000c87: DUP2
00000c88: MSTORE
00000c89: PUSH1 0xa0
00000c8b: SWAP1
00000c8c: SWAP3
00000c8d: ADD
00000c8e: DUP4
00000c8f: SWAP1
00000c90: MSTORE
00000c91: DUP10
00000c92: SWAP3
00000c93: SWAP2
00000c94: SWAP1
00000c95: PUSH1 0x00
00000c97: SWAP1
00000c98: DUP5
00000c99: AND
00000c9a: PUSH4 0x128acb08
00000c9f: ADDRESS
00000ca0: PUSH1 0x01
00000ca2: PUSH2 0x0caa
00000ca5: DUP12
00000ca6: PUSH2 0x1eff
00000ca9: JUMP
00000caa: JUMPDEST
00000cab: DUP10
00000cac: DUP8
00000cad: PUSH1 0x40
00000caf: MLOAD
00000cb0: PUSH1 0x20
00000cb2: ADD
00000cb3: PUSH2 0x0ce4
00000cb6: SWAP2
00000cb7: SWAP1
00000cb8: DUP2
00000cb9: MLOAD
00000cba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ccf: AND
00000cd0: DUP2
00000cd1: MSTORE
00000cd2: PUSH1 0x20
00000cd4: SWAP2
00000cd5: DUP3
00000cd6: ADD
00000cd7: MLOAD
00000cd8: SWAP2
00000cd9: DUP2
00000cda: ADD
00000cdb: SWAP2
00000cdc: SWAP1
00000cdd: SWAP2
00000cde: MSTORE
00000cdf: PUSH1 0x40
00000ce1: ADD
00000ce2: SWAP1
00000ce3: JUMP
00000ce4: JUMPDEST
00000ce5: PUSH1 0x40
00000ce7: MLOAD
00000ce8: PUSH1 0x20
00000cea: DUP2
00000ceb: DUP4
00000cec: SUB
00000ced: SUB
00000cee: DUP2
00000cef: MSTORE
00000cf0: SWAP1
00000cf1: PUSH1 0x40
00000cf3: MSTORE
00000cf4: PUSH1 0x40
00000cf6: MLOAD
00000cf7: DUP7
00000cf8: PUSH4 0xffffffff
00000cfd: AND
00000cfe: PUSH1 0xe0
00000d00: SHL
00000d01: DUP2
00000d02: MSTORE
00000d03: PUSH1 0x04
00000d05: ADD
00000d06: PUSH2 0x0d13
00000d09: SWAP6
00000d0a: SWAP5
00000d0b: SWAP4
00000d0c: SWAP3
00000d0d: SWAP2
00000d0e: SWAP1
00000d0f: PUSH2 0x2690
00000d12: JUMP
00000d13: JUMPDEST
00000d14: PUSH1 0x40
00000d16: DUP1
00000d17: MLOAD
00000d18: DUP1
00000d19: DUP4
00000d1a: SUB
00000d1b: DUP2
00000d1c: PUSH1 0x00
00000d1e: DUP8
00000d1f: DUP1
00000d20: EXTCODESIZE
00000d21: ISZERO
00000d22: DUP1
00000d23: ISZERO
00000d24: PUSH2 0x0d2c
00000d27: JUMPI
00000d28: PUSH1 0x00
00000d2a: DUP1
00000d2b: REVERT
00000d2c: JUMPDEST
00000d2d: POP
00000d2e: GAS
00000d2f: CALL
00000d30: ISZERO
00000d31: DUP1
00000d32: ISZERO
00000d33: PUSH2 0x0d40
00000d36: JUMPI
00000d37: RETURNDATASIZE
00000d38: PUSH1 0x00
00000d3a: DUP1
00000d3b: RETURNDATACOPY
00000d3c: RETURNDATASIZE
00000d3d: PUSH1 0x00
00000d3f: REVERT
00000d40: JUMPDEST
00000d41: POP
00000d42: POP
00000d43: POP
00000d44: POP
00000d45: PUSH1 0x40
00000d47: MLOAD
00000d48: RETURNDATASIZE
00000d49: PUSH1 0x1f
00000d4b: NOT
00000d4c: PUSH1 0x1f
00000d4e: DUP3
00000d4f: ADD
00000d50: AND
00000d51: DUP3
00000d52: ADD
00000d53: DUP1
00000d54: PUSH1 0x40
00000d56: MSTORE
00000d57: POP
00000d58: DUP2
00000d59: ADD
00000d5a: SWAP1
00000d5b: PUSH2 0x0d64
00000d5e: SWAP2
00000d5f: SWAP1
00000d60: PUSH2 0x24a9
00000d63: JUMP
00000d64: JUMPDEST
00000d65: SWAP2
00000d66: POP
00000d67: POP
00000d68: DUP6
00000d69: DUP2
00000d6a: PUSH2 0x0b45
00000d6d: SWAP1
00000d6e: PUSH2 0x283b
00000d71: JUMP
00000d72: JUMPDEST
00000d73: CALLER
00000d74: PUSH1 0x00
00000d76: SWAP1
00000d77: DUP2
00000d78: MSTORE
00000d79: PUSH1 0x01
00000d7b: PUSH1 0x20
00000d7d: MSTORE
00000d7e: PUSH1 0x40
00000d80: SWAP1
00000d81: KECCAK256
00000d82: SLOAD
00000d83: PUSH1 0xff
00000d85: AND
00000d86: PUSH2 0x0deb
00000d89: JUMPI
00000d8a: PUSH1 0x40
00000d8c: MLOAD
00000d8d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000dae: DUP2
00000daf: MSTORE
00000db0: PUSH1 0x20
00000db2: PUSH1 0x04
00000db4: DUP3
00000db5: ADD
00000db6: MSTORE
00000db7: PUSH1 0x06
00000db9: PUSH1 0x24
00000dbb: DUP3
00000dbc: ADD
00000dbd: MSTORE
00000dbe: PUSH32 0x46513637566a0000000000000000000000000000000000000000000000000000
00000ddf: PUSH1 0x44
00000de1: DUP3
00000de2: ADD
00000de3: MSTORE
00000de4: PUSH1 0x64
00000de6: ADD
00000de7: PUSH2 0x0400
00000dea: JUMP
00000deb: JUMPDEST
00000dec: PUSH1 0x00
00000dee: DUP5
00000def: SWAP1
00000df0: POP
00000df1: PUSH1 0x00
00000df3: DUP1
00000df4: DUP3
00000df5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e0a: AND
00000e0b: PUSH4 0x0902f1ac
00000e10: PUSH1 0x40
00000e12: MLOAD
00000e13: DUP2
00000e14: PUSH4 0xffffffff
00000e19: AND
00000e1a: PUSH1 0xe0
00000e1c: SHL
00000e1d: DUP2
00000e1e: MSTORE
00000e1f: PUSH1 0x04
00000e21: ADD
00000e22: PUSH1 0x60
00000e24: PUSH1 0x40
00000e26: MLOAD
00000e27: DUP1
00000e28: DUP4
00000e29: SUB
00000e2a: DUP2
00000e2b: DUP7
00000e2c: DUP1
00000e2d: EXTCODESIZE
00000e2e: ISZERO
00000e2f: DUP1
00000e30: ISZERO
00000e31: PUSH2 0x0e39
00000e34: JUMPI
00000e35: PUSH1 0x00
00000e37: DUP1
00000e38: REVERT
00000e39: JUMPDEST
00000e3a: POP
00000e3b: GAS
00000e3c: STATICCALL
00000e3d: ISZERO
00000e3e: DUP1
00000e3f: ISZERO
00000e40: PUSH2 0x0e4d
00000e43: JUMPI
00000e44: RETURNDATASIZE
00000e45: PUSH1 0x00
00000e47: DUP1
00000e48: RETURNDATACOPY
00000e49: RETURNDATASIZE
00000e4a: PUSH1 0x00
00000e4c: REVERT
00000e4d: JUMPDEST
00000e4e: POP
00000e4f: POP
00000e50: POP
00000e51: POP
00000e52: PUSH1 0x40
00000e54: MLOAD
00000e55: RETURNDATASIZE
00000e56: PUSH1 0x1f
00000e58: NOT
00000e59: PUSH1 0x1f
00000e5b: DUP3
00000e5c: ADD
00000e5d: AND
00000e5e: DUP3
00000e5f: ADD
00000e60: DUP1
00000e61: PUSH1 0x40
00000e63: MSTORE
00000e64: POP
00000e65: DUP2
00000e66: ADD
00000e67: SWAP1
00000e68: PUSH2 0x0e71
00000e6b: SWAP2
00000e6c: SWAP1
00000e6d: PUSH2 0x25cc
00000e70: JUMP
00000e71: JUMPDEST
00000e72: POP
00000e73: PUSH14 0xffffffffffffffffffffffffffff
00000e82: SWAP2
00000e83: DUP3
00000e84: AND
00000e85: SWAP4
00000e86: POP
00000e87: AND
00000e88: SWAP1
00000e89: POP
00000e8a: PUSH1 0x00
00000e8c: PUSH2 0x0e97
00000e8f: DUP7
00000e90: PUSH2 0x03e5
00000e93: PUSH2 0x2782
00000e96: JUMP
00000e97: JUMPDEST
00000e98: SWAP1
00000e99: POP
00000e9a: PUSH1 0x00
00000e9c: PUSH2 0x0ea5
00000e9f: DUP4
00000ea0: DUP4
00000ea1: PUSH2 0x2782
00000ea4: JUMP
00000ea5: JUMPDEST
00000ea6: SWAP1
00000ea7: POP
00000ea8: PUSH1 0x00
00000eaa: DUP3
00000eab: PUSH2 0x0eb6
00000eae: DUP7
00000eaf: PUSH2 0x03e8
00000eb2: PUSH2 0x2782
00000eb5: JUMP
00000eb6: JUMPDEST
00000eb7: PUSH2 0x0ec0
00000eba: SWAP2
00000ebb: SWAP1
00000ebc: PUSH2 0x272f
00000ebf: JUMP
00000ec0: JUMPDEST
00000ec1: SWAP1
00000ec2: POP
00000ec3: PUSH1 0x00
00000ec5: PUSH2 0x0ece
00000ec8: DUP3
00000ec9: DUP5
00000eca: PUSH2 0x2747
00000ecd: JUMP
00000ece: JUMPDEST
00000ecf: SWAP1
00000ed0: POP
00000ed1: DUP8
00000ed2: DUP2
00000ed3: LT
00000ed4: ISZERO
00000ed5: PUSH2 0x0f3a
00000ed8: JUMPI
00000ed9: PUSH1 0x40
00000edb: MLOAD
00000edc: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000efd: DUP2
00000efe: MSTORE
00000eff: PUSH1 0x20
00000f01: PUSH1 0x04
00000f03: DUP3
00000f04: ADD
00000f05: MSTORE
00000f06: PUSH1 0x06
00000f08: PUSH1 0x24
00000f0a: DUP3
00000f0b: ADD
00000f0c: MSTORE
00000f0d: PUSH32 0x766e536430310000000000000000000000000000000000000000000000000000
00000f2e: PUSH1 0x44
00000f30: DUP3
00000f31: ADD
00000f32: MSTORE
00000f33: PUSH1 0x64
00000f35: ADD
00000f36: PUSH2 0x0400
00000f39: JUMP
00000f3a: JUMPDEST
00000f3b: DUP10
00000f3c: PUSH2 0x0f5c
00000f3f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f54: DUP3
00000f55: AND
00000f56: DUP14
00000f57: DUP13
00000f58: PUSH2 0x1e26
00000f5b: JUMP
00000f5c: JUMPDEST
00000f5d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f72: DUP9
00000f73: AND
00000f74: PUSH4 0x022c0d9f
00000f79: PUSH1 0x00
00000f7b: DUP5
00000f7c: ADDRESS
00000f7d: DUP3
00000f7e: JUMPDEST
00000f7f: PUSH1 0x40
00000f81: MLOAD
00000f82: SWAP1
00000f83: DUP1
00000f84: DUP3
00000f85: MSTORE
00000f86: DUP1
00000f87: PUSH1 0x1f
00000f89: ADD
00000f8a: PUSH1 0x1f
00000f8c: NOT
00000f8d: AND
00000f8e: PUSH1 0x20
00000f90: ADD
00000f91: DUP3
00000f92: ADD
00000f93: PUSH1 0x40
00000f95: MSTORE
00000f96: DUP1
00000f97: ISZERO
00000f98: PUSH2 0x0fa8
00000f9b: JUMPI
00000f9c: PUSH1 0x20
00000f9e: DUP3
00000f9f: ADD
00000fa0: DUP2
00000fa1: DUP1
00000fa2: CALLDATASIZE
00000fa3: DUP4
00000fa4: CALLDATACOPY
00000fa5: ADD
00000fa6: SWAP1
00000fa7: POP
00000fa8: JUMPDEST
00000fa9: POP
00000faa: PUSH1 0x40
00000fac: MLOAD
00000fad: DUP6
00000fae: PUSH4 0xffffffff
00000fb3: AND
00000fb4: PUSH1 0xe0
00000fb6: SHL
00000fb7: DUP2
00000fb8: MSTORE
00000fb9: PUSH1 0x04
00000fbb: ADD
00000fbc: PUSH2 0x0fc8
00000fbf: SWAP5
00000fc0: SWAP4
00000fc1: SWAP3
00000fc2: SWAP2
00000fc3: SWAP1
00000fc4: PUSH2 0x26d7
00000fc7: JUMP
00000fc8: JUMPDEST
00000fc9: PUSH1 0x00
00000fcb: PUSH1 0x40
00000fcd: MLOAD
00000fce: DUP1
00000fcf: DUP4
00000fd0: SUB
00000fd1: DUP2
00000fd2: PUSH1 0x00
00000fd4: DUP8
00000fd5: DUP1
00000fd6: EXTCODESIZE
00000fd7: ISZERO
00000fd8: DUP1
00000fd9: ISZERO
00000fda: PUSH2 0x0fe2
00000fdd: JUMPI
00000fde: PUSH1 0x00
00000fe0: DUP1
00000fe1: REVERT
00000fe2: JUMPDEST
00000fe3: POP
00000fe4: GAS
00000fe5: CALL
00000fe6: ISZERO
00000fe7: DUP1
00000fe8: ISZERO
00000fe9: PUSH2 0x0ff6
00000fec: JUMPI
00000fed: RETURNDATASIZE
00000fee: PUSH1 0x00
00000ff0: DUP1
00000ff1: RETURNDATACOPY
00000ff2: RETURNDATASIZE
00000ff3: PUSH1 0x00
00000ff5: REVERT
00000ff6: JUMPDEST
00000ff7: POP
00000ff8: POP
00000ff9: POP
00000ffa: POP
00000ffb: POP
00000ffc: POP
00000ffd: POP
00000ffe: POP
00000fff: POP
00001000: POP
00001001: POP
00001002: POP
00001003: POP
00001004: POP
00001005: POP
00001006: POP
00001007: JUMP
00001008: JUMPDEST
00001009: PUSH1 0x00
0000100b: SLOAD
0000100c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001021: AND
00001022: CALLER
00001023: EQ
00001024: PUSH2 0x1089
00001027: JUMPI
00001028: PUSH1 0x40
0000102a: MLOAD
0000102b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000104c: DUP2
0000104d: MSTORE
0000104e: PUSH1 0x20
00001050: PUSH1 0x04
00001052: DUP3
00001053: ADD
00001054: MSTORE
00001055: PUSH1 0x06
00001057: PUSH1 0x24
00001059: DUP3
0000105a: ADD
0000105b: MSTORE
0000105c: PUSH32 0x7a33325468440000000000000000000000000000000000000000000000000000
0000107d: PUSH1 0x44
0000107f: DUP3
00001080: ADD
00001081: MSTORE
00001082: PUSH1 0x64
00001084: ADD
00001085: PUSH2 0x0400
00001088: JUMP
00001089: JUMPDEST
0000108a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000109f: DUP2
000010a0: AND
000010a1: PUSH1 0x00
000010a3: DUP2
000010a4: DUP2
000010a5: MSTORE
000010a6: PUSH1 0x02
000010a8: PUSH1 0x20
000010aa: SWAP1
000010ab: DUP2
000010ac: MSTORE
000010ad: PUSH1 0x40
000010af: SWAP2
000010b0: DUP3
000010b1: SWAP1
000010b2: KECCAK256
000010b3: DUP1
000010b4: SLOAD
000010b5: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
000010d6: AND
000010d7: PUSH1 0x01
000010d9: SWAP1
000010da: DUP2
000010db: OR
000010dc: SWAP1
000010dd: SWAP2
000010de: SSTORE
000010df: DUP3
000010e0: MLOAD
000010e1: SWAP4
000010e2: DUP5
000010e3: MSTORE
000010e4: SWAP1
000010e5: DUP4
000010e6: ADD
000010e7: MSTORE
000010e8: PUSH32 0xe1721e7850c58e663b742158d3d6ccfa99d3d7b5a8efbb0bfefffb70f3be66e5
00001109: SWAP2
0000110a: ADD
0000110b: PUSH2 0x094d
0000110e: JUMP
0000110f: JUMPDEST
00001110: CALLER
00001111: PUSH1 0x00
00001113: SWAP1
00001114: DUP2
00001115: MSTORE
00001116: PUSH1 0x01
00001118: PUSH1 0x20
0000111a: MSTORE
0000111b: PUSH1 0x40
0000111d: SWAP1
0000111e: KECCAK256
0000111f: SLOAD
00001120: PUSH1 0xff
00001122: AND
00001123: PUSH2 0x1188
00001126: JUMPI
00001127: PUSH1 0x40
00001129: MLOAD
0000112a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000114b: DUP2
0000114c: MSTORE
0000114d: PUSH1 0x20
0000114f: PUSH1 0x04
00001151: DUP3
00001152: ADD
00001153: MSTORE
00001154: PUSH1 0x06
00001156: PUSH1 0x24
00001158: DUP3
00001159: ADD
0000115a: MSTORE
0000115b: PUSH32 0x46513637566a0000000000000000000000000000000000000000000000000000
0000117c: PUSH1 0x44
0000117e: DUP3
0000117f: ADD
00001180: MSTORE
00001181: PUSH1 0x64
00001183: ADD
00001184: PUSH2 0x0400
00001187: JUMP
00001188: JUMPDEST
00001189: DUP4
0000118a: PUSH1 0x00
0000118c: DUP5
0000118d: PUSH2 0x11ad
00001190: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011a5: DUP3
000011a6: AND
000011a7: DUP5
000011a8: DUP8
000011a9: PUSH2 0x1e26
000011ac: JUMP
000011ad: JUMPDEST
000011ae: PUSH1 0x00
000011b0: DUP1
000011b1: DUP5
000011b2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011c7: AND
000011c8: PUSH4 0x0902f1ac
000011cd: PUSH1 0x40
000011cf: MLOAD
000011d0: DUP2
000011d1: PUSH4 0xffffffff
000011d6: AND
000011d7: PUSH1 0xe0
000011d9: SHL
000011da: DUP2
000011db: MSTORE
000011dc: PUSH1 0x04
000011de: ADD
000011df: PUSH1 0x60
000011e1: PUSH1 0x40
000011e3: MLOAD
000011e4: DUP1
000011e5: DUP4
000011e6: SUB
000011e7: DUP2
000011e8: DUP7
000011e9: DUP1
000011ea: EXTCODESIZE
000011eb: ISZERO
000011ec: DUP1
000011ed: ISZERO
000011ee: PUSH2 0x11f6
000011f1: JUMPI
000011f2: PUSH1 0x00
000011f4: DUP1
000011f5: REVERT
000011f6: JUMPDEST
000011f7: POP
000011f8: GAS
000011f9: STATICCALL
000011fa: ISZERO
000011fb: DUP1
000011fc: ISZERO
000011fd: PUSH2 0x120a
00001200: JUMPI
00001201: RETURNDATASIZE
00001202: PUSH1 0x00
00001204: DUP1
00001205: RETURNDATACOPY
00001206: RETURNDATASIZE
00001207: PUSH1 0x00
00001209: REVERT
0000120a: JUMPDEST
0000120b: POP
0000120c: POP
0000120d: POP
0000120e: POP
0000120f: PUSH1 0x40
00001211: MLOAD
00001212: RETURNDATASIZE
00001213: PUSH1 0x1f
00001215: NOT
00001216: PUSH1 0x1f
00001218: DUP3
00001219: ADD
0000121a: AND
0000121b: DUP3
0000121c: ADD
0000121d: DUP1
0000121e: PUSH1 0x40
00001220: MSTORE
00001221: POP
00001222: DUP2
00001223: ADD
00001224: SWAP1
00001225: PUSH2 0x122e
00001228: SWAP2
00001229: SWAP1
0000122a: PUSH2 0x25cc
0000122d: JUMP
0000122e: JUMPDEST
0000122f: POP
00001230: PUSH1 0x40
00001232: MLOAD
00001233: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
00001254: DUP2
00001255: MSTORE
00001256: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000126b: DUP13
0000126c: DUP2
0000126d: AND
0000126e: PUSH1 0x04
00001270: DUP4
00001271: ADD
00001272: MSTORE
00001273: PUSH14 0xffffffffffffffffffffffffffff
00001282: SWAP4
00001283: DUP5
00001284: AND
00001285: SWAP6
00001286: POP
00001287: SWAP2
00001288: SWAP1
00001289: SWAP3
0000128a: AND
0000128b: SWAP3
0000128c: POP
0000128d: DUP3
0000128e: SWAP2
0000128f: SWAP1
00001290: DUP6
00001291: AND
00001292: SWAP1
00001293: PUSH4 0x70a08231
00001298: SWAP1
00001299: PUSH1 0x24
0000129b: ADD
0000129c: PUSH1 0x20
0000129e: PUSH1 0x40
000012a0: MLOAD
000012a1: DUP1
000012a2: DUP4
000012a3: SUB
000012a4: DUP2
000012a5: DUP7
000012a6: DUP1
000012a7: EXTCODESIZE
000012a8: ISZERO
000012a9: DUP1
000012aa: ISZERO
000012ab: PUSH2 0x12b3
000012ae: JUMPI
000012af: PUSH1 0x00
000012b1: DUP1
000012b2: REVERT
000012b3: JUMPDEST
000012b4: POP
000012b5: GAS
000012b6: STATICCALL
000012b7: ISZERO
000012b8: DUP1
000012b9: ISZERO
000012ba: PUSH2 0x12c7
000012bd: JUMPI
000012be: RETURNDATASIZE
000012bf: PUSH1 0x00
000012c1: DUP1
000012c2: RETURNDATACOPY
000012c3: RETURNDATASIZE
000012c4: PUSH1 0x00
000012c6: REVERT
000012c7: JUMPDEST
000012c8: POP
000012c9: POP
000012ca: POP
000012cb: POP
000012cc: PUSH1 0x40
000012ce: MLOAD
000012cf: RETURNDATASIZE
000012d0: PUSH1 0x1f
000012d2: NOT
000012d3: PUSH1 0x1f
000012d5: DUP3
000012d6: ADD
000012d7: AND
000012d8: DUP3
000012d9: ADD
000012da: DUP1
000012db: PUSH1 0x40
000012dd: MSTORE
000012de: POP
000012df: DUP2
000012e0: ADD
000012e1: SWAP1
000012e2: PUSH2 0x12eb
000012e5: SWAP2
000012e6: SWAP1
000012e7: PUSH2 0x2611
000012ea: JUMP
000012eb: JUMPDEST
000012ec: PUSH2 0x12f5
000012ef: SWAP2
000012f0: SWAP1
000012f1: PUSH2 0x27bf
000012f4: JUMP
000012f5: JUMPDEST
000012f6: SWAP4
000012f7: POP
000012f8: PUSH1 0x00
000012fa: PUSH2 0x1305
000012fd: DUP6
000012fe: PUSH2 0x03e5
00001301: PUSH2 0x2782
00001304: JUMP
00001305: JUMPDEST
00001306: SWAP1
00001307: POP
00001308: PUSH1 0x00
0000130a: PUSH2 0x1313
0000130d: DUP5
0000130e: DUP4
0000130f: PUSH2 0x2782
00001312: JUMP
00001313: JUMPDEST
00001314: SWAP1
00001315: POP
00001316: PUSH1 0x00
00001318: DUP3
00001319: PUSH2 0x1324
0000131c: DUP6
0000131d: PUSH2 0x03e8
00001320: PUSH2 0x2782
00001323: JUMP
00001324: JUMPDEST
00001325: PUSH2 0x132e
00001328: SWAP2
00001329: SWAP1
0000132a: PUSH2 0x272f
0000132d: JUMP
0000132e: JUMPDEST
0000132f: SWAP1
00001330: POP
00001331: PUSH1 0x00
00001333: PUSH2 0x133c
00001336: DUP3
00001337: DUP5
00001338: PUSH2 0x2747
0000133b: JUMP
0000133c: JUMPDEST
0000133d: SWAP1
0000133e: POP
0000133f: DUP10
00001340: DUP2
00001341: LT
00001342: ISZERO
00001343: PUSH2 0x13a8
00001346: JUMPI
00001347: PUSH1 0x40
00001349: MLOAD
0000134a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000136b: DUP2
0000136c: MSTORE
0000136d: PUSH1 0x20
0000136f: PUSH1 0x04
00001371: DUP3
00001372: ADD
00001373: MSTORE
00001374: PUSH1 0x06
00001376: PUSH1 0x24
00001378: DUP3
00001379: ADD
0000137a: MSTORE
0000137b: PUSH32 0x766e536430310000000000000000000000000000000000000000000000000000
0000139c: PUSH1 0x44
0000139e: DUP3
0000139f: ADD
000013a0: MSTORE
000013a1: PUSH1 0x64
000013a3: ADD
000013a4: PUSH2 0x0400
000013a7: JUMP
000013a8: JUMPDEST
000013a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013be: DUP10
000013bf: AND
000013c0: PUSH4 0x022c0d9f
000013c5: DUP3
000013c6: PUSH1 0x00
000013c8: ADDRESS
000013c9: DUP2
000013ca: PUSH2 0x064b
000013cd: JUMP
000013ce: JUMPDEST
000013cf: PUSH1 0x00
000013d1: SLOAD
000013d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013e7: AND
000013e8: CALLER
000013e9: EQ
000013ea: PUSH2 0x144f
000013ed: JUMPI
000013ee: PUSH1 0x40
000013f0: MLOAD
000013f1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001412: DUP2
00001413: MSTORE
00001414: PUSH1 0x20
00001416: PUSH1 0x04
00001418: DUP3
00001419: ADD
0000141a: MSTORE
0000141b: PUSH1 0x06
0000141d: PUSH1 0x24
0000141f: DUP3
00001420: ADD
00001421: MSTORE
00001422: PUSH32 0x7a33325468440000000000000000000000000000000000000000000000000000
00001443: PUSH1 0x44
00001445: DUP3
00001446: ADD
00001447: MSTORE
00001448: PUSH1 0x64
0000144a: ADD
0000144b: PUSH2 0x0400
0000144e: JUMP
0000144f: JUMPDEST
00001450: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001465: DUP2
00001466: AND
00001467: PUSH1 0x00
00001469: DUP2
0000146a: DUP2
0000146b: MSTORE
0000146c: PUSH1 0x03
0000146e: PUSH1 0x20
00001470: SWAP1
00001471: DUP2
00001472: MSTORE
00001473: PUSH1 0x40
00001475: SWAP2
00001476: DUP3
00001477: SWAP1
00001478: KECCAK256
00001479: DUP1
0000147a: SLOAD
0000147b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
0000149c: AND
0000149d: PUSH1 0x01
0000149f: SWAP1
000014a0: DUP2
000014a1: OR
000014a2: SWAP1
000014a3: SWAP2
000014a4: SSTORE
000014a5: DUP3
000014a6: MLOAD
000014a7: SWAP4
000014a8: DUP5
000014a9: MSTORE
000014aa: SWAP1
000014ab: DUP4
000014ac: ADD
000014ad: MSTORE
000014ae: PUSH32 0x8bfc8adfd431e0ea67d873424a45d8156394a2eed744fcad59903299534060a9
000014cf: SWAP2
000014d0: ADD
000014d1: PUSH2 0x094d
000014d4: JUMP
000014d5: JUMPDEST
000014d6: PUSH1 0x00
000014d8: SLOAD
000014d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014ee: AND
000014ef: CALLER
000014f0: EQ
000014f1: DUP1
000014f2: PUSH2 0x150a
000014f5: JUMPI
000014f6: POP
000014f7: CALLER
000014f8: PUSH1 0x00
000014fa: SWAP1
000014fb: DUP2
000014fc: MSTORE
000014fd: PUSH1 0x02
000014ff: PUSH1 0x20
00001501: MSTORE
00001502: PUSH1 0x40
00001504: SWAP1
00001505: KECCAK256
00001506: SLOAD
00001507: PUSH1 0xff
00001509: AND
0000150a: JUMPDEST
0000150b: PUSH2 0x1570
0000150e: JUMPI
0000150f: PUSH1 0x40
00001511: MLOAD
00001512: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001533: DUP2
00001534: MSTORE
00001535: PUSH1 0x20
00001537: PUSH1 0x04
00001539: DUP3
0000153a: ADD
0000153b: MSTORE
0000153c: PUSH1 0x06
0000153e: PUSH1 0x24
00001540: DUP3
00001541: ADD
00001542: MSTORE
00001543: PUSH32 0x674a356544390000000000000000000000000000000000000000000000000000
00001564: PUSH1 0x44
00001566: DUP3
00001567: ADD
00001568: MSTORE
00001569: PUSH1 0x64
0000156b: ADD
0000156c: PUSH2 0x0400
0000156f: JUMP
00001570: JUMPDEST
00001571: PUSH1 0x00
00001573: SLOAD
00001574: DUP2
00001575: SWAP1
00001576: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000158b: DUP1
0000158c: DUP4
0000158d: AND
0000158e: SWAP2
0000158f: AND
00001590: EQ
00001591: DUP1
00001592: PUSH2 0x15c0
00001595: JUMPI
00001596: POP
00001597: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015ac: DUP2
000015ad: AND
000015ae: PUSH1 0x00
000015b0: SWAP1
000015b1: DUP2
000015b2: MSTORE
000015b3: PUSH1 0x03
000015b5: PUSH1 0x20
000015b7: MSTORE
000015b8: PUSH1 0x40
000015ba: SWAP1
000015bb: KECCAK256
000015bc: SLOAD
000015bd: PUSH1 0xff
000015bf: AND
000015c0: JUMPDEST
000015c1: PUSH2 0x1626
000015c4: JUMPI
000015c5: PUSH1 0x40
000015c7: MLOAD
000015c8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000015e9: DUP2
000015ea: MSTORE
000015eb: PUSH1 0x20
000015ed: PUSH1 0x04
000015ef: DUP3
000015f0: ADD
000015f1: MSTORE
000015f2: PUSH1 0x06
000015f4: PUSH1 0x24
000015f6: DUP3
000015f7: ADD
000015f8: MSTORE
000015f9: PUSH32 0x36316f4946730000000000000000000000000000000000000000000000000000
0000161a: PUSH1 0x44
0000161c: DUP3
0000161d: ADD
0000161e: MSTORE
0000161f: PUSH1 0x64
00001621: ADD
00001622: PUSH2 0x0400
00001625: JUMP
00001626: JUMPDEST
00001627: PUSH1 0x00
00001629: JUMPDEST
0000162a: DUP4
0000162b: DUP2
0000162c: LT
0000162d: ISZERO
0000162e: PUSH2 0x1757
00001631: JUMPI
00001632: PUSH1 0x00
00001634: DUP6
00001635: DUP6
00001636: DUP4
00001637: DUP2
00001638: DUP2
00001639: LT
0000163a: PUSH2 0x1645
0000163d: JUMPI
0000163e: PUSH2 0x1645
00001641: PUSH2 0x28a3
00001644: JUMP
00001645: JUMPDEST
00001646: SWAP1
00001647: POP
00001648: PUSH1 0x20
0000164a: MUL
0000164b: ADD
0000164c: PUSH1 0x20
0000164e: DUP2
0000164f: ADD
00001650: SWAP1
00001651: PUSH2 0x165a
00001654: SWAP2
00001655: SWAP1
00001656: PUSH2 0x22c0
00001659: JUMP
0000165a: JUMPDEST
0000165b: PUSH1 0x40
0000165d: MLOAD
0000165e: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
0000167f: DUP2
00001680: MSTORE
00001681: ADDRESS
00001682: PUSH1 0x04
00001684: DUP3
00001685: ADD
00001686: MSTORE
00001687: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000169c: SWAP2
0000169d: SWAP1
0000169e: SWAP2
0000169f: AND
000016a0: SWAP1
000016a1: PUSH4 0x70a08231
000016a6: SWAP1
000016a7: PUSH1 0x24
000016a9: ADD
000016aa: PUSH1 0x20
000016ac: PUSH1 0x40
000016ae: MLOAD
000016af: DUP1
000016b0: DUP4
000016b1: SUB
000016b2: DUP2
000016b3: DUP7
000016b4: DUP1
000016b5: EXTCODESIZE
000016b6: ISZERO
000016b7: DUP1
000016b8: ISZERO
000016b9: PUSH2 0x16c1
000016bc: JUMPI
000016bd: PUSH1 0x00
000016bf: DUP1
000016c0: REVERT
000016c1: JUMPDEST
000016c2: POP
000016c3: GAS
000016c4: STATICCALL
000016c5: ISZERO
000016c6: DUP1
000016c7: ISZERO
000016c8: PUSH2 0x16d5
000016cb: JUMPI
000016cc: RETURNDATASIZE
000016cd: PUSH1 0x00
000016cf: DUP1
000016d0: RETURNDATACOPY
000016d1: RETURNDATASIZE
000016d2: PUSH1 0x00
000016d4: REVERT
000016d5: JUMPDEST
000016d6: POP
000016d7: POP
000016d8: POP
000016d9: POP
000016da: PUSH1 0x40
000016dc: MLOAD
000016dd: RETURNDATASIZE
000016de: PUSH1 0x1f
000016e0: NOT
000016e1: PUSH1 0x1f
000016e3: DUP3
000016e4: ADD
000016e5: AND
000016e6: DUP3
000016e7: ADD
000016e8: DUP1
000016e9: PUSH1 0x40
000016eb: MSTORE
000016ec: POP
000016ed: DUP2
000016ee: ADD
000016ef: SWAP1
000016f0: PUSH2 0x16f9
000016f3: SWAP2
000016f4: SWAP1
000016f5: PUSH2 0x2611
000016f8: JUMP
000016f9: JUMPDEST
000016fa: SWAP1
000016fb: POP
000016fc: PUSH2 0x1744
000016ff: DUP5
00001700: DUP3
00001701: DUP9
00001702: DUP9
00001703: DUP7
00001704: DUP2
00001705: DUP2
00001706: LT
00001707: PUSH2 0x1712
0000170a: JUMPI
0000170b: PUSH2 0x1712
0000170e: PUSH2 0x28a3
00001711: JUMP
00001712: JUMPDEST
00001713: SWAP1
00001714: POP
00001715: PUSH1 0x20
00001717: MUL
00001718: ADD
00001719: PUSH1 0x20
0000171b: DUP2
0000171c: ADD
0000171d: SWAP1
0000171e: PUSH2 0x1727
00001721: SWAP2
00001722: SWAP1
00001723: PUSH2 0x22c0
00001726: JUMP
00001727: JUMPDEST
00001728: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000173d: AND
0000173e: SWAP2
0000173f: SWAP1
00001740: PUSH2 0x1e26
00001743: JUMP
00001744: JUMPDEST
00001745: POP
00001746: DUP1
00001747: PUSH2 0x174f
0000174a: DUP2
0000174b: PUSH2 0x2802
0000174e: JUMP
0000174f: JUMPDEST
00001750: SWAP2
00001751: POP
00001752: POP
00001753: PUSH2 0x1629
00001756: JUMP
00001757: JUMPDEST
00001758: POP
00001759: POP
0000175a: POP
0000175b: POP
0000175c: POP
0000175d: JUMP
0000175e: JUMPDEST
0000175f: PUSH1 0x00
00001761: SLOAD
00001762: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001777: AND
00001778: CALLER
00001779: EQ
0000177a: PUSH2 0x17df
0000177d: JUMPI
0000177e: PUSH1 0x40
00001780: MLOAD
00001781: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000017a2: DUP2
000017a3: MSTORE
000017a4: PUSH1 0x20
000017a6: PUSH1 0x04
000017a8: DUP3
000017a9: ADD
000017aa: MSTORE
000017ab: PUSH1 0x06
000017ad: PUSH1 0x24
000017af: DUP3
000017b0: ADD
000017b1: MSTORE
000017b2: PUSH32 0x7a33325468440000000000000000000000000000000000000000000000000000
000017d3: PUSH1 0x44
000017d5: DUP3
000017d6: ADD
000017d7: MSTORE
000017d8: PUSH1 0x64
000017da: ADD
000017db: PUSH2 0x0400
000017de: JUMP
000017df: JUMPDEST
000017e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017f5: DUP2
000017f6: AND
000017f7: PUSH1 0x00
000017f9: DUP2
000017fa: DUP2
000017fb: MSTORE
000017fc: PUSH1 0x02
000017fe: PUSH1 0x20
00001800: SWAP1
00001801: DUP2
00001802: MSTORE
00001803: PUSH1 0x40
00001805: DUP1
00001806: DUP4
00001807: KECCAK256
00001808: DUP1
00001809: SLOAD
0000180a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
0000182b: AND
0000182c: SWAP1
0000182d: SSTORE
0000182e: DUP1
0000182f: MLOAD
00001830: SWAP4
00001831: DUP5
00001832: MSTORE
00001833: SWAP1
00001834: DUP4
00001835: ADD
00001836: SWAP2
00001837: SWAP1
00001838: SWAP2
00001839: MSTORE
0000183a: PUSH32 0xe1721e7850c58e663b742158d3d6ccfa99d3d7b5a8efbb0bfefffb70f3be66e5
0000185b: SWAP2
0000185c: ADD
0000185d: PUSH2 0x094d
00001860: JUMP
00001861: JUMPDEST
00001862: PUSH1 0x00
00001864: SLOAD
00001865: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000187a: AND
0000187b: CALLER
0000187c: EQ
0000187d: PUSH2 0x18e2
00001880: JUMPI
00001881: PUSH1 0x40
00001883: MLOAD
00001884: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000018a5: DUP2
000018a6: MSTORE
000018a7: PUSH1 0x20
000018a9: PUSH1 0x04
000018ab: DUP3
000018ac: ADD
000018ad: MSTORE
000018ae: PUSH1 0x06
000018b0: PUSH1 0x24
000018b2: DUP3
000018b3: ADD
000018b4: MSTORE
000018b5: PUSH32 0x7a33325468440000000000000000000000000000000000000000000000000000
000018d6: PUSH1 0x44
000018d8: DUP3
000018d9: ADD
000018da: MSTORE
000018db: PUSH1 0x64
000018dd: ADD
000018de: PUSH2 0x0400
000018e1: JUMP
000018e2: JUMPDEST
000018e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018f8: DUP2
000018f9: AND
000018fa: PUSH1 0x00
000018fc: DUP2
000018fd: DUP2
000018fe: MSTORE
000018ff: PUSH1 0x03
00001901: PUSH1 0x20
00001903: SWAP1
00001904: DUP2
00001905: MSTORE
00001906: PUSH1 0x40
00001908: DUP1
00001909: DUP4
0000190a: KECCAK256
0000190b: DUP1
0000190c: SLOAD
0000190d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
0000192e: AND
0000192f: SWAP1
00001930: SSTORE
00001931: DUP1
00001932: MLOAD
00001933: SWAP4
00001934: DUP5
00001935: MSTORE
00001936: SWAP1
00001937: DUP4
00001938: ADD
00001939: SWAP2
0000193a: SWAP1
0000193b: SWAP2
0000193c: MSTORE
0000193d: PUSH32 0x8bfc8adfd431e0ea67d873424a45d8156394a2eed744fcad59903299534060a9
0000195e: SWAP2
0000195f: ADD
00001960: PUSH2 0x094d
00001963: JUMP
00001964: JUMPDEST
00001965: CALLER
00001966: PUSH1 0x00
00001968: SWAP1
00001969: DUP2
0000196a: MSTORE
0000196b: PUSH1 0x01
0000196d: PUSH1 0x20
0000196f: MSTORE
00001970: PUSH1 0x40
00001972: SWAP1
00001973: KECCAK256
00001974: SLOAD
00001975: PUSH1 0xff
00001977: AND
00001978: PUSH2 0x19dd
0000197b: JUMPI
0000197c: PUSH1 0x40
0000197e: MLOAD
0000197f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000019a0: DUP2
000019a1: MSTORE
000019a2: PUSH1 0x20
000019a4: PUSH1 0x04
000019a6: DUP3
000019a7: ADD
000019a8: MSTORE
000019a9: PUSH1 0x06
000019ab: PUSH1 0x24
000019ad: DUP3
000019ae: ADD
000019af: MSTORE
000019b0: PUSH32 0x46513637566a0000000000000000000000000000000000000000000000000000
000019d1: PUSH1 0x44
000019d3: DUP3
000019d4: ADD
000019d5: MSTORE
000019d6: PUSH1 0x64
000019d8: ADD
000019d9: PUSH2 0x0400
000019dc: JUMP
000019dd: JUMPDEST
000019de: PUSH1 0x00
000019e0: DUP5
000019e1: SWAP1
000019e2: POP
000019e3: PUSH1 0x00
000019e5: DUP1
000019e6: DUP3
000019e7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019fc: AND
000019fd: PUSH4 0x0902f1ac
00001a02: PUSH1 0x40
00001a04: MLOAD
00001a05: DUP2
00001a06: PUSH4 0xffffffff
00001a0b: AND
00001a0c: PUSH1 0xe0
00001a0e: SHL
00001a0f: DUP2
00001a10: MSTORE
00001a11: PUSH1 0x04
00001a13: ADD
00001a14: PUSH1 0x60
00001a16: PUSH1 0x40
00001a18: MLOAD
00001a19: DUP1
00001a1a: DUP4
00001a1b: SUB
00001a1c: DUP2
00001a1d: DUP7
00001a1e: DUP1
00001a1f: EXTCODESIZE
00001a20: ISZERO
00001a21: DUP1
00001a22: ISZERO
00001a23: PUSH2 0x1a2b
00001a26: JUMPI
00001a27: PUSH1 0x00
00001a29: DUP1
00001a2a: REVERT
00001a2b: JUMPDEST
00001a2c: POP
00001a2d: GAS
00001a2e: STATICCALL
00001a2f: ISZERO
00001a30: DUP1
00001a31: ISZERO
00001a32: PUSH2 0x1a3f
00001a35: JUMPI
00001a36: RETURNDATASIZE
00001a37: PUSH1 0x00
00001a39: DUP1
00001a3a: RETURNDATACOPY
00001a3b: RETURNDATASIZE
00001a3c: PUSH1 0x00
00001a3e: REVERT
00001a3f: JUMPDEST
00001a40: POP
00001a41: POP
00001a42: POP
00001a43: POP
00001a44: PUSH1 0x40
00001a46: MLOAD
00001a47: RETURNDATASIZE
00001a48: PUSH1 0x1f
00001a4a: NOT
00001a4b: PUSH1 0x1f
00001a4d: DUP3
00001a4e: ADD
00001a4f: AND
00001a50: DUP3
00001a51: ADD
00001a52: DUP1
00001a53: PUSH1 0x40
00001a55: MSTORE
00001a56: POP
00001a57: DUP2
00001a58: ADD
00001a59: SWAP1
00001a5a: PUSH2 0x1a63
00001a5d: SWAP2
00001a5e: SWAP1
00001a5f: PUSH2 0x25cc
00001a62: JUMP
00001a63: JUMPDEST
00001a64: POP
00001a65: PUSH14 0xffffffffffffffffffffffffffff
00001a74: SWAP2
00001a75: DUP3
00001a76: AND
00001a77: SWAP4
00001a78: POP
00001a79: AND
00001a7a: SWAP1
00001a7b: POP
00001a7c: PUSH1 0x00
00001a7e: PUSH2 0x1a89
00001a81: DUP7
00001a82: PUSH2 0x03e5
00001a85: PUSH2 0x2782
00001a88: JUMP
00001a89: JUMPDEST
00001a8a: SWAP1
00001a8b: POP
00001a8c: PUSH1 0x00
00001a8e: PUSH2 0x1a97
00001a91: DUP5
00001a92: DUP4
00001a93: PUSH2 0x2782
00001a96: JUMP
00001a97: JUMPDEST
00001a98: SWAP1
00001a99: POP
00001a9a: PUSH1 0x00
00001a9c: DUP3
00001a9d: PUSH2 0x1aa8
00001aa0: DUP6
00001aa1: PUSH2 0x03e8
00001aa4: PUSH2 0x2782
00001aa7: JUMP
00001aa8: JUMPDEST
00001aa9: PUSH2 0x1ab2
00001aac: SWAP2
00001aad: SWAP1
00001aae: PUSH2 0x272f
00001ab1: JUMP
00001ab2: JUMPDEST
00001ab3: SWAP1
00001ab4: POP
00001ab5: PUSH1 0x00
00001ab7: PUSH2 0x1ac0
00001aba: DUP3
00001abb: DUP5
00001abc: PUSH2 0x2747
00001abf: JUMP
00001ac0: JUMPDEST
00001ac1: SWAP1
00001ac2: POP
00001ac3: DUP8
00001ac4: DUP2
00001ac5: LT
00001ac6: ISZERO
00001ac7: PUSH2 0x1b2c
00001aca: JUMPI
00001acb: PUSH1 0x40
00001acd: MLOAD
00001ace: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001aef: DUP2
00001af0: MSTORE
00001af1: PUSH1 0x20
00001af3: PUSH1 0x04
00001af5: DUP3
00001af6: ADD
00001af7: MSTORE
00001af8: PUSH1 0x06
00001afa: PUSH1 0x24
00001afc: DUP3
00001afd: ADD
00001afe: MSTORE
00001aff: PUSH32 0x766e536430310000000000000000000000000000000000000000000000000000
00001b20: PUSH1 0x44
00001b22: DUP3
00001b23: ADD
00001b24: MSTORE
00001b25: PUSH1 0x64
00001b27: ADD
00001b28: PUSH2 0x0400
00001b2b: JUMP
00001b2c: JUMPDEST
00001b2d: DUP10
00001b2e: PUSH2 0x1b4e
00001b31: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b46: DUP3
00001b47: AND
00001b48: DUP14
00001b49: DUP13
00001b4a: PUSH2 0x1e26
00001b4d: JUMP
00001b4e: JUMPDEST
00001b4f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b64: DUP9
00001b65: AND
00001b66: PUSH4 0x022c0d9f
00001b6b: DUP4
00001b6c: PUSH1 0x00
00001b6e: ADDRESS
00001b6f: DUP2
00001b70: PUSH2 0x0f7e
00001b73: JUMP
00001b74: JUMPDEST
00001b75: PUSH2 0x1b96
00001b78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b8d: DUP4
00001b8e: AND
00001b8f: CALLER
00001b90: ADDRESS
00001b91: DUP5
00001b92: PUSH2 0x1f31
00001b95: JUMP
00001b96: JUMPDEST
00001b97: POP
00001b98: POP
00001b99: JUMP
00001b9a: JUMPDEST
00001b9b: PUSH1 0x00
00001b9d: SLOAD
00001b9e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001bb3: AND
00001bb4: CALLER
00001bb5: EQ
00001bb6: PUSH2 0x1c1b
00001bb9: JUMPI
00001bba: PUSH1 0x40
00001bbc: MLOAD
00001bbd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001bde: DUP2
00001bdf: MSTORE
00001be0: PUSH1 0x20
00001be2: PUSH1 0x04
00001be4: DUP3
00001be5: ADD
00001be6: MSTORE
00001be7: PUSH1 0x06
00001be9: PUSH1 0x24
00001beb: DUP3
00001bec: ADD
00001bed: MSTORE
00001bee: PUSH32 0x7a33325468440000000000000000000000000000000000000000000000000000
00001c0f: PUSH1 0x44
00001c11: DUP3
00001c12: ADD
00001c13: MSTORE
00001c14: PUSH1 0x64
00001c16: ADD
00001c17: PUSH2 0x0400
00001c1a: JUMP
00001c1b: JUMPDEST
00001c1c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c31: DUP2
00001c32: AND
00001c33: PUSH1 0x00
00001c35: DUP2
00001c36: DUP2
00001c37: MSTORE
00001c38: PUSH1 0x01
00001c3a: PUSH1 0x20
00001c3c: DUP2
00001c3d: DUP2
00001c3e: MSTORE
00001c3f: PUSH1 0x40
00001c41: SWAP3
00001c42: DUP4
00001c43: SWAP1
00001c44: KECCAK256
00001c45: DUP1
00001c46: SLOAD
00001c47: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
00001c68: AND
00001c69: DUP4
00001c6a: OR
00001c6b: SWAP1
00001c6c: SSTORE
00001c6d: DUP3
00001c6e: MLOAD
00001c6f: SWAP4
00001c70: DUP5
00001c71: MSTORE
00001c72: DUP4
00001c73: ADD
00001c74: MSTORE
00001c75: PUSH32 0xe62434620f54c008068249f571016a0f7df8ccc9221d147292beb68c81d90650
00001c96: SWAP2
00001c97: ADD
00001c98: PUSH2 0x094d
00001c9b: JUMP
00001c9c: JUMPDEST
00001c9d: PUSH20 0x1f98431c8ad98523631ae4a59f267346ea31f984
00001cb2: PUSH32 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
00001cd3: PUSH1 0x00
00001cd5: PUSH2 0x1ce0
00001cd8: DUP5
00001cd9: DUP7
00001cda: ADD
00001cdb: DUP7
00001cdc: PUSH2 0x254d
00001cdf: JUMP
00001ce0: JUMPDEST
00001ce1: PUSH1 0x20
00001ce3: DUP2
00001ce4: DUP2
00001ce5: ADD
00001ce6: MLOAD
00001ce7: PUSH1 0x40
00001ce9: DUP1
00001cea: MLOAD
00001ceb: PUSH32 0xff00000000000000000000000000000000000000000000000000000000000000
00001d0c: DUP2
00001d0d: DUP6
00001d0e: ADD
00001d0f: MSTORE
00001d10: PUSH1 0x60
00001d12: DUP9
00001d13: SWAP1
00001d14: SHL
00001d15: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
00001d36: AND
00001d37: PUSH1 0x21
00001d39: DUP3
00001d3a: ADD
00001d3b: MSTORE
00001d3c: PUSH1 0x35
00001d3e: DUP2
00001d3f: ADD
00001d40: SWAP3
00001d41: SWAP1
00001d42: SWAP3
00001d43: MSTORE
00001d44: PUSH1 0x55
00001d46: DUP1
00001d47: DUP4
00001d48: ADD
00001d49: DUP8
00001d4a: SWAP1
00001d4b: MSTORE
00001d4c: DUP2
00001d4d: MLOAD
00001d4e: DUP1
00001d4f: DUP5
00001d50: SUB
00001d51: SWAP1
00001d52: SWAP2
00001d53: ADD
00001d54: DUP2
00001d55: MSTORE
00001d56: PUSH1 0x75
00001d58: SWAP1
00001d59: SWAP3
00001d5a: ADD
00001d5b: SWAP1
00001d5c: MSTORE
00001d5d: DUP1
00001d5e: MLOAD
00001d5f: SWAP2
00001d60: ADD
00001d61: KECCAK256
00001d62: SWAP1
00001d63: SWAP2
00001d64: POP
00001d65: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d7a: DUP2
00001d7b: AND
00001d7c: CALLER
00001d7d: EQ
00001d7e: PUSH2 0x1de3
00001d81: JUMPI
00001d82: PUSH1 0x40
00001d84: MLOAD
00001d85: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001da6: DUP2
00001da7: MSTORE
00001da8: PUSH1 0x20
00001daa: PUSH1 0x04
00001dac: DUP3
00001dad: ADD
00001dae: MSTORE
00001daf: PUSH1 0x06
00001db1: PUSH1 0x24
00001db3: DUP3
00001db4: ADD
00001db5: MSTORE
00001db6: PUSH32 0x486b313657640000000000000000000000000000000000000000000000000000
00001dd7: PUSH1 0x44
00001dd9: DUP3
00001dda: ADD
00001ddb: MSTORE
00001ddc: PUSH1 0x64
00001dde: ADD
00001ddf: PUSH2 0x0400
00001de2: JUMP
00001de3: JUMPDEST
00001de4: PUSH1 0x00
00001de6: DUP1
00001de7: DUP10
00001de8: SGT
00001de9: PUSH2 0x1df2
00001dec: JUMPI
00001ded: DUP8
00001dee: PUSH2 0x1df4
00001df1: JUMP
00001df2: JUMPDEST
00001df3: DUP9
00001df4: JUMPDEST
00001df5: DUP4
00001df6: MLOAD
00001df7: SWAP1
00001df8: SWAP2
00001df9: POP
00001dfa: PUSH2 0x1e1a
00001dfd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e12: DUP3
00001e13: AND
00001e14: CALLER
00001e15: DUP5
00001e16: PUSH2 0x1e26
00001e19: JUMP
00001e1a: JUMPDEST
00001e1b: POP
00001e1c: POP
00001e1d: POP
00001e1e: POP
00001e1f: POP
00001e20: POP
00001e21: POP
00001e22: POP
00001e23: POP
00001e24: POP
00001e25: JUMP
00001e26: JUMPDEST
00001e27: PUSH1 0x40
00001e29: MLOAD
00001e2a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e3f: DUP4
00001e40: AND
00001e41: PUSH1 0x24
00001e43: DUP3
00001e44: ADD
00001e45: MSTORE
00001e46: PUSH1 0x44
00001e48: DUP2
00001e49: ADD
00001e4a: DUP3
00001e4b: SWAP1
00001e4c: MSTORE
00001e4d: PUSH2 0x1efa
00001e50: SWAP1
00001e51: DUP5
00001e52: SWAP1
00001e53: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
00001e74: SWAP1
00001e75: PUSH1 0x64
00001e77: ADD
00001e78: JUMPDEST
00001e79: PUSH1 0x40
00001e7b: DUP1
00001e7c: MLOAD
00001e7d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00001e9e: DUP2
00001e9f: DUP5
00001ea0: SUB
00001ea1: ADD
00001ea2: DUP2
00001ea3: MSTORE
00001ea4: SWAP2
00001ea5: SWAP1
00001ea6: MSTORE
00001ea7: PUSH1 0x20
00001ea9: DUP2
00001eaa: ADD
00001eab: DUP1
00001eac: MLOAD
00001ead: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00001eca: AND
00001ecb: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00001eec: SWAP1
00001eed: SWAP4
00001eee: AND
00001eef: SWAP3
00001ef0: SWAP1
00001ef1: SWAP3
00001ef2: OR
00001ef3: SWAP1
00001ef4: SWAP2
00001ef5: MSTORE
00001ef6: PUSH2 0x1f8f
00001ef9: JUMP
00001efa: JUMPDEST
00001efb: POP
00001efc: POP
00001efd: POP
00001efe: JUMP
00001eff: JUMPDEST
00001f00: PUSH1 0x00
00001f02: PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000
00001f23: DUP3
00001f24: LT
00001f25: PUSH2 0x1f2d
00001f28: JUMPI
00001f29: PUSH1 0x00
00001f2b: DUP1
00001f2c: REVERT
00001f2d: JUMPDEST
00001f2e: POP
00001f2f: SWAP1
00001f30: JUMP
00001f31: JUMPDEST
00001f32: PUSH1 0x40
00001f34: MLOAD
00001f35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f4a: DUP1
00001f4b: DUP6
00001f4c: AND
00001f4d: PUSH1 0x24
00001f4f: DUP4
00001f50: ADD
00001f51: MSTORE
00001f52: DUP4
00001f53: AND
00001f54: PUSH1 0x44
00001f56: DUP3
00001f57: ADD
00001f58: MSTORE
00001f59: PUSH1 0x64
00001f5b: DUP2
00001f5c: ADD
00001f5d: DUP3
00001f5e: SWAP1
00001f5f: MSTORE
00001f60: PUSH2 0x0848
00001f63: SWAP1
00001f64: DUP6
00001f65: SWAP1
00001f66: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000
00001f87: SWAP1
00001f88: PUSH1 0x84
00001f8a: ADD
00001f8b: PUSH2 0x1e78
00001f8e: JUMP
00001f8f: JUMPDEST
00001f90: PUSH1 0x00
00001f92: PUSH2 0x1ff1
00001f95: DUP3
00001f96: PUSH1 0x40
00001f98: MLOAD
00001f99: DUP1
00001f9a: PUSH1 0x40
00001f9c: ADD
00001f9d: PUSH1 0x40
00001f9f: MSTORE
00001fa0: DUP1
00001fa1: PUSH1 0x20
00001fa3: DUP2
00001fa4: MSTORE
00001fa5: PUSH1 0x20
00001fa7: ADD
00001fa8: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
00001fc9: DUP2
00001fca: MSTORE
00001fcb: POP
00001fcc: DUP6
00001fcd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fe2: AND
00001fe3: PUSH2 0x209b
00001fe6: SWAP1
00001fe7: SWAP3
00001fe8: SWAP2
00001fe9: SWAP1
00001fea: PUSH4 0xffffffff
00001fef: AND
00001ff0: JUMP
00001ff1: JUMPDEST
00001ff2: DUP1
00001ff3: MLOAD
00001ff4: SWAP1
00001ff5: SWAP2
00001ff6: POP
00001ff7: ISZERO
00001ff8: PUSH2 0x1efa
00001ffb: JUMPI
00001ffc: DUP1
00001ffd: DUP1
00001ffe: PUSH1 0x20
00002000: ADD
00002001: SWAP1
00002002: MLOAD
00002003: DUP2
00002004: ADD
00002005: SWAP1
00002006: PUSH2 0x200f
00002009: SWAP2
0000200a: SWAP1
0000200b: PUSH2 0x2487
0000200e: JUMP
0000200f: JUMPDEST
00002010: PUSH2 0x1efa
00002013: JUMPI
00002014: PUSH1 0x40
00002016: MLOAD
00002017: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002038: DUP2
00002039: MSTORE
0000203a: PUSH1 0x20
0000203c: PUSH1 0x04
0000203e: DUP3
0000203f: ADD
00002040: MSTORE
00002041: PUSH1 0x2a
00002043: PUSH1 0x24
00002045: DUP3
00002046: ADD
00002047: MSTORE
00002048: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
00002069: PUSH1 0x44
0000206b: DUP3
0000206c: ADD
0000206d: MSTORE
0000206e: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000
0000208f: PUSH1 0x64
00002091: DUP3
00002092: ADD
00002093: MSTORE
00002094: PUSH1 0x84
00002096: ADD
00002097: PUSH2 0x0400
0000209a: JUMP
0000209b: JUMPDEST
0000209c: PUSH1 0x60
0000209e: PUSH2 0x20aa
000020a1: DUP5
000020a2: DUP5
000020a3: PUSH1 0x00
000020a5: DUP6
000020a6: PUSH2 0x20b4
000020a9: JUMP
000020aa: JUMPDEST
000020ab: SWAP1
000020ac: POP
000020ad: JUMPDEST
000020ae: SWAP4
000020af: SWAP3
000020b0: POP
000020b1: POP
000020b2: POP
000020b3: JUMP
000020b4: JUMPDEST
000020b5: PUSH1 0x60
000020b7: DUP3
000020b8: SELFBALANCE
000020b9: LT
000020ba: ISZERO
000020bb: PUSH2 0x2146
000020be: JUMPI
000020bf: PUSH1 0x40
000020c1: MLOAD
000020c2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000020e3: DUP2
000020e4: MSTORE
000020e5: PUSH1 0x20
000020e7: PUSH1 0x04
000020e9: DUP3
000020ea: ADD
000020eb: MSTORE
000020ec: PUSH1 0x26
000020ee: PUSH1 0x24
000020f0: DUP3
000020f1: ADD
000020f2: MSTORE
000020f3: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f
00002114: PUSH1 0x44
00002116: DUP3
00002117: ADD
00002118: MSTORE
00002119: PUSH32 0x722063616c6c0000000000000000000000000000000000000000000000000000
0000213a: PUSH1 0x64
0000213c: DUP3
0000213d: ADD
0000213e: MSTORE
0000213f: PUSH1 0x84
00002141: ADD
00002142: PUSH2 0x0400
00002145: JUMP
00002146: JUMPDEST
00002147: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000215c: DUP6
0000215d: AND
0000215e: EXTCODESIZE
0000215f: PUSH2 0x21c4
00002162: JUMPI
00002163: PUSH1 0x40
00002165: MLOAD
00002166: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002187: DUP2
00002188: MSTORE
00002189: PUSH1 0x20
0000218b: PUSH1 0x04
0000218d: DUP3
0000218e: ADD
0000218f: MSTORE
00002190: PUSH1 0x1d
00002192: PUSH1 0x24
00002194: DUP3
00002195: ADD
00002196: MSTORE
00002197: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
000021b8: PUSH1 0x44
000021ba: DUP3
000021bb: ADD
000021bc: MSTORE
000021bd: PUSH1 0x64
000021bf: ADD
000021c0: PUSH2 0x0400
000021c3: JUMP
000021c4: JUMPDEST
000021c5: PUSH1 0x00
000021c7: DUP1
000021c8: DUP7
000021c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000021de: AND
000021df: DUP6
000021e0: DUP8
000021e1: PUSH1 0x40
000021e3: MLOAD
000021e4: PUSH2 0x21ed
000021e7: SWAP2
000021e8: SWAP1
000021e9: PUSH2 0x2674
000021ec: JUMP
000021ed: JUMPDEST
000021ee: PUSH1 0x00
000021f0: PUSH1 0x40
000021f2: MLOAD
000021f3: DUP1
000021f4: DUP4
000021f5: SUB
000021f6: DUP2
000021f7: DUP6
000021f8: DUP8
000021f9: GAS
000021fa: CALL
000021fb: SWAP3
000021fc: POP
000021fd: POP
000021fe: POP
000021ff: RETURNDATASIZE
00002200: DUP1
00002201: PUSH1 0x00
00002203: DUP2
00002204: EQ
00002205: PUSH2 0x222a
00002208: JUMPI
00002209: PUSH1 0x40
0000220b: MLOAD
0000220c: SWAP2
0000220d: POP
0000220e: PUSH1 0x1f
00002210: NOT
00002211: PUSH1 0x3f
00002213: RETURNDATASIZE
00002214: ADD
00002215: AND
00002216: DUP3
00002217: ADD
00002218: PUSH1 0x40
0000221a: MSTORE
0000221b: RETURNDATASIZE
0000221c: DUP3
0000221d: MSTORE
0000221e: RETURNDATASIZE
0000221f: PUSH1 0x00
00002221: PUSH1 0x20
00002223: DUP5
00002224: ADD
00002225: RETURNDATACOPY
00002226: PUSH2 0x222f
00002229: JUMP
0000222a: JUMPDEST
0000222b: PUSH1 0x60
0000222d: SWAP2
0000222e: POP
0000222f: JUMPDEST
00002230: POP
00002231: SWAP2
00002232: POP
00002233: SWAP2
00002234: POP
00002235: PUSH2 0x223f
00002238: DUP3
00002239: DUP3
0000223a: DUP7
0000223b: PUSH2 0x224a
0000223e: JUMP
0000223f: JUMPDEST
00002240: SWAP8
00002241: SWAP7
00002242: POP
00002243: POP
00002244: POP
00002245: POP
00002246: POP
00002247: POP
00002248: POP
00002249: JUMP
0000224a: JUMPDEST
0000224b: PUSH1 0x60
0000224d: DUP4
0000224e: ISZERO
0000224f: PUSH2 0x2259
00002252: JUMPI
00002253: POP
00002254: DUP2
00002255: PUSH2 0x20ad
00002258: JUMP
00002259: JUMPDEST
0000225a: DUP3
0000225b: MLOAD
0000225c: ISZERO
0000225d: PUSH2 0x2269
00002260: JUMPI
00002261: DUP3
00002262: MLOAD
00002263: DUP1
00002264: DUP5
00002265: PUSH1 0x20
00002267: ADD
00002268: REVERT
00002269: JUMPDEST
0000226a: DUP2
0000226b: PUSH1 0x40
0000226d: MLOAD
0000226e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000228f: DUP2
00002290: MSTORE
00002291: PUSH1 0x04
00002293: ADD
00002294: PUSH2 0x0400
00002297: SWAP2
00002298: SWAP1
00002299: PUSH2 0x271c
0000229c: JUMP
0000229d: JUMPDEST
0000229e: DUP1
0000229f: MLOAD
000022a0: PUSH14 0xffffffffffffffffffffffffffff
000022af: DUP2
000022b0: AND
000022b1: DUP2
000022b2: EQ
000022b3: PUSH2 0x22bb
000022b6: JUMPI
000022b7: PUSH1 0x00
000022b9: DUP1
000022ba: REVERT
000022bb: JUMPDEST
000022bc: SWAP2
000022bd: SWAP1
000022be: POP
000022bf: JUMP
000022c0: JUMPDEST
000022c1: PUSH1 0x00
000022c3: PUSH1 0x20
000022c5: DUP3
000022c6: DUP5
000022c7: SUB
000022c8: SLT
000022c9: ISZERO
000022ca: PUSH2 0x22d2
000022cd: JUMPI
000022ce: PUSH1 0x00
000022d0: DUP1
000022d1: REVERT
000022d2: JUMPDEST
000022d3: DUP2
000022d4: CALLDATALOAD
000022d5: PUSH2 0x20ad
000022d8: DUP2
000022d9: PUSH2 0x28d2
000022dc: JUMP
000022dd: JUMPDEST
000022de: PUSH1 0x00
000022e0: DUP1
000022e1: PUSH1 0x00
000022e3: DUP1
000022e4: PUSH1 0x00
000022e6: DUP1
000022e7: PUSH1 0x00
000022e9: PUSH1 0xe0
000022eb: DUP9
000022ec: DUP11
000022ed: SUB
000022ee: SLT
000022ef: ISZERO
000022f0: PUSH2 0x22f8
000022f3: JUMPI
000022f4: PUSH1 0x00
000022f6: DUP1
000022f7: REVERT
000022f8: JUMPDEST
000022f9: DUP8
000022fa: CALLDATALOAD
000022fb: PUSH2 0x2303
000022fe: DUP2
000022ff: PUSH2 0x28d2
00002302: JUMP
00002303: JUMPDEST
00002304: SWAP7
00002305: POP
00002306: PUSH1 0x20
00002308: DUP9
00002309: ADD
0000230a: CALLDATALOAD
0000230b: PUSH2 0x2313
0000230e: DUP2
0000230f: PUSH2 0x28d2
00002312: JUMP
00002313: JUMPDEST
00002314: SWAP6
00002315: POP
00002316: PUSH1 0x40
00002318: DUP9
00002319: ADD
0000231a: CALLDATALOAD
0000231b: PUSH2 0x2323
0000231e: DUP2
0000231f: PUSH2 0x28d2
00002322: JUMP
00002323: JUMPDEST
00002324: SWAP5
00002325: POP
00002326: PUSH1 0x60
00002328: DUP9
00002329: ADD
0000232a: CALLDATALOAD
0000232b: SWAP4
0000232c: POP
0000232d: PUSH1 0x80
0000232f: DUP9
00002330: ADD
00002331: CALLDATALOAD
00002332: SWAP3
00002333: POP
00002334: PUSH1 0xa0
00002336: DUP9
00002337: ADD
00002338: CALLDATALOAD
00002339: SWAP2
0000233a: POP
0000233b: PUSH1 0xc0
0000233d: DUP9
0000233e: ADD
0000233f: CALLDATALOAD
00002340: PUSH2 0x2348
00002343: DUP2
00002344: PUSH2 0x28d2
00002347: JUMP
00002348: JUMPDEST
00002349: DUP1
0000234a: SWAP2
0000234b: POP
0000234c: POP
0000234d: SWAP3
0000234e: SWAP6
0000234f: SWAP9
00002350: SWAP2
00002351: SWAP5
00002352: SWAP8
00002353: POP
00002354: SWAP3
00002355: SWAP6
00002356: POP
00002357: JUMP
00002358: JUMPDEST
00002359: PUSH1 0x00
0000235b: DUP1
0000235c: PUSH1 0x00
0000235e: DUP1
0000235f: PUSH1 0x80
00002361: DUP6
00002362: DUP8
00002363: SUB
00002364: SLT
00002365: ISZERO
00002366: PUSH2 0x236e
00002369: JUMPI
0000236a: PUSH1 0x00
0000236c: DUP1
0000236d: REVERT
0000236e: JUMPDEST
0000236f: DUP5
00002370: CALLDATALOAD
00002371: PUSH2 0x2379
00002374: DUP2
00002375: PUSH2 0x28d2
00002378: JUMP
00002379: JUMPDEST
0000237a: SWAP4
0000237b: POP
0000237c: PUSH1 0x20
0000237e: DUP6
0000237f: ADD
00002380: CALLDATALOAD
00002381: PUSH2 0x2389
00002384: DUP2
00002385: PUSH2 0x28d2
00002388: JUMP
00002389: JUMPDEST
0000238a: SWAP4
0000238b: SWAP7
0000238c: SWAP4
0000238d: SWAP6
0000238e: POP
0000238f: POP
00002390: POP
00002391: POP
00002392: PUSH1 0x40
00002394: DUP3
00002395: ADD
00002396: CALLDATALOAD
00002397: SWAP2
00002398: PUSH1 0x60
0000239a: ADD
0000239b: CALLDATALOAD
0000239c: SWAP1
0000239d: JUMP
0000239e: JUMPDEST
0000239f: PUSH1 0x00
000023a1: DUP1
000023a2: PUSH1 0x40
000023a4: DUP4
000023a5: DUP6
000023a6: SUB
000023a7: SLT
000023a8: ISZERO
000023a9: PUSH2 0x23b1
000023ac: JUMPI
000023ad: PUSH1 0x00
000023af: DUP1
000023b0: REVERT
000023b1: JUMPDEST
000023b2: DUP3
000023b3: CALLDATALOAD
000023b4: PUSH2 0x23bc
000023b7: DUP2
000023b8: PUSH2 0x28d2
000023bb: JUMP
000023bc: JUMPDEST
000023bd: SWAP5
000023be: PUSH1 0x20
000023c0: SWAP4
000023c1: SWAP1
000023c2: SWAP4
000023c3: ADD
000023c4: CALLDATALOAD
000023c5: SWAP4
000023c6: POP
000023c7: POP
000023c8: POP
000023c9: JUMP
000023ca: JUMPDEST
000023cb: PUSH1 0x00
000023cd: DUP1
000023ce: PUSH1 0x00
000023d0: PUSH1 0x60
000023d2: DUP5
000023d3: DUP7
000023d4: SUB
000023d5: SLT
000023d6: ISZERO
000023d7: PUSH2 0x23df
000023da: JUMPI
000023db: PUSH1 0x00
000023dd: DUP1
000023de: REVERT
000023df: JUMPDEST
000023e0: DUP4
000023e1: CALLDATALOAD
000023e2: PUSH2 0x23ea
000023e5: DUP2
000023e6: PUSH2 0x28d2
000023e9: JUMP
000023ea: JUMPDEST
000023eb: SWAP3
000023ec: POP
000023ed: PUSH1 0x20
000023ef: DUP5
000023f0: ADD
000023f1: CALLDATALOAD
000023f2: SWAP2
000023f3: POP
000023f4: PUSH1 0x40
000023f6: DUP5
000023f7: ADD
000023f8: CALLDATALOAD
000023f9: PUSH2 0x2401
000023fc: DUP2
000023fd: PUSH2 0x28d2
00002400: JUMP
00002401: JUMPDEST
00002402: DUP1
00002403: SWAP2
00002404: POP
00002405: POP
00002406: SWAP3
00002407: POP
00002408: SWAP3
00002409: POP
0000240a: SWAP3
0000240b: JUMP
0000240c: JUMPDEST
0000240d: PUSH1 0x00
0000240f: DUP1
00002410: PUSH1 0x00
00002412: PUSH1 0x40
00002414: DUP5
00002415: DUP7
00002416: SUB
00002417: SLT
00002418: ISZERO
00002419: PUSH2 0x2421
0000241c: JUMPI
0000241d: PUSH1 0x00
0000241f: DUP1
00002420: REVERT
00002421: JUMPDEST
00002422: DUP4
00002423: CALLDATALOAD
00002424: PUSH8 0xffffffffffffffff
0000242d: DUP1
0000242e: DUP3
0000242f: GT
00002430: ISZERO
00002431: PUSH2 0x2439
00002434: JUMPI
00002435: PUSH1 0x00
00002437: DUP1
00002438: REVERT
00002439: JUMPDEST
0000243a: DUP2
0000243b: DUP7
0000243c: ADD
0000243d: SWAP2
0000243e: POP
0000243f: DUP7
00002440: PUSH1 0x1f
00002442: DUP4
00002443: ADD
00002444: SLT
00002445: PUSH2 0x244d
00002448: JUMPI
00002449: PUSH1 0x00
0000244b: DUP1
0000244c: REVERT
0000244d: JUMPDEST
0000244e: DUP2
0000244f: CALLDATALOAD
00002450: DUP2
00002451: DUP2
00002452: GT
00002453: ISZERO
00002454: PUSH2 0x245c
00002457: JUMPI
00002458: PUSH1 0x00
0000245a: DUP1
0000245b: REVERT
0000245c: JUMPDEST
0000245d: DUP8
0000245e: PUSH1 0x20
00002460: DUP3
00002461: PUSH1 0x05
00002463: SHL
00002464: DUP6
00002465: ADD
00002466: ADD
00002467: GT
00002468: ISZERO
00002469: PUSH2 0x2471
0000246c: JUMPI
0000246d: PUSH1 0x00
0000246f: DUP1
00002470: REVERT
00002471: JUMPDEST
00002472: PUSH1 0x20
00002474: SWAP3
00002475: DUP4
00002476: ADD
00002477: SWAP6
00002478: POP
00002479: SWAP4
0000247a: POP
0000247b: POP
0000247c: DUP5
0000247d: ADD
0000247e: CALLDATALOAD
0000247f: PUSH2 0x2401
00002482: DUP2
00002483: PUSH2 0x28d2
00002486: JUMP
00002487: JUMPDEST
00002488: PUSH1 0x00
0000248a: PUSH1 0x20
0000248c: DUP3
0000248d: DUP5
0000248e: SUB
0000248f: SLT
00002490: ISZERO
00002491: PUSH2 0x2499
00002494: JUMPI
00002495: PUSH1 0x00
00002497: DUP1
00002498: REVERT
00002499: JUMPDEST
0000249a: DUP2
0000249b: MLOAD
0000249c: DUP1
0000249d: ISZERO
0000249e: ISZERO
0000249f: DUP2
000024a0: EQ
000024a1: PUSH2 0x20ad
000024a4: JUMPI
000024a5: PUSH1 0x00
000024a7: DUP1
000024a8: REVERT
000024a9: JUMPDEST
000024aa: PUSH1 0x00
000024ac: DUP1
000024ad: PUSH1 0x40
000024af: DUP4
000024b0: DUP6
000024b1: SUB
000024b2: SLT
000024b3: ISZERO
000024b4: PUSH2 0x24bc
000024b7: JUMPI
000024b8: PUSH1 0x00
000024ba: DUP1
000024bb: REVERT
000024bc: JUMPDEST
000024bd: POP
000024be: POP
000024bf: DUP1
000024c0: MLOAD
000024c1: PUSH1 0x20
000024c3: SWAP1
000024c4: SWAP2
000024c5: ADD
000024c6: MLOAD
000024c7: SWAP1
000024c8: SWAP3
000024c9: SWAP1
000024ca: SWAP2
000024cb: POP
000024cc: JUMP
000024cd: JUMPDEST
000024ce: PUSH1 0x00
000024d0: DUP1
000024d1: PUSH1 0x00
000024d3: DUP1
000024d4: PUSH1 0x60
000024d6: DUP6
000024d7: DUP8
000024d8: SUB
000024d9: SLT
000024da: ISZERO
000024db: PUSH2 0x24e3
000024de: JUMPI
000024df: PUSH1 0x00
000024e1: DUP1
000024e2: REVERT
000024e3: JUMPDEST
000024e4: DUP5
000024e5: CALLDATALOAD
000024e6: SWAP4
000024e7: POP
000024e8: PUSH1 0x20
000024ea: DUP6
000024eb: ADD
000024ec: CALLDATALOAD
000024ed: SWAP3
000024ee: POP
000024ef: PUSH1 0x40
000024f1: DUP6
000024f2: ADD
000024f3: CALLDATALOAD
000024f4: PUSH8 0xffffffffffffffff
000024fd: DUP1
000024fe: DUP3
000024ff: GT
00002500: ISZERO
00002501: PUSH2 0x2509
00002504: JUMPI
00002505: PUSH1 0x00
00002507: DUP1
00002508: REVERT
00002509: JUMPDEST
0000250a: DUP2
0000250b: DUP8
0000250c: ADD
0000250d: SWAP2
0000250e: POP
0000250f: DUP8
00002510: PUSH1 0x1f
00002512: DUP4
00002513: ADD
00002514: SLT
00002515: PUSH2 0x251d
00002518: JUMPI
00002519: PUSH1 0x00
0000251b: DUP1
0000251c: REVERT
0000251d: JUMPDEST
0000251e: DUP2
0000251f: CALLDATALOAD
00002520: DUP2
00002521: DUP2
00002522: GT
00002523: ISZERO
00002524: PUSH2 0x252c
00002527: JUMPI
00002528: PUSH1 0x00
0000252a: DUP1
0000252b: REVERT
0000252c: JUMPDEST
0000252d: DUP9
0000252e: PUSH1 0x20
00002530: DUP3
00002531: DUP6
00002532: ADD
00002533: ADD
00002534: GT
00002535: ISZERO
00002536: PUSH2 0x253e
00002539: JUMPI
0000253a: PUSH1 0x00
0000253c: DUP1
0000253d: REVERT
0000253e: JUMPDEST
0000253f: SWAP6
00002540: SWAP9
00002541: SWAP5
00002542: SWAP8
00002543: POP
00002544: POP
00002545: PUSH1 0x20
00002547: ADD
00002548: SWAP5
00002549: POP
0000254a: POP
0000254b: POP
0000254c: JUMP
0000254d: JUMPDEST
0000254e: PUSH1 0x00
00002550: PUSH1 0x40
00002552: DUP3
00002553: DUP5
00002554: SUB
00002555: SLT
00002556: ISZERO
00002557: PUSH2 0x255f
0000255a: JUMPI
0000255b: PUSH1 0x00
0000255d: DUP1
0000255e: REVERT
0000255f: JUMPDEST
00002560: PUSH1 0x40
00002562: MLOAD
00002563: PUSH1 0x40
00002565: DUP2
00002566: ADD
00002567: DUP2
00002568: DUP2
00002569: LT
0000256a: PUSH8 0xffffffffffffffff
00002573: DUP3
00002574: GT
00002575: OR
00002576: ISZERO
00002577: PUSH2 0x25a9
0000257a: JUMPI
0000257b: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
0000259c: PUSH1 0x00
0000259e: MSTORE
0000259f: PUSH1 0x41
000025a1: PUSH1 0x04
000025a3: MSTORE
000025a4: PUSH1 0x24
000025a6: PUSH1 0x00
000025a8: REVERT
000025a9: JUMPDEST
000025aa: PUSH1 0x40
000025ac: MSTORE
000025ad: DUP3
000025ae: CALLDATALOAD
000025af: PUSH2 0x25b7
000025b2: DUP2
000025b3: PUSH2 0x28d2
000025b6: JUMP
000025b7: JUMPDEST
000025b8: DUP2
000025b9: MSTORE
000025ba: PUSH1 0x20
000025bc: SWAP3
000025bd: DUP4
000025be: ADD
000025bf: CALLDATALOAD
000025c0: SWAP3
000025c1: DUP2
000025c2: ADD
000025c3: SWAP3
000025c4: SWAP1
000025c5: SWAP3
000025c6: MSTORE
000025c7: POP
000025c8: SWAP2
000025c9: SWAP1
000025ca: POP
000025cb: JUMP
000025cc: JUMPDEST
000025cd: PUSH1 0x00
000025cf: DUP1
000025d0: PUSH1 0x00
000025d2: PUSH1 0x60
000025d4: DUP5
000025d5: DUP7
000025d6: SUB
000025d7: SLT
000025d8: ISZERO
000025d9: PUSH2 0x25e1
000025dc: JUMPI
000025dd: PUSH1 0x00
000025df: DUP1
000025e0: REVERT
000025e1: JUMPDEST
000025e2: PUSH2 0x25ea
000025e5: DUP5
000025e6: PUSH2 0x229d
000025e9: JUMP
000025ea: JUMPDEST
000025eb: SWAP3
000025ec: POP
000025ed: PUSH2 0x25f8
000025f0: PUSH1 0x20
000025f2: DUP6
000025f3: ADD
000025f4: PUSH2 0x229d
000025f7: JUMP
000025f8: JUMPDEST
000025f9: SWAP2
000025fa: POP
000025fb: PUSH1 0x40
000025fd: DUP5
000025fe: ADD
000025ff: MLOAD
00002600: PUSH4 0xffffffff
00002605: DUP2
00002606: AND
00002607: DUP2
00002608: EQ
00002609: PUSH2 0x2401
0000260c: JUMPI
0000260d: PUSH1 0x00
0000260f: DUP1
00002610: REVERT
00002611: JUMPDEST
00002612: PUSH1 0x00
00002614: PUSH1 0x20
00002616: DUP3
00002617: DUP5
00002618: SUB
00002619: SLT
0000261a: ISZERO
0000261b: PUSH2 0x2623
0000261e: JUMPI
0000261f: PUSH1 0x00
00002621: DUP1
00002622: REVERT
00002623: JUMPDEST
00002624: POP
00002625: MLOAD
00002626: SWAP2
00002627: SWAP1
00002628: POP
00002629: JUMP
0000262a: JUMPDEST
0000262b: PUSH1 0x00
0000262d: DUP2
0000262e: MLOAD
0000262f: DUP1
00002630: DUP5
00002631: MSTORE
00002632: PUSH2 0x2642
00002635: DUP2
00002636: PUSH1 0x20
00002638: DUP7
00002639: ADD
0000263a: PUSH1 0x20
0000263c: DUP7
0000263d: ADD
0000263e: PUSH2 0x27d6
00002641: JUMP
00002642: JUMPDEST
00002643: PUSH1 0x1f
00002645: ADD
00002646: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00002667: AND
00002668: SWAP3
00002669: SWAP1
0000266a: SWAP3
0000266b: ADD
0000266c: PUSH1 0x20
0000266e: ADD
0000266f: SWAP3
00002670: SWAP2
00002671: POP
00002672: POP
00002673: JUMP
00002674: JUMPDEST
00002675: PUSH1 0x00
00002677: DUP3
00002678: MLOAD
00002679: PUSH2 0x2686
0000267c: DUP2
0000267d: DUP5
0000267e: PUSH1 0x20
00002680: DUP8
00002681: ADD
00002682: PUSH2 0x27d6
00002685: JUMP
00002686: JUMPDEST
00002687: SWAP2
00002688: SWAP1
00002689: SWAP2
0000268a: ADD
0000268b: SWAP3
0000268c: SWAP2
0000268d: POP
0000268e: POP
0000268f: JUMP
00002690: JUMPDEST
00002691: PUSH1 0x00
00002693: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026a8: DUP1
000026a9: DUP9
000026aa: AND
000026ab: DUP4
000026ac: MSTORE
000026ad: DUP7
000026ae: ISZERO
000026af: ISZERO
000026b0: PUSH1 0x20
000026b2: DUP5
000026b3: ADD
000026b4: MSTORE
000026b5: DUP6
000026b6: PUSH1 0x40
000026b8: DUP5
000026b9: ADD
000026ba: MSTORE
000026bb: DUP1
000026bc: DUP6
000026bd: AND
000026be: PUSH1 0x60
000026c0: DUP5
000026c1: ADD
000026c2: MSTORE
000026c3: POP
000026c4: PUSH1 0xa0
000026c6: PUSH1 0x80
000026c8: DUP4
000026c9: ADD
000026ca: MSTORE
000026cb: PUSH2 0x223f
000026ce: PUSH1 0xa0
000026d0: DUP4
000026d1: ADD
000026d2: DUP5
000026d3: PUSH2 0x262a
000026d6: JUMP
000026d7: JUMPDEST
000026d8: DUP5
000026d9: DUP2
000026da: MSTORE
000026db: DUP4
000026dc: PUSH1 0x20
000026de: DUP3
000026df: ADD
000026e0: MSTORE
000026e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026f6: DUP4
000026f7: AND
000026f8: PUSH1 0x40
000026fa: DUP3
000026fb: ADD
000026fc: MSTORE
000026fd: PUSH1 0x80
000026ff: PUSH1 0x60
00002701: DUP3
00002702: ADD
00002703: MSTORE
00002704: PUSH1 0x00
00002706: PUSH2 0x2712
00002709: PUSH1 0x80
0000270b: DUP4
0000270c: ADD
0000270d: DUP5
0000270e: PUSH2 0x262a
00002711: JUMP
00002712: JUMPDEST
00002713: SWAP7
00002714: SWAP6
00002715: POP
00002716: POP
00002717: POP
00002718: POP
00002719: POP
0000271a: POP
0000271b: JUMP
0000271c: JUMPDEST
0000271d: PUSH1 0x20
0000271f: DUP2
00002720: MSTORE
00002721: PUSH1 0x00
00002723: PUSH2 0x20ad
00002726: PUSH1 0x20
00002728: DUP4
00002729: ADD
0000272a: DUP5
0000272b: PUSH2 0x262a
0000272e: JUMP
0000272f: JUMPDEST
00002730: PUSH1 0x00
00002732: DUP3
00002733: NOT
00002734: DUP3
00002735: GT
00002736: ISZERO
00002737: PUSH2 0x2742
0000273a: JUMPI
0000273b: PUSH2 0x2742
0000273e: PUSH2 0x2874
00002741: JUMP
00002742: JUMPDEST
00002743: POP
00002744: ADD
00002745: SWAP1
00002746: JUMP
00002747: JUMPDEST
00002748: PUSH1 0x00
0000274a: DUP3
0000274b: PUSH2 0x277d
0000274e: JUMPI
0000274f: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00002770: PUSH1 0x00
00002772: MSTORE
00002773: PUSH1 0x12
00002775: PUSH1 0x04
00002777: MSTORE
00002778: PUSH1 0x24
0000277a: PUSH1 0x00
0000277c: REVERT
0000277d: JUMPDEST
0000277e: POP
0000277f: DIV
00002780: SWAP1
00002781: JUMP
00002782: JUMPDEST
00002783: PUSH1 0x00
00002785: DUP2
00002786: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000027a7: DIV
000027a8: DUP4
000027a9: GT
000027aa: DUP3
000027ab: ISZERO
000027ac: ISZERO
000027ad: AND
000027ae: ISZERO
000027af: PUSH2 0x27ba
000027b2: JUMPI
000027b3: PUSH2 0x27ba
000027b6: PUSH2 0x2874
000027b9: JUMP
000027ba: JUMPDEST
000027bb: POP
000027bc: MUL
000027bd: SWAP1
000027be: JUMP
000027bf: JUMPDEST
000027c0: PUSH1 0x00
000027c2: DUP3
000027c3: DUP3
000027c4: LT
000027c5: ISZERO
000027c6: PUSH2 0x27d1
000027c9: JUMPI
000027ca: PUSH2 0x27d1
000027cd: PUSH2 0x2874
000027d0: JUMP
000027d1: JUMPDEST
000027d2: POP
000027d3: SUB
000027d4: SWAP1
000027d5: JUMP
000027d6: JUMPDEST
000027d7: PUSH1 0x00
000027d9: JUMPDEST
000027da: DUP4
000027db: DUP2
000027dc: LT
000027dd: ISZERO
000027de: PUSH2 0x27f1
000027e1: JUMPI
000027e2: DUP2
000027e3: DUP2
000027e4: ADD
000027e5: MLOAD
000027e6: DUP4
000027e7: DUP3
000027e8: ADD
000027e9: MSTORE
000027ea: PUSH1 0x20
000027ec: ADD
000027ed: PUSH2 0x27d9
000027f0: JUMP
000027f1: JUMPDEST
000027f2: DUP4
000027f3: DUP2
000027f4: GT
000027f5: ISZERO
000027f6: PUSH2 0x0848
000027f9: JUMPI
000027fa: POP
000027fb: POP
000027fc: PUSH1 0x00
000027fe: SWAP2
000027ff: ADD
00002800: MSTORE
00002801: JUMP
00002802: JUMPDEST
00002803: PUSH1 0x00
00002805: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002826: DUP3
00002827: EQ
00002828: ISZERO
00002829: PUSH2 0x2834
0000282c: JUMPI
0000282d: PUSH2 0x2834
00002830: PUSH2 0x2874
00002833: JUMP
00002834: JUMPDEST
00002835: POP
00002836: PUSH1 0x01
00002838: ADD
00002839: SWAP1
0000283a: JUMP
0000283b: JUMPDEST
0000283c: PUSH1 0x00
0000283e: PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000
0000285f: DUP3
00002860: EQ
00002861: ISZERO
00002862: PUSH2 0x286d
00002865: JUMPI
00002866: PUSH2 0x286d
00002869: PUSH2 0x2874
0000286c: JUMP
0000286d: JUMPDEST
0000286e: POP
0000286f: PUSH1 0x00
00002871: SUB
00002872: SWAP1
00002873: JUMP
00002874: JUMPDEST
00002875: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00002896: PUSH1 0x00
00002898: MSTORE
00002899: PUSH1 0x11
0000289b: PUSH1 0x04
0000289d: MSTORE
0000289e: PUSH1 0x24
000028a0: PUSH1 0x00
000028a2: REVERT
000028a3: JUMPDEST
000028a4: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000028c5: PUSH1 0x00
000028c7: MSTORE
000028c8: PUSH1 0x32
000028ca: PUSH1 0x04
000028cc: MSTORE
000028cd: PUSH1 0x24
000028cf: PUSH1 0x00
000028d1: REVERT
000028d2: JUMPDEST
000028d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000028e8: DUP2
000028e9: AND
000028ea: DUP2
000028eb: EQ
000028ec: PUSH2 0x28f4
000028ef: JUMPI
000028f0: PUSH1 0x00
000028f2: DUP1
000028f3: REVERT
000028f4: JUMPDEST
000028f5: POP
000028f6: JUMP
000028f7: INVALID
000028f8: LOG2
000028f9: PUSH5 0x6970667358
000028ff: UNKNOWN(0x22)
00002900: SLT
00002901: KECCAK256
00002902: ORIGIN
00002903: SWAP6
00002904: PUSH6 0x74c9dedf8a50
0000290b: UNKNOWN(0x2A)
0000290c: UNKNOWN(0xEC)
0000290d: BYTE
0000290e: PUSH7 0xf71fd2cea03abc
00002916: UNKNOWN(0xA8)
00002917: PUSH32

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xf0ba3261",
            "selector": "0xf0ba3261",
            "calldata_variants": [
                "0xf0ba3261",
                "0xf0ba32610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf31fad00",
            "selector": "0xf31fad00",
            "calldata_variants": [
                "0xf31fad00",
                "0xf31fad000000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa461e33",
            "selector": "0xfa461e33",
            "calldata_variants": [
                "0xfa461e33",
                "0xfa461e330000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeeaf04b1",
            "selector": "0xeeaf04b1",
            "calldata_variants": [
                "0xeeaf04b1",
                "0xeeaf04b10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeebe9378",
            "selector": "0xeebe9378",
            "calldata_variants": [
                "0xeebe9378",
                "0xeebe93780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xca04108f",
            "selector": "0xca04108f",
            "calldata_variants": [
                "0xca04108f",
                "0xca04108f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcc9fb041",
            "selector": "0xcc9fb041",
            "calldata_variants": [
                "0xcc9fb041",
                "0xcc9fb0410000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd4fae269",
            "selector": "0xd4fae269",
            "calldata_variants": [
                "0xd4fae269",
                "0xd4fae2690000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 10498,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xcea1b50e4b94ac7c374c4cfaa334269020af949d78bcf96417f039604d544066
call_targets: 0xd249942f6d417cbfdcb792b1229353b66c790726
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xcea1b50e4b94ac7c374c4cfaa334269020af949d78bcf96417f039604d544066",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xd249942f6d417cbfdcb792b1229353b66c790726"
    ],
    "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": "0xf0ba3261",
            "selector": "0xf0ba3261",
            "calldata_variants": [
                "0xf0ba3261",
                "0xf0ba32610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf31fad00",
            "selector": "0xf31fad00",
            "calldata_variants": [
                "0xf31fad00",
                "0xf31fad000000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa461e33",
            "selector": "0xfa461e33",
            "calldata_variants": [
                "0xfa461e33",
                "0xfa461e330000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeeaf04b1",
            "selector": "0xeeaf04b1",
            "calldata_variants": [
                "0xeeaf04b1",
                "0xeeaf04b10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeebe9378",
            "selector": "0xeebe9378",
            "calldata_variants": [
                "0xeebe9378",
                "0xeebe93780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xca04108f",
            "selector": "0xca04108f",
            "calldata_variants": [
                "0xca04108f",
                "0xca04108f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcc9fb041",
            "selector": "0xcc9fb041",
            "calldata_variants": [
                "0xcc9fb041",
                "0xcc9fb0410000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd4fae269",
            "selector": "0xd4fae269",
            "calldata_variants": [
                "0xd4fae269",
                "0xd4fae2690000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1714,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2819,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3375,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 5,
    "guards_detected": [
        {
            "pc": 10498,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xcea1b50e4b94ac7c374c4cfaa334269020af949d78bcf96417f039604d544066
call_targets: 0xd249942f6d417cbfdcb792b1229353b66c790726
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xcea1b50e4b94ac7c374c4cfaa334269020af949d78bcf96417f039604d544066",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xd249942f6d417cbfdcb792b1229353b66c790726"
    ],
    "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": "0xf0ba3261",
            "selector": "0xf0ba3261",
            "calldata_variants": [
                "0xf0ba3261",
                "0xf0ba32610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf31fad00",
            "selector": "0xf31fad00",
            "calldata_variants": [
                "0xf31fad00",
                "0xf31fad000000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa461e33",
            "selector": "0xfa461e33",
            "calldata_variants": [
                "0xfa461e33",
                "0xfa461e330000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeeaf04b1",
            "selector": "0xeeaf04b1",
            "calldata_variants": [
                "0xeeaf04b1",
                "0xeeaf04b10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeebe9378",
            "selector": "0xeebe9378",
            "calldata_variants": [
                "0xeebe9378",
                "0xeebe93780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xca04108f",
            "selector": "0xca04108f",
            "calldata_variants": [
                "0xca04108f",
                "0xca04108f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcc9fb041",
            "selector": "0xcc9fb041",
            "calldata_variants": [
                "0xcc9fb041",
                "0xcc9fb0410000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd4fae269",
            "selector": "0xd4fae269",
            "calldata_variants": [
                "0xd4fae269",
                "0xd4fae2690000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1714,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2819,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3375,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 5,
    "guards_detected": [
        {
            "pc": 10498,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 5
}
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": 12
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 12
}