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

Analysis Run

019ba8f8-3f30-70a7-ac13-16bb4d3c6474

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

What survived the funnel

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

Confirmed
2
Validated
2
Source
Verified
Review Backing
Present
Best current signal
ETH value transfer possible
crit 0 high 2 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
33690 artifact.fetch complete 1 / 3 3 months ago
33691 proxy.resolve complete 1 / 3 3 months ago
33692 tool.cast_disasm complete 1 / 3 3 months ago
33693 analysis.bundle complete 1 / 3 3 months ago
33694 capability.graph complete 1 / 3 3 months ago
33695 detector.run complete 1 / 3 3 months ago
33696 validation.fork complete 1 / 3 3 months ago
33816 report.consolidate complete 1 / 6 3 months ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Found a reentrancy-based order overfill risk via external AccountLevels calls and an insecure test AccountLevels implementation that allows anyone to self-assign fee rebates if configured.
View stdout
{"no_findings":false,"summary":"Found a reentrancy-based order overfill risk via external AccountLevels calls and an insecure test AccountLevels implementation that allows anyone to self-assign fee rebates if configured.","findings":[{"severity":"medium","category":"reentrancy","title":"Reentrancy via AccountLevels allows order overfill before orderFills update","exploit_scenario":"If accountLevelsAddr points to a malicious or compromised contract, its accountLevel() can reenter DecentrEx.trade() before the outer call updates orderFills. Because each trade checks orderFills before it is incremented, multiple reentrant fills can pass the limit check and push orderFills above amountGet, forcing the maker to trade more than intended at the quoted price.","recommendation":"Avoid external calls before updating order state: update orderFills before tradeBalances or add a reentrancy guard around trade/tradeBalances. Alternatively, restrict accountLevelsAddr to a trusted, non-reentrant contract and consider using a pull model or staticcall semantics when available.","evidence":"trade() checks orderFills then calls tradeBalances, but only increments orderFills after tradeBalances returns; tradeBalances makes an external call to accountLevelsAddr.accountLevel(user).","locations":["contracts/Contract.sol:252","contracts/Contract.sol:260","contracts/Contract.sol:261","contracts/Contract.sol:265","contracts/Contract.sol:269"]},{"severity":"low","category":"access_control","title":"AccountLevelsTest allows anyone to set fee tier if used in production","exploit_scenario":"If the admin configures accountLevelsAddr to AccountLevelsTest (or a similarly unrestricted contract), any user can call setAccountLevel() to assign themselves level 1 or 2, receiving rebates or full taker-fee refunds and effectively bypassing fees, draining feeAccount revenue.","recommendation":"Do not deploy or point to AccountLevelsTest in production; restrict setAccountLevel to an authorized role (e.g., admin) in any production AccountLevels implementation.","evidence":"AccountLevelsTest.setAccountLevel has no access control, and DecentrEx allows admin to set accountLevelsAddr to any contract.","locations":["contracts/Contract.sol:139","contracts/Contract.sol:142","contracts/Contract.sol:186","contracts/Contract.sol:188"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-u0wposb3
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: xhigh
reasoning summaries: auto
session id: 019ba8f9-08dd-75a2-80a1-8901bb2adcfa
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.

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 and file/line locations when possible.

Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers

thinking
**Reading AUDIT_BUNDLE.txt**
exec
/bin/bash -lc ls in /tmp/codex-u0wposb3 succeeded in 8ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'rg --files' in /tmp/codex-u0wposb3 succeeded in 43ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts/Contract.sol
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-u0wposb3 succeeded in 5ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: contracts/Contract.sol
================================================================================
pragma solidity ^0.4.8;

contract SafeMath {
  function safeMul(uint a, uint b) internal returns (uint) {
    uint c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function safeSub(uint a, uint b) internal returns (uint) {
    assert(b <= a);
    return a - b;
  }




thinking
**Analyzing reentrancy and signature vulnerabilities**

I’m carefully auditing this Solidity 0.4.8 DEX contract for classic reentrancy risks, signature validation issues, and external call patterns. There’s a nuanced reentrancy concern via the external `accountLevels` call during trades, potentially allowing order overfills before state updates finalize, which could let a malicious `accountLevels` contract exploit admin-controlled settings. I’m also looking into withdrawal patterns, ERC20 token interactions, known ERC20 race conditions, and hashing/signature schemes to weigh possible vulnerabilities or economic exploits. The overall picture shows some risks tied to admin privileges and token specifics, but fundamental security mechanisms like safe math and balance checks appear mostly intact.
thinking
**Examining fee settings and external call risks**

I’m reviewing fee adjustment constraints, signature and nonce handling, and reentrancy risks tied to the admin-configured external accountLevels contract. I’m also considering attack scenarios involving token transfers, short address issues, and potential exploits from malicious or misconfigured contracts that interact via external calls during trades or withdrawals. The details highlight subtle risks mostly related to admin privileges and external dependencies rather than widespread user exploits.
thinking
**Confirming reentrancy overfill vulnerability and signature checks**

I’m validating that the main issue is the reentrancy via the external accountLevels call allowing multiple fills before orderFills update, enabling overfill beyond the order’s amountGet limit. This creates a medium-severity vulnerability as makers can be forced to trade more than intended at the same price. I’m also verifying signature construction and nonce usage, finding them consistent and well-checked, while noting minor config risks like access control gaps in test contracts and known ERC20 approve race conditions. This sets a solid basis for detailed findings.
exec
/bin/bash -lc 'nl -ba contracts/Contract.sol' in /tmp/codex-u0wposb3 succeeded in 7ms:
     1	pragma solidity ^0.4.8;
     2	
     3	contract SafeMath {
     4	  function safeMul(uint a, uint b) internal returns (uint) {
     5	    uint c = a * b;
     6	    assert(a == 0 || c / a == b);
     7	    return c;
     8	  }
     9	
    10	  function safeSub(uint a, uint b) internal returns (uint) {
    11	    assert(b <= a);
    12	    return a - b;
    13	  }
    14	
    15	  function safeAdd(uint a, uint b) internal returns (uint) {
    16	    uint c = a + b;
    17	    assert(c>=a && c>=b);
    18	    return c;
    19	  }
    20	

thinking
**Summarizing key audit findings**

I’m outlining two main issues: a medium-severity reentrancy risk allowing order overfill through external calls before order fills update, and a low-severity access control problem where the test AccountLevels contract permits anyone to set their account level, potentially enabling fee avoidance if misconfigured in production. I’ll craft precise JSON output detailing severity, category, scenarios, recommendations, and evidence referencing code lines and file paths.
codex
{"no_findings":false,"summary":"Found a reentrancy-based order overfill risk via external AccountLevels calls and an insecure test AccountLevels implementation that allows anyone to self-assign fee rebates if configured.","findings":[{"severity":"medium","category":"reentrancy","title":"Reentrancy via AccountLevels allows order overfill before orderFills update","exploit_scenario":"If accountLevelsAddr points to a malicious or compromised contract, its accountLevel() can reenter DecentrEx.trade() before the outer call updates orderFills. Because each trade checks orderFills before it is incremented, multiple reentrant fills can pass the limit check and push orderFills above amountGet, forcing the maker to trade more than intended at the quoted price.","recommendation":"Avoid external calls before updating order state: update orderFills before tradeBalances or add a reentrancy guard around trade/tradeBalances. Alternatively, restrict accountLevelsAddr to a trusted, non-reentrant contract and consider using a pull model or staticcall semantics when available.","evidence":"trade() checks orderFills then calls tradeBalances, but only increments orderFills after tradeBalances returns; tradeBalances makes an external call to accountLevelsAddr.accountLevel(user).","locations":["contracts/Contract.sol:252","contracts/Contract.sol:260","contracts/Contract.sol:261","contracts/Contract.sol:265","contracts/Contract.sol:269"]},{"severity":"low","category":"access_control","title":"AccountLevelsTest allows anyone to set fee tier if used in production","exploit_scenario":"If the admin configures accountLevelsAddr to AccountLevelsTest (or a similarly unrestricted contract), any user can call setAccountLevel() to assign themselves level 1 or 2, receiving rebates or full taker-fee refunds and effectively bypassing fees, draining feeAccount revenue.","recommendation":"Do not deploy or point to AccountLevelsTest in production; restrict setAccountLevel to an authorized role (e.g., admin) in any production AccountLevels implementation.","evidence":"AccountLevelsTest.setAccountLevel has no access control, and DecentrEx allows admin to set accountLevelsAddr to any contract.","locations":["contracts/Contract.sol:139","contracts/Contract.sol:142","contracts/Contract.sol:186","contracts/Contract.sol:188"]}]}
tokens used
24,362
Metadata
{
    "codex": {
        "ran_at": "2026-01-10T17:37:54.927383+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 1,
        "import_count": 0,
        "first_party_contracts_count": 1
    },
    "summary": "Found a reentrancy-based order overfill risk via external AccountLevels calls and an insecure test AccountLevels implementation that allows anyone to self-assign fee rebates if configured.",
    "raw_final": {
        "summary": "Found a reentrancy-based order overfill risk via external AccountLevels calls and an insecure test AccountLevels implementation that allows anyone to self-assign fee rebates if configured.",
        "findings": [
            {
                "title": "Reentrancy via AccountLevels allows order overfill before orderFills update",
                "category": "reentrancy",
                "evidence": "trade() checks orderFills then calls tradeBalances, but only increments orderFills after tradeBalances returns; tradeBalances makes an external call to accountLevelsAddr.accountLevel(user).",
                "severity": "medium",
                "locations": [
                    "contracts/Contract.sol:252",
                    "contracts/Contract.sol:260",
                    "contracts/Contract.sol:261",
                    "contracts/Contract.sol:265",
                    "contracts/Contract.sol:269"
                ],
                "recommendation": "Avoid external calls before updating order state: update orderFills before tradeBalances or add a reentrancy guard around trade/tradeBalances. Alternatively, restrict accountLevelsAddr to a trusted, non-reentrant contract and consider using a pull model or staticcall semantics when available.",
                "exploit_scenario": "If accountLevelsAddr points to a malicious or compromised contract, its accountLevel() can reenter DecentrEx.trade() before the outer call updates orderFills. Because each trade checks orderFills before it is incremented, multiple reentrant fills can pass the limit check and push orderFills above amountGet, forcing the maker to trade more than intended at the quoted price."
            },
            {
                "title": "AccountLevelsTest allows anyone to set fee tier if used in production",
                "category": "access_control",
                "evidence": "AccountLevelsTest.setAccountLevel has no access control, and DecentrEx allows admin to set accountLevelsAddr to any contract.",
                "severity": "low",
                "locations": [
                    "contracts/Contract.sol:139",
                    "contracts/Contract.sol:142",
                    "contracts/Contract.sol:186",
                    "contracts/Contract.sol:188"
                ],
                "recommendation": "Do not deploy or point to AccountLevelsTest in production; restrict setAccountLevel to an authorized role (e.g., admin) in any production AccountLevels implementation.",
                "exploit_scenario": "If the admin configures accountLevelsAddr to AccountLevelsTest (or a similarly unrestricted contract), any user can call setAccountLevel() to assign themselves level 1 or 2, receiving rebates or full taker-fee refunds and effectively bypassing fees, draining feeAccount revenue."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
13
EXT*/BALANCE
3
Total opcodes
4556
Flags
create_opcodes_present call_family_heavy
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x0138
0000000a: JUMPI
0000000b: PUSH4 0xffffffff
00000010: PUSH1 0xe0
00000012: PUSH1 0x02
00000014: EXP
00000015: PUSH1 0x00
00000017: CALLDATALOAD
00000018: DIV
00000019: AND
0000001a: PUSH4 0x0a19b14a
0000001f: DUP2
00000020: EQ
00000021: PUSH2 0x014a
00000024: JUMPI
00000025: DUP1
00000026: PUSH4 0x0b927666
0000002b: EQ
0000002c: PUSH2 0x0193
0000002f: JUMPI
00000030: DUP1
00000031: PUSH4 0x19774d43
00000036: EQ
00000037: PUSH2 0x01c1
0000003a: JUMPI
0000003b: DUP1
0000003c: PUSH4 0x278b8c0e
00000041: EQ
00000042: PUSH2 0x01ef
00000045: JUMPI
00000046: DUP1
00000047: PUSH4 0x2e1a7d4d
0000004c: EQ
0000004d: PUSH2 0x022a
00000050: JUMPI
00000051: DUP1
00000052: PUSH4 0x338b5dea
00000057: EQ
00000058: PUSH2 0x023c
0000005b: JUMPI
0000005c: DUP1
0000005d: PUSH4 0x46be96c3
00000062: EQ
00000063: PUSH2 0x025a
00000066: JUMPI
00000067: DUP1
00000068: PUSH4 0x508493bc
0000006d: EQ
0000006e: PUSH2 0x02af
00000071: JUMPI
00000072: DUP1
00000073: PUSH4 0x54d03b5c
00000078: EQ
00000079: PUSH2 0x02e0
0000007c: JUMPI
0000007d: DUP1
0000007e: PUSH4 0x57786394
00000083: EQ
00000084: PUSH2 0x02f2
00000087: JUMPI
00000088: DUP1
00000089: PUSH4 0x5e1d7ae4
0000008e: EQ
0000008f: PUSH2 0x0311
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0x65e17c9d
00000099: EQ
0000009a: PUSH2 0x0323
0000009d: JUMPI
0000009e: DUP1
0000009f: PUSH4 0x6c86888b
000000a4: EQ
000000a5: PUSH2 0x034c
000000a8: JUMPI
000000a9: DUP1
000000aa: PUSH4 0x71ffcb16
000000af: EQ
000000b0: PUSH2 0x03b2
000000b3: JUMPI
000000b4: DUP1
000000b5: PUSH4 0x731c2f81
000000ba: EQ
000000bb: PUSH2 0x03cd
000000be: JUMPI
000000bf: DUP1
000000c0: PUSH4 0x8823a9c0
000000c5: EQ
000000c6: PUSH2 0x03ec
000000c9: JUMPI
000000ca: DUP1
000000cb: PUSH4 0x8f283970
000000d0: EQ
000000d1: PUSH2 0x03fe
000000d4: JUMPI
000000d5: DUP1
000000d6: PUSH4 0x9e281a98
000000db: EQ
000000dc: PUSH2 0x0419
000000df: JUMPI
000000e0: DUP1
000000e1: PUSH4 0xbb5f4629
000000e6: EQ
000000e7: PUSH2 0x0437
000000ea: JUMPI
000000eb: DUP1
000000ec: PUSH4 0xc281309e
000000f1: EQ
000000f2: PUSH2 0x0467
000000f5: JUMPI
000000f6: DUP1
000000f7: PUSH4 0xd0e30db0
000000fc: EQ
000000fd: PUSH2 0x0486
00000100: JUMPI
00000101: DUP1
00000102: PUSH4 0xe8f6bc2e
00000107: EQ
00000108: PUSH2 0x0490
0000010b: JUMPI
0000010c: DUP1
0000010d: PUSH4 0xf3412942
00000112: EQ
00000113: PUSH2 0x04ab
00000116: JUMPI
00000117: DUP1
00000118: PUSH4 0xf7888aec
0000011d: EQ
0000011e: PUSH2 0x04d4
00000121: JUMPI
00000122: DUP1
00000123: PUSH4 0xf851a440
00000128: EQ
00000129: PUSH2 0x0505
0000012c: JUMPI
0000012d: DUP1
0000012e: PUSH4 0xfb6e155f
00000133: EQ
00000134: PUSH2 0x052e
00000137: JUMPI
00000138: JUMPDEST
00000139: CALLVALUE
0000013a: PUSH2 0x0000
0000013d: JUMPI
0000013e: PUSH2 0x0148
00000141: JUMPDEST
00000142: PUSH2 0x0000
00000145: JUMP
00000146: JUMPDEST
00000147: JUMP
00000148: JUMPDEST
00000149: STOP
0000014a: JUMPDEST
0000014b: CALLVALUE
0000014c: PUSH2 0x0000
0000014f: JUMPI
00000150: PUSH2 0x0148
00000153: PUSH1 0x01
00000155: PUSH1 0xa0
00000157: PUSH1 0x02
00000159: EXP
0000015a: SUB
0000015b: PUSH1 0x04
0000015d: CALLDATALOAD
0000015e: DUP2
0000015f: AND
00000160: SWAP1
00000161: PUSH1 0x24
00000163: CALLDATALOAD
00000164: SWAP1
00000165: PUSH1 0x44
00000167: CALLDATALOAD
00000168: DUP2
00000169: AND
0000016a: SWAP1
0000016b: PUSH1 0x64
0000016d: CALLDATALOAD
0000016e: SWAP1
0000016f: PUSH1 0x84
00000171: CALLDATALOAD
00000172: SWAP1
00000173: PUSH1 0xa4
00000175: CALLDATALOAD
00000176: SWAP1
00000177: PUSH1 0xc4
00000179: CALLDATALOAD
0000017a: AND
0000017b: PUSH1 0xff
0000017d: PUSH1 0xe4
0000017f: CALLDATALOAD
00000180: AND
00000181: PUSH2 0x0104
00000184: CALLDATALOAD
00000185: PUSH2 0x0124
00000188: CALLDATALOAD
00000189: PUSH2 0x0144
0000018c: CALLDATALOAD
0000018d: PUSH2 0x0583
00000190: JUMP
00000191: JUMPDEST
00000192: STOP
00000193: JUMPDEST
00000194: CALLVALUE
00000195: PUSH2 0x0000
00000198: JUMPI
00000199: PUSH2 0x0148
0000019c: PUSH1 0x01
0000019e: PUSH1 0xa0
000001a0: PUSH1 0x02
000001a2: EXP
000001a3: SUB
000001a4: PUSH1 0x04
000001a6: CALLDATALOAD
000001a7: DUP2
000001a8: AND
000001a9: SWAP1
000001aa: PUSH1 0x24
000001ac: CALLDATALOAD
000001ad: SWAP1
000001ae: PUSH1 0x44
000001b0: CALLDATALOAD
000001b1: AND
000001b2: PUSH1 0x64
000001b4: CALLDATALOAD
000001b5: PUSH1 0x84
000001b7: CALLDATALOAD
000001b8: PUSH1 0xa4
000001ba: CALLDATALOAD
000001bb: PUSH2 0x083f
000001be: JUMP
000001bf: JUMPDEST
000001c0: STOP
000001c1: JUMPDEST
000001c2: CALLVALUE
000001c3: PUSH2 0x0000
000001c6: JUMPI
000001c7: PUSH2 0x01dd
000001ca: PUSH1 0x01
000001cc: PUSH1 0xa0
000001ce: PUSH1 0x02
000001d0: EXP
000001d1: SUB
000001d2: PUSH1 0x04
000001d4: CALLDATALOAD
000001d5: AND
000001d6: PUSH1 0x24
000001d8: CALLDATALOAD
000001d9: PUSH2 0x094d
000001dc: JUMP
000001dd: JUMPDEST
000001de: PUSH1 0x40
000001e0: DUP1
000001e1: MLOAD
000001e2: SWAP2
000001e3: DUP3
000001e4: MSTORE
000001e5: MLOAD
000001e6: SWAP1
000001e7: DUP2
000001e8: SWAP1
000001e9: SUB
000001ea: PUSH1 0x20
000001ec: ADD
000001ed: SWAP1
000001ee: RETURN
000001ef: JUMPDEST
000001f0: CALLVALUE
000001f1: PUSH2 0x0000
000001f4: JUMPI
000001f5: PUSH2 0x0148
000001f8: PUSH1 0x01
000001fa: PUSH1 0xa0
000001fc: PUSH1 0x02
000001fe: EXP
000001ff: SUB
00000200: PUSH1 0x04
00000202: CALLDATALOAD
00000203: DUP2
00000204: AND
00000205: SWAP1
00000206: PUSH1 0x24
00000208: CALLDATALOAD
00000209: SWAP1
0000020a: PUSH1 0x44
0000020c: CALLDATALOAD
0000020d: AND
0000020e: PUSH1 0x64
00000210: CALLDATALOAD
00000211: PUSH1 0x84
00000213: CALLDATALOAD
00000214: PUSH1 0xa4
00000216: CALLDATALOAD
00000217: PUSH1 0xff
00000219: PUSH1 0xc4
0000021b: CALLDATALOAD
0000021c: AND
0000021d: PUSH1 0xe4
0000021f: CALLDATALOAD
00000220: PUSH2 0x0104
00000223: CALLDATALOAD
00000224: PUSH2 0x096a
00000227: JUMP
00000228: JUMPDEST
00000229: STOP
0000022a: JUMPDEST
0000022b: CALLVALUE
0000022c: PUSH2 0x0000
0000022f: JUMPI
00000230: PUSH2 0x0148
00000233: PUSH1 0x04
00000235: CALLDATALOAD
00000236: PUSH2 0x0b74
00000239: JUMP
0000023a: JUMPDEST
0000023b: STOP
0000023c: JUMPDEST
0000023d: CALLVALUE
0000023e: PUSH2 0x0000
00000241: JUMPI
00000242: PUSH2 0x0148
00000245: PUSH1 0x01
00000247: PUSH1 0xa0
00000249: PUSH1 0x02
0000024b: EXP
0000024c: SUB
0000024d: PUSH1 0x04
0000024f: CALLDATALOAD
00000250: AND
00000251: PUSH1 0x24
00000253: CALLDATALOAD
00000254: PUSH2 0x0c92
00000257: JUMP
00000258: JUMPDEST
00000259: STOP
0000025a: JUMPDEST
0000025b: CALLVALUE
0000025c: PUSH2 0x0000
0000025f: JUMPI
00000260: PUSH2 0x01dd
00000263: PUSH1 0x01
00000265: PUSH1 0xa0
00000267: PUSH1 0x02
00000269: EXP
0000026a: SUB
0000026b: PUSH1 0x04
0000026d: CALLDATALOAD
0000026e: DUP2
0000026f: AND
00000270: SWAP1
00000271: PUSH1 0x24
00000273: CALLDATALOAD
00000274: SWAP1
00000275: PUSH1 0x44
00000277: CALLDATALOAD
00000278: DUP2
00000279: AND
0000027a: SWAP1
0000027b: PUSH1 0x64
0000027d: CALLDATALOAD
0000027e: SWAP1
0000027f: PUSH1 0x84
00000281: CALLDATALOAD
00000282: SWAP1
00000283: PUSH1 0xa4
00000285: CALLDATALOAD
00000286: SWAP1
00000287: PUSH1 0xc4
00000289: CALLDATALOAD
0000028a: AND
0000028b: PUSH1 0xff
0000028d: PUSH1 0xe4
0000028f: CALLDATALOAD
00000290: AND
00000291: PUSH2 0x0104
00000294: CALLDATALOAD
00000295: PUSH2 0x0124
00000298: CALLDATALOAD
00000299: PUSH2 0x0de0
0000029c: JUMP
0000029d: JUMPDEST
0000029e: PUSH1 0x40
000002a0: DUP1
000002a1: MLOAD
000002a2: SWAP2
000002a3: DUP3
000002a4: MSTORE
000002a5: MLOAD
000002a6: SWAP1
000002a7: DUP2
000002a8: SWAP1
000002a9: SUB
000002aa: PUSH1 0x20
000002ac: ADD
000002ad: SWAP1
000002ae: RETURN
000002af: JUMPDEST
000002b0: CALLVALUE
000002b1: PUSH2 0x0000
000002b4: JUMPI
000002b5: PUSH2 0x01dd
000002b8: PUSH1 0x01
000002ba: PUSH1 0xa0
000002bc: PUSH1 0x02
000002be: EXP
000002bf: SUB
000002c0: PUSH1 0x04
000002c2: CALLDATALOAD
000002c3: DUP2
000002c4: AND
000002c5: SWAP1
000002c6: PUSH1 0x24
000002c8: CALLDATALOAD
000002c9: AND
000002ca: PUSH2 0x0eca
000002cd: JUMP
000002ce: JUMPDEST
000002cf: PUSH1 0x40
000002d1: DUP1
000002d2: MLOAD
000002d3: SWAP2
000002d4: DUP3
000002d5: MSTORE
000002d6: MLOAD
000002d7: SWAP1
000002d8: DUP2
000002d9: SWAP1
000002da: SUB
000002db: PUSH1 0x20
000002dd: ADD
000002de: SWAP1
000002df: RETURN
000002e0: JUMPDEST
000002e1: CALLVALUE
000002e2: PUSH2 0x0000
000002e5: JUMPI
000002e6: PUSH2 0x0148
000002e9: PUSH1 0x04
000002eb: CALLDATALOAD
000002ec: PUSH2 0x0ee7
000002ef: JUMP
000002f0: JUMPDEST
000002f1: STOP
000002f2: JUMPDEST
000002f3: CALLVALUE
000002f4: PUSH2 0x0000
000002f7: JUMPI
000002f8: PUSH2 0x01dd
000002fb: PUSH2 0x0f1a
000002fe: JUMP
000002ff: JUMPDEST
00000300: PUSH1 0x40
00000302: DUP1
00000303: MLOAD
00000304: SWAP2
00000305: DUP3
00000306: MSTORE
00000307: MLOAD
00000308: SWAP1
00000309: DUP2
0000030a: SWAP1
0000030b: SUB
0000030c: PUSH1 0x20
0000030e: ADD
0000030f: SWAP1
00000310: RETURN
00000311: JUMPDEST
00000312: CALLVALUE
00000313: PUSH2 0x0000
00000316: JUMPI
00000317: PUSH2 0x0148
0000031a: PUSH1 0x04
0000031c: CALLDATALOAD
0000031d: PUSH2 0x0f20
00000320: JUMP
00000321: JUMPDEST
00000322: STOP
00000323: JUMPDEST
00000324: CALLVALUE
00000325: PUSH2 0x0000
00000328: JUMPI
00000329: PUSH2 0x0330
0000032c: PUSH2 0x0f5f
0000032f: JUMP
00000330: JUMPDEST
00000331: PUSH1 0x40
00000333: DUP1
00000334: MLOAD
00000335: PUSH1 0x01
00000337: PUSH1 0xa0
00000339: PUSH1 0x02
0000033b: EXP
0000033c: SUB
0000033d: SWAP1
0000033e: SWAP3
0000033f: AND
00000340: DUP3
00000341: MSTORE
00000342: MLOAD
00000343: SWAP1
00000344: DUP2
00000345: SWAP1
00000346: SUB
00000347: PUSH1 0x20
00000349: ADD
0000034a: SWAP1
0000034b: RETURN
0000034c: JUMPDEST
0000034d: CALLVALUE
0000034e: PUSH2 0x0000
00000351: JUMPI
00000352: PUSH2 0x039e
00000355: PUSH1 0x01
00000357: PUSH1 0xa0
00000359: PUSH1 0x02
0000035b: EXP
0000035c: SUB
0000035d: PUSH1 0x04
0000035f: CALLDATALOAD
00000360: DUP2
00000361: AND
00000362: SWAP1
00000363: PUSH1 0x24
00000365: CALLDATALOAD
00000366: SWAP1
00000367: PUSH1 0x44
00000369: CALLDATALOAD
0000036a: DUP2
0000036b: AND
0000036c: SWAP1
0000036d: PUSH1 0x64
0000036f: CALLDATALOAD
00000370: SWAP1
00000371: PUSH1 0x84
00000373: CALLDATALOAD
00000374: SWAP1
00000375: PUSH1 0xa4
00000377: CALLDATALOAD
00000378: SWAP1
00000379: PUSH1 0xc4
0000037b: CALLDATALOAD
0000037c: DUP2
0000037d: AND
0000037e: SWAP1
0000037f: PUSH1 0xff
00000381: PUSH1 0xe4
00000383: CALLDATALOAD
00000384: AND
00000385: SWAP1
00000386: PUSH2 0x0104
00000389: CALLDATALOAD
0000038a: SWAP1
0000038b: PUSH2 0x0124
0000038e: CALLDATALOAD
0000038f: SWAP1
00000390: PUSH2 0x0144
00000393: CALLDATALOAD
00000394: SWAP1
00000395: PUSH2 0x0164
00000398: CALLDATALOAD
00000399: AND
0000039a: PUSH2 0x0f6e
0000039d: JUMP
0000039e: JUMPDEST
0000039f: PUSH1 0x40
000003a1: DUP1
000003a2: MLOAD
000003a3: SWAP2
000003a4: ISZERO
000003a5: ISZERO
000003a6: DUP3
000003a7: MSTORE
000003a8: MLOAD
000003a9: SWAP1
000003aa: DUP2
000003ab: SWAP1
000003ac: SUB
000003ad: PUSH1 0x20
000003af: ADD
000003b0: SWAP1
000003b1: RETURN
000003b2: JUMPDEST
000003b3: CALLVALUE
000003b4: PUSH2 0x0000
000003b7: JUMPI
000003b8: PUSH2 0x0148
000003bb: PUSH1 0x01
000003bd: PUSH1 0xa0
000003bf: PUSH1 0x02
000003c1: EXP
000003c2: SUB
000003c3: PUSH1 0x04
000003c5: CALLDATALOAD
000003c6: AND
000003c7: PUSH2 0x0fd9
000003ca: JUMP
000003cb: JUMPDEST
000003cc: STOP
000003cd: JUMPDEST
000003ce: CALLVALUE
000003cf: PUSH2 0x0000
000003d2: JUMPI
000003d3: PUSH2 0x01dd
000003d6: PUSH2 0x1013
000003d9: JUMP
000003da: JUMPDEST
000003db: PUSH1 0x40
000003dd: DUP1
000003de: MLOAD
000003df: SWAP2
000003e0: DUP3
000003e1: MSTORE
000003e2: MLOAD
000003e3: SWAP1
000003e4: DUP2
000003e5: SWAP1
000003e6: SUB
000003e7: PUSH1 0x20
000003e9: ADD
000003ea: SWAP1
000003eb: RETURN
000003ec: JUMPDEST
000003ed: CALLVALUE
000003ee: PUSH2 0x0000
000003f1: JUMPI
000003f2: PUSH2 0x0148
000003f5: PUSH1 0x04
000003f7: CALLDATALOAD
000003f8: PUSH2 0x1019
000003fb: JUMP
000003fc: JUMPDEST
000003fd: STOP
000003fe: JUMPDEST
000003ff: CALLVALUE
00000400: PUSH2 0x0000
00000403: JUMPI
00000404: PUSH2 0x0148
00000407: PUSH1 0x01
00000409: PUSH1 0xa0
0000040b: PUSH1 0x02
0000040d: EXP
0000040e: SUB
0000040f: PUSH1 0x04
00000411: CALLDATALOAD
00000412: AND
00000413: PUSH2 0x1058
00000416: JUMP
00000417: JUMPDEST
00000418: STOP
00000419: JUMPDEST
0000041a: CALLVALUE
0000041b: PUSH2 0x0000
0000041e: JUMPI
0000041f: PUSH2 0x0148
00000422: PUSH1 0x01
00000424: PUSH1 0xa0
00000426: PUSH1 0x02
00000428: EXP
00000429: SUB
0000042a: PUSH1 0x04
0000042c: CALLDATALOAD
0000042d: AND
0000042e: PUSH1 0x24
00000430: CALLDATALOAD
00000431: PUSH2 0x1092
00000434: JUMP
00000435: JUMPDEST
00000436: STOP
00000437: JUMPDEST
00000438: CALLVALUE
00000439: PUSH2 0x0000
0000043c: JUMPI
0000043d: PUSH2 0x039e
00000440: PUSH1 0x01
00000442: PUSH1 0xa0
00000444: PUSH1 0x02
00000446: EXP
00000447: SUB
00000448: PUSH1 0x04
0000044a: CALLDATALOAD
0000044b: AND
0000044c: PUSH1 0x24
0000044e: CALLDATALOAD
0000044f: PUSH2 0x122a
00000452: JUMP
00000453: JUMPDEST
00000454: PUSH1 0x40
00000456: DUP1
00000457: MLOAD
00000458: SWAP2
00000459: ISZERO
0000045a: ISZERO
0000045b: DUP3
0000045c: MSTORE
0000045d: MLOAD
0000045e: SWAP1
0000045f: DUP2
00000460: SWAP1
00000461: SUB
00000462: PUSH1 0x20
00000464: ADD
00000465: SWAP1
00000466: RETURN
00000467: JUMPDEST
00000468: CALLVALUE
00000469: PUSH2 0x0000
0000046c: JUMPI
0000046d: PUSH2 0x01dd
00000470: PUSH2 0x124a
00000473: JUMP
00000474: JUMPDEST
00000475: PUSH1 0x40
00000477: DUP1
00000478: MLOAD
00000479: SWAP2
0000047a: DUP3
0000047b: MSTORE
0000047c: MLOAD
0000047d: SWAP1
0000047e: DUP2
0000047f: SWAP1
00000480: SUB
00000481: PUSH1 0x20
00000483: ADD
00000484: SWAP1
00000485: RETURN
00000486: JUMPDEST
00000487: PUSH2 0x0148
0000048a: PUSH2 0x1250
0000048d: JUMP
0000048e: JUMPDEST
0000048f: STOP
00000490: JUMPDEST
00000491: CALLVALUE
00000492: PUSH2 0x0000
00000495: JUMPI
00000496: PUSH2 0x0148
00000499: PUSH1 0x01
0000049b: PUSH1 0xa0
0000049d: PUSH1 0x02
0000049f: EXP
000004a0: SUB
000004a1: PUSH1 0x04
000004a3: CALLDATALOAD
000004a4: AND
000004a5: PUSH2 0x12f2
000004a8: JUMP
000004a9: JUMPDEST
000004aa: STOP
000004ab: JUMPDEST
000004ac: CALLVALUE
000004ad: PUSH2 0x0000
000004b0: JUMPI
000004b1: PUSH2 0x0330
000004b4: PUSH2 0x132c
000004b7: JUMP
000004b8: JUMPDEST
000004b9: PUSH1 0x40
000004bb: DUP1
000004bc: MLOAD
000004bd: PUSH1 0x01
000004bf: PUSH1 0xa0
000004c1: PUSH1 0x02
000004c3: EXP
000004c4: SUB
000004c5: SWAP1
000004c6: SWAP3
000004c7: AND
000004c8: DUP3
000004c9: MSTORE
000004ca: MLOAD
000004cb: SWAP1
000004cc: DUP2
000004cd: SWAP1
000004ce: SUB
000004cf: PUSH1 0x20
000004d1: ADD
000004d2: SWAP1
000004d3: RETURN
000004d4: JUMPDEST
000004d5: CALLVALUE
000004d6: PUSH2 0x0000
000004d9: JUMPI
000004da: PUSH2 0x01dd
000004dd: PUSH1 0x01
000004df: PUSH1 0xa0
000004e1: PUSH1 0x02
000004e3: EXP
000004e4: SUB
000004e5: PUSH1 0x04
000004e7: CALLDATALOAD
000004e8: DUP2
000004e9: AND
000004ea: SWAP1
000004eb: PUSH1 0x24
000004ed: CALLDATALOAD
000004ee: AND
000004ef: PUSH2 0x133b
000004f2: JUMP
000004f3: JUMPDEST
000004f4: PUSH1 0x40
000004f6: DUP1
000004f7: MLOAD
000004f8: SWAP2
000004f9: DUP3
000004fa: MSTORE
000004fb: MLOAD
000004fc: SWAP1
000004fd: DUP2
000004fe: SWAP1
000004ff: SUB
00000500: PUSH1 0x20
00000502: ADD
00000503: SWAP1
00000504: RETURN
00000505: JUMPDEST
00000506: CALLVALUE
00000507: PUSH2 0x0000
0000050a: JUMPI
0000050b: PUSH2 0x0330
0000050e: PUSH2 0x1368
00000511: JUMP
00000512: JUMPDEST
00000513: PUSH1 0x40
00000515: DUP1
00000516: MLOAD
00000517: PUSH1 0x01
00000519: PUSH1 0xa0
0000051b: PUSH1 0x02
0000051d: EXP
0000051e: SUB
0000051f: SWAP1
00000520: SWAP3
00000521: AND
00000522: DUP3
00000523: MSTORE
00000524: MLOAD
00000525: SWAP1
00000526: DUP2
00000527: SWAP1
00000528: SUB
00000529: PUSH1 0x20
0000052b: ADD
0000052c: SWAP1
0000052d: RETURN
0000052e: JUMPDEST
0000052f: CALLVALUE
00000530: PUSH2 0x0000
00000533: JUMPI
00000534: PUSH2 0x01dd
00000537: PUSH1 0x01
00000539: PUSH1 0xa0
0000053b: PUSH1 0x02
0000053d: EXP
0000053e: SUB
0000053f: PUSH1 0x04
00000541: CALLDATALOAD
00000542: DUP2
00000543: AND
00000544: SWAP1
00000545: PUSH1 0x24
00000547: CALLDATALOAD
00000548: SWAP1
00000549: PUSH1 0x44
0000054b: CALLDATALOAD
0000054c: DUP2
0000054d: AND
0000054e: SWAP1
0000054f: PUSH1 0x64
00000551: CALLDATALOAD
00000552: SWAP1
00000553: PUSH1 0x84
00000555: CALLDATALOAD
00000556: SWAP1
00000557: PUSH1 0xa4
00000559: CALLDATALOAD
0000055a: SWAP1
0000055b: PUSH1 0xc4
0000055d: CALLDATALOAD
0000055e: AND
0000055f: PUSH1 0xff
00000561: PUSH1 0xe4
00000563: CALLDATALOAD
00000564: AND
00000565: PUSH2 0x0104
00000568: CALLDATALOAD
00000569: PUSH2 0x0124
0000056c: CALLDATALOAD
0000056d: PUSH2 0x1377
00000570: JUMP
00000571: JUMPDEST
00000572: PUSH1 0x40
00000574: DUP1
00000575: MLOAD
00000576: SWAP2
00000577: DUP3
00000578: MSTORE
00000579: MLOAD
0000057a: SWAP1
0000057b: DUP2
0000057c: SWAP1
0000057d: SUB
0000057e: PUSH1 0x20
00000580: ADD
00000581: SWAP1
00000582: RETURN
00000583: JUMPDEST
00000584: PUSH1 0x00
00000586: PUSH1 0x02
00000588: ADDRESS
00000589: DUP14
0000058a: DUP14
0000058b: DUP14
0000058c: DUP14
0000058d: DUP14
0000058e: DUP14
0000058f: PUSH1 0x00
00000591: PUSH1 0x40
00000593: MLOAD
00000594: PUSH1 0x20
00000596: ADD
00000597: MSTORE
00000598: PUSH1 0x40
0000059a: MLOAD
0000059b: DUP1
0000059c: DUP9
0000059d: PUSH1 0x01
0000059f: PUSH1 0xa0
000005a1: PUSH1 0x02
000005a3: EXP
000005a4: SUB
000005a5: AND
000005a6: PUSH1 0x01
000005a8: PUSH1 0xa0
000005aa: PUSH1 0x02
000005ac: EXP
000005ad: SUB
000005ae: AND
000005af: PUSH1 0x60
000005b1: PUSH1 0x02
000005b3: EXP
000005b4: MUL
000005b5: DUP2
000005b6: MSTORE
000005b7: PUSH1 0x14
000005b9: ADD
000005ba: DUP8
000005bb: PUSH1 0x01
000005bd: PUSH1 0xa0
000005bf: PUSH1 0x02
000005c1: EXP
000005c2: SUB
000005c3: AND
000005c4: PUSH1 0x01
000005c6: PUSH1 0xa0
000005c8: PUSH1 0x02
000005ca: EXP
000005cb: SUB
000005cc: AND
000005cd: PUSH1 0x60
000005cf: PUSH1 0x02
000005d1: EXP
000005d2: MUL
000005d3: DUP2
000005d4: MSTORE
000005d5: PUSH1 0x14
000005d7: ADD
000005d8: DUP7
000005d9: DUP2
000005da: MSTORE
000005db: PUSH1 0x20
000005dd: ADD
000005de: DUP6
000005df: PUSH1 0x01
000005e1: PUSH1 0xa0
000005e3: PUSH1 0x02
000005e5: EXP
000005e6: SUB
000005e7: AND
000005e8: PUSH1 0x01
000005ea: PUSH1 0xa0
000005ec: PUSH1 0x02
000005ee: EXP
000005ef: SUB
000005f0: AND
000005f1: PUSH1 0x60
000005f3: PUSH1 0x02
000005f5: EXP
000005f6: MUL
000005f7: DUP2
000005f8: MSTORE
000005f9: PUSH1 0x14
000005fb: ADD
000005fc: DUP5
000005fd: DUP2
000005fe: MSTORE
000005ff: PUSH1 0x20
00000601: ADD
00000602: DUP4
00000603: DUP2
00000604: MSTORE
00000605: PUSH1 0x20
00000607: ADD
00000608: DUP3
00000609: DUP2
0000060a: MSTORE
0000060b: PUSH1 0x20
0000060d: ADD
0000060e: SWAP8
0000060f: POP
00000610: POP
00000611: POP
00000612: POP
00000613: POP
00000614: POP
00000615: POP
00000616: POP
00000617: PUSH1 0x20
00000619: PUSH1 0x40
0000061b: MLOAD
0000061c: DUP1
0000061d: DUP4
0000061e: SUB
0000061f: DUP2
00000620: PUSH1 0x00
00000622: DUP7
00000623: PUSH2 0x61da
00000626: GAS
00000627: SUB
00000628: CALL
00000629: ISZERO
0000062a: PUSH2 0x0000
0000062d: JUMPI
0000062e: POP
0000062f: POP
00000630: PUSH1 0x40
00000632: DUP1
00000633: MLOAD
00000634: MLOAD
00000635: PUSH1 0x01
00000637: PUSH1 0xa0
00000639: PUSH1 0x02
0000063b: EXP
0000063c: SUB
0000063d: DUP9
0000063e: AND
0000063f: PUSH1 0x00
00000641: SWAP1
00000642: DUP2
00000643: MSTORE
00000644: PUSH1 0x07
00000646: PUSH1 0x20
00000648: SWAP1
00000649: DUP2
0000064a: MSTORE
0000064b: DUP4
0000064c: DUP3
0000064d: KECCAK256
0000064e: DUP4
0000064f: DUP4
00000650: MSTORE
00000651: SWAP1
00000652: MSTORE
00000653: SWAP2
00000654: SWAP1
00000655: SWAP2
00000656: KECCAK256
00000657: SLOAD
00000658: SWAP1
00000659: SWAP2
0000065a: POP
0000065b: PUSH1 0xff
0000065d: AND
0000065e: DUP1
0000065f: PUSH2 0x070e
00000662: JUMPI
00000663: POP
00000664: PUSH1 0x40
00000666: DUP1
00000667: MLOAD
00000668: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
00000689: DUP2
0000068a: MSTORE
0000068b: PUSH1 0x1c
0000068d: DUP2
0000068e: ADD
0000068f: DUP4
00000690: SWAP1
00000691: MSTORE
00000692: DUP2
00000693: MLOAD
00000694: SWAP1
00000695: DUP2
00000696: SWAP1
00000697: SUB
00000698: PUSH1 0x3c
0000069a: ADD
0000069b: DUP2
0000069c: KECCAK256
0000069d: PUSH1 0x00
0000069f: DUP3
000006a0: DUP2
000006a1: MSTORE
000006a2: PUSH1 0x20
000006a4: DUP4
000006a5: DUP2
000006a6: ADD
000006a7: DUP6
000006a8: MSTORE
000006a9: SWAP3
000006aa: DUP5
000006ab: ADD
000006ac: DUP2
000006ad: SWAP1
000006ae: MSTORE
000006af: DUP4
000006b0: MLOAD
000006b1: SWAP2
000006b2: DUP3
000006b3: MSTORE
000006b4: PUSH1 0xff
000006b6: DUP10
000006b7: AND
000006b8: DUP3
000006b9: DUP5
000006ba: ADD
000006bb: MSTORE
000006bc: DUP2
000006bd: DUP5
000006be: ADD
000006bf: DUP9
000006c0: SWAP1
000006c1: MSTORE
000006c2: PUSH1 0x60
000006c4: DUP3
000006c5: ADD
000006c6: DUP8
000006c7: SWAP1
000006c8: MSTORE
000006c9: SWAP3
000006ca: MLOAD
000006cb: PUSH1 0x01
000006cd: PUSH1 0xa0
000006cf: PUSH1 0x02
000006d1: EXP
000006d2: SUB
000006d3: DUP11
000006d4: AND
000006d5: SWAP4
000006d6: PUSH1 0x01
000006d8: SWAP4
000006d9: PUSH1 0x80
000006db: DUP1
000006dc: DUP6
000006dd: ADD
000006de: SWAP5
000006df: SWAP2
000006e0: SWAP4
000006e1: PUSH1 0x1f
000006e3: NOT
000006e4: DUP2
000006e5: ADD
000006e6: SWAP4
000006e7: SWAP3
000006e8: DUP2
000006e9: SWAP1
000006ea: SUB
000006eb: SWAP1
000006ec: SWAP2
000006ed: ADD
000006ee: SWAP2
000006ef: DUP7
000006f0: PUSH2 0x61da
000006f3: GAS
000006f4: SUB
000006f5: CALL
000006f6: ISZERO
000006f7: PUSH2 0x0000
000006fa: JUMPI
000006fb: POP
000006fc: POP
000006fd: PUSH1 0x20
000006ff: PUSH1 0x40
00000701: MLOAD
00000702: SUB
00000703: MLOAD
00000704: PUSH1 0x01
00000706: PUSH1 0xa0
00000708: PUSH1 0x02
0000070a: EXP
0000070b: SUB
0000070c: AND
0000070d: EQ
0000070e: JUMPDEST
0000070f: DUP1
00000710: ISZERO
00000711: PUSH2 0x071a
00000714: JUMPI
00000715: POP
00000716: DUP8
00000717: NUMBER
00000718: GT
00000719: ISZERO
0000071a: JUMPDEST
0000071b: DUP1
0000071c: ISZERO
0000071d: PUSH2 0x0754
00000720: JUMPI
00000721: POP
00000722: PUSH1 0x01
00000724: PUSH1 0xa0
00000726: PUSH1 0x02
00000728: EXP
00000729: SUB
0000072a: DUP7
0000072b: AND
0000072c: PUSH1 0x00
0000072e: SWAP1
0000072f: DUP2
00000730: MSTORE
00000731: PUSH1 0x08
00000733: PUSH1 0x20
00000735: SWAP1
00000736: DUP2
00000737: MSTORE
00000738: PUSH1 0x40
0000073a: DUP1
0000073b: DUP4
0000073c: KECCAK256
0000073d: DUP5
0000073e: DUP5
0000073f: MSTORE
00000740: SWAP1
00000741: SWAP2
00000742: MSTORE
00000743: SWAP1
00000744: KECCAK256
00000745: SLOAD
00000746: DUP12
00000747: SWAP1
00000748: PUSH2 0x0751
0000074b: SWAP1
0000074c: DUP5
0000074d: PUSH2 0x15b5
00000750: JUMP
00000751: JUMPDEST
00000752: GT
00000753: ISZERO
00000754: JUMPDEST
00000755: ISZERO
00000756: ISZERO
00000757: PUSH2 0x075f
0000075a: JUMPI
0000075b: PUSH2 0x0000
0000075e: JUMP
0000075f: JUMPDEST
00000760: PUSH2 0x076d
00000763: DUP13
00000764: DUP13
00000765: DUP13
00000766: DUP13
00000767: DUP11
00000768: DUP8
00000769: PUSH2 0x15dd
0000076c: JUMP
0000076d: JUMPDEST
0000076e: PUSH1 0x01
00000770: PUSH1 0xa0
00000772: PUSH1 0x02
00000774: EXP
00000775: SUB
00000776: DUP7
00000777: AND
00000778: PUSH1 0x00
0000077a: SWAP1
0000077b: DUP2
0000077c: MSTORE
0000077d: PUSH1 0x08
0000077f: PUSH1 0x20
00000781: SWAP1
00000782: DUP2
00000783: MSTORE
00000784: PUSH1 0x40
00000786: DUP1
00000787: DUP4
00000788: KECCAK256
00000789: DUP5
0000078a: DUP5
0000078b: MSTORE
0000078c: SWAP1
0000078d: SWAP2
0000078e: MSTORE
0000078f: SWAP1
00000790: KECCAK256
00000791: SLOAD
00000792: PUSH2 0x079b
00000795: SWAP1
00000796: DUP4
00000797: PUSH2 0x15b5
0000079a: JUMP
0000079b: JUMPDEST
0000079c: PUSH1 0x01
0000079e: PUSH1 0xa0
000007a0: PUSH1 0x02
000007a2: EXP
000007a3: SUB
000007a4: DUP8
000007a5: AND
000007a6: PUSH1 0x00
000007a8: SWAP1
000007a9: DUP2
000007aa: MSTORE
000007ab: PUSH1 0x08
000007ad: PUSH1 0x20
000007af: SWAP1
000007b0: DUP2
000007b1: MSTORE
000007b2: PUSH1 0x40
000007b4: DUP1
000007b5: DUP4
000007b6: KECCAK256
000007b7: DUP6
000007b8: DUP5
000007b9: MSTORE
000007ba: SWAP1
000007bb: SWAP2
000007bc: MSTORE
000007bd: SWAP1
000007be: KECCAK256
000007bf: SSTORE
000007c0: PUSH32 0x6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d
000007e1: DUP13
000007e2: DUP4
000007e3: DUP13
000007e4: DUP15
000007e5: DUP14
000007e6: DUP4
000007e7: MUL
000007e8: DUP2
000007e9: ISZERO
000007ea: PUSH2 0x0000
000007ed: JUMPI
000007ee: PUSH1 0x40
000007f0: DUP1
000007f1: MLOAD
000007f2: PUSH1 0x01
000007f4: PUSH1 0xa0
000007f6: PUSH1 0x02
000007f8: EXP
000007f9: SUB
000007fa: SWAP7
000007fb: DUP8
000007fc: AND
000007fd: DUP2
000007fe: MSTORE
000007ff: PUSH1 0x20
00000801: DUP2
00000802: ADD
00000803: SWAP6
00000804: SWAP1
00000805: SWAP6
00000806: MSTORE
00000807: SWAP3
00000808: DUP6
00000809: AND
0000080a: DUP5
0000080b: DUP5
0000080c: ADD
0000080d: MSTORE
0000080e: DIV
0000080f: PUSH1 0x60
00000811: DUP4
00000812: ADD
00000813: MSTORE
00000814: DUP3
00000815: DUP11
00000816: AND
00000817: PUSH1 0x80
00000819: DUP4
0000081a: ADD
0000081b: MSTORE
0000081c: CALLER
0000081d: SWAP3
0000081e: SWAP1
0000081f: SWAP3
00000820: AND
00000821: PUSH1 0xa0
00000823: DUP3
00000824: ADD
00000825: MSTORE
00000826: SWAP1
00000827: MLOAD
00000828: SWAP1
00000829: DUP2
0000082a: SWAP1
0000082b: SUB
0000082c: PUSH1 0xc0
0000082e: ADD
0000082f: SWAP1
00000830: LOG1
00000831: JUMPDEST
00000832: POP
00000833: POP
00000834: POP
00000835: POP
00000836: POP
00000837: POP
00000838: POP
00000839: POP
0000083a: POP
0000083b: POP
0000083c: POP
0000083d: POP
0000083e: JUMP
0000083f: JUMPDEST
00000840: PUSH1 0x40
00000842: DUP1
00000843: MLOAD
00000844: PUSH1 0x00
00000846: PUSH1 0x20
00000848: SWAP2
00000849: DUP3
0000084a: ADD
0000084b: DUP2
0000084c: SWAP1
0000084d: MSTORE
0000084e: DUP3
0000084f: MLOAD
00000850: PUSH1 0x60
00000852: PUSH1 0x02
00000854: EXP
00000855: PUSH1 0x01
00000857: PUSH1 0xa0
00000859: PUSH1 0x02
0000085b: EXP
0000085c: SUB
0000085d: ADDRESS
0000085e: DUP2
0000085f: AND
00000860: DUP3
00000861: MUL
00000862: DUP4
00000863: MSTORE
00000864: DUP1
00000865: DUP13
00000866: AND
00000867: DUP3
00000868: MUL
00000869: PUSH1 0x14
0000086b: DUP5
0000086c: ADD
0000086d: MSTORE
0000086e: PUSH1 0x28
00000870: DUP4
00000871: ADD
00000872: DUP12
00000873: SWAP1
00000874: MSTORE
00000875: DUP10
00000876: AND
00000877: MUL
00000878: PUSH1 0x48
0000087a: DUP3
0000087b: ADD
0000087c: MSTORE
0000087d: PUSH1 0x5c
0000087f: DUP2
00000880: ADD
00000881: DUP8
00000882: SWAP1
00000883: MSTORE
00000884: PUSH1 0x7c
00000886: DUP2
00000887: ADD
00000888: DUP7
00000889: SWAP1
0000088a: MSTORE
0000088b: PUSH1 0x9c
0000088d: DUP2
0000088e: ADD
0000088f: DUP6
00000890: SWAP1
00000891: MSTORE
00000892: SWAP3
00000893: MLOAD
00000894: SWAP1
00000895: SWAP3
00000896: PUSH1 0x02
00000898: SWAP3
00000899: PUSH1 0xbc
0000089b: DUP1
0000089c: DUP4
0000089d: ADD
0000089e: SWAP4
0000089f: SWAP2
000008a0: SWAP3
000008a1: DUP3
000008a2: SWAP1
000008a3: SUB
000008a4: ADD
000008a5: DUP2
000008a6: DUP7
000008a7: DUP7
000008a8: PUSH2 0x61da
000008ab: GAS
000008ac: SUB
000008ad: CALL
000008ae: ISZERO
000008af: PUSH2 0x0000
000008b2: JUMPI
000008b3: POP
000008b4: POP
000008b5: PUSH1 0x40
000008b7: DUP1
000008b8: MLOAD
000008b9: DUP1
000008ba: MLOAD
000008bb: PUSH1 0x01
000008bd: PUSH1 0xa0
000008bf: PUSH1 0x02
000008c1: EXP
000008c2: SUB
000008c3: CALLER
000008c4: DUP2
000008c5: AND
000008c6: PUSH1 0x00
000008c8: DUP2
000008c9: DUP2
000008ca: MSTORE
000008cb: PUSH1 0x07
000008cd: PUSH1 0x20
000008cf: SWAP1
000008d0: DUP2
000008d1: MSTORE
000008d2: DUP7
000008d3: DUP3
000008d4: KECCAK256
000008d5: DUP6
000008d6: DUP4
000008d7: MSTORE
000008d8: DUP2
000008d9: MSTORE
000008da: SWAP1
000008db: DUP7
000008dc: SWAP1
000008dd: KECCAK256
000008de: DUP1
000008df: SLOAD
000008e0: PUSH1 0xff
000008e2: NOT
000008e3: AND
000008e4: PUSH1 0x01
000008e6: OR
000008e7: SWAP1
000008e8: SSTORE
000008e9: DUP13
000008ea: DUP4
000008eb: AND
000008ec: DUP6
000008ed: MSTORE
000008ee: DUP5
000008ef: ADD
000008f0: DUP12
000008f1: SWAP1
000008f2: MSTORE
000008f3: SWAP1
000008f4: DUP10
000008f5: AND
000008f6: DUP4
000008f7: DUP6
000008f8: ADD
000008f9: MSTORE
000008fa: PUSH1 0x60
000008fc: DUP4
000008fd: ADD
000008fe: DUP9
000008ff: SWAP1
00000900: MSTORE
00000901: PUSH1 0x80
00000903: DUP4
00000904: ADD
00000905: DUP8
00000906: SWAP1
00000907: MSTORE
00000908: PUSH1 0xa0
0000090a: DUP4
0000090b: ADD
0000090c: DUP7
0000090d: SWAP1
0000090e: MSTORE
0000090f: PUSH1 0xc0
00000911: DUP4
00000912: ADD
00000913: MSTORE
00000914: SWAP2
00000915: MLOAD
00000916: SWAP2
00000917: SWAP3
00000918: POP
00000919: PUSH32 0x3f7f2eda73683c21a15f9435af1028c93185b5f1fa38270762dc32be606b3e85
0000093a: SWAP2
0000093b: SWAP1
0000093c: DUP2
0000093d: SWAP1
0000093e: SUB
0000093f: PUSH1 0xe0
00000941: ADD
00000942: SWAP1
00000943: LOG1
00000944: JUMPDEST
00000945: POP
00000946: POP
00000947: POP
00000948: POP
00000949: POP
0000094a: POP
0000094b: POP
0000094c: JUMP
0000094d: JUMPDEST
0000094e: PUSH1 0x08
00000950: PUSH1 0x20
00000952: SWAP1
00000953: DUP2
00000954: MSTORE
00000955: PUSH1 0x00
00000957: SWAP3
00000958: DUP4
00000959: MSTORE
0000095a: PUSH1 0x40
0000095c: DUP1
0000095d: DUP5
0000095e: KECCAK256
0000095f: SWAP1
00000960: SWAP2
00000961: MSTORE
00000962: SWAP1
00000963: DUP3
00000964: MSTORE
00000965: SWAP1
00000966: KECCAK256
00000967: SLOAD
00000968: DUP2
00000969: JUMP
0000096a: JUMPDEST
0000096b: PUSH1 0x40
0000096d: DUP1
0000096e: MLOAD
0000096f: PUSH1 0x00
00000971: PUSH1 0x20
00000973: SWAP2
00000974: DUP3
00000975: ADD
00000976: DUP2
00000977: SWAP1
00000978: MSTORE
00000979: DUP3
0000097a: MLOAD
0000097b: PUSH1 0x60
0000097d: PUSH1 0x02
0000097f: EXP
00000980: PUSH1 0x01
00000982: PUSH1 0xa0
00000984: PUSH1 0x02
00000986: EXP
00000987: SUB
00000988: ADDRESS
00000989: DUP2
0000098a: AND
0000098b: DUP3
0000098c: MUL
0000098d: DUP4
0000098e: MSTORE
0000098f: DUP1
00000990: DUP16
00000991: AND
00000992: DUP3
00000993: MUL
00000994: PUSH1 0x14
00000996: DUP5
00000997: ADD
00000998: MSTORE
00000999: PUSH1 0x28
0000099b: DUP4
0000099c: ADD
0000099d: DUP15
0000099e: SWAP1
0000099f: MSTORE
000009a0: DUP13
000009a1: AND
000009a2: MUL
000009a3: PUSH1 0x48
000009a5: DUP3
000009a6: ADD
000009a7: MSTORE
000009a8: PUSH1 0x5c
000009aa: DUP2
000009ab: ADD
000009ac: DUP11
000009ad: SWAP1
000009ae: MSTORE
000009af: PUSH1 0x7c
000009b1: DUP2
000009b2: ADD
000009b3: DUP10
000009b4: SWAP1
000009b5: MSTORE
000009b6: PUSH1 0x9c
000009b8: DUP2
000009b9: ADD
000009ba: DUP9
000009bb: SWAP1
000009bc: MSTORE
000009bd: SWAP3
000009be: MLOAD
000009bf: SWAP1
000009c0: SWAP3
000009c1: PUSH1 0x02
000009c3: SWAP3
000009c4: PUSH1 0xbc
000009c6: DUP1
000009c7: DUP4
000009c8: ADD
000009c9: SWAP4
000009ca: SWAP2
000009cb: SWAP3
000009cc: DUP3
000009cd: SWAP1
000009ce: SUB
000009cf: ADD
000009d0: DUP2
000009d1: DUP7
000009d2: DUP7
000009d3: PUSH2 0x61da
000009d6: GAS
000009d7: SUB
000009d8: CALL
000009d9: ISZERO
000009da: PUSH2 0x0000
000009dd: JUMPI
000009de: POP
000009df: POP
000009e0: PUSH1 0x40
000009e2: DUP1
000009e3: MLOAD
000009e4: MLOAD
000009e5: PUSH1 0x01
000009e7: PUSH1 0xa0
000009e9: PUSH1 0x02
000009eb: EXP
000009ec: SUB
000009ed: CALLER
000009ee: AND
000009ef: PUSH1 0x00
000009f1: SWAP1
000009f2: DUP2
000009f3: MSTORE
000009f4: PUSH1 0x07
000009f6: PUSH1 0x20
000009f8: SWAP1
000009f9: DUP2
000009fa: MSTORE
000009fb: DUP4
000009fc: DUP3
000009fd: KECCAK256
000009fe: DUP4
000009ff: DUP4
00000a00: MSTORE
00000a01: SWAP1
00000a02: MSTORE
00000a03: SWAP2
00000a04: SWAP1
00000a05: SWAP2
00000a06: KECCAK256
00000a07: SLOAD
00000a08: SWAP1
00000a09: SWAP2
00000a0a: POP
00000a0b: PUSH1 0xff
00000a0d: AND
00000a0e: DUP1
00000a0f: PUSH2 0x0abe
00000a12: JUMPI
00000a13: POP
00000a14: PUSH1 0x40
00000a16: DUP1
00000a17: MLOAD
00000a18: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
00000a39: DUP2
00000a3a: MSTORE
00000a3b: PUSH1 0x1c
00000a3d: DUP2
00000a3e: ADD
00000a3f: DUP4
00000a40: SWAP1
00000a41: MSTORE
00000a42: DUP2
00000a43: MLOAD
00000a44: SWAP1
00000a45: DUP2
00000a46: SWAP1
00000a47: SUB
00000a48: PUSH1 0x3c
00000a4a: ADD
00000a4b: DUP2
00000a4c: KECCAK256
00000a4d: PUSH1 0x00
00000a4f: DUP3
00000a50: DUP2
00000a51: MSTORE
00000a52: PUSH1 0x20
00000a54: DUP4
00000a55: DUP2
00000a56: ADD
00000a57: DUP6
00000a58: MSTORE
00000a59: SWAP3
00000a5a: DUP5
00000a5b: ADD
00000a5c: DUP2
00000a5d: SWAP1
00000a5e: MSTORE
00000a5f: DUP4
00000a60: MLOAD
00000a61: SWAP2
00000a62: DUP3
00000a63: MSTORE
00000a64: PUSH1 0xff
00000a66: DUP9
00000a67: AND
00000a68: DUP3
00000a69: DUP5
00000a6a: ADD
00000a6b: MSTORE
00000a6c: DUP2
00000a6d: DUP5
00000a6e: ADD
00000a6f: DUP8
00000a70: SWAP1
00000a71: MSTORE
00000a72: PUSH1 0x60
00000a74: DUP3
00000a75: ADD
00000a76: DUP7
00000a77: SWAP1
00000a78: MSTORE
00000a79: SWAP3
00000a7a: MLOAD
00000a7b: PUSH1 0x01
00000a7d: PUSH1 0xa0
00000a7f: PUSH1 0x02
00000a81: EXP
00000a82: SUB
00000a83: CALLER
00000a84: AND
00000a85: SWAP4
00000a86: PUSH1 0x01
00000a88: SWAP4
00000a89: PUSH1 0x80
00000a8b: DUP1
00000a8c: DUP6
00000a8d: ADD
00000a8e: SWAP5
00000a8f: SWAP2
00000a90: SWAP4
00000a91: PUSH1 0x1f
00000a93: NOT
00000a94: DUP2
00000a95: ADD
00000a96: SWAP4
00000a97: SWAP3
00000a98: DUP2
00000a99: SWAP1
00000a9a: SUB
00000a9b: SWAP1
00000a9c: SWAP2
00000a9d: ADD
00000a9e: SWAP2
00000a9f: DUP7
00000aa0: PUSH2 0x61da
00000aa3: GAS
00000aa4: SUB
00000aa5: CALL
00000aa6: ISZERO
00000aa7: PUSH2 0x0000
00000aaa: JUMPI
00000aab: POP
00000aac: POP
00000aad: PUSH1 0x20
00000aaf: PUSH1 0x40
00000ab1: MLOAD
00000ab2: SUB
00000ab3: MLOAD
00000ab4: PUSH1 0x01
00000ab6: PUSH1 0xa0
00000ab8: PUSH1 0x02
00000aba: EXP
00000abb: SUB
00000abc: AND
00000abd: EQ
00000abe: JUMPDEST
00000abf: ISZERO
00000ac0: ISZERO
00000ac1: PUSH2 0x0ac9
00000ac4: JUMPI
00000ac5: PUSH2 0x0000
00000ac8: JUMP
00000ac9: JUMPDEST
00000aca: PUSH1 0x01
00000acc: PUSH1 0xa0
00000ace: PUSH1 0x02
00000ad0: EXP
00000ad1: SUB
00000ad2: CALLER
00000ad3: DUP2
00000ad4: AND
00000ad5: PUSH1 0x00
00000ad7: DUP2
00000ad8: DUP2
00000ad9: MSTORE
00000ada: PUSH1 0x08
00000adc: PUSH1 0x20
00000ade: SWAP1
00000adf: DUP2
00000ae0: MSTORE
00000ae1: PUSH1 0x40
00000ae3: DUP1
00000ae4: DUP4
00000ae5: KECCAK256
00000ae6: DUP7
00000ae7: DUP5
00000ae8: MSTORE
00000ae9: DUP3
00000aea: MSTORE
00000aeb: SWAP2
00000aec: DUP3
00000aed: SWAP1
00000aee: KECCAK256
00000aef: DUP14
00000af0: SWAP1
00000af1: SSTORE
00000af2: DUP2
00000af3: MLOAD
00000af4: DUP15
00000af5: DUP6
00000af6: AND
00000af7: DUP2
00000af8: MSTORE
00000af9: SWAP1
00000afa: DUP2
00000afb: ADD
00000afc: DUP14
00000afd: SWAP1
00000afe: MSTORE
00000aff: SWAP3
00000b00: DUP12
00000b01: AND
00000b02: DUP4
00000b03: DUP3
00000b04: ADD
00000b05: MSTORE
00000b06: PUSH1 0x60
00000b08: DUP4
00000b09: ADD
00000b0a: DUP11
00000b0b: SWAP1
00000b0c: MSTORE
00000b0d: PUSH1 0x80
00000b0f: DUP4
00000b10: ADD
00000b11: DUP10
00000b12: SWAP1
00000b13: MSTORE
00000b14: PUSH1 0xa0
00000b16: DUP4
00000b17: ADD
00000b18: DUP9
00000b19: SWAP1
00000b1a: MSTORE
00000b1b: PUSH1 0xc0
00000b1d: DUP4
00000b1e: ADD
00000b1f: SWAP2
00000b20: SWAP1
00000b21: SWAP2
00000b22: MSTORE
00000b23: PUSH1 0xff
00000b25: DUP7
00000b26: AND
00000b27: PUSH1 0xe0
00000b29: DUP4
00000b2a: ADD
00000b2b: MSTORE
00000b2c: PUSH2 0x0100
00000b2f: DUP3
00000b30: ADD
00000b31: DUP6
00000b32: SWAP1
00000b33: MSTORE
00000b34: PUSH2 0x0120
00000b37: DUP3
00000b38: ADD
00000b39: DUP5
00000b3a: SWAP1
00000b3b: MSTORE
00000b3c: MLOAD
00000b3d: PUSH32 0x1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0
00000b5e: SWAP2
00000b5f: DUP2
00000b60: SWAP1
00000b61: SUB
00000b62: PUSH2 0x0140
00000b65: ADD
00000b66: SWAP1
00000b67: LOG1
00000b68: JUMPDEST
00000b69: POP
00000b6a: POP
00000b6b: POP
00000b6c: POP
00000b6d: POP
00000b6e: POP
00000b6f: POP
00000b70: POP
00000b71: POP
00000b72: POP
00000b73: JUMP
00000b74: JUMPDEST
00000b75: CALLER
00000b76: PUSH1 0x01
00000b78: PUSH1 0xa0
00000b7a: PUSH1 0x02
00000b7c: EXP
00000b7d: SUB
00000b7e: AND
00000b7f: PUSH1 0x00
00000b81: SWAP1
00000b82: DUP2
00000b83: MSTORE
00000b84: PUSH1 0x00
00000b86: DUP1
00000b87: MLOAD
00000b88: PUSH1 0x20
00000b8a: PUSH2 0x18fa
00000b8d: DUP4
00000b8e: CODECOPY
00000b8f: DUP2
00000b90: MLOAD
00000b91: SWAP2
00000b92: MSTORE
00000b93: PUSH1 0x20
00000b95: MSTORE
00000b96: PUSH1 0x40
00000b98: SWAP1
00000b99: KECCAK256
00000b9a: SLOAD
00000b9b: DUP2
00000b9c: SWAP1
00000b9d: LT
00000b9e: ISZERO
00000b9f: PUSH2 0x0ba7
00000ba2: JUMPI
00000ba3: PUSH2 0x0000
00000ba6: JUMP
00000ba7: JUMPDEST
00000ba8: CALLER
00000ba9: PUSH1 0x01
00000bab: PUSH1 0xa0
00000bad: PUSH1 0x02
00000baf: EXP
00000bb0: SUB
00000bb1: AND
00000bb2: PUSH1 0x00
00000bb4: SWAP1
00000bb5: DUP2
00000bb6: MSTORE
00000bb7: PUSH1 0x00
00000bb9: DUP1
00000bba: MLOAD
00000bbb: PUSH1 0x20
00000bbd: PUSH2 0x18fa
00000bc0: DUP4
00000bc1: CODECOPY
00000bc2: DUP2
00000bc3: MLOAD
00000bc4: SWAP2
00000bc5: MSTORE
00000bc6: PUSH1 0x20
00000bc8: MSTORE
00000bc9: PUSH1 0x40
00000bcb: SWAP1
00000bcc: KECCAK256
00000bcd: SLOAD
00000bce: PUSH2 0x0bd7
00000bd1: SWAP1
00000bd2: DUP3
00000bd3: PUSH2 0x18a4
00000bd6: JUMP
00000bd7: JUMPDEST
00000bd8: CALLER
00000bd9: PUSH1 0x01
00000bdb: PUSH1 0xa0
00000bdd: PUSH1 0x02
00000bdf: EXP
00000be0: SUB
00000be1: AND
00000be2: PUSH1 0x00
00000be4: DUP2
00000be5: DUP2
00000be6: MSTORE
00000be7: PUSH1 0x00
00000be9: DUP1
00000bea: MLOAD
00000beb: PUSH1 0x20
00000bed: PUSH2 0x18fa
00000bf0: DUP4
00000bf1: CODECOPY
00000bf2: DUP2
00000bf3: MLOAD
00000bf4: SWAP2
00000bf5: MSTORE
00000bf6: PUSH1 0x20
00000bf8: MSTORE
00000bf9: PUSH1 0x40
00000bfb: DUP1
00000bfc: DUP3
00000bfd: KECCAK256
00000bfe: SWAP4
00000bff: SWAP1
00000c00: SWAP4
00000c01: SSTORE
00000c02: SWAP2
00000c03: MLOAD
00000c04: SWAP1
00000c05: SWAP2
00000c06: DUP4
00000c07: SWAP2
00000c08: SWAP1
00000c09: DUP2
00000c0a: DUP2
00000c0b: DUP2
00000c0c: DUP6
00000c0d: DUP8
00000c0e: PUSH2 0x8502
00000c11: GAS
00000c12: SUB
00000c13: CALL
00000c14: SWAP3
00000c15: POP
00000c16: POP
00000c17: POP
00000c18: ISZERO
00000c19: ISZERO
00000c1a: PUSH2 0x0c22
00000c1d: JUMPI
00000c1e: PUSH2 0x0000
00000c21: JUMP
00000c22: JUMPDEST
00000c23: PUSH1 0x01
00000c25: PUSH1 0xa0
00000c27: PUSH1 0x02
00000c29: EXP
00000c2a: SUB
00000c2b: CALLER
00000c2c: AND
00000c2d: PUSH1 0x00
00000c2f: DUP2
00000c30: DUP2
00000c31: MSTORE
00000c32: PUSH1 0x00
00000c34: DUP1
00000c35: MLOAD
00000c36: PUSH1 0x20
00000c38: PUSH2 0x18fa
00000c3b: DUP4
00000c3c: CODECOPY
00000c3d: DUP2
00000c3e: MLOAD
00000c3f: SWAP2
00000c40: MSTORE
00000c41: PUSH1 0x20
00000c43: SWAP1
00000c44: DUP2
00000c45: MSTORE
00000c46: PUSH1 0x40
00000c48: DUP1
00000c49: DUP4
00000c4a: KECCAK256
00000c4b: SLOAD
00000c4c: DUP2
00000c4d: MLOAD
00000c4e: SWAP4
00000c4f: DUP5
00000c50: MSTORE
00000c51: SWAP2
00000c52: DUP4
00000c53: ADD
00000c54: SWAP4
00000c55: SWAP1
00000c56: SWAP4
00000c57: MSTORE
00000c58: DUP2
00000c59: DUP4
00000c5a: ADD
00000c5b: DUP5
00000c5c: SWAP1
00000c5d: MSTORE
00000c5e: PUSH1 0x60
00000c60: DUP3
00000c61: ADD
00000c62: MSTORE
00000c63: SWAP1
00000c64: MLOAD
00000c65: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567
00000c86: SWAP2
00000c87: DUP2
00000c88: SWAP1
00000c89: SUB
00000c8a: PUSH1 0x80
00000c8c: ADD
00000c8d: SWAP1
00000c8e: LOG1
00000c8f: JUMPDEST
00000c90: POP
00000c91: JUMP
00000c92: JUMPDEST
00000c93: PUSH1 0x01
00000c95: PUSH1 0xa0
00000c97: PUSH1 0x02
00000c99: EXP
00000c9a: SUB
00000c9b: DUP3
00000c9c: AND
00000c9d: ISZERO
00000c9e: ISZERO
00000c9f: PUSH2 0x0ca7
00000ca2: JUMPI
00000ca3: PUSH2 0x0000
00000ca6: JUMP
00000ca7: JUMPDEST
00000ca8: PUSH1 0x40
00000caa: DUP1
00000cab: MLOAD
00000cac: PUSH1 0x00
00000cae: PUSH1 0x20
00000cb0: SWAP2
00000cb1: DUP3
00000cb2: ADD
00000cb3: DUP2
00000cb4: SWAP1
00000cb5: MSTORE
00000cb6: DUP3
00000cb7: MLOAD
00000cb8: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000
00000cd9: DUP2
00000cda: MSTORE
00000cdb: PUSH1 0x01
00000cdd: PUSH1 0xa0
00000cdf: PUSH1 0x02
00000ce1: EXP
00000ce2: SUB
00000ce3: CALLER
00000ce4: DUP2
00000ce5: AND
00000ce6: PUSH1 0x04
00000ce8: DUP4
00000ce9: ADD
00000cea: MSTORE
00000ceb: ADDRESS
00000cec: DUP2
00000ced: AND
00000cee: PUSH1 0x24
00000cf0: DUP4
00000cf1: ADD
00000cf2: MSTORE
00000cf3: PUSH1 0x44
00000cf5: DUP3
00000cf6: ADD
00000cf7: DUP7
00000cf8: SWAP1
00000cf9: MSTORE
00000cfa: SWAP4
00000cfb: MLOAD
00000cfc: SWAP4
00000cfd: DUP7
00000cfe: AND
00000cff: SWAP4
00000d00: PUSH4 0x23b872dd
00000d05: SWAP4
00000d06: PUSH1 0x64
00000d08: DUP1
00000d09: DUP5
00000d0a: ADD
00000d0b: SWAP5
00000d0c: SWAP2
00000d0d: SWAP4
00000d0e: DUP4
00000d0f: SWAP1
00000d10: SUB
00000d11: ADD
00000d12: SWAP1
00000d13: DUP3
00000d14: SWAP1
00000d15: DUP8
00000d16: DUP1
00000d17: EXTCODESIZE
00000d18: ISZERO
00000d19: PUSH2 0x0000
00000d1c: JUMPI
00000d1d: PUSH1 0x32
00000d1f: GAS
00000d20: SUB
00000d21: CALL
00000d22: ISZERO
00000d23: PUSH2 0x0000
00000d26: JUMPI
00000d27: POP
00000d28: POP
00000d29: PUSH1 0x40
00000d2b: MLOAD
00000d2c: MLOAD
00000d2d: ISZERO
00000d2e: ISZERO
00000d2f: SWAP1
00000d30: POP
00000d31: PUSH2 0x0d39
00000d34: JUMPI
00000d35: PUSH2 0x0000
00000d38: JUMP
00000d39: JUMPDEST
00000d3a: PUSH1 0x01
00000d3c: PUSH1 0xa0
00000d3e: PUSH1 0x02
00000d40: EXP
00000d41: SUB
00000d42: DUP1
00000d43: DUP4
00000d44: AND
00000d45: PUSH1 0x00
00000d47: SWAP1
00000d48: DUP2
00000d49: MSTORE
00000d4a: PUSH1 0x06
00000d4c: PUSH1 0x20
00000d4e: SWAP1
00000d4f: DUP2
00000d50: MSTORE
00000d51: PUSH1 0x40
00000d53: DUP1
00000d54: DUP4
00000d55: KECCAK256
00000d56: CALLER
00000d57: SWAP1
00000d58: SWAP5
00000d59: AND
00000d5a: DUP4
00000d5b: MSTORE
00000d5c: SWAP3
00000d5d: SWAP1
00000d5e: MSTORE
00000d5f: KECCAK256
00000d60: SLOAD
00000d61: PUSH2 0x0d6a
00000d64: SWAP1
00000d65: DUP3
00000d66: PUSH2 0x15b5
00000d69: JUMP
00000d6a: JUMPDEST
00000d6b: PUSH1 0x01
00000d6d: PUSH1 0xa0
00000d6f: PUSH1 0x02
00000d71: EXP
00000d72: SUB
00000d73: DUP4
00000d74: DUP2
00000d75: AND
00000d76: PUSH1 0x00
00000d78: DUP2
00000d79: DUP2
00000d7a: MSTORE
00000d7b: PUSH1 0x06
00000d7d: PUSH1 0x20
00000d7f: SWAP1
00000d80: DUP2
00000d81: MSTORE
00000d82: PUSH1 0x40
00000d84: DUP1
00000d85: DUP4
00000d86: KECCAK256
00000d87: CALLER
00000d88: SWAP1
00000d89: SWAP6
00000d8a: AND
00000d8b: DUP1
00000d8c: DUP5
00000d8d: MSTORE
00000d8e: SWAP5
00000d8f: DUP3
00000d90: MSTORE
00000d91: SWAP2
00000d92: DUP3
00000d93: SWAP1
00000d94: KECCAK256
00000d95: DUP6
00000d96: SWAP1
00000d97: SSTORE
00000d98: DUP2
00000d99: MLOAD
00000d9a: SWAP3
00000d9b: DUP4
00000d9c: MSTORE
00000d9d: DUP3
00000d9e: ADD
00000d9f: SWAP3
00000da0: SWAP1
00000da1: SWAP3
00000da2: MSTORE
00000da3: DUP1
00000da4: DUP3
00000da5: ADD
00000da6: DUP5
00000da7: SWAP1
00000da8: MSTORE
00000da9: PUSH1 0x60
00000dab: DUP2
00000dac: ADD
00000dad: SWAP3
00000dae: SWAP1
00000daf: SWAP3
00000db0: MSTORE
00000db1: MLOAD
00000db2: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7
00000dd3: SWAP2
00000dd4: DUP2
00000dd5: SWAP1
00000dd6: SUB
00000dd7: PUSH1 0x80
00000dd9: ADD
00000dda: SWAP1
00000ddb: LOG1
00000ddc: JUMPDEST
00000ddd: POP
00000dde: POP
00000ddf: JUMP
00000de0: JUMPDEST
00000de1: PUSH1 0x00
00000de3: PUSH1 0x00
00000de5: PUSH1 0x02
00000de7: ADDRESS
00000de8: DUP14
00000de9: DUP14
00000dea: DUP14
00000deb: DUP14
00000dec: DUP14
00000ded: DUP14
00000dee: PUSH1 0x00
00000df0: PUSH1 0x40
00000df2: MLOAD
00000df3: PUSH1 0x20
00000df5: ADD
00000df6: MSTORE
00000df7: PUSH1 0x40
00000df9: MLOAD
00000dfa: DUP1
00000dfb: DUP9
00000dfc: PUSH1 0x01
00000dfe: PUSH1 0xa0
00000e00: PUSH1 0x02
00000e02: EXP
00000e03: SUB
00000e04: AND
00000e05: PUSH1 0x01
00000e07: PUSH1 0xa0
00000e09: PUSH1 0x02
00000e0b: EXP
00000e0c: SUB
00000e0d: AND
00000e0e: PUSH1 0x60
00000e10: PUSH1 0x02
00000e12: EXP
00000e13: MUL
00000e14: DUP2
00000e15: MSTORE
00000e16: PUSH1 0x14
00000e18: ADD
00000e19: DUP8
00000e1a: PUSH1 0x01
00000e1c: PUSH1 0xa0
00000e1e: PUSH1 0x02
00000e20: EXP
00000e21: SUB
00000e22: AND
00000e23: PUSH1 0x01
00000e25: PUSH1 0xa0
00000e27: PUSH1 0x02
00000e29: EXP
00000e2a: SUB
00000e2b: AND
00000e2c: PUSH1 0x60
00000e2e: PUSH1 0x02
00000e30: EXP
00000e31: MUL
00000e32: DUP2
00000e33: MSTORE
00000e34: PUSH1 0x14
00000e36: ADD
00000e37: DUP7
00000e38: DUP2
00000e39: MSTORE
00000e3a: PUSH1 0x20
00000e3c: ADD
00000e3d: DUP6
00000e3e: PUSH1 0x01
00000e40: PUSH1 0xa0
00000e42: PUSH1 0x02
00000e44: EXP
00000e45: SUB
00000e46: AND
00000e47: PUSH1 0x01
00000e49: PUSH1 0xa0
00000e4b: PUSH1 0x02
00000e4d: EXP
00000e4e: SUB
00000e4f: AND
00000e50: PUSH1 0x60
00000e52: PUSH1 0x02
00000e54: EXP
00000e55: MUL
00000e56: DUP2
00000e57: MSTORE
00000e58: PUSH1 0x14
00000e5a: ADD
00000e5b: DUP5
00000e5c: DUP2
00000e5d: MSTORE
00000e5e: PUSH1 0x20
00000e60: ADD
00000e61: DUP4
00000e62: DUP2
00000e63: MSTORE
00000e64: PUSH1 0x20
00000e66: ADD
00000e67: DUP3
00000e68: DUP2
00000e69: MSTORE
00000e6a: PUSH1 0x20
00000e6c: ADD
00000e6d: SWAP8
00000e6e: POP
00000e6f: POP
00000e70: POP
00000e71: POP
00000e72: POP
00000e73: POP
00000e74: POP
00000e75: POP
00000e76: PUSH1 0x20
00000e78: PUSH1 0x40
00000e7a: MLOAD
00000e7b: DUP1
00000e7c: DUP4
00000e7d: SUB
00000e7e: DUP2
00000e7f: PUSH1 0x00
00000e81: DUP7
00000e82: PUSH2 0x61da
00000e85: GAS
00000e86: SUB
00000e87: CALL
00000e88: ISZERO
00000e89: PUSH2 0x0000
00000e8c: JUMPI
00000e8d: POP
00000e8e: POP
00000e8f: PUSH1 0x40
00000e91: DUP1
00000e92: MLOAD
00000e93: MLOAD
00000e94: PUSH1 0x01
00000e96: PUSH1 0xa0
00000e98: PUSH1 0x02
00000e9a: EXP
00000e9b: SUB
00000e9c: DUP9
00000e9d: AND
00000e9e: PUSH1 0x00
00000ea0: SWAP1
00000ea1: DUP2
00000ea2: MSTORE
00000ea3: PUSH1 0x08
00000ea5: PUSH1 0x20
00000ea7: SWAP1
00000ea8: DUP2
00000ea9: MSTORE
00000eaa: DUP4
00000eab: DUP3
00000eac: KECCAK256
00000ead: DUP4
00000eae: DUP4
00000eaf: MSTORE
00000eb0: SWAP1
00000eb1: MSTORE
00000eb2: SWAP2
00000eb3: SWAP1
00000eb4: SWAP2
00000eb5: KECCAK256
00000eb6: SLOAD
00000eb7: SWAP3
00000eb8: POP
00000eb9: SWAP1
00000eba: POP
00000ebb: JUMPDEST
00000ebc: POP
00000ebd: SWAP11
00000ebe: SWAP10
00000ebf: POP
00000ec0: POP
00000ec1: POP
00000ec2: POP
00000ec3: POP
00000ec4: POP
00000ec5: POP
00000ec6: POP
00000ec7: POP
00000ec8: POP
00000ec9: JUMP
00000eca: JUMPDEST
00000ecb: PUSH1 0x06
00000ecd: PUSH1 0x20
00000ecf: SWAP1
00000ed0: DUP2
00000ed1: MSTORE
00000ed2: PUSH1 0x00
00000ed4: SWAP3
00000ed5: DUP4
00000ed6: MSTORE
00000ed7: PUSH1 0x40
00000ed9: DUP1
00000eda: DUP5
00000edb: KECCAK256
00000edc: SWAP1
00000edd: SWAP2
00000ede: MSTORE
00000edf: SWAP1
00000ee0: DUP3
00000ee1: MSTORE
00000ee2: SWAP1
00000ee3: KECCAK256
00000ee4: SLOAD
00000ee5: DUP2
00000ee6: JUMP
00000ee7: JUMPDEST
00000ee8: PUSH1 0x00
00000eea: SLOAD
00000eeb: CALLER
00000eec: PUSH1 0x01
00000eee: PUSH1 0xa0
00000ef0: PUSH1 0x02
00000ef2: EXP
00000ef3: SUB
00000ef4: SWAP1
00000ef5: DUP2
00000ef6: AND
00000ef7: SWAP2
00000ef8: AND
00000ef9: EQ
00000efa: PUSH2 0x0f02
00000efd: JUMPI
00000efe: PUSH2 0x0000
00000f01: JUMP
00000f02: JUMPDEST
00000f03: PUSH1 0x03
00000f05: SLOAD
00000f06: DUP2
00000f07: GT
00000f08: ISZERO
00000f09: PUSH2 0x0f11
00000f0c: JUMPI
00000f0d: PUSH2 0x0000
00000f10: JUMP
00000f11: JUMPDEST
00000f12: PUSH1 0x03
00000f14: DUP2
00000f15: SWAP1
00000f16: SSTORE
00000f17: JUMPDEST
00000f18: POP
00000f19: JUMP
00000f1a: JUMPDEST
00000f1b: PUSH1 0x03
00000f1d: SLOAD
00000f1e: DUP2
00000f1f: JUMP
00000f20: JUMPDEST
00000f21: PUSH1 0x00
00000f23: SLOAD
00000f24: CALLER
00000f25: PUSH1 0x01
00000f27: PUSH1 0xa0
00000f29: PUSH1 0x02
00000f2b: EXP
00000f2c: SUB
00000f2d: SWAP1
00000f2e: DUP2
00000f2f: AND
00000f30: SWAP2
00000f31: AND
00000f32: EQ
00000f33: PUSH2 0x0f3b
00000f36: JUMPI
00000f37: PUSH2 0x0000
00000f3a: JUMP
00000f3b: JUMPDEST
00000f3c: PUSH1 0x05
00000f3e: SLOAD
00000f3f: DUP2
00000f40: LT
00000f41: DUP1
00000f42: PUSH2 0x0f4c
00000f45: JUMPI
00000f46: POP
00000f47: PUSH1 0x04
00000f49: SLOAD
00000f4a: DUP2
00000f4b: GT
00000f4c: JUMPDEST
00000f4d: ISZERO
00000f4e: PUSH2 0x0f56
00000f51: JUMPI
00000f52: PUSH2 0x0000
00000f55: JUMP
00000f56: JUMPDEST
00000f57: PUSH1 0x05
00000f59: DUP2
00000f5a: SWAP1
00000f5b: SSTORE
00000f5c: JUMPDEST
00000f5d: POP
00000f5e: JUMP
00000f5f: JUMPDEST
00000f60: PUSH1 0x01
00000f62: SLOAD
00000f63: PUSH1 0x01
00000f65: PUSH1 0xa0
00000f67: PUSH1 0x02
00000f69: EXP
00000f6a: SUB
00000f6b: AND
00000f6c: DUP2
00000f6d: JUMP
00000f6e: JUMPDEST
00000f6f: PUSH1 0x01
00000f71: PUSH1 0xa0
00000f73: PUSH1 0x02
00000f75: EXP
00000f76: SUB
00000f77: DUP1
00000f78: DUP14
00000f79: AND
00000f7a: PUSH1 0x00
00000f7c: SWAP1
00000f7d: DUP2
00000f7e: MSTORE
00000f7f: PUSH1 0x06
00000f81: PUSH1 0x20
00000f83: SWAP1
00000f84: DUP2
00000f85: MSTORE
00000f86: PUSH1 0x40
00000f88: DUP1
00000f89: DUP4
00000f8a: KECCAK256
00000f8b: SWAP4
00000f8c: DUP6
00000f8d: AND
00000f8e: DUP4
00000f8f: MSTORE
00000f90: SWAP3
00000f91: SWAP1
00000f92: MSTORE
00000f93: SWAP1
00000f94: DUP2
00000f95: KECCAK256
00000f96: SLOAD
00000f97: DUP4
00000f98: SWAP1
00000f99: LT
00000f9a: DUP1
00000f9b: ISZERO
00000f9c: SWAP1
00000f9d: PUSH2 0x0fb7
00000fa0: JUMPI
00000fa1: POP
00000fa2: DUP3
00000fa3: PUSH2 0x0fb4
00000fa6: DUP15
00000fa7: DUP15
00000fa8: DUP15
00000fa9: DUP15
00000faa: DUP15
00000fab: DUP15
00000fac: DUP15
00000fad: DUP15
00000fae: DUP15
00000faf: DUP15
00000fb0: PUSH2 0x1377
00000fb3: JUMP
00000fb4: JUMPDEST
00000fb5: LT
00000fb6: ISZERO
00000fb7: JUMPDEST
00000fb8: ISZERO
00000fb9: ISZERO
00000fba: PUSH2 0x0fc5
00000fbd: JUMPI
00000fbe: POP
00000fbf: PUSH1 0x00
00000fc1: PUSH2 0x0fc9
00000fc4: JUMP
00000fc5: JUMPDEST
00000fc6: POP
00000fc7: PUSH1 0x01
00000fc9: JUMPDEST
00000fca: SWAP13
00000fcb: SWAP12
00000fcc: POP
00000fcd: POP
00000fce: POP
00000fcf: POP
00000fd0: POP
00000fd1: POP
00000fd2: POP
00000fd3: POP
00000fd4: POP
00000fd5: POP
00000fd6: POP
00000fd7: POP
00000fd8: JUMP
00000fd9: JUMPDEST
00000fda: PUSH1 0x00
00000fdc: SLOAD
00000fdd: CALLER
00000fde: PUSH1 0x01
00000fe0: PUSH1 0xa0
00000fe2: PUSH1 0x02
00000fe4: EXP
00000fe5: SUB
00000fe6: SWAP1
00000fe7: DUP2
00000fe8: AND
00000fe9: SWAP2
00000fea: AND
00000feb: EQ
00000fec: PUSH2 0x0ff4
00000fef: JUMPI
00000ff0: PUSH2 0x0000
00000ff3: JUMP
00000ff4: JUMPDEST
00000ff5: PUSH1 0x01
00000ff7: DUP1
00000ff8: SLOAD
00000ff9: PUSH1 0x01
00000ffb: PUSH1 0xa0
00000ffd: PUSH1 0x02
00000fff: EXP
00001000: SUB
00001001: NOT
00001002: AND
00001003: PUSH1 0x01
00001005: PUSH1 0xa0
00001007: PUSH1 0x02
00001009: EXP
0000100a: SUB
0000100b: DUP4
0000100c: AND
0000100d: OR
0000100e: SWAP1
0000100f: SSTORE
00001010: JUMPDEST
00001011: POP
00001012: JUMP
00001013: JUMPDEST
00001014: PUSH1 0x05
00001016: SLOAD
00001017: DUP2
00001018: JUMP
00001019: JUMPDEST
0000101a: PUSH1 0x00
0000101c: SLOAD
0000101d: CALLER
0000101e: PUSH1 0x01
00001020: PUSH1 0xa0
00001022: PUSH1 0x02
00001024: EXP
00001025: SUB
00001026: SWAP1
00001027: DUP2
00001028: AND
00001029: SWAP2
0000102a: AND
0000102b: EQ
0000102c: PUSH2 0x1034
0000102f: JUMPI
00001030: PUSH2 0x0000
00001033: JUMP
00001034: JUMPDEST
00001035: PUSH1 0x04
00001037: SLOAD
00001038: DUP2
00001039: GT
0000103a: DUP1
0000103b: PUSH2 0x1045
0000103e: JUMPI
0000103f: POP
00001040: PUSH1 0x05
00001042: SLOAD
00001043: DUP2
00001044: LT
00001045: JUMPDEST
00001046: ISZERO
00001047: PUSH2 0x104f
0000104a: JUMPI
0000104b: PUSH2 0x0000
0000104e: JUMP
0000104f: JUMPDEST
00001050: PUSH1 0x04
00001052: DUP2
00001053: SWAP1
00001054: SSTORE
00001055: JUMPDEST
00001056: POP
00001057: JUMP
00001058: JUMPDEST
00001059: PUSH1 0x00
0000105b: SLOAD
0000105c: CALLER
0000105d: PUSH1 0x01
0000105f: PUSH1 0xa0
00001061: PUSH1 0x02
00001063: EXP
00001064: SUB
00001065: SWAP1
00001066: DUP2
00001067: AND
00001068: SWAP2
00001069: AND
0000106a: EQ
0000106b: PUSH2 0x1073
0000106e: JUMPI
0000106f: PUSH2 0x0000
00001072: JUMP
00001073: JUMPDEST
00001074: PUSH1 0x00
00001076: DUP1
00001077: SLOAD
00001078: PUSH1 0x01
0000107a: PUSH1 0xa0
0000107c: PUSH1 0x02
0000107e: EXP
0000107f: SUB
00001080: NOT
00001081: AND
00001082: PUSH1 0x01
00001084: PUSH1 0xa0
00001086: PUSH1 0x02
00001088: EXP
00001089: SUB
0000108a: DUP4
0000108b: AND
0000108c: OR
0000108d: SWAP1
0000108e: SSTORE
0000108f: JUMPDEST
00001090: POP
00001091: JUMP
00001092: JUMPDEST
00001093: PUSH1 0x01
00001095: PUSH1 0xa0
00001097: PUSH1 0x02
00001099: EXP
0000109a: SUB
0000109b: DUP3
0000109c: AND
0000109d: ISZERO
0000109e: ISZERO
0000109f: PUSH2 0x10a7
000010a2: JUMPI
000010a3: PUSH2 0x0000
000010a6: JUMP
000010a7: JUMPDEST
000010a8: PUSH1 0x01
000010aa: PUSH1 0xa0
000010ac: PUSH1 0x02
000010ae: EXP
000010af: SUB
000010b0: DUP1
000010b1: DUP4
000010b2: AND
000010b3: PUSH1 0x00
000010b5: SWAP1
000010b6: DUP2
000010b7: MSTORE
000010b8: PUSH1 0x06
000010ba: PUSH1 0x20
000010bc: SWAP1
000010bd: DUP2
000010be: MSTORE
000010bf: PUSH1 0x40
000010c1: DUP1
000010c2: DUP4
000010c3: KECCAK256
000010c4: CALLER
000010c5: SWAP1
000010c6: SWAP5
000010c7: AND
000010c8: DUP4
000010c9: MSTORE
000010ca: SWAP3
000010cb: SWAP1
000010cc: MSTORE
000010cd: KECCAK256
000010ce: SLOAD
000010cf: DUP2
000010d0: SWAP1
000010d1: LT
000010d2: ISZERO
000010d3: PUSH2 0x10db
000010d6: JUMPI
000010d7: PUSH2 0x0000
000010da: JUMP
000010db: JUMPDEST
000010dc: PUSH1 0x01
000010de: PUSH1 0xa0
000010e0: PUSH1 0x02
000010e2: EXP
000010e3: SUB
000010e4: DUP1
000010e5: DUP4
000010e6: AND
000010e7: PUSH1 0x00
000010e9: SWAP1
000010ea: DUP2
000010eb: MSTORE
000010ec: PUSH1 0x06
000010ee: PUSH1 0x20
000010f0: SWAP1
000010f1: DUP2
000010f2: MSTORE
000010f3: PUSH1 0x40
000010f5: DUP1
000010f6: DUP4
000010f7: KECCAK256
000010f8: CALLER
000010f9: SWAP1
000010fa: SWAP5
000010fb: AND
000010fc: DUP4
000010fd: MSTORE
000010fe: SWAP3
000010ff: SWAP1
00001100: MSTORE
00001101: KECCAK256
00001102: SLOAD
00001103: PUSH2 0x110c
00001106: SWAP1
00001107: DUP3
00001108: PUSH2 0x18a4
0000110b: JUMP
0000110c: JUMPDEST
0000110d: PUSH1 0x01
0000110f: PUSH1 0xa0
00001111: PUSH1 0x02
00001113: EXP
00001114: SUB
00001115: DUP1
00001116: DUP5
00001117: AND
00001118: PUSH1 0x00
0000111a: DUP2
0000111b: DUP2
0000111c: MSTORE
0000111d: PUSH1 0x06
0000111f: PUSH1 0x20
00001121: SWAP1
00001122: DUP2
00001123: MSTORE
00001124: PUSH1 0x40
00001126: DUP1
00001127: DUP4
00001128: KECCAK256
00001129: CALLER
0000112a: SWAP1
0000112b: SWAP6
0000112c: AND
0000112d: DUP1
0000112e: DUP5
0000112f: MSTORE
00001130: SWAP5
00001131: DUP3
00001132: MSTORE
00001133: DUP1
00001134: DUP4
00001135: KECCAK256
00001136: SWAP6
00001137: SWAP1
00001138: SWAP6
00001139: SSTORE
0000113a: DUP5
0000113b: MLOAD
0000113c: DUP2
0000113d: ADD
0000113e: DUP3
0000113f: SWAP1
00001140: MSTORE
00001141: DUP5
00001142: MLOAD
00001143: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
00001164: DUP2
00001165: MSTORE
00001166: PUSH1 0x04
00001168: DUP2
00001169: ADD
0000116a: SWAP5
0000116b: SWAP1
0000116c: SWAP5
0000116d: MSTORE
0000116e: PUSH1 0x24
00001170: DUP5
00001171: ADD
00001172: DUP7
00001173: SWAP1
00001174: MSTORE
00001175: SWAP4
00001176: MLOAD
00001177: SWAP2
00001178: SWAP4
00001179: PUSH4 0xa9059cbb
0000117e: SWAP4
0000117f: PUSH1 0x44
00001181: DUP1
00001182: DUP3
00001183: ADD
00001184: SWAP5
00001185: SWAP3
00001186: SWAP4
00001187: SWAP2
00001188: DUP4
00001189: SWAP1
0000118a: SUB
0000118b: ADD
0000118c: SWAP1
0000118d: DUP3
0000118e: SWAP1
0000118f: DUP8
00001190: DUP1
00001191: EXTCODESIZE
00001192: ISZERO
00001193: PUSH2 0x0000
00001196: JUMPI
00001197: PUSH1 0x32
00001199: GAS
0000119a: SUB
0000119b: CALL
0000119c: ISZERO
0000119d: PUSH2 0x0000
000011a0: JUMPI
000011a1: POP
000011a2: POP
000011a3: PUSH1 0x40
000011a5: MLOAD
000011a6: MLOAD
000011a7: ISZERO
000011a8: ISZERO
000011a9: SWAP1
000011aa: POP
000011ab: PUSH2 0x11b3
000011ae: JUMPI
000011af: PUSH2 0x0000
000011b2: JUMP
000011b3: JUMPDEST
000011b4: PUSH1 0x01
000011b6: PUSH1 0xa0
000011b8: PUSH1 0x02
000011ba: EXP
000011bb: SUB
000011bc: DUP1
000011bd: DUP4
000011be: AND
000011bf: PUSH1 0x00
000011c1: DUP2
000011c2: DUP2
000011c3: MSTORE
000011c4: PUSH1 0x06
000011c6: PUSH1 0x20
000011c8: SWAP1
000011c9: DUP2
000011ca: MSTORE
000011cb: PUSH1 0x40
000011cd: DUP1
000011ce: DUP4
000011cf: KECCAK256
000011d0: CALLER
000011d1: SWAP6
000011d2: SWAP1
000011d3: SWAP6
000011d4: AND
000011d5: DUP1
000011d6: DUP5
000011d7: MSTORE
000011d8: SWAP5
000011d9: DUP3
000011da: MSTORE
000011db: SWAP2
000011dc: DUP3
000011dd: SWAP1
000011de: KECCAK256
000011df: SLOAD
000011e0: DUP3
000011e1: MLOAD
000011e2: SWAP4
000011e3: DUP5
000011e4: MSTORE
000011e5: SWAP1
000011e6: DUP4
000011e7: ADD
000011e8: SWAP4
000011e9: SWAP1
000011ea: SWAP4
000011eb: MSTORE
000011ec: DUP2
000011ed: DUP2
000011ee: ADD
000011ef: DUP5
000011f0: SWAP1
000011f1: MSTORE
000011f2: PUSH1 0x60
000011f4: DUP3
000011f5: ADD
000011f6: SWAP3
000011f7: SWAP1
000011f8: SWAP3
000011f9: MSTORE
000011fa: SWAP1
000011fb: MLOAD
000011fc: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567
0000121d: SWAP2
0000121e: DUP2
0000121f: SWAP1
00001220: SUB
00001221: PUSH1 0x80
00001223: ADD
00001224: SWAP1
00001225: LOG1
00001226: JUMPDEST
00001227: POP
00001228: POP
00001229: JUMP
0000122a: JUMPDEST
0000122b: PUSH1 0x07
0000122d: PUSH1 0x20
0000122f: SWAP1
00001230: DUP2
00001231: MSTORE
00001232: PUSH1 0x00
00001234: SWAP3
00001235: DUP4
00001236: MSTORE
00001237: PUSH1 0x40
00001239: DUP1
0000123a: DUP5
0000123b: KECCAK256
0000123c: SWAP1
0000123d: SWAP2
0000123e: MSTORE
0000123f: SWAP1
00001240: DUP3
00001241: MSTORE
00001242: SWAP1
00001243: KECCAK256
00001244: SLOAD
00001245: PUSH1 0xff
00001247: AND
00001248: DUP2
00001249: JUMP
0000124a: JUMPDEST
0000124b: PUSH1 0x04
0000124d: SLOAD
0000124e: DUP2
0000124f: JUMP
00001250: JUMPDEST
00001251: CALLER
00001252: PUSH1 0x01
00001254: PUSH1 0xa0
00001256: PUSH1 0x02
00001258: EXP
00001259: SUB
0000125a: AND
0000125b: PUSH1 0x00
0000125d: SWAP1
0000125e: DUP2
0000125f: MSTORE
00001260: PUSH1 0x00
00001262: DUP1
00001263: MLOAD
00001264: PUSH1 0x20
00001266: PUSH2 0x18fa
00001269: DUP4
0000126a: CODECOPY
0000126b: DUP2
0000126c: MLOAD
0000126d: SWAP2
0000126e: MSTORE
0000126f: PUSH1 0x20
00001271: MSTORE
00001272: PUSH1 0x40
00001274: SWAP1
00001275: KECCAK256
00001276: SLOAD
00001277: PUSH2 0x1280
0000127a: SWAP1
0000127b: CALLVALUE
0000127c: PUSH2 0x15b5
0000127f: JUMP
00001280: JUMPDEST
00001281: CALLER
00001282: PUSH1 0x01
00001284: PUSH1 0xa0
00001286: PUSH1 0x02
00001288: EXP
00001289: SUB
0000128a: AND
0000128b: PUSH1 0x00
0000128d: DUP2
0000128e: DUP2
0000128f: MSTORE
00001290: PUSH1 0x00
00001292: DUP1
00001293: MLOAD
00001294: PUSH1 0x20
00001296: PUSH2 0x18fa
00001299: DUP4
0000129a: CODECOPY
0000129b: DUP2
0000129c: MLOAD
0000129d: SWAP2
0000129e: MSTORE
0000129f: PUSH1 0x20
000012a1: SWAP1
000012a2: DUP2
000012a3: MSTORE
000012a4: PUSH1 0x40
000012a6: DUP1
000012a7: DUP4
000012a8: KECCAK256
000012a9: DUP6
000012aa: SWAP1
000012ab: SSTORE
000012ac: DUP1
000012ad: MLOAD
000012ae: SWAP3
000012af: DUP4
000012b0: MSTORE
000012b1: SWAP1
000012b2: DUP3
000012b3: ADD
000012b4: SWAP3
000012b5: SWAP1
000012b6: SWAP3
000012b7: MSTORE
000012b8: CALLVALUE
000012b9: DUP2
000012ba: DUP4
000012bb: ADD
000012bc: MSTORE
000012bd: PUSH1 0x60
000012bf: DUP2
000012c0: ADD
000012c1: SWAP3
000012c2: SWAP1
000012c3: SWAP3
000012c4: MSTORE
000012c5: MLOAD
000012c6: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7
000012e7: SWAP2
000012e8: DUP2
000012e9: SWAP1
000012ea: SUB
000012eb: PUSH1 0x80
000012ed: ADD
000012ee: SWAP1
000012ef: LOG1
000012f0: JUMPDEST
000012f1: JUMP
000012f2: JUMPDEST
000012f3: PUSH1 0x00
000012f5: SLOAD
000012f6: CALLER
000012f7: PUSH1 0x01
000012f9: PUSH1 0xa0
000012fb: PUSH1 0x02
000012fd: EXP
000012fe: SUB
000012ff: SWAP1
00001300: DUP2
00001301: AND
00001302: SWAP2
00001303: AND
00001304: EQ
00001305: PUSH2 0x130d
00001308: JUMPI
00001309: PUSH2 0x0000
0000130c: JUMP
0000130d: JUMPDEST
0000130e: PUSH1 0x02
00001310: DUP1
00001311: SLOAD
00001312: PUSH1 0x01
00001314: PUSH1 0xa0
00001316: PUSH1 0x02
00001318: EXP
00001319: SUB
0000131a: NOT
0000131b: AND
0000131c: PUSH1 0x01
0000131e: PUSH1 0xa0
00001320: PUSH1 0x02
00001322: EXP
00001323: SUB
00001324: DUP4
00001325: AND
00001326: OR
00001327: SWAP1
00001328: SSTORE
00001329: JUMPDEST
0000132a: POP
0000132b: JUMP
0000132c: JUMPDEST
0000132d: PUSH1 0x02
0000132f: SLOAD
00001330: PUSH1 0x01
00001332: PUSH1 0xa0
00001334: PUSH1 0x02
00001336: EXP
00001337: SUB
00001338: AND
00001339: DUP2
0000133a: JUMP
0000133b: JUMPDEST
0000133c: PUSH1 0x01
0000133e: PUSH1 0xa0
00001340: PUSH1 0x02
00001342: EXP
00001343: SUB
00001344: DUP1
00001345: DUP4
00001346: AND
00001347: PUSH1 0x00
00001349: SWAP1
0000134a: DUP2
0000134b: MSTORE
0000134c: PUSH1 0x06
0000134e: PUSH1 0x20
00001350: SWAP1
00001351: DUP2
00001352: MSTORE
00001353: PUSH1 0x40
00001355: DUP1
00001356: DUP4
00001357: KECCAK256
00001358: SWAP4
00001359: DUP6
0000135a: AND
0000135b: DUP4
0000135c: MSTORE
0000135d: SWAP3
0000135e: SWAP1
0000135f: MSTORE
00001360: KECCAK256
00001361: SLOAD
00001362: JUMPDEST
00001363: SWAP3
00001364: SWAP2
00001365: POP
00001366: POP
00001367: JUMP
00001368: JUMPDEST
00001369: PUSH1 0x00
0000136b: SLOAD
0000136c: PUSH1 0x01
0000136e: PUSH1 0xa0
00001370: PUSH1 0x02
00001372: EXP
00001373: SUB
00001374: AND
00001375: DUP2
00001376: JUMP
00001377: JUMPDEST
00001378: PUSH1 0x00
0000137a: PUSH1 0x00
0000137c: PUSH1 0x00
0000137e: PUSH1 0x00
00001380: PUSH1 0x02
00001382: ADDRESS
00001383: DUP16
00001384: DUP16
00001385: DUP16
00001386: DUP16
00001387: DUP16
00001388: DUP16
00001389: PUSH1 0x00
0000138b: PUSH1 0x40
0000138d: MLOAD
0000138e: PUSH1 0x20
00001390: ADD
00001391: MSTORE
00001392: PUSH1 0x40
00001394: MLOAD
00001395: DUP1
00001396: DUP9
00001397: PUSH1 0x01
00001399: PUSH1 0xa0
0000139b: PUSH1 0x02
0000139d: EXP
0000139e: SUB
0000139f: AND
000013a0: PUSH1 0x01
000013a2: PUSH1 0xa0
000013a4: PUSH1 0x02
000013a6: EXP
000013a7: SUB
000013a8: AND
000013a9: PUSH1 0x60
000013ab: PUSH1 0x02
000013ad: EXP
000013ae: MUL
000013af: DUP2
000013b0: MSTORE
000013b1: PUSH1 0x14
000013b3: ADD
000013b4: DUP8
000013b5: PUSH1 0x01
000013b7: PUSH1 0xa0
000013b9: PUSH1 0x02
000013bb: EXP
000013bc: SUB
000013bd: AND
000013be: PUSH1 0x01
000013c0: PUSH1 0xa0
000013c2: PUSH1 0x02
000013c4: EXP
000013c5: SUB
000013c6: AND
000013c7: PUSH1 0x60
000013c9: PUSH1 0x02
000013cb: EXP
000013cc: MUL
000013cd: DUP2
000013ce: MSTORE
000013cf: PUSH1 0x14
000013d1: ADD
000013d2: DUP7
000013d3: DUP2
000013d4: MSTORE
000013d5: PUSH1 0x20
000013d7: ADD
000013d8: DUP6
000013d9: PUSH1 0x01
000013db: PUSH1 0xa0
000013dd: PUSH1 0x02
000013df: EXP
000013e0: SUB
000013e1: AND
000013e2: PUSH1 0x01
000013e4: PUSH1 0xa0
000013e6: PUSH1 0x02
000013e8: EXP
000013e9: SUB
000013ea: AND
000013eb: PUSH1 0x60
000013ed: PUSH1 0x02
000013ef: EXP
000013f0: MUL
000013f1: DUP2
000013f2: MSTORE
000013f3: PUSH1 0x14
000013f5: ADD
000013f6: DUP5
000013f7: DUP2
000013f8: MSTORE
000013f9: PUSH1 0x20
000013fb: ADD
000013fc: DUP4
000013fd: DUP2
000013fe: MSTORE
000013ff: PUSH1 0x20
00001401: ADD
00001402: DUP3
00001403: DUP2
00001404: MSTORE
00001405: PUSH1 0x20
00001407: ADD
00001408: SWAP8
00001409: POP
0000140a: POP
0000140b: POP
0000140c: POP
0000140d: POP
0000140e: POP
0000140f: POP
00001410: POP
00001411: PUSH1 0x20
00001413: PUSH1 0x40
00001415: MLOAD
00001416: DUP1
00001417: DUP4
00001418: SUB
00001419: DUP2
0000141a: PUSH1 0x00
0000141c: DUP7
0000141d: PUSH2 0x61da
00001420: GAS
00001421: SUB
00001422: CALL
00001423: ISZERO
00001424: PUSH2 0x0000
00001427: JUMPI
00001428: POP
00001429: POP
0000142a: PUSH1 0x40
0000142c: DUP1
0000142d: MLOAD
0000142e: MLOAD
0000142f: PUSH1 0x01
00001431: PUSH1 0xa0
00001433: PUSH1 0x02
00001435: EXP
00001436: SUB
00001437: DUP11
00001438: AND
00001439: PUSH1 0x00
0000143b: SWAP1
0000143c: DUP2
0000143d: MSTORE
0000143e: PUSH1 0x07
00001440: PUSH1 0x20
00001442: SWAP1
00001443: DUP2
00001444: MSTORE
00001445: DUP4
00001446: DUP3
00001447: KECCAK256
00001448: DUP4
00001449: DUP4
0000144a: MSTORE
0000144b: SWAP1
0000144c: MSTORE
0000144d: SWAP2
0000144e: SWAP1
0000144f: SWAP2
00001450: KECCAK256
00001451: SLOAD
00001452: SWAP1
00001453: SWAP4
00001454: POP
00001455: PUSH1 0xff
00001457: AND
00001458: DUP1
00001459: PUSH2 0x1508
0000145c: JUMPI
0000145d: POP
0000145e: PUSH1 0x40
00001460: DUP1
00001461: MLOAD
00001462: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
00001483: DUP2
00001484: MSTORE
00001485: PUSH1 0x1c
00001487: DUP2
00001488: ADD
00001489: DUP6
0000148a: SWAP1
0000148b: MSTORE
0000148c: DUP2
0000148d: MLOAD
0000148e: SWAP1
0000148f: DUP2
00001490: SWAP1
00001491: SUB
00001492: PUSH1 0x3c
00001494: ADD
00001495: DUP2
00001496: KECCAK256
00001497: PUSH1 0x00
00001499: DUP3
0000149a: DUP2
0000149b: MSTORE
0000149c: PUSH1 0x20
0000149e: DUP4
0000149f: DUP2
000014a0: ADD
000014a1: DUP6
000014a2: MSTORE
000014a3: SWAP3
000014a4: DUP5
000014a5: ADD
000014a6: DUP2
000014a7: SWAP1
000014a8: MSTORE
000014a9: DUP4
000014aa: MLOAD
000014ab: SWAP2
000014ac: DUP3
000014ad: MSTORE
000014ae: PUSH1 0xff
000014b0: DUP12
000014b1: AND
000014b2: DUP3
000014b3: DUP5
000014b4: ADD
000014b5: MSTORE
000014b6: DUP2
000014b7: DUP5
000014b8: ADD
000014b9: DUP11
000014ba: SWAP1
000014bb: MSTORE
000014bc: PUSH1 0x60
000014be: DUP3
000014bf: ADD
000014c0: DUP10
000014c1: SWAP1
000014c2: MSTORE
000014c3: SWAP3
000014c4: MLOAD
000014c5: PUSH1 0x01
000014c7: PUSH1 0xa0
000014c9: PUSH1 0x02
000014cb: EXP
000014cc: SUB
000014cd: DUP13
000014ce: AND
000014cf: SWAP4
000014d0: PUSH1 0x01
000014d2: SWAP4
000014d3: PUSH1 0x80
000014d5: DUP1
000014d6: DUP6
000014d7: ADD
000014d8: SWAP5
000014d9: SWAP2
000014da: SWAP4
000014db: PUSH1 0x1f
000014dd: NOT
000014de: DUP2
000014df: ADD
000014e0: SWAP4
000014e1: SWAP3
000014e2: DUP2
000014e3: SWAP1
000014e4: SUB
000014e5: SWAP1
000014e6: SWAP2
000014e7: ADD
000014e8: SWAP2
000014e9: DUP7
000014ea: PUSH2 0x61da
000014ed: GAS
000014ee: SUB
000014ef: CALL
000014f0: ISZERO
000014f1: PUSH2 0x0000
000014f4: JUMPI
000014f5: POP
000014f6: POP
000014f7: PUSH1 0x20
000014f9: PUSH1 0x40
000014fb: MLOAD
000014fc: SUB
000014fd: MLOAD
000014fe: PUSH1 0x01
00001500: PUSH1 0xa0
00001502: PUSH1 0x02
00001504: EXP
00001505: SUB
00001506: AND
00001507: EQ
00001508: JUMPDEST
00001509: DUP1
0000150a: ISZERO
0000150b: PUSH2 0x1514
0000150e: JUMPI
0000150f: POP
00001510: DUP10
00001511: NUMBER
00001512: GT
00001513: ISZERO
00001514: JUMPDEST
00001515: ISZERO
00001516: ISZERO
00001517: PUSH2 0x1523
0000151a: JUMPI
0000151b: PUSH1 0x00
0000151d: SWAP4
0000151e: POP
0000151f: PUSH2 0x15a4
00001522: JUMP
00001523: JUMPDEST
00001524: PUSH1 0x01
00001526: PUSH1 0xa0
00001528: PUSH1 0x02
0000152a: EXP
0000152b: SUB
0000152c: DUP9
0000152d: AND
0000152e: PUSH1 0x00
00001530: SWAP1
00001531: DUP2
00001532: MSTORE
00001533: PUSH1 0x08
00001535: PUSH1 0x20
00001537: SWAP1
00001538: DUP2
00001539: MSTORE
0000153a: PUSH1 0x40
0000153c: DUP1
0000153d: DUP4
0000153e: KECCAK256
0000153f: DUP7
00001540: DUP5
00001541: MSTORE
00001542: SWAP1
00001543: SWAP2
00001544: MSTORE
00001545: SWAP1
00001546: KECCAK256
00001547: SLOAD
00001548: PUSH2 0x1552
0000154b: SWAP1
0000154c: DUP15
0000154d: SWAP1
0000154e: PUSH2 0x18a4
00001551: JUMP
00001552: JUMPDEST
00001553: PUSH1 0x01
00001555: PUSH1 0xa0
00001557: PUSH1 0x02
00001559: EXP
0000155a: SUB
0000155b: DUP1
0000155c: DUP15
0000155d: AND
0000155e: PUSH1 0x00
00001560: SWAP1
00001561: DUP2
00001562: MSTORE
00001563: PUSH1 0x06
00001565: PUSH1 0x20
00001567: SWAP1
00001568: DUP2
00001569: MSTORE
0000156a: PUSH1 0x40
0000156c: DUP1
0000156d: DUP4
0000156e: KECCAK256
0000156f: SWAP4
00001570: DUP14
00001571: AND
00001572: DUP4
00001573: MSTORE
00001574: SWAP3
00001575: SWAP1
00001576: MSTORE
00001577: KECCAK256
00001578: SLOAD
00001579: SWAP1
0000157a: SWAP3
0000157b: POP
0000157c: DUP12
0000157d: SWAP1
0000157e: PUSH2 0x1587
00001581: SWAP1
00001582: DUP16
00001583: PUSH2 0x18bd
00001586: JUMP
00001587: JUMPDEST
00001588: DUP2
00001589: ISZERO
0000158a: PUSH2 0x0000
0000158d: JUMPI
0000158e: DIV
0000158f: SWAP1
00001590: POP
00001591: DUP1
00001592: DUP3
00001593: LT
00001594: ISZERO
00001595: PUSH2 0x15a0
00001598: JUMPI
00001599: DUP2
0000159a: SWAP4
0000159b: POP
0000159c: PUSH2 0x15a4
0000159f: JUMP
000015a0: JUMPDEST
000015a1: DUP1
000015a2: SWAP4
000015a3: POP
000015a4: JUMPDEST
000015a5: POP
000015a6: POP
000015a7: POP
000015a8: SWAP11
000015a9: SWAP10
000015aa: POP
000015ab: POP
000015ac: POP
000015ad: POP
000015ae: POP
000015af: POP
000015b0: POP
000015b1: POP
000015b2: POP
000015b3: POP
000015b4: JUMP
000015b5: JUMPDEST
000015b6: PUSH1 0x00
000015b8: DUP3
000015b9: DUP3
000015ba: ADD
000015bb: PUSH2 0x15d2
000015be: DUP5
000015bf: DUP3
000015c0: LT
000015c1: DUP1
000015c2: ISZERO
000015c3: SWAP1
000015c4: PUSH2 0x15cd
000015c7: JUMPI
000015c8: POP
000015c9: DUP4
000015ca: DUP3
000015cb: LT
000015cc: ISZERO
000015cd: JUMPDEST
000015ce: PUSH2 0x18e9
000015d1: JUMP
000015d2: JUMPDEST
000015d3: DUP1
000015d4: SWAP2
000015d5: POP
000015d6: JUMPDEST
000015d7: POP
000015d8: SWAP3
000015d9: SWAP2
000015da: POP
000015db: POP
000015dc: JUMP
000015dd: JUMPDEST
000015de: PUSH1 0x00
000015e0: PUSH1 0x00
000015e2: PUSH1 0x00
000015e4: PUSH1 0x00
000015e6: PUSH8 0x0de0b6b3a7640000
000015ef: PUSH2 0x15fa
000015f2: DUP7
000015f3: PUSH1 0x03
000015f5: SLOAD
000015f6: PUSH2 0x18bd
000015f9: JUMP
000015fa: JUMPDEST
000015fb: DUP2
000015fc: ISZERO
000015fd: PUSH2 0x0000
00001600: JUMPI
00001601: DIV
00001602: SWAP4
00001603: POP
00001604: PUSH8 0x0de0b6b3a7640000
0000160d: PUSH2 0x1618
00001610: DUP7
00001611: PUSH1 0x04
00001613: SLOAD
00001614: PUSH2 0x18bd
00001617: JUMP
00001618: JUMPDEST
00001619: DUP2
0000161a: ISZERO
0000161b: PUSH2 0x0000
0000161e: JUMPI
0000161f: PUSH1 0x02
00001621: SLOAD
00001622: SWAP2
00001623: SWAP1
00001624: DIV
00001625: SWAP4
00001626: POP
00001627: PUSH1 0x00
00001629: SWAP3
0000162a: POP
0000162b: PUSH1 0x01
0000162d: PUSH1 0xa0
0000162f: PUSH1 0x02
00001631: EXP
00001632: SUB
00001633: AND
00001634: ISZERO
00001635: PUSH2 0x16eb
00001638: JUMPI
00001639: PUSH1 0x02
0000163b: SLOAD
0000163c: PUSH1 0x40
0000163e: DUP1
0000163f: MLOAD
00001640: PUSH1 0x00
00001642: PUSH1 0x20
00001644: SWAP2
00001645: DUP3
00001646: ADD
00001647: DUP2
00001648: SWAP1
00001649: MSTORE
0000164a: DUP3
0000164b: MLOAD
0000164c: PUSH32 0x1cbd051900000000000000000000000000000000000000000000000000000000
0000166d: DUP2
0000166e: MSTORE
0000166f: PUSH1 0x01
00001671: PUSH1 0xa0
00001673: PUSH1 0x02
00001675: EXP
00001676: SUB
00001677: DUP12
00001678: DUP2
00001679: AND
0000167a: PUSH1 0x04
0000167c: DUP4
0000167d: ADD
0000167e: MSTORE
0000167f: SWAP4
00001680: MLOAD
00001681: SWAP4
00001682: SWAP1
00001683: SWAP5
00001684: AND
00001685: SWAP4
00001686: PUSH4 0x1cbd0519
0000168b: SWAP4
0000168c: PUSH1 0x24
0000168e: DUP1
0000168f: DUP4
00001690: ADD
00001691: SWAP5
00001692: SWAP4
00001693: SWAP2
00001694: SWAP3
00001695: DUP4
00001696: SWAP1
00001697: SUB
00001698: ADD
00001699: SWAP1
0000169a: DUP3
0000169b: SWAP1
0000169c: DUP8
0000169d: DUP1
0000169e: EXTCODESIZE
0000169f: ISZERO
000016a0: PUSH2 0x0000
000016a3: JUMPI
000016a4: PUSH1 0x32
000016a6: GAS
000016a7: SUB
000016a8: CALL
000016a9: ISZERO
000016aa: PUSH2 0x0000
000016ad: JUMPI
000016ae: POP
000016af: POP
000016b0: PUSH1 0x40
000016b2: MLOAD
000016b3: MLOAD
000016b4: SWAP2
000016b5: POP
000016b6: POP
000016b7: PUSH1 0x01
000016b9: DUP2
000016ba: EQ
000016bb: ISZERO
000016bc: PUSH2 0x16de
000016bf: JUMPI
000016c0: PUSH8 0x0de0b6b3a7640000
000016c9: PUSH2 0x16d4
000016cc: DUP7
000016cd: PUSH1 0x05
000016cf: SLOAD
000016d0: PUSH2 0x18bd
000016d3: JUMP
000016d4: JUMPDEST
000016d5: DUP2
000016d6: ISZERO
000016d7: PUSH2 0x0000
000016da: JUMPI
000016db: DIV
000016dc: SWAP2
000016dd: POP
000016de: JUMPDEST
000016df: DUP1
000016e0: PUSH1 0x02
000016e2: EQ
000016e3: ISZERO
000016e4: PUSH2 0x16eb
000016e7: JUMPI
000016e8: DUP3
000016e9: SWAP2
000016ea: POP
000016eb: JUMPDEST
000016ec: JUMPDEST
000016ed: PUSH1 0x01
000016ef: PUSH1 0xa0
000016f1: PUSH1 0x02
000016f3: EXP
000016f4: SUB
000016f5: DUP1
000016f6: DUP12
000016f7: AND
000016f8: PUSH1 0x00
000016fa: SWAP1
000016fb: DUP2
000016fc: MSTORE
000016fd: PUSH1 0x06
000016ff: PUSH1 0x20
00001701: SWAP1
00001702: DUP2
00001703: MSTORE
00001704: PUSH1 0x40
00001706: DUP1
00001707: DUP4
00001708: KECCAK256
00001709: CALLER
0000170a: SWAP1
0000170b: SWAP5
0000170c: AND
0000170d: DUP4
0000170e: MSTORE
0000170f: SWAP3
00001710: SWAP1
00001711: MSTORE
00001712: KECCAK256
00001713: SLOAD
00001714: PUSH2 0x1726
00001717: SWAP1
00001718: PUSH2 0x1721
0000171b: DUP8
0000171c: DUP7
0000171d: PUSH2 0x15b5
00001720: JUMP
00001721: JUMPDEST
00001722: PUSH2 0x18a4
00001725: JUMP
00001726: JUMPDEST
00001727: PUSH1 0x01
00001729: PUSH1 0xa0
0000172b: PUSH1 0x02
0000172d: EXP
0000172e: SUB
0000172f: DUP12
00001730: DUP2
00001731: AND
00001732: PUSH1 0x00
00001734: SWAP1
00001735: DUP2
00001736: MSTORE
00001737: PUSH1 0x06
00001739: PUSH1 0x20
0000173b: SWAP1
0000173c: DUP2
0000173d: MSTORE
0000173e: PUSH1 0x40
00001740: DUP1
00001741: DUP4
00001742: KECCAK256
00001743: CALLER
00001744: DUP6
00001745: AND
00001746: DUP5
00001747: MSTORE
00001748: SWAP1
00001749: SWAP2
0000174a: MSTORE
0000174b: DUP1
0000174c: DUP3
0000174d: KECCAK256
0000174e: SWAP4
0000174f: SWAP1
00001750: SWAP4
00001751: SSTORE
00001752: SWAP1
00001753: DUP9
00001754: AND
00001755: DUP2
00001756: MSTORE
00001757: KECCAK256
00001758: SLOAD
00001759: PUSH2 0x1774
0000175c: SWAP1
0000175d: PUSH2 0x176f
00001760: PUSH2 0x1769
00001763: DUP9
00001764: DUP7
00001765: PUSH2 0x15b5
00001768: JUMP
00001769: JUMPDEST
0000176a: DUP8
0000176b: PUSH2 0x18a4
0000176e: JUMP
0000176f: JUMPDEST
00001770: PUSH2 0x15b5
00001773: JUMP
00001774: JUMPDEST
00001775: PUSH1 0x01
00001777: PUSH1 0xa0
00001779: PUSH1 0x02
0000177b: EXP
0000177c: SUB
0000177d: DUP12
0000177e: DUP2
0000177f: AND
00001780: PUSH1 0x00
00001782: SWAP1
00001783: DUP2
00001784: MSTORE
00001785: PUSH1 0x06
00001787: PUSH1 0x20
00001789: SWAP1
0000178a: DUP2
0000178b: MSTORE
0000178c: PUSH1 0x40
0000178e: DUP1
0000178f: DUP4
00001790: KECCAK256
00001791: DUP12
00001792: DUP6
00001793: AND
00001794: DUP5
00001795: MSTORE
00001796: SWAP1
00001797: SWAP2
00001798: MSTORE
00001799: DUP1
0000179a: DUP3
0000179b: KECCAK256
0000179c: SWAP4
0000179d: SWAP1
0000179e: SWAP4
0000179f: SSTORE
000017a0: PUSH1 0x01
000017a2: SLOAD
000017a3: SWAP1
000017a4: SWAP2
000017a5: AND
000017a6: DUP2
000017a7: MSTORE
000017a8: KECCAK256
000017a9: SLOAD
000017aa: PUSH2 0x17c5
000017ad: SWAP1
000017ae: PUSH2 0x176f
000017b1: PUSH2 0x17ba
000017b4: DUP8
000017b5: DUP8
000017b6: PUSH2 0x15b5
000017b9: JUMP
000017ba: JUMPDEST
000017bb: DUP6
000017bc: PUSH2 0x18a4
000017bf: JUMP
000017c0: JUMPDEST
000017c1: PUSH2 0x15b5
000017c4: JUMP
000017c5: JUMPDEST
000017c6: PUSH1 0x01
000017c8: PUSH1 0xa0
000017ca: PUSH1 0x02
000017cc: EXP
000017cd: SUB
000017ce: DUP1
000017cf: DUP13
000017d0: AND
000017d1: PUSH1 0x00
000017d3: SWAP1
000017d4: DUP2
000017d5: MSTORE
000017d6: PUSH1 0x06
000017d8: PUSH1 0x20
000017da: DUP2
000017db: DUP2
000017dc: MSTORE
000017dd: PUSH1 0x40
000017df: DUP1
000017e0: DUP5
000017e1: KECCAK256
000017e2: PUSH1 0x01
000017e4: SLOAD
000017e5: DUP7
000017e6: AND
000017e7: DUP6
000017e8: MSTORE
000017e9: DUP3
000017ea: MSTORE
000017eb: DUP1
000017ec: DUP5
000017ed: KECCAK256
000017ee: SWAP6
000017ef: SWAP1
000017f0: SWAP6
000017f1: SSTORE
000017f2: DUP13
000017f3: DUP5
000017f4: AND
000017f5: DUP4
000017f6: MSTORE
000017f7: SWAP1
000017f8: DUP2
000017f9: MSTORE
000017fa: DUP4
000017fb: DUP3
000017fc: KECCAK256
000017fd: SWAP3
000017fe: DUP11
000017ff: AND
00001800: DUP3
00001801: MSTORE
00001802: SWAP2
00001803: SWAP1
00001804: SWAP2
00001805: MSTORE
00001806: KECCAK256
00001807: SLOAD
00001808: PUSH2 0x1822
0000180b: SWAP1
0000180c: DUP11
0000180d: PUSH2 0x1816
00001810: DUP11
00001811: DUP10
00001812: PUSH2 0x18bd
00001815: JUMP
00001816: JUMPDEST
00001817: DUP2
00001818: ISZERO
00001819: PUSH2 0x0000
0000181c: JUMPI
0000181d: DIV
0000181e: PUSH2 0x18a4
00001821: JUMP
00001822: JUMPDEST
00001823: PUSH1 0x01
00001825: PUSH1 0xa0
00001827: PUSH1 0x02
00001829: EXP
0000182a: SUB
0000182b: DUP10
0000182c: DUP2
0000182d: AND
0000182e: PUSH1 0x00
00001830: SWAP1
00001831: DUP2
00001832: MSTORE
00001833: PUSH1 0x06
00001835: PUSH1 0x20
00001837: SWAP1
00001838: DUP2
00001839: MSTORE
0000183a: PUSH1 0x40
0000183c: DUP1
0000183d: DUP4
0000183e: KECCAK256
0000183f: DUP12
00001840: DUP6
00001841: AND
00001842: DUP5
00001843: MSTORE
00001844: SWAP1
00001845: SWAP2
00001846: MSTORE
00001847: DUP1
00001848: DUP3
00001849: KECCAK256
0000184a: SWAP4
0000184b: SWAP1
0000184c: SWAP4
0000184d: SSTORE
0000184e: CALLER
0000184f: SWAP1
00001850: SWAP2
00001851: AND
00001852: DUP2
00001853: MSTORE
00001854: KECCAK256
00001855: SLOAD
00001856: PUSH2 0x1870
00001859: SWAP1
0000185a: DUP11
0000185b: PUSH2 0x1864
0000185e: DUP11
0000185f: DUP10
00001860: PUSH2 0x18bd
00001863: JUMP
00001864: JUMPDEST
00001865: DUP2
00001866: ISZERO
00001867: PUSH2 0x0000
0000186a: JUMPI
0000186b: DIV
0000186c: PUSH2 0x15b5
0000186f: JUMP
00001870: JUMPDEST
00001871: PUSH1 0x01
00001873: PUSH1 0xa0
00001875: PUSH1 0x02
00001877: EXP
00001878: SUB
00001879: DUP1
0000187a: DUP11
0000187b: AND
0000187c: PUSH1 0x00
0000187e: SWAP1
0000187f: DUP2
00001880: MSTORE
00001881: PUSH1 0x06
00001883: PUSH1 0x20
00001885: SWAP1
00001886: DUP2
00001887: MSTORE
00001888: PUSH1 0x40
0000188a: DUP1
0000188b: DUP4
0000188c: KECCAK256
0000188d: CALLER
0000188e: SWAP1
0000188f: SWAP5
00001890: AND
00001891: DUP4
00001892: MSTORE
00001893: SWAP3
00001894: SWAP1
00001895: MSTORE
00001896: KECCAK256
00001897: SSTORE
00001898: JUMPDEST
00001899: POP
0000189a: POP
0000189b: POP
0000189c: POP
0000189d: POP
0000189e: POP
0000189f: POP
000018a0: POP
000018a1: POP
000018a2: POP
000018a3: JUMP
000018a4: JUMPDEST
000018a5: PUSH1 0x00
000018a7: PUSH2 0x18b2
000018aa: DUP4
000018ab: DUP4
000018ac: GT
000018ad: ISZERO
000018ae: PUSH2 0x18e9
000018b1: JUMP
000018b2: JUMPDEST
000018b3: POP
000018b4: DUP1
000018b5: DUP3
000018b6: SUB
000018b7: JUMPDEST
000018b8: SWAP3
000018b9: SWAP2
000018ba: POP
000018bb: POP
000018bc: JUMP
000018bd: JUMPDEST
000018be: PUSH1 0x00
000018c0: DUP3
000018c1: DUP3
000018c2: MUL
000018c3: PUSH2 0x15d2
000018c6: DUP5
000018c7: ISZERO
000018c8: DUP1
000018c9: PUSH2 0x15cd
000018cc: JUMPI
000018cd: POP
000018ce: DUP4
000018cf: DUP6
000018d0: DUP4
000018d1: DUP2
000018d2: ISZERO
000018d3: PUSH2 0x0000
000018d6: JUMPI
000018d7: DIV
000018d8: EQ
000018d9: JUMPDEST
000018da: PUSH2 0x18e9
000018dd: JUMP
000018de: JUMPDEST
000018df: DUP1
000018e0: SWAP2
000018e1: POP
000018e2: JUMPDEST
000018e3: POP
000018e4: SWAP3
000018e5: SWAP2
000018e6: POP
000018e7: POP
000018e8: JUMP
000018e9: JUMPDEST
000018ea: DUP1
000018eb: ISZERO
000018ec: ISZERO
000018ed: PUSH2 0x0c8f
000018f0: JUMPI
000018f1: PUSH2 0x0000
000018f4: JUMP
000018f5: JUMPDEST
000018f6: JUMPDEST
000018f7: POP
000018f8: JUMP
000018f9: STOP
000018fa: SLOAD
000018fb: UNKNOWN(0xCD)
000018fc: UNKNOWN(0xD3)
000018fd: PUSH10 0xe4e8a8515e52ca72ec81
00001908: PUSH13 0x2101831ad1f18bf44102ed1714
00001916: MSIZE
00001917: UNKNOWN(0xC9)
00001918: UNKNOWN(0xB4)
00001919: UNKNOWN(0xF8)
0000191a: LOG1
0000191b: PUSH6 0x627a7a723058
00001922: KECCAK256
00001923: PUSH9 0xb8d75990c02744ad9b
0000192d: ADD
0000192e: GASLIMIT
0000192f: LT
00001930: ADDRESS
00001931: CALL
00001932: LOG0
00001933: UNKNOWN(0xAC)
00001934: STOP
00001935: UNKNOWN(0x4F)
00001936: UNKNOWN(0xFB)
00001937: CREATE
00001938: UNKNOWN(0xF6)
00001939: PUSH16

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector ETH value transfer possible 55 yes yes
view
trace_id: 0x8aec2b79509711793d6af8c105c9f7f3f1ff17770a6c5140528284fbc12edf56
call_targets: 0x0000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000002, 0xbf29685856fae1e228878dfb35b280c0adcc3b05
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x8aec2b79509711793d6af8c105c9f7f3f1ff17770a6c5140528284fbc12edf56",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000001",
        "0x0000000000000000000000000000000000000002",
        "0xbf29685856fae1e228878dfb35b280c0adcc3b05"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x0a19b14a",
            "selector": "0x0a19b14a",
            "calldata_variants": [
                "0x0a19b14a",
                "0x0a19b14a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0b927666",
            "selector": "0x0b927666",
            "calldata_variants": [
                "0x0b927666",
                "0x0b9276660000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x19774d43",
            "selector": "0x19774d43",
            "calldata_variants": [
                "0x19774d43",
                "0x19774d430000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x278b8c0e",
            "selector": "0x278b8c0e",
            "calldata_variants": [
                "0x278b8c0e",
                "0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2e1a7d4d",
            "selector": "0x2e1a7d4d",
            "calldata_variants": [
                "0x2e1a7d4d",
                "0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x338b5dea",
            "selector": "0x338b5dea",
            "calldata_variants": [
                "0x338b5dea",
                "0x338b5dea0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x46be96c3",
            "selector": "0x46be96c3",
            "calldata_variants": [
                "0x46be96c3",
                "0x46be96c30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x508493bc",
            "selector": "0x508493bc",
            "calldata_variants": [
                "0x508493bc",
                "0x508493bc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1576,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1781,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2221,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 13,
    "guards_detected": []
}
high other detector Untrusted CALL target/value reachable 60 yes yes
view
trace_id: 0x8aec2b79509711793d6af8c105c9f7f3f1ff17770a6c5140528284fbc12edf56
call_targets: 0x0000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000002, 0xbf29685856fae1e228878dfb35b280c0adcc3b05
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x8aec2b79509711793d6af8c105c9f7f3f1ff17770a6c5140528284fbc12edf56",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000001",
        "0x0000000000000000000000000000000000000002",
        "0xbf29685856fae1e228878dfb35b280c0adcc3b05"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x0a19b14a",
            "selector": "0x0a19b14a",
            "calldata_variants": [
                "0x0a19b14a",
                "0x0a19b14a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0b927666",
            "selector": "0x0b927666",
            "calldata_variants": [
                "0x0b927666",
                "0x0b9276660000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x19774d43",
            "selector": "0x19774d43",
            "calldata_variants": [
                "0x19774d43",
                "0x19774d430000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x278b8c0e",
            "selector": "0x278b8c0e",
            "calldata_variants": [
                "0x278b8c0e",
                "0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2e1a7d4d",
            "selector": "0x2e1a7d4d",
            "calldata_variants": [
                "0x2e1a7d4d",
                "0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x338b5dea",
            "selector": "0x338b5dea",
            "calldata_variants": [
                "0x338b5dea",
                "0x338b5dea0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x46be96c3",
            "selector": "0x46be96c3",
            "calldata_variants": [
                "0x46be96c3",
                "0x46be96c30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x508493bc",
            "selector": "0x508493bc",
            "calldata_variants": [
                "0x508493bc",
                "0x508493bc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1576,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1781,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2221,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 13,
    "guards_detected": [],
    "untrusted_call_count": 13
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x609027fd880e4231b5d2cabfbd317085e7c07ad345e1ab044ca859ceffaeef37
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x609027fd880e4231b5d2cabfbd317085e7c07ad345e1ab044ca859ceffaeef37",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x0a19b14a",
            "selector": "0x0a19b14a",
            "calldata_variants": [
                "0x0a19b14a",
                "0x0a19b14a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0b927666",
            "selector": "0x0b927666",
            "calldata_variants": [
                "0x0b927666",
                "0x0b9276660000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x19774d43",
            "selector": "0x19774d43",
            "calldata_variants": [
                "0x19774d43",
                "0x19774d430000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x278b8c0e",
            "selector": "0x278b8c0e",
            "calldata_variants": [
                "0x278b8c0e",
                "0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2e1a7d4d",
            "selector": "0x2e1a7d4d",
            "calldata_variants": [
                "0x2e1a7d4d",
                "0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x338b5dea",
            "selector": "0x338b5dea",
            "calldata_variants": [
                "0x338b5dea",
                "0x338b5dea0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x46be96c3",
            "selector": "0x46be96c3",
            "calldata_variants": [
                "0x46be96c3",
                "0x46be96c30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x508493bc",
            "selector": "0x508493bc",
            "calldata_variants": [
                "0x508493bc",
                "0x508493bc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 1,
    "create2_count": 0
}
medium reentrancy codex Reentrancy via AccountLevels allows order overfill before orderFills update 75 no
view
evidence_json
{
    "evidence": "trade() checks orderFills then calls tradeBalances, but only increments orderFills after tradeBalances returns; tradeBalances makes an external call to accountLevelsAddr.accountLevel(user).",
    "locations": [
        "contracts/Contract.sol:252",
        "contracts/Contract.sol:260",
        "contracts/Contract.sol:261",
        "contracts/Contract.sol:265",
        "contracts/Contract.sol:269"
    ],
    "recommendation": "Avoid external calls before updating order state: update orderFills before tradeBalances or add a reentrancy guard around trade/tradeBalances. Alternatively, restrict accountLevelsAddr to a trusted, non-reentrant contract and consider using a pull model or staticcall semantics when available.",
    "exploit_scenario": "If accountLevelsAddr points to a malicious or compromised contract, its accountLevel() can reenter DecentrEx.trade() before the outer call updates orderFills. Because each trade checks orderFills before it is incremented, multiple reentrant fills can pass the limit check and push orderFills above amountGet, forcing the maker to trade more than intended at the quoted price."
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}
low access_control codex AccountLevelsTest allows anyone to set fee tier if used in production 65 no
view
evidence_json
{
    "evidence": "AccountLevelsTest.setAccountLevel has no access control, and DecentrEx allows admin to set accountLevelsAddr to any contract.",
    "locations": [
        "contracts/Contract.sol:139",
        "contracts/Contract.sol:142",
        "contracts/Contract.sol:186",
        "contracts/Contract.sol:188"
    ],
    "recommendation": "Do not deploy or point to AccountLevelsTest in production; restrict setAccountLevel to an authorized role (e.g., admin) in any production AccountLevels implementation.",
    "exploit_scenario": "If the admin configures accountLevelsAddr to AccountLevelsTest (or a similarly unrestricted contract), any user can call setAccountLevel() to assign themselves level 1 or 2, receiving rebates or full taker-fee refunds and effectively bypassing fees, draining feeAccount revenue."
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 13
}