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

Analysis Run

58a5a56b-8358-4516-9f42-50181b41b98b

failed
Chain ID
1
Address
Block Number
Created
Sat, Jan 3, 2026 1:39 AM
Review Summary

What survived the funnel

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

Confirmed
2
Validated
2
Source
Verified
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
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
31420 report.consolidate complete 1 / 1 3 months ago
77146 artifact.fetch complete 1 / 3 1 week ago
77147 tool.cast_disasm complete 1 / 3 1 week ago
77148 analysis.bundle complete 1 / 3 1 week ago
77149 capability.graph complete 1 / 3 1 week ago
77150 detector.run complete 1 / 3 1 week ago
77151 validation.fork complete 1 / 3 1 week ago
113564 tool.slither failed 2 / 2 1 week ago

Artifact

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

Slither

tool.slither
Status
failed solc version 0.4.2 is too old for supported toolchain
Attempts
2 / 2
Findings
0
Solc
View stderr
Traceback (most recent call last):
  File "/var/www/tripwire/worker/worker.py", line 198, in main
    payload = dispatch_job(job_type, job_id, job_meta, run_data, config, laravel_client)
  File "/var/www/tripwire/worker/worker.py", line 114, in dispatch_job
    return slither_run.run(job_id, job_meta, run_data, config, log, laravel_client)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/worker/jobs/slither_run.py", line 1056, in run
    solc_path, solc_meta = _prepare_solc(chosen_version, workspace)
                           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/worker/jobs/slither_run.py", line 190, in _prepare_solc
    raise RuntimeError(f"solc version {default_version} is too old for supported toolchain")
