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

Analysis Run

438bc7e1-aa81-4613-928b-887b29687f2c

failed
Chain ID
1
Address
Block Number
Created
Tue, Dec 30, 2025 9:20 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
Not yet
Best current signal
Untrusted DELEGATECALL target reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30776 report.consolidate complete 1 / 1 3 months ago
75652 artifact.fetch failed 1 / 3 1 week ago
75653 tool.cast_disasm complete 1 / 3 1 week ago
75654 analysis.bundle complete 1 / 3 1 week ago
75655 capability.graph complete 1 / 3 1 week ago
75656 detector.run complete 1 / 3 1 week ago
75657 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
0
No findings?
yes
Summary
No exploitable vulnerabilities identified in the provided first-party contracts; code is primarily storage definitions and a standard owner-upgradeable delegatecall proxy.
View stderr
[codex:431063] OpenAI Codex v0.77.0 (research preview)
[codex:431063] --------
[codex:431063] workdir: /tmp/codex-multi-5sg0jsq1
[codex:431063] model: gpt-5.2-codex
[codex:431063] provider: openai
[codex:431063] approval: never
[codex:431063] sandbox: read-only
[codex:431063] reasoning effort: xhigh
[codex:431063] reasoning summaries: auto
[codex:431063] session id: 019b7122-3a48-7333-bf14-31e89f653e18
[codex:431063] --------
[codex:431063] user
[codex:431063] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:431063] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:431063] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:431063] 
[codex:431063] Scope rules:
[codex:431063] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:431063] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:431063] 
[codex:431063] Output MUST be valid JSON matching the provided schema.
[codex:431063] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:431063] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:431063] 
[codex:431063] Output constraints (IMPORTANT):
[codex:431063] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:431063] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:431063] mcp startup: no servers
[codex:431063] 
[codex:431063] thinking
[codex:431063] **Preparing to review AGENTS instructions**
[codex:431063] exec
[codex:431063] /bin/bash -lc ls in /tmp/codex-multi-5sg0jsq1 succeeded in 5ms:
[codex:431063] AUDIT_BUNDLE.txt
[codex:431063] codex-output-schema.json
[codex:431063] contracts
[codex:431063] exec
[codex:431063] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-5sg0jsq1 succeeded in 6ms:
[codex:431063] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:431063] 
[codex:431063] ================================================================================
[codex:431063] FILE: contracts/Contract.sol
[codex:431063] ================================================================================
[codex:431063] /**
[codex:431063]  * Copyright 2017-2019, bZeroX, LLC. All Rights Reserved.
[codex:431063]  * Licensed under the Apache License, Version 2.0.
[codex:431063]  */
[codex:431063]  
[codex:431063] pragma solidity 0.5.8;
[codex:431063] 
[codex:431063] 
[codex:431063] /**
[codex:431063]  * @title ERC20Basic
[codex:431063]  * @dev Simpler version of ERC20 interface
[codex:431063]  * See https://github.com/ethereum/EIPs/issues/179
[codex:431063]  */
[codex:431063] contract ERC20Basic {
[codex:431063]   function totalSupply() public view returns (uint256);
[codex:431063] 
[codex:431063] thinking
[codex:431063] **Evaluating proxy contract vulnerabilities**
[codex:431063] 
[codex:431063] I'm reviewing the proxy contract's upgradeability and delegatecall usage to identify potential security risks. So far, it looks like a minimal proxy pattern with owner-controlled upgrade, typical delegatecall fallback, and access controls ensuring only the owner can set the target. I'm noting the absence of initialization issues or reentrancy risks and confirming the contract's safety measures like requiring the new target to be a deployed contract. Overall, it seems secure with no exploitable vulnerabilities found.
[codex:431063] codex
[codex:431063] {"no_findings":true,"summary":"No exploitable vulnerabilities identified in the provided first-party contracts; code is primarily storage definitions and a standard owner-upgradeable delegatecall proxy.","findings":[]}
[codex:431063] tokens used
[codex:431063] 6,218
[codex:431063] {"no_findings":true,"summary":"No exploitable vulnerabilities identified in the provided first-party contracts; code is primarily storage definitions and a standard owner-upgradeable delegatecall proxy.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-30T21:20:54.924580+00:00",
        "returncode": 0
    },
    "summary": "No exploitable vulnerabilities identified in the provided first-party contracts; code is primarily storage definitions and a standard owner-upgradeable delegatecall proxy.",
    "raw_final": {
        "summary": "No exploitable vulnerabilities identified in the provided first-party contracts; code is primarily storage definitions and a standard owner-upgradeable delegatecall proxy.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
0
EXT*/BALANCE
1
Total opcodes
1965
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x01ee
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x8eb955e2
00000019: GT
0000001a: PUSH2 0x010d
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xbc29af14
00000024: GT
00000025: PUSH2 0x00a0
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xdd62ed3e
0000002f: GT
00000030: PUSH2 0x006f
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xdd62ed3e
0000003a: EQ
0000003b: PUSH2 0x061b
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xe1a283d6
00000045: EQ
00000046: PUSH2 0x0656
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xeaa05002
00000050: EQ
00000051: PUSH2 0x066b
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xf2fde38b
0000005b: EQ
0000005c: PUSH2 0x0680
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xf41e4e6a
00000066: EQ
00000067: PUSH2 0x06b3
0000006a: JUMPI
0000006b: PUSH2 0x01ee
0000006e: JUMP
0000006f: JUMPDEST
00000070: DUP1
00000071: PUSH4 0xbc29af14
00000076: EQ
00000077: PUSH2 0x058b
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xc20c49ec
00000081: EQ
00000082: PUSH2 0x05a0
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xd05daa04
0000008c: EQ
0000008d: PUSH2 0x05b5
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0xdb72da2c
00000097: EQ
00000098: PUSH2 0x05e8
0000009b: JUMPI
0000009c: PUSH2 0x01ee
0000009f: JUMP
000000a0: JUMPDEST
000000a1: DUP1
000000a2: PUSH4 0x995363d3
000000a7: GT
000000a8: PUSH2 0x00dc
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0x995363d3
000000b2: EQ
000000b3: PUSH2 0x0537
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0xa5507b35
000000bd: EQ
000000be: PUSH2 0x054c
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0xab47c2b3
000000c8: EQ
000000c9: PUSH2 0x0561
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH4 0xb2aff0fe
000000d3: EQ
000000d4: PUSH2 0x0576
000000d7: JUMPI
000000d8: PUSH2 0x01ee
000000db: JUMP
000000dc: JUMPDEST
000000dd: DUP1
000000de: PUSH4 0x8eb955e2
000000e3: EQ
000000e4: PUSH2 0x04e3
000000e7: JUMPI
000000e8: DUP1
000000e9: PUSH4 0x95d89b41
000000ee: EQ
000000ef: PUSH2 0x04f8
000000f2: JUMPI
000000f3: DUP1
000000f4: PUSH4 0x96c7871b
000000f9: EQ
000000fa: PUSH2 0x050d
000000fd: JUMPI
000000fe: DUP1
000000ff: PUSH4 0x9788b5bb
00000104: EQ
00000105: PUSH2 0x0522
00000108: JUMPI
00000109: PUSH2 0x01ee
0000010c: JUMP
0000010d: JUMPDEST
0000010e: DUP1
0000010f: PUSH4 0x4780eac1
00000114: GT
00000115: PUSH2 0x0185
00000118: JUMPI
00000119: DUP1
0000011a: PUSH4 0x797bf385
0000011f: GT
00000120: PUSH2 0x0154
00000123: JUMPI
00000124: DUP1
00000125: PUSH4 0x797bf385
0000012a: EQ
0000012b: PUSH2 0x047b
0000012e: JUMPI
0000012f: DUP1
00000130: PUSH4 0x833c1d95
00000135: EQ
00000136: PUSH2 0x0490
00000139: JUMPI
0000013a: DUP1
0000013b: PUSH4 0x894ca308
00000140: EQ
00000141: PUSH2 0x04b9
00000144: JUMPI
00000145: DUP1
00000146: PUSH4 0x8da5cb5b
0000014b: EQ
0000014c: PUSH2 0x04ce
0000014f: JUMPI
00000150: PUSH2 0x01ee
00000153: JUMP
00000154: JUMPDEST
00000155: DUP1
00000156: PUSH4 0x4780eac1
0000015b: EQ
0000015c: PUSH2 0x03cf
0000015f: JUMPI
00000160: DUP1
00000161: PUSH4 0x4858064c
00000166: EQ
00000167: PUSH2 0x0400
0000016a: JUMPI
0000016b: DUP1
0000016c: PUSH4 0x70a08231
00000171: EQ
00000172: PUSH2 0x0415
00000175: JUMPI
00000176: DUP1
00000177: PUSH4 0x776d1a01
0000017c: EQ
0000017d: PUSH2 0x0448
00000180: JUMPI
00000181: PUSH2 0x01ee
00000184: JUMP
00000185: JUMPDEST
00000186: DUP1
00000187: PUSH4 0x1d0806ae
0000018c: GT
0000018d: PUSH2 0x01c1
00000190: JUMPI
00000191: DUP1
00000192: PUSH4 0x1d0806ae
00000197: EQ
00000198: PUSH2 0x0335
0000019b: JUMPI
0000019c: DUP1
0000019d: PUSH4 0x304c28ee
000001a2: EQ
000001a3: PUSH2 0x034a
000001a6: JUMPI
000001a7: DUP1
000001a8: PUSH4 0x313ce567
000001ad: EQ
000001ae: PUSH2 0x0378
000001b1: JUMPI
000001b2: DUP1
000001b3: PUSH4 0x359803cd
000001b8: EQ
000001b9: PUSH2 0x03a3
000001bc: JUMPI
000001bd: PUSH2 0x01ee
000001c0: JUMP
000001c1: JUMPDEST
000001c2: DUP1
000001c3: PUSH4 0x06b1884d
000001c8: EQ
000001c9: PUSH2 0x025a
000001cc: JUMPI
000001cd: DUP1
000001ce: PUSH4 0x06fdde03
000001d3: EQ
000001d4: PUSH2 0x0281
000001d7: JUMPI
000001d8: DUP1
000001d9: PUSH4 0x150d97ff
000001de: EQ
000001df: PUSH2 0x030b
000001e2: JUMPI
000001e3: DUP1
000001e4: PUSH4 0x18160ddd
000001e9: EQ
000001ea: PUSH2 0x0320
000001ed: JUMPI
000001ee: JUMPDEST
000001ef: PUSH1 0x1c
000001f1: SLOAD
000001f2: PUSH1 0x40
000001f4: DUP1
000001f5: MLOAD
000001f6: PUSH1 0x20
000001f8: CALLDATASIZE
000001f9: PUSH1 0x1f
000001fb: DUP2
000001fc: ADD
000001fd: DUP3
000001fe: SWAP1
000001ff: DIV
00000200: DUP3
00000201: MUL
00000202: DUP4
00000203: ADD
00000204: DUP3
00000205: ADD
00000206: SWAP1
00000207: SWAP4
00000208: MSTORE
00000209: DUP3
0000020a: DUP3
0000020b: MSTORE
0000020c: PUSH1 0x01
0000020e: PUSH1 0x01
00000210: PUSH1 0xa0
00000212: SHL
00000213: SUB
00000214: SWAP1
00000215: SWAP4
00000216: AND
00000217: SWAP3
00000218: PUSH1 0x60
0000021a: SWAP3
0000021b: PUSH1 0x00
0000021d: SWAP2
0000021e: DUP2
0000021f: SWAP1
00000220: DUP5
00000221: ADD
00000222: DUP4
00000223: DUP3
00000224: DUP1
00000225: DUP3
00000226: DUP5
00000227: CALLDATACOPY
00000228: PUSH1 0x00
0000022a: SWAP3
0000022b: ADD
0000022c: DUP3
0000022d: SWAP1
0000022e: MSTORE
0000022f: POP
00000230: DUP5
00000231: MLOAD
00000232: SWAP5
00000233: SWAP6
00000234: POP
00000235: SWAP4
00000236: DUP5
00000237: SWAP4
00000238: POP
00000239: SWAP2
0000023a: POP
0000023b: POP
0000023c: PUSH1 0x20
0000023e: DUP5
0000023f: ADD
00000240: DUP6
00000241: GAS
00000242: DELEGATECALL
00000243: RETURNDATASIZE
00000244: PUSH1 0x40
00000246: MLOAD
00000247: DUP2
00000248: PUSH1 0x00
0000024a: DUP3
0000024b: RETURNDATACOPY
0000024c: DUP3
0000024d: DUP1
0000024e: ISZERO
0000024f: PUSH2 0x0256
00000252: JUMPI
00000253: DUP3
00000254: DUP3
00000255: RETURN
00000256: JUMPDEST
00000257: DUP3
00000258: DUP3
00000259: REVERT
0000025a: JUMPDEST
0000025b: CALLVALUE
0000025c: DUP1
0000025d: ISZERO
0000025e: PUSH2 0x0266
00000261: JUMPI
00000262: PUSH1 0x00
00000264: DUP1
00000265: REVERT
00000266: JUMPDEST
00000267: POP
00000268: PUSH2 0x026f
0000026b: PUSH2 0x06c8
0000026e: JUMP
0000026f: JUMPDEST
00000270: PUSH1 0x40
00000272: DUP1
00000273: MLOAD
00000274: SWAP2
00000275: DUP3
00000276: MSTORE
00000277: MLOAD
00000278: SWAP1
00000279: DUP2
0000027a: SWAP1
0000027b: SUB
0000027c: PUSH1 0x20
0000027e: ADD
0000027f: SWAP1
00000280: RETURN
00000281: JUMPDEST
00000282: CALLVALUE
00000283: DUP1
00000284: ISZERO
00000285: PUSH2 0x028d
00000288: JUMPI
00000289: PUSH1 0x00
0000028b: DUP1
0000028c: REVERT
0000028d: JUMPDEST
0000028e: POP
0000028f: PUSH2 0x0296
00000292: PUSH2 0x06ce
00000295: JUMP
00000296: JUMPDEST
00000297: PUSH1 0x40
00000299: DUP1
0000029a: MLOAD
0000029b: PUSH1 0x20
0000029d: DUP1
0000029e: DUP3
0000029f: MSTORE
000002a0: DUP4
000002a1: MLOAD
000002a2: DUP2
000002a3: DUP4
000002a4: ADD
000002a5: MSTORE
000002a6: DUP4
000002a7: MLOAD
000002a8: SWAP2
000002a9: SWAP3
000002aa: DUP4
000002ab: SWAP3
000002ac: SWAP1
000002ad: DUP4
000002ae: ADD
000002af: SWAP2
000002b0: DUP6
000002b1: ADD
000002b2: SWAP1
000002b3: DUP1
000002b4: DUP4
000002b5: DUP4
000002b6: PUSH1 0x00
000002b8: JUMPDEST
000002b9: DUP4
000002ba: DUP2
000002bb: LT
000002bc: ISZERO
000002bd: PUSH2 0x02d0
000002c0: JUMPI
000002c1: DUP2
000002c2: DUP2
000002c3: ADD
000002c4: MLOAD
000002c5: DUP4
000002c6: DUP3
000002c7: ADD
000002c8: MSTORE
000002c9: PUSH1 0x20
000002cb: ADD
000002cc: PUSH2 0x02b8
000002cf: JUMP
000002d0: JUMPDEST
000002d1: POP
000002d2: POP
000002d3: POP
000002d4: POP
000002d5: SWAP1
000002d6: POP
000002d7: SWAP1
000002d8: DUP2
000002d9: ADD
000002da: SWAP1
000002db: PUSH1 0x1f
000002dd: AND
000002de: DUP1
000002df: ISZERO
000002e0: PUSH2 0x02fd
000002e3: JUMPI
000002e4: DUP1
000002e5: DUP3
000002e6: SUB
000002e7: DUP1
000002e8: MLOAD
000002e9: PUSH1 0x01
000002eb: DUP4
000002ec: PUSH1 0x20
000002ee: SUB
000002ef: PUSH2 0x0100
000002f2: EXP
000002f3: SUB
000002f4: NOT
000002f5: AND
000002f6: DUP2
000002f7: MSTORE
000002f8: PUSH1 0x20
000002fa: ADD
000002fb: SWAP2
000002fc: POP
000002fd: JUMPDEST
000002fe: POP
000002ff: SWAP3
00000300: POP
00000301: POP
00000302: POP
00000303: PUSH1 0x40
00000305: MLOAD
00000306: DUP1
00000307: SWAP2
00000308: SUB
00000309: SWAP1
0000030a: RETURN
0000030b: JUMPDEST
0000030c: CALLVALUE
0000030d: DUP1
0000030e: ISZERO
0000030f: PUSH2 0x0317
00000312: JUMPI
00000313: PUSH1 0x00
00000315: DUP1
00000316: REVERT
00000317: JUMPDEST
00000318: POP
00000319: PUSH2 0x026f
0000031c: PUSH2 0x0759
0000031f: JUMP
00000320: JUMPDEST
00000321: CALLVALUE
00000322: DUP1
00000323: ISZERO
00000324: PUSH2 0x032c
00000327: JUMPI
00000328: PUSH1 0x00
0000032a: DUP1
0000032b: REVERT
0000032c: JUMPDEST
0000032d: POP
0000032e: PUSH2 0x026f
00000331: PUSH2 0x075f
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 0x026f
00000346: PUSH2 0x0771
00000349: JUMP
0000034a: JUMPDEST
0000034b: CALLVALUE
0000034c: DUP1
0000034d: ISZERO
0000034e: PUSH2 0x0356
00000351: JUMPI
00000352: PUSH1 0x00
00000354: DUP1
00000355: REVERT
00000356: JUMPDEST
00000357: POP
00000358: PUSH2 0x0376
0000035b: PUSH1 0x04
0000035d: DUP1
0000035e: CALLDATASIZE
0000035f: SUB
00000360: PUSH1 0x20
00000362: DUP2
00000363: LT
00000364: ISZERO
00000365: PUSH2 0x036d
00000368: JUMPI
00000369: PUSH1 0x00
0000036b: DUP1
0000036c: REVERT
0000036d: JUMPDEST
0000036e: POP
0000036f: CALLDATALOAD
00000370: ISZERO
00000371: ISZERO
00000372: PUSH2 0x0777
00000375: JUMP
00000376: JUMPDEST
00000377: STOP
00000378: JUMPDEST
00000379: CALLVALUE
0000037a: DUP1
0000037b: ISZERO
0000037c: PUSH2 0x0384
0000037f: JUMPI
00000380: PUSH1 0x00
00000382: DUP1
00000383: REVERT
00000384: JUMPDEST
00000385: POP
00000386: PUSH2 0x038d
00000389: PUSH2 0x07af
0000038c: JUMP
0000038d: JUMPDEST
0000038e: PUSH1 0x40
00000390: DUP1
00000391: MLOAD
00000392: PUSH1 0xff
00000394: SWAP1
00000395: SWAP3
00000396: AND
00000397: DUP3
00000398: MSTORE
00000399: MLOAD
0000039a: SWAP1
0000039b: DUP2
0000039c: SWAP1
0000039d: SUB
0000039e: PUSH1 0x20
000003a0: ADD
000003a1: SWAP1
000003a2: RETURN
000003a3: JUMPDEST
000003a4: CALLVALUE
000003a5: DUP1
000003a6: ISZERO
000003a7: PUSH2 0x03af
000003aa: JUMPI
000003ab: PUSH1 0x00
000003ad: DUP1
000003ae: REVERT
000003af: JUMPDEST
000003b0: POP
000003b1: PUSH2 0x0376
000003b4: PUSH1 0x04
000003b6: DUP1
000003b7: CALLDATASIZE
000003b8: SUB
000003b9: PUSH1 0x20
000003bb: DUP2
000003bc: LT
000003bd: ISZERO
000003be: PUSH2 0x03c6
000003c1: JUMPI
000003c2: PUSH1 0x00
000003c4: DUP1
000003c5: REVERT
000003c6: JUMPDEST
000003c7: POP
000003c8: CALLDATALOAD
000003c9: ISZERO
000003ca: ISZERO
000003cb: PUSH2 0x07b8
000003ce: JUMP
000003cf: JUMPDEST
000003d0: CALLVALUE
000003d1: DUP1
000003d2: ISZERO
000003d3: PUSH2 0x03db
000003d6: JUMPI
000003d7: PUSH1 0x00
000003d9: DUP1
000003da: REVERT
000003db: JUMPDEST
000003dc: POP
000003dd: PUSH2 0x03e4
000003e0: PUSH2 0x07fe
000003e3: JUMP
000003e4: JUMPDEST
000003e5: PUSH1 0x40
000003e7: DUP1
000003e8: MLOAD
000003e9: PUSH1 0x01
000003eb: PUSH1 0x01
000003ed: PUSH1 0xa0
000003ef: SHL
000003f0: SUB
000003f1: SWAP1
000003f2: SWAP3
000003f3: AND
000003f4: DUP3
000003f5: MSTORE
000003f6: MLOAD
000003f7: SWAP1
000003f8: DUP2
000003f9: SWAP1
000003fa: SUB
000003fb: PUSH1 0x20
000003fd: ADD
000003fe: SWAP1
000003ff: RETURN
00000400: JUMPDEST
00000401: CALLVALUE
00000402: DUP1
00000403: ISZERO
00000404: PUSH2 0x040c
00000407: JUMPI
00000408: PUSH1 0x00
0000040a: DUP1
0000040b: REVERT
0000040c: JUMPDEST
0000040d: POP
0000040e: PUSH2 0x03e4
00000411: PUSH2 0x080d
00000414: JUMP
00000415: JUMPDEST
00000416: CALLVALUE
00000417: DUP1
00000418: ISZERO
00000419: PUSH2 0x0421
0000041c: JUMPI
0000041d: PUSH1 0x00
0000041f: DUP1
00000420: REVERT
00000421: JUMPDEST
00000422: POP
00000423: PUSH2 0x026f
00000426: PUSH1 0x04
00000428: DUP1
00000429: CALLDATASIZE
0000042a: SUB
0000042b: PUSH1 0x20
0000042d: DUP2
0000042e: LT
0000042f: ISZERO
00000430: PUSH2 0x0438
00000433: JUMPI
00000434: PUSH1 0x00
00000436: DUP1
00000437: REVERT
00000438: JUMPDEST
00000439: POP
0000043a: CALLDATALOAD
0000043b: PUSH1 0x01
0000043d: PUSH1 0x01
0000043f: PUSH1 0xa0
00000441: SHL
00000442: SUB
00000443: AND
00000444: PUSH2 0x0821
00000447: JUMP
00000448: JUMPDEST
00000449: CALLVALUE
0000044a: DUP1
0000044b: ISZERO
0000044c: PUSH2 0x0454
0000044f: JUMPI
00000450: PUSH1 0x00
00000452: DUP1
00000453: REVERT
00000454: JUMPDEST
00000455: POP
00000456: PUSH2 0x0376
00000459: PUSH1 0x04
0000045b: DUP1
0000045c: CALLDATASIZE
0000045d: SUB
0000045e: PUSH1 0x20
00000460: DUP2
00000461: LT
00000462: ISZERO
00000463: PUSH2 0x046b
00000466: JUMPI
00000467: PUSH1 0x00
00000469: DUP1
0000046a: REVERT
0000046b: JUMPDEST
0000046c: POP
0000046d: CALLDATALOAD
0000046e: PUSH1 0x01
00000470: PUSH1 0x01
00000472: PUSH1 0xa0
00000474: SHL
00000475: SUB
00000476: AND
00000477: PUSH2 0x0849
0000047a: JUMP
0000047b: JUMPDEST
0000047c: CALLVALUE
0000047d: DUP1
0000047e: ISZERO
0000047f: PUSH2 0x0487
00000482: JUMPI
00000483: PUSH1 0x00
00000485: DUP1
00000486: REVERT
00000487: JUMPDEST
00000488: POP
00000489: PUSH2 0x03e4
0000048c: PUSH2 0x086c
0000048f: JUMP
00000490: JUMPDEST
00000491: CALLVALUE
00000492: DUP1
00000493: ISZERO
00000494: PUSH2 0x049c
00000497: JUMPI
00000498: PUSH1 0x00
0000049a: DUP1
0000049b: REVERT
0000049c: JUMPDEST
0000049d: POP
0000049e: PUSH2 0x04a5
000004a1: PUSH2 0x087b
000004a4: JUMP
000004a5: JUMPDEST
000004a6: PUSH1 0x40
000004a8: DUP1
000004a9: MLOAD
000004aa: SWAP2
000004ab: ISZERO
000004ac: ISZERO
000004ad: DUP3
000004ae: MSTORE
000004af: MLOAD
000004b0: SWAP1
000004b1: DUP2
000004b2: SWAP1
000004b3: SUB
000004b4: PUSH1 0x20
000004b6: ADD
000004b7: SWAP1
000004b8: RETURN
000004b9: JUMPDEST
000004ba: CALLVALUE
000004bb: DUP1
000004bc: ISZERO
000004bd: PUSH2 0x04c5
000004c0: JUMPI
000004c1: PUSH1 0x00
000004c3: DUP1
000004c4: REVERT
000004c5: JUMPDEST
000004c6: POP
000004c7: PUSH2 0x03e4
000004ca: PUSH2 0x088b
000004cd: JUMP
000004ce: JUMPDEST
000004cf: CALLVALUE
000004d0: DUP1
000004d1: ISZERO
000004d2: PUSH2 0x04da
000004d5: JUMPI
000004d6: PUSH1 0x00
000004d8: DUP1
000004d9: REVERT
000004da: JUMPDEST
000004db: POP
000004dc: PUSH2 0x03e4
000004df: PUSH2 0x089a
000004e2: JUMP
000004e3: JUMPDEST
000004e4: CALLVALUE
000004e5: DUP1
000004e6: ISZERO
000004e7: PUSH2 0x04ef
000004ea: JUMPI
000004eb: PUSH1 0x00
000004ed: DUP1
000004ee: REVERT
000004ef: JUMPDEST
000004f0: POP
000004f1: PUSH2 0x026f
000004f4: PUSH2 0x08a9
000004f7: JUMP
000004f8: JUMPDEST
000004f9: CALLVALUE
000004fa: DUP1
000004fb: ISZERO
000004fc: PUSH2 0x0504
000004ff: JUMPI
00000500: PUSH1 0x00
00000502: DUP1
00000503: REVERT
00000504: JUMPDEST
00000505: POP
00000506: PUSH2 0x0296
00000509: PUSH2 0x08af
0000050c: JUMP
0000050d: JUMPDEST
0000050e: CALLVALUE
0000050f: DUP1
00000510: ISZERO
00000511: PUSH2 0x0519
00000514: JUMPI
00000515: PUSH1 0x00
00000517: DUP1
00000518: REVERT
00000519: JUMPDEST
0000051a: POP
0000051b: PUSH2 0x03e4
0000051e: PUSH2 0x090a
00000521: JUMP
00000522: JUMPDEST
00000523: CALLVALUE
00000524: DUP1
00000525: ISZERO
00000526: PUSH2 0x052e
00000529: JUMPI
0000052a: PUSH1 0x00
0000052c: DUP1
0000052d: REVERT
0000052e: JUMPDEST
0000052f: POP
00000530: PUSH2 0x026f
00000533: PUSH2 0x0919
00000536: JUMP
00000537: JUMPDEST
00000538: CALLVALUE
00000539: DUP1
0000053a: ISZERO
0000053b: PUSH2 0x0543
0000053e: JUMPI
0000053f: PUSH1 0x00
00000541: DUP1
00000542: REVERT
00000543: JUMPDEST
00000544: POP
00000545: PUSH2 0x03e4
00000548: PUSH2 0x091f
0000054b: JUMP
0000054c: JUMPDEST
0000054d: CALLVALUE
0000054e: DUP1
0000054f: ISZERO
00000550: PUSH2 0x0558
00000553: JUMPI
00000554: PUSH1 0x00
00000556: DUP1
00000557: REVERT
00000558: JUMPDEST
00000559: POP
0000055a: PUSH2 0x026f
0000055d: PUSH2 0x0933
00000560: JUMP
00000561: JUMPDEST
00000562: CALLVALUE
00000563: DUP1
00000564: ISZERO
00000565: PUSH2 0x056d
00000568: JUMPI
00000569: PUSH1 0x00
0000056b: DUP1
0000056c: REVERT
0000056d: JUMPDEST
0000056e: POP
0000056f: PUSH2 0x026f
00000572: PUSH2 0x0939
00000575: JUMP
00000576: JUMPDEST
00000577: CALLVALUE
00000578: DUP1
00000579: ISZERO
0000057a: PUSH2 0x0582
0000057d: JUMPI
0000057e: PUSH1 0x00
00000580: DUP1
00000581: REVERT
00000582: JUMPDEST
00000583: POP
00000584: PUSH2 0x03e4
00000587: PUSH2 0x093f
0000058a: JUMP
0000058b: JUMPDEST
0000058c: CALLVALUE
0000058d: DUP1
0000058e: ISZERO
0000058f: PUSH2 0x0597
00000592: JUMPI
00000593: PUSH1 0x00
00000595: DUP1
00000596: REVERT
00000597: JUMPDEST
00000598: POP
00000599: PUSH2 0x026f
0000059c: PUSH2 0x094e
0000059f: JUMP
000005a0: JUMPDEST
000005a1: CALLVALUE
000005a2: DUP1
000005a3: ISZERO
000005a4: PUSH2 0x05ac
000005a7: JUMPI
000005a8: PUSH1 0x00
000005aa: DUP1
000005ab: REVERT
000005ac: JUMPDEST
000005ad: POP
000005ae: PUSH2 0x04a5
000005b1: PUSH2 0x0954
000005b4: JUMP
000005b5: JUMPDEST
000005b6: CALLVALUE
000005b7: DUP1
000005b8: ISZERO
000005b9: PUSH2 0x05c1
000005bc: JUMPI
000005bd: PUSH1 0x00
000005bf: DUP1
000005c0: REVERT
000005c1: JUMPDEST
000005c2: POP
000005c3: PUSH2 0x026f
000005c6: PUSH1 0x04
000005c8: DUP1
000005c9: CALLDATASIZE
000005ca: SUB
000005cb: PUSH1 0x20
000005cd: DUP2
000005ce: LT
000005cf: ISZERO
000005d0: PUSH2 0x05d8
000005d3: JUMPI
000005d4: PUSH1 0x00
000005d6: DUP1
000005d7: REVERT
000005d8: JUMPDEST
000005d9: POP
000005da: CALLDATALOAD
000005db: PUSH1 0x01
000005dd: PUSH1 0x01
000005df: PUSH1 0xa0
000005e1: SHL
000005e2: SUB
000005e3: AND
000005e4: PUSH2 0x095d
000005e7: JUMP
000005e8: JUMPDEST
000005e9: CALLVALUE
000005ea: DUP1
000005eb: ISZERO
000005ec: PUSH2 0x05f4
000005ef: JUMPI
000005f0: PUSH1 0x00
000005f2: DUP1
000005f3: REVERT
000005f4: JUMPDEST
000005f5: POP
000005f6: PUSH2 0x026f
000005f9: PUSH1 0x04
000005fb: DUP1
000005fc: CALLDATASIZE
000005fd: SUB
000005fe: PUSH1 0x20
00000600: DUP2
00000601: LT
00000602: ISZERO
00000603: PUSH2 0x060b
00000606: JUMPI
00000607: PUSH1 0x00
00000609: DUP1
0000060a: REVERT
0000060b: JUMPDEST
0000060c: POP
0000060d: CALLDATALOAD
0000060e: PUSH1 0x01
00000610: PUSH1 0x01
00000612: PUSH1 0xa0
00000614: SHL
00000615: SUB
00000616: AND
00000617: PUSH2 0x096f
0000061a: JUMP
0000061b: JUMPDEST
0000061c: CALLVALUE
0000061d: DUP1
0000061e: ISZERO
0000061f: PUSH2 0x0627
00000622: JUMPI
00000623: PUSH1 0x00
00000625: DUP1
00000626: REVERT
00000627: JUMPDEST
00000628: POP
00000629: PUSH2 0x026f
0000062c: PUSH1 0x04
0000062e: DUP1
0000062f: CALLDATASIZE
00000630: SUB
00000631: PUSH1 0x40
00000633: DUP2
00000634: LT
00000635: ISZERO
00000636: PUSH2 0x063e
00000639: JUMPI
0000063a: PUSH1 0x00
0000063c: DUP1
0000063d: REVERT
0000063e: JUMPDEST
0000063f: POP
00000640: PUSH1 0x01
00000642: PUSH1 0x01
00000644: PUSH1 0xa0
00000646: SHL
00000647: SUB
00000648: DUP2
00000649: CALLDATALOAD
0000064a: DUP2
0000064b: AND
0000064c: SWAP2
0000064d: PUSH1 0x20
0000064f: ADD
00000650: CALLDATALOAD
00000651: AND
00000652: PUSH2 0x0981
00000655: JUMP
00000656: JUMPDEST
00000657: CALLVALUE
00000658: DUP1
00000659: ISZERO
0000065a: PUSH2 0x0662
0000065d: JUMPI
0000065e: PUSH1 0x00
00000660: DUP1
00000661: REVERT
00000662: JUMPDEST
00000663: POP
00000664: PUSH2 0x04a5
00000667: PUSH2 0x09b9
0000066a: JUMP
0000066b: JUMPDEST
0000066c: CALLVALUE
0000066d: DUP1
0000066e: ISZERO
0000066f: PUSH2 0x0677
00000672: JUMPI
00000673: PUSH1 0x00
00000675: DUP1
00000676: REVERT
00000677: JUMPDEST
00000678: POP
00000679: PUSH2 0x026f
0000067c: PUSH2 0x09c9
0000067f: JUMP
00000680: JUMPDEST
00000681: CALLVALUE
00000682: DUP1
00000683: ISZERO
00000684: PUSH2 0x068c
00000687: JUMPI
00000688: PUSH1 0x00
0000068a: DUP1
0000068b: REVERT
0000068c: JUMPDEST
0000068d: POP
0000068e: PUSH2 0x0376
00000691: PUSH1 0x04
00000693: DUP1
00000694: CALLDATASIZE
00000695: SUB
00000696: PUSH1 0x20
00000698: DUP2
00000699: LT
0000069a: ISZERO
0000069b: PUSH2 0x06a3
0000069e: JUMPI
0000069f: PUSH1 0x00
000006a1: DUP1
000006a2: REVERT
000006a3: JUMPDEST
000006a4: POP
000006a5: CALLDATALOAD
000006a6: PUSH1 0x01
000006a8: PUSH1 0x01
000006aa: PUSH1 0xa0
000006ac: SHL
000006ad: SUB
000006ae: AND
000006af: PUSH2 0x09cf
000006b2: JUMP
000006b3: JUMPDEST
000006b4: CALLVALUE
000006b5: DUP1
000006b6: ISZERO
000006b7: PUSH2 0x06bf
000006ba: JUMPI
000006bb: PUSH1 0x00
000006bd: DUP1
000006be: REVERT
000006bf: JUMPDEST
000006c0: POP
000006c1: PUSH2 0x026f
000006c4: PUSH2 0x09ef
000006c7: JUMP
000006c8: JUMPDEST
000006c9: PUSH1 0x10
000006cb: SLOAD
000006cc: DUP2
000006cd: JUMP
000006ce: JUMPDEST
000006cf: PUSH1 0x02
000006d1: DUP1
000006d2: SLOAD
000006d3: PUSH1 0x40
000006d5: DUP1
000006d6: MLOAD
000006d7: PUSH1 0x20
000006d9: PUSH1 0x01
000006db: DUP5
000006dc: AND
000006dd: ISZERO
000006de: PUSH2 0x0100
000006e1: MUL
000006e2: PUSH1 0x00
000006e4: NOT
000006e5: ADD
000006e6: SWAP1
000006e7: SWAP4
000006e8: AND
000006e9: DUP5
000006ea: SWAP1
000006eb: DIV
000006ec: PUSH1 0x1f
000006ee: DUP2
000006ef: ADD
000006f0: DUP5
000006f1: SWAP1
000006f2: DIV
000006f3: DUP5
000006f4: MUL
000006f5: DUP3
000006f6: ADD
000006f7: DUP5
000006f8: ADD
000006f9: SWAP1
000006fa: SWAP3
000006fb: MSTORE
000006fc: DUP2
000006fd: DUP2
000006fe: MSTORE
000006ff: SWAP3
00000700: SWAP2
00000701: DUP4
00000702: ADD
00000703: DUP3
00000704: DUP3
00000705: DUP1
00000706: ISZERO
00000707: PUSH2 0x0751
0000070a: JUMPI
0000070b: DUP1
0000070c: PUSH1 0x1f
0000070e: LT
0000070f: PUSH2 0x0726
00000712: JUMPI
00000713: PUSH2 0x0100
00000716: DUP1
00000717: DUP4
00000718: SLOAD
00000719: DIV
0000071a: MUL
0000071b: DUP4
0000071c: MSTORE
0000071d: SWAP2
0000071e: PUSH1 0x20
00000720: ADD
00000721: SWAP2
00000722: PUSH2 0x0751
00000725: JUMP
00000726: JUMPDEST
00000727: DUP3
00000728: ADD
00000729: SWAP2
0000072a: SWAP1
0000072b: PUSH1 0x00
0000072d: MSTORE
0000072e: PUSH1 0x20
00000730: PUSH1 0x00
00000732: KECCAK256
00000733: SWAP1
00000734: JUMPDEST
00000735: DUP2
00000736: SLOAD
00000737: DUP2
00000738: MSTORE
00000739: SWAP1
0000073a: PUSH1 0x01
0000073c: ADD
0000073d: SWAP1
0000073e: PUSH1 0x20
00000740: ADD
00000741: DUP1
00000742: DUP4
00000743: GT
00000744: PUSH2 0x0734
00000747: JUMPI
00000748: DUP3
00000749: SWAP1
0000074a: SUB
0000074b: PUSH1 0x1f
0000074d: AND
0000074e: DUP3
0000074f: ADD
00000750: SWAP2
00000751: JUMPDEST
00000752: POP
00000753: POP
00000754: POP
00000755: POP
00000756: POP
00000757: DUP2
00000758: JUMP
00000759: JUMPDEST
0000075a: PUSH1 0x11
0000075c: SLOAD
0000075d: DUP2
0000075e: JUMP
0000075f: JUMPDEST
00000760: PUSH1 0x00
00000762: PUSH2 0x076c
00000765: PUSH1 0x1a
00000767: SLOAD
00000768: PUSH2 0x09f5
0000076b: JUMP
0000076c: JUMPDEST
0000076d: SWAP1
0000076e: POP
0000076f: SWAP1
00000770: JUMP
00000771: JUMPDEST
00000772: PUSH1 0x12
00000774: SLOAD
00000775: DUP2
00000776: JUMP
00000777: JUMPDEST
00000778: PUSH1 0x01
0000077a: SLOAD
0000077b: PUSH1 0x01
0000077d: PUSH1 0x01
0000077f: PUSH1 0xa0
00000781: SHL
00000782: SUB
00000783: AND
00000784: CALLER
00000785: EQ
00000786: PUSH2 0x078e
00000789: JUMPI
0000078a: PUSH1 0x00
0000078c: DUP1
0000078d: REVERT
0000078e: JUMPDEST
0000078f: PUSH1 0x08
00000791: DUP1
00000792: SLOAD
00000793: SWAP2
00000794: ISZERO
00000795: ISZERO
00000796: PUSH1 0x01
00000798: PUSH1 0xa8
0000079a: SHL
0000079b: MUL
0000079c: PUSH1 0x01
0000079e: PUSH1 0xa8
000007a0: SHL
000007a1: PUSH1 0xff
000007a3: MUL
000007a4: NOT
000007a5: SWAP1
000007a6: SWAP3
000007a7: AND
000007a8: SWAP2
000007a9: SWAP1
000007aa: SWAP2
000007ab: OR
000007ac: SWAP1
000007ad: SSTORE
000007ae: JUMP
000007af: JUMPDEST
000007b0: PUSH1 0x04
000007b2: SLOAD
000007b3: PUSH1 0xff
000007b5: AND
000007b6: DUP2
000007b7: JUMP
000007b8: JUMPDEST
000007b9: PUSH1 0x01
000007bb: SLOAD
000007bc: PUSH1 0x01
000007be: PUSH1 0x01
000007c0: PUSH1 0xa0
000007c2: SHL
000007c3: SUB
000007c4: AND
000007c5: CALLER
000007c6: EQ
000007c7: PUSH2 0x07cf
000007ca: JUMPI
000007cb: PUSH1 0x00
000007cd: DUP1
000007ce: REVERT
000007cf: JUMPDEST
000007d0: PUSH1 0x08
000007d2: DUP1
000007d3: SLOAD
000007d4: SWAP2
000007d5: ISZERO
000007d6: ISZERO
000007d7: PUSH1 0x01
000007d9: PUSH1 0xa0
000007db: SHL
000007dc: MUL
000007dd: PUSH21 0xff0000000000000000000000000000000000000000
000007f3: NOT
000007f4: SWAP1
000007f5: SWAP3
000007f6: AND
000007f7: SWAP2
000007f8: SWAP1
000007f9: SWAP2
000007fa: OR
000007fb: SWAP1
000007fc: SSTORE
000007fd: JUMP
000007fe: JUMPDEST
000007ff: PUSH1 0x07
00000801: SLOAD
00000802: PUSH1 0x01
00000804: PUSH1 0x01
00000806: PUSH1 0xa0
00000808: SHL
00000809: SUB
0000080a: AND
0000080b: DUP2
0000080c: JUMP
0000080d: JUMPDEST
0000080e: PUSH1 0x0a
00000810: SLOAD
00000811: PUSH2 0x0100
00000814: SWAP1
00000815: DIV
00000816: PUSH1 0x01
00000818: PUSH1 0x01
0000081a: PUSH1 0xa0
0000081c: SHL
0000081d: SUB
0000081e: AND
0000081f: DUP2
00000820: JUMP
00000821: JUMPDEST
00000822: PUSH1 0x01
00000824: PUSH1 0x01
00000826: PUSH1 0xa0
00000828: SHL
00000829: SUB
0000082a: DUP2
0000082b: AND
0000082c: PUSH1 0x00
0000082e: SWAP1
0000082f: DUP2
00000830: MSTORE
00000831: PUSH1 0x18
00000833: PUSH1 0x20
00000835: MSTORE
00000836: PUSH1 0x40
00000838: DUP2
00000839: KECCAK256
0000083a: SLOAD
0000083b: PUSH2 0x0843
0000083e: SWAP1
0000083f: PUSH2 0x09f5
00000842: JUMP
00000843: JUMPDEST
00000844: SWAP3
00000845: SWAP2
00000846: POP
00000847: POP
00000848: JUMP
00000849: JUMPDEST
0000084a: PUSH1 0x01
0000084c: SLOAD
0000084d: PUSH1 0x01
0000084f: PUSH1 0x01
00000851: PUSH1 0xa0
00000853: SHL
00000854: SUB
00000855: AND
00000856: CALLER
00000857: EQ
00000858: PUSH2 0x0860
0000085b: JUMPI
0000085c: PUSH1 0x00
0000085e: DUP1
0000085f: REVERT
00000860: JUMPDEST
00000861: PUSH2 0x0869
00000864: DUP2
00000865: PUSH2 0x0a23
00000868: JUMP
00000869: JUMPDEST
0000086a: POP
0000086b: JUMP
0000086c: JUMPDEST
0000086d: PUSH1 0x08
0000086f: SLOAD
00000870: PUSH1 0x01
00000872: PUSH1 0x01
00000874: PUSH1 0xa0
00000876: SHL
00000877: SUB
00000878: AND
00000879: DUP2
0000087a: JUMP
0000087b: JUMPDEST
0000087c: PUSH1 0x08
0000087e: SLOAD
0000087f: PUSH1 0x01
00000881: PUSH1 0xa8
00000883: SHL
00000884: SWAP1
00000885: DIV
00000886: PUSH1 0xff
00000888: AND
00000889: DUP2
0000088a: JUMP
0000088b: JUMPDEST
0000088c: PUSH1 0x05
0000088e: SLOAD
0000088f: PUSH1 0x01
00000891: PUSH1 0x01
00000893: PUSH1 0xa0
00000895: SHL
00000896: SUB
00000897: AND
00000898: DUP2
00000899: JUMP
0000089a: JUMPDEST
0000089b: PUSH1 0x01
0000089d: SLOAD
0000089e: PUSH1 0x01
000008a0: PUSH1 0x01
000008a2: PUSH1 0xa0
000008a4: SHL
000008a5: SUB
000008a6: AND
000008a7: DUP2
000008a8: JUMP
000008a9: JUMPDEST
000008aa: PUSH1 0x16
000008ac: SLOAD
000008ad: DUP2
000008ae: JUMP
000008af: JUMPDEST
000008b0: PUSH1 0x03
000008b2: DUP1
000008b3: SLOAD
000008b4: PUSH1 0x40
000008b6: DUP1
000008b7: MLOAD
000008b8: PUSH1 0x20
000008ba: PUSH1 0x02
000008bc: PUSH1 0x01
000008be: DUP6
000008bf: AND
000008c0: ISZERO
000008c1: PUSH2 0x0100
000008c4: MUL
000008c5: PUSH1 0x00
000008c7: NOT
000008c8: ADD
000008c9: SWAP1
000008ca: SWAP5
000008cb: AND
000008cc: SWAP4
000008cd: SWAP1
000008ce: SWAP4
000008cf: DIV
000008d0: PUSH1 0x1f
000008d2: DUP2
000008d3: ADD
000008d4: DUP5
000008d5: SWAP1
000008d6: DIV
000008d7: DUP5
000008d8: MUL
000008d9: DUP3
000008da: ADD
000008db: DUP5
000008dc: ADD
000008dd: SWAP1
000008de: SWAP3
000008df: MSTORE
000008e0: DUP2
000008e1: DUP2
000008e2: MSTORE
000008e3: SWAP3
000008e4: SWAP2
000008e5: DUP4
000008e6: ADD
000008e7: DUP3
000008e8: DUP3
000008e9: DUP1
000008ea: ISZERO
000008eb: PUSH2 0x0751
000008ee: JUMPI
000008ef: DUP1
000008f0: PUSH1 0x1f
000008f2: LT
000008f3: PUSH2 0x0726
000008f6: JUMPI
000008f7: PUSH2 0x0100
000008fa: DUP1
000008fb: DUP4
000008fc: SLOAD
000008fd: DIV
000008fe: MUL
000008ff: DUP4
00000900: MSTORE
00000901: SWAP2
00000902: PUSH1 0x20
00000904: ADD
00000905: SWAP2
00000906: PUSH2 0x0751
00000909: JUMP
0000090a: JUMPDEST
0000090b: PUSH1 0x06
0000090d: SLOAD
0000090e: PUSH1 0x01
00000910: PUSH1 0x01
00000912: PUSH1 0xa0
00000914: SHL
00000915: SUB
00000916: AND
00000917: DUP2
00000918: JUMP
00000919: JUMPDEST
0000091a: PUSH1 0x17
0000091c: SLOAD
0000091d: DUP2
0000091e: JUMP
0000091f: JUMPDEST
00000920: PUSH1 0x04
00000922: SLOAD
00000923: PUSH2 0x0100
00000926: SWAP1
00000927: DIV
00000928: PUSH1 0x01
0000092a: PUSH1 0x01
0000092c: PUSH1 0xa0
0000092e: SHL
0000092f: SUB
00000930: AND
00000931: DUP2
00000932: JUMP
00000933: JUMPDEST
00000934: PUSH1 0x1b
00000936: SLOAD
00000937: DUP2
00000938: JUMP
00000939: JUMPDEST
0000093a: PUSH1 0x0c
0000093c: SLOAD
0000093d: DUP2
0000093e: JUMP
0000093f: JUMPDEST
00000940: PUSH1 0x0b
00000942: SLOAD
00000943: PUSH1 0x01
00000945: PUSH1 0x01
00000947: PUSH1 0xa0
00000949: SHL
0000094a: SUB
0000094b: AND
0000094c: DUP2
0000094d: JUMP
0000094e: JUMPDEST
0000094f: PUSH1 0x0f
00000951: SLOAD
00000952: DUP2
00000953: JUMP
00000954: JUMPDEST
00000955: PUSH1 0x13
00000957: SLOAD
00000958: PUSH1 0xff
0000095a: AND
0000095b: DUP2
0000095c: JUMP
0000095d: JUMPDEST
0000095e: PUSH1 0x14
00000960: PUSH1 0x20
00000962: MSTORE
00000963: PUSH1 0x00
00000965: SWAP1
00000966: DUP2
00000967: MSTORE
00000968: PUSH1 0x40
0000096a: SWAP1
0000096b: KECCAK256
0000096c: SLOAD
0000096d: DUP2
0000096e: JUMP
0000096f: JUMPDEST
00000970: PUSH1 0x15
00000972: PUSH1 0x20
00000974: MSTORE
00000975: PUSH1 0x00
00000977: SWAP1
00000978: DUP2
00000979: MSTORE
0000097a: PUSH1 0x40
0000097c: SWAP1
0000097d: KECCAK256
0000097e: SLOAD
0000097f: DUP2
00000980: JUMP
00000981: JUMPDEST
00000982: PUSH1 0x01
00000984: PUSH1 0x01
00000986: PUSH1 0xa0
00000988: SHL
00000989: SUB
0000098a: DUP1
0000098b: DUP4
0000098c: AND
0000098d: PUSH1 0x00
0000098f: SWAP1
00000990: DUP2
00000991: MSTORE
00000992: PUSH1 0x19
00000994: PUSH1 0x20
00000996: SWAP1
00000997: DUP2
00000998: MSTORE
00000999: PUSH1 0x40
0000099b: DUP1
0000099c: DUP4
0000099d: KECCAK256
0000099e: SWAP4
0000099f: DUP6
000009a0: AND
000009a1: DUP4
000009a2: MSTORE
000009a3: SWAP3
000009a4: SWAP1
000009a5: MSTORE
000009a6: SWAP1
000009a7: DUP2
000009a8: KECCAK256
000009a9: SLOAD
000009aa: PUSH2 0x09b2
000009ad: SWAP1
000009ae: PUSH2 0x09f5
000009b1: JUMP
000009b2: JUMPDEST
000009b3: SWAP4
000009b4: SWAP3
000009b5: POP
000009b6: POP
000009b7: POP
000009b8: JUMP
000009b9: JUMPDEST
000009ba: PUSH1 0x08
000009bc: SLOAD
000009bd: PUSH1 0x01
000009bf: PUSH1 0xa0
000009c1: SHL
000009c2: SWAP1
000009c3: DIV
000009c4: PUSH1 0xff
000009c6: AND
000009c7: DUP2
000009c8: JUMP
000009c9: JUMPDEST
000009ca: PUSH1 0x0e
000009cc: SLOAD
000009cd: DUP2
000009ce: JUMP
000009cf: JUMPDEST
000009d0: PUSH1 0x01
000009d2: SLOAD
000009d3: PUSH1 0x01
000009d5: PUSH1 0x01
000009d7: PUSH1 0xa0
000009d9: SHL
000009da: SUB
000009db: AND
000009dc: CALLER
000009dd: EQ
000009de: PUSH2 0x09e6
000009e1: JUMPI
000009e2: PUSH1 0x00
000009e4: DUP1
000009e5: REVERT
000009e6: JUMPDEST
000009e7: PUSH2 0x0869
000009ea: DUP2
000009eb: PUSH2 0x0aa2
000009ee: JUMP
000009ef: JUMPDEST
000009f0: PUSH1 0x0d
000009f2: SLOAD
000009f3: DUP2
000009f4: JUMP
000009f5: JUMPDEST
000009f6: PUSH1 0x1b
000009f8: SLOAD
000009f9: PUSH1 0x00
000009fb: SWAP1
000009fc: PUSH2 0x0843
000009ff: SWAP1
00000a00: PUSH2 0x0a17
00000a03: DUP5
00000a04: PUSH8 0x0de0b6b3a7640000
00000a0d: PUSH4 0xffffffff
00000a12: PUSH2 0x0b11
00000a15: AND
00000a16: JUMP
00000a17: JUMPDEST
00000a18: SWAP1
00000a19: PUSH4 0xffffffff
00000a1e: PUSH2 0x0b36
00000a21: AND
00000a22: JUMP
00000a23: JUMPDEST
00000a24: PUSH2 0x0a2c
00000a27: DUP2
00000a28: PUSH2 0x0b49
00000a2b: JUMP
00000a2c: JUMPDEST
00000a2d: PUSH2 0x0a80
00000a30: JUMPI
00000a31: PUSH1 0x40
00000a33: DUP1
00000a34: MLOAD
00000a35: PUSH1 0x01
00000a37: PUSH1 0xe5
00000a39: SHL
00000a3a: PUSH3 0x461bcd
00000a3e: MUL
00000a3f: DUP2
00000a40: MSTORE
00000a41: PUSH1 0x20
00000a43: PUSH1 0x04
00000a45: DUP3
00000a46: ADD
00000a47: MSTORE
00000a48: PUSH1 0x15
00000a4a: PUSH1 0x24
00000a4c: DUP3
00000a4d: ADD
00000a4e: MSTORE
00000a4f: PUSH32 0x746172676574206e6f74206120636f6e74726163740000000000000000000000
00000a70: PUSH1 0x44
00000a72: DUP3
00000a73: ADD
00000a74: MSTORE
00000a75: SWAP1
00000a76: MLOAD
00000a77: SWAP1
00000a78: DUP2
00000a79: SWAP1
00000a7a: SUB
00000a7b: PUSH1 0x64
00000a7d: ADD
00000a7e: SWAP1
00000a7f: REVERT
00000a80: JUMPDEST
00000a81: PUSH1 0x1c
00000a83: DUP1
00000a84: SLOAD
00000a85: PUSH1 0x01
00000a87: PUSH1 0x01
00000a89: PUSH1 0xa0
00000a8b: SHL
00000a8c: SUB
00000a8d: NOT
00000a8e: AND
00000a8f: PUSH1 0x01
00000a91: PUSH1 0x01
00000a93: PUSH1 0xa0
00000a95: SHL
00000a96: SUB
00000a97: SWAP3
00000a98: SWAP1
00000a99: SWAP3
00000a9a: AND
00000a9b: SWAP2
00000a9c: SWAP1
00000a9d: SWAP2
00000a9e: OR
00000a9f: SWAP1
00000aa0: SSTORE
00000aa1: JUMP
00000aa2: JUMPDEST
00000aa3: PUSH1 0x01
00000aa5: PUSH1 0x01
00000aa7: PUSH1 0xa0
00000aa9: SHL
00000aaa: SUB
00000aab: DUP2
00000aac: AND
00000aad: PUSH2 0x0ab5
00000ab0: JUMPI
00000ab1: PUSH1 0x00
00000ab3: DUP1
00000ab4: REVERT
00000ab5: JUMPDEST
00000ab6: PUSH1 0x01
00000ab8: SLOAD
00000ab9: PUSH1 0x40
00000abb: MLOAD
00000abc: PUSH1 0x01
00000abe: PUSH1 0x01
00000ac0: PUSH1 0xa0
00000ac2: SHL
00000ac3: SUB
00000ac4: DUP1
00000ac5: DUP5
00000ac6: AND
00000ac7: SWAP3
00000ac8: AND
00000ac9: SWAP1
00000aca: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00000aeb: SWAP1
00000aec: PUSH1 0x00
00000aee: SWAP1
00000aef: LOG3
00000af0: PUSH1 0x01
00000af2: DUP1
00000af3: SLOAD
00000af4: PUSH1 0x01
00000af6: PUSH1 0x01
00000af8: PUSH1 0xa0
00000afa: SHL
00000afb: SUB
00000afc: NOT
00000afd: AND
00000afe: PUSH1 0x01
00000b00: PUSH1 0x01
00000b02: PUSH1 0xa0
00000b04: SHL
00000b05: SUB
00000b06: SWAP3
00000b07: SWAP1
00000b08: SWAP3
00000b09: AND
00000b0a: SWAP2
00000b0b: SWAP1
00000b0c: SWAP2
00000b0d: OR
00000b0e: SWAP1
00000b0f: SSTORE
00000b10: JUMP
00000b11: JUMPDEST
00000b12: PUSH1 0x00
00000b14: DUP3
00000b15: PUSH2 0x0b20
00000b18: JUMPI
00000b19: POP
00000b1a: PUSH1 0x00
00000b1c: PUSH2 0x0843
00000b1f: JUMP
00000b20: JUMPDEST
00000b21: POP
00000b22: DUP2
00000b23: DUP2
00000b24: MUL
00000b25: DUP2
00000b26: DUP4
00000b27: DUP3
00000b28: DUP2
00000b29: PUSH2 0x0b2e
00000b2c: JUMPI
00000b2d: INVALID
00000b2e: JUMPDEST
00000b2f: DIV
00000b30: EQ
00000b31: PUSH2 0x0843
00000b34: JUMPI
00000b35: INVALID
00000b36: JUMPDEST
00000b37: PUSH1 0x00
00000b39: DUP2
00000b3a: DUP4
00000b3b: DUP2
00000b3c: PUSH2 0x0b41
00000b3f: JUMPI
00000b40: INVALID
00000b41: JUMPDEST
00000b42: DIV
00000b43: SWAP4
00000b44: SWAP3
00000b45: POP
00000b46: POP
00000b47: POP
00000b48: JUMP
00000b49: JUMPDEST
00000b4a: EXTCODESIZE
00000b4b: ISZERO
00000b4c: ISZERO
00000b4d: SWAP1
00000b4e: JUMP
00000b4f: INVALID
00000b50: LOG1
00000b51: PUSH6 0x627a7a723058
00000b58: KECCAK256
00000b59: UNKNOWN(0x28)
00000b5a: MSIZE
00000b5b: UNKNOWN(0x2C)
00000b5c: PUSH21 0x169f48aa40fc2c3ff6dfc6c9219ca84537cc7fd1c6
00000b72: BLOBBASEFEE
00000b73: UNKNOWN(0xE2)
00000b74: MCOPY
00000b75: AND
00000b76: SELFBALANCE
00000b77: UNKNOWN(0xD1)
00000b78: UNKNOWN(0xD9)
00000b79: STOP
00000b7a: UNKNOWN(0x29)

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0x5299624fb97484e1cd4b47fcebde01134c1deef3749fe519a3994fb6e07d0f3e
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0x5299624fb97484e1cd4b47fcebde01134c1deef3749fe519a3994fb6e07d0f3e",
    "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": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe1a283d6",
            "selector": "0xe1a283d6",
            "calldata_variants": [
                "0xe1a283d6",
                "0xe1a283d60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeaa05002",
            "selector": "0xeaa05002",
            "calldata_variants": [
                "0xeaa05002",
                "0xeaa050020000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf41e4e6a",
            "selector": "0xf41e4e6a",
            "calldata_variants": [
                "0xf41e4e6a",
                "0xf41e4e6a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbc29af14",
            "selector": "0xbc29af14",
            "calldata_variants": [
                "0xbc29af14",
                "0xbc29af140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc20c49ec",
            "selector": "0xc20c49ec",
            "calldata_variants": [
                "0xc20c49ec",
                "0xc20c49ec0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd05daa04",
            "selector": "0xd05daa04",
            "calldata_variants": [
                "0xd05daa04",
                "0xd05daa040000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 578,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}