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

Analysis Run

019ba9e0-be43-721d-9b34-673f32360136

complete
Chain ID
1
Address
Block Number
Created
Sat, Jan 10, 2026 9:47 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
Authorization based on tx.origin
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
38110 artifact.fetch complete 1 / 3 3 months ago
38111 proxy.resolve complete 1 / 3 3 months ago
38112 tool.cast_disasm complete 1 / 3 3 months ago
38113 analysis.bundle complete 1 / 3 3 months ago
38114 capability.graph complete 1 / 3 3 months ago
38115 detector.run complete 1 / 3 3 months ago
38116 validation.fork complete 1 / 3 3 months ago
38188 report.consolidate complete 1 / 6 3 months ago
38189 tool.slither complete 1 / 2 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither
Status
complete
Attempts
1 / 2
Findings
0
Solc
0.6.0 (solc-select)
View stderr
'forge clean' running (wd: /tmp/slither-9twyvf1t)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-9twyvf1t)

Context._msgData() (contracts/Contract.sol#98-103) is never used and should be removed
ERC20._burn(address,uint256) (contracts/Contract.sol#554-567) is never used and should be removed
ERC20._setupDecimals(uint8) (contracts/Contract.sol#597-598) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code

Version constraint >=0.6.0<0.8.0 is too complex.
It is used by:
	- >=0.6.0<0.8.0 (contracts/Contract.sol#3-5)
	- >=0.6.0<0.8.0 (contracts/Contract.sol#81)
	- >=0.6.0<0.8.0 (contracts/Contract.sol#104-108)
	- >=0.6.0<0.8.0 (contracts/Contract.sol#315-317)
	- >=0.6.0<0.8.0 (contracts/Contract.sol#620-621)
solc-0.6.0 is an outdated solc version. Use a more recent version (at least 0.8.0), if possible.
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Redundant expression "this (contracts/Contract.sol#99)" inContext (contracts/Contract.sol#93-103)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#redundant-statements
. analyzed (5 contracts with 100 detectors), 6 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.6.0",
        "strategy": "solc-select",
        "solc_path": "/var/www/tripwire/.venv/bin/solc",
        "install_rc": 0,
        "use_stderr": null,
        "use_stdout": "Switched global version to 0.6.0",
        "install_stderr": null,
        "install_stdout": "Installing solc '0.6.0'...\nVersion '0.6.0' installed."
    },
    "solc_args": "--base-path /tmp/slither-9twyvf1t --allow-paths /tmp/slither-9twyvf1t,/tmp/slither-9twyvf1t/lib,/tmp/slither-9twyvf1t/src",
    "remappings": [],
    "source_files": [
        "contracts/Contract.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 6,
    "workspace_hash": "b929711002393cb3ea5ad50fd9489907dd79dfbc896748f9be0d2342879e90b6",
    "duration_seconds": 0.7029547691345215,
    "solc_version_requested": "0.6.6"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
0
No findings?
yes
Summary
No first-party Solidity logic beyond a simple ERC20 constructor mint; no exploitable issues identified in scope.
View stdout
{"no_findings":true,"summary":"No first-party Solidity logic beyond a simple ERC20 constructor mint; no exploitable issues identified in scope.","findings":[]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-2t0u55jt
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019baa72-9773-7d63-9a14-f38cd4b07e9c
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.

Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers

thinking
**Preparing to read AUDIT_BUNDLE**
exec
/bin/bash -lc ls in /tmp/codex-2t0u55jt succeeded in 6ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-2t0u55jt succeeded in 6ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: contracts/Contract.sol
================================================================================
// File: @openzeppelin/contracts/token/ERC20/IERC20.sol

// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

thinking
**Summarizing token setup and validation**
codex
{"no_findings":true,"summary":"No first-party Solidity logic beyond a simple ERC20 constructor mint; no exploitable issues identified in scope.","findings":[]}
tokens used
7,971
Metadata
{
    "codex": {
        "ran_at": "2026-01-11T00:26:40.538840+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 1,
        "import_count": 0,
        "first_party_contracts_count": 1
    },
    "summary": "No first-party Solidity logic beyond a simple ERC20 constructor mint; no exploitable issues identified in scope.",
    "raw_final": {
        "summary": "No first-party Solidity logic beyond a simple ERC20 constructor mint; no exploitable issues identified in scope.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
0
EXT*/BALANCE
0
Total opcodes
2150
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 0x39509351
00000026: GT
00000027: PUSH2 0x0071
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0x39509351
00000031: EQ
00000032: PUSH2 0x025f
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0x70a08231
0000003c: EQ
0000003d: PUSH2 0x02c5
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0x95d89b41
00000047: EQ
00000048: PUSH2 0x031d
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xa457c2d7
00000052: EQ
00000053: PUSH2 0x03a0
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xa9059cbb
0000005d: EQ
0000005e: PUSH2 0x0406
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xdd62ed3e
00000068: EQ
00000069: PUSH2 0x046c
0000006c: JUMPI
0000006d: PUSH2 0x00a9
00000070: JUMP
00000071: JUMPDEST
00000072: DUP1
00000073: PUSH4 0x06fdde03
00000078: EQ
00000079: PUSH2 0x00ae
0000007c: JUMPI
0000007d: DUP1
0000007e: PUSH4 0x095ea7b3
00000083: EQ
00000084: PUSH2 0x0131
00000087: JUMPI
00000088: DUP1
00000089: PUSH4 0x18160ddd
0000008e: EQ
0000008f: PUSH2 0x0197
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0x23b872dd
00000099: EQ
0000009a: PUSH2 0x01b5
0000009d: JUMPI
0000009e: DUP1
0000009f: PUSH4 0x313ce567
000000a4: EQ
000000a5: PUSH2 0x023b
000000a8: JUMPI
000000a9: JUMPDEST
000000aa: PUSH1 0x00
000000ac: DUP1
000000ad: REVERT
000000ae: JUMPDEST
000000af: PUSH2 0x00b6
000000b2: PUSH2 0x04e4
000000b5: JUMP
000000b6: JUMPDEST
000000b7: PUSH1 0x40
000000b9: MLOAD
000000ba: DUP1
000000bb: DUP1
000000bc: PUSH1 0x20
000000be: ADD
000000bf: DUP3
000000c0: DUP2
000000c1: SUB
000000c2: DUP3
000000c3: MSTORE
000000c4: DUP4
000000c5: DUP2
000000c6: DUP2
000000c7: MLOAD
000000c8: DUP2
000000c9: MSTORE
000000ca: PUSH1 0x20
000000cc: ADD
000000cd: SWAP2
000000ce: POP
000000cf: DUP1
000000d0: MLOAD
000000d1: SWAP1
000000d2: PUSH1 0x20
000000d4: ADD
000000d5: SWAP1
000000d6: DUP1
000000d7: DUP4
000000d8: DUP4
000000d9: PUSH1 0x00
000000db: JUMPDEST
000000dc: DUP4
000000dd: DUP2
000000de: LT
000000df: ISZERO
000000e0: PUSH2 0x00f6
000000e3: JUMPI
000000e4: DUP1
000000e5: DUP3
000000e6: ADD
000000e7: MLOAD
000000e8: DUP2
000000e9: DUP5
000000ea: ADD
000000eb: MSTORE
000000ec: PUSH1 0x20
000000ee: DUP2
000000ef: ADD
000000f0: SWAP1
000000f1: POP
000000f2: PUSH2 0x00db
000000f5: JUMP
000000f6: JUMPDEST
000000f7: POP
000000f8: POP
000000f9: POP
000000fa: POP
000000fb: SWAP1
000000fc: POP
000000fd: SWAP1
000000fe: DUP2
000000ff: ADD
00000100: SWAP1
00000101: PUSH1 0x1f
00000103: AND
00000104: DUP1
00000105: ISZERO
00000106: PUSH2 0x0123
00000109: JUMPI
0000010a: DUP1
0000010b: DUP3
0000010c: SUB
0000010d: DUP1
0000010e: MLOAD
0000010f: PUSH1 0x01
00000111: DUP4
00000112: PUSH1 0x20
00000114: SUB
00000115: PUSH2 0x0100
00000118: EXP
00000119: SUB
0000011a: NOT
0000011b: AND
0000011c: DUP2
0000011d: MSTORE
0000011e: PUSH1 0x20
00000120: ADD
00000121: SWAP2
00000122: POP
00000123: JUMPDEST
00000124: POP
00000125: SWAP3
00000126: POP
00000127: POP
00000128: POP
00000129: PUSH1 0x40
0000012b: MLOAD
0000012c: DUP1
0000012d: SWAP2
0000012e: SUB
0000012f: SWAP1
00000130: RETURN
00000131: JUMPDEST
00000132: PUSH2 0x017d
00000135: PUSH1 0x04
00000137: DUP1
00000138: CALLDATASIZE
00000139: SUB
0000013a: PUSH1 0x40
0000013c: DUP2
0000013d: LT
0000013e: ISZERO
0000013f: PUSH2 0x0147
00000142: JUMPI
00000143: PUSH1 0x00
00000145: DUP1
00000146: REVERT
00000147: JUMPDEST
00000148: DUP2
00000149: ADD
0000014a: SWAP1
0000014b: DUP1
0000014c: DUP1
0000014d: CALLDATALOAD
0000014e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000163: AND
00000164: SWAP1
00000165: PUSH1 0x20
00000167: ADD
00000168: SWAP1
00000169: SWAP3
0000016a: SWAP2
0000016b: SWAP1
0000016c: DUP1
0000016d: CALLDATALOAD
0000016e: SWAP1
0000016f: PUSH1 0x20
00000171: ADD
00000172: SWAP1
00000173: SWAP3
00000174: SWAP2
00000175: SWAP1
00000176: POP
00000177: POP
00000178: POP
00000179: PUSH2 0x0586
0000017c: JUMP
0000017d: JUMPDEST
0000017e: PUSH1 0x40
00000180: MLOAD
00000181: DUP1
00000182: DUP3
00000183: ISZERO
00000184: ISZERO
00000185: ISZERO
00000186: ISZERO
00000187: DUP2
00000188: MSTORE
00000189: PUSH1 0x20
0000018b: ADD
0000018c: SWAP2
0000018d: POP
0000018e: POP
0000018f: PUSH1 0x40
00000191: MLOAD
00000192: DUP1
00000193: SWAP2
00000194: SUB
00000195: SWAP1
00000196: RETURN
00000197: JUMPDEST
00000198: PUSH2 0x019f
0000019b: PUSH2 0x05a4
0000019e: JUMP
0000019f: JUMPDEST
000001a0: PUSH1 0x40
000001a2: MLOAD
000001a3: DUP1
000001a4: DUP3
000001a5: DUP2
000001a6: MSTORE
000001a7: PUSH1 0x20
000001a9: ADD
000001aa: SWAP2
000001ab: POP
000001ac: POP
000001ad: PUSH1 0x40
000001af: MLOAD
000001b0: DUP1
000001b1: SWAP2
000001b2: SUB
000001b3: SWAP1
000001b4: RETURN
000001b5: JUMPDEST
000001b6: PUSH2 0x0221
000001b9: PUSH1 0x04
000001bb: DUP1
000001bc: CALLDATASIZE
000001bd: SUB
000001be: PUSH1 0x60
000001c0: DUP2
000001c1: LT
000001c2: ISZERO
000001c3: PUSH2 0x01cb
000001c6: JUMPI
000001c7: PUSH1 0x00
000001c9: DUP1
000001ca: REVERT
000001cb: JUMPDEST
000001cc: DUP2
000001cd: ADD
000001ce: SWAP1
000001cf: DUP1
000001d0: DUP1
000001d1: CALLDATALOAD
000001d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001e7: AND
000001e8: SWAP1
000001e9: PUSH1 0x20
000001eb: ADD
000001ec: SWAP1
000001ed: SWAP3
000001ee: SWAP2
000001ef: SWAP1
000001f0: DUP1
000001f1: CALLDATALOAD
000001f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000207: AND
00000208: SWAP1
00000209: PUSH1 0x20
0000020b: ADD
0000020c: SWAP1
0000020d: SWAP3
0000020e: SWAP2
0000020f: SWAP1
00000210: DUP1
00000211: CALLDATALOAD
00000212: SWAP1
00000213: PUSH1 0x20
00000215: ADD
00000216: SWAP1
00000217: SWAP3
00000218: SWAP2
00000219: SWAP1
0000021a: POP
0000021b: POP
0000021c: POP
0000021d: PUSH2 0x05ae
00000220: JUMP
00000221: JUMPDEST
00000222: PUSH1 0x40
00000224: MLOAD
00000225: DUP1
00000226: DUP3
00000227: ISZERO
00000228: ISZERO
00000229: ISZERO
0000022a: ISZERO
0000022b: DUP2
0000022c: MSTORE
0000022d: PUSH1 0x20
0000022f: ADD
00000230: SWAP2
00000231: POP
00000232: POP
00000233: PUSH1 0x40
00000235: MLOAD
00000236: DUP1
00000237: SWAP2
00000238: SUB
00000239: SWAP1
0000023a: RETURN
0000023b: JUMPDEST
0000023c: PUSH2 0x0243
0000023f: PUSH2 0x0687
00000242: JUMP
00000243: JUMPDEST
00000244: PUSH1 0x40
00000246: MLOAD
00000247: DUP1
00000248: DUP3
00000249: PUSH1 0xff
0000024b: AND
0000024c: PUSH1 0xff
0000024e: AND
0000024f: DUP2
00000250: MSTORE
00000251: PUSH1 0x20
00000253: ADD
00000254: SWAP2
00000255: POP
00000256: POP
00000257: PUSH1 0x40
00000259: MLOAD
0000025a: DUP1
0000025b: SWAP2
0000025c: SUB
0000025d: SWAP1
0000025e: RETURN
0000025f: JUMPDEST
00000260: PUSH2 0x02ab
00000263: PUSH1 0x04
00000265: DUP1
00000266: CALLDATASIZE
00000267: SUB
00000268: PUSH1 0x40
0000026a: DUP2
0000026b: LT
0000026c: ISZERO
0000026d: PUSH2 0x0275
00000270: JUMPI
00000271: PUSH1 0x00
00000273: DUP1
00000274: REVERT
00000275: JUMPDEST
00000276: DUP2
00000277: ADD
00000278: SWAP1
00000279: DUP1
0000027a: DUP1
0000027b: CALLDATALOAD
0000027c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000291: AND
00000292: SWAP1
00000293: PUSH1 0x20
00000295: ADD
00000296: SWAP1
00000297: SWAP3
00000298: SWAP2
00000299: SWAP1
0000029a: DUP1
0000029b: CALLDATALOAD
0000029c: SWAP1
0000029d: PUSH1 0x20
0000029f: ADD
000002a0: SWAP1
000002a1: SWAP3
000002a2: SWAP2
000002a3: SWAP1
000002a4: POP
000002a5: POP
000002a6: POP
000002a7: PUSH2 0x069e
000002aa: JUMP
000002ab: JUMPDEST
000002ac: PUSH1 0x40
000002ae: MLOAD
000002af: DUP1
000002b0: DUP3
000002b1: ISZERO
000002b2: ISZERO
000002b3: ISZERO
000002b4: ISZERO
000002b5: DUP2
000002b6: MSTORE
000002b7: PUSH1 0x20
000002b9: ADD
000002ba: SWAP2
000002bb: POP
000002bc: POP
000002bd: PUSH1 0x40
000002bf: MLOAD
000002c0: DUP1
000002c1: SWAP2
000002c2: SUB
000002c3: SWAP1
000002c4: RETURN
000002c5: JUMPDEST
000002c6: PUSH2 0x0307
000002c9: PUSH1 0x04
000002cb: DUP1
000002cc: CALLDATASIZE
000002cd: SUB
000002ce: PUSH1 0x20
000002d0: DUP2
000002d1: LT
000002d2: ISZERO
000002d3: PUSH2 0x02db
000002d6: JUMPI
000002d7: PUSH1 0x00
000002d9: DUP1
000002da: REVERT
000002db: JUMPDEST
000002dc: DUP2
000002dd: ADD
000002de: SWAP1
000002df: DUP1
000002e0: DUP1
000002e1: CALLDATALOAD
000002e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002f7: AND
000002f8: SWAP1
000002f9: PUSH1 0x20
000002fb: ADD
000002fc: SWAP1
000002fd: SWAP3
000002fe: SWAP2
000002ff: SWAP1
00000300: POP
00000301: POP
00000302: POP
00000303: PUSH2 0x0751
00000306: JUMP
00000307: JUMPDEST
00000308: PUSH1 0x40
0000030a: MLOAD
0000030b: DUP1
0000030c: DUP3
0000030d: DUP2
0000030e: MSTORE
0000030f: PUSH1 0x20
00000311: ADD
00000312: SWAP2
00000313: POP
00000314: POP
00000315: PUSH1 0x40
00000317: MLOAD
00000318: DUP1
00000319: SWAP2
0000031a: SUB
0000031b: SWAP1
0000031c: RETURN
0000031d: JUMPDEST
0000031e: PUSH2 0x0325
00000321: PUSH2 0x0799
00000324: JUMP
00000325: JUMPDEST
00000326: PUSH1 0x40
00000328: MLOAD
00000329: DUP1
0000032a: DUP1
0000032b: PUSH1 0x20
0000032d: ADD
0000032e: DUP3
0000032f: DUP2
00000330: SUB
00000331: DUP3
00000332: MSTORE
00000333: DUP4
00000334: DUP2
00000335: DUP2
00000336: MLOAD
00000337: DUP2
00000338: MSTORE
00000339: PUSH1 0x20
0000033b: ADD
0000033c: SWAP2
0000033d: POP
0000033e: DUP1
0000033f: MLOAD
00000340: SWAP1
00000341: PUSH1 0x20
00000343: ADD
00000344: SWAP1
00000345: DUP1
00000346: DUP4
00000347: DUP4
00000348: PUSH1 0x00
0000034a: JUMPDEST
0000034b: DUP4
0000034c: DUP2
0000034d: LT
0000034e: ISZERO
0000034f: PUSH2 0x0365
00000352: JUMPI
00000353: DUP1
00000354: DUP3
00000355: ADD
00000356: MLOAD
00000357: DUP2
00000358: DUP5
00000359: ADD
0000035a: MSTORE
0000035b: PUSH1 0x20
0000035d: DUP2
0000035e: ADD
0000035f: SWAP1
00000360: POP
00000361: PUSH2 0x034a
00000364: JUMP
00000365: JUMPDEST
00000366: POP
00000367: POP
00000368: POP
00000369: POP
0000036a: SWAP1
0000036b: POP
0000036c: SWAP1
0000036d: DUP2
0000036e: ADD
0000036f: SWAP1
00000370: PUSH1 0x1f
00000372: AND
00000373: DUP1
00000374: ISZERO
00000375: PUSH2 0x0392
00000378: JUMPI
00000379: DUP1
0000037a: DUP3
0000037b: SUB
0000037c: DUP1
0000037d: MLOAD
0000037e: PUSH1 0x01
00000380: DUP4
00000381: PUSH1 0x20
00000383: SUB
00000384: PUSH2 0x0100
00000387: EXP
00000388: SUB
00000389: NOT
0000038a: AND
0000038b: DUP2
0000038c: MSTORE
0000038d: PUSH1 0x20
0000038f: ADD
00000390: SWAP2
00000391: POP
00000392: JUMPDEST
00000393: POP
00000394: SWAP3
00000395: POP
00000396: POP
00000397: POP
00000398: PUSH1 0x40
0000039a: MLOAD
0000039b: DUP1
0000039c: SWAP2
0000039d: SUB
0000039e: SWAP1
0000039f: RETURN
000003a0: JUMPDEST
000003a1: PUSH2 0x03ec
000003a4: PUSH1 0x04
000003a6: DUP1
000003a7: CALLDATASIZE
000003a8: SUB
000003a9: PUSH1 0x40
000003ab: DUP2
000003ac: LT
000003ad: ISZERO
000003ae: PUSH2 0x03b6
000003b1: JUMPI
000003b2: PUSH1 0x00
000003b4: DUP1
000003b5: REVERT
000003b6: JUMPDEST
000003b7: DUP2
000003b8: ADD
000003b9: SWAP1
000003ba: DUP1
000003bb: DUP1
000003bc: CALLDATALOAD
000003bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003d2: AND
000003d3: SWAP1
000003d4: PUSH1 0x20
000003d6: ADD
000003d7: SWAP1
000003d8: SWAP3
000003d9: SWAP2
000003da: SWAP1
000003db: DUP1
000003dc: CALLDATALOAD
000003dd: SWAP1
000003de: PUSH1 0x20
000003e0: ADD
000003e1: SWAP1
000003e2: SWAP3
000003e3: SWAP2
000003e4: SWAP1
000003e5: POP
000003e6: POP
000003e7: POP
000003e8: PUSH2 0x083b
000003eb: JUMP
000003ec: JUMPDEST
000003ed: PUSH1 0x40
000003ef: MLOAD
000003f0: DUP1
000003f1: DUP3
000003f2: ISZERO
000003f3: ISZERO
000003f4: ISZERO
000003f5: ISZERO
000003f6: DUP2
000003f7: MSTORE
000003f8: PUSH1 0x20
000003fa: ADD
000003fb: SWAP2
000003fc: POP
000003fd: POP
000003fe: PUSH1 0x40
00000400: MLOAD
00000401: DUP1
00000402: SWAP2
00000403: SUB
00000404: SWAP1
00000405: RETURN
00000406: JUMPDEST
00000407: PUSH2 0x0452
0000040a: PUSH1 0x04
0000040c: DUP1
0000040d: CALLDATASIZE
0000040e: SUB
0000040f: PUSH1 0x40
00000411: DUP2
00000412: LT
00000413: ISZERO
00000414: PUSH2 0x041c
00000417: JUMPI
00000418: PUSH1 0x00
0000041a: DUP1
0000041b: REVERT
0000041c: JUMPDEST
0000041d: DUP2
0000041e: ADD
0000041f: SWAP1
00000420: DUP1
00000421: DUP1
00000422: CALLDATALOAD
00000423: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000438: AND
00000439: SWAP1
0000043a: PUSH1 0x20
0000043c: ADD
0000043d: SWAP1
0000043e: SWAP3
0000043f: SWAP2
00000440: SWAP1
00000441: DUP1
00000442: CALLDATALOAD
00000443: SWAP1
00000444: PUSH1 0x20
00000446: ADD
00000447: SWAP1
00000448: SWAP3
00000449: SWAP2
0000044a: SWAP1
0000044b: POP
0000044c: POP
0000044d: POP
0000044e: PUSH2 0x0908
00000451: JUMP
00000452: JUMPDEST
00000453: PUSH1 0x40
00000455: MLOAD
00000456: DUP1
00000457: DUP3
00000458: ISZERO
00000459: ISZERO
0000045a: ISZERO
0000045b: ISZERO
0000045c: DUP2
0000045d: MSTORE
0000045e: PUSH1 0x20
00000460: ADD
00000461: SWAP2
00000462: POP
00000463: POP
00000464: PUSH1 0x40
00000466: MLOAD
00000467: DUP1
00000468: SWAP2
00000469: SUB
0000046a: SWAP1
0000046b: RETURN
0000046c: JUMPDEST
0000046d: PUSH2 0x04ce
00000470: PUSH1 0x04
00000472: DUP1
00000473: CALLDATASIZE
00000474: SUB
00000475: PUSH1 0x40
00000477: DUP2
00000478: LT
00000479: ISZERO
0000047a: PUSH2 0x0482
0000047d: JUMPI
0000047e: PUSH1 0x00
00000480: DUP1
00000481: REVERT
00000482: JUMPDEST
00000483: DUP2
00000484: ADD
00000485: SWAP1
00000486: DUP1
00000487: DUP1
00000488: CALLDATALOAD
00000489: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000049e: AND
0000049f: SWAP1
000004a0: PUSH1 0x20
000004a2: ADD
000004a3: SWAP1
000004a4: SWAP3
000004a5: SWAP2
000004a6: SWAP1
000004a7: DUP1
000004a8: CALLDATALOAD
000004a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004be: AND
000004bf: SWAP1
000004c0: PUSH1 0x20
000004c2: ADD
000004c3: SWAP1
000004c4: SWAP3
000004c5: SWAP2
000004c6: SWAP1
000004c7: POP
000004c8: POP
000004c9: POP
000004ca: PUSH2 0x0926
000004cd: JUMP
000004ce: JUMPDEST
000004cf: PUSH1 0x40
000004d1: MLOAD
000004d2: DUP1
000004d3: DUP3
000004d4: DUP2
000004d5: MSTORE
000004d6: PUSH1 0x20
000004d8: ADD
000004d9: SWAP2
000004da: POP
000004db: POP
000004dc: PUSH1 0x40
000004de: MLOAD
000004df: DUP1
000004e0: SWAP2
000004e1: SUB
000004e2: SWAP1
000004e3: RETURN
000004e4: JUMPDEST
000004e5: PUSH1 0x60
000004e7: PUSH1 0x03
000004e9: DUP1
000004ea: SLOAD
000004eb: PUSH1 0x01
000004ed: DUP2
000004ee: PUSH1 0x01
000004f0: AND
000004f1: ISZERO
000004f2: PUSH2 0x0100
000004f5: MUL
000004f6: SUB
000004f7: AND
000004f8: PUSH1 0x02
000004fa: SWAP1
000004fb: DIV
000004fc: DUP1
000004fd: PUSH1 0x1f
000004ff: ADD
00000500: PUSH1 0x20
00000502: DUP1
00000503: SWAP2
00000504: DIV
00000505: MUL
00000506: PUSH1 0x20
00000508: ADD
00000509: PUSH1 0x40
0000050b: MLOAD
0000050c: SWAP1
0000050d: DUP2
0000050e: ADD
0000050f: PUSH1 0x40
00000511: MSTORE
00000512: DUP1
00000513: SWAP3
00000514: SWAP2
00000515: SWAP1
00000516: DUP2
00000517: DUP2
00000518: MSTORE
00000519: PUSH1 0x20
0000051b: ADD
0000051c: DUP3
0000051d: DUP1
0000051e: SLOAD
0000051f: PUSH1 0x01
00000521: DUP2
00000522: PUSH1 0x01
00000524: AND
00000525: ISZERO
00000526: PUSH2 0x0100
00000529: MUL
0000052a: SUB
0000052b: AND
0000052c: PUSH1 0x02
0000052e: SWAP1
0000052f: DIV
00000530: DUP1
00000531: ISZERO
00000532: PUSH2 0x057c
00000535: JUMPI
00000536: DUP1
00000537: PUSH1 0x1f
00000539: LT
0000053a: PUSH2 0x0551
0000053d: JUMPI
0000053e: PUSH2 0x0100
00000541: DUP1
00000542: DUP4
00000543: SLOAD
00000544: DIV
00000545: MUL
00000546: DUP4
00000547: MSTORE
00000548: SWAP2
00000549: PUSH1 0x20
0000054b: ADD
0000054c: SWAP2
0000054d: PUSH2 0x057c
00000550: JUMP
00000551: JUMPDEST
00000552: DUP3
00000553: ADD
00000554: SWAP2
00000555: SWAP1
00000556: PUSH1 0x00
00000558: MSTORE
00000559: PUSH1 0x20
0000055b: PUSH1 0x00
0000055d: KECCAK256
0000055e: SWAP1
0000055f: JUMPDEST
00000560: DUP2
00000561: SLOAD
00000562: DUP2
00000563: MSTORE
00000564: SWAP1
00000565: PUSH1 0x01
00000567: ADD
00000568: SWAP1
00000569: PUSH1 0x20
0000056b: ADD
0000056c: DUP1
0000056d: DUP4
0000056e: GT
0000056f: PUSH2 0x055f
00000572: JUMPI
00000573: DUP3
00000574: SWAP1
00000575: SUB
00000576: PUSH1 0x1f
00000578: AND
00000579: DUP3
0000057a: ADD
0000057b: SWAP2
0000057c: JUMPDEST
0000057d: POP
0000057e: POP
0000057f: POP
00000580: POP
00000581: POP
00000582: SWAP1
00000583: POP
00000584: SWAP1
00000585: JUMP
00000586: JUMPDEST
00000587: PUSH1 0x00
00000589: PUSH2 0x059a
0000058c: PUSH2 0x0593
0000058f: PUSH2 0x09ad
00000592: JUMP
00000593: JUMPDEST
00000594: DUP5
00000595: DUP5
00000596: PUSH2 0x09b5
00000599: JUMP
0000059a: JUMPDEST
0000059b: PUSH1 0x01
0000059d: SWAP1
0000059e: POP
0000059f: SWAP3
000005a0: SWAP2
000005a1: POP
000005a2: POP
000005a3: JUMP
000005a4: JUMPDEST
000005a5: PUSH1 0x00
000005a7: PUSH1 0x02
000005a9: SLOAD
000005aa: SWAP1
000005ab: POP
000005ac: SWAP1
000005ad: JUMP
000005ae: JUMPDEST
000005af: PUSH1 0x00
000005b1: PUSH2 0x05bb
000005b4: DUP5
000005b5: DUP5
000005b6: DUP5
000005b7: PUSH2 0x0bac
000005ba: JUMP
000005bb: JUMPDEST
000005bc: PUSH2 0x067c
000005bf: DUP5
000005c0: PUSH2 0x05c7
000005c3: PUSH2 0x09ad
000005c6: JUMP
000005c7: JUMPDEST
000005c8: PUSH2 0x0677
000005cb: DUP6
000005cc: PUSH1 0x40
000005ce: MLOAD
000005cf: DUP1
000005d0: PUSH1 0x60
000005d2: ADD
000005d3: PUSH1 0x40
000005d5: MSTORE
000005d6: DUP1
000005d7: PUSH1 0x28
000005d9: DUP2
000005da: MSTORE
000005db: PUSH1 0x20
000005dd: ADD
000005de: PUSH2 0x1020
000005e1: PUSH1 0x28
000005e3: SWAP2
000005e4: CODECOPY
000005e5: PUSH1 0x01
000005e7: PUSH1 0x00
000005e9: DUP12
000005ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005ff: AND
00000600: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000615: AND
00000616: DUP2
00000617: MSTORE
00000618: PUSH1 0x20
0000061a: ADD
0000061b: SWAP1
0000061c: DUP2
0000061d: MSTORE
0000061e: PUSH1 0x20
00000620: ADD
00000621: PUSH1 0x00
00000623: KECCAK256
00000624: PUSH1 0x00
00000626: PUSH2 0x062d
00000629: PUSH2 0x09ad
0000062c: JUMP
0000062d: JUMPDEST
0000062e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000643: AND
00000644: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000659: AND
0000065a: DUP2
0000065b: MSTORE
0000065c: PUSH1 0x20
0000065e: ADD
0000065f: SWAP1
00000660: DUP2
00000661: MSTORE
00000662: PUSH1 0x20
00000664: ADD
00000665: PUSH1 0x00
00000667: KECCAK256
00000668: SLOAD
00000669: PUSH2 0x0e6d
0000066c: SWAP1
0000066d: SWAP3
0000066e: SWAP2
0000066f: SWAP1
00000670: PUSH4 0xffffffff
00000675: AND
00000676: JUMP
00000677: JUMPDEST
00000678: PUSH2 0x09b5
0000067b: JUMP
0000067c: JUMPDEST
0000067d: PUSH1 0x01
0000067f: SWAP1
00000680: POP
00000681: SWAP4
00000682: SWAP3
00000683: POP
00000684: POP
00000685: POP
00000686: JUMP
00000687: JUMPDEST
00000688: PUSH1 0x00
0000068a: PUSH1 0x05
0000068c: PUSH1 0x00
0000068e: SWAP1
0000068f: SLOAD
00000690: SWAP1
00000691: PUSH2 0x0100
00000694: EXP
00000695: SWAP1
00000696: DIV
00000697: PUSH1 0xff
00000699: AND
0000069a: SWAP1
0000069b: POP
0000069c: SWAP1
0000069d: JUMP
0000069e: JUMPDEST
0000069f: PUSH1 0x00
000006a1: PUSH2 0x0747
000006a4: PUSH2 0x06ab
000006a7: PUSH2 0x09ad
000006aa: JUMP
000006ab: JUMPDEST
000006ac: DUP5
000006ad: PUSH2 0x0742
000006b0: DUP6
000006b1: PUSH1 0x01
000006b3: PUSH1 0x00
000006b5: PUSH2 0x06bc
000006b8: PUSH2 0x09ad
000006bb: JUMP
000006bc: JUMPDEST
000006bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006d2: AND
000006d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006e8: AND
000006e9: DUP2
000006ea: MSTORE
000006eb: PUSH1 0x20
000006ed: ADD
000006ee: SWAP1
000006ef: DUP2
000006f0: MSTORE
000006f1: PUSH1 0x20
000006f3: ADD
000006f4: PUSH1 0x00
000006f6: KECCAK256
000006f7: PUSH1 0x00
000006f9: DUP10
000006fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000070f: AND
00000710: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000725: AND
00000726: DUP2
00000727: MSTORE
00000728: PUSH1 0x20
0000072a: ADD
0000072b: SWAP1
0000072c: DUP2
0000072d: MSTORE
0000072e: PUSH1 0x20
00000730: ADD
00000731: PUSH1 0x00
00000733: KECCAK256
00000734: SLOAD
00000735: PUSH2 0x0f27
00000738: SWAP1
00000739: SWAP2
0000073a: SWAP1
0000073b: PUSH4 0xffffffff
00000740: AND
00000741: JUMP
00000742: JUMPDEST
00000743: PUSH2 0x09b5
00000746: JUMP
00000747: JUMPDEST
00000748: PUSH1 0x01
0000074a: SWAP1
0000074b: POP
0000074c: SWAP3
0000074d: SWAP2
0000074e: POP
0000074f: POP
00000750: JUMP
00000751: JUMPDEST
00000752: PUSH1 0x00
00000754: DUP1
00000755: PUSH1 0x00
00000757: DUP4
00000758: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000076d: AND
0000076e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000783: AND
00000784: DUP2
00000785: MSTORE
00000786: PUSH1 0x20
00000788: ADD
00000789: SWAP1
0000078a: DUP2
0000078b: MSTORE
0000078c: PUSH1 0x20
0000078e: ADD
0000078f: PUSH1 0x00
00000791: KECCAK256
00000792: SLOAD
00000793: SWAP1
00000794: POP
00000795: SWAP2
00000796: SWAP1
00000797: POP
00000798: JUMP
00000799: JUMPDEST
0000079a: PUSH1 0x60
0000079c: PUSH1 0x04
0000079e: DUP1
0000079f: SLOAD
000007a0: PUSH1 0x01
000007a2: DUP2
000007a3: PUSH1 0x01
000007a5: AND
000007a6: ISZERO
000007a7: PUSH2 0x0100
000007aa: MUL
000007ab: SUB
000007ac: AND
000007ad: PUSH1 0x02
000007af: SWAP1
000007b0: DIV
000007b1: DUP1
000007b2: PUSH1 0x1f
000007b4: ADD
000007b5: PUSH1 0x20
000007b7: DUP1
000007b8: SWAP2
000007b9: DIV
000007ba: MUL
000007bb: PUSH1 0x20
000007bd: ADD
000007be: PUSH1 0x40
000007c0: MLOAD
000007c1: SWAP1
000007c2: DUP2
000007c3: ADD
000007c4: PUSH1 0x40
000007c6: MSTORE
000007c7: DUP1
000007c8: SWAP3
000007c9: SWAP2
000007ca: SWAP1
000007cb: DUP2
000007cc: DUP2
000007cd: MSTORE
000007ce: PUSH1 0x20
000007d0: ADD
000007d1: DUP3
000007d2: DUP1
000007d3: SLOAD
000007d4: PUSH1 0x01
000007d6: DUP2
000007d7: PUSH1 0x01
000007d9: AND
000007da: ISZERO
000007db: PUSH2 0x0100
000007de: MUL
000007df: SUB
000007e0: AND
000007e1: PUSH1 0x02
000007e3: SWAP1
000007e4: DIV
000007e5: DUP1
000007e6: ISZERO
000007e7: PUSH2 0x0831
000007ea: JUMPI
000007eb: DUP1
000007ec: PUSH1 0x1f
000007ee: LT
000007ef: PUSH2 0x0806
000007f2: JUMPI
000007f3: PUSH2 0x0100
000007f6: DUP1
000007f7: DUP4
000007f8: SLOAD
000007f9: DIV
000007fa: MUL
000007fb: DUP4
000007fc: MSTORE
000007fd: SWAP2
000007fe: PUSH1 0x20
00000800: ADD
00000801: SWAP2
00000802: PUSH2 0x0831
00000805: JUMP
00000806: JUMPDEST
00000807: DUP3
00000808: ADD
00000809: SWAP2
0000080a: SWAP1
0000080b: PUSH1 0x00
0000080d: MSTORE
0000080e: PUSH1 0x20
00000810: PUSH1 0x00
00000812: KECCAK256
00000813: SWAP1
00000814: JUMPDEST
00000815: DUP2
00000816: SLOAD
00000817: DUP2
00000818: MSTORE
00000819: SWAP1
0000081a: PUSH1 0x01
0000081c: ADD
0000081d: SWAP1
0000081e: PUSH1 0x20
00000820: ADD
00000821: DUP1
00000822: DUP4
00000823: GT
00000824: PUSH2 0x0814
00000827: JUMPI
00000828: DUP3
00000829: SWAP1
0000082a: SUB
0000082b: PUSH1 0x1f
0000082d: AND
0000082e: DUP3
0000082f: ADD
00000830: SWAP2
00000831: JUMPDEST
00000832: POP
00000833: POP
00000834: POP
00000835: POP
00000836: POP
00000837: SWAP1
00000838: POP
00000839: SWAP1
0000083a: JUMP
0000083b: JUMPDEST
0000083c: PUSH1 0x00
0000083e: PUSH2 0x08fe
00000841: PUSH2 0x0848
00000844: PUSH2 0x09ad
00000847: JUMP
00000848: JUMPDEST
00000849: DUP5
0000084a: PUSH2 0x08f9
0000084d: DUP6
0000084e: PUSH1 0x40
00000850: MLOAD
00000851: DUP1
00000852: PUSH1 0x60
00000854: ADD
00000855: PUSH1 0x40
00000857: MSTORE
00000858: DUP1
00000859: PUSH1 0x25
0000085b: DUP2
0000085c: MSTORE
0000085d: PUSH1 0x20
0000085f: ADD
00000860: PUSH2 0x1091
00000863: PUSH1 0x25
00000865: SWAP2
00000866: CODECOPY
00000867: PUSH1 0x01
00000869: PUSH1 0x00
0000086b: PUSH2 0x0872
0000086e: PUSH2 0x09ad
00000871: JUMP
00000872: JUMPDEST
00000873: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000888: AND
00000889: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000089e: AND
0000089f: DUP2
000008a0: MSTORE
000008a1: PUSH1 0x20
000008a3: ADD
000008a4: SWAP1
000008a5: DUP2
000008a6: MSTORE
000008a7: PUSH1 0x20
000008a9: ADD
000008aa: PUSH1 0x00
000008ac: KECCAK256
000008ad: PUSH1 0x00
000008af: DUP11
000008b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008c5: AND
000008c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008db: AND
000008dc: DUP2
000008dd: MSTORE
000008de: PUSH1 0x20
000008e0: ADD
000008e1: SWAP1
000008e2: DUP2
000008e3: MSTORE
000008e4: PUSH1 0x20
000008e6: ADD
000008e7: PUSH1 0x00
000008e9: KECCAK256
000008ea: SLOAD
000008eb: PUSH2 0x0e6d
000008ee: SWAP1
000008ef: SWAP3
000008f0: SWAP2
000008f1: SWAP1
000008f2: PUSH4 0xffffffff
000008f7: AND
000008f8: JUMP
000008f9: JUMPDEST
000008fa: PUSH2 0x09b5
000008fd: JUMP
000008fe: JUMPDEST
000008ff: PUSH1 0x01
00000901: SWAP1
00000902: POP
00000903: SWAP3
00000904: SWAP2
00000905: POP
00000906: POP
00000907: JUMP
00000908: JUMPDEST
00000909: PUSH1 0x00
0000090b: PUSH2 0x091c
0000090e: PUSH2 0x0915
00000911: PUSH2 0x09ad
00000914: JUMP
00000915: JUMPDEST
00000916: DUP5
00000917: DUP5
00000918: PUSH2 0x0bac
0000091b: JUMP
0000091c: JUMPDEST
0000091d: PUSH1 0x01
0000091f: SWAP1
00000920: POP
00000921: SWAP3
00000922: SWAP2
00000923: POP
00000924: POP
00000925: JUMP
00000926: JUMPDEST
00000927: PUSH1 0x00
00000929: PUSH1 0x01
0000092b: PUSH1 0x00
0000092d: DUP5
0000092e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000943: AND
00000944: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000959: AND
0000095a: DUP2
0000095b: MSTORE
0000095c: PUSH1 0x20
0000095e: ADD
0000095f: SWAP1
00000960: DUP2
00000961: MSTORE
00000962: PUSH1 0x20
00000964: ADD
00000965: PUSH1 0x00
00000967: KECCAK256
00000968: PUSH1 0x00
0000096a: DUP4
0000096b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000980: AND
00000981: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000996: AND
00000997: DUP2
00000998: MSTORE
00000999: PUSH1 0x20
0000099b: ADD
0000099c: SWAP1
0000099d: DUP2
0000099e: MSTORE
0000099f: PUSH1 0x20
000009a1: ADD
000009a2: PUSH1 0x00
000009a4: KECCAK256
000009a5: SLOAD
000009a6: SWAP1
000009a7: POP
000009a8: SWAP3
000009a9: SWAP2
000009aa: POP
000009ab: POP
000009ac: JUMP
000009ad: JUMPDEST
000009ae: PUSH1 0x00
000009b0: CALLER
000009b1: SWAP1
000009b2: POP
000009b3: SWAP1
000009b4: JUMP
000009b5: JUMPDEST
000009b6: PUSH1 0x00
000009b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009cd: AND
000009ce: DUP4
000009cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009e4: AND
000009e5: EQ
000009e6: ISZERO
000009e7: PUSH2 0x0a3b
000009ea: JUMPI
000009eb: PUSH1 0x40
000009ed: MLOAD
000009ee: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000a0f: DUP2
00000a10: MSTORE
00000a11: PUSH1 0x04
00000a13: ADD
00000a14: DUP1
00000a15: DUP1
00000a16: PUSH1 0x20
00000a18: ADD
00000a19: DUP3
00000a1a: DUP2
00000a1b: SUB
00000a1c: DUP3
00000a1d: MSTORE
00000a1e: PUSH1 0x24
00000a20: DUP2
00000a21: MSTORE
00000a22: PUSH1 0x20
00000a24: ADD
00000a25: DUP1
00000a26: PUSH2 0x106d
00000a29: PUSH1 0x24
00000a2b: SWAP2
00000a2c: CODECOPY
00000a2d: PUSH1 0x40
00000a2f: ADD
00000a30: SWAP2
00000a31: POP
00000a32: POP
00000a33: PUSH1 0x40
00000a35: MLOAD
00000a36: DUP1
00000a37: SWAP2
00000a38: SUB
00000a39: SWAP1
00000a3a: REVERT
00000a3b: JUMPDEST
00000a3c: PUSH1 0x00
00000a3e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a53: AND
00000a54: DUP3
00000a55: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a6a: AND
00000a6b: EQ
00000a6c: ISZERO
00000a6d: PUSH2 0x0ac1
00000a70: JUMPI
00000a71: PUSH1 0x40
00000a73: MLOAD
00000a74: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000a95: DUP2
00000a96: MSTORE
00000a97: PUSH1 0x04
00000a99: ADD
00000a9a: DUP1
00000a9b: DUP1
00000a9c: PUSH1 0x20
00000a9e: ADD
00000a9f: DUP3
00000aa0: DUP2
00000aa1: SUB
00000aa2: DUP3
00000aa3: MSTORE
00000aa4: PUSH1 0x22
00000aa6: DUP2
00000aa7: MSTORE
00000aa8: PUSH1 0x20
00000aaa: ADD
00000aab: DUP1
00000aac: PUSH2 0x0fd8
00000aaf: PUSH1 0x22
00000ab1: SWAP2
00000ab2: CODECOPY
00000ab3: PUSH1 0x40
00000ab5: ADD
00000ab6: SWAP2
00000ab7: POP
00000ab8: POP
00000ab9: PUSH1 0x40
00000abb: MLOAD
00000abc: DUP1
00000abd: SWAP2
00000abe: SUB
00000abf: SWAP1
00000ac0: REVERT
00000ac1: JUMPDEST
00000ac2: DUP1
00000ac3: PUSH1 0x01
00000ac5: PUSH1 0x00
00000ac7: DUP6
00000ac8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000add: AND
00000ade: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000af3: AND
00000af4: DUP2
00000af5: MSTORE
00000af6: PUSH1 0x20
00000af8: ADD
00000af9: SWAP1
00000afa: DUP2
00000afb: MSTORE
00000afc: PUSH1 0x20
00000afe: ADD
00000aff: PUSH1 0x00
00000b01: KECCAK256
00000b02: PUSH1 0x00
00000b04: DUP5
00000b05: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b1a: AND
00000b1b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b30: AND
00000b31: DUP2
00000b32: MSTORE
00000b33: PUSH1 0x20
00000b35: ADD
00000b36: SWAP1
00000b37: DUP2
00000b38: MSTORE
00000b39: PUSH1 0x20
00000b3b: ADD
00000b3c: PUSH1 0x00
00000b3e: KECCAK256
00000b3f: DUP2
00000b40: SWAP1
00000b41: SSTORE
00000b42: POP
00000b43: DUP2
00000b44: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b59: AND
00000b5a: DUP4
00000b5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b70: AND
00000b71: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00000b92: DUP4
00000b93: PUSH1 0x40
00000b95: MLOAD
00000b96: DUP1
00000b97: DUP3
00000b98: DUP2
00000b99: MSTORE
00000b9a: PUSH1 0x20
00000b9c: ADD
00000b9d: SWAP2
00000b9e: POP
00000b9f: POP
00000ba0: PUSH1 0x40
00000ba2: MLOAD
00000ba3: DUP1
00000ba4: SWAP2
00000ba5: SUB
00000ba6: SWAP1
00000ba7: LOG3
00000ba8: POP
00000ba9: POP
00000baa: POP
00000bab: JUMP
00000bac: JUMPDEST
00000bad: PUSH1 0x00
00000baf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bc4: AND
00000bc5: DUP4
00000bc6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bdb: AND
00000bdc: EQ
00000bdd: ISZERO
00000bde: PUSH2 0x0c32
00000be1: JUMPI
00000be2: PUSH1 0x40
00000be4: MLOAD
00000be5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000c06: DUP2
00000c07: MSTORE
00000c08: PUSH1 0x04
00000c0a: ADD
00000c0b: DUP1
00000c0c: DUP1
00000c0d: PUSH1 0x20
00000c0f: ADD
00000c10: DUP3
00000c11: DUP2
00000c12: SUB
00000c13: DUP3
00000c14: MSTORE
00000c15: PUSH1 0x25
00000c17: DUP2
00000c18: MSTORE
00000c19: PUSH1 0x20
00000c1b: ADD
00000c1c: DUP1
00000c1d: PUSH2 0x1048
00000c20: PUSH1 0x25
00000c22: SWAP2
00000c23: CODECOPY
00000c24: PUSH1 0x40
00000c26: ADD
00000c27: SWAP2
00000c28: POP
00000c29: POP
00000c2a: PUSH1 0x40
00000c2c: MLOAD
00000c2d: DUP1
00000c2e: SWAP2
00000c2f: SUB
00000c30: SWAP1
00000c31: REVERT
00000c32: JUMPDEST
00000c33: PUSH1 0x00
00000c35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c4a: AND
00000c4b: DUP3
00000c4c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c61: AND
00000c62: EQ
00000c63: ISZERO
00000c64: PUSH2 0x0cb8
00000c67: JUMPI
00000c68: PUSH1 0x40
00000c6a: MLOAD
00000c6b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000c8c: DUP2
00000c8d: MSTORE
00000c8e: PUSH1 0x04
00000c90: ADD
00000c91: DUP1
00000c92: DUP1
00000c93: PUSH1 0x20
00000c95: ADD
00000c96: DUP3
00000c97: DUP2
00000c98: SUB
00000c99: DUP3
00000c9a: MSTORE
00000c9b: PUSH1 0x23
00000c9d: DUP2
00000c9e: MSTORE
00000c9f: PUSH1 0x20
00000ca1: ADD
00000ca2: DUP1
00000ca3: PUSH2 0x0fb5
00000ca6: PUSH1 0x23
00000ca8: SWAP2
00000ca9: CODECOPY
00000caa: PUSH1 0x40
00000cac: ADD
00000cad: SWAP2
00000cae: POP
00000caf: POP
00000cb0: PUSH1 0x40
00000cb2: MLOAD
00000cb3: DUP1
00000cb4: SWAP2
00000cb5: SUB
00000cb6: SWAP1
00000cb7: REVERT
00000cb8: JUMPDEST
00000cb9: PUSH2 0x0cc3
00000cbc: DUP4
00000cbd: DUP4
00000cbe: DUP4
00000cbf: PUSH2 0x0faf
00000cc2: JUMP
00000cc3: JUMPDEST
00000cc4: PUSH2 0x0d2e
00000cc7: DUP2
00000cc8: PUSH1 0x40
00000cca: MLOAD
00000ccb: DUP1
00000ccc: PUSH1 0x60
00000cce: ADD
00000ccf: PUSH1 0x40
00000cd1: MSTORE
00000cd2: DUP1
00000cd3: PUSH1 0x26
00000cd5: DUP2
00000cd6: MSTORE
00000cd7: PUSH1 0x20
00000cd9: ADD
00000cda: PUSH2 0x0ffa
00000cdd: PUSH1 0x26
00000cdf: SWAP2
00000ce0: CODECOPY
00000ce1: PUSH1 0x00
00000ce3: DUP1
00000ce4: DUP8
00000ce5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cfa: AND
00000cfb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d10: AND
00000d11: DUP2
00000d12: MSTORE
00000d13: PUSH1 0x20
00000d15: ADD
00000d16: SWAP1
00000d17: DUP2
00000d18: MSTORE
00000d19: PUSH1 0x20
00000d1b: ADD
00000d1c: PUSH1 0x00
00000d1e: KECCAK256
00000d1f: SLOAD
00000d20: PUSH2 0x0e6d
00000d23: SWAP1
00000d24: SWAP3
00000d25: SWAP2
00000d26: SWAP1
00000d27: PUSH4 0xffffffff
00000d2c: AND
00000d2d: JUMP
00000d2e: JUMPDEST
00000d2f: PUSH1 0x00
00000d31: DUP1
00000d32: DUP6
00000d33: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d48: AND
00000d49: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d5e: AND
00000d5f: DUP2
00000d60: MSTORE
00000d61: PUSH1 0x20
00000d63: ADD
00000d64: SWAP1
00000d65: DUP2
00000d66: MSTORE
00000d67: PUSH1 0x20
00000d69: ADD
00000d6a: PUSH1 0x00
00000d6c: KECCAK256
00000d6d: DUP2
00000d6e: SWAP1
00000d6f: SSTORE
00000d70: POP
00000d71: PUSH2 0x0dc1
00000d74: DUP2
00000d75: PUSH1 0x00
00000d77: DUP1
00000d78: DUP6
00000d79: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d8e: AND
00000d8f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000da4: AND
00000da5: DUP2
00000da6: MSTORE
00000da7: PUSH1 0x20
00000da9: ADD
00000daa: SWAP1
00000dab: DUP2
00000dac: MSTORE
00000dad: PUSH1 0x20
00000daf: ADD
00000db0: PUSH1 0x00
00000db2: KECCAK256
00000db3: SLOAD
00000db4: PUSH2 0x0f27
00000db7: SWAP1
00000db8: SWAP2
00000db9: SWAP1
00000dba: PUSH4 0xffffffff
00000dbf: AND
00000dc0: JUMP
00000dc1: JUMPDEST
00000dc2: PUSH1 0x00
00000dc4: DUP1
00000dc5: DUP5
00000dc6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ddb: AND
00000ddc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000df1: AND
00000df2: DUP2
00000df3: MSTORE
00000df4: PUSH1 0x20
00000df6: ADD
00000df7: SWAP1
00000df8: DUP2
00000df9: MSTORE
00000dfa: PUSH1 0x20
00000dfc: ADD
00000dfd: PUSH1 0x00
00000dff: KECCAK256
00000e00: DUP2
00000e01: SWAP1
00000e02: SSTORE
00000e03: POP
00000e04: DUP2
00000e05: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e1a: AND
00000e1b: DUP4
00000e1c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e31: AND
00000e32: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00000e53: DUP4
00000e54: PUSH1 0x40
00000e56: MLOAD
00000e57: DUP1
00000e58: DUP3
00000e59: DUP2
00000e5a: MSTORE
00000e5b: PUSH1 0x20
00000e5d: ADD
00000e5e: SWAP2
00000e5f: POP
00000e60: POP
00000e61: PUSH1 0x40
00000e63: MLOAD
00000e64: DUP1
00000e65: SWAP2
00000e66: SUB
00000e67: SWAP1
00000e68: LOG3
00000e69: POP
00000e6a: POP
00000e6b: POP
00000e6c: JUMP
00000e6d: JUMPDEST
00000e6e: PUSH1 0x00
00000e70: DUP4
00000e71: DUP4
00000e72: GT
00000e73: ISZERO
00000e74: DUP3
00000e75: SWAP1
00000e76: PUSH2 0x0f1a
00000e79: JUMPI
00000e7a: PUSH1 0x40
00000e7c: MLOAD
00000e7d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000e9e: DUP2
00000e9f: MSTORE
00000ea0: PUSH1 0x04
00000ea2: ADD
00000ea3: DUP1
00000ea4: DUP1
00000ea5: PUSH1 0x20
00000ea7: ADD
00000ea8: DUP3
00000ea9: DUP2
00000eaa: SUB
00000eab: DUP3
00000eac: MSTORE
00000ead: DUP4
00000eae: DUP2
00000eaf: DUP2
00000eb0: MLOAD
00000eb1: DUP2
00000eb2: MSTORE
00000eb3: PUSH1 0x20
00000eb5: ADD
00000eb6: SWAP2
00000eb7: POP
00000eb8: DUP1
00000eb9: MLOAD
00000eba: SWAP1
00000ebb: PUSH1 0x20
00000ebd: ADD
00000ebe: SWAP1
00000ebf: DUP1
00000ec0: DUP4
00000ec1: DUP4
00000ec2: PUSH1 0x00
00000ec4: JUMPDEST
00000ec5: DUP4
00000ec6: DUP2
00000ec7: LT
00000ec8: ISZERO
00000ec9: PUSH2 0x0edf
00000ecc: JUMPI
00000ecd: DUP1
00000ece: DUP3
00000ecf: ADD
00000ed0: MLOAD
00000ed1: DUP2
00000ed2: DUP5
00000ed3: ADD
00000ed4: MSTORE
00000ed5: PUSH1 0x20
00000ed7: DUP2
00000ed8: ADD
00000ed9: SWAP1
00000eda: POP
00000edb: PUSH2 0x0ec4
00000ede: JUMP
00000edf: JUMPDEST
00000ee0: POP
00000ee1: POP
00000ee2: POP
00000ee3: POP
00000ee4: SWAP1
00000ee5: POP
00000ee6: SWAP1
00000ee7: DUP2
00000ee8: ADD
00000ee9: SWAP1
00000eea: PUSH1 0x1f
00000eec: AND
00000eed: DUP1
00000eee: ISZERO
00000eef: PUSH2 0x0f0c
00000ef2: JUMPI
00000ef3: DUP1
00000ef4: DUP3
00000ef5: SUB
00000ef6: DUP1
00000ef7: MLOAD
00000ef8: PUSH1 0x01
00000efa: DUP4
00000efb: PUSH1 0x20
00000efd: SUB
00000efe: PUSH2 0x0100
00000f01: EXP
00000f02: SUB
00000f03: NOT
00000f04: AND
00000f05: DUP2
00000f06: MSTORE
00000f07: PUSH1 0x20
00000f09: ADD
00000f0a: SWAP2
00000f0b: POP
00000f0c: JUMPDEST
00000f0d: POP
00000f0e: SWAP3
00000f0f: POP
00000f10: POP
00000f11: POP
00000f12: PUSH1 0x40
00000f14: MLOAD
00000f15: DUP1
00000f16: SWAP2
00000f17: SUB
00000f18: SWAP1
00000f19: REVERT
00000f1a: JUMPDEST
00000f1b: POP
00000f1c: DUP3
00000f1d: DUP5
00000f1e: SUB
00000f1f: SWAP1
00000f20: POP
00000f21: SWAP4
00000f22: SWAP3
00000f23: POP
00000f24: POP
00000f25: POP
00000f26: JUMP
00000f27: JUMPDEST
00000f28: PUSH1 0x00
00000f2a: DUP1
00000f2b: DUP3
00000f2c: DUP5
00000f2d: ADD
00000f2e: SWAP1
00000f2f: POP
00000f30: DUP4
00000f31: DUP2
00000f32: LT
00000f33: ISZERO
00000f34: PUSH2 0x0fa5
00000f37: JUMPI
00000f38: PUSH1 0x40
00000f3a: MLOAD
00000f3b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000f5c: DUP2
00000f5d: MSTORE
00000f5e: PUSH1 0x04
00000f60: ADD
00000f61: DUP1
00000f62: DUP1
00000f63: PUSH1 0x20
00000f65: ADD
00000f66: DUP3
00000f67: DUP2
00000f68: SUB
00000f69: DUP3
00000f6a: MSTORE
00000f6b: PUSH1 0x1b
00000f6d: DUP2
00000f6e: MSTORE
00000f6f: PUSH1 0x20
00000f71: ADD
00000f72: DUP1
00000f73: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000
00000f94: DUP2
00000f95: MSTORE
00000f96: POP
00000f97: PUSH1 0x20
00000f99: ADD
00000f9a: SWAP2
00000f9b: POP
00000f9c: POP
00000f9d: PUSH1 0x40
00000f9f: MLOAD
00000fa0: DUP1
00000fa1: SWAP2
00000fa2: SUB
00000fa3: SWAP1
00000fa4: REVERT
00000fa5: JUMPDEST
00000fa6: DUP1
00000fa7: SWAP2
00000fa8: POP
00000fa9: POP
00000faa: SWAP3
00000fab: SWAP2
00000fac: POP
00000fad: POP
00000fae: JUMP
00000faf: JUMPDEST
00000fb0: POP
00000fb1: POP
00000fb2: POP
00000fb3: JUMP
00000fb4: INVALID
00000fb5: GASLIMIT
00000fb6: MSTORE
00000fb7: NUMBER
00000fb8: ORIGIN
00000fb9: ADDRESS
00000fba: GASPRICE
00000fbb: KECCAK256
00000fbc: PUSH21 0x72616e7366657220746f20746865207a65726f2061
00000fd2: PUSH5 0x6472657373
00000fd8: GASLIMIT
00000fd9: MSTORE
00000fda: NUMBER
00000fdb: ORIGIN
00000fdc: ADDRESS
00000fdd: GASPRICE
00000fde: KECCAK256
00000fdf: PUSH2 0x7070
00000fe2: PUSH19 0x6f766520746f20746865207a65726f20616464
00000ff6: PUSH19 0x65737345524332303a207472616e7366657220
0000100a: PUSH2 0x6d6f
0000100d: PUSH22 0x6e7420657863656564732062616c616e636545524332
00001024: ADDRESS
00001025: GASPRICE
00001026: KECCAK256
00001027: PUSH21 0x72616e7366657220616d6f756e7420657863656564
0000103d: PUSH20 0x20616c6c6f77616e636545524332303a20747261
00001052: PUSH15 0x736665722066726f6d20746865207a
00001062: PUSH6 0x726f20616464
00001069: PUSH19 0x65737345524332303a20617070726f76652066
0000107d: PUSH19 0x6f6d20746865207a65726f2061646472657373
00001091: GASLIMIT
00001092: MSTORE
00001093: NUMBER
00001094: ORIGIN
00001095: ADDRESS
00001096: GASPRICE
00001097: KECCAK256
00001098: PUSH5 0x6563726561
0000109e: PUSH20 0x656420616c6c6f77616e63652062656c6f77207a
000010b3: PUSH6 0x726fa2646970
000010ba: PUSH7 0x73582212201c80
000010c2: UNKNOWN(0xD9)
000010c3: DUP15
000010c4: PUSH22 0xa30d9f20c93018473aa8e00631c18de5301dcf9daf4c
000010db: LOG0
000010dc: RETURNDATASIZE
000010dd: UNKNOWN(0x4B)
000010de: UNKNOWN(0x4B)
000010df: UNKNOWN(0xB1)
000010e0: PUSH5 0x736f6c6343
000010e6: STOP
000010e7: MOD
000010e8: MOD
000010e9: STOP
000010ea: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x39509351",
            "selector": "0x39509351",
            "calldata_variants": [
                "0x39509351",
                "0x395093510000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x95d89b41",
            "selector": "0x95d89b41",
            "calldata_variants": [
                "0x95d89b41",
                "0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa457c2d7",
            "selector": "0xa457c2d7",
            "calldata_variants": [
                "0xa457c2d7",
                "0xa457c2d70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa9059cbb",
            "selector": "0xa9059cbb",
            "calldata_variants": [
                "0xa9059cbb",
                "0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 4024,
            "type": "tx_origin_used"
        },
        {
            "pc": 4059,
            "type": "tx_origin_used"
        },
        {
            "pc": 4244,
            "type": "tx_origin_used"
        }
    ]
}