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

Analysis Run

83c46581-935d-4c5c-8596-6954c0074eb5

complete
Chain ID
1
Address
Block Number
Created
Thu, Jan 1, 2026 9: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
Unprotected initialize allows exchange takeover and full fund drain
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
31137 report.consolidate complete 1 / 1 3 months ago
76636 artifact.fetch complete 1 / 3 1 week ago
76637 tool.cast_disasm complete 1 / 3 1 week ago
76638 analysis.bundle complete 1 / 3 1 week ago
76639 capability.graph complete 1 / 3 1 week ago
76640 detector.run complete 1 / 3 1 week ago
76641 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
Unprotected initializer lets anyone seize the exchange role before initialization and drain all funds held by the deposit contract.
View stderr
[codex:503513] OpenAI Codex v0.77.0 (research preview)
[codex:503513] --------
[codex:503513] workdir: /tmp/codex-multi-hl7hem2w
[codex:503513] model: gpt-5.2-codex
[codex:503513] provider: openai
[codex:503513] approval: never
[codex:503513] sandbox: read-only
[codex:503513] reasoning effort: xhigh
[codex:503513] reasoning summaries: auto
[codex:503513] session id: 019b7b74-75df-7152-8e6a-08e147547a1d
[codex:503513] --------
[codex:503513] user
[codex:503513] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:503513] 
[codex:503513] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:503513] 
[codex:503513] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:503513] - Gas inefficiency, code quality, naming, or best practices
[codex:503513] - Theoretical vulnerabilities without a clear extraction path
[codex:503513] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:503513] - Front-running unless it enables theft beyond MEV
[codex:503513] - DoS, griefing, or issues that don't result in attacker profit
[codex:503513] - Missing events, view function issues, or informational findings
[codex:503513] 
[codex:503513] HIGH-VALUE PATTERNS TO HUNT:
[codex:503513] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:503513] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:503513] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:503513] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:503513] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:503513] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:503513] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:503513] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:503513] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:503513] 
[codex:503513] For each finding, you MUST provide:
[codex:503513] 1. Exact file and line numbers of vulnerable code
[codex:503513] 2. Step-by-step exploit transaction sequence
[codex:503513] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:503513] 
[codex:503513] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:503513] 
[codex:503513] Output MUST be valid JSON matching the provided schema.
[codex:503513] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:503513] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:503513] mcp startup: no servers
[codex:503513] 
[codex:503513] thinking
[codex:503513] **Reading AUDIT_BUNDLE.txt**
[codex:503513] exec
[codex:503513] /bin/bash -lc ls in /tmp/codex-multi-hl7hem2w succeeded in 5ms:
[codex:503513] AUDIT_BUNDLE.txt
[codex:503513] codex-output-schema.json
[codex:503513] contracts
[codex:503513] exec
[codex:503513] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-hl7hem2w succeeded in 8ms:
[codex:503513] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:503513] 
[codex:503513] ================================================================================
[codex:503513] FILE: contracts/Contract.sol
[codex:503513] ================================================================================
[codex:503513] // SPDX-License-Identifier: Apache-2.0
[codex:503513] // Copyright 2017 Loopring Technology Limited.
[codex:503513] pragma solidity ^0.7.0;
[codex:503513] 
[codex:503513] 
[codex:503513] /// @title Ownable
[codex:503513] /// @author Brecht Devos - <brecht@loopring.org>
[codex:503513] /// @dev The Ownable contract has an owner address, and provides basic
[codex:503513] ///      authorization control functions, this simplifies the implementation of
[codex:503513] ///      "user permissions".
[codex:503513] contract Ownable
[codex:503513] {
[codex:503513]     address public owner;
[codex:503513] 
[codex:503513]     event OwnershipTransferred(
[codex:503513] 
[codex:503513] thinking
[codex:503513] **Analyzing initialization vulnerability**
[codex:503513] exec
[codex:503513] /bin/bash -lc 'nl -ba contracts/Contract.sol' in /tmp/codex-multi-hl7hem2w succeeded in 7ms:
[codex:503513]      1	// SPDX-License-Identifier: Apache-2.0
[codex:503513]      2	// Copyright 2017 Loopring Technology Limited.
[codex:503513]      3	pragma solidity ^0.7.0;
[codex:503513]      4	
[codex:503513]      5	
[codex:503513]      6	/// @title Ownable
[codex:503513]      7	/// @author Brecht Devos - <brecht@loopring.org>
[codex:503513]      8	/// @dev The Ownable contract has an owner address, and provides basic
[codex:503513]      9	///      authorization control functions, this simplifies the implementation of
[codex:503513]     10	///      "user permissions".
[codex:503513]     11	contract Ownable
[codex:503513]     12	{
[codex:503513]     13	    address public owner;
[codex:503513]     14	
[codex:503513]     15	    event OwnershipTransferred(
[codex:503513]     16	        address indexed previousOwner,
[codex:503513]     17	        address indexed newOwner
[codex:503513]     18	    );
[codex:503513]     19	
[codex:503513]     20	    /// @dev The Ownable constructor sets the original `owner` of the contract
[codex:503513] 
[codex:503513] 
[codex:503513] thinking
[codex:503513] **Analyzing unprotected initialize vulnerability**
[codex:503513] thinking
[codex:503513] **Preparing detailed JSON vulnerability report**
[codex:503513] 
[codex:503513] I’m assembling a complete JSON report outlining the unprotected initialize exploit with step-by-step scenario, severity, evidence, locations, and recommendations to match the required schema and clearly communicate the concrete profit path.
[codex:503513] codex
[codex:503513] {"no_findings":false,"summary":"Unprotected initializer lets anyone seize the exchange role before initialization and drain all funds held by the deposit contract.","findings":[{"severity":"critical","category":"upgradeability","title":"Unprotected initialize allows exchange takeover and full fund drain","exploit_scenario":"1) Before `exchange` is set, attacker calls `initialize(attackerExchange)` and becomes both `owner` and `exchange` because there is no access control. 2) As `exchange`, attacker calls `withdraw(..., token, amount, ...)` for ETH (token = 0x0) and each ERC20 with `amount` set to the contract’s balance, transferring all funds to themselves. 3) Optional: attacker calls `transfer(from, attacker, token, amount)` to pull any user allowances granted to the deposit contract. Profit potential: up to the entire ETH/ERC20 balances held by the deposit contract plus any user allowances approved to it.","recommendation":"Protect `initialize` with an explicit access control check (e.g., onlyOwner/onlyProxy), or set `exchange` in a constructor for non-proxy deployments and disable the initializer on the implementation contract.","evidence":"`initialize` is `external` and only checks `exchange == address(0)` before setting `owner = msg.sender` and `exchange = _exchange`, enabling anyone to claim control if not yet initialized (contracts/Contract.sol:925-936).","locations":["contracts/Contract.sol:925","contracts/Contract.sol:934","contracts/Contract.sol:935"]}]}
[codex:503513] tokens used
[codex:503513] 24,483
[codex:503513] {"no_findings":false,"summary":"Unprotected initializer lets anyone seize the exchange role before initialization and drain all funds held by the deposit contract.","findings":[{"severity":"critical","category":"upgradeability","title":"Unprotected initialize allows exchange takeover and full fund drain","exploit_scenario":"1) Before `exchange` is set, attacker calls `initialize(attackerExchange)` and becomes both `owner` and `exchange` because there is no access control. 2) As `exchange`, attacker calls `withdraw(..., token, amount, ...)` for ETH (token = 0x0) and each ERC20 with `amount` set to the contract’s balance, transferring all funds to themselves. 3) Optional: attacker calls `transfer(from, attacker, token, amount)` to pull any user allowances granted to the deposit contract. Profit potential: up to the entire ETH/ERC20 balances held by the deposit contract plus any user allowances approved to it.","recommendation":"Protect `initialize` with an explicit access control check (e.g., onlyOwner/onlyProxy), or set `exchange` in a constructor for non-proxy deployments and disable the initializer on the implementation contract.","evidence":"`initialize` is `external` and only checks `exchange == address(0)` before setting `owner = msg.sender` and `exchange = _exchange`, enabling anyone to claim control if not yet initialized (contracts/Contract.sol:925-936).","locations":["contracts/Contract.sol:925","contracts/Contract.sol:934","contracts/Contract.sol:935"]}]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-01T21:28:22.339526+00:00",
        "returncode": 0
    },
    "summary": "Unprotected initializer lets anyone seize the exchange role before initialization and drain all funds held by the deposit contract.",
    "raw_final": {
        "summary": "Unprotected initializer lets anyone seize the exchange role before initialization and drain all funds held by the deposit contract.",
        "findings": [
            {
                "title": "Unprotected initialize allows exchange takeover and full fund drain",
                "category": "upgradeability",
                "evidence": "`initialize` is `external` and only checks `exchange == address(0)` before setting `owner = msg.sender` and `exchange = _exchange`, enabling anyone to claim control if not yet initialized (contracts/Contract.sol:925-936).",
                "severity": "critical",
                "locations": [
                    "contracts/Contract.sol:925",
                    "contracts/Contract.sol:934",
                    "contracts/Contract.sol:935"
                ],
                "recommendation": "Protect `initialize` with an explicit access control check (e.g., onlyOwner/onlyProxy), or set `exchange` in a constructor for non-proxy deployments and disable the initializer on the implementation contract.",
                "exploit_scenario": "1) Before `exchange` is set, attacker calls `initialize(attackerExchange)` and becomes both `owner` and `exchange` because there is no access control. 2) As `exchange`, attacker calls `withdraw(..., token, amount, ...)` for ETH (token = 0x0) and each ERC20 with `amount` set to the contract\u2019s balance, transferring all funds to themselves. 3) Optional: attacker calls `transfer(from, attacker, token, amount)` to pull any user allowances granted to the deposit contract. Profit potential: up to the entire ETH/ERC20 balances held by the deposit contract plus any user allowances approved to it."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
6
EXT*/BALANCE
3
Total opcodes
2696
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x00d2
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0xc4d66de8
00000019: GT
0000001a: PUSH2 0x007f
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xf18d03cc
00000024: GT
00000025: PUSH2 0x0059
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xf18d03cc
0000002f: EQ
00000030: PUSH2 0x02ec
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xf2fde38b
0000003a: EQ
0000003b: PUSH2 0x0335
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xf3d790b7
00000045: EQ
00000046: PUSH2 0x0375
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf70a2508
00000050: EQ
00000051: PUSH2 0x0441
00000054: JUMPI
00000055: PUSH2 0x00d2
00000058: JUMP
00000059: JUMPDEST
0000005a: DUP1
0000005b: PUSH4 0xc4d66de8
00000060: EQ
00000061: PUSH2 0x0282
00000064: JUMPI
00000065: DUP1
00000066: PUSH4 0xd2f7265a
0000006b: EQ
0000006c: PUSH2 0x02c2
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xe30c3978
00000076: EQ
00000077: PUSH2 0x02d7
0000007a: JUMPI
0000007b: PUSH2 0x00d2
0000007e: JUMP
0000007f: JUMPDEST
00000080: DUP1
00000081: PUSH4 0x715018a6
00000086: GT
00000087: PUSH2 0x00b0
0000008a: JUMPI
0000008b: DUP1
0000008c: PUSH4 0x715018a6
00000091: EQ
00000092: PUSH2 0x01db
00000095: JUMPI
00000096: DUP1
00000097: PUSH4 0x75151b63
0000009c: EQ
0000009d: PUSH2 0x01f0
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0x8da5cb5b
000000a7: EQ
000000a8: PUSH2 0x0244
000000ab: JUMPI
000000ac: PUSH2 0x00d2
000000af: JUMP
000000b0: JUMPDEST
000000b1: DUP1
000000b2: PUSH4 0x3823f247
000000b7: EQ
000000b8: PUSH2 0x00d7
000000bb: JUMPI
000000bc: DUP1
000000bd: PUSH4 0x4e71e0c8
000000c2: EQ
000000c3: PUSH2 0x017e
000000c6: JUMPI
000000c7: DUP1
000000c8: PUSH4 0x634de7dd
000000cd: EQ
000000ce: PUSH2 0x0193
000000d1: JUMPI
000000d2: JUMPDEST
000000d3: PUSH1 0x00
000000d5: DUP1
000000d6: REVERT
000000d7: JUMPDEST
000000d8: PUSH2 0x017c
000000db: PUSH1 0x04
000000dd: DUP1
000000de: CALLDATASIZE
000000df: SUB
000000e0: PUSH1 0xa0
000000e2: DUP2
000000e3: LT
000000e4: ISZERO
000000e5: PUSH2 0x00ed
000000e8: JUMPI
000000e9: PUSH1 0x00
000000eb: DUP1
000000ec: REVERT
000000ed: JUMPDEST
000000ee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000103: DUP3
00000104: CALLDATALOAD
00000105: DUP2
00000106: AND
00000107: SWAP3
00000108: PUSH1 0x20
0000010a: DUP2
0000010b: ADD
0000010c: CALLDATALOAD
0000010d: DUP3
0000010e: AND
0000010f: SWAP3
00000110: PUSH1 0x40
00000112: DUP3
00000113: ADD
00000114: CALLDATALOAD
00000115: SWAP1
00000116: SWAP3
00000117: AND
00000118: SWAP2
00000119: PUSH1 0x60
0000011b: DUP3
0000011c: ADD
0000011d: CALLDATALOAD
0000011e: SWAP2
0000011f: SWAP1
00000120: DUP2
00000121: ADD
00000122: SWAP1
00000123: PUSH1 0xa0
00000125: DUP2
00000126: ADD
00000127: PUSH1 0x80
00000129: DUP3
0000012a: ADD
0000012b: CALLDATALOAD
0000012c: PUSH5 0x0100000000
00000132: DUP2
00000133: GT
00000134: ISZERO
00000135: PUSH2 0x013d
00000138: JUMPI
00000139: PUSH1 0x00
0000013b: DUP1
0000013c: REVERT
0000013d: JUMPDEST
0000013e: DUP3
0000013f: ADD
00000140: DUP4
00000141: PUSH1 0x20
00000143: DUP3
00000144: ADD
00000145: GT
00000146: ISZERO
00000147: PUSH2 0x014f
0000014a: JUMPI
0000014b: PUSH1 0x00
0000014d: DUP1
0000014e: REVERT
0000014f: JUMPDEST
00000150: DUP1
00000151: CALLDATALOAD
00000152: SWAP1
00000153: PUSH1 0x20
00000155: ADD
00000156: SWAP2
00000157: DUP5
00000158: PUSH1 0x01
0000015a: DUP4
0000015b: MUL
0000015c: DUP5
0000015d: ADD
0000015e: GT
0000015f: PUSH5 0x0100000000
00000165: DUP4
00000166: GT
00000167: OR
00000168: ISZERO
00000169: PUSH2 0x0171
0000016c: JUMPI
0000016d: PUSH1 0x00
0000016f: DUP1
00000170: REVERT
00000171: JUMPDEST
00000172: POP
00000173: SWAP1
00000174: SWAP3
00000175: POP
00000176: SWAP1
00000177: POP
00000178: PUSH2 0x0481
0000017b: JUMP
0000017c: JUMPDEST
0000017d: STOP
0000017e: JUMPDEST
0000017f: CALLVALUE
00000180: DUP1
00000181: ISZERO
00000182: PUSH2 0x018a
00000185: JUMPI
00000186: PUSH1 0x00
00000188: DUP1
00000189: REVERT
0000018a: JUMPDEST
0000018b: POP
0000018c: PUSH2 0x017c
0000018f: PUSH2 0x069f
00000192: JUMP
00000193: JUMPDEST
00000194: CALLVALUE
00000195: DUP1
00000196: ISZERO
00000197: PUSH2 0x019f
0000019a: JUMPI
0000019b: PUSH1 0x00
0000019d: DUP1
0000019e: REVERT
0000019f: JUMPDEST
000001a0: POP
000001a1: PUSH2 0x017c
000001a4: PUSH1 0x04
000001a6: DUP1
000001a7: CALLDATASIZE
000001a8: SUB
000001a9: PUSH1 0x40
000001ab: DUP2
000001ac: LT
000001ad: ISZERO
000001ae: PUSH2 0x01b6
000001b1: JUMPI
000001b2: PUSH1 0x00
000001b4: DUP1
000001b5: REVERT
000001b6: JUMPDEST
000001b7: POP
000001b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001cd: DUP2
000001ce: CALLDATALOAD
000001cf: AND
000001d0: SWAP1
000001d1: PUSH1 0x20
000001d3: ADD
000001d4: CALLDATALOAD
000001d5: ISZERO
000001d6: ISZERO
000001d7: PUSH2 0x07bb
000001da: JUMP
000001db: JUMPDEST
000001dc: CALLVALUE
000001dd: DUP1
000001de: ISZERO
000001df: PUSH2 0x01e7
000001e2: JUMPI
000001e3: PUSH1 0x00
000001e5: DUP1
000001e6: REVERT
000001e7: JUMPDEST
000001e8: POP
000001e9: PUSH2 0x017c
000001ec: PUSH2 0x0967
000001ef: JUMP
000001f0: JUMPDEST
000001f1: CALLVALUE
000001f2: DUP1
000001f3: ISZERO
000001f4: PUSH2 0x01fc
000001f7: JUMPI
000001f8: PUSH1 0x00
000001fa: DUP1
000001fb: REVERT
000001fc: JUMPDEST
000001fd: POP
000001fe: PUSH2 0x0230
00000201: PUSH1 0x04
00000203: DUP1
00000204: CALLDATASIZE
00000205: SUB
00000206: PUSH1 0x20
00000208: DUP2
00000209: LT
0000020a: ISZERO
0000020b: PUSH2 0x0213
0000020e: JUMPI
0000020f: PUSH1 0x00
00000211: DUP1
00000212: REVERT
00000213: JUMPDEST
00000214: POP
00000215: CALLDATALOAD
00000216: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000022b: AND
0000022c: PUSH2 0x0a5c
0000022f: JUMP
00000230: JUMPDEST
00000231: PUSH1 0x40
00000233: DUP1
00000234: MLOAD
00000235: SWAP2
00000236: ISZERO
00000237: ISZERO
00000238: DUP3
00000239: MSTORE
0000023a: MLOAD
0000023b: SWAP1
0000023c: DUP2
0000023d: SWAP1
0000023e: SUB
0000023f: PUSH1 0x20
00000241: ADD
00000242: SWAP1
00000243: RETURN
00000244: JUMPDEST
00000245: CALLVALUE
00000246: DUP1
00000247: ISZERO
00000248: PUSH2 0x0250
0000024b: JUMPI
0000024c: PUSH1 0x00
0000024e: DUP1
0000024f: REVERT
00000250: JUMPDEST
00000251: POP
00000252: PUSH2 0x0259
00000255: PUSH2 0x0a62
00000258: JUMP
00000259: JUMPDEST
0000025a: PUSH1 0x40
0000025c: DUP1
0000025d: MLOAD
0000025e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000273: SWAP1
00000274: SWAP3
00000275: AND
00000276: DUP3
00000277: MSTORE
00000278: MLOAD
00000279: SWAP1
0000027a: DUP2
0000027b: SWAP1
0000027c: SUB
0000027d: PUSH1 0x20
0000027f: ADD
00000280: SWAP1
00000281: RETURN
00000282: JUMPDEST
00000283: CALLVALUE
00000284: DUP1
00000285: ISZERO
00000286: PUSH2 0x028e
00000289: JUMPI
0000028a: PUSH1 0x00
0000028c: DUP1
0000028d: REVERT
0000028e: JUMPDEST
0000028f: POP
00000290: PUSH2 0x017c
00000293: PUSH1 0x04
00000295: DUP1
00000296: CALLDATASIZE
00000297: SUB
00000298: PUSH1 0x20
0000029a: DUP2
0000029b: LT
0000029c: ISZERO
0000029d: PUSH2 0x02a5
000002a0: JUMPI
000002a1: PUSH1 0x00
000002a3: DUP1
000002a4: REVERT
000002a5: JUMPDEST
000002a6: POP
000002a7: CALLDATALOAD
000002a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002bd: AND
000002be: PUSH2 0x0a7e
000002c1: JUMP
000002c2: JUMPDEST
000002c3: CALLVALUE
000002c4: DUP1
000002c5: ISZERO
000002c6: PUSH2 0x02ce
000002c9: JUMPI
000002ca: PUSH1 0x00
000002cc: DUP1
000002cd: REVERT
000002ce: JUMPDEST
000002cf: POP
000002d0: PUSH2 0x0259
000002d3: PUSH2 0x0b79
000002d6: JUMP
000002d7: JUMPDEST
000002d8: CALLVALUE
000002d9: DUP1
000002da: ISZERO
000002db: PUSH2 0x02e3
000002de: JUMPI
000002df: PUSH1 0x00
000002e1: DUP1
000002e2: REVERT
000002e3: JUMPDEST
000002e4: POP
000002e5: PUSH2 0x0259
000002e8: PUSH2 0x0b95
000002eb: JUMP
000002ec: JUMPDEST
000002ed: PUSH2 0x017c
000002f0: PUSH1 0x04
000002f2: DUP1
000002f3: CALLDATASIZE
000002f4: SUB
000002f5: PUSH1 0x80
000002f7: DUP2
000002f8: LT
000002f9: ISZERO
000002fa: PUSH2 0x0302
000002fd: JUMPI
000002fe: PUSH1 0x00
00000300: DUP1
00000301: REVERT
00000302: JUMPDEST
00000303: POP
00000304: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000319: DUP2
0000031a: CALLDATALOAD
0000031b: DUP2
0000031c: AND
0000031d: SWAP2
0000031e: PUSH1 0x20
00000320: DUP2
00000321: ADD
00000322: CALLDATALOAD
00000323: DUP3
00000324: AND
00000325: SWAP2
00000326: PUSH1 0x40
00000328: DUP3
00000329: ADD
0000032a: CALLDATALOAD
0000032b: AND
0000032c: SWAP1
0000032d: PUSH1 0x60
0000032f: ADD
00000330: CALLDATALOAD
00000331: PUSH2 0x0bb1
00000334: JUMP
00000335: JUMPDEST
00000336: CALLVALUE
00000337: DUP1
00000338: ISZERO
00000339: PUSH2 0x0341
0000033c: JUMPI
0000033d: PUSH1 0x00
0000033f: DUP1
00000340: REVERT
00000341: JUMPDEST
00000342: POP
00000343: PUSH2 0x017c
00000346: PUSH1 0x04
00000348: DUP1
00000349: CALLDATASIZE
0000034a: SUB
0000034b: PUSH1 0x20
0000034d: DUP2
0000034e: LT
0000034f: ISZERO
00000350: PUSH2 0x0358
00000353: JUMPI
00000354: PUSH1 0x00
00000356: DUP1
00000357: REVERT
00000358: JUMPDEST
00000359: POP
0000035a: CALLDATALOAD
0000035b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000370: AND
00000371: PUSH2 0x0c6b
00000374: JUMP
00000375: JUMPDEST
00000376: PUSH2 0x0420
00000379: PUSH1 0x04
0000037b: DUP1
0000037c: CALLDATASIZE
0000037d: SUB
0000037e: PUSH1 0x80
00000380: DUP2
00000381: LT
00000382: ISZERO
00000383: PUSH2 0x038b
00000386: JUMPI
00000387: PUSH1 0x00
00000389: DUP1
0000038a: REVERT
0000038b: JUMPDEST
0000038c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003a1: DUP3
000003a2: CALLDATALOAD
000003a3: DUP2
000003a4: AND
000003a5: SWAP3
000003a6: PUSH1 0x20
000003a8: DUP2
000003a9: ADD
000003aa: CALLDATALOAD
000003ab: SWAP1
000003ac: SWAP2
000003ad: AND
000003ae: SWAP2
000003af: PUSH12 0xffffffffffffffffffffffff
000003bc: PUSH1 0x40
000003be: DUP4
000003bf: ADD
000003c0: CALLDATALOAD
000003c1: AND
000003c2: SWAP2
000003c3: SWAP1
000003c4: DUP2
000003c5: ADD
000003c6: SWAP1
000003c7: PUSH1 0x80
000003c9: DUP2
000003ca: ADD
000003cb: PUSH1 0x60
000003cd: DUP3
000003ce: ADD
000003cf: CALLDATALOAD
000003d0: PUSH5 0x0100000000
000003d6: DUP2
000003d7: GT
000003d8: ISZERO
000003d9: PUSH2 0x03e1
000003dc: JUMPI
000003dd: PUSH1 0x00
000003df: DUP1
000003e0: REVERT
000003e1: JUMPDEST
000003e2: DUP3
000003e3: ADD
000003e4: DUP4
000003e5: PUSH1 0x20
000003e7: DUP3
000003e8: ADD
000003e9: GT
000003ea: ISZERO
000003eb: PUSH2 0x03f3
000003ee: JUMPI
000003ef: PUSH1 0x00
000003f1: DUP1
000003f2: REVERT
000003f3: JUMPDEST
000003f4: DUP1
000003f5: CALLDATALOAD
000003f6: SWAP1
000003f7: PUSH1 0x20
000003f9: ADD
000003fa: SWAP2
000003fb: DUP5
000003fc: PUSH1 0x01
000003fe: DUP4
000003ff: MUL
00000400: DUP5
00000401: ADD
00000402: GT
00000403: PUSH5 0x0100000000
00000409: DUP4
0000040a: GT
0000040b: OR
0000040c: ISZERO
0000040d: PUSH2 0x0415
00000410: JUMPI
00000411: PUSH1 0x00
00000413: DUP1
00000414: REVERT
00000415: JUMPDEST
00000416: POP
00000417: SWAP1
00000418: SWAP3
00000419: POP
0000041a: SWAP1
0000041b: POP
0000041c: PUSH2 0x0de3
0000041f: JUMP
00000420: JUMPDEST
00000421: PUSH1 0x40
00000423: DUP1
00000424: MLOAD
00000425: PUSH12 0xffffffffffffffffffffffff
00000432: SWAP1
00000433: SWAP3
00000434: AND
00000435: DUP3
00000436: MSTORE
00000437: MLOAD
00000438: SWAP1
00000439: DUP2
0000043a: SWAP1
0000043b: SUB
0000043c: PUSH1 0x20
0000043e: ADD
0000043f: SWAP1
00000440: RETURN
00000441: JUMPDEST
00000442: CALLVALUE
00000443: DUP1
00000444: ISZERO
00000445: PUSH2 0x044d
00000448: JUMPI
00000449: PUSH1 0x00
0000044b: DUP1
0000044c: REVERT
0000044d: JUMPDEST
0000044e: POP
0000044f: PUSH2 0x0230
00000452: PUSH1 0x04
00000454: DUP1
00000455: CALLDATASIZE
00000456: SUB
00000457: PUSH1 0x20
00000459: DUP2
0000045a: LT
0000045b: ISZERO
0000045c: PUSH2 0x0464
0000045f: JUMPI
00000460: PUSH1 0x00
00000462: DUP1
00000463: REVERT
00000464: JUMPDEST
00000465: POP
00000466: CALLDATALOAD
00000467: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000047c: AND
0000047d: PUSH2 0x113b
00000480: JUMP
00000481: JUMPDEST
00000482: PUSH1 0x02
00000484: SLOAD
00000485: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000049a: AND
0000049b: CALLER
0000049c: EQ
0000049d: PUSH2 0x0507
000004a0: JUMPI
000004a1: PUSH1 0x40
000004a3: DUP1
000004a4: MLOAD
000004a5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000004c6: DUP2
000004c7: MSTORE
000004c8: PUSH1 0x20
000004ca: PUSH1 0x04
000004cc: DUP3
000004cd: ADD
000004ce: MSTORE
000004cf: PUSH1 0x0c
000004d1: PUSH1 0x24
000004d3: DUP3
000004d4: ADD
000004d5: MSTORE
000004d6: PUSH32 0x554e415554484f52495a45440000000000000000000000000000000000000000
000004f7: PUSH1 0x44
000004f9: DUP3
000004fa: ADD
000004fb: MSTORE
000004fc: SWAP1
000004fd: MLOAD
000004fe: SWAP1
000004ff: DUP2
00000500: SWAP1
00000501: SUB
00000502: PUSH1 0x64
00000504: ADD
00000505: SWAP1
00000506: REVERT
00000507: JUMPDEST
00000508: DUP3
00000509: DUP1
0000050a: PUSH2 0x0512
0000050d: JUMPI
0000050e: PUSH2 0x0696
00000511: JUMP
00000512: JUMPDEST
00000513: PUSH2 0x051b
00000516: DUP6
00000517: PUSH2 0x114c
0000051a: JUMP
0000051b: JUMPDEST
0000051c: ISZERO
0000051d: PUSH2 0x0549
00000520: JUMPI
00000521: PUSH2 0x0543
00000524: DUP5
00000525: GAS
00000526: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000053b: DUP10
0000053c: AND
0000053d: SWAP2
0000053e: SWAP1
0000053f: PUSH2 0x1166
00000542: JUMP
00000543: JUMPDEST
00000544: POP
00000545: PUSH2 0x0696
00000548: JUMP
00000549: JUMPDEST
0000054a: PUSH2 0x056a
0000054d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000562: DUP7
00000563: AND
00000564: DUP8
00000565: DUP7
00000566: PUSH2 0x11fe
00000569: JUMP
0000056a: JUMPDEST
0000056b: PUSH2 0x0696
0000056e: JUMPI
0000056f: PUSH1 0x00
00000571: DUP6
00000572: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000587: AND
00000588: PUSH4 0x70a08231
0000058d: ADDRESS
0000058e: PUSH1 0x40
00000590: MLOAD
00000591: DUP3
00000592: PUSH4 0xffffffff
00000597: AND
00000598: PUSH1 0xe0
0000059a: SHL
0000059b: DUP2
0000059c: MSTORE
0000059d: PUSH1 0x04
0000059f: ADD
000005a0: DUP1
000005a1: DUP3
000005a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005b7: AND
000005b8: DUP2
000005b9: MSTORE
000005ba: PUSH1 0x20
000005bc: ADD
000005bd: SWAP2
000005be: POP
000005bf: POP
000005c0: PUSH1 0x20
000005c2: PUSH1 0x40
000005c4: MLOAD
000005c5: DUP1
000005c6: DUP4
000005c7: SUB
000005c8: DUP2
000005c9: DUP7
000005ca: DUP1
000005cb: EXTCODESIZE
000005cc: ISZERO
000005cd: DUP1
000005ce: ISZERO
000005cf: PUSH2 0x05d7
000005d2: JUMPI
000005d3: PUSH1 0x00
000005d5: DUP1
000005d6: REVERT
000005d7: JUMPDEST
000005d8: POP
000005d9: GAS
000005da: STATICCALL
000005db: ISZERO
000005dc: DUP1
000005dd: ISZERO
000005de: PUSH2 0x05eb
000005e1: JUMPI
000005e2: RETURNDATASIZE
000005e3: PUSH1 0x00
000005e5: DUP1
000005e6: RETURNDATACOPY
000005e7: RETURNDATASIZE
000005e8: PUSH1 0x00
000005ea: REVERT
000005eb: JUMPDEST
000005ec: POP
000005ed: POP
000005ee: POP
000005ef: POP
000005f0: PUSH1 0x40
000005f2: MLOAD
000005f3: RETURNDATASIZE
000005f4: PUSH1 0x20
000005f6: DUP2
000005f7: LT
000005f8: ISZERO
000005f9: PUSH2 0x0601
000005fc: JUMPI
000005fd: PUSH1 0x00
000005ff: DUP1
00000600: REVERT
00000601: JUMPDEST
00000602: POP
00000603: MLOAD
00000604: SWAP1
00000605: POP
00000606: DUP5
00000607: DUP2
00000608: LT
00000609: PUSH2 0x0673
0000060c: JUMPI
0000060d: PUSH1 0x40
0000060f: DUP1
00000610: MLOAD
00000611: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000632: DUP2
00000633: MSTORE
00000634: PUSH1 0x20
00000636: PUSH1 0x04
00000638: DUP3
00000639: ADD
0000063a: MSTORE
0000063b: PUSH1 0x0a
0000063d: PUSH1 0x24
0000063f: DUP3
00000640: ADD
00000641: MSTORE
00000642: PUSH32 0x554e455850454354454400000000000000000000000000000000000000000000
00000663: PUSH1 0x44
00000665: DUP3
00000666: ADD
00000667: MSTORE
00000668: SWAP1
00000669: MLOAD
0000066a: SWAP1
0000066b: DUP2
0000066c: SWAP1
0000066d: SUB
0000066e: PUSH1 0x64
00000670: ADD
00000671: SWAP1
00000672: REVERT
00000673: JUMPDEST
00000674: PUSH2 0x0694
00000677: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000068c: DUP8
0000068d: AND
0000068e: DUP9
0000068f: DUP4
00000690: PUSH2 0x1214
00000693: JUMP
00000694: JUMPDEST
00000695: POP
00000696: JUMPDEST
00000697: POP
00000698: POP
00000699: POP
0000069a: POP
0000069b: POP
0000069c: POP
0000069d: POP
0000069e: JUMP
0000069f: JUMPDEST
000006a0: PUSH1 0x01
000006a2: SLOAD
000006a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006b8: AND
000006b9: CALLER
000006ba: EQ
000006bb: PUSH2 0x0725
000006be: JUMPI
000006bf: PUSH1 0x40
000006c1: DUP1
000006c2: MLOAD
000006c3: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000006e4: DUP2
000006e5: MSTORE
000006e6: PUSH1 0x20
000006e8: PUSH1 0x04
000006ea: DUP3
000006eb: ADD
000006ec: MSTORE
000006ed: PUSH1 0x0c
000006ef: PUSH1 0x24
000006f1: DUP3
000006f2: ADD
000006f3: MSTORE
000006f4: PUSH32 0x554e415554484f52495a45440000000000000000000000000000000000000000
00000715: PUSH1 0x44
00000717: DUP3
00000718: ADD
00000719: MSTORE
0000071a: SWAP1
0000071b: MLOAD
0000071c: SWAP1
0000071d: DUP2
0000071e: SWAP1
0000071f: SUB
00000720: PUSH1 0x64
00000722: ADD
00000723: SWAP1
00000724: REVERT
00000725: JUMPDEST
00000726: PUSH1 0x01
00000728: SLOAD
00000729: PUSH1 0x00
0000072b: DUP1
0000072c: SLOAD
0000072d: PUSH1 0x40
0000072f: MLOAD
00000730: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000745: SWAP4
00000746: DUP5
00000747: AND
00000748: SWAP4
00000749: SWAP1
0000074a: SWAP2
0000074b: AND
0000074c: SWAP2
0000074d: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
0000076e: SWAP2
0000076f: LOG3
00000770: PUSH1 0x01
00000772: DUP1
00000773: SLOAD
00000774: PUSH1 0x00
00000776: DUP1
00000777: SLOAD
00000778: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000799: SWAP1
0000079a: DUP2
0000079b: AND
0000079c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007b1: DUP5
000007b2: AND
000007b3: OR
000007b4: SWAP1
000007b5: SWAP2
000007b6: SSTORE
000007b7: AND
000007b8: SWAP1
000007b9: SSTORE
000007ba: JUMP
000007bb: JUMPDEST
000007bc: PUSH1 0x00
000007be: SLOAD
000007bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007d4: AND
000007d5: CALLER
000007d6: EQ
000007d7: PUSH2 0x0841
000007da: JUMPI
000007db: PUSH1 0x40
000007dd: DUP1
000007de: MLOAD
000007df: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000800: DUP2
00000801: MSTORE
00000802: PUSH1 0x20
00000804: PUSH1 0x04
00000806: DUP3
00000807: ADD
00000808: MSTORE
00000809: PUSH1 0x0c
0000080b: PUSH1 0x24
0000080d: DUP3
0000080e: ADD
0000080f: MSTORE
00000810: PUSH32 0x554e415554484f52495a45440000000000000000000000000000000000000000
00000831: PUSH1 0x44
00000833: DUP3
00000834: ADD
00000835: MSTORE
00000836: SWAP1
00000837: MLOAD
00000838: SWAP1
00000839: DUP2
0000083a: SWAP1
0000083b: SUB
0000083c: PUSH1 0x64
0000083e: ADD
0000083f: SWAP1
00000840: REVERT
00000841: JUMPDEST
00000842: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000857: DUP3
00000858: AND
00000859: PUSH1 0x00
0000085b: SWAP1
0000085c: DUP2
0000085d: MSTORE
0000085e: PUSH1 0x03
00000860: PUSH1 0x20
00000862: MSTORE
00000863: PUSH1 0x40
00000865: SWAP1
00000866: KECCAK256
00000867: SLOAD
00000868: PUSH1 0xff
0000086a: AND
0000086b: ISZERO
0000086c: ISZERO
0000086d: DUP2
0000086e: ISZERO
0000086f: ISZERO
00000870: EQ
00000871: ISZERO
00000872: PUSH2 0x08dc
00000875: JUMPI
00000876: PUSH1 0x40
00000878: DUP1
00000879: MLOAD
0000087a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000089b: DUP2
0000089c: MSTORE
0000089d: PUSH1 0x20
0000089f: PUSH1 0x04
000008a1: DUP3
000008a2: ADD
000008a3: MSTORE
000008a4: PUSH1 0x0d
000008a6: PUSH1 0x24
000008a8: DUP3
000008a9: ADD
000008aa: MSTORE
000008ab: PUSH32 0x494e56414c49445f56414c554500000000000000000000000000000000000000
000008cc: PUSH1 0x44
000008ce: DUP3
000008cf: ADD
000008d0: MSTORE
000008d1: SWAP1
000008d2: MLOAD
000008d3: SWAP1
000008d4: DUP2
000008d5: SWAP1
000008d6: SUB
000008d7: PUSH1 0x64
000008d9: ADD
000008da: SWAP1
000008db: REVERT
000008dc: JUMPDEST
000008dd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008f2: DUP3
000008f3: AND
000008f4: PUSH1 0x00
000008f6: DUP2
000008f7: DUP2
000008f8: MSTORE
000008f9: PUSH1 0x03
000008fb: PUSH1 0x20
000008fd: SWAP1
000008fe: DUP2
000008ff: MSTORE
00000900: PUSH1 0x40
00000902: SWAP2
00000903: DUP3
00000904: SWAP1
00000905: KECCAK256
00000906: DUP1
00000907: SLOAD
00000908: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
00000929: AND
0000092a: DUP6
0000092b: ISZERO
0000092c: ISZERO
0000092d: SWAP1
0000092e: DUP2
0000092f: OR
00000930: SWAP1
00000931: SWAP2
00000932: SSTORE
00000933: DUP3
00000934: MLOAD
00000935: SWAP1
00000936: DUP2
00000937: MSTORE
00000938: SWAP2
00000939: MLOAD
0000093a: PUSH32 0x5ca546e2df4ecf26ee1e85b99c7fc08237e0fc2bc8df80f9f3e0fa5a7116ed81
0000095b: SWAP3
0000095c: DUP2
0000095d: SWAP1
0000095e: SUB
0000095f: SWAP1
00000960: SWAP2
00000961: ADD
00000962: SWAP1
00000963: LOG2
00000964: POP
00000965: POP
00000966: JUMP
00000967: JUMPDEST
00000968: PUSH1 0x00
0000096a: SLOAD
0000096b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000980: AND
00000981: CALLER
00000982: EQ
00000983: PUSH2 0x09ed
00000986: JUMPI
00000987: PUSH1 0x40
00000989: DUP1
0000098a: MLOAD
0000098b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000009ac: DUP2
000009ad: MSTORE
000009ae: PUSH1 0x20
000009b0: PUSH1 0x04
000009b2: DUP3
000009b3: ADD
000009b4: MSTORE
000009b5: PUSH1 0x0c
000009b7: PUSH1 0x24
000009b9: DUP3
000009ba: ADD
000009bb: MSTORE
000009bc: PUSH32 0x554e415554484f52495a45440000000000000000000000000000000000000000
000009dd: PUSH1 0x44
000009df: DUP3
000009e0: ADD
000009e1: MSTORE
000009e2: SWAP1
000009e3: MLOAD
000009e4: SWAP1
000009e5: DUP2
000009e6: SWAP1
000009e7: SUB
000009e8: PUSH1 0x64
000009ea: ADD
000009eb: SWAP1
000009ec: REVERT
000009ed: JUMPDEST
000009ee: PUSH1 0x00
000009f0: DUP1
000009f1: SLOAD
000009f2: PUSH1 0x40
000009f4: MLOAD
000009f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a0a: SWAP1
00000a0b: SWAP2
00000a0c: AND
00000a0d: SWAP1
00000a0e: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00000a2f: SWAP1
00000a30: DUP4
00000a31: SWAP1
00000a32: LOG3
00000a33: PUSH1 0x00
00000a35: DUP1
00000a36: SLOAD
00000a37: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000a58: AND
00000a59: SWAP1
00000a5a: SSTORE
00000a5b: JUMP
00000a5c: JUMPDEST
00000a5d: POP
00000a5e: PUSH1 0x01
00000a60: SWAP1
00000a61: JUMP
00000a62: JUMPDEST
00000a63: PUSH1 0x00
00000a65: SLOAD
00000a66: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a7b: AND
00000a7c: DUP2
00000a7d: JUMP
00000a7e: JUMPDEST
00000a7f: PUSH1 0x02
00000a81: SLOAD
00000a82: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a97: AND
00000a98: ISZERO
00000a99: DUP1
00000a9a: ISZERO
00000a9b: PUSH2 0x0ab9
00000a9e: JUMPI
00000a9f: POP
00000aa0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ab5: DUP2
00000ab6: AND
00000ab7: ISZERO
00000ab8: ISZERO
00000ab9: JUMPDEST
00000aba: PUSH2 0x0b24
00000abd: JUMPI
00000abe: PUSH1 0x40
00000ac0: DUP1
00000ac1: MLOAD
00000ac2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000ae3: DUP2
00000ae4: MSTORE
00000ae5: PUSH1 0x20
00000ae7: PUSH1 0x04
00000ae9: DUP3
00000aea: ADD
00000aeb: MSTORE
00000aec: PUSH1 0x10
00000aee: PUSH1 0x24
00000af0: DUP3
00000af1: ADD
00000af2: MSTORE
00000af3: PUSH32 0x494e56414c49445f45584348414e474500000000000000000000000000000000
00000b14: PUSH1 0x44
00000b16: DUP3
00000b17: ADD
00000b18: MSTORE
00000b19: SWAP1
00000b1a: MLOAD
00000b1b: SWAP1
00000b1c: DUP2
00000b1d: SWAP1
00000b1e: SUB
00000b1f: PUSH1 0x64
00000b21: ADD
00000b22: SWAP1
00000b23: REVERT
00000b24: JUMPDEST
00000b25: PUSH1 0x00
00000b27: DUP1
00000b28: SLOAD
00000b29: CALLER
00000b2a: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000b4b: SWAP2
00000b4c: DUP3
00000b4d: AND
00000b4e: OR
00000b4f: SWAP1
00000b50: SWAP2
00000b51: SSTORE
00000b52: PUSH1 0x02
00000b54: DUP1
00000b55: SLOAD
00000b56: SWAP1
00000b57: SWAP2
00000b58: AND
00000b59: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b6e: SWAP3
00000b6f: SWAP1
00000b70: SWAP3
00000b71: AND
00000b72: SWAP2
00000b73: SWAP1
00000b74: SWAP2
00000b75: OR
00000b76: SWAP1
00000b77: SSTORE
00000b78: JUMP
00000b79: JUMPDEST
00000b7a: PUSH1 0x02
00000b7c: SLOAD
00000b7d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b92: AND
00000b93: DUP2
00000b94: JUMP
00000b95: JUMPDEST
00000b96: PUSH1 0x01
00000b98: SLOAD
00000b99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bae: AND
00000baf: DUP2
00000bb0: JUMP
00000bb1: JUMPDEST
00000bb2: PUSH1 0x02
00000bb4: SLOAD
00000bb5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bca: AND
00000bcb: CALLER
00000bcc: EQ
00000bcd: PUSH2 0x0c37
00000bd0: JUMPI
00000bd1: PUSH1 0x40
00000bd3: DUP1
00000bd4: MLOAD
00000bd5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000bf6: DUP2
00000bf7: MSTORE
00000bf8: PUSH1 0x20
00000bfa: PUSH1 0x04
00000bfc: DUP3
00000bfd: ADD
00000bfe: MSTORE
00000bff: PUSH1 0x0c
00000c01: PUSH1 0x24
00000c03: DUP3
00000c04: ADD
00000c05: MSTORE
00000c06: PUSH32 0x554e415554484f52495a45440000000000000000000000000000000000000000
00000c27: PUSH1 0x44
00000c29: DUP3
00000c2a: ADD
00000c2b: MSTORE
00000c2c: SWAP1
00000c2d: MLOAD
00000c2e: SWAP1
00000c2f: DUP2
00000c30: SWAP1
00000c31: SUB
00000c32: PUSH1 0x64
00000c34: ADD
00000c35: SWAP1
00000c36: REVERT
00000c37: JUMPDEST
00000c38: DUP1
00000c39: DUP1
00000c3a: PUSH2 0x0c42
00000c3d: JUMPI
00000c3e: PUSH2 0x0c64
00000c41: JUMP
00000c42: JUMPDEST
00000c43: PUSH2 0x0c64
00000c46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c5b: DUP5
00000c5c: AND
00000c5d: DUP7
00000c5e: DUP7
00000c5f: DUP6
00000c60: PUSH2 0x1225
00000c63: JUMP
00000c64: JUMPDEST
00000c65: POP
00000c66: POP
00000c67: POP
00000c68: POP
00000c69: POP
00000c6a: JUMP
00000c6b: JUMPDEST
00000c6c: PUSH1 0x00
00000c6e: SLOAD
00000c6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c84: AND
00000c85: CALLER
00000c86: EQ
00000c87: PUSH2 0x0cf1
00000c8a: JUMPI
00000c8b: PUSH1 0x40
00000c8d: DUP1
00000c8e: MLOAD
00000c8f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000cb0: DUP2
00000cb1: MSTORE
00000cb2: PUSH1 0x20
00000cb4: PUSH1 0x04
00000cb6: DUP3
00000cb7: ADD
00000cb8: MSTORE
00000cb9: PUSH1 0x0c
00000cbb: PUSH1 0x24
00000cbd: DUP3
00000cbe: ADD
00000cbf: MSTORE
00000cc0: PUSH32 0x554e415554484f52495a45440000000000000000000000000000000000000000
00000ce1: PUSH1 0x44
00000ce3: DUP3
00000ce4: ADD
00000ce5: MSTORE
00000ce6: SWAP1
00000ce7: MLOAD
00000ce8: SWAP1
00000ce9: DUP2
00000cea: SWAP1
00000ceb: SUB
00000cec: PUSH1 0x64
00000cee: ADD
00000cef: SWAP1
00000cf0: REVERT
00000cf1: JUMPDEST
00000cf2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d07: DUP2
00000d08: AND
00000d09: ISZERO
00000d0a: DUP1
00000d0b: ISZERO
00000d0c: SWAP1
00000d0d: PUSH2 0x0d31
00000d10: JUMPI
00000d11: POP
00000d12: PUSH1 0x00
00000d14: SLOAD
00000d15: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d2a: DUP3
00000d2b: DUP2
00000d2c: AND
00000d2d: SWAP2
00000d2e: AND
00000d2f: EQ
00000d30: ISZERO
00000d31: JUMPDEST
00000d32: PUSH2 0x0d9c
00000d35: JUMPI
00000d36: PUSH1 0x40
00000d38: DUP1
00000d39: MLOAD
00000d3a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000d5b: DUP2
00000d5c: MSTORE
00000d5d: PUSH1 0x20
00000d5f: PUSH1 0x04
00000d61: DUP3
00000d62: ADD
00000d63: MSTORE
00000d64: PUSH1 0x0f
00000d66: PUSH1 0x24
00000d68: DUP3
00000d69: ADD
00000d6a: MSTORE
00000d6b: PUSH32 0x494e56414c49445f414444524553530000000000000000000000000000000000
00000d8c: PUSH1 0x44
00000d8e: DUP3
00000d8f: ADD
00000d90: MSTORE
00000d91: SWAP1
00000d92: MLOAD
00000d93: SWAP1
00000d94: DUP2
00000d95: SWAP1
00000d96: SUB
00000d97: PUSH1 0x64
00000d99: ADD
00000d9a: SWAP1
00000d9b: REVERT
00000d9c: JUMPDEST
00000d9d: PUSH1 0x01
00000d9f: DUP1
00000da0: SLOAD
00000da1: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000dc2: AND
00000dc3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dd8: SWAP3
00000dd9: SWAP1
00000dda: SWAP3
00000ddb: AND
00000ddc: SWAP2
00000ddd: SWAP1
00000dde: SWAP2
00000ddf: OR
00000de0: SWAP1
00000de1: SSTORE
00000de2: JUMP
00000de3: JUMPDEST
00000de4: PUSH1 0x02
00000de6: SLOAD
00000de7: PUSH1 0x00
00000de9: SWAP1
00000dea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dff: AND
00000e00: CALLER
00000e01: EQ
00000e02: PUSH2 0x0e6c
00000e05: JUMPI
00000e06: PUSH1 0x40
00000e08: DUP1
00000e09: MLOAD
00000e0a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000e2b: DUP2
00000e2c: MSTORE
00000e2d: PUSH1 0x20
00000e2f: PUSH1 0x04
00000e31: DUP3
00000e32: ADD
00000e33: MSTORE
00000e34: PUSH1 0x0c
00000e36: PUSH1 0x24
00000e38: DUP3
00000e39: ADD
00000e3a: MSTORE
00000e3b: PUSH32 0x554e415554484f52495a45440000000000000000000000000000000000000000
00000e5c: PUSH1 0x44
00000e5e: DUP3
00000e5f: ADD
00000e60: MSTORE
00000e61: SWAP1
00000e62: MLOAD
00000e63: SWAP1
00000e64: DUP2
00000e65: SWAP1
00000e66: SUB
00000e67: PUSH1 0x64
00000e69: ADD
00000e6a: SWAP1
00000e6b: REVERT
00000e6c: JUMPDEST
00000e6d: PUSH12 0xffffffffffffffffffffffff
00000e7a: DUP5
00000e7b: AND
00000e7c: DUP1
00000e7d: PUSH2 0x0e85
00000e80: JUMPI
00000e81: PUSH2 0x1131
00000e84: JUMP
00000e85: JUMPDEST
00000e86: PUSH1 0x00
00000e88: PUSH2 0x0e90
00000e8b: DUP8
00000e8c: PUSH2 0x114c
00000e8f: JUMP
00000e90: JUMPDEST
00000e91: ISZERO
00000e92: PUSH2 0x0f2c
00000e95: JUMPI
00000e96: DUP6
00000e97: PUSH12 0xffffffffffffffffffffffff
00000ea4: AND
00000ea5: CALLVALUE
00000ea6: LT
00000ea7: ISZERO
00000ea8: PUSH2 0x0f12
00000eab: JUMPI
00000eac: PUSH1 0x40
00000eae: DUP1
00000eaf: MLOAD
00000eb0: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000ed1: DUP2
00000ed2: MSTORE
00000ed3: PUSH1 0x20
00000ed5: PUSH1 0x04
00000ed7: DUP3
00000ed8: ADD
00000ed9: MSTORE
00000eda: PUSH1 0x13
00000edc: PUSH1 0x24
00000ede: DUP3
00000edf: ADD
00000ee0: MSTORE
00000ee1: PUSH32 0x494e56414c49445f4554485f4445504f53495400000000000000000000000000
00000f02: PUSH1 0x44
00000f04: DUP3
00000f05: ADD
00000f06: MSTORE
00000f07: SWAP1
00000f08: MLOAD
00000f09: SWAP1
00000f0a: DUP2
00000f0b: SWAP1
00000f0c: SUB
00000f0d: PUSH1 0x64
00000f0f: ADD
00000f10: SWAP1
00000f11: REVERT
00000f12: JUMPDEST
00000f13: POP
00000f14: DUP5
00000f15: SWAP2
00000f16: POP
00000f17: PUSH12 0xffffffffffffffffffffffff
00000f24: DUP3
00000f25: AND
00000f26: CALLVALUE
00000f27: SUB
00000f28: PUSH2 0x1104
00000f2b: JUMP
00000f2c: JUMPDEST
00000f2d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f42: DUP8
00000f43: AND
00000f44: PUSH1 0x00
00000f46: SWAP1
00000f47: DUP2
00000f48: MSTORE
00000f49: PUSH1 0x03
00000f4b: PUSH1 0x20
00000f4d: MSTORE
00000f4e: PUSH1 0x40
00000f50: DUP2
00000f51: KECCAK256
00000f52: SLOAD
00000f53: PUSH1 0xff
00000f55: AND
00000f56: SWAP1
00000f57: DUP2
00000f58: PUSH2 0x0f62
00000f5b: JUMPI
00000f5c: PUSH1 0x00
00000f5e: PUSH2 0x0ffb
00000f61: JUMP
00000f62: JUMPDEST
00000f63: PUSH1 0x40
00000f65: DUP1
00000f66: MLOAD
00000f67: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
00000f88: DUP2
00000f89: MSTORE
00000f8a: ADDRESS
00000f8b: PUSH1 0x04
00000f8d: DUP3
00000f8e: ADD
00000f8f: MSTORE
00000f90: SWAP1
00000f91: MLOAD
00000f92: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000fa7: DUP12
00000fa8: AND
00000fa9: SWAP2
00000faa: PUSH4 0x70a08231
00000faf: SWAP2
00000fb0: PUSH1 0x24
00000fb2: DUP1
00000fb3: DUP4
00000fb4: ADD
00000fb5: SWAP3
00000fb6: PUSH1 0x20
00000fb8: SWAP3
00000fb9: SWAP2
00000fba: SWAP1
00000fbb: DUP3
00000fbc: SWAP1
00000fbd: SUB
00000fbe: ADD
00000fbf: DUP2
00000fc0: DUP7
00000fc1: DUP1
00000fc2: EXTCODESIZE
00000fc3: ISZERO
00000fc4: DUP1
00000fc5: ISZERO
00000fc6: PUSH2 0x0fce
00000fc9: JUMPI
00000fca: PUSH1 0x00
00000fcc: DUP1
00000fcd: REVERT
00000fce: JUMPDEST
00000fcf: POP
00000fd0: GAS
00000fd1: STATICCALL
00000fd2: ISZERO
00000fd3: DUP1
00000fd4: ISZERO
00000fd5: PUSH2 0x0fe2
00000fd8: JUMPI
00000fd9: RETURNDATASIZE
00000fda: PUSH1 0x00
00000fdc: DUP1
00000fdd: RETURNDATACOPY
00000fde: RETURNDATASIZE
00000fdf: PUSH1 0x00
00000fe1: REVERT
00000fe2: JUMPDEST
00000fe3: POP
00000fe4: POP
00000fe5: POP
00000fe6: POP
00000fe7: PUSH1 0x40
00000fe9: MLOAD
00000fea: RETURNDATASIZE
00000feb: PUSH1 0x20
00000fed: DUP2
00000fee: LT
00000fef: ISZERO
00000ff0: PUSH2 0x0ff8
00000ff3: JUMPI
00000ff4: PUSH1 0x00
00000ff6: DUP1
00000ff7: REVERT
00000ff8: JUMPDEST
00000ff9: POP
00000ffa: MLOAD
00000ffb: JUMPDEST
00000ffc: SWAP1
00000ffd: POP
00000ffe: PUSH2 0x102d
00001001: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001016: DUP11
00001017: AND
00001018: DUP12
00001019: ADDRESS
0000101a: PUSH12 0xffffffffffffffffffffffff
00001027: DUP13
00001028: AND
00001029: PUSH2 0x1225
0000102c: JUMP
0000102d: JUMPDEST
0000102e: PUSH1 0x00
00001030: DUP3
00001031: PUSH2 0x1048
00001034: JUMPI
00001035: DUP9
00001036: PUSH12 0xffffffffffffffffffffffff
00001043: AND
00001044: PUSH2 0x10e1
00001047: JUMP
00001048: JUMPDEST
00001049: PUSH1 0x40
0000104b: DUP1
0000104c: MLOAD
0000104d: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
0000106e: DUP2
0000106f: MSTORE
00001070: ADDRESS
00001071: PUSH1 0x04
00001073: DUP3
00001074: ADD
00001075: MSTORE
00001076: SWAP1
00001077: MLOAD
00001078: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000108d: DUP13
0000108e: AND
0000108f: SWAP2
00001090: PUSH4 0x70a08231
00001095: SWAP2
00001096: PUSH1 0x24
00001098: DUP1
00001099: DUP4
0000109a: ADD
0000109b: SWAP3
0000109c: PUSH1 0x20
0000109e: SWAP3
0000109f: SWAP2
000010a0: SWAP1
000010a1: DUP3
000010a2: SWAP1
000010a3: SUB
000010a4: ADD
000010a5: DUP2
000010a6: DUP7
000010a7: DUP1
000010a8: EXTCODESIZE
000010a9: ISZERO
000010aa: DUP1
000010ab: ISZERO
000010ac: PUSH2 0x10b4
000010af: JUMPI
000010b0: PUSH1 0x00
000010b2: DUP1
000010b3: REVERT
000010b4: JUMPDEST
000010b5: POP
000010b6: GAS
000010b7: STATICCALL
000010b8: ISZERO
000010b9: DUP1
000010ba: ISZERO
000010bb: PUSH2 0x10c8
000010be: JUMPI
000010bf: RETURNDATASIZE
000010c0: PUSH1 0x00
000010c2: DUP1
000010c3: RETURNDATACOPY
000010c4: RETURNDATASIZE
000010c5: PUSH1 0x00
000010c7: REVERT
000010c8: JUMPDEST
000010c9: POP
000010ca: POP
000010cb: POP
000010cc: POP
000010cd: PUSH1 0x40
000010cf: MLOAD
000010d0: RETURNDATASIZE
000010d1: PUSH1 0x20
000010d3: DUP2
000010d4: LT
000010d5: ISZERO
000010d6: PUSH2 0x10de
000010d9: JUMPI
000010da: PUSH1 0x00
000010dc: DUP1
000010dd: REVERT
000010de: JUMPDEST
000010df: POP
000010e0: MLOAD
000010e1: JUMPDEST
000010e2: SWAP1
000010e3: POP
000010e4: PUSH1 0x00
000010e6: PUSH2 0x10ef
000010e9: DUP3
000010ea: DUP5
000010eb: PUSH2 0x1238
000010ee: JUMP
000010ef: JUMPDEST
000010f0: SWAP1
000010f1: POP
000010f2: PUSH2 0x10fa
000010f5: DUP2
000010f6: PUSH2 0x12af
000010f9: JUMP
000010fa: JUMPDEST
000010fb: SWAP7
000010fc: POP
000010fd: CALLVALUE
000010fe: SWAP5
000010ff: POP
00001100: POP
00001101: POP
00001102: POP
00001103: POP
00001104: JUMPDEST
00001105: DUP1
00001106: ISZERO
00001107: PUSH2 0x112f
0000110a: JUMPI
0000110b: PUSH2 0x112d
0000110e: DUP2
0000110f: GAS
00001110: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001125: DUP12
00001126: AND
00001127: SWAP2
00001128: SWAP1
00001129: PUSH2 0x1166
0000112c: JUMP
0000112d: JUMPDEST
0000112e: POP
0000112f: JUMPDEST
00001130: POP
00001131: JUMPDEST
00001132: POP
00001133: SWAP6
00001134: SWAP5
00001135: POP
00001136: POP
00001137: POP
00001138: POP
00001139: POP
0000113a: JUMP
0000113b: JUMPDEST
0000113c: PUSH1 0x00
0000113e: PUSH2 0x1146
00001141: DUP3
00001142: PUSH2 0x114c
00001145: JUMP
00001146: JUMPDEST
00001147: SWAP3
00001148: SWAP2
00001149: POP
0000114a: POP
0000114b: JUMP
0000114c: JUMPDEST
0000114d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001162: AND
00001163: ISZERO
00001164: SWAP1
00001165: JUMP
00001166: JUMPDEST
00001167: PUSH1 0x00
00001169: PUSH2 0x1189
0000116c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001181: DUP6
00001182: AND
00001183: DUP5
00001184: DUP5
00001185: PUSH2 0x131a
00001188: JUMP
00001189: JUMPDEST
0000118a: SWAP1
0000118b: POP
0000118c: DUP1
0000118d: PUSH2 0x11f7
00001190: JUMPI
00001191: PUSH1 0x40
00001193: DUP1
00001194: MLOAD
00001195: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000011b6: DUP2
000011b7: MSTORE
000011b8: PUSH1 0x20
000011ba: PUSH1 0x04
000011bc: DUP3
000011bd: ADD
000011be: MSTORE
000011bf: PUSH1 0x10
000011c1: PUSH1 0x24
000011c3: DUP3
000011c4: ADD
000011c5: MSTORE
000011c6: PUSH32 0x5452414e534645525f4641494c55524500000000000000000000000000000000
000011e7: PUSH1 0x44
000011e9: DUP3
000011ea: ADD
000011eb: MSTORE
000011ec: SWAP1
000011ed: MLOAD
000011ee: SWAP1
000011ef: DUP2
000011f0: SWAP1
000011f1: SUB
000011f2: PUSH1 0x64
000011f4: ADD
000011f5: SWAP1
000011f6: REVERT
000011f7: JUMPDEST
000011f8: SWAP4
000011f9: SWAP3
000011fa: POP
000011fb: POP
000011fc: POP
000011fd: JUMP
000011fe: JUMPDEST
000011ff: PUSH1 0x00
00001201: PUSH2 0x120c
00001204: DUP5
00001205: DUP5
00001206: DUP5
00001207: GAS
00001208: PUSH2 0x13b7
0000120b: JUMP
0000120c: JUMPDEST
0000120d: SWAP5
0000120e: SWAP4
0000120f: POP
00001210: POP
00001211: POP
00001212: POP
00001213: JUMP
00001214: JUMPDEST
00001215: PUSH2 0x1220
00001218: DUP4
00001219: DUP4
0000121a: DUP4
0000121b: GAS
0000121c: PUSH2 0x150c
0000121f: JUMP
00001220: JUMPDEST
00001221: POP
00001222: POP
00001223: POP
00001224: JUMP
00001225: JUMPDEST
00001226: PUSH2 0x1232
00001229: DUP5
0000122a: DUP5
0000122b: DUP5
0000122c: DUP5
0000122d: GAS
0000122e: PUSH2 0x1583
00001231: JUMP
00001232: JUMPDEST
00001233: POP
00001234: POP
00001235: POP
00001236: POP
00001237: JUMP
00001238: JUMPDEST
00001239: PUSH1 0x00
0000123b: DUP3
0000123c: DUP3
0000123d: GT
0000123e: ISZERO
0000123f: PUSH2 0x12a9
00001242: JUMPI
00001243: PUSH1 0x40
00001245: DUP1
00001246: MLOAD
00001247: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001268: DUP2
00001269: MSTORE
0000126a: PUSH1 0x20
0000126c: PUSH1 0x04
0000126e: DUP3
0000126f: ADD
00001270: MSTORE
00001271: PUSH1 0x0d
00001273: PUSH1 0x24
00001275: DUP3
00001276: ADD
00001277: MSTORE
00001278: PUSH32 0x5355425f554e444552464c4f5700000000000000000000000000000000000000
00001299: PUSH1 0x44
0000129b: DUP3
0000129c: ADD
0000129d: MSTORE
0000129e: SWAP1
0000129f: MLOAD
000012a0: SWAP1
000012a1: DUP2
000012a2: SWAP1
000012a3: SUB
000012a4: PUSH1 0x64
000012a6: ADD
000012a7: SWAP1
000012a8: REVERT
000012a9: JUMPDEST
000012aa: POP
000012ab: SWAP1
000012ac: SUB
000012ad: SWAP1
000012ae: JUMP
000012af: JUMPDEST
000012b0: PUSH1 0x00
000012b2: PUSH13 0x01000000000000000000000000
000012c0: DUP3
000012c1: LT
000012c2: PUSH2 0x1316
000012c5: JUMPI
000012c6: PUSH1 0x40
000012c8: MLOAD
000012c9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000012ea: DUP2
000012eb: MSTORE
000012ec: PUSH1 0x04
000012ee: ADD
000012ef: DUP1
000012f0: DUP1
000012f1: PUSH1 0x20
000012f3: ADD
000012f4: DUP3
000012f5: DUP2
000012f6: SUB
000012f7: DUP3
000012f8: MSTORE
000012f9: PUSH1 0x26
000012fb: DUP2
000012fc: MSTORE
000012fd: PUSH1 0x20
000012ff: ADD
00001300: DUP1
00001301: PUSH2 0x17a6
00001304: PUSH1 0x26
00001306: SWAP2
00001307: CODECOPY
00001308: PUSH1 0x40
0000130a: ADD
0000130b: SWAP2
0000130c: POP
0000130d: POP
0000130e: PUSH1 0x40
00001310: MLOAD
00001311: DUP1
00001312: SWAP2
00001313: SUB
00001314: SWAP1
00001315: REVERT
00001316: JUMPDEST
00001317: POP
00001318: SWAP1
00001319: JUMP
0000131a: JUMPDEST
0000131b: PUSH1 0x00
0000131d: DUP3
0000131e: PUSH2 0x1329
00001321: JUMPI
00001322: POP
00001323: PUSH1 0x01
00001325: PUSH2 0x11f7
00001328: JUMP
00001329: JUMPDEST
0000132a: PUSH1 0x00
0000132c: PUSH2 0x134a
0000132f: DUP6
00001330: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001345: AND
00001346: PUSH2 0x1608
00001349: JUMP
0000134a: JUMPDEST
0000134b: PUSH1 0x40
0000134d: MLOAD
0000134e: SWAP1
0000134f: SWAP2
00001350: POP
00001351: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001366: DUP3
00001367: AND
00001368: SWAP1
00001369: DUP5
0000136a: SWAP1
0000136b: DUP7
0000136c: SWAP1
0000136d: PUSH1 0x00
0000136f: DUP2
00001370: DUP2
00001371: DUP2
00001372: DUP6
00001373: DUP9
00001374: DUP9
00001375: CALL
00001376: SWAP4
00001377: POP
00001378: POP
00001379: POP
0000137a: POP
0000137b: RETURNDATASIZE
0000137c: DUP1
0000137d: PUSH1 0x00
0000137f: DUP2
00001380: EQ
00001381: PUSH2 0x13a6
00001384: JUMPI
00001385: PUSH1 0x40
00001387: MLOAD
00001388: SWAP2
00001389: POP
0000138a: PUSH1 0x1f
0000138c: NOT
0000138d: PUSH1 0x3f
0000138f: RETURNDATASIZE
00001390: ADD
00001391: AND
00001392: DUP3
00001393: ADD
00001394: PUSH1 0x40
00001396: MSTORE
00001397: RETURNDATASIZE
00001398: DUP3
00001399: MSTORE
0000139a: RETURNDATASIZE
0000139b: PUSH1 0x00
0000139d: PUSH1 0x20
0000139f: DUP5
000013a0: ADD
000013a1: RETURNDATACOPY
000013a2: PUSH2 0x13ab
000013a5: JUMP
000013a6: JUMPDEST
000013a7: PUSH1 0x60
000013a9: SWAP2
000013aa: POP
000013ab: JUMPDEST
000013ac: POP
000013ad: SWAP1
000013ae: SWAP7
000013af: SWAP6
000013b0: POP
000013b1: POP
000013b2: POP
000013b3: POP
000013b4: POP
000013b5: POP
000013b6: JUMP
000013b7: JUMPDEST
000013b8: PUSH1 0x40
000013ba: DUP1
000013bb: MLOAD
000013bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013d1: DUP1
000013d2: DUP7
000013d3: AND
000013d4: PUSH1 0x24
000013d6: DUP4
000013d7: ADD
000013d8: MSTORE
000013d9: PUSH1 0x44
000013db: DUP1
000013dc: DUP4
000013dd: ADD
000013de: DUP7
000013df: SWAP1
000013e0: MSTORE
000013e1: DUP4
000013e2: MLOAD
000013e3: DUP1
000013e4: DUP5
000013e5: SUB
000013e6: SWAP1
000013e7: SWAP2
000013e8: ADD
000013e9: DUP2
000013ea: MSTORE
000013eb: PUSH1 0x64
000013ed: SWAP1
000013ee: SWAP3
000013ef: ADD
000013f0: DUP4
000013f1: MSTORE
000013f2: PUSH1 0x20
000013f4: DUP3
000013f5: ADD
000013f6: DUP1
000013f7: MLOAD
000013f8: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00001415: AND
00001416: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
00001437: OR
00001438: DUP2
00001439: MSTORE
0000143a: SWAP3
0000143b: MLOAD
0000143c: DUP3
0000143d: MLOAD
0000143e: PUSH1 0x00
00001440: SWAP5
00001441: DUP6
00001442: SWAP4
00001443: DUP11
00001444: AND
00001445: SWAP3
00001446: DUP8
00001447: SWAP3
00001448: DUP7
00001449: SWAP3
0000144a: DUP3
0000144b: SWAP2
0000144c: DUP1
0000144d: DUP4
0000144e: DUP4
0000144f: JUMPDEST
00001450: PUSH1 0x20
00001452: DUP4
00001453: LT
00001454: PUSH2 0x148c
00001457: JUMPI
00001458: DUP1
00001459: MLOAD
0000145a: DUP3
0000145b: MSTORE
0000145c: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
0000147d: SWAP1
0000147e: SWAP3
0000147f: ADD
00001480: SWAP2
00001481: PUSH1 0x20
00001483: SWAP2
00001484: DUP3
00001485: ADD
00001486: SWAP2
00001487: ADD
00001488: PUSH2 0x144f
0000148b: JUMP
0000148c: JUMPDEST
0000148d: PUSH1 0x01
0000148f: DUP4
00001490: PUSH1 0x20
00001492: SUB
00001493: PUSH2 0x0100
00001496: EXP
00001497: SUB
00001498: DUP1
00001499: NOT
0000149a: DUP3
0000149b: MLOAD
0000149c: AND
0000149d: DUP2
0000149e: DUP5
0000149f: MLOAD
000014a0: AND
000014a1: DUP1
000014a2: DUP3
000014a3: OR
000014a4: DUP6
000014a5: MSTORE
000014a6: POP
000014a7: POP
000014a8: POP
000014a9: POP
000014aa: POP
000014ab: POP
000014ac: SWAP1
000014ad: POP
000014ae: ADD
000014af: SWAP2
000014b0: POP
000014b1: POP
000014b2: PUSH1 0x00
000014b4: PUSH1 0x40
000014b6: MLOAD
000014b7: DUP1
000014b8: DUP4
000014b9: SUB
000014ba: DUP2
000014bb: PUSH1 0x00
000014bd: DUP8
000014be: DUP8
000014bf: CALL
000014c0: SWAP3
000014c1: POP
000014c2: POP
000014c3: POP
000014c4: RETURNDATASIZE
000014c5: DUP1
000014c6: PUSH1 0x00
000014c8: DUP2
000014c9: EQ
000014ca: PUSH2 0x14ef
000014cd: JUMPI
000014ce: PUSH1 0x40
000014d0: MLOAD
000014d1: SWAP2
000014d2: POP
000014d3: PUSH1 0x1f
000014d5: NOT
000014d6: PUSH1 0x3f
000014d8: RETURNDATASIZE
000014d9: ADD
000014da: AND
000014db: DUP3
000014dc: ADD
000014dd: PUSH1 0x40
000014df: MSTORE
000014e0: RETURNDATASIZE
000014e1: DUP3
000014e2: MSTORE
000014e3: RETURNDATASIZE
000014e4: PUSH1 0x00
000014e6: PUSH1 0x20
000014e8: DUP5
000014e9: ADD
000014ea: RETURNDATACOPY
000014eb: PUSH2 0x14f4
000014ee: JUMP
000014ef: JUMPDEST
000014f0: PUSH1 0x60
000014f2: SWAP2
000014f3: POP
000014f4: JUMPDEST
000014f5: POP
000014f6: POP
000014f7: SWAP1
000014f8: POP
000014f9: PUSH2 0x1501
000014fc: DUP2
000014fd: PUSH2 0x160b
00001500: JUMP
00001501: JUMPDEST
00001502: SWAP8
00001503: SWAP7
00001504: POP
00001505: POP
00001506: POP
00001507: POP
00001508: POP
00001509: POP
0000150a: POP
0000150b: JUMP
0000150c: JUMPDEST
0000150d: PUSH2 0x1518
00001510: DUP5
00001511: DUP5
00001512: DUP5
00001513: DUP5
00001514: PUSH2 0x13b7
00001517: JUMP
00001518: JUMPDEST
00001519: PUSH2 0x1232
0000151c: JUMPI
0000151d: PUSH1 0x40
0000151f: DUP1
00001520: MLOAD
00001521: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001542: DUP2
00001543: MSTORE
00001544: PUSH1 0x20
00001546: PUSH1 0x04
00001548: DUP3
00001549: ADD
0000154a: MSTORE
0000154b: PUSH1 0x10
0000154d: PUSH1 0x24
0000154f: DUP3
00001550: ADD
00001551: MSTORE
00001552: PUSH32 0x5452414e534645525f4641494c55524500000000000000000000000000000000
00001573: PUSH1 0x44
00001575: DUP3
00001576: ADD
00001577: MSTORE
00001578: SWAP1
00001579: MLOAD
0000157a: SWAP1
0000157b: DUP2
0000157c: SWAP1
0000157d: SUB
0000157e: PUSH1 0x64
00001580: ADD
00001581: SWAP1
00001582: REVERT
00001583: JUMPDEST
00001584: PUSH1 0x00
00001586: PUSH2 0x1592
00001589: DUP7
0000158a: DUP7
0000158b: DUP7
0000158c: DUP7
0000158d: DUP7
0000158e: PUSH2 0x1647
00001591: JUMP
00001592: JUMPDEST
00001593: SWAP1
00001594: POP
00001595: DUP1
00001596: PUSH2 0x1600
00001599: JUMPI
0000159a: PUSH1 0x40
0000159c: DUP1
0000159d: MLOAD
0000159e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000015bf: DUP2
000015c0: MSTORE
000015c1: PUSH1 0x20
000015c3: PUSH1 0x04
000015c5: DUP3
000015c6: ADD
000015c7: MSTORE
000015c8: PUSH1 0x10
000015ca: PUSH1 0x24
000015cc: DUP3
000015cd: ADD
000015ce: MSTORE
000015cf: PUSH32 0x5452414e534645525f4641494c55524500000000000000000000000000000000
000015f0: PUSH1 0x44
000015f2: DUP3
000015f3: ADD
000015f4: MSTORE
000015f5: SWAP1
000015f6: MLOAD
000015f7: SWAP1
000015f8: DUP2
000015f9: SWAP1
000015fa: SUB
000015fb: PUSH1 0x64
000015fd: ADD
000015fe: SWAP1
000015ff: REVERT
00001600: JUMPDEST
00001601: POP
00001602: POP
00001603: POP
00001604: POP
00001605: POP
00001606: POP
00001607: JUMP
00001608: JUMPDEST
00001609: SWAP1
0000160a: JUMP
0000160b: JUMPDEST
0000160c: PUSH1 0x00
0000160e: DUP2
0000160f: ISZERO
00001610: PUSH2 0x1316
00001613: JUMPI
00001614: RETURNDATASIZE
00001615: DUP1
00001616: ISZERO
00001617: PUSH2 0x162b
0000161a: JUMPI
0000161b: PUSH1 0x20
0000161d: DUP2
0000161e: EQ
0000161f: PUSH2 0x1634
00001622: JUMPI
00001623: PUSH1 0x00
00001625: SWAP3
00001626: POP
00001627: PUSH2 0x1640
0000162a: JUMP
0000162b: JUMPDEST
0000162c: PUSH1 0x01
0000162e: SWAP3
0000162f: POP
00001630: PUSH2 0x1640
00001633: JUMP
00001634: JUMPDEST
00001635: PUSH1 0x20
00001637: PUSH1 0x00
00001639: DUP1
0000163a: RETURNDATACOPY
0000163b: PUSH1 0x00
0000163d: MLOAD
0000163e: SWAP3
0000163f: POP
00001640: JUMPDEST
00001641: POP
00001642: SWAP1
00001643: SWAP2
00001644: SWAP1
00001645: POP
00001646: JUMP
00001647: JUMPDEST
00001648: PUSH1 0x40
0000164a: DUP1
0000164b: MLOAD
0000164c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001661: DUP1
00001662: DUP8
00001663: AND
00001664: PUSH1 0x24
00001666: DUP4
00001667: ADD
00001668: MSTORE
00001669: DUP1
0000166a: DUP7
0000166b: AND
0000166c: PUSH1 0x44
0000166e: DUP4
0000166f: ADD
00001670: MSTORE
00001671: PUSH1 0x64
00001673: DUP1
00001674: DUP4
00001675: ADD
00001676: DUP7
00001677: SWAP1
00001678: MSTORE
00001679: DUP4
0000167a: MLOAD
0000167b: DUP1
0000167c: DUP5
0000167d: SUB
0000167e: SWAP1
0000167f: SWAP2
00001680: ADD
00001681: DUP2
00001682: MSTORE
00001683: PUSH1 0x84
00001685: SWAP1
00001686: SWAP3
00001687: ADD
00001688: DUP4
00001689: MSTORE
0000168a: PUSH1 0x20
0000168c: DUP3
0000168d: ADD
0000168e: DUP1
0000168f: MLOAD
00001690: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000016ad: AND
000016ae: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000
000016cf: OR
000016d0: DUP2
000016d1: MSTORE
000016d2: SWAP3
000016d3: MLOAD
000016d4: DUP3
000016d5: MLOAD
000016d6: PUSH1 0x00
000016d8: SWAP5
000016d9: DUP6
000016da: SWAP4
000016db: DUP12
000016dc: AND
000016dd: SWAP3
000016de: DUP8
000016df: SWAP3
000016e0: DUP7
000016e1: SWAP3
000016e2: DUP3
000016e3: SWAP2
000016e4: DUP1
000016e5: DUP4
000016e6: DUP4
000016e7: JUMPDEST
000016e8: PUSH1 0x20
000016ea: DUP4
000016eb: LT
000016ec: PUSH2 0x1724
000016ef: JUMPI
000016f0: DUP1
000016f1: MLOAD
000016f2: DUP3
000016f3: MSTORE
000016f4: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00001715: SWAP1
00001716: SWAP3
00001717: ADD
00001718: SWAP2
00001719: PUSH1 0x20
0000171b: SWAP2
0000171c: DUP3
0000171d: ADD
0000171e: SWAP2
0000171f: ADD
00001720: PUSH2 0x16e7
00001723: JUMP
00001724: JUMPDEST
00001725: PUSH1 0x01
00001727: DUP4
00001728: PUSH1 0x20
0000172a: SUB
0000172b: PUSH2 0x0100
0000172e: EXP
0000172f: SUB
00001730: DUP1
00001731: NOT
00001732: DUP3
00001733: MLOAD
00001734: AND
00001735: DUP2
00001736: DUP5
00001737: MLOAD
00001738: AND
00001739: DUP1
0000173a: DUP3
0000173b: OR
0000173c: DUP6
0000173d: MSTORE
0000173e: POP
0000173f: POP
00001740: POP
00001741: POP
00001742: POP
00001743: POP
00001744: SWAP1
00001745: POP
00001746: ADD
00001747: SWAP2
00001748: POP
00001749: POP
0000174a: PUSH1 0x00
0000174c: PUSH1 0x40
0000174e: MLOAD
0000174f: DUP1
00001750: DUP4
00001751: SUB
00001752: DUP2
00001753: PUSH1 0x00
00001755: DUP8
00001756: DUP8
00001757: CALL
00001758: SWAP3
00001759: POP
0000175a: POP
0000175b: POP
0000175c: RETURNDATASIZE
0000175d: DUP1
0000175e: PUSH1 0x00
00001760: DUP2
00001761: EQ
00001762: PUSH2 0x1787
00001765: JUMPI
00001766: PUSH1 0x40
00001768: MLOAD
00001769: SWAP2
0000176a: POP
0000176b: PUSH1 0x1f
0000176d: NOT
0000176e: PUSH1 0x3f
00001770: RETURNDATASIZE
00001771: ADD
00001772: AND
00001773: DUP3
00001774: ADD
00001775: PUSH1 0x40
00001777: MSTORE
00001778: RETURNDATASIZE
00001779: DUP3
0000177a: MSTORE
0000177b: RETURNDATASIZE
0000177c: PUSH1 0x00
0000177e: PUSH1 0x20
00001780: DUP5
00001781: ADD
00001782: RETURNDATACOPY
00001783: PUSH2 0x178c
00001786: JUMP
00001787: JUMPDEST
00001788: PUSH1 0x60
0000178a: SWAP2
0000178b: POP
0000178c: JUMPDEST
0000178d: POP
0000178e: POP
0000178f: SWAP1
00001790: POP
00001791: PUSH2 0x1799
00001794: DUP2
00001795: PUSH2 0x160b
00001798: JUMP
00001799: JUMPDEST
0000179a: SWAP9
0000179b: SWAP8
0000179c: POP
0000179d: POP
0000179e: POP
0000179f: POP
000017a0: POP
000017a1: POP
000017a2: POP
000017a3: POP
000017a4: JUMP
000017a5: INVALID
000017a6: MSTORE8
000017a7: PUSH2 0x6665
000017aa: NUMBER
000017ab: PUSH2 0x7374
000017ae: GASPRICE
000017af: KECCAK256
000017b0: PUSH23 0x616c756520646f65736e27742066697420696e20393620
000017c8: PUSH3 0x697473
000017cc: LOG2
000017cd: PUSH5 0x6970667358
000017d3: UNKNOWN(0x22)
000017d4: SLT
000017d5: KECCAK256
000017d6: SWAP8
000017d7: SWAP15
000017d8: SWAP7
000017d9: PUSH14 0x3e3b93489b96051bd9dd18007a01
000017e8: XOR
000017e9: UNKNOWN(0x24)
000017ea: PUSH4 0xcd93ae5c
000017ef: LOG1
000017f0: UNKNOWN(0xC1)
000017f1: PUSH25

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability codex Unprotected initialize allows exchange takeover and full fund drain 90 no
view
evidence_json
{
    "evidence": "`initialize` is `external` and only checks `exchange == address(0)` before setting `owner = msg.sender` and `exchange = _exchange`, enabling anyone to claim control if not yet initialized (contracts/Contract.sol:925-936).",
    "locations": [
        "contracts/Contract.sol:925",
        "contracts/Contract.sol:934",
        "contracts/Contract.sol:935"
    ],
    "recommendation": "Protect `initialize` with an explicit access control check (e.g., onlyOwner/onlyProxy), or set `exchange` in a constructor for non-proxy deployments and disable the initializer on the implementation contract.",
    "exploit_scenario": "1) Before `exchange` is set, attacker calls `initialize(attackerExchange)` and becomes both `owner` and `exchange` because there is no access control. 2) As `exchange`, attacker calls `withdraw(..., token, amount, ...)` for ETH (token = 0x0) and each ERC20 with `amount` set to the contract\u2019s balance, transferring all funds to themselves. 3) Optional: attacker calls `transfer(from, attacker, token, amount)` to pull any user allowances granted to the deposit contract. Profit potential: up to the entire ETH/ERC20 balances held by the deposit contract plus any user allowances approved to it."
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x3361d39372af62b1c1cb3c245ee6764a41b167719a6385ace404fefae3c7ac9a
call_targets: 0x674bdf20a0f284d710bc40872100128e2d66bd3f
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x3361d39372af62b1c1cb3c245ee6764a41b167719a6385ace404fefae3c7ac9a",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x674bdf20a0f284d710bc40872100128e2d66bd3f"
    ],
    "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": "0xf18d03cc",
            "selector": "0xf18d03cc",
            "calldata_variants": [
                "0xf18d03cc",
                "0xf18d03cc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3d790b7",
            "selector": "0xf3d790b7",
            "calldata_variants": [
                "0xf3d790b7",
                "0xf3d790b70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf70a2508",
            "selector": "0xf70a2508",
            "calldata_variants": [
                "0xf70a2508",
                "0xf70a25080000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc4d66de8",
            "selector": "0xc4d66de8",
            "calldata_variants": [
                "0xc4d66de8",
                "0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd2f7265a",
            "selector": "0xd2f7265a",
            "calldata_variants": [
                "0xd2f7265a",
                "0xd2f7265a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe30c3978",
            "selector": "0xe30c3978",
            "calldata_variants": [
                "0xe30c3978",
                "0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x715018a6",
            "selector": "0x715018a6",
            "calldata_variants": [
                "0x715018a6",
                "0x715018a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4981,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5311,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5975,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [],
    "untrusted_call_count": 3
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x3361d39372af62b1c1cb3c245ee6764a41b167719a6385ace404fefae3c7ac9a
call_targets: 0x674bdf20a0f284d710bc40872100128e2d66bd3f
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x3361d39372af62b1c1cb3c245ee6764a41b167719a6385ace404fefae3c7ac9a",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x674bdf20a0f284d710bc40872100128e2d66bd3f"
    ],
    "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": "0xf18d03cc",
            "selector": "0xf18d03cc",
            "calldata_variants": [
                "0xf18d03cc",
                "0xf18d03cc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3d790b7",
            "selector": "0xf3d790b7",
            "calldata_variants": [
                "0xf3d790b7",
                "0xf3d790b70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf70a2508",
            "selector": "0xf70a2508",
            "calldata_variants": [
                "0xf70a2508",
                "0xf70a25080000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc4d66de8",
            "selector": "0xc4d66de8",
            "calldata_variants": [
                "0xc4d66de8",
                "0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd2f7265a",
            "selector": "0xd2f7265a",
            "calldata_variants": [
                "0xd2f7265a",
                "0xd2f7265a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe30c3978",
            "selector": "0xe30c3978",
            "calldata_variants": [
                "0xe30c3978",
                "0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x715018a6",
            "selector": "0x715018a6",
            "calldata_variants": [
                "0x715018a6",
                "0x715018a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4981,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5311,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5975,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": []
}