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

Analysis Run

019bb491-abe0-7015-aafa-7b767eaf03d1

complete
Chain ID
1
Address
Block Number
Created
Mon, Jan 12, 2026 11:36 PM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
40250 artifact.fetch complete 1 / 3 3 months ago
40251 proxy.resolve complete 1 / 3 3 months ago
40252 tool.cast_disasm complete 1 / 3 3 months ago
40253 analysis.bundle complete 1 / 3 3 months ago
40254 capability.graph complete 1 / 3 3 months ago
40255 detector.run complete 1 / 3 3 months ago
40256 validation.fork complete 1 / 3 3 months ago
40274 report.consolidate complete 1 / 6 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: no
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
1
No findings?
no
Summary
Bytecode shows multiple low-level CALLs with computed targets/values and no detected guard patterns; no delegatecall/proxy patterns are present in this runtime artifact.
View stdout
{"no_findings":false,"summary":"Bytecode shows multiple low-level CALLs with computed targets/values and no detected guard patterns; no delegatecall/proxy patterns are present in this runtime artifact.","findings":[{"severity":"medium","category":"other","title":"Computed external CALLs (some with ETH value) can be dangerous if target is attacker-controlled","exploit_scenario":"If any call target is derived from user input or a privileged storage slot that can be mis-set (e.g., token/recipient address), an attacker can point it to a malicious contract and trigger the CALL sites to execute arbitrary code and potentially reenter or drain ETH before state is finalized.","recommendation":"Constrain call targets to trusted/allowlisted addresses, make critical targets immutable or tightly access-controlled, and add reentrancy guards around state-changing flows that execute low-level CALLs with value. Also validate return data where applicable (e.g., ERC20 calls).","evidence":"Detector reports 5 CALL sites with computed targets/values and no guards detected. CALL sites at pc 3992, 4695, 4872, 4948, 6009; `returndata_checked` is null. Validation trace did not confirm a varying target (classified constant_target, confirmed=false), so attacker control is uncertain.","locations":["pc:3992","pc:4695","pc:4872","pc:4948","pc:6009"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-a1eev65g
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb4d2-e50e-7a21-904e-6842e5bdf762
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.

Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".

Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers

thinking
**Reading BYTECODE_BUNDLE.json**
exec
/bin/bash -lc ls in /tmp/codex-a1eev65g succeeded in 6ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-a1eev65g succeeded in 6ms:
{
  "analysis_artifact": {
    "address": "0xc186e6f0163e21be057e95aa135edd52508d14d3",
    "artifact_hash": "0xe89224d20e3e5313c1e93c60154ecc190f900624dae94604f3303a540eeb9aab",
    "artifact_json": {
      "auth": {
        "guards": []
      },
      "basic_blocks": [
        {
          "end_pc": 12,
          "hash": "0xee9b7a008adde9eceacb0e9b1b218268e62be2482c6626c86a298ad72e5335c2",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "CALLDATASIZE",
            "LT",
            "PUSH2",

thinking
**Searching for evidence bundles**
exec
/bin/bash -lc 'rg -n "evidence|callsite|storage|proxy|delegatecall|selector" BYTECODE_BUNDLE.json | head -n 200' in /tmp/codex-a1eev65g succeeded in 8ms:
7550:      "callsites": [
9288:      "dispatcher_type": "selector_jump_table",
9292:          "selector": "0xe2787405"
9296:          "selector": "0xec58f4b8"
9300:          "selector": "0xfc22290b"
9304:          "selector": "0xfeb9bf89"
9308:          "selector": "0xd547741f"
9312:          "selector": "0xdb5c0f79"
9316:          "selector": "0xe086e5ec"
9320:          "selector": "0xa217fddf"
9324:          "selector": "0xc471b10b"
9328:          "selector": "0xc4fd5002"
9332:          "selector": "0xc59d5633"
9336:          "selector": "0xca15c873"
9340:          "selector": "0xcd3293de"
9344:          "selector": "0x4f01f6f1"
9348:          "selector": "0x6b7cd7c8"
9352:          "selector": "0x8f29f0fe"
9356:          "selector": "0x9010d07c"
9360:          "selector": "0x91d14854"

thinking
**Inspecting callsites for evidence_bundle**
exec
/bin/bash -lc "sed -n '7480,7645p' BYTECODE_BUNDLE.json" in /tmp/codex-a1eev65g succeeded in 12ms:
            "PUSH16",
            "PUSH6",
            "PUSH14",
            "PUSH13",
            "PUSH2",
            "SHA3",
            "PUSH17",
            "PUSH5",
            "PUSH4",
            "PUSH16",
            "PUSH20",
            "PUSH16",
            "PUSH10",
            "PUSH16",
            "PUSH10",
            "PUSH20",
            "PUSH13",
            "PUSH15",
            "PUSH9",
            "PUSH19",

thinking
**Analyzing callsite and proxy evidence**

I'm gathering more data on function callsites, especially around dispatchers and security—looking for proxy usage, delegatecall absence, and whether external calls handle return data properly. The evidence suggests calls target the contract itself, which might lower untrusted call risks, but I'll need to review evidence bundles closely to clarify.
exec
/bin/bash -lc "sed -n '9280,9750p' BYTECODE_BUNDLE.json" in /tmp/codex-a1eev65g succeeded in 7ms:
        },
        {
          "from": "bb:8269",
          "to": "bb:8275",
          "type": "control_flow_fallthrough"
        }
      ],
      "cfg_hash": "0x2d3295b2f9c769ab9c3a96879994053ae8ee5ab7a8c2a9e9ec672e502918fff7",
      "dispatcher_type": "selector_jump_table",
      "function_entries": [
        {
          "entry_pc": 3799544837,
          "selector": "0xe2787405"
        },
        {
          "entry_pc": 4230097163,
          "selector": "0xec58f4b8"
        },
        {
          "entry_pc": 4273586057,

thinking
**Analyzing function list with unusual entries**
exec
/bin/bash -lc "sed -n '13320,13780p' BYTECODE_BUNDLE.json" in /tmp/codex-a1eev65g succeeded in 7ms:
                "op": "SLOAD",
                "pc": 7964,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
              }
            ],
            "writes": 20
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 0,
          "selector": "0x485cc955",
          "sinks": {
            "call": 5,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 4
          },

thinking
**Analyzing bytecode for external calls and reentrancy**
exec
/bin/bash -lc 'rg -n "pc": 3992 -n BYTECODE_BUNDLE.json' in /tmp/codex-a1eev65g exited 2 in 9ms:
rg: 3992: No such file or directory (os error 2)

thinking
**Correcting search command syntax**
exec
/bin/bash -lc "rg -n \"\\\"pc\\\": 3992\" BYTECODE_BUNDLE.json" in /tmp/codex-a1eev65g succeeded in 7ms:
7560:          "pc": 3992,
18418:          "pc": 3992,
18636:            "pc": 3992,
18688:            "pc": 3992,

thinking
**Preparing to extract opcode blocks**
exec
/bin/bash -lc "python - <<'PY'
import json
import sys
pc_targets=[2197,3992,4252,4695,4872,4948,5092,5300,6009]
with open('BYTECODE_BUNDLE.json','r') as f:
    data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
# Some basic blocks entries near end may be truncated? but we have list
for pc in pc_targets:
    blk=None
    for b in blocks:
        if b['start_pc']<=pc<=b['end_pc']:
            blk=b
            break
    print('pc',pc,'block',blk['start_pc'] if blk else None, blk['end_pc'] if blk else None)
    if blk:
        ops=blk['opcodes']
        print('ops:',ops)
PY" in /tmp/codex-a1eev65g succeeded in 30ms:
pc 2197 block 2194 2204
ops: ['JUMPDEST', 'POP', 'GAS', 'STATICCALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 3992 block 3989 3999
ops: ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 4252 block 4249 4259
ops: ['JUMPDEST', 'POP', 'GAS', 'STATICCALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 4695 block 4692 4702
ops: ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 4872 block 4869 4879
ops: ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 4948 block 4901 4960
ops: ['JUMPDEST', 'PUSH20', 'AND', 'PUSH2', 'OP_82', 'OP_90', 'OP_81', 'ISZERO', 'MUL', 'OP_90', 'PUSH1', 'MLOAD', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_85', 'OP_88', 'OP_88', 'CALL', 'OP_93', 'POP', 'POP', 'POP', 'POP', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 5092 block 5089 5099
ops: ['JUMPDEST', 'POP', 'GAS', 'STATICCALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 5300 block 5297 5307
ops: ['JUMPDEST', 'POP', 'GAS', 'STATICCALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
pc 6009 block 5988 6021
ops: ['JUMPDEST', 'OP_90', 'OP_81', 'ISZERO', 'MUL', 'OP_90', 'PUSH1', 'MLOAD', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_85', 'OP_88', 'OP_88', 'CALL', 'OP_93', 'POP', 'POP', 'POP', 'POP', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']

thinking
**Analyzing external call patterns and reentrancy risks**

I'm examining the bytecode around external CALL instructions to understand how call success and return data are handled, searching for possible reentrancy vulnerabilities. Noticing standard revert-on-failure patterns and calls to stored token addresses, I'm investigating if state changes happen before or after these calls and checking if return values from token transfers are adequately verified. The contract is an implementation behind a proxy with initializer logic, so I’m also considering upgrade and initialization risks while mapping control flow and opcode edges to clarify callsite behavior.
exec
/bin/bash -lc "python - <<'PY'
import json
pc_targets=[3992,4695,4872,4948,6009]
with open('BYTECODE_BUNDLE.json','r') as f:
    data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
# map id by start_pc? In blocks list maybe no id? But we have start_pc. We'll define label 'bb:<start_pc>' maybe? Actually in edges list, IDs are 'bb:<start>'
# Determine edges from cfg
edges=data['analysis_artifact']['artifact_json']['cfg_edges']
# Build mapping from bb id to edges
from collections import defaultdict
out=defaultdict(list)
for e in edges:
    out[e['from']].append(e)

# map start_pc to block
block_by_start={b['start_pc']:b for b in blocks}
# find block covering pc and show outgoing edges and next block ops
for pc in pc_targets:
    blk=None
    for b in blocks:
        if b['start_pc']<=pc<=b['end_pc']:
            blk=b
            break
    if not blk:
        print('pc',pc,'block not found')
        continue
    bid=f\"bb:{blk['start_pc']}\"
    print('\\npc',pc,'block',bid,'range',blk['start_pc'],blk['end_pc'])
    print('ops',blk['opcodes'])
    print('edges',out.get(bid))
    # show dest blocks ops summary
    for e in out.get(bid,[]):
        dest=e['to']
        if dest.startswith('bb:'):
            start=int(dest.split(':')[1])
            b2=block_by_start.get(start)
            if b2:
                print(' dest ops start',start,'ops',b2['opcodes'][:10])
PY" in /tmp/codex-a1eev65g succeeded in 35ms:

pc 3992 block bb:3989 range 3989 3999
ops ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
edges [{'from': 'bb:3989', 'to': 'bb:4009', 'type': 'control_flow'}, {'from': 'bb:3989', 'to': 'bb:4000', 'type': 'control_flow_fallthrough'}]
 dest ops start 4009 ops ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'CALLVALUE', 'OP_90', 'POP', 'OP_91', 'OP_90']
 dest ops start 4000 ops ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']

pc 4695 block bb:4692 range 4692 4702
ops ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
edges [{'from': 'bb:4692', 'to': 'bb:4712', 'type': 'control_flow'}, {'from': 'bb:4692', 'to': 'bb:4703', 'type': 'control_flow_fallthrough'}]
 dest ops start 4712 ops ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'PUSH1', 'MLOAD', 'RETURNDATASIZE', 'PUSH1', 'OP_81']
 dest ops start 4703 ops ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']

pc 4872 block bb:4869 range 4869 4879
ops ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
edges [{'from': 'bb:4869', 'to': 'bb:4889', 'type': 'control_flow'}, {'from': 'bb:4869', 'to': 'bb:4880', 'type': 'control_flow_fallthrough'}]
 dest ops start 4889 ops ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'PUSH2', 'PUSH2', 'JUMP']
 dest ops start 4880 ops ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']

pc 4948 block bb:4901 range 4901 4960

thinking
**Analyzing call return value checks**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
block_by_start={b['start_pc']:b for b in blocks}
edges=data['analysis_artifact']['artifact_json']['cfg_edges']
from collections import defaultdict
out=defaultdict(list)
for e in edges:
    out[e['from']].append(e)

def show(start,depth=2,visited=None):
    if visited is None: visited=set()
    if start in visited: return
    visited.add(start)
    b=block_by_start.get(start)
    print('block',start,'ops',b['opcodes'])
    if depth<=0: return
    for e in out.get(f'bb:{start}',[]):
        dest=e['to']
        if dest.startswith('bb:'):
            show(int(dest.split(':')[1]), depth-1, visited)

for s in [4009,4712,4889,4970,6031]:
    print('\\n=== from',s)
    show(s,depth=2)
PY" in /tmp/codex-a1eev65g succeeded in 51ms:

=== from 4009
block 4009 ops ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'CALLVALUE', 'OP_90', 'POP', 'OP_91', 'OP_90', 'POP', 'JUMP']

=== from 4712
block 4712 ops ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'PUSH1', 'MLOAD', 'RETURNDATASIZE', 'PUSH1', 'OP_81', 'LT', 'ISZERO', 'PUSH2', 'JUMPI']
block 4734 ops ['JUMPDEST', 'OP_81', 'ADD', 'OP_90', 'OP_80', 'OP_80', 'MLOAD', 'OP_90', 'PUSH1', 'ADD', 'OP_90', 'OP_92', 'OP_91', 'OP_90', 'POP', 'POP', 'POP', 'POP', 'PUSH1', 'PUSH1', 'OP_90', 'SLOAD', 'OP_90', 'PUSH2', 'EXP', 'OP_90', 'DIV', 'PUSH20', 'AND', 'PUSH20', 'AND', 'PUSH4', 'OP_84', 'PUSH1', 'MLOAD', 'OP_82', 'PUSH4', 'AND', 'PUSH1', 'SHL', 'OP_81', 'MSTORE', 'PUSH1', 'ADD', 'OP_80', 'OP_82', 'OP_81', 'MSTORE', 'PUSH1', 'ADD', 'OP_91', 'POP', 'POP', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'PUSH1', 'OP_87', 'OP_80', 'EXTCODESIZE', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
block 4869 ops ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
block 4865 ops ['PUSH1', 'OP_80', 'REVERT']
block 4730 ops ['PUSH1', 'OP_80', 'REVERT']

=== from 4889
block 4889 ops ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'PUSH2', 'PUSH2', 'JUMP']
block 6591 ops ['JUMPDEST', 'PUSH1', 'CALLER', 'OP_90', 'POP', 'OP_90', 'JUMP']

=== from 4970
block 4970 ops ['JUMPDEST', 'POP', 'OP_80', 'OP_91', 'POP', 'POP', 'OP_91', 'OP_90', 'POP', 'JUMP']

=== from 6031
block 6031 ops ['JUMPDEST', 'POP', 'JUMP']


thinking
**Analyzing external calls and reentrancy risks**
thinking
**Summarizing untrusted external calls and reentrancy risk**

I'll produce a detailed JSON with one combined finding about multiple low-level CALLs to computed targets (some with ETH value) that may allow reentrancy or arbitrary external calls if those targets can be controlled by an attacker. I'll include evidence about callsites, lack of detected guards, and mention proxy implementation context while noting some uncertainty.
codex
{"no_findings":false,"summary":"Bytecode shows multiple low-level CALLs with computed targets/values and no detected guard patterns; no delegatecall/proxy patterns are present in this runtime artifact.","findings":[{"severity":"medium","category":"other","title":"Computed external CALLs (some with ETH value) can be dangerous if target is attacker-controlled","exploit_scenario":"If any call target is derived from user input or a privileged storage slot that can be mis-set (e.g., token/recipient address), an attacker can point it to a malicious contract and trigger the CALL sites to execute arbitrary code and potentially reenter or drain ETH before state is finalized.","recommendation":"Constrain call targets to trusted/allowlisted addresses, make critical targets immutable or tightly access-controlled, and add reentrancy guards around state-changing flows that execute low-level CALLs with value. Also validate return data where applicable (e.g., ERC20 calls).","evidence":"Detector reports 5 CALL sites with computed targets/values and no guards detected. CALL sites at pc 3992, 4695, 4872, 4948, 6009; `returndata_checked` is null. Validation trace did not confirm a varying target (classified constant_target, confirmed=false), so attacker control is uncertain.","locations":["pc:3992","pc:4695","pc:4872","pc:4948","pc:6009"]}]}
tokens used
79,550
Metadata
{
    "codex": {
        "ran_at": "2026-01-13T00:51:26.368109+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 17444,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Bytecode shows multiple low-level CALLs with computed targets/values and no detected guard patterns; no delegatecall/proxy patterns are present in this runtime artifact.",
    "raw_final": {
        "summary": "Bytecode shows multiple low-level CALLs with computed targets/values and no detected guard patterns; no delegatecall/proxy patterns are present in this runtime artifact.",
        "findings": [
            {
                "title": "Computed external CALLs (some with ETH value) can be dangerous if target is attacker-controlled",
                "category": "other",
                "evidence": "Detector reports 5 CALL sites with computed targets/values and no guards detected. CALL sites at pc 3992, 4695, 4872, 4948, 6009; `returndata_checked` is null. Validation trace did not confirm a varying target (classified constant_target, confirmed=false), so attacker control is uncertain.",
                "severity": "medium",
                "locations": [
                    "pc:3992",
                    "pc:4695",
                    "pc:4872",
                    "pc:4948",
                    "pc:6009"
                ],
                "recommendation": "Constrain call targets to trusted/allowlisted addresses, make critical targets immutable or tightly access-controlled, and add reentrancy guards around state-changing flows that execute low-level CALLs with value. Also validate return data where applicable (e.g., ERC20 calls).",
                "exploit_scenario": "If any call target is derived from user input or a privileged storage slot that can be mis-set (e.g., token/recipient address), an attacker can point it to a malicious contract and trigger the CALL sites to execute arbitrary code and potentially reenter or drain ETH before state is finalized."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
9
EXT*/BALANCE
9
Total opcodes
4767
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0166
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0xa217fddf
00000019: GT
0000001a: PUSH2 0x00d1
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xd547741f
00000024: GT
00000025: PUSH2 0x008a
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xe2787405
0000002f: GT
00000030: PUSH2 0x0064
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xe2787405
0000003a: EQ
0000003b: PUSH2 0x06fc
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xec58f4b8
00000045: EQ
00000046: PUSH2 0x0727
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xfc22290b
00000050: EQ
00000051: PUSH2 0x0790
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xfeb9bf89
0000005b: EQ
0000005c: PUSH2 0x07bb
0000005f: JUMPI
00000060: PUSH2 0x0166
00000063: JUMP
00000064: JUMPDEST
00000065: DUP1
00000066: PUSH4 0xd547741f
0000006b: EQ
0000006c: PUSH2 0x0680
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xdb5c0f79
00000076: EQ
00000077: PUSH2 0x06db
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xe086e5ec
00000081: EQ
00000082: PUSH2 0x06e5
00000085: JUMPI
00000086: PUSH2 0x0166
00000089: JUMP
0000008a: JUMPDEST
0000008b: DUP1
0000008c: PUSH4 0xa217fddf
00000091: EQ
00000092: PUSH2 0x04ee
00000095: JUMPI
00000096: DUP1
00000097: PUSH4 0xc471b10b
0000009c: EQ
0000009d: PUSH2 0x0519
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0xc4fd5002
000000a7: EQ
000000a8: PUSH2 0x0568
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0xc59d5633
000000b2: EQ
000000b3: PUSH2 0x05b7
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0xca15c873
000000bd: EQ
000000be: PUSH2 0x0606
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0xcd3293de
000000c8: EQ
000000c9: PUSH2 0x0655
000000cc: JUMPI
000000cd: PUSH2 0x0166
000000d0: JUMP
000000d1: JUMPDEST
000000d2: DUP1
000000d3: PUSH4 0x4f01f6f1
000000d8: GT
000000d9: PUSH2 0x0123
000000dc: JUMPI
000000dd: DUP1
000000de: PUSH4 0x4f01f6f1
000000e3: EQ
000000e4: PUSH2 0x0337
000000e7: JUMPI
000000e8: DUP1
000000e9: PUSH4 0x6b7cd7c8
000000ee: EQ
000000ef: PUSH2 0x034e
000000f2: JUMPI
000000f3: DUP1
000000f4: PUSH4 0x8f29f0fe
000000f9: EQ
000000fa: PUSH2 0x0379
000000fd: JUMPI
000000fe: DUP1
000000ff: PUSH4 0x9010d07c
00000104: EQ
00000105: PUSH2 0x03b4
00000108: JUMPI
00000109: DUP1
0000010a: PUSH4 0x91d14854
0000010f: EQ
00000110: PUSH2 0x0439
00000113: JUMPI
00000114: DUP1
00000115: PUSH4 0xa0296215
0000011a: EQ
0000011b: PUSH2 0x04ac
0000011e: JUMPI
0000011f: PUSH2 0x0166
00000122: JUMP
00000123: JUMPDEST
00000124: DUP1
00000125: PUSH4 0x22b93266
0000012a: EQ
0000012b: PUSH2 0x016b
0000012e: JUMPI
0000012f: DUP1
00000130: PUSH4 0x248a9ca3
00000135: EQ
00000136: PUSH2 0x0196
00000139: JUMPI
0000013a: DUP1
0000013b: PUSH4 0x27a28f68
00000140: EQ
00000141: PUSH2 0x01e5
00000144: JUMPI
00000145: DUP1
00000146: PUSH4 0x2f2ff15d
0000014b: EQ
0000014c: PUSH2 0x0210
0000014f: JUMPI
00000150: DUP1
00000151: PUSH4 0x36568abe
00000156: EQ
00000157: PUSH2 0x026b
0000015a: JUMPI
0000015b: DUP1
0000015c: PUSH4 0x485cc955
00000161: EQ
00000162: PUSH2 0x02c6
00000165: JUMPI
00000166: JUMPDEST
00000167: PUSH1 0x00
00000169: DUP1
0000016a: REVERT
0000016b: JUMPDEST
0000016c: CALLVALUE
0000016d: DUP1
0000016e: ISZERO
0000016f: PUSH2 0x0177
00000172: JUMPI
00000173: PUSH1 0x00
00000175: DUP1
00000176: REVERT
00000177: JUMPDEST
00000178: POP
00000179: PUSH2 0x0180
0000017c: PUSH2 0x07e6
0000017f: JUMP
00000180: JUMPDEST
00000181: PUSH1 0x40
00000183: MLOAD
00000184: DUP1
00000185: DUP3
00000186: DUP2
00000187: MSTORE
00000188: PUSH1 0x20
0000018a: ADD
0000018b: SWAP2
0000018c: POP
0000018d: POP
0000018e: PUSH1 0x40
00000190: MLOAD
00000191: DUP1
00000192: SWAP2
00000193: SUB
00000194: SWAP1
00000195: RETURN
00000196: JUMPDEST
00000197: CALLVALUE
00000198: DUP1
00000199: ISZERO
0000019a: PUSH2 0x01a2
0000019d: JUMPI
0000019e: PUSH1 0x00
000001a0: DUP1
000001a1: REVERT
000001a2: JUMPDEST
000001a3: POP
000001a4: PUSH2 0x01cf
000001a7: PUSH1 0x04
000001a9: DUP1
000001aa: CALLDATASIZE
000001ab: SUB
000001ac: PUSH1 0x20
000001ae: DUP2
000001af: LT
000001b0: ISZERO
000001b1: PUSH2 0x01b9
000001b4: JUMPI
000001b5: PUSH1 0x00
000001b7: DUP1
000001b8: REVERT
000001b9: JUMPDEST
000001ba: DUP2
000001bb: ADD
000001bc: SWAP1
000001bd: DUP1
000001be: DUP1
000001bf: CALLDATALOAD
000001c0: SWAP1
000001c1: PUSH1 0x20
000001c3: ADD
000001c4: SWAP1
000001c5: SWAP3
000001c6: SWAP2
000001c7: SWAP1
000001c8: POP
000001c9: POP
000001ca: POP
000001cb: PUSH2 0x07ec
000001ce: JUMP
000001cf: JUMPDEST
000001d0: PUSH1 0x40
000001d2: MLOAD
000001d3: DUP1
000001d4: DUP3
000001d5: DUP2
000001d6: MSTORE
000001d7: PUSH1 0x20
000001d9: ADD
000001da: SWAP2
000001db: POP
000001dc: POP
000001dd: PUSH1 0x40
000001df: MLOAD
000001e0: DUP1
000001e1: SWAP2
000001e2: SUB
000001e3: SWAP1
000001e4: RETURN
000001e5: JUMPDEST
000001e6: CALLVALUE
000001e7: DUP1
000001e8: ISZERO
000001e9: PUSH2 0x01f1
000001ec: JUMPI
000001ed: PUSH1 0x00
000001ef: DUP1
000001f0: REVERT
000001f1: JUMPDEST
000001f2: POP
000001f3: PUSH2 0x01fa
000001f6: PUSH2 0x080c
000001f9: JUMP
000001fa: JUMPDEST
000001fb: PUSH1 0x40
000001fd: MLOAD
000001fe: DUP1
000001ff: DUP3
00000200: DUP2
00000201: MSTORE
00000202: PUSH1 0x20
00000204: ADD
00000205: SWAP2
00000206: POP
00000207: POP
00000208: PUSH1 0x40
0000020a: MLOAD
0000020b: DUP1
0000020c: SWAP2
0000020d: SUB
0000020e: SWAP1
0000020f: RETURN
00000210: JUMPDEST
00000211: CALLVALUE
00000212: DUP1
00000213: ISZERO
00000214: PUSH2 0x021c
00000217: JUMPI
00000218: PUSH1 0x00
0000021a: DUP1
0000021b: REVERT
0000021c: JUMPDEST
0000021d: POP
0000021e: PUSH2 0x0269
00000221: PUSH1 0x04
00000223: DUP1
00000224: CALLDATASIZE
00000225: SUB
00000226: PUSH1 0x40
00000228: DUP2
00000229: LT
0000022a: ISZERO
0000022b: PUSH2 0x0233
0000022e: JUMPI
0000022f: PUSH1 0x00
00000231: DUP1
00000232: REVERT
00000233: JUMPDEST
00000234: DUP2
00000235: ADD
00000236: SWAP1
00000237: DUP1
00000238: DUP1
00000239: CALLDATALOAD
0000023a: SWAP1
0000023b: PUSH1 0x20
0000023d: ADD
0000023e: SWAP1
0000023f: SWAP3
00000240: SWAP2
00000241: SWAP1
00000242: DUP1
00000243: CALLDATALOAD
00000244: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000259: AND
0000025a: SWAP1
0000025b: PUSH1 0x20
0000025d: ADD
0000025e: SWAP1
0000025f: SWAP3
00000260: SWAP2
00000261: SWAP1
00000262: POP
00000263: POP
00000264: POP
00000265: PUSH2 0x0908
00000268: JUMP
00000269: JUMPDEST
0000026a: STOP
0000026b: JUMPDEST
0000026c: CALLVALUE
0000026d: DUP1
0000026e: ISZERO
0000026f: PUSH2 0x0277
00000272: JUMPI
00000273: PUSH1 0x00
00000275: DUP1
00000276: REVERT
00000277: JUMPDEST
00000278: POP
00000279: PUSH2 0x02c4
0000027c: PUSH1 0x04
0000027e: DUP1
0000027f: CALLDATASIZE
00000280: SUB
00000281: PUSH1 0x40
00000283: DUP2
00000284: LT
00000285: ISZERO
00000286: PUSH2 0x028e
00000289: JUMPI
0000028a: PUSH1 0x00
0000028c: DUP1
0000028d: REVERT
0000028e: JUMPDEST
0000028f: DUP2
00000290: ADD
00000291: SWAP1
00000292: DUP1
00000293: DUP1
00000294: CALLDATALOAD
00000295: SWAP1
00000296: PUSH1 0x20
00000298: ADD
00000299: SWAP1
0000029a: SWAP3
0000029b: SWAP2
0000029c: SWAP1
0000029d: DUP1
0000029e: CALLDATALOAD
0000029f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002b4: AND
000002b5: SWAP1
000002b6: PUSH1 0x20
000002b8: ADD
000002b9: SWAP1
000002ba: SWAP3
000002bb: SWAP2
000002bc: SWAP1
000002bd: POP
000002be: POP
000002bf: POP
000002c0: PUSH2 0x0992
000002c3: JUMP
000002c4: JUMPDEST
000002c5: STOP
000002c6: JUMPDEST
000002c7: CALLVALUE
000002c8: DUP1
000002c9: ISZERO
000002ca: PUSH2 0x02d2
000002cd: JUMPI
000002ce: PUSH1 0x00
000002d0: DUP1
000002d1: REVERT
000002d2: JUMPDEST
000002d3: POP
000002d4: PUSH2 0x0335
000002d7: PUSH1 0x04
000002d9: DUP1
000002da: CALLDATASIZE
000002db: SUB
000002dc: PUSH1 0x40
000002de: DUP2
000002df: LT
000002e0: ISZERO
000002e1: PUSH2 0x02e9
000002e4: JUMPI
000002e5: PUSH1 0x00
000002e7: DUP1
000002e8: REVERT
000002e9: JUMPDEST
000002ea: DUP2
000002eb: ADD
000002ec: SWAP1
000002ed: DUP1
000002ee: DUP1
000002ef: CALLDATALOAD
000002f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000305: AND
00000306: SWAP1
00000307: PUSH1 0x20
00000309: ADD
0000030a: SWAP1
0000030b: SWAP3
0000030c: SWAP2
0000030d: SWAP1
0000030e: DUP1
0000030f: CALLDATALOAD
00000310: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000325: AND
00000326: SWAP1
00000327: PUSH1 0x20
00000329: ADD
0000032a: SWAP1
0000032b: SWAP3
0000032c: SWAP2
0000032d: SWAP1
0000032e: POP
0000032f: POP
00000330: POP
00000331: PUSH2 0x0a2b
00000334: JUMP
00000335: JUMPDEST
00000336: STOP
00000337: JUMPDEST
00000338: CALLVALUE
00000339: DUP1
0000033a: ISZERO
0000033b: PUSH2 0x0343
0000033e: JUMPI
0000033f: PUSH1 0x00
00000341: DUP1
00000342: REVERT
00000343: JUMPDEST
00000344: POP
00000345: PUSH2 0x034c
00000348: PUSH2 0x0d15
0000034b: JUMP
0000034c: JUMPDEST
0000034d: STOP
0000034e: JUMPDEST
0000034f: CALLVALUE
00000350: DUP1
00000351: ISZERO
00000352: PUSH2 0x035a
00000355: JUMPI
00000356: PUSH1 0x00
00000358: DUP1
00000359: REVERT
0000035a: JUMPDEST
0000035b: POP
0000035c: PUSH2 0x0363
0000035f: PUSH2 0x0d2e
00000362: JUMP
00000363: JUMPDEST
00000364: PUSH1 0x40
00000366: MLOAD
00000367: DUP1
00000368: DUP3
00000369: DUP2
0000036a: MSTORE
0000036b: PUSH1 0x20
0000036d: ADD
0000036e: SWAP2
0000036f: POP
00000370: POP
00000371: PUSH1 0x40
00000373: MLOAD
00000374: DUP1
00000375: SWAP2
00000376: SUB
00000377: SWAP1
00000378: RETURN
00000379: JUMPDEST
0000037a: CALLVALUE
0000037b: DUP1
0000037c: ISZERO
0000037d: PUSH2 0x0385
00000380: JUMPI
00000381: PUSH1 0x00
00000383: DUP1
00000384: REVERT
00000385: JUMPDEST
00000386: POP
00000387: PUSH2 0x03b2
0000038a: PUSH1 0x04
0000038c: DUP1
0000038d: CALLDATASIZE
0000038e: SUB
0000038f: PUSH1 0x20
00000391: DUP2
00000392: LT
00000393: ISZERO
00000394: PUSH2 0x039c
00000397: JUMPI
00000398: PUSH1 0x00
0000039a: DUP1
0000039b: REVERT
0000039c: JUMPDEST
0000039d: DUP2
0000039e: ADD
0000039f: SWAP1
000003a0: DUP1
000003a1: DUP1
000003a2: CALLDATALOAD
000003a3: SWAP1
000003a4: PUSH1 0x20
000003a6: ADD
000003a7: SWAP1
000003a8: SWAP3
000003a9: SWAP2
000003aa: SWAP1
000003ab: POP
000003ac: POP
000003ad: POP
000003ae: PUSH2 0x0d67
000003b1: JUMP
000003b2: JUMPDEST
000003b3: STOP
000003b4: JUMPDEST
000003b5: CALLVALUE
000003b6: DUP1
000003b7: ISZERO
000003b8: PUSH2 0x03c0
000003bb: JUMPI
000003bc: PUSH1 0x00
000003be: DUP1
000003bf: REVERT
000003c0: JUMPDEST
000003c1: POP
000003c2: PUSH2 0x03f7
000003c5: PUSH1 0x04
000003c7: DUP1
000003c8: CALLDATASIZE
000003c9: SUB
000003ca: PUSH1 0x40
000003cc: DUP2
000003cd: LT
000003ce: ISZERO
000003cf: PUSH2 0x03d7
000003d2: JUMPI
000003d3: PUSH1 0x00
000003d5: DUP1
000003d6: REVERT
000003d7: JUMPDEST
000003d8: DUP2
000003d9: ADD
000003da: SWAP1
000003db: DUP1
000003dc: DUP1
000003dd: CALLDATALOAD
000003de: SWAP1
000003df: PUSH1 0x20
000003e1: ADD
000003e2: SWAP1
000003e3: SWAP3
000003e4: SWAP2
000003e5: SWAP1
000003e6: DUP1
000003e7: CALLDATALOAD
000003e8: SWAP1
000003e9: PUSH1 0x20
000003eb: ADD
000003ec: SWAP1
000003ed: SWAP3
000003ee: SWAP2
000003ef: SWAP1
000003f0: POP
000003f1: POP
000003f2: POP
000003f3: PUSH2 0x0dda
000003f6: JUMP
000003f7: JUMPDEST
000003f8: PUSH1 0x40
000003fa: MLOAD
000003fb: DUP1
000003fc: DUP3
000003fd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000412: AND
00000413: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000428: AND
00000429: DUP2
0000042a: MSTORE
0000042b: PUSH1 0x20
0000042d: ADD
0000042e: SWAP2
0000042f: POP
00000430: POP
00000431: PUSH1 0x40
00000433: MLOAD
00000434: DUP1
00000435: SWAP2
00000436: SUB
00000437: SWAP1
00000438: RETURN
00000439: JUMPDEST
0000043a: CALLVALUE
0000043b: DUP1
0000043c: ISZERO
0000043d: PUSH2 0x0445
00000440: JUMPI
00000441: PUSH1 0x00
00000443: DUP1
00000444: REVERT
00000445: JUMPDEST
00000446: POP
00000447: PUSH2 0x0492
0000044a: PUSH1 0x04
0000044c: DUP1
0000044d: CALLDATASIZE
0000044e: SUB
0000044f: PUSH1 0x40
00000451: DUP2
00000452: LT
00000453: ISZERO
00000454: PUSH2 0x045c
00000457: JUMPI
00000458: PUSH1 0x00
0000045a: DUP1
0000045b: REVERT
0000045c: JUMPDEST
0000045d: DUP2
0000045e: ADD
0000045f: SWAP1
00000460: DUP1
00000461: DUP1
00000462: CALLDATALOAD
00000463: SWAP1
00000464: PUSH1 0x20
00000466: ADD
00000467: SWAP1
00000468: SWAP3
00000469: SWAP2
0000046a: SWAP1
0000046b: DUP1
0000046c: CALLDATALOAD
0000046d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000482: AND
00000483: SWAP1
00000484: PUSH1 0x20
00000486: ADD
00000487: SWAP1
00000488: SWAP3
00000489: SWAP2
0000048a: SWAP1
0000048b: POP
0000048c: POP
0000048d: POP
0000048e: PUSH2 0x0e0c
00000491: JUMP
00000492: JUMPDEST
00000493: PUSH1 0x40
00000495: MLOAD
00000496: DUP1
00000497: DUP3
00000498: ISZERO
00000499: ISZERO
0000049a: ISZERO
0000049b: ISZERO
0000049c: DUP2
0000049d: MSTORE
0000049e: PUSH1 0x20
000004a0: ADD
000004a1: SWAP2
000004a2: POP
000004a3: POP
000004a4: PUSH1 0x40
000004a6: MLOAD
000004a7: DUP1
000004a8: SWAP2
000004a9: SUB
000004aa: SWAP1
000004ab: RETURN
000004ac: JUMPDEST
000004ad: PUSH2 0x04d8
000004b0: PUSH1 0x04
000004b2: DUP1
000004b3: CALLDATASIZE
000004b4: SUB
000004b5: PUSH1 0x20
000004b7: DUP2
000004b8: LT
000004b9: ISZERO
000004ba: PUSH2 0x04c2
000004bd: JUMPI
000004be: PUSH1 0x00
000004c0: DUP1
000004c1: REVERT
000004c2: JUMPDEST
000004c3: DUP2
000004c4: ADD
000004c5: SWAP1
000004c6: DUP1
000004c7: DUP1
000004c8: CALLDATALOAD
000004c9: SWAP1
000004ca: PUSH1 0x20
000004cc: ADD
000004cd: SWAP1
000004ce: SWAP3
000004cf: SWAP2
000004d0: SWAP1
000004d1: POP
000004d2: POP
000004d3: POP
000004d4: PUSH2 0x0e3e
000004d7: JUMP
000004d8: JUMPDEST
000004d9: PUSH1 0x40
000004db: MLOAD
000004dc: DUP1
000004dd: DUP3
000004de: DUP2
000004df: MSTORE
000004e0: PUSH1 0x20
000004e2: ADD
000004e3: SWAP2
000004e4: POP
000004e5: POP
000004e6: PUSH1 0x40
000004e8: MLOAD
000004e9: DUP1
000004ea: SWAP2
000004eb: SUB
000004ec: SWAP1
000004ed: RETURN
000004ee: JUMPDEST
000004ef: CALLVALUE
000004f0: DUP1
000004f1: ISZERO
000004f2: PUSH2 0x04fa
000004f5: JUMPI
000004f6: PUSH1 0x00
000004f8: DUP1
000004f9: REVERT
000004fa: JUMPDEST
000004fb: POP
000004fc: PUSH2 0x0503
000004ff: PUSH2 0x0fb5
00000502: JUMP
00000503: JUMPDEST
00000504: PUSH1 0x40
00000506: MLOAD
00000507: DUP1
00000508: DUP3
00000509: DUP2
0000050a: MSTORE
0000050b: PUSH1 0x20
0000050d: ADD
0000050e: SWAP2
0000050f: POP
00000510: POP
00000511: PUSH1 0x40
00000513: MLOAD
00000514: DUP1
00000515: SWAP2
00000516: SUB
00000517: SWAP1
00000518: RETURN
00000519: JUMPDEST
0000051a: CALLVALUE
0000051b: DUP1
0000051c: ISZERO
0000051d: PUSH2 0x0525
00000520: JUMPI
00000521: PUSH1 0x00
00000523: DUP1
00000524: REVERT
00000525: JUMPDEST
00000526: POP
00000527: PUSH2 0x0552
0000052a: PUSH1 0x04
0000052c: DUP1
0000052d: CALLDATASIZE
0000052e: SUB
0000052f: PUSH1 0x20
00000531: DUP2
00000532: LT
00000533: ISZERO
00000534: PUSH2 0x053c
00000537: JUMPI
00000538: PUSH1 0x00
0000053a: DUP1
0000053b: REVERT
0000053c: JUMPDEST
0000053d: DUP2
0000053e: ADD
0000053f: SWAP1
00000540: DUP1
00000541: DUP1
00000542: CALLDATALOAD
00000543: SWAP1
00000544: PUSH1 0x20
00000546: ADD
00000547: SWAP1
00000548: SWAP3
00000549: SWAP2
0000054a: SWAP1
0000054b: POP
0000054c: POP
0000054d: POP
0000054e: PUSH2 0x0fbc
00000551: JUMP
00000552: JUMPDEST
00000553: PUSH1 0x40
00000555: MLOAD
00000556: DUP1
00000557: DUP3
00000558: DUP2
00000559: MSTORE
0000055a: PUSH1 0x20
0000055c: ADD
0000055d: SWAP2
0000055e: POP
0000055f: POP
00000560: PUSH1 0x40
00000562: MLOAD
00000563: DUP1
00000564: SWAP2
00000565: SUB
00000566: SWAP1
00000567: RETURN
00000568: JUMPDEST
00000569: CALLVALUE
0000056a: DUP1
0000056b: ISZERO
0000056c: PUSH2 0x0574
0000056f: JUMPI
00000570: PUSH1 0x00
00000572: DUP1
00000573: REVERT
00000574: JUMPDEST
00000575: POP
00000576: PUSH2 0x05a1
00000579: PUSH1 0x04
0000057b: DUP1
0000057c: CALLDATASIZE
0000057d: SUB
0000057e: PUSH1 0x20
00000580: DUP2
00000581: LT
00000582: ISZERO
00000583: PUSH2 0x058b
00000586: JUMPI
00000587: PUSH1 0x00
00000589: DUP1
0000058a: REVERT
0000058b: JUMPDEST
0000058c: DUP2
0000058d: ADD
0000058e: SWAP1
0000058f: DUP1
00000590: DUP1
00000591: CALLDATALOAD
00000592: SWAP1
00000593: PUSH1 0x20
00000595: ADD
00000596: SWAP1
00000597: SWAP3
00000598: SWAP2
00000599: SWAP1
0000059a: POP
0000059b: POP
0000059c: POP
0000059d: PUSH2 0x1374
000005a0: JUMP
000005a1: JUMPDEST
000005a2: PUSH1 0x40
000005a4: MLOAD
000005a5: DUP1
000005a6: DUP3
000005a7: DUP2
000005a8: MSTORE
000005a9: PUSH1 0x20
000005ab: ADD
000005ac: SWAP2
000005ad: POP
000005ae: POP
000005af: PUSH1 0x40
000005b1: MLOAD
000005b2: DUP1
000005b3: SWAP2
000005b4: SUB
000005b5: SWAP1
000005b6: RETURN
000005b7: JUMPDEST
000005b8: CALLVALUE
000005b9: DUP1
000005ba: ISZERO
000005bb: PUSH2 0x05c3
000005be: JUMPI
000005bf: PUSH1 0x00
000005c1: DUP1
000005c2: REVERT
000005c3: JUMPDEST
000005c4: POP
000005c5: PUSH2 0x05f0
000005c8: PUSH1 0x04
000005ca: DUP1
000005cb: CALLDATASIZE
000005cc: SUB
000005cd: PUSH1 0x20
000005cf: DUP2
000005d0: LT
000005d1: ISZERO
000005d2: PUSH2 0x05da
000005d5: JUMPI
000005d6: PUSH1 0x00
000005d8: DUP1
000005d9: REVERT
000005da: JUMPDEST
000005db: DUP2
000005dc: ADD
000005dd: SWAP1
000005de: DUP1
000005df: DUP1
000005e0: CALLDATALOAD
000005e1: SWAP1
000005e2: PUSH1 0x20
000005e4: ADD
000005e5: SWAP1
000005e6: SWAP3
000005e7: SWAP2
000005e8: SWAP1
000005e9: POP
000005ea: POP
000005eb: POP
000005ec: PUSH2 0x1446
000005ef: JUMP
000005f0: JUMPDEST
000005f1: PUSH1 0x40
000005f3: MLOAD
000005f4: DUP1
000005f5: DUP3
000005f6: DUP2
000005f7: MSTORE
000005f8: PUSH1 0x20
000005fa: ADD
000005fb: SWAP2
000005fc: POP
000005fd: POP
000005fe: PUSH1 0x40
00000600: MLOAD
00000601: DUP1
00000602: SWAP2
00000603: SUB
00000604: SWAP1
00000605: RETURN
00000606: JUMPDEST
00000607: CALLVALUE
00000608: DUP1
00000609: ISZERO
0000060a: PUSH2 0x0612
0000060d: JUMPI
0000060e: PUSH1 0x00
00000610: DUP1
00000611: REVERT
00000612: JUMPDEST
00000613: POP
00000614: PUSH2 0x063f
00000617: PUSH1 0x04
00000619: DUP1
0000061a: CALLDATASIZE
0000061b: SUB
0000061c: PUSH1 0x20
0000061e: DUP2
0000061f: LT
00000620: ISZERO
00000621: PUSH2 0x0629
00000624: JUMPI
00000625: PUSH1 0x00
00000627: DUP1
00000628: REVERT
00000629: JUMPDEST
0000062a: DUP2
0000062b: ADD
0000062c: SWAP1
0000062d: DUP1
0000062e: DUP1
0000062f: CALLDATALOAD
00000630: SWAP1
00000631: PUSH1 0x20
00000633: ADD
00000634: SWAP1
00000635: SWAP3
00000636: SWAP2
00000637: SWAP1
00000638: POP
00000639: POP
0000063a: POP
0000063b: PUSH2 0x15da
0000063e: JUMP
0000063f: JUMPDEST
00000640: PUSH1 0x40
00000642: MLOAD
00000643: DUP1
00000644: DUP3
00000645: DUP2
00000646: MSTORE
00000647: PUSH1 0x20
00000649: ADD
0000064a: SWAP2
0000064b: POP
0000064c: POP
0000064d: PUSH1 0x40
0000064f: MLOAD
00000650: DUP1
00000651: SWAP2
00000652: SUB
00000653: SWAP1
00000654: RETURN
00000655: JUMPDEST
00000656: CALLVALUE
00000657: DUP1
00000658: ISZERO
00000659: PUSH2 0x0661
0000065c: JUMPI
0000065d: PUSH1 0x00
0000065f: DUP1
00000660: REVERT
00000661: JUMPDEST
00000662: POP
00000663: PUSH2 0x066a
00000666: PUSH2 0x1601
00000669: JUMP
0000066a: JUMPDEST
0000066b: PUSH1 0x40
0000066d: MLOAD
0000066e: DUP1
0000066f: DUP3
00000670: DUP2
00000671: MSTORE
00000672: PUSH1 0x20
00000674: ADD
00000675: SWAP2
00000676: POP
00000677: POP
00000678: PUSH1 0x40
0000067a: MLOAD
0000067b: DUP1
0000067c: SWAP2
0000067d: SUB
0000067e: SWAP1
0000067f: RETURN
00000680: JUMPDEST
00000681: CALLVALUE
00000682: DUP1
00000683: ISZERO
00000684: PUSH2 0x068c
00000687: JUMPI
00000688: PUSH1 0x00
0000068a: DUP1
0000068b: REVERT
0000068c: JUMPDEST
0000068d: POP
0000068e: PUSH2 0x06d9
00000691: PUSH1 0x04
00000693: DUP1
00000694: CALLDATASIZE
00000695: SUB
00000696: PUSH1 0x40
00000698: DUP2
00000699: LT
0000069a: ISZERO
0000069b: PUSH2 0x06a3
0000069e: JUMPI
0000069f: PUSH1 0x00
000006a1: DUP1
000006a2: REVERT
000006a3: JUMPDEST
000006a4: DUP2
000006a5: ADD
000006a6: SWAP1
000006a7: DUP1
000006a8: DUP1
000006a9: CALLDATALOAD
000006aa: SWAP1
000006ab: PUSH1 0x20
000006ad: ADD
000006ae: SWAP1
000006af: SWAP3
000006b0: SWAP2
000006b1: SWAP1
000006b2: DUP1
000006b3: CALLDATALOAD
000006b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006c9: AND
000006ca: SWAP1
000006cb: PUSH1 0x20
000006cd: ADD
000006ce: SWAP1
000006cf: SWAP3
000006d0: SWAP2
000006d1: SWAP1
000006d2: POP
000006d3: POP
000006d4: POP
000006d5: PUSH2 0x1607
000006d8: JUMP
000006d9: JUMPDEST
000006da: STOP
000006db: JUMPDEST
000006dc: PUSH2 0x06e3
000006df: PUSH2 0x1691
000006e2: JUMP
000006e3: JUMPDEST
000006e4: STOP
000006e5: JUMPDEST
000006e6: CALLVALUE
000006e7: DUP1
000006e8: ISZERO
000006e9: PUSH2 0x06f1
000006ec: JUMPI
000006ed: PUSH1 0x00
000006ef: DUP1
000006f0: REVERT
000006f1: JUMPDEST
000006f2: POP
000006f3: PUSH2 0x06fa
000006f6: PUSH2 0x16ae
000006f9: JUMP
000006fa: JUMPDEST
000006fb: STOP
000006fc: JUMPDEST
000006fd: CALLVALUE
000006fe: DUP1
000006ff: ISZERO
00000700: PUSH2 0x0708
00000703: JUMPI
00000704: PUSH1 0x00
00000706: DUP1
00000707: REVERT
00000708: JUMPDEST
00000709: POP
0000070a: PUSH2 0x0711
0000070d: PUSH2 0x1792
00000710: JUMP
00000711: JUMPDEST
00000712: PUSH1 0x40
00000714: MLOAD
00000715: DUP1
00000716: DUP3
00000717: DUP2
00000718: MSTORE
00000719: PUSH1 0x20
0000071b: ADD
0000071c: SWAP2
0000071d: POP
0000071e: POP
0000071f: PUSH1 0x40
00000721: MLOAD
00000722: DUP1
00000723: SWAP2
00000724: SUB
00000725: SWAP1
00000726: RETURN
00000727: JUMPDEST
00000728: CALLVALUE
00000729: DUP1
0000072a: ISZERO
0000072b: PUSH2 0x0733
0000072e: JUMPI
0000072f: PUSH1 0x00
00000731: DUP1
00000732: REVERT
00000733: JUMPDEST
00000734: POP
00000735: PUSH2 0x0776
00000738: PUSH1 0x04
0000073a: DUP1
0000073b: CALLDATASIZE
0000073c: SUB
0000073d: PUSH1 0x20
0000073f: DUP2
00000740: LT
00000741: ISZERO
00000742: PUSH2 0x074a
00000745: JUMPI
00000746: PUSH1 0x00
00000748: DUP1
00000749: REVERT
0000074a: JUMPDEST
0000074b: DUP2
0000074c: ADD
0000074d: SWAP1
0000074e: DUP1
0000074f: DUP1
00000750: CALLDATALOAD
00000751: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000766: AND
00000767: SWAP1
00000768: PUSH1 0x20
0000076a: ADD
0000076b: SWAP1
0000076c: SWAP3
0000076d: SWAP2
0000076e: SWAP1
0000076f: POP
00000770: POP
00000771: POP
00000772: PUSH2 0x17cb
00000775: JUMP
00000776: JUMPDEST
00000777: PUSH1 0x40
00000779: MLOAD
0000077a: DUP1
0000077b: DUP3
0000077c: ISZERO
0000077d: ISZERO
0000077e: ISZERO
0000077f: ISZERO
00000780: DUP2
00000781: MSTORE
00000782: PUSH1 0x20
00000784: ADD
00000785: SWAP2
00000786: POP
00000787: POP
00000788: PUSH1 0x40
0000078a: MLOAD
0000078b: DUP1
0000078c: SWAP2
0000078d: SUB
0000078e: SWAP1
0000078f: RETURN
00000790: JUMPDEST
00000791: CALLVALUE
00000792: DUP1
00000793: ISZERO
00000794: PUSH2 0x079c
00000797: JUMPI
00000798: PUSH1 0x00
0000079a: DUP1
0000079b: REVERT
0000079c: JUMPDEST
0000079d: POP
0000079e: PUSH2 0x07a5
000007a1: PUSH2 0x18b0
000007a4: JUMP
000007a5: JUMPDEST
000007a6: PUSH1 0x40
000007a8: MLOAD
000007a9: DUP1
000007aa: DUP3
000007ab: DUP2
000007ac: MSTORE
000007ad: PUSH1 0x20
000007af: ADD
000007b0: SWAP2
000007b1: POP
000007b2: POP
000007b3: PUSH1 0x40
000007b5: MLOAD
000007b6: DUP1
000007b7: SWAP2
000007b8: SUB
000007b9: SWAP1
000007ba: RETURN
000007bb: JUMPDEST
000007bc: CALLVALUE
000007bd: DUP1
000007be: ISZERO
000007bf: PUSH2 0x07c7
000007c2: JUMPI
000007c3: PUSH1 0x00
000007c5: DUP1
000007c6: REVERT
000007c7: JUMPDEST
000007c8: POP
000007c9: PUSH2 0x07d0
000007cc: PUSH2 0x18b6
000007cf: JUMP
000007d0: JUMPDEST
000007d1: PUSH1 0x40
000007d3: MLOAD
000007d4: DUP1
000007d5: DUP3
000007d6: DUP2
000007d7: MSTORE
000007d8: PUSH1 0x20
000007da: ADD
000007db: SWAP2
000007dc: POP
000007dd: POP
000007de: PUSH1 0x40
000007e0: MLOAD
000007e1: DUP1
000007e2: SWAP2
000007e3: SUB
000007e4: SWAP1
000007e5: RETURN
000007e6: JUMPDEST
000007e7: PUSH1 0x99
000007e9: SLOAD
000007ea: DUP2
000007eb: JUMP
000007ec: JUMPDEST
000007ed: PUSH1 0x00
000007ef: PUSH1 0x65
000007f1: PUSH1 0x00
000007f3: DUP4
000007f4: DUP2
000007f5: MSTORE
000007f6: PUSH1 0x20
000007f8: ADD
000007f9: SWAP1
000007fa: DUP2
000007fb: MSTORE
000007fc: PUSH1 0x20
000007fe: ADD
000007ff: PUSH1 0x00
00000801: KECCAK256
00000802: PUSH1 0x02
00000804: ADD
00000805: SLOAD
00000806: SWAP1
00000807: POP
00000808: SWAP2
00000809: SWAP1
0000080a: POP
0000080b: JUMP
0000080c: JUMPDEST
0000080d: PUSH1 0x00
0000080f: PUSH2 0x0903
00000812: PUSH2 0x0827
00000815: PUSH1 0xc8
00000817: PUSH1 0x9a
00000819: SLOAD
0000081a: PUSH2 0x18ef
0000081d: SWAP1
0000081e: SWAP2
0000081f: SWAP1
00000820: PUSH4 0xffffffff
00000825: AND
00000826: JUMP
00000827: JUMPDEST
00000828: PUSH2 0x08f5
0000082b: PUSH1 0x97
0000082d: PUSH1 0x00
0000082f: SWAP1
00000830: SLOAD
00000831: SWAP1
00000832: PUSH2 0x0100
00000835: EXP
00000836: SWAP1
00000837: DIV
00000838: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000084d: AND
0000084e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000863: AND
00000864: PUSH4 0x18160ddd
00000869: PUSH1 0x40
0000086b: MLOAD
0000086c: DUP2
0000086d: PUSH4 0xffffffff
00000872: AND
00000873: PUSH1 0xe0
00000875: SHL
00000876: DUP2
00000877: MSTORE
00000878: PUSH1 0x04
0000087a: ADD
0000087b: PUSH1 0x20
0000087d: PUSH1 0x40
0000087f: MLOAD
00000880: DUP1
00000881: DUP4
00000882: SUB
00000883: DUP2
00000884: DUP7
00000885: DUP1
00000886: EXTCODESIZE
00000887: ISZERO
00000888: DUP1
00000889: ISZERO
0000088a: PUSH2 0x0892
0000088d: JUMPI
0000088e: PUSH1 0x00
00000890: DUP1
00000891: REVERT
00000892: JUMPDEST
00000893: POP
00000894: GAS
00000895: STATICCALL
00000896: ISZERO
00000897: DUP1
00000898: ISZERO
00000899: PUSH2 0x08a6
0000089c: JUMPI
0000089d: RETURNDATASIZE
0000089e: PUSH1 0x00
000008a0: DUP1
000008a1: RETURNDATACOPY
000008a2: RETURNDATASIZE
000008a3: PUSH1 0x00
000008a5: REVERT
000008a6: JUMPDEST
000008a7: POP
000008a8: POP
000008a9: POP
000008aa: POP
000008ab: PUSH1 0x40
000008ad: MLOAD
000008ae: RETURNDATASIZE
000008af: PUSH1 0x20
000008b1: DUP2
000008b2: LT
000008b3: ISZERO
000008b4: PUSH2 0x08bc
000008b7: JUMPI
000008b8: PUSH1 0x00
000008ba: DUP1
000008bb: REVERT
000008bc: JUMPDEST
000008bd: DUP2
000008be: ADD
000008bf: SWAP1
000008c0: DUP1
000008c1: DUP1
000008c2: MLOAD
000008c3: SWAP1
000008c4: PUSH1 0x20
000008c6: ADD
000008c7: SWAP1
000008c8: SWAP3
000008c9: SWAP2
000008ca: SWAP1
000008cb: POP
000008cc: POP
000008cd: POP
000008ce: PUSH2 0x08e7
000008d1: PUSH1 0x98
000008d3: SLOAD
000008d4: PUSH1 0x64
000008d6: SUB
000008d7: PUSH1 0x99
000008d9: SLOAD
000008da: PUSH2 0x18ef
000008dd: SWAP1
000008de: SWAP2
000008df: SWAP1
000008e0: PUSH4 0xffffffff
000008e5: AND
000008e6: JUMP
000008e7: JUMPDEST
000008e8: PUSH2 0x18ef
000008eb: SWAP1
000008ec: SWAP2
000008ed: SWAP1
000008ee: PUSH4 0xffffffff
000008f3: AND
000008f4: JUMP
000008f5: JUMPDEST
000008f6: PUSH2 0x1975
000008f9: SWAP1
000008fa: SWAP2
000008fb: SWAP1
000008fc: PUSH4 0xffffffff
00000901: AND
00000902: JUMP
00000903: JUMPDEST
00000904: SWAP1
00000905: POP
00000906: SWAP1
00000907: JUMP
00000908: JUMPDEST
00000909: PUSH2 0x092f
0000090c: PUSH1 0x65
0000090e: PUSH1 0x00
00000910: DUP5
00000911: DUP2
00000912: MSTORE
00000913: PUSH1 0x20
00000915: ADD
00000916: SWAP1
00000917: DUP2
00000918: MSTORE
00000919: PUSH1 0x20
0000091b: ADD
0000091c: PUSH1 0x00
0000091e: KECCAK256
0000091f: PUSH1 0x02
00000921: ADD
00000922: SLOAD
00000923: PUSH2 0x092a
00000926: PUSH2 0x19bf
00000929: JUMP
0000092a: JUMPDEST
0000092b: PUSH2 0x0e0c
0000092e: JUMP
0000092f: JUMPDEST
00000930: PUSH2 0x0984
00000933: JUMPI
00000934: PUSH1 0x40
00000936: MLOAD
00000937: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000958: DUP2
00000959: MSTORE
0000095a: PUSH1 0x04
0000095c: ADD
0000095d: DUP1
0000095e: DUP1
0000095f: PUSH1 0x20
00000961: ADD
00000962: DUP3
00000963: DUP2
00000964: SUB
00000965: DUP3
00000966: MSTORE
00000967: PUSH1 0x2f
00000969: DUP2
0000096a: MSTORE
0000096b: PUSH1 0x20
0000096d: ADD
0000096e: DUP1
0000096f: PUSH2 0x207c
00000972: PUSH1 0x2f
00000974: SWAP2
00000975: CODECOPY
00000976: PUSH1 0x40
00000978: ADD
00000979: SWAP2
0000097a: POP
0000097b: POP
0000097c: PUSH1 0x40
0000097e: MLOAD
0000097f: DUP1
00000980: SWAP2
00000981: SUB
00000982: SWAP1
00000983: REVERT
00000984: JUMPDEST
00000985: PUSH2 0x098e
00000988: DUP3
00000989: DUP3
0000098a: PUSH2 0x19c7
0000098d: JUMP
0000098e: JUMPDEST
0000098f: POP
00000990: POP
00000991: JUMP
00000992: JUMPDEST
00000993: PUSH2 0x099a
00000996: PUSH2 0x19bf
00000999: JUMP
0000099a: JUMPDEST
0000099b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009b0: AND
000009b1: DUP2
000009b2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009c7: AND
000009c8: EQ
000009c9: PUSH2 0x0a1d
000009cc: JUMPI
000009cd: PUSH1 0x40
000009cf: MLOAD
000009d0: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000009f1: DUP2
000009f2: MSTORE
000009f3: PUSH1 0x04
000009f5: ADD
000009f6: DUP1
000009f7: DUP1
000009f8: PUSH1 0x20
000009fa: ADD
000009fb: DUP3
000009fc: DUP2
000009fd: SUB
000009fe: DUP3
000009ff: MSTORE
00000a00: PUSH1 0x2f
00000a02: DUP2
00000a03: MSTORE
00000a04: PUSH1 0x20
00000a06: ADD
00000a07: DUP1
00000a08: PUSH2 0x21ad
00000a0b: PUSH1 0x2f
00000a0d: SWAP2
00000a0e: CODECOPY
00000a0f: PUSH1 0x40
00000a11: ADD
00000a12: SWAP2
00000a13: POP
00000a14: POP
00000a15: PUSH1 0x40
00000a17: MLOAD
00000a18: DUP1
00000a19: SWAP2
00000a1a: SUB
00000a1b: SWAP1
00000a1c: REVERT
00000a1d: JUMPDEST
00000a1e: PUSH2 0x0a27
00000a21: DUP3
00000a22: DUP3
00000a23: PUSH2 0x1a5b
00000a26: JUMP
00000a27: JUMPDEST
00000a28: POP
00000a29: POP
00000a2a: JUMP
00000a2b: JUMPDEST
00000a2c: PUSH1 0x00
00000a2e: PUSH1 0x01
00000a30: SWAP1
00000a31: SLOAD
00000a32: SWAP1
00000a33: PUSH2 0x0100
00000a36: EXP
00000a37: SWAP1
00000a38: DIV
00000a39: PUSH1 0xff
00000a3b: AND
00000a3c: DUP1
00000a3d: PUSH2 0x0a4a
00000a40: JUMPI
00000a41: POP
00000a42: PUSH2 0x0a49
00000a45: PUSH2 0x1aef
00000a48: JUMP
00000a49: JUMPDEST
00000a4a: JUMPDEST
00000a4b: DUP1
00000a4c: PUSH2 0x0a61
00000a4f: JUMPI
00000a50: POP
00000a51: PUSH1 0x00
00000a53: DUP1
00000a54: SWAP1
00000a55: SLOAD
00000a56: SWAP1
00000a57: PUSH2 0x0100
00000a5a: EXP
00000a5b: SWAP1
00000a5c: DIV
00000a5d: PUSH1 0xff
00000a5f: AND
00000a60: ISZERO
00000a61: JUMPDEST
00000a62: PUSH2 0x0ab6
00000a65: JUMPI
00000a66: PUSH1 0x40
00000a68: MLOAD
00000a69: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000a8a: DUP2
00000a8b: MSTORE
00000a8c: PUSH1 0x04
00000a8e: ADD
00000a8f: DUP1
00000a90: DUP1
00000a91: PUSH1 0x20
00000a93: ADD
00000a94: DUP3
00000a95: DUP2
00000a96: SUB
00000a97: DUP3
00000a98: MSTORE
00000a99: PUSH1 0x2e
00000a9b: DUP2
00000a9c: MSTORE
00000a9d: PUSH1 0x20
00000a9f: ADD
00000aa0: DUP1
00000aa1: PUSH2 0x2127
00000aa4: PUSH1 0x2e
00000aa6: SWAP2
00000aa7: CODECOPY
00000aa8: PUSH1 0x40
00000aaa: ADD
00000aab: SWAP2
00000aac: POP
00000aad: POP
00000aae: PUSH1 0x40
00000ab0: MLOAD
00000ab1: DUP1
00000ab2: SWAP2
00000ab3: SUB
00000ab4: SWAP1
00000ab5: REVERT
00000ab6: JUMPDEST
00000ab7: PUSH1 0x00
00000ab9: DUP1
00000aba: PUSH1 0x01
00000abc: SWAP1
00000abd: SLOAD
00000abe: SWAP1
00000abf: PUSH2 0x0100
00000ac2: EXP
00000ac3: SWAP1
00000ac4: DIV
00000ac5: PUSH1 0xff
00000ac7: AND
00000ac8: ISZERO
00000ac9: SWAP1
00000aca: POP
00000acb: DUP1
00000acc: ISZERO
00000acd: PUSH2 0x0b06
00000ad0: JUMPI
00000ad1: PUSH1 0x01
00000ad3: PUSH1 0x00
00000ad5: PUSH1 0x01
00000ad7: PUSH2 0x0100
00000ada: EXP
00000adb: DUP2
00000adc: SLOAD
00000add: DUP2
00000ade: PUSH1 0xff
00000ae0: MUL
00000ae1: NOT
00000ae2: AND
00000ae3: SWAP1
00000ae4: DUP4
00000ae5: ISZERO
00000ae6: ISZERO
00000ae7: MUL
00000ae8: OR
00000ae9: SWAP1
00000aea: SSTORE
00000aeb: POP
00000aec: PUSH1 0x01
00000aee: PUSH1 0x00
00000af0: DUP1
00000af1: PUSH2 0x0100
00000af4: EXP
00000af5: DUP2
00000af6: SLOAD
00000af7: DUP2
00000af8: PUSH1 0xff
00000afa: MUL
00000afb: NOT
00000afc: AND
00000afd: SWAP1
00000afe: DUP4
00000aff: ISZERO
00000b00: ISZERO
00000b01: MUL
00000b02: OR
00000b03: SWAP1
00000b04: SSTORE
00000b05: POP
00000b06: JUMPDEST
00000b07: DUP3
00000b08: PUSH1 0x97
00000b0a: PUSH1 0x00
00000b0c: PUSH2 0x0100
00000b0f: EXP
00000b10: DUP2
00000b11: SLOAD
00000b12: DUP2
00000b13: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b28: MUL
00000b29: NOT
00000b2a: AND
00000b2b: SWAP1
00000b2c: DUP4
00000b2d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b42: AND
00000b43: MUL
00000b44: OR
00000b45: SWAP1
00000b46: SSTORE
00000b47: POP
00000b48: PUSH1 0x00
00000b4a: PUSH1 0x9a
00000b4c: DUP2
00000b4d: SWAP1
00000b4e: SSTORE
00000b4f: POP
00000b50: PUSH2 0x0b57
00000b53: PUSH2 0x0d15
00000b56: JUMP
00000b57: JUMPDEST
00000b58: PUSH2 0x0b64
00000b5b: PUSH1 0x00
00000b5d: DUP1
00000b5e: SHL
00000b5f: DUP4
00000b60: PUSH2 0x1b06
00000b63: JUMP
00000b64: JUMPDEST
00000b65: PUSH2 0x0b78
00000b68: PUSH1 0x00
00000b6a: DUP1
00000b6b: SHL
00000b6c: PUSH2 0x0b73
00000b6f: PUSH2 0x19bf
00000b72: JUMP
00000b73: JUMPDEST
00000b74: PUSH2 0x1b06
00000b77: JUMP
00000b78: JUMPDEST
00000b79: PUSH2 0x0bb7
00000b7c: PUSH1 0x40
00000b7e: MLOAD
00000b7f: DUP1
00000b80: DUP1
00000b81: PUSH32 0x534f4c5645520000000000000000000000000000000000000000000000000000
00000ba2: DUP2
00000ba3: MSTORE
00000ba4: POP
00000ba5: PUSH1 0x06
00000ba7: ADD
00000ba8: SWAP1
00000ba9: POP
00000baa: PUSH1 0x40
00000bac: MLOAD
00000bad: DUP1
00000bae: SWAP2
00000baf: SUB
00000bb0: SWAP1
00000bb1: KECCAK256
00000bb2: DUP4
00000bb3: PUSH2 0x1b06
00000bb6: JUMP
00000bb7: JUMPDEST
00000bb8: PUSH2 0x0bf6
00000bbb: PUSH1 0x40
00000bbd: MLOAD
00000bbe: DUP1
00000bbf: DUP1
00000bc0: PUSH32 0x534f4c5645525f41444d494e0000000000000000000000000000000000000000
00000be1: DUP2
00000be2: MSTORE
00000be3: POP
00000be4: PUSH1 0x0c
00000be6: ADD
00000be7: SWAP1
00000be8: POP
00000be9: PUSH1 0x40
00000beb: MLOAD
00000bec: DUP1
00000bed: SWAP2
00000bee: SUB
00000bef: SWAP1
00000bf0: KECCAK256
00000bf1: DUP4
00000bf2: PUSH2 0x1b06
00000bf5: JUMP
00000bf6: JUMPDEST
00000bf7: PUSH2 0x0c35
00000bfa: PUSH1 0x40
00000bfc: MLOAD
00000bfd: DUP1
00000bfe: DUP1
00000bff: PUSH32 0x495046535f41444d494e00000000000000000000000000000000000000000000
00000c20: DUP2
00000c21: MSTORE
00000c22: POP
00000c23: PUSH1 0x0a
00000c25: ADD
00000c26: SWAP1
00000c27: POP
00000c28: PUSH1 0x40
00000c2a: MLOAD
00000c2b: DUP1
00000c2c: SWAP2
00000c2d: SUB
00000c2e: SWAP1
00000c2f: KECCAK256
00000c30: DUP4
00000c31: PUSH2 0x1b06
00000c34: JUMP
00000c35: JUMPDEST
00000c36: PUSH2 0x0c7b
00000c39: PUSH1 0x40
00000c3b: MLOAD
00000c3c: DUP1
00000c3d: DUP1
00000c3e: PUSH32 0x495046535f41444d494e00000000000000000000000000000000000000000000
00000c5f: DUP2
00000c60: MSTORE
00000c61: POP
00000c62: PUSH1 0x0a
00000c64: ADD
00000c65: SWAP1
00000c66: POP
00000c67: PUSH1 0x40
00000c69: MLOAD
00000c6a: DUP1
00000c6b: SWAP2
00000c6c: SUB
00000c6d: SWAP1
00000c6e: KECCAK256
00000c6f: PUSH2 0x0c76
00000c72: PUSH2 0x19bf
00000c75: JUMP
00000c76: JUMPDEST
00000c77: PUSH2 0x1b06
00000c7a: JUMP
00000c7b: JUMPDEST
00000c7c: PUSH2 0x0cef
00000c7f: PUSH1 0x40
00000c81: MLOAD
00000c82: DUP1
00000c83: DUP1
00000c84: PUSH32 0x534f4c5645520000000000000000000000000000000000000000000000000000
00000ca5: DUP2
00000ca6: MSTORE
00000ca7: POP
00000ca8: PUSH1 0x06
00000caa: ADD
00000cab: SWAP1
00000cac: POP
00000cad: PUSH1 0x40
00000caf: MLOAD
00000cb0: DUP1
00000cb1: SWAP2
00000cb2: SUB
00000cb3: SWAP1
00000cb4: KECCAK256
00000cb5: PUSH1 0x40
00000cb7: MLOAD
00000cb8: DUP1
00000cb9: DUP1
00000cba: PUSH32 0x534f4c5645525f41444d494e0000000000000000000000000000000000000000
00000cdb: DUP2
00000cdc: MSTORE
00000cdd: POP
00000cde: PUSH1 0x0c
00000ce0: ADD
00000ce1: SWAP1
00000ce2: POP
00000ce3: PUSH1 0x40
00000ce5: MLOAD
00000ce6: DUP1
00000ce7: SWAP2
00000ce8: SUB
00000ce9: SWAP1
00000cea: KECCAK256
00000ceb: PUSH2 0x1b14
00000cee: JUMP
00000cef: JUMPDEST
00000cf0: DUP1
00000cf1: ISZERO
00000cf2: PUSH2 0x0d10
00000cf5: JUMPI
00000cf6: PUSH1 0x00
00000cf8: DUP1
00000cf9: PUSH1 0x01
00000cfb: PUSH2 0x0100
00000cfe: EXP
00000cff: DUP2
00000d00: SLOAD
00000d01: DUP2
00000d02: PUSH1 0xff
00000d04: MUL
00000d05: NOT
00000d06: AND
00000d07: SWAP1
00000d08: DUP4
00000d09: ISZERO
00000d0a: ISZERO
00000d0b: MUL
00000d0c: OR
00000d0d: SWAP1
00000d0e: SSTORE
00000d0f: POP
00000d10: JUMPDEST
00000d11: POP
00000d12: POP
00000d13: POP
00000d14: JUMP
00000d15: JUMPDEST
00000d16: PUSH1 0x4b
00000d18: PUSH1 0x98
00000d1a: DUP2
00000d1b: SWAP1
00000d1c: SSTORE
00000d1d: POP
00000d1e: PUSH8 0x02c68af0bb140000
00000d27: PUSH1 0x99
00000d29: DUP2
00000d2a: SWAP1
00000d2b: SSTORE
00000d2c: POP
00000d2d: JUMP
00000d2e: JUMPDEST
00000d2f: PUSH1 0x40
00000d31: MLOAD
00000d32: DUP1
00000d33: DUP1
00000d34: PUSH32 0x534f4c5645520000000000000000000000000000000000000000000000000000
00000d55: DUP2
00000d56: MSTORE
00000d57: POP
00000d58: PUSH1 0x06
00000d5a: ADD
00000d5b: SWAP1
00000d5c: POP
00000d5d: PUSH1 0x40
00000d5f: MLOAD
00000d60: DUP1
00000d61: SWAP2
00000d62: SUB
00000d63: SWAP1
00000d64: KECCAK256
00000d65: DUP2
00000d66: JUMP
00000d67: JUMPDEST
00000d68: PUSH2 0x0d7b
00000d6b: PUSH1 0x00
00000d6d: DUP1
00000d6e: SHL
00000d6f: PUSH2 0x0d76
00000d72: PUSH2 0x19bf
00000d75: JUMP
00000d76: JUMPDEST
00000d77: PUSH2 0x0e0c
00000d7a: JUMP
00000d7b: JUMPDEST
00000d7c: PUSH2 0x0dd0
00000d7f: JUMPI
00000d80: PUSH1 0x40
00000d82: MLOAD
00000d83: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000da4: DUP2
00000da5: MSTORE
00000da6: PUSH1 0x04
00000da8: ADD
00000da9: DUP1
00000daa: DUP1
00000dab: PUSH1 0x20
00000dad: ADD
00000dae: DUP3
00000daf: DUP2
00000db0: SUB
00000db1: DUP3
00000db2: MSTORE
00000db3: PUSH1 0x2b
00000db5: DUP2
00000db6: MSTORE
00000db7: PUSH1 0x20
00000db9: ADD
00000dba: DUP1
00000dbb: PUSH2 0x20ab
00000dbe: PUSH1 0x2b
00000dc0: SWAP2
00000dc1: CODECOPY
00000dc2: PUSH1 0x40
00000dc4: ADD
00000dc5: SWAP2
00000dc6: POP
00000dc7: POP
00000dc8: PUSH1 0x40
00000dca: MLOAD
00000dcb: DUP1
00000dcc: SWAP2
00000dcd: SUB
00000dce: SWAP1
00000dcf: REVERT
00000dd0: JUMPDEST
00000dd1: DUP1
00000dd2: PUSH1 0x99
00000dd4: DUP2
00000dd5: SWAP1
00000dd6: SSTORE
00000dd7: POP
00000dd8: POP
00000dd9: JUMP
00000dda: JUMPDEST
00000ddb: PUSH1 0x00
00000ddd: PUSH2 0x0e04
00000de0: DUP3
00000de1: PUSH1 0x65
00000de3: PUSH1 0x00
00000de5: DUP7
00000de6: DUP2
00000de7: MSTORE
00000de8: PUSH1 0x20
00000dea: ADD
00000deb: SWAP1
00000dec: DUP2
00000ded: MSTORE
00000dee: PUSH1 0x20
00000df0: ADD
00000df1: PUSH1 0x00
00000df3: KECCAK256
00000df4: PUSH1 0x00
00000df6: ADD
00000df7: PUSH2 0x1b33
00000dfa: SWAP1
00000dfb: SWAP2
00000dfc: SWAP1
00000dfd: PUSH4 0xffffffff
00000e02: AND
00000e03: JUMP
00000e04: JUMPDEST
00000e05: SWAP1
00000e06: POP
00000e07: SWAP3
00000e08: SWAP2
00000e09: POP
00000e0a: POP
00000e0b: JUMP
00000e0c: JUMPDEST
00000e0d: PUSH1 0x00
00000e0f: PUSH2 0x0e36
00000e12: DUP3
00000e13: PUSH1 0x65
00000e15: PUSH1 0x00
00000e17: DUP7
00000e18: DUP2
00000e19: MSTORE
00000e1a: PUSH1 0x20
00000e1c: ADD
00000e1d: SWAP1
00000e1e: DUP2
00000e1f: MSTORE
00000e20: PUSH1 0x20
00000e22: ADD
00000e23: PUSH1 0x00
00000e25: KECCAK256
00000e26: PUSH1 0x00
00000e28: ADD
00000e29: PUSH2 0x1b4d
00000e2c: SWAP1
00000e2d: SWAP2
00000e2e: SWAP1
00000e2f: PUSH4 0xffffffff
00000e34: AND
00000e35: JUMP
00000e36: JUMPDEST
00000e37: SWAP1
00000e38: POP
00000e39: SWAP3
00000e3a: SWAP2
00000e3b: POP
00000e3c: POP
00000e3d: JUMP
00000e3e: JUMPDEST
00000e3f: PUSH1 0x00
00000e41: PUSH2 0x0e49
00000e44: DUP3
00000e45: PUSH2 0x1446
00000e48: JUMP
00000e49: JUMPDEST
00000e4a: CALLVALUE
00000e4b: EQ
00000e4c: PUSH2 0x0ea0
00000e4f: JUMPI
00000e50: PUSH1 0x40
00000e52: MLOAD
00000e53: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000e74: DUP2
00000e75: MSTORE
00000e76: PUSH1 0x04
00000e78: ADD
00000e79: DUP1
00000e7a: DUP1
00000e7b: PUSH1 0x20
00000e7d: ADD
00000e7e: DUP3
00000e7f: DUP2
00000e80: SUB
00000e81: DUP3
00000e82: MSTORE
00000e83: PUSH1 0x24
00000e85: DUP2
00000e86: MSTORE
00000e87: PUSH1 0x20
00000e89: ADD
00000e8a: DUP1
00000e8b: PUSH2 0x2155
00000e8e: PUSH1 0x24
00000e90: SWAP2
00000e91: CODECOPY
00000e92: PUSH1 0x40
00000e94: ADD
00000e95: SWAP2
00000e96: POP
00000e97: POP
00000e98: PUSH1 0x40
00000e9a: MLOAD
00000e9b: DUP1
00000e9c: SWAP2
00000e9d: SUB
00000e9e: SWAP1
00000e9f: REVERT
00000ea0: JUMPDEST
00000ea1: PUSH2 0x0edf
00000ea4: PUSH2 0x0ece
00000ea7: PUSH1 0x64
00000ea9: PUSH2 0x0ec0
00000eac: PUSH1 0x98
00000eae: SLOAD
00000eaf: PUSH1 0x64
00000eb1: SUB
00000eb2: CALLVALUE
00000eb3: PUSH2 0x18ef
00000eb6: SWAP1
00000eb7: SWAP2
00000eb8: SWAP1
00000eb9: PUSH4 0xffffffff
00000ebe: AND
00000ebf: JUMP
00000ec0: JUMPDEST
00000ec1: PUSH2 0x1975
00000ec4: SWAP1
00000ec5: SWAP2
00000ec6: SWAP1
00000ec7: PUSH4 0xffffffff
00000ecc: AND
00000ecd: JUMP
00000ece: JUMPDEST
00000ecf: PUSH1 0x9a
00000ed1: SLOAD
00000ed2: PUSH2 0x1b7d
00000ed5: SWAP1
00000ed6: SWAP2
00000ed7: SWAP1
00000ed8: PUSH4 0xffffffff
00000edd: AND
00000ede: JUMP
00000edf: JUMPDEST
00000ee0: PUSH1 0x9a
00000ee2: DUP2
00000ee3: SWAP1
00000ee4: SSTORE
00000ee5: POP
00000ee6: PUSH1 0x97
00000ee8: PUSH1 0x00
00000eea: SWAP1
00000eeb: SLOAD
00000eec: SWAP1
00000eed: PUSH2 0x0100
00000ef0: EXP
00000ef1: SWAP1
00000ef2: DIV
00000ef3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f08: AND
00000f09: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f1e: AND
00000f1f: PUSH4 0x40c10f19
00000f24: PUSH2 0x0f2b
00000f27: PUSH2 0x19bf
00000f2a: JUMP
00000f2b: JUMPDEST
00000f2c: DUP5
00000f2d: PUSH1 0x40
00000f2f: MLOAD
00000f30: DUP4
00000f31: PUSH4 0xffffffff
00000f36: AND
00000f37: PUSH1 0xe0
00000f39: SHL
00000f3a: DUP2
00000f3b: MSTORE
00000f3c: PUSH1 0x04
00000f3e: ADD
00000f3f: DUP1
00000f40: DUP4
00000f41: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f56: AND
00000f57: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f6c: AND
00000f6d: DUP2
00000f6e: MSTORE
00000f6f: PUSH1 0x20
00000f71: ADD
00000f72: DUP3
00000f73: DUP2
00000f74: MSTORE
00000f75: PUSH1 0x20
00000f77: ADD
00000f78: SWAP3
00000f79: POP
00000f7a: POP
00000f7b: POP
00000f7c: PUSH1 0x00
00000f7e: PUSH1 0x40
00000f80: MLOAD
00000f81: DUP1
00000f82: DUP4
00000f83: SUB
00000f84: DUP2
00000f85: PUSH1 0x00
00000f87: DUP8
00000f88: DUP1
00000f89: EXTCODESIZE
00000f8a: ISZERO
00000f8b: DUP1
00000f8c: ISZERO
00000f8d: PUSH2 0x0f95
00000f90: JUMPI
00000f91: PUSH1 0x00
00000f93: DUP1
00000f94: REVERT
00000f95: JUMPDEST
00000f96: POP
00000f97: GAS
00000f98: CALL
00000f99: ISZERO
00000f9a: DUP1
00000f9b: ISZERO
00000f9c: PUSH2 0x0fa9
00000f9f: JUMPI
00000fa0: RETURNDATASIZE
00000fa1: PUSH1 0x00
00000fa3: DUP1
00000fa4: RETURNDATACOPY
00000fa5: RETURNDATASIZE
00000fa6: PUSH1 0x00
00000fa8: REVERT
00000fa9: JUMPDEST
00000faa: POP
00000fab: POP
00000fac: POP
00000fad: POP
00000fae: CALLVALUE
00000faf: SWAP1
00000fb0: POP
00000fb1: SWAP2
00000fb2: SWAP1
00000fb3: POP
00000fb4: JUMP
00000fb5: JUMPDEST
00000fb6: PUSH1 0x00
00000fb8: DUP1
00000fb9: SHL
00000fba: DUP2
00000fbb: JUMP
00000fbc: JUMPDEST
00000fbd: PUSH1 0x00
00000fbf: DUP2
00000fc0: PUSH1 0x97
00000fc2: PUSH1 0x00
00000fc4: SWAP1
00000fc5: SLOAD
00000fc6: SWAP1
00000fc7: PUSH2 0x0100
00000fca: EXP
00000fcb: SWAP1
00000fcc: DIV
00000fcd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000fe2: AND
00000fe3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ff8: AND
00000ff9: PUSH4 0xdd62ed3e
00000ffe: PUSH2 0x1005
00001001: PUSH2 0x19bf
00001004: JUMP
00001005: JUMPDEST
00001006: ADDRESS
00001007: PUSH1 0x40
00001009: MLOAD
0000100a: DUP4
0000100b: PUSH4 0xffffffff
00001010: AND
00001011: PUSH1 0xe0
00001013: SHL
00001014: DUP2
00001015: MSTORE
00001016: PUSH1 0x04
00001018: ADD
00001019: DUP1
0000101a: DUP4
0000101b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001030: AND
00001031: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001046: AND
00001047: DUP2
00001048: MSTORE
00001049: PUSH1 0x20
0000104b: ADD
0000104c: DUP3
0000104d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001062: AND
00001063: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001078: AND
00001079: DUP2
0000107a: MSTORE
0000107b: PUSH1 0x20
0000107d: ADD
0000107e: SWAP3
0000107f: POP
00001080: POP
00001081: POP
00001082: PUSH1 0x20
00001084: PUSH1 0x40
00001086: MLOAD
00001087: DUP1
00001088: DUP4
00001089: SUB
0000108a: DUP2
0000108b: DUP7
0000108c: DUP1
0000108d: EXTCODESIZE
0000108e: ISZERO
0000108f: DUP1
00001090: ISZERO
00001091: PUSH2 0x1099
00001094: JUMPI
00001095: PUSH1 0x00
00001097: DUP1
00001098: REVERT
00001099: JUMPDEST
0000109a: POP
0000109b: GAS
0000109c: STATICCALL
0000109d: ISZERO
0000109e: DUP1
0000109f: ISZERO
000010a0: PUSH2 0x10ad
000010a3: JUMPI
000010a4: RETURNDATASIZE
000010a5: PUSH1 0x00
000010a7: DUP1
000010a8: RETURNDATACOPY
000010a9: RETURNDATASIZE
000010aa: PUSH1 0x00
000010ac: REVERT
000010ad: JUMPDEST
000010ae: POP
000010af: POP
000010b0: POP
000010b1: POP
000010b2: PUSH1 0x40
000010b4: MLOAD
000010b5: RETURNDATASIZE
000010b6: PUSH1 0x20
000010b8: DUP2
000010b9: LT
000010ba: ISZERO
000010bb: PUSH2 0x10c3
000010be: JUMPI
000010bf: PUSH1 0x00
000010c1: DUP1
000010c2: REVERT
000010c3: JUMPDEST
000010c4: DUP2
000010c5: ADD
000010c6: SWAP1
000010c7: DUP1
000010c8: DUP1
000010c9: MLOAD
000010ca: SWAP1
000010cb: PUSH1 0x20
000010cd: ADD
000010ce: SWAP1
000010cf: SWAP3
000010d0: SWAP2
000010d1: SWAP1
000010d2: POP
000010d3: POP
000010d4: POP
000010d5: LT
000010d6: ISZERO
000010d7: PUSH2 0x1148
000010da: JUMPI
000010db: PUSH1 0x40
000010dd: MLOAD
000010de: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000010ff: DUP2
00001100: MSTORE
00001101: PUSH1 0x04
00001103: ADD
00001104: DUP1
00001105: DUP1
00001106: PUSH1 0x20
00001108: ADD
00001109: DUP3
0000110a: DUP2
0000110b: SUB
0000110c: DUP3
0000110d: MSTORE
0000110e: PUSH1 0x1a
00001110: DUP2
00001111: MSTORE
00001112: PUSH1 0x20
00001114: ADD
00001115: DUP1
00001116: PUSH32 0x496e73756666696369656e742054525520616c6c6f77616e6365000000000000
00001137: DUP2
00001138: MSTORE
00001139: POP
0000113a: PUSH1 0x20
0000113c: ADD
0000113d: SWAP2
0000113e: POP
0000113f: POP
00001140: PUSH1 0x40
00001142: MLOAD
00001143: DUP1
00001144: SWAP2
00001145: SUB
00001146: SWAP1
00001147: REVERT
00001148: JUMPDEST
00001149: PUSH1 0x00
0000114b: PUSH2 0x1153
0000114e: DUP4
0000114f: PUSH2 0x1374
00001152: JUMP
00001153: JUMPDEST
00001154: SWAP1
00001155: POP
00001156: PUSH2 0x116a
00001159: DUP2
0000115a: PUSH1 0x9a
0000115c: SLOAD
0000115d: PUSH2 0x1c05
00001160: SWAP1
00001161: SWAP2
00001162: SWAP1
00001163: PUSH4 0xffffffff
00001168: AND
00001169: JUMP
0000116a: JUMPDEST
0000116b: PUSH1 0x9a
0000116d: DUP2
0000116e: SWAP1
0000116f: SSTORE
00001170: POP
00001171: PUSH1 0x97
00001173: PUSH1 0x00
00001175: SWAP1
00001176: SLOAD
00001177: SWAP1
00001178: PUSH2 0x0100
0000117b: EXP
0000117c: SWAP1
0000117d: DIV
0000117e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001193: AND
00001194: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011a9: AND
000011aa: PUSH4 0x23b872dd
000011af: PUSH2 0x11b6
000011b2: PUSH2 0x19bf
000011b5: JUMP
000011b6: JUMPDEST
000011b7: ADDRESS
000011b8: DUP7
000011b9: PUSH1 0x40
000011bb: MLOAD
000011bc: DUP5
000011bd: PUSH4 0xffffffff
000011c2: AND
000011c3: PUSH1 0xe0
000011c5: SHL
000011c6: DUP2
000011c7: MSTORE
000011c8: PUSH1 0x04
000011ca: ADD
000011cb: DUP1
000011cc: DUP5
000011cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011e2: AND
000011e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011f8: AND
000011f9: DUP2
000011fa: MSTORE
000011fb: PUSH1 0x20
000011fd: ADD
000011fe: DUP4
000011ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001214: AND
00001215: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000122a: AND
0000122b: DUP2
0000122c: MSTORE
0000122d: PUSH1 0x20
0000122f: ADD
00001230: DUP3
00001231: DUP2
00001232: MSTORE
00001233: PUSH1 0x20
00001235: ADD
00001236: SWAP4
00001237: POP
00001238: POP
00001239: POP
0000123a: POP
0000123b: PUSH1 0x20
0000123d: PUSH1 0x40
0000123f: MLOAD
00001240: DUP1
00001241: DUP4
00001242: SUB
00001243: DUP2
00001244: PUSH1 0x00
00001246: DUP8
00001247: DUP1
00001248: EXTCODESIZE
00001249: ISZERO
0000124a: DUP1
0000124b: ISZERO
0000124c: PUSH2 0x1254
0000124f: JUMPI
00001250: PUSH1 0x00
00001252: DUP1
00001253: REVERT
00001254: JUMPDEST
00001255: POP
00001256: GAS
00001257: CALL
00001258: ISZERO
00001259: DUP1
0000125a: ISZERO
0000125b: PUSH2 0x1268
0000125e: JUMPI
0000125f: RETURNDATASIZE
00001260: PUSH1 0x00
00001262: DUP1
00001263: RETURNDATACOPY
00001264: RETURNDATASIZE
00001265: PUSH1 0x00
00001267: REVERT
00001268: JUMPDEST
00001269: POP
0000126a: POP
0000126b: POP
0000126c: POP
0000126d: PUSH1 0x40
0000126f: MLOAD
00001270: RETURNDATASIZE
00001271: PUSH1 0x20
00001273: DUP2
00001274: LT
00001275: ISZERO
00001276: PUSH2 0x127e
00001279: JUMPI
0000127a: PUSH1 0x00
0000127c: DUP1
0000127d: REVERT
0000127e: JUMPDEST
0000127f: DUP2
00001280: ADD
00001281: SWAP1
00001282: DUP1
00001283: DUP1
00001284: MLOAD
00001285: SWAP1
00001286: PUSH1 0x20
00001288: ADD
00001289: SWAP1
0000128a: SWAP3
0000128b: SWAP2
0000128c: SWAP1
0000128d: POP
0000128e: POP
0000128f: POP
00001290: POP
00001291: PUSH1 0x97
00001293: PUSH1 0x00
00001295: SWAP1
00001296: SLOAD
00001297: SWAP1
00001298: PUSH2 0x0100
0000129b: EXP
0000129c: SWAP1
0000129d: DIV
0000129e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012b3: AND
000012b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012c9: AND
000012ca: PUSH4 0x42966c68
000012cf: DUP5
000012d0: PUSH1 0x40
000012d2: MLOAD
000012d3: DUP3
000012d4: PUSH4 0xffffffff
000012d9: AND
000012da: PUSH1 0xe0
000012dc: SHL
000012dd: DUP2
000012de: MSTORE
000012df: PUSH1 0x04
000012e1: ADD
000012e2: DUP1
000012e3: DUP3
000012e4: DUP2
000012e5: MSTORE
000012e6: PUSH1 0x20
000012e8: ADD
000012e9: SWAP2
000012ea: POP
000012eb: POP
000012ec: PUSH1 0x00
000012ee: PUSH1 0x40
000012f0: MLOAD
000012f1: DUP1
000012f2: DUP4
000012f3: SUB
000012f4: DUP2
000012f5: PUSH1 0x00
000012f7: DUP8
000012f8: DUP1
000012f9: EXTCODESIZE
000012fa: ISZERO
000012fb: DUP1
000012fc: ISZERO
000012fd: PUSH2 0x1305
00001300: JUMPI
00001301: PUSH1 0x00
00001303: DUP1
00001304: REVERT
00001305: JUMPDEST
00001306: POP
00001307: GAS
00001308: CALL
00001309: ISZERO
0000130a: DUP1
0000130b: ISZERO
0000130c: PUSH2 0x1319
0000130f: JUMPI
00001310: RETURNDATASIZE
00001311: PUSH1 0x00
00001313: DUP1
00001314: RETURNDATACOPY
00001315: RETURNDATASIZE
00001316: PUSH1 0x00
00001318: REVERT
00001319: JUMPDEST
0000131a: POP
0000131b: POP
0000131c: POP
0000131d: POP
0000131e: PUSH2 0x1325
00001321: PUSH2 0x19bf
00001324: JUMP
00001325: JUMPDEST
00001326: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000133b: AND
0000133c: PUSH2 0x08fc
0000133f: DUP3
00001340: SWAP1
00001341: DUP2
00001342: ISZERO
00001343: MUL
00001344: SWAP1
00001345: PUSH1 0x40
00001347: MLOAD
00001348: PUSH1 0x00
0000134a: PUSH1 0x40
0000134c: MLOAD
0000134d: DUP1
0000134e: DUP4
0000134f: SUB
00001350: DUP2
00001351: DUP6
00001352: DUP9
00001353: DUP9
00001354: CALL
00001355: SWAP4
00001356: POP
00001357: POP
00001358: POP
00001359: POP
0000135a: ISZERO
0000135b: DUP1
0000135c: ISZERO
0000135d: PUSH2 0x136a
00001360: JUMPI
00001361: RETURNDATASIZE
00001362: PUSH1 0x00
00001364: DUP1
00001365: RETURNDATACOPY
00001366: RETURNDATASIZE
00001367: PUSH1 0x00
00001369: REVERT
0000136a: JUMPDEST
0000136b: POP
0000136c: DUP1
0000136d: SWAP2
0000136e: POP
0000136f: POP
00001370: SWAP2
00001371: SWAP1
00001372: POP
00001373: JUMP
00001374: JUMPDEST
00001375: PUSH1 0x00
00001377: PUSH2 0x143f
0000137a: PUSH1 0x97
0000137c: PUSH1 0x00
0000137e: SWAP1
0000137f: SLOAD
00001380: SWAP1
00001381: PUSH2 0x0100
00001384: EXP
00001385: SWAP1
00001386: DIV
00001387: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000139c: AND
0000139d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013b2: AND
000013b3: PUSH4 0x18160ddd
000013b8: PUSH1 0x40
000013ba: MLOAD
000013bb: DUP2
000013bc: PUSH4 0xffffffff
000013c1: AND
000013c2: PUSH1 0xe0
000013c4: SHL
000013c5: DUP2
000013c6: MSTORE
000013c7: PUSH1 0x04
000013c9: ADD
000013ca: PUSH1 0x20
000013cc: PUSH1 0x40
000013ce: MLOAD
000013cf: DUP1
000013d0: DUP4
000013d1: SUB
000013d2: DUP2
000013d3: DUP7
000013d4: DUP1
000013d5: EXTCODESIZE
000013d6: ISZERO
000013d7: DUP1
000013d8: ISZERO
000013d9: PUSH2 0x13e1
000013dc: JUMPI
000013dd: PUSH1 0x00
000013df: DUP1
000013e0: REVERT
000013e1: JUMPDEST
000013e2: POP
000013e3: GAS
000013e4: STATICCALL
000013e5: ISZERO
000013e6: DUP1
000013e7: ISZERO
000013e8: PUSH2 0x13f5
000013eb: JUMPI
000013ec: RETURNDATASIZE
000013ed: PUSH1 0x00
000013ef: DUP1
000013f0: RETURNDATACOPY
000013f1: RETURNDATASIZE
000013f2: PUSH1 0x00
000013f4: REVERT
000013f5: JUMPDEST
000013f6: POP
000013f7: POP
000013f8: POP
000013f9: POP
000013fa: PUSH1 0x40
000013fc: MLOAD
000013fd: RETURNDATASIZE
000013fe: PUSH1 0x20
00001400: DUP2
00001401: LT
00001402: ISZERO
00001403: PUSH2 0x140b
00001406: JUMPI
00001407: PUSH1 0x00
00001409: DUP1
0000140a: REVERT
0000140b: JUMPDEST
0000140c: DUP2
0000140d: ADD
0000140e: SWAP1
0000140f: DUP1
00001410: DUP1
00001411: MLOAD
00001412: SWAP1
00001413: PUSH1 0x20
00001415: ADD
00001416: SWAP1
00001417: SWAP3
00001418: SWAP2
00001419: SWAP1
0000141a: POP
0000141b: POP
0000141c: POP
0000141d: PUSH2 0x1431
00001420: PUSH1 0x9a
00001422: SLOAD
00001423: DUP6
00001424: PUSH2 0x18ef
00001427: SWAP1
00001428: SWAP2
00001429: SWAP1
0000142a: PUSH4 0xffffffff
0000142f: AND
00001430: JUMP
00001431: JUMPDEST
00001432: PUSH2 0x1975
00001435: SWAP1
00001436: SWAP2
00001437: SWAP1
00001438: PUSH4 0xffffffff
0000143d: AND
0000143e: JUMP
0000143f: JUMPDEST
00001440: SWAP1
00001441: POP
00001442: SWAP2
00001443: SWAP1
00001444: POP
00001445: JUMP
00001446: JUMPDEST
00001447: PUSH1 0x00
00001449: DUP1
0000144a: PUSH1 0x97
0000144c: PUSH1 0x00
0000144e: SWAP1
0000144f: SLOAD
00001450: SWAP1
00001451: PUSH2 0x0100
00001454: EXP
00001455: SWAP1
00001456: DIV
00001457: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000146c: AND
0000146d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001482: AND
00001483: PUSH4 0x18160ddd
00001488: PUSH1 0x40
0000148a: MLOAD
0000148b: DUP2
0000148c: PUSH4 0xffffffff
00001491: AND
00001492: PUSH1 0xe0
00001494: SHL
00001495: DUP2
00001496: MSTORE
00001497: PUSH1 0x04
00001499: ADD
0000149a: PUSH1 0x20
0000149c: PUSH1 0x40
0000149e: MLOAD
0000149f: DUP1
000014a0: DUP4
000014a1: SUB
000014a2: DUP2
000014a3: DUP7
000014a4: DUP1
000014a5: EXTCODESIZE
000014a6: ISZERO
000014a7: DUP1
000014a8: ISZERO
000014a9: PUSH2 0x14b1
000014ac: JUMPI
000014ad: PUSH1 0x00
000014af: DUP1
000014b0: REVERT
000014b1: JUMPDEST
000014b2: POP
000014b3: GAS
000014b4: STATICCALL
000014b5: ISZERO
000014b6: DUP1
000014b7: ISZERO
000014b8: PUSH2 0x14c5
000014bb: JUMPI
000014bc: RETURNDATASIZE
000014bd: PUSH1 0x00
000014bf: DUP1
000014c0: RETURNDATACOPY
000014c1: RETURNDATASIZE
000014c2: PUSH1 0x00
000014c4: REVERT
000014c5: JUMPDEST
000014c6: POP
000014c7: POP
000014c8: POP
000014c9: POP
000014ca: PUSH1 0x40
000014cc: MLOAD
000014cd: RETURNDATASIZE
000014ce: PUSH1 0x20
000014d0: DUP2
000014d1: LT
000014d2: ISZERO
000014d3: PUSH2 0x14db
000014d6: JUMPI
000014d7: PUSH1 0x00
000014d9: DUP1
000014da: REVERT
000014db: JUMPDEST
000014dc: DUP2
000014dd: ADD
000014de: SWAP1
000014df: DUP1
000014e0: DUP1
000014e1: MLOAD
000014e2: SWAP1
000014e3: PUSH1 0x20
000014e5: ADD
000014e6: SWAP1
000014e7: SWAP3
000014e8: SWAP2
000014e9: SWAP1
000014ea: POP
000014eb: POP
000014ec: POP
000014ed: SWAP1
000014ee: POP
000014ef: PUSH2 0x15d2
000014f2: PUSH2 0x154f
000014f5: PUSH2 0x151b
000014f8: PUSH1 0x98
000014fa: SLOAD
000014fb: PUSH2 0x150d
000014fe: DUP6
000014ff: DUP7
00001500: PUSH2 0x18ef
00001503: SWAP1
00001504: SWAP2
00001505: SWAP1
00001506: PUSH4 0xffffffff
0000150b: AND
0000150c: JUMP
0000150d: JUMPDEST
0000150e: PUSH2 0x18ef
00001511: SWAP1
00001512: SWAP2
00001513: SWAP1
00001514: PUSH4 0xffffffff
00001519: AND
0000151a: JUMP
0000151b: JUMPDEST
0000151c: PUSH2 0x1541
0000151f: PUSH1 0x64
00001521: PUSH2 0x1533
00001524: DUP7
00001525: DUP8
00001526: PUSH2 0x18ef
00001529: SWAP1
0000152a: SWAP2
0000152b: SWAP1
0000152c: PUSH4 0xffffffff
00001531: AND
00001532: JUMP
00001533: JUMPDEST
00001534: PUSH2 0x18ef
00001537: SWAP1
00001538: SWAP2
00001539: SWAP1
0000153a: PUSH4 0xffffffff
0000153f: AND
00001540: JUMP
00001541: JUMPDEST
00001542: PUSH2 0x1c05
00001545: SWAP1
00001546: SWAP2
00001547: SWAP1
00001548: PUSH4 0xffffffff
0000154d: AND
0000154e: JUMP
0000154f: JUMPDEST
00001550: PUSH2 0x1589
00001553: PUSH1 0xc8
00001555: PUSH2 0x157b
00001558: DUP6
00001559: PUSH2 0x156d
0000155c: DUP10
0000155d: PUSH1 0x9a
0000155f: SLOAD
00001560: PUSH2 0x18ef
00001563: SWAP1
00001564: SWAP2
00001565: SWAP1
00001566: PUSH4 0xffffffff
0000156b: AND
0000156c: JUMP
0000156d: JUMPDEST
0000156e: PUSH2 0x18ef
00001571: SWAP1
00001572: SWAP2
00001573: SWAP1
00001574: PUSH4 0xffffffff
00001579: AND
0000157a: JUMP
0000157b: JUMPDEST
0000157c: PUSH2 0x18ef
0000157f: SWAP1
00001580: SWAP2
00001581: SWAP1
00001582: PUSH4 0xffffffff
00001587: AND
00001588: JUMP
00001589: JUMPDEST
0000158a: PUSH2 0x15c3
0000158d: PUSH1 0x64
0000158f: PUSH2 0x15b5
00001592: DUP9
00001593: PUSH2 0x15a7
00001596: DUP11
00001597: PUSH1 0x9a
00001599: SLOAD
0000159a: PUSH2 0x18ef
0000159d: SWAP1
0000159e: SWAP2
0000159f: SWAP1
000015a0: PUSH4 0xffffffff
000015a5: AND
000015a6: JUMP
000015a7: JUMPDEST
000015a8: PUSH2 0x18ef
000015ab: SWAP1
000015ac: SWAP2
000015ad: SWAP1
000015ae: PUSH4 0xffffffff
000015b3: AND
000015b4: JUMP
000015b5: JUMPDEST
000015b6: PUSH2 0x18ef
000015b9: SWAP1
000015ba: SWAP2
000015bb: SWAP1
000015bc: PUSH4 0xffffffff
000015c1: AND
000015c2: JUMP
000015c3: JUMPDEST
000015c4: ADD
000015c5: PUSH2 0x1975
000015c8: SWAP1
000015c9: SWAP2
000015ca: SWAP1
000015cb: PUSH4 0xffffffff
000015d0: AND
000015d1: JUMP
000015d2: JUMPDEST
000015d3: SWAP2
000015d4: POP
000015d5: POP
000015d6: SWAP2
000015d7: SWAP1
000015d8: POP
000015d9: JUMP
000015da: JUMPDEST
000015db: PUSH1 0x00
000015dd: PUSH2 0x15fa
000015e0: PUSH1 0x65
000015e2: PUSH1 0x00
000015e4: DUP5
000015e5: DUP2
000015e6: MSTORE
000015e7: PUSH1 0x20
000015e9: ADD
000015ea: SWAP1
000015eb: DUP2
000015ec: MSTORE
000015ed: PUSH1 0x20
000015ef: ADD
000015f0: PUSH1 0x00
000015f2: KECCAK256
000015f3: PUSH1 0x00
000015f5: ADD
000015f6: PUSH2 0x1c4f
000015f9: JUMP
000015fa: JUMPDEST
000015fb: SWAP1
000015fc: POP
000015fd: SWAP2
000015fe: SWAP1
000015ff: POP
00001600: JUMP
00001601: JUMPDEST
00001602: PUSH1 0x9a
00001604: SLOAD
00001605: DUP2
00001606: JUMP
00001607: JUMPDEST
00001608: PUSH2 0x162e
0000160b: PUSH1 0x65
0000160d: PUSH1 0x00
0000160f: DUP5
00001610: DUP2
00001611: MSTORE
00001612: PUSH1 0x20
00001614: ADD
00001615: SWAP1
00001616: DUP2
00001617: MSTORE
00001618: PUSH1 0x20
0000161a: ADD
0000161b: PUSH1 0x00
0000161d: KECCAK256
0000161e: PUSH1 0x02
00001620: ADD
00001621: SLOAD
00001622: PUSH2 0x1629
00001625: PUSH2 0x19bf
00001628: JUMP
00001629: JUMPDEST
0000162a: PUSH2 0x0e0c
0000162d: JUMP
0000162e: JUMPDEST
0000162f: PUSH2 0x1683
00001632: JUMPI
00001633: PUSH1 0x40
00001635: MLOAD
00001636: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001657: DUP2
00001658: MSTORE
00001659: PUSH1 0x04
0000165b: ADD
0000165c: DUP1
0000165d: DUP1
0000165e: PUSH1 0x20
00001660: ADD
00001661: DUP3
00001662: DUP2
00001663: SUB
00001664: DUP3
00001665: MSTORE
00001666: PUSH1 0x30
00001668: DUP2
00001669: MSTORE
0000166a: PUSH1 0x20
0000166c: ADD
0000166d: DUP1
0000166e: PUSH2 0x20d6
00001671: PUSH1 0x30
00001673: SWAP2
00001674: CODECOPY
00001675: PUSH1 0x40
00001677: ADD
00001678: SWAP2
00001679: POP
0000167a: POP
0000167b: PUSH1 0x40
0000167d: MLOAD
0000167e: DUP1
0000167f: SWAP2
00001680: SUB
00001681: SWAP1
00001682: REVERT
00001683: JUMPDEST
00001684: PUSH2 0x168d
00001687: DUP3
00001688: DUP3
00001689: PUSH2 0x1a5b
0000168c: JUMP
0000168d: JUMPDEST
0000168e: POP
0000168f: POP
00001690: JUMP
00001691: JUMPDEST
00001692: PUSH2 0x16a6
00001695: CALLVALUE
00001696: PUSH1 0x9a
00001698: SLOAD
00001699: PUSH2 0x1b7d
0000169c: SWAP1
0000169d: SWAP2
0000169e: SWAP1
0000169f: PUSH4 0xffffffff
000016a4: AND
000016a5: JUMP
000016a6: JUMPDEST
000016a7: PUSH1 0x9a
000016a9: DUP2
000016aa: SWAP1
000016ab: SSTORE
000016ac: POP
000016ad: JUMP
000016ae: JUMPDEST
000016af: PUSH2 0x16c2
000016b2: PUSH1 0x00
000016b4: DUP1
000016b5: SHL
000016b6: PUSH2 0x16bd
000016b9: PUSH2 0x19bf
000016bc: JUMP
000016bd: JUMPDEST
000016be: PUSH2 0x0e0c
000016c1: JUMP
000016c2: JUMPDEST
000016c3: PUSH2 0x1717
000016c6: JUMPI
000016c7: PUSH1 0x40
000016c9: MLOAD
000016ca: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000016eb: DUP2
000016ec: MSTORE
000016ed: PUSH1 0x04
000016ef: ADD
000016f0: DUP1
000016f1: DUP1
000016f2: PUSH1 0x20
000016f4: ADD
000016f5: DUP3
000016f6: DUP2
000016f7: SUB
000016f8: DUP3
000016f9: MSTORE
000016fa: PUSH1 0x2b
000016fc: DUP2
000016fd: MSTORE
000016fe: PUSH1 0x20
00001700: ADD
00001701: DUP1
00001702: PUSH2 0x20ab
00001705: PUSH1 0x2b
00001707: SWAP2
00001708: CODECOPY
00001709: PUSH1 0x40
0000170b: ADD
0000170c: SWAP2
0000170d: POP
0000170e: POP
0000170f: PUSH1 0x40
00001711: MLOAD
00001712: DUP1
00001713: SWAP2
00001714: SUB
00001715: SWAP1
00001716: REVERT
00001717: JUMPDEST
00001718: PUSH2 0x171f
0000171b: PUSH2 0x19bf
0000171e: JUMP
0000171f: JUMPDEST
00001720: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001735: AND
00001736: PUSH2 0x08fc
00001739: PUSH2 0x1764
0000173c: PUSH1 0x9a
0000173e: SLOAD
0000173f: ADDRESS
00001740: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001755: AND
00001756: BALANCE
00001757: PUSH2 0x1c05
0000175a: SWAP1
0000175b: SWAP2
0000175c: SWAP1
0000175d: PUSH4 0xffffffff
00001762: AND
00001763: JUMP
00001764: JUMPDEST
00001765: SWAP1
00001766: DUP2
00001767: ISZERO
00001768: MUL
00001769: SWAP1
0000176a: PUSH1 0x40
0000176c: MLOAD
0000176d: PUSH1 0x00
0000176f: PUSH1 0x40
00001771: MLOAD
00001772: DUP1
00001773: DUP4
00001774: SUB
00001775: DUP2
00001776: DUP6
00001777: DUP9
00001778: DUP9
00001779: CALL
0000177a: SWAP4
0000177b: POP
0000177c: POP
0000177d: POP
0000177e: POP
0000177f: ISZERO
00001780: DUP1
00001781: ISZERO
00001782: PUSH2 0x178f
00001785: JUMPI
00001786: RETURNDATASIZE
00001787: PUSH1 0x00
00001789: DUP1
0000178a: RETURNDATACOPY
0000178b: RETURNDATASIZE
0000178c: PUSH1 0x00
0000178e: REVERT
0000178f: JUMPDEST
00001790: POP
00001791: JUMP
00001792: JUMPDEST
00001793: PUSH1 0x40
00001795: MLOAD
00001796: DUP1
00001797: DUP1
00001798: PUSH32 0x495046535f41444d494e00000000000000000000000000000000000000000000
000017b9: DUP2
000017ba: MSTORE
000017bb: POP
000017bc: PUSH1 0x0a
000017be: ADD
000017bf: SWAP1
000017c0: POP
000017c1: PUSH1 0x40
000017c3: MLOAD
000017c4: DUP1
000017c5: SWAP2
000017c6: SUB
000017c7: SWAP1
000017c8: KECCAK256
000017c9: DUP2
000017ca: JUMP
000017cb: JUMPDEST
000017cc: PUSH1 0x00
000017ce: PUSH2 0x1813
000017d1: PUSH1 0x40
000017d3: MLOAD
000017d4: DUP1
000017d5: DUP1
000017d6: PUSH32 0x534f4c5645525f41444d494e0000000000000000000000000000000000000000
000017f7: DUP2
000017f8: MSTORE
000017f9: POP
000017fa: PUSH1 0x0c
000017fc: ADD
000017fd: SWAP1
000017fe: POP
000017ff: PUSH1 0x40
00001801: MLOAD
00001802: DUP1
00001803: SWAP2
00001804: SUB
00001805: SWAP1
00001806: KECCAK256
00001807: PUSH2 0x180e
0000180a: PUSH2 0x19bf
0000180d: JUMP
0000180e: JUMPDEST
0000180f: PUSH2 0x0e0c
00001812: JUMP
00001813: JUMPDEST
00001814: PUSH2 0x1868
00001817: JUMPI
00001818: PUSH1 0x40
0000181a: MLOAD
0000181b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000183c: DUP2
0000183d: MSTORE
0000183e: PUSH1 0x04
00001840: ADD
00001841: DUP1
00001842: DUP1
00001843: PUSH1 0x20
00001845: ADD
00001846: DUP3
00001847: DUP2
00001848: SUB
00001849: DUP3
0000184a: MSTORE
0000184b: PUSH1 0x34
0000184d: DUP2
0000184e: MSTORE
0000184f: PUSH1 0x20
00001851: ADD
00001852: DUP1
00001853: PUSH2 0x2179
00001856: PUSH1 0x34
00001858: SWAP2
00001859: CODECOPY
0000185a: PUSH1 0x40
0000185c: ADD
0000185d: SWAP2
0000185e: POP
0000185f: POP
00001860: PUSH1 0x40
00001862: MLOAD
00001863: DUP1
00001864: SWAP2
00001865: SUB
00001866: SWAP1
00001867: REVERT
00001868: JUMPDEST
00001869: PUSH2 0x18a7
0000186c: PUSH1 0x40
0000186e: MLOAD
0000186f: DUP1
00001870: DUP1
00001871: PUSH32 0x534f4c5645520000000000000000000000000000000000000000000000000000
00001892: DUP2
00001893: MSTORE
00001894: POP
00001895: PUSH1 0x06
00001897: ADD
00001898: SWAP1
00001899: POP
0000189a: PUSH1 0x40
0000189c: MLOAD
0000189d: DUP1
0000189e: SWAP2
0000189f: SUB
000018a0: SWAP1
000018a1: KECCAK256
000018a2: DUP4
000018a3: PUSH2 0x0908
000018a6: JUMP
000018a7: JUMPDEST
000018a8: PUSH1 0x01
000018aa: SWAP1
000018ab: POP
000018ac: SWAP2
000018ad: SWAP1
000018ae: POP
000018af: JUMP
000018b0: JUMPDEST
000018b1: PUSH1 0x98
000018b3: SLOAD
000018b4: DUP2
000018b5: JUMP
000018b6: JUMPDEST
000018b7: PUSH1 0x40
000018b9: MLOAD
000018ba: DUP1
000018bb: DUP1
000018bc: PUSH32 0x534f4c5645525f41444d494e0000000000000000000000000000000000000000
000018dd: DUP2
000018de: MSTORE
000018df: POP
000018e0: PUSH1 0x0c
000018e2: ADD
000018e3: SWAP1
000018e4: POP
000018e5: PUSH1 0x40
000018e7: MLOAD
000018e8: DUP1
000018e9: SWAP2
000018ea: SUB
000018eb: SWAP1
000018ec: KECCAK256
000018ed: DUP2
000018ee: JUMP
000018ef: JUMPDEST
000018f0: PUSH1 0x00
000018f2: DUP1
000018f3: DUP4
000018f4: EQ
000018f5: ISZERO
000018f6: PUSH2 0x1902
000018f9: JUMPI
000018fa: PUSH1 0x00
000018fc: SWAP1
000018fd: POP
000018fe: PUSH2 0x196f
00001901: JUMP
00001902: JUMPDEST
00001903: PUSH1 0x00
00001905: DUP3
00001906: DUP5
00001907: MUL
00001908: SWAP1
00001909: POP
0000190a: DUP3
0000190b: DUP5
0000190c: DUP3
0000190d: DUP2
0000190e: PUSH2 0x1913
00001911: JUMPI
00001912: INVALID
00001913: JUMPDEST
00001914: DIV
00001915: EQ
00001916: PUSH2 0x196a
00001919: JUMPI
0000191a: PUSH1 0x40
0000191c: MLOAD
0000191d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000193e: DUP2
0000193f: MSTORE
00001940: PUSH1 0x04
00001942: ADD
00001943: DUP1
00001944: DUP1
00001945: PUSH1 0x20
00001947: ADD
00001948: DUP3
00001949: DUP2
0000194a: SUB
0000194b: DUP3
0000194c: MSTORE
0000194d: PUSH1 0x21
0000194f: DUP2
00001950: MSTORE
00001951: PUSH1 0x20
00001953: ADD
00001954: DUP1
00001955: PUSH2 0x2106
00001958: PUSH1 0x21
0000195a: SWAP2
0000195b: CODECOPY
0000195c: PUSH1 0x40
0000195e: ADD
0000195f: SWAP2
00001960: POP
00001961: POP
00001962: PUSH1 0x40
00001964: MLOAD
00001965: DUP1
00001966: SWAP2
00001967: SUB
00001968: SWAP1
00001969: REVERT
0000196a: JUMPDEST
0000196b: DUP1
0000196c: SWAP2
0000196d: POP
0000196e: POP
0000196f: JUMPDEST
00001970: SWAP3
00001971: SWAP2
00001972: POP
00001973: POP
00001974: JUMP
00001975: JUMPDEST
00001976: PUSH1 0x00
00001978: PUSH2 0x19b7
0000197b: DUP4
0000197c: DUP4
0000197d: PUSH1 0x40
0000197f: MLOAD
00001980: DUP1
00001981: PUSH1 0x40
00001983: ADD
00001984: PUSH1 0x40
00001986: MSTORE
00001987: DUP1
00001988: PUSH1 0x1a
0000198a: DUP2
0000198b: MSTORE
0000198c: PUSH1 0x20
0000198e: ADD
0000198f: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000
000019b0: DUP2
000019b1: MSTORE
000019b2: POP
000019b3: PUSH2 0x1c64
000019b6: JUMP
000019b7: JUMPDEST
000019b8: SWAP1
000019b9: POP
000019ba: SWAP3
000019bb: SWAP2
000019bc: POP
000019bd: POP
000019be: JUMP
000019bf: JUMPDEST
000019c0: PUSH1 0x00
000019c2: CALLER
000019c3: SWAP1
000019c4: POP
000019c5: SWAP1
000019c6: JUMP
000019c7: JUMPDEST
000019c8: PUSH2 0x19ef
000019cb: DUP2
000019cc: PUSH1 0x65
000019ce: PUSH1 0x00
000019d0: DUP6
000019d1: DUP2
000019d2: MSTORE
000019d3: PUSH1 0x20
000019d5: ADD
000019d6: SWAP1
000019d7: DUP2
000019d8: MSTORE
000019d9: PUSH1 0x20
000019db: ADD
000019dc: PUSH1 0x00
000019de: KECCAK256
000019df: PUSH1 0x00
000019e1: ADD
000019e2: PUSH2 0x1d2a
000019e5: SWAP1
000019e6: SWAP2
000019e7: SWAP1
000019e8: PUSH4 0xffffffff
000019ed: AND
000019ee: JUMP
000019ef: JUMPDEST
000019f0: ISZERO
000019f1: PUSH2 0x1a57
000019f4: JUMPI
000019f5: PUSH2 0x19fc
000019f8: PUSH2 0x19bf
000019fb: JUMP
000019fc: JUMPDEST
000019fd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a12: AND
00001a13: DUP2
00001a14: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a29: AND
00001a2a: DUP4
00001a2b: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d
00001a4c: PUSH1 0x40
00001a4e: MLOAD
00001a4f: PUSH1 0x40
00001a51: MLOAD
00001a52: DUP1
00001a53: SWAP2
00001a54: SUB
00001a55: SWAP1
00001a56: LOG4
00001a57: JUMPDEST
00001a58: POP
00001a59: POP
00001a5a: JUMP
00001a5b: JUMPDEST
00001a5c: PUSH2 0x1a83
00001a5f: DUP2
00001a60: PUSH1 0x65
00001a62: PUSH1 0x00
00001a64: DUP6
00001a65: DUP2
00001a66: MSTORE
00001a67: PUSH1 0x20
00001a69: ADD
00001a6a: SWAP1
00001a6b: DUP2
00001a6c: MSTORE
00001a6d: PUSH1 0x20
00001a6f: ADD
00001a70: PUSH1 0x00
00001a72: KECCAK256
00001a73: PUSH1 0x00
00001a75: ADD
00001a76: PUSH2 0x1d5a
00001a79: SWAP1
00001a7a: SWAP2
00001a7b: SWAP1
00001a7c: PUSH4 0xffffffff
00001a81: AND
00001a82: JUMP
00001a83: JUMPDEST
00001a84: ISZERO
00001a85: PUSH2 0x1aeb
00001a88: JUMPI
00001a89: PUSH2 0x1a90
00001a8c: PUSH2 0x19bf
00001a8f: JUMP
00001a90: JUMPDEST
00001a91: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001aa6: AND
00001aa7: DUP2
00001aa8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001abd: AND
00001abe: DUP4
00001abf: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b
00001ae0: PUSH1 0x40
00001ae2: MLOAD
00001ae3: PUSH1 0x40
00001ae5: MLOAD
00001ae6: DUP1
00001ae7: SWAP2
00001ae8: SUB
00001ae9: SWAP1
00001aea: LOG4
00001aeb: JUMPDEST
00001aec: POP
00001aed: POP
00001aee: JUMP
00001aef: JUMPDEST
00001af0: PUSH1 0x00
00001af2: DUP1
00001af3: ADDRESS
00001af4: SWAP1
00001af5: POP
00001af6: PUSH1 0x00
00001af8: DUP2
00001af9: EXTCODESIZE
00001afa: SWAP1
00001afb: POP
00001afc: PUSH1 0x00
00001afe: DUP2
00001aff: EQ
00001b00: SWAP3
00001b01: POP
00001b02: POP
00001b03: POP
00001b04: SWAP1
00001b05: JUMP
00001b06: JUMPDEST
00001b07: PUSH2 0x1b10
00001b0a: DUP3
00001b0b: DUP3
00001b0c: PUSH2 0x19c7
00001b0f: JUMP
00001b10: JUMPDEST
00001b11: POP
00001b12: POP
00001b13: JUMP
00001b14: JUMPDEST
00001b15: DUP1
00001b16: PUSH1 0x65
00001b18: PUSH1 0x00
00001b1a: DUP5
00001b1b: DUP2
00001b1c: MSTORE
00001b1d: PUSH1 0x20
00001b1f: ADD
00001b20: SWAP1
00001b21: DUP2
00001b22: MSTORE
00001b23: PUSH1 0x20
00001b25: ADD
00001b26: PUSH1 0x00
00001b28: KECCAK256
00001b29: PUSH1 0x02
00001b2b: ADD
00001b2c: DUP2
00001b2d: SWAP1
00001b2e: SSTORE
00001b2f: POP
00001b30: POP
00001b31: POP
00001b32: JUMP
00001b33: JUMPDEST
00001b34: PUSH1 0x00
00001b36: PUSH2 0x1b42
00001b39: DUP4
00001b3a: PUSH1 0x00
00001b3c: ADD
00001b3d: DUP4
00001b3e: PUSH2 0x1d8a
00001b41: JUMP
00001b42: JUMPDEST
00001b43: PUSH1 0x00
00001b45: SHR
00001b46: SWAP1
00001b47: POP
00001b48: SWAP3
00001b49: SWAP2
00001b4a: POP
00001b4b: POP
00001b4c: JUMP
00001b4d: JUMPDEST
00001b4e: PUSH1 0x00
00001b50: PUSH2 0x1b75
00001b53: DUP4
00001b54: PUSH1 0x00
00001b56: ADD
00001b57: DUP4
00001b58: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b6d: AND
00001b6e: PUSH1 0x00
00001b70: SHL
00001b71: PUSH2 0x1e0d
00001b74: JUMP
00001b75: JUMPDEST
00001b76: SWAP1
00001b77: POP
00001b78: SWAP3
00001b79: SWAP2
00001b7a: POP
00001b7b: POP
00001b7c: JUMP
00001b7d: JUMPDEST
00001b7e: PUSH1 0x00
00001b80: DUP1
00001b81: DUP3
00001b82: DUP5
00001b83: ADD
00001b84: SWAP1
00001b85: POP
00001b86: DUP4
00001b87: DUP2
00001b88: LT
00001b89: ISZERO
00001b8a: PUSH2 0x1bfb
00001b8d: JUMPI
00001b8e: PUSH1 0x40
00001b90: MLOAD
00001b91: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001bb2: DUP2
00001bb3: MSTORE
00001bb4: PUSH1 0x04
00001bb6: ADD
00001bb7: DUP1
00001bb8: DUP1
00001bb9: PUSH1 0x20
00001bbb: ADD
00001bbc: DUP3
00001bbd: DUP2
00001bbe: SUB
00001bbf: DUP3
00001bc0: MSTORE
00001bc1: PUSH1 0x1b
00001bc3: DUP2
00001bc4: MSTORE
00001bc5: PUSH1 0x20
00001bc7: ADD
00001bc8: DUP1
00001bc9: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000
00001bea: DUP2
00001beb: MSTORE
00001bec: POP
00001bed: PUSH1 0x20
00001bef: ADD
00001bf0: SWAP2
00001bf1: POP
00001bf2: POP
00001bf3: PUSH1 0x40
00001bf5: MLOAD
00001bf6: DUP1
00001bf7: SWAP2
00001bf8: SUB
00001bf9: SWAP1
00001bfa: REVERT
00001bfb: JUMPDEST
00001bfc: DUP1
00001bfd: SWAP2
00001bfe: POP
00001bff: POP
00001c00: SWAP3
00001c01: SWAP2
00001c02: POP
00001c03: POP
00001c04: JUMP
00001c05: JUMPDEST
00001c06: PUSH1 0x00
00001c08: PUSH2 0x1c47
00001c0b: DUP4
00001c0c: DUP4
00001c0d: PUSH1 0x40
00001c0f: MLOAD
00001c10: DUP1
00001c11: PUSH1 0x40
00001c13: ADD
00001c14: PUSH1 0x40
00001c16: MSTORE
00001c17: DUP1
00001c18: PUSH1 0x1e
00001c1a: DUP2
00001c1b: MSTORE
00001c1c: PUSH1 0x20
00001c1e: ADD
00001c1f: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000
00001c40: DUP2
00001c41: MSTORE
00001c42: POP
00001c43: PUSH2 0x1e30
00001c46: JUMP
00001c47: JUMPDEST
00001c48: SWAP1
00001c49: POP
00001c4a: SWAP3
00001c4b: SWAP2
00001c4c: POP
00001c4d: POP
00001c4e: JUMP
00001c4f: JUMPDEST
00001c50: PUSH1 0x00
00001c52: PUSH2 0x1c5d
00001c55: DUP3
00001c56: PUSH1 0x00
00001c58: ADD
00001c59: PUSH2 0x1ef0
00001c5c: JUMP
00001c5d: JUMPDEST
00001c5e: SWAP1
00001c5f: POP
00001c60: SWAP2
00001c61: SWAP1
00001c62: POP
00001c63: JUMP
00001c64: JUMPDEST
00001c65: PUSH1 0x00
00001c67: DUP1
00001c68: DUP4
00001c69: GT
00001c6a: DUP3
00001c6b: SWAP1
00001c6c: PUSH2 0x1d10
00001c6f: JUMPI
00001c70: PUSH1 0x40
00001c72: MLOAD
00001c73: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001c94: DUP2
00001c95: MSTORE
00001c96: PUSH1 0x04
00001c98: ADD
00001c99: DUP1
00001c9a: DUP1
00001c9b: PUSH1 0x20
00001c9d: ADD
00001c9e: DUP3
00001c9f: DUP2
00001ca0: SUB
00001ca1: DUP3
00001ca2: MSTORE
00001ca3: DUP4
00001ca4: DUP2
00001ca5: DUP2
00001ca6: MLOAD
00001ca7: DUP2
00001ca8: MSTORE
00001ca9: PUSH1 0x20
00001cab: ADD
00001cac: SWAP2
00001cad: POP
00001cae: DUP1
00001caf: MLOAD
00001cb0: SWAP1
00001cb1: PUSH1 0x20
00001cb3: ADD
00001cb4: SWAP1
00001cb5: DUP1
00001cb6: DUP4
00001cb7: DUP4
00001cb8: PUSH1 0x00
00001cba: JUMPDEST
00001cbb: DUP4
00001cbc: DUP2
00001cbd: LT
00001cbe: ISZERO
00001cbf: PUSH2 0x1cd5
00001cc2: JUMPI
00001cc3: DUP1
00001cc4: DUP3
00001cc5: ADD
00001cc6: MLOAD
00001cc7: DUP2
00001cc8: DUP5
00001cc9: ADD
00001cca: MSTORE
00001ccb: PUSH1 0x20
00001ccd: DUP2
00001cce: ADD
00001ccf: SWAP1
00001cd0: POP
00001cd1: PUSH2 0x1cba
00001cd4: JUMP
00001cd5: JUMPDEST
00001cd6: POP
00001cd7: POP
00001cd8: POP
00001cd9: POP
00001cda: SWAP1
00001cdb: POP
00001cdc: SWAP1
00001cdd: DUP2
00001cde: ADD
00001cdf: SWAP1
00001ce0: PUSH1 0x1f
00001ce2: AND
00001ce3: DUP1
00001ce4: ISZERO
00001ce5: PUSH2 0x1d02
00001ce8: JUMPI
00001ce9: DUP1
00001cea: DUP3
00001ceb: SUB
00001cec: DUP1
00001ced: MLOAD
00001cee: PUSH1 0x01
00001cf0: DUP4
00001cf1: PUSH1 0x20
00001cf3: SUB
00001cf4: PUSH2 0x0100
00001cf7: EXP
00001cf8: SUB
00001cf9: NOT
00001cfa: AND
00001cfb: DUP2
00001cfc: MSTORE
00001cfd: PUSH1 0x20
00001cff: ADD
00001d00: SWAP2
00001d01: POP
00001d02: JUMPDEST
00001d03: POP
00001d04: SWAP3
00001d05: POP
00001d06: POP
00001d07: POP
00001d08: PUSH1 0x40
00001d0a: MLOAD
00001d0b: DUP1
00001d0c: SWAP2
00001d0d: SUB
00001d0e: SWAP1
00001d0f: REVERT
00001d10: JUMPDEST
00001d11: POP
00001d12: PUSH1 0x00
00001d14: DUP4
00001d15: DUP6
00001d16: DUP2
00001d17: PUSH2 0x1d1c
00001d1a: JUMPI
00001d1b: INVALID
00001d1c: JUMPDEST
00001d1d: DIV
00001d1e: SWAP1
00001d1f: POP
00001d20: DUP1
00001d21: SWAP2
00001d22: POP
00001d23: POP
00001d24: SWAP4
00001d25: SWAP3
00001d26: POP
00001d27: POP
00001d28: POP
00001d29: JUMP
00001d2a: JUMPDEST
00001d2b: PUSH1 0x00
00001d2d: PUSH2 0x1d52
00001d30: DUP4
00001d31: PUSH1 0x00
00001d33: ADD
00001d34: DUP4
00001d35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d4a: AND
00001d4b: PUSH1 0x00
00001d4d: SHL
00001d4e: PUSH2 0x1f01
00001d51: JUMP
00001d52: JUMPDEST
00001d53: SWAP1
00001d54: POP
00001d55: SWAP3
00001d56: SWAP2
00001d57: POP
00001d58: POP
00001d59: JUMP
00001d5a: JUMPDEST
00001d5b: PUSH1 0x00
00001d5d: PUSH2 0x1d82
00001d60: DUP4
00001d61: PUSH1 0x00
00001d63: ADD
00001d64: DUP4
00001d65: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d7a: AND
00001d7b: PUSH1 0x00
00001d7d: SHL
00001d7e: PUSH2 0x1f71
00001d81: JUMP
00001d82: JUMPDEST
00001d83: SWAP1
00001d84: POP
00001d85: SWAP3
00001d86: SWAP2
00001d87: POP
00001d88: POP
00001d89: JUMP
00001d8a: JUMPDEST
00001d8b: PUSH1 0x00
00001d8d: DUP2
00001d8e: DUP4
00001d8f: PUSH1 0x00
00001d91: ADD
00001d92: DUP1
00001d93: SLOAD
00001d94: SWAP1
00001d95: POP
00001d96: GT
00001d97: PUSH2 0x1deb
00001d9a: JUMPI
00001d9b: PUSH1 0x40
00001d9d: MLOAD
00001d9e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001dbf: DUP2
00001dc0: MSTORE
00001dc1: PUSH1 0x04
00001dc3: ADD
00001dc4: DUP1
00001dc5: DUP1
00001dc6: PUSH1 0x20
00001dc8: ADD
00001dc9: DUP3
00001dca: DUP2
00001dcb: SUB
00001dcc: DUP3
00001dcd: MSTORE
00001dce: PUSH1 0x22
00001dd0: DUP2
00001dd1: MSTORE
00001dd2: PUSH1 0x20
00001dd4: ADD
00001dd5: DUP1
00001dd6: PUSH2 0x205a
00001dd9: PUSH1 0x22
00001ddb: SWAP2
00001ddc: CODECOPY
00001ddd: PUSH1 0x40
00001ddf: ADD
00001de0: SWAP2
00001de1: POP
00001de2: POP
00001de3: PUSH1 0x40
00001de5: MLOAD
00001de6: DUP1
00001de7: SWAP2
00001de8: SUB
00001de9: SWAP1
00001dea: REVERT
00001deb: JUMPDEST
00001dec: DUP3
00001ded: PUSH1 0x00
00001def: ADD
00001df0: DUP3
00001df1: DUP2
00001df2: SLOAD
00001df3: DUP2
00001df4: LT
00001df5: PUSH2 0x1dfa
00001df8: JUMPI
00001df9: INVALID
00001dfa: JUMPDEST
00001dfb: SWAP1
00001dfc: PUSH1 0x00
00001dfe: MSTORE
00001dff: PUSH1 0x20
00001e01: PUSH1 0x00
00001e03: KECCAK256
00001e04: ADD
00001e05: SLOAD
00001e06: SWAP1
00001e07: POP
00001e08: SWAP3
00001e09: SWAP2
00001e0a: POP
00001e0b: POP
00001e0c: JUMP
00001e0d: JUMPDEST
00001e0e: PUSH1 0x00
00001e10: DUP1
00001e11: DUP4
00001e12: PUSH1 0x01
00001e14: ADD
00001e15: PUSH1 0x00
00001e17: DUP5
00001e18: DUP2
00001e19: MSTORE
00001e1a: PUSH1 0x20
00001e1c: ADD
00001e1d: SWAP1
00001e1e: DUP2
00001e1f: MSTORE
00001e20: PUSH1 0x20
00001e22: ADD
00001e23: PUSH1 0x00
00001e25: KECCAK256
00001e26: SLOAD
00001e27: EQ
00001e28: ISZERO
00001e29: SWAP1
00001e2a: POP
00001e2b: SWAP3
00001e2c: SWAP2
00001e2d: POP
00001e2e: POP
00001e2f: JUMP
00001e30: JUMPDEST
00001e31: PUSH1 0x00
00001e33: DUP4
00001e34: DUP4
00001e35: GT
00001e36: ISZERO
00001e37: DUP3
00001e38: SWAP1
00001e39: PUSH2 0x1edd
00001e3c: JUMPI
00001e3d: PUSH1 0x40
00001e3f: MLOAD
00001e40: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001e61: DUP2
00001e62: MSTORE
00001e63: PUSH1 0x04
00001e65: ADD
00001e66: DUP1
00001e67: DUP1
00001e68: PUSH1 0x20
00001e6a: ADD
00001e6b: DUP3
00001e6c: DUP2
00001e6d: SUB
00001e6e: DUP3
00001e6f: MSTORE
00001e70: DUP4
00001e71: DUP2
00001e72: DUP2
00001e73: MLOAD
00001e74: DUP2
00001e75: MSTORE
00001e76: PUSH1 0x20
00001e78: ADD
00001e79: SWAP2
00001e7a: POP
00001e7b: DUP1
00001e7c: MLOAD
00001e7d: SWAP1
00001e7e: PUSH1 0x20
00001e80: ADD
00001e81: SWAP1
00001e82: DUP1
00001e83: DUP4
00001e84: DUP4
00001e85: PUSH1 0x00
00001e87: JUMPDEST
00001e88: DUP4
00001e89: DUP2
00001e8a: LT
00001e8b: ISZERO
00001e8c: PUSH2 0x1ea2
00001e8f: JUMPI
00001e90: DUP1
00001e91: DUP3
00001e92: ADD
00001e93: MLOAD
00001e94: DUP2
00001e95: DUP5
00001e96: ADD
00001e97: MSTORE
00001e98: PUSH1 0x20
00001e9a: DUP2
00001e9b: ADD
00001e9c: SWAP1
00001e9d: POP
00001e9e: PUSH2 0x1e87
00001ea1: JUMP
00001ea2: JUMPDEST
00001ea3: POP
00001ea4: POP
00001ea5: POP
00001ea6: POP
00001ea7: SWAP1
00001ea8: POP
00001ea9: SWAP1
00001eaa: DUP2
00001eab: ADD
00001eac: SWAP1
00001ead: PUSH1 0x1f
00001eaf: AND
00001eb0: DUP1
00001eb1: ISZERO
00001eb2: PUSH2 0x1ecf
00001eb5: JUMPI
00001eb6: DUP1
00001eb7: DUP3
00001eb8: SUB
00001eb9: DUP1
00001eba: MLOAD
00001ebb: PUSH1 0x01
00001ebd: DUP4
00001ebe: PUSH1 0x20
00001ec0: SUB
00001ec1: PUSH2 0x0100
00001ec4: EXP
00001ec5: SUB
00001ec6: NOT
00001ec7: AND
00001ec8: DUP2
00001ec9: MSTORE
00001eca: PUSH1 0x20
00001ecc: ADD
00001ecd: SWAP2
00001ece: POP
00001ecf: JUMPDEST
00001ed0: POP
00001ed1: SWAP3
00001ed2: POP
00001ed3: POP
00001ed4: POP
00001ed5: PUSH1 0x40
00001ed7: MLOAD
00001ed8: DUP1
00001ed9: SWAP2
00001eda: SUB
00001edb: SWAP1
00001edc: REVERT
00001edd: JUMPDEST
00001ede: POP
00001edf: PUSH1 0x00
00001ee1: DUP4
00001ee2: DUP6
00001ee3: SUB
00001ee4: SWAP1
00001ee5: POP
00001ee6: DUP1
00001ee7: SWAP2
00001ee8: POP
00001ee9: POP
00001eea: SWAP4
00001eeb: SWAP3
00001eec: POP
00001eed: POP
00001eee: POP
00001eef: JUMP
00001ef0: JUMPDEST
00001ef1: PUSH1 0x00
00001ef3: DUP2
00001ef4: PUSH1 0x00
00001ef6: ADD
00001ef7: DUP1
00001ef8: SLOAD
00001ef9: SWAP1
00001efa: POP
00001efb: SWAP1
00001efc: POP
00001efd: SWAP2
00001efe: SWAP1
00001eff: POP
00001f00: JUMP
00001f01: JUMPDEST
00001f02: PUSH1 0x00
00001f04: PUSH2 0x1f0d
00001f07: DUP4
00001f08: DUP4
00001f09: PUSH2 0x1e0d
00001f0c: JUMP
00001f0d: JUMPDEST
00001f0e: PUSH2 0x1f66
00001f11: JUMPI
00001f12: DUP3
00001f13: PUSH1 0x00
00001f15: ADD
00001f16: DUP3
00001f17: SWAP1
00001f18: DUP1
00001f19: PUSH1 0x01
00001f1b: DUP2
00001f1c: SLOAD
00001f1d: ADD
00001f1e: DUP1
00001f1f: DUP3
00001f20: SSTORE
00001f21: DUP1
00001f22: SWAP2
00001f23: POP
00001f24: POP
00001f25: PUSH1 0x01
00001f27: SWAP1
00001f28: SUB
00001f29: SWAP1
00001f2a: PUSH1 0x00
00001f2c: MSTORE
00001f2d: PUSH1 0x20
00001f2f: PUSH1 0x00
00001f31: KECCAK256
00001f32: ADD
00001f33: PUSH1 0x00
00001f35: SWAP1
00001f36: SWAP2
00001f37: SWAP1
00001f38: SWAP2
00001f39: SWAP1
00001f3a: SWAP2
00001f3b: POP
00001f3c: SSTORE
00001f3d: DUP3
00001f3e: PUSH1 0x00
00001f40: ADD
00001f41: DUP1
00001f42: SLOAD
00001f43: SWAP1
00001f44: POP
00001f45: DUP4
00001f46: PUSH1 0x01
00001f48: ADD
00001f49: PUSH1 0x00
00001f4b: DUP5
00001f4c: DUP2
00001f4d: MSTORE
00001f4e: PUSH1 0x20
00001f50: ADD
00001f51: SWAP1
00001f52: DUP2
00001f53: MSTORE
00001f54: PUSH1 0x20
00001f56: ADD
00001f57: PUSH1 0x00
00001f59: KECCAK256
00001f5a: DUP2
00001f5b: SWAP1
00001f5c: SSTORE
00001f5d: POP
00001f5e: PUSH1 0x01
00001f60: SWAP1
00001f61: POP
00001f62: PUSH2 0x1f6b
00001f65: JUMP
00001f66: JUMPDEST
00001f67: PUSH1 0x00
00001f69: SWAP1
00001f6a: POP
00001f6b: JUMPDEST
00001f6c: SWAP3
00001f6d: SWAP2
00001f6e: POP
00001f6f: POP
00001f70: JUMP
00001f71: JUMPDEST
00001f72: PUSH1 0x00
00001f74: DUP1
00001f75: DUP4
00001f76: PUSH1 0x01
00001f78: ADD
00001f79: PUSH1 0x00
00001f7b: DUP5
00001f7c: DUP2
00001f7d: MSTORE
00001f7e: PUSH1 0x20
00001f80: ADD
00001f81: SWAP1
00001f82: DUP2
00001f83: MSTORE
00001f84: PUSH1 0x20
00001f86: ADD
00001f87: PUSH1 0x00
00001f89: KECCAK256
00001f8a: SLOAD
00001f8b: SWAP1
00001f8c: POP
00001f8d: PUSH1 0x00
00001f8f: DUP2
00001f90: EQ
00001f91: PUSH2 0x204d
00001f94: JUMPI
00001f95: PUSH1 0x00
00001f97: PUSH1 0x01
00001f99: DUP3
00001f9a: SUB
00001f9b: SWAP1
00001f9c: POP
00001f9d: PUSH1 0x00
00001f9f: PUSH1 0x01
00001fa1: DUP7
00001fa2: PUSH1 0x00
00001fa4: ADD
00001fa5: DUP1
00001fa6: SLOAD
00001fa7: SWAP1
00001fa8: POP
00001fa9: SUB
00001faa: SWAP1
00001fab: POP
00001fac: PUSH1 0x00
00001fae: DUP7
00001faf: PUSH1 0x00
00001fb1: ADD
00001fb2: DUP3
00001fb3: DUP2
00001fb4: SLOAD
00001fb5: DUP2
00001fb6: LT
00001fb7: PUSH2 0x1fbc
00001fba: JUMPI
00001fbb: INVALID
00001fbc: JUMPDEST
00001fbd: SWAP1
00001fbe: PUSH1 0x00
00001fc0: MSTORE
00001fc1: PUSH1 0x20
00001fc3: PUSH1 0x00
00001fc5: KECCAK256
00001fc6: ADD
00001fc7: SLOAD
00001fc8: SWAP1
00001fc9: POP
00001fca: DUP1
00001fcb: DUP8
00001fcc: PUSH1 0x00
00001fce: ADD
00001fcf: DUP5
00001fd0: DUP2
00001fd1: SLOAD
00001fd2: DUP2
00001fd3: LT
00001fd4: PUSH2 0x1fd9
00001fd7: JUMPI
00001fd8: INVALID
00001fd9: JUMPDEST
00001fda: SWAP1
00001fdb: PUSH1 0x00
00001fdd: MSTORE
00001fde: PUSH1 0x20
00001fe0: PUSH1 0x00
00001fe2: KECCAK256
00001fe3: ADD
00001fe4: DUP2
00001fe5: SWAP1
00001fe6: SSTORE
00001fe7: POP
00001fe8: PUSH1 0x01
00001fea: DUP4
00001feb: ADD
00001fec: DUP8
00001fed: PUSH1 0x01
00001fef: ADD
00001ff0: PUSH1 0x00
00001ff2: DUP4
00001ff3: DUP2
00001ff4: MSTORE
00001ff5: PUSH1 0x20
00001ff7: ADD
00001ff8: SWAP1
00001ff9: DUP2
00001ffa: MSTORE
00001ffb: PUSH1 0x20
00001ffd: ADD
00001ffe: PUSH1 0x00
00002000: KECCAK256
00002001: DUP2
00002002: SWAP1
00002003: SSTORE
00002004: POP
00002005: DUP7
00002006: PUSH1 0x00
00002008: ADD
00002009: DUP1
0000200a: SLOAD
0000200b: DUP1
0000200c: PUSH2 0x2011
0000200f: JUMPI
00002010: INVALID
00002011: JUMPDEST
00002012: PUSH1 0x01
00002014: SWAP1
00002015: SUB
00002016: DUP2
00002017: DUP2
00002018: SWAP1
00002019: PUSH1 0x00
0000201b: MSTORE
0000201c: PUSH1 0x20
0000201e: PUSH1 0x00
00002020: KECCAK256
00002021: ADD
00002022: PUSH1 0x00
00002024: SWAP1
00002025: SSTORE
00002026: SWAP1
00002027: SSTORE
00002028: DUP7
00002029: PUSH1 0x01
0000202b: ADD
0000202c: PUSH1 0x00
0000202e: DUP8
0000202f: DUP2
00002030: MSTORE
00002031: PUSH1 0x20
00002033: ADD
00002034: SWAP1
00002035: DUP2
00002036: MSTORE
00002037: PUSH1 0x20
00002039: ADD
0000203a: PUSH1 0x00
0000203c: KECCAK256
0000203d: PUSH1 0x00
0000203f: SWAP1
00002040: SSTORE
00002041: PUSH1 0x01
00002043: SWAP5
00002044: POP
00002045: POP
00002046: POP
00002047: POP
00002048: POP
00002049: PUSH2 0x2053
0000204c: JUMP
0000204d: JUMPDEST
0000204e: PUSH1 0x00
00002050: SWAP2
00002051: POP
00002052: POP
00002053: JUMPDEST
00002054: SWAP3
00002055: SWAP2
00002056: POP
00002057: POP
00002058: JUMP
00002059: INVALID
0000205a: GASLIMIT
0000205b: PUSH15 0x756d657261626c655365743a20696e
0000206b: PUSH5 0x6578206f75
00002071: PUSH21 0x206f6620626f756e6473416363657373436f6e7472
00002087: PUSH16 0x6c3a2073656e646572206d7573742062
00002098: PUSH6 0x20616e206164
0000209f: PUSH14 0x696e20746f206772616e7443616c
000020ae: PUSH13 0x657220646f6573206e6f742068
000020bc: PUSH2 0x7665
000020bf: KECCAK256
000020c0: PUSH17 0x65726d697373696f6e20746f2077697468
000020d2: PUSH5 0x7261774163
000020d8: PUSH4 0x65737343
000020dd: PUSH16 0x6e74726f6c3a2073656e646572206d75
000020ee: PUSH20 0x7420626520616e2061646d696e20746f20726576
00002103: PUSH16 0x6b65536166654d6174683a206d756c74
00002114: PUSH10 0x706c69636174696f6e20
0000211f: PUSH16 0x766572666c6f77436f6e747261637420
00002130: PUSH10 0x6e7374616e6365206861
0000213b: PUSH20 0x20616c7265616479206265656e20696e69746961
00002150: PUSH13 0x697a6564455448207061796d65
0000215e: PUSH15 0x7420646f6573206e6f74206d617463
0000216e: PUSH9 0x20545255206f726465
00002178: PUSH19 0x43616c6c657220646f6573206e6f7420686176
0000218c: PUSH6 0x207065726d69
00002193: PUSH20 0x73696f6e20746f2077686974656c69737420536f
000021a8: PUSH13 0x76657273416363657373436f6e
000021b6: PUSH21 0x726f6c3a2063616e206f6e6c792072656e6f756e63
000021cc: PUSH6 0x20726f6c6573
000021d3: KECCAK256
000021d4: PUSH7 0x6f722073656c66
000021dc: LOG2
000021dd: PUSH5 0x6970667358
000021e3: UNKNOWN(0x22)
000021e4: SLT
000021e5: KECCAK256
000021e6: UNKNOWN(0xC0)
000021e7: CALLDATASIZE
000021e8: UNKNOWN(0xD8)
000021e9: RETURNDATASIZE
000021ea: STOP
000021eb: UNKNOWN(0xC8)
000021ec: UNKNOWN(0xDA)
000021ed: LOG0
000021ee: PUSH6 0xd4906d007d15
000021f5: UNKNOWN(0x2E)
000021f6: UNKNOWN(0xF7)
000021f7: UNKNOWN(0xAD)
000021f8: SUB
000021f9: SLOAD
000021fa: DUP1
000021fb: MSTORE8
000021fc: PUSH13 0x8f7786883661e1e85964736f6c
0000220a: PUSH4 0x4300060a
0000220f: STOP
00002210: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x14580b525f8a62672e38aff425bf0b3e281faa410d3704903e5cd512e9b39be4
call_targets: 0xc186e6f0163e21be057e95aa135edd52508d14d3
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x14580b525f8a62672e38aff425bf0b3e281faa410d3704903e5cd512e9b39be4",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xc186e6f0163e21be057e95aa135edd52508d14d3"
    ],
    "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": "0xe2787405",
            "selector": "0xe2787405",
            "calldata_variants": [
                "0xe2787405",
                "0xe27874050000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec58f4b8",
            "selector": "0xec58f4b8",
            "calldata_variants": [
                "0xec58f4b8",
                "0xec58f4b80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc22290b",
            "selector": "0xfc22290b",
            "calldata_variants": [
                "0xfc22290b",
                "0xfc22290b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfeb9bf89",
            "selector": "0xfeb9bf89",
            "calldata_variants": [
                "0xfeb9bf89",
                "0xfeb9bf890000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdb5c0f79",
            "selector": "0xdb5c0f79",
            "calldata_variants": [
                "0xdb5c0f79",
                "0xdb5c0f790000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe086e5ec",
            "selector": "0xe086e5ec",
            "calldata_variants": [
                "0xe086e5ec",
                "0xe086e5ec0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa217fddf",
            "selector": "0xa217fddf",
            "calldata_variants": [
                "0xa217fddf",
                "0xa217fddf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3992,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4695,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4872,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 5,
    "guards_detected": [],
    "untrusted_call_count": 5
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x14580b525f8a62672e38aff425bf0b3e281faa410d3704903e5cd512e9b39be4
call_targets: 0xc186e6f0163e21be057e95aa135edd52508d14d3
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x14580b525f8a62672e38aff425bf0b3e281faa410d3704903e5cd512e9b39be4",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xc186e6f0163e21be057e95aa135edd52508d14d3"
    ],
    "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": "0xe2787405",
            "selector": "0xe2787405",
            "calldata_variants": [
                "0xe2787405",
                "0xe27874050000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec58f4b8",
            "selector": "0xec58f4b8",
            "calldata_variants": [
                "0xec58f4b8",
                "0xec58f4b80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc22290b",
            "selector": "0xfc22290b",
            "calldata_variants": [
                "0xfc22290b",
                "0xfc22290b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfeb9bf89",
            "selector": "0xfeb9bf89",
            "calldata_variants": [
                "0xfeb9bf89",
                "0xfeb9bf890000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdb5c0f79",
            "selector": "0xdb5c0f79",
            "calldata_variants": [
                "0xdb5c0f79",
                "0xdb5c0f790000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe086e5ec",
            "selector": "0xe086e5ec",
            "calldata_variants": [
                "0xe086e5ec",
                "0xe086e5ec0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa217fddf",
            "selector": "0xa217fddf",
            "calldata_variants": [
                "0xa217fddf",
                "0xa217fddf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3992,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4695,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4872,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 5,
    "guards_detected": []
}
medium other codex Computed external CALLs (some with ETH value) can be dangerous if target is attacker-controlled 75 no
view
evidence_json
{
    "evidence": "Detector reports 5 CALL sites with computed targets/values and no guards detected. CALL sites at pc 3992, 4695, 4872, 4948, 6009; `returndata_checked` is null. Validation trace did not confirm a varying target (classified constant_target, confirmed=false), so attacker control is uncertain.",
    "locations": [
        "pc:3992",
        "pc:4695",
        "pc:4872",
        "pc:4948",
        "pc:6009"
    ],
    "recommendation": "Constrain call targets to trusted/allowlisted addresses, make critical targets immutable or tightly access-controlled, and add reentrancy guards around state-changing flows that execute low-level CALLs with value. Also validate return data where applicable (e.g., ERC20 calls).",
    "exploit_scenario": "If any call target is derived from user input or a privileged storage slot that can be mis-set (e.g., token/recipient address), an attacker can point it to a malicious contract and trigger the CALL sites to execute arbitrary code and potentially reenter or drain ETH before state is finalized."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 9
}