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

Analysis Run

e5dbe912-5e67-442f-aa5a-1543e39553af

failed
Chain ID
1
Address
Block Number
Created
Wed, Dec 31, 2025 3:14 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
30839 report.consolidate complete 1 / 1 3 months ago
104693 artifact.fetch failed 1 / 3 1 week ago
104694 tool.cast_disasm complete 1 / 3 1 week ago
104695 analysis.bundle complete 1 / 3 1 week ago
104696 capability.graph complete 1 / 3 1 week ago
104697 detector.run complete 1 / 3 1 week ago
104698 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
Reviewed contracts/Contract.sol in AUDIT_BUNDLE.txt; no concrete, exploitable profit paths found in these join adapters assuming standard Vat accounting and non-malicious collateral tokens.
View stderr
[codex:538779] OpenAI Codex v0.77.0 (research preview)
[codex:538779] --------
[codex:538779] workdir: /tmp/codex-multi-4jlhvr1x
[codex:538779] model: gpt-5.2-codex
[codex:538779] provider: openai
[codex:538779] approval: never
[codex:538779] sandbox: read-only
[codex:538779] reasoning effort: xhigh
[codex:538779] reasoning summaries: auto
[codex:538779] session id: 019b74f8-a525-7a51-a310-9fa78ae42715
[codex:538779] --------
[codex:538779] user
[codex:538779] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:538779] 
[codex:538779] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:538779] 
[codex:538779] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:538779] - Gas inefficiency, code quality, naming, or best practices
[codex:538779] - Theoretical vulnerabilities without a clear extraction path
[codex:538779] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:538779] - Front-running unless it enables theft beyond MEV
[codex:538779] - DoS, griefing, or issues that don't result in attacker profit
[codex:538779] - Missing events, view function issues, or informational findings
[codex:538779] 
[codex:538779] HIGH-VALUE PATTERNS TO HUNT:
[codex:538779] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:538779] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:538779] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:538779] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:538779] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:538779] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:538779] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:538779] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:538779] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:538779] 
[codex:538779] For each finding, you MUST provide:
[codex:538779] 1. Exact file and line numbers of vulnerable code
[codex:538779] 2. Step-by-step exploit transaction sequence
[codex:538779] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:538779] 
[codex:538779] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:538779] 
[codex:538779] Output MUST be valid JSON matching the provided schema.
[codex:538779] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:538779] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:538779] mcp startup: no servers
[codex:538779] 
[codex:538779] thinking
[codex:538779] **Reading AUDIT_BUNDLE.txt file**
[codex:538779] exec
[codex:538779] /bin/bash -lc ls in /tmp/codex-multi-4jlhvr1x succeeded in 5ms:
[codex:538779] AUDIT_BUNDLE.txt
[codex:538779] codex-output-schema.json
[codex:538779] contracts
[codex:538779] exec
[codex:538779] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-4jlhvr1x succeeded in 5ms:
[codex:538779] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:538779] 
[codex:538779] ================================================================================
[codex:538779] FILE: contracts/Contract.sol
[codex:538779] ================================================================================
[codex:538779] /**
[codex:538779]  *Submitted for verification at Etherscan.io on 2019-11-14
[codex:538779] */
[codex:538779] 
[codex:538779] // hevm: flattened sources of /nix/store/8xb41r4qd0cjb63wcrxf1qmfg88p0961-dss-6fd7de0/src/join.sol
[codex:538779] pragma solidity =0.5.12;
[codex:538779] 
[codex:538779] ////// /nix/store/8xb41r4qd0cjb63wcrxf1qmfg88p0961-dss-6fd7de0/src/lib.sol
[codex:538779] // This program is free software: you can redistribute it and/or modify
[codex:538779] // it under the terms of the GNU General Public License as published by
[codex:538779] // the Free Software Foundation, either version 3 of the License, or
[codex:538779] // (at your option) any later version.
[codex:538779] 
[codex:538779] // This program is distributed in the hope that it will be useful,
[codex:538779] // but WITHOUT ANY WARRANTY; without even the implied warranty of
[codex:538779] 
[codex:538779] thinking
[codex:538779] **Analyzing adapter contract vulnerabilities**
[codex:538779] 
[codex:538779] I've carefully examined the MakerDAO join adapters for any exploitable profit paths, focusing on authorization, reentrancy, and balance underflow risks. After reasoning through vat interactions and token behaviors, I don't see any concrete vulnerabilities based on the provided contracts and assumptions about Vat's protections. I'll summarize this with a JSON stating no findings and a clear explanation referencing the AUDIT_BUNDLE code.
[codex:538779] codex
[codex:538779] {"no_findings":true,"summary":"Reviewed contracts/Contract.sol in AUDIT_BUNDLE.txt; no concrete, exploitable profit paths found in these join adapters assuming standard Vat accounting and non-malicious collateral tokens.","findings":[]}
[codex:538779] tokens used
[codex:538779] 8,996
[codex:538779] {"no_findings":true,"summary":"Reviewed contracts/Contract.sol in AUDIT_BUNDLE.txt; no concrete, exploitable profit paths found in these join adapters assuming standard Vat accounting and non-malicious collateral tokens.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-31T15:14:15.218741+00:00",
        "returncode": 0
    },
    "summary": "Reviewed contracts/Contract.sol in AUDIT_BUNDLE.txt; no concrete, exploitable profit paths found in these join adapters assuming standard Vat accounting and non-malicious collateral tokens.",
    "raw_final": {
        "summary": "Reviewed contracts/Contract.sol in AUDIT_BUNDLE.txt; no concrete, exploitable profit paths found in these join adapters assuming standard Vat accounting and non-malicious collateral tokens.",
        "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
1603
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(0xB9)
00000d5c: UNKNOWN(0x0F)
00000d5d: LOG0
00000d5e: DUP6
00000d5f: DUP3
00000d60: UNKNOWN(0x24)
00000d61: UNKNOWN(0xCC)
00000d62: UNKNOWN(0xE2)
00000d63: RETURNDATASIZE
00000d64: UNKNOWN(0x0F)
00000d65: UNKNOWN(0xA9)
00000d66: RETURNDATACOPY
00000d67: INVALID
00000d68: PUSH12 0x2d8fd15b18b8274359db6e23
00000d75: UNKNOWN(0xDF)
00000d76: UNKNOWN(0xBA)
00000d77: UNKNOWN(0x0F)
00000d78: PUSH17

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: 0x4ad0a53b229dc75e90016a8fd277af1f7ad10f0000ef793c1e81adc4e41ccb9d
call_targets: 0xf04a5cc80b1e94c69b48f5ee68a08cd2f09a7c3e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x4ad0a53b229dc75e90016a8fd277af1f7ad10f0000ef793c1e81adc4e41ccb9d",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf04a5cc80b1e94c69b48f5ee68a08cd2f09a7c3e"
    ],
    "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: 0x4ad0a53b229dc75e90016a8fd277af1f7ad10f0000ef793c1e81adc4e41ccb9d
call_targets: 0xf04a5cc80b1e94c69b48f5ee68a08cd2f09a7c3e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x4ad0a53b229dc75e90016a8fd277af1f7ad10f0000ef793c1e81adc4e41ccb9d",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf04a5cc80b1e94c69b48f5ee68a08cd2f09a7c3e"
    ],
    "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": []
}