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

Analysis Run

019be3d6-8519-73c1-9e7a-74e01936c865

complete
Chain ID
1
Address
Block Number
Created
Thu, Jan 22, 2026 3:54 AM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Bytecode only
Review Backing
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
41170 artifact.fetch complete 1 / 3 2 months ago
41171 proxy.resolve complete 1 / 3 2 months ago
41172 tool.cast_disasm complete 1 / 3 2 months ago
41173 analysis.bundle complete 1 / 3 2 months ago
41174 capability.graph complete 1 / 3 2 months ago
41175 detector.run complete 1 / 3 2 months ago
41176 validation.fork complete 1 / 3 2 months ago
41446 report.consolidate complete 1 / 6 2 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 analysis shows two CALL sites with computed target/value and possible ETH transfer. Dynamic validation observed a constant target (self) in one trace, so risk depends on whether the target can vary in other paths.
View stdout
{"no_findings":false,"summary":"Bytecode analysis shows two CALL sites with computed target/value and possible ETH transfer. Dynamic validation observed a constant target (self) in one trace, so risk depends on whether the target can vary in other paths.","findings":[{"severity":"medium","category":"reentrancy","title":"Computed CALL with ETH value may reach untrusted target","exploit_scenario":"If the CALL target/value are derived from user-controlled calldata or mutable storage, an attacker can trigger an external call with ETH to an arbitrary address and reenter before state is finalized, or redirect funds. The only observed validation trace showed the target constant to the contract itself (0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4), which would reduce risk, but bytecode-only evidence cannot confirm the target is always constant.","recommendation":"Constrain CALL target/value to trusted addresses (immutable/whitelist), add reentrancy protection around any state changes before/after the call, and check CALL success/returndata so failures cannot be ignored.","evidence":"CALL sites at pc 1670 and 1942 have target/value marked computed and returndata_checked=null; detector flags untrusted CALL + ETH value transfer possible; validation saw constant target but not confirmed.","locations":["pc:0x686","pc:0x796"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-a_tr5ixv
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019be4ab-6ad9-7c63-9986-3ac1ff5885d4
--------
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-a_tr5ixv succeeded in 6ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-a_tr5ixv succeeded in 14ms:
{
  "analysis_artifact": {
    "address": "0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4",
    "artifact_hash": "0xd6c02e41ddacff46fa57e8f2817a8bf367f26b91db62b4ddc1bc84b7ffef2c76",
    "artifact_json": {
      "auth": {
        "guards": []
      },
      "basic_blocks": [
        {
          "end_pc": 12,
          "hash": "0x3b678a566ed99b991171254f620dfebf3d843a8bbeff65936fc04155ae4fa07a",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "CALLDATASIZE",
            "LT",
            "PUSH2",

thinking
**Mapping suspicious PC addresses**

I'm identifying locations in the large file related to highlighted program counters by searching for "pc": 1670 and 1942 with context, aiming to examine call site details around these points.
exec
/bin/bash -lc "rg -n \"\\\"pc\\\": 1670|\\\"pc\\\": 1942|call:1670|call:1942\" BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 26ms:
5940:          "pc": 1670,
5947:          "pc": 1942,
13863:          "to": "call:1670",
13867:          "from": "call:1670",
13873:          "to": "call:1942",
13877:          "from": "call:1942",
16173:          "id": "call:1670",
16175:          "pc": 1670,
16179:          "id": "call:1942",
16181:          "pc": 1942,
16329:            "pc": 1670,
16336:            "pc": 1942,
16374:            "pc": 1670,
16381:            "pc": 1942,

thinking
**Planning call graph edge extraction**

I'm aiming to gather evidence for call graph edges by extracting code snippets with line numbers and context using ripgrep or sed.
exec
/bin/bash -lc "sed -n '5900,6020p' BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 7ms:
            "PUSH5",
            "OP_22",
            "SLT",
            "SHA3",
            "SUB",
            "OP_9A",
            "OP_BA",
            "OP_C9",
            "OP_4B",
            "OP_27",
            "OP_5E",
            "OP_B1",
            "OP_B7",
            "OP_D6",
            "OP_4A",
            "CALLDATALOAD",
            "OP_F9",
            "OP_CD",
            "NUMBER",
            "CHAINID",

thinking
**Searching for basic block by start_pc**
exec
/bin/bash -lc "rg -n \"start_pc\":\\ 16.. BYTECODE_BUNDLE.json | head" in /tmp/codex-a_tr5ixv succeeded in 13ms:


thinking
**Adjusting search pattern with escapes**
exec
/bin/bash -lc "rg -n \"\\\"start_pc\\\": 16\" BYTECODE_BUNDLE.json | head" in /tmp/codex-a_tr5ixv succeeded in 10ms:
204:          "start_pc": 167
2038:          "start_pc": 1685
13992:          "start_pc": 167,
14769:          "start_pc": 1685,

thinking
**Investigating opcode context around specific start_pc**

I'm searching for "1670" with context in the basic block listing to locate opcodes around the needed start_pc near 1660–1670. This will help clarify the correct start_pc placement.
exec
/bin/bash -lc 'rg -n "1670" -C 2 BYTECODE_BUNDLE.json | head -n 40' in /tmp/codex-a_tr5ixv succeeded in 26ms:
5938-        {
5939-          "opcode": "CALL",
5940:          "pc": 1670,
5941-          "returndata_checked": null,
5942-          "target_expression_category": "computed",
--
13861-        {
13862-          "from": "bb:1576",
13863:          "to": "call:1670",
13864-          "type": "contains"
13865-        },
13866-        {
13867:          "from": "call:1670",
13868-          "to": "sink:call",
13869-          "type": "capability"
--
16171-        },
16172-        {
16173:          "id": "call:1670",
16174-          "opcode": "CALL",

thinking
**Searching for block details by ID**
exec
/bin/bash -lc 'rg -n "bb:1576" -C 2 BYTECODE_BUNDLE.json' in /tmp/codex-a_tr5ixv succeeded in 31ms:
6653-        },
6654-        {
6655:          "from": "bb:1576",
6656-          "to": "bb:1718",
6657-          "type": "control_flow"
6658-        },
6659-        {
6660:          "from": "bb:1576",
6661-          "to": "bb:1685",
6662-          "type": "control_flow_fallthrough"
--
12780-        },
12781-        {
12782:          "from": "bb:1576",
12783-          "to": "bb:1718",
12784-          "type": "control_flow"
12785-        },
12786-        {
12787:          "from": "bb:1576",
12788-          "to": "bb:1685",

thinking
**Locating opcodes for specific block**

I'm checking around line 14740 to find opcodes for block 1576 in the basic_blocks list, aiming to identify the call details.
exec
/bin/bash -lc "sed -n '14740,14790p' BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 9ms:
          "id": "bb:1501",
          "start_pc": 1501,
          "type": "basic_block"
        },
        {
          "end_pc": 1544,
          "hash": "0x15dc8651e5ecd7f26e87bb24d695aa733a51cb60e3d01e0e9911393e71e97fc8",
          "id": "bb:1521",
          "start_pc": 1521,
          "type": "basic_block"
        },
        {
          "end_pc": 1575,
          "hash": "0xfaf595e2596bab0cf760e6bfd133e479c90c1fb451a3727a5e82a9531e8d8286",
          "id": "bb:1545",
          "start_pc": 1545,
          "type": "basic_block"
        },
        {
          "end_pc": 1684,

thinking
**Identifying opcode location**

The earlier section includes opcodes with start_pc and end_pc, so I'll search there for start_pc around 1576 to find relevant opcodes near pc 1670.
exec
/bin/bash -lc "rg -n \"\\\"start_pc\\\": 1576\" -C 3 BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 11ms:
2003-            "PUSH2",
2004-            "JUMPI"
2005-          ],
2006:          "start_pc": 1576
2007-        },
2008-        {
2009-          "end_pc": 1717,
--
14759-          "end_pc": 1684,
14760-          "hash": "0x998c8f219902aaebf418c67633fb4c88c6396ea494af299b3166afce11f76711",
14761-          "id": "bb:1576",
14762:          "start_pc": 1576,
14763-          "type": "basic_block"
14764-        },
14765-        {

thinking
**Identifying opcode block lines**

I'm focusing on extracting code between lines 1960 and 2020 to capture the block containing opcodes around line 1990.
exec
/bin/bash -lc "sed -n '1960,2035p' BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 25ms:
            "ADD",
            "OP_8A",
            "OP_90",
            "MSTORE",
            "OP_81",
            "ADD",
            "OP_83",
            "OP_90",
            "MSTORE",
            "PUSH1",
            "ADD",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_91",
            "SUB",
            "OP_90",
            "OP_A1",
            "PUSH1",
            "MLOAD",

thinking
**Analyzing call and returndata checks**

I'm examining a CALL opcode followed by RETURNDATASIZE and conditional jump patterns that might indicate a return data check, but the semantics are unclear and detectors show no returndata_checked. The call target and value are computed dynamically, so next I'll locate and analyze related opcodes around program counters 1870–1980 to clarify how these are set.
exec
/bin/bash -lc "rg -n \"\\\"start_pc\\\": 19\" BYTECODE_BUNDLE.json | head -n 20" in /tmp/codex-a_tr5ixv succeeded in 7ms:
241:          "start_pc": 194
2296:          "start_pc": 1957
2307:          "start_pc": 1990
2322:          "start_pc": 1995
14013:          "start_pc": 194,
14853:          "start_pc": 1957,
14860:          "start_pc": 1990,
14867:          "start_pc": 1995,

thinking
**Exploring call location near opcode 1942**

I'm searching for opcode blocks and call instructions around PC 1942 to locate the relevant start_pc range and better understand the code execution flow nearby.
exec
/bin/bash -lc "sed -n '2200,2315p' BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 6ms:
          "start_pc": 1833
        },
        {
          "end_pc": 1956,
          "hash": "0x27e3113cb29d10e055cef0ce1606473cfded9bff97b5a61129ee591076011c31",
          "opcodes": [
            "JUMPDEST",
            "PUSH32",
            "CALLER",
            "PUSH1",
            "OP_80",
            "MLOAD",
            "PUSH1",
            "PUSH1",
            "PUSH1",
            "SHL",
            "SUB",
            "OP_90",
            "OP_92",
            "AND",


thinking
**Analyzing internal self-call for reentrancy**

The call at this block appears to be a CALL to the contract's own address, indicating a potential internal self-call that could trigger fallback or reentrancy if value is transferred and state updates follow. No delegatecall is involved, so reentrancy risk hinges on this self-call pattern.
thinking
**Clarifying self-call implications and access control**

The self-call uses CALL with nonzero value and call data possibly forwarding CALLER, likely enabling internal logic like fallback or ETH handling. This pattern can bypass "onlySelf" guards by setting msg.sender to the contract itself, posing a subtle reentrancy or access control risk if user-supplied data triggers privileged calls. No upgradeability or delegatecall adds confidence, but missing explicit guard detection means access control needs manual review.
exec
/bin/bash -lc 'rg -n "storage" BYTECODE_BUNDLE.json | head' in /tmp/codex-a_tr5ixv succeeded in 6ms:
7746:          "storage": {
7940:          "storage": {
8134:          "storage": {
8328:          "storage": {
8522:          "storage": {
8716:          "storage": {
8910:          "storage": {
9104:          "storage": {
9298:          "storage": {
9492:          "storage": {

thinking
**Inspecting storage slot entries**

I'm focusing on the storage entries around line 7700 to gather evidence about fallback or payable functions by examining storage slots, callsites, and detectors.
exec
/bin/bash -lc "sed -n '7700,7765p' BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 12ms:
        {
          "entry_pc": 1901074598,
          "selector": "0x5ce37975"
        },
        {
          "entry_pc": 2042253463,
          "selector": "0x715018a6"
        },
        {
          "entry_pc": null,
          "selector": "0x79ba5097"
        },
        {
          "entry_pc": 773487949,
          "selector": "0x211f0036"
        },
        {
          "entry_pc": 773717264,
          "selector": "0x2e1a7d4d"
        },

thinking
**Searching for functions with call sinks**

I'm focusing on identifying functions that have call sinks by searching for `"call":` values greater than zero, targeting functions like 0x96fafd9d for deeper inspection. Next, I'll pinpoint function selectors involved in calls and callsites.
exec
/bin/bash -lc "rg -n \"\\\"call\\\": [1-9]\" BYTECODE_BUNDLE.json | head -n 20" in /tmp/codex-a_tr5ixv succeeded in 12ms:
7741:            "call": 2,
7935:            "call": 2,
8129:            "call": 2,
8323:            "call": 2,
8517:            "call": 2,
8711:            "call": 2,
8905:            "call": 2,
9099:            "call": 2,
9293:            "call": 2,
9487:            "call": 2,
9681:            "call": 2,
9875:            "call": 2,
10069:            "call": 2,
10263:            "call": 2,
10457:            "call": 2,
10651:            "call": 2,
10845:            "call": 2,
11039:            "call": 2,
11233:            "call": 2,
11427:            "call": 2,


thinking
**Analyzing call patterns and potential risks**

Noticing many functions share two call sinks with constant targets equal to the contract itself suggests internal calls, possibly fallback or multicall patterns; though the presence of computed call targets hints at potential untrusted external calls needing further evidence to confirm risk.
thinking
**Highlighting uncertain dynamic call risks and missing revert checks**

The bytecode shows CALL with computed targets but observed constant targets during validation, making untrusted call risk uncertain; no clear reentrancy guard or explicit return-data checks on call success were detected, indicating a potential low-medium severity risk if call failures are ignored or reentrancy occurs.
exec
/bin/bash -lc 'rg -n "selectors" BYTECODE_BUNDLE.json | head' in /tmp/codex-a_tr5ixv succeeded in 8ms:
11809:      "selectors": [
exec
/bin/bash -lc "sed -n '11809,11880p' BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 8ms:
      "selectors": [
        "0x96fafd9d",
        "0xa677f982",
        "0xd902dbc0",
        "0xda26f12b",
        "0xe30c3978",
        "0xf2fde38b",
        "0x7f847904",
        "0x8456cb59",
        "0x8a65d874",
        "0x8da5cb5b",
        "0x9695e195",
        "0x51297ac5",
        "0x5c975abb",
        "0x5ce37975",
        "0x715018a6",
        "0x79ba5097",
        "0x211f0036",
        "0x2e1a7d4d",
        "0x2e1dfd10",


thinking
**Analyzing function and detector details**

The selectors show 21 functions but only 2 detectors, indicating few findings. I’m focusing on identifying which functions use the external call by inspecting call graph edges and function details, while noting possible data repetition across functions that share similar sink and storage info.
thinking
**Detailing potential untrusted external calls**

The artifact shows multiple functions making CALL operations with computed targets and values, likely to itself or token contracts, posing medium-risk untrusted external call scenarios with possible reentrancy or authorization bypass. Evidence includes CALL opcodes at specific PCs, dynamic call target validation flagged as constant but unconfirmed, no reentrancy guards detected, and call data built using contract caller; findings will carefully note uncertainties and severity.
exec
/bin/bash -lc 'rg -n "fn:0x.*call:1670" BYTECODE_BUNDLE.json' in /tmp/codex-a_tr5ixv exited 1 in 16ms:


thinking
**Investigating edge usage**

I'm focusing on the "capability_edges" and inspecting code around line 13850 to understand how edges are used in calls.
exec
/bin/bash -lc "sed -n '13840,13880p' BYTECODE_BUNDLE.json" in /tmp/codex-a_tr5ixv succeeded in 20ms:
        },
        {
          "from": "fn:0x2e1a7d4d",
          "to": "bb:773717264",
          "type": "entry"
        },
        {
          "from": "fn:0x2e1dfd10",
          "to": "bb:866629009",
          "type": "entry"
        },
        {
          "from": "fn:0x33a7b591",
          "to": "bb:1061922874",
          "type": "entry"
        },
        {
          "from": "fn:0x3f4ba83a",
          "to": "bb:0",
          "type": "entry"


thinking
**Assessing call and success check logic**

Edges call to key blocks are identified, but mapping which functions reach them is complex; I'll focus on call sites and possible ETH transfer without clear guards, rating severity medium. Also, I’m decoding EVM opcodes to verify if there's a proper call success check after CALL but found the mapping inconclusive so far.
thinking
```json
{
  "no_findings": false,
  "summary": "Bytecode shows two CALL sites with computed target/value and possible ETH transfer; dynamic validation observed constant target (self), so risk depends on whether target can vary.",
  "findings": [
    {
      "severity": "medium",
      "category": "reentrancy",
      "title": "Computed CALL with ETH value may reach untrusted target",
      "exploit_scenario": "If the CALL target/value are derived from user-controlled calldata or mutable storage, an attacker can trigger an external call with ETH to an arbitrary address and reenter before state is finalized, or redirect funds. The only observed validation trace showed target constant to the contract itself (0x2c11...), which would reduce risk, but bytecode alone cannot confirm the target is always constant.",
      "recommendation": "Constrain the CALL target/value to trusted addresses (e.g., immutable/whitelist), add reentrancy protection around any state changes before/after the call, and check the CALL success/returndata so failures cannot be ignored.",
      "evidence": "Two CALL sites at pc 1670 and 1942 with target/value marked computed and returndata_checked=null; detector flags untrusted CALL + ETH value transfer possible; dynamic validation observed constant target 0x2c11... but not confirmed.",
      "locations": ["pc:0x686", "pc:0x796"]
    }
  ]
}
```
codex
{"no_findings":false,"summary":"Bytecode analysis shows two CALL sites with computed target/value and possible ETH transfer. Dynamic validation observed a constant target (self) in one trace, so risk depends on whether the target can vary in other paths.","findings":[{"severity":"medium","category":"reentrancy","title":"Computed CALL with ETH value may reach untrusted target","exploit_scenario":"If the CALL target/value are derived from user-controlled calldata or mutable storage, an attacker can trigger an external call with ETH to an arbitrary address and reenter before state is finalized, or redirect funds. The only observed validation trace showed the target constant to the contract itself (0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4), which would reduce risk, but bytecode-only evidence cannot confirm the target is always constant.","recommendation":"Constrain CALL target/value to trusted addresses (immutable/whitelist), add reentrancy protection around any state changes before/after the call, and check CALL success/returndata so failures cannot be ignored.","evidence":"CALL sites at pc 1670 and 1942 have target/value marked computed and returndata_checked=null; detector flags untrusted CALL + ETH value transfer possible; validation saw constant target but not confirmed.","locations":["pc:0x686","pc:0x796"]}]}
tokens used
37,152
Metadata
{
    "codex": {
        "ran_at": "2026-01-22T07:50:00.650809+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 10772,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Bytecode analysis shows two CALL sites with computed target/value and possible ETH transfer. Dynamic validation observed a constant target (self) in one trace, so risk depends on whether the target can vary in other paths.",
    "raw_final": {
        "summary": "Bytecode analysis shows two CALL sites with computed target/value and possible ETH transfer. Dynamic validation observed a constant target (self) in one trace, so risk depends on whether the target can vary in other paths.",
        "findings": [
            {
                "title": "Computed CALL with ETH value may reach untrusted target",
                "category": "reentrancy",
                "evidence": "CALL sites at pc 1670 and 1942 have target/value marked computed and returndata_checked=null; detector flags untrusted CALL + ETH value transfer possible; validation saw constant target but not confirmed.",
                "severity": "medium",
                "locations": [
                    "pc:0x686",
                    "pc:0x796"
                ],
                "recommendation": "Constrain CALL target/value to trusted addresses (immutable/whitelist), add reentrancy protection around any state changes before/after the call, and check CALL success/returndata so failures cannot be ignored.",
                "exploit_scenario": "If the CALL target/value are derived from user-controlled calldata or mutable storage, an attacker can trigger an external call with ETH to an arbitrary address and reenter before state is finalized, or redirect funds. The only observed validation trace showed the target constant to the contract itself (0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4), which would reduce risk, but bytecode-only evidence cannot confirm the target is always constant."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
0
Total opcodes
3637
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x012a
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x7f847904
00000019: GT
0000001a: PUSH2 0x00ab
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0x96fafd9d
00000024: GT
00000025: PUSH2 0x006f
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0x96fafd9d
0000002f: EQ
00000030: PUSH2 0x03c5
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xa677f982
0000003a: EQ
0000003b: PUSH2 0x03e2
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xd902dbc0
00000045: EQ
00000046: PUSH2 0x0402
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xda26f12b
00000050: EQ
00000051: PUSH2 0x0422
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xe30c3978
0000005b: EQ
0000005c: PUSH2 0x0438
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xf2fde38b
00000066: EQ
00000067: PUSH2 0x0456
0000006a: JUMPI
0000006b: PUSH1 0x00
0000006d: DUP1
0000006e: REVERT
0000006f: JUMPDEST
00000070: DUP1
00000071: PUSH4 0x7f847904
00000076: EQ
00000077: PUSH2 0x02b6
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0x8456cb59
00000081: EQ
00000082: PUSH2 0x02c9
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0x8a65d874
0000008c: EQ
0000008d: PUSH2 0x02de
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0x8da5cb5b
00000097: EQ
00000098: PUSH2 0x0354
0000009b: JUMPI
0000009c: DUP1
0000009d: PUSH4 0x9695e195
000000a2: EQ
000000a3: PUSH2 0x0386
000000a6: JUMPI
000000a7: PUSH1 0x00
000000a9: DUP1
000000aa: REVERT
000000ab: JUMPDEST
000000ac: DUP1
000000ad: PUSH4 0x51297ac5
000000b2: GT
000000b3: PUSH2 0x00f2
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0x51297ac5
000000bd: EQ
000000be: PUSH2 0x01fb
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0x5c975abb
000000c8: EQ
000000c9: PUSH2 0x021b
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH4 0x5ce37975
000000d3: EQ
000000d4: PUSH2 0x0245
000000d7: JUMPI
000000d8: DUP1
000000d9: PUSH4 0x715018a6
000000de: EQ
000000df: PUSH2 0x028c
000000e2: JUMPI
000000e3: DUP1
000000e4: PUSH4 0x79ba5097
000000e9: EQ
000000ea: PUSH2 0x02a1
000000ed: JUMPI
000000ee: PUSH1 0x00
000000f0: DUP1
000000f1: REVERT
000000f2: JUMPDEST
000000f3: DUP1
000000f4: PUSH4 0x211f0036
000000f9: EQ
000000fa: PUSH2 0x012f
000000fd: JUMPI
000000fe: DUP1
000000ff: PUSH4 0x2e1a7d4d
00000104: EQ
00000105: PUSH2 0x0151
00000108: JUMPI
00000109: DUP1
0000010a: PUSH4 0x2e1dfd10
0000010f: EQ
00000110: PUSH2 0x0171
00000113: JUMPI
00000114: DUP1
00000115: PUSH4 0x33a7b591
0000011a: EQ
0000011b: PUSH2 0x01ab
0000011e: JUMPI
0000011f: DUP1
00000120: PUSH4 0x3f4ba83a
00000125: EQ
00000126: PUSH2 0x01e6
00000129: JUMPI
0000012a: JUMPDEST
0000012b: PUSH1 0x00
0000012d: DUP1
0000012e: REVERT
0000012f: JUMPDEST
00000130: CALLVALUE
00000131: DUP1
00000132: ISZERO
00000133: PUSH2 0x013b
00000136: JUMPI
00000137: PUSH1 0x00
00000139: DUP1
0000013a: REVERT
0000013b: JUMPDEST
0000013c: POP
0000013d: PUSH2 0x014f
00000140: PUSH2 0x014a
00000143: CALLDATASIZE
00000144: PUSH1 0x04
00000146: PUSH2 0x1204
00000149: JUMP
0000014a: JUMPDEST
0000014b: PUSH2 0x0476
0000014e: JUMP
0000014f: JUMPDEST
00000150: STOP
00000151: JUMPDEST
00000152: CALLVALUE
00000153: DUP1
00000154: ISZERO
00000155: PUSH2 0x015d
00000158: JUMPI
00000159: PUSH1 0x00
0000015b: DUP1
0000015c: REVERT
0000015d: JUMPDEST
0000015e: POP
0000015f: PUSH2 0x014f
00000162: PUSH2 0x016c
00000165: CALLDATASIZE
00000166: PUSH1 0x04
00000168: PUSH2 0x124f
0000016b: JUMP
0000016c: JUMPDEST
0000016d: PUSH2 0x06e7
00000170: JUMP
00000171: JUMPDEST
00000172: CALLVALUE
00000173: DUP1
00000174: ISZERO
00000175: PUSH2 0x017d
00000178: JUMPI
00000179: PUSH1 0x00
0000017b: DUP1
0000017c: REVERT
0000017d: JUMPDEST
0000017e: POP
0000017f: PUSH1 0x06
00000181: SLOAD
00000182: PUSH1 0x07
00000184: SLOAD
00000185: PUSH2 0x018f
00000188: SWAP2
00000189: PUSH1 0xff
0000018b: AND
0000018c: SWAP1
0000018d: DUP3
0000018e: JUMP
0000018f: JUMPDEST
00000190: PUSH1 0x40
00000192: DUP1
00000193: MLOAD
00000194: SWAP3
00000195: ISZERO
00000196: ISZERO
00000197: DUP4
00000198: MSTORE
00000199: PUSH1 0x20
0000019b: DUP4
0000019c: ADD
0000019d: SWAP2
0000019e: SWAP1
0000019f: SWAP2
000001a0: MSTORE
000001a1: ADD
000001a2: JUMPDEST
000001a3: PUSH1 0x40
000001a5: MLOAD
000001a6: DUP1
000001a7: SWAP2
000001a8: SUB
000001a9: SWAP1
000001aa: RETURN
000001ab: JUMPDEST
000001ac: CALLVALUE
000001ad: DUP1
000001ae: ISZERO
000001af: PUSH2 0x01b7
000001b2: JUMPI
000001b3: PUSH1 0x00
000001b5: DUP1
000001b6: REVERT
000001b7: JUMPDEST
000001b8: POP
000001b9: PUSH2 0x01d8
000001bc: PUSH2 0x01c6
000001bf: CALLDATASIZE
000001c0: PUSH1 0x04
000001c2: PUSH2 0x1268
000001c5: JUMP
000001c6: JUMPDEST
000001c7: PUSH1 0x0b
000001c9: PUSH1 0x20
000001cb: MSTORE
000001cc: PUSH1 0x00
000001ce: SWAP1
000001cf: DUP2
000001d0: MSTORE
000001d1: PUSH1 0x40
000001d3: SWAP1
000001d4: KECCAK256
000001d5: SLOAD
000001d6: DUP2
000001d7: JUMP
000001d8: JUMPDEST
000001d9: PUSH1 0x40
000001db: MLOAD
000001dc: SWAP1
000001dd: DUP2
000001de: MSTORE
000001df: PUSH1 0x20
000001e1: ADD
000001e2: PUSH2 0x01a2
000001e5: JUMP
000001e6: JUMPDEST
000001e7: CALLVALUE
000001e8: DUP1
000001e9: ISZERO
000001ea: PUSH2 0x01f2
000001ed: JUMPI
000001ee: PUSH1 0x00
000001f0: DUP1
000001f1: REVERT
000001f2: JUMPDEST
000001f3: POP
000001f4: PUSH2 0x014f
000001f7: PUSH2 0x07f1
000001fa: JUMP
000001fb: JUMPDEST
000001fc: CALLVALUE
000001fd: DUP1
000001fe: ISZERO
000001ff: PUSH2 0x0207
00000202: JUMPI
00000203: PUSH1 0x00
00000205: DUP1
00000206: REVERT
00000207: JUMPDEST
00000208: POP
00000209: PUSH2 0x014f
0000020c: PUSH2 0x0216
0000020f: CALLDATASIZE
00000210: PUSH1 0x04
00000212: PUSH2 0x1291
00000215: JUMP
00000216: JUMPDEST
00000217: PUSH2 0x0803
0000021a: JUMP
0000021b: JUMPDEST
0000021c: CALLVALUE
0000021d: DUP1
0000021e: ISZERO
0000021f: PUSH2 0x0227
00000222: JUMPI
00000223: PUSH1 0x00
00000225: DUP1
00000226: REVERT
00000227: JUMPDEST
00000228: POP
00000229: PUSH1 0x01
0000022b: SLOAD
0000022c: PUSH1 0x01
0000022e: PUSH1 0xa0
00000230: SHL
00000231: SWAP1
00000232: DIV
00000233: PUSH1 0xff
00000235: AND
00000236: PUSH1 0x40
00000238: MLOAD
00000239: SWAP1
0000023a: ISZERO
0000023b: ISZERO
0000023c: DUP2
0000023d: MSTORE
0000023e: PUSH1 0x20
00000240: ADD
00000241: PUSH2 0x01a2
00000244: JUMP
00000245: JUMPDEST
00000246: CALLVALUE
00000247: DUP1
00000248: ISZERO
00000249: PUSH2 0x0251
0000024c: JUMPI
0000024d: PUSH1 0x00
0000024f: DUP1
00000250: REVERT
00000251: JUMPDEST
00000252: POP
00000253: PUSH2 0x0265
00000256: PUSH2 0x0260
00000259: CALLDATASIZE
0000025a: PUSH1 0x04
0000025c: PUSH2 0x124f
0000025f: JUMP
00000260: JUMPDEST
00000261: PUSH2 0x0855
00000264: JUMP
00000265: JUMPDEST
00000266: PUSH1 0x40
00000268: DUP1
00000269: MLOAD
0000026a: PUSH1 0x01
0000026c: PUSH1 0x01
0000026e: PUSH1 0x40
00000270: SHL
00000271: SUB
00000272: SWAP1
00000273: SWAP4
00000274: AND
00000275: DUP4
00000276: MSTORE
00000277: PUSH1 0x01
00000279: PUSH1 0x01
0000027b: PUSH1 0xa0
0000027d: SHL
0000027e: SUB
0000027f: SWAP1
00000280: SWAP2
00000281: AND
00000282: PUSH1 0x20
00000284: DUP4
00000285: ADD
00000286: MSTORE
00000287: ADD
00000288: PUSH2 0x01a2
0000028b: JUMP
0000028c: JUMPDEST
0000028d: CALLVALUE
0000028e: DUP1
0000028f: ISZERO
00000290: PUSH2 0x0298
00000293: JUMPI
00000294: PUSH1 0x00
00000296: DUP1
00000297: REVERT
00000298: JUMPDEST
00000299: POP
0000029a: PUSH2 0x014f
0000029d: PUSH2 0x0890
000002a0: JUMP
000002a1: JUMPDEST
000002a2: CALLVALUE
000002a3: DUP1
000002a4: ISZERO
000002a5: PUSH2 0x02ad
000002a8: JUMPI
000002a9: PUSH1 0x00
000002ab: DUP1
000002ac: REVERT
000002ad: JUMPDEST
000002ae: POP
000002af: PUSH2 0x014f
000002b2: PUSH2 0x08a2
000002b5: JUMP
000002b6: JUMPDEST
000002b7: PUSH2 0x014f
000002ba: PUSH2 0x02c4
000002bd: CALLDATASIZE
000002be: PUSH1 0x04
000002c0: PUSH2 0x12c5
000002c3: JUMP
000002c4: JUMPDEST
000002c5: PUSH2 0x08eb
000002c8: JUMP
000002c9: JUMPDEST
000002ca: CALLVALUE
000002cb: DUP1
000002cc: ISZERO
000002cd: PUSH2 0x02d5
000002d0: JUMPI
000002d1: PUSH1 0x00
000002d3: DUP1
000002d4: REVERT
000002d5: JUMPDEST
000002d6: POP
000002d7: PUSH2 0x014f
000002da: PUSH2 0x0ec7
000002dd: JUMP
000002de: JUMPDEST
000002df: CALLVALUE
000002e0: DUP1
000002e1: ISZERO
000002e2: PUSH2 0x02ea
000002e5: JUMPI
000002e6: PUSH1 0x00
000002e8: DUP1
000002e9: REVERT
000002ea: JUMPDEST
000002eb: POP
000002ec: PUSH2 0x032a
000002ef: PUSH2 0x02f9
000002f2: CALLDATASIZE
000002f3: PUSH1 0x04
000002f5: PUSH2 0x1268
000002f8: JUMP
000002f9: JUMPDEST
000002fa: PUSH1 0x0a
000002fc: PUSH1 0x20
000002fe: MSTORE
000002ff: PUSH1 0x00
00000301: SWAP1
00000302: DUP2
00000303: MSTORE
00000304: PUSH1 0x40
00000306: SWAP1
00000307: KECCAK256
00000308: SLOAD
00000309: PUSH1 0x01
0000030b: PUSH1 0x01
0000030d: PUSH1 0x40
0000030f: SHL
00000310: SUB
00000311: DUP1
00000312: DUP3
00000313: AND
00000314: SWAP2
00000315: PUSH1 0x01
00000317: PUSH1 0x40
00000319: SHL
0000031a: DUP2
0000031b: DIV
0000031c: DUP3
0000031d: AND
0000031e: SWAP2
0000031f: PUSH1 0x01
00000321: PUSH1 0x80
00000323: SHL
00000324: SWAP1
00000325: SWAP2
00000326: DIV
00000327: AND
00000328: DUP4
00000329: JUMP
0000032a: JUMPDEST
0000032b: PUSH1 0x40
0000032d: DUP1
0000032e: MLOAD
0000032f: PUSH1 0x01
00000331: PUSH1 0x01
00000333: PUSH1 0x40
00000335: SHL
00000336: SUB
00000337: SWAP5
00000338: DUP6
00000339: AND
0000033a: DUP2
0000033b: MSTORE
0000033c: SWAP3
0000033d: DUP5
0000033e: AND
0000033f: PUSH1 0x20
00000341: DUP5
00000342: ADD
00000343: MSTORE
00000344: SWAP3
00000345: AND
00000346: SWAP2
00000347: DUP2
00000348: ADD
00000349: SWAP2
0000034a: SWAP1
0000034b: SWAP2
0000034c: MSTORE
0000034d: PUSH1 0x60
0000034f: ADD
00000350: PUSH2 0x01a2
00000353: JUMP
00000354: JUMPDEST
00000355: CALLVALUE
00000356: DUP1
00000357: ISZERO
00000358: PUSH2 0x0360
0000035b: JUMPI
0000035c: PUSH1 0x00
0000035e: DUP1
0000035f: REVERT
00000360: JUMPDEST
00000361: POP
00000362: PUSH1 0x00
00000364: SLOAD
00000365: PUSH1 0x01
00000367: PUSH1 0x01
00000369: PUSH1 0xa0
0000036b: SHL
0000036c: SUB
0000036d: AND
0000036e: JUMPDEST
0000036f: PUSH1 0x40
00000371: MLOAD
00000372: PUSH1 0x01
00000374: PUSH1 0x01
00000376: PUSH1 0xa0
00000378: SHL
00000379: SUB
0000037a: SWAP1
0000037b: SWAP2
0000037c: AND
0000037d: DUP2
0000037e: MSTORE
0000037f: PUSH1 0x20
00000381: ADD
00000382: PUSH2 0x01a2
00000385: JUMP
00000386: JUMPDEST
00000387: CALLVALUE
00000388: DUP1
00000389: ISZERO
0000038a: PUSH2 0x0392
0000038d: JUMPI
0000038e: PUSH1 0x00
00000390: DUP1
00000391: REVERT
00000392: JUMPDEST
00000393: POP
00000394: PUSH1 0x03
00000396: SLOAD
00000397: PUSH1 0x04
00000399: SLOAD
0000039a: PUSH1 0x05
0000039c: SLOAD
0000039d: PUSH2 0x03a8
000003a0: SWAP3
000003a1: PUSH1 0xff
000003a3: AND
000003a4: SWAP2
000003a5: SWAP1
000003a6: DUP4
000003a7: JUMP
000003a8: JUMPDEST
000003a9: PUSH1 0x40
000003ab: DUP1
000003ac: MLOAD
000003ad: SWAP4
000003ae: ISZERO
000003af: ISZERO
000003b0: DUP5
000003b1: MSTORE
000003b2: PUSH1 0x20
000003b4: DUP5
000003b5: ADD
000003b6: SWAP3
000003b7: SWAP1
000003b8: SWAP3
000003b9: MSTORE
000003ba: SWAP1
000003bb: DUP3
000003bc: ADD
000003bd: MSTORE
000003be: PUSH1 0x60
000003c0: ADD
000003c1: PUSH2 0x01a2
000003c4: JUMP
000003c5: JUMPDEST
000003c6: CALLVALUE
000003c7: DUP1
000003c8: ISZERO
000003c9: PUSH2 0x03d1
000003cc: JUMPI
000003cd: PUSH1 0x00
000003cf: DUP1
000003d0: REVERT
000003d1: JUMPDEST
000003d2: POP
000003d3: PUSH2 0x01d8
000003d6: PUSH9 0x6c6b935b8bbd400000
000003e0: DUP2
000003e1: JUMP
000003e2: JUMPDEST
000003e3: CALLVALUE
000003e4: DUP1
000003e5: ISZERO
000003e6: PUSH2 0x03ee
000003e9: JUMPI
000003ea: PUSH1 0x00
000003ec: DUP1
000003ed: REVERT
000003ee: JUMPDEST
000003ef: POP
000003f0: PUSH2 0x0265
000003f3: PUSH2 0x03fd
000003f6: CALLDATASIZE
000003f7: PUSH1 0x04
000003f9: PUSH2 0x124f
000003fc: JUMP
000003fd: JUMPDEST
000003fe: PUSH2 0x0ed7
00000401: JUMP
00000402: JUMPDEST
00000403: CALLVALUE
00000404: DUP1
00000405: ISZERO
00000406: PUSH2 0x040e
00000409: JUMPI
0000040a: PUSH1 0x00
0000040c: DUP1
0000040d: REVERT
0000040e: JUMPDEST
0000040f: POP
00000410: PUSH2 0x014f
00000413: PUSH2 0x041d
00000416: CALLDATASIZE
00000417: PUSH1 0x04
00000419: PUSH2 0x133a
0000041c: JUMP
0000041d: JUMPDEST
0000041e: PUSH2 0x0ee7
00000421: JUMP
00000422: JUMPDEST
00000423: CALLVALUE
00000424: DUP1
00000425: ISZERO
00000426: PUSH2 0x042e
00000429: JUMPI
0000042a: PUSH1 0x00
0000042c: DUP1
0000042d: REVERT
0000042e: JUMPDEST
0000042f: POP
00000430: PUSH2 0x01d8
00000433: PUSH1 0x02
00000435: SLOAD
00000436: DUP2
00000437: JUMP
00000438: JUMPDEST
00000439: CALLVALUE
0000043a: DUP1
0000043b: ISZERO
0000043c: PUSH2 0x0444
0000043f: JUMPI
00000440: PUSH1 0x00
00000442: DUP1
00000443: REVERT
00000444: JUMPDEST
00000445: POP
00000446: PUSH1 0x01
00000448: SLOAD
00000449: PUSH1 0x01
0000044b: PUSH1 0x01
0000044d: PUSH1 0xa0
0000044f: SHL
00000450: SUB
00000451: AND
00000452: PUSH2 0x036e
00000455: JUMP
00000456: JUMPDEST
00000457: CALLVALUE
00000458: DUP1
00000459: ISZERO
0000045a: PUSH2 0x0462
0000045d: JUMPI
0000045e: PUSH1 0x00
00000460: DUP1
00000461: REVERT
00000462: JUMPDEST
00000463: POP
00000464: PUSH2 0x014f
00000467: PUSH2 0x0471
0000046a: CALLDATASIZE
0000046b: PUSH1 0x04
0000046d: PUSH2 0x1268
00000470: JUMP
00000471: JUMPDEST
00000472: PUSH2 0x0f2e
00000475: JUMP
00000476: JUMPDEST
00000477: PUSH2 0x047e
0000047a: PUSH2 0x0f9f
0000047d: JUMP
0000047e: JUMPDEST
0000047f: PUSH1 0x06
00000481: SLOAD
00000482: PUSH1 0xff
00000484: AND
00000485: ISZERO
00000486: DUP1
00000487: PUSH2 0x0490
0000048a: JUMPI
0000048b: POP
0000048c: PUSH1 0x07
0000048e: SLOAD
0000048f: ISZERO
00000490: JUMPDEST
00000491: DUP1
00000492: PUSH2 0x049b
00000495: JUMPI
00000496: POP
00000497: PUSH1 0x05
00000499: SLOAD
0000049a: ISZERO
0000049b: JUMPDEST
0000049c: ISZERO
0000049d: PUSH2 0x04b9
000004a0: JUMPI
000004a1: PUSH1 0x40
000004a3: MLOAD
000004a4: PUSH4 0x48b5b615
000004a9: PUSH1 0xe0
000004ab: SHL
000004ac: DUP2
000004ad: MSTORE
000004ae: PUSH1 0x04
000004b0: ADD
000004b1: PUSH1 0x40
000004b3: MLOAD
000004b4: DUP1
000004b5: SWAP2
000004b6: SUB
000004b7: SWAP1
000004b8: REVERT
000004b9: JUMPDEST
000004ba: PUSH1 0x00
000004bc: CALLER
000004bd: PUSH1 0x40
000004bf: DUP1
000004c0: MLOAD
000004c1: PUSH1 0x01
000004c3: PUSH1 0x01
000004c5: PUSH1 0xa0
000004c7: SHL
000004c8: SUB
000004c9: SWAP1
000004ca: SWAP3
000004cb: AND
000004cc: PUSH1 0x20
000004ce: DUP4
000004cf: ADD
000004d0: MSTORE
000004d1: DUP2
000004d2: ADD
000004d3: DUP6
000004d4: SWAP1
000004d5: MSTORE
000004d6: PUSH1 0x60
000004d8: ADD
000004d9: PUSH1 0x40
000004db: DUP1
000004dc: MLOAD
000004dd: PUSH1 0x1f
000004df: NOT
000004e0: DUP2
000004e1: DUP5
000004e2: SUB
000004e3: ADD
000004e4: DUP2
000004e5: MSTORE
000004e6: DUP3
000004e7: DUP3
000004e8: MSTORE
000004e9: DUP1
000004ea: MLOAD
000004eb: PUSH1 0x20
000004ed: SWAP2
000004ee: DUP3
000004ef: ADD
000004f0: KECCAK256
000004f1: SWAP1
000004f2: DUP4
000004f3: ADD
000004f4: MSTORE
000004f5: ADD
000004f6: PUSH1 0x40
000004f8: MLOAD
000004f9: PUSH1 0x20
000004fb: DUP2
000004fc: DUP4
000004fd: SUB
000004fe: SUB
000004ff: DUP2
00000500: MSTORE
00000501: SWAP1
00000502: PUSH1 0x40
00000504: MSTORE
00000505: DUP1
00000506: MLOAD
00000507: SWAP1
00000508: PUSH1 0x20
0000050a: ADD
0000050b: KECCAK256
0000050c: SWAP1
0000050d: POP
0000050e: PUSH2 0x054e
00000511: DUP4
00000512: DUP4
00000513: DUP1
00000514: DUP1
00000515: PUSH1 0x20
00000517: MUL
00000518: PUSH1 0x20
0000051a: ADD
0000051b: PUSH1 0x40
0000051d: MLOAD
0000051e: SWAP1
0000051f: DUP2
00000520: ADD
00000521: PUSH1 0x40
00000523: MSTORE
00000524: DUP1
00000525: SWAP4
00000526: SWAP3
00000527: SWAP2
00000528: SWAP1
00000529: DUP2
0000052a: DUP2
0000052b: MSTORE
0000052c: PUSH1 0x20
0000052e: ADD
0000052f: DUP4
00000530: DUP4
00000531: PUSH1 0x20
00000533: MUL
00000534: DUP1
00000535: DUP3
00000536: DUP5
00000537: CALLDATACOPY
00000538: PUSH1 0x00
0000053a: SWAP3
0000053b: ADD
0000053c: SWAP2
0000053d: SWAP1
0000053e: SWAP2
0000053f: MSTORE
00000540: POP
00000541: POP
00000542: PUSH1 0x07
00000544: SLOAD
00000545: SWAP2
00000546: POP
00000547: DUP5
00000548: SWAP1
00000549: POP
0000054a: PUSH2 0x0fca
0000054d: JUMP
0000054e: JUMPDEST
0000054f: PUSH2 0x056b
00000552: JUMPI
00000553: PUSH1 0x40
00000555: MLOAD
00000556: PUSH4 0x09bde339
0000055b: PUSH1 0xe0
0000055d: SHL
0000055e: DUP2
0000055f: MSTORE
00000560: PUSH1 0x04
00000562: ADD
00000563: PUSH1 0x40
00000565: MLOAD
00000566: DUP1
00000567: SWAP2
00000568: SUB
00000569: SWAP1
0000056a: REVERT
0000056b: JUMPDEST
0000056c: CALLER
0000056d: PUSH1 0x00
0000056f: SWAP1
00000570: DUP2
00000571: MSTORE
00000572: PUSH1 0x0b
00000574: PUSH1 0x20
00000576: MSTORE
00000577: PUSH1 0x40
00000579: SWAP1
0000057a: KECCAK256
0000057b: SLOAD
0000057c: ISZERO
0000057d: PUSH2 0x0599
00000580: JUMPI
00000581: PUSH1 0x40
00000583: MLOAD
00000584: PUSH4 0x19ea2647
00000589: PUSH1 0xe3
0000058b: SHL
0000058c: DUP2
0000058d: MSTORE
0000058e: PUSH1 0x04
00000590: ADD
00000591: PUSH1 0x40
00000593: MLOAD
00000594: DUP1
00000595: SWAP2
00000596: SUB
00000597: SWAP1
00000598: REVERT
00000599: JUMPDEST
0000059a: CALLER
0000059b: PUSH1 0x00
0000059d: SWAP1
0000059e: DUP2
0000059f: MSTORE
000005a0: PUSH1 0x0a
000005a2: PUSH1 0x20
000005a4: MSTORE
000005a5: PUSH1 0x40
000005a7: DUP2
000005a8: KECCAK256
000005a9: DUP1
000005aa: SLOAD
000005ab: SWAP1
000005ac: SWAP2
000005ad: SWAP1
000005ae: PUSH1 0x01
000005b0: PUSH1 0x01
000005b2: PUSH1 0x40
000005b4: SHL
000005b5: SUB
000005b6: PUSH1 0x01
000005b8: PUSH1 0x80
000005ba: SHL
000005bb: DUP3
000005bc: DIV
000005bd: DUP2
000005be: AND
000005bf: SWAP2
000005c0: PUSH2 0x05d3
000005c3: SWAP2
000005c4: PUSH1 0x01
000005c6: PUSH1 0x40
000005c8: SHL
000005c9: DUP3
000005ca: DIV
000005cb: DUP2
000005cc: AND
000005cd: SWAP2
000005ce: AND
000005cf: PUSH2 0x1362
000005d2: JUMP
000005d3: JUMPDEST
000005d4: PUSH2 0x05dd
000005d7: SWAP2
000005d8: SWAP1
000005d9: PUSH2 0x1362
000005dc: JUMP
000005dd: JUMPDEST
000005de: PUSH1 0x01
000005e0: PUSH1 0x01
000005e2: PUSH1 0x40
000005e4: SHL
000005e5: SUB
000005e6: AND
000005e7: SWAP1
000005e8: POP
000005e9: DUP1
000005ea: DUP7
000005eb: GT
000005ec: ISZERO
000005ed: PUSH2 0x0609
000005f0: JUMPI
000005f1: PUSH1 0x40
000005f3: MLOAD
000005f4: PUSH4 0x7809ca4b
000005f9: PUSH1 0xe0
000005fb: SHL
000005fc: DUP2
000005fd: MSTORE
000005fe: PUSH1 0x04
00000600: ADD
00000601: PUSH1 0x40
00000603: MLOAD
00000604: DUP1
00000605: SWAP2
00000606: SUB
00000607: SWAP1
00000608: REVERT
00000609: JUMPDEST
0000060a: CALLER
0000060b: PUSH1 0x00
0000060d: SWAP1
0000060e: DUP2
0000060f: MSTORE
00000610: PUSH1 0x0b
00000612: PUSH1 0x20
00000614: MSTORE
00000615: PUSH1 0x40
00000617: DUP2
00000618: KECCAK256
00000619: DUP8
0000061a: SWAP1
0000061b: SSTORE
0000061c: PUSH1 0x05
0000061e: SLOAD
0000061f: PUSH2 0x0628
00000622: SWAP1
00000623: DUP9
00000624: PUSH2 0x1389
00000627: JUMP
00000628: JUMPDEST
00000629: SWAP1
0000062a: POP
0000062b: PUSH32 0x17c1d890f3ffba4991a771a0b55802a1eff3159d0cce950fb68d1360530393d9
0000064c: CALLER
0000064d: PUSH1 0x40
0000064f: DUP1
00000650: MLOAD
00000651: PUSH1 0x01
00000653: PUSH1 0x01
00000655: PUSH1 0xa0
00000657: SHL
00000658: SUB
00000659: SWAP1
0000065a: SWAP3
0000065b: AND
0000065c: DUP3
0000065d: MSTORE
0000065e: PUSH1 0x20
00000660: DUP3
00000661: ADD
00000662: DUP11
00000663: SWAP1
00000664: MSTORE
00000665: DUP2
00000666: ADD
00000667: DUP4
00000668: SWAP1
00000669: MSTORE
0000066a: PUSH1 0x60
0000066c: ADD
0000066d: PUSH1 0x40
0000066f: MLOAD
00000670: DUP1
00000671: SWAP2
00000672: SUB
00000673: SWAP1
00000674: LOG1
00000675: PUSH1 0x40
00000677: MLOAD
00000678: PUSH1 0x00
0000067a: SWAP1
0000067b: CALLER
0000067c: SWAP1
0000067d: DUP4
0000067e: SWAP1
0000067f: DUP4
00000680: DUP2
00000681: DUP2
00000682: DUP2
00000683: DUP6
00000684: DUP8
00000685: GAS
00000686: CALL
00000687: SWAP3
00000688: POP
00000689: POP
0000068a: POP
0000068b: RETURNDATASIZE
0000068c: DUP1
0000068d: PUSH1 0x00
0000068f: DUP2
00000690: EQ
00000691: PUSH2 0x06b6
00000694: JUMPI
00000695: PUSH1 0x40
00000697: MLOAD
00000698: SWAP2
00000699: POP
0000069a: PUSH1 0x1f
0000069c: NOT
0000069d: PUSH1 0x3f
0000069f: RETURNDATASIZE
000006a0: ADD
000006a1: AND
000006a2: DUP3
000006a3: ADD
000006a4: PUSH1 0x40
000006a6: MSTORE
000006a7: RETURNDATASIZE
000006a8: DUP3
000006a9: MSTORE
000006aa: RETURNDATASIZE
000006ab: PUSH1 0x00
000006ad: PUSH1 0x20
000006af: DUP5
000006b0: ADD
000006b1: RETURNDATACOPY
000006b2: PUSH2 0x06bb
000006b5: JUMP
000006b6: JUMPDEST
000006b7: PUSH1 0x60
000006b9: SWAP2
000006ba: POP
000006bb: JUMPDEST
000006bc: POP
000006bd: POP
000006be: SWAP1
000006bf: POP
000006c0: DUP1
000006c1: PUSH2 0x06dd
000006c4: JUMPI
000006c5: PUSH1 0x40
000006c7: MLOAD
000006c8: PUSH4 0xf6a9b88f
000006cd: PUSH1 0xe0
000006cf: SHL
000006d0: DUP2
000006d1: MSTORE
000006d2: PUSH1 0x04
000006d4: ADD
000006d5: PUSH1 0x40
000006d7: MLOAD
000006d8: DUP1
000006d9: SWAP2
000006da: SUB
000006db: SWAP1
000006dc: REVERT
000006dd: JUMPDEST
000006de: POP
000006df: POP
000006e0: POP
000006e1: POP
000006e2: POP
000006e3: POP
000006e4: POP
000006e5: POP
000006e6: JUMP
000006e7: JUMPDEST
000006e8: PUSH2 0x06ef
000006eb: PUSH2 0x0fe0
000006ee: JUMP
000006ef: JUMPDEST
000006f0: DUP1
000006f1: PUSH1 0x02
000006f3: PUSH1 0x00
000006f5: DUP3
000006f6: DUP3
000006f7: SLOAD
000006f8: PUSH2 0x0701
000006fb: SWAP2
000006fc: SWAP1
000006fd: PUSH2 0x13a0
00000700: JUMP
00000701: JUMPDEST
00000702: SWAP1
00000703: SWAP2
00000704: SSTORE
00000705: POP
00000706: POP
00000707: PUSH1 0x02
00000709: SLOAD
0000070a: PUSH9 0x6c6b935b8bbd400000
00000714: LT
00000715: DUP1
00000716: ISZERO
00000717: PUSH2 0x0723
0000071a: JUMPI
0000071b: POP
0000071c: PUSH4 0x66acca40
00000721: TIMESTAMP
00000722: LT
00000723: JUMPDEST
00000724: ISZERO
00000725: PUSH2 0x0741
00000728: JUMPI
00000729: PUSH1 0x40
0000072b: MLOAD
0000072c: PUSH4 0x0b02de47
00000731: PUSH1 0xe3
00000733: SHL
00000734: DUP2
00000735: MSTORE
00000736: PUSH1 0x04
00000738: ADD
00000739: PUSH1 0x40
0000073b: MLOAD
0000073c: DUP1
0000073d: SWAP2
0000073e: SUB
0000073f: SWAP1
00000740: REVERT
00000741: JUMPDEST
00000742: PUSH32 0xddc398b321237a8d40ac914388309c2f52a08c134e4dc4ce61e32f57cb7d80f1
00000763: CALLER
00000764: PUSH1 0x40
00000766: DUP1
00000767: MLOAD
00000768: PUSH1 0x01
0000076a: PUSH1 0x01
0000076c: PUSH1 0xa0
0000076e: SHL
0000076f: SUB
00000770: SWAP1
00000771: SWAP3
00000772: AND
00000773: DUP3
00000774: MSTORE
00000775: PUSH1 0x20
00000777: DUP3
00000778: ADD
00000779: DUP5
0000077a: SWAP1
0000077b: MSTORE
0000077c: ADD
0000077d: PUSH1 0x40
0000077f: MLOAD
00000780: DUP1
00000781: SWAP2
00000782: SUB
00000783: SWAP1
00000784: LOG1
00000785: PUSH1 0x40
00000787: MLOAD
00000788: PUSH1 0x00
0000078a: SWAP1
0000078b: CALLER
0000078c: SWAP1
0000078d: DUP4
0000078e: SWAP1
0000078f: DUP4
00000790: DUP2
00000791: DUP2
00000792: DUP2
00000793: DUP6
00000794: DUP8
00000795: GAS
00000796: CALL
00000797: SWAP3
00000798: POP
00000799: POP
0000079a: POP
0000079b: RETURNDATASIZE
0000079c: DUP1
0000079d: PUSH1 0x00
0000079f: DUP2
000007a0: EQ
000007a1: PUSH2 0x07c6
000007a4: JUMPI
000007a5: PUSH1 0x40
000007a7: MLOAD
000007a8: SWAP2
000007a9: POP
000007aa: PUSH1 0x1f
000007ac: NOT
000007ad: PUSH1 0x3f
000007af: RETURNDATASIZE
000007b0: ADD
000007b1: AND
000007b2: DUP3
000007b3: ADD
000007b4: PUSH1 0x40
000007b6: MSTORE
000007b7: RETURNDATASIZE
000007b8: DUP3
000007b9: MSTORE
000007ba: RETURNDATASIZE
000007bb: PUSH1 0x00
000007bd: PUSH1 0x20
000007bf: DUP5
000007c0: ADD
000007c1: RETURNDATACOPY
000007c2: PUSH2 0x07cb
000007c5: JUMP
000007c6: JUMPDEST
000007c7: PUSH1 0x60
000007c9: SWAP2
000007ca: POP
000007cb: JUMPDEST
000007cc: POP
000007cd: POP
000007ce: SWAP1
000007cf: POP
000007d0: DUP1
000007d1: PUSH2 0x07ed
000007d4: JUMPI
000007d5: PUSH1 0x40
000007d7: MLOAD
000007d8: PUSH4 0xf6a9b88f
000007dd: PUSH1 0xe0
000007df: SHL
000007e0: DUP2
000007e1: MSTORE
000007e2: PUSH1 0x04
000007e4: ADD
000007e5: PUSH1 0x40
000007e7: MLOAD
000007e8: DUP1
000007e9: SWAP2
000007ea: SUB
000007eb: SWAP1
000007ec: REVERT
000007ed: JUMPDEST
000007ee: POP
000007ef: POP
000007f0: JUMP
000007f1: JUMPDEST
000007f2: PUSH2 0x07f9
000007f5: PUSH2 0x0fe0
000007f8: JUMP
000007f9: JUMPDEST
000007fa: PUSH2 0x0801
000007fd: PUSH2 0x100d
00000800: JUMP
00000801: JUMPDEST
00000802: JUMP
00000803: JUMPDEST
00000804: PUSH2 0x080b
00000807: PUSH2 0x0fe0
0000080a: JUMP
0000080b: JUMPDEST
0000080c: DUP1
0000080d: PUSH1 0x06
0000080f: PUSH2 0x0818
00000812: DUP3
00000813: DUP3
00000814: PUSH2 0x13c1
00000817: JUMP
00000818: JUMPDEST
00000819: SWAP1
0000081a: POP
0000081b: POP
0000081c: PUSH32 0x50082b757c6e0e65b6af717287bfa4309f68d901e96f180bfe457e67be23a1e8
0000083d: DUP2
0000083e: PUSH1 0x40
00000840: MLOAD
00000841: PUSH2 0x084a
00000844: SWAP2
00000845: SWAP1
00000846: PUSH2 0x13ea
00000849: JUMP
0000084a: JUMPDEST
0000084b: PUSH1 0x40
0000084d: MLOAD
0000084e: DUP1
0000084f: SWAP2
00000850: SUB
00000851: SWAP1
00000852: LOG1
00000853: POP
00000854: JUMP
00000855: JUMPDEST
00000856: PUSH1 0x08
00000858: DUP2
00000859: DUP2
0000085a: SLOAD
0000085b: DUP2
0000085c: LT
0000085d: PUSH2 0x0865
00000860: JUMPI
00000861: PUSH1 0x00
00000863: DUP1
00000864: REVERT
00000865: JUMPDEST
00000866: PUSH1 0x00
00000868: SWAP2
00000869: DUP3
0000086a: MSTORE
0000086b: PUSH1 0x20
0000086d: SWAP1
0000086e: SWAP2
0000086f: KECCAK256
00000870: ADD
00000871: SLOAD
00000872: PUSH1 0x01
00000874: PUSH1 0x01
00000876: PUSH1 0x40
00000878: SHL
00000879: SUB
0000087a: DUP2
0000087b: AND
0000087c: SWAP2
0000087d: POP
0000087e: PUSH1 0x01
00000880: PUSH1 0x40
00000882: SHL
00000883: SWAP1
00000884: DIV
00000885: PUSH1 0x01
00000887: PUSH1 0x01
00000889: PUSH1 0xa0
0000088b: SHL
0000088c: SUB
0000088d: AND
0000088e: DUP3
0000088f: JUMP
00000890: JUMPDEST
00000891: PUSH2 0x0898
00000894: PUSH2 0x0fe0
00000897: JUMP
00000898: JUMPDEST
00000899: PUSH2 0x0801
0000089c: PUSH1 0x00
0000089e: PUSH2 0x1062
000008a1: JUMP
000008a2: JUMPDEST
000008a3: PUSH1 0x01
000008a5: SLOAD
000008a6: CALLER
000008a7: SWAP1
000008a8: PUSH1 0x01
000008aa: PUSH1 0x01
000008ac: PUSH1 0xa0
000008ae: SHL
000008af: SUB
000008b0: AND
000008b1: DUP2
000008b2: EQ
000008b3: PUSH2 0x08df
000008b6: JUMPI
000008b7: PUSH1 0x40
000008b9: MLOAD
000008ba: PUSH4 0x118cdaa7
000008bf: PUSH1 0xe0
000008c1: SHL
000008c2: DUP2
000008c3: MSTORE
000008c4: PUSH1 0x01
000008c6: PUSH1 0x01
000008c8: PUSH1 0xa0
000008ca: SHL
000008cb: SUB
000008cc: DUP3
000008cd: AND
000008ce: PUSH1 0x04
000008d0: DUP3
000008d1: ADD
000008d2: MSTORE
000008d3: PUSH1 0x24
000008d5: ADD
000008d6: JUMPDEST
000008d7: PUSH1 0x40
000008d9: MLOAD
000008da: DUP1
000008db: SWAP2
000008dc: SUB
000008dd: SWAP1
000008de: REVERT
000008df: JUMPDEST
000008e0: PUSH2 0x08e8
000008e3: DUP2
000008e4: PUSH2 0x1062
000008e7: JUMP
000008e8: JUMPDEST
000008e9: POP
000008ea: JUMP
000008eb: JUMPDEST
000008ec: PUSH2 0x08f3
000008ef: PUSH2 0x0f9f
000008f2: JUMP
000008f3: JUMPDEST
000008f4: PUSH1 0x03
000008f6: SLOAD
000008f7: PUSH1 0xff
000008f9: AND
000008fa: ISZERO
000008fb: DUP1
000008fc: PUSH2 0x0905
000008ff: JUMPI
00000900: POP
00000901: PUSH1 0x04
00000903: SLOAD
00000904: ISZERO
00000905: JUMPDEST
00000906: DUP1
00000907: PUSH2 0x0910
0000090a: JUMPI
0000090b: POP
0000090c: PUSH1 0x05
0000090e: SLOAD
0000090f: ISZERO
00000910: JUMPDEST
00000911: ISZERO
00000912: PUSH2 0x092e
00000915: JUMPI
00000916: PUSH1 0x40
00000918: MLOAD
00000919: PUSH4 0x050d584d
0000091e: PUSH1 0xe2
00000920: SHL
00000921: DUP2
00000922: MSTORE
00000923: PUSH1 0x04
00000925: ADD
00000926: PUSH1 0x40
00000928: MLOAD
00000929: DUP1
0000092a: SWAP2
0000092b: SUB
0000092c: SWAP1
0000092d: REVERT
0000092e: JUMPDEST
0000092f: PUSH1 0x00
00000931: DUP5
00000932: PUSH1 0x01
00000934: PUSH1 0x01
00000936: PUSH1 0x40
00000938: SHL
00000939: SUB
0000093a: AND
0000093b: GT
0000093c: DUP1
0000093d: PUSH2 0x094f
00000940: JUMPI
00000941: POP
00000942: PUSH1 0x00
00000944: DUP4
00000945: PUSH1 0x01
00000947: PUSH1 0x01
00000949: PUSH1 0x40
0000094b: SHL
0000094c: SUB
0000094d: AND
0000094e: GT
0000094f: JUMPDEST
00000950: ISZERO
00000951: PUSH2 0x0a1c
00000954: JUMPI
00000955: PUSH1 0x00
00000957: CALLER
00000958: PUSH1 0x40
0000095a: DUP1
0000095b: MLOAD
0000095c: PUSH1 0x01
0000095e: PUSH1 0x01
00000960: PUSH1 0xa0
00000962: SHL
00000963: SUB
00000964: SWAP1
00000965: SWAP3
00000966: AND
00000967: PUSH1 0x20
00000969: DUP4
0000096a: ADD
0000096b: MSTORE
0000096c: PUSH1 0x01
0000096e: PUSH1 0x01
00000970: PUSH1 0x40
00000972: SHL
00000973: SUB
00000974: DUP1
00000975: DUP9
00000976: AND
00000977: SWAP2
00000978: DUP4
00000979: ADD
0000097a: SWAP2
0000097b: SWAP1
0000097c: SWAP2
0000097d: MSTORE
0000097e: DUP6
0000097f: AND
00000980: PUSH1 0x60
00000982: DUP3
00000983: ADD
00000984: MSTORE
00000985: PUSH1 0x80
00000987: ADD
00000988: PUSH1 0x40
0000098a: DUP1
0000098b: MLOAD
0000098c: PUSH1 0x1f
0000098e: NOT
0000098f: DUP2
00000990: DUP5
00000991: SUB
00000992: ADD
00000993: DUP2
00000994: MSTORE
00000995: DUP3
00000996: DUP3
00000997: MSTORE
00000998: DUP1
00000999: MLOAD
0000099a: PUSH1 0x20
0000099c: SWAP2
0000099d: DUP3
0000099e: ADD
0000099f: KECCAK256
000009a0: SWAP1
000009a1: DUP4
000009a2: ADD
000009a3: MSTORE
000009a4: ADD
000009a5: PUSH1 0x40
000009a7: MLOAD
000009a8: PUSH1 0x20
000009aa: DUP2
000009ab: DUP4
000009ac: SUB
000009ad: SUB
000009ae: DUP2
000009af: MSTORE
000009b0: SWAP1
000009b1: PUSH1 0x40
000009b3: MSTORE
000009b4: DUP1
000009b5: MLOAD
000009b6: SWAP1
000009b7: PUSH1 0x20
000009b9: ADD
000009ba: KECCAK256
000009bb: SWAP1
000009bc: POP
000009bd: PUSH2 0x09fd
000009c0: DUP4
000009c1: DUP4
000009c2: DUP1
000009c3: DUP1
000009c4: PUSH1 0x20
000009c6: MUL
000009c7: PUSH1 0x20
000009c9: ADD
000009ca: PUSH1 0x40
000009cc: MLOAD
000009cd: SWAP1
000009ce: DUP2
000009cf: ADD
000009d0: PUSH1 0x40
000009d2: MSTORE
000009d3: DUP1
000009d4: SWAP4
000009d5: SWAP3
000009d6: SWAP2
000009d7: SWAP1
000009d8: DUP2
000009d9: DUP2
000009da: MSTORE
000009db: PUSH1 0x20
000009dd: ADD
000009de: DUP4
000009df: DUP4
000009e0: PUSH1 0x20
000009e2: MUL
000009e3: DUP1
000009e4: DUP3
000009e5: DUP5
000009e6: CALLDATACOPY
000009e7: PUSH1 0x00
000009e9: SWAP3
000009ea: ADD
000009eb: SWAP2
000009ec: SWAP1
000009ed: SWAP2
000009ee: MSTORE
000009ef: POP
000009f0: POP
000009f1: PUSH1 0x04
000009f3: SLOAD
000009f4: SWAP2
000009f5: POP
000009f6: DUP5
000009f7: SWAP1
000009f8: POP
000009f9: PUSH2 0x0fca
000009fc: JUMP
000009fd: JUMPDEST
000009fe: PUSH2 0x0a1a
00000a01: JUMPI
00000a02: PUSH1 0x40
00000a04: MLOAD
00000a05: PUSH4 0x09bde339
00000a0a: PUSH1 0xe0
00000a0c: SHL
00000a0d: DUP2
00000a0e: MSTORE
00000a0f: PUSH1 0x04
00000a11: ADD
00000a12: PUSH1 0x40
00000a14: MLOAD
00000a15: DUP1
00000a16: SWAP2
00000a17: SUB
00000a18: SWAP1
00000a19: REVERT
00000a1a: JUMPDEST
00000a1b: POP
00000a1c: JUMPDEST
00000a1d: PUSH1 0x05
00000a1f: SLOAD
00000a20: CALLVALUE
00000a21: SWAP1
00000a22: PUSH2 0x0a35
00000a25: SWAP1
00000a26: PUSH1 0x01
00000a28: PUSH1 0x01
00000a2a: PUSH1 0x40
00000a2c: SHL
00000a2d: SUB
00000a2e: DUP9
00000a2f: AND
00000a30: SWAP1
00000a31: PUSH2 0x1389
00000a34: JUMP
00000a35: JUMPDEST
00000a36: EQ
00000a37: ISZERO
00000a38: DUP1
00000a39: PUSH2 0x0a49
00000a3c: JUMPI
00000a3d: POP
00000a3e: PUSH1 0x01
00000a40: PUSH1 0x01
00000a42: PUSH1 0x40
00000a44: SHL
00000a45: SUB
00000a46: DUP6
00000a47: AND
00000a48: ISZERO
00000a49: JUMPDEST
00000a4a: ISZERO
00000a4b: PUSH2 0x0a67
00000a4e: JUMPI
00000a4f: PUSH1 0x40
00000a51: MLOAD
00000a52: PUSH4 0x356680b7
00000a57: PUSH1 0xe0
00000a59: SHL
00000a5a: DUP2
00000a5b: MSTORE
00000a5c: PUSH1 0x04
00000a5e: ADD
00000a5f: PUSH1 0x40
00000a61: MLOAD
00000a62: DUP1
00000a63: SWAP2
00000a64: SUB
00000a65: SWAP1
00000a66: REVERT
00000a67: JUMPDEST
00000a68: CALLER
00000a69: PUSH1 0x00
00000a6b: SWAP1
00000a6c: DUP2
00000a6d: MSTORE
00000a6e: PUSH1 0x0a
00000a70: PUSH1 0x20
00000a72: MSTORE
00000a73: PUSH1 0x40
00000a75: DUP2
00000a76: KECCAK256
00000a77: DUP1
00000a78: SLOAD
00000a79: SWAP1
00000a7a: SWAP2
00000a7b: DUP8
00000a7c: SWAP2
00000a7d: PUSH1 0x01
00000a7f: PUSH1 0x01
00000a81: PUSH1 0x40
00000a83: SHL
00000a84: SUB
00000a85: SWAP1
00000a86: DUP2
00000a87: AND
00000a88: SWAP1
00000a89: DUP9
00000a8a: AND
00000a8b: GT
00000a8c: PUSH2 0x0a96
00000a8f: JUMPI
00000a90: PUSH1 0x00
00000a92: PUSH2 0x0aab
00000a95: JUMP
00000a96: JUMPDEST
00000a97: DUP3
00000a98: SLOAD
00000a99: PUSH2 0x0aab
00000a9c: SWAP1
00000a9d: PUSH1 0x01
00000a9f: PUSH1 0x01
00000aa1: PUSH1 0x40
00000aa3: SHL
00000aa4: SUB
00000aa5: AND
00000aa6: DUP9
00000aa7: PUSH2 0x140f
00000aaa: JUMP
00000aab: JUMPDEST
00000aac: DUP4
00000aad: SLOAD
00000aae: SWAP1
00000aaf: SWAP2
00000ab0: POP
00000ab1: PUSH1 0x00
00000ab3: SWAP1
00000ab4: PUSH1 0x01
00000ab6: PUSH1 0x01
00000ab8: PUSH1 0x40
00000aba: SHL
00000abb: SUB
00000abc: PUSH1 0x01
00000abe: PUSH1 0x40
00000ac0: SHL
00000ac1: SWAP1
00000ac2: SWAP2
00000ac3: DIV
00000ac4: DUP2
00000ac5: AND
00000ac6: SWAP1
00000ac7: DUP9
00000ac8: AND
00000ac9: GT
00000aca: PUSH2 0x0ad4
00000acd: JUMPI
00000ace: PUSH1 0x00
00000ad0: PUSH2 0x0af0
00000ad3: JUMP
00000ad4: JUMPDEST
00000ad5: DUP4
00000ad6: SLOAD
00000ad7: PUSH2 0x0af0
00000ada: SWAP1
00000adb: PUSH1 0x01
00000add: PUSH1 0x40
00000adf: SHL
00000ae0: SWAP1
00000ae1: DIV
00000ae2: PUSH1 0x01
00000ae4: PUSH1 0x01
00000ae6: PUSH1 0x40
00000ae8: SHL
00000ae9: SUB
00000aea: AND
00000aeb: DUP9
00000aec: PUSH2 0x140f
00000aef: JUMP
00000af0: JUMPDEST
00000af1: SWAP1
00000af2: POP
00000af3: PUSH1 0x00
00000af5: DUP1
00000af6: DUP1
00000af7: PUSH1 0x01
00000af9: PUSH1 0x01
00000afb: PUSH1 0x40
00000afd: SHL
00000afe: SUB
00000aff: DUP6
00000b00: AND
00000b01: ISZERO
00000b02: PUSH2 0x0b7a
00000b05: JUMPI
00000b06: DUP12
00000b07: PUSH1 0x01
00000b09: PUSH1 0x01
00000b0b: PUSH1 0x40
00000b0d: SHL
00000b0e: SUB
00000b0f: AND
00000b10: DUP6
00000b11: PUSH1 0x01
00000b13: PUSH1 0x01
00000b15: PUSH1 0x40
00000b17: SHL
00000b18: SUB
00000b19: AND
00000b1a: LT
00000b1b: PUSH2 0x0b28
00000b1e: JUMPI
00000b1f: PUSH1 0x00
00000b21: SWAP12
00000b22: SWAP3
00000b23: POP
00000b24: PUSH2 0x0b38
00000b27: JUMP
00000b28: JUMPDEST
00000b29: DUP5
00000b2a: SWAP3
00000b2b: POP
00000b2c: PUSH2 0x0b35
00000b2f: DUP4
00000b30: DUP14
00000b31: PUSH2 0x140f
00000b34: JUMP
00000b35: JUMPDEST
00000b36: SWAP12
00000b37: POP
00000b38: JUMPDEST
00000b39: DUP7
00000b3a: SLOAD
00000b3b: DUP4
00000b3c: SWAP1
00000b3d: DUP9
00000b3e: SWAP1
00000b3f: PUSH1 0x00
00000b41: SWAP1
00000b42: PUSH2 0x0b55
00000b45: SWAP1
00000b46: DUP5
00000b47: SWAP1
00000b48: PUSH1 0x01
00000b4a: PUSH1 0x01
00000b4c: PUSH1 0x40
00000b4e: SHL
00000b4f: SUB
00000b50: AND
00000b51: PUSH2 0x1362
00000b54: JUMP
00000b55: JUMPDEST
00000b56: SWAP3
00000b57: POP
00000b58: PUSH2 0x0100
00000b5b: EXP
00000b5c: DUP2
00000b5d: SLOAD
00000b5e: DUP2
00000b5f: PUSH1 0x01
00000b61: PUSH1 0x01
00000b63: PUSH1 0x40
00000b65: SHL
00000b66: SUB
00000b67: MUL
00000b68: NOT
00000b69: AND
00000b6a: SWAP1
00000b6b: DUP4
00000b6c: PUSH1 0x01
00000b6e: PUSH1 0x01
00000b70: PUSH1 0x40
00000b72: SHL
00000b73: SUB
00000b74: AND
00000b75: MUL
00000b76: OR
00000b77: SWAP1
00000b78: SSTORE
00000b79: POP
00000b7a: JUMPDEST
00000b7b: PUSH1 0x00
00000b7d: DUP5
00000b7e: PUSH1 0x01
00000b80: PUSH1 0x01
00000b82: PUSH1 0x40
00000b84: SHL
00000b85: SUB
00000b86: AND
00000b87: GT
00000b88: DUP1
00000b89: ISZERO
00000b8a: PUSH2 0x0b9c
00000b8d: JUMPI
00000b8e: POP
00000b8f: PUSH1 0x00
00000b91: DUP13
00000b92: PUSH1 0x01
00000b94: PUSH1 0x01
00000b96: PUSH1 0x40
00000b98: SHL
00000b99: SUB
00000b9a: AND
00000b9b: GT
00000b9c: JUMPDEST
00000b9d: ISZERO
00000b9e: PUSH2 0x0d3b
00000ba1: JUMPI
00000ba2: PUSH1 0x08
00000ba4: SLOAD
00000ba5: PUSH1 0x00
00000ba7: DUP2
00000ba8: PUSH2 0x0bb2
00000bab: JUMPI
00000bac: PUSH1 0x00
00000bae: PUSH2 0x0be5
00000bb1: JUMP
00000bb2: JUMPDEST
00000bb3: PUSH1 0x08
00000bb5: PUSH2 0x0bbf
00000bb8: PUSH1 0x01
00000bba: DUP5
00000bbb: PUSH2 0x142f
00000bbe: JUMP
00000bbf: JUMPDEST
00000bc0: DUP2
00000bc1: SLOAD
00000bc2: DUP2
00000bc3: LT
00000bc4: PUSH2 0x0bcf
00000bc7: JUMPI
00000bc8: PUSH2 0x0bcf
00000bcb: PUSH2 0x1442
00000bce: JUMP
00000bcf: JUMPDEST
00000bd0: PUSH1 0x00
00000bd2: SWAP2
00000bd3: DUP3
00000bd4: MSTORE
00000bd5: PUSH1 0x20
00000bd7: SWAP1
00000bd8: SWAP2
00000bd9: KECCAK256
00000bda: ADD
00000bdb: SLOAD
00000bdc: PUSH1 0x01
00000bde: PUSH1 0x01
00000be0: PUSH1 0x40
00000be2: SHL
00000be3: SUB
00000be4: AND
00000be5: JUMPDEST
00000be6: SWAP1
00000be7: POP
00000be8: DUP14
00000be9: PUSH1 0x01
00000beb: PUSH1 0x01
00000bed: PUSH1 0x40
00000bef: SHL
00000bf0: SUB
00000bf1: AND
00000bf2: DUP7
00000bf3: PUSH1 0x01
00000bf5: PUSH1 0x01
00000bf7: PUSH1 0x40
00000bf9: SHL
00000bfa: SUB
00000bfb: AND
00000bfc: LT
00000bfd: PUSH2 0x0c5f
00000c00: JUMPI
00000c01: DUP9
00000c02: SLOAD
00000c03: DUP15
00000c04: SWAP1
00000c05: DUP11
00000c06: SWAP1
00000c07: PUSH1 0x08
00000c09: SWAP1
00000c0a: PUSH2 0x0c24
00000c0d: SWAP1
00000c0e: DUP5
00000c0f: SWAP1
00000c10: PUSH1 0x01
00000c12: PUSH1 0x40
00000c14: SHL
00000c15: SWAP1
00000c16: DIV
00000c17: PUSH1 0x01
00000c19: PUSH1 0x01
00000c1b: PUSH1 0x40
00000c1d: SHL
00000c1e: SUB
00000c1f: AND
00000c20: PUSH2 0x1362
00000c23: JUMP
00000c24: JUMPDEST
00000c25: SWAP3
00000c26: POP
00000c27: PUSH2 0x0100
00000c2a: EXP
00000c2b: DUP2
00000c2c: SLOAD
00000c2d: DUP2
00000c2e: PUSH1 0x01
00000c30: PUSH1 0x01
00000c32: PUSH1 0x40
00000c34: SHL
00000c35: SUB
00000c36: MUL
00000c37: NOT
00000c38: AND
00000c39: SWAP1
00000c3a: DUP4
00000c3b: PUSH1 0x01
00000c3d: PUSH1 0x01
00000c3f: PUSH1 0x40
00000c41: SHL
00000c42: SUB
00000c43: AND
00000c44: MUL
00000c45: OR
00000c46: SWAP1
00000c47: SSTORE
00000c48: POP
00000c49: DUP14
00000c4a: DUP2
00000c4b: PUSH2 0x0c54
00000c4e: SWAP2
00000c4f: SWAP1
00000c50: PUSH2 0x1362
00000c53: JUMP
00000c54: JUMPDEST
00000c55: SWAP4
00000c56: POP
00000c57: PUSH1 0x00
00000c59: SWAP14
00000c5a: POP
00000c5b: PUSH2 0x0cc2
00000c5e: JUMP
00000c5f: JUMPDEST
00000c60: DUP9
00000c61: SLOAD
00000c62: DUP7
00000c63: SWAP1
00000c64: DUP11
00000c65: SWAP1
00000c66: PUSH1 0x08
00000c68: SWAP1
00000c69: PUSH2 0x0c83
00000c6c: SWAP1
00000c6d: DUP5
00000c6e: SWAP1
00000c6f: PUSH1 0x01
00000c71: PUSH1 0x40
00000c73: SHL
00000c74: SWAP1
00000c75: DIV
00000c76: PUSH1 0x01
00000c78: PUSH1 0x01
00000c7a: PUSH1 0x40
00000c7c: SHL
00000c7d: SUB
00000c7e: AND
00000c7f: PUSH2 0x1362
00000c82: JUMP
00000c83: JUMPDEST
00000c84: SWAP3
00000c85: POP
00000c86: PUSH2 0x0100
00000c89: EXP
00000c8a: DUP2
00000c8b: SLOAD
00000c8c: DUP2
00000c8d: PUSH1 0x01
00000c8f: PUSH1 0x01
00000c91: PUSH1 0x40
00000c93: SHL
00000c94: SUB
00000c95: MUL
00000c96: NOT
00000c97: AND
00000c98: SWAP1
00000c99: DUP4
00000c9a: PUSH1 0x01
00000c9c: PUSH1 0x01
00000c9e: PUSH1 0x40
00000ca0: SHL
00000ca1: SUB
00000ca2: AND
00000ca3: MUL
00000ca4: OR
00000ca5: SWAP1
00000ca6: SSTORE
00000ca7: POP
00000ca8: DUP6
00000ca9: DUP2
00000caa: PUSH2 0x0cb3
00000cad: SWAP2
00000cae: SWAP1
00000caf: PUSH2 0x1362
00000cb2: JUMP
00000cb3: JUMPDEST
00000cb4: SWAP4
00000cb5: POP
00000cb6: PUSH2 0x0cbf
00000cb9: DUP7
00000cba: DUP16
00000cbb: PUSH2 0x140f
00000cbe: JUMP
00000cbf: JUMPDEST
00000cc0: SWAP14
00000cc1: POP
00000cc2: JUMPDEST
00000cc3: PUSH1 0x08
00000cc5: PUSH1 0x40
00000cc7: MLOAD
00000cc8: DUP1
00000cc9: PUSH1 0x40
00000ccb: ADD
00000ccc: PUSH1 0x40
00000cce: MSTORE
00000ccf: DUP1
00000cd0: DUP7
00000cd1: PUSH1 0x01
00000cd3: PUSH1 0x01
00000cd5: PUSH1 0x40
00000cd7: SHL
00000cd8: SUB
00000cd9: AND
00000cda: DUP2
00000cdb: MSTORE
00000cdc: PUSH1 0x20
00000cde: ADD
00000cdf: PUSH2 0x0ce5
00000ce2: CALLER
00000ce3: SWAP1
00000ce4: JUMP
00000ce5: JUMPDEST
00000ce6: PUSH1 0x01
00000ce8: PUSH1 0x01
00000cea: PUSH1 0xa0
00000cec: SHL
00000ced: SUB
00000cee: SWAP1
00000cef: DUP2
00000cf0: AND
00000cf1: SWAP1
00000cf2: SWAP2
00000cf3: MSTORE
00000cf4: DUP3
00000cf5: SLOAD
00000cf6: PUSH1 0x01
00000cf8: DUP2
00000cf9: ADD
00000cfa: DUP5
00000cfb: SSTORE
00000cfc: PUSH1 0x00
00000cfe: SWAP4
00000cff: DUP5
00000d00: MSTORE
00000d01: PUSH1 0x20
00000d03: SWAP4
00000d04: DUP5
00000d05: SWAP1
00000d06: KECCAK256
00000d07: DUP4
00000d08: MLOAD
00000d09: SWAP2
00000d0a: ADD
00000d0b: DUP1
00000d0c: SLOAD
00000d0d: SWAP5
00000d0e: SWAP1
00000d0f: SWAP4
00000d10: ADD
00000d11: MLOAD
00000d12: SWAP1
00000d13: SWAP2
00000d14: AND
00000d15: PUSH1 0x01
00000d17: PUSH1 0x40
00000d19: SHL
00000d1a: MUL
00000d1b: PUSH1 0x01
00000d1d: PUSH1 0x01
00000d1f: PUSH1 0xe0
00000d21: SHL
00000d22: SUB
00000d23: NOT
00000d24: SWAP1
00000d25: SWAP4
00000d26: AND
00000d27: PUSH1 0x01
00000d29: PUSH1 0x01
00000d2b: PUSH1 0x40
00000d2d: SHL
00000d2e: SUB
00000d2f: SWAP1
00000d30: SWAP2
00000d31: AND
00000d32: OR
00000d33: SWAP2
00000d34: SWAP1
00000d35: SWAP2
00000d36: OR
00000d37: SWAP1
00000d38: SSTORE
00000d39: POP
00000d3a: POP
00000d3b: JUMPDEST
00000d3c: PUSH1 0x01
00000d3e: PUSH1 0x01
00000d40: PUSH1 0x40
00000d42: SHL
00000d43: SUB
00000d44: DUP13
00000d45: AND
00000d46: ISZERO
00000d47: PUSH2 0x0e60
00000d4a: JUMPI
00000d4b: PUSH1 0x09
00000d4d: SLOAD
00000d4e: PUSH1 0x00
00000d50: DUP2
00000d51: PUSH2 0x0d5b
00000d54: JUMPI
00000d55: PUSH1 0x00
00000d57: PUSH2 0x0d8e
00000d5a: JUMP
00000d5b: JUMPDEST
00000d5c: PUSH1 0x09
00000d5e: PUSH2 0x0d68
00000d61: PUSH1 0x01
00000d63: DUP5
00000d64: PUSH2 0x142f
00000d67: JUMP
00000d68: JUMPDEST
00000d69: DUP2
00000d6a: SLOAD
00000d6b: DUP2
00000d6c: LT
00000d6d: PUSH2 0x0d78
00000d70: JUMPI
00000d71: PUSH2 0x0d78
00000d74: PUSH2 0x1442
00000d77: JUMP
00000d78: JUMPDEST
00000d79: PUSH1 0x00
00000d7b: SWAP2
00000d7c: DUP3
00000d7d: MSTORE
00000d7e: PUSH1 0x20
00000d80: SWAP1
00000d81: SWAP2
00000d82: KECCAK256
00000d83: ADD
00000d84: SLOAD
00000d85: PUSH1 0x01
00000d87: PUSH1 0x01
00000d89: PUSH1 0x40
00000d8b: SHL
00000d8c: SUB
00000d8d: AND
00000d8e: JUMPDEST
00000d8f: DUP10
00000d90: SLOAD
00000d91: SWAP1
00000d92: SWAP2
00000d93: POP
00000d94: DUP15
00000d95: SWAP1
00000d96: DUP11
00000d97: SWAP1
00000d98: PUSH1 0x10
00000d9a: SWAP1
00000d9b: PUSH2 0x0db5
00000d9e: SWAP1
00000d9f: DUP5
00000da0: SWAP1
00000da1: PUSH1 0x01
00000da3: PUSH1 0x80
00000da5: SHL
00000da6: SWAP1
00000da7: DIV
00000da8: PUSH1 0x01
00000daa: PUSH1 0x01
00000dac: PUSH1 0x40
00000dae: SHL
00000daf: SUB
00000db0: AND
00000db1: PUSH2 0x1362
00000db4: JUMP
00000db5: JUMPDEST
00000db6: SWAP3
00000db7: POP
00000db8: PUSH2 0x0100
00000dbb: EXP
00000dbc: DUP2
00000dbd: SLOAD
00000dbe: DUP2
00000dbf: PUSH1 0x01
00000dc1: PUSH1 0x01
00000dc3: PUSH1 0x40
00000dc5: SHL
00000dc6: SUB
00000dc7: MUL
00000dc8: NOT
00000dc9: AND
00000dca: SWAP1
00000dcb: DUP4
00000dcc: PUSH1 0x01
00000dce: PUSH1 0x01
00000dd0: PUSH1 0x40
00000dd2: SHL
00000dd3: SUB
00000dd4: AND
00000dd5: MUL
00000dd6: OR
00000dd7: SWAP1
00000dd8: SSTORE
00000dd9: POP
00000dda: DUP14
00000ddb: DUP2
00000ddc: PUSH2 0x0de5
00000ddf: SWAP2
00000de0: SWAP1
00000de1: PUSH2 0x1362
00000de4: JUMP
00000de5: JUMPDEST
00000de6: SWAP3
00000de7: POP
00000de8: PUSH1 0x09
00000dea: PUSH1 0x40
00000dec: MLOAD
00000ded: DUP1
00000dee: PUSH1 0x40
00000df0: ADD
00000df1: PUSH1 0x40
00000df3: MSTORE
00000df4: DUP1
00000df5: DUP6
00000df6: PUSH1 0x01
00000df8: PUSH1 0x01
00000dfa: PUSH1 0x40
00000dfc: SHL
00000dfd: SUB
00000dfe: AND
00000dff: DUP2
00000e00: MSTORE
00000e01: PUSH1 0x20
00000e03: ADD
00000e04: PUSH2 0x0e0a
00000e07: CALLER
00000e08: SWAP1
00000e09: JUMP
00000e0a: JUMPDEST
00000e0b: PUSH1 0x01
00000e0d: PUSH1 0x01
00000e0f: PUSH1 0xa0
00000e11: SHL
00000e12: SUB
00000e13: SWAP1
00000e14: DUP2
00000e15: AND
00000e16: SWAP1
00000e17: SWAP2
00000e18: MSTORE
00000e19: DUP3
00000e1a: SLOAD
00000e1b: PUSH1 0x01
00000e1d: DUP2
00000e1e: ADD
00000e1f: DUP5
00000e20: SSTORE
00000e21: PUSH1 0x00
00000e23: SWAP4
00000e24: DUP5
00000e25: MSTORE
00000e26: PUSH1 0x20
00000e28: SWAP4
00000e29: DUP5
00000e2a: SWAP1
00000e2b: KECCAK256
00000e2c: DUP4
00000e2d: MLOAD
00000e2e: SWAP2
00000e2f: ADD
00000e30: DUP1
00000e31: SLOAD
00000e32: SWAP5
00000e33: SWAP1
00000e34: SWAP4
00000e35: ADD
00000e36: MLOAD
00000e37: SWAP1
00000e38: SWAP2
00000e39: AND
00000e3a: PUSH1 0x01
00000e3c: PUSH1 0x40
00000e3e: SHL
00000e3f: MUL
00000e40: PUSH1 0x01
00000e42: PUSH1 0x01
00000e44: PUSH1 0xe0
00000e46: SHL
00000e47: SUB
00000e48: NOT
00000e49: SWAP1
00000e4a: SWAP4
00000e4b: AND
00000e4c: PUSH1 0x01
00000e4e: PUSH1 0x01
00000e50: PUSH1 0x40
00000e52: SHL
00000e53: SUB
00000e54: SWAP1
00000e55: SWAP2
00000e56: AND
00000e57: OR
00000e58: SWAP2
00000e59: SWAP1
00000e5a: SWAP2
00000e5b: OR
00000e5c: SWAP1
00000e5d: SSTORE
00000e5e: POP
00000e5f: POP
00000e60: JUMPDEST
00000e61: PUSH1 0x40
00000e63: DUP1
00000e64: MLOAD
00000e65: CALLER
00000e66: DUP2
00000e67: MSTORE
00000e68: PUSH1 0x01
00000e6a: PUSH1 0x01
00000e6c: PUSH1 0x40
00000e6e: SHL
00000e6f: SUB
00000e70: DUP9
00000e71: DUP2
00000e72: AND
00000e73: PUSH1 0x20
00000e75: DUP4
00000e76: ADD
00000e77: MSTORE
00000e78: DUP6
00000e79: DUP2
00000e7a: AND
00000e7b: DUP3
00000e7c: DUP5
00000e7d: ADD
00000e7e: MSTORE
00000e7f: DUP5
00000e80: DUP2
00000e81: AND
00000e82: PUSH1 0x60
00000e84: DUP4
00000e85: ADD
00000e86: MSTORE
00000e87: DUP4
00000e88: AND
00000e89: PUSH1 0x80
00000e8b: DUP3
00000e8c: ADD
00000e8d: MSTORE
00000e8e: SWAP1
00000e8f: MLOAD
00000e90: PUSH32 0x9b8c9c4dfbab92505e97732f84b1c09ac1c8d23f47bea99d108b5ba3033c0681
00000eb1: SWAP2
00000eb2: DUP2
00000eb3: SWAP1
00000eb4: SUB
00000eb5: PUSH1 0xa0
00000eb7: ADD
00000eb8: SWAP1
00000eb9: LOG1
00000eba: POP
00000ebb: POP
00000ebc: POP
00000ebd: POP
00000ebe: POP
00000ebf: POP
00000ec0: POP
00000ec1: POP
00000ec2: POP
00000ec3: POP
00000ec4: POP
00000ec5: POP
00000ec6: JUMP
00000ec7: JUMPDEST
00000ec8: PUSH2 0x0ecf
00000ecb: PUSH2 0x0fe0
00000ece: JUMP
00000ecf: JUMPDEST
00000ed0: PUSH2 0x0801
00000ed3: PUSH2 0x107b
00000ed6: JUMP
00000ed7: JUMPDEST
00000ed8: PUSH1 0x09
00000eda: DUP2
00000edb: DUP2
00000edc: SLOAD
00000edd: DUP2
00000ede: LT
00000edf: PUSH2 0x0865
00000ee2: JUMPI
00000ee3: PUSH1 0x00
00000ee5: DUP1
00000ee6: REVERT
00000ee7: JUMPDEST
00000ee8: PUSH2 0x0eef
00000eeb: PUSH2 0x0fe0
00000eee: JUMP
00000eef: JUMPDEST
00000ef0: DUP1
00000ef1: PUSH1 0x03
00000ef3: PUSH2 0x0efc
00000ef6: DUP3
00000ef7: DUP3
00000ef8: PUSH2 0x1458
00000efb: JUMP
00000efc: JUMPDEST
00000efd: SWAP1
00000efe: POP
00000eff: POP
00000f00: PUSH32 0x4b0b17dddbf9d8af5f8f8ddbdc282235c36851ca1f51e4db9013a63a237f7366
00000f21: DUP2
00000f22: PUSH1 0x40
00000f24: MLOAD
00000f25: PUSH2 0x084a
00000f28: SWAP2
00000f29: SWAP1
00000f2a: PUSH2 0x148b
00000f2d: JUMP
00000f2e: JUMPDEST
00000f2f: PUSH2 0x0f36
00000f32: PUSH2 0x0fe0
00000f35: JUMP
00000f36: JUMPDEST
00000f37: PUSH1 0x01
00000f39: DUP1
00000f3a: SLOAD
00000f3b: PUSH1 0x01
00000f3d: PUSH1 0x01
00000f3f: PUSH1 0xa0
00000f41: SHL
00000f42: SUB
00000f43: DUP4
00000f44: AND
00000f45: PUSH1 0x01
00000f47: PUSH1 0x01
00000f49: PUSH1 0xa0
00000f4b: SHL
00000f4c: SUB
00000f4d: NOT
00000f4e: SWAP1
00000f4f: SWAP2
00000f50: AND
00000f51: DUP2
00000f52: OR
00000f53: SWAP1
00000f54: SWAP2
00000f55: SSTORE
00000f56: PUSH2 0x0f67
00000f59: PUSH1 0x00
00000f5b: SLOAD
00000f5c: PUSH1 0x01
00000f5e: PUSH1 0x01
00000f60: PUSH1 0xa0
00000f62: SHL
00000f63: SUB
00000f64: AND
00000f65: SWAP1
00000f66: JUMP
00000f67: JUMPDEST
00000f68: PUSH1 0x01
00000f6a: PUSH1 0x01
00000f6c: PUSH1 0xa0
00000f6e: SHL
00000f6f: SUB
00000f70: AND
00000f71: PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700
00000f92: PUSH1 0x40
00000f94: MLOAD
00000f95: PUSH1 0x40
00000f97: MLOAD
00000f98: DUP1
00000f99: SWAP2
00000f9a: SUB
00000f9b: SWAP1
00000f9c: LOG3
00000f9d: POP
00000f9e: JUMP
00000f9f: JUMPDEST
00000fa0: PUSH1 0x01
00000fa2: SLOAD
00000fa3: PUSH1 0x01
00000fa5: PUSH1 0xa0
00000fa7: SHL
00000fa8: SWAP1
00000fa9: DIV
00000faa: PUSH1 0xff
00000fac: AND
00000fad: ISZERO
00000fae: PUSH2 0x0801
00000fb1: JUMPI
00000fb2: PUSH1 0x40
00000fb4: MLOAD
00000fb5: PUSH4 0xd93c0665
00000fba: PUSH1 0xe0
00000fbc: SHL
00000fbd: DUP2
00000fbe: MSTORE
00000fbf: PUSH1 0x04
00000fc1: ADD
00000fc2: PUSH1 0x40
00000fc4: MLOAD
00000fc5: DUP1
00000fc6: SWAP2
00000fc7: SUB
00000fc8: SWAP1
00000fc9: REVERT
00000fca: JUMPDEST
00000fcb: PUSH1 0x00
00000fcd: DUP3
00000fce: PUSH2 0x0fd7
00000fd1: DUP6
00000fd2: DUP5
00000fd3: PUSH2 0x10be
00000fd6: JUMP
00000fd7: JUMPDEST
00000fd8: EQ
00000fd9: SWAP5
00000fda: SWAP4
00000fdb: POP
00000fdc: POP
00000fdd: POP
00000fde: POP
00000fdf: JUMP
00000fe0: JUMPDEST
00000fe1: PUSH1 0x00
00000fe3: SLOAD
00000fe4: PUSH1 0x01
00000fe6: PUSH1 0x01
00000fe8: PUSH1 0xa0
00000fea: SHL
00000feb: SUB
00000fec: AND
00000fed: CALLER
00000fee: EQ
00000fef: PUSH2 0x0801
00000ff2: JUMPI
00000ff3: PUSH1 0x40
00000ff5: MLOAD
00000ff6: PUSH4 0x118cdaa7
00000ffb: PUSH1 0xe0
00000ffd: SHL
00000ffe: DUP2
00000fff: MSTORE
00001000: CALLER
00001001: PUSH1 0x04
00001003: DUP3
00001004: ADD
00001005: MSTORE
00001006: PUSH1 0x24
00001008: ADD
00001009: PUSH2 0x08d6
0000100c: JUMP
0000100d: JUMPDEST
0000100e: PUSH2 0x1015
00001011: PUSH2 0x110d
00001014: JUMP
00001015: JUMPDEST
00001016: PUSH1 0x01
00001018: DUP1
00001019: SLOAD
0000101a: PUSH1 0xff
0000101c: PUSH1 0xa0
0000101e: SHL
0000101f: NOT
00001020: AND
00001021: SWAP1
00001022: SSTORE
00001023: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa
00001044: CALLER
00001045: JUMPDEST
00001046: PUSH1 0x40
00001048: MLOAD
00001049: PUSH1 0x01
0000104b: PUSH1 0x01
0000104d: PUSH1 0xa0
0000104f: SHL
00001050: SUB
00001051: SWAP1
00001052: SWAP2
00001053: AND
00001054: DUP2
00001055: MSTORE
00001056: PUSH1 0x20
00001058: ADD
00001059: PUSH1 0x40
0000105b: MLOAD
0000105c: DUP1
0000105d: SWAP2
0000105e: SUB
0000105f: SWAP1
00001060: LOG1
00001061: JUMP
00001062: JUMPDEST
00001063: PUSH1 0x01
00001065: DUP1
00001066: SLOAD
00001067: PUSH1 0x01
00001069: PUSH1 0x01
0000106b: PUSH1 0xa0
0000106d: SHL
0000106e: SUB
0000106f: NOT
00001070: AND
00001071: SWAP1
00001072: SSTORE
00001073: PUSH2 0x08e8
00001076: DUP2
00001077: PUSH2 0x1137
0000107a: JUMP
0000107b: JUMPDEST
0000107c: PUSH2 0x1083
0000107f: PUSH2 0x0f9f
00001082: JUMP
00001083: JUMPDEST
00001084: PUSH1 0x01
00001086: DUP1
00001087: SLOAD
00001088: PUSH1 0xff
0000108a: PUSH1 0xa0
0000108c: SHL
0000108d: NOT
0000108e: AND
0000108f: PUSH1 0x01
00001091: PUSH1 0xa0
00001093: SHL
00001094: OR
00001095: SWAP1
00001096: SSTORE
00001097: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258
000010b8: PUSH2 0x1045
000010bb: CALLER
000010bc: SWAP1
000010bd: JUMP
000010be: JUMPDEST
000010bf: PUSH1 0x00
000010c1: DUP2
000010c2: DUP2
000010c3: JUMPDEST
000010c4: DUP5
000010c5: MLOAD
000010c6: DUP2
000010c7: LT
000010c8: ISZERO
000010c9: PUSH2 0x1103
000010cc: JUMPI
000010cd: PUSH2 0x10ef
000010d0: DUP3
000010d1: DUP7
000010d2: DUP4
000010d3: DUP2
000010d4: MLOAD
000010d5: DUP2
000010d6: LT
000010d7: PUSH2 0x10e2
000010da: JUMPI
000010db: PUSH2 0x10e2
000010de: PUSH2 0x1442
000010e1: JUMP
000010e2: JUMPDEST
000010e3: PUSH1 0x20
000010e5: MUL
000010e6: PUSH1 0x20
000010e8: ADD
000010e9: ADD
000010ea: MLOAD
000010eb: PUSH2 0x1187
000010ee: JUMP
000010ef: JUMPDEST
000010f0: SWAP2
000010f1: POP
000010f2: DUP1
000010f3: PUSH2 0x10fb
000010f6: DUP2
000010f7: PUSH2 0x14ba
000010fa: JUMP
000010fb: JUMPDEST
000010fc: SWAP2
000010fd: POP
000010fe: POP
000010ff: PUSH2 0x10c3
00001102: JUMP
00001103: JUMPDEST
00001104: POP
00001105: SWAP1
00001106: POP
00001107: JUMPDEST
00001108: SWAP3
00001109: SWAP2
0000110a: POP
0000110b: POP
0000110c: JUMP
0000110d: JUMPDEST
0000110e: PUSH1 0x01
00001110: SLOAD
00001111: PUSH1 0x01
00001113: PUSH1 0xa0
00001115: SHL
00001116: SWAP1
00001117: DIV
00001118: PUSH1 0xff
0000111a: AND
0000111b: PUSH2 0x0801
0000111e: JUMPI
0000111f: PUSH1 0x40
00001121: MLOAD
00001122: PUSH4 0x8dfc202b
00001127: PUSH1 0xe0
00001129: SHL
0000112a: DUP2
0000112b: MSTORE
0000112c: PUSH1 0x04
0000112e: ADD
0000112f: PUSH1 0x40
00001131: MLOAD
00001132: DUP1
00001133: SWAP2
00001134: SUB
00001135: SWAP1
00001136: REVERT
00001137: JUMPDEST
00001138: PUSH1 0x00
0000113a: DUP1
0000113b: SLOAD
0000113c: PUSH1 0x01
0000113e: PUSH1 0x01
00001140: PUSH1 0xa0
00001142: SHL
00001143: SUB
00001144: DUP4
00001145: DUP2
00001146: AND
00001147: PUSH1 0x01
00001149: PUSH1 0x01
0000114b: PUSH1 0xa0
0000114d: SHL
0000114e: SUB
0000114f: NOT
00001150: DUP4
00001151: AND
00001152: DUP2
00001153: OR
00001154: DUP5
00001155: SSTORE
00001156: PUSH1 0x40
00001158: MLOAD
00001159: SWAP2
0000115a: SWAP1
0000115b: SWAP3
0000115c: AND
0000115d: SWAP3
0000115e: DUP4
0000115f: SWAP2
00001160: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00001181: SWAP2
00001182: SWAP1
00001183: LOG3
00001184: POP
00001185: POP
00001186: JUMP
00001187: JUMPDEST
00001188: PUSH1 0x00
0000118a: DUP2
0000118b: DUP4
0000118c: LT
0000118d: PUSH2 0x11a3
00001190: JUMPI
00001191: PUSH1 0x00
00001193: DUP3
00001194: DUP2
00001195: MSTORE
00001196: PUSH1 0x20
00001198: DUP5
00001199: SWAP1
0000119a: MSTORE
0000119b: PUSH1 0x40
0000119d: SWAP1
0000119e: KECCAK256
0000119f: PUSH2 0x11b2
000011a2: JUMP
000011a3: JUMPDEST
000011a4: PUSH1 0x00
000011a6: DUP4
000011a7: DUP2
000011a8: MSTORE
000011a9: PUSH1 0x20
000011ab: DUP4
000011ac: SWAP1
000011ad: MSTORE
000011ae: PUSH1 0x40
000011b0: SWAP1
000011b1: KECCAK256
000011b2: JUMPDEST
000011b3: SWAP4
000011b4: SWAP3
000011b5: POP
000011b6: POP
000011b7: POP
000011b8: JUMP
000011b9: JUMPDEST
000011ba: PUSH1 0x00
000011bc: DUP1
000011bd: DUP4
000011be: PUSH1 0x1f
000011c0: DUP5
000011c1: ADD
000011c2: SLT
000011c3: PUSH2 0x11cb
000011c6: JUMPI
000011c7: PUSH1 0x00
000011c9: DUP1
000011ca: REVERT
000011cb: JUMPDEST
000011cc: POP
000011cd: DUP2
000011ce: CALLDATALOAD
000011cf: PUSH1 0x01
000011d1: PUSH1 0x01
000011d3: PUSH1 0x40
000011d5: SHL
000011d6: SUB
000011d7: DUP2
000011d8: GT
000011d9: ISZERO
000011da: PUSH2 0x11e2
000011dd: JUMPI
000011de: PUSH1 0x00
000011e0: DUP1
000011e1: REVERT
000011e2: JUMPDEST
000011e3: PUSH1 0x20
000011e5: DUP4
000011e6: ADD
000011e7: SWAP2
000011e8: POP
000011e9: DUP4
000011ea: PUSH1 0x20
000011ec: DUP3
000011ed: PUSH1 0x05
000011ef: SHL
000011f0: DUP6
000011f1: ADD
000011f2: ADD
000011f3: GT
000011f4: ISZERO
000011f5: PUSH2 0x11fd
000011f8: JUMPI
000011f9: PUSH1 0x00
000011fb: DUP1
000011fc: REVERT
000011fd: JUMPDEST
000011fe: SWAP3
000011ff: POP
00001200: SWAP3
00001201: SWAP1
00001202: POP
00001203: JUMP
00001204: JUMPDEST
00001205: PUSH1 0x00
00001207: DUP1
00001208: PUSH1 0x00
0000120a: PUSH1 0x40
0000120c: DUP5
0000120d: DUP7
0000120e: SUB
0000120f: SLT
00001210: ISZERO
00001211: PUSH2 0x1219
00001214: JUMPI
00001215: PUSH1 0x00
00001217: DUP1
00001218: REVERT
00001219: JUMPDEST
0000121a: DUP4
0000121b: CALLDATALOAD
0000121c: SWAP3
0000121d: POP
0000121e: PUSH1 0x20
00001220: DUP5
00001221: ADD
00001222: CALLDATALOAD
00001223: PUSH1 0x01
00001225: PUSH1 0x01
00001227: PUSH1 0x40
00001229: SHL
0000122a: SUB
0000122b: DUP2
0000122c: GT
0000122d: ISZERO
0000122e: PUSH2 0x1236
00001231: JUMPI
00001232: PUSH1 0x00
00001234: DUP1
00001235: REVERT
00001236: JUMPDEST
00001237: PUSH2 0x1242
0000123a: DUP7
0000123b: DUP3
0000123c: DUP8
0000123d: ADD
0000123e: PUSH2 0x11b9
00001241: JUMP
00001242: JUMPDEST
00001243: SWAP5
00001244: SWAP8
00001245: SWAP1
00001246: SWAP7
00001247: POP
00001248: SWAP4
00001249: SWAP5
0000124a: POP
0000124b: POP
0000124c: POP
0000124d: POP
0000124e: JUMP
0000124f: JUMPDEST
00001250: PUSH1 0x00
00001252: PUSH1 0x20
00001254: DUP3
00001255: DUP5
00001256: SUB
00001257: SLT
00001258: ISZERO
00001259: PUSH2 0x1261
0000125c: JUMPI
0000125d: PUSH1 0x00
0000125f: DUP1
00001260: REVERT
00001261: JUMPDEST
00001262: POP
00001263: CALLDATALOAD
00001264: SWAP2
00001265: SWAP1
00001266: POP
00001267: JUMP
00001268: JUMPDEST
00001269: PUSH1 0x00
0000126b: PUSH1 0x20
0000126d: DUP3
0000126e: DUP5
0000126f: SUB
00001270: SLT
00001271: ISZERO
00001272: PUSH2 0x127a
00001275: JUMPI
00001276: PUSH1 0x00
00001278: DUP1
00001279: REVERT
0000127a: JUMPDEST
0000127b: DUP2
0000127c: CALLDATALOAD
0000127d: PUSH1 0x01
0000127f: PUSH1 0x01
00001281: PUSH1 0xa0
00001283: SHL
00001284: SUB
00001285: DUP2
00001286: AND
00001287: DUP2
00001288: EQ
00001289: PUSH2 0x11b2
0000128c: JUMPI
0000128d: PUSH1 0x00
0000128f: DUP1
00001290: REVERT
00001291: JUMPDEST
00001292: PUSH1 0x00
00001294: PUSH1 0x40
00001296: DUP3
00001297: DUP5
00001298: SUB
00001299: SLT
0000129a: ISZERO
0000129b: PUSH2 0x12a3
0000129e: JUMPI
0000129f: PUSH1 0x00
000012a1: DUP1
000012a2: REVERT
000012a3: JUMPDEST
000012a4: POP
000012a5: SWAP2
000012a6: SWAP1
000012a7: POP
000012a8: JUMP
000012a9: JUMPDEST
000012aa: DUP1
000012ab: CALLDATALOAD
000012ac: PUSH1 0x01
000012ae: PUSH1 0x01
000012b0: PUSH1 0x40
000012b2: SHL
000012b3: SUB
000012b4: DUP2
000012b5: AND
000012b6: DUP2
000012b7: EQ
000012b8: PUSH2 0x12c0
000012bb: JUMPI
000012bc: PUSH1 0x00
000012be: DUP1
000012bf: REVERT
000012c0: JUMPDEST
000012c1: SWAP2
000012c2: SWAP1
000012c3: POP
000012c4: JUMP
000012c5: JUMPDEST
000012c6: PUSH1 0x00
000012c8: DUP1
000012c9: PUSH1 0x00
000012cb: DUP1
000012cc: PUSH1 0x00
000012ce: PUSH1 0x80
000012d0: DUP7
000012d1: DUP9
000012d2: SUB
000012d3: SLT
000012d4: ISZERO
000012d5: PUSH2 0x12dd
000012d8: JUMPI
000012d9: PUSH1 0x00
000012db: DUP1
000012dc: REVERT
000012dd: JUMPDEST
000012de: PUSH2 0x12e6
000012e1: DUP7
000012e2: PUSH2 0x12a9
000012e5: JUMP
000012e6: JUMPDEST
000012e7: SWAP5
000012e8: POP
000012e9: PUSH2 0x12f4
000012ec: PUSH1 0x20
000012ee: DUP8
000012ef: ADD
000012f0: PUSH2 0x12a9
000012f3: JUMP
000012f4: JUMPDEST
000012f5: SWAP4
000012f6: POP
000012f7: PUSH2 0x1302
000012fa: PUSH1 0x40
000012fc: DUP8
000012fd: ADD
000012fe: PUSH2 0x12a9
00001301: JUMP
00001302: JUMPDEST
00001303: SWAP3
00001304: POP
00001305: PUSH1 0x60
00001307: DUP7
00001308: ADD
00001309: CALLDATALOAD
0000130a: PUSH1 0x01
0000130c: PUSH1 0x01
0000130e: PUSH1 0x40
00001310: SHL
00001311: SUB
00001312: DUP2
00001313: GT
00001314: ISZERO
00001315: PUSH2 0x131d
00001318: JUMPI
00001319: PUSH1 0x00
0000131b: DUP1
0000131c: REVERT
0000131d: JUMPDEST
0000131e: PUSH2 0x1329
00001321: DUP9
00001322: DUP3
00001323: DUP10
00001324: ADD
00001325: PUSH2 0x11b9
00001328: JUMP
00001329: JUMPDEST
0000132a: SWAP7
0000132b: SWAP10
0000132c: SWAP6
0000132d: SWAP9
0000132e: POP
0000132f: SWAP4
00001330: SWAP7
00001331: POP
00001332: SWAP3
00001333: SWAP5
00001334: SWAP4
00001335: SWAP3
00001336: POP
00001337: POP
00001338: POP
00001339: JUMP
0000133a: JUMPDEST
0000133b: PUSH1 0x00
0000133d: PUSH1 0x60
0000133f: DUP3
00001340: DUP5
00001341: SUB
00001342: SLT
00001343: ISZERO
00001344: PUSH2 0x12a3
00001347: JUMPI
00001348: PUSH1 0x00
0000134a: DUP1
0000134b: REVERT
0000134c: JUMPDEST
0000134d: PUSH4 0x4e487b71
00001352: PUSH1 0xe0
00001354: SHL
00001355: PUSH1 0x00
00001357: MSTORE
00001358: PUSH1 0x11
0000135a: PUSH1 0x04
0000135c: MSTORE
0000135d: PUSH1 0x24
0000135f: PUSH1 0x00
00001361: REVERT
00001362: JUMPDEST
00001363: PUSH1 0x01
00001365: PUSH1 0x01
00001367: PUSH1 0x40
00001369: SHL
0000136a: SUB
0000136b: DUP2
0000136c: DUP2
0000136d: AND
0000136e: DUP4
0000136f: DUP3
00001370: AND
00001371: ADD
00001372: SWAP1
00001373: DUP1
00001374: DUP3
00001375: GT
00001376: ISZERO
00001377: PUSH2 0x1382
0000137a: JUMPI
0000137b: PUSH2 0x1382
0000137e: PUSH2 0x134c
00001381: JUMP
00001382: JUMPDEST
00001383: POP
00001384: SWAP3
00001385: SWAP2
00001386: POP
00001387: POP
00001388: JUMP
00001389: JUMPDEST
0000138a: DUP1
0000138b: DUP3
0000138c: MUL
0000138d: DUP2
0000138e: ISZERO
0000138f: DUP3
00001390: DUP3
00001391: DIV
00001392: DUP5
00001393: EQ
00001394: OR
00001395: PUSH2 0x1107
00001398: JUMPI
00001399: PUSH2 0x1107
0000139c: PUSH2 0x134c
0000139f: JUMP
000013a0: JUMPDEST
000013a1: DUP1
000013a2: DUP3
000013a3: ADD
000013a4: DUP1
000013a5: DUP3
000013a6: GT
000013a7: ISZERO
000013a8: PUSH2 0x1107
000013ab: JUMPI
000013ac: PUSH2 0x1107
000013af: PUSH2 0x134c
000013b2: JUMP
000013b3: JUMPDEST
000013b4: DUP1
000013b5: ISZERO
000013b6: ISZERO
000013b7: DUP2
000013b8: EQ
000013b9: PUSH2 0x08e8
000013bc: JUMPI
000013bd: PUSH1 0x00
000013bf: DUP1
000013c0: REVERT
000013c1: JUMPDEST
000013c2: DUP2
000013c3: CALLDATALOAD
000013c4: PUSH2 0x13cc
000013c7: DUP2
000013c8: PUSH2 0x13b3
000013cb: JUMP
000013cc: JUMPDEST
000013cd: DUP2
000013ce: SLOAD
000013cf: PUSH1 0xff
000013d1: NOT
000013d2: AND
000013d3: PUSH1 0xff
000013d5: DUP3
000013d6: ISZERO
000013d7: ISZERO
000013d8: AND
000013d9: OR
000013da: DUP3
000013db: SSTORE
000013dc: POP
000013dd: PUSH1 0x20
000013df: DUP3
000013e0: ADD
000013e1: CALLDATALOAD
000013e2: PUSH1 0x01
000013e4: DUP3
000013e5: ADD
000013e6: SSTORE
000013e7: POP
000013e8: POP
000013e9: JUMP
000013ea: JUMPDEST
000013eb: PUSH1 0x40
000013ed: DUP2
000013ee: ADD
000013ef: DUP3
000013f0: CALLDATALOAD
000013f1: PUSH2 0x13f9
000013f4: DUP2
000013f5: PUSH2 0x13b3
000013f8: JUMP
000013f9: JUMPDEST
000013fa: DUP1
000013fb: ISZERO
000013fc: ISZERO
000013fd: DUP4
000013fe: MSTORE
000013ff: POP
00001400: PUSH1 0x20
00001402: DUP4
00001403: ADD
00001404: CALLDATALOAD
00001405: PUSH1 0x20
00001407: DUP4
00001408: ADD
00001409: MSTORE
0000140a: SWAP3
0000140b: SWAP2
0000140c: POP
0000140d: POP
0000140e: JUMP
0000140f: JUMPDEST
00001410: PUSH1 0x01
00001412: PUSH1 0x01
00001414: PUSH1 0x40
00001416: SHL
00001417: SUB
00001418: DUP3
00001419: DUP2
0000141a: AND
0000141b: DUP3
0000141c: DUP3
0000141d: AND
0000141e: SUB
0000141f: SWAP1
00001420: DUP1
00001421: DUP3
00001422: GT
00001423: ISZERO
00001424: PUSH2 0x1382
00001427: JUMPI
00001428: PUSH2 0x1382
0000142b: PUSH2 0x134c
0000142e: JUMP
0000142f: JUMPDEST
00001430: DUP2
00001431: DUP2
00001432: SUB
00001433: DUP2
00001434: DUP2
00001435: GT
00001436: ISZERO
00001437: PUSH2 0x1107
0000143a: JUMPI
0000143b: PUSH2 0x1107
0000143e: PUSH2 0x134c
00001441: JUMP
00001442: JUMPDEST
00001443: PUSH4 0x4e487b71
00001448: PUSH1 0xe0
0000144a: SHL
0000144b: PUSH1 0x00
0000144d: MSTORE
0000144e: PUSH1 0x32
00001450: PUSH1 0x04
00001452: MSTORE
00001453: PUSH1 0x24
00001455: PUSH1 0x00
00001457: REVERT
00001458: JUMPDEST
00001459: DUP2
0000145a: CALLDATALOAD
0000145b: PUSH2 0x1463
0000145e: DUP2
0000145f: PUSH2 0x13b3
00001462: JUMP
00001463: JUMPDEST
00001464: DUP2
00001465: SLOAD
00001466: PUSH1 0xff
00001468: NOT
00001469: AND
0000146a: PUSH1 0xff
0000146c: DUP3
0000146d: ISZERO
0000146e: ISZERO
0000146f: AND
00001470: OR
00001471: DUP3
00001472: SSTORE
00001473: POP
00001474: PUSH1 0x20
00001476: DUP3
00001477: ADD
00001478: CALLDATALOAD
00001479: PUSH1 0x01
0000147b: DUP3
0000147c: ADD
0000147d: SSTORE
0000147e: PUSH1 0x40
00001480: DUP3
00001481: ADD
00001482: CALLDATALOAD
00001483: PUSH1 0x02
00001485: DUP3
00001486: ADD
00001487: SSTORE
00001488: POP
00001489: POP
0000148a: JUMP
0000148b: JUMPDEST
0000148c: PUSH1 0x60
0000148e: DUP2
0000148f: ADD
00001490: DUP3
00001491: CALLDATALOAD
00001492: PUSH2 0x149a
00001495: DUP2
00001496: PUSH2 0x13b3
00001499: JUMP
0000149a: JUMPDEST
0000149b: DUP1
0000149c: ISZERO
0000149d: ISZERO
0000149e: DUP4
0000149f: MSTORE
000014a0: POP
000014a1: PUSH1 0x20
000014a3: DUP4
000014a4: ADD
000014a5: CALLDATALOAD
000014a6: PUSH1 0x20
000014a8: DUP4
000014a9: ADD
000014aa: MSTORE
000014ab: PUSH1 0x40
000014ad: DUP4
000014ae: ADD
000014af: CALLDATALOAD
000014b0: PUSH1 0x40
000014b2: DUP4
000014b3: ADD
000014b4: MSTORE
000014b5: SWAP3
000014b6: SWAP2
000014b7: POP
000014b8: POP
000014b9: JUMP
000014ba: JUMPDEST
000014bb: PUSH1 0x00
000014bd: PUSH1 0x01
000014bf: DUP3
000014c0: ADD
000014c1: PUSH2 0x14cc
000014c4: JUMPI
000014c5: PUSH2 0x14cc
000014c8: PUSH2 0x134c
000014cb: JUMP
000014cc: JUMPDEST
000014cd: POP
000014ce: PUSH1 0x01
000014d0: ADD
000014d1: SWAP1
000014d2: JUMP
000014d3: INVALID
000014d4: LOG2
000014d5: PUSH5 0x6970667358
000014db: UNKNOWN(0x22)
000014dc: SLT
000014dd: KECCAK256
000014de: SUB
000014df: SWAP11
000014e0: UNKNOWN(0xBA)
000014e1: UNKNOWN(0xC9)
000014e2: UNKNOWN(0x4B)
000014e3: UNKNOWN(0x27)
000014e4: MCOPY
000014e5: UNKNOWN(0xB1)
000014e6: UNKNOWN(0xB7)
000014e7: UNKNOWN(0xD6)
000014e8: BLOBBASEFEE
000014e9: CALLDATALOAD
000014ea: UNKNOWN(0xF9)
000014eb: UNKNOWN(0xCD)
000014ec: NUMBER
000014ed: CHAINID
000014ee: UNKNOWN(0xE4)
000014ef: UNKNOWN(0x26)
000014f0: PUSH17 0x0be9fd7fe1e864e5be7b33b0f364736f6c
00001502: PUSH4 0x43000814
00001507: STOP
00001508: 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: 0x474f4de87e76591811007e1b65534419dccbfd3f2f8957ce5d77d49823016892
call_targets: 0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x474f4de87e76591811007e1b65534419dccbfd3f2f8957ce5d77d49823016892",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4"
    ],
    "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": "0x96fafd9d",
            "selector": "0x96fafd9d",
            "calldata_variants": [
                "0x96fafd9d",
                "0x96fafd9d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa677f982",
            "selector": "0xa677f982",
            "calldata_variants": [
                "0xa677f982",
                "0xa677f9820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd902dbc0",
            "selector": "0xd902dbc0",
            "calldata_variants": [
                "0xd902dbc0",
                "0xd902dbc00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xda26f12b",
            "selector": "0xda26f12b",
            "calldata_variants": [
                "0xda26f12b",
                "0xda26f12b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe30c3978",
            "selector": "0xe30c3978",
            "calldata_variants": [
                "0xe30c3978",
                "0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7f847904",
            "selector": "0x7f847904",
            "calldata_variants": [
                "0x7f847904",
                "0x7f8479040000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8456cb59",
            "selector": "0x8456cb59",
            "calldata_variants": [
                "0x8456cb59",
                "0x8456cb590000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1670,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1942,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x474f4de87e76591811007e1b65534419dccbfd3f2f8957ce5d77d49823016892
call_targets: 0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x474f4de87e76591811007e1b65534419dccbfd3f2f8957ce5d77d49823016892",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4"
    ],
    "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": "0x96fafd9d",
            "selector": "0x96fafd9d",
            "calldata_variants": [
                "0x96fafd9d",
                "0x96fafd9d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa677f982",
            "selector": "0xa677f982",
            "calldata_variants": [
                "0xa677f982",
                "0xa677f9820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd902dbc0",
            "selector": "0xd902dbc0",
            "calldata_variants": [
                "0xd902dbc0",
                "0xd902dbc00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xda26f12b",
            "selector": "0xda26f12b",
            "calldata_variants": [
                "0xda26f12b",
                "0xda26f12b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe30c3978",
            "selector": "0xe30c3978",
            "calldata_variants": [
                "0xe30c3978",
                "0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7f847904",
            "selector": "0x7f847904",
            "calldata_variants": [
                "0x7f847904",
                "0x7f8479040000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8456cb59",
            "selector": "0x8456cb59",
            "calldata_variants": [
                "0x8456cb59",
                "0x8456cb590000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1670,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1942,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}
medium reentrancy codex Computed CALL with ETH value may reach untrusted target 75 no
view
evidence_json
{
    "evidence": "CALL sites at pc 1670 and 1942 have target/value marked computed and returndata_checked=null; detector flags untrusted CALL + ETH value transfer possible; validation saw constant target but not confirmed.",
    "locations": [
        "pc:0x686",
        "pc:0x796"
    ],
    "recommendation": "Constrain CALL target/value to trusted addresses (immutable/whitelist), add reentrancy protection around any state changes before/after the call, and check CALL success/returndata so failures cannot be ignored.",
    "exploit_scenario": "If the CALL target/value are derived from user-controlled calldata or mutable storage, an attacker can trigger an external call with ETH to an arbitrary address and reenter before state is finalized, or redirect funds. The only observed validation trace showed the target constant to the contract itself (0x2c11c5231db1e1feb5e842dbd1c169e5f0d315d4), which would reduce risk, but bytecode-only evidence cannot confirm the target is always constant."
}