0c13efe9-d030-43b0-9de7-ff974ed11442
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| 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 |
No slither job recorded yet.
[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":[]}
{
"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
}
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
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_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 |
viewtrace_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 | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 12
}
|