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

Analysis Run

29ca86d2-0e00-4039-a1ac-458e924c7147

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

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30951 report.consolidate complete 1 / 1 3 months ago
94717 artifact.fetch complete 1 / 3 1 week ago
94718 tool.cast_disasm complete 1 / 3 1 week ago
94719 analysis.bundle complete 1 / 3 1 week ago
94720 capability.graph complete 1 / 3 1 week ago
94721 detector.run complete 1 / 3 1 week ago
94722 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
0
No findings?
yes
Summary
No concrete, exploitable value-extraction path was identified from the provided runtime bytecode alone.
View stderr
[codex:1138744] OpenAI Codex v0.77.0 (research preview)
[codex:1138744] --------
[codex:1138744] workdir: /tmp/codex-multi-7wwc7sg5
[codex:1138744] model: gpt-5.2-codex
[codex:1138744] provider: openai
[codex:1138744] approval: never
[codex:1138744] sandbox: read-only
[codex:1138744] reasoning effort: xhigh
[codex:1138744] reasoning summaries: auto
[codex:1138744] session id: 019b768e-002e-7942-9b01-6736b160580a
[codex:1138744] --------
[codex:1138744] user
[codex:1138744] 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:1138744] 
[codex:1138744] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:1138744] 
[codex:1138744] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1138744] - Gas inefficiency, code quality, or best practices
[codex:1138744] - Theoretical vulnerabilities without a clear extraction path
[codex:1138744] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:1138744] - Issues requiring social engineering or off-chain coordination
[codex:1138744] 
[codex:1138744] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:1138744] - CALL/DELEGATECALL with controllable destination or calldata
[codex:1138744] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:1138744] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:1138744] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:1138744] - External calls before state updates (reentrancy)
[codex:1138744] - SELFDESTRUCT with controllable beneficiary
[codex:1138744] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:1138744] 
[codex:1138744] For each finding, you MUST explain:
[codex:1138744] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:1138744] 2. The concrete sequence of transactions to extract value
[codex:1138744] 3. Why you believe this is exploitable (not just suspicious)
[codex:1138744] 
[codex:1138744] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:1138744] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:1138744] 
[codex:1138744] Output MUST be valid JSON matching the provided schema.
[codex:1138744] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1138744] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1138744] mcp startup: no servers
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Searching for bytecode files**
[codex:1138744] exec
[codex:1138744] /bin/bash -lc ls in /tmp/codex-multi-7wwc7sg5 succeeded in 6ms:
[codex:1138744] BYTECODE_BUNDLE.txt
[codex:1138744] codex-output-schema.json
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Reading file content**
[codex:1138744] exec
[codex:1138744] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-7wwc7sg5 succeeded in 5ms:
[codex:1138744] Runtime bytecode bundle for best-effort auditing.
[codex:1138744] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1138744] 
[codex:1138744] FILE: runtime_bytecode.hex
[codex:1138744] 0x6080604052600436106102605760003560e01c806392bfff1911610144578063ccbba0c0116100b6578063e79994cb1161007a578063e79994cb14610795578063ed421e14146107cd578063f4887f15146107ed578063f6eb192d1461080d578063f8453e7c1461082d578063f92f9e101461084d57600080fd5b8063ccbba0c0146106df578063ce206dc6146106fd578063d416deb61461071d578063d6bed37c1461073d578063e78cea921461077557600080fd5b8063ad1e29b111610108578063ad1e29b1146105e5578063b06c3d8014610615578063b0829ba714610642578063bb1c6a811461066f578063c13298471461068f578063c719eebe146106af57600080fd5b806392bfff191461053757806395edabb01461055757806398421bda14610577578063a1590646146105af578063aaf5eb68146105cf57600080fd5b806362a5af3b116101dd57806370b8ed74116101a157806370b8ed741461044d57806371806b781461046d578063775fe40b1461049d5780637eeee88e146104ca5780638dd14802146104f7578063903341781461051757600080fd5b806362a5af3b146103cd578063650cd615146103e25780636598f3f814610402578063666a7e49146104185780636a28f0001461043857600080fd5b806345d61ded1161022457806345d61ded14610325578063465f193514610345578063518351cd146103655780635c975abb1461038957806362859f8f146103ad57600080fd5b8063036e76e31461026c578063044423e91461028e5780630f45b502146102c557806339fdd5de146102e55780633a5381b51461030557600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028c610287366004612bde565b61086d565b005b34801561029a57600080fd5b506097546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102d157600080fd5b5061028c6102e0366004612c02565b6108cc565b3480156102f157600080fd5b5061028c610300366004612c6d565b6109e0565b34801561031157600080fd5b5060ca546102a8906001600160a01b031681565b34801561033157600080fd5b5060d6546102a8906001600160a01b031681565b34801561035157600080fd5b5061028c610360366004612cd7565b610bc1565b34801561037157600080fd5b5061037b60d75481565b6040519081526020016102bc565b34801561039557600080fd5b5060335460ff165b60405190151581526020016102bc565b3480156103b957600080fd5b5061028c6103c8366004612d5e565b610c43565b3480156103d957600080fd5b5061028c610d0f565b3480156103ee57600080fd5b5061028c6103fd366004612dae565b610d4a565b34801561040e57600080fd5b5061037b60d85481565b34801561042457600080fd5b5061028c610433366004612bde565b610d7e565b34801561044457600080fd5b5061028c610dd5565b34801561045957600080fd5b5061028c610468366004612e01565b610e10565b34801561047957600080fd5b5061039d610488366004612bde565b60cf6020526000908152604090205460ff1681565b3480156104a957600080fd5b5061037b6104b8366004612bde565b60d36020526000908152604090205481565b3480156104d657600080fd5b5061037b6104e5366004612bde565b60ce6020526000908152604090205481565b34801561050357600080fd5b5061028c610512366004612bde565b610edd565b34801561052357600080fd5b5061028c610532366004612bde565b610f3a565b34801561054357600080fd5b5061028c610552366004612e42565b610f9a565b34801561056357600080fd5b5061037b610572366004612bde565b611090565b34801561058357600080fd5b5061037b610592366004612e77565b60cb60209081526000928352604080842090915290825290205481565b3480156105bb57600080fd5b5061028c6105ca366004612eb0565b6111f3565b3480156105db57600080fd5b5061037b61271081565b3480156105f157600080fd5b5061039d610600366004612f22565b60d46020526000908152604090205460ff1681565b34801561062157600080fd5b5061037b610630366004612bde565b60d26020526000908152604090205481565b34801561064e57600080fd5b5061037b61065d366004612bde565b60cc6020526000908152604090205481565b34801561067b57600080fd5b5061028c61068a366004612f3b565b6113c0565b34801561069b57600080fd5b5061028c6106aa366004612fd5565b6115ab565b3480156106bb57600080fd5b5061039d6106ca366004612f22565b60d06020526000908152604090205460ff1681565b3480156106eb57600080fd5b506098546001600160a01b03166102a8565b34801561070957600080fd5b5060d1546102a8906001600160a01b031681565b34801561072957600080fd5b5061028c610738366004613021565b611603565b34801561074957600080fd5b5061037b610758366004612e77565b60cd60209081526000928352604080842090915290825290205481565b34801561078157600080fd5b5060c9546102a8906001600160a01b031681565b3480156107a157600080fd5b5061037b6107b036600461305c565b60d560209081526000928352604080842090915290825290205481565b3480156107d957600080fd5b5061028c6107e8366004612cd7565b611805565b3480156107f957600080fd5b5061028c610808366004612bde565b611926565b34801561081957600080fd5b5061028c610828366004613088565b611983565b34801561083957600080fd5b5061028c610848366004613102565b611c15565b34801561085957600080fd5b5061028c61086836600461317e565b611db2565b610875611f0f565b6098546001600160a01b03908116908216036108c057609854604051630237ef6160e11b81526001600160a01b03918216600482015290821660248201526044015b60405180910390fd5b6108c981611f51565b50565b6108d4611f0f565b61271082111561093657604051630c6a14bb60e11b815260048101839052612710602482015260606044820152601a60648201527f4272696467652070657263656e742065786365656473206d6178000000000000608482015260a4016108b7565b612710811115610998576040516345fe0c2760e11b815260048101829052612710602482015260606044820152601a60648201527f537570706c792070657263656e742065786365656473206d6178000000000000608482015260a4016108b7565b60d782905560d881905560408051838152602081018390527f87ec0345192ee00e871b0aa8c85041fb508295846f1b114f2ad28550d85a54a491015b60405180910390a15050565b6109e8612017565b6109f0612070565b846109fa816120b6565b83610a048161214b565b86610a0e81612175565b610af233898960c960009054906101000a90046001600160a01b03166001600160a01b0316631edb51ad6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8b91906131be565b8a604051602001610aa09594939291906131d7565b6040516020818303038152906040528051906020012086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061220b92505050565b33600090815260cb602090815260408083206001600160a01b038c16845290915281208054899290610b25908490613228565b90915550506001600160a01b038816600090815260cc602052604081208054899290610b52908490613228565b90915550610b6d90506001600160a01b03891633308a6122ef565b6040518781526001600160a01b0389169033907f3bda13fe73033028c14ba107ef2ddc3a09abeb2ea7cac294113857d856c96b3b9060200160405180910390a3505050610bba6001606555565b5050505050565b610bc9611f0f565b610bd1612017565b610be78184846001600160a01b03821615612361565b826001600160a01b0316816001600160a01b03167fa922bc33914bd31b27595f621e02fefe0cce42e852ef76299a0a618efa9c6e5b84604051610c2c91815260200190565b60405180910390a3610c3e6001606555565b505050565b610c4b612434565b610c53612017565b8060005b81811015610cff57600060d26000868685818110610c7757610c77613241565b9050602002016020810190610c8c9190612bde565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060d36000868685818110610cc857610cc8613241565b9050602002016020810190610cdd9190612bde565b6001600160a01b03168152602081019190915260400160002055600101610c57565b5050610d0b6001606555565b5050565b610d17612434565b610d1f6124d8565b6040517f4051e961c454332acc3bfc1fd8b56b6089a599327eb5c8dd6d693d38551cd32390600090a1565b610d52612070565b610d5a612532565b610d62612017565b610d6e82858584612361565b610d786001606555565b50505050565b610d86611f0f565b6097546001600160a01b0390811690821603610dcc57609754604051630237ef6160e11b81526001600160a01b03918216600482015290821660248201526044016108b7565b6108c98161259c565b610ddd611f0f565b610de561264e565b6040517f2d12867222d81b22cc368d426643f6e5a96986c24cc39ce8504ed58e2660df5190600090a1565b610e18612434565b610e20612070565b6001600160a01b03808416600090815260cb6020908152604080832093861683529290529081208054839290610e57908490613228565b90915550506001600160a01b038216600090815260cc602052604081208054839290610e84908490613228565b92505081905550826001600160a01b0316826001600160a01b03167fe085944a5ddfe0e68127edbf665e03ec5be397243129f6555232ed553e951cb183604051610ed091815260200190565b60405180910390a3505050565b610ee5611f0f565b80610eef81612687565b60c980546001600160a01b0319166001600160a01b0384169081179091556040517fa49730bff544fd0b716395c592e39c6fd2d2481a19b9229b5b240483db95a49590600090a25050565b80610f4481612687565b610f4c611f0f565b60d180546001600160a01b0319166001600160a01b0384169081179091556040519081527f1f0da97238b22add14994904c13e93a9ba4fdb2020955e639c43e03bb262cbce906020016109d4565b610fa2612532565b610faa612017565b600081815260d4602052604090205460ff1615610fec576040516318bb936b60e31b8152600481018290526001600160a01b03841660248201526044016108b7565b6001600160a01b038316600090815260d3602052604081208054849290611014908490613228565b90915550506001600160a01b038316600090815260cf602052604090205460ff161561105457600081815260d460205260409020805460ff191660011790555b80836001600160a01b03167fddf3797a38d53ed43ea0839f8db9db1109d5d86994ebe78cc33a039fa5f8749b84604051610c2c91815260200190565b6001600160a01b038116600081815260d260205260408082205460d75491516370a0823160e01b81523060048201529293909284928492612710926370a0823190602401602060405180830381865afa1580156110f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111591906131be565b61111f9086613228565b6111299190613257565b611133919061326e565b61113d9190613290565b90506000846001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561117f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a391906131be565b905060008361271060d85486856111ba9190613290565b6111c49190613257565b6111ce919061326e565b6111d89190613290565b90508281116111e757806111e9565b825b9695505050505050565b6111fb612532565b611203612070565b61120b612017565b6000805b8281101561138757600084848381811061122b5761122b613241565b905060200201359050600087878481811061124857611248613241565b600085815260d460209081526040909120549102929092013592505060ff1615611297576040516318bb936b60e31b8152600481018390526001600160a01b038a1660248201526044016108b7565b6001600160a01b038916600090815260d5602090815260408083208584529091529020548114611319576001600160a01b038916600081815260d56020908152604080832086845290915290819020549051631b1d4ef960e21b81526004810191909152602481018390526044810184905260648101919091526084016108b7565b600082815260d4602052604090819020805460ff19166001179055519381019382906001600160a01b038b16907f1b36ea262b458e9b3ff138a58a195232f209ce92ab097f27606a12f7ec0790f2906113759085815260200190565b60405180910390a3505060010161120f565b506001600160a01b038616600090815260d26020526040812080548392906113b0908490613290565b9091555050600160655550610bba565b6113c8612434565b6113d0612070565b84831480156113de57508281145b6114395760405162461bcd60e51b815260206004820152602660248201527f496e70757420617272617973206d7573742068617665207468652073616d65206044820152650d8cadccee8d60d31b60648201526084016108b7565b60005b858110156115a257600087878381811061145857611458613241565b905060200201602081019061146d9190612bde565b9050600086868481811061148357611483613241565b90506020020160208101906114989190612bde565b905060008585858181106114ae576114ae613241565b90506020020135905060cb6000846001600160a01b03166001600160a01b031681526020019081526020016000206000836001600160a01b03166001600160a01b0316815260200190815260200160002054600003611528576000600183604051631940590960e01b81526004016108b7939291906132a3565b6001600160a01b03838116600081815260cb6020908152604080832094871680845294825280832080548701905560cc82529182902080548601905590518481527f3bda13fe73033028c14ba107ef2ddc3a09abeb2ea7cac294113857d856c96b3b910160405180910390a350505080600101905061143c565b50505050505050565b6115b3612434565b6115bb612017565b6115f98383808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508592506126e8915050565b610c3e6001606555565b61160b612532565b611613612017565b6001600160a01b038416600090815260cf602052604090205460ff1661166957600061163e85611090565b90508381101561166757838186604051630585fbc960e31b81526004016108b7939291906132a3565b505b6040516370a0823160e01b8152306004820152819084906001600160a01b038716906370a0823190602401602060405180830381865afa1580156116b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d591906131be565b6116df9190613290565b101561170457828185604051631940590960e01b81526004016108b7939291906132a3565b6001600160a01b038416600090815260d56020908152604080832085845290915290205415611758576040516318bb936b60e31b8152600481018390526001600160a01b03851660248201526044016108b7565b6001600160a01b038416600081815260d560209081526040808320868452825280832087905592825260d290529081208054859290611798908490613228565b909155505060d1546117b7906001600160a01b03868116911685612745565b604080516001600160a01b03861681526020810185905283917fd89781d5625dc08049e795985a82f6f1df8f90f8f8bcb9973736b9c25bc2925e910160405180910390a2610d786001606555565b61180d612434565b8061181781612775565b61181f612017565b609854604051636eab9b3560e11b81523360048201526001600160a01b039091169063dd57366a90602401602060405180830381865afa158015611867573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188b91906132c2565b8015611899575060335460ff165b156118b9576040516309d228a560e11b81523360048201526024016108b7565b6118cf8285856001600160a01b03821615612361565b836001600160a01b0316826001600160a01b03167fa922bc33914bd31b27595f621e02fefe0cce42e852ef76299a0a618efa9c6e5b8560405161191491815260200190565b60405180910390a3610d786001606555565b61192e611f0f565b8061193881612687565b60d680546001600160a01b0319166001600160a01b0384169081179091556040517f5bbdab227f09862389aad197176a8cc81e4d162e2953ef9293725ca3ed54728a90600090a25050565b61198b612017565b611993612070565b8261199d81612175565b6119a5612434565b6001600160a01b03808616600081815260cd602090815260408083209489168084529482528083205493835260cb8252808320948352939052919091205484916119ee91613290565b1015611a5a576001600160a01b03808616600081815260cd602090815260408083209489168084529482528083205493835260cb825280832094835293905291909120548491611a3d91613290565b85604051631940590960e01b81526004016108b7939291906132a3565b611b3e8585858560c960009054906101000a90046001600160a01b03166001600160a01b0316631edb51ad6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ab4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad891906131be565b604051602001611aec9594939291906131d7565b6040516020818303038152906040528051906020012088888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061220b92505050565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081208054859290611b75908490613228565b90915550506001600160a01b038416600090815260ce602052604081208054859290611ba2908490613228565b90915550611bb590508585856000612361565b836001600160a01b0316856001600160a01b03167fa9a049377ec351e933b3447707a7afd5778f50b3737b539e7e62bd271db2eb5f85604051611bfa91815260200190565b60405180910390a350611c0d6001606555565b505050505050565b600054610100900460ff1615808015611c355750600054600160ff909116105b80611c4f5750303b158015611c4f575060005460ff166001145b611cb25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108b7565b6000805460ff191660011790558015611cd5576000805461ff0019166101001790555b84611cdf81612687565b84611ce981612687565b60c980546001600160a01b03808a166001600160a01b03199283161790925560ca805492891692909116919091179055611d238989612841565b611d62858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250600192506126e8915050565b505080156115a2576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050505050565b611dba611f0f565b611dc2612017565b6001600160a01b03808416600090815260cb6020908152604080832093851683529290529081205490819003611e125780600083604051631940590960e01b81526004016108b7939291906132a3565b6001600160a01b03808516600090815260cb602081815260408084208786168086529083528185208590559488168452918152818320938352929092529081208054839290611e62908490613228565b92505081905550836001600160a01b0316826001600160a01b03167fe085944a5ddfe0e68127edbf665e03ec5be397243129f6555232ed553e951cb16000604051611eaf91815260200190565b60405180910390a3826001600160a01b0316826001600160a01b03167fe085944a5ddfe0e68127edbf665e03ec5be397243129f6555232ed553e951cb183604051611efc91815260200190565b60405180910390a350610c3e6001606555565b6097546001600160a01b03163314611f4f57609754604051636ccc68c360e11b81523360048201526001600160a01b0390911660248201526044016108b7565b565b6001600160a01b038116611fcd5760408051630961777760e41b81526004810191909152602b60448201527f4d61696e7461696e65727320726567697374727920616464726573732063616e60648201526a6e6f74206265207a65726f60a81b60848201526001600160a01b038216602482015260a4016108b7565b609880546001600160a01b0319166001600160a01b0383169081179091556040517f993a06629d3c3b6a878490571de2b491eb014f2623099576c8e849408342350790600090a250565b6002606554036120695760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108b7565b6002606555565b60335460ff1615611f4f5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108b7565b6001600160a01b038116600090815260cf602052604090205460ff166108c9576040805163ea51453360e01b81526001600160a01b03831660048201526024810191909152603260448201527f546f6b656e206973206e6f7420636f6e6669677572656420666f72206d61696e6064820152712d746f2d6d61696e207472616e736665727360701b608482015260a4016108b7565b804211156108c95760405163442400cf60e11b8152600481018290524260248201526044016108b7565b60c954604051634448c04560e01b81526001600160a01b03838116600483015290911690634448c04590602401602060405180830381865afa1580156121bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e391906132c2565b156108c9576040516281783560e51b81526001600160a01b03821660048201526024016108b7565b600082815260d0602052604090205460ff161561223f57818160405163054f717960e21b81526004016108b792919061332f565b60ca54604051631b594def60e31b81526001600160a01b039091169063daca6f7890612271908590859060040161332f565b602060405180830381865afa15801561228e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b291906132c2565b6122d3578082604051637ab683f760e01b81526004016108b7929190613348565b50600090815260d060205260409020805460ff19166001179055565b6040516001600160a01b0380851660248301528316604482015260648101829052610d789085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612863565b6001606555565b8015612420576000846001600160a01b03168360405160006040518083038185875af1925050503d80600081146123b4576040519150601f19603f3d011682016040523d82523d6000602084013e6123b9565b606091505b505090508061241a5760405163a906d43160e01b81526001600160a01b03861660048201526024810184905260606044820152601660648201527513985d1a5d99481d1c985b9cd9995c8819985a5b195960521b608482015260a4016108b7565b50610d78565b610d786001600160a01b0384168584612745565b609854604051636eab9b3560e11b81523360048201526001600160a01b039091169063dd57366a90602401602060405180830381865afa15801561247c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a091906132c2565b1580156124b857506097546001600160a01b03163314155b15611f4f5760405163537ebb8760e11b81523360048201526024016108b7565b6124e0612070565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586125153390565b6040516001600160a01b03909116815260200160405180910390a1565b60c9546001600160a01b03163314611f4f5760c95460405163c52de32160e01b81523360048201526001600160a01b0390911660248201526060604482015260136064820152726f6e6c79436861696e706f727442726964676560681b608482015260a4016108b7565b6001600160a01b0381166126045760408051630961777760e41b81526004810191909152601f60448201527f436f6e677265737320616464726573732063616e6e6f74206265207a65726f0060648201526001600160a01b03821660248201526084016108b7565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f92c0335399ecbaa35b0b21fc784a8ce59419e6786caf942b31db51ac8c29258490600090a250565b612656612938565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612515565b6001600160a01b0381166108c95760408051638eb40ca760e01b815260048101919091526016604482015275416464726573732063616e6e6f74206265207a65726f60501b60648201526001600160a01b03821660248201526084016108b7565b60005b8251811015610c3e578160cf600085848151811061270b5761270b613241565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016126eb565b6040516001600160a01b038316602482015260448101829052610c3e90849063a9059cbb60e01b90606401612323565b60d65460405163e4e3a7a960e01b81526001600160a01b0383811660048301529091169063e4e3a7a990602401602060405180830381865afa1580156127bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e391906132c2565b6108c95760408051633c84244160e21b81526001600160a01b03831660048201526024810191909152601b60448201527f42656e6566696369617279206e6f742077686974656c6973746564000000000060648201526084016108b7565b61284a8261259c565b61285381611f51565b61285b612981565b610d0b6129b0565b60006128b8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166129df9092919063ffffffff16565b90508051600014806128d95750808060200190518101906128d991906132c2565b610c3e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016108b7565b60335460ff16611f4f5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108b7565b600054610100900460ff166129a85760405162461bcd60e51b81526004016108b79061336a565b611f4f6129f6565b600054610100900460ff166129d75760405162461bcd60e51b81526004016108b79061336a565b611f4f612a29565b60606129ee8484600085612a50565b949350505050565b600054610100900460ff16612a1d5760405162461bcd60e51b81526004016108b79061336a565b6033805460ff19169055565b600054610100900460ff1661235a5760405162461bcd60e51b81526004016108b79061336a565b606082471015612ab15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016108b7565b600080866001600160a01b03168587604051612acd91906133b5565b60006040518083038185875af1925050503d8060008114612b0a576040519150601f19603f3d011682016040523d82523d6000602084013e612b0f565b606091505b5091509150612b2087838387612b2b565b979650505050505050565b60608315612b9a578251600003612b93576001600160a01b0385163b612b935760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108b7565b50816129ee565b6129ee8383815115612baf5781518083602001fd5b8060405162461bcd60e51b81526004016108b791906133d1565b6001600160a01b03811681146108c957600080fd5b600060208284031215612bf057600080fd5b8135612bfb81612bc9565b9392505050565b60008060408385031215612c1557600080fd5b50508035926020909101359150565b60008083601f840112612c3657600080fd5b50813567ffffffffffffffff811115612c4e57600080fd5b602083019150836020828501011115612c6657600080fd5b9250929050565b600080600080600060808688031215612c8557600080fd5b8535612c9081612bc9565b94506020860135935060408601359250606086013567ffffffffffffffff811115612cba57600080fd5b612cc688828901612c24565b969995985093965092949392505050565b600080600060608486031215612cec57600080fd5b8335612cf781612bc9565b9250602084013591506040840135612d0e81612bc9565b809150509250925092565b60008083601f840112612d2b57600080fd5b50813567ffffffffffffffff811115612d4357600080fd5b6020830191508360208260051b8501011115612c6657600080fd5b60008060208385031215612d7157600080fd5b823567ffffffffffffffff811115612d8857600080fd5b612d9485828601612d19565b90969095509350505050565b80151581146108c957600080fd5b60008060008060808587031215612dc457600080fd5b8435612dcf81612bc9565b9350602085013592506040850135612de681612bc9565b91506060850135612df681612da0565b939692955090935050565b600080600060608486031215612e1657600080fd5b8335612e2181612bc9565b92506020840135612e3181612bc9565b929592945050506040919091013590565b600080600060608486031215612e5757600080fd5b8335612e6281612bc9565b95602085013595506040909401359392505050565b60008060408385031215612e8a57600080fd5b8235612e9581612bc9565b91506020830135612ea581612bc9565b809150509250929050565b600080600080600060608688031215612ec857600080fd5b8535612ed381612bc9565b9450602086013567ffffffffffffffff80821115612ef057600080fd5b612efc89838a01612d19565b90965094506040880135915080821115612f1557600080fd5b50612cc688828901612d19565b600060208284031215612f3457600080fd5b5035919050565b60008060008060008060608789031215612f5457600080fd5b863567ffffffffffffffff80821115612f6c57600080fd5b612f788a838b01612d19565b90985096506020890135915080821115612f9157600080fd5b612f9d8a838b01612d19565b90965094506040890135915080821115612fb657600080fd5b50612fc389828a01612d19565b979a9699509497509295939492505050565b600080600060408486031215612fea57600080fd5b833567ffffffffffffffff81111561300157600080fd5b61300d86828701612d19565b9094509250506020840135612d0e81612da0565b6000806000806080858703121561303757600080fd5b843561304281612bc9565b966020860135965060408601359560600135945092505050565b6000806040838503121561306f57600080fd5b823561307a81612bc9565b946020939093013593505050565b60008060008060008060a087890312156130a157600080fd5b863567ffffffffffffffff8111156130b857600080fd5b6130c489828a01612c24565b90975095505060208701356130d881612bc9565b935060408701356130e881612bc9565b959894975092956060810135946080909101359350915050565b60008060008060008060a0878903121561311b57600080fd5b863561312681612bc9565b9550602087013561313681612bc9565b9450604087013561314681612bc9565b9350606087013561315681612bc9565b9250608087013567ffffffffffffffff81111561317257600080fd5b612fc389828a01612d19565b60008060006060848603121561319357600080fd5b833561319e81612bc9565b925060208401356131ae81612bc9565b91506040840135612d0e81612bc9565b6000602082840312156131d057600080fd5b5051919050565b6bffffffffffffffffffffffff19606096871b811682529490951b909316601485015260288401919091526048830152606882015260880190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561323b5761323b613212565b92915050565b634e487b7160e01b600052603260045260246000fd5b808202811582820484141761323b5761323b613212565b60008261328b57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561323b5761323b613212565b92835260208301919091526001600160a01b0316604082015260600190565b6000602082840312156132d457600080fd5b8151612bfb81612da0565b60005b838110156132fa5781810151838201526020016132e2565b50506000910152565b6000815180845261331b8160208601602086016132df565b601f01601f19169290920160200192915050565b8281526040602082015260006129ee6040830184613303565b60408152600061335b6040830185613303565b90508260208301529392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516133c78184602087016132df565b9190910192915050565b602081526000612bfb602083018461330356fea264697066735822122011e96c20b65180197b84b48e0f2651c3049f2405c78ae8180e21aa4aa3a5b3c864736f6c63430008160033
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Examining bytecode for exploit paths**
[codex:1138744] 
[codex:1138744] I'm focusing on identifying a concrete exploit path in a complex bridge contract bytecode by analyzing function selectors, revert strings, and initializer patterns to check for unprotected calls or vulnerabilities like unguarded initializers or unauthorized token transfers. I’m preparing to extract strings from the bytecode to gather more clues about access controls and sensitive functions.
[codex:1138744] exec
[codex:1138744] /bin/bash -lc 'rg -n "" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-7wwc7sg5 succeeded in 7ms:
[codex:1138744] 1:Runtime bytecode bundle for best-effort auditing.
[codex:1138744] 2:Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1138744] 3:
[codex:1138744] 4:FILE: runtime_bytecode.hex
[codex:1138744] 5:0x6080604052600436106102605760003560e01c806392bfff1911610144578063ccbba0c0116100b6578063e79994cb1161007a578063e79994cb14610795578063ed421e14146107cd578063f4887f15146107ed578063f6eb192d1461080d578063f8453e7c1461082d578063f92f9e101461084d57600080fd5b8063ccbba0c0146106df578063ce206dc6146106fd578063d416deb61461071d578063d6bed37c1461073d578063e78cea921461077557600080fd5b8063ad1e29b111610108578063ad1e29b1146105e5578063b06c3d8014610615578063b0829ba714610642578063bb1c6a811461066f578063c13298471461068f578063c719eebe146106af57600080fd5b806392bfff191461053757806395edabb01461055757806398421bda14610577578063a1590646146105af578063aaf5eb68146105cf57600080fd5b806362a5af3b116101dd57806370b8ed74116101a157806370b8ed741461044d57806371806b781461046d578063775fe40b1461049d5780637eeee88e146104ca5780638dd14802146104f7578063903341781461051757600080fd5b806362a5af3b146103cd578063650cd615146103e25780636598f3f814610402578063666a7e49146104185780636a28f0001461043857600080fd5b806345d61ded1161022457806345d61ded14610325578063465f193514610345578063518351cd146103655780635c975abb1461038957806362859f8f146103ad57600080fd5b8063036e76e31461026c578063044423e91461028e5780630f45b502146102c557806339fdd5de146102e55780633a5381b51461030557600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028c610287366004612bde565b61086d565b005b34801561029a57600080fd5b506097546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102d157600080fd5b5061028c6102e0366004612c02565b6108cc565b3480156102f157600080fd5b5061028c610300366004612c6d565b6109e0565b34801561031157600080fd5b5060ca546102a8906001600160a01b031681565b34801561033157600080fd5b5060d6546102a8906001600160a01b031681565b34801561035157600080fd5b5061028c610360366004612cd7565b610bc1565b34801561037157600080fd5b5061037b60d75481565b6040519081526020016102bc565b34801561039557600080fd5b5060335460ff165b60405190151581526020016102bc565b3480156103b957600080fd5b5061028c6103c8366004612d5e565b610c43565b3480156103d957600080fd5b5061028c610d0f565b3480156103ee57600080fd5b5061028c6103fd366004612dae565b610d4a565b34801561040e57600080fd5b5061037b60d85481565b34801561042457600080fd5b5061028c610433366004612bde565b610d7e565b34801561044457600080fd5b5061028c610dd5565b34801561045957600080fd5b5061028c610468366004612e01565b610e10565b34801561047957600080fd5b5061039d610488366004612bde565b60cf6020526000908152604090205460ff1681565b3480156104a957600080fd5b5061037b6104b8366004612bde565b60d36020526000908152604090205481565b3480156104d657600080fd5b5061037b6104e5366004612bde565b60ce6020526000908152604090205481565b34801561050357600080fd5b5061028c610512366004612bde565b610edd565b34801561052357600080fd5b5061028c610532366004612bde565b610f3a565b34801561054357600080fd5b5061028c610552366004612e42565b610f9a565b34801561056357600080fd5b5061037b610572366004612bde565b611090565b34801561058357600080fd5b5061037b610592366004612e77565b60cb60209081526000928352604080842090915290825290205481565b3480156105bb57600080fd5b5061028c6105ca366004612eb0565b6111f3565b3480156105db57600080fd5b5061037b61271081565b3480156105f157600080fd5b5061039d610600366004612f22565b60d46020526000908152604090205460ff1681565b34801561062157600080fd5b5061037b610630366004612bde565b60d26020526000908152604090205481565b34801561064e57600080fd5b5061037b61065d366004612bde565b60cc6020526000908152604090205481565b34801561067b57600080fd5b5061028c61068a366004612f3b565b6113c0565b34801561069b57600080fd5b5061028c6106aa366004612fd5565b6115ab565b3480156106bb57600080fd5b5061039d6106ca366004612f22565b60d06020526000908152604090205460ff1681565b3480156106eb57600080fd5b506098546001600160a01b03166102a8565b34801561070957600080fd5b5060d1546102a8906001600160a01b031681565b34801561072957600080fd5b5061028c610738366004613021565b611603565b34801561074957600080fd5b5061037b610758366004612e77565b60cd60209081526000928352604080842090915290825290205481565b34801561078157600080fd5b5060c9546102a8906001600160a01b031681565b3480156107a157600080fd5b5061037b6107b036600461305c565b60d560209081526000928352604080842090915290825290205481565b3480156107d957600080fd5b5061028c6107e8366004612cd7565b611805565b3480156107f957600080fd5b5061028c610808366004612bde565b611926565b34801561081957600080fd5b5061028c610828366004613088565b611983565b34801561083957600080fd5b5061028c610848366004613102565b611c15565b34801561085957600080fd5b5061028c61086836600461317e565b611db2565b610875611f0f565b6098546001600160a01b03908116908216036108c057609854604051630237ef6160e11b81526001600160a01b03918216600482015290821660248201526044015b60405180910390fd5b6108c981611f51565b50565b6108d4611f0f565b61271082111561093657604051630c6a14bb60e11b815260048101839052612710602482015260606044820152601a60648201527f4272696467652070657263656e742065786365656473206d6178000000000000608482015260a4016108b7565b612710811115610998576040516345fe0c2760e11b815260048101829052612710602482015260606044820152601a60648201527f537570706c792070657263656e742065786365656473206d6178000000000000608482015260a4016108b7565b60d782905560d881905560408051838152602081018390527f87ec0345192ee00e871b0aa8c85041fb508295846f1b114f2ad28550d85a54a491015b60405180910390a15050565b6109e8612017565b6109f0612070565b846109fa816120b6565b83610a048161214b565b86610a0e81612175565b610af233898960c960009054906101000a90046001600160a01b03166001600160a01b0316631edb51ad6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8b91906131be565b8a604051602001610aa09594939291906131d7565b6040516020818303038152906040528051906020012086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061220b92505050565b33600090815260cb602090815260408083206001600160a01b038c16845290915281208054899290610b25908490613228565b90915550506001600160a01b038816600090815260cc602052604081208054899290610b52908490613228565b90915550610b6d90506001600160a01b03891633308a6122ef565b6040518781526001600160a01b0389169033907f3bda13fe73033028c14ba107ef2ddc3a09abeb2ea7cac294113857d856c96b3b9060200160405180910390a3505050610bba6001606555565b5050505050565b610bc9611f0f565b610bd1612017565b610be78184846001600160a01b03821615612361565b826001600160a01b0316816001600160a01b03167fa922bc33914bd31b27595f621e02fefe0cce42e852ef76299a0a618efa9c6e5b84604051610c2c91815260200190565b60405180910390a3610c3e6001606555565b505050565b610c4b612434565b610c53612017565b8060005b81811015610cff57600060d26000868685818110610c7757610c77613241565b9050602002016020810190610c8c9190612bde565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600060d36000868685818110610cc857610cc8613241565b9050602002016020810190610cdd9190612bde565b6001600160a01b03168152602081019190915260400160002055600101610c57565b5050610d0b6001606555565b5050565b610d17612434565b610d1f6124d8565b6040517f4051e961c454332acc3bfc1fd8b56b6089a599327eb5c8dd6d693d38551cd32390600090a1565b610d52612070565b610d5a612532565b610d62612017565b610d6e82858584612361565b610d786001606555565b50505050565b610d86611f0f565b6097546001600160a01b0390811690821603610dcc57609754604051630237ef6160e11b81526001600160a01b03918216600482015290821660248201526044016108b7565b6108c98161259c565b610ddd611f0f565b610de561264e565b6040517f2d12867222d81b22cc368d426643f6e5a96986c24cc39ce8504ed58e2660df5190600090a1565b610e18612434565b610e20612070565b6001600160a01b03808416600090815260cb6020908152604080832093861683529290529081208054839290610e57908490613228565b90915550506001600160a01b038216600090815260cc602052604081208054839290610e84908490613228565b92505081905550826001600160a01b0316826001600160a01b03167fe085944a5ddfe0e68127edbf665e03ec5be397243129f6555232ed553e951cb183604051610ed091815260200190565b60405180910390a3505050565b610ee5611f0f565b80610eef81612687565b60c980546001600160a01b0319166001600160a01b0384169081179091556040517fa49730bff544fd0b716395c592e39c6fd2d2481a19b9229b5b240483db95a49590600090a25050565b80610f4481612687565b610f4c611f0f565b60d180546001600160a01b0319166001600160a01b0384169081179091556040519081527f1f0da97238b22add14994904c13e93a9ba4fdb2020955e639c43e03bb262cbce906020016109d4565b610fa2612532565b610faa612017565b600081815260d4602052604090205460ff1615610fec576040516318bb936b60e31b8152600481018290526001600160a01b03841660248201526044016108b7565b6001600160a01b038316600090815260d3602052604081208054849290611014908490613228565b90915550506001600160a01b038316600090815260cf602052604090205460ff161561105457600081815260d460205260409020805460ff191660011790555b80836001600160a01b03167fddf3797a38d53ed43ea0839f8db9db1109d5d86994ebe78cc33a039fa5f8749b84604051610c2c91815260200190565b6001600160a01b038116600081815260d260205260408082205460d75491516370a0823160e01b81523060048201529293909284928492612710926370a0823190602401602060405180830381865afa1580156110f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111591906131be565b61111f9086613228565b6111299190613257565b611133919061326e565b61113d9190613290565b90506000846001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561117f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a391906131be565b905060008361271060d85486856111ba9190613290565b6111c49190613257565b6111ce919061326e565b6111d89190613290565b90508281116111e757806111e9565b825b9695505050505050565b6111fb612532565b611203612070565b61120b612017565b6000805b8281101561138757600084848381811061122b5761122b613241565b905060200201359050600087878481811061124857611248613241565b600085815260d460209081526040909120549102929092013592505060ff1615611297576040516318bb936b60e31b8152600481018390526001600160a01b038a1660248201526044016108b7565b6001600160a01b038916600090815260d5602090815260408083208584529091529020548114611319576001600160a01b038916600081815260d56020908152604080832086845290915290819020549051631b1d4ef960e21b81526004810191909152602481018390526044810184905260648101919091526084016108b7565b600082815260d4602052604090819020805460ff19166001179055519381019382906001600160a01b038b16907f1b36ea262b458e9b3ff138a58a195232f209ce92ab097f27606a12f7ec0790f2906113759085815260200190565b60405180910390a3505060010161120f565b506001600160a01b038616600090815260d26020526040812080548392906113b0908490613290565b9091555050600160655550610bba565b6113c8612434565b6113d0612070565b84831480156113de57508281145b6114395760405162461bcd60e51b815260206004820152602660248201527f496e70757420617272617973206d7573742068617665207468652073616d65206044820152650d8cadccee8d60d31b60648201526084016108b7565b60005b858110156115a257600087878381811061145857611458613241565b905060200201602081019061146d9190612bde565b9050600086868481811061148357611483613241565b90506020020160208101906114989190612bde565b905060008585858181106114ae576114ae613241565b90506020020135905060cb6000846001600160a01b03166001600160a01b031681526020019081526020016000206000836001600160a01b03166001600160a01b0316815260200190815260200160002054600003611528576000600183604051631940590960e01b81526004016108b7939291906132a3565b6001600160a01b03838116600081815260cb6020908152604080832094871680845294825280832080548701905560cc82529182902080548601905590518481527f3bda13fe73033028c14ba107ef2ddc3a09abeb2ea7cac294113857d856c96b3b910160405180910390a350505080600101905061143c565b50505050505050565b6115b3612434565b6115bb612017565b6115f98383808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508592506126e8915050565b610c3e6001606555565b61160b612532565b611613612017565b6001600160a01b038416600090815260cf602052604090205460ff1661166957600061163e85611090565b90508381101561166757838186604051630585fbc960e31b81526004016108b7939291906132a3565b505b6040516370a0823160e01b8152306004820152819084906001600160a01b038716906370a0823190602401602060405180830381865afa1580156116b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d591906131be565b6116df9190613290565b101561170457828185604051631940590960e01b81526004016108b7939291906132a3565b6001600160a01b038416600090815260d56020908152604080832085845290915290205415611758576040516318bb936b60e31b8152600481018390526001600160a01b03851660248201526044016108b7565b6001600160a01b038416600081815260d560209081526040808320868452825280832087905592825260d290529081208054859290611798908490613228565b909155505060d1546117b7906001600160a01b03868116911685612745565b604080516001600160a01b03861681526020810185905283917fd89781d5625dc08049e795985a82f6f1df8f90f8f8bcb9973736b9c25bc2925e910160405180910390a2610d786001606555565b61180d612434565b8061181781612775565b61181f612017565b609854604051636eab9b3560e11b81523360048201526001600160a01b039091169063dd57366a90602401602060405180830381865afa158015611867573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188b91906132c2565b8015611899575060335460ff165b156118b9576040516309d228a560e11b81523360048201526024016108b7565b6118cf8285856001600160a01b03821615612361565b836001600160a01b0316826001600160a01b03167fa922bc33914bd31b27595f621e02fefe0cce42e852ef76299a0a618efa9c6e5b8560405161191491815260200190565b60405180910390a3610d786001606555565b61192e611f0f565b8061193881612687565b60d680546001600160a01b0319166001600160a01b0384169081179091556040517f5bbdab227f09862389aad197176a8cc81e4d162e2953ef9293725ca3ed54728a90600090a25050565b61198b612017565b611993612070565b8261199d81612175565b6119a5612434565b6001600160a01b03808616600081815260cd602090815260408083209489168084529482528083205493835260cb8252808320948352939052919091205484916119ee91613290565b1015611a5a576001600160a01b03808616600081815260cd602090815260408083209489168084529482528083205493835260cb825280832094835293905291909120548491611a3d91613290565b85604051631940590960e01b81526004016108b7939291906132a3565b611b3e8585858560c960009054906101000a90046001600160a01b03166001600160a01b0316631edb51ad6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ab4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad891906131be565b604051602001611aec9594939291906131d7565b6040516020818303038152906040528051906020012088888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061220b92505050565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081208054859290611b75908490613228565b90915550506001600160a01b038416600090815260ce602052604081208054859290611ba2908490613228565b90915550611bb590508585856000612361565b836001600160a01b0316856001600160a01b03167fa9a049377ec351e933b3447707a7afd5778f50b3737b539e7e62bd271db2eb5f85604051611bfa91815260200190565b60405180910390a350611c0d6001606555565b505050505050565b600054610100900460ff1615808015611c355750600054600160ff909116105b80611c4f5750303b158015611c4f575060005460ff166001145b611cb25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108b7565b6000805460ff191660011790558015611cd5576000805461ff0019166101001790555b84611cdf81612687565b84611ce981612687565b60c980546001600160a01b03808a166001600160a01b03199283161790925560ca805492891692909116919091179055611d238989612841565b611d62858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250600192506126e8915050565b505080156115a2576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050505050565b611dba611f0f565b611dc2612017565b6001600160a01b03808416600090815260cb6020908152604080832093851683529290529081205490819003611e125780600083604051631940590960e01b81526004016108b7939291906132a3565b6001600160a01b03808516600090815260cb602081815260408084208786168086529083528185208590559488168452918152818320938352929092529081208054839290611e62908490613228565b92505081905550836001600160a01b0316826001600160a01b03167fe085944a5ddfe0e68127edbf665e03ec5be397243129f6555232ed553e951cb16000604051611eaf91815260200190565b60405180910390a3826001600160a01b0316826001600160a01b03167fe085944a5ddfe0e68127edbf665e03ec5be397243129f6555232ed553e951cb183604051611efc91815260200190565b60405180910390a350610c3e6001606555565b6097546001600160a01b03163314611f4f57609754604051636ccc68c360e11b81523360048201526001600160a01b0390911660248201526044016108b7565b565b6001600160a01b038116611fcd5760408051630961777760e41b81526004810191909152602b60448201527f4d61696e7461696e65727320726567697374727920616464726573732063616e60648201526a6e6f74206265207a65726f60a81b60848201526001600160a01b038216602482015260a4016108b7565b609880546001600160a01b0319166001600160a01b0383169081179091556040517f993a06629d3c3b6a878490571de2b491eb014f2623099576c8e849408342350790600090a250565b6002606554036120695760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108b7565b6002606555565b60335460ff1615611f4f5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108b7565b6001600160a01b038116600090815260cf602052604090205460ff166108c9576040805163ea51453360e01b81526001600160a01b03831660048201526024810191909152603260448201527f546f6b656e206973206e6f7420636f6e6669677572656420666f72206d61696e6064820152712d746f2d6d61696e207472616e736665727360701b608482015260a4016108b7565b804211156108c95760405163442400cf60e11b8152600481018290524260248201526044016108b7565b60c954604051634448c04560e01b81526001600160a01b03838116600483015290911690634448c04590602401602060405180830381865afa1580156121bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e391906132c2565b156108c9576040516281783560e51b81526001600160a01b03821660048201526024016108b7565b600082815260d0602052604090205460ff161561223f57818160405163054f717960e21b81526004016108b792919061332f565b60ca54604051631b594def60e31b81526001600160a01b039091169063daca6f7890612271908590859060040161332f565b602060405180830381865afa15801561228e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b291906132c2565b6122d3578082604051637ab683f760e01b81526004016108b7929190613348565b50600090815260d060205260409020805460ff19166001179055565b6040516001600160a01b0380851660248301528316604482015260648101829052610d789085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612863565b6001606555565b8015612420576000846001600160a01b03168360405160006040518083038185875af1925050503d80600081146123b4576040519150601f19603f3d011682016040523d82523d6000602084013e6123b9565b606091505b505090508061241a5760405163a906d43160e01b81526001600160a01b03861660048201526024810184905260606044820152601660648201527513985d1a5d99481d1c985b9cd9995c8819985a5b195960521b608482015260a4016108b7565b50610d78565b610d786001600160a01b0384168584612745565b609854604051636eab9b3560e11b81523360048201526001600160a01b039091169063dd57366a90602401602060405180830381865afa15801561247c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a091906132c2565b1580156124b857506097546001600160a01b03163314155b15611f4f5760405163537ebb8760e11b81523360048201526024016108b7565b6124e0612070565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586125153390565b6040516001600160a01b03909116815260200160405180910390a1565b60c9546001600160a01b03163314611f4f5760c95460405163c52de32160e01b81523360048201526001600160a01b0390911660248201526060604482015260136064820152726f6e6c79436861696e706f727442726964676560681b608482015260a4016108b7565b6001600160a01b0381166126045760408051630961777760e41b81526004810191909152601f60448201527f436f6e677265737320616464726573732063616e6e6f74206265207a65726f0060648201526001600160a01b03821660248201526084016108b7565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f92c0335399ecbaa35b0b21fc784a8ce59419e6786caf942b31db51ac8c29258490600090a250565b612656612938565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612515565b6001600160a01b0381166108c95760408051638eb40ca760e01b815260048101919091526016604482015275416464726573732063616e6e6f74206265207a65726f60501b60648201526001600160a01b03821660248201526084016108b7565b60005b8251811015610c3e578160cf600085848151811061270b5761270b613241565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016126eb565b6040516001600160a01b038316602482015260448101829052610c3e90849063a9059cbb60e01b90606401612323565b60d65460405163e4e3a7a960e01b81526001600160a01b0383811660048301529091169063e4e3a7a990602401602060405180830381865afa1580156127bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e391906132c2565b6108c95760408051633c84244160e21b81526001600160a01b03831660048201526024810191909152601b60448201527f42656e6566696369617279206e6f742077686974656c6973746564000000000060648201526084016108b7565b61284a8261259c565b61285381611f51565b61285b612981565b610d0b6129b0565b60006128b8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166129df9092919063ffffffff16565b90508051600014806128d95750808060200190518101906128d991906132c2565b610c3e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016108b7565b60335460ff16611f4f5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108b7565b600054610100900460ff166129a85760405162461bcd60e51b81526004016108b79061336a565b611f4f6129f6565b600054610100900460ff166129d75760405162461bcd60e51b81526004016108b79061336a565b611f4f612a29565b60606129ee8484600085612a50565b949350505050565b600054610100900460ff16612a1d5760405162461bcd60e51b81526004016108b79061336a565b6033805460ff19169055565b600054610100900460ff1661235a5760405162461bcd60e51b81526004016108b79061336a565b606082471015612ab15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016108b7565b600080866001600160a01b03168587604051612acd91906133b5565b60006040518083038185875af1925050503d8060008114612b0a576040519150601f19603f3d011682016040523d82523d6000602084013e612b0f565b606091505b5091509150612b2087838387612b2b565b979650505050505050565b60608315612b9a578251600003612b93576001600160a01b0385163b612b935760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108b7565b50816129ee565b6129ee8383815115612baf5781518083602001fd5b8060405162461bcd60e51b81526004016108b791906133d1565b6001600160a01b03811681146108c957600080fd5b600060208284031215612bf057600080fd5b8135612bfb81612bc9565b9392505050565b60008060408385031215612c1557600080fd5b50508035926020909101359150565b60008083601f840112612c3657600080fd5b50813567ffffffffffffffff811115612c4e57600080fd5b602083019150836020828501011115612c6657600080fd5b9250929050565b600080600080600060808688031215612c8557600080fd5b8535612c9081612bc9565b94506020860135935060408601359250606086013567ffffffffffffffff811115612cba57600080fd5b612cc688828901612c24565b969995985093965092949392505050565b600080600060608486031215612cec57600080fd5b8335612cf781612bc9565b9250602084013591506040840135612d0e81612bc9565b809150509250925092565b60008083601f840112612d2b57600080fd5b50813567ffffffffffffffff811115612d4357600080fd5b6020830191508360208260051b8501011115612c6657600080fd5b60008060208385031215612d7157600080fd5b823567ffffffffffffffff811115612d8857600080fd5b612d9485828601612d19565b90969095509350505050565b80151581146108c957600080fd5b60008060008060808587031215612dc457600080fd5b8435612dcf81612bc9565b9350602085013592506040850135612de681612bc9565b91506060850135612df681612da0565b939692955090935050565b600080600060608486031215612e1657600080fd5b8335612e2181612bc9565b92506020840135612e3181612bc9565b929592945050506040919091013590565b600080600060608486031215612e5757600080fd5b8335612e6281612bc9565b95602085013595506040909401359392505050565b60008060408385031215612e8a57600080fd5b8235612e9581612bc9565b91506020830135612ea581612bc9565b809150509250929050565b600080600080600060608688031215612ec857600080fd5b8535612ed381612bc9565b9450602086013567ffffffffffffffff80821115612ef057600080fd5b612efc89838a01612d19565b90965094506040880135915080821115612f1557600080fd5b50612cc688828901612d19565b600060208284031215612f3457600080fd5b5035919050565b60008060008060008060608789031215612f5457600080fd5b863567ffffffffffffffff80821115612f6c57600080fd5b612f788a838b01612d19565b90985096506020890135915080821115612f9157600080fd5b612f9d8a838b01612d19565b90965094506040890135915080821115612fb657600080fd5b50612fc389828a01612d19565b979a9699509497509295939492505050565b600080600060408486031215612fea57600080fd5b833567ffffffffffffffff81111561300157600080fd5b61300d86828701612d19565b9094509250506020840135612d0e81612da0565b6000806000806080858703121561303757600080fd5b843561304281612bc9565b966020860135965060408601359560600135945092505050565b6000806040838503121561306f57600080fd5b823561307a81612bc9565b946020939093013593505050565b60008060008060008060a087890312156130a157600080fd5b863567ffffffffffffffff8111156130b857600080fd5b6130c489828a01612c24565b90975095505060208701356130d881612bc9565b935060408701356130e881612bc9565b959894975092956060810135946080909101359350915050565b60008060008060008060a0878903121561311b57600080fd5b863561312681612bc9565b9550602087013561313681612bc9565b9450604087013561314681612bc9565b9350606087013561315681612bc9565b9250608087013567ffffffffffffffff81111561317257600080fd5b612fc389828a01612d19565b60008060006060848603121561319357600080fd5b833561319e81612bc9565b925060208401356131ae81612bc9565b91506040840135612d0e81612bc9565b6000602082840312156131d057600080fd5b5051919050565b6bffffffffffffffffffffffff19606096871b811682529490951b909316601485015260288401919091526048830152606882015260880190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561323b5761323b613212565b92915050565b634e487b7160e01b600052603260045260246000fd5b808202811582820484141761323b5761323b613212565b60008261328b57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561323b5761323b613212565b92835260208301919091526001600160a01b0316604082015260600190565b6000602082840312156132d457600080fd5b8151612bfb81612da0565b60005b838110156132fa5781810151838201526020016132e2565b50506000910152565b6000815180845261331b8160208601602086016132df565b601f01601f19169290920160200192915050565b8281526040602082015260006129ee6040830184613303565b60408152600061335b6040830185613303565b90508260208301529392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516133c78184602087016132df565b9190910192915050565b602081526000612bfb602083018461330356fea264697066735822122011e96c20b65180197b84b48e0f2651c3049f2405c78ae8180e21aa4aa3a5b3c864736f6c63430008160033
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Analyzing contract bytecode for vulnerabilities**
[codex:1138744] 
[codex:1138744] I’m parsing the large bytecode carefully to identify revert strings, function selectors, and storage patterns tied to roles and access control. I’m focusing on potential unprotected token transfers, initializer exposure, and key modifiers like onlyOwner or onlyChainportBridge to see if any function allows unauthorized token withdrawal. I’m also considering whether the initializer could be exploited if not yet called, although that depends on contract state unknown to me. I plan to run a script to detect dangerous opcodes like selfdestruct or delegatecall to deepen the analysis. This process might confirm whether there is any concrete exploit path or not.
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] # extract hex after 0x
[codex:1138744] m=re.search(r'0x[0-9a-fA-F]+', text)
[codex:1138744] if not m:
[codex:1138744]     print('no hex')
[codex:1138744]     raise SystemExit
[codex:1138744] hexstr=m.group(0)[2:]
[codex:1138744] code=bytes.fromhex(hexstr)
[codex:1138744] # opcode map for immediate lengths
[codex:1138744] op_imms={i: i-0x5f for i in range(0x60,0x80)}
[codex:1138744] op_imms.update({i: i-0x7f for i in range(0x80,0x90)})
[codex:1138744] # iterate
[codex:1138744] ops=[]
[codex:1138744] i=0
[codex:1138744] while i<len(code):
[codex:1138744]     op=code[i]
[codex:1138744]     ops.append((i,op))
[codex:1138744]     i+=1
[codex:1138744]     if op in op_imms:
[codex:1138744]         i+=op_imms[op]
[codex:1138744] # find interesting opcodes
[codex:1138744] names={
[codex:1138744]     0xf1:'CALL',
[codex:1138744]     0xf2:'CALLCODE',
[codex:1138744]     0xf4:'DELEGATECALL',
[codex:1138744]     0xf5:'CREATE2',
[codex:1138744]     0xf0:'CREATE',
[codex:1138744]     0xff:'SELFDESTRUCT',
[codex:1138744]     0xfa:'STATICCALL'
[codex:1138744] }
[codex:1138744] for op in [0xf1,0xf2,0xf4,0xf5,0xf0,0xff,0xfa]:
[codex:1138744]     offsets=[hex(o) for o,opc in ops if opc==op]
[codex:1138744]     print(names[op], len(offsets))
[codex:1138744]     print(offsets[:20])
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 51ms:
[codex:1138744] CALL 3
[codex:1138744] ['0x1351', '0x2384', '0x2ada']
[codex:1138744] CALLCODE 1
[codex:1138744] ['0x1367']
[codex:1138744] DELEGATECALL 1
[codex:1138744] ['0x4c']
[codex:1138744] CREATE2 1
[codex:1138744] ['0x138']
[codex:1138744] CREATE 0
[codex:1138744] []
[codex:1138744] SELFDESTRUCT 57
[codex:1138744] ['0x17', '0x10d', '0xa3f', '0xa40', '0xa41', '0x1157', '0x1158', '0x1159', '0x1a8c', '0x1a8d', '0x1a8e', '0x2c3b', '0x2c3c', '0x2c3d', '0x2c3e', '0x2c3f', '0x2c40', '0x2c41', '0x2c42', '0x2cab']
[codex:1138744] STATICCALL 11
[codex:1138744] ['0xa56', '0x10e0', '0x116e', '0x16a0', '0x1856', '0x1aa3', '0x21ae', '0x227d', '0x246b', '0x27ae', '0x32e9']
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Identifying metadata to improve disassembly**
[codex:1138744] 
[codex:1138744] I'm digging into why selfdestruct opcode counts are inflated, realizing the disassembler is parsing metadata bytes (like IPFS hashes) as code since it disassembles linearly without stopping at the runtime code end. The plan is to detect the metadata prefix `a264697066` following an `0xfe` invalid opcode and cut off disassembly there to avoid miscounting opcodes embedded in metadata. This should give more accurate opcode counts by ignoring appended metadata.
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:1138744] # find metadata start
[codex:1138744] meta_idx=hexstr.find('a264697066735822')
[codex:1138744] if meta_idx"'!=-1:
[codex:1138744]     hexstr_code=hexstr[:meta_idx-2]  # remove preceding '"'fe' maybe
[codex:1138744] else:
[codex:1138744]     hexstr_code=hexstr
[codex:1138744] code=bytes.fromhex(hexstr_code)
[codex:1138744] op_imms={i: i-0x5f for i in range(0x60,0x80)}
[codex:1138744] op_imms.update({i: i-0x7f for i in range(0x80,0x90)})
[codex:1138744] ops=[]
[codex:1138744] i=0
[codex:1138744] while i<len(code):
[codex:1138744]     op=code[i]
[codex:1138744]     ops.append((i,op))
[codex:1138744]     i+=1
[codex:1138744]     if op in op_imms:
[codex:1138744]         i+=op_imms[op]
[codex:1138744] # count interesting
[codex:1138744] names={0xf1:'CALL',0xf2:'CALLCODE',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf0:'CREATE',0xff:'SELFDESTRUCT',0xfa:'STATICCALL'}
[codex:1138744] for op in [0xf1,0xf2,0xf4,0xf5,0xf0,0xff,0xfa]:
[codex:1138744]     offsets=[o for o,opc in ops if opc==op]
[codex:1138744]     print(names[op], len(offsets), [hex(o) for o in offsets[:10]])
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 33ms:
[codex:1138744] CALL 3 ['0x1351', '0x2384', '0x2ada']
[codex:1138744] CALLCODE 1 ['0x1367']
[codex:1138744] DELEGATECALL 1 ['0x4c']
[codex:1138744] CREATE2 1 ['0x138']
[codex:1138744] CREATE 0 []
[codex:1138744] SELFDESTRUCT 57 ['0x17', '0x10d', '0xa3f', '0xa40', '0xa41', '0x1157', '0x1158', '0x1159', '0x1a8c', '0x1a8d']
[codex:1138744] STATICCALL 11 ['0xa56', '0x10e0', '0x116e', '0x16a0', '0x1856', '0x1aa3', '0x21ae', '0x227d', '0x246b', '0x27ae']
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Correcting opcode classification**
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:1138744] meta_idx=hexstr.find('a264697066735822')
[codex:1138744] if meta_idx"'!=-1:
[codex:1138744]     # cut at metadata start; remove potential preceding '"'fe'
[codex:1138744]     hexstr_code=hexstr[:meta_idx-2]
[codex:1138744] else:
[codex:1138744]     hexstr_code=hexstr
[codex:1138744] code=bytes.fromhex(hexstr_code)
[codex:1138744] # immediate lengths for PUSH1..PUSH32
[codex:1138744] op_imms={i: i-0x5f for i in range(0x60,0x80)}
[codex:1138744] ops=[]
[codex:1138744] i=0
[codex:1138744] while i<len(code):
[codex:1138744]     op=code[i]
[codex:1138744]     ops.append((i,op))
[codex:1138744]     i+=1
[codex:1138744]     if op in op_imms:
[codex:1138744]         i+=op_imms[op]
[codex:1138744] # count interesting
[codex:1138744] names={0xf1:'CALL',0xf2:'CALLCODE',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf0:'CREATE',0xff:'SELFDESTRUCT',0xfa:'STATICCALL'}
[codex:1138744] for op in [0xf1,0xf2,0xf4,0xf5,0xf0,0xff,0xfa]:
[codex:1138744]     offsets=[o for o,opc in ops if opc==op]
[codex:1138744]     print(names[op], len(offsets), [hex(o) for o in offsets[:10]])
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 32ms:
[codex:1138744] CALL 2 ['0x2384', '0x2ada']
[codex:1138744] CALLCODE 0 []
[codex:1138744] DELEGATECALL 0 []
[codex:1138744] CREATE2 0 []
[codex:1138744] CREATE 0 []
[codex:1138744] SELFDESTRUCT 0 []
[codex:1138744] STATICCALL 10 ['0xa56', '0x10e0', '0x116e', '0x16a0', '0x1856', '0x1aa3', '0x21ae', '0x227d', '0x246b', '0x27ae']
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Analyzing CALL opcodes and surrounding bytes**
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:1138744] meta_idx=hexstr.find('a264697066735822')
[codex:1138744] if meta_idx"'!=-1:
[codex:1138744]     hexstr_code=hexstr[:meta_idx-2]
[codex:1138744] else:
[codex:1138744]     hexstr_code=hexstr
[codex:1138744] code=bytes.fromhex(hexstr_code)
[codex:1138744] # simple disassembler
[codex:1138744] op_imms={i: i-0x5f for i in range(0x60,0x80)}
[codex:1138744] opnames={
[codex:1138744]     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:1138744]     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:1138744]     0x20:'SHA3',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:1138744]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1138744]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',
[codex:1138744]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:1138744] }
[codex:1138744] # add DUP/SWAP/LOG
[codex:1138744] for i in range(0x80,0x90): opnames[i]=f'DUP{i-0x7f}'
[codex:1138744] for i in range(0x90,0xa0): opnames[i]=f'SWAP{i-0x8f}'
[codex:1138744] for i in range(0xa0,0xa5): opnames[i]=f'LOG{i-0x9f}'
[codex:1138744] 
[codex:1138744] # build list of opcodes with offsets
[codex:1138744] ops=[]
[codex:1138744] i=0
[codex:1138744] while i<len(code):
[codex:1138744]     op=code[i]
[codex:1138744]     name=opnames.get(op, f'OP{op:02x}')
[codex:1138744]     imm=None
[codex:1138744]     i0=i
[codex:1138744]     i+=1
[codex:1138744]     if op in op_imms:
[codex:1138744]         n=op_imms[op]
[codex:1138744]         imm=code[i:i+n]
[codex:1138744]         i+=n
[codex:1138744]     ops.append((i0,op,name,imm))
[codex:1138744] 
[codex:1138744] # function to print around offset
[codex:1138744] 
[codex:1138744] def dump_around(target, radius=20):
[codex:1138744]     # find index
[codex:1138744]     idx=next((j for j,(o,_,_,_) in enumerate(ops) if o==target), None)
[codex:1138744]     if idx is None:
[codex:1138744]         # maybe target within immediate, find nearest previous
[codex:1138744]         idx=next((j for j,(o,_,_,_) in enumerate(ops) if o>target), None)
[codex:1138744]         if idx is None:
[codex:1138744]             idx=len(ops)-1
[codex:1138744]     start=max(0, idx-radius)
[codex:1138744]     end=min(len(ops), idx+radius+1)
[codex:1138744]     for o,op,name,imm in ops[start:end]:
[codex:1138744]         if imm is not None:
[codex:1138744]             imm_hex=imm.hex()
[codex:1138744]             print(f'{o:06x}: {name} 0x{imm_hex}')
[codex:1138744]         else:
[codex:1138744]             print(f'{o:06x}: {name}')
[codex:1138744]     print('---')
[codex:1138744] 
[codex:1138744] for t in [0x2384, 0x2ada]:
[codex:1138744]     print('Around', hex(t))
[codex:1138744]     dump_around(t, radius=25)
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 42ms:
[codex:1138744] Around 0x2384
[codex:1138744] 002362: DUP1
[codex:1138744] 002363: ISZERO
[codex:1138744] 002364: OP61 0x2420
[codex:1138744] 002367: JUMPI
[codex:1138744] 002368: OP60 0x00
[codex:1138744] 00236a: DUP5
[codex:1138744] 00236b: OP60 0x01
[codex:1138744] 00236d: OP60 0x01
[codex:1138744] 00236f: OP60 0xa0
[codex:1138744] 002371: SHL
[codex:1138744] 002372: SUB
[codex:1138744] 002373: AND
[codex:1138744] 002374: DUP4
[codex:1138744] 002375: OP60 0x40
[codex:1138744] 002377: MLOAD
[codex:1138744] 002378: OP60 0x00
[codex:1138744] 00237a: OP60 0x40
[codex:1138744] 00237c: MLOAD
[codex:1138744] 00237d: DUP1
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Analyzing low-level call patterns and call value detection**
[codex:1138744] 
[codex:1138744] I'm focusing on how to decode call arguments before the low-level call to identify the value and target. The goal is to reconstruct stack state around the call using a simple stack simulation or symbolic execution. I'm interpreting patterns from `Address.functionCall` and `functionCallWithValue` and examining the flow around success checks and revert jumps, trying to find if any ETH value greater than zero is sent or if calls are user-supplied. I'll dig into instructions near offsets 0x2320–0x2390 to clarify the exact stack state at the call site.
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:1138744] meta_idx=hexstr.find('a264697066735822')
[codex:1138744] if meta_idx"'!=-1:
[codex:1138744]     hexstr_code=hexstr[:meta_idx-2]
[codex:1138744] else:
[codex:1138744]     hexstr_code=hexstr
[codex:1138744] code=bytes.fromhex(hexstr_code)
[codex:1138744] # disassemble with offsets
[codex:1138744] op_imms={i: i-0x5f for i in range(0x60,0x80)}
[codex:1138744] opnames={0x00:'"'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1138744] for i in range(0x80,0x90): opnames[i]=f'DUP{i-0x7f}'
[codex:1138744] for i in range(0x90,0xa0): opnames[i]=f'SWAP{i-0x8f}'
[codex:1138744] for i in range(0xa0,0xa5): opnames[i]=f'LOG{i-0x9f}'
[codex:1138744] 
[codex:1138744] ops=[]
[codex:1138744] i=0
[codex:1138744] while i<len(code):
[codex:1138744]     op=code[i]
[codex:1138744]     name=opnames.get(op,f'OP{op:02x}')
[codex:1138744]     imm=None
[codex:1138744]     i0=i
[codex:1138744]     i+=1
[codex:1138744]     if op in op_imms:
[codex:1138744]         n=op_imms[op]
[codex:1138744]         imm=code[i:i+n]
[codex:1138744]         i+=n
[codex:1138744]     ops.append((i0,op,name,imm))
[codex:1138744] 
[codex:1138744] # print a window
[codex:1138744] start=0x2320
[codex:1138744] end=0x23c0
[codex:1138744] for o,op,name,imm in ops:
[codex:1138744]     if o<start: continue
[codex:1138744]     if o>=end: break
[codex:1138744]     if imm is not None:
[codex:1138744]         print(f'{o:06x}: {name} 0x{imm.hex()}')
[codex:1138744]     else:
[codex:1138744]         print(f'{o:06x}: {name}')
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 36ms:
[codex:1138744] 002320: OP60 0x84
[codex:1138744] 002322: ADD
[codex:1138744] 002323: JUMPDEST
[codex:1138744] 002324: OP60 0x40
[codex:1138744] 002326: DUP1
[codex:1138744] 002327: MLOAD
[codex:1138744] 002328: OP60 0x1f
[codex:1138744] 00232a: NOT
[codex:1138744] 00232b: DUP2
[codex:1138744] 00232c: DUP5
[codex:1138744] 00232d: SUB
[codex:1138744] 00232e: ADD
[codex:1138744] 00232f: DUP2
[codex:1138744] 002330: MSTORE
[codex:1138744] 002331: SWAP2
[codex:1138744] 002332: SWAP1
[codex:1138744] 002333: MSTORE
[codex:1138744] 002334: OP60 0x20
[codex:1138744] 002336: DUP2
[codex:1138744] 002337: ADD
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Analyzing CALL stack arguments symbolically**
[codex:1138744] 
[codex:1138744] I'm examining the EVM instructions around a CALL to understand how the value argument is passed, especially whether it's zero or symbolic. To get clarity, I'm planning to simulate the stack symbolically from a nearby JUMPDEST, assigning placeholders to unknown stack values and tracking their flow until the CALL instruction, hoping this helps confirm if the value sent is zero or variable.
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:1138744] meta_idx=hexstr.find('a264697066735822')
[codex:1138744] if meta_idx"'!=-1:
[codex:1138744]     hexstr_code=hexstr[:meta_idx-2]
[codex:1138744] else:
[codex:1138744]     hexstr_code=hexstr
[codex:1138744] code=bytes.fromhex(hexstr_code)
[codex:1138744] 
[codex:1138744] # disassemble with offsets
[codex:1138744] op_imms={i: i-0x5f for i in range(0x60,0x80)}
[codex:1138744] 
[codex:1138744] ops=[]
[codex:1138744] i=0
[codex:1138744] while i<len(code):
[codex:1138744]     op=code[i]
[codex:1138744]     imm=None
[codex:1138744]     i0=i
[codex:1138744]     i+=1
[codex:1138744]     if op in op_imms:
[codex:1138744]         n=op_imms[op]
[codex:1138744]         imm=code[i:i+n]
[codex:1138744]         i+=n
[codex:1138744]     ops.append((i0,op,imm))
[codex:1138744] 
[codex:1138744] # map opcodes to names for relevant ones
[codex:1138744] names={
[codex:1138744]     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:1138744]     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:1138744]     0x20:'SHA3',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:1138744]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1138744]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',
[codex:1138744]     0xf1:'CALL',0xfd:'REVERT',0xfa:'STATICCALL',0xf3:'RETURN',0xfe:'INVALID',
[codex:1138744] }
[codex:1138744] for i in range(0x80,0x90): names[i]=f'DUP{i-0x7f}'
[codex:1138744] for i in range(0x90,0xa0): names[i]=f'SWAP{i-0x8f}'
[codex:1138744] 
[codex:1138744] # get ops between start and end offsets
[codex:1138744] start=0x2361
[codex:1138744] end=0x2385
[codex:1138744] # find index range
[codex:1138744] ops_range=[(o,op,imm) for (o,op,imm) in ops if start<=o<end]
[codex:1138744] 
[codex:1138744] # simple symbolic stack
[codex:1138744] class Sym:
[codex:1138744]     def __init__(self,name): self.name=name
[codex:1138744]     def __repr__(self): return self.name
[codex:1138744] 
[codex:1138744] stack=[Sym(f's{i}') for i in range(8)]  # initial unknowns (top at end?)
[codex:1138744] # We'll treat end of list as top of stack.
[codex:1138744] 
[codex:1138744] # helper for stack operations
[codex:1138744] 
[codex:1138744] def push(val):
[codex:1138744]     stack.append(val)
[codex:1138744] 
[codex:1138744] def pop():
[codex:1138744]     return stack.pop() if stack else Sym('underflow')
[codex:1138744] 
[codex:1138744] def dup(n):
[codex:1138744]     # dup1 duplicates top
[codex:1138744]     idx=-n
[codex:1138744]     stack.append(stack[idx] if len(stack)>=n else Sym('underflow'))
[codex:1138744] 
[codex:1138744] def swap(n):
[codex:1138744]     idx=-1-n
[codex:1138744]     if len(stack)>=n+1:
[codex:1138744]         stack[-1], stack[idx] = stack[idx], stack[-1]
[codex:1138744]     else:
[codex:1138744]         # pad with unknowns
[codex:1138744]         while len(stack)<n+1:
[codex:1138744]             stack.insert(0, Sym('pad'))
[codex:1138744]         stack[-1], stack[idx] = stack[idx], stack[-1]
[codex:1138744] 
[codex:1138744] # For binary ops, just pop 2 and push new symbol
[codex:1138744] 
[codex:1138744] def binop(opname):
[codex:1138744]     b=pop(); a=pop();
[codex:1138744]     push(Sym(f'({a}{opname}{b})'))
[codex:1138744] 
[codex:1138744] # Run
[codex:1138744] for o,op,imm in ops_range:
[codex:1138744]     name=names.get(op,f'OP{op:02x}')
[codex:1138744]     if name.startswith('PUSH'):
[codex:1138744]         if op==0x5f:
[codex:1138744]             push(Sym('0'))
[codex:1138744]         else:
[codex:1138744]             push(Sym('0x'+imm.hex()))
[codex:1138744]     elif name.startswith('DUP'):
[codex:1138744]         n=int(name[3:])
[codex:1138744]         dup(n)
[codex:1138744]     elif name.startswith('SWAP'):
[codex:1138744]         n=int(name[4:])
[codex:1138744]         swap(n)
[codex:1138744]     elif name in ('ADD','SUB','MUL','DIV','SHL','SHR','AND','OR','XOR','EQ'):
[codex:1138744]         binop(name)
[codex:1138744]     elif name in ('ISZERO','NOT'):
[codex:1138744]         a=pop(); push(Sym(f'{name}({a})'))
[codex:1138744]     elif name in ('POP','MLOAD','SLOAD','CALLDATALOAD','MSIZE','GAS','RETURNDATASIZE','CALLER','CALLVALUE','ADDRESS','BALANCE','EXTCODESIZE'):
[codex:1138744]         # treat as consuming? POP consumes 1, others push unknown
[codex:1138744]         if name=='POP':
[codex:1138744]             pop()
[codex:1138744]         else:
[codex:1138744]             push(Sym(name.lower()))
[codex:1138744]     elif name in ('MSTORE','MSTORE8','SSTORE','JUMP','JUMPI','RETURN','REVERT','CALL'):  # handle call specially later
[codex:1138744]         if name=='MSTORE':
[codex:1138744]             pop(); pop()
[codex:1138744]         elif name=='MSTORE8':
[codex:1138744]             pop(); pop()
[codex:1138744]         elif name=='SSTORE':
[codex:1138744]             pop(); pop()
[codex:1138744]         elif name=='JUMPI':
[codex:1138744]             pop(); pop()
[codex:1138744]         elif name=='JUMP':
[codex:1138744]             pop()
[codex:1138744]         elif name=='CALL':
[codex:1138744]             # pop 7 args and push success
[codex:1138744]             args=[pop() for _ in range(7)]
[codex:1138744]             # order: out_size, out_offset, in_size, in_offset, value, to, gas (top first)
[codex:1138744]             out_size,out_offset,in_size,in_offset,value,to,gas=args
[codex:1138744]             print('CALL args at',hex(o))
[codex:1138744]             print(' gas',gas)
[codex:1138744]             print(' to',to)
[codex:1138744]             print(' value',value)
[codex:1138744]             print(' in_offset',in_offset)
[codex:1138744]             print(' in_size',in_size)
[codex:1138744]             print(' out_offset',out_offset)
[codex:1138744]             print(' out_size',out_size)
[codex:1138744]             push(Sym('call_success'))
[codex:1138744]         else:
[codex:1138744]             pass
[codex:1138744]     else:
[codex:1138744]         # unknown op, ignore
[codex:1138744]         pass
[codex:1138744]     # print stack debug
[codex:1138744]     #print(hex(o), name, 'stack', stack)
[codex:1138744] 
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 46ms:
[codex:1138744] CALL args at 0x2384
[codex:1138744]  gas mload
[codex:1138744]  to mload
[codex:1138744]  value (mloadSUBs1)
[codex:1138744]  in_offset mload
[codex:1138744]  in_size (s4AND(s5SUB(s6SHLs2)))
[codex:1138744]  out_offset s3
[codex:1138744]  out_size gas
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Analyzing Address library call patterns**
[codex:1138744] 
[codex:1138744] I'm figuring out that the stack simulation is off because the initial conditions and some instruction models are wrong. Instead, I'm pivoting to identify calls from the Address library by disassembling code near certain addresses, looking for hints like `SELFBALANCE` checks that match the `sendValue` function. This way I can better understand how ETH transfers and function calls are handled in the bytecode.
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:1138744] meta_idx=hexstr.find('a264697066735822')
[codex:1138744] if meta_idx"'!=-1:
[codex:1138744]     hexstr_code=hexstr[:meta_idx-2]
[codex:1138744] else:
[codex:1138744]     hexstr_code=hexstr
[codex:1138744] code=bytes.fromhex(hexstr_code)
[codex:1138744] 
[codex:1138744] # disassemble
[codex:1138744] op_imms={i: i-0x5f for i in range(0x60,0x80)}
[codex:1138744] 
[codex:1138744] names={
[codex:1138744]     0x00:'"'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf1:'CALL',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID'
[codex:1138744] }
[codex:1138744] for i in range(0x80,0x90): names[i]=f'DUP{i-0x7f}'
[codex:1138744] for i in range(0x90,0xa0): names[i]=f'SWAP{i-0x8f}'
[codex:1138744] 
[codex:1138744] ops=[]
[codex:1138744] i=0
[codex:1138744] while i<len(code):
[codex:1138744]     op=code[i]
[codex:1138744]     imm=None
[codex:1138744]     i0=i
[codex:1138744]     i+=1
[codex:1138744]     if op in op_imms:
[codex:1138744]         n=op_imms[op]
[codex:1138744]         imm=code[i:i+n]
[codex:1138744]         i+=n
[codex:1138744]     ops.append((i0,op,imm))
[codex:1138744] 
[codex:1138744] start=0x2a40
[codex:1138744] end=0x2b30
[codex:1138744] for o,op,imm in ops:
[codex:1138744]     if o<start: continue
[codex:1138744]     if o>=end: break
[codex:1138744]     name=names.get(op,f'OP{op:02x}')
[codex:1138744]     if imm is not None:
[codex:1138744]         print(f'{o:06x}: {name} 0x{imm.hex()}')
[codex:1138744]     else:
[codex:1138744]         print(f'{o:06x}: {name}')
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 33ms:
[codex:1138744] 002a40: OP60 0xe5
[codex:1138744] 002a42: SHL
[codex:1138744] 002a43: DUP2
[codex:1138744] 002a44: MSTORE
[codex:1138744] 002a45: OP60 0x04
[codex:1138744] 002a47: ADD
[codex:1138744] 002a48: OP61 0x08b7
[codex:1138744] 002a4b: SWAP1
[codex:1138744] 002a4c: OP61 0x336a
[codex:1138744] 002a4f: JUMP
[codex:1138744] 002a50: JUMPDEST
[codex:1138744] 002a51: OP60 0x60
[codex:1138744] 002a53: DUP3
[codex:1138744] 002a54: SELFBALANCE
[codex:1138744] 002a55: LT
[codex:1138744] 002a56: ISZERO
[codex:1138744] 002a57: OP61 0x2ab1
[codex:1138744] 002a5a: JUMPI
[codex:1138744] 002a5b: OP60 0x40
[codex:1138744] 002a5d: MLOAD
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Analyzing sendValue usage for ETH transfers**
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:1138744] meta_idx=hexstr.find('a264697066735822')
[codex:1138744] if meta_idx"'!=-1:
[codex:1138744]     hexstr_code=hexstr[:meta_idx-2]
[codex:1138744] else:
[codex:1138744]     hexstr_code=hexstr
[codex:1138744] code=bytes.fromhex(hexstr_code)
[codex:1138744] 
[codex:1138744] # find PUSH2 0x2a50 occurrences
[codex:1138744] occ=[]
[codex:1138744] i=0
[codex:1138744] while i<len(code):
[codex:1138744]     op=code[i]
[codex:1138744]     if 0x60<=op<=0x7f:
[codex:1138744]         n=op-0x5f
[codex:1138744]         imm=code[i+1:i+1+n]
[codex:1138744]         if n==2 and imm==bytes.fromhex('"'2a50'):
[codex:1138744]             occ.append(i)
[codex:1138744]         i+=1+n
[codex:1138744]     else:
[codex:1138744]         i+=1
[codex:1138744] print('PUSH2 0x2a50 occurrences',len(occ), [hex(o) for o in occ[:10]])
[codex:1138744] 
[codex:1138744] # show context around each
[codex:1138744] for o in occ[:5]:
[codex:1138744]     start=max(0,o-10)
[codex:1138744]     end=min(len(code),o+10)
[codex:1138744]     print('context at',hex(o), code[start:end].hex())
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 30ms:
[codex:1138744] PUSH2 0x2a50 occurrences 1 ['0x29ea']
[codex:1138744] context at 0x29ea 60606129ee8484600085612a50565b9493505050
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Analyzing sendValue usage in bytecode**
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:1138744] meta_idx=hexstr.find('a264697066735822')
[codex:1138744] if meta_idx"'!=-1:
[codex:1138744]     hexstr_code=hexstr[:meta_idx-2]
[codex:1138744] else:
[codex:1138744]     hexstr_code=hexstr
[codex:1138744] code=bytes.fromhex(hexstr_code)
[codex:1138744] 
[codex:1138744] # disassemble helper
[codex:1138744] op_imms={i: i-0x5f for i in range(0x60,0x80)}
[codex:1138744] 
[codex:1138744] names={
[codex:1138744]     0x00:'"'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf1:'CALL',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID'
[codex:1138744] }
[codex:1138744] for i in range(0x80,0x90): names[i]=f'DUP{i-0x7f}'
[codex:1138744] for i in range(0x90,0xa0): names[i]=f'SWAP{i-0x8f}'
[codex:1138744] 
[codex:1138744] ops=[]
[codex:1138744] i=0
[codex:1138744] while i<len(code):
[codex:1138744]     op=code[i]
[codex:1138744]     imm=None
[codex:1138744]     i0=i
[codex:1138744]     i+=1
[codex:1138744]     if op in op_imms:
[codex:1138744]         n=op_imms[op]
[codex:1138744]         imm=code[i:i+n]
[codex:1138744]         i+=n
[codex:1138744]     ops.append((i0,op,imm))
[codex:1138744] 
[codex:1138744] start=0x2990
[codex:1138744] end=0x2a20
[codex:1138744] for o,op,imm in ops:
[codex:1138744]     if o<start: continue
[codex:1138744]     if o>=end: break
[codex:1138744]     name=names.get(op,f'OP{op:02x}')
[codex:1138744]     if imm is not None:
[codex:1138744]         print(f'{o:06x}: {name} 0x{imm.hex()}')
[codex:1138744]     else:
[codex:1138744]         print(f'{o:06x}: {name}')
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 34ms:
[codex:1138744] 002990: JUMPI
[codex:1138744] 002991: OP60 0x40
[codex:1138744] 002993: MLOAD
[codex:1138744] 002994: OP62 0x461bcd
[codex:1138744] 002998: OP60 0xe5
[codex:1138744] 00299a: SHL
[codex:1138744] 00299b: DUP2
[codex:1138744] 00299c: MSTORE
[codex:1138744] 00299d: OP60 0x04
[codex:1138744] 00299f: ADD
[codex:1138744] 0029a0: OP61 0x08b7
[codex:1138744] 0029a3: SWAP1
[codex:1138744] 0029a4: OP61 0x336a
[codex:1138744] 0029a7: JUMP
[codex:1138744] 0029a8: JUMPDEST
[codex:1138744] 0029a9: OP61 0x1f4f
[codex:1138744] 0029ac: OP61 0x29f6
[codex:1138744] 0029af: JUMP
[codex:1138744] 0029b0: JUMPDEST
[codex:1138744] 0029b1: OP60 0x00
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Analyzing sendValue usage and access controls**
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:1138744] meta_idx=hexstr.find('a264697066735822')
[codex:1138744] if meta_idx"'!=-1:
[codex:1138744]     hexstr_code=hexstr[:meta_idx-2]
[codex:1138744] else:
[codex:1138744]     hexstr_code=hexstr
[codex:1138744] code=bytes.fromhex(hexstr_code)
[codex:1138744] 
[codex:1138744] # search for PUSH2 0x29df
[codex:1138744] occ=[]
[codex:1138744] i=0
[codex:1138744] while i<len(code):
[codex:1138744]     op=code[i]
[codex:1138744]     if 0x60<=op<=0x7f:
[codex:1138744]         n=op-0x5f
[codex:1138744]         imm=code[i+1:i+1+n]
[codex:1138744]         if n==2 and imm==bytes.fromhex('"'29df'):
[codex:1138744]             occ.append(i)
[codex:1138744]         i+=1+n
[codex:1138744]     else:
[codex:1138744]         i+=1
[codex:1138744] print('PUSH2 0x29df occurrences',len(occ), [hex(o) for o in occ])
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 30ms:
[codex:1138744] PUSH2 0x29df occurrences 1 ['0x28aa']
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Disassembling function using sendValue**
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:1138744] meta_idx=hexstr.find('a264697066735822')
[codex:1138744] if meta_idx"'!=-1:
[codex:1138744]     hexstr_code=hexstr[:meta_idx-2]
[codex:1138744] else:
[codex:1138744]     hexstr_code=hexstr
[codex:1138744] code=bytes.fromhex(hexstr_code)
[codex:1138744] 
[codex:1138744] op_imms={i: i-0x5f for i in range(0x60,0x80)}
[codex:1138744] 
[codex:1138744] names={0x00:'"'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf1:'CALL',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID'}
[codex:1138744] for i in range(0x80,0x90): names[i]=f'DUP{i-0x7f}'
[codex:1138744] for i in range(0x90,0xa0): names[i]=f'SWAP{i-0x8f}'
[codex:1138744] 
[codex:1138744] ops=[]
[codex:1138744] i=0
[codex:1138744] while i<len(code):
[codex:1138744]     op=code[i]
[codex:1138744]     imm=None
[codex:1138744]     i0=i
[codex:1138744]     i+=1
[codex:1138744]     if op in op_imms:
[codex:1138744]         n=op_imms[op]
[codex:1138744]         imm=code[i:i+n]
[codex:1138744]         i+=n
[codex:1138744]     ops.append((i0,op,imm))
[codex:1138744] 
[codex:1138744] start=0x2870
[codex:1138744] end=0x28c0
[codex:1138744] for o,op,imm in ops:
[codex:1138744]     if o<start: continue
[codex:1138744]     if o>=end: break
[codex:1138744]     name=names.get(op,f'OP{op:02x}')
[codex:1138744]     if imm is not None:
[codex:1138744]         print(f'{o:06x}: {name} 0x{imm.hex()}')
[codex:1138744]     else:
[codex:1138744]         print(f'{o:06x}: {name}')
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 32ms:
[codex:1138744] 002870: ADD
[codex:1138744] 002871: OP60 0x40
[codex:1138744] 002873: MSTORE
[codex:1138744] 002874: DUP1
[codex:1138744] 002875: OP60 0x20
[codex:1138744] 002877: DUP2
[codex:1138744] 002878: MSTORE
[codex:1138744] 002879: OP60 0x20
[codex:1138744] 00287b: ADD
[codex:1138744] 00287c: OP7f 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
[codex:1138744] 00289d: DUP2
[codex:1138744] 00289e: MSTORE
[codex:1138744] 00289f: POP
[codex:1138744] 0028a0: DUP6
[codex:1138744] 0028a1: OP60 0x01
[codex:1138744] 0028a3: OP60 0x01
[codex:1138744] 0028a5: OP60 0xa0
[codex:1138744] 0028a7: SHL
[codex:1138744] 0028a8: SUB
[codex:1138744] 0028a9: AND
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Analyzing SafeERC20 and access controls**
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:1138744] meta_idx=hexstr.find('a264697066735822')
[codex:1138744] if meta_idx"'!=-1:
[codex:1138744]     hexstr_code=hexstr[:meta_idx-2]
[codex:1138744] else:
[codex:1138744]     hexstr_code=hexstr
[codex:1138744] code=bytes.fromhex(hexstr_code)
[codex:1138744] 
[codex:1138744] # find PUSH2 0x1f0f occurrences
[codex:1138744] occ=[]
[codex:1138744] i=0
[codex:1138744] while i<len(code):
[codex:1138744]     op=code[i]
[codex:1138744]     if 0x60<=op<=0x7f:
[codex:1138744]         n=op-0x5f
[codex:1138744]         imm=code[i+1:i+1+n]
[codex:1138744]         if n==2 and imm==bytes.fromhex('"'1f0f'):
[codex:1138744]             occ.append(i)
[codex:1138744]         i+=1+n
[codex:1138744]     else:
[codex:1138744]         i+=1
[codex:1138744] print('PUSH2 0x1f0f occurrences',len(occ))
[codex:1138744] print([hex(o) for o in occ[:20]])
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 34ms:
[codex:1138744] PUSH2 0x1f0f occurrences 9
[codex:1138744] ['0x871', '0x8d0', '0xbc5', '0xd82', '0xdd9', '0xee1', '0xf48', '0x192a', '0x1db6']
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Analyzing modifiers and guard functions**
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:1138744] meta_idx=hexstr.find('a264697066735822')
[codex:1138744] if meta_idx"'!=-1:
[codex:1138744]     hexstr_code=hexstr[:meta_idx-2]
[codex:1138744] else:
[codex:1138744]     hexstr_code=hexstr
[codex:1138744] code=bytes.fromhex(hexstr_code)
[codex:1138744] 
[codex:1138744] op_imms={i: i-0x5f for i in range(0x60,0x80)}
[codex:1138744] 
[codex:1138744] names={0x00:'"'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf1:'CALL',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID'}
[codex:1138744] for i in range(0x80,0x90): names[i]=f'DUP{i-0x7f}'
[codex:1138744] for i in range(0x90,0xa0): names[i]=f'SWAP{i-0x8f}'
[codex:1138744] 
[codex:1138744] ops=[]
[codex:1138744] i=0
[codex:1138744] while i<len(code):
[codex:1138744]     op=code[i]
[codex:1138744]     imm=None
[codex:1138744]     i0=i
[codex:1138744]     i+=1
[codex:1138744]     if op in op_imms:
[codex:1138744]         n=op_imms[op]
[codex:1138744]         imm=code[i:i+n]
[codex:1138744]         i+=n
[codex:1138744]     ops.append((i0,op,imm))
[codex:1138744] 
[codex:1138744] start=0x2000
[codex:1138744] end=0x2090
[codex:1138744] for o,op,imm in ops:
[codex:1138744]     if o<start: continue
[codex:1138744]     if o>=end: break
[codex:1138744]     name=names.get(op,f'OP{op:02x}')
[codex:1138744]     if imm is not None:
[codex:1138744]         print(f'{o:06x}: {name} 0x{imm.hex()}')
[codex:1138744]     else:
[codex:1138744]         print(f'{o:06x}: {name}')
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 42ms:
[codex:1138744] 002010: SWAP1
[codex:1138744] 002011: OP60 0x00
[codex:1138744] 002013: SWAP1
[codex:1138744] 002014: OPa2
[codex:1138744] 002015: POP
[codex:1138744] 002016: JUMP
[codex:1138744] 002017: JUMPDEST
[codex:1138744] 002018: OP60 0x02
[codex:1138744] 00201a: OP60 0x65
[codex:1138744] 00201c: SLOAD
[codex:1138744] 00201d: SUB
[codex:1138744] 00201e: OP61 0x2069
[codex:1138744] 002021: JUMPI
[codex:1138744] 002022: OP60 0x40
[codex:1138744] 002024: MLOAD
[codex:1138744] 002025: OP62 0x461bcd
[codex:1138744] 002029: OP60 0xe5
[codex:1138744] 00202b: SHL
[codex:1138744] 00202c: DUP2
[codex:1138744] 00202d: MSTORE
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Analyzing storage writes for access control**
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:1138744] meta_idx=hexstr.find('a264697066735822')
[codex:1138744] if meta_idx"'!=-1:
[codex:1138744]     hexstr_code=hexstr[:meta_idx-2]
[codex:1138744] else:
[codex:1138744]     hexstr_code=hexstr
[codex:1138744] code=bytes.fromhex(hexstr_code)
[codex:1138744] 
[codex:1138744] # disassemble
[codex:1138744] op_imms={i: i-0x5f for i in range(0x60,0x80)}
[codex:1138744] ops=[]
[codex:1138744] i=0
[codex:1138744] while i<len(code):
[codex:1138744]     op=code[i]
[codex:1138744]     imm=None
[codex:1138744]     i0=i
[codex:1138744]     i+=1
[codex:1138744]     if op in op_imms:
[codex:1138744]         n=op_imms[op]
[codex:1138744]         imm=code[i:i+n]
[codex:1138744]         i+=n
[codex:1138744]     ops.append((i0,op,imm))
[codex:1138744] 
[codex:1138744] # gather SSTORE occurrences and inspect immediate before
[codex:1138744] sstore=0x55
[codex:1138744] slots=[]
[codex:1138744] for idx,(o,op,imm) in enumerate(ops):
[codex:1138744]     if op==sstore:
[codex:1138744]         # look back for a PUSH of slot as immediate? usually sequence: PUSH <value> PUSH <slot> SSTORE or compute
[codex:1138744]         prev=ops[idx-1] if idx>=1 else None
[codex:1138744]         prev2=ops[idx-2] if idx>=2 else None
[codex:1138744]         slot=None
[codex:1138744]         if prev and prev[1] in op_imms:
[codex:1138744]             slot=int.from_bytes(prev[2], '"'big')
[codex:1138744]         elif prev2 and prev2[1] in op_imms:
[codex:1138744]             slot=int.from_bytes(prev2[2], 'big')
[codex:1138744]         slots.append((o,slot,prev,prev2))
[codex:1138744] 
[codex:1138744] # print unique slots
[codex:1138744] unique=sorted({s for _,s,_,_ in slots if s is not None})
[codex:1138744] print('SSTORE count',len(slots))
[codex:1138744] print('Slots constants',unique)
[codex:1138744] # show sstores with slot 0x97 if any
[codex:1138744] for o,slot,prev,prev2 in slots:
[codex:1138744]     if slot==0x97:
[codex:1138744]         print('SSTORE slot 0x97 at',hex(o),'prev',prev,'prev2',prev2)
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 32ms:
[codex:1138744] SSTORE count 47
[codex:1138744] Slots constants [0, 101]
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Analyzing storage slots and initializer protections**
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:1138744] # find occurrences
[codex:1138744] for sig in ['a9059cbb','23b872dd','18160ddd','70a08231']:
[codex:1138744]     idxs=[m.start() for m in re.finditer(sig, hexstr)]
[codex:1138744]     print(sig, 'occurrences', len(idxs), 'first', idxs[:5])
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 27ms:
[codex:1138744] a9059cbb occurrences 1 first [20172]
[codex:1138744] 23b872dd occurrences 1 first [17968]
[codex:1138744] 18160ddd occurrences 1 first [8858]
[codex:1138744] 70a08231 occurrences 4 first [8546, 8602, 11484, 11546]
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Checking bytecode offsets for transfer functions**
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:1138744] for sig in ['a9059cbb','23b872dd']:
[codex:1138744]     idx=hexstr.find(sig)
[codex:1138744]     if idx"'!=-1:
[codex:1138744]         byte_offset=idx//2
[codex:1138744]         print(sig, '"'hex index', idx, 'byte offset', hex(byte_offset))
[codex:1138744]         # show some context bytes around
[codex:1138744]         start=max(0, idx-40)
[codex:1138744]         end=min(len(hexstr), idx+40)
[codex:1138744]         print(hexstr[start:end])
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 26ms:
[codex:1138744] a9059cbb hex index 20172 byte offset 0x2766
[codex:1138744] 16602482015260448101829052610c3e90849063a9059cbb60e01b90606401612323565b60d65460
[codex:1138744] 23b872dd hex index 17968 byte offset 0x2318
[codex:1138744] 16604482015260648101829052610d789085906323b872dd60e01b906084015b60408051601f1981
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Disassembling around specific offset**
[codex:1138744] exec
[codex:1138744] /bin/bash -lc "python - <<'PY'
[codex:1138744] import re
[codex:1138744] from pathlib import Path
[codex:1138744] text=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:1138744] hexstr=re.search(r'0x[0-9a-fA-F]+', text).group(0)[2:]
[codex:1138744] meta_idx=hexstr.find('a264697066735822')
[codex:1138744] if meta_idx"'!=-1:
[codex:1138744]     hexstr_code=hexstr[:meta_idx-2]
[codex:1138744] else:
[codex:1138744]     hexstr_code=hexstr
[codex:1138744] code=bytes.fromhex(hexstr_code)
[codex:1138744] 
[codex:1138744] # disassemble
[codex:1138744] op_imms={i: i-0x5f for i in range(0x60,0x80)}
[codex:1138744] 
[codex:1138744] names={0x00:'"'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',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',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0x5f:'PUSH0',0xf1:'CALL',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID'}
[codex:1138744] for i in range(0x80,0x90): names[i]=f'DUP{i-0x7f}'
[codex:1138744] for i in range(0x90,0xa0): names[i]=f'SWAP{i-0x8f}'
[codex:1138744] 
[codex:1138744] ops=[]
[codex:1138744] i=0
[codex:1138744] while i<len(code):
[codex:1138744]     op=code[i]
[codex:1138744]     imm=None
[codex:1138744]     i0=i
[codex:1138744]     i+=1
[codex:1138744]     if op in op_imms:
[codex:1138744]         n=op_imms[op]
[codex:1138744]         imm=code[i:i+n]
[codex:1138744]         i+=n
[codex:1138744]     ops.append((i0,op,imm))
[codex:1138744] 
[codex:1138744] start=0x2720
[codex:1138744] end=0x27a0
[codex:1138744] for o,op,imm in ops:
[codex:1138744]     if o<start: continue
[codex:1138744]     if o>=end: break
[codex:1138744]     name=names.get(op,f'OP{op:02x}')
[codex:1138744]     if imm is not None:
[codex:1138744]         print(f'{o:06x}: {name} 0x{imm.hex()}')
[codex:1138744]     else:
[codex:1138744]         print(f'{o:06x}: {name}')
[codex:1138744] PY" in /tmp/codex-multi-7wwc7sg5 succeeded in 35ms:
[codex:1138744] 002720: AND
[codex:1138744] 002721: DUP3
[codex:1138744] 002722: MSTORE
[codex:1138744] 002723: DUP2
[codex:1138744] 002724: ADD
[codex:1138744] 002725: SWAP2
[codex:1138744] 002726: SWAP1
[codex:1138744] 002727: SWAP2
[codex:1138744] 002728: MSTORE
[codex:1138744] 002729: OP60 0x40
[codex:1138744] 00272b: ADD
[codex:1138744] 00272c: OP60 0x00
[codex:1138744] 00272e: SHA3
[codex:1138744] 00272f: DUP1
[codex:1138744] 002730: SLOAD
[codex:1138744] 002731: OP60 0xff
[codex:1138744] 002733: NOT
[codex:1138744] 002734: AND
[codex:1138744] 002735: SWAP2
[codex:1138744] 002736: ISZERO
[codex:1138744] 
[codex:1138744] thinking
[codex:1138744] **Analyzing contract withdrawal and signature checks**
[codex:1138744] 
[codex:1138744] I'm reviewing the function that handles token withdrawals and transfers, focusing on signature verifications and maintainer checks. There’s no direct evidence of exploitable paths like missing signature validation or unprotected access that would allow unauthorized withdrawal for profit. Given the complexity and lack of clear vulnerabilities, I’m preparing a JSON output stating no concrete exploit was found.
[codex:1138744] codex
[codex:1138744] {"no_findings":true,"summary":"No concrete, exploitable value-extraction path was identified from the provided runtime bytecode alone.","findings":[]}
[codex:1138744] tokens used
[codex:1138744] 85,160
[codex:1138744] {"no_findings":true,"summary":"No concrete, exploitable value-extraction path was identified from the provided runtime bytecode alone.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-31T22:43:42.068994+00:00",
        "returncode": 0
    },
    "summary": "No concrete, exploitable value-extraction path was identified from the provided runtime bytecode alone.",
    "raw_final": {
        "summary": "No concrete, exploitable value-extraction path was identified from the provided runtime 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)
12
EXT*/BALANCE
2
Total opcodes
8423
Flags
call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0260
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x92bfff19
00000019: GT
0000001a: PUSH2 0x0144
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xccbba0c0
00000024: GT
00000025: PUSH2 0x00b6
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xe79994cb
0000002f: GT
00000030: PUSH2 0x007a
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xe79994cb
0000003a: EQ
0000003b: PUSH2 0x0795
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xed421e14
00000045: EQ
00000046: PUSH2 0x07cd
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf4887f15
00000050: EQ
00000051: PUSH2 0x07ed
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xf6eb192d
0000005b: EQ
0000005c: PUSH2 0x080d
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xf8453e7c
00000066: EQ
00000067: PUSH2 0x082d
0000006a: JUMPI
0000006b: DUP1
0000006c: PUSH4 0xf92f9e10
00000071: EQ
00000072: PUSH2 0x084d
00000075: JUMPI
00000076: PUSH1 0x00
00000078: DUP1
00000079: REVERT
0000007a: JUMPDEST
0000007b: DUP1
0000007c: PUSH4 0xccbba0c0
00000081: EQ
00000082: PUSH2 0x06df
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xce206dc6
0000008c: EQ
0000008d: PUSH2 0x06fd
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0xd416deb6
00000097: EQ
00000098: PUSH2 0x071d
0000009b: JUMPI
0000009c: DUP1
0000009d: PUSH4 0xd6bed37c
000000a2: EQ
000000a3: PUSH2 0x073d
000000a6: JUMPI
000000a7: DUP1
000000a8: PUSH4 0xe78cea92
000000ad: EQ
000000ae: PUSH2 0x0775
000000b1: JUMPI
000000b2: PUSH1 0x00
000000b4: DUP1
000000b5: REVERT
000000b6: JUMPDEST
000000b7: DUP1
000000b8: PUSH4 0xad1e29b1
000000bd: GT
000000be: PUSH2 0x0108
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0xad1e29b1
000000c8: EQ
000000c9: PUSH2 0x05e5
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH4 0xb06c3d80
000000d3: EQ
000000d4: PUSH2 0x0615
000000d7: JUMPI
000000d8: DUP1
000000d9: PUSH4 0xb0829ba7
000000de: EQ
000000df: PUSH2 0x0642
000000e2: JUMPI
000000e3: DUP1
000000e4: PUSH4 0xbb1c6a81
000000e9: EQ
000000ea: PUSH2 0x066f
000000ed: JUMPI
000000ee: DUP1
000000ef: PUSH4 0xc1329847
000000f4: EQ
000000f5: PUSH2 0x068f
000000f8: JUMPI
000000f9: DUP1
000000fa: PUSH4 0xc719eebe
000000ff: EQ
00000100: PUSH2 0x06af
00000103: JUMPI
00000104: PUSH1 0x00
00000106: DUP1
00000107: REVERT
00000108: JUMPDEST
00000109: DUP1
0000010a: PUSH4 0x92bfff19
0000010f: EQ
00000110: PUSH2 0x0537
00000113: JUMPI
00000114: DUP1
00000115: PUSH4 0x95edabb0
0000011a: EQ
0000011b: PUSH2 0x0557
0000011e: JUMPI
0000011f: DUP1
00000120: PUSH4 0x98421bda
00000125: EQ
00000126: PUSH2 0x0577
00000129: JUMPI
0000012a: DUP1
0000012b: PUSH4 0xa1590646
00000130: EQ
00000131: PUSH2 0x05af
00000134: JUMPI
00000135: DUP1
00000136: PUSH4 0xaaf5eb68
0000013b: EQ
0000013c: PUSH2 0x05cf
0000013f: JUMPI
00000140: PUSH1 0x00
00000142: DUP1
00000143: REVERT
00000144: JUMPDEST
00000145: DUP1
00000146: PUSH4 0x62a5af3b
0000014b: GT
0000014c: PUSH2 0x01dd
0000014f: JUMPI
00000150: DUP1
00000151: PUSH4 0x70b8ed74
00000156: GT
00000157: PUSH2 0x01a1
0000015a: JUMPI
0000015b: DUP1
0000015c: PUSH4 0x70b8ed74
00000161: EQ
00000162: PUSH2 0x044d
00000165: JUMPI
00000166: DUP1
00000167: PUSH4 0x71806b78
0000016c: EQ
0000016d: PUSH2 0x046d
00000170: JUMPI
00000171: DUP1
00000172: PUSH4 0x775fe40b
00000177: EQ
00000178: PUSH2 0x049d
0000017b: JUMPI
0000017c: DUP1
0000017d: PUSH4 0x7eeee88e
00000182: EQ
00000183: PUSH2 0x04ca
00000186: JUMPI
00000187: DUP1
00000188: PUSH4 0x8dd14802
0000018d: EQ
0000018e: PUSH2 0x04f7
00000191: JUMPI
00000192: DUP1
00000193: PUSH4 0x90334178
00000198: EQ
00000199: PUSH2 0x0517
0000019c: JUMPI
0000019d: PUSH1 0x00
0000019f: DUP1
000001a0: REVERT
000001a1: JUMPDEST
000001a2: DUP1
000001a3: PUSH4 0x62a5af3b
000001a8: EQ
000001a9: PUSH2 0x03cd
000001ac: JUMPI
000001ad: DUP1
000001ae: PUSH4 0x650cd615
000001b3: EQ
000001b4: PUSH2 0x03e2
000001b7: JUMPI
000001b8: DUP1
000001b9: PUSH4 0x6598f3f8
000001be: EQ
000001bf: PUSH2 0x0402
000001c2: JUMPI
000001c3: DUP1
000001c4: PUSH4 0x666a7e49
000001c9: EQ
000001ca: PUSH2 0x0418
000001cd: JUMPI
000001ce: DUP1
000001cf: PUSH4 0x6a28f000
000001d4: EQ
000001d5: PUSH2 0x0438
000001d8: JUMPI
000001d9: PUSH1 0x00
000001db: DUP1
000001dc: REVERT
000001dd: JUMPDEST
000001de: DUP1
000001df: PUSH4 0x45d61ded
000001e4: GT
000001e5: PUSH2 0x0224
000001e8: JUMPI
000001e9: DUP1
000001ea: PUSH4 0x45d61ded
000001ef: EQ
000001f0: PUSH2 0x0325
000001f3: JUMPI
000001f4: DUP1
000001f5: PUSH4 0x465f1935
000001fa: EQ
000001fb: PUSH2 0x0345
000001fe: JUMPI
000001ff: DUP1
00000200: PUSH4 0x518351cd
00000205: EQ
00000206: PUSH2 0x0365
00000209: JUMPI
0000020a: DUP1
0000020b: PUSH4 0x5c975abb
00000210: EQ
00000211: PUSH2 0x0389
00000214: JUMPI
00000215: DUP1
00000216: PUSH4 0x62859f8f
0000021b: EQ
0000021c: PUSH2 0x03ad
0000021f: JUMPI
00000220: PUSH1 0x00
00000222: DUP1
00000223: REVERT
00000224: JUMPDEST
00000225: DUP1
00000226: PUSH4 0x036e76e3
0000022b: EQ
0000022c: PUSH2 0x026c
0000022f: JUMPI
00000230: DUP1
00000231: PUSH4 0x044423e9
00000236: EQ
00000237: PUSH2 0x028e
0000023a: JUMPI
0000023b: DUP1
0000023c: PUSH4 0x0f45b502
00000241: EQ
00000242: PUSH2 0x02c5
00000245: JUMPI
00000246: DUP1
00000247: PUSH4 0x39fdd5de
0000024c: EQ
0000024d: PUSH2 0x02e5
00000250: JUMPI
00000251: DUP1
00000252: PUSH4 0x3a5381b5
00000257: EQ
00000258: PUSH2 0x0305
0000025b: JUMPI
0000025c: PUSH1 0x00
0000025e: DUP1
0000025f: REVERT
00000260: JUMPDEST
00000261: CALLDATASIZE
00000262: PUSH2 0x0267
00000265: JUMPI
00000266: STOP
00000267: JUMPDEST
00000268: PUSH1 0x00
0000026a: DUP1
0000026b: REVERT
0000026c: JUMPDEST
0000026d: CALLVALUE
0000026e: DUP1
0000026f: ISZERO
00000270: PUSH2 0x0278
00000273: JUMPI
00000274: PUSH1 0x00
00000276: DUP1
00000277: REVERT
00000278: JUMPDEST
00000279: POP
0000027a: PUSH2 0x028c
0000027d: PUSH2 0x0287
00000280: CALLDATASIZE
00000281: PUSH1 0x04
00000283: PUSH2 0x2bde
00000286: JUMP
00000287: JUMPDEST
00000288: PUSH2 0x086d
0000028b: JUMP
0000028c: JUMPDEST
0000028d: STOP
0000028e: JUMPDEST
0000028f: CALLVALUE
00000290: DUP1
00000291: ISZERO
00000292: PUSH2 0x029a
00000295: JUMPI
00000296: PUSH1 0x00
00000298: DUP1
00000299: REVERT
0000029a: JUMPDEST
0000029b: POP
0000029c: PUSH1 0x97
0000029e: SLOAD
0000029f: PUSH1 0x01
000002a1: PUSH1 0x01
000002a3: PUSH1 0xa0
000002a5: SHL
000002a6: SUB
000002a7: AND
000002a8: JUMPDEST
000002a9: PUSH1 0x40
000002ab: MLOAD
000002ac: PUSH1 0x01
000002ae: PUSH1 0x01
000002b0: PUSH1 0xa0
000002b2: SHL
000002b3: SUB
000002b4: SWAP1
000002b5: SWAP2
000002b6: AND
000002b7: DUP2
000002b8: MSTORE
000002b9: PUSH1 0x20
000002bb: ADD
000002bc: JUMPDEST
000002bd: PUSH1 0x40
000002bf: MLOAD
000002c0: DUP1
000002c1: SWAP2
000002c2: SUB
000002c3: SWAP1
000002c4: RETURN
000002c5: JUMPDEST
000002c6: CALLVALUE
000002c7: DUP1
000002c8: ISZERO
000002c9: PUSH2 0x02d1
000002cc: JUMPI
000002cd: PUSH1 0x00
000002cf: DUP1
000002d0: REVERT
000002d1: JUMPDEST
000002d2: POP
000002d3: PUSH2 0x028c
000002d6: PUSH2 0x02e0
000002d9: CALLDATASIZE
000002da: PUSH1 0x04
000002dc: PUSH2 0x2c02
000002df: JUMP
000002e0: JUMPDEST
000002e1: PUSH2 0x08cc
000002e4: JUMP
000002e5: JUMPDEST
000002e6: CALLVALUE
000002e7: DUP1
000002e8: ISZERO
000002e9: PUSH2 0x02f1
000002ec: JUMPI
000002ed: PUSH1 0x00
000002ef: DUP1
000002f0: REVERT
000002f1: JUMPDEST
000002f2: POP
000002f3: PUSH2 0x028c
000002f6: PUSH2 0x0300
000002f9: CALLDATASIZE
000002fa: PUSH1 0x04
000002fc: PUSH2 0x2c6d
000002ff: JUMP
00000300: JUMPDEST
00000301: PUSH2 0x09e0
00000304: JUMP
00000305: JUMPDEST
00000306: CALLVALUE
00000307: DUP1
00000308: ISZERO
00000309: PUSH2 0x0311
0000030c: JUMPI
0000030d: PUSH1 0x00
0000030f: DUP1
00000310: REVERT
00000311: JUMPDEST
00000312: POP
00000313: PUSH1 0xca
00000315: SLOAD
00000316: PUSH2 0x02a8
00000319: SWAP1
0000031a: PUSH1 0x01
0000031c: PUSH1 0x01
0000031e: PUSH1 0xa0
00000320: SHL
00000321: SUB
00000322: AND
00000323: DUP2
00000324: JUMP
00000325: JUMPDEST
00000326: CALLVALUE
00000327: DUP1
00000328: ISZERO
00000329: PUSH2 0x0331
0000032c: JUMPI
0000032d: PUSH1 0x00
0000032f: DUP1
00000330: REVERT
00000331: JUMPDEST
00000332: POP
00000333: PUSH1 0xd6
00000335: SLOAD
00000336: PUSH2 0x02a8
00000339: SWAP1
0000033a: PUSH1 0x01
0000033c: PUSH1 0x01
0000033e: PUSH1 0xa0
00000340: SHL
00000341: SUB
00000342: AND
00000343: DUP2
00000344: JUMP
00000345: JUMPDEST
00000346: CALLVALUE
00000347: DUP1
00000348: ISZERO
00000349: PUSH2 0x0351
0000034c: JUMPI
0000034d: PUSH1 0x00
0000034f: DUP1
00000350: REVERT
00000351: JUMPDEST
00000352: POP
00000353: PUSH2 0x028c
00000356: PUSH2 0x0360
00000359: CALLDATASIZE
0000035a: PUSH1 0x04
0000035c: PUSH2 0x2cd7
0000035f: JUMP
00000360: JUMPDEST
00000361: PUSH2 0x0bc1
00000364: JUMP
00000365: JUMPDEST
00000366: CALLVALUE
00000367: DUP1
00000368: ISZERO
00000369: PUSH2 0x0371
0000036c: JUMPI
0000036d: PUSH1 0x00
0000036f: DUP1
00000370: REVERT
00000371: JUMPDEST
00000372: POP
00000373: PUSH2 0x037b
00000376: PUSH1 0xd7
00000378: SLOAD
00000379: DUP2
0000037a: JUMP
0000037b: JUMPDEST
0000037c: PUSH1 0x40
0000037e: MLOAD
0000037f: SWAP1
00000380: DUP2
00000381: MSTORE
00000382: PUSH1 0x20
00000384: ADD
00000385: PUSH2 0x02bc
00000388: JUMP
00000389: JUMPDEST
0000038a: CALLVALUE
0000038b: DUP1
0000038c: ISZERO
0000038d: PUSH2 0x0395
00000390: JUMPI
00000391: PUSH1 0x00
00000393: DUP1
00000394: REVERT
00000395: JUMPDEST
00000396: POP
00000397: PUSH1 0x33
00000399: SLOAD
0000039a: PUSH1 0xff
0000039c: AND
0000039d: JUMPDEST
0000039e: PUSH1 0x40
000003a0: MLOAD
000003a1: SWAP1
000003a2: ISZERO
000003a3: ISZERO
000003a4: DUP2
000003a5: MSTORE
000003a6: PUSH1 0x20
000003a8: ADD
000003a9: PUSH2 0x02bc
000003ac: JUMP
000003ad: JUMPDEST
000003ae: CALLVALUE
000003af: DUP1
000003b0: ISZERO
000003b1: PUSH2 0x03b9
000003b4: JUMPI
000003b5: PUSH1 0x00
000003b7: DUP1
000003b8: REVERT
000003b9: JUMPDEST
000003ba: POP
000003bb: PUSH2 0x028c
000003be: PUSH2 0x03c8
000003c1: CALLDATASIZE
000003c2: PUSH1 0x04
000003c4: PUSH2 0x2d5e
000003c7: JUMP
000003c8: JUMPDEST
000003c9: PUSH2 0x0c43
000003cc: JUMP
000003cd: JUMPDEST
000003ce: CALLVALUE
000003cf: DUP1
000003d0: ISZERO
000003d1: PUSH2 0x03d9
000003d4: JUMPI
000003d5: PUSH1 0x00
000003d7: DUP1
000003d8: REVERT
000003d9: JUMPDEST
000003da: POP
000003db: PUSH2 0x028c
000003de: PUSH2 0x0d0f
000003e1: JUMP
000003e2: JUMPDEST
000003e3: CALLVALUE
000003e4: DUP1
000003e5: ISZERO
000003e6: PUSH2 0x03ee
000003e9: JUMPI
000003ea: PUSH1 0x00
000003ec: DUP1
000003ed: REVERT
000003ee: JUMPDEST
000003ef: POP
000003f0: PUSH2 0x028c
000003f3: PUSH2 0x03fd
000003f6: CALLDATASIZE
000003f7: PUSH1 0x04
000003f9: PUSH2 0x2dae
000003fc: JUMP
000003fd: JUMPDEST
000003fe: PUSH2 0x0d4a
00000401: JUMP
00000402: JUMPDEST
00000403: CALLVALUE
00000404: DUP1
00000405: ISZERO
00000406: PUSH2 0x040e
00000409: JUMPI
0000040a: PUSH1 0x00
0000040c: DUP1
0000040d: REVERT
0000040e: JUMPDEST
0000040f: POP
00000410: PUSH2 0x037b
00000413: PUSH1 0xd8
00000415: SLOAD
00000416: DUP2
00000417: JUMP
00000418: JUMPDEST
00000419: CALLVALUE
0000041a: DUP1
0000041b: ISZERO
0000041c: PUSH2 0x0424
0000041f: JUMPI
00000420: PUSH1 0x00
00000422: DUP1
00000423: REVERT
00000424: JUMPDEST
00000425: POP
00000426: PUSH2 0x028c
00000429: PUSH2 0x0433
0000042c: CALLDATASIZE
0000042d: PUSH1 0x04
0000042f: PUSH2 0x2bde
00000432: JUMP
00000433: JUMPDEST
00000434: PUSH2 0x0d7e
00000437: JUMP
00000438: JUMPDEST
00000439: CALLVALUE
0000043a: DUP1
0000043b: ISZERO
0000043c: PUSH2 0x0444
0000043f: JUMPI
00000440: PUSH1 0x00
00000442: DUP1
00000443: REVERT
00000444: JUMPDEST
00000445: POP
00000446: PUSH2 0x028c
00000449: PUSH2 0x0dd5
0000044c: JUMP
0000044d: JUMPDEST
0000044e: CALLVALUE
0000044f: DUP1
00000450: ISZERO
00000451: PUSH2 0x0459
00000454: JUMPI
00000455: PUSH1 0x00
00000457: DUP1
00000458: REVERT
00000459: JUMPDEST
0000045a: POP
0000045b: PUSH2 0x028c
0000045e: PUSH2 0x0468
00000461: CALLDATASIZE
00000462: PUSH1 0x04
00000464: PUSH2 0x2e01
00000467: JUMP
00000468: JUMPDEST
00000469: PUSH2 0x0e10
0000046c: JUMP
0000046d: JUMPDEST
0000046e: CALLVALUE
0000046f: DUP1
00000470: ISZERO
00000471: PUSH2 0x0479
00000474: JUMPI
00000475: PUSH1 0x00
00000477: DUP1
00000478: REVERT
00000479: JUMPDEST
0000047a: POP
0000047b: PUSH2 0x039d
0000047e: PUSH2 0x0488
00000481: CALLDATASIZE
00000482: PUSH1 0x04
00000484: PUSH2 0x2bde
00000487: JUMP
00000488: JUMPDEST
00000489: PUSH1 0xcf
0000048b: PUSH1 0x20
0000048d: MSTORE
0000048e: PUSH1 0x00
00000490: SWAP1
00000491: DUP2
00000492: MSTORE
00000493: PUSH1 0x40
00000495: SWAP1
00000496: KECCAK256
00000497: SLOAD
00000498: PUSH1 0xff
0000049a: AND
0000049b: DUP2
0000049c: JUMP
0000049d: JUMPDEST
0000049e: CALLVALUE
0000049f: DUP1
000004a0: ISZERO
000004a1: PUSH2 0x04a9
000004a4: JUMPI
000004a5: PUSH1 0x00
000004a7: DUP1
000004a8: REVERT
000004a9: JUMPDEST
000004aa: POP
000004ab: PUSH2 0x037b
000004ae: PUSH2 0x04b8
000004b1: CALLDATASIZE
000004b2: PUSH1 0x04
000004b4: PUSH2 0x2bde
000004b7: JUMP
000004b8: JUMPDEST
000004b9: PUSH1 0xd3
000004bb: PUSH1 0x20
000004bd: MSTORE
000004be: PUSH1 0x00
000004c0: SWAP1
000004c1: DUP2
000004c2: MSTORE
000004c3: PUSH1 0x40
000004c5: SWAP1
000004c6: KECCAK256
000004c7: SLOAD
000004c8: DUP2
000004c9: JUMP
000004ca: JUMPDEST
000004cb: CALLVALUE
000004cc: DUP1
000004cd: ISZERO
000004ce: PUSH2 0x04d6
000004d1: JUMPI
000004d2: PUSH1 0x00
000004d4: DUP1
000004d5: REVERT
000004d6: JUMPDEST
000004d7: POP
000004d8: PUSH2 0x037b
000004db: PUSH2 0x04e5
000004de: CALLDATASIZE
000004df: PUSH1 0x04
000004e1: PUSH2 0x2bde
000004e4: JUMP
000004e5: JUMPDEST
000004e6: PUSH1 0xce
000004e8: PUSH1 0x20
000004ea: MSTORE
000004eb: PUSH1 0x00
000004ed: SWAP1
000004ee: DUP2
000004ef: MSTORE
000004f0: PUSH1 0x40
000004f2: SWAP1
000004f3: KECCAK256
000004f4: SLOAD
000004f5: DUP2
000004f6: JUMP
000004f7: JUMPDEST
000004f8: CALLVALUE
000004f9: DUP1
000004fa: ISZERO
000004fb: PUSH2 0x0503
000004fe: JUMPI
000004ff: PUSH1 0x00
00000501: DUP1
00000502: REVERT
00000503: JUMPDEST
00000504: POP
00000505: PUSH2 0x028c
00000508: PUSH2 0x0512
0000050b: CALLDATASIZE
0000050c: PUSH1 0x04
0000050e: PUSH2 0x2bde
00000511: JUMP
00000512: JUMPDEST
00000513: PUSH2 0x0edd
00000516: JUMP
00000517: JUMPDEST
00000518: CALLVALUE
00000519: DUP1
0000051a: ISZERO
0000051b: PUSH2 0x0523
0000051e: JUMPI
0000051f: PUSH1 0x00
00000521: DUP1
00000522: REVERT
00000523: JUMPDEST
00000524: POP
00000525: PUSH2 0x028c
00000528: PUSH2 0x0532
0000052b: CALLDATASIZE
0000052c: PUSH1 0x04
0000052e: PUSH2 0x2bde
00000531: JUMP
00000532: JUMPDEST
00000533: PUSH2 0x0f3a
00000536: JUMP
00000537: JUMPDEST
00000538: CALLVALUE
00000539: DUP1
0000053a: ISZERO
0000053b: PUSH2 0x0543
0000053e: JUMPI
0000053f: PUSH1 0x00
00000541: DUP1
00000542: REVERT
00000543: JUMPDEST
00000544: POP
00000545: PUSH2 0x028c
00000548: PUSH2 0x0552
0000054b: CALLDATASIZE
0000054c: PUSH1 0x04
0000054e: PUSH2 0x2e42
00000551: JUMP
00000552: JUMPDEST
00000553: PUSH2 0x0f9a
00000556: JUMP
00000557: JUMPDEST
00000558: CALLVALUE
00000559: DUP1
0000055a: ISZERO
0000055b: PUSH2 0x0563
0000055e: JUMPI
0000055f: PUSH1 0x00
00000561: DUP1
00000562: REVERT
00000563: JUMPDEST
00000564: POP
00000565: PUSH2 0x037b
00000568: PUSH2 0x0572
0000056b: CALLDATASIZE
0000056c: PUSH1 0x04
0000056e: PUSH2 0x2bde
00000571: JUMP
00000572: JUMPDEST
00000573: PUSH2 0x1090
00000576: JUMP
00000577: JUMPDEST
00000578: CALLVALUE
00000579: DUP1
0000057a: ISZERO
0000057b: PUSH2 0x0583
0000057e: JUMPI
0000057f: PUSH1 0x00
00000581: DUP1
00000582: REVERT
00000583: JUMPDEST
00000584: POP
00000585: PUSH2 0x037b
00000588: PUSH2 0x0592
0000058b: CALLDATASIZE
0000058c: PUSH1 0x04
0000058e: PUSH2 0x2e77
00000591: JUMP
00000592: JUMPDEST
00000593: PUSH1 0xcb
00000595: PUSH1 0x20
00000597: SWAP1
00000598: DUP2
00000599: MSTORE
0000059a: PUSH1 0x00
0000059c: SWAP3
0000059d: DUP4
0000059e: MSTORE
0000059f: PUSH1 0x40
000005a1: DUP1
000005a2: DUP5
000005a3: KECCAK256
000005a4: SWAP1
000005a5: SWAP2
000005a6: MSTORE
000005a7: SWAP1
000005a8: DUP3
000005a9: MSTORE
000005aa: SWAP1
000005ab: KECCAK256
000005ac: SLOAD
000005ad: DUP2
000005ae: JUMP
000005af: JUMPDEST
000005b0: CALLVALUE
000005b1: DUP1
000005b2: ISZERO
000005b3: PUSH2 0x05bb
000005b6: JUMPI
000005b7: PUSH1 0x00
000005b9: DUP1
000005ba: REVERT
000005bb: JUMPDEST
000005bc: POP
000005bd: PUSH2 0x028c
000005c0: PUSH2 0x05ca
000005c3: CALLDATASIZE
000005c4: PUSH1 0x04
000005c6: PUSH2 0x2eb0
000005c9: JUMP
000005ca: JUMPDEST
000005cb: PUSH2 0x11f3
000005ce: JUMP
000005cf: JUMPDEST
000005d0: CALLVALUE
000005d1: DUP1
000005d2: ISZERO
000005d3: PUSH2 0x05db
000005d6: JUMPI
000005d7: PUSH1 0x00
000005d9: DUP1
000005da: REVERT
000005db: JUMPDEST
000005dc: POP
000005dd: PUSH2 0x037b
000005e0: PUSH2 0x2710
000005e3: DUP2
000005e4: JUMP
000005e5: JUMPDEST
000005e6: CALLVALUE
000005e7: DUP1
000005e8: ISZERO
000005e9: PUSH2 0x05f1
000005ec: JUMPI
000005ed: PUSH1 0x00
000005ef: DUP1
000005f0: REVERT
000005f1: JUMPDEST
000005f2: POP
000005f3: PUSH2 0x039d
000005f6: PUSH2 0x0600
000005f9: CALLDATASIZE
000005fa: PUSH1 0x04
000005fc: PUSH2 0x2f22
000005ff: JUMP
00000600: JUMPDEST
00000601: PUSH1 0xd4
00000603: PUSH1 0x20
00000605: MSTORE
00000606: PUSH1 0x00
00000608: SWAP1
00000609: DUP2
0000060a: MSTORE
0000060b: PUSH1 0x40
0000060d: SWAP1
0000060e: KECCAK256
0000060f: SLOAD
00000610: PUSH1 0xff
00000612: AND
00000613: DUP2
00000614: JUMP
00000615: JUMPDEST
00000616: CALLVALUE
00000617: DUP1
00000618: ISZERO
00000619: PUSH2 0x0621
0000061c: JUMPI
0000061d: PUSH1 0x00
0000061f: DUP1
00000620: REVERT
00000621: JUMPDEST
00000622: POP
00000623: PUSH2 0x037b
00000626: PUSH2 0x0630
00000629: CALLDATASIZE
0000062a: PUSH1 0x04
0000062c: PUSH2 0x2bde
0000062f: JUMP
00000630: JUMPDEST
00000631: PUSH1 0xd2
00000633: PUSH1 0x20
00000635: MSTORE
00000636: PUSH1 0x00
00000638: SWAP1
00000639: DUP2
0000063a: MSTORE
0000063b: PUSH1 0x40
0000063d: SWAP1
0000063e: KECCAK256
0000063f: SLOAD
00000640: DUP2
00000641: JUMP
00000642: JUMPDEST
00000643: CALLVALUE
00000644: DUP1
00000645: ISZERO
00000646: PUSH2 0x064e
00000649: JUMPI
0000064a: PUSH1 0x00
0000064c: DUP1
0000064d: REVERT
0000064e: JUMPDEST
0000064f: POP
00000650: PUSH2 0x037b
00000653: PUSH2 0x065d
00000656: CALLDATASIZE
00000657: PUSH1 0x04
00000659: PUSH2 0x2bde
0000065c: JUMP
0000065d: JUMPDEST
0000065e: PUSH1 0xcc
00000660: PUSH1 0x20
00000662: MSTORE
00000663: PUSH1 0x00
00000665: SWAP1
00000666: DUP2
00000667: MSTORE
00000668: PUSH1 0x40
0000066a: SWAP1
0000066b: KECCAK256
0000066c: SLOAD
0000066d: DUP2
0000066e: JUMP
0000066f: JUMPDEST
00000670: CALLVALUE
00000671: DUP1
00000672: ISZERO
00000673: PUSH2 0x067b
00000676: JUMPI
00000677: PUSH1 0x00
00000679: DUP1
0000067a: REVERT
0000067b: JUMPDEST
0000067c: POP
0000067d: PUSH2 0x028c
00000680: PUSH2 0x068a
00000683: CALLDATASIZE
00000684: PUSH1 0x04
00000686: PUSH2 0x2f3b
00000689: JUMP
0000068a: JUMPDEST
0000068b: PUSH2 0x13c0
0000068e: JUMP
0000068f: JUMPDEST
00000690: CALLVALUE
00000691: DUP1
00000692: ISZERO
00000693: PUSH2 0x069b
00000696: JUMPI
00000697: PUSH1 0x00
00000699: DUP1
0000069a: REVERT
0000069b: JUMPDEST
0000069c: POP
0000069d: PUSH2 0x028c
000006a0: PUSH2 0x06aa
000006a3: CALLDATASIZE
000006a4: PUSH1 0x04
000006a6: PUSH2 0x2fd5
000006a9: JUMP
000006aa: JUMPDEST
000006ab: PUSH2 0x15ab
000006ae: JUMP
000006af: JUMPDEST
000006b0: CALLVALUE
000006b1: DUP1
000006b2: ISZERO
000006b3: PUSH2 0x06bb
000006b6: JUMPI
000006b7: PUSH1 0x00
000006b9: DUP1
000006ba: REVERT
000006bb: JUMPDEST
000006bc: POP
000006bd: PUSH2 0x039d
000006c0: PUSH2 0x06ca
000006c3: CALLDATASIZE
000006c4: PUSH1 0x04
000006c6: PUSH2 0x2f22
000006c9: JUMP
000006ca: JUMPDEST
000006cb: PUSH1 0xd0
000006cd: PUSH1 0x20
000006cf: MSTORE
000006d0: PUSH1 0x00
000006d2: SWAP1
000006d3: DUP2
000006d4: MSTORE
000006d5: PUSH1 0x40
000006d7: SWAP1
000006d8: KECCAK256
000006d9: SLOAD
000006da: PUSH1 0xff
000006dc: AND
000006dd: DUP2
000006de: JUMP
000006df: JUMPDEST
000006e0: CALLVALUE
000006e1: DUP1
000006e2: ISZERO
000006e3: PUSH2 0x06eb
000006e6: JUMPI
000006e7: PUSH1 0x00
000006e9: DUP1
000006ea: REVERT
000006eb: JUMPDEST
000006ec: POP
000006ed: PUSH1 0x98
000006ef: SLOAD
000006f0: PUSH1 0x01
000006f2: PUSH1 0x01
000006f4: PUSH1 0xa0
000006f6: SHL
000006f7: SUB
000006f8: AND
000006f9: PUSH2 0x02a8
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: PUSH1 0xd1
0000070d: SLOAD
0000070e: PUSH2 0x02a8
00000711: SWAP1
00000712: PUSH1 0x01
00000714: PUSH1 0x01
00000716: PUSH1 0xa0
00000718: SHL
00000719: SUB
0000071a: AND
0000071b: DUP2
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 0x028c
0000072e: PUSH2 0x0738
00000731: CALLDATASIZE
00000732: PUSH1 0x04
00000734: PUSH2 0x3021
00000737: JUMP
00000738: JUMPDEST
00000739: PUSH2 0x1603
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 0x037b
0000074e: PUSH2 0x0758
00000751: CALLDATASIZE
00000752: PUSH1 0x04
00000754: PUSH2 0x2e77
00000757: JUMP
00000758: JUMPDEST
00000759: PUSH1 0xcd
0000075b: PUSH1 0x20
0000075d: SWAP1
0000075e: DUP2
0000075f: MSTORE
00000760: PUSH1 0x00
00000762: SWAP3
00000763: DUP4
00000764: MSTORE
00000765: PUSH1 0x40
00000767: DUP1
00000768: DUP5
00000769: KECCAK256
0000076a: SWAP1
0000076b: SWAP2
0000076c: MSTORE
0000076d: SWAP1
0000076e: DUP3
0000076f: MSTORE
00000770: SWAP1
00000771: KECCAK256
00000772: SLOAD
00000773: DUP2
00000774: JUMP
00000775: JUMPDEST
00000776: CALLVALUE
00000777: DUP1
00000778: ISZERO
00000779: PUSH2 0x0781
0000077c: JUMPI
0000077d: PUSH1 0x00
0000077f: DUP1
00000780: REVERT
00000781: JUMPDEST
00000782: POP
00000783: PUSH1 0xc9
00000785: SLOAD
00000786: PUSH2 0x02a8
00000789: SWAP1
0000078a: PUSH1 0x01
0000078c: PUSH1 0x01
0000078e: PUSH1 0xa0
00000790: SHL
00000791: SUB
00000792: AND
00000793: DUP2
00000794: JUMP
00000795: JUMPDEST
00000796: CALLVALUE
00000797: DUP1
00000798: ISZERO
00000799: PUSH2 0x07a1
0000079c: JUMPI
0000079d: PUSH1 0x00
0000079f: DUP1
000007a0: REVERT
000007a1: JUMPDEST
000007a2: POP
000007a3: PUSH2 0x037b
000007a6: PUSH2 0x07b0
000007a9: CALLDATASIZE
000007aa: PUSH1 0x04
000007ac: PUSH2 0x305c
000007af: JUMP
000007b0: JUMPDEST
000007b1: PUSH1 0xd5
000007b3: PUSH1 0x20
000007b5: SWAP1
000007b6: DUP2
000007b7: MSTORE
000007b8: PUSH1 0x00
000007ba: SWAP3
000007bb: DUP4
000007bc: MSTORE
000007bd: PUSH1 0x40
000007bf: DUP1
000007c0: DUP5
000007c1: KECCAK256
000007c2: SWAP1
000007c3: SWAP2
000007c4: MSTORE
000007c5: SWAP1
000007c6: DUP3
000007c7: MSTORE
000007c8: SWAP1
000007c9: KECCAK256
000007ca: SLOAD
000007cb: DUP2
000007cc: JUMP
000007cd: JUMPDEST
000007ce: CALLVALUE
000007cf: DUP1
000007d0: ISZERO
000007d1: PUSH2 0x07d9
000007d4: JUMPI
000007d5: PUSH1 0x00
000007d7: DUP1
000007d8: REVERT
000007d9: JUMPDEST
000007da: POP
000007db: PUSH2 0x028c
000007de: PUSH2 0x07e8
000007e1: CALLDATASIZE
000007e2: PUSH1 0x04
000007e4: PUSH2 0x2cd7
000007e7: JUMP
000007e8: JUMPDEST
000007e9: PUSH2 0x1805
000007ec: JUMP
000007ed: JUMPDEST
000007ee: CALLVALUE
000007ef: DUP1
000007f0: ISZERO
000007f1: PUSH2 0x07f9
000007f4: JUMPI
000007f5: PUSH1 0x00
000007f7: DUP1
000007f8: REVERT
000007f9: JUMPDEST
000007fa: POP
000007fb: PUSH2 0x028c
000007fe: PUSH2 0x0808
00000801: CALLDATASIZE
00000802: PUSH1 0x04
00000804: PUSH2 0x2bde
00000807: JUMP
00000808: JUMPDEST
00000809: PUSH2 0x1926
0000080c: JUMP
0000080d: JUMPDEST
0000080e: CALLVALUE
0000080f: DUP1
00000810: ISZERO
00000811: PUSH2 0x0819
00000814: JUMPI
00000815: PUSH1 0x00
00000817: DUP1
00000818: REVERT
00000819: JUMPDEST
0000081a: POP
0000081b: PUSH2 0x028c
0000081e: PUSH2 0x0828
00000821: CALLDATASIZE
00000822: PUSH1 0x04
00000824: PUSH2 0x3088
00000827: JUMP
00000828: JUMPDEST
00000829: PUSH2 0x1983
0000082c: JUMP
0000082d: JUMPDEST
0000082e: CALLVALUE
0000082f: DUP1
00000830: ISZERO
00000831: PUSH2 0x0839
00000834: JUMPI
00000835: PUSH1 0x00
00000837: DUP1
00000838: REVERT
00000839: JUMPDEST
0000083a: POP
0000083b: PUSH2 0x028c
0000083e: PUSH2 0x0848
00000841: CALLDATASIZE
00000842: PUSH1 0x04
00000844: PUSH2 0x3102
00000847: JUMP
00000848: JUMPDEST
00000849: PUSH2 0x1c15
0000084c: JUMP
0000084d: JUMPDEST
0000084e: CALLVALUE
0000084f: DUP1
00000850: ISZERO
00000851: PUSH2 0x0859
00000854: JUMPI
00000855: PUSH1 0x00
00000857: DUP1
00000858: REVERT
00000859: JUMPDEST
0000085a: POP
0000085b: PUSH2 0x028c
0000085e: PUSH2 0x0868
00000861: CALLDATASIZE
00000862: PUSH1 0x04
00000864: PUSH2 0x317e
00000867: JUMP
00000868: JUMPDEST
00000869: PUSH2 0x1db2
0000086c: JUMP
0000086d: JUMPDEST
0000086e: PUSH2 0x0875
00000871: PUSH2 0x1f0f
00000874: JUMP
00000875: JUMPDEST
00000876: PUSH1 0x98
00000878: SLOAD
00000879: PUSH1 0x01
0000087b: PUSH1 0x01
0000087d: PUSH1 0xa0
0000087f: SHL
00000880: SUB
00000881: SWAP1
00000882: DUP2
00000883: AND
00000884: SWAP1
00000885: DUP3
00000886: AND
00000887: SUB
00000888: PUSH2 0x08c0
0000088b: JUMPI
0000088c: PUSH1 0x98
0000088e: SLOAD
0000088f: PUSH1 0x40
00000891: MLOAD
00000892: PUSH4 0x0237ef61
00000897: PUSH1 0xe1
00000899: SHL
0000089a: DUP2
0000089b: MSTORE
0000089c: PUSH1 0x01
0000089e: PUSH1 0x01
000008a0: PUSH1 0xa0
000008a2: SHL
000008a3: SUB
000008a4: SWAP2
000008a5: DUP3
000008a6: AND
000008a7: PUSH1 0x04
000008a9: DUP3
000008aa: ADD
000008ab: MSTORE
000008ac: SWAP1
000008ad: DUP3
000008ae: AND
000008af: PUSH1 0x24
000008b1: DUP3
000008b2: ADD
000008b3: MSTORE
000008b4: PUSH1 0x44
000008b6: ADD
000008b7: JUMPDEST
000008b8: PUSH1 0x40
000008ba: MLOAD
000008bb: DUP1
000008bc: SWAP2
000008bd: SUB
000008be: SWAP1
000008bf: REVERT
000008c0: JUMPDEST
000008c1: PUSH2 0x08c9
000008c4: DUP2
000008c5: PUSH2 0x1f51
000008c8: JUMP
000008c9: JUMPDEST
000008ca: POP
000008cb: JUMP
000008cc: JUMPDEST
000008cd: PUSH2 0x08d4
000008d0: PUSH2 0x1f0f
000008d3: JUMP
000008d4: JUMPDEST
000008d5: PUSH2 0x2710
000008d8: DUP3
000008d9: GT
000008da: ISZERO
000008db: PUSH2 0x0936
000008de: JUMPI
000008df: PUSH1 0x40
000008e1: MLOAD
000008e2: PUSH4 0x0c6a14bb
000008e7: PUSH1 0xe1
000008e9: SHL
000008ea: DUP2
000008eb: MSTORE
000008ec: PUSH1 0x04
000008ee: DUP2
000008ef: ADD
000008f0: DUP4
000008f1: SWAP1
000008f2: MSTORE
000008f3: PUSH2 0x2710
000008f6: PUSH1 0x24
000008f8: DUP3
000008f9: ADD
000008fa: MSTORE
000008fb: PUSH1 0x60
000008fd: PUSH1 0x44
000008ff: DUP3
00000900: ADD
00000901: MSTORE
00000902: PUSH1 0x1a
00000904: PUSH1 0x64
00000906: DUP3
00000907: ADD
00000908: MSTORE
00000909: PUSH32 0x4272696467652070657263656e742065786365656473206d6178000000000000
0000092a: PUSH1 0x84
0000092c: DUP3
0000092d: ADD
0000092e: MSTORE
0000092f: PUSH1 0xa4
00000931: ADD
00000932: PUSH2 0x08b7
00000935: JUMP
00000936: JUMPDEST
00000937: PUSH2 0x2710
0000093a: DUP2
0000093b: GT
0000093c: ISZERO
0000093d: PUSH2 0x0998
00000940: JUMPI
00000941: PUSH1 0x40
00000943: MLOAD
00000944: PUSH4 0x45fe0c27
00000949: PUSH1 0xe1
0000094b: SHL
0000094c: DUP2
0000094d: MSTORE
0000094e: PUSH1 0x04
00000950: DUP2
00000951: ADD
00000952: DUP3
00000953: SWAP1
00000954: MSTORE
00000955: PUSH2 0x2710
00000958: PUSH1 0x24
0000095a: DUP3
0000095b: ADD
0000095c: MSTORE
0000095d: PUSH1 0x60
0000095f: PUSH1 0x44
00000961: DUP3
00000962: ADD
00000963: MSTORE
00000964: PUSH1 0x1a
00000966: PUSH1 0x64
00000968: DUP3
00000969: ADD
0000096a: MSTORE
0000096b: PUSH32 0x537570706c792070657263656e742065786365656473206d6178000000000000
0000098c: PUSH1 0x84
0000098e: DUP3
0000098f: ADD
00000990: MSTORE
00000991: PUSH1 0xa4
00000993: ADD
00000994: PUSH2 0x08b7
00000997: JUMP
00000998: JUMPDEST
00000999: PUSH1 0xd7
0000099b: DUP3
0000099c: SWAP1
0000099d: SSTORE
0000099e: PUSH1 0xd8
000009a0: DUP2
000009a1: SWAP1
000009a2: SSTORE
000009a3: PUSH1 0x40
000009a5: DUP1
000009a6: MLOAD
000009a7: DUP4
000009a8: DUP2
000009a9: MSTORE
000009aa: PUSH1 0x20
000009ac: DUP2
000009ad: ADD
000009ae: DUP4
000009af: SWAP1
000009b0: MSTORE
000009b1: PUSH32 0x87ec0345192ee00e871b0aa8c85041fb508295846f1b114f2ad28550d85a54a4
000009d2: SWAP2
000009d3: ADD
000009d4: JUMPDEST
000009d5: PUSH1 0x40
000009d7: MLOAD
000009d8: DUP1
000009d9: SWAP2
000009da: SUB
000009db: SWAP1
000009dc: LOG1
000009dd: POP
000009de: POP
000009df: JUMP
000009e0: JUMPDEST
000009e1: PUSH2 0x09e8
000009e4: PUSH2 0x2017
000009e7: JUMP
000009e8: JUMPDEST
000009e9: PUSH2 0x09f0
000009ec: PUSH2 0x2070
000009ef: JUMP
000009f0: JUMPDEST
000009f1: DUP5
000009f2: PUSH2 0x09fa
000009f5: DUP2
000009f6: PUSH2 0x20b6
000009f9: JUMP
000009fa: JUMPDEST
000009fb: DUP4
000009fc: PUSH2 0x0a04
000009ff: DUP2
00000a00: PUSH2 0x214b
00000a03: JUMP
00000a04: JUMPDEST
00000a05: DUP7
00000a06: PUSH2 0x0a0e
00000a09: DUP2
00000a0a: PUSH2 0x2175
00000a0d: JUMP
00000a0e: JUMPDEST
00000a0f: PUSH2 0x0af2
00000a12: CALLER
00000a13: DUP10
00000a14: DUP10
00000a15: PUSH1 0xc9
00000a17: PUSH1 0x00
00000a19: SWAP1
00000a1a: SLOAD
00000a1b: SWAP1
00000a1c: PUSH2 0x0100
00000a1f: EXP
00000a20: SWAP1
00000a21: DIV
00000a22: PUSH1 0x01
00000a24: PUSH1 0x01
00000a26: PUSH1 0xa0
00000a28: SHL
00000a29: SUB
00000a2a: AND
00000a2b: PUSH1 0x01
00000a2d: PUSH1 0x01
00000a2f: PUSH1 0xa0
00000a31: SHL
00000a32: SUB
00000a33: AND
00000a34: PUSH4 0x1edb51ad
00000a39: PUSH1 0x40
00000a3b: MLOAD
00000a3c: DUP2
00000a3d: PUSH4 0xffffffff
00000a42: AND
00000a43: PUSH1 0xe0
00000a45: SHL
00000a46: DUP2
00000a47: MSTORE
00000a48: PUSH1 0x04
00000a4a: ADD
00000a4b: PUSH1 0x20
00000a4d: PUSH1 0x40
00000a4f: MLOAD
00000a50: DUP1
00000a51: DUP4
00000a52: SUB
00000a53: DUP2
00000a54: DUP7
00000a55: GAS
00000a56: STATICCALL
00000a57: ISZERO
00000a58: DUP1
00000a59: ISZERO
00000a5a: PUSH2 0x0a67
00000a5d: JUMPI
00000a5e: RETURNDATASIZE
00000a5f: PUSH1 0x00
00000a61: DUP1
00000a62: RETURNDATACOPY
00000a63: RETURNDATASIZE
00000a64: PUSH1 0x00
00000a66: REVERT
00000a67: JUMPDEST
00000a68: POP
00000a69: POP
00000a6a: POP
00000a6b: POP
00000a6c: PUSH1 0x40
00000a6e: MLOAD
00000a6f: RETURNDATASIZE
00000a70: PUSH1 0x1f
00000a72: NOT
00000a73: PUSH1 0x1f
00000a75: DUP3
00000a76: ADD
00000a77: AND
00000a78: DUP3
00000a79: ADD
00000a7a: DUP1
00000a7b: PUSH1 0x40
00000a7d: MSTORE
00000a7e: POP
00000a7f: DUP2
00000a80: ADD
00000a81: SWAP1
00000a82: PUSH2 0x0a8b
00000a85: SWAP2
00000a86: SWAP1
00000a87: PUSH2 0x31be
00000a8a: JUMP
00000a8b: JUMPDEST
00000a8c: DUP11
00000a8d: PUSH1 0x40
00000a8f: MLOAD
00000a90: PUSH1 0x20
00000a92: ADD
00000a93: PUSH2 0x0aa0
00000a96: SWAP6
00000a97: SWAP5
00000a98: SWAP4
00000a99: SWAP3
00000a9a: SWAP2
00000a9b: SWAP1
00000a9c: PUSH2 0x31d7
00000a9f: JUMP
00000aa0: JUMPDEST
00000aa1: PUSH1 0x40
00000aa3: MLOAD
00000aa4: PUSH1 0x20
00000aa6: DUP2
00000aa7: DUP4
00000aa8: SUB
00000aa9: SUB
00000aaa: DUP2
00000aab: MSTORE
00000aac: SWAP1
00000aad: PUSH1 0x40
00000aaf: MSTORE
00000ab0: DUP1
00000ab1: MLOAD
00000ab2: SWAP1
00000ab3: PUSH1 0x20
00000ab5: ADD
00000ab6: KECCAK256
00000ab7: DUP7
00000ab8: DUP7
00000ab9: DUP1
00000aba: DUP1
00000abb: PUSH1 0x1f
00000abd: ADD
00000abe: PUSH1 0x20
00000ac0: DUP1
00000ac1: SWAP2
00000ac2: DIV
00000ac3: MUL
00000ac4: PUSH1 0x20
00000ac6: ADD
00000ac7: PUSH1 0x40
00000ac9: MLOAD
00000aca: SWAP1
00000acb: DUP2
00000acc: ADD
00000acd: PUSH1 0x40
00000acf: MSTORE
00000ad0: DUP1
00000ad1: SWAP4
00000ad2: SWAP3
00000ad3: SWAP2
00000ad4: SWAP1
00000ad5: DUP2
00000ad6: DUP2
00000ad7: MSTORE
00000ad8: PUSH1 0x20
00000ada: ADD
00000adb: DUP4
00000adc: DUP4
00000add: DUP1
00000ade: DUP3
00000adf: DUP5
00000ae0: CALLDATACOPY
00000ae1: PUSH1 0x00
00000ae3: SWAP3
00000ae4: ADD
00000ae5: SWAP2
00000ae6: SWAP1
00000ae7: SWAP2
00000ae8: MSTORE
00000ae9: POP
00000aea: PUSH2 0x220b
00000aed: SWAP3
00000aee: POP
00000aef: POP
00000af0: POP
00000af1: JUMP
00000af2: JUMPDEST
00000af3: CALLER
00000af4: PUSH1 0x00
00000af6: SWAP1
00000af7: DUP2
00000af8: MSTORE
00000af9: PUSH1 0xcb
00000afb: PUSH1 0x20
00000afd: SWAP1
00000afe: DUP2
00000aff: MSTORE
00000b00: PUSH1 0x40
00000b02: DUP1
00000b03: DUP4
00000b04: KECCAK256
00000b05: PUSH1 0x01
00000b07: PUSH1 0x01
00000b09: PUSH1 0xa0
00000b0b: SHL
00000b0c: SUB
00000b0d: DUP13
00000b0e: AND
00000b0f: DUP5
00000b10: MSTORE
00000b11: SWAP1
00000b12: SWAP2
00000b13: MSTORE
00000b14: DUP2
00000b15: KECCAK256
00000b16: DUP1
00000b17: SLOAD
00000b18: DUP10
00000b19: SWAP3
00000b1a: SWAP1
00000b1b: PUSH2 0x0b25
00000b1e: SWAP1
00000b1f: DUP5
00000b20: SWAP1
00000b21: PUSH2 0x3228
00000b24: JUMP
00000b25: JUMPDEST
00000b26: SWAP1
00000b27: SWAP2
00000b28: SSTORE
00000b29: POP
00000b2a: POP
00000b2b: PUSH1 0x01
00000b2d: PUSH1 0x01
00000b2f: PUSH1 0xa0
00000b31: SHL
00000b32: SUB
00000b33: DUP9
00000b34: AND
00000b35: PUSH1 0x00
00000b37: SWAP1
00000b38: DUP2
00000b39: MSTORE
00000b3a: PUSH1 0xcc
00000b3c: PUSH1 0x20
00000b3e: MSTORE
00000b3f: PUSH1 0x40
00000b41: DUP2
00000b42: KECCAK256
00000b43: DUP1
00000b44: SLOAD
00000b45: DUP10
00000b46: SWAP3
00000b47: SWAP1
00000b48: PUSH2 0x0b52
00000b4b: SWAP1
00000b4c: DUP5
00000b4d: SWAP1
00000b4e: PUSH2 0x3228
00000b51: JUMP
00000b52: JUMPDEST
00000b53: SWAP1
00000b54: SWAP2
00000b55: SSTORE
00000b56: POP
00000b57: PUSH2 0x0b6d
00000b5a: SWAP1
00000b5b: POP
00000b5c: PUSH1 0x01
00000b5e: PUSH1 0x01
00000b60: PUSH1 0xa0
00000b62: SHL
00000b63: SUB
00000b64: DUP10
00000b65: AND
00000b66: CALLER
00000b67: ADDRESS
00000b68: DUP11
00000b69: PUSH2 0x22ef
00000b6c: JUMP
00000b6d: JUMPDEST
00000b6e: PUSH1 0x40
00000b70: MLOAD
00000b71: DUP8
00000b72: DUP2
00000b73: MSTORE
00000b74: PUSH1 0x01
00000b76: PUSH1 0x01
00000b78: PUSH1 0xa0
00000b7a: SHL
00000b7b: SUB
00000b7c: DUP10
00000b7d: AND
00000b7e: SWAP1
00000b7f: CALLER
00000b80: SWAP1
00000b81: PUSH32 0x3bda13fe73033028c14ba107ef2ddc3a09abeb2ea7cac294113857d856c96b3b
00000ba2: SWAP1
00000ba3: PUSH1 0x20
00000ba5: ADD
00000ba6: PUSH1 0x40
00000ba8: MLOAD
00000ba9: DUP1
00000baa: SWAP2
00000bab: SUB
00000bac: SWAP1
00000bad: LOG3
00000bae: POP
00000baf: POP
00000bb0: POP
00000bb1: PUSH2 0x0bba
00000bb4: PUSH1 0x01
00000bb6: PUSH1 0x65
00000bb8: SSTORE
00000bb9: JUMP
00000bba: JUMPDEST
00000bbb: POP
00000bbc: POP
00000bbd: POP
00000bbe: POP
00000bbf: POP
00000bc0: JUMP
00000bc1: JUMPDEST
00000bc2: PUSH2 0x0bc9
00000bc5: PUSH2 0x1f0f
00000bc8: JUMP
00000bc9: JUMPDEST
00000bca: PUSH2 0x0bd1
00000bcd: PUSH2 0x2017
00000bd0: JUMP
00000bd1: JUMPDEST
00000bd2: PUSH2 0x0be7
00000bd5: DUP2
00000bd6: DUP5
00000bd7: DUP5
00000bd8: PUSH1 0x01
00000bda: PUSH1 0x01
00000bdc: PUSH1 0xa0
00000bde: SHL
00000bdf: SUB
00000be0: DUP3
00000be1: AND
00000be2: ISZERO
00000be3: PUSH2 0x2361
00000be6: JUMP
00000be7: JUMPDEST
00000be8: DUP3
00000be9: PUSH1 0x01
00000beb: PUSH1 0x01
00000bed: PUSH1 0xa0
00000bef: SHL
00000bf0: SUB
00000bf1: AND
00000bf2: DUP2
00000bf3: PUSH1 0x01
00000bf5: PUSH1 0x01
00000bf7: PUSH1 0xa0
00000bf9: SHL
00000bfa: SUB
00000bfb: AND
00000bfc: PUSH32 0xa922bc33914bd31b27595f621e02fefe0cce42e852ef76299a0a618efa9c6e5b
00000c1d: DUP5
00000c1e: PUSH1 0x40
00000c20: MLOAD
00000c21: PUSH2 0x0c2c
00000c24: SWAP2
00000c25: DUP2
00000c26: MSTORE
00000c27: PUSH1 0x20
00000c29: ADD
00000c2a: SWAP1
00000c2b: JUMP
00000c2c: JUMPDEST
00000c2d: PUSH1 0x40
00000c2f: MLOAD
00000c30: DUP1
00000c31: SWAP2
00000c32: SUB
00000c33: SWAP1
00000c34: LOG3
00000c35: PUSH2 0x0c3e
00000c38: PUSH1 0x01
00000c3a: PUSH1 0x65
00000c3c: SSTORE
00000c3d: JUMP
00000c3e: JUMPDEST
00000c3f: POP
00000c40: POP
00000c41: POP
00000c42: JUMP
00000c43: JUMPDEST
00000c44: PUSH2 0x0c4b
00000c47: PUSH2 0x2434
00000c4a: JUMP
00000c4b: JUMPDEST
00000c4c: PUSH2 0x0c53
00000c4f: PUSH2 0x2017
00000c52: JUMP
00000c53: JUMPDEST
00000c54: DUP1
00000c55: PUSH1 0x00
00000c57: JUMPDEST
00000c58: DUP2
00000c59: DUP2
00000c5a: LT
00000c5b: ISZERO
00000c5c: PUSH2 0x0cff
00000c5f: JUMPI
00000c60: PUSH1 0x00
00000c62: PUSH1 0xd2
00000c64: PUSH1 0x00
00000c66: DUP7
00000c67: DUP7
00000c68: DUP6
00000c69: DUP2
00000c6a: DUP2
00000c6b: LT
00000c6c: PUSH2 0x0c77
00000c6f: JUMPI
00000c70: PUSH2 0x0c77
00000c73: PUSH2 0x3241
00000c76: JUMP
00000c77: JUMPDEST
00000c78: SWAP1
00000c79: POP
00000c7a: PUSH1 0x20
00000c7c: MUL
00000c7d: ADD
00000c7e: PUSH1 0x20
00000c80: DUP2
00000c81: ADD
00000c82: SWAP1
00000c83: PUSH2 0x0c8c
00000c86: SWAP2
00000c87: SWAP1
00000c88: PUSH2 0x2bde
00000c8b: JUMP
00000c8c: JUMPDEST
00000c8d: PUSH1 0x01
00000c8f: PUSH1 0x01
00000c91: PUSH1 0xa0
00000c93: SHL
00000c94: SUB
00000c95: AND
00000c96: PUSH1 0x01
00000c98: PUSH1 0x01
00000c9a: PUSH1 0xa0
00000c9c: SHL
00000c9d: SUB
00000c9e: AND
00000c9f: DUP2
00000ca0: MSTORE
00000ca1: PUSH1 0x20
00000ca3: ADD
00000ca4: SWAP1
00000ca5: DUP2
00000ca6: MSTORE
00000ca7: PUSH1 0x20
00000ca9: ADD
00000caa: PUSH1 0x00
00000cac: KECCAK256
00000cad: DUP2
00000cae: SWAP1
00000caf: SSTORE
00000cb0: POP
00000cb1: PUSH1 0x00
00000cb3: PUSH1 0xd3
00000cb5: PUSH1 0x00
00000cb7: DUP7
00000cb8: DUP7
00000cb9: DUP6
00000cba: DUP2
00000cbb: DUP2
00000cbc: LT
00000cbd: PUSH2 0x0cc8
00000cc0: JUMPI
00000cc1: PUSH2 0x0cc8
00000cc4: PUSH2 0x3241
00000cc7: JUMP
00000cc8: JUMPDEST
00000cc9: SWAP1
00000cca: POP
00000ccb: PUSH1 0x20
00000ccd: MUL
00000cce: ADD
00000ccf: PUSH1 0x20
00000cd1: DUP2
00000cd2: ADD
00000cd3: SWAP1
00000cd4: PUSH2 0x0cdd
00000cd7: SWAP2
00000cd8: SWAP1
00000cd9: PUSH2 0x2bde
00000cdc: JUMP
00000cdd: JUMPDEST
00000cde: PUSH1 0x01
00000ce0: PUSH1 0x01
00000ce2: PUSH1 0xa0
00000ce4: SHL
00000ce5: SUB
00000ce6: AND
00000ce7: DUP2
00000ce8: MSTORE
00000ce9: PUSH1 0x20
00000ceb: DUP2
00000cec: ADD
00000ced: SWAP2
00000cee: SWAP1
00000cef: SWAP2
00000cf0: MSTORE
00000cf1: PUSH1 0x40
00000cf3: ADD
00000cf4: PUSH1 0x00
00000cf6: KECCAK256
00000cf7: SSTORE
00000cf8: PUSH1 0x01
00000cfa: ADD
00000cfb: PUSH2 0x0c57
00000cfe: JUMP
00000cff: JUMPDEST
00000d00: POP
00000d01: POP
00000d02: PUSH2 0x0d0b
00000d05: PUSH1 0x01
00000d07: PUSH1 0x65
00000d09: SSTORE
00000d0a: JUMP
00000d0b: JUMPDEST
00000d0c: POP
00000d0d: POP
00000d0e: JUMP
00000d0f: JUMPDEST
00000d10: PUSH2 0x0d17
00000d13: PUSH2 0x2434
00000d16: JUMP
00000d17: JUMPDEST
00000d18: PUSH2 0x0d1f
00000d1b: PUSH2 0x24d8
00000d1e: JUMP
00000d1f: JUMPDEST
00000d20: PUSH1 0x40
00000d22: MLOAD
00000d23: PUSH32 0x4051e961c454332acc3bfc1fd8b56b6089a599327eb5c8dd6d693d38551cd323
00000d44: SWAP1
00000d45: PUSH1 0x00
00000d47: SWAP1
00000d48: LOG1
00000d49: JUMP
00000d4a: JUMPDEST
00000d4b: PUSH2 0x0d52
00000d4e: PUSH2 0x2070
00000d51: JUMP
00000d52: JUMPDEST
00000d53: PUSH2 0x0d5a
00000d56: PUSH2 0x2532
00000d59: JUMP
00000d5a: JUMPDEST
00000d5b: PUSH2 0x0d62
00000d5e: PUSH2 0x2017
00000d61: JUMP
00000d62: JUMPDEST
00000d63: PUSH2 0x0d6e
00000d66: DUP3
00000d67: DUP6
00000d68: DUP6
00000d69: DUP5
00000d6a: PUSH2 0x2361
00000d6d: JUMP
00000d6e: JUMPDEST
00000d6f: PUSH2 0x0d78
00000d72: PUSH1 0x01
00000d74: PUSH1 0x65
00000d76: SSTORE
00000d77: JUMP
00000d78: JUMPDEST
00000d79: POP
00000d7a: POP
00000d7b: POP
00000d7c: POP
00000d7d: JUMP
00000d7e: JUMPDEST
00000d7f: PUSH2 0x0d86
00000d82: PUSH2 0x1f0f
00000d85: JUMP
00000d86: JUMPDEST
00000d87: PUSH1 0x97
00000d89: SLOAD
00000d8a: PUSH1 0x01
00000d8c: PUSH1 0x01
00000d8e: PUSH1 0xa0
00000d90: SHL
00000d91: SUB
00000d92: SWAP1
00000d93: DUP2
00000d94: AND
00000d95: SWAP1
00000d96: DUP3
00000d97: AND
00000d98: SUB
00000d99: PUSH2 0x0dcc
00000d9c: JUMPI
00000d9d: PUSH1 0x97
00000d9f: SLOAD
00000da0: PUSH1 0x40
00000da2: MLOAD
00000da3: PUSH4 0x0237ef61
00000da8: PUSH1 0xe1
00000daa: SHL
00000dab: DUP2
00000dac: MSTORE
00000dad: PUSH1 0x01
00000daf: PUSH1 0x01
00000db1: PUSH1 0xa0
00000db3: SHL
00000db4: SUB
00000db5: SWAP2
00000db6: DUP3
00000db7: AND
00000db8: PUSH1 0x04
00000dba: DUP3
00000dbb: ADD
00000dbc: MSTORE
00000dbd: SWAP1
00000dbe: DUP3
00000dbf: AND
00000dc0: PUSH1 0x24
00000dc2: DUP3
00000dc3: ADD
00000dc4: MSTORE
00000dc5: PUSH1 0x44
00000dc7: ADD
00000dc8: PUSH2 0x08b7
00000dcb: JUMP
00000dcc: JUMPDEST
00000dcd: PUSH2 0x08c9
00000dd0: DUP2
00000dd1: PUSH2 0x259c
00000dd4: JUMP
00000dd5: JUMPDEST
00000dd6: PUSH2 0x0ddd
00000dd9: PUSH2 0x1f0f
00000ddc: JUMP
00000ddd: JUMPDEST
00000dde: PUSH2 0x0de5
00000de1: PUSH2 0x264e
00000de4: JUMP
00000de5: JUMPDEST
00000de6: PUSH1 0x40
00000de8: MLOAD
00000de9: PUSH32 0x2d12867222d81b22cc368d426643f6e5a96986c24cc39ce8504ed58e2660df51
00000e0a: SWAP1
00000e0b: PUSH1 0x00
00000e0d: SWAP1
00000e0e: LOG1
00000e0f: JUMP
00000e10: JUMPDEST
00000e11: PUSH2 0x0e18
00000e14: PUSH2 0x2434
00000e17: JUMP
00000e18: JUMPDEST
00000e19: PUSH2 0x0e20
00000e1c: PUSH2 0x2070
00000e1f: JUMP
00000e20: JUMPDEST
00000e21: PUSH1 0x01
00000e23: PUSH1 0x01
00000e25: PUSH1 0xa0
00000e27: SHL
00000e28: SUB
00000e29: DUP1
00000e2a: DUP5
00000e2b: AND
00000e2c: PUSH1 0x00
00000e2e: SWAP1
00000e2f: DUP2
00000e30: MSTORE
00000e31: PUSH1 0xcb
00000e33: PUSH1 0x20
00000e35: SWAP1
00000e36: DUP2
00000e37: MSTORE
00000e38: PUSH1 0x40
00000e3a: DUP1
00000e3b: DUP4
00000e3c: KECCAK256
00000e3d: SWAP4
00000e3e: DUP7
00000e3f: AND
00000e40: DUP4
00000e41: MSTORE
00000e42: SWAP3
00000e43: SWAP1
00000e44: MSTORE
00000e45: SWAP1
00000e46: DUP2
00000e47: KECCAK256
00000e48: DUP1
00000e49: SLOAD
00000e4a: DUP4
00000e4b: SWAP3
00000e4c: SWAP1
00000e4d: PUSH2 0x0e57
00000e50: SWAP1
00000e51: DUP5
00000e52: SWAP1
00000e53: PUSH2 0x3228
00000e56: JUMP
00000e57: JUMPDEST
00000e58: SWAP1
00000e59: SWAP2
00000e5a: SSTORE
00000e5b: POP
00000e5c: POP
00000e5d: PUSH1 0x01
00000e5f: PUSH1 0x01
00000e61: PUSH1 0xa0
00000e63: SHL
00000e64: SUB
00000e65: DUP3
00000e66: AND
00000e67: PUSH1 0x00
00000e69: SWAP1
00000e6a: DUP2
00000e6b: MSTORE
00000e6c: PUSH1 0xcc
00000e6e: PUSH1 0x20
00000e70: MSTORE
00000e71: PUSH1 0x40
00000e73: DUP2
00000e74: KECCAK256
00000e75: DUP1
00000e76: SLOAD
00000e77: DUP4
00000e78: SWAP3
00000e79: SWAP1
00000e7a: PUSH2 0x0e84
00000e7d: SWAP1
00000e7e: DUP5
00000e7f: SWAP1
00000e80: PUSH2 0x3228
00000e83: JUMP
00000e84: JUMPDEST
00000e85: SWAP3
00000e86: POP
00000e87: POP
00000e88: DUP2
00000e89: SWAP1
00000e8a: SSTORE
00000e8b: POP
00000e8c: DUP3
00000e8d: PUSH1 0x01
00000e8f: PUSH1 0x01
00000e91: PUSH1 0xa0
00000e93: SHL
00000e94: SUB
00000e95: AND
00000e96: DUP3
00000e97: PUSH1 0x01
00000e99: PUSH1 0x01
00000e9b: PUSH1 0xa0
00000e9d: SHL
00000e9e: SUB
00000e9f: AND
00000ea0: PUSH32 0xe085944a5ddfe0e68127edbf665e03ec5be397243129f6555232ed553e951cb1
00000ec1: DUP4
00000ec2: PUSH1 0x40
00000ec4: MLOAD
00000ec5: PUSH2 0x0ed0
00000ec8: SWAP2
00000ec9: DUP2
00000eca: MSTORE
00000ecb: PUSH1 0x20
00000ecd: ADD
00000ece: SWAP1
00000ecf: JUMP
00000ed0: JUMPDEST
00000ed1: PUSH1 0x40
00000ed3: MLOAD
00000ed4: DUP1
00000ed5: SWAP2
00000ed6: SUB
00000ed7: SWAP1
00000ed8: LOG3
00000ed9: POP
00000eda: POP
00000edb: POP
00000edc: JUMP
00000edd: JUMPDEST
00000ede: PUSH2 0x0ee5
00000ee1: PUSH2 0x1f0f
00000ee4: JUMP
00000ee5: JUMPDEST
00000ee6: DUP1
00000ee7: PUSH2 0x0eef
00000eea: DUP2
00000eeb: PUSH2 0x2687
00000eee: JUMP
00000eef: JUMPDEST
00000ef0: PUSH1 0xc9
00000ef2: DUP1
00000ef3: SLOAD
00000ef4: PUSH1 0x01
00000ef6: PUSH1 0x01
00000ef8: PUSH1 0xa0
00000efa: SHL
00000efb: SUB
00000efc: NOT
00000efd: AND
00000efe: PUSH1 0x01
00000f00: PUSH1 0x01
00000f02: PUSH1 0xa0
00000f04: SHL
00000f05: SUB
00000f06: DUP5
00000f07: AND
00000f08: SWAP1
00000f09: DUP2
00000f0a: OR
00000f0b: SWAP1
00000f0c: SWAP2
00000f0d: SSTORE
00000f0e: PUSH1 0x40
00000f10: MLOAD
00000f11: PUSH32 0xa49730bff544fd0b716395c592e39c6fd2d2481a19b9229b5b240483db95a495
00000f32: SWAP1
00000f33: PUSH1 0x00
00000f35: SWAP1
00000f36: LOG2
00000f37: POP
00000f38: POP
00000f39: JUMP
00000f3a: JUMPDEST
00000f3b: DUP1
00000f3c: PUSH2 0x0f44
00000f3f: DUP2
00000f40: PUSH2 0x2687
00000f43: JUMP
00000f44: JUMPDEST
00000f45: PUSH2 0x0f4c
00000f48: PUSH2 0x1f0f
00000f4b: JUMP
00000f4c: JUMPDEST
00000f4d: PUSH1 0xd1
00000f4f: DUP1
00000f50: SLOAD
00000f51: PUSH1 0x01
00000f53: PUSH1 0x01
00000f55: PUSH1 0xa0
00000f57: SHL
00000f58: SUB
00000f59: NOT
00000f5a: AND
00000f5b: PUSH1 0x01
00000f5d: PUSH1 0x01
00000f5f: PUSH1 0xa0
00000f61: SHL
00000f62: SUB
00000f63: DUP5
00000f64: AND
00000f65: SWAP1
00000f66: DUP2
00000f67: OR
00000f68: SWAP1
00000f69: SWAP2
00000f6a: SSTORE
00000f6b: PUSH1 0x40
00000f6d: MLOAD
00000f6e: SWAP1
00000f6f: DUP2
00000f70: MSTORE
00000f71: PUSH32 0x1f0da97238b22add14994904c13e93a9ba4fdb2020955e639c43e03bb262cbce
00000f92: SWAP1
00000f93: PUSH1 0x20
00000f95: ADD
00000f96: PUSH2 0x09d4
00000f99: JUMP
00000f9a: JUMPDEST
00000f9b: PUSH2 0x0fa2
00000f9e: PUSH2 0x2532
00000fa1: JUMP
00000fa2: JUMPDEST
00000fa3: PUSH2 0x0faa
00000fa6: PUSH2 0x2017
00000fa9: JUMP
00000faa: JUMPDEST
00000fab: PUSH1 0x00
00000fad: DUP2
00000fae: DUP2
00000faf: MSTORE
00000fb0: PUSH1 0xd4
00000fb2: PUSH1 0x20
00000fb4: MSTORE
00000fb5: PUSH1 0x40
00000fb7: SWAP1
00000fb8: KECCAK256
00000fb9: SLOAD
00000fba: PUSH1 0xff
00000fbc: AND
00000fbd: ISZERO
00000fbe: PUSH2 0x0fec
00000fc1: JUMPI
00000fc2: PUSH1 0x40
00000fc4: MLOAD
00000fc5: PUSH4 0x18bb936b
00000fca: PUSH1 0xe3
00000fcc: SHL
00000fcd: DUP2
00000fce: MSTORE
00000fcf: PUSH1 0x04
00000fd1: DUP2
00000fd2: ADD
00000fd3: DUP3
00000fd4: SWAP1
00000fd5: MSTORE
00000fd6: PUSH1 0x01
00000fd8: PUSH1 0x01
00000fda: PUSH1 0xa0
00000fdc: SHL
00000fdd: SUB
00000fde: DUP5
00000fdf: AND
00000fe0: PUSH1 0x24
00000fe2: DUP3
00000fe3: ADD
00000fe4: MSTORE
00000fe5: PUSH1 0x44
00000fe7: ADD
00000fe8: PUSH2 0x08b7
00000feb: JUMP
00000fec: JUMPDEST
00000fed: PUSH1 0x01
00000fef: PUSH1 0x01
00000ff1: PUSH1 0xa0
00000ff3: SHL
00000ff4: SUB
00000ff5: DUP4
00000ff6: AND
00000ff7: PUSH1 0x00
00000ff9: SWAP1
00000ffa: DUP2
00000ffb: MSTORE
00000ffc: PUSH1 0xd3
00000ffe: PUSH1 0x20
00001000: MSTORE
00001001: PUSH1 0x40
00001003: DUP2
00001004: KECCAK256
00001005: DUP1
00001006: SLOAD
00001007: DUP5
00001008: SWAP3
00001009: SWAP1
0000100a: PUSH2 0x1014
0000100d: SWAP1
0000100e: DUP5
0000100f: SWAP1
00001010: PUSH2 0x3228
00001013: JUMP
00001014: JUMPDEST
00001015: SWAP1
00001016: SWAP2
00001017: SSTORE
00001018: POP
00001019: POP
0000101a: PUSH1 0x01
0000101c: PUSH1 0x01
0000101e: PUSH1 0xa0
00001020: SHL
00001021: SUB
00001022: DUP4
00001023: AND
00001024: PUSH1 0x00
00001026: SWAP1
00001027: DUP2
00001028: MSTORE
00001029: PUSH1 0xcf
0000102b: PUSH1 0x20
0000102d: MSTORE
0000102e: PUSH1 0x40
00001030: SWAP1
00001031: KECCAK256
00001032: SLOAD
00001033: PUSH1 0xff
00001035: AND
00001036: ISZERO
00001037: PUSH2 0x1054
0000103a: JUMPI
0000103b: PUSH1 0x00
0000103d: DUP2
0000103e: DUP2
0000103f: MSTORE
00001040: PUSH1 0xd4
00001042: PUSH1 0x20
00001044: MSTORE
00001045: PUSH1 0x40
00001047: SWAP1
00001048: KECCAK256
00001049: DUP1
0000104a: SLOAD
0000104b: PUSH1 0xff
0000104d: NOT
0000104e: AND
0000104f: PUSH1 0x01
00001051: OR
00001052: SWAP1
00001053: SSTORE
00001054: JUMPDEST
00001055: DUP1
00001056: DUP4
00001057: PUSH1 0x01
00001059: PUSH1 0x01
0000105b: PUSH1 0xa0
0000105d: SHL
0000105e: SUB
0000105f: AND
00001060: PUSH32 0xddf3797a38d53ed43ea0839f8db9db1109d5d86994ebe78cc33a039fa5f8749b
00001081: DUP5
00001082: PUSH1 0x40
00001084: MLOAD
00001085: PUSH2 0x0c2c
00001088: SWAP2
00001089: DUP2
0000108a: MSTORE
0000108b: PUSH1 0x20
0000108d: ADD
0000108e: SWAP1
0000108f: JUMP
00001090: JUMPDEST
00001091: PUSH1 0x01
00001093: PUSH1 0x01
00001095: PUSH1 0xa0
00001097: SHL
00001098: SUB
00001099: DUP2
0000109a: AND
0000109b: PUSH1 0x00
0000109d: DUP2
0000109e: DUP2
0000109f: MSTORE
000010a0: PUSH1 0xd2
000010a2: PUSH1 0x20
000010a4: MSTORE
000010a5: PUSH1 0x40
000010a7: DUP1
000010a8: DUP3
000010a9: KECCAK256
000010aa: SLOAD
000010ab: PUSH1 0xd7
000010ad: SLOAD
000010ae: SWAP2
000010af: MLOAD
000010b0: PUSH4 0x70a08231
000010b5: PUSH1 0xe0
000010b7: SHL
000010b8: DUP2
000010b9: MSTORE
000010ba: ADDRESS
000010bb: PUSH1 0x04
000010bd: DUP3
000010be: ADD
000010bf: MSTORE
000010c0: SWAP3
000010c1: SWAP4
000010c2: SWAP1
000010c3: SWAP3
000010c4: DUP5
000010c5: SWAP3
000010c6: DUP5
000010c7: SWAP3
000010c8: PUSH2 0x2710
000010cb: SWAP3
000010cc: PUSH4 0x70a08231
000010d1: SWAP1
000010d2: PUSH1 0x24
000010d4: ADD
000010d5: PUSH1 0x20
000010d7: PUSH1 0x40
000010d9: MLOAD
000010da: DUP1
000010db: DUP4
000010dc: SUB
000010dd: DUP2
000010de: DUP7
000010df: GAS
000010e0: STATICCALL
000010e1: ISZERO
000010e2: DUP1
000010e3: ISZERO
000010e4: PUSH2 0x10f1
000010e7: JUMPI
000010e8: RETURNDATASIZE
000010e9: PUSH1 0x00
000010eb: DUP1
000010ec: RETURNDATACOPY
000010ed: RETURNDATASIZE
000010ee: PUSH1 0x00
000010f0: REVERT
000010f1: JUMPDEST
000010f2: POP
000010f3: POP
000010f4: POP
000010f5: POP
000010f6: PUSH1 0x40
000010f8: MLOAD
000010f9: RETURNDATASIZE
000010fa: PUSH1 0x1f
000010fc: NOT
000010fd: PUSH1 0x1f
000010ff: DUP3
00001100: ADD
00001101: AND
00001102: DUP3
00001103: ADD
00001104: DUP1
00001105: PUSH1 0x40
00001107: MSTORE
00001108: POP
00001109: DUP2
0000110a: ADD
0000110b: SWAP1
0000110c: PUSH2 0x1115
0000110f: SWAP2
00001110: SWAP1
00001111: PUSH2 0x31be
00001114: JUMP
00001115: JUMPDEST
00001116: PUSH2 0x111f
00001119: SWAP1
0000111a: DUP7
0000111b: PUSH2 0x3228
0000111e: JUMP
0000111f: JUMPDEST
00001120: PUSH2 0x1129
00001123: SWAP2
00001124: SWAP1
00001125: PUSH2 0x3257
00001128: JUMP
00001129: JUMPDEST
0000112a: PUSH2 0x1133
0000112d: SWAP2
0000112e: SWAP1
0000112f: PUSH2 0x326e
00001132: JUMP
00001133: JUMPDEST
00001134: PUSH2 0x113d
00001137: SWAP2
00001138: SWAP1
00001139: PUSH2 0x3290
0000113c: JUMP
0000113d: JUMPDEST
0000113e: SWAP1
0000113f: POP
00001140: PUSH1 0x00
00001142: DUP5
00001143: PUSH1 0x01
00001145: PUSH1 0x01
00001147: PUSH1 0xa0
00001149: SHL
0000114a: SUB
0000114b: AND
0000114c: PUSH4 0x18160ddd
00001151: PUSH1 0x40
00001153: MLOAD
00001154: DUP2
00001155: PUSH4 0xffffffff
0000115a: AND
0000115b: PUSH1 0xe0
0000115d: SHL
0000115e: DUP2
0000115f: MSTORE
00001160: PUSH1 0x04
00001162: ADD
00001163: PUSH1 0x20
00001165: PUSH1 0x40
00001167: MLOAD
00001168: DUP1
00001169: DUP4
0000116a: SUB
0000116b: DUP2
0000116c: DUP7
0000116d: GAS
0000116e: STATICCALL
0000116f: ISZERO
00001170: DUP1
00001171: ISZERO
00001172: PUSH2 0x117f
00001175: JUMPI
00001176: RETURNDATASIZE
00001177: PUSH1 0x00
00001179: DUP1
0000117a: RETURNDATACOPY
0000117b: RETURNDATASIZE
0000117c: PUSH1 0x00
0000117e: REVERT
0000117f: JUMPDEST
00001180: POP
00001181: POP
00001182: POP
00001183: POP
00001184: PUSH1 0x40
00001186: MLOAD
00001187: RETURNDATASIZE
00001188: PUSH1 0x1f
0000118a: NOT
0000118b: PUSH1 0x1f
0000118d: DUP3
0000118e: ADD
0000118f: AND
00001190: DUP3
00001191: ADD
00001192: DUP1
00001193: PUSH1 0x40
00001195: MSTORE
00001196: POP
00001197: DUP2
00001198: ADD
00001199: SWAP1
0000119a: PUSH2 0x11a3
0000119d: SWAP2
0000119e: SWAP1
0000119f: PUSH2 0x31be
000011a2: JUMP
000011a3: JUMPDEST
000011a4: SWAP1
000011a5: POP
000011a6: PUSH1 0x00
000011a8: DUP4
000011a9: PUSH2 0x2710
000011ac: PUSH1 0xd8
000011ae: SLOAD
000011af: DUP7
000011b0: DUP6
000011b1: PUSH2 0x11ba
000011b4: SWAP2
000011b5: SWAP1
000011b6: PUSH2 0x3290
000011b9: JUMP
000011ba: JUMPDEST
000011bb: PUSH2 0x11c4
000011be: SWAP2
000011bf: SWAP1
000011c0: PUSH2 0x3257
000011c3: JUMP
000011c4: JUMPDEST
000011c5: PUSH2 0x11ce
000011c8: SWAP2
000011c9: SWAP1
000011ca: PUSH2 0x326e
000011cd: JUMP
000011ce: JUMPDEST
000011cf: PUSH2 0x11d8
000011d2: SWAP2
000011d3: SWAP1
000011d4: PUSH2 0x3290
000011d7: JUMP
000011d8: JUMPDEST
000011d9: SWAP1
000011da: POP
000011db: DUP3
000011dc: DUP2
000011dd: GT
000011de: PUSH2 0x11e7
000011e1: JUMPI
000011e2: DUP1
000011e3: PUSH2 0x11e9
000011e6: JUMP
000011e7: JUMPDEST
000011e8: DUP3
000011e9: JUMPDEST
000011ea: SWAP7
000011eb: SWAP6
000011ec: POP
000011ed: POP
000011ee: POP
000011ef: POP
000011f0: POP
000011f1: POP
000011f2: JUMP
000011f3: JUMPDEST
000011f4: PUSH2 0x11fb
000011f7: PUSH2 0x2532
000011fa: JUMP
000011fb: JUMPDEST
000011fc: PUSH2 0x1203
000011ff: PUSH2 0x2070
00001202: JUMP
00001203: JUMPDEST
00001204: PUSH2 0x120b
00001207: PUSH2 0x2017
0000120a: JUMP
0000120b: JUMPDEST
0000120c: PUSH1 0x00
0000120e: DUP1
0000120f: JUMPDEST
00001210: DUP3
00001211: DUP2
00001212: LT
00001213: ISZERO
00001214: PUSH2 0x1387
00001217: JUMPI
00001218: PUSH1 0x00
0000121a: DUP5
0000121b: DUP5
0000121c: DUP4
0000121d: DUP2
0000121e: DUP2
0000121f: LT
00001220: PUSH2 0x122b
00001223: JUMPI
00001224: PUSH2 0x122b
00001227: PUSH2 0x3241
0000122a: JUMP
0000122b: JUMPDEST
0000122c: SWAP1
0000122d: POP
0000122e: PUSH1 0x20
00001230: MUL
00001231: ADD
00001232: CALLDATALOAD
00001233: SWAP1
00001234: POP
00001235: PUSH1 0x00
00001237: DUP8
00001238: DUP8
00001239: DUP5
0000123a: DUP2
0000123b: DUP2
0000123c: LT
0000123d: PUSH2 0x1248
00001240: JUMPI
00001241: PUSH2 0x1248
00001244: PUSH2 0x3241
00001247: JUMP
00001248: JUMPDEST
00001249: PUSH1 0x00
0000124b: DUP6
0000124c: DUP2
0000124d: MSTORE
0000124e: PUSH1 0xd4
00001250: PUSH1 0x20
00001252: SWAP1
00001253: DUP2
00001254: MSTORE
00001255: PUSH1 0x40
00001257: SWAP1
00001258: SWAP2
00001259: KECCAK256
0000125a: SLOAD
0000125b: SWAP2
0000125c: MUL
0000125d: SWAP3
0000125e: SWAP1
0000125f: SWAP3
00001260: ADD
00001261: CALLDATALOAD
00001262: SWAP3
00001263: POP
00001264: POP
00001265: PUSH1 0xff
00001267: AND
00001268: ISZERO
00001269: PUSH2 0x1297
0000126c: JUMPI
0000126d: PUSH1 0x40
0000126f: MLOAD
00001270: PUSH4 0x18bb936b
00001275: PUSH1 0xe3
00001277: SHL
00001278: DUP2
00001279: MSTORE
0000127a: PUSH1 0x04
0000127c: DUP2
0000127d: ADD
0000127e: DUP4
0000127f: SWAP1
00001280: MSTORE
00001281: PUSH1 0x01
00001283: PUSH1 0x01
00001285: PUSH1 0xa0
00001287: SHL
00001288: SUB
00001289: DUP11
0000128a: AND
0000128b: PUSH1 0x24
0000128d: DUP3
0000128e: ADD
0000128f: MSTORE
00001290: PUSH1 0x44
00001292: ADD
00001293: PUSH2 0x08b7
00001296: JUMP
00001297: JUMPDEST
00001298: PUSH1 0x01
0000129a: PUSH1 0x01
0000129c: PUSH1 0xa0
0000129e: SHL
0000129f: SUB
000012a0: DUP10
000012a1: AND
000012a2: PUSH1 0x00
000012a4: SWAP1
000012a5: DUP2
000012a6: MSTORE
000012a7: PUSH1 0xd5
000012a9: PUSH1 0x20
000012ab: SWAP1
000012ac: DUP2
000012ad: MSTORE
000012ae: PUSH1 0x40
000012b0: DUP1
000012b1: DUP4
000012b2: KECCAK256
000012b3: DUP6
000012b4: DUP5
000012b5: MSTORE
000012b6: SWAP1
000012b7: SWAP2
000012b8: MSTORE
000012b9: SWAP1
000012ba: KECCAK256
000012bb: SLOAD
000012bc: DUP2
000012bd: EQ
000012be: PUSH2 0x1319
000012c1: JUMPI
000012c2: PUSH1 0x01
000012c4: PUSH1 0x01
000012c6: PUSH1 0xa0
000012c8: SHL
000012c9: SUB
000012ca: DUP10
000012cb: AND
000012cc: PUSH1 0x00
000012ce: DUP2
000012cf: DUP2
000012d0: MSTORE
000012d1: PUSH1 0xd5
000012d3: PUSH1 0x20
000012d5: SWAP1
000012d6: DUP2
000012d7: MSTORE
000012d8: PUSH1 0x40
000012da: DUP1
000012db: DUP4
000012dc: KECCAK256
000012dd: DUP7
000012de: DUP5
000012df: MSTORE
000012e0: SWAP1
000012e1: SWAP2
000012e2: MSTORE
000012e3: SWAP1
000012e4: DUP2
000012e5: SWAP1
000012e6: KECCAK256
000012e7: SLOAD
000012e8: SWAP1
000012e9: MLOAD
000012ea: PUSH4 0x1b1d4ef9
000012ef: PUSH1 0xe2
000012f1: SHL
000012f2: DUP2
000012f3: MSTORE
000012f4: PUSH1 0x04
000012f6: DUP2
000012f7: ADD
000012f8: SWAP2
000012f9: SWAP1
000012fa: SWAP2
000012fb: MSTORE
000012fc: PUSH1 0x24
000012fe: DUP2
000012ff: ADD
00001300: DUP4
00001301: SWAP1
00001302: MSTORE
00001303: PUSH1 0x44
00001305: DUP2
00001306: ADD
00001307: DUP5
00001308: SWAP1
00001309: MSTORE
0000130a: PUSH1 0x64
0000130c: DUP2
0000130d: ADD
0000130e: SWAP2
0000130f: SWAP1
00001310: SWAP2
00001311: MSTORE
00001312: PUSH1 0x84
00001314: ADD
00001315: PUSH2 0x08b7
00001318: JUMP
00001319: JUMPDEST
0000131a: PUSH1 0x00
0000131c: DUP3
0000131d: DUP2
0000131e: MSTORE
0000131f: PUSH1 0xd4
00001321: PUSH1 0x20
00001323: MSTORE
00001324: PUSH1 0x40
00001326: SWAP1
00001327: DUP2
00001328: SWAP1
00001329: KECCAK256
0000132a: DUP1
0000132b: SLOAD
0000132c: PUSH1 0xff
0000132e: NOT
0000132f: AND
00001330: PUSH1 0x01
00001332: OR
00001333: SWAP1
00001334: SSTORE
00001335: MLOAD
00001336: SWAP4
00001337: DUP2
00001338: ADD
00001339: SWAP4
0000133a: DUP3
0000133b: SWAP1
0000133c: PUSH1 0x01
0000133e: PUSH1 0x01
00001340: PUSH1 0xa0
00001342: SHL
00001343: SUB
00001344: DUP12
00001345: AND
00001346: SWAP1
00001347: PUSH32 0x1b36ea262b458e9b3ff138a58a195232f209ce92ab097f27606a12f7ec0790f2
00001368: SWAP1
00001369: PUSH2 0x1375
0000136c: SWAP1
0000136d: DUP6
0000136e: DUP2
0000136f: MSTORE
00001370: PUSH1 0x20
00001372: ADD
00001373: SWAP1
00001374: JUMP
00001375: JUMPDEST
00001376: PUSH1 0x40
00001378: MLOAD
00001379: DUP1
0000137a: SWAP2
0000137b: SUB
0000137c: SWAP1
0000137d: LOG3
0000137e: POP
0000137f: POP
00001380: PUSH1 0x01
00001382: ADD
00001383: PUSH2 0x120f
00001386: JUMP
00001387: JUMPDEST
00001388: POP
00001389: PUSH1 0x01
0000138b: PUSH1 0x01
0000138d: PUSH1 0xa0
0000138f: SHL
00001390: SUB
00001391: DUP7
00001392: AND
00001393: PUSH1 0x00
00001395: SWAP1
00001396: DUP2
00001397: MSTORE
00001398: PUSH1 0xd2
0000139a: PUSH1 0x20
0000139c: MSTORE
0000139d: PUSH1 0x40
0000139f: DUP2
000013a0: KECCAK256
000013a1: DUP1
000013a2: SLOAD
000013a3: DUP4
000013a4: SWAP3
000013a5: SWAP1
000013a6: PUSH2 0x13b0
000013a9: SWAP1
000013aa: DUP5
000013ab: SWAP1
000013ac: PUSH2 0x3290
000013af: JUMP
000013b0: JUMPDEST
000013b1: SWAP1
000013b2: SWAP2
000013b3: SSTORE
000013b4: POP
000013b5: POP
000013b6: PUSH1 0x01
000013b8: PUSH1 0x65
000013ba: SSTORE
000013bb: POP
000013bc: PUSH2 0x0bba
000013bf: JUMP
000013c0: JUMPDEST
000013c1: PUSH2 0x13c8
000013c4: PUSH2 0x2434
000013c7: JUMP
000013c8: JUMPDEST
000013c9: PUSH2 0x13d0
000013cc: PUSH2 0x2070
000013cf: JUMP
000013d0: JUMPDEST
000013d1: DUP5
000013d2: DUP4
000013d3: EQ
000013d4: DUP1
000013d5: ISZERO
000013d6: PUSH2 0x13de
000013d9: JUMPI
000013da: POP
000013db: DUP3
000013dc: DUP2
000013dd: EQ
000013de: JUMPDEST
000013df: PUSH2 0x1439
000013e2: JUMPI
000013e3: PUSH1 0x40
000013e5: MLOAD
000013e6: PUSH3 0x461bcd
000013ea: PUSH1 0xe5
000013ec: SHL
000013ed: DUP2
000013ee: MSTORE
000013ef: PUSH1 0x20
000013f1: PUSH1 0x04
000013f3: DUP3
000013f4: ADD
000013f5: MSTORE
000013f6: PUSH1 0x26
000013f8: PUSH1 0x24
000013fa: DUP3
000013fb: ADD
000013fc: MSTORE
000013fd: PUSH32 0x496e70757420617272617973206d7573742068617665207468652073616d6520
0000141e: PUSH1 0x44
00001420: DUP3
00001421: ADD
00001422: MSTORE
00001423: PUSH6 0x0d8cadccee8d
0000142a: PUSH1 0xd3
0000142c: SHL
0000142d: PUSH1 0x64
0000142f: DUP3
00001430: ADD
00001431: MSTORE
00001432: PUSH1 0x84
00001434: ADD
00001435: PUSH2 0x08b7
00001438: JUMP
00001439: JUMPDEST
0000143a: PUSH1 0x00
0000143c: JUMPDEST
0000143d: DUP6
0000143e: DUP2
0000143f: LT
00001440: ISZERO
00001441: PUSH2 0x15a2
00001444: JUMPI
00001445: PUSH1 0x00
00001447: DUP8
00001448: DUP8
00001449: DUP4
0000144a: DUP2
0000144b: DUP2
0000144c: LT
0000144d: PUSH2 0x1458
00001450: JUMPI
00001451: PUSH2 0x1458
00001454: PUSH2 0x3241
00001457: JUMP
00001458: JUMPDEST
00001459: SWAP1
0000145a: POP
0000145b: PUSH1 0x20
0000145d: MUL
0000145e: ADD
0000145f: PUSH1 0x20
00001461: DUP2
00001462: ADD
00001463: SWAP1
00001464: PUSH2 0x146d
00001467: SWAP2
00001468: SWAP1
00001469: PUSH2 0x2bde
0000146c: JUMP
0000146d: JUMPDEST
0000146e: SWAP1
0000146f: POP
00001470: PUSH1 0x00
00001472: DUP7
00001473: DUP7
00001474: DUP5
00001475: DUP2
00001476: DUP2
00001477: LT
00001478: PUSH2 0x1483
0000147b: JUMPI
0000147c: PUSH2 0x1483
0000147f: PUSH2 0x3241
00001482: JUMP
00001483: JUMPDEST
00001484: SWAP1
00001485: POP
00001486: PUSH1 0x20
00001488: MUL
00001489: ADD
0000148a: PUSH1 0x20
0000148c: DUP2
0000148d: ADD
0000148e: SWAP1
0000148f: PUSH2 0x1498
00001492: SWAP2
00001493: SWAP1
00001494: PUSH2 0x2bde
00001497: JUMP
00001498: JUMPDEST
00001499: SWAP1
0000149a: POP
0000149b: PUSH1 0x00
0000149d: DUP6
0000149e: DUP6
0000149f: DUP6
000014a0: DUP2
000014a1: DUP2
000014a2: LT
000014a3: PUSH2 0x14ae
000014a6: JUMPI
000014a7: PUSH2 0x14ae
000014aa: PUSH2 0x3241
000014ad: JUMP
000014ae: JUMPDEST
000014af: SWAP1
000014b0: POP
000014b1: PUSH1 0x20
000014b3: MUL
000014b4: ADD
000014b5: CALLDATALOAD
000014b6: SWAP1
000014b7: POP
000014b8: PUSH1 0xcb
000014ba: PUSH1 0x00
000014bc: DUP5
000014bd: PUSH1 0x01
000014bf: PUSH1 0x01
000014c1: PUSH1 0xa0
000014c3: SHL
000014c4: SUB
000014c5: AND
000014c6: PUSH1 0x01
000014c8: PUSH1 0x01
000014ca: PUSH1 0xa0
000014cc: SHL
000014cd: SUB
000014ce: AND
000014cf: DUP2
000014d0: MSTORE
000014d1: PUSH1 0x20
000014d3: ADD
000014d4: SWAP1
000014d5: DUP2
000014d6: MSTORE
000014d7: PUSH1 0x20
000014d9: ADD
000014da: PUSH1 0x00
000014dc: KECCAK256
000014dd: PUSH1 0x00
000014df: DUP4
000014e0: PUSH1 0x01
000014e2: PUSH1 0x01
000014e4: PUSH1 0xa0
000014e6: SHL
000014e7: SUB
000014e8: AND
000014e9: PUSH1 0x01
000014eb: PUSH1 0x01
000014ed: PUSH1 0xa0
000014ef: SHL
000014f0: SUB
000014f1: AND
000014f2: DUP2
000014f3: MSTORE
000014f4: PUSH1 0x20
000014f6: ADD
000014f7: SWAP1
000014f8: DUP2
000014f9: MSTORE
000014fa: PUSH1 0x20
000014fc: ADD
000014fd: PUSH1 0x00
000014ff: KECCAK256
00001500: SLOAD
00001501: PUSH1 0x00
00001503: SUB
00001504: PUSH2 0x1528
00001507: JUMPI
00001508: PUSH1 0x00
0000150a: PUSH1 0x01
0000150c: DUP4
0000150d: PUSH1 0x40
0000150f: MLOAD
00001510: PUSH4 0x19405909
00001515: PUSH1 0xe0
00001517: SHL
00001518: DUP2
00001519: MSTORE
0000151a: PUSH1 0x04
0000151c: ADD
0000151d: PUSH2 0x08b7
00001520: SWAP4
00001521: SWAP3
00001522: SWAP2
00001523: SWAP1
00001524: PUSH2 0x32a3
00001527: JUMP
00001528: JUMPDEST
00001529: PUSH1 0x01
0000152b: PUSH1 0x01
0000152d: PUSH1 0xa0
0000152f: SHL
00001530: SUB
00001531: DUP4
00001532: DUP2
00001533: AND
00001534: PUSH1 0x00
00001536: DUP2
00001537: DUP2
00001538: MSTORE
00001539: PUSH1 0xcb
0000153b: PUSH1 0x20
0000153d: SWAP1
0000153e: DUP2
0000153f: MSTORE
00001540: PUSH1 0x40
00001542: DUP1
00001543: DUP4
00001544: KECCAK256
00001545: SWAP5
00001546: DUP8
00001547: AND
00001548: DUP1
00001549: DUP5
0000154a: MSTORE
0000154b: SWAP5
0000154c: DUP3
0000154d: MSTORE
0000154e: DUP1
0000154f: DUP4
00001550: KECCAK256
00001551: DUP1
00001552: SLOAD
00001553: DUP8
00001554: ADD
00001555: SWAP1
00001556: SSTORE
00001557: PUSH1 0xcc
00001559: DUP3
0000155a: MSTORE
0000155b: SWAP2
0000155c: DUP3
0000155d: SWAP1
0000155e: KECCAK256
0000155f: DUP1
00001560: SLOAD
00001561: DUP7
00001562: ADD
00001563: SWAP1
00001564: SSTORE
00001565: SWAP1
00001566: MLOAD
00001567: DUP5
00001568: DUP2
00001569: MSTORE
0000156a: PUSH32 0x3bda13fe73033028c14ba107ef2ddc3a09abeb2ea7cac294113857d856c96b3b
0000158b: SWAP2
0000158c: ADD
0000158d: PUSH1 0x40
0000158f: MLOAD
00001590: DUP1
00001591: SWAP2
00001592: SUB
00001593: SWAP1
00001594: LOG3
00001595: POP
00001596: POP
00001597: POP
00001598: DUP1
00001599: PUSH1 0x01
0000159b: ADD
0000159c: SWAP1
0000159d: POP
0000159e: PUSH2 0x143c
000015a1: JUMP
000015a2: JUMPDEST
000015a3: POP
000015a4: POP
000015a5: POP
000015a6: POP
000015a7: POP
000015a8: POP
000015a9: POP
000015aa: JUMP
000015ab: JUMPDEST
000015ac: PUSH2 0x15b3
000015af: PUSH2 0x2434
000015b2: JUMP
000015b3: JUMPDEST
000015b4: PUSH2 0x15bb
000015b7: PUSH2 0x2017
000015ba: JUMP
000015bb: JUMPDEST
000015bc: PUSH2 0x15f9
000015bf: DUP4
000015c0: DUP4
000015c1: DUP1
000015c2: DUP1
000015c3: PUSH1 0x20
000015c5: MUL
000015c6: PUSH1 0x20
000015c8: ADD
000015c9: PUSH1 0x40
000015cb: MLOAD
000015cc: SWAP1
000015cd: DUP2
000015ce: ADD
000015cf: PUSH1 0x40
000015d1: MSTORE
000015d2: DUP1
000015d3: SWAP4
000015d4: SWAP3
000015d5: SWAP2
000015d6: SWAP1
000015d7: DUP2
000015d8: DUP2
000015d9: MSTORE
000015da: PUSH1 0x20
000015dc: ADD
000015dd: DUP4
000015de: DUP4
000015df: PUSH1 0x20
000015e1: MUL
000015e2: DUP1
000015e3: DUP3
000015e4: DUP5
000015e5: CALLDATACOPY
000015e6: PUSH1 0x00
000015e8: SWAP3
000015e9: ADD
000015ea: SWAP2
000015eb: SWAP1
000015ec: SWAP2
000015ed: MSTORE
000015ee: POP
000015ef: DUP6
000015f0: SWAP3
000015f1: POP
000015f2: PUSH2 0x26e8
000015f5: SWAP2
000015f6: POP
000015f7: POP
000015f8: JUMP
000015f9: JUMPDEST
000015fa: PUSH2 0x0c3e
000015fd: PUSH1 0x01
000015ff: PUSH1 0x65
00001601: SSTORE
00001602: JUMP
00001603: JUMPDEST
00001604: PUSH2 0x160b
00001607: PUSH2 0x2532
0000160a: JUMP
0000160b: JUMPDEST
0000160c: PUSH2 0x1613
0000160f: PUSH2 0x2017
00001612: JUMP
00001613: JUMPDEST
00001614: PUSH1 0x01
00001616: PUSH1 0x01
00001618: PUSH1 0xa0
0000161a: SHL
0000161b: SUB
0000161c: DUP5
0000161d: AND
0000161e: PUSH1 0x00
00001620: SWAP1
00001621: DUP2
00001622: MSTORE
00001623: PUSH1 0xcf
00001625: PUSH1 0x20
00001627: MSTORE
00001628: PUSH1 0x40
0000162a: SWAP1
0000162b: KECCAK256
0000162c: SLOAD
0000162d: PUSH1 0xff
0000162f: AND
00001630: PUSH2 0x1669
00001633: JUMPI
00001634: PUSH1 0x00
00001636: PUSH2 0x163e
00001639: DUP6
0000163a: PUSH2 0x1090
0000163d: JUMP
0000163e: JUMPDEST
0000163f: SWAP1
00001640: POP
00001641: DUP4
00001642: DUP2
00001643: LT
00001644: ISZERO
00001645: PUSH2 0x1667
00001648: JUMPI
00001649: DUP4
0000164a: DUP2
0000164b: DUP7
0000164c: PUSH1 0x40
0000164e: MLOAD
0000164f: PUSH4 0x0585fbc9
00001654: PUSH1 0xe3
00001656: SHL
00001657: DUP2
00001658: MSTORE
00001659: PUSH1 0x04
0000165b: ADD
0000165c: PUSH2 0x08b7
0000165f: SWAP4
00001660: SWAP3
00001661: SWAP2
00001662: SWAP1
00001663: PUSH2 0x32a3
00001666: JUMP
00001667: JUMPDEST
00001668: POP
00001669: JUMPDEST
0000166a: PUSH1 0x40
0000166c: MLOAD
0000166d: PUSH4 0x70a08231
00001672: PUSH1 0xe0
00001674: SHL
00001675: DUP2
00001676: MSTORE
00001677: ADDRESS
00001678: PUSH1 0x04
0000167a: DUP3
0000167b: ADD
0000167c: MSTORE
0000167d: DUP2
0000167e: SWAP1
0000167f: DUP5
00001680: SWAP1
00001681: PUSH1 0x01
00001683: PUSH1 0x01
00001685: PUSH1 0xa0
00001687: SHL
00001688: SUB
00001689: DUP8
0000168a: AND
0000168b: SWAP1
0000168c: PUSH4 0x70a08231
00001691: SWAP1
00001692: PUSH1 0x24
00001694: ADD
00001695: PUSH1 0x20
00001697: PUSH1 0x40
00001699: MLOAD
0000169a: DUP1
0000169b: DUP4
0000169c: SUB
0000169d: DUP2
0000169e: DUP7
0000169f: GAS
000016a0: STATICCALL
000016a1: ISZERO
000016a2: DUP1
000016a3: ISZERO
000016a4: PUSH2 0x16b1
000016a7: JUMPI
000016a8: RETURNDATASIZE
000016a9: PUSH1 0x00
000016ab: DUP1
000016ac: RETURNDATACOPY
000016ad: RETURNDATASIZE
000016ae: PUSH1 0x00
000016b0: REVERT
000016b1: JUMPDEST
000016b2: POP
000016b3: POP
000016b4: POP
000016b5: POP
000016b6: PUSH1 0x40
000016b8: MLOAD
000016b9: RETURNDATASIZE
000016ba: PUSH1 0x1f
000016bc: NOT
000016bd: PUSH1 0x1f
000016bf: DUP3
000016c0: ADD
000016c1: AND
000016c2: DUP3
000016c3: ADD
000016c4: DUP1
000016c5: PUSH1 0x40
000016c7: MSTORE
000016c8: POP
000016c9: DUP2
000016ca: ADD
000016cb: SWAP1
000016cc: PUSH2 0x16d5
000016cf: SWAP2
000016d0: SWAP1
000016d1: PUSH2 0x31be
000016d4: JUMP
000016d5: JUMPDEST
000016d6: PUSH2 0x16df
000016d9: SWAP2
000016da: SWAP1
000016db: PUSH2 0x3290
000016de: JUMP
000016df: JUMPDEST
000016e0: LT
000016e1: ISZERO
000016e2: PUSH2 0x1704
000016e5: JUMPI
000016e6: DUP3
000016e7: DUP2
000016e8: DUP6
000016e9: PUSH1 0x40
000016eb: MLOAD
000016ec: PUSH4 0x19405909
000016f1: PUSH1 0xe0
000016f3: SHL
000016f4: DUP2
000016f5: MSTORE
000016f6: PUSH1 0x04
000016f8: ADD
000016f9: PUSH2 0x08b7
000016fc: SWAP4
000016fd: SWAP3
000016fe: SWAP2
000016ff: SWAP1
00001700: PUSH2 0x32a3
00001703: JUMP
00001704: JUMPDEST
00001705: PUSH1 0x01
00001707: PUSH1 0x01
00001709: PUSH1 0xa0
0000170b: SHL
0000170c: SUB
0000170d: DUP5
0000170e: AND
0000170f: PUSH1 0x00
00001711: SWAP1
00001712: DUP2
00001713: MSTORE
00001714: PUSH1 0xd5
00001716: PUSH1 0x20
00001718: SWAP1
00001719: DUP2
0000171a: MSTORE
0000171b: PUSH1 0x40
0000171d: DUP1
0000171e: DUP4
0000171f: KECCAK256
00001720: DUP6
00001721: DUP5
00001722: MSTORE
00001723: SWAP1
00001724: SWAP2
00001725: MSTORE
00001726: SWAP1
00001727: KECCAK256
00001728: SLOAD
00001729: ISZERO
0000172a: PUSH2 0x1758
0000172d: JUMPI
0000172e: PUSH1 0x40
00001730: MLOAD
00001731: PUSH4 0x18bb936b
00001736: PUSH1 0xe3
00001738: SHL
00001739: DUP2
0000173a: MSTORE
0000173b: PUSH1 0x04
0000173d: DUP2
0000173e: ADD
0000173f: DUP4
00001740: SWAP1
00001741: MSTORE
00001742: PUSH1 0x01
00001744: PUSH1 0x01
00001746: PUSH1 0xa0
00001748: SHL
00001749: SUB
0000174a: DUP6
0000174b: AND
0000174c: PUSH1 0x24
0000174e: DUP3
0000174f: ADD
00001750: MSTORE
00001751: PUSH1 0x44
00001753: ADD
00001754: PUSH2 0x08b7
00001757: JUMP
00001758: JUMPDEST
00001759: PUSH1 0x01
0000175b: PUSH1 0x01
0000175d: PUSH1 0xa0
0000175f: SHL
00001760: SUB
00001761: DUP5
00001762: AND
00001763: PUSH1 0x00
00001765: DUP2
00001766: DUP2
00001767: MSTORE
00001768: PUSH1 0xd5
0000176a: PUSH1 0x20
0000176c: SWAP1
0000176d: DUP2
0000176e: MSTORE
0000176f: PUSH1 0x40
00001771: DUP1
00001772: DUP4
00001773: KECCAK256
00001774: DUP7
00001775: DUP5
00001776: MSTORE
00001777: DUP3
00001778: MSTORE
00001779: DUP1
0000177a: DUP4
0000177b: KECCAK256
0000177c: DUP8
0000177d: SWAP1
0000177e: SSTORE
0000177f: SWAP3
00001780: DUP3
00001781: MSTORE
00001782: PUSH1 0xd2
00001784: SWAP1
00001785: MSTORE
00001786: SWAP1
00001787: DUP2
00001788: KECCAK256
00001789: DUP1
0000178a: SLOAD
0000178b: DUP6
0000178c: SWAP3
0000178d: SWAP1
0000178e: PUSH2 0x1798
00001791: SWAP1
00001792: DUP5
00001793: SWAP1
00001794: PUSH2 0x3228
00001797: JUMP
00001798: JUMPDEST
00001799: SWAP1
0000179a: SWAP2
0000179b: SSTORE
0000179c: POP
0000179d: POP
0000179e: PUSH1 0xd1
000017a0: SLOAD
000017a1: PUSH2 0x17b7
000017a4: SWAP1
000017a5: PUSH1 0x01
000017a7: PUSH1 0x01
000017a9: PUSH1 0xa0
000017ab: SHL
000017ac: SUB
000017ad: DUP7
000017ae: DUP2
000017af: AND
000017b0: SWAP2
000017b1: AND
000017b2: DUP6
000017b3: PUSH2 0x2745
000017b6: JUMP
000017b7: JUMPDEST
000017b8: PUSH1 0x40
000017ba: DUP1
000017bb: MLOAD
000017bc: PUSH1 0x01
000017be: PUSH1 0x01
000017c0: PUSH1 0xa0
000017c2: SHL
000017c3: SUB
000017c4: DUP7
000017c5: AND
000017c6: DUP2
000017c7: MSTORE
000017c8: PUSH1 0x20
000017ca: DUP2
000017cb: ADD
000017cc: DUP6
000017cd: SWAP1
000017ce: MSTORE
000017cf: DUP4
000017d0: SWAP2
000017d1: PUSH32 0xd89781d5625dc08049e795985a82f6f1df8f90f8f8bcb9973736b9c25bc2925e
000017f2: SWAP2
000017f3: ADD
000017f4: PUSH1 0x40
000017f6: MLOAD
000017f7: DUP1
000017f8: SWAP2
000017f9: SUB
000017fa: SWAP1
000017fb: LOG2
000017fc: PUSH2 0x0d78
000017ff: PUSH1 0x01
00001801: PUSH1 0x65
00001803: SSTORE
00001804: JUMP
00001805: JUMPDEST
00001806: PUSH2 0x180d
00001809: PUSH2 0x2434
0000180c: JUMP
0000180d: JUMPDEST
0000180e: DUP1
0000180f: PUSH2 0x1817
00001812: DUP2
00001813: PUSH2 0x2775
00001816: JUMP
00001817: JUMPDEST
00001818: PUSH2 0x181f
0000181b: PUSH2 0x2017
0000181e: JUMP
0000181f: JUMPDEST
00001820: PUSH1 0x98
00001822: SLOAD
00001823: PUSH1 0x40
00001825: MLOAD
00001826: PUSH4 0x6eab9b35
0000182b: PUSH1 0xe1
0000182d: SHL
0000182e: DUP2
0000182f: MSTORE
00001830: CALLER
00001831: PUSH1 0x04
00001833: DUP3
00001834: ADD
00001835: MSTORE
00001836: PUSH1 0x01
00001838: PUSH1 0x01
0000183a: PUSH1 0xa0
0000183c: SHL
0000183d: SUB
0000183e: SWAP1
0000183f: SWAP2
00001840: AND
00001841: SWAP1
00001842: PUSH4 0xdd57366a
00001847: SWAP1
00001848: PUSH1 0x24
0000184a: ADD
0000184b: PUSH1 0x20
0000184d: PUSH1 0x40
0000184f: MLOAD
00001850: DUP1
00001851: DUP4
00001852: SUB
00001853: DUP2
00001854: DUP7
00001855: GAS
00001856: STATICCALL
00001857: ISZERO
00001858: DUP1
00001859: ISZERO
0000185a: PUSH2 0x1867
0000185d: JUMPI
0000185e: RETURNDATASIZE
0000185f: PUSH1 0x00
00001861: DUP1
00001862: RETURNDATACOPY
00001863: RETURNDATASIZE
00001864: PUSH1 0x00
00001866: REVERT
00001867: JUMPDEST
00001868: POP
00001869: POP
0000186a: POP
0000186b: POP
0000186c: PUSH1 0x40
0000186e: MLOAD
0000186f: RETURNDATASIZE
00001870: PUSH1 0x1f
00001872: NOT
00001873: PUSH1 0x1f
00001875: DUP3
00001876: ADD
00001877: AND
00001878: DUP3
00001879: ADD
0000187a: DUP1
0000187b: PUSH1 0x40
0000187d: MSTORE
0000187e: POP
0000187f: DUP2
00001880: ADD
00001881: SWAP1
00001882: PUSH2 0x188b
00001885: SWAP2
00001886: SWAP1
00001887: PUSH2 0x32c2
0000188a: JUMP
0000188b: JUMPDEST
0000188c: DUP1
0000188d: ISZERO
0000188e: PUSH2 0x1899
00001891: JUMPI
00001892: POP
00001893: PUSH1 0x33
00001895: SLOAD
00001896: PUSH1 0xff
00001898: AND
00001899: JUMPDEST
0000189a: ISZERO
0000189b: PUSH2 0x18b9
0000189e: JUMPI
0000189f: PUSH1 0x40
000018a1: MLOAD
000018a2: PUSH4 0x09d228a5
000018a7: PUSH1 0xe1
000018a9: SHL
000018aa: DUP2
000018ab: MSTORE
000018ac: CALLER
000018ad: PUSH1 0x04
000018af: DUP3
000018b0: ADD
000018b1: MSTORE
000018b2: PUSH1 0x24
000018b4: ADD
000018b5: PUSH2 0x08b7
000018b8: JUMP
000018b9: JUMPDEST
000018ba: PUSH2 0x18cf
000018bd: DUP3
000018be: DUP6
000018bf: DUP6
000018c0: PUSH1 0x01
000018c2: PUSH1 0x01
000018c4: PUSH1 0xa0
000018c6: SHL
000018c7: SUB
000018c8: DUP3
000018c9: AND
000018ca: ISZERO
000018cb: PUSH2 0x2361
000018ce: JUMP
000018cf: JUMPDEST
000018d0: DUP4
000018d1: PUSH1 0x01
000018d3: PUSH1 0x01
000018d5: PUSH1 0xa0
000018d7: SHL
000018d8: SUB
000018d9: AND
000018da: DUP3
000018db: PUSH1 0x01
000018dd: PUSH1 0x01
000018df: PUSH1 0xa0
000018e1: SHL
000018e2: SUB
000018e3: AND
000018e4: PUSH32 0xa922bc33914bd31b27595f621e02fefe0cce42e852ef76299a0a618efa9c6e5b
00001905: DUP6
00001906: PUSH1 0x40
00001908: MLOAD
00001909: PUSH2 0x1914
0000190c: SWAP2
0000190d: DUP2
0000190e: MSTORE
0000190f: PUSH1 0x20
00001911: ADD
00001912: SWAP1
00001913: JUMP
00001914: JUMPDEST
00001915: PUSH1 0x40
00001917: MLOAD
00001918: DUP1
00001919: SWAP2
0000191a: SUB
0000191b: SWAP1
0000191c: LOG3
0000191d: PUSH2 0x0d78
00001920: PUSH1 0x01
00001922: PUSH1 0x65
00001924: SSTORE
00001925: JUMP
00001926: JUMPDEST
00001927: PUSH2 0x192e
0000192a: PUSH2 0x1f0f
0000192d: JUMP
0000192e: JUMPDEST
0000192f: DUP1
00001930: PUSH2 0x1938
00001933: DUP2
00001934: PUSH2 0x2687
00001937: JUMP
00001938: JUMPDEST
00001939: PUSH1 0xd6
0000193b: DUP1
0000193c: SLOAD
0000193d: PUSH1 0x01
0000193f: PUSH1 0x01
00001941: PUSH1 0xa0
00001943: SHL
00001944: SUB
00001945: NOT
00001946: AND
00001947: PUSH1 0x01
00001949: PUSH1 0x01
0000194b: PUSH1 0xa0
0000194d: SHL
0000194e: SUB
0000194f: DUP5
00001950: AND
00001951: SWAP1
00001952: DUP2
00001953: OR
00001954: SWAP1
00001955: SWAP2
00001956: SSTORE
00001957: PUSH1 0x40
00001959: MLOAD
0000195a: PUSH32 0x5bbdab227f09862389aad197176a8cc81e4d162e2953ef9293725ca3ed54728a
0000197b: SWAP1
0000197c: PUSH1 0x00
0000197e: SWAP1
0000197f: LOG2
00001980: POP
00001981: POP
00001982: JUMP
00001983: JUMPDEST
00001984: PUSH2 0x198b
00001987: PUSH2 0x2017
0000198a: JUMP
0000198b: JUMPDEST
0000198c: PUSH2 0x1993
0000198f: PUSH2 0x2070
00001992: JUMP
00001993: JUMPDEST
00001994: DUP3
00001995: PUSH2 0x199d
00001998: DUP2
00001999: PUSH2 0x2175
0000199c: JUMP
0000199d: JUMPDEST
0000199e: PUSH2 0x19a5
000019a1: PUSH2 0x2434
000019a4: JUMP
000019a5: JUMPDEST
000019a6: PUSH1 0x01
000019a8: PUSH1 0x01
000019aa: PUSH1 0xa0
000019ac: SHL
000019ad: SUB
000019ae: DUP1
000019af: DUP7
000019b0: AND
000019b1: PUSH1 0x00
000019b3: DUP2
000019b4: DUP2
000019b5: MSTORE
000019b6: PUSH1 0xcd
000019b8: PUSH1 0x20
000019ba: SWAP1
000019bb: DUP2
000019bc: MSTORE
000019bd: PUSH1 0x40
000019bf: DUP1
000019c0: DUP4
000019c1: KECCAK256
000019c2: SWAP5
000019c3: DUP10
000019c4: AND
000019c5: DUP1
000019c6: DUP5
000019c7: MSTORE
000019c8: SWAP5
000019c9: DUP3
000019ca: MSTORE
000019cb: DUP1
000019cc: DUP4
000019cd: KECCAK256
000019ce: SLOAD
000019cf: SWAP4
000019d0: DUP4
000019d1: MSTORE
000019d2: PUSH1 0xcb
000019d4: DUP3
000019d5: MSTORE
000019d6: DUP1
000019d7: DUP4
000019d8: KECCAK256
000019d9: SWAP5
000019da: DUP4
000019db: MSTORE
000019dc: SWAP4
000019dd: SWAP1
000019de: MSTORE
000019df: SWAP2
000019e0: SWAP1
000019e1: SWAP2
000019e2: KECCAK256
000019e3: SLOAD
000019e4: DUP5
000019e5: SWAP2
000019e6: PUSH2 0x19ee
000019e9: SWAP2
000019ea: PUSH2 0x3290
000019ed: JUMP
000019ee: JUMPDEST
000019ef: LT
000019f0: ISZERO
000019f1: PUSH2 0x1a5a
000019f4: JUMPI
000019f5: PUSH1 0x01
000019f7: PUSH1 0x01
000019f9: PUSH1 0xa0
000019fb: SHL
000019fc: SUB
000019fd: DUP1
000019fe: DUP7
000019ff: AND
00001a00: PUSH1 0x00
00001a02: DUP2
00001a03: DUP2
00001a04: MSTORE
00001a05: PUSH1 0xcd
00001a07: PUSH1 0x20
00001a09: SWAP1
00001a0a: DUP2
00001a0b: MSTORE
00001a0c: PUSH1 0x40
00001a0e: DUP1
00001a0f: DUP4
00001a10: KECCAK256
00001a11: SWAP5
00001a12: DUP10
00001a13: AND
00001a14: DUP1
00001a15: DUP5
00001a16: MSTORE
00001a17: SWAP5
00001a18: DUP3
00001a19: MSTORE
00001a1a: DUP1
00001a1b: DUP4
00001a1c: KECCAK256
00001a1d: SLOAD
00001a1e: SWAP4
00001a1f: DUP4
00001a20: MSTORE
00001a21: PUSH1 0xcb
00001a23: DUP3
00001a24: MSTORE
00001a25: DUP1
00001a26: DUP4
00001a27: KECCAK256
00001a28: SWAP5
00001a29: DUP4
00001a2a: MSTORE
00001a2b: SWAP4
00001a2c: SWAP1
00001a2d: MSTORE
00001a2e: SWAP2
00001a2f: SWAP1
00001a30: SWAP2
00001a31: KECCAK256
00001a32: SLOAD
00001a33: DUP5
00001a34: SWAP2
00001a35: PUSH2 0x1a3d
00001a38: SWAP2
00001a39: PUSH2 0x3290
00001a3c: JUMP
00001a3d: JUMPDEST
00001a3e: DUP6
00001a3f: PUSH1 0x40
00001a41: MLOAD
00001a42: PUSH4 0x19405909
00001a47: PUSH1 0xe0
00001a49: SHL
00001a4a: DUP2
00001a4b: MSTORE
00001a4c: PUSH1 0x04
00001a4e: ADD
00001a4f: PUSH2 0x08b7
00001a52: SWAP4
00001a53: SWAP3
00001a54: SWAP2
00001a55: SWAP1
00001a56: PUSH2 0x32a3
00001a59: JUMP
00001a5a: JUMPDEST
00001a5b: PUSH2 0x1b3e
00001a5e: DUP6
00001a5f: DUP6
00001a60: DUP6
00001a61: DUP6
00001a62: PUSH1 0xc9
00001a64: PUSH1 0x00
00001a66: SWAP1
00001a67: SLOAD
00001a68: SWAP1
00001a69: PUSH2 0x0100
00001a6c: EXP
00001a6d: SWAP1
00001a6e: DIV
00001a6f: PUSH1 0x01
00001a71: PUSH1 0x01
00001a73: PUSH1 0xa0
00001a75: SHL
00001a76: SUB
00001a77: AND
00001a78: PUSH1 0x01
00001a7a: PUSH1 0x01
00001a7c: PUSH1 0xa0
00001a7e: SHL
00001a7f: SUB
00001a80: AND
00001a81: PUSH4 0x1edb51ad
00001a86: PUSH1 0x40
00001a88: MLOAD
00001a89: DUP2
00001a8a: PUSH4 0xffffffff
00001a8f: AND
00001a90: PUSH1 0xe0
00001a92: SHL
00001a93: DUP2
00001a94: MSTORE
00001a95: PUSH1 0x04
00001a97: ADD
00001a98: PUSH1 0x20
00001a9a: PUSH1 0x40
00001a9c: MLOAD
00001a9d: DUP1
00001a9e: DUP4
00001a9f: SUB
00001aa0: DUP2
00001aa1: DUP7
00001aa2: GAS
00001aa3: STATICCALL
00001aa4: ISZERO
00001aa5: DUP1
00001aa6: ISZERO
00001aa7: PUSH2 0x1ab4
00001aaa: JUMPI
00001aab: RETURNDATASIZE
00001aac: PUSH1 0x00
00001aae: DUP1
00001aaf: RETURNDATACOPY
00001ab0: RETURNDATASIZE
00001ab1: PUSH1 0x00
00001ab3: REVERT
00001ab4: JUMPDEST
00001ab5: POP
00001ab6: POP
00001ab7: POP
00001ab8: POP
00001ab9: PUSH1 0x40
00001abb: MLOAD
00001abc: RETURNDATASIZE
00001abd: PUSH1 0x1f
00001abf: NOT
00001ac0: PUSH1 0x1f
00001ac2: DUP3
00001ac3: ADD
00001ac4: AND
00001ac5: DUP3
00001ac6: ADD
00001ac7: DUP1
00001ac8: PUSH1 0x40
00001aca: MSTORE
00001acb: POP
00001acc: DUP2
00001acd: ADD
00001ace: SWAP1
00001acf: PUSH2 0x1ad8
00001ad2: SWAP2
00001ad3: SWAP1
00001ad4: PUSH2 0x31be
00001ad7: JUMP
00001ad8: JUMPDEST
00001ad9: PUSH1 0x40
00001adb: MLOAD
00001adc: PUSH1 0x20
00001ade: ADD
00001adf: PUSH2 0x1aec
00001ae2: SWAP6
00001ae3: SWAP5
00001ae4: SWAP4
00001ae5: SWAP3
00001ae6: SWAP2
00001ae7: SWAP1
00001ae8: PUSH2 0x31d7
00001aeb: JUMP
00001aec: JUMPDEST
00001aed: PUSH1 0x40
00001aef: MLOAD
00001af0: PUSH1 0x20
00001af2: DUP2
00001af3: DUP4
00001af4: SUB
00001af5: SUB
00001af6: DUP2
00001af7: MSTORE
00001af8: SWAP1
00001af9: PUSH1 0x40
00001afb: MSTORE
00001afc: DUP1
00001afd: MLOAD
00001afe: SWAP1
00001aff: PUSH1 0x20
00001b01: ADD
00001b02: KECCAK256
00001b03: DUP9
00001b04: DUP9
00001b05: DUP1
00001b06: DUP1
00001b07: PUSH1 0x1f
00001b09: ADD
00001b0a: PUSH1 0x20
00001b0c: DUP1
00001b0d: SWAP2
00001b0e: DIV
00001b0f: MUL
00001b10: PUSH1 0x20
00001b12: ADD
00001b13: PUSH1 0x40
00001b15: MLOAD
00001b16: SWAP1
00001b17: DUP2
00001b18: ADD
00001b19: PUSH1 0x40
00001b1b: MSTORE
00001b1c: DUP1
00001b1d: SWAP4
00001b1e: SWAP3
00001b1f: SWAP2
00001b20: SWAP1
00001b21: DUP2
00001b22: DUP2
00001b23: MSTORE
00001b24: PUSH1 0x20
00001b26: ADD
00001b27: DUP4
00001b28: DUP4
00001b29: DUP1
00001b2a: DUP3
00001b2b: DUP5
00001b2c: CALLDATACOPY
00001b2d: PUSH1 0x00
00001b2f: SWAP3
00001b30: ADD
00001b31: SWAP2
00001b32: SWAP1
00001b33: SWAP2
00001b34: MSTORE
00001b35: POP
00001b36: PUSH2 0x220b
00001b39: SWAP3
00001b3a: POP
00001b3b: POP
00001b3c: POP
00001b3d: JUMP
00001b3e: JUMPDEST
00001b3f: PUSH1 0x01
00001b41: PUSH1 0x01
00001b43: PUSH1 0xa0
00001b45: SHL
00001b46: SUB
00001b47: DUP1
00001b48: DUP7
00001b49: AND
00001b4a: PUSH1 0x00
00001b4c: SWAP1
00001b4d: DUP2
00001b4e: MSTORE
00001b4f: PUSH1 0xcd
00001b51: PUSH1 0x20
00001b53: SWAP1
00001b54: DUP2
00001b55: MSTORE
00001b56: PUSH1 0x40
00001b58: DUP1
00001b59: DUP4
00001b5a: KECCAK256
00001b5b: SWAP4
00001b5c: DUP9
00001b5d: AND
00001b5e: DUP4
00001b5f: MSTORE
00001b60: SWAP3
00001b61: SWAP1
00001b62: MSTORE
00001b63: SWAP1
00001b64: DUP2
00001b65: KECCAK256
00001b66: DUP1
00001b67: SLOAD
00001b68: DUP6
00001b69: SWAP3
00001b6a: SWAP1
00001b6b: PUSH2 0x1b75
00001b6e: SWAP1
00001b6f: DUP5
00001b70: SWAP1
00001b71: PUSH2 0x3228
00001b74: JUMP
00001b75: JUMPDEST
00001b76: SWAP1
00001b77: SWAP2
00001b78: SSTORE
00001b79: POP
00001b7a: POP
00001b7b: PUSH1 0x01
00001b7d: PUSH1 0x01
00001b7f: PUSH1 0xa0
00001b81: SHL
00001b82: SUB
00001b83: DUP5
00001b84: AND
00001b85: PUSH1 0x00
00001b87: SWAP1
00001b88: DUP2
00001b89: MSTORE
00001b8a: PUSH1 0xce
00001b8c: PUSH1 0x20
00001b8e: MSTORE
00001b8f: PUSH1 0x40
00001b91: DUP2
00001b92: KECCAK256
00001b93: DUP1
00001b94: SLOAD
00001b95: DUP6
00001b96: SWAP3
00001b97: SWAP1
00001b98: PUSH2 0x1ba2
00001b9b: SWAP1
00001b9c: DUP5
00001b9d: SWAP1
00001b9e: PUSH2 0x3228
00001ba1: JUMP
00001ba2: JUMPDEST
00001ba3: SWAP1
00001ba4: SWAP2
00001ba5: SSTORE
00001ba6: POP
00001ba7: PUSH2 0x1bb5
00001baa: SWAP1
00001bab: POP
00001bac: DUP6
00001bad: DUP6
00001bae: DUP6
00001baf: PUSH1 0x00
00001bb1: PUSH2 0x2361
00001bb4: JUMP
00001bb5: JUMPDEST
00001bb6: DUP4
00001bb7: PUSH1 0x01
00001bb9: PUSH1 0x01
00001bbb: PUSH1 0xa0
00001bbd: SHL
00001bbe: SUB
00001bbf: AND
00001bc0: DUP6
00001bc1: PUSH1 0x01
00001bc3: PUSH1 0x01
00001bc5: PUSH1 0xa0
00001bc7: SHL
00001bc8: SUB
00001bc9: AND
00001bca: PUSH32 0xa9a049377ec351e933b3447707a7afd5778f50b3737b539e7e62bd271db2eb5f
00001beb: DUP6
00001bec: PUSH1 0x40
00001bee: MLOAD
00001bef: PUSH2 0x1bfa
00001bf2: SWAP2
00001bf3: DUP2
00001bf4: MSTORE
00001bf5: PUSH1 0x20
00001bf7: ADD
00001bf8: SWAP1
00001bf9: JUMP
00001bfa: JUMPDEST
00001bfb: PUSH1 0x40
00001bfd: MLOAD
00001bfe: DUP1
00001bff: SWAP2
00001c00: SUB
00001c01: SWAP1
00001c02: LOG3
00001c03: POP
00001c04: PUSH2 0x1c0d
00001c07: PUSH1 0x01
00001c09: PUSH1 0x65
00001c0b: SSTORE
00001c0c: JUMP
00001c0d: JUMPDEST
00001c0e: POP
00001c0f: POP
00001c10: POP
00001c11: POP
00001c12: POP
00001c13: POP
00001c14: JUMP
00001c15: JUMPDEST
00001c16: PUSH1 0x00
00001c18: SLOAD
00001c19: PUSH2 0x0100
00001c1c: SWAP1
00001c1d: DIV
00001c1e: PUSH1 0xff
00001c20: AND
00001c21: ISZERO
00001c22: DUP1
00001c23: DUP1
00001c24: ISZERO
00001c25: PUSH2 0x1c35
00001c28: JUMPI
00001c29: POP
00001c2a: PUSH1 0x00
00001c2c: SLOAD
00001c2d: PUSH1 0x01
00001c2f: PUSH1 0xff
00001c31: SWAP1
00001c32: SWAP2
00001c33: AND
00001c34: LT
00001c35: JUMPDEST
00001c36: DUP1
00001c37: PUSH2 0x1c4f
00001c3a: JUMPI
00001c3b: POP
00001c3c: ADDRESS
00001c3d: EXTCODESIZE
00001c3e: ISZERO
00001c3f: DUP1
00001c40: ISZERO
00001c41: PUSH2 0x1c4f
00001c44: JUMPI
00001c45: POP
00001c46: PUSH1 0x00
00001c48: SLOAD
00001c49: PUSH1 0xff
00001c4b: AND
00001c4c: PUSH1 0x01
00001c4e: EQ
00001c4f: JUMPDEST
00001c50: PUSH2 0x1cb2
00001c53: JUMPI
00001c54: PUSH1 0x40
00001c56: MLOAD
00001c57: PUSH3 0x461bcd
00001c5b: PUSH1 0xe5
00001c5d: SHL
00001c5e: DUP2
00001c5f: MSTORE
00001c60: PUSH1 0x20
00001c62: PUSH1 0x04
00001c64: DUP3
00001c65: ADD
00001c66: MSTORE
00001c67: PUSH1 0x2e
00001c69: PUSH1 0x24
00001c6b: DUP3
00001c6c: ADD
00001c6d: MSTORE
00001c6e: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561
00001c8f: PUSH1 0x44
00001c91: DUP3
00001c92: ADD
00001c93: MSTORE
00001c94: PUSH14 0x191e481a5b9a5d1a585b1a5e9959
00001ca3: PUSH1 0x92
00001ca5: SHL
00001ca6: PUSH1 0x64
00001ca8: DUP3
00001ca9: ADD
00001caa: MSTORE
00001cab: PUSH1 0x84
00001cad: ADD
00001cae: PUSH2 0x08b7
00001cb1: JUMP
00001cb2: JUMPDEST
00001cb3: PUSH1 0x00
00001cb5: DUP1
00001cb6: SLOAD
00001cb7: PUSH1 0xff
00001cb9: NOT
00001cba: AND
00001cbb: PUSH1 0x01
00001cbd: OR
00001cbe: SWAP1
00001cbf: SSTORE
00001cc0: DUP1
00001cc1: ISZERO
00001cc2: PUSH2 0x1cd5
00001cc5: JUMPI
00001cc6: PUSH1 0x00
00001cc8: DUP1
00001cc9: SLOAD
00001cca: PUSH2 0xff00
00001ccd: NOT
00001cce: AND
00001ccf: PUSH2 0x0100
00001cd2: OR
00001cd3: SWAP1
00001cd4: SSTORE
00001cd5: JUMPDEST
00001cd6: DUP5
00001cd7: PUSH2 0x1cdf
00001cda: DUP2
00001cdb: PUSH2 0x2687
00001cde: JUMP
00001cdf: JUMPDEST
00001ce0: DUP5
00001ce1: PUSH2 0x1ce9
00001ce4: DUP2
00001ce5: PUSH2 0x2687
00001ce8: JUMP
00001ce9: JUMPDEST
00001cea: PUSH1 0xc9
00001cec: DUP1
00001ced: SLOAD
00001cee: PUSH1 0x01
00001cf0: PUSH1 0x01
00001cf2: PUSH1 0xa0
00001cf4: SHL
00001cf5: SUB
00001cf6: DUP1
00001cf7: DUP11
00001cf8: AND
00001cf9: PUSH1 0x01
00001cfb: PUSH1 0x01
00001cfd: PUSH1 0xa0
00001cff: SHL
00001d00: SUB
00001d01: NOT
00001d02: SWAP3
00001d03: DUP4
00001d04: AND
00001d05: OR
00001d06: SWAP1
00001d07: SWAP3
00001d08: SSTORE
00001d09: PUSH1 0xca
00001d0b: DUP1
00001d0c: SLOAD
00001d0d: SWAP3
00001d0e: DUP10
00001d0f: AND
00001d10: SWAP3
00001d11: SWAP1
00001d12: SWAP2
00001d13: AND
00001d14: SWAP2
00001d15: SWAP1
00001d16: SWAP2
00001d17: OR
00001d18: SWAP1
00001d19: SSTORE
00001d1a: PUSH2 0x1d23
00001d1d: DUP10
00001d1e: DUP10
00001d1f: PUSH2 0x2841
00001d22: JUMP
00001d23: JUMPDEST
00001d24: PUSH2 0x1d62
00001d27: DUP6
00001d28: DUP6
00001d29: DUP1
00001d2a: DUP1
00001d2b: PUSH1 0x20
00001d2d: MUL
00001d2e: PUSH1 0x20
00001d30: ADD
00001d31: PUSH1 0x40
00001d33: MLOAD
00001d34: SWAP1
00001d35: DUP2
00001d36: ADD
00001d37: PUSH1 0x40
00001d39: MSTORE
00001d3a: DUP1
00001d3b: SWAP4
00001d3c: SWAP3
00001d3d: SWAP2
00001d3e: SWAP1
00001d3f: DUP2
00001d40: DUP2
00001d41: MSTORE
00001d42: PUSH1 0x20
00001d44: ADD
00001d45: DUP4
00001d46: DUP4
00001d47: PUSH1 0x20
00001d49: MUL
00001d4a: DUP1
00001d4b: DUP3
00001d4c: DUP5
00001d4d: CALLDATACOPY
00001d4e: PUSH1 0x00
00001d50: SWAP3
00001d51: ADD
00001d52: SWAP2
00001d53: SWAP1
00001d54: SWAP2
00001d55: MSTORE
00001d56: POP
00001d57: PUSH1 0x01
00001d59: SWAP3
00001d5a: POP
00001d5b: PUSH2 0x26e8
00001d5e: SWAP2
00001d5f: POP
00001d60: POP
00001d61: JUMP
00001d62: JUMPDEST
00001d63: POP
00001d64: POP
00001d65: DUP1
00001d66: ISZERO
00001d67: PUSH2 0x15a2
00001d6a: JUMPI
00001d6b: PUSH1 0x00
00001d6d: DUP1
00001d6e: SLOAD
00001d6f: PUSH2 0xff00
00001d72: NOT
00001d73: AND
00001d74: SWAP1
00001d75: SSTORE
00001d76: PUSH1 0x40
00001d78: MLOAD
00001d79: PUSH1 0x01
00001d7b: DUP2
00001d7c: MSTORE
00001d7d: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498
00001d9e: SWAP1
00001d9f: PUSH1 0x20
00001da1: ADD
00001da2: PUSH1 0x40
00001da4: MLOAD
00001da5: DUP1
00001da6: SWAP2
00001da7: SUB
00001da8: SWAP1
00001da9: LOG1
00001daa: POP
00001dab: POP
00001dac: POP
00001dad: POP
00001dae: POP
00001daf: POP
00001db0: POP
00001db1: JUMP
00001db2: JUMPDEST
00001db3: PUSH2 0x1dba
00001db6: PUSH2 0x1f0f
00001db9: JUMP
00001dba: JUMPDEST
00001dbb: PUSH2 0x1dc2
00001dbe: PUSH2 0x2017
00001dc1: JUMP
00001dc2: JUMPDEST
00001dc3: PUSH1 0x01
00001dc5: PUSH1 0x01
00001dc7: PUSH1 0xa0
00001dc9: SHL
00001dca: SUB
00001dcb: DUP1
00001dcc: DUP5
00001dcd: AND
00001dce: PUSH1 0x00
00001dd0: SWAP1
00001dd1: DUP2
00001dd2: MSTORE
00001dd3: PUSH1 0xcb
00001dd5: PUSH1 0x20
00001dd7: SWAP1
00001dd8: DUP2
00001dd9: MSTORE
00001dda: PUSH1 0x40
00001ddc: DUP1
00001ddd: DUP4
00001dde: KECCAK256
00001ddf: SWAP4
00001de0: DUP6
00001de1: AND
00001de2: DUP4
00001de3: MSTORE
00001de4: SWAP3
00001de5: SWAP1
00001de6: MSTORE
00001de7: SWAP1
00001de8: DUP2
00001de9: KECCAK256
00001dea: SLOAD
00001deb: SWAP1
00001dec: DUP2
00001ded: SWAP1
00001dee: SUB
00001def: PUSH2 0x1e12
00001df2: JUMPI
00001df3: DUP1
00001df4: PUSH1 0x00
00001df6: DUP4
00001df7: PUSH1 0x40
00001df9: MLOAD
00001dfa: PUSH4 0x19405909
00001dff: PUSH1 0xe0
00001e01: SHL
00001e02: DUP2
00001e03: MSTORE
00001e04: PUSH1 0x04
00001e06: ADD
00001e07: PUSH2 0x08b7
00001e0a: SWAP4
00001e0b: SWAP3
00001e0c: SWAP2
00001e0d: SWAP1
00001e0e: PUSH2 0x32a3
00001e11: JUMP
00001e12: JUMPDEST
00001e13: PUSH1 0x01
00001e15: PUSH1 0x01
00001e17: PUSH1 0xa0
00001e19: SHL
00001e1a: SUB
00001e1b: DUP1
00001e1c: DUP6
00001e1d: AND
00001e1e: PUSH1 0x00
00001e20: SWAP1
00001e21: DUP2
00001e22: MSTORE
00001e23: PUSH1 0xcb
00001e25: PUSH1 0x20
00001e27: DUP2
00001e28: DUP2
00001e29: MSTORE
00001e2a: PUSH1 0x40
00001e2c: DUP1
00001e2d: DUP5
00001e2e: KECCAK256
00001e2f: DUP8
00001e30: DUP7
00001e31: AND
00001e32: DUP1
00001e33: DUP7
00001e34: MSTORE
00001e35: SWAP1
00001e36: DUP4
00001e37: MSTORE
00001e38: DUP2
00001e39: DUP6
00001e3a: KECCAK256
00001e3b: DUP6
00001e3c: SWAP1
00001e3d: SSTORE
00001e3e: SWAP5
00001e3f: DUP9
00001e40: AND
00001e41: DUP5
00001e42: MSTORE
00001e43: SWAP2
00001e44: DUP2
00001e45: MSTORE
00001e46: DUP2
00001e47: DUP4
00001e48: KECCAK256
00001e49: SWAP4
00001e4a: DUP4
00001e4b: MSTORE
00001e4c: SWAP3
00001e4d: SWAP1
00001e4e: SWAP3
00001e4f: MSTORE
00001e50: SWAP1
00001e51: DUP2
00001e52: KECCAK256
00001e53: DUP1
00001e54: SLOAD
00001e55: DUP4
00001e56: SWAP3
00001e57: SWAP1
00001e58: PUSH2 0x1e62
00001e5b: SWAP1
00001e5c: DUP5
00001e5d: SWAP1
00001e5e: PUSH2 0x3228
00001e61: JUMP
00001e62: JUMPDEST
00001e63: SWAP3
00001e64: POP
00001e65: POP
00001e66: DUP2
00001e67: SWAP1
00001e68: SSTORE
00001e69: POP
00001e6a: DUP4
00001e6b: PUSH1 0x01
00001e6d: PUSH1 0x01
00001e6f: PUSH1 0xa0
00001e71: SHL
00001e72: SUB
00001e73: AND
00001e74: DUP3
00001e75: PUSH1 0x01
00001e77: PUSH1 0x01
00001e79: PUSH1 0xa0
00001e7b: SHL
00001e7c: SUB
00001e7d: AND
00001e7e: PUSH32 0xe085944a5ddfe0e68127edbf665e03ec5be397243129f6555232ed553e951cb1
00001e9f: PUSH1 0x00
00001ea1: PUSH1 0x40
00001ea3: MLOAD
00001ea4: PUSH2 0x1eaf
00001ea7: SWAP2
00001ea8: DUP2
00001ea9: MSTORE
00001eaa: PUSH1 0x20
00001eac: ADD
00001ead: SWAP1
00001eae: JUMP
00001eaf: JUMPDEST
00001eb0: PUSH1 0x40
00001eb2: MLOAD
00001eb3: DUP1
00001eb4: SWAP2
00001eb5: SUB
00001eb6: SWAP1
00001eb7: LOG3
00001eb8: DUP3
00001eb9: PUSH1 0x01
00001ebb: PUSH1 0x01
00001ebd: PUSH1 0xa0
00001ebf: SHL
00001ec0: SUB
00001ec1: AND
00001ec2: DUP3
00001ec3: PUSH1 0x01
00001ec5: PUSH1 0x01
00001ec7: PUSH1 0xa0
00001ec9: SHL
00001eca: SUB
00001ecb: AND
00001ecc: PUSH32 0xe085944a5ddfe0e68127edbf665e03ec5be397243129f6555232ed553e951cb1
00001eed: DUP4
00001eee: PUSH1 0x40
00001ef0: MLOAD
00001ef1: PUSH2 0x1efc
00001ef4: SWAP2
00001ef5: DUP2
00001ef6: MSTORE
00001ef7: PUSH1 0x20
00001ef9: ADD
00001efa: SWAP1
00001efb: JUMP
00001efc: JUMPDEST
00001efd: PUSH1 0x40
00001eff: MLOAD
00001f00: DUP1
00001f01: SWAP2
00001f02: SUB
00001f03: SWAP1
00001f04: LOG3
00001f05: POP
00001f06: PUSH2 0x0c3e
00001f09: PUSH1 0x01
00001f0b: PUSH1 0x65
00001f0d: SSTORE
00001f0e: JUMP
00001f0f: JUMPDEST
00001f10: PUSH1 0x97
00001f12: SLOAD
00001f13: PUSH1 0x01
00001f15: PUSH1 0x01
00001f17: PUSH1 0xa0
00001f19: SHL
00001f1a: SUB
00001f1b: AND
00001f1c: CALLER
00001f1d: EQ
00001f1e: PUSH2 0x1f4f
00001f21: JUMPI
00001f22: PUSH1 0x97
00001f24: SLOAD
00001f25: PUSH1 0x40
00001f27: MLOAD
00001f28: PUSH4 0x6ccc68c3
00001f2d: PUSH1 0xe1
00001f2f: SHL
00001f30: DUP2
00001f31: MSTORE
00001f32: CALLER
00001f33: PUSH1 0x04
00001f35: DUP3
00001f36: ADD
00001f37: MSTORE
00001f38: PUSH1 0x01
00001f3a: PUSH1 0x01
00001f3c: PUSH1 0xa0
00001f3e: SHL
00001f3f: SUB
00001f40: SWAP1
00001f41: SWAP2
00001f42: AND
00001f43: PUSH1 0x24
00001f45: DUP3
00001f46: ADD
00001f47: MSTORE
00001f48: PUSH1 0x44
00001f4a: ADD
00001f4b: PUSH2 0x08b7
00001f4e: JUMP
00001f4f: JUMPDEST
00001f50: JUMP
00001f51: JUMPDEST
00001f52: PUSH1 0x01
00001f54: PUSH1 0x01
00001f56: PUSH1 0xa0
00001f58: SHL
00001f59: SUB
00001f5a: DUP2
00001f5b: AND
00001f5c: PUSH2 0x1fcd
00001f5f: JUMPI
00001f60: PUSH1 0x40
00001f62: DUP1
00001f63: MLOAD
00001f64: PUSH4 0x09617777
00001f69: PUSH1 0xe4
00001f6b: SHL
00001f6c: DUP2
00001f6d: MSTORE
00001f6e: PUSH1 0x04
00001f70: DUP2
00001f71: ADD
00001f72: SWAP2
00001f73: SWAP1
00001f74: SWAP2
00001f75: MSTORE
00001f76: PUSH1 0x2b
00001f78: PUSH1 0x44
00001f7a: DUP3
00001f7b: ADD
00001f7c: MSTORE
00001f7d: PUSH32 0x4d61696e7461696e65727320726567697374727920616464726573732063616e
00001f9e: PUSH1 0x64
00001fa0: DUP3
00001fa1: ADD
00001fa2: MSTORE
00001fa3: PUSH11 0x6e6f74206265207a65726f
00001faf: PUSH1 0xa8
00001fb1: SHL
00001fb2: PUSH1 0x84
00001fb4: DUP3
00001fb5: ADD
00001fb6: MSTORE
00001fb7: PUSH1 0x01
00001fb9: PUSH1 0x01
00001fbb: PUSH1 0xa0
00001fbd: SHL
00001fbe: SUB
00001fbf: DUP3
00001fc0: AND
00001fc1: PUSH1 0x24
00001fc3: DUP3
00001fc4: ADD
00001fc5: MSTORE
00001fc6: PUSH1 0xa4
00001fc8: ADD
00001fc9: PUSH2 0x08b7
00001fcc: JUMP
00001fcd: JUMPDEST
00001fce: PUSH1 0x98
00001fd0: DUP1
00001fd1: SLOAD
00001fd2: PUSH1 0x01
00001fd4: PUSH1 0x01
00001fd6: PUSH1 0xa0
00001fd8: SHL
00001fd9: SUB
00001fda: NOT
00001fdb: AND
00001fdc: PUSH1 0x01
00001fde: PUSH1 0x01
00001fe0: PUSH1 0xa0
00001fe2: SHL
00001fe3: SUB
00001fe4: DUP4
00001fe5: AND
00001fe6: SWAP1
00001fe7: DUP2
00001fe8: OR
00001fe9: SWAP1
00001fea: SWAP2
00001feb: SSTORE
00001fec: PUSH1 0x40
00001fee: MLOAD
00001fef: PUSH32 0x993a06629d3c3b6a878490571de2b491eb014f2623099576c8e8494083423507
00002010: SWAP1
00002011: PUSH1 0x00
00002013: SWAP1
00002014: LOG2
00002015: POP
00002016: JUMP
00002017: JUMPDEST
00002018: PUSH1 0x02
0000201a: PUSH1 0x65
0000201c: SLOAD
0000201d: SUB
0000201e: PUSH2 0x2069
00002021: JUMPI
00002022: PUSH1 0x40
00002024: MLOAD
00002025: PUSH3 0x461bcd
00002029: PUSH1 0xe5
0000202b: SHL
0000202c: DUP2
0000202d: MSTORE
0000202e: PUSH1 0x20
00002030: PUSH1 0x04
00002032: DUP3
00002033: ADD
00002034: MSTORE
00002035: PUSH1 0x1f
00002037: PUSH1 0x24
00002039: DUP3
0000203a: ADD
0000203b: MSTORE
0000203c: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00
0000205d: PUSH1 0x44
0000205f: DUP3
00002060: ADD
00002061: MSTORE
00002062: PUSH1 0x64
00002064: ADD
00002065: PUSH2 0x08b7
00002068: JUMP
00002069: JUMPDEST
0000206a: PUSH1 0x02
0000206c: PUSH1 0x65
0000206e: SSTORE
0000206f: JUMP
00002070: JUMPDEST
00002071: PUSH1 0x33
00002073: SLOAD
00002074: PUSH1 0xff
00002076: AND
00002077: ISZERO
00002078: PUSH2 0x1f4f
0000207b: JUMPI
0000207c: PUSH1 0x40
0000207e: MLOAD
0000207f: PUSH3 0x461bcd
00002083: PUSH1 0xe5
00002085: SHL
00002086: DUP2
00002087: MSTORE
00002088: PUSH1 0x20
0000208a: PUSH1 0x04
0000208c: DUP3
0000208d: ADD
0000208e: MSTORE
0000208f: PUSH1 0x10
00002091: PUSH1 0x24
00002093: DUP3
00002094: ADD
00002095: MSTORE
00002096: PUSH16 0x14185d5cd8589b194e881c185d5cd959
000020a7: PUSH1 0x82
000020a9: SHL
000020aa: PUSH1 0x44
000020ac: DUP3
000020ad: ADD
000020ae: MSTORE
000020af: PUSH1 0x64
000020b1: ADD
000020b2: PUSH2 0x08b7
000020b5: JUMP
000020b6: JUMPDEST
000020b7: PUSH1 0x01
000020b9: PUSH1 0x01
000020bb: PUSH1 0xa0
000020bd: SHL
000020be: SUB
000020bf: DUP2
000020c0: AND
000020c1: PUSH1 0x00
000020c3: SWAP1
000020c4: DUP2
000020c5: MSTORE
000020c6: PUSH1 0xcf
000020c8: PUSH1 0x20
000020ca: MSTORE
000020cb: PUSH1 0x40
000020cd: SWAP1
000020ce: KECCAK256
000020cf: SLOAD
000020d0: PUSH1 0xff
000020d2: AND
000020d3: PUSH2 0x08c9
000020d6: JUMPI
000020d7: PUSH1 0x40
000020d9: DUP1
000020da: MLOAD
000020db: PUSH4 0xea514533
000020e0: PUSH1 0xe0
000020e2: SHL
000020e3: DUP2
000020e4: MSTORE
000020e5: PUSH1 0x01
000020e7: PUSH1 0x01
000020e9: PUSH1 0xa0
000020eb: SHL
000020ec: SUB
000020ed: DUP4
000020ee: AND
000020ef: PUSH1 0x04
000020f1: DUP3
000020f2: ADD
000020f3: MSTORE
000020f4: PUSH1 0x24
000020f6: DUP2
000020f7: ADD
000020f8: SWAP2
000020f9: SWAP1
000020fa: SWAP2
000020fb: MSTORE
000020fc: PUSH1 0x32
000020fe: PUSH1 0x44
00002100: DUP3
00002101: ADD
00002102: MSTORE
00002103: PUSH32 0x546f6b656e206973206e6f7420636f6e6669677572656420666f72206d61696e
00002124: PUSH1 0x64
00002126: DUP3
00002127: ADD
00002128: MSTORE
00002129: PUSH18 0x2d746f2d6d61696e207472616e7366657273
0000213c: PUSH1 0x70
0000213e: SHL
0000213f: PUSH1 0x84
00002141: DUP3
00002142: ADD
00002143: MSTORE
00002144: PUSH1 0xa4
00002146: ADD
00002147: PUSH2 0x08b7
0000214a: JUMP
0000214b: JUMPDEST
0000214c: DUP1
0000214d: TIMESTAMP
0000214e: GT
0000214f: ISZERO
00002150: PUSH2 0x08c9
00002153: JUMPI
00002154: PUSH1 0x40
00002156: MLOAD
00002157: PUSH4 0x442400cf
0000215c: PUSH1 0xe1
0000215e: SHL
0000215f: DUP2
00002160: MSTORE
00002161: PUSH1 0x04
00002163: DUP2
00002164: ADD
00002165: DUP3
00002166: SWAP1
00002167: MSTORE
00002168: TIMESTAMP
00002169: PUSH1 0x24
0000216b: DUP3
0000216c: ADD
0000216d: MSTORE
0000216e: PUSH1 0x44
00002170: ADD
00002171: PUSH2 0x08b7
00002174: JUMP
00002175: JUMPDEST
00002176: PUSH1 0xc9
00002178: SLOAD
00002179: PUSH1 0x40
0000217b: MLOAD
0000217c: PUSH4 0x4448c045
00002181: PUSH1 0xe0
00002183: SHL
00002184: DUP2
00002185: MSTORE
00002186: PUSH1 0x01
00002188: PUSH1 0x01
0000218a: PUSH1 0xa0
0000218c: SHL
0000218d: SUB
0000218e: DUP4
0000218f: DUP2
00002190: AND
00002191: PUSH1 0x04
00002193: DUP4
00002194: ADD
00002195: MSTORE
00002196: SWAP1
00002197: SWAP2
00002198: AND
00002199: SWAP1
0000219a: PUSH4 0x4448c045
0000219f: SWAP1
000021a0: PUSH1 0x24
000021a2: ADD
000021a3: PUSH1 0x20
000021a5: PUSH1 0x40
000021a7: MLOAD
000021a8: DUP1
000021a9: DUP4
000021aa: SUB
000021ab: DUP2
000021ac: DUP7
000021ad: GAS
000021ae: STATICCALL
000021af: ISZERO
000021b0: DUP1
000021b1: ISZERO
000021b2: PUSH2 0x21bf
000021b5: JUMPI
000021b6: RETURNDATASIZE
000021b7: PUSH1 0x00
000021b9: DUP1
000021ba: RETURNDATACOPY
000021bb: RETURNDATASIZE
000021bc: PUSH1 0x00
000021be: REVERT
000021bf: JUMPDEST
000021c0: POP
000021c1: POP
000021c2: POP
000021c3: POP
000021c4: PUSH1 0x40
000021c6: MLOAD
000021c7: RETURNDATASIZE
000021c8: PUSH1 0x1f
000021ca: NOT
000021cb: PUSH1 0x1f
000021cd: DUP3
000021ce: ADD
000021cf: AND
000021d0: DUP3
000021d1: ADD
000021d2: DUP1
000021d3: PUSH1 0x40
000021d5: MSTORE
000021d6: POP
000021d7: DUP2
000021d8: ADD
000021d9: SWAP1
000021da: PUSH2 0x21e3
000021dd: SWAP2
000021de: SWAP1
000021df: PUSH2 0x32c2
000021e2: JUMP
000021e3: JUMPDEST
000021e4: ISZERO
000021e5: PUSH2 0x08c9
000021e8: JUMPI
000021e9: PUSH1 0x40
000021eb: MLOAD
000021ec: PUSH3 0x817835
000021f0: PUSH1 0xe5
000021f2: SHL
000021f3: DUP2
000021f4: MSTORE
000021f5: PUSH1 0x01
000021f7: PUSH1 0x01
000021f9: PUSH1 0xa0
000021fb: SHL
000021fc: SUB
000021fd: DUP3
000021fe: AND
000021ff: PUSH1 0x04
00002201: DUP3
00002202: ADD
00002203: MSTORE
00002204: PUSH1 0x24
00002206: ADD
00002207: PUSH2 0x08b7
0000220a: JUMP
0000220b: JUMPDEST
0000220c: PUSH1 0x00
0000220e: DUP3
0000220f: DUP2
00002210: MSTORE
00002211: PUSH1 0xd0
00002213: PUSH1 0x20
00002215: MSTORE
00002216: PUSH1 0x40
00002218: SWAP1
00002219: KECCAK256
0000221a: SLOAD
0000221b: PUSH1 0xff
0000221d: AND
0000221e: ISZERO
0000221f: PUSH2 0x223f
00002222: JUMPI
00002223: DUP2
00002224: DUP2
00002225: PUSH1 0x40
00002227: MLOAD
00002228: PUSH4 0x054f7179
0000222d: PUSH1 0xe2
0000222f: SHL
00002230: DUP2
00002231: MSTORE
00002232: PUSH1 0x04
00002234: ADD
00002235: PUSH2 0x08b7
00002238: SWAP3
00002239: SWAP2
0000223a: SWAP1
0000223b: PUSH2 0x332f
0000223e: JUMP
0000223f: JUMPDEST
00002240: PUSH1 0xca
00002242: SLOAD
00002243: PUSH1 0x40
00002245: MLOAD
00002246: PUSH4 0x1b594def
0000224b: PUSH1 0xe3
0000224d: SHL
0000224e: DUP2
0000224f: MSTORE
00002250: PUSH1 0x01
00002252: PUSH1 0x01
00002254: PUSH1 0xa0
00002256: SHL
00002257: SUB
00002258: SWAP1
00002259: SWAP2
0000225a: AND
0000225b: SWAP1
0000225c: PUSH4 0xdaca6f78
00002261: SWAP1
00002262: PUSH2 0x2271
00002265: SWAP1
00002266: DUP6
00002267: SWAP1
00002268: DUP6
00002269: SWAP1
0000226a: PUSH1 0x04
0000226c: ADD
0000226d: PUSH2 0x332f
00002270: JUMP
00002271: JUMPDEST
00002272: PUSH1 0x20
00002274: PUSH1 0x40
00002276: MLOAD
00002277: DUP1
00002278: DUP4
00002279: SUB
0000227a: DUP2
0000227b: DUP7
0000227c: GAS
0000227d: STATICCALL
0000227e: ISZERO
0000227f: DUP1
00002280: ISZERO
00002281: PUSH2 0x228e
00002284: JUMPI
00002285: RETURNDATASIZE
00002286: PUSH1 0x00
00002288: DUP1
00002289: RETURNDATACOPY
0000228a: RETURNDATASIZE
0000228b: PUSH1 0x00
0000228d: REVERT
0000228e: JUMPDEST
0000228f: POP
00002290: POP
00002291: POP
00002292: POP
00002293: PUSH1 0x40
00002295: MLOAD
00002296: RETURNDATASIZE
00002297: PUSH1 0x1f
00002299: NOT
0000229a: PUSH1 0x1f
0000229c: DUP3
0000229d: ADD
0000229e: AND
0000229f: DUP3
000022a0: ADD
000022a1: DUP1
000022a2: PUSH1 0x40
000022a4: MSTORE
000022a5: POP
000022a6: DUP2
000022a7: ADD
000022a8: SWAP1
000022a9: PUSH2 0x22b2
000022ac: SWAP2
000022ad: SWAP1
000022ae: PUSH2 0x32c2
000022b1: JUMP
000022b2: JUMPDEST
000022b3: PUSH2 0x22d3
000022b6: JUMPI
000022b7: DUP1
000022b8: DUP3
000022b9: PUSH1 0x40
000022bb: MLOAD
000022bc: PUSH4 0x7ab683f7
000022c1: PUSH1 0xe0
000022c3: SHL
000022c4: DUP2
000022c5: MSTORE
000022c6: PUSH1 0x04
000022c8: ADD
000022c9: PUSH2 0x08b7
000022cc: SWAP3
000022cd: SWAP2
000022ce: SWAP1
000022cf: PUSH2 0x3348
000022d2: JUMP
000022d3: JUMPDEST
000022d4: POP
000022d5: PUSH1 0x00
000022d7: SWAP1
000022d8: DUP2
000022d9: MSTORE
000022da: PUSH1 0xd0
000022dc: PUSH1 0x20
000022de: MSTORE
000022df: PUSH1 0x40
000022e1: SWAP1
000022e2: KECCAK256
000022e3: DUP1
000022e4: SLOAD
000022e5: PUSH1 0xff
000022e7: NOT
000022e8: AND
000022e9: PUSH1 0x01
000022eb: OR
000022ec: SWAP1
000022ed: SSTORE
000022ee: JUMP
000022ef: JUMPDEST
000022f0: PUSH1 0x40
000022f2: MLOAD
000022f3: PUSH1 0x01
000022f5: PUSH1 0x01
000022f7: PUSH1 0xa0
000022f9: SHL
000022fa: SUB
000022fb: DUP1
000022fc: DUP6
000022fd: AND
000022fe: PUSH1 0x24
00002300: DUP4
00002301: ADD
00002302: MSTORE
00002303: DUP4
00002304: AND
00002305: PUSH1 0x44
00002307: DUP3
00002308: ADD
00002309: MSTORE
0000230a: PUSH1 0x64
0000230c: DUP2
0000230d: ADD
0000230e: DUP3
0000230f: SWAP1
00002310: MSTORE
00002311: PUSH2 0x0d78
00002314: SWAP1
00002315: DUP6
00002316: SWAP1
00002317: PUSH4 0x23b872dd
0000231c: PUSH1 0xe0
0000231e: SHL
0000231f: SWAP1
00002320: PUSH1 0x84
00002322: ADD
00002323: JUMPDEST
00002324: PUSH1 0x40
00002326: DUP1
00002327: MLOAD
00002328: PUSH1 0x1f
0000232a: NOT
0000232b: DUP2
0000232c: DUP5
0000232d: SUB
0000232e: ADD
0000232f: DUP2
00002330: MSTORE
00002331: SWAP2
00002332: SWAP1
00002333: MSTORE
00002334: PUSH1 0x20
00002336: DUP2
00002337: ADD
00002338: DUP1
00002339: MLOAD
0000233a: PUSH1 0x01
0000233c: PUSH1 0x01
0000233e: PUSH1 0xe0
00002340: SHL
00002341: SUB
00002342: AND
00002343: PUSH1 0x01
00002345: PUSH1 0x01
00002347: PUSH1 0xe0
00002349: SHL
0000234a: SUB
0000234b: NOT
0000234c: SWAP1
0000234d: SWAP4
0000234e: AND
0000234f: SWAP3
00002350: SWAP1
00002351: SWAP3
00002352: OR
00002353: SWAP1
00002354: SWAP2
00002355: MSTORE
00002356: PUSH2 0x2863
00002359: JUMP
0000235a: JUMPDEST
0000235b: PUSH1 0x01
0000235d: PUSH1 0x65
0000235f: SSTORE
00002360: JUMP
00002361: JUMPDEST
00002362: DUP1
00002363: ISZERO
00002364: PUSH2 0x2420
00002367: JUMPI
00002368: PUSH1 0x00
0000236a: DUP5
0000236b: PUSH1 0x01
0000236d: PUSH1 0x01
0000236f: PUSH1 0xa0
00002371: SHL
00002372: SUB
00002373: AND
00002374: DUP4
00002375: PUSH1 0x40
00002377: MLOAD
00002378: PUSH1 0x00
0000237a: PUSH1 0x40
0000237c: MLOAD
0000237d: DUP1
0000237e: DUP4
0000237f: SUB
00002380: DUP2
00002381: DUP6
00002382: DUP8
00002383: GAS
00002384: CALL
00002385: SWAP3
00002386: POP
00002387: POP
00002388: POP
00002389: RETURNDATASIZE
0000238a: DUP1
0000238b: PUSH1 0x00
0000238d: DUP2
0000238e: EQ
0000238f: PUSH2 0x23b4
00002392: JUMPI
00002393: PUSH1 0x40
00002395: MLOAD
00002396: SWAP2
00002397: POP
00002398: PUSH1 0x1f
0000239a: NOT
0000239b: PUSH1 0x3f
0000239d: RETURNDATASIZE
0000239e: ADD
0000239f: AND
000023a0: DUP3
000023a1: ADD
000023a2: PUSH1 0x40
000023a4: MSTORE
000023a5: RETURNDATASIZE
000023a6: DUP3
000023a7: MSTORE
000023a8: RETURNDATASIZE
000023a9: PUSH1 0x00
000023ab: PUSH1 0x20
000023ad: DUP5
000023ae: ADD
000023af: RETURNDATACOPY
000023b0: PUSH2 0x23b9
000023b3: JUMP
000023b4: JUMPDEST
000023b5: PUSH1 0x60
000023b7: SWAP2
000023b8: POP
000023b9: JUMPDEST
000023ba: POP
000023bb: POP
000023bc: SWAP1
000023bd: POP
000023be: DUP1
000023bf: PUSH2 0x241a
000023c2: JUMPI
000023c3: PUSH1 0x40
000023c5: MLOAD
000023c6: PUSH4 0xa906d431
000023cb: PUSH1 0xe0
000023cd: SHL
000023ce: DUP2
000023cf: MSTORE
000023d0: PUSH1 0x01
000023d2: PUSH1 0x01
000023d4: PUSH1 0xa0
000023d6: SHL
000023d7: SUB
000023d8: DUP7
000023d9: AND
000023da: PUSH1 0x04
000023dc: DUP3
000023dd: ADD
000023de: MSTORE
000023df: PUSH1 0x24
000023e1: DUP2
000023e2: ADD
000023e3: DUP5
000023e4: SWAP1
000023e5: MSTORE
000023e6: PUSH1 0x60
000023e8: PUSH1 0x44
000023ea: DUP3
000023eb: ADD
000023ec: MSTORE
000023ed: PUSH1 0x16
000023ef: PUSH1 0x64
000023f1: DUP3
000023f2: ADD
000023f3: MSTORE
000023f4: PUSH22 0x13985d1a5d99481d1c985b9cd9995c8819985a5b1959
0000240b: PUSH1 0x52
0000240d: SHL
0000240e: PUSH1 0x84
00002410: DUP3
00002411: ADD
00002412: MSTORE
00002413: PUSH1 0xa4
00002415: ADD
00002416: PUSH2 0x08b7
00002419: JUMP
0000241a: JUMPDEST
0000241b: POP
0000241c: PUSH2 0x0d78
0000241f: JUMP
00002420: JUMPDEST
00002421: PUSH2 0x0d78
00002424: PUSH1 0x01
00002426: PUSH1 0x01
00002428: PUSH1 0xa0
0000242a: SHL
0000242b: SUB
0000242c: DUP5
0000242d: AND
0000242e: DUP6
0000242f: DUP5
00002430: PUSH2 0x2745
00002433: JUMP
00002434: JUMPDEST
00002435: PUSH1 0x98
00002437: SLOAD
00002438: PUSH1 0x40
0000243a: MLOAD
0000243b: PUSH4 0x6eab9b35
00002440: PUSH1 0xe1
00002442: SHL
00002443: DUP2
00002444: MSTORE
00002445: CALLER
00002446: PUSH1 0x04
00002448: DUP3
00002449: ADD
0000244a: MSTORE
0000244b: PUSH1 0x01
0000244d: PUSH1 0x01
0000244f: PUSH1 0xa0
00002451: SHL
00002452: SUB
00002453: SWAP1
00002454: SWAP2
00002455: AND
00002456: SWAP1
00002457: PUSH4 0xdd57366a
0000245c: SWAP1
0000245d: PUSH1 0x24
0000245f: ADD
00002460: PUSH1 0x20
00002462: PUSH1 0x40
00002464: MLOAD
00002465: DUP1
00002466: DUP4
00002467: SUB
00002468: DUP2
00002469: DUP7
0000246a: GAS
0000246b: STATICCALL
0000246c: ISZERO
0000246d: DUP1
0000246e: ISZERO
0000246f: PUSH2 0x247c
00002472: JUMPI
00002473: RETURNDATASIZE
00002474: PUSH1 0x00
00002476: DUP1
00002477: RETURNDATACOPY
00002478: RETURNDATASIZE
00002479: PUSH1 0x00
0000247b: REVERT
0000247c: JUMPDEST
0000247d: POP
0000247e: POP
0000247f: POP
00002480: POP
00002481: PUSH1 0x40
00002483: MLOAD
00002484: RETURNDATASIZE
00002485: PUSH1 0x1f
00002487: NOT
00002488: PUSH1 0x1f
0000248a: DUP3
0000248b: ADD
0000248c: AND
0000248d: DUP3
0000248e: ADD
0000248f: DUP1
00002490: PUSH1 0x40
00002492: MSTORE
00002493: POP
00002494: DUP2
00002495: ADD
00002496: SWAP1
00002497: PUSH2 0x24a0
0000249a: SWAP2
0000249b: SWAP1
0000249c: PUSH2 0x32c2
0000249f: JUMP
000024a0: JUMPDEST
000024a1: ISZERO
000024a2: DUP1
000024a3: ISZERO
000024a4: PUSH2 0x24b8
000024a7: JUMPI
000024a8: POP
000024a9: PUSH1 0x97
000024ab: SLOAD
000024ac: PUSH1 0x01
000024ae: PUSH1 0x01
000024b0: PUSH1 0xa0
000024b2: SHL
000024b3: SUB
000024b4: AND
000024b5: CALLER
000024b6: EQ
000024b7: ISZERO
000024b8: JUMPDEST
000024b9: ISZERO
000024ba: PUSH2 0x1f4f
000024bd: JUMPI
000024be: PUSH1 0x40
000024c0: MLOAD
000024c1: PUSH4 0x537ebb87
000024c6: PUSH1 0xe1
000024c8: SHL
000024c9: DUP2
000024ca: MSTORE
000024cb: CALLER
000024cc: PUSH1 0x04
000024ce: DUP3
000024cf: ADD
000024d0: MSTORE
000024d1: PUSH1 0x24
000024d3: ADD
000024d4: PUSH2 0x08b7
000024d7: JUMP
000024d8: JUMPDEST
000024d9: PUSH2 0x24e0
000024dc: PUSH2 0x2070
000024df: JUMP
000024e0: JUMPDEST
000024e1: PUSH1 0x33
000024e3: DUP1
000024e4: SLOAD
000024e5: PUSH1 0xff
000024e7: NOT
000024e8: AND
000024e9: PUSH1 0x01
000024eb: OR
000024ec: SWAP1
000024ed: SSTORE
000024ee: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258
0000250f: PUSH2 0x2515
00002512: CALLER
00002513: SWAP1
00002514: JUMP
00002515: JUMPDEST
00002516: PUSH1 0x40
00002518: MLOAD
00002519: PUSH1 0x01
0000251b: PUSH1 0x01
0000251d: PUSH1 0xa0
0000251f: SHL
00002520: SUB
00002521: SWAP1
00002522: SWAP2
00002523: AND
00002524: DUP2
00002525: MSTORE
00002526: PUSH1 0x20
00002528: ADD
00002529: PUSH1 0x40
0000252b: MLOAD
0000252c: DUP1
0000252d: SWAP2
0000252e: SUB
0000252f: SWAP1
00002530: LOG1
00002531: JUMP
00002532: JUMPDEST
00002533: PUSH1 0xc9
00002535: SLOAD
00002536: PUSH1 0x01
00002538: PUSH1 0x01
0000253a: PUSH1 0xa0
0000253c: SHL
0000253d: SUB
0000253e: AND
0000253f: CALLER
00002540: EQ
00002541: PUSH2 0x1f4f
00002544: JUMPI
00002545: PUSH1 0xc9
00002547: SLOAD
00002548: PUSH1 0x40
0000254a: MLOAD
0000254b: PUSH4 0xc52de321
00002550: PUSH1 0xe0
00002552: SHL
00002553: DUP2
00002554: MSTORE
00002555: CALLER
00002556: PUSH1 0x04
00002558: DUP3
00002559: ADD
0000255a: MSTORE
0000255b: PUSH1 0x01
0000255d: PUSH1 0x01
0000255f: PUSH1 0xa0
00002561: SHL
00002562: SUB
00002563: SWAP1
00002564: SWAP2
00002565: AND
00002566: PUSH1 0x24
00002568: DUP3
00002569: ADD
0000256a: MSTORE
0000256b: PUSH1 0x60
0000256d: PUSH1 0x44
0000256f: DUP3
00002570: ADD
00002571: MSTORE
00002572: PUSH1 0x13
00002574: PUSH1 0x64
00002576: DUP3
00002577: ADD
00002578: MSTORE
00002579: PUSH19 0x6f6e6c79436861696e706f7274427269646765
0000258d: PUSH1 0x68
0000258f: SHL
00002590: PUSH1 0x84
00002592: DUP3
00002593: ADD
00002594: MSTORE
00002595: PUSH1 0xa4
00002597: ADD
00002598: PUSH2 0x08b7
0000259b: JUMP
0000259c: JUMPDEST
0000259d: PUSH1 0x01
0000259f: PUSH1 0x01
000025a1: PUSH1 0xa0
000025a3: SHL
000025a4: SUB
000025a5: DUP2
000025a6: AND
000025a7: PUSH2 0x2604
000025aa: JUMPI
000025ab: PUSH1 0x40
000025ad: DUP1
000025ae: MLOAD
000025af: PUSH4 0x09617777
000025b4: PUSH1 0xe4
000025b6: SHL
000025b7: DUP2
000025b8: MSTORE
000025b9: PUSH1 0x04
000025bb: DUP2
000025bc: ADD
000025bd: SWAP2
000025be: SWAP1
000025bf: SWAP2
000025c0: MSTORE
000025c1: PUSH1 0x1f
000025c3: PUSH1 0x44
000025c5: DUP3
000025c6: ADD
000025c7: MSTORE
000025c8: PUSH32 0x436f6e677265737320616464726573732063616e6e6f74206265207a65726f00
000025e9: PUSH1 0x64
000025eb: DUP3
000025ec: ADD
000025ed: MSTORE
000025ee: PUSH1 0x01
000025f0: PUSH1 0x01
000025f2: PUSH1 0xa0
000025f4: SHL
000025f5: SUB
000025f6: DUP3
000025f7: AND
000025f8: PUSH1 0x24
000025fa: DUP3
000025fb: ADD
000025fc: MSTORE
000025fd: PUSH1 0x84
000025ff: ADD
00002600: PUSH2 0x08b7
00002603: JUMP
00002604: JUMPDEST
00002605: PUSH1 0x97
00002607: DUP1
00002608: SLOAD
00002609: PUSH1 0x01
0000260b: PUSH1 0x01
0000260d: PUSH1 0xa0
0000260f: SHL
00002610: SUB
00002611: NOT
00002612: AND
00002613: PUSH1 0x01
00002615: PUSH1 0x01
00002617: PUSH1 0xa0
00002619: SHL
0000261a: SUB
0000261b: DUP4
0000261c: AND
0000261d: SWAP1
0000261e: DUP2
0000261f: OR
00002620: SWAP1
00002621: SWAP2
00002622: SSTORE
00002623: PUSH1 0x40
00002625: MLOAD
00002626: PUSH32 0x92c0335399ecbaa35b0b21fc784a8ce59419e6786caf942b31db51ac8c292584
00002647: SWAP1
00002648: PUSH1 0x00
0000264a: SWAP1
0000264b: LOG2
0000264c: POP
0000264d: JUMP
0000264e: JUMPDEST
0000264f: PUSH2 0x2656
00002652: PUSH2 0x2938
00002655: JUMP
00002656: JUMPDEST
00002657: PUSH1 0x33
00002659: DUP1
0000265a: SLOAD
0000265b: PUSH1 0xff
0000265d: NOT
0000265e: AND
0000265f: SWAP1
00002660: SSTORE
00002661: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa
00002682: CALLER
00002683: PUSH2 0x2515
00002686: JUMP
00002687: JUMPDEST
00002688: PUSH1 0x01
0000268a: PUSH1 0x01
0000268c: PUSH1 0xa0
0000268e: SHL
0000268f: SUB
00002690: DUP2
00002691: AND
00002692: PUSH2 0x08c9
00002695: JUMPI
00002696: PUSH1 0x40
00002698: DUP1
00002699: MLOAD
0000269a: PUSH4 0x8eb40ca7
0000269f: PUSH1 0xe0
000026a1: SHL
000026a2: DUP2
000026a3: MSTORE
000026a4: PUSH1 0x04
000026a6: DUP2
000026a7: ADD
000026a8: SWAP2
000026a9: SWAP1
000026aa: SWAP2
000026ab: MSTORE
000026ac: PUSH1 0x16
000026ae: PUSH1 0x44
000026b0: DUP3
000026b1: ADD
000026b2: MSTORE
000026b3: PUSH22 0x416464726573732063616e6e6f74206265207a65726f
000026ca: PUSH1 0x50
000026cc: SHL
000026cd: PUSH1 0x64
000026cf: DUP3
000026d0: ADD
000026d1: MSTORE
000026d2: PUSH1 0x01
000026d4: PUSH1 0x01
000026d6: PUSH1 0xa0
000026d8: SHL
000026d9: SUB
000026da: DUP3
000026db: AND
000026dc: PUSH1 0x24
000026de: DUP3
000026df: ADD
000026e0: MSTORE
000026e1: PUSH1 0x84
000026e3: ADD
000026e4: PUSH2 0x08b7
000026e7: JUMP
000026e8: JUMPDEST
000026e9: PUSH1 0x00
000026eb: JUMPDEST
000026ec: DUP3
000026ed: MLOAD
000026ee: DUP2
000026ef: LT
000026f0: ISZERO
000026f1: PUSH2 0x0c3e
000026f4: JUMPI
000026f5: DUP2
000026f6: PUSH1 0xcf
000026f8: PUSH1 0x00
000026fa: DUP6
000026fb: DUP5
000026fc: DUP2
000026fd: MLOAD
000026fe: DUP2
000026ff: LT
00002700: PUSH2 0x270b
00002703: JUMPI
00002704: PUSH2 0x270b
00002707: PUSH2 0x3241
0000270a: JUMP
0000270b: JUMPDEST
0000270c: PUSH1 0x20
0000270e: SWAP1
0000270f: DUP2
00002710: MUL
00002711: SWAP2
00002712: SWAP1
00002713: SWAP2
00002714: ADD
00002715: DUP2
00002716: ADD
00002717: MLOAD
00002718: PUSH1 0x01
0000271a: PUSH1 0x01
0000271c: PUSH1 0xa0
0000271e: SHL
0000271f: SUB
00002720: AND
00002721: DUP3
00002722: MSTORE
00002723: DUP2
00002724: ADD
00002725: SWAP2
00002726: SWAP1
00002727: SWAP2
00002728: MSTORE
00002729: PUSH1 0x40
0000272b: ADD
0000272c: PUSH1 0x00
0000272e: KECCAK256
0000272f: DUP1
00002730: SLOAD
00002731: PUSH1 0xff
00002733: NOT
00002734: AND
00002735: SWAP2
00002736: ISZERO
00002737: ISZERO
00002738: SWAP2
00002739: SWAP1
0000273a: SWAP2
0000273b: OR
0000273c: SWAP1
0000273d: SSTORE
0000273e: PUSH1 0x01
00002740: ADD
00002741: PUSH2 0x26eb
00002744: JUMP
00002745: JUMPDEST
00002746: PUSH1 0x40
00002748: MLOAD
00002749: PUSH1 0x01
0000274b: PUSH1 0x01
0000274d: PUSH1 0xa0
0000274f: SHL
00002750: SUB
00002751: DUP4
00002752: AND
00002753: PUSH1 0x24
00002755: DUP3
00002756: ADD
00002757: MSTORE
00002758: PUSH1 0x44
0000275a: DUP2
0000275b: ADD
0000275c: DUP3
0000275d: SWAP1
0000275e: MSTORE
0000275f: PUSH2 0x0c3e
00002762: SWAP1
00002763: DUP5
00002764: SWAP1
00002765: PUSH4 0xa9059cbb
0000276a: PUSH1 0xe0
0000276c: SHL
0000276d: SWAP1
0000276e: PUSH1 0x64
00002770: ADD
00002771: PUSH2 0x2323
00002774: JUMP
00002775: JUMPDEST
00002776: PUSH1 0xd6
00002778: SLOAD
00002779: PUSH1 0x40
0000277b: MLOAD
0000277c: PUSH4 0xe4e3a7a9
00002781: PUSH1 0xe0
00002783: SHL
00002784: DUP2
00002785: MSTORE
00002786: PUSH1 0x01
00002788: PUSH1 0x01
0000278a: PUSH1 0xa0
0000278c: SHL
0000278d: SUB
0000278e: DUP4
0000278f: DUP2
00002790: AND
00002791: PUSH1 0x04
00002793: DUP4
00002794: ADD
00002795: MSTORE
00002796: SWAP1
00002797: SWAP2
00002798: AND
00002799: SWAP1
0000279a: PUSH4 0xe4e3a7a9
0000279f: SWAP1
000027a0: PUSH1 0x24
000027a2: ADD
000027a3: PUSH1 0x20
000027a5: PUSH1 0x40
000027a7: MLOAD
000027a8: DUP1
000027a9: DUP4
000027aa: SUB
000027ab: DUP2
000027ac: DUP7
000027ad: GAS
000027ae: STATICCALL
000027af: ISZERO
000027b0: DUP1
000027b1: ISZERO
000027b2: PUSH2 0x27bf
000027b5: JUMPI
000027b6: RETURNDATASIZE
000027b7: PUSH1 0x00
000027b9: DUP1
000027ba: RETURNDATACOPY
000027bb: RETURNDATASIZE
000027bc: PUSH1 0x00
000027be: REVERT
000027bf: JUMPDEST
000027c0: POP
000027c1: POP
000027c2: POP
000027c3: POP
000027c4: PUSH1 0x40
000027c6: MLOAD
000027c7: RETURNDATASIZE
000027c8: PUSH1 0x1f
000027ca: NOT
000027cb: PUSH1 0x1f
000027cd: DUP3
000027ce: ADD
000027cf: AND
000027d0: DUP3
000027d1: ADD
000027d2: DUP1
000027d3: PUSH1 0x40
000027d5: MSTORE
000027d6: POP
000027d7: DUP2
000027d8: ADD
000027d9: SWAP1
000027da: PUSH2 0x27e3
000027dd: SWAP2
000027de: SWAP1
000027df: PUSH2 0x32c2
000027e2: JUMP
000027e3: JUMPDEST
000027e4: PUSH2 0x08c9
000027e7: JUMPI
000027e8: PUSH1 0x40
000027ea: DUP1
000027eb: MLOAD
000027ec: PUSH4 0x3c842441
000027f1: PUSH1 0xe2
000027f3: SHL
000027f4: DUP2
000027f5: MSTORE
000027f6: PUSH1 0x01
000027f8: PUSH1 0x01
000027fa: PUSH1 0xa0
000027fc: SHL
000027fd: SUB
000027fe: DUP4
000027ff: AND
00002800: PUSH1 0x04
00002802: DUP3
00002803: ADD
00002804: MSTORE
00002805: PUSH1 0x24
00002807: DUP2
00002808: ADD
00002809: SWAP2
0000280a: SWAP1
0000280b: SWAP2
0000280c: MSTORE
0000280d: PUSH1 0x1b
0000280f: PUSH1 0x44
00002811: DUP3
00002812: ADD
00002813: MSTORE
00002814: PUSH32 0x42656e6566696369617279206e6f742077686974656c69737465640000000000
00002835: PUSH1 0x64
00002837: DUP3
00002838: ADD
00002839: MSTORE
0000283a: PUSH1 0x84
0000283c: ADD
0000283d: PUSH2 0x08b7
00002840: JUMP
00002841: JUMPDEST
00002842: PUSH2 0x284a
00002845: DUP3
00002846: PUSH2 0x259c
00002849: JUMP
0000284a: JUMPDEST
0000284b: PUSH2 0x2853
0000284e: DUP2
0000284f: PUSH2 0x1f51
00002852: JUMP
00002853: JUMPDEST
00002854: PUSH2 0x285b
00002857: PUSH2 0x2981
0000285a: JUMP
0000285b: JUMPDEST
0000285c: PUSH2 0x0d0b
0000285f: PUSH2 0x29b0
00002862: JUMP
00002863: JUMPDEST
00002864: PUSH1 0x00
00002866: PUSH2 0x28b8
00002869: DUP3
0000286a: PUSH1 0x40
0000286c: MLOAD
0000286d: DUP1
0000286e: PUSH1 0x40
00002870: ADD
00002871: PUSH1 0x40
00002873: MSTORE
00002874: DUP1
00002875: PUSH1 0x20
00002877: DUP2
00002878: MSTORE
00002879: PUSH1 0x20
0000287b: ADD
0000287c: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
0000289d: DUP2
0000289e: MSTORE
0000289f: POP
000028a0: DUP6
000028a1: PUSH1 0x01
000028a3: PUSH1 0x01
000028a5: PUSH1 0xa0
000028a7: SHL
000028a8: SUB
000028a9: AND
000028aa: PUSH2 0x29df
000028ad: SWAP1
000028ae: SWAP3
000028af: SWAP2
000028b0: SWAP1
000028b1: PUSH4 0xffffffff
000028b6: AND
000028b7: JUMP
000028b8: JUMPDEST
000028b9: SWAP1
000028ba: POP
000028bb: DUP1
000028bc: MLOAD
000028bd: PUSH1 0x00
000028bf: EQ
000028c0: DUP1
000028c1: PUSH2 0x28d9
000028c4: JUMPI
000028c5: POP
000028c6: DUP1
000028c7: DUP1
000028c8: PUSH1 0x20
000028ca: ADD
000028cb: SWAP1
000028cc: MLOAD
000028cd: DUP2
000028ce: ADD
000028cf: SWAP1
000028d0: PUSH2 0x28d9
000028d3: SWAP2
000028d4: SWAP1
000028d5: PUSH2 0x32c2
000028d8: JUMP
000028d9: JUMPDEST
000028da: PUSH2 0x0c3e
000028dd: JUMPI
000028de: PUSH1 0x40
000028e0: MLOAD
000028e1: PUSH3 0x461bcd
000028e5: PUSH1 0xe5
000028e7: SHL
000028e8: DUP2
000028e9: MSTORE
000028ea: PUSH1 0x20
000028ec: PUSH1 0x04
000028ee: DUP3
000028ef: ADD
000028f0: MSTORE
000028f1: PUSH1 0x2a
000028f3: PUSH1 0x24
000028f5: DUP3
000028f6: ADD
000028f7: MSTORE
000028f8: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
00002919: PUSH1 0x44
0000291b: DUP3
0000291c: ADD
0000291d: MSTORE
0000291e: PUSH10 0x1bdd081cdd58d8d95959
00002929: PUSH1 0xb2
0000292b: SHL
0000292c: PUSH1 0x64
0000292e: DUP3
0000292f: ADD
00002930: MSTORE
00002931: PUSH1 0x84
00002933: ADD
00002934: PUSH2 0x08b7
00002937: JUMP
00002938: JUMPDEST
00002939: PUSH1 0x33
0000293b: SLOAD
0000293c: PUSH1 0xff
0000293e: AND
0000293f: PUSH2 0x1f4f
00002942: JUMPI
00002943: PUSH1 0x40
00002945: MLOAD
00002946: PUSH3 0x461bcd
0000294a: PUSH1 0xe5
0000294c: SHL
0000294d: DUP2
0000294e: MSTORE
0000294f: PUSH1 0x20
00002951: PUSH1 0x04
00002953: DUP3
00002954: ADD
00002955: MSTORE
00002956: PUSH1 0x14
00002958: PUSH1 0x24
0000295a: DUP3
0000295b: ADD
0000295c: MSTORE
0000295d: PUSH20 0x14185d5cd8589b194e881b9bdd081c185d5cd959
00002972: PUSH1 0x62
00002974: SHL
00002975: PUSH1 0x44
00002977: DUP3
00002978: ADD
00002979: MSTORE
0000297a: PUSH1 0x64
0000297c: ADD
0000297d: PUSH2 0x08b7
00002980: JUMP
00002981: JUMPDEST
00002982: PUSH1 0x00
00002984: SLOAD
00002985: PUSH2 0x0100
00002988: SWAP1
00002989: DIV
0000298a: PUSH1 0xff
0000298c: AND
0000298d: PUSH2 0x29a8
00002990: JUMPI
00002991: PUSH1 0x40
00002993: MLOAD
00002994: PUSH3 0x461bcd
00002998: PUSH1 0xe5
0000299a: SHL
0000299b: DUP2
0000299c: MSTORE
0000299d: PUSH1 0x04
0000299f: ADD
000029a0: PUSH2 0x08b7
000029a3: SWAP1
000029a4: PUSH2 0x336a
000029a7: JUMP
000029a8: JUMPDEST
000029a9: PUSH2 0x1f4f
000029ac: PUSH2 0x29f6
000029af: JUMP
000029b0: JUMPDEST
000029b1: PUSH1 0x00
000029b3: SLOAD
000029b4: PUSH2 0x0100
000029b7: SWAP1
000029b8: DIV
000029b9: PUSH1 0xff
000029bb: AND
000029bc: PUSH2 0x29d7
000029bf: JUMPI
000029c0: PUSH1 0x40
000029c2: MLOAD
000029c3: PUSH3 0x461bcd
000029c7: PUSH1 0xe5
000029c9: SHL
000029ca: DUP2
000029cb: MSTORE
000029cc: PUSH1 0x04
000029ce: ADD
000029cf: PUSH2 0x08b7
000029d2: SWAP1
000029d3: PUSH2 0x336a
000029d6: JUMP
000029d7: JUMPDEST
000029d8: PUSH2 0x1f4f
000029db: PUSH2 0x2a29
000029de: JUMP
000029df: JUMPDEST
000029e0: PUSH1 0x60
000029e2: PUSH2 0x29ee
000029e5: DUP5
000029e6: DUP5
000029e7: PUSH1 0x00
000029e9: DUP6
000029ea: PUSH2 0x2a50
000029ed: JUMP
000029ee: JUMPDEST
000029ef: SWAP5
000029f0: SWAP4
000029f1: POP
000029f2: POP
000029f3: POP
000029f4: POP
000029f5: JUMP
000029f6: JUMPDEST
000029f7: PUSH1 0x00
000029f9: SLOAD
000029fa: PUSH2 0x0100
000029fd: SWAP1
000029fe: DIV
000029ff: PUSH1 0xff
00002a01: AND
00002a02: PUSH2 0x2a1d
00002a05: JUMPI
00002a06: PUSH1 0x40
00002a08: MLOAD
00002a09: PUSH3 0x461bcd
00002a0d: PUSH1 0xe5
00002a0f: SHL
00002a10: DUP2
00002a11: MSTORE
00002a12: PUSH1 0x04
00002a14: ADD
00002a15: PUSH2 0x08b7
00002a18: SWAP1
00002a19: PUSH2 0x336a
00002a1c: JUMP
00002a1d: JUMPDEST
00002a1e: PUSH1 0x33
00002a20: DUP1
00002a21: SLOAD
00002a22: PUSH1 0xff
00002a24: NOT
00002a25: AND
00002a26: SWAP1
00002a27: SSTORE
00002a28: JUMP
00002a29: JUMPDEST
00002a2a: PUSH1 0x00
00002a2c: SLOAD
00002a2d: PUSH2 0x0100
00002a30: SWAP1
00002a31: DIV
00002a32: PUSH1 0xff
00002a34: AND
00002a35: PUSH2 0x235a
00002a38: JUMPI
00002a39: PUSH1 0x40
00002a3b: MLOAD
00002a3c: PUSH3 0x461bcd
00002a40: PUSH1 0xe5
00002a42: SHL
00002a43: DUP2
00002a44: MSTORE
00002a45: PUSH1 0x04
00002a47: ADD
00002a48: PUSH2 0x08b7
00002a4b: SWAP1
00002a4c: PUSH2 0x336a
00002a4f: JUMP
00002a50: JUMPDEST
00002a51: PUSH1 0x60
00002a53: DUP3
00002a54: SELFBALANCE
00002a55: LT
00002a56: ISZERO
00002a57: PUSH2 0x2ab1
00002a5a: JUMPI
00002a5b: PUSH1 0x40
00002a5d: MLOAD
00002a5e: PUSH3 0x461bcd
00002a62: PUSH1 0xe5
00002a64: SHL
00002a65: DUP2
00002a66: MSTORE
00002a67: PUSH1 0x20
00002a69: PUSH1 0x04
00002a6b: DUP3
00002a6c: ADD
00002a6d: MSTORE
00002a6e: PUSH1 0x26
00002a70: PUSH1 0x24
00002a72: DUP3
00002a73: ADD
00002a74: MSTORE
00002a75: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f
00002a96: PUSH1 0x44
00002a98: DUP3
00002a99: ADD
00002a9a: MSTORE
00002a9b: PUSH6 0x1c8818d85b1b
00002aa2: PUSH1 0xd2
00002aa4: SHL
00002aa5: PUSH1 0x64
00002aa7: DUP3
00002aa8: ADD
00002aa9: MSTORE
00002aaa: PUSH1 0x84
00002aac: ADD
00002aad: PUSH2 0x08b7
00002ab0: JUMP
00002ab1: JUMPDEST
00002ab2: PUSH1 0x00
00002ab4: DUP1
00002ab5: DUP7
00002ab6: PUSH1 0x01
00002ab8: PUSH1 0x01
00002aba: PUSH1 0xa0
00002abc: SHL
00002abd: SUB
00002abe: AND
00002abf: DUP6
00002ac0: DUP8
00002ac1: PUSH1 0x40
00002ac3: MLOAD
00002ac4: PUSH2 0x2acd
00002ac7: SWAP2
00002ac8: SWAP1
00002ac9: PUSH2 0x33b5
00002acc: JUMP
00002acd: JUMPDEST
00002ace: PUSH1 0x00
00002ad0: PUSH1 0x40
00002ad2: MLOAD
00002ad3: DUP1
00002ad4: DUP4
00002ad5: SUB
00002ad6: DUP2
00002ad7: DUP6
00002ad8: DUP8
00002ad9: GAS
00002ada: CALL
00002adb: SWAP3
00002adc: POP
00002add: POP
00002ade: POP
00002adf: RETURNDATASIZE
00002ae0: DUP1
00002ae1: PUSH1 0x00
00002ae3: DUP2
00002ae4: EQ
00002ae5: PUSH2 0x2b0a
00002ae8: JUMPI
00002ae9: PUSH1 0x40
00002aeb: MLOAD
00002aec: SWAP2
00002aed: POP
00002aee: PUSH1 0x1f
00002af0: NOT
00002af1: PUSH1 0x3f
00002af3: RETURNDATASIZE
00002af4: ADD
00002af5: AND
00002af6: DUP3
00002af7: ADD
00002af8: PUSH1 0x40
00002afa: MSTORE
00002afb: RETURNDATASIZE
00002afc: DUP3
00002afd: MSTORE
00002afe: RETURNDATASIZE
00002aff: PUSH1 0x00
00002b01: PUSH1 0x20
00002b03: DUP5
00002b04: ADD
00002b05: RETURNDATACOPY
00002b06: PUSH2 0x2b0f
00002b09: JUMP
00002b0a: JUMPDEST
00002b0b: PUSH1 0x60
00002b0d: SWAP2
00002b0e: POP
00002b0f: JUMPDEST
00002b10: POP
00002b11: SWAP2
00002b12: POP
00002b13: SWAP2
00002b14: POP
00002b15: PUSH2 0x2b20
00002b18: DUP8
00002b19: DUP4
00002b1a: DUP4
00002b1b: DUP8
00002b1c: PUSH2 0x2b2b
00002b1f: JUMP
00002b20: JUMPDEST
00002b21: SWAP8
00002b22: SWAP7
00002b23: POP
00002b24: POP
00002b25: POP
00002b26: POP
00002b27: POP
00002b28: POP
00002b29: POP
00002b2a: JUMP
00002b2b: JUMPDEST
00002b2c: PUSH1 0x60
00002b2e: DUP4
00002b2f: ISZERO
00002b30: PUSH2 0x2b9a
00002b33: JUMPI
00002b34: DUP3
00002b35: MLOAD
00002b36: PUSH1 0x00
00002b38: SUB
00002b39: PUSH2 0x2b93
00002b3c: JUMPI
00002b3d: PUSH1 0x01
00002b3f: PUSH1 0x01
00002b41: PUSH1 0xa0
00002b43: SHL
00002b44: SUB
00002b45: DUP6
00002b46: AND
00002b47: EXTCODESIZE
00002b48: PUSH2 0x2b93
00002b4b: JUMPI
00002b4c: PUSH1 0x40
00002b4e: MLOAD
00002b4f: PUSH3 0x461bcd
00002b53: PUSH1 0xe5
00002b55: SHL
00002b56: DUP2
00002b57: MSTORE
00002b58: PUSH1 0x20
00002b5a: PUSH1 0x04
00002b5c: DUP3
00002b5d: ADD
00002b5e: MSTORE
00002b5f: PUSH1 0x1d
00002b61: PUSH1 0x24
00002b63: DUP3
00002b64: ADD
00002b65: MSTORE
00002b66: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
00002b87: PUSH1 0x44
00002b89: DUP3
00002b8a: ADD
00002b8b: MSTORE
00002b8c: PUSH1 0x64
00002b8e: ADD
00002b8f: PUSH2 0x08b7
00002b92: JUMP
00002b93: JUMPDEST
00002b94: POP
00002b95: DUP2
00002b96: PUSH2 0x29ee
00002b99: JUMP
00002b9a: JUMPDEST
00002b9b: PUSH2 0x29ee
00002b9e: DUP4
00002b9f: DUP4
00002ba0: DUP2
00002ba1: MLOAD
00002ba2: ISZERO
00002ba3: PUSH2 0x2baf
00002ba6: JUMPI
00002ba7: DUP2
00002ba8: MLOAD
00002ba9: DUP1
00002baa: DUP4
00002bab: PUSH1 0x20
00002bad: ADD
00002bae: REVERT
00002baf: JUMPDEST
00002bb0: DUP1
00002bb1: PUSH1 0x40
00002bb3: MLOAD
00002bb4: PUSH3 0x461bcd
00002bb8: PUSH1 0xe5
00002bba: SHL
00002bbb: DUP2
00002bbc: MSTORE
00002bbd: PUSH1 0x04
00002bbf: ADD
00002bc0: PUSH2 0x08b7
00002bc3: SWAP2
00002bc4: SWAP1
00002bc5: PUSH2 0x33d1
00002bc8: JUMP
00002bc9: JUMPDEST
00002bca: PUSH1 0x01
00002bcc: PUSH1 0x01
00002bce: PUSH1 0xa0
00002bd0: SHL
00002bd1: SUB
00002bd2: DUP2
00002bd3: AND
00002bd4: DUP2
00002bd5: EQ
00002bd6: PUSH2 0x08c9
00002bd9: JUMPI
00002bda: PUSH1 0x00
00002bdc: DUP1
00002bdd: REVERT
00002bde: JUMPDEST
00002bdf: PUSH1 0x00
00002be1: PUSH1 0x20
00002be3: DUP3
00002be4: DUP5
00002be5: SUB
00002be6: SLT
00002be7: ISZERO
00002be8: PUSH2 0x2bf0
00002beb: JUMPI
00002bec: PUSH1 0x00
00002bee: DUP1
00002bef: REVERT
00002bf0: JUMPDEST
00002bf1: DUP2
00002bf2: CALLDATALOAD
00002bf3: PUSH2 0x2bfb
00002bf6: DUP2
00002bf7: PUSH2 0x2bc9
00002bfa: JUMP
00002bfb: JUMPDEST
00002bfc: SWAP4
00002bfd: SWAP3
00002bfe: POP
00002bff: POP
00002c00: POP
00002c01: JUMP
00002c02: JUMPDEST
00002c03: PUSH1 0x00
00002c05: DUP1
00002c06: PUSH1 0x40
00002c08: DUP4
00002c09: DUP6
00002c0a: SUB
00002c0b: SLT
00002c0c: ISZERO
00002c0d: PUSH2 0x2c15
00002c10: JUMPI
00002c11: PUSH1 0x00
00002c13: DUP1
00002c14: REVERT
00002c15: JUMPDEST
00002c16: POP
00002c17: POP
00002c18: DUP1
00002c19: CALLDATALOAD
00002c1a: SWAP3
00002c1b: PUSH1 0x20
00002c1d: SWAP1
00002c1e: SWAP2
00002c1f: ADD
00002c20: CALLDATALOAD
00002c21: SWAP2
00002c22: POP
00002c23: JUMP
00002c24: JUMPDEST
00002c25: PUSH1 0x00
00002c27: DUP1
00002c28: DUP4
00002c29: PUSH1 0x1f
00002c2b: DUP5
00002c2c: ADD
00002c2d: SLT
00002c2e: PUSH2 0x2c36
00002c31: JUMPI
00002c32: PUSH1 0x00
00002c34: DUP1
00002c35: REVERT
00002c36: JUMPDEST
00002c37: POP
00002c38: DUP2
00002c39: CALLDATALOAD
00002c3a: PUSH8 0xffffffffffffffff
00002c43: DUP2
00002c44: GT
00002c45: ISZERO
00002c46: PUSH2 0x2c4e
00002c49: JUMPI
00002c4a: PUSH1 0x00
00002c4c: DUP1
00002c4d: REVERT
00002c4e: JUMPDEST
00002c4f: PUSH1 0x20
00002c51: DUP4
00002c52: ADD
00002c53: SWAP2
00002c54: POP
00002c55: DUP4
00002c56: PUSH1 0x20
00002c58: DUP3
00002c59: DUP6
00002c5a: ADD
00002c5b: ADD
00002c5c: GT
00002c5d: ISZERO
00002c5e: PUSH2 0x2c66
00002c61: JUMPI
00002c62: PUSH1 0x00
00002c64: DUP1
00002c65: REVERT
00002c66: JUMPDEST
00002c67: SWAP3
00002c68: POP
00002c69: SWAP3
00002c6a: SWAP1
00002c6b: POP
00002c6c: JUMP
00002c6d: JUMPDEST
00002c6e: PUSH1 0x00
00002c70: DUP1
00002c71: PUSH1 0x00
00002c73: DUP1
00002c74: PUSH1 0x00
00002c76: PUSH1 0x80
00002c78: DUP7
00002c79: DUP9
00002c7a: SUB
00002c7b: SLT
00002c7c: ISZERO
00002c7d: PUSH2 0x2c85
00002c80: JUMPI
00002c81: PUSH1 0x00
00002c83: DUP1
00002c84: REVERT
00002c85: JUMPDEST
00002c86: DUP6
00002c87: CALLDATALOAD
00002c88: PUSH2 0x2c90
00002c8b: DUP2
00002c8c: PUSH2 0x2bc9
00002c8f: JUMP
00002c90: JUMPDEST
00002c91: SWAP5
00002c92: POP
00002c93: PUSH1 0x20
00002c95: DUP7
00002c96: ADD
00002c97: CALLDATALOAD
00002c98: SWAP4
00002c99: POP
00002c9a: PUSH1 0x40
00002c9c: DUP7
00002c9d: ADD
00002c9e: CALLDATALOAD
00002c9f: SWAP3
00002ca0: POP
00002ca1: PUSH1 0x60
00002ca3: DUP7
00002ca4: ADD
00002ca5: CALLDATALOAD
00002ca6: PUSH8 0xffffffffffffffff
00002caf: DUP2
00002cb0: GT
00002cb1: ISZERO
00002cb2: PUSH2 0x2cba
00002cb5: JUMPI
00002cb6: PUSH1 0x00
00002cb8: DUP1
00002cb9: REVERT
00002cba: JUMPDEST
00002cbb: PUSH2 0x2cc6
00002cbe: DUP9
00002cbf: DUP3
00002cc0: DUP10
00002cc1: ADD
00002cc2: PUSH2 0x2c24
00002cc5: JUMP
00002cc6: JUMPDEST
00002cc7: SWAP7
00002cc8: SWAP10
00002cc9: SWAP6
00002cca: SWAP9
00002ccb: POP
00002ccc: SWAP4
00002ccd: SWAP7
00002cce: POP
00002ccf: SWAP3
00002cd0: SWAP5
00002cd1: SWAP4
00002cd2: SWAP3
00002cd3: POP
00002cd4: POP
00002cd5: POP
00002cd6: JUMP
00002cd7: JUMPDEST
00002cd8: PUSH1 0x00
00002cda: DUP1
00002cdb: PUSH1 0x00
00002cdd: PUSH1 0x60
00002cdf: DUP5
00002ce0: DUP7
00002ce1: SUB
00002ce2: SLT
00002ce3: ISZERO
00002ce4: PUSH2 0x2cec
00002ce7: JUMPI
00002ce8: PUSH1 0x00
00002cea: DUP1
00002ceb: REVERT
00002cec: JUMPDEST
00002ced: DUP4
00002cee: CALLDATALOAD
00002cef: PUSH2 0x2cf7
00002cf2: DUP2
00002cf3: PUSH2 0x2bc9
00002cf6: JUMP
00002cf7: JUMPDEST
00002cf8: SWAP3
00002cf9: POP
00002cfa: PUSH1 0x20
00002cfc: DUP5
00002cfd: ADD
00002cfe: CALLDATALOAD
00002cff: SWAP2
00002d00: POP
00002d01: PUSH1 0x40
00002d03: DUP5
00002d04: ADD
00002d05: CALLDATALOAD
00002d06: PUSH2 0x2d0e
00002d09: DUP2
00002d0a: PUSH2 0x2bc9
00002d0d: JUMP
00002d0e: JUMPDEST
00002d0f: DUP1
00002d10: SWAP2
00002d11: POP
00002d12: POP
00002d13: SWAP3
00002d14: POP
00002d15: SWAP3
00002d16: POP
00002d17: SWAP3
00002d18: JUMP
00002d19: JUMPDEST
00002d1a: PUSH1 0x00
00002d1c: DUP1
00002d1d: DUP4
00002d1e: PUSH1 0x1f
00002d20: DUP5
00002d21: ADD
00002d22: SLT
00002d23: PUSH2 0x2d2b
00002d26: JUMPI
00002d27: PUSH1 0x00
00002d29: DUP1
00002d2a: REVERT
00002d2b: JUMPDEST
00002d2c: POP
00002d2d: DUP2
00002d2e: CALLDATALOAD
00002d2f: PUSH8 0xffffffffffffffff
00002d38: DUP2
00002d39: GT
00002d3a: ISZERO
00002d3b: PUSH2 0x2d43
00002d3e: JUMPI
00002d3f: PUSH1 0x00
00002d41: DUP1
00002d42: REVERT
00002d43: JUMPDEST
00002d44: PUSH1 0x20
00002d46: DUP4
00002d47: ADD
00002d48: SWAP2
00002d49: POP
00002d4a: DUP4
00002d4b: PUSH1 0x20
00002d4d: DUP3
00002d4e: PUSH1 0x05
00002d50: SHL
00002d51: DUP6
00002d52: ADD
00002d53: ADD
00002d54: GT
00002d55: ISZERO
00002d56: PUSH2 0x2c66
00002d59: JUMPI
00002d5a: PUSH1 0x00
00002d5c: DUP1
00002d5d: REVERT
00002d5e: JUMPDEST
00002d5f: PUSH1 0x00
00002d61: DUP1
00002d62: PUSH1 0x20
00002d64: DUP4
00002d65: DUP6
00002d66: SUB
00002d67: SLT
00002d68: ISZERO
00002d69: PUSH2 0x2d71
00002d6c: JUMPI
00002d6d: PUSH1 0x00
00002d6f: DUP1
00002d70: REVERT
00002d71: JUMPDEST
00002d72: DUP3
00002d73: CALLDATALOAD
00002d74: PUSH8 0xffffffffffffffff
00002d7d: DUP2
00002d7e: GT
00002d7f: ISZERO
00002d80: PUSH2 0x2d88
00002d83: JUMPI
00002d84: PUSH1 0x00
00002d86: DUP1
00002d87: REVERT
00002d88: JUMPDEST
00002d89: PUSH2 0x2d94
00002d8c: DUP6
00002d8d: DUP3
00002d8e: DUP7
00002d8f: ADD
00002d90: PUSH2 0x2d19
00002d93: JUMP
00002d94: JUMPDEST
00002d95: SWAP1
00002d96: SWAP7
00002d97: SWAP1
00002d98: SWAP6
00002d99: POP
00002d9a: SWAP4
00002d9b: POP
00002d9c: POP
00002d9d: POP
00002d9e: POP
00002d9f: JUMP
00002da0: JUMPDEST
00002da1: DUP1
00002da2: ISZERO
00002da3: ISZERO
00002da4: DUP2
00002da5: EQ
00002da6: PUSH2 0x08c9
00002da9: JUMPI
00002daa: PUSH1 0x00
00002dac: DUP1
00002dad: REVERT
00002dae: JUMPDEST
00002daf: PUSH1 0x00
00002db1: DUP1
00002db2: PUSH1 0x00
00002db4: DUP1
00002db5: PUSH1 0x80
00002db7: DUP6
00002db8: DUP8
00002db9: SUB
00002dba: SLT
00002dbb: ISZERO
00002dbc: PUSH2 0x2dc4
00002dbf: JUMPI
00002dc0: PUSH1 0x00
00002dc2: DUP1
00002dc3: REVERT
00002dc4: JUMPDEST
00002dc5: DUP5
00002dc6: CALLDATALOAD
00002dc7: PUSH2 0x2dcf
00002dca: DUP2
00002dcb: PUSH2 0x2bc9
00002dce: JUMP
00002dcf: JUMPDEST
00002dd0: SWAP4
00002dd1: POP
00002dd2: PUSH1 0x20
00002dd4: DUP6
00002dd5: ADD
00002dd6: CALLDATALOAD
00002dd7: SWAP3
00002dd8: POP
00002dd9: PUSH1 0x40
00002ddb: DUP6
00002ddc: ADD
00002ddd: CALLDATALOAD
00002dde: PUSH2 0x2de6
00002de1: DUP2
00002de2: PUSH2 0x2bc9
00002de5: JUMP
00002de6: JUMPDEST
00002de7: SWAP2
00002de8: POP
00002de9: PUSH1 0x60
00002deb: DUP6
00002dec: ADD
00002ded: CALLDATALOAD
00002dee: PUSH2 0x2df6
00002df1: DUP2
00002df2: PUSH2 0x2da0
00002df5: JUMP
00002df6: JUMPDEST
00002df7: SWAP4
00002df8: SWAP7
00002df9: SWAP3
00002dfa: SWAP6
00002dfb: POP
00002dfc: SWAP1
00002dfd: SWAP4
00002dfe: POP
00002dff: POP
00002e00: JUMP
00002e01: JUMPDEST
00002e02: PUSH1 0x00
00002e04: DUP1
00002e05: PUSH1 0x00
00002e07: PUSH1 0x60
00002e09: DUP5
00002e0a: DUP7
00002e0b: SUB
00002e0c: SLT
00002e0d: ISZERO
00002e0e: PUSH2 0x2e16
00002e11: JUMPI
00002e12: PUSH1 0x00
00002e14: DUP1
00002e15: REVERT
00002e16: JUMPDEST
00002e17: DUP4
00002e18: CALLDATALOAD
00002e19: PUSH2 0x2e21
00002e1c: DUP2
00002e1d: PUSH2 0x2bc9
00002e20: JUMP
00002e21: JUMPDEST
00002e22: SWAP3
00002e23: POP
00002e24: PUSH1 0x20
00002e26: DUP5
00002e27: ADD
00002e28: CALLDATALOAD
00002e29: PUSH2 0x2e31
00002e2c: DUP2
00002e2d: PUSH2 0x2bc9
00002e30: JUMP
00002e31: JUMPDEST
00002e32: SWAP3
00002e33: SWAP6
00002e34: SWAP3
00002e35: SWAP5
00002e36: POP
00002e37: POP
00002e38: POP
00002e39: PUSH1 0x40
00002e3b: SWAP2
00002e3c: SWAP1
00002e3d: SWAP2
00002e3e: ADD
00002e3f: CALLDATALOAD
00002e40: SWAP1
00002e41: JUMP
00002e42: JUMPDEST
00002e43: PUSH1 0x00
00002e45: DUP1
00002e46: PUSH1 0x00
00002e48: PUSH1 0x60
00002e4a: DUP5
00002e4b: DUP7
00002e4c: SUB
00002e4d: SLT
00002e4e: ISZERO
00002e4f: PUSH2 0x2e57
00002e52: JUMPI
00002e53: PUSH1 0x00
00002e55: DUP1
00002e56: REVERT
00002e57: JUMPDEST
00002e58: DUP4
00002e59: CALLDATALOAD
00002e5a: PUSH2 0x2e62
00002e5d: DUP2
00002e5e: PUSH2 0x2bc9
00002e61: JUMP
00002e62: JUMPDEST
00002e63: SWAP6
00002e64: PUSH1 0x20
00002e66: DUP6
00002e67: ADD
00002e68: CALLDATALOAD
00002e69: SWAP6
00002e6a: POP
00002e6b: PUSH1 0x40
00002e6d: SWAP1
00002e6e: SWAP5
00002e6f: ADD
00002e70: CALLDATALOAD
00002e71: SWAP4
00002e72: SWAP3
00002e73: POP
00002e74: POP
00002e75: POP
00002e76: JUMP
00002e77: JUMPDEST
00002e78: PUSH1 0x00
00002e7a: DUP1
00002e7b: PUSH1 0x40
00002e7d: DUP4
00002e7e: DUP6
00002e7f: SUB
00002e80: SLT
00002e81: ISZERO
00002e82: PUSH2 0x2e8a
00002e85: JUMPI
00002e86: PUSH1 0x00
00002e88: DUP1
00002e89: REVERT
00002e8a: JUMPDEST
00002e8b: DUP3
00002e8c: CALLDATALOAD
00002e8d: PUSH2 0x2e95
00002e90: DUP2
00002e91: PUSH2 0x2bc9
00002e94: JUMP
00002e95: JUMPDEST
00002e96: SWAP2
00002e97: POP
00002e98: PUSH1 0x20
00002e9a: DUP4
00002e9b: ADD
00002e9c: CALLDATALOAD
00002e9d: PUSH2 0x2ea5
00002ea0: DUP2
00002ea1: PUSH2 0x2bc9
00002ea4: JUMP
00002ea5: JUMPDEST
00002ea6: DUP1
00002ea7: SWAP2
00002ea8: POP
00002ea9: POP
00002eaa: SWAP3
00002eab: POP
00002eac: SWAP3
00002ead: SWAP1
00002eae: POP
00002eaf: JUMP
00002eb0: JUMPDEST
00002eb1: PUSH1 0x00
00002eb3: DUP1
00002eb4: PUSH1 0x00
00002eb6: DUP1
00002eb7: PUSH1 0x00
00002eb9: PUSH1 0x60
00002ebb: DUP7
00002ebc: DUP9
00002ebd: SUB
00002ebe: SLT
00002ebf: ISZERO
00002ec0: PUSH2 0x2ec8
00002ec3: JUMPI
00002ec4: PUSH1 0x00
00002ec6: DUP1
00002ec7: REVERT
00002ec8: JUMPDEST
00002ec9: DUP6
00002eca: CALLDATALOAD
00002ecb: PUSH2 0x2ed3
00002ece: DUP2
00002ecf: PUSH2 0x2bc9
00002ed2: JUMP
00002ed3: JUMPDEST
00002ed4: SWAP5
00002ed5: POP
00002ed6: PUSH1 0x20
00002ed8: DUP7
00002ed9: ADD
00002eda: CALLDATALOAD
00002edb: PUSH8 0xffffffffffffffff
00002ee4: DUP1
00002ee5: DUP3
00002ee6: GT
00002ee7: ISZERO
00002ee8: PUSH2 0x2ef0
00002eeb: JUMPI
00002eec: PUSH1 0x00
00002eee: DUP1
00002eef: REVERT
00002ef0: JUMPDEST
00002ef1: PUSH2 0x2efc
00002ef4: DUP10
00002ef5: DUP4
00002ef6: DUP11
00002ef7: ADD
00002ef8: PUSH2 0x2d19
00002efb: JUMP
00002efc: JUMPDEST
00002efd: SWAP1
00002efe: SWAP7
00002eff: POP
00002f00: SWAP5
00002f01: POP
00002f02: PUSH1 0x40
00002f04: DUP9
00002f05: ADD
00002f06: CALLDATALOAD
00002f07: SWAP2
00002f08: POP
00002f09: DUP1
00002f0a: DUP3
00002f0b: GT
00002f0c: ISZERO
00002f0d: PUSH2 0x2f15
00002f10: JUMPI
00002f11: PUSH1 0x00
00002f13: DUP1
00002f14: REVERT
00002f15: JUMPDEST
00002f16: POP
00002f17: PUSH2 0x2cc6
00002f1a: DUP9
00002f1b: DUP3
00002f1c: DUP10
00002f1d: ADD
00002f1e: PUSH2 0x2d19
00002f21: JUMP
00002f22: JUMPDEST
00002f23: PUSH1 0x00
00002f25: PUSH1 0x20
00002f27: DUP3
00002f28: DUP5
00002f29: SUB
00002f2a: SLT
00002f2b: ISZERO
00002f2c: PUSH2 0x2f34
00002f2f: JUMPI
00002f30: PUSH1 0x00
00002f32: DUP1
00002f33: REVERT
00002f34: JUMPDEST
00002f35: POP
00002f36: CALLDATALOAD
00002f37: SWAP2
00002f38: SWAP1
00002f39: POP
00002f3a: JUMP
00002f3b: JUMPDEST
00002f3c: PUSH1 0x00
00002f3e: DUP1
00002f3f: PUSH1 0x00
00002f41: DUP1
00002f42: PUSH1 0x00
00002f44: DUP1
00002f45: PUSH1 0x60
00002f47: DUP8
00002f48: DUP10
00002f49: SUB
00002f4a: SLT
00002f4b: ISZERO
00002f4c: PUSH2 0x2f54
00002f4f: JUMPI
00002f50: PUSH1 0x00
00002f52: DUP1
00002f53: REVERT
00002f54: JUMPDEST
00002f55: DUP7
00002f56: CALLDATALOAD
00002f57: PUSH8 0xffffffffffffffff
00002f60: DUP1
00002f61: DUP3
00002f62: GT
00002f63: ISZERO
00002f64: PUSH2 0x2f6c
00002f67: JUMPI
00002f68: PUSH1 0x00
00002f6a: DUP1
00002f6b: REVERT
00002f6c: JUMPDEST
00002f6d: PUSH2 0x2f78
00002f70: DUP11
00002f71: DUP4
00002f72: DUP12
00002f73: ADD
00002f74: PUSH2 0x2d19
00002f77: JUMP
00002f78: JUMPDEST
00002f79: SWAP1
00002f7a: SWAP9
00002f7b: POP
00002f7c: SWAP7
00002f7d: POP
00002f7e: PUSH1 0x20
00002f80: DUP10
00002f81: ADD
00002f82: CALLDATALOAD
00002f83: SWAP2
00002f84: POP
00002f85: DUP1
00002f86: DUP3
00002f87: GT
00002f88: ISZERO
00002f89: PUSH2 0x2f91
00002f8c: JUMPI
00002f8d: PUSH1 0x00
00002f8f: DUP1
00002f90: REVERT
00002f91: JUMPDEST
00002f92: PUSH2 0x2f9d
00002f95: DUP11
00002f96: DUP4
00002f97: DUP12
00002f98: ADD
00002f99: PUSH2 0x2d19
00002f9c: JUMP
00002f9d: JUMPDEST
00002f9e: SWAP1
00002f9f: SWAP7
00002fa0: POP
00002fa1: SWAP5
00002fa2: POP
00002fa3: PUSH1 0x40
00002fa5: DUP10
00002fa6: ADD
00002fa7: CALLDATALOAD
00002fa8: SWAP2
00002fa9: POP
00002faa: DUP1
00002fab: DUP3
00002fac: GT
00002fad: ISZERO
00002fae: PUSH2 0x2fb6
00002fb1: JUMPI
00002fb2: PUSH1 0x00
00002fb4: DUP1
00002fb5: REVERT
00002fb6: JUMPDEST
00002fb7: POP
00002fb8: PUSH2 0x2fc3
00002fbb: DUP10
00002fbc: DUP3
00002fbd: DUP11
00002fbe: ADD
00002fbf: PUSH2 0x2d19
00002fc2: JUMP
00002fc3: JUMPDEST
00002fc4: SWAP8
00002fc5: SWAP11
00002fc6: SWAP7
00002fc7: SWAP10
00002fc8: POP
00002fc9: SWAP5
00002fca: SWAP8
00002fcb: POP
00002fcc: SWAP3
00002fcd: SWAP6
00002fce: SWAP4
00002fcf: SWAP5
00002fd0: SWAP3
00002fd1: POP
00002fd2: POP
00002fd3: POP
00002fd4: JUMP
00002fd5: JUMPDEST
00002fd6: PUSH1 0x00
00002fd8: DUP1
00002fd9: PUSH1 0x00
00002fdb: PUSH1 0x40
00002fdd: DUP5
00002fde: DUP7
00002fdf: SUB
00002fe0: SLT
00002fe1: ISZERO
00002fe2: PUSH2 0x2fea
00002fe5: JUMPI
00002fe6: PUSH1 0x00
00002fe8: DUP1
00002fe9: REVERT
00002fea: JUMPDEST
00002feb: DUP4
00002fec: CALLDATALOAD
00002fed: PUSH8 0xffffffffffffffff
00002ff6: DUP2
00002ff7: GT
00002ff8: ISZERO
00002ff9: PUSH2 0x3001
00002ffc: JUMPI
00002ffd: PUSH1 0x00
00002fff: DUP1
00003000: REVERT
00003001: JUMPDEST
00003002: PUSH2 0x300d
00003005: DUP7
00003006: DUP3
00003007: DUP8
00003008: ADD
00003009: PUSH2 0x2d19
0000300c: JUMP
0000300d: JUMPDEST
0000300e: SWAP1
0000300f: SWAP5
00003010: POP
00003011: SWAP3
00003012: POP
00003013: POP
00003014: PUSH1 0x20
00003016: DUP5
00003017: ADD
00003018: CALLDATALOAD
00003019: PUSH2 0x2d0e
0000301c: DUP2
0000301d: PUSH2 0x2da0
00003020: JUMP
00003021: JUMPDEST
00003022: PUSH1 0x00
00003024: DUP1
00003025: PUSH1 0x00
00003027: DUP1
00003028: PUSH1 0x80
0000302a: DUP6
0000302b: DUP8
0000302c: SUB
0000302d: SLT
0000302e: ISZERO
0000302f: PUSH2 0x3037
00003032: JUMPI
00003033: PUSH1 0x00
00003035: DUP1
00003036: REVERT
00003037: JUMPDEST
00003038: DUP5
00003039: CALLDATALOAD
0000303a: PUSH2 0x3042
0000303d: DUP2
0000303e: PUSH2 0x2bc9
00003041: JUMP
00003042: JUMPDEST
00003043: SWAP7
00003044: PUSH1 0x20
00003046: DUP7
00003047: ADD
00003048: CALLDATALOAD
00003049: SWAP7
0000304a: POP
0000304b: PUSH1 0x40
0000304d: DUP7
0000304e: ADD
0000304f: CALLDATALOAD
00003050: SWAP6
00003051: PUSH1 0x60
00003053: ADD
00003054: CALLDATALOAD
00003055: SWAP5
00003056: POP
00003057: SWAP3
00003058: POP
00003059: POP
0000305a: POP
0000305b: JUMP
0000305c: JUMPDEST
0000305d: PUSH1 0x00
0000305f: DUP1
00003060: PUSH1 0x40
00003062: DUP4
00003063: DUP6
00003064: SUB
00003065: SLT
00003066: ISZERO
00003067: PUSH2 0x306f
0000306a: JUMPI
0000306b: PUSH1 0x00
0000306d: DUP1
0000306e: REVERT
0000306f: JUMPDEST
00003070: DUP3
00003071: CALLDATALOAD
00003072: PUSH2 0x307a
00003075: DUP2
00003076: PUSH2 0x2bc9
00003079: JUMP
0000307a: JUMPDEST
0000307b: SWAP5
0000307c: PUSH1 0x20
0000307e: SWAP4
0000307f: SWAP1
00003080: SWAP4
00003081: ADD
00003082: CALLDATALOAD
00003083: SWAP4
00003084: POP
00003085: POP
00003086: POP
00003087: JUMP
00003088: JUMPDEST
00003089: PUSH1 0x00
0000308b: DUP1
0000308c: PUSH1 0x00
0000308e: DUP1
0000308f: PUSH1 0x00
00003091: DUP1
00003092: PUSH1 0xa0
00003094: DUP8
00003095: DUP10
00003096: SUB
00003097: SLT
00003098: ISZERO
00003099: PUSH2 0x30a1
0000309c: JUMPI
0000309d: PUSH1 0x00
0000309f: DUP1
000030a0: REVERT
000030a1: JUMPDEST
000030a2: DUP7
000030a3: CALLDATALOAD
000030a4: PUSH8 0xffffffffffffffff
000030ad: DUP2
000030ae: GT
000030af: ISZERO
000030b0: PUSH2 0x30b8
000030b3: JUMPI
000030b4: PUSH1 0x00
000030b6: DUP1
000030b7: REVERT
000030b8: JUMPDEST
000030b9: PUSH2 0x30c4
000030bc: DUP10
000030bd: DUP3
000030be: DUP11
000030bf: ADD
000030c0: PUSH2 0x2c24
000030c3: JUMP
000030c4: JUMPDEST
000030c5: SWAP1
000030c6: SWAP8
000030c7: POP
000030c8: SWAP6
000030c9: POP
000030ca: POP
000030cb: PUSH1 0x20
000030cd: DUP8
000030ce: ADD
000030cf: CALLDATALOAD
000030d0: PUSH2 0x30d8
000030d3: DUP2
000030d4: PUSH2 0x2bc9
000030d7: JUMP
000030d8: JUMPDEST
000030d9: SWAP4
000030da: POP
000030db: PUSH1 0x40
000030dd: DUP8
000030de: ADD
000030df: CALLDATALOAD
000030e0: PUSH2 0x30e8
000030e3: DUP2
000030e4: PUSH2 0x2bc9
000030e7: JUMP
000030e8: JUMPDEST
000030e9: SWAP6
000030ea: SWAP9
000030eb: SWAP5
000030ec: SWAP8
000030ed: POP
000030ee: SWAP3
000030ef: SWAP6
000030f0: PUSH1 0x60
000030f2: DUP2
000030f3: ADD
000030f4: CALLDATALOAD
000030f5: SWAP5
000030f6: PUSH1 0x80
000030f8: SWAP1
000030f9: SWAP2
000030fa: ADD
000030fb: CALLDATALOAD
000030fc: SWAP4
000030fd: POP
000030fe: SWAP2
000030ff: POP
00003100: POP
00003101: JUMP
00003102: JUMPDEST
00003103: PUSH1 0x00
00003105: DUP1
00003106: PUSH1 0x00
00003108: DUP1
00003109: PUSH1 0x00
0000310b: DUP1
0000310c: PUSH1 0xa0
0000310e: DUP8
0000310f: DUP10
00003110: SUB
00003111: SLT
00003112: ISZERO
00003113: PUSH2 0x311b
00003116: JUMPI
00003117: PUSH1 0x00
00003119: DUP1
0000311a: REVERT
0000311b: JUMPDEST
0000311c: DUP7
0000311d: CALLDATALOAD
0000311e: PUSH2 0x3126
00003121: DUP2
00003122: PUSH2 0x2bc9
00003125: JUMP
00003126: JUMPDEST
00003127: SWAP6
00003128: POP
00003129: PUSH1 0x20
0000312b: DUP8
0000312c: ADD
0000312d: CALLDATALOAD
0000312e: PUSH2 0x3136
00003131: DUP2
00003132: PUSH2 0x2bc9
00003135: JUMP
00003136: JUMPDEST
00003137: SWAP5
00003138: POP
00003139: PUSH1 0x40
0000313b: DUP8
0000313c: ADD
0000313d: CALLDATALOAD
0000313e: PUSH2 0x3146
00003141: DUP2
00003142: PUSH2 0x2bc9
00003145: JUMP
00003146: JUMPDEST
00003147: SWAP4
00003148: POP
00003149: PUSH1 0x60
0000314b: DUP8
0000314c: ADD
0000314d: CALLDATALOAD
0000314e: PUSH2 0x3156
00003151: DUP2
00003152: PUSH2 0x2bc9
00003155: JUMP
00003156: JUMPDEST
00003157: SWAP3
00003158: POP
00003159: PUSH1 0x80
0000315b: DUP8
0000315c: ADD
0000315d: CALLDATALOAD
0000315e: PUSH8 0xffffffffffffffff
00003167: DUP2
00003168: GT
00003169: ISZERO
0000316a: PUSH2 0x3172
0000316d: JUMPI
0000316e: PUSH1 0x00
00003170: DUP1
00003171: REVERT
00003172: JUMPDEST
00003173: PUSH2 0x2fc3
00003176: DUP10
00003177: DUP3
00003178: DUP11
00003179: ADD
0000317a: PUSH2 0x2d19
0000317d: JUMP
0000317e: JUMPDEST
0000317f: PUSH1 0x00
00003181: DUP1
00003182: PUSH1 0x00
00003184: PUSH1 0x60
00003186: DUP5
00003187: DUP7
00003188: SUB
00003189: SLT
0000318a: ISZERO
0000318b: PUSH2 0x3193
0000318e: JUMPI
0000318f: PUSH1 0x00
00003191: DUP1
00003192: REVERT
00003193: JUMPDEST
00003194: DUP4
00003195: CALLDATALOAD
00003196: PUSH2 0x319e
00003199: DUP2
0000319a: PUSH2 0x2bc9
0000319d: JUMP
0000319e: JUMPDEST
0000319f: SWAP3
000031a0: POP
000031a1: PUSH1 0x20
000031a3: DUP5
000031a4: ADD
000031a5: CALLDATALOAD
000031a6: PUSH2 0x31ae
000031a9: DUP2
000031aa: PUSH2 0x2bc9
000031ad: JUMP
000031ae: JUMPDEST
000031af: SWAP2
000031b0: POP
000031b1: PUSH1 0x40
000031b3: DUP5
000031b4: ADD
000031b5: CALLDATALOAD
000031b6: PUSH2 0x2d0e
000031b9: DUP2
000031ba: PUSH2 0x2bc9
000031bd: JUMP
000031be: JUMPDEST
000031bf: PUSH1 0x00
000031c1: PUSH1 0x20
000031c3: DUP3
000031c4: DUP5
000031c5: SUB
000031c6: SLT
000031c7: ISZERO
000031c8: PUSH2 0x31d0
000031cb: JUMPI
000031cc: PUSH1 0x00
000031ce: DUP1
000031cf: REVERT
000031d0: JUMPDEST
000031d1: POP
000031d2: MLOAD
000031d3: SWAP2
000031d4: SWAP1
000031d5: POP
000031d6: JUMP
000031d7: JUMPDEST
000031d8: PUSH12 0xffffffffffffffffffffffff
000031e5: NOT
000031e6: PUSH1 0x60
000031e8: SWAP7
000031e9: DUP8
000031ea: SHL
000031eb: DUP2
000031ec: AND
000031ed: DUP3
000031ee: MSTORE
000031ef: SWAP5
000031f0: SWAP1
000031f1: SWAP6
000031f2: SHL
000031f3: SWAP1
000031f4: SWAP4
000031f5: AND
000031f6: PUSH1 0x14
000031f8: DUP6
000031f9: ADD
000031fa: MSTORE
000031fb: PUSH1 0x28
000031fd: DUP5
000031fe: ADD
000031ff: SWAP2
00003200: SWAP1
00003201: SWAP2
00003202: MSTORE
00003203: PUSH1 0x48
00003205: DUP4
00003206: ADD
00003207: MSTORE
00003208: PUSH1 0x68
0000320a: DUP3
0000320b: ADD
0000320c: MSTORE
0000320d: PUSH1 0x88
0000320f: ADD
00003210: SWAP1
00003211: JUMP
00003212: JUMPDEST
00003213: PUSH4 0x4e487b71
00003218: PUSH1 0xe0
0000321a: SHL
0000321b: PUSH1 0x00
0000321d: MSTORE
0000321e: PUSH1 0x11
00003220: PUSH1 0x04
00003222: MSTORE
00003223: PUSH1 0x24
00003225: PUSH1 0x00
00003227: REVERT
00003228: JUMPDEST
00003229: DUP1
0000322a: DUP3
0000322b: ADD
0000322c: DUP1
0000322d: DUP3
0000322e: GT
0000322f: ISZERO
00003230: PUSH2 0x323b
00003233: JUMPI
00003234: PUSH2 0x323b
00003237: PUSH2 0x3212
0000323a: JUMP
0000323b: JUMPDEST
0000323c: SWAP3
0000323d: SWAP2
0000323e: POP
0000323f: POP
00003240: JUMP
00003241: JUMPDEST
00003242: PUSH4 0x4e487b71
00003247: PUSH1 0xe0
00003249: SHL
0000324a: PUSH1 0x00
0000324c: MSTORE
0000324d: PUSH1 0x32
0000324f: PUSH1 0x04
00003251: MSTORE
00003252: PUSH1 0x24
00003254: PUSH1 0x00
00003256: REVERT
00003257: JUMPDEST
00003258: DUP1
00003259: DUP3
0000325a: MUL
0000325b: DUP2
0000325c: ISZERO
0000325d: DUP3
0000325e: DUP3
0000325f: DIV
00003260: DUP5
00003261: EQ
00003262: OR
00003263: PUSH2 0x323b
00003266: JUMPI
00003267: PUSH2 0x323b
0000326a: PUSH2 0x3212
0000326d: JUMP
0000326e: JUMPDEST
0000326f: PUSH1 0x00
00003271: DUP3
00003272: PUSH2 0x328b
00003275: JUMPI
00003276: PUSH4 0x4e487b71
0000327b: PUSH1 0xe0
0000327d: SHL
0000327e: PUSH1 0x00
00003280: MSTORE
00003281: PUSH1 0x12
00003283: PUSH1 0x04
00003285: MSTORE
00003286: PUSH1 0x24
00003288: PUSH1 0x00
0000328a: REVERT
0000328b: JUMPDEST
0000328c: POP
0000328d: DIV
0000328e: SWAP1
0000328f: JUMP
00003290: JUMPDEST
00003291: DUP2
00003292: DUP2
00003293: SUB
00003294: DUP2
00003295: DUP2
00003296: GT
00003297: ISZERO
00003298: PUSH2 0x323b
0000329b: JUMPI
0000329c: PUSH2 0x323b
0000329f: PUSH2 0x3212
000032a2: JUMP
000032a3: JUMPDEST
000032a4: SWAP3
000032a5: DUP4
000032a6: MSTORE
000032a7: PUSH1 0x20
000032a9: DUP4
000032aa: ADD
000032ab: SWAP2
000032ac: SWAP1
000032ad: SWAP2
000032ae: MSTORE
000032af: PUSH1 0x01
000032b1: PUSH1 0x01
000032b3: PUSH1 0xa0
000032b5: SHL
000032b6: SUB
000032b7: AND
000032b8: PUSH1 0x40
000032ba: DUP3
000032bb: ADD
000032bc: MSTORE
000032bd: PUSH1 0x60
000032bf: ADD
000032c0: SWAP1
000032c1: JUMP
000032c2: JUMPDEST
000032c3: PUSH1 0x00
000032c5: PUSH1 0x20
000032c7: DUP3
000032c8: DUP5
000032c9: SUB
000032ca: SLT
000032cb: ISZERO
000032cc: PUSH2 0x32d4
000032cf: JUMPI
000032d0: PUSH1 0x00
000032d2: DUP1
000032d3: REVERT
000032d4: JUMPDEST
000032d5: DUP2
000032d6: MLOAD
000032d7: PUSH2 0x2bfb
000032da: DUP2
000032db: PUSH2 0x2da0
000032de: JUMP
000032df: JUMPDEST
000032e0: PUSH1 0x00
000032e2: JUMPDEST
000032e3: DUP4
000032e4: DUP2
000032e5: LT
000032e6: ISZERO
000032e7: PUSH2 0x32fa
000032ea: JUMPI
000032eb: DUP2
000032ec: DUP2
000032ed: ADD
000032ee: MLOAD
000032ef: DUP4
000032f0: DUP3
000032f1: ADD
000032f2: MSTORE
000032f3: PUSH1 0x20
000032f5: ADD
000032f6: PUSH2 0x32e2
000032f9: JUMP
000032fa: JUMPDEST
000032fb: POP
000032fc: POP
000032fd: PUSH1 0x00
000032ff: SWAP2
00003300: ADD
00003301: MSTORE
00003302: JUMP
00003303: JUMPDEST
00003304: PUSH1 0x00
00003306: DUP2
00003307: MLOAD
00003308: DUP1
00003309: DUP5
0000330a: MSTORE
0000330b: PUSH2 0x331b
0000330e: DUP2
0000330f: PUSH1 0x20
00003311: DUP7
00003312: ADD
00003313: PUSH1 0x20
00003315: DUP7
00003316: ADD
00003317: PUSH2 0x32df
0000331a: JUMP
0000331b: JUMPDEST
0000331c: PUSH1 0x1f
0000331e: ADD
0000331f: PUSH1 0x1f
00003321: NOT
00003322: AND
00003323: SWAP3
00003324: SWAP1
00003325: SWAP3
00003326: ADD
00003327: PUSH1 0x20
00003329: ADD
0000332a: SWAP3
0000332b: SWAP2
0000332c: POP
0000332d: POP
0000332e: JUMP
0000332f: JUMPDEST
00003330: DUP3
00003331: DUP2
00003332: MSTORE
00003333: PUSH1 0x40
00003335: PUSH1 0x20
00003337: DUP3
00003338: ADD
00003339: MSTORE
0000333a: PUSH1 0x00
0000333c: PUSH2 0x29ee
0000333f: PUSH1 0x40
00003341: DUP4
00003342: ADD
00003343: DUP5
00003344: PUSH2 0x3303
00003347: JUMP
00003348: JUMPDEST
00003349: PUSH1 0x40
0000334b: DUP2
0000334c: MSTORE
0000334d: PUSH1 0x00
0000334f: PUSH2 0x335b
00003352: PUSH1 0x40
00003354: DUP4
00003355: ADD
00003356: DUP6
00003357: PUSH2 0x3303
0000335a: JUMP
0000335b: JUMPDEST
0000335c: SWAP1
0000335d: POP
0000335e: DUP3
0000335f: PUSH1 0x20
00003361: DUP4
00003362: ADD
00003363: MSTORE
00003364: SWAP4
00003365: SWAP3
00003366: POP
00003367: POP
00003368: POP
00003369: JUMP
0000336a: JUMPDEST
0000336b: PUSH1 0x20
0000336d: DUP1
0000336e: DUP3
0000336f: MSTORE
00003370: PUSH1 0x2b
00003372: SWAP1
00003373: DUP3
00003374: ADD
00003375: MSTORE
00003376: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
00003397: PUSH1 0x40
00003399: DUP3
0000339a: ADD
0000339b: MSTORE
0000339c: PUSH11 0x6e697469616c697a696e67
000033a8: PUSH1 0xa8
000033aa: SHL
000033ab: PUSH1 0x60
000033ad: DUP3
000033ae: ADD
000033af: MSTORE
000033b0: PUSH1 0x80
000033b2: ADD
000033b3: SWAP1
000033b4: JUMP
000033b5: JUMPDEST
000033b6: PUSH1 0x00
000033b8: DUP3
000033b9: MLOAD
000033ba: PUSH2 0x33c7
000033bd: DUP2
000033be: DUP5
000033bf: PUSH1 0x20
000033c1: DUP8
000033c2: ADD
000033c3: PUSH2 0x32df
000033c6: JUMP
000033c7: JUMPDEST
000033c8: SWAP2
000033c9: SWAP1
000033ca: SWAP2
000033cb: ADD
000033cc: SWAP3
000033cd: SWAP2
000033ce: POP
000033cf: POP
000033d0: JUMP
000033d1: JUMPDEST
000033d2: PUSH1 0x20
000033d4: DUP2
000033d5: MSTORE
000033d6: PUSH1 0x00
000033d8: PUSH2 0x2bfb
000033db: PUSH1 0x20
000033dd: DUP4
000033de: ADD
000033df: DUP5
000033e0: PUSH2 0x3303
000033e3: JUMP
000033e4: INVALID
000033e5: LOG2
000033e6: PUSH5 0x6970667358
000033ec: UNKNOWN(0x22)
000033ed: SLT
000033ee: KECCAK256
000033ef: GT
000033f0: UNKNOWN(0xE9)
000033f1: PUSH13 0x20b65180197b84b48e0f2651c3
000033ff: DIV
00003400: SWAP16
00003401: UNKNOWN(0x24)
00003402: SDIV
00003403: UNKNOWN(0xC7)
00003404: DUP11
00003405: UNKNOWN(0xE8)
00003406: XOR
00003407: UNKNOWN(0x0E)
00003408: UNKNOWN(0x21)
00003409: UNKNOWN(0xAA)
0000340a: BLOBBASEFEE
0000340b: LOG3
0000340c: UNKNOWN(0xA5)
0000340d: UNKNOWN(0xB3)
0000340e: UNKNOWN(0xC8)
0000340f: PUSH5 0x736f6c6343
00003415: STOP
00003416: ADDMOD
00003417: AND
00003418: STOP
00003419: CALLER

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: 0x2e24a0c90dd1ea7d1161ffa11c67f114b8e72562e69634ed5433389367649139
call_targets: 0x088884253ac8fbda22b40b40104a891f8c44337d
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x2e24a0c90dd1ea7d1161ffa11c67f114b8e72562e69634ed5433389367649139",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x088884253ac8fbda22b40b40104a891f8c44337d"
    ],
    "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": "0xe79994cb",
            "selector": "0xe79994cb",
            "calldata_variants": [
                "0xe79994cb",
                "0xe79994cb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xed421e14",
            "selector": "0xed421e14",
            "calldata_variants": [
                "0xed421e14",
                "0xed421e140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf4887f15",
            "selector": "0xf4887f15",
            "calldata_variants": [
                "0xf4887f15",
                "0xf4887f150000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6eb192d",
            "selector": "0xf6eb192d",
            "calldata_variants": [
                "0xf6eb192d",
                "0xf6eb192d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8453e7c",
            "selector": "0xf8453e7c",
            "calldata_variants": [
                "0xf8453e7c",
                "0xf8453e7c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf92f9e10",
            "selector": "0xf92f9e10",
            "calldata_variants": [
                "0xf92f9e10",
                "0xf92f9e100000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xccbba0c0",
            "selector": "0xccbba0c0",
            "calldata_variants": [
                "0xccbba0c0",
                "0xccbba0c00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xce206dc6",
            "selector": "0xce206dc6",
            "calldata_variants": [
                "0xce206dc6",
                "0xce206dc60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 9092,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10970,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x2e24a0c90dd1ea7d1161ffa11c67f114b8e72562e69634ed5433389367649139
call_targets: 0x088884253ac8fbda22b40b40104a891f8c44337d
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x2e24a0c90dd1ea7d1161ffa11c67f114b8e72562e69634ed5433389367649139",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x088884253ac8fbda22b40b40104a891f8c44337d"
    ],
    "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": "0xe79994cb",
            "selector": "0xe79994cb",
            "calldata_variants": [
                "0xe79994cb",
                "0xe79994cb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xed421e14",
            "selector": "0xed421e14",
            "calldata_variants": [
                "0xed421e14",
                "0xed421e140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf4887f15",
            "selector": "0xf4887f15",
            "calldata_variants": [
                "0xf4887f15",
                "0xf4887f150000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6eb192d",
            "selector": "0xf6eb192d",
            "calldata_variants": [
                "0xf6eb192d",
                "0xf6eb192d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8453e7c",
            "selector": "0xf8453e7c",
            "calldata_variants": [
                "0xf8453e7c",
                "0xf8453e7c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf92f9e10",
            "selector": "0xf92f9e10",
            "calldata_variants": [
                "0xf92f9e10",
                "0xf92f9e100000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xccbba0c0",
            "selector": "0xccbba0c0",
            "calldata_variants": [
                "0xccbba0c0",
                "0xccbba0c00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xce206dc6",
            "selector": "0xce206dc6",
            "calldata_variants": [
                "0xce206dc6",
                "0xce206dc60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 9092,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10970,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 12
}