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

Analysis Run

019c0ea9-06f3-7351-913e-e120102597a8

complete
Chain ID
1
Address
Block Number
Created
Fri, Jan 30, 2026 11:28 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
Bytecode only
Review Backing
Present
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
41480 artifact.fetch complete 1 / 3 2 months ago
41481 proxy.resolve complete 1 / 3 2 months ago
41482 tool.cast_disasm complete 1 / 3 2 months ago
41483 analysis.bundle complete 1 / 3 2 months ago
41484 capability.graph complete 1 / 3 2 months ago
41485 detector.run complete 1 / 3 2 months ago
41486 validation.fork complete 1 / 3 2 months ago
42175 report.consolidate complete 1 / 6 2 months ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Detected a tx.origin-based guard and a low-confidence computed CALL with unchecked return; bytecode-only analysis with limited selector context.
View stdout
{"no_findings":false,"summary":"Detected a tx.origin-based guard and a low-confidence computed CALL with unchecked return; bytecode-only analysis with limited selector context.","findings":[{"severity":"medium","category":"auth","title":"Authorization uses tx.origin","exploit_scenario":"If a privileged EOA interacts with an attacker-controlled contract, the attacker contract can invoke the guarded function; tx.origin stays the EOA so the check may pass even though msg.sender is untrusted.","recommendation":"Use msg.sender for authorization (or an explicit access-control role). Avoid tx.origin-based gating; if meta-tx support is needed, adopt a trusted forwarder pattern (e.g., EIP-2771).","evidence":"Auth guard list includes tx_origin_used at pc 5188, and the basic block at start_pc 5181 contains the ORIGIN opcode, indicating tx.origin is consulted in a guard check.","locations":["pc:5188","pc:5181"]},{"severity":"low","category":"other","title":"CALL with computed target/value and unchecked return","exploit_scenario":"If the call target or value can vary based on user input on some paths, an attacker could trigger an external call with value and reenter or cause a silent failure while execution continues. This is low-confidence because the trace suggests the target may be constant (self-call).","recommendation":"Confirm the call target is fixed or rigorously validated. Check the CALL return value and handle failures explicitly. If the target can be untrusted, add reentrancy protections around state updates before/after the call.","evidence":"Callsites list shows CALL at pc 3355 and pc 4758 with target/value marked computed and returndata_checked null. Detector flags untrusted CALL/ETH value transfer, but validation trace reports a constant target of 0x163a948770020a636a87a48acb33d7575445474b (self), so risk is uncertain.","locations":["pc:3355","pc:4758"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-tnm0a5qz
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0eae-3139-7733-ad8b-cdfa8def2cb1
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.

Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".

Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers
exec
/bin/bash -lc ls in /tmp/codex-tnm0a5qz succeeded in 6ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-tnm0a5qz succeeded in 19ms:
{
  "analysis_artifact": {
    "address": "0x163a948770020a636a87a48acb33d7575445474b",
    "artifact_hash": "0x94d472e7d3f4ac4c4ca411db49c3be8503b87565a7724af4fa6c926483d48d14",
    "artifact_json": {
      "auth": {
        "guards": [
          {
            "pc": 1842,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
          },
          {
            "pc": 2188,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
          },
          {
            "pc": 3126,
            "type": "msg_sender_eq_const",
exec
/bin/bash -lc 'rg -n "pc": 3355 -n BYTECODE_BUNDLE.json' in /tmp/codex-tnm0a5qz exited 2 in 11ms:
rg: 3355: No such file or directory (os error 2)
exec
/bin/bash -lc "rg -n '\"pc\": 3355' BYTECODE_BUNDLE.json" in /tmp/codex-tnm0a5qz succeeded in 6ms:
4392:          "pc": 3355,
11837:          "pc": 3355,
11988:            "pc": 3355,
12068:            "pc": 3355,
exec
/bin/bash -lc "sed -n '4360,4425p' BYTECODE_BUNDLE.json" in /tmp/codex-tnm0a5qz succeeded in 24ms:
            "PUSH6",
            "SHA3",
            "OP_A4",
            "OP_CC",
            "MLOAD",
            "OP_D8",
            "PUSH16",
            "STOP"
          ],
          "start_pc": 5150
        },
        {
          "end_pc": 5190,
          "hash": "0x4ac985c8d2c31cfc45dfd212bac39ef546072cdad229a141ba4d46ba06cb7f4c",
          "opcodes": [
            "OP_A0",
            "OP_BC",
            "OP_89",
            "SHA3",
            "OP_CD",
exec
/bin/bash -lc "rg -n '\"start_pc\": 33' BYTECODE_BUNDLE.json | head" in /tmp/codex-tnm0a5qz succeeded in 7ms:
2754:          "start_pc": 3367
2800:          "start_pc": 3371
11222:          "start_pc": 3367,
11229:          "start_pc": 3371,
exec
/bin/bash -lc "rg -n '\"start_pc\": 33[0-9][0-9]' BYTECODE_BUNDLE.json" in /tmp/codex-tnm0a5qz succeeded in 10ms:
2754:          "start_pc": 3367
2800:          "start_pc": 3371
11222:          "start_pc": 3367,
11229:          "start_pc": 3371,
exec
/bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-tnm0a5qz succeeded in 7ms:
{"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
{"no_findings":false,"summary":"Detected a tx.origin-based guard and a low-confidence computed CALL with unchecked return; bytecode-only analysis with limited selector context.","findings":[{"severity":"medium","category":"auth","title":"Authorization uses tx.origin","exploit_scenario":"If a privileged EOA interacts with an attacker-controlled contract, the attacker contract can invoke the guarded function; tx.origin stays the EOA so the check may pass even though msg.sender is untrusted.","recommendation":"Use msg.sender for authorization (or an explicit access-control role). Avoid tx.origin-based gating; if meta-tx support is needed, adopt a trusted forwarder pattern (e.g., EIP-2771).","evidence":"Auth guard list includes tx_origin_used at pc 5188, and the basic block at start_pc 5181 contains the ORIGIN opcode, indicating tx.origin is consulted in a guard check.","locations":["pc:5188","pc:5181"]},{"severity":"low","category":"other","title":"CALL with computed target/value and unchecked return","exploit_scenario":"If the call target or value can vary based on user input on some paths, an attacker could trigger an external call with value and reenter or cause a silent failure while execution continues. This is low-confidence because the trace suggests the target may be constant (self-call).","recommendation":"Confirm the call target is fixed or rigorously validated. Check the CALL return value and handle failures explicitly. If the target can be untrusted, add reentrancy protections around state updates before/after the call.","evidence":"Callsites list shows CALL at pc 3355 and pc 4758 with target/value marked computed and returndata_checked null. Detector flags untrusted CALL/ETH value transfer, but validation trace reports a constant target of 0x163a948770020a636a87a48acb33d7575445474b (self), so risk is uncertain.","locations":["pc:3355","pc:4758"]}]}
tokens used
32,822
Metadata
{
    "codex": {
        "ran_at": "2026-01-30T11:35:03.561102+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 10388,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Detected a tx.origin-based guard and a low-confidence computed CALL with unchecked return; bytecode-only analysis with limited selector context.",
    "raw_final": {
        "summary": "Detected a tx.origin-based guard and a low-confidence computed CALL with unchecked return; bytecode-only analysis with limited selector context.",
        "findings": [
            {
                "title": "Authorization uses tx.origin",
                "category": "auth",
                "evidence": "Auth guard list includes tx_origin_used at pc 5188, and the basic block at start_pc 5181 contains the ORIGIN opcode, indicating tx.origin is consulted in a guard check.",
                "severity": "medium",
                "locations": [
                    "pc:5188",
                    "pc:5181"
                ],
                "recommendation": "Use msg.sender for authorization (or an explicit access-control role). Avoid tx.origin-based gating; if meta-tx support is needed, adopt a trusted forwarder pattern (e.g., EIP-2771).",
                "exploit_scenario": "If a privileged EOA interacts with an attacker-controlled contract, the attacker contract can invoke the guarded function; tx.origin stays the EOA so the check may pass even though msg.sender is untrusted."
            },
            {
                "title": "CALL with computed target/value and unchecked return",
                "category": "other",
                "evidence": "Callsites list shows CALL at pc 3355 and pc 4758 with target/value marked computed and returndata_checked null. Detector flags untrusted CALL/ETH value transfer, but validation trace reports a constant target of 0x163a948770020a636a87a48acb33d7575445474b (self), so risk is uncertain.",
                "severity": "low",
                "locations": [
                    "pc:3355",
                    "pc:4758"
                ],
                "recommendation": "Confirm the call target is fixed or rigorously validated. Check the CALL return value and handle failures explicitly. If the target can be untrusted, add reentrancy protections around state updates before/after the call.",
                "exploit_scenario": "If the call target or value can vary based on user input on some paths, an attacker could trigger an external call with value and reenter or cause a silent failure while execution continues. This is low-confidence because the trace suggests the target may be constant (self-call)."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
0
Total opcodes
2838
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x00af
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002e: SWAP1
0000002f: DIV
00000030: PUSH4 0xffffffff
00000035: AND
00000036: DUP1
00000037: PUSH4 0x1506ae59
0000003c: EQ
0000003d: PUSH2 0x00b4
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0x209fd971
00000047: EQ
00000048: PUSH2 0x0101
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0x21cf39ee
00000052: EQ
00000053: PUSH2 0x01ba
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0x5203dcda
0000005d: EQ
0000005e: PUSH2 0x01e3
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0x6be1320b
00000068: EQ
00000069: PUSH2 0x0213
0000006c: JUMPI
0000006d: DUP1
0000006e: PUSH4 0x867d0dd4
00000073: EQ
00000074: PUSH2 0x0243
00000077: JUMPI
00000078: DUP1
00000079: PUSH4 0x9ca4218f
0000007e: EQ
0000007f: PUSH2 0x029b
00000082: JUMPI
00000083: DUP1
00000084: PUSH4 0xa8d2021a
00000089: EQ
0000008a: PUSH2 0x02c4
0000008d: JUMPI
0000008e: DUP1
0000008f: PUSH4 0xb09b2f85
00000094: EQ
00000095: PUSH2 0x02f4
00000098: JUMPI
00000099: DUP1
0000009a: PUSH4 0xd9b42a7f
0000009f: EQ
000000a0: PUSH2 0x0319
000000a3: JUMPI
000000a4: DUP1
000000a5: PUSH4 0xeafb64d5
000000aa: EQ
000000ab: PUSH2 0x0349
000000ae: JUMPI
000000af: JUMPDEST
000000b0: PUSH1 0x00
000000b2: DUP1
000000b3: REVERT
000000b4: JUMPDEST
000000b5: PUSH2 0x00ff
000000b8: PUSH1 0x04
000000ba: DUP1
000000bb: DUP1
000000bc: CALLDATALOAD
000000bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000d2: AND
000000d3: SWAP1
000000d4: PUSH1 0x20
000000d6: ADD
000000d7: SWAP1
000000d8: SWAP2
000000d9: SWAP1
000000da: DUP1
000000db: CALLDATALOAD
000000dc: SWAP1
000000dd: PUSH1 0x20
000000df: ADD
000000e0: SWAP1
000000e1: SWAP2
000000e2: SWAP1
000000e3: DUP1
000000e4: CALLDATALOAD
000000e5: SWAP1
000000e6: PUSH1 0x20
000000e8: ADD
000000e9: SWAP1
000000ea: SWAP2
000000eb: SWAP1
000000ec: DUP1
000000ed: CALLDATALOAD
000000ee: PUSH1 0x00
000000f0: NOT
000000f1: AND
000000f2: SWAP1
000000f3: PUSH1 0x20
000000f5: ADD
000000f6: SWAP1
000000f7: SWAP2
000000f8: SWAP1
000000f9: POP
000000fa: POP
000000fb: PUSH2 0x0379
000000fe: JUMP
000000ff: JUMPDEST
00000100: STOP
00000101: JUMPDEST
00000102: CALLVALUE
00000103: ISZERO
00000104: PUSH2 0x010c
00000107: JUMPI
00000108: PUSH1 0x00
0000010a: DUP1
0000010b: REVERT
0000010c: JUMPDEST
0000010d: PUSH2 0x0122
00000110: PUSH1 0x04
00000112: DUP1
00000113: DUP1
00000114: CALLDATALOAD
00000115: SWAP1
00000116: PUSH1 0x20
00000118: ADD
00000119: SWAP1
0000011a: SWAP2
0000011b: SWAP1
0000011c: POP
0000011d: POP
0000011e: PUSH2 0x0641
00000121: JUMP
00000122: JUMPDEST
00000123: PUSH1 0x40
00000125: MLOAD
00000126: DUP1
00000127: DUP7
00000128: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000013d: AND
0000013e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000153: AND
00000154: DUP2
00000155: MSTORE
00000156: PUSH1 0x20
00000158: ADD
00000159: DUP6
0000015a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000016f: AND
00000170: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000185: AND
00000186: DUP2
00000187: MSTORE
00000188: PUSH1 0x20
0000018a: ADD
0000018b: DUP5
0000018c: DUP2
0000018d: MSTORE
0000018e: PUSH1 0x20
00000190: ADD
00000191: DUP4
00000192: PUSH1 0x05
00000194: DUP2
00000195: GT
00000196: ISZERO
00000197: PUSH2 0x019c
0000019a: JUMPI
0000019b: INVALID
0000019c: JUMPDEST
0000019d: PUSH1 0xff
0000019f: AND
000001a0: DUP2
000001a1: MSTORE
000001a2: PUSH1 0x20
000001a4: ADD
000001a5: DUP3
000001a6: DUP2
000001a7: MSTORE
000001a8: PUSH1 0x20
000001aa: ADD
000001ab: SWAP6
000001ac: POP
000001ad: POP
000001ae: POP
000001af: POP
000001b0: POP
000001b1: POP
000001b2: PUSH1 0x40
000001b4: MLOAD
000001b5: DUP1
000001b6: SWAP2
000001b7: SUB
000001b8: SWAP1
000001b9: RETURN
000001ba: JUMPDEST
000001bb: CALLVALUE
000001bc: ISZERO
000001bd: PUSH2 0x01c5
000001c0: JUMPI
000001c1: PUSH1 0x00
000001c3: DUP1
000001c4: REVERT
000001c5: JUMPDEST
000001c6: PUSH2 0x01cd
000001c9: PUSH2 0x06d3
000001cc: JUMP
000001cd: JUMPDEST
000001ce: PUSH1 0x40
000001d0: MLOAD
000001d1: DUP1
000001d2: DUP3
000001d3: DUP2
000001d4: MSTORE
000001d5: PUSH1 0x20
000001d7: ADD
000001d8: SWAP2
000001d9: POP
000001da: POP
000001db: PUSH1 0x40
000001dd: MLOAD
000001de: DUP1
000001df: SWAP2
000001e0: SUB
000001e1: SWAP1
000001e2: RETURN
000001e3: JUMPDEST
000001e4: CALLVALUE
000001e5: ISZERO
000001e6: PUSH2 0x01ee
000001e9: JUMPI
000001ea: PUSH1 0x00
000001ec: DUP1
000001ed: REVERT
000001ee: JUMPDEST
000001ef: PUSH2 0x0211
000001f2: PUSH1 0x04
000001f4: DUP1
000001f5: DUP1
000001f6: CALLDATALOAD
000001f7: SWAP1
000001f8: PUSH1 0x20
000001fa: ADD
000001fb: SWAP1
000001fc: SWAP2
000001fd: SWAP1
000001fe: DUP1
000001ff: CALLDATALOAD
00000200: PUSH1 0x00
00000202: NOT
00000203: AND
00000204: SWAP1
00000205: PUSH1 0x20
00000207: ADD
00000208: SWAP1
00000209: SWAP2
0000020a: SWAP1
0000020b: POP
0000020c: POP
0000020d: PUSH2 0x06d9
00000210: JUMP
00000211: JUMPDEST
00000212: STOP
00000213: JUMPDEST
00000214: CALLVALUE
00000215: ISZERO
00000216: PUSH2 0x021e
00000219: JUMPI
0000021a: PUSH1 0x00
0000021c: DUP1
0000021d: REVERT
0000021e: JUMPDEST
0000021f: PUSH2 0x0241
00000222: PUSH1 0x04
00000224: DUP1
00000225: DUP1
00000226: CALLDATALOAD
00000227: SWAP1
00000228: PUSH1 0x20
0000022a: ADD
0000022b: SWAP1
0000022c: SWAP2
0000022d: SWAP1
0000022e: DUP1
0000022f: CALLDATALOAD
00000230: PUSH1 0x00
00000232: NOT
00000233: AND
00000234: SWAP1
00000235: PUSH1 0x20
00000237: ADD
00000238: SWAP1
00000239: SWAP2
0000023a: SWAP1
0000023b: POP
0000023c: POP
0000023d: PUSH2 0x0833
00000240: JUMP
00000241: JUMPDEST
00000242: STOP
00000243: JUMPDEST
00000244: CALLVALUE
00000245: ISZERO
00000246: PUSH2 0x024e
00000249: JUMPI
0000024a: PUSH1 0x00
0000024c: DUP1
0000024d: REVERT
0000024e: JUMPDEST
0000024f: PUSH2 0x0299
00000252: PUSH1 0x04
00000254: DUP1
00000255: DUP1
00000256: CALLDATALOAD
00000257: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000026c: AND
0000026d: SWAP1
0000026e: PUSH1 0x20
00000270: ADD
00000271: SWAP1
00000272: SWAP2
00000273: SWAP1
00000274: DUP1
00000275: CALLDATALOAD
00000276: SWAP1
00000277: PUSH1 0x20
00000279: ADD
0000027a: SWAP1
0000027b: SWAP2
0000027c: SWAP1
0000027d: DUP1
0000027e: CALLDATALOAD
0000027f: SWAP1
00000280: PUSH1 0x20
00000282: ADD
00000283: SWAP1
00000284: SWAP2
00000285: SWAP1
00000286: DUP1
00000287: CALLDATALOAD
00000288: PUSH1 0x00
0000028a: NOT
0000028b: AND
0000028c: SWAP1
0000028d: PUSH1 0x20
0000028f: ADD
00000290: SWAP1
00000291: SWAP2
00000292: SWAP1
00000293: POP
00000294: POP
00000295: PUSH2 0x098e
00000298: JUMP
00000299: JUMPDEST
0000029a: STOP
0000029b: JUMPDEST
0000029c: CALLVALUE
0000029d: ISZERO
0000029e: PUSH2 0x02a6
000002a1: JUMPI
000002a2: PUSH1 0x00
000002a4: DUP1
000002a5: REVERT
000002a6: JUMPDEST
000002a7: PUSH2 0x02ae
000002aa: PUSH2 0x0bd5
000002ad: JUMP
000002ae: JUMPDEST
000002af: PUSH1 0x40
000002b1: MLOAD
000002b2: DUP1
000002b3: DUP3
000002b4: DUP2
000002b5: MSTORE
000002b6: PUSH1 0x20
000002b8: ADD
000002b9: SWAP2
000002ba: POP
000002bb: POP
000002bc: PUSH1 0x40
000002be: MLOAD
000002bf: DUP1
000002c0: SWAP2
000002c1: SUB
000002c2: SWAP1
000002c3: RETURN
000002c4: JUMPDEST
000002c5: CALLVALUE
000002c6: ISZERO
000002c7: PUSH2 0x02cf
000002ca: JUMPI
000002cb: PUSH1 0x00
000002cd: DUP1
000002ce: REVERT
000002cf: JUMPDEST
000002d0: PUSH2 0x02f2
000002d3: PUSH1 0x04
000002d5: DUP1
000002d6: DUP1
000002d7: CALLDATALOAD
000002d8: SWAP1
000002d9: PUSH1 0x20
000002db: ADD
000002dc: SWAP1
000002dd: SWAP2
000002de: SWAP1
000002df: DUP1
000002e0: CALLDATALOAD
000002e1: PUSH1 0x00
000002e3: NOT
000002e4: AND
000002e5: SWAP1
000002e6: PUSH1 0x20
000002e8: ADD
000002e9: SWAP1
000002ea: SWAP2
000002eb: SWAP1
000002ec: POP
000002ed: POP
000002ee: PUSH2 0x0bdb
000002f1: JUMP
000002f2: JUMPDEST
000002f3: STOP
000002f4: JUMPDEST
000002f5: PUSH2 0x0317
000002f8: PUSH1 0x04
000002fa: DUP1
000002fb: DUP1
000002fc: CALLDATALOAD
000002fd: SWAP1
000002fe: PUSH1 0x20
00000300: ADD
00000301: SWAP1
00000302: SWAP2
00000303: SWAP1
00000304: DUP1
00000305: CALLDATALOAD
00000306: PUSH1 0x00
00000308: NOT
00000309: AND
0000030a: SWAP1
0000030b: PUSH1 0x20
0000030d: ADD
0000030e: SWAP1
0000030f: SWAP2
00000310: SWAP1
00000311: POP
00000312: POP
00000313: PUSH2 0x0d78
00000316: JUMP
00000317: JUMPDEST
00000318: STOP
00000319: JUMPDEST
0000031a: CALLVALUE
0000031b: ISZERO
0000031c: PUSH2 0x0324
0000031f: JUMPI
00000320: PUSH1 0x00
00000322: DUP1
00000323: REVERT
00000324: JUMPDEST
00000325: PUSH2 0x0347
00000328: PUSH1 0x04
0000032a: DUP1
0000032b: DUP1
0000032c: CALLDATALOAD
0000032d: SWAP1
0000032e: PUSH1 0x20
00000330: ADD
00000331: SWAP1
00000332: SWAP2
00000333: SWAP1
00000334: DUP1
00000335: CALLDATALOAD
00000336: PUSH1 0x00
00000338: NOT
00000339: AND
0000033a: SWAP1
0000033b: PUSH1 0x20
0000033d: ADD
0000033e: SWAP1
0000033f: SWAP2
00000340: SWAP1
00000341: POP
00000342: POP
00000343: PUSH2 0x0fbc
00000346: JUMP
00000347: JUMPDEST
00000348: STOP
00000349: JUMPDEST
0000034a: CALLVALUE
0000034b: ISZERO
0000034c: PUSH2 0x0354
0000034f: JUMPI
00000350: PUSH1 0x00
00000352: DUP1
00000353: REVERT
00000354: JUMPDEST
00000355: PUSH2 0x0377
00000358: PUSH1 0x04
0000035a: DUP1
0000035b: DUP1
0000035c: CALLDATALOAD
0000035d: SWAP1
0000035e: PUSH1 0x20
00000360: ADD
00000361: SWAP1
00000362: SWAP2
00000363: SWAP1
00000364: DUP1
00000365: CALLDATALOAD
00000366: PUSH1 0x00
00000368: NOT
00000369: AND
0000036a: SWAP1
0000036b: PUSH1 0x20
0000036d: ADD
0000036e: SWAP1
0000036f: SWAP2
00000370: SWAP1
00000371: POP
00000372: POP
00000373: PUSH2 0x1110
00000376: JUMP
00000377: JUMPDEST
00000378: STOP
00000379: JUMPDEST
0000037a: PUSH2 0x0381
0000037d: PUSH2 0x12f3
00000380: JUMP
00000381: JUMPDEST
00000382: DUP4
00000383: CALLVALUE
00000384: LT
00000385: ISZERO
00000386: ISZERO
00000387: ISZERO
00000388: PUSH2 0x0390
0000038b: JUMPI
0000038c: PUSH1 0x00
0000038e: DUP1
0000038f: REVERT
00000390: JUMPDEST
00000391: DUP5
00000392: DUP2
00000393: PUSH1 0x00
00000395: ADD
00000396: SWAP1
00000397: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003ac: AND
000003ad: SWAP1
000003ae: DUP2
000003af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003c4: AND
000003c5: DUP2
000003c6: MSTORE
000003c7: POP
000003c8: POP
000003c9: CALLER
000003ca: DUP2
000003cb: PUSH1 0x20
000003cd: ADD
000003ce: SWAP1
000003cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003e4: AND
000003e5: SWAP1
000003e6: DUP2
000003e7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003fc: AND
000003fd: DUP2
000003fe: MSTORE
000003ff: POP
00000400: POP
00000401: DUP4
00000402: DUP2
00000403: PUSH1 0x40
00000405: ADD
00000406: DUP2
00000407: DUP2
00000408: MSTORE
00000409: POP
0000040a: POP
0000040b: PUSH1 0x01
0000040d: DUP2
0000040e: PUSH1 0x60
00000410: ADD
00000411: SWAP1
00000412: PUSH1 0x05
00000414: DUP2
00000415: GT
00000416: ISZERO
00000417: PUSH2 0x041c
0000041a: JUMPI
0000041b: INVALID
0000041c: JUMPDEST
0000041d: SWAP1
0000041e: DUP2
0000041f: PUSH1 0x05
00000421: DUP2
00000422: GT
00000423: ISZERO
00000424: PUSH2 0x0429
00000427: JUMPI
00000428: INVALID
00000429: JUMPDEST
0000042a: DUP2
0000042b: MSTORE
0000042c: POP
0000042d: POP
0000042e: PUSH1 0x01
00000430: DUP4
00000431: MUL
00000432: TIMESTAMP
00000433: ADD
00000434: DUP2
00000435: PUSH1 0x80
00000437: ADD
00000438: DUP2
00000439: DUP2
0000043a: MSTORE
0000043b: POP
0000043c: POP
0000043d: PUSH1 0x02
0000043f: DUP1
00000440: SLOAD
00000441: DUP1
00000442: PUSH1 0x01
00000444: ADD
00000445: DUP3
00000446: DUP2
00000447: PUSH2 0x0450
0000044a: SWAP2
0000044b: SWAP1
0000044c: PUSH2 0x135a
0000044f: JUMP
00000450: JUMPDEST
00000451: SWAP2
00000452: PUSH1 0x00
00000454: MSTORE
00000455: PUSH1 0x20
00000457: PUSH1 0x00
00000459: KECCAK256
0000045a: SWAP1
0000045b: PUSH1 0x05
0000045d: MUL
0000045e: ADD
0000045f: PUSH1 0x00
00000461: DUP4
00000462: SWAP1
00000463: SWAP2
00000464: SWAP1
00000465: SWAP2
00000466: POP
00000467: PUSH1 0x00
00000469: DUP3
0000046a: ADD
0000046b: MLOAD
0000046c: DUP2
0000046d: PUSH1 0x00
0000046f: ADD
00000470: PUSH1 0x00
00000472: PUSH2 0x0100
00000475: EXP
00000476: DUP2
00000477: SLOAD
00000478: DUP2
00000479: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000048e: MUL
0000048f: NOT
00000490: AND
00000491: SWAP1
00000492: DUP4
00000493: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004a8: AND
000004a9: MUL
000004aa: OR
000004ab: SWAP1
000004ac: SSTORE
000004ad: POP
000004ae: PUSH1 0x20
000004b0: DUP3
000004b1: ADD
000004b2: MLOAD
000004b3: DUP2
000004b4: PUSH1 0x01
000004b6: ADD
000004b7: PUSH1 0x00
000004b9: PUSH2 0x0100
000004bc: EXP
000004bd: DUP2
000004be: SLOAD
000004bf: DUP2
000004c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004d5: MUL
000004d6: NOT
000004d7: AND
000004d8: SWAP1
000004d9: DUP4
000004da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004ef: AND
000004f0: MUL
000004f1: OR
000004f2: SWAP1
000004f3: SSTORE
000004f4: POP
000004f5: PUSH1 0x40
000004f7: DUP3
000004f8: ADD
000004f9: MLOAD
000004fa: DUP2
000004fb: PUSH1 0x02
000004fd: ADD
000004fe: SSTORE
000004ff: PUSH1 0x60
00000501: DUP3
00000502: ADD
00000503: MLOAD
00000504: DUP2
00000505: PUSH1 0x03
00000507: ADD
00000508: PUSH1 0x00
0000050a: PUSH2 0x0100
0000050d: EXP
0000050e: DUP2
0000050f: SLOAD
00000510: DUP2
00000511: PUSH1 0xff
00000513: MUL
00000514: NOT
00000515: AND
00000516: SWAP1
00000517: DUP4
00000518: PUSH1 0x05
0000051a: DUP2
0000051b: GT
0000051c: ISZERO
0000051d: PUSH2 0x0522
00000520: JUMPI
00000521: INVALID
00000522: JUMPDEST
00000523: MUL
00000524: OR
00000525: SWAP1
00000526: SSTORE
00000527: POP
00000528: PUSH1 0x80
0000052a: DUP3
0000052b: ADD
0000052c: MLOAD
0000052d: DUP2
0000052e: PUSH1 0x04
00000530: ADD
00000531: SSTORE
00000532: POP
00000533: POP
00000534: POP
00000535: PUSH32 0xbde301cda1a53e4996e7061649145cdb878697bd928c5344ad670f867666807d
00000556: PUSH1 0x01
00000558: PUSH1 0x02
0000055a: DUP1
0000055b: SLOAD
0000055c: SWAP1
0000055d: POP
0000055e: SUB
0000055f: DUP7
00000560: CALLER
00000561: DUP6
00000562: PUSH1 0x40
00000564: MLOAD
00000565: DUP1
00000566: DUP6
00000567: DUP2
00000568: MSTORE
00000569: PUSH1 0x20
0000056b: ADD
0000056c: DUP5
0000056d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000582: AND
00000583: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000598: AND
00000599: DUP2
0000059a: MSTORE
0000059b: PUSH1 0x20
0000059d: ADD
0000059e: DUP4
0000059f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005b4: AND
000005b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005ca: AND
000005cb: DUP2
000005cc: MSTORE
000005cd: PUSH1 0x20
000005cf: ADD
000005d0: DUP3
000005d1: PUSH1 0x00
000005d3: NOT
000005d4: AND
000005d5: PUSH1 0x00
000005d7: NOT
000005d8: AND
000005d9: DUP2
000005da: MSTORE
000005db: PUSH1 0x20
000005dd: ADD
000005de: SWAP5
000005df: POP
000005e0: POP
000005e1: POP
000005e2: POP
000005e3: POP
000005e4: PUSH1 0x40
000005e6: MLOAD
000005e7: DUP1
000005e8: SWAP2
000005e9: SUB
000005ea: SWAP1
000005eb: LOG1
000005ec: PUSH32 0x6a5ee55c9df2daa4375d2b5e4ec8b9e5662f1863207bcbe6e38c6f5fe3c24300
0000060d: PUSH1 0x01
0000060f: PUSH1 0x02
00000611: DUP1
00000612: SLOAD
00000613: SWAP1
00000614: POP
00000615: SUB
00000616: DUP4
00000617: PUSH1 0x40
00000619: MLOAD
0000061a: DUP1
0000061b: DUP4
0000061c: DUP2
0000061d: MSTORE
0000061e: PUSH1 0x20
00000620: ADD
00000621: DUP3
00000622: PUSH1 0x00
00000624: NOT
00000625: AND
00000626: PUSH1 0x00
00000628: NOT
00000629: AND
0000062a: DUP2
0000062b: MSTORE
0000062c: PUSH1 0x20
0000062e: ADD
0000062f: SWAP3
00000630: POP
00000631: POP
00000632: POP
00000633: PUSH1 0x40
00000635: MLOAD
00000636: DUP1
00000637: SWAP2
00000638: SUB
00000639: SWAP1
0000063a: LOG1
0000063b: POP
0000063c: POP
0000063d: POP
0000063e: POP
0000063f: POP
00000640: JUMP
00000641: JUMPDEST
00000642: PUSH1 0x02
00000644: DUP2
00000645: DUP2
00000646: SLOAD
00000647: DUP2
00000648: LT
00000649: ISZERO
0000064a: ISZERO
0000064b: PUSH2 0x0650
0000064e: JUMPI
0000064f: INVALID
00000650: JUMPDEST
00000651: SWAP1
00000652: PUSH1 0x00
00000654: MSTORE
00000655: PUSH1 0x20
00000657: PUSH1 0x00
00000659: KECCAK256
0000065a: SWAP1
0000065b: PUSH1 0x05
0000065d: MUL
0000065e: ADD
0000065f: PUSH1 0x00
00000661: SWAP2
00000662: POP
00000663: SWAP1
00000664: POP
00000665: DUP1
00000666: PUSH1 0x00
00000668: ADD
00000669: PUSH1 0x00
0000066b: SWAP1
0000066c: SLOAD
0000066d: SWAP1
0000066e: PUSH2 0x0100
00000671: EXP
00000672: SWAP1
00000673: DIV
00000674: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000689: AND
0000068a: SWAP1
0000068b: DUP1
0000068c: PUSH1 0x01
0000068e: ADD
0000068f: PUSH1 0x00
00000691: SWAP1
00000692: SLOAD
00000693: SWAP1
00000694: PUSH2 0x0100
00000697: EXP
00000698: SWAP1
00000699: DIV
0000069a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006af: AND
000006b0: SWAP1
000006b1: DUP1
000006b2: PUSH1 0x02
000006b4: ADD
000006b5: SLOAD
000006b6: SWAP1
000006b7: DUP1
000006b8: PUSH1 0x03
000006ba: ADD
000006bb: PUSH1 0x00
000006bd: SWAP1
000006be: SLOAD
000006bf: SWAP1
000006c0: PUSH2 0x0100
000006c3: EXP
000006c4: SWAP1
000006c5: DIV
000006c6: PUSH1 0xff
000006c8: AND
000006c9: SWAP1
000006ca: DUP1
000006cb: PUSH1 0x04
000006cd: ADD
000006ce: SLOAD
000006cf: SWAP1
000006d0: POP
000006d1: DUP6
000006d2: JUMP
000006d3: JUMPDEST
000006d4: PUSH1 0x01
000006d6: SLOAD
000006d7: DUP2
000006d8: JUMP
000006d9: JUMPDEST
000006da: DUP2
000006db: PUSH1 0x02
000006dd: DUP2
000006de: DUP2
000006df: SLOAD
000006e0: DUP2
000006e1: LT
000006e2: ISZERO
000006e3: ISZERO
000006e4: PUSH2 0x06e9
000006e7: JUMPI
000006e8: INVALID
000006e9: JUMPDEST
000006ea: SWAP1
000006eb: PUSH1 0x00
000006ed: MSTORE
000006ee: PUSH1 0x20
000006f0: PUSH1 0x00
000006f2: KECCAK256
000006f3: SWAP1
000006f4: PUSH1 0x05
000006f6: MUL
000006f7: ADD
000006f8: PUSH1 0x01
000006fa: ADD
000006fb: PUSH1 0x00
000006fd: SWAP1
000006fe: SLOAD
000006ff: SWAP1
00000700: PUSH2 0x0100
00000703: EXP
00000704: SWAP1
00000705: DIV
00000706: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000071b: AND
0000071c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000731: AND
00000732: CALLER
00000733: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000748: AND
00000749: EQ
0000074a: ISZERO
0000074b: ISZERO
0000074c: PUSH2 0x0754
0000074f: JUMPI
00000750: PUSH1 0x00
00000752: DUP1
00000753: REVERT
00000754: JUMPDEST
00000755: PUSH1 0x03
00000757: PUSH1 0x05
00000759: DUP2
0000075a: GT
0000075b: ISZERO
0000075c: PUSH2 0x0761
0000075f: JUMPI
00000760: INVALID
00000761: JUMPDEST
00000762: PUSH1 0x02
00000764: DUP5
00000765: DUP2
00000766: SLOAD
00000767: DUP2
00000768: LT
00000769: ISZERO
0000076a: ISZERO
0000076b: PUSH2 0x0770
0000076e: JUMPI
0000076f: INVALID
00000770: JUMPDEST
00000771: SWAP1
00000772: PUSH1 0x00
00000774: MSTORE
00000775: PUSH1 0x20
00000777: PUSH1 0x00
00000779: KECCAK256
0000077a: SWAP1
0000077b: PUSH1 0x05
0000077d: MUL
0000077e: ADD
0000077f: PUSH1 0x03
00000781: ADD
00000782: PUSH1 0x00
00000784: SWAP1
00000785: SLOAD
00000786: SWAP1
00000787: PUSH2 0x0100
0000078a: EXP
0000078b: SWAP1
0000078c: DIV
0000078d: PUSH1 0xff
0000078f: AND
00000790: PUSH1 0x05
00000792: DUP2
00000793: GT
00000794: ISZERO
00000795: PUSH2 0x079a
00000798: JUMPI
00000799: INVALID
0000079a: JUMPDEST
0000079b: EQ
0000079c: ISZERO
0000079d: ISZERO
0000079e: PUSH2 0x07a6
000007a1: JUMPI
000007a2: PUSH1 0x00
000007a4: DUP1
000007a5: REVERT
000007a6: JUMPDEST
000007a7: PUSH1 0x02
000007a9: DUP1
000007aa: DUP5
000007ab: DUP2
000007ac: SLOAD
000007ad: DUP2
000007ae: LT
000007af: ISZERO
000007b0: ISZERO
000007b1: PUSH2 0x07b6
000007b4: JUMPI
000007b5: INVALID
000007b6: JUMPDEST
000007b7: SWAP1
000007b8: PUSH1 0x00
000007ba: MSTORE
000007bb: PUSH1 0x20
000007bd: PUSH1 0x00
000007bf: KECCAK256
000007c0: SWAP1
000007c1: PUSH1 0x05
000007c3: MUL
000007c4: ADD
000007c5: PUSH1 0x03
000007c7: ADD
000007c8: PUSH1 0x00
000007ca: PUSH2 0x0100
000007cd: EXP
000007ce: DUP2
000007cf: SLOAD
000007d0: DUP2
000007d1: PUSH1 0xff
000007d3: MUL
000007d4: NOT
000007d5: AND
000007d6: SWAP1
000007d7: DUP4
000007d8: PUSH1 0x05
000007da: DUP2
000007db: GT
000007dc: ISZERO
000007dd: PUSH2 0x07e2
000007e0: JUMPI
000007e1: INVALID
000007e2: JUMPDEST
000007e3: MUL
000007e4: OR
000007e5: SWAP1
000007e6: SSTORE
000007e7: POP
000007e8: PUSH32 0xbda7bc7c8123a85aa855c777d3191b2dc42bec38c45638643006fb84e76abf7a
00000809: DUP4
0000080a: DUP4
0000080b: PUSH1 0x40
0000080d: MLOAD
0000080e: DUP1
0000080f: DUP4
00000810: DUP2
00000811: MSTORE
00000812: PUSH1 0x20
00000814: ADD
00000815: DUP3
00000816: PUSH1 0x00
00000818: NOT
00000819: AND
0000081a: PUSH1 0x00
0000081c: NOT
0000081d: AND
0000081e: DUP2
0000081f: MSTORE
00000820: PUSH1 0x20
00000822: ADD
00000823: SWAP3
00000824: POP
00000825: POP
00000826: POP
00000827: PUSH1 0x40
00000829: MLOAD
0000082a: DUP1
0000082b: SWAP2
0000082c: SUB
0000082d: SWAP1
0000082e: LOG1
0000082f: POP
00000830: POP
00000831: POP
00000832: JUMP
00000833: JUMPDEST
00000834: DUP2
00000835: PUSH1 0x02
00000837: DUP2
00000838: DUP2
00000839: SLOAD
0000083a: DUP2
0000083b: LT
0000083c: ISZERO
0000083d: ISZERO
0000083e: PUSH2 0x0843
00000841: JUMPI
00000842: INVALID
00000843: JUMPDEST
00000844: SWAP1
00000845: PUSH1 0x00
00000847: MSTORE
00000848: PUSH1 0x20
0000084a: PUSH1 0x00
0000084c: KECCAK256
0000084d: SWAP1
0000084e: PUSH1 0x05
00000850: MUL
00000851: ADD
00000852: PUSH1 0x01
00000854: ADD
00000855: PUSH1 0x00
00000857: SWAP1
00000858: SLOAD
00000859: SWAP1
0000085a: PUSH2 0x0100
0000085d: EXP
0000085e: SWAP1
0000085f: DIV
00000860: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000875: AND
00000876: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000088b: AND
0000088c: CALLER
0000088d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008a2: AND
000008a3: EQ
000008a4: ISZERO
000008a5: ISZERO
000008a6: PUSH2 0x08ae
000008a9: JUMPI
000008aa: PUSH1 0x00
000008ac: DUP1
000008ad: REVERT
000008ae: JUMPDEST
000008af: PUSH1 0x02
000008b1: PUSH1 0x05
000008b3: DUP2
000008b4: GT
000008b5: ISZERO
000008b6: PUSH2 0x08bb
000008b9: JUMPI
000008ba: INVALID
000008bb: JUMPDEST
000008bc: PUSH1 0x02
000008be: DUP5
000008bf: DUP2
000008c0: SLOAD
000008c1: DUP2
000008c2: LT
000008c3: ISZERO
000008c4: ISZERO
000008c5: PUSH2 0x08ca
000008c8: JUMPI
000008c9: INVALID
000008ca: JUMPDEST
000008cb: SWAP1
000008cc: PUSH1 0x00
000008ce: MSTORE
000008cf: PUSH1 0x20
000008d1: PUSH1 0x00
000008d3: KECCAK256
000008d4: SWAP1
000008d5: PUSH1 0x05
000008d7: MUL
000008d8: ADD
000008d9: PUSH1 0x03
000008db: ADD
000008dc: PUSH1 0x00
000008de: SWAP1
000008df: SLOAD
000008e0: SWAP1
000008e1: PUSH2 0x0100
000008e4: EXP
000008e5: SWAP1
000008e6: DIV
000008e7: PUSH1 0xff
000008e9: AND
000008ea: PUSH1 0x05
000008ec: DUP2
000008ed: GT
000008ee: ISZERO
000008ef: PUSH2 0x08f4
000008f2: JUMPI
000008f3: INVALID
000008f4: JUMPDEST
000008f5: EQ
000008f6: ISZERO
000008f7: ISZERO
000008f8: PUSH2 0x0900
000008fb: JUMPI
000008fc: PUSH1 0x00
000008fe: DUP1
000008ff: REVERT
00000900: JUMPDEST
00000901: PUSH1 0x03
00000903: PUSH1 0x02
00000905: DUP5
00000906: DUP2
00000907: SLOAD
00000908: DUP2
00000909: LT
0000090a: ISZERO
0000090b: ISZERO
0000090c: PUSH2 0x0911
0000090f: JUMPI
00000910: INVALID
00000911: JUMPDEST
00000912: SWAP1
00000913: PUSH1 0x00
00000915: MSTORE
00000916: PUSH1 0x20
00000918: PUSH1 0x00
0000091a: KECCAK256
0000091b: SWAP1
0000091c: PUSH1 0x05
0000091e: MUL
0000091f: ADD
00000920: PUSH1 0x03
00000922: ADD
00000923: PUSH1 0x00
00000925: PUSH2 0x0100
00000928: EXP
00000929: DUP2
0000092a: SLOAD
0000092b: DUP2
0000092c: PUSH1 0xff
0000092e: MUL
0000092f: NOT
00000930: AND
00000931: SWAP1
00000932: DUP4
00000933: PUSH1 0x05
00000935: DUP2
00000936: GT
00000937: ISZERO
00000938: PUSH2 0x093d
0000093b: JUMPI
0000093c: INVALID
0000093d: JUMPDEST
0000093e: MUL
0000093f: OR
00000940: SWAP1
00000941: SSTORE
00000942: POP
00000943: PUSH32 0xae76720f3a5d319b91bc94d8a6c2e3096a4f3554c8cb897e3aedfced5824a10a
00000964: DUP4
00000965: DUP4
00000966: PUSH1 0x40
00000968: MLOAD
00000969: DUP1
0000096a: DUP4
0000096b: DUP2
0000096c: MSTORE
0000096d: PUSH1 0x20
0000096f: ADD
00000970: DUP3
00000971: PUSH1 0x00
00000973: NOT
00000974: AND
00000975: PUSH1 0x00
00000977: NOT
00000978: AND
00000979: DUP2
0000097a: MSTORE
0000097b: PUSH1 0x20
0000097d: ADD
0000097e: SWAP3
0000097f: POP
00000980: POP
00000981: POP
00000982: PUSH1 0x40
00000984: MLOAD
00000985: DUP1
00000986: SWAP2
00000987: SUB
00000988: SWAP1
00000989: LOG1
0000098a: POP
0000098b: POP
0000098c: POP
0000098d: JUMP
0000098e: JUMPDEST
0000098f: PUSH2 0x0996
00000992: PUSH2 0x12f3
00000995: JUMP
00000996: JUMPDEST
00000997: CALLER
00000998: DUP2
00000999: PUSH1 0x00
0000099b: ADD
0000099c: SWAP1
0000099d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009b2: AND
000009b3: SWAP1
000009b4: DUP2
000009b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009ca: AND
000009cb: DUP2
000009cc: MSTORE
000009cd: POP
000009ce: POP
000009cf: DUP5
000009d0: DUP2
000009d1: PUSH1 0x20
000009d3: ADD
000009d4: SWAP1
000009d5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009ea: AND
000009eb: SWAP1
000009ec: DUP2
000009ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a02: AND
00000a03: DUP2
00000a04: MSTORE
00000a05: POP
00000a06: POP
00000a07: DUP4
00000a08: DUP2
00000a09: PUSH1 0x40
00000a0b: ADD
00000a0c: DUP2
00000a0d: DUP2
00000a0e: MSTORE
00000a0f: POP
00000a10: POP
00000a11: PUSH1 0x01
00000a13: DUP4
00000a14: MUL
00000a15: TIMESTAMP
00000a16: ADD
00000a17: DUP2
00000a18: PUSH1 0x80
00000a1a: ADD
00000a1b: DUP2
00000a1c: DUP2
00000a1d: MSTORE
00000a1e: POP
00000a1f: POP
00000a20: PUSH1 0x02
00000a22: DUP1
00000a23: SLOAD
00000a24: DUP1
00000a25: PUSH1 0x01
00000a27: ADD
00000a28: DUP3
00000a29: DUP2
00000a2a: PUSH2 0x0a33
00000a2d: SWAP2
00000a2e: SWAP1
00000a2f: PUSH2 0x135a
00000a32: JUMP
00000a33: JUMPDEST
00000a34: SWAP2
00000a35: PUSH1 0x00
00000a37: MSTORE
00000a38: PUSH1 0x20
00000a3a: PUSH1 0x00
00000a3c: KECCAK256
00000a3d: SWAP1
00000a3e: PUSH1 0x05
00000a40: MUL
00000a41: ADD
00000a42: PUSH1 0x00
00000a44: DUP4
00000a45: SWAP1
00000a46: SWAP2
00000a47: SWAP1
00000a48: SWAP2
00000a49: POP
00000a4a: PUSH1 0x00
00000a4c: DUP3
00000a4d: ADD
00000a4e: MLOAD
00000a4f: DUP2
00000a50: PUSH1 0x00
00000a52: ADD
00000a53: PUSH1 0x00
00000a55: PUSH2 0x0100
00000a58: EXP
00000a59: DUP2
00000a5a: SLOAD
00000a5b: DUP2
00000a5c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a71: MUL
00000a72: NOT
00000a73: AND
00000a74: SWAP1
00000a75: DUP4
00000a76: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a8b: AND
00000a8c: MUL
00000a8d: OR
00000a8e: SWAP1
00000a8f: SSTORE
00000a90: POP
00000a91: PUSH1 0x20
00000a93: DUP3
00000a94: ADD
00000a95: MLOAD
00000a96: DUP2
00000a97: PUSH1 0x01
00000a99: ADD
00000a9a: PUSH1 0x00
00000a9c: PUSH2 0x0100
00000a9f: EXP
00000aa0: DUP2
00000aa1: SLOAD
00000aa2: DUP2
00000aa3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ab8: MUL
00000ab9: NOT
00000aba: AND
00000abb: SWAP1
00000abc: DUP4
00000abd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ad2: AND
00000ad3: MUL
00000ad4: OR
00000ad5: SWAP1
00000ad6: SSTORE
00000ad7: POP
00000ad8: PUSH1 0x40
00000ada: DUP3
00000adb: ADD
00000adc: MLOAD
00000add: DUP2
00000ade: PUSH1 0x02
00000ae0: ADD
00000ae1: SSTORE
00000ae2: PUSH1 0x60
00000ae4: DUP3
00000ae5: ADD
00000ae6: MLOAD
00000ae7: DUP2
00000ae8: PUSH1 0x03
00000aea: ADD
00000aeb: PUSH1 0x00
00000aed: PUSH2 0x0100
00000af0: EXP
00000af1: DUP2
00000af2: SLOAD
00000af3: DUP2
00000af4: PUSH1 0xff
00000af6: MUL
00000af7: NOT
00000af8: AND
00000af9: SWAP1
00000afa: DUP4
00000afb: PUSH1 0x05
00000afd: DUP2
00000afe: GT
00000aff: ISZERO
00000b00: PUSH2 0x0b05
00000b03: JUMPI
00000b04: INVALID
00000b05: JUMPDEST
00000b06: MUL
00000b07: OR
00000b08: SWAP1
00000b09: SSTORE
00000b0a: POP
00000b0b: PUSH1 0x80
00000b0d: DUP3
00000b0e: ADD
00000b0f: MLOAD
00000b10: DUP2
00000b11: PUSH1 0x04
00000b13: ADD
00000b14: SSTORE
00000b15: POP
00000b16: POP
00000b17: POP
00000b18: PUSH32 0xbde301cda1a53e4996e7061649145cdb878697bd928c5344ad670f867666807d
00000b39: PUSH1 0x01
00000b3b: PUSH1 0x02
00000b3d: DUP1
00000b3e: SLOAD
00000b3f: SWAP1
00000b40: POP
00000b41: SUB
00000b42: CALLER
00000b43: DUP8
00000b44: DUP6
00000b45: PUSH1 0x40
00000b47: MLOAD
00000b48: DUP1
00000b49: DUP6
00000b4a: DUP2
00000b4b: MSTORE
00000b4c: PUSH1 0x20
00000b4e: ADD
00000b4f: DUP5
00000b50: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b65: AND
00000b66: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b7b: AND
00000b7c: DUP2
00000b7d: MSTORE
00000b7e: PUSH1 0x20
00000b80: ADD
00000b81: DUP4
00000b82: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b97: AND
00000b98: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bad: AND
00000bae: DUP2
00000baf: MSTORE
00000bb0: PUSH1 0x20
00000bb2: ADD
00000bb3: DUP3
00000bb4: PUSH1 0x00
00000bb6: NOT
00000bb7: AND
00000bb8: PUSH1 0x00
00000bba: NOT
00000bbb: AND
00000bbc: DUP2
00000bbd: MSTORE
00000bbe: PUSH1 0x20
00000bc0: ADD
00000bc1: SWAP5
00000bc2: POP
00000bc3: POP
00000bc4: POP
00000bc5: POP
00000bc6: POP
00000bc7: PUSH1 0x40
00000bc9: MLOAD
00000bca: DUP1
00000bcb: SWAP2
00000bcc: SUB
00000bcd: SWAP1
00000bce: LOG1
00000bcf: POP
00000bd0: POP
00000bd1: POP
00000bd2: POP
00000bd3: POP
00000bd4: JUMP
00000bd5: JUMPDEST
00000bd6: PUSH1 0x00
00000bd8: SLOAD
00000bd9: DUP2
00000bda: JUMP
00000bdb: JUMPDEST
00000bdc: PUSH1 0x00
00000bde: DUP3
00000bdf: PUSH1 0x02
00000be1: DUP2
00000be2: DUP2
00000be3: SLOAD
00000be4: DUP2
00000be5: LT
00000be6: ISZERO
00000be7: ISZERO
00000be8: PUSH2 0x0bed
00000beb: JUMPI
00000bec: INVALID
00000bed: JUMPDEST
00000bee: SWAP1
00000bef: PUSH1 0x00
00000bf1: MSTORE
00000bf2: PUSH1 0x20
00000bf4: PUSH1 0x00
00000bf6: KECCAK256
00000bf7: SWAP1
00000bf8: PUSH1 0x05
00000bfa: MUL
00000bfb: ADD
00000bfc: PUSH1 0x00
00000bfe: ADD
00000bff: PUSH1 0x00
00000c01: SWAP1
00000c02: SLOAD
00000c03: SWAP1
00000c04: PUSH2 0x0100
00000c07: EXP
00000c08: SWAP1
00000c09: DIV
00000c0a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c1f: AND
00000c20: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c35: AND
00000c36: CALLER
00000c37: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c4c: AND
00000c4d: EQ
00000c4e: ISZERO
00000c4f: ISZERO
00000c50: PUSH2 0x0c58
00000c53: JUMPI
00000c54: PUSH1 0x00
00000c56: DUP1
00000c57: REVERT
00000c58: JUMPDEST
00000c59: PUSH1 0x02
00000c5b: DUP5
00000c5c: DUP2
00000c5d: SLOAD
00000c5e: DUP2
00000c5f: LT
00000c60: ISZERO
00000c61: ISZERO
00000c62: PUSH2 0x0c67
00000c65: JUMPI
00000c66: INVALID
00000c67: JUMPDEST
00000c68: SWAP1
00000c69: PUSH1 0x00
00000c6b: MSTORE
00000c6c: PUSH1 0x20
00000c6e: PUSH1 0x00
00000c70: KECCAK256
00000c71: SWAP1
00000c72: PUSH1 0x05
00000c74: MUL
00000c75: ADD
00000c76: SWAP2
00000c77: POP
00000c78: PUSH1 0x02
00000c7a: PUSH1 0x05
00000c7c: DUP2
00000c7d: GT
00000c7e: ISZERO
00000c7f: PUSH2 0x0c84
00000c82: JUMPI
00000c83: INVALID
00000c84: JUMPDEST
00000c85: DUP3
00000c86: PUSH1 0x03
00000c88: ADD
00000c89: PUSH1 0x00
00000c8b: SWAP1
00000c8c: SLOAD
00000c8d: SWAP1
00000c8e: PUSH2 0x0100
00000c91: EXP
00000c92: SWAP1
00000c93: DIV
00000c94: PUSH1 0xff
00000c96: AND
00000c97: PUSH1 0x05
00000c99: DUP2
00000c9a: GT
00000c9b: ISZERO
00000c9c: PUSH2 0x0ca1
00000c9f: JUMPI
00000ca0: INVALID
00000ca1: JUMPDEST
00000ca2: EQ
00000ca3: DUP1
00000ca4: ISZERO
00000ca5: PUSH2 0x0cb6
00000ca8: JUMPI
00000ca9: POP
00000caa: PUSH1 0x00
00000cac: SLOAD
00000cad: DUP3
00000cae: PUSH1 0x04
00000cb0: ADD
00000cb1: SLOAD
00000cb2: ADD
00000cb3: TIMESTAMP
00000cb4: LT
00000cb5: ISZERO
00000cb6: JUMPDEST
00000cb7: ISZERO
00000cb8: ISZERO
00000cb9: PUSH2 0x0cc1
00000cbc: JUMPI
00000cbd: PUSH1 0x00
00000cbf: DUP1
00000cc0: REVERT
00000cc1: JUMPDEST
00000cc2: PUSH1 0x04
00000cc4: DUP3
00000cc5: PUSH1 0x03
00000cc7: ADD
00000cc8: PUSH1 0x00
00000cca: PUSH2 0x0100
00000ccd: EXP
00000cce: DUP2
00000ccf: SLOAD
00000cd0: DUP2
00000cd1: PUSH1 0xff
00000cd3: MUL
00000cd4: NOT
00000cd5: AND
00000cd6: SWAP1
00000cd7: DUP4
00000cd8: PUSH1 0x05
00000cda: DUP2
00000cdb: GT
00000cdc: ISZERO
00000cdd: PUSH2 0x0ce2
00000ce0: JUMPI
00000ce1: INVALID
00000ce2: JUMPDEST
00000ce3: MUL
00000ce4: OR
00000ce5: SWAP1
00000ce6: SSTORE
00000ce7: POP
00000ce8: CALLER
00000ce9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cfe: AND
00000cff: PUSH2 0x08fc
00000d02: DUP4
00000d03: PUSH1 0x02
00000d05: ADD
00000d06: SLOAD
00000d07: SWAP1
00000d08: DUP2
00000d09: ISZERO
00000d0a: MUL
00000d0b: SWAP1
00000d0c: PUSH1 0x40
00000d0e: MLOAD
00000d0f: PUSH1 0x00
00000d11: PUSH1 0x40
00000d13: MLOAD
00000d14: DUP1
00000d15: DUP4
00000d16: SUB
00000d17: DUP2
00000d18: DUP6
00000d19: DUP9
00000d1a: DUP9
00000d1b: CALL
00000d1c: SWAP4
00000d1d: POP
00000d1e: POP
00000d1f: POP
00000d20: POP
00000d21: ISZERO
00000d22: ISZERO
00000d23: PUSH2 0x0d2b
00000d26: JUMPI
00000d27: PUSH1 0x00
00000d29: DUP1
00000d2a: REVERT
00000d2b: JUMPDEST
00000d2c: PUSH32 0x86e48a712d324364a79089a18be31e993ed6bda36550b789f988e7aaf9ed7cf8
00000d4d: DUP5
00000d4e: DUP5
00000d4f: PUSH1 0x40
00000d51: MLOAD
00000d52: DUP1
00000d53: DUP4
00000d54: DUP2
00000d55: MSTORE
00000d56: PUSH1 0x20
00000d58: ADD
00000d59: DUP3
00000d5a: PUSH1 0x00
00000d5c: NOT
00000d5d: AND
00000d5e: PUSH1 0x00
00000d60: NOT
00000d61: AND
00000d62: DUP2
00000d63: MSTORE
00000d64: PUSH1 0x20
00000d66: ADD
00000d67: SWAP3
00000d68: POP
00000d69: POP
00000d6a: POP
00000d6b: PUSH1 0x40
00000d6d: MLOAD
00000d6e: DUP1
00000d6f: SWAP2
00000d70: SUB
00000d71: SWAP1
00000d72: LOG1
00000d73: POP
00000d74: POP
00000d75: POP
00000d76: POP
00000d77: JUMP
00000d78: JUMPDEST
00000d79: PUSH1 0x00
00000d7b: PUSH1 0x05
00000d7d: DUP2
00000d7e: GT
00000d7f: ISZERO
00000d80: PUSH2 0x0d85
00000d83: JUMPI
00000d84: INVALID
00000d85: JUMPDEST
00000d86: PUSH1 0x02
00000d88: DUP4
00000d89: DUP2
00000d8a: SLOAD
00000d8b: DUP2
00000d8c: LT
00000d8d: ISZERO
00000d8e: ISZERO
00000d8f: PUSH2 0x0d94
00000d92: JUMPI
00000d93: INVALID
00000d94: JUMPDEST
00000d95: SWAP1
00000d96: PUSH1 0x00
00000d98: MSTORE
00000d99: PUSH1 0x20
00000d9b: PUSH1 0x00
00000d9d: KECCAK256
00000d9e: SWAP1
00000d9f: PUSH1 0x05
00000da1: MUL
00000da2: ADD
00000da3: PUSH1 0x03
00000da5: ADD
00000da6: PUSH1 0x00
00000da8: SWAP1
00000da9: SLOAD
00000daa: SWAP1
00000dab: PUSH2 0x0100
00000dae: EXP
00000daf: SWAP1
00000db0: DIV
00000db1: PUSH1 0xff
00000db3: AND
00000db4: PUSH1 0x05
00000db6: DUP2
00000db7: GT
00000db8: ISZERO
00000db9: PUSH2 0x0dbe
00000dbc: JUMPI
00000dbd: INVALID
00000dbe: JUMPDEST
00000dbf: EQ
00000dc0: DUP1
00000dc1: ISZERO
00000dc2: PUSH2 0x0deb
00000dc5: JUMPI
00000dc6: POP
00000dc7: PUSH1 0x02
00000dc9: DUP3
00000dca: DUP2
00000dcb: SLOAD
00000dcc: DUP2
00000dcd: LT
00000dce: ISZERO
00000dcf: ISZERO
00000dd0: PUSH2 0x0dd5
00000dd3: JUMPI
00000dd4: INVALID
00000dd5: JUMPDEST
00000dd6: SWAP1
00000dd7: PUSH1 0x00
00000dd9: MSTORE
00000dda: PUSH1 0x20
00000ddc: PUSH1 0x00
00000dde: KECCAK256
00000ddf: SWAP1
00000de0: PUSH1 0x05
00000de2: MUL
00000de3: ADD
00000de4: PUSH1 0x02
00000de6: ADD
00000de7: SLOAD
00000de8: CALLVALUE
00000de9: LT
00000dea: ISZERO
00000deb: JUMPDEST
00000dec: ISZERO
00000ded: ISZERO
00000dee: PUSH2 0x0df6
00000df1: JUMPI
00000df2: PUSH1 0x00
00000df4: DUP1
00000df5: REVERT
00000df6: JUMPDEST
00000df7: PUSH1 0x00
00000df9: PUSH1 0x02
00000dfb: DUP4
00000dfc: DUP2
00000dfd: SLOAD
00000dfe: DUP2
00000dff: LT
00000e00: ISZERO
00000e01: ISZERO
00000e02: PUSH2 0x0e07
00000e05: JUMPI
00000e06: INVALID
00000e07: JUMPDEST
00000e08: SWAP1
00000e09: PUSH1 0x00
00000e0b: MSTORE
00000e0c: PUSH1 0x20
00000e0e: PUSH1 0x00
00000e10: KECCAK256
00000e11: SWAP1
00000e12: PUSH1 0x05
00000e14: MUL
00000e15: ADD
00000e16: PUSH1 0x01
00000e18: ADD
00000e19: PUSH1 0x00
00000e1b: SWAP1
00000e1c: SLOAD
00000e1d: SWAP1
00000e1e: PUSH2 0x0100
00000e21: EXP
00000e22: SWAP1
00000e23: DIV
00000e24: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e39: AND
00000e3a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e4f: AND
00000e50: EQ
00000e51: ISZERO
00000e52: PUSH2 0x0eb5
00000e55: JUMPI
00000e56: CALLER
00000e57: PUSH1 0x02
00000e59: DUP4
00000e5a: DUP2
00000e5b: SLOAD
00000e5c: DUP2
00000e5d: LT
00000e5e: ISZERO
00000e5f: ISZERO
00000e60: PUSH2 0x0e65
00000e63: JUMPI
00000e64: INVALID
00000e65: JUMPDEST
00000e66: SWAP1
00000e67: PUSH1 0x00
00000e69: MSTORE
00000e6a: PUSH1 0x20
00000e6c: PUSH1 0x00
00000e6e: KECCAK256
00000e6f: SWAP1
00000e70: PUSH1 0x05
00000e72: MUL
00000e73: ADD
00000e74: PUSH1 0x01
00000e76: ADD
00000e77: PUSH1 0x00
00000e79: PUSH2 0x0100
00000e7c: EXP
00000e7d: DUP2
00000e7e: SLOAD
00000e7f: DUP2
00000e80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e95: MUL
00000e96: NOT
00000e97: AND
00000e98: SWAP1
00000e99: DUP4
00000e9a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000eaf: AND
00000eb0: MUL
00000eb1: OR
00000eb2: SWAP1
00000eb3: SSTORE
00000eb4: POP
00000eb5: JUMPDEST
00000eb6: PUSH1 0x02
00000eb8: DUP3
00000eb9: DUP2
00000eba: SLOAD
00000ebb: DUP2
00000ebc: LT
00000ebd: ISZERO
00000ebe: ISZERO
00000ebf: PUSH2 0x0ec4
00000ec2: JUMPI
00000ec3: INVALID
00000ec4: JUMPDEST
00000ec5: SWAP1
00000ec6: PUSH1 0x00
00000ec8: MSTORE
00000ec9: PUSH1 0x20
00000ecb: PUSH1 0x00
00000ecd: KECCAK256
00000ece: SWAP1
00000ecf: PUSH1 0x05
00000ed1: MUL
00000ed2: ADD
00000ed3: PUSH1 0x01
00000ed5: ADD
00000ed6: PUSH1 0x00
00000ed8: SWAP1
00000ed9: SLOAD
00000eda: SWAP1
00000edb: PUSH2 0x0100
00000ede: EXP
00000edf: SWAP1
00000ee0: DIV
00000ee1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ef6: AND
00000ef7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f0c: AND
00000f0d: CALLER
00000f0e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f23: AND
00000f24: EQ
00000f25: ISZERO
00000f26: ISZERO
00000f27: PUSH2 0x0f2f
00000f2a: JUMPI
00000f2b: PUSH1 0x00
00000f2d: DUP1
00000f2e: REVERT
00000f2f: JUMPDEST
00000f30: PUSH32 0x6a5ee55c9df2daa4375d2b5e4ec8b9e5662f1863207bcbe6e38c6f5fe3c24300
00000f51: DUP3
00000f52: DUP3
00000f53: PUSH1 0x40
00000f55: MLOAD
00000f56: DUP1
00000f57: DUP4
00000f58: DUP2
00000f59: MSTORE
00000f5a: PUSH1 0x20
00000f5c: ADD
00000f5d: DUP3
00000f5e: PUSH1 0x00
00000f60: NOT
00000f61: AND
00000f62: PUSH1 0x00
00000f64: NOT
00000f65: AND
00000f66: DUP2
00000f67: MSTORE
00000f68: PUSH1 0x20
00000f6a: ADD
00000f6b: SWAP3
00000f6c: POP
00000f6d: POP
00000f6e: POP
00000f6f: PUSH1 0x40
00000f71: MLOAD
00000f72: DUP1
00000f73: SWAP2
00000f74: SUB
00000f75: SWAP1
00000f76: LOG1
00000f77: PUSH1 0x01
00000f79: PUSH1 0x02
00000f7b: DUP4
00000f7c: DUP2
00000f7d: SLOAD
00000f7e: DUP2
00000f7f: LT
00000f80: ISZERO
00000f81: ISZERO
00000f82: PUSH2 0x0f87
00000f85: JUMPI
00000f86: INVALID
00000f87: JUMPDEST
00000f88: SWAP1
00000f89: PUSH1 0x00
00000f8b: MSTORE
00000f8c: PUSH1 0x20
00000f8e: PUSH1 0x00
00000f90: KECCAK256
00000f91: SWAP1
00000f92: PUSH1 0x05
00000f94: MUL
00000f95: ADD
00000f96: PUSH1 0x03
00000f98: ADD
00000f99: PUSH1 0x00
00000f9b: PUSH2 0x0100
00000f9e: EXP
00000f9f: DUP2
00000fa0: SLOAD
00000fa1: DUP2
00000fa2: PUSH1 0xff
00000fa4: MUL
00000fa5: NOT
00000fa6: AND
00000fa7: SWAP1
00000fa8: DUP4
00000fa9: PUSH1 0x05
00000fab: DUP2
00000fac: GT
00000fad: ISZERO
00000fae: PUSH2 0x0fb3
00000fb1: JUMPI
00000fb2: INVALID
00000fb3: JUMPDEST
00000fb4: MUL
00000fb5: OR
00000fb6: SWAP1
00000fb7: SSTORE
00000fb8: POP
00000fb9: POP
00000fba: POP
00000fbb: JUMP
00000fbc: JUMPDEST
00000fbd: PUSH1 0x00
00000fbf: DUP3
00000fc0: PUSH1 0x02
00000fc2: DUP2
00000fc3: DUP2
00000fc4: SLOAD
00000fc5: DUP2
00000fc6: LT
00000fc7: ISZERO
00000fc8: ISZERO
00000fc9: PUSH2 0x0fce
00000fcc: JUMPI
00000fcd: INVALID
00000fce: JUMPDEST
00000fcf: SWAP1
00000fd0: PUSH1 0x00
00000fd2: MSTORE
00000fd3: PUSH1 0x20
00000fd5: PUSH1 0x00
00000fd7: KECCAK256
00000fd8: SWAP1
00000fd9: PUSH1 0x05
00000fdb: MUL
00000fdc: ADD
00000fdd: PUSH1 0x00
00000fdf: ADD
00000fe0: PUSH1 0x00
00000fe2: SWAP1
00000fe3: SLOAD
00000fe4: SWAP1
00000fe5: PUSH2 0x0100
00000fe8: EXP
00000fe9: SWAP1
00000fea: DIV
00000feb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001000: AND
00001001: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001016: AND
00001017: CALLER
00001018: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000102d: AND
0000102e: EQ
0000102f: ISZERO
00001030: ISZERO
00001031: PUSH2 0x1039
00001034: JUMPI
00001035: PUSH1 0x00
00001037: DUP1
00001038: REVERT
00001039: JUMPDEST
0000103a: PUSH1 0x02
0000103c: DUP5
0000103d: DUP2
0000103e: SLOAD
0000103f: DUP2
00001040: LT
00001041: ISZERO
00001042: ISZERO
00001043: PUSH2 0x1048
00001046: JUMPI
00001047: INVALID
00001048: JUMPDEST
00001049: SWAP1
0000104a: PUSH1 0x00
0000104c: MSTORE
0000104d: PUSH1 0x20
0000104f: PUSH1 0x00
00001051: KECCAK256
00001052: SWAP1
00001053: PUSH1 0x05
00001055: MUL
00001056: ADD
00001057: SWAP2
00001058: POP
00001059: PUSH1 0x01
0000105b: PUSH1 0x05
0000105d: DUP2
0000105e: GT
0000105f: ISZERO
00001060: PUSH2 0x1065
00001063: JUMPI
00001064: INVALID
00001065: JUMPDEST
00001066: DUP3
00001067: PUSH1 0x03
00001069: ADD
0000106a: PUSH1 0x00
0000106c: SWAP1
0000106d: SLOAD
0000106e: SWAP1
0000106f: PUSH2 0x0100
00001072: EXP
00001073: SWAP1
00001074: DIV
00001075: PUSH1 0xff
00001077: AND
00001078: PUSH1 0x05
0000107a: DUP2
0000107b: GT
0000107c: ISZERO
0000107d: PUSH2 0x1082
00001080: JUMPI
00001081: INVALID
00001082: JUMPDEST
00001083: EQ
00001084: DUP1
00001085: ISZERO
00001086: PUSH2 0x1092
00001089: JUMPI
0000108a: POP
0000108b: DUP2
0000108c: PUSH1 0x04
0000108e: ADD
0000108f: SLOAD
00001090: TIMESTAMP
00001091: LT
00001092: JUMPDEST
00001093: ISZERO
00001094: ISZERO
00001095: PUSH2 0x109d
00001098: JUMPI
00001099: PUSH1 0x00
0000109b: DUP1
0000109c: REVERT
0000109d: JUMPDEST
0000109e: PUSH1 0x02
000010a0: DUP3
000010a1: PUSH1 0x03
000010a3: ADD
000010a4: PUSH1 0x00
000010a6: PUSH2 0x0100
000010a9: EXP
000010aa: DUP2
000010ab: SLOAD
000010ac: DUP2
000010ad: PUSH1 0xff
000010af: MUL
000010b0: NOT
000010b1: AND
000010b2: SWAP1
000010b3: DUP4
000010b4: PUSH1 0x05
000010b6: DUP2
000010b7: GT
000010b8: ISZERO
000010b9: PUSH2 0x10be
000010bc: JUMPI
000010bd: INVALID
000010be: JUMPDEST
000010bf: MUL
000010c0: OR
000010c1: SWAP1
000010c2: SSTORE
000010c3: POP
000010c4: PUSH32 0xbbcce4bacf86438e14f37ed3f9c49f2f2a4e710dd64ba30805d096113bac7fad
000010e5: DUP5
000010e6: DUP5
000010e7: PUSH1 0x40
000010e9: MLOAD
000010ea: DUP1
000010eb: DUP4
000010ec: DUP2
000010ed: MSTORE
000010ee: PUSH1 0x20
000010f0: ADD
000010f1: DUP3
000010f2: PUSH1 0x00
000010f4: NOT
000010f5: AND
000010f6: PUSH1 0x00
000010f8: NOT
000010f9: AND
000010fa: DUP2
000010fb: MSTORE
000010fc: PUSH1 0x20
000010fe: ADD
000010ff: SWAP3
00001100: POP
00001101: POP
00001102: POP
00001103: PUSH1 0x40
00001105: MLOAD
00001106: DUP1
00001107: SWAP2
00001108: SUB
00001109: SWAP1
0000110a: LOG1
0000110b: POP
0000110c: POP
0000110d: POP
0000110e: POP
0000110f: JUMP
00001110: JUMPDEST
00001111: PUSH1 0x00
00001113: DUP3
00001114: PUSH1 0x02
00001116: DUP2
00001117: DUP2
00001118: SLOAD
00001119: DUP2
0000111a: LT
0000111b: ISZERO
0000111c: ISZERO
0000111d: PUSH2 0x1122
00001120: JUMPI
00001121: INVALID
00001122: JUMPDEST
00001123: SWAP1
00001124: PUSH1 0x00
00001126: MSTORE
00001127: PUSH1 0x20
00001129: PUSH1 0x00
0000112b: KECCAK256
0000112c: SWAP1
0000112d: PUSH1 0x05
0000112f: MUL
00001130: ADD
00001131: PUSH1 0x01
00001133: ADD
00001134: PUSH1 0x00
00001136: SWAP1
00001137: SLOAD
00001138: SWAP1
00001139: PUSH2 0x0100
0000113c: EXP
0000113d: SWAP1
0000113e: DIV
0000113f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001154: AND
00001155: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000116a: AND
0000116b: CALLER
0000116c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001181: AND
00001182: EQ
00001183: ISZERO
00001184: ISZERO
00001185: PUSH2 0x118d
00001188: JUMPI
00001189: PUSH1 0x00
0000118b: DUP1
0000118c: REVERT
0000118d: JUMPDEST
0000118e: PUSH1 0x02
00001190: DUP5
00001191: DUP2
00001192: SLOAD
00001193: DUP2
00001194: LT
00001195: ISZERO
00001196: ISZERO
00001197: PUSH2 0x119c
0000119a: JUMPI
0000119b: INVALID
0000119c: JUMPDEST
0000119d: SWAP1
0000119e: PUSH1 0x00
000011a0: MSTORE
000011a1: PUSH1 0x20
000011a3: PUSH1 0x00
000011a5: KECCAK256
000011a6: SWAP1
000011a7: PUSH1 0x05
000011a9: MUL
000011aa: ADD
000011ab: SWAP2
000011ac: POP
000011ad: PUSH1 0x03
000011af: PUSH1 0x05
000011b1: DUP2
000011b2: GT
000011b3: ISZERO
000011b4: PUSH2 0x11b9
000011b7: JUMPI
000011b8: INVALID
000011b9: JUMPDEST
000011ba: DUP3
000011bb: PUSH1 0x03
000011bd: ADD
000011be: PUSH1 0x00
000011c0: SWAP1
000011c1: SLOAD
000011c2: SWAP1
000011c3: PUSH2 0x0100
000011c6: EXP
000011c7: SWAP1
000011c8: DIV
000011c9: PUSH1 0xff
000011cb: AND
000011cc: PUSH1 0x05
000011ce: DUP2
000011cf: GT
000011d0: ISZERO
000011d1: PUSH2 0x11d6
000011d4: JUMPI
000011d5: INVALID
000011d6: JUMPDEST
000011d7: EQ
000011d8: DUP1
000011d9: ISZERO
000011da: PUSH2 0x11ef
000011dd: JUMPI
000011de: POP
000011df: PUSH1 0x01
000011e1: SLOAD
000011e2: PUSH1 0x00
000011e4: SLOAD
000011e5: DUP4
000011e6: PUSH1 0x04
000011e8: ADD
000011e9: SLOAD
000011ea: ADD
000011eb: ADD
000011ec: TIMESTAMP
000011ed: LT
000011ee: ISZERO
000011ef: JUMPDEST
000011f0: DUP1
000011f1: PUSH2 0x1231
000011f4: JUMPI
000011f5: POP
000011f6: PUSH1 0x01
000011f8: PUSH1 0x05
000011fa: DUP2
000011fb: GT
000011fc: ISZERO
000011fd: PUSH2 0x1202
00001200: JUMPI
00001201: INVALID
00001202: JUMPDEST
00001203: DUP3
00001204: PUSH1 0x03
00001206: ADD
00001207: PUSH1 0x00
00001209: SWAP1
0000120a: SLOAD
0000120b: SWAP1
0000120c: PUSH2 0x0100
0000120f: EXP
00001210: SWAP1
00001211: DIV
00001212: PUSH1 0xff
00001214: AND
00001215: PUSH1 0x05
00001217: DUP2
00001218: GT
00001219: ISZERO
0000121a: PUSH2 0x121f
0000121d: JUMPI
0000121e: INVALID
0000121f: JUMPDEST
00001220: EQ
00001221: DUP1
00001222: ISZERO
00001223: PUSH2 0x1230
00001226: JUMPI
00001227: POP
00001228: DUP2
00001229: PUSH1 0x04
0000122b: ADD
0000122c: SLOAD
0000122d: TIMESTAMP
0000122e: LT
0000122f: ISZERO
00001230: JUMPDEST
00001231: JUMPDEST
00001232: ISZERO
00001233: ISZERO
00001234: PUSH2 0x123c
00001237: JUMPI
00001238: PUSH1 0x00
0000123a: DUP1
0000123b: REVERT
0000123c: JUMPDEST
0000123d: PUSH1 0x05
0000123f: DUP3
00001240: PUSH1 0x03
00001242: ADD
00001243: PUSH1 0x00
00001245: PUSH2 0x0100
00001248: EXP
00001249: DUP2
0000124a: SLOAD
0000124b: DUP2
0000124c: PUSH1 0xff
0000124e: MUL
0000124f: NOT
00001250: AND
00001251: SWAP1
00001252: DUP4
00001253: PUSH1 0x05
00001255: DUP2
00001256: GT
00001257: ISZERO
00001258: PUSH2 0x125d
0000125b: JUMPI
0000125c: INVALID
0000125d: JUMPDEST
0000125e: MUL
0000125f: OR
00001260: SWAP1
00001261: SSTORE
00001262: POP
00001263: CALLER
00001264: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001279: AND
0000127a: PUSH2 0x08fc
0000127d: DUP4
0000127e: PUSH1 0x02
00001280: ADD
00001281: SLOAD
00001282: SWAP1
00001283: DUP2
00001284: ISZERO
00001285: MUL
00001286: SWAP1
00001287: PUSH1 0x40
00001289: MLOAD
0000128a: PUSH1 0x00
0000128c: PUSH1 0x40
0000128e: MLOAD
0000128f: DUP1
00001290: DUP4
00001291: SUB
00001292: DUP2
00001293: DUP6
00001294: DUP9
00001295: DUP9
00001296: CALL
00001297: SWAP4
00001298: POP
00001299: POP
0000129a: POP
0000129b: POP
0000129c: ISZERO
0000129d: ISZERO
0000129e: PUSH2 0x12a6
000012a1: JUMPI
000012a2: PUSH1 0x00
000012a4: DUP1
000012a5: REVERT
000012a6: JUMPDEST
000012a7: PUSH32 0xcb720f90f098c425fad2e9df556017c076f9bf7aefa096d1c904a06027ae0460
000012c8: DUP5
000012c9: DUP5
000012ca: PUSH1 0x40
000012cc: MLOAD
000012cd: DUP1
000012ce: DUP4
000012cf: DUP2
000012d0: MSTORE
000012d1: PUSH1 0x20
000012d3: ADD
000012d4: DUP3
000012d5: PUSH1 0x00
000012d7: NOT
000012d8: AND
000012d9: PUSH1 0x00
000012db: NOT
000012dc: AND
000012dd: DUP2
000012de: MSTORE
000012df: PUSH1 0x20
000012e1: ADD
000012e2: SWAP3
000012e3: POP
000012e4: POP
000012e5: POP
000012e6: PUSH1 0x40
000012e8: MLOAD
000012e9: DUP1
000012ea: SWAP2
000012eb: SUB
000012ec: SWAP1
000012ed: LOG1
000012ee: POP
000012ef: POP
000012f0: POP
000012f1: POP
000012f2: JUMP
000012f3: JUMPDEST
000012f4: PUSH1 0xa0
000012f6: PUSH1 0x40
000012f8: MLOAD
000012f9: SWAP1
000012fa: DUP2
000012fb: ADD
000012fc: PUSH1 0x40
000012fe: MSTORE
000012ff: DUP1
00001300: PUSH1 0x00
00001302: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001317: AND
00001318: DUP2
00001319: MSTORE
0000131a: PUSH1 0x20
0000131c: ADD
0000131d: PUSH1 0x00
0000131f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001334: AND
00001335: DUP2
00001336: MSTORE
00001337: PUSH1 0x20
00001339: ADD
0000133a: PUSH1 0x00
0000133c: DUP2
0000133d: MSTORE
0000133e: PUSH1 0x20
00001340: ADD
00001341: PUSH1 0x00
00001343: PUSH1 0x05
00001345: DUP2
00001346: GT
00001347: ISZERO
00001348: PUSH2 0x134d
0000134b: JUMPI
0000134c: INVALID
0000134d: JUMPDEST
0000134e: DUP2
0000134f: MSTORE
00001350: PUSH1 0x20
00001352: ADD
00001353: PUSH1 0x00
00001355: DUP2
00001356: MSTORE
00001357: POP
00001358: SWAP1
00001359: JUMP
0000135a: JUMPDEST
0000135b: DUP2
0000135c: SLOAD
0000135d: DUP2
0000135e: DUP4
0000135f: SSTORE
00001360: DUP2
00001361: DUP2
00001362: ISZERO
00001363: GT
00001364: PUSH2 0x1387
00001367: JUMPI
00001368: PUSH1 0x05
0000136a: MUL
0000136b: DUP2
0000136c: PUSH1 0x05
0000136e: MUL
0000136f: DUP4
00001370: PUSH1 0x00
00001372: MSTORE
00001373: PUSH1 0x20
00001375: PUSH1 0x00
00001377: KECCAK256
00001378: SWAP2
00001379: DUP3
0000137a: ADD
0000137b: SWAP2
0000137c: ADD
0000137d: PUSH2 0x1386
00001380: SWAP2
00001381: SWAP1
00001382: PUSH2 0x138c
00001385: JUMP
00001386: JUMPDEST
00001387: JUMPDEST
00001388: POP
00001389: POP
0000138a: POP
0000138b: JUMP
0000138c: JUMPDEST
0000138d: PUSH2 0x141a
00001390: SWAP2
00001391: SWAP1
00001392: JUMPDEST
00001393: DUP1
00001394: DUP3
00001395: GT
00001396: ISZERO
00001397: PUSH2 0x1416
0000139a: JUMPI
0000139b: PUSH1 0x00
0000139d: DUP1
0000139e: DUP3
0000139f: ADD
000013a0: PUSH1 0x00
000013a2: PUSH2 0x0100
000013a5: EXP
000013a6: DUP2
000013a7: SLOAD
000013a8: SWAP1
000013a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013be: MUL
000013bf: NOT
000013c0: AND
000013c1: SWAP1
000013c2: SSTORE
000013c3: PUSH1 0x01
000013c5: DUP3
000013c6: ADD
000013c7: PUSH1 0x00
000013c9: PUSH2 0x0100
000013cc: EXP
000013cd: DUP2
000013ce: SLOAD
000013cf: SWAP1
000013d0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013e5: MUL
000013e6: NOT
000013e7: AND
000013e8: SWAP1
000013e9: SSTORE
000013ea: PUSH1 0x02
000013ec: DUP3
000013ed: ADD
000013ee: PUSH1 0x00
000013f0: SWAP1
000013f1: SSTORE
000013f2: PUSH1 0x03
000013f4: DUP3
000013f5: ADD
000013f6: PUSH1 0x00
000013f8: PUSH2 0x0100
000013fb: EXP
000013fc: DUP2
000013fd: SLOAD
000013fe: SWAP1
000013ff: PUSH1 0xff
00001401: MUL
00001402: NOT
00001403: AND
00001404: SWAP1
00001405: SSTORE
00001406: PUSH1 0x04
00001408: DUP3
00001409: ADD
0000140a: PUSH1 0x00
0000140c: SWAP1
0000140d: SSTORE
0000140e: POP
0000140f: PUSH1 0x05
00001411: ADD
00001412: PUSH2 0x1392
00001415: JUMP
00001416: JUMPDEST
00001417: POP
00001418: SWAP1
00001419: JUMP
0000141a: JUMPDEST
0000141b: SWAP1
0000141c: JUMP
0000141d: STOP
0000141e: LOG1
0000141f: PUSH6 0x627a7a723058
00001426: KECCAK256
00001427: LOG4
00001428: UNKNOWN(0xCC)
00001429: MLOAD
0000142a: UNKNOWN(0xD8)
0000142b: PUSH16 0x732c083b23370d11841b78b33515813f
0000143c: STOP
0000143d: LOG0
0000143e: UNKNOWN(0xBC)
0000143f: DUP10
00001440: KECCAK256
00001441: UNKNOWN(0xCD)
00001442: SSTORE
00001443: SWAP13
00001444: ORIGIN
00001445: UNKNOWN(0xAD)
00001446: PUSH16

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": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1506ae59",
            "selector": "0x1506ae59",
            "calldata_variants": [
                "0x1506ae59",
                "0x1506ae590000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x209fd971",
            "selector": "0x209fd971",
            "calldata_variants": [
                "0x209fd971",
                "0x209fd9710000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x21cf39ee",
            "selector": "0x21cf39ee",
            "calldata_variants": [
                "0x21cf39ee",
                "0x21cf39ee0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5203dcda",
            "selector": "0x5203dcda",
            "calldata_variants": [
                "0x5203dcda",
                "0x5203dcda0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6be1320b",
            "selector": "0x6be1320b",
            "calldata_variants": [
                "0x6be1320b",
                "0x6be1320b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x867d0dd4",
            "selector": "0x867d0dd4",
            "calldata_variants": [
                "0x867d0dd4",
                "0x867d0dd40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9ca4218f",
            "selector": "0x9ca4218f",
            "calldata_variants": [
                "0x9ca4218f",
                "0x9ca4218f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 1842,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 2188,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 3126,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 3853,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4119,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4459,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5188,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x24c752cc19da1e96da4d14f8219fbd39e3a4e3fe96288d7b49ae7e973c30f4d0
call_targets: 0x163a948770020a636a87a48acb33d7575445474b
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x24c752cc19da1e96da4d14f8219fbd39e3a4e3fe96288d7b49ae7e973c30f4d0",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x163a948770020a636a87a48acb33d7575445474b"
    ],
    "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": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1506ae59",
            "selector": "0x1506ae59",
            "calldata_variants": [
                "0x1506ae59",
                "0x1506ae590000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x209fd971",
            "selector": "0x209fd971",
            "calldata_variants": [
                "0x209fd971",
                "0x209fd9710000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x21cf39ee",
            "selector": "0x21cf39ee",
            "calldata_variants": [
                "0x21cf39ee",
                "0x21cf39ee0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5203dcda",
            "selector": "0x5203dcda",
            "calldata_variants": [
                "0x5203dcda",
                "0x5203dcda0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6be1320b",
            "selector": "0x6be1320b",
            "calldata_variants": [
                "0x6be1320b",
                "0x6be1320b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x867d0dd4",
            "selector": "0x867d0dd4",
            "calldata_variants": [
                "0x867d0dd4",
                "0x867d0dd40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9ca4218f",
            "selector": "0x9ca4218f",
            "calldata_variants": [
                "0x9ca4218f",
                "0x9ca4218f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3355,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4758,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [
        {
            "pc": 1842,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 2188,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 3126,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 3853,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4119,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4459,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5188,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 2
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x24c752cc19da1e96da4d14f8219fbd39e3a4e3fe96288d7b49ae7e973c30f4d0
call_targets: 0x163a948770020a636a87a48acb33d7575445474b
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x24c752cc19da1e96da4d14f8219fbd39e3a4e3fe96288d7b49ae7e973c30f4d0",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x163a948770020a636a87a48acb33d7575445474b"
    ],
    "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": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1506ae59",
            "selector": "0x1506ae59",
            "calldata_variants": [
                "0x1506ae59",
                "0x1506ae590000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x209fd971",
            "selector": "0x209fd971",
            "calldata_variants": [
                "0x209fd971",
                "0x209fd9710000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x21cf39ee",
            "selector": "0x21cf39ee",
            "calldata_variants": [
                "0x21cf39ee",
                "0x21cf39ee0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5203dcda",
            "selector": "0x5203dcda",
            "calldata_variants": [
                "0x5203dcda",
                "0x5203dcda0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6be1320b",
            "selector": "0x6be1320b",
            "calldata_variants": [
                "0x6be1320b",
                "0x6be1320b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x867d0dd4",
            "selector": "0x867d0dd4",
            "calldata_variants": [
                "0x867d0dd4",
                "0x867d0dd40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x9ca4218f",
            "selector": "0x9ca4218f",
            "calldata_variants": [
                "0x9ca4218f",
                "0x9ca4218f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3355,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4758,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": [
        {
            "pc": 1842,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 2188,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 3126,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 3853,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4119,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4459,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5188,
            "type": "tx_origin_used"
        }
    ]
}
medium auth codex Authorization uses tx.origin 75 no
view
evidence_json
{
    "evidence": "Auth guard list includes tx_origin_used at pc 5188, and the basic block at start_pc 5181 contains the ORIGIN opcode, indicating tx.origin is consulted in a guard check.",
    "locations": [
        "pc:5188",
        "pc:5181"
    ],
    "recommendation": "Use msg.sender for authorization (or an explicit access-control role). Avoid tx.origin-based gating; if meta-tx support is needed, adopt a trusted forwarder pattern (e.g., EIP-2771).",
    "exploit_scenario": "If a privileged EOA interacts with an attacker-controlled contract, the attacker contract can invoke the guarded function; tx.origin stays the EOA so the check may pass even though msg.sender is untrusted."
}
low other codex CALL with computed target/value and unchecked return 65 no
view
evidence_json
{
    "evidence": "Callsites list shows CALL at pc 3355 and pc 4758 with target/value marked computed and returndata_checked null. Detector flags untrusted CALL/ETH value transfer, but validation trace reports a constant target of 0x163a948770020a636a87a48acb33d7575445474b (self), so risk is uncertain.",
    "locations": [
        "pc:3355",
        "pc:4758"
    ],
    "recommendation": "Confirm the call target is fixed or rigorously validated. Check the CALL return value and handle failures explicitly. If the target can be untrusted, add reentrancy protections around state updates before/after the call.",
    "exploit_scenario": "If the call target or value can vary based on user input on some paths, an attacker could trigger an external call with value and reenter or cause a silent failure while execution continues. This is low-confidence because the trace suggests the target may be constant (self-call)."
}