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

Analysis Run

019bb377-69ea-706f-8a9f-4e6b23cf77a4

failed
Chain ID
1
Address
Block Number
Created
Mon, Jan 12, 2026 6:28 PM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
SELFDESTRUCT present
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
39888 artifact.fetch complete 1 / 3 3 months ago
39889 proxy.resolve complete 1 / 3 3 months ago
39890 tool.cast_disasm complete 1 / 3 3 months ago
39891 analysis.bundle complete 1 / 3 3 months ago
39892 capability.graph complete 1 / 3 3 months ago
39893 detector.run complete 1 / 3 3 months ago
39894 validation.fork complete 1 / 3 3 months ago
39980 report.consolidate complete 1 / 6 3 months ago
39981 tool.slither failed 2 / 2 3 months ago

Artifact

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

Slither

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

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
1
No findings?
no
Summary
One low-severity issue found: low-level calls ignore failures, which can consume daily limits or clear pending transactions without transferring funds.
View stdout
{"no_findings":false,"summary":"One low-severity issue found: low-level calls ignore failures, which can consume daily limits or clear pending transactions without transferring funds.","findings":[{"severity":"low","category":"other","title":"Unchecked low-level call results can desync accounting and clear pending txs","exploit_scenario":"A recipient contract that reverts can make `execute`/`confirm` treat a failed call as successful. In the daily-limit path, `_value` is counted as spent even though no funds were transferred, blocking further spending for the day. In the multisig path, the pending transaction is deleted after a failed call, forcing owners to recreate and re-approve the transaction.","recommendation":"Check the return value of low-level calls and revert on failure, or only delete `m_txs[_h]` after a successful call. In Solidity 0.4.x, use `if(!_to.call.value(_value)(_data)) throw;` (or equivalent) to ensure accounting and pending state only update on success.","evidence":"`_to.call.value(_value)(_data);` and `m_txs[_h].to.call.value(m_txs[_h].value)(m_txs[_h].data);` are invoked without checking the return value; state changes (daily spend update or `m_txs` deletion) proceed regardless of call success.","locations":["contracts/Contract.sol:346","contracts/Contract.sol:366"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-5y0c04dv
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb39e-c0d8-71b3-adf8-f94ad2f6e270
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

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

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

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

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

================================================================================
FILE: contracts/Contract.sol
================================================================================
//sol Wallet
// Multi-sig, daily-limited account proxy/wallet.
// @authors:
// Gav Wood <g@ethdev.com>
// inheritable "property" contract that enables methods to be protected by requiring the acquiescence of either a
// single, or, crucially, each of a number of, designated owners.
// usage:
// use modifiers onlyowner (just own owned) or onlymanyowners(hash), whereby the same hash must be provided by
// some number (specified in constructor) of the set of owners (specified in the constructor, modifiable) before the
// interior is executed.
pragma solidity ^0.4.6;

contract multiowned {




thinking
**Analyzing Solidity multisig vulnerabilities**
thinking
**Clarifying operator precedence and reentrancy risks**

I’m sorting through how Solidity’s operator precedence impacts critical conditions, confirming bitwise AND likely has higher precedence than equality, so no parsing bugs there. I’m also weighing how unchecked low-level calls combined with external calls before state updates introduce real reentrancy risks—especially if the wallet’s required confirmations are set to one—potentially allowing repeated transaction execution before cleanup. These subtle issues highlight areas where older multisig logic could cause stuck funds or unintended multiple sends.
thinking
**Summarizing transaction handling and potential low-severity flaws**

I’m reviewing how execute’s use of block number in operation hashes affects transaction tracking and confirming that owner misconfiguration risks exist but aren’t exploitable. The main finding is unchecked low-level call return values causing transactions to be removed despite failed sends, which can lock funds and cause denial-of-service-like issues. Other potential issues like reentrancy and access control seem limited or mitigated by the contract’s logic and owner requirements.
exec
/bin/bash -lc 'solc --version' in /tmp/codex-5y0c04dv succeeded in 187ms:
solc, the solidity compiler commandline interface
Version: 0.8.20+commit.a1b79de6.Linux.g++

thinking
**Testing operator precedence with solc 0.8.20**
exec
/bin/bash -lc "cat <<'SOL' | solc --ast-compact-json -
// SPDX-License-Identifier: UNLICENSED
pragma solidity "'^0.8.20;
contract T {
    function f(uint a, uint b) external pure returns (bool) {
        return a & b == 0;
    }
}
SOL' in /tmp/codex-5y0c04dv succeeded in 162ms:
JSON AST (compact format):


======= <stdin> =======
{"absolutePath":"<stdin>","exportedSymbols":{"T":[18]},"id":19,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"39:24:0"},{"abstract":false,"baseContracts":[],"canonicalName":"T","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":18,"linearizedBaseContracts":[18],"name":"T","nameLocation":"73:1:0","nodeType":"ContractDefinition","nodes":[{"body":{"id":16,"nodeType":"Block","src":"137:34:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3,"src":"154:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":11,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"158:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"154:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"163:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"154:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9,"id":15,"nodeType":"Return","src":"147:17:0"}]},"functionSelector":"13d1aa2e","id":17,"implemented":true,"kind":"function","modifiers":[],"name":"f","nameLocation":"90:1:0","nodeType":"FunctionDefinition","parameters":{"id":6,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3,"mutability":"mutable","name":"a","nameLocation":"97:1:0","nodeType":"VariableDeclaration","scope":17,"src":"92:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2,"name":"uint","nodeType":"ElementaryTypeName","src":"92:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5,"mutability":"mutable","name":"b","nameLocation":"105:1:0","nodeType":"VariableDeclaration","scope":17,"src":"100:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4,"name":"uint","nodeType":"ElementaryTypeName","src":"100:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"91:16:0"},"returnParameters":{"id":9,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17,"src":"131:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7,"name":"bool","nodeType":"ElementaryTypeName","src":"131:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"130:6:0"},"scope":18,"src":"81:90:0","stateMutability":"pure","virtual":false,"visibility":"external"}],"scope":19,"src":"64:109:0","usedErrors":[],"usedEvents":[]}],"src":"39:135:0"}

thinking
**Analyzing Solidity code correctness and risks**
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '160,260p'" in /tmp/codex-5y0c04dv succeeded in 29ms:
   160	            // reset count of confirmations needed.
   161	            pending.yetNeeded = m_required;
   162	            // reset which owners have confirmed (none) - set our bitmap to 0.
   163	            pending.ownersDone = 0;
   164	            pending.index = m_pendingIndex.length++;
   165	            m_pendingIndex[pending.index] = _operation;
   166	        }
   167	        // determine the bit to set for this owner.
   168	        uint ownerIndexBit = 2**ownerIndex;
   169	        // make sure we (the message sender) haven't confirmed this operation previously.
   170	        if (pending.ownersDone & ownerIndexBit == 0) {
   171	            Confirmation(msg.sender, _operation);
   172	            // ok - check if count is enough to go ahead.
   173	            if (pending.yetNeeded <= 1) {
   174	                // enough confirmations: reset and run interior.
   175	                delete m_pendingIndex[m_pending[_operation].index];
   176	                delete m_pending[_operation];
   177	                return true;
   178	            }
   179	            else

thinking
**Requesting execution confirmation**
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '300,420p'" in /tmp/codex-5y0c04dv succeeded in 9ms:
   300	    // FUNCTIONS
   301	
   302	    // TODO: document
   303	    function changeOwner(address _from, address _to) external;
   304	    function execute(address _to, uint _value, bytes _data) external returns (bytes32);
   305	    function confirm(bytes32 _h) returns (bool);
   306	}
   307	
   308	// usage:
   309	// bytes32 h = Wallet(w).from(oneOwner).execute(to, value, data);
   310	// Wallet(w).from(anotherOwner).confirm(h);
   311	contract Wallet is multisig, multiowned, daylimit {
   312	
   313	    // TYPES
   314	
   315	    // Transaction structure to remember details of transaction lest it need be saved for a later call.
   316	    struct Transaction {
   317	        address to;
   318	        uint value;
   319	        bytes data;

thinking
**Summarizing low-level call issues and risks**

I’m gathering details to highlight a low-severity issue where unchecked returns from low-level `.call` calls cause silent failures and inconsistent accounting, like consuming daily limits or removing pending transactions without funds transferring. I’m carefully weighing how much impact this has given the context and compiling a clear JSON report with severity, category, titles, exploit scenarios, recommendations, evidence, and file locations.
codex
{"no_findings":false,"summary":"One low-severity issue found: low-level calls ignore failures, which can consume daily limits or clear pending transactions without transferring funds.","findings":[{"severity":"low","category":"other","title":"Unchecked low-level call results can desync accounting and clear pending txs","exploit_scenario":"A recipient contract that reverts can make `execute`/`confirm` treat a failed call as successful. In the daily-limit path, `_value` is counted as spent even though no funds were transferred, blocking further spending for the day. In the multisig path, the pending transaction is deleted after a failed call, forcing owners to recreate and re-approve the transaction.","recommendation":"Check the return value of low-level calls and revert on failure, or only delete `m_txs[_h]` after a successful call. In Solidity 0.4.x, use `if(!_to.call.value(_value)(_data)) throw;` (or equivalent) to ensure accounting and pending state only update on success.","evidence":"`_to.call.value(_value)(_data);` and `m_txs[_h].to.call.value(m_txs[_h].value)(m_txs[_h].data);` are invoked without checking the return value; state changes (daily spend update or `m_txs` deletion) proceed regardless of call success.","locations":["contracts/Contract.sol:346","contracts/Contract.sol:366"]}]}
tokens used
29,165
Metadata
{
    "codex": {
        "ran_at": "2026-01-12T19:15:37.537070+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 1,
        "import_count": 0,
        "first_party_contracts_count": 1
    },
    "summary": "One low-severity issue found: low-level calls ignore failures, which can consume daily limits or clear pending transactions without transferring funds.",
    "raw_final": {
        "summary": "One low-severity issue found: low-level calls ignore failures, which can consume daily limits or clear pending transactions without transferring funds.",
        "findings": [
            {
                "title": "Unchecked low-level call results can desync accounting and clear pending txs",
                "category": "other",
                "evidence": "`_to.call.value(_value)(_data);` and `m_txs[_h].to.call.value(m_txs[_h].value)(m_txs[_h].data);` are invoked without checking the return value; state changes (daily spend update or `m_txs` deletion) proceed regardless of call success.",
                "severity": "low",
                "locations": [
                    "contracts/Contract.sol:346",
                    "contracts/Contract.sol:366"
                ],
                "recommendation": "Check the return value of low-level calls and revert on failure, or only delete `m_txs[_h]` after a successful call. In Solidity 0.4.x, use `if(!_to.call.value(_value)(_data)) throw;` (or equivalent) to ensure accounting and pending state only update on success.",
                "exploit_scenario": "A recipient contract that reverts can make `execute`/`confirm` treat a failed call as successful. In the daily-limit path, `_value` is counted as spent even though no funds were transferred, blocking further spending for the day. In the multisig path, the pending transaction is deleted after a failed call, forcing owners to recreate and re-approve the transaction."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
1
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
0
Total opcodes
3272
Flags
selfdestruct_present
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x00da
0000000a: JUMPI
0000000b: PUSH1 0xe0
0000000d: PUSH1 0x02
0000000f: EXP
00000010: PUSH1 0x00
00000012: CALLDATALOAD
00000013: DIV
00000014: PUSH4 0x173825d9
00000019: DUP2
0000001a: EQ
0000001b: PUSH2 0x0130
0000001e: JUMPI
0000001f: DUP1
00000020: PUSH4 0x2f54bf6e
00000025: EQ
00000026: PUSH2 0x0142
00000029: JUMPI
0000002a: DUP1
0000002b: PUSH4 0x4123cb6b
00000030: EQ
00000031: PUSH2 0x0166
00000034: JUMPI
00000035: DUP1
00000036: PUSH4 0x52375093
0000003b: EQ
0000003c: PUSH2 0x0185
0000003f: JUMPI
00000040: DUP1
00000041: PUSH4 0x5c52c2f5
00000046: EQ
00000047: PUSH2 0x01a4
0000004a: JUMPI
0000004b: DUP1
0000004c: PUSH4 0x659010e7
00000051: EQ
00000052: PUSH2 0x01b3
00000055: JUMPI
00000056: DUP1
00000057: PUSH4 0x7065cb48
0000005c: EQ
0000005d: PUSH2 0x01d2
00000060: JUMPI
00000061: DUP1
00000062: PUSH4 0x746c9171
00000067: EQ
00000068: PUSH2 0x01e4
0000006b: JUMPI
0000006c: DUP1
0000006d: PUSH4 0x797af627
00000072: EQ
00000073: PUSH2 0x0203
00000076: JUMPI
00000077: DUP1
00000078: PUSH4 0xb20d30a9
0000007d: EQ
0000007e: PUSH2 0x0227
00000081: JUMPI
00000082: DUP1
00000083: PUSH4 0xb61d27f6
00000088: EQ
00000089: PUSH2 0x0239
0000008c: JUMPI
0000008d: DUP1
0000008e: PUSH4 0xb75c7dc6
00000093: EQ
00000094: PUSH2 0x026b
00000097: JUMPI
00000098: DUP1
00000099: PUSH4 0xba51a6df
0000009e: EQ
0000009f: PUSH2 0x027d
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0xc2cf7326
000000a9: EQ
000000aa: PUSH2 0x028f
000000ad: JUMPI
000000ae: DUP1
000000af: PUSH4 0xc41a360a
000000b4: EQ
000000b5: PUSH2 0x02b6
000000b8: JUMPI
000000b9: DUP1
000000ba: PUSH4 0xcbf0b0c0
000000bf: EQ
000000c0: PUSH2 0x02e2
000000c3: JUMPI
000000c4: DUP1
000000c5: PUSH4 0xf00d4b5d
000000ca: EQ
000000cb: PUSH2 0x02f4
000000ce: JUMPI
000000cf: DUP1
000000d0: PUSH4 0xf1736d86
000000d5: EQ
000000d6: PUSH2 0x0309
000000d9: JUMPI
000000da: JUMPDEST
000000db: PUSH2 0x012e
000000de: JUMPDEST
000000df: PUSH1 0x00
000000e1: CALLVALUE
000000e2: GT
000000e3: ISZERO
000000e4: PUSH2 0x012b
000000e7: JUMPI
000000e8: PUSH1 0x40
000000ea: DUP1
000000eb: MLOAD
000000ec: PUSH1 0x01
000000ee: PUSH1 0xa0
000000f0: PUSH1 0x02
000000f2: EXP
000000f3: SUB
000000f4: CALLER
000000f5: AND
000000f6: DUP2
000000f7: MSTORE
000000f8: CALLVALUE
000000f9: PUSH1 0x20
000000fb: DUP3
000000fc: ADD
000000fd: MSTORE
000000fe: DUP2
000000ff: MLOAD
00000100: PUSH32 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c
00000121: SWAP3
00000122: SWAP2
00000123: DUP2
00000124: SWAP1
00000125: SUB
00000126: SWAP1
00000127: SWAP2
00000128: ADD
00000129: SWAP1
0000012a: LOG1
0000012b: JUMPDEST
0000012c: JUMPDEST
0000012d: JUMP
0000012e: JUMPDEST
0000012f: STOP
00000130: JUMPDEST
00000131: CALLVALUE
00000132: PUSH2 0x0000
00000135: JUMPI
00000136: PUSH2 0x012e
00000139: PUSH1 0x04
0000013b: CALLDATALOAD
0000013c: PUSH2 0x0328
0000013f: JUMP
00000140: JUMPDEST
00000141: STOP
00000142: JUMPDEST
00000143: CALLVALUE
00000144: PUSH2 0x0000
00000147: JUMPI
00000148: PUSH2 0x0152
0000014b: PUSH1 0x04
0000014d: CALLDATALOAD
0000014e: PUSH2 0x0415
00000151: JUMP
00000152: JUMPDEST
00000153: PUSH1 0x40
00000155: DUP1
00000156: MLOAD
00000157: SWAP2
00000158: ISZERO
00000159: ISZERO
0000015a: DUP3
0000015b: MSTORE
0000015c: MLOAD
0000015d: SWAP1
0000015e: DUP2
0000015f: SWAP1
00000160: SUB
00000161: PUSH1 0x20
00000163: ADD
00000164: SWAP1
00000165: RETURN
00000166: JUMPDEST
00000167: CALLVALUE
00000168: PUSH2 0x0000
0000016b: JUMPI
0000016c: PUSH2 0x0173
0000016f: PUSH2 0x0436
00000172: JUMP
00000173: JUMPDEST
00000174: PUSH1 0x40
00000176: DUP1
00000177: MLOAD
00000178: SWAP2
00000179: DUP3
0000017a: MSTORE
0000017b: MLOAD
0000017c: SWAP1
0000017d: DUP2
0000017e: SWAP1
0000017f: SUB
00000180: PUSH1 0x20
00000182: ADD
00000183: SWAP1
00000184: RETURN
00000185: JUMPDEST
00000186: CALLVALUE
00000187: PUSH2 0x0000
0000018a: JUMPI
0000018b: PUSH2 0x0173
0000018e: PUSH2 0x043c
00000191: JUMP
00000192: JUMPDEST
00000193: PUSH1 0x40
00000195: DUP1
00000196: MLOAD
00000197: SWAP2
00000198: DUP3
00000199: MSTORE
0000019a: MLOAD
0000019b: SWAP1
0000019c: DUP2
0000019d: SWAP1
0000019e: SUB
0000019f: PUSH1 0x20
000001a1: ADD
000001a2: SWAP1
000001a3: RETURN
000001a4: JUMPDEST
000001a5: CALLVALUE
000001a6: PUSH2 0x0000
000001a9: JUMPI
000001aa: PUSH2 0x012e
000001ad: PUSH2 0x0443
000001b0: JUMP
000001b1: JUMPDEST
000001b2: STOP
000001b3: JUMPDEST
000001b4: CALLVALUE
000001b5: PUSH2 0x0000
000001b8: JUMPI
000001b9: PUSH2 0x0173
000001bc: PUSH2 0x047b
000001bf: JUMP
000001c0: JUMPDEST
000001c1: PUSH1 0x40
000001c3: DUP1
000001c4: MLOAD
000001c5: SWAP2
000001c6: DUP3
000001c7: MSTORE
000001c8: MLOAD
000001c9: SWAP1
000001ca: DUP2
000001cb: SWAP1
000001cc: SUB
000001cd: PUSH1 0x20
000001cf: ADD
000001d0: SWAP1
000001d1: RETURN
000001d2: JUMPDEST
000001d3: CALLVALUE
000001d4: PUSH2 0x0000
000001d7: JUMPI
000001d8: PUSH2 0x012e
000001db: PUSH1 0x04
000001dd: CALLDATALOAD
000001de: PUSH2 0x0482
000001e1: JUMP
000001e2: JUMPDEST
000001e3: STOP
000001e4: JUMPDEST
000001e5: CALLVALUE
000001e6: PUSH2 0x0000
000001e9: JUMPI
000001ea: PUSH2 0x0173
000001ed: PUSH2 0x0571
000001f0: JUMP
000001f1: JUMPDEST
000001f2: PUSH1 0x40
000001f4: DUP1
000001f5: MLOAD
000001f6: SWAP2
000001f7: DUP3
000001f8: MSTORE
000001f9: MLOAD
000001fa: SWAP1
000001fb: DUP2
000001fc: SWAP1
000001fd: SUB
000001fe: PUSH1 0x20
00000200: ADD
00000201: SWAP1
00000202: RETURN
00000203: JUMPDEST
00000204: CALLVALUE
00000205: PUSH2 0x0000
00000208: JUMPI
00000209: PUSH2 0x0152
0000020c: PUSH1 0x04
0000020e: CALLDATALOAD
0000020f: PUSH2 0x0577
00000212: JUMP
00000213: JUMPDEST
00000214: PUSH1 0x40
00000216: DUP1
00000217: MLOAD
00000218: SWAP2
00000219: ISZERO
0000021a: ISZERO
0000021b: DUP3
0000021c: MSTORE
0000021d: MLOAD
0000021e: SWAP1
0000021f: DUP2
00000220: SWAP1
00000221: SUB
00000222: PUSH1 0x20
00000224: ADD
00000225: SWAP1
00000226: RETURN
00000227: JUMPDEST
00000228: CALLVALUE
00000229: PUSH2 0x0000
0000022c: JUMPI
0000022d: PUSH2 0x012e
00000230: PUSH1 0x04
00000232: CALLDATALOAD
00000233: PUSH2 0x07e3
00000236: JUMP
00000237: JUMPDEST
00000238: STOP
00000239: JUMPDEST
0000023a: CALLVALUE
0000023b: PUSH2 0x0000
0000023e: JUMPI
0000023f: PUSH2 0x0173
00000242: PUSH1 0x04
00000244: DUP1
00000245: CALLDATALOAD
00000246: SWAP1
00000247: PUSH1 0x24
00000249: DUP1
0000024a: CALLDATALOAD
0000024b: SWAP2
0000024c: PUSH1 0x44
0000024e: CALLDATALOAD
0000024f: SWAP2
00000250: DUP3
00000251: ADD
00000252: SWAP2
00000253: ADD
00000254: CALLDATALOAD
00000255: PUSH2 0x081c
00000258: JUMP
00000259: JUMPDEST
0000025a: PUSH1 0x40
0000025c: DUP1
0000025d: MLOAD
0000025e: SWAP2
0000025f: DUP3
00000260: MSTORE
00000261: MLOAD
00000262: SWAP1
00000263: DUP2
00000264: SWAP1
00000265: SUB
00000266: PUSH1 0x20
00000268: ADD
00000269: SWAP1
0000026a: RETURN
0000026b: JUMPDEST
0000026c: CALLVALUE
0000026d: PUSH2 0x0000
00000270: JUMPI
00000271: PUSH2 0x012e
00000274: PUSH1 0x04
00000276: CALLDATALOAD
00000277: PUSH2 0x0ab3
0000027a: JUMP
0000027b: JUMPDEST
0000027c: STOP
0000027d: JUMPDEST
0000027e: CALLVALUE
0000027f: PUSH2 0x0000
00000282: JUMPI
00000283: PUSH2 0x012e
00000286: PUSH1 0x04
00000288: CALLDATALOAD
00000289: PUSH2 0x0b5e
0000028c: JUMP
0000028d: JUMPDEST
0000028e: STOP
0000028f: JUMPDEST
00000290: CALLVALUE
00000291: PUSH2 0x0000
00000294: JUMPI
00000295: PUSH2 0x0152
00000298: PUSH1 0x04
0000029a: CALLDATALOAD
0000029b: PUSH1 0x24
0000029d: CALLDATALOAD
0000029e: PUSH2 0x0be0
000002a1: JUMP
000002a2: JUMPDEST
000002a3: PUSH1 0x40
000002a5: DUP1
000002a6: MLOAD
000002a7: SWAP2
000002a8: ISZERO
000002a9: ISZERO
000002aa: DUP3
000002ab: MSTORE
000002ac: MLOAD
000002ad: SWAP1
000002ae: DUP2
000002af: SWAP1
000002b0: SUB
000002b1: PUSH1 0x20
000002b3: ADD
000002b4: SWAP1
000002b5: RETURN
000002b6: JUMPDEST
000002b7: CALLVALUE
000002b8: PUSH2 0x0000
000002bb: JUMPI
000002bc: PUSH2 0x02c6
000002bf: PUSH1 0x04
000002c1: CALLDATALOAD
000002c2: PUSH2 0x0c35
000002c5: JUMP
000002c6: JUMPDEST
000002c7: PUSH1 0x40
000002c9: DUP1
000002ca: MLOAD
000002cb: PUSH1 0x01
000002cd: PUSH1 0xa0
000002cf: PUSH1 0x02
000002d1: EXP
000002d2: SUB
000002d3: SWAP1
000002d4: SWAP3
000002d5: AND
000002d6: DUP3
000002d7: MSTORE
000002d8: MLOAD
000002d9: SWAP1
000002da: DUP2
000002db: SWAP1
000002dc: SUB
000002dd: PUSH1 0x20
000002df: ADD
000002e0: SWAP1
000002e1: RETURN
000002e2: JUMPDEST
000002e3: CALLVALUE
000002e4: PUSH2 0x0000
000002e7: JUMPI
000002e8: PUSH2 0x012e
000002eb: PUSH1 0x04
000002ed: CALLDATALOAD
000002ee: PUSH2 0x0c55
000002f1: JUMP
000002f2: JUMPDEST
000002f3: STOP
000002f4: JUMPDEST
000002f5: CALLVALUE
000002f6: PUSH2 0x0000
000002f9: JUMPI
000002fa: PUSH2 0x012e
000002fd: PUSH1 0x04
000002ff: CALLDATALOAD
00000300: PUSH1 0x24
00000302: CALLDATALOAD
00000303: PUSH2 0x0c93
00000306: JUMP
00000307: JUMPDEST
00000308: STOP
00000309: JUMPDEST
0000030a: CALLVALUE
0000030b: PUSH2 0x0000
0000030e: JUMPI
0000030f: PUSH2 0x0173
00000312: PUSH2 0x0d8c
00000315: JUMP
00000316: JUMPDEST
00000317: PUSH1 0x40
00000319: DUP1
0000031a: MLOAD
0000031b: SWAP2
0000031c: DUP3
0000031d: MSTORE
0000031e: MLOAD
0000031f: SWAP1
00000320: DUP2
00000321: SWAP1
00000322: SUB
00000323: PUSH1 0x20
00000325: ADD
00000326: SWAP1
00000327: RETURN
00000328: JUMPDEST
00000329: PUSH1 0x00
0000032b: PUSH1 0x00
0000032d: CALLDATASIZE
0000032e: PUSH1 0x40
00000330: MLOAD
00000331: DUP1
00000332: DUP4
00000333: DUP4
00000334: DUP1
00000335: DUP3
00000336: DUP5
00000337: CALLDATACOPY
00000338: DUP3
00000339: ADD
0000033a: SWAP2
0000033b: POP
0000033c: POP
0000033d: SWAP3
0000033e: POP
0000033f: POP
00000340: POP
00000341: PUSH1 0x40
00000343: MLOAD
00000344: DUP1
00000345: SWAP2
00000346: SUB
00000347: SWAP1
00000348: KECCAK256
00000349: PUSH2 0x0351
0000034c: DUP2
0000034d: PUSH2 0x0d93
00000350: JUMP
00000351: JUMPDEST
00000352: ISZERO
00000353: PUSH2 0x040e
00000356: JUMPI
00000357: PUSH1 0x01
00000359: PUSH1 0xa0
0000035b: PUSH1 0x02
0000035d: EXP
0000035e: SUB
0000035f: DUP4
00000360: AND
00000361: PUSH1 0x00
00000363: SWAP1
00000364: DUP2
00000365: MSTORE
00000366: PUSH2 0x0102
00000369: PUSH1 0x20
0000036b: MSTORE
0000036c: PUSH1 0x40
0000036e: SWAP1
0000036f: KECCAK256
00000370: SLOAD
00000371: SWAP2
00000372: POP
00000373: DUP2
00000374: ISZERO
00000375: ISZERO
00000376: PUSH2 0x037e
00000379: JUMPI
0000037a: PUSH2 0x040e
0000037d: JUMP
0000037e: JUMPDEST
0000037f: PUSH1 0x01
00000381: PUSH1 0x01
00000383: SLOAD
00000384: SUB
00000385: PUSH1 0x00
00000387: SLOAD
00000388: GT
00000389: ISZERO
0000038a: PUSH2 0x0392
0000038d: JUMPI
0000038e: PUSH2 0x040e
00000391: JUMP
00000392: JUMPDEST
00000393: PUSH1 0x00
00000395: PUSH1 0x02
00000397: DUP4
00000398: PUSH2 0x0100
0000039b: DUP2
0000039c: LT
0000039d: ISZERO
0000039e: PUSH2 0x0000
000003a1: JUMPI
000003a2: ADD
000003a3: PUSH1 0x00
000003a5: JUMPDEST
000003a6: POP
000003a7: SSTORE
000003a8: PUSH1 0x01
000003aa: PUSH1 0xa0
000003ac: PUSH1 0x02
000003ae: EXP
000003af: SUB
000003b0: DUP4
000003b1: AND
000003b2: PUSH1 0x00
000003b4: SWAP1
000003b5: DUP2
000003b6: MSTORE
000003b7: PUSH2 0x0102
000003ba: PUSH1 0x20
000003bc: MSTORE
000003bd: PUSH1 0x40
000003bf: DUP2
000003c0: KECCAK256
000003c1: SSTORE
000003c2: PUSH2 0x03c9
000003c5: PUSH2 0x0f32
000003c8: JUMP
000003c9: JUMPDEST
000003ca: PUSH2 0x03d1
000003cd: PUSH2 0x1002
000003d0: JUMP
000003d1: JUMPDEST
000003d2: PUSH1 0x40
000003d4: DUP1
000003d5: MLOAD
000003d6: PUSH1 0x01
000003d8: PUSH1 0xa0
000003da: PUSH1 0x02
000003dc: EXP
000003dd: SUB
000003de: DUP6
000003df: AND
000003e0: DUP2
000003e1: MSTORE
000003e2: SWAP1
000003e3: MLOAD
000003e4: PUSH32 0x58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da
00000405: SWAP2
00000406: DUP2
00000407: SWAP1
00000408: SUB
00000409: PUSH1 0x20
0000040b: ADD
0000040c: SWAP1
0000040d: LOG1
0000040e: JUMPDEST
0000040f: JUMPDEST
00000410: JUMPDEST
00000411: POP
00000412: POP
00000413: POP
00000414: JUMP
00000415: JUMPDEST
00000416: PUSH1 0x01
00000418: PUSH1 0xa0
0000041a: PUSH1 0x02
0000041c: EXP
0000041d: SUB
0000041e: DUP2
0000041f: AND
00000420: PUSH1 0x00
00000422: SWAP1
00000423: DUP2
00000424: MSTORE
00000425: PUSH2 0x0102
00000428: PUSH1 0x20
0000042a: MSTORE
0000042b: PUSH1 0x40
0000042d: DUP2
0000042e: KECCAK256
0000042f: SLOAD
00000430: GT
00000431: JUMPDEST
00000432: SWAP2
00000433: SWAP1
00000434: POP
00000435: JUMP
00000436: JUMPDEST
00000437: PUSH1 0x01
00000439: SLOAD
0000043a: DUP2
0000043b: JUMP
0000043c: JUMPDEST
0000043d: PUSH2 0x0107
00000440: SLOAD
00000441: DUP2
00000442: JUMP
00000443: JUMPDEST
00000444: PUSH1 0x00
00000446: CALLDATASIZE
00000447: PUSH1 0x40
00000449: MLOAD
0000044a: DUP1
0000044b: DUP4
0000044c: DUP4
0000044d: DUP1
0000044e: DUP3
0000044f: DUP5
00000450: CALLDATACOPY
00000451: DUP3
00000452: ADD
00000453: SWAP2
00000454: POP
00000455: POP
00000456: SWAP3
00000457: POP
00000458: POP
00000459: POP
0000045a: PUSH1 0x40
0000045c: MLOAD
0000045d: DUP1
0000045e: SWAP2
0000045f: SUB
00000460: SWAP1
00000461: KECCAK256
00000462: PUSH2 0x046a
00000465: DUP2
00000466: PUSH2 0x0d93
00000469: JUMP
0000046a: JUMPDEST
0000046b: ISZERO
0000046c: PUSH2 0x0476
0000046f: JUMPI
00000470: PUSH1 0x00
00000472: PUSH2 0x0106
00000475: SSTORE
00000476: JUMPDEST
00000477: JUMPDEST
00000478: JUMPDEST
00000479: POP
0000047a: JUMP
0000047b: JUMPDEST
0000047c: PUSH2 0x0106
0000047f: SLOAD
00000480: DUP2
00000481: JUMP
00000482: JUMPDEST
00000483: PUSH1 0x00
00000485: CALLDATASIZE
00000486: PUSH1 0x40
00000488: MLOAD
00000489: DUP1
0000048a: DUP4
0000048b: DUP4
0000048c: DUP1
0000048d: DUP3
0000048e: DUP5
0000048f: CALLDATACOPY
00000490: DUP3
00000491: ADD
00000492: SWAP2
00000493: POP
00000494: POP
00000495: SWAP3
00000496: POP
00000497: POP
00000498: POP
00000499: PUSH1 0x40
0000049b: MLOAD
0000049c: DUP1
0000049d: SWAP2
0000049e: SUB
0000049f: SWAP1
000004a0: KECCAK256
000004a1: PUSH2 0x04a9
000004a4: DUP2
000004a5: PUSH2 0x0d93
000004a8: JUMP
000004a9: JUMPDEST
000004aa: ISZERO
000004ab: PUSH2 0x056b
000004ae: JUMPI
000004af: PUSH2 0x04b7
000004b2: DUP3
000004b3: PUSH2 0x0415
000004b6: JUMP
000004b7: JUMPDEST
000004b8: ISZERO
000004b9: PUSH2 0x04c1
000004bc: JUMPI
000004bd: PUSH2 0x056b
000004c0: JUMP
000004c1: JUMPDEST
000004c2: PUSH2 0x04c9
000004c5: PUSH2 0x0f32
000004c8: JUMP
000004c9: JUMPDEST
000004ca: PUSH1 0x01
000004cc: SLOAD
000004cd: PUSH1 0xfa
000004cf: SWAP1
000004d0: LT
000004d1: PUSH2 0x04dc
000004d4: JUMPI
000004d5: PUSH2 0x04dc
000004d8: PUSH2 0x1002
000004db: JUMP
000004dc: JUMPDEST
000004dd: JUMPDEST
000004de: PUSH1 0x01
000004e0: SLOAD
000004e1: PUSH1 0xfa
000004e3: SWAP1
000004e4: LT
000004e5: PUSH2 0x04ed
000004e8: JUMPI
000004e9: PUSH2 0x056b
000004ec: JUMP
000004ed: JUMPDEST
000004ee: PUSH1 0x01
000004f0: DUP1
000004f1: SLOAD
000004f2: DUP2
000004f3: ADD
000004f4: SWAP1
000004f5: DUP2
000004f6: SWAP1
000004f7: SSTORE
000004f8: PUSH1 0x01
000004fa: PUSH1 0xa0
000004fc: PUSH1 0x02
000004fe: EXP
000004ff: SUB
00000500: DUP4
00000501: AND
00000502: SWAP1
00000503: PUSH1 0x02
00000505: SWAP1
00000506: PUSH2 0x0100
00000509: DUP2
0000050a: LT
0000050b: ISZERO
0000050c: PUSH2 0x0000
0000050f: JUMPI
00000510: ADD
00000511: PUSH1 0x00
00000513: JUMPDEST
00000514: POP
00000515: SSTORE
00000516: PUSH1 0x01
00000518: SLOAD
00000519: PUSH1 0x01
0000051b: PUSH1 0xa0
0000051d: PUSH1 0x02
0000051f: EXP
00000520: SUB
00000521: DUP4
00000522: AND
00000523: PUSH1 0x00
00000525: DUP2
00000526: DUP2
00000527: MSTORE
00000528: PUSH2 0x0102
0000052b: PUSH1 0x20
0000052d: SWAP1
0000052e: DUP2
0000052f: MSTORE
00000530: PUSH1 0x40
00000532: SWAP2
00000533: DUP3
00000534: SWAP1
00000535: KECCAK256
00000536: SWAP4
00000537: SWAP1
00000538: SWAP4
00000539: SSTORE
0000053a: DUP1
0000053b: MLOAD
0000053c: SWAP2
0000053d: DUP3
0000053e: MSTORE
0000053f: MLOAD
00000540: PUSH32 0x994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3
00000561: SWAP3
00000562: SWAP2
00000563: DUP2
00000564: SWAP1
00000565: SUB
00000566: SWAP1
00000567: SWAP2
00000568: ADD
00000569: SWAP1
0000056a: LOG1
0000056b: JUMPDEST
0000056c: JUMPDEST
0000056d: JUMPDEST
0000056e: POP
0000056f: POP
00000570: JUMP
00000571: JUMPDEST
00000572: PUSH1 0x00
00000574: SLOAD
00000575: DUP2
00000576: JUMP
00000577: JUMPDEST
00000578: PUSH1 0x00
0000057a: DUP2
0000057b: PUSH2 0x0583
0000057e: DUP2
0000057f: PUSH2 0x0d93
00000582: JUMP
00000583: JUMPDEST
00000584: ISZERO
00000585: PUSH2 0x07da
00000588: JUMPI
00000589: PUSH1 0x00
0000058b: DUP4
0000058c: DUP2
0000058d: MSTORE
0000058e: PUSH2 0x0108
00000591: PUSH1 0x20
00000593: MSTORE
00000594: PUSH1 0x40
00000596: SWAP1
00000597: KECCAK256
00000598: SLOAD
00000599: PUSH1 0x01
0000059b: PUSH1 0xa0
0000059d: PUSH1 0x02
0000059f: EXP
000005a0: SUB
000005a1: AND
000005a2: ISZERO
000005a3: PUSH2 0x07da
000005a6: JUMPI
000005a7: PUSH1 0x00
000005a9: DUP4
000005aa: DUP2
000005ab: MSTORE
000005ac: PUSH2 0x0108
000005af: PUSH1 0x20
000005b1: MSTORE
000005b2: PUSH1 0x40
000005b4: SWAP1
000005b5: DUP2
000005b6: SWAP1
000005b7: KECCAK256
000005b8: DUP1
000005b9: SLOAD
000005ba: PUSH1 0x01
000005bc: DUP1
000005bd: DUP4
000005be: ADD
000005bf: SLOAD
000005c0: SWAP4
000005c1: MLOAD
000005c2: PUSH1 0x02
000005c4: SWAP4
000005c5: DUP5
000005c6: ADD
000005c7: DUP1
000005c8: SLOAD
000005c9: PUSH1 0x01
000005cb: PUSH1 0xa0
000005cd: PUSH1 0x02
000005cf: EXP
000005d0: SUB
000005d1: SWAP1
000005d2: SWAP5
000005d3: AND
000005d4: SWAP6
000005d5: SWAP5
000005d6: SWAP1
000005d7: SWAP4
000005d8: SWAP2
000005d9: SWAP3
000005da: DUP4
000005db: SWAP3
000005dc: DUP6
000005dd: SWAP3
000005de: SWAP2
000005df: DUP2
000005e0: AND
000005e1: ISZERO
000005e2: PUSH2 0x0100
000005e5: MUL
000005e6: PUSH1 0x00
000005e8: NOT
000005e9: ADD
000005ea: AND
000005eb: DIV
000005ec: DUP1
000005ed: ISZERO
000005ee: PUSH2 0x0638
000005f1: JUMPI
000005f2: DUP1
000005f3: PUSH1 0x1f
000005f5: LT
000005f6: PUSH2 0x060d
000005f9: JUMPI
000005fa: PUSH2 0x0100
000005fd: DUP1
000005fe: DUP4
000005ff: SLOAD
00000600: DIV
00000601: MUL
00000602: DUP4
00000603: MSTORE
00000604: SWAP2
00000605: PUSH1 0x20
00000607: ADD
00000608: SWAP2
00000609: PUSH2 0x0638
0000060c: JUMP
0000060d: JUMPDEST
0000060e: DUP3
0000060f: ADD
00000610: SWAP2
00000611: SWAP1
00000612: PUSH1 0x00
00000614: MSTORE
00000615: PUSH1 0x20
00000617: PUSH1 0x00
00000619: KECCAK256
0000061a: SWAP1
0000061b: JUMPDEST
0000061c: DUP2
0000061d: SLOAD
0000061e: DUP2
0000061f: MSTORE
00000620: SWAP1
00000621: PUSH1 0x01
00000623: ADD
00000624: SWAP1
00000625: PUSH1 0x20
00000627: ADD
00000628: DUP1
00000629: DUP4
0000062a: GT
0000062b: PUSH2 0x061b
0000062e: JUMPI
0000062f: DUP3
00000630: SWAP1
00000631: SUB
00000632: PUSH1 0x1f
00000634: AND
00000635: DUP3
00000636: ADD
00000637: SWAP2
00000638: JUMPDEST
00000639: POP
0000063a: POP
0000063b: SWAP2
0000063c: POP
0000063d: POP
0000063e: PUSH1 0x00
00000640: PUSH1 0x40
00000642: MLOAD
00000643: DUP1
00000644: DUP4
00000645: SUB
00000646: DUP2
00000647: DUP6
00000648: DUP8
00000649: PUSH2 0x8502
0000064c: GAS
0000064d: SUB
0000064e: CALL
0000064f: POP
00000650: POP
00000651: POP
00000652: PUSH1 0x00
00000654: DUP5
00000655: DUP2
00000656: MSTORE
00000657: PUSH2 0x0108
0000065a: PUSH1 0x20
0000065c: SWAP1
0000065d: DUP2
0000065e: MSTORE
0000065f: PUSH1 0x40
00000661: SWAP2
00000662: DUP3
00000663: SWAP1
00000664: KECCAK256
00000665: PUSH1 0x01
00000667: DUP1
00000668: DUP3
00000669: ADD
0000066a: SLOAD
0000066b: DUP3
0000066c: SLOAD
0000066d: DUP6
0000066e: MLOAD
0000066f: PUSH1 0x01
00000671: PUSH1 0xa0
00000673: PUSH1 0x02
00000675: EXP
00000676: SUB
00000677: CALLER
00000678: DUP2
00000679: DUP2
0000067a: AND
0000067b: DUP4
0000067c: MSTORE
0000067d: SWAP7
0000067e: DUP3
0000067f: ADD
00000680: DUP13
00000681: SWAP1
00000682: MSTORE
00000683: SWAP7
00000684: DUP2
00000685: ADD
00000686: DUP4
00000687: SWAP1
00000688: MSTORE
00000689: SWAP6
0000068a: AND
0000068b: PUSH1 0x60
0000068d: DUP7
0000068e: ADD
0000068f: DUP2
00000690: SWAP1
00000691: MSTORE
00000692: PUSH1 0xa0
00000694: PUSH1 0x80
00000696: DUP8
00000697: ADD
00000698: DUP2
00000699: DUP2
0000069a: MSTORE
0000069b: PUSH1 0x02
0000069d: SWAP6
0000069e: DUP7
0000069f: ADD
000006a0: DUP1
000006a1: SLOAD
000006a2: SWAP6
000006a3: DUP7
000006a4: AND
000006a5: ISZERO
000006a6: PUSH2 0x0100
000006a9: MUL
000006aa: PUSH1 0x00
000006ac: NOT
000006ad: ADD
000006ae: SWAP1
000006af: SWAP6
000006b0: AND
000006b1: SWAP6
000006b2: SWAP1
000006b3: SWAP6
000006b4: DIV
000006b5: SWAP1
000006b6: DUP8
000006b7: ADD
000006b8: DUP2
000006b9: SWAP1
000006ba: MSTORE
000006bb: PUSH32 0xe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a
000006dc: SWAP8
000006dd: POP
000006de: SWAP5
000006df: SWAP6
000006e0: DUP11
000006e1: SWAP6
000006e2: SWAP3
000006e3: SWAP5
000006e4: SWAP2
000006e5: SWAP4
000006e6: SWAP3
000006e7: SWAP1
000006e8: SWAP2
000006e9: SWAP1
000006ea: PUSH1 0xc0
000006ec: DUP4
000006ed: ADD
000006ee: SWAP1
000006ef: DUP5
000006f0: SWAP1
000006f1: DUP1
000006f2: ISZERO
000006f3: PUSH2 0x073d
000006f6: JUMPI
000006f7: DUP1
000006f8: PUSH1 0x1f
000006fa: LT
000006fb: PUSH2 0x0712
000006fe: JUMPI
000006ff: PUSH2 0x0100
00000702: DUP1
00000703: DUP4
00000704: SLOAD
00000705: DIV
00000706: MUL
00000707: DUP4
00000708: MSTORE
00000709: SWAP2
0000070a: PUSH1 0x20
0000070c: ADD
0000070d: SWAP2
0000070e: PUSH2 0x073d
00000711: JUMP
00000712: JUMPDEST
00000713: DUP3
00000714: ADD
00000715: SWAP2
00000716: SWAP1
00000717: PUSH1 0x00
00000719: MSTORE
0000071a: PUSH1 0x20
0000071c: PUSH1 0x00
0000071e: KECCAK256
0000071f: SWAP1
00000720: JUMPDEST
00000721: DUP2
00000722: SLOAD
00000723: DUP2
00000724: MSTORE
00000725: SWAP1
00000726: PUSH1 0x01
00000728: ADD
00000729: SWAP1
0000072a: PUSH1 0x20
0000072c: ADD
0000072d: DUP1
0000072e: DUP4
0000072f: GT
00000730: PUSH2 0x0720
00000733: JUMPI
00000734: DUP3
00000735: SWAP1
00000736: SUB
00000737: PUSH1 0x1f
00000739: AND
0000073a: DUP3
0000073b: ADD
0000073c: SWAP2
0000073d: JUMPDEST
0000073e: POP
0000073f: POP
00000740: SWAP7
00000741: POP
00000742: POP
00000743: POP
00000744: POP
00000745: POP
00000746: POP
00000747: POP
00000748: PUSH1 0x40
0000074a: MLOAD
0000074b: DUP1
0000074c: SWAP2
0000074d: SUB
0000074e: SWAP1
0000074f: LOG1
00000750: PUSH1 0x00
00000752: DUP4
00000753: DUP2
00000754: MSTORE
00000755: PUSH2 0x0108
00000758: PUSH1 0x20
0000075a: MSTORE
0000075b: PUSH1 0x40
0000075d: DUP2
0000075e: KECCAK256
0000075f: DUP1
00000760: SLOAD
00000761: PUSH1 0x01
00000763: PUSH1 0xa0
00000765: PUSH1 0x02
00000767: EXP
00000768: SUB
00000769: NOT
0000076a: AND
0000076b: DUP2
0000076c: SSTORE
0000076d: PUSH1 0x01
0000076f: DUP1
00000770: DUP3
00000771: ADD
00000772: DUP4
00000773: SWAP1
00000774: SSTORE
00000775: PUSH1 0x02
00000777: DUP1
00000778: DUP4
00000779: ADD
0000077a: DUP1
0000077b: SLOAD
0000077c: DUP6
0000077d: DUP3
0000077e: SSTORE
0000077f: SWAP4
00000780: SWAP5
00000781: SWAP4
00000782: SWAP1
00000783: SWAP3
00000784: DUP2
00000785: AND
00000786: ISZERO
00000787: PUSH2 0x0100
0000078a: MUL
0000078b: PUSH1 0x00
0000078d: NOT
0000078e: ADD
0000078f: AND
00000790: DIV
00000791: PUSH1 0x1f
00000793: DUP2
00000794: SWAP1
00000795: LT
00000796: PUSH2 0x079f
00000799: JUMPI
0000079a: POP
0000079b: PUSH2 0x07d1
0000079e: JUMP
0000079f: JUMPDEST
000007a0: PUSH1 0x1f
000007a2: ADD
000007a3: PUSH1 0x20
000007a5: SWAP1
000007a6: DIV
000007a7: SWAP1
000007a8: PUSH1 0x00
000007aa: MSTORE
000007ab: PUSH1 0x20
000007ad: PUSH1 0x00
000007af: KECCAK256
000007b0: SWAP1
000007b1: DUP2
000007b2: ADD
000007b3: SWAP1
000007b4: PUSH2 0x07d1
000007b7: SWAP2
000007b8: SWAP1
000007b9: JUMPDEST
000007ba: DUP1
000007bb: DUP3
000007bc: GT
000007bd: ISZERO
000007be: PUSH2 0x07cd
000007c1: JUMPI
000007c2: PUSH1 0x00
000007c4: DUP2
000007c5: SSTORE
000007c6: PUSH1 0x01
000007c8: ADD
000007c9: PUSH2 0x07b9
000007cc: JUMP
000007cd: JUMPDEST
000007ce: POP
000007cf: SWAP1
000007d0: JUMP
000007d1: JUMPDEST
000007d2: JUMPDEST
000007d3: POP
000007d4: POP
000007d5: POP
000007d6: PUSH1 0x01
000007d8: SWAP2
000007d9: POP
000007da: JUMPDEST
000007db: JUMPDEST
000007dc: JUMPDEST
000007dd: JUMPDEST
000007de: POP
000007df: SWAP2
000007e0: SWAP1
000007e1: POP
000007e2: JUMP
000007e3: JUMPDEST
000007e4: PUSH1 0x00
000007e6: CALLDATASIZE
000007e7: PUSH1 0x40
000007e9: MLOAD
000007ea: DUP1
000007eb: DUP4
000007ec: DUP4
000007ed: DUP1
000007ee: DUP3
000007ef: DUP5
000007f0: CALLDATACOPY
000007f1: DUP3
000007f2: ADD
000007f3: SWAP2
000007f4: POP
000007f5: POP
000007f6: SWAP3
000007f7: POP
000007f8: POP
000007f9: POP
000007fa: PUSH1 0x40
000007fc: MLOAD
000007fd: DUP1
000007fe: SWAP2
000007ff: SUB
00000800: SWAP1
00000801: KECCAK256
00000802: PUSH2 0x080a
00000805: DUP2
00000806: PUSH2 0x0d93
00000809: JUMP
0000080a: JUMPDEST
0000080b: ISZERO
0000080c: PUSH2 0x056b
0000080f: JUMPI
00000810: PUSH2 0x0105
00000813: DUP3
00000814: SWAP1
00000815: SSTORE
00000816: JUMPDEST
00000817: JUMPDEST
00000818: JUMPDEST
00000819: POP
0000081a: POP
0000081b: JUMP
0000081c: JUMPDEST
0000081d: PUSH1 0x00
0000081f: PUSH2 0x0827
00000822: CALLER
00000823: PUSH2 0x0415
00000826: JUMP
00000827: JUMPDEST
00000828: ISZERO
00000829: PUSH2 0x0aa8
0000082c: JUMPI
0000082d: PUSH2 0x0835
00000830: DUP5
00000831: PUSH2 0x1131
00000834: JUMP
00000835: JUMPDEST
00000836: ISZERO
00000837: PUSH2 0x08f3
0000083a: JUMPI
0000083b: PUSH32 0x92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004
0000085c: CALLER
0000085d: DUP6
0000085e: DUP8
0000085f: DUP7
00000860: DUP7
00000861: PUSH1 0x40
00000863: MLOAD
00000864: DUP1
00000865: DUP7
00000866: PUSH1 0x01
00000868: PUSH1 0xa0
0000086a: PUSH1 0x02
0000086c: EXP
0000086d: SUB
0000086e: AND
0000086f: DUP2
00000870: MSTORE
00000871: PUSH1 0x20
00000873: ADD
00000874: DUP6
00000875: DUP2
00000876: MSTORE
00000877: PUSH1 0x20
00000879: ADD
0000087a: DUP5
0000087b: PUSH1 0x01
0000087d: PUSH1 0xa0
0000087f: PUSH1 0x02
00000881: EXP
00000882: SUB
00000883: AND
00000884: DUP2
00000885: MSTORE
00000886: PUSH1 0x20
00000888: ADD
00000889: DUP1
0000088a: PUSH1 0x20
0000088c: ADD
0000088d: DUP3
0000088e: DUP2
0000088f: SUB
00000890: DUP3
00000891: MSTORE
00000892: DUP5
00000893: DUP5
00000894: DUP3
00000895: DUP2
00000896: DUP2
00000897: MSTORE
00000898: PUSH1 0x20
0000089a: ADD
0000089b: SWAP3
0000089c: POP
0000089d: DUP1
0000089e: DUP3
0000089f: DUP5
000008a0: CALLDATACOPY
000008a1: PUSH1 0x40
000008a3: MLOAD
000008a4: SWAP3
000008a5: ADD
000008a6: DUP3
000008a7: SWAP1
000008a8: SUB
000008a9: SWAP9
000008aa: POP
000008ab: SWAP1
000008ac: SWAP7
000008ad: POP
000008ae: POP
000008af: POP
000008b0: POP
000008b1: POP
000008b2: POP
000008b3: POP
000008b4: LOG1
000008b5: DUP5
000008b6: PUSH1 0x01
000008b8: PUSH1 0xa0
000008ba: PUSH1 0x02
000008bc: EXP
000008bd: SUB
000008be: AND
000008bf: DUP5
000008c0: DUP5
000008c1: DUP5
000008c2: PUSH1 0x40
000008c4: MLOAD
000008c5: DUP1
000008c6: DUP4
000008c7: DUP4
000008c8: DUP1
000008c9: DUP3
000008ca: DUP5
000008cb: CALLDATACOPY
000008cc: DUP3
000008cd: ADD
000008ce: SWAP2
000008cf: POP
000008d0: POP
000008d1: SWAP3
000008d2: POP
000008d3: POP
000008d4: POP
000008d5: PUSH1 0x00
000008d7: PUSH1 0x40
000008d9: MLOAD
000008da: DUP1
000008db: DUP4
000008dc: SUB
000008dd: DUP2
000008de: DUP6
000008df: DUP8
000008e0: PUSH2 0x8502
000008e3: GAS
000008e4: SUB
000008e5: CALL
000008e6: POP
000008e7: PUSH1 0x00
000008e9: SWAP4
000008ea: POP
000008eb: PUSH2 0x0aa8
000008ee: SWAP3
000008ef: POP
000008f0: POP
000008f1: POP
000008f2: JUMP
000008f3: JUMPDEST
000008f4: PUSH1 0x00
000008f6: CALLDATASIZE
000008f7: NUMBER
000008f8: PUSH1 0x40
000008fa: MLOAD
000008fb: DUP1
000008fc: DUP5
000008fd: DUP5
000008fe: DUP1
000008ff: DUP3
00000900: DUP5
00000901: CALLDATACOPY
00000902: DUP3
00000903: ADD
00000904: SWAP2
00000905: POP
00000906: POP
00000907: DUP3
00000908: DUP2
00000909: MSTORE
0000090a: PUSH1 0x20
0000090c: ADD
0000090d: SWAP4
0000090e: POP
0000090f: POP
00000910: POP
00000911: POP
00000912: PUSH1 0x40
00000914: MLOAD
00000915: DUP1
00000916: SWAP2
00000917: SUB
00000918: SWAP1
00000919: KECCAK256
0000091a: SWAP1
0000091b: POP
0000091c: PUSH2 0x0924
0000091f: DUP2
00000920: PUSH2 0x0577
00000923: JUMP
00000924: JUMPDEST
00000925: ISZERO
00000926: DUP1
00000927: ISZERO
00000928: PUSH2 0x0947
0000092b: JUMPI
0000092c: POP
0000092d: PUSH1 0x00
0000092f: DUP2
00000930: DUP2
00000931: MSTORE
00000932: PUSH2 0x0108
00000935: PUSH1 0x20
00000937: MSTORE
00000938: PUSH1 0x40
0000093a: SWAP1
0000093b: KECCAK256
0000093c: SLOAD
0000093d: PUSH1 0x01
0000093f: PUSH1 0xa0
00000941: PUSH1 0x02
00000943: EXP
00000944: SUB
00000945: AND
00000946: ISZERO
00000947: JUMPDEST
00000948: ISZERO
00000949: PUSH2 0x0aa8
0000094c: JUMPI
0000094d: PUSH1 0x00
0000094f: DUP2
00000950: DUP2
00000951: MSTORE
00000952: PUSH2 0x0108
00000955: PUSH1 0x20
00000957: SWAP1
00000958: DUP2
00000959: MSTORE
0000095a: PUSH1 0x40
0000095c: DUP3
0000095d: KECCAK256
0000095e: DUP1
0000095f: SLOAD
00000960: PUSH13 0x01000000000000000000000000
0000096e: DUP1
0000096f: DUP11
00000970: MUL
00000971: DIV
00000972: PUSH1 0x01
00000974: PUSH1 0xa0
00000976: PUSH1 0x02
00000978: EXP
00000979: SUB
0000097a: NOT
0000097b: SWAP1
0000097c: SWAP2
0000097d: AND
0000097e: OR
0000097f: DUP2
00000980: SSTORE
00000981: PUSH1 0x01
00000983: DUP1
00000984: DUP3
00000985: ADD
00000986: DUP9
00000987: SWAP1
00000988: SSTORE
00000989: PUSH1 0x02
0000098b: SWAP2
0000098c: DUP3
0000098d: ADD
0000098e: DUP1
0000098f: SLOAD
00000990: DUP2
00000991: DUP7
00000992: MSTORE
00000993: SWAP5
00000994: DUP5
00000995: SWAP1
00000996: KECCAK256
00000997: SWAP1
00000998: SWAP5
00000999: PUSH1 0x1f
0000099b: SWAP3
0000099c: DUP2
0000099d: AND
0000099e: ISZERO
0000099f: PUSH2 0x0100
000009a2: MUL
000009a3: PUSH1 0x00
000009a5: NOT
000009a6: ADD
000009a7: AND
000009a8: SWAP3
000009a9: SWAP1
000009aa: SWAP3
000009ab: DIV
000009ac: DUP2
000009ad: ADD
000009ae: SWAP3
000009af: SWAP1
000009b0: SWAP3
000009b1: DIV
000009b2: DUP2
000009b3: ADD
000009b4: SWAP2
000009b5: DUP6
000009b6: SWAP2
000009b7: SWAP1
000009b8: DUP8
000009b9: SWAP1
000009ba: DUP4
000009bb: SWAP1
000009bc: LT
000009bd: PUSH2 0x09d1
000009c0: JUMPI
000009c1: DUP3
000009c2: DUP1
000009c3: ADD
000009c4: PUSH1 0xff
000009c6: NOT
000009c7: DUP3
000009c8: CALLDATALOAD
000009c9: AND
000009ca: OR
000009cb: DUP6
000009cc: SSTORE
000009cd: PUSH2 0x09fe
000009d0: JUMP
000009d1: JUMPDEST
000009d2: DUP3
000009d3: DUP1
000009d4: ADD
000009d5: PUSH1 0x01
000009d7: ADD
000009d8: DUP6
000009d9: SSTORE
000009da: DUP3
000009db: ISZERO
000009dc: PUSH2 0x09fe
000009df: JUMPI
000009e0: SWAP2
000009e1: DUP3
000009e2: ADD
000009e3: JUMPDEST
000009e4: DUP3
000009e5: DUP2
000009e6: GT
000009e7: ISZERO
000009e8: PUSH2 0x09fe
000009eb: JUMPI
000009ec: DUP3
000009ed: CALLDATALOAD
000009ee: DUP3
000009ef: SSTORE
000009f0: SWAP2
000009f1: PUSH1 0x20
000009f3: ADD
000009f4: SWAP2
000009f5: SWAP1
000009f6: PUSH1 0x01
000009f8: ADD
000009f9: SWAP1
000009fa: PUSH2 0x09e3
000009fd: JUMP
000009fe: JUMPDEST
000009ff: JUMPDEST
00000a00: POP
00000a01: PUSH2 0x0a1f
00000a04: SWAP3
00000a05: SWAP2
00000a06: POP
00000a07: JUMPDEST
00000a08: DUP1
00000a09: DUP3
00000a0a: GT
00000a0b: ISZERO
00000a0c: PUSH2 0x07cd
00000a0f: JUMPI
00000a10: PUSH1 0x00
00000a12: DUP2
00000a13: SSTORE
00000a14: PUSH1 0x01
00000a16: ADD
00000a17: PUSH2 0x07b9
00000a1a: JUMP
00000a1b: JUMPDEST
00000a1c: POP
00000a1d: SWAP1
00000a1e: JUMP
00000a1f: JUMPDEST
00000a20: POP
00000a21: POP
00000a22: PUSH32 0x1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32
00000a43: DUP2
00000a44: CALLER
00000a45: DUP7
00000a46: DUP9
00000a47: DUP8
00000a48: DUP8
00000a49: PUSH1 0x40
00000a4b: MLOAD
00000a4c: DUP1
00000a4d: DUP8
00000a4e: PUSH1 0x00
00000a50: NOT
00000a51: AND
00000a52: DUP2
00000a53: MSTORE
00000a54: PUSH1 0x20
00000a56: ADD
00000a57: DUP7
00000a58: PUSH1 0x01
00000a5a: PUSH1 0xa0
00000a5c: PUSH1 0x02
00000a5e: EXP
00000a5f: SUB
00000a60: AND
00000a61: DUP2
00000a62: MSTORE
00000a63: PUSH1 0x20
00000a65: ADD
00000a66: DUP6
00000a67: DUP2
00000a68: MSTORE
00000a69: PUSH1 0x20
00000a6b: ADD
00000a6c: DUP5
00000a6d: PUSH1 0x01
00000a6f: PUSH1 0xa0
00000a71: PUSH1 0x02
00000a73: EXP
00000a74: SUB
00000a75: AND
00000a76: DUP2
00000a77: MSTORE
00000a78: PUSH1 0x20
00000a7a: ADD
00000a7b: DUP1
00000a7c: PUSH1 0x20
00000a7e: ADD
00000a7f: DUP3
00000a80: DUP2
00000a81: SUB
00000a82: DUP3
00000a83: MSTORE
00000a84: DUP5
00000a85: DUP5
00000a86: DUP3
00000a87: DUP2
00000a88: DUP2
00000a89: MSTORE
00000a8a: PUSH1 0x20
00000a8c: ADD
00000a8d: SWAP3
00000a8e: POP
00000a8f: DUP1
00000a90: DUP3
00000a91: DUP5
00000a92: CALLDATACOPY
00000a93: PUSH1 0x40
00000a95: MLOAD
00000a96: SWAP3
00000a97: ADD
00000a98: DUP3
00000a99: SWAP1
00000a9a: SUB
00000a9b: SWAP10
00000a9c: POP
00000a9d: SWAP1
00000a9e: SWAP8
00000a9f: POP
00000aa0: POP
00000aa1: POP
00000aa2: POP
00000aa3: POP
00000aa4: POP
00000aa5: POP
00000aa6: POP
00000aa7: LOG1
00000aa8: JUMPDEST
00000aa9: JUMPDEST
00000aaa: JUMPDEST
00000aab: JUMPDEST
00000aac: SWAP5
00000aad: SWAP4
00000aae: POP
00000aaf: POP
00000ab0: POP
00000ab1: POP
00000ab2: JUMP
00000ab3: JUMPDEST
00000ab4: PUSH1 0x01
00000ab6: PUSH1 0xa0
00000ab8: PUSH1 0x02
00000aba: EXP
00000abb: SUB
00000abc: CALLER
00000abd: AND
00000abe: PUSH1 0x00
00000ac0: SWAP1
00000ac1: DUP2
00000ac2: MSTORE
00000ac3: PUSH2 0x0102
00000ac6: PUSH1 0x20
00000ac8: MSTORE
00000ac9: PUSH1 0x40
00000acb: DUP2
00000acc: KECCAK256
00000acd: SLOAD
00000ace: SWAP1
00000acf: DUP1
00000ad0: DUP3
00000ad1: ISZERO
00000ad2: ISZERO
00000ad3: PUSH2 0x0adb
00000ad6: JUMPI
00000ad7: PUSH2 0x0b57
00000ada: JUMP
00000adb: JUMPDEST
00000adc: POP
00000add: POP
00000ade: PUSH1 0x00
00000ae0: DUP3
00000ae1: DUP2
00000ae2: MSTORE
00000ae3: PUSH2 0x0103
00000ae6: PUSH1 0x20
00000ae8: MSTORE
00000ae9: PUSH1 0x40
00000aeb: DUP2
00000aec: KECCAK256
00000aed: PUSH1 0x01
00000aef: DUP2
00000af0: ADD
00000af1: SLOAD
00000af2: PUSH1 0x02
00000af4: DUP5
00000af5: SWAP1
00000af6: EXP
00000af7: SWAP3
00000af8: SWAP1
00000af9: DUP4
00000afa: AND
00000afb: GT
00000afc: ISZERO
00000afd: PUSH2 0x0b57
00000b00: JUMPI
00000b01: DUP1
00000b02: SLOAD
00000b03: PUSH1 0x01
00000b05: SWAP1
00000b06: DUP2
00000b07: ADD
00000b08: DUP3
00000b09: SSTORE
00000b0a: DUP2
00000b0b: ADD
00000b0c: DUP1
00000b0d: SLOAD
00000b0e: DUP4
00000b0f: SWAP1
00000b10: SUB
00000b11: SWAP1
00000b12: SSTORE
00000b13: PUSH1 0x40
00000b15: DUP1
00000b16: MLOAD
00000b17: PUSH1 0x01
00000b19: PUSH1 0xa0
00000b1b: PUSH1 0x02
00000b1d: EXP
00000b1e: SUB
00000b1f: CALLER
00000b20: AND
00000b21: DUP2
00000b22: MSTORE
00000b23: PUSH1 0x20
00000b25: DUP2
00000b26: ADD
00000b27: DUP7
00000b28: SWAP1
00000b29: MSTORE
00000b2a: DUP2
00000b2b: MLOAD
00000b2c: PUSH32 0xc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b
00000b4d: SWAP3
00000b4e: SWAP2
00000b4f: DUP2
00000b50: SWAP1
00000b51: SUB
00000b52: SWAP1
00000b53: SWAP2
00000b54: ADD
00000b55: SWAP1
00000b56: LOG1
00000b57: JUMPDEST
00000b58: JUMPDEST
00000b59: POP
00000b5a: POP
00000b5b: POP
00000b5c: POP
00000b5d: JUMP
00000b5e: JUMPDEST
00000b5f: PUSH1 0x00
00000b61: CALLDATASIZE
00000b62: PUSH1 0x40
00000b64: MLOAD
00000b65: DUP1
00000b66: DUP4
00000b67: DUP4
00000b68: DUP1
00000b69: DUP3
00000b6a: DUP5
00000b6b: CALLDATACOPY
00000b6c: DUP3
00000b6d: ADD
00000b6e: SWAP2
00000b6f: POP
00000b70: POP
00000b71: SWAP3
00000b72: POP
00000b73: POP
00000b74: POP
00000b75: PUSH1 0x40
00000b77: MLOAD
00000b78: DUP1
00000b79: SWAP2
00000b7a: SUB
00000b7b: SWAP1
00000b7c: KECCAK256
00000b7d: PUSH2 0x0b85
00000b80: DUP2
00000b81: PUSH2 0x0d93
00000b84: JUMP
00000b85: JUMPDEST
00000b86: ISZERO
00000b87: PUSH2 0x056b
00000b8a: JUMPI
00000b8b: PUSH1 0x01
00000b8d: SLOAD
00000b8e: DUP3
00000b8f: GT
00000b90: ISZERO
00000b91: PUSH2 0x0b99
00000b94: JUMPI
00000b95: PUSH2 0x056b
00000b98: JUMP
00000b99: JUMPDEST
00000b9a: PUSH1 0x00
00000b9c: DUP3
00000b9d: SWAP1
00000b9e: SSTORE
00000b9f: PUSH2 0x0ba6
00000ba2: PUSH2 0x0f32
00000ba5: JUMP
00000ba6: JUMPDEST
00000ba7: PUSH1 0x40
00000ba9: DUP1
00000baa: MLOAD
00000bab: DUP4
00000bac: DUP2
00000bad: MSTORE
00000bae: SWAP1
00000baf: MLOAD
00000bb0: PUSH32 0xacbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da
00000bd1: SWAP2
00000bd2: DUP2
00000bd3: SWAP1
00000bd4: SUB
00000bd5: PUSH1 0x20
00000bd7: ADD
00000bd8: SWAP1
00000bd9: LOG1
00000bda: JUMPDEST
00000bdb: JUMPDEST
00000bdc: JUMPDEST
00000bdd: POP
00000bde: POP
00000bdf: JUMP
00000be0: JUMPDEST
00000be1: PUSH1 0x00
00000be3: DUP3
00000be4: DUP2
00000be5: MSTORE
00000be6: PUSH2 0x0103
00000be9: PUSH1 0x20
00000beb: SWAP1
00000bec: DUP2
00000bed: MSTORE
00000bee: PUSH1 0x40
00000bf0: DUP1
00000bf1: DUP4
00000bf2: KECCAK256
00000bf3: PUSH1 0x01
00000bf5: PUSH1 0xa0
00000bf7: PUSH1 0x02
00000bf9: EXP
00000bfa: SUB
00000bfb: DUP6
00000bfc: AND
00000bfd: DUP5
00000bfe: MSTORE
00000bff: PUSH2 0x0102
00000c02: SWAP1
00000c03: SWAP3
00000c04: MSTORE
00000c05: DUP3
00000c06: KECCAK256
00000c07: SLOAD
00000c08: DUP3
00000c09: DUP2
00000c0a: ISZERO
00000c0b: ISZERO
00000c0c: PUSH2 0x0c18
00000c0f: JUMPI
00000c10: PUSH1 0x00
00000c12: SWAP4
00000c13: POP
00000c14: PUSH2 0x0c2c
00000c17: JUMP
00000c18: JUMPDEST
00000c19: DUP2
00000c1a: PUSH1 0x02
00000c1c: EXP
00000c1d: SWAP1
00000c1e: POP
00000c1f: DUP1
00000c20: DUP4
00000c21: PUSH1 0x01
00000c23: ADD
00000c24: SLOAD
00000c25: AND
00000c26: PUSH1 0x00
00000c28: EQ
00000c29: ISZERO
00000c2a: SWAP4
00000c2b: POP
00000c2c: JUMPDEST
00000c2d: POP
00000c2e: POP
00000c2f: POP
00000c30: SWAP3
00000c31: SWAP2
00000c32: POP
00000c33: POP
00000c34: JUMP
00000c35: JUMPDEST
00000c36: PUSH1 0x00
00000c38: PUSH1 0x02
00000c3a: DUP3
00000c3b: PUSH1 0x01
00000c3d: ADD
00000c3e: PUSH2 0x0100
00000c41: DUP2
00000c42: LT
00000c43: ISZERO
00000c44: PUSH2 0x0000
00000c47: JUMPI
00000c48: ADD
00000c49: PUSH1 0x00
00000c4b: JUMPDEST
00000c4c: POP
00000c4d: SLOAD
00000c4e: SWAP1
00000c4f: POP
00000c50: JUMPDEST
00000c51: SWAP2
00000c52: SWAP1
00000c53: POP
00000c54: JUMP
00000c55: JUMPDEST
00000c56: PUSH1 0x00
00000c58: CALLDATASIZE
00000c59: PUSH1 0x40
00000c5b: MLOAD
00000c5c: DUP1
00000c5d: DUP4
00000c5e: DUP4
00000c5f: DUP1
00000c60: DUP3
00000c61: DUP5
00000c62: CALLDATACOPY
00000c63: DUP3
00000c64: ADD
00000c65: SWAP2
00000c66: POP
00000c67: POP
00000c68: SWAP3
00000c69: POP
00000c6a: POP
00000c6b: POP
00000c6c: PUSH1 0x40
00000c6e: MLOAD
00000c6f: DUP1
00000c70: SWAP2
00000c71: SUB
00000c72: SWAP1
00000c73: KECCAK256
00000c74: PUSH2 0x0c7c
00000c77: DUP2
00000c78: PUSH2 0x0d93
00000c7b: JUMP
00000c7c: JUMPDEST
00000c7d: ISZERO
00000c7e: PUSH2 0x056b
00000c81: JUMPI
00000c82: DUP2
00000c83: PUSH1 0x01
00000c85: PUSH1 0xa0
00000c87: PUSH1 0x02
00000c89: EXP
00000c8a: SUB
00000c8b: AND
00000c8c: SELFDESTRUCT
00000c8d: JUMPDEST
00000c8e: JUMPDEST
00000c8f: JUMPDEST
00000c90: POP
00000c91: POP
00000c92: JUMP
00000c93: JUMPDEST
00000c94: PUSH1 0x00
00000c96: PUSH1 0x00
00000c98: CALLDATASIZE
00000c99: PUSH1 0x40
00000c9b: MLOAD
00000c9c: DUP1
00000c9d: DUP4
00000c9e: DUP4
00000c9f: DUP1
00000ca0: DUP3
00000ca1: DUP5
00000ca2: CALLDATACOPY
00000ca3: DUP3
00000ca4: ADD
00000ca5: SWAP2
00000ca6: POP
00000ca7: POP
00000ca8: SWAP3
00000ca9: POP
00000caa: POP
00000cab: POP
00000cac: PUSH1 0x40
00000cae: MLOAD
00000caf: DUP1
00000cb0: SWAP2
00000cb1: SUB
00000cb2: SWAP1
00000cb3: KECCAK256
00000cb4: PUSH2 0x0cbc
00000cb7: DUP2
00000cb8: PUSH2 0x0d93
00000cbb: JUMP
00000cbc: JUMPDEST
00000cbd: ISZERO
00000cbe: PUSH2 0x0b57
00000cc1: JUMPI
00000cc2: PUSH2 0x0cca
00000cc5: DUP4
00000cc6: PUSH2 0x0415
00000cc9: JUMP
00000cca: JUMPDEST
00000ccb: ISZERO
00000ccc: PUSH2 0x0cd4
00000ccf: JUMPI
00000cd0: PUSH2 0x0b57
00000cd3: JUMP
00000cd4: JUMPDEST
00000cd5: PUSH1 0x01
00000cd7: PUSH1 0xa0
00000cd9: PUSH1 0x02
00000cdb: EXP
00000cdc: SUB
00000cdd: DUP5
00000cde: AND
00000cdf: PUSH1 0x00
00000ce1: SWAP1
00000ce2: DUP2
00000ce3: MSTORE
00000ce4: PUSH2 0x0102
00000ce7: PUSH1 0x20
00000ce9: MSTORE
00000cea: PUSH1 0x40
00000cec: SWAP1
00000ced: KECCAK256
00000cee: SLOAD
00000cef: SWAP2
00000cf0: POP
00000cf1: DUP2
00000cf2: ISZERO
00000cf3: ISZERO
00000cf4: PUSH2 0x0cfc
00000cf7: JUMPI
00000cf8: PUSH2 0x0b57
00000cfb: JUMP
00000cfc: JUMPDEST
00000cfd: PUSH2 0x0d04
00000d00: PUSH2 0x0f32
00000d03: JUMP
00000d04: JUMPDEST
00000d05: DUP3
00000d06: PUSH1 0x01
00000d08: PUSH1 0xa0
00000d0a: PUSH1 0x02
00000d0c: EXP
00000d0d: SUB
00000d0e: AND
00000d0f: PUSH1 0x02
00000d11: DUP4
00000d12: PUSH2 0x0100
00000d15: DUP2
00000d16: LT
00000d17: ISZERO
00000d18: PUSH2 0x0000
00000d1b: JUMPI
00000d1c: ADD
00000d1d: PUSH1 0x00
00000d1f: JUMPDEST
00000d20: POP
00000d21: SSTORE
00000d22: PUSH1 0x01
00000d24: PUSH1 0xa0
00000d26: PUSH1 0x02
00000d28: EXP
00000d29: SUB
00000d2a: DUP1
00000d2b: DUP6
00000d2c: AND
00000d2d: PUSH1 0x00
00000d2f: DUP2
00000d30: DUP2
00000d31: MSTORE
00000d32: PUSH2 0x0102
00000d35: PUSH1 0x20
00000d37: SWAP1
00000d38: DUP2
00000d39: MSTORE
00000d3a: PUSH1 0x40
00000d3c: DUP1
00000d3d: DUP4
00000d3e: KECCAK256
00000d3f: DUP4
00000d40: SWAP1
00000d41: SSTORE
00000d42: SWAP4
00000d43: DUP8
00000d44: AND
00000d45: DUP1
00000d46: DUP4
00000d47: MSTORE
00000d48: SWAP2
00000d49: DUP5
00000d4a: SWAP1
00000d4b: KECCAK256
00000d4c: DUP7
00000d4d: SWAP1
00000d4e: SSTORE
00000d4f: DUP4
00000d50: MLOAD
00000d51: SWAP3
00000d52: DUP4
00000d53: MSTORE
00000d54: DUP3
00000d55: ADD
00000d56: MSTORE
00000d57: DUP2
00000d58: MLOAD
00000d59: PUSH32 0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c
00000d7a: SWAP3
00000d7b: SWAP2
00000d7c: DUP2
00000d7d: SWAP1
00000d7e: SUB
00000d7f: SWAP1
00000d80: SWAP2
00000d81: ADD
00000d82: SWAP1
00000d83: LOG1
00000d84: JUMPDEST
00000d85: JUMPDEST
00000d86: JUMPDEST
00000d87: POP
00000d88: POP
00000d89: POP
00000d8a: POP
00000d8b: JUMP
00000d8c: JUMPDEST
00000d8d: PUSH2 0x0105
00000d90: SLOAD
00000d91: DUP2
00000d92: JUMP
00000d93: JUMPDEST
00000d94: PUSH1 0x01
00000d96: PUSH1 0xa0
00000d98: PUSH1 0x02
00000d9a: EXP
00000d9b: SUB
00000d9c: CALLER
00000d9d: AND
00000d9e: PUSH1 0x00
00000da0: SWAP1
00000da1: DUP2
00000da2: MSTORE
00000da3: PUSH2 0x0102
00000da6: PUSH1 0x20
00000da8: MSTORE
00000da9: PUSH1 0x40
00000dab: DUP2
00000dac: KECCAK256
00000dad: SLOAD
00000dae: DUP2
00000daf: DUP1
00000db0: DUP3
00000db1: ISZERO
00000db2: ISZERO
00000db3: PUSH2 0x0dbb
00000db6: JUMPI
00000db7: PUSH2 0x0f28
00000dba: JUMP
00000dbb: JUMPDEST
00000dbc: PUSH1 0x00
00000dbe: DUP6
00000dbf: DUP2
00000dc0: MSTORE
00000dc1: PUSH2 0x0103
00000dc4: PUSH1 0x20
00000dc6: MSTORE
00000dc7: PUSH1 0x40
00000dc9: SWAP1
00000dca: KECCAK256
00000dcb: DUP1
00000dcc: SLOAD
00000dcd: SWAP1
00000dce: SWAP3
00000dcf: POP
00000dd0: ISZERO
00000dd1: ISZERO
00000dd2: PUSH2 0x0e4f
00000dd5: JUMPI
00000dd6: PUSH1 0x00
00000dd8: DUP1
00000dd9: SLOAD
00000dda: DUP4
00000ddb: SSTORE
00000ddc: PUSH1 0x01
00000dde: DUP1
00000ddf: DUP5
00000de0: ADD
00000de1: SWAP2
00000de2: SWAP1
00000de3: SWAP2
00000de4: SSTORE
00000de5: PUSH2 0x0104
00000de8: DUP1
00000de9: SLOAD
00000dea: SWAP2
00000deb: DUP3
00000dec: ADD
00000ded: DUP1
00000dee: DUP3
00000def: SSTORE
00000df0: DUP3
00000df1: DUP1
00000df2: ISZERO
00000df3: DUP3
00000df4: SWAP1
00000df5: GT
00000df6: PUSH2 0x0e24
00000df9: JUMPI
00000dfa: PUSH1 0x00
00000dfc: DUP4
00000dfd: DUP2
00000dfe: MSTORE
00000dff: PUSH1 0x20
00000e01: SWAP1
00000e02: KECCAK256
00000e03: PUSH2 0x0e24
00000e06: SWAP2
00000e07: DUP2
00000e08: ADD
00000e09: SWAP1
00000e0a: DUP4
00000e0b: ADD
00000e0c: JUMPDEST
00000e0d: DUP1
00000e0e: DUP3
00000e0f: GT
00000e10: ISZERO
00000e11: PUSH2 0x07cd
00000e14: JUMPI
00000e15: PUSH1 0x00
00000e17: DUP2
00000e18: SSTORE
00000e19: PUSH1 0x01
00000e1b: ADD
00000e1c: PUSH2 0x07b9
00000e1f: JUMP
00000e20: JUMPDEST
00000e21: POP
00000e22: SWAP1
00000e23: JUMP
00000e24: JUMPDEST
00000e25: JUMPDEST
00000e26: POP
00000e27: POP
00000e28: POP
00000e29: PUSH1 0x02
00000e2b: DUP4
00000e2c: ADD
00000e2d: DUP2
00000e2e: SWAP1
00000e2f: SSTORE
00000e30: PUSH2 0x0104
00000e33: DUP1
00000e34: SLOAD
00000e35: DUP8
00000e36: SWAP3
00000e37: SWAP1
00000e38: DUP2
00000e39: LT
00000e3a: ISZERO
00000e3b: PUSH2 0x0000
00000e3e: JUMPI
00000e3f: SWAP1
00000e40: PUSH1 0x00
00000e42: MSTORE
00000e43: PUSH1 0x20
00000e45: PUSH1 0x00
00000e47: KECCAK256
00000e48: SWAP1
00000e49: ADD
00000e4a: PUSH1 0x00
00000e4c: JUMPDEST
00000e4d: POP
00000e4e: SSTORE
00000e4f: JUMPDEST
00000e50: DUP3
00000e51: PUSH1 0x02
00000e53: EXP
00000e54: SWAP1
00000e55: POP
00000e56: DUP1
00000e57: DUP3
00000e58: PUSH1 0x01
00000e5a: ADD
00000e5b: SLOAD
00000e5c: AND
00000e5d: PUSH1 0x00
00000e5f: EQ
00000e60: ISZERO
00000e61: PUSH2 0x0f28
00000e64: JUMPI
00000e65: PUSH1 0x40
00000e67: DUP1
00000e68: MLOAD
00000e69: PUSH1 0x01
00000e6b: PUSH1 0xa0
00000e6d: PUSH1 0x02
00000e6f: EXP
00000e70: SUB
00000e71: CALLER
00000e72: AND
00000e73: DUP2
00000e74: MSTORE
00000e75: PUSH1 0x20
00000e77: DUP2
00000e78: ADD
00000e79: DUP8
00000e7a: SWAP1
00000e7b: MSTORE
00000e7c: DUP2
00000e7d: MLOAD
00000e7e: PUSH32 0xe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda
00000e9f: SWAP3
00000ea0: SWAP2
00000ea1: DUP2
00000ea2: SWAP1
00000ea3: SUB
00000ea4: SWAP1
00000ea5: SWAP2
00000ea6: ADD
00000ea7: SWAP1
00000ea8: LOG1
00000ea9: DUP2
00000eaa: SLOAD
00000eab: PUSH1 0x01
00000ead: SWAP1
00000eae: GT
00000eaf: PUSH2 0x0f15
00000eb2: JUMPI
00000eb3: PUSH1 0x00
00000eb5: DUP6
00000eb6: DUP2
00000eb7: MSTORE
00000eb8: PUSH2 0x0103
00000ebb: PUSH1 0x20
00000ebd: MSTORE
00000ebe: PUSH1 0x40
00000ec0: SWAP1
00000ec1: KECCAK256
00000ec2: PUSH1 0x02
00000ec4: ADD
00000ec5: SLOAD
00000ec6: PUSH2 0x0104
00000ec9: DUP1
00000eca: SLOAD
00000ecb: SWAP1
00000ecc: SWAP2
00000ecd: SWAP1
00000ece: DUP2
00000ecf: LT
00000ed0: ISZERO
00000ed1: PUSH2 0x0000
00000ed4: JUMPI
00000ed5: SWAP1
00000ed6: PUSH1 0x00
00000ed8: MSTORE
00000ed9: PUSH1 0x20
00000edb: PUSH1 0x00
00000edd: KECCAK256
00000ede: SWAP1
00000edf: ADD
00000ee0: PUSH1 0x00
00000ee2: JUMPDEST
00000ee3: POP
00000ee4: PUSH1 0x00
00000ee6: SWAP1
00000ee7: DUP2
00000ee8: SWAP1
00000ee9: SSTORE
00000eea: DUP6
00000eeb: DUP2
00000eec: MSTORE
00000eed: PUSH2 0x0103
00000ef0: PUSH1 0x20
00000ef2: MSTORE
00000ef3: PUSH1 0x40
00000ef5: DUP2
00000ef6: KECCAK256
00000ef7: DUP2
00000ef8: DUP2
00000ef9: SSTORE
00000efa: PUSH1 0x01
00000efc: DUP1
00000efd: DUP3
00000efe: ADD
00000eff: DUP4
00000f00: SWAP1
00000f01: SSTORE
00000f02: PUSH1 0x02
00000f04: SWAP1
00000f05: SWAP2
00000f06: ADD
00000f07: SWAP2
00000f08: SWAP1
00000f09: SWAP2
00000f0a: SSTORE
00000f0b: SWAP4
00000f0c: POP
00000f0d: PUSH2 0x0f28
00000f10: JUMP
00000f11: PUSH2 0x0f28
00000f14: JUMP
00000f15: JUMPDEST
00000f16: DUP2
00000f17: SLOAD
00000f18: PUSH1 0x00
00000f1a: NOT
00000f1b: ADD
00000f1c: DUP3
00000f1d: SSTORE
00000f1e: PUSH1 0x01
00000f20: DUP3
00000f21: ADD
00000f22: DUP1
00000f23: SLOAD
00000f24: DUP3
00000f25: OR
00000f26: SWAP1
00000f27: SSTORE
00000f28: JUMPDEST
00000f29: JUMPDEST
00000f2a: JUMPDEST
00000f2b: POP
00000f2c: POP
00000f2d: POP
00000f2e: SWAP2
00000f2f: SWAP1
00000f30: POP
00000f31: JUMP
00000f32: JUMPDEST
00000f33: PUSH2 0x0104
00000f36: SLOAD
00000f37: PUSH1 0x00
00000f39: JUMPDEST
00000f3a: DUP2
00000f3b: DUP2
00000f3c: LT
00000f3d: ISZERO
00000f3e: PUSH2 0x0ff5
00000f41: JUMPI
00000f42: PUSH2 0x0108
00000f45: PUSH1 0x00
00000f47: PUSH2 0x0104
00000f4a: DUP4
00000f4b: DUP2
00000f4c: SLOAD
00000f4d: DUP2
00000f4e: LT
00000f4f: ISZERO
00000f50: PUSH2 0x0000
00000f53: JUMPI
00000f54: SWAP1
00000f55: PUSH1 0x00
00000f57: MSTORE
00000f58: PUSH1 0x20
00000f5a: PUSH1 0x00
00000f5c: KECCAK256
00000f5d: SWAP1
00000f5e: ADD
00000f5f: PUSH1 0x00
00000f61: JUMPDEST
00000f62: POP
00000f63: SLOAD
00000f64: DUP2
00000f65: MSTORE
00000f66: PUSH1 0x20
00000f68: DUP2
00000f69: ADD
00000f6a: SWAP2
00000f6b: SWAP1
00000f6c: SWAP2
00000f6d: MSTORE
00000f6e: PUSH1 0x40
00000f70: ADD
00000f71: PUSH1 0x00
00000f73: SWAP1
00000f74: DUP2
00000f75: KECCAK256
00000f76: DUP1
00000f77: SLOAD
00000f78: PUSH1 0x01
00000f7a: PUSH1 0xa0
00000f7c: PUSH1 0x02
00000f7e: EXP
00000f7f: SUB
00000f80: NOT
00000f81: AND
00000f82: DUP2
00000f83: SSTORE
00000f84: PUSH1 0x01
00000f86: DUP1
00000f87: DUP3
00000f88: ADD
00000f89: DUP4
00000f8a: SWAP1
00000f8b: SSTORE
00000f8c: PUSH1 0x02
00000f8e: DUP1
00000f8f: DUP4
00000f90: ADD
00000f91: DUP1
00000f92: SLOAD
00000f93: DUP6
00000f94: DUP3
00000f95: SSTORE
00000f96: SWAP4
00000f97: SWAP5
00000f98: SWAP4
00000f99: SWAP1
00000f9a: SWAP3
00000f9b: DUP2
00000f9c: AND
00000f9d: ISZERO
00000f9e: PUSH2 0x0100
00000fa1: MUL
00000fa2: PUSH1 0x00
00000fa4: NOT
00000fa5: ADD
00000fa6: AND
00000fa7: DIV
00000fa8: PUSH1 0x1f
00000faa: DUP2
00000fab: SWAP1
00000fac: LT
00000fad: PUSH2 0x0fb6
00000fb0: JUMPI
00000fb1: POP
00000fb2: PUSH2 0x0fe8
00000fb5: JUMP
00000fb6: JUMPDEST
00000fb7: PUSH1 0x1f
00000fb9: ADD
00000fba: PUSH1 0x20
00000fbc: SWAP1
00000fbd: DIV
00000fbe: SWAP1
00000fbf: PUSH1 0x00
00000fc1: MSTORE
00000fc2: PUSH1 0x20
00000fc4: PUSH1 0x00
00000fc6: KECCAK256
00000fc7: SWAP1
00000fc8: DUP2
00000fc9: ADD
00000fca: SWAP1
00000fcb: PUSH2 0x0fe8
00000fce: SWAP2
00000fcf: SWAP1
00000fd0: JUMPDEST
00000fd1: DUP1
00000fd2: DUP3
00000fd3: GT
00000fd4: ISZERO
00000fd5: PUSH2 0x07cd
00000fd8: JUMPI
00000fd9: PUSH1 0x00
00000fdb: DUP2
00000fdc: SSTORE
00000fdd: PUSH1 0x01
00000fdf: ADD
00000fe0: PUSH2 0x07b9
00000fe3: JUMP
00000fe4: JUMPDEST
00000fe5: POP
00000fe6: SWAP1
00000fe7: JUMP
00000fe8: JUMPDEST
00000fe9: JUMPDEST
00000fea: POP
00000feb: POP
00000fec: POP
00000fed: JUMPDEST
00000fee: PUSH1 0x01
00000ff0: ADD
00000ff1: PUSH2 0x0f39
00000ff4: JUMP
00000ff5: JUMPDEST
00000ff6: PUSH2 0x056b
00000ff9: PUSH2 0x11a4
00000ffc: JUMP
00000ffd: JUMPDEST
00000ffe: JUMPDEST
00000fff: POP
00001000: POP
00001001: JUMP
00001002: JUMPDEST
00001003: PUSH1 0x01
00001005: JUMPDEST
00001006: PUSH1 0x01
00001008: SLOAD
00001009: DUP2
0000100a: LT
0000100b: ISZERO
0000100c: PUSH2 0x0476
0000100f: JUMPI
00001010: JUMPDEST
00001011: PUSH1 0x01
00001013: SLOAD
00001014: DUP2
00001015: LT
00001016: DUP1
00001017: ISZERO
00001018: PUSH2 0x1032
0000101b: JUMPI
0000101c: POP
0000101d: PUSH1 0x02
0000101f: DUP2
00001020: PUSH2 0x0100
00001023: DUP2
00001024: LT
00001025: ISZERO
00001026: PUSH2 0x0000
00001029: JUMPI
0000102a: ADD
0000102b: PUSH1 0x00
0000102d: JUMPDEST
0000102e: POP
0000102f: SLOAD
00001030: ISZERO
00001031: ISZERO
00001032: JUMPDEST
00001033: ISZERO
00001034: PUSH2 0x103f
00001037: JUMPI
00001038: PUSH1 0x01
0000103a: ADD
0000103b: PUSH2 0x1010
0000103e: JUMP
0000103f: JUMPDEST
00001040: JUMPDEST
00001041: PUSH1 0x01
00001043: PUSH1 0x01
00001045: SLOAD
00001046: GT
00001047: DUP1
00001048: ISZERO
00001049: PUSH2 0x1064
0000104c: JUMPI
0000104d: POP
0000104e: PUSH1 0x02
00001050: PUSH1 0x01
00001052: SLOAD
00001053: PUSH2 0x0100
00001056: DUP2
00001057: LT
00001058: ISZERO
00001059: PUSH2 0x0000
0000105c: JUMPI
0000105d: ADD
0000105e: PUSH1 0x00
00001060: JUMPDEST
00001061: POP
00001062: SLOAD
00001063: ISZERO
00001064: JUMPDEST
00001065: ISZERO
00001066: PUSH2 0x1078
00001069: JUMPI
0000106a: PUSH1 0x01
0000106c: DUP1
0000106d: SLOAD
0000106e: PUSH1 0x00
00001070: NOT
00001071: ADD
00001072: SWAP1
00001073: SSTORE
00001074: PUSH2 0x1040
00001077: JUMP
00001078: JUMPDEST
00001079: PUSH1 0x01
0000107b: SLOAD
0000107c: DUP2
0000107d: LT
0000107e: DUP1
0000107f: ISZERO
00001080: PUSH2 0x109c
00001083: JUMPI
00001084: POP
00001085: PUSH1 0x02
00001087: PUSH1 0x01
00001089: SLOAD
0000108a: PUSH2 0x0100
0000108d: DUP2
0000108e: LT
0000108f: ISZERO
00001090: PUSH2 0x0000
00001093: JUMPI
00001094: ADD
00001095: PUSH1 0x00
00001097: JUMPDEST
00001098: POP
00001099: SLOAD
0000109a: ISZERO
0000109b: ISZERO
0000109c: JUMPDEST
0000109d: DUP1
0000109e: ISZERO
0000109f: PUSH2 0x10b8
000010a2: JUMPI
000010a3: POP
000010a4: PUSH1 0x02
000010a6: DUP2
000010a7: PUSH2 0x0100
000010aa: DUP2
000010ab: LT
000010ac: ISZERO
000010ad: PUSH2 0x0000
000010b0: JUMPI
000010b1: ADD
000010b2: PUSH1 0x00
000010b4: JUMPDEST
000010b5: POP
000010b6: SLOAD
000010b7: ISZERO
000010b8: JUMPDEST
000010b9: ISZERO
000010ba: PUSH2 0x1128
000010bd: JUMPI
000010be: PUSH1 0x02
000010c0: PUSH1 0x01
000010c2: SLOAD
000010c3: PUSH2 0x0100
000010c6: DUP2
000010c7: LT
000010c8: ISZERO
000010c9: PUSH2 0x0000
000010cc: JUMPI
000010cd: ADD
000010ce: PUSH1 0x00
000010d0: JUMPDEST
000010d1: POP
000010d2: SLOAD
000010d3: PUSH1 0x02
000010d5: DUP3
000010d6: PUSH2 0x0100
000010d9: DUP2
000010da: LT
000010db: ISZERO
000010dc: PUSH2 0x0000
000010df: JUMPI
000010e0: ADD
000010e1: PUSH1 0x00
000010e3: JUMPDEST
000010e4: POP
000010e5: SSTORE
000010e6: DUP1
000010e7: PUSH2 0x0102
000010ea: PUSH1 0x00
000010ec: PUSH1 0x02
000010ee: DUP4
000010ef: PUSH2 0x0100
000010f2: DUP2
000010f3: LT
000010f4: ISZERO
000010f5: PUSH2 0x0000
000010f8: JUMPI
000010f9: ADD
000010fa: PUSH1 0x00
000010fc: JUMPDEST
000010fd: POP
000010fe: SLOAD
000010ff: DUP2
00001100: MSTORE
00001101: PUSH1 0x20
00001103: ADD
00001104: SWAP1
00001105: DUP2
00001106: MSTORE
00001107: PUSH1 0x20
00001109: ADD
0000110a: PUSH1 0x00
0000110c: KECCAK256
0000110d: DUP2
0000110e: SWAP1
0000110f: SSTORE
00001110: POP
00001111: PUSH1 0x00
00001113: PUSH1 0x02
00001115: PUSH1 0x01
00001117: SLOAD
00001118: PUSH2 0x0100
0000111b: DUP2
0000111c: LT
0000111d: ISZERO
0000111e: PUSH2 0x0000
00001121: JUMPI
00001122: ADD
00001123: PUSH1 0x00
00001125: JUMPDEST
00001126: POP
00001127: SSTORE
00001128: JUMPDEST
00001129: PUSH2 0x1005
0000112c: JUMP
0000112d: JUMPDEST
0000112e: JUMPDEST
0000112f: POP
00001130: JUMP
00001131: JUMPDEST
00001132: PUSH1 0x00
00001134: PUSH2 0x113c
00001137: CALLER
00001138: PUSH2 0x0415
0000113b: JUMP
0000113c: JUMPDEST
0000113d: ISZERO
0000113e: PUSH2 0x0431
00001141: JUMPI
00001142: PUSH2 0x0107
00001145: SLOAD
00001146: PUSH2 0x114d
00001149: PUSH2 0x1278
0000114c: JUMP
0000114d: JUMPDEST
0000114e: GT
0000114f: ISZERO
00001150: PUSH2 0x1166
00001153: JUMPI
00001154: PUSH1 0x00
00001156: PUSH2 0x0106
00001159: SSTORE
0000115a: PUSH2 0x1161
0000115d: PUSH2 0x1278
00001160: JUMP
00001161: JUMPDEST
00001162: PUSH2 0x0107
00001165: SSTORE
00001166: JUMPDEST
00001167: PUSH2 0x0106
0000116a: SLOAD
0000116b: DUP3
0000116c: DUP2
0000116d: ADD
0000116e: LT
0000116f: DUP1
00001170: ISZERO
00001171: SWAP1
00001172: PUSH2 0x1183
00001175: JUMPI
00001176: POP
00001177: PUSH2 0x0105
0000117a: SLOAD
0000117b: DUP3
0000117c: PUSH2 0x0106
0000117f: SLOAD
00001180: ADD
00001181: GT
00001182: ISZERO
00001183: JUMPDEST
00001184: ISZERO
00001185: PUSH2 0x1199
00001188: JUMPI
00001189: POP
0000118a: PUSH2 0x0106
0000118d: DUP1
0000118e: SLOAD
0000118f: DUP3
00001190: ADD
00001191: SWAP1
00001192: SSTORE
00001193: PUSH1 0x01
00001195: PUSH2 0x0431
00001198: JUMP
00001199: JUMPDEST
0000119a: POP
0000119b: PUSH1 0x00
0000119d: JUMPDEST
0000119e: JUMPDEST
0000119f: JUMPDEST
000011a0: SWAP2
000011a1: SWAP1
000011a2: POP
000011a3: JUMP
000011a4: JUMPDEST
000011a5: PUSH2 0x0104
000011a8: SLOAD
000011a9: PUSH1 0x00
000011ab: JUMPDEST
000011ac: DUP2
000011ad: DUP2
000011ae: LT
000011af: ISZERO
000011b0: PUSH2 0x1221
000011b3: JUMPI
000011b4: PUSH2 0x0104
000011b7: DUP2
000011b8: DUP2
000011b9: SLOAD
000011ba: DUP2
000011bb: LT
000011bc: ISZERO
000011bd: PUSH2 0x0000
000011c0: JUMPI
000011c1: SWAP1
000011c2: PUSH1 0x00
000011c4: MSTORE
000011c5: PUSH1 0x20
000011c7: PUSH1 0x00
000011c9: KECCAK256
000011ca: SWAP1
000011cb: ADD
000011cc: PUSH1 0x00
000011ce: JUMPDEST
000011cf: POP
000011d0: SLOAD
000011d1: ISZERO
000011d2: PUSH2 0x1218
000011d5: JUMPI
000011d6: PUSH2 0x0103
000011d9: PUSH1 0x00
000011db: PUSH2 0x0104
000011de: DUP4
000011df: DUP2
000011e0: SLOAD
000011e1: DUP2
000011e2: LT
000011e3: ISZERO
000011e4: PUSH2 0x0000
000011e7: JUMPI
000011e8: SWAP1
000011e9: PUSH1 0x00
000011eb: MSTORE
000011ec: PUSH1 0x20
000011ee: PUSH1 0x00
000011f0: KECCAK256
000011f1: SWAP1
000011f2: ADD
000011f3: PUSH1 0x00
000011f5: JUMPDEST
000011f6: POP
000011f7: SLOAD
000011f8: DUP2
000011f9: MSTORE
000011fa: PUSH1 0x20
000011fc: DUP2
000011fd: ADD
000011fe: SWAP2
000011ff: SWAP1
00001200: SWAP2
00001201: MSTORE
00001202: PUSH1 0x40
00001204: ADD
00001205: PUSH1 0x00
00001207: SWAP1
00001208: DUP2
00001209: KECCAK256
0000120a: DUP2
0000120b: DUP2
0000120c: SSTORE
0000120d: PUSH1 0x01
0000120f: DUP2
00001210: ADD
00001211: DUP3
00001212: SWAP1
00001213: SSTORE
00001214: PUSH1 0x02
00001216: ADD
00001217: SSTORE
00001218: JUMPDEST
00001219: JUMPDEST
0000121a: PUSH1 0x01
0000121c: ADD
0000121d: PUSH2 0x11ab
00001220: JUMP
00001221: JUMPDEST
00001222: PUSH2 0x0104
00001225: DUP1
00001226: SLOAD
00001227: PUSH1 0x00
00001229: DUP1
0000122a: DUP4
0000122b: SSTORE
0000122c: SWAP2
0000122d: SWAP1
0000122e: SWAP2
0000122f: MSTORE
00001230: PUSH2 0x040e
00001233: SWAP1
00001234: PUSH32 0x4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe
00001255: SWAP1
00001256: DUP2
00001257: ADD
00001258: SWAP1
00001259: JUMPDEST
0000125a: DUP1
0000125b: DUP3
0000125c: GT
0000125d: ISZERO
0000125e: PUSH2 0x07cd
00001261: JUMPI
00001262: PUSH1 0x00
00001264: DUP2
00001265: SSTORE
00001266: PUSH1 0x01
00001268: ADD
00001269: PUSH2 0x07b9
0000126c: JUMP
0000126d: JUMPDEST
0000126e: POP
0000126f: SWAP1
00001270: JUMP
00001271: JUMPDEST
00001272: JUMPDEST
00001273: POP
00001274: JUMPDEST
00001275: POP
00001276: POP
00001277: JUMP
00001278: JUMPDEST
00001279: PUSH3 0x015180
0000127d: TIMESTAMP
0000127e: DIV
0000127f: JUMPDEST
00001280: SWAP1
00001281: JUMP

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other cast SELFDESTRUCT present 85 no
view
evidence_json
{
    "notes": "selfdestruct can remove contract code and send funds; review reachability",
    "selfdestruct_count": 1
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xd31bd398a7d639fd944f4d94f90b134ab486fd64757898374a6821a82eb82f10
call_targets: 0x0c2665b200de022b98bf77492eb1dbea99c80e89
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xd31bd398a7d639fd944f4d94f90b134ab486fd64757898374a6821a82eb82f10",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0c2665b200de022b98bf77492eb1dbea99c80e89"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x173825d9",
            "selector": "0x173825d9",
            "calldata_variants": [
                "0x173825d9",
                "0x173825d90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2f54bf6e",
            "selector": "0x2f54bf6e",
            "calldata_variants": [
                "0x2f54bf6e",
                "0x2f54bf6e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4123cb6b",
            "selector": "0x4123cb6b",
            "calldata_variants": [
                "0x4123cb6b",
                "0x4123cb6b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x52375093",
            "selector": "0x52375093",
            "calldata_variants": [
                "0x52375093",
                "0x523750930000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5c52c2f5",
            "selector": "0x5c52c2f5",
            "calldata_variants": [
                "0x5c52c2f5",
                "0x5c52c2f50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x659010e7",
            "selector": "0x659010e7",
            "calldata_variants": [
                "0x659010e7",
                "0x659010e70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7065cb48",
            "selector": "0x7065cb48",
            "calldata_variants": [
                "0x7065cb48",
                "0x7065cb480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x746c9171",
            "selector": "0x746c9171",
            "calldata_variants": [
                "0x746c9171",
                "0x746c91710000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1614,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2277,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xd31bd398a7d639fd944f4d94f90b134ab486fd64757898374a6821a82eb82f10
call_targets: 0x0c2665b200de022b98bf77492eb1dbea99c80e89
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xd31bd398a7d639fd944f4d94f90b134ab486fd64757898374a6821a82eb82f10",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0c2665b200de022b98bf77492eb1dbea99c80e89"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x173825d9",
            "selector": "0x173825d9",
            "calldata_variants": [
                "0x173825d9",
                "0x173825d90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2f54bf6e",
            "selector": "0x2f54bf6e",
            "calldata_variants": [
                "0x2f54bf6e",
                "0x2f54bf6e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4123cb6b",
            "selector": "0x4123cb6b",
            "calldata_variants": [
                "0x4123cb6b",
                "0x4123cb6b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x52375093",
            "selector": "0x52375093",
            "calldata_variants": [
                "0x52375093",
                "0x523750930000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5c52c2f5",
            "selector": "0x5c52c2f5",
            "calldata_variants": [
                "0x5c52c2f5",
                "0x5c52c2f50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x659010e7",
            "selector": "0x659010e7",
            "calldata_variants": [
                "0x659010e7",
                "0x659010e70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7065cb48",
            "selector": "0x7065cb48",
            "calldata_variants": [
                "0x7065cb48",
                "0x7065cb480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x746c9171",
            "selector": "0x746c9171",
            "calldata_variants": [
                "0x746c9171",
                "0x746c91710000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1614,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2277,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}
high other detector SELFDESTRUCT reachable 65 no no
view
trace_id: 0x22d77ec735b1fcfbd826ee8a25c0671a58fdeb6ae14ab273bf6fceec519dca80
validation_json
{
    "sink": "SELFDESTRUCT",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x22d77ec735b1fcfbd826ee8a25c0671a58fdeb6ae14ab273bf6fceec519dca80",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x173825d9",
            "selector": "0x173825d9",
            "calldata_variants": [
                "0x173825d9",
                "0x173825d90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2f54bf6e",
            "selector": "0x2f54bf6e",
            "calldata_variants": [
                "0x2f54bf6e",
                "0x2f54bf6e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4123cb6b",
            "selector": "0x4123cb6b",
            "calldata_variants": [
                "0x4123cb6b",
                "0x4123cb6b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x52375093",
            "selector": "0x52375093",
            "calldata_variants": [
                "0x52375093",
                "0x523750930000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5c52c2f5",
            "selector": "0x5c52c2f5",
            "calldata_variants": [
                "0x5c52c2f5",
                "0x5c52c2f50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x659010e7",
            "selector": "0x659010e7",
            "calldata_variants": [
                "0x659010e7",
                "0x659010e70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7065cb48",
            "selector": "0x7065cb48",
            "calldata_variants": [
                "0x7065cb48",
                "0x7065cb480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x746c9171",
            "selector": "0x746c9171",
            "calldata_variants": [
                "0x746c9171",
                "0x746c91710000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [],
    "selfdestruct_count": 1
}
low other codex Unchecked low-level call results can desync accounting and clear pending txs 65 no
view
evidence_json
{
    "evidence": "`_to.call.value(_value)(_data);` and `m_txs[_h].to.call.value(m_txs[_h].value)(m_txs[_h].data);` are invoked without checking the return value; state changes (daily spend update or `m_txs` deletion) proceed regardless of call success.",
    "locations": [
        "contracts/Contract.sol:346",
        "contracts/Contract.sol:366"
    ],
    "recommendation": "Check the return value of low-level calls and revert on failure, or only delete `m_txs[_h]` after a successful call. In Solidity 0.4.x, use `if(!_to.call.value(_value)(_data)) throw;` (or equivalent) to ensure accounting and pending state only update on success.",
    "exploit_scenario": "A recipient contract that reverts can make `execute`/`confirm` treat a failed call as successful. In the daily-limit path, `_value` is counted as spent even though no funds were transferred, blocking further spending for the day. In the multisig path, the pending transaction is deleted after a failed call, forcing owners to recreate and re-approve the transaction."
}