6a5f01b9-7b55-47d9-9f84-94c979b17f95
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 |
|---|---|---|---|---|
| 31334 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 111002 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 111003 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 111004 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 111005 | capability.graph | complete | 1 / 3 | 1 week ago |
| 111006 | detector.run | complete | 1 / 3 | 1 week ago |
| 111007 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:9313] OpenAI Codex v0.77.0 (research preview)
[codex:9313] --------
[codex:9313] workdir: /tmp/codex-multi-umrtbii_
[codex:9313] model: gpt-5.2-codex
[codex:9313] provider: openai
[codex:9313] approval: never
[codex:9313] sandbox: read-only
[codex:9313] reasoning effort: xhigh
[codex:9313] reasoning summaries: auto
[codex:9313] session id: 019b8065-c050-78a0-b622-f048fb0d0c17
[codex:9313] --------
[codex:9313] user
[codex:9313] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:9313]
[codex:9313] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:9313]
[codex:9313] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:9313] - Gas inefficiency, code quality, naming, or best practices
[codex:9313] - Theoretical vulnerabilities without a clear extraction path
[codex:9313] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:9313] - Front-running unless it enables theft beyond MEV
[codex:9313] - DoS, griefing, or issues that don't result in attacker profit
[codex:9313] - Missing events, view function issues, or informational findings
[codex:9313]
[codex:9313] HIGH-VALUE PATTERNS TO HUNT:
[codex:9313] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:9313] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:9313] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:9313] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:9313] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:9313] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:9313] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:9313] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:9313] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:9313]
[codex:9313] For each finding, you MUST provide:
[codex:9313] 1. Exact file and line numbers of vulnerable code
[codex:9313] 2. Step-by-step exploit transaction sequence
[codex:9313] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:9313]
[codex:9313] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:9313]
[codex:9313] Output MUST be valid JSON matching the provided schema.
[codex:9313] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:9313] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:9313] mcp startup: no servers
[codex:9313]
[codex:9313] thinking
[codex:9313] **Preparing to review skill instructions**
[codex:9313] exec
[codex:9313] /bin/bash -lc ls in /tmp/codex-multi-umrtbii_ succeeded in 6ms:
[codex:9313] AUDIT_BUNDLE.txt
[codex:9313] codex-output-schema.json
[codex:9313] contracts
[codex:9313] exec
[codex:9313] /bin/bash -lc 'rg --files' in /tmp/codex-multi-umrtbii_ succeeded in 8ms:
[codex:9313] codex-output-schema.json
[codex:9313] AUDIT_BUNDLE.txt
[codex:9313] contracts/Contract.sol
[codex:9313]
[codex:9313] thinking
[codex:9313] **Reading AUDIT_BUNDLE.txt**
[codex:9313] exec
[codex:9313] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-umrtbii_ succeeded in 8ms:
[codex:9313] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:9313]
[codex:9313] ================================================================================
[codex:9313] FILE: contracts/Contract.sol
[codex:9313] ================================================================================
[codex:9313] //last compiled with soljson-v0.3.6-2016-08-29-b8060c5.js
[codex:9313]
[codex:9313] contract SafeMath {
[codex:9313] //internals
[codex:9313]
[codex:9313] function safeMul(uint a, uint b) internal returns (uint) {
[codex:9313] uint c = a * b;
[codex:9313] assert(a == 0 || c / a == b);
[codex:9313] return c;
[codex:9313] }
[codex:9313]
[codex:9313] function safeSub(uint a, uint b) internal returns (uint) {
[codex:9313] assert(b <= a);
[codex:9313] return a - b;
[codex:9313] }
[codex:9313]
[codex:9313]
[codex:9313] thinking
[codex:9313] **Analyzing potential EtherDelta vulnerabilities**
[codex:9313] thinking
[codex:9313] **Preparing final audit summary**
[codex:9313]
[codex:9313] I'm putting together a JSON report that states no concrete exploitable profit paths were found in the contract audit. I'll ensure it matches the codex output schema with a clear summary and empty findings list.
[codex:9313] codex
[codex:9313] {"no_findings":true,"summary":"Reviewed `contracts/Contract.sol` in `AUDIT_BUNDLE.txt`; no concrete, exploitable profit paths found under stated assumptions.","findings":[]}
[codex:9313] tokens used
[codex:9313] 9,727
[codex:9313] {"no_findings":true,"summary":"Reviewed `contracts/Contract.sol` in `AUDIT_BUNDLE.txt`; no concrete, exploitable profit paths found under stated assumptions.","findings":[]}
{
"codex": {
"ran_at": "2026-01-02T20:30:07.559542+00:00",
"returncode": 0
},
"summary": "Reviewed `contracts/Contract.sol` in `AUDIT_BUNDLE.txt`; no concrete, exploitable profit paths found under stated assumptions.",
"raw_final": {
"summary": "Reviewed `contracts/Contract.sol` in `AUDIT_BUNDLE.txt`; no concrete, exploitable profit paths found under stated assumptions.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLDATASIZE 00000006: ISZERO 00000007: PUSH2 0x00a3 0000000a: JUMPI 0000000b: PUSH1 0xe0 0000000d: PUSH1 0x02 0000000f: EXP 00000010: PUSH1 0x00 00000012: CALLDATALOAD 00000013: DIV 00000014: PUSH4 0x0a19b14a 00000019: DUP2 0000001a: EQ 0000001b: PUSH2 0x00ab 0000001e: JUMPI 0000001f: DUP1 00000020: PUSH4 0x278b8c0e 00000025: EQ 00000026: PUSH2 0x00e2 00000029: JUMPI 0000002a: DUP1 0000002b: PUSH4 0x2e1a7d4d 00000030: EQ 00000031: PUSH2 0x0111 00000034: JUMPI 00000035: DUP1 00000036: PUSH4 0x338b5dea 0000003b: EQ 0000003c: PUSH2 0x0125 0000003f: JUMPI 00000040: DUP1 00000041: PUSH4 0x57786394 00000046: EQ 00000047: PUSH2 0x0150 0000004a: JUMPI 0000004b: DUP1 0000004c: PUSH4 0x65e17c9d 00000051: EQ 00000052: PUSH2 0x0159 00000055: JUMPI 00000056: DUP1 00000057: PUSH4 0x6c86888b 0000005c: EQ 0000005d: PUSH2 0x016b 00000060: JUMPI 00000061: DUP1 00000062: PUSH4 0x93f0bb51 00000067: EQ 00000068: PUSH2 0x01da 0000006b: JUMPI 0000006c: DUP1 0000006d: PUSH4 0x9e281a98 00000072: EQ 00000073: PUSH2 0x0207 00000076: JUMPI 00000077: DUP1 00000078: PUSH4 0xc281309e 0000007d: EQ 0000007e: PUSH2 0x0232 00000081: JUMPI 00000082: DUP1 00000083: PUSH4 0xd0e30db0 00000088: EQ 00000089: PUSH2 0x023b 0000008c: JUMPI 0000008d: DUP1 0000008e: PUSH4 0xf7888aec 00000093: EQ 00000094: PUSH2 0x0287 00000097: JUMPI 00000098: DUP1 00000099: PUSH4 0xfb6e155f 0000009e: EQ 0000009f: PUSH2 0x02bb 000000a2: JUMPI 000000a3: JUMPDEST 000000a4: PUSH2 0x03e6 000000a7: PUSH2 0x0002 000000aa: JUMP 000000ab: JUMPDEST 000000ac: PUSH2 0x03e6 000000af: PUSH1 0x04 000000b1: CALLDATALOAD 000000b2: PUSH1 0x24 000000b4: CALLDATALOAD 000000b5: PUSH1 0x44 000000b7: CALLDATALOAD 000000b8: PUSH1 0x64 000000ba: CALLDATALOAD 000000bb: PUSH1 0x84 000000bd: CALLDATALOAD 000000be: PUSH1 0xa4 000000c0: CALLDATALOAD 000000c1: PUSH1 0xc4 000000c3: CALLDATALOAD 000000c4: PUSH1 0xe4 000000c6: CALLDATALOAD 000000c7: PUSH2 0x0104 000000ca: CALLDATALOAD 000000cb: PUSH2 0x0124 000000ce: CALLDATALOAD 000000cf: PUSH2 0x0144 000000d2: CALLDATALOAD 000000d3: PUSH1 0x00 000000d5: PUSH1 0x00 000000d7: CALLVALUE 000000d8: GT 000000d9: ISZERO 000000da: PUSH2 0x042b 000000dd: JUMPI 000000de: PUSH2 0x0002 000000e1: JUMP 000000e2: JUMPDEST 000000e3: PUSH2 0x03e6 000000e6: PUSH1 0x04 000000e8: CALLDATALOAD 000000e9: PUSH1 0x24 000000eb: CALLDATALOAD 000000ec: PUSH1 0x44 000000ee: CALLDATALOAD 000000ef: PUSH1 0x64 000000f1: CALLDATALOAD 000000f2: PUSH1 0x84 000000f4: CALLDATALOAD 000000f5: PUSH1 0xa4 000000f7: CALLDATALOAD 000000f8: PUSH1 0xc4 000000fa: CALLDATALOAD 000000fb: PUSH1 0xe4 000000fd: CALLDATALOAD 000000fe: PUSH2 0x0104 00000101: CALLDATALOAD 00000102: PUSH1 0x00 00000104: PUSH1 0x00 00000106: CALLVALUE 00000107: GT 00000108: ISZERO 00000109: PUSH2 0x08b4 0000010c: JUMPI 0000010d: PUSH2 0x0002 00000110: JUMP 00000111: JUMPDEST 00000112: PUSH2 0x03e6 00000115: PUSH1 0x04 00000117: CALLDATALOAD 00000118: PUSH1 0x00 0000011a: CALLVALUE 0000011b: GT 0000011c: ISZERO 0000011d: PUSH2 0x0ab3 00000120: JUMPI 00000121: PUSH2 0x0002 00000124: JUMP 00000125: JUMPDEST 00000126: PUSH2 0x03e6 00000129: PUSH1 0x04 0000012b: CALLDATALOAD 0000012c: PUSH1 0x24 0000012e: CALLDATALOAD 0000012f: PUSH1 0x00 00000131: CALLVALUE 00000132: GT 00000133: DUP1 00000134: PUSH2 0x0146 00000137: JUMPI 00000138: POP 00000139: DUP2 0000013a: PUSH1 0x01 0000013c: PUSH1 0xa0 0000013e: PUSH1 0x02 00000140: EXP 00000141: SUB 00000142: AND 00000143: PUSH1 0x00 00000145: EQ 00000146: JUMPDEST 00000147: ISZERO 00000148: PUSH2 0x0b61 0000014b: JUMPI 0000014c: PUSH2 0x0002 0000014f: JUMP 00000150: JUMPDEST 00000151: PUSH2 0x03e8 00000154: PUSH1 0x03 00000156: SLOAD 00000157: DUP2 00000158: JUMP 00000159: JUMPDEST 0000015a: PUSH2 0x03fa 0000015d: PUSH1 0x02 0000015f: SLOAD 00000160: PUSH1 0x01 00000162: PUSH1 0xa0 00000164: PUSH1 0x02 00000166: EXP 00000167: SUB 00000168: AND 00000169: DUP2 0000016a: JUMP 0000016b: JUMPDEST 0000016c: PUSH2 0x0417 0000016f: PUSH1 0x04 00000171: CALLDATALOAD 00000172: PUSH1 0x24 00000174: CALLDATALOAD 00000175: PUSH1 0x44 00000177: CALLDATALOAD 00000178: PUSH1 0x64 0000017a: CALLDATALOAD 0000017b: PUSH1 0x84 0000017d: CALLDATALOAD 0000017e: PUSH1 0xa4 00000180: CALLDATALOAD 00000181: PUSH1 0xc4 00000183: CALLDATALOAD 00000184: PUSH1 0xe4 00000186: CALLDATALOAD 00000187: PUSH2 0x0104 0000018a: CALLDATALOAD 0000018b: PUSH2 0x0124 0000018e: CALLDATALOAD 0000018f: PUSH2 0x0144 00000192: CALLDATALOAD 00000193: PUSH2 0x0164 00000196: CALLDATALOAD 00000197: PUSH1 0x01 00000199: PUSH1 0xa0 0000019b: PUSH1 0x02 0000019d: EXP 0000019e: SUB 0000019f: DUP13 000001a0: DUP2 000001a1: AND 000001a2: PUSH1 0x00 000001a4: SWAP1 000001a5: DUP2 000001a6: MSTORE 000001a7: PUSH1 0x20 000001a9: DUP2 000001aa: DUP2 000001ab: MSTORE 000001ac: PUSH1 0x40 000001ae: DUP1 000001af: DUP4 000001b0: KECCAK256 000001b1: SWAP4 000001b2: DUP6 000001b3: AND 000001b4: DUP4 000001b5: MSTORE 000001b6: SWAP3 000001b7: SWAP1 000001b8: MSTORE 000001b9: SWAP1 000001ba: DUP2 000001bb: KECCAK256 000001bc: SLOAD 000001bd: DUP4 000001be: SWAP1 000001bf: LT 000001c0: DUP1 000001c1: ISZERO 000001c2: SWAP1 000001c3: PUSH2 0x0c96 000001c6: JUMPI 000001c7: POP 000001c8: DUP3 000001c9: PUSH2 0x0c93 000001cc: DUP15 000001cd: DUP15 000001ce: DUP15 000001cf: DUP15 000001d0: DUP15 000001d1: DUP15 000001d2: DUP15 000001d3: DUP15 000001d4: DUP15 000001d5: DUP15 000001d6: PUSH2 0x02df 000001d9: JUMP 000001da: JUMPDEST 000001db: PUSH2 0x03e6 000001de: PUSH1 0x04 000001e0: CALLDATALOAD 000001e1: PUSH1 0x24 000001e3: CALLDATALOAD 000001e4: PUSH1 0x44 000001e6: CALLDATALOAD 000001e7: PUSH1 0x64 000001e9: CALLDATALOAD 000001ea: PUSH1 0x84 000001ec: CALLDATALOAD 000001ed: PUSH1 0xa4 000001ef: CALLDATALOAD 000001f0: PUSH1 0xc4 000001f2: CALLDATALOAD 000001f3: PUSH1 0xe4 000001f5: CALLDATALOAD 000001f6: PUSH2 0x0104 000001f9: CALLDATALOAD 000001fa: PUSH1 0x00 000001fc: CALLVALUE 000001fd: GT 000001fe: ISZERO 000001ff: PUSH2 0x0ca4 00000202: JUMPI 00000203: PUSH2 0x0002 00000206: JUMP 00000207: JUMPDEST 00000208: PUSH2 0x03e6 0000020b: PUSH1 0x04 0000020d: CALLDATALOAD 0000020e: PUSH1 0x24 00000210: CALLDATALOAD 00000211: PUSH1 0x00 00000213: CALLVALUE 00000214: GT 00000215: DUP1 00000216: PUSH2 0x0228 00000219: JUMPI 0000021a: POP 0000021b: DUP2 0000021c: PUSH1 0x01 0000021e: PUSH1 0xa0 00000220: PUSH1 0x02 00000222: EXP 00000223: SUB 00000224: AND 00000225: PUSH1 0x00 00000227: EQ 00000228: JUMPDEST 00000229: ISZERO 0000022a: PUSH2 0x0d30 0000022d: JUMPI 0000022e: PUSH2 0x0002 00000231: JUMP 00000232: JUMPDEST 00000233: PUSH2 0x03e8 00000236: PUSH1 0x04 00000238: SLOAD 00000239: DUP2 0000023a: JUMP 0000023b: JUMPDEST 0000023c: PUSH2 0x03e6 0000023f: CALLER 00000240: PUSH1 0x01 00000242: PUSH1 0xa0 00000244: PUSH1 0x02 00000246: EXP 00000247: SUB 00000248: AND 00000249: PUSH1 0x00 0000024b: SWAP1 0000024c: DUP2 0000024d: MSTORE 0000024e: PUSH1 0x00 00000250: DUP1 00000251: MLOAD 00000252: PUSH1 0x20 00000254: PUSH2 0x0f9f 00000257: DUP4 00000258: CODECOPY 00000259: DUP2 0000025a: MLOAD 0000025b: SWAP2 0000025c: MSTORE 0000025d: PUSH1 0x20 0000025f: MSTORE 00000260: PUSH1 0x40 00000262: SWAP1 00000263: KECCAK256 00000264: SLOAD 00000265: PUSH2 0x0ea3 00000268: SWAP1 00000269: CALLVALUE 0000026a: JUMPDEST 0000026b: PUSH1 0x00 0000026d: DUP3 0000026e: DUP3 0000026f: ADD 00000270: PUSH2 0x0f8f 00000273: DUP5 00000274: DUP3 00000275: LT 00000276: DUP1 00000277: ISZERO 00000278: SWAP1 00000279: PUSH2 0x0282 0000027c: JUMPI 0000027d: POP 0000027e: DUP4 0000027f: DUP3 00000280: LT 00000281: ISZERO 00000282: JUMPDEST 00000283: PUSH2 0x0660 00000286: JUMP 00000287: JUMPDEST 00000288: PUSH2 0x03e8 0000028b: PUSH1 0x04 0000028d: CALLDATALOAD 0000028e: PUSH1 0x24 00000290: CALLDATALOAD 00000291: PUSH1 0x01 00000293: PUSH1 0xa0 00000295: PUSH1 0x02 00000297: EXP 00000298: SUB 00000299: DUP3 0000029a: DUP2 0000029b: AND 0000029c: PUSH1 0x00 0000029e: SWAP1 0000029f: DUP2 000002a0: MSTORE 000002a1: PUSH1 0x20 000002a3: DUP2 000002a4: DUP2 000002a5: MSTORE 000002a6: PUSH1 0x40 000002a8: DUP1 000002a9: DUP4 000002aa: KECCAK256 000002ab: SWAP4 000002ac: DUP6 000002ad: AND 000002ae: DUP4 000002af: MSTORE 000002b0: SWAP3 000002b1: SWAP1 000002b2: MSTORE 000002b3: KECCAK256 000002b4: SLOAD 000002b5: JUMPDEST 000002b6: SWAP3 000002b7: SWAP2 000002b8: POP 000002b9: POP 000002ba: JUMP 000002bb: JUMPDEST 000002bc: PUSH2 0x03e8 000002bf: PUSH1 0x04 000002c1: CALLDATALOAD 000002c2: PUSH1 0x24 000002c4: CALLDATALOAD 000002c5: PUSH1 0x44 000002c7: CALLDATALOAD 000002c8: PUSH1 0x64 000002ca: CALLDATALOAD 000002cb: PUSH1 0x84 000002cd: CALLDATALOAD 000002ce: PUSH1 0xa4 000002d0: CALLDATALOAD 000002d1: PUSH1 0xc4 000002d3: CALLDATALOAD 000002d4: PUSH1 0xe4 000002d6: CALLDATALOAD 000002d7: PUSH2 0x0104 000002da: CALLDATALOAD 000002db: PUSH2 0x0124 000002de: CALLDATALOAD 000002df: JUMPDEST 000002e0: PUSH1 0x00 000002e2: PUSH1 0x00 000002e4: PUSH1 0x00 000002e6: PUSH1 0x00 000002e8: PUSH1 0x02 000002ea: DUP15 000002eb: DUP15 000002ec: DUP15 000002ed: DUP15 000002ee: DUP15 000002ef: DUP15 000002f0: PUSH1 0x40 000002f2: MLOAD 000002f3: DUP1 000002f4: DUP8 000002f5: PUSH1 0x01 000002f7: PUSH1 0xa0 000002f9: PUSH1 0x02 000002fb: EXP 000002fc: SUB 000002fd: AND 000002fe: PUSH1 0x60 00000300: PUSH1 0x02 00000302: EXP 00000303: MUL 00000304: DUP2 00000305: MSTORE 00000306: PUSH1 0x14 00000308: ADD 00000309: DUP7 0000030a: DUP2 0000030b: MSTORE 0000030c: PUSH1 0x20 0000030e: ADD 0000030f: DUP6 00000310: PUSH1 0x01 00000312: PUSH1 0xa0 00000314: PUSH1 0x02 00000316: EXP 00000317: SUB 00000318: AND 00000319: PUSH1 0x60 0000031b: PUSH1 0x02 0000031d: EXP 0000031e: MUL 0000031f: DUP2 00000320: MSTORE 00000321: PUSH1 0x14 00000323: ADD 00000324: DUP5 00000325: DUP2 00000326: MSTORE 00000327: PUSH1 0x20 00000329: ADD 0000032a: DUP4 0000032b: DUP2 0000032c: MSTORE 0000032d: PUSH1 0x20 0000032f: ADD 00000330: DUP3 00000331: DUP2 00000332: MSTORE 00000333: PUSH1 0x20 00000335: ADD 00000336: SWAP7 00000337: POP 00000338: POP 00000339: POP 0000033a: POP 0000033b: POP 0000033c: POP 0000033d: POP 0000033e: PUSH1 0x20 00000340: PUSH1 0x40 00000342: MLOAD 00000343: DUP1 00000344: DUP4 00000345: SUB 00000346: DUP2 00000347: PUSH1 0x00 00000349: DUP7 0000034a: PUSH2 0x61da 0000034d: GAS 0000034e: SUB 0000034f: CALL 00000350: ISZERO 00000351: PUSH2 0x0002 00000354: JUMPI 00000355: POP 00000356: POP 00000357: PUSH1 0x40 00000359: DUP1 0000035a: MLOAD 0000035b: DUP1 0000035c: MLOAD 0000035d: PUSH1 0x00 0000035f: DUP3 00000360: DUP2 00000361: MSTORE 00000362: PUSH1 0x20 00000364: DUP4 00000365: DUP2 00000366: ADD 00000367: DUP1 00000368: DUP7 00000369: MSTORE 0000036a: DUP4 0000036b: SWAP1 0000036c: MSTORE 0000036d: PUSH1 0xff 0000036f: DUP13 00000370: AND 00000371: DUP5 00000372: DUP7 00000373: ADD 00000374: MSTORE 00000375: PUSH1 0x60 00000377: DUP5 00000378: ADD 00000379: DUP12 0000037a: SWAP1 0000037b: MSTORE 0000037c: PUSH1 0x80 0000037e: DUP5 0000037f: ADD 00000380: DUP11 00000381: SWAP1 00000382: MSTORE 00000383: SWAP4 00000384: MLOAD 00000385: SWAP2 00000386: SWAP7 00000387: POP 00000388: PUSH1 0x01 0000038a: PUSH1 0xa0 0000038c: PUSH1 0x02 0000038e: EXP 0000038f: SUB 00000390: DUP13 00000391: AND 00000392: SWAP4 00000393: PUSH1 0x01 00000395: SWAP4 00000396: PUSH1 0xa0 00000398: DUP1 00000399: DUP3 0000039a: ADD 0000039b: SWAP5 0000039c: SWAP3 0000039d: SWAP4 0000039e: PUSH1 0x1f 000003a0: NOT 000003a1: DUP5 000003a2: ADD 000003a3: SWAP4 000003a4: SWAP3 000003a5: DUP4 000003a6: SWAP1 000003a7: SUB 000003a8: SWAP1 000003a9: SWAP2 000003aa: ADD 000003ab: SWAP2 000003ac: SWAP1 000003ad: DUP7 000003ae: PUSH2 0x61da 000003b1: GAS 000003b2: SUB 000003b3: CALL 000003b4: ISZERO 000003b5: PUSH2 0x0002 000003b8: JUMPI 000003b9: POP 000003ba: POP 000003bb: PUSH1 0x20 000003bd: PUSH1 0x40 000003bf: MLOAD 000003c0: SUB 000003c1: MLOAD 000003c2: PUSH1 0x01 000003c4: PUSH1 0xa0 000003c6: PUSH1 0x02 000003c8: EXP 000003c9: SUB 000003ca: AND 000003cb: EQ 000003cc: DUP1 000003cd: ISZERO 000003ce: PUSH2 0x03d7 000003d1: JUMPI 000003d2: POP 000003d3: DUP10 000003d4: NUMBER 000003d5: GT 000003d6: ISZERO 000003d7: JUMPDEST 000003d8: ISZERO 000003d9: ISZERO 000003da: PUSH2 0x0f29 000003dd: JUMPI 000003de: PUSH1 0x00 000003e0: SWAP4 000003e1: POP 000003e2: PUSH2 0x0f18 000003e5: JUMP 000003e6: JUMPDEST 000003e7: STOP 000003e8: JUMPDEST 000003e9: PUSH1 0x40 000003eb: DUP1 000003ec: MLOAD 000003ed: SWAP2 000003ee: DUP3 000003ef: MSTORE 000003f0: MLOAD 000003f1: SWAP1 000003f2: DUP2 000003f3: SWAP1 000003f4: SUB 000003f5: PUSH1 0x20 000003f7: ADD 000003f8: SWAP1 000003f9: RETURN 000003fa: JUMPDEST 000003fb: PUSH1 0x40 000003fd: DUP1 000003fe: MLOAD 000003ff: PUSH1 0x01 00000401: PUSH1 0xa0 00000403: PUSH1 0x02 00000405: EXP 00000406: SUB 00000407: SWAP3 00000408: SWAP1 00000409: SWAP3 0000040a: AND 0000040b: DUP3 0000040c: MSTORE 0000040d: MLOAD 0000040e: SWAP1 0000040f: DUP2 00000410: SWAP1 00000411: SUB 00000412: PUSH1 0x20 00000414: ADD 00000415: SWAP1 00000416: RETURN 00000417: JUMPDEST 00000418: PUSH1 0x40 0000041a: DUP1 0000041b: MLOAD 0000041c: SWAP2 0000041d: ISZERO 0000041e: ISZERO 0000041f: DUP3 00000420: MSTORE 00000421: MLOAD 00000422: SWAP1 00000423: DUP2 00000424: SWAP1 00000425: SUB 00000426: PUSH1 0x20 00000428: ADD 00000429: SWAP1 0000042a: RETURN 0000042b: JUMPDEST 0000042c: PUSH1 0x02 0000042e: DUP13 0000042f: DUP13 00000430: DUP13 00000431: DUP13 00000432: DUP13 00000433: DUP13 00000434: PUSH1 0x40 00000436: MLOAD 00000437: DUP1 00000438: DUP8 00000439: PUSH1 0x01 0000043b: PUSH1 0xa0 0000043d: PUSH1 0x02 0000043f: EXP 00000440: SUB 00000441: AND 00000442: PUSH1 0x60 00000444: PUSH1 0x02 00000446: EXP 00000447: MUL 00000448: DUP2 00000449: MSTORE 0000044a: PUSH1 0x14 0000044c: ADD 0000044d: DUP7 0000044e: DUP2 0000044f: MSTORE 00000450: PUSH1 0x20 00000452: ADD 00000453: DUP6 00000454: PUSH1 0x01 00000456: PUSH1 0xa0 00000458: PUSH1 0x02 0000045a: EXP 0000045b: SUB 0000045c: AND 0000045d: PUSH1 0x60 0000045f: PUSH1 0x02 00000461: EXP 00000462: MUL 00000463: DUP2 00000464: MSTORE 00000465: PUSH1 0x14 00000467: ADD 00000468: DUP5 00000469: DUP2 0000046a: MSTORE 0000046b: PUSH1 0x20 0000046d: ADD 0000046e: DUP4 0000046f: DUP2 00000470: MSTORE 00000471: PUSH1 0x20 00000473: ADD 00000474: DUP3 00000475: DUP2 00000476: MSTORE 00000477: PUSH1 0x20 00000479: ADD 0000047a: SWAP7 0000047b: POP 0000047c: POP 0000047d: POP 0000047e: POP 0000047f: POP 00000480: POP 00000481: POP 00000482: PUSH1 0x20 00000484: PUSH1 0x40 00000486: MLOAD 00000487: DUP1 00000488: DUP4 00000489: SUB 0000048a: DUP2 0000048b: PUSH1 0x00 0000048d: DUP7 0000048e: PUSH2 0x61da 00000491: GAS 00000492: SUB 00000493: CALL 00000494: ISZERO 00000495: PUSH2 0x0002 00000498: JUMPI 00000499: POP 0000049a: POP 0000049b: PUSH1 0x40 0000049d: DUP1 0000049e: MLOAD 0000049f: DUP1 000004a0: MLOAD 000004a1: PUSH1 0x00 000004a3: DUP3 000004a4: DUP2 000004a5: MSTORE 000004a6: PUSH1 0x20 000004a8: DUP4 000004a9: DUP2 000004aa: ADD 000004ab: DUP1 000004ac: DUP7 000004ad: MSTORE 000004ae: DUP4 000004af: SWAP1 000004b0: MSTORE 000004b1: PUSH1 0xff 000004b3: DUP11 000004b4: AND 000004b5: DUP5 000004b6: DUP7 000004b7: ADD 000004b8: MSTORE 000004b9: PUSH1 0x60 000004bb: DUP5 000004bc: ADD 000004bd: DUP10 000004be: SWAP1 000004bf: MSTORE 000004c0: PUSH1 0x80 000004c2: DUP5 000004c3: ADD 000004c4: DUP9 000004c5: SWAP1 000004c6: MSTORE 000004c7: SWAP4 000004c8: MLOAD 000004c9: SWAP2 000004ca: SWAP5 000004cb: POP 000004cc: PUSH1 0x01 000004ce: PUSH1 0xa0 000004d0: PUSH1 0x02 000004d2: EXP 000004d3: SUB 000004d4: DUP11 000004d5: AND 000004d6: SWAP4 000004d7: PUSH1 0x01 000004d9: SWAP4 000004da: PUSH1 0xa0 000004dc: DUP2 000004dd: DUP2 000004de: ADD 000004df: SWAP5 000004e0: SWAP3 000004e1: SWAP4 000004e2: PUSH1 0x1f 000004e4: NOT 000004e5: DUP5 000004e6: ADD 000004e7: SWAP4 000004e8: SWAP3 000004e9: DUP4 000004ea: SWAP1 000004eb: SUB 000004ec: SWAP1 000004ed: SWAP2 000004ee: ADD 000004ef: SWAP2 000004f0: SWAP1 000004f1: DUP7 000004f2: PUSH2 0x61da 000004f5: GAS 000004f6: SUB 000004f7: CALL 000004f8: ISZERO 000004f9: PUSH2 0x0002 000004fc: JUMPI 000004fd: POP 000004fe: POP 000004ff: PUSH1 0x20 00000501: PUSH1 0x40 00000503: MLOAD 00000504: SUB 00000505: MLOAD 00000506: PUSH1 0x01 00000508: PUSH1 0xa0 0000050a: PUSH1 0x02 0000050c: EXP 0000050d: SUB 0000050e: AND 0000050f: EQ 00000510: DUP1 00000511: ISZERO 00000512: PUSH2 0x051b 00000515: JUMPI 00000516: POP 00000517: DUP8 00000518: NUMBER 00000519: GT 0000051a: ISZERO 0000051b: JUMPDEST 0000051c: DUP1 0000051d: ISZERO 0000051e: PUSH2 0x0540 00000521: JUMPI 00000522: POP 00000523: PUSH1 0x00 00000525: DUP2 00000526: DUP2 00000527: MSTORE 00000528: PUSH1 0x01 0000052a: PUSH1 0x20 0000052c: MSTORE 0000052d: PUSH1 0x40 0000052f: SWAP1 00000530: KECCAK256 00000531: SLOAD 00000532: DUP12 00000533: SWAP1 00000534: PUSH2 0x053d 00000537: SWAP1 00000538: DUP5 00000539: PUSH2 0x026a 0000053c: JUMP 0000053d: JUMPDEST 0000053e: GT 0000053f: ISZERO 00000540: JUMPDEST 00000541: DUP1 00000542: ISZERO 00000543: PUSH2 0x0571 00000546: JUMPI 00000547: POP 00000548: PUSH1 0x01 0000054a: PUSH1 0xa0 0000054c: PUSH1 0x02 0000054e: EXP 0000054f: SUB 00000550: DUP13 00000551: DUP2 00000552: AND 00000553: PUSH1 0x00 00000555: SWAP1 00000556: DUP2 00000557: MSTORE 00000558: PUSH1 0x20 0000055a: DUP2 0000055b: DUP2 0000055c: MSTORE 0000055d: PUSH1 0x40 0000055f: DUP1 00000560: DUP4 00000561: KECCAK256 00000562: CALLER 00000563: SWAP1 00000564: SWAP5 00000565: AND 00000566: DUP4 00000567: MSTORE 00000568: SWAP3 00000569: SWAP1 0000056a: MSTORE 0000056b: KECCAK256 0000056c: SLOAD 0000056d: DUP3 0000056e: SWAP1 0000056f: LT 00000570: ISZERO 00000571: JUMPDEST 00000572: DUP1 00000573: ISZERO 00000574: PUSH2 0x05b4 00000577: JUMPI 00000578: POP 00000579: DUP11 0000057a: PUSH2 0x0583 0000057d: DUP11 0000057e: DUP5 0000057f: PUSH2 0x060a 00000582: JUMP 00000583: JUMPDEST 00000584: DUP2 00000585: ISZERO 00000586: PUSH2 0x0002 00000589: JUMPI 0000058a: PUSH1 0x01 0000058c: PUSH1 0xa0 0000058e: PUSH1 0x02 00000590: EXP 00000591: SUB 00000592: DUP13 00000593: DUP2 00000594: AND 00000595: PUSH1 0x00 00000597: SWAP1 00000598: DUP2 00000599: MSTORE 0000059a: PUSH1 0x20 0000059c: DUP2 0000059d: DUP2 0000059e: MSTORE 0000059f: PUSH1 0x40 000005a1: DUP1 000005a2: DUP4 000005a3: KECCAK256 000005a4: SWAP4 000005a5: DUP13 000005a6: AND 000005a7: DUP4 000005a8: MSTORE 000005a9: SWAP3 000005aa: SWAP1 000005ab: MSTORE 000005ac: KECCAK256 000005ad: SLOAD 000005ae: SWAP2 000005af: SWAP1 000005b0: DIV 000005b1: SWAP1 000005b2: LT 000005b3: ISZERO 000005b4: JUMPDEST 000005b5: ISZERO 000005b6: ISZERO 000005b7: PUSH2 0x062b 000005ba: JUMPI 000005bb: PUSH2 0x0002 000005be: JUMP 000005bf: JUMPDEST 000005c0: PUSH1 0x01 000005c2: PUSH1 0xa0 000005c4: PUSH1 0x02 000005c6: EXP 000005c7: SUB 000005c8: DUP14 000005c9: DUP2 000005ca: AND 000005cb: PUSH1 0x00 000005cd: SWAP1 000005ce: DUP2 000005cf: MSTORE 000005d0: PUSH1 0x20 000005d2: DUP2 000005d3: DUP2 000005d4: MSTORE 000005d5: PUSH1 0x40 000005d7: DUP1 000005d8: DUP4 000005d9: KECCAK256 000005da: CALLER 000005db: DUP6 000005dc: AND 000005dd: DUP5 000005de: MSTORE 000005df: SWAP1 000005e0: SWAP2 000005e1: MSTORE 000005e2: DUP1 000005e3: DUP3 000005e4: KECCAK256 000005e5: SWAP4 000005e6: SWAP1 000005e7: SWAP4 000005e8: SSTORE 000005e9: SWAP1 000005ea: DUP9 000005eb: AND 000005ec: DUP2 000005ed: MSTORE 000005ee: KECCAK256 000005ef: SLOAD 000005f0: PUSH1 0x03 000005f2: SLOAD 000005f3: PUSH2 0x066c 000005f6: SWAP2 000005f7: SWAP1 000005f8: PUSH8 0x0de0b6b3a7640000 00000601: SWAP1 00000602: PUSH2 0x06bc 00000605: SWAP1 00000606: DUP7 00000607: SWAP1 00000608: DUP4 00000609: SUB 0000060a: JUMPDEST 0000060b: PUSH1 0x00 0000060d: DUP3 0000060e: DUP3 0000060f: MUL 00000610: PUSH2 0x0f8f 00000613: DUP5 00000614: DUP4 00000615: EQ 00000616: DUP1 00000617: PUSH2 0x0282 0000061a: JUMPI 0000061b: POP 0000061c: DUP4 0000061d: DUP6 0000061e: DUP4 0000061f: DUP2 00000620: ISZERO 00000621: PUSH2 0x0002 00000624: JUMPI 00000625: DIV 00000626: EQ 00000627: PUSH2 0x0660 0000062a: JUMP 0000062b: JUMPDEST 0000062c: PUSH1 0x01 0000062e: PUSH1 0xa0 00000630: PUSH1 0x02 00000632: EXP 00000633: SUB 00000634: DUP13 00000635: DUP2 00000636: AND 00000637: PUSH1 0x00 00000639: SWAP1 0000063a: DUP2 0000063b: MSTORE 0000063c: PUSH1 0x20 0000063e: DUP2 0000063f: DUP2 00000640: MSTORE 00000641: PUSH1 0x40 00000643: DUP1 00000644: DUP4 00000645: KECCAK256 00000646: CALLER 00000647: SWAP1 00000648: SWAP5 00000649: AND 0000064a: DUP4 0000064b: MSTORE 0000064c: SWAP3 0000064d: SWAP1 0000064e: MSTORE 0000064f: KECCAK256 00000650: SLOAD 00000651: PUSH2 0x05bf 00000654: SWAP1 00000655: DUP4 00000656: JUMPDEST 00000657: PUSH1 0x00 00000659: PUSH2 0x0f96 0000065c: DUP4 0000065d: DUP4 0000065e: GT 0000065f: ISZERO 00000660: JUMPDEST 00000661: DUP1 00000662: ISZERO 00000663: ISZERO 00000664: PUSH2 0x0ab0 00000667: JUMPI 00000668: PUSH2 0x0002 0000066b: JUMP 0000066c: JUMPDEST 0000066d: PUSH1 0x01 0000066f: PUSH1 0xa0 00000671: PUSH1 0x02 00000673: EXP 00000674: SUB 00000675: DUP14 00000676: DUP2 00000677: AND 00000678: PUSH1 0x00 0000067a: SWAP1 0000067b: DUP2 0000067c: MSTORE 0000067d: PUSH1 0x20 0000067f: DUP2 00000680: DUP2 00000681: MSTORE 00000682: PUSH1 0x40 00000684: DUP1 00000685: DUP4 00000686: KECCAK256 00000687: DUP12 00000688: DUP6 00000689: AND 0000068a: DUP5 0000068b: MSTORE 0000068c: SWAP1 0000068d: SWAP2 0000068e: MSTORE 0000068f: DUP1 00000690: DUP3 00000691: KECCAK256 00000692: SWAP4 00000693: SWAP1 00000694: SWAP4 00000695: SSTORE 00000696: PUSH1 0x02 00000698: SLOAD 00000699: SWAP1 0000069a: SWAP2 0000069b: AND 0000069c: DUP2 0000069d: MSTORE 0000069e: KECCAK256 0000069f: SLOAD 000006a0: PUSH1 0x03 000006a2: SLOAD 000006a3: PUSH2 0x06c8 000006a6: SWAP2 000006a7: SWAP1 000006a8: PUSH8 0x0de0b6b3a7640000 000006b1: SWAP1 000006b2: PUSH2 0x06bc 000006b5: SWAP1 000006b6: DUP7 000006b7: SWAP1 000006b8: PUSH2 0x060a 000006bb: JUMP 000006bc: JUMPDEST 000006bd: DUP2 000006be: ISZERO 000006bf: PUSH2 0x0002 000006c2: JUMPI 000006c3: DIV 000006c4: PUSH2 0x026a 000006c7: JUMP 000006c8: JUMPDEST 000006c9: PUSH1 0x01 000006cb: PUSH1 0xa0 000006cd: PUSH1 0x02 000006cf: EXP 000006d0: SUB 000006d1: DUP14 000006d2: DUP2 000006d3: AND 000006d4: PUSH1 0x00 000006d6: SWAP1 000006d7: DUP2 000006d8: MSTORE 000006d9: PUSH1 0x20 000006db: DUP2 000006dc: DUP2 000006dd: MSTORE 000006de: PUSH1 0x40 000006e0: DUP1 000006e1: DUP4 000006e2: KECCAK256 000006e3: PUSH1 0x02 000006e5: SLOAD 000006e6: DUP6 000006e7: AND 000006e8: DUP5 000006e9: MSTORE 000006ea: DUP3 000006eb: MSTORE 000006ec: DUP1 000006ed: DUP4 000006ee: KECCAK256 000006ef: SWAP5 000006f0: SWAP1 000006f1: SWAP5 000006f2: SSTORE 000006f3: DUP14 000006f4: DUP4 000006f5: AND 000006f6: DUP3 000006f7: MSTORE 000006f8: DUP2 000006f9: DUP2 000006fa: MSTORE 000006fb: DUP4 000006fc: DUP3 000006fd: KECCAK256 000006fe: SWAP3 000006ff: DUP11 00000700: AND 00000701: DUP3 00000702: MSTORE 00000703: SWAP2 00000704: SWAP1 00000705: SWAP2 00000706: MSTORE 00000707: KECCAK256 00000708: SLOAD 00000709: PUSH2 0x0717 0000070c: SWAP1 0000070d: DUP13 0000070e: PUSH2 0x076c 00000711: DUP13 00000712: DUP7 00000713: PUSH2 0x060a 00000716: JUMP 00000717: JUMPDEST 00000718: PUSH1 0x01 0000071a: PUSH1 0xa0 0000071c: PUSH1 0x02 0000071e: EXP 0000071f: SUB 00000720: DUP12 00000721: DUP2 00000722: AND 00000723: PUSH1 0x00 00000725: SWAP1 00000726: DUP2 00000727: MSTORE 00000728: PUSH1 0x20 0000072a: DUP2 0000072b: DUP2 0000072c: MSTORE 0000072d: PUSH1 0x40 0000072f: DUP1 00000730: DUP4 00000731: KECCAK256 00000732: DUP12 00000733: DUP6 00000734: AND 00000735: DUP5 00000736: MSTORE 00000737: SWAP1 00000738: SWAP2 00000739: MSTORE 0000073a: DUP1 0000073b: DUP3 0000073c: KECCAK256 0000073d: SWAP4 0000073e: SWAP1 0000073f: SWAP4 00000740: SSTORE 00000741: CALLER 00000742: SWAP1 00000743: SWAP2 00000744: AND 00000745: DUP2 00000746: MSTORE 00000747: KECCAK256 00000748: SLOAD 00000749: PUSH1 0x04 0000074b: SLOAD 0000074c: PUSH2 0x0778 0000074f: SWAP2 00000750: SWAP1 00000751: PUSH8 0x0de0b6b3a7640000 0000075a: SWAP1 0000075b: DUP15 0000075c: SWAP1 0000075d: PUSH2 0x07cd 00000760: SWAP1 00000761: PUSH2 0x07e0 00000764: SWAP1 00000765: DUP5 00000766: SUB 00000767: DUP16 00000768: PUSH2 0x060a 0000076b: JUMP 0000076c: JUMPDEST 0000076d: DUP2 0000076e: ISZERO 0000076f: PUSH2 0x0002 00000772: JUMPI 00000773: DIV 00000774: PUSH2 0x0656 00000777: JUMP 00000778: JUMPDEST 00000779: PUSH1 0x01 0000077b: PUSH1 0xa0 0000077d: PUSH1 0x02 0000077f: EXP 00000780: SUB 00000781: DUP12 00000782: DUP2 00000783: AND 00000784: PUSH1 0x00 00000786: SWAP1 00000787: DUP2 00000788: MSTORE 00000789: PUSH1 0x20 0000078b: DUP2 0000078c: DUP2 0000078d: MSTORE 0000078e: PUSH1 0x40 00000790: DUP1 00000791: DUP4 00000792: KECCAK256 00000793: CALLER 00000794: DUP6 00000795: AND 00000796: DUP5 00000797: MSTORE 00000798: SWAP1 00000799: SWAP2 0000079a: MSTORE 0000079b: DUP1 0000079c: DUP3 0000079d: KECCAK256 0000079e: SWAP4 0000079f: SWAP1 000007a0: SWAP4 000007a1: SSTORE 000007a2: PUSH1 0x02 000007a4: SLOAD 000007a5: SWAP1 000007a6: SWAP2 000007a7: AND 000007a8: DUP2 000007a9: MSTORE 000007aa: KECCAK256 000007ab: SLOAD 000007ac: PUSH1 0x04 000007ae: SLOAD 000007af: PUSH2 0x07e6 000007b2: SWAP2 000007b3: SWAP1 000007b4: PUSH8 0x0de0b6b3a7640000 000007bd: SWAP1 000007be: DUP15 000007bf: SWAP1 000007c0: PUSH2 0x07cd 000007c3: SWAP1 000007c4: PUSH2 0x07e0 000007c7: SWAP1 000007c8: DUP16 000007c9: PUSH2 0x060a 000007cc: JUMP 000007cd: JUMPDEST 000007ce: DUP2 000007cf: ISZERO 000007d0: PUSH2 0x0002 000007d3: JUMPI 000007d4: DIV 000007d5: DUP2 000007d6: ISZERO 000007d7: PUSH2 0x0002 000007da: JUMPI 000007db: DIV 000007dc: PUSH2 0x026a 000007df: JUMP 000007e0: JUMPDEST 000007e1: DUP8 000007e2: PUSH2 0x060a 000007e5: JUMP 000007e6: JUMPDEST 000007e7: PUSH1 0x01 000007e9: PUSH1 0xa0 000007eb: PUSH1 0x02 000007ed: EXP 000007ee: SUB 000007ef: DUP12 000007f0: DUP2 000007f1: AND 000007f2: PUSH1 0x00 000007f4: SWAP1 000007f5: DUP2 000007f6: MSTORE 000007f7: PUSH1 0x20 000007f9: DUP2 000007fa: DUP2 000007fb: MSTORE 000007fc: PUSH1 0x40 000007fe: DUP1 000007ff: DUP4 00000800: KECCAK256 00000801: PUSH1 0x02 00000803: SLOAD 00000804: SWAP1 00000805: SWAP5 00000806: AND 00000807: DUP4 00000808: MSTORE 00000809: SWAP3 0000080a: DUP2 0000080b: MSTORE 0000080c: DUP3 0000080d: DUP3 0000080e: KECCAK256 0000080f: SWAP4 00000810: SWAP1 00000811: SWAP4 00000812: SSTORE 00000813: DUP4 00000814: DUP2 00000815: MSTORE 00000816: PUSH1 0x01 00000818: SWAP1 00000819: SWAP3 0000081a: MSTORE 0000081b: SWAP1 0000081c: KECCAK256 0000081d: SLOAD 0000081e: PUSH2 0x0827 00000821: SWAP1 00000822: DUP4 00000823: PUSH2 0x026a 00000826: JUMP 00000827: JUMPDEST 00000828: PUSH1 0x00 0000082a: DUP3 0000082b: DUP2 0000082c: MSTORE 0000082d: PUSH1 0x01 0000082f: PUSH1 0x20 00000831: MSTORE 00000832: PUSH1 0x40 00000834: SWAP1 00000835: KECCAK256 00000836: SSTORE 00000837: PUSH32 0x6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d 00000858: DUP13 00000859: DUP4 0000085a: DUP13 0000085b: DUP15 0000085c: DUP14 0000085d: DUP4 0000085e: MUL 0000085f: DUP2 00000860: ISZERO 00000861: PUSH2 0x0002 00000864: JUMPI 00000865: PUSH1 0x40 00000867: DUP1 00000868: MLOAD 00000869: PUSH1 0x01 0000086b: PUSH1 0xa0 0000086d: PUSH1 0x02 0000086f: EXP 00000870: SUB 00000871: SWAP7 00000872: DUP8 00000873: AND 00000874: DUP2 00000875: MSTORE 00000876: PUSH1 0x20 00000878: DUP2 00000879: ADD 0000087a: SWAP6 0000087b: SWAP1 0000087c: SWAP6 0000087d: MSTORE 0000087e: SWAP3 0000087f: DUP6 00000880: AND 00000881: DUP5 00000882: DUP5 00000883: ADD 00000884: MSTORE 00000885: DIV 00000886: PUSH1 0x60 00000888: DUP4 00000889: ADD 0000088a: MSTORE 0000088b: DUP10 0000088c: DUP4 0000088d: AND 0000088e: PUSH1 0x80 00000890: DUP4 00000891: ADD 00000892: MSTORE 00000893: CALLER 00000894: SWAP1 00000895: SWAP3 00000896: AND 00000897: PUSH1 0xa0 00000899: DUP3 0000089a: ADD 0000089b: MSTORE 0000089c: SWAP1 0000089d: MLOAD 0000089e: SWAP1 0000089f: DUP2 000008a0: SWAP1 000008a1: SUB 000008a2: PUSH1 0xc0 000008a4: ADD 000008a5: SWAP1 000008a6: LOG1 000008a7: POP 000008a8: POP 000008a9: POP 000008aa: POP 000008ab: POP 000008ac: POP 000008ad: POP 000008ae: POP 000008af: POP 000008b0: POP 000008b1: POP 000008b2: POP 000008b3: JUMP 000008b4: JUMPDEST 000008b5: PUSH1 0x02 000008b7: DUP11 000008b8: DUP11 000008b9: DUP11 000008ba: DUP11 000008bb: DUP11 000008bc: DUP11 000008bd: PUSH1 0x40 000008bf: MLOAD 000008c0: DUP1 000008c1: DUP8 000008c2: PUSH1 0x01 000008c4: PUSH1 0xa0 000008c6: PUSH1 0x02 000008c8: EXP 000008c9: SUB 000008ca: AND 000008cb: PUSH1 0x60 000008cd: PUSH1 0x02 000008cf: EXP 000008d0: MUL 000008d1: DUP2 000008d2: MSTORE 000008d3: PUSH1 0x14 000008d5: ADD 000008d6: DUP7 000008d7: DUP2 000008d8: MSTORE 000008d9: PUSH1 0x20 000008db: ADD 000008dc: DUP6 000008dd: PUSH1 0x01 000008df: PUSH1 0xa0 000008e1: PUSH1 0x02 000008e3: EXP 000008e4: SUB 000008e5: AND 000008e6: PUSH1 0x60 000008e8: PUSH1 0x02 000008ea: EXP 000008eb: MUL 000008ec: DUP2 000008ed: MSTORE 000008ee: PUSH1 0x14 000008f0: ADD 000008f1: DUP5 000008f2: DUP2 000008f3: MSTORE 000008f4: PUSH1 0x20 000008f6: ADD 000008f7: DUP4 000008f8: DUP2 000008f9: MSTORE 000008fa: PUSH1 0x20 000008fc: ADD 000008fd: DUP3 000008fe: DUP2 000008ff: MSTORE 00000900: PUSH1 0x20 00000902: ADD 00000903: SWAP7 00000904: POP 00000905: POP 00000906: POP 00000907: POP 00000908: POP 00000909: POP 0000090a: POP 0000090b: PUSH1 0x20 0000090d: PUSH1 0x40 0000090f: MLOAD 00000910: DUP1 00000911: DUP4 00000912: SUB 00000913: DUP2 00000914: PUSH1 0x00 00000916: DUP7 00000917: PUSH2 0x61da 0000091a: GAS 0000091b: SUB 0000091c: CALL 0000091d: ISZERO 0000091e: PUSH2 0x0002 00000921: JUMPI 00000922: POP 00000923: POP 00000924: PUSH1 0x40 00000926: DUP1 00000927: MLOAD 00000928: DUP1 00000929: MLOAD 0000092a: PUSH1 0x00 0000092c: DUP3 0000092d: DUP2 0000092e: MSTORE 0000092f: PUSH1 0x20 00000931: DUP4 00000932: DUP2 00000933: ADD 00000934: DUP1 00000935: DUP7 00000936: MSTORE 00000937: DUP4 00000938: SWAP1 00000939: MSTORE 0000093a: PUSH1 0xff 0000093c: DUP10 0000093d: AND 0000093e: DUP5 0000093f: DUP7 00000940: ADD 00000941: MSTORE 00000942: PUSH1 0x60 00000944: DUP5 00000945: ADD 00000946: DUP9 00000947: SWAP1 00000948: MSTORE 00000949: PUSH1 0x80 0000094b: DUP5 0000094c: ADD 0000094d: DUP8 0000094e: SWAP1 0000094f: MSTORE 00000950: SWAP4 00000951: MLOAD 00000952: SWAP2 00000953: SWAP5 00000954: POP 00000955: CALLER 00000956: PUSH1 0x01 00000958: PUSH1 0xa0 0000095a: PUSH1 0x02 0000095c: EXP 0000095d: SUB 0000095e: AND 0000095f: SWAP4 00000960: PUSH1 0x01 00000962: SWAP4 00000963: PUSH1 0xa0 00000965: DUP2 00000966: DUP2 00000967: ADD 00000968: SWAP5 00000969: SWAP3 0000096a: SWAP4 0000096b: PUSH1 0x1f 0000096d: NOT 0000096e: DUP5 0000096f: ADD 00000970: SWAP4 00000971: SWAP3 00000972: DUP4 00000973: SWAP1 00000974: SUB 00000975: SWAP1 00000976: SWAP2 00000977: ADD 00000978: SWAP2 00000979: SWAP1 0000097a: DUP7 0000097b: PUSH2 0x61da 0000097e: GAS 0000097f: SUB 00000980: CALL 00000981: ISZERO 00000982: PUSH2 0x0002 00000985: JUMPI 00000986: POP 00000987: POP 00000988: PUSH1 0x40 0000098a: MLOAD 0000098b: PUSH1 0x1f 0000098d: NOT 0000098e: ADD 0000098f: MLOAD 00000990: PUSH1 0x01 00000992: PUSH1 0xa0 00000994: PUSH1 0x02 00000996: EXP 00000997: SUB 00000998: AND 00000999: EQ 0000099a: PUSH2 0x09a2 0000099d: JUMPI 0000099e: PUSH2 0x0002 000009a1: JUMP 000009a2: JUMPDEST 000009a3: PUSH1 0x00 000009a5: DUP2 000009a6: DUP2 000009a7: MSTORE 000009a8: PUSH1 0x01 000009aa: PUSH1 0x20 000009ac: SWAP1 000009ad: DUP2 000009ae: MSTORE 000009af: PUSH1 0x40 000009b1: SWAP2 000009b2: DUP3 000009b3: SWAP1 000009b4: KECCAK256 000009b5: DUP12 000009b6: SWAP1 000009b7: SSTORE 000009b8: DUP2 000009b9: MLOAD 000009ba: PUSH1 0x01 000009bc: PUSH1 0xa0 000009be: PUSH1 0x02 000009c0: EXP 000009c1: SUB 000009c2: DUP14 000009c3: DUP2 000009c4: AND 000009c5: DUP3 000009c6: MSTORE 000009c7: SWAP2 000009c8: DUP2 000009c9: ADD 000009ca: DUP13 000009cb: SWAP1 000009cc: MSTORE 000009cd: DUP11 000009ce: DUP3 000009cf: AND 000009d0: DUP2 000009d1: DUP5 000009d2: ADD 000009d3: MSTORE 000009d4: PUSH1 0x60 000009d6: DUP2 000009d7: ADD 000009d8: DUP11 000009d9: SWAP1 000009da: MSTORE 000009db: PUSH1 0x80 000009dd: DUP2 000009de: ADD 000009df: DUP10 000009e0: SWAP1 000009e1: MSTORE 000009e2: PUSH1 0xa0 000009e4: DUP2 000009e5: ADD 000009e6: DUP9 000009e7: SWAP1 000009e8: MSTORE 000009e9: CALLER 000009ea: SWAP1 000009eb: SWAP2 000009ec: AND 000009ed: PUSH1 0xc0 000009ef: DUP3 000009f0: ADD 000009f1: MSTORE 000009f2: PUSH1 0xff 000009f4: DUP7 000009f5: AND 000009f6: PUSH1 0xe0 000009f8: DUP3 000009f9: ADD 000009fa: MSTORE 000009fb: PUSH2 0x0100 000009fe: DUP2 000009ff: ADD 00000a00: DUP6 00000a01: SWAP1 00000a02: MSTORE 00000a03: PUSH2 0x0120 00000a06: DUP2 00000a07: ADD 00000a08: DUP5 00000a09: SWAP1 00000a0a: MSTORE 00000a0b: SWAP1 00000a0c: MLOAD 00000a0d: PUSH32 0x1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0 00000a2e: SWAP2 00000a2f: DUP2 00000a30: SWAP1 00000a31: SUB 00000a32: PUSH2 0x0140 00000a35: ADD 00000a36: SWAP1 00000a37: LOG1 00000a38: POP 00000a39: POP 00000a3a: POP 00000a3b: POP 00000a3c: POP 00000a3d: POP 00000a3e: POP 00000a3f: POP 00000a40: POP 00000a41: POP 00000a42: JUMP 00000a43: JUMPDEST 00000a44: CALLER 00000a45: PUSH1 0x01 00000a47: PUSH1 0xa0 00000a49: PUSH1 0x02 00000a4b: EXP 00000a4c: SUB 00000a4d: AND 00000a4e: PUSH1 0x00 00000a50: DUP2 00000a51: DUP2 00000a52: MSTORE 00000a53: PUSH1 0x00 00000a55: DUP1 00000a56: MLOAD 00000a57: PUSH1 0x20 00000a59: PUSH2 0x0f9f 00000a5c: DUP4 00000a5d: CODECOPY 00000a5e: DUP2 00000a5f: MLOAD 00000a60: SWAP2 00000a61: MSTORE 00000a62: PUSH1 0x20 00000a64: SWAP1 00000a65: DUP2 00000a66: MSTORE 00000a67: PUSH1 0x40 00000a69: DUP1 00000a6a: DUP4 00000a6b: KECCAK256 00000a6c: SLOAD 00000a6d: DUP2 00000a6e: MLOAD 00000a6f: SWAP4 00000a70: DUP5 00000a71: MSTORE 00000a72: SWAP2 00000a73: DUP4 00000a74: ADD 00000a75: SWAP4 00000a76: SWAP1 00000a77: SWAP4 00000a78: MSTORE 00000a79: DUP2 00000a7a: DUP4 00000a7b: ADD 00000a7c: DUP5 00000a7d: SWAP1 00000a7e: MSTORE 00000a7f: PUSH1 0x60 00000a81: DUP3 00000a82: ADD 00000a83: MSTORE 00000a84: SWAP1 00000a85: MLOAD 00000a86: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567 00000aa7: SWAP2 00000aa8: DUP2 00000aa9: SWAP1 00000aaa: SUB 00000aab: PUSH1 0x80 00000aad: ADD 00000aae: SWAP1 00000aaf: LOG1 00000ab0: JUMPDEST 00000ab1: POP 00000ab2: JUMP 00000ab3: JUMPDEST 00000ab4: CALLER 00000ab5: PUSH1 0x01 00000ab7: PUSH1 0xa0 00000ab9: PUSH1 0x02 00000abb: EXP 00000abc: SUB 00000abd: AND 00000abe: PUSH1 0x00 00000ac0: SWAP1 00000ac1: DUP2 00000ac2: MSTORE 00000ac3: PUSH1 0x00 00000ac5: DUP1 00000ac6: MLOAD 00000ac7: PUSH1 0x20 00000ac9: PUSH2 0x0f9f 00000acc: DUP4 00000acd: CODECOPY 00000ace: DUP2 00000acf: MLOAD 00000ad0: SWAP2 00000ad1: MSTORE 00000ad2: PUSH1 0x20 00000ad4: MSTORE 00000ad5: PUSH1 0x40 00000ad7: SWAP1 00000ad8: KECCAK256 00000ad9: SLOAD 00000ada: DUP2 00000adb: SWAP1 00000adc: LT 00000add: ISZERO 00000ade: PUSH2 0x0ae6 00000ae1: JUMPI 00000ae2: PUSH2 0x0002 00000ae5: JUMP 00000ae6: JUMPDEST 00000ae7: CALLER 00000ae8: PUSH1 0x01 00000aea: PUSH1 0xa0 00000aec: PUSH1 0x02 00000aee: EXP 00000aef: SUB 00000af0: AND 00000af1: PUSH1 0x00 00000af3: SWAP1 00000af4: DUP2 00000af5: MSTORE 00000af6: PUSH1 0x00 00000af8: DUP1 00000af9: MLOAD 00000afa: PUSH1 0x20 00000afc: PUSH2 0x0f9f 00000aff: DUP4 00000b00: CODECOPY 00000b01: DUP2 00000b02: MLOAD 00000b03: SWAP2 00000b04: MSTORE 00000b05: PUSH1 0x20 00000b07: MSTORE 00000b08: PUSH1 0x40 00000b0a: SWAP1 00000b0b: KECCAK256 00000b0c: SLOAD 00000b0d: PUSH2 0x0b16 00000b10: SWAP1 00000b11: DUP3 00000b12: PUSH2 0x0656 00000b15: JUMP 00000b16: JUMPDEST 00000b17: CALLER 00000b18: PUSH1 0x01 00000b1a: PUSH1 0xa0 00000b1c: PUSH1 0x02 00000b1e: EXP 00000b1f: SUB 00000b20: AND 00000b21: PUSH1 0x00 00000b23: DUP2 00000b24: DUP2 00000b25: MSTORE 00000b26: PUSH1 0x00 00000b28: DUP1 00000b29: MLOAD 00000b2a: PUSH1 0x20 00000b2c: PUSH2 0x0f9f 00000b2f: DUP4 00000b30: CODECOPY 00000b31: DUP2 00000b32: MLOAD 00000b33: SWAP2 00000b34: MSTORE 00000b35: PUSH1 0x20 00000b37: MSTORE 00000b38: PUSH1 0x40 00000b3a: DUP1 00000b3b: DUP3 00000b3c: KECCAK256 00000b3d: SWAP4 00000b3e: SWAP1 00000b3f: SWAP4 00000b40: SSTORE 00000b41: SWAP2 00000b42: MLOAD 00000b43: SWAP1 00000b44: SWAP2 00000b45: DUP4 00000b46: SWAP2 00000b47: SWAP1 00000b48: DUP2 00000b49: DUP2 00000b4a: DUP2 00000b4b: DUP6 00000b4c: DUP8 00000b4d: PUSH2 0x8502 00000b50: GAS 00000b51: SUB 00000b52: CALL 00000b53: SWAP3 00000b54: POP 00000b55: POP 00000b56: POP 00000b57: ISZERO 00000b58: ISZERO 00000b59: PUSH2 0x0a43 00000b5c: JUMPI 00000b5d: PUSH2 0x0002 00000b60: JUMP 00000b61: JUMPDEST 00000b62: DUP2 00000b63: PUSH1 0x01 00000b65: PUSH1 0xa0 00000b67: PUSH1 0x02 00000b69: EXP 00000b6a: SUB 00000b6b: AND 00000b6c: PUSH4 0x23b872dd 00000b71: CALLER 00000b72: ADDRESS 00000b73: DUP5 00000b74: PUSH1 0x40 00000b76: MLOAD 00000b77: DUP5 00000b78: PUSH1 0xe0 00000b7a: PUSH1 0x02 00000b7c: EXP 00000b7d: MUL 00000b7e: DUP2 00000b7f: MSTORE 00000b80: PUSH1 0x04 00000b82: ADD 00000b83: DUP1 00000b84: DUP5 00000b85: PUSH1 0x01 00000b87: PUSH1 0xa0 00000b89: PUSH1 0x02 00000b8b: EXP 00000b8c: SUB 00000b8d: AND 00000b8e: DUP2 00000b8f: MSTORE 00000b90: PUSH1 0x20 00000b92: ADD 00000b93: DUP4 00000b94: PUSH1 0x01 00000b96: PUSH1 0xa0 00000b98: PUSH1 0x02 00000b9a: EXP 00000b9b: SUB 00000b9c: AND 00000b9d: DUP2 00000b9e: MSTORE 00000b9f: PUSH1 0x20 00000ba1: ADD 00000ba2: DUP3 00000ba3: DUP2 00000ba4: MSTORE 00000ba5: PUSH1 0x20 00000ba7: ADD 00000ba8: SWAP4 00000ba9: POP 00000baa: POP 00000bab: POP 00000bac: POP 00000bad: PUSH1 0x20 00000baf: PUSH1 0x40 00000bb1: MLOAD 00000bb2: DUP1 00000bb3: DUP4 00000bb4: SUB 00000bb5: DUP2 00000bb6: PUSH1 0x00 00000bb8: DUP8 00000bb9: DUP1 00000bba: EXTCODESIZE 00000bbb: ISZERO 00000bbc: PUSH2 0x0002 00000bbf: JUMPI 00000bc0: PUSH2 0x61da 00000bc3: GAS 00000bc4: SUB 00000bc5: CALL 00000bc6: ISZERO 00000bc7: PUSH2 0x0002 00000bca: JUMPI 00000bcb: POP 00000bcc: POP 00000bcd: PUSH1 0x40 00000bcf: MLOAD 00000bd0: MLOAD 00000bd1: ISZERO 00000bd2: ISZERO 00000bd3: SWAP1 00000bd4: POP 00000bd5: PUSH2 0x0bdd 00000bd8: JUMPI 00000bd9: PUSH2 0x0002 00000bdc: JUMP 00000bdd: JUMPDEST 00000bde: PUSH1 0x01 00000be0: PUSH1 0xa0 00000be2: PUSH1 0x02 00000be4: EXP 00000be5: SUB 00000be6: DUP3 00000be7: DUP2 00000be8: AND 00000be9: PUSH1 0x00 00000beb: SWAP1 00000bec: DUP2 00000bed: MSTORE 00000bee: PUSH1 0x20 00000bf0: DUP2 00000bf1: DUP2 00000bf2: MSTORE 00000bf3: PUSH1 0x40 00000bf5: DUP1 00000bf6: DUP4 00000bf7: KECCAK256 00000bf8: CALLER 00000bf9: SWAP1 00000bfa: SWAP5 00000bfb: AND 00000bfc: DUP4 00000bfd: MSTORE 00000bfe: SWAP3 00000bff: SWAP1 00000c00: MSTORE 00000c01: KECCAK256 00000c02: SLOAD 00000c03: PUSH2 0x0c0c 00000c06: SWAP1 00000c07: DUP3 00000c08: PUSH2 0x026a 00000c0b: JUMP 00000c0c: JUMPDEST 00000c0d: PUSH1 0x01 00000c0f: PUSH1 0xa0 00000c11: PUSH1 0x02 00000c13: EXP 00000c14: SUB 00000c15: DUP4 00000c16: DUP2 00000c17: AND 00000c18: PUSH1 0x00 00000c1a: DUP2 00000c1b: DUP2 00000c1c: MSTORE 00000c1d: PUSH1 0x20 00000c1f: DUP2 00000c20: DUP2 00000c21: MSTORE 00000c22: PUSH1 0x40 00000c24: DUP1 00000c25: DUP4 00000c26: KECCAK256 00000c27: CALLER 00000c28: SWAP1 00000c29: SWAP6 00000c2a: AND 00000c2b: DUP1 00000c2c: DUP5 00000c2d: MSTORE 00000c2e: SWAP5 00000c2f: DUP3 00000c30: MSTORE 00000c31: SWAP2 00000c32: DUP3 00000c33: SWAP1 00000c34: KECCAK256 00000c35: DUP6 00000c36: SWAP1 00000c37: SSTORE 00000c38: DUP2 00000c39: MLOAD 00000c3a: SWAP3 00000c3b: DUP4 00000c3c: MSTORE 00000c3d: DUP3 00000c3e: ADD 00000c3f: SWAP3 00000c40: SWAP1 00000c41: SWAP3 00000c42: MSTORE 00000c43: DUP1 00000c44: DUP3 00000c45: ADD 00000c46: DUP5 00000c47: SWAP1 00000c48: MSTORE 00000c49: PUSH1 0x60 00000c4b: DUP2 00000c4c: ADD 00000c4d: SWAP3 00000c4e: SWAP1 00000c4f: SWAP3 00000c50: MSTORE 00000c51: MLOAD 00000c52: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 00000c73: SWAP2 00000c74: DUP2 00000c75: SWAP1 00000c76: SUB 00000c77: PUSH1 0x80 00000c79: ADD 00000c7a: SWAP1 00000c7b: LOG1 00000c7c: POP 00000c7d: POP 00000c7e: JUMP 00000c7f: JUMPDEST 00000c80: POP 00000c81: PUSH1 0x01 00000c83: JUMPDEST 00000c84: SWAP13 00000c85: SWAP12 00000c86: POP 00000c87: POP 00000c88: POP 00000c89: POP 00000c8a: POP 00000c8b: POP 00000c8c: POP 00000c8d: POP 00000c8e: POP 00000c8f: POP 00000c90: POP 00000c91: POP 00000c92: JUMP 00000c93: JUMPDEST 00000c94: LT 00000c95: ISZERO 00000c96: JUMPDEST 00000c97: ISZERO 00000c98: ISZERO 00000c99: PUSH2 0x0c7f 00000c9c: JUMPI 00000c9d: POP 00000c9e: PUSH1 0x00 00000ca0: PUSH2 0x0c83 00000ca3: JUMP 00000ca4: JUMPDEST 00000ca5: PUSH1 0x40 00000ca7: DUP1 00000ca8: MLOAD 00000ca9: PUSH1 0x01 00000cab: PUSH1 0xa0 00000cad: PUSH1 0x02 00000caf: EXP 00000cb0: SUB 00000cb1: DUP12 00000cb2: DUP2 00000cb3: AND 00000cb4: DUP3 00000cb5: MSTORE 00000cb6: PUSH1 0x20 00000cb8: DUP3 00000cb9: ADD 00000cba: DUP12 00000cbb: SWAP1 00000cbc: MSTORE 00000cbd: DUP10 00000cbe: DUP2 00000cbf: AND 00000cc0: DUP3 00000cc1: DUP5 00000cc2: ADD 00000cc3: MSTORE 00000cc4: PUSH1 0x60 00000cc6: DUP3 00000cc7: ADD 00000cc8: DUP10 00000cc9: SWAP1 00000cca: MSTORE 00000ccb: PUSH1 0x80 00000ccd: DUP3 00000cce: ADD 00000ccf: DUP9 00000cd0: SWAP1 00000cd1: MSTORE 00000cd2: PUSH1 0xa0 00000cd4: DUP3 00000cd5: ADD 00000cd6: DUP8 00000cd7: SWAP1 00000cd8: MSTORE 00000cd9: CALLER 00000cda: AND 00000cdb: PUSH1 0xc0 00000cdd: DUP3 00000cde: ADD 00000cdf: MSTORE 00000ce0: PUSH1 0xff 00000ce2: DUP6 00000ce3: AND 00000ce4: PUSH1 0xe0 00000ce6: DUP3 00000ce7: ADD 00000ce8: MSTORE 00000ce9: PUSH2 0x0100 00000cec: DUP2 00000ced: ADD 00000cee: DUP5 00000cef: SWAP1 00000cf0: MSTORE 00000cf1: PUSH2 0x0120 00000cf4: DUP2 00000cf5: ADD 00000cf6: DUP4 00000cf7: SWAP1 00000cf8: MSTORE 00000cf9: SWAP1 00000cfa: MLOAD 00000cfb: PUSH32 0x91daf02b6d1454acd74c097a67e389a9d9371da3ff51366947022dc36748ce4d 00000d1c: SWAP2 00000d1d: DUP2 00000d1e: SWAP1 00000d1f: SUB 00000d20: PUSH2 0x0140 00000d23: ADD 00000d24: SWAP1 00000d25: LOG1 00000d26: POP 00000d27: POP 00000d28: POP 00000d29: POP 00000d2a: POP 00000d2b: POP 00000d2c: POP 00000d2d: POP 00000d2e: POP 00000d2f: JUMP 00000d30: JUMPDEST 00000d31: PUSH1 0x01 00000d33: PUSH1 0xa0 00000d35: PUSH1 0x02 00000d37: EXP 00000d38: SUB 00000d39: DUP3 00000d3a: DUP2 00000d3b: AND 00000d3c: PUSH1 0x00 00000d3e: SWAP1 00000d3f: DUP2 00000d40: MSTORE 00000d41: PUSH1 0x20 00000d43: DUP2 00000d44: DUP2 00000d45: MSTORE 00000d46: PUSH1 0x40 00000d48: DUP1 00000d49: DUP4 00000d4a: KECCAK256 00000d4b: CALLER 00000d4c: SWAP1 00000d4d: SWAP5 00000d4e: AND 00000d4f: DUP4 00000d50: MSTORE 00000d51: SWAP3 00000d52: SWAP1 00000d53: MSTORE 00000d54: KECCAK256 00000d55: SLOAD 00000d56: DUP2 00000d57: SWAP1 00000d58: LT 00000d59: ISZERO 00000d5a: PUSH2 0x0d62 00000d5d: JUMPI 00000d5e: PUSH2 0x0002 00000d61: JUMP 00000d62: JUMPDEST 00000d63: PUSH1 0x01 00000d65: PUSH1 0xa0 00000d67: PUSH1 0x02 00000d69: EXP 00000d6a: SUB 00000d6b: DUP3 00000d6c: DUP2 00000d6d: AND 00000d6e: PUSH1 0x00 00000d70: SWAP1 00000d71: DUP2 00000d72: MSTORE 00000d73: PUSH1 0x20 00000d75: DUP2 00000d76: DUP2 00000d77: MSTORE 00000d78: PUSH1 0x40 00000d7a: DUP1 00000d7b: DUP4 00000d7c: KECCAK256 00000d7d: CALLER 00000d7e: SWAP1 00000d7f: SWAP5 00000d80: AND 00000d81: DUP4 00000d82: MSTORE 00000d83: SWAP3 00000d84: SWAP1 00000d85: MSTORE 00000d86: KECCAK256 00000d87: SLOAD 00000d88: PUSH2 0x0d91 00000d8b: SWAP1 00000d8c: DUP3 00000d8d: PUSH2 0x0656 00000d90: JUMP 00000d91: JUMPDEST 00000d92: PUSH1 0x01 00000d94: PUSH1 0xa0 00000d96: PUSH1 0x02 00000d98: EXP 00000d99: SUB 00000d9a: DUP4 00000d9b: DUP2 00000d9c: AND 00000d9d: PUSH1 0x00 00000d9f: DUP2 00000da0: DUP2 00000da1: MSTORE 00000da2: PUSH1 0x20 00000da4: DUP2 00000da5: DUP2 00000da6: MSTORE 00000da7: PUSH1 0x40 00000da9: DUP1 00000daa: DUP4 00000dab: KECCAK256 00000dac: CALLER 00000dad: SWAP1 00000dae: SWAP6 00000daf: AND 00000db0: DUP1 00000db1: DUP5 00000db2: MSTORE 00000db3: SWAP5 00000db4: DUP3 00000db5: MSTORE 00000db6: DUP1 00000db7: DUP4 00000db8: KECCAK256 00000db9: SWAP6 00000dba: SWAP1 00000dbb: SWAP6 00000dbc: SSTORE 00000dbd: DUP5 00000dbe: MLOAD 00000dbf: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 00000de0: DUP2 00000de1: MSTORE 00000de2: PUSH1 0x04 00000de4: DUP2 00000de5: ADD 00000de6: SWAP5 00000de7: SWAP1 00000de8: SWAP5 00000de9: MSTORE 00000dea: PUSH1 0x24 00000dec: DUP5 00000ded: ADD 00000dee: DUP7 00000def: SWAP1 00000df0: MSTORE 00000df1: SWAP4 00000df2: MLOAD 00000df3: SWAP2 00000df4: SWAP4 00000df5: PUSH4 0xa9059cbb 00000dfa: SWAP4 00000dfb: PUSH1 0x44 00000dfd: DUP2 00000dfe: DUP2 00000dff: ADD 00000e00: SWAP5 00000e01: SWAP3 00000e02: SWAP4 00000e03: SWAP2 00000e04: DUP4 00000e05: SWAP1 00000e06: SUB 00000e07: ADD 00000e08: SWAP1 00000e09: DUP3 00000e0a: SWAP1 00000e0b: DUP8 00000e0c: DUP1 00000e0d: EXTCODESIZE 00000e0e: ISZERO 00000e0f: PUSH2 0x0002 00000e12: JUMPI 00000e13: PUSH2 0x61da 00000e16: GAS 00000e17: SUB 00000e18: CALL 00000e19: ISZERO 00000e1a: PUSH2 0x0002 00000e1d: JUMPI 00000e1e: POP 00000e1f: POP 00000e20: PUSH1 0x40 00000e22: MLOAD 00000e23: MLOAD 00000e24: ISZERO 00000e25: ISZERO 00000e26: SWAP1 00000e27: POP 00000e28: PUSH2 0x0e30 00000e2b: JUMPI 00000e2c: PUSH2 0x0002 00000e2f: JUMP 00000e30: JUMPDEST 00000e31: PUSH1 0x01 00000e33: PUSH1 0xa0 00000e35: PUSH1 0x02 00000e37: EXP 00000e38: SUB 00000e39: DUP3 00000e3a: DUP2 00000e3b: AND 00000e3c: PUSH1 0x00 00000e3e: DUP2 00000e3f: DUP2 00000e40: MSTORE 00000e41: PUSH1 0x20 00000e43: DUP2 00000e44: DUP2 00000e45: MSTORE 00000e46: PUSH1 0x40 00000e48: DUP1 00000e49: DUP4 00000e4a: KECCAK256 00000e4b: CALLER 00000e4c: SWAP1 00000e4d: SWAP6 00000e4e: AND 00000e4f: DUP1 00000e50: DUP5 00000e51: MSTORE 00000e52: SWAP5 00000e53: DUP3 00000e54: MSTORE 00000e55: SWAP2 00000e56: DUP3 00000e57: SWAP1 00000e58: KECCAK256 00000e59: SLOAD 00000e5a: DUP3 00000e5b: MLOAD 00000e5c: SWAP4 00000e5d: DUP5 00000e5e: MSTORE 00000e5f: SWAP1 00000e60: DUP4 00000e61: ADD 00000e62: SWAP4 00000e63: SWAP1 00000e64: SWAP4 00000e65: MSTORE 00000e66: DUP2 00000e67: DUP2 00000e68: ADD 00000e69: DUP5 00000e6a: SWAP1 00000e6b: MSTORE 00000e6c: PUSH1 0x60 00000e6e: DUP3 00000e6f: ADD 00000e70: SWAP3 00000e71: SWAP1 00000e72: SWAP3 00000e73: MSTORE 00000e74: SWAP1 00000e75: MLOAD 00000e76: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567 00000e97: SWAP2 00000e98: DUP2 00000e99: SWAP1 00000e9a: SUB 00000e9b: PUSH1 0x80 00000e9d: ADD 00000e9e: SWAP1 00000e9f: LOG1 00000ea0: POP 00000ea1: POP 00000ea2: JUMP 00000ea3: JUMPDEST 00000ea4: CALLER 00000ea5: PUSH1 0x01 00000ea7: PUSH1 0xa0 00000ea9: PUSH1 0x02 00000eab: EXP 00000eac: SUB 00000ead: AND 00000eae: PUSH1 0x00 00000eb0: DUP2 00000eb1: DUP2 00000eb2: MSTORE 00000eb3: PUSH1 0x00 00000eb5: DUP1 00000eb6: MLOAD 00000eb7: PUSH1 0x20 00000eb9: PUSH2 0x0f9f 00000ebc: DUP4 00000ebd: CODECOPY 00000ebe: DUP2 00000ebf: MLOAD 00000ec0: SWAP2 00000ec1: MSTORE 00000ec2: PUSH1 0x20 00000ec4: SWAP1 00000ec5: DUP2 00000ec6: MSTORE 00000ec7: PUSH1 0x40 00000ec9: DUP1 00000eca: DUP4 00000ecb: KECCAK256 00000ecc: DUP6 00000ecd: SWAP1 00000ece: SSTORE 00000ecf: DUP1 00000ed0: MLOAD 00000ed1: SWAP3 00000ed2: DUP4 00000ed3: MSTORE 00000ed4: SWAP1 00000ed5: DUP3 00000ed6: ADD 00000ed7: SWAP3 00000ed8: SWAP1 00000ed9: SWAP3 00000eda: MSTORE 00000edb: CALLVALUE 00000edc: DUP2 00000edd: DUP4 00000ede: ADD 00000edf: MSTORE 00000ee0: PUSH1 0x60 00000ee2: DUP2 00000ee3: ADD 00000ee4: SWAP3 00000ee5: SWAP1 00000ee6: SWAP3 00000ee7: MSTORE 00000ee8: MLOAD 00000ee9: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 00000f0a: SWAP2 00000f0b: DUP2 00000f0c: SWAP1 00000f0d: SUB 00000f0e: PUSH1 0x80 00000f10: ADD 00000f11: SWAP1 00000f12: LOG1 00000f13: JUMP 00000f14: JUMPDEST 00000f15: DUP1 00000f16: SWAP4 00000f17: POP 00000f18: JUMPDEST 00000f19: POP 00000f1a: POP 00000f1b: POP 00000f1c: SWAP11 00000f1d: SWAP10 00000f1e: POP 00000f1f: POP 00000f20: POP 00000f21: POP 00000f22: POP 00000f23: POP 00000f24: POP 00000f25: POP 00000f26: POP 00000f27: POP 00000f28: JUMP 00000f29: JUMPDEST 00000f2a: PUSH1 0x00 00000f2c: DUP4 00000f2d: DUP2 00000f2e: MSTORE 00000f2f: PUSH1 0x01 00000f31: PUSH1 0x20 00000f33: MSTORE 00000f34: PUSH1 0x40 00000f36: SWAP1 00000f37: KECCAK256 00000f38: SLOAD 00000f39: PUSH2 0x0f43 00000f3c: SWAP1 00000f3d: DUP15 00000f3e: SWAP1 00000f3f: PUSH2 0x0656 00000f42: JUMP 00000f43: JUMPDEST 00000f44: PUSH1 0x01 00000f46: PUSH1 0xa0 00000f48: PUSH1 0x02 00000f4a: EXP 00000f4b: SUB 00000f4c: DUP14 00000f4d: DUP2 00000f4e: AND 00000f4f: PUSH1 0x00 00000f51: SWAP1 00000f52: DUP2 00000f53: MSTORE 00000f54: PUSH1 0x20 00000f56: DUP2 00000f57: DUP2 00000f58: MSTORE 00000f59: PUSH1 0x40 00000f5b: DUP1 00000f5c: DUP4 00000f5d: KECCAK256 00000f5e: SWAP4 00000f5f: DUP14 00000f60: AND 00000f61: DUP4 00000f62: MSTORE 00000f63: SWAP3 00000f64: SWAP1 00000f65: MSTORE 00000f66: KECCAK256 00000f67: SLOAD 00000f68: SWAP1 00000f69: SWAP3 00000f6a: POP 00000f6b: DUP12 00000f6c: SWAP1 00000f6d: PUSH2 0x0f76 00000f70: SWAP1 00000f71: DUP16 00000f72: PUSH2 0x060a 00000f75: JUMP 00000f76: JUMPDEST 00000f77: DUP2 00000f78: ISZERO 00000f79: PUSH2 0x0002 00000f7c: JUMPI 00000f7d: DIV 00000f7e: SWAP1 00000f7f: POP 00000f80: DUP1 00000f81: DUP3 00000f82: LT 00000f83: ISZERO 00000f84: PUSH2 0x0f14 00000f87: JUMPI 00000f88: DUP2 00000f89: SWAP4 00000f8a: POP 00000f8b: PUSH2 0x0f18 00000f8e: JUMP 00000f8f: JUMPDEST 00000f90: SWAP4 00000f91: SWAP3 00000f92: POP 00000f93: POP 00000f94: POP 00000f95: JUMP 00000f96: JUMPDEST 00000f97: POP 00000f98: DUP1 00000f99: DUP3 00000f9a: SUB 00000f9b: PUSH2 0x02b5 00000f9e: JUMP 00000f9f: UNKNOWN(0xAD) 00000fa0: ORIGIN 00000fa1: UNKNOWN(0x28) 00000fa2: UNKNOWN(0xB6) 00000fa3: PUSH23 0xf7d3cd4284a5443f17f1962b36e491b30a40b2405849e5 00000fbb: SWAP8 00000fbc: UNKNOWN(0xBA) 00000fbd: PUSH0 00000fbe: UNKNOWN(0xB5)
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x0a19b14a",
"selector": "0x0a19b14a",
"calldata_variants": [
"0x0a19b14a",
"0x0a19b14a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x278b8c0e",
"selector": "0x278b8c0e",
"calldata_variants": [
"0x278b8c0e",
"0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e1a7d4d",
"selector": "0x2e1a7d4d",
"calldata_variants": [
"0x2e1a7d4d",
"0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x338b5dea",
"selector": "0x338b5dea",
"calldata_variants": [
"0x338b5dea",
"0x338b5dea0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x57786394",
"selector": "0x57786394",
"calldata_variants": [
"0x57786394",
"0x577863940000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x65e17c9d",
"selector": "0x65e17c9d",
"calldata_variants": [
"0x65e17c9d",
"0x65e17c9d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6c86888b",
"selector": "0x6c86888b",
"calldata_variants": [
"0x6c86888b",
"0x6c86888b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x93f0bb51",
"selector": "0x93f0bb51",
"calldata_variants": [
"0x93f0bb51",
"0x93f0bb510000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 4000,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | yes | yes |
viewtrace_id: 0x2a6561f425b1bb604fd9ee98b6aeebc3eee15c2bf94a9bed7e474ef59fbace4f
call_targets:
0x0000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000002, 0x4aea7cf559f67cedcad07e12ae6bc00f07e8cf65
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x2a6561f425b1bb604fd9ee98b6aeebc3eee15c2bf94a9bed7e474ef59fbace4f",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000000000000000000000000000000000001",
"0x0000000000000000000000000000000000000002",
"0x4aea7cf559f67cedcad07e12ae6bc00f07e8cf65"
],
"matched_probe": null,
"target_varies": true,
"classification": "target_varies"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x0a19b14a",
"selector": "0x0a19b14a",
"calldata_variants": [
"0x0a19b14a",
"0x0a19b14a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x278b8c0e",
"selector": "0x278b8c0e",
"calldata_variants": [
"0x278b8c0e",
"0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e1a7d4d",
"selector": "0x2e1a7d4d",
"calldata_variants": [
"0x2e1a7d4d",
"0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x338b5dea",
"selector": "0x338b5dea",
"calldata_variants": [
"0x338b5dea",
"0x338b5dea0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x57786394",
"selector": "0x57786394",
"calldata_variants": [
"0x57786394",
"0x577863940000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x65e17c9d",
"selector": "0x65e17c9d",
"calldata_variants": [
"0x65e17c9d",
"0x65e17c9d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6c86888b",
"selector": "0x6c86888b",
"calldata_variants": [
"0x6c86888b",
"0x6c86888b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x93f0bb51",
"selector": "0x93f0bb51",
"calldata_variants": [
"0x93f0bb51",
"0x93f0bb510000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 847,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 947,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1171,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 9,
"guards_detected": [
{
"pc": 4000,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 9
}
|
| medium | other | detector | ETH value transfer possible | 40 | yes | yes |
viewtrace_id: 0x2a6561f425b1bb604fd9ee98b6aeebc3eee15c2bf94a9bed7e474ef59fbace4f
call_targets:
0x0000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000002, 0x4aea7cf559f67cedcad07e12ae6bc00f07e8cf65
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x2a6561f425b1bb604fd9ee98b6aeebc3eee15c2bf94a9bed7e474ef59fbace4f",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000000000000000000000000000000000001",
"0x0000000000000000000000000000000000000002",
"0x4aea7cf559f67cedcad07e12ae6bc00f07e8cf65"
],
"matched_probe": null,
"target_varies": true,
"classification": "target_varies"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x0a19b14a",
"selector": "0x0a19b14a",
"calldata_variants": [
"0x0a19b14a",
"0x0a19b14a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x278b8c0e",
"selector": "0x278b8c0e",
"calldata_variants": [
"0x278b8c0e",
"0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e1a7d4d",
"selector": "0x2e1a7d4d",
"calldata_variants": [
"0x2e1a7d4d",
"0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x338b5dea",
"selector": "0x338b5dea",
"calldata_variants": [
"0x338b5dea",
"0x338b5dea0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x57786394",
"selector": "0x57786394",
"calldata_variants": [
"0x57786394",
"0x577863940000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x65e17c9d",
"selector": "0x65e17c9d",
"calldata_variants": [
"0x65e17c9d",
"0x65e17c9d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6c86888b",
"selector": "0x6c86888b",
"calldata_variants": [
"0x6c86888b",
"0x6c86888b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x93f0bb51",
"selector": "0x93f0bb51",
"calldata_variants": [
"0x93f0bb51",
"0x93f0bb510000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 847,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 947,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1171,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 9,
"guards_detected": [
{
"pc": 4000,
"type": "tx_origin_used"
}
]
}
|