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

Analysis Run

5dbbf612-9fb9-4a8b-aea8-c0e0b8265b5b

complete
Chain ID
1
Address
Block Number
Created
Mon, Jan 5, 2026 8:33 PM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
31752 report.consolidate complete 1 / 1 3 months ago
95935 artifact.fetch complete 1 / 3 2 weeks ago
95936 tool.cast_disasm complete 1 / 3 2 weeks ago
95937 analysis.bundle complete 1 / 3 2 weeks ago
95938 capability.graph complete 1 / 3 2 weeks ago
95939 detector.run complete 1 / 3 2 weeks ago
95940 validation.fork complete 1 / 3 2 weeks ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
0
No findings?
yes
Summary
No concrete, exploitable value-extraction path identified from the provided runtime bytecode; external calls and state-changing paths appear gated by ownership/router checks, and there is no delegatecall/selfdestruct or obvious unrestricted value transfer.
View stderr
[codex:341867] OpenAI Codex v0.77.0 (research preview)
[codex:341867] --------
[codex:341867] workdir: /tmp/codex-multi-gnof1eax
[codex:341867] model: gpt-5.2-codex
[codex:341867] provider: openai
[codex:341867] approval: never
[codex:341867] sandbox: read-only
[codex:341867] reasoning effort: xhigh
[codex:341867] reasoning summaries: auto
[codex:341867] session id: 019b8fd6-a5b2-7c70-8d77-248009a71dc1
[codex:341867] --------
[codex:341867] user
[codex:341867] 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:341867] 
[codex:341867] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:341867] 
[codex:341867] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:341867] - Gas inefficiency, code quality, or best practices
[codex:341867] - Theoretical vulnerabilities without a clear extraction path
[codex:341867] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:341867] - Issues requiring social engineering or off-chain coordination
[codex:341867] 
[codex:341867] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:341867] - CALL/DELEGATECALL with controllable destination or calldata
[codex:341867] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:341867] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:341867] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:341867] - External calls before state updates (reentrancy)
[codex:341867] - SELFDESTRUCT with controllable beneficiary
[codex:341867] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:341867] 
[codex:341867] For each finding, you MUST explain:
[codex:341867] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:341867] 2. The concrete sequence of transactions to extract value
[codex:341867] 3. Why you believe this is exploitable (not just suspicious)
[codex:341867] 
[codex:341867] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:341867] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:341867] 
[codex:341867] Output MUST be valid JSON matching the provided schema.
[codex:341867] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:341867] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:341867] mcp startup: no servers
[codex:341867] 
[codex:341867] thinking
[codex:341867] **Planning to read BYTECODE_BUNDLE.txt**
[codex:341867] exec
[codex:341867] /bin/bash -lc ls in /tmp/codex-multi-gnof1eax succeeded in 6ms:
[codex:341867] BYTECODE_BUNDLE.txt
[codex:341867] codex-output-schema.json
[codex:341867] 
[codex:341867] thinking
[codex:341867] **Reading file**
[codex:341867] exec
[codex:341867] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-gnof1eax succeeded in 5ms:
[codex:341867] Runtime bytecode bundle for best-effort auditing.
[codex:341867] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:341867] 
[codex:341867] FILE: runtime_bytecode.hex
[codex:341867] 0x6080604052600436106101ab576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062dc41e6146101b057806303a896a1146101ed57806304fdc5621461022a5780630525ed66146102675780630992b119146102a457806309cc1440146102e15780631920427b1461031e5780632762dd8c1461035c57806331da41651461039957806344ee8753146103d6578063488571521461040157806352ddbfc11461042c578063583b7676146104695780635cb9a150146104945780635e929e6a146104d15780635f0280ba1461050e578063715018a61461054b578063741bef1a146105625780637ae2b5c71461058d5780638da5cb5b146105ca578063977a5e64146105f557806399114d8414610632578063a354ca441461066f578063abf410e5146106ac578063b2016bd4146106d7578063b281932214610702578063b54790d81461073f578063c99125941461076a578063db2f90ae146107a7578063dbc162de146107d0578063ee733bb7146107fb578063f08499a114610838578063f2494eaf14610863578063f2fde38b146108a0575b600080fd5b3480156101bc57600080fd5b506101d760048036036101d29190810190612da3565b6108c9565b6040516101e4919061321c565b60405180910390f35b3480156101f957600080fd5b50610214600480360361020f9190810190612da3565b6108e5565b60405161022191906132fe565b60405180910390f35b34801561023657600080fd5b50610251600480360361024c9190810190612da3565b61090a565b60405161025e919061321c565b60405180910390f35b34801561027357600080fd5b5061028e60048036036102899190810190612da3565b6109d7565b60405161029b91906132fe565b60405180910390f35b3480156102b057600080fd5b506102cb60048036036102c69190810190612fc4565b6109ef565b6040516102d891906132fe565b60405180910390f35b3480156102ed57600080fd5b5061030860048036036103039190810190612da3565b610a21565b604051610315919061321c565b60405180910390f35b34801561032a57600080fd5b5061034560048036036103409190810190612da3565b610a34565b604051610353929190613319565b60405180910390f35b34801561036857600080fd5b50610383600480360361037e9190810190612da3565b610a78565b60405161039091906132fe565b60405180910390f35b3480156103a557600080fd5b506103c060048036036103bb9190810190612da3565b610c0b565b6040516103cd919061321c565b60405180910390f35b3480156103e257600080fd5b506103eb610c2d565b6040516103f891906132fe565b60405180910390f35b34801561040d57600080fd5b50610416610c32565b60405161042391906132fe565b60405180910390f35b34801561043857600080fd5b50610453600480360361044e9190810190612fc4565b610c37565b60405161046091906132fe565b60405180910390f35b34801561047557600080fd5b5061047e610c69565b60405161048b91906132fe565b60405180910390f35b3480156104a057600080fd5b506104bb60048036036104b69190810190612f5f565b610c6f565b6040516104c891906132fe565b60405180910390f35b3480156104dd57600080fd5b506104f860048036036104f39190810190612da3565b610cb4565b60405161050591906132fe565b60405180910390f35b34801561051a57600080fd5b5061053560048036036105309190810190612e31565b610cca565b604051610542919061321c565b60405180910390f35b34801561055757600080fd5b50610560610f0e565b005b34801561056e57600080fd5b50610577611013565b6040516105849190613288565b60405180910390f35b34801561059957600080fd5b506105b460048036036105af9190810190612fc4565b611039565b6040516105c191906132fe565b60405180910390f35b3480156105d657600080fd5b506105df611052565b6040516105ec9190613178565b60405180910390f35b34801561060157600080fd5b5061061c60048036036106179190810190612df5565b611078565b604051610629919061321c565b60405180910390f35b34801561063e57600080fd5b5061065960048036036106549190810190612ea8565b6111d1565b60405161066691906132fe565b60405180910390f35b34801561067b57600080fd5b5061069660048036036106919190810190612da3565b61137c565b6040516106a391906132e3565b60405180910390f35b3480156106b857600080fd5b506106c1611525565b6040516106ce9190613252565b60405180910390f35b3480156106e357600080fd5b506106ec61154a565b6040516106f9919061326d565b60405180910390f35b34801561070e57600080fd5b5061072960048036036107249190810190612da3565b611570565b604051610736919061321c565b60405180910390f35b34801561074b57600080fd5b5061075461158d565b60405161076191906132fe565b60405180910390f35b34801561077657600080fd5b50610791600480360361078c9190810190612da3565b611593565b60405161079e91906132fe565b60405180910390f35b3480156107b357600080fd5b506107ce60048036036107c99190810190612ea8565b61175d565b005b3480156107dc57600080fd5b506107e56117ed565b6040516107f2919061326d565b60405180910390f35b34801561080757600080fd5b50610822600480360361081d9190810190612da3565b611813565b60405161082f919061321c565b60405180910390f35b34801561084457600080fd5b5061084d61188a565b60405161085a91906132fe565b60405180910390f35b34801561086f57600080fd5b5061088a60048036036108859190810190612da3565b611892565b60405161089791906132fe565b60405180910390f35b3480156108ac57600080fd5b506108c760048036036108c29190810190612d28565b6118d7565b005b60006108d482611593565b6108dd83610cb4565b109050919050565b6000600860008360001916600019168152602001908152602001600020549050919050565b6000610914612baf565b61091d8361193f565b90506109298382611b17565b151561093857600091506109d1565b61094c833383600001518460200151611baf565b151561095757600080fd5b610965838260200151611d0e565b151561097057600080fd5b61097983611f4a565b151561098457600080fd5b82600019167f6c55695f76744f2886f83cccde28ea951d8a6f689fe34413db04416110af850f8260000151836020015184604001516040516109c893929190613342565b60405180910390a25b50919050565b60086020528060005260406000206000915090505481565b6000610a1962015180610a0b858561200990919063ffffffff16565b61202290919063ffffffff16565b905092915050565b6000610a2c82611813565b159050919050565b60066020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b6000610a82612bd1565b6000610a8d84612038565b91506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f866f736040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610b1457600080fd5b505af1158015610b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b4c9190810190612f0d565b73ffffffffffffffffffffffffffffffffffffffff1663d69dbf63856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610ba09190613237565b602060405180830381600087803b158015610bba57600080fd5b505af1158015610bce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bf29190810190612f9b565b9050610c02818360000151610c37565b92505050919050565b6000610c16826108c9565b80610c265750610c2582611570565b5b9050919050565b601281565b600281565b6000610c61610c5262015180846121b890919063ffffffff16565b846121f090919063ffffffff16565b905092915050565b60025481565b6000610cac610c896004548461220c90919063ffffffff16565b610c9e6004548661220c90919063ffffffff16565b61200990919063ffffffff16565b905092915050565b6000610cbf82612038565b602001519050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636fa9d0566040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610d5257600080fd5b505af1158015610d66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d8a9190810190612f36565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df0906132a3565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515610e595760009150610f04565b610e8784600860008a60001916600019168152602001908152602001600020546121f090919063ffffffff16565b60086000896000191660001916815260200190815260200160002081905550610eb887610eb389610a78565b6111d1565b9050806008600089600019166000191681526020019081526020016000205410158015610eea5750610ee987611813565b5b15610eff57610ef887611f4a565b9150610f04565b600191505b5095945050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f6a57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000818310611048578161104a565b825b905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611082612bd1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663079dd4b76040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561110757600080fd5b505af115801561111b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061113f9190810190612ee4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a5906132c3565b60405180910390fd5b6111b784612038565b90506111c884826060015185612254565b91505092915050565b60006111db612bd1565b60006111e685612038565b91506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f866f736040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561126d57600080fd5b505af1158015611281573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112a59190810190612f0d565b73ffffffffffffffffffffffffffffffffffffffff1663d69dbf63866040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016112f99190613237565b602060405180830381600087803b15801561131357600080fd5b505af1158015611327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061134b9190810190612f9b565b9050816000015161135c82866109ef565b10151561136f5781604001519250611374565b600092505b505092915050565b611384612bfa565b6000806000611391612bfa565b600061139b612bfa565b6113a3612bfa565b60006113ad612bfa565b600254600a0a9850600454600a0a9750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166357de26a46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561144357600080fd5b505af1158015611457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061147b9190810190612dcc565b60019004965060408051908101604052808881526020016012600a0a81525095506114a58b611892565b945060408051908101604052808681526020018a81525093506114d186856123e590919063ffffffff16565b9250600660008c6000191660001916815260200190815260200160002060000154915060408051908101604052808381526020018981525090506115158184612433565b9950505050505050505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061157b826108e5565b61158583426111d1565b119050919050565b60045481565b6000806000806115a1612bfa565b60006115ab612bfa565b6115b3612bfa565b60006115bd612bfa565b6115c5612bfa565b600254600a0a9950600454600a0a9850600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166357de26a46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561165b57600080fd5b505af115801561166f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116939190810190612dcc565b60019004975060408051908101604052808981526020016012600a0a81525096506116bd8c611892565b955060408051908101604052808781526020018b81525094506116e987866123e590919063ffffffff16565b9350600660008d6000191660001916815260200190815260200160002060000154925060408051908101604052808481526020018a8152509150611736828561249490919063ffffffff16565b905061174c60028261220c90919063ffffffff16565b9a5050505050505050505050919050565b600080339150309050611793600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683856124e2565b506117c583600660008760001916600019168152602001908152602001600020600001546121f090919063ffffffff16565b6006600086600019166000191681526020019081526020016000206000018190555050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff1660066000846000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6012600a0a81565b6000806000806118a185610a78565b92506118ad85846111d1565b91506118b8856108e5565b90506118cd818361200990919063ffffffff16565b9350505050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561193357600080fd5b61193c8161259d565b50565b611947612baf565b6000806000611954612bfa565b600061195e612bfa565b611966612bfa565b61196e612bfa565b6000600254600a0a9850600454600a0a9750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166357de26a46040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611a0657600080fd5b505af1158015611a1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a3e9190810190612dcc565b60019004965060408051908101604052808881526020016012600a0a8152509550600660008c600019166000191681526020019081526020016000206000015494506040805190810160405280868152602001898152509350611aa08b61137c565b9250611ab5868461249490919063ffffffff16565b9150611ac18484610c6f565b9050606060405190810160405280611ae46004548661220c90919063ffffffff16565b8152602001611afe6002548561220c90919063ffffffff16565b8152602001828152509950505050505050505050919050565b6000611b2c611b2584611813565b6004612699565b15611b3a5760009050611ba9565b611b4d611b4684610c0b565b6002612699565b15611b5b5760009050611ba9565b611b96611b8f600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163385602001516126f1565b6000612699565b15611ba45760009050611ba9565b600190505b92915050565b6000611be2836006600088600019166000191681526020019081526020016000206000015461200990919063ffffffff16565b60066000876000191660001916815260200190815260200160002060000181905550611c31600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685846124e2565b8015611d045750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611cb19291906131f3565b602060405180830381600087803b158015611ccb57600080fd5b505af1158015611cdf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d039190810190612d7a565b5b9050949350505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f866f736040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611d9657600080fd5b505af1158015611daa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dce9190810190612f0d565b73ffffffffffffffffffffffffffffffffffffffff1663ba20dda4856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611e229190613237565b602060405180830381600087803b158015611e3c57600080fd5b505af1158015611e50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e749190810190612d51565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611eef9291906131f3565b602060405180830381600087803b158015611f0957600080fd5b505af1158015611f1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f419190810190612d7a565b91505092915050565b6000611f558261285f565b15611fff57604080519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152506006600084600019166000191681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505060019050612004565b600090505b919050565b600082821115151561201757fe5b818303905092915050565b6000818381151561202f57fe5b04905092915050565b612040612bd1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f866f736040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156120c757600080fd5b505af11580156120db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506120ff9190810190612f0d565b73ffffffffffffffffffffffffffffffffffffffff1663314a522e846040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016121539190613237565b602060405180830381600087803b15801561216d57600080fd5b505af1158015612181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121a59190810190612dcc565b90506121b0816129be565b915050919050565b6000808314156121cb57600090506121ea565b81830290508183828115156121dc57fe5b041415156121e657fe5b8090505b92915050565b6000818301905082811015151561220357fe5b80905092915050565b60008061221884612aa7565b82600a0a905061224b846020015161223d8660000151846121b890919063ffffffff16565b61202290919063ffffffff16565b91505092915050565b60008061226a61226386610a21565b6003612699565b1561227857600091506123dd565b6122af6122a8600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685876126f1565b6001612699565b156122bd57600091506123dd565b30905060408051908101604052808581526020018473ffffffffffffffffffffffffffffffffffffffff168152506006600087600019166000191681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050508273ffffffffffffffffffffffffffffffffffffffff1685600019167f195d2e7855185ac08fef1e42ab0ccf60a6c8f79ba0af23b37c220eadf42ae9ea866040516123a591906132fe565b60405180910390a36123da600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684866124e2565b91505b509392505050565b6123ed612bfa565b61242b61240b836000015185600001516121b890919063ffffffff16565b612426846020015186602001516121b890919063ffffffff16565b612abb565b905092915050565b61243b612bfa565b600080612459846020015186600001516121b890919063ffffffff16565b9150612476856020015185600001516121b890919063ffffffff16565b9050808210156124885784925061248c565b8392505b505092915050565b61249c612bfa565b6124da6124ba836020015185600001516121b890919063ffffffff16565b6124d5846000015186602001516121b890919063ffffffff16565b612abb565b905092915050565b6000803090508473ffffffffffffffffffffffffffffffffffffffff166323b872dd8583866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401612541939291906131bc565b602060405180830381600087803b15801561255b57600080fd5b505af115801561256f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506125939190810190612d7a565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156125d957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008215156126e6578160048111156126ae57fe5b60ff167ff64a83c5d4d949675caf48520cc73c95b7d9a17ce71f39ba7695af5917d86eba60405160405180910390a2600190506126eb565b600090505b92915050565b600080309050828573ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161274d9190613178565b602060405180830381600087803b15801561276757600080fd5b505af115801561277b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061279f9190810190612f9b565b101580156128555750828573ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e86846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401612800929190613193565b602060405180830381600087803b15801561281a57600080fd5b505af115801561282e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128529190810190612f9b565b10155b9150509392505050565b600080600060066000856000191660001916815260200190815260200160002060000154915060066000856000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600060066000866000191660001916815260200190815260200160002060000181905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016129639291906131f3565b602060405180830381600087803b15801561297d57600080fd5b505af1158015612991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129b59190810190612d7a565b92505050919050565b6129c6612bd1565b6000806000807fff00000000000000000000000000000000000000000000000000000000000000600102861693507eff000000000000000000000000000000000000000000000000000000000000600102861692507dffffffffffffffffffffffffffffff000000000000000000000000000000600102861691506effffffffffffffffffffffffffffff60010286169050608060405190810160405280612a6f8660f8612b92565b8152602001612a7f8560f0612b92565b8152602001612a8f846078612b92565b81526020018260019004815250945050505050919050565b6000816020015114151515612ab857fe5b50565b612ac3612bfa565b600080838511612ad35783612ad5565b845b9150610100829060020a90049050600081141515612b10576001810190508085811515612afe57fe5b0494508084811515612b0c57fe5b0493505b60008414151515612b1d57fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84101515612b4857fe5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85101515612b7357fe5b6040805190810160405280868152602001858152509250505092915050565b60008160020a8360019004811515612ba657fe5b04905092915050565b6060604051908101604052806000815260200160008152602001600081525090565b608060405190810160405280600081526020016000815260200160008152602001600081525090565b604080519081016040528060008152602001600081525090565b6000612c2082356133e6565b905092915050565b6000612c3482516133e6565b905092915050565b6000612c488251613406565b905092915050565b6000612c5c8235613412565b905092915050565b6000612c708251613412565b905092915050565b6000612c84825161341c565b905092915050565b6000612c98825161342e565b905092915050565b6000612cac8251613440565b905092915050565b600060408284031215612cc657600080fd5b612cd06040613379565b90506000612ce084828501612d00565b6000830152506020612cf484828501612d00565b60208301525092915050565b6000612d0c8235613452565b905092915050565b6000612d208251613452565b905092915050565b600060208284031215612d3a57600080fd5b6000612d4884828501612c14565b91505092915050565b600060208284031215612d6357600080fd5b6000612d7184828501612c28565b91505092915050565b600060208284031215612d8c57600080fd5b6000612d9a84828501612c3c565b91505092915050565b600060208284031215612db557600080fd5b6000612dc384828501612c50565b91505092915050565b600060208284031215612dde57600080fd5b6000612dec84828501612c64565b91505092915050565b60008060408385031215612e0857600080fd5b6000612e1685828601612c50565b9250506020612e2785828601612c14565b9150509250929050565b600080600080600060a08688031215612e4957600080fd5b6000612e5788828901612c50565b9550506020612e6888828901612c14565b9450506040612e7988828901612c14565b9350506060612e8a88828901612d00565b9250506080612e9b88828901612c14565b9150509295509295909350565b60008060408385031215612ebb57600080fd5b6000612ec985828601612c50565b9250506020612eda85828601612d00565b9150509250929050565b600060208284031215612ef657600080fd5b6000612f0484828501612c78565b91505092915050565b600060208284031215612f1f57600080fd5b6000612f2d84828501612c8c565b91505092915050565b600060208284031215612f4857600080fd5b6000612f5684828501612ca0565b91505092915050565b60008060808385031215612f7257600080fd5b6000612f8085828601612cb4565b9250506040612f9185828601612cb4565b9150509250929050565b600060208284031215612fad57600080fd5b6000612fbb84828501612d14565b91505092915050565b60008060408385031215612fd757600080fd5b6000612fe585828601612d00565b9250506020612ff685828601612d00565b9150509250929050565b613009816133a6565b82525050565b613018816133c6565b82525050565b613027816133d2565b82525050565b6130368161345c565b82525050565b6130458161346e565b82525050565b61305481613480565b82525050565b6000605182527f6d6f6469666965723a2053656e646572206e6f742052657061796d656e74526f60208301527f75746572202d206f6e6c792052657061796d656e74526f757465722063616e2060408301527f63616c6c2074686973206d6574686f642e0000000000000000000000000000006060830152608082019050919050565b6000603682527f4f6e6c7920446562744b65726e656c2063616e2063616c6c207468652072656760208301527f69737465725465726d5374617274206d6574686f642e000000000000000000006040830152606082019050919050565b6040820160008201516131506000850182613169565b5060208201516131636020850182613169565b50505050565b613172816133dc565b82525050565b600060208201905061318d6000830184613000565b92915050565b60006040820190506131a86000830185613000565b6131b56020830184613000565b9392505050565b60006060820190506131d16000830186613000565b6131de6020830185613000565b6131eb6040830184613169565b949350505050565b60006040820190506132086000830185613000565b6132156020830184613169565b9392505050565b6000602082019050613231600083018461300f565b92915050565b600060208201905061324c600083018461301e565b92915050565b6000602082019050613267600083018461302d565b92915050565b6000602082019050613282600083018461303c565b92915050565b600060208201905061329d600083018461304b565b92915050565b600060208201905081810360008301526132bc8161305a565b9050919050565b600060208201905081810360008301526132dc816130dd565b9050919050565b60006040820190506132f8600083018461313a565b92915050565b60006020820190506133136000830184613169565b92915050565b600060408201905061332e6000830185613169565b61333b6020830184613000565b9392505050565b60006060820190506133576000830186613169565b6133646020830185613169565b6133716040830184613169565b949350505050565b6000604051905081810181811067ffffffffffffffff8211171561339c57600080fd5b8060405250919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000613427826133a6565b9050919050565b6000613439826133a6565b9050919050565b600061344b826133a6565b9050919050565b6000819050919050565b6000613467826133a6565b9050919050565b6000613479826133a6565b9050919050565b600061348b826133a6565b90509190505600a265627a7a72305820bc214674dd0f3d575d17ab31554a4b711441f7101c3233e9b94802f28a9a43d96c6578706572696d656e74616cf50037
[codex:341867] 
[codex:341867] thinking
[codex:341867] **Conducting high-level bytecode security analysis**
[codex:341867] 
[codex:341867] I'm examining the raw hex bytecode for typical smart contract functions and potential exploits, focusing on transfer-related calls, ownership controls, and suspicious CALL operations carrying value. Since only bytecode is available, I'll cautiously parse function selectors and attempt to disassemble the code using Python to detect any unguarded ways to transfer tokens or ether. If no clear exploit path emerges, I plan to report no findings.
[codex:341867] exec
[codex:341867] /bin/bash -lc "python - <<'PY'
[codex:341867] import re
[codex:341867] from pathlib import Path
[codex:341867] 
[codex:341867] path=Path('/tmp/codex-multi-gnof1eax/BYTECODE_BUNDLE.txt')
[codex:341867] text=path.read_text()
[codex:341867] # extract hex string after '0x'
[codex:341867] m=re.search(r'0x([0-9a-fA-F]+)', text)
[codex:341867] if not m:
[codex:341867]     raise SystemExit('no hex')
[codex:341867] hexstr=m.group(1)
[codex:341867] print('len hex', len(hexstr))
[codex:341867] # disassemble
[codex:341867] opcodes = {
[codex:341867]     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:341867]     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:341867]     0x20:'SHA3',
[codex:341867]     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:341867]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:341867]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:341867]     0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:341867]     0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:341867]     0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:341867]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:341867]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:341867] }
[codex:341867] 
[codex:341867] b=bytes.fromhex(hexstr)
[codex:341867] 
[codex:341867] # build disassembly list with pc
[codex:341867] pc=0
[codex:341867] instrs=[]
[codex:341867] while pc<len(b):
[codex:341867]     op=b[pc]
[codex:341867]     name=opcodes.get(op, f'OP_{op:02x}')
[codex:341867]     if 0x60<=op<=0x7f:
[codex:341867]         n=op-0x5f
[codex:341867]         data=b[pc+1:pc+1+n]
[codex:341867]         instrs.append((pc,name,data.hex()))
[codex:341867]         pc+=1+n
[codex:341867]     else:
[codex:341867]         instrs.append((pc,name,None))
[codex:341867]         pc+=1
[codex:341867] 
[codex:341867] print('instructions', len(instrs))
[codex:341867] # show last few
[codex:341867] print('last', instrs[-5:])
[codex:341867] # find all SELFDESTRUCT / DELEGATECALL / CALL
[codex:341867] special={'CALL','DELEGATECALL','SELFDESTRUCT'}
[codex:341867] idx=[(i,pc,name,data) for i,(pc,name,data) in enumerate(instrs) if name in special]
[codex:341867] print('special count', {n:sum(1 for _,_,n,_ in idx if n==n2) for n2 in special})
[codex:341867] print('first 10 special', idx[:10])
[codex:341867] 
[codex:341867] # find dispatch jumpdest list? we can find JUMPDESTs and get nearby selectors in dispatcher
[codex:341867] # also gather function selector table from beginning: pattern PUSH4 <sel> EQ PUSH2 <dest> JUMPI
[codex:341867] sels=[]
[codex:341867] for i in range(len(instrs)-4):
[codex:341867]     pc,name,data=instrs[i]
[codex:341867]     if name=='PUSH4' and instrs[i+1][1]=='EQ' and instrs[i+2][1]=='PUSH2' and instrs[i+3][1]=='JUMPI':
[codex:341867]         sel=instrs[i][2]
[codex:341867]         dest=int(instrs[i+2][2],16)
[codex:341867]         sels.append((sel,dest))
[codex:341867] 
[codex:341867] print('selectors', len(sels))
[codex:341867] print(sels[:10])
[codex:341867] PY" in /tmp/codex-multi-gnof1eax succeeded in 88ms:
[codex:341867] len hex 27032
[codex:341867] instructions 7758
[codex:341867] last [(13498, 'NUMBER', None), (13499, 'OP_d9', None), (13500, 'PUSH13', '6578706572696d656e74616cf5'), (13514, 'STOP', None), (13515, 'CALLDATACOPY', None)]
[codex:341867] special count {13: 19}
[codex:341867] first 10 special [(1796, 2839, 'CALL', None), (1881, 3005, 'CALL', None), (2116, 3413, 'CALL', None), (2515, 4362, 'CALL', None), (2673, 4720, 'CALL', None), (2758, 4886, 'CALL', None), (2922, 5190, 'CALL', None), (3236, 5726, 'CALL', None), (3753, 6665, 'CALL', None), (4177, 7374, 'CALL', None)]
[codex:341867] selectors 33
[codex:341867] [('03a896a1', 493), ('04fdc562', 554), ('0525ed66', 615), ('0992b119', 676), ('09cc1440', 737), ('1920427b', 798), ('2762dd8c', 860), ('31da4165', 921), ('44ee8753', 982), ('48857152', 1025)]
[codex:341867] 
[codex:341867] thinking
[codex:341867] **Analyzing disassembly and call patterns**
[codex:341867] exec
[codex:341867] /bin/bash -lc "python - <<'PY'
[codex:341867] import re
[codex:341867] from pathlib import Path
[codex:341867] 
[codex:341867] text=Path('/tmp/codex-multi-gnof1eax/BYTECODE_BUNDLE.txt').read_text()
[codex:341867] hexstr=re.search(r'0x([0-9a-fA-F]+)', text).group(1)
[codex:341867] b=bytes.fromhex(hexstr)
[codex:341867] 
[codex:341867] opcodes = {
[codex:341867]     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:341867]     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:341867]     0x20:'SHA3',
[codex:341867]     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:341867]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:341867]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:341867]     0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:341867]     0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:341867]     0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:341867]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:341867]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:341867] }
[codex:341867] 
[codex:341867] pc=0
[codex:341867] instrs=[]
[codex:341867] while pc<len(b):
[codex:341867]     op=b[pc]
[codex:341867]     name=opcodes.get(op, f'OP_{op:02x}')
[codex:341867]     if 0x60<=op<=0x7f:
[codex:341867]         n=op-0x5f
[codex:341867]         data=b[pc+1:pc+1+n]
[codex:341867]         instrs.append((pc,name,data.hex()))
[codex:341867]         pc+=1+n
[codex:341867]     else:
[codex:341867]         instrs.append((pc,name,None))
[codex:341867]         pc+=1
[codex:341867] 
[codex:341867] from collections import Counter
[codex:341867] c=Counter(name for _,name,_ in instrs)
[codex:341867] print({k:c[k] for k in ['CALL','DELEGATECALL','SELFDESTRUCT','CALLCODE']})
[codex:341867] 
[codex:341867] # list delegatecall positions
[codex:341867] for pc,name,data in instrs:
[codex:341867]     if name in ('DELEGATECALL','SELFDESTRUCT'):
[codex:341867]         print(name, pc)
[codex:341867] PY" in /tmp/codex-multi-gnof1eax succeeded in 42ms:
[codex:341867] {'CALL': 19, 'DELEGATECALL': 0, 'SELFDESTRUCT': 0, 'CALLCODE': 1}
[codex:341867] 
[codex:341867] thinking
[codex:341867] **Inspecting CALLCODE usage for risks**
[codex:341867] exec
[codex:341867] /bin/bash -lc "python - <<'PY'
[codex:341867] import re
[codex:341867] from pathlib import Path
[codex:341867] text=Path('/tmp/codex-multi-gnof1eax/BYTECODE_BUNDLE.txt').read_text()
[codex:341867] hexstr=re.search(r'0x([0-9a-fA-F]+)', text).group(1)
[codex:341867] b=bytes.fromhex(hexstr)
[codex:341867] 
[codex:341867] opcodes = {
[codex:341867]     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:341867]     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:341867]     0x20:'SHA3',
[codex:341867]     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:341867]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:341867]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:341867]     0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:341867]     0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:341867]     0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:341867]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:341867]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:341867] }
[codex:341867] 
[codex:341867] pc=0
[codex:341867] instrs=[]
[codex:341867] while pc<len(b):
[codex:341867]     op=b[pc]
[codex:341867]     name=opcodes.get(op, f'OP_{op:02x}')
[codex:341867]     if 0x60<=op<=0x7f:
[codex:341867]         n=op-0x5f
[codex:341867]         data=b[pc+1:pc+1+n]
[codex:341867]         instrs.append((pc,name,data.hex()))
[codex:341867]         pc+=1+n
[codex:341867]     else:
[codex:341867]         instrs.append((pc,name,None))
[codex:341867]         pc+=1
[codex:341867] 
[codex:341867] # locate CALLCODE
[codex:341867] idx=[i for i,(pc,name,data) in enumerate(instrs) if name=='CALLCODE']
[codex:341867] print(idx)
[codex:341867] for i in idx:
[codex:341867]     start=max(0,i-10)
[codex:341867]     end=min(len(instrs), i+10)
[codex:341867]     for j in range(start,end):
[codex:341867]         pc,name,data=instrs[j]
[codex:341867]         if data is None:
[codex:341867]             print(f\"{pc:04x}: {name}\")
[codex:341867]         else:
[codex:341867]             print(f\"{pc:04x}: {name} {data}\")
[codex:341867]     print('---')
[codex:341867] PY" in /tmp/codex-multi-gnof1eax succeeded in 34ms:
[codex:341867] [7750]
[codex:341867] 3492: STOP
[codex:341867] 3493: LOG2
[codex:341867] 3494: PUSH6 627a7a723058
[codex:341867] 349b: SHA3
[codex:341867] 349c: OP_bc
[codex:341867] 349d: OP_21
[codex:341867] 349e: CHAINID
[codex:341867] 349f: PUSH21 dd0f3d575d17ab31554a4b711441f7101c3233e9b9
[codex:341867] 34b5: BASEFEE
[codex:341867] 34b6: MUL
[codex:341867] 34b7: CALLCODE
[codex:341867] 34b8: DUP11
[codex:341867] 34b9: SWAP11
[codex:341867] 34ba: NUMBER
[codex:341867] 34bb: OP_d9
[codex:341867] 34bc: PUSH13 6578706572696d656e74616cf5
[codex:341867] 34ca: STOP
[codex:341867] 34cb: CALLDATACOPY
[codex:341867] ---
[codex:341867] 
[codex:341867] thinking
[codex:341867] **Analyzing CALL and access control patterns**
[codex:341867] 
[codex:341867] I’m examining the contract’s CALL instructions to see if any send ETH, focusing on CALLVALUE parameters and stack usage. I’m also identifying functions by their selectors to guess contract roles, suspecting it’s a TermsContract in the Dharma protocol. Next, I’m investigating potential access controls by parsing function entries for CALLER vs SLOAD checks to detect security-critical permissions. This means dissecting the dispatch table and inspecting function start opcodes to understand if key functions validate msg.sender properly.
[codex:341867] exec
[codex:341867] /bin/bash -lc "python - <<'PY'
[codex:341867] import re
[codex:341867] from pathlib import Path
[codex:341867] text=Path('/tmp/codex-multi-gnof1eax/BYTECODE_BUNDLE.txt').read_text()
[codex:341867] hexstr=re.search(r'0x([0-9a-fA-F]+)', text).group(1)
[codex:341867] b=bytes.fromhex(hexstr)
[codex:341867] 
[codex:341867] opcodes = {
[codex:341867]     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:341867]     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:341867]     0x20:'SHA3',
[codex:341867]     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:341867]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:341867]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:341867]     0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:341867]     0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:341867]     0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:341867]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:341867]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:341867] }
[codex:341867] 
[codex:341867] pc=0
[codex:341867] instrs=[]
[codex:341867] while pc<len(b):
[codex:341867]     op=b[pc]
[codex:341867]     name=opcodes.get(op, f'OP_{op:02x}')
[codex:341867]     if 0x60<=op<=0x7f:
[codex:341867]         n=op-0x5f
[codex:341867]         data=b[pc+1:pc+1+n]
[codex:341867]         instrs.append((pc,name,data.hex()))
[codex:341867]         pc+=1+n
[codex:341867]     else:
[codex:341867]         instrs.append((pc,name,None))
[codex:341867]         pc+=1
[codex:341867] 
[codex:341867] # find selectors
[codex:341867] sels=[]
[codex:341867] for i in range(len(instrs)-4):
[codex:341867]     pc,name,data=instrs[i]
[codex:341867]     if name=='PUSH4' and instrs[i+1][1]=='EQ' and instrs[i+2][1]=='PUSH2' and instrs[i+3][1]=='JUMPI':
[codex:341867]         sel=instrs[i][2]
[codex:341867]         dest=int(instrs[i+2][2],16)
[codex:341867]         sels.append((sel,dest))
[codex:341867] 
[codex:341867] print('selectors:')
[codex:341867] for sel,dest in sels:
[codex:341867]     print(sel, f\"0x{dest:04x}\")
[codex:341867] 
[codex:341867] # create map from dest to selector
[codex:341867] selmap={dest:sel for sel,dest in sels}
[codex:341867] 
[codex:341867] # function entry info: show first ~12 instructions of each function
[codex:341867] for dest in sorted(selmap):
[codex:341867]     idx=None
[codex:341867]     # find instruction index for dest
[codex:341867]     for i,(pc,name,data) in enumerate(instrs):
[codex:341867]         if pc==dest:
[codex:341867]             idx=i
[codex:341867]             break
[codex:341867]     if idx is None:
[codex:341867]         continue
[codex:341867]     print(f\"\\nfunc {selmap[dest]} at 0x{dest:04x}\")
[codex:341867]     for j in range(idx, min(len(instrs), idx+12)):
[codex:341867]         pc,name,data=instrs[j]
[codex:341867]         if data is None:
[codex:341867]             print(f\" {pc:04x}: {name}\")
[codex:341867]         else:
[codex:341867]             print(f\" {pc:04x}: {name} {data}\")
[codex:341867] PY" in /tmp/codex-multi-gnof1eax succeeded in 45ms:
[codex:341867] selectors:
[codex:341867] 03a896a1 0x01ed
[codex:341867] 04fdc562 0x022a
[codex:341867] 0525ed66 0x0267
[codex:341867] 0992b119 0x02a4
[codex:341867] 09cc1440 0x02e1
[codex:341867] 1920427b 0x031e
[codex:341867] 2762dd8c 0x035c
[codex:341867] 31da4165 0x0399
[codex:341867] 44ee8753 0x03d6
[codex:341867] 48857152 0x0401
[codex:341867] 52ddbfc1 0x042c
[codex:341867] 583b7676 0x0469
[codex:341867] 5cb9a150 0x0494
[codex:341867] 5e929e6a 0x04d1
[codex:341867] 5f0280ba 0x050e
[codex:341867] 715018a6 0x054b
[codex:341867] 741bef1a 0x0562
[codex:341867] 7ae2b5c7 0x058d
[codex:341867] 8da5cb5b 0x05ca
[codex:341867] 
[codex:341867] thinking
[codex:341867] **Mapping CALL instructions to functions**
[codex:341867] exec
[codex:341867] /bin/bash -lc "python - <<'PY'
[codex:341867] import re
[codex:341867] from pathlib import Path
[codex:341867] text=Path('/tmp/codex-multi-gnof1eax/BYTECODE_BUNDLE.txt').read_text()
[codex:341867] hexstr=re.search(r'0x([0-9a-fA-F]+)', text).group(1)
[codex:341867] 
[codex:341867] b=bytes.fromhex(hexstr)
[codex:341867] 
[codex:341867] opcodes={
[codex:341867] 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:341867] 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:341867] 0x20:'SHA3',
[codex:341867] 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:341867] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:341867] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:341867] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:341867] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:341867] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:341867] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:341867] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:341867] }
[codex:341867] 
[codex:341867] pc=0
[codex:341867] instrs=[]
[codex:341867] while pc<len(b):
[codex:341867]     op=b[pc]
[codex:341867]     name=opcodes.get(op, f'OP_{op:02x}')
[codex:341867]     if 0x60<=op<=0x7f:
[codex:341867]         n=op-0x5f
[codex:341867]         data=b[pc+1:pc+1+n]
[codex:341867]         instrs.append((pc,name,data.hex()))
[codex:341867]         pc+=1+n
[codex:341867]     else:
[codex:341867]         instrs.append((pc,name,None))
[codex:341867]         pc+=1
[codex:341867] 
[codex:341867] # find PUSH4 selectors used for external calls
[codex:341867] selectors_of_interest={'a9059cbb','23b872dd','70a08231','dd62ed3e','2f866f73','d69dbf63','ba20dda4','314a522e','079dd4b7','6fa9d056','357de26a','195d2e78','f8df3114','8be0079c'}
[codex:341867] 
[codex:341867] for i,(pc,name,data) in enumerate(instrs):
[codex:341867]     if name=='PUSH4' and data in selectors_of_interest:
[codex:341867]         print(f\"{pc:04x}: PUSH4 {data}\")
[codex:341867]         for j in range(i-4,i+6):
[codex:341867]             if 0<=j<len(instrs):
[codex:341867]                 p,n,d=instrs[j]
[codex:341867]                 if d is None:
[codex:341867]                     print(f\"  {p:04x}: {n}\")
[codex:341867]                 else:
[codex:341867]                     print(f\"  {p:04x}: {n} {d}\")
[codex:341867]         print('---')
[codex:341867] PY" in /tmp/codex-multi-gnof1eax succeeded in 38ms:
[codex:341867] 0ac8: PUSH4 2f866f73
[codex:341867]   0a9c: PUSH20 ffffffffffffffffffffffffffffffffffffffff
[codex:341867]   0ab1: AND
[codex:341867]   0ab2: PUSH20 ffffffffffffffffffffffffffffffffffffffff
[codex:341867]   0ac7: AND
[codex:341867]   0ac8: PUSH4 2f866f73
[codex:341867]   0acd: PUSH1 40
[codex:341867]   0acf: MLOAD
[codex:341867]   0ad0: DUP2
[codex:341867]   0ad1: PUSH4 ffffffff
[codex:341867]   0ad6: AND
[codex:341867] ---
[codex:341867] 0b63: PUSH4 d69dbf63
[codex:341867]   0b4b: JUMP
[codex:341867]   0b4c: JUMPDEST
[codex:341867]   0b4d: PUSH20 ffffffffffffffffffffffffffffffffffffffff
[codex:341867]   0b62: AND
[codex:341867]   0b63: PUSH4 d69dbf63
[codex:341867]   0b68: DUP6
[codex:341867]   0b69: PUSH1 40
[codex:341867] 
[codex:341867] thinking
[codex:341867] **Analyzing ERC20 transfer calls for vulnerabilities**
[codex:341867] exec
[codex:341867] /bin/bash -lc "python - <<'PY'
[codex:341867] import re
[codex:341867] from pathlib import Path
[codex:341867] text=Path('/tmp/codex-multi-gnof1eax/BYTECODE_BUNDLE.txt').read_text()
[codex:341867] hexstr=re.search(r'0x([0-9a-fA-F]+)', text).group(1)
[codex:341867] 
[codex:341867] b=bytes.fromhex(hexstr)
[codex:341867] 
[codex:341867] opcodes={
[codex:341867] 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:341867] 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:341867] 0x20:'SHA3',
[codex:341867] 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:341867] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:341867] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:341867] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:341867] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:341867] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:341867] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:341867] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:341867] }
[codex:341867] 
[codex:341867] pc=0
[codex:341867] instrs=[]
[codex:341867] while pc<len(b):
[codex:341867]     op=b[pc]
[codex:341867]     name=opcodes.get(op, f'OP_{op:02x}')
[codex:341867]     if 0x60<=op<=0x7f:
[codex:341867]         n=op-0x5f
[codex:341867]         data=b[pc+1:pc+1+n]
[codex:341867]         instrs.append((pc,name,data.hex()))
[codex:341867]         pc+=1+n
[codex:341867]     else:
[codex:341867]         instrs.append((pc,name,None))
[codex:341867]         pc+=1
[codex:341867] 
[codex:341867] # build map pc->index
[codex:341867] pc_to_idx={pc:i for i,(pc,_,_) in enumerate(instrs)}
[codex:341867] 
[codex:341867] # function to show window around a pc
[codex:341867] 
[codex:341867] def show(pc,window=40):
[codex:341867]     i=pc_to_idx[pc]
[codex:341867]     for j in range(max(0,i-window), min(len(instrs), i+window)):
[codex:341867]         p,n,d=instrs[j]
[codex:341867]         if d is None:
[codex:341867]             print(f\"{p:04x}: {n}\")
[codex:341867]         else:
[codex:341867]             print(f\"{p:04x}: {n} {d}\")
[codex:341867] 
[codex:341867] # show around 0x1c72
[codex:341867] print('--- around 0x1c72 ---')
[codex:341867] show(0x1c72,window=30)
[codex:341867] 
[codex:341867] print('\\n--- around 0x1eb0 ---')
[codex:341867] show(0x1eb0,window=30)
[codex:341867] 
[codex:341867] print('\\n--- around 0x2924 ---')
[codex:341867] show(0x2924,window=30)
[codex:341867] PY" in /tmp/codex-multi-gnof1eax succeeded in 36ms:
[codex:341867] --- around 0x1c72 ---
[codex:341867] 1c0e: SWAP1
[codex:341867] 1c0f: PUSH2 0100
[codex:341867] 1c12: EXP
[codex:341867] 1c13: SWAP1
[codex:341867] 1c14: DIV
[codex:341867] 1c15: PUSH20 ffffffffffffffffffffffffffffffffffffffff
[codex:341867] 1c2a: AND
[codex:341867] 1c2b: DUP6
[codex:341867] 1c2c: DUP5
[codex:341867] 1c2d: PUSH2 24e2
[codex:341867] 1c30: JUMP
[codex:341867] 1c31: JUMPDEST
[codex:341867] 1c32: DUP1
[codex:341867] 1c33: ISZERO
[codex:341867] 1c34: PUSH2 1d04
[codex:341867] 1c37: JUMPI
[codex:341867] 1c38: POP
[codex:341867] 1c39: PUSH1 03
[codex:341867] 1c3b: PUSH1 00
[codex:341867] 
[codex:341867] thinking
[codex:341867] **Analyzing storage patterns and access control**
[codex:341867] exec
[codex:341867] /bin/bash -lc "python - <<'PY'
[codex:341867] import re
[codex:341867] from pathlib import Path
[codex:341867] text=Path('/tmp/codex-multi-gnof1eax/BYTECODE_BUNDLE.txt').read_text()
[codex:341867] hexstr=re.search(r'0x([0-9a-fA-F]+)', text).group(1)
[codex:341867] 
[codex:341867] b=bytes.fromhex(hexstr)
[codex:341867] 
[codex:341867] # extract ascii strings length>=6
[codex:341867] strings=[]
[codex:341867] current=b''
[codex:341867] for byte in b:
[codex:341867]     if 32<=byte<=126:
[codex:341867]         current+=bytes([byte])
[codex:341867]     else:
[codex:341867]         if len(current)>=6:
[codex:341867]             strings.append(current.decode('ascii', errors='ignore'))
[codex:341867]         current=b''
[codex:341867] if len(current)>=6:
[codex:341867]     strings.append(current.decode('ascii', errors='ignore'))
[codex:341867] 
[codex:341867] for s in strings:
[codex:341867]     if 'Router' in s or 'Debt' in s or 'register' in s or 'term' in s or 'Repayment' in s:
[codex:341867]         print(s)
[codex:341867] PY" in /tmp/codex-multi-gnof1eax succeeded in 30ms:
[codex:341867] modifier: Sender not RepaymentRo` 
[codex:341867] uter - only RepaymentRouter can `@
[codex:341867] Only DebtKernel can call the reg` 
[codex:341867] 
[codex:341867] thinking
[codex:341867] **Inspecting string outputs**
[codex:341867] exec
[codex:341867] /bin/bash -lc "python - <<'PY'
[codex:341867] import re
[codex:341867] from pathlib import Path
[codex:341867] text=Path('/tmp/codex-multi-gnof1eax/BYTECODE_BUNDLE.txt').read_text()
[codex:341867] hexstr=re.search(r'0x([0-9a-fA-F]+)', text).group(1)
[codex:341867] 
[codex:341867] b=bytes.fromhex(hexstr)
[codex:341867] 
[codex:341867] # extract ascii strings length>=4
[codex:341867] strings=[]
[codex:341867] current=b''
[codex:341867] for byte in b:
[codex:341867]     if 32<=byte<=126:
[codex:341867]         current+=bytes([byte])
[codex:341867]     else:
[codex:341867]         if len(current)>=4:
[codex:341867]             strings.append(current.decode('ascii', errors='ignore'))
[codex:341867]         current=b''
[codex:341867] if len(current)>=4:
[codex:341867]     strings.append(current.decode('ascii', errors='ignore'))
[codex:341867] 
[codex:341867] for s in strings:
[codex:341867]     print(s)
[codex:341867] PY" in /tmp/codex-multi-gnof1eax succeeded in 39ms:
[codex:341867] `@R`
[codex:341867] cX;vv
[codex:341867] V[`@Qa
[codex:341867] V[`@Q
[codex:341867] V[`@Qa
[codex:341867] V[`@Q
[codex:341867] V[`@Qa
[codex:341867] V[`@Q
[codex:341867] V[`@Qa
[codex:341867] V[`@Q
[codex:341867] V[`@Qa
[codex:341867] V[`@Q
[codex:341867] !V[`@Qa
[codex:341867] V[`@Q
[codex:341867] 4V[`@Qa
[codex:341867] V[`@Q
[codex:341867] xV[`@Qa
[codex:341867] V[`@Q
[codex:341867] V[`@Qa
[codex:341867] V[`@Q
[codex:341867] 
[codex:341867] thinking
[codex:341867] **Analyzing CALL instructions for ETH transfers**
[codex:341867] exec
[codex:341867] /bin/bash -lc "python - <<'PY'
[codex:341867] import re
[codex:341867] from pathlib import Path
[codex:341867] text=Path('/tmp/codex-multi-gnof1eax/BYTECODE_BUNDLE.txt').read_text()
[codex:341867] hexstr=re.search(r'0x([0-9a-fA-F]+)', text).group(1)
[codex:341867] 
[codex:341867] b=bytes.fromhex(hexstr)
[codex:341867] 
[codex:341867] opcodes={
[codex:341867] 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:341867] 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:341867] 0x20:'SHA3',
[codex:341867] 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:341867] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:341867] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:341867] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:341867] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:341867] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:341867] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:341867] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:341867] }
[codex:341867] 
[codex:341867] pc=0
[codex:341867] instrs=[]
[codex:341867] while pc<len(b):
[codex:341867]     op=b[pc]
[codex:341867]     name=opcodes.get(op, f'OP_{op:02x}')
[codex:341867]     if 0x60<=op<=0x7f:
[codex:341867]         n=op-0x5f
[codex:341867]         data=b[pc+1:pc+1+n]
[codex:341867]         instrs.append((pc,name,data.hex()))
[codex:341867]         pc+=1+n
[codex:341867]     else:
[codex:341867]         instrs.append((pc,name,None))
[codex:341867]         pc+=1
[codex:341867] 
[codex:341867] # list CALLs with context
[codex:341867] call_indices=[i for i,(pc,name,_) in enumerate(instrs) if name=='CALL']
[codex:341867] print('CALL count', len(call_indices))
[codex:341867] for i in call_indices:
[codex:341867]     pc,name,_=instrs[i]
[codex:341867]     print(f\"\\nCALL at {pc:04x}\")
[codex:341867]     for j in range(i-8,i+6):
[codex:341867]         if 0<=j<len(instrs):
[codex:341867]             p,n,d=instrs[j]
[codex:341867]             if d is None:
[codex:341867]                 print(f\" {p:04x}: {n}\")
[codex:341867]             else:
[codex:341867]                 print(f\" {p:04x}: {n} {d}\")
[codex:341867] PY" in /tmp/codex-multi-gnof1eax succeeded in 39ms:
[codex:341867] CALL count 19
[codex:341867] 
[codex:341867] CALL at 0b17
[codex:341867]  0b0c: PUSH2 0b14
[codex:341867]  0b0f: JUMPI
[codex:341867]  0b10: PUSH1 00
[codex:341867]  0b12: DUP1
[codex:341867]  0b13: REVERT
[codex:341867]  0b14: JUMPDEST
[codex:341867]  0b15: POP
[codex:341867]  0b16: GAS
[codex:341867]  0b17: CALL
[codex:341867]  0b18: ISZERO
[codex:341867]  0b19: DUP1
[codex:341867]  0b1a: ISZERO
[codex:341867]  0b1b: PUSH2 0b28
[codex:341867]  0b1e: JUMPI
[codex:341867] 
[codex:341867] CALL at 0bbd
[codex:341867]  0bb2: PUSH2 0bba
[codex:341867] 
[codex:341867] thinking
[codex:341867] **Analyzing CALL instructions and value argument**
[codex:341867] exec
[codex:341867] /bin/bash -lc "python - <<'PY'
[codex:341867] import re
[codex:341867] from pathlib import Path
[codex:341867] text=Path('/tmp/codex-multi-gnof1eax/BYTECODE_BUNDLE.txt').read_text()
[codex:341867] hexstr=re.search(r'0x([0-9a-fA-F]+)', text).group(1)
[codex:341867] 
[codex:341867] b=bytes.fromhex(hexstr)
[codex:341867] 
[codex:341867] opcodes={
[codex:341867] 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:341867] 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:341867] 0x20:'SHA3',
[codex:341867] 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:341867] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:341867] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:341867] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:341867] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:341867] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:341867] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:341867] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:341867] }
[codex:341867] 
[codex:341867] pc=0
[codex:341867] instrs=[]
[codex:341867] while pc<len(b):
[codex:341867]     op=b[pc]
[codex:341867]     name=opcodes.get(op, f'OP_{op:02x}')
[codex:341867]     if 0x60<=op<=0x7f:
[codex:341867]         n=op-0x5f
[codex:341867]         data=b[pc+1:pc+1+n]
[codex:341867]         instrs.append((pc,name,data.hex()))
[codex:341867]         pc+=1+n
[codex:341867]     else:
[codex:341867]         instrs.append((pc,name,None))
[codex:341867]         pc+=1
[codex:341867] 
[codex:341867] pc_to_idx={pc:i for i,(pc,_,_) in enumerate(instrs)}
[codex:341867] 
[codex:341867] # show window for a few call sites
[codex:341867] call_pcs=[0x1cce,0x1f0c,0x2980]
[codex:341867] for call_pc in call_pcs:
[codex:341867]     i=pc_to_idx[call_pc]
[codex:341867]     print(f\"\\nContext for CALL at {call_pc:04x}\")
[codex:341867]     for j in range(i-25,i+5):
[codex:341867]         if 0<=j<len(instrs):
[codex:341867]             p,n,d=instrs[j]
[codex:341867]             if d is None:
[codex:341867]                 print(f\" {p:04x}: {n}\")
[codex:341867]             else:
[codex:341867]                 print(f\" {p:04x}: {n} {d}\")
[codex:341867] PY" in /tmp/codex-multi-gnof1eax succeeded in 37ms:
[codex:341867] 
[codex:341867] Context for CALL at 1cce
[codex:341867]  1cad: PUSH2 31f3
[codex:341867]  1cb0: JUMP
[codex:341867]  1cb1: JUMPDEST
[codex:341867]  1cb2: PUSH1 20
[codex:341867]  1cb4: PUSH1 40
[codex:341867]  1cb6: MLOAD
[codex:341867]  1cb7: DUP1
[codex:341867]  1cb8: DUP4
[codex:341867]  1cb9: SUB
[codex:341867]  1cba: DUP2
[codex:341867]  1cbb: PUSH1 00
[codex:341867]  1cbd: DUP8
[codex:341867]  1cbe: DUP1
[codex:341867]  1cbf: EXTCODESIZE
[codex:341867]  1cc0: ISZERO
[codex:341867]  1cc1: DUP1
[codex:341867]  1cc2: ISZERO
[codex:341867]  1cc3: PUSH2 1ccb
[codex:341867] 
[codex:341867] thinking
[codex:341867] **Analyzing CALL stack and SSTORE usage**
[codex:341867] exec
[codex:341867] /bin/bash -lc "python - <<'PY'
[codex:341867] import re
[codex:341867] from pathlib import Path
[codex:341867] text=Path('/tmp/codex-multi-gnof1eax/BYTECODE_BUNDLE.txt').read_text()
[codex:341867] hexstr=re.search(r'0x([0-9a-fA-F]+)', text).group(1)
[codex:341867] 
[codex:341867] b=bytes.fromhex(hexstr)
[codex:341867] 
[codex:341867] opcodes={
[codex:341867] 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:341867] 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:341867] 0x20:'SHA3',
[codex:341867] 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:341867] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:341867] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:341867] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:341867] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:341867] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:341867] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:341867] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:341867] }
[codex:341867] 
[codex:341867] pc=0
[codex:341867] instrs=[]
[codex:341867] while pc<len(b):
[codex:341867]     op=b[pc]
[codex:341867]     name=opcodes.get(op, f'OP_{op:02x}')
[codex:341867]     if 0x60<=op<=0x7f:
[codex:341867]         n=op-0x5f
[codex:341867]         data=b[pc+1:pc+1+n]
[codex:341867]         instrs.append((pc,name,data.hex()))
[codex:341867]         pc+=1+n
[codex:341867]     else:
[codex:341867]         instrs.append((pc,name,None))
[codex:341867]         pc+=1
[codex:341867] 
[codex:341867] # find SSTORE positions
[codex:341867] sstore=[pc for pc,name,_ in instrs if name=='SSTORE']
[codex:341867] print('SSTORE count', len(sstore))
[codex:341867] print('first few', [hex(p) for p in sstore[:10]])
[codex:341867] 
[codex:341867] # print context around each sstore
[codex:341867] for pc in sstore:
[codex:341867]     print(f\"\\nSSTORE at {pc:04x}\")
[codex:341867]     # show 10 instructions before
[codex:341867]     for p,n,d in instrs[instrs.index((pc,'SSTORE',None))-10:instrs.index((pc,'SSTORE',None))+5]:
[codex:341867]         if d is None:
[codex:341867]             print(f\" {p:04x}: {n}\")
[codex:341867]         else:
[codex:341867]             print(f\" {p:04x}: {n} {d}\")
[codex:341867] PY" in /tmp/codex-multi-gnof1eax succeeded in 38ms:
[codex:341867] SSTORE count 10
[codex:341867] first few ['0xea5', '0x1010', '0x17e6', '0x1c03', '0x1fac', '0x1ff2', '0x2310', '0x2356', '0x2695', '0x28e9']
[codex:341867] 
[codex:341867] SSTORE at 0ea5
[codex:341867]  0e99: ADD
[codex:341867]  0e9a: SWAP1
[codex:341867]  0e9b: DUP2
[codex:341867]  0e9c: MSTORE
[codex:341867]  0e9d: PUSH1 20
[codex:341867]  0e9f: ADD
[codex:341867]  0ea0: PUSH1 00
[codex:341867]  0ea2: SHA3
[codex:341867]  0ea3: DUP2
[codex:341867]  0ea4: SWAP1
[codex:341867]  0ea5: SSTORE
[codex:341867]  0ea6: POP
[codex:341867]  0ea7: PUSH2 0eb8
[codex:341867]  0eaa: DUP8
[codex:341867]  0eab: PUSH2 0eb3
[codex:341867] 
[codex:341867] 
[codex:341867] thinking
[codex:341867] **Analyzing SSTORE usage and ownership functions**
[codex:341867] exec
[codex:341867] /bin/bash -lc "python - <<'PY'
[codex:341867] import re
[codex:341867] from pathlib import Path
[codex:341867] text=Path('/tmp/codex-multi-gnof1eax/BYTECODE_BUNDLE.txt').read_text()
[codex:341867] hexstr=re.search(r'0x([0-9a-fA-F]+)', text).group(1)
[codex:341867] 
[codex:341867] b=bytes.fromhex(hexstr)
[codex:341867] 
[codex:341867] opcodes={
[codex:341867] 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:341867] 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:341867] 0x20:'SHA3',
[codex:341867] 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:341867] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:341867] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:341867] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:341867] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:341867] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:341867] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:341867] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:341867] }
[codex:341867] 
[codex:341867] pc=0
[codex:341867] instrs=[]
[codex:341867] while pc<len(b):
[codex:341867]     op=b[pc]
[codex:341867]     name=opcodes.get(op, f'OP_{op:02x}')
[codex:341867]     if 0x60<=op<=0x7f:
[codex:341867]         n=op-0x5f
[codex:341867]         data=b[pc+1:pc+1+n]
[codex:341867]         instrs.append((pc,name,data.hex()))
[codex:341867]         pc+=1+n
[codex:341867]     else:
[codex:341867]         instrs.append((pc,name,None))
[codex:341867]         pc+=1
[codex:341867] 
[codex:341867] pc_to_idx={pc:i for i,(pc,_,_) in enumerate(instrs)}
[codex:341867] 
[codex:341867] for pc in [0x0f0e,0x18d7]:
[codex:341867]     if pc not in pc_to_idx:
[codex:341867]         continue
[codex:341867]     i=pc_to_idx[pc]
[codex:341867]     print(f\"\\nDisasm around 0x{pc:04x}\")
[codex:341867]     for j in range(i-10,i+30):
[codex:341867]         if 0<=j<len(instrs):
[codex:341867]             p,n,d=instrs[j]
[codex:341867]             if d is None:
[codex:341867]                 print(f\" {p:04x}: {n}\")
[codex:341867]             else:
[codex:341867]                 print(f\" {p:04x}: {n} {d}\")
[codex:341867] PY" in /tmp/codex-multi-gnof1eax succeeded in 36ms:
[codex:341867] 
[codex:341867] Disasm around 0x0f0e
[codex:341867]  0f04: JUMPDEST
[codex:341867]  0f05: POP
[codex:341867]  0f06: SWAP6
[codex:341867]  0f07: SWAP5
[codex:341867]  0f08: POP
[codex:341867]  0f09: POP
[codex:341867]  0f0a: POP
[codex:341867]  0f0b: POP
[codex:341867]  0f0c: POP
[codex:341867]  0f0d: JUMP
[codex:341867]  0f0e: JUMPDEST
[codex:341867]  0f0f: PUSH1 07
[codex:341867]  0f11: PUSH1 00
[codex:341867]  0f13: SWAP1
[codex:341867]  0f14: SLOAD
[codex:341867]  0f15: SWAP1
[codex:341867]  0f16: PUSH2 0100
[codex:341867]  0f19: EXP
[codex:341867] 
[codex:341867] thinking
[codex:341867] **Confirming no exploitable paths found**
[codex:341867] 
[codex:341867] I'm reviewing the bytecode's access controls and state changes, confirming owner or router restrictions everywhere. No payable fallback or unrestricted storage writes appear. Following all checks, I’ll produce a JSON stating no findings and summarizing that no exploitable value-extraction paths were identified.
[codex:341867] codex
[codex:341867] {"no_findings":true,"summary":"No concrete, exploitable value-extraction path identified from the provided runtime bytecode; external calls and state-changing paths appear gated by ownership/router checks, and there is no delegatecall/selfdestruct or obvious unrestricted value transfer.","findings":[]}
[codex:341867] tokens used
[codex:341867] 78,853
[codex:341867] {"no_findings":true,"summary":"No concrete, exploitable value-extraction path identified from the provided runtime bytecode; external calls and state-changing paths appear gated by ownership/router checks, and there is no delegatecall/selfdestruct or obvious unrestricted value transfer.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-05T20:32:59.634811+00:00",
        "returncode": 0
    },
    "summary": "No concrete, exploitable value-extraction path identified from the provided runtime bytecode; external calls and state-changing paths appear gated by ownership/router checks, and there is no delegatecall/selfdestruct or obvious unrestricted value transfer.",
    "raw_final": {
        "summary": "No concrete, exploitable value-extraction path identified from the provided runtime bytecode; external calls and state-changing paths appear gated by ownership/router checks, and there is no delegatecall/selfdestruct or obvious unrestricted value transfer.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
20
EXT*/BALANCE
19
Total opcodes
7758
Flags
heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x01ab
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002e: SWAP1
0000002f: DIV
00000030: PUSH4 0xffffffff
00000035: AND
00000036: DUP1
00000037: PUSH3 0xdc41e6
0000003b: EQ
0000003c: PUSH2 0x01b0
0000003f: JUMPI
00000040: DUP1
00000041: PUSH4 0x03a896a1
00000046: EQ
00000047: PUSH2 0x01ed
0000004a: JUMPI
0000004b: DUP1
0000004c: PUSH4 0x04fdc562
00000051: EQ
00000052: PUSH2 0x022a
00000055: JUMPI
00000056: DUP1
00000057: PUSH4 0x0525ed66
0000005c: EQ
0000005d: PUSH2 0x0267
00000060: JUMPI
00000061: DUP1
00000062: PUSH4 0x0992b119
00000067: EQ
00000068: PUSH2 0x02a4
0000006b: JUMPI
0000006c: DUP1
0000006d: PUSH4 0x09cc1440
00000072: EQ
00000073: PUSH2 0x02e1
00000076: JUMPI
00000077: DUP1
00000078: PUSH4 0x1920427b
0000007d: EQ
0000007e: PUSH2 0x031e
00000081: JUMPI
00000082: DUP1
00000083: PUSH4 0x2762dd8c
00000088: EQ
00000089: PUSH2 0x035c
0000008c: JUMPI
0000008d: DUP1
0000008e: PUSH4 0x31da4165
00000093: EQ
00000094: PUSH2 0x0399
00000097: JUMPI
00000098: DUP1
00000099: PUSH4 0x44ee8753
0000009e: EQ
0000009f: PUSH2 0x03d6
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0x48857152
000000a9: EQ
000000aa: PUSH2 0x0401
000000ad: JUMPI
000000ae: DUP1
000000af: PUSH4 0x52ddbfc1
000000b4: EQ
000000b5: PUSH2 0x042c
000000b8: JUMPI
000000b9: DUP1
000000ba: PUSH4 0x583b7676
000000bf: EQ
000000c0: PUSH2 0x0469
000000c3: JUMPI
000000c4: DUP1
000000c5: PUSH4 0x5cb9a150
000000ca: EQ
000000cb: PUSH2 0x0494
000000ce: JUMPI
000000cf: DUP1
000000d0: PUSH4 0x5e929e6a
000000d5: EQ
000000d6: PUSH2 0x04d1
000000d9: JUMPI
000000da: DUP1
000000db: PUSH4 0x5f0280ba
000000e0: EQ
000000e1: PUSH2 0x050e
000000e4: JUMPI
000000e5: DUP1
000000e6: PUSH4 0x715018a6
000000eb: EQ
000000ec: PUSH2 0x054b
000000ef: JUMPI
000000f0: DUP1
000000f1: PUSH4 0x741bef1a
000000f6: EQ
000000f7: PUSH2 0x0562
000000fa: JUMPI
000000fb: DUP1
000000fc: PUSH4 0x7ae2b5c7
00000101: EQ
00000102: PUSH2 0x058d
00000105: JUMPI
00000106: DUP1
00000107: PUSH4 0x8da5cb5b
0000010c: EQ
0000010d: PUSH2 0x05ca
00000110: JUMPI
00000111: DUP1
00000112: PUSH4 0x977a5e64
00000117: EQ
00000118: PUSH2 0x05f5
0000011b: JUMPI
0000011c: DUP1
0000011d: PUSH4 0x99114d84
00000122: EQ
00000123: PUSH2 0x0632
00000126: JUMPI
00000127: DUP1
00000128: PUSH4 0xa354ca44
0000012d: EQ
0000012e: PUSH2 0x066f
00000131: JUMPI
00000132: DUP1
00000133: PUSH4 0xabf410e5
00000138: EQ
00000139: PUSH2 0x06ac
0000013c: JUMPI
0000013d: DUP1
0000013e: PUSH4 0xb2016bd4
00000143: EQ
00000144: PUSH2 0x06d7
00000147: JUMPI
00000148: DUP1
00000149: PUSH4 0xb2819322
0000014e: EQ
0000014f: PUSH2 0x0702
00000152: JUMPI
00000153: DUP1
00000154: PUSH4 0xb54790d8
00000159: EQ
0000015a: PUSH2 0x073f
0000015d: JUMPI
0000015e: DUP1
0000015f: PUSH4 0xc9912594
00000164: EQ
00000165: PUSH2 0x076a
00000168: JUMPI
00000169: DUP1
0000016a: PUSH4 0xdb2f90ae
0000016f: EQ
00000170: PUSH2 0x07a7
00000173: JUMPI
00000174: DUP1
00000175: PUSH4 0xdbc162de
0000017a: EQ
0000017b: PUSH2 0x07d0
0000017e: JUMPI
0000017f: DUP1
00000180: PUSH4 0xee733bb7
00000185: EQ
00000186: PUSH2 0x07fb
00000189: JUMPI
0000018a: DUP1
0000018b: PUSH4 0xf08499a1
00000190: EQ
00000191: PUSH2 0x0838
00000194: JUMPI
00000195: DUP1
00000196: PUSH4 0xf2494eaf
0000019b: EQ
0000019c: PUSH2 0x0863
0000019f: JUMPI
000001a0: DUP1
000001a1: PUSH4 0xf2fde38b
000001a6: EQ
000001a7: PUSH2 0x08a0
000001aa: JUMPI
000001ab: JUMPDEST
000001ac: PUSH1 0x00
000001ae: DUP1
000001af: REVERT
000001b0: JUMPDEST
000001b1: CALLVALUE
000001b2: DUP1
000001b3: ISZERO
000001b4: PUSH2 0x01bc
000001b7: JUMPI
000001b8: PUSH1 0x00
000001ba: DUP1
000001bb: REVERT
000001bc: JUMPDEST
000001bd: POP
000001be: PUSH2 0x01d7
000001c1: PUSH1 0x04
000001c3: DUP1
000001c4: CALLDATASIZE
000001c5: SUB
000001c6: PUSH2 0x01d2
000001c9: SWAP2
000001ca: SWAP1
000001cb: DUP2
000001cc: ADD
000001cd: SWAP1
000001ce: PUSH2 0x2da3
000001d1: JUMP
000001d2: JUMPDEST
000001d3: PUSH2 0x08c9
000001d6: JUMP
000001d7: JUMPDEST
000001d8: PUSH1 0x40
000001da: MLOAD
000001db: PUSH2 0x01e4
000001de: SWAP2
000001df: SWAP1
000001e0: PUSH2 0x321c
000001e3: JUMP
000001e4: JUMPDEST
000001e5: PUSH1 0x40
000001e7: MLOAD
000001e8: DUP1
000001e9: SWAP2
000001ea: SUB
000001eb: SWAP1
000001ec: RETURN
000001ed: JUMPDEST
000001ee: CALLVALUE
000001ef: DUP1
000001f0: ISZERO
000001f1: PUSH2 0x01f9
000001f4: JUMPI
000001f5: PUSH1 0x00
000001f7: DUP1
000001f8: REVERT
000001f9: JUMPDEST
000001fa: POP
000001fb: PUSH2 0x0214
000001fe: PUSH1 0x04
00000200: DUP1
00000201: CALLDATASIZE
00000202: SUB
00000203: PUSH2 0x020f
00000206: SWAP2
00000207: SWAP1
00000208: DUP2
00000209: ADD
0000020a: SWAP1
0000020b: PUSH2 0x2da3
0000020e: JUMP
0000020f: JUMPDEST
00000210: PUSH2 0x08e5
00000213: JUMP
00000214: JUMPDEST
00000215: PUSH1 0x40
00000217: MLOAD
00000218: PUSH2 0x0221
0000021b: SWAP2
0000021c: SWAP1
0000021d: PUSH2 0x32fe
00000220: JUMP
00000221: JUMPDEST
00000222: PUSH1 0x40
00000224: MLOAD
00000225: DUP1
00000226: SWAP2
00000227: SUB
00000228: SWAP1
00000229: RETURN
0000022a: JUMPDEST
0000022b: CALLVALUE
0000022c: DUP1
0000022d: ISZERO
0000022e: PUSH2 0x0236
00000231: JUMPI
00000232: PUSH1 0x00
00000234: DUP1
00000235: REVERT
00000236: JUMPDEST
00000237: POP
00000238: PUSH2 0x0251
0000023b: PUSH1 0x04
0000023d: DUP1
0000023e: CALLDATASIZE
0000023f: SUB
00000240: PUSH2 0x024c
00000243: SWAP2
00000244: SWAP1
00000245: DUP2
00000246: ADD
00000247: SWAP1
00000248: PUSH2 0x2da3
0000024b: JUMP
0000024c: JUMPDEST
0000024d: PUSH2 0x090a
00000250: JUMP
00000251: JUMPDEST
00000252: PUSH1 0x40
00000254: MLOAD
00000255: PUSH2 0x025e
00000258: SWAP2
00000259: SWAP1
0000025a: PUSH2 0x321c
0000025d: JUMP
0000025e: JUMPDEST
0000025f: PUSH1 0x40
00000261: MLOAD
00000262: DUP1
00000263: SWAP2
00000264: SUB
00000265: SWAP1
00000266: RETURN
00000267: JUMPDEST
00000268: CALLVALUE
00000269: DUP1
0000026a: ISZERO
0000026b: PUSH2 0x0273
0000026e: JUMPI
0000026f: PUSH1 0x00
00000271: DUP1
00000272: REVERT
00000273: JUMPDEST
00000274: POP
00000275: PUSH2 0x028e
00000278: PUSH1 0x04
0000027a: DUP1
0000027b: CALLDATASIZE
0000027c: SUB
0000027d: PUSH2 0x0289
00000280: SWAP2
00000281: SWAP1
00000282: DUP2
00000283: ADD
00000284: SWAP1
00000285: PUSH2 0x2da3
00000288: JUMP
00000289: JUMPDEST
0000028a: PUSH2 0x09d7
0000028d: JUMP
0000028e: JUMPDEST
0000028f: PUSH1 0x40
00000291: MLOAD
00000292: PUSH2 0x029b
00000295: SWAP2
00000296: SWAP1
00000297: PUSH2 0x32fe
0000029a: JUMP
0000029b: JUMPDEST
0000029c: PUSH1 0x40
0000029e: MLOAD
0000029f: DUP1
000002a0: SWAP2
000002a1: SUB
000002a2: SWAP1
000002a3: RETURN
000002a4: JUMPDEST
000002a5: CALLVALUE
000002a6: DUP1
000002a7: ISZERO
000002a8: PUSH2 0x02b0
000002ab: JUMPI
000002ac: PUSH1 0x00
000002ae: DUP1
000002af: REVERT
000002b0: JUMPDEST
000002b1: POP
000002b2: PUSH2 0x02cb
000002b5: PUSH1 0x04
000002b7: DUP1
000002b8: CALLDATASIZE
000002b9: SUB
000002ba: PUSH2 0x02c6
000002bd: SWAP2
000002be: SWAP1
000002bf: DUP2
000002c0: ADD
000002c1: SWAP1
000002c2: PUSH2 0x2fc4
000002c5: JUMP
000002c6: JUMPDEST
000002c7: PUSH2 0x09ef
000002ca: JUMP
000002cb: JUMPDEST
000002cc: PUSH1 0x40
000002ce: MLOAD
000002cf: PUSH2 0x02d8
000002d2: SWAP2
000002d3: SWAP1
000002d4: PUSH2 0x32fe
000002d7: JUMP
000002d8: JUMPDEST
000002d9: PUSH1 0x40
000002db: MLOAD
000002dc: DUP1
000002dd: SWAP2
000002de: SUB
000002df: SWAP1
000002e0: RETURN
000002e1: JUMPDEST
000002e2: CALLVALUE
000002e3: DUP1
000002e4: ISZERO
000002e5: PUSH2 0x02ed
000002e8: JUMPI
000002e9: PUSH1 0x00
000002eb: DUP1
000002ec: REVERT
000002ed: JUMPDEST
000002ee: POP
000002ef: PUSH2 0x0308
000002f2: PUSH1 0x04
000002f4: DUP1
000002f5: CALLDATASIZE
000002f6: SUB
000002f7: PUSH2 0x0303
000002fa: SWAP2
000002fb: SWAP1
000002fc: DUP2
000002fd: ADD
000002fe: SWAP1
000002ff: PUSH2 0x2da3
00000302: JUMP
00000303: JUMPDEST
00000304: PUSH2 0x0a21
00000307: JUMP
00000308: JUMPDEST
00000309: PUSH1 0x40
0000030b: MLOAD
0000030c: PUSH2 0x0315
0000030f: SWAP2
00000310: SWAP1
00000311: PUSH2 0x321c
00000314: JUMP
00000315: JUMPDEST
00000316: PUSH1 0x40
00000318: MLOAD
00000319: DUP1
0000031a: SWAP2
0000031b: SUB
0000031c: SWAP1
0000031d: RETURN
0000031e: JUMPDEST
0000031f: CALLVALUE
00000320: DUP1
00000321: ISZERO
00000322: PUSH2 0x032a
00000325: JUMPI
00000326: PUSH1 0x00
00000328: DUP1
00000329: REVERT
0000032a: JUMPDEST
0000032b: POP
0000032c: PUSH2 0x0345
0000032f: PUSH1 0x04
00000331: DUP1
00000332: CALLDATASIZE
00000333: SUB
00000334: PUSH2 0x0340
00000337: SWAP2
00000338: SWAP1
00000339: DUP2
0000033a: ADD
0000033b: SWAP1
0000033c: PUSH2 0x2da3
0000033f: JUMP
00000340: JUMPDEST
00000341: PUSH2 0x0a34
00000344: JUMP
00000345: JUMPDEST
00000346: PUSH1 0x40
00000348: MLOAD
00000349: PUSH2 0x0353
0000034c: SWAP3
0000034d: SWAP2
0000034e: SWAP1
0000034f: PUSH2 0x3319
00000352: JUMP
00000353: JUMPDEST
00000354: PUSH1 0x40
00000356: MLOAD
00000357: DUP1
00000358: SWAP2
00000359: SUB
0000035a: SWAP1
0000035b: RETURN
0000035c: JUMPDEST
0000035d: CALLVALUE
0000035e: DUP1
0000035f: ISZERO
00000360: PUSH2 0x0368
00000363: JUMPI
00000364: PUSH1 0x00
00000366: DUP1
00000367: REVERT
00000368: JUMPDEST
00000369: POP
0000036a: PUSH2 0x0383
0000036d: PUSH1 0x04
0000036f: DUP1
00000370: CALLDATASIZE
00000371: SUB
00000372: PUSH2 0x037e
00000375: SWAP2
00000376: SWAP1
00000377: DUP2
00000378: ADD
00000379: SWAP1
0000037a: PUSH2 0x2da3
0000037d: JUMP
0000037e: JUMPDEST
0000037f: PUSH2 0x0a78
00000382: JUMP
00000383: JUMPDEST
00000384: PUSH1 0x40
00000386: MLOAD
00000387: PUSH2 0x0390
0000038a: SWAP2
0000038b: SWAP1
0000038c: PUSH2 0x32fe
0000038f: JUMP
00000390: JUMPDEST
00000391: PUSH1 0x40
00000393: MLOAD
00000394: DUP1
00000395: SWAP2
00000396: SUB
00000397: SWAP1
00000398: RETURN
00000399: JUMPDEST
0000039a: CALLVALUE
0000039b: DUP1
0000039c: ISZERO
0000039d: PUSH2 0x03a5
000003a0: JUMPI
000003a1: PUSH1 0x00
000003a3: DUP1
000003a4: REVERT
000003a5: JUMPDEST
000003a6: POP
000003a7: PUSH2 0x03c0
000003aa: PUSH1 0x04
000003ac: DUP1
000003ad: CALLDATASIZE
000003ae: SUB
000003af: PUSH2 0x03bb
000003b2: SWAP2
000003b3: SWAP1
000003b4: DUP2
000003b5: ADD
000003b6: SWAP1
000003b7: PUSH2 0x2da3
000003ba: JUMP
000003bb: JUMPDEST
000003bc: PUSH2 0x0c0b
000003bf: JUMP
000003c0: JUMPDEST
000003c1: PUSH1 0x40
000003c3: MLOAD
000003c4: PUSH2 0x03cd
000003c7: SWAP2
000003c8: SWAP1
000003c9: PUSH2 0x321c
000003cc: JUMP
000003cd: JUMPDEST
000003ce: PUSH1 0x40
000003d0: MLOAD
000003d1: DUP1
000003d2: SWAP2
000003d3: SUB
000003d4: SWAP1
000003d5: RETURN
000003d6: JUMPDEST
000003d7: CALLVALUE
000003d8: DUP1
000003d9: ISZERO
000003da: PUSH2 0x03e2
000003dd: JUMPI
000003de: PUSH1 0x00
000003e0: DUP1
000003e1: REVERT
000003e2: JUMPDEST
000003e3: POP
000003e4: PUSH2 0x03eb
000003e7: PUSH2 0x0c2d
000003ea: JUMP
000003eb: JUMPDEST
000003ec: PUSH1 0x40
000003ee: MLOAD
000003ef: PUSH2 0x03f8
000003f2: SWAP2
000003f3: SWAP1
000003f4: PUSH2 0x32fe
000003f7: JUMP
000003f8: JUMPDEST
000003f9: PUSH1 0x40
000003fb: MLOAD
000003fc: DUP1
000003fd: SWAP2
000003fe: SUB
000003ff: SWAP1
00000400: RETURN
00000401: JUMPDEST
00000402: CALLVALUE
00000403: DUP1
00000404: ISZERO
00000405: PUSH2 0x040d
00000408: JUMPI
00000409: PUSH1 0x00
0000040b: DUP1
0000040c: REVERT
0000040d: JUMPDEST
0000040e: POP
0000040f: PUSH2 0x0416
00000412: PUSH2 0x0c32
00000415: JUMP
00000416: JUMPDEST
00000417: PUSH1 0x40
00000419: MLOAD
0000041a: PUSH2 0x0423
0000041d: SWAP2
0000041e: SWAP1
0000041f: PUSH2 0x32fe
00000422: JUMP
00000423: JUMPDEST
00000424: PUSH1 0x40
00000426: MLOAD
00000427: DUP1
00000428: SWAP2
00000429: SUB
0000042a: SWAP1
0000042b: RETURN
0000042c: JUMPDEST
0000042d: CALLVALUE
0000042e: DUP1
0000042f: ISZERO
00000430: PUSH2 0x0438
00000433: JUMPI
00000434: PUSH1 0x00
00000436: DUP1
00000437: REVERT
00000438: JUMPDEST
00000439: POP
0000043a: PUSH2 0x0453
0000043d: PUSH1 0x04
0000043f: DUP1
00000440: CALLDATASIZE
00000441: SUB
00000442: PUSH2 0x044e
00000445: SWAP2
00000446: SWAP1
00000447: DUP2
00000448: ADD
00000449: SWAP1
0000044a: PUSH2 0x2fc4
0000044d: JUMP
0000044e: JUMPDEST
0000044f: PUSH2 0x0c37
00000452: JUMP
00000453: JUMPDEST
00000454: PUSH1 0x40
00000456: MLOAD
00000457: PUSH2 0x0460
0000045a: SWAP2
0000045b: SWAP1
0000045c: PUSH2 0x32fe
0000045f: JUMP
00000460: JUMPDEST
00000461: PUSH1 0x40
00000463: MLOAD
00000464: DUP1
00000465: SWAP2
00000466: SUB
00000467: SWAP1
00000468: RETURN
00000469: JUMPDEST
0000046a: CALLVALUE
0000046b: DUP1
0000046c: ISZERO
0000046d: PUSH2 0x0475
00000470: JUMPI
00000471: PUSH1 0x00
00000473: DUP1
00000474: REVERT
00000475: JUMPDEST
00000476: POP
00000477: PUSH2 0x047e
0000047a: PUSH2 0x0c69
0000047d: JUMP
0000047e: JUMPDEST
0000047f: PUSH1 0x40
00000481: MLOAD
00000482: PUSH2 0x048b
00000485: SWAP2
00000486: SWAP1
00000487: PUSH2 0x32fe
0000048a: JUMP
0000048b: JUMPDEST
0000048c: PUSH1 0x40
0000048e: MLOAD
0000048f: DUP1
00000490: SWAP2
00000491: SUB
00000492: SWAP1
00000493: RETURN
00000494: JUMPDEST
00000495: CALLVALUE
00000496: DUP1
00000497: ISZERO
00000498: PUSH2 0x04a0
0000049b: JUMPI
0000049c: PUSH1 0x00
0000049e: DUP1
0000049f: REVERT
000004a0: JUMPDEST
000004a1: POP
000004a2: PUSH2 0x04bb
000004a5: PUSH1 0x04
000004a7: DUP1
000004a8: CALLDATASIZE
000004a9: SUB
000004aa: PUSH2 0x04b6
000004ad: SWAP2
000004ae: SWAP1
000004af: DUP2
000004b0: ADD
000004b1: SWAP1
000004b2: PUSH2 0x2f5f
000004b5: JUMP
000004b6: JUMPDEST
000004b7: PUSH2 0x0c6f
000004ba: JUMP
000004bb: JUMPDEST
000004bc: PUSH1 0x40
000004be: MLOAD
000004bf: PUSH2 0x04c8
000004c2: SWAP2
000004c3: SWAP1
000004c4: PUSH2 0x32fe
000004c7: JUMP
000004c8: JUMPDEST
000004c9: PUSH1 0x40
000004cb: MLOAD
000004cc: DUP1
000004cd: SWAP2
000004ce: SUB
000004cf: SWAP1
000004d0: RETURN
000004d1: JUMPDEST
000004d2: CALLVALUE
000004d3: DUP1
000004d4: ISZERO
000004d5: PUSH2 0x04dd
000004d8: JUMPI
000004d9: PUSH1 0x00
000004db: DUP1
000004dc: REVERT
000004dd: JUMPDEST
000004de: POP
000004df: PUSH2 0x04f8
000004e2: PUSH1 0x04
000004e4: DUP1
000004e5: CALLDATASIZE
000004e6: SUB
000004e7: PUSH2 0x04f3
000004ea: SWAP2
000004eb: SWAP1
000004ec: DUP2
000004ed: ADD
000004ee: SWAP1
000004ef: PUSH2 0x2da3
000004f2: JUMP
000004f3: JUMPDEST
000004f4: PUSH2 0x0cb4
000004f7: JUMP
000004f8: JUMPDEST
000004f9: PUSH1 0x40
000004fb: MLOAD
000004fc: PUSH2 0x0505
000004ff: SWAP2
00000500: SWAP1
00000501: PUSH2 0x32fe
00000504: JUMP
00000505: JUMPDEST
00000506: PUSH1 0x40
00000508: MLOAD
00000509: DUP1
0000050a: SWAP2
0000050b: SUB
0000050c: SWAP1
0000050d: RETURN
0000050e: JUMPDEST
0000050f: CALLVALUE
00000510: DUP1
00000511: ISZERO
00000512: PUSH2 0x051a
00000515: JUMPI
00000516: PUSH1 0x00
00000518: DUP1
00000519: REVERT
0000051a: JUMPDEST
0000051b: POP
0000051c: PUSH2 0x0535
0000051f: PUSH1 0x04
00000521: DUP1
00000522: CALLDATASIZE
00000523: SUB
00000524: PUSH2 0x0530
00000527: SWAP2
00000528: SWAP1
00000529: DUP2
0000052a: ADD
0000052b: SWAP1
0000052c: PUSH2 0x2e31
0000052f: JUMP
00000530: JUMPDEST
00000531: PUSH2 0x0cca
00000534: JUMP
00000535: JUMPDEST
00000536: PUSH1 0x40
00000538: MLOAD
00000539: PUSH2 0x0542
0000053c: SWAP2
0000053d: SWAP1
0000053e: PUSH2 0x321c
00000541: JUMP
00000542: JUMPDEST
00000543: PUSH1 0x40
00000545: MLOAD
00000546: DUP1
00000547: SWAP2
00000548: SUB
00000549: SWAP1
0000054a: RETURN
0000054b: JUMPDEST
0000054c: CALLVALUE
0000054d: DUP1
0000054e: ISZERO
0000054f: PUSH2 0x0557
00000552: JUMPI
00000553: PUSH1 0x00
00000555: DUP1
00000556: REVERT
00000557: JUMPDEST
00000558: POP
00000559: PUSH2 0x0560
0000055c: PUSH2 0x0f0e
0000055f: JUMP
00000560: JUMPDEST
00000561: STOP
00000562: JUMPDEST
00000563: CALLVALUE
00000564: DUP1
00000565: ISZERO
00000566: PUSH2 0x056e
00000569: JUMPI
0000056a: PUSH1 0x00
0000056c: DUP1
0000056d: REVERT
0000056e: JUMPDEST
0000056f: POP
00000570: PUSH2 0x0577
00000573: PUSH2 0x1013
00000576: JUMP
00000577: JUMPDEST
00000578: PUSH1 0x40
0000057a: MLOAD
0000057b: PUSH2 0x0584
0000057e: SWAP2
0000057f: SWAP1
00000580: PUSH2 0x3288
00000583: JUMP
00000584: JUMPDEST
00000585: PUSH1 0x40
00000587: MLOAD
00000588: DUP1
00000589: SWAP2
0000058a: SUB
0000058b: SWAP1
0000058c: RETURN
0000058d: JUMPDEST
0000058e: CALLVALUE
0000058f: DUP1
00000590: ISZERO
00000591: PUSH2 0x0599
00000594: JUMPI
00000595: PUSH1 0x00
00000597: DUP1
00000598: REVERT
00000599: JUMPDEST
0000059a: POP
0000059b: PUSH2 0x05b4
0000059e: PUSH1 0x04
000005a0: DUP1
000005a1: CALLDATASIZE
000005a2: SUB
000005a3: PUSH2 0x05af
000005a6: SWAP2
000005a7: SWAP1
000005a8: DUP2
000005a9: ADD
000005aa: SWAP1
000005ab: PUSH2 0x2fc4
000005ae: JUMP
000005af: JUMPDEST
000005b0: PUSH2 0x1039
000005b3: JUMP
000005b4: JUMPDEST
000005b5: PUSH1 0x40
000005b7: MLOAD
000005b8: PUSH2 0x05c1
000005bb: SWAP2
000005bc: SWAP1
000005bd: PUSH2 0x32fe
000005c0: JUMP
000005c1: JUMPDEST
000005c2: PUSH1 0x40
000005c4: MLOAD
000005c5: DUP1
000005c6: SWAP2
000005c7: SUB
000005c8: SWAP1
000005c9: RETURN
000005ca: JUMPDEST
000005cb: CALLVALUE
000005cc: DUP1
000005cd: ISZERO
000005ce: PUSH2 0x05d6
000005d1: JUMPI
000005d2: PUSH1 0x00
000005d4: DUP1
000005d5: REVERT
000005d6: JUMPDEST
000005d7: POP
000005d8: PUSH2 0x05df
000005db: PUSH2 0x1052
000005de: JUMP
000005df: JUMPDEST
000005e0: PUSH1 0x40
000005e2: MLOAD
000005e3: PUSH2 0x05ec
000005e6: SWAP2
000005e7: SWAP1
000005e8: PUSH2 0x3178
000005eb: JUMP
000005ec: JUMPDEST
000005ed: PUSH1 0x40
000005ef: MLOAD
000005f0: DUP1
000005f1: SWAP2
000005f2: SUB
000005f3: SWAP1
000005f4: RETURN
000005f5: JUMPDEST
000005f6: CALLVALUE
000005f7: DUP1
000005f8: ISZERO
000005f9: PUSH2 0x0601
000005fc: JUMPI
000005fd: PUSH1 0x00
000005ff: DUP1
00000600: REVERT
00000601: JUMPDEST
00000602: POP
00000603: PUSH2 0x061c
00000606: PUSH1 0x04
00000608: DUP1
00000609: CALLDATASIZE
0000060a: SUB
0000060b: PUSH2 0x0617
0000060e: SWAP2
0000060f: SWAP1
00000610: DUP2
00000611: ADD
00000612: SWAP1
00000613: PUSH2 0x2df5
00000616: JUMP
00000617: JUMPDEST
00000618: PUSH2 0x1078
0000061b: JUMP
0000061c: JUMPDEST
0000061d: PUSH1 0x40
0000061f: MLOAD
00000620: PUSH2 0x0629
00000623: SWAP2
00000624: SWAP1
00000625: PUSH2 0x321c
00000628: JUMP
00000629: JUMPDEST
0000062a: PUSH1 0x40
0000062c: MLOAD
0000062d: DUP1
0000062e: SWAP2
0000062f: SUB
00000630: SWAP1
00000631: RETURN
00000632: JUMPDEST
00000633: CALLVALUE
00000634: DUP1
00000635: ISZERO
00000636: PUSH2 0x063e
00000639: JUMPI
0000063a: PUSH1 0x00
0000063c: DUP1
0000063d: REVERT
0000063e: JUMPDEST
0000063f: POP
00000640: PUSH2 0x0659
00000643: PUSH1 0x04
00000645: DUP1
00000646: CALLDATASIZE
00000647: SUB
00000648: PUSH2 0x0654
0000064b: SWAP2
0000064c: SWAP1
0000064d: DUP2
0000064e: ADD
0000064f: SWAP1
00000650: PUSH2 0x2ea8
00000653: JUMP
00000654: JUMPDEST
00000655: PUSH2 0x11d1
00000658: JUMP
00000659: JUMPDEST
0000065a: PUSH1 0x40
0000065c: MLOAD
0000065d: PUSH2 0x0666
00000660: SWAP2
00000661: SWAP1
00000662: PUSH2 0x32fe
00000665: JUMP
00000666: JUMPDEST
00000667: PUSH1 0x40
00000669: MLOAD
0000066a: DUP1
0000066b: SWAP2
0000066c: SUB
0000066d: SWAP1
0000066e: RETURN
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 0x0696
00000680: PUSH1 0x04
00000682: DUP1
00000683: CALLDATASIZE
00000684: SUB
00000685: PUSH2 0x0691
00000688: SWAP2
00000689: SWAP1
0000068a: DUP2
0000068b: ADD
0000068c: SWAP1
0000068d: PUSH2 0x2da3
00000690: JUMP
00000691: JUMPDEST
00000692: PUSH2 0x137c
00000695: JUMP
00000696: JUMPDEST
00000697: PUSH1 0x40
00000699: MLOAD
0000069a: PUSH2 0x06a3
0000069d: SWAP2
0000069e: SWAP1
0000069f: PUSH2 0x32e3
000006a2: JUMP
000006a3: JUMPDEST
000006a4: PUSH1 0x40
000006a6: MLOAD
000006a7: DUP1
000006a8: SWAP2
000006a9: SUB
000006aa: SWAP1
000006ab: RETURN
000006ac: JUMPDEST
000006ad: CALLVALUE
000006ae: DUP1
000006af: ISZERO
000006b0: PUSH2 0x06b8
000006b3: JUMPI
000006b4: PUSH1 0x00
000006b6: DUP1
000006b7: REVERT
000006b8: JUMPDEST
000006b9: POP
000006ba: PUSH2 0x06c1
000006bd: PUSH2 0x1525
000006c0: JUMP
000006c1: JUMPDEST
000006c2: PUSH1 0x40
000006c4: MLOAD
000006c5: PUSH2 0x06ce
000006c8: SWAP2
000006c9: SWAP1
000006ca: PUSH2 0x3252
000006cd: JUMP
000006ce: JUMPDEST
000006cf: PUSH1 0x40
000006d1: MLOAD
000006d2: DUP1
000006d3: SWAP2
000006d4: SUB
000006d5: SWAP1
000006d6: RETURN
000006d7: JUMPDEST
000006d8: CALLVALUE
000006d9: DUP1
000006da: ISZERO
000006db: PUSH2 0x06e3
000006de: JUMPI
000006df: PUSH1 0x00
000006e1: DUP1
000006e2: REVERT
000006e3: JUMPDEST
000006e4: POP
000006e5: PUSH2 0x06ec
000006e8: PUSH2 0x154a
000006eb: JUMP
000006ec: JUMPDEST
000006ed: PUSH1 0x40
000006ef: MLOAD
000006f0: PUSH2 0x06f9
000006f3: SWAP2
000006f4: SWAP1
000006f5: PUSH2 0x326d
000006f8: JUMP
000006f9: JUMPDEST
000006fa: PUSH1 0x40
000006fc: MLOAD
000006fd: DUP1
000006fe: SWAP2
000006ff: SUB
00000700: SWAP1
00000701: RETURN
00000702: JUMPDEST
00000703: CALLVALUE
00000704: DUP1
00000705: ISZERO
00000706: PUSH2 0x070e
00000709: JUMPI
0000070a: PUSH1 0x00
0000070c: DUP1
0000070d: REVERT
0000070e: JUMPDEST
0000070f: POP
00000710: PUSH2 0x0729
00000713: PUSH1 0x04
00000715: DUP1
00000716: CALLDATASIZE
00000717: SUB
00000718: PUSH2 0x0724
0000071b: SWAP2
0000071c: SWAP1
0000071d: DUP2
0000071e: ADD
0000071f: SWAP1
00000720: PUSH2 0x2da3
00000723: JUMP
00000724: JUMPDEST
00000725: PUSH2 0x1570
00000728: JUMP
00000729: JUMPDEST
0000072a: PUSH1 0x40
0000072c: MLOAD
0000072d: PUSH2 0x0736
00000730: SWAP2
00000731: SWAP1
00000732: PUSH2 0x321c
00000735: JUMP
00000736: JUMPDEST
00000737: PUSH1 0x40
00000739: MLOAD
0000073a: DUP1
0000073b: SWAP2
0000073c: SUB
0000073d: SWAP1
0000073e: RETURN
0000073f: JUMPDEST
00000740: CALLVALUE
00000741: DUP1
00000742: ISZERO
00000743: PUSH2 0x074b
00000746: JUMPI
00000747: PUSH1 0x00
00000749: DUP1
0000074a: REVERT
0000074b: JUMPDEST
0000074c: POP
0000074d: PUSH2 0x0754
00000750: PUSH2 0x158d
00000753: JUMP
00000754: JUMPDEST
00000755: PUSH1 0x40
00000757: MLOAD
00000758: PUSH2 0x0761
0000075b: SWAP2
0000075c: SWAP1
0000075d: PUSH2 0x32fe
00000760: JUMP
00000761: JUMPDEST
00000762: PUSH1 0x40
00000764: MLOAD
00000765: DUP1
00000766: SWAP2
00000767: SUB
00000768: SWAP1
00000769: RETURN
0000076a: JUMPDEST
0000076b: CALLVALUE
0000076c: DUP1
0000076d: ISZERO
0000076e: PUSH2 0x0776
00000771: JUMPI
00000772: PUSH1 0x00
00000774: DUP1
00000775: REVERT
00000776: JUMPDEST
00000777: POP
00000778: PUSH2 0x0791
0000077b: PUSH1 0x04
0000077d: DUP1
0000077e: CALLDATASIZE
0000077f: SUB
00000780: PUSH2 0x078c
00000783: SWAP2
00000784: SWAP1
00000785: DUP2
00000786: ADD
00000787: SWAP1
00000788: PUSH2 0x2da3
0000078b: JUMP
0000078c: JUMPDEST
0000078d: PUSH2 0x1593
00000790: JUMP
00000791: JUMPDEST
00000792: PUSH1 0x40
00000794: MLOAD
00000795: PUSH2 0x079e
00000798: SWAP2
00000799: SWAP1
0000079a: PUSH2 0x32fe
0000079d: JUMP
0000079e: JUMPDEST
0000079f: PUSH1 0x40
000007a1: MLOAD
000007a2: DUP1
000007a3: SWAP2
000007a4: SUB
000007a5: SWAP1
000007a6: RETURN
000007a7: JUMPDEST
000007a8: CALLVALUE
000007a9: DUP1
000007aa: ISZERO
000007ab: PUSH2 0x07b3
000007ae: JUMPI
000007af: PUSH1 0x00
000007b1: DUP1
000007b2: REVERT
000007b3: JUMPDEST
000007b4: POP
000007b5: PUSH2 0x07ce
000007b8: PUSH1 0x04
000007ba: DUP1
000007bb: CALLDATASIZE
000007bc: SUB
000007bd: PUSH2 0x07c9
000007c0: SWAP2
000007c1: SWAP1
000007c2: DUP2
000007c3: ADD
000007c4: SWAP1
000007c5: PUSH2 0x2ea8
000007c8: JUMP
000007c9: JUMPDEST
000007ca: PUSH2 0x175d
000007cd: JUMP
000007ce: JUMPDEST
000007cf: STOP
000007d0: JUMPDEST
000007d1: CALLVALUE
000007d2: DUP1
000007d3: ISZERO
000007d4: PUSH2 0x07dc
000007d7: JUMPI
000007d8: PUSH1 0x00
000007da: DUP1
000007db: REVERT
000007dc: JUMPDEST
000007dd: POP
000007de: PUSH2 0x07e5
000007e1: PUSH2 0x17ed
000007e4: JUMP
000007e5: JUMPDEST
000007e6: PUSH1 0x40
000007e8: MLOAD
000007e9: PUSH2 0x07f2
000007ec: SWAP2
000007ed: SWAP1
000007ee: PUSH2 0x326d
000007f1: JUMP
000007f2: JUMPDEST
000007f3: PUSH1 0x40
000007f5: MLOAD
000007f6: DUP1
000007f7: SWAP2
000007f8: SUB
000007f9: SWAP1
000007fa: RETURN
000007fb: JUMPDEST
000007fc: CALLVALUE
000007fd: DUP1
000007fe: ISZERO
000007ff: PUSH2 0x0807
00000802: JUMPI
00000803: PUSH1 0x00
00000805: DUP1
00000806: REVERT
00000807: JUMPDEST
00000808: POP
00000809: PUSH2 0x0822
0000080c: PUSH1 0x04
0000080e: DUP1
0000080f: CALLDATASIZE
00000810: SUB
00000811: PUSH2 0x081d
00000814: SWAP2
00000815: SWAP1
00000816: DUP2
00000817: ADD
00000818: SWAP1
00000819: PUSH2 0x2da3
0000081c: JUMP
0000081d: JUMPDEST
0000081e: PUSH2 0x1813
00000821: JUMP
00000822: JUMPDEST
00000823: PUSH1 0x40
00000825: MLOAD
00000826: PUSH2 0x082f
00000829: SWAP2
0000082a: SWAP1
0000082b: PUSH2 0x321c
0000082e: JUMP
0000082f: JUMPDEST
00000830: PUSH1 0x40
00000832: MLOAD
00000833: DUP1
00000834: SWAP2
00000835: SUB
00000836: SWAP1
00000837: RETURN
00000838: JUMPDEST
00000839: CALLVALUE
0000083a: DUP1
0000083b: ISZERO
0000083c: PUSH2 0x0844
0000083f: JUMPI
00000840: PUSH1 0x00
00000842: DUP1
00000843: REVERT
00000844: JUMPDEST
00000845: POP
00000846: PUSH2 0x084d
00000849: PUSH2 0x188a
0000084c: JUMP
0000084d: JUMPDEST
0000084e: PUSH1 0x40
00000850: MLOAD
00000851: PUSH2 0x085a
00000854: SWAP2
00000855: SWAP1
00000856: PUSH2 0x32fe
00000859: JUMP
0000085a: JUMPDEST
0000085b: PUSH1 0x40
0000085d: MLOAD
0000085e: DUP1
0000085f: SWAP2
00000860: SUB
00000861: SWAP1
00000862: RETURN
00000863: JUMPDEST
00000864: CALLVALUE
00000865: DUP1
00000866: ISZERO
00000867: PUSH2 0x086f
0000086a: JUMPI
0000086b: PUSH1 0x00
0000086d: DUP1
0000086e: REVERT
0000086f: JUMPDEST
00000870: POP
00000871: PUSH2 0x088a
00000874: PUSH1 0x04
00000876: DUP1
00000877: CALLDATASIZE
00000878: SUB
00000879: PUSH2 0x0885
0000087c: SWAP2
0000087d: SWAP1
0000087e: DUP2
0000087f: ADD
00000880: SWAP1
00000881: PUSH2 0x2da3
00000884: JUMP
00000885: JUMPDEST
00000886: PUSH2 0x1892
00000889: JUMP
0000088a: JUMPDEST
0000088b: PUSH1 0x40
0000088d: MLOAD
0000088e: PUSH2 0x0897
00000891: SWAP2
00000892: SWAP1
00000893: PUSH2 0x32fe
00000896: JUMP
00000897: JUMPDEST
00000898: PUSH1 0x40
0000089a: MLOAD
0000089b: DUP1
0000089c: SWAP2
0000089d: SUB
0000089e: SWAP1
0000089f: RETURN
000008a0: JUMPDEST
000008a1: CALLVALUE
000008a2: DUP1
000008a3: ISZERO
000008a4: PUSH2 0x08ac
000008a7: JUMPI
000008a8: PUSH1 0x00
000008aa: DUP1
000008ab: REVERT
000008ac: JUMPDEST
000008ad: POP
000008ae: PUSH2 0x08c7
000008b1: PUSH1 0x04
000008b3: DUP1
000008b4: CALLDATASIZE
000008b5: SUB
000008b6: PUSH2 0x08c2
000008b9: SWAP2
000008ba: SWAP1
000008bb: DUP2
000008bc: ADD
000008bd: SWAP1
000008be: PUSH2 0x2d28
000008c1: JUMP
000008c2: JUMPDEST
000008c3: PUSH2 0x18d7
000008c6: JUMP
000008c7: JUMPDEST
000008c8: STOP
000008c9: JUMPDEST
000008ca: PUSH1 0x00
000008cc: PUSH2 0x08d4
000008cf: DUP3
000008d0: PUSH2 0x1593
000008d3: JUMP
000008d4: JUMPDEST
000008d5: PUSH2 0x08dd
000008d8: DUP4
000008d9: PUSH2 0x0cb4
000008dc: JUMP
000008dd: JUMPDEST
000008de: LT
000008df: SWAP1
000008e0: POP
000008e1: SWAP2
000008e2: SWAP1
000008e3: POP
000008e4: JUMP
000008e5: JUMPDEST
000008e6: PUSH1 0x00
000008e8: PUSH1 0x08
000008ea: PUSH1 0x00
000008ec: DUP4
000008ed: PUSH1 0x00
000008ef: NOT
000008f0: AND
000008f1: PUSH1 0x00
000008f3: NOT
000008f4: AND
000008f5: DUP2
000008f6: MSTORE
000008f7: PUSH1 0x20
000008f9: ADD
000008fa: SWAP1
000008fb: DUP2
000008fc: MSTORE
000008fd: PUSH1 0x20
000008ff: ADD
00000900: PUSH1 0x00
00000902: KECCAK256
00000903: SLOAD
00000904: SWAP1
00000905: POP
00000906: SWAP2
00000907: SWAP1
00000908: POP
00000909: JUMP
0000090a: JUMPDEST
0000090b: PUSH1 0x00
0000090d: PUSH2 0x0914
00000910: PUSH2 0x2baf
00000913: JUMP
00000914: JUMPDEST
00000915: PUSH2 0x091d
00000918: DUP4
00000919: PUSH2 0x193f
0000091c: JUMP
0000091d: JUMPDEST
0000091e: SWAP1
0000091f: POP
00000920: PUSH2 0x0929
00000923: DUP4
00000924: DUP3
00000925: PUSH2 0x1b17
00000928: JUMP
00000929: JUMPDEST
0000092a: ISZERO
0000092b: ISZERO
0000092c: PUSH2 0x0938
0000092f: JUMPI
00000930: PUSH1 0x00
00000932: SWAP2
00000933: POP
00000934: PUSH2 0x09d1
00000937: JUMP
00000938: JUMPDEST
00000939: PUSH2 0x094c
0000093c: DUP4
0000093d: CALLER
0000093e: DUP4
0000093f: PUSH1 0x00
00000941: ADD
00000942: MLOAD
00000943: DUP5
00000944: PUSH1 0x20
00000946: ADD
00000947: MLOAD
00000948: PUSH2 0x1baf
0000094b: JUMP
0000094c: JUMPDEST
0000094d: ISZERO
0000094e: ISZERO
0000094f: PUSH2 0x0957
00000952: JUMPI
00000953: PUSH1 0x00
00000955: DUP1
00000956: REVERT
00000957: JUMPDEST
00000958: PUSH2 0x0965
0000095b: DUP4
0000095c: DUP3
0000095d: PUSH1 0x20
0000095f: ADD
00000960: MLOAD
00000961: PUSH2 0x1d0e
00000964: JUMP
00000965: JUMPDEST
00000966: ISZERO
00000967: ISZERO
00000968: PUSH2 0x0970
0000096b: JUMPI
0000096c: PUSH1 0x00
0000096e: DUP1
0000096f: REVERT
00000970: JUMPDEST
00000971: PUSH2 0x0979
00000974: DUP4
00000975: PUSH2 0x1f4a
00000978: JUMP
00000979: JUMPDEST
0000097a: ISZERO
0000097b: ISZERO
0000097c: PUSH2 0x0984
0000097f: JUMPI
00000980: PUSH1 0x00
00000982: DUP1
00000983: REVERT
00000984: JUMPDEST
00000985: DUP3
00000986: PUSH1 0x00
00000988: NOT
00000989: AND
0000098a: PUSH32 0x6c55695f76744f2886f83cccde28ea951d8a6f689fe34413db04416110af850f
000009ab: DUP3
000009ac: PUSH1 0x00
000009ae: ADD
000009af: MLOAD
000009b0: DUP4
000009b1: PUSH1 0x20
000009b3: ADD
000009b4: MLOAD
000009b5: DUP5
000009b6: PUSH1 0x40
000009b8: ADD
000009b9: MLOAD
000009ba: PUSH1 0x40
000009bc: MLOAD
000009bd: PUSH2 0x09c8
000009c0: SWAP4
000009c1: SWAP3
000009c2: SWAP2
000009c3: SWAP1
000009c4: PUSH2 0x3342
000009c7: JUMP
000009c8: JUMPDEST
000009c9: PUSH1 0x40
000009cb: MLOAD
000009cc: DUP1
000009cd: SWAP2
000009ce: SUB
000009cf: SWAP1
000009d0: LOG2
000009d1: JUMPDEST
000009d2: POP
000009d3: SWAP2
000009d4: SWAP1
000009d5: POP
000009d6: JUMP
000009d7: JUMPDEST
000009d8: PUSH1 0x08
000009da: PUSH1 0x20
000009dc: MSTORE
000009dd: DUP1
000009de: PUSH1 0x00
000009e0: MSTORE
000009e1: PUSH1 0x40
000009e3: PUSH1 0x00
000009e5: KECCAK256
000009e6: PUSH1 0x00
000009e8: SWAP2
000009e9: POP
000009ea: SWAP1
000009eb: POP
000009ec: SLOAD
000009ed: DUP2
000009ee: JUMP
000009ef: JUMPDEST
000009f0: PUSH1 0x00
000009f2: PUSH2 0x0a19
000009f5: PUSH3 0x015180
000009f9: PUSH2 0x0a0b
000009fc: DUP6
000009fd: DUP6
000009fe: PUSH2 0x2009
00000a01: SWAP1
00000a02: SWAP2
00000a03: SWAP1
00000a04: PUSH4 0xffffffff
00000a09: AND
00000a0a: JUMP
00000a0b: JUMPDEST
00000a0c: PUSH2 0x2022
00000a0f: SWAP1
00000a10: SWAP2
00000a11: SWAP1
00000a12: PUSH4 0xffffffff
00000a17: AND
00000a18: JUMP
00000a19: JUMPDEST
00000a1a: SWAP1
00000a1b: POP
00000a1c: SWAP3
00000a1d: SWAP2
00000a1e: POP
00000a1f: POP
00000a20: JUMP
00000a21: JUMPDEST
00000a22: PUSH1 0x00
00000a24: PUSH2 0x0a2c
00000a27: DUP3
00000a28: PUSH2 0x1813
00000a2b: JUMP
00000a2c: JUMPDEST
00000a2d: ISZERO
00000a2e: SWAP1
00000a2f: POP
00000a30: SWAP2
00000a31: SWAP1
00000a32: POP
00000a33: JUMP
00000a34: JUMPDEST
00000a35: PUSH1 0x06
00000a37: PUSH1 0x20
00000a39: MSTORE
00000a3a: DUP1
00000a3b: PUSH1 0x00
00000a3d: MSTORE
00000a3e: PUSH1 0x40
00000a40: PUSH1 0x00
00000a42: KECCAK256
00000a43: PUSH1 0x00
00000a45: SWAP2
00000a46: POP
00000a47: SWAP1
00000a48: POP
00000a49: DUP1
00000a4a: PUSH1 0x00
00000a4c: ADD
00000a4d: SLOAD
00000a4e: SWAP1
00000a4f: DUP1
00000a50: PUSH1 0x01
00000a52: ADD
00000a53: PUSH1 0x00
00000a55: SWAP1
00000a56: SLOAD
00000a57: SWAP1
00000a58: PUSH2 0x0100
00000a5b: EXP
00000a5c: SWAP1
00000a5d: DIV
00000a5e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a73: AND
00000a74: SWAP1
00000a75: POP
00000a76: DUP3
00000a77: JUMP
00000a78: JUMPDEST
00000a79: PUSH1 0x00
00000a7b: PUSH2 0x0a82
00000a7e: PUSH2 0x2bd1
00000a81: JUMP
00000a82: JUMPDEST
00000a83: PUSH1 0x00
00000a85: PUSH2 0x0a8d
00000a88: DUP5
00000a89: PUSH2 0x2038
00000a8c: JUMP
00000a8d: JUMPDEST
00000a8e: SWAP2
00000a8f: POP
00000a90: PUSH1 0x00
00000a92: DUP1
00000a93: SWAP1
00000a94: SLOAD
00000a95: SWAP1
00000a96: PUSH2 0x0100
00000a99: EXP
00000a9a: SWAP1
00000a9b: DIV
00000a9c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ab1: AND
00000ab2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ac7: AND
00000ac8: PUSH4 0x2f866f73
00000acd: PUSH1 0x40
00000acf: MLOAD
00000ad0: DUP2
00000ad1: PUSH4 0xffffffff
00000ad6: AND
00000ad7: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000af5: MUL
00000af6: DUP2
00000af7: MSTORE
00000af8: PUSH1 0x04
00000afa: ADD
00000afb: PUSH1 0x20
00000afd: PUSH1 0x40
00000aff: MLOAD
00000b00: DUP1
00000b01: DUP4
00000b02: SUB
00000b03: DUP2
00000b04: PUSH1 0x00
00000b06: DUP8
00000b07: DUP1
00000b08: EXTCODESIZE
00000b09: ISZERO
00000b0a: DUP1
00000b0b: ISZERO
00000b0c: PUSH2 0x0b14
00000b0f: JUMPI
00000b10: PUSH1 0x00
00000b12: DUP1
00000b13: REVERT
00000b14: JUMPDEST
00000b15: POP
00000b16: GAS
00000b17: CALL
00000b18: ISZERO
00000b19: DUP1
00000b1a: ISZERO
00000b1b: PUSH2 0x0b28
00000b1e: JUMPI
00000b1f: RETURNDATASIZE
00000b20: PUSH1 0x00
00000b22: DUP1
00000b23: RETURNDATACOPY
00000b24: RETURNDATASIZE
00000b25: PUSH1 0x00
00000b27: REVERT
00000b28: JUMPDEST
00000b29: POP
00000b2a: POP
00000b2b: POP
00000b2c: POP
00000b2d: PUSH1 0x40
00000b2f: MLOAD
00000b30: RETURNDATASIZE
00000b31: PUSH1 0x1f
00000b33: NOT
00000b34: PUSH1 0x1f
00000b36: DUP3
00000b37: ADD
00000b38: AND
00000b39: DUP3
00000b3a: ADD
00000b3b: DUP1
00000b3c: PUSH1 0x40
00000b3e: MSTORE
00000b3f: POP
00000b40: PUSH2 0x0b4c
00000b43: SWAP2
00000b44: SWAP1
00000b45: DUP2
00000b46: ADD
00000b47: SWAP1
00000b48: PUSH2 0x2f0d
00000b4b: JUMP
00000b4c: JUMPDEST
00000b4d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b62: AND
00000b63: PUSH4 0xd69dbf63
00000b68: DUP6
00000b69: PUSH1 0x40
00000b6b: MLOAD
00000b6c: DUP3
00000b6d: PUSH4 0xffffffff
00000b72: AND
00000b73: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000b91: MUL
00000b92: DUP2
00000b93: MSTORE
00000b94: PUSH1 0x04
00000b96: ADD
00000b97: PUSH2 0x0ba0
00000b9a: SWAP2
00000b9b: SWAP1
00000b9c: PUSH2 0x3237
00000b9f: JUMP
00000ba0: JUMPDEST
00000ba1: PUSH1 0x20
00000ba3: PUSH1 0x40
00000ba5: MLOAD
00000ba6: DUP1
00000ba7: DUP4
00000ba8: SUB
00000ba9: DUP2
00000baa: PUSH1 0x00
00000bac: DUP8
00000bad: DUP1
00000bae: EXTCODESIZE
00000baf: ISZERO
00000bb0: DUP1
00000bb1: ISZERO
00000bb2: PUSH2 0x0bba
00000bb5: JUMPI
00000bb6: PUSH1 0x00
00000bb8: DUP1
00000bb9: REVERT
00000bba: JUMPDEST
00000bbb: POP
00000bbc: GAS
00000bbd: CALL
00000bbe: ISZERO
00000bbf: DUP1
00000bc0: ISZERO
00000bc1: PUSH2 0x0bce
00000bc4: JUMPI
00000bc5: RETURNDATASIZE
00000bc6: PUSH1 0x00
00000bc8: DUP1
00000bc9: RETURNDATACOPY
00000bca: RETURNDATASIZE
00000bcb: PUSH1 0x00
00000bcd: REVERT
00000bce: JUMPDEST
00000bcf: POP
00000bd0: POP
00000bd1: POP
00000bd2: POP
00000bd3: PUSH1 0x40
00000bd5: MLOAD
00000bd6: RETURNDATASIZE
00000bd7: PUSH1 0x1f
00000bd9: NOT
00000bda: PUSH1 0x1f
00000bdc: DUP3
00000bdd: ADD
00000bde: AND
00000bdf: DUP3
00000be0: ADD
00000be1: DUP1
00000be2: PUSH1 0x40
00000be4: MSTORE
00000be5: POP
00000be6: PUSH2 0x0bf2
00000be9: SWAP2
00000bea: SWAP1
00000beb: DUP2
00000bec: ADD
00000bed: SWAP1
00000bee: PUSH2 0x2f9b
00000bf1: JUMP
00000bf2: JUMPDEST
00000bf3: SWAP1
00000bf4: POP
00000bf5: PUSH2 0x0c02
00000bf8: DUP2
00000bf9: DUP4
00000bfa: PUSH1 0x00
00000bfc: ADD
00000bfd: MLOAD
00000bfe: PUSH2 0x0c37
00000c01: JUMP
00000c02: JUMPDEST
00000c03: SWAP3
00000c04: POP
00000c05: POP
00000c06: POP
00000c07: SWAP2
00000c08: SWAP1
00000c09: POP
00000c0a: JUMP
00000c0b: JUMPDEST
00000c0c: PUSH1 0x00
00000c0e: PUSH2 0x0c16
00000c11: DUP3
00000c12: PUSH2 0x08c9
00000c15: JUMP
00000c16: JUMPDEST
00000c17: DUP1
00000c18: PUSH2 0x0c26
00000c1b: JUMPI
00000c1c: POP
00000c1d: PUSH2 0x0c25
00000c20: DUP3
00000c21: PUSH2 0x1570
00000c24: JUMP
00000c25: JUMPDEST
00000c26: JUMPDEST
00000c27: SWAP1
00000c28: POP
00000c29: SWAP2
00000c2a: SWAP1
00000c2b: POP
00000c2c: JUMP
00000c2d: JUMPDEST
00000c2e: PUSH1 0x12
00000c30: DUP2
00000c31: JUMP
00000c32: JUMPDEST
00000c33: PUSH1 0x02
00000c35: DUP2
00000c36: JUMP
00000c37: JUMPDEST
00000c38: PUSH1 0x00
00000c3a: PUSH2 0x0c61
00000c3d: PUSH2 0x0c52
00000c40: PUSH3 0x015180
00000c44: DUP5
00000c45: PUSH2 0x21b8
00000c48: SWAP1
00000c49: SWAP2
00000c4a: SWAP1
00000c4b: PUSH4 0xffffffff
00000c50: AND
00000c51: JUMP
00000c52: JUMPDEST
00000c53: DUP5
00000c54: PUSH2 0x21f0
00000c57: SWAP1
00000c58: SWAP2
00000c59: SWAP1
00000c5a: PUSH4 0xffffffff
00000c5f: AND
00000c60: JUMP
00000c61: JUMPDEST
00000c62: SWAP1
00000c63: POP
00000c64: SWAP3
00000c65: SWAP2
00000c66: POP
00000c67: POP
00000c68: JUMP
00000c69: JUMPDEST
00000c6a: PUSH1 0x02
00000c6c: SLOAD
00000c6d: DUP2
00000c6e: JUMP
00000c6f: JUMPDEST
00000c70: PUSH1 0x00
00000c72: PUSH2 0x0cac
00000c75: PUSH2 0x0c89
00000c78: PUSH1 0x04
00000c7a: SLOAD
00000c7b: DUP5
00000c7c: PUSH2 0x220c
00000c7f: SWAP1
00000c80: SWAP2
00000c81: SWAP1
00000c82: PUSH4 0xffffffff
00000c87: AND
00000c88: JUMP
00000c89: JUMPDEST
00000c8a: PUSH2 0x0c9e
00000c8d: PUSH1 0x04
00000c8f: SLOAD
00000c90: DUP7
00000c91: PUSH2 0x220c
00000c94: SWAP1
00000c95: SWAP2
00000c96: SWAP1
00000c97: PUSH4 0xffffffff
00000c9c: AND
00000c9d: JUMP
00000c9e: JUMPDEST
00000c9f: PUSH2 0x2009
00000ca2: SWAP1
00000ca3: SWAP2
00000ca4: SWAP1
00000ca5: PUSH4 0xffffffff
00000caa: AND
00000cab: JUMP
00000cac: JUMPDEST
00000cad: SWAP1
00000cae: POP
00000caf: SWAP3
00000cb0: SWAP2
00000cb1: POP
00000cb2: POP
00000cb3: JUMP
00000cb4: JUMPDEST
00000cb5: PUSH1 0x00
00000cb7: PUSH2 0x0cbf
00000cba: DUP3
00000cbb: PUSH2 0x2038
00000cbe: JUMP
00000cbf: JUMPDEST
00000cc0: PUSH1 0x20
00000cc2: ADD
00000cc3: MLOAD
00000cc4: SWAP1
00000cc5: POP
00000cc6: SWAP2
00000cc7: SWAP1
00000cc8: POP
00000cc9: JUMP
00000cca: JUMPDEST
00000ccb: PUSH1 0x00
00000ccd: DUP1
00000cce: PUSH1 0x00
00000cd0: DUP1
00000cd1: SWAP1
00000cd2: SLOAD
00000cd3: SWAP1
00000cd4: PUSH2 0x0100
00000cd7: EXP
00000cd8: SWAP1
00000cd9: DIV
00000cda: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cef: AND
00000cf0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d05: AND
00000d06: PUSH4 0x6fa9d056
00000d0b: PUSH1 0x40
00000d0d: MLOAD
00000d0e: DUP2
00000d0f: PUSH4 0xffffffff
00000d14: AND
00000d15: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000d33: MUL
00000d34: DUP2
00000d35: MSTORE
00000d36: PUSH1 0x04
00000d38: ADD
00000d39: PUSH1 0x20
00000d3b: PUSH1 0x40
00000d3d: MLOAD
00000d3e: DUP1
00000d3f: DUP4
00000d40: SUB
00000d41: DUP2
00000d42: PUSH1 0x00
00000d44: DUP8
00000d45: DUP1
00000d46: EXTCODESIZE
00000d47: ISZERO
00000d48: DUP1
00000d49: ISZERO
00000d4a: PUSH2 0x0d52
00000d4d: JUMPI
00000d4e: PUSH1 0x00
00000d50: DUP1
00000d51: REVERT
00000d52: JUMPDEST
00000d53: POP
00000d54: GAS
00000d55: CALL
00000d56: ISZERO
00000d57: DUP1
00000d58: ISZERO
00000d59: PUSH2 0x0d66
00000d5c: JUMPI
00000d5d: RETURNDATASIZE
00000d5e: PUSH1 0x00
00000d60: DUP1
00000d61: RETURNDATACOPY
00000d62: RETURNDATASIZE
00000d63: PUSH1 0x00
00000d65: REVERT
00000d66: JUMPDEST
00000d67: POP
00000d68: POP
00000d69: POP
00000d6a: POP
00000d6b: PUSH1 0x40
00000d6d: MLOAD
00000d6e: RETURNDATASIZE
00000d6f: PUSH1 0x1f
00000d71: NOT
00000d72: PUSH1 0x1f
00000d74: DUP3
00000d75: ADD
00000d76: AND
00000d77: DUP3
00000d78: ADD
00000d79: DUP1
00000d7a: PUSH1 0x40
00000d7c: MSTORE
00000d7d: POP
00000d7e: PUSH2 0x0d8a
00000d81: SWAP2
00000d82: SWAP1
00000d83: DUP2
00000d84: ADD
00000d85: SWAP1
00000d86: PUSH2 0x2f36
00000d89: JUMP
00000d8a: JUMPDEST
00000d8b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000da0: AND
00000da1: CALLER
00000da2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000db7: AND
00000db8: EQ
00000db9: ISZERO
00000dba: ISZERO
00000dbb: PUSH2 0x0df9
00000dbe: JUMPI
00000dbf: PUSH1 0x40
00000dc1: MLOAD
00000dc2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000de3: DUP2
00000de4: MSTORE
00000de5: PUSH1 0x04
00000de7: ADD
00000de8: PUSH2 0x0df0
00000deb: SWAP1
00000dec: PUSH2 0x32a3
00000def: JUMP
00000df0: JUMPDEST
00000df1: PUSH1 0x40
00000df3: MLOAD
00000df4: DUP1
00000df5: SWAP2
00000df6: SUB
00000df7: SWAP1
00000df8: REVERT
00000df9: JUMPDEST
00000dfa: PUSH1 0x01
00000dfc: PUSH1 0x00
00000dfe: SWAP1
00000dff: SLOAD
00000e00: SWAP1
00000e01: PUSH2 0x0100
00000e04: EXP
00000e05: SWAP1
00000e06: DIV
00000e07: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e1c: AND
00000e1d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e32: AND
00000e33: DUP4
00000e34: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e49: AND
00000e4a: EQ
00000e4b: ISZERO
00000e4c: ISZERO
00000e4d: PUSH2 0x0e59
00000e50: JUMPI
00000e51: PUSH1 0x00
00000e53: SWAP2
00000e54: POP
00000e55: PUSH2 0x0f04
00000e58: JUMP
00000e59: JUMPDEST
00000e5a: PUSH2 0x0e87
00000e5d: DUP5
00000e5e: PUSH1 0x08
00000e60: PUSH1 0x00
00000e62: DUP11
00000e63: PUSH1 0x00
00000e65: NOT
00000e66: AND
00000e67: PUSH1 0x00
00000e69: NOT
00000e6a: AND
00000e6b: DUP2
00000e6c: MSTORE
00000e6d: PUSH1 0x20
00000e6f: ADD
00000e70: SWAP1
00000e71: DUP2
00000e72: MSTORE
00000e73: PUSH1 0x20
00000e75: ADD
00000e76: PUSH1 0x00
00000e78: KECCAK256
00000e79: SLOAD
00000e7a: PUSH2 0x21f0
00000e7d: SWAP1
00000e7e: SWAP2
00000e7f: SWAP1
00000e80: PUSH4 0xffffffff
00000e85: AND
00000e86: JUMP
00000e87: JUMPDEST
00000e88: PUSH1 0x08
00000e8a: PUSH1 0x00
00000e8c: DUP10
00000e8d: PUSH1 0x00
00000e8f: NOT
00000e90: AND
00000e91: PUSH1 0x00
00000e93: NOT
00000e94: AND
00000e95: DUP2
00000e96: MSTORE
00000e97: PUSH1 0x20
00000e99: ADD
00000e9a: SWAP1
00000e9b: DUP2
00000e9c: MSTORE
00000e9d: PUSH1 0x20
00000e9f: ADD
00000ea0: PUSH1 0x00
00000ea2: KECCAK256
00000ea3: DUP2
00000ea4: SWAP1
00000ea5: SSTORE
00000ea6: POP
00000ea7: PUSH2 0x0eb8
00000eaa: DUP8
00000eab: PUSH2 0x0eb3
00000eae: DUP10
00000eaf: PUSH2 0x0a78
00000eb2: JUMP
00000eb3: JUMPDEST
00000eb4: PUSH2 0x11d1
00000eb7: JUMP
00000eb8: JUMPDEST
00000eb9: SWAP1
00000eba: POP
00000ebb: DUP1
00000ebc: PUSH1 0x08
00000ebe: PUSH1 0x00
00000ec0: DUP10
00000ec1: PUSH1 0x00
00000ec3: NOT
00000ec4: AND
00000ec5: PUSH1 0x00
00000ec7: NOT
00000ec8: AND
00000ec9: DUP2
00000eca: MSTORE
00000ecb: PUSH1 0x20
00000ecd: ADD
00000ece: SWAP1
00000ecf: DUP2
00000ed0: MSTORE
00000ed1: PUSH1 0x20
00000ed3: ADD
00000ed4: PUSH1 0x00
00000ed6: KECCAK256
00000ed7: SLOAD
00000ed8: LT
00000ed9: ISZERO
00000eda: DUP1
00000edb: ISZERO
00000edc: PUSH2 0x0eea
00000edf: JUMPI
00000ee0: POP
00000ee1: PUSH2 0x0ee9
00000ee4: DUP8
00000ee5: PUSH2 0x1813
00000ee8: JUMP
00000ee9: JUMPDEST
00000eea: JUMPDEST
00000eeb: ISZERO
00000eec: PUSH2 0x0eff
00000eef: JUMPI
00000ef0: PUSH2 0x0ef8
00000ef3: DUP8
00000ef4: PUSH2 0x1f4a
00000ef7: JUMP
00000ef8: JUMPDEST
00000ef9: SWAP2
00000efa: POP
00000efb: PUSH2 0x0f04
00000efe: JUMP
00000eff: JUMPDEST
00000f00: PUSH1 0x01
00000f02: SWAP2
00000f03: POP
00000f04: JUMPDEST
00000f05: POP
00000f06: SWAP6
00000f07: SWAP5
00000f08: POP
00000f09: POP
00000f0a: POP
00000f0b: POP
00000f0c: POP
00000f0d: JUMP
00000f0e: JUMPDEST
00000f0f: PUSH1 0x07
00000f11: PUSH1 0x00
00000f13: SWAP1
00000f14: SLOAD
00000f15: SWAP1
00000f16: PUSH2 0x0100
00000f19: EXP
00000f1a: SWAP1
00000f1b: DIV
00000f1c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f31: AND
00000f32: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f47: AND
00000f48: CALLER
00000f49: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f5e: AND
00000f5f: EQ
00000f60: ISZERO
00000f61: ISZERO
00000f62: PUSH2 0x0f6a
00000f65: JUMPI
00000f66: PUSH1 0x00
00000f68: DUP1
00000f69: REVERT
00000f6a: JUMPDEST
00000f6b: PUSH1 0x07
00000f6d: PUSH1 0x00
00000f6f: SWAP1
00000f70: SLOAD
00000f71: SWAP1
00000f72: PUSH2 0x0100
00000f75: EXP
00000f76: SWAP1
00000f77: DIV
00000f78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f8d: AND
00000f8e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000fa3: AND
00000fa4: PUSH32 0xf8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820
00000fc5: PUSH1 0x40
00000fc7: MLOAD
00000fc8: PUSH1 0x40
00000fca: MLOAD
00000fcb: DUP1
00000fcc: SWAP2
00000fcd: SUB
00000fce: SWAP1
00000fcf: LOG2
00000fd0: PUSH1 0x00
00000fd2: PUSH1 0x07
00000fd4: PUSH1 0x00
00000fd6: PUSH2 0x0100
00000fd9: EXP
00000fda: DUP2
00000fdb: SLOAD
00000fdc: DUP2
00000fdd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ff2: MUL
00000ff3: NOT
00000ff4: AND
00000ff5: SWAP1
00000ff6: DUP4
00000ff7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000100c: AND
0000100d: MUL
0000100e: OR
0000100f: SWAP1
00001010: SSTORE
00001011: POP
00001012: JUMP
00001013: JUMPDEST
00001014: PUSH1 0x05
00001016: PUSH1 0x00
00001018: SWAP1
00001019: SLOAD
0000101a: SWAP1
0000101b: PUSH2 0x0100
0000101e: EXP
0000101f: SWAP1
00001020: DIV
00001021: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001036: AND
00001037: DUP2
00001038: JUMP
00001039: JUMPDEST
0000103a: PUSH1 0x00
0000103c: DUP2
0000103d: DUP4
0000103e: LT
0000103f: PUSH2 0x1048
00001042: JUMPI
00001043: DUP2
00001044: PUSH2 0x104a
00001047: JUMP
00001048: JUMPDEST
00001049: DUP3
0000104a: JUMPDEST
0000104b: SWAP1
0000104c: POP
0000104d: SWAP3
0000104e: SWAP2
0000104f: POP
00001050: POP
00001051: JUMP
00001052: JUMPDEST
00001053: PUSH1 0x07
00001055: PUSH1 0x00
00001057: SWAP1
00001058: SLOAD
00001059: SWAP1
0000105a: PUSH2 0x0100
0000105d: EXP
0000105e: SWAP1
0000105f: DIV
00001060: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001075: AND
00001076: DUP2
00001077: JUMP
00001078: JUMPDEST
00001079: PUSH1 0x00
0000107b: PUSH2 0x1082
0000107e: PUSH2 0x2bd1
00001081: JUMP
00001082: JUMPDEST
00001083: PUSH1 0x00
00001085: DUP1
00001086: SWAP1
00001087: SLOAD
00001088: SWAP1
00001089: PUSH2 0x0100
0000108c: EXP
0000108d: SWAP1
0000108e: DIV
0000108f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010a4: AND
000010a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010ba: AND
000010bb: PUSH4 0x079dd4b7
000010c0: PUSH1 0x40
000010c2: MLOAD
000010c3: DUP2
000010c4: PUSH4 0xffffffff
000010c9: AND
000010ca: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000010e8: MUL
000010e9: DUP2
000010ea: MSTORE
000010eb: PUSH1 0x04
000010ed: ADD
000010ee: PUSH1 0x20
000010f0: PUSH1 0x40
000010f2: MLOAD
000010f3: DUP1
000010f4: DUP4
000010f5: SUB
000010f6: DUP2
000010f7: PUSH1 0x00
000010f9: DUP8
000010fa: DUP1
000010fb: EXTCODESIZE
000010fc: ISZERO
000010fd: DUP1
000010fe: ISZERO
000010ff: PUSH2 0x1107
00001102: JUMPI
00001103: PUSH1 0x00
00001105: DUP1
00001106: REVERT
00001107: JUMPDEST
00001108: POP
00001109: GAS
0000110a: CALL
0000110b: ISZERO
0000110c: DUP1
0000110d: ISZERO
0000110e: PUSH2 0x111b
00001111: JUMPI
00001112: RETURNDATASIZE
00001113: PUSH1 0x00
00001115: DUP1
00001116: RETURNDATACOPY
00001117: RETURNDATASIZE
00001118: PUSH1 0x00
0000111a: REVERT
0000111b: JUMPDEST
0000111c: POP
0000111d: POP
0000111e: POP
0000111f: POP
00001120: PUSH1 0x40
00001122: MLOAD
00001123: RETURNDATASIZE
00001124: PUSH1 0x1f
00001126: NOT
00001127: PUSH1 0x1f
00001129: DUP3
0000112a: ADD
0000112b: AND
0000112c: DUP3
0000112d: ADD
0000112e: DUP1
0000112f: PUSH1 0x40
00001131: MSTORE
00001132: POP
00001133: PUSH2 0x113f
00001136: SWAP2
00001137: SWAP1
00001138: DUP2
00001139: ADD
0000113a: SWAP1
0000113b: PUSH2 0x2ee4
0000113e: JUMP
0000113f: JUMPDEST
00001140: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001155: AND
00001156: CALLER
00001157: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000116c: AND
0000116d: EQ
0000116e: ISZERO
0000116f: ISZERO
00001170: PUSH2 0x11ae
00001173: JUMPI
00001174: PUSH1 0x40
00001176: MLOAD
00001177: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001198: DUP2
00001199: MSTORE
0000119a: PUSH1 0x04
0000119c: ADD
0000119d: PUSH2 0x11a5
000011a0: SWAP1
000011a1: PUSH2 0x32c3
000011a4: JUMP
000011a5: JUMPDEST
000011a6: PUSH1 0x40
000011a8: MLOAD
000011a9: DUP1
000011aa: SWAP2
000011ab: SUB
000011ac: SWAP1
000011ad: REVERT
000011ae: JUMPDEST
000011af: PUSH2 0x11b7
000011b2: DUP5
000011b3: PUSH2 0x2038
000011b6: JUMP
000011b7: JUMPDEST
000011b8: SWAP1
000011b9: POP
000011ba: PUSH2 0x11c8
000011bd: DUP5
000011be: DUP3
000011bf: PUSH1 0x60
000011c1: ADD
000011c2: MLOAD
000011c3: DUP6
000011c4: PUSH2 0x2254
000011c7: JUMP
000011c8: JUMPDEST
000011c9: SWAP2
000011ca: POP
000011cb: POP
000011cc: SWAP3
000011cd: SWAP2
000011ce: POP
000011cf: POP
000011d0: JUMP
000011d1: JUMPDEST
000011d2: PUSH1 0x00
000011d4: PUSH2 0x11db
000011d7: PUSH2 0x2bd1
000011da: JUMP
000011db: JUMPDEST
000011dc: PUSH1 0x00
000011de: PUSH2 0x11e6
000011e1: DUP6
000011e2: PUSH2 0x2038
000011e5: JUMP
000011e6: JUMPDEST
000011e7: SWAP2
000011e8: POP
000011e9: PUSH1 0x00
000011eb: DUP1
000011ec: SWAP1
000011ed: SLOAD
000011ee: SWAP1
000011ef: PUSH2 0x0100
000011f2: EXP
000011f3: SWAP1
000011f4: DIV
000011f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000120a: AND
0000120b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001220: AND
00001221: PUSH4 0x2f866f73
00001226: PUSH1 0x40
00001228: MLOAD
00001229: DUP2
0000122a: PUSH4 0xffffffff
0000122f: AND
00001230: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000124e: MUL
0000124f: DUP2
00001250: MSTORE
00001251: PUSH1 0x04
00001253: ADD
00001254: PUSH1 0x20
00001256: PUSH1 0x40
00001258: MLOAD
00001259: DUP1
0000125a: DUP4
0000125b: SUB
0000125c: DUP2
0000125d: PUSH1 0x00
0000125f: DUP8
00001260: DUP1
00001261: EXTCODESIZE
00001262: ISZERO
00001263: DUP1
00001264: ISZERO
00001265: PUSH2 0x126d
00001268: JUMPI
00001269: PUSH1 0x00
0000126b: DUP1
0000126c: REVERT
0000126d: JUMPDEST
0000126e: POP
0000126f: GAS
00001270: CALL
00001271: ISZERO
00001272: DUP1
00001273: ISZERO
00001274: PUSH2 0x1281
00001277: JUMPI
00001278: RETURNDATASIZE
00001279: PUSH1 0x00
0000127b: DUP1
0000127c: RETURNDATACOPY
0000127d: RETURNDATASIZE
0000127e: PUSH1 0x00
00001280: REVERT
00001281: JUMPDEST
00001282: POP
00001283: POP
00001284: POP
00001285: POP
00001286: PUSH1 0x40
00001288: MLOAD
00001289: RETURNDATASIZE
0000128a: PUSH1 0x1f
0000128c: NOT
0000128d: PUSH1 0x1f
0000128f: DUP3
00001290: ADD
00001291: AND
00001292: DUP3
00001293: ADD
00001294: DUP1
00001295: PUSH1 0x40
00001297: MSTORE
00001298: POP
00001299: PUSH2 0x12a5
0000129c: SWAP2
0000129d: SWAP1
0000129e: DUP2
0000129f: ADD
000012a0: SWAP1
000012a1: PUSH2 0x2f0d
000012a4: JUMP
000012a5: JUMPDEST
000012a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012bb: AND
000012bc: PUSH4 0xd69dbf63
000012c1: DUP7
000012c2: PUSH1 0x40
000012c4: MLOAD
000012c5: DUP3
000012c6: PUSH4 0xffffffff
000012cb: AND
000012cc: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000012ea: MUL
000012eb: DUP2
000012ec: MSTORE
000012ed: PUSH1 0x04
000012ef: ADD
000012f0: PUSH2 0x12f9
000012f3: SWAP2
000012f4: SWAP1
000012f5: PUSH2 0x3237
000012f8: JUMP
000012f9: JUMPDEST
000012fa: PUSH1 0x20
000012fc: PUSH1 0x40
000012fe: MLOAD
000012ff: DUP1
00001300: DUP4
00001301: SUB
00001302: DUP2
00001303: PUSH1 0x00
00001305: DUP8
00001306: DUP1
00001307: EXTCODESIZE
00001308: ISZERO
00001309: DUP1
0000130a: ISZERO
0000130b: PUSH2 0x1313
0000130e: JUMPI
0000130f: PUSH1 0x00
00001311: DUP1
00001312: REVERT
00001313: JUMPDEST
00001314: POP
00001315: GAS
00001316: CALL
00001317: ISZERO
00001318: DUP1
00001319: ISZERO
0000131a: PUSH2 0x1327
0000131d: JUMPI
0000131e: RETURNDATASIZE
0000131f: PUSH1 0x00
00001321: DUP1
00001322: RETURNDATACOPY
00001323: RETURNDATASIZE
00001324: PUSH1 0x00
00001326: REVERT
00001327: JUMPDEST
00001328: POP
00001329: POP
0000132a: POP
0000132b: POP
0000132c: PUSH1 0x40
0000132e: MLOAD
0000132f: RETURNDATASIZE
00001330: PUSH1 0x1f
00001332: NOT
00001333: PUSH1 0x1f
00001335: DUP3
00001336: ADD
00001337: AND
00001338: DUP3
00001339: ADD
0000133a: DUP1
0000133b: PUSH1 0x40
0000133d: MSTORE
0000133e: POP
0000133f: PUSH2 0x134b
00001342: SWAP2
00001343: SWAP1
00001344: DUP2
00001345: ADD
00001346: SWAP1
00001347: PUSH2 0x2f9b
0000134a: JUMP
0000134b: JUMPDEST
0000134c: SWAP1
0000134d: POP
0000134e: DUP2
0000134f: PUSH1 0x00
00001351: ADD
00001352: MLOAD
00001353: PUSH2 0x135c
00001356: DUP3
00001357: DUP7
00001358: PUSH2 0x09ef
0000135b: JUMP
0000135c: JUMPDEST
0000135d: LT
0000135e: ISZERO
0000135f: ISZERO
00001360: PUSH2 0x136f
00001363: JUMPI
00001364: DUP2
00001365: PUSH1 0x40
00001367: ADD
00001368: MLOAD
00001369: SWAP3
0000136a: POP
0000136b: PUSH2 0x1374
0000136e: JUMP
0000136f: JUMPDEST
00001370: PUSH1 0x00
00001372: SWAP3
00001373: POP
00001374: JUMPDEST
00001375: POP
00001376: POP
00001377: SWAP3
00001378: SWAP2
00001379: POP
0000137a: POP
0000137b: JUMP
0000137c: JUMPDEST
0000137d: PUSH2 0x1384
00001380: PUSH2 0x2bfa
00001383: JUMP
00001384: JUMPDEST
00001385: PUSH1 0x00
00001387: DUP1
00001388: PUSH1 0x00
0000138a: PUSH2 0x1391
0000138d: PUSH2 0x2bfa
00001390: JUMP
00001391: JUMPDEST
00001392: PUSH1 0x00
00001394: PUSH2 0x139b
00001397: PUSH2 0x2bfa
0000139a: JUMP
0000139b: JUMPDEST
0000139c: PUSH2 0x13a3
0000139f: PUSH2 0x2bfa
000013a2: JUMP
000013a3: JUMPDEST
000013a4: PUSH1 0x00
000013a6: PUSH2 0x13ad
000013a9: PUSH2 0x2bfa
000013ac: JUMP
000013ad: JUMPDEST
000013ae: PUSH1 0x02
000013b0: SLOAD
000013b1: PUSH1 0x0a
000013b3: EXP
000013b4: SWAP9
000013b5: POP
000013b6: PUSH1 0x04
000013b8: SLOAD
000013b9: PUSH1 0x0a
000013bb: EXP
000013bc: SWAP8
000013bd: POP
000013be: PUSH1 0x05
000013c0: PUSH1 0x00
000013c2: SWAP1
000013c3: SLOAD
000013c4: SWAP1
000013c5: PUSH2 0x0100
000013c8: EXP
000013c9: SWAP1
000013ca: DIV
000013cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013e0: AND
000013e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013f6: AND
000013f7: PUSH4 0x57de26a4
000013fc: PUSH1 0x40
000013fe: MLOAD
000013ff: DUP2
00001400: PUSH4 0xffffffff
00001405: AND
00001406: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00001424: MUL
00001425: DUP2
00001426: MSTORE
00001427: PUSH1 0x04
00001429: ADD
0000142a: PUSH1 0x20
0000142c: PUSH1 0x40
0000142e: MLOAD
0000142f: DUP1
00001430: DUP4
00001431: SUB
00001432: DUP2
00001433: PUSH1 0x00
00001435: DUP8
00001436: DUP1
00001437: EXTCODESIZE
00001438: ISZERO
00001439: DUP1
0000143a: ISZERO
0000143b: PUSH2 0x1443
0000143e: JUMPI
0000143f: PUSH1 0x00
00001441: DUP1
00001442: REVERT
00001443: JUMPDEST
00001444: POP
00001445: GAS
00001446: CALL
00001447: ISZERO
00001448: DUP1
00001449: ISZERO
0000144a: PUSH2 0x1457
0000144d: JUMPI
0000144e: RETURNDATASIZE
0000144f: PUSH1 0x00
00001451: DUP1
00001452: RETURNDATACOPY
00001453: RETURNDATASIZE
00001454: PUSH1 0x00
00001456: REVERT
00001457: JUMPDEST
00001458: POP
00001459: POP
0000145a: POP
0000145b: POP
0000145c: PUSH1 0x40
0000145e: MLOAD
0000145f: RETURNDATASIZE
00001460: PUSH1 0x1f
00001462: NOT
00001463: PUSH1 0x1f
00001465: DUP3
00001466: ADD
00001467: AND
00001468: DUP3
00001469: ADD
0000146a: DUP1
0000146b: PUSH1 0x40
0000146d: MSTORE
0000146e: POP
0000146f: PUSH2 0x147b
00001472: SWAP2
00001473: SWAP1
00001474: DUP2
00001475: ADD
00001476: SWAP1
00001477: PUSH2 0x2dcc
0000147a: JUMP
0000147b: JUMPDEST
0000147c: PUSH1 0x01
0000147e: SWAP1
0000147f: DIV
00001480: SWAP7
00001481: POP
00001482: PUSH1 0x40
00001484: DUP1
00001485: MLOAD
00001486: SWAP1
00001487: DUP2
00001488: ADD
00001489: PUSH1 0x40
0000148b: MSTORE
0000148c: DUP1
0000148d: DUP9
0000148e: DUP2
0000148f: MSTORE
00001490: PUSH1 0x20
00001492: ADD
00001493: PUSH1 0x12
00001495: PUSH1 0x0a
00001497: EXP
00001498: DUP2
00001499: MSTORE
0000149a: POP
0000149b: SWAP6
0000149c: POP
0000149d: PUSH2 0x14a5
000014a0: DUP12
000014a1: PUSH2 0x1892
000014a4: JUMP
000014a5: JUMPDEST
000014a6: SWAP5
000014a7: POP
000014a8: PUSH1 0x40
000014aa: DUP1
000014ab: MLOAD
000014ac: SWAP1
000014ad: DUP2
000014ae: ADD
000014af: PUSH1 0x40
000014b1: MSTORE
000014b2: DUP1
000014b3: DUP7
000014b4: DUP2
000014b5: MSTORE
000014b6: PUSH1 0x20
000014b8: ADD
000014b9: DUP11
000014ba: DUP2
000014bb: MSTORE
000014bc: POP
000014bd: SWAP4
000014be: POP
000014bf: PUSH2 0x14d1
000014c2: DUP7
000014c3: DUP6
000014c4: PUSH2 0x23e5
000014c7: SWAP1
000014c8: SWAP2
000014c9: SWAP1
000014ca: PUSH4 0xffffffff
000014cf: AND
000014d0: JUMP
000014d1: JUMPDEST
000014d2: SWAP3
000014d3: POP
000014d4: PUSH1 0x06
000014d6: PUSH1 0x00
000014d8: DUP13
000014d9: PUSH1 0x00
000014db: NOT
000014dc: AND
000014dd: PUSH1 0x00
000014df: NOT
000014e0: AND
000014e1: DUP2
000014e2: MSTORE
000014e3: PUSH1 0x20
000014e5: ADD
000014e6: SWAP1
000014e7: DUP2
000014e8: MSTORE
000014e9: PUSH1 0x20
000014eb: ADD
000014ec: PUSH1 0x00
000014ee: KECCAK256
000014ef: PUSH1 0x00
000014f1: ADD
000014f2: SLOAD
000014f3: SWAP2
000014f4: POP
000014f5: PUSH1 0x40
000014f7: DUP1
000014f8: MLOAD
000014f9: SWAP1
000014fa: DUP2
000014fb: ADD
000014fc: PUSH1 0x40
000014fe: MSTORE
000014ff: DUP1
00001500: DUP4
00001501: DUP2
00001502: MSTORE
00001503: PUSH1 0x20
00001505: ADD
00001506: DUP10
00001507: DUP2
00001508: MSTORE
00001509: POP
0000150a: SWAP1
0000150b: POP
0000150c: PUSH2 0x1515
0000150f: DUP2
00001510: DUP5
00001511: PUSH2 0x2433
00001514: JUMP
00001515: JUMPDEST
00001516: SWAP10
00001517: POP
00001518: POP
00001519: POP
0000151a: POP
0000151b: POP
0000151c: POP
0000151d: POP
0000151e: POP
0000151f: POP
00001520: POP
00001521: SWAP2
00001522: SWAP1
00001523: POP
00001524: JUMP
00001525: JUMPDEST
00001526: PUSH1 0x00
00001528: DUP1
00001529: SWAP1
0000152a: SLOAD
0000152b: SWAP1
0000152c: PUSH2 0x0100
0000152f: EXP
00001530: SWAP1
00001531: DIV
00001532: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001547: AND
00001548: DUP2
00001549: JUMP
0000154a: JUMPDEST
0000154b: PUSH1 0x03
0000154d: PUSH1 0x00
0000154f: SWAP1
00001550: SLOAD
00001551: SWAP1
00001552: PUSH2 0x0100
00001555: EXP
00001556: SWAP1
00001557: DIV
00001558: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000156d: AND
0000156e: DUP2
0000156f: JUMP
00001570: JUMPDEST
00001571: PUSH1 0x00
00001573: PUSH2 0x157b
00001576: DUP3
00001577: PUSH2 0x08e5
0000157a: JUMP
0000157b: JUMPDEST
0000157c: PUSH2 0x1585
0000157f: DUP4
00001580: TIMESTAMP
00001581: PUSH2 0x11d1
00001584: JUMP
00001585: JUMPDEST
00001586: GT
00001587: SWAP1
00001588: POP
00001589: SWAP2
0000158a: SWAP1
0000158b: POP
0000158c: JUMP
0000158d: JUMPDEST
0000158e: PUSH1 0x04
00001590: SLOAD
00001591: DUP2
00001592: JUMP
00001593: JUMPDEST
00001594: PUSH1 0x00
00001596: DUP1
00001597: PUSH1 0x00
00001599: DUP1
0000159a: PUSH2 0x15a1
0000159d: PUSH2 0x2bfa
000015a0: JUMP
000015a1: JUMPDEST
000015a2: PUSH1 0x00
000015a4: PUSH2 0x15ab
000015a7: PUSH2 0x2bfa
000015aa: JUMP
000015ab: JUMPDEST
000015ac: PUSH2 0x15b3
000015af: PUSH2 0x2bfa
000015b2: JUMP
000015b3: JUMPDEST
000015b4: PUSH1 0x00
000015b6: PUSH2 0x15bd
000015b9: PUSH2 0x2bfa
000015bc: JUMP
000015bd: JUMPDEST
000015be: PUSH2 0x15c5
000015c1: PUSH2 0x2bfa
000015c4: JUMP
000015c5: JUMPDEST
000015c6: PUSH1 0x02
000015c8: SLOAD
000015c9: PUSH1 0x0a
000015cb: EXP
000015cc: SWAP10
000015cd: POP
000015ce: PUSH1 0x04
000015d0: SLOAD
000015d1: PUSH1 0x0a
000015d3: EXP
000015d4: SWAP9
000015d5: POP
000015d6: PUSH1 0x05
000015d8: PUSH1 0x00
000015da: SWAP1
000015db: SLOAD
000015dc: SWAP1
000015dd: PUSH2 0x0100
000015e0: EXP
000015e1: SWAP1
000015e2: DIV
000015e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015f8: AND
000015f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000160e: AND
0000160f: PUSH4 0x57de26a4
00001614: PUSH1 0x40
00001616: MLOAD
00001617: DUP2
00001618: PUSH4 0xffffffff
0000161d: AND
0000161e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000163c: MUL
0000163d: DUP2
0000163e: MSTORE
0000163f: PUSH1 0x04
00001641: ADD
00001642: PUSH1 0x20
00001644: PUSH1 0x40
00001646: MLOAD
00001647: DUP1
00001648: DUP4
00001649: SUB
0000164a: DUP2
0000164b: PUSH1 0x00
0000164d: DUP8
0000164e: DUP1
0000164f: EXTCODESIZE
00001650: ISZERO
00001651: DUP1
00001652: ISZERO
00001653: PUSH2 0x165b
00001656: JUMPI
00001657: PUSH1 0x00
00001659: DUP1
0000165a: REVERT
0000165b: JUMPDEST
0000165c: POP
0000165d: GAS
0000165e: CALL
0000165f: ISZERO
00001660: DUP1
00001661: ISZERO
00001662: PUSH2 0x166f
00001665: JUMPI
00001666: RETURNDATASIZE
00001667: PUSH1 0x00
00001669: DUP1
0000166a: RETURNDATACOPY
0000166b: RETURNDATASIZE
0000166c: PUSH1 0x00
0000166e: REVERT
0000166f: JUMPDEST
00001670: POP
00001671: POP
00001672: POP
00001673: POP
00001674: PUSH1 0x40
00001676: MLOAD
00001677: RETURNDATASIZE
00001678: PUSH1 0x1f
0000167a: NOT
0000167b: PUSH1 0x1f
0000167d: DUP3
0000167e: ADD
0000167f: AND
00001680: DUP3
00001681: ADD
00001682: DUP1
00001683: PUSH1 0x40
00001685: MSTORE
00001686: POP
00001687: PUSH2 0x1693
0000168a: SWAP2
0000168b: SWAP1
0000168c: DUP2
0000168d: ADD
0000168e: SWAP1
0000168f: PUSH2 0x2dcc
00001692: JUMP
00001693: JUMPDEST
00001694: PUSH1 0x01
00001696: SWAP1
00001697: DIV
00001698: SWAP8
00001699: POP
0000169a: PUSH1 0x40
0000169c: DUP1
0000169d: MLOAD
0000169e: SWAP1
0000169f: DUP2
000016a0: ADD
000016a1: PUSH1 0x40
000016a3: MSTORE
000016a4: DUP1
000016a5: DUP10
000016a6: DUP2
000016a7: MSTORE
000016a8: PUSH1 0x20
000016aa: ADD
000016ab: PUSH1 0x12
000016ad: PUSH1 0x0a
000016af: EXP
000016b0: DUP2
000016b1: MSTORE
000016b2: POP
000016b3: SWAP7
000016b4: POP
000016b5: PUSH2 0x16bd
000016b8: DUP13
000016b9: PUSH2 0x1892
000016bc: JUMP
000016bd: JUMPDEST
000016be: SWAP6
000016bf: POP
000016c0: PUSH1 0x40
000016c2: DUP1
000016c3: MLOAD
000016c4: SWAP1
000016c5: DUP2
000016c6: ADD
000016c7: PUSH1 0x40
000016c9: MSTORE
000016ca: DUP1
000016cb: DUP8
000016cc: DUP2
000016cd: MSTORE
000016ce: PUSH1 0x20
000016d0: ADD
000016d1: DUP12
000016d2: DUP2
000016d3: MSTORE
000016d4: POP
000016d5: SWAP5
000016d6: POP
000016d7: PUSH2 0x16e9
000016da: DUP8
000016db: DUP7
000016dc: PUSH2 0x23e5
000016df: SWAP1
000016e0: SWAP2
000016e1: SWAP1
000016e2: PUSH4 0xffffffff
000016e7: AND
000016e8: JUMP
000016e9: JUMPDEST
000016ea: SWAP4
000016eb: POP
000016ec: PUSH1 0x06
000016ee: PUSH1 0x00
000016f0: DUP14
000016f1: PUSH1 0x00
000016f3: NOT
000016f4: AND
000016f5: PUSH1 0x00
000016f7: NOT
000016f8: AND
000016f9: DUP2
000016fa: MSTORE
000016fb: PUSH1 0x20
000016fd: ADD
000016fe: SWAP1
000016ff: DUP2
00001700: MSTORE
00001701: PUSH1 0x20
00001703: ADD
00001704: PUSH1 0x00
00001706: KECCAK256
00001707: PUSH1 0x00
00001709: ADD
0000170a: SLOAD
0000170b: SWAP3
0000170c: POP
0000170d: PUSH1 0x40
0000170f: DUP1
00001710: MLOAD
00001711: SWAP1
00001712: DUP2
00001713: ADD
00001714: PUSH1 0x40
00001716: MSTORE
00001717: DUP1
00001718: DUP5
00001719: DUP2
0000171a: MSTORE
0000171b: PUSH1 0x20
0000171d: ADD
0000171e: DUP11
0000171f: DUP2
00001720: MSTORE
00001721: POP
00001722: SWAP2
00001723: POP
00001724: PUSH2 0x1736
00001727: DUP3
00001728: DUP6
00001729: PUSH2 0x2494
0000172c: SWAP1
0000172d: SWAP2
0000172e: SWAP1
0000172f: PUSH4 0xffffffff
00001734: AND
00001735: JUMP
00001736: JUMPDEST
00001737: SWAP1
00001738: POP
00001739: PUSH2 0x174c
0000173c: PUSH1 0x02
0000173e: DUP3
0000173f: PUSH2 0x220c
00001742: SWAP1
00001743: SWAP2
00001744: SWAP1
00001745: PUSH4 0xffffffff
0000174a: AND
0000174b: JUMP
0000174c: JUMPDEST
0000174d: SWAP11
0000174e: POP
0000174f: POP
00001750: POP
00001751: POP
00001752: POP
00001753: POP
00001754: POP
00001755: POP
00001756: POP
00001757: POP
00001758: POP
00001759: SWAP2
0000175a: SWAP1
0000175b: POP
0000175c: JUMP
0000175d: JUMPDEST
0000175e: PUSH1 0x00
00001760: DUP1
00001761: CALLER
00001762: SWAP2
00001763: POP
00001764: ADDRESS
00001765: SWAP1
00001766: POP
00001767: PUSH2 0x1793
0000176a: PUSH1 0x03
0000176c: PUSH1 0x00
0000176e: SWAP1
0000176f: SLOAD
00001770: SWAP1
00001771: PUSH2 0x0100
00001774: EXP
00001775: SWAP1
00001776: DIV
00001777: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000178c: AND
0000178d: DUP4
0000178e: DUP6
0000178f: PUSH2 0x24e2
00001792: JUMP
00001793: JUMPDEST
00001794: POP
00001795: PUSH2 0x17c5
00001798: DUP4
00001799: PUSH1 0x06
0000179b: PUSH1 0x00
0000179d: DUP8
0000179e: PUSH1 0x00
000017a0: NOT
000017a1: AND
000017a2: PUSH1 0x00
000017a4: NOT
000017a5: AND
000017a6: DUP2
000017a7: MSTORE
000017a8: PUSH1 0x20
000017aa: ADD
000017ab: SWAP1
000017ac: DUP2
000017ad: MSTORE
000017ae: PUSH1 0x20
000017b0: ADD
000017b1: PUSH1 0x00
000017b3: KECCAK256
000017b4: PUSH1 0x00
000017b6: ADD
000017b7: SLOAD
000017b8: PUSH2 0x21f0
000017bb: SWAP1
000017bc: SWAP2
000017bd: SWAP1
000017be: PUSH4 0xffffffff
000017c3: AND
000017c4: JUMP
000017c5: JUMPDEST
000017c6: PUSH1 0x06
000017c8: PUSH1 0x00
000017ca: DUP7
000017cb: PUSH1 0x00
000017cd: NOT
000017ce: AND
000017cf: PUSH1 0x00
000017d1: NOT
000017d2: AND
000017d3: DUP2
000017d4: MSTORE
000017d5: PUSH1 0x20
000017d7: ADD
000017d8: SWAP1
000017d9: DUP2
000017da: MSTORE
000017db: PUSH1 0x20
000017dd: ADD
000017de: PUSH1 0x00
000017e0: KECCAK256
000017e1: PUSH1 0x00
000017e3: ADD
000017e4: DUP2
000017e5: SWAP1
000017e6: SSTORE
000017e7: POP
000017e8: POP
000017e9: POP
000017ea: POP
000017eb: POP
000017ec: JUMP
000017ed: JUMPDEST
000017ee: PUSH1 0x01
000017f0: PUSH1 0x00
000017f2: SWAP1
000017f3: SLOAD
000017f4: SWAP1
000017f5: PUSH2 0x0100
000017f8: EXP
000017f9: SWAP1
000017fa: DIV
000017fb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001810: AND
00001811: DUP2
00001812: JUMP
00001813: JUMPDEST
00001814: PUSH1 0x00
00001816: DUP1
00001817: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000182c: AND
0000182d: PUSH1 0x06
0000182f: PUSH1 0x00
00001831: DUP5
00001832: PUSH1 0x00
00001834: NOT
00001835: AND
00001836: PUSH1 0x00
00001838: NOT
00001839: AND
0000183a: DUP2
0000183b: MSTORE
0000183c: PUSH1 0x20
0000183e: ADD
0000183f: SWAP1
00001840: DUP2
00001841: MSTORE
00001842: PUSH1 0x20
00001844: ADD
00001845: PUSH1 0x00
00001847: KECCAK256
00001848: PUSH1 0x01
0000184a: ADD
0000184b: PUSH1 0x00
0000184d: SWAP1
0000184e: SLOAD
0000184f: SWAP1
00001850: PUSH2 0x0100
00001853: EXP
00001854: SWAP1
00001855: DIV
00001856: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000186b: AND
0000186c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001881: AND
00001882: EQ
00001883: ISZERO
00001884: SWAP1
00001885: POP
00001886: SWAP2
00001887: SWAP1
00001888: POP
00001889: JUMP
0000188a: JUMPDEST
0000188b: PUSH1 0x12
0000188d: PUSH1 0x0a
0000188f: EXP
00001890: DUP2
00001891: JUMP
00001892: JUMPDEST
00001893: PUSH1 0x00
00001895: DUP1
00001896: PUSH1 0x00
00001898: DUP1
00001899: PUSH2 0x18a1
0000189c: DUP6
0000189d: PUSH2 0x0a78
000018a0: JUMP
000018a1: JUMPDEST
000018a2: SWAP3
000018a3: POP
000018a4: PUSH2 0x18ad
000018a7: DUP6
000018a8: DUP5
000018a9: PUSH2 0x11d1
000018ac: JUMP
000018ad: JUMPDEST
000018ae: SWAP2
000018af: POP
000018b0: PUSH2 0x18b8
000018b3: DUP6
000018b4: PUSH2 0x08e5
000018b7: JUMP
000018b8: JUMPDEST
000018b9: SWAP1
000018ba: POP
000018bb: PUSH2 0x18cd
000018be: DUP2
000018bf: DUP4
000018c0: PUSH2 0x2009
000018c3: SWAP1
000018c4: SWAP2
000018c5: SWAP1
000018c6: PUSH4 0xffffffff
000018cb: AND
000018cc: JUMP
000018cd: JUMPDEST
000018ce: SWAP4
000018cf: POP
000018d0: POP
000018d1: POP
000018d2: POP
000018d3: SWAP2
000018d4: SWAP1
000018d5: POP
000018d6: JUMP
000018d7: JUMPDEST
000018d8: PUSH1 0x07
000018da: PUSH1 0x00
000018dc: SWAP1
000018dd: SLOAD
000018de: SWAP1
000018df: PUSH2 0x0100
000018e2: EXP
000018e3: SWAP1
000018e4: DIV
000018e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018fa: AND
000018fb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001910: AND
00001911: CALLER
00001912: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001927: AND
00001928: EQ
00001929: ISZERO
0000192a: ISZERO
0000192b: PUSH2 0x1933
0000192e: JUMPI
0000192f: PUSH1 0x00
00001931: DUP1
00001932: REVERT
00001933: JUMPDEST
00001934: PUSH2 0x193c
00001937: DUP2
00001938: PUSH2 0x259d
0000193b: JUMP
0000193c: JUMPDEST
0000193d: POP
0000193e: JUMP
0000193f: JUMPDEST
00001940: PUSH2 0x1947
00001943: PUSH2 0x2baf
00001946: JUMP
00001947: JUMPDEST
00001948: PUSH1 0x00
0000194a: DUP1
0000194b: PUSH1 0x00
0000194d: PUSH2 0x1954
00001950: PUSH2 0x2bfa
00001953: JUMP
00001954: JUMPDEST
00001955: PUSH1 0x00
00001957: PUSH2 0x195e
0000195a: PUSH2 0x2bfa
0000195d: JUMP
0000195e: JUMPDEST
0000195f: PUSH2 0x1966
00001962: PUSH2 0x2bfa
00001965: JUMP
00001966: JUMPDEST
00001967: PUSH2 0x196e
0000196a: PUSH2 0x2bfa
0000196d: JUMP
0000196e: JUMPDEST
0000196f: PUSH1 0x00
00001971: PUSH1 0x02
00001973: SLOAD
00001974: PUSH1 0x0a
00001976: EXP
00001977: SWAP9
00001978: POP
00001979: PUSH1 0x04
0000197b: SLOAD
0000197c: PUSH1 0x0a
0000197e: EXP
0000197f: SWAP8
00001980: POP
00001981: PUSH1 0x05
00001983: PUSH1 0x00
00001985: SWAP1
00001986: SLOAD
00001987: SWAP1
00001988: PUSH2 0x0100
0000198b: EXP
0000198c: SWAP1
0000198d: DIV
0000198e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019a3: AND
000019a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019b9: AND
000019ba: PUSH4 0x57de26a4
000019bf: PUSH1 0x40
000019c1: MLOAD
000019c2: DUP2
000019c3: PUSH4 0xffffffff
000019c8: AND
000019c9: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000019e7: MUL
000019e8: DUP2
000019e9: MSTORE
000019ea: PUSH1 0x04
000019ec: ADD
000019ed: PUSH1 0x20
000019ef: PUSH1 0x40
000019f1: MLOAD
000019f2: DUP1
000019f3: DUP4
000019f4: SUB
000019f5: DUP2
000019f6: PUSH1 0x00
000019f8: DUP8
000019f9: DUP1
000019fa: EXTCODESIZE
000019fb: ISZERO
000019fc: DUP1
000019fd: ISZERO
000019fe: PUSH2 0x1a06
00001a01: JUMPI
00001a02: PUSH1 0x00
00001a04: DUP1
00001a05: REVERT
00001a06: JUMPDEST
00001a07: POP
00001a08: GAS
00001a09: CALL
00001a0a: ISZERO
00001a0b: DUP1
00001a0c: ISZERO
00001a0d: PUSH2 0x1a1a
00001a10: JUMPI
00001a11: RETURNDATASIZE
00001a12: PUSH1 0x00
00001a14: DUP1
00001a15: RETURNDATACOPY
00001a16: RETURNDATASIZE
00001a17: PUSH1 0x00
00001a19: REVERT
00001a1a: JUMPDEST
00001a1b: POP
00001a1c: POP
00001a1d: POP
00001a1e: POP
00001a1f: PUSH1 0x40
00001a21: MLOAD
00001a22: RETURNDATASIZE
00001a23: PUSH1 0x1f
00001a25: NOT
00001a26: PUSH1 0x1f
00001a28: DUP3
00001a29: ADD
00001a2a: AND
00001a2b: DUP3
00001a2c: ADD
00001a2d: DUP1
00001a2e: PUSH1 0x40
00001a30: MSTORE
00001a31: POP
00001a32: PUSH2 0x1a3e
00001a35: SWAP2
00001a36: SWAP1
00001a37: DUP2
00001a38: ADD
00001a39: SWAP1
00001a3a: PUSH2 0x2dcc
00001a3d: JUMP
00001a3e: JUMPDEST
00001a3f: PUSH1 0x01
00001a41: SWAP1
00001a42: DIV
00001a43: SWAP7
00001a44: POP
00001a45: PUSH1 0x40
00001a47: DUP1
00001a48: MLOAD
00001a49: SWAP1
00001a4a: DUP2
00001a4b: ADD
00001a4c: PUSH1 0x40
00001a4e: MSTORE
00001a4f: DUP1
00001a50: DUP9
00001a51: DUP2
00001a52: MSTORE
00001a53: PUSH1 0x20
00001a55: ADD
00001a56: PUSH1 0x12
00001a58: PUSH1 0x0a
00001a5a: EXP
00001a5b: DUP2
00001a5c: MSTORE
00001a5d: POP
00001a5e: SWAP6
00001a5f: POP
00001a60: PUSH1 0x06
00001a62: PUSH1 0x00
00001a64: DUP13
00001a65: PUSH1 0x00
00001a67: NOT
00001a68: AND
00001a69: PUSH1 0x00
00001a6b: NOT
00001a6c: AND
00001a6d: DUP2
00001a6e: MSTORE
00001a6f: PUSH1 0x20
00001a71: ADD
00001a72: SWAP1
00001a73: DUP2
00001a74: MSTORE
00001a75: PUSH1 0x20
00001a77: ADD
00001a78: PUSH1 0x00
00001a7a: KECCAK256
00001a7b: PUSH1 0x00
00001a7d: ADD
00001a7e: SLOAD
00001a7f: SWAP5
00001a80: POP
00001a81: PUSH1 0x40
00001a83: DUP1
00001a84: MLOAD
00001a85: SWAP1
00001a86: DUP2
00001a87: ADD
00001a88: PUSH1 0x40
00001a8a: MSTORE
00001a8b: DUP1
00001a8c: DUP7
00001a8d: DUP2
00001a8e: MSTORE
00001a8f: PUSH1 0x20
00001a91: ADD
00001a92: DUP10
00001a93: DUP2
00001a94: MSTORE
00001a95: POP
00001a96: SWAP4
00001a97: POP
00001a98: PUSH2 0x1aa0
00001a9b: DUP12
00001a9c: PUSH2 0x137c
00001a9f: JUMP
00001aa0: JUMPDEST
00001aa1: SWAP3
00001aa2: POP
00001aa3: PUSH2 0x1ab5
00001aa6: DUP7
00001aa7: DUP5
00001aa8: PUSH2 0x2494
00001aab: SWAP1
00001aac: SWAP2
00001aad: SWAP1
00001aae: PUSH4 0xffffffff
00001ab3: AND
00001ab4: JUMP
00001ab5: JUMPDEST
00001ab6: SWAP2
00001ab7: POP
00001ab8: PUSH2 0x1ac1
00001abb: DUP5
00001abc: DUP5
00001abd: PUSH2 0x0c6f
00001ac0: JUMP
00001ac1: JUMPDEST
00001ac2: SWAP1
00001ac3: POP
00001ac4: PUSH1 0x60
00001ac6: PUSH1 0x40
00001ac8: MLOAD
00001ac9: SWAP1
00001aca: DUP2
00001acb: ADD
00001acc: PUSH1 0x40
00001ace: MSTORE
00001acf: DUP1
00001ad0: PUSH2 0x1ae4
00001ad3: PUSH1 0x04
00001ad5: SLOAD
00001ad6: DUP7
00001ad7: PUSH2 0x220c
00001ada: SWAP1
00001adb: SWAP2
00001adc: SWAP1
00001add: PUSH4 0xffffffff
00001ae2: AND
00001ae3: JUMP
00001ae4: JUMPDEST
00001ae5: DUP2
00001ae6: MSTORE
00001ae7: PUSH1 0x20
00001ae9: ADD
00001aea: PUSH2 0x1afe
00001aed: PUSH1 0x02
00001aef: SLOAD
00001af0: DUP6
00001af1: PUSH2 0x220c
00001af4: SWAP1
00001af5: SWAP2
00001af6: SWAP1
00001af7: PUSH4 0xffffffff
00001afc: AND
00001afd: JUMP
00001afe: JUMPDEST
00001aff: DUP2
00001b00: MSTORE
00001b01: PUSH1 0x20
00001b03: ADD
00001b04: DUP3
00001b05: DUP2
00001b06: MSTORE
00001b07: POP
00001b08: SWAP10
00001b09: POP
00001b0a: POP
00001b0b: POP
00001b0c: POP
00001b0d: POP
00001b0e: POP
00001b0f: POP
00001b10: POP
00001b11: POP
00001b12: POP
00001b13: SWAP2
00001b14: SWAP1
00001b15: POP
00001b16: JUMP
00001b17: JUMPDEST
00001b18: PUSH1 0x00
00001b1a: PUSH2 0x1b2c
00001b1d: PUSH2 0x1b25
00001b20: DUP5
00001b21: PUSH2 0x1813
00001b24: JUMP
00001b25: JUMPDEST
00001b26: PUSH1 0x04
00001b28: PUSH2 0x2699
00001b2b: JUMP
00001b2c: JUMPDEST
00001b2d: ISZERO
00001b2e: PUSH2 0x1b3a
00001b31: JUMPI
00001b32: PUSH1 0x00
00001b34: SWAP1
00001b35: POP
00001b36: PUSH2 0x1ba9
00001b39: JUMP
00001b3a: JUMPDEST
00001b3b: PUSH2 0x1b4d
00001b3e: PUSH2 0x1b46
00001b41: DUP5
00001b42: PUSH2 0x0c0b
00001b45: JUMP
00001b46: JUMPDEST
00001b47: PUSH1 0x02
00001b49: PUSH2 0x2699
00001b4c: JUMP
00001b4d: JUMPDEST
00001b4e: ISZERO
00001b4f: PUSH2 0x1b5b
00001b52: JUMPI
00001b53: PUSH1 0x00
00001b55: SWAP1
00001b56: POP
00001b57: PUSH2 0x1ba9
00001b5a: JUMP
00001b5b: JUMPDEST
00001b5c: PUSH2 0x1b96
00001b5f: PUSH2 0x1b8f
00001b62: PUSH1 0x01
00001b64: PUSH1 0x00
00001b66: SWAP1
00001b67: SLOAD
00001b68: SWAP1
00001b69: PUSH2 0x0100
00001b6c: EXP
00001b6d: SWAP1
00001b6e: DIV
00001b6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b84: AND
00001b85: CALLER
00001b86: DUP6
00001b87: PUSH1 0x20
00001b89: ADD
00001b8a: MLOAD
00001b8b: PUSH2 0x26f1
00001b8e: JUMP
00001b8f: JUMPDEST
00001b90: PUSH1 0x00
00001b92: PUSH2 0x2699
00001b95: JUMP
00001b96: JUMPDEST
00001b97: ISZERO
00001b98: PUSH2 0x1ba4
00001b9b: JUMPI
00001b9c: PUSH1 0x00
00001b9e: SWAP1
00001b9f: POP
00001ba0: PUSH2 0x1ba9
00001ba3: JUMP
00001ba4: JUMPDEST
00001ba5: PUSH1 0x01
00001ba7: SWAP1
00001ba8: POP
00001ba9: JUMPDEST
00001baa: SWAP3
00001bab: SWAP2
00001bac: POP
00001bad: POP
00001bae: JUMP
00001baf: JUMPDEST
00001bb0: PUSH1 0x00
00001bb2: PUSH2 0x1be2
00001bb5: DUP4
00001bb6: PUSH1 0x06
00001bb8: PUSH1 0x00
00001bba: DUP9
00001bbb: PUSH1 0x00
00001bbd: NOT
00001bbe: AND
00001bbf: PUSH1 0x00
00001bc1: NOT
00001bc2: AND
00001bc3: DUP2
00001bc4: MSTORE
00001bc5: PUSH1 0x20
00001bc7: ADD
00001bc8: SWAP1
00001bc9: DUP2
00001bca: MSTORE
00001bcb: PUSH1 0x20
00001bcd: ADD
00001bce: PUSH1 0x00
00001bd0: KECCAK256
00001bd1: PUSH1 0x00
00001bd3: ADD
00001bd4: SLOAD
00001bd5: PUSH2 0x2009
00001bd8: SWAP1
00001bd9: SWAP2
00001bda: SWAP1
00001bdb: PUSH4 0xffffffff
00001be0: AND
00001be1: JUMP
00001be2: JUMPDEST
00001be3: PUSH1 0x06
00001be5: PUSH1 0x00
00001be7: DUP8
00001be8: PUSH1 0x00
00001bea: NOT
00001beb: AND
00001bec: PUSH1 0x00
00001bee: NOT
00001bef: AND
00001bf0: DUP2
00001bf1: MSTORE
00001bf2: PUSH1 0x20
00001bf4: ADD
00001bf5: SWAP1
00001bf6: DUP2
00001bf7: MSTORE
00001bf8: PUSH1 0x20
00001bfa: ADD
00001bfb: PUSH1 0x00
00001bfd: KECCAK256
00001bfe: PUSH1 0x00
00001c00: ADD
00001c01: DUP2
00001c02: SWAP1
00001c03: SSTORE
00001c04: POP
00001c05: PUSH2 0x1c31
00001c08: PUSH1 0x01
00001c0a: PUSH1 0x00
00001c0c: SWAP1
00001c0d: SLOAD
00001c0e: SWAP1
00001c0f: PUSH2 0x0100
00001c12: EXP
00001c13: SWAP1
00001c14: DIV
00001c15: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c2a: AND
00001c2b: DUP6
00001c2c: DUP5
00001c2d: PUSH2 0x24e2
00001c30: JUMP
00001c31: JUMPDEST
00001c32: DUP1
00001c33: ISZERO
00001c34: PUSH2 0x1d04
00001c37: JUMPI
00001c38: POP
00001c39: PUSH1 0x03
00001c3b: PUSH1 0x00
00001c3d: SWAP1
00001c3e: SLOAD
00001c3f: SWAP1
00001c40: PUSH2 0x0100
00001c43: EXP
00001c44: SWAP1
00001c45: DIV
00001c46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c5b: AND
00001c5c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c71: AND
00001c72: PUSH4 0xa9059cbb
00001c77: DUP6
00001c78: DUP6
00001c79: PUSH1 0x40
00001c7b: MLOAD
00001c7c: DUP4
00001c7d: PUSH4 0xffffffff
00001c82: AND
00001c83: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00001ca1: MUL
00001ca2: DUP2
00001ca3: MSTORE
00001ca4: PUSH1 0x04
00001ca6: ADD
00001ca7: PUSH2 0x1cb1
00001caa: SWAP3
00001cab: SWAP2
00001cac: SWAP1
00001cad: PUSH2 0x31f3
00001cb0: JUMP
00001cb1: JUMPDEST
00001cb2: PUSH1 0x20
00001cb4: PUSH1 0x40
00001cb6: MLOAD
00001cb7: DUP1
00001cb8: DUP4
00001cb9: SUB
00001cba: DUP2
00001cbb: PUSH1 0x00
00001cbd: DUP8
00001cbe: DUP1
00001cbf: EXTCODESIZE
00001cc0: ISZERO
00001cc1: DUP1
00001cc2: ISZERO
00001cc3: PUSH2 0x1ccb
00001cc6: JUMPI
00001cc7: PUSH1 0x00
00001cc9: DUP1
00001cca: REVERT
00001ccb: JUMPDEST
00001ccc: POP
00001ccd: GAS
00001cce: CALL
00001ccf: ISZERO
00001cd0: DUP1
00001cd1: ISZERO
00001cd2: PUSH2 0x1cdf
00001cd5: JUMPI
00001cd6: RETURNDATASIZE
00001cd7: PUSH1 0x00
00001cd9: DUP1
00001cda: RETURNDATACOPY
00001cdb: RETURNDATASIZE
00001cdc: PUSH1 0x00
00001cde: REVERT
00001cdf: JUMPDEST
00001ce0: POP
00001ce1: POP
00001ce2: POP
00001ce3: POP
00001ce4: PUSH1 0x40
00001ce6: MLOAD
00001ce7: RETURNDATASIZE
00001ce8: PUSH1 0x1f
00001cea: NOT
00001ceb: PUSH1 0x1f
00001ced: DUP3
00001cee: ADD
00001cef: AND
00001cf0: DUP3
00001cf1: ADD
00001cf2: DUP1
00001cf3: PUSH1 0x40
00001cf5: MSTORE
00001cf6: POP
00001cf7: PUSH2 0x1d03
00001cfa: SWAP2
00001cfb: SWAP1
00001cfc: DUP2
00001cfd: ADD
00001cfe: SWAP1
00001cff: PUSH2 0x2d7a
00001d02: JUMP
00001d03: JUMPDEST
00001d04: JUMPDEST
00001d05: SWAP1
00001d06: POP
00001d07: SWAP5
00001d08: SWAP4
00001d09: POP
00001d0a: POP
00001d0b: POP
00001d0c: POP
00001d0d: JUMP
00001d0e: JUMPDEST
00001d0f: PUSH1 0x00
00001d11: DUP1
00001d12: PUSH1 0x00
00001d14: DUP1
00001d15: SWAP1
00001d16: SLOAD
00001d17: SWAP1
00001d18: PUSH2 0x0100
00001d1b: EXP
00001d1c: SWAP1
00001d1d: DIV
00001d1e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d33: AND
00001d34: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d49: AND
00001d4a: PUSH4 0x2f866f73
00001d4f: PUSH1 0x40
00001d51: MLOAD
00001d52: DUP2
00001d53: PUSH4 0xffffffff
00001d58: AND
00001d59: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00001d77: MUL
00001d78: DUP2
00001d79: MSTORE
00001d7a: PUSH1 0x04
00001d7c: ADD
00001d7d: PUSH1 0x20
00001d7f: PUSH1 0x40
00001d81: MLOAD
00001d82: DUP1
00001d83: DUP4
00001d84: SUB
00001d85: DUP2
00001d86: PUSH1 0x00
00001d88: DUP8
00001d89: DUP1
00001d8a: EXTCODESIZE
00001d8b: ISZERO
00001d8c: DUP1
00001d8d: ISZERO
00001d8e: PUSH2 0x1d96
00001d91: JUMPI
00001d92: PUSH1 0x00
00001d94: DUP1
00001d95: REVERT
00001d96: JUMPDEST
00001d97: POP
00001d98: GAS
00001d99: CALL
00001d9a: ISZERO
00001d9b: DUP1
00001d9c: ISZERO
00001d9d: PUSH2 0x1daa
00001da0: JUMPI
00001da1: RETURNDATASIZE
00001da2: PUSH1 0x00
00001da4: DUP1
00001da5: RETURNDATACOPY
00001da6: RETURNDATASIZE
00001da7: PUSH1 0x00
00001da9: REVERT
00001daa: JUMPDEST
00001dab: POP
00001dac: POP
00001dad: POP
00001dae: POP
00001daf: PUSH1 0x40
00001db1: MLOAD
00001db2: RETURNDATASIZE
00001db3: PUSH1 0x1f
00001db5: NOT
00001db6: PUSH1 0x1f
00001db8: DUP3
00001db9: ADD
00001dba: AND
00001dbb: DUP3
00001dbc: ADD
00001dbd: DUP1
00001dbe: PUSH1 0x40
00001dc0: MSTORE
00001dc1: POP
00001dc2: PUSH2 0x1dce
00001dc5: SWAP2
00001dc6: SWAP1
00001dc7: DUP2
00001dc8: ADD
00001dc9: SWAP1
00001dca: PUSH2 0x2f0d
00001dcd: JUMP
00001dce: JUMPDEST
00001dcf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001de4: AND
00001de5: PUSH4 0xba20dda4
00001dea: DUP6
00001deb: PUSH1 0x40
00001ded: MLOAD
00001dee: DUP3
00001def: PUSH4 0xffffffff
00001df4: AND
00001df5: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00001e13: MUL
00001e14: DUP2
00001e15: MSTORE
00001e16: PUSH1 0x04
00001e18: ADD
00001e19: PUSH2 0x1e22
00001e1c: SWAP2
00001e1d: SWAP1
00001e1e: PUSH2 0x3237
00001e21: JUMP
00001e22: JUMPDEST
00001e23: PUSH1 0x20
00001e25: PUSH1 0x40
00001e27: MLOAD
00001e28: DUP1
00001e29: DUP4
00001e2a: SUB
00001e2b: DUP2
00001e2c: PUSH1 0x00
00001e2e: DUP8
00001e2f: DUP1
00001e30: EXTCODESIZE
00001e31: ISZERO
00001e32: DUP1
00001e33: ISZERO
00001e34: PUSH2 0x1e3c
00001e37: JUMPI
00001e38: PUSH1 0x00
00001e3a: DUP1
00001e3b: REVERT
00001e3c: JUMPDEST
00001e3d: POP
00001e3e: GAS
00001e3f: CALL
00001e40: ISZERO
00001e41: DUP1
00001e42: ISZERO
00001e43: PUSH2 0x1e50
00001e46: JUMPI
00001e47: RETURNDATASIZE
00001e48: PUSH1 0x00
00001e4a: DUP1
00001e4b: RETURNDATACOPY
00001e4c: RETURNDATASIZE
00001e4d: PUSH1 0x00
00001e4f: REVERT
00001e50: JUMPDEST
00001e51: POP
00001e52: POP
00001e53: POP
00001e54: POP
00001e55: PUSH1 0x40
00001e57: MLOAD
00001e58: RETURNDATASIZE
00001e59: PUSH1 0x1f
00001e5b: NOT
00001e5c: PUSH1 0x1f
00001e5e: DUP3
00001e5f: ADD
00001e60: AND
00001e61: DUP3
00001e62: ADD
00001e63: DUP1
00001e64: PUSH1 0x40
00001e66: MSTORE
00001e67: POP
00001e68: PUSH2 0x1e74
00001e6b: SWAP2
00001e6c: SWAP1
00001e6d: DUP2
00001e6e: ADD
00001e6f: SWAP1
00001e70: PUSH2 0x2d51
00001e73: JUMP
00001e74: JUMPDEST
00001e75: SWAP1
00001e76: POP
00001e77: PUSH1 0x01
00001e79: PUSH1 0x00
00001e7b: SWAP1
00001e7c: SLOAD
00001e7d: SWAP1
00001e7e: PUSH2 0x0100
00001e81: EXP
00001e82: SWAP1
00001e83: DIV
00001e84: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e99: AND
00001e9a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001eaf: AND
00001eb0: PUSH4 0xa9059cbb
00001eb5: DUP3
00001eb6: DUP6
00001eb7: PUSH1 0x40
00001eb9: MLOAD
00001eba: DUP4
00001ebb: PUSH4 0xffffffff
00001ec0: AND
00001ec1: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00001edf: MUL
00001ee0: DUP2
00001ee1: MSTORE
00001ee2: PUSH1 0x04
00001ee4: ADD
00001ee5: PUSH2 0x1eef
00001ee8: SWAP3
00001ee9: SWAP2
00001eea: SWAP1
00001eeb: PUSH2 0x31f3
00001eee: JUMP
00001eef: JUMPDEST
00001ef0: PUSH1 0x20
00001ef2: PUSH1 0x40
00001ef4: MLOAD
00001ef5: DUP1
00001ef6: DUP4
00001ef7: SUB
00001ef8: DUP2
00001ef9: PUSH1 0x00
00001efb: DUP8
00001efc: DUP1
00001efd: EXTCODESIZE
00001efe: ISZERO
00001eff: DUP1
00001f00: ISZERO
00001f01: PUSH2 0x1f09
00001f04: JUMPI
00001f05: PUSH1 0x00
00001f07: DUP1
00001f08: REVERT
00001f09: JUMPDEST
00001f0a: POP
00001f0b: GAS
00001f0c: CALL
00001f0d: ISZERO
00001f0e: DUP1
00001f0f: ISZERO
00001f10: PUSH2 0x1f1d
00001f13: JUMPI
00001f14: RETURNDATASIZE
00001f15: PUSH1 0x00
00001f17: DUP1
00001f18: RETURNDATACOPY
00001f19: RETURNDATASIZE
00001f1a: PUSH1 0x00
00001f1c: REVERT
00001f1d: JUMPDEST
00001f1e: POP
00001f1f: POP
00001f20: POP
00001f21: POP
00001f22: PUSH1 0x40
00001f24: MLOAD
00001f25: RETURNDATASIZE
00001f26: PUSH1 0x1f
00001f28: NOT
00001f29: PUSH1 0x1f
00001f2b: DUP3
00001f2c: ADD
00001f2d: AND
00001f2e: DUP3
00001f2f: ADD
00001f30: DUP1
00001f31: PUSH1 0x40
00001f33: MSTORE
00001f34: POP
00001f35: PUSH2 0x1f41
00001f38: SWAP2
00001f39: SWAP1
00001f3a: DUP2
00001f3b: ADD
00001f3c: SWAP1
00001f3d: PUSH2 0x2d7a
00001f40: JUMP
00001f41: JUMPDEST
00001f42: SWAP2
00001f43: POP
00001f44: POP
00001f45: SWAP3
00001f46: SWAP2
00001f47: POP
00001f48: POP
00001f49: JUMP
00001f4a: JUMPDEST
00001f4b: PUSH1 0x00
00001f4d: PUSH2 0x1f55
00001f50: DUP3
00001f51: PUSH2 0x285f
00001f54: JUMP
00001f55: JUMPDEST
00001f56: ISZERO
00001f57: PUSH2 0x1fff
00001f5a: JUMPI
00001f5b: PUSH1 0x40
00001f5d: DUP1
00001f5e: MLOAD
00001f5f: SWAP1
00001f60: DUP2
00001f61: ADD
00001f62: PUSH1 0x40
00001f64: MSTORE
00001f65: DUP1
00001f66: PUSH1 0x00
00001f68: DUP2
00001f69: MSTORE
00001f6a: PUSH1 0x20
00001f6c: ADD
00001f6d: PUSH1 0x00
00001f6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f84: AND
00001f85: DUP2
00001f86: MSTORE
00001f87: POP
00001f88: PUSH1 0x06
00001f8a: PUSH1 0x00
00001f8c: DUP5
00001f8d: PUSH1 0x00
00001f8f: NOT
00001f90: AND
00001f91: PUSH1 0x00
00001f93: NOT
00001f94: AND
00001f95: DUP2
00001f96: MSTORE
00001f97: PUSH1 0x20
00001f99: ADD
00001f9a: SWAP1
00001f9b: DUP2
00001f9c: MSTORE
00001f9d: PUSH1 0x20
00001f9f: ADD
00001fa0: PUSH1 0x00
00001fa2: KECCAK256
00001fa3: PUSH1 0x00
00001fa5: DUP3
00001fa6: ADD
00001fa7: MLOAD
00001fa8: DUP2
00001fa9: PUSH1 0x00
00001fab: ADD
00001fac: SSTORE
00001fad: PUSH1 0x20
00001faf: DUP3
00001fb0: ADD
00001fb1: MLOAD
00001fb2: DUP2
00001fb3: PUSH1 0x01
00001fb5: ADD
00001fb6: PUSH1 0x00
00001fb8: PUSH2 0x0100
00001fbb: EXP
00001fbc: DUP2
00001fbd: SLOAD
00001fbe: DUP2
00001fbf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fd4: MUL
00001fd5: NOT
00001fd6: AND
00001fd7: SWAP1
00001fd8: DUP4
00001fd9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fee: AND
00001fef: MUL
00001ff0: OR
00001ff1: SWAP1
00001ff2: SSTORE
00001ff3: POP
00001ff4: SWAP1
00001ff5: POP
00001ff6: POP
00001ff7: PUSH1 0x01
00001ff9: SWAP1
00001ffa: POP
00001ffb: PUSH2 0x2004
00001ffe: JUMP
00001fff: JUMPDEST
00002000: PUSH1 0x00
00002002: SWAP1
00002003: POP
00002004: JUMPDEST
00002005: SWAP2
00002006: SWAP1
00002007: POP
00002008: JUMP
00002009: JUMPDEST
0000200a: PUSH1 0x00
0000200c: DUP3
0000200d: DUP3
0000200e: GT
0000200f: ISZERO
00002010: ISZERO
00002011: ISZERO
00002012: PUSH2 0x2017
00002015: JUMPI
00002016: INVALID
00002017: JUMPDEST
00002018: DUP2
00002019: DUP4
0000201a: SUB
0000201b: SWAP1
0000201c: POP
0000201d: SWAP3
0000201e: SWAP2
0000201f: POP
00002020: POP
00002021: JUMP
00002022: JUMPDEST
00002023: PUSH1 0x00
00002025: DUP2
00002026: DUP4
00002027: DUP2
00002028: ISZERO
00002029: ISZERO
0000202a: PUSH2 0x202f
0000202d: JUMPI
0000202e: INVALID
0000202f: JUMPDEST
00002030: DIV
00002031: SWAP1
00002032: POP
00002033: SWAP3
00002034: SWAP2
00002035: POP
00002036: POP
00002037: JUMP
00002038: JUMPDEST
00002039: PUSH2 0x2040
0000203c: PUSH2 0x2bd1
0000203f: JUMP
00002040: JUMPDEST
00002041: PUSH1 0x00
00002043: DUP1
00002044: PUSH1 0x00
00002046: SWAP1
00002047: SLOAD
00002048: SWAP1
00002049: PUSH2 0x0100
0000204c: EXP
0000204d: SWAP1
0000204e: DIV
0000204f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002064: AND
00002065: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000207a: AND
0000207b: PUSH4 0x2f866f73
00002080: PUSH1 0x40
00002082: MLOAD
00002083: DUP2
00002084: PUSH4 0xffffffff
00002089: AND
0000208a: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000020a8: MUL
000020a9: DUP2
000020aa: MSTORE
000020ab: PUSH1 0x04
000020ad: ADD
000020ae: PUSH1 0x20
000020b0: PUSH1 0x40
000020b2: MLOAD
000020b3: DUP1
000020b4: DUP4
000020b5: SUB
000020b6: DUP2
000020b7: PUSH1 0x00
000020b9: DUP8
000020ba: DUP1
000020bb: EXTCODESIZE
000020bc: ISZERO
000020bd: DUP1
000020be: ISZERO
000020bf: PUSH2 0x20c7
000020c2: JUMPI
000020c3: PUSH1 0x00
000020c5: DUP1
000020c6: REVERT
000020c7: JUMPDEST
000020c8: POP
000020c9: GAS
000020ca: CALL
000020cb: ISZERO
000020cc: DUP1
000020cd: ISZERO
000020ce: PUSH2 0x20db
000020d1: JUMPI
000020d2: RETURNDATASIZE
000020d3: PUSH1 0x00
000020d5: DUP1
000020d6: RETURNDATACOPY
000020d7: RETURNDATASIZE
000020d8: PUSH1 0x00
000020da: REVERT
000020db: JUMPDEST
000020dc: POP
000020dd: POP
000020de: POP
000020df: POP
000020e0: PUSH1 0x40
000020e2: MLOAD
000020e3: RETURNDATASIZE
000020e4: PUSH1 0x1f
000020e6: NOT
000020e7: PUSH1 0x1f
000020e9: DUP3
000020ea: ADD
000020eb: AND
000020ec: DUP3
000020ed: ADD
000020ee: DUP1
000020ef: PUSH1 0x40
000020f1: MSTORE
000020f2: POP
000020f3: PUSH2 0x20ff
000020f6: SWAP2
000020f7: SWAP1
000020f8: DUP2
000020f9: ADD
000020fa: SWAP1
000020fb: PUSH2 0x2f0d
000020fe: JUMP
000020ff: JUMPDEST
00002100: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002115: AND
00002116: PUSH4 0x314a522e
0000211b: DUP5
0000211c: PUSH1 0x40
0000211e: MLOAD
0000211f: DUP3
00002120: PUSH4 0xffffffff
00002125: AND
00002126: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00002144: MUL
00002145: DUP2
00002146: MSTORE
00002147: PUSH1 0x04
00002149: ADD
0000214a: PUSH2 0x2153
0000214d: SWAP2
0000214e: SWAP1
0000214f: PUSH2 0x3237
00002152: JUMP
00002153: JUMPDEST
00002154: PUSH1 0x20
00002156: PUSH1 0x40
00002158: MLOAD
00002159: DUP1
0000215a: DUP4
0000215b: SUB
0000215c: DUP2
0000215d: PUSH1 0x00
0000215f: DUP8
00002160: DUP1
00002161: EXTCODESIZE
00002162: ISZERO
00002163: DUP1
00002164: ISZERO
00002165: PUSH2 0x216d
00002168: JUMPI
00002169: PUSH1 0x00
0000216b: DUP1
0000216c: REVERT
0000216d: JUMPDEST
0000216e: POP
0000216f: GAS
00002170: CALL
00002171: ISZERO
00002172: DUP1
00002173: ISZERO
00002174: PUSH2 0x2181
00002177: JUMPI
00002178: RETURNDATASIZE
00002179: PUSH1 0x00
0000217b: DUP1
0000217c: RETURNDATACOPY
0000217d: RETURNDATASIZE
0000217e: PUSH1 0x00
00002180: REVERT
00002181: JUMPDEST
00002182: POP
00002183: POP
00002184: POP
00002185: POP
00002186: PUSH1 0x40
00002188: MLOAD
00002189: RETURNDATASIZE
0000218a: PUSH1 0x1f
0000218c: NOT
0000218d: PUSH1 0x1f
0000218f: DUP3
00002190: ADD
00002191: AND
00002192: DUP3
00002193: ADD
00002194: DUP1
00002195: PUSH1 0x40
00002197: MSTORE
00002198: POP
00002199: PUSH2 0x21a5
0000219c: SWAP2
0000219d: SWAP1
0000219e: DUP2
0000219f: ADD
000021a0: SWAP1
000021a1: PUSH2 0x2dcc
000021a4: JUMP
000021a5: JUMPDEST
000021a6: SWAP1
000021a7: POP
000021a8: PUSH2 0x21b0
000021ab: DUP2
000021ac: PUSH2 0x29be
000021af: JUMP
000021b0: JUMPDEST
000021b1: SWAP2
000021b2: POP
000021b3: POP
000021b4: SWAP2
000021b5: SWAP1
000021b6: POP
000021b7: JUMP
000021b8: JUMPDEST
000021b9: PUSH1 0x00
000021bb: DUP1
000021bc: DUP4
000021bd: EQ
000021be: ISZERO
000021bf: PUSH2 0x21cb
000021c2: JUMPI
000021c3: PUSH1 0x00
000021c5: SWAP1
000021c6: POP
000021c7: PUSH2 0x21ea
000021ca: JUMP
000021cb: JUMPDEST
000021cc: DUP2
000021cd: DUP4
000021ce: MUL
000021cf: SWAP1
000021d0: POP
000021d1: DUP2
000021d2: DUP4
000021d3: DUP3
000021d4: DUP2
000021d5: ISZERO
000021d6: ISZERO
000021d7: PUSH2 0x21dc
000021da: JUMPI
000021db: INVALID
000021dc: JUMPDEST
000021dd: DIV
000021de: EQ
000021df: ISZERO
000021e0: ISZERO
000021e1: PUSH2 0x21e6
000021e4: JUMPI
000021e5: INVALID
000021e6: JUMPDEST
000021e7: DUP1
000021e8: SWAP1
000021e9: POP
000021ea: JUMPDEST
000021eb: SWAP3
000021ec: SWAP2
000021ed: POP
000021ee: POP
000021ef: JUMP
000021f0: JUMPDEST
000021f1: PUSH1 0x00
000021f3: DUP2
000021f4: DUP4
000021f5: ADD
000021f6: SWAP1
000021f7: POP
000021f8: DUP3
000021f9: DUP2
000021fa: LT
000021fb: ISZERO
000021fc: ISZERO
000021fd: ISZERO
000021fe: PUSH2 0x2203
00002201: JUMPI
00002202: INVALID
00002203: JUMPDEST
00002204: DUP1
00002205: SWAP1
00002206: POP
00002207: SWAP3
00002208: SWAP2
00002209: POP
0000220a: POP
0000220b: JUMP
0000220c: JUMPDEST
0000220d: PUSH1 0x00
0000220f: DUP1
00002210: PUSH2 0x2218
00002213: DUP5
00002214: PUSH2 0x2aa7
00002217: JUMP
00002218: JUMPDEST
00002219: DUP3
0000221a: PUSH1 0x0a
0000221c: EXP
0000221d: SWAP1
0000221e: POP
0000221f: PUSH2 0x224b
00002222: DUP5
00002223: PUSH1 0x20
00002225: ADD
00002226: MLOAD
00002227: PUSH2 0x223d
0000222a: DUP7
0000222b: PUSH1 0x00
0000222d: ADD
0000222e: MLOAD
0000222f: DUP5
00002230: PUSH2 0x21b8
00002233: SWAP1
00002234: SWAP2
00002235: SWAP1
00002236: PUSH4 0xffffffff
0000223b: AND
0000223c: JUMP
0000223d: JUMPDEST
0000223e: PUSH2 0x2022
00002241: SWAP1
00002242: SWAP2
00002243: SWAP1
00002244: PUSH4 0xffffffff
00002249: AND
0000224a: JUMP
0000224b: JUMPDEST
0000224c: SWAP2
0000224d: POP
0000224e: POP
0000224f: SWAP3
00002250: SWAP2
00002251: POP
00002252: POP
00002253: JUMP
00002254: JUMPDEST
00002255: PUSH1 0x00
00002257: DUP1
00002258: PUSH2 0x226a
0000225b: PUSH2 0x2263
0000225e: DUP7
0000225f: PUSH2 0x0a21
00002262: JUMP
00002263: JUMPDEST
00002264: PUSH1 0x03
00002266: PUSH2 0x2699
00002269: JUMP
0000226a: JUMPDEST
0000226b: ISZERO
0000226c: PUSH2 0x2278
0000226f: JUMPI
00002270: PUSH1 0x00
00002272: SWAP2
00002273: POP
00002274: PUSH2 0x23dd
00002277: JUMP
00002278: JUMPDEST
00002279: PUSH2 0x22af
0000227c: PUSH2 0x22a8
0000227f: PUSH1 0x03
00002281: PUSH1 0x00
00002283: SWAP1
00002284: SLOAD
00002285: SWAP1
00002286: PUSH2 0x0100
00002289: EXP
0000228a: SWAP1
0000228b: DIV
0000228c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022a1: AND
000022a2: DUP6
000022a3: DUP8
000022a4: PUSH2 0x26f1
000022a7: JUMP
000022a8: JUMPDEST
000022a9: PUSH1 0x01
000022ab: PUSH2 0x2699
000022ae: JUMP
000022af: JUMPDEST
000022b0: ISZERO
000022b1: PUSH2 0x22bd
000022b4: JUMPI
000022b5: PUSH1 0x00
000022b7: SWAP2
000022b8: POP
000022b9: PUSH2 0x23dd
000022bc: JUMP
000022bd: JUMPDEST
000022be: ADDRESS
000022bf: SWAP1
000022c0: POP
000022c1: PUSH1 0x40
000022c3: DUP1
000022c4: MLOAD
000022c5: SWAP1
000022c6: DUP2
000022c7: ADD
000022c8: PUSH1 0x40
000022ca: MSTORE
000022cb: DUP1
000022cc: DUP6
000022cd: DUP2
000022ce: MSTORE
000022cf: PUSH1 0x20
000022d1: ADD
000022d2: DUP5
000022d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022e8: AND
000022e9: DUP2
000022ea: MSTORE
000022eb: POP
000022ec: PUSH1 0x06
000022ee: PUSH1 0x00
000022f0: DUP8
000022f1: PUSH1 0x00
000022f3: NOT
000022f4: AND
000022f5: PUSH1 0x00
000022f7: NOT
000022f8: AND
000022f9: DUP2
000022fa: MSTORE
000022fb: PUSH1 0x20
000022fd: ADD
000022fe: SWAP1
000022ff: DUP2
00002300: MSTORE
00002301: PUSH1 0x20
00002303: ADD
00002304: PUSH1 0x00
00002306: KECCAK256
00002307: PUSH1 0x00
00002309: DUP3
0000230a: ADD
0000230b: MLOAD
0000230c: DUP2
0000230d: PUSH1 0x00
0000230f: ADD
00002310: SSTORE
00002311: PUSH1 0x20
00002313: DUP3
00002314: ADD
00002315: MLOAD
00002316: DUP2
00002317: PUSH1 0x01
00002319: ADD
0000231a: PUSH1 0x00
0000231c: PUSH2 0x0100
0000231f: EXP
00002320: DUP2
00002321: SLOAD
00002322: DUP2
00002323: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002338: MUL
00002339: NOT
0000233a: AND
0000233b: SWAP1
0000233c: DUP4
0000233d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002352: AND
00002353: MUL
00002354: OR
00002355: SWAP1
00002356: SSTORE
00002357: POP
00002358: SWAP1
00002359: POP
0000235a: POP
0000235b: DUP3
0000235c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002371: AND
00002372: DUP6
00002373: PUSH1 0x00
00002375: NOT
00002376: AND
00002377: PUSH32 0x195d2e7855185ac08fef1e42ab0ccf60a6c8f79ba0af23b37c220eadf42ae9ea
00002398: DUP7
00002399: PUSH1 0x40
0000239b: MLOAD
0000239c: PUSH2 0x23a5
0000239f: SWAP2
000023a0: SWAP1
000023a1: PUSH2 0x32fe
000023a4: JUMP
000023a5: JUMPDEST
000023a6: PUSH1 0x40
000023a8: MLOAD
000023a9: DUP1
000023aa: SWAP2
000023ab: SUB
000023ac: SWAP1
000023ad: LOG3
000023ae: PUSH2 0x23da
000023b1: PUSH1 0x03
000023b3: PUSH1 0x00
000023b5: SWAP1
000023b6: SLOAD
000023b7: SWAP1
000023b8: PUSH2 0x0100
000023bb: EXP
000023bc: SWAP1
000023bd: DIV
000023be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000023d3: AND
000023d4: DUP5
000023d5: DUP7
000023d6: PUSH2 0x24e2
000023d9: JUMP
000023da: JUMPDEST
000023db: SWAP2
000023dc: POP
000023dd: JUMPDEST
000023de: POP
000023df: SWAP4
000023e0: SWAP3
000023e1: POP
000023e2: POP
000023e3: POP
000023e4: JUMP
000023e5: JUMPDEST
000023e6: PUSH2 0x23ed
000023e9: PUSH2 0x2bfa
000023ec: JUMP
000023ed: JUMPDEST
000023ee: PUSH2 0x242b
000023f1: PUSH2 0x240b
000023f4: DUP4
000023f5: PUSH1 0x00
000023f7: ADD
000023f8: MLOAD
000023f9: DUP6
000023fa: PUSH1 0x00
000023fc: ADD
000023fd: MLOAD
000023fe: PUSH2 0x21b8
00002401: SWAP1
00002402: SWAP2
00002403: SWAP1
00002404: PUSH4 0xffffffff
00002409: AND
0000240a: JUMP
0000240b: JUMPDEST
0000240c: PUSH2 0x2426
0000240f: DUP5
00002410: PUSH1 0x20
00002412: ADD
00002413: MLOAD
00002414: DUP7
00002415: PUSH1 0x20
00002417: ADD
00002418: MLOAD
00002419: PUSH2 0x21b8
0000241c: SWAP1
0000241d: SWAP2
0000241e: SWAP1
0000241f: PUSH4 0xffffffff
00002424: AND
00002425: JUMP
00002426: JUMPDEST
00002427: PUSH2 0x2abb
0000242a: JUMP
0000242b: JUMPDEST
0000242c: SWAP1
0000242d: POP
0000242e: SWAP3
0000242f: SWAP2
00002430: POP
00002431: POP
00002432: JUMP
00002433: JUMPDEST
00002434: PUSH2 0x243b
00002437: PUSH2 0x2bfa
0000243a: JUMP
0000243b: JUMPDEST
0000243c: PUSH1 0x00
0000243e: DUP1
0000243f: PUSH2 0x2459
00002442: DUP5
00002443: PUSH1 0x20
00002445: ADD
00002446: MLOAD
00002447: DUP7
00002448: PUSH1 0x00
0000244a: ADD
0000244b: MLOAD
0000244c: PUSH2 0x21b8
0000244f: SWAP1
00002450: SWAP2
00002451: SWAP1
00002452: PUSH4 0xffffffff
00002457: AND
00002458: JUMP
00002459: JUMPDEST
0000245a: SWAP2
0000245b: POP
0000245c: PUSH2 0x2476
0000245f: DUP6
00002460: PUSH1 0x20
00002462: ADD
00002463: MLOAD
00002464: DUP6
00002465: PUSH1 0x00
00002467: ADD
00002468: MLOAD
00002469: PUSH2 0x21b8
0000246c: SWAP1
0000246d: SWAP2
0000246e: SWAP1
0000246f: PUSH4 0xffffffff
00002474: AND
00002475: JUMP
00002476: JUMPDEST
00002477: SWAP1
00002478: POP
00002479: DUP1
0000247a: DUP3
0000247b: LT
0000247c: ISZERO
0000247d: PUSH2 0x2488
00002480: JUMPI
00002481: DUP5
00002482: SWAP3
00002483: POP
00002484: PUSH2 0x248c
00002487: JUMP
00002488: JUMPDEST
00002489: DUP4
0000248a: SWAP3
0000248b: POP
0000248c: JUMPDEST
0000248d: POP
0000248e: POP
0000248f: SWAP3
00002490: SWAP2
00002491: POP
00002492: POP
00002493: JUMP
00002494: JUMPDEST
00002495: PUSH2 0x249c
00002498: PUSH2 0x2bfa
0000249b: JUMP
0000249c: JUMPDEST
0000249d: PUSH2 0x24da
000024a0: PUSH2 0x24ba
000024a3: DUP4
000024a4: PUSH1 0x20
000024a6: ADD
000024a7: MLOAD
000024a8: DUP6
000024a9: PUSH1 0x00
000024ab: ADD
000024ac: MLOAD
000024ad: PUSH2 0x21b8
000024b0: SWAP1
000024b1: SWAP2
000024b2: SWAP1
000024b3: PUSH4 0xffffffff
000024b8: AND
000024b9: JUMP
000024ba: JUMPDEST
000024bb: PUSH2 0x24d5
000024be: DUP5
000024bf: PUSH1 0x00
000024c1: ADD
000024c2: MLOAD
000024c3: DUP7
000024c4: PUSH1 0x20
000024c6: ADD
000024c7: MLOAD
000024c8: PUSH2 0x21b8
000024cb: SWAP1
000024cc: SWAP2
000024cd: SWAP1
000024ce: PUSH4 0xffffffff
000024d3: AND
000024d4: JUMP
000024d5: JUMPDEST
000024d6: PUSH2 0x2abb
000024d9: JUMP
000024da: JUMPDEST
000024db: SWAP1
000024dc: POP
000024dd: SWAP3
000024de: SWAP2
000024df: POP
000024e0: POP
000024e1: JUMP
000024e2: JUMPDEST
000024e3: PUSH1 0x00
000024e5: DUP1
000024e6: ADDRESS
000024e7: SWAP1
000024e8: POP
000024e9: DUP5
000024ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024ff: AND
00002500: PUSH4 0x23b872dd
00002505: DUP6
00002506: DUP4
00002507: DUP7
00002508: PUSH1 0x40
0000250a: MLOAD
0000250b: DUP5
0000250c: PUSH4 0xffffffff
00002511: AND
00002512: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00002530: MUL
00002531: DUP2
00002532: MSTORE
00002533: PUSH1 0x04
00002535: ADD
00002536: PUSH2 0x2541
00002539: SWAP4
0000253a: SWAP3
0000253b: SWAP2
0000253c: SWAP1
0000253d: PUSH2 0x31bc
00002540: JUMP
00002541: JUMPDEST
00002542: PUSH1 0x20
00002544: PUSH1 0x40
00002546: MLOAD
00002547: DUP1
00002548: DUP4
00002549: SUB
0000254a: DUP2
0000254b: PUSH1 0x00
0000254d: DUP8
0000254e: DUP1
0000254f: EXTCODESIZE
00002550: ISZERO
00002551: DUP1
00002552: ISZERO
00002553: PUSH2 0x255b
00002556: JUMPI
00002557: PUSH1 0x00
00002559: DUP1
0000255a: REVERT
0000255b: JUMPDEST
0000255c: POP
0000255d: GAS
0000255e: CALL
0000255f: ISZERO
00002560: DUP1
00002561: ISZERO
00002562: PUSH2 0x256f
00002565: JUMPI
00002566: RETURNDATASIZE
00002567: PUSH1 0x00
00002569: DUP1
0000256a: RETURNDATACOPY
0000256b: RETURNDATASIZE
0000256c: PUSH1 0x00
0000256e: REVERT
0000256f: JUMPDEST
00002570: POP
00002571: POP
00002572: POP
00002573: POP
00002574: PUSH1 0x40
00002576: MLOAD
00002577: RETURNDATASIZE
00002578: PUSH1 0x1f
0000257a: NOT
0000257b: PUSH1 0x1f
0000257d: DUP3
0000257e: ADD
0000257f: AND
00002580: DUP3
00002581: ADD
00002582: DUP1
00002583: PUSH1 0x40
00002585: MSTORE
00002586: POP
00002587: PUSH2 0x2593
0000258a: SWAP2
0000258b: SWAP1
0000258c: DUP2
0000258d: ADD
0000258e: SWAP1
0000258f: PUSH2 0x2d7a
00002592: JUMP
00002593: JUMPDEST
00002594: SWAP2
00002595: POP
00002596: POP
00002597: SWAP4
00002598: SWAP3
00002599: POP
0000259a: POP
0000259b: POP
0000259c: JUMP
0000259d: JUMPDEST
0000259e: PUSH1 0x00
000025a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025b5: AND
000025b6: DUP2
000025b7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025cc: AND
000025cd: EQ
000025ce: ISZERO
000025cf: ISZERO
000025d0: ISZERO
000025d1: PUSH2 0x25d9
000025d4: JUMPI
000025d5: PUSH1 0x00
000025d7: DUP1
000025d8: REVERT
000025d9: JUMPDEST
000025da: DUP1
000025db: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025f0: AND
000025f1: PUSH1 0x07
000025f3: PUSH1 0x00
000025f5: SWAP1
000025f6: SLOAD
000025f7: SWAP1
000025f8: PUSH2 0x0100
000025fb: EXP
000025fc: SWAP1
000025fd: DIV
000025fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002613: AND
00002614: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002629: AND
0000262a: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
0000264b: PUSH1 0x40
0000264d: MLOAD
0000264e: PUSH1 0x40
00002650: MLOAD
00002651: DUP1
00002652: SWAP2
00002653: SUB
00002654: SWAP1
00002655: LOG3
00002656: DUP1
00002657: PUSH1 0x07
00002659: PUSH1 0x00
0000265b: PUSH2 0x0100
0000265e: EXP
0000265f: DUP2
00002660: SLOAD
00002661: DUP2
00002662: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002677: MUL
00002678: NOT
00002679: AND
0000267a: SWAP1
0000267b: DUP4
0000267c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002691: AND
00002692: MUL
00002693: OR
00002694: SWAP1
00002695: SSTORE
00002696: POP
00002697: POP
00002698: JUMP
00002699: JUMPDEST
0000269a: PUSH1 0x00
0000269c: DUP3
0000269d: ISZERO
0000269e: ISZERO
0000269f: PUSH2 0x26e6
000026a2: JUMPI
000026a3: DUP2
000026a4: PUSH1 0x04
000026a6: DUP2
000026a7: GT
000026a8: ISZERO
000026a9: PUSH2 0x26ae
000026ac: JUMPI
000026ad: INVALID
000026ae: JUMPDEST
000026af: PUSH1 0xff
000026b1: AND
000026b2: PUSH32 0xf64a83c5d4d949675caf48520cc73c95b7d9a17ce71f39ba7695af5917d86eba
000026d3: PUSH1 0x40
000026d5: MLOAD
000026d6: PUSH1 0x40
000026d8: MLOAD
000026d9: DUP1
000026da: SWAP2
000026db: SUB
000026dc: SWAP1
000026dd: LOG2
000026de: PUSH1 0x01
000026e0: SWAP1
000026e1: POP
000026e2: PUSH2 0x26eb
000026e5: JUMP
000026e6: JUMPDEST
000026e7: PUSH1 0x00
000026e9: SWAP1
000026ea: POP
000026eb: JUMPDEST
000026ec: SWAP3
000026ed: SWAP2
000026ee: POP
000026ef: POP
000026f0: JUMP
000026f1: JUMPDEST
000026f2: PUSH1 0x00
000026f4: DUP1
000026f5: ADDRESS
000026f6: SWAP1
000026f7: POP
000026f8: DUP3
000026f9: DUP6
000026fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000270f: AND
00002710: PUSH4 0x70a08231
00002715: DUP7
00002716: PUSH1 0x40
00002718: MLOAD
00002719: DUP3
0000271a: PUSH4 0xffffffff
0000271f: AND
00002720: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000273e: MUL
0000273f: DUP2
00002740: MSTORE
00002741: PUSH1 0x04
00002743: ADD
00002744: PUSH2 0x274d
00002747: SWAP2
00002748: SWAP1
00002749: PUSH2 0x3178
0000274c: JUMP
0000274d: JUMPDEST
0000274e: PUSH1 0x20
00002750: PUSH1 0x40
00002752: MLOAD
00002753: DUP1
00002754: DUP4
00002755: SUB
00002756: DUP2
00002757: PUSH1 0x00
00002759: DUP8
0000275a: DUP1
0000275b: EXTCODESIZE
0000275c: ISZERO
0000275d: DUP1
0000275e: ISZERO
0000275f: PUSH2 0x2767
00002762: JUMPI
00002763: PUSH1 0x00
00002765: DUP1
00002766: REVERT
00002767: JUMPDEST
00002768: POP
00002769: GAS
0000276a: CALL
0000276b: ISZERO
0000276c: DUP1
0000276d: ISZERO
0000276e: PUSH2 0x277b
00002771: JUMPI
00002772: RETURNDATASIZE
00002773: PUSH1 0x00
00002775: DUP1
00002776: RETURNDATACOPY
00002777: RETURNDATASIZE
00002778: PUSH1 0x00
0000277a: REVERT
0000277b: JUMPDEST
0000277c: POP
0000277d: POP
0000277e: POP
0000277f: POP
00002780: PUSH1 0x40
00002782: MLOAD
00002783: RETURNDATASIZE
00002784: PUSH1 0x1f
00002786: NOT
00002787: PUSH1 0x1f
00002789: DUP3
0000278a: ADD
0000278b: AND
0000278c: DUP3
0000278d: ADD
0000278e: DUP1
0000278f: PUSH1 0x40
00002791: MSTORE
00002792: POP
00002793: PUSH2 0x279f
00002796: SWAP2
00002797: SWAP1
00002798: DUP2
00002799: ADD
0000279a: SWAP1
0000279b: PUSH2 0x2f9b
0000279e: JUMP
0000279f: JUMPDEST
000027a0: LT
000027a1: ISZERO
000027a2: DUP1
000027a3: ISZERO
000027a4: PUSH2 0x2855
000027a7: JUMPI
000027a8: POP
000027a9: DUP3
000027aa: DUP6
000027ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000027c0: AND
000027c1: PUSH4 0xdd62ed3e
000027c6: DUP7
000027c7: DUP5
000027c8: PUSH1 0x40
000027ca: MLOAD
000027cb: DUP4
000027cc: PUSH4 0xffffffff
000027d1: AND
000027d2: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000027f0: MUL
000027f1: DUP2
000027f2: MSTORE
000027f3: PUSH1 0x04
000027f5: ADD
000027f6: PUSH2 0x2800
000027f9: SWAP3
000027fa: SWAP2
000027fb: SWAP1
000027fc: PUSH2 0x3193
000027ff: JUMP
00002800: JUMPDEST
00002801: PUSH1 0x20
00002803: PUSH1 0x40
00002805: MLOAD
00002806: DUP1
00002807: DUP4
00002808: SUB
00002809: DUP2
0000280a: PUSH1 0x00
0000280c: DUP8
0000280d: DUP1
0000280e: EXTCODESIZE
0000280f: ISZERO
00002810: DUP1
00002811: ISZERO
00002812: PUSH2 0x281a
00002815: JUMPI
00002816: PUSH1 0x00
00002818: DUP1
00002819: REVERT
0000281a: JUMPDEST
0000281b: POP
0000281c: GAS
0000281d: CALL
0000281e: ISZERO
0000281f: DUP1
00002820: ISZERO
00002821: PUSH2 0x282e
00002824: JUMPI
00002825: RETURNDATASIZE
00002826: PUSH1 0x00
00002828: DUP1
00002829: RETURNDATACOPY
0000282a: RETURNDATASIZE
0000282b: PUSH1 0x00
0000282d: REVERT
0000282e: JUMPDEST
0000282f: POP
00002830: POP
00002831: POP
00002832: POP
00002833: PUSH1 0x40
00002835: MLOAD
00002836: RETURNDATASIZE
00002837: PUSH1 0x1f
00002839: NOT
0000283a: PUSH1 0x1f
0000283c: DUP3
0000283d: ADD
0000283e: AND
0000283f: DUP3
00002840: ADD
00002841: DUP1
00002842: PUSH1 0x40
00002844: MSTORE
00002845: POP
00002846: PUSH2 0x2852
00002849: SWAP2
0000284a: SWAP1
0000284b: DUP2
0000284c: ADD
0000284d: SWAP1
0000284e: PUSH2 0x2f9b
00002851: JUMP
00002852: JUMPDEST
00002853: LT
00002854: ISZERO
00002855: JUMPDEST
00002856: SWAP2
00002857: POP
00002858: POP
00002859: SWAP4
0000285a: SWAP3
0000285b: POP
0000285c: POP
0000285d: POP
0000285e: JUMP
0000285f: JUMPDEST
00002860: PUSH1 0x00
00002862: DUP1
00002863: PUSH1 0x00
00002865: PUSH1 0x06
00002867: PUSH1 0x00
00002869: DUP6
0000286a: PUSH1 0x00
0000286c: NOT
0000286d: AND
0000286e: PUSH1 0x00
00002870: NOT
00002871: AND
00002872: DUP2
00002873: MSTORE
00002874: PUSH1 0x20
00002876: ADD
00002877: SWAP1
00002878: DUP2
00002879: MSTORE
0000287a: PUSH1 0x20
0000287c: ADD
0000287d: PUSH1 0x00
0000287f: KECCAK256
00002880: PUSH1 0x00
00002882: ADD
00002883: SLOAD
00002884: SWAP2
00002885: POP
00002886: PUSH1 0x06
00002888: PUSH1 0x00
0000288a: DUP6
0000288b: PUSH1 0x00
0000288d: NOT
0000288e: AND
0000288f: PUSH1 0x00
00002891: NOT
00002892: AND
00002893: DUP2
00002894: MSTORE
00002895: PUSH1 0x20
00002897: ADD
00002898: SWAP1
00002899: DUP2
0000289a: MSTORE
0000289b: PUSH1 0x20
0000289d: ADD
0000289e: PUSH1 0x00
000028a0: KECCAK256
000028a1: PUSH1 0x01
000028a3: ADD
000028a4: PUSH1 0x00
000028a6: SWAP1
000028a7: SLOAD
000028a8: SWAP1
000028a9: PUSH2 0x0100
000028ac: EXP
000028ad: SWAP1
000028ae: DIV
000028af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000028c4: AND
000028c5: SWAP1
000028c6: POP
000028c7: PUSH1 0x00
000028c9: PUSH1 0x06
000028cb: PUSH1 0x00
000028cd: DUP7
000028ce: PUSH1 0x00
000028d0: NOT
000028d1: AND
000028d2: PUSH1 0x00
000028d4: NOT
000028d5: AND
000028d6: DUP2
000028d7: MSTORE
000028d8: PUSH1 0x20
000028da: ADD
000028db: SWAP1
000028dc: DUP2
000028dd: MSTORE
000028de: PUSH1 0x20
000028e0: ADD
000028e1: PUSH1 0x00
000028e3: KECCAK256
000028e4: PUSH1 0x00
000028e6: ADD
000028e7: DUP2
000028e8: SWAP1
000028e9: SSTORE
000028ea: POP
000028eb: PUSH1 0x03
000028ed: PUSH1 0x00
000028ef: SWAP1
000028f0: SLOAD
000028f1: SWAP1
000028f2: PUSH2 0x0100
000028f5: EXP
000028f6: SWAP1
000028f7: DIV
000028f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000290d: AND
0000290e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002923: AND
00002924: PUSH4 0xa9059cbb
00002929: DUP3
0000292a: DUP5
0000292b: PUSH1 0x40
0000292d: MLOAD
0000292e: DUP4
0000292f: PUSH4 0xffffffff
00002934: AND
00002935: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00002953: MUL
00002954: DUP2
00002955: MSTORE
00002956: PUSH1 0x04
00002958: ADD
00002959: PUSH2 0x2963
0000295c: SWAP3
0000295d: SWAP2
0000295e: SWAP1
0000295f: PUSH2 0x31f3
00002962: JUMP
00002963: JUMPDEST
00002964: PUSH1 0x20
00002966: PUSH1 0x40
00002968: MLOAD
00002969: DUP1
0000296a: DUP4
0000296b: SUB
0000296c: DUP2
0000296d: PUSH1 0x00
0000296f: DUP8
00002970: DUP1
00002971: EXTCODESIZE
00002972: ISZERO
00002973: DUP1
00002974: ISZERO
00002975: PUSH2 0x297d
00002978: JUMPI
00002979: PUSH1 0x00
0000297b: DUP1
0000297c: REVERT
0000297d: JUMPDEST
0000297e: POP
0000297f: GAS
00002980: CALL
00002981: ISZERO
00002982: DUP1
00002983: ISZERO
00002984: PUSH2 0x2991
00002987: JUMPI
00002988: RETURNDATASIZE
00002989: PUSH1 0x00
0000298b: DUP1
0000298c: RETURNDATACOPY
0000298d: RETURNDATASIZE
0000298e: PUSH1 0x00
00002990: REVERT
00002991: JUMPDEST
00002992: POP
00002993: POP
00002994: POP
00002995: POP
00002996: PUSH1 0x40
00002998: MLOAD
00002999: RETURNDATASIZE
0000299a: PUSH1 0x1f
0000299c: NOT
0000299d: PUSH1 0x1f
0000299f: DUP3
000029a0: ADD
000029a1: AND
000029a2: DUP3
000029a3: ADD
000029a4: DUP1
000029a5: PUSH1 0x40
000029a7: MSTORE
000029a8: POP
000029a9: PUSH2 0x29b5
000029ac: SWAP2
000029ad: SWAP1
000029ae: DUP2
000029af: ADD
000029b0: SWAP1
000029b1: PUSH2 0x2d7a
000029b4: JUMP
000029b5: JUMPDEST
000029b6: SWAP3
000029b7: POP
000029b8: POP
000029b9: POP
000029ba: SWAP2
000029bb: SWAP1
000029bc: POP
000029bd: JUMP
000029be: JUMPDEST
000029bf: PUSH2 0x29c6
000029c2: PUSH2 0x2bd1
000029c5: JUMP
000029c6: JUMPDEST
000029c7: PUSH1 0x00
000029c9: DUP1
000029ca: PUSH1 0x00
000029cc: DUP1
000029cd: PUSH32 0xff00000000000000000000000000000000000000000000000000000000000000
000029ee: PUSH1 0x01
000029f0: MUL
000029f1: DUP7
000029f2: AND
000029f3: SWAP4
000029f4: POP
000029f5: PUSH31 0xff000000000000000000000000000000000000000000000000000000000000
00002a15: PUSH1 0x01
00002a17: MUL
00002a18: DUP7
00002a19: AND
00002a1a: SWAP3
00002a1b: POP
00002a1c: PUSH30 0xffffffffffffffffffffffffffffff000000000000000000000000000000
00002a3b: PUSH1 0x01
00002a3d: MUL
00002a3e: DUP7
00002a3f: AND
00002a40: SWAP2
00002a41: POP
00002a42: PUSH15 0xffffffffffffffffffffffffffffff
00002a52: PUSH1 0x01
00002a54: MUL
00002a55: DUP7
00002a56: AND
00002a57: SWAP1
00002a58: POP
00002a59: PUSH1 0x80
00002a5b: PUSH1 0x40
00002a5d: MLOAD
00002a5e: SWAP1
00002a5f: DUP2
00002a60: ADD
00002a61: PUSH1 0x40
00002a63: MSTORE
00002a64: DUP1
00002a65: PUSH2 0x2a6f
00002a68: DUP7
00002a69: PUSH1 0xf8
00002a6b: PUSH2 0x2b92
00002a6e: JUMP
00002a6f: JUMPDEST
00002a70: DUP2
00002a71: MSTORE
00002a72: PUSH1 0x20
00002a74: ADD
00002a75: PUSH2 0x2a7f
00002a78: DUP6
00002a79: PUSH1 0xf0
00002a7b: PUSH2 0x2b92
00002a7e: JUMP
00002a7f: JUMPDEST
00002a80: DUP2
00002a81: MSTORE
00002a82: PUSH1 0x20
00002a84: ADD
00002a85: PUSH2 0x2a8f
00002a88: DUP5
00002a89: PUSH1 0x78
00002a8b: PUSH2 0x2b92
00002a8e: JUMP
00002a8f: JUMPDEST
00002a90: DUP2
00002a91: MSTORE
00002a92: PUSH1 0x20
00002a94: ADD
00002a95: DUP3
00002a96: PUSH1 0x01
00002a98: SWAP1
00002a99: DIV
00002a9a: DUP2
00002a9b: MSTORE
00002a9c: POP
00002a9d: SWAP5
00002a9e: POP
00002a9f: POP
00002aa0: POP
00002aa1: POP
00002aa2: POP
00002aa3: SWAP2
00002aa4: SWAP1
00002aa5: POP
00002aa6: JUMP
00002aa7: JUMPDEST
00002aa8: PUSH1 0x00
00002aaa: DUP2
00002aab: PUSH1 0x20
00002aad: ADD
00002aae: MLOAD
00002aaf: EQ
00002ab0: ISZERO
00002ab1: ISZERO
00002ab2: ISZERO
00002ab3: PUSH2 0x2ab8
00002ab6: JUMPI
00002ab7: INVALID
00002ab8: JUMPDEST
00002ab9: POP
00002aba: JUMP
00002abb: JUMPDEST
00002abc: PUSH2 0x2ac3
00002abf: PUSH2 0x2bfa
00002ac2: JUMP
00002ac3: JUMPDEST
00002ac4: PUSH1 0x00
00002ac6: DUP1
00002ac7: DUP4
00002ac8: DUP6
00002ac9: GT
00002aca: PUSH2 0x2ad3
00002acd: JUMPI
00002ace: DUP4
00002acf: PUSH2 0x2ad5
00002ad2: JUMP
00002ad3: JUMPDEST
00002ad4: DUP5
00002ad5: JUMPDEST
00002ad6: SWAP2
00002ad7: POP
00002ad8: PUSH2 0x0100
00002adb: DUP3
00002adc: SWAP1
00002add: PUSH1 0x02
00002adf: EXP
00002ae0: SWAP1
00002ae1: DIV
00002ae2: SWAP1
00002ae3: POP
00002ae4: PUSH1 0x00
00002ae6: DUP2
00002ae7: EQ
00002ae8: ISZERO
00002ae9: ISZERO
00002aea: PUSH2 0x2b10
00002aed: JUMPI
00002aee: PUSH1 0x01
00002af0: DUP2
00002af1: ADD
00002af2: SWAP1
00002af3: POP
00002af4: DUP1
00002af5: DUP6
00002af6: DUP2
00002af7: ISZERO
00002af8: ISZERO
00002af9: PUSH2 0x2afe
00002afc: JUMPI
00002afd: INVALID
00002afe: JUMPDEST
00002aff: DIV
00002b00: SWAP5
00002b01: POP
00002b02: DUP1
00002b03: DUP5
00002b04: DUP2
00002b05: ISZERO
00002b06: ISZERO
00002b07: PUSH2 0x2b0c
00002b0a: JUMPI
00002b0b: INVALID
00002b0c: JUMPDEST
00002b0d: DIV
00002b0e: SWAP4
00002b0f: POP
00002b10: JUMPDEST
00002b11: PUSH1 0x00
00002b13: DUP5
00002b14: EQ
00002b15: ISZERO
00002b16: ISZERO
00002b17: ISZERO
00002b18: PUSH2 0x2b1d
00002b1b: JUMPI
00002b1c: INVALID
00002b1d: JUMPDEST
00002b1e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002b3f: DUP5
00002b40: LT
00002b41: ISZERO
00002b42: ISZERO
00002b43: PUSH2 0x2b48
00002b46: JUMPI
00002b47: INVALID
00002b48: JUMPDEST
00002b49: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002b6a: DUP6
00002b6b: LT
00002b6c: ISZERO
00002b6d: ISZERO
00002b6e: PUSH2 0x2b73
00002b71: JUMPI
00002b72: INVALID
00002b73: JUMPDEST
00002b74: PUSH1 0x40
00002b76: DUP1
00002b77: MLOAD
00002b78: SWAP1
00002b79: DUP2
00002b7a: ADD
00002b7b: PUSH1 0x40
00002b7d: MSTORE
00002b7e: DUP1
00002b7f: DUP7
00002b80: DUP2
00002b81: MSTORE
00002b82: PUSH1 0x20
00002b84: ADD
00002b85: DUP6
00002b86: DUP2
00002b87: MSTORE
00002b88: POP
00002b89: SWAP3
00002b8a: POP
00002b8b: POP
00002b8c: POP
00002b8d: SWAP3
00002b8e: SWAP2
00002b8f: POP
00002b90: POP
00002b91: JUMP
00002b92: JUMPDEST
00002b93: PUSH1 0x00
00002b95: DUP2
00002b96: PUSH1 0x02
00002b98: EXP
00002b99: DUP4
00002b9a: PUSH1 0x01
00002b9c: SWAP1
00002b9d: DIV
00002b9e: DUP2
00002b9f: ISZERO
00002ba0: ISZERO
00002ba1: PUSH2 0x2ba6
00002ba4: JUMPI
00002ba5: INVALID
00002ba6: JUMPDEST
00002ba7: DIV
00002ba8: SWAP1
00002ba9: POP
00002baa: SWAP3
00002bab: SWAP2
00002bac: POP
00002bad: POP
00002bae: JUMP
00002baf: JUMPDEST
00002bb0: PUSH1 0x60
00002bb2: PUSH1 0x40
00002bb4: MLOAD
00002bb5: SWAP1
00002bb6: DUP2
00002bb7: ADD
00002bb8: PUSH1 0x40
00002bba: MSTORE
00002bbb: DUP1
00002bbc: PUSH1 0x00
00002bbe: DUP2
00002bbf: MSTORE
00002bc0: PUSH1 0x20
00002bc2: ADD
00002bc3: PUSH1 0x00
00002bc5: DUP2
00002bc6: MSTORE
00002bc7: PUSH1 0x20
00002bc9: ADD
00002bca: PUSH1 0x00
00002bcc: DUP2
00002bcd: MSTORE
00002bce: POP
00002bcf: SWAP1
00002bd0: JUMP
00002bd1: JUMPDEST
00002bd2: PUSH1 0x80
00002bd4: PUSH1 0x40
00002bd6: MLOAD
00002bd7: SWAP1
00002bd8: DUP2
00002bd9: ADD
00002bda: PUSH1 0x40
00002bdc: MSTORE
00002bdd: DUP1
00002bde: PUSH1 0x00
00002be0: DUP2
00002be1: MSTORE
00002be2: PUSH1 0x20
00002be4: ADD
00002be5: PUSH1 0x00
00002be7: DUP2
00002be8: MSTORE
00002be9: PUSH1 0x20
00002beb: ADD
00002bec: PUSH1 0x00
00002bee: DUP2
00002bef: MSTORE
00002bf0: PUSH1 0x20
00002bf2: ADD
00002bf3: PUSH1 0x00
00002bf5: DUP2
00002bf6: MSTORE
00002bf7: POP
00002bf8: SWAP1
00002bf9: JUMP
00002bfa: JUMPDEST
00002bfb: PUSH1 0x40
00002bfd: DUP1
00002bfe: MLOAD
00002bff: SWAP1
00002c00: DUP2
00002c01: ADD
00002c02: PUSH1 0x40
00002c04: MSTORE
00002c05: DUP1
00002c06: PUSH1 0x00
00002c08: DUP2
00002c09: MSTORE
00002c0a: PUSH1 0x20
00002c0c: ADD
00002c0d: PUSH1 0x00
00002c0f: DUP2
00002c10: MSTORE
00002c11: POP
00002c12: SWAP1
00002c13: JUMP
00002c14: JUMPDEST
00002c15: PUSH1 0x00
00002c17: PUSH2 0x2c20
00002c1a: DUP3
00002c1b: CALLDATALOAD
00002c1c: PUSH2 0x33e6
00002c1f: JUMP
00002c20: JUMPDEST
00002c21: SWAP1
00002c22: POP
00002c23: SWAP3
00002c24: SWAP2
00002c25: POP
00002c26: POP
00002c27: JUMP
00002c28: JUMPDEST
00002c29: PUSH1 0x00
00002c2b: PUSH2 0x2c34
00002c2e: DUP3
00002c2f: MLOAD
00002c30: PUSH2 0x33e6
00002c33: JUMP
00002c34: JUMPDEST
00002c35: SWAP1
00002c36: POP
00002c37: SWAP3
00002c38: SWAP2
00002c39: POP
00002c3a: POP
00002c3b: JUMP
00002c3c: JUMPDEST
00002c3d: PUSH1 0x00
00002c3f: PUSH2 0x2c48
00002c42: DUP3
00002c43: MLOAD
00002c44: PUSH2 0x3406
00002c47: JUMP
00002c48: JUMPDEST
00002c49: SWAP1
00002c4a: POP
00002c4b: SWAP3
00002c4c: SWAP2
00002c4d: POP
00002c4e: POP
00002c4f: JUMP
00002c50: JUMPDEST
00002c51: PUSH1 0x00
00002c53: PUSH2 0x2c5c
00002c56: DUP3
00002c57: CALLDATALOAD
00002c58: PUSH2 0x3412
00002c5b: JUMP
00002c5c: JUMPDEST
00002c5d: SWAP1
00002c5e: POP
00002c5f: SWAP3
00002c60: SWAP2
00002c61: POP
00002c62: POP
00002c63: JUMP
00002c64: JUMPDEST
00002c65: PUSH1 0x00
00002c67: PUSH2 0x2c70
00002c6a: DUP3
00002c6b: MLOAD
00002c6c: PUSH2 0x3412
00002c6f: JUMP
00002c70: JUMPDEST
00002c71: SWAP1
00002c72: POP
00002c73: SWAP3
00002c74: SWAP2
00002c75: POP
00002c76: POP
00002c77: JUMP
00002c78: JUMPDEST
00002c79: PUSH1 0x00
00002c7b: PUSH2 0x2c84
00002c7e: DUP3
00002c7f: MLOAD
00002c80: PUSH2 0x341c
00002c83: JUMP
00002c84: JUMPDEST
00002c85: SWAP1
00002c86: POP
00002c87: SWAP3
00002c88: SWAP2
00002c89: POP
00002c8a: POP
00002c8b: JUMP
00002c8c: JUMPDEST
00002c8d: PUSH1 0x00
00002c8f: PUSH2 0x2c98
00002c92: DUP3
00002c93: MLOAD
00002c94: PUSH2 0x342e
00002c97: JUMP
00002c98: JUMPDEST
00002c99: SWAP1
00002c9a: POP
00002c9b: SWAP3
00002c9c: SWAP2
00002c9d: POP
00002c9e: POP
00002c9f: JUMP
00002ca0: JUMPDEST
00002ca1: PUSH1 0x00
00002ca3: PUSH2 0x2cac
00002ca6: DUP3
00002ca7: MLOAD
00002ca8: PUSH2 0x3440
00002cab: JUMP
00002cac: JUMPDEST
00002cad: SWAP1
00002cae: POP
00002caf: SWAP3
00002cb0: SWAP2
00002cb1: POP
00002cb2: POP
00002cb3: JUMP
00002cb4: JUMPDEST
00002cb5: PUSH1 0x00
00002cb7: PUSH1 0x40
00002cb9: DUP3
00002cba: DUP5
00002cbb: SUB
00002cbc: SLT
00002cbd: ISZERO
00002cbe: PUSH2 0x2cc6
00002cc1: JUMPI
00002cc2: PUSH1 0x00
00002cc4: DUP1
00002cc5: REVERT
00002cc6: JUMPDEST
00002cc7: PUSH2 0x2cd0
00002cca: PUSH1 0x40
00002ccc: PUSH2 0x3379
00002ccf: JUMP
00002cd0: JUMPDEST
00002cd1: SWAP1
00002cd2: POP
00002cd3: PUSH1 0x00
00002cd5: PUSH2 0x2ce0
00002cd8: DUP5
00002cd9: DUP3
00002cda: DUP6
00002cdb: ADD
00002cdc: PUSH2 0x2d00
00002cdf: JUMP
00002ce0: JUMPDEST
00002ce1: PUSH1 0x00
00002ce3: DUP4
00002ce4: ADD
00002ce5: MSTORE
00002ce6: POP
00002ce7: PUSH1 0x20
00002ce9: PUSH2 0x2cf4
00002cec: DUP5
00002ced: DUP3
00002cee: DUP6
00002cef: ADD
00002cf0: PUSH2 0x2d00
00002cf3: JUMP
00002cf4: JUMPDEST
00002cf5: PUSH1 0x20
00002cf7: DUP4
00002cf8: ADD
00002cf9: MSTORE
00002cfa: POP
00002cfb: SWAP3
00002cfc: SWAP2
00002cfd: POP
00002cfe: POP
00002cff: JUMP
00002d00: JUMPDEST
00002d01: PUSH1 0x00
00002d03: PUSH2 0x2d0c
00002d06: DUP3
00002d07: CALLDATALOAD
00002d08: PUSH2 0x3452
00002d0b: JUMP
00002d0c: JUMPDEST
00002d0d: SWAP1
00002d0e: POP
00002d0f: SWAP3
00002d10: SWAP2
00002d11: POP
00002d12: POP
00002d13: JUMP
00002d14: JUMPDEST
00002d15: PUSH1 0x00
00002d17: PUSH2 0x2d20
00002d1a: DUP3
00002d1b: MLOAD
00002d1c: PUSH2 0x3452
00002d1f: JUMP
00002d20: JUMPDEST
00002d21: SWAP1
00002d22: POP
00002d23: SWAP3
00002d24: SWAP2
00002d25: POP
00002d26: POP
00002d27: JUMP
00002d28: JUMPDEST
00002d29: PUSH1 0x00
00002d2b: PUSH1 0x20
00002d2d: DUP3
00002d2e: DUP5
00002d2f: SUB
00002d30: SLT
00002d31: ISZERO
00002d32: PUSH2 0x2d3a
00002d35: JUMPI
00002d36: PUSH1 0x00
00002d38: DUP1
00002d39: REVERT
00002d3a: JUMPDEST
00002d3b: PUSH1 0x00
00002d3d: PUSH2 0x2d48
00002d40: DUP5
00002d41: DUP3
00002d42: DUP6
00002d43: ADD
00002d44: PUSH2 0x2c14
00002d47: JUMP
00002d48: JUMPDEST
00002d49: SWAP2
00002d4a: POP
00002d4b: POP
00002d4c: SWAP3
00002d4d: SWAP2
00002d4e: POP
00002d4f: POP
00002d50: JUMP
00002d51: JUMPDEST
00002d52: PUSH1 0x00
00002d54: PUSH1 0x20
00002d56: DUP3
00002d57: DUP5
00002d58: SUB
00002d59: SLT
00002d5a: ISZERO
00002d5b: PUSH2 0x2d63
00002d5e: JUMPI
00002d5f: PUSH1 0x00
00002d61: DUP1
00002d62: REVERT
00002d63: JUMPDEST
00002d64: PUSH1 0x00
00002d66: PUSH2 0x2d71
00002d69: DUP5
00002d6a: DUP3
00002d6b: DUP6
00002d6c: ADD
00002d6d: PUSH2 0x2c28
00002d70: JUMP
00002d71: JUMPDEST
00002d72: SWAP2
00002d73: POP
00002d74: POP
00002d75: SWAP3
00002d76: SWAP2
00002d77: POP
00002d78: POP
00002d79: JUMP
00002d7a: JUMPDEST
00002d7b: PUSH1 0x00
00002d7d: PUSH1 0x20
00002d7f: DUP3
00002d80: DUP5
00002d81: SUB
00002d82: SLT
00002d83: ISZERO
00002d84: PUSH2 0x2d8c
00002d87: JUMPI
00002d88: PUSH1 0x00
00002d8a: DUP1
00002d8b: REVERT
00002d8c: JUMPDEST
00002d8d: PUSH1 0x00
00002d8f: PUSH2 0x2d9a
00002d92: DUP5
00002d93: DUP3
00002d94: DUP6
00002d95: ADD
00002d96: PUSH2 0x2c3c
00002d99: JUMP
00002d9a: JUMPDEST
00002d9b: SWAP2
00002d9c: POP
00002d9d: POP
00002d9e: SWAP3
00002d9f: SWAP2
00002da0: POP
00002da1: POP
00002da2: JUMP
00002da3: JUMPDEST
00002da4: PUSH1 0x00
00002da6: PUSH1 0x20
00002da8: DUP3
00002da9: DUP5
00002daa: SUB
00002dab: SLT
00002dac: ISZERO
00002dad: PUSH2 0x2db5
00002db0: JUMPI
00002db1: PUSH1 0x00
00002db3: DUP1
00002db4: REVERT
00002db5: JUMPDEST
00002db6: PUSH1 0x00
00002db8: PUSH2 0x2dc3
00002dbb: DUP5
00002dbc: DUP3
00002dbd: DUP6
00002dbe: ADD
00002dbf: PUSH2 0x2c50
00002dc2: JUMP
00002dc3: JUMPDEST
00002dc4: SWAP2
00002dc5: POP
00002dc6: POP
00002dc7: SWAP3
00002dc8: SWAP2
00002dc9: POP
00002dca: POP
00002dcb: JUMP
00002dcc: JUMPDEST
00002dcd: PUSH1 0x00
00002dcf: PUSH1 0x20
00002dd1: DUP3
00002dd2: DUP5
00002dd3: SUB
00002dd4: SLT
00002dd5: ISZERO
00002dd6: PUSH2 0x2dde
00002dd9: JUMPI
00002dda: PUSH1 0x00
00002ddc: DUP1
00002ddd: REVERT
00002dde: JUMPDEST
00002ddf: PUSH1 0x00
00002de1: PUSH2 0x2dec
00002de4: DUP5
00002de5: DUP3
00002de6: DUP6
00002de7: ADD
00002de8: PUSH2 0x2c64
00002deb: JUMP
00002dec: JUMPDEST
00002ded: SWAP2
00002dee: POP
00002def: POP
00002df0: SWAP3
00002df1: SWAP2
00002df2: POP
00002df3: POP
00002df4: JUMP
00002df5: JUMPDEST
00002df6: PUSH1 0x00
00002df8: DUP1
00002df9: PUSH1 0x40
00002dfb: DUP4
00002dfc: DUP6
00002dfd: SUB
00002dfe: SLT
00002dff: ISZERO
00002e00: PUSH2 0x2e08
00002e03: JUMPI
00002e04: PUSH1 0x00
00002e06: DUP1
00002e07: REVERT
00002e08: JUMPDEST
00002e09: PUSH1 0x00
00002e0b: PUSH2 0x2e16
00002e0e: DUP6
00002e0f: DUP3
00002e10: DUP7
00002e11: ADD
00002e12: PUSH2 0x2c50
00002e15: JUMP
00002e16: JUMPDEST
00002e17: SWAP3
00002e18: POP
00002e19: POP
00002e1a: PUSH1 0x20
00002e1c: PUSH2 0x2e27
00002e1f: DUP6
00002e20: DUP3
00002e21: DUP7
00002e22: ADD
00002e23: PUSH2 0x2c14
00002e26: JUMP
00002e27: JUMPDEST
00002e28: SWAP2
00002e29: POP
00002e2a: POP
00002e2b: SWAP3
00002e2c: POP
00002e2d: SWAP3
00002e2e: SWAP1
00002e2f: POP
00002e30: JUMP
00002e31: JUMPDEST
00002e32: PUSH1 0x00
00002e34: DUP1
00002e35: PUSH1 0x00
00002e37: DUP1
00002e38: PUSH1 0x00
00002e3a: PUSH1 0xa0
00002e3c: DUP7
00002e3d: DUP9
00002e3e: SUB
00002e3f: SLT
00002e40: ISZERO
00002e41: PUSH2 0x2e49
00002e44: JUMPI
00002e45: PUSH1 0x00
00002e47: DUP1
00002e48: REVERT
00002e49: JUMPDEST
00002e4a: PUSH1 0x00
00002e4c: PUSH2 0x2e57
00002e4f: DUP9
00002e50: DUP3
00002e51: DUP10
00002e52: ADD
00002e53: PUSH2 0x2c50
00002e56: JUMP
00002e57: JUMPDEST
00002e58: SWAP6
00002e59: POP
00002e5a: POP
00002e5b: PUSH1 0x20
00002e5d: PUSH2 0x2e68
00002e60: DUP9
00002e61: DUP3
00002e62: DUP10
00002e63: ADD
00002e64: PUSH2 0x2c14
00002e67: JUMP
00002e68: JUMPDEST
00002e69: SWAP5
00002e6a: POP
00002e6b: POP
00002e6c: PUSH1 0x40
00002e6e: PUSH2 0x2e79
00002e71: DUP9
00002e72: DUP3
00002e73: DUP10
00002e74: ADD
00002e75: PUSH2 0x2c14
00002e78: JUMP
00002e79: JUMPDEST
00002e7a: SWAP4
00002e7b: POP
00002e7c: POP
00002e7d: PUSH1 0x60
00002e7f: PUSH2 0x2e8a
00002e82: DUP9
00002e83: DUP3
00002e84: DUP10
00002e85: ADD
00002e86: PUSH2 0x2d00
00002e89: JUMP
00002e8a: JUMPDEST
00002e8b: SWAP3
00002e8c: POP
00002e8d: POP
00002e8e: PUSH1 0x80
00002e90: PUSH2 0x2e9b
00002e93: DUP9
00002e94: DUP3
00002e95: DUP10
00002e96: ADD
00002e97: PUSH2 0x2c14
00002e9a: JUMP
00002e9b: JUMPDEST
00002e9c: SWAP2
00002e9d: POP
00002e9e: POP
00002e9f: SWAP3
00002ea0: SWAP6
00002ea1: POP
00002ea2: SWAP3
00002ea3: SWAP6
00002ea4: SWAP1
00002ea5: SWAP4
00002ea6: POP
00002ea7: JUMP
00002ea8: JUMPDEST
00002ea9: PUSH1 0x00
00002eab: DUP1
00002eac: PUSH1 0x40
00002eae: DUP4
00002eaf: DUP6
00002eb0: SUB
00002eb1: SLT
00002eb2: ISZERO
00002eb3: PUSH2 0x2ebb
00002eb6: JUMPI
00002eb7: PUSH1 0x00
00002eb9: DUP1
00002eba: REVERT
00002ebb: JUMPDEST
00002ebc: PUSH1 0x00
00002ebe: PUSH2 0x2ec9
00002ec1: DUP6
00002ec2: DUP3
00002ec3: DUP7
00002ec4: ADD
00002ec5: PUSH2 0x2c50
00002ec8: JUMP
00002ec9: JUMPDEST
00002eca: SWAP3
00002ecb: POP
00002ecc: POP
00002ecd: PUSH1 0x20
00002ecf: PUSH2 0x2eda
00002ed2: DUP6
00002ed3: DUP3
00002ed4: DUP7
00002ed5: ADD
00002ed6: PUSH2 0x2d00
00002ed9: JUMP
00002eda: JUMPDEST
00002edb: SWAP2
00002edc: POP
00002edd: POP
00002ede: SWAP3
00002edf: POP
00002ee0: SWAP3
00002ee1: SWAP1
00002ee2: POP
00002ee3: JUMP
00002ee4: JUMPDEST
00002ee5: PUSH1 0x00
00002ee7: PUSH1 0x20
00002ee9: DUP3
00002eea: DUP5
00002eeb: SUB
00002eec: SLT
00002eed: ISZERO
00002eee: PUSH2 0x2ef6
00002ef1: JUMPI
00002ef2: PUSH1 0x00
00002ef4: DUP1
00002ef5: REVERT
00002ef6: JUMPDEST
00002ef7: PUSH1 0x00
00002ef9: PUSH2 0x2f04
00002efc: DUP5
00002efd: DUP3
00002efe: DUP6
00002eff: ADD
00002f00: PUSH2 0x2c78
00002f03: JUMP
00002f04: JUMPDEST
00002f05: SWAP2
00002f06: POP
00002f07: POP
00002f08: SWAP3
00002f09: SWAP2
00002f0a: POP
00002f0b: POP
00002f0c: JUMP
00002f0d: JUMPDEST
00002f0e: PUSH1 0x00
00002f10: PUSH1 0x20
00002f12: DUP3
00002f13: DUP5
00002f14: SUB
00002f15: SLT
00002f16: ISZERO
00002f17: PUSH2 0x2f1f
00002f1a: JUMPI
00002f1b: PUSH1 0x00
00002f1d: DUP1
00002f1e: REVERT
00002f1f: JUMPDEST
00002f20: PUSH1 0x00
00002f22: PUSH2 0x2f2d
00002f25: DUP5
00002f26: DUP3
00002f27: DUP6
00002f28: ADD
00002f29: PUSH2 0x2c8c
00002f2c: JUMP
00002f2d: JUMPDEST
00002f2e: SWAP2
00002f2f: POP
00002f30: POP
00002f31: SWAP3
00002f32: SWAP2
00002f33: POP
00002f34: POP
00002f35: JUMP
00002f36: JUMPDEST
00002f37: PUSH1 0x00
00002f39: PUSH1 0x20
00002f3b: DUP3
00002f3c: DUP5
00002f3d: SUB
00002f3e: SLT
00002f3f: ISZERO
00002f40: PUSH2 0x2f48
00002f43: JUMPI
00002f44: PUSH1 0x00
00002f46: DUP1
00002f47: REVERT
00002f48: JUMPDEST
00002f49: PUSH1 0x00
00002f4b: PUSH2 0x2f56
00002f4e: DUP5
00002f4f: DUP3
00002f50: DUP6
00002f51: ADD
00002f52: PUSH2 0x2ca0
00002f55: JUMP
00002f56: JUMPDEST
00002f57: SWAP2
00002f58: POP
00002f59: POP
00002f5a: SWAP3
00002f5b: SWAP2
00002f5c: POP
00002f5d: POP
00002f5e: JUMP
00002f5f: JUMPDEST
00002f60: PUSH1 0x00
00002f62: DUP1
00002f63: PUSH1 0x80
00002f65: DUP4
00002f66: DUP6
00002f67: SUB
00002f68: SLT
00002f69: ISZERO
00002f6a: PUSH2 0x2f72
00002f6d: JUMPI
00002f6e: PUSH1 0x00
00002f70: DUP1
00002f71: REVERT
00002f72: JUMPDEST
00002f73: PUSH1 0x00
00002f75: PUSH2 0x2f80
00002f78: DUP6
00002f79: DUP3
00002f7a: DUP7
00002f7b: ADD
00002f7c: PUSH2 0x2cb4
00002f7f: JUMP
00002f80: JUMPDEST
00002f81: SWAP3
00002f82: POP
00002f83: POP
00002f84: PUSH1 0x40
00002f86: PUSH2 0x2f91
00002f89: DUP6
00002f8a: DUP3
00002f8b: DUP7
00002f8c: ADD
00002f8d: PUSH2 0x2cb4
00002f90: JUMP
00002f91: JUMPDEST
00002f92: SWAP2
00002f93: POP
00002f94: POP
00002f95: SWAP3
00002f96: POP
00002f97: SWAP3
00002f98: SWAP1
00002f99: POP
00002f9a: JUMP
00002f9b: JUMPDEST
00002f9c: PUSH1 0x00
00002f9e: PUSH1 0x20
00002fa0: DUP3
00002fa1: DUP5
00002fa2: SUB
00002fa3: SLT
00002fa4: ISZERO
00002fa5: PUSH2 0x2fad
00002fa8: JUMPI
00002fa9: PUSH1 0x00
00002fab: DUP1
00002fac: REVERT
00002fad: JUMPDEST
00002fae: PUSH1 0x00
00002fb0: PUSH2 0x2fbb
00002fb3: DUP5
00002fb4: DUP3
00002fb5: DUP6
00002fb6: ADD
00002fb7: PUSH2 0x2d14
00002fba: JUMP
00002fbb: JUMPDEST
00002fbc: SWAP2
00002fbd: POP
00002fbe: POP
00002fbf: SWAP3
00002fc0: SWAP2
00002fc1: POP
00002fc2: POP
00002fc3: JUMP
00002fc4: JUMPDEST
00002fc5: PUSH1 0x00
00002fc7: DUP1
00002fc8: PUSH1 0x40
00002fca: DUP4
00002fcb: DUP6
00002fcc: SUB
00002fcd: SLT
00002fce: ISZERO
00002fcf: PUSH2 0x2fd7
00002fd2: JUMPI
00002fd3: PUSH1 0x00
00002fd5: DUP1
00002fd6: REVERT
00002fd7: JUMPDEST
00002fd8: PUSH1 0x00
00002fda: PUSH2 0x2fe5
00002fdd: DUP6
00002fde: DUP3
00002fdf: DUP7
00002fe0: ADD
00002fe1: PUSH2 0x2d00
00002fe4: JUMP
00002fe5: JUMPDEST
00002fe6: SWAP3
00002fe7: POP
00002fe8: POP
00002fe9: PUSH1 0x20
00002feb: PUSH2 0x2ff6
00002fee: DUP6
00002fef: DUP3
00002ff0: DUP7
00002ff1: ADD
00002ff2: PUSH2 0x2d00
00002ff5: JUMP
00002ff6: JUMPDEST
00002ff7: SWAP2
00002ff8: POP
00002ff9: POP
00002ffa: SWAP3
00002ffb: POP
00002ffc: SWAP3
00002ffd: SWAP1
00002ffe: POP
00002fff: JUMP
00003000: JUMPDEST
00003001: PUSH2 0x3009
00003004: DUP2
00003005: PUSH2 0x33a6
00003008: JUMP
00003009: JUMPDEST
0000300a: DUP3
0000300b: MSTORE
0000300c: POP
0000300d: POP
0000300e: JUMP
0000300f: JUMPDEST
00003010: PUSH2 0x3018
00003013: DUP2
00003014: PUSH2 0x33c6
00003017: JUMP
00003018: JUMPDEST
00003019: DUP3
0000301a: MSTORE
0000301b: POP
0000301c: POP
0000301d: JUMP
0000301e: JUMPDEST
0000301f: PUSH2 0x3027
00003022: DUP2
00003023: PUSH2 0x33d2
00003026: JUMP
00003027: JUMPDEST
00003028: DUP3
00003029: MSTORE
0000302a: POP
0000302b: POP
0000302c: JUMP
0000302d: JUMPDEST
0000302e: PUSH2 0x3036
00003031: DUP2
00003032: PUSH2 0x345c
00003035: JUMP
00003036: JUMPDEST
00003037: DUP3
00003038: MSTORE
00003039: POP
0000303a: POP
0000303b: JUMP
0000303c: JUMPDEST
0000303d: PUSH2 0x3045
00003040: DUP2
00003041: PUSH2 0x346e
00003044: JUMP
00003045: JUMPDEST
00003046: DUP3
00003047: MSTORE
00003048: POP
00003049: POP
0000304a: JUMP
0000304b: JUMPDEST
0000304c: PUSH2 0x3054
0000304f: DUP2
00003050: PUSH2 0x3480
00003053: JUMP
00003054: JUMPDEST
00003055: DUP3
00003056: MSTORE
00003057: POP
00003058: POP
00003059: JUMP
0000305a: JUMPDEST
0000305b: PUSH1 0x00
0000305d: PUSH1 0x51
0000305f: DUP3
00003060: MSTORE
00003061: PUSH32 0x6d6f6469666965723a2053656e646572206e6f742052657061796d656e74526f
00003082: PUSH1 0x20
00003084: DUP4
00003085: ADD
00003086: MSTORE
00003087: PUSH32 0x75746572202d206f6e6c792052657061796d656e74526f757465722063616e20
000030a8: PUSH1 0x40
000030aa: DUP4
000030ab: ADD
000030ac: MSTORE
000030ad: PUSH32 0x63616c6c2074686973206d6574686f642e000000000000000000000000000000
000030ce: PUSH1 0x60
000030d0: DUP4
000030d1: ADD
000030d2: MSTORE
000030d3: PUSH1 0x80
000030d5: DUP3
000030d6: ADD
000030d7: SWAP1
000030d8: POP
000030d9: SWAP2
000030da: SWAP1
000030db: POP
000030dc: JUMP
000030dd: JUMPDEST
000030de: PUSH1 0x00
000030e0: PUSH1 0x36
000030e2: DUP3
000030e3: MSTORE
000030e4: PUSH32 0x4f6e6c7920446562744b65726e656c2063616e2063616c6c2074686520726567
00003105: PUSH1 0x20
00003107: DUP4
00003108: ADD
00003109: MSTORE
0000310a: PUSH32 0x69737465725465726d5374617274206d6574686f642e00000000000000000000
0000312b: PUSH1 0x40
0000312d: DUP4
0000312e: ADD
0000312f: MSTORE
00003130: PUSH1 0x60
00003132: DUP3
00003133: ADD
00003134: SWAP1
00003135: POP
00003136: SWAP2
00003137: SWAP1
00003138: POP
00003139: JUMP
0000313a: JUMPDEST
0000313b: PUSH1 0x40
0000313d: DUP3
0000313e: ADD
0000313f: PUSH1 0x00
00003141: DUP3
00003142: ADD
00003143: MLOAD
00003144: PUSH2 0x3150
00003147: PUSH1 0x00
00003149: DUP6
0000314a: ADD
0000314b: DUP3
0000314c: PUSH2 0x3169
0000314f: JUMP
00003150: JUMPDEST
00003151: POP
00003152: PUSH1 0x20
00003154: DUP3
00003155: ADD
00003156: MLOAD
00003157: PUSH2 0x3163
0000315a: PUSH1 0x20
0000315c: DUP6
0000315d: ADD
0000315e: DUP3
0000315f: PUSH2 0x3169
00003162: JUMP
00003163: JUMPDEST
00003164: POP
00003165: POP
00003166: POP
00003167: POP
00003168: JUMP
00003169: JUMPDEST
0000316a: PUSH2 0x3172
0000316d: DUP2
0000316e: PUSH2 0x33dc
00003171: JUMP
00003172: JUMPDEST
00003173: DUP3
00003174: MSTORE
00003175: POP
00003176: POP
00003177: JUMP
00003178: JUMPDEST
00003179: PUSH1 0x00
0000317b: PUSH1 0x20
0000317d: DUP3
0000317e: ADD
0000317f: SWAP1
00003180: POP
00003181: PUSH2 0x318d
00003184: PUSH1 0x00
00003186: DUP4
00003187: ADD
00003188: DUP5
00003189: PUSH2 0x3000
0000318c: JUMP
0000318d: JUMPDEST
0000318e: SWAP3
0000318f: SWAP2
00003190: POP
00003191: POP
00003192: JUMP
00003193: JUMPDEST
00003194: PUSH1 0x00
00003196: PUSH1 0x40
00003198: DUP3
00003199: ADD
0000319a: SWAP1
0000319b: POP
0000319c: PUSH2 0x31a8
0000319f: PUSH1 0x00
000031a1: DUP4
000031a2: ADD
000031a3: DUP6
000031a4: PUSH2 0x3000
000031a7: JUMP
000031a8: JUMPDEST
000031a9: PUSH2 0x31b5
000031ac: PUSH1 0x20
000031ae: DUP4
000031af: ADD
000031b0: DUP5
000031b1: PUSH2 0x3000
000031b4: JUMP
000031b5: JUMPDEST
000031b6: SWAP4
000031b7: SWAP3
000031b8: POP
000031b9: POP
000031ba: POP
000031bb: JUMP
000031bc: JUMPDEST
000031bd: PUSH1 0x00
000031bf: PUSH1 0x60
000031c1: DUP3
000031c2: ADD
000031c3: SWAP1
000031c4: POP
000031c5: PUSH2 0x31d1
000031c8: PUSH1 0x00
000031ca: DUP4
000031cb: ADD
000031cc: DUP7
000031cd: PUSH2 0x3000
000031d0: JUMP
000031d1: JUMPDEST
000031d2: PUSH2 0x31de
000031d5: PUSH1 0x20
000031d7: DUP4
000031d8: ADD
000031d9: DUP6
000031da: PUSH2 0x3000
000031dd: JUMP
000031de: JUMPDEST
000031df: PUSH2 0x31eb
000031e2: PUSH1 0x40
000031e4: DUP4
000031e5: ADD
000031e6: DUP5
000031e7: PUSH2 0x3169
000031ea: JUMP
000031eb: JUMPDEST
000031ec: SWAP5
000031ed: SWAP4
000031ee: POP
000031ef: POP
000031f0: POP
000031f1: POP
000031f2: JUMP
000031f3: JUMPDEST
000031f4: PUSH1 0x00
000031f6: PUSH1 0x40
000031f8: DUP3
000031f9: ADD
000031fa: SWAP1
000031fb: POP
000031fc: PUSH2 0x3208
000031ff: PUSH1 0x00
00003201: DUP4
00003202: ADD
00003203: DUP6
00003204: PUSH2 0x3000
00003207: JUMP
00003208: JUMPDEST
00003209: PUSH2 0x3215
0000320c: PUSH1 0x20
0000320e: DUP4
0000320f: ADD
00003210: DUP5
00003211: PUSH2 0x3169
00003214: JUMP
00003215: JUMPDEST
00003216: SWAP4
00003217: SWAP3
00003218: POP
00003219: POP
0000321a: POP
0000321b: JUMP
0000321c: JUMPDEST
0000321d: PUSH1 0x00
0000321f: PUSH1 0x20
00003221: DUP3
00003222: ADD
00003223: SWAP1
00003224: POP
00003225: PUSH2 0x3231
00003228: PUSH1 0x00
0000322a: DUP4
0000322b: ADD
0000322c: DUP5
0000322d: PUSH2 0x300f
00003230: JUMP
00003231: JUMPDEST
00003232: SWAP3
00003233: SWAP2
00003234: POP
00003235: POP
00003236: JUMP
00003237: JUMPDEST
00003238: PUSH1 0x00
0000323a: PUSH1 0x20
0000323c: DUP3
0000323d: ADD
0000323e: SWAP1
0000323f: POP
00003240: PUSH2 0x324c
00003243: PUSH1 0x00
00003245: DUP4
00003246: ADD
00003247: DUP5
00003248: PUSH2 0x301e
0000324b: JUMP
0000324c: JUMPDEST
0000324d: SWAP3
0000324e: SWAP2
0000324f: POP
00003250: POP
00003251: JUMP
00003252: JUMPDEST
00003253: PUSH1 0x00
00003255: PUSH1 0x20
00003257: DUP3
00003258: ADD
00003259: SWAP1
0000325a: POP
0000325b: PUSH2 0x3267
0000325e: PUSH1 0x00
00003260: DUP4
00003261: ADD
00003262: DUP5
00003263: PUSH2 0x302d
00003266: JUMP
00003267: JUMPDEST
00003268: SWAP3
00003269: SWAP2
0000326a: POP
0000326b: POP
0000326c: JUMP
0000326d: JUMPDEST
0000326e: PUSH1 0x00
00003270: PUSH1 0x20
00003272: DUP3
00003273: ADD
00003274: SWAP1
00003275: POP
00003276: PUSH2 0x3282
00003279: PUSH1 0x00
0000327b: DUP4
0000327c: ADD
0000327d: DUP5
0000327e: PUSH2 0x303c
00003281: JUMP
00003282: JUMPDEST
00003283: SWAP3
00003284: SWAP2
00003285: POP
00003286: POP
00003287: JUMP
00003288: JUMPDEST
00003289: PUSH1 0x00
0000328b: PUSH1 0x20
0000328d: DUP3
0000328e: ADD
0000328f: SWAP1
00003290: POP
00003291: PUSH2 0x329d
00003294: PUSH1 0x00
00003296: DUP4
00003297: ADD
00003298: DUP5
00003299: PUSH2 0x304b
0000329c: JUMP
0000329d: JUMPDEST
0000329e: SWAP3
0000329f: SWAP2
000032a0: POP
000032a1: POP
000032a2: JUMP
000032a3: JUMPDEST
000032a4: PUSH1 0x00
000032a6: PUSH1 0x20
000032a8: DUP3
000032a9: ADD
000032aa: SWAP1
000032ab: POP
000032ac: DUP2
000032ad: DUP2
000032ae: SUB
000032af: PUSH1 0x00
000032b1: DUP4
000032b2: ADD
000032b3: MSTORE
000032b4: PUSH2 0x32bc
000032b7: DUP2
000032b8: PUSH2 0x305a
000032bb: JUMP
000032bc: JUMPDEST
000032bd: SWAP1
000032be: POP
000032bf: SWAP2
000032c0: SWAP1
000032c1: POP
000032c2: JUMP
000032c3: JUMPDEST
000032c4: PUSH1 0x00
000032c6: PUSH1 0x20
000032c8: DUP3
000032c9: ADD
000032ca: SWAP1
000032cb: POP
000032cc: DUP2
000032cd: DUP2
000032ce: SUB
000032cf: PUSH1 0x00
000032d1: DUP4
000032d2: ADD
000032d3: MSTORE
000032d4: PUSH2 0x32dc
000032d7: DUP2
000032d8: PUSH2 0x30dd
000032db: JUMP
000032dc: JUMPDEST
000032dd: SWAP1
000032de: POP
000032df: SWAP2
000032e0: SWAP1
000032e1: POP
000032e2: JUMP
000032e3: JUMPDEST
000032e4: PUSH1 0x00
000032e6: PUSH1 0x40
000032e8: DUP3
000032e9: ADD
000032ea: SWAP1
000032eb: POP
000032ec: PUSH2 0x32f8
000032ef: PUSH1 0x00
000032f1: DUP4
000032f2: ADD
000032f3: DUP5
000032f4: PUSH2 0x313a
000032f7: JUMP
000032f8: JUMPDEST
000032f9: SWAP3
000032fa: SWAP2
000032fb: POP
000032fc: POP
000032fd: JUMP
000032fe: JUMPDEST
000032ff: PUSH1 0x00
00003301: PUSH1 0x20
00003303: DUP3
00003304: ADD
00003305: SWAP1
00003306: POP
00003307: PUSH2 0x3313
0000330a: PUSH1 0x00
0000330c: DUP4
0000330d: ADD
0000330e: DUP5
0000330f: PUSH2 0x3169
00003312: JUMP
00003313: JUMPDEST
00003314: SWAP3
00003315: SWAP2
00003316: POP
00003317: POP
00003318: JUMP
00003319: JUMPDEST
0000331a: PUSH1 0x00
0000331c: PUSH1 0x40
0000331e: DUP3
0000331f: ADD
00003320: SWAP1
00003321: POP
00003322: PUSH2 0x332e
00003325: PUSH1 0x00
00003327: DUP4
00003328: ADD
00003329: DUP6
0000332a: PUSH2 0x3169
0000332d: JUMP
0000332e: JUMPDEST
0000332f: PUSH2 0x333b
00003332: PUSH1 0x20
00003334: DUP4
00003335: ADD
00003336: DUP5
00003337: PUSH2 0x3000
0000333a: JUMP
0000333b: JUMPDEST
0000333c: SWAP4
0000333d: SWAP3
0000333e: POP
0000333f: POP
00003340: POP
00003341: JUMP
00003342: JUMPDEST
00003343: PUSH1 0x00
00003345: PUSH1 0x60
00003347: DUP3
00003348: ADD
00003349: SWAP1
0000334a: POP
0000334b: PUSH2 0x3357
0000334e: PUSH1 0x00
00003350: DUP4
00003351: ADD
00003352: DUP7
00003353: PUSH2 0x3169
00003356: JUMP
00003357: JUMPDEST
00003358: PUSH2 0x3364
0000335b: PUSH1 0x20
0000335d: DUP4
0000335e: ADD
0000335f: DUP6
00003360: PUSH2 0x3169
00003363: JUMP
00003364: JUMPDEST
00003365: PUSH2 0x3371
00003368: PUSH1 0x40
0000336a: DUP4
0000336b: ADD
0000336c: DUP5
0000336d: PUSH2 0x3169
00003370: JUMP
00003371: JUMPDEST
00003372: SWAP5
00003373: SWAP4
00003374: POP
00003375: POP
00003376: POP
00003377: POP
00003378: JUMP
00003379: JUMPDEST
0000337a: PUSH1 0x00
0000337c: PUSH1 0x40
0000337e: MLOAD
0000337f: SWAP1
00003380: POP
00003381: DUP2
00003382: DUP2
00003383: ADD
00003384: DUP2
00003385: DUP2
00003386: LT
00003387: PUSH8 0xffffffffffffffff
00003390: DUP3
00003391: GT
00003392: OR
00003393: ISZERO
00003394: PUSH2 0x339c
00003397: JUMPI
00003398: PUSH1 0x00
0000339a: DUP1
0000339b: REVERT
0000339c: JUMPDEST
0000339d: DUP1
0000339e: PUSH1 0x40
000033a0: MSTORE
000033a1: POP
000033a2: SWAP2
000033a3: SWAP1
000033a4: POP
000033a5: JUMP
000033a6: JUMPDEST
000033a7: PUSH1 0x00
000033a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000033be: DUP3
000033bf: AND
000033c0: SWAP1
000033c1: POP
000033c2: SWAP2
000033c3: SWAP1
000033c4: POP
000033c5: JUMP
000033c6: JUMPDEST
000033c7: PUSH1 0x00
000033c9: DUP2
000033ca: ISZERO
000033cb: ISZERO
000033cc: SWAP1
000033cd: POP
000033ce: SWAP2
000033cf: SWAP1
000033d0: POP
000033d1: JUMP
000033d2: JUMPDEST
000033d3: PUSH1 0x00
000033d5: DUP2
000033d6: SWAP1
000033d7: POP
000033d8: SWAP2
000033d9: SWAP1
000033da: POP
000033db: JUMP
000033dc: JUMPDEST
000033dd: PUSH1 0x00
000033df: DUP2
000033e0: SWAP1
000033e1: POP
000033e2: SWAP2
000033e3: SWAP1
000033e4: POP
000033e5: JUMP
000033e6: JUMPDEST
000033e7: PUSH1 0x00
000033e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000033fe: DUP3
000033ff: AND
00003400: SWAP1
00003401: POP
00003402: SWAP2
00003403: SWAP1
00003404: POP
00003405: JUMP
00003406: JUMPDEST
00003407: PUSH1 0x00
00003409: DUP2
0000340a: ISZERO
0000340b: ISZERO
0000340c: SWAP1
0000340d: POP
0000340e: SWAP2
0000340f: SWAP1
00003410: POP
00003411: JUMP
00003412: JUMPDEST
00003413: PUSH1 0x00
00003415: DUP2
00003416: SWAP1
00003417: POP
00003418: SWAP2
00003419: SWAP1
0000341a: POP
0000341b: JUMP
0000341c: JUMPDEST
0000341d: PUSH1 0x00
0000341f: PUSH2 0x3427
00003422: DUP3
00003423: PUSH2 0x33a6
00003426: JUMP
00003427: JUMPDEST
00003428: SWAP1
00003429: POP
0000342a: SWAP2
0000342b: SWAP1
0000342c: POP
0000342d: JUMP
0000342e: JUMPDEST
0000342f: PUSH1 0x00
00003431: PUSH2 0x3439
00003434: DUP3
00003435: PUSH2 0x33a6
00003438: JUMP
00003439: JUMPDEST
0000343a: SWAP1
0000343b: POP
0000343c: SWAP2
0000343d: SWAP1
0000343e: POP
0000343f: JUMP
00003440: JUMPDEST
00003441: PUSH1 0x00
00003443: PUSH2 0x344b
00003446: DUP3
00003447: PUSH2 0x33a6
0000344a: JUMP
0000344b: JUMPDEST
0000344c: SWAP1
0000344d: POP
0000344e: SWAP2
0000344f: SWAP1
00003450: POP
00003451: JUMP
00003452: JUMPDEST
00003453: PUSH1 0x00
00003455: DUP2
00003456: SWAP1
00003457: POP
00003458: SWAP2
00003459: SWAP1
0000345a: POP
0000345b: JUMP
0000345c: JUMPDEST
0000345d: PUSH1 0x00
0000345f: PUSH2 0x3467
00003462: DUP3
00003463: PUSH2 0x33a6
00003466: JUMP
00003467: JUMPDEST
00003468: SWAP1
00003469: POP
0000346a: SWAP2
0000346b: SWAP1
0000346c: POP
0000346d: JUMP
0000346e: JUMPDEST
0000346f: PUSH1 0x00
00003471: PUSH2 0x3479
00003474: DUP3
00003475: PUSH2 0x33a6
00003478: JUMP
00003479: JUMPDEST
0000347a: SWAP1
0000347b: POP
0000347c: SWAP2
0000347d: SWAP1
0000347e: POP
0000347f: JUMP
00003480: JUMPDEST
00003481: PUSH1 0x00
00003483: PUSH2 0x348b
00003486: DUP3
00003487: PUSH2 0x33a6
0000348a: JUMP
0000348b: JUMPDEST
0000348c: SWAP1
0000348d: POP
0000348e: SWAP2
0000348f: SWAP1
00003490: POP
00003491: JUMP
00003492: STOP
00003493: LOG2
00003494: PUSH6 0x627a7a723058
0000349b: KECCAK256
0000349c: UNKNOWN(0xBC)
0000349d: UNKNOWN(0x21)
0000349e: CHAINID
0000349f: PUSH21 0xdd0f3d575d17ab31554a4b711441f7101c3233e9b9
000034b5: BASEFEE
000034b6: MUL
000034b7: CALLCODE
000034b8: DUP11
000034b9: SWAP11
000034ba: NUMBER
000034bb: UNKNOWN(0xD9)
000034bc: PUSH13 0x6578706572696d656e74616cf5
000034ca: STOP
000034cb: CALLDATACOPY

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x94598ba2e331c8a2c23fc9fea7cf9317f180d74cd7f7b271cff559db4d0a23f0
call_targets: 0x391a12ab01e6a4f8c3d2e7eca8af931bec704f15
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x94598ba2e331c8a2c23fc9fea7cf9317f180d74cd7f7b271cff559db4d0a23f0",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x391a12ab01e6a4f8c3d2e7eca8af931bec704f15"
    ],
    "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": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x03a896a1",
            "selector": "0x03a896a1",
            "calldata_variants": [
                "0x03a896a1",
                "0x03a896a10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x04fdc562",
            "selector": "0x04fdc562",
            "calldata_variants": [
                "0x04fdc562",
                "0x04fdc5620000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0525ed66",
            "selector": "0x0525ed66",
            "calldata_variants": [
                "0x0525ed66",
                "0x0525ed660000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0992b119",
            "selector": "0x0992b119",
            "calldata_variants": [
                "0x0992b119",
                "0x0992b1190000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x09cc1440",
            "selector": "0x09cc1440",
            "calldata_variants": [
                "0x09cc1440",
                "0x09cc14400000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1920427b",
            "selector": "0x1920427b",
            "calldata_variants": [
                "0x1920427b",
                "0x1920427b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2762dd8c",
            "selector": "0x2762dd8c",
            "calldata_variants": [
                "0x2762dd8c",
                "0x2762dd8c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2839,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3005,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3413,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 20,
    "guards_detected": [
        {
            "pc": 3489,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 3912,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4438,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6417,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 20
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x94598ba2e331c8a2c23fc9fea7cf9317f180d74cd7f7b271cff559db4d0a23f0
call_targets: 0x391a12ab01e6a4f8c3d2e7eca8af931bec704f15
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x94598ba2e331c8a2c23fc9fea7cf9317f180d74cd7f7b271cff559db4d0a23f0",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x391a12ab01e6a4f8c3d2e7eca8af931bec704f15"
    ],
    "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": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x03a896a1",
            "selector": "0x03a896a1",
            "calldata_variants": [
                "0x03a896a1",
                "0x03a896a10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x04fdc562",
            "selector": "0x04fdc562",
            "calldata_variants": [
                "0x04fdc562",
                "0x04fdc5620000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0525ed66",
            "selector": "0x0525ed66",
            "calldata_variants": [
                "0x0525ed66",
                "0x0525ed660000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0992b119",
            "selector": "0x0992b119",
            "calldata_variants": [
                "0x0992b119",
                "0x0992b1190000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x09cc1440",
            "selector": "0x09cc1440",
            "calldata_variants": [
                "0x09cc1440",
                "0x09cc14400000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1920427b",
            "selector": "0x1920427b",
            "calldata_variants": [
                "0x1920427b",
                "0x1920427b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2762dd8c",
            "selector": "0x2762dd8c",
            "calldata_variants": [
                "0x2762dd8c",
                "0x2762dd8c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2839,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3005,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3413,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 20,
    "guards_detected": [
        {
            "pc": 3489,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 3912,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4438,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6417,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 19
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 20
}