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

Analysis Run

b23bd55a-ce02-4edc-93f9-fc81e6d480ba

complete
Chain ID
1
Address
Block Number
Created
Wed, Dec 31, 2025 11:57 PM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30975 report.consolidate complete 1 / 1 3 months ago
94861 artifact.fetch complete 1 / 3 1 week ago
94862 tool.cast_disasm complete 1 / 3 1 week ago
94863 analysis.bundle complete 1 / 3 1 week ago
94864 capability.graph complete 1 / 3 1 week ago
94865 detector.run complete 1 / 3 1 week ago
94866 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
0
No findings?
yes
Summary
Reviewed runtime bytecode; no DELEGATECALL/SELFDESTRUCT and no clearly unrestricted value-transfer or arbitrary-call paths were identified. External CALL sites appear to be behind owner/executor-style checks, so no concrete profit extraction path is evident from bytecode alone.
View stderr
[codex:645894] OpenAI Codex v0.77.0 (research preview)
[codex:645894] --------
[codex:645894] workdir: /tmp/codex-multi-0md3bvuw
[codex:645894] model: gpt-5.2-codex
[codex:645894] provider: openai
[codex:645894] approval: never
[codex:645894] sandbox: read-only
[codex:645894] reasoning effort: xhigh
[codex:645894] reasoning summaries: auto
[codex:645894] session id: 019b76d4-13c2-7353-9e16-f73f197244b5
[codex:645894] --------
[codex:645894] user
[codex:645894] You are a profit-focused exploit hunter analyzing EVM bytecode. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:645894] 
[codex:645894] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:645894] 
[codex:645894] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:645894] - Gas inefficiency, code quality, or best practices
[codex:645894] - Theoretical vulnerabilities without a clear extraction path
[codex:645894] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:645894] - Issues requiring social engineering or off-chain coordination
[codex:645894] 
[codex:645894] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:645894] - CALL/DELEGATECALL with controllable destination or calldata
[codex:645894] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:645894] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:645894] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:645894] - External calls before state updates (reentrancy)
[codex:645894] - SELFDESTRUCT with controllable beneficiary
[codex:645894] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:645894] 
[codex:645894] For each finding, you MUST explain:
[codex:645894] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:645894] 2. The concrete sequence of transactions to extract value
[codex:645894] 3. Why you believe this is exploitable (not just suspicious)
[codex:645894] 
[codex:645894] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:645894] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:645894] 
[codex:645894] Output MUST be valid JSON matching the provided schema.
[codex:645894] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:645894] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:645894] mcp startup: no servers
[codex:645894] 
[codex:645894] thinking
[codex:645894] **Reviewing BYTECODE_BUNDLE.txt instructions**
[codex:645894] exec
[codex:645894] /bin/bash -lc ls in /tmp/codex-multi-0md3bvuw succeeded in 6ms:
[codex:645894] BYTECODE_BUNDLE.txt
[codex:645894] codex-output-schema.json
[codex:645894] exec
[codex:645894] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-0md3bvuw succeeded in 5ms:
[codex:645894] Runtime bytecode bundle for best-effort auditing.
[codex:645894] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:645894] 
[codex:645894] FILE: runtime_bytecode.hex
[codex:645894] 0x6080604052600436106102f55760003560e01c8063adc9772e1161018f578063da3e3397116100e1578063f2a38f651161008a578063f61e8d4d11610064578063f61e8d4d1461085d578063fa09e6301461087d578063fcc49d1d1461089d576102fc565b8063f2a38f65146107fd578063f2fde38b1461081d578063f3fef3a31461083d576102fc565b8063eaafe247116100bb578063eaafe2471461079d578063ed866cef146107bd578063f018a8c1146107dd576102fc565b8063da3e33971461073d578063e4a767261461075d578063e676ea951461077d576102fc565b8063c2a672e011610143578063c4e2c1e61161011d578063c4e2c1e6146106dd578063d752fab2146106fd578063da1c75501461071d576102fc565b8063c2a672e01461067d578063c351666f1461069d578063c42fa7f4146106bd576102fc565b8063af88dc4711610174578063af88dc471461061d578063b61d27f61461063d578063b6703fcd1461065d576102fc565b8063adc9772e146105dd578063ae59ef9a146105fd576102fc565b80633419ba231161024857806367974ca4116101fc5780638da5cb5b116101d65780638da5cb5b1461056e5780639ac2a011146105905780639e546c38146105bd576102fc565b806367974ca414610519578063715018a6146105395780637f3714611461054e576102fc565b8063498ad7511161022d578063498ad751146104b95780634dc92fd4146104d95780635a08a245146104f9576102fc565b80633419ba2314610479578063348645d114610499576102fc565b806312a9aa49116102aa5780631c58db4f116102845780631c58db4f146104195780631f5a0bbe146104395780632478842914610459576102fc565b806312a9aa49146103b957806314a08b36146103d9578063171c3318146103f9576102fc565b80630de9fac6116102db5780630de9fac6146103595780630e801ee1146103795780630fd9a25514610399576102fc565b8062eb8ba414610301578063077d97d714610337576102fc565b366102fc57005b600080fd5b34801561030d57600080fd5b5061032161031c366004614123565b6108bd565b60405161032e9190614bc6565b60405180910390f35b34801561034357600080fd5b506103576103523660046144dd565b61099d565b005b34801561036557600080fd5b50610321610374366004614235565b610ace565b34801561038557600080fd5b506103576103943660046140eb565b610b62565b3480156103a557600080fd5b506103216103b4366004614450565b610c5d565b3480156103c557600080fd5b506103216103d4366004614235565b610cea565b3480156103e557600080fd5b506103216103f4366004614375565b610d71565b34801561040557600080fd5b50610357610414366004614425565b610df8565b34801561042557600080fd5b5061035761043436600461465a565b6110e9565b34801561044557600080fd5b506103576104543660046140eb565b6111d1565b34801561046557600080fd5b506103576104743660046140eb565b6112e5565b34801561048557600080fd5b50610357610494366004614123565b6113f3565b3480156104a557600080fd5b506103216104b4366004614287565b611476565b3480156104c557600080fd5b506103216104d4366004614325565b61151c565b3480156104e557600080fd5b506103576104f436600461468a565b6115b6565b34801561050557600080fd5b506103216105143660046142e0565b611782565b34801561052557600080fd5b506103216105343660046143c3565b61180d565b34801561054557600080fd5b50610357611897565b34801561055a57600080fd5b5061035761056936600461468a565b611979565b34801561057a57600080fd5b50610583611a9b565b60405161032e9190614710565b34801561059c57600080fd5b506105b06105ab3660046140eb565b611ab7565b60405161032e9190614840565b3480156105c957600080fd5b506103216105d83660046140eb565b611acc565b3480156105e957600080fd5b506103576105f8366004614425565b611bb1565b34801561060957600080fd5b506105b06106183660046140eb565b611c8d565b34801561062957600080fd5b506105836106383660046140eb565b611ca2565b34801561064957600080fd5b50610357610658366004614486565b611cca565b34801561066957600080fd5b5061035761067836600461415b565b611da0565b34801561068957600080fd5b50610357610698366004614425565b611e2b565b3480156106a957600080fd5b506103576106b836600461416d565b611eed565b3480156106c957600080fd5b506105836106d8366004614425565b61203a565b3480156106e957600080fd5b506103576106f8366004614450565b61207c565b34801561070957600080fd5b506103216107183660046141f5565b6120fa565b34801561072957600080fd5b506103576107383660046140eb565b61252a565b34801561074957600080fd5b506103576107583660046141f5565b6125e4565b34801561076957600080fd5b506103216107783660046141f5565b612662565b34801561078957600080fd5b506105836107983660046140eb565b6127b6565b3480156107a957600080fd5b506105b06107b83660046140eb565b6127de565b3480156107c957600080fd5b506103216107d8366004614287565b6127f3565b3480156107e957600080fd5b506103576107f836600461465a565b61288d565b34801561080957600080fd5b50610357610818366004614123565b61294d565b34801561082957600080fd5b506103576108383660046140eb565b612a13565b34801561084957600080fd5b50610357610858366004614425565b612b60565b34801561086957600080fd5b50610321610878366004614325565b612bde565b34801561088957600080fd5b506103576108983660046140eb565b612c6b565b3480156108a957600080fd5b506103216108b83660046142e0565b612cf6565b6000805b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602052604090205481101561095b5773ffffffffffffffffffffffffffffffffffffffff84811660009081526004602052604090208054918516918390811061092457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415610953579050610997565b6001016108c1565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e9061490a565b60405180910390fd5b92915050565b6109a5612d72565b73ffffffffffffffffffffffffffffffffffffffff166109c3611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614610a10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b60005b8351811015610ac857838181518110610a2857fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16838281518110610a5257fe5b6020026020010151838381518110610a6657fe5b6020026020010151604051610a7b91906146f1565b60006040518083038185875af1925050503d8060008114610ab8576040519150601f19603f3d011682016040523d82523d6000602084013e610abd565b606091505b505050600101610a13565b50505050565b600033610ad9611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480610b0a57503360009081526001602052604090205460ff165b610b40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6000610b4d868686612662565b9050610b598382611bb1565b95945050505050565b33610b6b611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480610b9c57503360009081526001602052604090205460ff165b610bd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6002546040517fdd289d6000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063dd289d6090610c28908490600401614710565b600060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b5050505050565b600033610c68611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480610c9957503360009081526001602052604090205460ff165b610ccf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b610cd98284611e2b565b610ce38484610df8565b9392505050565b600033610cf5611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480610d2657503360009081526001602052604090205460ff165b610d5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b610d668284611e2b565b610b598585856120fa565b600033610d7c611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480610dad57503360009081526001602052604090205460ff165b610de3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6000610df0848483612d76565b949350505050565b33610e01611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480610e3257503360009081526001602052604090205460ff165b610e68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205460608167ffffffffffffffff81118015610ea757600080fd5b50604051908082528060200260200182016040528015610ed1578160200160208202803683370190505b50905060005b82811015610f5b5773ffffffffffffffffffffffffffffffffffffffff851660009081526004602052604090208054610f3c919083908110610f1557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16611acc565b828281518110610f4857fe5b6020908102919091010152600101610ed7565b508160021415610f7457610f6f8484612fca565b610fb9565b8160031415610f8757610f6f848461317a565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a0c565b60608267ffffffffffffffff81118015610fd257600080fd5b50604051908082528060200260200182016040528015610ffc578160200160208202803683370190505b50905060005b838110156110935761107483828151811061101957fe5b602002602001015161106e600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610f1557fe5b906132bb565b82828151811061108057fe5b6020908102919091010152600101611002565b508473ffffffffffffffffffffffffffffffffffffffff167fd2602de014927617147990f1eaef38f72e9787acf22aa14785cefe59164eef1c826040516110da91906147fc565b60405180910390a25050505050565b336110f2611a9b565b73ffffffffffffffffffffffffffffffffffffffff16148061112357503360009081526001602052604090205460ff165b611159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156111b557600080fd5b505af11580156111c9573d6000803e3d6000fd5b505050505050565b6111d9612d72565b73ffffffffffffffffffffffffffffffffffffffff166111f7611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b8073ffffffffffffffffffffffffffffffffffffffff167f9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea2600160405161128b9190614840565b60405180910390a273ffffffffffffffffffffffffffffffffffffffff16600090815260016020819052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055565b6112ed612d72565b73ffffffffffffffffffffffffffffffffffffffff1661130b611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614611358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b8073ffffffffffffffffffffffffffffffffffffffff167f9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea2600060405161139f9190614840565b60405180910390a273ffffffffffffffffffffffffffffffffffffffff16600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6113fb612d72565b73ffffffffffffffffffffffffffffffffffffffff16611419611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614611466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b611472828260006132fd565b5050565b600033611481611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614806114b257503360009081526001602052604090205460ff165b6114e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b60006114f38361331e565b90506000611502848888612662565b905061151088838388610ace565b98975050505050505050565b600033611527611a9b565b73ffffffffffffffffffffffffffffffffffffffff16148061155857503360009081526001602052604090205460ff165b61158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b600061159b838787612662565b905060006115a88461331e565b905061151088828488611782565b336115bf611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614806115f057503360009081526001602052604090205460ff165b611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b61162e613e5d565b6008546040517f1526fe2700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690631526fe2790611684908690600401614bc6565b60c06040518083038186803b15801561169c57600080fd5b505afa1580156116b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d491906145cc565b60608101516040517fc32e720200000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063c32e720290611730908590600190600401614c3f565b602060405180830381600087803b15801561174a57600080fd5b505af115801561175e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac891906145b0565b60003361178d611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614806117be57503360009081526001602052604090205460ff165b6117f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6000611801868686612662565b9050610b598382611979565b600033611818611a9b565b73ffffffffffffffffffffffffffffffffffffffff16148061184957503360009081526001602052604090205460ff165b61187f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b600061188b8585610d71565b9050610df08382611bb1565b61189f612d72565b73ffffffffffffffffffffffffffffffffffffffff166118bd611a9b565b73ffffffffffffffffffffffffffffffffffffffff161461190a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b33611982611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614806119b357503360009081526001602052604090205460ff165b6119e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6008546040517f43a0d06600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906343a0d06690611a449085908590600190600401614c88565b602060405180830381600087803b158015611a5e57600080fd5b505af1158015611a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9691906145b0565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60016020526000908152604090205460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415611b07575047611bac565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906370a0823190611b59903090600401614710565b60206040518083038186803b158015611b7157600080fd5b505afa158015611b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba99190614672565b90505b919050565b33611bba611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480611beb57503360009081526001602052604090205460ff165b611c21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6040517fb6b55f2500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063b6b55f2590611c73908490600401614bc6565b600060405180830381600087803b1580156111b557600080fd5b60066020526000908152604090205460ff1681565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b611cd2612d72565b73ffffffffffffffffffffffffffffffffffffffff16611cf0611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614611d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b8273ffffffffffffffffffffffffffffffffffffffff168282604051611d6391906146f1565b60006040518083038185875af1925050503d80600081146111c9576040519150601f19603f3d011682016040523d82523d6000602084013e6111c9565b611da8612d72565b73ffffffffffffffffffffffffffffffffffffffff16611dc6611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614611e13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b6000611e1e83613454565b9050611a96838284613520565b33611e34611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480611e6557503360009081526001602052604090205460ff165b611e9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831690632e1a7d4d90611c73908490600401614bc6565b33611ef6611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480611f2757503360009081526001602052604090205460ff165b611f5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b73ffffffffffffffffffffffffffffffffffffffff858116600090815260036020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001694891694909417909355600481529190208451611fc992860190613e92565b5073ffffffffffffffffffffffffffffffffffffffff909416600090815260056020908152604080832080549415157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0095861617905560069091529020805494151594909116939093179092555050565b6004602052816000526040600020818154811061205357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169150829050565b612084612d72565b73ffffffffffffffffffffffffffffffffffffffff166120a2611a9b565b73ffffffffffffffffffffffffffffffffffffffff16146120ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b611a96838383613520565b600033612105611a9b565b73ffffffffffffffffffffffffffffffffffffffff16148061213657503360009081526001602052604090205460ff165b61216c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b73ffffffffffffffffffffffffffffffffffffffff848116600090815260076020526040812054909116156121c85773ffffffffffffffffffffffffffffffffffffffff808616600090815260076020526040902054166121ca565b845b905060006121d886866108bd565b905060006121e586611acc565b73ffffffffffffffffffffffffffffffffffffffff881660009081526006602090815260408083205460059092529091205491925060ff90811691161561234c5780156122bd576040517f8f15b6b500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690638f15b6b5906122869089908790600090600190600401614cb6565b600060405180830381600087803b1580156122a057600080fd5b505af11580156122b4573d6000803e3d6000fd5b50505050612347565b6040517ff1dc3cc900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f1dc3cc9906123149089908790600090600401614ca0565b600060405180830381600087803b15801561232e57600080fd5b505af1158015612342573d6000803e3d6000fd5b505050505b612436565b80156123ac576040517f517a55a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063517a55a3906123149089908790600090600190600401614c68565b6040517f1a4d01d200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690631a4d01d2906124039089908790600090600401614c4f565b600060405180830381600087803b15801561241d57600080fd5b505af1158015612431573d6000803e3d6000fd5b505050505b60006124458361106e8a611acc565b73ffffffffffffffffffffffffffffffffffffffff8a1660009081526004602052604090205490915060608167ffffffffffffffff8111801561248757600080fd5b506040519080825280602002602001820160405280156124b1578160200160208202803683370190505b509050828187815181106124c157fe5b6020026020010181815250508a73ffffffffffffffffffffffffffffffffffffffff167fd2602de014927617147990f1eaef38f72e9787acf22aa14785cefe59164eef1c8260405161251391906147fc565b60405180910390a250909998505050505050505050565b612532612d72565b73ffffffffffffffffffffffffffffffffffffffff16612550611a9b565b73ffffffffffffffffffffffffffffffffffffffff161461259d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6125ec612d72565b73ffffffffffffffffffffffffffffffffffffffff1661260a611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614612657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b611a968383836132fd565b60003361266d611a9b565b73ffffffffffffffffffffffffffffffffffffffff16148061269e57503360009081526001602052604090205460ff165b6126d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b600073ffffffffffffffffffffffffffffffffffffffff841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1461270e576000612710565b825b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602052604090205490915060609067ffffffffffffffff8111801561275257600080fd5b5060405190808252806020026020018201604052801561277c578160200160208202803683370190505b509050838161278b88886108bd565b8151811061279557fe5b6020026020010181815250506127ac868284612d76565b9695505050505050565b60076020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60056020526000908152604090205460ff1681565b6000336127fe611a9b565b73ffffffffffffffffffffffffffffffffffffffff16148061282f57503360009081526001602052604090205460ff165b612865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b60006128708361331e565b9050600061288088838888610cea565b90506115108488836120fa565b33612896611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614806128c757503360009081526001602052604090205460ff165b6128fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290632e1a7d4d90610c28908490600401614bc6565b612955612d72565b73ffffffffffffffffffffffffffffffffffffffff16612973611a9b565b73ffffffffffffffffffffffffffffffffffffffff16146129c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b612a1b612d72565b73ffffffffffffffffffffffffffffffffffffffff16612a39611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614612a86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b73ffffffffffffffffffffffffffffffffffffffff8116612ad3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614941565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612b68612d72565b73ffffffffffffffffffffffffffffffffffffffff16612b86611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614612bd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b611472828233613520565b600033612be9611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480612c1a57503360009081526001602052604090205460ff165b612c50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b6000612c5b8361331e565b9050600061288088838888612cf6565b612c73612d72565b73ffffffffffffffffffffffffffffffffffffffff16612c91611a9b565b73ffffffffffffffffffffffffffffffffffffffff1614612cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a43565b6000612ce982613454565b9050611472828233613520565b600033612d01611a9b565b73ffffffffffffffffffffffffffffffffffffffff161480612d3257503360009081526001602052604090205460ff165b612d68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614a78565b610d6682846115b6565b3390565b73ffffffffffffffffffffffffffffffffffffffff838116600090815260076020526040812054909116612ebc576f22d53366457f9d5e68ec105046fc438373ffffffffffffffffffffffffffffffffffffffff1663a262904b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612dfa57600080fd5b505afa158015612e0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e329190614107565b73ffffffffffffffffffffffffffffffffffffffff166355b30b19856040518263ffffffff1660e01b8152600401612e6a9190614710565b60206040518083038186803b158015612e8257600080fd5b505afa158015612e96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eba9190614672565b505b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600360205260408120549091612eef9116611acc565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600460205260409020549091506002811415612f3157612f2c868686613704565b612f45565b8060031415610f8757612f2c868686613912565b8573ffffffffffffffffffffffffffffffffffffffff167f8a07cc9636edd256126516f66fbc1eb9bfa42631953cc7ffb96dbb4dd7c7360b86604051612f8b91906147fc565b60405180910390a273ffffffffffffffffffffffffffffffffffffffff8087166000908152600360205260409020546127ac91849161106e9116611acc565b73ffffffffffffffffffffffffffffffffffffffff828116600090815260076020526040812054909116156130265773ffffffffffffffffffffffffffffffffffffffff80841660009081526007602052604090205416613028565b825b9050613032613f1c565b73ffffffffffffffffffffffffffffffffffffffff841660009081526006602052604090205460ff16156130ee576040517f269b558100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063269b5581906130b79086908590600190600401614be3565b600060405180830381600087803b1580156130d157600080fd5b505af11580156130e5573d6000803e3d6000fd5b50505050610ac8565b6040517f5b36389c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831690635b36389c906131429086908590600401614bcf565b600060405180830381600087803b15801561315c57600080fd5b505af1158015613170573d6000803e3d6000fd5b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff828116600090815260076020526040812054909116156131d65773ffffffffffffffffffffffffffffffffffffffff808416600090815260076020526040902054166131d8565b825b90506131e2613f3a565b73ffffffffffffffffffffffffffffffffffffffff841660009081526006602052604090205460ff1615613267576040517ffce6473600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063fce64736906130b79086908590600190600401614c1b565b6040517fecb586a500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063ecb586a5906131429086908590600401614c07565b6000828211156132f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e9061499e565b50900390565b611a9673ffffffffffffffffffffffffffffffffffffffff84168383613ad9565b6000806f22d53366457f9d5e68ec105046fc438373ffffffffffffffffffffffffffffffffffffffff1663a262904b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561337757600080fd5b505afa15801561338b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133af9190614107565b6040517f3795104900000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff821690633795104990613404908690600401614710565b60206040518083038186803b15801561341c57600080fd5b505afa158015613430573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce39190614107565b600073ffffffffffffffffffffffffffffffffffffffff821615613519576040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906370a08231906134c4903090600401614710565b60206040518083038186803b1580156134dc57600080fd5b505afa1580156134f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135149190614672565b611ba9565b5047919050565b73ffffffffffffffffffffffffffffffffffffffff811661356d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e906148d3565b600061357884613454565b9050828110156135b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e906149d5565b73ffffffffffffffffffffffffffffffffffffffff84166136785760008273ffffffffffffffffffffffffffffffffffffffff16846040516135f59061470d565b60006040518083038185875af1925050503d8060008114613632576040519150601f19603f3d011682016040523d82523d6000602084013e613637565b606091505b5050905080613672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e9061489c565b50613699565b61369973ffffffffffffffffffffffffffffffffffffffff85168385613c5e565b8373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f9207361cc2a04b9c7a06691df1eb87c6a63957ae88bf01d0d18c81e3d1272099856040516136f69190614bc6565b60405180910390a350505050565b61370c613f1c565b8260008151811061371957fe5b60200260200101518160006002811061372e57fe5b602002015282518390600190811061374257fe5b60200260200101518160016002811061375757fe5b6020908102919091019190915273ffffffffffffffffffffffffffffffffffffffff85811660009081526007909252604082205416156137be5773ffffffffffffffffffffffffffffffffffffffff808616600090815260076020526040902054166137c0565b845b73ffffffffffffffffffffffffffffffffffffffff861660009081526006602052604090205490915060ff1615613882576040517fee22be2300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063ee22be2390859061384b908690600090600190600401614799565b6000604051808303818588803b15801561386457600080fd5b505af1158015613878573d6000803e3d6000fd5b5050505050610c56565b6040517f0b4c7e4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630b4c7e4d9085906138d990869060009060040161477e565b6000604051808303818588803b1580156138f257600080fd5b505af1158015613906573d6000803e3d6000fd5b50505050505050505050565b61391a613f3a565b8260008151811061392757fe5b60200260200101518160006003811061393c57fe5b602002015282518390600190811061395057fe5b60200260200101518160016003811061396557fe5b602002015282518390600290811061397957fe5b60200260200101518160026003811061398e57fe5b6020908102919091019190915273ffffffffffffffffffffffffffffffffffffffff85811660009081526007909252604082205416156139f55773ffffffffffffffffffffffffffffffffffffffff808616600090815260076020526040902054166139f7565b845b73ffffffffffffffffffffffffffffffffffffffff861660009081526006602052604090205490915060ff1615613a82576040517f2b6e993a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690632b6e993a90859061384b9086906000906001906004016147d8565b6040517f4515cef300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690634515cef39085906138d99086906000906004016147bd565b801580613b8757506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063dd62ed3e90613b359030908690600401614731565b60206040518083038186803b158015613b4d57600080fd5b505afa158015613b61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b859190614672565b155b613bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614b69565b611a968363095ea7b360e01b8484604051602401613bdc929190614758565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613c7d565b611a968363a9059cbb60e01b8484604051602401613bdc929190614758565b6060613cdf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16613d339092919063ffffffff16565b805190915015611a965780806020019051810190613cfd91906145b0565b611a96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614b0c565b6060610df0848460008585613d4785613e04565b613d7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e90614ad5565b600060608673ffffffffffffffffffffffffffffffffffffffff168587604051613da791906146f1565b60006040518083038185875af1925050503d8060008114613de4576040519150601f19603f3d011682016040523d82523d6000602084013e613de9565b606091505b5091509150613df9828286613e0a565b979650505050505050565b3b151590565b60608315613e19575081610ce3565b825115613e295782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e919061484b565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b828054828255906000526020600020908101928215613f0c579160200282015b82811115613f0c57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190613eb2565b50613f18929150613f58565b5090565b60405180604001604052806002906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b5b80821115613f185780547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155600101613f59565b600082601f830112613f9f578081fd5b8135613fb2613fad82614cfa565b614cd3565b818152915060208083019084810181840286018201871015613fd357600080fd5b60005b84811015613ffb578135613fe981614d46565b84529282019290820190600101613fd6565b505050505092915050565b600082601f830112614016578081fd5b8135614024613fad82614cfa565b81815291506020808301908481018184028601820187101561404557600080fd5b60005b84811015613ffb57813584529282019290820190600101614048565b600082601f830112614074578081fd5b813567ffffffffffffffff81111561408a578182fd5b6140bb60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614cd3565b91508082528360208285010111156140d257600080fd5b8060208401602084013760009082016020015292915050565b6000602082840312156140fc578081fd5b8135610ce381614d46565b600060208284031215614118578081fd5b8151610ce381614d46565b60008060408385031215614135578081fd5b823561414081614d46565b9150602083013561415081614d46565b809150509250929050565b60008060408385031215614135578182fd5b600080600080600060a08688031215614184578081fd5b853561418f81614d46565b9450602086013561419f81614d46565b9350604086013567ffffffffffffffff8111156141ba578182fd5b6141c688828901613f8f565b93505060608601356141d781614d6b565b915060808601356141e781614d6b565b809150509295509295909350565b600080600060608486031215614209578283fd5b833561421481614d46565b9250602084013561422481614d46565b929592945050506040919091013590565b6000806000806080858703121561424a578384fd5b843561425581614d46565b9350602085013561426581614d46565b925060408501359150606085013561427c81614d46565b939692955090935050565b600080600080600060a0868803121561429e578283fd5b85356142a981614d46565b945060208601356142b981614d46565b93506040860135925060608601356142d081614d46565b915060808601356141e781614d46565b600080600080608085870312156142f5578182fd5b843561430081614d46565b9350602085013561431081614d46565b93969395505050506040820135916060013590565b600080600080600060a0868803121561433c578283fd5b853561434781614d46565b9450602086013561435781614d46565b9350604086013592506060860135915060808601356141e781614d46565b60008060408385031215614387578182fd5b823561439281614d46565b9150602083013567ffffffffffffffff8111156143ad578182fd5b6143b985828601614006565b9150509250929050565b6000806000606084860312156143d7578081fd5b83356143e281614d46565b9250602084013567ffffffffffffffff8111156143fd578182fd5b61440986828701614006565b925050604084013561441a81614d46565b809150509250925092565b60008060408385031215614437578182fd5b823561444281614d46565b946020939093013593505050565b600080600060608486031215614464578081fd5b833561446f81614d46565b925060208401359150604084013561441a81614d46565b60008060006060848603121561449a578081fd5b83356144a581614d46565b925060208401359150604084013567ffffffffffffffff8111156144c7578182fd5b6144d386828701614064565b9150509250925092565b6000806000606084860312156144f1578081fd5b833567ffffffffffffffff80821115614508578283fd5b61451487838801613f8f565b945060209150818601358181111561452a578384fd5b61453688828901614006565b94505060408601358181111561454a578384fd5b86019050601f8101871361455c578283fd5b803561456a613fad82614cfa565b81815283810190838501865b8481101561459f5761458d8c888435890101614064565b84529286019290860190600101614576565b505080955050505050509250925092565b6000602082840312156145c1578081fd5b8151610ce381614d6b565b600060c082840312156145dd578081fd5b6145e760c0614cd3565b82516145f281614d46565b8152602083015161460281614d46565b6020820152604083015161461581614d46565b6040820152606083015161462881614d46565b6060820152608083015161463b81614d46565b608082015260a083015161464e81614d6b565b60a08201529392505050565b60006020828403121561466b578081fd5b5035919050565b600060208284031215614683578081fd5b5051919050565b6000806040838503121561469c578182fd5b50508035926020909101359150565b8060005b6002811015610ac85781518452602093840193909101906001016146af565b8060005b6003811015610ac85781518452602093840193909101906001016146d2565b60008251614703818460208701614d1a565b9190910192915050565b90565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6060810161478c82856146ab565b8260408301529392505050565b608081016147a782866146ab565b8360408301528215156060830152949350505050565b608081016147cb82856146ce565b8260608301529392505050565b60a081016147e682866146ce565b8360608301528215156080830152949350505050565b6020808252825182820181905260009190848201906040850190845b8181101561483457835183529284019291840191600101614818565b50909695505050505050565b901515815260200190565b600060208252825180602084015261486a816040850160208701614d1a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526017908201527f4e6174697665207472616e73666572206661696c65642e000000000000000000604082015260600190565b6020808252600f908201527f496e76616c696420616464726573730000000000000000000000000000000000604082015260600190565b6020808252600c908201527f4d697373696e6720636f696e0000000000000000000000000000000000000000604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601e908201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604082015260600190565b60208082526012908201527f496e73756666696369656e742066756e64730000000000000000000000000000604082015260600190565b60208082526016908201527f4d697373696e6720696d706c656d656e746174696f6e00000000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526026908201527f45786563757461626c653a2063616c6c6572206973206e6f742074686520657860408201527f656375746f720000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606082015260800190565b90815260200190565b82815260608101610ce360208301846146ab565b83815260808101614bf760208301856146ab565b8215156060830152949350505050565b82815260808101610ce360208301846146ce565b83815260a08101614c2f60208301856146ce565b8215156080830152949350505050565b9182521515602082015260400190565b928352600f9190910b6020830152604082015260600190565b938452600f9290920b602084015260408301521515606082015260800190565b92835260208301919091521515604082015260600190565b9283526020830191909152604082015260600190565b938452602084019290925260408301521515606082015260800190565b60405181810167ffffffffffffffff81118282101715614cf257600080fd5b604052919050565b600067ffffffffffffffff821115614d10578081fd5b5060209081020190565b60005b83811015614d35578181015183820152602001614d1d565b83811115610ac85750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114614d6857600080fd5b50565b8015158114614d6857600080fdfea2646970667358221220f6d0682f5aad73e9de7290c0583c8ec24a84cf2bdc4ae98714c50ece79eadff564736f6c634300060c0033
[codex:645894] 
[codex:645894] thinking
[codex:645894] **Analyzing bytecode for vulnerabilities**
[codex:645894] 
[codex:645894] I'm working on parsing the contract's bytecode to find exploitable delegatecall patterns and unprotected fund transfers, using a custom Python EVM disassembler to identify critical opcodes and access controls in this complex multisig-like contract. Let's explore its structure carefully to spot any gaps in authorization or unsafe external calls.
[codex:645894] exec
[codex:645894] /bin/bash -lc "python - <<'PY'
[codex:645894] from pathlib import Path
[codex:645894] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:645894] # extract hex after 'FILE: runtime_bytecode.hex' and '0x'
[codex:645894] import re
[codex:645894] m = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata)
[codex:645894] if not m:
[codex:645894]     raise SystemExit('no hex found')
[codex:645894] hexstr = m.group(1)
[codex:645894] code = bytes.fromhex(hexstr)
[codex:645894] print('len', len(code))
[codex:645894] 
[codex:645894] # opcode table
[codex:645894] ops = { 
[codex:645894]     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:645894]     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:645894]     0x20:'SHA3',
[codex:645894]     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:645894]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:645894]     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:645894]     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:645894]     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:645894]     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:645894]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:645894]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:645894] }
[codex:645894] 
[codex:645894] # disassemble
[codex:645894] instrs = []
[codex:645894] i = 0
[codex:645894] while i < len(code):
[codex:645894]     op = code[i]
[codex:645894]     name = ops.get(op, f'OP{op:02x}')
[codex:645894]     if 0x60 <= op <= 0x7f:
[codex:645894]         n = op - 0x5f
[codex:645894]         data = code[i+1:i+1+n]
[codex:645894]         instrs.append((i, name, data.hex()))
[codex:645894]         i += 1 + n
[codex:645894]     else:
[codex:645894]         instrs.append((i, name, None))
[codex:645894]         i += 1
[codex:645894] 
[codex:645894] # collect offsets of key ops
[codex:645894] key_ops = {'CALL','DELEGATECALL','CALLCODE','STATICCALL','SELFDESTRUCT','SSTORE'}
[codex:645894] key = [ins for ins in instrs if ins[1] in key_ops]
[codex:645894] print('key ops count', {op: sum(1 for ins in instrs if ins[1]==op) for op in key_ops})
[codex:645894] 
[codex:645894] # show a few around delegatecall and selfdestruct
[codex:645894] from collections import defaultdict
[codex:645894] 
[codex:645894] def context(idx, back=10, fwd=10):
[codex:645894]     # find index in instrs list
[codex:645894]     for j,(off,_,_) in enumerate(instrs):
[codex:645894]         if off==idx:
[codex:645894]             start=max(0,j-back); end=min(len(instrs), j+fwd+1)
[codex:645894]             return instrs[start:end]
[codex:645894]     return []
[codex:645894] 
[codex:645894] for off, name, data in key:
[codex:645894]     if name in ('DELEGATECALL','SELFDESTRUCT'):
[codex:645894]         print('----', name, 'at', off)
[codex:645894]         for off2, n2, d2 in context(off):
[codex:645894]             if d2 is None:
[codex:645894]                 print(f'{off2:06x}: {n2}')
[codex:645894]             else:
[codex:645894]                 print(f'{off2:06x}: {n2} {d2}')
[codex:645894] 
[codex:645894] # show first 5 CALL contexts
[codex:645894] count=0
[codex:645894] for off,name,data in key:
[codex:645894]     if name=='CALL' and count<5:
[codex:645894]         print('---- CALL at', off)
[codex:645894]         for off2, n2, d2 in context(off):
[codex:645894]             if d2 is None:
[codex:645894]                 print(f'{off2:06x}: {n2}')
[codex:645894]             else:
[codex:645894]                 print(f'{off2:06x}: {n2} {d2}')
[codex:645894]         count+=1
[codex:645894] 
[codex:645894] PY" in /tmp/codex-multi-0md3bvuw succeeded in 42ms:
[codex:645894] len 19887
[codex:645894] key ops count {'DELEGATECALL': 0, 'SSTORE': 12, 'CALL': 15, 'SELFDESTRUCT': 0, 'CALLCODE': 0, 'STATICCALL': 8}
[codex:645894] ---- CALL at 2696
[codex:645894] 000a7c: PUSH1 00
[codex:645894] 000a7e: PUSH1 40
[codex:645894] 000a80: MLOAD
[codex:645894] 000a81: DUP1
[codex:645894] 000a82: DUP4
[codex:645894] 000a83: SUB
[codex:645894] 000a84: DUP2
[codex:645894] 000a85: DUP6
[codex:645894] 000a86: DUP8
[codex:645894] 000a87: GAS
[codex:645894] 000a88: CALL
[codex:645894] 000a89: SWAP3
[codex:645894] 000a8a: POP
[codex:645894] 000a8b: POP
[codex:645894] 000a8c: POP
[codex:645894] 000a8d: RETURNDATASIZE
[codex:645894] 000a8e: DUP1
[codex:645894] 
[codex:645894] thinking
[codex:645894] **Analyzing external CALL patterns for security**
[codex:645894] 
[codex:645894] I'm digging into the CALL and STATICCALL usage to see if any ETH transfers happen without proper access control, focusing on a suspected multi-call executor function that loops over targets and values. This includes detailed bytecode inspection to understand owner/executor checks and identify any unprotected execution paths.
[codex:645894] exec
[codex:645894] /bin/bash -lc "python - <<'PY'
[codex:645894] from pathlib import Path
[codex:645894] import re
[codex:645894] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:645894] hexstr = re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:645894] code = bytes.fromhex(hexstr)
[codex:645894] 
[codex:645894] # disassemble minimal with op and imm
[codex:645894] ops = {}
[codex:645894] # fill for push only
[codex:645894] def opname(op):
[codex:645894]     if 0x60 <= op <= 0x7f:
[codex:645894]         return f'PUSH{op-0x5f}'
[codex:645894]     return {
[codex:645894]         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:645894]         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:645894]         0x20:'SHA3',
[codex:645894]         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:645894]         0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:645894]         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:645894]         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:645894]         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:645894]         0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:645894]         0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:645894]     }.get(op, f'OP{op:02x}')
[codex:645894] 
[codex:645894] instrs=[]
[codex:645894] i=0
[codex:645894] while i < len(code):
[codex:645894]     op=code[i]
[codex:645894]     name=opname(op)
[codex:645894]     if 0x60<=op<=0x7f:
[codex:645894]         n=op-0x5f
[codex:645894]         data=code[i+1:i+1+n]
[codex:645894]         instrs.append((i,name,data.hex()))
[codex:645894]         i+=1+n
[codex:645894]     else:
[codex:645894]         instrs.append((i,name,None))
[codex:645894]         i+=1
[codex:645894] 
[codex:645894] # function to print range
[codex:645894] 
[codex:645894] def print_range(start_off, end_off=None, count=None):
[codex:645894]     # find index of instr with offset >= start_off
[codex:645894]     idx=0
[codex:645894]     for j,(off,_,_) in enumerate(instrs):
[codex:645894]         if off>=start_off:
[codex:645894]             idx=j; break
[codex:645894]     if end_off is not None:
[codex:645894]         while idx < len(instrs) and instrs[idx][0] < end_off:
[codex:645894]             off,name,data=instrs[idx]
[codex:645894]             if data is None:
[codex:645894]                 print(f'{off:06x}: {name}')
[codex:645894]             else:
[codex:645894]                 print(f'{off:06x}: {name} {data}')
[codex:645894]             idx+=1
[codex:645894]     elif count is not None:
[codex:645894]         for _ in range(count):
[codex:645894]             if idx>=len(instrs): break
[codex:645894]             off,name,data=instrs[idx]
[codex:645894]             if data is None:
[codex:645894]                 print(f'{off:06x}: {name}')
[codex:645894]             else:
[codex:645894]                 print(f'{off:06x}: {name} {data}')
[codex:645894]             idx+=1
[codex:645894] 
[codex:645894] print('--- around 0x099d')
[codex:645894] print_range(0x0990, 0x0b20)
[codex:645894] PY" in /tmp/codex-multi-0md3bvuw succeeded in 89ms:
[codex:645894] --- around 0x099d
[codex:645894] 000991: MLOAD
[codex:645894] 000992: DUP1
[codex:645894] 000993: SWAP2
[codex:645894] 000994: SUB
[codex:645894] 000995: SWAP1
[codex:645894] 000996: REVERT
[codex:645894] 000997: JUMPDEST
[codex:645894] 000998: SWAP3
[codex:645894] 000999: SWAP2
[codex:645894] 00099a: POP
[codex:645894] 00099b: POP
[codex:645894] 00099c: JUMP
[codex:645894] 00099d: JUMPDEST
[codex:645894] 00099e: PUSH2 09a5
[codex:645894] 0009a1: PUSH2 2d72
[codex:645894] 0009a4: JUMP
[codex:645894] 0009a5: JUMPDEST
[codex:645894] 0009a6: PUSH20 ffffffffffffffffffffffffffffffffffffffff
[codex:645894] 0009bb: AND
[codex:645894] 
[codex:645894] thinking
[codex:645894] **Investigating address comparison logic**
[codex:645894] exec
[codex:645894] /bin/bash -lc "python - <<'PY'
[codex:645894] from pathlib import Path
[codex:645894] import re
[codex:645894] hexstr = re.search(r'0x([0-9a-fA-F]+)', Path('BYTECODE_BUNDLE.txt').read_text()).group(1)
[codex:645894] code = bytes.fromhex(hexstr)
[codex:645894] 
[codex:645894] # disassembler
[codex:645894] 
[codex:645894] def disasm(start, count=60):
[codex:645894]     ops = {}
[codex:645894]     def opname(op):
[codex:645894]         if 0x60 <= op <= 0x7f:
[codex:645894]             return f'PUSH{op-0x5f}'
[codex:645894]         return {
[codex:645894]             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:645894]             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:645894]             0x20:'SHA3',
[codex:645894]             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:645894]             0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:645894]             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:645894]             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:645894]             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:645894]             0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:645894]             0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:645894]         }.get(op, f'OP{op:02x}')
[codex:645894]     i=start
[codex:645894]     printed=0
[codex:645894]     while printed < count and i < len(code):
[codex:645894]         op=code[i]
[codex:645894]         name=opname(op)
[codex:645894]         if 0x60 <= op <= 0x7f:
[codex:645894]             n=op-0x5f
[codex:645894]             data=code[i+1:i+1+n]
[codex:645894]             print(f'{i:06x}: {name} {data.hex()}')
[codex:645894]             i += 1+n
[codex:645894]         else:
[codex:645894]             print(f'{i:06x}: {name}')
[codex:645894]             i += 1
[codex:645894]         printed += 1
[codex:645894] 
[codex:645894] print('--- at 0x2d60')
[codex:645894] disasm(0x2d60, 40)
[codex:645894] PY" in /tmp/codex-multi-0md3bvuw succeeded in 28ms:
[codex:645894] --- at 0x2d60
[codex:645894] 002d60: PUSH2 098e
[codex:645894] 002d63: SWAP1
[codex:645894] 002d64: PUSH2 4a78
[codex:645894] 002d67: JUMP
[codex:645894] 002d68: JUMPDEST
[codex:645894] 002d69: PUSH2 0d66
[codex:645894] 002d6c: DUP3
[codex:645894] 002d6d: DUP5
[codex:645894] 002d6e: PUSH2 15b6
[codex:645894] 002d71: JUMP
[codex:645894] 002d72: JUMPDEST
[codex:645894] 002d73: CALLER
[codex:645894] 002d74: SWAP1
[codex:645894] 002d75: JUMP
[codex:645894] 002d76: JUMPDEST
[codex:645894] 002d77: PUSH20 ffffffffffffffffffffffffffffffffffffffff
[codex:645894] 002d8c: DUP4
[codex:645894] 002d8d: DUP2
[codex:645894] 002d8e: AND
[codex:645894] 
[codex:645894] thinking
[codex:645894] **Analyzing ownership and access control in bytecode**
[codex:645894] 
[codex:645894] I'm figuring out how the contract enforces owner-only access by tracing calls returning `msg.sender` and comparing it to the stored owner. I want to spot any functions that perform external calls without proper access checks by scanning for storage writes (SSTORE) and surrounding access control patterns. Using Python to locate these SSTORE instructions will help me identify potential security risks or misconfigurations.
[codex:645894] exec
[codex:645894] /bin/bash -lc "python - <<'PY'
[codex:645894] from pathlib import Path
[codex:645894] import re
[codex:645894] hexstr = re.search(r'0x([0-9a-fA-F]+)', Path('BYTECODE_BUNDLE.txt').read_text()).group(1)
[codex:645894] code = bytes.fromhex(hexstr)
[codex:645894] 
[codex:645894] # disassemble as before
[codex:645894] ops = {}
[codex:645894] 
[codex:645894] def opname(op):
[codex:645894]     if 0x60 <= op <= 0x7f:
[codex:645894]         return f'PUSH{op-0x5f}'
[codex:645894]     return {
[codex:645894]         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:645894]         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:645894]         0x20:'SHA3',
[codex:645894]         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:645894]         0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:645894]         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:645894]         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:645894]         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:645894]         0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:645894]         0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:645894]     }.get(op, f'OP{op:02x}')
[codex:645894] 
[codex:645894] instrs=[]
[codex:645894] i=0
[codex:645894] while i < len(code):
[codex:645894]     op=code[i]
[codex:645894]     name=opname(op)
[codex:645894]     if 0x60<=op<=0x7f:
[codex:645894]         n=op-0x5f
[codex:645894]         data=code[i+1:i+1+n]
[codex:645894]         instrs.append((i,name,data.hex()))
[codex:645894]         i+=1+n
[codex:645894]     else:
[codex:645894]         instrs.append((i,name,None))
[codex:645894]         i+=1
[codex:645894] 
[codex:645894] # locate SSTORE
[codex:645894] sstore_indices=[(idx,off) for idx,(off,name,data) in enumerate(instrs) if name=='SSTORE']
[codex:645894] print('SSTORE count', len(sstore_indices))
[codex:645894] 
[codex:645894] # function to print context around each sstore
[codex:645894] for idx, off in sstore_indices:
[codex:645894]     print('\\n-- SSTORE at', hex(off))
[codex:645894]     start=max(0, idx-15); end=min(len(instrs), idx+10)
[codex:645894]     for off2,name,data in instrs[start:end]:
[codex:645894]         if data is None:
[codex:645894]             print(f'{off2:06x}: {name}')
[codex:645894]         else:
[codex:645894]             print(f'{off2:06x}: {name} {data}')
[codex:645894] PY" in /tmp/codex-multi-0md3bvuw succeeded in 89ms:
[codex:645894] SSTORE count 12
[codex:645894] 
[codex:645894] -- SSTORE at 0x12e3
[codex:645894] 0012b3: DUP2
[codex:645894] 0012b4: SWAP1
[codex:645894] 0012b5: MSTORE
[codex:645894] 0012b6: PUSH1 40
[codex:645894] 0012b8: SWAP1
[codex:645894] 0012b9: SWAP2
[codex:645894] 0012ba: SHA3
[codex:645894] 0012bb: DUP1
[codex:645894] 0012bc: SLOAD
[codex:645894] 0012bd: PUSH32 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
[codex:645894] 0012de: AND
[codex:645894] 0012df: SWAP1
[codex:645894] 0012e0: SWAP2
[codex:645894] 0012e1: OR
[codex:645894] 0012e2: SWAP1
[codex:645894] 0012e3: SSTORE
[codex:645894] 0012e4: JUMP
[codex:645894] 
[codex:645894] thinking
[codex:645894] **Analyzing storage updates and access control**
[codex:645894] exec
[codex:645894] /bin/bash -lc "python - <<'PY'
[codex:645894] from pathlib import Path
[codex:645894] import re
[codex:645894] hexstr = re.search(r'0x([0-9a-fA-F]+)', Path('BYTECODE_BUNDLE.txt').read_text()).group(1)
[codex:645894] code = bytes.fromhex(hexstr)
[codex:645894] 
[codex:645894] # disasm function
[codex:645894] 
[codex:645894] def disasm(start, count=120):
[codex:645894]     def opname(op):
[codex:645894]         if 0x60 <= op <= 0x7f:
[codex:645894]             return f'PUSH{op-0x5f}'
[codex:645894]         return {
[codex:645894]             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:645894]             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:645894]             0x20:'SHA3',
[codex:645894]             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:645894]             0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:645894]             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:645894]             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:645894]             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:645894]             0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:645894]             0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:645894]         }.get(op, f'OP{op:02x}')
[codex:645894]     i=start
[codex:645894]     for _ in range(count):
[codex:645894]         if i>=len(code): break
[codex:645894]         op=code[i]
[codex:645894]         name=opname(op)
[codex:645894]         if 0x60<=op<=0x7f:
[codex:645894]             n=op-0x5f
[codex:645894]             data=code[i+1:i+1+n]
[codex:645894]             print(f'{i:06x}: {name} {data.hex()}')
[codex:645894]             i+=1+n
[codex:645894]         else:
[codex:645894]             print(f'{i:06x}: {name}')
[codex:645894]             i+=1
[codex:645894] 
[codex:645894] print('--- around 0x11d0')
[codex:645894] disasm(0x11c0, 140)
[codex:645894] PY" in /tmp/codex-multi-0md3bvuw succeeded in 29ms:
[codex:645894] --- around 0x11d0
[codex:645894] 0011c0: RETURNDATASIZE
[codex:645894] 0011c1: PUSH1 00
[codex:645894] 0011c3: DUP1
[codex:645894] 0011c4: RETURNDATACOPY
[codex:645894] 0011c5: RETURNDATASIZE
[codex:645894] 0011c6: PUSH1 00
[codex:645894] 0011c8: REVERT
[codex:645894] 0011c9: JUMPDEST
[codex:645894] 0011ca: POP
[codex:645894] 0011cb: POP
[codex:645894] 0011cc: POP
[codex:645894] 0011cd: POP
[codex:645894] 0011ce: POP
[codex:645894] 0011cf: POP
[codex:645894] 0011d0: JUMP
[codex:645894] 0011d1: JUMPDEST
[codex:645894] 0011d2: PUSH2 11d9
[codex:645894] 0011d5: PUSH2 2d72
[codex:645894] 0011d8: JUMP
[codex:645894] 
[codex:645894] thinking
[codex:645894] **Analyzing owner-gated functions and storage writes**
[codex:645894] exec
[codex:645894] /bin/bash -lc "python - <<'PY'
[codex:645894] from pathlib import Path
[codex:645894] import re
[codex:645894] hexstr = re.search(r'0x([0-9a-fA-F]+)', Path('BYTECODE_BUNDLE.txt').read_text()).group(1)
[codex:645894] code = bytes.fromhex(hexstr)
[codex:645894] 
[codex:645894] # disasm function
[codex:645894] 
[codex:645894] def disasm(start, count=120):
[codex:645894]     def opname(op):
[codex:645894]         if 0x60 <= op <= 0x7f:
[codex:645894]             return f'PUSH{op-0x5f}'
[codex:645894]         return {
[codex:645894]             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:645894]             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:645894]             0x20:'SHA3',
[codex:645894]             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:645894]             0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:645894]             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:645894]             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:645894]             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:645894]             0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:645894]             0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:645894]         }.get(op, f'OP{op:02x}')
[codex:645894]     i=start
[codex:645894]     for _ in range(count):
[codex:645894]         if i>=len(code): break
[codex:645894]         op=code[i]
[codex:645894]         name=opname(op)
[codex:645894]         if 0x60 <= op <= 0x7f:
[codex:645894]             n=op-0x5f
[codex:645894]             data=code[i+1:i+1+n]
[codex:645894]             print(f'{i:06x}: {name} {data.hex()}')
[codex:645894]             i += 1+n
[codex:645894]         else:
[codex:645894]             print(f'{i:06x}: {name}')
[codex:645894]             i += 1
[codex:645894] 
[codex:645894] print('--- around 0x1e80')
[codex:645894] disasm(0x1e80, 150)
[codex:645894] PY" in /tmp/codex-multi-0md3bvuw succeeded in 30ms:
[codex:645894] --- around 0x1e80
[codex:645894] 001e80: STOP
[codex:645894] 001e81: STOP
[codex:645894] 001e82: STOP
[codex:645894] 001e83: STOP
[codex:645894] 001e84: STOP
[codex:645894] 001e85: STOP
[codex:645894] 001e86: STOP
[codex:645894] 001e87: STOP
[codex:645894] 001e88: STOP
[codex:645894] 001e89: STOP
[codex:645894] 001e8a: STOP
[codex:645894] 001e8b: STOP
[codex:645894] 001e8c: STOP
[codex:645894] 001e8d: STOP
[codex:645894] 001e8e: DUP2
[codex:645894] 001e8f: MSTORE
[codex:645894] 001e90: PUSH1 04
[codex:645894] 001e92: ADD
[codex:645894] 001e93: PUSH2 098e
[codex:645894] 
[codex:645894] thinking
[codex:645894] **Analyzing access control and call instructions**
[codex:645894] exec
[codex:645894] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-0md3bvuw succeeded in 5ms:
[codex:645894] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:645894] 
[codex:645894] thinking
[codex:645894] **Investigating external CALLs for access control**
[codex:645894] exec
[codex:645894] /bin/bash -lc "python - <<'PY'
[codex:645894] from pathlib import Path
[codex:645894] import re
[codex:645894] hexstr = re.search(r'0x([0-9a-fA-F]+)', Path('BYTECODE_BUNDLE.txt').read_text()).group(1)
[codex:645894] code = bytes.fromhex(hexstr)
[codex:645894] 
[codex:645894] # disassemble with offsets
[codex:645894] ops={}
[codex:645894] 
[codex:645894] def opname(op):
[codex:645894]     if 0x60 <= op <= 0x7f:
[codex:645894]         return f'PUSH{op-0x5f}'
[codex:645894]     return {
[codex:645894]         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:645894]         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:645894]         0x20:'SHA3',
[codex:645894]         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:645894]         0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:645894]         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:645894]         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:645894]         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:645894]         0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:645894]         0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:645894]     }.get(op, f'OP{op:02x}')
[codex:645894] 
[codex:645894] instrs=[]
[codex:645894] i=0
[codex:645894] while i < len(code):
[codex:645894]     op=code[i]
[codex:645894]     name=opname(op)
[codex:645894]     if 0x60<=op<=0x7f:
[codex:645894]         n=op-0x5f
[codex:645894]         data=code[i+1:i+1+n]
[codex:645894]         instrs.append((i,name,data.hex()))
[codex:645894]         i+=1+n
[codex:645894]     else:
[codex:645894]         instrs.append((i,name,None))
[codex:645894]         i+=1
[codex:645894] 
[codex:645894] # build mapping from offset to index
[codex:645894] idx_by_off = {off:i for i,(off,_,_) in enumerate(instrs)}
[codex:645894] 
[codex:645894] # find CALLs
[codex:645894] call_offs=[off for off,name,_ in instrs if name=='CALL']
[codex:645894] print('CALL offsets', [hex(o) for o in call_offs])
[codex:645894] 
[codex:645894] # function to find nearest previous JUMPDEST
[codex:645894] jumpdest_indices=[i for i,(off,name,_) in enumerate(instrs) if name=='JUMPDEST']
[codex:645894] 
[codex:645894] def prev_jumpdest_index(i):
[codex:645894]     # find last jumpdest index < i
[codex:645894]     for j in reversed(jumpdest_indices):
[codex:645894]         if j < i:
[codex:645894]             return j
[codex:645894]     return 0
[codex:645894] 
[codex:645894] for off in call_offs:
[codex:645894]     i = idx_by_off[off]
[codex:645894]     j = prev_jumpdest_index(i)
[codex:645894]     print('\\n=== CALL at', hex(off), 'context from JUMPDEST', hex(instrs[j][0]))
[codex:645894]     # print 40 instrs from j
[codex:645894]     for off2,name,data in instrs[j:j+50]:
[codex:645894]         if data is None:
[codex:645894]             print(f'{off2:06x}: {name}')
[codex:645894]         else:
[codex:645894]             print(f'{off2:06x}: {name} {data}')
[codex:645894] PY" in /tmp/codex-multi-0md3bvuw succeeded in 112ms:
[codex:645894] CALL offsets ['0xa88', '0xc45', '0x11b8', '0x174d', '0x1a61', '0x1d70', '0x22a3', '0x2331', '0x2420', '0x30d4', '0x315f', '0x3602', '0x3867', '0x38f5', '0x3db4']
[codex:645894] 
[codex:645894] === CALL at 0xa88 context from JUMPDEST 0xa7b
[codex:645894] 000a7b: JUMPDEST
[codex:645894] 000a7c: PUSH1 00
[codex:645894] 000a7e: PUSH1 40
[codex:645894] 000a80: MLOAD
[codex:645894] 000a81: DUP1
[codex:645894] 000a82: DUP4
[codex:645894] 000a83: SUB
[codex:645894] 000a84: DUP2
[codex:645894] 000a85: DUP6
[codex:645894] 000a86: DUP8
[codex:645894] 000a87: GAS
[codex:645894] 000a88: CALL
[codex:645894] 000a89: SWAP3
[codex:645894] 000a8a: POP
[codex:645894] 000a8b: POP
[codex:645894] 000a8c: POP
[codex:645894] 000a8d: RETURNDATASIZE
[codex:645894] 
[codex:645894] thinking
[codex:645894] **Summarizing security analysis results**
[codex:645894] 
[codex:645894] I'll prepare a JSON output summarizing that no exploitable profit paths were found in the bytecode; noting the absence of delegatecall/selfdestruct and that external call sites seem guarded by owner/executor permissions. This will comply with the schema and make clear there are no findings to report.
[codex:645894] codex
[codex:645894] {"no_findings":true,"summary":"Reviewed runtime bytecode; no DELEGATECALL/SELFDESTRUCT and no clearly unrestricted value-transfer or arbitrary-call paths were identified. External CALL sites appear to be behind owner/executor-style checks, so no concrete profit extraction path is evident from bytecode alone.","findings":[]}
[codex:645894] tokens used
[codex:645894] 61,677
[codex:645894] {"no_findings":true,"summary":"Reviewed runtime bytecode; no DELEGATECALL/SELFDESTRUCT and no clearly unrestricted value-transfer or arbitrary-call paths were identified. External CALL sites appear to be behind owner/executor-style checks, so no concrete profit extraction path is evident from bytecode alone.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-31T23:57:43.930632+00:00",
        "returncode": 0
    },
    "summary": "Reviewed runtime bytecode; no DELEGATECALL/SELFDESTRUCT and no clearly unrestricted value-transfer or arbitrary-call paths were identified. External CALL sites appear to be behind owner/executor-style checks, so no concrete profit extraction path is evident from bytecode alone.",
    "raw_final": {
        "summary": "Reviewed runtime bytecode; no DELEGATECALL/SELFDESTRUCT and no clearly unrestricted value-transfer or arbitrary-call paths were identified. External CALL sites appear to be behind owner/executor-style checks, so no concrete profit extraction path is evident from bytecode alone.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
23
EXT*/BALANCE
22
Total opcodes
9538
Flags
heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x02f5
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0xadc9772e
00000019: GT
0000001a: PUSH2 0x018f
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xda3e3397
00000024: GT
00000025: PUSH2 0x00e1
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xf2a38f65
0000002f: GT
00000030: PUSH2 0x008a
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xf61e8d4d
0000003a: GT
0000003b: PUSH2 0x0064
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xf61e8d4d
00000045: EQ
00000046: PUSH2 0x085d
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xfa09e630
00000050: EQ
00000051: PUSH2 0x087d
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xfcc49d1d
0000005b: EQ
0000005c: PUSH2 0x089d
0000005f: JUMPI
00000060: PUSH2 0x02fc
00000063: JUMP
00000064: JUMPDEST
00000065: DUP1
00000066: PUSH4 0xf2a38f65
0000006b: EQ
0000006c: PUSH2 0x07fd
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xf2fde38b
00000076: EQ
00000077: PUSH2 0x081d
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xf3fef3a3
00000081: EQ
00000082: PUSH2 0x083d
00000085: JUMPI
00000086: PUSH2 0x02fc
00000089: JUMP
0000008a: JUMPDEST
0000008b: DUP1
0000008c: PUSH4 0xeaafe247
00000091: GT
00000092: PUSH2 0x00bb
00000095: JUMPI
00000096: DUP1
00000097: PUSH4 0xeaafe247
0000009c: EQ
0000009d: PUSH2 0x079d
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0xed866cef
000000a7: EQ
000000a8: PUSH2 0x07bd
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0xf018a8c1
000000b2: EQ
000000b3: PUSH2 0x07dd
000000b6: JUMPI
000000b7: PUSH2 0x02fc
000000ba: JUMP
000000bb: JUMPDEST
000000bc: DUP1
000000bd: PUSH4 0xda3e3397
000000c2: EQ
000000c3: PUSH2 0x073d
000000c6: JUMPI
000000c7: DUP1
000000c8: PUSH4 0xe4a76726
000000cd: EQ
000000ce: PUSH2 0x075d
000000d1: JUMPI
000000d2: DUP1
000000d3: PUSH4 0xe676ea95
000000d8: EQ
000000d9: PUSH2 0x077d
000000dc: JUMPI
000000dd: PUSH2 0x02fc
000000e0: JUMP
000000e1: JUMPDEST
000000e2: DUP1
000000e3: PUSH4 0xc2a672e0
000000e8: GT
000000e9: PUSH2 0x0143
000000ec: JUMPI
000000ed: DUP1
000000ee: PUSH4 0xc4e2c1e6
000000f3: GT
000000f4: PUSH2 0x011d
000000f7: JUMPI
000000f8: DUP1
000000f9: PUSH4 0xc4e2c1e6
000000fe: EQ
000000ff: PUSH2 0x06dd
00000102: JUMPI
00000103: DUP1
00000104: PUSH4 0xd752fab2
00000109: EQ
0000010a: PUSH2 0x06fd
0000010d: JUMPI
0000010e: DUP1
0000010f: PUSH4 0xda1c7550
00000114: EQ
00000115: PUSH2 0x071d
00000118: JUMPI
00000119: PUSH2 0x02fc
0000011c: JUMP
0000011d: JUMPDEST
0000011e: DUP1
0000011f: PUSH4 0xc2a672e0
00000124: EQ
00000125: PUSH2 0x067d
00000128: JUMPI
00000129: DUP1
0000012a: PUSH4 0xc351666f
0000012f: EQ
00000130: PUSH2 0x069d
00000133: JUMPI
00000134: DUP1
00000135: PUSH4 0xc42fa7f4
0000013a: EQ
0000013b: PUSH2 0x06bd
0000013e: JUMPI
0000013f: PUSH2 0x02fc
00000142: JUMP
00000143: JUMPDEST
00000144: DUP1
00000145: PUSH4 0xaf88dc47
0000014a: GT
0000014b: PUSH2 0x0174
0000014e: JUMPI
0000014f: DUP1
00000150: PUSH4 0xaf88dc47
00000155: EQ
00000156: PUSH2 0x061d
00000159: JUMPI
0000015a: DUP1
0000015b: PUSH4 0xb61d27f6
00000160: EQ
00000161: PUSH2 0x063d
00000164: JUMPI
00000165: DUP1
00000166: PUSH4 0xb6703fcd
0000016b: EQ
0000016c: PUSH2 0x065d
0000016f: JUMPI
00000170: PUSH2 0x02fc
00000173: JUMP
00000174: JUMPDEST
00000175: DUP1
00000176: PUSH4 0xadc9772e
0000017b: EQ
0000017c: PUSH2 0x05dd
0000017f: JUMPI
00000180: DUP1
00000181: PUSH4 0xae59ef9a
00000186: EQ
00000187: PUSH2 0x05fd
0000018a: JUMPI
0000018b: PUSH2 0x02fc
0000018e: JUMP
0000018f: JUMPDEST
00000190: DUP1
00000191: PUSH4 0x3419ba23
00000196: GT
00000197: PUSH2 0x0248
0000019a: JUMPI
0000019b: DUP1
0000019c: PUSH4 0x67974ca4
000001a1: GT
000001a2: PUSH2 0x01fc
000001a5: JUMPI
000001a6: DUP1
000001a7: PUSH4 0x8da5cb5b
000001ac: GT
000001ad: PUSH2 0x01d6
000001b0: JUMPI
000001b1: DUP1
000001b2: PUSH4 0x8da5cb5b
000001b7: EQ
000001b8: PUSH2 0x056e
000001bb: JUMPI
000001bc: DUP1
000001bd: PUSH4 0x9ac2a011
000001c2: EQ
000001c3: PUSH2 0x0590
000001c6: JUMPI
000001c7: DUP1
000001c8: PUSH4 0x9e546c38
000001cd: EQ
000001ce: PUSH2 0x05bd
000001d1: JUMPI
000001d2: PUSH2 0x02fc
000001d5: JUMP
000001d6: JUMPDEST
000001d7: DUP1
000001d8: PUSH4 0x67974ca4
000001dd: EQ
000001de: PUSH2 0x0519
000001e1: JUMPI
000001e2: DUP1
000001e3: PUSH4 0x715018a6
000001e8: EQ
000001e9: PUSH2 0x0539
000001ec: JUMPI
000001ed: DUP1
000001ee: PUSH4 0x7f371461
000001f3: EQ
000001f4: PUSH2 0x054e
000001f7: JUMPI
000001f8: PUSH2 0x02fc
000001fb: JUMP
000001fc: JUMPDEST
000001fd: DUP1
000001fe: PUSH4 0x498ad751
00000203: GT
00000204: PUSH2 0x022d
00000207: JUMPI
00000208: DUP1
00000209: PUSH4 0x498ad751
0000020e: EQ
0000020f: PUSH2 0x04b9
00000212: JUMPI
00000213: DUP1
00000214: PUSH4 0x4dc92fd4
00000219: EQ
0000021a: PUSH2 0x04d9
0000021d: JUMPI
0000021e: DUP1
0000021f: PUSH4 0x5a08a245
00000224: EQ
00000225: PUSH2 0x04f9
00000228: JUMPI
00000229: PUSH2 0x02fc
0000022c: JUMP
0000022d: JUMPDEST
0000022e: DUP1
0000022f: PUSH4 0x3419ba23
00000234: EQ
00000235: PUSH2 0x0479
00000238: JUMPI
00000239: DUP1
0000023a: PUSH4 0x348645d1
0000023f: EQ
00000240: PUSH2 0x0499
00000243: JUMPI
00000244: PUSH2 0x02fc
00000247: JUMP
00000248: JUMPDEST
00000249: DUP1
0000024a: PUSH4 0x12a9aa49
0000024f: GT
00000250: PUSH2 0x02aa
00000253: JUMPI
00000254: DUP1
00000255: PUSH4 0x1c58db4f
0000025a: GT
0000025b: PUSH2 0x0284
0000025e: JUMPI
0000025f: DUP1
00000260: PUSH4 0x1c58db4f
00000265: EQ
00000266: PUSH2 0x0419
00000269: JUMPI
0000026a: DUP1
0000026b: PUSH4 0x1f5a0bbe
00000270: EQ
00000271: PUSH2 0x0439
00000274: JUMPI
00000275: DUP1
00000276: PUSH4 0x24788429
0000027b: EQ
0000027c: PUSH2 0x0459
0000027f: JUMPI
00000280: PUSH2 0x02fc
00000283: JUMP
00000284: JUMPDEST
00000285: DUP1
00000286: PUSH4 0x12a9aa49
0000028b: EQ
0000028c: PUSH2 0x03b9
0000028f: JUMPI
00000290: DUP1
00000291: PUSH4 0x14a08b36
00000296: EQ
00000297: PUSH2 0x03d9
0000029a: JUMPI
0000029b: DUP1
0000029c: PUSH4 0x171c3318
000002a1: EQ
000002a2: PUSH2 0x03f9
000002a5: JUMPI
000002a6: PUSH2 0x02fc
000002a9: JUMP
000002aa: JUMPDEST
000002ab: DUP1
000002ac: PUSH4 0x0de9fac6
000002b1: GT
000002b2: PUSH2 0x02db
000002b5: JUMPI
000002b6: DUP1
000002b7: PUSH4 0x0de9fac6
000002bc: EQ
000002bd: PUSH2 0x0359
000002c0: JUMPI
000002c1: DUP1
000002c2: PUSH4 0x0e801ee1
000002c7: EQ
000002c8: PUSH2 0x0379
000002cb: JUMPI
000002cc: DUP1
000002cd: PUSH4 0x0fd9a255
000002d2: EQ
000002d3: PUSH2 0x0399
000002d6: JUMPI
000002d7: PUSH2 0x02fc
000002da: JUMP
000002db: JUMPDEST
000002dc: DUP1
000002dd: PUSH3 0xeb8ba4
000002e1: EQ
000002e2: PUSH2 0x0301
000002e5: JUMPI
000002e6: DUP1
000002e7: PUSH4 0x077d97d7
000002ec: EQ
000002ed: PUSH2 0x0337
000002f0: JUMPI
000002f1: PUSH2 0x02fc
000002f4: JUMP
000002f5: JUMPDEST
000002f6: CALLDATASIZE
000002f7: PUSH2 0x02fc
000002fa: JUMPI
000002fb: STOP
000002fc: JUMPDEST
000002fd: PUSH1 0x00
000002ff: DUP1
00000300: REVERT
00000301: JUMPDEST
00000302: CALLVALUE
00000303: DUP1
00000304: ISZERO
00000305: PUSH2 0x030d
00000308: JUMPI
00000309: PUSH1 0x00
0000030b: DUP1
0000030c: REVERT
0000030d: JUMPDEST
0000030e: POP
0000030f: PUSH2 0x0321
00000312: PUSH2 0x031c
00000315: CALLDATASIZE
00000316: PUSH1 0x04
00000318: PUSH2 0x4123
0000031b: JUMP
0000031c: JUMPDEST
0000031d: PUSH2 0x08bd
00000320: JUMP
00000321: JUMPDEST
00000322: PUSH1 0x40
00000324: MLOAD
00000325: PUSH2 0x032e
00000328: SWAP2
00000329: SWAP1
0000032a: PUSH2 0x4bc6
0000032d: JUMP
0000032e: JUMPDEST
0000032f: PUSH1 0x40
00000331: MLOAD
00000332: DUP1
00000333: SWAP2
00000334: SUB
00000335: SWAP1
00000336: RETURN
00000337: JUMPDEST
00000338: CALLVALUE
00000339: DUP1
0000033a: ISZERO
0000033b: PUSH2 0x0343
0000033e: JUMPI
0000033f: PUSH1 0x00
00000341: DUP1
00000342: REVERT
00000343: JUMPDEST
00000344: POP
00000345: PUSH2 0x0357
00000348: PUSH2 0x0352
0000034b: CALLDATASIZE
0000034c: PUSH1 0x04
0000034e: PUSH2 0x44dd
00000351: JUMP
00000352: JUMPDEST
00000353: PUSH2 0x099d
00000356: JUMP
00000357: JUMPDEST
00000358: STOP
00000359: JUMPDEST
0000035a: CALLVALUE
0000035b: DUP1
0000035c: ISZERO
0000035d: PUSH2 0x0365
00000360: JUMPI
00000361: PUSH1 0x00
00000363: DUP1
00000364: REVERT
00000365: JUMPDEST
00000366: POP
00000367: PUSH2 0x0321
0000036a: PUSH2 0x0374
0000036d: CALLDATASIZE
0000036e: PUSH1 0x04
00000370: PUSH2 0x4235
00000373: JUMP
00000374: JUMPDEST
00000375: PUSH2 0x0ace
00000378: JUMP
00000379: JUMPDEST
0000037a: CALLVALUE
0000037b: DUP1
0000037c: ISZERO
0000037d: PUSH2 0x0385
00000380: JUMPI
00000381: PUSH1 0x00
00000383: DUP1
00000384: REVERT
00000385: JUMPDEST
00000386: POP
00000387: PUSH2 0x0357
0000038a: PUSH2 0x0394
0000038d: CALLDATASIZE
0000038e: PUSH1 0x04
00000390: PUSH2 0x40eb
00000393: JUMP
00000394: JUMPDEST
00000395: PUSH2 0x0b62
00000398: JUMP
00000399: JUMPDEST
0000039a: CALLVALUE
0000039b: DUP1
0000039c: ISZERO
0000039d: PUSH2 0x03a5
000003a0: JUMPI
000003a1: PUSH1 0x00
000003a3: DUP1
000003a4: REVERT
000003a5: JUMPDEST
000003a6: POP
000003a7: PUSH2 0x0321
000003aa: PUSH2 0x03b4
000003ad: CALLDATASIZE
000003ae: PUSH1 0x04
000003b0: PUSH2 0x4450
000003b3: JUMP
000003b4: JUMPDEST
000003b5: PUSH2 0x0c5d
000003b8: JUMP
000003b9: JUMPDEST
000003ba: CALLVALUE
000003bb: DUP1
000003bc: ISZERO
000003bd: PUSH2 0x03c5
000003c0: JUMPI
000003c1: PUSH1 0x00
000003c3: DUP1
000003c4: REVERT
000003c5: JUMPDEST
000003c6: POP
000003c7: PUSH2 0x0321
000003ca: PUSH2 0x03d4
000003cd: CALLDATASIZE
000003ce: PUSH1 0x04
000003d0: PUSH2 0x4235
000003d3: JUMP
000003d4: JUMPDEST
000003d5: PUSH2 0x0cea
000003d8: JUMP
000003d9: JUMPDEST
000003da: CALLVALUE
000003db: DUP1
000003dc: ISZERO
000003dd: PUSH2 0x03e5
000003e0: JUMPI
000003e1: PUSH1 0x00
000003e3: DUP1
000003e4: REVERT
000003e5: JUMPDEST
000003e6: POP
000003e7: PUSH2 0x0321
000003ea: PUSH2 0x03f4
000003ed: CALLDATASIZE
000003ee: PUSH1 0x04
000003f0: PUSH2 0x4375
000003f3: JUMP
000003f4: JUMPDEST
000003f5: PUSH2 0x0d71
000003f8: JUMP
000003f9: JUMPDEST
000003fa: CALLVALUE
000003fb: DUP1
000003fc: ISZERO
000003fd: PUSH2 0x0405
00000400: JUMPI
00000401: PUSH1 0x00
00000403: DUP1
00000404: REVERT
00000405: JUMPDEST
00000406: POP
00000407: PUSH2 0x0357
0000040a: PUSH2 0x0414
0000040d: CALLDATASIZE
0000040e: PUSH1 0x04
00000410: PUSH2 0x4425
00000413: JUMP
00000414: JUMPDEST
00000415: PUSH2 0x0df8
00000418: JUMP
00000419: JUMPDEST
0000041a: CALLVALUE
0000041b: DUP1
0000041c: ISZERO
0000041d: PUSH2 0x0425
00000420: JUMPI
00000421: PUSH1 0x00
00000423: DUP1
00000424: REVERT
00000425: JUMPDEST
00000426: POP
00000427: PUSH2 0x0357
0000042a: PUSH2 0x0434
0000042d: CALLDATASIZE
0000042e: PUSH1 0x04
00000430: PUSH2 0x465a
00000433: JUMP
00000434: JUMPDEST
00000435: PUSH2 0x10e9
00000438: JUMP
00000439: JUMPDEST
0000043a: CALLVALUE
0000043b: DUP1
0000043c: ISZERO
0000043d: PUSH2 0x0445
00000440: JUMPI
00000441: PUSH1 0x00
00000443: DUP1
00000444: REVERT
00000445: JUMPDEST
00000446: POP
00000447: PUSH2 0x0357
0000044a: PUSH2 0x0454
0000044d: CALLDATASIZE
0000044e: PUSH1 0x04
00000450: PUSH2 0x40eb
00000453: JUMP
00000454: JUMPDEST
00000455: PUSH2 0x11d1
00000458: JUMP
00000459: JUMPDEST
0000045a: CALLVALUE
0000045b: DUP1
0000045c: ISZERO
0000045d: PUSH2 0x0465
00000460: JUMPI
00000461: PUSH1 0x00
00000463: DUP1
00000464: REVERT
00000465: JUMPDEST
00000466: POP
00000467: PUSH2 0x0357
0000046a: PUSH2 0x0474
0000046d: CALLDATASIZE
0000046e: PUSH1 0x04
00000470: PUSH2 0x40eb
00000473: JUMP
00000474: JUMPDEST
00000475: PUSH2 0x12e5
00000478: JUMP
00000479: JUMPDEST
0000047a: CALLVALUE
0000047b: DUP1
0000047c: ISZERO
0000047d: PUSH2 0x0485
00000480: JUMPI
00000481: PUSH1 0x00
00000483: DUP1
00000484: REVERT
00000485: JUMPDEST
00000486: POP
00000487: PUSH2 0x0357
0000048a: PUSH2 0x0494
0000048d: CALLDATASIZE
0000048e: PUSH1 0x04
00000490: PUSH2 0x4123
00000493: JUMP
00000494: JUMPDEST
00000495: PUSH2 0x13f3
00000498: JUMP
00000499: JUMPDEST
0000049a: CALLVALUE
0000049b: DUP1
0000049c: ISZERO
0000049d: PUSH2 0x04a5
000004a0: JUMPI
000004a1: PUSH1 0x00
000004a3: DUP1
000004a4: REVERT
000004a5: JUMPDEST
000004a6: POP
000004a7: PUSH2 0x0321
000004aa: PUSH2 0x04b4
000004ad: CALLDATASIZE
000004ae: PUSH1 0x04
000004b0: PUSH2 0x4287
000004b3: JUMP
000004b4: JUMPDEST
000004b5: PUSH2 0x1476
000004b8: JUMP
000004b9: JUMPDEST
000004ba: CALLVALUE
000004bb: DUP1
000004bc: ISZERO
000004bd: PUSH2 0x04c5
000004c0: JUMPI
000004c1: PUSH1 0x00
000004c3: DUP1
000004c4: REVERT
000004c5: JUMPDEST
000004c6: POP
000004c7: PUSH2 0x0321
000004ca: PUSH2 0x04d4
000004cd: CALLDATASIZE
000004ce: PUSH1 0x04
000004d0: PUSH2 0x4325
000004d3: JUMP
000004d4: JUMPDEST
000004d5: PUSH2 0x151c
000004d8: JUMP
000004d9: JUMPDEST
000004da: CALLVALUE
000004db: DUP1
000004dc: ISZERO
000004dd: PUSH2 0x04e5
000004e0: JUMPI
000004e1: PUSH1 0x00
000004e3: DUP1
000004e4: REVERT
000004e5: JUMPDEST
000004e6: POP
000004e7: PUSH2 0x0357
000004ea: PUSH2 0x04f4
000004ed: CALLDATASIZE
000004ee: PUSH1 0x04
000004f0: PUSH2 0x468a
000004f3: JUMP
000004f4: JUMPDEST
000004f5: PUSH2 0x15b6
000004f8: JUMP
000004f9: JUMPDEST
000004fa: CALLVALUE
000004fb: DUP1
000004fc: ISZERO
000004fd: PUSH2 0x0505
00000500: JUMPI
00000501: PUSH1 0x00
00000503: DUP1
00000504: REVERT
00000505: JUMPDEST
00000506: POP
00000507: PUSH2 0x0321
0000050a: PUSH2 0x0514
0000050d: CALLDATASIZE
0000050e: PUSH1 0x04
00000510: PUSH2 0x42e0
00000513: JUMP
00000514: JUMPDEST
00000515: PUSH2 0x1782
00000518: JUMP
00000519: JUMPDEST
0000051a: CALLVALUE
0000051b: DUP1
0000051c: ISZERO
0000051d: PUSH2 0x0525
00000520: JUMPI
00000521: PUSH1 0x00
00000523: DUP1
00000524: REVERT
00000525: JUMPDEST
00000526: POP
00000527: PUSH2 0x0321
0000052a: PUSH2 0x0534
0000052d: CALLDATASIZE
0000052e: PUSH1 0x04
00000530: PUSH2 0x43c3
00000533: JUMP
00000534: JUMPDEST
00000535: PUSH2 0x180d
00000538: JUMP
00000539: JUMPDEST
0000053a: CALLVALUE
0000053b: DUP1
0000053c: ISZERO
0000053d: PUSH2 0x0545
00000540: JUMPI
00000541: PUSH1 0x00
00000543: DUP1
00000544: REVERT
00000545: JUMPDEST
00000546: POP
00000547: PUSH2 0x0357
0000054a: PUSH2 0x1897
0000054d: JUMP
0000054e: JUMPDEST
0000054f: CALLVALUE
00000550: DUP1
00000551: ISZERO
00000552: PUSH2 0x055a
00000555: JUMPI
00000556: PUSH1 0x00
00000558: DUP1
00000559: REVERT
0000055a: JUMPDEST
0000055b: POP
0000055c: PUSH2 0x0357
0000055f: PUSH2 0x0569
00000562: CALLDATASIZE
00000563: PUSH1 0x04
00000565: PUSH2 0x468a
00000568: JUMP
00000569: JUMPDEST
0000056a: PUSH2 0x1979
0000056d: JUMP
0000056e: JUMPDEST
0000056f: CALLVALUE
00000570: DUP1
00000571: ISZERO
00000572: PUSH2 0x057a
00000575: JUMPI
00000576: PUSH1 0x00
00000578: DUP1
00000579: REVERT
0000057a: JUMPDEST
0000057b: POP
0000057c: PUSH2 0x0583
0000057f: PUSH2 0x1a9b
00000582: JUMP
00000583: JUMPDEST
00000584: PUSH1 0x40
00000586: MLOAD
00000587: PUSH2 0x032e
0000058a: SWAP2
0000058b: SWAP1
0000058c: PUSH2 0x4710
0000058f: JUMP
00000590: JUMPDEST
00000591: CALLVALUE
00000592: DUP1
00000593: ISZERO
00000594: PUSH2 0x059c
00000597: JUMPI
00000598: PUSH1 0x00
0000059a: DUP1
0000059b: REVERT
0000059c: JUMPDEST
0000059d: POP
0000059e: PUSH2 0x05b0
000005a1: PUSH2 0x05ab
000005a4: CALLDATASIZE
000005a5: PUSH1 0x04
000005a7: PUSH2 0x40eb
000005aa: JUMP
000005ab: JUMPDEST
000005ac: PUSH2 0x1ab7
000005af: JUMP
000005b0: JUMPDEST
000005b1: PUSH1 0x40
000005b3: MLOAD
000005b4: PUSH2 0x032e
000005b7: SWAP2
000005b8: SWAP1
000005b9: PUSH2 0x4840
000005bc: JUMP
000005bd: JUMPDEST
000005be: CALLVALUE
000005bf: DUP1
000005c0: ISZERO
000005c1: PUSH2 0x05c9
000005c4: JUMPI
000005c5: PUSH1 0x00
000005c7: DUP1
000005c8: REVERT
000005c9: JUMPDEST
000005ca: POP
000005cb: PUSH2 0x0321
000005ce: PUSH2 0x05d8
000005d1: CALLDATASIZE
000005d2: PUSH1 0x04
000005d4: PUSH2 0x40eb
000005d7: JUMP
000005d8: JUMPDEST
000005d9: PUSH2 0x1acc
000005dc: JUMP
000005dd: JUMPDEST
000005de: CALLVALUE
000005df: DUP1
000005e0: ISZERO
000005e1: PUSH2 0x05e9
000005e4: JUMPI
000005e5: PUSH1 0x00
000005e7: DUP1
000005e8: REVERT
000005e9: JUMPDEST
000005ea: POP
000005eb: PUSH2 0x0357
000005ee: PUSH2 0x05f8
000005f1: CALLDATASIZE
000005f2: PUSH1 0x04
000005f4: PUSH2 0x4425
000005f7: JUMP
000005f8: JUMPDEST
000005f9: PUSH2 0x1bb1
000005fc: JUMP
000005fd: JUMPDEST
000005fe: CALLVALUE
000005ff: DUP1
00000600: ISZERO
00000601: PUSH2 0x0609
00000604: JUMPI
00000605: PUSH1 0x00
00000607: DUP1
00000608: REVERT
00000609: JUMPDEST
0000060a: POP
0000060b: PUSH2 0x05b0
0000060e: PUSH2 0x0618
00000611: CALLDATASIZE
00000612: PUSH1 0x04
00000614: PUSH2 0x40eb
00000617: JUMP
00000618: JUMPDEST
00000619: PUSH2 0x1c8d
0000061c: JUMP
0000061d: JUMPDEST
0000061e: CALLVALUE
0000061f: DUP1
00000620: ISZERO
00000621: PUSH2 0x0629
00000624: JUMPI
00000625: PUSH1 0x00
00000627: DUP1
00000628: REVERT
00000629: JUMPDEST
0000062a: POP
0000062b: PUSH2 0x0583
0000062e: PUSH2 0x0638
00000631: CALLDATASIZE
00000632: PUSH1 0x04
00000634: PUSH2 0x40eb
00000637: JUMP
00000638: JUMPDEST
00000639: PUSH2 0x1ca2
0000063c: JUMP
0000063d: JUMPDEST
0000063e: CALLVALUE
0000063f: DUP1
00000640: ISZERO
00000641: PUSH2 0x0649
00000644: JUMPI
00000645: PUSH1 0x00
00000647: DUP1
00000648: REVERT
00000649: JUMPDEST
0000064a: POP
0000064b: PUSH2 0x0357
0000064e: PUSH2 0x0658
00000651: CALLDATASIZE
00000652: PUSH1 0x04
00000654: PUSH2 0x4486
00000657: JUMP
00000658: JUMPDEST
00000659: PUSH2 0x1cca
0000065c: JUMP
0000065d: JUMPDEST
0000065e: CALLVALUE
0000065f: DUP1
00000660: ISZERO
00000661: PUSH2 0x0669
00000664: JUMPI
00000665: PUSH1 0x00
00000667: DUP1
00000668: REVERT
00000669: JUMPDEST
0000066a: POP
0000066b: PUSH2 0x0357
0000066e: PUSH2 0x0678
00000671: CALLDATASIZE
00000672: PUSH1 0x04
00000674: PUSH2 0x415b
00000677: JUMP
00000678: JUMPDEST
00000679: PUSH2 0x1da0
0000067c: JUMP
0000067d: JUMPDEST
0000067e: CALLVALUE
0000067f: DUP1
00000680: ISZERO
00000681: PUSH2 0x0689
00000684: JUMPI
00000685: PUSH1 0x00
00000687: DUP1
00000688: REVERT
00000689: JUMPDEST
0000068a: POP
0000068b: PUSH2 0x0357
0000068e: PUSH2 0x0698
00000691: CALLDATASIZE
00000692: PUSH1 0x04
00000694: PUSH2 0x4425
00000697: JUMP
00000698: JUMPDEST
00000699: PUSH2 0x1e2b
0000069c: JUMP
0000069d: JUMPDEST
0000069e: CALLVALUE
0000069f: DUP1
000006a0: ISZERO
000006a1: PUSH2 0x06a9
000006a4: JUMPI
000006a5: PUSH1 0x00
000006a7: DUP1
000006a8: REVERT
000006a9: JUMPDEST
000006aa: POP
000006ab: PUSH2 0x0357
000006ae: PUSH2 0x06b8
000006b1: CALLDATASIZE
000006b2: PUSH1 0x04
000006b4: PUSH2 0x416d
000006b7: JUMP
000006b8: JUMPDEST
000006b9: PUSH2 0x1eed
000006bc: JUMP
000006bd: JUMPDEST
000006be: CALLVALUE
000006bf: DUP1
000006c0: ISZERO
000006c1: PUSH2 0x06c9
000006c4: JUMPI
000006c5: PUSH1 0x00
000006c7: DUP1
000006c8: REVERT
000006c9: JUMPDEST
000006ca: POP
000006cb: PUSH2 0x0583
000006ce: PUSH2 0x06d8
000006d1: CALLDATASIZE
000006d2: PUSH1 0x04
000006d4: PUSH2 0x4425
000006d7: JUMP
000006d8: JUMPDEST
000006d9: PUSH2 0x203a
000006dc: JUMP
000006dd: JUMPDEST
000006de: CALLVALUE
000006df: DUP1
000006e0: ISZERO
000006e1: PUSH2 0x06e9
000006e4: JUMPI
000006e5: PUSH1 0x00
000006e7: DUP1
000006e8: REVERT
000006e9: JUMPDEST
000006ea: POP
000006eb: PUSH2 0x0357
000006ee: PUSH2 0x06f8
000006f1: CALLDATASIZE
000006f2: PUSH1 0x04
000006f4: PUSH2 0x4450
000006f7: JUMP
000006f8: JUMPDEST
000006f9: PUSH2 0x207c
000006fc: JUMP
000006fd: JUMPDEST
000006fe: CALLVALUE
000006ff: DUP1
00000700: ISZERO
00000701: PUSH2 0x0709
00000704: JUMPI
00000705: PUSH1 0x00
00000707: DUP1
00000708: REVERT
00000709: JUMPDEST
0000070a: POP
0000070b: PUSH2 0x0321
0000070e: PUSH2 0x0718
00000711: CALLDATASIZE
00000712: PUSH1 0x04
00000714: PUSH2 0x41f5
00000717: JUMP
00000718: JUMPDEST
00000719: PUSH2 0x20fa
0000071c: JUMP
0000071d: JUMPDEST
0000071e: CALLVALUE
0000071f: DUP1
00000720: ISZERO
00000721: PUSH2 0x0729
00000724: JUMPI
00000725: PUSH1 0x00
00000727: DUP1
00000728: REVERT
00000729: JUMPDEST
0000072a: POP
0000072b: PUSH2 0x0357
0000072e: PUSH2 0x0738
00000731: CALLDATASIZE
00000732: PUSH1 0x04
00000734: PUSH2 0x40eb
00000737: JUMP
00000738: JUMPDEST
00000739: PUSH2 0x252a
0000073c: JUMP
0000073d: JUMPDEST
0000073e: CALLVALUE
0000073f: DUP1
00000740: ISZERO
00000741: PUSH2 0x0749
00000744: JUMPI
00000745: PUSH1 0x00
00000747: DUP1
00000748: REVERT
00000749: JUMPDEST
0000074a: POP
0000074b: PUSH2 0x0357
0000074e: PUSH2 0x0758
00000751: CALLDATASIZE
00000752: PUSH1 0x04
00000754: PUSH2 0x41f5
00000757: JUMP
00000758: JUMPDEST
00000759: PUSH2 0x25e4
0000075c: JUMP
0000075d: JUMPDEST
0000075e: CALLVALUE
0000075f: DUP1
00000760: ISZERO
00000761: PUSH2 0x0769
00000764: JUMPI
00000765: PUSH1 0x00
00000767: DUP1
00000768: REVERT
00000769: JUMPDEST
0000076a: POP
0000076b: PUSH2 0x0321
0000076e: PUSH2 0x0778
00000771: CALLDATASIZE
00000772: PUSH1 0x04
00000774: PUSH2 0x41f5
00000777: JUMP
00000778: JUMPDEST
00000779: PUSH2 0x2662
0000077c: JUMP
0000077d: JUMPDEST
0000077e: CALLVALUE
0000077f: DUP1
00000780: ISZERO
00000781: PUSH2 0x0789
00000784: JUMPI
00000785: PUSH1 0x00
00000787: DUP1
00000788: REVERT
00000789: JUMPDEST
0000078a: POP
0000078b: PUSH2 0x0583
0000078e: PUSH2 0x0798
00000791: CALLDATASIZE
00000792: PUSH1 0x04
00000794: PUSH2 0x40eb
00000797: JUMP
00000798: JUMPDEST
00000799: PUSH2 0x27b6
0000079c: JUMP
0000079d: JUMPDEST
0000079e: CALLVALUE
0000079f: DUP1
000007a0: ISZERO
000007a1: PUSH2 0x07a9
000007a4: JUMPI
000007a5: PUSH1 0x00
000007a7: DUP1
000007a8: REVERT
000007a9: JUMPDEST
000007aa: POP
000007ab: PUSH2 0x05b0
000007ae: PUSH2 0x07b8
000007b1: CALLDATASIZE
000007b2: PUSH1 0x04
000007b4: PUSH2 0x40eb
000007b7: JUMP
000007b8: JUMPDEST
000007b9: PUSH2 0x27de
000007bc: JUMP
000007bd: JUMPDEST
000007be: CALLVALUE
000007bf: DUP1
000007c0: ISZERO
000007c1: PUSH2 0x07c9
000007c4: JUMPI
000007c5: PUSH1 0x00
000007c7: DUP1
000007c8: REVERT
000007c9: JUMPDEST
000007ca: POP
000007cb: PUSH2 0x0321
000007ce: PUSH2 0x07d8
000007d1: CALLDATASIZE
000007d2: PUSH1 0x04
000007d4: PUSH2 0x4287
000007d7: JUMP
000007d8: JUMPDEST
000007d9: PUSH2 0x27f3
000007dc: JUMP
000007dd: JUMPDEST
000007de: CALLVALUE
000007df: DUP1
000007e0: ISZERO
000007e1: PUSH2 0x07e9
000007e4: JUMPI
000007e5: PUSH1 0x00
000007e7: DUP1
000007e8: REVERT
000007e9: JUMPDEST
000007ea: POP
000007eb: PUSH2 0x0357
000007ee: PUSH2 0x07f8
000007f1: CALLDATASIZE
000007f2: PUSH1 0x04
000007f4: PUSH2 0x465a
000007f7: JUMP
000007f8: JUMPDEST
000007f9: PUSH2 0x288d
000007fc: JUMP
000007fd: JUMPDEST
000007fe: CALLVALUE
000007ff: DUP1
00000800: ISZERO
00000801: PUSH2 0x0809
00000804: JUMPI
00000805: PUSH1 0x00
00000807: DUP1
00000808: REVERT
00000809: JUMPDEST
0000080a: POP
0000080b: PUSH2 0x0357
0000080e: PUSH2 0x0818
00000811: CALLDATASIZE
00000812: PUSH1 0x04
00000814: PUSH2 0x4123
00000817: JUMP
00000818: JUMPDEST
00000819: PUSH2 0x294d
0000081c: JUMP
0000081d: JUMPDEST
0000081e: CALLVALUE
0000081f: DUP1
00000820: ISZERO
00000821: PUSH2 0x0829
00000824: JUMPI
00000825: PUSH1 0x00
00000827: DUP1
00000828: REVERT
00000829: JUMPDEST
0000082a: POP
0000082b: PUSH2 0x0357
0000082e: PUSH2 0x0838
00000831: CALLDATASIZE
00000832: PUSH1 0x04
00000834: PUSH2 0x40eb
00000837: JUMP
00000838: JUMPDEST
00000839: PUSH2 0x2a13
0000083c: JUMP
0000083d: JUMPDEST
0000083e: CALLVALUE
0000083f: DUP1
00000840: ISZERO
00000841: PUSH2 0x0849
00000844: JUMPI
00000845: PUSH1 0x00
00000847: DUP1
00000848: REVERT
00000849: JUMPDEST
0000084a: POP
0000084b: PUSH2 0x0357
0000084e: PUSH2 0x0858
00000851: CALLDATASIZE
00000852: PUSH1 0x04
00000854: PUSH2 0x4425
00000857: JUMP
00000858: JUMPDEST
00000859: PUSH2 0x2b60
0000085c: JUMP
0000085d: JUMPDEST
0000085e: CALLVALUE
0000085f: DUP1
00000860: ISZERO
00000861: PUSH2 0x0869
00000864: JUMPI
00000865: PUSH1 0x00
00000867: DUP1
00000868: REVERT
00000869: JUMPDEST
0000086a: POP
0000086b: PUSH2 0x0321
0000086e: PUSH2 0x0878
00000871: CALLDATASIZE
00000872: PUSH1 0x04
00000874: PUSH2 0x4325
00000877: JUMP
00000878: JUMPDEST
00000879: PUSH2 0x2bde
0000087c: JUMP
0000087d: JUMPDEST
0000087e: CALLVALUE
0000087f: DUP1
00000880: ISZERO
00000881: PUSH2 0x0889
00000884: JUMPI
00000885: PUSH1 0x00
00000887: DUP1
00000888: REVERT
00000889: JUMPDEST
0000088a: POP
0000088b: PUSH2 0x0357
0000088e: PUSH2 0x0898
00000891: CALLDATASIZE
00000892: PUSH1 0x04
00000894: PUSH2 0x40eb
00000897: JUMP
00000898: JUMPDEST
00000899: PUSH2 0x2c6b
0000089c: JUMP
0000089d: JUMPDEST
0000089e: CALLVALUE
0000089f: DUP1
000008a0: ISZERO
000008a1: PUSH2 0x08a9
000008a4: JUMPI
000008a5: PUSH1 0x00
000008a7: DUP1
000008a8: REVERT
000008a9: JUMPDEST
000008aa: POP
000008ab: PUSH2 0x0321
000008ae: PUSH2 0x08b8
000008b1: CALLDATASIZE
000008b2: PUSH1 0x04
000008b4: PUSH2 0x42e0
000008b7: JUMP
000008b8: JUMPDEST
000008b9: PUSH2 0x2cf6
000008bc: JUMP
000008bd: JUMPDEST
000008be: PUSH1 0x00
000008c0: DUP1
000008c1: JUMPDEST
000008c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008d7: DUP5
000008d8: AND
000008d9: PUSH1 0x00
000008db: SWAP1
000008dc: DUP2
000008dd: MSTORE
000008de: PUSH1 0x04
000008e0: PUSH1 0x20
000008e2: MSTORE
000008e3: PUSH1 0x40
000008e5: SWAP1
000008e6: KECCAK256
000008e7: SLOAD
000008e8: DUP2
000008e9: LT
000008ea: ISZERO
000008eb: PUSH2 0x095b
000008ee: JUMPI
000008ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000904: DUP5
00000905: DUP2
00000906: AND
00000907: PUSH1 0x00
00000909: SWAP1
0000090a: DUP2
0000090b: MSTORE
0000090c: PUSH1 0x04
0000090e: PUSH1 0x20
00000910: MSTORE
00000911: PUSH1 0x40
00000913: SWAP1
00000914: KECCAK256
00000915: DUP1
00000916: SLOAD
00000917: SWAP2
00000918: DUP6
00000919: AND
0000091a: SWAP2
0000091b: DUP4
0000091c: SWAP1
0000091d: DUP2
0000091e: LT
0000091f: PUSH2 0x0924
00000922: JUMPI
00000923: INVALID
00000924: JUMPDEST
00000925: PUSH1 0x00
00000927: SWAP2
00000928: DUP3
00000929: MSTORE
0000092a: PUSH1 0x20
0000092c: SWAP1
0000092d: SWAP2
0000092e: KECCAK256
0000092f: ADD
00000930: SLOAD
00000931: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000946: AND
00000947: EQ
00000948: ISZERO
00000949: PUSH2 0x0953
0000094c: JUMPI
0000094d: SWAP1
0000094e: POP
0000094f: PUSH2 0x0997
00000952: JUMP
00000953: JUMPDEST
00000954: PUSH1 0x01
00000956: ADD
00000957: PUSH2 0x08c1
0000095a: JUMP
0000095b: JUMPDEST
0000095c: POP
0000095d: PUSH1 0x40
0000095f: MLOAD
00000960: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000981: DUP2
00000982: MSTORE
00000983: PUSH1 0x04
00000985: ADD
00000986: PUSH2 0x098e
00000989: SWAP1
0000098a: PUSH2 0x490a
0000098d: JUMP
0000098e: JUMPDEST
0000098f: PUSH1 0x40
00000991: MLOAD
00000992: DUP1
00000993: SWAP2
00000994: SUB
00000995: SWAP1
00000996: REVERT
00000997: JUMPDEST
00000998: SWAP3
00000999: SWAP2
0000099a: POP
0000099b: POP
0000099c: JUMP
0000099d: JUMPDEST
0000099e: PUSH2 0x09a5
000009a1: PUSH2 0x2d72
000009a4: JUMP
000009a5: JUMPDEST
000009a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009bb: AND
000009bc: PUSH2 0x09c3
000009bf: PUSH2 0x1a9b
000009c2: JUMP
000009c3: JUMPDEST
000009c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009d9: AND
000009da: EQ
000009db: PUSH2 0x0a10
000009de: JUMPI
000009df: PUSH1 0x40
000009e1: MLOAD
000009e2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000a03: DUP2
00000a04: MSTORE
00000a05: PUSH1 0x04
00000a07: ADD
00000a08: PUSH2 0x098e
00000a0b: SWAP1
00000a0c: PUSH2 0x4a43
00000a0f: JUMP
00000a10: JUMPDEST
00000a11: PUSH1 0x00
00000a13: JUMPDEST
00000a14: DUP4
00000a15: MLOAD
00000a16: DUP2
00000a17: LT
00000a18: ISZERO
00000a19: PUSH2 0x0ac8
00000a1c: JUMPI
00000a1d: DUP4
00000a1e: DUP2
00000a1f: DUP2
00000a20: MLOAD
00000a21: DUP2
00000a22: LT
00000a23: PUSH2 0x0a28
00000a26: JUMPI
00000a27: INVALID
00000a28: JUMPDEST
00000a29: PUSH1 0x20
00000a2b: MUL
00000a2c: PUSH1 0x20
00000a2e: ADD
00000a2f: ADD
00000a30: MLOAD
00000a31: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a46: AND
00000a47: DUP4
00000a48: DUP3
00000a49: DUP2
00000a4a: MLOAD
00000a4b: DUP2
00000a4c: LT
00000a4d: PUSH2 0x0a52
00000a50: JUMPI
00000a51: INVALID
00000a52: JUMPDEST
00000a53: PUSH1 0x20
00000a55: MUL
00000a56: PUSH1 0x20
00000a58: ADD
00000a59: ADD
00000a5a: MLOAD
00000a5b: DUP4
00000a5c: DUP4
00000a5d: DUP2
00000a5e: MLOAD
00000a5f: DUP2
00000a60: LT
00000a61: PUSH2 0x0a66
00000a64: JUMPI
00000a65: INVALID
00000a66: JUMPDEST
00000a67: PUSH1 0x20
00000a69: MUL
00000a6a: PUSH1 0x20
00000a6c: ADD
00000a6d: ADD
00000a6e: MLOAD
00000a6f: PUSH1 0x40
00000a71: MLOAD
00000a72: PUSH2 0x0a7b
00000a75: SWAP2
00000a76: SWAP1
00000a77: PUSH2 0x46f1
00000a7a: JUMP
00000a7b: JUMPDEST
00000a7c: PUSH1 0x00
00000a7e: PUSH1 0x40
00000a80: MLOAD
00000a81: DUP1
00000a82: DUP4
00000a83: SUB
00000a84: DUP2
00000a85: DUP6
00000a86: DUP8
00000a87: GAS
00000a88: CALL
00000a89: SWAP3
00000a8a: POP
00000a8b: POP
00000a8c: POP
00000a8d: RETURNDATASIZE
00000a8e: DUP1
00000a8f: PUSH1 0x00
00000a91: DUP2
00000a92: EQ
00000a93: PUSH2 0x0ab8
00000a96: JUMPI
00000a97: PUSH1 0x40
00000a99: MLOAD
00000a9a: SWAP2
00000a9b: POP
00000a9c: PUSH1 0x1f
00000a9e: NOT
00000a9f: PUSH1 0x3f
00000aa1: RETURNDATASIZE
00000aa2: ADD
00000aa3: AND
00000aa4: DUP3
00000aa5: ADD
00000aa6: PUSH1 0x40
00000aa8: MSTORE
00000aa9: RETURNDATASIZE
00000aaa: DUP3
00000aab: MSTORE
00000aac: RETURNDATASIZE
00000aad: PUSH1 0x00
00000aaf: PUSH1 0x20
00000ab1: DUP5
00000ab2: ADD
00000ab3: RETURNDATACOPY
00000ab4: PUSH2 0x0abd
00000ab7: JUMP
00000ab8: JUMPDEST
00000ab9: PUSH1 0x60
00000abb: SWAP2
00000abc: POP
00000abd: JUMPDEST
00000abe: POP
00000abf: POP
00000ac0: POP
00000ac1: PUSH1 0x01
00000ac3: ADD
00000ac4: PUSH2 0x0a13
00000ac7: JUMP
00000ac8: JUMPDEST
00000ac9: POP
00000aca: POP
00000acb: POP
00000acc: POP
00000acd: JUMP
00000ace: JUMPDEST
00000acf: PUSH1 0x00
00000ad1: CALLER
00000ad2: PUSH2 0x0ad9
00000ad5: PUSH2 0x1a9b
00000ad8: JUMP
00000ad9: JUMPDEST
00000ada: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000aef: AND
00000af0: EQ
00000af1: DUP1
00000af2: PUSH2 0x0b0a
00000af5: JUMPI
00000af6: POP
00000af7: CALLER
00000af8: PUSH1 0x00
00000afa: SWAP1
00000afb: DUP2
00000afc: MSTORE
00000afd: PUSH1 0x01
00000aff: PUSH1 0x20
00000b01: MSTORE
00000b02: PUSH1 0x40
00000b04: SWAP1
00000b05: KECCAK256
00000b06: SLOAD
00000b07: PUSH1 0xff
00000b09: AND
00000b0a: JUMPDEST
00000b0b: PUSH2 0x0b40
00000b0e: JUMPI
00000b0f: PUSH1 0x40
00000b11: MLOAD
00000b12: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000b33: DUP2
00000b34: MSTORE
00000b35: PUSH1 0x04
00000b37: ADD
00000b38: PUSH2 0x098e
00000b3b: SWAP1
00000b3c: PUSH2 0x4a78
00000b3f: JUMP
00000b40: JUMPDEST
00000b41: PUSH1 0x00
00000b43: PUSH2 0x0b4d
00000b46: DUP7
00000b47: DUP7
00000b48: DUP7
00000b49: PUSH2 0x2662
00000b4c: JUMP
00000b4d: JUMPDEST
00000b4e: SWAP1
00000b4f: POP
00000b50: PUSH2 0x0b59
00000b53: DUP4
00000b54: DUP3
00000b55: PUSH2 0x1bb1
00000b58: JUMP
00000b59: JUMPDEST
00000b5a: SWAP6
00000b5b: SWAP5
00000b5c: POP
00000b5d: POP
00000b5e: POP
00000b5f: POP
00000b60: POP
00000b61: JUMP
00000b62: JUMPDEST
00000b63: CALLER
00000b64: PUSH2 0x0b6b
00000b67: PUSH2 0x1a9b
00000b6a: JUMP
00000b6b: JUMPDEST
00000b6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b81: AND
00000b82: EQ
00000b83: DUP1
00000b84: PUSH2 0x0b9c
00000b87: JUMPI
00000b88: POP
00000b89: CALLER
00000b8a: PUSH1 0x00
00000b8c: SWAP1
00000b8d: DUP2
00000b8e: MSTORE
00000b8f: PUSH1 0x01
00000b91: PUSH1 0x20
00000b93: MSTORE
00000b94: PUSH1 0x40
00000b96: SWAP1
00000b97: KECCAK256
00000b98: SLOAD
00000b99: PUSH1 0xff
00000b9b: AND
00000b9c: JUMPDEST
00000b9d: PUSH2 0x0bd2
00000ba0: JUMPI
00000ba1: PUSH1 0x40
00000ba3: MLOAD
00000ba4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000bc5: DUP2
00000bc6: MSTORE
00000bc7: PUSH1 0x04
00000bc9: ADD
00000bca: PUSH2 0x098e
00000bcd: SWAP1
00000bce: PUSH2 0x4a78
00000bd1: JUMP
00000bd2: JUMPDEST
00000bd3: PUSH1 0x02
00000bd5: SLOAD
00000bd6: PUSH1 0x40
00000bd8: MLOAD
00000bd9: PUSH32 0xdd289d6000000000000000000000000000000000000000000000000000000000
00000bfa: DUP2
00000bfb: MSTORE
00000bfc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c11: SWAP1
00000c12: SWAP2
00000c13: AND
00000c14: SWAP1
00000c15: PUSH4 0xdd289d60
00000c1a: SWAP1
00000c1b: PUSH2 0x0c28
00000c1e: SWAP1
00000c1f: DUP5
00000c20: SWAP1
00000c21: PUSH1 0x04
00000c23: ADD
00000c24: PUSH2 0x4710
00000c27: JUMP
00000c28: JUMPDEST
00000c29: PUSH1 0x00
00000c2b: PUSH1 0x40
00000c2d: MLOAD
00000c2e: DUP1
00000c2f: DUP4
00000c30: SUB
00000c31: DUP2
00000c32: PUSH1 0x00
00000c34: DUP8
00000c35: DUP1
00000c36: EXTCODESIZE
00000c37: ISZERO
00000c38: DUP1
00000c39: ISZERO
00000c3a: PUSH2 0x0c42
00000c3d: JUMPI
00000c3e: PUSH1 0x00
00000c40: DUP1
00000c41: REVERT
00000c42: JUMPDEST
00000c43: POP
00000c44: GAS
00000c45: CALL
00000c46: ISZERO
00000c47: DUP1
00000c48: ISZERO
00000c49: PUSH2 0x0c56
00000c4c: JUMPI
00000c4d: RETURNDATASIZE
00000c4e: PUSH1 0x00
00000c50: DUP1
00000c51: RETURNDATACOPY
00000c52: RETURNDATASIZE
00000c53: PUSH1 0x00
00000c55: REVERT
00000c56: JUMPDEST
00000c57: POP
00000c58: POP
00000c59: POP
00000c5a: POP
00000c5b: POP
00000c5c: JUMP
00000c5d: JUMPDEST
00000c5e: PUSH1 0x00
00000c60: CALLER
00000c61: PUSH2 0x0c68
00000c64: PUSH2 0x1a9b
00000c67: JUMP
00000c68: JUMPDEST
00000c69: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c7e: AND
00000c7f: EQ
00000c80: DUP1
00000c81: PUSH2 0x0c99
00000c84: JUMPI
00000c85: POP
00000c86: CALLER
00000c87: PUSH1 0x00
00000c89: SWAP1
00000c8a: DUP2
00000c8b: MSTORE
00000c8c: PUSH1 0x01
00000c8e: PUSH1 0x20
00000c90: MSTORE
00000c91: PUSH1 0x40
00000c93: SWAP1
00000c94: KECCAK256
00000c95: SLOAD
00000c96: PUSH1 0xff
00000c98: AND
00000c99: JUMPDEST
00000c9a: PUSH2 0x0ccf
00000c9d: JUMPI
00000c9e: PUSH1 0x40
00000ca0: MLOAD
00000ca1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000cc2: DUP2
00000cc3: MSTORE
00000cc4: PUSH1 0x04
00000cc6: ADD
00000cc7: PUSH2 0x098e
00000cca: SWAP1
00000ccb: PUSH2 0x4a78
00000cce: JUMP
00000ccf: JUMPDEST
00000cd0: PUSH2 0x0cd9
00000cd3: DUP3
00000cd4: DUP5
00000cd5: PUSH2 0x1e2b
00000cd8: JUMP
00000cd9: JUMPDEST
00000cda: PUSH2 0x0ce3
00000cdd: DUP5
00000cde: DUP5
00000cdf: PUSH2 0x0df8
00000ce2: JUMP
00000ce3: JUMPDEST
00000ce4: SWAP4
00000ce5: SWAP3
00000ce6: POP
00000ce7: POP
00000ce8: POP
00000ce9: JUMP
00000cea: JUMPDEST
00000ceb: PUSH1 0x00
00000ced: CALLER
00000cee: PUSH2 0x0cf5
00000cf1: PUSH2 0x1a9b
00000cf4: JUMP
00000cf5: JUMPDEST
00000cf6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d0b: AND
00000d0c: EQ
00000d0d: DUP1
00000d0e: PUSH2 0x0d26
00000d11: JUMPI
00000d12: POP
00000d13: CALLER
00000d14: PUSH1 0x00
00000d16: SWAP1
00000d17: DUP2
00000d18: MSTORE
00000d19: PUSH1 0x01
00000d1b: PUSH1 0x20
00000d1d: MSTORE
00000d1e: PUSH1 0x40
00000d20: SWAP1
00000d21: KECCAK256
00000d22: SLOAD
00000d23: PUSH1 0xff
00000d25: AND
00000d26: JUMPDEST
00000d27: PUSH2 0x0d5c
00000d2a: JUMPI
00000d2b: PUSH1 0x40
00000d2d: MLOAD
00000d2e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000d4f: DUP2
00000d50: MSTORE
00000d51: PUSH1 0x04
00000d53: ADD
00000d54: PUSH2 0x098e
00000d57: SWAP1
00000d58: PUSH2 0x4a78
00000d5b: JUMP
00000d5c: JUMPDEST
00000d5d: PUSH2 0x0d66
00000d60: DUP3
00000d61: DUP5
00000d62: PUSH2 0x1e2b
00000d65: JUMP
00000d66: JUMPDEST
00000d67: PUSH2 0x0b59
00000d6a: DUP6
00000d6b: DUP6
00000d6c: DUP6
00000d6d: PUSH2 0x20fa
00000d70: JUMP
00000d71: JUMPDEST
00000d72: PUSH1 0x00
00000d74: CALLER
00000d75: PUSH2 0x0d7c
00000d78: PUSH2 0x1a9b
00000d7b: JUMP
00000d7c: JUMPDEST
00000d7d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d92: AND
00000d93: EQ
00000d94: DUP1
00000d95: PUSH2 0x0dad
00000d98: JUMPI
00000d99: POP
00000d9a: CALLER
00000d9b: PUSH1 0x00
00000d9d: SWAP1
00000d9e: DUP2
00000d9f: MSTORE
00000da0: PUSH1 0x01
00000da2: PUSH1 0x20
00000da4: MSTORE
00000da5: PUSH1 0x40
00000da7: SWAP1
00000da8: KECCAK256
00000da9: SLOAD
00000daa: PUSH1 0xff
00000dac: AND
00000dad: JUMPDEST
00000dae: PUSH2 0x0de3
00000db1: JUMPI
00000db2: PUSH1 0x40
00000db4: MLOAD
00000db5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000dd6: DUP2
00000dd7: MSTORE
00000dd8: PUSH1 0x04
00000dda: ADD
00000ddb: PUSH2 0x098e
00000dde: SWAP1
00000ddf: PUSH2 0x4a78
00000de2: JUMP
00000de3: JUMPDEST
00000de4: PUSH1 0x00
00000de6: PUSH2 0x0df0
00000de9: DUP5
00000dea: DUP5
00000deb: DUP4
00000dec: PUSH2 0x2d76
00000def: JUMP
00000df0: JUMPDEST
00000df1: SWAP5
00000df2: SWAP4
00000df3: POP
00000df4: POP
00000df5: POP
00000df6: POP
00000df7: JUMP
00000df8: JUMPDEST
00000df9: CALLER
00000dfa: PUSH2 0x0e01
00000dfd: PUSH2 0x1a9b
00000e00: JUMP
00000e01: JUMPDEST
00000e02: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e17: AND
00000e18: EQ
00000e19: DUP1
00000e1a: PUSH2 0x0e32
00000e1d: JUMPI
00000e1e: POP
00000e1f: CALLER
00000e20: PUSH1 0x00
00000e22: SWAP1
00000e23: DUP2
00000e24: MSTORE
00000e25: PUSH1 0x01
00000e27: PUSH1 0x20
00000e29: MSTORE
00000e2a: PUSH1 0x40
00000e2c: SWAP1
00000e2d: KECCAK256
00000e2e: SLOAD
00000e2f: PUSH1 0xff
00000e31: AND
00000e32: JUMPDEST
00000e33: PUSH2 0x0e68
00000e36: JUMPI
00000e37: PUSH1 0x40
00000e39: MLOAD
00000e3a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000e5b: DUP2
00000e5c: MSTORE
00000e5d: PUSH1 0x04
00000e5f: ADD
00000e60: PUSH2 0x098e
00000e63: SWAP1
00000e64: PUSH2 0x4a78
00000e67: JUMP
00000e68: JUMPDEST
00000e69: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e7e: DUP3
00000e7f: AND
00000e80: PUSH1 0x00
00000e82: SWAP1
00000e83: DUP2
00000e84: MSTORE
00000e85: PUSH1 0x04
00000e87: PUSH1 0x20
00000e89: MSTORE
00000e8a: PUSH1 0x40
00000e8c: SWAP1
00000e8d: KECCAK256
00000e8e: SLOAD
00000e8f: PUSH1 0x60
00000e91: DUP2
00000e92: PUSH8 0xffffffffffffffff
00000e9b: DUP2
00000e9c: GT
00000e9d: DUP1
00000e9e: ISZERO
00000e9f: PUSH2 0x0ea7
00000ea2: JUMPI
00000ea3: PUSH1 0x00
00000ea5: DUP1
00000ea6: REVERT
00000ea7: JUMPDEST
00000ea8: POP
00000ea9: PUSH1 0x40
00000eab: MLOAD
00000eac: SWAP1
00000ead: DUP1
00000eae: DUP3
00000eaf: MSTORE
00000eb0: DUP1
00000eb1: PUSH1 0x20
00000eb3: MUL
00000eb4: PUSH1 0x20
00000eb6: ADD
00000eb7: DUP3
00000eb8: ADD
00000eb9: PUSH1 0x40
00000ebb: MSTORE
00000ebc: DUP1
00000ebd: ISZERO
00000ebe: PUSH2 0x0ed1
00000ec1: JUMPI
00000ec2: DUP2
00000ec3: PUSH1 0x20
00000ec5: ADD
00000ec6: PUSH1 0x20
00000ec8: DUP3
00000ec9: MUL
00000eca: DUP1
00000ecb: CALLDATASIZE
00000ecc: DUP4
00000ecd: CALLDATACOPY
00000ece: ADD
00000ecf: SWAP1
00000ed0: POP
00000ed1: JUMPDEST
00000ed2: POP
00000ed3: SWAP1
00000ed4: POP
00000ed5: PUSH1 0x00
00000ed7: JUMPDEST
00000ed8: DUP3
00000ed9: DUP2
00000eda: LT
00000edb: ISZERO
00000edc: PUSH2 0x0f5b
00000edf: JUMPI
00000ee0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ef5: DUP6
00000ef6: AND
00000ef7: PUSH1 0x00
00000ef9: SWAP1
00000efa: DUP2
00000efb: MSTORE
00000efc: PUSH1 0x04
00000efe: PUSH1 0x20
00000f00: MSTORE
00000f01: PUSH1 0x40
00000f03: SWAP1
00000f04: KECCAK256
00000f05: DUP1
00000f06: SLOAD
00000f07: PUSH2 0x0f3c
00000f0a: SWAP2
00000f0b: SWAP1
00000f0c: DUP4
00000f0d: SWAP1
00000f0e: DUP2
00000f0f: LT
00000f10: PUSH2 0x0f15
00000f13: JUMPI
00000f14: INVALID
00000f15: JUMPDEST
00000f16: PUSH1 0x00
00000f18: SWAP2
00000f19: DUP3
00000f1a: MSTORE
00000f1b: PUSH1 0x20
00000f1d: SWAP1
00000f1e: SWAP2
00000f1f: KECCAK256
00000f20: ADD
00000f21: SLOAD
00000f22: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f37: AND
00000f38: PUSH2 0x1acc
00000f3b: JUMP
00000f3c: JUMPDEST
00000f3d: DUP3
00000f3e: DUP3
00000f3f: DUP2
00000f40: MLOAD
00000f41: DUP2
00000f42: LT
00000f43: PUSH2 0x0f48
00000f46: JUMPI
00000f47: INVALID
00000f48: JUMPDEST
00000f49: PUSH1 0x20
00000f4b: SWAP1
00000f4c: DUP2
00000f4d: MUL
00000f4e: SWAP2
00000f4f: SWAP1
00000f50: SWAP2
00000f51: ADD
00000f52: ADD
00000f53: MSTORE
00000f54: PUSH1 0x01
00000f56: ADD
00000f57: PUSH2 0x0ed7
00000f5a: JUMP
00000f5b: JUMPDEST
00000f5c: POP
00000f5d: DUP2
00000f5e: PUSH1 0x02
00000f60: EQ
00000f61: ISZERO
00000f62: PUSH2 0x0f74
00000f65: JUMPI
00000f66: PUSH2 0x0f6f
00000f69: DUP5
00000f6a: DUP5
00000f6b: PUSH2 0x2fca
00000f6e: JUMP
00000f6f: JUMPDEST
00000f70: PUSH2 0x0fb9
00000f73: JUMP
00000f74: JUMPDEST
00000f75: DUP2
00000f76: PUSH1 0x03
00000f78: EQ
00000f79: ISZERO
00000f7a: PUSH2 0x0f87
00000f7d: JUMPI
00000f7e: PUSH2 0x0f6f
00000f81: DUP5
00000f82: DUP5
00000f83: PUSH2 0x317a
00000f86: JUMP
00000f87: JUMPDEST
00000f88: PUSH1 0x40
00000f8a: MLOAD
00000f8b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000fac: DUP2
00000fad: MSTORE
00000fae: PUSH1 0x04
00000fb0: ADD
00000fb1: PUSH2 0x098e
00000fb4: SWAP1
00000fb5: PUSH2 0x4a0c
00000fb8: JUMP
00000fb9: JUMPDEST
00000fba: PUSH1 0x60
00000fbc: DUP3
00000fbd: PUSH8 0xffffffffffffffff
00000fc6: DUP2
00000fc7: GT
00000fc8: DUP1
00000fc9: ISZERO
00000fca: PUSH2 0x0fd2
00000fcd: JUMPI
00000fce: PUSH1 0x00
00000fd0: DUP1
00000fd1: REVERT
00000fd2: JUMPDEST
00000fd3: POP
00000fd4: PUSH1 0x40
00000fd6: MLOAD
00000fd7: SWAP1
00000fd8: DUP1
00000fd9: DUP3
00000fda: MSTORE
00000fdb: DUP1
00000fdc: PUSH1 0x20
00000fde: MUL
00000fdf: PUSH1 0x20
00000fe1: ADD
00000fe2: DUP3
00000fe3: ADD
00000fe4: PUSH1 0x40
00000fe6: MSTORE
00000fe7: DUP1
00000fe8: ISZERO
00000fe9: PUSH2 0x0ffc
00000fec: JUMPI
00000fed: DUP2
00000fee: PUSH1 0x20
00000ff0: ADD
00000ff1: PUSH1 0x20
00000ff3: DUP3
00000ff4: MUL
00000ff5: DUP1
00000ff6: CALLDATASIZE
00000ff7: DUP4
00000ff8: CALLDATACOPY
00000ff9: ADD
00000ffa: SWAP1
00000ffb: POP
00000ffc: JUMPDEST
00000ffd: POP
00000ffe: SWAP1
00000fff: POP
00001000: PUSH1 0x00
00001002: JUMPDEST
00001003: DUP4
00001004: DUP2
00001005: LT
00001006: ISZERO
00001007: PUSH2 0x1093
0000100a: JUMPI
0000100b: PUSH2 0x1074
0000100e: DUP4
0000100f: DUP3
00001010: DUP2
00001011: MLOAD
00001012: DUP2
00001013: LT
00001014: PUSH2 0x1019
00001017: JUMPI
00001018: INVALID
00001019: JUMPDEST
0000101a: PUSH1 0x20
0000101c: MUL
0000101d: PUSH1 0x20
0000101f: ADD
00001020: ADD
00001021: MLOAD
00001022: PUSH2 0x106e
00001025: PUSH1 0x04
00001027: PUSH1 0x00
00001029: DUP11
0000102a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000103f: AND
00001040: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001055: AND
00001056: DUP2
00001057: MSTORE
00001058: PUSH1 0x20
0000105a: ADD
0000105b: SWAP1
0000105c: DUP2
0000105d: MSTORE
0000105e: PUSH1 0x20
00001060: ADD
00001061: PUSH1 0x00
00001063: KECCAK256
00001064: DUP5
00001065: DUP2
00001066: SLOAD
00001067: DUP2
00001068: LT
00001069: PUSH2 0x0f15
0000106c: JUMPI
0000106d: INVALID
0000106e: JUMPDEST
0000106f: SWAP1
00001070: PUSH2 0x32bb
00001073: JUMP
00001074: JUMPDEST
00001075: DUP3
00001076: DUP3
00001077: DUP2
00001078: MLOAD
00001079: DUP2
0000107a: LT
0000107b: PUSH2 0x1080
0000107e: JUMPI
0000107f: INVALID
00001080: JUMPDEST
00001081: PUSH1 0x20
00001083: SWAP1
00001084: DUP2
00001085: MUL
00001086: SWAP2
00001087: SWAP1
00001088: SWAP2
00001089: ADD
0000108a: ADD
0000108b: MSTORE
0000108c: PUSH1 0x01
0000108e: ADD
0000108f: PUSH2 0x1002
00001092: JUMP
00001093: JUMPDEST
00001094: POP
00001095: DUP5
00001096: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010ab: AND
000010ac: PUSH32 0xd2602de014927617147990f1eaef38f72e9787acf22aa14785cefe59164eef1c
000010cd: DUP3
000010ce: PUSH1 0x40
000010d0: MLOAD
000010d1: PUSH2 0x10da
000010d4: SWAP2
000010d5: SWAP1
000010d6: PUSH2 0x47fc
000010d9: JUMP
000010da: JUMPDEST
000010db: PUSH1 0x40
000010dd: MLOAD
000010de: DUP1
000010df: SWAP2
000010e0: SUB
000010e1: SWAP1
000010e2: LOG2
000010e3: POP
000010e4: POP
000010e5: POP
000010e6: POP
000010e7: POP
000010e8: JUMP
000010e9: JUMPDEST
000010ea: CALLER
000010eb: PUSH2 0x10f2
000010ee: PUSH2 0x1a9b
000010f1: JUMP
000010f2: JUMPDEST
000010f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001108: AND
00001109: EQ
0000110a: DUP1
0000110b: PUSH2 0x1123
0000110e: JUMPI
0000110f: POP
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: JUMPDEST
00001124: PUSH2 0x1159
00001127: JUMPI
00001128: PUSH1 0x40
0000112a: MLOAD
0000112b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000114c: DUP2
0000114d: MSTORE
0000114e: PUSH1 0x04
00001150: ADD
00001151: PUSH2 0x098e
00001154: SWAP1
00001155: PUSH2 0x4a78
00001158: JUMP
00001159: JUMPDEST
0000115a: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
0000116f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001184: AND
00001185: PUSH4 0xd0e30db0
0000118a: DUP3
0000118b: PUSH1 0x40
0000118d: MLOAD
0000118e: DUP3
0000118f: PUSH4 0xffffffff
00001194: AND
00001195: PUSH1 0xe0
00001197: SHL
00001198: DUP2
00001199: MSTORE
0000119a: PUSH1 0x04
0000119c: ADD
0000119d: PUSH1 0x00
0000119f: PUSH1 0x40
000011a1: MLOAD
000011a2: DUP1
000011a3: DUP4
000011a4: SUB
000011a5: DUP2
000011a6: DUP6
000011a7: DUP9
000011a8: DUP1
000011a9: EXTCODESIZE
000011aa: ISZERO
000011ab: DUP1
000011ac: ISZERO
000011ad: PUSH2 0x11b5
000011b0: JUMPI
000011b1: PUSH1 0x00
000011b3: DUP1
000011b4: REVERT
000011b5: JUMPDEST
000011b6: POP
000011b7: GAS
000011b8: CALL
000011b9: ISZERO
000011ba: DUP1
000011bb: ISZERO
000011bc: PUSH2 0x11c9
000011bf: JUMPI
000011c0: RETURNDATASIZE
000011c1: PUSH1 0x00
000011c3: DUP1
000011c4: RETURNDATACOPY
000011c5: RETURNDATASIZE
000011c6: PUSH1 0x00
000011c8: REVERT
000011c9: JUMPDEST
000011ca: POP
000011cb: POP
000011cc: POP
000011cd: POP
000011ce: POP
000011cf: POP
000011d0: JUMP
000011d1: JUMPDEST
000011d2: PUSH2 0x11d9
000011d5: PUSH2 0x2d72
000011d8: JUMP
000011d9: JUMPDEST
000011da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011ef: AND
000011f0: PUSH2 0x11f7
000011f3: PUSH2 0x1a9b
000011f6: JUMP
000011f7: JUMPDEST
000011f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000120d: AND
0000120e: EQ
0000120f: PUSH2 0x1244
00001212: JUMPI
00001213: PUSH1 0x40
00001215: MLOAD
00001216: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001237: DUP2
00001238: MSTORE
00001239: PUSH1 0x04
0000123b: ADD
0000123c: PUSH2 0x098e
0000123f: SWAP1
00001240: PUSH2 0x4a43
00001243: JUMP
00001244: JUMPDEST
00001245: DUP1
00001246: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000125b: AND
0000125c: PUSH32 0x9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea2
0000127d: PUSH1 0x01
0000127f: PUSH1 0x40
00001281: MLOAD
00001282: PUSH2 0x128b
00001285: SWAP2
00001286: SWAP1
00001287: PUSH2 0x4840
0000128a: JUMP
0000128b: JUMPDEST
0000128c: PUSH1 0x40
0000128e: MLOAD
0000128f: DUP1
00001290: SWAP2
00001291: SUB
00001292: SWAP1
00001293: LOG2
00001294: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012a9: AND
000012aa: PUSH1 0x00
000012ac: SWAP1
000012ad: DUP2
000012ae: MSTORE
000012af: PUSH1 0x01
000012b1: PUSH1 0x20
000012b3: DUP2
000012b4: SWAP1
000012b5: MSTORE
000012b6: PUSH1 0x40
000012b8: SWAP1
000012b9: SWAP2
000012ba: KECCAK256
000012bb: DUP1
000012bc: SLOAD
000012bd: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
000012de: AND
000012df: SWAP1
000012e0: SWAP2
000012e1: OR
000012e2: SWAP1
000012e3: SSTORE
000012e4: JUMP
000012e5: JUMPDEST
000012e6: PUSH2 0x12ed
000012e9: PUSH2 0x2d72
000012ec: JUMP
000012ed: JUMPDEST
000012ee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001303: AND
00001304: PUSH2 0x130b
00001307: PUSH2 0x1a9b
0000130a: JUMP
0000130b: JUMPDEST
0000130c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001321: AND
00001322: EQ
00001323: PUSH2 0x1358
00001326: JUMPI
00001327: PUSH1 0x40
00001329: MLOAD
0000132a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000134b: DUP2
0000134c: MSTORE
0000134d: PUSH1 0x04
0000134f: ADD
00001350: PUSH2 0x098e
00001353: SWAP1
00001354: PUSH2 0x4a43
00001357: JUMP
00001358: JUMPDEST
00001359: DUP1
0000135a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000136f: AND
00001370: PUSH32 0x9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea2
00001391: PUSH1 0x00
00001393: PUSH1 0x40
00001395: MLOAD
00001396: PUSH2 0x139f
00001399: SWAP2
0000139a: SWAP1
0000139b: PUSH2 0x4840
0000139e: JUMP
0000139f: JUMPDEST
000013a0: PUSH1 0x40
000013a2: MLOAD
000013a3: DUP1
000013a4: SWAP2
000013a5: SUB
000013a6: SWAP1
000013a7: LOG2
000013a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013bd: AND
000013be: PUSH1 0x00
000013c0: SWAP1
000013c1: DUP2
000013c2: MSTORE
000013c3: PUSH1 0x01
000013c5: PUSH1 0x20
000013c7: MSTORE
000013c8: PUSH1 0x40
000013ca: SWAP1
000013cb: KECCAK256
000013cc: DUP1
000013cd: SLOAD
000013ce: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
000013ef: AND
000013f0: SWAP1
000013f1: SSTORE
000013f2: JUMP
000013f3: JUMPDEST
000013f4: PUSH2 0x13fb
000013f7: PUSH2 0x2d72
000013fa: JUMP
000013fb: JUMPDEST
000013fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001411: AND
00001412: PUSH2 0x1419
00001415: PUSH2 0x1a9b
00001418: JUMP
00001419: JUMPDEST
0000141a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000142f: AND
00001430: EQ
00001431: PUSH2 0x1466
00001434: JUMPI
00001435: PUSH1 0x40
00001437: MLOAD
00001438: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001459: DUP2
0000145a: MSTORE
0000145b: PUSH1 0x04
0000145d: ADD
0000145e: PUSH2 0x098e
00001461: SWAP1
00001462: PUSH2 0x4a43
00001465: JUMP
00001466: JUMPDEST
00001467: PUSH2 0x1472
0000146a: DUP3
0000146b: DUP3
0000146c: PUSH1 0x00
0000146e: PUSH2 0x32fd
00001471: JUMP
00001472: JUMPDEST
00001473: POP
00001474: POP
00001475: JUMP
00001476: JUMPDEST
00001477: PUSH1 0x00
00001479: CALLER
0000147a: PUSH2 0x1481
0000147d: PUSH2 0x1a9b
00001480: JUMP
00001481: JUMPDEST
00001482: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001497: AND
00001498: EQ
00001499: DUP1
0000149a: PUSH2 0x14b2
0000149d: JUMPI
0000149e: POP
0000149f: CALLER
000014a0: PUSH1 0x00
000014a2: SWAP1
000014a3: DUP2
000014a4: MSTORE
000014a5: PUSH1 0x01
000014a7: PUSH1 0x20
000014a9: MSTORE
000014aa: PUSH1 0x40
000014ac: SWAP1
000014ad: KECCAK256
000014ae: SLOAD
000014af: PUSH1 0xff
000014b1: AND
000014b2: JUMPDEST
000014b3: PUSH2 0x14e8
000014b6: JUMPI
000014b7: PUSH1 0x40
000014b9: MLOAD
000014ba: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000014db: DUP2
000014dc: MSTORE
000014dd: PUSH1 0x04
000014df: ADD
000014e0: PUSH2 0x098e
000014e3: SWAP1
000014e4: PUSH2 0x4a78
000014e7: JUMP
000014e8: JUMPDEST
000014e9: PUSH1 0x00
000014eb: PUSH2 0x14f3
000014ee: DUP4
000014ef: PUSH2 0x331e
000014f2: JUMP
000014f3: JUMPDEST
000014f4: SWAP1
000014f5: POP
000014f6: PUSH1 0x00
000014f8: PUSH2 0x1502
000014fb: DUP5
000014fc: DUP9
000014fd: DUP9
000014fe: PUSH2 0x2662
00001501: JUMP
00001502: JUMPDEST
00001503: SWAP1
00001504: POP
00001505: PUSH2 0x1510
00001508: DUP9
00001509: DUP4
0000150a: DUP4
0000150b: DUP9
0000150c: PUSH2 0x0ace
0000150f: JUMP
00001510: JUMPDEST
00001511: SWAP9
00001512: SWAP8
00001513: POP
00001514: POP
00001515: POP
00001516: POP
00001517: POP
00001518: POP
00001519: POP
0000151a: POP
0000151b: JUMP
0000151c: JUMPDEST
0000151d: PUSH1 0x00
0000151f: CALLER
00001520: PUSH2 0x1527
00001523: PUSH2 0x1a9b
00001526: JUMP
00001527: JUMPDEST
00001528: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000153d: AND
0000153e: EQ
0000153f: DUP1
00001540: PUSH2 0x1558
00001543: JUMPI
00001544: POP
00001545: CALLER
00001546: PUSH1 0x00
00001548: SWAP1
00001549: DUP2
0000154a: MSTORE
0000154b: PUSH1 0x01
0000154d: PUSH1 0x20
0000154f: MSTORE
00001550: PUSH1 0x40
00001552: SWAP1
00001553: KECCAK256
00001554: SLOAD
00001555: PUSH1 0xff
00001557: AND
00001558: JUMPDEST
00001559: PUSH2 0x158e
0000155c: JUMPI
0000155d: PUSH1 0x40
0000155f: MLOAD
00001560: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001581: DUP2
00001582: MSTORE
00001583: PUSH1 0x04
00001585: ADD
00001586: PUSH2 0x098e
00001589: SWAP1
0000158a: PUSH2 0x4a78
0000158d: JUMP
0000158e: JUMPDEST
0000158f: PUSH1 0x00
00001591: PUSH2 0x159b
00001594: DUP4
00001595: DUP8
00001596: DUP8
00001597: PUSH2 0x2662
0000159a: JUMP
0000159b: JUMPDEST
0000159c: SWAP1
0000159d: POP
0000159e: PUSH1 0x00
000015a0: PUSH2 0x15a8
000015a3: DUP5
000015a4: PUSH2 0x331e
000015a7: JUMP
000015a8: JUMPDEST
000015a9: SWAP1
000015aa: POP
000015ab: PUSH2 0x1510
000015ae: DUP9
000015af: DUP3
000015b0: DUP5
000015b1: DUP9
000015b2: PUSH2 0x1782
000015b5: JUMP
000015b6: JUMPDEST
000015b7: CALLER
000015b8: PUSH2 0x15bf
000015bb: PUSH2 0x1a9b
000015be: JUMP
000015bf: JUMPDEST
000015c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015d5: AND
000015d6: EQ
000015d7: DUP1
000015d8: PUSH2 0x15f0
000015db: JUMPI
000015dc: POP
000015dd: CALLER
000015de: PUSH1 0x00
000015e0: SWAP1
000015e1: DUP2
000015e2: MSTORE
000015e3: PUSH1 0x01
000015e5: PUSH1 0x20
000015e7: MSTORE
000015e8: PUSH1 0x40
000015ea: SWAP1
000015eb: KECCAK256
000015ec: SLOAD
000015ed: PUSH1 0xff
000015ef: AND
000015f0: JUMPDEST
000015f1: PUSH2 0x1626
000015f4: JUMPI
000015f5: PUSH1 0x40
000015f7: MLOAD
000015f8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001619: DUP2
0000161a: MSTORE
0000161b: PUSH1 0x04
0000161d: ADD
0000161e: PUSH2 0x098e
00001621: SWAP1
00001622: PUSH2 0x4a78
00001625: JUMP
00001626: JUMPDEST
00001627: PUSH2 0x162e
0000162a: PUSH2 0x3e5d
0000162d: JUMP
0000162e: JUMPDEST
0000162f: PUSH1 0x08
00001631: SLOAD
00001632: PUSH1 0x40
00001634: MLOAD
00001635: PUSH32 0x1526fe2700000000000000000000000000000000000000000000000000000000
00001656: DUP2
00001657: MSTORE
00001658: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000166d: SWAP1
0000166e: SWAP2
0000166f: AND
00001670: SWAP1
00001671: PUSH4 0x1526fe27
00001676: SWAP1
00001677: PUSH2 0x1684
0000167a: SWAP1
0000167b: DUP7
0000167c: SWAP1
0000167d: PUSH1 0x04
0000167f: ADD
00001680: PUSH2 0x4bc6
00001683: JUMP
00001684: JUMPDEST
00001685: PUSH1 0xc0
00001687: PUSH1 0x40
00001689: MLOAD
0000168a: DUP1
0000168b: DUP4
0000168c: SUB
0000168d: DUP2
0000168e: DUP7
0000168f: DUP1
00001690: EXTCODESIZE
00001691: ISZERO
00001692: DUP1
00001693: ISZERO
00001694: PUSH2 0x169c
00001697: JUMPI
00001698: PUSH1 0x00
0000169a: DUP1
0000169b: REVERT
0000169c: JUMPDEST
0000169d: POP
0000169e: GAS
0000169f: STATICCALL
000016a0: ISZERO
000016a1: DUP1
000016a2: ISZERO
000016a3: PUSH2 0x16b0
000016a6: JUMPI
000016a7: RETURNDATASIZE
000016a8: PUSH1 0x00
000016aa: DUP1
000016ab: RETURNDATACOPY
000016ac: RETURNDATASIZE
000016ad: PUSH1 0x00
000016af: REVERT
000016b0: JUMPDEST
000016b1: POP
000016b2: POP
000016b3: POP
000016b4: POP
000016b5: PUSH1 0x40
000016b7: MLOAD
000016b8: RETURNDATASIZE
000016b9: PUSH1 0x1f
000016bb: NOT
000016bc: PUSH1 0x1f
000016be: DUP3
000016bf: ADD
000016c0: AND
000016c1: DUP3
000016c2: ADD
000016c3: DUP1
000016c4: PUSH1 0x40
000016c6: MSTORE
000016c7: POP
000016c8: DUP2
000016c9: ADD
000016ca: SWAP1
000016cb: PUSH2 0x16d4
000016ce: SWAP2
000016cf: SWAP1
000016d0: PUSH2 0x45cc
000016d3: JUMP
000016d4: JUMPDEST
000016d5: PUSH1 0x60
000016d7: DUP2
000016d8: ADD
000016d9: MLOAD
000016da: PUSH1 0x40
000016dc: MLOAD
000016dd: PUSH32 0xc32e720200000000000000000000000000000000000000000000000000000000
000016fe: DUP2
000016ff: MSTORE
00001700: SWAP2
00001701: SWAP3
00001702: POP
00001703: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001718: AND
00001719: SWAP1
0000171a: PUSH4 0xc32e7202
0000171f: SWAP1
00001720: PUSH2 0x1730
00001723: SWAP1
00001724: DUP6
00001725: SWAP1
00001726: PUSH1 0x01
00001728: SWAP1
00001729: PUSH1 0x04
0000172b: ADD
0000172c: PUSH2 0x4c3f
0000172f: JUMP
00001730: JUMPDEST
00001731: PUSH1 0x20
00001733: PUSH1 0x40
00001735: MLOAD
00001736: DUP1
00001737: DUP4
00001738: SUB
00001739: DUP2
0000173a: PUSH1 0x00
0000173c: DUP8
0000173d: DUP1
0000173e: EXTCODESIZE
0000173f: ISZERO
00001740: DUP1
00001741: ISZERO
00001742: PUSH2 0x174a
00001745: JUMPI
00001746: PUSH1 0x00
00001748: DUP1
00001749: REVERT
0000174a: JUMPDEST
0000174b: POP
0000174c: GAS
0000174d: CALL
0000174e: ISZERO
0000174f: DUP1
00001750: ISZERO
00001751: PUSH2 0x175e
00001754: JUMPI
00001755: RETURNDATASIZE
00001756: PUSH1 0x00
00001758: DUP1
00001759: RETURNDATACOPY
0000175a: RETURNDATASIZE
0000175b: PUSH1 0x00
0000175d: REVERT
0000175e: JUMPDEST
0000175f: POP
00001760: POP
00001761: POP
00001762: POP
00001763: PUSH1 0x40
00001765: MLOAD
00001766: RETURNDATASIZE
00001767: PUSH1 0x1f
00001769: NOT
0000176a: PUSH1 0x1f
0000176c: DUP3
0000176d: ADD
0000176e: AND
0000176f: DUP3
00001770: ADD
00001771: DUP1
00001772: PUSH1 0x40
00001774: MSTORE
00001775: POP
00001776: DUP2
00001777: ADD
00001778: SWAP1
00001779: PUSH2 0x0ac8
0000177c: SWAP2
0000177d: SWAP1
0000177e: PUSH2 0x45b0
00001781: JUMP
00001782: JUMPDEST
00001783: PUSH1 0x00
00001785: CALLER
00001786: PUSH2 0x178d
00001789: PUSH2 0x1a9b
0000178c: JUMP
0000178d: JUMPDEST
0000178e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017a3: AND
000017a4: EQ
000017a5: DUP1
000017a6: PUSH2 0x17be
000017a9: JUMPI
000017aa: POP
000017ab: CALLER
000017ac: PUSH1 0x00
000017ae: SWAP1
000017af: DUP2
000017b0: MSTORE
000017b1: PUSH1 0x01
000017b3: PUSH1 0x20
000017b5: MSTORE
000017b6: PUSH1 0x40
000017b8: SWAP1
000017b9: KECCAK256
000017ba: SLOAD
000017bb: PUSH1 0xff
000017bd: AND
000017be: JUMPDEST
000017bf: PUSH2 0x17f4
000017c2: JUMPI
000017c3: PUSH1 0x40
000017c5: MLOAD
000017c6: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000017e7: DUP2
000017e8: MSTORE
000017e9: PUSH1 0x04
000017eb: ADD
000017ec: PUSH2 0x098e
000017ef: SWAP1
000017f0: PUSH2 0x4a78
000017f3: JUMP
000017f4: JUMPDEST
000017f5: PUSH1 0x00
000017f7: PUSH2 0x1801
000017fa: DUP7
000017fb: DUP7
000017fc: DUP7
000017fd: PUSH2 0x2662
00001800: JUMP
00001801: JUMPDEST
00001802: SWAP1
00001803: POP
00001804: PUSH2 0x0b59
00001807: DUP4
00001808: DUP3
00001809: PUSH2 0x1979
0000180c: JUMP
0000180d: JUMPDEST
0000180e: PUSH1 0x00
00001810: CALLER
00001811: PUSH2 0x1818
00001814: PUSH2 0x1a9b
00001817: JUMP
00001818: JUMPDEST
00001819: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000182e: AND
0000182f: EQ
00001830: DUP1
00001831: PUSH2 0x1849
00001834: JUMPI
00001835: POP
00001836: CALLER
00001837: PUSH1 0x00
00001839: SWAP1
0000183a: DUP2
0000183b: MSTORE
0000183c: PUSH1 0x01
0000183e: PUSH1 0x20
00001840: MSTORE
00001841: PUSH1 0x40
00001843: SWAP1
00001844: KECCAK256
00001845: SLOAD
00001846: PUSH1 0xff
00001848: AND
00001849: JUMPDEST
0000184a: PUSH2 0x187f
0000184d: JUMPI
0000184e: PUSH1 0x40
00001850: MLOAD
00001851: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001872: DUP2
00001873: MSTORE
00001874: PUSH1 0x04
00001876: ADD
00001877: PUSH2 0x098e
0000187a: SWAP1
0000187b: PUSH2 0x4a78
0000187e: JUMP
0000187f: JUMPDEST
00001880: PUSH1 0x00
00001882: PUSH2 0x188b
00001885: DUP6
00001886: DUP6
00001887: PUSH2 0x0d71
0000188a: JUMP
0000188b: JUMPDEST
0000188c: SWAP1
0000188d: POP
0000188e: PUSH2 0x0df0
00001891: DUP4
00001892: DUP3
00001893: PUSH2 0x1bb1
00001896: JUMP
00001897: JUMPDEST
00001898: PUSH2 0x189f
0000189b: PUSH2 0x2d72
0000189e: JUMP
0000189f: JUMPDEST
000018a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018b5: AND
000018b6: PUSH2 0x18bd
000018b9: PUSH2 0x1a9b
000018bc: JUMP
000018bd: JUMPDEST
000018be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018d3: AND
000018d4: EQ
000018d5: PUSH2 0x190a
000018d8: JUMPI
000018d9: PUSH1 0x40
000018db: MLOAD
000018dc: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000018fd: DUP2
000018fe: MSTORE
000018ff: PUSH1 0x04
00001901: ADD
00001902: PUSH2 0x098e
00001905: SWAP1
00001906: PUSH2 0x4a43
00001909: JUMP
0000190a: JUMPDEST
0000190b: PUSH1 0x00
0000190d: DUP1
0000190e: SLOAD
0000190f: PUSH1 0x40
00001911: MLOAD
00001912: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001927: SWAP1
00001928: SWAP2
00001929: AND
0000192a: SWAP1
0000192b: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
0000194c: SWAP1
0000194d: DUP4
0000194e: SWAP1
0000194f: LOG3
00001950: PUSH1 0x00
00001952: DUP1
00001953: SLOAD
00001954: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00001975: AND
00001976: SWAP1
00001977: SSTORE
00001978: JUMP
00001979: JUMPDEST
0000197a: CALLER
0000197b: PUSH2 0x1982
0000197e: PUSH2 0x1a9b
00001981: JUMP
00001982: JUMPDEST
00001983: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001998: AND
00001999: EQ
0000199a: DUP1
0000199b: PUSH2 0x19b3
0000199e: JUMPI
0000199f: POP
000019a0: CALLER
000019a1: PUSH1 0x00
000019a3: SWAP1
000019a4: DUP2
000019a5: MSTORE
000019a6: PUSH1 0x01
000019a8: PUSH1 0x20
000019aa: MSTORE
000019ab: PUSH1 0x40
000019ad: SWAP1
000019ae: KECCAK256
000019af: SLOAD
000019b0: PUSH1 0xff
000019b2: AND
000019b3: JUMPDEST
000019b4: PUSH2 0x19e9
000019b7: JUMPI
000019b8: PUSH1 0x40
000019ba: MLOAD
000019bb: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000019dc: DUP2
000019dd: MSTORE
000019de: PUSH1 0x04
000019e0: ADD
000019e1: PUSH2 0x098e
000019e4: SWAP1
000019e5: PUSH2 0x4a78
000019e8: JUMP
000019e9: JUMPDEST
000019ea: PUSH1 0x08
000019ec: SLOAD
000019ed: PUSH1 0x40
000019ef: MLOAD
000019f0: PUSH32 0x43a0d06600000000000000000000000000000000000000000000000000000000
00001a11: DUP2
00001a12: MSTORE
00001a13: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a28: SWAP1
00001a29: SWAP2
00001a2a: AND
00001a2b: SWAP1
00001a2c: PUSH4 0x43a0d066
00001a31: SWAP1
00001a32: PUSH2 0x1a44
00001a35: SWAP1
00001a36: DUP6
00001a37: SWAP1
00001a38: DUP6
00001a39: SWAP1
00001a3a: PUSH1 0x01
00001a3c: SWAP1
00001a3d: PUSH1 0x04
00001a3f: ADD
00001a40: PUSH2 0x4c88
00001a43: JUMP
00001a44: JUMPDEST
00001a45: PUSH1 0x20
00001a47: PUSH1 0x40
00001a49: MLOAD
00001a4a: DUP1
00001a4b: DUP4
00001a4c: SUB
00001a4d: DUP2
00001a4e: PUSH1 0x00
00001a50: DUP8
00001a51: DUP1
00001a52: EXTCODESIZE
00001a53: ISZERO
00001a54: DUP1
00001a55: ISZERO
00001a56: PUSH2 0x1a5e
00001a59: JUMPI
00001a5a: PUSH1 0x00
00001a5c: DUP1
00001a5d: REVERT
00001a5e: JUMPDEST
00001a5f: POP
00001a60: GAS
00001a61: CALL
00001a62: ISZERO
00001a63: DUP1
00001a64: ISZERO
00001a65: PUSH2 0x1a72
00001a68: JUMPI
00001a69: RETURNDATASIZE
00001a6a: PUSH1 0x00
00001a6c: DUP1
00001a6d: RETURNDATACOPY
00001a6e: RETURNDATASIZE
00001a6f: PUSH1 0x00
00001a71: REVERT
00001a72: JUMPDEST
00001a73: POP
00001a74: POP
00001a75: POP
00001a76: POP
00001a77: PUSH1 0x40
00001a79: MLOAD
00001a7a: RETURNDATASIZE
00001a7b: PUSH1 0x1f
00001a7d: NOT
00001a7e: PUSH1 0x1f
00001a80: DUP3
00001a81: ADD
00001a82: AND
00001a83: DUP3
00001a84: ADD
00001a85: DUP1
00001a86: PUSH1 0x40
00001a88: MSTORE
00001a89: POP
00001a8a: DUP2
00001a8b: ADD
00001a8c: SWAP1
00001a8d: PUSH2 0x1a96
00001a90: SWAP2
00001a91: SWAP1
00001a92: PUSH2 0x45b0
00001a95: JUMP
00001a96: JUMPDEST
00001a97: POP
00001a98: POP
00001a99: POP
00001a9a: JUMP
00001a9b: JUMPDEST
00001a9c: PUSH1 0x00
00001a9e: SLOAD
00001a9f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ab4: AND
00001ab5: SWAP1
00001ab6: JUMP
00001ab7: JUMPDEST
00001ab8: PUSH1 0x01
00001aba: PUSH1 0x20
00001abc: MSTORE
00001abd: PUSH1 0x00
00001abf: SWAP1
00001ac0: DUP2
00001ac1: MSTORE
00001ac2: PUSH1 0x40
00001ac4: SWAP1
00001ac5: KECCAK256
00001ac6: SLOAD
00001ac7: PUSH1 0xff
00001ac9: AND
00001aca: DUP2
00001acb: JUMP
00001acc: JUMPDEST
00001acd: PUSH1 0x00
00001acf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ae4: DUP3
00001ae5: AND
00001ae6: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
00001afb: EQ
00001afc: ISZERO
00001afd: PUSH2 0x1b07
00001b00: JUMPI
00001b01: POP
00001b02: SELFBALANCE
00001b03: PUSH2 0x1bac
00001b06: JUMP
00001b07: JUMPDEST
00001b08: PUSH1 0x40
00001b0a: MLOAD
00001b0b: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
00001b2c: DUP2
00001b2d: MSTORE
00001b2e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b43: DUP4
00001b44: AND
00001b45: SWAP1
00001b46: PUSH4 0x70a08231
00001b4b: SWAP1
00001b4c: PUSH2 0x1b59
00001b4f: SWAP1
00001b50: ADDRESS
00001b51: SWAP1
00001b52: PUSH1 0x04
00001b54: ADD
00001b55: PUSH2 0x4710
00001b58: JUMP
00001b59: JUMPDEST
00001b5a: PUSH1 0x20
00001b5c: PUSH1 0x40
00001b5e: MLOAD
00001b5f: DUP1
00001b60: DUP4
00001b61: SUB
00001b62: DUP2
00001b63: DUP7
00001b64: DUP1
00001b65: EXTCODESIZE
00001b66: ISZERO
00001b67: DUP1
00001b68: ISZERO
00001b69: PUSH2 0x1b71
00001b6c: JUMPI
00001b6d: PUSH1 0x00
00001b6f: DUP1
00001b70: REVERT
00001b71: JUMPDEST
00001b72: POP
00001b73: GAS
00001b74: STATICCALL
00001b75: ISZERO
00001b76: DUP1
00001b77: ISZERO
00001b78: PUSH2 0x1b85
00001b7b: JUMPI
00001b7c: RETURNDATASIZE
00001b7d: PUSH1 0x00
00001b7f: DUP1
00001b80: RETURNDATACOPY
00001b81: RETURNDATASIZE
00001b82: PUSH1 0x00
00001b84: REVERT
00001b85: JUMPDEST
00001b86: POP
00001b87: POP
00001b88: POP
00001b89: POP
00001b8a: PUSH1 0x40
00001b8c: MLOAD
00001b8d: RETURNDATASIZE
00001b8e: PUSH1 0x1f
00001b90: NOT
00001b91: PUSH1 0x1f
00001b93: DUP3
00001b94: ADD
00001b95: AND
00001b96: DUP3
00001b97: ADD
00001b98: DUP1
00001b99: PUSH1 0x40
00001b9b: MSTORE
00001b9c: POP
00001b9d: DUP2
00001b9e: ADD
00001b9f: SWAP1
00001ba0: PUSH2 0x1ba9
00001ba3: SWAP2
00001ba4: SWAP1
00001ba5: PUSH2 0x4672
00001ba8: JUMP
00001ba9: JUMPDEST
00001baa: SWAP1
00001bab: POP
00001bac: JUMPDEST
00001bad: SWAP2
00001bae: SWAP1
00001baf: POP
00001bb0: JUMP
00001bb1: JUMPDEST
00001bb2: CALLER
00001bb3: PUSH2 0x1bba
00001bb6: PUSH2 0x1a9b
00001bb9: JUMP
00001bba: JUMPDEST
00001bbb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001bd0: AND
00001bd1: EQ
00001bd2: DUP1
00001bd3: PUSH2 0x1beb
00001bd6: JUMPI
00001bd7: POP
00001bd8: CALLER
00001bd9: PUSH1 0x00
00001bdb: SWAP1
00001bdc: DUP2
00001bdd: MSTORE
00001bde: PUSH1 0x01
00001be0: PUSH1 0x20
00001be2: MSTORE
00001be3: PUSH1 0x40
00001be5: SWAP1
00001be6: KECCAK256
00001be7: SLOAD
00001be8: PUSH1 0xff
00001bea: AND
00001beb: JUMPDEST
00001bec: PUSH2 0x1c21
00001bef: JUMPI
00001bf0: PUSH1 0x40
00001bf2: MLOAD
00001bf3: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001c14: DUP2
00001c15: MSTORE
00001c16: PUSH1 0x04
00001c18: ADD
00001c19: PUSH2 0x098e
00001c1c: SWAP1
00001c1d: PUSH2 0x4a78
00001c20: JUMP
00001c21: JUMPDEST
00001c22: PUSH1 0x40
00001c24: MLOAD
00001c25: PUSH32 0xb6b55f2500000000000000000000000000000000000000000000000000000000
00001c46: DUP2
00001c47: MSTORE
00001c48: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c5d: DUP4
00001c5e: AND
00001c5f: SWAP1
00001c60: PUSH4 0xb6b55f25
00001c65: SWAP1
00001c66: PUSH2 0x1c73
00001c69: SWAP1
00001c6a: DUP5
00001c6b: SWAP1
00001c6c: PUSH1 0x04
00001c6e: ADD
00001c6f: PUSH2 0x4bc6
00001c72: JUMP
00001c73: JUMPDEST
00001c74: PUSH1 0x00
00001c76: PUSH1 0x40
00001c78: MLOAD
00001c79: DUP1
00001c7a: DUP4
00001c7b: SUB
00001c7c: DUP2
00001c7d: PUSH1 0x00
00001c7f: DUP8
00001c80: DUP1
00001c81: EXTCODESIZE
00001c82: ISZERO
00001c83: DUP1
00001c84: ISZERO
00001c85: PUSH2 0x11b5
00001c88: JUMPI
00001c89: PUSH1 0x00
00001c8b: DUP1
00001c8c: REVERT
00001c8d: JUMPDEST
00001c8e: PUSH1 0x06
00001c90: PUSH1 0x20
00001c92: MSTORE
00001c93: PUSH1 0x00
00001c95: SWAP1
00001c96: DUP2
00001c97: MSTORE
00001c98: PUSH1 0x40
00001c9a: SWAP1
00001c9b: KECCAK256
00001c9c: SLOAD
00001c9d: PUSH1 0xff
00001c9f: AND
00001ca0: DUP2
00001ca1: JUMP
00001ca2: JUMPDEST
00001ca3: PUSH1 0x03
00001ca5: PUSH1 0x20
00001ca7: MSTORE
00001ca8: PUSH1 0x00
00001caa: SWAP1
00001cab: DUP2
00001cac: MSTORE
00001cad: PUSH1 0x40
00001caf: SWAP1
00001cb0: KECCAK256
00001cb1: SLOAD
00001cb2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cc7: AND
00001cc8: DUP2
00001cc9: JUMP
00001cca: JUMPDEST
00001ccb: PUSH2 0x1cd2
00001cce: PUSH2 0x2d72
00001cd1: JUMP
00001cd2: JUMPDEST
00001cd3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ce8: AND
00001ce9: PUSH2 0x1cf0
00001cec: PUSH2 0x1a9b
00001cef: JUMP
00001cf0: JUMPDEST
00001cf1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d06: AND
00001d07: EQ
00001d08: PUSH2 0x1d3d
00001d0b: JUMPI
00001d0c: PUSH1 0x40
00001d0e: MLOAD
00001d0f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001d30: DUP2
00001d31: MSTORE
00001d32: PUSH1 0x04
00001d34: ADD
00001d35: PUSH2 0x098e
00001d38: SWAP1
00001d39: PUSH2 0x4a43
00001d3c: JUMP
00001d3d: JUMPDEST
00001d3e: DUP3
00001d3f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d54: AND
00001d55: DUP3
00001d56: DUP3
00001d57: PUSH1 0x40
00001d59: MLOAD
00001d5a: PUSH2 0x1d63
00001d5d: SWAP2
00001d5e: SWAP1
00001d5f: PUSH2 0x46f1
00001d62: JUMP
00001d63: JUMPDEST
00001d64: PUSH1 0x00
00001d66: PUSH1 0x40
00001d68: MLOAD
00001d69: DUP1
00001d6a: DUP4
00001d6b: SUB
00001d6c: DUP2
00001d6d: DUP6
00001d6e: DUP8
00001d6f: GAS
00001d70: CALL
00001d71: SWAP3
00001d72: POP
00001d73: POP
00001d74: POP
00001d75: RETURNDATASIZE
00001d76: DUP1
00001d77: PUSH1 0x00
00001d79: DUP2
00001d7a: EQ
00001d7b: PUSH2 0x11c9
00001d7e: JUMPI
00001d7f: PUSH1 0x40
00001d81: MLOAD
00001d82: SWAP2
00001d83: POP
00001d84: PUSH1 0x1f
00001d86: NOT
00001d87: PUSH1 0x3f
00001d89: RETURNDATASIZE
00001d8a: ADD
00001d8b: AND
00001d8c: DUP3
00001d8d: ADD
00001d8e: PUSH1 0x40
00001d90: MSTORE
00001d91: RETURNDATASIZE
00001d92: DUP3
00001d93: MSTORE
00001d94: RETURNDATASIZE
00001d95: PUSH1 0x00
00001d97: PUSH1 0x20
00001d99: DUP5
00001d9a: ADD
00001d9b: RETURNDATACOPY
00001d9c: PUSH2 0x11c9
00001d9f: JUMP
00001da0: JUMPDEST
00001da1: PUSH2 0x1da8
00001da4: PUSH2 0x2d72
00001da7: JUMP
00001da8: JUMPDEST
00001da9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001dbe: AND
00001dbf: PUSH2 0x1dc6
00001dc2: PUSH2 0x1a9b
00001dc5: JUMP
00001dc6: JUMPDEST
00001dc7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ddc: AND
00001ddd: EQ
00001dde: PUSH2 0x1e13
00001de1: JUMPI
00001de2: PUSH1 0x40
00001de4: MLOAD
00001de5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001e06: DUP2
00001e07: MSTORE
00001e08: PUSH1 0x04
00001e0a: ADD
00001e0b: PUSH2 0x098e
00001e0e: SWAP1
00001e0f: PUSH2 0x4a43
00001e12: JUMP
00001e13: JUMPDEST
00001e14: PUSH1 0x00
00001e16: PUSH2 0x1e1e
00001e19: DUP4
00001e1a: PUSH2 0x3454
00001e1d: JUMP
00001e1e: JUMPDEST
00001e1f: SWAP1
00001e20: POP
00001e21: PUSH2 0x1a96
00001e24: DUP4
00001e25: DUP3
00001e26: DUP5
00001e27: PUSH2 0x3520
00001e2a: JUMP
00001e2b: JUMPDEST
00001e2c: CALLER
00001e2d: PUSH2 0x1e34
00001e30: PUSH2 0x1a9b
00001e33: JUMP
00001e34: JUMPDEST
00001e35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e4a: AND
00001e4b: EQ
00001e4c: DUP1
00001e4d: PUSH2 0x1e65
00001e50: JUMPI
00001e51: POP
00001e52: CALLER
00001e53: PUSH1 0x00
00001e55: SWAP1
00001e56: DUP2
00001e57: MSTORE
00001e58: PUSH1 0x01
00001e5a: PUSH1 0x20
00001e5c: MSTORE
00001e5d: PUSH1 0x40
00001e5f: SWAP1
00001e60: KECCAK256
00001e61: SLOAD
00001e62: PUSH1 0xff
00001e64: AND
00001e65: JUMPDEST
00001e66: PUSH2 0x1e9b
00001e69: JUMPI
00001e6a: PUSH1 0x40
00001e6c: MLOAD
00001e6d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001e8e: DUP2
00001e8f: MSTORE
00001e90: PUSH1 0x04
00001e92: ADD
00001e93: PUSH2 0x098e
00001e96: SWAP1
00001e97: PUSH2 0x4a78
00001e9a: JUMP
00001e9b: JUMPDEST
00001e9c: PUSH1 0x40
00001e9e: MLOAD
00001e9f: PUSH32 0x2e1a7d4d00000000000000000000000000000000000000000000000000000000
00001ec0: DUP2
00001ec1: MSTORE
00001ec2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ed7: DUP4
00001ed8: AND
00001ed9: SWAP1
00001eda: PUSH4 0x2e1a7d4d
00001edf: SWAP1
00001ee0: PUSH2 0x1c73
00001ee3: SWAP1
00001ee4: DUP5
00001ee5: SWAP1
00001ee6: PUSH1 0x04
00001ee8: ADD
00001ee9: PUSH2 0x4bc6
00001eec: JUMP
00001eed: JUMPDEST
00001eee: CALLER
00001eef: PUSH2 0x1ef6
00001ef2: PUSH2 0x1a9b
00001ef5: JUMP
00001ef6: JUMPDEST
00001ef7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f0c: AND
00001f0d: EQ
00001f0e: DUP1
00001f0f: PUSH2 0x1f27
00001f12: JUMPI
00001f13: POP
00001f14: CALLER
00001f15: PUSH1 0x00
00001f17: SWAP1
00001f18: DUP2
00001f19: MSTORE
00001f1a: PUSH1 0x01
00001f1c: PUSH1 0x20
00001f1e: MSTORE
00001f1f: PUSH1 0x40
00001f21: SWAP1
00001f22: KECCAK256
00001f23: SLOAD
00001f24: PUSH1 0xff
00001f26: AND
00001f27: JUMPDEST
00001f28: PUSH2 0x1f5d
00001f2b: JUMPI
00001f2c: PUSH1 0x40
00001f2e: MLOAD
00001f2f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001f50: DUP2
00001f51: MSTORE
00001f52: PUSH1 0x04
00001f54: ADD
00001f55: PUSH2 0x098e
00001f58: SWAP1
00001f59: PUSH2 0x4a78
00001f5c: JUMP
00001f5d: JUMPDEST
00001f5e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f73: DUP6
00001f74: DUP2
00001f75: AND
00001f76: PUSH1 0x00
00001f78: SWAP1
00001f79: DUP2
00001f7a: MSTORE
00001f7b: PUSH1 0x03
00001f7d: PUSH1 0x20
00001f7f: SWAP1
00001f80: DUP2
00001f81: MSTORE
00001f82: PUSH1 0x40
00001f84: DUP1
00001f85: DUP4
00001f86: KECCAK256
00001f87: DUP1
00001f88: SLOAD
00001f89: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00001faa: AND
00001fab: SWAP5
00001fac: DUP10
00001fad: AND
00001fae: SWAP5
00001faf: SWAP1
00001fb0: SWAP5
00001fb1: OR
00001fb2: SWAP1
00001fb3: SWAP4
00001fb4: SSTORE
00001fb5: PUSH1 0x04
00001fb7: DUP2
00001fb8: MSTORE
00001fb9: SWAP2
00001fba: SWAP1
00001fbb: KECCAK256
00001fbc: DUP5
00001fbd: MLOAD
00001fbe: PUSH2 0x1fc9
00001fc1: SWAP3
00001fc2: DUP7
00001fc3: ADD
00001fc4: SWAP1
00001fc5: PUSH2 0x3e92
00001fc8: JUMP
00001fc9: JUMPDEST
00001fca: POP
00001fcb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fe0: SWAP1
00001fe1: SWAP5
00001fe2: AND
00001fe3: PUSH1 0x00
00001fe5: SWAP1
00001fe6: DUP2
00001fe7: MSTORE
00001fe8: PUSH1 0x05
00001fea: PUSH1 0x20
00001fec: SWAP1
00001fed: DUP2
00001fee: MSTORE
00001fef: PUSH1 0x40
00001ff1: DUP1
00001ff2: DUP4
00001ff3: KECCAK256
00001ff4: DUP1
00001ff5: SLOAD
00001ff6: SWAP5
00001ff7: ISZERO
00001ff8: ISZERO
00001ff9: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
0000201a: SWAP6
0000201b: DUP7
0000201c: AND
0000201d: OR
0000201e: SWAP1
0000201f: SSTORE
00002020: PUSH1 0x06
00002022: SWAP1
00002023: SWAP2
00002024: MSTORE
00002025: SWAP1
00002026: KECCAK256
00002027: DUP1
00002028: SLOAD
00002029: SWAP5
0000202a: ISZERO
0000202b: ISZERO
0000202c: SWAP5
0000202d: SWAP1
0000202e: SWAP2
0000202f: AND
00002030: SWAP4
00002031: SWAP1
00002032: SWAP4
00002033: OR
00002034: SWAP1
00002035: SWAP3
00002036: SSTORE
00002037: POP
00002038: POP
00002039: JUMP
0000203a: JUMPDEST
0000203b: PUSH1 0x04
0000203d: PUSH1 0x20
0000203f: MSTORE
00002040: DUP2
00002041: PUSH1 0x00
00002043: MSTORE
00002044: PUSH1 0x40
00002046: PUSH1 0x00
00002048: KECCAK256
00002049: DUP2
0000204a: DUP2
0000204b: SLOAD
0000204c: DUP2
0000204d: LT
0000204e: PUSH2 0x2053
00002051: JUMPI
00002052: INVALID
00002053: JUMPDEST
00002054: PUSH1 0x00
00002056: SWAP2
00002057: DUP3
00002058: MSTORE
00002059: PUSH1 0x20
0000205b: SWAP1
0000205c: SWAP2
0000205d: KECCAK256
0000205e: ADD
0000205f: SLOAD
00002060: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002075: AND
00002076: SWAP2
00002077: POP
00002078: DUP3
00002079: SWAP1
0000207a: POP
0000207b: JUMP
0000207c: JUMPDEST
0000207d: PUSH2 0x2084
00002080: PUSH2 0x2d72
00002083: JUMP
00002084: JUMPDEST
00002085: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000209a: AND
0000209b: PUSH2 0x20a2
0000209e: PUSH2 0x1a9b
000020a1: JUMP
000020a2: JUMPDEST
000020a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020b8: AND
000020b9: EQ
000020ba: PUSH2 0x20ef
000020bd: JUMPI
000020be: PUSH1 0x40
000020c0: MLOAD
000020c1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000020e2: DUP2
000020e3: MSTORE
000020e4: PUSH1 0x04
000020e6: ADD
000020e7: PUSH2 0x098e
000020ea: SWAP1
000020eb: PUSH2 0x4a43
000020ee: JUMP
000020ef: JUMPDEST
000020f0: PUSH2 0x1a96
000020f3: DUP4
000020f4: DUP4
000020f5: DUP4
000020f6: PUSH2 0x3520
000020f9: JUMP
000020fa: JUMPDEST
000020fb: PUSH1 0x00
000020fd: CALLER
000020fe: PUSH2 0x2105
00002101: PUSH2 0x1a9b
00002104: JUMP
00002105: JUMPDEST
00002106: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000211b: AND
0000211c: EQ
0000211d: DUP1
0000211e: PUSH2 0x2136
00002121: JUMPI
00002122: POP
00002123: CALLER
00002124: PUSH1 0x00
00002126: SWAP1
00002127: DUP2
00002128: MSTORE
00002129: PUSH1 0x01
0000212b: PUSH1 0x20
0000212d: MSTORE
0000212e: PUSH1 0x40
00002130: SWAP1
00002131: KECCAK256
00002132: SLOAD
00002133: PUSH1 0xff
00002135: AND
00002136: JUMPDEST
00002137: PUSH2 0x216c
0000213a: JUMPI
0000213b: PUSH1 0x40
0000213d: MLOAD
0000213e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000215f: DUP2
00002160: MSTORE
00002161: PUSH1 0x04
00002163: ADD
00002164: PUSH2 0x098e
00002167: SWAP1
00002168: PUSH2 0x4a78
0000216b: JUMP
0000216c: JUMPDEST
0000216d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002182: DUP5
00002183: DUP2
00002184: AND
00002185: PUSH1 0x00
00002187: SWAP1
00002188: DUP2
00002189: MSTORE
0000218a: PUSH1 0x07
0000218c: PUSH1 0x20
0000218e: MSTORE
0000218f: PUSH1 0x40
00002191: DUP2
00002192: KECCAK256
00002193: SLOAD
00002194: SWAP1
00002195: SWAP2
00002196: AND
00002197: ISZERO
00002198: PUSH2 0x21c8
0000219b: JUMPI
0000219c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000021b1: DUP1
000021b2: DUP7
000021b3: AND
000021b4: PUSH1 0x00
000021b6: SWAP1
000021b7: DUP2
000021b8: MSTORE
000021b9: PUSH1 0x07
000021bb: PUSH1 0x20
000021bd: MSTORE
000021be: PUSH1 0x40
000021c0: SWAP1
000021c1: KECCAK256
000021c2: SLOAD
000021c3: AND
000021c4: PUSH2 0x21ca
000021c7: JUMP
000021c8: JUMPDEST
000021c9: DUP5
000021ca: JUMPDEST
000021cb: SWAP1
000021cc: POP
000021cd: PUSH1 0x00
000021cf: PUSH2 0x21d8
000021d2: DUP7
000021d3: DUP7
000021d4: PUSH2 0x08bd
000021d7: JUMP
000021d8: JUMPDEST
000021d9: SWAP1
000021da: POP
000021db: PUSH1 0x00
000021dd: PUSH2 0x21e5
000021e0: DUP7
000021e1: PUSH2 0x1acc
000021e4: JUMP
000021e5: JUMPDEST
000021e6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000021fb: DUP9
000021fc: AND
000021fd: PUSH1 0x00
000021ff: SWAP1
00002200: DUP2
00002201: MSTORE
00002202: PUSH1 0x06
00002204: PUSH1 0x20
00002206: SWAP1
00002207: DUP2
00002208: MSTORE
00002209: PUSH1 0x40
0000220b: DUP1
0000220c: DUP4
0000220d: KECCAK256
0000220e: SLOAD
0000220f: PUSH1 0x05
00002211: SWAP1
00002212: SWAP3
00002213: MSTORE
00002214: SWAP1
00002215: SWAP2
00002216: KECCAK256
00002217: SLOAD
00002218: SWAP2
00002219: SWAP3
0000221a: POP
0000221b: PUSH1 0xff
0000221d: SWAP1
0000221e: DUP2
0000221f: AND
00002220: SWAP2
00002221: AND
00002222: ISZERO
00002223: PUSH2 0x234c
00002226: JUMPI
00002227: DUP1
00002228: ISZERO
00002229: PUSH2 0x22bd
0000222c: JUMPI
0000222d: PUSH1 0x40
0000222f: MLOAD
00002230: PUSH32 0x8f15b6b500000000000000000000000000000000000000000000000000000000
00002251: DUP2
00002252: MSTORE
00002253: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002268: DUP6
00002269: AND
0000226a: SWAP1
0000226b: PUSH4 0x8f15b6b5
00002270: SWAP1
00002271: PUSH2 0x2286
00002274: SWAP1
00002275: DUP10
00002276: SWAP1
00002277: DUP8
00002278: SWAP1
00002279: PUSH1 0x00
0000227b: SWAP1
0000227c: PUSH1 0x01
0000227e: SWAP1
0000227f: PUSH1 0x04
00002281: ADD
00002282: PUSH2 0x4cb6
00002285: JUMP
00002286: JUMPDEST
00002287: PUSH1 0x00
00002289: PUSH1 0x40
0000228b: MLOAD
0000228c: DUP1
0000228d: DUP4
0000228e: SUB
0000228f: DUP2
00002290: PUSH1 0x00
00002292: DUP8
00002293: DUP1
00002294: EXTCODESIZE
00002295: ISZERO
00002296: DUP1
00002297: ISZERO
00002298: PUSH2 0x22a0
0000229b: JUMPI
0000229c: PUSH1 0x00
0000229e: DUP1
0000229f: REVERT
000022a0: JUMPDEST
000022a1: POP
000022a2: GAS
000022a3: CALL
000022a4: ISZERO
000022a5: DUP1
000022a6: ISZERO
000022a7: PUSH2 0x22b4
000022aa: JUMPI
000022ab: RETURNDATASIZE
000022ac: PUSH1 0x00
000022ae: DUP1
000022af: RETURNDATACOPY
000022b0: RETURNDATASIZE
000022b1: PUSH1 0x00
000022b3: REVERT
000022b4: JUMPDEST
000022b5: POP
000022b6: POP
000022b7: POP
000022b8: POP
000022b9: PUSH2 0x2347
000022bc: JUMP
000022bd: JUMPDEST
000022be: PUSH1 0x40
000022c0: MLOAD
000022c1: PUSH32 0xf1dc3cc900000000000000000000000000000000000000000000000000000000
000022e2: DUP2
000022e3: MSTORE
000022e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022f9: DUP6
000022fa: AND
000022fb: SWAP1
000022fc: PUSH4 0xf1dc3cc9
00002301: SWAP1
00002302: PUSH2 0x2314
00002305: SWAP1
00002306: DUP10
00002307: SWAP1
00002308: DUP8
00002309: SWAP1
0000230a: PUSH1 0x00
0000230c: SWAP1
0000230d: PUSH1 0x04
0000230f: ADD
00002310: PUSH2 0x4ca0
00002313: JUMP
00002314: JUMPDEST
00002315: PUSH1 0x00
00002317: PUSH1 0x40
00002319: MLOAD
0000231a: DUP1
0000231b: DUP4
0000231c: SUB
0000231d: DUP2
0000231e: PUSH1 0x00
00002320: DUP8
00002321: DUP1
00002322: EXTCODESIZE
00002323: ISZERO
00002324: DUP1
00002325: ISZERO
00002326: PUSH2 0x232e
00002329: JUMPI
0000232a: PUSH1 0x00
0000232c: DUP1
0000232d: REVERT
0000232e: JUMPDEST
0000232f: POP
00002330: GAS
00002331: CALL
00002332: ISZERO
00002333: DUP1
00002334: ISZERO
00002335: PUSH2 0x2342
00002338: JUMPI
00002339: RETURNDATASIZE
0000233a: PUSH1 0x00
0000233c: DUP1
0000233d: RETURNDATACOPY
0000233e: RETURNDATASIZE
0000233f: PUSH1 0x00
00002341: REVERT
00002342: JUMPDEST
00002343: POP
00002344: POP
00002345: POP
00002346: POP
00002347: JUMPDEST
00002348: PUSH2 0x2436
0000234b: JUMP
0000234c: JUMPDEST
0000234d: DUP1
0000234e: ISZERO
0000234f: PUSH2 0x23ac
00002352: JUMPI
00002353: PUSH1 0x40
00002355: MLOAD
00002356: PUSH32 0x517a55a300000000000000000000000000000000000000000000000000000000
00002377: DUP2
00002378: MSTORE
00002379: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000238e: DUP6
0000238f: AND
00002390: SWAP1
00002391: PUSH4 0x517a55a3
00002396: SWAP1
00002397: PUSH2 0x2314
0000239a: SWAP1
0000239b: DUP10
0000239c: SWAP1
0000239d: DUP8
0000239e: SWAP1
0000239f: PUSH1 0x00
000023a1: SWAP1
000023a2: PUSH1 0x01
000023a4: SWAP1
000023a5: PUSH1 0x04
000023a7: ADD
000023a8: PUSH2 0x4c68
000023ab: JUMP
000023ac: JUMPDEST
000023ad: PUSH1 0x40
000023af: MLOAD
000023b0: PUSH32 0x1a4d01d200000000000000000000000000000000000000000000000000000000
000023d1: DUP2
000023d2: MSTORE
000023d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000023e8: DUP6
000023e9: AND
000023ea: SWAP1
000023eb: PUSH4 0x1a4d01d2
000023f0: SWAP1
000023f1: PUSH2 0x2403
000023f4: SWAP1
000023f5: DUP10
000023f6: SWAP1
000023f7: DUP8
000023f8: SWAP1
000023f9: PUSH1 0x00
000023fb: SWAP1
000023fc: PUSH1 0x04
000023fe: ADD
000023ff: PUSH2 0x4c4f
00002402: JUMP
00002403: JUMPDEST
00002404: PUSH1 0x00
00002406: PUSH1 0x40
00002408: MLOAD
00002409: DUP1
0000240a: DUP4
0000240b: SUB
0000240c: DUP2
0000240d: PUSH1 0x00
0000240f: DUP8
00002410: DUP1
00002411: EXTCODESIZE
00002412: ISZERO
00002413: DUP1
00002414: ISZERO
00002415: PUSH2 0x241d
00002418: JUMPI
00002419: PUSH1 0x00
0000241b: DUP1
0000241c: REVERT
0000241d: JUMPDEST
0000241e: POP
0000241f: GAS
00002420: CALL
00002421: ISZERO
00002422: DUP1
00002423: ISZERO
00002424: PUSH2 0x2431
00002427: JUMPI
00002428: RETURNDATASIZE
00002429: PUSH1 0x00
0000242b: DUP1
0000242c: RETURNDATACOPY
0000242d: RETURNDATASIZE
0000242e: PUSH1 0x00
00002430: REVERT
00002431: JUMPDEST
00002432: POP
00002433: POP
00002434: POP
00002435: POP
00002436: JUMPDEST
00002437: PUSH1 0x00
00002439: PUSH2 0x2445
0000243c: DUP4
0000243d: PUSH2 0x106e
00002440: DUP11
00002441: PUSH2 0x1acc
00002444: JUMP
00002445: JUMPDEST
00002446: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000245b: DUP11
0000245c: AND
0000245d: PUSH1 0x00
0000245f: SWAP1
00002460: DUP2
00002461: MSTORE
00002462: PUSH1 0x04
00002464: PUSH1 0x20
00002466: MSTORE
00002467: PUSH1 0x40
00002469: SWAP1
0000246a: KECCAK256
0000246b: SLOAD
0000246c: SWAP1
0000246d: SWAP2
0000246e: POP
0000246f: PUSH1 0x60
00002471: DUP2
00002472: PUSH8 0xffffffffffffffff
0000247b: DUP2
0000247c: GT
0000247d: DUP1
0000247e: ISZERO
0000247f: PUSH2 0x2487
00002482: JUMPI
00002483: PUSH1 0x00
00002485: DUP1
00002486: REVERT
00002487: JUMPDEST
00002488: POP
00002489: PUSH1 0x40
0000248b: MLOAD
0000248c: SWAP1
0000248d: DUP1
0000248e: DUP3
0000248f: MSTORE
00002490: DUP1
00002491: PUSH1 0x20
00002493: MUL
00002494: PUSH1 0x20
00002496: ADD
00002497: DUP3
00002498: ADD
00002499: PUSH1 0x40
0000249b: MSTORE
0000249c: DUP1
0000249d: ISZERO
0000249e: PUSH2 0x24b1
000024a1: JUMPI
000024a2: DUP2
000024a3: PUSH1 0x20
000024a5: ADD
000024a6: PUSH1 0x20
000024a8: DUP3
000024a9: MUL
000024aa: DUP1
000024ab: CALLDATASIZE
000024ac: DUP4
000024ad: CALLDATACOPY
000024ae: ADD
000024af: SWAP1
000024b0: POP
000024b1: JUMPDEST
000024b2: POP
000024b3: SWAP1
000024b4: POP
000024b5: DUP3
000024b6: DUP2
000024b7: DUP8
000024b8: DUP2
000024b9: MLOAD
000024ba: DUP2
000024bb: LT
000024bc: PUSH2 0x24c1
000024bf: JUMPI
000024c0: INVALID
000024c1: JUMPDEST
000024c2: PUSH1 0x20
000024c4: MUL
000024c5: PUSH1 0x20
000024c7: ADD
000024c8: ADD
000024c9: DUP2
000024ca: DUP2
000024cb: MSTORE
000024cc: POP
000024cd: POP
000024ce: DUP11
000024cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024e4: AND
000024e5: PUSH32 0xd2602de014927617147990f1eaef38f72e9787acf22aa14785cefe59164eef1c
00002506: DUP3
00002507: PUSH1 0x40
00002509: MLOAD
0000250a: PUSH2 0x2513
0000250d: SWAP2
0000250e: SWAP1
0000250f: PUSH2 0x47fc
00002512: JUMP
00002513: JUMPDEST
00002514: PUSH1 0x40
00002516: MLOAD
00002517: DUP1
00002518: SWAP2
00002519: SUB
0000251a: SWAP1
0000251b: LOG2
0000251c: POP
0000251d: SWAP1
0000251e: SWAP10
0000251f: SWAP9
00002520: POP
00002521: POP
00002522: POP
00002523: POP
00002524: POP
00002525: POP
00002526: POP
00002527: POP
00002528: POP
00002529: JUMP
0000252a: JUMPDEST
0000252b: PUSH2 0x2532
0000252e: PUSH2 0x2d72
00002531: JUMP
00002532: JUMPDEST
00002533: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002548: AND
00002549: PUSH2 0x2550
0000254c: PUSH2 0x1a9b
0000254f: JUMP
00002550: JUMPDEST
00002551: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002566: AND
00002567: EQ
00002568: PUSH2 0x259d
0000256b: JUMPI
0000256c: PUSH1 0x40
0000256e: MLOAD
0000256f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002590: DUP2
00002591: MSTORE
00002592: PUSH1 0x04
00002594: ADD
00002595: PUSH2 0x098e
00002598: SWAP1
00002599: PUSH2 0x4a43
0000259c: JUMP
0000259d: JUMPDEST
0000259e: PUSH1 0x08
000025a0: DUP1
000025a1: SLOAD
000025a2: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000025c3: AND
000025c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025d9: SWAP3
000025da: SWAP1
000025db: SWAP3
000025dc: AND
000025dd: SWAP2
000025de: SWAP1
000025df: SWAP2
000025e0: OR
000025e1: SWAP1
000025e2: SSTORE
000025e3: JUMP
000025e4: JUMPDEST
000025e5: PUSH2 0x25ec
000025e8: PUSH2 0x2d72
000025eb: JUMP
000025ec: JUMPDEST
000025ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002602: AND
00002603: PUSH2 0x260a
00002606: PUSH2 0x1a9b
00002609: JUMP
0000260a: JUMPDEST
0000260b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002620: AND
00002621: EQ
00002622: PUSH2 0x2657
00002625: JUMPI
00002626: PUSH1 0x40
00002628: MLOAD
00002629: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000264a: DUP2
0000264b: MSTORE
0000264c: PUSH1 0x04
0000264e: ADD
0000264f: PUSH2 0x098e
00002652: SWAP1
00002653: PUSH2 0x4a43
00002656: JUMP
00002657: JUMPDEST
00002658: PUSH2 0x1a96
0000265b: DUP4
0000265c: DUP4
0000265d: DUP4
0000265e: PUSH2 0x32fd
00002661: JUMP
00002662: JUMPDEST
00002663: PUSH1 0x00
00002665: CALLER
00002666: PUSH2 0x266d
00002669: PUSH2 0x1a9b
0000266c: JUMP
0000266d: JUMPDEST
0000266e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002683: AND
00002684: EQ
00002685: DUP1
00002686: PUSH2 0x269e
00002689: JUMPI
0000268a: POP
0000268b: CALLER
0000268c: PUSH1 0x00
0000268e: SWAP1
0000268f: DUP2
00002690: MSTORE
00002691: PUSH1 0x01
00002693: PUSH1 0x20
00002695: MSTORE
00002696: PUSH1 0x40
00002698: SWAP1
00002699: KECCAK256
0000269a: SLOAD
0000269b: PUSH1 0xff
0000269d: AND
0000269e: JUMPDEST
0000269f: PUSH2 0x26d4
000026a2: JUMPI
000026a3: PUSH1 0x40
000026a5: MLOAD
000026a6: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000026c7: DUP2
000026c8: MSTORE
000026c9: PUSH1 0x04
000026cb: ADD
000026cc: PUSH2 0x098e
000026cf: SWAP1
000026d0: PUSH2 0x4a78
000026d3: JUMP
000026d4: JUMPDEST
000026d5: PUSH1 0x00
000026d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026ec: DUP5
000026ed: AND
000026ee: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
00002703: EQ
00002704: PUSH2 0x270e
00002707: JUMPI
00002708: PUSH1 0x00
0000270a: PUSH2 0x2710
0000270d: JUMP
0000270e: JUMPDEST
0000270f: DUP3
00002710: JUMPDEST
00002711: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002726: DUP7
00002727: AND
00002728: PUSH1 0x00
0000272a: SWAP1
0000272b: DUP2
0000272c: MSTORE
0000272d: PUSH1 0x04
0000272f: PUSH1 0x20
00002731: MSTORE
00002732: PUSH1 0x40
00002734: SWAP1
00002735: KECCAK256
00002736: SLOAD
00002737: SWAP1
00002738: SWAP2
00002739: POP
0000273a: PUSH1 0x60
0000273c: SWAP1
0000273d: PUSH8 0xffffffffffffffff
00002746: DUP2
00002747: GT
00002748: DUP1
00002749: ISZERO
0000274a: PUSH2 0x2752
0000274d: JUMPI
0000274e: PUSH1 0x00
00002750: DUP1
00002751: REVERT
00002752: JUMPDEST
00002753: POP
00002754: PUSH1 0x40
00002756: MLOAD
00002757: SWAP1
00002758: DUP1
00002759: DUP3
0000275a: MSTORE
0000275b: DUP1
0000275c: PUSH1 0x20
0000275e: MUL
0000275f: PUSH1 0x20
00002761: ADD
00002762: DUP3
00002763: ADD
00002764: PUSH1 0x40
00002766: MSTORE
00002767: DUP1
00002768: ISZERO
00002769: PUSH2 0x277c
0000276c: JUMPI
0000276d: DUP2
0000276e: PUSH1 0x20
00002770: ADD
00002771: PUSH1 0x20
00002773: DUP3
00002774: MUL
00002775: DUP1
00002776: CALLDATASIZE
00002777: DUP4
00002778: CALLDATACOPY
00002779: ADD
0000277a: SWAP1
0000277b: POP
0000277c: JUMPDEST
0000277d: POP
0000277e: SWAP1
0000277f: POP
00002780: DUP4
00002781: DUP2
00002782: PUSH2 0x278b
00002785: DUP9
00002786: DUP9
00002787: PUSH2 0x08bd
0000278a: JUMP
0000278b: JUMPDEST
0000278c: DUP2
0000278d: MLOAD
0000278e: DUP2
0000278f: LT
00002790: PUSH2 0x2795
00002793: JUMPI
00002794: INVALID
00002795: JUMPDEST
00002796: PUSH1 0x20
00002798: MUL
00002799: PUSH1 0x20
0000279b: ADD
0000279c: ADD
0000279d: DUP2
0000279e: DUP2
0000279f: MSTORE
000027a0: POP
000027a1: POP
000027a2: PUSH2 0x27ac
000027a5: DUP7
000027a6: DUP3
000027a7: DUP5
000027a8: PUSH2 0x2d76
000027ab: JUMP
000027ac: JUMPDEST
000027ad: SWAP7
000027ae: SWAP6
000027af: POP
000027b0: POP
000027b1: POP
000027b2: POP
000027b3: POP
000027b4: POP
000027b5: JUMP
000027b6: JUMPDEST
000027b7: PUSH1 0x07
000027b9: PUSH1 0x20
000027bb: MSTORE
000027bc: PUSH1 0x00
000027be: SWAP1
000027bf: DUP2
000027c0: MSTORE
000027c1: PUSH1 0x40
000027c3: SWAP1
000027c4: KECCAK256
000027c5: SLOAD
000027c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000027db: AND
000027dc: DUP2
000027dd: JUMP
000027de: JUMPDEST
000027df: PUSH1 0x05
000027e1: PUSH1 0x20
000027e3: MSTORE
000027e4: PUSH1 0x00
000027e6: SWAP1
000027e7: DUP2
000027e8: MSTORE
000027e9: PUSH1 0x40
000027eb: SWAP1
000027ec: KECCAK256
000027ed: SLOAD
000027ee: PUSH1 0xff
000027f0: AND
000027f1: DUP2
000027f2: JUMP
000027f3: JUMPDEST
000027f4: PUSH1 0x00
000027f6: CALLER
000027f7: PUSH2 0x27fe
000027fa: PUSH2 0x1a9b
000027fd: JUMP
000027fe: JUMPDEST
000027ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002814: AND
00002815: EQ
00002816: DUP1
00002817: PUSH2 0x282f
0000281a: JUMPI
0000281b: POP
0000281c: CALLER
0000281d: PUSH1 0x00
0000281f: SWAP1
00002820: DUP2
00002821: MSTORE
00002822: PUSH1 0x01
00002824: PUSH1 0x20
00002826: MSTORE
00002827: PUSH1 0x40
00002829: SWAP1
0000282a: KECCAK256
0000282b: SLOAD
0000282c: PUSH1 0xff
0000282e: AND
0000282f: JUMPDEST
00002830: PUSH2 0x2865
00002833: JUMPI
00002834: PUSH1 0x40
00002836: MLOAD
00002837: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002858: DUP2
00002859: MSTORE
0000285a: PUSH1 0x04
0000285c: ADD
0000285d: PUSH2 0x098e
00002860: SWAP1
00002861: PUSH2 0x4a78
00002864: JUMP
00002865: JUMPDEST
00002866: PUSH1 0x00
00002868: PUSH2 0x2870
0000286b: DUP4
0000286c: PUSH2 0x331e
0000286f: JUMP
00002870: JUMPDEST
00002871: SWAP1
00002872: POP
00002873: PUSH1 0x00
00002875: PUSH2 0x2880
00002878: DUP9
00002879: DUP4
0000287a: DUP9
0000287b: DUP9
0000287c: PUSH2 0x0cea
0000287f: JUMP
00002880: JUMPDEST
00002881: SWAP1
00002882: POP
00002883: PUSH2 0x1510
00002886: DUP5
00002887: DUP9
00002888: DUP4
00002889: PUSH2 0x20fa
0000288c: JUMP
0000288d: JUMPDEST
0000288e: CALLER
0000288f: PUSH2 0x2896
00002892: PUSH2 0x1a9b
00002895: JUMP
00002896: JUMPDEST
00002897: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000028ac: AND
000028ad: EQ
000028ae: DUP1
000028af: PUSH2 0x28c7
000028b2: JUMPI
000028b3: POP
000028b4: CALLER
000028b5: PUSH1 0x00
000028b7: SWAP1
000028b8: DUP2
000028b9: MSTORE
000028ba: PUSH1 0x01
000028bc: PUSH1 0x20
000028be: MSTORE
000028bf: PUSH1 0x40
000028c1: SWAP1
000028c2: KECCAK256
000028c3: SLOAD
000028c4: PUSH1 0xff
000028c6: AND
000028c7: JUMPDEST
000028c8: PUSH2 0x28fd
000028cb: JUMPI
000028cc: PUSH1 0x40
000028ce: MLOAD
000028cf: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000028f0: DUP2
000028f1: MSTORE
000028f2: PUSH1 0x04
000028f4: ADD
000028f5: PUSH2 0x098e
000028f8: SWAP1
000028f9: PUSH2 0x4a78
000028fc: JUMP
000028fd: JUMPDEST
000028fe: PUSH1 0x40
00002900: MLOAD
00002901: PUSH32 0x2e1a7d4d00000000000000000000000000000000000000000000000000000000
00002922: DUP2
00002923: MSTORE
00002924: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00002939: SWAP1
0000293a: PUSH4 0x2e1a7d4d
0000293f: SWAP1
00002940: PUSH2 0x0c28
00002943: SWAP1
00002944: DUP5
00002945: SWAP1
00002946: PUSH1 0x04
00002948: ADD
00002949: PUSH2 0x4bc6
0000294c: JUMP
0000294d: JUMPDEST
0000294e: PUSH2 0x2955
00002951: PUSH2 0x2d72
00002954: JUMP
00002955: JUMPDEST
00002956: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000296b: AND
0000296c: PUSH2 0x2973
0000296f: PUSH2 0x1a9b
00002972: JUMP
00002973: JUMPDEST
00002974: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002989: AND
0000298a: EQ
0000298b: PUSH2 0x29c0
0000298e: JUMPI
0000298f: PUSH1 0x40
00002991: MLOAD
00002992: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000029b3: DUP2
000029b4: MSTORE
000029b5: PUSH1 0x04
000029b7: ADD
000029b8: PUSH2 0x098e
000029bb: SWAP1
000029bc: PUSH2 0x4a43
000029bf: JUMP
000029c0: JUMPDEST
000029c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029d6: SWAP2
000029d7: DUP3
000029d8: AND
000029d9: PUSH1 0x00
000029db: SWAP1
000029dc: DUP2
000029dd: MSTORE
000029de: PUSH1 0x07
000029e0: PUSH1 0x20
000029e2: MSTORE
000029e3: PUSH1 0x40
000029e5: SWAP1
000029e6: KECCAK256
000029e7: DUP1
000029e8: SLOAD
000029e9: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00002a0a: AND
00002a0b: SWAP2
00002a0c: SWAP1
00002a0d: SWAP3
00002a0e: AND
00002a0f: OR
00002a10: SWAP1
00002a11: SSTORE
00002a12: JUMP
00002a13: JUMPDEST
00002a14: PUSH2 0x2a1b
00002a17: PUSH2 0x2d72
00002a1a: JUMP
00002a1b: JUMPDEST
00002a1c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a31: AND
00002a32: PUSH2 0x2a39
00002a35: PUSH2 0x1a9b
00002a38: JUMP
00002a39: JUMPDEST
00002a3a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a4f: AND
00002a50: EQ
00002a51: PUSH2 0x2a86
00002a54: JUMPI
00002a55: PUSH1 0x40
00002a57: MLOAD
00002a58: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002a79: DUP2
00002a7a: MSTORE
00002a7b: PUSH1 0x04
00002a7d: ADD
00002a7e: PUSH2 0x098e
00002a81: SWAP1
00002a82: PUSH2 0x4a43
00002a85: JUMP
00002a86: JUMPDEST
00002a87: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a9c: DUP2
00002a9d: AND
00002a9e: PUSH2 0x2ad3
00002aa1: JUMPI
00002aa2: PUSH1 0x40
00002aa4: MLOAD
00002aa5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002ac6: DUP2
00002ac7: MSTORE
00002ac8: PUSH1 0x04
00002aca: ADD
00002acb: PUSH2 0x098e
00002ace: SWAP1
00002acf: PUSH2 0x4941
00002ad2: JUMP
00002ad3: JUMPDEST
00002ad4: PUSH1 0x00
00002ad6: DUP1
00002ad7: SLOAD
00002ad8: PUSH1 0x40
00002ada: MLOAD
00002adb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002af0: DUP1
00002af1: DUP6
00002af2: AND
00002af3: SWAP4
00002af4: SWAP3
00002af5: AND
00002af6: SWAP2
00002af7: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00002b18: SWAP2
00002b19: LOG3
00002b1a: PUSH1 0x00
00002b1c: DUP1
00002b1d: SLOAD
00002b1e: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00002b3f: AND
00002b40: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b55: SWAP3
00002b56: SWAP1
00002b57: SWAP3
00002b58: AND
00002b59: SWAP2
00002b5a: SWAP1
00002b5b: SWAP2
00002b5c: OR
00002b5d: SWAP1
00002b5e: SSTORE
00002b5f: JUMP
00002b60: JUMPDEST
00002b61: PUSH2 0x2b68
00002b64: PUSH2 0x2d72
00002b67: JUMP
00002b68: JUMPDEST
00002b69: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b7e: AND
00002b7f: PUSH2 0x2b86
00002b82: PUSH2 0x1a9b
00002b85: JUMP
00002b86: JUMPDEST
00002b87: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b9c: AND
00002b9d: EQ
00002b9e: PUSH2 0x2bd3
00002ba1: JUMPI
00002ba2: PUSH1 0x40
00002ba4: MLOAD
00002ba5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002bc6: DUP2
00002bc7: MSTORE
00002bc8: PUSH1 0x04
00002bca: ADD
00002bcb: PUSH2 0x098e
00002bce: SWAP1
00002bcf: PUSH2 0x4a43
00002bd2: JUMP
00002bd3: JUMPDEST
00002bd4: PUSH2 0x1472
00002bd7: DUP3
00002bd8: DUP3
00002bd9: CALLER
00002bda: PUSH2 0x3520
00002bdd: JUMP
00002bde: JUMPDEST
00002bdf: PUSH1 0x00
00002be1: CALLER
00002be2: PUSH2 0x2be9
00002be5: PUSH2 0x1a9b
00002be8: JUMP
00002be9: JUMPDEST
00002bea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002bff: AND
00002c00: EQ
00002c01: DUP1
00002c02: PUSH2 0x2c1a
00002c05: JUMPI
00002c06: POP
00002c07: CALLER
00002c08: PUSH1 0x00
00002c0a: SWAP1
00002c0b: DUP2
00002c0c: MSTORE
00002c0d: PUSH1 0x01
00002c0f: PUSH1 0x20
00002c11: MSTORE
00002c12: PUSH1 0x40
00002c14: SWAP1
00002c15: KECCAK256
00002c16: SLOAD
00002c17: PUSH1 0xff
00002c19: AND
00002c1a: JUMPDEST
00002c1b: PUSH2 0x2c50
00002c1e: JUMPI
00002c1f: PUSH1 0x40
00002c21: MLOAD
00002c22: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002c43: DUP2
00002c44: MSTORE
00002c45: PUSH1 0x04
00002c47: ADD
00002c48: PUSH2 0x098e
00002c4b: SWAP1
00002c4c: PUSH2 0x4a78
00002c4f: JUMP
00002c50: JUMPDEST
00002c51: PUSH1 0x00
00002c53: PUSH2 0x2c5b
00002c56: DUP4
00002c57: PUSH2 0x331e
00002c5a: JUMP
00002c5b: JUMPDEST
00002c5c: SWAP1
00002c5d: POP
00002c5e: PUSH1 0x00
00002c60: PUSH2 0x2880
00002c63: DUP9
00002c64: DUP4
00002c65: DUP9
00002c66: DUP9
00002c67: PUSH2 0x2cf6
00002c6a: JUMP
00002c6b: JUMPDEST
00002c6c: PUSH2 0x2c73
00002c6f: PUSH2 0x2d72
00002c72: JUMP
00002c73: JUMPDEST
00002c74: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c89: AND
00002c8a: PUSH2 0x2c91
00002c8d: PUSH2 0x1a9b
00002c90: JUMP
00002c91: JUMPDEST
00002c92: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002ca7: AND
00002ca8: EQ
00002ca9: PUSH2 0x2cde
00002cac: JUMPI
00002cad: PUSH1 0x40
00002caf: MLOAD
00002cb0: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002cd1: DUP2
00002cd2: MSTORE
00002cd3: PUSH1 0x04
00002cd5: ADD
00002cd6: PUSH2 0x098e
00002cd9: SWAP1
00002cda: PUSH2 0x4a43
00002cdd: JUMP
00002cde: JUMPDEST
00002cdf: PUSH1 0x00
00002ce1: PUSH2 0x2ce9
00002ce4: DUP3
00002ce5: PUSH2 0x3454
00002ce8: JUMP
00002ce9: JUMPDEST
00002cea: SWAP1
00002ceb: POP
00002cec: PUSH2 0x1472
00002cef: DUP3
00002cf0: DUP3
00002cf1: CALLER
00002cf2: PUSH2 0x3520
00002cf5: JUMP
00002cf6: JUMPDEST
00002cf7: PUSH1 0x00
00002cf9: CALLER
00002cfa: PUSH2 0x2d01
00002cfd: PUSH2 0x1a9b
00002d00: JUMP
00002d01: JUMPDEST
00002d02: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002d17: AND
00002d18: EQ
00002d19: DUP1
00002d1a: PUSH2 0x2d32
00002d1d: JUMPI
00002d1e: POP
00002d1f: CALLER
00002d20: PUSH1 0x00
00002d22: SWAP1
00002d23: DUP2
00002d24: MSTORE
00002d25: PUSH1 0x01
00002d27: PUSH1 0x20
00002d29: MSTORE
00002d2a: PUSH1 0x40
00002d2c: SWAP1
00002d2d: KECCAK256
00002d2e: SLOAD
00002d2f: PUSH1 0xff
00002d31: AND
00002d32: JUMPDEST
00002d33: PUSH2 0x2d68
00002d36: JUMPI
00002d37: PUSH1 0x40
00002d39: MLOAD
00002d3a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002d5b: DUP2
00002d5c: MSTORE
00002d5d: PUSH1 0x04
00002d5f: ADD
00002d60: PUSH2 0x098e
00002d63: SWAP1
00002d64: PUSH2 0x4a78
00002d67: JUMP
00002d68: JUMPDEST
00002d69: PUSH2 0x0d66
00002d6c: DUP3
00002d6d: DUP5
00002d6e: PUSH2 0x15b6
00002d71: JUMP
00002d72: JUMPDEST
00002d73: CALLER
00002d74: SWAP1
00002d75: JUMP
00002d76: JUMPDEST
00002d77: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002d8c: DUP4
00002d8d: DUP2
00002d8e: AND
00002d8f: PUSH1 0x00
00002d91: SWAP1
00002d92: DUP2
00002d93: MSTORE
00002d94: PUSH1 0x07
00002d96: PUSH1 0x20
00002d98: MSTORE
00002d99: PUSH1 0x40
00002d9b: DUP2
00002d9c: KECCAK256
00002d9d: SLOAD
00002d9e: SWAP1
00002d9f: SWAP2
00002da0: AND
00002da1: PUSH2 0x2ebc
00002da4: JUMPI
00002da5: PUSH16 0x22d53366457f9d5e68ec105046fc4383
00002db6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002dcb: AND
00002dcc: PUSH4 0xa262904b
00002dd1: PUSH1 0x40
00002dd3: MLOAD
00002dd4: DUP2
00002dd5: PUSH4 0xffffffff
00002dda: AND
00002ddb: PUSH1 0xe0
00002ddd: SHL
00002dde: DUP2
00002ddf: MSTORE
00002de0: PUSH1 0x04
00002de2: ADD
00002de3: PUSH1 0x20
00002de5: PUSH1 0x40
00002de7: MLOAD
00002de8: DUP1
00002de9: DUP4
00002dea: SUB
00002deb: DUP2
00002dec: DUP7
00002ded: DUP1
00002dee: EXTCODESIZE
00002def: ISZERO
00002df0: DUP1
00002df1: ISZERO
00002df2: PUSH2 0x2dfa
00002df5: JUMPI
00002df6: PUSH1 0x00
00002df8: DUP1
00002df9: REVERT
00002dfa: JUMPDEST
00002dfb: POP
00002dfc: GAS
00002dfd: STATICCALL
00002dfe: ISZERO
00002dff: DUP1
00002e00: ISZERO
00002e01: PUSH2 0x2e0e
00002e04: JUMPI
00002e05: RETURNDATASIZE
00002e06: PUSH1 0x00
00002e08: DUP1
00002e09: RETURNDATACOPY
00002e0a: RETURNDATASIZE
00002e0b: PUSH1 0x00
00002e0d: REVERT
00002e0e: JUMPDEST
00002e0f: POP
00002e10: POP
00002e11: POP
00002e12: POP
00002e13: PUSH1 0x40
00002e15: MLOAD
00002e16: RETURNDATASIZE
00002e17: PUSH1 0x1f
00002e19: NOT
00002e1a: PUSH1 0x1f
00002e1c: DUP3
00002e1d: ADD
00002e1e: AND
00002e1f: DUP3
00002e20: ADD
00002e21: DUP1
00002e22: PUSH1 0x40
00002e24: MSTORE
00002e25: POP
00002e26: DUP2
00002e27: ADD
00002e28: SWAP1
00002e29: PUSH2 0x2e32
00002e2c: SWAP2
00002e2d: SWAP1
00002e2e: PUSH2 0x4107
00002e31: JUMP
00002e32: JUMPDEST
00002e33: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002e48: AND
00002e49: PUSH4 0x55b30b19
00002e4e: DUP6
00002e4f: PUSH1 0x40
00002e51: MLOAD
00002e52: DUP3
00002e53: PUSH4 0xffffffff
00002e58: AND
00002e59: PUSH1 0xe0
00002e5b: SHL
00002e5c: DUP2
00002e5d: MSTORE
00002e5e: PUSH1 0x04
00002e60: ADD
00002e61: PUSH2 0x2e6a
00002e64: SWAP2
00002e65: SWAP1
00002e66: PUSH2 0x4710
00002e69: JUMP
00002e6a: JUMPDEST
00002e6b: PUSH1 0x20
00002e6d: PUSH1 0x40
00002e6f: MLOAD
00002e70: DUP1
00002e71: DUP4
00002e72: SUB
00002e73: DUP2
00002e74: DUP7
00002e75: DUP1
00002e76: EXTCODESIZE
00002e77: ISZERO
00002e78: DUP1
00002e79: ISZERO
00002e7a: PUSH2 0x2e82
00002e7d: JUMPI
00002e7e: PUSH1 0x00
00002e80: DUP1
00002e81: REVERT
00002e82: JUMPDEST
00002e83: POP
00002e84: GAS
00002e85: STATICCALL
00002e86: ISZERO
00002e87: DUP1
00002e88: ISZERO
00002e89: PUSH2 0x2e96
00002e8c: JUMPI
00002e8d: RETURNDATASIZE
00002e8e: PUSH1 0x00
00002e90: DUP1
00002e91: RETURNDATACOPY
00002e92: RETURNDATASIZE
00002e93: PUSH1 0x00
00002e95: REVERT
00002e96: JUMPDEST
00002e97: POP
00002e98: POP
00002e99: POP
00002e9a: POP
00002e9b: PUSH1 0x40
00002e9d: MLOAD
00002e9e: RETURNDATASIZE
00002e9f: PUSH1 0x1f
00002ea1: NOT
00002ea2: PUSH1 0x1f
00002ea4: DUP3
00002ea5: ADD
00002ea6: AND
00002ea7: DUP3
00002ea8: ADD
00002ea9: DUP1
00002eaa: PUSH1 0x40
00002eac: MSTORE
00002ead: POP
00002eae: DUP2
00002eaf: ADD
00002eb0: SWAP1
00002eb1: PUSH2 0x2eba
00002eb4: SWAP2
00002eb5: SWAP1
00002eb6: PUSH2 0x4672
00002eb9: JUMP
00002eba: JUMPDEST
00002ebb: POP
00002ebc: JUMPDEST
00002ebd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002ed2: DUP1
00002ed3: DUP6
00002ed4: AND
00002ed5: PUSH1 0x00
00002ed7: SWAP1
00002ed8: DUP2
00002ed9: MSTORE
00002eda: PUSH1 0x03
00002edc: PUSH1 0x20
00002ede: MSTORE
00002edf: PUSH1 0x40
00002ee1: DUP2
00002ee2: KECCAK256
00002ee3: SLOAD
00002ee4: SWAP1
00002ee5: SWAP2
00002ee6: PUSH2 0x2eef
00002ee9: SWAP2
00002eea: AND
00002eeb: PUSH2 0x1acc
00002eee: JUMP
00002eef: JUMPDEST
00002ef0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f05: DUP7
00002f06: AND
00002f07: PUSH1 0x00
00002f09: SWAP1
00002f0a: DUP2
00002f0b: MSTORE
00002f0c: PUSH1 0x04
00002f0e: PUSH1 0x20
00002f10: MSTORE
00002f11: PUSH1 0x40
00002f13: SWAP1
00002f14: KECCAK256
00002f15: SLOAD
00002f16: SWAP1
00002f17: SWAP2
00002f18: POP
00002f19: PUSH1 0x02
00002f1b: DUP2
00002f1c: EQ
00002f1d: ISZERO
00002f1e: PUSH2 0x2f31
00002f21: JUMPI
00002f22: PUSH2 0x2f2c
00002f25: DUP7
00002f26: DUP7
00002f27: DUP7
00002f28: PUSH2 0x3704
00002f2b: JUMP
00002f2c: JUMPDEST
00002f2d: PUSH2 0x2f45
00002f30: JUMP
00002f31: JUMPDEST
00002f32: DUP1
00002f33: PUSH1 0x03
00002f35: EQ
00002f36: ISZERO
00002f37: PUSH2 0x0f87
00002f3a: JUMPI
00002f3b: PUSH2 0x2f2c
00002f3e: DUP7
00002f3f: DUP7
00002f40: DUP7
00002f41: PUSH2 0x3912
00002f44: JUMP
00002f45: JUMPDEST
00002f46: DUP6
00002f47: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f5c: AND
00002f5d: PUSH32 0x8a07cc9636edd256126516f66fbc1eb9bfa42631953cc7ffb96dbb4dd7c7360b
00002f7e: DUP7
00002f7f: PUSH1 0x40
00002f81: MLOAD
00002f82: PUSH2 0x2f8b
00002f85: SWAP2
00002f86: SWAP1
00002f87: PUSH2 0x47fc
00002f8a: JUMP
00002f8b: JUMPDEST
00002f8c: PUSH1 0x40
00002f8e: MLOAD
00002f8f: DUP1
00002f90: SWAP2
00002f91: SUB
00002f92: SWAP1
00002f93: LOG2
00002f94: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002fa9: DUP1
00002faa: DUP8
00002fab: AND
00002fac: PUSH1 0x00
00002fae: SWAP1
00002faf: DUP2
00002fb0: MSTORE
00002fb1: PUSH1 0x03
00002fb3: PUSH1 0x20
00002fb5: MSTORE
00002fb6: PUSH1 0x40
00002fb8: SWAP1
00002fb9: KECCAK256
00002fba: SLOAD
00002fbb: PUSH2 0x27ac
00002fbe: SWAP2
00002fbf: DUP5
00002fc0: SWAP2
00002fc1: PUSH2 0x106e
00002fc4: SWAP2
00002fc5: AND
00002fc6: PUSH2 0x1acc
00002fc9: JUMP
00002fca: JUMPDEST
00002fcb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002fe0: DUP3
00002fe1: DUP2
00002fe2: AND
00002fe3: PUSH1 0x00
00002fe5: SWAP1
00002fe6: DUP2
00002fe7: MSTORE
00002fe8: PUSH1 0x07
00002fea: PUSH1 0x20
00002fec: MSTORE
00002fed: PUSH1 0x40
00002fef: DUP2
00002ff0: KECCAK256
00002ff1: SLOAD
00002ff2: SWAP1
00002ff3: SWAP2
00002ff4: AND
00002ff5: ISZERO
00002ff6: PUSH2 0x3026
00002ff9: JUMPI
00002ffa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000300f: DUP1
00003010: DUP5
00003011: AND
00003012: PUSH1 0x00
00003014: SWAP1
00003015: DUP2
00003016: MSTORE
00003017: PUSH1 0x07
00003019: PUSH1 0x20
0000301b: MSTORE
0000301c: PUSH1 0x40
0000301e: SWAP1
0000301f: KECCAK256
00003020: SLOAD
00003021: AND
00003022: PUSH2 0x3028
00003025: JUMP
00003026: JUMPDEST
00003027: DUP3
00003028: JUMPDEST
00003029: SWAP1
0000302a: POP
0000302b: PUSH2 0x3032
0000302e: PUSH2 0x3f1c
00003031: JUMP
00003032: JUMPDEST
00003033: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003048: DUP5
00003049: AND
0000304a: PUSH1 0x00
0000304c: SWAP1
0000304d: DUP2
0000304e: MSTORE
0000304f: PUSH1 0x06
00003051: PUSH1 0x20
00003053: MSTORE
00003054: PUSH1 0x40
00003056: SWAP1
00003057: KECCAK256
00003058: SLOAD
00003059: PUSH1 0xff
0000305b: AND
0000305c: ISZERO
0000305d: PUSH2 0x30ee
00003060: JUMPI
00003061: PUSH1 0x40
00003063: MLOAD
00003064: PUSH32 0x269b558100000000000000000000000000000000000000000000000000000000
00003085: DUP2
00003086: MSTORE
00003087: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000309c: DUP4
0000309d: AND
0000309e: SWAP1
0000309f: PUSH4 0x269b5581
000030a4: SWAP1
000030a5: PUSH2 0x30b7
000030a8: SWAP1
000030a9: DUP7
000030aa: SWAP1
000030ab: DUP6
000030ac: SWAP1
000030ad: PUSH1 0x01
000030af: SWAP1
000030b0: PUSH1 0x04
000030b2: ADD
000030b3: PUSH2 0x4be3
000030b6: JUMP
000030b7: JUMPDEST
000030b8: PUSH1 0x00
000030ba: PUSH1 0x40
000030bc: MLOAD
000030bd: DUP1
000030be: DUP4
000030bf: SUB
000030c0: DUP2
000030c1: PUSH1 0x00
000030c3: DUP8
000030c4: DUP1
000030c5: EXTCODESIZE
000030c6: ISZERO
000030c7: DUP1
000030c8: ISZERO
000030c9: PUSH2 0x30d1
000030cc: JUMPI
000030cd: PUSH1 0x00
000030cf: DUP1
000030d0: REVERT
000030d1: JUMPDEST
000030d2: POP
000030d3: GAS
000030d4: CALL
000030d5: ISZERO
000030d6: DUP1
000030d7: ISZERO
000030d8: PUSH2 0x30e5
000030db: JUMPI
000030dc: RETURNDATASIZE
000030dd: PUSH1 0x00
000030df: DUP1
000030e0: RETURNDATACOPY
000030e1: RETURNDATASIZE
000030e2: PUSH1 0x00
000030e4: REVERT
000030e5: JUMPDEST
000030e6: POP
000030e7: POP
000030e8: POP
000030e9: POP
000030ea: PUSH2 0x0ac8
000030ed: JUMP
000030ee: JUMPDEST
000030ef: PUSH1 0x40
000030f1: MLOAD
000030f2: PUSH32 0x5b36389c00000000000000000000000000000000000000000000000000000000
00003113: DUP2
00003114: MSTORE
00003115: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000312a: DUP4
0000312b: AND
0000312c: SWAP1
0000312d: PUSH4 0x5b36389c
00003132: SWAP1
00003133: PUSH2 0x3142
00003136: SWAP1
00003137: DUP7
00003138: SWAP1
00003139: DUP6
0000313a: SWAP1
0000313b: PUSH1 0x04
0000313d: ADD
0000313e: PUSH2 0x4bcf
00003141: JUMP
00003142: JUMPDEST
00003143: PUSH1 0x00
00003145: PUSH1 0x40
00003147: MLOAD
00003148: DUP1
00003149: DUP4
0000314a: SUB
0000314b: DUP2
0000314c: PUSH1 0x00
0000314e: DUP8
0000314f: DUP1
00003150: EXTCODESIZE
00003151: ISZERO
00003152: DUP1
00003153: ISZERO
00003154: PUSH2 0x315c
00003157: JUMPI
00003158: PUSH1 0x00
0000315a: DUP1
0000315b: REVERT
0000315c: JUMPDEST
0000315d: POP
0000315e: GAS
0000315f: CALL
00003160: ISZERO
00003161: DUP1
00003162: ISZERO
00003163: PUSH2 0x3170
00003166: JUMPI
00003167: RETURNDATASIZE
00003168: PUSH1 0x00
0000316a: DUP1
0000316b: RETURNDATACOPY
0000316c: RETURNDATASIZE
0000316d: PUSH1 0x00
0000316f: REVERT
00003170: JUMPDEST
00003171: POP
00003172: POP
00003173: POP
00003174: POP
00003175: POP
00003176: POP
00003177: POP
00003178: POP
00003179: JUMP
0000317a: JUMPDEST
0000317b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003190: DUP3
00003191: DUP2
00003192: AND
00003193: PUSH1 0x00
00003195: SWAP1
00003196: DUP2
00003197: MSTORE
00003198: PUSH1 0x07
0000319a: PUSH1 0x20
0000319c: MSTORE
0000319d: PUSH1 0x40
0000319f: DUP2
000031a0: KECCAK256
000031a1: SLOAD
000031a2: SWAP1
000031a3: SWAP2
000031a4: AND
000031a5: ISZERO
000031a6: PUSH2 0x31d6
000031a9: JUMPI
000031aa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000031bf: DUP1
000031c0: DUP5
000031c1: AND
000031c2: PUSH1 0x00
000031c4: SWAP1
000031c5: DUP2
000031c6: MSTORE
000031c7: PUSH1 0x07
000031c9: PUSH1 0x20
000031cb: MSTORE
000031cc: PUSH1 0x40
000031ce: SWAP1
000031cf: KECCAK256
000031d0: SLOAD
000031d1: AND
000031d2: PUSH2 0x31d8
000031d5: JUMP
000031d6: JUMPDEST
000031d7: DUP3
000031d8: JUMPDEST
000031d9: SWAP1
000031da: POP
000031db: PUSH2 0x31e2
000031de: PUSH2 0x3f3a
000031e1: JUMP
000031e2: JUMPDEST
000031e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000031f8: DUP5
000031f9: AND
000031fa: PUSH1 0x00
000031fc: SWAP1
000031fd: DUP2
000031fe: MSTORE
000031ff: PUSH1 0x06
00003201: PUSH1 0x20
00003203: MSTORE
00003204: PUSH1 0x40
00003206: SWAP1
00003207: KECCAK256
00003208: SLOAD
00003209: PUSH1 0xff
0000320b: AND
0000320c: ISZERO
0000320d: PUSH2 0x3267
00003210: JUMPI
00003211: PUSH1 0x40
00003213: MLOAD
00003214: PUSH32 0xfce6473600000000000000000000000000000000000000000000000000000000
00003235: DUP2
00003236: MSTORE
00003237: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000324c: DUP4
0000324d: AND
0000324e: SWAP1
0000324f: PUSH4 0xfce64736
00003254: SWAP1
00003255: PUSH2 0x30b7
00003258: SWAP1
00003259: DUP7
0000325a: SWAP1
0000325b: DUP6
0000325c: SWAP1
0000325d: PUSH1 0x01
0000325f: SWAP1
00003260: PUSH1 0x04
00003262: ADD
00003263: PUSH2 0x4c1b
00003266: JUMP
00003267: JUMPDEST
00003268: PUSH1 0x40
0000326a: MLOAD
0000326b: PUSH32 0xecb586a500000000000000000000000000000000000000000000000000000000
0000328c: DUP2
0000328d: MSTORE
0000328e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000032a3: DUP4
000032a4: AND
000032a5: SWAP1
000032a6: PUSH4 0xecb586a5
000032ab: SWAP1
000032ac: PUSH2 0x3142
000032af: SWAP1
000032b0: DUP7
000032b1: SWAP1
000032b2: DUP6
000032b3: SWAP1
000032b4: PUSH1 0x04
000032b6: ADD
000032b7: PUSH2 0x4c07
000032ba: JUMP
000032bb: JUMPDEST
000032bc: PUSH1 0x00
000032be: DUP3
000032bf: DUP3
000032c0: GT
000032c1: ISZERO
000032c2: PUSH2 0x32f7
000032c5: JUMPI
000032c6: PUSH1 0x40
000032c8: MLOAD
000032c9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000032ea: DUP2
000032eb: MSTORE
000032ec: PUSH1 0x04
000032ee: ADD
000032ef: PUSH2 0x098e
000032f2: SWAP1
000032f3: PUSH2 0x499e
000032f6: JUMP
000032f7: JUMPDEST
000032f8: POP
000032f9: SWAP1
000032fa: SUB
000032fb: SWAP1
000032fc: JUMP
000032fd: JUMPDEST
000032fe: PUSH2 0x1a96
00003301: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003316: DUP5
00003317: AND
00003318: DUP4
00003319: DUP4
0000331a: PUSH2 0x3ad9
0000331d: JUMP
0000331e: JUMPDEST
0000331f: PUSH1 0x00
00003321: DUP1
00003322: PUSH16 0x22d53366457f9d5e68ec105046fc4383
00003333: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003348: AND
00003349: PUSH4 0xa262904b
0000334e: PUSH1 0x40
00003350: MLOAD
00003351: DUP2
00003352: PUSH4 0xffffffff
00003357: AND
00003358: PUSH1 0xe0
0000335a: SHL
0000335b: DUP2
0000335c: MSTORE
0000335d: PUSH1 0x04
0000335f: ADD
00003360: PUSH1 0x20
00003362: PUSH1 0x40
00003364: MLOAD
00003365: DUP1
00003366: DUP4
00003367: SUB
00003368: DUP2
00003369: DUP7
0000336a: DUP1
0000336b: EXTCODESIZE
0000336c: ISZERO
0000336d: DUP1
0000336e: ISZERO
0000336f: PUSH2 0x3377
00003372: JUMPI
00003373: PUSH1 0x00
00003375: DUP1
00003376: REVERT
00003377: JUMPDEST
00003378: POP
00003379: GAS
0000337a: STATICCALL
0000337b: ISZERO
0000337c: DUP1
0000337d: ISZERO
0000337e: PUSH2 0x338b
00003381: JUMPI
00003382: RETURNDATASIZE
00003383: PUSH1 0x00
00003385: DUP1
00003386: RETURNDATACOPY
00003387: RETURNDATASIZE
00003388: PUSH1 0x00
0000338a: REVERT
0000338b: JUMPDEST
0000338c: POP
0000338d: POP
0000338e: POP
0000338f: POP
00003390: PUSH1 0x40
00003392: MLOAD
00003393: RETURNDATASIZE
00003394: PUSH1 0x1f
00003396: NOT
00003397: PUSH1 0x1f
00003399: DUP3
0000339a: ADD
0000339b: AND
0000339c: DUP3
0000339d: ADD
0000339e: DUP1
0000339f: PUSH1 0x40
000033a1: MSTORE
000033a2: POP
000033a3: DUP2
000033a4: ADD
000033a5: SWAP1
000033a6: PUSH2 0x33af
000033a9: SWAP2
000033aa: SWAP1
000033ab: PUSH2 0x4107
000033ae: JUMP
000033af: JUMPDEST
000033b0: PUSH1 0x40
000033b2: MLOAD
000033b3: PUSH32 0x3795104900000000000000000000000000000000000000000000000000000000
000033d4: DUP2
000033d5: MSTORE
000033d6: SWAP1
000033d7: SWAP2
000033d8: POP
000033d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000033ee: DUP3
000033ef: AND
000033f0: SWAP1
000033f1: PUSH4 0x37951049
000033f6: SWAP1
000033f7: PUSH2 0x3404
000033fa: SWAP1
000033fb: DUP7
000033fc: SWAP1
000033fd: PUSH1 0x04
000033ff: ADD
00003400: PUSH2 0x4710
00003403: JUMP
00003404: JUMPDEST
00003405: PUSH1 0x20
00003407: PUSH1 0x40
00003409: MLOAD
0000340a: DUP1
0000340b: DUP4
0000340c: SUB
0000340d: DUP2
0000340e: DUP7
0000340f: DUP1
00003410: EXTCODESIZE
00003411: ISZERO
00003412: DUP1
00003413: ISZERO
00003414: PUSH2 0x341c
00003417: JUMPI
00003418: PUSH1 0x00
0000341a: DUP1
0000341b: REVERT
0000341c: JUMPDEST
0000341d: POP
0000341e: GAS
0000341f: STATICCALL
00003420: ISZERO
00003421: DUP1
00003422: ISZERO
00003423: PUSH2 0x3430
00003426: JUMPI
00003427: RETURNDATASIZE
00003428: PUSH1 0x00
0000342a: DUP1
0000342b: RETURNDATACOPY
0000342c: RETURNDATASIZE
0000342d: PUSH1 0x00
0000342f: REVERT
00003430: JUMPDEST
00003431: POP
00003432: POP
00003433: POP
00003434: POP
00003435: PUSH1 0x40
00003437: MLOAD
00003438: RETURNDATASIZE
00003439: PUSH1 0x1f
0000343b: NOT
0000343c: PUSH1 0x1f
0000343e: DUP3
0000343f: ADD
00003440: AND
00003441: DUP3
00003442: ADD
00003443: DUP1
00003444: PUSH1 0x40
00003446: MSTORE
00003447: POP
00003448: DUP2
00003449: ADD
0000344a: SWAP1
0000344b: PUSH2 0x0ce3
0000344e: SWAP2
0000344f: SWAP1
00003450: PUSH2 0x4107
00003453: JUMP
00003454: JUMPDEST
00003455: PUSH1 0x00
00003457: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000346c: DUP3
0000346d: AND
0000346e: ISZERO
0000346f: PUSH2 0x3519
00003472: JUMPI
00003473: PUSH1 0x40
00003475: MLOAD
00003476: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
00003497: DUP2
00003498: MSTORE
00003499: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000034ae: DUP4
000034af: AND
000034b0: SWAP1
000034b1: PUSH4 0x70a08231
000034b6: SWAP1
000034b7: PUSH2 0x34c4
000034ba: SWAP1
000034bb: ADDRESS
000034bc: SWAP1
000034bd: PUSH1 0x04
000034bf: ADD
000034c0: PUSH2 0x4710
000034c3: JUMP
000034c4: JUMPDEST
000034c5: PUSH1 0x20
000034c7: PUSH1 0x40
000034c9: MLOAD
000034ca: DUP1
000034cb: DUP4
000034cc: SUB
000034cd: DUP2
000034ce: DUP7
000034cf: DUP1
000034d0: EXTCODESIZE
000034d1: ISZERO
000034d2: DUP1
000034d3: ISZERO
000034d4: PUSH2 0x34dc
000034d7: JUMPI
000034d8: PUSH1 0x00
000034da: DUP1
000034db: REVERT
000034dc: JUMPDEST
000034dd: POP
000034de: GAS
000034df: STATICCALL
000034e0: ISZERO
000034e1: DUP1
000034e2: ISZERO
000034e3: PUSH2 0x34f0
000034e6: JUMPI
000034e7: RETURNDATASIZE
000034e8: PUSH1 0x00
000034ea: DUP1
000034eb: RETURNDATACOPY
000034ec: RETURNDATASIZE
000034ed: PUSH1 0x00
000034ef: REVERT
000034f0: JUMPDEST
000034f1: POP
000034f2: POP
000034f3: POP
000034f4: POP
000034f5: PUSH1 0x40
000034f7: MLOAD
000034f8: RETURNDATASIZE
000034f9: PUSH1 0x1f
000034fb: NOT
000034fc: PUSH1 0x1f
000034fe: DUP3
000034ff: ADD
00003500: AND
00003501: DUP3
00003502: ADD
00003503: DUP1
00003504: PUSH1 0x40
00003506: MSTORE
00003507: POP
00003508: DUP2
00003509: ADD
0000350a: SWAP1
0000350b: PUSH2 0x3514
0000350e: SWAP2
0000350f: SWAP1
00003510: PUSH2 0x4672
00003513: JUMP
00003514: JUMPDEST
00003515: PUSH2 0x1ba9
00003518: JUMP
00003519: JUMPDEST
0000351a: POP
0000351b: SELFBALANCE
0000351c: SWAP2
0000351d: SWAP1
0000351e: POP
0000351f: JUMP
00003520: JUMPDEST
00003521: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003536: DUP2
00003537: AND
00003538: PUSH2 0x356d
0000353b: JUMPI
0000353c: PUSH1 0x40
0000353e: MLOAD
0000353f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00003560: DUP2
00003561: MSTORE
00003562: PUSH1 0x04
00003564: ADD
00003565: PUSH2 0x098e
00003568: SWAP1
00003569: PUSH2 0x48d3
0000356c: JUMP
0000356d: JUMPDEST
0000356e: PUSH1 0x00
00003570: PUSH2 0x3578
00003573: DUP5
00003574: PUSH2 0x3454
00003577: JUMP
00003578: JUMPDEST
00003579: SWAP1
0000357a: POP
0000357b: DUP3
0000357c: DUP2
0000357d: LT
0000357e: ISZERO
0000357f: PUSH2 0x35b4
00003582: JUMPI
00003583: PUSH1 0x40
00003585: MLOAD
00003586: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000035a7: DUP2
000035a8: MSTORE
000035a9: PUSH1 0x04
000035ab: ADD
000035ac: PUSH2 0x098e
000035af: SWAP1
000035b0: PUSH2 0x49d5
000035b3: JUMP
000035b4: JUMPDEST
000035b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000035ca: DUP5
000035cb: AND
000035cc: PUSH2 0x3678
000035cf: JUMPI
000035d0: PUSH1 0x00
000035d2: DUP3
000035d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000035e8: AND
000035e9: DUP5
000035ea: PUSH1 0x40
000035ec: MLOAD
000035ed: PUSH2 0x35f5
000035f0: SWAP1
000035f1: PUSH2 0x470d
000035f4: JUMP
000035f5: JUMPDEST
000035f6: PUSH1 0x00
000035f8: PUSH1 0x40
000035fa: MLOAD
000035fb: DUP1
000035fc: DUP4
000035fd: SUB
000035fe: DUP2
000035ff: DUP6
00003600: DUP8
00003601: GAS
00003602: CALL
00003603: SWAP3
00003604: POP
00003605: POP
00003606: POP
00003607: RETURNDATASIZE
00003608: DUP1
00003609: PUSH1 0x00
0000360b: DUP2
0000360c: EQ
0000360d: PUSH2 0x3632
00003610: JUMPI
00003611: PUSH1 0x40
00003613: MLOAD
00003614: SWAP2
00003615: POP
00003616: PUSH1 0x1f
00003618: NOT
00003619: PUSH1 0x3f
0000361b: RETURNDATASIZE
0000361c: ADD
0000361d: AND
0000361e: DUP3
0000361f: ADD
00003620: PUSH1 0x40
00003622: MSTORE
00003623: RETURNDATASIZE
00003624: DUP3
00003625: MSTORE
00003626: RETURNDATASIZE
00003627: PUSH1 0x00
00003629: PUSH1 0x20
0000362b: DUP5
0000362c: ADD
0000362d: RETURNDATACOPY
0000362e: PUSH2 0x3637
00003631: JUMP
00003632: JUMPDEST
00003633: PUSH1 0x60
00003635: SWAP2
00003636: POP
00003637: JUMPDEST
00003638: POP
00003639: POP
0000363a: SWAP1
0000363b: POP
0000363c: DUP1
0000363d: PUSH2 0x3672
00003640: JUMPI
00003641: PUSH1 0x40
00003643: MLOAD
00003644: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00003665: DUP2
00003666: MSTORE
00003667: PUSH1 0x04
00003669: ADD
0000366a: PUSH2 0x098e
0000366d: SWAP1
0000366e: PUSH2 0x489c
00003671: JUMP
00003672: JUMPDEST
00003673: POP
00003674: PUSH2 0x3699
00003677: JUMP
00003678: JUMPDEST
00003679: PUSH2 0x3699
0000367c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003691: DUP6
00003692: AND
00003693: DUP4
00003694: DUP6
00003695: PUSH2 0x3c5e
00003698: JUMP
00003699: JUMPDEST
0000369a: DUP4
0000369b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000036b0: AND
000036b1: DUP3
000036b2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000036c7: AND
000036c8: PUSH32 0x9207361cc2a04b9c7a06691df1eb87c6a63957ae88bf01d0d18c81e3d1272099
000036e9: DUP6
000036ea: PUSH1 0x40
000036ec: MLOAD
000036ed: PUSH2 0x36f6
000036f0: SWAP2
000036f1: SWAP1
000036f2: PUSH2 0x4bc6
000036f5: JUMP
000036f6: JUMPDEST
000036f7: PUSH1 0x40
000036f9: MLOAD
000036fa: DUP1
000036fb: SWAP2
000036fc: SUB
000036fd: SWAP1
000036fe: LOG3
000036ff: POP
00003700: POP
00003701: POP
00003702: POP
00003703: JUMP
00003704: JUMPDEST
00003705: PUSH2 0x370c
00003708: PUSH2 0x3f1c
0000370b: JUMP
0000370c: JUMPDEST
0000370d: DUP3
0000370e: PUSH1 0x00
00003710: DUP2
00003711: MLOAD
00003712: DUP2
00003713: LT
00003714: PUSH2 0x3719
00003717: JUMPI
00003718: INVALID
00003719: JUMPDEST
0000371a: PUSH1 0x20
0000371c: MUL
0000371d: PUSH1 0x20
0000371f: ADD
00003720: ADD
00003721: MLOAD
00003722: DUP2
00003723: PUSH1 0x00
00003725: PUSH1 0x02
00003727: DUP2
00003728: LT
00003729: PUSH2 0x372e
0000372c: JUMPI
0000372d: INVALID
0000372e: JUMPDEST
0000372f: PUSH1 0x20
00003731: MUL
00003732: ADD
00003733: MSTORE
00003734: DUP3
00003735: MLOAD
00003736: DUP4
00003737: SWAP1
00003738: PUSH1 0x01
0000373a: SWAP1
0000373b: DUP2
0000373c: LT
0000373d: PUSH2 0x3742
00003740: JUMPI
00003741: INVALID
00003742: JUMPDEST
00003743: PUSH1 0x20
00003745: MUL
00003746: PUSH1 0x20
00003748: ADD
00003749: ADD
0000374a: MLOAD
0000374b: DUP2
0000374c: PUSH1 0x01
0000374e: PUSH1 0x02
00003750: DUP2
00003751: LT
00003752: PUSH2 0x3757
00003755: JUMPI
00003756: INVALID
00003757: JUMPDEST
00003758: PUSH1 0x20
0000375a: SWAP1
0000375b: DUP2
0000375c: MUL
0000375d: SWAP2
0000375e: SWAP1
0000375f: SWAP2
00003760: ADD
00003761: SWAP2
00003762: SWAP1
00003763: SWAP2
00003764: MSTORE
00003765: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000377a: DUP6
0000377b: DUP2
0000377c: AND
0000377d: PUSH1 0x00
0000377f: SWAP1
00003780: DUP2
00003781: MSTORE
00003782: PUSH1 0x07
00003784: SWAP1
00003785: SWAP3
00003786: MSTORE
00003787: PUSH1 0x40
00003789: DUP3
0000378a: KECCAK256
0000378b: SLOAD
0000378c: AND
0000378d: ISZERO
0000378e: PUSH2 0x37be
00003791: JUMPI
00003792: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000037a7: DUP1
000037a8: DUP7
000037a9: AND
000037aa: PUSH1 0x00
000037ac: SWAP1
000037ad: DUP2
000037ae: MSTORE
000037af: PUSH1 0x07
000037b1: PUSH1 0x20
000037b3: MSTORE
000037b4: PUSH1 0x40
000037b6: SWAP1
000037b7: KECCAK256
000037b8: SLOAD
000037b9: AND
000037ba: PUSH2 0x37c0
000037bd: JUMP
000037be: JUMPDEST
000037bf: DUP5
000037c0: JUMPDEST
000037c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000037d6: DUP7
000037d7: AND
000037d8: PUSH1 0x00
000037da: SWAP1
000037db: DUP2
000037dc: MSTORE
000037dd: PUSH1 0x06
000037df: PUSH1 0x20
000037e1: MSTORE
000037e2: PUSH1 0x40
000037e4: SWAP1
000037e5: KECCAK256
000037e6: SLOAD
000037e7: SWAP1
000037e8: SWAP2
000037e9: POP
000037ea: PUSH1 0xff
000037ec: AND
000037ed: ISZERO
000037ee: PUSH2 0x3882
000037f1: JUMPI
000037f2: PUSH1 0x40
000037f4: MLOAD
000037f5: PUSH32 0xee22be2300000000000000000000000000000000000000000000000000000000
00003816: DUP2
00003817: MSTORE
00003818: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000382d: DUP3
0000382e: AND
0000382f: SWAP1
00003830: PUSH4 0xee22be23
00003835: SWAP1
00003836: DUP6
00003837: SWAP1
00003838: PUSH2 0x384b
0000383b: SWAP1
0000383c: DUP7
0000383d: SWAP1
0000383e: PUSH1 0x00
00003840: SWAP1
00003841: PUSH1 0x01
00003843: SWAP1
00003844: PUSH1 0x04
00003846: ADD
00003847: PUSH2 0x4799
0000384a: JUMP
0000384b: JUMPDEST
0000384c: PUSH1 0x00
0000384e: PUSH1 0x40
00003850: MLOAD
00003851: DUP1
00003852: DUP4
00003853: SUB
00003854: DUP2
00003855: DUP6
00003856: DUP9
00003857: DUP1
00003858: EXTCODESIZE
00003859: ISZERO
0000385a: DUP1
0000385b: ISZERO
0000385c: PUSH2 0x3864
0000385f: JUMPI
00003860: PUSH1 0x00
00003862: DUP1
00003863: REVERT
00003864: JUMPDEST
00003865: POP
00003866: GAS
00003867: CALL
00003868: ISZERO
00003869: DUP1
0000386a: ISZERO
0000386b: PUSH2 0x3878
0000386e: JUMPI
0000386f: RETURNDATASIZE
00003870: PUSH1 0x00
00003872: DUP1
00003873: RETURNDATACOPY
00003874: RETURNDATASIZE
00003875: PUSH1 0x00
00003877: REVERT
00003878: JUMPDEST
00003879: POP
0000387a: POP
0000387b: POP
0000387c: POP
0000387d: POP
0000387e: PUSH2 0x0c56
00003881: JUMP
00003882: JUMPDEST
00003883: PUSH1 0x40
00003885: MLOAD
00003886: PUSH32 0x0b4c7e4d00000000000000000000000000000000000000000000000000000000
000038a7: DUP2
000038a8: MSTORE
000038a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000038be: DUP3
000038bf: AND
000038c0: SWAP1
000038c1: PUSH4 0x0b4c7e4d
000038c6: SWAP1
000038c7: DUP6
000038c8: SWAP1
000038c9: PUSH2 0x38d9
000038cc: SWAP1
000038cd: DUP7
000038ce: SWAP1
000038cf: PUSH1 0x00
000038d1: SWAP1
000038d2: PUSH1 0x04
000038d4: ADD
000038d5: PUSH2 0x477e
000038d8: JUMP
000038d9: JUMPDEST
000038da: PUSH1 0x00
000038dc: PUSH1 0x40
000038de: MLOAD
000038df: DUP1
000038e0: DUP4
000038e1: SUB
000038e2: DUP2
000038e3: DUP6
000038e4: DUP9
000038e5: DUP1
000038e6: EXTCODESIZE
000038e7: ISZERO
000038e8: DUP1
000038e9: ISZERO
000038ea: PUSH2 0x38f2
000038ed: JUMPI
000038ee: PUSH1 0x00
000038f0: DUP1
000038f1: REVERT
000038f2: JUMPDEST
000038f3: POP
000038f4: GAS
000038f5: CALL
000038f6: ISZERO
000038f7: DUP1
000038f8: ISZERO
000038f9: PUSH2 0x3906
000038fc: JUMPI
000038fd: RETURNDATASIZE
000038fe: PUSH1 0x00
00003900: DUP1
00003901: RETURNDATACOPY
00003902: RETURNDATASIZE
00003903: PUSH1 0x00
00003905: REVERT
00003906: JUMPDEST
00003907: POP
00003908: POP
00003909: POP
0000390a: POP
0000390b: POP
0000390c: POP
0000390d: POP
0000390e: POP
0000390f: POP
00003910: POP
00003911: JUMP
00003912: JUMPDEST
00003913: PUSH2 0x391a
00003916: PUSH2 0x3f3a
00003919: JUMP
0000391a: JUMPDEST
0000391b: DUP3
0000391c: PUSH1 0x00
0000391e: DUP2
0000391f: MLOAD
00003920: DUP2
00003921: LT
00003922: PUSH2 0x3927
00003925: JUMPI
00003926: INVALID
00003927: JUMPDEST
00003928: PUSH1 0x20
0000392a: MUL
0000392b: PUSH1 0x20
0000392d: ADD
0000392e: ADD
0000392f: MLOAD
00003930: DUP2
00003931: PUSH1 0x00
00003933: PUSH1 0x03
00003935: DUP2
00003936: LT
00003937: PUSH2 0x393c
0000393a: JUMPI
0000393b: INVALID
0000393c: JUMPDEST
0000393d: PUSH1 0x20
0000393f: MUL
00003940: ADD
00003941: MSTORE
00003942: DUP3
00003943: MLOAD
00003944: DUP4
00003945: SWAP1
00003946: PUSH1 0x01
00003948: SWAP1
00003949: DUP2
0000394a: LT
0000394b: PUSH2 0x3950
0000394e: JUMPI
0000394f: INVALID
00003950: JUMPDEST
00003951: PUSH1 0x20
00003953: MUL
00003954: PUSH1 0x20
00003956: ADD
00003957: ADD
00003958: MLOAD
00003959: DUP2
0000395a: PUSH1 0x01
0000395c: PUSH1 0x03
0000395e: DUP2
0000395f: LT
00003960: PUSH2 0x3965
00003963: JUMPI
00003964: INVALID
00003965: JUMPDEST
00003966: PUSH1 0x20
00003968: MUL
00003969: ADD
0000396a: MSTORE
0000396b: DUP3
0000396c: MLOAD
0000396d: DUP4
0000396e: SWAP1
0000396f: PUSH1 0x02
00003971: SWAP1
00003972: DUP2
00003973: LT
00003974: PUSH2 0x3979
00003977: JUMPI
00003978: INVALID
00003979: JUMPDEST
0000397a: PUSH1 0x20
0000397c: MUL
0000397d: PUSH1 0x20
0000397f: ADD
00003980: ADD
00003981: MLOAD
00003982: DUP2
00003983: PUSH1 0x02
00003985: PUSH1 0x03
00003987: DUP2
00003988: LT
00003989: PUSH2 0x398e
0000398c: JUMPI
0000398d: INVALID
0000398e: JUMPDEST
0000398f: PUSH1 0x20
00003991: SWAP1
00003992: DUP2
00003993: MUL
00003994: SWAP2
00003995: SWAP1
00003996: SWAP2
00003997: ADD
00003998: SWAP2
00003999: SWAP1
0000399a: SWAP2
0000399b: MSTORE
0000399c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000039b1: DUP6
000039b2: DUP2
000039b3: AND
000039b4: PUSH1 0x00
000039b6: SWAP1
000039b7: DUP2
000039b8: MSTORE
000039b9: PUSH1 0x07
000039bb: SWAP1
000039bc: SWAP3
000039bd: MSTORE
000039be: PUSH1 0x40
000039c0: DUP3
000039c1: KECCAK256
000039c2: SLOAD
000039c3: AND
000039c4: ISZERO
000039c5: PUSH2 0x39f5
000039c8: JUMPI
000039c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000039de: DUP1
000039df: DUP7
000039e0: AND
000039e1: PUSH1 0x00
000039e3: SWAP1
000039e4: DUP2
000039e5: MSTORE
000039e6: PUSH1 0x07
000039e8: PUSH1 0x20
000039ea: MSTORE
000039eb: PUSH1 0x40
000039ed: SWAP1
000039ee: KECCAK256
000039ef: SLOAD
000039f0: AND
000039f1: PUSH2 0x39f7
000039f4: JUMP
000039f5: JUMPDEST
000039f6: DUP5
000039f7: JUMPDEST
000039f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003a0d: DUP7
00003a0e: AND
00003a0f: PUSH1 0x00
00003a11: SWAP1
00003a12: DUP2
00003a13: MSTORE
00003a14: PUSH1 0x06
00003a16: PUSH1 0x20
00003a18: MSTORE
00003a19: PUSH1 0x40
00003a1b: SWAP1
00003a1c: KECCAK256
00003a1d: SLOAD
00003a1e: SWAP1
00003a1f: SWAP2
00003a20: POP
00003a21: PUSH1 0xff
00003a23: AND
00003a24: ISZERO
00003a25: PUSH2 0x3a82
00003a28: JUMPI
00003a29: PUSH1 0x40
00003a2b: MLOAD
00003a2c: PUSH32 0x2b6e993a00000000000000000000000000000000000000000000000000000000
00003a4d: DUP2
00003a4e: MSTORE
00003a4f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003a64: DUP3
00003a65: AND
00003a66: SWAP1
00003a67: PUSH4 0x2b6e993a
00003a6c: SWAP1
00003a6d: DUP6
00003a6e: SWAP1
00003a6f: PUSH2 0x384b
00003a72: SWAP1
00003a73: DUP7
00003a74: SWAP1
00003a75: PUSH1 0x00
00003a77: SWAP1
00003a78: PUSH1 0x01
00003a7a: SWAP1
00003a7b: PUSH1 0x04
00003a7d: ADD
00003a7e: PUSH2 0x47d8
00003a81: JUMP
00003a82: JUMPDEST
00003a83: PUSH1 0x40
00003a85: MLOAD
00003a86: PUSH32 0x4515cef300000000000000000000000000000000000000000000000000000000
00003aa7: DUP2
00003aa8: MSTORE
00003aa9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003abe: DUP3
00003abf: AND
00003ac0: SWAP1
00003ac1: PUSH4 0x4515cef3
00003ac6: SWAP1
00003ac7: DUP6
00003ac8: SWAP1
00003ac9: PUSH2 0x38d9
00003acc: SWAP1
00003acd: DUP7
00003ace: SWAP1
00003acf: PUSH1 0x00
00003ad1: SWAP1
00003ad2: PUSH1 0x04
00003ad4: ADD
00003ad5: PUSH2 0x47bd
00003ad8: JUMP
00003ad9: JUMPDEST
00003ada: DUP1
00003adb: ISZERO
00003adc: DUP1
00003add: PUSH2 0x3b87
00003ae0: JUMPI
00003ae1: POP
00003ae2: PUSH1 0x40
00003ae4: MLOAD
00003ae5: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000
00003b06: DUP2
00003b07: MSTORE
00003b08: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003b1d: DUP5
00003b1e: AND
00003b1f: SWAP1
00003b20: PUSH4 0xdd62ed3e
00003b25: SWAP1
00003b26: PUSH2 0x3b35
00003b29: SWAP1
00003b2a: ADDRESS
00003b2b: SWAP1
00003b2c: DUP7
00003b2d: SWAP1
00003b2e: PUSH1 0x04
00003b30: ADD
00003b31: PUSH2 0x4731
00003b34: JUMP
00003b35: JUMPDEST
00003b36: PUSH1 0x20
00003b38: PUSH1 0x40
00003b3a: MLOAD
00003b3b: DUP1
00003b3c: DUP4
00003b3d: SUB
00003b3e: DUP2
00003b3f: DUP7
00003b40: DUP1
00003b41: EXTCODESIZE
00003b42: ISZERO
00003b43: DUP1
00003b44: ISZERO
00003b45: PUSH2 0x3b4d
00003b48: JUMPI
00003b49: PUSH1 0x00
00003b4b: DUP1
00003b4c: REVERT
00003b4d: JUMPDEST
00003b4e: POP
00003b4f: GAS
00003b50: STATICCALL
00003b51: ISZERO
00003b52: DUP1
00003b53: ISZERO
00003b54: PUSH2 0x3b61
00003b57: JUMPI
00003b58: RETURNDATASIZE
00003b59: PUSH1 0x00
00003b5b: DUP1
00003b5c: RETURNDATACOPY
00003b5d: RETURNDATASIZE
00003b5e: PUSH1 0x00
00003b60: REVERT
00003b61: JUMPDEST
00003b62: POP
00003b63: POP
00003b64: POP
00003b65: POP
00003b66: PUSH1 0x40
00003b68: MLOAD
00003b69: RETURNDATASIZE
00003b6a: PUSH1 0x1f
00003b6c: NOT
00003b6d: PUSH1 0x1f
00003b6f: DUP3
00003b70: ADD
00003b71: AND
00003b72: DUP3
00003b73: ADD
00003b74: DUP1
00003b75: PUSH1 0x40
00003b77: MSTORE
00003b78: POP
00003b79: DUP2
00003b7a: ADD
00003b7b: SWAP1
00003b7c: PUSH2 0x3b85
00003b7f: SWAP2
00003b80: SWAP1
00003b81: PUSH2 0x4672
00003b84: JUMP
00003b85: JUMPDEST
00003b86: ISZERO
00003b87: JUMPDEST
00003b88: PUSH2 0x3bbd
00003b8b: JUMPI
00003b8c: PUSH1 0x40
00003b8e: MLOAD
00003b8f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00003bb0: DUP2
00003bb1: MSTORE
00003bb2: PUSH1 0x04
00003bb4: ADD
00003bb5: PUSH2 0x098e
00003bb8: SWAP1
00003bb9: PUSH2 0x4b69
00003bbc: JUMP
00003bbd: JUMPDEST
00003bbe: PUSH2 0x1a96
00003bc1: DUP4
00003bc2: PUSH4 0x095ea7b3
00003bc7: PUSH1 0xe0
00003bc9: SHL
00003bca: DUP5
00003bcb: DUP5
00003bcc: PUSH1 0x40
00003bce: MLOAD
00003bcf: PUSH1 0x24
00003bd1: ADD
00003bd2: PUSH2 0x3bdc
00003bd5: SWAP3
00003bd6: SWAP2
00003bd7: SWAP1
00003bd8: PUSH2 0x4758
00003bdb: JUMP
00003bdc: JUMPDEST
00003bdd: PUSH1 0x40
00003bdf: DUP1
00003be0: MLOAD
00003be1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00003c02: DUP2
00003c03: DUP5
00003c04: SUB
00003c05: ADD
00003c06: DUP2
00003c07: MSTORE
00003c08: SWAP2
00003c09: SWAP1
00003c0a: MSTORE
00003c0b: PUSH1 0x20
00003c0d: DUP2
00003c0e: ADD
00003c0f: DUP1
00003c10: MLOAD
00003c11: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00003c2e: AND
00003c2f: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00003c50: SWAP1
00003c51: SWAP4
00003c52: AND
00003c53: SWAP3
00003c54: SWAP1
00003c55: SWAP3
00003c56: OR
00003c57: SWAP1
00003c58: SWAP2
00003c59: MSTORE
00003c5a: PUSH2 0x3c7d
00003c5d: JUMP
00003c5e: JUMPDEST
00003c5f: PUSH2 0x1a96
00003c62: DUP4
00003c63: PUSH4 0xa9059cbb
00003c68: PUSH1 0xe0
00003c6a: SHL
00003c6b: DUP5
00003c6c: DUP5
00003c6d: PUSH1 0x40
00003c6f: MLOAD
00003c70: PUSH1 0x24
00003c72: ADD
00003c73: PUSH2 0x3bdc
00003c76: SWAP3
00003c77: SWAP2
00003c78: SWAP1
00003c79: PUSH2 0x4758
00003c7c: JUMP
00003c7d: JUMPDEST
00003c7e: PUSH1 0x60
00003c80: PUSH2 0x3cdf
00003c83: DUP3
00003c84: PUSH1 0x40
00003c86: MLOAD
00003c87: DUP1
00003c88: PUSH1 0x40
00003c8a: ADD
00003c8b: PUSH1 0x40
00003c8d: MSTORE
00003c8e: DUP1
00003c8f: PUSH1 0x20
00003c91: DUP2
00003c92: MSTORE
00003c93: PUSH1 0x20
00003c95: ADD
00003c96: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
00003cb7: DUP2
00003cb8: MSTORE
00003cb9: POP
00003cba: DUP6
00003cbb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003cd0: AND
00003cd1: PUSH2 0x3d33
00003cd4: SWAP1
00003cd5: SWAP3
00003cd6: SWAP2
00003cd7: SWAP1
00003cd8: PUSH4 0xffffffff
00003cdd: AND
00003cde: JUMP
00003cdf: JUMPDEST
00003ce0: DUP1
00003ce1: MLOAD
00003ce2: SWAP1
00003ce3: SWAP2
00003ce4: POP
00003ce5: ISZERO
00003ce6: PUSH2 0x1a96
00003ce9: JUMPI
00003cea: DUP1
00003ceb: DUP1
00003cec: PUSH1 0x20
00003cee: ADD
00003cef: SWAP1
00003cf0: MLOAD
00003cf1: DUP2
00003cf2: ADD
00003cf3: SWAP1
00003cf4: PUSH2 0x3cfd
00003cf7: SWAP2
00003cf8: SWAP1
00003cf9: PUSH2 0x45b0
00003cfc: JUMP
00003cfd: JUMPDEST
00003cfe: PUSH2 0x1a96
00003d01: JUMPI
00003d02: PUSH1 0x40
00003d04: MLOAD
00003d05: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00003d26: DUP2
00003d27: MSTORE
00003d28: PUSH1 0x04
00003d2a: ADD
00003d2b: PUSH2 0x098e
00003d2e: SWAP1
00003d2f: PUSH2 0x4b0c
00003d32: JUMP
00003d33: JUMPDEST
00003d34: PUSH1 0x60
00003d36: PUSH2 0x0df0
00003d39: DUP5
00003d3a: DUP5
00003d3b: PUSH1 0x00
00003d3d: DUP6
00003d3e: DUP6
00003d3f: PUSH2 0x3d47
00003d42: DUP6
00003d43: PUSH2 0x3e04
00003d46: JUMP
00003d47: JUMPDEST
00003d48: PUSH2 0x3d7d
00003d4b: JUMPI
00003d4c: PUSH1 0x40
00003d4e: MLOAD
00003d4f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00003d70: DUP2
00003d71: MSTORE
00003d72: PUSH1 0x04
00003d74: ADD
00003d75: PUSH2 0x098e
00003d78: SWAP1
00003d79: PUSH2 0x4ad5
00003d7c: JUMP
00003d7d: JUMPDEST
00003d7e: PUSH1 0x00
00003d80: PUSH1 0x60
00003d82: DUP7
00003d83: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003d98: AND
00003d99: DUP6
00003d9a: DUP8
00003d9b: PUSH1 0x40
00003d9d: MLOAD
00003d9e: PUSH2 0x3da7
00003da1: SWAP2
00003da2: SWAP1
00003da3: PUSH2 0x46f1
00003da6: JUMP
00003da7: JUMPDEST
00003da8: PUSH1 0x00
00003daa: PUSH1 0x40
00003dac: MLOAD
00003dad: DUP1
00003dae: DUP4
00003daf: SUB
00003db0: DUP2
00003db1: DUP6
00003db2: DUP8
00003db3: GAS
00003db4: CALL
00003db5: SWAP3
00003db6: POP
00003db7: POP
00003db8: POP
00003db9: RETURNDATASIZE
00003dba: DUP1
00003dbb: PUSH1 0x00
00003dbd: DUP2
00003dbe: EQ
00003dbf: PUSH2 0x3de4
00003dc2: JUMPI
00003dc3: PUSH1 0x40
00003dc5: MLOAD
00003dc6: SWAP2
00003dc7: POP
00003dc8: PUSH1 0x1f
00003dca: NOT
00003dcb: PUSH1 0x3f
00003dcd: RETURNDATASIZE
00003dce: ADD
00003dcf: AND
00003dd0: DUP3
00003dd1: ADD
00003dd2: PUSH1 0x40
00003dd4: MSTORE
00003dd5: RETURNDATASIZE
00003dd6: DUP3
00003dd7: MSTORE
00003dd8: RETURNDATASIZE
00003dd9: PUSH1 0x00
00003ddb: PUSH1 0x20
00003ddd: DUP5
00003dde: ADD
00003ddf: RETURNDATACOPY
00003de0: PUSH2 0x3de9
00003de3: JUMP
00003de4: JUMPDEST
00003de5: PUSH1 0x60
00003de7: SWAP2
00003de8: POP
00003de9: JUMPDEST
00003dea: POP
00003deb: SWAP2
00003dec: POP
00003ded: SWAP2
00003dee: POP
00003def: PUSH2 0x3df9
00003df2: DUP3
00003df3: DUP3
00003df4: DUP7
00003df5: PUSH2 0x3e0a
00003df8: JUMP
00003df9: JUMPDEST
00003dfa: SWAP8
00003dfb: SWAP7
00003dfc: POP
00003dfd: POP
00003dfe: POP
00003dff: POP
00003e00: POP
00003e01: POP
00003e02: POP
00003e03: JUMP
00003e04: JUMPDEST
00003e05: EXTCODESIZE
00003e06: ISZERO
00003e07: ISZERO
00003e08: SWAP1
00003e09: JUMP
00003e0a: JUMPDEST
00003e0b: PUSH1 0x60
00003e0d: DUP4
00003e0e: ISZERO
00003e0f: PUSH2 0x3e19
00003e12: JUMPI
00003e13: POP
00003e14: DUP2
00003e15: PUSH2 0x0ce3
00003e18: JUMP
00003e19: JUMPDEST
00003e1a: DUP3
00003e1b: MLOAD
00003e1c: ISZERO
00003e1d: PUSH2 0x3e29
00003e20: JUMPI
00003e21: DUP3
00003e22: MLOAD
00003e23: DUP1
00003e24: DUP5
00003e25: PUSH1 0x20
00003e27: ADD
00003e28: REVERT
00003e29: JUMPDEST
00003e2a: DUP2
00003e2b: PUSH1 0x40
00003e2d: MLOAD
00003e2e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00003e4f: DUP2
00003e50: MSTORE
00003e51: PUSH1 0x04
00003e53: ADD
00003e54: PUSH2 0x098e
00003e57: SWAP2
00003e58: SWAP1
00003e59: PUSH2 0x484b
00003e5c: JUMP
00003e5d: JUMPDEST
00003e5e: PUSH1 0x40
00003e60: DUP1
00003e61: MLOAD
00003e62: PUSH1 0xc0
00003e64: DUP2
00003e65: ADD
00003e66: DUP3
00003e67: MSTORE
00003e68: PUSH1 0x00
00003e6a: DUP1
00003e6b: DUP3
00003e6c: MSTORE
00003e6d: PUSH1 0x20
00003e6f: DUP3
00003e70: ADD
00003e71: DUP2
00003e72: SWAP1
00003e73: MSTORE
00003e74: SWAP2
00003e75: DUP2
00003e76: ADD
00003e77: DUP3
00003e78: SWAP1
00003e79: MSTORE
00003e7a: PUSH1 0x60
00003e7c: DUP2
00003e7d: ADD
00003e7e: DUP3
00003e7f: SWAP1
00003e80: MSTORE
00003e81: PUSH1 0x80
00003e83: DUP2
00003e84: ADD
00003e85: DUP3
00003e86: SWAP1
00003e87: MSTORE
00003e88: PUSH1 0xa0
00003e8a: DUP2
00003e8b: ADD
00003e8c: SWAP2
00003e8d: SWAP1
00003e8e: SWAP2
00003e8f: MSTORE
00003e90: SWAP1
00003e91: JUMP
00003e92: JUMPDEST
00003e93: DUP3
00003e94: DUP1
00003e95: SLOAD
00003e96: DUP3
00003e97: DUP3
00003e98: SSTORE
00003e99: SWAP1
00003e9a: PUSH1 0x00
00003e9c: MSTORE
00003e9d: PUSH1 0x20
00003e9f: PUSH1 0x00
00003ea1: KECCAK256
00003ea2: SWAP1
00003ea3: DUP2
00003ea4: ADD
00003ea5: SWAP3
00003ea6: DUP3
00003ea7: ISZERO
00003ea8: PUSH2 0x3f0c
00003eab: JUMPI
00003eac: SWAP2
00003ead: PUSH1 0x20
00003eaf: MUL
00003eb0: DUP3
00003eb1: ADD
00003eb2: JUMPDEST
00003eb3: DUP3
00003eb4: DUP2
00003eb5: GT
00003eb6: ISZERO
00003eb7: PUSH2 0x3f0c
00003eba: JUMPI
00003ebb: DUP3
00003ebc: MLOAD
00003ebd: DUP3
00003ebe: SLOAD
00003ebf: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00003ee0: AND
00003ee1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003ef6: SWAP1
00003ef7: SWAP2
00003ef8: AND
00003ef9: OR
00003efa: DUP3
00003efb: SSTORE
00003efc: PUSH1 0x20
00003efe: SWAP1
00003eff: SWAP3
00003f00: ADD
00003f01: SWAP2
00003f02: PUSH1 0x01
00003f04: SWAP1
00003f05: SWAP2
00003f06: ADD
00003f07: SWAP1
00003f08: PUSH2 0x3eb2
00003f0b: JUMP
00003f0c: JUMPDEST
00003f0d: POP
00003f0e: PUSH2 0x3f18
00003f11: SWAP3
00003f12: SWAP2
00003f13: POP
00003f14: PUSH2 0x3f58
00003f17: JUMP
00003f18: JUMPDEST
00003f19: POP
00003f1a: SWAP1
00003f1b: JUMP
00003f1c: JUMPDEST
00003f1d: PUSH1 0x40
00003f1f: MLOAD
00003f20: DUP1
00003f21: PUSH1 0x40
00003f23: ADD
00003f24: PUSH1 0x40
00003f26: MSTORE
00003f27: DUP1
00003f28: PUSH1 0x02
00003f2a: SWAP1
00003f2b: PUSH1 0x20
00003f2d: DUP3
00003f2e: MUL
00003f2f: DUP1
00003f30: CALLDATASIZE
00003f31: DUP4
00003f32: CALLDATACOPY
00003f33: POP
00003f34: SWAP2
00003f35: SWAP3
00003f36: SWAP2
00003f37: POP
00003f38: POP
00003f39: JUMP
00003f3a: JUMPDEST
00003f3b: PUSH1 0x40
00003f3d: MLOAD
00003f3e: DUP1
00003f3f: PUSH1 0x60
00003f41: ADD
00003f42: PUSH1 0x40
00003f44: MSTORE
00003f45: DUP1
00003f46: PUSH1 0x03
00003f48: SWAP1
00003f49: PUSH1 0x20
00003f4b: DUP3
00003f4c: MUL
00003f4d: DUP1
00003f4e: CALLDATASIZE
00003f4f: DUP4
00003f50: CALLDATACOPY
00003f51: POP
00003f52: SWAP2
00003f53: SWAP3
00003f54: SWAP2
00003f55: POP
00003f56: POP
00003f57: JUMP
00003f58: JUMPDEST
00003f59: JUMPDEST
00003f5a: DUP1
00003f5b: DUP3
00003f5c: GT
00003f5d: ISZERO
00003f5e: PUSH2 0x3f18
00003f61: JUMPI
00003f62: DUP1
00003f63: SLOAD
00003f64: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00003f85: AND
00003f86: DUP2
00003f87: SSTORE
00003f88: PUSH1 0x01
00003f8a: ADD
00003f8b: PUSH2 0x3f59
00003f8e: JUMP
00003f8f: JUMPDEST
00003f90: PUSH1 0x00
00003f92: DUP3
00003f93: PUSH1 0x1f
00003f95: DUP4
00003f96: ADD
00003f97: SLT
00003f98: PUSH2 0x3f9f
00003f9b: JUMPI
00003f9c: DUP1
00003f9d: DUP2
00003f9e: REVERT
00003f9f: JUMPDEST
00003fa0: DUP2
00003fa1: CALLDATALOAD
00003fa2: PUSH2 0x3fb2
00003fa5: PUSH2 0x3fad
00003fa8: DUP3
00003fa9: PUSH2 0x4cfa
00003fac: JUMP
00003fad: JUMPDEST
00003fae: PUSH2 0x4cd3
00003fb1: JUMP
00003fb2: JUMPDEST
00003fb3: DUP2
00003fb4: DUP2
00003fb5: MSTORE
00003fb6: SWAP2
00003fb7: POP
00003fb8: PUSH1 0x20
00003fba: DUP1
00003fbb: DUP4
00003fbc: ADD
00003fbd: SWAP1
00003fbe: DUP5
00003fbf: DUP2
00003fc0: ADD
00003fc1: DUP2
00003fc2: DUP5
00003fc3: MUL
00003fc4: DUP7
00003fc5: ADD
00003fc6: DUP3
00003fc7: ADD
00003fc8: DUP8
00003fc9: LT
00003fca: ISZERO
00003fcb: PUSH2 0x3fd3
00003fce: JUMPI
00003fcf: PUSH1 0x00
00003fd1: DUP1
00003fd2: REVERT
00003fd3: JUMPDEST
00003fd4: PUSH1 0x00
00003fd6: JUMPDEST
00003fd7: DUP5
00003fd8: DUP2
00003fd9: LT
00003fda: ISZERO
00003fdb: PUSH2 0x3ffb
00003fde: JUMPI
00003fdf: DUP2
00003fe0: CALLDATALOAD
00003fe1: PUSH2 0x3fe9
00003fe4: DUP2
00003fe5: PUSH2 0x4d46
00003fe8: JUMP
00003fe9: JUMPDEST
00003fea: DUP5
00003feb: MSTORE
00003fec: SWAP3
00003fed: DUP3
00003fee: ADD
00003fef: SWAP3
00003ff0: SWAP1
00003ff1: DUP3
00003ff2: ADD
00003ff3: SWAP1
00003ff4: PUSH1 0x01
00003ff6: ADD
00003ff7: PUSH2 0x3fd6
00003ffa: JUMP
00003ffb: JUMPDEST
00003ffc: POP
00003ffd: POP
00003ffe: POP
00003fff: POP
00004000: POP
00004001: SWAP3
00004002: SWAP2
00004003: POP
00004004: POP
00004005: JUMP
00004006: JUMPDEST
00004007: PUSH1 0x00
00004009: DUP3
0000400a: PUSH1 0x1f
0000400c: DUP4
0000400d: ADD
0000400e: SLT
0000400f: PUSH2 0x4016
00004012: JUMPI
00004013: DUP1
00004014: DUP2
00004015: REVERT
00004016: JUMPDEST
00004017: DUP2
00004018: CALLDATALOAD
00004019: PUSH2 0x4024
0000401c: PUSH2 0x3fad
0000401f: DUP3
00004020: PUSH2 0x4cfa
00004023: JUMP
00004024: JUMPDEST
00004025: DUP2
00004026: DUP2
00004027: MSTORE
00004028: SWAP2
00004029: POP
0000402a: PUSH1 0x20
0000402c: DUP1
0000402d: DUP4
0000402e: ADD
0000402f: SWAP1
00004030: DUP5
00004031: DUP2
00004032: ADD
00004033: DUP2
00004034: DUP5
00004035: MUL
00004036: DUP7
00004037: ADD
00004038: DUP3
00004039: ADD
0000403a: DUP8
0000403b: LT
0000403c: ISZERO
0000403d: PUSH2 0x4045
00004040: JUMPI
00004041: PUSH1 0x00
00004043: DUP1
00004044: REVERT
00004045: JUMPDEST
00004046: PUSH1 0x00
00004048: JUMPDEST
00004049: DUP5
0000404a: DUP2
0000404b: LT
0000404c: ISZERO
0000404d: PUSH2 0x3ffb
00004050: JUMPI
00004051: DUP2
00004052: CALLDATALOAD
00004053: DUP5
00004054: MSTORE
00004055: SWAP3
00004056: DUP3
00004057: ADD
00004058: SWAP3
00004059: SWAP1
0000405a: DUP3
0000405b: ADD
0000405c: SWAP1
0000405d: PUSH1 0x01
0000405f: ADD
00004060: PUSH2 0x4048
00004063: JUMP
00004064: JUMPDEST
00004065: PUSH1 0x00
00004067: DUP3
00004068: PUSH1 0x1f
0000406a: DUP4
0000406b: ADD
0000406c: SLT
0000406d: PUSH2 0x4074
00004070: JUMPI
00004071: DUP1
00004072: DUP2
00004073: REVERT
00004074: JUMPDEST
00004075: DUP2
00004076: CALLDATALOAD
00004077: PUSH8 0xffffffffffffffff
00004080: DUP2
00004081: GT
00004082: ISZERO
00004083: PUSH2 0x408a
00004086: JUMPI
00004087: DUP2
00004088: DUP3
00004089: REVERT
0000408a: JUMPDEST
0000408b: PUSH2 0x40bb
0000408e: PUSH1 0x20
00004090: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000040b1: PUSH1 0x1f
000040b3: DUP5
000040b4: ADD
000040b5: AND
000040b6: ADD
000040b7: PUSH2 0x4cd3
000040ba: JUMP
000040bb: JUMPDEST
000040bc: SWAP2
000040bd: POP
000040be: DUP1
000040bf: DUP3
000040c0: MSTORE
000040c1: DUP4
000040c2: PUSH1 0x20
000040c4: DUP3
000040c5: DUP6
000040c6: ADD
000040c7: ADD
000040c8: GT
000040c9: ISZERO
000040ca: PUSH2 0x40d2
000040cd: JUMPI
000040ce: PUSH1 0x00
000040d0: DUP1
000040d1: REVERT
000040d2: JUMPDEST
000040d3: DUP1
000040d4: PUSH1 0x20
000040d6: DUP5
000040d7: ADD
000040d8: PUSH1 0x20
000040da: DUP5
000040db: ADD
000040dc: CALLDATACOPY
000040dd: PUSH1 0x00
000040df: SWAP1
000040e0: DUP3
000040e1: ADD
000040e2: PUSH1 0x20
000040e4: ADD
000040e5: MSTORE
000040e6: SWAP3
000040e7: SWAP2
000040e8: POP
000040e9: POP
000040ea: JUMP
000040eb: JUMPDEST
000040ec: PUSH1 0x00
000040ee: PUSH1 0x20
000040f0: DUP3
000040f1: DUP5
000040f2: SUB
000040f3: SLT
000040f4: ISZERO
000040f5: PUSH2 0x40fc
000040f8: JUMPI
000040f9: DUP1
000040fa: DUP2
000040fb: REVERT
000040fc: JUMPDEST
000040fd: DUP2
000040fe: CALLDATALOAD
000040ff: PUSH2 0x0ce3
00004102: DUP2
00004103: PUSH2 0x4d46
00004106: JUMP
00004107: JUMPDEST
00004108: PUSH1 0x00
0000410a: PUSH1 0x20
0000410c: DUP3
0000410d: DUP5
0000410e: SUB
0000410f: SLT
00004110: ISZERO
00004111: PUSH2 0x4118
00004114: JUMPI
00004115: DUP1
00004116: DUP2
00004117: REVERT
00004118: JUMPDEST
00004119: DUP2
0000411a: MLOAD
0000411b: PUSH2 0x0ce3
0000411e: DUP2
0000411f: PUSH2 0x4d46
00004122: JUMP
00004123: JUMPDEST
00004124: PUSH1 0x00
00004126: DUP1
00004127: PUSH1 0x40
00004129: DUP4
0000412a: DUP6
0000412b: SUB
0000412c: SLT
0000412d: ISZERO
0000412e: PUSH2 0x4135
00004131: JUMPI
00004132: DUP1
00004133: DUP2
00004134: REVERT
00004135: JUMPDEST
00004136: DUP3
00004137: CALLDATALOAD
00004138: PUSH2 0x4140
0000413b: DUP2
0000413c: PUSH2 0x4d46
0000413f: JUMP
00004140: JUMPDEST
00004141: SWAP2
00004142: POP
00004143: PUSH1 0x20
00004145: DUP4
00004146: ADD
00004147: CALLDATALOAD
00004148: PUSH2 0x4150
0000414b: DUP2
0000414c: PUSH2 0x4d46
0000414f: JUMP
00004150: JUMPDEST
00004151: DUP1
00004152: SWAP2
00004153: POP
00004154: POP
00004155: SWAP3
00004156: POP
00004157: SWAP3
00004158: SWAP1
00004159: POP
0000415a: JUMP
0000415b: JUMPDEST
0000415c: PUSH1 0x00
0000415e: DUP1
0000415f: PUSH1 0x40
00004161: DUP4
00004162: DUP6
00004163: SUB
00004164: SLT
00004165: ISZERO
00004166: PUSH2 0x4135
00004169: JUMPI
0000416a: DUP2
0000416b: DUP3
0000416c: REVERT
0000416d: JUMPDEST
0000416e: PUSH1 0x00
00004170: DUP1
00004171: PUSH1 0x00
00004173: DUP1
00004174: PUSH1 0x00
00004176: PUSH1 0xa0
00004178: DUP7
00004179: DUP9
0000417a: SUB
0000417b: SLT
0000417c: ISZERO
0000417d: PUSH2 0x4184
00004180: JUMPI
00004181: DUP1
00004182: DUP2
00004183: REVERT
00004184: JUMPDEST
00004185: DUP6
00004186: CALLDATALOAD
00004187: PUSH2 0x418f
0000418a: DUP2
0000418b: PUSH2 0x4d46
0000418e: JUMP
0000418f: JUMPDEST
00004190: SWAP5
00004191: POP
00004192: PUSH1 0x20
00004194: DUP7
00004195: ADD
00004196: CALLDATALOAD
00004197: PUSH2 0x419f
0000419a: DUP2
0000419b: PUSH2 0x4d46
0000419e: JUMP
0000419f: JUMPDEST
000041a0: SWAP4
000041a1: POP
000041a2: PUSH1 0x40
000041a4: DUP7
000041a5: ADD
000041a6: CALLDATALOAD
000041a7: PUSH8 0xffffffffffffffff
000041b0: DUP2
000041b1: GT
000041b2: ISZERO
000041b3: PUSH2 0x41ba
000041b6: JUMPI
000041b7: DUP2
000041b8: DUP3
000041b9: REVERT
000041ba: JUMPDEST
000041bb: PUSH2 0x41c6
000041be: DUP9
000041bf: DUP3
000041c0: DUP10
000041c1: ADD
000041c2: PUSH2 0x3f8f
000041c5: JUMP
000041c6: JUMPDEST
000041c7: SWAP4
000041c8: POP
000041c9: POP
000041ca: PUSH1 0x60
000041cc: DUP7
000041cd: ADD
000041ce: CALLDATALOAD
000041cf: PUSH2 0x41d7
000041d2: DUP2
000041d3: PUSH2 0x4d6b
000041d6: JUMP
000041d7: JUMPDEST
000041d8: SWAP2
000041d9: POP
000041da: PUSH1 0x80
000041dc: DUP7
000041dd: ADD
000041de: CALLDATALOAD
000041df: PUSH2 0x41e7
000041e2: DUP2
000041e3: PUSH2 0x4d6b
000041e6: JUMP
000041e7: JUMPDEST
000041e8: DUP1
000041e9: SWAP2
000041ea: POP
000041eb: POP
000041ec: SWAP3
000041ed: SWAP6
000041ee: POP
000041ef: SWAP3
000041f0: SWAP6
000041f1: SWAP1
000041f2: SWAP4
000041f3: POP
000041f4: JUMP
000041f5: JUMPDEST
000041f6: PUSH1 0x00
000041f8: DUP1
000041f9: PUSH1 0x00
000041fb: PUSH1 0x60
000041fd: DUP5
000041fe: DUP7
000041ff: SUB
00004200: SLT
00004201: ISZERO
00004202: PUSH2 0x4209
00004205: JUMPI
00004206: DUP3
00004207: DUP4
00004208: REVERT
00004209: JUMPDEST
0000420a: DUP4
0000420b: CALLDATALOAD
0000420c: PUSH2 0x4214
0000420f: DUP2
00004210: PUSH2 0x4d46
00004213: JUMP
00004214: JUMPDEST
00004215: SWAP3
00004216: POP
00004217: PUSH1 0x20
00004219: DUP5
0000421a: ADD
0000421b: CALLDATALOAD
0000421c: PUSH2 0x4224
0000421f: DUP2
00004220: PUSH2 0x4d46
00004223: JUMP
00004224: JUMPDEST
00004225: SWAP3
00004226: SWAP6
00004227: SWAP3
00004228: SWAP5
00004229: POP
0000422a: POP
0000422b: POP
0000422c: PUSH1 0x40
0000422e: SWAP2
0000422f: SWAP1
00004230: SWAP2
00004231: ADD
00004232: CALLDATALOAD
00004233: SWAP1
00004234: JUMP
00004235: JUMPDEST
00004236: PUSH1 0x00
00004238: DUP1
00004239: PUSH1 0x00
0000423b: DUP1
0000423c: PUSH1 0x80
0000423e: DUP6
0000423f: DUP8
00004240: SUB
00004241: SLT
00004242: ISZERO
00004243: PUSH2 0x424a
00004246: JUMPI
00004247: DUP4
00004248: DUP5
00004249: REVERT
0000424a: JUMPDEST
0000424b: DUP5
0000424c: CALLDATALOAD
0000424d: PUSH2 0x4255
00004250: DUP2
00004251: PUSH2 0x4d46
00004254: JUMP
00004255: JUMPDEST
00004256: SWAP4
00004257: POP
00004258: PUSH1 0x20
0000425a: DUP6
0000425b: ADD
0000425c: CALLDATALOAD
0000425d: PUSH2 0x4265
00004260: DUP2
00004261: PUSH2 0x4d46
00004264: JUMP
00004265: JUMPDEST
00004266: SWAP3
00004267: POP
00004268: PUSH1 0x40
0000426a: DUP6
0000426b: ADD
0000426c: CALLDATALOAD
0000426d: SWAP2
0000426e: POP
0000426f: PUSH1 0x60
00004271: DUP6
00004272: ADD
00004273: CALLDATALOAD
00004274: PUSH2 0x427c
00004277: DUP2
00004278: PUSH2 0x4d46
0000427b: JUMP
0000427c: JUMPDEST
0000427d: SWAP4
0000427e: SWAP7
0000427f: SWAP3
00004280: SWAP6
00004281: POP
00004282: SWAP1
00004283: SWAP4
00004284: POP
00004285: POP
00004286: JUMP
00004287: JUMPDEST
00004288: PUSH1 0x00
0000428a: DUP1
0000428b: PUSH1 0x00
0000428d: DUP1
0000428e: PUSH1 0x00
00004290: PUSH1 0xa0
00004292: DUP7
00004293: DUP9
00004294: SUB
00004295: SLT
00004296: ISZERO
00004297: PUSH2 0x429e
0000429a: JUMPI
0000429b: DUP3
0000429c: DUP4
0000429d: REVERT
0000429e: JUMPDEST
0000429f: DUP6
000042a0: CALLDATALOAD
000042a1: PUSH2 0x42a9
000042a4: DUP2
000042a5: PUSH2 0x4d46
000042a8: JUMP
000042a9: JUMPDEST
000042aa: SWAP5
000042ab: POP
000042ac: PUSH1 0x20
000042ae: DUP7
000042af: ADD
000042b0: CALLDATALOAD
000042b1: PUSH2 0x42b9
000042b4: DUP2
000042b5: PUSH2 0x4d46
000042b8: JUMP
000042b9: JUMPDEST
000042ba: SWAP4
000042bb: POP
000042bc: PUSH1 0x40
000042be: DUP7
000042bf: ADD
000042c0: CALLDATALOAD
000042c1: SWAP3
000042c2: POP
000042c3: PUSH1 0x60
000042c5: DUP7
000042c6: ADD
000042c7: CALLDATALOAD
000042c8: PUSH2 0x42d0
000042cb: DUP2
000042cc: PUSH2 0x4d46
000042cf: JUMP
000042d0: JUMPDEST
000042d1: SWAP2
000042d2: POP
000042d3: PUSH1 0x80
000042d5: DUP7
000042d6: ADD
000042d7: CALLDATALOAD
000042d8: PUSH2 0x41e7
000042db: DUP2
000042dc: PUSH2 0x4d46
000042df: JUMP
000042e0: JUMPDEST
000042e1: PUSH1 0x00
000042e3: DUP1
000042e4: PUSH1 0x00
000042e6: DUP1
000042e7: PUSH1 0x80
000042e9: DUP6
000042ea: DUP8
000042eb: SUB
000042ec: SLT
000042ed: ISZERO
000042ee: PUSH2 0x42f5
000042f1: JUMPI
000042f2: DUP2
000042f3: DUP3
000042f4: REVERT
000042f5: JUMPDEST
000042f6: DUP5
000042f7: CALLDATALOAD
000042f8: PUSH2 0x4300
000042fb: DUP2
000042fc: PUSH2 0x4d46
000042ff: JUMP
00004300: JUMPDEST
00004301: SWAP4
00004302: POP
00004303: PUSH1 0x20
00004305: DUP6
00004306: ADD
00004307: CALLDATALOAD
00004308: PUSH2 0x4310
0000430b: DUP2
0000430c: PUSH2 0x4d46
0000430f: JUMP
00004310: JUMPDEST
00004311: SWAP4
00004312: SWAP7
00004313: SWAP4
00004314: SWAP6
00004315: POP
00004316: POP
00004317: POP
00004318: POP
00004319: PUSH1 0x40
0000431b: DUP3
0000431c: ADD
0000431d: CALLDATALOAD
0000431e: SWAP2
0000431f: PUSH1 0x60
00004321: ADD
00004322: CALLDATALOAD
00004323: SWAP1
00004324: JUMP
00004325: JUMPDEST
00004326: PUSH1 0x00
00004328: DUP1
00004329: PUSH1 0x00
0000432b: DUP1
0000432c: PUSH1 0x00
0000432e: PUSH1 0xa0
00004330: DUP7
00004331: DUP9
00004332: SUB
00004333: SLT
00004334: ISZERO
00004335: PUSH2 0x433c
00004338: JUMPI
00004339: DUP3
0000433a: DUP4
0000433b: REVERT
0000433c: JUMPDEST
0000433d: DUP6
0000433e: CALLDATALOAD
0000433f: PUSH2 0x4347
00004342: DUP2
00004343: PUSH2 0x4d46
00004346: JUMP
00004347: JUMPDEST
00004348: SWAP5
00004349: POP
0000434a: PUSH1 0x20
0000434c: DUP7
0000434d: ADD
0000434e: CALLDATALOAD
0000434f: PUSH2 0x4357
00004352: DUP2
00004353: PUSH2 0x4d46
00004356: JUMP
00004357: JUMPDEST
00004358: SWAP4
00004359: POP
0000435a: PUSH1 0x40
0000435c: DUP7
0000435d: ADD
0000435e: CALLDATALOAD
0000435f: SWAP3
00004360: POP
00004361: PUSH1 0x60
00004363: DUP7
00004364: ADD
00004365: CALLDATALOAD
00004366: SWAP2
00004367: POP
00004368: PUSH1 0x80
0000436a: DUP7
0000436b: ADD
0000436c: CALLDATALOAD
0000436d: PUSH2 0x41e7
00004370: DUP2
00004371: PUSH2 0x4d46
00004374: JUMP
00004375: JUMPDEST
00004376: PUSH1 0x00
00004378: DUP1
00004379: PUSH1 0x40
0000437b: DUP4
0000437c: DUP6
0000437d: SUB
0000437e: SLT
0000437f: ISZERO
00004380: PUSH2 0x4387
00004383: JUMPI
00004384: DUP2
00004385: DUP3
00004386: REVERT
00004387: JUMPDEST
00004388: DUP3
00004389: CALLDATALOAD
0000438a: PUSH2 0x4392
0000438d: DUP2
0000438e: PUSH2 0x4d46
00004391: JUMP
00004392: JUMPDEST
00004393: SWAP2
00004394: POP
00004395: PUSH1 0x20
00004397: DUP4
00004398: ADD
00004399: CALLDATALOAD
0000439a: PUSH8 0xffffffffffffffff
000043a3: DUP2
000043a4: GT
000043a5: ISZERO
000043a6: PUSH2 0x43ad
000043a9: JUMPI
000043aa: DUP2
000043ab: DUP3
000043ac: REVERT
000043ad: JUMPDEST
000043ae: PUSH2 0x43b9
000043b1: DUP6
000043b2: DUP3
000043b3: DUP7
000043b4: ADD
000043b5: PUSH2 0x4006
000043b8: JUMP
000043b9: JUMPDEST
000043ba: SWAP2
000043bb: POP
000043bc: POP
000043bd: SWAP3
000043be: POP
000043bf: SWAP3
000043c0: SWAP1
000043c1: POP
000043c2: JUMP
000043c3: JUMPDEST
000043c4: PUSH1 0x00
000043c6: DUP1
000043c7: PUSH1 0x00
000043c9: PUSH1 0x60
000043cb: DUP5
000043cc: DUP7
000043cd: SUB
000043ce: SLT
000043cf: ISZERO
000043d0: PUSH2 0x43d7
000043d3: JUMPI
000043d4: DUP1
000043d5: DUP2
000043d6: REVERT
000043d7: JUMPDEST
000043d8: DUP4
000043d9: CALLDATALOAD
000043da: PUSH2 0x43e2
000043dd: DUP2
000043de: PUSH2 0x4d46
000043e1: JUMP
000043e2: JUMPDEST
000043e3: SWAP3
000043e4: POP
000043e5: PUSH1 0x20
000043e7: DUP5
000043e8: ADD
000043e9: CALLDATALOAD
000043ea: PUSH8 0xffffffffffffffff
000043f3: DUP2
000043f4: GT
000043f5: ISZERO
000043f6: PUSH2 0x43fd
000043f9: JUMPI
000043fa: DUP2
000043fb: DUP3
000043fc: REVERT
000043fd: JUMPDEST
000043fe: PUSH2 0x4409
00004401: DUP7
00004402: DUP3
00004403: DUP8
00004404: ADD
00004405: PUSH2 0x4006
00004408: JUMP
00004409: JUMPDEST
0000440a: SWAP3
0000440b: POP
0000440c: POP
0000440d: PUSH1 0x40
0000440f: DUP5
00004410: ADD
00004411: CALLDATALOAD
00004412: PUSH2 0x441a
00004415: DUP2
00004416: PUSH2 0x4d46
00004419: JUMP
0000441a: JUMPDEST
0000441b: DUP1
0000441c: SWAP2
0000441d: POP
0000441e: POP
0000441f: SWAP3
00004420: POP
00004421: SWAP3
00004422: POP
00004423: SWAP3
00004424: JUMP
00004425: JUMPDEST
00004426: PUSH1 0x00
00004428: DUP1
00004429: PUSH1 0x40
0000442b: DUP4
0000442c: DUP6
0000442d: SUB
0000442e: SLT
0000442f: ISZERO
00004430: PUSH2 0x4437
00004433: JUMPI
00004434: DUP2
00004435: DUP3
00004436: REVERT
00004437: JUMPDEST
00004438: DUP3
00004439: CALLDATALOAD
0000443a: PUSH2 0x4442
0000443d: DUP2
0000443e: PUSH2 0x4d46
00004441: JUMP
00004442: JUMPDEST
00004443: SWAP5
00004444: PUSH1 0x20
00004446: SWAP4
00004447: SWAP1
00004448: SWAP4
00004449: ADD
0000444a: CALLDATALOAD
0000444b: SWAP4
0000444c: POP
0000444d: POP
0000444e: POP
0000444f: JUMP
00004450: JUMPDEST
00004451: PUSH1 0x00
00004453: DUP1
00004454: PUSH1 0x00
00004456: PUSH1 0x60
00004458: DUP5
00004459: DUP7
0000445a: SUB
0000445b: SLT
0000445c: ISZERO
0000445d: PUSH2 0x4464
00004460: JUMPI
00004461: DUP1
00004462: DUP2
00004463: REVERT
00004464: JUMPDEST
00004465: DUP4
00004466: CALLDATALOAD
00004467: PUSH2 0x446f
0000446a: DUP2
0000446b: PUSH2 0x4d46
0000446e: JUMP
0000446f: JUMPDEST
00004470: SWAP3
00004471: POP
00004472: PUSH1 0x20
00004474: DUP5
00004475: ADD
00004476: CALLDATALOAD
00004477: SWAP2
00004478: POP
00004479: PUSH1 0x40
0000447b: DUP5
0000447c: ADD
0000447d: CALLDATALOAD
0000447e: PUSH2 0x441a
00004481: DUP2
00004482: PUSH2 0x4d46
00004485: JUMP
00004486: JUMPDEST
00004487: PUSH1 0x00
00004489: DUP1
0000448a: PUSH1 0x00
0000448c: PUSH1 0x60
0000448e: DUP5
0000448f: DUP7
00004490: SUB
00004491: SLT
00004492: ISZERO
00004493: PUSH2 0x449a
00004496: JUMPI
00004497: DUP1
00004498: DUP2
00004499: REVERT
0000449a: JUMPDEST
0000449b: DUP4
0000449c: CALLDATALOAD
0000449d: PUSH2 0x44a5
000044a0: DUP2
000044a1: PUSH2 0x4d46
000044a4: JUMP
000044a5: JUMPDEST
000044a6: SWAP3
000044a7: POP
000044a8: PUSH1 0x20
000044aa: DUP5
000044ab: ADD
000044ac: CALLDATALOAD
000044ad: SWAP2
000044ae: POP
000044af: PUSH1 0x40
000044b1: DUP5
000044b2: ADD
000044b3: CALLDATALOAD
000044b4: PUSH8 0xffffffffffffffff
000044bd: DUP2
000044be: GT
000044bf: ISZERO
000044c0: PUSH2 0x44c7
000044c3: JUMPI
000044c4: DUP2
000044c5: DUP3
000044c6: REVERT
000044c7: JUMPDEST
000044c8: PUSH2 0x44d3
000044cb: DUP7
000044cc: DUP3
000044cd: DUP8
000044ce: ADD
000044cf: PUSH2 0x4064
000044d2: JUMP
000044d3: JUMPDEST
000044d4: SWAP2
000044d5: POP
000044d6: POP
000044d7: SWAP3
000044d8: POP
000044d9: SWAP3
000044da: POP
000044db: SWAP3
000044dc: JUMP
000044dd: JUMPDEST
000044de: PUSH1 0x00
000044e0: DUP1
000044e1: PUSH1 0x00
000044e3: PUSH1 0x60
000044e5: DUP5
000044e6: DUP7
000044e7: SUB
000044e8: SLT
000044e9: ISZERO
000044ea: PUSH2 0x44f1
000044ed: JUMPI
000044ee: DUP1
000044ef: DUP2
000044f0: REVERT
000044f1: JUMPDEST
000044f2: DUP4
000044f3: CALLDATALOAD
000044f4: PUSH8 0xffffffffffffffff
000044fd: DUP1
000044fe: DUP3
000044ff: GT
00004500: ISZERO
00004501: PUSH2 0x4508
00004504: JUMPI
00004505: DUP3
00004506: DUP4
00004507: REVERT
00004508: JUMPDEST
00004509: PUSH2 0x4514
0000450c: DUP8
0000450d: DUP4
0000450e: DUP9
0000450f: ADD
00004510: PUSH2 0x3f8f
00004513: JUMP
00004514: JUMPDEST
00004515: SWAP5
00004516: POP
00004517: PUSH1 0x20
00004519: SWAP2
0000451a: POP
0000451b: DUP2
0000451c: DUP7
0000451d: ADD
0000451e: CALLDATALOAD
0000451f: DUP2
00004520: DUP2
00004521: GT
00004522: ISZERO
00004523: PUSH2 0x452a
00004526: JUMPI
00004527: DUP4
00004528: DUP5
00004529: REVERT
0000452a: JUMPDEST
0000452b: PUSH2 0x4536
0000452e: DUP9
0000452f: DUP3
00004530: DUP10
00004531: ADD
00004532: PUSH2 0x4006
00004535: JUMP
00004536: JUMPDEST
00004537: SWAP5
00004538: POP
00004539: POP
0000453a: PUSH1 0x40
0000453c: DUP7
0000453d: ADD
0000453e: CALLDATALOAD
0000453f: DUP2
00004540: DUP2
00004541: GT
00004542: ISZERO
00004543: PUSH2 0x454a
00004546: JUMPI
00004547: DUP4
00004548: DUP5
00004549: REVERT
0000454a: JUMPDEST
0000454b: DUP7
0000454c: ADD
0000454d: SWAP1
0000454e: POP
0000454f: PUSH1 0x1f
00004551: DUP2
00004552: ADD
00004553: DUP8
00004554: SGT
00004555: PUSH2 0x455c
00004558: JUMPI
00004559: DUP3
0000455a: DUP4
0000455b: REVERT
0000455c: JUMPDEST
0000455d: DUP1
0000455e: CALLDATALOAD
0000455f: PUSH2 0x456a
00004562: PUSH2 0x3fad
00004565: DUP3
00004566: PUSH2 0x4cfa
00004569: JUMP
0000456a: JUMPDEST
0000456b: DUP2
0000456c: DUP2
0000456d: MSTORE
0000456e: DUP4
0000456f: DUP2
00004570: ADD
00004571: SWAP1
00004572: DUP4
00004573: DUP6
00004574: ADD
00004575: DUP7
00004576: JUMPDEST
00004577: DUP5
00004578: DUP2
00004579: LT
0000457a: ISZERO
0000457b: PUSH2 0x459f
0000457e: JUMPI
0000457f: PUSH2 0x458d
00004582: DUP13
00004583: DUP9
00004584: DUP5
00004585: CALLDATALOAD
00004586: DUP10
00004587: ADD
00004588: ADD
00004589: PUSH2 0x4064
0000458c: JUMP
0000458d: JUMPDEST
0000458e: DUP5
0000458f: MSTORE
00004590: SWAP3
00004591: DUP7
00004592: ADD
00004593: SWAP3
00004594: SWAP1
00004595: DUP7
00004596: ADD
00004597: SWAP1
00004598: PUSH1 0x01
0000459a: ADD
0000459b: PUSH2 0x4576
0000459e: JUMP
0000459f: JUMPDEST
000045a0: POP
000045a1: POP
000045a2: DUP1
000045a3: SWAP6
000045a4: POP
000045a5: POP
000045a6: POP
000045a7: POP
000045a8: POP
000045a9: POP
000045aa: SWAP3
000045ab: POP
000045ac: SWAP3
000045ad: POP
000045ae: SWAP3
000045af: JUMP
000045b0: JUMPDEST
000045b1: PUSH1 0x00
000045b3: PUSH1 0x20
000045b5: DUP3
000045b6: DUP5
000045b7: SUB
000045b8: SLT
000045b9: ISZERO
000045ba: PUSH2 0x45c1
000045bd: JUMPI
000045be: DUP1
000045bf: DUP2
000045c0: REVERT
000045c1: JUMPDEST
000045c2: DUP2
000045c3: MLOAD
000045c4: PUSH2 0x0ce3
000045c7: DUP2
000045c8: PUSH2 0x4d6b
000045cb: JUMP
000045cc: JUMPDEST
000045cd: PUSH1 0x00
000045cf: PUSH1 0xc0
000045d1: DUP3
000045d2: DUP5
000045d3: SUB
000045d4: SLT
000045d5: ISZERO
000045d6: PUSH2 0x45dd
000045d9: JUMPI
000045da: DUP1
000045db: DUP2
000045dc: REVERT
000045dd: JUMPDEST
000045de: PUSH2 0x45e7
000045e1: PUSH1 0xc0
000045e3: PUSH2 0x4cd3
000045e6: JUMP
000045e7: JUMPDEST
000045e8: DUP3
000045e9: MLOAD
000045ea: PUSH2 0x45f2
000045ed: DUP2
000045ee: PUSH2 0x4d46
000045f1: JUMP
000045f2: JUMPDEST
000045f3: DUP2
000045f4: MSTORE
000045f5: PUSH1 0x20
000045f7: DUP4
000045f8: ADD
000045f9: MLOAD
000045fa: PUSH2 0x4602
000045fd: DUP2
000045fe: PUSH2 0x4d46
00004601: JUMP
00004602: JUMPDEST
00004603: PUSH1 0x20
00004605: DUP3
00004606: ADD
00004607: MSTORE
00004608: PUSH1 0x40
0000460a: DUP4
0000460b: ADD
0000460c: MLOAD
0000460d: PUSH2 0x4615
00004610: DUP2
00004611: PUSH2 0x4d46
00004614: JUMP
00004615: JUMPDEST
00004616: PUSH1 0x40
00004618: DUP3
00004619: ADD
0000461a: MSTORE
0000461b: PUSH1 0x60
0000461d: DUP4
0000461e: ADD
0000461f: MLOAD
00004620: PUSH2 0x4628
00004623: DUP2
00004624: PUSH2 0x4d46
00004627: JUMP
00004628: JUMPDEST
00004629: PUSH1 0x60
0000462b: DUP3
0000462c: ADD
0000462d: MSTORE
0000462e: PUSH1 0x80
00004630: DUP4
00004631: ADD
00004632: MLOAD
00004633: PUSH2 0x463b
00004636: DUP2
00004637: PUSH2 0x4d46
0000463a: JUMP
0000463b: JUMPDEST
0000463c: PUSH1 0x80
0000463e: DUP3
0000463f: ADD
00004640: MSTORE
00004641: PUSH1 0xa0
00004643: DUP4
00004644: ADD
00004645: MLOAD
00004646: PUSH2 0x464e
00004649: DUP2
0000464a: PUSH2 0x4d6b
0000464d: JUMP
0000464e: JUMPDEST
0000464f: PUSH1 0xa0
00004651: DUP3
00004652: ADD
00004653: MSTORE
00004654: SWAP4
00004655: SWAP3
00004656: POP
00004657: POP
00004658: POP
00004659: JUMP
0000465a: JUMPDEST
0000465b: PUSH1 0x00
0000465d: PUSH1 0x20
0000465f: DUP3
00004660: DUP5
00004661: SUB
00004662: SLT
00004663: ISZERO
00004664: PUSH2 0x466b
00004667: JUMPI
00004668: DUP1
00004669: DUP2
0000466a: REVERT
0000466b: JUMPDEST
0000466c: POP
0000466d: CALLDATALOAD
0000466e: SWAP2
0000466f: SWAP1
00004670: POP
00004671: JUMP
00004672: JUMPDEST
00004673: PUSH1 0x00
00004675: PUSH1 0x20
00004677: DUP3
00004678: DUP5
00004679: SUB
0000467a: SLT
0000467b: ISZERO
0000467c: PUSH2 0x4683
0000467f: JUMPI
00004680: DUP1
00004681: DUP2
00004682: REVERT
00004683: JUMPDEST
00004684: POP
00004685: MLOAD
00004686: SWAP2
00004687: SWAP1
00004688: POP
00004689: JUMP
0000468a: JUMPDEST
0000468b: PUSH1 0x00
0000468d: DUP1
0000468e: PUSH1 0x40
00004690: DUP4
00004691: DUP6
00004692: SUB
00004693: SLT
00004694: ISZERO
00004695: PUSH2 0x469c
00004698: JUMPI
00004699: DUP2
0000469a: DUP3
0000469b: REVERT
0000469c: JUMPDEST
0000469d: POP
0000469e: POP
0000469f: DUP1
000046a0: CALLDATALOAD
000046a1: SWAP3
000046a2: PUSH1 0x20
000046a4: SWAP1
000046a5: SWAP2
000046a6: ADD
000046a7: CALLDATALOAD
000046a8: SWAP2
000046a9: POP
000046aa: JUMP
000046ab: JUMPDEST
000046ac: DUP1
000046ad: PUSH1 0x00
000046af: JUMPDEST
000046b0: PUSH1 0x02
000046b2: DUP2
000046b3: LT
000046b4: ISZERO
000046b5: PUSH2 0x0ac8
000046b8: JUMPI
000046b9: DUP2
000046ba: MLOAD
000046bb: DUP5
000046bc: MSTORE
000046bd: PUSH1 0x20
000046bf: SWAP4
000046c0: DUP5
000046c1: ADD
000046c2: SWAP4
000046c3: SWAP1
000046c4: SWAP2
000046c5: ADD
000046c6: SWAP1
000046c7: PUSH1 0x01
000046c9: ADD
000046ca: PUSH2 0x46af
000046cd: JUMP
000046ce: JUMPDEST
000046cf: DUP1
000046d0: PUSH1 0x00
000046d2: JUMPDEST
000046d3: PUSH1 0x03
000046d5: DUP2
000046d6: LT
000046d7: ISZERO
000046d8: PUSH2 0x0ac8
000046db: JUMPI
000046dc: DUP2
000046dd: MLOAD
000046de: DUP5
000046df: MSTORE
000046e0: PUSH1 0x20
000046e2: SWAP4
000046e3: DUP5
000046e4: ADD
000046e5: SWAP4
000046e6: SWAP1
000046e7: SWAP2
000046e8: ADD
000046e9: SWAP1
000046ea: PUSH1 0x01
000046ec: ADD
000046ed: PUSH2 0x46d2
000046f0: JUMP
000046f1: JUMPDEST
000046f2: PUSH1 0x00
000046f4: DUP3
000046f5: MLOAD
000046f6: PUSH2 0x4703
000046f9: DUP2
000046fa: DUP5
000046fb: PUSH1 0x20
000046fd: DUP8
000046fe: ADD
000046ff: PUSH2 0x4d1a
00004702: JUMP
00004703: JUMPDEST
00004704: SWAP2
00004705: SWAP1
00004706: SWAP2
00004707: ADD
00004708: SWAP3
00004709: SWAP2
0000470a: POP
0000470b: POP
0000470c: JUMP
0000470d: JUMPDEST
0000470e: SWAP1
0000470f: JUMP
00004710: JUMPDEST
00004711: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004726: SWAP2
00004727: SWAP1
00004728: SWAP2
00004729: AND
0000472a: DUP2
0000472b: MSTORE
0000472c: PUSH1 0x20
0000472e: ADD
0000472f: SWAP1
00004730: JUMP
00004731: JUMPDEST
00004732: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004747: SWAP3
00004748: DUP4
00004749: AND
0000474a: DUP2
0000474b: MSTORE
0000474c: SWAP2
0000474d: AND
0000474e: PUSH1 0x20
00004750: DUP3
00004751: ADD
00004752: MSTORE
00004753: PUSH1 0x40
00004755: ADD
00004756: SWAP1
00004757: JUMP
00004758: JUMPDEST
00004759: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000476e: SWAP3
0000476f: SWAP1
00004770: SWAP3
00004771: AND
00004772: DUP3
00004773: MSTORE
00004774: PUSH1 0x20
00004776: DUP3
00004777: ADD
00004778: MSTORE
00004779: PUSH1 0x40
0000477b: ADD
0000477c: SWAP1
0000477d: JUMP
0000477e: JUMPDEST
0000477f: PUSH1 0x60
00004781: DUP2
00004782: ADD
00004783: PUSH2 0x478c
00004786: DUP3
00004787: DUP6
00004788: PUSH2 0x46ab
0000478b: JUMP
0000478c: JUMPDEST
0000478d: DUP3
0000478e: PUSH1 0x40
00004790: DUP4
00004791: ADD
00004792: MSTORE
00004793: SWAP4
00004794: SWAP3
00004795: POP
00004796: POP
00004797: POP
00004798: JUMP
00004799: JUMPDEST
0000479a: PUSH1 0x80
0000479c: DUP2
0000479d: ADD
0000479e: PUSH2 0x47a7
000047a1: DUP3
000047a2: DUP7
000047a3: PUSH2 0x46ab
000047a6: JUMP
000047a7: JUMPDEST
000047a8: DUP4
000047a9: PUSH1 0x40
000047ab: DUP4
000047ac: ADD
000047ad: MSTORE
000047ae: DUP3
000047af: ISZERO
000047b0: ISZERO
000047b1: PUSH1 0x60
000047b3: DUP4
000047b4: ADD
000047b5: MSTORE
000047b6: SWAP5
000047b7: SWAP4
000047b8: POP
000047b9: POP
000047ba: POP
000047bb: POP
000047bc: JUMP
000047bd: JUMPDEST
000047be: PUSH1 0x80
000047c0: DUP2
000047c1: ADD
000047c2: PUSH2 0x47cb
000047c5: DUP3
000047c6: DUP6
000047c7: PUSH2 0x46ce
000047ca: JUMP
000047cb: JUMPDEST
000047cc: DUP3
000047cd: PUSH1 0x60
000047cf: DUP4
000047d0: ADD
000047d1: MSTORE
000047d2: SWAP4
000047d3: SWAP3
000047d4: POP
000047d5: POP
000047d6: POP
000047d7: JUMP
000047d8: JUMPDEST
000047d9: PUSH1 0xa0
000047db: DUP2
000047dc: ADD
000047dd: PUSH2 0x47e6
000047e0: DUP3
000047e1: DUP7
000047e2: PUSH2 0x46ce
000047e5: JUMP
000047e6: JUMPDEST
000047e7: DUP4
000047e8: PUSH1 0x60
000047ea: DUP4
000047eb: ADD
000047ec: MSTORE
000047ed: DUP3
000047ee: ISZERO
000047ef: ISZERO
000047f0: PUSH1 0x80
000047f2: DUP4
000047f3: ADD
000047f4: MSTORE
000047f5: SWAP5
000047f6: SWAP4
000047f7: POP
000047f8: POP
000047f9: POP
000047fa: POP
000047fb: JUMP
000047fc: JUMPDEST
000047fd: PUSH1 0x20
000047ff: DUP1
00004800: DUP3
00004801: MSTORE
00004802: DUP3
00004803: MLOAD
00004804: DUP3
00004805: DUP3
00004806: ADD
00004807: DUP2
00004808: SWAP1
00004809: MSTORE
0000480a: PUSH1 0x00
0000480c: SWAP2
0000480d: SWAP1
0000480e: DUP5
0000480f: DUP3
00004810: ADD
00004811: SWAP1
00004812: PUSH1 0x40
00004814: DUP6
00004815: ADD
00004816: SWAP1
00004817: DUP5
00004818: JUMPDEST
00004819: DUP2
0000481a: DUP2
0000481b: LT
0000481c: ISZERO
0000481d: PUSH2 0x4834
00004820: JUMPI
00004821: DUP4
00004822: MLOAD
00004823: DUP4
00004824: MSTORE
00004825: SWAP3
00004826: DUP5
00004827: ADD
00004828: SWAP3
00004829: SWAP2
0000482a: DUP5
0000482b: ADD
0000482c: SWAP2
0000482d: PUSH1 0x01
0000482f: ADD
00004830: PUSH2 0x4818
00004833: JUMP
00004834: JUMPDEST
00004835: POP
00004836: SWAP1
00004837: SWAP7
00004838: SWAP6
00004839: POP
0000483a: POP
0000483b: POP
0000483c: POP
0000483d: POP
0000483e: POP
0000483f: JUMP
00004840: JUMPDEST
00004841: SWAP1
00004842: ISZERO
00004843: ISZERO
00004844: DUP2
00004845: MSTORE
00004846: PUSH1 0x20
00004848: ADD
00004849: SWAP1
0000484a: JUMP
0000484b: JUMPDEST
0000484c: PUSH1 0x00
0000484e: PUSH1 0x20
00004850: DUP3
00004851: MSTORE
00004852: DUP3
00004853: MLOAD
00004854: DUP1
00004855: PUSH1 0x20
00004857: DUP5
00004858: ADD
00004859: MSTORE
0000485a: PUSH2 0x486a
0000485d: DUP2
0000485e: PUSH1 0x40
00004860: DUP6
00004861: ADD
00004862: PUSH1 0x20
00004864: DUP8
00004865: ADD
00004866: PUSH2 0x4d1a
00004869: JUMP
0000486a: JUMPDEST
0000486b: PUSH1 0x1f
0000486d: ADD
0000486e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
0000488f: AND
00004890: SWAP2
00004891: SWAP1
00004892: SWAP2
00004893: ADD
00004894: PUSH1 0x40
00004896: ADD
00004897: SWAP3
00004898: SWAP2
00004899: POP
0000489a: POP
0000489b: JUMP
0000489c: JUMPDEST
0000489d: PUSH1 0x20
0000489f: DUP1
000048a0: DUP3
000048a1: MSTORE
000048a2: PUSH1 0x17
000048a4: SWAP1
000048a5: DUP3
000048a6: ADD
000048a7: MSTORE
000048a8: PUSH32 0x4e6174697665207472616e73666572206661696c65642e000000000000000000
000048c9: PUSH1 0x40
000048cb: DUP3
000048cc: ADD
000048cd: MSTORE
000048ce: PUSH1 0x60
000048d0: ADD
000048d1: SWAP1
000048d2: JUMP
000048d3: JUMPDEST
000048d4: PUSH1 0x20
000048d6: DUP1
000048d7: DUP3
000048d8: MSTORE
000048d9: PUSH1 0x0f
000048db: SWAP1
000048dc: DUP3
000048dd: ADD
000048de: MSTORE
000048df: PUSH32 0x496e76616c696420616464726573730000000000000000000000000000000000
00004900: PUSH1 0x40
00004902: DUP3
00004903: ADD
00004904: MSTORE
00004905: PUSH1 0x60
00004907: ADD
00004908: SWAP1
00004909: JUMP
0000490a: JUMPDEST
0000490b: PUSH1 0x20
0000490d: DUP1
0000490e: DUP3
0000490f: MSTORE
00004910: PUSH1 0x0c
00004912: SWAP1
00004913: DUP3
00004914: ADD
00004915: MSTORE
00004916: PUSH32 0x4d697373696e6720636f696e0000000000000000000000000000000000000000
00004937: PUSH1 0x40
00004939: DUP3
0000493a: ADD
0000493b: MSTORE
0000493c: PUSH1 0x60
0000493e: ADD
0000493f: SWAP1
00004940: JUMP
00004941: JUMPDEST
00004942: PUSH1 0x20
00004944: DUP1
00004945: DUP3
00004946: MSTORE
00004947: PUSH1 0x26
00004949: SWAP1
0000494a: DUP3
0000494b: ADD
0000494c: MSTORE
0000494d: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061
0000496e: PUSH1 0x40
00004970: DUP3
00004971: ADD
00004972: MSTORE
00004973: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000
00004994: PUSH1 0x60
00004996: DUP3
00004997: ADD
00004998: MSTORE
00004999: PUSH1 0x80
0000499b: ADD
0000499c: SWAP1
0000499d: JUMP
0000499e: JUMPDEST
0000499f: PUSH1 0x20
000049a1: DUP1
000049a2: DUP3
000049a3: MSTORE
000049a4: PUSH1 0x1e
000049a6: SWAP1
000049a7: DUP3
000049a8: ADD
000049a9: MSTORE
000049aa: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000
000049cb: PUSH1 0x40
000049cd: DUP3
000049ce: ADD
000049cf: MSTORE
000049d0: PUSH1 0x60
000049d2: ADD
000049d3: SWAP1
000049d4: JUMP
000049d5: JUMPDEST
000049d6: PUSH1 0x20
000049d8: DUP1
000049d9: DUP3
000049da: MSTORE
000049db: PUSH1 0x12
000049dd: SWAP1
000049de: DUP3
000049df: ADD
000049e0: MSTORE
000049e1: PUSH32 0x496e73756666696369656e742066756e64730000000000000000000000000000
00004a02: PUSH1 0x40
00004a04: DUP3
00004a05: ADD
00004a06: MSTORE
00004a07: PUSH1 0x60
00004a09: ADD
00004a0a: SWAP1
00004a0b: JUMP
00004a0c: JUMPDEST
00004a0d: PUSH1 0x20
00004a0f: DUP1
00004a10: DUP3
00004a11: MSTORE
00004a12: PUSH1 0x16
00004a14: SWAP1
00004a15: DUP3
00004a16: ADD
00004a17: MSTORE
00004a18: PUSH32 0x4d697373696e6720696d706c656d656e746174696f6e00000000000000000000
00004a39: PUSH1 0x40
00004a3b: DUP3
00004a3c: ADD
00004a3d: MSTORE
00004a3e: PUSH1 0x60
00004a40: ADD
00004a41: SWAP1
00004a42: JUMP
00004a43: JUMPDEST
00004a44: PUSH1 0x20
00004a46: DUP1
00004a47: DUP3
00004a48: MSTORE
00004a49: DUP2
00004a4a: DUP2
00004a4b: ADD
00004a4c: MSTORE
00004a4d: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
00004a6e: PUSH1 0x40
00004a70: DUP3
00004a71: ADD
00004a72: MSTORE
00004a73: PUSH1 0x60
00004a75: ADD
00004a76: SWAP1
00004a77: JUMP
00004a78: JUMPDEST
00004a79: PUSH1 0x20
00004a7b: DUP1
00004a7c: DUP3
00004a7d: MSTORE
00004a7e: PUSH1 0x26
00004a80: SWAP1
00004a81: DUP3
00004a82: ADD
00004a83: MSTORE
00004a84: PUSH32 0x45786563757461626c653a2063616c6c6572206973206e6f7420746865206578
00004aa5: PUSH1 0x40
00004aa7: DUP3
00004aa8: ADD
00004aa9: MSTORE
00004aaa: PUSH32 0x656375746f720000000000000000000000000000000000000000000000000000
00004acb: PUSH1 0x60
00004acd: DUP3
00004ace: ADD
00004acf: MSTORE
00004ad0: PUSH1 0x80
00004ad2: ADD
00004ad3: SWAP1
00004ad4: JUMP
00004ad5: JUMPDEST
00004ad6: PUSH1 0x20
00004ad8: DUP1
00004ad9: DUP3
00004ada: MSTORE
00004adb: PUSH1 0x1d
00004add: SWAP1
00004ade: DUP3
00004adf: ADD
00004ae0: MSTORE
00004ae1: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
00004b02: PUSH1 0x40
00004b04: DUP3
00004b05: ADD
00004b06: MSTORE
00004b07: PUSH1 0x60
00004b09: ADD
00004b0a: SWAP1
00004b0b: JUMP
00004b0c: JUMPDEST
00004b0d: PUSH1 0x20
00004b0f: DUP1
00004b10: DUP3
00004b11: MSTORE
00004b12: PUSH1 0x2a
00004b14: SWAP1
00004b15: DUP3
00004b16: ADD
00004b17: MSTORE
00004b18: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
00004b39: PUSH1 0x40
00004b3b: DUP3
00004b3c: ADD
00004b3d: MSTORE
00004b3e: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000
00004b5f: PUSH1 0x60
00004b61: DUP3
00004b62: ADD
00004b63: MSTORE
00004b64: PUSH1 0x80
00004b66: ADD
00004b67: SWAP1
00004b68: JUMP
00004b69: JUMPDEST
00004b6a: PUSH1 0x20
00004b6c: DUP1
00004b6d: DUP3
00004b6e: MSTORE
00004b6f: PUSH1 0x36
00004b71: SWAP1
00004b72: DUP3
00004b73: ADD
00004b74: MSTORE
00004b75: PUSH32 0x5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f
00004b96: PUSH1 0x40
00004b98: DUP3
00004b99: ADD
00004b9a: MSTORE
00004b9b: PUSH32 0x20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000
00004bbc: PUSH1 0x60
00004bbe: DUP3
00004bbf: ADD
00004bc0: MSTORE
00004bc1: PUSH1 0x80
00004bc3: ADD
00004bc4: SWAP1
00004bc5: JUMP
00004bc6: JUMPDEST
00004bc7: SWAP1
00004bc8: DUP2
00004bc9: MSTORE
00004bca: PUSH1 0x20
00004bcc: ADD
00004bcd: SWAP1
00004bce: JUMP
00004bcf: JUMPDEST
00004bd0: DUP3
00004bd1: DUP2
00004bd2: MSTORE
00004bd3: PUSH1 0x60
00004bd5: DUP2
00004bd6: ADD
00004bd7: PUSH2 0x0ce3
00004bda: PUSH1 0x20
00004bdc: DUP4
00004bdd: ADD
00004bde: DUP5
00004bdf: PUSH2 0x46ab
00004be2: JUMP
00004be3: JUMPDEST
00004be4: DUP4
00004be5: DUP2
00004be6: MSTORE
00004be7: PUSH1 0x80
00004be9: DUP2
00004bea: ADD
00004beb: PUSH2 0x4bf7
00004bee: PUSH1 0x20
00004bf0: DUP4
00004bf1: ADD
00004bf2: DUP6
00004bf3: PUSH2 0x46ab
00004bf6: JUMP
00004bf7: JUMPDEST
00004bf8: DUP3
00004bf9: ISZERO
00004bfa: ISZERO
00004bfb: PUSH1 0x60
00004bfd: DUP4
00004bfe: ADD
00004bff: MSTORE
00004c00: SWAP5
00004c01: SWAP4
00004c02: POP
00004c03: POP
00004c04: POP
00004c05: POP
00004c06: JUMP
00004c07: JUMPDEST
00004c08: DUP3
00004c09: DUP2
00004c0a: MSTORE
00004c0b: PUSH1 0x80
00004c0d: DUP2
00004c0e: ADD
00004c0f: PUSH2 0x0ce3
00004c12: PUSH1 0x20
00004c14: DUP4
00004c15: ADD
00004c16: DUP5
00004c17: PUSH2 0x46ce
00004c1a: JUMP
00004c1b: JUMPDEST
00004c1c: DUP4
00004c1d: DUP2
00004c1e: MSTORE
00004c1f: PUSH1 0xa0
00004c21: DUP2
00004c22: ADD
00004c23: PUSH2 0x4c2f
00004c26: PUSH1 0x20
00004c28: DUP4
00004c29: ADD
00004c2a: DUP6
00004c2b: PUSH2 0x46ce
00004c2e: JUMP
00004c2f: JUMPDEST
00004c30: DUP3
00004c31: ISZERO
00004c32: ISZERO
00004c33: PUSH1 0x80
00004c35: DUP4
00004c36: ADD
00004c37: MSTORE
00004c38: SWAP5
00004c39: SWAP4
00004c3a: POP
00004c3b: POP
00004c3c: POP
00004c3d: POP
00004c3e: JUMP
00004c3f: JUMPDEST
00004c40: SWAP2
00004c41: DUP3
00004c42: MSTORE
00004c43: ISZERO
00004c44: ISZERO
00004c45: PUSH1 0x20
00004c47: DUP3
00004c48: ADD
00004c49: MSTORE
00004c4a: PUSH1 0x40
00004c4c: ADD
00004c4d: SWAP1
00004c4e: JUMP
00004c4f: JUMPDEST
00004c50: SWAP3
00004c51: DUP4
00004c52: MSTORE
00004c53: PUSH1 0x0f
00004c55: SWAP2
00004c56: SWAP1
00004c57: SWAP2
00004c58: SIGNEXTEND
00004c59: PUSH1 0x20
00004c5b: DUP4
00004c5c: ADD
00004c5d: MSTORE
00004c5e: PUSH1 0x40
00004c60: DUP3
00004c61: ADD
00004c62: MSTORE
00004c63: PUSH1 0x60
00004c65: ADD
00004c66: SWAP1
00004c67: JUMP
00004c68: JUMPDEST
00004c69: SWAP4
00004c6a: DUP5
00004c6b: MSTORE
00004c6c: PUSH1 0x0f
00004c6e: SWAP3
00004c6f: SWAP1
00004c70: SWAP3
00004c71: SIGNEXTEND
00004c72: PUSH1 0x20
00004c74: DUP5
00004c75: ADD
00004c76: MSTORE
00004c77: PUSH1 0x40
00004c79: DUP4
00004c7a: ADD
00004c7b: MSTORE
00004c7c: ISZERO
00004c7d: ISZERO
00004c7e: PUSH1 0x60
00004c80: DUP3
00004c81: ADD
00004c82: MSTORE
00004c83: PUSH1 0x80
00004c85: ADD
00004c86: SWAP1
00004c87: JUMP
00004c88: JUMPDEST
00004c89: SWAP3
00004c8a: DUP4
00004c8b: MSTORE
00004c8c: PUSH1 0x20
00004c8e: DUP4
00004c8f: ADD
00004c90: SWAP2
00004c91: SWAP1
00004c92: SWAP2
00004c93: MSTORE
00004c94: ISZERO
00004c95: ISZERO
00004c96: PUSH1 0x40
00004c98: DUP3
00004c99: ADD
00004c9a: MSTORE
00004c9b: PUSH1 0x60
00004c9d: ADD
00004c9e: SWAP1
00004c9f: JUMP
00004ca0: JUMPDEST
00004ca1: SWAP3
00004ca2: DUP4
00004ca3: MSTORE
00004ca4: PUSH1 0x20
00004ca6: DUP4
00004ca7: ADD
00004ca8: SWAP2
00004ca9: SWAP1
00004caa: SWAP2
00004cab: MSTORE
00004cac: PUSH1 0x40
00004cae: DUP3
00004caf: ADD
00004cb0: MSTORE
00004cb1: PUSH1 0x60
00004cb3: ADD
00004cb4: SWAP1
00004cb5: JUMP
00004cb6: JUMPDEST
00004cb7: SWAP4
00004cb8: DUP5
00004cb9: MSTORE
00004cba: PUSH1 0x20
00004cbc: DUP5
00004cbd: ADD
00004cbe: SWAP3
00004cbf: SWAP1
00004cc0: SWAP3
00004cc1: MSTORE
00004cc2: PUSH1 0x40
00004cc4: DUP4
00004cc5: ADD
00004cc6: MSTORE
00004cc7: ISZERO
00004cc8: ISZERO
00004cc9: PUSH1 0x60
00004ccb: DUP3
00004ccc: ADD
00004ccd: MSTORE
00004cce: PUSH1 0x80
00004cd0: ADD
00004cd1: SWAP1
00004cd2: JUMP
00004cd3: JUMPDEST
00004cd4: PUSH1 0x40
00004cd6: MLOAD
00004cd7: DUP2
00004cd8: DUP2
00004cd9: ADD
00004cda: PUSH8 0xffffffffffffffff
00004ce3: DUP2
00004ce4: GT
00004ce5: DUP3
00004ce6: DUP3
00004ce7: LT
00004ce8: OR
00004ce9: ISZERO
00004cea: PUSH2 0x4cf2
00004ced: JUMPI
00004cee: PUSH1 0x00
00004cf0: DUP1
00004cf1: REVERT
00004cf2: JUMPDEST
00004cf3: PUSH1 0x40
00004cf5: MSTORE
00004cf6: SWAP2
00004cf7: SWAP1
00004cf8: POP
00004cf9: JUMP
00004cfa: JUMPDEST
00004cfb: PUSH1 0x00
00004cfd: PUSH8 0xffffffffffffffff
00004d06: DUP3
00004d07: GT
00004d08: ISZERO
00004d09: PUSH2 0x4d10
00004d0c: JUMPI
00004d0d: DUP1
00004d0e: DUP2
00004d0f: REVERT
00004d10: JUMPDEST
00004d11: POP
00004d12: PUSH1 0x20
00004d14: SWAP1
00004d15: DUP2
00004d16: MUL
00004d17: ADD
00004d18: SWAP1
00004d19: JUMP
00004d1a: JUMPDEST
00004d1b: PUSH1 0x00
00004d1d: JUMPDEST
00004d1e: DUP4
00004d1f: DUP2
00004d20: LT
00004d21: ISZERO
00004d22: PUSH2 0x4d35
00004d25: JUMPI
00004d26: DUP2
00004d27: DUP2
00004d28: ADD
00004d29: MLOAD
00004d2a: DUP4
00004d2b: DUP3
00004d2c: ADD
00004d2d: MSTORE
00004d2e: PUSH1 0x20
00004d30: ADD
00004d31: PUSH2 0x4d1d
00004d34: JUMP
00004d35: JUMPDEST
00004d36: DUP4
00004d37: DUP2
00004d38: GT
00004d39: ISZERO
00004d3a: PUSH2 0x0ac8
00004d3d: JUMPI
00004d3e: POP
00004d3f: POP
00004d40: PUSH1 0x00
00004d42: SWAP2
00004d43: ADD
00004d44: MSTORE
00004d45: JUMP
00004d46: JUMPDEST
00004d47: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004d5c: DUP2
00004d5d: AND
00004d5e: DUP2
00004d5f: EQ
00004d60: PUSH2 0x4d68
00004d63: JUMPI
00004d64: PUSH1 0x00
00004d66: DUP1
00004d67: REVERT
00004d68: JUMPDEST
00004d69: POP
00004d6a: JUMP
00004d6b: JUMPDEST
00004d6c: DUP1
00004d6d: ISZERO
00004d6e: ISZERO
00004d6f: DUP2
00004d70: EQ
00004d71: PUSH2 0x4d68
00004d74: JUMPI
00004d75: PUSH1 0x00
00004d77: DUP1
00004d78: REVERT
00004d79: INVALID
00004d7a: LOG2
00004d7b: PUSH5 0x6970667358
00004d81: UNKNOWN(0x22)
00004d82: SLT
00004d83: KECCAK256
00004d84: UNKNOWN(0xF6)
00004d85: UNKNOWN(0xD0)
00004d86: PUSH9 0x2f5aad73e9de7290c0
00004d90: PC
00004d91: EXTCODECOPY
00004d92: DUP15
00004d93: UNKNOWN(0xC2)
00004d94: BLOBBASEFEE
00004d95: DUP5
00004d96: UNKNOWN(0xCF)
00004d97: UNKNOWN(0x2B)
00004d98: UNKNOWN(0xDC)
00004d99: BLOBBASEFEE
00004d9a: UNKNOWN(0xE9)
00004d9b: DUP8
00004d9c: EQ
00004d9d: UNKNOWN(0xC5)
00004d9e: UNKNOWN(0x0E)
00004d9f: UNKNOWN(0xCE)
00004da0: PUSH26

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x8a705d6800ccfcbefff44c013a3b692fd79e76652491e7178020f3b31070042b
call_targets: 0x49ad84cca260dddd7d7e8ec7be5f79eb5d1be1b0
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x8a705d6800ccfcbefff44c013a3b692fd79e76652491e7178020f3b31070042b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x49ad84cca260dddd7d7e8ec7be5f79eb5d1be1b0"
    ],
    "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": "0xf61e8d4d",
            "selector": "0xf61e8d4d",
            "calldata_variants": [
                "0xf61e8d4d",
                "0xf61e8d4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa09e630",
            "selector": "0xfa09e630",
            "calldata_variants": [
                "0xfa09e630",
                "0xfa09e6300000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfcc49d1d",
            "selector": "0xfcc49d1d",
            "calldata_variants": [
                "0xfcc49d1d",
                "0xfcc49d1d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2a38f65",
            "selector": "0xf2a38f65",
            "calldata_variants": [
                "0xf2a38f65",
                "0xf2a38f650000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3fef3a3",
            "selector": "0xf3fef3a3",
            "calldata_variants": [
                "0xf3fef3a3",
                "0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeaafe247",
            "selector": "0xeaafe247",
            "calldata_variants": [
                "0xeaafe247",
                "0xeaafe2470000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xed866cef",
            "selector": "0xed866cef",
            "calldata_variants": [
                "0xed866cef",
                "0xed866cef0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2696,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3141,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4536,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 15,
    "guards_detected": [],
    "untrusted_call_count": 15
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x8a705d6800ccfcbefff44c013a3b692fd79e76652491e7178020f3b31070042b
call_targets: 0x49ad84cca260dddd7d7e8ec7be5f79eb5d1be1b0
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x8a705d6800ccfcbefff44c013a3b692fd79e76652491e7178020f3b31070042b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x49ad84cca260dddd7d7e8ec7be5f79eb5d1be1b0"
    ],
    "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": "0xf61e8d4d",
            "selector": "0xf61e8d4d",
            "calldata_variants": [
                "0xf61e8d4d",
                "0xf61e8d4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa09e630",
            "selector": "0xfa09e630",
            "calldata_variants": [
                "0xfa09e630",
                "0xfa09e6300000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfcc49d1d",
            "selector": "0xfcc49d1d",
            "calldata_variants": [
                "0xfcc49d1d",
                "0xfcc49d1d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2a38f65",
            "selector": "0xf2a38f65",
            "calldata_variants": [
                "0xf2a38f65",
                "0xf2a38f650000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3fef3a3",
            "selector": "0xf3fef3a3",
            "calldata_variants": [
                "0xf3fef3a3",
                "0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeaafe247",
            "selector": "0xeaafe247",
            "calldata_variants": [
                "0xeaafe247",
                "0xeaafe2470000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xed866cef",
            "selector": "0xed866cef",
            "calldata_variants": [
                "0xed866cef",
                "0xed866cef0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2696,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3141,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4536,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 15,
    "guards_detected": []
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 22
}
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": 23
}