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

Analysis Run

e6fd2d24-6eba-44aa-9a40-eae8d9f01e64

complete
Chain ID
1
Address
Block Number
Created
Sun, Jan 4, 2026 1:44 AM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
31514 report.consolidate complete 1 / 1 3 months ago
77710 artifact.fetch complete 1 / 3 1 week ago
77711 tool.cast_disasm complete 1 / 3 1 week ago
77712 analysis.bundle complete 1 / 3 1 week ago
77713 capability.graph complete 1 / 3 1 week ago
77714 detector.run complete 1 / 3 1 week ago
77715 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
Found 1 exploitable path: refunds let contributors keep tokens when the soft cap is missed, enabling free tokens.
View stderr
[codex:332640] OpenAI Codex v0.77.0 (research preview)
[codex:332640] --------
[codex:332640] workdir: /tmp/codex-multi-65onh5ec
[codex:332640] model: gpt-5.2-codex
[codex:332640] provider: openai
[codex:332640] approval: never
[codex:332640] sandbox: read-only
[codex:332640] reasoning effort: xhigh
[codex:332640] reasoning summaries: auto
[codex:332640] session id: 019b86ab-8c3c-7452-8752-3d13217cd6e6
[codex:332640] --------
[codex:332640] user
[codex:332640] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:332640] 
[codex:332640] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:332640] 
[codex:332640] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:332640] - Gas inefficiency, code quality, naming, or best practices
[codex:332640] - Theoretical vulnerabilities without a clear extraction path
[codex:332640] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:332640] - Front-running unless it enables theft beyond MEV
[codex:332640] - DoS, griefing, or issues that don't result in attacker profit
[codex:332640] - Missing events, view function issues, or informational findings
[codex:332640] 
[codex:332640] HIGH-VALUE PATTERNS TO HUNT:
[codex:332640] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:332640] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:332640] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:332640] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:332640] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:332640] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:332640] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:332640] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:332640] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:332640] 
[codex:332640] For each finding, you MUST provide:
[codex:332640] 1. Exact file and line numbers of vulnerable code
[codex:332640] 2. Step-by-step exploit transaction sequence
[codex:332640] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:332640] 
[codex:332640] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:332640] 
[codex:332640] Output MUST be valid JSON matching the provided schema.
[codex:332640] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:332640] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:332640] mcp startup: no servers
[codex:332640] 
[codex:332640] thinking
[codex:332640] **Reading AUDIT_BUNDLE.txt**
[codex:332640] exec
[codex:332640] /bin/bash -lc ls in /tmp/codex-multi-65onh5ec succeeded in 5ms:
[codex:332640] AUDIT_BUNDLE.txt
[codex:332640] codex-output-schema.json
[codex:332640] contracts
[codex:332640] exec
[codex:332640] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-65onh5ec succeeded in 5ms:
[codex:332640] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:332640] 
[codex:332640] ================================================================================
[codex:332640] FILE: contracts/Contract.sol
[codex:332640] ================================================================================
[codex:332640] pragma solidity ^0.4.11;
[codex:332640] 
[codex:332640] /**
[codex:332640]  * @title Ownable
[codex:332640]  * @dev The Ownable contract has an owner address, and provides basic authorization control
[codex:332640]  * functions, this simplifies the implementation of "user permissions".
[codex:332640]  */
[codex:332640] contract Ownable {
[codex:332640]   address public owner;
[codex:332640] 
[codex:332640] 
[codex:332640]   event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
[codex:332640] 
[codex:332640] 
[codex:332640]   /**
[codex:332640] 
[codex:332640] thinking
[codex:332640] **Preparing for exploit analysis**
[codex:332640] exec
[codex:332640] /bin/bash -lc 'nl -ba contracts/Contract.sol' in /tmp/codex-multi-65onh5ec succeeded in 5ms:
[codex:332640]      1	pragma solidity ^0.4.11;
[codex:332640]      2	
[codex:332640]      3	/**
[codex:332640]      4	 * @title Ownable
[codex:332640]      5	 * @dev The Ownable contract has an owner address, and provides basic authorization control
[codex:332640]      6	 * functions, this simplifies the implementation of "user permissions".
[codex:332640]      7	 */
[codex:332640]      8	contract Ownable {
[codex:332640]      9	  address public owner;
[codex:332640]     10	
[codex:332640]     11	
[codex:332640]     12	  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
[codex:332640]     13	
[codex:332640]     14	
[codex:332640]     15	  /**
[codex:332640]     16	   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
[codex:332640]     17	   * account.
[codex:332640]     18	   */
[codex:332640]     19	  function Ownable() public {
[codex:332640]     20	    owner = msg.sender;
[codex:332640] 
[codex:332640] 
[codex:332640] 
[codex:332640] thinking
[codex:332640] **Analyzing potential profit exploits in token presale contract**
[codex:332640] thinking
[codex:332640] **Preparing JSON report of identified vulnerability and exploit path**
[codex:332640] 
[codex:332640] I'll summarize the primary profit-focused vulnerability involving token retention after refunds in presale failure, then output a structured JSON report with findings and evidence lines.
[codex:332640] thinking
[codex:332640] ```json
[codex:332640] {
[codex:332640]   "no_findings": false,
[codex:332640]   "summary": "Found 1 exploitable path: refund lets buyers keep tokens when soft cap not reached, enabling free tokens.",
[codex:332640]   "findings": [
[codex:332640]     {
[codex:332640]       "severity": "medium",
[codex:332640]       "category": "other",
[codex:332640]       "title": "Refunds do not reclaim tokens, enabling free tokens if soft cap missed",
[codex:332640]       "exploit_scenario": "1. Attacker (whitelisted) contributes during presale to receive tokens immediately. 2. Sale ends without reaching soft cap. 3. Attacker calls refund to get their ETH back while retaining the tokens. 4. If/when token is later released, attacker transfers/sells those free tokens.",
[codex:332640]       "recommendation": "On refund, burn or claw back the contributor's tokens (or escrow token delivery until soft cap success). Also track and reduce tokensSold/collected appropriately.",
[codex:332640]       "evidence": "`doPurchase` transfers tokens to buyer immediately (contracts/Contract.sol:618) while `refund` only transfers ETH back and never burns or reclaims tokens (contracts/Contract.sol:560-571).",
[codex:332640]       "locations": [
[codex:332640]         "contracts/Contract.sol:560",
[codex:332640]         "contracts/Contract.sol:561",
[codex:332640]         "contracts/Contract.sol:567",
[codex:332640]         "contracts/Contract.sol:618"
[codex:332640]       ]
[codex:332640]     }
[codex:332640]   ]
[codex:332640] }
[codex:332640] ```
[codex:332640] codex
[codex:332640] {"no_findings":false,"summary":"Found 1 exploitable path: refunds let contributors keep tokens when the soft cap is missed, enabling free tokens.","findings":[{"severity":"medium","category":"other","title":"Refunds do not reclaim tokens, enabling free tokens if soft cap is missed","exploit_scenario":"1) Attacker (whitelisted) contributes during the presale to receive tokens immediately. 2) The presale ends without reaching the soft cap. 3) Attacker calls `refund()` to receive their full ETH deposit back while keeping the tokens already transferred. 4) If/when the token is later released, attacker can transfer/sell those free tokens for profit.","recommendation":"When refunding, burn or claw back the contributor’s tokens (or escrow token delivery until soft cap success). Also adjust `tokensSold`/accounting on refund to prevent free-token outcomes.","evidence":"`doPurchase` transfers tokens immediately to the buyer (Contract.sol:618) while `refund` only returns ETH and never burns or reclaims tokens (Contract.sol:560-571).","locations":["contracts/Contract.sol:560","contracts/Contract.sol:618"]}]}
[codex:332640] tokens used
[codex:332640] 28,684
[codex:332640] {"no_findings":false,"summary":"Found 1 exploitable path: refunds let contributors keep tokens when the soft cap is missed, enabling free tokens.","findings":[{"severity":"medium","category":"other","title":"Refunds do not reclaim tokens, enabling free tokens if soft cap is missed","exploit_scenario":"1) Attacker (whitelisted) contributes during the presale to receive tokens immediately. 2) The presale ends without reaching the soft cap. 3) Attacker calls `refund()` to receive their full ETH deposit back while keeping the tokens already transferred. 4) If/when the token is later released, attacker can transfer/sell those free tokens for profit.","recommendation":"When refunding, burn or claw back the contributor’s tokens (or escrow token delivery until soft cap success). Also adjust `tokensSold`/accounting on refund to prevent free-token outcomes.","evidence":"`doPurchase` transfers tokens immediately to the buyer (Contract.sol:618) while `refund` only returns ETH and never burns or reclaims tokens (Contract.sol:560-571).","locations":["contracts/Contract.sol:560","contracts/Contract.sol:618"]}]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-04T01:44:53.535559+00:00",
        "returncode": 0
    },
    "summary": "Found 1 exploitable path: refunds let contributors keep tokens when the soft cap is missed, enabling free tokens.",
    "raw_final": {
        "summary": "Found 1 exploitable path: refunds let contributors keep tokens when the soft cap is missed, enabling free tokens.",
        "findings": [
            {
                "title": "Refunds do not reclaim tokens, enabling free tokens if soft cap is missed",
                "category": "other",
                "evidence": "`doPurchase` transfers tokens immediately to the buyer (Contract.sol:618) while `refund` only returns ETH and never burns or reclaims tokens (Contract.sol:560-571).",
                "severity": "medium",
                "locations": [
                    "contracts/Contract.sol:560",
                    "contracts/Contract.sol:618"
                ],
                "recommendation": "When refunding, burn or claw back the contributor\u2019s tokens (or escrow token delivery until soft cap success). Also adjust `tokensSold`/accounting on refund to prevent free-token outcomes.",
                "exploit_scenario": "1) Attacker (whitelisted) contributes during the presale to receive tokens immediately. 2) The presale ends without reaching the soft cap. 3) Attacker calls `refund()` to receive their full ETH deposit back while keeping the tokens already transferred. 4) If/when the token is later released, attacker can transfer/sell those free tokens for profit."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
9
EXT*/BALANCE
7
Total opcodes
3680
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0180
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002e: SWAP1
0000002f: DIV
00000030: PUSH4 0xffffffff
00000035: AND
00000036: DUP1
00000037: PUSH4 0x06fdde03
0000003c: EQ
0000003d: PUSH2 0x028e
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0x2b9edee9
00000047: EQ
00000048: PUSH2 0x031e
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0x3197cbb6
00000052: EQ
00000053: PUSH2 0x034d
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0x38af3eed
0000005d: EQ
0000005e: PUSH2 0x0378
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0x3b478fc5
00000068: EQ
00000069: PUSH2 0x03cf
0000006c: JUMPI
0000006d: DUP1
0000006e: PUSH4 0x3ccfd60b
00000073: EQ
00000074: PUSH2 0x03fa
00000077: JUMPI
00000078: DUP1
00000079: PUSH4 0x518ab2a8
0000007e: EQ
0000007f: PUSH2 0x0411
00000082: JUMPI
00000083: DUP1
00000084: PUSH4 0x5249be25
00000089: EQ
0000008a: PUSH2 0x043c
0000008d: JUMPI
0000008e: DUP1
0000008f: PUSH4 0x590e1ae3
00000094: EQ
00000095: PUSH2 0x0467
00000098: JUMPI
00000099: DUP1
0000009a: PUSH4 0x5da89ac0
0000009f: EQ
000000a0: PUSH2 0x047e
000000a3: JUMPI
000000a4: DUP1
000000a5: PUSH4 0x5ed7ca5b
000000aa: EQ
000000ab: PUSH2 0x04a9
000000ae: JUMPI
000000af: DUP1
000000b0: PUSH4 0x78e97925
000000b5: EQ
000000b6: PUSH2 0x04c0
000000b9: JUMPI
000000ba: DUP1
000000bb: PUSH4 0x7dbeb101
000000c0: EQ
000000c1: PUSH2 0x04eb
000000c4: JUMPI
000000c5: DUP1
000000c6: PUSH4 0x7e1c0c09
000000cb: EQ
000000cc: PUSH2 0x0516
000000cf: JUMPI
000000d0: DUP1
000000d1: PUSH4 0x84bcefd4
000000d6: EQ
000000d7: PUSH2 0x0541
000000da: JUMPI
000000db: DUP1
000000dc: PUSH4 0x8da5cb5b
000000e1: EQ
000000e2: PUSH2 0x056c
000000e5: JUMPI
000000e6: DUP1
000000e7: PUSH4 0x906a26e0
000000ec: EQ
000000ed: PUSH2 0x05c3
000000f0: JUMPI
000000f1: DUP1
000000f2: PUSH4 0xa47001a8
000000f7: EQ
000000f8: PUSH2 0x05ee
000000fb: JUMPI
000000fc: DUP1
000000fd: PUSH4 0xb9b8af0b
00000102: EQ
00000103: PUSH2 0x061b
00000106: JUMPI
00000107: DUP1
00000108: PUSH4 0xcb13cddb
0000010d: EQ
0000010e: PUSH2 0x064a
00000111: JUMPI
00000112: DUP1
00000113: PUSH4 0xcb3e64fd
00000118: EQ
00000119: PUSH2 0x06a1
0000011c: JUMPI
0000011d: DUP1
0000011e: PUSH4 0xd7e64c00
00000123: EQ
00000124: PUSH2 0x06b8
00000127: JUMPI
00000128: DUP1
00000129: PUSH4 0xdccdc893
0000012e: EQ
0000012f: PUSH2 0x06e3
00000132: JUMPI
00000133: DUP1
00000134: PUSH4 0xe342c2e6
00000139: EQ
0000013a: PUSH2 0x0726
0000013d: JUMPI
0000013e: DUP1
0000013f: PUSH4 0xe41f7dc1
00000144: EQ
00000145: PUSH2 0x077d
00000148: JUMPI
00000149: DUP1
0000014a: PUSH4 0xe4e9bcca
0000014f: EQ
00000150: PUSH2 0x07d4
00000153: JUMPI
00000154: DUP1
00000155: PUSH4 0xece84fd5
0000015a: EQ
0000015b: PUSH2 0x0817
0000015e: JUMPI
0000015f: DUP1
00000160: PUSH4 0xf2fde38b
00000165: EQ
00000166: PUSH2 0x0846
00000169: JUMPI
0000016a: DUP1
0000016b: PUSH4 0xfb86a404
00000170: EQ
00000171: PUSH2 0x0889
00000174: JUMPI
00000175: DUP1
00000176: PUSH4 0xfc0c546a
0000017b: EQ
0000017c: PUSH2 0x08b4
0000017f: JUMPI
00000180: JUMPDEST
00000181: PUSH1 0x03
00000183: PUSH1 0x00
00000185: SWAP1
00000186: SLOAD
00000187: SWAP1
00000188: PUSH2 0x0100
0000018b: EXP
0000018c: SWAP1
0000018d: DIV
0000018e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001a3: AND
000001a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001b9: AND
000001ba: PUSH4 0xbabcc539
000001bf: CALLER
000001c0: PUSH1 0x40
000001c2: MLOAD
000001c3: DUP3
000001c4: PUSH4 0xffffffff
000001c9: AND
000001ca: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000001e8: MUL
000001e9: DUP2
000001ea: MSTORE
000001eb: PUSH1 0x04
000001ed: ADD
000001ee: DUP1
000001ef: DUP3
000001f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000205: AND
00000206: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000021b: AND
0000021c: DUP2
0000021d: MSTORE
0000021e: PUSH1 0x20
00000220: ADD
00000221: SWAP2
00000222: POP
00000223: POP
00000224: PUSH1 0x20
00000226: PUSH1 0x40
00000228: MLOAD
00000229: DUP1
0000022a: DUP4
0000022b: SUB
0000022c: DUP2
0000022d: PUSH1 0x00
0000022f: DUP8
00000230: DUP1
00000231: EXTCODESIZE
00000232: ISZERO
00000233: DUP1
00000234: ISZERO
00000235: PUSH2 0x023d
00000238: JUMPI
00000239: PUSH1 0x00
0000023b: DUP1
0000023c: REVERT
0000023d: JUMPDEST
0000023e: POP
0000023f: GAS
00000240: CALL
00000241: ISZERO
00000242: DUP1
00000243: ISZERO
00000244: PUSH2 0x0251
00000247: JUMPI
00000248: RETURNDATASIZE
00000249: PUSH1 0x00
0000024b: DUP1
0000024c: RETURNDATACOPY
0000024d: RETURNDATASIZE
0000024e: PUSH1 0x00
00000250: REVERT
00000251: JUMPDEST
00000252: POP
00000253: POP
00000254: POP
00000255: POP
00000256: PUSH1 0x40
00000258: MLOAD
00000259: RETURNDATASIZE
0000025a: PUSH1 0x20
0000025c: DUP2
0000025d: LT
0000025e: ISZERO
0000025f: PUSH2 0x0267
00000262: JUMPI
00000263: PUSH1 0x00
00000265: DUP1
00000266: REVERT
00000267: JUMPDEST
00000268: DUP2
00000269: ADD
0000026a: SWAP1
0000026b: DUP1
0000026c: DUP1
0000026d: MLOAD
0000026e: SWAP1
0000026f: PUSH1 0x20
00000271: ADD
00000272: SWAP1
00000273: SWAP3
00000274: SWAP2
00000275: SWAP1
00000276: POP
00000277: POP
00000278: POP
00000279: ISZERO
0000027a: ISZERO
0000027b: PUSH2 0x0283
0000027e: JUMPI
0000027f: PUSH1 0x00
00000281: DUP1
00000282: REVERT
00000283: JUMPDEST
00000284: PUSH2 0x028c
00000287: CALLER
00000288: PUSH2 0x090b
0000028b: JUMP
0000028c: JUMPDEST
0000028d: STOP
0000028e: JUMPDEST
0000028f: CALLVALUE
00000290: DUP1
00000291: ISZERO
00000292: PUSH2 0x029a
00000295: JUMPI
00000296: PUSH1 0x00
00000298: DUP1
00000299: REVERT
0000029a: JUMPDEST
0000029b: POP
0000029c: PUSH2 0x02a3
0000029f: PUSH2 0x10bf
000002a2: JUMP
000002a3: JUMPDEST
000002a4: PUSH1 0x40
000002a6: MLOAD
000002a7: DUP1
000002a8: DUP1
000002a9: PUSH1 0x20
000002ab: ADD
000002ac: DUP3
000002ad: DUP2
000002ae: SUB
000002af: DUP3
000002b0: MSTORE
000002b1: DUP4
000002b2: DUP2
000002b3: DUP2
000002b4: MLOAD
000002b5: DUP2
000002b6: MSTORE
000002b7: PUSH1 0x20
000002b9: ADD
000002ba: SWAP2
000002bb: POP
000002bc: DUP1
000002bd: MLOAD
000002be: SWAP1
000002bf: PUSH1 0x20
000002c1: ADD
000002c2: SWAP1
000002c3: DUP1
000002c4: DUP4
000002c5: DUP4
000002c6: PUSH1 0x00
000002c8: JUMPDEST
000002c9: DUP4
000002ca: DUP2
000002cb: LT
000002cc: ISZERO
000002cd: PUSH2 0x02e3
000002d0: JUMPI
000002d1: DUP1
000002d2: DUP3
000002d3: ADD
000002d4: MLOAD
000002d5: DUP2
000002d6: DUP5
000002d7: ADD
000002d8: MSTORE
000002d9: PUSH1 0x20
000002db: DUP2
000002dc: ADD
000002dd: SWAP1
000002de: POP
000002df: PUSH2 0x02c8
000002e2: JUMP
000002e3: JUMPDEST
000002e4: POP
000002e5: POP
000002e6: POP
000002e7: POP
000002e8: SWAP1
000002e9: POP
000002ea: SWAP1
000002eb: DUP2
000002ec: ADD
000002ed: SWAP1
000002ee: PUSH1 0x1f
000002f0: AND
000002f1: DUP1
000002f2: ISZERO
000002f3: PUSH2 0x0310
000002f6: JUMPI
000002f7: DUP1
000002f8: DUP3
000002f9: SUB
000002fa: DUP1
000002fb: MLOAD
000002fc: PUSH1 0x01
000002fe: DUP4
000002ff: PUSH1 0x20
00000301: SUB
00000302: PUSH2 0x0100
00000305: EXP
00000306: SUB
00000307: NOT
00000308: AND
00000309: DUP2
0000030a: MSTORE
0000030b: PUSH1 0x20
0000030d: ADD
0000030e: SWAP2
0000030f: POP
00000310: JUMPDEST
00000311: POP
00000312: SWAP3
00000313: POP
00000314: POP
00000315: POP
00000316: PUSH1 0x40
00000318: MLOAD
00000319: DUP1
0000031a: SWAP2
0000031b: SUB
0000031c: SWAP1
0000031d: RETURN
0000031e: JUMPDEST
0000031f: CALLVALUE
00000320: DUP1
00000321: ISZERO
00000322: PUSH2 0x032a
00000325: JUMPI
00000326: PUSH1 0x00
00000328: DUP1
00000329: REVERT
0000032a: JUMPDEST
0000032b: POP
0000032c: PUSH2 0x0333
0000032f: PUSH2 0x10f8
00000332: JUMP
00000333: JUMPDEST
00000334: PUSH1 0x40
00000336: MLOAD
00000337: DUP1
00000338: DUP3
00000339: ISZERO
0000033a: ISZERO
0000033b: ISZERO
0000033c: ISZERO
0000033d: DUP2
0000033e: MSTORE
0000033f: PUSH1 0x20
00000341: ADD
00000342: SWAP2
00000343: POP
00000344: POP
00000345: PUSH1 0x40
00000347: MLOAD
00000348: DUP1
00000349: SWAP2
0000034a: SUB
0000034b: SWAP1
0000034c: RETURN
0000034d: JUMPDEST
0000034e: CALLVALUE
0000034f: DUP1
00000350: ISZERO
00000351: PUSH2 0x0359
00000354: JUMPI
00000355: PUSH1 0x00
00000357: DUP1
00000358: REVERT
00000359: JUMPDEST
0000035a: POP
0000035b: PUSH2 0x0362
0000035e: PUSH2 0x110b
00000361: JUMP
00000362: JUMPDEST
00000363: PUSH1 0x40
00000365: MLOAD
00000366: DUP1
00000367: DUP3
00000368: DUP2
00000369: MSTORE
0000036a: PUSH1 0x20
0000036c: ADD
0000036d: SWAP2
0000036e: POP
0000036f: POP
00000370: PUSH1 0x40
00000372: MLOAD
00000373: DUP1
00000374: SWAP2
00000375: SUB
00000376: SWAP1
00000377: RETURN
00000378: JUMPDEST
00000379: CALLVALUE
0000037a: DUP1
0000037b: ISZERO
0000037c: PUSH2 0x0384
0000037f: JUMPI
00000380: PUSH1 0x00
00000382: DUP1
00000383: REVERT
00000384: JUMPDEST
00000385: POP
00000386: PUSH2 0x038d
00000389: PUSH2 0x1111
0000038c: JUMP
0000038d: JUMPDEST
0000038e: PUSH1 0x40
00000390: MLOAD
00000391: DUP1
00000392: DUP3
00000393: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003a8: AND
000003a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003be: AND
000003bf: DUP2
000003c0: MSTORE
000003c1: PUSH1 0x20
000003c3: ADD
000003c4: SWAP2
000003c5: POP
000003c6: POP
000003c7: PUSH1 0x40
000003c9: MLOAD
000003ca: DUP1
000003cb: SWAP2
000003cc: SUB
000003cd: SWAP1
000003ce: RETURN
000003cf: JUMPDEST
000003d0: CALLVALUE
000003d1: DUP1
000003d2: ISZERO
000003d3: PUSH2 0x03db
000003d6: JUMPI
000003d7: PUSH1 0x00
000003d9: DUP1
000003da: REVERT
000003db: JUMPDEST
000003dc: POP
000003dd: PUSH2 0x03e4
000003e0: PUSH2 0x1137
000003e3: JUMP
000003e4: JUMPDEST
000003e5: PUSH1 0x40
000003e7: MLOAD
000003e8: DUP1
000003e9: DUP3
000003ea: DUP2
000003eb: MSTORE
000003ec: PUSH1 0x20
000003ee: ADD
000003ef: SWAP2
000003f0: POP
000003f1: POP
000003f2: PUSH1 0x40
000003f4: MLOAD
000003f5: DUP1
000003f6: SWAP2
000003f7: SUB
000003f8: SWAP1
000003f9: RETURN
000003fa: JUMPDEST
000003fb: CALLVALUE
000003fc: DUP1
000003fd: ISZERO
000003fe: PUSH2 0x0406
00000401: JUMPI
00000402: PUSH1 0x00
00000404: DUP1
00000405: REVERT
00000406: JUMPDEST
00000407: POP
00000408: PUSH2 0x040f
0000040b: PUSH2 0x113d
0000040e: JUMP
0000040f: JUMPDEST
00000410: STOP
00000411: JUMPDEST
00000412: CALLVALUE
00000413: DUP1
00000414: ISZERO
00000415: PUSH2 0x041d
00000418: JUMPI
00000419: PUSH1 0x00
0000041b: DUP1
0000041c: REVERT
0000041d: JUMPDEST
0000041e: POP
0000041f: PUSH2 0x0426
00000422: PUSH2 0x1455
00000425: JUMP
00000426: JUMPDEST
00000427: PUSH1 0x40
00000429: MLOAD
0000042a: DUP1
0000042b: DUP3
0000042c: DUP2
0000042d: MSTORE
0000042e: PUSH1 0x20
00000430: ADD
00000431: SWAP2
00000432: POP
00000433: POP
00000434: PUSH1 0x40
00000436: MLOAD
00000437: DUP1
00000438: SWAP2
00000439: SUB
0000043a: SWAP1
0000043b: RETURN
0000043c: JUMPDEST
0000043d: CALLVALUE
0000043e: DUP1
0000043f: ISZERO
00000440: PUSH2 0x0448
00000443: JUMPI
00000444: PUSH1 0x00
00000446: DUP1
00000447: REVERT
00000448: JUMPDEST
00000449: POP
0000044a: PUSH2 0x0451
0000044d: PUSH2 0x145b
00000450: JUMP
00000451: JUMPDEST
00000452: PUSH1 0x40
00000454: MLOAD
00000455: DUP1
00000456: DUP3
00000457: DUP2
00000458: MSTORE
00000459: PUSH1 0x20
0000045b: ADD
0000045c: SWAP2
0000045d: POP
0000045e: POP
0000045f: PUSH1 0x40
00000461: MLOAD
00000462: DUP1
00000463: SWAP2
00000464: SUB
00000465: SWAP1
00000466: RETURN
00000467: JUMPDEST
00000468: CALLVALUE
00000469: DUP1
0000046a: ISZERO
0000046b: PUSH2 0x0473
0000046e: JUMPI
0000046f: PUSH1 0x00
00000471: DUP1
00000472: REVERT
00000473: JUMPDEST
00000474: POP
00000475: PUSH2 0x047c
00000478: PUSH2 0x1461
0000047b: JUMP
0000047c: JUMPDEST
0000047d: STOP
0000047e: JUMPDEST
0000047f: CALLVALUE
00000480: DUP1
00000481: ISZERO
00000482: PUSH2 0x048a
00000485: JUMPI
00000486: PUSH1 0x00
00000488: DUP1
00000489: REVERT
0000048a: JUMPDEST
0000048b: POP
0000048c: PUSH2 0x0493
0000048f: PUSH2 0x16b2
00000492: JUMP
00000493: JUMPDEST
00000494: PUSH1 0x40
00000496: MLOAD
00000497: DUP1
00000498: DUP3
00000499: DUP2
0000049a: MSTORE
0000049b: PUSH1 0x20
0000049d: ADD
0000049e: SWAP2
0000049f: POP
000004a0: POP
000004a1: PUSH1 0x40
000004a3: MLOAD
000004a4: DUP1
000004a5: SWAP2
000004a6: SUB
000004a7: SWAP1
000004a8: RETURN
000004a9: JUMPDEST
000004aa: CALLVALUE
000004ab: DUP1
000004ac: ISZERO
000004ad: PUSH2 0x04b5
000004b0: JUMPI
000004b1: PUSH1 0x00
000004b3: DUP1
000004b4: REVERT
000004b5: JUMPDEST
000004b6: POP
000004b7: PUSH2 0x04be
000004ba: PUSH2 0x16b8
000004bd: JUMP
000004be: JUMPDEST
000004bf: STOP
000004c0: JUMPDEST
000004c1: CALLVALUE
000004c2: DUP1
000004c3: ISZERO
000004c4: PUSH2 0x04cc
000004c7: JUMPI
000004c8: PUSH1 0x00
000004ca: DUP1
000004cb: REVERT
000004cc: JUMPDEST
000004cd: POP
000004ce: PUSH2 0x04d5
000004d1: PUSH2 0x174c
000004d4: JUMP
000004d5: JUMPDEST
000004d6: PUSH1 0x40
000004d8: MLOAD
000004d9: DUP1
000004da: DUP3
000004db: DUP2
000004dc: MSTORE
000004dd: PUSH1 0x20
000004df: ADD
000004e0: SWAP2
000004e1: POP
000004e2: POP
000004e3: PUSH1 0x40
000004e5: MLOAD
000004e6: DUP1
000004e7: SWAP2
000004e8: SUB
000004e9: SWAP1
000004ea: RETURN
000004eb: JUMPDEST
000004ec: CALLVALUE
000004ed: DUP1
000004ee: ISZERO
000004ef: PUSH2 0x04f7
000004f2: JUMPI
000004f3: PUSH1 0x00
000004f5: DUP1
000004f6: REVERT
000004f7: JUMPDEST
000004f8: POP
000004f9: PUSH2 0x0500
000004fc: PUSH2 0x1752
000004ff: JUMP
00000500: JUMPDEST
00000501: PUSH1 0x40
00000503: MLOAD
00000504: DUP1
00000505: DUP3
00000506: DUP2
00000507: MSTORE
00000508: PUSH1 0x20
0000050a: ADD
0000050b: SWAP2
0000050c: POP
0000050d: POP
0000050e: PUSH1 0x40
00000510: MLOAD
00000511: DUP1
00000512: SWAP2
00000513: SUB
00000514: SWAP1
00000515: RETURN
00000516: JUMPDEST
00000517: CALLVALUE
00000518: DUP1
00000519: ISZERO
0000051a: PUSH2 0x0522
0000051d: JUMPI
0000051e: PUSH1 0x00
00000520: DUP1
00000521: REVERT
00000522: JUMPDEST
00000523: POP
00000524: PUSH2 0x052b
00000527: PUSH2 0x175e
0000052a: JUMP
0000052b: JUMPDEST
0000052c: PUSH1 0x40
0000052e: MLOAD
0000052f: DUP1
00000530: DUP3
00000531: DUP2
00000532: MSTORE
00000533: PUSH1 0x20
00000535: ADD
00000536: SWAP2
00000537: POP
00000538: POP
00000539: PUSH1 0x40
0000053b: MLOAD
0000053c: DUP1
0000053d: SWAP2
0000053e: SUB
0000053f: SWAP1
00000540: RETURN
00000541: JUMPDEST
00000542: CALLVALUE
00000543: DUP1
00000544: ISZERO
00000545: PUSH2 0x054d
00000548: JUMPI
00000549: PUSH1 0x00
0000054b: DUP1
0000054c: REVERT
0000054d: JUMPDEST
0000054e: POP
0000054f: PUSH2 0x0556
00000552: PUSH2 0x1764
00000555: JUMP
00000556: JUMPDEST
00000557: PUSH1 0x40
00000559: MLOAD
0000055a: DUP1
0000055b: DUP3
0000055c: DUP2
0000055d: MSTORE
0000055e: PUSH1 0x20
00000560: ADD
00000561: SWAP2
00000562: POP
00000563: POP
00000564: PUSH1 0x40
00000566: MLOAD
00000567: DUP1
00000568: SWAP2
00000569: SUB
0000056a: SWAP1
0000056b: RETURN
0000056c: JUMPDEST
0000056d: CALLVALUE
0000056e: DUP1
0000056f: ISZERO
00000570: PUSH2 0x0578
00000573: JUMPI
00000574: PUSH1 0x00
00000576: DUP1
00000577: REVERT
00000578: JUMPDEST
00000579: POP
0000057a: PUSH2 0x0581
0000057d: PUSH2 0x176a
00000580: JUMP
00000581: JUMPDEST
00000582: PUSH1 0x40
00000584: MLOAD
00000585: DUP1
00000586: DUP3
00000587: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000059c: AND
0000059d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005b2: AND
000005b3: DUP2
000005b4: MSTORE
000005b5: PUSH1 0x20
000005b7: ADD
000005b8: SWAP2
000005b9: POP
000005ba: POP
000005bb: PUSH1 0x40
000005bd: MLOAD
000005be: DUP1
000005bf: SWAP2
000005c0: SUB
000005c1: SWAP1
000005c2: RETURN
000005c3: JUMPDEST
000005c4: CALLVALUE
000005c5: DUP1
000005c6: ISZERO
000005c7: PUSH2 0x05cf
000005ca: JUMPI
000005cb: PUSH1 0x00
000005cd: DUP1
000005ce: REVERT
000005cf: JUMPDEST
000005d0: POP
000005d1: PUSH2 0x05d8
000005d4: PUSH2 0x178f
000005d7: JUMP
000005d8: JUMPDEST
000005d9: PUSH1 0x40
000005db: MLOAD
000005dc: DUP1
000005dd: DUP3
000005de: DUP2
000005df: MSTORE
000005e0: PUSH1 0x20
000005e2: ADD
000005e3: SWAP2
000005e4: POP
000005e5: POP
000005e6: PUSH1 0x40
000005e8: MLOAD
000005e9: DUP1
000005ea: SWAP2
000005eb: SUB
000005ec: SWAP1
000005ed: RETURN
000005ee: JUMPDEST
000005ef: CALLVALUE
000005f0: DUP1
000005f1: ISZERO
000005f2: PUSH2 0x05fa
000005f5: JUMPI
000005f6: PUSH1 0x00
000005f8: DUP1
000005f9: REVERT
000005fa: JUMPDEST
000005fb: POP
000005fc: PUSH2 0x0619
000005ff: PUSH1 0x04
00000601: DUP1
00000602: CALLDATASIZE
00000603: SUB
00000604: DUP2
00000605: ADD
00000606: SWAP1
00000607: DUP1
00000608: DUP1
00000609: CALLDATALOAD
0000060a: SWAP1
0000060b: PUSH1 0x20
0000060d: ADD
0000060e: SWAP1
0000060f: SWAP3
00000610: SWAP2
00000611: SWAP1
00000612: POP
00000613: POP
00000614: POP
00000615: PUSH2 0x1795
00000618: JUMP
00000619: JUMPDEST
0000061a: STOP
0000061b: JUMPDEST
0000061c: CALLVALUE
0000061d: DUP1
0000061e: ISZERO
0000061f: PUSH2 0x0627
00000622: JUMPI
00000623: PUSH1 0x00
00000625: DUP1
00000626: REVERT
00000627: JUMPDEST
00000628: POP
00000629: PUSH2 0x0630
0000062c: PUSH2 0x180a
0000062f: JUMP
00000630: JUMPDEST
00000631: PUSH1 0x40
00000633: MLOAD
00000634: DUP1
00000635: DUP3
00000636: ISZERO
00000637: ISZERO
00000638: ISZERO
00000639: ISZERO
0000063a: DUP2
0000063b: MSTORE
0000063c: PUSH1 0x20
0000063e: ADD
0000063f: SWAP2
00000640: POP
00000641: POP
00000642: PUSH1 0x40
00000644: MLOAD
00000645: DUP1
00000646: SWAP2
00000647: SUB
00000648: SWAP1
00000649: RETURN
0000064a: JUMPDEST
0000064b: CALLVALUE
0000064c: DUP1
0000064d: ISZERO
0000064e: PUSH2 0x0656
00000651: JUMPI
00000652: PUSH1 0x00
00000654: DUP1
00000655: REVERT
00000656: JUMPDEST
00000657: POP
00000658: PUSH2 0x068b
0000065b: PUSH1 0x04
0000065d: DUP1
0000065e: CALLDATASIZE
0000065f: SUB
00000660: DUP2
00000661: ADD
00000662: SWAP1
00000663: DUP1
00000664: DUP1
00000665: CALLDATALOAD
00000666: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000067b: AND
0000067c: SWAP1
0000067d: PUSH1 0x20
0000067f: ADD
00000680: SWAP1
00000681: SWAP3
00000682: SWAP2
00000683: SWAP1
00000684: POP
00000685: POP
00000686: POP
00000687: PUSH2 0x181d
0000068a: JUMP
0000068b: JUMPDEST
0000068c: PUSH1 0x40
0000068e: MLOAD
0000068f: DUP1
00000690: DUP3
00000691: DUP2
00000692: MSTORE
00000693: PUSH1 0x20
00000695: ADD
00000696: SWAP2
00000697: POP
00000698: POP
00000699: PUSH1 0x40
0000069b: MLOAD
0000069c: DUP1
0000069d: SWAP2
0000069e: SUB
0000069f: SWAP1
000006a0: RETURN
000006a1: JUMPDEST
000006a2: CALLVALUE
000006a3: DUP1
000006a4: ISZERO
000006a5: PUSH2 0x06ad
000006a8: JUMPI
000006a9: PUSH1 0x00
000006ab: DUP1
000006ac: REVERT
000006ad: JUMPDEST
000006ae: POP
000006af: PUSH2 0x06b6
000006b2: PUSH2 0x1835
000006b5: JUMP
000006b6: JUMPDEST
000006b7: STOP
000006b8: JUMPDEST
000006b9: CALLVALUE
000006ba: DUP1
000006bb: ISZERO
000006bc: PUSH2 0x06c4
000006bf: JUMPI
000006c0: PUSH1 0x00
000006c2: DUP1
000006c3: REVERT
000006c4: JUMPDEST
000006c5: POP
000006c6: PUSH2 0x06cd
000006c9: PUSH2 0x18c7
000006cc: JUMP
000006cd: JUMPDEST
000006ce: PUSH1 0x40
000006d0: MLOAD
000006d1: DUP1
000006d2: DUP3
000006d3: DUP2
000006d4: MSTORE
000006d5: PUSH1 0x20
000006d7: ADD
000006d8: SWAP2
000006d9: POP
000006da: POP
000006db: PUSH1 0x40
000006dd: MLOAD
000006de: DUP1
000006df: SWAP2
000006e0: SUB
000006e1: SWAP1
000006e2: RETURN
000006e3: JUMPDEST
000006e4: CALLVALUE
000006e5: DUP1
000006e6: ISZERO
000006e7: PUSH2 0x06ef
000006ea: JUMPI
000006eb: PUSH1 0x00
000006ed: DUP1
000006ee: REVERT
000006ef: JUMPDEST
000006f0: POP
000006f1: PUSH2 0x0724
000006f4: PUSH1 0x04
000006f6: DUP1
000006f7: CALLDATASIZE
000006f8: SUB
000006f9: DUP2
000006fa: ADD
000006fb: SWAP1
000006fc: DUP1
000006fd: DUP1
000006fe: CALLDATALOAD
000006ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000714: AND
00000715: SWAP1
00000716: PUSH1 0x20
00000718: ADD
00000719: SWAP1
0000071a: SWAP3
0000071b: SWAP2
0000071c: SWAP1
0000071d: POP
0000071e: POP
0000071f: POP
00000720: PUSH2 0x18cd
00000723: JUMP
00000724: JUMPDEST
00000725: STOP
00000726: JUMPDEST
00000727: CALLVALUE
00000728: DUP1
00000729: ISZERO
0000072a: PUSH2 0x0732
0000072d: JUMPI
0000072e: PUSH1 0x00
00000730: DUP1
00000731: REVERT
00000732: JUMPDEST
00000733: POP
00000734: PUSH2 0x073b
00000737: PUSH2 0x1992
0000073a: JUMP
0000073b: JUMPDEST
0000073c: PUSH1 0x40
0000073e: MLOAD
0000073f: DUP1
00000740: DUP3
00000741: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000756: AND
00000757: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000076c: AND
0000076d: DUP2
0000076e: MSTORE
0000076f: PUSH1 0x20
00000771: ADD
00000772: SWAP2
00000773: POP
00000774: POP
00000775: PUSH1 0x40
00000777: MLOAD
00000778: DUP1
00000779: SWAP2
0000077a: SUB
0000077b: SWAP1
0000077c: RETURN
0000077d: JUMPDEST
0000077e: CALLVALUE
0000077f: DUP1
00000780: ISZERO
00000781: PUSH2 0x0789
00000784: JUMPI
00000785: PUSH1 0x00
00000787: DUP1
00000788: REVERT
00000789: JUMPDEST
0000078a: POP
0000078b: PUSH2 0x0792
0000078e: PUSH2 0x19b8
00000791: JUMP
00000792: JUMPDEST
00000793: PUSH1 0x40
00000795: MLOAD
00000796: DUP1
00000797: DUP3
00000798: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007ad: AND
000007ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007c3: AND
000007c4: DUP2
000007c5: MSTORE
000007c6: PUSH1 0x20
000007c8: ADD
000007c9: SWAP2
000007ca: POP
000007cb: POP
000007cc: PUSH1 0x40
000007ce: MLOAD
000007cf: DUP1
000007d0: SWAP2
000007d1: SUB
000007d2: SWAP1
000007d3: RETURN
000007d4: JUMPDEST
000007d5: CALLVALUE
000007d6: DUP1
000007d7: ISZERO
000007d8: PUSH2 0x07e0
000007db: JUMPI
000007dc: PUSH1 0x00
000007de: DUP1
000007df: REVERT
000007e0: JUMPDEST
000007e1: POP
000007e2: PUSH2 0x0815
000007e5: PUSH1 0x04
000007e7: DUP1
000007e8: CALLDATASIZE
000007e9: SUB
000007ea: DUP2
000007eb: ADD
000007ec: SWAP1
000007ed: DUP1
000007ee: DUP1
000007ef: CALLDATALOAD
000007f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000805: AND
00000806: SWAP1
00000807: PUSH1 0x20
00000809: ADD
0000080a: SWAP1
0000080b: SWAP3
0000080c: SWAP2
0000080d: SWAP1
0000080e: POP
0000080f: POP
00000810: POP
00000811: PUSH2 0x19de
00000814: JUMP
00000815: JUMPDEST
00000816: STOP
00000817: JUMPDEST
00000818: CALLVALUE
00000819: DUP1
0000081a: ISZERO
0000081b: PUSH2 0x0823
0000081e: JUMPI
0000081f: PUSH1 0x00
00000821: DUP1
00000822: REVERT
00000823: JUMPDEST
00000824: POP
00000825: PUSH2 0x082c
00000828: PUSH2 0x1aa3
0000082b: JUMP
0000082c: JUMPDEST
0000082d: PUSH1 0x40
0000082f: MLOAD
00000830: DUP1
00000831: DUP3
00000832: ISZERO
00000833: ISZERO
00000834: ISZERO
00000835: ISZERO
00000836: DUP2
00000837: MSTORE
00000838: PUSH1 0x20
0000083a: ADD
0000083b: SWAP2
0000083c: POP
0000083d: POP
0000083e: PUSH1 0x40
00000840: MLOAD
00000841: DUP1
00000842: SWAP2
00000843: SUB
00000844: SWAP1
00000845: RETURN
00000846: JUMPDEST
00000847: CALLVALUE
00000848: DUP1
00000849: ISZERO
0000084a: PUSH2 0x0852
0000084d: JUMPI
0000084e: PUSH1 0x00
00000850: DUP1
00000851: REVERT
00000852: JUMPDEST
00000853: POP
00000854: PUSH2 0x0887
00000857: PUSH1 0x04
00000859: DUP1
0000085a: CALLDATASIZE
0000085b: SUB
0000085c: DUP2
0000085d: ADD
0000085e: SWAP1
0000085f: DUP1
00000860: DUP1
00000861: CALLDATALOAD
00000862: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000877: AND
00000878: SWAP1
00000879: PUSH1 0x20
0000087b: ADD
0000087c: SWAP1
0000087d: SWAP3
0000087e: SWAP2
0000087f: SWAP1
00000880: POP
00000881: POP
00000882: POP
00000883: PUSH2 0x1ab6
00000886: JUMP
00000887: JUMPDEST
00000888: STOP
00000889: JUMPDEST
0000088a: CALLVALUE
0000088b: DUP1
0000088c: ISZERO
0000088d: PUSH2 0x0895
00000890: JUMPI
00000891: PUSH1 0x00
00000893: DUP1
00000894: REVERT
00000895: JUMPDEST
00000896: POP
00000897: PUSH2 0x089e
0000089a: PUSH2 0x1c0b
0000089d: JUMP
0000089e: JUMPDEST
0000089f: PUSH1 0x40
000008a1: MLOAD
000008a2: DUP1
000008a3: DUP3
000008a4: DUP2
000008a5: MSTORE
000008a6: PUSH1 0x20
000008a8: ADD
000008a9: SWAP2
000008aa: POP
000008ab: POP
000008ac: PUSH1 0x40
000008ae: MLOAD
000008af: DUP1
000008b0: SWAP2
000008b1: SUB
000008b2: SWAP1
000008b3: RETURN
000008b4: JUMPDEST
000008b5: CALLVALUE
000008b6: DUP1
000008b7: ISZERO
000008b8: PUSH2 0x08c0
000008bb: JUMPI
000008bc: PUSH1 0x00
000008be: DUP1
000008bf: REVERT
000008c0: JUMPDEST
000008c1: POP
000008c2: PUSH2 0x08c9
000008c5: PUSH2 0x1c11
000008c8: JUMP
000008c9: JUMPDEST
000008ca: PUSH1 0x40
000008cc: MLOAD
000008cd: DUP1
000008ce: DUP3
000008cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008e4: AND
000008e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008fa: AND
000008fb: DUP2
000008fc: MSTORE
000008fd: PUSH1 0x20
000008ff: ADD
00000900: SWAP2
00000901: POP
00000902: POP
00000903: PUSH1 0x40
00000905: MLOAD
00000906: DUP1
00000907: SWAP2
00000908: SUB
00000909: SWAP1
0000090a: RETURN
0000090b: JUMPDEST
0000090c: PUSH1 0x00
0000090e: DUP1
0000090f: PUSH1 0x00
00000911: DUP1
00000912: PUSH1 0x0e
00000914: SLOAD
00000915: TIMESTAMP
00000916: LT
00000917: ISZERO
00000918: DUP1
00000919: ISZERO
0000091a: PUSH2 0x0924
0000091d: JUMPI
0000091e: POP
0000091f: PUSH1 0x0f
00000921: SLOAD
00000922: TIMESTAMP
00000923: LT
00000924: JUMPDEST
00000925: ISZERO
00000926: ISZERO
00000927: PUSH2 0x092f
0000092a: JUMPI
0000092b: PUSH1 0x00
0000092d: DUP1
0000092e: REVERT
0000092f: JUMPDEST
00000930: PUSH1 0x00
00000932: PUSH1 0x14
00000934: SWAP1
00000935: SLOAD
00000936: SWAP1
00000937: PUSH2 0x0100
0000093a: EXP
0000093b: SWAP1
0000093c: DIV
0000093d: PUSH1 0xff
0000093f: AND
00000940: ISZERO
00000941: ISZERO
00000942: ISZERO
00000943: PUSH2 0x094b
00000946: JUMPI
00000947: PUSH1 0x00
00000949: DUP1
0000094a: REVERT
0000094b: JUMPDEST
0000094c: PUSH1 0x10
0000094e: PUSH1 0x01
00000950: SWAP1
00000951: SLOAD
00000952: SWAP1
00000953: PUSH2 0x0100
00000956: EXP
00000957: SWAP1
00000958: DIV
00000959: PUSH1 0xff
0000095b: AND
0000095c: ISZERO
0000095d: ISZERO
0000095e: ISZERO
0000095f: PUSH2 0x0967
00000962: JUMPI
00000963: PUSH1 0x00
00000965: DUP1
00000966: REVERT
00000967: JUMPDEST
00000968: PUSH1 0x05
0000096a: SLOAD
0000096b: PUSH2 0x097f
0000096e: CALLVALUE
0000096f: PUSH1 0x0a
00000971: SLOAD
00000972: PUSH2 0x1c37
00000975: SWAP1
00000976: SWAP2
00000977: SWAP1
00000978: PUSH4 0xffffffff
0000097d: AND
0000097e: JUMP
0000097f: JUMPDEST
00000980: GT
00000981: ISZERO
00000982: ISZERO
00000983: ISZERO
00000984: PUSH2 0x098c
00000987: JUMPI
00000988: PUSH1 0x00
0000098a: DUP1
0000098b: REVERT
0000098c: JUMPDEST
0000098d: PUSH2 0x09b5
00000990: PUSH1 0x08
00000992: SLOAD
00000993: PUSH2 0x09a7
00000996: PUSH1 0x07
00000998: SLOAD
00000999: CALLVALUE
0000099a: PUSH2 0x1c55
0000099d: SWAP1
0000099e: SWAP2
0000099f: SWAP1
000009a0: PUSH4 0xffffffff
000009a5: AND
000009a6: JUMP
000009a7: JUMPDEST
000009a8: PUSH2 0x1c90
000009ab: SWAP1
000009ac: SWAP2
000009ad: SWAP1
000009ae: PUSH4 0xffffffff
000009b3: AND
000009b4: JUMP
000009b5: JUMPDEST
000009b6: PUSH1 0x0b
000009b8: SLOAD
000009b9: ADD
000009ba: PUSH1 0x09
000009bc: SLOAD
000009bd: LT
000009be: ISZERO
000009bf: ISZERO
000009c0: ISZERO
000009c1: PUSH2 0x09c9
000009c4: JUMPI
000009c5: PUSH1 0x00
000009c7: DUP1
000009c8: REVERT
000009c9: JUMPDEST
000009ca: PUSH1 0x10
000009cc: PUSH1 0x00
000009ce: SWAP1
000009cf: SLOAD
000009d0: SWAP1
000009d1: PUSH2 0x0100
000009d4: EXP
000009d5: SWAP1
000009d6: DIV
000009d7: PUSH1 0xff
000009d9: AND
000009da: ISZERO
000009db: DUP1
000009dc: ISZERO
000009dd: PUSH2 0x09e9
000009e0: JUMPI
000009e1: POP
000009e2: PUSH1 0x06
000009e4: SLOAD
000009e5: PUSH1 0x0a
000009e7: SLOAD
000009e8: LT
000009e9: JUMPDEST
000009ea: DUP1
000009eb: ISZERO
000009ec: PUSH2 0x0a0b
000009ef: JUMPI
000009f0: POP
000009f1: PUSH1 0x06
000009f3: SLOAD
000009f4: PUSH2 0x0a08
000009f7: CALLVALUE
000009f8: PUSH1 0x0a
000009fa: SLOAD
000009fb: PUSH2 0x1c37
000009fe: SWAP1
000009ff: SWAP2
00000a00: SWAP1
00000a01: PUSH4 0xffffffff
00000a06: AND
00000a07: JUMP
00000a08: JUMPDEST
00000a09: LT
00000a0a: ISZERO
00000a0b: JUMPDEST
00000a0c: ISZERO
00000a0d: PUSH2 0x0a65
00000a10: JUMPI
00000a11: PUSH1 0x01
00000a13: PUSH1 0x10
00000a15: PUSH1 0x00
00000a17: PUSH2 0x0100
00000a1a: EXP
00000a1b: DUP2
00000a1c: SLOAD
00000a1d: DUP2
00000a1e: PUSH1 0xff
00000a20: MUL
00000a21: NOT
00000a22: AND
00000a23: SWAP1
00000a24: DUP4
00000a25: ISZERO
00000a26: ISZERO
00000a27: MUL
00000a28: OR
00000a29: SWAP1
00000a2a: SSTORE
00000a2b: POP
00000a2c: PUSH32 0x42ef6182c6d744dd081ab962505f40413083376dfcc13e58b60f4f32e9673809
00000a4d: PUSH1 0x06
00000a4f: SLOAD
00000a50: PUSH1 0x40
00000a52: MLOAD
00000a53: DUP1
00000a54: DUP3
00000a55: DUP2
00000a56: MSTORE
00000a57: PUSH1 0x20
00000a59: ADD
00000a5a: SWAP2
00000a5b: POP
00000a5c: POP
00000a5d: PUSH1 0x40
00000a5f: MLOAD
00000a60: DUP1
00000a61: SWAP2
00000a62: SUB
00000a63: SWAP1
00000a64: LOG1
00000a65: JUMPDEST
00000a66: PUSH2 0x0a8e
00000a69: PUSH1 0x08
00000a6b: SLOAD
00000a6c: PUSH2 0x0a80
00000a6f: PUSH1 0x07
00000a71: SLOAD
00000a72: CALLVALUE
00000a73: PUSH2 0x1c55
00000a76: SWAP1
00000a77: SWAP2
00000a78: SWAP1
00000a79: PUSH4 0xffffffff
00000a7e: AND
00000a7f: JUMP
00000a80: JUMPDEST
00000a81: PUSH2 0x1c90
00000a84: SWAP1
00000a85: SWAP2
00000a86: SWAP1
00000a87: PUSH4 0xffffffff
00000a8c: AND
00000a8d: JUMP
00000a8e: JUMPDEST
00000a8f: SWAP4
00000a90: POP
00000a91: PUSH1 0x00
00000a93: PUSH1 0x02
00000a95: PUSH1 0x00
00000a97: SWAP1
00000a98: SLOAD
00000a99: SWAP1
00000a9a: PUSH2 0x0100
00000a9d: EXP
00000a9e: SWAP1
00000a9f: DIV
00000aa0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ab5: AND
00000ab6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000acb: AND
00000acc: PUSH4 0x70a08231
00000ad1: CALLER
00000ad2: PUSH1 0x40
00000ad4: MLOAD
00000ad5: DUP3
00000ad6: PUSH4 0xffffffff
00000adb: AND
00000adc: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000afa: MUL
00000afb: DUP2
00000afc: MSTORE
00000afd: PUSH1 0x04
00000aff: ADD
00000b00: DUP1
00000b01: DUP3
00000b02: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b17: AND
00000b18: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b2d: AND
00000b2e: DUP2
00000b2f: MSTORE
00000b30: PUSH1 0x20
00000b32: ADD
00000b33: SWAP2
00000b34: POP
00000b35: POP
00000b36: PUSH1 0x20
00000b38: PUSH1 0x40
00000b3a: MLOAD
00000b3b: DUP1
00000b3c: DUP4
00000b3d: SUB
00000b3e: DUP2
00000b3f: PUSH1 0x00
00000b41: DUP8
00000b42: DUP1
00000b43: EXTCODESIZE
00000b44: ISZERO
00000b45: DUP1
00000b46: ISZERO
00000b47: PUSH2 0x0b4f
00000b4a: JUMPI
00000b4b: PUSH1 0x00
00000b4d: DUP1
00000b4e: REVERT
00000b4f: JUMPDEST
00000b50: POP
00000b51: GAS
00000b52: CALL
00000b53: ISZERO
00000b54: DUP1
00000b55: ISZERO
00000b56: PUSH2 0x0b63
00000b59: JUMPI
00000b5a: RETURNDATASIZE
00000b5b: PUSH1 0x00
00000b5d: DUP1
00000b5e: RETURNDATACOPY
00000b5f: RETURNDATASIZE
00000b60: PUSH1 0x00
00000b62: REVERT
00000b63: JUMPDEST
00000b64: POP
00000b65: POP
00000b66: POP
00000b67: POP
00000b68: PUSH1 0x40
00000b6a: MLOAD
00000b6b: RETURNDATASIZE
00000b6c: PUSH1 0x20
00000b6e: DUP2
00000b6f: LT
00000b70: ISZERO
00000b71: PUSH2 0x0b79
00000b74: JUMPI
00000b75: PUSH1 0x00
00000b77: DUP1
00000b78: REVERT
00000b79: JUMPDEST
00000b7a: DUP2
00000b7b: ADD
00000b7c: SWAP1
00000b7d: DUP1
00000b7e: DUP1
00000b7f: MLOAD
00000b80: SWAP1
00000b81: PUSH1 0x20
00000b83: ADD
00000b84: SWAP1
00000b85: SWAP3
00000b86: SWAP2
00000b87: SWAP1
00000b88: POP
00000b89: POP
00000b8a: POP
00000b8b: EQ
00000b8c: ISZERO
00000b8d: PUSH2 0x0ba3
00000b90: JUMPI
00000b91: PUSH1 0x0c
00000b93: PUSH1 0x00
00000b95: DUP2
00000b96: SLOAD
00000b97: DUP1
00000b98: SWAP3
00000b99: SWAP2
00000b9a: SWAP1
00000b9b: PUSH1 0x01
00000b9d: ADD
00000b9e: SWAP2
00000b9f: SWAP1
00000ba0: POP
00000ba1: SSTORE
00000ba2: POP
00000ba3: JUMPDEST
00000ba4: PUSH1 0x03
00000ba6: PUSH1 0x00
00000ba8: SWAP1
00000ba9: SLOAD
00000baa: SWAP1
00000bab: PUSH2 0x0100
00000bae: EXP
00000baf: SWAP1
00000bb0: DIV
00000bb1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bc6: AND
00000bc7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bdc: AND
00000bdd: PUSH4 0x9478a7c9
00000be2: CALLER
00000be3: PUSH1 0x40
00000be5: MLOAD
00000be6: DUP3
00000be7: PUSH4 0xffffffff
00000bec: AND
00000bed: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000c0b: MUL
00000c0c: DUP2
00000c0d: MSTORE
00000c0e: PUSH1 0x04
00000c10: ADD
00000c11: DUP1
00000c12: DUP3
00000c13: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c28: AND
00000c29: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c3e: AND
00000c3f: DUP2
00000c40: MSTORE
00000c41: PUSH1 0x20
00000c43: ADD
00000c44: SWAP2
00000c45: POP
00000c46: POP
00000c47: PUSH1 0x20
00000c49: PUSH1 0x40
00000c4b: MLOAD
00000c4c: DUP1
00000c4d: DUP4
00000c4e: SUB
00000c4f: DUP2
00000c50: PUSH1 0x00
00000c52: DUP8
00000c53: DUP1
00000c54: EXTCODESIZE
00000c55: ISZERO
00000c56: DUP1
00000c57: ISZERO
00000c58: PUSH2 0x0c60
00000c5b: JUMPI
00000c5c: PUSH1 0x00
00000c5e: DUP1
00000c5f: REVERT
00000c60: JUMPDEST
00000c61: POP
00000c62: GAS
00000c63: CALL
00000c64: ISZERO
00000c65: DUP1
00000c66: ISZERO
00000c67: PUSH2 0x0c74
00000c6a: JUMPI
00000c6b: RETURNDATASIZE
00000c6c: PUSH1 0x00
00000c6e: DUP1
00000c6f: RETURNDATACOPY
00000c70: RETURNDATASIZE
00000c71: PUSH1 0x00
00000c73: REVERT
00000c74: JUMPDEST
00000c75: POP
00000c76: POP
00000c77: POP
00000c78: POP
00000c79: PUSH1 0x40
00000c7b: MLOAD
00000c7c: RETURNDATASIZE
00000c7d: PUSH1 0x20
00000c7f: DUP2
00000c80: LT
00000c81: ISZERO
00000c82: PUSH2 0x0c8a
00000c85: JUMPI
00000c86: PUSH1 0x00
00000c88: DUP1
00000c89: REVERT
00000c8a: JUMPDEST
00000c8b: DUP2
00000c8c: ADD
00000c8d: SWAP1
00000c8e: DUP1
00000c8f: DUP1
00000c90: MLOAD
00000c91: SWAP1
00000c92: PUSH1 0x20
00000c94: ADD
00000c95: SWAP1
00000c96: SWAP3
00000c97: SWAP2
00000c98: SWAP1
00000c99: POP
00000c9a: POP
00000c9b: POP
00000c9c: SWAP3
00000c9d: POP
00000c9e: PUSH1 0x00
00000ca0: SWAP2
00000ca1: POP
00000ca2: PUSH8 0x1bc16d674ec80000
00000cab: CALLVALUE
00000cac: LT
00000cad: ISZERO
00000cae: ISZERO
00000caf: PUSH2 0x0cbe
00000cb2: JUMPI
00000cb3: PUSH2 0x0cbb
00000cb6: DUP5
00000cb7: PUSH2 0x1cab
00000cba: JUMP
00000cbb: JUMPDEST
00000cbc: SWAP2
00000cbd: POP
00000cbe: JUMPDEST
00000cbf: PUSH2 0x0cd3
00000cc2: CALLVALUE
00000cc3: PUSH1 0x0a
00000cc5: SLOAD
00000cc6: PUSH2 0x1c37
00000cc9: SWAP1
00000cca: SWAP2
00000ccb: SWAP1
00000ccc: PUSH4 0xffffffff
00000cd1: AND
00000cd2: JUMP
00000cd3: JUMPDEST
00000cd4: PUSH1 0x0a
00000cd6: DUP2
00000cd7: SWAP1
00000cd8: SSTORE
00000cd9: POP
00000cda: PUSH1 0x02
00000cdc: PUSH1 0x00
00000cde: SWAP1
00000cdf: SLOAD
00000ce0: SWAP1
00000ce1: PUSH2 0x0100
00000ce4: EXP
00000ce5: SWAP1
00000ce6: DIV
00000ce7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cfc: AND
00000cfd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d12: AND
00000d13: PUSH4 0xa9059cbb
00000d18: CALLER
00000d19: DUP7
00000d1a: PUSH1 0x40
00000d1c: MLOAD
00000d1d: DUP4
00000d1e: PUSH4 0xffffffff
00000d23: AND
00000d24: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000d42: MUL
00000d43: DUP2
00000d44: MSTORE
00000d45: PUSH1 0x04
00000d47: ADD
00000d48: DUP1
00000d49: DUP4
00000d4a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d5f: AND
00000d60: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d75: AND
00000d76: DUP2
00000d77: MSTORE
00000d78: PUSH1 0x20
00000d7a: ADD
00000d7b: DUP3
00000d7c: DUP2
00000d7d: MSTORE
00000d7e: PUSH1 0x20
00000d80: ADD
00000d81: SWAP3
00000d82: POP
00000d83: POP
00000d84: POP
00000d85: PUSH1 0x20
00000d87: PUSH1 0x40
00000d89: MLOAD
00000d8a: DUP1
00000d8b: DUP4
00000d8c: SUB
00000d8d: DUP2
00000d8e: PUSH1 0x00
00000d90: DUP8
00000d91: DUP1
00000d92: EXTCODESIZE
00000d93: ISZERO
00000d94: DUP1
00000d95: ISZERO
00000d96: PUSH2 0x0d9e
00000d99: JUMPI
00000d9a: PUSH1 0x00
00000d9c: DUP1
00000d9d: REVERT
00000d9e: JUMPDEST
00000d9f: POP
00000da0: GAS
00000da1: CALL
00000da2: ISZERO
00000da3: DUP1
00000da4: ISZERO
00000da5: PUSH2 0x0db2
00000da8: JUMPI
00000da9: RETURNDATASIZE
00000daa: PUSH1 0x00
00000dac: DUP1
00000dad: RETURNDATACOPY
00000dae: RETURNDATASIZE
00000daf: PUSH1 0x00
00000db1: REVERT
00000db2: JUMPDEST
00000db3: POP
00000db4: POP
00000db5: POP
00000db6: POP
00000db7: PUSH1 0x40
00000db9: MLOAD
00000dba: RETURNDATASIZE
00000dbb: PUSH1 0x20
00000dbd: DUP2
00000dbe: LT
00000dbf: ISZERO
00000dc0: PUSH2 0x0dc8
00000dc3: JUMPI
00000dc4: PUSH1 0x00
00000dc6: DUP1
00000dc7: REVERT
00000dc8: JUMPDEST
00000dc9: DUP2
00000dca: ADD
00000dcb: SWAP1
00000dcc: DUP1
00000dcd: DUP1
00000dce: MLOAD
00000dcf: SWAP1
00000dd0: PUSH1 0x20
00000dd2: ADD
00000dd3: SWAP1
00000dd4: SWAP3
00000dd5: SWAP2
00000dd6: SWAP1
00000dd7: POP
00000dd8: POP
00000dd9: POP
00000dda: POP
00000ddb: PUSH2 0x0def
00000dde: DUP5
00000ddf: PUSH1 0x0b
00000de1: SLOAD
00000de2: PUSH2 0x1c37
00000de5: SWAP1
00000de6: SWAP2
00000de7: SWAP1
00000de8: PUSH4 0xffffffff
00000ded: AND
00000dee: JUMP
00000def: JUMPDEST
00000df0: SWAP1
00000df1: POP
00000df2: PUSH1 0x00
00000df4: DUP3
00000df5: GT
00000df6: DUP1
00000df7: ISZERO
00000df8: PUSH2 0x0e18
00000dfb: JUMPI
00000dfc: POP
00000dfd: PUSH1 0x00
00000dff: DUP4
00000e00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e15: AND
00000e16: EQ
00000e17: ISZERO
00000e18: JUMPDEST
00000e19: ISZERO
00000e1a: PUSH2 0x0e33
00000e1d: JUMPI
00000e1e: PUSH2 0x0e30
00000e21: DUP3
00000e22: DUP3
00000e23: PUSH2 0x1c37
00000e26: SWAP1
00000e27: SWAP2
00000e28: SWAP1
00000e29: PUSH4 0xffffffff
00000e2e: AND
00000e2f: JUMP
00000e30: JUMPDEST
00000e31: SWAP1
00000e32: POP
00000e33: JUMPDEST
00000e34: DUP1
00000e35: PUSH1 0x0b
00000e37: DUP2
00000e38: SWAP1
00000e39: SSTORE
00000e3a: POP
00000e3b: PUSH2 0x0e8c
00000e3e: CALLVALUE
00000e3f: PUSH1 0x12
00000e41: PUSH1 0x00
00000e43: CALLER
00000e44: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e59: AND
00000e5a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e6f: AND
00000e70: DUP2
00000e71: MSTORE
00000e72: PUSH1 0x20
00000e74: ADD
00000e75: SWAP1
00000e76: DUP2
00000e77: MSTORE
00000e78: PUSH1 0x20
00000e7a: ADD
00000e7b: PUSH1 0x00
00000e7d: KECCAK256
00000e7e: SLOAD
00000e7f: PUSH2 0x1c37
00000e82: SWAP1
00000e83: SWAP2
00000e84: SWAP1
00000e85: PUSH4 0xffffffff
00000e8a: AND
00000e8b: JUMP
00000e8c: JUMPDEST
00000e8d: PUSH1 0x12
00000e8f: PUSH1 0x00
00000e91: CALLER
00000e92: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ea7: AND
00000ea8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ebd: AND
00000ebe: DUP2
00000ebf: MSTORE
00000ec0: PUSH1 0x20
00000ec2: ADD
00000ec3: SWAP1
00000ec4: DUP2
00000ec5: MSTORE
00000ec6: PUSH1 0x20
00000ec8: ADD
00000ec9: PUSH1 0x00
00000ecb: KECCAK256
00000ecc: DUP2
00000ecd: SWAP1
00000ece: SSTORE
00000ecf: POP
00000ed0: DUP5
00000ed1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ee6: AND
00000ee7: PUSH32 0x16d99cb06fd9528f88184dd0483174a09cfd8312c28639858734b0c449cc05b8
00000f08: DUP6
00000f09: CALLVALUE
00000f0a: PUSH1 0x40
00000f0c: MLOAD
00000f0d: DUP1
00000f0e: DUP4
00000f0f: DUP2
00000f10: MSTORE
00000f11: PUSH1 0x20
00000f13: ADD
00000f14: DUP3
00000f15: DUP2
00000f16: MSTORE
00000f17: PUSH1 0x20
00000f19: ADD
00000f1a: SWAP3
00000f1b: POP
00000f1c: POP
00000f1d: POP
00000f1e: PUSH1 0x40
00000f20: MLOAD
00000f21: DUP1
00000f22: SWAP2
00000f23: SUB
00000f24: SWAP1
00000f25: LOG2
00000f26: PUSH1 0x00
00000f28: DUP3
00000f29: GT
00000f2a: DUP1
00000f2b: ISZERO
00000f2c: PUSH2 0x0f4c
00000f2f: JUMPI
00000f30: POP
00000f31: PUSH1 0x00
00000f33: DUP4
00000f34: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f49: AND
00000f4a: EQ
00000f4b: ISZERO
00000f4c: JUMPDEST
00000f4d: ISZERO
00000f4e: PUSH2 0x10b8
00000f51: JUMPI
00000f52: PUSH1 0x02
00000f54: PUSH1 0x00
00000f56: SWAP1
00000f57: SLOAD
00000f58: SWAP1
00000f59: PUSH2 0x0100
00000f5c: EXP
00000f5d: SWAP1
00000f5e: DIV
00000f5f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f74: AND
00000f75: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f8a: AND
00000f8b: PUSH4 0xa9059cbb
00000f90: DUP5
00000f91: DUP5
00000f92: PUSH1 0x40
00000f94: MLOAD
00000f95: DUP4
00000f96: PUSH4 0xffffffff
00000f9b: AND
00000f9c: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000fba: MUL
00000fbb: DUP2
00000fbc: MSTORE
00000fbd: PUSH1 0x04
00000fbf: ADD
00000fc0: DUP1
00000fc1: DUP4
00000fc2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000fd7: AND
00000fd8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000fed: AND
00000fee: DUP2
00000fef: MSTORE
00000ff0: PUSH1 0x20
00000ff2: ADD
00000ff3: DUP3
00000ff4: DUP2
00000ff5: MSTORE
00000ff6: PUSH1 0x20
00000ff8: ADD
00000ff9: SWAP3
00000ffa: POP
00000ffb: POP
00000ffc: POP
00000ffd: PUSH1 0x20
00000fff: PUSH1 0x40
00001001: MLOAD
00001002: DUP1
00001003: DUP4
00001004: SUB
00001005: DUP2
00001006: PUSH1 0x00
00001008: DUP8
00001009: DUP1
0000100a: EXTCODESIZE
0000100b: ISZERO
0000100c: DUP1
0000100d: ISZERO
0000100e: PUSH2 0x1016
00001011: JUMPI
00001012: PUSH1 0x00
00001014: DUP1
00001015: REVERT
00001016: JUMPDEST
00001017: POP
00001018: GAS
00001019: CALL
0000101a: ISZERO
0000101b: DUP1
0000101c: ISZERO
0000101d: PUSH2 0x102a
00001020: JUMPI
00001021: RETURNDATASIZE
00001022: PUSH1 0x00
00001024: DUP1
00001025: RETURNDATACOPY
00001026: RETURNDATASIZE
00001027: PUSH1 0x00
00001029: REVERT
0000102a: JUMPDEST
0000102b: POP
0000102c: POP
0000102d: POP
0000102e: POP
0000102f: PUSH1 0x40
00001031: MLOAD
00001032: RETURNDATASIZE
00001033: PUSH1 0x20
00001035: DUP2
00001036: LT
00001037: ISZERO
00001038: PUSH2 0x1040
0000103b: JUMPI
0000103c: PUSH1 0x00
0000103e: DUP1
0000103f: REVERT
00001040: JUMPDEST
00001041: DUP2
00001042: ADD
00001043: SWAP1
00001044: DUP1
00001045: DUP1
00001046: MLOAD
00001047: SWAP1
00001048: PUSH1 0x20
0000104a: ADD
0000104b: SWAP1
0000104c: SWAP3
0000104d: SWAP2
0000104e: SWAP1
0000104f: POP
00001050: POP
00001051: POP
00001052: POP
00001053: DUP3
00001054: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001069: AND
0000106a: CALLER
0000106b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001080: AND
00001081: PUSH32 0x63b1806f17e56a5994496cf87e213450b3ca26912d0a7c2ba0b722a2f822e497
000010a2: DUP5
000010a3: PUSH1 0x40
000010a5: MLOAD
000010a6: DUP1
000010a7: DUP3
000010a8: DUP2
000010a9: MSTORE
000010aa: PUSH1 0x20
000010ac: ADD
000010ad: SWAP2
000010ae: POP
000010af: POP
000010b0: PUSH1 0x40
000010b2: MLOAD
000010b3: DUP1
000010b4: SWAP2
000010b5: SUB
000010b6: SWAP1
000010b7: LOG3
000010b8: JUMPDEST
000010b9: POP
000010ba: POP
000010bb: POP
000010bc: POP
000010bd: POP
000010be: JUMP
000010bf: JUMPDEST
000010c0: PUSH1 0x40
000010c2: DUP1
000010c3: MLOAD
000010c4: SWAP1
000010c5: DUP2
000010c6: ADD
000010c7: PUSH1 0x40
000010c9: MSTORE
000010ca: DUP1
000010cb: PUSH1 0x1a
000010cd: DUP2
000010ce: MSTORE
000010cf: PUSH1 0x20
000010d1: ADD
000010d2: PUSH32 0x44697265637420437279707420546f6b656e2050726553616c65000000000000
000010f3: DUP2
000010f4: MSTORE
000010f5: POP
000010f6: DUP2
000010f7: JUMP
000010f8: JUMPDEST
000010f9: PUSH1 0x10
000010fb: PUSH1 0x00
000010fd: SWAP1
000010fe: SLOAD
000010ff: SWAP1
00001100: PUSH2 0x0100
00001103: EXP
00001104: SWAP1
00001105: DIV
00001106: PUSH1 0xff
00001108: AND
00001109: DUP2
0000110a: JUMP
0000110b: JUMPDEST
0000110c: PUSH1 0x0f
0000110e: SLOAD
0000110f: DUP2
00001110: JUMP
00001111: JUMPDEST
00001112: PUSH1 0x04
00001114: PUSH1 0x00
00001116: SWAP1
00001117: SLOAD
00001118: SWAP1
00001119: PUSH2 0x0100
0000111c: EXP
0000111d: SWAP1
0000111e: DIV
0000111f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001134: AND
00001135: DUP2
00001136: JUMP
00001137: JUMPDEST
00001138: PUSH1 0x07
0000113a: SLOAD
0000113b: DUP2
0000113c: JUMP
0000113d: JUMPDEST
0000113e: PUSH1 0x00
00001140: DUP1
00001141: SWAP1
00001142: SLOAD
00001143: SWAP1
00001144: PUSH2 0x0100
00001147: EXP
00001148: SWAP1
00001149: DIV
0000114a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000115f: AND
00001160: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001175: AND
00001176: CALLER
00001177: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000118c: AND
0000118d: EQ
0000118e: ISZERO
0000118f: ISZERO
00001190: PUSH2 0x1198
00001193: JUMPI
00001194: PUSH1 0x00
00001196: DUP1
00001197: REVERT
00001198: JUMPDEST
00001199: PUSH1 0x10
0000119b: PUSH1 0x00
0000119d: SWAP1
0000119e: SLOAD
0000119f: SWAP1
000011a0: PUSH2 0x0100
000011a3: EXP
000011a4: SWAP1
000011a5: DIV
000011a6: PUSH1 0xff
000011a8: AND
000011a9: ISZERO
000011aa: ISZERO
000011ab: PUSH2 0x11b3
000011ae: JUMPI
000011af: PUSH1 0x00
000011b1: DUP1
000011b2: REVERT
000011b3: JUMPDEST
000011b4: PUSH1 0x04
000011b6: PUSH1 0x00
000011b8: SWAP1
000011b9: SLOAD
000011ba: SWAP1
000011bb: PUSH2 0x0100
000011be: EXP
000011bf: SWAP1
000011c0: DIV
000011c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011d6: AND
000011d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011ec: AND
000011ed: PUSH2 0x08fc
000011f0: PUSH1 0x0a
000011f2: SLOAD
000011f3: SWAP1
000011f4: DUP2
000011f5: ISZERO
000011f6: MUL
000011f7: SWAP1
000011f8: PUSH1 0x40
000011fa: MLOAD
000011fb: PUSH1 0x00
000011fd: PUSH1 0x40
000011ff: MLOAD
00001200: DUP1
00001201: DUP4
00001202: SUB
00001203: DUP2
00001204: DUP6
00001205: DUP9
00001206: DUP9
00001207: CALL
00001208: SWAP4
00001209: POP
0000120a: POP
0000120b: POP
0000120c: POP
0000120d: ISZERO
0000120e: DUP1
0000120f: ISZERO
00001210: PUSH2 0x121d
00001213: JUMPI
00001214: RETURNDATASIZE
00001215: PUSH1 0x00
00001217: DUP1
00001218: RETURNDATACOPY
00001219: RETURNDATASIZE
0000121a: PUSH1 0x00
0000121c: REVERT
0000121d: JUMPDEST
0000121e: POP
0000121f: PUSH1 0x02
00001221: PUSH1 0x00
00001223: SWAP1
00001224: SLOAD
00001225: SWAP1
00001226: PUSH2 0x0100
00001229: EXP
0000122a: SWAP1
0000122b: DIV
0000122c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001241: AND
00001242: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001257: AND
00001258: PUSH4 0xa9059cbb
0000125d: PUSH1 0x04
0000125f: PUSH1 0x00
00001261: SWAP1
00001262: SLOAD
00001263: SWAP1
00001264: PUSH2 0x0100
00001267: EXP
00001268: SWAP1
00001269: DIV
0000126a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000127f: AND
00001280: PUSH1 0x02
00001282: PUSH1 0x00
00001284: SWAP1
00001285: SLOAD
00001286: SWAP1
00001287: PUSH2 0x0100
0000128a: EXP
0000128b: SWAP1
0000128c: DIV
0000128d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012a2: AND
000012a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012b8: AND
000012b9: PUSH4 0x70a08231
000012be: ADDRESS
000012bf: PUSH1 0x40
000012c1: MLOAD
000012c2: DUP3
000012c3: PUSH4 0xffffffff
000012c8: AND
000012c9: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000012e7: MUL
000012e8: DUP2
000012e9: MSTORE
000012ea: PUSH1 0x04
000012ec: ADD
000012ed: DUP1
000012ee: DUP3
000012ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001304: AND
00001305: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000131a: AND
0000131b: DUP2
0000131c: MSTORE
0000131d: PUSH1 0x20
0000131f: ADD
00001320: SWAP2
00001321: POP
00001322: POP
00001323: PUSH1 0x20
00001325: PUSH1 0x40
00001327: MLOAD
00001328: DUP1
00001329: DUP4
0000132a: SUB
0000132b: DUP2
0000132c: PUSH1 0x00
0000132e: DUP8
0000132f: DUP1
00001330: EXTCODESIZE
00001331: ISZERO
00001332: DUP1
00001333: ISZERO
00001334: PUSH2 0x133c
00001337: JUMPI
00001338: PUSH1 0x00
0000133a: DUP1
0000133b: REVERT
0000133c: JUMPDEST
0000133d: POP
0000133e: GAS
0000133f: CALL
00001340: ISZERO
00001341: DUP1
00001342: ISZERO
00001343: PUSH2 0x1350
00001346: JUMPI
00001347: RETURNDATASIZE
00001348: PUSH1 0x00
0000134a: DUP1
0000134b: RETURNDATACOPY
0000134c: RETURNDATASIZE
0000134d: PUSH1 0x00
0000134f: REVERT
00001350: JUMPDEST
00001351: POP
00001352: POP
00001353: POP
00001354: POP
00001355: PUSH1 0x40
00001357: MLOAD
00001358: RETURNDATASIZE
00001359: PUSH1 0x20
0000135b: DUP2
0000135c: LT
0000135d: ISZERO
0000135e: PUSH2 0x1366
00001361: JUMPI
00001362: PUSH1 0x00
00001364: DUP1
00001365: REVERT
00001366: JUMPDEST
00001367: DUP2
00001368: ADD
00001369: SWAP1
0000136a: DUP1
0000136b: DUP1
0000136c: MLOAD
0000136d: SWAP1
0000136e: PUSH1 0x20
00001370: ADD
00001371: SWAP1
00001372: SWAP3
00001373: SWAP2
00001374: SWAP1
00001375: POP
00001376: POP
00001377: POP
00001378: PUSH1 0x40
0000137a: MLOAD
0000137b: DUP4
0000137c: PUSH4 0xffffffff
00001381: AND
00001382: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000013a0: MUL
000013a1: DUP2
000013a2: MSTORE
000013a3: PUSH1 0x04
000013a5: ADD
000013a6: DUP1
000013a7: DUP4
000013a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013bd: AND
000013be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013d3: AND
000013d4: DUP2
000013d5: MSTORE
000013d6: PUSH1 0x20
000013d8: ADD
000013d9: DUP3
000013da: DUP2
000013db: MSTORE
000013dc: PUSH1 0x20
000013de: ADD
000013df: SWAP3
000013e0: POP
000013e1: POP
000013e2: POP
000013e3: PUSH1 0x20
000013e5: PUSH1 0x40
000013e7: MLOAD
000013e8: DUP1
000013e9: DUP4
000013ea: SUB
000013eb: DUP2
000013ec: PUSH1 0x00
000013ee: DUP8
000013ef: DUP1
000013f0: EXTCODESIZE
000013f1: ISZERO
000013f2: DUP1
000013f3: ISZERO
000013f4: PUSH2 0x13fc
000013f7: JUMPI
000013f8: PUSH1 0x00
000013fa: DUP1
000013fb: REVERT
000013fc: JUMPDEST
000013fd: POP
000013fe: GAS
000013ff: CALL
00001400: ISZERO
00001401: DUP1
00001402: ISZERO
00001403: PUSH2 0x1410
00001406: JUMPI
00001407: RETURNDATASIZE
00001408: PUSH1 0x00
0000140a: DUP1
0000140b: RETURNDATACOPY
0000140c: RETURNDATASIZE
0000140d: PUSH1 0x00
0000140f: REVERT
00001410: JUMPDEST
00001411: POP
00001412: POP
00001413: POP
00001414: POP
00001415: PUSH1 0x40
00001417: MLOAD
00001418: RETURNDATASIZE
00001419: PUSH1 0x20
0000141b: DUP2
0000141c: LT
0000141d: ISZERO
0000141e: PUSH2 0x1426
00001421: JUMPI
00001422: PUSH1 0x00
00001424: DUP1
00001425: REVERT
00001426: JUMPDEST
00001427: DUP2
00001428: ADD
00001429: SWAP1
0000142a: DUP1
0000142b: DUP1
0000142c: MLOAD
0000142d: SWAP1
0000142e: PUSH1 0x20
00001430: ADD
00001431: SWAP1
00001432: SWAP3
00001433: SWAP2
00001434: SWAP1
00001435: POP
00001436: POP
00001437: POP
00001438: POP
00001439: PUSH1 0x01
0000143b: PUSH1 0x10
0000143d: PUSH1 0x01
0000143f: PUSH2 0x0100
00001442: EXP
00001443: DUP2
00001444: SLOAD
00001445: DUP2
00001446: PUSH1 0xff
00001448: MUL
00001449: NOT
0000144a: AND
0000144b: SWAP1
0000144c: DUP4
0000144d: ISZERO
0000144e: ISZERO
0000144f: MUL
00001450: OR
00001451: SWAP1
00001452: SSTORE
00001453: POP
00001454: JUMP
00001455: JUMPDEST
00001456: PUSH1 0x0b
00001458: SLOAD
00001459: DUP2
0000145a: JUMP
0000145b: JUMPDEST
0000145c: PUSH1 0x08
0000145e: SLOAD
0000145f: DUP2
00001460: JUMP
00001461: JUMPDEST
00001462: PUSH1 0x00
00001464: PUSH1 0x0f
00001466: SLOAD
00001467: TIMESTAMP
00001468: LT
00001469: ISZERO
0000146a: ISZERO
0000146b: ISZERO
0000146c: PUSH2 0x1474
0000146f: JUMPI
00001470: PUSH1 0x00
00001472: DUP1
00001473: REVERT
00001474: JUMPDEST
00001475: PUSH1 0x00
00001477: PUSH1 0x14
00001479: SWAP1
0000147a: SLOAD
0000147b: SWAP1
0000147c: PUSH2 0x0100
0000147f: EXP
00001480: SWAP1
00001481: DIV
00001482: PUSH1 0xff
00001484: AND
00001485: ISZERO
00001486: ISZERO
00001487: ISZERO
00001488: PUSH2 0x1490
0000148b: JUMPI
0000148c: PUSH1 0x00
0000148e: DUP1
0000148f: REVERT
00001490: JUMPDEST
00001491: PUSH1 0x00
00001493: ISZERO
00001494: ISZERO
00001495: PUSH1 0x10
00001497: PUSH1 0x00
00001499: SWAP1
0000149a: SLOAD
0000149b: SWAP1
0000149c: PUSH2 0x0100
0000149f: EXP
000014a0: SWAP1
000014a1: DIV
000014a2: PUSH1 0xff
000014a4: AND
000014a5: ISZERO
000014a6: ISZERO
000014a7: EQ
000014a8: ISZERO
000014a9: ISZERO
000014aa: PUSH2 0x14b2
000014ad: JUMPI
000014ae: PUSH1 0x00
000014b0: DUP1
000014b1: REVERT
000014b2: JUMPDEST
000014b3: PUSH1 0x00
000014b5: ISZERO
000014b6: ISZERO
000014b7: PUSH1 0x11
000014b9: PUSH1 0x00
000014bb: CALLER
000014bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014d1: AND
000014d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014e7: AND
000014e8: DUP2
000014e9: MSTORE
000014ea: PUSH1 0x20
000014ec: ADD
000014ed: SWAP1
000014ee: DUP2
000014ef: MSTORE
000014f0: PUSH1 0x20
000014f2: ADD
000014f3: PUSH1 0x00
000014f5: KECCAK256
000014f6: PUSH1 0x00
000014f8: SWAP1
000014f9: SLOAD
000014fa: SWAP1
000014fb: PUSH2 0x0100
000014fe: EXP
000014ff: SWAP1
00001500: DIV
00001501: PUSH1 0xff
00001503: AND
00001504: ISZERO
00001505: ISZERO
00001506: EQ
00001507: ISZERO
00001508: ISZERO
00001509: PUSH2 0x1511
0000150c: JUMPI
0000150d: PUSH1 0x00
0000150f: DUP1
00001510: REVERT
00001511: JUMPDEST
00001512: PUSH1 0x12
00001514: PUSH1 0x00
00001516: CALLER
00001517: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000152c: AND
0000152d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001542: AND
00001543: DUP2
00001544: MSTORE
00001545: PUSH1 0x20
00001547: ADD
00001548: SWAP1
00001549: DUP2
0000154a: MSTORE
0000154b: PUSH1 0x20
0000154d: ADD
0000154e: PUSH1 0x00
00001550: KECCAK256
00001551: SLOAD
00001552: SWAP1
00001553: POP
00001554: PUSH1 0x00
00001556: DUP2
00001557: GT
00001558: ISZERO
00001559: ISZERO
0000155a: PUSH2 0x1562
0000155d: JUMPI
0000155e: PUSH1 0x00
00001560: DUP1
00001561: REVERT
00001562: JUMPDEST
00001563: CALLER
00001564: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001579: AND
0000157a: PUSH2 0x08fc
0000157d: DUP3
0000157e: SWAP1
0000157f: DUP2
00001580: ISZERO
00001581: MUL
00001582: SWAP1
00001583: PUSH1 0x40
00001585: MLOAD
00001586: PUSH1 0x00
00001588: PUSH1 0x40
0000158a: MLOAD
0000158b: DUP1
0000158c: DUP4
0000158d: SUB
0000158e: DUP2
0000158f: DUP6
00001590: DUP9
00001591: DUP9
00001592: CALL
00001593: SWAP4
00001594: POP
00001595: POP
00001596: POP
00001597: POP
00001598: ISZERO
00001599: DUP1
0000159a: ISZERO
0000159b: PUSH2 0x15a8
0000159e: JUMPI
0000159f: RETURNDATASIZE
000015a0: PUSH1 0x00
000015a2: DUP1
000015a3: RETURNDATACOPY
000015a4: RETURNDATASIZE
000015a5: PUSH1 0x00
000015a7: REVERT
000015a8: JUMPDEST
000015a9: POP
000015aa: PUSH1 0x00
000015ac: PUSH1 0x12
000015ae: PUSH1 0x00
000015b0: CALLER
000015b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015c6: AND
000015c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015dc: AND
000015dd: DUP2
000015de: MSTORE
000015df: PUSH1 0x20
000015e1: ADD
000015e2: SWAP1
000015e3: DUP2
000015e4: MSTORE
000015e5: PUSH1 0x20
000015e7: ADD
000015e8: PUSH1 0x00
000015ea: KECCAK256
000015eb: DUP2
000015ec: SWAP1
000015ed: SSTORE
000015ee: POP
000015ef: PUSH1 0x01
000015f1: PUSH1 0x11
000015f3: PUSH1 0x00
000015f5: CALLER
000015f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000160b: AND
0000160c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001621: AND
00001622: DUP2
00001623: MSTORE
00001624: PUSH1 0x20
00001626: ADD
00001627: SWAP1
00001628: DUP2
00001629: MSTORE
0000162a: PUSH1 0x20
0000162c: ADD
0000162d: PUSH1 0x00
0000162f: KECCAK256
00001630: PUSH1 0x00
00001632: PUSH2 0x0100
00001635: EXP
00001636: DUP2
00001637: SLOAD
00001638: DUP2
00001639: PUSH1 0xff
0000163b: MUL
0000163c: NOT
0000163d: AND
0000163e: SWAP1
0000163f: DUP4
00001640: ISZERO
00001641: ISZERO
00001642: MUL
00001643: OR
00001644: SWAP1
00001645: SSTORE
00001646: POP
00001647: PUSH2 0x165b
0000164a: DUP2
0000164b: PUSH1 0x0d
0000164d: SLOAD
0000164e: PUSH2 0x1c37
00001651: SWAP1
00001652: SWAP2
00001653: SWAP1
00001654: PUSH4 0xffffffff
00001659: AND
0000165a: JUMP
0000165b: JUMPDEST
0000165c: PUSH1 0x0d
0000165e: DUP2
0000165f: SWAP1
00001660: SSTORE
00001661: POP
00001662: CALLER
00001663: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001678: AND
00001679: PUSH32 0xd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651
0000169a: DUP3
0000169b: PUSH1 0x40
0000169d: MLOAD
0000169e: DUP1
0000169f: DUP3
000016a0: DUP2
000016a1: MSTORE
000016a2: PUSH1 0x20
000016a4: ADD
000016a5: SWAP2
000016a6: POP
000016a7: POP
000016a8: PUSH1 0x40
000016aa: MLOAD
000016ab: DUP1
000016ac: SWAP2
000016ad: SUB
000016ae: SWAP1
000016af: LOG2
000016b0: POP
000016b1: JUMP
000016b2: JUMPDEST
000016b3: PUSH1 0x0d
000016b5: SLOAD
000016b6: DUP2
000016b7: JUMP
000016b8: JUMPDEST
000016b9: PUSH1 0x00
000016bb: DUP1
000016bc: SWAP1
000016bd: SLOAD
000016be: SWAP1
000016bf: PUSH2 0x0100
000016c2: EXP
000016c3: SWAP1
000016c4: DIV
000016c5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016da: AND
000016db: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016f0: AND
000016f1: CALLER
000016f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001707: AND
00001708: EQ
00001709: ISZERO
0000170a: ISZERO
0000170b: PUSH2 0x1713
0000170e: JUMPI
0000170f: PUSH1 0x00
00001711: DUP1
00001712: REVERT
00001713: JUMPDEST
00001714: PUSH1 0x00
00001716: PUSH1 0x14
00001718: SWAP1
00001719: SLOAD
0000171a: SWAP1
0000171b: PUSH2 0x0100
0000171e: EXP
0000171f: SWAP1
00001720: DIV
00001721: PUSH1 0xff
00001723: AND
00001724: ISZERO
00001725: ISZERO
00001726: ISZERO
00001727: PUSH2 0x172f
0000172a: JUMPI
0000172b: PUSH1 0x00
0000172d: DUP1
0000172e: REVERT
0000172f: JUMPDEST
00001730: PUSH1 0x01
00001732: PUSH1 0x00
00001734: PUSH1 0x14
00001736: PUSH2 0x0100
00001739: EXP
0000173a: DUP2
0000173b: SLOAD
0000173c: DUP2
0000173d: PUSH1 0xff
0000173f: MUL
00001740: NOT
00001741: AND
00001742: SWAP1
00001743: DUP4
00001744: ISZERO
00001745: ISZERO
00001746: MUL
00001747: OR
00001748: SWAP1
00001749: SSTORE
0000174a: POP
0000174b: JUMP
0000174c: JUMPDEST
0000174d: PUSH1 0x0e
0000174f: SLOAD
00001750: DUP2
00001751: JUMP
00001752: JUMPDEST
00001753: PUSH8 0x1bc16d674ec80000
0000175c: DUP2
0000175d: JUMP
0000175e: JUMPDEST
0000175f: PUSH1 0x09
00001761: SLOAD
00001762: DUP2
00001763: JUMP
00001764: JUMPDEST
00001765: PUSH1 0x0a
00001767: SLOAD
00001768: DUP2
00001769: JUMP
0000176a: JUMPDEST
0000176b: PUSH1 0x00
0000176d: DUP1
0000176e: SWAP1
0000176f: SLOAD
00001770: SWAP1
00001771: PUSH2 0x0100
00001774: EXP
00001775: SWAP1
00001776: DIV
00001777: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000178c: AND
0000178d: DUP2
0000178e: JUMP
0000178f: JUMPDEST
00001790: PUSH1 0x06
00001792: SLOAD
00001793: DUP2
00001794: JUMP
00001795: JUMPDEST
00001796: PUSH1 0x01
00001798: PUSH1 0x00
0000179a: SWAP1
0000179b: SLOAD
0000179c: SWAP1
0000179d: PUSH2 0x0100
000017a0: EXP
000017a1: SWAP1
000017a2: DIV
000017a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017b8: AND
000017b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017ce: AND
000017cf: CALLER
000017d0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017e5: AND
000017e6: EQ
000017e7: ISZERO
000017e8: ISZERO
000017e9: PUSH2 0x17f1
000017ec: JUMPI
000017ed: PUSH1 0x00
000017ef: DUP1
000017f0: REVERT
000017f1: JUMPDEST
000017f2: PUSH1 0x00
000017f4: DUP2
000017f5: GT
000017f6: ISZERO
000017f7: ISZERO
000017f8: PUSH2 0x1800
000017fb: JUMPI
000017fc: PUSH1 0x00
000017fe: DUP1
000017ff: REVERT
00001800: JUMPDEST
00001801: DUP1
00001802: PUSH1 0x07
00001804: DUP2
00001805: SWAP1
00001806: SSTORE
00001807: POP
00001808: POP
00001809: JUMP
0000180a: JUMPDEST
0000180b: PUSH1 0x00
0000180d: PUSH1 0x14
0000180f: SWAP1
00001810: SLOAD
00001811: SWAP1
00001812: PUSH2 0x0100
00001815: EXP
00001816: SWAP1
00001817: DIV
00001818: PUSH1 0xff
0000181a: AND
0000181b: DUP2
0000181c: JUMP
0000181d: JUMPDEST
0000181e: PUSH1 0x12
00001820: PUSH1 0x20
00001822: MSTORE
00001823: DUP1
00001824: PUSH1 0x00
00001826: MSTORE
00001827: PUSH1 0x40
00001829: PUSH1 0x00
0000182b: KECCAK256
0000182c: PUSH1 0x00
0000182e: SWAP2
0000182f: POP
00001830: SWAP1
00001831: POP
00001832: SLOAD
00001833: DUP2
00001834: JUMP
00001835: JUMPDEST
00001836: PUSH1 0x00
00001838: DUP1
00001839: SWAP1
0000183a: SLOAD
0000183b: SWAP1
0000183c: PUSH2 0x0100
0000183f: EXP
00001840: SWAP1
00001841: DIV
00001842: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001857: AND
00001858: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000186d: AND
0000186e: CALLER
0000186f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001884: AND
00001885: EQ
00001886: ISZERO
00001887: ISZERO
00001888: PUSH2 0x1890
0000188b: JUMPI
0000188c: PUSH1 0x00
0000188e: DUP1
0000188f: REVERT
00001890: JUMPDEST
00001891: PUSH1 0x00
00001893: PUSH1 0x14
00001895: SWAP1
00001896: SLOAD
00001897: SWAP1
00001898: PUSH2 0x0100
0000189b: EXP
0000189c: SWAP1
0000189d: DIV
0000189e: PUSH1 0xff
000018a0: AND
000018a1: ISZERO
000018a2: ISZERO
000018a3: PUSH2 0x18ab
000018a6: JUMPI
000018a7: PUSH1 0x00
000018a9: DUP1
000018aa: REVERT
000018ab: JUMPDEST
000018ac: PUSH1 0x00
000018ae: DUP1
000018af: PUSH1 0x14
000018b1: PUSH2 0x0100
000018b4: EXP
000018b5: DUP2
000018b6: SLOAD
000018b7: DUP2
000018b8: PUSH1 0xff
000018ba: MUL
000018bb: NOT
000018bc: AND
000018bd: SWAP1
000018be: DUP4
000018bf: ISZERO
000018c0: ISZERO
000018c1: MUL
000018c2: OR
000018c3: SWAP1
000018c4: SSTORE
000018c5: POP
000018c6: JUMP
000018c7: JUMPDEST
000018c8: PUSH1 0x0c
000018ca: SLOAD
000018cb: DUP2
000018cc: JUMP
000018cd: JUMPDEST
000018ce: PUSH1 0x00
000018d0: DUP1
000018d1: SWAP1
000018d2: SLOAD
000018d3: SWAP1
000018d4: PUSH2 0x0100
000018d7: EXP
000018d8: SWAP1
000018d9: DIV
000018da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018ef: AND
000018f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001905: AND
00001906: CALLER
00001907: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000191c: AND
0000191d: EQ
0000191e: ISZERO
0000191f: ISZERO
00001920: PUSH2 0x1928
00001923: JUMPI
00001924: PUSH1 0x00
00001926: DUP1
00001927: REVERT
00001928: JUMPDEST
00001929: PUSH1 0x00
0000192b: DUP2
0000192c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001941: AND
00001942: EQ
00001943: ISZERO
00001944: ISZERO
00001945: ISZERO
00001946: PUSH2 0x194e
00001949: JUMPI
0000194a: PUSH1 0x00
0000194c: DUP1
0000194d: REVERT
0000194e: JUMPDEST
0000194f: DUP1
00001950: PUSH1 0x03
00001952: PUSH1 0x00
00001954: PUSH2 0x0100
00001957: EXP
00001958: DUP2
00001959: SLOAD
0000195a: DUP2
0000195b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001970: MUL
00001971: NOT
00001972: AND
00001973: SWAP1
00001974: DUP4
00001975: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000198a: AND
0000198b: MUL
0000198c: OR
0000198d: SWAP1
0000198e: SSTORE
0000198f: POP
00001990: POP
00001991: JUMP
00001992: JUMPDEST
00001993: PUSH1 0x03
00001995: PUSH1 0x00
00001997: SWAP1
00001998: SLOAD
00001999: SWAP1
0000199a: PUSH2 0x0100
0000199d: EXP
0000199e: SWAP1
0000199f: DIV
000019a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019b5: AND
000019b6: DUP2
000019b7: JUMP
000019b8: JUMPDEST
000019b9: PUSH1 0x01
000019bb: PUSH1 0x00
000019bd: SWAP1
000019be: SLOAD
000019bf: SWAP1
000019c0: PUSH2 0x0100
000019c3: EXP
000019c4: SWAP1
000019c5: DIV
000019c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019db: AND
000019dc: DUP2
000019dd: JUMP
000019de: JUMPDEST
000019df: PUSH1 0x00
000019e1: DUP1
000019e2: SWAP1
000019e3: SLOAD
000019e4: SWAP1
000019e5: PUSH2 0x0100
000019e8: EXP
000019e9: SWAP1
000019ea: DIV
000019eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a00: AND
00001a01: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a16: AND
00001a17: CALLER
00001a18: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a2d: AND
00001a2e: EQ
00001a2f: ISZERO
00001a30: ISZERO
00001a31: PUSH2 0x1a39
00001a34: JUMPI
00001a35: PUSH1 0x00
00001a37: DUP1
00001a38: REVERT
00001a39: JUMPDEST
00001a3a: PUSH1 0x00
00001a3c: DUP2
00001a3d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a52: AND
00001a53: EQ
00001a54: ISZERO
00001a55: ISZERO
00001a56: ISZERO
00001a57: PUSH2 0x1a5f
00001a5a: JUMPI
00001a5b: PUSH1 0x00
00001a5d: DUP1
00001a5e: REVERT
00001a5f: JUMPDEST
00001a60: DUP1
00001a61: PUSH1 0x01
00001a63: PUSH1 0x00
00001a65: PUSH2 0x0100
00001a68: EXP
00001a69: DUP2
00001a6a: SLOAD
00001a6b: DUP2
00001a6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a81: MUL
00001a82: NOT
00001a83: AND
00001a84: SWAP1
00001a85: DUP4
00001a86: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a9b: AND
00001a9c: MUL
00001a9d: OR
00001a9e: SWAP1
00001a9f: SSTORE
00001aa0: POP
00001aa1: POP
00001aa2: JUMP
00001aa3: JUMPDEST
00001aa4: PUSH1 0x10
00001aa6: PUSH1 0x01
00001aa8: SWAP1
00001aa9: SLOAD
00001aaa: SWAP1
00001aab: PUSH2 0x0100
00001aae: EXP
00001aaf: SWAP1
00001ab0: DIV
00001ab1: PUSH1 0xff
00001ab3: AND
00001ab4: DUP2
00001ab5: JUMP
00001ab6: JUMPDEST
00001ab7: PUSH1 0x00
00001ab9: DUP1
00001aba: SWAP1
00001abb: SLOAD
00001abc: SWAP1
00001abd: PUSH2 0x0100
00001ac0: EXP
00001ac1: SWAP1
00001ac2: DIV
00001ac3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ad8: AND
00001ad9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001aee: AND
00001aef: CALLER
00001af0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b05: AND
00001b06: EQ
00001b07: ISZERO
00001b08: ISZERO
00001b09: PUSH2 0x1b11
00001b0c: JUMPI
00001b0d: PUSH1 0x00
00001b0f: DUP1
00001b10: REVERT
00001b11: JUMPDEST
00001b12: PUSH1 0x00
00001b14: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b29: AND
00001b2a: DUP2
00001b2b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b40: AND
00001b41: EQ
00001b42: ISZERO
00001b43: ISZERO
00001b44: ISZERO
00001b45: PUSH2 0x1b4d
00001b48: JUMPI
00001b49: PUSH1 0x00
00001b4b: DUP1
00001b4c: REVERT
00001b4d: JUMPDEST
00001b4e: DUP1
00001b4f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b64: AND
00001b65: PUSH1 0x00
00001b67: DUP1
00001b68: SWAP1
00001b69: SLOAD
00001b6a: SWAP1
00001b6b: PUSH2 0x0100
00001b6e: EXP
00001b6f: SWAP1
00001b70: DIV
00001b71: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b86: AND
00001b87: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b9c: AND
00001b9d: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00001bbe: PUSH1 0x40
00001bc0: MLOAD
00001bc1: PUSH1 0x40
00001bc3: MLOAD
00001bc4: DUP1
00001bc5: SWAP2
00001bc6: SUB
00001bc7: SWAP1
00001bc8: LOG3
00001bc9: DUP1
00001bca: PUSH1 0x00
00001bcc: DUP1
00001bcd: PUSH2 0x0100
00001bd0: EXP
00001bd1: DUP2
00001bd2: SLOAD
00001bd3: DUP2
00001bd4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001be9: MUL
00001bea: NOT
00001beb: AND
00001bec: SWAP1
00001bed: DUP4
00001bee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c03: AND
00001c04: MUL
00001c05: OR
00001c06: SWAP1
00001c07: SSTORE
00001c08: POP
00001c09: POP
00001c0a: JUMP
00001c0b: JUMPDEST
00001c0c: PUSH1 0x05
00001c0e: SLOAD
00001c0f: DUP2
00001c10: JUMP
00001c11: JUMPDEST
00001c12: PUSH1 0x02
00001c14: PUSH1 0x00
00001c16: SWAP1
00001c17: SLOAD
00001c18: SWAP1
00001c19: PUSH2 0x0100
00001c1c: EXP
00001c1d: SWAP1
00001c1e: DIV
00001c1f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c34: AND
00001c35: DUP2
00001c36: JUMP
00001c37: JUMPDEST
00001c38: PUSH1 0x00
00001c3a: DUP1
00001c3b: DUP3
00001c3c: DUP5
00001c3d: ADD
00001c3e: SWAP1
00001c3f: POP
00001c40: DUP4
00001c41: DUP2
00001c42: LT
00001c43: ISZERO
00001c44: ISZERO
00001c45: ISZERO
00001c46: PUSH2 0x1c4b
00001c49: JUMPI
00001c4a: INVALID
00001c4b: JUMPDEST
00001c4c: DUP1
00001c4d: SWAP2
00001c4e: POP
00001c4f: POP
00001c50: SWAP3
00001c51: SWAP2
00001c52: POP
00001c53: POP
00001c54: JUMP
00001c55: JUMPDEST
00001c56: PUSH1 0x00
00001c58: DUP1
00001c59: PUSH1 0x00
00001c5b: DUP5
00001c5c: EQ
00001c5d: ISZERO
00001c5e: PUSH2 0x1c6a
00001c61: JUMPI
00001c62: PUSH1 0x00
00001c64: SWAP2
00001c65: POP
00001c66: PUSH2 0x1c89
00001c69: JUMP
00001c6a: JUMPDEST
00001c6b: DUP3
00001c6c: DUP5
00001c6d: MUL
00001c6e: SWAP1
00001c6f: POP
00001c70: DUP3
00001c71: DUP5
00001c72: DUP3
00001c73: DUP2
00001c74: ISZERO
00001c75: ISZERO
00001c76: PUSH2 0x1c7b
00001c79: JUMPI
00001c7a: INVALID
00001c7b: JUMPDEST
00001c7c: DIV
00001c7d: EQ
00001c7e: ISZERO
00001c7f: ISZERO
00001c80: PUSH2 0x1c85
00001c83: JUMPI
00001c84: INVALID
00001c85: JUMPDEST
00001c86: DUP1
00001c87: SWAP2
00001c88: POP
00001c89: JUMPDEST
00001c8a: POP
00001c8b: SWAP3
00001c8c: SWAP2
00001c8d: POP
00001c8e: POP
00001c8f: JUMP
00001c90: JUMPDEST
00001c91: PUSH1 0x00
00001c93: DUP1
00001c94: DUP3
00001c95: DUP5
00001c96: DUP2
00001c97: ISZERO
00001c98: ISZERO
00001c99: PUSH2 0x1c9e
00001c9c: JUMPI
00001c9d: INVALID
00001c9e: JUMPDEST
00001c9f: DIV
00001ca0: SWAP1
00001ca1: POP
00001ca2: DUP1
00001ca3: SWAP2
00001ca4: POP
00001ca5: POP
00001ca6: SWAP3
00001ca7: SWAP2
00001ca8: POP
00001ca9: POP
00001caa: JUMP
00001cab: JUMPDEST
00001cac: PUSH1 0x00
00001cae: PUSH2 0x1cd4
00001cb1: PUSH1 0x64
00001cb3: PUSH2 0x1cc6
00001cb6: PUSH1 0x05
00001cb8: DUP6
00001cb9: PUSH2 0x1c55
00001cbc: SWAP1
00001cbd: SWAP2
00001cbe: SWAP1
00001cbf: PUSH4 0xffffffff
00001cc4: AND
00001cc5: JUMP
00001cc6: JUMPDEST
00001cc7: PUSH2 0x1c90
00001cca: SWAP1
00001ccb: SWAP2
00001ccc: SWAP1
00001ccd: PUSH4 0xffffffff
00001cd2: AND
00001cd3: JUMP
00001cd4: JUMPDEST
00001cd5: SWAP1
00001cd6: POP
00001cd7: SWAP2
00001cd8: SWAP1
00001cd9: POP
00001cda: JUMP
00001cdb: STOP
00001cdc: LOG1
00001cdd: PUSH6 0x627a7a723058
00001ce4: KECCAK256
00001ce5: SHL
00001ce6: GASLIMIT
00001ce7: PUSH28 0x130132a5e892527bff4852a9e4dfe4b5053e9fd0f11b688a67f4328e
00001d04: SWAP1
00001d05: STOP
00001d06: UNKNOWN(0x29)

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
medium other codex Refunds do not reclaim tokens, enabling free tokens if soft cap is missed 75 no
view
evidence_json
{
    "evidence": "`doPurchase` transfers tokens immediately to the buyer (Contract.sol:618) while `refund` only returns ETH and never burns or reclaims tokens (Contract.sol:560-571).",
    "locations": [
        "contracts/Contract.sol:560",
        "contracts/Contract.sol:618"
    ],
    "recommendation": "When refunding, burn or claw back the contributor\u2019s tokens (or escrow token delivery until soft cap success). Also adjust `tokensSold`/accounting on refund to prevent free-token outcomes.",
    "exploit_scenario": "1) Attacker (whitelisted) contributes during the presale to receive tokens immediately. 2) The presale ends without reaching the soft cap. 3) Attacker calls `refund()` to receive their full ETH deposit back while keeping the tokens already transferred. 4) If/when the token is later released, attacker can transfer/sell those free tokens for profit."
}
medium other detector Untrusted CALL target/value reachable 45 yes yes
view
trace_id: 0x571fdd4f6e81c3233c30aaab9cbedd7c270c642e499eaaf08490fd69885c721a
call_targets: 0x12d5b7c26dd8dc6e2f71f5bf240d5e76452b2fe5, 0xbdc3f19226b31b9f34589c491a8adc691991403a
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x571fdd4f6e81c3233c30aaab9cbedd7c270c642e499eaaf08490fd69885c721a",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x12d5b7c26dd8dc6e2f71f5bf240d5e76452b2fe5",
        "0xbdc3f19226b31b9f34589c491a8adc691991403a"
    ],
    "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": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2b9edee9",
            "selector": "0x2b9edee9",
            "calldata_variants": [
                "0x2b9edee9",
                "0x2b9edee90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3197cbb6",
            "selector": "0x3197cbb6",
            "calldata_variants": [
                "0x3197cbb6",
                "0x3197cbb60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x38af3eed",
            "selector": "0x38af3eed",
            "calldata_variants": [
                "0x38af3eed",
                "0x38af3eed0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3b478fc5",
            "selector": "0x3b478fc5",
            "calldata_variants": [
                "0x3b478fc5",
                "0x3b478fc50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3ccfd60b",
            "selector": "0x3ccfd60b",
            "calldata_variants": [
                "0x3ccfd60b",
                "0x3ccfd60b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x518ab2a8",
            "selector": "0x518ab2a8",
            "calldata_variants": [
                "0x518ab2a8",
                "0x518ab2a80000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 576,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2898,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3171,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 9,
    "guards_detected": [
        {
            "pc": 4470,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5873,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6095,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6254,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6406,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6679,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6895,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 9
}
medium other detector ETH value transfer possible 40 yes yes
view
trace_id: 0x571fdd4f6e81c3233c30aaab9cbedd7c270c642e499eaaf08490fd69885c721a
call_targets: 0x12d5b7c26dd8dc6e2f71f5bf240d5e76452b2fe5, 0xbdc3f19226b31b9f34589c491a8adc691991403a
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x571fdd4f6e81c3233c30aaab9cbedd7c270c642e499eaaf08490fd69885c721a",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x12d5b7c26dd8dc6e2f71f5bf240d5e76452b2fe5",
        "0xbdc3f19226b31b9f34589c491a8adc691991403a"
    ],
    "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": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2b9edee9",
            "selector": "0x2b9edee9",
            "calldata_variants": [
                "0x2b9edee9",
                "0x2b9edee90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3197cbb6",
            "selector": "0x3197cbb6",
            "calldata_variants": [
                "0x3197cbb6",
                "0x3197cbb60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x38af3eed",
            "selector": "0x38af3eed",
            "calldata_variants": [
                "0x38af3eed",
                "0x38af3eed0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3b478fc5",
            "selector": "0x3b478fc5",
            "calldata_variants": [
                "0x3b478fc5",
                "0x3b478fc50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3ccfd60b",
            "selector": "0x3ccfd60b",
            "calldata_variants": [
                "0x3ccfd60b",
                "0x3ccfd60b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x518ab2a8",
            "selector": "0x518ab2a8",
            "calldata_variants": [
                "0x518ab2a8",
                "0x518ab2a80000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 576,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2898,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3171,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 9,
    "guards_detected": [
        {
            "pc": 4470,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5873,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6095,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6254,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6406,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6679,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6895,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 7
}