019bb490-f35f-7392-9feb-8212b2eae35f
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| 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 |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"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"]}]}
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
{
"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
}
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
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_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 |
viewtrace_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 |
viewtrace_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 | — |
viewevidence_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 | — |
viewevidence_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 | — |
viewevidence_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 | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 5
}
|