RuntimeError: solc version 0.4.2 is too old for supported toolchain

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
Found an exploitable fake‑token deposit path that lets an attacker trade phantom balances for real assets and withdraw them.
View stderr
[codex:10712] OpenAI Codex v0.77.0 (research preview)
[codex:10712] --------
[codex:10712] workdir: /tmp/codex-multi-54kwm9cj
[codex:10712] model: gpt-5.2-codex
[codex:10712] provider: openai
[codex:10712] approval: never
[codex:10712] sandbox: read-only
[codex:10712] reasoning effort: xhigh
[codex:10712] reasoning summaries: auto
[codex:10712] session id: 019b817f-058c-7a02-8b2e-60a2379c7434
[codex:10712] --------
[codex:10712] user
[codex:10712] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:10712] 
[codex:10712] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:10712] 
[codex:10712] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:10712] - Gas inefficiency, code quality, naming, or best practices
[codex:10712] - Theoretical vulnerabilities without a clear extraction path
[codex:10712] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:10712] - Front-running unless it enables theft beyond MEV
[codex:10712] - DoS, griefing, or issues that don't result in attacker profit
[codex:10712] - Missing events, view function issues, or informational findings
[codex:10712] 
[codex:10712] HIGH-VALUE PATTERNS TO HUNT:
[codex:10712] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:10712] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:10712] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:10712] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:10712] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:10712] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:10712] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:10712] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:10712] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:10712] 
[codex:10712] For each finding, you MUST provide:
[codex:10712] 1. Exact file and line numbers of vulnerable code
[codex:10712] 2. Step-by-step exploit transaction sequence
[codex:10712] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:10712] 
[codex:10712] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:10712] 
[codex:10712] Output MUST be valid JSON matching the provided schema.
[codex:10712] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:10712] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:10712] mcp startup: no servers
[codex:10712] 
[codex:10712] thinking
[codex:10712] **Preparing to review instructions and audit bundle**
[codex:10712] exec
[codex:10712] /bin/bash -lc ls in /tmp/codex-multi-54kwm9cj succeeded in 5ms:
[codex:10712] AUDIT_BUNDLE.txt
[codex:10712] codex-output-schema.json
[codex:10712] contracts
[codex:10712] exec
[codex:10712] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-54kwm9cj succeeded in 7ms:
[codex:10712] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:10712] 
[codex:10712] ================================================================================
[codex:10712] FILE: contracts/Contract.sol
[codex:10712] ================================================================================
[codex:10712] pragma solidity ^0.4.2;
[codex:10712] 
[codex:10712] contract SafeMath {
[codex:10712]   function safeMul(uint a, uint b) internal returns (uint) {
[codex:10712]     uint c = a * b;
[codex:10712]     assert(a == 0 || c / a == b);
[codex:10712]     return c;
[codex:10712]   }
[codex:10712] 
[codex:10712]   function safeSub(uint a, uint b) internal returns (uint) {
[codex:10712]     assert(b <= a);
[codex:10712]     return a - b;
[codex:10712]   }
[codex:10712] 
[codex:10712]   function safeAdd(uint a, uint b) internal returns (uint) {
[codex:10712] exec
[codex:10712] /bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-54kwm9cj succeeded in 5ms:
[codex:10712] 
[codex:10712]   function changeFeeMake(uint feeMake_) {
[codex:10712]     if (msg.sender != admin) throw;
[codex:10712]     if (feeMake_ > feeMake) throw;
[codex:10712]     feeMake = feeMake_;
[codex:10712]   }
[codex:10712] 
[codex:10712]   function changeFeeTake(uint feeTake_) {
[codex:10712]     if (msg.sender != admin) throw;
[codex:10712]     if (feeTake_ > feeTake || feeTake_ < feeRebate) throw;
[codex:10712]     feeTake = feeTake_;
[codex:10712]   }
[codex:10712] 
[codex:10712]   function changeFeeRebate(uint feeRebate_) {
[codex:10712]     if (msg.sender != admin) throw;
[codex:10712]     if (feeRebate_ < feeRebate || feeRebate_ > feeTake) throw;
[codex:10712]     feeRebate = feeRebate_;
[codex:10712]   }
[codex:10712] 
[codex:10712]   function deposit() payable {
[codex:10712] 
[codex:10712] thinking
[codex:10712] **Preparing to add line numbers**
[codex:10712] exec
[codex:10712] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1,240p'" in /tmp/codex-multi-54kwm9cj succeeded in 5ms:
[codex:10712]      1	pragma solidity ^0.4.2;
[codex:10712]      2	
[codex:10712]      3	contract SafeMath {
[codex:10712]      4	  function safeMul(uint a, uint b) internal returns (uint) {
[codex:10712]      5	    uint c = a * b;
[codex:10712]      6	    assert(a == 0 || c / a == b);
[codex:10712]      7	    return c;
[codex:10712]      8	  }
[codex:10712]      9	
[codex:10712]     10	  function safeSub(uint a, uint b) internal returns (uint) {
[codex:10712]     11	    assert(b <= a);
[codex:10712]     12	    return a - b;
[codex:10712]     13	  }
[codex:10712]     14	
[codex:10712]     15	  function safeAdd(uint a, uint b) internal returns (uint) {
[codex:10712]     16	    uint c = a + b;
[codex:10712]     17	    assert(c>=a && c>=b);
[codex:10712]     18	    return c;
[codex:10712]     19	  }
[codex:10712]     20	
[codex:10712] exec
[codex:10712] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '240,480p'" in /tmp/codex-multi-54kwm9cj succeeded in 6ms:
[codex:10712]    240	    Withdraw(token, msg.sender, amount, tokens[token][msg.sender]);
[codex:10712]    241	  }
[codex:10712]    242	
[codex:10712]    243	  function balanceOf(address token, address user) constant returns (uint) {
[codex:10712]    244	    return tokens[token][user];
[codex:10712]    245	  }
[codex:10712]    246	
[codex:10712]    247	  function order(address tokenGet, uint amountGet, address tokenGive, uint amountGive, uint expires, uint nonce) {
[codex:10712]    248	    if (msg.value>0) throw;
[codex:10712]    249	    bytes32 hash = sha256(this, tokenGet, amountGet, tokenGive, amountGive, expires, nonce);
[codex:10712]    250	    orders[msg.sender][hash] = true;
[codex:10712]    251	    Order(tokenGet, amountGet, tokenGive, amountGive, expires, nonce, msg.sender);
[codex:10712]    252	  }
[codex:10712]    253	
[codex:10712]    254	  function trade(address tokenGet, uint amountGet, address tokenGive, uint amountGive, uint expires, uint nonce, address user, uint8 v, bytes32 r, bytes32 s, uint amount) {
[codex:10712]    255	    //amount is in amountGet terms
[codex:10712]    256	    if (msg.value>0) throw;
[codex:10712]    257	    bytes32 hash = sha256(this, tokenGet, amountGet, tokenGive, amountGive, expires, nonce);
[codex:10712]    258	    if (!(
[codex:10712]    259	      (orders[user][hash] || ecrecover(hash,v,r,s) == user) &&
[codex:10712] 
[codex:10712] 
[codex:10712] 
[codex:10712] 
[codex:10712] thinking
[codex:10712] **Analyzing EtherDelta for profit exploits**
[codex:10712] thinking
[codex:10712] **Evaluating fee rebate and reentrancy implications**
[codex:10712] 
[codex:10712] I’m exploring how lack of access control in the AccountLevelsTest contract could enable attackers to set high account levels and gain fee rebates, effectively profiting via self-trading. I’m also examining subtle reentrancy scenarios in withdraw and deposit functions that might let an attacker cycle funds to withdraw more than their balance, considering internal accounting and token callbacks.
[codex:10712] thinking
[codex:10712] **Analyzing token deposit and trade vulnerabilities**
[codex:10712] 
[codex:10712] I’m inspecting how the contract’s depositToken trusts transferFrom’s return value without verifying actual token transfer, letting attackers credit themselves fake balances with malicious tokens. This can lead to profit by trading those fake balances for real assets from victims, exposing a concrete exploit path involving malicious tokens and unsuspecting traders.
[codex:10712] thinking
[codex:10712] **Preparing detailed vulnerability report**
[codex:10712] 
[codex:10712] I'm finalizing the summary and precise code locations to produce a clear JSON report describing the fake token deposit exploit and its profit potential within EtherDelta’s trading system.
[codex:10712] codex
[codex:10712] {"no_findings":false,"summary":"Found an exploitable fake‑token deposit path that lets an attacker trade phantom balances for real assets and withdraw them.","findings":[{"severity":"high","category":"other","title":"Phantom ERC20 deposits enable trading fake balances for real assets","exploit_scenario":"1) Attacker deploys a malicious ERC20 that returns `true` for `transferFrom`/`transfer` without moving balances. 2) Attacker calls `depositToken(malToken, X)`; EtherDelta credits `tokens[malToken][attacker] += X` even though no tokens arrived. 3) A victim places an order to buy `malToken` with ETH/valuable tokens. 4) Attacker fills the order via `trade`, which only moves internal balances; victim’s real asset balance decreases while attacker’s real asset balance increases. 5) Attacker withdraws ETH/real tokens via `withdraw`/`withdrawToken`. Victim withdrawing `malToken` receives nothing.","recommendation":"Require proof of actual token receipt by checking contract token balance before/after `transferFrom` and crediting only the delta, or enforce a strict token whitelist of known‑good ERC20s.","evidence":"`depositToken` trusts the token’s return value and credits the requested amount without verifying actual token receipt; trades only move internal balances, so fake deposits can be swapped for real assets.","locations":["contracts/Contract.sol:227","contracts/Contract.sol:230","contracts/Contract.sol:231","contracts/Contract.sol:254","contracts/Contract.sol:268","contracts/Contract.sol:277","contracts/Contract.sol:281"]}]}
[codex:10712] tokens used
[codex:10712] 24,851
[codex:10712] {"no_findings":false,"summary":"Found an exploitable fake‑token deposit path that lets an attacker trade phantom balances for real assets and withdraw them.","findings":[{"severity":"high","category":"other","title":"Phantom ERC20 deposits enable trading fake balances for real assets","exploit_scenario":"1) Attacker deploys a malicious ERC20 that returns `true` for `transferFrom`/`transfer` without moving balances. 2) Attacker calls `depositToken(malToken, X)`; EtherDelta credits `tokens[malToken][attacker] += X` even though no tokens arrived. 3) A victim places an order to buy `malToken` with ETH/valuable tokens. 4) Attacker fills the order via `trade`, which only moves internal balances; victim’s real asset balance decreases while attacker’s real asset balance increases. 5) Attacker withdraws ETH/real tokens via `withdraw`/`withdrawToken`. Victim withdrawing `malToken` receives nothing.","recommendation":"Require proof of actual token receipt by checking contract token balance before/after `transferFrom` and crediting only the delta, or enforce a strict token whitelist of known‑good ERC20s.","evidence":"`depositToken` trusts the token’s return value and credits the requested amount without verifying actual token receipt; trades only move internal balances, so fake deposits can be swapped for real assets.","locations":["contracts/Contract.sol:227","contracts/Contract.sol:230","contracts/Contract.sol:231","contracts/Contract.sol:254","contracts/Contract.sol:268","contracts/Contract.sol:277","contracts/Contract.sol:281"]}]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-03T01:39:02.043276+00:00",
        "returncode": 0
    },
    "summary": "Found an exploitable fake\u2011token deposit path that lets an attacker trade phantom balances for real assets and withdraw them.",
    "raw_final": {
        "summary": "Found an exploitable fake\u2011token deposit path that lets an attacker trade phantom balances for real assets and withdraw them.",
        "findings": [
            {
                "title": "Phantom ERC20 deposits enable trading fake balances for real assets",
                "category": "other",
                "evidence": "`depositToken` trusts the token\u2019s return value and credits the requested amount without verifying actual token receipt; trades only move internal balances, so fake deposits can be swapped for real assets.",
                "severity": "high",
                "locations": [
                    "contracts/Contract.sol:227",
                    "contracts/Contract.sol:230",
                    "contracts/Contract.sol:231",
                    "contracts/Contract.sol:254",
                    "contracts/Contract.sol:268",
                    "contracts/Contract.sol:277",
                    "contracts/Contract.sol:281"
                ],
                "recommendation": "Require proof of actual token receipt by checking contract token balance before/after `transferFrom` and crediting only the delta, or enforce a strict token whitelist of known\u2011good ERC20s.",
                "exploit_scenario": "1) Attacker deploys a malicious ERC20 that returns `true` for `transferFrom`/`transfer` without moving balances. 2) Attacker calls `depositToken(malToken, X)`; EtherDelta credits `tokens[malToken][attacker] += X` even though no tokens arrived. 3) A victim places an order to buy `malToken` with ETH/valuable tokens. 4) Attacker fills the order via `trade`, which only moves internal balances; victim\u2019s real asset balance decreases while attacker\u2019s real asset balance increases. 5) Attacker withdraws ETH/real tokens via `withdraw`/`withdrawToken`. Victim withdrawing `malToken` receives nothing."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
12
EXT*/BALANCE
3
Total opcodes
3959
Flags
call_family_heavy
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x0132
0000000a: JUMPI
0000000b: PUSH1 0xe0
0000000d: PUSH1 0x02
0000000f: EXP
00000010: PUSH1 0x00
00000012: CALLDATALOAD
00000013: DIV
00000014: PUSH4 0x0a19b14a
00000019: DUP2
0000001a: EQ
0000001b: PUSH2 0x013f
0000001e: JUMPI
0000001f: DUP1
00000020: PUSH4 0x0b927666
00000025: EQ
00000026: PUSH2 0x017b
00000029: JUMPI
0000002a: DUP1
0000002b: PUSH4 0x19774d43
00000030: EQ
00000031: PUSH2 0x01a5
00000034: JUMPI
00000035: DUP1
00000036: PUSH4 0x278b8c0e
0000003b: EQ
0000003c: PUSH2 0x01cf
0000003f: JUMPI
00000040: DUP1
00000041: PUSH4 0x2e1a7d4d
00000046: EQ
00000047: PUSH2 0x0203
0000004a: JUMPI
0000004b: DUP1
0000004c: PUSH4 0x338b5dea
00000051: EQ
00000052: PUSH2 0x021c
00000055: JUMPI
00000056: DUP1
00000057: PUSH4 0x46be96c3
0000005c: EQ
0000005d: PUSH2 0x024c
00000060: JUMPI
00000061: DUP1
00000062: PUSH4 0x508493bc
00000067: EQ
00000068: PUSH2 0x031e
0000006b: JUMPI
0000006c: DUP1
0000006d: PUSH4 0x54d03b5c
00000072: EQ
00000073: PUSH2 0x0348
00000076: JUMPI
00000077: DUP1
00000078: PUSH4 0x57786394
0000007d: EQ
0000007e: PUSH2 0x036f
00000081: JUMPI
00000082: DUP1
00000083: PUSH4 0x5e1d7ae4
00000088: EQ
00000089: PUSH2 0x037d
0000008c: JUMPI
0000008d: DUP1
0000008e: PUSH4 0x65e17c9d
00000093: EQ
00000094: PUSH2 0x03a4
00000097: JUMPI
00000098: DUP1
00000099: PUSH4 0x6c86888b
0000009e: EQ
0000009f: PUSH2 0x03bb
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0x71ffcb16
000000a9: EQ
000000aa: PUSH2 0x0431
000000ad: JUMPI
000000ae: DUP1
000000af: PUSH4 0x731c2f81
000000b4: EQ
000000b5: PUSH2 0x0458
000000b8: JUMPI
000000b9: DUP1
000000ba: PUSH4 0x8823a9c0
000000bf: EQ
000000c0: PUSH2 0x0466
000000c3: JUMPI
000000c4: DUP1
000000c5: PUSH4 0x8f283970
000000ca: EQ
000000cb: PUSH2 0x048d
000000ce: JUMPI
000000cf: DUP1
000000d0: PUSH4 0x9e281a98
000000d5: EQ
000000d6: PUSH2 0x04b4
000000d9: JUMPI
000000da: DUP1
000000db: PUSH4 0xbb5f4629
000000e0: EQ
000000e1: PUSH2 0x04e4
000000e4: JUMPI
000000e5: DUP1
000000e6: PUSH4 0xc281309e
000000eb: EQ
000000ec: PUSH2 0x0511
000000ef: JUMPI
000000f0: DUP1
000000f1: PUSH4 0xd0e30db0
000000f6: EQ
000000f7: PUSH2 0x051f
000000fa: JUMPI
000000fb: DUP1
000000fc: PUSH4 0xe8f6bc2e
00000101: EQ
00000102: PUSH2 0x056b
00000105: JUMPI
00000106: DUP1
00000107: PUSH4 0xf3412942
0000010c: EQ
0000010d: PUSH2 0x0592
00000110: JUMPI
00000111: DUP1
00000112: PUSH4 0xf7888aec
00000117: EQ
00000118: PUSH2 0x05a9
0000011b: JUMPI
0000011c: DUP1
0000011d: PUSH4 0xf851a440
00000122: EQ
00000123: PUSH2 0x05e4
00000126: JUMPI
00000127: DUP1
00000128: PUSH4 0xfb6e155f
0000012d: EQ
0000012e: PUSH2 0x05fb
00000131: JUMPI
00000132: JUMPDEST
00000133: CALLVALUE
00000134: PUSH2 0x0002
00000137: JUMPI
00000138: PUSH2 0x077f
0000013b: PUSH2 0x0002
0000013e: JUMP
0000013f: JUMPDEST
00000140: CALLVALUE
00000141: PUSH2 0x0002
00000144: JUMPI
00000145: PUSH2 0x077f
00000148: PUSH1 0x04
0000014a: CALLDATALOAD
0000014b: PUSH1 0x24
0000014d: CALLDATALOAD
0000014e: PUSH1 0x44
00000150: CALLDATALOAD
00000151: PUSH1 0x64
00000153: CALLDATALOAD
00000154: PUSH1 0x84
00000156: CALLDATALOAD
00000157: PUSH1 0xa4
00000159: CALLDATALOAD
0000015a: PUSH1 0xc4
0000015c: CALLDATALOAD
0000015d: PUSH1 0xe4
0000015f: CALLDATALOAD
00000160: PUSH2 0x0104
00000163: CALLDATALOAD
00000164: PUSH2 0x0124
00000167: CALLDATALOAD
00000168: PUSH2 0x0144
0000016b: CALLDATALOAD
0000016c: PUSH1 0x00
0000016e: PUSH1 0x00
00000170: CALLVALUE
00000171: GT
00000172: ISZERO
00000173: PUSH2 0x07c4
00000176: JUMPI
00000177: PUSH2 0x0002
0000017a: JUMP
0000017b: JUMPDEST
0000017c: CALLVALUE
0000017d: PUSH2 0x0002
00000180: JUMPI
00000181: PUSH2 0x077f
00000184: PUSH1 0x04
00000186: CALLDATALOAD
00000187: PUSH1 0x24
00000189: CALLDATALOAD
0000018a: PUSH1 0x44
0000018c: CALLDATALOAD
0000018d: PUSH1 0x64
0000018f: CALLDATALOAD
00000190: PUSH1 0x84
00000192: CALLDATALOAD
00000193: PUSH1 0xa4
00000195: CALLDATALOAD
00000196: PUSH1 0x00
00000198: PUSH1 0x00
0000019a: CALLVALUE
0000019b: GT
0000019c: ISZERO
0000019d: PUSH2 0x0a75
000001a0: JUMPI
000001a1: PUSH2 0x0002
000001a4: JUMP
000001a5: JUMPDEST
000001a6: CALLVALUE
000001a7: PUSH2 0x0002
000001aa: JUMPI
000001ab: PUSH1 0x08
000001ad: PUSH1 0x20
000001af: SWAP1
000001b0: DUP2
000001b1: MSTORE
000001b2: PUSH1 0x04
000001b4: CALLDATALOAD
000001b5: PUSH1 0x00
000001b7: SWAP1
000001b8: DUP2
000001b9: MSTORE
000001ba: PUSH1 0x40
000001bc: DUP1
000001bd: DUP3
000001be: KECCAK256
000001bf: SWAP1
000001c0: SWAP3
000001c1: MSTORE
000001c2: PUSH1 0x24
000001c4: CALLDATALOAD
000001c5: DUP2
000001c6: MSTORE
000001c7: KECCAK256
000001c8: SLOAD
000001c9: PUSH2 0x0781
000001cc: SWAP1
000001cd: DUP2
000001ce: JUMP
000001cf: JUMPDEST
000001d0: CALLVALUE
000001d1: PUSH2 0x0002
000001d4: JUMPI
000001d5: PUSH2 0x077f
000001d8: PUSH1 0x04
000001da: CALLDATALOAD
000001db: PUSH1 0x24
000001dd: CALLDATALOAD
000001de: PUSH1 0x44
000001e0: CALLDATALOAD
000001e1: PUSH1 0x64
000001e3: CALLDATALOAD
000001e4: PUSH1 0x84
000001e6: CALLDATALOAD
000001e7: PUSH1 0xa4
000001e9: CALLDATALOAD
000001ea: PUSH1 0xc4
000001ec: CALLDATALOAD
000001ed: PUSH1 0xe4
000001ef: CALLDATALOAD
000001f0: PUSH2 0x0104
000001f3: CALLDATALOAD
000001f4: PUSH1 0x00
000001f6: PUSH1 0x00
000001f8: CALLVALUE
000001f9: GT
000001fa: ISZERO
000001fb: PUSH2 0x0b82
000001fe: JUMPI
000001ff: PUSH2 0x0002
00000202: JUMP
00000203: JUMPDEST
00000204: CALLVALUE
00000205: PUSH2 0x0002
00000208: JUMPI
00000209: PUSH2 0x077f
0000020c: PUSH1 0x04
0000020e: CALLDATALOAD
0000020f: PUSH1 0x00
00000211: CALLVALUE
00000212: GT
00000213: ISZERO
00000214: PUSH2 0x0dd7
00000217: JUMPI
00000218: PUSH2 0x0002
0000021b: JUMP
0000021c: JUMPDEST
0000021d: CALLVALUE
0000021e: PUSH2 0x0002
00000221: JUMPI
00000222: PUSH2 0x077f
00000225: PUSH1 0x04
00000227: CALLDATALOAD
00000228: PUSH1 0x24
0000022a: CALLDATALOAD
0000022b: PUSH1 0x00
0000022d: CALLVALUE
0000022e: GT
0000022f: DUP1
00000230: PUSH2 0x0242
00000233: JUMPI
00000234: POP
00000235: DUP2
00000236: PUSH1 0x01
00000238: PUSH1 0xa0
0000023a: PUSH1 0x02
0000023c: EXP
0000023d: SUB
0000023e: AND
0000023f: PUSH1 0x00
00000241: EQ
00000242: JUMPDEST
00000243: ISZERO
00000244: PUSH2 0x0e97
00000247: JUMPI
00000248: PUSH2 0x0002
0000024b: JUMP
0000024c: JUMPDEST
0000024d: CALLVALUE
0000024e: PUSH2 0x0002
00000251: JUMPI
00000252: PUSH2 0x0781
00000255: PUSH1 0x04
00000257: CALLDATALOAD
00000258: PUSH1 0x24
0000025a: CALLDATALOAD
0000025b: PUSH1 0x44
0000025d: CALLDATALOAD
0000025e: PUSH1 0x64
00000260: CALLDATALOAD
00000261: PUSH1 0x84
00000263: CALLDATALOAD
00000264: PUSH1 0xa4
00000266: CALLDATALOAD
00000267: PUSH1 0xc4
00000269: CALLDATALOAD
0000026a: PUSH1 0xe4
0000026c: CALLDATALOAD
0000026d: PUSH2 0x0104
00000270: CALLDATALOAD
00000271: PUSH2 0x0124
00000274: CALLDATALOAD
00000275: PUSH1 0x40
00000277: DUP1
00000278: MLOAD
00000279: PUSH1 0x00
0000027b: PUSH1 0x20
0000027d: SWAP2
0000027e: DUP3
0000027f: ADD
00000280: DUP2
00000281: SWAP1
00000282: MSTORE
00000283: DUP3
00000284: MLOAD
00000285: PUSH1 0x60
00000287: PUSH1 0x02
00000289: EXP
0000028a: PUSH1 0x01
0000028c: PUSH1 0xa0
0000028e: PUSH1 0x02
00000290: EXP
00000291: SUB
00000292: ADDRESS
00000293: DUP2
00000294: AND
00000295: DUP3
00000296: MUL
00000297: DUP4
00000298: MSTORE
00000299: DUP16
0000029a: DUP2
0000029b: AND
0000029c: DUP3
0000029d: MUL
0000029e: PUSH1 0x14
000002a0: DUP5
000002a1: ADD
000002a2: MSTORE
000002a3: PUSH1 0x28
000002a5: DUP4
000002a6: ADD
000002a7: DUP16
000002a8: SWAP1
000002a9: MSTORE
000002aa: DUP14
000002ab: AND
000002ac: MUL
000002ad: PUSH1 0x48
000002af: DUP3
000002b0: ADD
000002b1: MSTORE
000002b2: PUSH1 0x5c
000002b4: DUP2
000002b5: ADD
000002b6: DUP12
000002b7: SWAP1
000002b8: MSTORE
000002b9: PUSH1 0x7c
000002bb: DUP2
000002bc: ADD
000002bd: DUP11
000002be: SWAP1
000002bf: MSTORE
000002c0: PUSH1 0x9c
000002c2: DUP2
000002c3: ADD
000002c4: DUP10
000002c5: SWAP1
000002c6: MSTORE
000002c7: SWAP3
000002c8: MLOAD
000002c9: SWAP1
000002ca: SWAP3
000002cb: DUP4
000002cc: SWAP3
000002cd: PUSH1 0x02
000002cf: SWAP3
000002d0: PUSH1 0xbc
000002d2: DUP4
000002d3: DUP2
000002d4: ADD
000002d5: SWAP4
000002d6: DUP3
000002d7: SWAP1
000002d8: SUB
000002d9: ADD
000002da: DUP2
000002db: DUP7
000002dc: DUP7
000002dd: PUSH2 0x61da
000002e0: GAS
000002e1: SUB
000002e2: CALL
000002e3: ISZERO
000002e4: PUSH2 0x0002
000002e7: JUMPI
000002e8: POP
000002e9: POP
000002ea: PUSH1 0x40
000002ec: DUP1
000002ed: MLOAD
000002ee: MLOAD
000002ef: PUSH1 0x01
000002f1: PUSH1 0xa0
000002f3: PUSH1 0x02
000002f5: EXP
000002f6: SUB
000002f7: DUP9
000002f8: AND
000002f9: SWAP1
000002fa: SWAP3
000002fb: MSTORE
000002fc: PUSH1 0x08
000002fe: PUSH1 0x20
00000300: SWAP1
00000301: DUP2
00000302: MSTORE
00000303: DUP2
00000304: DUP5
00000305: KECCAK256
00000306: DUP4
00000307: DUP6
00000308: MSTORE
00000309: SWAP1
0000030a: MSTORE
0000030b: SWAP1
0000030c: SWAP2
0000030d: KECCAK256
0000030e: SLOAD
0000030f: SWAP1
00000310: POP
00000311: SWAP11
00000312: SWAP10
00000313: POP
00000314: POP
00000315: POP
00000316: POP
00000317: POP
00000318: POP
00000319: POP
0000031a: POP
0000031b: POP
0000031c: POP
0000031d: JUMP
0000031e: JUMPDEST
0000031f: CALLVALUE
00000320: PUSH2 0x0002
00000323: JUMPI
00000324: PUSH1 0x06
00000326: PUSH1 0x20
00000328: SWAP1
00000329: DUP2
0000032a: MSTORE
0000032b: PUSH1 0x04
0000032d: CALLDATALOAD
0000032e: PUSH1 0x00
00000330: SWAP1
00000331: DUP2
00000332: MSTORE
00000333: PUSH1 0x40
00000335: DUP1
00000336: DUP3
00000337: KECCAK256
00000338: SWAP1
00000339: SWAP3
0000033a: MSTORE
0000033b: PUSH1 0x24
0000033d: CALLDATALOAD
0000033e: DUP2
0000033f: MSTORE
00000340: KECCAK256
00000341: SLOAD
00000342: PUSH2 0x0781
00000345: SWAP1
00000346: DUP2
00000347: JUMP
00000348: JUMPDEST
00000349: CALLVALUE
0000034a: PUSH2 0x0002
0000034d: JUMPI
0000034e: PUSH2 0x077f
00000351: PUSH1 0x04
00000353: CALLDATALOAD
00000354: PUSH1 0x00
00000356: SLOAD
00000357: PUSH1 0x01
00000359: PUSH1 0xa0
0000035b: PUSH1 0x02
0000035d: EXP
0000035e: SUB
0000035f: SWAP1
00000360: DUP2
00000361: AND
00000362: CALLER
00000363: SWAP1
00000364: SWAP2
00000365: AND
00000366: EQ
00000367: PUSH2 0x0fc1
0000036a: JUMPI
0000036b: PUSH2 0x0002
0000036e: JUMP
0000036f: JUMPDEST
00000370: CALLVALUE
00000371: PUSH2 0x0002
00000374: JUMPI
00000375: PUSH2 0x0781
00000378: PUSH1 0x03
0000037a: SLOAD
0000037b: DUP2
0000037c: JUMP
0000037d: JUMPDEST
0000037e: CALLVALUE
0000037f: PUSH2 0x0002
00000382: JUMPI
00000383: PUSH2 0x077f
00000386: PUSH1 0x04
00000388: CALLDATALOAD
00000389: PUSH1 0x00
0000038b: SLOAD
0000038c: PUSH1 0x01
0000038e: PUSH1 0xa0
00000390: PUSH1 0x02
00000392: EXP
00000393: SUB
00000394: SWAP1
00000395: DUP2
00000396: AND
00000397: CALLER
00000398: SWAP1
00000399: SWAP2
0000039a: AND
0000039b: EQ
0000039c: PUSH2 0x0fd5
0000039f: JUMPI
000003a0: PUSH2 0x0002
000003a3: JUMP
000003a4: JUMPDEST
000003a5: CALLVALUE
000003a6: PUSH2 0x0002
000003a9: JUMPI
000003aa: PUSH2 0x0793
000003ad: PUSH1 0x01
000003af: SLOAD
000003b0: PUSH1 0x01
000003b2: PUSH1 0xa0
000003b4: PUSH1 0x02
000003b6: EXP
000003b7: SUB
000003b8: AND
000003b9: DUP2
000003ba: JUMP
000003bb: JUMPDEST
000003bc: CALLVALUE
000003bd: PUSH2 0x0002
000003c0: JUMPI
000003c1: PUSH2 0x07b0
000003c4: PUSH1 0x04
000003c6: CALLDATALOAD
000003c7: PUSH1 0x24
000003c9: CALLDATALOAD
000003ca: PUSH1 0x44
000003cc: CALLDATALOAD
000003cd: PUSH1 0x64
000003cf: CALLDATALOAD
000003d0: PUSH1 0x84
000003d2: CALLDATALOAD
000003d3: PUSH1 0xa4
000003d5: CALLDATALOAD
000003d6: PUSH1 0xc4
000003d8: CALLDATALOAD
000003d9: PUSH1 0xe4
000003db: CALLDATALOAD
000003dc: PUSH2 0x0104
000003df: CALLDATALOAD
000003e0: PUSH2 0x0124
000003e3: CALLDATALOAD
000003e4: PUSH2 0x0144
000003e7: CALLDATALOAD
000003e8: PUSH2 0x0164
000003eb: CALLDATALOAD
000003ec: PUSH1 0x01
000003ee: PUSH1 0xa0
000003f0: PUSH1 0x02
000003f2: EXP
000003f3: SUB
000003f4: DUP13
000003f5: DUP2
000003f6: AND
000003f7: PUSH1 0x00
000003f9: SWAP1
000003fa: DUP2
000003fb: MSTORE
000003fc: PUSH1 0x06
000003fe: PUSH1 0x20
00000400: SWAP1
00000401: DUP2
00000402: MSTORE
00000403: PUSH1 0x40
00000405: DUP1
00000406: DUP4
00000407: KECCAK256
00000408: SWAP4
00000409: DUP6
0000040a: AND
0000040b: DUP4
0000040c: MSTORE
0000040d: SWAP3
0000040e: SWAP1
0000040f: MSTORE
00000410: SWAP1
00000411: DUP2
00000412: KECCAK256
00000413: SLOAD
00000414: DUP4
00000415: SWAP1
00000416: LT
00000417: DUP1
00000418: ISZERO
00000419: SWAP1
0000041a: PUSH2 0x100c
0000041d: JUMPI
0000041e: POP
0000041f: DUP3
00000420: PUSH2 0x1009
00000423: DUP15
00000424: DUP15
00000425: DUP15
00000426: DUP15
00000427: DUP15
00000428: DUP15
00000429: DUP15
0000042a: DUP15
0000042b: DUP15
0000042c: DUP15
0000042d: PUSH2 0x0624
00000430: JUMP
00000431: JUMPDEST
00000432: CALLVALUE
00000433: PUSH2 0x0002
00000436: JUMPI
00000437: PUSH2 0x077f
0000043a: PUSH1 0x04
0000043c: CALLDATALOAD
0000043d: PUSH1 0x00
0000043f: SLOAD
00000440: PUSH1 0x01
00000442: PUSH1 0xa0
00000444: PUSH1 0x02
00000446: EXP
00000447: SUB
00000448: SWAP1
00000449: DUP2
0000044a: AND
0000044b: CALLER
0000044c: SWAP1
0000044d: SWAP2
0000044e: AND
0000044f: EQ
00000450: PUSH2 0x101a
00000453: JUMPI
00000454: PUSH2 0x0002
00000457: JUMP
00000458: JUMPDEST
00000459: CALLVALUE
0000045a: PUSH2 0x0002
0000045d: JUMPI
0000045e: PUSH2 0x0781
00000461: PUSH1 0x05
00000463: SLOAD
00000464: DUP2
00000465: JUMP
00000466: JUMPDEST
00000467: CALLVALUE
00000468: PUSH2 0x0002
0000046b: JUMPI
0000046c: PUSH2 0x077f
0000046f: PUSH1 0x04
00000471: CALLDATALOAD
00000472: PUSH1 0x00
00000474: SLOAD
00000475: PUSH1 0x01
00000477: PUSH1 0xa0
00000479: PUSH1 0x02
0000047b: EXP
0000047c: SUB
0000047d: SWAP1
0000047e: DUP2
0000047f: AND
00000480: CALLER
00000481: SWAP1
00000482: SWAP2
00000483: AND
00000484: EQ
00000485: PUSH2 0x102f
00000488: JUMPI
00000489: PUSH2 0x0002
0000048c: JUMP
0000048d: JUMPDEST
0000048e: CALLVALUE
0000048f: PUSH2 0x0002
00000492: JUMPI
00000493: PUSH2 0x077f
00000496: PUSH1 0x04
00000498: CALLDATALOAD
00000499: PUSH1 0x00
0000049b: SLOAD
0000049c: PUSH1 0x01
0000049e: PUSH1 0xa0
000004a0: PUSH1 0x02
000004a2: EXP
000004a3: SUB
000004a4: SWAP1
000004a5: DUP2
000004a6: AND
000004a7: CALLER
000004a8: SWAP1
000004a9: SWAP2
000004aa: AND
000004ab: EQ
000004ac: PUSH2 0x104f
000004af: JUMPI
000004b0: PUSH2 0x0002
000004b3: JUMP
000004b4: JUMPDEST
000004b5: CALLVALUE
000004b6: PUSH2 0x0002
000004b9: JUMPI
000004ba: PUSH2 0x077f
000004bd: PUSH1 0x04
000004bf: CALLDATALOAD
000004c0: PUSH1 0x24
000004c2: CALLDATALOAD
000004c3: PUSH1 0x00
000004c5: CALLVALUE
000004c6: GT
000004c7: DUP1
000004c8: PUSH2 0x04da
000004cb: JUMPI
000004cc: POP
000004cd: DUP2
000004ce: PUSH1 0x01
000004d0: PUSH1 0xa0
000004d2: PUSH1 0x02
000004d4: EXP
000004d5: SUB
000004d6: AND
000004d7: PUSH1 0x00
000004d9: EQ
000004da: JUMPDEST
000004db: ISZERO
000004dc: PUSH2 0x1064
000004df: JUMPI
000004e0: PUSH2 0x0002
000004e3: JUMP
000004e4: JUMPDEST
000004e5: CALLVALUE
000004e6: PUSH2 0x0002
000004e9: JUMPI
000004ea: PUSH1 0x07
000004ec: PUSH1 0x20
000004ee: SWAP1
000004ef: DUP2
000004f0: MSTORE
000004f1: PUSH1 0x04
000004f3: CALLDATALOAD
000004f4: PUSH1 0x00
000004f6: SWAP1
000004f7: DUP2
000004f8: MSTORE
000004f9: PUSH1 0x40
000004fb: DUP1
000004fc: DUP3
000004fd: KECCAK256
000004fe: SWAP1
000004ff: SWAP3
00000500: MSTORE
00000501: PUSH1 0x24
00000503: CALLDATALOAD
00000504: DUP2
00000505: MSTORE
00000506: KECCAK256
00000507: SLOAD
00000508: PUSH2 0x07b0
0000050b: SWAP1
0000050c: PUSH1 0xff
0000050e: AND
0000050f: DUP2
00000510: JUMP
00000511: JUMPDEST
00000512: CALLVALUE
00000513: PUSH2 0x0002
00000516: JUMPI
00000517: PUSH2 0x0781
0000051a: PUSH1 0x04
0000051c: SLOAD
0000051d: DUP2
0000051e: JUMP
0000051f: JUMPDEST
00000520: PUSH2 0x077f
00000523: CALLER
00000524: PUSH1 0x01
00000526: PUSH1 0xa0
00000528: PUSH1 0x02
0000052a: EXP
0000052b: SUB
0000052c: AND
0000052d: PUSH1 0x00
0000052f: SWAP1
00000530: DUP2
00000531: MSTORE
00000532: PUSH1 0x00
00000534: DUP1
00000535: MLOAD
00000536: PUSH1 0x20
00000538: PUSH2 0x15b3
0000053b: DUP4
0000053c: CODECOPY
0000053d: DUP2
0000053e: MLOAD
0000053f: SWAP2
00000540: MSTORE
00000541: PUSH1 0x20
00000543: MSTORE
00000544: PUSH1 0x40
00000546: SWAP1
00000547: KECCAK256
00000548: SLOAD
00000549: PUSH2 0x11e5
0000054c: SWAP1
0000054d: CALLVALUE
0000054e: JUMPDEST
0000054f: PUSH1 0x00
00000551: DUP3
00000552: DUP3
00000553: ADD
00000554: PUSH2 0x12fd
00000557: DUP5
00000558: DUP3
00000559: LT
0000055a: DUP1
0000055b: ISZERO
0000055c: SWAP1
0000055d: PUSH2 0x0566
00000560: JUMPI
00000561: POP
00000562: DUP4
00000563: DUP3
00000564: LT
00000565: ISZERO
00000566: JUMPDEST
00000567: PUSH2 0x0e40
0000056a: JUMP
0000056b: JUMPDEST
0000056c: CALLVALUE
0000056d: PUSH2 0x0002
00000570: JUMPI
00000571: PUSH2 0x077f
00000574: PUSH1 0x04
00000576: CALLDATALOAD
00000577: PUSH1 0x00
00000579: SLOAD
0000057a: PUSH1 0x01
0000057c: PUSH1 0xa0
0000057e: PUSH1 0x02
00000580: EXP
00000581: SUB
00000582: SWAP1
00000583: DUP2
00000584: AND
00000585: CALLER
00000586: SWAP1
00000587: SWAP2
00000588: AND
00000589: EQ
0000058a: PUSH2 0x1256
0000058d: JUMPI
0000058e: PUSH2 0x0002
00000591: JUMP
00000592: JUMPDEST
00000593: CALLVALUE
00000594: PUSH2 0x0002
00000597: JUMPI
00000598: PUSH2 0x0793
0000059b: PUSH1 0x02
0000059d: SLOAD
0000059e: PUSH1 0x01
000005a0: PUSH1 0xa0
000005a2: PUSH1 0x02
000005a4: EXP
000005a5: SUB
000005a6: AND
000005a7: DUP2
000005a8: JUMP
000005a9: JUMPDEST
000005aa: CALLVALUE
000005ab: PUSH2 0x0002
000005ae: JUMPI
000005af: PUSH2 0x0781
000005b2: PUSH1 0x04
000005b4: CALLDATALOAD
000005b5: PUSH1 0x24
000005b7: CALLDATALOAD
000005b8: PUSH1 0x01
000005ba: PUSH1 0xa0
000005bc: PUSH1 0x02
000005be: EXP
000005bf: SUB
000005c0: DUP3
000005c1: DUP2
000005c2: AND
000005c3: PUSH1 0x00
000005c5: SWAP1
000005c6: DUP2
000005c7: MSTORE
000005c8: PUSH1 0x06
000005ca: PUSH1 0x20
000005cc: SWAP1
000005cd: DUP2
000005ce: MSTORE
000005cf: PUSH1 0x40
000005d1: DUP1
000005d2: DUP4
000005d3: KECCAK256
000005d4: SWAP4
000005d5: DUP6
000005d6: AND
000005d7: DUP4
000005d8: MSTORE
000005d9: SWAP3
000005da: SWAP1
000005db: MSTORE
000005dc: KECCAK256
000005dd: SLOAD
000005de: JUMPDEST
000005df: SWAP3
000005e0: SWAP2
000005e1: POP
000005e2: POP
000005e3: JUMP
000005e4: JUMPDEST
000005e5: CALLVALUE
000005e6: PUSH2 0x0002
000005e9: JUMPI
000005ea: PUSH2 0x0793
000005ed: PUSH1 0x00
000005ef: SLOAD
000005f0: PUSH1 0x01
000005f2: PUSH1 0xa0
000005f4: PUSH1 0x02
000005f6: EXP
000005f7: SUB
000005f8: AND
000005f9: DUP2
000005fa: JUMP
000005fb: JUMPDEST
000005fc: CALLVALUE
000005fd: PUSH2 0x0002
00000600: JUMPI
00000601: PUSH2 0x0781
00000604: PUSH1 0x04
00000606: CALLDATALOAD
00000607: PUSH1 0x24
00000609: CALLDATALOAD
0000060a: PUSH1 0x44
0000060c: CALLDATALOAD
0000060d: PUSH1 0x64
0000060f: CALLDATALOAD
00000610: PUSH1 0x84
00000612: CALLDATALOAD
00000613: PUSH1 0xa4
00000615: CALLDATALOAD
00000616: PUSH1 0xc4
00000618: CALLDATALOAD
00000619: PUSH1 0xe4
0000061b: CALLDATALOAD
0000061c: PUSH2 0x0104
0000061f: CALLDATALOAD
00000620: PUSH2 0x0124
00000623: CALLDATALOAD
00000624: JUMPDEST
00000625: PUSH1 0x00
00000627: PUSH1 0x00
00000629: PUSH1 0x00
0000062b: PUSH1 0x00
0000062d: PUSH1 0x02
0000062f: ADDRESS
00000630: DUP16
00000631: DUP16
00000632: DUP16
00000633: DUP16
00000634: DUP16
00000635: DUP16
00000636: PUSH1 0x00
00000638: PUSH1 0x40
0000063a: MLOAD
0000063b: PUSH1 0x20
0000063d: ADD
0000063e: MSTORE
0000063f: PUSH1 0x40
00000641: MLOAD
00000642: DUP1
00000643: DUP9
00000644: PUSH1 0x01
00000646: PUSH1 0xa0
00000648: PUSH1 0x02
0000064a: EXP
0000064b: SUB
0000064c: AND
0000064d: PUSH1 0x60
0000064f: PUSH1 0x02
00000651: EXP
00000652: MUL
00000653: DUP2
00000654: MSTORE
00000655: PUSH1 0x14
00000657: ADD
00000658: DUP8
00000659: PUSH1 0x01
0000065b: PUSH1 0xa0
0000065d: PUSH1 0x02
0000065f: EXP
00000660: SUB
00000661: AND
00000662: PUSH1 0x60
00000664: PUSH1 0x02
00000666: EXP
00000667: MUL
00000668: DUP2
00000669: MSTORE
0000066a: PUSH1 0x14
0000066c: ADD
0000066d: DUP7
0000066e: DUP2
0000066f: MSTORE
00000670: PUSH1 0x20
00000672: ADD
00000673: DUP6
00000674: PUSH1 0x01
00000676: PUSH1 0xa0
00000678: PUSH1 0x02
0000067a: EXP
0000067b: SUB
0000067c: AND
0000067d: PUSH1 0x60
0000067f: PUSH1 0x02
00000681: EXP
00000682: MUL
00000683: DUP2
00000684: MSTORE
00000685: PUSH1 0x14
00000687: ADD
00000688: DUP5
00000689: DUP2
0000068a: MSTORE
0000068b: PUSH1 0x20
0000068d: ADD
0000068e: DUP4
0000068f: DUP2
00000690: MSTORE
00000691: PUSH1 0x20
00000693: ADD
00000694: DUP3
00000695: DUP2
00000696: MSTORE
00000697: PUSH1 0x20
00000699: ADD
0000069a: SWAP8
0000069b: POP
0000069c: POP
0000069d: POP
0000069e: POP
0000069f: POP
000006a0: POP
000006a1: POP
000006a2: POP
000006a3: PUSH1 0x20
000006a5: PUSH1 0x40
000006a7: MLOAD
000006a8: DUP1
000006a9: DUP4
000006aa: SUB
000006ab: DUP2
000006ac: PUSH1 0x00
000006ae: DUP7
000006af: PUSH2 0x61da
000006b2: GAS
000006b3: SUB
000006b4: CALL
000006b5: ISZERO
000006b6: PUSH2 0x0002
000006b9: JUMPI
000006ba: POP
000006bb: POP
000006bc: PUSH1 0x40
000006be: DUP1
000006bf: MLOAD
000006c0: MLOAD
000006c1: PUSH1 0x01
000006c3: PUSH1 0xa0
000006c5: PUSH1 0x02
000006c7: EXP
000006c8: SUB
000006c9: DUP11
000006ca: AND
000006cb: PUSH1 0x00
000006cd: SWAP1
000006ce: DUP2
000006cf: MSTORE
000006d0: PUSH1 0x07
000006d2: PUSH1 0x20
000006d4: SWAP1
000006d5: DUP2
000006d6: MSTORE
000006d7: DUP4
000006d8: DUP3
000006d9: KECCAK256
000006da: DUP4
000006db: DUP4
000006dc: MSTORE
000006dd: SWAP1
000006de: MSTORE
000006df: SWAP2
000006e0: SWAP1
000006e1: SWAP2
000006e2: KECCAK256
000006e3: SLOAD
000006e4: SWAP1
000006e5: SWAP4
000006e6: POP
000006e7: PUSH1 0xff
000006e9: AND
000006ea: DUP1
000006eb: PUSH2 0x0764
000006ee: JUMPI
000006ef: POP
000006f0: PUSH1 0x40
000006f2: DUP1
000006f3: MLOAD
000006f4: PUSH1 0x00
000006f6: DUP2
000006f7: DUP2
000006f8: MSTORE
000006f9: PUSH1 0x20
000006fb: DUP3
000006fc: DUP2
000006fd: ADD
000006fe: DUP5
000006ff: MSTORE
00000700: SWAP2
00000701: DUP4
00000702: ADD
00000703: DUP2
00000704: SWAP1
00000705: MSTORE
00000706: DUP3
00000707: MLOAD
00000708: DUP7
00000709: DUP2
0000070a: MSTORE
0000070b: PUSH1 0xff
0000070d: DUP12
0000070e: AND
0000070f: DUP2
00000710: DUP5
00000711: ADD
00000712: MSTORE
00000713: DUP1
00000714: DUP5
00000715: ADD
00000716: DUP11
00000717: SWAP1
00000718: MSTORE
00000719: PUSH1 0x60
0000071b: DUP2
0000071c: ADD
0000071d: DUP10
0000071e: SWAP1
0000071f: MSTORE
00000720: SWAP3
00000721: MLOAD
00000722: PUSH1 0x01
00000724: PUSH1 0xa0
00000726: PUSH1 0x02
00000728: EXP
00000729: SUB
0000072a: DUP13
0000072b: AND
0000072c: SWAP4
0000072d: PUSH1 0x01
0000072f: SWAP4
00000730: PUSH1 0x80
00000732: DUP3
00000733: DUP2
00000734: ADD
00000735: SWAP5
00000736: SWAP2
00000737: SWAP4
00000738: PUSH1 0x1f
0000073a: NOT
0000073b: DUP2
0000073c: ADD
0000073d: SWAP4
0000073e: DUP2
0000073f: SWAP1
00000740: SUB
00000741: SWAP1
00000742: SWAP2
00000743: ADD
00000744: SWAP2
00000745: DUP7
00000746: PUSH2 0x61da
00000749: GAS
0000074a: SUB
0000074b: CALL
0000074c: ISZERO
0000074d: PUSH2 0x0002
00000750: JUMPI
00000751: POP
00000752: POP
00000753: PUSH1 0x20
00000755: PUSH1 0x40
00000757: MLOAD
00000758: SUB
00000759: MLOAD
0000075a: PUSH1 0x01
0000075c: PUSH1 0xa0
0000075e: PUSH1 0x02
00000760: EXP
00000761: SUB
00000762: AND
00000763: EQ
00000764: JUMPDEST
00000765: DUP1
00000766: ISZERO
00000767: PUSH2 0x0770
0000076a: JUMPI
0000076b: POP
0000076c: DUP10
0000076d: NUMBER
0000076e: GT
0000076f: ISZERO
00000770: JUMPDEST
00000771: ISZERO
00000772: ISZERO
00000773: PUSH2 0x1280
00000776: JUMPI
00000777: PUSH1 0x00
00000779: SWAP4
0000077a: POP
0000077b: PUSH2 0x126f
0000077e: JUMP
0000077f: JUMPDEST
00000780: STOP
00000781: JUMPDEST
00000782: PUSH1 0x40
00000784: DUP1
00000785: MLOAD
00000786: SWAP2
00000787: DUP3
00000788: MSTORE
00000789: MLOAD
0000078a: SWAP1
0000078b: DUP2
0000078c: SWAP1
0000078d: SUB
0000078e: PUSH1 0x20
00000790: ADD
00000791: SWAP1
00000792: RETURN
00000793: JUMPDEST
00000794: PUSH1 0x40
00000796: DUP1
00000797: MLOAD
00000798: PUSH1 0x01
0000079a: PUSH1 0xa0
0000079c: PUSH1 0x02
0000079e: EXP
0000079f: SUB
000007a0: SWAP3
000007a1: SWAP1
000007a2: SWAP3
000007a3: AND
000007a4: DUP3
000007a5: MSTORE
000007a6: MLOAD
000007a7: SWAP1
000007a8: DUP2
000007a9: SWAP1
000007aa: SUB
000007ab: PUSH1 0x20
000007ad: ADD
000007ae: SWAP1
000007af: RETURN
000007b0: JUMPDEST
000007b1: PUSH1 0x40
000007b3: DUP1
000007b4: MLOAD
000007b5: SWAP2
000007b6: ISZERO
000007b7: ISZERO
000007b8: DUP3
000007b9: MSTORE
000007ba: MLOAD
000007bb: SWAP1
000007bc: DUP2
000007bd: SWAP1
000007be: SUB
000007bf: PUSH1 0x20
000007c1: ADD
000007c2: SWAP1
000007c3: RETURN
000007c4: JUMPDEST
000007c5: PUSH1 0x02
000007c7: ADDRESS
000007c8: DUP14
000007c9: DUP14
000007ca: DUP14
000007cb: DUP14
000007cc: DUP14
000007cd: DUP14
000007ce: PUSH1 0x00
000007d0: PUSH1 0x40
000007d2: MLOAD
000007d3: PUSH1 0x20
000007d5: ADD
000007d6: MSTORE
000007d7: PUSH1 0x40
000007d9: MLOAD
000007da: DUP1
000007db: DUP9
000007dc: PUSH1 0x01
000007de: PUSH1 0xa0
000007e0: PUSH1 0x02
000007e2: EXP
000007e3: SUB
000007e4: AND
000007e5: PUSH1 0x60
000007e7: PUSH1 0x02
000007e9: EXP
000007ea: MUL
000007eb: DUP2
000007ec: MSTORE
000007ed: PUSH1 0x14
000007ef: ADD
000007f0: DUP8
000007f1: PUSH1 0x01
000007f3: PUSH1 0xa0
000007f5: PUSH1 0x02
000007f7: EXP
000007f8: SUB
000007f9: AND
000007fa: PUSH1 0x60
000007fc: PUSH1 0x02
000007fe: EXP
000007ff: MUL
00000800: DUP2
00000801: MSTORE
00000802: PUSH1 0x14
00000804: ADD
00000805: DUP7
00000806: DUP2
00000807: MSTORE
00000808: PUSH1 0x20
0000080a: ADD
0000080b: DUP6
0000080c: PUSH1 0x01
0000080e: PUSH1 0xa0
00000810: PUSH1 0x02
00000812: EXP
00000813: SUB
00000814: AND
00000815: PUSH1 0x60
00000817: PUSH1 0x02
00000819: EXP
0000081a: MUL
0000081b: DUP2
0000081c: MSTORE
0000081d: PUSH1 0x14
0000081f: ADD
00000820: DUP5
00000821: DUP2
00000822: MSTORE
00000823: PUSH1 0x20
00000825: ADD
00000826: DUP4
00000827: DUP2
00000828: MSTORE
00000829: PUSH1 0x20
0000082b: ADD
0000082c: DUP3
0000082d: DUP2
0000082e: MSTORE
0000082f: PUSH1 0x20
00000831: ADD
00000832: SWAP8
00000833: POP
00000834: POP
00000835: POP
00000836: POP
00000837: POP
00000838: POP
00000839: POP
0000083a: POP
0000083b: PUSH1 0x20
0000083d: PUSH1 0x40
0000083f: MLOAD
00000840: DUP1
00000841: DUP4
00000842: SUB
00000843: DUP2
00000844: PUSH1 0x00
00000846: DUP7
00000847: PUSH2 0x61da
0000084a: GAS
0000084b: SUB
0000084c: CALL
0000084d: ISZERO
0000084e: PUSH2 0x0002
00000851: JUMPI
00000852: POP
00000853: POP
00000854: PUSH1 0x40
00000856: DUP1
00000857: MLOAD
00000858: MLOAD
00000859: PUSH1 0x01
0000085b: PUSH1 0xa0
0000085d: PUSH1 0x02
0000085f: EXP
00000860: SUB
00000861: DUP9
00000862: AND
00000863: PUSH1 0x00
00000865: SWAP1
00000866: DUP2
00000867: MSTORE
00000868: PUSH1 0x07
0000086a: PUSH1 0x20
0000086c: SWAP1
0000086d: DUP2
0000086e: MSTORE
0000086f: DUP4
00000870: DUP3
00000871: KECCAK256
00000872: DUP4
00000873: DUP4
00000874: MSTORE
00000875: SWAP1
00000876: MSTORE
00000877: SWAP2
00000878: SWAP1
00000879: SWAP2
0000087a: KECCAK256
0000087b: SLOAD
0000087c: SWAP1
0000087d: SWAP2
0000087e: POP
0000087f: PUSH1 0xff
00000881: AND
00000882: DUP1
00000883: PUSH2 0x090e
00000886: JUMPI
00000887: POP
00000888: DUP6
00000889: PUSH1 0x01
0000088b: PUSH1 0xa0
0000088d: PUSH1 0x02
0000088f: EXP
00000890: SUB
00000891: AND
00000892: PUSH1 0x01
00000894: DUP3
00000895: DUP8
00000896: DUP8
00000897: DUP8
00000898: PUSH1 0x40
0000089a: MLOAD
0000089b: DUP1
0000089c: PUSH1 0x00
0000089e: MSTORE
0000089f: PUSH1 0x20
000008a1: ADD
000008a2: PUSH1 0x40
000008a4: MSTORE
000008a5: PUSH1 0x00
000008a7: PUSH1 0x40
000008a9: MLOAD
000008aa: PUSH1 0x20
000008ac: ADD
000008ad: MSTORE
000008ae: PUSH1 0x40
000008b0: MLOAD
000008b1: DUP1
000008b2: DUP6
000008b3: PUSH1 0x00
000008b5: NOT
000008b6: AND
000008b7: DUP2
000008b8: MSTORE
000008b9: PUSH1 0x20
000008bb: ADD
000008bc: DUP5
000008bd: PUSH1 0xff
000008bf: AND
000008c0: DUP2
000008c1: MSTORE
000008c2: PUSH1 0x20
000008c4: ADD
000008c5: DUP4
000008c6: PUSH1 0x00
000008c8: NOT
000008c9: AND
000008ca: DUP2
000008cb: MSTORE
000008cc: PUSH1 0x20
000008ce: ADD
000008cf: DUP3
000008d0: PUSH1 0x00
000008d2: NOT
000008d3: AND
000008d4: DUP2
000008d5: MSTORE
000008d6: PUSH1 0x20
000008d8: ADD
000008d9: SWAP5
000008da: POP
000008db: POP
000008dc: POP
000008dd: POP
000008de: POP
000008df: PUSH1 0x20
000008e1: PUSH1 0x40
000008e3: MLOAD
000008e4: PUSH1 0x20
000008e6: DUP2
000008e7: SUB
000008e8: SWAP1
000008e9: DUP1
000008ea: DUP5
000008eb: SUB
000008ec: SWAP1
000008ed: PUSH1 0x00
000008ef: DUP7
000008f0: PUSH2 0x61da
000008f3: GAS
000008f4: SUB
000008f5: CALL
000008f6: ISZERO
000008f7: PUSH2 0x0002
000008fa: JUMPI
000008fb: POP
000008fc: POP
000008fd: PUSH1 0x20
000008ff: PUSH1 0x40
00000901: MLOAD
00000902: SUB
00000903: MLOAD
00000904: PUSH1 0x01
00000906: PUSH1 0xa0
00000908: PUSH1 0x02
0000090a: EXP
0000090b: SUB
0000090c: AND
0000090d: EQ
0000090e: JUMPDEST
0000090f: DUP1
00000910: ISZERO
00000911: PUSH2 0x091a
00000914: JUMPI
00000915: POP
00000916: DUP8
00000917: NUMBER
00000918: GT
00000919: ISZERO
0000091a: JUMPDEST
0000091b: DUP1
0000091c: ISZERO
0000091d: PUSH2 0x0954
00000920: JUMPI
00000921: POP
00000922: PUSH1 0x01
00000924: PUSH1 0xa0
00000926: PUSH1 0x02
00000928: EXP
00000929: SUB
0000092a: DUP7
0000092b: AND
0000092c: PUSH1 0x00
0000092e: SWAP1
0000092f: DUP2
00000930: MSTORE
00000931: PUSH1 0x08
00000933: PUSH1 0x20
00000935: SWAP1
00000936: DUP2
00000937: MSTORE
00000938: PUSH1 0x40
0000093a: DUP1
0000093b: DUP4
0000093c: KECCAK256
0000093d: DUP5
0000093e: DUP5
0000093f: MSTORE
00000940: SWAP1
00000941: SWAP2
00000942: MSTORE
00000943: SWAP1
00000944: KECCAK256
00000945: SLOAD
00000946: DUP12
00000947: SWAP1
00000948: PUSH2 0x0951
0000094b: SWAP1
0000094c: DUP5
0000094d: PUSH2 0x054e
00000950: JUMP
00000951: JUMPDEST
00000952: GT
00000953: ISZERO
00000954: JUMPDEST
00000955: ISZERO
00000956: ISZERO
00000957: PUSH2 0x095f
0000095a: JUMPI
0000095b: PUSH2 0x0002
0000095e: JUMP
0000095f: JUMPDEST
00000960: PUSH2 0x09a5
00000963: DUP13
00000964: DUP13
00000965: DUP13
00000966: DUP13
00000967: DUP11
00000968: DUP8
00000969: PUSH1 0x00
0000096b: PUSH1 0x00
0000096d: PUSH1 0x00
0000096f: PUSH1 0x00
00000971: PUSH8 0x0de0b6b3a7640000
0000097a: PUSH2 0x1304
0000097d: DUP7
0000097e: PUSH1 0x03
00000980: PUSH1 0x00
00000982: POP
00000983: SLOAD
00000984: JUMPDEST
00000985: PUSH1 0x00
00000987: DUP3
00000988: DUP3
00000989: MUL
0000098a: PUSH2 0x12fd
0000098d: DUP5
0000098e: DUP4
0000098f: EQ
00000990: DUP1
00000991: PUSH2 0x0566
00000994: JUMPI
00000995: POP
00000996: DUP4
00000997: DUP6
00000998: DUP4
00000999: DUP2
0000099a: ISZERO
0000099b: PUSH2 0x0002
0000099e: JUMPI
0000099f: DIV
000009a0: EQ
000009a1: PUSH2 0x0e40
000009a4: JUMP
000009a5: JUMPDEST
000009a6: PUSH1 0x01
000009a8: PUSH1 0xa0
000009aa: PUSH1 0x02
000009ac: EXP
000009ad: SUB
000009ae: DUP7
000009af: AND
000009b0: PUSH1 0x00
000009b2: SWAP1
000009b3: DUP2
000009b4: MSTORE
000009b5: PUSH1 0x08
000009b7: PUSH1 0x20
000009b9: SWAP1
000009ba: DUP2
000009bb: MSTORE
000009bc: PUSH1 0x40
000009be: DUP1
000009bf: DUP4
000009c0: KECCAK256
000009c1: DUP5
000009c2: DUP5
000009c3: MSTORE
000009c4: SWAP1
000009c5: SWAP2
000009c6: MSTORE
000009c7: SWAP1
000009c8: KECCAK256
000009c9: SLOAD
000009ca: PUSH2 0x09d3
000009cd: SWAP1
000009ce: DUP4
000009cf: PUSH2 0x054e
000009d2: JUMP
000009d3: JUMPDEST
000009d4: PUSH1 0x01
000009d6: PUSH1 0xa0
000009d8: PUSH1 0x02
000009da: EXP
000009db: SUB
000009dc: DUP8
000009dd: AND
000009de: PUSH1 0x00
000009e0: SWAP1
000009e1: DUP2
000009e2: MSTORE
000009e3: PUSH1 0x08
000009e5: PUSH1 0x20
000009e7: SWAP1
000009e8: DUP2
000009e9: MSTORE
000009ea: PUSH1 0x40
000009ec: DUP1
000009ed: DUP4
000009ee: KECCAK256
000009ef: DUP6
000009f0: DUP5
000009f1: MSTORE
000009f2: SWAP1
000009f3: SWAP2
000009f4: MSTORE
000009f5: SWAP1
000009f6: KECCAK256
000009f7: SSTORE
000009f8: PUSH32 0x6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d
00000a19: DUP13
00000a1a: DUP4
00000a1b: DUP13
00000a1c: DUP15
00000a1d: DUP14
00000a1e: DUP4
00000a1f: MUL
00000a20: DUP2
00000a21: ISZERO
00000a22: PUSH2 0x0002
00000a25: JUMPI
00000a26: PUSH1 0x40
00000a28: DUP1
00000a29: MLOAD
00000a2a: PUSH1 0x01
00000a2c: PUSH1 0xa0
00000a2e: PUSH1 0x02
00000a30: EXP
00000a31: SUB
00000a32: SWAP7
00000a33: DUP8
00000a34: AND
00000a35: DUP2
00000a36: MSTORE
00000a37: PUSH1 0x20
00000a39: DUP2
00000a3a: ADD
00000a3b: SWAP6
00000a3c: SWAP1
00000a3d: SWAP6
00000a3e: MSTORE
00000a3f: SWAP3
00000a40: DUP6
00000a41: AND
00000a42: DUP5
00000a43: DUP5
00000a44: ADD
00000a45: MSTORE
00000a46: DIV
00000a47: PUSH1 0x60
00000a49: DUP4
00000a4a: ADD
00000a4b: MSTORE
00000a4c: DUP10
00000a4d: DUP4
00000a4e: AND
00000a4f: PUSH1 0x80
00000a51: DUP4
00000a52: ADD
00000a53: MSTORE
00000a54: CALLER
00000a55: SWAP1
00000a56: SWAP3
00000a57: AND
00000a58: PUSH1 0xa0
00000a5a: DUP3
00000a5b: ADD
00000a5c: MSTORE
00000a5d: SWAP1
00000a5e: MLOAD
00000a5f: SWAP1
00000a60: DUP2
00000a61: SWAP1
00000a62: SUB
00000a63: PUSH1 0xc0
00000a65: ADD
00000a66: SWAP1
00000a67: LOG1
00000a68: POP
00000a69: POP
00000a6a: POP
00000a6b: POP
00000a6c: POP
00000a6d: POP
00000a6e: POP
00000a6f: POP
00000a70: POP
00000a71: POP
00000a72: POP
00000a73: POP
00000a74: JUMP
00000a75: JUMPDEST
00000a76: PUSH1 0x40
00000a78: DUP1
00000a79: MLOAD
00000a7a: PUSH1 0x00
00000a7c: PUSH1 0x20
00000a7e: SWAP2
00000a7f: DUP3
00000a80: ADD
00000a81: DUP2
00000a82: SWAP1
00000a83: MSTORE
00000a84: DUP3
00000a85: MLOAD
00000a86: PUSH1 0x60
00000a88: PUSH1 0x02
00000a8a: EXP
00000a8b: PUSH1 0x01
00000a8d: PUSH1 0xa0
00000a8f: PUSH1 0x02
00000a91: EXP
00000a92: SUB
00000a93: ADDRESS
00000a94: DUP2
00000a95: AND
00000a96: DUP3
00000a97: MUL
00000a98: DUP4
00000a99: MSTORE
00000a9a: DUP13
00000a9b: DUP2
00000a9c: AND
00000a9d: DUP3
00000a9e: MUL
00000a9f: PUSH1 0x14
00000aa1: DUP5
00000aa2: ADD
00000aa3: MSTORE
00000aa4: PUSH1 0x28
00000aa6: DUP4
00000aa7: ADD
00000aa8: DUP13
00000aa9: SWAP1
00000aaa: MSTORE
00000aab: DUP11
00000aac: AND
00000aad: MUL
00000aae: PUSH1 0x48
00000ab0: DUP3
00000ab1: ADD
00000ab2: MSTORE
00000ab3: PUSH1 0x5c
00000ab5: DUP2
00000ab6: ADD
00000ab7: DUP9
00000ab8: SWAP1
00000ab9: MSTORE
00000aba: PUSH1 0x7c
00000abc: DUP2
00000abd: ADD
00000abe: DUP8
00000abf: SWAP1
00000ac0: MSTORE
00000ac1: PUSH1 0x9c
00000ac3: DUP2
00000ac4: ADD
00000ac5: DUP7
00000ac6: SWAP1
00000ac7: MSTORE
00000ac8: SWAP3
00000ac9: MLOAD
00000aca: PUSH1 0x02
00000acc: SWAP4
00000acd: PUSH1 0xbc
00000acf: DUP2
00000ad0: DUP2
00000ad1: ADD
00000ad2: SWAP5
00000ad3: SWAP4
00000ad4: SWAP2
00000ad5: DUP4
00000ad6: SWAP1
00000ad7: SUB
00000ad8: ADD
00000ad9: SWAP1
00000ada: DUP3
00000adb: SWAP1
00000adc: DUP7
00000add: PUSH2 0x61da
00000ae0: GAS
00000ae1: SUB
00000ae2: CALL
00000ae3: ISZERO
00000ae4: PUSH2 0x0002
00000ae7: JUMPI
00000ae8: POP
00000ae9: POP
00000aea: PUSH1 0x40
00000aec: DUP1
00000aed: MLOAD
00000aee: DUP1
00000aef: MLOAD
00000af0: CALLER
00000af1: PUSH1 0x01
00000af3: PUSH1 0xa0
00000af5: PUSH1 0x02
00000af7: EXP
00000af8: SUB
00000af9: SWAP1
00000afa: DUP2
00000afb: AND
00000afc: PUSH1 0x00
00000afe: DUP2
00000aff: DUP2
00000b00: MSTORE
00000b01: PUSH1 0x07
00000b03: PUSH1 0x20
00000b05: SWAP1
00000b06: DUP2
00000b07: MSTORE
00000b08: DUP7
00000b09: DUP3
00000b0a: KECCAK256
00000b0b: DUP6
00000b0c: DUP4
00000b0d: MSTORE
00000b0e: DUP2
00000b0f: MSTORE
00000b10: SWAP1
00000b11: DUP7
00000b12: SWAP1
00000b13: KECCAK256
00000b14: DUP1
00000b15: SLOAD
00000b16: PUSH1 0xff
00000b18: NOT
00000b19: AND
00000b1a: PUSH1 0x01
00000b1c: OR
00000b1d: SWAP1
00000b1e: SSTORE
00000b1f: DUP13
00000b20: DUP4
00000b21: AND
00000b22: DUP6
00000b23: MSTORE
00000b24: DUP5
00000b25: ADD
00000b26: DUP12
00000b27: SWAP1
00000b28: MSTORE
00000b29: SWAP1
00000b2a: DUP10
00000b2b: AND
00000b2c: DUP4
00000b2d: DUP6
00000b2e: ADD
00000b2f: MSTORE
00000b30: PUSH1 0x60
00000b32: DUP4
00000b33: ADD
00000b34: DUP9
00000b35: SWAP1
00000b36: MSTORE
00000b37: PUSH1 0x80
00000b39: DUP4
00000b3a: ADD
00000b3b: DUP8
00000b3c: SWAP1
00000b3d: MSTORE
00000b3e: PUSH1 0xa0
00000b40: DUP4
00000b41: ADD
00000b42: DUP7
00000b43: SWAP1
00000b44: MSTORE
00000b45: PUSH1 0xc0
00000b47: DUP4
00000b48: ADD
00000b49: MSTORE
00000b4a: SWAP2
00000b4b: MLOAD
00000b4c: SWAP2
00000b4d: SWAP3
00000b4e: POP
00000b4f: PUSH32 0x3f7f2eda73683c21a15f9435af1028c93185b5f1fa38270762dc32be606b3e85
00000b70: SWAP2
00000b71: SWAP1
00000b72: DUP2
00000b73: SWAP1
00000b74: SUB
00000b75: PUSH1 0xe0
00000b77: ADD
00000b78: SWAP1
00000b79: LOG1
00000b7a: POP
00000b7b: POP
00000b7c: POP
00000b7d: POP
00000b7e: POP
00000b7f: POP
00000b80: POP
00000b81: JUMP
00000b82: JUMPDEST
00000b83: PUSH1 0x40
00000b85: DUP1
00000b86: MLOAD
00000b87: PUSH1 0x00
00000b89: PUSH1 0x20
00000b8b: SWAP2
00000b8c: DUP3
00000b8d: ADD
00000b8e: DUP2
00000b8f: SWAP1
00000b90: MSTORE
00000b91: DUP3
00000b92: MLOAD
00000b93: PUSH1 0x60
00000b95: PUSH1 0x02
00000b97: EXP
00000b98: PUSH1 0x01
00000b9a: PUSH1 0xa0
00000b9c: PUSH1 0x02
00000b9e: EXP
00000b9f: SUB
00000ba0: ADDRESS
00000ba1: DUP2
00000ba2: AND
00000ba3: DUP3
00000ba4: MUL
00000ba5: DUP4
00000ba6: MSTORE
00000ba7: DUP16
00000ba8: DUP2
00000ba9: AND
00000baa: DUP3
00000bab: MUL
00000bac: PUSH1 0x14
00000bae: DUP5
00000baf: ADD
00000bb0: MSTORE
00000bb1: PUSH1 0x28
00000bb3: DUP4
00000bb4: ADD
00000bb5: DUP16
00000bb6: SWAP1
00000bb7: MSTORE
00000bb8: DUP14
00000bb9: AND
00000bba: MUL
00000bbb: PUSH1 0x48
00000bbd: DUP3
00000bbe: ADD
00000bbf: MSTORE
00000bc0: PUSH1 0x5c
00000bc2: DUP2
00000bc3: ADD
00000bc4: DUP12
00000bc5: SWAP1
00000bc6: MSTORE
00000bc7: PUSH1 0x7c
00000bc9: DUP2
00000bca: ADD
00000bcb: DUP11
00000bcc: SWAP1
00000bcd: MSTORE
00000bce: PUSH1 0x9c
00000bd0: DUP2
00000bd1: ADD
00000bd2: DUP10
00000bd3: SWAP1
00000bd4: MSTORE
00000bd5: SWAP3
00000bd6: MLOAD
00000bd7: PUSH1 0x02
00000bd9: SWAP4
00000bda: PUSH1 0xbc
00000bdc: DUP2
00000bdd: DUP2
00000bde: ADD
00000bdf: SWAP5
00000be0: SWAP4
00000be1: SWAP2
00000be2: DUP4
00000be3: SWAP1
00000be4: SUB
00000be5: ADD
00000be6: SWAP1
00000be7: DUP3
00000be8: SWAP1
00000be9: DUP7
00000bea: PUSH2 0x61da
00000bed: GAS
00000bee: SUB
00000bef: CALL
00000bf0: ISZERO
00000bf1: PUSH2 0x0002
00000bf4: JUMPI
00000bf5: POP
00000bf6: POP
00000bf7: PUSH1 0x40
00000bf9: DUP1
00000bfa: MLOAD
00000bfb: MLOAD
00000bfc: CALLER
00000bfd: PUSH1 0x01
00000bff: PUSH1 0xa0
00000c01: PUSH1 0x02
00000c03: EXP
00000c04: SUB
00000c05: AND
00000c06: PUSH1 0x00
00000c08: SWAP1
00000c09: DUP2
00000c0a: MSTORE
00000c0b: PUSH1 0x07
00000c0d: PUSH1 0x20
00000c0f: SWAP1
00000c10: DUP2
00000c11: MSTORE
00000c12: DUP4
00000c13: DUP3
00000c14: KECCAK256
00000c15: DUP4
00000c16: DUP4
00000c17: MSTORE
00000c18: SWAP1
00000c19: MSTORE
00000c1a: SWAP2
00000c1b: SWAP1
00000c1c: SWAP2
00000c1d: KECCAK256
00000c1e: SLOAD
00000c1f: SWAP1
00000c20: SWAP2
00000c21: POP
00000c22: PUSH1 0xff
00000c24: AND
00000c25: DUP1
00000c26: PUSH2 0x0cb1
00000c29: JUMPI
00000c2a: POP
00000c2b: CALLER
00000c2c: PUSH1 0x01
00000c2e: PUSH1 0xa0
00000c30: PUSH1 0x02
00000c32: EXP
00000c33: SUB
00000c34: AND
00000c35: PUSH1 0x01
00000c37: DUP3
00000c38: DUP7
00000c39: DUP7
00000c3a: DUP7
00000c3b: PUSH1 0x40
00000c3d: MLOAD
00000c3e: DUP1
00000c3f: PUSH1 0x00
00000c41: MSTORE
00000c42: PUSH1 0x20
00000c44: ADD
00000c45: PUSH1 0x40
00000c47: MSTORE
00000c48: PUSH1 0x00
00000c4a: PUSH1 0x40
00000c4c: MLOAD
00000c4d: PUSH1 0x20
00000c4f: ADD
00000c50: MSTORE
00000c51: PUSH1 0x40
00000c53: MLOAD
00000c54: DUP1
00000c55: DUP6
00000c56: PUSH1 0x00
00000c58: NOT
00000c59: AND
00000c5a: DUP2
00000c5b: MSTORE
00000c5c: PUSH1 0x20
00000c5e: ADD
00000c5f: DUP5
00000c60: PUSH1 0xff
00000c62: AND
00000c63: DUP2
00000c64: MSTORE
00000c65: PUSH1 0x20
00000c67: ADD
00000c68: DUP4
00000c69: PUSH1 0x00
00000c6b: NOT
00000c6c: AND
00000c6d: DUP2
00000c6e: MSTORE
00000c6f: PUSH1 0x20
00000c71: ADD
00000c72: DUP3
00000c73: PUSH1 0x00
00000c75: NOT
00000c76: AND
00000c77: DUP2
00000c78: MSTORE
00000c79: PUSH1 0x20
00000c7b: ADD
00000c7c: SWAP5
00000c7d: POP
00000c7e: POP
00000c7f: POP
00000c80: POP
00000c81: POP
00000c82: PUSH1 0x20
00000c84: PUSH1 0x40
00000c86: MLOAD
00000c87: PUSH1 0x20
00000c89: DUP2
00000c8a: SUB
00000c8b: SWAP1
00000c8c: DUP1
00000c8d: DUP5
00000c8e: SUB
00000c8f: SWAP1
00000c90: PUSH1 0x00
00000c92: DUP7
00000c93: PUSH2 0x61da
00000c96: GAS
00000c97: SUB
00000c98: CALL
00000c99: ISZERO
00000c9a: PUSH2 0x0002
00000c9d: JUMPI
00000c9e: POP
00000c9f: POP
00000ca0: PUSH1 0x20
00000ca2: PUSH1 0x40
00000ca4: MLOAD
00000ca5: SUB
00000ca6: MLOAD
00000ca7: PUSH1 0x01
00000ca9: PUSH1 0xa0
00000cab: PUSH1 0x02
00000cad: EXP
00000cae: SUB
00000caf: AND
00000cb0: EQ
00000cb1: JUMPDEST
00000cb2: ISZERO
00000cb3: ISZERO
00000cb4: PUSH2 0x0cbc
00000cb7: JUMPI
00000cb8: PUSH2 0x0002
00000cbb: JUMP
00000cbc: JUMPDEST
00000cbd: CALLER
00000cbe: PUSH1 0x01
00000cc0: PUSH1 0xa0
00000cc2: PUSH1 0x02
00000cc4: EXP
00000cc5: SUB
00000cc6: SWAP1
00000cc7: DUP2
00000cc8: AND
00000cc9: PUSH1 0x00
00000ccb: DUP2
00000ccc: DUP2
00000ccd: MSTORE
00000cce: PUSH1 0x08
00000cd0: PUSH1 0x20
00000cd2: SWAP1
00000cd3: DUP2
00000cd4: MSTORE
00000cd5: PUSH1 0x40
00000cd7: DUP1
00000cd8: DUP4
00000cd9: KECCAK256
00000cda: DUP7
00000cdb: DUP5
00000cdc: MSTORE
00000cdd: DUP3
00000cde: MSTORE
00000cdf: SWAP2
00000ce0: DUP3
00000ce1: SWAP1
00000ce2: KECCAK256
00000ce3: DUP14
00000ce4: SWAP1
00000ce5: SSTORE
00000ce6: DUP2
00000ce7: MLOAD
00000ce8: DUP15
00000ce9: DUP6
00000cea: AND
00000ceb: DUP2
00000cec: MSTORE
00000ced: SWAP1
00000cee: DUP2
00000cef: ADD
00000cf0: DUP14
00000cf1: SWAP1
00000cf2: MSTORE
00000cf3: SWAP3
00000cf4: DUP12
00000cf5: AND
00000cf6: DUP4
00000cf7: DUP3
00000cf8: ADD
00000cf9: MSTORE
00000cfa: PUSH1 0x60
00000cfc: DUP4
00000cfd: ADD
00000cfe: DUP11
00000cff: SWAP1
00000d00: MSTORE
00000d01: PUSH1 0x80
00000d03: DUP4
00000d04: ADD
00000d05: DUP10
00000d06: SWAP1
00000d07: MSTORE
00000d08: PUSH1 0xa0
00000d0a: DUP4
00000d0b: ADD
00000d0c: DUP9
00000d0d: SWAP1
00000d0e: MSTORE
00000d0f: PUSH1 0xc0
00000d11: DUP4
00000d12: ADD
00000d13: SWAP2
00000d14: SWAP1
00000d15: SWAP2
00000d16: MSTORE
00000d17: PUSH1 0xff
00000d19: DUP7
00000d1a: AND
00000d1b: PUSH1 0xe0
00000d1d: DUP4
00000d1e: ADD
00000d1f: MSTORE
00000d20: PUSH2 0x0100
00000d23: DUP3
00000d24: ADD
00000d25: DUP6
00000d26: SWAP1
00000d27: MSTORE
00000d28: PUSH2 0x0120
00000d2b: DUP3
00000d2c: ADD
00000d2d: DUP5
00000d2e: SWAP1
00000d2f: MSTORE
00000d30: MLOAD
00000d31: PUSH32 0x1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0
00000d52: SWAP2
00000d53: DUP2
00000d54: SWAP1
00000d55: SUB
00000d56: PUSH2 0x0140
00000d59: ADD
00000d5a: SWAP1
00000d5b: LOG1
00000d5c: POP
00000d5d: POP
00000d5e: POP
00000d5f: POP
00000d60: POP
00000d61: POP
00000d62: POP
00000d63: POP
00000d64: POP
00000d65: POP
00000d66: JUMP
00000d67: JUMPDEST
00000d68: CALLER
00000d69: PUSH1 0x01
00000d6b: PUSH1 0xa0
00000d6d: PUSH1 0x02
00000d6f: EXP
00000d70: SUB
00000d71: AND
00000d72: PUSH1 0x00
00000d74: DUP2
00000d75: DUP2
00000d76: MSTORE
00000d77: PUSH1 0x00
00000d79: DUP1
00000d7a: MLOAD
00000d7b: PUSH1 0x20
00000d7d: PUSH2 0x15b3
00000d80: DUP4
00000d81: CODECOPY
00000d82: DUP2
00000d83: MLOAD
00000d84: SWAP2
00000d85: MSTORE
00000d86: PUSH1 0x20
00000d88: SWAP1
00000d89: DUP2
00000d8a: MSTORE
00000d8b: PUSH1 0x40
00000d8d: DUP1
00000d8e: DUP4
00000d8f: KECCAK256
00000d90: SLOAD
00000d91: DUP2
00000d92: MLOAD
00000d93: SWAP4
00000d94: DUP5
00000d95: MSTORE
00000d96: SWAP2
00000d97: DUP4
00000d98: ADD
00000d99: SWAP4
00000d9a: SWAP1
00000d9b: SWAP4
00000d9c: MSTORE
00000d9d: DUP2
00000d9e: DUP4
00000d9f: ADD
00000da0: DUP5
00000da1: SWAP1
00000da2: MSTORE
00000da3: PUSH1 0x60
00000da5: DUP3
00000da6: ADD
00000da7: MSTORE
00000da8: SWAP1
00000da9: MLOAD
00000daa: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567
00000dcb: SWAP2
00000dcc: DUP2
00000dcd: SWAP1
00000dce: SUB
00000dcf: PUSH1 0x80
00000dd1: ADD
00000dd2: SWAP1
00000dd3: LOG1
00000dd4: JUMPDEST
00000dd5: POP
00000dd6: JUMP
00000dd7: JUMPDEST
00000dd8: CALLER
00000dd9: PUSH1 0x01
00000ddb: PUSH1 0xa0
00000ddd: PUSH1 0x02
00000ddf: EXP
00000de0: SUB
00000de1: AND
00000de2: PUSH1 0x00
00000de4: SWAP1
00000de5: DUP2
00000de6: MSTORE
00000de7: PUSH1 0x00
00000de9: DUP1
00000dea: MLOAD
00000deb: PUSH1 0x20
00000ded: PUSH2 0x15b3
00000df0: DUP4
00000df1: CODECOPY
00000df2: DUP2
00000df3: MLOAD
00000df4: SWAP2
00000df5: MSTORE
00000df6: PUSH1 0x20
00000df8: MSTORE
00000df9: PUSH1 0x40
00000dfb: SWAP1
00000dfc: KECCAK256
00000dfd: SLOAD
00000dfe: DUP2
00000dff: SWAP1
00000e00: LT
00000e01: ISZERO
00000e02: PUSH2 0x0e0a
00000e05: JUMPI
00000e06: PUSH2 0x0002
00000e09: JUMP
00000e0a: JUMPDEST
00000e0b: CALLER
00000e0c: PUSH1 0x01
00000e0e: PUSH1 0xa0
00000e10: PUSH1 0x02
00000e12: EXP
00000e13: SUB
00000e14: AND
00000e15: PUSH1 0x00
00000e17: SWAP1
00000e18: DUP2
00000e19: MSTORE
00000e1a: PUSH1 0x00
00000e1c: DUP1
00000e1d: MLOAD
00000e1e: PUSH1 0x20
00000e20: PUSH2 0x15b3
00000e23: DUP4
00000e24: CODECOPY
00000e25: DUP2
00000e26: MLOAD
00000e27: SWAP2
00000e28: MSTORE
00000e29: PUSH1 0x20
00000e2b: MSTORE
00000e2c: PUSH1 0x40
00000e2e: SWAP1
00000e2f: KECCAK256
00000e30: SLOAD
00000e31: PUSH2 0x0e4c
00000e34: SWAP1
00000e35: DUP3
00000e36: JUMPDEST
00000e37: PUSH1 0x00
00000e39: PUSH2 0x15aa
00000e3c: DUP4
00000e3d: DUP4
00000e3e: GT
00000e3f: ISZERO
00000e40: JUMPDEST
00000e41: DUP1
00000e42: ISZERO
00000e43: ISZERO
00000e44: PUSH2 0x0dd4
00000e47: JUMPI
00000e48: PUSH2 0x0002
00000e4b: JUMP
00000e4c: JUMPDEST
00000e4d: CALLER
00000e4e: PUSH1 0x01
00000e50: PUSH1 0xa0
00000e52: PUSH1 0x02
00000e54: EXP
00000e55: SUB
00000e56: AND
00000e57: PUSH1 0x00
00000e59: DUP2
00000e5a: DUP2
00000e5b: MSTORE
00000e5c: PUSH1 0x00
00000e5e: DUP1
00000e5f: MLOAD
00000e60: PUSH1 0x20
00000e62: PUSH2 0x15b3
00000e65: DUP4
00000e66: CODECOPY
00000e67: DUP2
00000e68: MLOAD
00000e69: SWAP2
00000e6a: MSTORE
00000e6b: PUSH1 0x20
00000e6d: MSTORE
00000e6e: PUSH1 0x40
00000e70: DUP1
00000e71: DUP3
00000e72: KECCAK256
00000e73: SWAP4
00000e74: SWAP1
00000e75: SWAP4
00000e76: SSTORE
00000e77: SWAP2
00000e78: MLOAD
00000e79: SWAP1
00000e7a: SWAP2
00000e7b: DUP4
00000e7c: SWAP2
00000e7d: SWAP1
00000e7e: DUP2
00000e7f: DUP2
00000e80: DUP2
00000e81: DUP6
00000e82: DUP8
00000e83: PUSH2 0x8502
00000e86: GAS
00000e87: SUB
00000e88: CALL
00000e89: SWAP3
00000e8a: POP
00000e8b: POP
00000e8c: POP
00000e8d: ISZERO
00000e8e: ISZERO
00000e8f: PUSH2 0x0d67
00000e92: JUMPI
00000e93: PUSH2 0x0002
00000e96: JUMP
00000e97: JUMPDEST
00000e98: DUP2
00000e99: PUSH1 0x01
00000e9b: PUSH1 0xa0
00000e9d: PUSH1 0x02
00000e9f: EXP
00000ea0: SUB
00000ea1: AND
00000ea2: PUSH4 0x23b872dd
00000ea7: CALLER
00000ea8: ADDRESS
00000ea9: DUP5
00000eaa: PUSH1 0x00
00000eac: PUSH1 0x40
00000eae: MLOAD
00000eaf: PUSH1 0x20
00000eb1: ADD
00000eb2: MSTORE
00000eb3: PUSH1 0x40
00000eb5: MLOAD
00000eb6: DUP5
00000eb7: PUSH1 0xe0
00000eb9: PUSH1 0x02
00000ebb: EXP
00000ebc: MUL
00000ebd: DUP2
00000ebe: MSTORE
00000ebf: PUSH1 0x04
00000ec1: ADD
00000ec2: DUP1
00000ec3: DUP5
00000ec4: PUSH1 0x01
00000ec6: PUSH1 0xa0
00000ec8: PUSH1 0x02
00000eca: EXP
00000ecb: SUB
00000ecc: AND
00000ecd: DUP2
00000ece: MSTORE
00000ecf: PUSH1 0x20
00000ed1: ADD
00000ed2: DUP4
00000ed3: PUSH1 0x01
00000ed5: PUSH1 0xa0
00000ed7: PUSH1 0x02
00000ed9: EXP
00000eda: SUB
00000edb: AND
00000edc: DUP2
00000edd: MSTORE
00000ede: PUSH1 0x20
00000ee0: ADD
00000ee1: DUP3
00000ee2: DUP2
00000ee3: MSTORE
00000ee4: PUSH1 0x20
00000ee6: ADD
00000ee7: SWAP4
00000ee8: POP
00000ee9: POP
00000eea: POP
00000eeb: POP
00000eec: PUSH1 0x20
00000eee: PUSH1 0x40
00000ef0: MLOAD
00000ef1: DUP1
00000ef2: DUP4
00000ef3: SUB
00000ef4: DUP2
00000ef5: PUSH1 0x00
00000ef7: DUP8
00000ef8: DUP1
00000ef9: EXTCODESIZE
00000efa: ISZERO
00000efb: PUSH2 0x0002
00000efe: JUMPI
00000eff: PUSH1 0x32
00000f01: GAS
00000f02: SUB
00000f03: CALL
00000f04: ISZERO
00000f05: PUSH2 0x0002
00000f08: JUMPI
00000f09: POP
00000f0a: POP
00000f0b: PUSH1 0x40
00000f0d: MLOAD
00000f0e: MLOAD
00000f0f: ISZERO
00000f10: ISZERO
00000f11: SWAP1
00000f12: POP
00000f13: PUSH2 0x0f1b
00000f16: JUMPI
00000f17: PUSH2 0x0002
00000f1a: JUMP
00000f1b: JUMPDEST
00000f1c: PUSH1 0x01
00000f1e: PUSH1 0xa0
00000f20: PUSH1 0x02
00000f22: EXP
00000f23: SUB
00000f24: DUP3
00000f25: DUP2
00000f26: AND
00000f27: PUSH1 0x00
00000f29: SWAP1
00000f2a: DUP2
00000f2b: MSTORE
00000f2c: PUSH1 0x06
00000f2e: PUSH1 0x20
00000f30: SWAP1
00000f31: DUP2
00000f32: MSTORE
00000f33: PUSH1 0x40
00000f35: DUP1
00000f36: DUP4
00000f37: KECCAK256
00000f38: CALLER
00000f39: SWAP1
00000f3a: SWAP5
00000f3b: AND
00000f3c: DUP4
00000f3d: MSTORE
00000f3e: SWAP3
00000f3f: SWAP1
00000f40: MSTORE
00000f41: KECCAK256
00000f42: SLOAD
00000f43: PUSH2 0x0f4c
00000f46: SWAP1
00000f47: DUP3
00000f48: PUSH2 0x054e
00000f4b: JUMP
00000f4c: JUMPDEST
00000f4d: PUSH1 0x01
00000f4f: PUSH1 0xa0
00000f51: PUSH1 0x02
00000f53: EXP
00000f54: SUB
00000f55: DUP4
00000f56: DUP2
00000f57: AND
00000f58: PUSH1 0x00
00000f5a: DUP2
00000f5b: DUP2
00000f5c: MSTORE
00000f5d: PUSH1 0x06
00000f5f: PUSH1 0x20
00000f61: SWAP1
00000f62: DUP2
00000f63: MSTORE
00000f64: PUSH1 0x40
00000f66: DUP1
00000f67: DUP4
00000f68: KECCAK256
00000f69: CALLER
00000f6a: SWAP1
00000f6b: SWAP6
00000f6c: AND
00000f6d: DUP1
00000f6e: DUP5
00000f6f: MSTORE
00000f70: SWAP5
00000f71: DUP3
00000f72: MSTORE
00000f73: SWAP2
00000f74: DUP3
00000f75: SWAP1
00000f76: KECCAK256
00000f77: DUP6
00000f78: SWAP1
00000f79: SSTORE
00000f7a: DUP2
00000f7b: MLOAD
00000f7c: SWAP3
00000f7d: DUP4
00000f7e: MSTORE
00000f7f: DUP3
00000f80: ADD
00000f81: SWAP3
00000f82: SWAP1
00000f83: SWAP3
00000f84: MSTORE
00000f85: DUP1
00000f86: DUP3
00000f87: ADD
00000f88: DUP5
00000f89: SWAP1
00000f8a: MSTORE
00000f8b: PUSH1 0x60
00000f8d: DUP2
00000f8e: ADD
00000f8f: SWAP3
00000f90: SWAP1
00000f91: SWAP3
00000f92: MSTORE
00000f93: MLOAD
00000f94: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7
00000fb5: SWAP2
00000fb6: DUP2
00000fb7: SWAP1
00000fb8: SUB
00000fb9: PUSH1 0x80
00000fbb: ADD
00000fbc: SWAP1
00000fbd: LOG1
00000fbe: POP
00000fbf: POP
00000fc0: JUMP
00000fc1: JUMPDEST
00000fc2: PUSH1 0x03
00000fc4: SLOAD
00000fc5: DUP2
00000fc6: GT
00000fc7: ISZERO
00000fc8: PUSH2 0x0fd0
00000fcb: JUMPI
00000fcc: PUSH2 0x0002
00000fcf: JUMP
00000fd0: JUMPDEST
00000fd1: PUSH1 0x03
00000fd3: SSTORE
00000fd4: JUMP
00000fd5: JUMPDEST
00000fd6: PUSH1 0x05
00000fd8: SLOAD
00000fd9: DUP2
00000fda: LT
00000fdb: DUP1
00000fdc: PUSH2 0x0fe6
00000fdf: JUMPI
00000fe0: POP
00000fe1: PUSH1 0x04
00000fe3: SLOAD
00000fe4: DUP2
00000fe5: GT
00000fe6: JUMPDEST
00000fe7: ISZERO
00000fe8: PUSH2 0x0ff0
00000feb: JUMPI
00000fec: PUSH2 0x0002
00000fef: JUMP
00000ff0: JUMPDEST
00000ff1: PUSH1 0x05
00000ff3: SSTORE
00000ff4: JUMP
00000ff5: JUMPDEST
00000ff6: POP
00000ff7: PUSH1 0x01
00000ff9: JUMPDEST
00000ffa: SWAP13
00000ffb: SWAP12
00000ffc: POP
00000ffd: POP
00000ffe: POP
00000fff: POP
00001000: POP
00001001: POP
00001002: POP
00001003: POP
00001004: POP
00001005: POP
00001006: POP
00001007: POP
00001008: JUMP
00001009: JUMPDEST
0000100a: LT
0000100b: ISZERO
0000100c: JUMPDEST
0000100d: ISZERO
0000100e: ISZERO
0000100f: PUSH2 0x0ff5
00001012: JUMPI
00001013: POP
00001014: PUSH1 0x00
00001016: PUSH2 0x0ff9
00001019: JUMP
0000101a: JUMPDEST
0000101b: PUSH1 0x01
0000101d: DUP1
0000101e: SLOAD
0000101f: PUSH1 0x01
00001021: PUSH1 0xa0
00001023: PUSH1 0x02
00001025: EXP
00001026: SUB
00001027: NOT
00001028: AND
00001029: DUP3
0000102a: OR
0000102b: SWAP1
0000102c: SSTORE
0000102d: POP
0000102e: JUMP
0000102f: JUMPDEST
00001030: PUSH1 0x04
00001032: SLOAD
00001033: DUP2
00001034: GT
00001035: DUP1
00001036: PUSH2 0x1040
00001039: JUMPI
0000103a: POP
0000103b: PUSH1 0x05
0000103d: SLOAD
0000103e: DUP2
0000103f: LT
00001040: JUMPDEST
00001041: ISZERO
00001042: PUSH2 0x104a
00001045: JUMPI
00001046: PUSH2 0x0002
00001049: JUMP
0000104a: JUMPDEST
0000104b: PUSH1 0x04
0000104d: SSTORE
0000104e: JUMP
0000104f: JUMPDEST
00001050: PUSH1 0x00
00001052: DUP1
00001053: SLOAD
00001054: PUSH1 0x01
00001056: PUSH1 0xa0
00001058: PUSH1 0x02
0000105a: EXP
0000105b: SUB
0000105c: NOT
0000105d: AND
0000105e: DUP3
0000105f: OR
00001060: SWAP1
00001061: SSTORE
00001062: POP
00001063: JUMP
00001064: JUMPDEST
00001065: PUSH1 0x01
00001067: PUSH1 0xa0
00001069: PUSH1 0x02
0000106b: EXP
0000106c: SUB
0000106d: DUP3
0000106e: DUP2
0000106f: AND
00001070: PUSH1 0x00
00001072: SWAP1
00001073: DUP2
00001074: MSTORE
00001075: PUSH1 0x06
00001077: PUSH1 0x20
00001079: SWAP1
0000107a: DUP2
0000107b: MSTORE
0000107c: PUSH1 0x40
0000107e: DUP1
0000107f: DUP4
00001080: KECCAK256
00001081: CALLER
00001082: SWAP1
00001083: SWAP5
00001084: AND
00001085: DUP4
00001086: MSTORE
00001087: SWAP3
00001088: SWAP1
00001089: MSTORE
0000108a: KECCAK256
0000108b: SLOAD
0000108c: DUP2
0000108d: SWAP1
0000108e: LT
0000108f: ISZERO
00001090: PUSH2 0x1098
00001093: JUMPI
00001094: PUSH2 0x0002
00001097: JUMP
00001098: JUMPDEST
00001099: PUSH1 0x01
0000109b: PUSH1 0xa0
0000109d: PUSH1 0x02
0000109f: EXP
000010a0: SUB
000010a1: DUP3
000010a2: DUP2
000010a3: AND
000010a4: PUSH1 0x00
000010a6: SWAP1
000010a7: DUP2
000010a8: MSTORE
000010a9: PUSH1 0x06
000010ab: PUSH1 0x20
000010ad: SWAP1
000010ae: DUP2
000010af: MSTORE
000010b0: PUSH1 0x40
000010b2: DUP1
000010b3: DUP4
000010b4: KECCAK256
000010b5: CALLER
000010b6: SWAP1
000010b7: SWAP5
000010b8: AND
000010b9: DUP4
000010ba: MSTORE
000010bb: SWAP3
000010bc: SWAP1
000010bd: MSTORE
000010be: KECCAK256
000010bf: SLOAD
000010c0: PUSH2 0x10c9
000010c3: SWAP1
000010c4: DUP3
000010c5: PUSH2 0x0e36
000010c8: JUMP
000010c9: JUMPDEST
000010ca: PUSH1 0x01
000010cc: PUSH1 0xa0
000010ce: PUSH1 0x02
000010d0: EXP
000010d1: SUB
000010d2: DUP4
000010d3: DUP2
000010d4: AND
000010d5: PUSH1 0x00
000010d7: DUP2
000010d8: DUP2
000010d9: MSTORE
000010da: PUSH1 0x06
000010dc: PUSH1 0x20
000010de: SWAP1
000010df: DUP2
000010e0: MSTORE
000010e1: PUSH1 0x40
000010e3: DUP1
000010e4: DUP4
000010e5: KECCAK256
000010e6: CALLER
000010e7: SWAP1
000010e8: SWAP6
000010e9: AND
000010ea: DUP1
000010eb: DUP5
000010ec: MSTORE
000010ed: SWAP5
000010ee: DUP3
000010ef: MSTORE
000010f0: DUP1
000010f1: DUP4
000010f2: KECCAK256
000010f3: SWAP6
000010f4: SWAP1
000010f5: SWAP6
000010f6: SSTORE
000010f7: DUP5
000010f8: MLOAD
000010f9: DUP2
000010fa: ADD
000010fb: DUP3
000010fc: SWAP1
000010fd: MSTORE
000010fe: DUP5
000010ff: MLOAD
00001100: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
00001121: DUP2
00001122: MSTORE
00001123: PUSH1 0x04
00001125: DUP2
00001126: ADD
00001127: SWAP5
00001128: SWAP1
00001129: SWAP5
0000112a: MSTORE
0000112b: PUSH1 0x24
0000112d: DUP5
0000112e: ADD
0000112f: DUP7
00001130: SWAP1
00001131: MSTORE
00001132: SWAP4
00001133: MLOAD
00001134: SWAP2
00001135: SWAP4
00001136: PUSH4 0xa9059cbb
0000113b: SWAP4
0000113c: PUSH1 0x44
0000113e: DUP2
0000113f: DUP2
00001140: ADD
00001141: SWAP5
00001142: SWAP3
00001143: SWAP4
00001144: SWAP2
00001145: DUP4
00001146: SWAP1
00001147: SUB
00001148: ADD
00001149: SWAP1
0000114a: DUP3
0000114b: SWAP1
0000114c: DUP8
0000114d: DUP1
0000114e: EXTCODESIZE
0000114f: ISZERO
00001150: PUSH2 0x0002
00001153: JUMPI
00001154: PUSH1 0x32
00001156: GAS
00001157: SUB
00001158: CALL
00001159: ISZERO
0000115a: PUSH2 0x0002
0000115d: JUMPI
0000115e: POP
0000115f: POP
00001160: PUSH1 0x40
00001162: MLOAD
00001163: MLOAD
00001164: ISZERO
00001165: ISZERO
00001166: SWAP1
00001167: POP
00001168: PUSH2 0x1170
0000116b: JUMPI
0000116c: PUSH2 0x0002
0000116f: JUMP
00001170: JUMPDEST
00001171: PUSH1 0x01
00001173: PUSH1 0xa0
00001175: PUSH1 0x02
00001177: EXP
00001178: SUB
00001179: DUP3
0000117a: DUP2
0000117b: AND
0000117c: PUSH1 0x00
0000117e: DUP2
0000117f: DUP2
00001180: MSTORE
00001181: PUSH1 0x06
00001183: PUSH1 0x20
00001185: SWAP1
00001186: DUP2
00001187: MSTORE
00001188: PUSH1 0x40
0000118a: DUP1
0000118b: DUP4
0000118c: KECCAK256
0000118d: CALLER
0000118e: SWAP1
0000118f: SWAP6
00001190: AND
00001191: DUP1
00001192: DUP5
00001193: MSTORE
00001194: SWAP5
00001195: DUP3
00001196: MSTORE
00001197: SWAP2
00001198: DUP3
00001199: SWAP1
0000119a: KECCAK256
0000119b: SLOAD
0000119c: DUP3
0000119d: MLOAD
0000119e: SWAP4
0000119f: DUP5
000011a0: MSTORE
000011a1: SWAP1
000011a2: DUP4
000011a3: ADD
000011a4: SWAP4
000011a5: SWAP1
000011a6: SWAP4
000011a7: MSTORE
000011a8: DUP2
000011a9: DUP2
000011aa: ADD
000011ab: DUP5
000011ac: SWAP1
000011ad: MSTORE
000011ae: PUSH1 0x60
000011b0: DUP3
000011b1: ADD
000011b2: SWAP3
000011b3: SWAP1
000011b4: SWAP3
000011b5: MSTORE
000011b6: SWAP1
000011b7: MLOAD
000011b8: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567
000011d9: SWAP2
000011da: DUP2
000011db: SWAP1
000011dc: SUB
000011dd: PUSH1 0x80
000011df: ADD
000011e0: SWAP1
000011e1: LOG1
000011e2: POP
000011e3: POP
000011e4: JUMP
000011e5: JUMPDEST
000011e6: CALLER
000011e7: PUSH1 0x01
000011e9: PUSH1 0xa0
000011eb: PUSH1 0x02
000011ed: EXP
000011ee: SUB
000011ef: AND
000011f0: PUSH1 0x00
000011f2: DUP2
000011f3: DUP2
000011f4: MSTORE
000011f5: PUSH1 0x00
000011f7: DUP1
000011f8: MLOAD
000011f9: PUSH1 0x20
000011fb: PUSH2 0x15b3
000011fe: DUP4
000011ff: CODECOPY
00001200: DUP2
00001201: MLOAD
00001202: SWAP2
00001203: MSTORE
00001204: PUSH1 0x20
00001206: SWAP1
00001207: DUP2
00001208: MSTORE
00001209: PUSH1 0x40
0000120b: DUP1
0000120c: DUP4
0000120d: KECCAK256
0000120e: DUP6
0000120f: SWAP1
00001210: SSTORE
00001211: DUP1
00001212: MLOAD
00001213: SWAP3
00001214: DUP4
00001215: MSTORE
00001216: SWAP1
00001217: DUP3
00001218: ADD
00001219: SWAP3
0000121a: SWAP1
0000121b: SWAP3
0000121c: MSTORE
0000121d: CALLVALUE
0000121e: DUP2
0000121f: DUP4
00001220: ADD
00001221: MSTORE
00001222: PUSH1 0x60
00001224: DUP2
00001225: ADD
00001226: SWAP3
00001227: SWAP1
00001228: SWAP3
00001229: MSTORE
0000122a: MLOAD
0000122b: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7
0000124c: SWAP2
0000124d: DUP2
0000124e: SWAP1
0000124f: SUB
00001250: PUSH1 0x80
00001252: ADD
00001253: SWAP1
00001254: LOG1
00001255: JUMP
00001256: JUMPDEST
00001257: PUSH1 0x02
00001259: DUP1
0000125a: SLOAD
0000125b: PUSH1 0x01
0000125d: PUSH1 0xa0
0000125f: PUSH1 0x02
00001261: EXP
00001262: SUB
00001263: NOT
00001264: AND
00001265: DUP3
00001266: OR
00001267: SWAP1
00001268: SSTORE
00001269: POP
0000126a: JUMP
0000126b: JUMPDEST
0000126c: DUP1
0000126d: SWAP4
0000126e: POP
0000126f: JUMPDEST
00001270: POP
00001271: POP
00001272: POP
00001273: SWAP11
00001274: SWAP10
00001275: POP
00001276: POP
00001277: POP
00001278: POP
00001279: POP
0000127a: POP
0000127b: POP
0000127c: POP
0000127d: POP
0000127e: POP
0000127f: JUMP
00001280: JUMPDEST
00001281: PUSH1 0x01
00001283: PUSH1 0xa0
00001285: PUSH1 0x02
00001287: EXP
00001288: SUB
00001289: DUP9
0000128a: AND
0000128b: PUSH1 0x00
0000128d: SWAP1
0000128e: DUP2
0000128f: MSTORE
00001290: PUSH1 0x08
00001292: PUSH1 0x20
00001294: SWAP1
00001295: DUP2
00001296: MSTORE
00001297: PUSH1 0x40
00001299: DUP1
0000129a: DUP4
0000129b: KECCAK256
0000129c: DUP7
0000129d: DUP5
0000129e: MSTORE
0000129f: SWAP1
000012a0: SWAP2
000012a1: MSTORE
000012a2: SWAP1
000012a3: KECCAK256
000012a4: SLOAD
000012a5: PUSH2 0x12af
000012a8: SWAP1
000012a9: DUP15
000012aa: SWAP1
000012ab: PUSH2 0x0e36
000012ae: JUMP
000012af: JUMPDEST
000012b0: PUSH1 0x01
000012b2: PUSH1 0xa0
000012b4: PUSH1 0x02
000012b6: EXP
000012b7: SUB
000012b8: DUP14
000012b9: DUP2
000012ba: AND
000012bb: PUSH1 0x00
000012bd: SWAP1
000012be: DUP2
000012bf: MSTORE
000012c0: PUSH1 0x06
000012c2: PUSH1 0x20
000012c4: SWAP1
000012c5: DUP2
000012c6: MSTORE
000012c7: PUSH1 0x40
000012c9: DUP1
000012ca: DUP4
000012cb: KECCAK256
000012cc: SWAP4
000012cd: DUP14
000012ce: AND
000012cf: DUP4
000012d0: MSTORE
000012d1: SWAP3
000012d2: SWAP1
000012d3: MSTORE
000012d4: KECCAK256
000012d5: SLOAD
000012d6: SWAP1
000012d7: SWAP3
000012d8: POP
000012d9: DUP12
000012da: SWAP1
000012db: PUSH2 0x12e4
000012de: SWAP1
000012df: DUP16
000012e0: PUSH2 0x0984
000012e3: JUMP
000012e4: JUMPDEST
000012e5: DUP2
000012e6: ISZERO
000012e7: PUSH2 0x0002
000012ea: JUMPI
000012eb: DIV
000012ec: SWAP1
000012ed: POP
000012ee: DUP1
000012ef: DUP3
000012f0: LT
000012f1: ISZERO
000012f2: PUSH2 0x126b
000012f5: JUMPI
000012f6: DUP2
000012f7: SWAP4
000012f8: POP
000012f9: PUSH2 0x126f
000012fc: JUMP
000012fd: JUMPDEST
000012fe: SWAP4
000012ff: SWAP3
00001300: POP
00001301: POP
00001302: POP
00001303: JUMP
00001304: JUMPDEST
00001305: DUP2
00001306: ISZERO
00001307: PUSH2 0x0002
0000130a: JUMPI
0000130b: DIV
0000130c: SWAP4
0000130d: POP
0000130e: PUSH8 0x0de0b6b3a7640000
00001317: PUSH2 0x1325
0000131a: DUP7
0000131b: PUSH1 0x04
0000131d: PUSH1 0x00
0000131f: POP
00001320: SLOAD
00001321: PUSH2 0x0984
00001324: JUMP
00001325: JUMPDEST
00001326: DUP2
00001327: ISZERO
00001328: PUSH2 0x0002
0000132b: JUMPI
0000132c: PUSH1 0x02
0000132e: SLOAD
0000132f: SWAP2
00001330: SWAP1
00001331: DIV
00001332: SWAP4
00001333: POP
00001334: PUSH1 0x00
00001336: SWAP3
00001337: POP
00001338: PUSH1 0x01
0000133a: PUSH1 0xa0
0000133c: PUSH1 0x02
0000133e: EXP
0000133f: SUB
00001340: AND
00001341: DUP3
00001342: EQ
00001343: PUSH2 0x13f8
00001346: JUMPI
00001347: PUSH1 0x02
00001349: SLOAD
0000134a: PUSH1 0x40
0000134c: DUP1
0000134d: MLOAD
0000134e: PUSH1 0x20
00001350: SWAP1
00001351: DUP2
00001352: ADD
00001353: DUP6
00001354: SWAP1
00001355: MSTORE
00001356: DUP2
00001357: MLOAD
00001358: PUSH32 0x1cbd051900000000000000000000000000000000000000000000000000000000
00001379: DUP2
0000137a: MSTORE
0000137b: PUSH1 0x01
0000137d: PUSH1 0xa0
0000137f: PUSH1 0x02
00001381: EXP
00001382: SUB
00001383: DUP11
00001384: DUP2
00001385: AND
00001386: PUSH1 0x04
00001388: DUP4
00001389: ADD
0000138a: MSTORE
0000138b: SWAP3
0000138c: MLOAD
0000138d: SWAP4
0000138e: SWAP1
0000138f: SWAP3
00001390: AND
00001391: SWAP3
00001392: PUSH4 0x1cbd0519
00001397: SWAP3
00001398: PUSH1 0x24
0000139a: DUP2
0000139b: DUP2
0000139c: ADD
0000139d: SWAP4
0000139e: SWAP3
0000139f: SWAP2
000013a0: DUP3
000013a1: SWAP1
000013a2: SUB
000013a3: ADD
000013a4: DUP2
000013a5: DUP9
000013a6: DUP8
000013a7: DUP1
000013a8: EXTCODESIZE
000013a9: ISZERO
000013aa: PUSH2 0x0002
000013ad: JUMPI
000013ae: PUSH1 0x32
000013b0: GAS
000013b1: SUB
000013b2: CALL
000013b3: ISZERO
000013b4: PUSH2 0x0002
000013b7: JUMPI
000013b8: POP
000013b9: POP
000013ba: PUSH1 0x40
000013bc: MLOAD
000013bd: MLOAD
000013be: SWAP2
000013bf: POP
000013c0: POP
000013c1: PUSH1 0x01
000013c3: DUP2
000013c4: EQ
000013c5: ISZERO
000013c6: PUSH2 0x13eb
000013c9: JUMPI
000013ca: PUSH8 0x0de0b6b3a7640000
000013d3: PUSH2 0x13e1
000013d6: DUP7
000013d7: PUSH1 0x05
000013d9: PUSH1 0x00
000013db: POP
000013dc: SLOAD
000013dd: PUSH2 0x0984
000013e0: JUMP
000013e1: JUMPDEST
000013e2: DUP2
000013e3: ISZERO
000013e4: PUSH2 0x0002
000013e7: JUMPI
000013e8: DIV
000013e9: SWAP2
000013ea: POP
000013eb: JUMPDEST
000013ec: DUP1
000013ed: PUSH1 0x02
000013ef: EQ
000013f0: ISZERO
000013f1: PUSH2 0x13f8
000013f4: JUMPI
000013f5: DUP3
000013f6: SWAP2
000013f7: POP
000013f8: JUMPDEST
000013f9: PUSH1 0x01
000013fb: PUSH1 0xa0
000013fd: PUSH1 0x02
000013ff: EXP
00001400: SUB
00001401: DUP11
00001402: DUP2
00001403: AND
00001404: PUSH1 0x00
00001406: SWAP1
00001407: DUP2
00001408: MSTORE
00001409: PUSH1 0x06
0000140b: PUSH1 0x20
0000140d: SWAP1
0000140e: DUP2
0000140f: MSTORE
00001410: PUSH1 0x40
00001412: DUP1
00001413: DUP4
00001414: KECCAK256
00001415: CALLER
00001416: SWAP1
00001417: SWAP5
00001418: AND
00001419: DUP4
0000141a: MSTORE
0000141b: SWAP3
0000141c: SWAP1
0000141d: MSTORE
0000141e: KECCAK256
0000141f: SLOAD
00001420: PUSH2 0x142d
00001423: SWAP1
00001424: PUSH2 0x1470
00001427: DUP8
00001428: DUP7
00001429: PUSH2 0x054e
0000142c: JUMP
0000142d: JUMPDEST
0000142e: PUSH1 0x01
00001430: PUSH1 0xa0
00001432: PUSH1 0x02
00001434: EXP
00001435: SUB
00001436: DUP12
00001437: DUP2
00001438: AND
00001439: PUSH1 0x00
0000143b: SWAP1
0000143c: DUP2
0000143d: MSTORE
0000143e: PUSH1 0x06
00001440: PUSH1 0x20
00001442: SWAP1
00001443: DUP2
00001444: MSTORE
00001445: PUSH1 0x40
00001447: DUP1
00001448: DUP4
00001449: KECCAK256
0000144a: CALLER
0000144b: DUP6
0000144c: AND
0000144d: DUP5
0000144e: MSTORE
0000144f: SWAP1
00001450: SWAP2
00001451: MSTORE
00001452: DUP1
00001453: DUP3
00001454: KECCAK256
00001455: SWAP4
00001456: SWAP1
00001457: SWAP4
00001458: SSTORE
00001459: SWAP1
0000145a: DUP9
0000145b: AND
0000145c: DUP2
0000145d: MSTORE
0000145e: KECCAK256
0000145f: SLOAD
00001460: PUSH2 0x1475
00001463: SWAP1
00001464: PUSH2 0x14bb
00001467: PUSH2 0x14c0
0000146a: DUP9
0000146b: DUP7
0000146c: PUSH2 0x054e
0000146f: JUMP
00001470: JUMPDEST
00001471: PUSH2 0x0e36
00001474: JUMP
00001475: JUMPDEST
00001476: PUSH1 0x01
00001478: PUSH1 0xa0
0000147a: PUSH1 0x02
0000147c: EXP
0000147d: SUB
0000147e: DUP12
0000147f: DUP2
00001480: AND
00001481: PUSH1 0x00
00001483: SWAP1
00001484: DUP2
00001485: MSTORE
00001486: PUSH1 0x06
00001488: PUSH1 0x20
0000148a: SWAP1
0000148b: DUP2
0000148c: MSTORE
0000148d: PUSH1 0x40
0000148f: DUP1
00001490: DUP4
00001491: KECCAK256
00001492: DUP12
00001493: DUP6
00001494: AND
00001495: DUP5
00001496: MSTORE
00001497: SWAP1
00001498: SWAP2
00001499: MSTORE
0000149a: DUP1
0000149b: DUP3
0000149c: KECCAK256
0000149d: SWAP4
0000149e: SWAP1
0000149f: SWAP4
000014a0: SSTORE
000014a1: PUSH1 0x01
000014a3: SLOAD
000014a4: SWAP1
000014a5: SWAP2
000014a6: AND
000014a7: DUP2
000014a8: MSTORE
000014a9: KECCAK256
000014aa: SLOAD
000014ab: PUSH2 0x14c6
000014ae: SWAP1
000014af: PUSH2 0x14bb
000014b2: PUSH2 0x1517
000014b5: DUP8
000014b6: DUP8
000014b7: PUSH2 0x054e
000014ba: JUMP
000014bb: JUMPDEST
000014bc: PUSH2 0x054e
000014bf: JUMP
000014c0: JUMPDEST
000014c1: DUP8
000014c2: PUSH2 0x0e36
000014c5: JUMP
000014c6: JUMPDEST
000014c7: PUSH1 0x01
000014c9: PUSH1 0xa0
000014cb: PUSH1 0x02
000014cd: EXP
000014ce: SUB
000014cf: DUP12
000014d0: DUP2
000014d1: AND
000014d2: PUSH1 0x00
000014d4: SWAP1
000014d5: DUP2
000014d6: MSTORE
000014d7: PUSH1 0x06
000014d9: PUSH1 0x20
000014db: DUP2
000014dc: DUP2
000014dd: MSTORE
000014de: PUSH1 0x40
000014e0: DUP1
000014e1: DUP5
000014e2: KECCAK256
000014e3: PUSH1 0x01
000014e5: SLOAD
000014e6: DUP7
000014e7: AND
000014e8: DUP6
000014e9: MSTORE
000014ea: DUP3
000014eb: MSTORE
000014ec: DUP1
000014ed: DUP5
000014ee: KECCAK256
000014ef: SWAP6
000014f0: SWAP1
000014f1: SWAP6
000014f2: SSTORE
000014f3: DUP13
000014f4: DUP5
000014f5: AND
000014f6: DUP4
000014f7: MSTORE
000014f8: SWAP1
000014f9: DUP2
000014fa: MSTORE
000014fb: DUP4
000014fc: DUP3
000014fd: KECCAK256
000014fe: SWAP3
000014ff: DUP11
00001500: AND
00001501: DUP3
00001502: MSTORE
00001503: SWAP2
00001504: SWAP1
00001505: SWAP2
00001506: MSTORE
00001507: KECCAK256
00001508: SLOAD
00001509: PUSH2 0x151d
0000150c: SWAP1
0000150d: DUP11
0000150e: PUSH2 0x155f
00001511: DUP11
00001512: DUP10
00001513: PUSH2 0x0984
00001516: JUMP
00001517: JUMPDEST
00001518: DUP6
00001519: PUSH2 0x0e36
0000151c: JUMP
0000151d: JUMPDEST
0000151e: PUSH1 0x01
00001520: PUSH1 0xa0
00001522: PUSH1 0x02
00001524: EXP
00001525: SUB
00001526: DUP10
00001527: DUP2
00001528: AND
00001529: PUSH1 0x00
0000152b: SWAP1
0000152c: DUP2
0000152d: MSTORE
0000152e: PUSH1 0x06
00001530: PUSH1 0x20
00001532: SWAP1
00001533: DUP2
00001534: MSTORE
00001535: PUSH1 0x40
00001537: DUP1
00001538: DUP4
00001539: KECCAK256
0000153a: DUP12
0000153b: DUP6
0000153c: AND
0000153d: DUP5
0000153e: MSTORE
0000153f: SWAP1
00001540: SWAP2
00001541: MSTORE
00001542: DUP1
00001543: DUP3
00001544: KECCAK256
00001545: SWAP4
00001546: SWAP1
00001547: SWAP4
00001548: SSTORE
00001549: CALLER
0000154a: SWAP1
0000154b: SWAP2
0000154c: AND
0000154d: DUP2
0000154e: MSTORE
0000154f: KECCAK256
00001550: SLOAD
00001551: PUSH2 0x156b
00001554: SWAP1
00001555: DUP11
00001556: PUSH2 0x159e
00001559: DUP11
0000155a: DUP10
0000155b: PUSH2 0x0984
0000155e: JUMP
0000155f: JUMPDEST
00001560: DUP2
00001561: ISZERO
00001562: PUSH2 0x0002
00001565: JUMPI
00001566: DIV
00001567: PUSH2 0x0e36
0000156a: JUMP
0000156b: JUMPDEST
0000156c: PUSH1 0x01
0000156e: PUSH1 0xa0
00001570: PUSH1 0x02
00001572: EXP
00001573: SUB
00001574: DUP10
00001575: DUP2
00001576: AND
00001577: PUSH1 0x00
00001579: SWAP1
0000157a: DUP2
0000157b: MSTORE
0000157c: PUSH1 0x06
0000157e: PUSH1 0x20
00001580: SWAP1
00001581: DUP2
00001582: MSTORE
00001583: PUSH1 0x40
00001585: DUP1
00001586: DUP4
00001587: KECCAK256
00001588: CALLER
00001589: SWAP1
0000158a: SWAP5
0000158b: AND
0000158c: DUP4
0000158d: MSTORE
0000158e: SWAP3
0000158f: SWAP1
00001590: MSTORE
00001591: KECCAK256
00001592: SSTORE
00001593: POP
00001594: POP
00001595: POP
00001596: POP
00001597: POP
00001598: POP
00001599: POP
0000159a: POP
0000159b: POP
0000159c: POP
0000159d: JUMP
0000159e: JUMPDEST
0000159f: DUP2
000015a0: ISZERO
000015a1: PUSH2 0x0002
000015a4: JUMPI
000015a5: DIV
000015a6: PUSH2 0x054e
000015a9: JUMP
000015aa: JUMPDEST
000015ab: POP
000015ac: DUP1
000015ad: DUP3
000015ae: SUB
000015af: PUSH2 0x05de
000015b2: JUMP
000015b3: SLOAD
000015b4: UNKNOWN(0xCD)
000015b5: UNKNOWN(0xD3)
000015b6: PUSH10 0xe4e8a8515e52ca72ec81
000015c1: PUSH13 0x2101831ad1f18bf44102ed1714
000015cf: MSIZE
000015d0: UNKNOWN(0xC9)
000015d1: UNKNOWN(0xB4)
000015d2: UNKNOWN(0xF8)

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other codex Phantom ERC20 deposits enable trading fake balances for real assets 85 no
view
evidence_json
{
    "evidence": "`depositToken` trusts the token\u2019s return value and credits the requested amount without verifying actual token receipt; trades only move internal balances, so fake deposits can be swapped for real assets.",
    "locations": [
        "contracts/Contract.sol:227",
        "contracts/Contract.sol:230",
        "contracts/Contract.sol:231",
        "contracts/Contract.sol:254",
        "contracts/Contract.sol:268",
        "contracts/Contract.sol:277",
        "contracts/Contract.sol:281"
    ],
    "recommendation": "Require proof of actual token receipt by checking contract token balance before/after `transferFrom` and crediting only the delta, or enforce a strict token whitelist of known\u2011good ERC20s.",
    "exploit_scenario": "1) Attacker deploys a malicious ERC20 that returns `true` for `transferFrom`/`transfer` without moving balances. 2) Attacker calls `depositToken(malToken, X)`; EtherDelta credits `tokens[malToken][attacker] += X` even though no tokens arrived. 3) A victim places an order to buy `malToken` with ETH/valuable tokens. 4) Attacker fills the order via `trade`, which only moves internal balances; victim\u2019s real asset balance decreases while attacker\u2019s real asset balance increases. 5) Attacker withdraws ETH/real tokens via `withdraw`/`withdrawToken`. Victim withdrawing `malToken` receives nothing."
}
high other detector Untrusted CALL target/value reachable 60 yes yes
view
trace_id: 0xccda7d0ca6898dd5898335f03c06e091e5fb47256eb58911370764a344878430
call_targets: 0x0000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000002, 0x373c55c277b866a69dc047cad488154ab9759466
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0xccda7d0ca6898dd5898335f03c06e091e5fb47256eb58911370764a344878430",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000001",
        "0x0000000000000000000000000000000000000002",
        "0x373c55c277b866a69dc047cad488154ab9759466"
    ],
    "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": 738,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1716,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1867,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 12,
    "guards_detected": [],
    "untrusted_call_count": 12
}
high other detector ETH value transfer possible 55 yes yes
view
trace_id: 0xccda7d0ca6898dd5898335f03c06e091e5fb47256eb58911370764a344878430
call_targets: 0x0000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000002, 0x373c55c277b866a69dc047cad488154ab9759466
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0xccda7d0ca6898dd5898335f03c06e091e5fb47256eb58911370764a344878430",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000001",
        "0x0000000000000000000000000000000000000002",
        "0x373c55c277b866a69dc047cad488154ab9759466"
    ],
    "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": 738,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1716,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1867,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 12,
    "guards_detected": []
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 12
}