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

Analysis Run

019bb490-f35f-7392-9feb-8212b2eae35f

complete
Chain ID
1
Address
Block Number
Created
Mon, Jan 12, 2026 11:35 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
1
Validated
1
Source
Bytecode only
Review Backing
Present
Best current signal
CREATE/CREATE2 reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
40081 artifact.fetch complete 1 / 3 3 months ago
40082 proxy.resolve complete 1 / 3 3 months ago
40083 tool.cast_disasm complete 1 / 3 3 months ago
40084 analysis.bundle complete 1 / 3 3 months ago
40085 capability.graph complete 1 / 3 3 months ago
40086 detector.run complete 1 / 3 3 months ago
40087 validation.fork complete 1 / 3 3 months ago
40228 report.consolidate complete 1 / 6 3 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
Bytecode shows multiple external CALLs with computed targets/values and a reachable CREATE. Guard detection is empty and return-data checks are unknown, so reentrancy/unchecked-call risk depends on whether callers can influence those targets/values.
View stdout
{"no_findings":false,"summary":"Bytecode shows multiple external CALLs with computed targets/values and a reachable CREATE. Guard detection is empty and return-data checks are unknown, so reentrancy/unchecked-call risk depends on whether callers can influence those targets/values.","findings":[{"severity":"medium","category":"reentrancy","title":"Computed external CALLs (some with ETH value) without detectable guards or return checks","exploit_scenario":"If any public/external entrypoint can influence the call target or value, an attacker can trigger external calls with ETH and potentially reenter state-changing logic or redirect funds. If the target is actually constant (validation suggests self-call), risk is reduced but still unclear from bytecode alone.","recommendation":"Constrain call targets/values to trusted addresses, apply checks-effects-interactions or a reentrancy guard around state changes, and explicitly check CALL success/return data.","evidence":"8 CALL sites show target/value as computed and returndata_checked=null; detector flags “Untrusted CALL target/value reachable” and “ETH value transfer possible”. Validation notes classification constant_target with call_targets including the contract address, so target control is uncertain.","locations":["pc:1031","pc:1221","pc:1584","pc:2405","pc:2800","pc:3168","pc:3310","pc:3389"]},{"severity":"low","category":"access_control","title":"CREATE opcode reachable (factory-like deployment) with unclear access control","exploit_scenario":"If a public entrypoint reaches CREATE, an attacker could deploy arbitrary contracts from this address (potentially for griefing or to confuse integrators). This may be intended factory behavior, but access control cannot be confirmed from bytecode alone.","recommendation":"Confirm intended factory behavior; restrict CREATE to authorized callers if not meant to be public and emit deployment events for auditability.","evidence":"CREATE opcode present and detector validated “CREATE/CREATE2 reachable.”","locations":["pc:1991"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-gdqarl_d
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb4a8-9130-7f72-baf2-f31c775222e2
--------
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

thinking
**Reading BYTECODE_BUNDLE.json file**
exec
/bin/bash -lc ls in /tmp/codex-gdqarl_d succeeded in 5ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-gdqarl_d succeeded in 7ms:
{
  "analysis_artifact": {
    "address": "0x3fbe1f8fc5ddb27d428aa60f661eaaab0d2000ce",
    "artifact_hash": "0x075b47deb7b11c8d8e062706de7f6736feddae58750ccac08aa2e718b0c4a298",
    "artifact_json": {
      "auth": {
        "guards": []
      },
      "basic_blocks": [
        {
          "end_pc": 12,
          "hash": "0xc6d550303826490cd2b79ea1fb4402ea6abb66026ecd76d204e7a34612af70f1",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "CALLDATASIZE",
            "LT",
            "PUSH2",

thinking
**Analyzing access control and storage usage**
exec
/bin/bash -lc 'rg -n "storage|slot|proxy|delegatecall|selfdestruct|owner|admin|upgrade" BYTECODE_BUNDLE.json' in /tmp/codex-gdqarl_d succeeded in 6ms:
4930:            "delegatecall": 0,
4931:            "selfdestruct": 0,
4934:          "storage": {
4936:            "slots": [
4940:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
4945:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
4950:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
4955:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
4960:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
4965:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
4970:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
4975:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
4980:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
4985:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
4990:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
4995:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
5009:            "delegatecall": 0,
5010:            "selfdestruct": 0,
5013:          "storage": {
5015:            "slots": [

thinking
**Checking storage-related sections**
exec
/bin/bash -lc "sed -n '5800,5925p' BYTECODE_BUNDLE.json" in /tmp/codex-gdqarl_d succeeded in 6ms:
        "0xabe3219c",
        "0xfc0f392d",
        "0x3ef13367",
        "0x6b9f96ea"
      ],
      "sinks": {
        "call": 8,
        "create": 1,
        "create2": 0,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0,
        "upgrade_slot_write_suspected": false
      },
      "storage": {
        "keccak_count": 6,
        "reads": 21,
        "slots": [
          {
            "op": "SLOAD",

thinking
**Analyzing contract calls and vulnerabilities**
exec
/bin/bash -lc 'rg -n "callsite|callsites|call_sites|callgraph|call_graph" BYTECODE_BUNDLE.json' in /tmp/codex-gdqarl_d succeeded in 6ms:
3883:      "callsites": [
8454:          "type": "callsite"
8460:          "type": "callsite"
8466:          "type": "callsite"
8472:          "type": "callsite"
8478:          "type": "callsite"
8484:          "type": "callsite"
8490:          "type": "callsite"
8496:          "type": "callsite"
exec
/bin/bash -lc "sed -n '3840,3925p' BYTECODE_BUNDLE.json" in /tmp/codex-gdqarl_d succeeded in 6ms:
          "start_pc": 3405
        },
        {
          "end_pc": 3407,
          "hash": "0x43a0f2e1370fd0e12ccddb17d27b9449232563e9c1c7ed3809b4ce95aedf7885",
          "opcodes": [
            "STOP"
          ],
          "start_pc": 3407
        },
        {
          "end_pc": 3482,
          "hash": "0xc464f2e186483539409acbf53d6969f4c5ddb67117bd4f22a496eba63182500c",
          "opcodes": [
            "OP_A1",
            "PUSH6",
            "SHA3",
            "OP_1E",
            "PUSH16",
            "SLT",
exec
/bin/bash -lc "sed -n '3925,3985p' BYTECODE_BUNDLE.json" in /tmp/codex-gdqarl_d succeeded in 7ms:
        },
        {
          "opcode": "CALL",
          "pc": 3310,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        },
        {
          "opcode": "CALL",
          "pc": 3389,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        }
      ],
      "cfg_edges": [
        {
          "from": "bb:0",
          "to": "bb:127",

thinking
**Searching for CREATE occurrences**
exec
/bin/bash -lc 'rg -n "CREATE" BYTECODE_BUNDLE.json' in /tmp/codex-gdqarl_d succeeded in 6ms:
2157:            "CREATE",
8687:        "sink": "CREATE"
8690:      "title": "CREATE/CREATE2 reachable",
8699:        "sink": "CREATE",
exec
/bin/bash -lc "sed -n '2120,2195p' BYTECODE_BUNDLE.json" in /tmp/codex-gdqarl_d succeeded in 6ms:
          "hash": "0x716a0d010c1d81c152638a147427c9d85956e4125674684c5c3c5b84965f9d1b",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "PUSH1",
            "ADD",
            "OP_91",
            "OP_90",
            "POP",
            "JUMP"
          ],
          "start_pc": 1972
        },
        {
          "end_pc": 1990,
          "hash": "0xd99828b1020015f87af8288d681c0b1600c653c0ca1d55795d7eef2a47f3f838",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "PUSH2",

thinking
**Analyzing contract creation and external calls risks**

I'm reviewing the contract's CREATE operation around pc 1991 to see if there's any access control guarding it, but none is evident, suggesting a factory-like contract that can deploy arbitrary contracts. There are several external CALLs with computed targets and value transfers lacking return data checks, pointing to possible reentrancy or denial-of-service risks. The runtime bytecode interestingly contains embedded sub-contract bytecode, supporting the factory idea. Due to limited flow control info, I'll cautiously classify severity as medium for these risks, noting owner checks might exist but aren't clearly linked to CREATE. I'll also inspect basic blocks near CREATE to identify gating conditions.
exec
/bin/bash -lc "sed -n '2060,2145p' BYTECODE_BUNDLE.json" in /tmp/codex-gdqarl_d succeeded in 7ms:
          "hash": "0x57fd41ec40262922d38b73b1e91a3d86e499156949c2a359714ba4ba8d28553a",
          "opcodes": [
            "JUMPDEST",
            "ADD",
            "SLOAD",
            "GT",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 1938
        },
        {
          "end_pc": 1957,
          "hash": "0xd5b97fa57e212c9f4baeaae59c73ccab769cc67f8c37b03815b0c70f3b291d69",
          "opcodes": [
            "PUSH1",
            "OP_81",
            "PUSH1",
            "OP_81",

thinking
**Analyzing access control cautiously**
exec
/bin/bash -lc 'rg -n "evidence|bundle|detector" BYTECODE_BUNDLE.json' in /tmp/codex-gdqarl_d succeeded in 6ms:
5915:      "proxy_evidence": {
8575:  "detector_findings": [
8578:      "evidence_json": {
8630:      "evidence_json": {
8682:      "evidence_json": {

thinking
**Composing detailed JSON security report**

I'm putting together a JSON summary with findings on potential reentrancy and access control risks from external CALLs and reachable CREATE opcodes, carefully noting uncertainties about call targets based on validation data and supplying severity, evidence, and recommendations accordingly.
codex
{"no_findings":false,"summary":"Bytecode shows multiple external CALLs with computed targets/values and a reachable CREATE. Guard detection is empty and return-data checks are unknown, so reentrancy/unchecked-call risk depends on whether callers can influence those targets/values.","findings":[{"severity":"medium","category":"reentrancy","title":"Computed external CALLs (some with ETH value) without detectable guards or return checks","exploit_scenario":"If any public/external entrypoint can influence the call target or value, an attacker can trigger external calls with ETH and potentially reenter state-changing logic or redirect funds. If the target is actually constant (validation suggests self-call), risk is reduced but still unclear from bytecode alone.","recommendation":"Constrain call targets/values to trusted addresses, apply checks-effects-interactions or a reentrancy guard around state changes, and explicitly check CALL success/return data.","evidence":"8 CALL sites show target/value as computed and returndata_checked=null; detector flags “Untrusted CALL target/value reachable” and “ETH value transfer possible”. Validation notes classification constant_target with call_targets including the contract address, so target control is uncertain.","locations":["pc:1031","pc:1221","pc:1584","pc:2405","pc:2800","pc:3168","pc:3310","pc:3389"]},{"severity":"low","category":"access_control","title":"CREATE opcode reachable (factory-like deployment) with unclear access control","exploit_scenario":"If a public entrypoint reaches CREATE, an attacker could deploy arbitrary contracts from this address (potentially for griefing or to confuse integrators). This may be intended factory behavior, but access control cannot be confirmed from bytecode alone.","recommendation":"Confirm intended factory behavior; restrict CREATE to authorized callers if not meant to be public and emit deployment events for auditability.","evidence":"CREATE opcode present and detector validated “CREATE/CREATE2 reachable.”","locations":["pc:1991"]}]}
tokens used
59,342
Metadata
{
    "codex": {
        "ran_at": "2026-01-13T00:03:32.460392+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 6990,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Bytecode shows multiple external CALLs with computed targets/values and a reachable CREATE. Guard detection is empty and return-data checks are unknown, so reentrancy/unchecked-call risk depends on whether callers can influence those targets/values.",
    "raw_final": {
        "summary": "Bytecode shows multiple external CALLs with computed targets/values and a reachable CREATE. Guard detection is empty and return-data checks are unknown, so reentrancy/unchecked-call risk depends on whether callers can influence those targets/values.",
        "findings": [
            {
                "title": "Computed external CALLs (some with ETH value) without detectable guards or return checks",
                "category": "reentrancy",
                "evidence": "8 CALL sites show target/value as computed and returndata_checked=null; detector flags \u201cUntrusted CALL target/value reachable\u201d and \u201cETH value transfer possible\u201d. Validation notes classification constant_target with call_targets including the contract address, so target control is uncertain.",
                "severity": "medium",
                "locations": [
                    "pc:1031",
                    "pc:1221",
                    "pc:1584",
                    "pc:2405",
                    "pc:2800",
                    "pc:3168",
                    "pc:3310",
                    "pc:3389"
                ],
                "recommendation": "Constrain call targets/values to trusted addresses, apply checks-effects-interactions or a reentrancy guard around state changes, and explicitly check CALL success/return data.",
                "exploit_scenario": "If any public/external entrypoint can influence the call target or value, an attacker can trigger external calls with ETH and potentially reenter state-changing logic or redirect funds. If the target is actually constant (validation suggests self-call), risk is reduced but still unclear from bytecode alone."
            },
            {
                "title": "CREATE opcode reachable (factory-like deployment) with unclear access control",
                "category": "access_control",
                "evidence": "CREATE opcode present and detector validated \u201cCREATE/CREATE2 reachable.\u201d",
                "severity": "low",
                "locations": [
                    "pc:1991"
                ],
                "recommendation": "Confirm intended factory behavior; restrict CREATE to authorized callers if not meant to be public and emit deployment events for auditability.",
                "exploit_scenario": "If a public entrypoint reaches CREATE, an attacker could deploy arbitrary contracts from this address (potentially for griefing or to confuse integrators). This may be intended factory behavior, but access control cannot be confirmed from bytecode alone."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
8
EXT*/BALANCE
5
Total opcodes
2423
Flags
create_opcodes_present heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x007f
0000000c: JUMPI
0000000d: PUSH4 0xffffffff
00000012: PUSH1 0xe0
00000014: PUSH1 0x02
00000016: EXP
00000017: PUSH1 0x00
00000019: CALLDATALOAD
0000001a: DIV
0000001b: AND
0000001c: PUSH4 0x0dcd7a6c
00000021: DUP2
00000022: EQ
00000023: PUSH2 0x00f4
00000026: JUMPI
00000027: DUP1
00000028: PUSH4 0x2079fb9a
0000002d: EQ
0000002e: PUSH2 0x0168
00000031: JUMPI
00000032: DUP1
00000033: PUSH4 0x2da03409
00000038: EQ
00000039: PUSH2 0x019a
0000003c: JUMPI
0000003d: DUP1
0000003e: PUSH4 0x39125215
00000043: EQ
00000044: PUSH2 0x01bf
00000047: JUMPI
00000048: DUP1
00000049: PUSH4 0x7df73e27
0000004e: EQ
0000004f: PUSH2 0x026f
00000052: JUMPI
00000053: DUP1
00000054: PUSH4 0xa0b7967b
00000059: EQ
0000005a: PUSH2 0x02a2
0000005d: JUMPI
0000005e: DUP1
0000005f: PUSH4 0xa68a76cc
00000064: EQ
00000065: PUSH2 0x02c7
00000068: JUMPI
00000069: DUP1
0000006a: PUSH4 0xabe3219c
0000006f: EQ
00000070: PUSH2 0x02da
00000073: JUMPI
00000074: DUP1
00000075: PUSH4 0xfc0f392d
0000007a: EQ
0000007b: PUSH2 0x02ed
0000007e: JUMPI
0000007f: JUMPDEST
00000080: PUSH1 0x00
00000082: CALLVALUE
00000083: GT
00000084: ISZERO
00000085: PUSH2 0x00f2
00000088: JUMPI
00000089: PUSH32 0x6e89d517057028190560dd200cf6bf792842861353d1173761dfa362e1c133f0
000000aa: CALLER
000000ab: CALLVALUE
000000ac: PUSH1 0x00
000000ae: CALLDATASIZE
000000af: PUSH1 0x40
000000b1: MLOAD
000000b2: PUSH1 0x01
000000b4: PUSH1 0xa0
000000b6: PUSH1 0x02
000000b8: EXP
000000b9: SUB
000000ba: DUP6
000000bb: AND
000000bc: DUP2
000000bd: MSTORE
000000be: PUSH1 0x20
000000c0: DUP2
000000c1: ADD
000000c2: DUP5
000000c3: SWAP1
000000c4: MSTORE
000000c5: PUSH1 0x60
000000c7: PUSH1 0x40
000000c9: DUP3
000000ca: ADD
000000cb: DUP2
000000cc: DUP2
000000cd: MSTORE
000000ce: SWAP1
000000cf: DUP3
000000d0: ADD
000000d1: DUP4
000000d2: SWAP1
000000d3: MSTORE
000000d4: PUSH1 0x80
000000d6: DUP3
000000d7: ADD
000000d8: DUP5
000000d9: DUP5
000000da: DUP1
000000db: DUP3
000000dc: DUP5
000000dd: CALLDATACOPY
000000de: DUP3
000000df: ADD
000000e0: SWAP2
000000e1: POP
000000e2: POP
000000e3: SWAP6
000000e4: POP
000000e5: POP
000000e6: POP
000000e7: POP
000000e8: POP
000000e9: POP
000000ea: PUSH1 0x40
000000ec: MLOAD
000000ed: DUP1
000000ee: SWAP2
000000ef: SUB
000000f0: SWAP1
000000f1: LOG1
000000f2: JUMPDEST
000000f3: STOP
000000f4: JUMPDEST
000000f5: CALLVALUE
000000f6: ISZERO
000000f7: PUSH2 0x00ff
000000fa: JUMPI
000000fb: PUSH1 0x00
000000fd: DUP1
000000fe: REVERT
000000ff: JUMPDEST
00000100: PUSH2 0x00f2
00000103: PUSH1 0x04
00000105: DUP1
00000106: CALLDATALOAD
00000107: PUSH1 0x01
00000109: PUSH1 0xa0
0000010b: PUSH1 0x02
0000010d: EXP
0000010e: SUB
0000010f: SWAP1
00000110: DUP2
00000111: AND
00000112: SWAP2
00000113: PUSH1 0x24
00000115: DUP1
00000116: CALLDATALOAD
00000117: SWAP3
00000118: PUSH1 0x44
0000011a: CALLDATALOAD
0000011b: AND
0000011c: SWAP2
0000011d: PUSH1 0x64
0000011f: CALLDATALOAD
00000120: SWAP2
00000121: PUSH1 0x84
00000123: CALLDATALOAD
00000124: SWAP2
00000125: SWAP1
00000126: PUSH1 0xc4
00000128: SWAP1
00000129: PUSH1 0xa4
0000012b: CALLDATALOAD
0000012c: SWAP1
0000012d: DUP2
0000012e: ADD
0000012f: SWAP1
00000130: DUP4
00000131: ADD
00000132: CALLDATALOAD
00000133: DUP1
00000134: PUSH1 0x20
00000136: PUSH1 0x1f
00000138: DUP3
00000139: ADD
0000013a: DUP2
0000013b: SWAP1
0000013c: DIV
0000013d: DUP2
0000013e: MUL
0000013f: ADD
00000140: PUSH1 0x40
00000142: MLOAD
00000143: SWAP1
00000144: DUP2
00000145: ADD
00000146: PUSH1 0x40
00000148: MSTORE
00000149: DUP2
0000014a: DUP2
0000014b: MSTORE
0000014c: SWAP3
0000014d: SWAP2
0000014e: SWAP1
0000014f: PUSH1 0x20
00000151: DUP5
00000152: ADD
00000153: DUP4
00000154: DUP4
00000155: DUP1
00000156: DUP3
00000157: DUP5
00000158: CALLDATACOPY
00000159: POP
0000015a: SWAP5
0000015b: SWAP7
0000015c: POP
0000015d: PUSH2 0x0300
00000160: SWAP6
00000161: POP
00000162: POP
00000163: POP
00000164: POP
00000165: POP
00000166: POP
00000167: JUMP
00000168: JUMPDEST
00000169: CALLVALUE
0000016a: ISZERO
0000016b: PUSH2 0x0173
0000016e: JUMPI
0000016f: PUSH1 0x00
00000171: DUP1
00000172: REVERT
00000173: JUMPDEST
00000174: PUSH2 0x017e
00000177: PUSH1 0x04
00000179: CALLDATALOAD
0000017a: PUSH2 0x0431
0000017d: JUMP
0000017e: JUMPDEST
0000017f: PUSH1 0x40
00000181: MLOAD
00000182: PUSH1 0x01
00000184: PUSH1 0xa0
00000186: PUSH1 0x02
00000188: EXP
00000189: SUB
0000018a: SWAP1
0000018b: SWAP2
0000018c: AND
0000018d: DUP2
0000018e: MSTORE
0000018f: PUSH1 0x20
00000191: ADD
00000192: PUSH1 0x40
00000194: MLOAD
00000195: DUP1
00000196: SWAP2
00000197: SUB
00000198: SWAP1
00000199: RETURN
0000019a: JUMPDEST
0000019b: CALLVALUE
0000019c: ISZERO
0000019d: PUSH2 0x01a5
000001a0: JUMPI
000001a1: PUSH1 0x00
000001a3: DUP1
000001a4: REVERT
000001a5: JUMPDEST
000001a6: PUSH2 0x00f2
000001a9: PUSH1 0x01
000001ab: PUSH1 0xa0
000001ad: PUSH1 0x02
000001af: EXP
000001b0: SUB
000001b1: PUSH1 0x04
000001b3: CALLDATALOAD
000001b4: DUP2
000001b5: AND
000001b6: SWAP1
000001b7: PUSH1 0x24
000001b9: CALLDATALOAD
000001ba: AND
000001bb: PUSH2 0x0459
000001be: JUMP
000001bf: JUMPDEST
000001c0: CALLVALUE
000001c1: ISZERO
000001c2: PUSH2 0x01ca
000001c5: JUMPI
000001c6: PUSH1 0x00
000001c8: DUP1
000001c9: REVERT
000001ca: JUMPDEST
000001cb: PUSH2 0x00f2
000001ce: PUSH1 0x04
000001d0: DUP1
000001d1: CALLDATALOAD
000001d2: PUSH1 0x01
000001d4: PUSH1 0xa0
000001d6: PUSH1 0x02
000001d8: EXP
000001d9: SUB
000001da: AND
000001db: SWAP1
000001dc: PUSH1 0x24
000001de: DUP1
000001df: CALLDATALOAD
000001e0: SWAP2
000001e1: SWAP1
000001e2: PUSH1 0x64
000001e4: SWAP1
000001e5: PUSH1 0x44
000001e7: CALLDATALOAD
000001e8: SWAP1
000001e9: DUP2
000001ea: ADD
000001eb: SWAP1
000001ec: DUP4
000001ed: ADD
000001ee: CALLDATALOAD
000001ef: DUP1
000001f0: PUSH1 0x20
000001f2: PUSH1 0x1f
000001f4: DUP3
000001f5: ADD
000001f6: DUP2
000001f7: SWAP1
000001f8: DIV
000001f9: DUP2
000001fa: MUL
000001fb: ADD
000001fc: PUSH1 0x40
000001fe: MLOAD
000001ff: SWAP1
00000200: DUP2
00000201: ADD
00000202: PUSH1 0x40
00000204: MSTORE
00000205: DUP2
00000206: DUP2
00000207: MSTORE
00000208: SWAP3
00000209: SWAP2
0000020a: SWAP1
0000020b: PUSH1 0x20
0000020d: DUP5
0000020e: ADD
0000020f: DUP4
00000210: DUP4
00000211: DUP1
00000212: DUP3
00000213: DUP5
00000214: CALLDATACOPY
00000215: POP
00000216: SWAP5
00000217: SWAP7
00000218: DUP7
00000219: CALLDATALOAD
0000021a: SWAP7
0000021b: PUSH1 0x20
0000021d: DUP1
0000021e: DUP3
0000021f: ADD
00000220: CALLDATALOAD
00000221: SWAP8
00000222: POP
00000223: SWAP2
00000224: SWAP6
00000225: POP
00000226: PUSH1 0x60
00000228: DUP2
00000229: ADD
0000022a: SWAP5
0000022b: POP
0000022c: PUSH1 0x40
0000022e: SWAP1
0000022f: DUP2
00000230: ADD
00000231: CALLDATALOAD
00000232: DUP7
00000233: ADD
00000234: DUP1
00000235: DUP4
00000236: ADD
00000237: SWAP5
00000238: POP
00000239: CALLDATALOAD
0000023a: SWAP3
0000023b: POP
0000023c: DUP3
0000023d: SWAP2
0000023e: PUSH1 0x1f
00000240: DUP4
00000241: ADD
00000242: DUP2
00000243: SWAP1
00000244: DIV
00000245: DUP2
00000246: MUL
00000247: ADD
00000248: SWAP1
00000249: MLOAD
0000024a: SWAP1
0000024b: DUP2
0000024c: ADD
0000024d: PUSH1 0x40
0000024f: MSTORE
00000250: DUP2
00000251: DUP2
00000252: MSTORE
00000253: SWAP3
00000254: SWAP2
00000255: SWAP1
00000256: PUSH1 0x20
00000258: DUP5
00000259: ADD
0000025a: DUP4
0000025b: DUP4
0000025c: DUP1
0000025d: DUP3
0000025e: DUP5
0000025f: CALLDATACOPY
00000260: POP
00000261: SWAP5
00000262: SWAP7
00000263: POP
00000264: PUSH2 0x04d8
00000267: SWAP6
00000268: POP
00000269: POP
0000026a: POP
0000026b: POP
0000026c: POP
0000026d: POP
0000026e: JUMP
0000026f: JUMPDEST
00000270: CALLVALUE
00000271: ISZERO
00000272: PUSH2 0x027a
00000275: JUMPI
00000276: PUSH1 0x00
00000278: DUP1
00000279: REVERT
0000027a: JUMPDEST
0000027b: PUSH2 0x028e
0000027e: PUSH1 0x01
00000280: PUSH1 0xa0
00000282: PUSH1 0x02
00000284: EXP
00000285: SUB
00000286: PUSH1 0x04
00000288: CALLDATALOAD
00000289: AND
0000028a: PUSH2 0x0718
0000028d: JUMP
0000028e: JUMPDEST
0000028f: PUSH1 0x40
00000291: MLOAD
00000292: SWAP1
00000293: ISZERO
00000294: ISZERO
00000295: DUP2
00000296: MSTORE
00000297: PUSH1 0x20
00000299: ADD
0000029a: PUSH1 0x40
0000029c: MLOAD
0000029d: DUP1
0000029e: SWAP2
0000029f: SUB
000002a0: SWAP1
000002a1: RETURN
000002a2: JUMPDEST
000002a3: CALLVALUE
000002a4: ISZERO
000002a5: PUSH2 0x02ad
000002a8: JUMPI
000002a9: PUSH1 0x00
000002ab: DUP1
000002ac: REVERT
000002ad: JUMPDEST
000002ae: PUSH2 0x02b5
000002b1: PUSH2 0x0776
000002b4: JUMP
000002b5: JUMPDEST
000002b6: PUSH1 0x40
000002b8: MLOAD
000002b9: SWAP1
000002ba: DUP2
000002bb: MSTORE
000002bc: PUSH1 0x20
000002be: ADD
000002bf: PUSH1 0x40
000002c1: MLOAD
000002c2: DUP1
000002c3: SWAP2
000002c4: SUB
000002c5: SWAP1
000002c6: RETURN
000002c7: JUMPDEST
000002c8: CALLVALUE
000002c9: ISZERO
000002ca: PUSH2 0x02d2
000002cd: JUMPI
000002ce: PUSH1 0x00
000002d0: DUP1
000002d1: REVERT
000002d2: JUMPDEST
000002d3: PUSH2 0x017e
000002d6: PUSH2 0x07bd
000002d9: JUMP
000002da: JUMPDEST
000002db: CALLVALUE
000002dc: ISZERO
000002dd: PUSH2 0x02e5
000002e0: JUMPI
000002e1: PUSH1 0x00
000002e3: DUP1
000002e4: REVERT
000002e5: JUMPDEST
000002e6: PUSH2 0x028e
000002e9: PUSH2 0x07e2
000002ec: JUMP
000002ed: JUMPDEST
000002ee: CALLVALUE
000002ef: ISZERO
000002f0: PUSH2 0x02f8
000002f3: JUMPI
000002f4: PUSH1 0x00
000002f6: DUP1
000002f7: REVERT
000002f8: JUMPDEST
000002f9: PUSH2 0x00f2
000002fc: PUSH2 0x07eb
000002ff: JUMP
00000300: JUMPDEST
00000301: PUSH1 0x00
00000303: DUP1
00000304: PUSH2 0x030c
00000307: CALLER
00000308: PUSH2 0x0718
0000030b: JUMP
0000030c: JUMPDEST
0000030d: ISZERO
0000030e: ISZERO
0000030f: PUSH2 0x0317
00000312: JUMPI
00000313: PUSH1 0x00
00000315: DUP1
00000316: REVERT
00000317: JUMPDEST
00000318: DUP8
00000319: DUP8
0000031a: DUP8
0000031b: DUP8
0000031c: DUP8
0000031d: PUSH1 0x40
0000031f: MLOAD
00000320: PUSH32 0x4552433230000000000000000000000000000000000000000000000000000000
00000341: DUP2
00000342: MSTORE
00000343: PUSH13 0x01000000000000000000000000
00000351: PUSH1 0x01
00000353: PUSH1 0xa0
00000355: PUSH1 0x02
00000357: EXP
00000358: SUB
00000359: SWAP7
0000035a: DUP8
0000035b: AND
0000035c: DUP2
0000035d: MUL
0000035e: PUSH1 0x05
00000360: DUP4
00000361: ADD
00000362: MSTORE
00000363: PUSH1 0x19
00000365: DUP3
00000366: ADD
00000367: SWAP6
00000368: SWAP1
00000369: SWAP6
0000036a: MSTORE
0000036b: SWAP3
0000036c: SWAP1
0000036d: SWAP5
0000036e: AND
0000036f: SWAP1
00000370: SWAP3
00000371: MUL
00000372: PUSH1 0x39
00000374: DUP3
00000375: ADD
00000376: MSTORE
00000377: PUSH1 0x4d
00000379: DUP2
0000037a: ADD
0000037b: SWAP2
0000037c: SWAP1
0000037d: SWAP2
0000037e: MSTORE
0000037f: PUSH1 0x6d
00000381: DUP2
00000382: ADD
00000383: SWAP2
00000384: SWAP1
00000385: SWAP2
00000386: MSTORE
00000387: PUSH1 0x8d
00000389: ADD
0000038a: PUSH1 0x40
0000038c: MLOAD
0000038d: DUP1
0000038e: SWAP2
0000038f: SUB
00000390: SWAP1
00000391: KECCAK256
00000392: SWAP2
00000393: POP
00000394: PUSH2 0x03a0
00000397: DUP9
00000398: DUP4
00000399: DUP6
0000039a: DUP9
0000039b: DUP9
0000039c: PUSH2 0x084a
0000039f: JUMP
000003a0: JUMPDEST
000003a1: POP
000003a2: DUP6
000003a3: SWAP1
000003a4: POP
000003a5: DUP1
000003a6: PUSH1 0x01
000003a8: PUSH1 0xa0
000003aa: PUSH1 0x02
000003ac: EXP
000003ad: SUB
000003ae: AND
000003af: PUSH4 0xa9059cbb
000003b4: DUP10
000003b5: DUP10
000003b6: PUSH1 0x00
000003b8: PUSH1 0x40
000003ba: MLOAD
000003bb: PUSH1 0x20
000003bd: ADD
000003be: MSTORE
000003bf: PUSH1 0x40
000003c1: MLOAD
000003c2: PUSH1 0xe0
000003c4: PUSH1 0x02
000003c6: EXP
000003c7: PUSH4 0xffffffff
000003cc: DUP6
000003cd: AND
000003ce: MUL
000003cf: DUP2
000003d0: MSTORE
000003d1: PUSH1 0x01
000003d3: PUSH1 0xa0
000003d5: PUSH1 0x02
000003d7: EXP
000003d8: SUB
000003d9: SWAP1
000003da: SWAP3
000003db: AND
000003dc: PUSH1 0x04
000003de: DUP4
000003df: ADD
000003e0: MSTORE
000003e1: PUSH1 0x24
000003e3: DUP3
000003e4: ADD
000003e5: MSTORE
000003e6: PUSH1 0x44
000003e8: ADD
000003e9: PUSH1 0x20
000003eb: PUSH1 0x40
000003ed: MLOAD
000003ee: DUP1
000003ef: DUP4
000003f0: SUB
000003f1: DUP2
000003f2: PUSH1 0x00
000003f4: DUP8
000003f5: DUP1
000003f6: EXTCODESIZE
000003f7: ISZERO
000003f8: ISZERO
000003f9: PUSH2 0x0401
000003fc: JUMPI
000003fd: PUSH1 0x00
000003ff: DUP1
00000400: REVERT
00000401: JUMPDEST
00000402: PUSH2 0x02c6
00000405: GAS
00000406: SUB
00000407: CALL
00000408: ISZERO
00000409: ISZERO
0000040a: PUSH2 0x0412
0000040d: JUMPI
0000040e: PUSH1 0x00
00000410: DUP1
00000411: REVERT
00000412: JUMPDEST
00000413: POP
00000414: POP
00000415: POP
00000416: PUSH1 0x40
00000418: MLOAD
00000419: DUP1
0000041a: MLOAD
0000041b: SWAP1
0000041c: POP
0000041d: ISZERO
0000041e: ISZERO
0000041f: PUSH2 0x0427
00000422: JUMPI
00000423: PUSH1 0x00
00000425: DUP1
00000426: REVERT
00000427: JUMPDEST
00000428: POP
00000429: POP
0000042a: POP
0000042b: POP
0000042c: POP
0000042d: POP
0000042e: POP
0000042f: POP
00000430: JUMP
00000431: JUMPDEST
00000432: PUSH1 0x00
00000434: DUP1
00000435: SLOAD
00000436: DUP3
00000437: SWAP1
00000438: DUP2
00000439: LT
0000043a: PUSH2 0x043f
0000043d: JUMPI
0000043e: INVALID
0000043f: JUMPDEST
00000440: PUSH1 0x00
00000442: SWAP2
00000443: DUP3
00000444: MSTORE
00000445: PUSH1 0x20
00000447: SWAP1
00000448: SWAP2
00000449: KECCAK256
0000044a: ADD
0000044b: SLOAD
0000044c: PUSH1 0x01
0000044e: PUSH1 0xa0
00000450: PUSH1 0x02
00000452: EXP
00000453: SUB
00000454: AND
00000455: SWAP1
00000456: POP
00000457: DUP2
00000458: JUMP
00000459: JUMPDEST
0000045a: PUSH1 0x00
0000045c: PUSH2 0x0464
0000045f: CALLER
00000460: PUSH2 0x0718
00000463: JUMP
00000464: JUMPDEST
00000465: ISZERO
00000466: ISZERO
00000467: PUSH2 0x046f
0000046a: JUMPI
0000046b: PUSH1 0x00
0000046d: DUP1
0000046e: REVERT
0000046f: JUMPDEST
00000470: POP
00000471: DUP2
00000472: PUSH1 0x01
00000474: PUSH1 0xa0
00000476: PUSH1 0x02
00000478: EXP
00000479: SUB
0000047a: DUP2
0000047b: AND
0000047c: PUSH4 0x3ef13367
00000481: DUP4
00000482: PUSH1 0x40
00000484: MLOAD
00000485: PUSH1 0xe0
00000487: PUSH1 0x02
00000489: EXP
0000048a: PUSH4 0xffffffff
0000048f: DUP5
00000490: AND
00000491: MUL
00000492: DUP2
00000493: MSTORE
00000494: PUSH1 0x01
00000496: PUSH1 0xa0
00000498: PUSH1 0x02
0000049a: EXP
0000049b: SUB
0000049c: SWAP1
0000049d: SWAP2
0000049e: AND
0000049f: PUSH1 0x04
000004a1: DUP3
000004a2: ADD
000004a3: MSTORE
000004a4: PUSH1 0x24
000004a6: ADD
000004a7: PUSH1 0x00
000004a9: PUSH1 0x40
000004ab: MLOAD
000004ac: DUP1
000004ad: DUP4
000004ae: SUB
000004af: DUP2
000004b0: PUSH1 0x00
000004b2: DUP8
000004b3: DUP1
000004b4: EXTCODESIZE
000004b5: ISZERO
000004b6: ISZERO
000004b7: PUSH2 0x04bf
000004ba: JUMPI
000004bb: PUSH1 0x00
000004bd: DUP1
000004be: REVERT
000004bf: JUMPDEST
000004c0: PUSH2 0x02c6
000004c3: GAS
000004c4: SUB
000004c5: CALL
000004c6: ISZERO
000004c7: ISZERO
000004c8: PUSH2 0x04d0
000004cb: JUMPI
000004cc: PUSH1 0x00
000004ce: DUP1
000004cf: REVERT
000004d0: JUMPDEST
000004d1: POP
000004d2: POP
000004d3: POP
000004d4: POP
000004d5: POP
000004d6: POP
000004d7: JUMP
000004d8: JUMPDEST
000004d9: PUSH1 0x00
000004db: DUP1
000004dc: PUSH2 0x04e4
000004df: CALLER
000004e0: PUSH2 0x0718
000004e3: JUMP
000004e4: JUMPDEST
000004e5: ISZERO
000004e6: ISZERO
000004e7: PUSH2 0x04ef
000004ea: JUMPI
000004eb: PUSH1 0x00
000004ed: DUP1
000004ee: REVERT
000004ef: JUMPDEST
000004f0: DUP8
000004f1: DUP8
000004f2: DUP8
000004f3: DUP8
000004f4: DUP8
000004f5: PUSH1 0x40
000004f7: MLOAD
000004f8: PUSH32 0x4554484552000000000000000000000000000000000000000000000000000000
00000519: DUP2
0000051a: MSTORE
0000051b: PUSH13 0x01000000000000000000000000
00000529: PUSH1 0x01
0000052b: PUSH1 0xa0
0000052d: PUSH1 0x02
0000052f: EXP
00000530: SUB
00000531: DUP8
00000532: AND
00000533: MUL
00000534: PUSH1 0x05
00000536: DUP3
00000537: ADD
00000538: MSTORE
00000539: PUSH1 0x19
0000053b: DUP2
0000053c: ADD
0000053d: DUP6
0000053e: SWAP1
0000053f: MSTORE
00000540: PUSH1 0x39
00000542: DUP2
00000543: ADD
00000544: DUP5
00000545: DUP1
00000546: MLOAD
00000547: SWAP1
00000548: PUSH1 0x20
0000054a: ADD
0000054b: SWAP1
0000054c: DUP1
0000054d: DUP4
0000054e: DUP4
0000054f: JUMPDEST
00000550: PUSH1 0x20
00000552: DUP4
00000553: LT
00000554: PUSH2 0x056e
00000557: JUMPI
00000558: DUP1
00000559: MLOAD
0000055a: DUP3
0000055b: MSTORE
0000055c: PUSH1 0x1f
0000055e: NOT
0000055f: SWAP1
00000560: SWAP3
00000561: ADD
00000562: SWAP2
00000563: PUSH1 0x20
00000565: SWAP2
00000566: DUP3
00000567: ADD
00000568: SWAP2
00000569: ADD
0000056a: PUSH2 0x054f
0000056d: JUMP
0000056e: JUMPDEST
0000056f: PUSH1 0x01
00000571: DUP4
00000572: PUSH1 0x20
00000574: SUB
00000575: PUSH2 0x0100
00000578: EXP
00000579: SUB
0000057a: DUP1
0000057b: NOT
0000057c: DUP3
0000057d: MLOAD
0000057e: AND
0000057f: DUP2
00000580: DUP5
00000581: MLOAD
00000582: AND
00000583: OR
00000584: SWAP1
00000585: SWAP3
00000586: MSTORE
00000587: POP
00000588: POP
00000589: POP
0000058a: SWAP2
0000058b: SWAP1
0000058c: SWAP2
0000058d: ADD
0000058e: SWAP4
0000058f: DUP5
00000590: MSTORE
00000591: POP
00000592: POP
00000593: PUSH1 0x20
00000595: DUP3
00000596: ADD
00000597: MSTORE
00000598: PUSH1 0x40
0000059a: SWAP1
0000059b: DUP2
0000059c: ADD
0000059d: SWAP4
0000059e: POP
0000059f: SWAP2
000005a0: POP
000005a1: POP
000005a2: MLOAD
000005a3: DUP1
000005a4: SWAP2
000005a5: SUB
000005a6: SWAP1
000005a7: KECCAK256
000005a8: SWAP2
000005a9: POP
000005aa: PUSH2 0x05b6
000005ad: DUP9
000005ae: DUP4
000005af: DUP6
000005b0: DUP9
000005b1: DUP9
000005b2: PUSH2 0x084a
000005b5: JUMP
000005b6: JUMPDEST
000005b7: SWAP1
000005b8: POP
000005b9: DUP8
000005ba: PUSH1 0x01
000005bc: PUSH1 0xa0
000005be: PUSH1 0x02
000005c0: EXP
000005c1: SUB
000005c2: AND
000005c3: DUP8
000005c4: DUP8
000005c5: PUSH1 0x40
000005c7: MLOAD
000005c8: DUP1
000005c9: DUP3
000005ca: DUP1
000005cb: MLOAD
000005cc: SWAP1
000005cd: PUSH1 0x20
000005cf: ADD
000005d0: SWAP1
000005d1: DUP1
000005d2: DUP4
000005d3: DUP4
000005d4: PUSH1 0x00
000005d6: JUMPDEST
000005d7: DUP4
000005d8: DUP2
000005d9: LT
000005da: ISZERO
000005db: PUSH2 0x05ee
000005de: JUMPI
000005df: DUP1
000005e0: DUP3
000005e1: ADD
000005e2: MLOAD
000005e3: DUP4
000005e4: DUP3
000005e5: ADD
000005e6: MSTORE
000005e7: PUSH1 0x20
000005e9: ADD
000005ea: PUSH2 0x05d6
000005ed: JUMP
000005ee: JUMPDEST
000005ef: POP
000005f0: POP
000005f1: POP
000005f2: POP
000005f3: SWAP1
000005f4: POP
000005f5: SWAP1
000005f6: DUP2
000005f7: ADD
000005f8: SWAP1
000005f9: PUSH1 0x1f
000005fb: AND
000005fc: DUP1
000005fd: ISZERO
000005fe: PUSH2 0x061b
00000601: JUMPI
00000602: DUP1
00000603: DUP3
00000604: SUB
00000605: DUP1
00000606: MLOAD
00000607: PUSH1 0x01
00000609: DUP4
0000060a: PUSH1 0x20
0000060c: SUB
0000060d: PUSH2 0x0100
00000610: EXP
00000611: SUB
00000612: NOT
00000613: AND
00000614: DUP2
00000615: MSTORE
00000616: PUSH1 0x20
00000618: ADD
00000619: SWAP2
0000061a: POP
0000061b: JUMPDEST
0000061c: POP
0000061d: SWAP2
0000061e: POP
0000061f: POP
00000620: PUSH1 0x00
00000622: PUSH1 0x40
00000624: MLOAD
00000625: DUP1
00000626: DUP4
00000627: SUB
00000628: DUP2
00000629: DUP6
0000062a: DUP8
0000062b: PUSH2 0x8796
0000062e: GAS
0000062f: SUB
00000630: CALL
00000631: SWAP3
00000632: POP
00000633: POP
00000634: POP
00000635: ISZERO
00000636: ISZERO
00000637: PUSH2 0x063f
0000063a: JUMPI
0000063b: PUSH1 0x00
0000063d: DUP1
0000063e: REVERT
0000063f: JUMPDEST
00000640: PUSH32 0x59bed9ab5d78073465dd642a9e3e76dfdb7d53bcae9d09df7d0b8f5234d5a806
00000661: CALLER
00000662: DUP3
00000663: DUP5
00000664: DUP12
00000665: DUP12
00000666: DUP12
00000667: PUSH1 0x40
00000669: MLOAD
0000066a: PUSH1 0x01
0000066c: PUSH1 0xa0
0000066e: PUSH1 0x02
00000670: EXP
00000671: SUB
00000672: DUP1
00000673: DUP9
00000674: AND
00000675: DUP3
00000676: MSTORE
00000677: DUP7
00000678: DUP2
00000679: AND
0000067a: PUSH1 0x20
0000067c: DUP4
0000067d: ADD
0000067e: MSTORE
0000067f: PUSH1 0x40
00000681: DUP3
00000682: ADD
00000683: DUP7
00000684: SWAP1
00000685: MSTORE
00000686: DUP5
00000687: AND
00000688: PUSH1 0x60
0000068a: DUP3
0000068b: ADD
0000068c: MSTORE
0000068d: PUSH1 0x80
0000068f: DUP2
00000690: ADD
00000691: DUP4
00000692: SWAP1
00000693: MSTORE
00000694: PUSH1 0xc0
00000696: PUSH1 0xa0
00000698: DUP3
00000699: ADD
0000069a: DUP2
0000069b: DUP2
0000069c: MSTORE
0000069d: SWAP1
0000069e: DUP3
0000069f: ADD
000006a0: DUP4
000006a1: DUP2
000006a2: DUP2
000006a3: MLOAD
000006a4: DUP2
000006a5: MSTORE
000006a6: PUSH1 0x20
000006a8: ADD
000006a9: SWAP2
000006aa: POP
000006ab: DUP1
000006ac: MLOAD
000006ad: SWAP1
000006ae: PUSH1 0x20
000006b0: ADD
000006b1: SWAP1
000006b2: DUP1
000006b3: DUP4
000006b4: DUP4
000006b5: PUSH1 0x00
000006b7: JUMPDEST
000006b8: DUP4
000006b9: DUP2
000006ba: LT
000006bb: ISZERO
000006bc: PUSH2 0x06cf
000006bf: JUMPI
000006c0: DUP1
000006c1: DUP3
000006c2: ADD
000006c3: MLOAD
000006c4: DUP4
000006c5: DUP3
000006c6: ADD
000006c7: MSTORE
000006c8: PUSH1 0x20
000006ca: ADD
000006cb: PUSH2 0x06b7
000006ce: JUMP
000006cf: JUMPDEST
000006d0: POP
000006d1: POP
000006d2: POP
000006d3: POP
000006d4: SWAP1
000006d5: POP
000006d6: SWAP1
000006d7: DUP2
000006d8: ADD
000006d9: SWAP1
000006da: PUSH1 0x1f
000006dc: AND
000006dd: DUP1
000006de: ISZERO
000006df: PUSH2 0x06fc
000006e2: JUMPI
000006e3: DUP1
000006e4: DUP3
000006e5: SUB
000006e6: DUP1
000006e7: MLOAD
000006e8: PUSH1 0x01
000006ea: DUP4
000006eb: PUSH1 0x20
000006ed: SUB
000006ee: PUSH2 0x0100
000006f1: EXP
000006f2: SUB
000006f3: NOT
000006f4: AND
000006f5: DUP2
000006f6: MSTORE
000006f7: PUSH1 0x20
000006f9: ADD
000006fa: SWAP2
000006fb: POP
000006fc: JUMPDEST
000006fd: POP
000006fe: SWAP8
000006ff: POP
00000700: POP
00000701: POP
00000702: POP
00000703: POP
00000704: POP
00000705: POP
00000706: POP
00000707: PUSH1 0x40
00000709: MLOAD
0000070a: DUP1
0000070b: SWAP2
0000070c: SUB
0000070d: SWAP1
0000070e: LOG1
0000070f: POP
00000710: POP
00000711: POP
00000712: POP
00000713: POP
00000714: POP
00000715: POP
00000716: POP
00000717: JUMP
00000718: JUMPDEST
00000719: PUSH1 0x00
0000071b: DUP1
0000071c: JUMPDEST
0000071d: PUSH1 0x00
0000071f: SLOAD
00000720: DUP2
00000721: LT
00000722: ISZERO
00000723: PUSH2 0x076b
00000726: JUMPI
00000727: DUP3
00000728: PUSH1 0x01
0000072a: PUSH1 0xa0
0000072c: PUSH1 0x02
0000072e: EXP
0000072f: SUB
00000730: AND
00000731: PUSH1 0x00
00000733: DUP3
00000734: DUP2
00000735: SLOAD
00000736: DUP2
00000737: LT
00000738: ISZERO
00000739: ISZERO
0000073a: PUSH2 0x073f
0000073d: JUMPI
0000073e: INVALID
0000073f: JUMPDEST
00000740: PUSH1 0x00
00000742: SWAP2
00000743: DUP3
00000744: MSTORE
00000745: PUSH1 0x20
00000747: SWAP1
00000748: SWAP2
00000749: KECCAK256
0000074a: ADD
0000074b: SLOAD
0000074c: PUSH1 0x01
0000074e: PUSH1 0xa0
00000750: PUSH1 0x02
00000752: EXP
00000753: SUB
00000754: AND
00000755: EQ
00000756: ISZERO
00000757: PUSH2 0x0763
0000075a: JUMPI
0000075b: PUSH1 0x01
0000075d: SWAP2
0000075e: POP
0000075f: PUSH2 0x0770
00000762: JUMP
00000763: JUMPDEST
00000764: PUSH1 0x01
00000766: ADD
00000767: PUSH2 0x071c
0000076a: JUMP
0000076b: JUMPDEST
0000076c: PUSH1 0x00
0000076e: SWAP2
0000076f: POP
00000770: JUMPDEST
00000771: POP
00000772: SWAP2
00000773: SWAP1
00000774: POP
00000775: JUMP
00000776: JUMPDEST
00000777: PUSH1 0x00
00000779: DUP1
0000077a: DUP1
0000077b: JUMPDEST
0000077c: PUSH1 0x0a
0000077e: DUP2
0000077f: LT
00000780: ISZERO
00000781: PUSH2 0x07b4
00000784: JUMPI
00000785: DUP2
00000786: PUSH1 0x02
00000788: DUP3
00000789: PUSH1 0x0a
0000078b: DUP2
0000078c: LT
0000078d: PUSH2 0x0792
00000790: JUMPI
00000791: INVALID
00000792: JUMPDEST
00000793: ADD
00000794: SLOAD
00000795: GT
00000796: ISZERO
00000797: PUSH2 0x07ac
0000079a: JUMPI
0000079b: PUSH1 0x02
0000079d: DUP2
0000079e: PUSH1 0x0a
000007a0: DUP2
000007a1: LT
000007a2: PUSH2 0x07a7
000007a5: JUMPI
000007a6: INVALID
000007a7: JUMPDEST
000007a8: ADD
000007a9: SLOAD
000007aa: SWAP2
000007ab: POP
000007ac: JUMPDEST
000007ad: PUSH1 0x01
000007af: ADD
000007b0: PUSH2 0x077b
000007b3: JUMP
000007b4: JUMPDEST
000007b5: POP
000007b6: PUSH1 0x01
000007b8: ADD
000007b9: SWAP2
000007ba: SWAP1
000007bb: POP
000007bc: JUMP
000007bd: JUMPDEST
000007be: PUSH1 0x00
000007c0: PUSH2 0x07c7
000007c3: PUSH2 0x0a44
000007c6: JUMP
000007c7: JUMPDEST
000007c8: PUSH1 0x40
000007ca: MLOAD
000007cb: DUP1
000007cc: SWAP2
000007cd: SUB
000007ce: SWAP1
000007cf: PUSH1 0x00
000007d1: CREATE
000007d2: DUP1
000007d3: ISZERO
000007d4: ISZERO
000007d5: PUSH2 0x07dd
000007d8: JUMPI
000007d9: PUSH1 0x00
000007db: DUP1
000007dc: REVERT
000007dd: JUMPDEST
000007de: SWAP1
000007df: POP
000007e0: SWAP1
000007e1: JUMP
000007e2: JUMPDEST
000007e3: PUSH1 0x01
000007e5: SLOAD
000007e6: PUSH1 0xff
000007e8: AND
000007e9: DUP2
000007ea: JUMP
000007eb: JUMPDEST
000007ec: PUSH2 0x07f4
000007ef: CALLER
000007f0: PUSH2 0x0718
000007f3: JUMP
000007f4: JUMPDEST
000007f5: ISZERO
000007f6: ISZERO
000007f7: PUSH2 0x07ff
000007fa: JUMPI
000007fb: PUSH1 0x00
000007fd: DUP1
000007fe: REVERT
000007ff: JUMPDEST
00000800: PUSH1 0x01
00000802: DUP1
00000803: SLOAD
00000804: PUSH1 0xff
00000806: NOT
00000807: AND
00000808: DUP2
00000809: OR
0000080a: SWAP1
0000080b: SSTORE
0000080c: PUSH32 0x0909e8f76a4fd3e970f2eaef56c0ee6dfaf8b87c5b8d3f56ffce78e825a91157
0000082d: CALLER
0000082e: PUSH1 0x40
00000830: MLOAD
00000831: PUSH1 0x01
00000833: PUSH1 0xa0
00000835: PUSH1 0x02
00000837: EXP
00000838: SUB
00000839: SWAP1
0000083a: SWAP2
0000083b: AND
0000083c: DUP2
0000083d: MSTORE
0000083e: PUSH1 0x20
00000840: ADD
00000841: PUSH1 0x40
00000843: MLOAD
00000844: DUP1
00000845: SWAP2
00000846: SUB
00000847: SWAP1
00000848: LOG1
00000849: JUMP
0000084a: JUMPDEST
0000084b: PUSH1 0x00
0000084d: DUP1
0000084e: PUSH2 0x0857
00000851: DUP7
00000852: DUP7
00000853: PUSH2 0x08cf
00000856: JUMP
00000857: JUMPDEST
00000858: PUSH1 0x01
0000085a: SLOAD
0000085b: SWAP1
0000085c: SWAP2
0000085d: POP
0000085e: PUSH1 0xff
00000860: AND
00000861: DUP1
00000862: ISZERO
00000863: PUSH2 0x0872
00000866: JUMPI
00000867: POP
00000868: PUSH2 0x0870
0000086b: DUP8
0000086c: PUSH2 0x0718
0000086f: JUMP
00000870: JUMPDEST
00000871: ISZERO
00000872: JUMPDEST
00000873: ISZERO
00000874: PUSH2 0x087c
00000877: JUMPI
00000878: PUSH1 0x00
0000087a: DUP1
0000087b: REVERT
0000087c: JUMPDEST
0000087d: TIMESTAMP
0000087e: DUP5
0000087f: LT
00000880: ISZERO
00000881: PUSH2 0x0889
00000884: JUMPI
00000885: PUSH1 0x00
00000887: DUP1
00000888: REVERT
00000889: JUMPDEST
0000088a: PUSH2 0x0892
0000088d: DUP4
0000088e: PUSH2 0x0983
00000891: JUMP
00000892: JUMPDEST
00000893: PUSH2 0x089b
00000896: DUP2
00000897: PUSH2 0x0718
0000089a: JUMP
0000089b: JUMPDEST
0000089c: ISZERO
0000089d: ISZERO
0000089e: PUSH2 0x08a6
000008a1: JUMPI
000008a2: PUSH1 0x00
000008a4: DUP1
000008a5: REVERT
000008a6: JUMPDEST
000008a7: CALLER
000008a8: PUSH1 0x01
000008aa: PUSH1 0xa0
000008ac: PUSH1 0x02
000008ae: EXP
000008af: SUB
000008b0: AND
000008b1: DUP2
000008b2: PUSH1 0x01
000008b4: PUSH1 0xa0
000008b6: PUSH1 0x02
000008b8: EXP
000008b9: SUB
000008ba: AND
000008bb: EQ
000008bc: ISZERO
000008bd: PUSH2 0x08c5
000008c0: JUMPI
000008c1: PUSH1 0x00
000008c3: DUP1
000008c4: REVERT
000008c5: JUMPDEST
000008c6: SWAP7
000008c7: SWAP6
000008c8: POP
000008c9: POP
000008ca: POP
000008cb: POP
000008cc: POP
000008cd: POP
000008ce: JUMP
000008cf: JUMPDEST
000008d0: PUSH1 0x00
000008d2: DUP1
000008d3: PUSH1 0x00
000008d5: DUP1
000008d6: DUP5
000008d7: MLOAD
000008d8: PUSH1 0x41
000008da: EQ
000008db: PUSH2 0x08e3
000008de: JUMPI
000008df: PUSH1 0x00
000008e1: DUP1
000008e2: REVERT
000008e3: JUMPDEST
000008e4: PUSH1 0x20
000008e6: DUP6
000008e7: ADD
000008e8: MLOAD
000008e9: SWAP3
000008ea: POP
000008eb: PUSH1 0x40
000008ed: DUP6
000008ee: ADD
000008ef: MLOAD
000008f0: SWAP2
000008f1: POP
000008f2: PUSH1 0xff
000008f4: PUSH1 0x41
000008f6: DUP7
000008f7: ADD
000008f8: MLOAD
000008f9: AND
000008fa: SWAP1
000008fb: POP
000008fc: PUSH1 0x1b
000008fe: DUP2
000008ff: PUSH1 0xff
00000901: AND
00000902: LT
00000903: ISZERO
00000904: PUSH2 0x090b
00000907: JUMPI
00000908: PUSH1 0x1b
0000090a: ADD
0000090b: JUMPDEST
0000090c: PUSH1 0x01
0000090e: DUP7
0000090f: DUP3
00000910: DUP6
00000911: DUP6
00000912: PUSH1 0x40
00000914: MLOAD
00000915: PUSH1 0x00
00000917: DUP2
00000918: MSTORE
00000919: PUSH1 0x20
0000091b: ADD
0000091c: PUSH1 0x40
0000091e: MSTORE
0000091f: PUSH1 0x00
00000921: PUSH1 0x40
00000923: MLOAD
00000924: PUSH1 0x20
00000926: ADD
00000927: MSTORE
00000928: PUSH1 0x40
0000092a: MLOAD
0000092b: SWAP4
0000092c: DUP5
0000092d: MSTORE
0000092e: PUSH1 0xff
00000930: SWAP1
00000931: SWAP3
00000932: AND
00000933: PUSH1 0x20
00000935: DUP1
00000936: DUP6
00000937: ADD
00000938: SWAP2
00000939: SWAP1
0000093a: SWAP2
0000093b: MSTORE
0000093c: PUSH1 0x40
0000093e: DUP1
0000093f: DUP6
00000940: ADD
00000941: SWAP3
00000942: SWAP1
00000943: SWAP3
00000944: MSTORE
00000945: PUSH1 0x60
00000947: DUP5
00000948: ADD
00000949: SWAP3
0000094a: SWAP1
0000094b: SWAP3
0000094c: MSTORE
0000094d: PUSH1 0x80
0000094f: SWAP1
00000950: SWAP3
00000951: ADD
00000952: SWAP2
00000953: MLOAD
00000954: PUSH1 0x20
00000956: DUP2
00000957: SUB
00000958: SWAP1
00000959: DUP1
0000095a: DUP5
0000095b: SUB
0000095c: SWAP1
0000095d: PUSH1 0x00
0000095f: DUP7
00000960: PUSH2 0x646e
00000963: GAS
00000964: SUB
00000965: CALL
00000966: ISZERO
00000967: ISZERO
00000968: PUSH2 0x0970
0000096b: JUMPI
0000096c: PUSH1 0x00
0000096e: DUP1
0000096f: REVERT
00000970: JUMPDEST
00000971: POP
00000972: POP
00000973: PUSH1 0x20
00000975: PUSH1 0x40
00000977: MLOAD
00000978: SUB
00000979: MLOAD
0000097a: SWAP7
0000097b: SWAP6
0000097c: POP
0000097d: POP
0000097e: POP
0000097f: POP
00000980: POP
00000981: POP
00000982: JUMP
00000983: JUMPDEST
00000984: PUSH1 0x00
00000986: DUP1
00000987: PUSH2 0x098f
0000098a: CALLER
0000098b: PUSH2 0x0718
0000098e: JUMP
0000098f: JUMPDEST
00000990: ISZERO
00000991: ISZERO
00000992: PUSH2 0x099a
00000995: JUMPI
00000996: PUSH1 0x00
00000998: DUP1
00000999: REVERT
0000099a: JUMPDEST
0000099b: POP
0000099c: PUSH1 0x00
0000099e: SWAP1
0000099f: POP
000009a0: DUP1
000009a1: JUMPDEST
000009a2: PUSH1 0x0a
000009a4: DUP2
000009a5: LT
000009a6: ISZERO
000009a7: PUSH2 0x09f5
000009aa: JUMPI
000009ab: DUP3
000009ac: PUSH1 0x02
000009ae: DUP3
000009af: PUSH1 0x0a
000009b1: DUP2
000009b2: LT
000009b3: PUSH2 0x09b8
000009b6: JUMPI
000009b7: INVALID
000009b8: JUMPDEST
000009b9: ADD
000009ba: SLOAD
000009bb: EQ
000009bc: ISZERO
000009bd: PUSH2 0x09c5
000009c0: JUMPI
000009c1: PUSH1 0x00
000009c3: DUP1
000009c4: REVERT
000009c5: JUMPDEST
000009c6: PUSH1 0x02
000009c8: DUP3
000009c9: PUSH1 0x0a
000009cb: DUP2
000009cc: LT
000009cd: PUSH2 0x09d2
000009d0: JUMPI
000009d1: INVALID
000009d2: JUMPDEST
000009d3: ADD
000009d4: SLOAD
000009d5: PUSH1 0x02
000009d7: DUP3
000009d8: PUSH1 0x0a
000009da: DUP2
000009db: LT
000009dc: PUSH2 0x09e1
000009df: JUMPI
000009e0: INVALID
000009e1: JUMPDEST
000009e2: ADD
000009e3: SLOAD
000009e4: LT
000009e5: ISZERO
000009e6: PUSH2 0x09ed
000009e9: JUMPI
000009ea: DUP1
000009eb: SWAP2
000009ec: POP
000009ed: JUMPDEST
000009ee: PUSH1 0x01
000009f0: ADD
000009f1: PUSH2 0x09a1
000009f4: JUMP
000009f5: JUMPDEST
000009f6: PUSH1 0x02
000009f8: DUP3
000009f9: PUSH1 0x0a
000009fb: DUP2
000009fc: LT
000009fd: PUSH2 0x0a02
00000a00: JUMPI
00000a01: INVALID
00000a02: JUMPDEST
00000a03: ADD
00000a04: SLOAD
00000a05: DUP4
00000a06: LT
00000a07: ISZERO
00000a08: PUSH2 0x0a10
00000a0b: JUMPI
00000a0c: PUSH1 0x00
00000a0e: DUP1
00000a0f: REVERT
00000a10: JUMPDEST
00000a11: PUSH1 0x02
00000a13: DUP3
00000a14: PUSH1 0x0a
00000a16: DUP2
00000a17: LT
00000a18: PUSH2 0x0a1d
00000a1b: JUMPI
00000a1c: INVALID
00000a1d: JUMPDEST
00000a1e: ADD
00000a1f: SLOAD
00000a20: PUSH2 0x2710
00000a23: ADD
00000a24: DUP4
00000a25: GT
00000a26: ISZERO
00000a27: PUSH2 0x0a2f
00000a2a: JUMPI
00000a2b: PUSH1 0x00
00000a2d: DUP1
00000a2e: REVERT
00000a2f: JUMPDEST
00000a30: DUP3
00000a31: PUSH1 0x02
00000a33: DUP4
00000a34: PUSH1 0x0a
00000a36: DUP2
00000a37: LT
00000a38: PUSH2 0x0a3d
00000a3b: JUMPI
00000a3c: INVALID
00000a3d: JUMPDEST
00000a3e: ADD
00000a3f: SSTORE
00000a40: POP
00000a41: POP
00000a42: POP
00000a43: JUMP
00000a44: JUMPDEST
00000a45: PUSH1 0x40
00000a47: MLOAD
00000a48: PUSH2 0x0326
00000a4b: DUP1
00000a4c: PUSH2 0x0a55
00000a4f: DUP4
00000a50: CODECOPY
00000a51: ADD
00000a52: SWAP1
00000a53: JUMP
00000a54: STOP
00000a55: PUSH1 0x60
00000a57: PUSH1 0x40
00000a59: MSTORE
00000a5a: CALLVALUE
00000a5b: ISZERO
00000a5c: PUSH2 0x000f
00000a5f: JUMPI
00000a60: PUSH1 0x00
00000a62: DUP1
00000a63: REVERT
00000a64: JUMPDEST
00000a65: PUSH1 0x00
00000a67: DUP1
00000a68: SLOAD
00000a69: PUSH1 0x01
00000a6b: PUSH1 0xa0
00000a6d: PUSH1 0x02
00000a6f: EXP
00000a70: SUB
00000a71: CALLER
00000a72: AND
00000a73: PUSH1 0x01
00000a75: PUSH1 0xa0
00000a77: PUSH1 0x02
00000a79: EXP
00000a7a: SUB
00000a7b: NOT
00000a7c: SWAP1
00000a7d: SWAP2
00000a7e: AND
00000a7f: OR
00000a80: SWAP1
00000a81: SSTORE
00000a82: PUSH2 0x02eb
00000a85: DUP1
00000a86: PUSH2 0x003b
00000a89: PUSH1 0x00
00000a8b: CODECOPY
00000a8c: PUSH1 0x00
00000a8e: RETURN
00000a8f: STOP
00000a90: PUSH1 0x60
00000a92: PUSH1 0x40
00000a94: MSTORE
00000a95: PUSH1 0x04
00000a97: CALLDATASIZE
00000a98: LT
00000a99: PUSH2 0x003c
00000a9c: JUMPI
00000a9d: PUSH4 0xffffffff
00000aa2: PUSH1 0xe0
00000aa4: PUSH1 0x02
00000aa6: EXP
00000aa7: PUSH1 0x00
00000aa9: CALLDATALOAD
00000aaa: DIV
00000aab: AND
00000aac: PUSH3 0x821de3
00000ab0: DUP2
00000ab1: EQ
00000ab2: PUSH2 0x00db
00000ab5: JUMPI
00000ab6: DUP1
00000ab7: PUSH4 0x3ef13367
00000abc: EQ
00000abd: PUSH2 0x010a
00000ac0: JUMPI
00000ac1: DUP1
00000ac2: PUSH4 0x6b9f96ea
00000ac7: EQ
00000ac8: PUSH2 0x012b
00000acb: JUMPI
00000acc: JUMPDEST
00000acd: PUSH1 0x00
00000acf: SLOAD
00000ad0: PUSH1 0x01
00000ad2: PUSH1 0xa0
00000ad4: PUSH1 0x02
00000ad6: EXP
00000ad7: SUB
00000ad8: AND
00000ad9: CALLVALUE
00000ada: DUP1
00000adb: ISZERO
00000adc: PUSH2 0x08fc
00000adf: MUL
00000ae0: SWAP1
00000ae1: PUSH1 0x40
00000ae3: MLOAD
00000ae4: PUSH1 0x00
00000ae6: PUSH1 0x40
00000ae8: MLOAD
00000ae9: DUP1
00000aea: DUP4
00000aeb: SUB
00000aec: DUP2
00000aed: DUP6
00000aee: DUP9
00000aef: DUP9
00000af0: CALL
00000af1: SWAP4
00000af2: POP
00000af3: POP
00000af4: POP
00000af5: POP
00000af6: ISZERO
00000af7: ISZERO
00000af8: PUSH2 0x0070
00000afb: JUMPI
00000afc: PUSH1 0x00
00000afe: DUP1
00000aff: REVERT
00000b00: JUMPDEST
00000b01: PUSH32 0x69b31548dea9b3b707b4dff357d326e3e9348b24e7a6080a218a6edeeec48f9b
00000b22: CALLER
00000b23: CALLVALUE
00000b24: PUSH1 0x00
00000b26: CALLDATASIZE
00000b27: PUSH1 0x40
00000b29: MLOAD
00000b2a: PUSH1 0x01
00000b2c: PUSH1 0xa0
00000b2e: PUSH1 0x02
00000b30: EXP
00000b31: SUB
00000b32: DUP6
00000b33: AND
00000b34: DUP2
00000b35: MSTORE
00000b36: PUSH1 0x20
00000b38: DUP2
00000b39: ADD
00000b3a: DUP5
00000b3b: SWAP1
00000b3c: MSTORE
00000b3d: PUSH1 0x60
00000b3f: PUSH1 0x40
00000b41: DUP3
00000b42: ADD
00000b43: DUP2
00000b44: DUP2
00000b45: MSTORE
00000b46: SWAP1
00000b47: DUP3
00000b48: ADD
00000b49: DUP4
00000b4a: SWAP1
00000b4b: MSTORE
00000b4c: PUSH1 0x80
00000b4e: DUP3
00000b4f: ADD
00000b50: DUP5
00000b51: DUP5
00000b52: DUP1
00000b53: DUP3
00000b54: DUP5
00000b55: CALLDATACOPY
00000b56: DUP3
00000b57: ADD
00000b58: SWAP2
00000b59: POP
00000b5a: POP
00000b5b: SWAP6
00000b5c: POP
00000b5d: POP
00000b5e: POP
00000b5f: POP
00000b60: POP
00000b61: POP
00000b62: PUSH1 0x40
00000b64: MLOAD
00000b65: DUP1
00000b66: SWAP2
00000b67: SUB
00000b68: SWAP1
00000b69: LOG1
00000b6a: STOP
00000b6b: JUMPDEST
00000b6c: CALLVALUE
00000b6d: ISZERO
00000b6e: PUSH2 0x00e6
00000b71: JUMPI
00000b72: PUSH1 0x00
00000b74: DUP1
00000b75: REVERT
00000b76: JUMPDEST
00000b77: PUSH2 0x00ee
00000b7a: PUSH2 0x013e
00000b7d: JUMP
00000b7e: JUMPDEST
00000b7f: PUSH1 0x40
00000b81: MLOAD
00000b82: PUSH1 0x01
00000b84: PUSH1 0xa0
00000b86: PUSH1 0x02
00000b88: EXP
00000b89: SUB
00000b8a: SWAP1
00000b8b: SWAP2
00000b8c: AND
00000b8d: DUP2
00000b8e: MSTORE
00000b8f: PUSH1 0x20
00000b91: ADD
00000b92: PUSH1 0x40
00000b94: MLOAD
00000b95: DUP1
00000b96: SWAP2
00000b97: SUB
00000b98: SWAP1
00000b99: RETURN
00000b9a: JUMPDEST
00000b9b: CALLVALUE
00000b9c: ISZERO
00000b9d: PUSH2 0x0115
00000ba0: JUMPI
00000ba1: PUSH1 0x00
00000ba3: DUP1
00000ba4: REVERT
00000ba5: JUMPDEST
00000ba6: PUSH2 0x0129
00000ba9: PUSH1 0x01
00000bab: PUSH1 0xa0
00000bad: PUSH1 0x02
00000baf: EXP
00000bb0: SUB
00000bb1: PUSH1 0x04
00000bb3: CALLDATALOAD
00000bb4: AND
00000bb5: PUSH2 0x014d
00000bb8: JUMP
00000bb9: JUMPDEST
00000bba: STOP
00000bbb: JUMPDEST
00000bbc: CALLVALUE
00000bbd: ISZERO
00000bbe: PUSH2 0x0136
00000bc1: JUMPI
00000bc2: PUSH1 0x00
00000bc4: DUP1
00000bc5: REVERT
00000bc6: JUMPDEST
00000bc7: PUSH2 0x0129
00000bca: PUSH2 0x0284
00000bcd: JUMP
00000bce: JUMPDEST
00000bcf: PUSH1 0x00
00000bd1: SLOAD
00000bd2: PUSH1 0x01
00000bd4: PUSH1 0xa0
00000bd6: PUSH1 0x02
00000bd8: EXP
00000bd9: SUB
00000bda: AND
00000bdb: DUP2
00000bdc: JUMP
00000bdd: JUMPDEST
00000bde: PUSH1 0x00
00000be0: DUP1
00000be1: SLOAD
00000be2: DUP2
00000be3: SWAP1
00000be4: DUP2
00000be5: SWAP1
00000be6: CALLER
00000be7: PUSH1 0x01
00000be9: PUSH1 0xa0
00000beb: PUSH1 0x02
00000bed: EXP
00000bee: SUB
00000bef: SWAP1
00000bf0: DUP2
00000bf1: AND
00000bf2: SWAP2
00000bf3: AND
00000bf4: EQ
00000bf5: PUSH2 0x016d
00000bf8: JUMPI
00000bf9: PUSH1 0x00
00000bfb: DUP1
00000bfc: REVERT
00000bfd: JUMPDEST
00000bfe: DUP4
00000bff: SWAP3
00000c00: POP
00000c01: ADDRESS
00000c02: SWAP2
00000c03: POP
00000c04: DUP3
00000c05: PUSH1 0x01
00000c07: PUSH1 0xa0
00000c09: PUSH1 0x02
00000c0b: EXP
00000c0c: SUB
00000c0d: AND
00000c0e: PUSH4 0x70a08231
00000c13: DUP4
00000c14: PUSH1 0x00
00000c16: PUSH1 0x40
00000c18: MLOAD
00000c19: PUSH1 0x20
00000c1b: ADD
00000c1c: MSTORE
00000c1d: PUSH1 0x40
00000c1f: MLOAD
00000c20: PUSH1 0xe0
00000c22: PUSH1 0x02
00000c24: EXP
00000c25: PUSH4 0xffffffff
00000c2a: DUP5
00000c2b: AND
00000c2c: MUL
00000c2d: DUP2
00000c2e: MSTORE
00000c2f: PUSH1 0x01
00000c31: PUSH1 0xa0
00000c33: PUSH1 0x02
00000c35: EXP
00000c36: SUB
00000c37: SWAP1
00000c38: SWAP2
00000c39: AND
00000c3a: PUSH1 0x04
00000c3c: DUP3
00000c3d: ADD
00000c3e: MSTORE
00000c3f: PUSH1 0x24
00000c41: ADD
00000c42: PUSH1 0x20
00000c44: PUSH1 0x40
00000c46: MLOAD
00000c47: DUP1
00000c48: DUP4
00000c49: SUB
00000c4a: DUP2
00000c4b: PUSH1 0x00
00000c4d: DUP8
00000c4e: DUP1
00000c4f: EXTCODESIZE
00000c50: ISZERO
00000c51: ISZERO
00000c52: PUSH2 0x01ca
00000c55: JUMPI
00000c56: PUSH1 0x00
00000c58: DUP1
00000c59: REVERT
00000c5a: JUMPDEST
00000c5b: PUSH2 0x02c6
00000c5e: GAS
00000c5f: SUB
00000c60: CALL
00000c61: ISZERO
00000c62: ISZERO
00000c63: PUSH2 0x01db
00000c66: JUMPI
00000c67: PUSH1 0x00
00000c69: DUP1
00000c6a: REVERT
00000c6b: JUMPDEST
00000c6c: POP
00000c6d: POP
00000c6e: POP
00000c6f: PUSH1 0x40
00000c71: MLOAD
00000c72: DUP1
00000c73: MLOAD
00000c74: SWAP2
00000c75: POP
00000c76: POP
00000c77: DUP1
00000c78: ISZERO
00000c79: ISZERO
00000c7a: PUSH2 0x01f2
00000c7d: JUMPI
00000c7e: PUSH2 0x027e
00000c81: JUMP
00000c82: JUMPDEST
00000c83: PUSH1 0x00
00000c85: DUP1
00000c86: SLOAD
00000c87: PUSH1 0x01
00000c89: PUSH1 0xa0
00000c8b: PUSH1 0x02
00000c8d: EXP
00000c8e: SUB
00000c8f: DUP1
00000c90: DUP7
00000c91: AND
00000c92: SWAP3
00000c93: PUSH4 0xa9059cbb
00000c98: SWAP3
00000c99: SWAP1
00000c9a: SWAP2
00000c9b: AND
00000c9c: SWAP1
00000c9d: DUP5
00000c9e: SWAP1
00000c9f: PUSH1 0x40
00000ca1: MLOAD
00000ca2: PUSH1 0x20
00000ca4: ADD
00000ca5: MSTORE
00000ca6: PUSH1 0x40
00000ca8: MLOAD
00000ca9: PUSH1 0xe0
00000cab: PUSH1 0x02
00000cad: EXP
00000cae: PUSH4 0xffffffff
00000cb3: DUP6
00000cb4: AND
00000cb5: MUL
00000cb6: DUP2
00000cb7: MSTORE
00000cb8: PUSH1 0x01
00000cba: PUSH1 0xa0
00000cbc: PUSH1 0x02
00000cbe: EXP
00000cbf: SUB
00000cc0: SWAP1
00000cc1: SWAP3
00000cc2: AND
00000cc3: PUSH1 0x04
00000cc5: DUP4
00000cc6: ADD
00000cc7: MSTORE
00000cc8: PUSH1 0x24
00000cca: DUP3
00000ccb: ADD
00000ccc: MSTORE
00000ccd: PUSH1 0x44
00000ccf: ADD
00000cd0: PUSH1 0x20
00000cd2: PUSH1 0x40
00000cd4: MLOAD
00000cd5: DUP1
00000cd6: DUP4
00000cd7: SUB
00000cd8: DUP2
00000cd9: PUSH1 0x00
00000cdb: DUP8
00000cdc: DUP1
00000cdd: EXTCODESIZE
00000cde: ISZERO
00000cdf: ISZERO
00000ce0: PUSH2 0x0258
00000ce3: JUMPI
00000ce4: PUSH1 0x00
00000ce6: DUP1
00000ce7: REVERT
00000ce8: JUMPDEST
00000ce9: PUSH2 0x02c6
00000cec: GAS
00000ced: SUB
00000cee: CALL
00000cef: ISZERO
00000cf0: ISZERO
00000cf1: PUSH2 0x0269
00000cf4: JUMPI
00000cf5: PUSH1 0x00
00000cf7: DUP1
00000cf8: REVERT
00000cf9: JUMPDEST
00000cfa: POP
00000cfb: POP
00000cfc: POP
00000cfd: PUSH1 0x40
00000cff: MLOAD
00000d00: DUP1
00000d01: MLOAD
00000d02: SWAP1
00000d03: POP
00000d04: ISZERO
00000d05: ISZERO
00000d06: PUSH2 0x027e
00000d09: JUMPI
00000d0a: PUSH1 0x00
00000d0c: DUP1
00000d0d: REVERT
00000d0e: JUMPDEST
00000d0f: POP
00000d10: POP
00000d11: POP
00000d12: POP
00000d13: JUMP
00000d14: JUMPDEST
00000d15: PUSH1 0x00
00000d17: SLOAD
00000d18: PUSH1 0x01
00000d1a: PUSH1 0xa0
00000d1c: PUSH1 0x02
00000d1e: EXP
00000d1f: SUB
00000d20: SWAP1
00000d21: DUP2
00000d22: AND
00000d23: SWAP1
00000d24: ADDRESS
00000d25: AND
00000d26: BALANCE
00000d27: DUP1
00000d28: ISZERO
00000d29: PUSH2 0x08fc
00000d2c: MUL
00000d2d: SWAP1
00000d2e: PUSH1 0x40
00000d30: MLOAD
00000d31: PUSH1 0x00
00000d33: PUSH1 0x40
00000d35: MLOAD
00000d36: DUP1
00000d37: DUP4
00000d38: SUB
00000d39: DUP2
00000d3a: DUP6
00000d3b: DUP9
00000d3c: DUP9
00000d3d: CALL
00000d3e: SWAP4
00000d3f: POP
00000d40: POP
00000d41: POP
00000d42: POP
00000d43: ISZERO
00000d44: ISZERO
00000d45: PUSH2 0x02bd
00000d48: JUMPI
00000d49: PUSH1 0x00
00000d4b: DUP1
00000d4c: REVERT
00000d4d: JUMPDEST
00000d4e: JUMP
00000d4f: STOP
00000d50: LOG1
00000d51: PUSH6 0x627a7a723058
00000d58: KECCAK256
00000d59: CLZ
00000d5a: PUSH16 0x548dd5dd6114971115d8a72024c31355
00000d6b: SLT
00000d6c: UNKNOWN(0xDF)
00000d6d: EQ
00000d6e: SWAP15
00000d6f: UNKNOWN(0xC1)
00000d70: TSTORE
00000d71: SHR
00000d72: UNKNOWN(0xAA)
00000d73: CALLDATALOAD
00000d74: UNKNOWN(0xDD)
00000d75: DUP11
00000d76: DUP9
00000d77: UNKNOWN(0x29)
00000d78: PUSH8 0x0029a165627a7a72
00000d81: ADDRESS
00000d82: PC
00000d83: KECCAK256
00000d84: PUSH2 0x1fa0
00000d87: PUSH18 0x62821f6d8b261b1ffe7001abf8fb33dc9cd0
00000d9a: PUSH30

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x28495738ebde4b2b41077e41d2854fee53b32846affeb2729f7a322ef45dd73e
call_targets: 0x3fbe1f8fc5ddb27d428aa60f661eaaab0d2000ce
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x28495738ebde4b2b41077e41d2854fee53b32846affeb2729f7a322ef45dd73e",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x3fbe1f8fc5ddb27d428aa60f661eaaab0d2000ce"
    ],
    "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": "0x0dcd7a6c",
            "selector": "0x0dcd7a6c",
            "calldata_variants": [
                "0x0dcd7a6c",
                "0x0dcd7a6c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2079fb9a",
            "selector": "0x2079fb9a",
            "calldata_variants": [
                "0x2079fb9a",
                "0x2079fb9a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2da03409",
            "selector": "0x2da03409",
            "calldata_variants": [
                "0x2da03409",
                "0x2da034090000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x39125215",
            "selector": "0x39125215",
            "calldata_variants": [
                "0x39125215",
                "0x391252150000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7df73e27",
            "selector": "0x7df73e27",
            "calldata_variants": [
                "0x7df73e27",
                "0x7df73e270000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa0b7967b",
            "selector": "0xa0b7967b",
            "calldata_variants": [
                "0xa0b7967b",
                "0xa0b7967b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa68a76cc",
            "selector": "0xa68a76cc",
            "calldata_variants": [
                "0xa68a76cc",
                "0xa68a76cc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xabe3219c",
            "selector": "0xabe3219c",
            "calldata_variants": [
                "0xabe3219c",
                "0xabe3219c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1031,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1221,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1584,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 8,
    "guards_detected": []
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x28495738ebde4b2b41077e41d2854fee53b32846affeb2729f7a322ef45dd73e
call_targets: 0x3fbe1f8fc5ddb27d428aa60f661eaaab0d2000ce
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x28495738ebde4b2b41077e41d2854fee53b32846affeb2729f7a322ef45dd73e",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x3fbe1f8fc5ddb27d428aa60f661eaaab0d2000ce"
    ],
    "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": "0x0dcd7a6c",
            "selector": "0x0dcd7a6c",
            "calldata_variants": [
                "0x0dcd7a6c",
                "0x0dcd7a6c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2079fb9a",
            "selector": "0x2079fb9a",
            "calldata_variants": [
                "0x2079fb9a",
                "0x2079fb9a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2da03409",
            "selector": "0x2da03409",
            "calldata_variants": [
                "0x2da03409",
                "0x2da034090000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x39125215",
            "selector": "0x39125215",
            "calldata_variants": [
                "0x39125215",
                "0x391252150000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7df73e27",
            "selector": "0x7df73e27",
            "calldata_variants": [
                "0x7df73e27",
                "0x7df73e270000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa0b7967b",
            "selector": "0xa0b7967b",
            "calldata_variants": [
                "0xa0b7967b",
                "0xa0b7967b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa68a76cc",
            "selector": "0xa68a76cc",
            "calldata_variants": [
                "0xa68a76cc",
                "0xa68a76cc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xabe3219c",
            "selector": "0xabe3219c",
            "calldata_variants": [
                "0xabe3219c",
                "0xabe3219c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1031,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1221,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1584,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 8,
    "guards_detected": [],
    "untrusted_call_count": 8
}
medium other detector CREATE/CREATE2 reachable 45 yes yes
view
trace_id: 0x4d93bcbcbb443726dfe5b7851f94c9ea84f251412c4003f4858b5e1de6f28a09
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "confirmed",
    "attempts": 13,
    "trace_id": "0x4d93bcbcbb443726dfe5b7851f94c9ea84f251412c4003f4858b5e1de6f28a09",
    "confirmed": true,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "sink_reached"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x0dcd7a6c",
            "selector": "0x0dcd7a6c",
            "calldata_variants": [
                "0x0dcd7a6c",
                "0x0dcd7a6c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2079fb9a",
            "selector": "0x2079fb9a",
            "calldata_variants": [
                "0x2079fb9a",
                "0x2079fb9a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2da03409",
            "selector": "0x2da03409",
            "calldata_variants": [
                "0x2da03409",
                "0x2da034090000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x39125215",
            "selector": "0x39125215",
            "calldata_variants": [
                "0x39125215",
                "0x391252150000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7df73e27",
            "selector": "0x7df73e27",
            "calldata_variants": [
                "0x7df73e27",
                "0x7df73e270000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa0b7967b",
            "selector": "0xa0b7967b",
            "calldata_variants": [
                "0xa0b7967b",
                "0xa0b7967b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa68a76cc",
            "selector": "0xa68a76cc",
            "calldata_variants": [
                "0xa68a76cc",
                "0xa68a76cc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xabe3219c",
            "selector": "0xabe3219c",
            "calldata_variants": [
                "0xabe3219c",
                "0xabe3219c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 1,
    "create2_count": 0
}
medium reentrancy codex Computed external CALLs (some with ETH value) without detectable guards or return checks 75 no
view
evidence_json
{
    "evidence": "8 CALL sites show target/value as computed and returndata_checked=null; detector flags \u201cUntrusted CALL target/value reachable\u201d and \u201cETH value transfer possible\u201d. Validation notes classification constant_target with call_targets including the contract address, so target control is uncertain.",
    "locations": [
        "pc:1031",
        "pc:1221",
        "pc:1584",
        "pc:2405",
        "pc:2800",
        "pc:3168",
        "pc:3310",
        "pc:3389"
    ],
    "recommendation": "Constrain call targets/values to trusted addresses, apply checks-effects-interactions or a reentrancy guard around state changes, and explicitly check CALL success/return data.",
    "exploit_scenario": "If any public/external entrypoint can influence the call target or value, an attacker can trigger external calls with ETH and potentially reenter state-changing logic or redirect funds. If the target is actually constant (validation suggests self-call), risk is reduced but still unclear from bytecode alone."
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}
low access_control codex CREATE opcode reachable (factory-like deployment) with unclear access control 65 no
view
evidence_json
{
    "evidence": "CREATE opcode present and detector validated \u201cCREATE/CREATE2 reachable.\u201d",
    "locations": [
        "pc:1991"
    ],
    "recommendation": "Confirm intended factory behavior; restrict CREATE to authorized callers if not meant to be public and emit deployment events for auditability.",
    "exploit_scenario": "If a public entrypoint reaches CREATE, an attacker could deploy arbitrary contracts from this address (potentially for griefing or to confuse integrators). This may be intended factory behavior, but access control cannot be confirmed from bytecode alone."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 5
}