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

Analysis Run

00827adf-489d-4605-a887-6e6ea5b81451

failed
Chain ID
1
Address
Block Number
Created
Wed, Dec 24, 2025 12:49 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
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Unprotected initializer allows arbitrary subcontract replacement and delegatecall execution
crit 0 high 0 proxy context implementation known
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
30147 report.consolidate complete 1 / 1 3 months ago
93481 artifact.fetch failed 1 / 3 1 week ago
93482 tool.cast_disasm complete 1 / 3 1 week ago
93483 analysis.bundle complete 1 / 3 1 week ago
93484 capability.graph complete 1 / 3 1 week ago
93485 detector.run complete 1 / 3 1 week ago
93486 validation.fork complete 1 / 3 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: yes
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
Public initializer can be called by anyone to replace subcontracts and/or execute arbitrary delegatecall logic, enabling full takeover.
View stderr
[codex:533482] OpenAI Codex v0.77.0 (research preview)
[codex:533482] --------
[codex:533482] workdir: /tmp/codex-multi-umu0_5c_
[codex:533482] model: gpt-5.2-codex
[codex:533482] provider: openai
[codex:533482] approval: never
[codex:533482] sandbox: read-only
[codex:533482] reasoning effort: none
[codex:533482] reasoning summaries: auto
[codex:533482] session id: 019b4dd4-4c37-71c3-82ba-336196a6513c
[codex:533482] --------
[codex:533482] user
[codex:533482] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:533482] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:533482] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:533482] 
[codex:533482] Scope rules:
[codex:533482] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:533482] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:533482] 
[codex:533482] Output MUST be valid JSON matching the provided schema.
[codex:533482] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:533482] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:533482] 
[codex:533482] Output constraints (IMPORTANT):
[codex:533482] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:533482] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:533482] mcp startup: no servers
[codex:533482] 
[codex:533482] thinking
[codex:533482] **Viewing AUDIT_BUNDLE contents**
[codex:533482] exec
[codex:533482] /bin/bash -lc ls in /tmp/codex-multi-umu0_5c_ succeeded in 5ms:
[codex:533482] AUDIT_BUNDLE.txt
[codex:533482] codex-output-schema.json
[codex:533482] contracts
[codex:533482] exec
[codex:533482] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-umu0_5c_ succeeded in 5ms:
[codex:533482] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:533482] 
[codex:533482] ================================================================================
[codex:533482] FILE: contracts/BlockDirectCall.sol
[codex:533482] ================================================================================
[codex:533482] /*
[codex:533482]   Copyright 2019,2020 StarkWare Industries Ltd.
[codex:533482] 
[codex:533482]   Licensed under the Apache License, Version 2.0 (the "License").
[codex:533482]   You may not use this file except in compliance with the License.
[codex:533482]   You may obtain a copy of the License at
[codex:533482] 
[codex:533482]   https://www.starkware.co/open-source-license/
[codex:533482] 
[codex:533482]   Unless required by applicable law or agreed to in writing,
[codex:533482]   software distributed under the License is distributed on an "AS IS" BASIS,
[codex:533482]   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:533482]   See the License for the specific language governing permissions
[codex:533482]   and limitations under the License.
[codex:533482] */
[codex:533482] 
[codex:533482] thinking
[codex:533482] **Analyzing dispatcher initialization vulnerabilities**
[codex:533482] exec
[codex:533482] /bin/bash -lc "nl -ba contracts/MainDispatcherBase.sol | sed -n '80,220p'" in /tmp/codex-multi-umu0_5c_ succeeded in 6ms:
[codex:533482]     80	      If the external initializer contract is used, all the remaining init data is passed to it,
[codex:533482]     81	      and internal initialization will not occur.
[codex:533482]     82	
[codex:533482]     83	      External Initialization Contract
[codex:533482]     84	      --------------------------------
[codex:533482]     85	      External Initialization Contract (EIC) is a hook for custom initialization.
[codex:533482]     86	      Typically in an upgrade flow, the expected initialization contains only the addresses of
[codex:533482]     87	      the sub-contracts. Normal initialization of the sub-contracts is such that is not needed
[codex:533482]     88	      in an upgrade, and actually may be very dangerous, as changing of state on a working system
[codex:533482]     89	      may corrupt it.
[codex:533482]     90	
[codex:533482]     91	      In the event that some state initialization is required, the EIC is a hook that allows this.
[codex:533482]     92	      It may be deployed and called specifically for this purpose.
[codex:533482]     93	
[codex:533482]     94	      The address of the EIC must be provided (if at all) when a new implementation is added to
[codex:533482]     95	      a Proxy contract (as part of the initialization vector).
[codex:533482]     96	      Hence, it is considered part of the code open to reviewers prior to a time-locked upgrade.
[codex:533482]     97	
[codex:533482]     98	      When a custom initialization is performed using an EIC,
[codex:533482]     99	      the main dispatcher initialize extracts and stores the sub-contracts addresses, and then
[codex:533482] exec
[codex:533482] /bin/bash -lc "nl -ba contracts/MainDispatcherBase.sol | sed -n '220,340p'" in /tmp/codex-multi-umu0_5c_ succeeded in 6ms:
[codex:533482]    220	                        add(subContractInitData, trgOffset),
[codex:533482]    221	                        mload(add(add(data, trgOffset), initDataContractsOffset))
[codex:533482]    222	                    )
[codex:533482]    223	                }
[codex:533482]    224	            }
[codex:533482]    225	
[codex:533482]    226	            // Call sub-contract initializer.
[codex:533482]    227	            // NOLINTNEXTLINE: low-level-calls.
[codex:533482]    228	            (success, returndata) = contractAddress.delegatecall(
[codex:533482]    229	                abi.encodeWithSelector(this.initialize.selector, subContractInitData)
[codex:533482]    230	            );
[codex:533482]    231	            require(success, string(returndata));
[codex:533482]    232	            totalInitSizes += initSize;
[codex:533482]    233	            initDataContractsOffset += initSize;
[codex:533482]    234	        }
[codex:533482]    235	        require(
[codex:533482]    236	            additionalDataSize == totalInitSizes,
[codex:533482]    237	            "MISMATCHING_INIT_DATA_SIZE");
[codex:533482]    238	    }
[codex:533482]    239	
[codex:533482] 
[codex:533482] thinking
[codex:533482] **Analyzing initialize function vulnerabilities**
[codex:533482] codex
[codex:533482] {"no_findings":false,"summary":"Public initializer can be called by anyone to replace subcontracts and/or execute arbitrary delegatecall logic, enabling full takeover.","findings":[{"severity":"critical","category":"access_control","title":"Unprotected initializer allows arbitrary subcontract replacement and delegatecall execution","exploit_scenario":"Any external account can call `initialize` on the dispatcher/proxy with crafted data. Because there is no access control, the caller can set `subContracts` to attacker-controlled implementations (passing `identify()` checks) and immediately hijack all delegated function calls. Alternatively, the caller can supply a non-zero external initializer address and trigger `delegatecall` into attacker code, gaining full control over storage (e.g., governance, asset mappings, balances) and potentially draining funds.","recommendation":"Restrict `initialize` to a trusted governance/upgrade authority and enforce a one-time (or versioned) initialization flag. Also ensure the “no additional data” path cannot be used to reconfigure subcontracts without explicit authorization (e.g., always require an initialization sentinel or `initialized` guard). Consider validating external initializer addresses against an allowlist in upgrades.","evidence":"`initialize` is `public` with no access control; it sets `subContracts` from calldata and returns early when `additionalDataSize == 0`, allowing reconfiguration without the sentinel guard. It also allows arbitrary `externalInitializerAddr` delegatecall from calldata.","locations":["contracts/MainDispatcherBase.sol:126","contracts/MainDispatcherBase.sol:148","contracts/MainDispatcherBase.sol:171","contracts/MainDispatcherBase.sol:179","contracts/MainDispatcherBase.sol:270"]}]}
[codex:533482] tokens used
[codex:533482] 14,794
[codex:533482] {"no_findings":false,"summary":"Public initializer can be called by anyone to replace subcontracts and/or execute arbitrary delegatecall logic, enabling full takeover.","findings":[{"severity":"critical","category":"access_control","title":"Unprotected initializer allows arbitrary subcontract replacement and delegatecall execution","exploit_scenario":"Any external account can call `initialize` on the dispatcher/proxy with crafted data. Because there is no access control, the caller can set `subContracts` to attacker-controlled implementations (passing `identify()` checks) and immediately hijack all delegated function calls. Alternatively, the caller can supply a non-zero external initializer address and trigger `delegatecall` into attacker code, gaining full control over storage (e.g., governance, asset mappings, balances) and potentially draining funds.","recommendation":"Restrict `initialize` to a trusted governance/upgrade authority and enforce a one-time (or versioned) initialization flag. Also ensure the “no additional data” path cannot be used to reconfigure subcontracts without explicit authorization (e.g., always require an initialization sentinel or `initialized` guard). Consider validating external initializer addresses against an allowlist in upgrades.","evidence":"`initialize` is `public` with no access control; it sets `subContracts` from calldata and returns early when `additionalDataSize == 0`, allowing reconfiguration without the sentinel guard. It also allows arbitrary `externalInitializerAddr` delegatecall from calldata.","locations":["contracts/MainDispatcherBase.sol:126","contracts/MainDispatcherBase.sol:148","contracts/MainDispatcherBase.sol:171","contracts/MainDispatcherBase.sol:179","contracts/MainDispatcherBase.sol:270"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-24T00:49:26.108333+00:00",
        "returncode": 0
    },
    "summary": "Public initializer can be called by anyone to replace subcontracts and/or execute arbitrary delegatecall logic, enabling full takeover.",
    "raw_final": {
        "summary": "Public initializer can be called by anyone to replace subcontracts and/or execute arbitrary delegatecall logic, enabling full takeover.",
        "findings": [
            {
                "title": "Unprotected initializer allows arbitrary subcontract replacement and delegatecall execution",
                "category": "access_control",
                "evidence": "`initialize` is `public` with no access control; it sets `subContracts` from calldata and returns early when `additionalDataSize == 0`, allowing reconfiguration without the sentinel guard. It also allows arbitrary `externalInitializerAddr` delegatecall from calldata.",
                "severity": "critical",
                "locations": [
                    "contracts/MainDispatcherBase.sol:126",
                    "contracts/MainDispatcherBase.sol:148",
                    "contracts/MainDispatcherBase.sol:171",
                    "contracts/MainDispatcherBase.sol:179",
                    "contracts/MainDispatcherBase.sol:270"
                ],
                "recommendation": "Restrict `initialize` to a trusted governance/upgrade authority and enforce a one-time (or versioned) initialization flag. Also ensure the \u201cno additional data\u201d path cannot be used to reconfigure subcontracts without explicit authorization (e.g., always require an initialization sentinel or `initialized` guard). Consider validating external initializer addresses against an allowlist in upgrades.",
                "exploit_scenario": "Any external account can call `initialize` on the dispatcher/proxy with crafted data. Because there is no access control, the caller can set `subContracts` to attacker-controlled implementations (passing `identify()` checks) and immediately hijack all delegated function calls. Alternatively, the caller can supply a non-zero external initializer address and trigger `delegatecall` into attacker code, gaining full control over storage (e.g., governance, asset mappings, balances) and potentially draining funds."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
4
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
1
EXT*/BALANCE
2
Total opcodes
3414
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x004e
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x439fab91
00000019: EQ
0000001a: PUSH2 0x0133
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xadac3e15
00000024: EQ
00000025: PUSH2 0x01e6
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xc1a85130
0000002f: EQ
00000030: PUSH2 0x020d
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xf2011f66
0000003a: EQ
0000003b: PUSH2 0x0222
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xffa1ad74
00000045: EQ
00000046: PUSH2 0x024c
00000049: JUMPI
0000004a: PUSH2 0x00a0
0000004d: JUMP
0000004e: JUMPDEST
0000004f: CALLDATASIZE
00000050: PUSH2 0x00a0
00000053: JUMPI
00000054: PUSH1 0x40
00000056: DUP1
00000057: MLOAD
00000058: PUSH3 0x461bcd
0000005c: PUSH1 0xe5
0000005e: SHL
0000005f: DUP2
00000060: MSTORE
00000061: PUSH1 0x20
00000063: PUSH1 0x04
00000065: DUP3
00000066: ADD
00000067: DUP2
00000068: SWAP1
00000069: MSTORE
0000006a: PUSH1 0x24
0000006c: DUP3
0000006d: ADD
0000006e: MSTORE
0000006f: PUSH32 0x434f4e54524143545f4e4f545f45585045435445445f544f5f52454345495645
00000090: PUSH1 0x44
00000092: DUP3
00000093: ADD
00000094: MSTORE
00000095: SWAP1
00000096: MLOAD
00000097: SWAP1
00000098: DUP2
00000099: SWAP1
0000009a: SUB
0000009b: PUSH1 0x64
0000009d: ADD
0000009e: SWAP1
0000009f: REVERT
000000a0: JUMPDEST
000000a1: PUSH1 0x00
000000a3: PUSH2 0x00b7
000000a6: PUSH1 0x00
000000a8: CALLDATALOAD
000000a9: PUSH1 0x01
000000ab: PUSH1 0x01
000000ad: PUSH1 0xe0
000000af: SHL
000000b0: SUB
000000b1: NOT
000000b2: AND
000000b3: PUSH2 0x02d6
000000b6: JUMP
000000b7: JUMPDEST
000000b8: SWAP1
000000b9: POP
000000ba: PUSH1 0x01
000000bc: PUSH1 0x01
000000be: PUSH1 0xa0
000000c0: SHL
000000c1: SUB
000000c2: DUP2
000000c3: AND
000000c4: PUSH2 0x010f
000000c7: JUMPI
000000c8: PUSH1 0x40
000000ca: DUP1
000000cb: MLOAD
000000cc: PUSH3 0x461bcd
000000d0: PUSH1 0xe5
000000d2: SHL
000000d3: DUP2
000000d4: MSTORE
000000d5: PUSH1 0x20
000000d7: PUSH1 0x04
000000d9: DUP3
000000da: ADD
000000db: MSTORE
000000dc: PUSH1 0x18
000000de: PUSH1 0x24
000000e0: DUP3
000000e1: ADD
000000e2: MSTORE
000000e3: PUSH24 0x2727afa1a7a72a2920a1aa2fa327a92fa32aa721aa24a7a7
000000fc: PUSH1 0x41
000000fe: SHL
000000ff: PUSH1 0x44
00000101: DUP3
00000102: ADD
00000103: MSTORE
00000104: SWAP1
00000105: MLOAD
00000106: SWAP1
00000107: DUP2
00000108: SWAP1
00000109: SUB
0000010a: PUSH1 0x64
0000010c: ADD
0000010d: SWAP1
0000010e: REVERT
0000010f: JUMPDEST
00000110: CALLDATASIZE
00000111: PUSH1 0x00
00000113: DUP1
00000114: CALLDATACOPY
00000115: PUSH1 0x00
00000117: DUP1
00000118: CALLDATASIZE
00000119: PUSH1 0x00
0000011b: DUP5
0000011c: GAS
0000011d: DELEGATECALL
0000011e: RETURNDATASIZE
0000011f: PUSH1 0x00
00000121: DUP1
00000122: RETURNDATACOPY
00000123: DUP1
00000124: DUP1
00000125: ISZERO
00000126: PUSH2 0x012e
00000129: JUMPI
0000012a: RETURNDATASIZE
0000012b: PUSH1 0x00
0000012d: RETURN
0000012e: JUMPDEST
0000012f: RETURNDATASIZE
00000130: PUSH1 0x00
00000132: REVERT
00000133: JUMPDEST
00000134: CALLVALUE
00000135: DUP1
00000136: ISZERO
00000137: PUSH2 0x013f
0000013a: JUMPI
0000013b: PUSH1 0x00
0000013d: DUP1
0000013e: REVERT
0000013f: JUMPDEST
00000140: POP
00000141: PUSH2 0x01e4
00000144: PUSH1 0x04
00000146: DUP1
00000147: CALLDATASIZE
00000148: SUB
00000149: PUSH1 0x20
0000014b: DUP2
0000014c: LT
0000014d: ISZERO
0000014e: PUSH2 0x0156
00000151: JUMPI
00000152: PUSH1 0x00
00000154: DUP1
00000155: REVERT
00000156: JUMPDEST
00000157: DUP2
00000158: ADD
00000159: SWAP1
0000015a: PUSH1 0x20
0000015c: DUP2
0000015d: ADD
0000015e: DUP2
0000015f: CALLDATALOAD
00000160: PUSH1 0x01
00000162: PUSH1 0x20
00000164: SHL
00000165: DUP2
00000166: GT
00000167: ISZERO
00000168: PUSH2 0x0170
0000016b: JUMPI
0000016c: PUSH1 0x00
0000016e: DUP1
0000016f: REVERT
00000170: JUMPDEST
00000171: DUP3
00000172: ADD
00000173: DUP4
00000174: PUSH1 0x20
00000176: DUP3
00000177: ADD
00000178: GT
00000179: ISZERO
0000017a: PUSH2 0x0182
0000017d: JUMPI
0000017e: PUSH1 0x00
00000180: DUP1
00000181: REVERT
00000182: JUMPDEST
00000183: DUP1
00000184: CALLDATALOAD
00000185: SWAP1
00000186: PUSH1 0x20
00000188: ADD
00000189: SWAP2
0000018a: DUP5
0000018b: PUSH1 0x01
0000018d: DUP4
0000018e: MUL
0000018f: DUP5
00000190: ADD
00000191: GT
00000192: PUSH1 0x01
00000194: PUSH1 0x20
00000196: SHL
00000197: DUP4
00000198: GT
00000199: OR
0000019a: ISZERO
0000019b: PUSH2 0x01a3
0000019e: JUMPI
0000019f: PUSH1 0x00
000001a1: DUP1
000001a2: REVERT
000001a3: JUMPDEST
000001a4: SWAP2
000001a5: SWAP1
000001a6: DUP1
000001a7: DUP1
000001a8: PUSH1 0x1f
000001aa: ADD
000001ab: PUSH1 0x20
000001ad: DUP1
000001ae: SWAP2
000001af: DIV
000001b0: MUL
000001b1: PUSH1 0x20
000001b3: ADD
000001b4: PUSH1 0x40
000001b6: MLOAD
000001b7: SWAP1
000001b8: DUP2
000001b9: ADD
000001ba: PUSH1 0x40
000001bc: MSTORE
000001bd: DUP1
000001be: SWAP4
000001bf: SWAP3
000001c0: SWAP2
000001c1: SWAP1
000001c2: DUP2
000001c3: DUP2
000001c4: MSTORE
000001c5: PUSH1 0x20
000001c7: ADD
000001c8: DUP4
000001c9: DUP4
000001ca: DUP1
000001cb: DUP3
000001cc: DUP5
000001cd: CALLDATACOPY
000001ce: PUSH1 0x00
000001d0: SWAP3
000001d1: ADD
000001d2: SWAP2
000001d3: SWAP1
000001d4: SWAP2
000001d5: MSTORE
000001d6: POP
000001d7: SWAP3
000001d8: SWAP6
000001d9: POP
000001da: PUSH2 0x0362
000001dd: SWAP5
000001de: POP
000001df: POP
000001e0: POP
000001e1: POP
000001e2: POP
000001e3: JUMP
000001e4: JUMPDEST
000001e5: STOP
000001e6: JUMPDEST
000001e7: CALLVALUE
000001e8: DUP1
000001e9: ISZERO
000001ea: PUSH2 0x01f2
000001ed: JUMPI
000001ee: PUSH1 0x00
000001f0: DUP1
000001f1: REVERT
000001f2: JUMPDEST
000001f3: POP
000001f4: PUSH2 0x01fb
000001f7: PUSH2 0x09cb
000001fa: JUMP
000001fb: JUMPDEST
000001fc: PUSH1 0x40
000001fe: DUP1
000001ff: MLOAD
00000200: SWAP2
00000201: DUP3
00000202: MSTORE
00000203: MLOAD
00000204: SWAP1
00000205: DUP2
00000206: SWAP1
00000207: SUB
00000208: PUSH1 0x20
0000020a: ADD
0000020b: SWAP1
0000020c: RETURN
0000020d: JUMPDEST
0000020e: CALLVALUE
0000020f: DUP1
00000210: ISZERO
00000211: PUSH2 0x0219
00000214: JUMPI
00000215: PUSH1 0x00
00000217: DUP1
00000218: REVERT
00000219: JUMPDEST
0000021a: POP
0000021b: PUSH2 0x01fb
0000021e: PUSH2 0x09d9
00000221: JUMP
00000222: JUMPDEST
00000223: CALLVALUE
00000224: DUP1
00000225: ISZERO
00000226: PUSH2 0x022e
00000229: JUMPI
0000022a: PUSH1 0x00
0000022c: DUP1
0000022d: REVERT
0000022e: JUMPDEST
0000022f: POP
00000230: PUSH2 0x01fb
00000233: PUSH1 0x04
00000235: DUP1
00000236: CALLDATASIZE
00000237: SUB
00000238: PUSH1 0x20
0000023a: DUP2
0000023b: LT
0000023c: ISZERO
0000023d: PUSH2 0x0245
00000240: JUMPI
00000241: PUSH1 0x00
00000243: DUP1
00000244: REVERT
00000245: JUMPDEST
00000246: POP
00000247: CALLDATALOAD
00000248: PUSH2 0x09e7
0000024b: JUMP
0000024c: JUMPDEST
0000024d: CALLVALUE
0000024e: DUP1
0000024f: ISZERO
00000250: PUSH2 0x0258
00000253: JUMPI
00000254: PUSH1 0x00
00000256: DUP1
00000257: REVERT
00000258: JUMPDEST
00000259: POP
0000025a: PUSH2 0x0261
0000025d: PUSH2 0x0a01
00000260: JUMP
00000261: JUMPDEST
00000262: PUSH1 0x40
00000264: DUP1
00000265: MLOAD
00000266: PUSH1 0x20
00000268: DUP1
00000269: DUP3
0000026a: MSTORE
0000026b: DUP4
0000026c: MLOAD
0000026d: DUP2
0000026e: DUP4
0000026f: ADD
00000270: MSTORE
00000271: DUP4
00000272: MLOAD
00000273: SWAP2
00000274: SWAP3
00000275: DUP4
00000276: SWAP3
00000277: SWAP1
00000278: DUP4
00000279: ADD
0000027a: SWAP2
0000027b: DUP6
0000027c: ADD
0000027d: SWAP1
0000027e: DUP1
0000027f: DUP4
00000280: DUP4
00000281: PUSH1 0x00
00000283: JUMPDEST
00000284: DUP4
00000285: DUP2
00000286: LT
00000287: ISZERO
00000288: PUSH2 0x029b
0000028b: JUMPI
0000028c: DUP2
0000028d: DUP2
0000028e: ADD
0000028f: MLOAD
00000290: DUP4
00000291: DUP3
00000292: ADD
00000293: MSTORE
00000294: PUSH1 0x20
00000296: ADD
00000297: PUSH2 0x0283
0000029a: JUMP
0000029b: JUMPDEST
0000029c: POP
0000029d: POP
0000029e: POP
0000029f: POP
000002a0: SWAP1
000002a1: POP
000002a2: SWAP1
000002a3: DUP2
000002a4: ADD
000002a5: SWAP1
000002a6: PUSH1 0x1f
000002a8: AND
000002a9: DUP1
000002aa: ISZERO
000002ab: PUSH2 0x02c8
000002ae: JUMPI
000002af: DUP1
000002b0: DUP3
000002b1: SUB
000002b2: DUP1
000002b3: MLOAD
000002b4: PUSH1 0x01
000002b6: DUP4
000002b7: PUSH1 0x20
000002b9: SUB
000002ba: PUSH2 0x0100
000002bd: EXP
000002be: SUB
000002bf: NOT
000002c0: AND
000002c1: DUP2
000002c2: MSTORE
000002c3: PUSH1 0x20
000002c5: ADD
000002c6: SWAP2
000002c7: POP
000002c8: JUMPDEST
000002c9: POP
000002ca: SWAP3
000002cb: POP
000002cc: POP
000002cd: POP
000002ce: PUSH1 0x40
000002d0: MLOAD
000002d1: DUP1
000002d2: SWAP2
000002d3: SUB
000002d4: SWAP1
000002d5: RETURN
000002d6: JUMPDEST
000002d7: PUSH1 0x00
000002d9: DUP1
000002da: DUP3
000002db: PUSH2 0x02e2
000002de: PUSH2 0x0a22
000002e1: JUMP
000002e2: JUMPDEST
000002e3: PUSH1 0x40
000002e5: DUP1
000002e6: MLOAD
000002e7: PUSH1 0x01
000002e9: PUSH1 0x01
000002eb: PUSH1 0xe0
000002ed: SHL
000002ee: SUB
000002ef: NOT
000002f0: SWAP1
000002f1: SWAP4
000002f2: AND
000002f3: PUSH1 0x20
000002f5: DUP1
000002f6: DUP6
000002f7: ADD
000002f8: SWAP2
000002f9: SWAP1
000002fa: SWAP2
000002fb: MSTORE
000002fc: PUSH1 0x24
000002fe: DUP1
000002ff: DUP6
00000300: ADD
00000301: SWAP4
00000302: SWAP1
00000303: SWAP4
00000304: MSTORE
00000305: DUP2
00000306: MLOAD
00000307: DUP1
00000308: DUP6
00000309: SUB
0000030a: SWAP1
0000030b: SWAP4
0000030c: ADD
0000030d: DUP4
0000030e: MSTORE
0000030f: PUSH1 0x44
00000311: SWAP1
00000312: SWAP4
00000313: ADD
00000314: SWAP1
00000315: MSTORE
00000316: DUP1
00000317: MLOAD
00000318: SWAP2
00000319: ADD
0000031a: KECCAK256
0000031b: PUSH1 0xff
0000031d: AND
0000031e: SWAP1
0000031f: POP
00000320: PUSH1 0x00
00000322: DUP1
00000323: PUSH2 0x0100
00000326: PUSH1 0x04
00000328: DUP5
00000329: MUL
0000032a: MOD
0000032b: SWAP1
0000032c: POP
0000032d: DUP1
0000032e: PUSH2 0x033a
00000331: PUSH1 0x06
00000333: DUP6
00000334: SWAP1
00000335: SHR
00000336: PUSH2 0x0a28
00000339: JUMP
0000033a: JUMPDEST
0000033b: PUSH1 0x0f
0000033d: SWAP2
0000033e: SHR
0000033f: AND
00000340: PUSH1 0x00
00000342: SWAP1
00000343: DUP2
00000344: MSTORE
00000345: PUSH1 0x1e
00000347: PUSH1 0x20
00000349: MSTORE
0000034a: PUSH1 0x40
0000034c: SWAP1
0000034d: KECCAK256
0000034e: SLOAD
0000034f: PUSH1 0x01
00000351: PUSH1 0x01
00000353: PUSH1 0xa0
00000355: SHL
00000356: SUB
00000357: AND
00000358: SWAP4
00000359: POP
0000035a: POP
0000035b: POP
0000035c: POP
0000035d: JUMPDEST
0000035e: SWAP2
0000035f: SWAP1
00000360: POP
00000361: JUMP
00000362: JUMPDEST
00000363: PUSH32 0xa8be027c40582873fe725a541de3bd3b732b003dc1a1a6df763248c6df60208d
00000384: DUP1
00000385: SLOAD
00000386: SWAP1
00000387: DUP2
00000388: ISZERO
00000389: PUSH2 0x03d2
0000038c: JUMPI
0000038d: PUSH1 0x40
0000038f: DUP1
00000390: MLOAD
00000391: PUSH3 0x461bcd
00000395: PUSH1 0xe5
00000397: SHL
00000398: DUP2
00000399: MSTORE
0000039a: PUSH1 0x20
0000039c: PUSH1 0x04
0000039e: DUP3
0000039f: ADD
000003a0: MSTORE
000003a1: PUSH1 0x16
000003a3: PUSH1 0x24
000003a5: DUP3
000003a6: ADD
000003a7: MSTORE
000003a8: PUSH22 0x1112549150d517d0d0531317d11254d0531313d5d151
000003bf: PUSH1 0x52
000003c1: SHL
000003c2: PUSH1 0x44
000003c4: DUP3
000003c5: ADD
000003c6: MSTORE
000003c7: SWAP1
000003c8: MLOAD
000003c9: SWAP1
000003ca: DUP2
000003cb: SWAP1
000003cc: SUB
000003cd: PUSH1 0x64
000003cf: ADD
000003d0: SWAP1
000003d1: REVERT
000003d2: JUMPDEST
000003d3: POP
000003d4: POP
000003d5: PUSH1 0x00
000003d7: PUSH2 0x03de
000003da: PUSH2 0x0b20
000003dd: JUMP
000003de: JUMPDEST
000003df: SWAP1
000003e0: POP
000003e1: PUSH1 0x0f
000003e3: DUP2
000003e4: GT
000003e5: ISZERO
000003e6: PUSH2 0x042f
000003e9: JUMPI
000003ea: PUSH1 0x40
000003ec: DUP1
000003ed: MLOAD
000003ee: PUSH3 0x461bcd
000003f2: PUSH1 0xe5
000003f4: SHL
000003f5: DUP2
000003f6: MSTORE
000003f7: PUSH1 0x20
000003f9: PUSH1 0x04
000003fb: DUP3
000003fc: ADD
000003fd: MSTORE
000003fe: PUSH1 0x16
00000400: PUSH1 0x24
00000402: DUP3
00000403: ADD
00000404: MSTORE
00000405: PUSH22 0x544f4f5f4d414e595f5355425f434f4e545241435453
0000041c: PUSH1 0x50
0000041e: SHL
0000041f: PUSH1 0x44
00000421: DUP3
00000422: ADD
00000423: MSTORE
00000424: SWAP1
00000425: MLOAD
00000426: SWAP1
00000427: DUP2
00000428: SWAP1
00000429: SUB
0000042a: PUSH1 0x64
0000042c: ADD
0000042d: SWAP1
0000042e: REVERT
0000042f: JUMPDEST
00000430: DUP1
00000431: PUSH1 0x01
00000433: ADD
00000434: PUSH1 0x20
00000436: MUL
00000437: DUP3
00000438: MLOAD
00000439: LT
0000043a: ISZERO
0000043b: PUSH2 0x048b
0000043e: JUMPI
0000043f: PUSH1 0x40
00000441: DUP1
00000442: MLOAD
00000443: PUSH3 0x461bcd
00000447: PUSH1 0xe5
00000449: SHL
0000044a: DUP2
0000044b: MSTORE
0000044c: PUSH1 0x20
0000044e: PUSH1 0x04
00000450: DUP3
00000451: ADD
00000452: MSTORE
00000453: PUSH1 0x1a
00000455: PUSH1 0x24
00000457: DUP3
00000458: ADD
00000459: MSTORE
0000045a: PUSH32 0x5355425f434f4e5452414354535f4e4f545f50524f5649444544000000000000
0000047b: PUSH1 0x44
0000047d: DUP3
0000047e: ADD
0000047f: MSTORE
00000480: SWAP1
00000481: MLOAD
00000482: SWAP1
00000483: DUP2
00000484: SWAP1
00000485: SUB
00000486: PUSH1 0x64
00000488: ADD
00000489: SWAP1
0000048a: REVERT
0000048b: JUMPDEST
0000048c: DUP2
0000048d: MLOAD
0000048e: PUSH1 0x01
00000490: DUP3
00000491: DUP2
00000492: ADD
00000493: PUSH1 0x20
00000495: MUL
00000496: SWAP2
00000497: DUP3
00000498: SWAP1
00000499: SUB
0000049a: SWAP2
0000049b: PUSH1 0x00
0000049d: SWAP2
0000049e: JUMPDEST
0000049f: DUP5
000004a0: DUP2
000004a1: GT
000004a2: PUSH2 0x04c9
000004a5: JUMPI
000004a6: PUSH1 0x20
000004a8: DUP2
000004a9: MUL
000004aa: DUP7
000004ab: ADD
000004ac: MLOAD
000004ad: PUSH2 0x04b6
000004b0: DUP3
000004b1: DUP3
000004b2: PUSH2 0x0b25
000004b5: JUMP
000004b6: JUMPDEST
000004b7: PUSH2 0x04c0
000004ba: DUP3
000004bb: DUP3
000004bc: PUSH2 0x0d78
000004bf: JUMP
000004c0: JUMPDEST
000004c1: POP
000004c2: PUSH1 0x01
000004c4: ADD
000004c5: PUSH2 0x049e
000004c8: JUMP
000004c9: JUMPDEST
000004ca: POP
000004cb: PUSH1 0x20
000004cd: PUSH1 0x01
000004cf: DUP6
000004d0: ADD
000004d1: MUL
000004d2: DUP6
000004d3: ADD
000004d4: MLOAD
000004d5: PUSH1 0x01
000004d7: PUSH1 0x01
000004d9: PUSH1 0xa0
000004db: SHL
000004dc: SUB
000004dd: DUP2
000004de: AND
000004df: ISZERO
000004e0: PUSH2 0x04f8
000004e3: JUMPI
000004e4: PUSH2 0x04ee
000004e7: DUP7
000004e8: DUP3
000004e9: DUP7
000004ea: PUSH2 0x0da6
000004ed: JUMP
000004ee: JUMPDEST
000004ef: POP
000004f0: POP
000004f1: POP
000004f2: POP
000004f3: POP
000004f4: PUSH2 0x09c8
000004f7: JUMP
000004f8: JUMPDEST
000004f9: DUP4
000004fa: PUSH2 0x0507
000004fd: JUMPI
000004fe: POP
000004ff: POP
00000500: POP
00000501: POP
00000502: POP
00000503: PUSH2 0x09c8
00000506: JUMP
00000507: JUMPDEST
00000508: PUSH1 0x01
0000050a: PUSH1 0x01
0000050c: PUSH1 0xa0
0000050e: SHL
0000050f: SUB
00000510: DUP2
00000511: AND
00000512: ISZERO
00000513: PUSH2 0x0518
00000516: JUMPI
00000517: INVALID
00000518: JUMPDEST
00000519: PUSH2 0x0520
0000051c: PUSH2 0x10b5
0000051f: JUMP
00000520: JUMPDEST
00000521: PUSH1 0x01
00000523: JUMPDEST
00000524: DUP6
00000525: DUP2
00000526: GT
00000527: PUSH2 0x096d
0000052a: JUMPI
0000052b: PUSH1 0x20
0000052d: DUP1
0000052e: DUP3
0000052f: MUL
00000530: DUP9
00000531: ADD
00000532: MLOAD
00000533: PUSH1 0x40
00000535: DUP1
00000536: MLOAD
00000537: PUSH1 0x04
00000539: DUP2
0000053a: MSTORE
0000053b: PUSH1 0x24
0000053d: DUP2
0000053e: ADD
0000053f: DUP3
00000540: MSTORE
00000541: SWAP3
00000542: DUP4
00000543: ADD
00000544: DUP1
00000545: MLOAD
00000546: PUSH1 0x01
00000548: PUSH1 0x01
0000054a: PUSH1 0xe0
0000054c: SHL
0000054d: SUB
0000054e: AND
0000054f: PUSH4 0x3cc660ad
00000554: PUSH1 0xe0
00000556: SHL
00000557: OR
00000558: DUP2
00000559: MSTORE
0000055a: SWAP1
0000055b: MLOAD
0000055c: DUP4
0000055d: MLOAD
0000055e: SWAP3
0000055f: SWAP4
00000560: PUSH1 0x00
00000562: SWAP4
00000563: PUSH1 0x60
00000565: SWAP4
00000566: PUSH1 0x01
00000568: PUSH1 0x01
0000056a: PUSH1 0xa0
0000056c: SHL
0000056d: SUB
0000056e: DUP8
0000056f: AND
00000570: SWAP4
00000571: SWAP2
00000572: DUP3
00000573: SWAP2
00000574: SWAP1
00000575: DUP1
00000576: DUP4
00000577: DUP4
00000578: JUMPDEST
00000579: PUSH1 0x20
0000057b: DUP4
0000057c: LT
0000057d: PUSH2 0x0597
00000580: JUMPI
00000581: DUP1
00000582: MLOAD
00000583: DUP3
00000584: MSTORE
00000585: PUSH1 0x1f
00000587: NOT
00000588: SWAP1
00000589: SWAP3
0000058a: ADD
0000058b: SWAP2
0000058c: PUSH1 0x20
0000058e: SWAP2
0000058f: DUP3
00000590: ADD
00000591: SWAP2
00000592: ADD
00000593: PUSH2 0x0578
00000596: JUMP
00000597: JUMPDEST
00000598: PUSH1 0x01
0000059a: DUP4
0000059b: PUSH1 0x20
0000059d: SUB
0000059e: PUSH2 0x0100
000005a1: EXP
000005a2: SUB
000005a3: DUP1
000005a4: NOT
000005a5: DUP3
000005a6: MLOAD
000005a7: AND
000005a8: DUP2
000005a9: DUP5
000005aa: MLOAD
000005ab: AND
000005ac: DUP1
000005ad: DUP3
000005ae: OR
000005af: DUP6
000005b0: MSTORE
000005b1: POP
000005b2: POP
000005b3: POP
000005b4: POP
000005b5: POP
000005b6: POP
000005b7: SWAP1
000005b8: POP
000005b9: ADD
000005ba: SWAP2
000005bb: POP
000005bc: POP
000005bd: PUSH1 0x00
000005bf: PUSH1 0x40
000005c1: MLOAD
000005c2: DUP1
000005c3: DUP4
000005c4: SUB
000005c5: DUP2
000005c6: DUP6
000005c7: GAS
000005c8: DELEGATECALL
000005c9: SWAP2
000005ca: POP
000005cb: POP
000005cc: RETURNDATASIZE
000005cd: DUP1
000005ce: PUSH1 0x00
000005d0: DUP2
000005d1: EQ
000005d2: PUSH2 0x05f7
000005d5: JUMPI
000005d6: PUSH1 0x40
000005d8: MLOAD
000005d9: SWAP2
000005da: POP
000005db: PUSH1 0x1f
000005dd: NOT
000005de: PUSH1 0x3f
000005e0: RETURNDATASIZE
000005e1: ADD
000005e2: AND
000005e3: DUP3
000005e4: ADD
000005e5: PUSH1 0x40
000005e7: MSTORE
000005e8: RETURNDATASIZE
000005e9: DUP3
000005ea: MSTORE
000005eb: RETURNDATASIZE
000005ec: PUSH1 0x00
000005ee: PUSH1 0x20
000005f0: DUP5
000005f1: ADD
000005f2: RETURNDATACOPY
000005f3: PUSH2 0x05fc
000005f6: JUMP
000005f7: JUMPDEST
000005f8: PUSH1 0x60
000005fa: SWAP2
000005fb: POP
000005fc: JUMPDEST
000005fd: POP
000005fe: SWAP2
000005ff: POP
00000600: SWAP2
00000601: POP
00000602: DUP2
00000603: DUP2
00000604: SWAP1
00000605: PUSH2 0x068c
00000608: JUMPI
00000609: PUSH1 0x40
0000060b: MLOAD
0000060c: PUSH3 0x461bcd
00000610: PUSH1 0xe5
00000612: SHL
00000613: DUP2
00000614: MSTORE
00000615: PUSH1 0x04
00000617: ADD
00000618: DUP1
00000619: DUP1
0000061a: PUSH1 0x20
0000061c: ADD
0000061d: DUP3
0000061e: DUP2
0000061f: SUB
00000620: DUP3
00000621: MSTORE
00000622: DUP4
00000623: DUP2
00000624: DUP2
00000625: MLOAD
00000626: DUP2
00000627: MSTORE
00000628: PUSH1 0x20
0000062a: ADD
0000062b: SWAP2
0000062c: POP
0000062d: DUP1
0000062e: MLOAD
0000062f: SWAP1
00000630: PUSH1 0x20
00000632: ADD
00000633: SWAP1
00000634: DUP1
00000635: DUP4
00000636: DUP4
00000637: PUSH1 0x00
00000639: JUMPDEST
0000063a: DUP4
0000063b: DUP2
0000063c: LT
0000063d: ISZERO
0000063e: PUSH2 0x0651
00000641: JUMPI
00000642: DUP2
00000643: DUP2
00000644: ADD
00000645: MLOAD
00000646: DUP4
00000647: DUP3
00000648: ADD
00000649: MSTORE
0000064a: PUSH1 0x20
0000064c: ADD
0000064d: PUSH2 0x0639
00000650: JUMP
00000651: JUMPDEST
00000652: POP
00000653: POP
00000654: POP
00000655: POP
00000656: SWAP1
00000657: POP
00000658: SWAP1
00000659: DUP2
0000065a: ADD
0000065b: SWAP1
0000065c: PUSH1 0x1f
0000065e: AND
0000065f: DUP1
00000660: ISZERO
00000661: PUSH2 0x067e
00000664: JUMPI
00000665: DUP1
00000666: DUP3
00000667: SUB
00000668: DUP1
00000669: MLOAD
0000066a: PUSH1 0x01
0000066c: DUP4
0000066d: PUSH1 0x20
0000066f: SUB
00000670: PUSH2 0x0100
00000673: EXP
00000674: SUB
00000675: NOT
00000676: AND
00000677: DUP2
00000678: MSTORE
00000679: PUSH1 0x20
0000067b: ADD
0000067c: SWAP2
0000067d: POP
0000067e: JUMPDEST
0000067f: POP
00000680: SWAP3
00000681: POP
00000682: POP
00000683: POP
00000684: PUSH1 0x40
00000686: MLOAD
00000687: DUP1
00000688: SWAP2
00000689: SUB
0000068a: SWAP1
0000068b: REVERT
0000068c: JUMPDEST
0000068d: POP
0000068e: PUSH1 0x00
00000690: DUP2
00000691: DUP1
00000692: PUSH1 0x20
00000694: ADD
00000695: SWAP1
00000696: MLOAD
00000697: PUSH1 0x20
00000699: DUP2
0000069a: LT
0000069b: ISZERO
0000069c: PUSH2 0x06a4
0000069f: JUMPI
000006a0: PUSH1 0x00
000006a2: DUP1
000006a3: REVERT
000006a4: JUMPDEST
000006a5: POP
000006a6: MLOAD
000006a7: SWAP1
000006a8: POP
000006a9: DUP9
000006aa: DUP2
000006ab: GT
000006ac: ISZERO
000006ad: PUSH2 0x06f8
000006b0: JUMPI
000006b1: PUSH1 0x40
000006b3: DUP1
000006b4: MLOAD
000006b5: PUSH3 0x461bcd
000006b9: PUSH1 0xe5
000006bb: SHL
000006bc: DUP2
000006bd: MSTORE
000006be: PUSH1 0x20
000006c0: PUSH1 0x04
000006c2: DUP3
000006c3: ADD
000006c4: MSTORE
000006c5: PUSH1 0x18
000006c7: PUSH1 0x24
000006c9: DUP3
000006ca: ADD
000006cb: MSTORE
000006cc: PUSH24 0x494e56414c49445f494e495449414c495a45525f53495a45
000006e5: PUSH1 0x40
000006e7: SHL
000006e8: PUSH1 0x44
000006ea: DUP3
000006eb: ADD
000006ec: MSTORE
000006ed: SWAP1
000006ee: MLOAD
000006ef: SWAP1
000006f0: DUP2
000006f1: SWAP1
000006f2: SUB
000006f3: PUSH1 0x64
000006f5: ADD
000006f6: SWAP1
000006f7: REVERT
000006f8: JUMPDEST
000006f9: DUP9
000006fa: DUP2
000006fb: DUP10
000006fc: ADD
000006fd: GT
000006fe: ISZERO
000006ff: PUSH2 0x074a
00000702: JUMPI
00000703: PUSH1 0x40
00000705: DUP1
00000706: MLOAD
00000707: PUSH3 0x461bcd
0000070b: PUSH1 0xe5
0000070d: SHL
0000070e: DUP2
0000070f: MSTORE
00000710: PUSH1 0x20
00000712: PUSH1 0x04
00000714: DUP3
00000715: ADD
00000716: MSTORE
00000717: PUSH1 0x18
00000719: PUSH1 0x24
0000071b: DUP3
0000071c: ADD
0000071d: MSTORE
0000071e: PUSH24 0x494e56414c49445f494e495449414c495a45525f53495a45
00000737: PUSH1 0x40
00000739: SHL
0000073a: PUSH1 0x44
0000073c: DUP3
0000073d: ADD
0000073e: MSTORE
0000073f: SWAP1
00000740: MLOAD
00000741: SWAP1
00000742: DUP2
00000743: SWAP1
00000744: SUB
00000745: PUSH1 0x64
00000747: ADD
00000748: SWAP1
00000749: REVERT
0000074a: JUMPDEST
0000074b: DUP1
0000074c: PUSH2 0x0758
0000074f: JUMPI
00000750: POP
00000751: POP
00000752: POP
00000753: POP
00000754: PUSH2 0x0965
00000757: JUMP
00000758: JUMPDEST
00000759: PUSH1 0x60
0000075b: DUP2
0000075c: PUSH8 0xffffffffffffffff
00000765: DUP2
00000766: GT
00000767: DUP1
00000768: ISZERO
00000769: PUSH2 0x0771
0000076c: JUMPI
0000076d: PUSH1 0x00
0000076f: DUP1
00000770: REVERT
00000771: JUMPDEST
00000772: POP
00000773: PUSH1 0x40
00000775: MLOAD
00000776: SWAP1
00000777: DUP1
00000778: DUP3
00000779: MSTORE
0000077a: DUP1
0000077b: PUSH1 0x1f
0000077d: ADD
0000077e: PUSH1 0x1f
00000780: NOT
00000781: AND
00000782: PUSH1 0x20
00000784: ADD
00000785: DUP3
00000786: ADD
00000787: PUSH1 0x40
00000789: MSTORE
0000078a: DUP1
0000078b: ISZERO
0000078c: PUSH2 0x079c
0000078f: JUMPI
00000790: PUSH1 0x20
00000792: DUP3
00000793: ADD
00000794: DUP2
00000795: DUP1
00000796: CALLDATASIZE
00000797: DUP4
00000798: CALLDATACOPY
00000799: ADD
0000079a: SWAP1
0000079b: POP
0000079c: JUMPDEST
0000079d: POP
0000079e: SWAP1
0000079f: POP
000007a0: PUSH1 0x20
000007a2: JUMPDEST
000007a3: DUP3
000007a4: DUP2
000007a5: GT
000007a6: PUSH2 0x07bb
000007a9: JUMPI
000007aa: DUP13
000007ab: DUP2
000007ac: ADD
000007ad: DUP10
000007ae: ADD
000007af: MLOAD
000007b0: DUP3
000007b1: DUP3
000007b2: ADD
000007b3: MSTORE
000007b4: PUSH1 0x20
000007b6: ADD
000007b7: PUSH2 0x07a2
000007ba: JUMP
000007bb: JUMPDEST
000007bc: POP
000007bd: PUSH1 0x40
000007bf: MLOAD
000007c0: PUSH1 0x20
000007c2: PUSH1 0x24
000007c4: DUP3
000007c5: ADD
000007c6: DUP2
000007c7: DUP2
000007c8: MSTORE
000007c9: DUP4
000007ca: MLOAD
000007cb: PUSH1 0x44
000007cd: DUP5
000007ce: ADD
000007cf: MSTORE
000007d0: DUP4
000007d1: MLOAD
000007d2: PUSH1 0x01
000007d4: PUSH1 0x01
000007d6: PUSH1 0xa0
000007d8: SHL
000007d9: SUB
000007da: DUP10
000007db: AND
000007dc: SWAP4
000007dd: PUSH4 0x439fab91
000007e2: PUSH1 0xe0
000007e4: SHL
000007e5: SWAP4
000007e6: DUP7
000007e7: SWAP4
000007e8: SWAP3
000007e9: DUP4
000007ea: SWAP3
000007eb: PUSH1 0x64
000007ed: ADD
000007ee: SWAP2
000007ef: DUP6
000007f0: ADD
000007f1: SWAP1
000007f2: DUP1
000007f3: DUP4
000007f4: DUP4
000007f5: PUSH1 0x00
000007f7: JUMPDEST
000007f8: DUP4
000007f9: DUP2
000007fa: LT
000007fb: ISZERO
000007fc: PUSH2 0x080f
000007ff: JUMPI
00000800: DUP2
00000801: DUP2
00000802: ADD
00000803: MLOAD
00000804: DUP4
00000805: DUP3
00000806: ADD
00000807: MSTORE
00000808: PUSH1 0x20
0000080a: ADD
0000080b: PUSH2 0x07f7
0000080e: JUMP
0000080f: JUMPDEST
00000810: POP
00000811: POP
00000812: POP
00000813: POP
00000814: SWAP1
00000815: POP
00000816: SWAP1
00000817: DUP2
00000818: ADD
00000819: SWAP1
0000081a: PUSH1 0x1f
0000081c: AND
0000081d: DUP1
0000081e: ISZERO
0000081f: PUSH2 0x083c
00000822: JUMPI
00000823: DUP1
00000824: DUP3
00000825: SUB
00000826: DUP1
00000827: MLOAD
00000828: PUSH1 0x01
0000082a: DUP4
0000082b: PUSH1 0x20
0000082d: SUB
0000082e: PUSH2 0x0100
00000831: EXP
00000832: SUB
00000833: NOT
00000834: AND
00000835: DUP2
00000836: MSTORE
00000837: PUSH1 0x20
00000839: ADD
0000083a: SWAP2
0000083b: POP
0000083c: JUMPDEST
0000083d: POP
0000083e: PUSH1 0x40
00000840: DUP1
00000841: MLOAD
00000842: PUSH1 0x1f
00000844: NOT
00000845: DUP2
00000846: DUP5
00000847: SUB
00000848: ADD
00000849: DUP2
0000084a: MSTORE
0000084b: SWAP2
0000084c: DUP2
0000084d: MSTORE
0000084e: PUSH1 0x20
00000850: DUP3
00000851: ADD
00000852: DUP1
00000853: MLOAD
00000854: PUSH1 0x01
00000856: PUSH1 0x01
00000858: PUSH1 0xe0
0000085a: SHL
0000085b: SUB
0000085c: AND
0000085d: PUSH1 0x01
0000085f: PUSH1 0x01
00000861: PUSH1 0xe0
00000863: SHL
00000864: SUB
00000865: NOT
00000866: SWAP1
00000867: SWAP8
00000868: AND
00000869: SWAP7
0000086a: SWAP1
0000086b: SWAP7
0000086c: OR
0000086d: DUP7
0000086e: MSTORE
0000086f: MLOAD
00000870: DUP2
00000871: MLOAD
00000872: SWAP2
00000873: SWAP6
00000874: SWAP1
00000875: SWAP5
00000876: POP
00000877: DUP5
00000878: SWAP4
00000879: POP
0000087a: SWAP2
0000087b: POP
0000087c: DUP1
0000087d: DUP4
0000087e: DUP4
0000087f: JUMPDEST
00000880: PUSH1 0x20
00000882: DUP4
00000883: LT
00000884: PUSH2 0x089e
00000887: JUMPI
00000888: DUP1
00000889: MLOAD
0000088a: DUP3
0000088b: MSTORE
0000088c: PUSH1 0x1f
0000088e: NOT
0000088f: SWAP1
00000890: SWAP3
00000891: ADD
00000892: SWAP2
00000893: PUSH1 0x20
00000895: SWAP2
00000896: DUP3
00000897: ADD
00000898: SWAP2
00000899: ADD
0000089a: PUSH2 0x087f
0000089d: JUMP
0000089e: JUMPDEST
0000089f: PUSH1 0x01
000008a1: DUP4
000008a2: PUSH1 0x20
000008a4: SUB
000008a5: PUSH2 0x0100
000008a8: EXP
000008a9: SUB
000008aa: DUP1
000008ab: NOT
000008ac: DUP3
000008ad: MLOAD
000008ae: AND
000008af: DUP2
000008b0: DUP5
000008b1: MLOAD
000008b2: AND
000008b3: DUP1
000008b4: DUP3
000008b5: OR
000008b6: DUP6
000008b7: MSTORE
000008b8: POP
000008b9: POP
000008ba: POP
000008bb: POP
000008bc: POP
000008bd: POP
000008be: SWAP1
000008bf: POP
000008c0: ADD
000008c1: SWAP2
000008c2: POP
000008c3: POP
000008c4: PUSH1 0x00
000008c6: PUSH1 0x40
000008c8: MLOAD
000008c9: DUP1
000008ca: DUP4
000008cb: SUB
000008cc: DUP2
000008cd: DUP6
000008ce: GAS
000008cf: DELEGATECALL
000008d0: SWAP2
000008d1: POP
000008d2: POP
000008d3: RETURNDATASIZE
000008d4: DUP1
000008d5: PUSH1 0x00
000008d7: DUP2
000008d8: EQ
000008d9: PUSH2 0x08fe
000008dc: JUMPI
000008dd: PUSH1 0x40
000008df: MLOAD
000008e0: SWAP2
000008e1: POP
000008e2: PUSH1 0x1f
000008e4: NOT
000008e5: PUSH1 0x3f
000008e7: RETURNDATASIZE
000008e8: ADD
000008e9: AND
000008ea: DUP3
000008eb: ADD
000008ec: PUSH1 0x40
000008ee: MSTORE
000008ef: RETURNDATASIZE
000008f0: DUP3
000008f1: MSTORE
000008f2: RETURNDATASIZE
000008f3: PUSH1 0x00
000008f5: PUSH1 0x20
000008f7: DUP5
000008f8: ADD
000008f9: RETURNDATACOPY
000008fa: PUSH2 0x0903
000008fd: JUMP
000008fe: JUMPDEST
000008ff: PUSH1 0x60
00000901: SWAP2
00000902: POP
00000903: JUMPDEST
00000904: POP
00000905: SWAP1
00000906: SWAP5
00000907: POP
00000908: SWAP3
00000909: POP
0000090a: DUP3
0000090b: DUP5
0000090c: PUSH2 0x0956
0000090f: JUMPI
00000910: PUSH1 0x40
00000912: MLOAD
00000913: PUSH3 0x461bcd
00000917: PUSH1 0xe5
00000919: SHL
0000091a: DUP2
0000091b: MSTORE
0000091c: PUSH1 0x20
0000091e: PUSH1 0x04
00000920: DUP3
00000921: ADD
00000922: DUP2
00000923: DUP2
00000924: MSTORE
00000925: DUP4
00000926: MLOAD
00000927: PUSH1 0x24
00000929: DUP5
0000092a: ADD
0000092b: MSTORE
0000092c: DUP4
0000092d: MLOAD
0000092e: SWAP1
0000092f: SWAP3
00000930: DUP4
00000931: SWAP3
00000932: PUSH1 0x44
00000934: SWAP1
00000935: SWAP2
00000936: ADD
00000937: SWAP2
00000938: SWAP1
00000939: DUP6
0000093a: ADD
0000093b: SWAP1
0000093c: DUP1
0000093d: DUP4
0000093e: DUP4
0000093f: PUSH1 0x00
00000941: DUP4
00000942: ISZERO
00000943: PUSH2 0x0651
00000946: JUMPI
00000947: DUP2
00000948: DUP2
00000949: ADD
0000094a: MLOAD
0000094b: DUP4
0000094c: DUP3
0000094d: ADD
0000094e: MSTORE
0000094f: PUSH1 0x20
00000951: ADD
00000952: PUSH2 0x0639
00000955: JUMP
00000956: JUMPDEST
00000957: POP
00000958: POP
00000959: SWAP7
0000095a: DUP8
0000095b: ADD
0000095c: SWAP7
0000095d: SWAP6
0000095e: SWAP1
0000095f: SWAP6
00000960: ADD
00000961: SWAP5
00000962: POP
00000963: POP
00000964: POP
00000965: JUMPDEST
00000966: PUSH1 0x01
00000968: ADD
00000969: PUSH2 0x0523
0000096c: JUMP
0000096d: JUMPDEST
0000096e: POP
0000096f: DUP3
00000970: DUP5
00000971: EQ
00000972: PUSH2 0x09c2
00000975: JUMPI
00000976: PUSH1 0x40
00000978: DUP1
00000979: MLOAD
0000097a: PUSH3 0x461bcd
0000097e: PUSH1 0xe5
00000980: SHL
00000981: DUP2
00000982: MSTORE
00000983: PUSH1 0x20
00000985: PUSH1 0x04
00000987: DUP3
00000988: ADD
00000989: MSTORE
0000098a: PUSH1 0x1a
0000098c: PUSH1 0x24
0000098e: DUP3
0000098f: ADD
00000990: MSTORE
00000991: PUSH32 0x4d49534d41544348494e475f494e49545f444154415f53495a45000000000000
000009b2: PUSH1 0x44
000009b4: DUP3
000009b5: ADD
000009b6: MSTORE
000009b7: SWAP1
000009b8: MLOAD
000009b9: SWAP1
000009ba: DUP2
000009bb: SWAP1
000009bc: SUB
000009bd: PUSH1 0x64
000009bf: ADD
000009c0: SWAP1
000009c1: REVERT
000009c2: JUMPDEST
000009c3: POP
000009c4: POP
000009c5: POP
000009c6: POP
000009c7: POP
000009c8: JUMPDEST
000009c9: POP
000009ca: JUMP
000009cb: JUMPDEST
000009cc: PUSH9 0x010000000000000001
000009d6: SLOAD
000009d7: DUP2
000009d8: JUMP
000009d9: JUMPDEST
000009da: PUSH9 0x010000000000000004
000009e4: SLOAD
000009e5: DUP2
000009e6: JUMP
000009e7: JUMPDEST
000009e8: PUSH9 0x010000000000000002
000009f2: PUSH1 0x20
000009f4: MSTORE
000009f5: PUSH1 0x00
000009f7: SWAP1
000009f8: DUP2
000009f9: MSTORE
000009fa: PUSH1 0x40
000009fc: SWAP1
000009fd: KECCAK256
000009fe: SLOAD
000009ff: DUP2
00000a00: JUMP
00000a01: JUMPDEST
00000a02: PUSH1 0x40
00000a04: MLOAD
00000a05: DUP1
00000a06: PUSH1 0x40
00000a08: ADD
00000a09: PUSH1 0x40
00000a0b: MSTORE
00000a0c: DUP1
00000a0d: PUSH1 0x05
00000a0f: DUP2
00000a10: MSTORE
00000a11: PUSH1 0x20
00000a13: ADD
00000a14: PUSH5 0x0312e302e3
00000a1a: PUSH1 0xdc
00000a1c: SHL
00000a1d: DUP2
00000a1e: MSTORE
00000a1f: POP
00000a20: DUP2
00000a21: JUMP
00000a22: JUMPDEST
00000a23: PUSH2 0x60ac
00000a26: SWAP1
00000a27: JUMP
00000a28: JUMPDEST
00000a29: PUSH1 0x00
00000a2b: DUP2
00000a2c: PUSH2 0x0a56
00000a2f: JUMPI
00000a30: POP
00000a31: PUSH32 0x3000100000203000002010004002012003003200010000001222000021002010
00000a52: PUSH2 0x035d
00000a55: JUMP
00000a56: JUMPDEST
00000a57: DUP2
00000a58: PUSH1 0x01
00000a5a: EQ
00000a5b: ISZERO
00000a5c: PUSH2 0x0a80
00000a5f: JUMPI
00000a60: POP
00000a61: PUSH26 0x4300000140200010000000001000030000300100000222303302
00000a7c: PUSH2 0x035d
00000a7f: JUMP
00000a80: JUMPDEST
00000a81: DUP2
00000a82: PUSH1 0x02
00000a84: EQ
00000a85: ISZERO
00000a86: PUSH2 0x0aaf
00000a89: JUMPI
00000a8a: POP
00000a8b: PUSH31 0x10001300000020200020000220001002020000320000020031100030020012
00000aab: PUSH2 0x035d
00000aae: JUMP
00000aaf: JUMPDEST
00000ab0: DUP2
00000ab1: PUSH1 0x03
00000ab3: EQ
00000ab4: ISZERO
00000ab5: PUSH2 0x0add
00000ab8: JUMPI
00000ab9: POP
00000aba: PUSH30 0x120300002000000000000100000000202001002000040101130302000000
00000ad9: PUSH2 0x035d
00000adc: JUMP
00000add: JUMPDEST
00000ade: PUSH1 0x40
00000ae0: DUP1
00000ae1: MLOAD
00000ae2: PUSH3 0x461bcd
00000ae6: PUSH1 0xe5
00000ae8: SHL
00000ae9: DUP2
00000aea: MSTORE
00000aeb: PUSH1 0x20
00000aed: PUSH1 0x04
00000aef: DUP3
00000af0: ADD
00000af1: MSTORE
00000af2: PUSH1 0x13
00000af4: PUSH1 0x24
00000af6: DUP3
00000af7: ADD
00000af8: MSTORE
00000af9: PUSH19 0x2120a22fa4a22c2fa6a0a82fa9a2a1aa24a7a7
00000b0d: PUSH1 0x69
00000b0f: SHL
00000b10: PUSH1 0x44
00000b12: DUP3
00000b13: ADD
00000b14: MSTORE
00000b15: SWAP1
00000b16: MLOAD
00000b17: SWAP1
00000b18: DUP2
00000b19: SWAP1
00000b1a: SUB
00000b1b: PUSH1 0x64
00000b1d: ADD
00000b1e: SWAP1
00000b1f: REVERT
00000b20: JUMPDEST
00000b21: PUSH1 0x04
00000b23: SWAP1
00000b24: JUMP
00000b25: JUMPDEST
00000b26: PUSH1 0x60
00000b28: DUP2
00000b29: PUSH1 0x01
00000b2b: PUSH1 0x01
00000b2d: PUSH1 0xa0
00000b2f: SHL
00000b30: SUB
00000b31: AND
00000b32: PUSH4 0xeeb72866
00000b37: PUSH1 0x40
00000b39: MLOAD
00000b3a: DUP2
00000b3b: PUSH4 0xffffffff
00000b40: AND
00000b41: PUSH1 0xe0
00000b43: SHL
00000b44: DUP2
00000b45: MSTORE
00000b46: PUSH1 0x04
00000b48: ADD
00000b49: PUSH1 0x00
00000b4b: PUSH1 0x40
00000b4d: MLOAD
00000b4e: DUP1
00000b4f: DUP4
00000b50: SUB
00000b51: DUP2
00000b52: DUP7
00000b53: DUP1
00000b54: EXTCODESIZE
00000b55: ISZERO
00000b56: DUP1
00000b57: ISZERO
00000b58: PUSH2 0x0b60
00000b5b: JUMPI
00000b5c: PUSH1 0x00
00000b5e: DUP1
00000b5f: REVERT
00000b60: JUMPDEST
00000b61: POP
00000b62: GAS
00000b63: STATICCALL
00000b64: ISZERO
00000b65: DUP1
00000b66: ISZERO
00000b67: PUSH2 0x0b74
00000b6a: JUMPI
00000b6b: RETURNDATASIZE
00000b6c: PUSH1 0x00
00000b6e: DUP1
00000b6f: RETURNDATACOPY
00000b70: RETURNDATASIZE
00000b71: PUSH1 0x00
00000b73: REVERT
00000b74: JUMPDEST
00000b75: POP
00000b76: POP
00000b77: POP
00000b78: POP
00000b79: PUSH1 0x40
00000b7b: MLOAD
00000b7c: RETURNDATASIZE
00000b7d: PUSH1 0x00
00000b7f: DUP3
00000b80: RETURNDATACOPY
00000b81: PUSH1 0x1f
00000b83: RETURNDATASIZE
00000b84: SWAP1
00000b85: DUP2
00000b86: ADD
00000b87: PUSH1 0x1f
00000b89: NOT
00000b8a: AND
00000b8b: DUP3
00000b8c: ADD
00000b8d: PUSH1 0x40
00000b8f: MSTORE
00000b90: PUSH1 0x20
00000b92: DUP2
00000b93: LT
00000b94: ISZERO
00000b95: PUSH2 0x0b9d
00000b98: JUMPI
00000b99: PUSH1 0x00
00000b9b: DUP1
00000b9c: REVERT
00000b9d: JUMPDEST
00000b9e: DUP2
00000b9f: ADD
00000ba0: SWAP1
00000ba1: DUP1
00000ba2: DUP1
00000ba3: MLOAD
00000ba4: PUSH1 0x40
00000ba6: MLOAD
00000ba7: SWAP4
00000ba8: SWAP3
00000ba9: SWAP2
00000baa: SWAP1
00000bab: DUP5
00000bac: PUSH1 0x01
00000bae: PUSH1 0x20
00000bb0: SHL
00000bb1: DUP3
00000bb2: GT
00000bb3: ISZERO
00000bb4: PUSH2 0x0bbc
00000bb7: JUMPI
00000bb8: PUSH1 0x00
00000bba: DUP1
00000bbb: REVERT
00000bbc: JUMPDEST
00000bbd: SWAP1
00000bbe: DUP4
00000bbf: ADD
00000bc0: SWAP1
00000bc1: PUSH1 0x20
00000bc3: DUP3
00000bc4: ADD
00000bc5: DUP6
00000bc6: DUP2
00000bc7: GT
00000bc8: ISZERO
00000bc9: PUSH2 0x0bd1
00000bcc: JUMPI
00000bcd: PUSH1 0x00
00000bcf: DUP1
00000bd0: REVERT
00000bd1: JUMPDEST
00000bd2: DUP3
00000bd3: MLOAD
00000bd4: PUSH1 0x01
00000bd6: PUSH1 0x20
00000bd8: SHL
00000bd9: DUP2
00000bda: GT
00000bdb: DUP3
00000bdc: DUP3
00000bdd: ADD
00000bde: DUP9
00000bdf: LT
00000be0: OR
00000be1: ISZERO
00000be2: PUSH2 0x0bea
00000be5: JUMPI
00000be6: PUSH1 0x00
00000be8: DUP1
00000be9: REVERT
00000bea: JUMPDEST
00000beb: DUP3
00000bec: MSTORE
00000bed: POP
00000bee: DUP2
00000bef: MLOAD
00000bf0: PUSH1 0x20
00000bf2: SWAP2
00000bf3: DUP3
00000bf4: ADD
00000bf5: SWAP3
00000bf6: SWAP1
00000bf7: SWAP2
00000bf8: ADD
00000bf9: SWAP1
00000bfa: DUP1
00000bfb: DUP4
00000bfc: DUP4
00000bfd: PUSH1 0x00
00000bff: JUMPDEST
00000c00: DUP4
00000c01: DUP2
00000c02: LT
00000c03: ISZERO
00000c04: PUSH2 0x0c17
00000c07: JUMPI
00000c08: DUP2
00000c09: DUP2
00000c0a: ADD
00000c0b: MLOAD
00000c0c: DUP4
00000c0d: DUP3
00000c0e: ADD
00000c0f: MSTORE
00000c10: PUSH1 0x20
00000c12: ADD
00000c13: PUSH2 0x0bff
00000c16: JUMP
00000c17: JUMPDEST
00000c18: POP
00000c19: POP
00000c1a: POP
00000c1b: POP
00000c1c: SWAP1
00000c1d: POP
00000c1e: SWAP1
00000c1f: DUP2
00000c20: ADD
00000c21: SWAP1
00000c22: PUSH1 0x1f
00000c24: AND
00000c25: DUP1
00000c26: ISZERO
00000c27: PUSH2 0x0c44
00000c2a: JUMPI
00000c2b: DUP1
00000c2c: DUP3
00000c2d: SUB
00000c2e: DUP1
00000c2f: MLOAD
00000c30: PUSH1 0x01
00000c32: DUP4
00000c33: PUSH1 0x20
00000c35: SUB
00000c36: PUSH2 0x0100
00000c39: EXP
00000c3a: SUB
00000c3b: NOT
00000c3c: AND
00000c3d: DUP2
00000c3e: MSTORE
00000c3f: PUSH1 0x20
00000c41: ADD
00000c42: SWAP2
00000c43: POP
00000c44: JUMPDEST
00000c45: POP
00000c46: PUSH1 0x40
00000c48: MSTORE
00000c49: POP
00000c4a: POP
00000c4b: POP
00000c4c: SWAP1
00000c4d: POP
00000c4e: PUSH1 0x00
00000c50: PUSH2 0x0c58
00000c53: DUP5
00000c54: PUSH2 0x11ee
00000c57: JUMP
00000c58: JUMPDEST
00000c59: PUSH1 0x40
00000c5b: MLOAD
00000c5c: PUSH1 0x20
00000c5e: ADD
00000c5f: DUP1
00000c60: DUP3
00000c61: DUP1
00000c62: MLOAD
00000c63: SWAP1
00000c64: PUSH1 0x20
00000c66: ADD
00000c67: SWAP1
00000c68: DUP1
00000c69: DUP4
00000c6a: DUP4
00000c6b: JUMPDEST
00000c6c: PUSH1 0x20
00000c6e: DUP4
00000c6f: LT
00000c70: PUSH2 0x0c8a
00000c73: JUMPI
00000c74: DUP1
00000c75: MLOAD
00000c76: DUP3
00000c77: MSTORE
00000c78: PUSH1 0x1f
00000c7a: NOT
00000c7b: SWAP1
00000c7c: SWAP3
00000c7d: ADD
00000c7e: SWAP2
00000c7f: PUSH1 0x20
00000c81: SWAP2
00000c82: DUP3
00000c83: ADD
00000c84: SWAP2
00000c85: ADD
00000c86: PUSH2 0x0c6b
00000c89: JUMP
00000c8a: JUMPDEST
00000c8b: PUSH1 0x01
00000c8d: DUP4
00000c8e: PUSH1 0x20
00000c90: SUB
00000c91: PUSH2 0x0100
00000c94: EXP
00000c95: SUB
00000c96: DUP1
00000c97: NOT
00000c98: DUP3
00000c99: MLOAD
00000c9a: AND
00000c9b: DUP2
00000c9c: DUP5
00000c9d: MLOAD
00000c9e: AND
00000c9f: DUP1
00000ca0: DUP3
00000ca1: OR
00000ca2: DUP6
00000ca3: MSTORE
00000ca4: POP
00000ca5: POP
00000ca6: POP
00000ca7: POP
00000ca8: POP
00000ca9: POP
00000caa: SWAP1
00000cab: POP
00000cac: ADD
00000cad: SWAP2
00000cae: POP
00000caf: POP
00000cb0: PUSH1 0x40
00000cb2: MLOAD
00000cb3: PUSH1 0x20
00000cb5: DUP2
00000cb6: DUP4
00000cb7: SUB
00000cb8: SUB
00000cb9: DUP2
00000cba: MSTORE
00000cbb: SWAP1
00000cbc: PUSH1 0x40
00000cbe: MSTORE
00000cbf: DUP1
00000cc0: MLOAD
00000cc1: SWAP1
00000cc2: PUSH1 0x20
00000cc4: ADD
00000cc5: KECCAK256
00000cc6: SWAP1
00000cc7: POP
00000cc8: DUP2
00000cc9: PUSH1 0x40
00000ccb: MLOAD
00000ccc: PUSH1 0x20
00000cce: ADD
00000ccf: DUP1
00000cd0: DUP3
00000cd1: DUP1
00000cd2: MLOAD
00000cd3: SWAP1
00000cd4: PUSH1 0x20
00000cd6: ADD
00000cd7: SWAP1
00000cd8: DUP1
00000cd9: DUP4
00000cda: DUP4
00000cdb: JUMPDEST
00000cdc: PUSH1 0x20
00000cde: DUP4
00000cdf: LT
00000ce0: PUSH2 0x0cfa
00000ce3: JUMPI
00000ce4: DUP1
00000ce5: MLOAD
00000ce6: DUP3
00000ce7: MSTORE
00000ce8: PUSH1 0x1f
00000cea: NOT
00000ceb: SWAP1
00000cec: SWAP3
00000ced: ADD
00000cee: SWAP2
00000cef: PUSH1 0x20
00000cf1: SWAP2
00000cf2: DUP3
00000cf3: ADD
00000cf4: SWAP2
00000cf5: ADD
00000cf6: PUSH2 0x0cdb
00000cf9: JUMP
00000cfa: JUMPDEST
00000cfb: PUSH1 0x01
00000cfd: DUP4
00000cfe: PUSH1 0x20
00000d00: SUB
00000d01: PUSH2 0x0100
00000d04: EXP
00000d05: SUB
00000d06: DUP1
00000d07: NOT
00000d08: DUP3
00000d09: MLOAD
00000d0a: AND
00000d0b: DUP2
00000d0c: DUP5
00000d0d: MLOAD
00000d0e: AND
00000d0f: DUP1
00000d10: DUP3
00000d11: OR
00000d12: DUP6
00000d13: MSTORE
00000d14: POP
00000d15: POP
00000d16: POP
00000d17: POP
00000d18: POP
00000d19: POP
00000d1a: SWAP1
00000d1b: POP
00000d1c: ADD
00000d1d: SWAP2
00000d1e: POP
00000d1f: POP
00000d20: PUSH1 0x40
00000d22: MLOAD
00000d23: PUSH1 0x20
00000d25: DUP2
00000d26: DUP4
00000d27: SUB
00000d28: SUB
00000d29: DUP2
00000d2a: MSTORE
00000d2b: SWAP1
00000d2c: PUSH1 0x40
00000d2e: MSTORE
00000d2f: DUP1
00000d30: MLOAD
00000d31: SWAP1
00000d32: PUSH1 0x20
00000d34: ADD
00000d35: KECCAK256
00000d36: DUP2
00000d37: EQ
00000d38: PUSH2 0x0d72
00000d3b: JUMPI
00000d3c: PUSH1 0x40
00000d3e: MLOAD
00000d3f: PUSH3 0x461bcd
00000d43: PUSH1 0xe5
00000d45: SHL
00000d46: DUP2
00000d47: MSTORE
00000d48: PUSH1 0x04
00000d4a: ADD
00000d4b: DUP1
00000d4c: DUP1
00000d4d: PUSH1 0x20
00000d4f: ADD
00000d50: DUP3
00000d51: DUP2
00000d52: SUB
00000d53: DUP3
00000d54: MSTORE
00000d55: PUSH1 0x22
00000d57: DUP2
00000d58: MSTORE
00000d59: PUSH1 0x20
00000d5b: ADD
00000d5c: DUP1
00000d5d: PUSH2 0x1360
00000d60: PUSH1 0x22
00000d62: SWAP2
00000d63: CODECOPY
00000d64: PUSH1 0x40
00000d66: ADD
00000d67: SWAP2
00000d68: POP
00000d69: POP
00000d6a: PUSH1 0x40
00000d6c: MLOAD
00000d6d: DUP1
00000d6e: SWAP2
00000d6f: SUB
00000d70: SWAP1
00000d71: REVERT
00000d72: JUMPDEST
00000d73: POP
00000d74: POP
00000d75: POP
00000d76: POP
00000d77: JUMP
00000d78: JUMPDEST
00000d79: PUSH1 0x00
00000d7b: SWAP2
00000d7c: DUP3
00000d7d: MSTORE
00000d7e: PUSH1 0x1e
00000d80: PUSH1 0x20
00000d82: MSTORE
00000d83: PUSH1 0x40
00000d85: SWAP1
00000d86: SWAP2
00000d87: KECCAK256
00000d88: DUP1
00000d89: SLOAD
00000d8a: PUSH1 0x01
00000d8c: PUSH1 0x01
00000d8e: PUSH1 0xa0
00000d90: SHL
00000d91: SUB
00000d92: NOT
00000d93: AND
00000d94: PUSH1 0x01
00000d96: PUSH1 0x01
00000d98: PUSH1 0xa0
00000d9a: SHL
00000d9b: SUB
00000d9c: SWAP1
00000d9d: SWAP3
00000d9e: AND
00000d9f: SWAP2
00000da0: SWAP1
00000da1: SWAP2
00000da2: OR
00000da3: SWAP1
00000da4: SSTORE
00000da5: JUMP
00000da6: JUMPDEST
00000da7: PUSH2 0x0db8
00000daa: DUP3
00000dab: PUSH1 0x01
00000dad: PUSH1 0x01
00000daf: PUSH1 0xa0
00000db1: SHL
00000db2: SUB
00000db3: AND
00000db4: PUSH2 0x1308
00000db7: JUMP
00000db8: JUMPDEST
00000db9: PUSH2 0x0dfa
00000dbc: JUMPI
00000dbd: PUSH1 0x40
00000dbf: DUP1
00000dc0: MLOAD
00000dc1: PUSH3 0x461bcd
00000dc5: PUSH1 0xe5
00000dc7: SHL
00000dc8: DUP2
00000dc9: MSTORE
00000dca: PUSH1 0x20
00000dcc: PUSH1 0x04
00000dce: DUP3
00000dcf: ADD
00000dd0: MSTORE
00000dd1: PUSH1 0x0e
00000dd3: PUSH1 0x24
00000dd5: DUP3
00000dd6: ADD
00000dd7: MSTORE
00000dd8: PUSH14 0x1393d517d057d0d3d395149050d5
00000de7: PUSH1 0x92
00000de9: SHL
00000dea: PUSH1 0x44
00000dec: DUP3
00000ded: ADD
00000dee: MSTORE
00000def: SWAP1
00000df0: MLOAD
00000df1: SWAP1
00000df2: DUP2
00000df3: SWAP1
00000df4: SUB
00000df5: PUSH1 0x64
00000df7: ADD
00000df8: SWAP1
00000df9: REVERT
00000dfa: JUMPDEST
00000dfb: DUP3
00000dfc: MLOAD
00000dfd: DUP2
00000dfe: GT
00000dff: ISZERO
00000e00: PUSH2 0x0e44
00000e03: JUMPI
00000e04: PUSH1 0x40
00000e06: DUP1
00000e07: MLOAD
00000e08: PUSH3 0x461bcd
00000e0c: PUSH1 0xe5
00000e0e: SHL
00000e0f: DUP2
00000e10: MSTORE
00000e11: PUSH1 0x20
00000e13: PUSH1 0x04
00000e15: DUP3
00000e16: ADD
00000e17: MSTORE
00000e18: PUSH1 0x11
00000e1a: PUSH1 0x24
00000e1c: DUP3
00000e1d: ADD
00000e1e: MSTORE
00000e1f: PUSH17 0x494e56414c49445f444154415f53495a45
00000e31: PUSH1 0x78
00000e33: SHL
00000e34: PUSH1 0x44
00000e36: DUP3
00000e37: ADD
00000e38: MSTORE
00000e39: SWAP1
00000e3a: MLOAD
00000e3b: SWAP1
00000e3c: DUP2
00000e3d: SWAP1
00000e3e: SUB
00000e3f: PUSH1 0x64
00000e41: ADD
00000e42: SWAP1
00000e43: REVERT
00000e44: JUMPDEST
00000e45: PUSH1 0x60
00000e47: DUP2
00000e48: PUSH8 0xffffffffffffffff
00000e51: DUP2
00000e52: GT
00000e53: DUP1
00000e54: ISZERO
00000e55: PUSH2 0x0e5d
00000e58: JUMPI
00000e59: PUSH1 0x00
00000e5b: DUP1
00000e5c: REVERT
00000e5d: JUMPDEST
00000e5e: POP
00000e5f: PUSH1 0x40
00000e61: MLOAD
00000e62: SWAP1
00000e63: DUP1
00000e64: DUP3
00000e65: MSTORE
00000e66: DUP1
00000e67: PUSH1 0x1f
00000e69: ADD
00000e6a: PUSH1 0x1f
00000e6c: NOT
00000e6d: AND
00000e6e: PUSH1 0x20
00000e70: ADD
00000e71: DUP3
00000e72: ADD
00000e73: PUSH1 0x40
00000e75: MSTORE
00000e76: DUP1
00000e77: ISZERO
00000e78: PUSH2 0x0e88
00000e7b: JUMPI
00000e7c: PUSH1 0x20
00000e7e: DUP3
00000e7f: ADD
00000e80: DUP2
00000e81: DUP1
00000e82: CALLDATASIZE
00000e83: DUP4
00000e84: CALLDATACOPY
00000e85: ADD
00000e86: SWAP1
00000e87: POP
00000e88: JUMPDEST
00000e89: POP
00000e8a: DUP5
00000e8b: MLOAD
00000e8c: SWAP1
00000e8d: SWAP2
00000e8e: POP
00000e8f: DUP3
00000e90: SWAP1
00000e91: SUB
00000e92: PUSH1 0x20
00000e94: DUP2
00000e95: DUP2
00000e96: ADD
00000e97: SWAP2
00000e98: DUP7
00000e99: ADD
00000e9a: DUP2
00000e9b: ADD
00000e9c: SWAP1
00000e9d: DUP4
00000e9e: ADD
00000e9f: PUSH1 0x00
00000ea1: JUMPDEST
00000ea2: DUP6
00000ea3: DUP2
00000ea4: LT
00000ea5: ISZERO
00000ea6: PUSH2 0x0eb9
00000ea9: JUMPI
00000eaa: DUP3
00000eab: DUP2
00000eac: ADD
00000ead: MLOAD
00000eae: DUP3
00000eaf: DUP3
00000eb0: ADD
00000eb1: MSTORE
00000eb2: PUSH1 0x20
00000eb4: ADD
00000eb5: PUSH2 0x0ea1
00000eb8: JUMP
00000eb9: JUMPDEST
00000eba: POP
00000ebb: PUSH1 0x00
00000ebd: PUSH1 0x60
00000ebf: DUP8
00000ec0: PUSH1 0x01
00000ec2: PUSH1 0x01
00000ec4: PUSH1 0xa0
00000ec6: SHL
00000ec7: SUB
00000ec8: AND
00000ec9: PUSH4 0x439fab91
00000ece: PUSH1 0xe0
00000ed0: SHL
00000ed1: DUP8
00000ed2: PUSH1 0x40
00000ed4: MLOAD
00000ed5: PUSH1 0x24
00000ed7: ADD
00000ed8: DUP1
00000ed9: DUP1
00000eda: PUSH1 0x20
00000edc: ADD
00000edd: DUP3
00000ede: DUP2
00000edf: SUB
00000ee0: DUP3
00000ee1: MSTORE
00000ee2: DUP4
00000ee3: DUP2
00000ee4: DUP2
00000ee5: MLOAD
00000ee6: DUP2
00000ee7: MSTORE
00000ee8: PUSH1 0x20
00000eea: ADD
00000eeb: SWAP2
00000eec: POP
00000eed: DUP1
00000eee: MLOAD
00000eef: SWAP1
00000ef0: PUSH1 0x20
00000ef2: ADD
00000ef3: SWAP1
00000ef4: DUP1
00000ef5: DUP4
00000ef6: DUP4
00000ef7: PUSH1 0x00
00000ef9: JUMPDEST
00000efa: DUP4
00000efb: DUP2
00000efc: LT
00000efd: ISZERO
00000efe: PUSH2 0x0f11
00000f01: JUMPI
00000f02: DUP2
00000f03: DUP2
00000f04: ADD
00000f05: MLOAD
00000f06: DUP4
00000f07: DUP3
00000f08: ADD
00000f09: MSTORE
00000f0a: PUSH1 0x20
00000f0c: ADD
00000f0d: PUSH2 0x0ef9
00000f10: JUMP
00000f11: JUMPDEST
00000f12: POP
00000f13: POP
00000f14: POP
00000f15: POP
00000f16: SWAP1
00000f17: POP
00000f18: SWAP1
00000f19: DUP2
00000f1a: ADD
00000f1b: SWAP1
00000f1c: PUSH1 0x1f
00000f1e: AND
00000f1f: DUP1
00000f20: ISZERO
00000f21: PUSH2 0x0f3e
00000f24: JUMPI
00000f25: DUP1
00000f26: DUP3
00000f27: SUB
00000f28: DUP1
00000f29: MLOAD
00000f2a: PUSH1 0x01
00000f2c: DUP4
00000f2d: PUSH1 0x20
00000f2f: SUB
00000f30: PUSH2 0x0100
00000f33: EXP
00000f34: SUB
00000f35: NOT
00000f36: AND
00000f37: DUP2
00000f38: MSTORE
00000f39: PUSH1 0x20
00000f3b: ADD
00000f3c: SWAP2
00000f3d: POP
00000f3e: JUMPDEST
00000f3f: POP
00000f40: PUSH1 0x40
00000f42: DUP1
00000f43: MLOAD
00000f44: PUSH1 0x1f
00000f46: NOT
00000f47: DUP2
00000f48: DUP5
00000f49: SUB
00000f4a: ADD
00000f4b: DUP2
00000f4c: MSTORE
00000f4d: SWAP2
00000f4e: DUP2
00000f4f: MSTORE
00000f50: PUSH1 0x20
00000f52: DUP3
00000f53: ADD
00000f54: DUP1
00000f55: MLOAD
00000f56: PUSH1 0x01
00000f58: PUSH1 0x01
00000f5a: PUSH1 0xe0
00000f5c: SHL
00000f5d: SUB
00000f5e: AND
00000f5f: PUSH1 0x01
00000f61: PUSH1 0x01
00000f63: PUSH1 0xe0
00000f65: SHL
00000f66: SUB
00000f67: NOT
00000f68: SWAP1
00000f69: SWAP8
00000f6a: AND
00000f6b: SWAP7
00000f6c: SWAP1
00000f6d: SWAP7
00000f6e: OR
00000f6f: DUP7
00000f70: MSTORE
00000f71: MLOAD
00000f72: DUP2
00000f73: MLOAD
00000f74: SWAP2
00000f75: SWAP6
00000f76: SWAP1
00000f77: SWAP5
00000f78: POP
00000f79: DUP5
00000f7a: SWAP4
00000f7b: POP
00000f7c: SWAP2
00000f7d: POP
00000f7e: DUP1
00000f7f: DUP4
00000f80: DUP4
00000f81: JUMPDEST
00000f82: PUSH1 0x20
00000f84: DUP4
00000f85: LT
00000f86: PUSH2 0x0fa0
00000f89: JUMPI
00000f8a: DUP1
00000f8b: MLOAD
00000f8c: DUP3
00000f8d: MSTORE
00000f8e: PUSH1 0x1f
00000f90: NOT
00000f91: SWAP1
00000f92: SWAP3
00000f93: ADD
00000f94: SWAP2
00000f95: PUSH1 0x20
00000f97: SWAP2
00000f98: DUP3
00000f99: ADD
00000f9a: SWAP2
00000f9b: ADD
00000f9c: PUSH2 0x0f81
00000f9f: JUMP
00000fa0: JUMPDEST
00000fa1: PUSH1 0x01
00000fa3: DUP4
00000fa4: PUSH1 0x20
00000fa6: SUB
00000fa7: PUSH2 0x0100
00000faa: EXP
00000fab: SUB
00000fac: DUP1
00000fad: NOT
00000fae: DUP3
00000faf: MLOAD
00000fb0: AND
00000fb1: DUP2
00000fb2: DUP5
00000fb3: MLOAD
00000fb4: AND
00000fb5: DUP1
00000fb6: DUP3
00000fb7: OR
00000fb8: DUP6
00000fb9: MSTORE
00000fba: POP
00000fbb: POP
00000fbc: POP
00000fbd: POP
00000fbe: POP
00000fbf: POP
00000fc0: SWAP1
00000fc1: POP
00000fc2: ADD
00000fc3: SWAP2
00000fc4: POP
00000fc5: POP
00000fc6: PUSH1 0x00
00000fc8: PUSH1 0x40
00000fca: MLOAD
00000fcb: DUP1
00000fcc: DUP4
00000fcd: SUB
00000fce: DUP2
00000fcf: DUP6
00000fd0: GAS
00000fd1: DELEGATECALL
00000fd2: SWAP2
00000fd3: POP
00000fd4: POP
00000fd5: RETURNDATASIZE
00000fd6: DUP1
00000fd7: PUSH1 0x00
00000fd9: DUP2
00000fda: EQ
00000fdb: PUSH2 0x1000
00000fde: JUMPI
00000fdf: PUSH1 0x40
00000fe1: MLOAD
00000fe2: SWAP2
00000fe3: POP
00000fe4: PUSH1 0x1f
00000fe6: NOT
00000fe7: PUSH1 0x3f
00000fe9: RETURNDATASIZE
00000fea: ADD
00000feb: AND
00000fec: DUP3
00000fed: ADD
00000fee: PUSH1 0x40
00000ff0: MSTORE
00000ff1: RETURNDATASIZE
00000ff2: DUP3
00000ff3: MSTORE
00000ff4: RETURNDATASIZE
00000ff5: PUSH1 0x00
00000ff7: PUSH1 0x20
00000ff9: DUP5
00000ffa: ADD
00000ffb: RETURNDATACOPY
00000ffc: PUSH2 0x1005
00000fff: JUMP
00001000: JUMPDEST
00001001: PUSH1 0x60
00001003: SWAP2
00001004: POP
00001005: JUMPDEST
00001006: POP
00001007: SWAP2
00001008: POP
00001009: SWAP2
0000100a: POP
0000100b: DUP2
0000100c: DUP2
0000100d: SWAP1
0000100e: PUSH2 0x1058
00001011: JUMPI
00001012: PUSH1 0x40
00001014: MLOAD
00001015: PUSH3 0x461bcd
00001019: PUSH1 0xe5
0000101b: SHL
0000101c: DUP2
0000101d: MSTORE
0000101e: PUSH1 0x20
00001020: PUSH1 0x04
00001022: DUP3
00001023: ADD
00001024: DUP2
00001025: DUP2
00001026: MSTORE
00001027: DUP4
00001028: MLOAD
00001029: PUSH1 0x24
0000102b: DUP5
0000102c: ADD
0000102d: MSTORE
0000102e: DUP4
0000102f: MLOAD
00001030: SWAP1
00001031: SWAP3
00001032: DUP4
00001033: SWAP3
00001034: PUSH1 0x44
00001036: SWAP1
00001037: SWAP2
00001038: ADD
00001039: SWAP2
0000103a: SWAP1
0000103b: DUP6
0000103c: ADD
0000103d: SWAP1
0000103e: DUP1
0000103f: DUP4
00001040: DUP4
00001041: PUSH1 0x00
00001043: DUP4
00001044: ISZERO
00001045: PUSH2 0x0651
00001048: JUMPI
00001049: DUP2
0000104a: DUP2
0000104b: ADD
0000104c: MLOAD
0000104d: DUP4
0000104e: DUP3
0000104f: ADD
00001050: MSTORE
00001051: PUSH1 0x20
00001053: ADD
00001054: PUSH2 0x0639
00001057: JUMP
00001058: JUMPDEST
00001059: POP
0000105a: DUP1
0000105b: MLOAD
0000105c: DUP2
0000105d: SWAP1
0000105e: ISZERO
0000105f: PUSH2 0x10a9
00001062: JUMPI
00001063: PUSH1 0x40
00001065: MLOAD
00001066: PUSH3 0x461bcd
0000106a: PUSH1 0xe5
0000106c: SHL
0000106d: DUP2
0000106e: MSTORE
0000106f: PUSH1 0x20
00001071: PUSH1 0x04
00001073: DUP3
00001074: ADD
00001075: DUP2
00001076: DUP2
00001077: MSTORE
00001078: DUP4
00001079: MLOAD
0000107a: PUSH1 0x24
0000107c: DUP5
0000107d: ADD
0000107e: MSTORE
0000107f: DUP4
00001080: MLOAD
00001081: SWAP1
00001082: SWAP3
00001083: DUP4
00001084: SWAP3
00001085: PUSH1 0x44
00001087: SWAP1
00001088: SWAP2
00001089: ADD
0000108a: SWAP2
0000108b: SWAP1
0000108c: DUP6
0000108d: ADD
0000108e: SWAP1
0000108f: DUP1
00001090: DUP4
00001091: DUP4
00001092: PUSH1 0x00
00001094: DUP4
00001095: ISZERO
00001096: PUSH2 0x0651
00001099: JUMPI
0000109a: DUP2
0000109b: DUP2
0000109c: ADD
0000109d: MLOAD
0000109e: DUP4
0000109f: DUP3
000010a0: ADD
000010a1: MSTORE
000010a2: PUSH1 0x20
000010a4: ADD
000010a5: PUSH2 0x0639
000010a8: JUMP
000010a9: JUMPDEST
000010aa: POP
000010ab: POP
000010ac: POP
000010ad: POP
000010ae: POP
000010af: POP
000010b0: POP
000010b1: POP
000010b2: POP
000010b3: POP
000010b4: JUMP
000010b5: JUMPDEST
000010b6: PUSH1 0x40
000010b8: DUP1
000010b9: MLOAD
000010ba: DUP1
000010bb: DUP3
000010bc: ADD
000010bd: SWAP1
000010be: SWAP2
000010bf: MSTORE
000010c0: PUSH1 0x16
000010c2: DUP2
000010c3: MSTORE
000010c4: PUSH22 0x12539255125053125690551253d397d09313d0d2d151
000010db: PUSH1 0x52
000010dd: SHL
000010de: PUSH1 0x20
000010e0: DUP3
000010e1: ADD
000010e2: MSTORE
000010e3: PUSH9 0x010000000000000003
000010ed: SLOAD
000010ee: DUP2
000010ef: SWAP1
000010f0: ISZERO
000010f1: PUSH2 0x113b
000010f4: JUMPI
000010f5: PUSH1 0x40
000010f7: MLOAD
000010f8: PUSH3 0x461bcd
000010fc: PUSH1 0xe5
000010fe: SHL
000010ff: DUP2
00001100: MSTORE
00001101: PUSH1 0x20
00001103: PUSH1 0x04
00001105: DUP3
00001106: ADD
00001107: DUP2
00001108: DUP2
00001109: MSTORE
0000110a: DUP4
0000110b: MLOAD
0000110c: PUSH1 0x24
0000110e: DUP5
0000110f: ADD
00001110: MSTORE
00001111: DUP4
00001112: MLOAD
00001113: SWAP1
00001114: SWAP3
00001115: DUP4
00001116: SWAP3
00001117: PUSH1 0x44
00001119: SWAP1
0000111a: SWAP2
0000111b: ADD
0000111c: SWAP2
0000111d: SWAP1
0000111e: DUP6
0000111f: ADD
00001120: SWAP1
00001121: DUP1
00001122: DUP4
00001123: DUP4
00001124: PUSH1 0x00
00001126: DUP4
00001127: ISZERO
00001128: PUSH2 0x0651
0000112b: JUMPI
0000112c: DUP2
0000112d: DUP2
0000112e: ADD
0000112f: MLOAD
00001130: DUP4
00001131: DUP3
00001132: ADD
00001133: MSTORE
00001134: PUSH1 0x20
00001136: ADD
00001137: PUSH2 0x0639
0000113a: JUMP
0000113b: JUMPDEST
0000113c: POP
0000113d: PUSH9 0x010000000000000001
00001147: SLOAD
00001148: DUP2
00001149: SWAP1
0000114a: ISZERO
0000114b: PUSH2 0x1195
0000114e: JUMPI
0000114f: PUSH1 0x40
00001151: MLOAD
00001152: PUSH3 0x461bcd
00001156: PUSH1 0xe5
00001158: SHL
00001159: DUP2
0000115a: MSTORE
0000115b: PUSH1 0x20
0000115d: PUSH1 0x04
0000115f: DUP3
00001160: ADD
00001161: DUP2
00001162: DUP2
00001163: MSTORE
00001164: DUP4
00001165: MLOAD
00001166: PUSH1 0x24
00001168: DUP5
00001169: ADD
0000116a: MSTORE
0000116b: DUP4
0000116c: MLOAD
0000116d: SWAP1
0000116e: SWAP3
0000116f: DUP4
00001170: SWAP3
00001171: PUSH1 0x44
00001173: SWAP1
00001174: SWAP2
00001175: ADD
00001176: SWAP2
00001177: SWAP1
00001178: DUP6
00001179: ADD
0000117a: SWAP1
0000117b: DUP1
0000117c: DUP4
0000117d: DUP4
0000117e: PUSH1 0x00
00001180: DUP4
00001181: ISZERO
00001182: PUSH2 0x0651
00001185: JUMPI
00001186: DUP2
00001187: DUP2
00001188: ADD
00001189: MLOAD
0000118a: DUP4
0000118b: DUP3
0000118c: ADD
0000118d: MSTORE
0000118e: PUSH1 0x20
00001190: ADD
00001191: PUSH2 0x0639
00001194: JUMP
00001195: JUMPDEST
00001196: POP
00001197: PUSH1 0x01
00001199: PUSH1 0x40
0000119b: SHL
0000119c: SLOAD
0000119d: DUP2
0000119e: SWAP1
0000119f: ISZERO
000011a0: PUSH2 0x11ea
000011a3: JUMPI
000011a4: PUSH1 0x40
000011a6: MLOAD
000011a7: PUSH3 0x461bcd
000011ab: PUSH1 0xe5
000011ad: SHL
000011ae: DUP2
000011af: MSTORE
000011b0: PUSH1 0x20
000011b2: PUSH1 0x04
000011b4: DUP3
000011b5: ADD
000011b6: DUP2
000011b7: DUP2
000011b8: MSTORE
000011b9: DUP4
000011ba: MLOAD
000011bb: PUSH1 0x24
000011bd: DUP5
000011be: ADD
000011bf: MSTORE
000011c0: DUP4
000011c1: MLOAD
000011c2: SWAP1
000011c3: SWAP3
000011c4: DUP4
000011c5: SWAP3
000011c6: PUSH1 0x44
000011c8: SWAP1
000011c9: SWAP2
000011ca: ADD
000011cb: SWAP2
000011cc: SWAP1
000011cd: DUP6
000011ce: ADD
000011cf: SWAP1
000011d0: DUP1
000011d1: DUP4
000011d2: DUP4
000011d3: PUSH1 0x00
000011d5: DUP4
000011d6: ISZERO
000011d7: PUSH2 0x0651
000011da: JUMPI
000011db: DUP2
000011dc: DUP2
000011dd: ADD
000011de: MLOAD
000011df: DUP4
000011e0: DUP3
000011e1: ADD
000011e2: MSTORE
000011e3: PUSH1 0x20
000011e5: ADD
000011e6: PUSH2 0x0639
000011e9: JUMP
000011ea: JUMPDEST
000011eb: POP
000011ec: POP
000011ed: JUMP
000011ee: JUMPDEST
000011ef: PUSH1 0x60
000011f1: DUP2
000011f2: PUSH1 0x01
000011f4: EQ
000011f5: ISZERO
000011f6: PUSH2 0x1233
000011f9: JUMPI
000011fa: POP
000011fb: PUSH1 0x40
000011fd: DUP1
000011fe: MLOAD
000011ff: DUP1
00001200: DUP3
00001201: ADD
00001202: SWAP1
00001203: SWAP2
00001204: MSTORE
00001205: PUSH1 0x1d
00001207: DUP2
00001208: MSTORE
00001209: PUSH32 0x537461726b576172655f416c6c5665726966696572735f323032305f31000000
0000122a: PUSH1 0x20
0000122c: DUP3
0000122d: ADD
0000122e: MSTORE
0000122f: PUSH2 0x035d
00001232: JUMP
00001233: JUMPDEST
00001234: DUP2
00001235: PUSH1 0x02
00001237: EQ
00001238: ISZERO
00001239: PUSH2 0x125c
0000123c: JUMPI
0000123d: PUSH1 0x40
0000123f: MLOAD
00001240: DUP1
00001241: PUSH1 0x60
00001243: ADD
00001244: PUSH1 0x40
00001246: MSTORE
00001247: DUP1
00001248: PUSH1 0x2a
0000124a: DUP2
0000124b: MSTORE
0000124c: PUSH1 0x20
0000124e: ADD
0000124f: PUSH2 0x1336
00001252: PUSH1 0x2a
00001254: SWAP2
00001255: CODECOPY
00001256: SWAP1
00001257: POP
00001258: PUSH2 0x035d
0000125b: JUMP
0000125c: JUMPDEST
0000125d: DUP2
0000125e: PUSH1 0x03
00001260: EQ
00001261: ISZERO
00001262: PUSH2 0x129f
00001265: JUMPI
00001266: POP
00001267: PUSH1 0x40
00001269: DUP1
0000126a: MLOAD
0000126b: DUP1
0000126c: DUP3
0000126d: ADD
0000126e: SWAP1
0000126f: SWAP2
00001270: MSTORE
00001271: PUSH1 0x1f
00001273: DUP2
00001274: MSTORE
00001275: PUSH32 0x537461726b576172655f50657270657475616c53746174655f323032305f3100
00001296: PUSH1 0x20
00001298: DUP3
00001299: ADD
0000129a: MSTORE
0000129b: PUSH2 0x035d
0000129e: JUMP
0000129f: JUMPDEST
000012a0: DUP2
000012a1: PUSH1 0x04
000012a3: EQ
000012a4: ISZERO
000012a5: PUSH2 0x12c8
000012a8: JUMPI
000012a9: PUSH1 0x40
000012ab: MLOAD
000012ac: DUP1
000012ad: PUSH1 0x60
000012af: ADD
000012b0: PUSH1 0x40
000012b2: MSTORE
000012b3: DUP1
000012b4: PUSH1 0x27
000012b6: DUP2
000012b7: MSTORE
000012b8: PUSH1 0x20
000012ba: ADD
000012bb: PUSH2 0x130f
000012be: PUSH1 0x27
000012c0: SWAP2
000012c1: CODECOPY
000012c2: SWAP1
000012c3: POP
000012c4: PUSH2 0x035d
000012c7: JUMP
000012c8: JUMPDEST
000012c9: PUSH1 0x40
000012cb: DUP1
000012cc: MLOAD
000012cd: PUSH3 0x461bcd
000012d1: PUSH1 0xe5
000012d3: SHL
000012d4: DUP2
000012d5: MSTORE
000012d6: PUSH1 0x20
000012d8: PUSH1 0x04
000012da: DUP3
000012db: ADD
000012dc: MSTORE
000012dd: PUSH1 0x10
000012df: PUSH1 0x24
000012e1: DUP3
000012e2: ADD
000012e3: MSTORE
000012e4: PUSH16 0x0aa9c8ab0a08a86a88a88be929c888ab
000012f5: PUSH1 0x83
000012f7: SHL
000012f8: PUSH1 0x44
000012fa: DUP3
000012fb: ADD
000012fc: MSTORE
000012fd: SWAP1
000012fe: MLOAD
000012ff: SWAP1
00001300: DUP2
00001301: SWAP1
00001302: SUB
00001303: PUSH1 0x64
00001305: ADD
00001306: SWAP1
00001307: REVERT
00001308: JUMPDEST
00001309: EXTCODESIZE
0000130a: ISZERO
0000130b: ISZERO
0000130c: SWAP1
0000130d: JUMP
0000130e: INVALID
0000130f: MSTORE8
00001310: PUSH21 0x61726b576172655f50657270657475616c466f7263
00001326: PUSH6 0x64416374696f
0000132d: PUSH15 0x735f323032305f31537461726b5761
0000133d: PUSH19 0x655f50657270657475616c546f6b656e73416e
00001351: PUSH5 0x52616d7069
00001357: PUSH15 0x675f323032305f314d4953504c4143
00001367: GASLIMIT
00001368: DIFFICULTY
00001369: PUSH0
0000136a: BLOBHASH
0000136b: UNKNOWN(0x4E)
0000136c: DIFFICULTY
0000136d: GASLIMIT
0000136e: PC
0000136f: PUSH0
00001370: UNKNOWN(0x4F)
00001371: MSTORE
00001372: PUSH0
00001373: TIMESTAMP
00001374: COINBASE
00001375: DIFFICULTY
00001376: PUSH0
00001377: NUMBER
00001378: UNKNOWN(0x4F)
00001379: UNKNOWN(0x4E)
0000137a: SLOAD
0000137b: MSTORE
0000137c: COINBASE
0000137d: NUMBER
0000137e: SLOAD
0000137f: PUSH0
00001380: BLOBHASH
00001381: DIFFICULTY
00001382: LOG2
00001383: PUSH5 0x6970667358
00001389: UNKNOWN(0x22)
0000138a: SLT
0000138b: KECCAK256
0000138c: SDIV
0000138d: UNKNOWN(0xE8)
0000138e: UNKNOWN(0xB7)
0000138f: LOG1
00001390: PUSH0
00001391: SWAP4
00001392: UNKNOWN(0xAC)
00001393: UNKNOWN(0xCE)
00001394: OR
00001395: UNKNOWN(0xB8)
00001396: UNKNOWN(0xB7)
00001397: GAS
00001398: UNKNOWN(0x4D)
00001399: UNKNOWN(0x4B)
0000139a: UNKNOWN(0xDF)
0000139b: DIV
0000139c: UNKNOWN(0xA6)
0000139d: LOG2
0000139e: UNKNOWN(0x22)
0000139f: SIGNEXTEND
000013a0: SWAP1
000013a1: DUP9
000013a2: BLOBHASH
000013a3: UNKNOWN(0xEA)
000013a4: RETURNDATACOPY
000013a5: COINBASE
000013a6: PC
000013a7: DUP12
000013a8: UNKNOWN(0xE7)
000013a9: UNKNOWN(0xE3)
000013aa: PUSH23

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical access_control codex Unprotected initializer allows arbitrary subcontract replacement and delegatecall execution 90 no
view
evidence_json
{
    "evidence": "`initialize` is `public` with no access control; it sets `subContracts` from calldata and returns early when `additionalDataSize == 0`, allowing reconfiguration without the sentinel guard. It also allows arbitrary `externalInitializerAddr` delegatecall from calldata.",
    "locations": [
        "contracts/MainDispatcherBase.sol:126",
        "contracts/MainDispatcherBase.sol:148",
        "contracts/MainDispatcherBase.sol:171",
        "contracts/MainDispatcherBase.sol:179",
        "contracts/MainDispatcherBase.sol:270"
    ],
    "recommendation": "Restrict `initialize` to a trusted governance/upgrade authority and enforce a one-time (or versioned) initialization flag. Also ensure the \u201cno additional data\u201d path cannot be used to reconfigure subcontracts without explicit authorization (e.g., always require an initialization sentinel or `initialized` guard). Consider validating external initializer addresses against an allowlist in upgrades.",
    "exploit_scenario": "Any external account can call `initialize` on the dispatcher/proxy with crafted data. Because there is no access control, the caller can set `subContracts` to attacker-controlled implementations (passing `identify()` checks) and immediately hijack all delegated function calls. Alternatively, the caller can supply a non-zero external initializer address and trigger `delegatecall` into attacker code, gaining full control over storage (e.g., governance, asset mappings, balances) and potentially draining funds."
}
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0xef6b2947733a5958ec902ab6afbd0013935f272119feffbf8e6061e3af66b661
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 60,
    "trace_id": "0xef6b2947733a5958ec902ab6afbd0013935f272119feffbf8e6061e3af66b661",
    "confirmed": false,
    "trace_mode": "callTracer",
    "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": "0x439fab91",
            "selector": "0x439fab91",
            "calldata_variants": [
                "0x439fab91",
                "0x439fab910000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xadac3e15",
            "selector": "0xadac3e15",
            "calldata_variants": [
                "0xadac3e15",
                "0xadac3e150000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc1a85130",
            "selector": "0xc1a85130",
            "calldata_variants": [
                "0xc1a85130",
                "0xc1a851300000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2011f66",
            "selector": "0xf2011f66",
            "calldata_variants": [
                "0xf2011f66",
                "0xf2011f660000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffa1ad74",
            "selector": "0xffa1ad74",
            "calldata_variants": [
                "0xffa1ad74",
                "0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 285,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 1480,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 2255,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 4,
    "untrusted_delegatecall_count": 4
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 4
}