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

Analysis Run

44ac7875-1c5d-46d7-abfc-c41ed56bea65

failed
Chain ID
1
Address
Block Number
Created
Sat, Jan 3, 2026 2:35 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
31433 report.consolidate complete 1 / 1 3 months ago
77224 artifact.fetch failed 1 / 3 1 week ago
77225 tool.cast_disasm complete 1 / 3 1 week ago
77226 analysis.bundle complete 1 / 3 1 week ago
77227 capability.graph complete 1 / 3 1 week ago
77228 detector.run complete 1 / 3 1 week ago
77229 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 path found in AUDIT_BUNDLE.txt.
View stderr
[codex:118900] OpenAI Codex v0.77.0 (research preview)
[codex:118900] --------
[codex:118900] workdir: /tmp/codex-multi-at3bub2j
[codex:118900] model: gpt-5.2-codex
[codex:118900] provider: openai
[codex:118900] approval: never
[codex:118900] sandbox: read-only
[codex:118900] reasoning effort: xhigh
[codex:118900] reasoning summaries: auto
[codex:118900] session id: 019b81b2-db38-7b22-84f3-45935a9dffb7
[codex:118900] --------
[codex:118900] user
[codex:118900] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:118900] 
[codex:118900] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:118900] 
[codex:118900] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:118900] - Gas inefficiency, code quality, naming, or best practices
[codex:118900] - Theoretical vulnerabilities without a clear extraction path
[codex:118900] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:118900] - Front-running unless it enables theft beyond MEV
[codex:118900] - DoS, griefing, or issues that don't result in attacker profit
[codex:118900] - Missing events, view function issues, or informational findings
[codex:118900] 
[codex:118900] HIGH-VALUE PATTERNS TO HUNT:
[codex:118900] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:118900] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:118900] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:118900] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:118900] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:118900] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:118900] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:118900] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:118900] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:118900] 
[codex:118900] For each finding, you MUST provide:
[codex:118900] 1. Exact file and line numbers of vulnerable code
[codex:118900] 2. Step-by-step exploit transaction sequence
[codex:118900] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:118900] 
[codex:118900] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:118900] 
[codex:118900] Output MUST be valid JSON matching the provided schema.
[codex:118900] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:118900] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:118900] mcp startup: no servers
[codex:118900] 
[codex:118900] thinking
[codex:118900] **Preparing to analyze AUDIT_BUNDLE**
[codex:118900] exec
[codex:118900] /bin/bash -lc ls in /tmp/codex-multi-at3bub2j succeeded in 7ms:
[codex:118900] AUDIT_BUNDLE.txt
[codex:118900] codex-output-schema.json
[codex:118900] contracts
[codex:118900] exec
[codex:118900] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-at3bub2j succeeded in 5ms:
[codex:118900] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:118900] 
[codex:118900] ================================================================================
[codex:118900] FILE: contracts/Contract.sol
[codex:118900] ================================================================================
[codex:118900] pragma solidity ^0.4.11;
[codex:118900] 
[codex:118900] contract Ownable {
[codex:118900]   address public owner;
[codex:118900] 
[codex:118900] 
[codex:118900]   /**
[codex:118900]    * @dev The Ownable constructor sets the original `owner` of the contract to the sender
[codex:118900]    * account.
[codex:118900]    */
[codex:118900]   function Ownable() {
[codex:118900]     owner = msg.sender;
[codex:118900]   }
[codex:118900] 
[codex:118900] 
[codex:118900] 
[codex:118900] thinking
[codex:118900] **Continuing to read AUDIT_BUNDLE file**
[codex:118900] exec
[codex:118900] /bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-at3bub2j succeeded in 6ms:
[codex:118900] ///////////////////
[codex:118900] // ERC20 Methods
[codex:118900] ///////////////////
[codex:118900] 
[codex:118900]     /// @notice Send `_amount` tokens to `_to` from `msg.sender`
[codex:118900]     /// @param _to The address of the recipient
[codex:118900]     /// @param _amount The amount of tokens to be transferred
[codex:118900]     /// @return Whether the transfer was successful or not
[codex:118900]     function transfer(address _to, uint256 _amount) returns (bool success) {
[codex:118900]         if (!transfersEnabled) throw;
[codex:118900]         return doTransfer(msg.sender, _to, _amount);
[codex:118900]     }
[codex:118900] 
[codex:118900]     /// @notice Send `_amount` tokens to `_to` from `_from` on the condition it
[codex:118900]     ///  is approved by `_from`
[codex:118900]     /// @param _from The address holding the tokens being transferred
[codex:118900]     /// @param _to The address of the recipient
[codex:118900]     /// @param _amount The amount of tokens to be transferred
[codex:118900]     /// @return True if the transfer was successful
[codex:118900]     function transferFrom(address _from, address _to, uint256 _amount
[codex:118900] exec
[codex:118900] /bin/bash -lc "sed -n '400,800p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-at3bub2j succeeded in 6ms:
[codex:118900]             }
[codex:118900] 
[codex:118900]         // This will return the expected totalSupply during normal situations
[codex:118900]         } else {
[codex:118900]             return getValueAt(totalSupplyHistory, _blockNumber);
[codex:118900]         }
[codex:118900]     }
[codex:118900] 
[codex:118900] ////////////////
[codex:118900] // Clone Token Method
[codex:118900] ////////////////
[codex:118900] 
[codex:118900]     /// @notice Creates a new clone token with the initial distribution being
[codex:118900]     ///  this token at `_snapshotBlock`
[codex:118900]     /// @param _cloneTokenName Name of the clone token
[codex:118900]     /// @param _cloneDecimalUnits Number of decimals of the smallest unit
[codex:118900]     /// @param _cloneTokenSymbol Symbol of the clone token
[codex:118900]     /// @param _snapshotBlock Block when the distribution of the parent token is
[codex:118900]     ///  copied to set the initial distribution of the new clone token;
[codex:118900]     ///  if the block is zero than the actual block, the current block is used
[codex:118900] 
[codex:118900] thinking
[codex:118900] **Verifying AUDIT_BUNDLE completion**
[codex:118900] exec
[codex:118900] /bin/bash -lc "sed -n '800,1000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-at3bub2j succeeded in 6ms:
[codex:118900] 
[codex:118900] 
[codex:118900] 
[codex:118900] 
[codex:118900] thinking
[codex:118900] **Analyzing potential vulnerabilities in ProfitSharing and MiniMeToken**
[codex:118900] thinking
[codex:118900] **Examining reentrancy risks via token callbacks**
[codex:118900] 
[codex:118900] This chunk digs into subtle reentrancy possibilities caused by external calls to MiniMeToken’s balance checks during claimDividend, especially if the token has a parent token that’s malicious or attacker-controlled. I’m considering how calls to balanceOfAt or totalSupplyAt before updating claimed flags could let an attacker reenter and claim multiple times, potentially extracting extra profit if the token or its parent hooks back into ProfitSharing. It’s tricky since this requires attacker control of token or parent token contracts, but I want to be thorough in following these call paths and their implications.
[codex:118900] thinking
[codex:118900] **Evaluating token parent relationships and claim logic**
[codex:118900] 
[codex:118900] This part explores how ProfitSharing’s use of MiniMeToken and its parent tokens might enable reentrancy if a malicious parent token exists, though such scenarios seem unlikely without attacker control over deployed tokens. I’m reviewing storage and mapping access to confirm claim flags update correctly and considering token controller privileges and SafeMath use, concluding no straightforward profit exploits emerge here.
[codex:118900] exec
[codex:118900] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-at3bub2j succeeded in 5ms:
[codex:118900] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:118900] 
[codex:118900] thinking
[codex:118900] **Preparing final JSON report**
[codex:118900] codex
[codex:118900] {"no_findings":true,"summary":"No concrete, exploitable profit path found in AUDIT_BUNDLE.txt.","findings":[]}
[codex:118900] tokens used
[codex:118900] 27,516
[codex:118900] {"no_findings":true,"summary":"No concrete, exploitable profit path found in AUDIT_BUNDLE.txt.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-03T02:35:08.050015+00:00",
        "returncode": 0
    },
    "summary": "No concrete, exploitable profit path found in AUDIT_BUNDLE.txt.",
    "raw_final": {
        "summary": "No concrete, exploitable profit path found in AUDIT_BUNDLE.txt.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
1
CALL-family (heavy)
4
EXT*/BALANCE
4
Total opcodes
1932
Flags
create_opcodes_present
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x007d
0000000a: JUMPI
0000000b: PUSH4 0xffffffff
00000010: PUSH1 0xe0
00000012: PUSH1 0x02
00000014: EXP
00000015: PUSH1 0x00
00000017: CALLDATALOAD
00000018: DIV
00000019: AND
0000001a: PUSH4 0x22c9427e
0000001f: DUP2
00000020: EQ
00000021: PUSH2 0x007f
00000024: JUMPI
00000025: DUP1
00000026: PUSH4 0x30e1f16f
0000002b: EQ
0000002c: PUSH2 0x0094
0000002f: JUMPI
00000030: DUP1
00000031: PUSH4 0x6423b5f0
00000036: EQ
00000037: PUSH2 0x00a6
0000003a: JUMPI
0000003b: DUP1
0000003c: PUSH4 0x7c1a35d7
00000041: EQ
00000042: PUSH2 0x00d2
00000045: JUMPI
00000046: DUP1
00000047: PUSH4 0x814b3fe0
0000004c: EQ
0000004d: PUSH2 0x00f4
00000050: JUMPI
00000051: DUP1
00000052: PUSH4 0x8da5cb5b
00000057: EQ
00000058: PUSH2 0x013c
0000005b: JUMPI
0000005c: DUP1
0000005d: PUSH4 0x9abd3572
00000062: EQ
00000063: PUSH2 0x0168
00000066: JUMPI
00000067: DUP1
00000068: PUSH4 0xa289d187
0000006d: EQ
0000006e: PUSH2 0x017d
00000071: JUMPI
00000072: DUP1
00000073: PUSH4 0xf2fde38b
00000078: EQ
00000079: PUSH2 0x0187
0000007c: JUMPI
0000007d: JUMPDEST
0000007e: INVALID
0000007f: JUMPDEST
00000080: CALLVALUE
00000081: ISZERO
00000082: PUSH2 0x0087
00000085: JUMPI
00000086: INVALID
00000087: JUMPDEST
00000088: PUSH2 0x0092
0000008b: PUSH1 0x04
0000008d: CALLDATALOAD
0000008e: PUSH2 0x01a5
00000091: JUMP
00000092: JUMPDEST
00000093: STOP
00000094: JUMPDEST
00000095: CALLVALUE
00000096: ISZERO
00000097: PUSH2 0x009c
0000009a: JUMPI
0000009b: INVALID
0000009c: JUMPDEST
0000009d: PUSH2 0x0092
000000a0: PUSH2 0x0401
000000a3: JUMP
000000a4: JUMPDEST
000000a5: STOP
000000a6: JUMPDEST
000000a7: CALLVALUE
000000a8: ISZERO
000000a9: PUSH2 0x00ae
000000ac: JUMPI
000000ad: INVALID
000000ae: JUMPDEST
000000af: PUSH2 0x00b6
000000b2: PUSH2 0x0501
000000b5: JUMP
000000b6: JUMPDEST
000000b7: PUSH1 0x40
000000b9: DUP1
000000ba: MLOAD
000000bb: PUSH1 0x01
000000bd: PUSH1 0xa0
000000bf: PUSH1 0x02
000000c1: EXP
000000c2: SUB
000000c3: SWAP1
000000c4: SWAP3
000000c5: AND
000000c6: DUP3
000000c7: MSTORE
000000c8: MLOAD
000000c9: SWAP1
000000ca: DUP2
000000cb: SWAP1
000000cc: SUB
000000cd: PUSH1 0x20
000000cf: ADD
000000d0: SWAP1
000000d1: RETURN
000000d2: JUMPDEST
000000d3: CALLVALUE
000000d4: ISZERO
000000d5: PUSH2 0x00da
000000d8: JUMPI
000000d9: INVALID
000000da: JUMPDEST
000000db: PUSH2 0x00e2
000000de: PUSH2 0x0510
000000e1: JUMP
000000e2: JUMPDEST
000000e3: PUSH1 0x40
000000e5: DUP1
000000e6: MLOAD
000000e7: SWAP2
000000e8: DUP3
000000e9: MSTORE
000000ea: MLOAD
000000eb: SWAP1
000000ec: DUP2
000000ed: SWAP1
000000ee: SUB
000000ef: PUSH1 0x20
000000f1: ADD
000000f2: SWAP1
000000f3: RETURN
000000f4: JUMPDEST
000000f5: CALLVALUE
000000f6: ISZERO
000000f7: PUSH2 0x00fc
000000fa: JUMPI
000000fb: INVALID
000000fc: JUMPDEST
000000fd: PUSH2 0x0107
00000100: PUSH1 0x04
00000102: CALLDATALOAD
00000103: PUSH2 0x0516
00000106: JUMP
00000107: JUMPDEST
00000108: PUSH1 0x40
0000010a: DUP1
0000010b: MLOAD
0000010c: SWAP7
0000010d: DUP8
0000010e: MSTORE
0000010f: PUSH1 0x20
00000111: DUP8
00000112: ADD
00000113: SWAP6
00000114: SWAP1
00000115: SWAP6
00000116: MSTORE
00000117: DUP6
00000118: DUP6
00000119: ADD
0000011a: SWAP4
0000011b: SWAP1
0000011c: SWAP4
0000011d: MSTORE
0000011e: PUSH1 0x60
00000120: DUP6
00000121: ADD
00000122: SWAP2
00000123: SWAP1
00000124: SWAP2
00000125: MSTORE
00000126: PUSH1 0x80
00000128: DUP5
00000129: ADD
0000012a: MSTORE
0000012b: ISZERO
0000012c: ISZERO
0000012d: PUSH1 0xa0
0000012f: DUP4
00000130: ADD
00000131: MSTORE
00000132: MLOAD
00000133: SWAP1
00000134: DUP2
00000135: SWAP1
00000136: SUB
00000137: PUSH1 0xc0
00000139: ADD
0000013a: SWAP1
0000013b: RETURN
0000013c: JUMPDEST
0000013d: CALLVALUE
0000013e: ISZERO
0000013f: PUSH2 0x0144
00000142: JUMPI
00000143: INVALID
00000144: JUMPDEST
00000145: PUSH2 0x00b6
00000148: PUSH2 0x055f
0000014b: JUMP
0000014c: JUMPDEST
0000014d: PUSH1 0x40
0000014f: DUP1
00000150: MLOAD
00000151: PUSH1 0x01
00000153: PUSH1 0xa0
00000155: PUSH1 0x02
00000157: EXP
00000158: SUB
00000159: SWAP1
0000015a: SWAP3
0000015b: AND
0000015c: DUP3
0000015d: MSTORE
0000015e: MLOAD
0000015f: SWAP1
00000160: DUP2
00000161: SWAP1
00000162: SUB
00000163: PUSH1 0x20
00000165: ADD
00000166: SWAP1
00000167: RETURN
00000168: JUMPDEST
00000169: CALLVALUE
0000016a: ISZERO
0000016b: PUSH2 0x0170
0000016e: JUMPI
0000016f: INVALID
00000170: JUMPDEST
00000171: PUSH2 0x0092
00000174: PUSH1 0x04
00000176: CALLDATALOAD
00000177: PUSH2 0x056e
0000017a: JUMP
0000017b: JUMPDEST
0000017c: STOP
0000017d: JUMPDEST
0000017e: PUSH2 0x0092
00000181: PUSH2 0x074a
00000184: JUMP
00000185: JUMPDEST
00000186: STOP
00000187: JUMPDEST
00000188: CALLVALUE
00000189: ISZERO
0000018a: PUSH2 0x018f
0000018d: JUMPI
0000018e: INVALID
0000018f: JUMPDEST
00000190: PUSH2 0x0092
00000193: PUSH1 0x01
00000195: PUSH1 0xa0
00000197: PUSH1 0x02
00000199: EXP
0000019a: SUB
0000019b: PUSH1 0x04
0000019d: CALLDATALOAD
0000019e: AND
0000019f: PUSH2 0x08ea
000001a2: JUMP
000001a3: JUMPDEST
000001a4: STOP
000001a5: JUMPDEST
000001a6: PUSH1 0x00
000001a8: DUP1
000001a9: SLOAD
000001aa: DUP2
000001ab: SWAP1
000001ac: DUP2
000001ad: SWAP1
000001ae: DUP2
000001af: SWAP1
000001b0: DUP2
000001b1: SWAP1
000001b2: CALLER
000001b3: PUSH1 0x01
000001b5: PUSH1 0xa0
000001b7: PUSH1 0x02
000001b9: EXP
000001ba: SUB
000001bb: SWAP1
000001bc: DUP2
000001bd: AND
000001be: SWAP2
000001bf: AND
000001c0: EQ
000001c1: PUSH2 0x01ca
000001c4: JUMPI
000001c5: PUSH1 0x00
000001c7: PUSH1 0x00
000001c9: REVERT
000001ca: JUMPDEST
000001cb: PUSH1 0x03
000001cd: SLOAD
000001ce: DUP7
000001cf: SWAP1
000001d0: DUP2
000001d1: LT
000001d2: PUSH2 0x01db
000001d5: JUMPI
000001d6: PUSH1 0x00
000001d8: PUSH1 0x00
000001da: REVERT
000001db: JUMPDEST
000001dc: PUSH1 0x03
000001de: DUP1
000001df: SLOAD
000001e0: DUP9
000001e1: SWAP1
000001e2: DUP2
000001e3: LT
000001e4: PUSH2 0x01e9
000001e7: JUMPI
000001e8: INVALID
000001e9: JUMPDEST
000001ea: SWAP1
000001eb: PUSH1 0x00
000001ed: MSTORE
000001ee: PUSH1 0x20
000001f0: PUSH1 0x00
000001f2: KECCAK256
000001f3: SWAP1
000001f4: PUSH1 0x07
000001f6: MUL
000001f7: ADD
000001f8: PUSH1 0x00
000001fa: JUMPDEST
000001fb: POP
000001fc: PUSH1 0x05
000001fe: DUP2
000001ff: ADD
00000200: SLOAD
00000201: SWAP1
00000202: SWAP7
00000203: POP
00000204: PUSH1 0xff
00000206: AND
00000207: ISZERO
00000208: PUSH2 0x0211
0000020b: JUMPI
0000020c: PUSH1 0x00
0000020e: PUSH1 0x00
00000210: REVERT
00000211: JUMPDEST
00000212: PUSH2 0x0224
00000215: PUSH2 0x021c
00000218: PUSH2 0x0936
0000021b: JUMP
0000021c: JUMPDEST
0000021d: PUSH1 0x02
0000021f: SLOAD
00000220: PUSH2 0x093b
00000223: JUMP
00000224: JUMPDEST
00000225: PUSH1 0x01
00000227: DUP8
00000228: ADD
00000229: SLOAD
0000022a: LT
0000022b: PUSH2 0x0234
0000022e: JUMPI
0000022f: PUSH1 0x00
00000231: PUSH1 0x00
00000233: REVERT
00000234: JUMPDEST
00000235: PUSH1 0x01
00000237: PUSH1 0x03
00000239: DUP9
0000023a: DUP2
0000023b: SLOAD
0000023c: DUP2
0000023d: LT
0000023e: ISZERO
0000023f: ISZERO
00000240: PUSH2 0x0245
00000243: JUMPI
00000244: INVALID
00000245: JUMPDEST
00000246: SWAP1
00000247: PUSH1 0x00
00000249: MSTORE
0000024a: PUSH1 0x20
0000024c: PUSH1 0x00
0000024e: KECCAK256
0000024f: SWAP1
00000250: PUSH1 0x07
00000252: MUL
00000253: ADD
00000254: PUSH1 0x00
00000256: JUMPDEST
00000257: POP
00000258: PUSH1 0x05
0000025a: ADD
0000025b: DUP1
0000025c: SLOAD
0000025d: PUSH1 0xff
0000025f: NOT
00000260: AND
00000261: SWAP2
00000262: ISZERO
00000263: ISZERO
00000264: SWAP2
00000265: SWAP1
00000266: SWAP2
00000267: OR
00000268: SWAP1
00000269: SSTORE
0000026a: PUSH1 0x01
0000026c: SLOAD
0000026d: PUSH1 0x40
0000026f: DUP1
00000270: MLOAD
00000271: PUSH1 0x00
00000273: PUSH1 0x20
00000275: SWAP2
00000276: DUP3
00000277: ADD
00000278: DUP2
00000279: SWAP1
0000027a: MSTORE
0000027b: DUP3
0000027c: MLOAD
0000027d: PUSH1 0xe4
0000027f: PUSH1 0x02
00000281: EXP
00000282: PUSH4 0x0981b24d
00000287: MUL
00000288: DUP2
00000289: MSTORE
0000028a: NUMBER
0000028b: PUSH1 0x04
0000028d: DUP3
0000028e: ADD
0000028f: MSTORE
00000290: SWAP3
00000291: MLOAD
00000292: PUSH1 0x01
00000294: PUSH1 0xa0
00000296: PUSH1 0x02
00000298: EXP
00000299: SUB
0000029a: SWAP1
0000029b: SWAP5
0000029c: AND
0000029d: SWAP4
0000029e: PUSH4 0x981b24d0
000002a3: SWAP4
000002a4: PUSH1 0x24
000002a6: DUP1
000002a7: DUP3
000002a8: ADD
000002a9: SWAP5
000002aa: SWAP4
000002ab: SWAP2
000002ac: DUP4
000002ad: SWAP1
000002ae: SUB
000002af: ADD
000002b0: SWAP1
000002b1: DUP3
000002b2: SWAP1
000002b3: DUP8
000002b4: DUP1
000002b5: EXTCODESIZE
000002b6: ISZERO
000002b7: ISZERO
000002b8: PUSH2 0x02bd
000002bb: JUMPI
000002bc: INVALID
000002bd: JUMPDEST
000002be: PUSH2 0x02c6
000002c1: GAS
000002c2: SUB
000002c3: CALL
000002c4: ISZERO
000002c5: ISZERO
000002c6: PUSH2 0x02cb
000002c9: JUMPI
000002ca: INVALID
000002cb: JUMPDEST
000002cc: POP
000002cd: POP
000002ce: POP
000002cf: PUSH1 0x40
000002d1: MLOAD
000002d2: DUP1
000002d3: MLOAD
000002d4: SWAP1
000002d5: POP
000002d6: SWAP5
000002d7: POP
000002d8: PUSH2 0x02e9
000002db: DUP7
000002dc: PUSH1 0x02
000002de: ADD
000002df: SLOAD
000002e0: DUP8
000002e1: PUSH1 0x03
000002e3: ADD
000002e4: SLOAD
000002e5: PUSH2 0x093b
000002e8: JUMP
000002e9: JUMPDEST
000002ea: PUSH1 0x03
000002ec: SLOAD
000002ed: SWAP1
000002ee: SWAP5
000002ef: POP
000002f0: SWAP3
000002f1: POP
000002f2: PUSH2 0x02fc
000002f5: NUMBER
000002f6: PUSH1 0x01
000002f8: PUSH2 0x093b
000002fb: JUMP
000002fc: JUMPDEST
000002fd: SWAP2
000002fe: POP
000002ff: PUSH1 0x03
00000301: DUP1
00000302: SLOAD
00000303: DUP1
00000304: PUSH1 0x01
00000306: ADD
00000307: DUP3
00000308: DUP2
00000309: PUSH2 0x0312
0000030c: SWAP2
0000030d: SWAP1
0000030e: PUSH2 0x09b8
00000311: JUMP
00000312: JUMPDEST
00000313: SWAP2
00000314: PUSH1 0x00
00000316: MSTORE
00000317: PUSH1 0x20
00000319: PUSH1 0x00
0000031b: KECCAK256
0000031c: SWAP1
0000031d: PUSH1 0x07
0000031f: MUL
00000320: ADD
00000321: PUSH1 0x00
00000323: JUMPDEST
00000324: PUSH1 0xc0
00000326: PUSH1 0x40
00000328: MLOAD
00000329: SWAP1
0000032a: DUP2
0000032b: ADD
0000032c: PUSH1 0x40
0000032e: MSTORE
0000032f: DUP1
00000330: DUP7
00000331: DUP2
00000332: MSTORE
00000333: PUSH1 0x20
00000335: ADD
00000336: PUSH2 0x033d
00000339: PUSH2 0x0936
0000033c: JUMP
0000033d: JUMPDEST
0000033e: DUP2
0000033f: MSTORE
00000340: PUSH1 0x20
00000342: DUP1
00000343: DUP3
00000344: ADD
00000345: DUP11
00000346: SWAP1
00000347: MSTORE
00000348: PUSH1 0x00
0000034a: PUSH1 0x40
0000034c: DUP1
0000034d: DUP5
0000034e: ADD
0000034f: DUP3
00000350: SWAP1
00000351: MSTORE
00000352: PUSH1 0x60
00000354: DUP1
00000355: DUP6
00000356: ADD
00000357: DUP15
00000358: SWAP1
00000359: MSTORE
0000035a: PUSH1 0x80
0000035c: SWAP5
0000035d: DUP6
0000035e: ADD
0000035f: SWAP3
00000360: SWAP1
00000361: SWAP3
00000362: MSTORE
00000363: DUP5
00000364: MLOAD
00000365: DUP8
00000366: SSTORE
00000367: DUP5
00000368: DUP4
00000369: ADD
0000036a: MLOAD
0000036b: PUSH1 0x01
0000036d: DUP9
0000036e: ADD
0000036f: SSTORE
00000370: DUP5
00000371: DUP2
00000372: ADD
00000373: MLOAD
00000374: PUSH1 0x02
00000376: DUP9
00000377: ADD
00000378: SSTORE
00000379: DUP5
0000037a: DUP3
0000037b: ADD
0000037c: MLOAD
0000037d: PUSH1 0x03
0000037f: DUP9
00000380: ADD
00000381: SSTORE
00000382: DUP5
00000383: DUP5
00000384: ADD
00000385: MLOAD
00000386: PUSH1 0x04
00000388: DUP9
00000389: ADD
0000038a: SSTORE
0000038b: PUSH1 0xa0
0000038d: SWAP1
0000038e: SWAP5
0000038f: ADD
00000390: MLOAD
00000391: PUSH1 0x05
00000393: SWAP1
00000394: SWAP7
00000395: ADD
00000396: DUP1
00000397: SLOAD
00000398: PUSH1 0xff
0000039a: NOT
0000039b: AND
0000039c: SWAP7
0000039d: ISZERO
0000039e: ISZERO
0000039f: SWAP7
000003a0: SWAP1
000003a1: SWAP7
000003a2: OR
000003a3: SWAP1
000003a4: SWAP6
000003a5: SSTORE
000003a6: DUP3
000003a7: MLOAD
000003a8: DUP9
000003a9: DUP2
000003aa: MSTORE
000003ab: SWAP1
000003ac: DUP2
000003ad: ADD
000003ae: DUP11
000003af: SWAP1
000003b0: MSTORE
000003b1: DUP1
000003b2: DUP4
000003b3: ADD
000003b4: DUP12
000003b5: SWAP1
000003b6: MSTORE
000003b7: SWAP4
000003b8: DUP5
000003b9: ADD
000003ba: DUP9
000003bb: SWAP1
000003bc: MSTORE
000003bd: SWAP1
000003be: MLOAD
000003bf: CALLER
000003c0: PUSH1 0x01
000003c2: PUSH1 0xa0
000003c4: PUSH1 0x02
000003c6: EXP
000003c7: SUB
000003c8: AND
000003c9: SWAP5
000003ca: POP
000003cb: PUSH32 0x820e5e0bd7a055839c0210e84ddba311de47df61f9c489947f436bcf0f302ff1
000003ec: SWAP4
000003ed: DUP2
000003ee: SWAP1
000003ef: SUB
000003f0: SWAP1
000003f1: SWAP2
000003f2: ADD
000003f3: SWAP2
000003f4: POP
000003f5: LOG2
000003f6: JUMPDEST
000003f7: JUMPDEST
000003f8: POP
000003f9: JUMPDEST
000003fa: POP
000003fb: POP
000003fc: POP
000003fd: POP
000003fe: POP
000003ff: POP
00000400: JUMP
00000401: JUMPDEST
00000402: PUSH1 0x03
00000404: SLOAD
00000405: PUSH1 0x01
00000407: PUSH1 0xa0
00000409: PUSH1 0x02
0000040b: EXP
0000040c: SUB
0000040d: CALLER
0000040e: AND
0000040f: PUSH1 0x00
00000411: SWAP1
00000412: DUP2
00000413: MSTORE
00000414: PUSH1 0x04
00000416: PUSH1 0x20
00000418: MSTORE
00000419: PUSH1 0x40
0000041b: DUP2
0000041c: KECCAK256
0000041d: SLOAD
0000041e: SWAP1
0000041f: SWAP2
00000420: SWAP1
00000421: LT
00000422: PUSH2 0x042b
00000425: JUMPI
00000426: PUSH1 0x00
00000428: PUSH1 0x00
0000042a: REVERT
0000042b: JUMPDEST
0000042c: POP
0000042d: PUSH1 0x01
0000042f: PUSH1 0xa0
00000431: PUSH1 0x02
00000433: EXP
00000434: SUB
00000435: CALLER
00000436: AND
00000437: PUSH1 0x00
00000439: SWAP1
0000043a: DUP2
0000043b: MSTORE
0000043c: PUSH1 0x04
0000043e: PUSH1 0x20
00000440: MSTORE
00000441: PUSH1 0x40
00000443: SWAP1
00000444: KECCAK256
00000445: SLOAD
00000446: JUMPDEST
00000447: PUSH1 0x03
00000449: SLOAD
0000044a: DUP2
0000044b: LT
0000044c: ISZERO
0000044d: PUSH2 0x04fd
00000450: JUMPI
00000451: PUSH1 0x03
00000453: DUP1
00000454: SLOAD
00000455: DUP3
00000456: SWAP1
00000457: DUP2
00000458: LT
00000459: PUSH2 0x045e
0000045c: JUMPI
0000045d: INVALID
0000045e: JUMPDEST
0000045f: SWAP1
00000460: PUSH1 0x00
00000462: MSTORE
00000463: PUSH1 0x20
00000465: PUSH1 0x00
00000467: KECCAK256
00000468: SWAP1
00000469: PUSH1 0x07
0000046b: MUL
0000046c: ADD
0000046d: PUSH1 0x00
0000046f: JUMPDEST
00000470: POP
00000471: PUSH1 0x01
00000473: PUSH1 0xa0
00000475: PUSH1 0x02
00000477: EXP
00000478: SUB
00000479: CALLER
0000047a: AND
0000047b: PUSH1 0x00
0000047d: SWAP1
0000047e: DUP2
0000047f: MSTORE
00000480: PUSH1 0x06
00000482: SWAP2
00000483: SWAP1
00000484: SWAP2
00000485: ADD
00000486: PUSH1 0x20
00000488: MSTORE
00000489: PUSH1 0x40
0000048b: SWAP1
0000048c: KECCAK256
0000048d: SLOAD
0000048e: PUSH1 0xff
00000490: AND
00000491: ISZERO
00000492: DUP1
00000493: ISZERO
00000494: PUSH2 0x04c1
00000497: JUMPI
00000498: POP
00000499: PUSH1 0x03
0000049b: DUP1
0000049c: SLOAD
0000049d: DUP3
0000049e: SWAP1
0000049f: DUP2
000004a0: LT
000004a1: PUSH2 0x04a6
000004a4: JUMPI
000004a5: INVALID
000004a6: JUMPDEST
000004a7: SWAP1
000004a8: PUSH1 0x00
000004aa: MSTORE
000004ab: PUSH1 0x20
000004ad: PUSH1 0x00
000004af: KECCAK256
000004b0: SWAP1
000004b1: PUSH1 0x07
000004b3: MUL
000004b4: ADD
000004b5: PUSH1 0x00
000004b7: JUMPDEST
000004b8: POP
000004b9: PUSH1 0x05
000004bb: ADD
000004bc: SLOAD
000004bd: PUSH1 0xff
000004bf: AND
000004c0: ISZERO
000004c1: JUMPDEST
000004c2: ISZERO
000004c3: PUSH2 0x04f3
000004c6: JUMPI
000004c7: PUSH2 0x04d1
000004ca: DUP2
000004cb: PUSH1 0x01
000004cd: PUSH2 0x0952
000004d0: JUMP
000004d1: JUMPDEST
000004d2: PUSH1 0x01
000004d4: PUSH1 0xa0
000004d6: PUSH1 0x02
000004d8: EXP
000004d9: SUB
000004da: CALLER
000004db: AND
000004dc: PUSH1 0x00
000004de: SWAP1
000004df: DUP2
000004e0: MSTORE
000004e1: PUSH1 0x04
000004e3: PUSH1 0x20
000004e5: MSTORE
000004e6: PUSH1 0x40
000004e8: SWAP1
000004e9: KECCAK256
000004ea: SSTORE
000004eb: PUSH2 0x04f3
000004ee: DUP2
000004ef: PUSH2 0x056e
000004f2: JUMP
000004f3: JUMPDEST
000004f4: JUMPDEST
000004f5: JUMPDEST
000004f6: PUSH1 0x01
000004f8: ADD
000004f9: PUSH2 0x0446
000004fc: JUMP
000004fd: JUMPDEST
000004fe: JUMPDEST
000004ff: POP
00000500: JUMP
00000501: JUMPDEST
00000502: PUSH1 0x01
00000504: SLOAD
00000505: PUSH1 0x01
00000507: PUSH1 0xa0
00000509: PUSH1 0x02
0000050b: EXP
0000050c: SUB
0000050d: AND
0000050e: DUP2
0000050f: JUMP
00000510: JUMPDEST
00000511: PUSH1 0x02
00000513: SLOAD
00000514: DUP2
00000515: JUMP
00000516: JUMPDEST
00000517: PUSH1 0x03
00000519: DUP1
0000051a: SLOAD
0000051b: DUP3
0000051c: SWAP1
0000051d: DUP2
0000051e: LT
0000051f: PUSH2 0x0524
00000522: JUMPI
00000523: INVALID
00000524: JUMPDEST
00000525: SWAP1
00000526: PUSH1 0x00
00000528: MSTORE
00000529: PUSH1 0x20
0000052b: PUSH1 0x00
0000052d: KECCAK256
0000052e: SWAP1
0000052f: PUSH1 0x07
00000531: MUL
00000532: ADD
00000533: PUSH1 0x00
00000535: JUMPDEST
00000536: POP
00000537: DUP1
00000538: SLOAD
00000539: PUSH1 0x01
0000053b: DUP3
0000053c: ADD
0000053d: SLOAD
0000053e: PUSH1 0x02
00000540: DUP4
00000541: ADD
00000542: SLOAD
00000543: PUSH1 0x03
00000545: DUP5
00000546: ADD
00000547: SLOAD
00000548: PUSH1 0x04
0000054a: DUP6
0000054b: ADD
0000054c: SLOAD
0000054d: PUSH1 0x05
0000054f: SWAP1
00000550: SWAP6
00000551: ADD
00000552: SLOAD
00000553: SWAP4
00000554: SWAP6
00000555: POP
00000556: SWAP2
00000557: SWAP4
00000558: SWAP1
00000559: SWAP3
0000055a: PUSH1 0xff
0000055c: AND
0000055d: DUP7
0000055e: JUMP
0000055f: JUMPDEST
00000560: PUSH1 0x00
00000562: SLOAD
00000563: PUSH1 0x01
00000565: PUSH1 0xa0
00000567: PUSH1 0x02
00000569: EXP
0000056a: SUB
0000056b: AND
0000056c: DUP2
0000056d: JUMP
0000056e: JUMPDEST
0000056f: PUSH1 0x03
00000571: SLOAD
00000572: PUSH1 0x00
00000574: SWAP1
00000575: DUP2
00000576: SWAP1
00000577: DUP2
00000578: SWAP1
00000579: DUP5
0000057a: SWAP1
0000057b: DUP2
0000057c: LT
0000057d: PUSH2 0x0586
00000580: JUMPI
00000581: PUSH1 0x00
00000583: PUSH1 0x00
00000585: REVERT
00000586: JUMPDEST
00000587: PUSH1 0x03
00000589: DUP1
0000058a: SLOAD
0000058b: DUP7
0000058c: SWAP1
0000058d: DUP2
0000058e: LT
0000058f: PUSH2 0x0594
00000592: JUMPI
00000593: INVALID
00000594: JUMPDEST
00000595: SWAP1
00000596: PUSH1 0x00
00000598: MSTORE
00000599: PUSH1 0x20
0000059b: PUSH1 0x00
0000059d: KECCAK256
0000059e: SWAP1
0000059f: PUSH1 0x07
000005a1: MUL
000005a2: ADD
000005a3: PUSH1 0x00
000005a5: JUMPDEST
000005a6: POP
000005a7: PUSH1 0x01
000005a9: PUSH1 0xa0
000005ab: PUSH1 0x02
000005ad: EXP
000005ae: SUB
000005af: CALLER
000005b0: AND
000005b1: PUSH1 0x00
000005b3: SWAP1
000005b4: DUP2
000005b5: MSTORE
000005b6: PUSH1 0x06
000005b8: DUP3
000005b9: ADD
000005ba: PUSH1 0x20
000005bc: MSTORE
000005bd: PUSH1 0x40
000005bf: SWAP1
000005c0: KECCAK256
000005c1: SLOAD
000005c2: SWAP1
000005c3: SWAP5
000005c4: POP
000005c5: PUSH1 0xff
000005c7: AND
000005c8: ISZERO
000005c9: PUSH2 0x05d2
000005cc: JUMPI
000005cd: PUSH1 0x00
000005cf: PUSH1 0x00
000005d1: REVERT
000005d2: JUMPDEST
000005d3: PUSH1 0x05
000005d5: DUP5
000005d6: ADD
000005d7: SLOAD
000005d8: PUSH1 0xff
000005da: AND
000005db: ISZERO
000005dc: PUSH2 0x05e5
000005df: JUMPI
000005e0: PUSH1 0x00
000005e2: PUSH1 0x00
000005e4: REVERT
000005e5: JUMPDEST
000005e6: PUSH1 0x01
000005e8: SLOAD
000005e9: DUP5
000005ea: SLOAD
000005eb: PUSH1 0x40
000005ed: DUP1
000005ee: MLOAD
000005ef: PUSH1 0x00
000005f1: PUSH1 0x20
000005f3: SWAP2
000005f4: DUP3
000005f5: ADD
000005f6: DUP2
000005f7: SWAP1
000005f8: MSTORE
000005f9: DUP3
000005fa: MLOAD
000005fb: PUSH1 0xe1
000005fd: PUSH1 0x02
000005ff: EXP
00000600: PUSH4 0x277166bf
00000605: MUL
00000606: DUP2
00000607: MSTORE
00000608: PUSH1 0x01
0000060a: PUSH1 0xa0
0000060c: PUSH1 0x02
0000060e: EXP
0000060f: SUB
00000610: CALLER
00000611: DUP2
00000612: AND
00000613: PUSH1 0x04
00000615: DUP4
00000616: ADD
00000617: MSTORE
00000618: PUSH1 0x24
0000061a: DUP3
0000061b: ADD
0000061c: SWAP6
0000061d: SWAP1
0000061e: SWAP6
0000061f: MSTORE
00000620: SWAP3
00000621: MLOAD
00000622: SWAP4
00000623: SWAP1
00000624: SWAP5
00000625: AND
00000626: SWAP4
00000627: PUSH4 0x4ee2cd7e
0000062c: SWAP4
0000062d: PUSH1 0x44
0000062f: DUP1
00000630: DUP6
00000631: ADD
00000632: SWAP5
00000633: SWAP2
00000634: SWAP3
00000635: SWAP2
00000636: DUP4
00000637: SWAP1
00000638: SUB
00000639: ADD
0000063a: SWAP1
0000063b: DUP3
0000063c: SWAP1
0000063d: DUP8
0000063e: DUP1
0000063f: EXTCODESIZE
00000640: ISZERO
00000641: ISZERO
00000642: PUSH2 0x0647
00000645: JUMPI
00000646: INVALID
00000647: JUMPDEST
00000648: PUSH2 0x02c6
0000064b: GAS
0000064c: SUB
0000064d: CALL
0000064e: ISZERO
0000064f: ISZERO
00000650: PUSH2 0x0655
00000653: JUMPI
00000654: INVALID
00000655: JUMPDEST
00000656: POP
00000657: POP
00000658: PUSH1 0x40
0000065a: MLOAD
0000065b: MLOAD
0000065c: PUSH1 0x04
0000065e: DUP7
0000065f: ADD
00000660: SLOAD
00000661: PUSH1 0x02
00000663: DUP8
00000664: ADD
00000665: SLOAD
00000666: SWAP2
00000667: SWAP6
00000668: POP
00000669: PUSH2 0x068b
0000066c: SWAP3
0000066d: POP
0000066e: SWAP1
0000066f: PUSH2 0x067f
00000672: SWAP1
00000673: DUP7
00000674: SWAP1
00000675: PUSH4 0xffffffff
0000067a: PUSH2 0x096c
0000067d: AND
0000067e: JUMP
0000067f: JUMPDEST
00000680: SWAP1
00000681: PUSH4 0xffffffff
00000686: PUSH2 0x099b
00000689: AND
0000068a: JUMP
0000068b: JUMPDEST
0000068c: PUSH1 0x01
0000068e: PUSH1 0xa0
00000690: PUSH1 0x02
00000692: EXP
00000693: SUB
00000694: CALLER
00000695: AND
00000696: PUSH1 0x00
00000698: SWAP1
00000699: DUP2
0000069a: MSTORE
0000069b: PUSH1 0x06
0000069d: DUP7
0000069e: ADD
0000069f: PUSH1 0x20
000006a1: MSTORE
000006a2: PUSH1 0x40
000006a4: SWAP1
000006a5: KECCAK256
000006a6: DUP1
000006a7: SLOAD
000006a8: PUSH1 0xff
000006aa: NOT
000006ab: AND
000006ac: PUSH1 0x01
000006ae: OR
000006af: SWAP1
000006b0: SSTORE
000006b1: PUSH1 0x03
000006b3: DUP6
000006b4: ADD
000006b5: SLOAD
000006b6: SWAP1
000006b7: SWAP3
000006b8: POP
000006b9: PUSH2 0x06c2
000006bc: SWAP1
000006bd: DUP4
000006be: PUSH2 0x0952
000006c1: JUMP
000006c2: JUMPDEST
000006c3: PUSH1 0x03
000006c5: DUP6
000006c6: ADD
000006c7: SSTORE
000006c8: PUSH1 0x00
000006ca: DUP3
000006cb: GT
000006cc: ISZERO
000006cd: PUSH2 0x0741
000006d0: JUMPI
000006d1: PUSH1 0x40
000006d3: MLOAD
000006d4: PUSH1 0x01
000006d6: PUSH1 0xa0
000006d8: PUSH1 0x02
000006da: EXP
000006db: SUB
000006dc: CALLER
000006dd: AND
000006de: SWAP1
000006df: DUP4
000006e0: ISZERO
000006e1: PUSH2 0x08fc
000006e4: MUL
000006e5: SWAP1
000006e6: DUP5
000006e7: SWAP1
000006e8: PUSH1 0x00
000006ea: DUP2
000006eb: DUP2
000006ec: DUP2
000006ed: DUP6
000006ee: DUP9
000006ef: DUP9
000006f0: CALL
000006f1: SWAP4
000006f2: POP
000006f3: POP
000006f4: POP
000006f5: POP
000006f6: ISZERO
000006f7: ISZERO
000006f8: PUSH2 0x06fd
000006fb: JUMPI
000006fc: INVALID
000006fd: JUMPDEST
000006fe: PUSH1 0x40
00000700: DUP1
00000701: MLOAD
00000702: DUP7
00000703: DUP2
00000704: MSTORE
00000705: PUSH1 0x20
00000707: DUP2
00000708: ADD
00000709: DUP5
0000070a: SWAP1
0000070b: MSTORE
0000070c: DUP2
0000070d: MLOAD
0000070e: PUSH1 0x01
00000710: PUSH1 0xa0
00000712: PUSH1 0x02
00000714: EXP
00000715: SUB
00000716: CALLER
00000717: AND
00000718: SWAP3
00000719: PUSH32 0xa1c93169468f71ef26f4adf10bca8df21460f11843a01ed9c69da306e33c3847
0000073a: SWAP3
0000073b: DUP3
0000073c: SWAP1
0000073d: SUB
0000073e: ADD
0000073f: SWAP1
00000740: LOG2
00000741: JUMPDEST
00000742: JUMPDEST
00000743: JUMPDEST
00000744: POP
00000745: POP
00000746: POP
00000747: POP
00000748: POP
00000749: JUMP
0000074a: JUMPDEST
0000074b: PUSH1 0x00
0000074d: DUP1
0000074e: SLOAD
0000074f: DUP2
00000750: SWAP1
00000751: DUP2
00000752: SWAP1
00000753: CALLER
00000754: PUSH1 0x01
00000756: PUSH1 0xa0
00000758: PUSH1 0x02
0000075a: EXP
0000075b: SUB
0000075c: SWAP1
0000075d: DUP2
0000075e: AND
0000075f: SWAP2
00000760: AND
00000761: EQ
00000762: PUSH2 0x076b
00000765: JUMPI
00000766: PUSH1 0x00
00000768: PUSH1 0x00
0000076a: REVERT
0000076b: JUMPDEST
0000076c: PUSH1 0x01
0000076e: SLOAD
0000076f: PUSH1 0x40
00000771: DUP1
00000772: MLOAD
00000773: PUSH1 0x00
00000775: PUSH1 0x20
00000777: SWAP2
00000778: DUP3
00000779: ADD
0000077a: DUP2
0000077b: SWAP1
0000077c: MSTORE
0000077d: DUP3
0000077e: MLOAD
0000077f: PUSH1 0xe4
00000781: PUSH1 0x02
00000783: EXP
00000784: PUSH4 0x0981b24d
00000789: MUL
0000078a: DUP2
0000078b: MSTORE
0000078c: NUMBER
0000078d: PUSH1 0x04
0000078f: DUP3
00000790: ADD
00000791: MSTORE
00000792: SWAP3
00000793: MLOAD
00000794: PUSH1 0x01
00000796: PUSH1 0xa0
00000798: PUSH1 0x02
0000079a: EXP
0000079b: SUB
0000079c: SWAP1
0000079d: SWAP5
0000079e: AND
0000079f: SWAP4
000007a0: PUSH4 0x981b24d0
000007a5: SWAP4
000007a6: PUSH1 0x24
000007a8: DUP1
000007a9: DUP3
000007aa: ADD
000007ab: SWAP5
000007ac: SWAP4
000007ad: SWAP2
000007ae: DUP4
000007af: SWAP1
000007b0: SUB
000007b1: ADD
000007b2: SWAP1
000007b3: DUP3
000007b4: SWAP1
000007b5: DUP8
000007b6: DUP1
000007b7: EXTCODESIZE
000007b8: ISZERO
000007b9: ISZERO
000007ba: PUSH2 0x07bf
000007bd: JUMPI
000007be: INVALID
000007bf: JUMPDEST
000007c0: PUSH2 0x02c6
000007c3: GAS
000007c4: SUB
000007c5: CALL
000007c6: ISZERO
000007c7: ISZERO
000007c8: PUSH2 0x07cd
000007cb: JUMPI
000007cc: INVALID
000007cd: JUMPDEST
000007ce: POP
000007cf: POP
000007d0: PUSH1 0x40
000007d2: MLOAD
000007d3: MLOAD
000007d4: PUSH1 0x03
000007d6: SLOAD
000007d7: SWAP1
000007d8: SWAP5
000007d9: POP
000007da: SWAP3
000007db: POP
000007dc: PUSH2 0x07e8
000007df: SWAP1
000007e0: POP
000007e1: NUMBER
000007e2: PUSH1 0x01
000007e4: PUSH2 0x093b
000007e7: JUMP
000007e8: JUMPDEST
000007e9: SWAP1
000007ea: POP
000007eb: PUSH1 0x03
000007ed: DUP1
000007ee: SLOAD
000007ef: DUP1
000007f0: PUSH1 0x01
000007f2: ADD
000007f3: DUP3
000007f4: DUP2
000007f5: PUSH2 0x07fe
000007f8: SWAP2
000007f9: SWAP1
000007fa: PUSH2 0x09b8
000007fd: JUMP
000007fe: JUMPDEST
000007ff: SWAP2
00000800: PUSH1 0x00
00000802: MSTORE
00000803: PUSH1 0x20
00000805: PUSH1 0x00
00000807: KECCAK256
00000808: SWAP1
00000809: PUSH1 0x07
0000080b: MUL
0000080c: ADD
0000080d: PUSH1 0x00
0000080f: JUMPDEST
00000810: PUSH1 0xc0
00000812: PUSH1 0x40
00000814: MLOAD
00000815: SWAP1
00000816: DUP2
00000817: ADD
00000818: PUSH1 0x40
0000081a: MSTORE
0000081b: DUP1
0000081c: DUP6
0000081d: DUP2
0000081e: MSTORE
0000081f: PUSH1 0x20
00000821: ADD
00000822: PUSH2 0x0829
00000825: PUSH2 0x0936
00000828: JUMP
00000829: JUMPDEST
0000082a: DUP2
0000082b: MSTORE
0000082c: CALLVALUE
0000082d: PUSH1 0x20
0000082f: DUP1
00000830: DUP4
00000831: ADD
00000832: DUP3
00000833: SWAP1
00000834: MSTORE
00000835: PUSH1 0x00
00000837: PUSH1 0x40
00000839: DUP1
0000083a: DUP6
0000083b: ADD
0000083c: DUP3
0000083d: SWAP1
0000083e: MSTORE
0000083f: PUSH1 0x60
00000841: DUP1
00000842: DUP7
00000843: ADD
00000844: DUP14
00000845: SWAP1
00000846: MSTORE
00000847: PUSH1 0x80
00000849: SWAP6
0000084a: DUP7
0000084b: ADD
0000084c: SWAP3
0000084d: SWAP1
0000084e: SWAP3
0000084f: MSTORE
00000850: DUP6
00000851: MLOAD
00000852: DUP9
00000853: SSTORE
00000854: DUP6
00000855: DUP4
00000856: ADD
00000857: MLOAD
00000858: PUSH1 0x01
0000085a: DUP10
0000085b: ADD
0000085c: SSTORE
0000085d: DUP6
0000085e: DUP2
0000085f: ADD
00000860: MLOAD
00000861: PUSH1 0x02
00000863: DUP10
00000864: ADD
00000865: SSTORE
00000866: DUP6
00000867: DUP3
00000868: ADD
00000869: MLOAD
0000086a: PUSH1 0x03
0000086c: DUP10
0000086d: ADD
0000086e: SSTORE
0000086f: DUP6
00000870: DUP6
00000871: ADD
00000872: MLOAD
00000873: PUSH1 0x04
00000875: DUP10
00000876: ADD
00000877: SSTORE
00000878: PUSH1 0xa0
0000087a: SWAP1
0000087b: SWAP6
0000087c: ADD
0000087d: MLOAD
0000087e: PUSH1 0x05
00000880: SWAP1
00000881: SWAP8
00000882: ADD
00000883: DUP1
00000884: SLOAD
00000885: PUSH1 0xff
00000887: NOT
00000888: AND
00000889: SWAP8
0000088a: ISZERO
0000088b: ISZERO
0000088c: SWAP8
0000088d: SWAP1
0000088e: SWAP8
0000088f: OR
00000890: SWAP1
00000891: SWAP7
00000892: SSTORE
00000893: DUP4
00000894: MLOAD
00000895: DUP9
00000896: DUP2
00000897: MSTORE
00000898: SWAP1
00000899: DUP2
0000089a: ADD
0000089b: SWAP2
0000089c: SWAP1
0000089d: SWAP2
0000089e: MSTORE
0000089f: DUP1
000008a0: DUP4
000008a1: ADD
000008a2: DUP10
000008a3: SWAP1
000008a4: MSTORE
000008a5: SWAP4
000008a6: DUP5
000008a7: ADD
000008a8: DUP8
000008a9: SWAP1
000008aa: MSTORE
000008ab: SWAP1
000008ac: MLOAD
000008ad: CALLER
000008ae: PUSH1 0x01
000008b0: PUSH1 0xa0
000008b2: PUSH1 0x02
000008b4: EXP
000008b5: SUB
000008b6: AND
000008b7: SWAP5
000008b8: POP
000008b9: PUSH32 0xcbf89ed8b63aa0a8f6e744e4023554f41dc830838d138eb2d4099cbcfe4a0831
000008da: SWAP4
000008db: DUP2
000008dc: SWAP1
000008dd: SUB
000008de: SWAP1
000008df: SWAP2
000008e0: ADD
000008e1: SWAP2
000008e2: POP
000008e3: LOG2
000008e4: JUMPDEST
000008e5: JUMPDEST
000008e6: POP
000008e7: POP
000008e8: POP
000008e9: JUMP
000008ea: JUMPDEST
000008eb: PUSH1 0x00
000008ed: SLOAD
000008ee: CALLER
000008ef: PUSH1 0x01
000008f1: PUSH1 0xa0
000008f3: PUSH1 0x02
000008f5: EXP
000008f6: SUB
000008f7: SWAP1
000008f8: DUP2
000008f9: AND
000008fa: SWAP2
000008fb: AND
000008fc: EQ
000008fd: PUSH2 0x0906
00000900: JUMPI
00000901: PUSH1 0x00
00000903: PUSH1 0x00
00000905: REVERT
00000906: JUMPDEST
00000907: PUSH1 0x01
00000909: PUSH1 0xa0
0000090b: PUSH1 0x02
0000090d: EXP
0000090e: SUB
0000090f: DUP2
00000910: AND
00000911: ISZERO
00000912: PUSH2 0x04fd
00000915: JUMPI
00000916: PUSH1 0x00
00000918: DUP1
00000919: SLOAD
0000091a: PUSH1 0x01
0000091c: PUSH1 0xa0
0000091e: PUSH1 0x02
00000920: EXP
00000921: SUB
00000922: NOT
00000923: AND
00000924: PUSH1 0x01
00000926: PUSH1 0xa0
00000928: PUSH1 0x02
0000092a: EXP
0000092b: SUB
0000092c: DUP4
0000092d: AND
0000092e: OR
0000092f: SWAP1
00000930: SSTORE
00000931: JUMPDEST
00000932: JUMPDEST
00000933: JUMPDEST
00000934: POP
00000935: JUMP
00000936: JUMPDEST
00000937: TIMESTAMP
00000938: JUMPDEST
00000939: SWAP1
0000093a: JUMP
0000093b: JUMPDEST
0000093c: PUSH1 0x00
0000093e: DUP3
0000093f: DUP3
00000940: GT
00000941: ISZERO
00000942: PUSH2 0x0947
00000945: JUMPI
00000946: INVALID
00000947: JUMPDEST
00000948: POP
00000949: DUP1
0000094a: DUP3
0000094b: SUB
0000094c: JUMPDEST
0000094d: SWAP3
0000094e: SWAP2
0000094f: POP
00000950: POP
00000951: JUMP
00000952: JUMPDEST
00000953: PUSH1 0x00
00000955: DUP3
00000956: DUP3
00000957: ADD
00000958: DUP4
00000959: DUP2
0000095a: LT
0000095b: ISZERO
0000095c: PUSH2 0x0961
0000095f: JUMPI
00000960: INVALID
00000961: JUMPDEST
00000962: DUP1
00000963: SWAP2
00000964: POP
00000965: JUMPDEST
00000966: POP
00000967: SWAP3
00000968: SWAP2
00000969: POP
0000096a: POP
0000096b: JUMP
0000096c: JUMPDEST
0000096d: PUSH1 0x00
0000096f: DUP3
00000970: DUP3
00000971: MUL
00000972: DUP4
00000973: ISZERO
00000974: DUP1
00000975: PUSH2 0x0988
00000978: JUMPI
00000979: POP
0000097a: DUP3
0000097b: DUP5
0000097c: DUP3
0000097d: DUP2
0000097e: ISZERO
0000097f: ISZERO
00000980: PUSH2 0x0985
00000983: JUMPI
00000984: INVALID
00000985: JUMPDEST
00000986: DIV
00000987: EQ
00000988: JUMPDEST
00000989: ISZERO
0000098a: ISZERO
0000098b: PUSH2 0x0961
0000098e: JUMPI
0000098f: INVALID
00000990: JUMPDEST
00000991: DUP1
00000992: SWAP2
00000993: POP
00000994: JUMPDEST
00000995: POP
00000996: SWAP3
00000997: SWAP2
00000998: POP
00000999: POP
0000099a: JUMP
0000099b: JUMPDEST
0000099c: PUSH1 0x00
0000099e: PUSH1 0x00
000009a0: DUP3
000009a1: DUP5
000009a2: DUP2
000009a3: ISZERO
000009a4: ISZERO
000009a5: PUSH2 0x09aa
000009a8: JUMPI
000009a9: INVALID
000009aa: JUMPDEST
000009ab: DIV
000009ac: SWAP1
000009ad: POP
000009ae: DUP1
000009af: SWAP2
000009b0: POP
000009b1: JUMPDEST
000009b2: POP
000009b3: SWAP3
000009b4: SWAP2
000009b5: POP
000009b6: POP
000009b7: JUMP
000009b8: JUMPDEST
000009b9: DUP2
000009ba: SLOAD
000009bb: DUP2
000009bc: DUP4
000009bd: SSTORE
000009be: DUP2
000009bf: DUP2
000009c0: ISZERO
000009c1: GT
000009c2: PUSH2 0x08e4
000009c5: JUMPI
000009c6: PUSH1 0x07
000009c8: MUL
000009c9: DUP2
000009ca: PUSH1 0x07
000009cc: MUL
000009cd: DUP4
000009ce: PUSH1 0x00
000009d0: MSTORE
000009d1: PUSH1 0x20
000009d3: PUSH1 0x00
000009d5: KECCAK256
000009d6: SWAP2
000009d7: DUP3
000009d8: ADD
000009d9: SWAP2
000009da: ADD
000009db: PUSH2 0x08e4
000009de: SWAP2
000009df: SWAP1
000009e0: PUSH2 0x09ea
000009e3: JUMP
000009e4: JUMPDEST
000009e5: JUMPDEST
000009e6: POP
000009e7: POP
000009e8: POP
000009e9: JUMP
000009ea: JUMPDEST
000009eb: PUSH2 0x0938
000009ee: SWAP2
000009ef: SWAP1
000009f0: JUMPDEST
000009f1: DUP1
000009f2: DUP3
000009f3: GT
000009f4: ISZERO
000009f5: PUSH2 0x0a2b
000009f8: JUMPI
000009f9: PUSH1 0x00
000009fb: DUP1
000009fc: DUP3
000009fd: SSTORE
000009fe: PUSH1 0x01
00000a00: DUP3
00000a01: ADD
00000a02: DUP2
00000a03: SWAP1
00000a04: SSTORE
00000a05: PUSH1 0x02
00000a07: DUP3
00000a08: ADD
00000a09: DUP2
00000a0a: SWAP1
00000a0b: SSTORE
00000a0c: PUSH1 0x03
00000a0e: DUP3
00000a0f: ADD
00000a10: DUP2
00000a11: SWAP1
00000a12: SSTORE
00000a13: PUSH1 0x04
00000a15: DUP3
00000a16: ADD
00000a17: SSTORE
00000a18: PUSH1 0x05
00000a1a: DUP2
00000a1b: ADD
00000a1c: DUP1
00000a1d: SLOAD
00000a1e: PUSH1 0xff
00000a20: NOT
00000a21: AND
00000a22: SWAP1
00000a23: SSTORE
00000a24: PUSH1 0x07
00000a26: ADD
00000a27: PUSH2 0x09f0
00000a2a: JUMP
00000a2b: JUMPDEST
00000a2c: POP
00000a2d: SWAP1
00000a2e: JUMP
00000a2f: JUMPDEST
00000a30: SWAP1
00000a31: JUMP
00000a32: STOP
00000a33: LOG1
00000a34: PUSH6 0x627a7a723058
00000a3b: KECCAK256
00000a3c: UNKNOWN(0xA9)
00000a3d: MCOPY
00000a3e: EXTCODECOPY
00000a3f: SLOAD
00000a40: BLOBBASEFEE
00000a41: SWAP2
00000a42: DIV
00000a43: UNKNOWN(0xE6)
00000a44: UNKNOWN(0xBA)
00000a45: CODESIZE
00000a46: PUSH3 0xa084d8
00000a4a: ORIGIN
00000a4b: UNKNOWN(0xE7)
00000a4c: UNKNOWN(0xDF)
00000a4d: CREATE2
00000a4e: UNKNOWN(0x4D)
00000a4f: UNKNOWN(0xEF)
00000a50: UNKNOWN(0xDE)
00000a51: PUSH23

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": "0x22c9427e",
            "selector": "0x22c9427e",
            "calldata_variants": [
                "0x22c9427e",
                "0x22c9427e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x30e1f16f",
            "selector": "0x30e1f16f",
            "calldata_variants": [
                "0x30e1f16f",
                "0x30e1f16f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6423b5f0",
            "selector": "0x6423b5f0",
            "calldata_variants": [
                "0x6423b5f0",
                "0x6423b5f00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7c1a35d7",
            "selector": "0x7c1a35d7",
            "calldata_variants": [
                "0x7c1a35d7",
                "0x7c1a35d70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x814b3fe0",
            "selector": "0x814b3fe0",
            "calldata_variants": [
                "0x814b3fe0",
                "0x814b3fe00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9abd3572",
            "selector": "0x9abd3572",
            "calldata_variants": [
                "0x9abd3572",
                "0x9abd35720000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa289d187",
            "selector": "0xa289d187",
            "calldata_variants": [
                "0xa289d187",
                "0xa289d1870000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 2634,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x7ece32c1b3decfd96deae9d410cddce1fc533a5cdb8df83fb4aadaa0bc1a377a
call_targets: 0x6822aaf4ab22e6cca8352a927b9ae0a8fdb58d9d
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x7ece32c1b3decfd96deae9d410cddce1fc533a5cdb8df83fb4aadaa0bc1a377a",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x6822aaf4ab22e6cca8352a927b9ae0a8fdb58d9d"
    ],
    "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": "0x22c9427e",
            "selector": "0x22c9427e",
            "calldata_variants": [
                "0x22c9427e",
                "0x22c9427e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x30e1f16f",
            "selector": "0x30e1f16f",
            "calldata_variants": [
                "0x30e1f16f",
                "0x30e1f16f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6423b5f0",
            "selector": "0x6423b5f0",
            "calldata_variants": [
                "0x6423b5f0",
                "0x6423b5f00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7c1a35d7",
            "selector": "0x7c1a35d7",
            "calldata_variants": [
                "0x7c1a35d7",
                "0x7c1a35d70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x814b3fe0",
            "selector": "0x814b3fe0",
            "calldata_variants": [
                "0x814b3fe0",
                "0x814b3fe00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9abd3572",
            "selector": "0x9abd3572",
            "calldata_variants": [
                "0x9abd3572",
                "0x9abd35720000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa289d187",
            "selector": "0xa289d187",
            "calldata_variants": [
                "0xa289d187",
                "0xa289d1870000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 707,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1613,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1776,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [
        {
            "pc": 2634,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 4
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x7ece32c1b3decfd96deae9d410cddce1fc533a5cdb8df83fb4aadaa0bc1a377a
call_targets: 0x6822aaf4ab22e6cca8352a927b9ae0a8fdb58d9d
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x7ece32c1b3decfd96deae9d410cddce1fc533a5cdb8df83fb4aadaa0bc1a377a",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x6822aaf4ab22e6cca8352a927b9ae0a8fdb58d9d"
    ],
    "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": "0x22c9427e",
            "selector": "0x22c9427e",
            "calldata_variants": [
                "0x22c9427e",
                "0x22c9427e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x30e1f16f",
            "selector": "0x30e1f16f",
            "calldata_variants": [
                "0x30e1f16f",
                "0x30e1f16f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6423b5f0",
            "selector": "0x6423b5f0",
            "calldata_variants": [
                "0x6423b5f0",
                "0x6423b5f00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7c1a35d7",
            "selector": "0x7c1a35d7",
            "calldata_variants": [
                "0x7c1a35d7",
                "0x7c1a35d70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x814b3fe0",
            "selector": "0x814b3fe0",
            "calldata_variants": [
                "0x814b3fe0",
                "0x814b3fe00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9abd3572",
            "selector": "0x9abd3572",
            "calldata_variants": [
                "0x9abd3572",
                "0x9abd35720000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa289d187",
            "selector": "0xa289d187",
            "calldata_variants": [
                "0xa289d187",
                "0xa289d1870000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 707,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1613,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1776,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": [
        {
            "pc": 2634,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x62e54f98a02056e13b828e2f862903868189c2b6b8c2475cba8774d94e2522f0
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 18,
    "trace_id": "0x62e54f98a02056e13b828e2f862903868189c2b6b8c2475cba8774d94e2522f0",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x22c9427e",
            "selector": "0x22c9427e",
            "calldata_variants": [
                "0x22c9427e",
                "0x22c9427e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x30e1f16f",
            "selector": "0x30e1f16f",
            "calldata_variants": [
                "0x30e1f16f",
                "0x30e1f16f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6423b5f0",
            "selector": "0x6423b5f0",
            "calldata_variants": [
                "0x6423b5f0",
                "0x6423b5f00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7c1a35d7",
            "selector": "0x7c1a35d7",
            "calldata_variants": [
                "0x7c1a35d7",
                "0x7c1a35d70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x814b3fe0",
            "selector": "0x814b3fe0",
            "calldata_variants": [
                "0x814b3fe0",
                "0x814b3fe00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9abd3572",
            "selector": "0x9abd3572",
            "calldata_variants": [
                "0x9abd3572",
                "0x9abd35720000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa289d187",
            "selector": "0xa289d187",
            "calldata_variants": [
                "0xa289d187",
                "0xa289d1870000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 0,
    "create2_count": 1
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 0,
    "create2_count": 1
}