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

Analysis Run

15581f51-4417-4bd0-978d-4eed14f14057

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30841 report.consolidate complete 1 / 1 3 months ago
94057 artifact.fetch failed 1 / 3 1 week ago
94058 tool.cast_disasm complete 1 / 3 1 week ago
94059 analysis.bundle complete 1 / 3 1 week ago
94060 capability.graph complete 1 / 3 1 week ago
94061 detector.run complete 1 / 3 1 week ago
94062 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 concrete, exploitable profit paths found in the provided join adapter contracts.
View stderr
[codex:430297] OpenAI Codex v0.77.0 (research preview)
[codex:430297] --------
[codex:430297] workdir: /tmp/codex-multi-7y5_qigq
[codex:430297] model: gpt-5.2-codex
[codex:430297] provider: openai
[codex:430297] approval: never
[codex:430297] sandbox: read-only
[codex:430297] reasoning effort: xhigh
[codex:430297] reasoning summaries: auto
[codex:430297] session id: 019b74f9-e4f9-7190-94dc-1ce10a7e279c
[codex:430297] --------
[codex:430297] user
[codex:430297] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:430297] 
[codex:430297] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:430297] 
[codex:430297] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:430297] - Gas inefficiency, code quality, naming, or best practices
[codex:430297] - Theoretical vulnerabilities without a clear extraction path
[codex:430297] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:430297] - Front-running unless it enables theft beyond MEV
[codex:430297] - DoS, griefing, or issues that don't result in attacker profit
[codex:430297] - Missing events, view function issues, or informational findings
[codex:430297] 
[codex:430297] HIGH-VALUE PATTERNS TO HUNT:
[codex:430297] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:430297] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:430297] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:430297] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:430297] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:430297] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:430297] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:430297] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:430297] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:430297] 
[codex:430297] For each finding, you MUST provide:
[codex:430297] 1. Exact file and line numbers of vulnerable code
[codex:430297] 2. Step-by-step exploit transaction sequence
[codex:430297] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:430297] 
[codex:430297] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:430297] 
[codex:430297] Output MUST be valid JSON matching the provided schema.
[codex:430297] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:430297] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:430297] mcp startup: no servers
[codex:430297] 
[codex:430297] thinking
[codex:430297] **Preparing to read AUDIT_BUNDLE.txt**
[codex:430297] exec
[codex:430297] /bin/bash -lc ls in /tmp/codex-multi-7y5_qigq succeeded in 5ms:
[codex:430297] AUDIT_BUNDLE.txt
[codex:430297] codex-output-schema.json
[codex:430297] contracts
[codex:430297] exec
[codex:430297] /bin/bash -lc 'rg --files' in /tmp/codex-multi-7y5_qigq succeeded in 10ms:
[codex:430297] codex-output-schema.json
[codex:430297] AUDIT_BUNDLE.txt
[codex:430297] contracts/Contract.sol
[codex:430297] exec
[codex:430297] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-7y5_qigq succeeded in 5ms:
[codex:430297] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:430297] 
[codex:430297] ================================================================================
[codex:430297] FILE: contracts/Contract.sol
[codex:430297] ================================================================================
[codex:430297] // hevm: flattened sources of /nix/store/8xb41r4qd0cjb63wcrxf1qmfg88p0961-dss-6fd7de0/src/join.sol
[codex:430297] pragma solidity =0.5.12;
[codex:430297] 
[codex:430297] ////// /nix/store/8xb41r4qd0cjb63wcrxf1qmfg88p0961-dss-6fd7de0/src/lib.sol
[codex:430297] // This program is free software: you can redistribute it and/or modify
[codex:430297] // it under the terms of the GNU General Public License as published by
[codex:430297] // the Free Software Foundation, either version 3 of the License, or
[codex:430297] // (at your option) any later version.
[codex:430297] 
[codex:430297] // This program is distributed in the hope that it will be useful,
[codex:430297] // but WITHOUT ANY WARRANTY; without even the implied warranty of
[codex:430297] // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
[codex:430297] // GNU General Public License for more details.
[codex:430297] 
[codex:430297] // You should have received a copy of the GNU General Public License
[codex:430297] 
[codex:430297] thinking
[codex:430297] **Analyzing join adapters for exploits**
[codex:430297] 
[codex:430297] I'm reviewing the MakerDAO join adapters for any concrete exploit paths to profit, focusing on reentrancy, access control, and assumptions about token behavior. Despite some theoretical risks—like malicious tokens cheating transfer returns or exit functions lacking live checks—there are no clear, concrete vulnerabilities here given standard, trusted tokens and the external Vat contract’s protections. I'll conclude with a JSON stating no findings and a summary reflecting that outcome.
[codex:430297] codex
[codex:430297] {"no_findings":true,"summary":"No concrete, exploitable profit paths found in the provided join adapter contracts.","findings":[]}
[codex:430297] tokens used
[codex:430297] 6,511
[codex:430297] {"no_findings":true,"summary":"No concrete, exploitable profit paths found in the provided join adapter contracts.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-31T15:15:49.471103+00:00",
        "returncode": 0
    },
    "summary": "No concrete, exploitable profit paths found in the provided join adapter contracts.",
    "raw_final": {
        "summary": "No concrete, exploitable profit paths found in the provided join adapter contracts.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
4
EXT*/BALANCE
4
Total opcodes
1596
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x0010
0000000b: JUMPI
0000000c: PUSH1 0x00
0000000e: DUP1
0000000f: REVERT
00000010: JUMPDEST
00000011: POP
00000012: PUSH1 0x04
00000014: CALLDATASIZE
00000015: LT
00000016: PUSH2 0x00a9
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x957aa58c
00000026: GT
00000027: PUSH2 0x0071
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0x957aa58c
00000031: EQ
00000032: PUSH2 0x01de
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0x9c52a7f1
0000003c: EQ
0000003d: PUSH2 0x01fc
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xb3bcfa82
00000047: EQ
00000048: PUSH2 0x0240
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xbf353dbb
00000052: EQ
00000053: PUSH2 0x025e
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xc5ce281e
0000005d: EQ
0000005e: PUSH2 0x02b6
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xef693bed
00000068: EQ
00000069: PUSH2 0x02d4
0000006c: JUMPI
0000006d: PUSH2 0x00a9
00000070: JUMP
00000071: JUMPDEST
00000072: DUP1
00000073: PUSH4 0x36569e77
00000078: EQ
00000079: PUSH2 0x00ae
0000007c: JUMPI
0000007d: DUP1
0000007e: PUSH4 0x3b4da69f
00000083: EQ
00000084: PUSH2 0x00f8
00000087: JUMPI
00000088: DUP1
00000089: PUSH4 0x65fae35e
0000008e: EQ
0000008f: PUSH2 0x0146
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0x69245009
00000099: EQ
0000009a: PUSH2 0x018a
0000009d: JUMPI
0000009e: DUP1
0000009f: PUSH4 0x7bd2bea7
000000a4: EQ
000000a5: PUSH2 0x0194
000000a8: JUMPI
000000a9: JUMPDEST
000000aa: PUSH1 0x00
000000ac: DUP1
000000ad: REVERT
000000ae: JUMPDEST
000000af: PUSH2 0x00b6
000000b2: PUSH2 0x0322
000000b5: JUMP
000000b6: JUMPDEST
000000b7: PUSH1 0x40
000000b9: MLOAD
000000ba: DUP1
000000bb: DUP3
000000bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000d1: AND
000000d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000e7: AND
000000e8: DUP2
000000e9: MSTORE
000000ea: PUSH1 0x20
000000ec: ADD
000000ed: SWAP2
000000ee: POP
000000ef: POP
000000f0: PUSH1 0x40
000000f2: MLOAD
000000f3: DUP1
000000f4: SWAP2
000000f5: SUB
000000f6: SWAP1
000000f7: RETURN
000000f8: JUMPDEST
000000f9: PUSH2 0x0144
000000fc: PUSH1 0x04
000000fe: DUP1
000000ff: CALLDATASIZE
00000100: SUB
00000101: PUSH1 0x40
00000103: DUP2
00000104: LT
00000105: ISZERO
00000106: PUSH2 0x010e
00000109: JUMPI
0000010a: PUSH1 0x00
0000010c: DUP1
0000010d: REVERT
0000010e: JUMPDEST
0000010f: DUP2
00000110: ADD
00000111: SWAP1
00000112: DUP1
00000113: DUP1
00000114: CALLDATALOAD
00000115: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000012a: AND
0000012b: SWAP1
0000012c: PUSH1 0x20
0000012e: ADD
0000012f: SWAP1
00000130: SWAP3
00000131: SWAP2
00000132: SWAP1
00000133: DUP1
00000134: CALLDATALOAD
00000135: SWAP1
00000136: PUSH1 0x20
00000138: ADD
00000139: SWAP1
0000013a: SWAP3
0000013b: SWAP2
0000013c: SWAP1
0000013d: POP
0000013e: POP
0000013f: POP
00000140: PUSH2 0x0348
00000143: JUMP
00000144: JUMPDEST
00000145: STOP
00000146: JUMPDEST
00000147: PUSH2 0x0188
0000014a: PUSH1 0x04
0000014c: DUP1
0000014d: CALLDATASIZE
0000014e: SUB
0000014f: PUSH1 0x20
00000151: DUP2
00000152: LT
00000153: ISZERO
00000154: PUSH2 0x015c
00000157: JUMPI
00000158: PUSH1 0x00
0000015a: DUP1
0000015b: REVERT
0000015c: JUMPDEST
0000015d: DUP2
0000015e: ADD
0000015f: SWAP1
00000160: DUP1
00000161: DUP1
00000162: CALLDATALOAD
00000163: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000178: AND
00000179: SWAP1
0000017a: PUSH1 0x20
0000017c: ADD
0000017d: SWAP1
0000017e: SWAP3
0000017f: SWAP2
00000180: SWAP1
00000181: POP
00000182: POP
00000183: POP
00000184: PUSH2 0x06c3
00000187: JUMP
00000188: JUMPDEST
00000189: STOP
0000018a: JUMPDEST
0000018b: PUSH2 0x0192
0000018e: PUSH2 0x07f1
00000191: JUMP
00000192: JUMPDEST
00000193: STOP
00000194: JUMPDEST
00000195: PUSH2 0x019c
00000198: PUSH2 0x08e2
0000019b: JUMP
0000019c: JUMPDEST
0000019d: PUSH1 0x40
0000019f: MLOAD
000001a0: DUP1
000001a1: DUP3
000001a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001b7: AND
000001b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001cd: AND
000001ce: DUP2
000001cf: MSTORE
000001d0: PUSH1 0x20
000001d2: ADD
000001d3: SWAP2
000001d4: POP
000001d5: POP
000001d6: PUSH1 0x40
000001d8: MLOAD
000001d9: DUP1
000001da: SWAP2
000001db: SUB
000001dc: SWAP1
000001dd: RETURN
000001de: JUMPDEST
000001df: PUSH2 0x01e6
000001e2: PUSH2 0x0908
000001e5: JUMP
000001e6: JUMPDEST
000001e7: PUSH1 0x40
000001e9: MLOAD
000001ea: DUP1
000001eb: DUP3
000001ec: DUP2
000001ed: MSTORE
000001ee: PUSH1 0x20
000001f0: ADD
000001f1: SWAP2
000001f2: POP
000001f3: POP
000001f4: PUSH1 0x40
000001f6: MLOAD
000001f7: DUP1
000001f8: SWAP2
000001f9: SUB
000001fa: SWAP1
000001fb: RETURN
000001fc: JUMPDEST
000001fd: PUSH2 0x023e
00000200: PUSH1 0x04
00000202: DUP1
00000203: CALLDATASIZE
00000204: SUB
00000205: PUSH1 0x20
00000207: DUP2
00000208: LT
00000209: ISZERO
0000020a: PUSH2 0x0212
0000020d: JUMPI
0000020e: PUSH1 0x00
00000210: DUP1
00000211: REVERT
00000212: JUMPDEST
00000213: DUP2
00000214: ADD
00000215: SWAP1
00000216: DUP1
00000217: DUP1
00000218: CALLDATALOAD
00000219: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000022e: AND
0000022f: SWAP1
00000230: PUSH1 0x20
00000232: ADD
00000233: SWAP1
00000234: SWAP3
00000235: SWAP2
00000236: SWAP1
00000237: POP
00000238: POP
00000239: POP
0000023a: PUSH2 0x090e
0000023d: JUMP
0000023e: JUMPDEST
0000023f: STOP
00000240: JUMPDEST
00000241: PUSH2 0x0248
00000244: PUSH2 0x0a3c
00000247: JUMP
00000248: JUMPDEST
00000249: PUSH1 0x40
0000024b: MLOAD
0000024c: DUP1
0000024d: DUP3
0000024e: DUP2
0000024f: MSTORE
00000250: PUSH1 0x20
00000252: ADD
00000253: SWAP2
00000254: POP
00000255: POP
00000256: PUSH1 0x40
00000258: MLOAD
00000259: DUP1
0000025a: SWAP2
0000025b: SUB
0000025c: SWAP1
0000025d: RETURN
0000025e: JUMPDEST
0000025f: PUSH2 0x02a0
00000262: PUSH1 0x04
00000264: DUP1
00000265: CALLDATASIZE
00000266: SUB
00000267: PUSH1 0x20
00000269: DUP2
0000026a: LT
0000026b: ISZERO
0000026c: PUSH2 0x0274
0000026f: JUMPI
00000270: PUSH1 0x00
00000272: DUP1
00000273: REVERT
00000274: JUMPDEST
00000275: DUP2
00000276: ADD
00000277: SWAP1
00000278: DUP1
00000279: DUP1
0000027a: CALLDATALOAD
0000027b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000290: AND
00000291: SWAP1
00000292: PUSH1 0x20
00000294: ADD
00000295: SWAP1
00000296: SWAP3
00000297: SWAP2
00000298: SWAP1
00000299: POP
0000029a: POP
0000029b: POP
0000029c: PUSH2 0x0a42
0000029f: JUMP
000002a0: JUMPDEST
000002a1: PUSH1 0x40
000002a3: MLOAD
000002a4: DUP1
000002a5: DUP3
000002a6: DUP2
000002a7: MSTORE
000002a8: PUSH1 0x20
000002aa: ADD
000002ab: SWAP2
000002ac: POP
000002ad: POP
000002ae: PUSH1 0x40
000002b0: MLOAD
000002b1: DUP1
000002b2: SWAP2
000002b3: SUB
000002b4: SWAP1
000002b5: RETURN
000002b6: JUMPDEST
000002b7: PUSH2 0x02be
000002ba: PUSH2 0x0a5a
000002bd: JUMP
000002be: JUMPDEST
000002bf: PUSH1 0x40
000002c1: MLOAD
000002c2: DUP1
000002c3: DUP3
000002c4: DUP2
000002c5: MSTORE
000002c6: PUSH1 0x20
000002c8: ADD
000002c9: SWAP2
000002ca: POP
000002cb: POP
000002cc: PUSH1 0x40
000002ce: MLOAD
000002cf: DUP1
000002d0: SWAP2
000002d1: SUB
000002d2: SWAP1
000002d3: RETURN
000002d4: JUMPDEST
000002d5: PUSH2 0x0320
000002d8: PUSH1 0x04
000002da: DUP1
000002db: CALLDATASIZE
000002dc: SUB
000002dd: PUSH1 0x40
000002df: DUP2
000002e0: LT
000002e1: ISZERO
000002e2: PUSH2 0x02ea
000002e5: JUMPI
000002e6: PUSH1 0x00
000002e8: DUP1
000002e9: REVERT
000002ea: JUMPDEST
000002eb: DUP2
000002ec: ADD
000002ed: SWAP1
000002ee: DUP1
000002ef: DUP1
000002f0: CALLDATALOAD
000002f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000306: AND
00000307: SWAP1
00000308: PUSH1 0x20
0000030a: ADD
0000030b: SWAP1
0000030c: SWAP3
0000030d: SWAP2
0000030e: SWAP1
0000030f: DUP1
00000310: CALLDATALOAD
00000311: SWAP1
00000312: PUSH1 0x20
00000314: ADD
00000315: SWAP1
00000316: SWAP3
00000317: SWAP2
00000318: SWAP1
00000319: POP
0000031a: POP
0000031b: POP
0000031c: PUSH2 0x0a60
0000031f: JUMP
00000320: JUMPDEST
00000321: STOP
00000322: JUMPDEST
00000323: PUSH1 0x01
00000325: PUSH1 0x00
00000327: SWAP1
00000328: SLOAD
00000329: SWAP1
0000032a: PUSH2 0x0100
0000032d: EXP
0000032e: SWAP1
0000032f: DIV
00000330: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000345: AND
00000346: DUP2
00000347: JUMP
00000348: JUMPDEST
00000349: PUSH1 0x01
0000034b: PUSH1 0x05
0000034d: SLOAD
0000034e: EQ
0000034f: PUSH2 0x03c0
00000352: JUMPI
00000353: PUSH1 0x40
00000355: MLOAD
00000356: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000377: DUP2
00000378: MSTORE
00000379: PUSH1 0x04
0000037b: ADD
0000037c: DUP1
0000037d: DUP1
0000037e: PUSH1 0x20
00000380: ADD
00000381: DUP3
00000382: DUP2
00000383: SUB
00000384: DUP3
00000385: MSTORE
00000386: PUSH1 0x10
00000388: DUP2
00000389: MSTORE
0000038a: PUSH1 0x20
0000038c: ADD
0000038d: DUP1
0000038e: PUSH32 0x47656d4a6f696e2f6e6f742d6c69766500000000000000000000000000000000
000003af: DUP2
000003b0: MSTORE
000003b1: POP
000003b2: PUSH1 0x20
000003b4: ADD
000003b5: SWAP2
000003b6: POP
000003b7: POP
000003b8: PUSH1 0x40
000003ba: MLOAD
000003bb: DUP1
000003bc: SWAP2
000003bd: SUB
000003be: SWAP1
000003bf: REVERT
000003c0: JUMPDEST
000003c1: PUSH1 0x00
000003c3: DUP2
000003c4: SLT
000003c5: ISZERO
000003c6: PUSH2 0x0437
000003c9: JUMPI
000003ca: PUSH1 0x40
000003cc: MLOAD
000003cd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000003ee: DUP2
000003ef: MSTORE
000003f0: PUSH1 0x04
000003f2: ADD
000003f3: DUP1
000003f4: DUP1
000003f5: PUSH1 0x20
000003f7: ADD
000003f8: DUP3
000003f9: DUP2
000003fa: SUB
000003fb: DUP3
000003fc: MSTORE
000003fd: PUSH1 0x10
000003ff: DUP2
00000400: MSTORE
00000401: PUSH1 0x20
00000403: ADD
00000404: DUP1
00000405: PUSH32 0x47656d4a6f696e2f6f766572666c6f7700000000000000000000000000000000
00000426: DUP2
00000427: MSTORE
00000428: POP
00000429: PUSH1 0x20
0000042b: ADD
0000042c: SWAP2
0000042d: POP
0000042e: POP
0000042f: PUSH1 0x40
00000431: MLOAD
00000432: DUP1
00000433: SWAP2
00000434: SUB
00000435: SWAP1
00000436: REVERT
00000437: JUMPDEST
00000438: PUSH1 0x01
0000043a: PUSH1 0x00
0000043c: SWAP1
0000043d: SLOAD
0000043e: SWAP1
0000043f: PUSH2 0x0100
00000442: EXP
00000443: SWAP1
00000444: DIV
00000445: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000045a: AND
0000045b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000470: AND
00000471: PUSH4 0x7cdd3fde
00000476: PUSH1 0x02
00000478: SLOAD
00000479: DUP5
0000047a: DUP5
0000047b: PUSH1 0x40
0000047d: MLOAD
0000047e: DUP5
0000047f: PUSH4 0xffffffff
00000484: AND
00000485: PUSH1 0xe0
00000487: SHL
00000488: DUP2
00000489: MSTORE
0000048a: PUSH1 0x04
0000048c: ADD
0000048d: DUP1
0000048e: DUP5
0000048f: DUP2
00000490: MSTORE
00000491: PUSH1 0x20
00000493: ADD
00000494: DUP4
00000495: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004aa: AND
000004ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004c0: AND
000004c1: DUP2
000004c2: MSTORE
000004c3: PUSH1 0x20
000004c5: ADD
000004c6: DUP3
000004c7: DUP2
000004c8: MSTORE
000004c9: PUSH1 0x20
000004cb: ADD
000004cc: SWAP4
000004cd: POP
000004ce: POP
000004cf: POP
000004d0: POP
000004d1: PUSH1 0x00
000004d3: PUSH1 0x40
000004d5: MLOAD
000004d6: DUP1
000004d7: DUP4
000004d8: SUB
000004d9: DUP2
000004da: PUSH1 0x00
000004dc: DUP8
000004dd: DUP1
000004de: EXTCODESIZE
000004df: ISZERO
000004e0: DUP1
000004e1: ISZERO
000004e2: PUSH2 0x04ea
000004e5: JUMPI
000004e6: PUSH1 0x00
000004e8: DUP1
000004e9: REVERT
000004ea: JUMPDEST
000004eb: POP
000004ec: GAS
000004ed: CALL
000004ee: ISZERO
000004ef: DUP1
000004f0: ISZERO
000004f1: PUSH2 0x04fe
000004f4: JUMPI
000004f5: RETURNDATASIZE
000004f6: PUSH1 0x00
000004f8: DUP1
000004f9: RETURNDATACOPY
000004fa: RETURNDATASIZE
000004fb: PUSH1 0x00
000004fd: REVERT
000004fe: JUMPDEST
000004ff: POP
00000500: POP
00000501: POP
00000502: POP
00000503: PUSH1 0x03
00000505: PUSH1 0x00
00000507: SWAP1
00000508: SLOAD
00000509: SWAP1
0000050a: PUSH2 0x0100
0000050d: EXP
0000050e: SWAP1
0000050f: DIV
00000510: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000525: AND
00000526: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000053b: AND
0000053c: PUSH4 0x23b872dd
00000541: CALLER
00000542: ADDRESS
00000543: DUP5
00000544: PUSH1 0x40
00000546: MLOAD
00000547: DUP5
00000548: PUSH4 0xffffffff
0000054d: AND
0000054e: PUSH1 0xe0
00000550: SHL
00000551: DUP2
00000552: MSTORE
00000553: PUSH1 0x04
00000555: ADD
00000556: DUP1
00000557: DUP5
00000558: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000056d: AND
0000056e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000583: AND
00000584: DUP2
00000585: MSTORE
00000586: PUSH1 0x20
00000588: ADD
00000589: DUP4
0000058a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000059f: AND
000005a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005b5: AND
000005b6: DUP2
000005b7: MSTORE
000005b8: PUSH1 0x20
000005ba: ADD
000005bb: DUP3
000005bc: DUP2
000005bd: MSTORE
000005be: PUSH1 0x20
000005c0: ADD
000005c1: SWAP4
000005c2: POP
000005c3: POP
000005c4: POP
000005c5: POP
000005c6: PUSH1 0x20
000005c8: PUSH1 0x40
000005ca: MLOAD
000005cb: DUP1
000005cc: DUP4
000005cd: SUB
000005ce: DUP2
000005cf: PUSH1 0x00
000005d1: DUP8
000005d2: DUP1
000005d3: EXTCODESIZE
000005d4: ISZERO
000005d5: DUP1
000005d6: ISZERO
000005d7: PUSH2 0x05df
000005da: JUMPI
000005db: PUSH1 0x00
000005dd: DUP1
000005de: REVERT
000005df: JUMPDEST
000005e0: POP
000005e1: GAS
000005e2: CALL
000005e3: ISZERO
000005e4: DUP1
000005e5: ISZERO
000005e6: PUSH2 0x05f3
000005e9: JUMPI
000005ea: RETURNDATASIZE
000005eb: PUSH1 0x00
000005ed: DUP1
000005ee: RETURNDATACOPY
000005ef: RETURNDATASIZE
000005f0: PUSH1 0x00
000005f2: REVERT
000005f3: JUMPDEST
000005f4: POP
000005f5: POP
000005f6: POP
000005f7: POP
000005f8: PUSH1 0x40
000005fa: MLOAD
000005fb: RETURNDATASIZE
000005fc: PUSH1 0x20
000005fe: DUP2
000005ff: LT
00000600: ISZERO
00000601: PUSH2 0x0609
00000604: JUMPI
00000605: PUSH1 0x00
00000607: DUP1
00000608: REVERT
00000609: JUMPDEST
0000060a: DUP2
0000060b: ADD
0000060c: SWAP1
0000060d: DUP1
0000060e: DUP1
0000060f: MLOAD
00000610: SWAP1
00000611: PUSH1 0x20
00000613: ADD
00000614: SWAP1
00000615: SWAP3
00000616: SWAP2
00000617: SWAP1
00000618: POP
00000619: POP
0000061a: POP
0000061b: PUSH2 0x068c
0000061e: JUMPI
0000061f: PUSH1 0x40
00000621: MLOAD
00000622: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000643: DUP2
00000644: MSTORE
00000645: PUSH1 0x04
00000647: ADD
00000648: DUP1
00000649: DUP1
0000064a: PUSH1 0x20
0000064c: ADD
0000064d: DUP3
0000064e: DUP2
0000064f: SUB
00000650: DUP3
00000651: MSTORE
00000652: PUSH1 0x17
00000654: DUP2
00000655: MSTORE
00000656: PUSH1 0x20
00000658: ADD
00000659: DUP1
0000065a: PUSH32 0x47656d4a6f696e2f6661696c65642d7472616e73666572000000000000000000
0000067b: DUP2
0000067c: MSTORE
0000067d: POP
0000067e: PUSH1 0x20
00000680: ADD
00000681: SWAP2
00000682: POP
00000683: POP
00000684: PUSH1 0x40
00000686: MLOAD
00000687: DUP1
00000688: SWAP2
00000689: SUB
0000068a: SWAP1
0000068b: REVERT
0000068c: JUMPDEST
0000068d: MSIZE
0000068e: PUSH2 0x0120
00000691: DUP2
00000692: ADD
00000693: PUSH1 0x40
00000695: MSTORE
00000696: PUSH1 0x20
00000698: DUP2
00000699: MSTORE
0000069a: PUSH1 0xe0
0000069c: PUSH1 0x20
0000069e: DUP3
0000069f: ADD
000006a0: MSTORE
000006a1: PUSH1 0xe0
000006a3: PUSH1 0x00
000006a5: PUSH1 0x40
000006a7: DUP4
000006a8: ADD
000006a9: CALLDATACOPY
000006aa: PUSH1 0x24
000006ac: CALLDATALOAD
000006ad: PUSH1 0x04
000006af: CALLDATALOAD
000006b0: CALLER
000006b1: PUSH1 0x00
000006b3: CALLDATALOAD
000006b4: PUSH1 0xe0
000006b6: SHR
000006b7: PUSH1 0xe0
000006b9: SHL
000006ba: PUSH2 0x0120
000006bd: DUP6
000006be: LOG4
000006bf: POP
000006c0: POP
000006c1: POP
000006c2: JUMP
000006c3: JUMPDEST
000006c4: PUSH1 0x01
000006c6: PUSH1 0x00
000006c8: DUP1
000006c9: CALLER
000006ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006df: AND
000006e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006f5: AND
000006f6: DUP2
000006f7: MSTORE
000006f8: PUSH1 0x20
000006fa: ADD
000006fb: SWAP1
000006fc: DUP2
000006fd: MSTORE
000006fe: PUSH1 0x20
00000700: ADD
00000701: PUSH1 0x00
00000703: KECCAK256
00000704: SLOAD
00000705: EQ
00000706: PUSH2 0x0777
00000709: JUMPI
0000070a: PUSH1 0x40
0000070c: MLOAD
0000070d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000072e: DUP2
0000072f: MSTORE
00000730: PUSH1 0x04
00000732: ADD
00000733: DUP1
00000734: DUP1
00000735: PUSH1 0x20
00000737: ADD
00000738: DUP3
00000739: DUP2
0000073a: SUB
0000073b: DUP3
0000073c: MSTORE
0000073d: PUSH1 0x16
0000073f: DUP2
00000740: MSTORE
00000741: PUSH1 0x20
00000743: ADD
00000744: DUP1
00000745: PUSH32 0x47656d4a6f696e2f6e6f742d617574686f72697a656400000000000000000000
00000766: DUP2
00000767: MSTORE
00000768: POP
00000769: PUSH1 0x20
0000076b: ADD
0000076c: SWAP2
0000076d: POP
0000076e: POP
0000076f: PUSH1 0x40
00000771: MLOAD
00000772: DUP1
00000773: SWAP2
00000774: SUB
00000775: SWAP1
00000776: REVERT
00000777: JUMPDEST
00000778: PUSH1 0x01
0000077a: PUSH1 0x00
0000077c: DUP1
0000077d: DUP4
0000077e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000793: AND
00000794: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007a9: AND
000007aa: DUP2
000007ab: MSTORE
000007ac: PUSH1 0x20
000007ae: ADD
000007af: SWAP1
000007b0: DUP2
000007b1: MSTORE
000007b2: PUSH1 0x20
000007b4: ADD
000007b5: PUSH1 0x00
000007b7: KECCAK256
000007b8: DUP2
000007b9: SWAP1
000007ba: SSTORE
000007bb: POP
000007bc: MSIZE
000007bd: PUSH2 0x0120
000007c0: DUP2
000007c1: ADD
000007c2: PUSH1 0x40
000007c4: MSTORE
000007c5: PUSH1 0x20
000007c7: DUP2
000007c8: MSTORE
000007c9: PUSH1 0xe0
000007cb: PUSH1 0x20
000007cd: DUP3
000007ce: ADD
000007cf: MSTORE
000007d0: PUSH1 0xe0
000007d2: PUSH1 0x00
000007d4: PUSH1 0x40
000007d6: DUP4
000007d7: ADD
000007d8: CALLDATACOPY
000007d9: PUSH1 0x24
000007db: CALLDATALOAD
000007dc: PUSH1 0x04
000007de: CALLDATALOAD
000007df: CALLER
000007e0: PUSH1 0x00
000007e2: CALLDATALOAD
000007e3: PUSH1 0xe0
000007e5: SHR
000007e6: PUSH1 0xe0
000007e8: SHL
000007e9: PUSH2 0x0120
000007ec: DUP6
000007ed: LOG4
000007ee: POP
000007ef: POP
000007f0: JUMP
000007f1: JUMPDEST
000007f2: PUSH1 0x01
000007f4: PUSH1 0x00
000007f6: DUP1
000007f7: CALLER
000007f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000080d: AND
0000080e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000823: AND
00000824: DUP2
00000825: MSTORE
00000826: PUSH1 0x20
00000828: ADD
00000829: SWAP1
0000082a: DUP2
0000082b: MSTORE
0000082c: PUSH1 0x20
0000082e: ADD
0000082f: PUSH1 0x00
00000831: KECCAK256
00000832: SLOAD
00000833: EQ
00000834: PUSH2 0x08a5
00000837: JUMPI
00000838: PUSH1 0x40
0000083a: MLOAD
0000083b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000085c: DUP2
0000085d: MSTORE
0000085e: PUSH1 0x04
00000860: ADD
00000861: DUP1
00000862: DUP1
00000863: PUSH1 0x20
00000865: ADD
00000866: DUP3
00000867: DUP2
00000868: SUB
00000869: DUP3
0000086a: MSTORE
0000086b: PUSH1 0x16
0000086d: DUP2
0000086e: MSTORE
0000086f: PUSH1 0x20
00000871: ADD
00000872: DUP1
00000873: PUSH32 0x47656d4a6f696e2f6e6f742d617574686f72697a656400000000000000000000
00000894: DUP2
00000895: MSTORE
00000896: POP
00000897: PUSH1 0x20
00000899: ADD
0000089a: SWAP2
0000089b: POP
0000089c: POP
0000089d: PUSH1 0x40
0000089f: MLOAD
000008a0: DUP1
000008a1: SWAP2
000008a2: SUB
000008a3: SWAP1
000008a4: REVERT
000008a5: JUMPDEST
000008a6: PUSH1 0x00
000008a8: PUSH1 0x05
000008aa: DUP2
000008ab: SWAP1
000008ac: SSTORE
000008ad: POP
000008ae: MSIZE
000008af: PUSH2 0x0120
000008b2: DUP2
000008b3: ADD
000008b4: PUSH1 0x40
000008b6: MSTORE
000008b7: PUSH1 0x20
000008b9: DUP2
000008ba: MSTORE
000008bb: PUSH1 0xe0
000008bd: PUSH1 0x20
000008bf: DUP3
000008c0: ADD
000008c1: MSTORE
000008c2: PUSH1 0xe0
000008c4: PUSH1 0x00
000008c6: PUSH1 0x40
000008c8: DUP4
000008c9: ADD
000008ca: CALLDATACOPY
000008cb: PUSH1 0x24
000008cd: CALLDATALOAD
000008ce: PUSH1 0x04
000008d0: CALLDATALOAD
000008d1: CALLER
000008d2: PUSH1 0x00
000008d4: CALLDATALOAD
000008d5: PUSH1 0xe0
000008d7: SHR
000008d8: PUSH1 0xe0
000008da: SHL
000008db: PUSH2 0x0120
000008de: DUP6
000008df: LOG4
000008e0: POP
000008e1: JUMP
000008e2: JUMPDEST
000008e3: PUSH1 0x03
000008e5: PUSH1 0x00
000008e7: SWAP1
000008e8: SLOAD
000008e9: SWAP1
000008ea: PUSH2 0x0100
000008ed: EXP
000008ee: SWAP1
000008ef: DIV
000008f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000905: AND
00000906: DUP2
00000907: JUMP
00000908: JUMPDEST
00000909: PUSH1 0x05
0000090b: SLOAD
0000090c: DUP2
0000090d: JUMP
0000090e: JUMPDEST
0000090f: PUSH1 0x01
00000911: PUSH1 0x00
00000913: DUP1
00000914: CALLER
00000915: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000092a: AND
0000092b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000940: AND
00000941: DUP2
00000942: MSTORE
00000943: PUSH1 0x20
00000945: ADD
00000946: SWAP1
00000947: DUP2
00000948: MSTORE
00000949: PUSH1 0x20
0000094b: ADD
0000094c: PUSH1 0x00
0000094e: KECCAK256
0000094f: SLOAD
00000950: EQ
00000951: PUSH2 0x09c2
00000954: JUMPI
00000955: PUSH1 0x40
00000957: MLOAD
00000958: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000979: DUP2
0000097a: MSTORE
0000097b: PUSH1 0x04
0000097d: ADD
0000097e: DUP1
0000097f: DUP1
00000980: PUSH1 0x20
00000982: ADD
00000983: DUP3
00000984: DUP2
00000985: SUB
00000986: DUP3
00000987: MSTORE
00000988: PUSH1 0x16
0000098a: DUP2
0000098b: MSTORE
0000098c: PUSH1 0x20
0000098e: ADD
0000098f: DUP1
00000990: PUSH32 0x47656d4a6f696e2f6e6f742d617574686f72697a656400000000000000000000
000009b1: DUP2
000009b2: MSTORE
000009b3: POP
000009b4: PUSH1 0x20
000009b6: ADD
000009b7: SWAP2
000009b8: POP
000009b9: POP
000009ba: PUSH1 0x40
000009bc: MLOAD
000009bd: DUP1
000009be: SWAP2
000009bf: SUB
000009c0: SWAP1
000009c1: REVERT
000009c2: JUMPDEST
000009c3: PUSH1 0x00
000009c5: DUP1
000009c6: PUSH1 0x00
000009c8: DUP4
000009c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009de: AND
000009df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009f4: AND
000009f5: DUP2
000009f6: MSTORE
000009f7: PUSH1 0x20
000009f9: ADD
000009fa: SWAP1
000009fb: DUP2
000009fc: MSTORE
000009fd: PUSH1 0x20
000009ff: ADD
00000a00: PUSH1 0x00
00000a02: KECCAK256
00000a03: DUP2
00000a04: SWAP1
00000a05: SSTORE
00000a06: POP
00000a07: MSIZE
00000a08: PUSH2 0x0120
00000a0b: DUP2
00000a0c: ADD
00000a0d: PUSH1 0x40
00000a0f: MSTORE
00000a10: PUSH1 0x20
00000a12: DUP2
00000a13: MSTORE
00000a14: PUSH1 0xe0
00000a16: PUSH1 0x20
00000a18: DUP3
00000a19: ADD
00000a1a: MSTORE
00000a1b: PUSH1 0xe0
00000a1d: PUSH1 0x00
00000a1f: PUSH1 0x40
00000a21: DUP4
00000a22: ADD
00000a23: CALLDATACOPY
00000a24: PUSH1 0x24
00000a26: CALLDATALOAD
00000a27: PUSH1 0x04
00000a29: CALLDATALOAD
00000a2a: CALLER
00000a2b: PUSH1 0x00
00000a2d: CALLDATALOAD
00000a2e: PUSH1 0xe0
00000a30: SHR
00000a31: PUSH1 0xe0
00000a33: SHL
00000a34: PUSH2 0x0120
00000a37: DUP6
00000a38: LOG4
00000a39: POP
00000a3a: POP
00000a3b: JUMP
00000a3c: JUMPDEST
00000a3d: PUSH1 0x04
00000a3f: SLOAD
00000a40: DUP2
00000a41: JUMP
00000a42: JUMPDEST
00000a43: PUSH1 0x00
00000a45: PUSH1 0x20
00000a47: MSTORE
00000a48: DUP1
00000a49: PUSH1 0x00
00000a4b: MSTORE
00000a4c: PUSH1 0x40
00000a4e: PUSH1 0x00
00000a50: KECCAK256
00000a51: PUSH1 0x00
00000a53: SWAP2
00000a54: POP
00000a55: SWAP1
00000a56: POP
00000a57: SLOAD
00000a58: DUP2
00000a59: JUMP
00000a5a: JUMPDEST
00000a5b: PUSH1 0x02
00000a5d: SLOAD
00000a5e: DUP2
00000a5f: JUMP
00000a60: JUMPDEST
00000a61: PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000
00000a82: DUP2
00000a83: GT
00000a84: ISZERO
00000a85: PUSH2 0x0af6
00000a88: JUMPI
00000a89: PUSH1 0x40
00000a8b: MLOAD
00000a8c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000aad: DUP2
00000aae: MSTORE
00000aaf: PUSH1 0x04
00000ab1: ADD
00000ab2: DUP1
00000ab3: DUP1
00000ab4: PUSH1 0x20
00000ab6: ADD
00000ab7: DUP3
00000ab8: DUP2
00000ab9: SUB
00000aba: DUP3
00000abb: MSTORE
00000abc: PUSH1 0x10
00000abe: DUP2
00000abf: MSTORE
00000ac0: PUSH1 0x20
00000ac2: ADD
00000ac3: DUP1
00000ac4: PUSH32 0x47656d4a6f696e2f6f766572666c6f7700000000000000000000000000000000
00000ae5: DUP2
00000ae6: MSTORE
00000ae7: POP
00000ae8: PUSH1 0x20
00000aea: ADD
00000aeb: SWAP2
00000aec: POP
00000aed: POP
00000aee: PUSH1 0x40
00000af0: MLOAD
00000af1: DUP1
00000af2: SWAP2
00000af3: SUB
00000af4: SWAP1
00000af5: REVERT
00000af6: JUMPDEST
00000af7: PUSH1 0x01
00000af9: PUSH1 0x00
00000afb: SWAP1
00000afc: SLOAD
00000afd: SWAP1
00000afe: PUSH2 0x0100
00000b01: EXP
00000b02: SWAP1
00000b03: DIV
00000b04: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b19: AND
00000b1a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b2f: AND
00000b30: PUSH4 0x7cdd3fde
00000b35: PUSH1 0x02
00000b37: SLOAD
00000b38: CALLER
00000b39: DUP5
00000b3a: PUSH1 0x00
00000b3c: SUB
00000b3d: PUSH1 0x40
00000b3f: MLOAD
00000b40: DUP5
00000b41: PUSH4 0xffffffff
00000b46: AND
00000b47: PUSH1 0xe0
00000b49: SHL
00000b4a: DUP2
00000b4b: MSTORE
00000b4c: PUSH1 0x04
00000b4e: ADD
00000b4f: DUP1
00000b50: DUP5
00000b51: DUP2
00000b52: MSTORE
00000b53: PUSH1 0x20
00000b55: ADD
00000b56: DUP4
00000b57: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b6c: AND
00000b6d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b82: AND
00000b83: DUP2
00000b84: MSTORE
00000b85: PUSH1 0x20
00000b87: ADD
00000b88: DUP3
00000b89: DUP2
00000b8a: MSTORE
00000b8b: PUSH1 0x20
00000b8d: ADD
00000b8e: SWAP4
00000b8f: POP
00000b90: POP
00000b91: POP
00000b92: POP
00000b93: PUSH1 0x00
00000b95: PUSH1 0x40
00000b97: MLOAD
00000b98: DUP1
00000b99: DUP4
00000b9a: SUB
00000b9b: DUP2
00000b9c: PUSH1 0x00
00000b9e: DUP8
00000b9f: DUP1
00000ba0: EXTCODESIZE
00000ba1: ISZERO
00000ba2: DUP1
00000ba3: ISZERO
00000ba4: PUSH2 0x0bac
00000ba7: JUMPI
00000ba8: PUSH1 0x00
00000baa: DUP1
00000bab: REVERT
00000bac: JUMPDEST
00000bad: POP
00000bae: GAS
00000baf: CALL
00000bb0: ISZERO
00000bb1: DUP1
00000bb2: ISZERO
00000bb3: PUSH2 0x0bc0
00000bb6: JUMPI
00000bb7: RETURNDATASIZE
00000bb8: PUSH1 0x00
00000bba: DUP1
00000bbb: RETURNDATACOPY
00000bbc: RETURNDATASIZE
00000bbd: PUSH1 0x00
00000bbf: REVERT
00000bc0: JUMPDEST
00000bc1: POP
00000bc2: POP
00000bc3: POP
00000bc4: POP
00000bc5: PUSH1 0x03
00000bc7: PUSH1 0x00
00000bc9: SWAP1
00000bca: SLOAD
00000bcb: SWAP1
00000bcc: PUSH2 0x0100
00000bcf: EXP
00000bd0: SWAP1
00000bd1: DIV
00000bd2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000be7: AND
00000be8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bfd: AND
00000bfe: PUSH4 0xa9059cbb
00000c03: DUP4
00000c04: DUP4
00000c05: PUSH1 0x40
00000c07: MLOAD
00000c08: DUP4
00000c09: PUSH4 0xffffffff
00000c0e: AND
00000c0f: PUSH1 0xe0
00000c11: SHL
00000c12: DUP2
00000c13: MSTORE
00000c14: PUSH1 0x04
00000c16: ADD
00000c17: DUP1
00000c18: DUP4
00000c19: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c2e: AND
00000c2f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c44: AND
00000c45: DUP2
00000c46: MSTORE
00000c47: PUSH1 0x20
00000c49: ADD
00000c4a: DUP3
00000c4b: DUP2
00000c4c: MSTORE
00000c4d: PUSH1 0x20
00000c4f: ADD
00000c50: SWAP3
00000c51: POP
00000c52: POP
00000c53: POP
00000c54: PUSH1 0x20
00000c56: PUSH1 0x40
00000c58: MLOAD
00000c59: DUP1
00000c5a: DUP4
00000c5b: SUB
00000c5c: DUP2
00000c5d: PUSH1 0x00
00000c5f: DUP8
00000c60: DUP1
00000c61: EXTCODESIZE
00000c62: ISZERO
00000c63: DUP1
00000c64: ISZERO
00000c65: PUSH2 0x0c6d
00000c68: JUMPI
00000c69: PUSH1 0x00
00000c6b: DUP1
00000c6c: REVERT
00000c6d: JUMPDEST
00000c6e: POP
00000c6f: GAS
00000c70: CALL
00000c71: ISZERO
00000c72: DUP1
00000c73: ISZERO
00000c74: PUSH2 0x0c81
00000c77: JUMPI
00000c78: RETURNDATASIZE
00000c79: PUSH1 0x00
00000c7b: DUP1
00000c7c: RETURNDATACOPY
00000c7d: RETURNDATASIZE
00000c7e: PUSH1 0x00
00000c80: REVERT
00000c81: JUMPDEST
00000c82: POP
00000c83: POP
00000c84: POP
00000c85: POP
00000c86: PUSH1 0x40
00000c88: MLOAD
00000c89: RETURNDATASIZE
00000c8a: PUSH1 0x20
00000c8c: DUP2
00000c8d: LT
00000c8e: ISZERO
00000c8f: PUSH2 0x0c97
00000c92: JUMPI
00000c93: PUSH1 0x00
00000c95: DUP1
00000c96: REVERT
00000c97: JUMPDEST
00000c98: DUP2
00000c99: ADD
00000c9a: SWAP1
00000c9b: DUP1
00000c9c: DUP1
00000c9d: MLOAD
00000c9e: SWAP1
00000c9f: PUSH1 0x20
00000ca1: ADD
00000ca2: SWAP1
00000ca3: SWAP3
00000ca4: SWAP2
00000ca5: SWAP1
00000ca6: POP
00000ca7: POP
00000ca8: POP
00000ca9: PUSH2 0x0d1a
00000cac: JUMPI
00000cad: PUSH1 0x40
00000caf: MLOAD
00000cb0: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000cd1: DUP2
00000cd2: MSTORE
00000cd3: PUSH1 0x04
00000cd5: ADD
00000cd6: DUP1
00000cd7: DUP1
00000cd8: PUSH1 0x20
00000cda: ADD
00000cdb: DUP3
00000cdc: DUP2
00000cdd: SUB
00000cde: DUP3
00000cdf: MSTORE
00000ce0: PUSH1 0x17
00000ce2: DUP2
00000ce3: MSTORE
00000ce4: PUSH1 0x20
00000ce6: ADD
00000ce7: DUP1
00000ce8: PUSH32 0x47656d4a6f696e2f6661696c65642d7472616e73666572000000000000000000
00000d09: DUP2
00000d0a: MSTORE
00000d0b: POP
00000d0c: PUSH1 0x20
00000d0e: ADD
00000d0f: SWAP2
00000d10: POP
00000d11: POP
00000d12: PUSH1 0x40
00000d14: MLOAD
00000d15: DUP1
00000d16: SWAP2
00000d17: SUB
00000d18: SWAP1
00000d19: REVERT
00000d1a: JUMPDEST
00000d1b: MSIZE
00000d1c: PUSH2 0x0120
00000d1f: DUP2
00000d20: ADD
00000d21: PUSH1 0x40
00000d23: MSTORE
00000d24: PUSH1 0x20
00000d26: DUP2
00000d27: MSTORE
00000d28: PUSH1 0xe0
00000d2a: PUSH1 0x20
00000d2c: DUP3
00000d2d: ADD
00000d2e: MSTORE
00000d2f: PUSH1 0xe0
00000d31: PUSH1 0x00
00000d33: PUSH1 0x40
00000d35: DUP4
00000d36: ADD
00000d37: CALLDATACOPY
00000d38: PUSH1 0x24
00000d3a: CALLDATALOAD
00000d3b: PUSH1 0x04
00000d3d: CALLDATALOAD
00000d3e: CALLER
00000d3f: PUSH1 0x00
00000d41: CALLDATALOAD
00000d42: PUSH1 0xe0
00000d44: SHR
00000d45: PUSH1 0xe0
00000d47: SHL
00000d48: PUSH2 0x0120
00000d4b: DUP6
00000d4c: LOG4
00000d4d: POP
00000d4e: POP
00000d4f: POP
00000d50: JUMP
00000d51: INVALID
00000d52: LOG2
00000d53: PUSH6 0x627a7a723158
00000d5a: KECCAK256
00000d5b: UNKNOWN(0xBF)
00000d5c: UNKNOWN(0xDF)
00000d5d: LOG1
00000d5e: UNKNOWN(0x22)
00000d5f: INVALID
00000d60: GASPRICE
00000d61: UNKNOWN(0xD4)
00000d62: GASPRICE
00000d63: TSTORE
00000d64: PUSH24 0x9b939c506cae7507e0f5e807767f61193161f1c1e2866473
00000d7d: PUSH16

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x2c90388c7ef2db1cd60f7e44a9b74109aab848a4133dce870d842cc7a30b0089
call_targets: 0x2f0b23f53734252bda2277357e97e1517d6b042a
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x2c90388c7ef2db1cd60f7e44a9b74109aab848a4133dce870d842cc7a30b0089",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x2f0b23f53734252bda2277357e97e1517d6b042a"
    ],
    "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": "0x957aa58c",
            "selector": "0x957aa58c",
            "calldata_variants": [
                "0x957aa58c",
                "0x957aa58c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9c52a7f1",
            "selector": "0x9c52a7f1",
            "calldata_variants": [
                "0x9c52a7f1",
                "0x9c52a7f10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb3bcfa82",
            "selector": "0xb3bcfa82",
            "calldata_variants": [
                "0xb3bcfa82",
                "0xb3bcfa820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbf353dbb",
            "selector": "0xbf353dbb",
            "calldata_variants": [
                "0xbf353dbb",
                "0xbf353dbb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc5ce281e",
            "selector": "0xc5ce281e",
            "calldata_variants": [
                "0xc5ce281e",
                "0xc5ce281e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef693bed",
            "selector": "0xef693bed",
            "calldata_variants": [
                "0xef693bed",
                "0xef693bed0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x36569e77",
            "selector": "0x36569e77",
            "calldata_variants": [
                "0x36569e77",
                "0x36569e770000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3b4da69f",
            "selector": "0x3b4da69f",
            "calldata_variants": [
                "0x3b4da69f",
                "0x3b4da69f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1261,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1506,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2991,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [],
    "untrusted_call_count": 4
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x2c90388c7ef2db1cd60f7e44a9b74109aab848a4133dce870d842cc7a30b0089
call_targets: 0x2f0b23f53734252bda2277357e97e1517d6b042a
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x2c90388c7ef2db1cd60f7e44a9b74109aab848a4133dce870d842cc7a30b0089",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x2f0b23f53734252bda2277357e97e1517d6b042a"
    ],
    "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": "0x957aa58c",
            "selector": "0x957aa58c",
            "calldata_variants": [
                "0x957aa58c",
                "0x957aa58c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9c52a7f1",
            "selector": "0x9c52a7f1",
            "calldata_variants": [
                "0x9c52a7f1",
                "0x9c52a7f10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb3bcfa82",
            "selector": "0xb3bcfa82",
            "calldata_variants": [
                "0xb3bcfa82",
                "0xb3bcfa820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbf353dbb",
            "selector": "0xbf353dbb",
            "calldata_variants": [
                "0xbf353dbb",
                "0xbf353dbb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc5ce281e",
            "selector": "0xc5ce281e",
            "calldata_variants": [
                "0xc5ce281e",
                "0xc5ce281e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef693bed",
            "selector": "0xef693bed",
            "calldata_variants": [
                "0xef693bed",
                "0xef693bed0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x36569e77",
            "selector": "0x36569e77",
            "calldata_variants": [
                "0x36569e77",
                "0x36569e770000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3b4da69f",
            "selector": "0x3b4da69f",
            "calldata_variants": [
                "0x3b4da69f",
                "0x3b4da69f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1261,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1506,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2991,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": []
}