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

Analysis Run

0c13efe9-d030-43b0-9de7-ff974ed11442

complete
Chain ID
1
Address
Block Number
Created
Sun, Jan 4, 2026 9:25 AM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Bytecode only
Review Backing
Not yet
Best current signal
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
31618 report.consolidate complete 1 / 1 3 months ago
111506 artifact.fetch complete 1 / 3 1 week ago
111507 tool.cast_disasm complete 1 / 3 1 week ago
111508 analysis.bundle complete 1 / 3 1 week ago
111509 capability.graph complete 1 / 3 1 week ago
111510 detector.run complete 1 / 3 1 week ago
111511 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
0
No findings?
yes
Summary
No concrete, exploitable profit path found in the runtime bytecode. All ETH/token transfer and external-call paths are gated by the executor mapping or owner check; no unprotected delegatecall/selfdestruct/upgrade or open value-transfer logic observed.
View stderr
[codex:870890] OpenAI Codex v0.77.0 (research preview)
[codex:870890] --------
[codex:870890] workdir: /tmp/codex-multi-holl5zdp
[codex:870890] model: gpt-5.2-codex
[codex:870890] provider: openai
[codex:870890] approval: never
[codex:870890] sandbox: read-only
[codex:870890] reasoning effort: xhigh
[codex:870890] reasoning summaries: auto
[codex:870890] session id: 019b884f-cf3e-7803-927d-db080d38a15d
[codex:870890] --------
[codex:870890] user
[codex:870890] 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:870890] 
[codex:870890] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:870890] 
[codex:870890] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:870890] - Gas inefficiency, code quality, or best practices
[codex:870890] - Theoretical vulnerabilities without a clear extraction path
[codex:870890] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:870890] - Issues requiring social engineering or off-chain coordination
[codex:870890] 
[codex:870890] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:870890] - CALL/DELEGATECALL with controllable destination or calldata
[codex:870890] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:870890] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:870890] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:870890] - External calls before state updates (reentrancy)
[codex:870890] - SELFDESTRUCT with controllable beneficiary
[codex:870890] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:870890] 
[codex:870890] For each finding, you MUST explain:
[codex:870890] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:870890] 2. The concrete sequence of transactions to extract value
[codex:870890] 3. Why you believe this is exploitable (not just suspicious)
[codex:870890] 
[codex:870890] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:870890] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:870890] 
[codex:870890] Output MUST be valid JSON matching the provided schema.
[codex:870890] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:870890] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:870890] mcp startup: no servers
[codex:870890] 
[codex:870890] thinking
[codex:870890] **Preparing to read instructions**
[codex:870890] exec
[codex:870890] /bin/bash -lc ls in /tmp/codex-multi-holl5zdp succeeded in 5ms:
[codex:870890] BYTECODE_BUNDLE.txt
[codex:870890] codex-output-schema.json
[codex:870890] exec
[codex:870890] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-holl5zdp succeeded in 5ms:
[codex:870890] Runtime bytecode bundle for best-effort auditing.
[codex:870890] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:870890] 
[codex:870890] FILE: runtime_bytecode.hex
[codex:870890] 0x60806040526004361061008a5760003560e01c8063643590f911610059578063643590f914610122578063646697951461013e578063893d20e81461015a578063d42bfe8214610185578063ea9ed33a146101a157610091565b806307ebd12f146100965780631e83cdab146100b25780633cf9d1f4146100bc578063462bdfa6146100e557610091565b3661009157005b600080fd5b6100b060048036038101906100ab9190611427565b6101bd565b005b6100ba610344565b005b3480156100c857600080fd5b506100e360048036038101906100de9190611527565b61047f565b005b3480156100f157600080fd5b5061010c60048036038101906101079190611427565b610734565b60405161011991906115e5565b60405180910390f35b61013c60048036038101906101379190611427565b61078a565b005b61015860048036038101906101539190611656565b6108ff565b005b34801561016657600080fd5b5061016f610c3f565b60405161017c919061173b565b60405180910390f35b61019f600480360381019061019a9190611656565b610c68565b005b6101bb60048036038101906101b69190611656565b61108c565b005b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610249576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610240906117b3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161029f919061173b565b602060405180830381865afa1580156102bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e091906117e8565b6040518363ffffffff1660e01b81526004016102fd929190611824565b6020604051808303816000875af115801561031c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103409190611862565b5050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166103d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c7906117b3565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16476040516103f6906118c0565b60006040518083038185875af1925050503d8060008114610433576040519150601f19603f3d011682016040523d82523d6000602084013e610438565b606091505b505090508061047c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047390611921565b60405180910390fd5b50565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661050b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610502906117b3565b60405180910390fd5b811580610569575060011515600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514155b6105a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059f9061198d565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff168786866040516105d09291906119e1565b60006040518083038185875af1925050503d806000811461060d576040519150601f19603f3d011682016040523d82523d6000602084013e610612565b606091505b50505060008311156106cc5760004173ffffffffffffffffffffffffffffffffffffffff1684604051610644906118c0565b60006040518083038185875af1925050503d8060008114610681576040519150601f19603f3d011682016040523d82523d6000602084013e610686565b606091505b50509050806106ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c190611a46565b60405180910390fd5b505b811561072b576001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50505050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080f90611ab2565b60405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089c90611b1e565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661098b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610982906117b3565b60405180910390fd5b801580610a18575060026000878760018a8a90506109a99190611b6d565b8181106109b9576109b8611ba1565b5b90506020020160208101906109ce9190611427565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b610a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4e9061198d565b60405180910390fd5b60008990508073ffffffffffffffffffffffffffffffffffffffff16637ff36ab58a8a8a8a8a8a6040518763ffffffff1660e01b8152600401610a9e959493929190611c93565b60006040518083038185885af1158015610abc573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f82011682018060405250810190610ae69190611e30565b506000831115610b9e5760004173ffffffffffffffffffffffffffffffffffffffff1684604051610b16906118c0565b60006040518083038185875af1925050503d8060008114610b53576040519150601f19603f3d011682016040523d82523d6000602084013e610b58565b606091505b5050905080610b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9390611a46565b60405180910390fd5b505b8115610c3357600160026000898960018c8c9050610bbc9190611b6d565b818110610bcc57610bcb611ba1565b5b9050602002016020810190610be19190611427565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50505050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb906117b3565b60405180910390fd5b801580610d81575060026000878760018a8a9050610d129190611b6d565b818110610d2257610d21611ba1565b5b9050602002016020810190610d379190611427565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b610dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db79061198d565b60405180910390fd5b600047905060008a90508073ffffffffffffffffffffffffffffffffffffffff1663fb3bdb418b8b8b8b8b8b6040518763ffffffff1660e01b8152600401610e0c959493929190611c93565b60006040518083038185885af1158015610e2a573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f82011682018060405250810190610e549190611e30565b506000841115610f0c5760004173ffffffffffffffffffffffffffffffffffffffff1685604051610e84906118c0565b60006040518083038185875af1925050503d8060008114610ec1576040519150601f19603f3d011682016040523d82523d6000602084013e610ec6565b606091505b5050905080610f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0190611a46565b60405180910390fd5b505b60004783610f1a9190611b6d565b8b86610f269190611e79565b610f309190611b6d565b90506000811115610fe95760003373ffffffffffffffffffffffffffffffffffffffff1682604051610f61906118c0565b60006040518083038185875af1925050503d8060008114610f9e576040519150601f19603f3d011682016040523d82523d6000602084013e610fa3565b606091505b5050905080610fe7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fde90611921565b60405180910390fd5b505b831561107e576001600260008b8b60018e8e90506110079190611b6d565b81811061101757611016611ba1565b5b905060200201602081019061102c9190611427565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b505050505050505050505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110f906117b3565b60405180910390fd5b8015806111a5575060026000878760018a8a90506111369190611b6d565b81811061114657611145611ba1565b5b905060200201602081019061115b9190611427565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db9061198d565b60405180910390fd5b60008990508073ffffffffffffffffffffffffffffffffffffffff1663b6f9de958a8a8a8a8a8a6040518763ffffffff1660e01b815260040161122b959493929190611c93565b6000604051808303818588803b15801561124457600080fd5b505af1158015611258573d6000803e3d6000fd5b505050505060008311156113145760004173ffffffffffffffffffffffffffffffffffffffff168460405161128c906118c0565b60006040518083038185875af1925050503d80600081146112c9576040519150601f19603f3d011682016040523d82523d6000602084013e6112ce565b606091505b5050905080611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130990611a46565b60405180910390fd5b505b81156113a957600160026000898960018c8c90506113329190611b6d565b81811061134257611341611ba1565b5b90506020020160208101906113579190611427565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50505050505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113f4826113c9565b9050919050565b611404816113e9565b811461140f57600080fd5b50565b600081359050611421816113fb565b92915050565b60006020828403121561143d5761143c6113bf565b5b600061144b84828501611412565b91505092915050565b6000819050919050565b61146781611454565b811461147257600080fd5b50565b6000813590506114848161145e565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126114af576114ae61148a565b5b8235905067ffffffffffffffff8111156114cc576114cb61148f565b5b6020830191508360018202830111156114e8576114e7611494565b5b9250929050565b60008115159050919050565b611504816114ef565b811461150f57600080fd5b50565b600081359050611521816114fb565b92915050565b600080600080600080600060c0888a031215611546576115456113bf565b5b60006115548a828b01611475565b97505060206115658a828b01611412565b965050604088013567ffffffffffffffff811115611586576115856113c4565b5b6115928a828b01611499565b955095505060606115a58a828b01611475565b93505060806115b68a828b01611512565b92505060a06115c78a828b01611412565b91505092959891949750929550565b6115df816114ef565b82525050565b60006020820190506115fa60008301846115d6565b92915050565b60008083601f8401126116165761161561148a565b5b8235905067ffffffffffffffff8111156116335761163261148f565b5b60208301915083602082028301111561164f5761164e611494565b5b9250929050565b60008060008060008060008060006101008a8c031215611679576116786113bf565b5b60006116878c828d01611412565b99505060206116988c828d01611475565b98505060406116a98c828d01611475565b97505060608a013567ffffffffffffffff8111156116ca576116c96113c4565b5b6116d68c828d01611600565b965096505060806116e98c828d01611412565b94505060a06116fa8c828d01611475565b93505060c061170b8c828d01611475565b92505060e061171c8c828d01611512565b9150509295985092959850929598565b611735816113e9565b82525050565b6000602082019050611750600083018461172c565b92915050565b600082825260208201905092915050565b7f4f4e4c59204558454355544f5200000000000000000000000000000000000000600082015250565b600061179d600d83611756565b91506117a882611767565b602082019050919050565b600060208201905081810360008301526117cc81611790565b9050919050565b6000815190506117e28161145e565b92915050565b6000602082840312156117fe576117fd6113bf565b5b600061180c848285016117d3565b91505092915050565b61181e81611454565b82525050565b6000604082019050611839600083018561172c565b6118466020830184611815565b9392505050565b60008151905061185c816114fb565b92915050565b600060208284031215611878576118776113bf565b5b60006118868482850161184d565b91505092915050565b600081905092915050565b50565b60006118aa60008361188f565b91506118b58261189a565b600082019050919050565b60006118cb8261189d565b9150819050919050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061190b601483611756565b9150611916826118d5565b602082019050919050565b6000602082019050818103600083015261193a816118fe565b9050919050565b7f544f4b454e20414c524541445920424f55474854000000000000000000000000600082015250565b6000611977601483611756565b915061198282611941565b602082019050919050565b600060208201905081810360008301526119a68161196a565b9050919050565b82818337600083830152505050565b60006119c8838561188f565b93506119d58385846119ad565b82840190509392505050565b60006119ee8284866119bc565b91508190509392505050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b6000611a30601083611756565b9150611a3b826119fa565b602082019050919050565b60006020820190508181036000830152611a5f81611a23565b9050919050565b7f4f4e4c59204f574e455200000000000000000000000000000000000000000000600082015250565b6000611a9c600a83611756565b9150611aa782611a66565b602082019050919050565b60006020820190508181036000830152611acb81611a8f565b9050919050565b7f414c524541445920415554484f52495a45440000000000000000000000000000600082015250565b6000611b08601283611756565b9150611b1382611ad2565b602082019050919050565b60006020820190508181036000830152611b3781611afb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b7882611454565b9150611b8383611454565b9250828203905081811115611b9b57611b9a611b3e565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b6000819050919050565b611bf4816113e9565b82525050565b6000611c068383611beb565b60208301905092915050565b6000611c216020840184611412565b905092915050565b6000602082019050919050565b6000611c428385611bd0565b9350611c4d82611be1565b8060005b85811015611c8657611c638284611c12565b611c6d8882611bfa565b9750611c7883611c29565b925050600181019050611c51565b5085925050509392505050565b6000608082019050611ca86000830188611815565b8181036020830152611cbb818688611c36565b9050611cca604083018561172c565b611cd76060830184611815565b9695505050505050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611d2a82611ce1565b810181811067ffffffffffffffff82111715611d4957611d48611cf2565b5b80604052505050565b6000611d5c6113b5565b9050611d688282611d21565b919050565b600067ffffffffffffffff821115611d8857611d87611cf2565b5b602082029050602081019050919050565b6000611dac611da784611d6d565b611d52565b90508083825260208201905060208402830185811115611dcf57611dce611494565b5b835b81811015611df85780611de488826117d3565b845260208401935050602081019050611dd1565b5050509392505050565b600082601f830112611e1757611e1661148a565b5b8151611e27848260208601611d99565b91505092915050565b600060208284031215611e4657611e456113bf565b5b600082015167ffffffffffffffff811115611e6457611e636113c4565b5b611e7084828501611e02565b91505092915050565b6000611e8482611454565b9150611e8f83611454565b9250828201905080821115611ea757611ea6611b3e565b5b9291505056fea26469706673582212200c387b9a78e821bfcb21967839feb746457128b23e3f804054c36535e4f7b2bb64736f6c63430008120033
[codex:870890] 
[codex:870890] thinking
[codex:870890] **Interpreting runtime bytecode for exploits**
[codex:870890] 
[codex:870890] I’m analyzing the runtime bytecode of a contract that looks like an executor for DEX aggregator trades, inspecting function selectors, mappings for authorized addresses, and owner checks. I’m decoding key functions for token and ETH withdrawal, authorization management, and trading logic, looking for any unprotected paths that would allow unauthorized transfers or calls that could lead to profitable exploits. Since I only have bytecode, I’m reasoning about contract structure, storage slots, and revert messages to find concrete exploit opportunities or confirm if none exist.
[codex:870890] exec
[codex:870890] /bin/bash -lc "python3 - <<'PY'
[codex:870890] import re
[codex:870890] from eth_utils import decode_hex
[codex:870890] 
[codex:870890] hexstr=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0].strip()
[codex:870890] # actually file has two 0x? it contains runtime in file. We'll parse between 0x and maybe newline end
[codex:870890] # Use regex to find 0x[0-9a-f]+ first occurrence
[codex:870890] m=re.search(r'0x([0-9a-fA-F]+)', open('BYTECODE_BUNDLE.txt').read())
[codex:870890] hexstr=m.group(1)
[codex:870890] code=bytes.fromhex(hexstr)
[codex:870890] 
[codex:870890] # basic opcode map
[codex:870890] opcodes={
[codex:870890]     **{i: f'PUSH{i-0x5f}' for i in range(0x60,0x80)},
[codex:870890]     **{i: f'DUP{i-0x7f}' for i in range(0x80,0x90)},
[codex:870890]     **{i: f'SWAP{i-0x8f}' for i in range(0x90,0xa0)},
[codex:870890]     **{i: f'LOG{i-0xa0}' for i in range(0xa0,0xa5)},
[codex:870890] }
[codex:870890] # add common
[codex:870890] names={
[codex:870890] 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:870890] 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:870890] 0x20:'SHA3',
[codex:870890] 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:870890] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:870890] 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:870890] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:870890] }
[codex:870890] for k,v in names.items(): opcodes[k]=v
[codex:870890] 
[codex:870890] pc=0
[codex:870890] out=[]
[codex:870890] while pc<len(code):
[codex:870890]     op=code[pc]
[codex:870890]     name=opcodes.get(op, f'OP{op:02x}')
[codex:870890]     pc0=pc
[codex:870890]     pc+=1
[codex:870890]     if 0x60<=op<=0x7f:
[codex:870890]         n=op-0x5f
[codex:870890]         data=code[pc:pc+n]
[codex:870890]         pc+=n
[codex:870890]         out.append((pc0,name,data.hex()))
[codex:870890]     else:
[codex:870890]         out.append((pc0,name,''))
[codex:870890] 
[codex:870890] # print with pc and opcode
[codex:870890] for pc,name,data in out:
[codex:870890]     if data:
[codex:870890]         print(f'{pc:04x}: {name} 0x{data}')
[codex:870890]     else:
[codex:870890]         print(f'{pc:04x}: {name}')
[codex:870890] PY" in /tmp/codex-multi-holl5zdp succeeded in 225ms:
[codex:870890] 0000: PUSH1 0x80
[codex:870890] 0002: PUSH1 0x40
[codex:870890] 0004: MSTORE
[codex:870890] 0005: PUSH1 0x04
[codex:870890] 0007: CALLDATASIZE
[codex:870890] 0008: LT
[codex:870890] 0009: PUSH2 0x008a
[codex:870890] 000c: JUMPI
[codex:870890] 000d: PUSH1 0x00
[codex:870890] 000f: CALLDATALOAD
[codex:870890] 0010: PUSH1 0xe0
[codex:870890] 0012: SHR
[codex:870890] 0013: DUP1
[codex:870890] 0014: PUSH4 0x643590f9
[codex:870890] 0019: GT
[codex:870890] 001a: PUSH2 0x0059
[codex:870890] 001d: JUMPI
[codex:870890] 001e: DUP1
[codex:870890] 001f: PUSH4 0x643590f9
[codex:870890] 0024: EQ
[codex:870890] 
[codex:870890] thinking
[codex:870890] **Evaluating function security and access controls**
[codex:870890] exec
[codex:870890] /bin/bash -lc "python3 - <<'PY'
[codex:870890] import re
[codex:870890] code=open('BYTECODE_BUNDLE.txt').read()
[codex:870890] hexstr=re.search(r'0x([0-9a-fA-F]+)', code).group(1)
[codex:870890] bytecode=bytes.fromhex(hexstr)
[codex:870890] 
[codex:870890] # disassemble with pc mapping
[codex:870890] opnames={
[codex:870890]     **{i: f'PUSH{i-0x5f}' for i in range(0x60,0x80)},
[codex:870890]     **{i: f'DUP{i-0x7f}' for i in range(0x80,0x90)},
[codex:870890]     **{i: f'SWAP{i-0x8f}' for i in range(0x90,0xa0)},
[codex:870890] }
[codex:870890] # add list for brevity
[codex:870890] names={0x55:'SSTORE'}
[codex:870890] # full map for formatting context
[codex:870890] for k,v in names.items(): opnames[k]=v
[codex:870890] 
[codex:870890] # build list of (pc, op, data)
[codex:870890] ops=[]
[codex:870890] pc=0
[codex:870890] while pc<len(bytecode):
[codex:870890]     op=bytecode[pc]
[codex:870890]     name=opnames.get(op)
[codex:870890]     pc0=pc; pc+=1
[codex:870890]     data=None
[codex:870890]     if 0x60<=op<=0x7f:
[codex:870890]         n=op-0x5f
[codex:870890]         data=bytecode[pc:pc+n]
[codex:870890]         pc+=n
[codex:870890]         name=f'PUSH{n}'
[codex:870890]     else:
[codex:870890]         name=opnames.get(op, f'OP{op:02x}')
[codex:870890]     ops.append((pc0,name,data))
[codex:870890] 
[codex:870890] # find SSTORE
[codex:870890] for i,(pc,name,data) in enumerate(ops):
[codex:870890]     if name=='SSTORE':
[codex:870890]         # print context 5 ops before
[codex:870890]         start=max(0,i-6); end=min(len(ops), i+4)
[codex:870890]         print('--- SSTORE at', hex(pc))
[codex:870890]         for pc2,name2,data2 in ops[start:end]:
[codex:870890]             if data2 is not None:
[codex:870890]                 print(f'{pc2:04x}: {name2} 0x{data2.hex()}')
[codex:870890]             else:
[codex:870890]                 print(f'{pc2:04x}: {name2}')
[codex:870890] PY" in /tmp/codex-multi-holl5zdp succeeded in 33ms:
[codex:870890] --- SSTORE at 0x729
[codex:870890] 0723: DUP4
[codex:870890] 0724: OP15
[codex:870890] 0725: OP15
[codex:870890] 0726: OP02
[codex:870890] 0727: OP17
[codex:870890] 0728: SWAP1
[codex:870890] 0729: SSTORE
[codex:870890] 072a: OP50
[codex:870890] 072b: OP5b
[codex:870890] 072c: OP50
[codex:870890] --- SSTORE at 0x8fb
[codex:870890] 08f5: DUP4
[codex:870890] 08f6: OP15
[codex:870890] 08f7: OP15
[codex:870890] 08f8: OP02
[codex:870890] 08f9: OP17
[codex:870890] 08fa: SWAP1
[codex:870890] 08fb: SSTORE
[codex:870890] 08fc: OP50
[codex:870890] 
[codex:870890] thinking
[codex:870890] **Analyzing storage writes and access controls**
[codex:870890] exec
[codex:870890] /bin/bash -lc "python3 - <<'PY'
[codex:870890] import re
[codex:870890] code=open('BYTECODE_BUNDLE.txt').read()
[codex:870890] hexstr=re.search(r'0x([0-9a-fA-F]+)', code).group(1)
[codex:870890] bytecode=bytes.fromhex(hexstr)
[codex:870890] print('SELFDESTRUCT' if 0xff in bytecode else 'no selfdestruct')
[codex:870890] PY" in /tmp/codex-multi-holl5zdp succeeded in 22ms:
[codex:870890] SELFDESTRUCT
[codex:870890] 
[codex:870890] thinking
[codex:870890] **Verifying presence of SELFDESTRUCT opcode**
[codex:870890] exec
[codex:870890] /bin/bash -lc "python3 - <<'PY'
[codex:870890] import re
[codex:870890] hexstr=re.search(r'0x([0-9a-fA-F]+)', open('BYTECODE_BUNDLE.txt').read()).group(1)
[codex:870890] code=bytes.fromhex(hexstr)
[codex:870890] 
[codex:870890] # disassemble to find opcode 0xff not inside PUSH data
[codex:870890] pc=0
[codex:870890] selfdestructs=[]
[codex:870890] while pc<len(code):
[codex:870890]     op=code[pc]; pc+=1
[codex:870890]     if 0x60<=op<=0x7f:
[codex:870890]         n=op-0x5f
[codex:870890]         pc+=n
[codex:870890]         continue
[codex:870890]     if op==0xff:
[codex:870890]         selfdestructs.append(pc-1)
[codex:870890] 
[codex:870890] print(selfdestructs)
[codex:870890] PY" in /tmp/codex-multi-holl5zdp succeeded in 25ms:
[codex:870890] []
[codex:870890] 
[codex:870890] thinking
[codex:870890] **Analyzing contract CALL opcode usage**
[codex:870890] exec
[codex:870890] /bin/bash -lc "python3 - <<'PY'
[codex:870890] import re
[codex:870890] hexstr=re.search(r'0x([0-9a-fA-F]+)', open('BYTECODE_BUNDLE.txt').read()).group(1)
[codex:870890] code=bytes.fromhex(hexstr)
[codex:870890] 
[codex:870890] # disassemble with push data
[codex:870890] ops=[]
[codex:870890] pc=0
[codex:870890] while pc<len(code):
[codex:870890]     op=code[pc]; pc+=1
[codex:870890]     if 0x60<=op<=0x7f:
[codex:870890]         n=op-0x5f
[codex:870890]         data=code[pc:pc+n]
[codex:870890]         pc+=n
[codex:870890]         ops.append((pc-n-1, op, data))
[codex:870890]     else:
[codex:870890]         ops.append((pc-1, op, None))
[codex:870890] 
[codex:870890] # list call/staticcall/delegatecall
[codex:870890] for pc,op,data in ops:
[codex:870890]     if op in (0xf1,0xf4,0xfa):
[codex:870890]         name={0xf1:'CALL',0xf4:'DELEGATECALL',0xfa:'STATICCALL'}[op]
[codex:870890]         print(hex(pc), name)
[codex:870890] PY" in /tmp/codex-multi-holl5zdp succeeded in 27ms:
[codex:870890] 0x2ab STATICCALL
[codex:870890] 0x30b CALL
[codex:870890] 0x403 CALL
[codex:870890] 0x5dd CALL
[codex:870890] 0x651 CALL
[codex:870890] 0xaab CALL
[codex:870890] 0xb23 CALL
[codex:870890] 0xe19 CALL
[codex:870890] 0xe91 CALL
[codex:870890] 0xf6e CALL
[codex:870890] 0x1247 CALL
[codex:870890] 0x1299 CALL
[codex:870890] 
[codex:870890] thinking
[codex:870890] **Analyzing contract value transfer and authorization**
[codex:870890] codex
[codex:870890] {"no_findings":true,"summary":"No concrete, exploitable profit path found in the runtime bytecode. All ETH/token transfer and external-call paths are gated by the executor mapping or owner check; no unprotected delegatecall/selfdestruct/upgrade or open value-transfer logic observed.","findings":[]}
[codex:870890] tokens used
[codex:870890] 46,925
[codex:870890] {"no_findings":true,"summary":"No concrete, exploitable profit path found in the runtime bytecode. All ETH/token transfer and external-call paths are gated by the executor mapping or owner check; no unprotected delegatecall/selfdestruct/upgrade or open value-transfer logic observed.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-04T09:25:00.201970+00:00",
        "returncode": 0
    },
    "summary": "No concrete, exploitable profit path found in the runtime bytecode. All ETH/token transfer and external-call paths are gated by the executor mapping or owner check; no unprotected delegatecall/selfdestruct/upgrade or open value-transfer logic observed.",
    "raw_final": {
        "summary": "No concrete, exploitable profit path found in the runtime bytecode. All ETH/token transfer and external-call paths are gated by the executor mapping or owner check; no unprotected delegatecall/selfdestruct/upgrade or open value-transfer logic observed.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
12
EXT*/BALANCE
1
Total opcodes
4361
Flags
call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x008a
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x643590f9
00000019: GT
0000001a: PUSH2 0x0059
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0x643590f9
00000024: EQ
00000025: PUSH2 0x0122
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0x64669795
0000002f: EQ
00000030: PUSH2 0x013e
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0x893d20e8
0000003a: EQ
0000003b: PUSH2 0x015a
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xd42bfe82
00000045: EQ
00000046: PUSH2 0x0185
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xea9ed33a
00000050: EQ
00000051: PUSH2 0x01a1
00000054: JUMPI
00000055: PUSH2 0x0091
00000058: JUMP
00000059: JUMPDEST
0000005a: DUP1
0000005b: PUSH4 0x07ebd12f
00000060: EQ
00000061: PUSH2 0x0096
00000064: JUMPI
00000065: DUP1
00000066: PUSH4 0x1e83cdab
0000006b: EQ
0000006c: PUSH2 0x00b2
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0x3cf9d1f4
00000076: EQ
00000077: PUSH2 0x00bc
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0x462bdfa6
00000081: EQ
00000082: PUSH2 0x00e5
00000085: JUMPI
00000086: PUSH2 0x0091
00000089: JUMP
0000008a: JUMPDEST
0000008b: CALLDATASIZE
0000008c: PUSH2 0x0091
0000008f: JUMPI
00000090: STOP
00000091: JUMPDEST
00000092: PUSH1 0x00
00000094: DUP1
00000095: REVERT
00000096: JUMPDEST
00000097: PUSH2 0x00b0
0000009a: PUSH1 0x04
0000009c: DUP1
0000009d: CALLDATASIZE
0000009e: SUB
0000009f: DUP2
000000a0: ADD
000000a1: SWAP1
000000a2: PUSH2 0x00ab
000000a5: SWAP2
000000a6: SWAP1
000000a7: PUSH2 0x1427
000000aa: JUMP
000000ab: JUMPDEST
000000ac: PUSH2 0x01bd
000000af: JUMP
000000b0: JUMPDEST
000000b1: STOP
000000b2: JUMPDEST
000000b3: PUSH2 0x00ba
000000b6: PUSH2 0x0344
000000b9: JUMP
000000ba: JUMPDEST
000000bb: STOP
000000bc: JUMPDEST
000000bd: CALLVALUE
000000be: DUP1
000000bf: ISZERO
000000c0: PUSH2 0x00c8
000000c3: JUMPI
000000c4: PUSH1 0x00
000000c6: DUP1
000000c7: REVERT
000000c8: JUMPDEST
000000c9: POP
000000ca: PUSH2 0x00e3
000000cd: PUSH1 0x04
000000cf: DUP1
000000d0: CALLDATASIZE
000000d1: SUB
000000d2: DUP2
000000d3: ADD
000000d4: SWAP1
000000d5: PUSH2 0x00de
000000d8: SWAP2
000000d9: SWAP1
000000da: PUSH2 0x1527
000000dd: JUMP
000000de: JUMPDEST
000000df: PUSH2 0x047f
000000e2: JUMP
000000e3: JUMPDEST
000000e4: STOP
000000e5: JUMPDEST
000000e6: CALLVALUE
000000e7: DUP1
000000e8: ISZERO
000000e9: PUSH2 0x00f1
000000ec: JUMPI
000000ed: PUSH1 0x00
000000ef: DUP1
000000f0: REVERT
000000f1: JUMPDEST
000000f2: POP
000000f3: PUSH2 0x010c
000000f6: PUSH1 0x04
000000f8: DUP1
000000f9: CALLDATASIZE
000000fa: SUB
000000fb: DUP2
000000fc: ADD
000000fd: SWAP1
000000fe: PUSH2 0x0107
00000101: SWAP2
00000102: SWAP1
00000103: PUSH2 0x1427
00000106: JUMP
00000107: JUMPDEST
00000108: PUSH2 0x0734
0000010b: JUMP
0000010c: JUMPDEST
0000010d: PUSH1 0x40
0000010f: MLOAD
00000110: PUSH2 0x0119
00000113: SWAP2
00000114: SWAP1
00000115: PUSH2 0x15e5
00000118: JUMP
00000119: JUMPDEST
0000011a: PUSH1 0x40
0000011c: MLOAD
0000011d: DUP1
0000011e: SWAP2
0000011f: SUB
00000120: SWAP1
00000121: RETURN
00000122: JUMPDEST
00000123: PUSH2 0x013c
00000126: PUSH1 0x04
00000128: DUP1
00000129: CALLDATASIZE
0000012a: SUB
0000012b: DUP2
0000012c: ADD
0000012d: SWAP1
0000012e: PUSH2 0x0137
00000131: SWAP2
00000132: SWAP1
00000133: PUSH2 0x1427
00000136: JUMP
00000137: JUMPDEST
00000138: PUSH2 0x078a
0000013b: JUMP
0000013c: JUMPDEST
0000013d: STOP
0000013e: JUMPDEST
0000013f: PUSH2 0x0158
00000142: PUSH1 0x04
00000144: DUP1
00000145: CALLDATASIZE
00000146: SUB
00000147: DUP2
00000148: ADD
00000149: SWAP1
0000014a: PUSH2 0x0153
0000014d: SWAP2
0000014e: SWAP1
0000014f: PUSH2 0x1656
00000152: JUMP
00000153: JUMPDEST
00000154: PUSH2 0x08ff
00000157: JUMP
00000158: JUMPDEST
00000159: STOP
0000015a: JUMPDEST
0000015b: CALLVALUE
0000015c: DUP1
0000015d: ISZERO
0000015e: PUSH2 0x0166
00000161: JUMPI
00000162: PUSH1 0x00
00000164: DUP1
00000165: REVERT
00000166: JUMPDEST
00000167: POP
00000168: PUSH2 0x016f
0000016b: PUSH2 0x0c3f
0000016e: JUMP
0000016f: JUMPDEST
00000170: PUSH1 0x40
00000172: MLOAD
00000173: PUSH2 0x017c
00000176: SWAP2
00000177: SWAP1
00000178: PUSH2 0x173b
0000017b: JUMP
0000017c: JUMPDEST
0000017d: PUSH1 0x40
0000017f: MLOAD
00000180: DUP1
00000181: SWAP2
00000182: SUB
00000183: SWAP1
00000184: RETURN
00000185: JUMPDEST
00000186: PUSH2 0x019f
00000189: PUSH1 0x04
0000018b: DUP1
0000018c: CALLDATASIZE
0000018d: SUB
0000018e: DUP2
0000018f: ADD
00000190: SWAP1
00000191: PUSH2 0x019a
00000194: SWAP2
00000195: SWAP1
00000196: PUSH2 0x1656
00000199: JUMP
0000019a: JUMPDEST
0000019b: PUSH2 0x0c68
0000019e: JUMP
0000019f: JUMPDEST
000001a0: STOP
000001a1: JUMPDEST
000001a2: PUSH2 0x01bb
000001a5: PUSH1 0x04
000001a7: DUP1
000001a8: CALLDATASIZE
000001a9: SUB
000001aa: DUP2
000001ab: ADD
000001ac: SWAP1
000001ad: PUSH2 0x01b6
000001b0: SWAP2
000001b1: SWAP1
000001b2: PUSH2 0x1656
000001b5: JUMP
000001b6: JUMPDEST
000001b7: PUSH2 0x108c
000001ba: JUMP
000001bb: JUMPDEST
000001bc: STOP
000001bd: JUMPDEST
000001be: PUSH1 0x01
000001c0: PUSH1 0x00
000001c2: CALLER
000001c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001d8: AND
000001d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001ee: AND
000001ef: DUP2
000001f0: MSTORE
000001f1: PUSH1 0x20
000001f3: ADD
000001f4: SWAP1
000001f5: DUP2
000001f6: MSTORE
000001f7: PUSH1 0x20
000001f9: ADD
000001fa: PUSH1 0x00
000001fc: KECCAK256
000001fd: PUSH1 0x00
000001ff: SWAP1
00000200: SLOAD
00000201: SWAP1
00000202: PUSH2 0x0100
00000205: EXP
00000206: SWAP1
00000207: DIV
00000208: PUSH1 0xff
0000020a: AND
0000020b: PUSH2 0x0249
0000020e: JUMPI
0000020f: PUSH1 0x40
00000211: MLOAD
00000212: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000233: DUP2
00000234: MSTORE
00000235: PUSH1 0x04
00000237: ADD
00000238: PUSH2 0x0240
0000023b: SWAP1
0000023c: PUSH2 0x17b3
0000023f: JUMP
00000240: JUMPDEST
00000241: PUSH1 0x40
00000243: MLOAD
00000244: DUP1
00000245: SWAP2
00000246: SUB
00000247: SWAP1
00000248: REVERT
00000249: JUMPDEST
0000024a: DUP1
0000024b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000260: AND
00000261: PUSH4 0xa9059cbb
00000266: CALLER
00000267: DUP4
00000268: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000027d: AND
0000027e: PUSH4 0x70a08231
00000283: ADDRESS
00000284: PUSH1 0x40
00000286: MLOAD
00000287: DUP3
00000288: PUSH4 0xffffffff
0000028d: AND
0000028e: PUSH1 0xe0
00000290: SHL
00000291: DUP2
00000292: MSTORE
00000293: PUSH1 0x04
00000295: ADD
00000296: PUSH2 0x029f
00000299: SWAP2
0000029a: SWAP1
0000029b: PUSH2 0x173b
0000029e: JUMP
0000029f: JUMPDEST
000002a0: PUSH1 0x20
000002a2: PUSH1 0x40
000002a4: MLOAD
000002a5: DUP1
000002a6: DUP4
000002a7: SUB
000002a8: DUP2
000002a9: DUP7
000002aa: GAS
000002ab: STATICCALL
000002ac: ISZERO
000002ad: DUP1
000002ae: ISZERO
000002af: PUSH2 0x02bc
000002b2: JUMPI
000002b3: RETURNDATASIZE
000002b4: PUSH1 0x00
000002b6: DUP1
000002b7: RETURNDATACOPY
000002b8: RETURNDATASIZE
000002b9: PUSH1 0x00
000002bb: REVERT
000002bc: JUMPDEST
000002bd: POP
000002be: POP
000002bf: POP
000002c0: POP
000002c1: PUSH1 0x40
000002c3: MLOAD
000002c4: RETURNDATASIZE
000002c5: PUSH1 0x1f
000002c7: NOT
000002c8: PUSH1 0x1f
000002ca: DUP3
000002cb: ADD
000002cc: AND
000002cd: DUP3
000002ce: ADD
000002cf: DUP1
000002d0: PUSH1 0x40
000002d2: MSTORE
000002d3: POP
000002d4: DUP2
000002d5: ADD
000002d6: SWAP1
000002d7: PUSH2 0x02e0
000002da: SWAP2
000002db: SWAP1
000002dc: PUSH2 0x17e8
000002df: JUMP
000002e0: JUMPDEST
000002e1: PUSH1 0x40
000002e3: MLOAD
000002e4: DUP4
000002e5: PUSH4 0xffffffff
000002ea: AND
000002eb: PUSH1 0xe0
000002ed: SHL
000002ee: DUP2
000002ef: MSTORE
000002f0: PUSH1 0x04
000002f2: ADD
000002f3: PUSH2 0x02fd
000002f6: SWAP3
000002f7: SWAP2
000002f8: SWAP1
000002f9: PUSH2 0x1824
000002fc: JUMP
000002fd: JUMPDEST
000002fe: PUSH1 0x20
00000300: PUSH1 0x40
00000302: MLOAD
00000303: DUP1
00000304: DUP4
00000305: SUB
00000306: DUP2
00000307: PUSH1 0x00
00000309: DUP8
0000030a: GAS
0000030b: CALL
0000030c: ISZERO
0000030d: DUP1
0000030e: ISZERO
0000030f: PUSH2 0x031c
00000312: JUMPI
00000313: RETURNDATASIZE
00000314: PUSH1 0x00
00000316: DUP1
00000317: RETURNDATACOPY
00000318: RETURNDATASIZE
00000319: PUSH1 0x00
0000031b: REVERT
0000031c: JUMPDEST
0000031d: POP
0000031e: POP
0000031f: POP
00000320: POP
00000321: PUSH1 0x40
00000323: MLOAD
00000324: RETURNDATASIZE
00000325: PUSH1 0x1f
00000327: NOT
00000328: PUSH1 0x1f
0000032a: DUP3
0000032b: ADD
0000032c: AND
0000032d: DUP3
0000032e: ADD
0000032f: DUP1
00000330: PUSH1 0x40
00000332: MSTORE
00000333: POP
00000334: DUP2
00000335: ADD
00000336: SWAP1
00000337: PUSH2 0x0340
0000033a: SWAP2
0000033b: SWAP1
0000033c: PUSH2 0x1862
0000033f: JUMP
00000340: JUMPDEST
00000341: POP
00000342: POP
00000343: JUMP
00000344: JUMPDEST
00000345: PUSH1 0x01
00000347: PUSH1 0x00
00000349: CALLER
0000034a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000035f: AND
00000360: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000375: AND
00000376: DUP2
00000377: MSTORE
00000378: PUSH1 0x20
0000037a: ADD
0000037b: SWAP1
0000037c: DUP2
0000037d: MSTORE
0000037e: PUSH1 0x20
00000380: ADD
00000381: PUSH1 0x00
00000383: KECCAK256
00000384: PUSH1 0x00
00000386: SWAP1
00000387: SLOAD
00000388: SWAP1
00000389: PUSH2 0x0100
0000038c: EXP
0000038d: SWAP1
0000038e: DIV
0000038f: PUSH1 0xff
00000391: AND
00000392: PUSH2 0x03d0
00000395: JUMPI
00000396: PUSH1 0x40
00000398: MLOAD
00000399: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000003ba: DUP2
000003bb: MSTORE
000003bc: PUSH1 0x04
000003be: ADD
000003bf: PUSH2 0x03c7
000003c2: SWAP1
000003c3: PUSH2 0x17b3
000003c6: JUMP
000003c7: JUMPDEST
000003c8: PUSH1 0x40
000003ca: MLOAD
000003cb: DUP1
000003cc: SWAP2
000003cd: SUB
000003ce: SWAP1
000003cf: REVERT
000003d0: JUMPDEST
000003d1: PUSH1 0x00
000003d3: CALLER
000003d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003e9: AND
000003ea: SELFBALANCE
000003eb: PUSH1 0x40
000003ed: MLOAD
000003ee: PUSH2 0x03f6
000003f1: SWAP1
000003f2: PUSH2 0x18c0
000003f5: JUMP
000003f6: JUMPDEST
000003f7: PUSH1 0x00
000003f9: PUSH1 0x40
000003fb: MLOAD
000003fc: DUP1
000003fd: DUP4
000003fe: SUB
000003ff: DUP2
00000400: DUP6
00000401: DUP8
00000402: GAS
00000403: CALL
00000404: SWAP3
00000405: POP
00000406: POP
00000407: POP
00000408: RETURNDATASIZE
00000409: DUP1
0000040a: PUSH1 0x00
0000040c: DUP2
0000040d: EQ
0000040e: PUSH2 0x0433
00000411: JUMPI
00000412: PUSH1 0x40
00000414: MLOAD
00000415: SWAP2
00000416: POP
00000417: PUSH1 0x1f
00000419: NOT
0000041a: PUSH1 0x3f
0000041c: RETURNDATASIZE
0000041d: ADD
0000041e: AND
0000041f: DUP3
00000420: ADD
00000421: PUSH1 0x40
00000423: MSTORE
00000424: RETURNDATASIZE
00000425: DUP3
00000426: MSTORE
00000427: RETURNDATASIZE
00000428: PUSH1 0x00
0000042a: PUSH1 0x20
0000042c: DUP5
0000042d: ADD
0000042e: RETURNDATACOPY
0000042f: PUSH2 0x0438
00000432: JUMP
00000433: JUMPDEST
00000434: PUSH1 0x60
00000436: SWAP2
00000437: POP
00000438: JUMPDEST
00000439: POP
0000043a: POP
0000043b: SWAP1
0000043c: POP
0000043d: DUP1
0000043e: PUSH2 0x047c
00000441: JUMPI
00000442: PUSH1 0x40
00000444: MLOAD
00000445: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000466: DUP2
00000467: MSTORE
00000468: PUSH1 0x04
0000046a: ADD
0000046b: PUSH2 0x0473
0000046e: SWAP1
0000046f: PUSH2 0x1921
00000472: JUMP
00000473: JUMPDEST
00000474: PUSH1 0x40
00000476: MLOAD
00000477: DUP1
00000478: SWAP2
00000479: SUB
0000047a: SWAP1
0000047b: REVERT
0000047c: JUMPDEST
0000047d: POP
0000047e: JUMP
0000047f: JUMPDEST
00000480: PUSH1 0x01
00000482: PUSH1 0x00
00000484: CALLER
00000485: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000049a: AND
0000049b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004b0: AND
000004b1: DUP2
000004b2: MSTORE
000004b3: PUSH1 0x20
000004b5: ADD
000004b6: SWAP1
000004b7: DUP2
000004b8: MSTORE
000004b9: PUSH1 0x20
000004bb: ADD
000004bc: PUSH1 0x00
000004be: KECCAK256
000004bf: PUSH1 0x00
000004c1: SWAP1
000004c2: SLOAD
000004c3: SWAP1
000004c4: PUSH2 0x0100
000004c7: EXP
000004c8: SWAP1
000004c9: DIV
000004ca: PUSH1 0xff
000004cc: AND
000004cd: PUSH2 0x050b
000004d0: JUMPI
000004d1: PUSH1 0x40
000004d3: MLOAD
000004d4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000004f5: DUP2
000004f6: MSTORE
000004f7: PUSH1 0x04
000004f9: ADD
000004fa: PUSH2 0x0502
000004fd: SWAP1
000004fe: PUSH2 0x17b3
00000501: JUMP
00000502: JUMPDEST
00000503: PUSH1 0x40
00000505: MLOAD
00000506: DUP1
00000507: SWAP2
00000508: SUB
00000509: SWAP1
0000050a: REVERT
0000050b: JUMPDEST
0000050c: DUP2
0000050d: ISZERO
0000050e: DUP1
0000050f: PUSH2 0x0569
00000512: JUMPI
00000513: POP
00000514: PUSH1 0x01
00000516: ISZERO
00000517: ISZERO
00000518: PUSH1 0x02
0000051a: PUSH1 0x00
0000051c: DUP4
0000051d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000532: AND
00000533: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000548: AND
00000549: DUP2
0000054a: MSTORE
0000054b: PUSH1 0x20
0000054d: ADD
0000054e: SWAP1
0000054f: DUP2
00000550: MSTORE
00000551: PUSH1 0x20
00000553: ADD
00000554: PUSH1 0x00
00000556: KECCAK256
00000557: PUSH1 0x00
00000559: SWAP1
0000055a: SLOAD
0000055b: SWAP1
0000055c: PUSH2 0x0100
0000055f: EXP
00000560: SWAP1
00000561: DIV
00000562: PUSH1 0xff
00000564: AND
00000565: ISZERO
00000566: ISZERO
00000567: EQ
00000568: ISZERO
00000569: JUMPDEST
0000056a: PUSH2 0x05a8
0000056d: JUMPI
0000056e: PUSH1 0x40
00000570: MLOAD
00000571: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000592: DUP2
00000593: MSTORE
00000594: PUSH1 0x04
00000596: ADD
00000597: PUSH2 0x059f
0000059a: SWAP1
0000059b: PUSH2 0x198d
0000059e: JUMP
0000059f: JUMPDEST
000005a0: PUSH1 0x40
000005a2: MLOAD
000005a3: DUP1
000005a4: SWAP2
000005a5: SUB
000005a6: SWAP1
000005a7: REVERT
000005a8: JUMPDEST
000005a9: DUP6
000005aa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005bf: AND
000005c0: DUP8
000005c1: DUP7
000005c2: DUP7
000005c3: PUSH1 0x40
000005c5: MLOAD
000005c6: PUSH2 0x05d0
000005c9: SWAP3
000005ca: SWAP2
000005cb: SWAP1
000005cc: PUSH2 0x19e1
000005cf: JUMP
000005d0: JUMPDEST
000005d1: PUSH1 0x00
000005d3: PUSH1 0x40
000005d5: MLOAD
000005d6: DUP1
000005d7: DUP4
000005d8: SUB
000005d9: DUP2
000005da: DUP6
000005db: DUP8
000005dc: GAS
000005dd: CALL
000005de: SWAP3
000005df: POP
000005e0: POP
000005e1: POP
000005e2: RETURNDATASIZE
000005e3: DUP1
000005e4: PUSH1 0x00
000005e6: DUP2
000005e7: EQ
000005e8: PUSH2 0x060d
000005eb: JUMPI
000005ec: PUSH1 0x40
000005ee: MLOAD
000005ef: SWAP2
000005f0: POP
000005f1: PUSH1 0x1f
000005f3: NOT
000005f4: PUSH1 0x3f
000005f6: RETURNDATASIZE
000005f7: ADD
000005f8: AND
000005f9: DUP3
000005fa: ADD
000005fb: PUSH1 0x40
000005fd: MSTORE
000005fe: RETURNDATASIZE
000005ff: DUP3
00000600: MSTORE
00000601: RETURNDATASIZE
00000602: PUSH1 0x00
00000604: PUSH1 0x20
00000606: DUP5
00000607: ADD
00000608: RETURNDATACOPY
00000609: PUSH2 0x0612
0000060c: JUMP
0000060d: JUMPDEST
0000060e: PUSH1 0x60
00000610: SWAP2
00000611: POP
00000612: JUMPDEST
00000613: POP
00000614: POP
00000615: POP
00000616: PUSH1 0x00
00000618: DUP4
00000619: GT
0000061a: ISZERO
0000061b: PUSH2 0x06cc
0000061e: JUMPI
0000061f: PUSH1 0x00
00000621: COINBASE
00000622: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000637: AND
00000638: DUP5
00000639: PUSH1 0x40
0000063b: MLOAD
0000063c: PUSH2 0x0644
0000063f: SWAP1
00000640: PUSH2 0x18c0
00000643: JUMP
00000644: JUMPDEST
00000645: PUSH1 0x00
00000647: PUSH1 0x40
00000649: MLOAD
0000064a: DUP1
0000064b: DUP4
0000064c: SUB
0000064d: DUP2
0000064e: DUP6
0000064f: DUP8
00000650: GAS
00000651: CALL
00000652: SWAP3
00000653: POP
00000654: POP
00000655: POP
00000656: RETURNDATASIZE
00000657: DUP1
00000658: PUSH1 0x00
0000065a: DUP2
0000065b: EQ
0000065c: PUSH2 0x0681
0000065f: JUMPI
00000660: PUSH1 0x40
00000662: MLOAD
00000663: SWAP2
00000664: POP
00000665: PUSH1 0x1f
00000667: NOT
00000668: PUSH1 0x3f
0000066a: RETURNDATASIZE
0000066b: ADD
0000066c: AND
0000066d: DUP3
0000066e: ADD
0000066f: PUSH1 0x40
00000671: MSTORE
00000672: RETURNDATASIZE
00000673: DUP3
00000674: MSTORE
00000675: RETURNDATASIZE
00000676: PUSH1 0x00
00000678: PUSH1 0x20
0000067a: DUP5
0000067b: ADD
0000067c: RETURNDATACOPY
0000067d: PUSH2 0x0686
00000680: JUMP
00000681: JUMPDEST
00000682: PUSH1 0x60
00000684: SWAP2
00000685: POP
00000686: JUMPDEST
00000687: POP
00000688: POP
00000689: SWAP1
0000068a: POP
0000068b: DUP1
0000068c: PUSH2 0x06ca
0000068f: JUMPI
00000690: PUSH1 0x40
00000692: MLOAD
00000693: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000006b4: DUP2
000006b5: MSTORE
000006b6: PUSH1 0x04
000006b8: ADD
000006b9: PUSH2 0x06c1
000006bc: SWAP1
000006bd: PUSH2 0x1a46
000006c0: JUMP
000006c1: JUMPDEST
000006c2: PUSH1 0x40
000006c4: MLOAD
000006c5: DUP1
000006c6: SWAP2
000006c7: SUB
000006c8: SWAP1
000006c9: REVERT
000006ca: JUMPDEST
000006cb: POP
000006cc: JUMPDEST
000006cd: DUP2
000006ce: ISZERO
000006cf: PUSH2 0x072b
000006d2: JUMPI
000006d3: PUSH1 0x01
000006d5: PUSH1 0x02
000006d7: PUSH1 0x00
000006d9: DUP4
000006da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006ef: AND
000006f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000705: AND
00000706: DUP2
00000707: MSTORE
00000708: PUSH1 0x20
0000070a: ADD
0000070b: SWAP1
0000070c: DUP2
0000070d: MSTORE
0000070e: PUSH1 0x20
00000710: ADD
00000711: PUSH1 0x00
00000713: KECCAK256
00000714: PUSH1 0x00
00000716: PUSH2 0x0100
00000719: EXP
0000071a: DUP2
0000071b: SLOAD
0000071c: DUP2
0000071d: PUSH1 0xff
0000071f: MUL
00000720: NOT
00000721: AND
00000722: SWAP1
00000723: DUP4
00000724: ISZERO
00000725: ISZERO
00000726: MUL
00000727: OR
00000728: SWAP1
00000729: SSTORE
0000072a: POP
0000072b: JUMPDEST
0000072c: POP
0000072d: POP
0000072e: POP
0000072f: POP
00000730: POP
00000731: POP
00000732: POP
00000733: JUMP
00000734: JUMPDEST
00000735: PUSH1 0x00
00000737: PUSH1 0x01
00000739: PUSH1 0x00
0000073b: DUP4
0000073c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000751: AND
00000752: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000767: AND
00000768: DUP2
00000769: MSTORE
0000076a: PUSH1 0x20
0000076c: ADD
0000076d: SWAP1
0000076e: DUP2
0000076f: MSTORE
00000770: PUSH1 0x20
00000772: ADD
00000773: PUSH1 0x00
00000775: KECCAK256
00000776: PUSH1 0x00
00000778: SWAP1
00000779: SLOAD
0000077a: SWAP1
0000077b: PUSH2 0x0100
0000077e: EXP
0000077f: SWAP1
00000780: DIV
00000781: PUSH1 0xff
00000783: AND
00000784: SWAP1
00000785: POP
00000786: SWAP2
00000787: SWAP1
00000788: POP
00000789: JUMP
0000078a: JUMPDEST
0000078b: PUSH1 0x00
0000078d: DUP1
0000078e: SLOAD
0000078f: SWAP1
00000790: PUSH2 0x0100
00000793: EXP
00000794: SWAP1
00000795: DIV
00000796: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007ab: AND
000007ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007c1: AND
000007c2: CALLER
000007c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007d8: AND
000007d9: EQ
000007da: PUSH2 0x0818
000007dd: JUMPI
000007de: PUSH1 0x40
000007e0: MLOAD
000007e1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000802: DUP2
00000803: MSTORE
00000804: PUSH1 0x04
00000806: ADD
00000807: PUSH2 0x080f
0000080a: SWAP1
0000080b: PUSH2 0x1ab2
0000080e: JUMP
0000080f: JUMPDEST
00000810: PUSH1 0x40
00000812: MLOAD
00000813: DUP1
00000814: SWAP2
00000815: SUB
00000816: SWAP1
00000817: REVERT
00000818: JUMPDEST
00000819: PUSH1 0x01
0000081b: PUSH1 0x00
0000081d: DUP3
0000081e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000833: AND
00000834: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000849: AND
0000084a: DUP2
0000084b: MSTORE
0000084c: PUSH1 0x20
0000084e: ADD
0000084f: SWAP1
00000850: DUP2
00000851: MSTORE
00000852: PUSH1 0x20
00000854: ADD
00000855: PUSH1 0x00
00000857: KECCAK256
00000858: PUSH1 0x00
0000085a: SWAP1
0000085b: SLOAD
0000085c: SWAP1
0000085d: PUSH2 0x0100
00000860: EXP
00000861: SWAP1
00000862: DIV
00000863: PUSH1 0xff
00000865: AND
00000866: ISZERO
00000867: PUSH2 0x08a5
0000086a: JUMPI
0000086b: PUSH1 0x40
0000086d: MLOAD
0000086e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000088f: DUP2
00000890: MSTORE
00000891: PUSH1 0x04
00000893: ADD
00000894: PUSH2 0x089c
00000897: SWAP1
00000898: PUSH2 0x1b1e
0000089b: JUMP
0000089c: JUMPDEST
0000089d: PUSH1 0x40
0000089f: MLOAD
000008a0: DUP1
000008a1: SWAP2
000008a2: SUB
000008a3: SWAP1
000008a4: REVERT
000008a5: JUMPDEST
000008a6: PUSH1 0x01
000008a8: DUP1
000008a9: PUSH1 0x00
000008ab: DUP4
000008ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008c1: AND
000008c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008d7: AND
000008d8: DUP2
000008d9: MSTORE
000008da: PUSH1 0x20
000008dc: ADD
000008dd: SWAP1
000008de: DUP2
000008df: MSTORE
000008e0: PUSH1 0x20
000008e2: ADD
000008e3: PUSH1 0x00
000008e5: KECCAK256
000008e6: PUSH1 0x00
000008e8: PUSH2 0x0100
000008eb: EXP
000008ec: DUP2
000008ed: SLOAD
000008ee: DUP2
000008ef: PUSH1 0xff
000008f1: MUL
000008f2: NOT
000008f3: AND
000008f4: SWAP1
000008f5: DUP4
000008f6: ISZERO
000008f7: ISZERO
000008f8: MUL
000008f9: OR
000008fa: SWAP1
000008fb: SSTORE
000008fc: POP
000008fd: POP
000008fe: JUMP
000008ff: JUMPDEST
00000900: PUSH1 0x01
00000902: PUSH1 0x00
00000904: CALLER
00000905: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000091a: AND
0000091b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000930: AND
00000931: DUP2
00000932: MSTORE
00000933: PUSH1 0x20
00000935: ADD
00000936: SWAP1
00000937: DUP2
00000938: MSTORE
00000939: PUSH1 0x20
0000093b: ADD
0000093c: PUSH1 0x00
0000093e: KECCAK256
0000093f: PUSH1 0x00
00000941: SWAP1
00000942: SLOAD
00000943: SWAP1
00000944: PUSH2 0x0100
00000947: EXP
00000948: SWAP1
00000949: DIV
0000094a: PUSH1 0xff
0000094c: AND
0000094d: PUSH2 0x098b
00000950: JUMPI
00000951: PUSH1 0x40
00000953: MLOAD
00000954: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000975: DUP2
00000976: MSTORE
00000977: PUSH1 0x04
00000979: ADD
0000097a: PUSH2 0x0982
0000097d: SWAP1
0000097e: PUSH2 0x17b3
00000981: JUMP
00000982: JUMPDEST
00000983: PUSH1 0x40
00000985: MLOAD
00000986: DUP1
00000987: SWAP2
00000988: SUB
00000989: SWAP1
0000098a: REVERT
0000098b: JUMPDEST
0000098c: DUP1
0000098d: ISZERO
0000098e: DUP1
0000098f: PUSH2 0x0a18
00000992: JUMPI
00000993: POP
00000994: PUSH1 0x02
00000996: PUSH1 0x00
00000998: DUP8
00000999: DUP8
0000099a: PUSH1 0x01
0000099c: DUP11
0000099d: DUP11
0000099e: SWAP1
0000099f: POP
000009a0: PUSH2 0x09a9
000009a3: SWAP2
000009a4: SWAP1
000009a5: PUSH2 0x1b6d
000009a8: JUMP
000009a9: JUMPDEST
000009aa: DUP2
000009ab: DUP2
000009ac: LT
000009ad: PUSH2 0x09b9
000009b0: JUMPI
000009b1: PUSH2 0x09b8
000009b4: PUSH2 0x1ba1
000009b7: JUMP
000009b8: JUMPDEST
000009b9: JUMPDEST
000009ba: SWAP1
000009bb: POP
000009bc: PUSH1 0x20
000009be: MUL
000009bf: ADD
000009c0: PUSH1 0x20
000009c2: DUP2
000009c3: ADD
000009c4: SWAP1
000009c5: PUSH2 0x09ce
000009c8: SWAP2
000009c9: SWAP1
000009ca: PUSH2 0x1427
000009cd: JUMP
000009ce: JUMPDEST
000009cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009e4: AND
000009e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009fa: AND
000009fb: DUP2
000009fc: MSTORE
000009fd: PUSH1 0x20
000009ff: ADD
00000a00: SWAP1
00000a01: DUP2
00000a02: MSTORE
00000a03: PUSH1 0x20
00000a05: ADD
00000a06: PUSH1 0x00
00000a08: KECCAK256
00000a09: PUSH1 0x00
00000a0b: SWAP1
00000a0c: SLOAD
00000a0d: SWAP1
00000a0e: PUSH2 0x0100
00000a11: EXP
00000a12: SWAP1
00000a13: DIV
00000a14: PUSH1 0xff
00000a16: AND
00000a17: ISZERO
00000a18: JUMPDEST
00000a19: PUSH2 0x0a57
00000a1c: JUMPI
00000a1d: PUSH1 0x40
00000a1f: MLOAD
00000a20: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000a41: DUP2
00000a42: MSTORE
00000a43: PUSH1 0x04
00000a45: ADD
00000a46: PUSH2 0x0a4e
00000a49: SWAP1
00000a4a: PUSH2 0x198d
00000a4d: JUMP
00000a4e: JUMPDEST
00000a4f: PUSH1 0x40
00000a51: MLOAD
00000a52: DUP1
00000a53: SWAP2
00000a54: SUB
00000a55: SWAP1
00000a56: REVERT
00000a57: JUMPDEST
00000a58: PUSH1 0x00
00000a5a: DUP10
00000a5b: SWAP1
00000a5c: POP
00000a5d: DUP1
00000a5e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a73: AND
00000a74: PUSH4 0x7ff36ab5
00000a79: DUP11
00000a7a: DUP11
00000a7b: DUP11
00000a7c: DUP11
00000a7d: DUP11
00000a7e: DUP11
00000a7f: PUSH1 0x40
00000a81: MLOAD
00000a82: DUP8
00000a83: PUSH4 0xffffffff
00000a88: AND
00000a89: PUSH1 0xe0
00000a8b: SHL
00000a8c: DUP2
00000a8d: MSTORE
00000a8e: PUSH1 0x04
00000a90: ADD
00000a91: PUSH2 0x0a9e
00000a94: SWAP6
00000a95: SWAP5
00000a96: SWAP4
00000a97: SWAP3
00000a98: SWAP2
00000a99: SWAP1
00000a9a: PUSH2 0x1c93
00000a9d: JUMP
00000a9e: JUMPDEST
00000a9f: PUSH1 0x00
00000aa1: PUSH1 0x40
00000aa3: MLOAD
00000aa4: DUP1
00000aa5: DUP4
00000aa6: SUB
00000aa7: DUP2
00000aa8: DUP6
00000aa9: DUP9
00000aaa: GAS
00000aab: CALL
00000aac: ISZERO
00000aad: DUP1
00000aae: ISZERO
00000aaf: PUSH2 0x0abc
00000ab2: JUMPI
00000ab3: RETURNDATASIZE
00000ab4: PUSH1 0x00
00000ab6: DUP1
00000ab7: RETURNDATACOPY
00000ab8: RETURNDATASIZE
00000ab9: PUSH1 0x00
00000abb: REVERT
00000abc: JUMPDEST
00000abd: POP
00000abe: POP
00000abf: POP
00000ac0: POP
00000ac1: POP
00000ac2: PUSH1 0x40
00000ac4: MLOAD
00000ac5: RETURNDATASIZE
00000ac6: PUSH1 0x00
00000ac8: DUP3
00000ac9: RETURNDATACOPY
00000aca: RETURNDATASIZE
00000acb: PUSH1 0x1f
00000acd: NOT
00000ace: PUSH1 0x1f
00000ad0: DUP3
00000ad1: ADD
00000ad2: AND
00000ad3: DUP3
00000ad4: ADD
00000ad5: DUP1
00000ad6: PUSH1 0x40
00000ad8: MSTORE
00000ad9: POP
00000ada: DUP2
00000adb: ADD
00000adc: SWAP1
00000add: PUSH2 0x0ae6
00000ae0: SWAP2
00000ae1: SWAP1
00000ae2: PUSH2 0x1e30
00000ae5: JUMP
00000ae6: JUMPDEST
00000ae7: POP
00000ae8: PUSH1 0x00
00000aea: DUP4
00000aeb: GT
00000aec: ISZERO
00000aed: PUSH2 0x0b9e
00000af0: JUMPI
00000af1: PUSH1 0x00
00000af3: COINBASE
00000af4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b09: AND
00000b0a: DUP5
00000b0b: PUSH1 0x40
00000b0d: MLOAD
00000b0e: PUSH2 0x0b16
00000b11: SWAP1
00000b12: PUSH2 0x18c0
00000b15: JUMP
00000b16: JUMPDEST
00000b17: PUSH1 0x00
00000b19: PUSH1 0x40
00000b1b: MLOAD
00000b1c: DUP1
00000b1d: DUP4
00000b1e: SUB
00000b1f: DUP2
00000b20: DUP6
00000b21: DUP8
00000b22: GAS
00000b23: CALL
00000b24: SWAP3
00000b25: POP
00000b26: POP
00000b27: POP
00000b28: RETURNDATASIZE
00000b29: DUP1
00000b2a: PUSH1 0x00
00000b2c: DUP2
00000b2d: EQ
00000b2e: PUSH2 0x0b53
00000b31: JUMPI
00000b32: PUSH1 0x40
00000b34: MLOAD
00000b35: SWAP2
00000b36: POP
00000b37: PUSH1 0x1f
00000b39: NOT
00000b3a: PUSH1 0x3f
00000b3c: RETURNDATASIZE
00000b3d: ADD
00000b3e: AND
00000b3f: DUP3
00000b40: ADD
00000b41: PUSH1 0x40
00000b43: MSTORE
00000b44: RETURNDATASIZE
00000b45: DUP3
00000b46: MSTORE
00000b47: RETURNDATASIZE
00000b48: PUSH1 0x00
00000b4a: PUSH1 0x20
00000b4c: DUP5
00000b4d: ADD
00000b4e: RETURNDATACOPY
00000b4f: PUSH2 0x0b58
00000b52: JUMP
00000b53: JUMPDEST
00000b54: PUSH1 0x60
00000b56: SWAP2
00000b57: POP
00000b58: JUMPDEST
00000b59: POP
00000b5a: POP
00000b5b: SWAP1
00000b5c: POP
00000b5d: DUP1
00000b5e: PUSH2 0x0b9c
00000b61: JUMPI
00000b62: PUSH1 0x40
00000b64: MLOAD
00000b65: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000b86: DUP2
00000b87: MSTORE
00000b88: PUSH1 0x04
00000b8a: ADD
00000b8b: PUSH2 0x0b93
00000b8e: SWAP1
00000b8f: PUSH2 0x1a46
00000b92: JUMP
00000b93: JUMPDEST
00000b94: PUSH1 0x40
00000b96: MLOAD
00000b97: DUP1
00000b98: SWAP2
00000b99: SUB
00000b9a: SWAP1
00000b9b: REVERT
00000b9c: JUMPDEST
00000b9d: POP
00000b9e: JUMPDEST
00000b9f: DUP2
00000ba0: ISZERO
00000ba1: PUSH2 0x0c33
00000ba4: JUMPI
00000ba5: PUSH1 0x01
00000ba7: PUSH1 0x02
00000ba9: PUSH1 0x00
00000bab: DUP10
00000bac: DUP10
00000bad: PUSH1 0x01
00000baf: DUP13
00000bb0: DUP13
00000bb1: SWAP1
00000bb2: POP
00000bb3: PUSH2 0x0bbc
00000bb6: SWAP2
00000bb7: SWAP1
00000bb8: PUSH2 0x1b6d
00000bbb: JUMP
00000bbc: JUMPDEST
00000bbd: DUP2
00000bbe: DUP2
00000bbf: LT
00000bc0: PUSH2 0x0bcc
00000bc3: JUMPI
00000bc4: PUSH2 0x0bcb
00000bc7: PUSH2 0x1ba1
00000bca: JUMP
00000bcb: JUMPDEST
00000bcc: JUMPDEST
00000bcd: SWAP1
00000bce: POP
00000bcf: PUSH1 0x20
00000bd1: MUL
00000bd2: ADD
00000bd3: PUSH1 0x20
00000bd5: DUP2
00000bd6: ADD
00000bd7: SWAP1
00000bd8: PUSH2 0x0be1
00000bdb: SWAP2
00000bdc: SWAP1
00000bdd: PUSH2 0x1427
00000be0: JUMP
00000be1: JUMPDEST
00000be2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bf7: AND
00000bf8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c0d: AND
00000c0e: DUP2
00000c0f: MSTORE
00000c10: PUSH1 0x20
00000c12: ADD
00000c13: SWAP1
00000c14: DUP2
00000c15: MSTORE
00000c16: PUSH1 0x20
00000c18: ADD
00000c19: PUSH1 0x00
00000c1b: KECCAK256
00000c1c: PUSH1 0x00
00000c1e: PUSH2 0x0100
00000c21: EXP
00000c22: DUP2
00000c23: SLOAD
00000c24: DUP2
00000c25: PUSH1 0xff
00000c27: MUL
00000c28: NOT
00000c29: AND
00000c2a: SWAP1
00000c2b: DUP4
00000c2c: ISZERO
00000c2d: ISZERO
00000c2e: MUL
00000c2f: OR
00000c30: SWAP1
00000c31: SSTORE
00000c32: POP
00000c33: JUMPDEST
00000c34: POP
00000c35: POP
00000c36: POP
00000c37: POP
00000c38: POP
00000c39: POP
00000c3a: POP
00000c3b: POP
00000c3c: POP
00000c3d: POP
00000c3e: JUMP
00000c3f: JUMPDEST
00000c40: PUSH1 0x00
00000c42: DUP1
00000c43: PUSH1 0x00
00000c45: SWAP1
00000c46: SLOAD
00000c47: SWAP1
00000c48: PUSH2 0x0100
00000c4b: EXP
00000c4c: SWAP1
00000c4d: DIV
00000c4e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c63: AND
00000c64: SWAP1
00000c65: POP
00000c66: SWAP1
00000c67: JUMP
00000c68: JUMPDEST
00000c69: PUSH1 0x01
00000c6b: PUSH1 0x00
00000c6d: CALLER
00000c6e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c83: AND
00000c84: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c99: AND
00000c9a: DUP2
00000c9b: MSTORE
00000c9c: PUSH1 0x20
00000c9e: ADD
00000c9f: SWAP1
00000ca0: DUP2
00000ca1: MSTORE
00000ca2: PUSH1 0x20
00000ca4: ADD
00000ca5: PUSH1 0x00
00000ca7: KECCAK256
00000ca8: PUSH1 0x00
00000caa: SWAP1
00000cab: SLOAD
00000cac: SWAP1
00000cad: PUSH2 0x0100
00000cb0: EXP
00000cb1: SWAP1
00000cb2: DIV
00000cb3: PUSH1 0xff
00000cb5: AND
00000cb6: PUSH2 0x0cf4
00000cb9: JUMPI
00000cba: PUSH1 0x40
00000cbc: MLOAD
00000cbd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000cde: DUP2
00000cdf: MSTORE
00000ce0: PUSH1 0x04
00000ce2: ADD
00000ce3: PUSH2 0x0ceb
00000ce6: SWAP1
00000ce7: PUSH2 0x17b3
00000cea: JUMP
00000ceb: JUMPDEST
00000cec: PUSH1 0x40
00000cee: MLOAD
00000cef: DUP1
00000cf0: SWAP2
00000cf1: SUB
00000cf2: SWAP1
00000cf3: REVERT
00000cf4: JUMPDEST
00000cf5: DUP1
00000cf6: ISZERO
00000cf7: DUP1
00000cf8: PUSH2 0x0d81
00000cfb: JUMPI
00000cfc: POP
00000cfd: PUSH1 0x02
00000cff: PUSH1 0x00
00000d01: DUP8
00000d02: DUP8
00000d03: PUSH1 0x01
00000d05: DUP11
00000d06: DUP11
00000d07: SWAP1
00000d08: POP
00000d09: PUSH2 0x0d12
00000d0c: SWAP2
00000d0d: SWAP1
00000d0e: PUSH2 0x1b6d
00000d11: JUMP
00000d12: JUMPDEST
00000d13: DUP2
00000d14: DUP2
00000d15: LT
00000d16: PUSH2 0x0d22
00000d19: JUMPI
00000d1a: PUSH2 0x0d21
00000d1d: PUSH2 0x1ba1
00000d20: JUMP
00000d21: JUMPDEST
00000d22: JUMPDEST
00000d23: SWAP1
00000d24: POP
00000d25: PUSH1 0x20
00000d27: MUL
00000d28: ADD
00000d29: PUSH1 0x20
00000d2b: DUP2
00000d2c: ADD
00000d2d: SWAP1
00000d2e: PUSH2 0x0d37
00000d31: SWAP2
00000d32: SWAP1
00000d33: PUSH2 0x1427
00000d36: JUMP
00000d37: JUMPDEST
00000d38: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d4d: AND
00000d4e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d63: AND
00000d64: DUP2
00000d65: MSTORE
00000d66: PUSH1 0x20
00000d68: ADD
00000d69: SWAP1
00000d6a: DUP2
00000d6b: MSTORE
00000d6c: PUSH1 0x20
00000d6e: ADD
00000d6f: PUSH1 0x00
00000d71: KECCAK256
00000d72: PUSH1 0x00
00000d74: SWAP1
00000d75: SLOAD
00000d76: SWAP1
00000d77: PUSH2 0x0100
00000d7a: EXP
00000d7b: SWAP1
00000d7c: DIV
00000d7d: PUSH1 0xff
00000d7f: AND
00000d80: ISZERO
00000d81: JUMPDEST
00000d82: PUSH2 0x0dc0
00000d85: JUMPI
00000d86: PUSH1 0x40
00000d88: MLOAD
00000d89: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000daa: DUP2
00000dab: MSTORE
00000dac: PUSH1 0x04
00000dae: ADD
00000daf: PUSH2 0x0db7
00000db2: SWAP1
00000db3: PUSH2 0x198d
00000db6: JUMP
00000db7: JUMPDEST
00000db8: PUSH1 0x40
00000dba: MLOAD
00000dbb: DUP1
00000dbc: SWAP2
00000dbd: SUB
00000dbe: SWAP1
00000dbf: REVERT
00000dc0: JUMPDEST
00000dc1: PUSH1 0x00
00000dc3: SELFBALANCE
00000dc4: SWAP1
00000dc5: POP
00000dc6: PUSH1 0x00
00000dc8: DUP11
00000dc9: SWAP1
00000dca: POP
00000dcb: DUP1
00000dcc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000de1: AND
00000de2: PUSH4 0xfb3bdb41
00000de7: DUP12
00000de8: DUP12
00000de9: DUP12
00000dea: DUP12
00000deb: DUP12
00000dec: DUP12
00000ded: PUSH1 0x40
00000def: MLOAD
00000df0: DUP8
00000df1: PUSH4 0xffffffff
00000df6: AND
00000df7: PUSH1 0xe0
00000df9: SHL
00000dfa: DUP2
00000dfb: MSTORE
00000dfc: PUSH1 0x04
00000dfe: ADD
00000dff: PUSH2 0x0e0c
00000e02: SWAP6
00000e03: SWAP5
00000e04: SWAP4
00000e05: SWAP3
00000e06: SWAP2
00000e07: SWAP1
00000e08: PUSH2 0x1c93
00000e0b: JUMP
00000e0c: JUMPDEST
00000e0d: PUSH1 0x00
00000e0f: PUSH1 0x40
00000e11: MLOAD
00000e12: DUP1
00000e13: DUP4
00000e14: SUB
00000e15: DUP2
00000e16: DUP6
00000e17: DUP9
00000e18: GAS
00000e19: CALL
00000e1a: ISZERO
00000e1b: DUP1
00000e1c: ISZERO
00000e1d: PUSH2 0x0e2a
00000e20: JUMPI
00000e21: RETURNDATASIZE
00000e22: PUSH1 0x00
00000e24: DUP1
00000e25: RETURNDATACOPY
00000e26: RETURNDATASIZE
00000e27: PUSH1 0x00
00000e29: REVERT
00000e2a: JUMPDEST
00000e2b: POP
00000e2c: POP
00000e2d: POP
00000e2e: POP
00000e2f: POP
00000e30: PUSH1 0x40
00000e32: MLOAD
00000e33: RETURNDATASIZE
00000e34: PUSH1 0x00
00000e36: DUP3
00000e37: RETURNDATACOPY
00000e38: RETURNDATASIZE
00000e39: PUSH1 0x1f
00000e3b: NOT
00000e3c: PUSH1 0x1f
00000e3e: DUP3
00000e3f: ADD
00000e40: AND
00000e41: DUP3
00000e42: ADD
00000e43: DUP1
00000e44: PUSH1 0x40
00000e46: MSTORE
00000e47: POP
00000e48: DUP2
00000e49: ADD
00000e4a: SWAP1
00000e4b: PUSH2 0x0e54
00000e4e: SWAP2
00000e4f: SWAP1
00000e50: PUSH2 0x1e30
00000e53: JUMP
00000e54: JUMPDEST
00000e55: POP
00000e56: PUSH1 0x00
00000e58: DUP5
00000e59: GT
00000e5a: ISZERO
00000e5b: PUSH2 0x0f0c
00000e5e: JUMPI
00000e5f: PUSH1 0x00
00000e61: COINBASE
00000e62: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e77: AND
00000e78: DUP6
00000e79: PUSH1 0x40
00000e7b: MLOAD
00000e7c: PUSH2 0x0e84
00000e7f: SWAP1
00000e80: PUSH2 0x18c0
00000e83: JUMP
00000e84: JUMPDEST
00000e85: PUSH1 0x00
00000e87: PUSH1 0x40
00000e89: MLOAD
00000e8a: DUP1
00000e8b: DUP4
00000e8c: SUB
00000e8d: DUP2
00000e8e: DUP6
00000e8f: DUP8
00000e90: GAS
00000e91: CALL
00000e92: SWAP3
00000e93: POP
00000e94: POP
00000e95: POP
00000e96: RETURNDATASIZE
00000e97: DUP1
00000e98: PUSH1 0x00
00000e9a: DUP2
00000e9b: EQ
00000e9c: PUSH2 0x0ec1
00000e9f: JUMPI
00000ea0: PUSH1 0x40
00000ea2: MLOAD
00000ea3: SWAP2
00000ea4: POP
00000ea5: PUSH1 0x1f
00000ea7: NOT
00000ea8: PUSH1 0x3f
00000eaa: RETURNDATASIZE
00000eab: ADD
00000eac: AND
00000ead: DUP3
00000eae: ADD
00000eaf: PUSH1 0x40
00000eb1: MSTORE
00000eb2: RETURNDATASIZE
00000eb3: DUP3
00000eb4: MSTORE
00000eb5: RETURNDATASIZE
00000eb6: PUSH1 0x00
00000eb8: PUSH1 0x20
00000eba: DUP5
00000ebb: ADD
00000ebc: RETURNDATACOPY
00000ebd: PUSH2 0x0ec6
00000ec0: JUMP
00000ec1: JUMPDEST
00000ec2: PUSH1 0x60
00000ec4: SWAP2
00000ec5: POP
00000ec6: JUMPDEST
00000ec7: POP
00000ec8: POP
00000ec9: SWAP1
00000eca: POP
00000ecb: DUP1
00000ecc: PUSH2 0x0f0a
00000ecf: JUMPI
00000ed0: PUSH1 0x40
00000ed2: MLOAD
00000ed3: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000ef4: DUP2
00000ef5: MSTORE
00000ef6: PUSH1 0x04
00000ef8: ADD
00000ef9: PUSH2 0x0f01
00000efc: SWAP1
00000efd: PUSH2 0x1a46
00000f00: JUMP
00000f01: JUMPDEST
00000f02: PUSH1 0x40
00000f04: MLOAD
00000f05: DUP1
00000f06: SWAP2
00000f07: SUB
00000f08: SWAP1
00000f09: REVERT
00000f0a: JUMPDEST
00000f0b: POP
00000f0c: JUMPDEST
00000f0d: PUSH1 0x00
00000f0f: SELFBALANCE
00000f10: DUP4
00000f11: PUSH2 0x0f1a
00000f14: SWAP2
00000f15: SWAP1
00000f16: PUSH2 0x1b6d
00000f19: JUMP
00000f1a: JUMPDEST
00000f1b: DUP12
00000f1c: DUP7
00000f1d: PUSH2 0x0f26
00000f20: SWAP2
00000f21: SWAP1
00000f22: PUSH2 0x1e79
00000f25: JUMP
00000f26: JUMPDEST
00000f27: PUSH2 0x0f30
00000f2a: SWAP2
00000f2b: SWAP1
00000f2c: PUSH2 0x1b6d
00000f2f: JUMP
00000f30: JUMPDEST
00000f31: SWAP1
00000f32: POP
00000f33: PUSH1 0x00
00000f35: DUP2
00000f36: GT
00000f37: ISZERO
00000f38: PUSH2 0x0fe9
00000f3b: JUMPI
00000f3c: PUSH1 0x00
00000f3e: CALLER
00000f3f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f54: AND
00000f55: DUP3
00000f56: PUSH1 0x40
00000f58: MLOAD
00000f59: PUSH2 0x0f61
00000f5c: SWAP1
00000f5d: PUSH2 0x18c0
00000f60: JUMP
00000f61: JUMPDEST
00000f62: PUSH1 0x00
00000f64: PUSH1 0x40
00000f66: MLOAD
00000f67: DUP1
00000f68: DUP4
00000f69: SUB
00000f6a: DUP2
00000f6b: DUP6
00000f6c: DUP8
00000f6d: GAS
00000f6e: CALL
00000f6f: SWAP3
00000f70: POP
00000f71: POP
00000f72: POP
00000f73: RETURNDATASIZE
00000f74: DUP1
00000f75: PUSH1 0x00
00000f77: DUP2
00000f78: EQ
00000f79: PUSH2 0x0f9e
00000f7c: JUMPI
00000f7d: PUSH1 0x40
00000f7f: MLOAD
00000f80: SWAP2
00000f81: POP
00000f82: PUSH1 0x1f
00000f84: NOT
00000f85: PUSH1 0x3f
00000f87: RETURNDATASIZE
00000f88: ADD
00000f89: AND
00000f8a: DUP3
00000f8b: ADD
00000f8c: PUSH1 0x40
00000f8e: MSTORE
00000f8f: RETURNDATASIZE
00000f90: DUP3
00000f91: MSTORE
00000f92: RETURNDATASIZE
00000f93: PUSH1 0x00
00000f95: PUSH1 0x20
00000f97: DUP5
00000f98: ADD
00000f99: RETURNDATACOPY
00000f9a: PUSH2 0x0fa3
00000f9d: JUMP
00000f9e: JUMPDEST
00000f9f: PUSH1 0x60
00000fa1: SWAP2
00000fa2: POP
00000fa3: JUMPDEST
00000fa4: POP
00000fa5: POP
00000fa6: SWAP1
00000fa7: POP
00000fa8: DUP1
00000fa9: PUSH2 0x0fe7
00000fac: JUMPI
00000fad: PUSH1 0x40
00000faf: MLOAD
00000fb0: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000fd1: DUP2
00000fd2: MSTORE
00000fd3: PUSH1 0x04
00000fd5: ADD
00000fd6: PUSH2 0x0fde
00000fd9: SWAP1
00000fda: PUSH2 0x1921
00000fdd: JUMP
00000fde: JUMPDEST
00000fdf: PUSH1 0x40
00000fe1: MLOAD
00000fe2: DUP1
00000fe3: SWAP2
00000fe4: SUB
00000fe5: SWAP1
00000fe6: REVERT
00000fe7: JUMPDEST
00000fe8: POP
00000fe9: JUMPDEST
00000fea: DUP4
00000feb: ISZERO
00000fec: PUSH2 0x107e
00000fef: JUMPI
00000ff0: PUSH1 0x01
00000ff2: PUSH1 0x02
00000ff4: PUSH1 0x00
00000ff6: DUP12
00000ff7: DUP12
00000ff8: PUSH1 0x01
00000ffa: DUP15
00000ffb: DUP15
00000ffc: SWAP1
00000ffd: POP
00000ffe: PUSH2 0x1007
00001001: SWAP2
00001002: SWAP1
00001003: PUSH2 0x1b6d
00001006: JUMP
00001007: JUMPDEST
00001008: DUP2
00001009: DUP2
0000100a: LT
0000100b: PUSH2 0x1017
0000100e: JUMPI
0000100f: PUSH2 0x1016
00001012: PUSH2 0x1ba1
00001015: JUMP
00001016: JUMPDEST
00001017: JUMPDEST
00001018: SWAP1
00001019: POP
0000101a: PUSH1 0x20
0000101c: MUL
0000101d: ADD
0000101e: PUSH1 0x20
00001020: DUP2
00001021: ADD
00001022: SWAP1
00001023: PUSH2 0x102c
00001026: SWAP2
00001027: SWAP1
00001028: PUSH2 0x1427
0000102b: JUMP
0000102c: JUMPDEST
0000102d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001042: AND
00001043: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001058: AND
00001059: DUP2
0000105a: MSTORE
0000105b: PUSH1 0x20
0000105d: ADD
0000105e: SWAP1
0000105f: DUP2
00001060: MSTORE
00001061: PUSH1 0x20
00001063: ADD
00001064: PUSH1 0x00
00001066: KECCAK256
00001067: PUSH1 0x00
00001069: PUSH2 0x0100
0000106c: EXP
0000106d: DUP2
0000106e: SLOAD
0000106f: DUP2
00001070: PUSH1 0xff
00001072: MUL
00001073: NOT
00001074: AND
00001075: SWAP1
00001076: DUP4
00001077: ISZERO
00001078: ISZERO
00001079: MUL
0000107a: OR
0000107b: SWAP1
0000107c: SSTORE
0000107d: POP
0000107e: JUMPDEST
0000107f: POP
00001080: POP
00001081: POP
00001082: POP
00001083: POP
00001084: POP
00001085: POP
00001086: POP
00001087: POP
00001088: POP
00001089: POP
0000108a: POP
0000108b: JUMP
0000108c: JUMPDEST
0000108d: PUSH1 0x01
0000108f: PUSH1 0x00
00001091: CALLER
00001092: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010a7: AND
000010a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010bd: AND
000010be: DUP2
000010bf: MSTORE
000010c0: PUSH1 0x20
000010c2: ADD
000010c3: SWAP1
000010c4: DUP2
000010c5: MSTORE
000010c6: PUSH1 0x20
000010c8: ADD
000010c9: PUSH1 0x00
000010cb: KECCAK256
000010cc: PUSH1 0x00
000010ce: SWAP1
000010cf: SLOAD
000010d0: SWAP1
000010d1: PUSH2 0x0100
000010d4: EXP
000010d5: SWAP1
000010d6: DIV
000010d7: PUSH1 0xff
000010d9: AND
000010da: PUSH2 0x1118
000010dd: JUMPI
000010de: PUSH1 0x40
000010e0: MLOAD
000010e1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001102: DUP2
00001103: MSTORE
00001104: PUSH1 0x04
00001106: ADD
00001107: PUSH2 0x110f
0000110a: SWAP1
0000110b: PUSH2 0x17b3
0000110e: JUMP
0000110f: JUMPDEST
00001110: PUSH1 0x40
00001112: MLOAD
00001113: DUP1
00001114: SWAP2
00001115: SUB
00001116: SWAP1
00001117: REVERT
00001118: JUMPDEST
00001119: DUP1
0000111a: ISZERO
0000111b: DUP1
0000111c: PUSH2 0x11a5
0000111f: JUMPI
00001120: POP
00001121: PUSH1 0x02
00001123: PUSH1 0x00
00001125: DUP8
00001126: DUP8
00001127: PUSH1 0x01
00001129: DUP11
0000112a: DUP11
0000112b: SWAP1
0000112c: POP
0000112d: PUSH2 0x1136
00001130: SWAP2
00001131: SWAP1
00001132: PUSH2 0x1b6d
00001135: JUMP
00001136: JUMPDEST
00001137: DUP2
00001138: DUP2
00001139: LT
0000113a: PUSH2 0x1146
0000113d: JUMPI
0000113e: PUSH2 0x1145
00001141: PUSH2 0x1ba1
00001144: JUMP
00001145: JUMPDEST
00001146: JUMPDEST
00001147: SWAP1
00001148: POP
00001149: PUSH1 0x20
0000114b: MUL
0000114c: ADD
0000114d: PUSH1 0x20
0000114f: DUP2
00001150: ADD
00001151: SWAP1
00001152: PUSH2 0x115b
00001155: SWAP2
00001156: SWAP1
00001157: PUSH2 0x1427
0000115a: JUMP
0000115b: JUMPDEST
0000115c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001171: AND
00001172: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001187: AND
00001188: DUP2
00001189: MSTORE
0000118a: PUSH1 0x20
0000118c: ADD
0000118d: SWAP1
0000118e: DUP2
0000118f: MSTORE
00001190: PUSH1 0x20
00001192: ADD
00001193: PUSH1 0x00
00001195: KECCAK256
00001196: PUSH1 0x00
00001198: SWAP1
00001199: SLOAD
0000119a: SWAP1
0000119b: PUSH2 0x0100
0000119e: EXP
0000119f: SWAP1
000011a0: DIV
000011a1: PUSH1 0xff
000011a3: AND
000011a4: ISZERO
000011a5: JUMPDEST
000011a6: PUSH2 0x11e4
000011a9: JUMPI
000011aa: PUSH1 0x40
000011ac: MLOAD
000011ad: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000011ce: DUP2
000011cf: MSTORE
000011d0: PUSH1 0x04
000011d2: ADD
000011d3: PUSH2 0x11db
000011d6: SWAP1
000011d7: PUSH2 0x198d
000011da: JUMP
000011db: JUMPDEST
000011dc: PUSH1 0x40
000011de: MLOAD
000011df: DUP1
000011e0: SWAP2
000011e1: SUB
000011e2: SWAP1
000011e3: REVERT
000011e4: JUMPDEST
000011e5: PUSH1 0x00
000011e7: DUP10
000011e8: SWAP1
000011e9: POP
000011ea: DUP1
000011eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001200: AND
00001201: PUSH4 0xb6f9de95
00001206: DUP11
00001207: DUP11
00001208: DUP11
00001209: DUP11
0000120a: DUP11
0000120b: DUP11
0000120c: PUSH1 0x40
0000120e: MLOAD
0000120f: DUP8
00001210: PUSH4 0xffffffff
00001215: AND
00001216: PUSH1 0xe0
00001218: SHL
00001219: DUP2
0000121a: MSTORE
0000121b: PUSH1 0x04
0000121d: ADD
0000121e: PUSH2 0x122b
00001221: SWAP6
00001222: SWAP5
00001223: SWAP4
00001224: SWAP3
00001225: SWAP2
00001226: SWAP1
00001227: PUSH2 0x1c93
0000122a: JUMP
0000122b: JUMPDEST
0000122c: PUSH1 0x00
0000122e: PUSH1 0x40
00001230: MLOAD
00001231: DUP1
00001232: DUP4
00001233: SUB
00001234: DUP2
00001235: DUP6
00001236: DUP9
00001237: DUP1
00001238: EXTCODESIZE
00001239: ISZERO
0000123a: DUP1
0000123b: ISZERO
0000123c: PUSH2 0x1244
0000123f: JUMPI
00001240: PUSH1 0x00
00001242: DUP1
00001243: REVERT
00001244: JUMPDEST
00001245: POP
00001246: GAS
00001247: CALL
00001248: ISZERO
00001249: DUP1
0000124a: ISZERO
0000124b: PUSH2 0x1258
0000124e: JUMPI
0000124f: RETURNDATASIZE
00001250: PUSH1 0x00
00001252: DUP1
00001253: RETURNDATACOPY
00001254: RETURNDATASIZE
00001255: PUSH1 0x00
00001257: REVERT
00001258: JUMPDEST
00001259: POP
0000125a: POP
0000125b: POP
0000125c: POP
0000125d: POP
0000125e: PUSH1 0x00
00001260: DUP4
00001261: GT
00001262: ISZERO
00001263: PUSH2 0x1314
00001266: JUMPI
00001267: PUSH1 0x00
00001269: COINBASE
0000126a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000127f: AND
00001280: DUP5
00001281: PUSH1 0x40
00001283: MLOAD
00001284: PUSH2 0x128c
00001287: SWAP1
00001288: PUSH2 0x18c0
0000128b: JUMP
0000128c: JUMPDEST
0000128d: PUSH1 0x00
0000128f: PUSH1 0x40
00001291: MLOAD
00001292: DUP1
00001293: DUP4
00001294: SUB
00001295: DUP2
00001296: DUP6
00001297: DUP8
00001298: GAS
00001299: CALL
0000129a: SWAP3
0000129b: POP
0000129c: POP
0000129d: POP
0000129e: RETURNDATASIZE
0000129f: DUP1
000012a0: PUSH1 0x00
000012a2: DUP2
000012a3: EQ
000012a4: PUSH2 0x12c9
000012a7: JUMPI
000012a8: PUSH1 0x40
000012aa: MLOAD
000012ab: SWAP2
000012ac: POP
000012ad: PUSH1 0x1f
000012af: NOT
000012b0: PUSH1 0x3f
000012b2: RETURNDATASIZE
000012b3: ADD
000012b4: AND
000012b5: DUP3
000012b6: ADD
000012b7: PUSH1 0x40
000012b9: MSTORE
000012ba: RETURNDATASIZE
000012bb: DUP3
000012bc: MSTORE
000012bd: RETURNDATASIZE
000012be: PUSH1 0x00
000012c0: PUSH1 0x20
000012c2: DUP5
000012c3: ADD
000012c4: RETURNDATACOPY
000012c5: PUSH2 0x12ce
000012c8: JUMP
000012c9: JUMPDEST
000012ca: PUSH1 0x60
000012cc: SWAP2
000012cd: POP
000012ce: JUMPDEST
000012cf: POP
000012d0: POP
000012d1: SWAP1
000012d2: POP
000012d3: DUP1
000012d4: PUSH2 0x1312
000012d7: JUMPI
000012d8: PUSH1 0x40
000012da: MLOAD
000012db: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000012fc: DUP2
000012fd: MSTORE
000012fe: PUSH1 0x04
00001300: ADD
00001301: PUSH2 0x1309
00001304: SWAP1
00001305: PUSH2 0x1a46
00001308: JUMP
00001309: JUMPDEST
0000130a: PUSH1 0x40
0000130c: MLOAD
0000130d: DUP1
0000130e: SWAP2
0000130f: SUB
00001310: SWAP1
00001311: REVERT
00001312: JUMPDEST
00001313: POP
00001314: JUMPDEST
00001315: DUP2
00001316: ISZERO
00001317: PUSH2 0x13a9
0000131a: JUMPI
0000131b: PUSH1 0x01
0000131d: PUSH1 0x02
0000131f: PUSH1 0x00
00001321: DUP10
00001322: DUP10
00001323: PUSH1 0x01
00001325: DUP13
00001326: DUP13
00001327: SWAP1
00001328: POP
00001329: PUSH2 0x1332
0000132c: SWAP2
0000132d: SWAP1
0000132e: PUSH2 0x1b6d
00001331: JUMP
00001332: JUMPDEST
00001333: DUP2
00001334: DUP2
00001335: LT
00001336: PUSH2 0x1342
00001339: JUMPI
0000133a: PUSH2 0x1341
0000133d: PUSH2 0x1ba1
00001340: JUMP
00001341: JUMPDEST
00001342: JUMPDEST
00001343: SWAP1
00001344: POP
00001345: PUSH1 0x20
00001347: MUL
00001348: ADD
00001349: PUSH1 0x20
0000134b: DUP2
0000134c: ADD
0000134d: SWAP1
0000134e: PUSH2 0x1357
00001351: SWAP2
00001352: SWAP1
00001353: PUSH2 0x1427
00001356: JUMP
00001357: JUMPDEST
00001358: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000136d: AND
0000136e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001383: AND
00001384: DUP2
00001385: MSTORE
00001386: PUSH1 0x20
00001388: ADD
00001389: SWAP1
0000138a: DUP2
0000138b: MSTORE
0000138c: PUSH1 0x20
0000138e: ADD
0000138f: PUSH1 0x00
00001391: KECCAK256
00001392: PUSH1 0x00
00001394: PUSH2 0x0100
00001397: EXP
00001398: DUP2
00001399: SLOAD
0000139a: DUP2
0000139b: PUSH1 0xff
0000139d: MUL
0000139e: NOT
0000139f: AND
000013a0: SWAP1
000013a1: DUP4
000013a2: ISZERO
000013a3: ISZERO
000013a4: MUL
000013a5: OR
000013a6: SWAP1
000013a7: SSTORE
000013a8: POP
000013a9: JUMPDEST
000013aa: POP
000013ab: POP
000013ac: POP
000013ad: POP
000013ae: POP
000013af: POP
000013b0: POP
000013b1: POP
000013b2: POP
000013b3: POP
000013b4: JUMP
000013b5: JUMPDEST
000013b6: PUSH1 0x00
000013b8: PUSH1 0x40
000013ba: MLOAD
000013bb: SWAP1
000013bc: POP
000013bd: SWAP1
000013be: JUMP
000013bf: JUMPDEST
000013c0: PUSH1 0x00
000013c2: DUP1
000013c3: REVERT
000013c4: JUMPDEST
000013c5: PUSH1 0x00
000013c7: DUP1
000013c8: REVERT
000013c9: JUMPDEST
000013ca: PUSH1 0x00
000013cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013e1: DUP3
000013e2: AND
000013e3: SWAP1
000013e4: POP
000013e5: SWAP2
000013e6: SWAP1
000013e7: POP
000013e8: JUMP
000013e9: JUMPDEST
000013ea: PUSH1 0x00
000013ec: PUSH2 0x13f4
000013ef: DUP3
000013f0: PUSH2 0x13c9
000013f3: JUMP
000013f4: JUMPDEST
000013f5: SWAP1
000013f6: POP
000013f7: SWAP2
000013f8: SWAP1
000013f9: POP
000013fa: JUMP
000013fb: JUMPDEST
000013fc: PUSH2 0x1404
000013ff: DUP2
00001400: PUSH2 0x13e9
00001403: JUMP
00001404: JUMPDEST
00001405: DUP2
00001406: EQ
00001407: PUSH2 0x140f
0000140a: JUMPI
0000140b: PUSH1 0x00
0000140d: DUP1
0000140e: REVERT
0000140f: JUMPDEST
00001410: POP
00001411: JUMP
00001412: JUMPDEST
00001413: PUSH1 0x00
00001415: DUP2
00001416: CALLDATALOAD
00001417: SWAP1
00001418: POP
00001419: PUSH2 0x1421
0000141c: DUP2
0000141d: PUSH2 0x13fb
00001420: JUMP
00001421: JUMPDEST
00001422: SWAP3
00001423: SWAP2
00001424: POP
00001425: POP
00001426: JUMP
00001427: JUMPDEST
00001428: PUSH1 0x00
0000142a: PUSH1 0x20
0000142c: DUP3
0000142d: DUP5
0000142e: SUB
0000142f: SLT
00001430: ISZERO
00001431: PUSH2 0x143d
00001434: JUMPI
00001435: PUSH2 0x143c
00001438: PUSH2 0x13bf
0000143b: JUMP
0000143c: JUMPDEST
0000143d: JUMPDEST
0000143e: PUSH1 0x00
00001440: PUSH2 0x144b
00001443: DUP5
00001444: DUP3
00001445: DUP6
00001446: ADD
00001447: PUSH2 0x1412
0000144a: JUMP
0000144b: JUMPDEST
0000144c: SWAP2
0000144d: POP
0000144e: POP
0000144f: SWAP3
00001450: SWAP2
00001451: POP
00001452: POP
00001453: JUMP
00001454: JUMPDEST
00001455: PUSH1 0x00
00001457: DUP2
00001458: SWAP1
00001459: POP
0000145a: SWAP2
0000145b: SWAP1
0000145c: POP
0000145d: JUMP
0000145e: JUMPDEST
0000145f: PUSH2 0x1467
00001462: DUP2
00001463: PUSH2 0x1454
00001466: JUMP
00001467: JUMPDEST
00001468: DUP2
00001469: EQ
0000146a: PUSH2 0x1472
0000146d: JUMPI
0000146e: PUSH1 0x00
00001470: DUP1
00001471: REVERT
00001472: JUMPDEST
00001473: POP
00001474: JUMP
00001475: JUMPDEST
00001476: PUSH1 0x00
00001478: DUP2
00001479: CALLDATALOAD
0000147a: SWAP1
0000147b: POP
0000147c: PUSH2 0x1484
0000147f: DUP2
00001480: PUSH2 0x145e
00001483: JUMP
00001484: JUMPDEST
00001485: SWAP3
00001486: SWAP2
00001487: POP
00001488: POP
00001489: JUMP
0000148a: JUMPDEST
0000148b: PUSH1 0x00
0000148d: DUP1
0000148e: REVERT
0000148f: JUMPDEST
00001490: PUSH1 0x00
00001492: DUP1
00001493: REVERT
00001494: JUMPDEST
00001495: PUSH1 0x00
00001497: DUP1
00001498: REVERT
00001499: JUMPDEST
0000149a: PUSH1 0x00
0000149c: DUP1
0000149d: DUP4
0000149e: PUSH1 0x1f
000014a0: DUP5
000014a1: ADD
000014a2: SLT
000014a3: PUSH2 0x14af
000014a6: JUMPI
000014a7: PUSH2 0x14ae
000014aa: PUSH2 0x148a
000014ad: JUMP
000014ae: JUMPDEST
000014af: JUMPDEST
000014b0: DUP3
000014b1: CALLDATALOAD
000014b2: SWAP1
000014b3: POP
000014b4: PUSH8 0xffffffffffffffff
000014bd: DUP2
000014be: GT
000014bf: ISZERO
000014c0: PUSH2 0x14cc
000014c3: JUMPI
000014c4: PUSH2 0x14cb
000014c7: PUSH2 0x148f
000014ca: JUMP
000014cb: JUMPDEST
000014cc: JUMPDEST
000014cd: PUSH1 0x20
000014cf: DUP4
000014d0: ADD
000014d1: SWAP2
000014d2: POP
000014d3: DUP4
000014d4: PUSH1 0x01
000014d6: DUP3
000014d7: MUL
000014d8: DUP4
000014d9: ADD
000014da: GT
000014db: ISZERO
000014dc: PUSH2 0x14e8
000014df: JUMPI
000014e0: PUSH2 0x14e7
000014e3: PUSH2 0x1494
000014e6: JUMP
000014e7: JUMPDEST
000014e8: JUMPDEST
000014e9: SWAP3
000014ea: POP
000014eb: SWAP3
000014ec: SWAP1
000014ed: POP
000014ee: JUMP
000014ef: JUMPDEST
000014f0: PUSH1 0x00
000014f2: DUP2
000014f3: ISZERO
000014f4: ISZERO
000014f5: SWAP1
000014f6: POP
000014f7: SWAP2
000014f8: SWAP1
000014f9: POP
000014fa: JUMP
000014fb: JUMPDEST
000014fc: PUSH2 0x1504
000014ff: DUP2
00001500: PUSH2 0x14ef
00001503: JUMP
00001504: JUMPDEST
00001505: DUP2
00001506: EQ
00001507: PUSH2 0x150f
0000150a: JUMPI
0000150b: PUSH1 0x00
0000150d: DUP1
0000150e: REVERT
0000150f: JUMPDEST
00001510: POP
00001511: JUMP
00001512: JUMPDEST
00001513: PUSH1 0x00
00001515: DUP2
00001516: CALLDATALOAD
00001517: SWAP1
00001518: POP
00001519: PUSH2 0x1521
0000151c: DUP2
0000151d: PUSH2 0x14fb
00001520: JUMP
00001521: JUMPDEST
00001522: SWAP3
00001523: SWAP2
00001524: POP
00001525: POP
00001526: JUMP
00001527: JUMPDEST
00001528: PUSH1 0x00
0000152a: DUP1
0000152b: PUSH1 0x00
0000152d: DUP1
0000152e: PUSH1 0x00
00001530: DUP1
00001531: PUSH1 0x00
00001533: PUSH1 0xc0
00001535: DUP9
00001536: DUP11
00001537: SUB
00001538: SLT
00001539: ISZERO
0000153a: PUSH2 0x1546
0000153d: JUMPI
0000153e: PUSH2 0x1545
00001541: PUSH2 0x13bf
00001544: JUMP
00001545: JUMPDEST
00001546: JUMPDEST
00001547: PUSH1 0x00
00001549: PUSH2 0x1554
0000154c: DUP11
0000154d: DUP3
0000154e: DUP12
0000154f: ADD
00001550: PUSH2 0x1475
00001553: JUMP
00001554: JUMPDEST
00001555: SWAP8
00001556: POP
00001557: POP
00001558: PUSH1 0x20
0000155a: PUSH2 0x1565
0000155d: DUP11
0000155e: DUP3
0000155f: DUP12
00001560: ADD
00001561: PUSH2 0x1412
00001564: JUMP
00001565: JUMPDEST
00001566: SWAP7
00001567: POP
00001568: POP
00001569: PUSH1 0x40
0000156b: DUP9
0000156c: ADD
0000156d: CALLDATALOAD
0000156e: PUSH8 0xffffffffffffffff
00001577: DUP2
00001578: GT
00001579: ISZERO
0000157a: PUSH2 0x1586
0000157d: JUMPI
0000157e: PUSH2 0x1585
00001581: PUSH2 0x13c4
00001584: JUMP
00001585: JUMPDEST
00001586: JUMPDEST
00001587: PUSH2 0x1592
0000158a: DUP11
0000158b: DUP3
0000158c: DUP12
0000158d: ADD
0000158e: PUSH2 0x1499
00001591: JUMP
00001592: JUMPDEST
00001593: SWAP6
00001594: POP
00001595: SWAP6
00001596: POP
00001597: POP
00001598: PUSH1 0x60
0000159a: PUSH2 0x15a5
0000159d: DUP11
0000159e: DUP3
0000159f: DUP12
000015a0: ADD
000015a1: PUSH2 0x1475
000015a4: JUMP
000015a5: JUMPDEST
000015a6: SWAP4
000015a7: POP
000015a8: POP
000015a9: PUSH1 0x80
000015ab: PUSH2 0x15b6
000015ae: DUP11
000015af: DUP3
000015b0: DUP12
000015b1: ADD
000015b2: PUSH2 0x1512
000015b5: JUMP
000015b6: JUMPDEST
000015b7: SWAP3
000015b8: POP
000015b9: POP
000015ba: PUSH1 0xa0
000015bc: PUSH2 0x15c7
000015bf: DUP11
000015c0: DUP3
000015c1: DUP12
000015c2: ADD
000015c3: PUSH2 0x1412
000015c6: JUMP
000015c7: JUMPDEST
000015c8: SWAP2
000015c9: POP
000015ca: POP
000015cb: SWAP3
000015cc: SWAP6
000015cd: SWAP9
000015ce: SWAP2
000015cf: SWAP5
000015d0: SWAP8
000015d1: POP
000015d2: SWAP3
000015d3: SWAP6
000015d4: POP
000015d5: JUMP
000015d6: JUMPDEST
000015d7: PUSH2 0x15df
000015da: DUP2
000015db: PUSH2 0x14ef
000015de: JUMP
000015df: JUMPDEST
000015e0: DUP3
000015e1: MSTORE
000015e2: POP
000015e3: POP
000015e4: JUMP
000015e5: JUMPDEST
000015e6: PUSH1 0x00
000015e8: PUSH1 0x20
000015ea: DUP3
000015eb: ADD
000015ec: SWAP1
000015ed: POP
000015ee: PUSH2 0x15fa
000015f1: PUSH1 0x00
000015f3: DUP4
000015f4: ADD
000015f5: DUP5
000015f6: PUSH2 0x15d6
000015f9: JUMP
000015fa: JUMPDEST
000015fb: SWAP3
000015fc: SWAP2
000015fd: POP
000015fe: POP
000015ff: JUMP
00001600: JUMPDEST
00001601: PUSH1 0x00
00001603: DUP1
00001604: DUP4
00001605: PUSH1 0x1f
00001607: DUP5
00001608: ADD
00001609: SLT
0000160a: PUSH2 0x1616
0000160d: JUMPI
0000160e: PUSH2 0x1615
00001611: PUSH2 0x148a
00001614: JUMP
00001615: JUMPDEST
00001616: JUMPDEST
00001617: DUP3
00001618: CALLDATALOAD
00001619: SWAP1
0000161a: POP
0000161b: PUSH8 0xffffffffffffffff
00001624: DUP2
00001625: GT
00001626: ISZERO
00001627: PUSH2 0x1633
0000162a: JUMPI
0000162b: PUSH2 0x1632
0000162e: PUSH2 0x148f
00001631: JUMP
00001632: JUMPDEST
00001633: JUMPDEST
00001634: PUSH1 0x20
00001636: DUP4
00001637: ADD
00001638: SWAP2
00001639: POP
0000163a: DUP4
0000163b: PUSH1 0x20
0000163d: DUP3
0000163e: MUL
0000163f: DUP4
00001640: ADD
00001641: GT
00001642: ISZERO
00001643: PUSH2 0x164f
00001646: JUMPI
00001647: PUSH2 0x164e
0000164a: PUSH2 0x1494
0000164d: JUMP
0000164e: JUMPDEST
0000164f: JUMPDEST
00001650: SWAP3
00001651: POP
00001652: SWAP3
00001653: SWAP1
00001654: POP
00001655: JUMP
00001656: JUMPDEST
00001657: PUSH1 0x00
00001659: DUP1
0000165a: PUSH1 0x00
0000165c: DUP1
0000165d: PUSH1 0x00
0000165f: DUP1
00001660: PUSH1 0x00
00001662: DUP1
00001663: PUSH1 0x00
00001665: PUSH2 0x0100
00001668: DUP11
00001669: DUP13
0000166a: SUB
0000166b: SLT
0000166c: ISZERO
0000166d: PUSH2 0x1679
00001670: JUMPI
00001671: PUSH2 0x1678
00001674: PUSH2 0x13bf
00001677: JUMP
00001678: JUMPDEST
00001679: JUMPDEST
0000167a: PUSH1 0x00
0000167c: PUSH2 0x1687
0000167f: DUP13
00001680: DUP3
00001681: DUP14
00001682: ADD
00001683: PUSH2 0x1412
00001686: JUMP
00001687: JUMPDEST
00001688: SWAP10
00001689: POP
0000168a: POP
0000168b: PUSH1 0x20
0000168d: PUSH2 0x1698
00001690: DUP13
00001691: DUP3
00001692: DUP14
00001693: ADD
00001694: PUSH2 0x1475
00001697: JUMP
00001698: JUMPDEST
00001699: SWAP9
0000169a: POP
0000169b: POP
0000169c: PUSH1 0x40
0000169e: PUSH2 0x16a9
000016a1: DUP13
000016a2: DUP3
000016a3: DUP14
000016a4: ADD
000016a5: PUSH2 0x1475
000016a8: JUMP
000016a9: JUMPDEST
000016aa: SWAP8
000016ab: POP
000016ac: POP
000016ad: PUSH1 0x60
000016af: DUP11
000016b0: ADD
000016b1: CALLDATALOAD
000016b2: PUSH8 0xffffffffffffffff
000016bb: DUP2
000016bc: GT
000016bd: ISZERO
000016be: PUSH2 0x16ca
000016c1: JUMPI
000016c2: PUSH2 0x16c9
000016c5: PUSH2 0x13c4
000016c8: JUMP
000016c9: JUMPDEST
000016ca: JUMPDEST
000016cb: PUSH2 0x16d6
000016ce: DUP13
000016cf: DUP3
000016d0: DUP14
000016d1: ADD
000016d2: PUSH2 0x1600
000016d5: JUMP
000016d6: JUMPDEST
000016d7: SWAP7
000016d8: POP
000016d9: SWAP7
000016da: POP
000016db: POP
000016dc: PUSH1 0x80
000016de: PUSH2 0x16e9
000016e1: DUP13
000016e2: DUP3
000016e3: DUP14
000016e4: ADD
000016e5: PUSH2 0x1412
000016e8: JUMP
000016e9: JUMPDEST
000016ea: SWAP5
000016eb: POP
000016ec: POP
000016ed: PUSH1 0xa0
000016ef: PUSH2 0x16fa
000016f2: DUP13
000016f3: DUP3
000016f4: DUP14
000016f5: ADD
000016f6: PUSH2 0x1475
000016f9: JUMP
000016fa: JUMPDEST
000016fb: SWAP4
000016fc: POP
000016fd: POP
000016fe: PUSH1 0xc0
00001700: PUSH2 0x170b
00001703: DUP13
00001704: DUP3
00001705: DUP14
00001706: ADD
00001707: PUSH2 0x1475
0000170a: JUMP
0000170b: JUMPDEST
0000170c: SWAP3
0000170d: POP
0000170e: POP
0000170f: PUSH1 0xe0
00001711: PUSH2 0x171c
00001714: DUP13
00001715: DUP3
00001716: DUP14
00001717: ADD
00001718: PUSH2 0x1512
0000171b: JUMP
0000171c: JUMPDEST
0000171d: SWAP2
0000171e: POP
0000171f: POP
00001720: SWAP3
00001721: SWAP6
00001722: SWAP9
00001723: POP
00001724: SWAP3
00001725: SWAP6
00001726: SWAP9
00001727: POP
00001728: SWAP3
00001729: SWAP6
0000172a: SWAP9
0000172b: JUMP
0000172c: JUMPDEST
0000172d: PUSH2 0x1735
00001730: DUP2
00001731: PUSH2 0x13e9
00001734: JUMP
00001735: JUMPDEST
00001736: DUP3
00001737: MSTORE
00001738: POP
00001739: POP
0000173a: JUMP
0000173b: JUMPDEST
0000173c: PUSH1 0x00
0000173e: PUSH1 0x20
00001740: DUP3
00001741: ADD
00001742: SWAP1
00001743: POP
00001744: PUSH2 0x1750
00001747: PUSH1 0x00
00001749: DUP4
0000174a: ADD
0000174b: DUP5
0000174c: PUSH2 0x172c
0000174f: JUMP
00001750: JUMPDEST
00001751: SWAP3
00001752: SWAP2
00001753: POP
00001754: POP
00001755: JUMP
00001756: JUMPDEST
00001757: PUSH1 0x00
00001759: DUP3
0000175a: DUP3
0000175b: MSTORE
0000175c: PUSH1 0x20
0000175e: DUP3
0000175f: ADD
00001760: SWAP1
00001761: POP
00001762: SWAP3
00001763: SWAP2
00001764: POP
00001765: POP
00001766: JUMP
00001767: JUMPDEST
00001768: PUSH32 0x4f4e4c59204558454355544f5200000000000000000000000000000000000000
00001789: PUSH1 0x00
0000178b: DUP3
0000178c: ADD
0000178d: MSTORE
0000178e: POP
0000178f: JUMP
00001790: JUMPDEST
00001791: PUSH1 0x00
00001793: PUSH2 0x179d
00001796: PUSH1 0x0d
00001798: DUP4
00001799: PUSH2 0x1756
0000179c: JUMP
0000179d: JUMPDEST
0000179e: SWAP2
0000179f: POP
000017a0: PUSH2 0x17a8
000017a3: DUP3
000017a4: PUSH2 0x1767
000017a7: JUMP
000017a8: JUMPDEST
000017a9: PUSH1 0x20
000017ab: DUP3
000017ac: ADD
000017ad: SWAP1
000017ae: POP
000017af: SWAP2
000017b0: SWAP1
000017b1: POP
000017b2: JUMP
000017b3: JUMPDEST
000017b4: PUSH1 0x00
000017b6: PUSH1 0x20
000017b8: DUP3
000017b9: ADD
000017ba: SWAP1
000017bb: POP
000017bc: DUP2
000017bd: DUP2
000017be: SUB
000017bf: PUSH1 0x00
000017c1: DUP4
000017c2: ADD
000017c3: MSTORE
000017c4: PUSH2 0x17cc
000017c7: DUP2
000017c8: PUSH2 0x1790
000017cb: JUMP
000017cc: JUMPDEST
000017cd: SWAP1
000017ce: POP
000017cf: SWAP2
000017d0: SWAP1
000017d1: POP
000017d2: JUMP
000017d3: JUMPDEST
000017d4: PUSH1 0x00
000017d6: DUP2
000017d7: MLOAD
000017d8: SWAP1
000017d9: POP
000017da: PUSH2 0x17e2
000017dd: DUP2
000017de: PUSH2 0x145e
000017e1: JUMP
000017e2: JUMPDEST
000017e3: SWAP3
000017e4: SWAP2
000017e5: POP
000017e6: POP
000017e7: JUMP
000017e8: JUMPDEST
000017e9: PUSH1 0x00
000017eb: PUSH1 0x20
000017ed: DUP3
000017ee: DUP5
000017ef: SUB
000017f0: SLT
000017f1: ISZERO
000017f2: PUSH2 0x17fe
000017f5: JUMPI
000017f6: PUSH2 0x17fd
000017f9: PUSH2 0x13bf
000017fc: JUMP
000017fd: JUMPDEST
000017fe: JUMPDEST
000017ff: PUSH1 0x00
00001801: PUSH2 0x180c
00001804: DUP5
00001805: DUP3
00001806: DUP6
00001807: ADD
00001808: PUSH2 0x17d3
0000180b: JUMP
0000180c: JUMPDEST
0000180d: SWAP2
0000180e: POP
0000180f: POP
00001810: SWAP3
00001811: SWAP2
00001812: POP
00001813: POP
00001814: JUMP
00001815: JUMPDEST
00001816: PUSH2 0x181e
00001819: DUP2
0000181a: PUSH2 0x1454
0000181d: JUMP
0000181e: JUMPDEST
0000181f: DUP3
00001820: MSTORE
00001821: POP
00001822: POP
00001823: JUMP
00001824: JUMPDEST
00001825: PUSH1 0x00
00001827: PUSH1 0x40
00001829: DUP3
0000182a: ADD
0000182b: SWAP1
0000182c: POP
0000182d: PUSH2 0x1839
00001830: PUSH1 0x00
00001832: DUP4
00001833: ADD
00001834: DUP6
00001835: PUSH2 0x172c
00001838: JUMP
00001839: JUMPDEST
0000183a: PUSH2 0x1846
0000183d: PUSH1 0x20
0000183f: DUP4
00001840: ADD
00001841: DUP5
00001842: PUSH2 0x1815
00001845: JUMP
00001846: JUMPDEST
00001847: SWAP4
00001848: SWAP3
00001849: POP
0000184a: POP
0000184b: POP
0000184c: JUMP
0000184d: JUMPDEST
0000184e: PUSH1 0x00
00001850: DUP2
00001851: MLOAD
00001852: SWAP1
00001853: POP
00001854: PUSH2 0x185c
00001857: DUP2
00001858: PUSH2 0x14fb
0000185b: JUMP
0000185c: JUMPDEST
0000185d: SWAP3
0000185e: SWAP2
0000185f: POP
00001860: POP
00001861: JUMP
00001862: JUMPDEST
00001863: PUSH1 0x00
00001865: PUSH1 0x20
00001867: DUP3
00001868: DUP5
00001869: SUB
0000186a: SLT
0000186b: ISZERO
0000186c: PUSH2 0x1878
0000186f: JUMPI
00001870: PUSH2 0x1877
00001873: PUSH2 0x13bf
00001876: JUMP
00001877: JUMPDEST
00001878: JUMPDEST
00001879: PUSH1 0x00
0000187b: PUSH2 0x1886
0000187e: DUP5
0000187f: DUP3
00001880: DUP6
00001881: ADD
00001882: PUSH2 0x184d
00001885: JUMP
00001886: JUMPDEST
00001887: SWAP2
00001888: POP
00001889: POP
0000188a: SWAP3
0000188b: SWAP2
0000188c: POP
0000188d: POP
0000188e: JUMP
0000188f: JUMPDEST
00001890: PUSH1 0x00
00001892: DUP2
00001893: SWAP1
00001894: POP
00001895: SWAP3
00001896: SWAP2
00001897: POP
00001898: POP
00001899: JUMP
0000189a: JUMPDEST
0000189b: POP
0000189c: JUMP
0000189d: JUMPDEST
0000189e: PUSH1 0x00
000018a0: PUSH2 0x18aa
000018a3: PUSH1 0x00
000018a5: DUP4
000018a6: PUSH2 0x188f
000018a9: JUMP
000018aa: JUMPDEST
000018ab: SWAP2
000018ac: POP
000018ad: PUSH2 0x18b5
000018b0: DUP3
000018b1: PUSH2 0x189a
000018b4: JUMP
000018b5: JUMPDEST
000018b6: PUSH1 0x00
000018b8: DUP3
000018b9: ADD
000018ba: SWAP1
000018bb: POP
000018bc: SWAP2
000018bd: SWAP1
000018be: POP
000018bf: JUMP
000018c0: JUMPDEST
000018c1: PUSH1 0x00
000018c3: PUSH2 0x18cb
000018c6: DUP3
000018c7: PUSH2 0x189d
000018ca: JUMP
000018cb: JUMPDEST
000018cc: SWAP2
000018cd: POP
000018ce: DUP2
000018cf: SWAP1
000018d0: POP
000018d1: SWAP2
000018d2: SWAP1
000018d3: POP
000018d4: JUMP
000018d5: JUMPDEST
000018d6: PUSH32 0x4661696c656420746f2073656e64204574686572000000000000000000000000
000018f7: PUSH1 0x00
000018f9: DUP3
000018fa: ADD
000018fb: MSTORE
000018fc: POP
000018fd: JUMP
000018fe: JUMPDEST
000018ff: PUSH1 0x00
00001901: PUSH2 0x190b
00001904: PUSH1 0x14
00001906: DUP4
00001907: PUSH2 0x1756
0000190a: JUMP
0000190b: JUMPDEST
0000190c: SWAP2
0000190d: POP
0000190e: PUSH2 0x1916
00001911: DUP3
00001912: PUSH2 0x18d5
00001915: JUMP
00001916: JUMPDEST
00001917: PUSH1 0x20
00001919: DUP3
0000191a: ADD
0000191b: SWAP1
0000191c: POP
0000191d: SWAP2
0000191e: SWAP1
0000191f: POP
00001920: JUMP
00001921: JUMPDEST
00001922: PUSH1 0x00
00001924: PUSH1 0x20
00001926: DUP3
00001927: ADD
00001928: SWAP1
00001929: POP
0000192a: DUP2
0000192b: DUP2
0000192c: SUB
0000192d: PUSH1 0x00
0000192f: DUP4
00001930: ADD
00001931: MSTORE
00001932: PUSH2 0x193a
00001935: DUP2
00001936: PUSH2 0x18fe
00001939: JUMP
0000193a: JUMPDEST
0000193b: SWAP1
0000193c: POP
0000193d: SWAP2
0000193e: SWAP1
0000193f: POP
00001940: JUMP
00001941: JUMPDEST
00001942: PUSH32 0x544f4b454e20414c524541445920424f55474854000000000000000000000000
00001963: PUSH1 0x00
00001965: DUP3
00001966: ADD
00001967: MSTORE
00001968: POP
00001969: JUMP
0000196a: JUMPDEST
0000196b: PUSH1 0x00
0000196d: PUSH2 0x1977
00001970: PUSH1 0x14
00001972: DUP4
00001973: PUSH2 0x1756
00001976: JUMP
00001977: JUMPDEST
00001978: SWAP2
00001979: POP
0000197a: PUSH2 0x1982
0000197d: DUP3
0000197e: PUSH2 0x1941
00001981: JUMP
00001982: JUMPDEST
00001983: PUSH1 0x20
00001985: DUP3
00001986: ADD
00001987: SWAP1
00001988: POP
00001989: SWAP2
0000198a: SWAP1
0000198b: POP
0000198c: JUMP
0000198d: JUMPDEST
0000198e: PUSH1 0x00
00001990: PUSH1 0x20
00001992: DUP3
00001993: ADD
00001994: SWAP1
00001995: POP
00001996: DUP2
00001997: DUP2
00001998: SUB
00001999: PUSH1 0x00
0000199b: DUP4
0000199c: ADD
0000199d: MSTORE
0000199e: PUSH2 0x19a6
000019a1: DUP2
000019a2: PUSH2 0x196a
000019a5: JUMP
000019a6: JUMPDEST
000019a7: SWAP1
000019a8: POP
000019a9: SWAP2
000019aa: SWAP1
000019ab: POP
000019ac: JUMP
000019ad: JUMPDEST
000019ae: DUP3
000019af: DUP2
000019b0: DUP4
000019b1: CALLDATACOPY
000019b2: PUSH1 0x00
000019b4: DUP4
000019b5: DUP4
000019b6: ADD
000019b7: MSTORE
000019b8: POP
000019b9: POP
000019ba: POP
000019bb: JUMP
000019bc: JUMPDEST
000019bd: PUSH1 0x00
000019bf: PUSH2 0x19c8
000019c2: DUP4
000019c3: DUP6
000019c4: PUSH2 0x188f
000019c7: JUMP
000019c8: JUMPDEST
000019c9: SWAP4
000019ca: POP
000019cb: PUSH2 0x19d5
000019ce: DUP4
000019cf: DUP6
000019d0: DUP5
000019d1: PUSH2 0x19ad
000019d4: JUMP
000019d5: JUMPDEST
000019d6: DUP3
000019d7: DUP5
000019d8: ADD
000019d9: SWAP1
000019da: POP
000019db: SWAP4
000019dc: SWAP3
000019dd: POP
000019de: POP
000019df: POP
000019e0: JUMP
000019e1: JUMPDEST
000019e2: PUSH1 0x00
000019e4: PUSH2 0x19ee
000019e7: DUP3
000019e8: DUP5
000019e9: DUP7
000019ea: PUSH2 0x19bc
000019ed: JUMP
000019ee: JUMPDEST
000019ef: SWAP2
000019f0: POP
000019f1: DUP2
000019f2: SWAP1
000019f3: POP
000019f4: SWAP4
000019f5: SWAP3
000019f6: POP
000019f7: POP
000019f8: POP
000019f9: JUMP
000019fa: JUMPDEST
000019fb: PUSH32 0x5472616e73666572206661696c65642e00000000000000000000000000000000
00001a1c: PUSH1 0x00
00001a1e: DUP3
00001a1f: ADD
00001a20: MSTORE
00001a21: POP
00001a22: JUMP
00001a23: JUMPDEST
00001a24: PUSH1 0x00
00001a26: PUSH2 0x1a30
00001a29: PUSH1 0x10
00001a2b: DUP4
00001a2c: PUSH2 0x1756
00001a2f: JUMP
00001a30: JUMPDEST
00001a31: SWAP2
00001a32: POP
00001a33: PUSH2 0x1a3b
00001a36: DUP3
00001a37: PUSH2 0x19fa
00001a3a: JUMP
00001a3b: JUMPDEST
00001a3c: PUSH1 0x20
00001a3e: DUP3
00001a3f: ADD
00001a40: SWAP1
00001a41: POP
00001a42: SWAP2
00001a43: SWAP1
00001a44: POP
00001a45: JUMP
00001a46: JUMPDEST
00001a47: PUSH1 0x00
00001a49: PUSH1 0x20
00001a4b: DUP3
00001a4c: ADD
00001a4d: SWAP1
00001a4e: POP
00001a4f: DUP2
00001a50: DUP2
00001a51: SUB
00001a52: PUSH1 0x00
00001a54: DUP4
00001a55: ADD
00001a56: MSTORE
00001a57: PUSH2 0x1a5f
00001a5a: DUP2
00001a5b: PUSH2 0x1a23
00001a5e: JUMP
00001a5f: JUMPDEST
00001a60: SWAP1
00001a61: POP
00001a62: SWAP2
00001a63: SWAP1
00001a64: POP
00001a65: JUMP
00001a66: JUMPDEST
00001a67: PUSH32 0x4f4e4c59204f574e455200000000000000000000000000000000000000000000
00001a88: PUSH1 0x00
00001a8a: DUP3
00001a8b: ADD
00001a8c: MSTORE
00001a8d: POP
00001a8e: JUMP
00001a8f: JUMPDEST
00001a90: PUSH1 0x00
00001a92: PUSH2 0x1a9c
00001a95: PUSH1 0x0a
00001a97: DUP4
00001a98: PUSH2 0x1756
00001a9b: JUMP
00001a9c: JUMPDEST
00001a9d: SWAP2
00001a9e: POP
00001a9f: PUSH2 0x1aa7
00001aa2: DUP3
00001aa3: PUSH2 0x1a66
00001aa6: JUMP
00001aa7: JUMPDEST
00001aa8: PUSH1 0x20
00001aaa: DUP3
00001aab: ADD
00001aac: SWAP1
00001aad: POP
00001aae: SWAP2
00001aaf: SWAP1
00001ab0: POP
00001ab1: JUMP
00001ab2: JUMPDEST
00001ab3: PUSH1 0x00
00001ab5: PUSH1 0x20
00001ab7: DUP3
00001ab8: ADD
00001ab9: SWAP1
00001aba: POP
00001abb: DUP2
00001abc: DUP2
00001abd: SUB
00001abe: PUSH1 0x00
00001ac0: DUP4
00001ac1: ADD
00001ac2: MSTORE
00001ac3: PUSH2 0x1acb
00001ac6: DUP2
00001ac7: PUSH2 0x1a8f
00001aca: JUMP
00001acb: JUMPDEST
00001acc: SWAP1
00001acd: POP
00001ace: SWAP2
00001acf: SWAP1
00001ad0: POP
00001ad1: JUMP
00001ad2: JUMPDEST
00001ad3: PUSH32 0x414c524541445920415554484f52495a45440000000000000000000000000000
00001af4: PUSH1 0x00
00001af6: DUP3
00001af7: ADD
00001af8: MSTORE
00001af9: POP
00001afa: JUMP
00001afb: JUMPDEST
00001afc: PUSH1 0x00
00001afe: PUSH2 0x1b08
00001b01: PUSH1 0x12
00001b03: DUP4
00001b04: PUSH2 0x1756
00001b07: JUMP
00001b08: JUMPDEST
00001b09: SWAP2
00001b0a: POP
00001b0b: PUSH2 0x1b13
00001b0e: DUP3
00001b0f: PUSH2 0x1ad2
00001b12: JUMP
00001b13: JUMPDEST
00001b14: PUSH1 0x20
00001b16: DUP3
00001b17: ADD
00001b18: SWAP1
00001b19: POP
00001b1a: SWAP2
00001b1b: SWAP1
00001b1c: POP
00001b1d: JUMP
00001b1e: JUMPDEST
00001b1f: PUSH1 0x00
00001b21: PUSH1 0x20
00001b23: DUP3
00001b24: ADD
00001b25: SWAP1
00001b26: POP
00001b27: DUP2
00001b28: DUP2
00001b29: SUB
00001b2a: PUSH1 0x00
00001b2c: DUP4
00001b2d: ADD
00001b2e: MSTORE
00001b2f: PUSH2 0x1b37
00001b32: DUP2
00001b33: PUSH2 0x1afb
00001b36: JUMP
00001b37: JUMPDEST
00001b38: SWAP1
00001b39: POP
00001b3a: SWAP2
00001b3b: SWAP1
00001b3c: POP
00001b3d: JUMP
00001b3e: JUMPDEST
00001b3f: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00001b60: PUSH1 0x00
00001b62: MSTORE
00001b63: PUSH1 0x11
00001b65: PUSH1 0x04
00001b67: MSTORE
00001b68: PUSH1 0x24
00001b6a: PUSH1 0x00
00001b6c: REVERT
00001b6d: JUMPDEST
00001b6e: PUSH1 0x00
00001b70: PUSH2 0x1b78
00001b73: DUP3
00001b74: PUSH2 0x1454
00001b77: JUMP
00001b78: JUMPDEST
00001b79: SWAP2
00001b7a: POP
00001b7b: PUSH2 0x1b83
00001b7e: DUP4
00001b7f: PUSH2 0x1454
00001b82: JUMP
00001b83: JUMPDEST
00001b84: SWAP3
00001b85: POP
00001b86: DUP3
00001b87: DUP3
00001b88: SUB
00001b89: SWAP1
00001b8a: POP
00001b8b: DUP2
00001b8c: DUP2
00001b8d: GT
00001b8e: ISZERO
00001b8f: PUSH2 0x1b9b
00001b92: JUMPI
00001b93: PUSH2 0x1b9a
00001b96: PUSH2 0x1b3e
00001b99: JUMP
00001b9a: JUMPDEST
00001b9b: JUMPDEST
00001b9c: SWAP3
00001b9d: SWAP2
00001b9e: POP
00001b9f: POP
00001ba0: JUMP
00001ba1: JUMPDEST
00001ba2: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00001bc3: PUSH1 0x00
00001bc5: MSTORE
00001bc6: PUSH1 0x32
00001bc8: PUSH1 0x04
00001bca: MSTORE
00001bcb: PUSH1 0x24
00001bcd: PUSH1 0x00
00001bcf: REVERT
00001bd0: JUMPDEST
00001bd1: PUSH1 0x00
00001bd3: DUP3
00001bd4: DUP3
00001bd5: MSTORE
00001bd6: PUSH1 0x20
00001bd8: DUP3
00001bd9: ADD
00001bda: SWAP1
00001bdb: POP
00001bdc: SWAP3
00001bdd: SWAP2
00001bde: POP
00001bdf: POP
00001be0: JUMP
00001be1: JUMPDEST
00001be2: PUSH1 0x00
00001be4: DUP2
00001be5: SWAP1
00001be6: POP
00001be7: SWAP2
00001be8: SWAP1
00001be9: POP
00001bea: JUMP
00001beb: JUMPDEST
00001bec: PUSH2 0x1bf4
00001bef: DUP2
00001bf0: PUSH2 0x13e9
00001bf3: JUMP
00001bf4: JUMPDEST
00001bf5: DUP3
00001bf6: MSTORE
00001bf7: POP
00001bf8: POP
00001bf9: JUMP
00001bfa: JUMPDEST
00001bfb: PUSH1 0x00
00001bfd: PUSH2 0x1c06
00001c00: DUP4
00001c01: DUP4
00001c02: PUSH2 0x1beb
00001c05: JUMP
00001c06: JUMPDEST
00001c07: PUSH1 0x20
00001c09: DUP4
00001c0a: ADD
00001c0b: SWAP1
00001c0c: POP
00001c0d: SWAP3
00001c0e: SWAP2
00001c0f: POP
00001c10: POP
00001c11: JUMP
00001c12: JUMPDEST
00001c13: PUSH1 0x00
00001c15: PUSH2 0x1c21
00001c18: PUSH1 0x20
00001c1a: DUP5
00001c1b: ADD
00001c1c: DUP5
00001c1d: PUSH2 0x1412
00001c20: JUMP
00001c21: JUMPDEST
00001c22: SWAP1
00001c23: POP
00001c24: SWAP3
00001c25: SWAP2
00001c26: POP
00001c27: POP
00001c28: JUMP
00001c29: JUMPDEST
00001c2a: PUSH1 0x00
00001c2c: PUSH1 0x20
00001c2e: DUP3
00001c2f: ADD
00001c30: SWAP1
00001c31: POP
00001c32: SWAP2
00001c33: SWAP1
00001c34: POP
00001c35: JUMP
00001c36: JUMPDEST
00001c37: PUSH1 0x00
00001c39: PUSH2 0x1c42
00001c3c: DUP4
00001c3d: DUP6
00001c3e: PUSH2 0x1bd0
00001c41: JUMP
00001c42: JUMPDEST
00001c43: SWAP4
00001c44: POP
00001c45: PUSH2 0x1c4d
00001c48: DUP3
00001c49: PUSH2 0x1be1
00001c4c: JUMP
00001c4d: JUMPDEST
00001c4e: DUP1
00001c4f: PUSH1 0x00
00001c51: JUMPDEST
00001c52: DUP6
00001c53: DUP2
00001c54: LT
00001c55: ISZERO
00001c56: PUSH2 0x1c86
00001c59: JUMPI
00001c5a: PUSH2 0x1c63
00001c5d: DUP3
00001c5e: DUP5
00001c5f: PUSH2 0x1c12
00001c62: JUMP
00001c63: JUMPDEST
00001c64: PUSH2 0x1c6d
00001c67: DUP9
00001c68: DUP3
00001c69: PUSH2 0x1bfa
00001c6c: JUMP
00001c6d: JUMPDEST
00001c6e: SWAP8
00001c6f: POP
00001c70: PUSH2 0x1c78
00001c73: DUP4
00001c74: PUSH2 0x1c29
00001c77: JUMP
00001c78: JUMPDEST
00001c79: SWAP3
00001c7a: POP
00001c7b: POP
00001c7c: PUSH1 0x01
00001c7e: DUP2
00001c7f: ADD
00001c80: SWAP1
00001c81: POP
00001c82: PUSH2 0x1c51
00001c85: JUMP
00001c86: JUMPDEST
00001c87: POP
00001c88: DUP6
00001c89: SWAP3
00001c8a: POP
00001c8b: POP
00001c8c: POP
00001c8d: SWAP4
00001c8e: SWAP3
00001c8f: POP
00001c90: POP
00001c91: POP
00001c92: JUMP
00001c93: JUMPDEST
00001c94: PUSH1 0x00
00001c96: PUSH1 0x80
00001c98: DUP3
00001c99: ADD
00001c9a: SWAP1
00001c9b: POP
00001c9c: PUSH2 0x1ca8
00001c9f: PUSH1 0x00
00001ca1: DUP4
00001ca2: ADD
00001ca3: DUP9
00001ca4: PUSH2 0x1815
00001ca7: JUMP
00001ca8: JUMPDEST
00001ca9: DUP2
00001caa: DUP2
00001cab: SUB
00001cac: PUSH1 0x20
00001cae: DUP4
00001caf: ADD
00001cb0: MSTORE
00001cb1: PUSH2 0x1cbb
00001cb4: DUP2
00001cb5: DUP7
00001cb6: DUP9
00001cb7: PUSH2 0x1c36
00001cba: JUMP
00001cbb: JUMPDEST
00001cbc: SWAP1
00001cbd: POP
00001cbe: PUSH2 0x1cca
00001cc1: PUSH1 0x40
00001cc3: DUP4
00001cc4: ADD
00001cc5: DUP6
00001cc6: PUSH2 0x172c
00001cc9: JUMP
00001cca: JUMPDEST
00001ccb: PUSH2 0x1cd7
00001cce: PUSH1 0x60
00001cd0: DUP4
00001cd1: ADD
00001cd2: DUP5
00001cd3: PUSH2 0x1815
00001cd6: JUMP
00001cd7: JUMPDEST
00001cd8: SWAP7
00001cd9: SWAP6
00001cda: POP
00001cdb: POP
00001cdc: POP
00001cdd: POP
00001cde: POP
00001cdf: POP
00001ce0: JUMP
00001ce1: JUMPDEST
00001ce2: PUSH1 0x00
00001ce4: PUSH1 0x1f
00001ce6: NOT
00001ce7: PUSH1 0x1f
00001ce9: DUP4
00001cea: ADD
00001ceb: AND
00001cec: SWAP1
00001ced: POP
00001cee: SWAP2
00001cef: SWAP1
00001cf0: POP
00001cf1: JUMP
00001cf2: JUMPDEST
00001cf3: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00001d14: PUSH1 0x00
00001d16: MSTORE
00001d17: PUSH1 0x41
00001d19: PUSH1 0x04
00001d1b: MSTORE
00001d1c: PUSH1 0x24
00001d1e: PUSH1 0x00
00001d20: REVERT
00001d21: JUMPDEST
00001d22: PUSH2 0x1d2a
00001d25: DUP3
00001d26: PUSH2 0x1ce1
00001d29: JUMP
00001d2a: JUMPDEST
00001d2b: DUP2
00001d2c: ADD
00001d2d: DUP2
00001d2e: DUP2
00001d2f: LT
00001d30: PUSH8 0xffffffffffffffff
00001d39: DUP3
00001d3a: GT
00001d3b: OR
00001d3c: ISZERO
00001d3d: PUSH2 0x1d49
00001d40: JUMPI
00001d41: PUSH2 0x1d48
00001d44: PUSH2 0x1cf2
00001d47: JUMP
00001d48: JUMPDEST
00001d49: JUMPDEST
00001d4a: DUP1
00001d4b: PUSH1 0x40
00001d4d: MSTORE
00001d4e: POP
00001d4f: POP
00001d50: POP
00001d51: JUMP
00001d52: JUMPDEST
00001d53: PUSH1 0x00
00001d55: PUSH2 0x1d5c
00001d58: PUSH2 0x13b5
00001d5b: JUMP
00001d5c: JUMPDEST
00001d5d: SWAP1
00001d5e: POP
00001d5f: PUSH2 0x1d68
00001d62: DUP3
00001d63: DUP3
00001d64: PUSH2 0x1d21
00001d67: JUMP
00001d68: JUMPDEST
00001d69: SWAP2
00001d6a: SWAP1
00001d6b: POP
00001d6c: JUMP
00001d6d: JUMPDEST
00001d6e: PUSH1 0x00
00001d70: PUSH8 0xffffffffffffffff
00001d79: DUP3
00001d7a: GT
00001d7b: ISZERO
00001d7c: PUSH2 0x1d88
00001d7f: JUMPI
00001d80: PUSH2 0x1d87
00001d83: PUSH2 0x1cf2
00001d86: JUMP
00001d87: JUMPDEST
00001d88: JUMPDEST
00001d89: PUSH1 0x20
00001d8b: DUP3
00001d8c: MUL
00001d8d: SWAP1
00001d8e: POP
00001d8f: PUSH1 0x20
00001d91: DUP2
00001d92: ADD
00001d93: SWAP1
00001d94: POP
00001d95: SWAP2
00001d96: SWAP1
00001d97: POP
00001d98: JUMP
00001d99: JUMPDEST
00001d9a: PUSH1 0x00
00001d9c: PUSH2 0x1dac
00001d9f: PUSH2 0x1da7
00001da2: DUP5
00001da3: PUSH2 0x1d6d
00001da6: JUMP
00001da7: JUMPDEST
00001da8: PUSH2 0x1d52
00001dab: JUMP
00001dac: JUMPDEST
00001dad: SWAP1
00001dae: POP
00001daf: DUP1
00001db0: DUP4
00001db1: DUP3
00001db2: MSTORE
00001db3: PUSH1 0x20
00001db5: DUP3
00001db6: ADD
00001db7: SWAP1
00001db8: POP
00001db9: PUSH1 0x20
00001dbb: DUP5
00001dbc: MUL
00001dbd: DUP4
00001dbe: ADD
00001dbf: DUP6
00001dc0: DUP2
00001dc1: GT
00001dc2: ISZERO
00001dc3: PUSH2 0x1dcf
00001dc6: JUMPI
00001dc7: PUSH2 0x1dce
00001dca: PUSH2 0x1494
00001dcd: JUMP
00001dce: JUMPDEST
00001dcf: JUMPDEST
00001dd0: DUP4
00001dd1: JUMPDEST
00001dd2: DUP2
00001dd3: DUP2
00001dd4: LT
00001dd5: ISZERO
00001dd6: PUSH2 0x1df8
00001dd9: JUMPI
00001dda: DUP1
00001ddb: PUSH2 0x1de4
00001dde: DUP9
00001ddf: DUP3
00001de0: PUSH2 0x17d3
00001de3: JUMP
00001de4: JUMPDEST
00001de5: DUP5
00001de6: MSTORE
00001de7: PUSH1 0x20
00001de9: DUP5
00001dea: ADD
00001deb: SWAP4
00001dec: POP
00001ded: POP
00001dee: PUSH1 0x20
00001df0: DUP2
00001df1: ADD
00001df2: SWAP1
00001df3: POP
00001df4: PUSH2 0x1dd1
00001df7: JUMP
00001df8: JUMPDEST
00001df9: POP
00001dfa: POP
00001dfb: POP
00001dfc: SWAP4
00001dfd: SWAP3
00001dfe: POP
00001dff: POP
00001e00: POP
00001e01: JUMP
00001e02: JUMPDEST
00001e03: PUSH1 0x00
00001e05: DUP3
00001e06: PUSH1 0x1f
00001e08: DUP4
00001e09: ADD
00001e0a: SLT
00001e0b: PUSH2 0x1e17
00001e0e: JUMPI
00001e0f: PUSH2 0x1e16
00001e12: PUSH2 0x148a
00001e15: JUMP
00001e16: JUMPDEST
00001e17: JUMPDEST
00001e18: DUP2
00001e19: MLOAD
00001e1a: PUSH2 0x1e27
00001e1d: DUP5
00001e1e: DUP3
00001e1f: PUSH1 0x20
00001e21: DUP7
00001e22: ADD
00001e23: PUSH2 0x1d99
00001e26: JUMP
00001e27: JUMPDEST
00001e28: SWAP2
00001e29: POP
00001e2a: POP
00001e2b: SWAP3
00001e2c: SWAP2
00001e2d: POP
00001e2e: POP
00001e2f: JUMP
00001e30: JUMPDEST
00001e31: PUSH1 0x00
00001e33: PUSH1 0x20
00001e35: DUP3
00001e36: DUP5
00001e37: SUB
00001e38: SLT
00001e39: ISZERO
00001e3a: PUSH2 0x1e46
00001e3d: JUMPI
00001e3e: PUSH2 0x1e45
00001e41: PUSH2 0x13bf
00001e44: JUMP
00001e45: JUMPDEST
00001e46: JUMPDEST
00001e47: PUSH1 0x00
00001e49: DUP3
00001e4a: ADD
00001e4b: MLOAD
00001e4c: PUSH8 0xffffffffffffffff
00001e55: DUP2
00001e56: GT
00001e57: ISZERO
00001e58: PUSH2 0x1e64
00001e5b: JUMPI
00001e5c: PUSH2 0x1e63
00001e5f: PUSH2 0x13c4
00001e62: JUMP
00001e63: JUMPDEST
00001e64: JUMPDEST
00001e65: PUSH2 0x1e70
00001e68: DUP5
00001e69: DUP3
00001e6a: DUP6
00001e6b: ADD
00001e6c: PUSH2 0x1e02
00001e6f: JUMP
00001e70: JUMPDEST
00001e71: SWAP2
00001e72: POP
00001e73: POP
00001e74: SWAP3
00001e75: SWAP2
00001e76: POP
00001e77: POP
00001e78: JUMP
00001e79: JUMPDEST
00001e7a: PUSH1 0x00
00001e7c: PUSH2 0x1e84
00001e7f: DUP3
00001e80: PUSH2 0x1454
00001e83: JUMP
00001e84: JUMPDEST
00001e85: SWAP2
00001e86: POP
00001e87: PUSH2 0x1e8f
00001e8a: DUP4
00001e8b: PUSH2 0x1454
00001e8e: JUMP
00001e8f: JUMPDEST
00001e90: SWAP3
00001e91: POP
00001e92: DUP3
00001e93: DUP3
00001e94: ADD
00001e95: SWAP1
00001e96: POP
00001e97: DUP1
00001e98: DUP3
00001e99: GT
00001e9a: ISZERO
00001e9b: PUSH2 0x1ea7
00001e9e: JUMPI
00001e9f: PUSH2 0x1ea6
00001ea2: PUSH2 0x1b3e
00001ea5: JUMP
00001ea6: JUMPDEST
00001ea7: JUMPDEST
00001ea8: SWAP3
00001ea9: SWAP2
00001eaa: POP
00001eab: POP
00001eac: JUMP
00001ead: INVALID
00001eae: LOG2
00001eaf: PUSH5 0x6970667358
00001eb5: UNKNOWN(0x22)
00001eb6: SLT
00001eb7: KECCAK256
00001eb8: UNKNOWN(0x0C)
00001eb9: CODESIZE
00001eba: PUSH28 0x9a78e821bfcb21967839feb746457128b23e3f804054c36535e4f7b2
00001ed7: UNKNOWN(0xBB)
00001ed8: PUSH5 0x736f6c6343
00001ede: STOP
00001edf: ADDMOD
00001ee0: SLT
00001ee1: STOP
00001ee2: CALLER

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: 0x4128b6871cfff274ee59c0cf751380134a13bcb28c1865cf31951e580d75b22a
call_targets: 0x5ad7c57a50cfb4620ada929c53f08341bf11eb7c
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x4128b6871cfff274ee59c0cf751380134a13bcb28c1865cf31951e580d75b22a",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x5ad7c57a50cfb4620ada929c53f08341bf11eb7c"
    ],
    "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": "0x643590f9",
            "selector": "0x643590f9",
            "calldata_variants": [
                "0x643590f9",
                "0x643590f90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x64669795",
            "selector": "0x64669795",
            "calldata_variants": [
                "0x64669795",
                "0x646697950000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x893d20e8",
            "selector": "0x893d20e8",
            "calldata_variants": [
                "0x893d20e8",
                "0x893d20e80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd42bfe82",
            "selector": "0xd42bfe82",
            "calldata_variants": [
                "0xd42bfe82",
                "0xd42bfe820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xea9ed33a",
            "selector": "0xea9ed33a",
            "calldata_variants": [
                "0xea9ed33a",
                "0xea9ed33a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07ebd12f",
            "selector": "0x07ebd12f",
            "calldata_variants": [
                "0x07ebd12f",
                "0x07ebd12f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1e83cdab",
            "selector": "0x1e83cdab",
            "calldata_variants": [
                "0x1e83cdab",
                "0x1e83cdab0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3cf9d1f4",
            "selector": "0x3cf9d1f4",
            "calldata_variants": [
                "0x3cf9d1f4",
                "0x3cf9d1f40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 779,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1027,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1501,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 11,
    "guards_detected": [
        {
            "pc": 1986,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 11
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x4128b6871cfff274ee59c0cf751380134a13bcb28c1865cf31951e580d75b22a
call_targets: 0x5ad7c57a50cfb4620ada929c53f08341bf11eb7c
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x4128b6871cfff274ee59c0cf751380134a13bcb28c1865cf31951e580d75b22a",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x5ad7c57a50cfb4620ada929c53f08341bf11eb7c"
    ],
    "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": "0x643590f9",
            "selector": "0x643590f9",
            "calldata_variants": [
                "0x643590f9",
                "0x643590f90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x64669795",
            "selector": "0x64669795",
            "calldata_variants": [
                "0x64669795",
                "0x646697950000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x893d20e8",
            "selector": "0x893d20e8",
            "calldata_variants": [
                "0x893d20e8",
                "0x893d20e80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd42bfe82",
            "selector": "0xd42bfe82",
            "calldata_variants": [
                "0xd42bfe82",
                "0xd42bfe820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xea9ed33a",
            "selector": "0xea9ed33a",
            "calldata_variants": [
                "0xea9ed33a",
                "0xea9ed33a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07ebd12f",
            "selector": "0x07ebd12f",
            "calldata_variants": [
                "0x07ebd12f",
                "0x07ebd12f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1e83cdab",
            "selector": "0x1e83cdab",
            "calldata_variants": [
                "0x1e83cdab",
                "0x1e83cdab0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3cf9d1f4",
            "selector": "0x3cf9d1f4",
            "calldata_variants": [
                "0x3cf9d1f4",
                "0x3cf9d1f40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 779,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1027,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1501,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 11,
    "guards_detected": [
        {
            "pc": 1986,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 12
}