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

Analysis Run

019ba90f-831c-7330-83d3-a716e466e1d0

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

What survived the funnel

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

Confirmed
2
Validated
2
Source
Verified
Review Backing
Present
Best current signal
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
34687 artifact.fetch complete 1 / 3 3 months ago
34688 proxy.resolve complete 1 / 3 3 months ago
34689 tool.cast_disasm complete 1 / 3 3 months ago
34690 analysis.bundle complete 1 / 3 3 months ago
34691 capability.graph complete 1 / 3 3 months ago
34692 detector.run complete 1 / 3 3 months ago
34693 validation.fork complete 1 / 3 3 months ago
34848 report.consolidate complete 1 / 6 3 months ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
3
No findings?
no
Summary
Found 3 issues: reentrancy via accountLevelsAddr can overfill orders, AccountLevelsTest is unrestricted, and StandardToken approve has an allowance race condition.
View stdout
{"no_findings":false,"summary":"Found 3 issues: reentrancy via accountLevelsAddr can overfill orders, AccountLevelsTest is unrestricted, and StandardToken approve has an allowance race condition.","findings":[{"severity":"medium","category":"reentrancy","title":"External accountLevels call enables reentrancy and order overfill","exploit_scenario":"If the admin sets accountLevelsAddr to a malicious or compromised contract, its accountLevel() can reenter Bitcratic.trade() before orderFills is updated, allowing multiple fills of the same order and exceeding amountGet. The maker can be forced to trade more than intended.","recommendation":"Prevent reentrancy in trade/tradeBalances (e.g., mutex) and move orderFills updates before any external call, or cache account levels in storage and avoid external calls on the trade path.","evidence":"tradeBalances() calls AccountLevels(accountLevelsAddr).accountLevel(user) before balances are updated, and orderFills is incremented only after tradeBalances returns.","locations":["contracts/Contract.sol:265","contracts/Contract.sol:270","contracts/Contract.sol:260","contracts/Contract.sol:261"]},{"severity":"low","category":"access_control","title":"AccountLevelsTest allows arbitrary fee tier assignment","exploit_scenario":"If Bitcratic is configured to use AccountLevelsTest, any user can call setAccountLevel to grant themselves level 1/2 and receive fee rebates, reducing or eliminating fees.","recommendation":"Add access control (e.g., owner-only) to setAccountLevel or ensure this test contract is never used in production.","evidence":"setAccountLevel has no sender checks and writes accountLevels[user] directly.","locations":["contracts/Contract.sol:139","contracts/Contract.sol:142","contracts/Contract.sol:143"]},{"severity":"low","category":"auth","title":"ERC20 approve race condition","exploit_scenario":"A spender can front-run an allowance change from X to Y and spend both the old and new allowances, as approve overwrites the allowance directly.","recommendation":"Require setting allowance to 0 before changing it, or implement increase/decrease allowance functions.","evidence":"approve() sets allowed[msg.sender][_spender] = _value without requiring a zero reset.","locations":["contracts/Contract.sol:96","contracts/Contract.sol:97"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-bd_ma9dv
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: xhigh
reasoning summaries: auto
session id: 019ba910-3740-7e10-942f-318917b18f78
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

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

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.

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

thinking
**Preparing to locate AUDIT_BUNDLE.txt**
exec
/bin/bash -lc ls in /tmp/codex-bd_ma9dv succeeded in 9ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts

thinking
**Checking AUDIT_BUNDLE.txt**
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-bd_ma9dv succeeded in 7ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

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

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

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



thinking
**Analyzing contract for vulnerabilities**

I’m auditing the contract's code carefully, focusing on external calls, signature handling, reentrancy risks, and arithmetic checks. There’s a subtle reentrancy vulnerability if the admin sets a malicious accountLevels contract since an external call happens before critical state updates, potentially allowing order overfills. Other areas like token transfers, signature malleability, and zero-value trades seem mostly safe or result in harmless failures. This deep dive helps me pinpoint the most concerning risks to highlight.
thinking
**Continuing detailed vulnerability evaluation**

I'm digging further into encoding nuances, signature schemes, and various contract functions like AccountLevelsTest and StandardToken. The most notable risks include unrestricted account level changes in test contracts possibly misused if deployed, reentrancy through external calls, and known token approval race conditions. Overall, I’m compiling findings with severity and context for clear output.
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1,260p'" in /tmp/codex-bd_ma9dv succeeded in 11ms:
     1	pragma solidity ^0.4.11;
     2	
     3	contract SafeMath {
     4	  function safeMul(uint a, uint b) internal returns (uint) {
     5	    uint c = a * b;
     6	    assert(a == 0 || c / a == b);
     7	    return c;
     8	  }
     9	
    10	  function safeSub(uint a, uint b) internal returns (uint) {
    11	    assert(b <= a);
    12	    return a - b;
    13	  }
    14	
    15	  function safeAdd(uint a, uint b) internal returns (uint) {
    16	    uint c = a + b;
    17	    assert(c>=a && c>=b);
    18	    return c;
    19	  }
    20	

thinking
**Continuing to review tradeBalances lines**
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '260,520p'" in /tmp/codex-bd_ma9dv succeeded in 7ms:
   260	    tradeBalances(tokenGet, amountGet, tokenGive, amountGive, user, amount);
   261	    orderFills[user][hash] = safeAdd(orderFills[user][hash], amount);
   262	    Trade(tokenGet, amount, tokenGive, amountGive * amount / amountGet, user, msg.sender);
   263	  }
   264	
   265	  function tradeBalances(address tokenGet, uint amountGet, address tokenGive, uint amountGive, address user, uint amount) private {
   266	    uint feeMakeXfer = safeMul(amount, feeMake) / (1 ether);
   267	    uint feeTakeXfer = safeMul(amount, feeTake) / (1 ether);
   268	    uint feeRebateXfer = 0;
   269	    if (accountLevelsAddr != 0x0) {
   270	      uint accountLevel = AccountLevels(accountLevelsAddr).accountLevel(user);
   271	      if (accountLevel==1) feeRebateXfer = safeMul(amount, feeRebate) / (1 ether);
   272	      if (accountLevel==2) feeRebateXfer = feeTakeXfer;
   273	    }
   274	    tokens[tokenGet][msg.sender] = safeSub(tokens[tokenGet][msg.sender], safeAdd(amount, feeTakeXfer));
   275	    tokens[tokenGet][user] = safeAdd(tokens[tokenGet][user], safeSub(safeAdd(amount, feeRebateXfer), feeMakeXfer));
   276	    tokens[tokenGet][feeAccount] = safeAdd(tokens[tokenGet][feeAccount], safeSub(safeAdd(feeMakeXfer, feeTakeXfer), feeRebateXfer));
   277	    tokens[tokenGive][user] = safeSub(tokens[tokenGive][user], safeMul(amountGive, amount) / amountGet);
   278	    tokens[tokenGive][msg.sender] = safeAdd(tokens[tokenGive][msg.sender], safeMul(amountGive, amount) / amountGet);
   279	  }


thinking
**Summarizing vulnerability findings in JSON**

I'm gathering detailed vulnerability findings about reentrancy risks with accountLevelsAddr causing order overfill, access control issues with AccountLevelsTest, and a known ERC20 approve race condition. I'll prepare JSON output with clear severities, scenarios, recommendations, and code locations. Let’s make sure it’s concise and actionable!
thinking
{
  "no_findings": false,
  "summary": "Found 3 issues: reentrancy via accountLevelsAddr can overfill orders, AccountLevelsTest is unrestricted, and StandardToken approve has an allowance race condition.",
  "findings": [
    {
      "severity": "medium",
      "category": "reentrancy",
      "title": "External accountLevels call enables reentrancy and order overfill",
      "exploit_scenario": "If the admin sets accountLevelsAddr to a malicious or compromised contract, its accountLevel() can reenter Bitcratic.trade() before orderFills is updated, allowing multiple fills of the same order and exceeding amountGet. The maker can be forced to trade more than intended.",
      "recommendation": "Prevent reentrancy in trade/tradeBalances (e.g., mutex) and move orderFills updates before any external call, or cache account levels in storage and avoid external calls on the trade path.",
      "evidence": "tradeBalances() calls AccountLevels(accountLevelsAddr).accountLevel(user) before balances are updated, and orderFills is incremented only after tradeBalances returns.",
      "locations": [
        "contracts/Contract.sol:265",
        "contracts/Contract.sol:270",
        "contracts/Contract.sol:260",
        "contracts/Contract.sol:261"
      ]
    },
    {
      "severity": "low",
      "category": "access_control",
      "title": "AccountLevelsTest allows arbitrary fee tier assignment",
      "exploit_scenario": "If Bitcratic is configured to use AccountLevelsTest, any user can call setAccountLevel to grant themselves level 1/2 and receive fee rebates, reducing or eliminating fees.",
      "recommendation": "Add access control (e.g., owner-only) to setAccountLevel or ensure this test contract is never used in production.",
      "evidence": "setAccountLevel has no sender checks and writes accountLevels[user] directly.",
      "locations": [
        "contracts/Contract.sol:139",
        "contracts/Contract.sol:142",
        "contracts/Contract.sol:143"
      ]
    },
    {
      "severity": "low",
      "category": "auth",
      "title": "ERC20 approve race condition",
      "exploit_scenario": "A spender can front-run an allowance change from X to Y and spend both the old and new allowances, as approve overwrites the allowance directly.",
      "recommendation": "Require setting allowance to 0 before changing it, or implement increase/decrease allowance functions.",
      "evidence": "approve() sets allowed[msg.sender][_spender] = _value without requiring a zero reset.",
      "locations": [
        "contracts/Contract.sol:96",
        "contracts/Contract.sol:97"
      ]
    }
  ]
}
codex
{"no_findings":false,"summary":"Found 3 issues: reentrancy via accountLevelsAddr can overfill orders, AccountLevelsTest is unrestricted, and StandardToken approve has an allowance race condition.","findings":[{"severity":"medium","category":"reentrancy","title":"External accountLevels call enables reentrancy and order overfill","exploit_scenario":"If the admin sets accountLevelsAddr to a malicious or compromised contract, its accountLevel() can reenter Bitcratic.trade() before orderFills is updated, allowing multiple fills of the same order and exceeding amountGet. The maker can be forced to trade more than intended.","recommendation":"Prevent reentrancy in trade/tradeBalances (e.g., mutex) and move orderFills updates before any external call, or cache account levels in storage and avoid external calls on the trade path.","evidence":"tradeBalances() calls AccountLevels(accountLevelsAddr).accountLevel(user) before balances are updated, and orderFills is incremented only after tradeBalances returns.","locations":["contracts/Contract.sol:265","contracts/Contract.sol:270","contracts/Contract.sol:260","contracts/Contract.sol:261"]},{"severity":"low","category":"access_control","title":"AccountLevelsTest allows arbitrary fee tier assignment","exploit_scenario":"If Bitcratic is configured to use AccountLevelsTest, any user can call setAccountLevel to grant themselves level 1/2 and receive fee rebates, reducing or eliminating fees.","recommendation":"Add access control (e.g., owner-only) to setAccountLevel or ensure this test contract is never used in production.","evidence":"setAccountLevel has no sender checks and writes accountLevels[user] directly.","locations":["contracts/Contract.sol:139","contracts/Contract.sol:142","contracts/Contract.sol:143"]},{"severity":"low","category":"auth","title":"ERC20 approve race condition","exploit_scenario":"A spender can front-run an allowance change from X to Y and spend both the old and new allowances, as approve overwrites the allowance directly.","recommendation":"Require setting allowance to 0 before changing it, or implement increase/decrease allowance functions.","evidence":"approve() sets allowed[msg.sender][_spender] = _value without requiring a zero reset.","locations":["contracts/Contract.sol:96","contracts/Contract.sol:97"]}]}
tokens used
24,302
Metadata
{
    "codex": {
        "ran_at": "2026-01-10T18:03:09.628893+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 1,
        "import_count": 0,
        "first_party_contracts_count": 1
    },
    "summary": "Found 3 issues: reentrancy via accountLevelsAddr can overfill orders, AccountLevelsTest is unrestricted, and StandardToken approve has an allowance race condition.",
    "raw_final": {
        "summary": "Found 3 issues: reentrancy via accountLevelsAddr can overfill orders, AccountLevelsTest is unrestricted, and StandardToken approve has an allowance race condition.",
        "findings": [
            {
                "title": "External accountLevels call enables reentrancy and order overfill",
                "category": "reentrancy",
                "evidence": "tradeBalances() calls AccountLevels(accountLevelsAddr).accountLevel(user) before balances are updated, and orderFills is incremented only after tradeBalances returns.",
                "severity": "medium",
                "locations": [
                    "contracts/Contract.sol:265",
                    "contracts/Contract.sol:270",
                    "contracts/Contract.sol:260",
                    "contracts/Contract.sol:261"
                ],
                "recommendation": "Prevent reentrancy in trade/tradeBalances (e.g., mutex) and move orderFills updates before any external call, or cache account levels in storage and avoid external calls on the trade path.",
                "exploit_scenario": "If the admin sets accountLevelsAddr to a malicious or compromised contract, its accountLevel() can reenter Bitcratic.trade() before orderFills is updated, allowing multiple fills of the same order and exceeding amountGet. The maker can be forced to trade more than intended."
            },
            {
                "title": "AccountLevelsTest allows arbitrary fee tier assignment",
                "category": "access_control",
                "evidence": "setAccountLevel has no sender checks and writes accountLevels[user] directly.",
                "severity": "low",
                "locations": [
                    "contracts/Contract.sol:139",
                    "contracts/Contract.sol:142",
                    "contracts/Contract.sol:143"
                ],
                "recommendation": "Add access control (e.g., owner-only) to setAccountLevel or ensure this test contract is never used in production.",
                "exploit_scenario": "If Bitcratic is configured to use AccountLevelsTest, any user can call setAccountLevel to grant themselves level 1/2 and receive fee rebates, reducing or eliminating fees."
            },
            {
                "title": "ERC20 approve race condition",
                "category": "auth",
                "evidence": "approve() sets allowed[msg.sender][_spender] = _value without requiring a zero reset.",
                "severity": "low",
                "locations": [
                    "contracts/Contract.sol:96",
                    "contracts/Contract.sol:97"
                ],
                "recommendation": "Require setting allowance to 0 before changing it, or implement increase/decrease allowance functions.",
                "exploit_scenario": "A spender can front-run an allowance change from X to Y and spend both the old and new allowances, as approve overwrites the allowance directly."
            }
        ],
        "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
4711
Flags
call_family_heavy
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x0151
0000000a: JUMPI
0000000b: PUSH4 0xffffffff
00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002e: PUSH1 0x00
00000030: CALLDATALOAD
00000031: DIV
00000032: AND
00000033: PUSH4 0x0a19b14a
00000038: DUP2
00000039: EQ
0000003a: PUSH2 0x0167
0000003d: JUMPI
0000003e: DUP1
0000003f: PUSH4 0x0b927666
00000044: EQ
00000045: PUSH2 0x01b3
00000048: JUMPI
00000049: DUP1
0000004a: PUSH4 0x19774d43
0000004f: EQ
00000050: PUSH2 0x01e4
00000053: JUMPI
00000054: DUP1
00000055: PUSH4 0x278b8c0e
0000005a: EQ
0000005b: PUSH2 0x0215
0000005e: JUMPI
0000005f: DUP1
00000060: PUSH4 0x2e1a7d4d
00000065: EQ
00000066: PUSH2 0x0253
00000069: JUMPI
0000006a: DUP1
0000006b: PUSH4 0x338b5dea
00000070: EQ
00000071: PUSH2 0x0268
00000074: JUMPI
00000075: DUP1
00000076: PUSH4 0x46be96c3
0000007b: EQ
0000007c: PUSH2 0x0289
0000007f: JUMPI
00000080: DUP1
00000081: PUSH4 0x508493bc
00000086: EQ
00000087: PUSH2 0x02e1
0000008a: JUMPI
0000008b: DUP1
0000008c: PUSH4 0x54d03b5c
00000091: EQ
00000092: PUSH2 0x0315
00000095: JUMPI
00000096: DUP1
00000097: PUSH4 0x57786394
0000009c: EQ
0000009d: PUSH2 0x032a
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0x5e1d7ae4
000000a7: EQ
000000a8: PUSH2 0x034c
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0x65e17c9d
000000b2: EQ
000000b3: PUSH2 0x0361
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0x6c86888b
000000bd: EQ
000000be: PUSH2 0x038d
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0x71ffcb16
000000c8: EQ
000000c9: PUSH2 0x03f6
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH4 0x731c2f81
000000d3: EQ
000000d4: PUSH2 0x0414
000000d7: JUMPI
000000d8: DUP1
000000d9: PUSH4 0x8823a9c0
000000de: EQ
000000df: PUSH2 0x0436
000000e2: JUMPI
000000e3: DUP1
000000e4: PUSH4 0x8f283970
000000e9: EQ
000000ea: PUSH2 0x044b
000000ed: JUMPI
000000ee: DUP1
000000ef: PUSH4 0x9e281a98
000000f4: EQ
000000f5: PUSH2 0x0469
000000f8: JUMPI
000000f9: DUP1
000000fa: PUSH4 0xbb5f4629
000000ff: EQ
00000100: PUSH2 0x048a
00000103: JUMPI
00000104: DUP1
00000105: PUSH4 0xc281309e
0000010a: EQ
0000010b: PUSH2 0x04bd
0000010e: JUMPI
0000010f: DUP1
00000110: PUSH4 0xd0e30db0
00000115: EQ
00000116: PUSH2 0x04df
00000119: JUMPI
0000011a: DUP1
0000011b: PUSH4 0xe8f6bc2e
00000120: EQ
00000121: PUSH2 0x04e9
00000124: JUMPI
00000125: DUP1
00000126: PUSH4 0xf3412942
0000012b: EQ
0000012c: PUSH2 0x0507
0000012f: JUMPI
00000130: DUP1
00000131: PUSH4 0xf7888aec
00000136: EQ
00000137: PUSH2 0x0533
0000013a: JUMPI
0000013b: DUP1
0000013c: PUSH4 0xf851a440
00000141: EQ
00000142: PUSH2 0x0567
00000145: JUMPI
00000146: DUP1
00000147: PUSH4 0xfb6e155f
0000014c: EQ
0000014d: PUSH2 0x0593
00000150: JUMPI
00000151: JUMPDEST
00000152: CALLVALUE
00000153: ISZERO
00000154: PUSH2 0x0159
00000157: JUMPI
00000158: INVALID
00000159: JUMPDEST
0000015a: PUSH2 0x0165
0000015d: JUMPDEST
0000015e: PUSH1 0x00
00000160: PUSH1 0x00
00000162: REVERT
00000163: JUMPDEST
00000164: JUMP
00000165: JUMPDEST
00000166: STOP
00000167: JUMPDEST
00000168: CALLVALUE
00000169: ISZERO
0000016a: PUSH2 0x016f
0000016d: JUMPI
0000016e: INVALID
0000016f: JUMPDEST
00000170: PUSH2 0x0165
00000173: PUSH1 0x01
00000175: PUSH1 0xa0
00000177: PUSH1 0x02
00000179: EXP
0000017a: SUB
0000017b: PUSH1 0x04
0000017d: CALLDATALOAD
0000017e: DUP2
0000017f: AND
00000180: SWAP1
00000181: PUSH1 0x24
00000183: CALLDATALOAD
00000184: SWAP1
00000185: PUSH1 0x44
00000187: CALLDATALOAD
00000188: DUP2
00000189: AND
0000018a: SWAP1
0000018b: PUSH1 0x64
0000018d: CALLDATALOAD
0000018e: SWAP1
0000018f: PUSH1 0x84
00000191: CALLDATALOAD
00000192: SWAP1
00000193: PUSH1 0xa4
00000195: CALLDATALOAD
00000196: SWAP1
00000197: PUSH1 0xc4
00000199: CALLDATALOAD
0000019a: AND
0000019b: PUSH1 0xff
0000019d: PUSH1 0xe4
0000019f: CALLDATALOAD
000001a0: AND
000001a1: PUSH2 0x0104
000001a4: CALLDATALOAD
000001a5: PUSH2 0x0124
000001a8: CALLDATALOAD
000001a9: PUSH2 0x0144
000001ac: CALLDATALOAD
000001ad: PUSH2 0x05eb
000001b0: JUMP
000001b1: JUMPDEST
000001b2: STOP
000001b3: JUMPDEST
000001b4: CALLVALUE
000001b5: ISZERO
000001b6: PUSH2 0x01bb
000001b9: JUMPI
000001ba: INVALID
000001bb: JUMPDEST
000001bc: PUSH2 0x0165
000001bf: PUSH1 0x01
000001c1: PUSH1 0xa0
000001c3: PUSH1 0x02
000001c5: EXP
000001c6: SUB
000001c7: PUSH1 0x04
000001c9: CALLDATALOAD
000001ca: DUP2
000001cb: AND
000001cc: SWAP1
000001cd: PUSH1 0x24
000001cf: CALLDATALOAD
000001d0: SWAP1
000001d1: PUSH1 0x44
000001d3: CALLDATALOAD
000001d4: AND
000001d5: PUSH1 0x64
000001d7: CALLDATALOAD
000001d8: PUSH1 0x84
000001da: CALLDATALOAD
000001db: PUSH1 0xa4
000001dd: CALLDATALOAD
000001de: PUSH2 0x08b1
000001e1: JUMP
000001e2: JUMPDEST
000001e3: STOP
000001e4: JUMPDEST
000001e5: CALLVALUE
000001e6: ISZERO
000001e7: PUSH2 0x01ec
000001ea: JUMPI
000001eb: INVALID
000001ec: JUMPDEST
000001ed: PUSH2 0x0203
000001f0: PUSH1 0x01
000001f2: PUSH1 0xa0
000001f4: PUSH1 0x02
000001f6: EXP
000001f7: SUB
000001f8: PUSH1 0x04
000001fa: CALLDATALOAD
000001fb: AND
000001fc: PUSH1 0x24
000001fe: CALLDATALOAD
000001ff: PUSH2 0x09c2
00000202: JUMP
00000203: JUMPDEST
00000204: PUSH1 0x40
00000206: DUP1
00000207: MLOAD
00000208: SWAP2
00000209: DUP3
0000020a: MSTORE
0000020b: MLOAD
0000020c: SWAP1
0000020d: DUP2
0000020e: SWAP1
0000020f: SUB
00000210: PUSH1 0x20
00000212: ADD
00000213: SWAP1
00000214: RETURN
00000215: JUMPDEST
00000216: CALLVALUE
00000217: ISZERO
00000218: PUSH2 0x021d
0000021b: JUMPI
0000021c: INVALID
0000021d: JUMPDEST
0000021e: PUSH2 0x0165
00000221: PUSH1 0x01
00000223: PUSH1 0xa0
00000225: PUSH1 0x02
00000227: EXP
00000228: SUB
00000229: PUSH1 0x04
0000022b: CALLDATALOAD
0000022c: DUP2
0000022d: AND
0000022e: SWAP1
0000022f: PUSH1 0x24
00000231: CALLDATALOAD
00000232: SWAP1
00000233: PUSH1 0x44
00000235: CALLDATALOAD
00000236: AND
00000237: PUSH1 0x64
00000239: CALLDATALOAD
0000023a: PUSH1 0x84
0000023c: CALLDATALOAD
0000023d: PUSH1 0xa4
0000023f: CALLDATALOAD
00000240: PUSH1 0xff
00000242: PUSH1 0xc4
00000244: CALLDATALOAD
00000245: AND
00000246: PUSH1 0xe4
00000248: CALLDATALOAD
00000249: PUSH2 0x0104
0000024c: CALLDATALOAD
0000024d: PUSH2 0x09df
00000250: JUMP
00000251: JUMPDEST
00000252: STOP
00000253: JUMPDEST
00000254: CALLVALUE
00000255: ISZERO
00000256: PUSH2 0x025b
00000259: JUMPI
0000025a: INVALID
0000025b: JUMPDEST
0000025c: PUSH2 0x0165
0000025f: PUSH1 0x04
00000261: CALLDATALOAD
00000262: PUSH2 0x0bf0
00000265: JUMP
00000266: JUMPDEST
00000267: STOP
00000268: JUMPDEST
00000269: CALLVALUE
0000026a: ISZERO
0000026b: PUSH2 0x0270
0000026e: JUMPI
0000026f: INVALID
00000270: JUMPDEST
00000271: PUSH2 0x0165
00000274: PUSH1 0x01
00000276: PUSH1 0xa0
00000278: PUSH1 0x02
0000027a: EXP
0000027b: SUB
0000027c: PUSH1 0x04
0000027e: CALLDATALOAD
0000027f: AND
00000280: PUSH1 0x24
00000282: CALLDATALOAD
00000283: PUSH2 0x0d10
00000286: JUMP
00000287: JUMPDEST
00000288: STOP
00000289: JUMPDEST
0000028a: CALLVALUE
0000028b: ISZERO
0000028c: PUSH2 0x0291
0000028f: JUMPI
00000290: INVALID
00000291: JUMPDEST
00000292: PUSH2 0x0203
00000295: PUSH1 0x01
00000297: PUSH1 0xa0
00000299: PUSH1 0x02
0000029b: EXP
0000029c: SUB
0000029d: PUSH1 0x04
0000029f: CALLDATALOAD
000002a0: DUP2
000002a1: AND
000002a2: SWAP1
000002a3: PUSH1 0x24
000002a5: CALLDATALOAD
000002a6: SWAP1
000002a7: PUSH1 0x44
000002a9: CALLDATALOAD
000002aa: DUP2
000002ab: AND
000002ac: SWAP1
000002ad: PUSH1 0x64
000002af: CALLDATALOAD
000002b0: SWAP1
000002b1: PUSH1 0x84
000002b3: CALLDATALOAD
000002b4: SWAP1
000002b5: PUSH1 0xa4
000002b7: CALLDATALOAD
000002b8: SWAP1
000002b9: PUSH1 0xc4
000002bb: CALLDATALOAD
000002bc: AND
000002bd: PUSH1 0xff
000002bf: PUSH1 0xe4
000002c1: CALLDATALOAD
000002c2: AND
000002c3: PUSH2 0x0104
000002c6: CALLDATALOAD
000002c7: PUSH2 0x0124
000002ca: CALLDATALOAD
000002cb: PUSH2 0x0e67
000002ce: JUMP
000002cf: JUMPDEST
000002d0: PUSH1 0x40
000002d2: DUP1
000002d3: MLOAD
000002d4: SWAP2
000002d5: DUP3
000002d6: MSTORE
000002d7: MLOAD
000002d8: SWAP1
000002d9: DUP2
000002da: SWAP1
000002db: SUB
000002dc: PUSH1 0x20
000002de: ADD
000002df: SWAP1
000002e0: RETURN
000002e1: JUMPDEST
000002e2: CALLVALUE
000002e3: ISZERO
000002e4: PUSH2 0x02e9
000002e7: JUMPI
000002e8: INVALID
000002e9: JUMPDEST
000002ea: PUSH2 0x0203
000002ed: PUSH1 0x01
000002ef: PUSH1 0xa0
000002f1: PUSH1 0x02
000002f3: EXP
000002f4: SUB
000002f5: PUSH1 0x04
000002f7: CALLDATALOAD
000002f8: DUP2
000002f9: AND
000002fa: SWAP1
000002fb: PUSH1 0x24
000002fd: CALLDATALOAD
000002fe: AND
000002ff: PUSH2 0x0f54
00000302: JUMP
00000303: JUMPDEST
00000304: PUSH1 0x40
00000306: DUP1
00000307: MLOAD
00000308: SWAP2
00000309: DUP3
0000030a: MSTORE
0000030b: MLOAD
0000030c: SWAP1
0000030d: DUP2
0000030e: SWAP1
0000030f: SUB
00000310: PUSH1 0x20
00000312: ADD
00000313: SWAP1
00000314: RETURN
00000315: JUMPDEST
00000316: CALLVALUE
00000317: ISZERO
00000318: PUSH2 0x031d
0000031b: JUMPI
0000031c: INVALID
0000031d: JUMPDEST
0000031e: PUSH2 0x0165
00000321: PUSH1 0x04
00000323: CALLDATALOAD
00000324: PUSH2 0x0f71
00000327: JUMP
00000328: JUMPDEST
00000329: STOP
0000032a: JUMPDEST
0000032b: CALLVALUE
0000032c: ISZERO
0000032d: PUSH2 0x0332
00000330: JUMPI
00000331: INVALID
00000332: JUMPDEST
00000333: PUSH2 0x0203
00000336: PUSH2 0x0fa6
00000339: JUMP
0000033a: JUMPDEST
0000033b: PUSH1 0x40
0000033d: DUP1
0000033e: MLOAD
0000033f: SWAP2
00000340: DUP3
00000341: MSTORE
00000342: MLOAD
00000343: SWAP1
00000344: DUP2
00000345: SWAP1
00000346: SUB
00000347: PUSH1 0x20
00000349: ADD
0000034a: SWAP1
0000034b: RETURN
0000034c: JUMPDEST
0000034d: CALLVALUE
0000034e: ISZERO
0000034f: PUSH2 0x0354
00000352: JUMPI
00000353: INVALID
00000354: JUMPDEST
00000355: PUSH2 0x0165
00000358: PUSH1 0x04
0000035a: CALLDATALOAD
0000035b: PUSH2 0x0fac
0000035e: JUMP
0000035f: JUMPDEST
00000360: STOP
00000361: JUMPDEST
00000362: CALLVALUE
00000363: ISZERO
00000364: PUSH2 0x0369
00000367: JUMPI
00000368: INVALID
00000369: JUMPDEST
0000036a: PUSH2 0x0371
0000036d: PUSH2 0x0fed
00000370: JUMP
00000371: JUMPDEST
00000372: PUSH1 0x40
00000374: DUP1
00000375: MLOAD
00000376: PUSH1 0x01
00000378: PUSH1 0xa0
0000037a: PUSH1 0x02
0000037c: EXP
0000037d: SUB
0000037e: SWAP1
0000037f: SWAP3
00000380: AND
00000381: DUP3
00000382: MSTORE
00000383: MLOAD
00000384: SWAP1
00000385: DUP2
00000386: SWAP1
00000387: SUB
00000388: PUSH1 0x20
0000038a: ADD
0000038b: SWAP1
0000038c: RETURN
0000038d: JUMPDEST
0000038e: CALLVALUE
0000038f: ISZERO
00000390: PUSH2 0x0395
00000393: JUMPI
00000394: INVALID
00000395: JUMPDEST
00000396: PUSH2 0x03e2
00000399: PUSH1 0x01
0000039b: PUSH1 0xa0
0000039d: PUSH1 0x02
0000039f: EXP
000003a0: SUB
000003a1: PUSH1 0x04
000003a3: CALLDATALOAD
000003a4: DUP2
000003a5: AND
000003a6: SWAP1
000003a7: PUSH1 0x24
000003a9: CALLDATALOAD
000003aa: SWAP1
000003ab: PUSH1 0x44
000003ad: CALLDATALOAD
000003ae: DUP2
000003af: AND
000003b0: SWAP1
000003b1: PUSH1 0x64
000003b3: CALLDATALOAD
000003b4: SWAP1
000003b5: PUSH1 0x84
000003b7: CALLDATALOAD
000003b8: SWAP1
000003b9: PUSH1 0xa4
000003bb: CALLDATALOAD
000003bc: SWAP1
000003bd: PUSH1 0xc4
000003bf: CALLDATALOAD
000003c0: DUP2
000003c1: AND
000003c2: SWAP1
000003c3: PUSH1 0xff
000003c5: PUSH1 0xe4
000003c7: CALLDATALOAD
000003c8: AND
000003c9: SWAP1
000003ca: PUSH2 0x0104
000003cd: CALLDATALOAD
000003ce: SWAP1
000003cf: PUSH2 0x0124
000003d2: CALLDATALOAD
000003d3: SWAP1
000003d4: PUSH2 0x0144
000003d7: CALLDATALOAD
000003d8: SWAP1
000003d9: PUSH2 0x0164
000003dc: CALLDATALOAD
000003dd: AND
000003de: PUSH2 0x0ffc
000003e1: JUMP
000003e2: JUMPDEST
000003e3: PUSH1 0x40
000003e5: DUP1
000003e6: MLOAD
000003e7: SWAP2
000003e8: ISZERO
000003e9: ISZERO
000003ea: DUP3
000003eb: MSTORE
000003ec: MLOAD
000003ed: SWAP1
000003ee: DUP2
000003ef: SWAP1
000003f0: SUB
000003f1: PUSH1 0x20
000003f3: ADD
000003f4: SWAP1
000003f5: RETURN
000003f6: JUMPDEST
000003f7: CALLVALUE
000003f8: ISZERO
000003f9: PUSH2 0x03fe
000003fc: JUMPI
000003fd: INVALID
000003fe: JUMPDEST
000003ff: PUSH2 0x0165
00000402: PUSH1 0x01
00000404: PUSH1 0xa0
00000406: PUSH1 0x02
00000408: EXP
00000409: SUB
0000040a: PUSH1 0x04
0000040c: CALLDATALOAD
0000040d: AND
0000040e: PUSH2 0x1067
00000411: JUMP
00000412: JUMPDEST
00000413: STOP
00000414: JUMPDEST
00000415: CALLVALUE
00000416: ISZERO
00000417: PUSH2 0x041c
0000041a: JUMPI
0000041b: INVALID
0000041c: JUMPDEST
0000041d: PUSH2 0x0203
00000420: PUSH2 0x10af
00000423: JUMP
00000424: JUMPDEST
00000425: PUSH1 0x40
00000427: DUP1
00000428: MLOAD
00000429: SWAP2
0000042a: DUP3
0000042b: MSTORE
0000042c: MLOAD
0000042d: SWAP1
0000042e: DUP2
0000042f: SWAP1
00000430: SUB
00000431: PUSH1 0x20
00000433: ADD
00000434: SWAP1
00000435: RETURN
00000436: JUMPDEST
00000437: CALLVALUE
00000438: ISZERO
00000439: PUSH2 0x043e
0000043c: JUMPI
0000043d: INVALID
0000043e: JUMPDEST
0000043f: PUSH2 0x0165
00000442: PUSH1 0x04
00000444: CALLDATALOAD
00000445: PUSH2 0x10b5
00000448: JUMP
00000449: JUMPDEST
0000044a: STOP
0000044b: JUMPDEST
0000044c: CALLVALUE
0000044d: ISZERO
0000044e: PUSH2 0x0453
00000451: JUMPI
00000452: INVALID
00000453: JUMPDEST
00000454: PUSH2 0x0165
00000457: PUSH1 0x01
00000459: PUSH1 0xa0
0000045b: PUSH1 0x02
0000045d: EXP
0000045e: SUB
0000045f: PUSH1 0x04
00000461: CALLDATALOAD
00000462: AND
00000463: PUSH2 0x10f6
00000466: JUMP
00000467: JUMPDEST
00000468: STOP
00000469: JUMPDEST
0000046a: CALLVALUE
0000046b: ISZERO
0000046c: PUSH2 0x0471
0000046f: JUMPI
00000470: INVALID
00000471: JUMPDEST
00000472: PUSH2 0x0165
00000475: PUSH1 0x01
00000477: PUSH1 0xa0
00000479: PUSH1 0x02
0000047b: EXP
0000047c: SUB
0000047d: PUSH1 0x04
0000047f: CALLDATALOAD
00000480: AND
00000481: PUSH1 0x24
00000483: CALLDATALOAD
00000484: PUSH2 0x113e
00000487: JUMP
00000488: JUMPDEST
00000489: STOP
0000048a: JUMPDEST
0000048b: CALLVALUE
0000048c: ISZERO
0000048d: PUSH2 0x0492
00000490: JUMPI
00000491: INVALID
00000492: JUMPDEST
00000493: PUSH2 0x03e2
00000496: PUSH1 0x01
00000498: PUSH1 0xa0
0000049a: PUSH1 0x02
0000049c: EXP
0000049d: SUB
0000049e: PUSH1 0x04
000004a0: CALLDATALOAD
000004a1: AND
000004a2: PUSH1 0x24
000004a4: CALLDATALOAD
000004a5: PUSH2 0x12e0
000004a8: JUMP
000004a9: JUMPDEST
000004aa: PUSH1 0x40
000004ac: DUP1
000004ad: MLOAD
000004ae: SWAP2
000004af: ISZERO
000004b0: ISZERO
000004b1: DUP3
000004b2: MSTORE
000004b3: MLOAD
000004b4: SWAP1
000004b5: DUP2
000004b6: SWAP1
000004b7: SUB
000004b8: PUSH1 0x20
000004ba: ADD
000004bb: SWAP1
000004bc: RETURN
000004bd: JUMPDEST
000004be: CALLVALUE
000004bf: ISZERO
000004c0: PUSH2 0x04c5
000004c3: JUMPI
000004c4: INVALID
000004c5: JUMPDEST
000004c6: PUSH2 0x0203
000004c9: PUSH2 0x1300
000004cc: JUMP
000004cd: JUMPDEST
000004ce: PUSH1 0x40
000004d0: DUP1
000004d1: MLOAD
000004d2: SWAP2
000004d3: DUP3
000004d4: MSTORE
000004d5: MLOAD
000004d6: SWAP1
000004d7: DUP2
000004d8: SWAP1
000004d9: SUB
000004da: PUSH1 0x20
000004dc: ADD
000004dd: SWAP1
000004de: RETURN
000004df: JUMPDEST
000004e0: PUSH2 0x0165
000004e3: PUSH2 0x1306
000004e6: JUMP
000004e7: JUMPDEST
000004e8: STOP
000004e9: JUMPDEST
000004ea: CALLVALUE
000004eb: ISZERO
000004ec: PUSH2 0x04f1
000004ef: JUMPI
000004f0: INVALID
000004f1: JUMPDEST
000004f2: PUSH2 0x0165
000004f5: PUSH1 0x01
000004f7: PUSH1 0xa0
000004f9: PUSH1 0x02
000004fb: EXP
000004fc: SUB
000004fd: PUSH1 0x04
000004ff: CALLDATALOAD
00000500: AND
00000501: PUSH2 0x13a8
00000504: JUMP
00000505: JUMPDEST
00000506: STOP
00000507: JUMPDEST
00000508: CALLVALUE
00000509: ISZERO
0000050a: PUSH2 0x050f
0000050d: JUMPI
0000050e: INVALID
0000050f: JUMPDEST
00000510: PUSH2 0x0371
00000513: PUSH2 0x13f0
00000516: JUMP
00000517: JUMPDEST
00000518: PUSH1 0x40
0000051a: DUP1
0000051b: MLOAD
0000051c: PUSH1 0x01
0000051e: PUSH1 0xa0
00000520: PUSH1 0x02
00000522: EXP
00000523: SUB
00000524: SWAP1
00000525: SWAP3
00000526: AND
00000527: DUP3
00000528: MSTORE
00000529: MLOAD
0000052a: SWAP1
0000052b: DUP2
0000052c: SWAP1
0000052d: SUB
0000052e: PUSH1 0x20
00000530: ADD
00000531: SWAP1
00000532: RETURN
00000533: JUMPDEST
00000534: CALLVALUE
00000535: ISZERO
00000536: PUSH2 0x053b
00000539: JUMPI
0000053a: INVALID
0000053b: JUMPDEST
0000053c: PUSH2 0x0203
0000053f: PUSH1 0x01
00000541: PUSH1 0xa0
00000543: PUSH1 0x02
00000545: EXP
00000546: SUB
00000547: PUSH1 0x04
00000549: CALLDATALOAD
0000054a: DUP2
0000054b: AND
0000054c: SWAP1
0000054d: PUSH1 0x24
0000054f: CALLDATALOAD
00000550: AND
00000551: PUSH2 0x13ff
00000554: JUMP
00000555: JUMPDEST
00000556: PUSH1 0x40
00000558: DUP1
00000559: MLOAD
0000055a: SWAP2
0000055b: DUP3
0000055c: MSTORE
0000055d: MLOAD
0000055e: SWAP1
0000055f: DUP2
00000560: SWAP1
00000561: SUB
00000562: PUSH1 0x20
00000564: ADD
00000565: SWAP1
00000566: RETURN
00000567: JUMPDEST
00000568: CALLVALUE
00000569: ISZERO
0000056a: PUSH2 0x056f
0000056d: JUMPI
0000056e: INVALID
0000056f: JUMPDEST
00000570: PUSH2 0x0371
00000573: PUSH2 0x142c
00000576: JUMP
00000577: JUMPDEST
00000578: PUSH1 0x40
0000057a: DUP1
0000057b: MLOAD
0000057c: PUSH1 0x01
0000057e: PUSH1 0xa0
00000580: PUSH1 0x02
00000582: EXP
00000583: SUB
00000584: SWAP1
00000585: SWAP3
00000586: AND
00000587: DUP3
00000588: MSTORE
00000589: MLOAD
0000058a: SWAP1
0000058b: DUP2
0000058c: SWAP1
0000058d: SUB
0000058e: PUSH1 0x20
00000590: ADD
00000591: SWAP1
00000592: RETURN
00000593: JUMPDEST
00000594: CALLVALUE
00000595: ISZERO
00000596: PUSH2 0x059b
00000599: JUMPI
0000059a: INVALID
0000059b: JUMPDEST
0000059c: PUSH2 0x0203
0000059f: PUSH1 0x01
000005a1: PUSH1 0xa0
000005a3: PUSH1 0x02
000005a5: EXP
000005a6: SUB
000005a7: PUSH1 0x04
000005a9: CALLDATALOAD
000005aa: DUP2
000005ab: AND
000005ac: SWAP1
000005ad: PUSH1 0x24
000005af: CALLDATALOAD
000005b0: SWAP1
000005b1: PUSH1 0x44
000005b3: CALLDATALOAD
000005b4: DUP2
000005b5: AND
000005b6: SWAP1
000005b7: PUSH1 0x64
000005b9: CALLDATALOAD
000005ba: SWAP1
000005bb: PUSH1 0x84
000005bd: CALLDATALOAD
000005be: SWAP1
000005bf: PUSH1 0xa4
000005c1: CALLDATALOAD
000005c2: SWAP1
000005c3: PUSH1 0xc4
000005c5: CALLDATALOAD
000005c6: AND
000005c7: PUSH1 0xff
000005c9: PUSH1 0xe4
000005cb: CALLDATALOAD
000005cc: AND
000005cd: PUSH2 0x0104
000005d0: CALLDATALOAD
000005d1: PUSH2 0x0124
000005d4: CALLDATALOAD
000005d5: PUSH2 0x143b
000005d8: JUMP
000005d9: JUMPDEST
000005da: PUSH1 0x40
000005dc: DUP1
000005dd: MLOAD
000005de: SWAP2
000005df: DUP3
000005e0: MSTORE
000005e1: MLOAD
000005e2: SWAP1
000005e3: DUP2
000005e4: SWAP1
000005e5: SUB
000005e6: PUSH1 0x20
000005e8: ADD
000005e9: SWAP1
000005ea: RETURN
000005eb: JUMPDEST
000005ec: PUSH1 0x00
000005ee: PUSH1 0x02
000005f0: ADDRESS
000005f1: DUP14
000005f2: DUP14
000005f3: DUP14
000005f4: DUP14
000005f5: DUP14
000005f6: DUP14
000005f7: PUSH1 0x00
000005f9: PUSH1 0x40
000005fb: MLOAD
000005fc: PUSH1 0x20
000005fe: ADD
000005ff: MSTORE
00000600: PUSH1 0x40
00000602: MLOAD
00000603: DUP1
00000604: DUP9
00000605: PUSH1 0x01
00000607: PUSH1 0xa0
00000609: PUSH1 0x02
0000060b: EXP
0000060c: SUB
0000060d: AND
0000060e: PUSH1 0x01
00000610: PUSH1 0xa0
00000612: PUSH1 0x02
00000614: EXP
00000615: SUB
00000616: AND
00000617: PUSH1 0x60
00000619: PUSH1 0x02
0000061b: EXP
0000061c: MUL
0000061d: DUP2
0000061e: MSTORE
0000061f: PUSH1 0x14
00000621: ADD
00000622: DUP8
00000623: PUSH1 0x01
00000625: PUSH1 0xa0
00000627: PUSH1 0x02
00000629: EXP
0000062a: SUB
0000062b: AND
0000062c: PUSH1 0x01
0000062e: PUSH1 0xa0
00000630: PUSH1 0x02
00000632: EXP
00000633: SUB
00000634: AND
00000635: PUSH1 0x60
00000637: PUSH1 0x02
00000639: EXP
0000063a: MUL
0000063b: DUP2
0000063c: MSTORE
0000063d: PUSH1 0x14
0000063f: ADD
00000640: DUP7
00000641: DUP2
00000642: MSTORE
00000643: PUSH1 0x20
00000645: ADD
00000646: DUP6
00000647: PUSH1 0x01
00000649: PUSH1 0xa0
0000064b: PUSH1 0x02
0000064d: EXP
0000064e: SUB
0000064f: AND
00000650: PUSH1 0x01
00000652: PUSH1 0xa0
00000654: PUSH1 0x02
00000656: EXP
00000657: SUB
00000658: AND
00000659: PUSH1 0x60
0000065b: PUSH1 0x02
0000065d: EXP
0000065e: MUL
0000065f: DUP2
00000660: MSTORE
00000661: PUSH1 0x14
00000663: ADD
00000664: DUP5
00000665: DUP2
00000666: MSTORE
00000667: PUSH1 0x20
00000669: ADD
0000066a: DUP4
0000066b: DUP2
0000066c: MSTORE
0000066d: PUSH1 0x20
0000066f: ADD
00000670: DUP3
00000671: DUP2
00000672: MSTORE
00000673: PUSH1 0x20
00000675: ADD
00000676: SWAP8
00000677: POP
00000678: POP
00000679: POP
0000067a: POP
0000067b: POP
0000067c: POP
0000067d: POP
0000067e: POP
0000067f: PUSH1 0x20
00000681: PUSH1 0x40
00000683: MLOAD
00000684: DUP1
00000685: DUP4
00000686: SUB
00000687: DUP2
00000688: PUSH1 0x00
0000068a: DUP7
0000068b: PUSH2 0x646e
0000068e: GAS
0000068f: SUB
00000690: CALL
00000691: ISZERO
00000692: ISZERO
00000693: PUSH2 0x0698
00000696: JUMPI
00000697: INVALID
00000698: JUMPDEST
00000699: POP
0000069a: POP
0000069b: PUSH1 0x40
0000069d: DUP1
0000069e: MLOAD
0000069f: MLOAD
000006a0: PUSH1 0x01
000006a2: PUSH1 0xa0
000006a4: PUSH1 0x02
000006a6: EXP
000006a7: SUB
000006a8: DUP9
000006a9: AND
000006aa: PUSH1 0x00
000006ac: SWAP1
000006ad: DUP2
000006ae: MSTORE
000006af: PUSH1 0x07
000006b1: PUSH1 0x20
000006b3: SWAP1
000006b4: DUP2
000006b5: MSTORE
000006b6: DUP4
000006b7: DUP3
000006b8: KECCAK256
000006b9: DUP4
000006ba: DUP4
000006bb: MSTORE
000006bc: SWAP1
000006bd: MSTORE
000006be: SWAP2
000006bf: SWAP1
000006c0: SWAP2
000006c1: KECCAK256
000006c2: SLOAD
000006c3: SWAP1
000006c4: SWAP2
000006c5: POP
000006c6: PUSH1 0xff
000006c8: AND
000006c9: DUP1
000006ca: PUSH2 0x077c
000006cd: JUMPI
000006ce: POP
000006cf: PUSH1 0x40
000006d1: DUP1
000006d2: MLOAD
000006d3: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
000006f4: DUP2
000006f5: MSTORE
000006f6: PUSH1 0x1c
000006f8: DUP2
000006f9: ADD
000006fa: DUP4
000006fb: SWAP1
000006fc: MSTORE
000006fd: DUP2
000006fe: MLOAD
000006ff: SWAP1
00000700: DUP2
00000701: SWAP1
00000702: SUB
00000703: PUSH1 0x3c
00000705: ADD
00000706: DUP2
00000707: KECCAK256
00000708: PUSH1 0x00
0000070a: DUP3
0000070b: DUP2
0000070c: MSTORE
0000070d: PUSH1 0x20
0000070f: DUP4
00000710: DUP2
00000711: ADD
00000712: DUP6
00000713: MSTORE
00000714: SWAP3
00000715: DUP5
00000716: ADD
00000717: DUP2
00000718: SWAP1
00000719: MSTORE
0000071a: DUP4
0000071b: MLOAD
0000071c: SWAP2
0000071d: DUP3
0000071e: MSTORE
0000071f: PUSH1 0xff
00000721: DUP10
00000722: AND
00000723: DUP3
00000724: DUP5
00000725: ADD
00000726: MSTORE
00000727: DUP2
00000728: DUP5
00000729: ADD
0000072a: DUP9
0000072b: SWAP1
0000072c: MSTORE
0000072d: PUSH1 0x60
0000072f: DUP3
00000730: ADD
00000731: DUP8
00000732: SWAP1
00000733: MSTORE
00000734: SWAP3
00000735: MLOAD
00000736: PUSH1 0x01
00000738: PUSH1 0xa0
0000073a: PUSH1 0x02
0000073c: EXP
0000073d: SUB
0000073e: DUP11
0000073f: AND
00000740: SWAP4
00000741: PUSH1 0x01
00000743: SWAP4
00000744: PUSH1 0x80
00000746: DUP1
00000747: DUP6
00000748: ADD
00000749: SWAP5
0000074a: SWAP2
0000074b: SWAP4
0000074c: PUSH1 0x1f
0000074e: NOT
0000074f: DUP2
00000750: ADD
00000751: SWAP4
00000752: SWAP3
00000753: DUP2
00000754: SWAP1
00000755: SUB
00000756: SWAP1
00000757: SWAP2
00000758: ADD
00000759: SWAP2
0000075a: DUP7
0000075b: PUSH2 0x646e
0000075e: GAS
0000075f: SUB
00000760: CALL
00000761: ISZERO
00000762: ISZERO
00000763: PUSH2 0x0768
00000766: JUMPI
00000767: INVALID
00000768: JUMPDEST
00000769: POP
0000076a: POP
0000076b: PUSH1 0x20
0000076d: PUSH1 0x40
0000076f: MLOAD
00000770: SUB
00000771: MLOAD
00000772: PUSH1 0x01
00000774: PUSH1 0xa0
00000776: PUSH1 0x02
00000778: EXP
00000779: SUB
0000077a: AND
0000077b: EQ
0000077c: JUMPDEST
0000077d: DUP1
0000077e: ISZERO
0000077f: PUSH2 0x0788
00000782: JUMPI
00000783: POP
00000784: DUP8
00000785: NUMBER
00000786: GT
00000787: ISZERO
00000788: JUMPDEST
00000789: DUP1
0000078a: ISZERO
0000078b: PUSH2 0x07c2
0000078e: JUMPI
0000078f: POP
00000790: PUSH1 0x01
00000792: PUSH1 0xa0
00000794: PUSH1 0x02
00000796: EXP
00000797: SUB
00000798: DUP7
00000799: AND
0000079a: PUSH1 0x00
0000079c: SWAP1
0000079d: DUP2
0000079e: MSTORE
0000079f: PUSH1 0x08
000007a1: PUSH1 0x20
000007a3: SWAP1
000007a4: DUP2
000007a5: MSTORE
000007a6: PUSH1 0x40
000007a8: DUP1
000007a9: DUP4
000007aa: KECCAK256
000007ab: DUP5
000007ac: DUP5
000007ad: MSTORE
000007ae: SWAP1
000007af: SWAP2
000007b0: MSTORE
000007b1: SWAP1
000007b2: KECCAK256
000007b3: SLOAD
000007b4: DUP12
000007b5: SWAP1
000007b6: PUSH2 0x07bf
000007b9: SWAP1
000007ba: DUP5
000007bb: PUSH2 0x1682
000007be: JUMP
000007bf: JUMPDEST
000007c0: GT
000007c1: ISZERO
000007c2: JUMPDEST
000007c3: ISZERO
000007c4: ISZERO
000007c5: PUSH2 0x07ce
000007c8: JUMPI
000007c9: PUSH1 0x00
000007cb: PUSH1 0x00
000007cd: REVERT
000007ce: JUMPDEST
000007cf: PUSH2 0x07dc
000007d2: DUP13
000007d3: DUP13
000007d4: DUP13
000007d5: DUP13
000007d6: DUP11
000007d7: DUP8
000007d8: PUSH2 0x16aa
000007db: JUMP
000007dc: JUMPDEST
000007dd: PUSH1 0x01
000007df: PUSH1 0xa0
000007e1: PUSH1 0x02
000007e3: EXP
000007e4: SUB
000007e5: DUP7
000007e6: AND
000007e7: PUSH1 0x00
000007e9: SWAP1
000007ea: DUP2
000007eb: MSTORE
000007ec: PUSH1 0x08
000007ee: PUSH1 0x20
000007f0: SWAP1
000007f1: DUP2
000007f2: MSTORE
000007f3: PUSH1 0x40
000007f5: DUP1
000007f6: DUP4
000007f7: KECCAK256
000007f8: DUP5
000007f9: DUP5
000007fa: MSTORE
000007fb: SWAP1
000007fc: SWAP2
000007fd: MSTORE
000007fe: SWAP1
000007ff: KECCAK256
00000800: SLOAD
00000801: PUSH2 0x080a
00000804: SWAP1
00000805: DUP4
00000806: PUSH2 0x1682
00000809: JUMP
0000080a: JUMPDEST
0000080b: PUSH1 0x01
0000080d: PUSH1 0xa0
0000080f: PUSH1 0x02
00000811: EXP
00000812: SUB
00000813: DUP8
00000814: AND
00000815: PUSH1 0x00
00000817: SWAP1
00000818: DUP2
00000819: MSTORE
0000081a: PUSH1 0x08
0000081c: PUSH1 0x20
0000081e: SWAP1
0000081f: DUP2
00000820: MSTORE
00000821: PUSH1 0x40
00000823: DUP1
00000824: DUP4
00000825: KECCAK256
00000826: DUP6
00000827: DUP5
00000828: MSTORE
00000829: SWAP1
0000082a: SWAP2
0000082b: MSTORE
0000082c: SWAP1
0000082d: KECCAK256
0000082e: SSTORE
0000082f: PUSH32 0x6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d
00000850: DUP13
00000851: DUP4
00000852: DUP13
00000853: DUP15
00000854: DUP14
00000855: DUP4
00000856: MUL
00000857: DUP2
00000858: ISZERO
00000859: ISZERO
0000085a: PUSH2 0x085f
0000085d: JUMPI
0000085e: INVALID
0000085f: JUMPDEST
00000860: PUSH1 0x40
00000862: DUP1
00000863: MLOAD
00000864: PUSH1 0x01
00000866: PUSH1 0xa0
00000868: PUSH1 0x02
0000086a: EXP
0000086b: SUB
0000086c: SWAP7
0000086d: DUP8
0000086e: AND
0000086f: DUP2
00000870: MSTORE
00000871: PUSH1 0x20
00000873: DUP2
00000874: ADD
00000875: SWAP6
00000876: SWAP1
00000877: SWAP6
00000878: MSTORE
00000879: SWAP3
0000087a: DUP6
0000087b: AND
0000087c: DUP5
0000087d: DUP5
0000087e: ADD
0000087f: MSTORE
00000880: DIV
00000881: PUSH1 0x60
00000883: DUP4
00000884: ADD
00000885: MSTORE
00000886: DUP3
00000887: DUP11
00000888: AND
00000889: PUSH1 0x80
0000088b: DUP4
0000088c: ADD
0000088d: MSTORE
0000088e: CALLER
0000088f: SWAP3
00000890: SWAP1
00000891: SWAP3
00000892: AND
00000893: PUSH1 0xa0
00000895: DUP3
00000896: ADD
00000897: MSTORE
00000898: SWAP1
00000899: MLOAD
0000089a: SWAP1
0000089b: DUP2
0000089c: SWAP1
0000089d: SUB
0000089e: PUSH1 0xc0
000008a0: ADD
000008a1: SWAP1
000008a2: LOG1
000008a3: JUMPDEST
000008a4: POP
000008a5: POP
000008a6: POP
000008a7: POP
000008a8: POP
000008a9: POP
000008aa: POP
000008ab: POP
000008ac: POP
000008ad: POP
000008ae: POP
000008af: POP
000008b0: JUMP
000008b1: JUMPDEST
000008b2: PUSH1 0x40
000008b4: DUP1
000008b5: MLOAD
000008b6: PUSH1 0x00
000008b8: PUSH1 0x20
000008ba: SWAP2
000008bb: DUP3
000008bc: ADD
000008bd: DUP2
000008be: SWAP1
000008bf: MSTORE
000008c0: DUP3
000008c1: MLOAD
000008c2: PUSH1 0x60
000008c4: PUSH1 0x02
000008c6: EXP
000008c7: PUSH1 0x01
000008c9: PUSH1 0xa0
000008cb: PUSH1 0x02
000008cd: EXP
000008ce: SUB
000008cf: ADDRESS
000008d0: DUP2
000008d1: AND
000008d2: DUP3
000008d3: MUL
000008d4: DUP4
000008d5: MSTORE
000008d6: DUP1
000008d7: DUP13
000008d8: AND
000008d9: DUP3
000008da: MUL
000008db: PUSH1 0x14
000008dd: DUP5
000008de: ADD
000008df: MSTORE
000008e0: PUSH1 0x28
000008e2: DUP4
000008e3: ADD
000008e4: DUP12
000008e5: SWAP1
000008e6: MSTORE
000008e7: DUP10
000008e8: AND
000008e9: MUL
000008ea: PUSH1 0x48
000008ec: DUP3
000008ed: ADD
000008ee: MSTORE
000008ef: PUSH1 0x5c
000008f1: DUP2
000008f2: ADD
000008f3: DUP8
000008f4: SWAP1
000008f5: MSTORE
000008f6: PUSH1 0x7c
000008f8: DUP2
000008f9: ADD
000008fa: DUP7
000008fb: SWAP1
000008fc: MSTORE
000008fd: PUSH1 0x9c
000008ff: DUP2
00000900: ADD
00000901: DUP6
00000902: SWAP1
00000903: MSTORE
00000904: SWAP3
00000905: MLOAD
00000906: SWAP1
00000907: SWAP3
00000908: PUSH1 0x02
0000090a: SWAP3
0000090b: PUSH1 0xbc
0000090d: DUP1
0000090e: DUP4
0000090f: ADD
00000910: SWAP4
00000911: SWAP2
00000912: SWAP3
00000913: DUP3
00000914: SWAP1
00000915: SUB
00000916: ADD
00000917: DUP2
00000918: DUP7
00000919: DUP7
0000091a: PUSH2 0x646e
0000091d: GAS
0000091e: SUB
0000091f: CALL
00000920: ISZERO
00000921: ISZERO
00000922: PUSH2 0x0927
00000925: JUMPI
00000926: INVALID
00000927: JUMPDEST
00000928: POP
00000929: POP
0000092a: PUSH1 0x40
0000092c: DUP1
0000092d: MLOAD
0000092e: DUP1
0000092f: MLOAD
00000930: PUSH1 0x01
00000932: PUSH1 0xa0
00000934: PUSH1 0x02
00000936: EXP
00000937: SUB
00000938: CALLER
00000939: DUP2
0000093a: AND
0000093b: PUSH1 0x00
0000093d: DUP2
0000093e: DUP2
0000093f: MSTORE
00000940: PUSH1 0x07
00000942: PUSH1 0x20
00000944: SWAP1
00000945: DUP2
00000946: MSTORE
00000947: DUP7
00000948: DUP3
00000949: KECCAK256
0000094a: DUP6
0000094b: DUP4
0000094c: MSTORE
0000094d: DUP2
0000094e: MSTORE
0000094f: SWAP1
00000950: DUP7
00000951: SWAP1
00000952: KECCAK256
00000953: DUP1
00000954: SLOAD
00000955: PUSH1 0xff
00000957: NOT
00000958: AND
00000959: PUSH1 0x01
0000095b: OR
0000095c: SWAP1
0000095d: SSTORE
0000095e: DUP13
0000095f: DUP4
00000960: AND
00000961: DUP6
00000962: MSTORE
00000963: DUP5
00000964: ADD
00000965: DUP12
00000966: SWAP1
00000967: MSTORE
00000968: SWAP1
00000969: DUP10
0000096a: AND
0000096b: DUP4
0000096c: DUP6
0000096d: ADD
0000096e: MSTORE
0000096f: PUSH1 0x60
00000971: DUP4
00000972: ADD
00000973: DUP9
00000974: SWAP1
00000975: MSTORE
00000976: PUSH1 0x80
00000978: DUP4
00000979: ADD
0000097a: DUP8
0000097b: SWAP1
0000097c: MSTORE
0000097d: PUSH1 0xa0
0000097f: DUP4
00000980: ADD
00000981: DUP7
00000982: SWAP1
00000983: MSTORE
00000984: PUSH1 0xc0
00000986: DUP4
00000987: ADD
00000988: MSTORE
00000989: SWAP2
0000098a: MLOAD
0000098b: SWAP2
0000098c: SWAP3
0000098d: POP
0000098e: PUSH32 0x3f7f2eda73683c21a15f9435af1028c93185b5f1fa38270762dc32be606b3e85
000009af: SWAP2
000009b0: SWAP1
000009b1: DUP2
000009b2: SWAP1
000009b3: SUB
000009b4: PUSH1 0xe0
000009b6: ADD
000009b7: SWAP1
000009b8: LOG1
000009b9: JUMPDEST
000009ba: POP
000009bb: POP
000009bc: POP
000009bd: POP
000009be: POP
000009bf: POP
000009c0: POP
000009c1: JUMP
000009c2: JUMPDEST
000009c3: PUSH1 0x08
000009c5: PUSH1 0x20
000009c7: SWAP1
000009c8: DUP2
000009c9: MSTORE
000009ca: PUSH1 0x00
000009cc: SWAP3
000009cd: DUP4
000009ce: MSTORE
000009cf: PUSH1 0x40
000009d1: DUP1
000009d2: DUP5
000009d3: KECCAK256
000009d4: SWAP1
000009d5: SWAP2
000009d6: MSTORE
000009d7: SWAP1
000009d8: DUP3
000009d9: MSTORE
000009da: SWAP1
000009db: KECCAK256
000009dc: SLOAD
000009dd: DUP2
000009de: JUMP
000009df: JUMPDEST
000009e0: PUSH1 0x40
000009e2: DUP1
000009e3: MLOAD
000009e4: PUSH1 0x00
000009e6: PUSH1 0x20
000009e8: SWAP2
000009e9: DUP3
000009ea: ADD
000009eb: DUP2
000009ec: SWAP1
000009ed: MSTORE
000009ee: DUP3
000009ef: MLOAD
000009f0: PUSH1 0x60
000009f2: PUSH1 0x02
000009f4: EXP
000009f5: PUSH1 0x01
000009f7: PUSH1 0xa0
000009f9: PUSH1 0x02
000009fb: EXP
000009fc: SUB
000009fd: ADDRESS
000009fe: DUP2
000009ff: AND
00000a00: DUP3
00000a01: MUL
00000a02: DUP4
00000a03: MSTORE
00000a04: DUP1
00000a05: DUP16
00000a06: AND
00000a07: DUP3
00000a08: MUL
00000a09: PUSH1 0x14
00000a0b: DUP5
00000a0c: ADD
00000a0d: MSTORE
00000a0e: PUSH1 0x28
00000a10: DUP4
00000a11: ADD
00000a12: DUP15
00000a13: SWAP1
00000a14: MSTORE
00000a15: DUP13
00000a16: AND
00000a17: MUL
00000a18: PUSH1 0x48
00000a1a: DUP3
00000a1b: ADD
00000a1c: MSTORE
00000a1d: PUSH1 0x5c
00000a1f: DUP2
00000a20: ADD
00000a21: DUP11
00000a22: SWAP1
00000a23: MSTORE
00000a24: PUSH1 0x7c
00000a26: DUP2
00000a27: ADD
00000a28: DUP10
00000a29: SWAP1
00000a2a: MSTORE
00000a2b: PUSH1 0x9c
00000a2d: DUP2
00000a2e: ADD
00000a2f: DUP9
00000a30: SWAP1
00000a31: MSTORE
00000a32: SWAP3
00000a33: MLOAD
00000a34: SWAP1
00000a35: SWAP3
00000a36: PUSH1 0x02
00000a38: SWAP3
00000a39: PUSH1 0xbc
00000a3b: DUP1
00000a3c: DUP4
00000a3d: ADD
00000a3e: SWAP4
00000a3f: SWAP2
00000a40: SWAP3
00000a41: DUP3
00000a42: SWAP1
00000a43: SUB
00000a44: ADD
00000a45: DUP2
00000a46: DUP7
00000a47: DUP7
00000a48: PUSH2 0x646e
00000a4b: GAS
00000a4c: SUB
00000a4d: CALL
00000a4e: ISZERO
00000a4f: ISZERO
00000a50: PUSH2 0x0a55
00000a53: JUMPI
00000a54: INVALID
00000a55: JUMPDEST
00000a56: POP
00000a57: POP
00000a58: PUSH1 0x40
00000a5a: DUP1
00000a5b: MLOAD
00000a5c: MLOAD
00000a5d: PUSH1 0x01
00000a5f: PUSH1 0xa0
00000a61: PUSH1 0x02
00000a63: EXP
00000a64: SUB
00000a65: CALLER
00000a66: AND
00000a67: PUSH1 0x00
00000a69: SWAP1
00000a6a: DUP2
00000a6b: MSTORE
00000a6c: PUSH1 0x07
00000a6e: PUSH1 0x20
00000a70: SWAP1
00000a71: DUP2
00000a72: MSTORE
00000a73: DUP4
00000a74: DUP3
00000a75: KECCAK256
00000a76: DUP4
00000a77: DUP4
00000a78: MSTORE
00000a79: SWAP1
00000a7a: MSTORE
00000a7b: SWAP2
00000a7c: SWAP1
00000a7d: SWAP2
00000a7e: KECCAK256
00000a7f: SLOAD
00000a80: SWAP1
00000a81: SWAP2
00000a82: POP
00000a83: PUSH1 0xff
00000a85: AND
00000a86: DUP1
00000a87: PUSH2 0x0b39
00000a8a: JUMPI
00000a8b: POP
00000a8c: PUSH1 0x40
00000a8e: DUP1
00000a8f: MLOAD
00000a90: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
00000ab1: DUP2
00000ab2: MSTORE
00000ab3: PUSH1 0x1c
00000ab5: DUP2
00000ab6: ADD
00000ab7: DUP4
00000ab8: SWAP1
00000ab9: MSTORE
00000aba: DUP2
00000abb: MLOAD
00000abc: SWAP1
00000abd: DUP2
00000abe: SWAP1
00000abf: SUB
00000ac0: PUSH1 0x3c
00000ac2: ADD
00000ac3: DUP2
00000ac4: KECCAK256
00000ac5: PUSH1 0x00
00000ac7: DUP3
00000ac8: DUP2
00000ac9: MSTORE
00000aca: PUSH1 0x20
00000acc: DUP4
00000acd: DUP2
00000ace: ADD
00000acf: DUP6
00000ad0: MSTORE
00000ad1: SWAP3
00000ad2: DUP5
00000ad3: ADD
00000ad4: DUP2
00000ad5: SWAP1
00000ad6: MSTORE
00000ad7: DUP4
00000ad8: MLOAD
00000ad9: SWAP2
00000ada: DUP3
00000adb: MSTORE
00000adc: PUSH1 0xff
00000ade: DUP9
00000adf: AND
00000ae0: DUP3
00000ae1: DUP5
00000ae2: ADD
00000ae3: MSTORE
00000ae4: DUP2
00000ae5: DUP5
00000ae6: ADD
00000ae7: DUP8
00000ae8: SWAP1
00000ae9: MSTORE
00000aea: PUSH1 0x60
00000aec: DUP3
00000aed: ADD
00000aee: DUP7
00000aef: SWAP1
00000af0: MSTORE
00000af1: SWAP3
00000af2: MLOAD
00000af3: PUSH1 0x01
00000af5: PUSH1 0xa0
00000af7: PUSH1 0x02
00000af9: EXP
00000afa: SUB
00000afb: CALLER
00000afc: AND
00000afd: SWAP4
00000afe: PUSH1 0x01
00000b00: SWAP4
00000b01: PUSH1 0x80
00000b03: DUP1
00000b04: DUP6
00000b05: ADD
00000b06: SWAP5
00000b07: SWAP2
00000b08: SWAP4
00000b09: PUSH1 0x1f
00000b0b: NOT
00000b0c: DUP2
00000b0d: ADD
00000b0e: SWAP4
00000b0f: SWAP3
00000b10: DUP2
00000b11: SWAP1
00000b12: SUB
00000b13: SWAP1
00000b14: SWAP2
00000b15: ADD
00000b16: SWAP2
00000b17: DUP7
00000b18: PUSH2 0x646e
00000b1b: GAS
00000b1c: SUB
00000b1d: CALL
00000b1e: ISZERO
00000b1f: ISZERO
00000b20: PUSH2 0x0b25
00000b23: JUMPI
00000b24: INVALID
00000b25: JUMPDEST
00000b26: POP
00000b27: POP
00000b28: PUSH1 0x20
00000b2a: PUSH1 0x40
00000b2c: MLOAD
00000b2d: SUB
00000b2e: MLOAD
00000b2f: PUSH1 0x01
00000b31: PUSH1 0xa0
00000b33: PUSH1 0x02
00000b35: EXP
00000b36: SUB
00000b37: AND
00000b38: EQ
00000b39: JUMPDEST
00000b3a: ISZERO
00000b3b: ISZERO
00000b3c: PUSH2 0x0b45
00000b3f: JUMPI
00000b40: PUSH1 0x00
00000b42: PUSH1 0x00
00000b44: REVERT
00000b45: JUMPDEST
00000b46: PUSH1 0x01
00000b48: PUSH1 0xa0
00000b4a: PUSH1 0x02
00000b4c: EXP
00000b4d: SUB
00000b4e: CALLER
00000b4f: DUP2
00000b50: AND
00000b51: PUSH1 0x00
00000b53: DUP2
00000b54: DUP2
00000b55: MSTORE
00000b56: PUSH1 0x08
00000b58: PUSH1 0x20
00000b5a: SWAP1
00000b5b: DUP2
00000b5c: MSTORE
00000b5d: PUSH1 0x40
00000b5f: DUP1
00000b60: DUP4
00000b61: KECCAK256
00000b62: DUP7
00000b63: DUP5
00000b64: MSTORE
00000b65: DUP3
00000b66: MSTORE
00000b67: SWAP2
00000b68: DUP3
00000b69: SWAP1
00000b6a: KECCAK256
00000b6b: DUP14
00000b6c: SWAP1
00000b6d: SSTORE
00000b6e: DUP2
00000b6f: MLOAD
00000b70: DUP15
00000b71: DUP6
00000b72: AND
00000b73: DUP2
00000b74: MSTORE
00000b75: SWAP1
00000b76: DUP2
00000b77: ADD
00000b78: DUP14
00000b79: SWAP1
00000b7a: MSTORE
00000b7b: SWAP3
00000b7c: DUP12
00000b7d: AND
00000b7e: DUP4
00000b7f: DUP3
00000b80: ADD
00000b81: MSTORE
00000b82: PUSH1 0x60
00000b84: DUP4
00000b85: ADD
00000b86: DUP11
00000b87: SWAP1
00000b88: MSTORE
00000b89: PUSH1 0x80
00000b8b: DUP4
00000b8c: ADD
00000b8d: DUP10
00000b8e: SWAP1
00000b8f: MSTORE
00000b90: PUSH1 0xa0
00000b92: DUP4
00000b93: ADD
00000b94: DUP9
00000b95: SWAP1
00000b96: MSTORE
00000b97: PUSH1 0xc0
00000b99: DUP4
00000b9a: ADD
00000b9b: SWAP2
00000b9c: SWAP1
00000b9d: SWAP2
00000b9e: MSTORE
00000b9f: PUSH1 0xff
00000ba1: DUP7
00000ba2: AND
00000ba3: PUSH1 0xe0
00000ba5: DUP4
00000ba6: ADD
00000ba7: MSTORE
00000ba8: PUSH2 0x0100
00000bab: DUP3
00000bac: ADD
00000bad: DUP6
00000bae: SWAP1
00000baf: MSTORE
00000bb0: PUSH2 0x0120
00000bb3: DUP3
00000bb4: ADD
00000bb5: DUP5
00000bb6: SWAP1
00000bb7: MSTORE
00000bb8: MLOAD
00000bb9: PUSH32 0x1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0
00000bda: SWAP2
00000bdb: DUP2
00000bdc: SWAP1
00000bdd: SUB
00000bde: PUSH2 0x0140
00000be1: ADD
00000be2: SWAP1
00000be3: LOG1
00000be4: JUMPDEST
00000be5: POP
00000be6: POP
00000be7: POP
00000be8: POP
00000be9: POP
00000bea: POP
00000beb: POP
00000bec: POP
00000bed: POP
00000bee: POP
00000bef: JUMP
00000bf0: JUMPDEST
00000bf1: CALLER
00000bf2: PUSH1 0x01
00000bf4: PUSH1 0xa0
00000bf6: PUSH1 0x02
00000bf8: EXP
00000bf9: SUB
00000bfa: AND
00000bfb: PUSH1 0x00
00000bfd: SWAP1
00000bfe: DUP2
00000bff: MSTORE
00000c00: PUSH1 0x00
00000c02: DUP1
00000c03: MLOAD
00000c04: PUSH1 0x20
00000c06: PUSH2 0x19e1
00000c09: DUP4
00000c0a: CODECOPY
00000c0b: DUP2
00000c0c: MLOAD
00000c0d: SWAP2
00000c0e: MSTORE
00000c0f: PUSH1 0x20
00000c11: MSTORE
00000c12: PUSH1 0x40
00000c14: SWAP1
00000c15: KECCAK256
00000c16: SLOAD
00000c17: DUP2
00000c18: SWAP1
00000c19: LT
00000c1a: ISZERO
00000c1b: PUSH2 0x0c24
00000c1e: JUMPI
00000c1f: PUSH1 0x00
00000c21: PUSH1 0x00
00000c23: REVERT
00000c24: JUMPDEST
00000c25: CALLER
00000c26: PUSH1 0x01
00000c28: PUSH1 0xa0
00000c2a: PUSH1 0x02
00000c2c: EXP
00000c2d: SUB
00000c2e: AND
00000c2f: PUSH1 0x00
00000c31: SWAP1
00000c32: DUP2
00000c33: MSTORE
00000c34: PUSH1 0x00
00000c36: DUP1
00000c37: MLOAD
00000c38: PUSH1 0x20
00000c3a: PUSH2 0x19e1
00000c3d: DUP4
00000c3e: CODECOPY
00000c3f: DUP2
00000c40: MLOAD
00000c41: SWAP2
00000c42: MSTORE
00000c43: PUSH1 0x20
00000c45: MSTORE
00000c46: PUSH1 0x40
00000c48: SWAP1
00000c49: KECCAK256
00000c4a: SLOAD
00000c4b: PUSH2 0x0c54
00000c4e: SWAP1
00000c4f: DUP3
00000c50: PUSH2 0x1987
00000c53: JUMP
00000c54: JUMPDEST
00000c55: CALLER
00000c56: PUSH1 0x01
00000c58: PUSH1 0xa0
00000c5a: PUSH1 0x02
00000c5c: EXP
00000c5d: SUB
00000c5e: AND
00000c5f: PUSH1 0x00
00000c61: DUP2
00000c62: DUP2
00000c63: MSTORE
00000c64: PUSH1 0x00
00000c66: DUP1
00000c67: MLOAD
00000c68: PUSH1 0x20
00000c6a: PUSH2 0x19e1
00000c6d: DUP4
00000c6e: CODECOPY
00000c6f: DUP2
00000c70: MLOAD
00000c71: SWAP2
00000c72: MSTORE
00000c73: PUSH1 0x20
00000c75: MSTORE
00000c76: PUSH1 0x40
00000c78: DUP1
00000c79: DUP3
00000c7a: KECCAK256
00000c7b: SWAP4
00000c7c: SWAP1
00000c7d: SWAP4
00000c7e: SSTORE
00000c7f: SWAP2
00000c80: MLOAD
00000c81: SWAP1
00000c82: SWAP2
00000c83: DUP4
00000c84: SWAP2
00000c85: SWAP1
00000c86: DUP2
00000c87: DUP2
00000c88: DUP2
00000c89: DUP6
00000c8a: DUP8
00000c8b: PUSH2 0x8796
00000c8e: GAS
00000c8f: SUB
00000c90: CALL
00000c91: SWAP3
00000c92: POP
00000c93: POP
00000c94: POP
00000c95: ISZERO
00000c96: ISZERO
00000c97: PUSH2 0x0ca0
00000c9a: JUMPI
00000c9b: PUSH1 0x00
00000c9d: PUSH1 0x00
00000c9f: REVERT
00000ca0: JUMPDEST
00000ca1: PUSH1 0x01
00000ca3: PUSH1 0xa0
00000ca5: PUSH1 0x02
00000ca7: EXP
00000ca8: SUB
00000ca9: CALLER
00000caa: AND
00000cab: PUSH1 0x00
00000cad: DUP2
00000cae: DUP2
00000caf: MSTORE
00000cb0: PUSH1 0x00
00000cb2: DUP1
00000cb3: MLOAD
00000cb4: PUSH1 0x20
00000cb6: PUSH2 0x19e1
00000cb9: DUP4
00000cba: CODECOPY
00000cbb: DUP2
00000cbc: MLOAD
00000cbd: SWAP2
00000cbe: MSTORE
00000cbf: PUSH1 0x20
00000cc1: SWAP1
00000cc2: DUP2
00000cc3: MSTORE
00000cc4: PUSH1 0x40
00000cc6: DUP1
00000cc7: DUP4
00000cc8: KECCAK256
00000cc9: SLOAD
00000cca: DUP2
00000ccb: MLOAD
00000ccc: SWAP4
00000ccd: DUP5
00000cce: MSTORE
00000ccf: SWAP2
00000cd0: DUP4
00000cd1: ADD
00000cd2: SWAP4
00000cd3: SWAP1
00000cd4: SWAP4
00000cd5: MSTORE
00000cd6: DUP2
00000cd7: DUP4
00000cd8: ADD
00000cd9: DUP5
00000cda: SWAP1
00000cdb: MSTORE
00000cdc: PUSH1 0x60
00000cde: DUP3
00000cdf: ADD
00000ce0: MSTORE
00000ce1: SWAP1
00000ce2: MLOAD
00000ce3: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567
00000d04: SWAP2
00000d05: DUP2
00000d06: SWAP1
00000d07: SUB
00000d08: PUSH1 0x80
00000d0a: ADD
00000d0b: SWAP1
00000d0c: LOG1
00000d0d: JUMPDEST
00000d0e: POP
00000d0f: JUMP
00000d10: JUMPDEST
00000d11: PUSH1 0x01
00000d13: PUSH1 0xa0
00000d15: PUSH1 0x02
00000d17: EXP
00000d18: SUB
00000d19: DUP3
00000d1a: AND
00000d1b: ISZERO
00000d1c: ISZERO
00000d1d: PUSH2 0x0d26
00000d20: JUMPI
00000d21: PUSH1 0x00
00000d23: PUSH1 0x00
00000d25: REVERT
00000d26: JUMPDEST
00000d27: PUSH1 0x40
00000d29: DUP1
00000d2a: MLOAD
00000d2b: PUSH1 0x00
00000d2d: PUSH1 0x20
00000d2f: SWAP2
00000d30: DUP3
00000d31: ADD
00000d32: DUP2
00000d33: SWAP1
00000d34: MSTORE
00000d35: DUP3
00000d36: MLOAD
00000d37: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000
00000d58: DUP2
00000d59: MSTORE
00000d5a: PUSH1 0x01
00000d5c: PUSH1 0xa0
00000d5e: PUSH1 0x02
00000d60: EXP
00000d61: SUB
00000d62: CALLER
00000d63: DUP2
00000d64: AND
00000d65: PUSH1 0x04
00000d67: DUP4
00000d68: ADD
00000d69: MSTORE
00000d6a: ADDRESS
00000d6b: DUP2
00000d6c: AND
00000d6d: PUSH1 0x24
00000d6f: DUP4
00000d70: ADD
00000d71: MSTORE
00000d72: PUSH1 0x44
00000d74: DUP3
00000d75: ADD
00000d76: DUP7
00000d77: SWAP1
00000d78: MSTORE
00000d79: SWAP4
00000d7a: MLOAD
00000d7b: SWAP4
00000d7c: DUP7
00000d7d: AND
00000d7e: SWAP4
00000d7f: PUSH4 0x23b872dd
00000d84: SWAP4
00000d85: PUSH1 0x64
00000d87: DUP1
00000d88: DUP5
00000d89: ADD
00000d8a: SWAP5
00000d8b: SWAP2
00000d8c: SWAP4
00000d8d: DUP4
00000d8e: SWAP1
00000d8f: SUB
00000d90: ADD
00000d91: SWAP1
00000d92: DUP3
00000d93: SWAP1
00000d94: DUP8
00000d95: DUP1
00000d96: EXTCODESIZE
00000d97: ISZERO
00000d98: ISZERO
00000d99: PUSH2 0x0d9e
00000d9c: JUMPI
00000d9d: INVALID
00000d9e: JUMPDEST
00000d9f: PUSH2 0x02c6
00000da2: GAS
00000da3: SUB
00000da4: CALL
00000da5: ISZERO
00000da6: ISZERO
00000da7: PUSH2 0x0dac
00000daa: JUMPI
00000dab: INVALID
00000dac: JUMPDEST
00000dad: POP
00000dae: POP
00000daf: PUSH1 0x40
00000db1: MLOAD
00000db2: MLOAD
00000db3: ISZERO
00000db4: ISZERO
00000db5: SWAP1
00000db6: POP
00000db7: PUSH2 0x0dc0
00000dba: JUMPI
00000dbb: PUSH1 0x00
00000dbd: PUSH1 0x00
00000dbf: REVERT
00000dc0: JUMPDEST
00000dc1: PUSH1 0x01
00000dc3: PUSH1 0xa0
00000dc5: PUSH1 0x02
00000dc7: EXP
00000dc8: SUB
00000dc9: DUP1
00000dca: DUP4
00000dcb: AND
00000dcc: PUSH1 0x00
00000dce: SWAP1
00000dcf: DUP2
00000dd0: MSTORE
00000dd1: PUSH1 0x06
00000dd3: PUSH1 0x20
00000dd5: SWAP1
00000dd6: DUP2
00000dd7: MSTORE
00000dd8: PUSH1 0x40
00000dda: DUP1
00000ddb: DUP4
00000ddc: KECCAK256
00000ddd: CALLER
00000dde: SWAP1
00000ddf: SWAP5
00000de0: AND
00000de1: DUP4
00000de2: MSTORE
00000de3: SWAP3
00000de4: SWAP1
00000de5: MSTORE
00000de6: KECCAK256
00000de7: SLOAD
00000de8: PUSH2 0x0df1
00000deb: SWAP1
00000dec: DUP3
00000ded: PUSH2 0x1682
00000df0: JUMP
00000df1: JUMPDEST
00000df2: PUSH1 0x01
00000df4: PUSH1 0xa0
00000df6: PUSH1 0x02
00000df8: EXP
00000df9: SUB
00000dfa: DUP4
00000dfb: DUP2
00000dfc: AND
00000dfd: PUSH1 0x00
00000dff: DUP2
00000e00: DUP2
00000e01: MSTORE
00000e02: PUSH1 0x06
00000e04: PUSH1 0x20
00000e06: SWAP1
00000e07: DUP2
00000e08: MSTORE
00000e09: PUSH1 0x40
00000e0b: DUP1
00000e0c: DUP4
00000e0d: KECCAK256
00000e0e: CALLER
00000e0f: SWAP1
00000e10: SWAP6
00000e11: AND
00000e12: DUP1
00000e13: DUP5
00000e14: MSTORE
00000e15: SWAP5
00000e16: DUP3
00000e17: MSTORE
00000e18: SWAP2
00000e19: DUP3
00000e1a: SWAP1
00000e1b: KECCAK256
00000e1c: DUP6
00000e1d: SWAP1
00000e1e: SSTORE
00000e1f: DUP2
00000e20: MLOAD
00000e21: SWAP3
00000e22: DUP4
00000e23: MSTORE
00000e24: DUP3
00000e25: ADD
00000e26: SWAP3
00000e27: SWAP1
00000e28: SWAP3
00000e29: MSTORE
00000e2a: DUP1
00000e2b: DUP3
00000e2c: ADD
00000e2d: DUP5
00000e2e: SWAP1
00000e2f: MSTORE
00000e30: PUSH1 0x60
00000e32: DUP2
00000e33: ADD
00000e34: SWAP3
00000e35: SWAP1
00000e36: SWAP3
00000e37: MSTORE
00000e38: MLOAD
00000e39: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7
00000e5a: SWAP2
00000e5b: DUP2
00000e5c: SWAP1
00000e5d: SUB
00000e5e: PUSH1 0x80
00000e60: ADD
00000e61: SWAP1
00000e62: LOG1
00000e63: JUMPDEST
00000e64: POP
00000e65: POP
00000e66: JUMP
00000e67: JUMPDEST
00000e68: PUSH1 0x00
00000e6a: PUSH1 0x00
00000e6c: PUSH1 0x02
00000e6e: ADDRESS
00000e6f: DUP14
00000e70: DUP14
00000e71: DUP14
00000e72: DUP14
00000e73: DUP14
00000e74: DUP14
00000e75: PUSH1 0x00
00000e77: PUSH1 0x40
00000e79: MLOAD
00000e7a: PUSH1 0x20
00000e7c: ADD
00000e7d: MSTORE
00000e7e: PUSH1 0x40
00000e80: MLOAD
00000e81: DUP1
00000e82: DUP9
00000e83: PUSH1 0x01
00000e85: PUSH1 0xa0
00000e87: PUSH1 0x02
00000e89: EXP
00000e8a: SUB
00000e8b: AND
00000e8c: PUSH1 0x01
00000e8e: PUSH1 0xa0
00000e90: PUSH1 0x02
00000e92: EXP
00000e93: SUB
00000e94: AND
00000e95: PUSH1 0x60
00000e97: PUSH1 0x02
00000e99: EXP
00000e9a: MUL
00000e9b: DUP2
00000e9c: MSTORE
00000e9d: PUSH1 0x14
00000e9f: ADD
00000ea0: DUP8
00000ea1: PUSH1 0x01
00000ea3: PUSH1 0xa0
00000ea5: PUSH1 0x02
00000ea7: EXP
00000ea8: SUB
00000ea9: AND
00000eaa: PUSH1 0x01
00000eac: PUSH1 0xa0
00000eae: PUSH1 0x02
00000eb0: EXP
00000eb1: SUB
00000eb2: AND
00000eb3: PUSH1 0x60
00000eb5: PUSH1 0x02
00000eb7: EXP
00000eb8: MUL
00000eb9: DUP2
00000eba: MSTORE
00000ebb: PUSH1 0x14
00000ebd: ADD
00000ebe: DUP7
00000ebf: DUP2
00000ec0: MSTORE
00000ec1: PUSH1 0x20
00000ec3: ADD
00000ec4: DUP6
00000ec5: PUSH1 0x01
00000ec7: PUSH1 0xa0
00000ec9: PUSH1 0x02
00000ecb: EXP
00000ecc: SUB
00000ecd: AND
00000ece: PUSH1 0x01
00000ed0: PUSH1 0xa0
00000ed2: PUSH1 0x02
00000ed4: EXP
00000ed5: SUB
00000ed6: AND
00000ed7: PUSH1 0x60
00000ed9: PUSH1 0x02
00000edb: EXP
00000edc: MUL
00000edd: DUP2
00000ede: MSTORE
00000edf: PUSH1 0x14
00000ee1: ADD
00000ee2: DUP5
00000ee3: DUP2
00000ee4: MSTORE
00000ee5: PUSH1 0x20
00000ee7: ADD
00000ee8: DUP4
00000ee9: DUP2
00000eea: MSTORE
00000eeb: PUSH1 0x20
00000eed: ADD
00000eee: DUP3
00000eef: DUP2
00000ef0: MSTORE
00000ef1: PUSH1 0x20
00000ef3: ADD
00000ef4: SWAP8
00000ef5: POP
00000ef6: POP
00000ef7: POP
00000ef8: POP
00000ef9: POP
00000efa: POP
00000efb: POP
00000efc: POP
00000efd: PUSH1 0x20
00000eff: PUSH1 0x40
00000f01: MLOAD
00000f02: DUP1
00000f03: DUP4
00000f04: SUB
00000f05: DUP2
00000f06: PUSH1 0x00
00000f08: DUP7
00000f09: PUSH2 0x646e
00000f0c: GAS
00000f0d: SUB
00000f0e: CALL
00000f0f: ISZERO
00000f10: ISZERO
00000f11: PUSH2 0x0f16
00000f14: JUMPI
00000f15: INVALID
00000f16: JUMPDEST
00000f17: POP
00000f18: POP
00000f19: PUSH1 0x40
00000f1b: DUP1
00000f1c: MLOAD
00000f1d: MLOAD
00000f1e: PUSH1 0x01
00000f20: PUSH1 0xa0
00000f22: PUSH1 0x02
00000f24: EXP
00000f25: SUB
00000f26: DUP9
00000f27: AND
00000f28: PUSH1 0x00
00000f2a: SWAP1
00000f2b: DUP2
00000f2c: MSTORE
00000f2d: PUSH1 0x08
00000f2f: PUSH1 0x20
00000f31: SWAP1
00000f32: DUP2
00000f33: MSTORE
00000f34: DUP4
00000f35: DUP3
00000f36: KECCAK256
00000f37: DUP4
00000f38: DUP4
00000f39: MSTORE
00000f3a: SWAP1
00000f3b: MSTORE
00000f3c: SWAP2
00000f3d: SWAP1
00000f3e: SWAP2
00000f3f: KECCAK256
00000f40: SLOAD
00000f41: SWAP3
00000f42: POP
00000f43: SWAP1
00000f44: POP
00000f45: JUMPDEST
00000f46: POP
00000f47: SWAP11
00000f48: SWAP10
00000f49: POP
00000f4a: POP
00000f4b: POP
00000f4c: POP
00000f4d: POP
00000f4e: POP
00000f4f: POP
00000f50: POP
00000f51: POP
00000f52: POP
00000f53: JUMP
00000f54: JUMPDEST
00000f55: PUSH1 0x06
00000f57: PUSH1 0x20
00000f59: SWAP1
00000f5a: DUP2
00000f5b: MSTORE
00000f5c: PUSH1 0x00
00000f5e: SWAP3
00000f5f: DUP4
00000f60: MSTORE
00000f61: PUSH1 0x40
00000f63: DUP1
00000f64: DUP5
00000f65: KECCAK256
00000f66: SWAP1
00000f67: SWAP2
00000f68: MSTORE
00000f69: SWAP1
00000f6a: DUP3
00000f6b: MSTORE
00000f6c: SWAP1
00000f6d: KECCAK256
00000f6e: SLOAD
00000f6f: DUP2
00000f70: JUMP
00000f71: JUMPDEST
00000f72: PUSH1 0x00
00000f74: SLOAD
00000f75: CALLER
00000f76: PUSH1 0x01
00000f78: PUSH1 0xa0
00000f7a: PUSH1 0x02
00000f7c: EXP
00000f7d: SUB
00000f7e: SWAP1
00000f7f: DUP2
00000f80: AND
00000f81: SWAP2
00000f82: AND
00000f83: EQ
00000f84: PUSH2 0x0f8d
00000f87: JUMPI
00000f88: PUSH1 0x00
00000f8a: PUSH1 0x00
00000f8c: REVERT
00000f8d: JUMPDEST
00000f8e: PUSH1 0x03
00000f90: SLOAD
00000f91: DUP2
00000f92: GT
00000f93: ISZERO
00000f94: PUSH2 0x0f9d
00000f97: JUMPI
00000f98: PUSH1 0x00
00000f9a: PUSH1 0x00
00000f9c: REVERT
00000f9d: JUMPDEST
00000f9e: PUSH1 0x03
00000fa0: DUP2
00000fa1: SWAP1
00000fa2: SSTORE
00000fa3: JUMPDEST
00000fa4: POP
00000fa5: JUMP
00000fa6: JUMPDEST
00000fa7: PUSH1 0x03
00000fa9: SLOAD
00000faa: DUP2
00000fab: JUMP
00000fac: JUMPDEST
00000fad: PUSH1 0x00
00000faf: SLOAD
00000fb0: CALLER
00000fb1: PUSH1 0x01
00000fb3: PUSH1 0xa0
00000fb5: PUSH1 0x02
00000fb7: EXP
00000fb8: SUB
00000fb9: SWAP1
00000fba: DUP2
00000fbb: AND
00000fbc: SWAP2
00000fbd: AND
00000fbe: EQ
00000fbf: PUSH2 0x0fc8
00000fc2: JUMPI
00000fc3: PUSH1 0x00
00000fc5: PUSH1 0x00
00000fc7: REVERT
00000fc8: JUMPDEST
00000fc9: PUSH1 0x05
00000fcb: SLOAD
00000fcc: DUP2
00000fcd: LT
00000fce: DUP1
00000fcf: PUSH2 0x0fd9
00000fd2: JUMPI
00000fd3: POP
00000fd4: PUSH1 0x04
00000fd6: SLOAD
00000fd7: DUP2
00000fd8: GT
00000fd9: JUMPDEST
00000fda: ISZERO
00000fdb: PUSH2 0x0fe4
00000fde: JUMPI
00000fdf: PUSH1 0x00
00000fe1: PUSH1 0x00
00000fe3: REVERT
00000fe4: JUMPDEST
00000fe5: PUSH1 0x05
00000fe7: DUP2
00000fe8: SWAP1
00000fe9: SSTORE
00000fea: JUMPDEST
00000feb: POP
00000fec: JUMP
00000fed: JUMPDEST
00000fee: PUSH1 0x01
00000ff0: SLOAD
00000ff1: PUSH1 0x01
00000ff3: PUSH1 0xa0
00000ff5: PUSH1 0x02
00000ff7: EXP
00000ff8: SUB
00000ff9: AND
00000ffa: DUP2
00000ffb: JUMP
00000ffc: JUMPDEST
00000ffd: PUSH1 0x01
00000fff: PUSH1 0xa0
00001001: PUSH1 0x02
00001003: EXP
00001004: SUB
00001005: DUP1
00001006: DUP14
00001007: AND
00001008: PUSH1 0x00
0000100a: SWAP1
0000100b: DUP2
0000100c: MSTORE
0000100d: PUSH1 0x06
0000100f: PUSH1 0x20
00001011: SWAP1
00001012: DUP2
00001013: MSTORE
00001014: PUSH1 0x40
00001016: DUP1
00001017: DUP4
00001018: KECCAK256
00001019: SWAP4
0000101a: DUP6
0000101b: AND
0000101c: DUP4
0000101d: MSTORE
0000101e: SWAP3
0000101f: SWAP1
00001020: MSTORE
00001021: SWAP1
00001022: DUP2
00001023: KECCAK256
00001024: SLOAD
00001025: DUP4
00001026: SWAP1
00001027: LT
00001028: DUP1
00001029: ISZERO
0000102a: SWAP1
0000102b: PUSH2 0x1045
0000102e: JUMPI
0000102f: POP
00001030: DUP3
00001031: PUSH2 0x1042
00001034: DUP15
00001035: DUP15
00001036: DUP15
00001037: DUP15
00001038: DUP15
00001039: DUP15
0000103a: DUP15
0000103b: DUP15
0000103c: DUP15
0000103d: DUP15
0000103e: PUSH2 0x143b
00001041: JUMP
00001042: JUMPDEST
00001043: LT
00001044: ISZERO
00001045: JUMPDEST
00001046: ISZERO
00001047: ISZERO
00001048: PUSH2 0x1053
0000104b: JUMPI
0000104c: POP
0000104d: PUSH1 0x00
0000104f: PUSH2 0x1057
00001052: JUMP
00001053: JUMPDEST
00001054: POP
00001055: PUSH1 0x01
00001057: JUMPDEST
00001058: SWAP13
00001059: SWAP12
0000105a: POP
0000105b: POP
0000105c: POP
0000105d: POP
0000105e: POP
0000105f: POP
00001060: POP
00001061: POP
00001062: POP
00001063: POP
00001064: POP
00001065: POP
00001066: JUMP
00001067: JUMPDEST
00001068: PUSH1 0x00
0000106a: SLOAD
0000106b: CALLER
0000106c: PUSH1 0x01
0000106e: PUSH1 0xa0
00001070: PUSH1 0x02
00001072: EXP
00001073: SUB
00001074: SWAP1
00001075: DUP2
00001076: AND
00001077: SWAP2
00001078: AND
00001079: EQ
0000107a: PUSH2 0x1083
0000107d: JUMPI
0000107e: PUSH1 0x00
00001080: PUSH1 0x00
00001082: REVERT
00001083: JUMPDEST
00001084: PUSH1 0x01
00001086: DUP1
00001087: SLOAD
00001088: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000109d: NOT
0000109e: AND
0000109f: PUSH1 0x01
000010a1: PUSH1 0xa0
000010a3: PUSH1 0x02
000010a5: EXP
000010a6: SUB
000010a7: DUP4
000010a8: AND
000010a9: OR
000010aa: SWAP1
000010ab: SSTORE
000010ac: JUMPDEST
000010ad: POP
000010ae: JUMP
000010af: JUMPDEST
000010b0: PUSH1 0x05
000010b2: SLOAD
000010b3: DUP2
000010b4: JUMP
000010b5: JUMPDEST
000010b6: PUSH1 0x00
000010b8: SLOAD
000010b9: CALLER
000010ba: PUSH1 0x01
000010bc: PUSH1 0xa0
000010be: PUSH1 0x02
000010c0: EXP
000010c1: SUB
000010c2: SWAP1
000010c3: DUP2
000010c4: AND
000010c5: SWAP2
000010c6: AND
000010c7: EQ
000010c8: PUSH2 0x10d1
000010cb: JUMPI
000010cc: PUSH1 0x00
000010ce: PUSH1 0x00
000010d0: REVERT
000010d1: JUMPDEST
000010d2: PUSH1 0x04
000010d4: SLOAD
000010d5: DUP2
000010d6: GT
000010d7: DUP1
000010d8: PUSH2 0x10e2
000010db: JUMPI
000010dc: POP
000010dd: PUSH1 0x05
000010df: SLOAD
000010e0: DUP2
000010e1: LT
000010e2: JUMPDEST
000010e3: ISZERO
000010e4: PUSH2 0x10ed
000010e7: JUMPI
000010e8: PUSH1 0x00
000010ea: PUSH1 0x00
000010ec: REVERT
000010ed: JUMPDEST
000010ee: PUSH1 0x04
000010f0: DUP2
000010f1: SWAP1
000010f2: SSTORE
000010f3: JUMPDEST
000010f4: POP
000010f5: JUMP
000010f6: JUMPDEST
000010f7: PUSH1 0x00
000010f9: SLOAD
000010fa: CALLER
000010fb: PUSH1 0x01
000010fd: PUSH1 0xa0
000010ff: PUSH1 0x02
00001101: EXP
00001102: SUB
00001103: SWAP1
00001104: DUP2
00001105: AND
00001106: SWAP2
00001107: AND
00001108: EQ
00001109: PUSH2 0x1112
0000110c: JUMPI
0000110d: PUSH1 0x00
0000110f: PUSH1 0x00
00001111: REVERT
00001112: JUMPDEST
00001113: PUSH1 0x00
00001115: DUP1
00001116: SLOAD
00001117: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000112c: NOT
0000112d: AND
0000112e: PUSH1 0x01
00001130: PUSH1 0xa0
00001132: PUSH1 0x02
00001134: EXP
00001135: SUB
00001136: DUP4
00001137: AND
00001138: OR
00001139: SWAP1
0000113a: SSTORE
0000113b: JUMPDEST
0000113c: POP
0000113d: JUMP
0000113e: JUMPDEST
0000113f: PUSH1 0x01
00001141: PUSH1 0xa0
00001143: PUSH1 0x02
00001145: EXP
00001146: SUB
00001147: DUP3
00001148: AND
00001149: ISZERO
0000114a: ISZERO
0000114b: PUSH2 0x1154
0000114e: JUMPI
0000114f: PUSH1 0x00
00001151: PUSH1 0x00
00001153: REVERT
00001154: JUMPDEST
00001155: PUSH1 0x01
00001157: PUSH1 0xa0
00001159: PUSH1 0x02
0000115b: EXP
0000115c: SUB
0000115d: DUP1
0000115e: DUP4
0000115f: AND
00001160: PUSH1 0x00
00001162: SWAP1
00001163: DUP2
00001164: MSTORE
00001165: PUSH1 0x06
00001167: PUSH1 0x20
00001169: SWAP1
0000116a: DUP2
0000116b: MSTORE
0000116c: PUSH1 0x40
0000116e: DUP1
0000116f: DUP4
00001170: KECCAK256
00001171: CALLER
00001172: SWAP1
00001173: SWAP5
00001174: AND
00001175: DUP4
00001176: MSTORE
00001177: SWAP3
00001178: SWAP1
00001179: MSTORE
0000117a: KECCAK256
0000117b: SLOAD
0000117c: DUP2
0000117d: SWAP1
0000117e: LT
0000117f: ISZERO
00001180: PUSH2 0x1189
00001183: JUMPI
00001184: PUSH1 0x00
00001186: PUSH1 0x00
00001188: REVERT
00001189: JUMPDEST
0000118a: PUSH1 0x01
0000118c: PUSH1 0xa0
0000118e: PUSH1 0x02
00001190: EXP
00001191: SUB
00001192: DUP1
00001193: DUP4
00001194: AND
00001195: PUSH1 0x00
00001197: SWAP1
00001198: DUP2
00001199: MSTORE
0000119a: PUSH1 0x06
0000119c: PUSH1 0x20
0000119e: SWAP1
0000119f: DUP2
000011a0: MSTORE
000011a1: PUSH1 0x40
000011a3: DUP1
000011a4: DUP4
000011a5: KECCAK256
000011a6: CALLER
000011a7: SWAP1
000011a8: SWAP5
000011a9: AND
000011aa: DUP4
000011ab: MSTORE
000011ac: SWAP3
000011ad: SWAP1
000011ae: MSTORE
000011af: KECCAK256
000011b0: SLOAD
000011b1: PUSH2 0x11ba
000011b4: SWAP1
000011b5: DUP3
000011b6: PUSH2 0x1987
000011b9: JUMP
000011ba: JUMPDEST
000011bb: PUSH1 0x01
000011bd: PUSH1 0xa0
000011bf: PUSH1 0x02
000011c1: EXP
000011c2: SUB
000011c3: DUP1
000011c4: DUP5
000011c5: AND
000011c6: PUSH1 0x00
000011c8: DUP2
000011c9: DUP2
000011ca: MSTORE
000011cb: PUSH1 0x06
000011cd: PUSH1 0x20
000011cf: SWAP1
000011d0: DUP2
000011d1: MSTORE
000011d2: PUSH1 0x40
000011d4: DUP1
000011d5: DUP4
000011d6: KECCAK256
000011d7: CALLER
000011d8: SWAP1
000011d9: SWAP6
000011da: AND
000011db: DUP1
000011dc: DUP5
000011dd: MSTORE
000011de: SWAP5
000011df: DUP3
000011e0: MSTORE
000011e1: DUP1
000011e2: DUP4
000011e3: KECCAK256
000011e4: SWAP6
000011e5: SWAP1
000011e6: SWAP6
000011e7: SSTORE
000011e8: DUP5
000011e9: MLOAD
000011ea: DUP2
000011eb: ADD
000011ec: DUP3
000011ed: SWAP1
000011ee: MSTORE
000011ef: DUP5
000011f0: MLOAD
000011f1: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
00001212: DUP2
00001213: MSTORE
00001214: PUSH1 0x04
00001216: DUP2
00001217: ADD
00001218: SWAP5
00001219: SWAP1
0000121a: SWAP5
0000121b: MSTORE
0000121c: PUSH1 0x24
0000121e: DUP5
0000121f: ADD
00001220: DUP7
00001221: SWAP1
00001222: MSTORE
00001223: SWAP4
00001224: MLOAD
00001225: SWAP2
00001226: SWAP4
00001227: PUSH4 0xa9059cbb
0000122c: SWAP4
0000122d: PUSH1 0x44
0000122f: DUP1
00001230: DUP3
00001231: ADD
00001232: SWAP5
00001233: SWAP3
00001234: SWAP4
00001235: SWAP2
00001236: DUP4
00001237: SWAP1
00001238: SUB
00001239: ADD
0000123a: SWAP1
0000123b: DUP3
0000123c: SWAP1
0000123d: DUP8
0000123e: DUP1
0000123f: EXTCODESIZE
00001240: ISZERO
00001241: ISZERO
00001242: PUSH2 0x1247
00001245: JUMPI
00001246: INVALID
00001247: JUMPDEST
00001248: PUSH2 0x02c6
0000124b: GAS
0000124c: SUB
0000124d: CALL
0000124e: ISZERO
0000124f: ISZERO
00001250: PUSH2 0x1255
00001253: JUMPI
00001254: INVALID
00001255: JUMPDEST
00001256: POP
00001257: POP
00001258: PUSH1 0x40
0000125a: MLOAD
0000125b: MLOAD
0000125c: ISZERO
0000125d: ISZERO
0000125e: SWAP1
0000125f: POP
00001260: PUSH2 0x1269
00001263: JUMPI
00001264: PUSH1 0x00
00001266: PUSH1 0x00
00001268: REVERT
00001269: JUMPDEST
0000126a: PUSH1 0x01
0000126c: PUSH1 0xa0
0000126e: PUSH1 0x02
00001270: EXP
00001271: SUB
00001272: DUP1
00001273: DUP4
00001274: AND
00001275: PUSH1 0x00
00001277: DUP2
00001278: DUP2
00001279: MSTORE
0000127a: PUSH1 0x06
0000127c: PUSH1 0x20
0000127e: SWAP1
0000127f: DUP2
00001280: MSTORE
00001281: PUSH1 0x40
00001283: DUP1
00001284: DUP4
00001285: KECCAK256
00001286: CALLER
00001287: SWAP6
00001288: SWAP1
00001289: SWAP6
0000128a: AND
0000128b: DUP1
0000128c: DUP5
0000128d: MSTORE
0000128e: SWAP5
0000128f: DUP3
00001290: MSTORE
00001291: SWAP2
00001292: DUP3
00001293: SWAP1
00001294: KECCAK256
00001295: SLOAD
00001296: DUP3
00001297: MLOAD
00001298: SWAP4
00001299: DUP5
0000129a: MSTORE
0000129b: SWAP1
0000129c: DUP4
0000129d: ADD
0000129e: SWAP4
0000129f: SWAP1
000012a0: SWAP4
000012a1: MSTORE
000012a2: DUP2
000012a3: DUP2
000012a4: ADD
000012a5: DUP5
000012a6: SWAP1
000012a7: MSTORE
000012a8: PUSH1 0x60
000012aa: DUP3
000012ab: ADD
000012ac: SWAP3
000012ad: SWAP1
000012ae: SWAP3
000012af: MSTORE
000012b0: SWAP1
000012b1: MLOAD
000012b2: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567
000012d3: SWAP2
000012d4: DUP2
000012d5: SWAP1
000012d6: SUB
000012d7: PUSH1 0x80
000012d9: ADD
000012da: SWAP1
000012db: LOG1
000012dc: JUMPDEST
000012dd: POP
000012de: POP
000012df: JUMP
000012e0: JUMPDEST
000012e1: PUSH1 0x07
000012e3: PUSH1 0x20
000012e5: SWAP1
000012e6: DUP2
000012e7: MSTORE
000012e8: PUSH1 0x00
000012ea: SWAP3
000012eb: DUP4
000012ec: MSTORE
000012ed: PUSH1 0x40
000012ef: DUP1
000012f0: DUP5
000012f1: KECCAK256
000012f2: SWAP1
000012f3: SWAP2
000012f4: MSTORE
000012f5: SWAP1
000012f6: DUP3
000012f7: MSTORE
000012f8: SWAP1
000012f9: KECCAK256
000012fa: SLOAD
000012fb: PUSH1 0xff
000012fd: AND
000012fe: DUP2
000012ff: JUMP
00001300: JUMPDEST
00001301: PUSH1 0x04
00001303: SLOAD
00001304: DUP2
00001305: JUMP
00001306: JUMPDEST
00001307: CALLER
00001308: PUSH1 0x01
0000130a: PUSH1 0xa0
0000130c: PUSH1 0x02
0000130e: EXP
0000130f: SUB
00001310: AND
00001311: PUSH1 0x00
00001313: SWAP1
00001314: DUP2
00001315: MSTORE
00001316: PUSH1 0x00
00001318: DUP1
00001319: MLOAD
0000131a: PUSH1 0x20
0000131c: PUSH2 0x19e1
0000131f: DUP4
00001320: CODECOPY
00001321: DUP2
00001322: MLOAD
00001323: SWAP2
00001324: MSTORE
00001325: PUSH1 0x20
00001327: MSTORE
00001328: PUSH1 0x40
0000132a: SWAP1
0000132b: KECCAK256
0000132c: SLOAD
0000132d: PUSH2 0x1336
00001330: SWAP1
00001331: CALLVALUE
00001332: PUSH2 0x1682
00001335: JUMP
00001336: JUMPDEST
00001337: CALLER
00001338: PUSH1 0x01
0000133a: PUSH1 0xa0
0000133c: PUSH1 0x02
0000133e: EXP
0000133f: SUB
00001340: AND
00001341: PUSH1 0x00
00001343: DUP2
00001344: DUP2
00001345: MSTORE
00001346: PUSH1 0x00
00001348: DUP1
00001349: MLOAD
0000134a: PUSH1 0x20
0000134c: PUSH2 0x19e1
0000134f: DUP4
00001350: CODECOPY
00001351: DUP2
00001352: MLOAD
00001353: SWAP2
00001354: MSTORE
00001355: PUSH1 0x20
00001357: SWAP1
00001358: DUP2
00001359: MSTORE
0000135a: PUSH1 0x40
0000135c: DUP1
0000135d: DUP4
0000135e: KECCAK256
0000135f: DUP6
00001360: SWAP1
00001361: SSTORE
00001362: DUP1
00001363: MLOAD
00001364: SWAP3
00001365: DUP4
00001366: MSTORE
00001367: SWAP1
00001368: DUP3
00001369: ADD
0000136a: SWAP3
0000136b: SWAP1
0000136c: SWAP3
0000136d: MSTORE
0000136e: CALLVALUE
0000136f: DUP2
00001370: DUP4
00001371: ADD
00001372: MSTORE
00001373: PUSH1 0x60
00001375: DUP2
00001376: ADD
00001377: SWAP3
00001378: SWAP1
00001379: SWAP3
0000137a: MSTORE
0000137b: MLOAD
0000137c: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7
0000139d: SWAP2
0000139e: DUP2
0000139f: SWAP1
000013a0: SUB
000013a1: PUSH1 0x80
000013a3: ADD
000013a4: SWAP1
000013a5: LOG1
000013a6: JUMPDEST
000013a7: JUMP
000013a8: JUMPDEST
000013a9: PUSH1 0x00
000013ab: SLOAD
000013ac: CALLER
000013ad: PUSH1 0x01
000013af: PUSH1 0xa0
000013b1: PUSH1 0x02
000013b3: EXP
000013b4: SUB
000013b5: SWAP1
000013b6: DUP2
000013b7: AND
000013b8: SWAP2
000013b9: AND
000013ba: EQ
000013bb: PUSH2 0x13c4
000013be: JUMPI
000013bf: PUSH1 0x00
000013c1: PUSH1 0x00
000013c3: REVERT
000013c4: JUMPDEST
000013c5: PUSH1 0x02
000013c7: DUP1
000013c8: SLOAD
000013c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013de: NOT
000013df: AND
000013e0: PUSH1 0x01
000013e2: PUSH1 0xa0
000013e4: PUSH1 0x02
000013e6: EXP
000013e7: SUB
000013e8: DUP4
000013e9: AND
000013ea: OR
000013eb: SWAP1
000013ec: SSTORE
000013ed: JUMPDEST
000013ee: POP
000013ef: JUMP
000013f0: JUMPDEST
000013f1: PUSH1 0x02
000013f3: SLOAD
000013f4: PUSH1 0x01
000013f6: PUSH1 0xa0
000013f8: PUSH1 0x02
000013fa: EXP
000013fb: SUB
000013fc: AND
000013fd: DUP2
000013fe: JUMP
000013ff: JUMPDEST
00001400: PUSH1 0x01
00001402: PUSH1 0xa0
00001404: PUSH1 0x02
00001406: EXP
00001407: SUB
00001408: DUP1
00001409: DUP4
0000140a: AND
0000140b: PUSH1 0x00
0000140d: SWAP1
0000140e: DUP2
0000140f: MSTORE
00001410: PUSH1 0x06
00001412: PUSH1 0x20
00001414: SWAP1
00001415: DUP2
00001416: MSTORE
00001417: PUSH1 0x40
00001419: DUP1
0000141a: DUP4
0000141b: KECCAK256
0000141c: SWAP4
0000141d: DUP6
0000141e: AND
0000141f: DUP4
00001420: MSTORE
00001421: SWAP3
00001422: SWAP1
00001423: MSTORE
00001424: KECCAK256
00001425: SLOAD
00001426: JUMPDEST
00001427: SWAP3
00001428: SWAP2
00001429: POP
0000142a: POP
0000142b: JUMP
0000142c: JUMPDEST
0000142d: PUSH1 0x00
0000142f: SLOAD
00001430: PUSH1 0x01
00001432: PUSH1 0xa0
00001434: PUSH1 0x02
00001436: EXP
00001437: SUB
00001438: AND
00001439: DUP2
0000143a: JUMP
0000143b: JUMPDEST
0000143c: PUSH1 0x00
0000143e: PUSH1 0x00
00001440: PUSH1 0x00
00001442: PUSH1 0x00
00001444: PUSH1 0x02
00001446: ADDRESS
00001447: DUP16
00001448: DUP16
00001449: DUP16
0000144a: DUP16
0000144b: DUP16
0000144c: DUP16
0000144d: PUSH1 0x00
0000144f: PUSH1 0x40
00001451: MLOAD
00001452: PUSH1 0x20
00001454: ADD
00001455: MSTORE
00001456: PUSH1 0x40
00001458: MLOAD
00001459: DUP1
0000145a: DUP9
0000145b: PUSH1 0x01
0000145d: PUSH1 0xa0
0000145f: PUSH1 0x02
00001461: EXP
00001462: SUB
00001463: AND
00001464: PUSH1 0x01
00001466: PUSH1 0xa0
00001468: PUSH1 0x02
0000146a: EXP
0000146b: SUB
0000146c: AND
0000146d: PUSH1 0x60
0000146f: PUSH1 0x02
00001471: EXP
00001472: MUL
00001473: DUP2
00001474: MSTORE
00001475: PUSH1 0x14
00001477: ADD
00001478: DUP8
00001479: PUSH1 0x01
0000147b: PUSH1 0xa0
0000147d: PUSH1 0x02
0000147f: EXP
00001480: SUB
00001481: AND
00001482: PUSH1 0x01
00001484: PUSH1 0xa0
00001486: PUSH1 0x02
00001488: EXP
00001489: SUB
0000148a: AND
0000148b: PUSH1 0x60
0000148d: PUSH1 0x02
0000148f: EXP
00001490: MUL
00001491: DUP2
00001492: MSTORE
00001493: PUSH1 0x14
00001495: ADD
00001496: DUP7
00001497: DUP2
00001498: MSTORE
00001499: PUSH1 0x20
0000149b: ADD
0000149c: DUP6
0000149d: PUSH1 0x01
0000149f: PUSH1 0xa0
000014a1: PUSH1 0x02
000014a3: EXP
000014a4: SUB
000014a5: AND
000014a6: PUSH1 0x01
000014a8: PUSH1 0xa0
000014aa: PUSH1 0x02
000014ac: EXP
000014ad: SUB
000014ae: AND
000014af: PUSH1 0x60
000014b1: PUSH1 0x02
000014b3: EXP
000014b4: MUL
000014b5: DUP2
000014b6: MSTORE
000014b7: PUSH1 0x14
000014b9: ADD
000014ba: DUP5
000014bb: DUP2
000014bc: MSTORE
000014bd: PUSH1 0x20
000014bf: ADD
000014c0: DUP4
000014c1: DUP2
000014c2: MSTORE
000014c3: PUSH1 0x20
000014c5: ADD
000014c6: DUP3
000014c7: DUP2
000014c8: MSTORE
000014c9: PUSH1 0x20
000014cb: ADD
000014cc: SWAP8
000014cd: POP
000014ce: POP
000014cf: POP
000014d0: POP
000014d1: POP
000014d2: POP
000014d3: POP
000014d4: POP
000014d5: PUSH1 0x20
000014d7: PUSH1 0x40
000014d9: MLOAD
000014da: DUP1
000014db: DUP4
000014dc: SUB
000014dd: DUP2
000014de: PUSH1 0x00
000014e0: DUP7
000014e1: PUSH2 0x646e
000014e4: GAS
000014e5: SUB
000014e6: CALL
000014e7: ISZERO
000014e8: ISZERO
000014e9: PUSH2 0x14ee
000014ec: JUMPI
000014ed: INVALID
000014ee: JUMPDEST
000014ef: POP
000014f0: POP
000014f1: PUSH1 0x40
000014f3: DUP1
000014f4: MLOAD
000014f5: MLOAD
000014f6: PUSH1 0x01
000014f8: PUSH1 0xa0
000014fa: PUSH1 0x02
000014fc: EXP
000014fd: SUB
000014fe: DUP11
000014ff: AND
00001500: PUSH1 0x00
00001502: SWAP1
00001503: DUP2
00001504: MSTORE
00001505: PUSH1 0x07
00001507: PUSH1 0x20
00001509: SWAP1
0000150a: DUP2
0000150b: MSTORE
0000150c: DUP4
0000150d: DUP3
0000150e: KECCAK256
0000150f: DUP4
00001510: DUP4
00001511: MSTORE
00001512: SWAP1
00001513: MSTORE
00001514: SWAP2
00001515: SWAP1
00001516: SWAP2
00001517: KECCAK256
00001518: SLOAD
00001519: SWAP1
0000151a: SWAP4
0000151b: POP
0000151c: PUSH1 0xff
0000151e: AND
0000151f: DUP1
00001520: PUSH2 0x15d2
00001523: JUMPI
00001524: POP
00001525: PUSH1 0x40
00001527: DUP1
00001528: MLOAD
00001529: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
0000154a: DUP2
0000154b: MSTORE
0000154c: PUSH1 0x1c
0000154e: DUP2
0000154f: ADD
00001550: DUP6
00001551: SWAP1
00001552: MSTORE
00001553: DUP2
00001554: MLOAD
00001555: SWAP1
00001556: DUP2
00001557: SWAP1
00001558: SUB
00001559: PUSH1 0x3c
0000155b: ADD
0000155c: DUP2
0000155d: KECCAK256
0000155e: PUSH1 0x00
00001560: DUP3
00001561: DUP2
00001562: MSTORE
00001563: PUSH1 0x20
00001565: DUP4
00001566: DUP2
00001567: ADD
00001568: DUP6
00001569: MSTORE
0000156a: SWAP3
0000156b: DUP5
0000156c: ADD
0000156d: DUP2
0000156e: SWAP1
0000156f: MSTORE
00001570: DUP4
00001571: MLOAD
00001572: SWAP2
00001573: DUP3
00001574: MSTORE
00001575: PUSH1 0xff
00001577: DUP12
00001578: AND
00001579: DUP3
0000157a: DUP5
0000157b: ADD
0000157c: MSTORE
0000157d: DUP2
0000157e: DUP5
0000157f: ADD
00001580: DUP11
00001581: SWAP1
00001582: MSTORE
00001583: PUSH1 0x60
00001585: DUP3
00001586: ADD
00001587: DUP10
00001588: SWAP1
00001589: MSTORE
0000158a: SWAP3
0000158b: MLOAD
0000158c: PUSH1 0x01
0000158e: PUSH1 0xa0
00001590: PUSH1 0x02
00001592: EXP
00001593: SUB
00001594: DUP13
00001595: AND
00001596: SWAP4
00001597: PUSH1 0x01
00001599: SWAP4
0000159a: PUSH1 0x80
0000159c: DUP1
0000159d: DUP6
0000159e: ADD
0000159f: SWAP5
000015a0: SWAP2
000015a1: SWAP4
000015a2: PUSH1 0x1f
000015a4: NOT
000015a5: DUP2
000015a6: ADD
000015a7: SWAP4
000015a8: SWAP3
000015a9: DUP2
000015aa: SWAP1
000015ab: SUB
000015ac: SWAP1
000015ad: SWAP2
000015ae: ADD
000015af: SWAP2
000015b0: DUP7
000015b1: PUSH2 0x646e
000015b4: GAS
000015b5: SUB
000015b6: CALL
000015b7: ISZERO
000015b8: ISZERO
000015b9: PUSH2 0x15be
000015bc: JUMPI
000015bd: INVALID
000015be: JUMPDEST
000015bf: POP
000015c0: POP
000015c1: PUSH1 0x20
000015c3: PUSH1 0x40
000015c5: MLOAD
000015c6: SUB
000015c7: MLOAD
000015c8: PUSH1 0x01
000015ca: PUSH1 0xa0
000015cc: PUSH1 0x02
000015ce: EXP
000015cf: SUB
000015d0: AND
000015d1: EQ
000015d2: JUMPDEST
000015d3: DUP1
000015d4: ISZERO
000015d5: PUSH2 0x15de
000015d8: JUMPI
000015d9: POP
000015da: DUP10
000015db: NUMBER
000015dc: GT
000015dd: ISZERO
000015de: JUMPDEST
000015df: ISZERO
000015e0: ISZERO
000015e1: PUSH2 0x15ed
000015e4: JUMPI
000015e5: PUSH1 0x00
000015e7: SWAP4
000015e8: POP
000015e9: PUSH2 0x1671
000015ec: JUMP
000015ed: JUMPDEST
000015ee: PUSH1 0x01
000015f0: PUSH1 0xa0
000015f2: PUSH1 0x02
000015f4: EXP
000015f5: SUB
000015f6: DUP9
000015f7: AND
000015f8: PUSH1 0x00
000015fa: SWAP1
000015fb: DUP2
000015fc: MSTORE
000015fd: PUSH1 0x08
000015ff: PUSH1 0x20
00001601: SWAP1
00001602: DUP2
00001603: MSTORE
00001604: PUSH1 0x40
00001606: DUP1
00001607: DUP4
00001608: KECCAK256
00001609: DUP7
0000160a: DUP5
0000160b: MSTORE
0000160c: SWAP1
0000160d: SWAP2
0000160e: MSTORE
0000160f: SWAP1
00001610: KECCAK256
00001611: SLOAD
00001612: PUSH2 0x161c
00001615: SWAP1
00001616: DUP15
00001617: SWAP1
00001618: PUSH2 0x1987
0000161b: JUMP
0000161c: JUMPDEST
0000161d: PUSH1 0x01
0000161f: PUSH1 0xa0
00001621: PUSH1 0x02
00001623: EXP
00001624: SUB
00001625: DUP1
00001626: DUP15
00001627: AND
00001628: PUSH1 0x00
0000162a: SWAP1
0000162b: DUP2
0000162c: MSTORE
0000162d: PUSH1 0x06
0000162f: PUSH1 0x20
00001631: SWAP1
00001632: DUP2
00001633: MSTORE
00001634: PUSH1 0x40
00001636: DUP1
00001637: DUP4
00001638: KECCAK256
00001639: SWAP4
0000163a: DUP14
0000163b: AND
0000163c: DUP4
0000163d: MSTORE
0000163e: SWAP3
0000163f: SWAP1
00001640: MSTORE
00001641: KECCAK256
00001642: SLOAD
00001643: SWAP1
00001644: SWAP3
00001645: POP
00001646: DUP12
00001647: SWAP1
00001648: PUSH2 0x1651
0000164b: SWAP1
0000164c: DUP16
0000164d: PUSH2 0x19a0
00001650: JUMP
00001651: JUMPDEST
00001652: DUP2
00001653: ISZERO
00001654: ISZERO
00001655: PUSH2 0x165a
00001658: JUMPI
00001659: INVALID
0000165a: JUMPDEST
0000165b: DIV
0000165c: SWAP1
0000165d: POP
0000165e: DUP1
0000165f: DUP3
00001660: LT
00001661: ISZERO
00001662: PUSH2 0x166d
00001665: JUMPI
00001666: DUP2
00001667: SWAP4
00001668: POP
00001669: PUSH2 0x1671
0000166c: JUMP
0000166d: JUMPDEST
0000166e: DUP1
0000166f: SWAP4
00001670: POP
00001671: JUMPDEST
00001672: POP
00001673: POP
00001674: POP
00001675: SWAP11
00001676: SWAP10
00001677: POP
00001678: POP
00001679: POP
0000167a: POP
0000167b: POP
0000167c: POP
0000167d: POP
0000167e: POP
0000167f: POP
00001680: POP
00001681: JUMP
00001682: JUMPDEST
00001683: PUSH1 0x00
00001685: DUP3
00001686: DUP3
00001687: ADD
00001688: PUSH2 0x169f
0000168b: DUP5
0000168c: DUP3
0000168d: LT
0000168e: DUP1
0000168f: ISZERO
00001690: SWAP1
00001691: PUSH2 0x169a
00001694: JUMPI
00001695: POP
00001696: DUP4
00001697: DUP3
00001698: LT
00001699: ISZERO
0000169a: JUMPDEST
0000169b: PUSH2 0x19cf
0000169e: JUMP
0000169f: JUMPDEST
000016a0: DUP1
000016a1: SWAP2
000016a2: POP
000016a3: JUMPDEST
000016a4: POP
000016a5: SWAP3
000016a6: SWAP2
000016a7: POP
000016a8: POP
000016a9: JUMP
000016aa: JUMPDEST
000016ab: PUSH1 0x00
000016ad: PUSH1 0x00
000016af: PUSH1 0x00
000016b1: PUSH1 0x00
000016b3: PUSH8 0x0de0b6b3a7640000
000016bc: PUSH2 0x16c7
000016bf: DUP7
000016c0: PUSH1 0x03
000016c2: SLOAD
000016c3: PUSH2 0x19a0
000016c6: JUMP
000016c7: JUMPDEST
000016c8: DUP2
000016c9: ISZERO
000016ca: ISZERO
000016cb: PUSH2 0x16d0
000016ce: JUMPI
000016cf: INVALID
000016d0: JUMPDEST
000016d1: DIV
000016d2: SWAP4
000016d3: POP
000016d4: PUSH8 0x0de0b6b3a7640000
000016dd: PUSH2 0x16e8
000016e0: DUP7
000016e1: PUSH1 0x04
000016e3: SLOAD
000016e4: PUSH2 0x19a0
000016e7: JUMP
000016e8: JUMPDEST
000016e9: DUP2
000016ea: ISZERO
000016eb: ISZERO
000016ec: PUSH2 0x16f1
000016ef: JUMPI
000016f0: INVALID
000016f1: JUMPDEST
000016f2: PUSH1 0x02
000016f4: SLOAD
000016f5: SWAP2
000016f6: SWAP1
000016f7: DIV
000016f8: SWAP4
000016f9: POP
000016fa: PUSH1 0x00
000016fc: SWAP3
000016fd: POP
000016fe: PUSH1 0x01
00001700: PUSH1 0xa0
00001702: PUSH1 0x02
00001704: EXP
00001705: SUB
00001706: AND
00001707: ISZERO
00001708: PUSH2 0x17c8
0000170b: JUMPI
0000170c: PUSH1 0x02
0000170e: SLOAD
0000170f: PUSH1 0x40
00001711: DUP1
00001712: MLOAD
00001713: PUSH1 0x00
00001715: PUSH1 0x20
00001717: SWAP2
00001718: DUP3
00001719: ADD
0000171a: DUP2
0000171b: SWAP1
0000171c: MSTORE
0000171d: DUP3
0000171e: MLOAD
0000171f: PUSH32 0x1cbd051900000000000000000000000000000000000000000000000000000000
00001740: DUP2
00001741: MSTORE
00001742: PUSH1 0x01
00001744: PUSH1 0xa0
00001746: PUSH1 0x02
00001748: EXP
00001749: SUB
0000174a: DUP12
0000174b: DUP2
0000174c: AND
0000174d: PUSH1 0x04
0000174f: DUP4
00001750: ADD
00001751: MSTORE
00001752: SWAP4
00001753: MLOAD
00001754: SWAP4
00001755: SWAP1
00001756: SWAP5
00001757: AND
00001758: SWAP4
00001759: PUSH4 0x1cbd0519
0000175e: SWAP4
0000175f: PUSH1 0x24
00001761: DUP1
00001762: DUP4
00001763: ADD
00001764: SWAP5
00001765: SWAP4
00001766: SWAP2
00001767: SWAP3
00001768: DUP4
00001769: SWAP1
0000176a: SUB
0000176b: ADD
0000176c: SWAP1
0000176d: DUP3
0000176e: SWAP1
0000176f: DUP8
00001770: DUP1
00001771: EXTCODESIZE
00001772: ISZERO
00001773: ISZERO
00001774: PUSH2 0x1779
00001777: JUMPI
00001778: INVALID
00001779: JUMPDEST
0000177a: PUSH2 0x02c6
0000177d: GAS
0000177e: SUB
0000177f: CALL
00001780: ISZERO
00001781: ISZERO
00001782: PUSH2 0x1787
00001785: JUMPI
00001786: INVALID
00001787: JUMPDEST
00001788: POP
00001789: POP
0000178a: PUSH1 0x40
0000178c: MLOAD
0000178d: MLOAD
0000178e: SWAP2
0000178f: POP
00001790: POP
00001791: PUSH1 0x01
00001793: DUP2
00001794: EQ
00001795: ISZERO
00001796: PUSH2 0x17bb
00001799: JUMPI
0000179a: PUSH8 0x0de0b6b3a7640000
000017a3: PUSH2 0x17ae
000017a6: DUP7
000017a7: PUSH1 0x05
000017a9: SLOAD
000017aa: PUSH2 0x19a0
000017ad: JUMP
000017ae: JUMPDEST
000017af: DUP2
000017b0: ISZERO
000017b1: ISZERO
000017b2: PUSH2 0x17b7
000017b5: JUMPI
000017b6: INVALID
000017b7: JUMPDEST
000017b8: DIV
000017b9: SWAP2
000017ba: POP
000017bb: JUMPDEST
000017bc: DUP1
000017bd: PUSH1 0x02
000017bf: EQ
000017c0: ISZERO
000017c1: PUSH2 0x17c8
000017c4: JUMPI
000017c5: DUP3
000017c6: SWAP2
000017c7: POP
000017c8: JUMPDEST
000017c9: JUMPDEST
000017ca: PUSH1 0x01
000017cc: PUSH1 0xa0
000017ce: PUSH1 0x02
000017d0: EXP
000017d1: SUB
000017d2: DUP1
000017d3: DUP12
000017d4: AND
000017d5: PUSH1 0x00
000017d7: SWAP1
000017d8: DUP2
000017d9: MSTORE
000017da: PUSH1 0x06
000017dc: PUSH1 0x20
000017de: SWAP1
000017df: DUP2
000017e0: MSTORE
000017e1: PUSH1 0x40
000017e3: DUP1
000017e4: DUP4
000017e5: KECCAK256
000017e6: CALLER
000017e7: SWAP1
000017e8: SWAP5
000017e9: AND
000017ea: DUP4
000017eb: MSTORE
000017ec: SWAP3
000017ed: SWAP1
000017ee: MSTORE
000017ef: KECCAK256
000017f0: SLOAD
000017f1: PUSH2 0x1803
000017f4: SWAP1
000017f5: PUSH2 0x17fe
000017f8: DUP8
000017f9: DUP7
000017fa: PUSH2 0x1682
000017fd: JUMP
000017fe: JUMPDEST
000017ff: PUSH2 0x1987
00001802: JUMP
00001803: JUMPDEST
00001804: PUSH1 0x01
00001806: PUSH1 0xa0
00001808: PUSH1 0x02
0000180a: EXP
0000180b: SUB
0000180c: DUP12
0000180d: DUP2
0000180e: AND
0000180f: PUSH1 0x00
00001811: SWAP1
00001812: DUP2
00001813: MSTORE
00001814: PUSH1 0x06
00001816: PUSH1 0x20
00001818: SWAP1
00001819: DUP2
0000181a: MSTORE
0000181b: PUSH1 0x40
0000181d: DUP1
0000181e: DUP4
0000181f: KECCAK256
00001820: CALLER
00001821: DUP6
00001822: AND
00001823: DUP5
00001824: MSTORE
00001825: SWAP1
00001826: SWAP2
00001827: MSTORE
00001828: DUP1
00001829: DUP3
0000182a: KECCAK256
0000182b: SWAP4
0000182c: SWAP1
0000182d: SWAP4
0000182e: SSTORE
0000182f: SWAP1
00001830: DUP9
00001831: AND
00001832: DUP2
00001833: MSTORE
00001834: KECCAK256
00001835: SLOAD
00001836: PUSH2 0x1851
00001839: SWAP1
0000183a: PUSH2 0x184c
0000183d: PUSH2 0x1846
00001840: DUP9
00001841: DUP7
00001842: PUSH2 0x1682
00001845: JUMP
00001846: JUMPDEST
00001847: DUP8
00001848: PUSH2 0x1987
0000184b: JUMP
0000184c: JUMPDEST
0000184d: PUSH2 0x1682
00001850: JUMP
00001851: JUMPDEST
00001852: PUSH1 0x01
00001854: PUSH1 0xa0
00001856: PUSH1 0x02
00001858: EXP
00001859: SUB
0000185a: DUP12
0000185b: DUP2
0000185c: AND
0000185d: PUSH1 0x00
0000185f: SWAP1
00001860: DUP2
00001861: MSTORE
00001862: PUSH1 0x06
00001864: PUSH1 0x20
00001866: SWAP1
00001867: DUP2
00001868: MSTORE
00001869: PUSH1 0x40
0000186b: DUP1
0000186c: DUP4
0000186d: KECCAK256
0000186e: DUP12
0000186f: DUP6
00001870: AND
00001871: DUP5
00001872: MSTORE
00001873: SWAP1
00001874: SWAP2
00001875: MSTORE
00001876: DUP1
00001877: DUP3
00001878: KECCAK256
00001879: SWAP4
0000187a: SWAP1
0000187b: SWAP4
0000187c: SSTORE
0000187d: PUSH1 0x01
0000187f: SLOAD
00001880: SWAP1
00001881: SWAP2
00001882: AND
00001883: DUP2
00001884: MSTORE
00001885: KECCAK256
00001886: SLOAD
00001887: PUSH2 0x18a2
0000188a: SWAP1
0000188b: PUSH2 0x184c
0000188e: PUSH2 0x1897
00001891: DUP8
00001892: DUP8
00001893: PUSH2 0x1682
00001896: JUMP
00001897: JUMPDEST
00001898: DUP6
00001899: PUSH2 0x1987
0000189c: JUMP
0000189d: JUMPDEST
0000189e: PUSH2 0x1682
000018a1: JUMP
000018a2: JUMPDEST
000018a3: PUSH1 0x01
000018a5: PUSH1 0xa0
000018a7: PUSH1 0x02
000018a9: EXP
000018aa: SUB
000018ab: DUP1
000018ac: DUP13
000018ad: AND
000018ae: PUSH1 0x00
000018b0: SWAP1
000018b1: DUP2
000018b2: MSTORE
000018b3: PUSH1 0x06
000018b5: PUSH1 0x20
000018b7: DUP2
000018b8: DUP2
000018b9: MSTORE
000018ba: PUSH1 0x40
000018bc: DUP1
000018bd: DUP5
000018be: KECCAK256
000018bf: PUSH1 0x01
000018c1: SLOAD
000018c2: DUP7
000018c3: AND
000018c4: DUP6
000018c5: MSTORE
000018c6: DUP3
000018c7: MSTORE
000018c8: DUP1
000018c9: DUP5
000018ca: KECCAK256
000018cb: SWAP6
000018cc: SWAP1
000018cd: SWAP6
000018ce: SSTORE
000018cf: DUP13
000018d0: DUP5
000018d1: AND
000018d2: DUP4
000018d3: MSTORE
000018d4: SWAP1
000018d5: DUP2
000018d6: MSTORE
000018d7: DUP4
000018d8: DUP3
000018d9: KECCAK256
000018da: SWAP3
000018db: DUP11
000018dc: AND
000018dd: DUP3
000018de: MSTORE
000018df: SWAP2
000018e0: SWAP1
000018e1: SWAP2
000018e2: MSTORE
000018e3: KECCAK256
000018e4: SLOAD
000018e5: PUSH2 0x1902
000018e8: SWAP1
000018e9: DUP11
000018ea: PUSH2 0x18f3
000018ed: DUP11
000018ee: DUP10
000018ef: PUSH2 0x19a0
000018f2: JUMP
000018f3: JUMPDEST
000018f4: DUP2
000018f5: ISZERO
000018f6: ISZERO
000018f7: PUSH2 0x18fc
000018fa: JUMPI
000018fb: INVALID
000018fc: JUMPDEST
000018fd: DIV
000018fe: PUSH2 0x1987
00001901: JUMP
00001902: JUMPDEST
00001903: PUSH1 0x01
00001905: PUSH1 0xa0
00001907: PUSH1 0x02
00001909: EXP
0000190a: SUB
0000190b: DUP10
0000190c: DUP2
0000190d: AND
0000190e: PUSH1 0x00
00001910: SWAP1
00001911: DUP2
00001912: MSTORE
00001913: PUSH1 0x06
00001915: PUSH1 0x20
00001917: SWAP1
00001918: DUP2
00001919: MSTORE
0000191a: PUSH1 0x40
0000191c: DUP1
0000191d: DUP4
0000191e: KECCAK256
0000191f: DUP12
00001920: DUP6
00001921: AND
00001922: DUP5
00001923: MSTORE
00001924: SWAP1
00001925: SWAP2
00001926: MSTORE
00001927: DUP1
00001928: DUP3
00001929: KECCAK256
0000192a: SWAP4
0000192b: SWAP1
0000192c: SWAP4
0000192d: SSTORE
0000192e: CALLER
0000192f: SWAP1
00001930: SWAP2
00001931: AND
00001932: DUP2
00001933: MSTORE
00001934: KECCAK256
00001935: SLOAD
00001936: PUSH2 0x1953
00001939: SWAP1
0000193a: DUP11
0000193b: PUSH2 0x1944
0000193e: DUP11
0000193f: DUP10
00001940: PUSH2 0x19a0
00001943: JUMP
00001944: JUMPDEST
00001945: DUP2
00001946: ISZERO
00001947: ISZERO
00001948: PUSH2 0x194d
0000194b: JUMPI
0000194c: INVALID
0000194d: JUMPDEST
0000194e: DIV
0000194f: PUSH2 0x1682
00001952: JUMP
00001953: JUMPDEST
00001954: PUSH1 0x01
00001956: PUSH1 0xa0
00001958: PUSH1 0x02
0000195a: EXP
0000195b: SUB
0000195c: DUP1
0000195d: DUP11
0000195e: AND
0000195f: PUSH1 0x00
00001961: SWAP1
00001962: DUP2
00001963: MSTORE
00001964: PUSH1 0x06
00001966: PUSH1 0x20
00001968: SWAP1
00001969: DUP2
0000196a: MSTORE
0000196b: PUSH1 0x40
0000196d: DUP1
0000196e: DUP4
0000196f: KECCAK256
00001970: CALLER
00001971: SWAP1
00001972: SWAP5
00001973: AND
00001974: DUP4
00001975: MSTORE
00001976: SWAP3
00001977: SWAP1
00001978: MSTORE
00001979: KECCAK256
0000197a: SSTORE
0000197b: JUMPDEST
0000197c: POP
0000197d: POP
0000197e: POP
0000197f: POP
00001980: POP
00001981: POP
00001982: POP
00001983: POP
00001984: POP
00001985: POP
00001986: JUMP
00001987: JUMPDEST
00001988: PUSH1 0x00
0000198a: PUSH2 0x1995
0000198d: DUP4
0000198e: DUP4
0000198f: GT
00001990: ISZERO
00001991: PUSH2 0x19cf
00001994: JUMP
00001995: JUMPDEST
00001996: POP
00001997: DUP1
00001998: DUP3
00001999: SUB
0000199a: JUMPDEST
0000199b: SWAP3
0000199c: SWAP2
0000199d: POP
0000199e: POP
0000199f: JUMP
000019a0: JUMPDEST
000019a1: PUSH1 0x00
000019a3: DUP3
000019a4: DUP3
000019a5: MUL
000019a6: PUSH2 0x169f
000019a9: DUP5
000019aa: ISZERO
000019ab: DUP1
000019ac: PUSH2 0x169a
000019af: JUMPI
000019b0: POP
000019b1: DUP4
000019b2: DUP6
000019b3: DUP4
000019b4: DUP2
000019b5: ISZERO
000019b6: ISZERO
000019b7: PUSH2 0x19bc
000019ba: JUMPI
000019bb: INVALID
000019bc: JUMPDEST
000019bd: DIV
000019be: EQ
000019bf: JUMPDEST
000019c0: PUSH2 0x19cf
000019c3: JUMP
000019c4: JUMPDEST
000019c5: DUP1
000019c6: SWAP2
000019c7: POP
000019c8: JUMPDEST
000019c9: POP
000019ca: SWAP3
000019cb: SWAP2
000019cc: POP
000019cd: POP
000019ce: JUMP
000019cf: JUMPDEST
000019d0: DUP1
000019d1: ISZERO
000019d2: ISZERO
000019d3: PUSH2 0x0d0d
000019d6: JUMPI
000019d7: PUSH1 0x00
000019d9: PUSH1 0x00
000019db: REVERT
000019dc: JUMPDEST
000019dd: JUMPDEST
000019de: POP
000019df: JUMP
000019e0: STOP
000019e1: SLOAD
000019e2: UNKNOWN(0xCD)
000019e3: UNKNOWN(0xD3)
000019e4: PUSH10 0xe4e8a8515e52ca72ec81
000019ef: PUSH13 0x2101831ad1f18bf44102ed1714
000019fd: MSIZE
000019fe: UNKNOWN(0xC9)
000019ff: UNKNOWN(0xB4)
00001a00: UNKNOWN(0xF8)
00001a01: LOG1
00001a02: PUSH6 0x627a7a723058
00001a09: KECCAK256
00001a0a: MSIZE
00001a0b: JUMPDEST
00001a0c: UNKNOWN(0xEA)
00001a0d: SWAP14
00001a0e: LOG1
00001a0f: SDIV
00001a10: UNKNOWN(0xB4)
00001a11: LOG3
00001a12: UNKNOWN(0xF6)
00001a13: UNKNOWN(0xF7)
00001a14: UNKNOWN(0xC8)
00001a15: UNKNOWN(0x4E)
00001a16: TIMESTAMP
00001a17: BYTE
00001a18: UNKNOWN(0xCB)
00001a19: CODECOPY
00001a1a: UNKNOWN(0xB2)
00001a1b: PUSH15 0x736f391bcc3cc25de3266a68042c00
00001a2b: UNKNOWN(0x29)

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 yes yes
view
trace_id: 0x61fd9a3e042d35d0969648eadfd0297b36a2391277af93a7d53ff061325a8240
call_targets: 0x0000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000002, 0x3c020e014069df790d4f4e63fd297ba4e1c8e51f
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x61fd9a3e042d35d0969648eadfd0297b36a2391277af93a7d53ff061325a8240",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000001",
        "0x0000000000000000000000000000000000000002",
        "0x3c020e014069df790d4f4e63fd297ba4e1c8e51f"
    ],
    "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": 1680,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1888,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2335,
            "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: 0x61fd9a3e042d35d0969648eadfd0297b36a2391277af93a7d53ff061325a8240
call_targets: 0x0000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000002, 0x3c020e014069df790d4f4e63fd297ba4e1c8e51f
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x61fd9a3e042d35d0969648eadfd0297b36a2391277af93a7d53ff061325a8240",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000001",
        "0x0000000000000000000000000000000000000002",
        "0x3c020e014069df790d4f4e63fd297ba4e1c8e51f"
    ],
    "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": 1680,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1888,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2335,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 12,
    "guards_detected": []
}
medium reentrancy codex External accountLevels call enables reentrancy and order overfill 75 no
view
evidence_json
{
    "evidence": "tradeBalances() calls AccountLevels(accountLevelsAddr).accountLevel(user) before balances are updated, and orderFills is incremented only after tradeBalances returns.",
    "locations": [
        "contracts/Contract.sol:265",
        "contracts/Contract.sol:270",
        "contracts/Contract.sol:260",
        "contracts/Contract.sol:261"
    ],
    "recommendation": "Prevent reentrancy in trade/tradeBalances (e.g., mutex) and move orderFills updates before any external call, or cache account levels in storage and avoid external calls on the trade path.",
    "exploit_scenario": "If the admin sets accountLevelsAddr to a malicious or compromised contract, its accountLevel() can reenter Bitcratic.trade() before orderFills is updated, allowing multiple fills of the same order and exceeding amountGet. The maker can be forced to trade more than intended."
}
low access_control codex AccountLevelsTest allows arbitrary fee tier assignment 65 no
view
evidence_json
{
    "evidence": "setAccountLevel has no sender checks and writes accountLevels[user] directly.",
    "locations": [
        "contracts/Contract.sol:139",
        "contracts/Contract.sol:142",
        "contracts/Contract.sol:143"
    ],
    "recommendation": "Add access control (e.g., owner-only) to setAccountLevel or ensure this test contract is never used in production.",
    "exploit_scenario": "If Bitcratic is configured to use AccountLevelsTest, any user can call setAccountLevel to grant themselves level 1/2 and receive fee rebates, reducing or eliminating fees."
}
low auth codex ERC20 approve race condition 65 no
view
evidence_json
{
    "evidence": "approve() sets allowed[msg.sender][_spender] = _value without requiring a zero reset.",
    "locations": [
        "contracts/Contract.sol:96",
        "contracts/Contract.sol:97"
    ],
    "recommendation": "Require setting allowance to 0 before changing it, or implement increase/decrease allowance functions.",
    "exploit_scenario": "A spender can front-run an allowance change from X to Y and spend both the old and new allowances, as approve overwrites the allowance directly."
}
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
}