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

Analysis Run

82ec3f02-fb5d-466c-9a77-3593d9631b79

failed
Chain ID
1
Address
Block Number
Created
Sat, Jan 3, 2026 3:39 AM
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
31450 report.consolidate complete 1 / 1 3 months ago
77326 artifact.fetch failed 1 / 3 1 week ago
77327 tool.cast_disasm complete 1 / 3 1 week ago
77328 analysis.bundle complete 1 / 3 1 week ago
77329 capability.graph complete 1 / 3 1 week ago
77330 detector.run complete 1 / 3 1 week ago
77331 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
0
No findings?
yes
Summary
No concrete, exploitable profit paths found in the provided contracts.
View stderr
[codex:460547] OpenAI Codex v0.77.0 (research preview)
[codex:460547] --------
[codex:460547] workdir: /tmp/codex-multi-g2hdmbs_
[codex:460547] model: gpt-5.2-codex
[codex:460547] provider: openai
[codex:460547] approval: never
[codex:460547] sandbox: read-only
[codex:460547] reasoning effort: xhigh
[codex:460547] reasoning summaries: auto
[codex:460547] session id: 019b81f0-2945-78e3-89e5-102436ea83ad
[codex:460547] --------
[codex:460547] user
[codex:460547] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:460547] 
[codex:460547] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:460547] 
[codex:460547] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:460547] - Gas inefficiency, code quality, naming, or best practices
[codex:460547] - Theoretical vulnerabilities without a clear extraction path
[codex:460547] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:460547] - Front-running unless it enables theft beyond MEV
[codex:460547] - DoS, griefing, or issues that don't result in attacker profit
[codex:460547] - Missing events, view function issues, or informational findings
[codex:460547] 
[codex:460547] HIGH-VALUE PATTERNS TO HUNT:
[codex:460547] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:460547] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:460547] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:460547] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:460547] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:460547] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:460547] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:460547] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:460547] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:460547] 
[codex:460547] For each finding, you MUST provide:
[codex:460547] 1. Exact file and line numbers of vulnerable code
[codex:460547] 2. Step-by-step exploit transaction sequence
[codex:460547] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:460547] 
[codex:460547] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:460547] 
[codex:460547] Output MUST be valid JSON matching the provided schema.
[codex:460547] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:460547] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:460547] mcp startup: no servers
[codex:460547] 
[codex:460547] thinking
[codex:460547] **Preparing to read audit bundle**
[codex:460547] exec
[codex:460547] /bin/bash -lc ls in /tmp/codex-multi-g2hdmbs_ succeeded in 5ms:
[codex:460547] AUDIT_BUNDLE.txt
[codex:460547] codex-output-schema.json
[codex:460547] contracts
[codex:460547] 
[codex:460547] thinking
[codex:460547] **Reading AUDIT_BUNDLE.txt file**
[codex:460547] exec
[codex:460547] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-g2hdmbs_ succeeded in 5ms:
[codex:460547] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:460547] 
[codex:460547] ================================================================================
[codex:460547] FILE: contracts/Contract.sol
[codex:460547] ================================================================================
[codex:460547] // File: openzeppelin-solidity/contracts/token/ERC20/IERC20.sol
[codex:460547] 
[codex:460547] pragma solidity ^0.5.2;
[codex:460547] 
[codex:460547] /**
[codex:460547]  * @title ERC20 interface
[codex:460547]  * @dev see https://eips.ethereum.org/EIPS/eip-20
[codex:460547]  */
[codex:460547] interface IERC20 {
[codex:460547]     function transfer(address to, uint256 value) external returns (bool);
[codex:460547] 
[codex:460547]     function approve(address spender, uint256 value) external returns (bool);
[codex:460547] 
[codex:460547]     function transferFrom(address from, address to, uint256 value) external returns (bool);
[codex:460547] 
[codex:460547] 
[codex:460547] thinking
[codex:460547] **Verifying absence of vulnerabilities**
[codex:460547] codex
[codex:460547] {"no_findings":true,"summary":"No concrete, exploitable profit paths found in the provided contracts.","findings":[]}
[codex:460547] tokens used
[codex:460547] 9,363
[codex:460547] {"no_findings":true,"summary":"No concrete, exploitable profit paths found in the provided contracts.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-03T03:39:30.084222+00:00",
        "returncode": 0
    },
    "summary": "No concrete, exploitable profit paths found in the provided contracts.",
    "raw_final": {
        "summary": "No concrete, exploitable profit paths found in the provided contracts.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
0
Total opcodes
1800
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x00dc
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x39509351
00000019: GT
0000001a: PUSH2 0x007f
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xa457c2d7
00000024: GT
00000025: PUSH2 0x0059
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xa457c2d7
0000002f: EQ
00000030: PUSH2 0x0333
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xa9059cbb
0000003a: EQ
0000003b: PUSH2 0x036c
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xd0e30db0
00000045: EQ
00000046: PUSH2 0x03a5
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xdd62ed3e
00000050: EQ
00000051: PUSH2 0x03ad
00000054: JUMPI
00000055: PUSH2 0x00dc
00000058: JUMP
00000059: JUMPDEST
0000005a: DUP1
0000005b: PUSH4 0x39509351
00000060: EQ
00000061: PUSH2 0x02b2
00000064: JUMPI
00000065: DUP1
00000066: PUSH4 0x70a08231
0000006b: EQ
0000006c: PUSH2 0x02eb
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0x95d89b41
00000076: EQ
00000077: PUSH2 0x031e
0000007a: JUMPI
0000007b: PUSH2 0x00dc
0000007e: JUMP
0000007f: JUMPDEST
00000080: DUP1
00000081: PUSH4 0x18160ddd
00000086: GT
00000087: PUSH2 0x00bb
0000008a: JUMPI
0000008b: DUP1
0000008c: PUSH4 0x18160ddd
00000091: EQ
00000092: PUSH2 0x01f3
00000095: JUMPI
00000096: DUP1
00000097: PUSH4 0x23b872dd
0000009c: EQ
0000009d: PUSH2 0x021a
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0x2e1a7d4d
000000a7: EQ
000000a8: PUSH2 0x025d
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0x313ce567
000000b2: EQ
000000b3: PUSH2 0x0287
000000b6: JUMPI
000000b7: PUSH2 0x00dc
000000ba: JUMP
000000bb: JUMPDEST
000000bc: DUP1
000000bd: PUSH3 0xf714ce
000000c1: EQ
000000c2: PUSH2 0x00e1
000000c5: JUMPI
000000c6: DUP1
000000c7: PUSH4 0x06fdde03
000000cc: EQ
000000cd: PUSH2 0x011c
000000d0: JUMPI
000000d1: DUP1
000000d2: PUSH4 0x095ea7b3
000000d7: EQ
000000d8: PUSH2 0x01a6
000000db: JUMPI
000000dc: JUMPDEST
000000dd: PUSH1 0x00
000000df: DUP1
000000e0: REVERT
000000e1: JUMPDEST
000000e2: CALLVALUE
000000e3: DUP1
000000e4: ISZERO
000000e5: PUSH2 0x00ed
000000e8: JUMPI
000000e9: PUSH1 0x00
000000eb: DUP1
000000ec: REVERT
000000ed: JUMPDEST
000000ee: POP
000000ef: PUSH2 0x011a
000000f2: PUSH1 0x04
000000f4: DUP1
000000f5: CALLDATASIZE
000000f6: SUB
000000f7: PUSH1 0x40
000000f9: DUP2
000000fa: LT
000000fb: ISZERO
000000fc: PUSH2 0x0104
000000ff: JUMPI
00000100: PUSH1 0x00
00000102: DUP1
00000103: REVERT
00000104: JUMPDEST
00000105: POP
00000106: DUP1
00000107: CALLDATALOAD
00000108: SWAP1
00000109: PUSH1 0x20
0000010b: ADD
0000010c: CALLDATALOAD
0000010d: PUSH1 0x01
0000010f: PUSH1 0x01
00000111: PUSH1 0xa0
00000113: SHL
00000114: SUB
00000115: AND
00000116: PUSH2 0x03e8
00000119: JUMP
0000011a: JUMPDEST
0000011b: STOP
0000011c: JUMPDEST
0000011d: CALLVALUE
0000011e: DUP1
0000011f: ISZERO
00000120: PUSH2 0x0128
00000123: JUMPI
00000124: PUSH1 0x00
00000126: DUP1
00000127: REVERT
00000128: JUMPDEST
00000129: POP
0000012a: PUSH2 0x0131
0000012d: PUSH2 0x0481
00000130: JUMP
00000131: JUMPDEST
00000132: PUSH1 0x40
00000134: DUP1
00000135: MLOAD
00000136: PUSH1 0x20
00000138: DUP1
00000139: DUP3
0000013a: MSTORE
0000013b: DUP4
0000013c: MLOAD
0000013d: DUP2
0000013e: DUP4
0000013f: ADD
00000140: MSTORE
00000141: DUP4
00000142: MLOAD
00000143: SWAP2
00000144: SWAP3
00000145: DUP4
00000146: SWAP3
00000147: SWAP1
00000148: DUP4
00000149: ADD
0000014a: SWAP2
0000014b: DUP6
0000014c: ADD
0000014d: SWAP1
0000014e: DUP1
0000014f: DUP4
00000150: DUP4
00000151: PUSH1 0x00
00000153: JUMPDEST
00000154: DUP4
00000155: DUP2
00000156: LT
00000157: ISZERO
00000158: PUSH2 0x016b
0000015b: JUMPI
0000015c: DUP2
0000015d: DUP2
0000015e: ADD
0000015f: MLOAD
00000160: DUP4
00000161: DUP3
00000162: ADD
00000163: MSTORE
00000164: PUSH1 0x20
00000166: ADD
00000167: PUSH2 0x0153
0000016a: JUMP
0000016b: JUMPDEST
0000016c: POP
0000016d: POP
0000016e: POP
0000016f: POP
00000170: SWAP1
00000171: POP
00000172: SWAP1
00000173: DUP2
00000174: ADD
00000175: SWAP1
00000176: PUSH1 0x1f
00000178: AND
00000179: DUP1
0000017a: ISZERO
0000017b: PUSH2 0x0198
0000017e: JUMPI
0000017f: DUP1
00000180: DUP3
00000181: SUB
00000182: DUP1
00000183: MLOAD
00000184: PUSH1 0x01
00000186: DUP4
00000187: PUSH1 0x20
00000189: SUB
0000018a: PUSH2 0x0100
0000018d: EXP
0000018e: SUB
0000018f: NOT
00000190: AND
00000191: DUP2
00000192: MSTORE
00000193: PUSH1 0x20
00000195: ADD
00000196: SWAP2
00000197: POP
00000198: JUMPDEST
00000199: POP
0000019a: SWAP3
0000019b: POP
0000019c: POP
0000019d: POP
0000019e: PUSH1 0x40
000001a0: MLOAD
000001a1: DUP1
000001a2: SWAP2
000001a3: SUB
000001a4: SWAP1
000001a5: RETURN
000001a6: JUMPDEST
000001a7: CALLVALUE
000001a8: DUP1
000001a9: ISZERO
000001aa: PUSH2 0x01b2
000001ad: JUMPI
000001ae: PUSH1 0x00
000001b0: DUP1
000001b1: REVERT
000001b2: JUMPDEST
000001b3: POP
000001b4: PUSH2 0x01df
000001b7: PUSH1 0x04
000001b9: DUP1
000001ba: CALLDATASIZE
000001bb: SUB
000001bc: PUSH1 0x40
000001be: DUP2
000001bf: LT
000001c0: ISZERO
000001c1: PUSH2 0x01c9
000001c4: JUMPI
000001c5: PUSH1 0x00
000001c7: DUP1
000001c8: REVERT
000001c9: JUMPDEST
000001ca: POP
000001cb: PUSH1 0x01
000001cd: PUSH1 0x01
000001cf: PUSH1 0xa0
000001d1: SHL
000001d2: SUB
000001d3: DUP2
000001d4: CALLDATALOAD
000001d5: AND
000001d6: SWAP1
000001d7: PUSH1 0x20
000001d9: ADD
000001da: CALLDATALOAD
000001db: PUSH2 0x050f
000001de: JUMP
000001df: JUMPDEST
000001e0: PUSH1 0x40
000001e2: DUP1
000001e3: MLOAD
000001e4: SWAP2
000001e5: ISZERO
000001e6: ISZERO
000001e7: DUP3
000001e8: MSTORE
000001e9: MLOAD
000001ea: SWAP1
000001eb: DUP2
000001ec: SWAP1
000001ed: SUB
000001ee: PUSH1 0x20
000001f0: ADD
000001f1: SWAP1
000001f2: RETURN
000001f3: JUMPDEST
000001f4: CALLVALUE
000001f5: DUP1
000001f6: ISZERO
000001f7: PUSH2 0x01ff
000001fa: JUMPI
000001fb: PUSH1 0x00
000001fd: DUP1
000001fe: REVERT
000001ff: JUMPDEST
00000200: POP
00000201: PUSH2 0x0208
00000204: PUSH2 0x0525
00000207: JUMP
00000208: JUMPDEST
00000209: PUSH1 0x40
0000020b: DUP1
0000020c: MLOAD
0000020d: SWAP2
0000020e: DUP3
0000020f: MSTORE
00000210: MLOAD
00000211: SWAP1
00000212: DUP2
00000213: SWAP1
00000214: SUB
00000215: PUSH1 0x20
00000217: ADD
00000218: SWAP1
00000219: RETURN
0000021a: JUMPDEST
0000021b: CALLVALUE
0000021c: DUP1
0000021d: ISZERO
0000021e: PUSH2 0x0226
00000221: JUMPI
00000222: PUSH1 0x00
00000224: DUP1
00000225: REVERT
00000226: JUMPDEST
00000227: POP
00000228: PUSH2 0x01df
0000022b: PUSH1 0x04
0000022d: DUP1
0000022e: CALLDATASIZE
0000022f: SUB
00000230: PUSH1 0x60
00000232: DUP2
00000233: LT
00000234: ISZERO
00000235: PUSH2 0x023d
00000238: JUMPI
00000239: PUSH1 0x00
0000023b: DUP1
0000023c: REVERT
0000023d: JUMPDEST
0000023e: POP
0000023f: PUSH1 0x01
00000241: PUSH1 0x01
00000243: PUSH1 0xa0
00000245: SHL
00000246: SUB
00000247: DUP2
00000248: CALLDATALOAD
00000249: DUP2
0000024a: AND
0000024b: SWAP2
0000024c: PUSH1 0x20
0000024e: DUP2
0000024f: ADD
00000250: CALLDATALOAD
00000251: SWAP1
00000252: SWAP2
00000253: AND
00000254: SWAP1
00000255: PUSH1 0x40
00000257: ADD
00000258: CALLDATALOAD
00000259: PUSH2 0x052b
0000025c: JUMP
0000025d: JUMPDEST
0000025e: CALLVALUE
0000025f: DUP1
00000260: ISZERO
00000261: PUSH2 0x0269
00000264: JUMPI
00000265: PUSH1 0x00
00000267: DUP1
00000268: REVERT
00000269: JUMPDEST
0000026a: POP
0000026b: PUSH2 0x011a
0000026e: PUSH1 0x04
00000270: DUP1
00000271: CALLDATASIZE
00000272: SUB
00000273: PUSH1 0x20
00000275: DUP2
00000276: LT
00000277: ISZERO
00000278: PUSH2 0x0280
0000027b: JUMPI
0000027c: PUSH1 0x00
0000027e: DUP1
0000027f: REVERT
00000280: JUMPDEST
00000281: POP
00000282: CALLDATALOAD
00000283: PUSH2 0x0582
00000286: JUMP
00000287: JUMPDEST
00000288: CALLVALUE
00000289: DUP1
0000028a: ISZERO
0000028b: PUSH2 0x0293
0000028e: JUMPI
0000028f: PUSH1 0x00
00000291: DUP1
00000292: REVERT
00000293: JUMPDEST
00000294: POP
00000295: PUSH2 0x029c
00000298: PUSH2 0x0608
0000029b: JUMP
0000029c: JUMPDEST
0000029d: PUSH1 0x40
0000029f: DUP1
000002a0: MLOAD
000002a1: PUSH1 0xff
000002a3: SWAP1
000002a4: SWAP3
000002a5: AND
000002a6: DUP3
000002a7: MSTORE
000002a8: MLOAD
000002a9: SWAP1
000002aa: DUP2
000002ab: SWAP1
000002ac: SUB
000002ad: PUSH1 0x20
000002af: ADD
000002b0: SWAP1
000002b1: RETURN
000002b2: JUMPDEST
000002b3: CALLVALUE
000002b4: DUP1
000002b5: ISZERO
000002b6: PUSH2 0x02be
000002b9: JUMPI
000002ba: PUSH1 0x00
000002bc: DUP1
000002bd: REVERT
000002be: JUMPDEST
000002bf: POP
000002c0: PUSH2 0x01df
000002c3: PUSH1 0x04
000002c5: DUP1
000002c6: CALLDATASIZE
000002c7: SUB
000002c8: PUSH1 0x40
000002ca: DUP2
000002cb: LT
000002cc: ISZERO
000002cd: PUSH2 0x02d5
000002d0: JUMPI
000002d1: PUSH1 0x00
000002d3: DUP1
000002d4: REVERT
000002d5: JUMPDEST
000002d6: POP
000002d7: PUSH1 0x01
000002d9: PUSH1 0x01
000002db: PUSH1 0xa0
000002dd: SHL
000002de: SUB
000002df: DUP2
000002e0: CALLDATALOAD
000002e1: AND
000002e2: SWAP1
000002e3: PUSH1 0x20
000002e5: ADD
000002e6: CALLDATALOAD
000002e7: PUSH2 0x0611
000002ea: JUMP
000002eb: JUMPDEST
000002ec: CALLVALUE
000002ed: DUP1
000002ee: ISZERO
000002ef: PUSH2 0x02f7
000002f2: JUMPI
000002f3: PUSH1 0x00
000002f5: DUP1
000002f6: REVERT
000002f7: JUMPDEST
000002f8: POP
000002f9: PUSH2 0x0208
000002fc: PUSH1 0x04
000002fe: DUP1
000002ff: CALLDATASIZE
00000300: SUB
00000301: PUSH1 0x20
00000303: DUP2
00000304: LT
00000305: ISZERO
00000306: PUSH2 0x030e
00000309: JUMPI
0000030a: PUSH1 0x00
0000030c: DUP1
0000030d: REVERT
0000030e: JUMPDEST
0000030f: POP
00000310: CALLDATALOAD
00000311: PUSH1 0x01
00000313: PUSH1 0x01
00000315: PUSH1 0xa0
00000317: SHL
00000318: SUB
00000319: AND
0000031a: PUSH2 0x064d
0000031d: JUMP
0000031e: JUMPDEST
0000031f: CALLVALUE
00000320: DUP1
00000321: ISZERO
00000322: PUSH2 0x032a
00000325: JUMPI
00000326: PUSH1 0x00
00000328: DUP1
00000329: REVERT
0000032a: JUMPDEST
0000032b: POP
0000032c: PUSH2 0x0131
0000032f: PUSH2 0x0668
00000332: JUMP
00000333: JUMPDEST
00000334: CALLVALUE
00000335: DUP1
00000336: ISZERO
00000337: PUSH2 0x033f
0000033a: JUMPI
0000033b: PUSH1 0x00
0000033d: DUP1
0000033e: REVERT
0000033f: JUMPDEST
00000340: POP
00000341: PUSH2 0x01df
00000344: PUSH1 0x04
00000346: DUP1
00000347: CALLDATASIZE
00000348: SUB
00000349: PUSH1 0x40
0000034b: DUP2
0000034c: LT
0000034d: ISZERO
0000034e: PUSH2 0x0356
00000351: JUMPI
00000352: PUSH1 0x00
00000354: DUP1
00000355: REVERT
00000356: JUMPDEST
00000357: POP
00000358: PUSH1 0x01
0000035a: PUSH1 0x01
0000035c: PUSH1 0xa0
0000035e: SHL
0000035f: SUB
00000360: DUP2
00000361: CALLDATALOAD
00000362: AND
00000363: SWAP1
00000364: PUSH1 0x20
00000366: ADD
00000367: CALLDATALOAD
00000368: PUSH2 0x06c3
0000036b: JUMP
0000036c: JUMPDEST
0000036d: CALLVALUE
0000036e: DUP1
0000036f: ISZERO
00000370: PUSH2 0x0378
00000373: JUMPI
00000374: PUSH1 0x00
00000376: DUP1
00000377: REVERT
00000378: JUMPDEST
00000379: POP
0000037a: PUSH2 0x01df
0000037d: PUSH1 0x04
0000037f: DUP1
00000380: CALLDATASIZE
00000381: SUB
00000382: PUSH1 0x40
00000384: DUP2
00000385: LT
00000386: ISZERO
00000387: PUSH2 0x038f
0000038a: JUMPI
0000038b: PUSH1 0x00
0000038d: DUP1
0000038e: REVERT
0000038f: JUMPDEST
00000390: POP
00000391: PUSH1 0x01
00000393: PUSH1 0x01
00000395: PUSH1 0xa0
00000397: SHL
00000398: SUB
00000399: DUP2
0000039a: CALLDATALOAD
0000039b: AND
0000039c: SWAP1
0000039d: PUSH1 0x20
0000039f: ADD
000003a0: CALLDATALOAD
000003a1: PUSH2 0x06ff
000003a4: JUMP
000003a5: JUMPDEST
000003a6: PUSH2 0x011a
000003a9: PUSH2 0x070c
000003ac: JUMP
000003ad: JUMPDEST
000003ae: CALLVALUE
000003af: DUP1
000003b0: ISZERO
000003b1: PUSH2 0x03b9
000003b4: JUMPI
000003b5: PUSH1 0x00
000003b7: DUP1
000003b8: REVERT
000003b9: JUMPDEST
000003ba: POP
000003bb: PUSH2 0x0208
000003be: PUSH1 0x04
000003c0: DUP1
000003c1: CALLDATASIZE
000003c2: SUB
000003c3: PUSH1 0x40
000003c5: DUP2
000003c6: LT
000003c7: ISZERO
000003c8: PUSH2 0x03d0
000003cb: JUMPI
000003cc: PUSH1 0x00
000003ce: DUP1
000003cf: REVERT
000003d0: JUMPDEST
000003d1: POP
000003d2: PUSH1 0x01
000003d4: PUSH1 0x01
000003d6: PUSH1 0xa0
000003d8: SHL
000003d9: SUB
000003da: DUP2
000003db: CALLDATALOAD
000003dc: DUP2
000003dd: AND
000003de: SWAP2
000003df: PUSH1 0x20
000003e1: ADD
000003e2: CALLDATALOAD
000003e3: AND
000003e4: PUSH2 0x074e
000003e7: JUMP
000003e8: JUMPDEST
000003e9: DUP2
000003ea: PUSH2 0x03f2
000003ed: CALLER
000003ee: PUSH2 0x064d
000003f1: JUMP
000003f2: JUMPDEST
000003f3: LT
000003f4: ISZERO
000003f5: PUSH2 0x03fd
000003f8: JUMPI
000003f9: PUSH1 0x00
000003fb: DUP1
000003fc: REVERT
000003fd: JUMPDEST
000003fe: PUSH2 0x0407
00000401: CALLER
00000402: DUP4
00000403: PUSH2 0x0779
00000406: JUMP
00000407: JUMPDEST
00000408: PUSH1 0x40
0000040a: MLOAD
0000040b: PUSH1 0x01
0000040d: PUSH1 0x01
0000040f: PUSH1 0xa0
00000411: SHL
00000412: SUB
00000413: DUP3
00000414: AND
00000415: SWAP1
00000416: DUP4
00000417: ISZERO
00000418: PUSH2 0x08fc
0000041b: MUL
0000041c: SWAP1
0000041d: DUP5
0000041e: SWAP1
0000041f: PUSH1 0x00
00000421: DUP2
00000422: DUP2
00000423: DUP2
00000424: DUP6
00000425: DUP9
00000426: DUP9
00000427: CALL
00000428: SWAP4
00000429: POP
0000042a: POP
0000042b: POP
0000042c: POP
0000042d: ISZERO
0000042e: DUP1
0000042f: ISZERO
00000430: PUSH2 0x043d
00000433: JUMPI
00000434: RETURNDATASIZE
00000435: PUSH1 0x00
00000437: DUP1
00000438: RETURNDATACOPY
00000439: RETURNDATASIZE
0000043a: PUSH1 0x00
0000043c: REVERT
0000043d: JUMPDEST
0000043e: POP
0000043f: PUSH1 0x40
00000441: DUP1
00000442: MLOAD
00000443: DUP4
00000444: DUP2
00000445: MSTORE
00000446: SWAP1
00000447: MLOAD
00000448: PUSH1 0x01
0000044a: PUSH1 0x01
0000044c: PUSH1 0xa0
0000044e: SHL
0000044f: SUB
00000450: DUP4
00000451: AND
00000452: SWAP2
00000453: PUSH32 0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65
00000474: SWAP2
00000475: SWAP1
00000476: DUP2
00000477: SWAP1
00000478: SUB
00000479: PUSH1 0x20
0000047b: ADD
0000047c: SWAP1
0000047d: LOG2
0000047e: POP
0000047f: POP
00000480: JUMP
00000481: JUMPDEST
00000482: PUSH1 0x03
00000484: DUP1
00000485: SLOAD
00000486: PUSH1 0x40
00000488: DUP1
00000489: MLOAD
0000048a: PUSH1 0x20
0000048c: PUSH1 0x02
0000048e: PUSH1 0x01
00000490: DUP6
00000491: AND
00000492: ISZERO
00000493: PUSH2 0x0100
00000496: MUL
00000497: PUSH1 0x00
00000499: NOT
0000049a: ADD
0000049b: SWAP1
0000049c: SWAP5
0000049d: AND
0000049e: SWAP4
0000049f: SWAP1
000004a0: SWAP4
000004a1: DIV
000004a2: PUSH1 0x1f
000004a4: DUP2
000004a5: ADD
000004a6: DUP5
000004a7: SWAP1
000004a8: DIV
000004a9: DUP5
000004aa: MUL
000004ab: DUP3
000004ac: ADD
000004ad: DUP5
000004ae: ADD
000004af: SWAP1
000004b0: SWAP3
000004b1: MSTORE
000004b2: DUP2
000004b3: DUP2
000004b4: MSTORE
000004b5: SWAP3
000004b6: SWAP2
000004b7: DUP4
000004b8: ADD
000004b9: DUP3
000004ba: DUP3
000004bb: DUP1
000004bc: ISZERO
000004bd: PUSH2 0x0507
000004c0: JUMPI
000004c1: DUP1
000004c2: PUSH1 0x1f
000004c4: LT
000004c5: PUSH2 0x04dc
000004c8: JUMPI
000004c9: PUSH2 0x0100
000004cc: DUP1
000004cd: DUP4
000004ce: SLOAD
000004cf: DIV
000004d0: MUL
000004d1: DUP4
000004d2: MSTORE
000004d3: SWAP2
000004d4: PUSH1 0x20
000004d6: ADD
000004d7: SWAP2
000004d8: PUSH2 0x0507
000004db: JUMP
000004dc: JUMPDEST
000004dd: DUP3
000004de: ADD
000004df: SWAP2
000004e0: SWAP1
000004e1: PUSH1 0x00
000004e3: MSTORE
000004e4: PUSH1 0x20
000004e6: PUSH1 0x00
000004e8: KECCAK256
000004e9: SWAP1
000004ea: JUMPDEST
000004eb: DUP2
000004ec: SLOAD
000004ed: DUP2
000004ee: MSTORE
000004ef: SWAP1
000004f0: PUSH1 0x01
000004f2: ADD
000004f3: SWAP1
000004f4: PUSH1 0x20
000004f6: ADD
000004f7: DUP1
000004f8: DUP4
000004f9: GT
000004fa: PUSH2 0x04ea
000004fd: JUMPI
000004fe: DUP3
000004ff: SWAP1
00000500: SUB
00000501: PUSH1 0x1f
00000503: AND
00000504: DUP3
00000505: ADD
00000506: SWAP2
00000507: JUMPDEST
00000508: POP
00000509: POP
0000050a: POP
0000050b: POP
0000050c: POP
0000050d: DUP2
0000050e: JUMP
0000050f: JUMPDEST
00000510: PUSH1 0x00
00000512: PUSH2 0x051c
00000515: CALLER
00000516: DUP5
00000517: DUP5
00000518: PUSH2 0x0820
0000051b: JUMP
0000051c: JUMPDEST
0000051d: POP
0000051e: PUSH1 0x01
00000520: SWAP3
00000521: SWAP2
00000522: POP
00000523: POP
00000524: JUMP
00000525: JUMPDEST
00000526: PUSH1 0x02
00000528: SLOAD
00000529: SWAP1
0000052a: JUMP
0000052b: JUMPDEST
0000052c: PUSH1 0x00
0000052e: PUSH2 0x0538
00000531: DUP5
00000532: DUP5
00000533: DUP5
00000534: PUSH2 0x08a8
00000537: JUMP
00000538: JUMPDEST
00000539: PUSH1 0x01
0000053b: PUSH1 0x01
0000053d: PUSH1 0xa0
0000053f: SHL
00000540: SUB
00000541: DUP5
00000542: AND
00000543: PUSH1 0x00
00000545: SWAP1
00000546: DUP2
00000547: MSTORE
00000548: PUSH1 0x01
0000054a: PUSH1 0x20
0000054c: SWAP1
0000054d: DUP2
0000054e: MSTORE
0000054f: PUSH1 0x40
00000551: DUP1
00000552: DUP4
00000553: KECCAK256
00000554: CALLER
00000555: DUP1
00000556: DUP6
00000557: MSTORE
00000558: SWAP3
00000559: MSTORE
0000055a: SWAP1
0000055b: SWAP2
0000055c: KECCAK256
0000055d: SLOAD
0000055e: PUSH2 0x0578
00000561: SWAP2
00000562: DUP7
00000563: SWAP2
00000564: PUSH2 0x0573
00000567: SWAP1
00000568: DUP7
00000569: PUSH4 0xffffffff
0000056e: PUSH2 0x0973
00000571: AND
00000572: JUMP
00000573: JUMPDEST
00000574: PUSH2 0x0820
00000577: JUMP
00000578: JUMPDEST
00000579: POP
0000057a: PUSH1 0x01
0000057c: SWAP4
0000057d: SWAP3
0000057e: POP
0000057f: POP
00000580: POP
00000581: JUMP
00000582: JUMPDEST
00000583: DUP1
00000584: PUSH2 0x058c
00000587: CALLER
00000588: PUSH2 0x064d
0000058b: JUMP
0000058c: JUMPDEST
0000058d: LT
0000058e: ISZERO
0000058f: PUSH2 0x0597
00000592: JUMPI
00000593: PUSH1 0x00
00000595: DUP1
00000596: REVERT
00000597: JUMPDEST
00000598: PUSH2 0x05a1
0000059b: CALLER
0000059c: DUP3
0000059d: PUSH2 0x0779
000005a0: JUMP
000005a1: JUMPDEST
000005a2: PUSH1 0x40
000005a4: MLOAD
000005a5: CALLER
000005a6: SWAP1
000005a7: DUP3
000005a8: ISZERO
000005a9: PUSH2 0x08fc
000005ac: MUL
000005ad: SWAP1
000005ae: DUP4
000005af: SWAP1
000005b0: PUSH1 0x00
000005b2: DUP2
000005b3: DUP2
000005b4: DUP2
000005b5: DUP6
000005b6: DUP9
000005b7: DUP9
000005b8: CALL
000005b9: SWAP4
000005ba: POP
000005bb: POP
000005bc: POP
000005bd: POP
000005be: ISZERO
000005bf: DUP1
000005c0: ISZERO
000005c1: PUSH2 0x05ce
000005c4: JUMPI
000005c5: RETURNDATASIZE
000005c6: PUSH1 0x00
000005c8: DUP1
000005c9: RETURNDATACOPY
000005ca: RETURNDATASIZE
000005cb: PUSH1 0x00
000005cd: REVERT
000005ce: JUMPDEST
000005cf: POP
000005d0: PUSH1 0x40
000005d2: DUP1
000005d3: MLOAD
000005d4: DUP3
000005d5: DUP2
000005d6: MSTORE
000005d7: SWAP1
000005d8: MLOAD
000005d9: CALLER
000005da: SWAP2
000005db: PUSH32 0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65
000005fc: SWAP2
000005fd: SWAP1
000005fe: DUP2
000005ff: SWAP1
00000600: SUB
00000601: PUSH1 0x20
00000603: ADD
00000604: SWAP1
00000605: LOG2
00000606: POP
00000607: JUMP
00000608: JUMPDEST
00000609: PUSH1 0x05
0000060b: SLOAD
0000060c: PUSH1 0xff
0000060e: AND
0000060f: DUP2
00000610: JUMP
00000611: JUMPDEST
00000612: CALLER
00000613: PUSH1 0x00
00000615: DUP2
00000616: DUP2
00000617: MSTORE
00000618: PUSH1 0x01
0000061a: PUSH1 0x20
0000061c: SWAP1
0000061d: DUP2
0000061e: MSTORE
0000061f: PUSH1 0x40
00000621: DUP1
00000622: DUP4
00000623: KECCAK256
00000624: PUSH1 0x01
00000626: PUSH1 0x01
00000628: PUSH1 0xa0
0000062a: SHL
0000062b: SUB
0000062c: DUP8
0000062d: AND
0000062e: DUP5
0000062f: MSTORE
00000630: SWAP1
00000631: SWAP2
00000632: MSTORE
00000633: DUP2
00000634: KECCAK256
00000635: SLOAD
00000636: SWAP1
00000637: SWAP2
00000638: PUSH2 0x051c
0000063b: SWAP2
0000063c: DUP6
0000063d: SWAP1
0000063e: PUSH2 0x0573
00000641: SWAP1
00000642: DUP7
00000643: PUSH4 0xffffffff
00000648: PUSH2 0x0988
0000064b: AND
0000064c: JUMP
0000064d: JUMPDEST
0000064e: PUSH1 0x01
00000650: PUSH1 0x01
00000652: PUSH1 0xa0
00000654: SHL
00000655: SUB
00000656: AND
00000657: PUSH1 0x00
00000659: SWAP1
0000065a: DUP2
0000065b: MSTORE
0000065c: PUSH1 0x20
0000065e: DUP2
0000065f: SWAP1
00000660: MSTORE
00000661: PUSH1 0x40
00000663: SWAP1
00000664: KECCAK256
00000665: SLOAD
00000666: SWAP1
00000667: JUMP
00000668: JUMPDEST
00000669: PUSH1 0x04
0000066b: DUP1
0000066c: SLOAD
0000066d: PUSH1 0x40
0000066f: DUP1
00000670: MLOAD
00000671: PUSH1 0x20
00000673: PUSH1 0x02
00000675: PUSH1 0x01
00000677: DUP6
00000678: AND
00000679: ISZERO
0000067a: PUSH2 0x0100
0000067d: MUL
0000067e: PUSH1 0x00
00000680: NOT
00000681: ADD
00000682: SWAP1
00000683: SWAP5
00000684: AND
00000685: SWAP4
00000686: SWAP1
00000687: SWAP4
00000688: DIV
00000689: PUSH1 0x1f
0000068b: DUP2
0000068c: ADD
0000068d: DUP5
0000068e: SWAP1
0000068f: DIV
00000690: DUP5
00000691: MUL
00000692: DUP3
00000693: ADD
00000694: DUP5
00000695: ADD
00000696: SWAP1
00000697: SWAP3
00000698: MSTORE
00000699: DUP2
0000069a: DUP2
0000069b: MSTORE
0000069c: SWAP3
0000069d: SWAP2
0000069e: DUP4
0000069f: ADD
000006a0: DUP3
000006a1: DUP3
000006a2: DUP1
000006a3: ISZERO
000006a4: PUSH2 0x0507
000006a7: JUMPI
000006a8: DUP1
000006a9: PUSH1 0x1f
000006ab: LT
000006ac: PUSH2 0x04dc
000006af: JUMPI
000006b0: PUSH2 0x0100
000006b3: DUP1
000006b4: DUP4
000006b5: SLOAD
000006b6: DIV
000006b7: MUL
000006b8: DUP4
000006b9: MSTORE
000006ba: SWAP2
000006bb: PUSH1 0x20
000006bd: ADD
000006be: SWAP2
000006bf: PUSH2 0x0507
000006c2: JUMP
000006c3: JUMPDEST
000006c4: CALLER
000006c5: PUSH1 0x00
000006c7: DUP2
000006c8: DUP2
000006c9: MSTORE
000006ca: PUSH1 0x01
000006cc: PUSH1 0x20
000006ce: SWAP1
000006cf: DUP2
000006d0: MSTORE
000006d1: PUSH1 0x40
000006d3: DUP1
000006d4: DUP4
000006d5: KECCAK256
000006d6: PUSH1 0x01
000006d8: PUSH1 0x01
000006da: PUSH1 0xa0
000006dc: SHL
000006dd: SUB
000006de: DUP8
000006df: AND
000006e0: DUP5
000006e1: MSTORE
000006e2: SWAP1
000006e3: SWAP2
000006e4: MSTORE
000006e5: DUP2
000006e6: KECCAK256
000006e7: SLOAD
000006e8: SWAP1
000006e9: SWAP2
000006ea: PUSH2 0x051c
000006ed: SWAP2
000006ee: DUP6
000006ef: SWAP1
000006f0: PUSH2 0x0573
000006f3: SWAP1
000006f4: DUP7
000006f5: PUSH4 0xffffffff
000006fa: PUSH2 0x0973
000006fd: AND
000006fe: JUMP
000006ff: JUMPDEST
00000700: PUSH1 0x00
00000702: PUSH2 0x051c
00000705: CALLER
00000706: DUP5
00000707: DUP5
00000708: PUSH2 0x08a8
0000070b: JUMP
0000070c: JUMPDEST
0000070d: PUSH2 0x0716
00000710: CALLER
00000711: CALLVALUE
00000712: PUSH2 0x09a1
00000715: JUMP
00000716: JUMPDEST
00000717: PUSH1 0x40
00000719: DUP1
0000071a: MLOAD
0000071b: CALLVALUE
0000071c: DUP2
0000071d: MSTORE
0000071e: SWAP1
0000071f: MLOAD
00000720: CALLER
00000721: SWAP2
00000722: PUSH32 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c
00000743: SWAP2
00000744: SWAP1
00000745: DUP2
00000746: SWAP1
00000747: SUB
00000748: PUSH1 0x20
0000074a: ADD
0000074b: SWAP1
0000074c: LOG2
0000074d: JUMP
0000074e: JUMPDEST
0000074f: PUSH1 0x01
00000751: PUSH1 0x01
00000753: PUSH1 0xa0
00000755: SHL
00000756: SUB
00000757: SWAP2
00000758: DUP3
00000759: AND
0000075a: PUSH1 0x00
0000075c: SWAP1
0000075d: DUP2
0000075e: MSTORE
0000075f: PUSH1 0x01
00000761: PUSH1 0x20
00000763: SWAP1
00000764: DUP2
00000765: MSTORE
00000766: PUSH1 0x40
00000768: DUP1
00000769: DUP4
0000076a: KECCAK256
0000076b: SWAP4
0000076c: SWAP1
0000076d: SWAP5
0000076e: AND
0000076f: DUP3
00000770: MSTORE
00000771: SWAP2
00000772: SWAP1
00000773: SWAP2
00000774: MSTORE
00000775: KECCAK256
00000776: SLOAD
00000777: SWAP1
00000778: JUMP
00000779: JUMPDEST
0000077a: PUSH1 0x01
0000077c: PUSH1 0x01
0000077e: PUSH1 0xa0
00000780: SHL
00000781: SUB
00000782: DUP3
00000783: AND
00000784: PUSH2 0x078c
00000787: JUMPI
00000788: PUSH1 0x00
0000078a: DUP1
0000078b: REVERT
0000078c: JUMPDEST
0000078d: PUSH1 0x02
0000078f: SLOAD
00000790: PUSH2 0x079f
00000793: SWAP1
00000794: DUP3
00000795: PUSH4 0xffffffff
0000079a: PUSH2 0x0973
0000079d: AND
0000079e: JUMP
0000079f: JUMPDEST
000007a0: PUSH1 0x02
000007a2: SSTORE
000007a3: PUSH1 0x01
000007a5: PUSH1 0x01
000007a7: PUSH1 0xa0
000007a9: SHL
000007aa: SUB
000007ab: DUP3
000007ac: AND
000007ad: PUSH1 0x00
000007af: SWAP1
000007b0: DUP2
000007b1: MSTORE
000007b2: PUSH1 0x20
000007b4: DUP2
000007b5: SWAP1
000007b6: MSTORE
000007b7: PUSH1 0x40
000007b9: SWAP1
000007ba: KECCAK256
000007bb: SLOAD
000007bc: PUSH2 0x07cb
000007bf: SWAP1
000007c0: DUP3
000007c1: PUSH4 0xffffffff
000007c6: PUSH2 0x0973
000007c9: AND
000007ca: JUMP
000007cb: JUMPDEST
000007cc: PUSH1 0x01
000007ce: PUSH1 0x01
000007d0: PUSH1 0xa0
000007d2: SHL
000007d3: SUB
000007d4: DUP4
000007d5: AND
000007d6: PUSH1 0x00
000007d8: DUP2
000007d9: DUP2
000007da: MSTORE
000007db: PUSH1 0x20
000007dd: DUP2
000007de: DUP2
000007df: MSTORE
000007e0: PUSH1 0x40
000007e2: DUP1
000007e3: DUP4
000007e4: KECCAK256
000007e5: SWAP5
000007e6: SWAP1
000007e7: SWAP5
000007e8: SSTORE
000007e9: DUP4
000007ea: MLOAD
000007eb: DUP6
000007ec: DUP2
000007ed: MSTORE
000007ee: SWAP4
000007ef: MLOAD
000007f0: SWAP2
000007f1: SWAP4
000007f2: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00000813: SWAP3
00000814: SWAP1
00000815: DUP2
00000816: SWAP1
00000817: SUB
00000818: SWAP1
00000819: SWAP2
0000081a: ADD
0000081b: SWAP1
0000081c: LOG3
0000081d: POP
0000081e: POP
0000081f: JUMP
00000820: JUMPDEST
00000821: PUSH1 0x01
00000823: PUSH1 0x01
00000825: PUSH1 0xa0
00000827: SHL
00000828: SUB
00000829: DUP3
0000082a: AND
0000082b: PUSH2 0x0833
0000082e: JUMPI
0000082f: PUSH1 0x00
00000831: DUP1
00000832: REVERT
00000833: JUMPDEST
00000834: PUSH1 0x01
00000836: PUSH1 0x01
00000838: PUSH1 0xa0
0000083a: SHL
0000083b: SUB
0000083c: DUP4
0000083d: AND
0000083e: PUSH2 0x0846
00000841: JUMPI
00000842: PUSH1 0x00
00000844: DUP1
00000845: REVERT
00000846: JUMPDEST
00000847: PUSH1 0x01
00000849: PUSH1 0x01
0000084b: PUSH1 0xa0
0000084d: SHL
0000084e: SUB
0000084f: DUP1
00000850: DUP5
00000851: AND
00000852: PUSH1 0x00
00000854: DUP2
00000855: DUP2
00000856: MSTORE
00000857: PUSH1 0x01
00000859: PUSH1 0x20
0000085b: SWAP1
0000085c: DUP2
0000085d: MSTORE
0000085e: PUSH1 0x40
00000860: DUP1
00000861: DUP4
00000862: KECCAK256
00000863: SWAP5
00000864: DUP8
00000865: AND
00000866: DUP1
00000867: DUP5
00000868: MSTORE
00000869: SWAP5
0000086a: DUP3
0000086b: MSTORE
0000086c: SWAP2
0000086d: DUP3
0000086e: SWAP1
0000086f: KECCAK256
00000870: DUP6
00000871: SWAP1
00000872: SSTORE
00000873: DUP2
00000874: MLOAD
00000875: DUP6
00000876: DUP2
00000877: MSTORE
00000878: SWAP2
00000879: MLOAD
0000087a: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
0000089b: SWAP3
0000089c: DUP2
0000089d: SWAP1
0000089e: SUB
0000089f: SWAP1
000008a0: SWAP2
000008a1: ADD
000008a2: SWAP1
000008a3: LOG3
000008a4: POP
000008a5: POP
000008a6: POP
000008a7: JUMP
000008a8: JUMPDEST
000008a9: PUSH1 0x01
000008ab: PUSH1 0x01
000008ad: PUSH1 0xa0
000008af: SHL
000008b0: SUB
000008b1: DUP3
000008b2: AND
000008b3: PUSH2 0x08bb
000008b6: JUMPI
000008b7: PUSH1 0x00
000008b9: DUP1
000008ba: REVERT
000008bb: JUMPDEST
000008bc: PUSH1 0x01
000008be: PUSH1 0x01
000008c0: PUSH1 0xa0
000008c2: SHL
000008c3: SUB
000008c4: DUP4
000008c5: AND
000008c6: PUSH1 0x00
000008c8: SWAP1
000008c9: DUP2
000008ca: MSTORE
000008cb: PUSH1 0x20
000008cd: DUP2
000008ce: SWAP1
000008cf: MSTORE
000008d0: PUSH1 0x40
000008d2: SWAP1
000008d3: KECCAK256
000008d4: SLOAD
000008d5: PUSH2 0x08e4
000008d8: SWAP1
000008d9: DUP3
000008da: PUSH4 0xffffffff
000008df: PUSH2 0x0973
000008e2: AND
000008e3: JUMP
000008e4: JUMPDEST
000008e5: PUSH1 0x01
000008e7: PUSH1 0x01
000008e9: PUSH1 0xa0
000008eb: SHL
000008ec: SUB
000008ed: DUP1
000008ee: DUP6
000008ef: AND
000008f0: PUSH1 0x00
000008f2: SWAP1
000008f3: DUP2
000008f4: MSTORE
000008f5: PUSH1 0x20
000008f7: DUP2
000008f8: SWAP1
000008f9: MSTORE
000008fa: PUSH1 0x40
000008fc: DUP1
000008fd: DUP3
000008fe: KECCAK256
000008ff: SWAP4
00000900: SWAP1
00000901: SWAP4
00000902: SSTORE
00000903: SWAP1
00000904: DUP5
00000905: AND
00000906: DUP2
00000907: MSTORE
00000908: KECCAK256
00000909: SLOAD
0000090a: PUSH2 0x0919
0000090d: SWAP1
0000090e: DUP3
0000090f: PUSH4 0xffffffff
00000914: PUSH2 0x0988
00000917: AND
00000918: JUMP
00000919: JUMPDEST
0000091a: PUSH1 0x01
0000091c: PUSH1 0x01
0000091e: PUSH1 0xa0
00000920: SHL
00000921: SUB
00000922: DUP1
00000923: DUP5
00000924: AND
00000925: PUSH1 0x00
00000927: DUP2
00000928: DUP2
00000929: MSTORE
0000092a: PUSH1 0x20
0000092c: DUP2
0000092d: DUP2
0000092e: MSTORE
0000092f: PUSH1 0x40
00000931: SWAP2
00000932: DUP3
00000933: SWAP1
00000934: KECCAK256
00000935: SWAP5
00000936: SWAP1
00000937: SWAP5
00000938: SSTORE
00000939: DUP1
0000093a: MLOAD
0000093b: DUP6
0000093c: DUP2
0000093d: MSTORE
0000093e: SWAP1
0000093f: MLOAD
00000940: SWAP2
00000941: SWAP4
00000942: SWAP3
00000943: DUP8
00000944: AND
00000945: SWAP3
00000946: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00000967: SWAP3
00000968: SWAP2
00000969: DUP3
0000096a: SWAP1
0000096b: SUB
0000096c: ADD
0000096d: SWAP1
0000096e: LOG3
0000096f: POP
00000970: POP
00000971: POP
00000972: JUMP
00000973: JUMPDEST
00000974: PUSH1 0x00
00000976: DUP3
00000977: DUP3
00000978: GT
00000979: ISZERO
0000097a: PUSH2 0x0982
0000097d: JUMPI
0000097e: PUSH1 0x00
00000980: DUP1
00000981: REVERT
00000982: JUMPDEST
00000983: POP
00000984: SWAP1
00000985: SUB
00000986: SWAP1
00000987: JUMP
00000988: JUMPDEST
00000989: PUSH1 0x00
0000098b: DUP3
0000098c: DUP3
0000098d: ADD
0000098e: DUP4
0000098f: DUP2
00000990: LT
00000991: ISZERO
00000992: PUSH2 0x099a
00000995: JUMPI
00000996: PUSH1 0x00
00000998: DUP1
00000999: REVERT
0000099a: JUMPDEST
0000099b: SWAP4
0000099c: SWAP3
0000099d: POP
0000099e: POP
0000099f: POP
000009a0: JUMP
000009a1: JUMPDEST
000009a2: PUSH1 0x01
000009a4: PUSH1 0x01
000009a6: PUSH1 0xa0
000009a8: SHL
000009a9: SUB
000009aa: DUP3
000009ab: AND
000009ac: PUSH2 0x09b4
000009af: JUMPI
000009b0: PUSH1 0x00
000009b2: DUP1
000009b3: REVERT
000009b4: JUMPDEST
000009b5: PUSH1 0x02
000009b7: SLOAD
000009b8: PUSH2 0x09c7
000009bb: SWAP1
000009bc: DUP3
000009bd: PUSH4 0xffffffff
000009c2: PUSH2 0x0988
000009c5: AND
000009c6: JUMP
000009c7: JUMPDEST
000009c8: PUSH1 0x02
000009ca: SSTORE
000009cb: PUSH1 0x01
000009cd: PUSH1 0x01
000009cf: PUSH1 0xa0
000009d1: SHL
000009d2: SUB
000009d3: DUP3
000009d4: AND
000009d5: PUSH1 0x00
000009d7: SWAP1
000009d8: DUP2
000009d9: MSTORE
000009da: PUSH1 0x20
000009dc: DUP2
000009dd: SWAP1
000009de: MSTORE
000009df: PUSH1 0x40
000009e1: SWAP1
000009e2: KECCAK256
000009e3: SLOAD
000009e4: PUSH2 0x09f3
000009e7: SWAP1
000009e8: DUP3
000009e9: PUSH4 0xffffffff
000009ee: PUSH2 0x0988
000009f1: AND
000009f2: JUMP
000009f3: JUMPDEST
000009f4: PUSH1 0x01
000009f6: PUSH1 0x01
000009f8: PUSH1 0xa0
000009fa: SHL
000009fb: SUB
000009fc: DUP4
000009fd: AND
000009fe: PUSH1 0x00
00000a00: DUP2
00000a01: DUP2
00000a02: MSTORE
00000a03: PUSH1 0x20
00000a05: DUP2
00000a06: DUP2
00000a07: MSTORE
00000a08: PUSH1 0x40
00000a0a: DUP1
00000a0b: DUP4
00000a0c: KECCAK256
00000a0d: SWAP5
00000a0e: SWAP1
00000a0f: SWAP5
00000a10: SSTORE
00000a11: DUP4
00000a12: MLOAD
00000a13: DUP6
00000a14: DUP2
00000a15: MSTORE
00000a16: SWAP4
00000a17: MLOAD
00000a18: SWAP3
00000a19: SWAP4
00000a1a: SWAP2
00000a1b: SWAP3
00000a1c: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00000a3d: SWAP3
00000a3e: DUP2
00000a3f: SWAP1
00000a40: SUB
00000a41: SWAP1
00000a42: SWAP2
00000a43: ADD
00000a44: SWAP1
00000a45: LOG3
00000a46: POP
00000a47: POP
00000a48: JUMP
00000a49: INVALID
00000a4a: LOG2
00000a4b: PUSH6 0x627a7a723158
00000a52: KECCAK256
00000a53: UNKNOWN(0xA8)
00000a54: MSTORE
00000a55: STOP
00000a56: UNKNOWN(0x26)
00000a57: UNKNOWN(0xE8)
00000a58: UNKNOWN(0xAB)
00000a59: DIFFICULTY
00000a5a: UNKNOWN(0xCC)
00000a5b: UNKNOWN(0xC0)
00000a5c: TLOAD
00000a5d: SIGNEXTEND
00000a5e: JUMPI
00000a5f: CODECOPY
00000a60: UNKNOWN(0xEC)
00000a61: UNKNOWN(0xD0)
00000a62: TSTORE
00000a63: LOG2
00000a64: CALLDATALOAD
00000a65: PUSH4 0x639ced81
00000a6a: PUSH12 0xd7f9900801b0dd6164736f6c
00000a77: PUSH4 0x4300050b
00000a7c: STOP
00000a7d: ORIGIN

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": "0xa457c2d7",
            "selector": "0xa457c2d7",
            "calldata_variants": [
                "0xa457c2d7",
                "0xa457c2d70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa9059cbb",
            "selector": "0xa9059cbb",
            "calldata_variants": [
                "0xa9059cbb",
                "0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd0e30db0",
            "selector": "0xd0e30db0",
            "calldata_variants": [
                "0xd0e30db0",
                "0xd0e30db00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "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": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 2685,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xc1e61ad32efd97044e2bb4d17ab3293db39dbc2c487bfb9a88b9df946108fbfc
call_targets: 0xa45b966996374e9e65ab991c6fe4bfce3a56dde8
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xc1e61ad32efd97044e2bb4d17ab3293db39dbc2c487bfb9a88b9df946108fbfc",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xa45b966996374e9e65ab991c6fe4bfce3a56dde8"
    ],
    "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": "0xa457c2d7",
            "selector": "0xa457c2d7",
            "calldata_variants": [
                "0xa457c2d7",
                "0xa457c2d70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa9059cbb",
            "selector": "0xa9059cbb",
            "calldata_variants": [
                "0xa9059cbb",
                "0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd0e30db0",
            "selector": "0xd0e30db0",
            "calldata_variants": [
                "0xd0e30db0",
                "0xd0e30db00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "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": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1063,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1464,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [
        {
            "pc": 2685,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 2
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xc1e61ad32efd97044e2bb4d17ab3293db39dbc2c487bfb9a88b9df946108fbfc
call_targets: 0xa45b966996374e9e65ab991c6fe4bfce3a56dde8
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xc1e61ad32efd97044e2bb4d17ab3293db39dbc2c487bfb9a88b9df946108fbfc",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xa45b966996374e9e65ab991c6fe4bfce3a56dde8"
    ],
    "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": "0xa457c2d7",
            "selector": "0xa457c2d7",
            "calldata_variants": [
                "0xa457c2d7",
                "0xa457c2d70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa9059cbb",
            "selector": "0xa9059cbb",
            "calldata_variants": [
                "0xa9059cbb",
                "0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd0e30db0",
            "selector": "0xd0e30db0",
            "calldata_variants": [
                "0xd0e30db0",
                "0xd0e30db00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "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": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1063,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1464,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": [
        {
            "pc": 2685,
            "type": "tx_origin_used"
        }
    ]
}