4e41c9fa-9c30-46f0-9b99-00da8171b03d
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 |
|---|---|---|---|---|
| 31573 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 78065 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 78066 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 78067 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 78068 | capability.graph | complete | 1 / 3 | 1 week ago |
| 78069 | detector.run | complete | 1 / 3 | 1 week ago |
| 78070 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:154424] OpenAI Codex v0.77.0 (research preview)
[codex:154424] --------
[codex:154424] workdir: /tmp/codex-multi-gm6xhv5e
[codex:154424] model: gpt-5.2-codex
[codex:154424] provider: openai
[codex:154424] approval: never
[codex:154424] sandbox: read-only
[codex:154424] reasoning effort: xhigh
[codex:154424] reasoning summaries: auto
[codex:154424] session id: 019b878b-6805-73b2-b8b6-c20d940a1408
[codex:154424] --------
[codex:154424] user
[codex:154424] You are a profit-focused exploit hunter analyzing EVM bytecode. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:154424]
[codex:154424] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:154424]
[codex:154424] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:154424] - Gas inefficiency, code quality, or best practices
[codex:154424] - Theoretical vulnerabilities without a clear extraction path
[codex:154424] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:154424] - Issues requiring social engineering or off-chain coordination
[codex:154424]
[codex:154424] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:154424] - CALL/DELEGATECALL with controllable destination or calldata
[codex:154424] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:154424] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:154424] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:154424] - External calls before state updates (reentrancy)
[codex:154424] - SELFDESTRUCT with controllable beneficiary
[codex:154424] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:154424]
[codex:154424] For each finding, you MUST explain:
[codex:154424] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:154424] 2. The concrete sequence of transactions to extract value
[codex:154424] 3. Why you believe this is exploitable (not just suspicious)
[codex:154424]
[codex:154424] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:154424] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:154424]
[codex:154424] Output MUST be valid JSON matching the provided schema.
[codex:154424] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:154424] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:154424] mcp startup: no servers
[codex:154424]
[codex:154424] thinking
[codex:154424] **Reading BYTECODE_BUNDLE file**
[codex:154424] exec
[codex:154424] /bin/bash -lc ls in /tmp/codex-multi-gm6xhv5e succeeded in 5ms:
[codex:154424] BYTECODE_BUNDLE.txt
[codex:154424] codex-output-schema.json
[codex:154424] exec
[codex:154424] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-gm6xhv5e succeeded in 5ms:
[codex:154424] Runtime bytecode bundle for best-effort auditing.
[codex:154424] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:154424]
[codex:154424] FILE: runtime_bytecode.hex
[codex:154424] 0x606060405236156100b75763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610109578063095ea7b31461019457806318160ddd146101ca57806323b872dd146101ef578063313ce5671461022b57806342966c681461025457806370a082311461027e57806379cc6790146102af57806395d89b41146102e5578063a9059cbb14610370578063cae9ca5114610394578063dd62ed3e1461040d575b5b6000341115610106577fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c3334604051600160a060020a03909216825260208201526040908101905180910390a15b5b005b341561011457600080fd5b61011c610444565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101595780820151818401525b602001610140565b50505050905090810190601f1680156101865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561019f57600080fd5b6101b6600160a060020a03600435166024356104e2565b604051901515815260200160405180910390f35b34156101d557600080fd5b6101dd610513565b60405190815260200160405180910390f35b34156101fa57600080fd5b6101b6600160a060020a0360043581169060243516604435610519565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e610591565b60405160ff909116815260200160405180910390f35b341561025f57600080fd5b6101b660043561059a565b604051901515815260200160405180910390f35b341561028957600080fd5b6101dd600160a060020a0360043516610626565b60405190815260200160405180910390f35b34156102ba57600080fd5b6101b6600160a060020a0360043516602435610638565b604051901515815260200160405180910390f35b34156102f057600080fd5b61011c610715565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101595780820151818401525b602001610140565b50505050905090810190601f1680156101865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037b57600080fd5b610106600160a060020a03600435166024356107b3565b005b341561039f57600080fd5b6101b660048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506107c395505050505050565b604051901515815260200160405180910390f35b341561041857600080fd5b6101dd600160a060020a03600435811690602435166108f7565b60405190815260200160405180910390f35b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104da5780601f106104af576101008083540402835291602001916104da565b820191906000526020600020905b8154815290600101906020018083116104bd57829003601f168201915b505050505081565b600160a060020a03338116600090815260056020908152604080832093861683529290522081905560015b92915050565b60035481565b600160a060020a0380841660009081526005602090815260408083203390941683529290529081205482111561054e57600080fd5b600160a060020a0380851660009081526005602090815260408083203390941683529290522080548390039055610586848484610914565b5060015b9392505050565b60025460ff1681565b600160a060020a033316600090815260046020526040812054829010156105c057600080fd5b600160a060020a03331660008181526004602052604090819020805485900390556003805485900390557fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59084905190815260200160405180910390a25060015b919050565b60046020526000908152604090205481565b600160a060020a0382166000908152600460205260408120548290101561065e57600080fd5b600160a060020a038084166000908152600560209081526040808320339094168352929052205482111561069157600080fd5b600160a060020a038084166000818152600460209081526040808320805488900390556005825280832033909516835293905282902080548590039055600380548590039055907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59084905190815260200160405180910390a25060015b92915050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104da5780601f106104af576101008083540402835291602001916104da565b820191906000526020600020905b8154815290600101906020018083116104bd57829003601f168201915b505050505081565b6107be338383610914565b5b5050565b6000836107d081856104e2565b156108ee5780600160a060020a0316638f4ffcb1338630876040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108875780820151818401525b60200161086e565b50505050905090810190601f1680156108b45780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156108d557600080fd5b6102c65a03f115156108e657600080fd5b505050600191505b5b509392505050565b600560209081526000928352604080842090915290825290205481565b600160a060020a038216151561092957600080fd5b600160a060020a0383166000908152600460205260409020548190101561094f57600080fd5b600160a060020a0382166000908152600460205260409020548181011161097557600080fd5b600160a060020a038084166000818152600460205260408082208054869003905592851680825290839020805485019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35b5050505600a165627a7a72305820461c09572259e93b1ea92e42a4649a9850b21b9d940558b388328d13a99241470029
[codex:154424]
[codex:154424]
[codex:154424] thinking
[codex:154424] **Decoding and analyzing token bytecode**
[codex:154424]
[codex:154424] I'm mapping known ERC20 function selectors and events to understand this bytecode's structure, identifying standard functions plus extras like burn and approveAndCall. I’m parsing storage layout to find variables like name, symbol, decimals, and totalSupply. The fallback function appears payable and logs deposits, suggesting ETH acceptance. Now I’m checking for unprotected functions that might allow token minting or transfer exploits through external calls or missing access control. I'll continue decoding to spot any concrete vulnerabilities.
[codex:154424] thinking
[codex:154424] **Concluding bytecode security analysis**
[codex:154424]
[codex:154424] After carefully reviewing the bytecode for functions handling ETH and token transfers, I don’t see any withdrawal paths or privileged minting functions. The only external call performs an approve-and-call pattern with zero ETH transfer, which is standard. Balances and allowances are checked properly, and burn functions behave as expected. The payable fallback accepts ETH but only logs events without crediting balances or allowing withdrawals, so funds sent are effectively stuck. No selfdestruct or delegatecall opcodes appear. Overall, no concrete exploit path leading to profit emerges from this bytecode. I’m ready to return a JSON result summarizing no findings as requested.
[codex:154424] codex
[codex:154424] {"no_findings":true,"summary":"No concrete exploitable value-extraction path identified in the runtime bytecode; it appears to implement standard ERC20 operations plus burn/approveAndCall, with no value-transferring CALLs, no SELFDESTRUCT, and no unprotected mint/upgrade paths.","findings":[]}
[codex:154424] tokens used
[codex:154424] 15,098
[codex:154424] {"no_findings":true,"summary":"No concrete exploitable value-extraction path identified in the runtime bytecode; it appears to implement standard ERC20 operations plus burn/approveAndCall, with no value-transferring CALLs, no SELFDESTRUCT, and no unprotected mint/upgrade paths.","findings":[]}
{
"codex": {
"ran_at": "2026-01-04T05:49:15.236350+00:00",
"returncode": 0
},
"summary": "No concrete exploitable value-extraction path identified in the runtime bytecode; it appears to implement standard ERC20 operations plus burn/approveAndCall, with no value-transferring CALLs, no SELFDESTRUCT, and no unprotected mint/upgrade paths.",
"raw_final": {
"summary": "No concrete exploitable value-extraction path identified in the runtime bytecode; it appears to implement standard ERC20 operations plus burn/approveAndCall, with no value-transferring CALLs, no SELFDESTRUCT, and no unprotected mint/upgrade paths.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLDATASIZE 00000006: ISZERO 00000007: PUSH2 0x00b7 0000000a: JUMPI 0000000b: PUSH4 0xffffffff 00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000002e: PUSH1 0x00 00000030: CALLDATALOAD 00000031: DIV 00000032: AND 00000033: PUSH4 0x06fdde03 00000038: DUP2 00000039: EQ 0000003a: PUSH2 0x0109 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0x095ea7b3 00000044: EQ 00000045: PUSH2 0x0194 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0x18160ddd 0000004f: EQ 00000050: PUSH2 0x01ca 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0x23b872dd 0000005a: EQ 0000005b: PUSH2 0x01ef 0000005e: JUMPI 0000005f: DUP1 00000060: PUSH4 0x313ce567 00000065: EQ 00000066: PUSH2 0x022b 00000069: JUMPI 0000006a: DUP1 0000006b: PUSH4 0x42966c68 00000070: EQ 00000071: PUSH2 0x0254 00000074: JUMPI 00000075: DUP1 00000076: PUSH4 0x70a08231 0000007b: EQ 0000007c: PUSH2 0x027e 0000007f: JUMPI 00000080: DUP1 00000081: PUSH4 0x79cc6790 00000086: EQ 00000087: PUSH2 0x02af 0000008a: JUMPI 0000008b: DUP1 0000008c: PUSH4 0x95d89b41 00000091: EQ 00000092: PUSH2 0x02e5 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0xa9059cbb 0000009c: EQ 0000009d: PUSH2 0x0370 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xcae9ca51 000000a7: EQ 000000a8: PUSH2 0x0394 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xdd62ed3e 000000b2: EQ 000000b3: PUSH2 0x040d 000000b6: JUMPI 000000b7: JUMPDEST 000000b8: JUMPDEST 000000b9: PUSH1 0x00 000000bb: CALLVALUE 000000bc: GT 000000bd: ISZERO 000000be: PUSH2 0x0106 000000c1: JUMPI 000000c2: PUSH32 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c 000000e3: CALLER 000000e4: CALLVALUE 000000e5: PUSH1 0x40 000000e7: MLOAD 000000e8: PUSH1 0x01 000000ea: PUSH1 0xa0 000000ec: PUSH1 0x02 000000ee: EXP 000000ef: SUB 000000f0: SWAP1 000000f1: SWAP3 000000f2: AND 000000f3: DUP3 000000f4: MSTORE 000000f5: PUSH1 0x20 000000f7: DUP3 000000f8: ADD 000000f9: MSTORE 000000fa: PUSH1 0x40 000000fc: SWAP1 000000fd: DUP2 000000fe: ADD 000000ff: SWAP1 00000100: MLOAD 00000101: DUP1 00000102: SWAP2 00000103: SUB 00000104: SWAP1 00000105: LOG1 00000106: JUMPDEST 00000107: JUMPDEST 00000108: STOP 00000109: JUMPDEST 0000010a: CALLVALUE 0000010b: ISZERO 0000010c: PUSH2 0x0114 0000010f: JUMPI 00000110: PUSH1 0x00 00000112: DUP1 00000113: REVERT 00000114: JUMPDEST 00000115: PUSH2 0x011c 00000118: PUSH2 0x0444 0000011b: JUMP 0000011c: JUMPDEST 0000011d: PUSH1 0x40 0000011f: MLOAD 00000120: PUSH1 0x20 00000122: DUP1 00000123: DUP3 00000124: MSTORE 00000125: DUP2 00000126: SWAP1 00000127: DUP2 00000128: ADD 00000129: DUP4 0000012a: DUP2 0000012b: DUP2 0000012c: MLOAD 0000012d: DUP2 0000012e: MSTORE 0000012f: PUSH1 0x20 00000131: ADD 00000132: SWAP2 00000133: POP 00000134: DUP1 00000135: MLOAD 00000136: SWAP1 00000137: PUSH1 0x20 00000139: ADD 0000013a: SWAP1 0000013b: DUP1 0000013c: DUP4 0000013d: DUP4 0000013e: PUSH1 0x00 00000140: JUMPDEST 00000141: DUP4 00000142: DUP2 00000143: LT 00000144: ISZERO 00000145: PUSH2 0x0159 00000148: JUMPI 00000149: DUP1 0000014a: DUP3 0000014b: ADD 0000014c: MLOAD 0000014d: DUP2 0000014e: DUP5 0000014f: ADD 00000150: MSTORE 00000151: JUMPDEST 00000152: PUSH1 0x20 00000154: ADD 00000155: PUSH2 0x0140 00000158: JUMP 00000159: JUMPDEST 0000015a: POP 0000015b: POP 0000015c: POP 0000015d: POP 0000015e: SWAP1 0000015f: POP 00000160: SWAP1 00000161: DUP2 00000162: ADD 00000163: SWAP1 00000164: PUSH1 0x1f 00000166: AND 00000167: DUP1 00000168: ISZERO 00000169: PUSH2 0x0186 0000016c: JUMPI 0000016d: DUP1 0000016e: DUP3 0000016f: SUB 00000170: DUP1 00000171: MLOAD 00000172: PUSH1 0x01 00000174: DUP4 00000175: PUSH1 0x20 00000177: SUB 00000178: PUSH2 0x0100 0000017b: EXP 0000017c: SUB 0000017d: NOT 0000017e: AND 0000017f: DUP2 00000180: MSTORE 00000181: PUSH1 0x20 00000183: ADD 00000184: SWAP2 00000185: POP 00000186: JUMPDEST 00000187: POP 00000188: SWAP3 00000189: POP 0000018a: POP 0000018b: POP 0000018c: PUSH1 0x40 0000018e: MLOAD 0000018f: DUP1 00000190: SWAP2 00000191: SUB 00000192: SWAP1 00000193: RETURN 00000194: JUMPDEST 00000195: CALLVALUE 00000196: ISZERO 00000197: PUSH2 0x019f 0000019a: JUMPI 0000019b: PUSH1 0x00 0000019d: DUP1 0000019e: REVERT 0000019f: JUMPDEST 000001a0: PUSH2 0x01b6 000001a3: PUSH1 0x01 000001a5: PUSH1 0xa0 000001a7: PUSH1 0x02 000001a9: EXP 000001aa: SUB 000001ab: PUSH1 0x04 000001ad: CALLDATALOAD 000001ae: AND 000001af: PUSH1 0x24 000001b1: CALLDATALOAD 000001b2: PUSH2 0x04e2 000001b5: JUMP 000001b6: JUMPDEST 000001b7: PUSH1 0x40 000001b9: MLOAD 000001ba: SWAP1 000001bb: ISZERO 000001bc: ISZERO 000001bd: DUP2 000001be: MSTORE 000001bf: PUSH1 0x20 000001c1: ADD 000001c2: PUSH1 0x40 000001c4: MLOAD 000001c5: DUP1 000001c6: SWAP2 000001c7: SUB 000001c8: SWAP1 000001c9: RETURN 000001ca: JUMPDEST 000001cb: CALLVALUE 000001cc: ISZERO 000001cd: PUSH2 0x01d5 000001d0: JUMPI 000001d1: PUSH1 0x00 000001d3: DUP1 000001d4: REVERT 000001d5: JUMPDEST 000001d6: PUSH2 0x01dd 000001d9: PUSH2 0x0513 000001dc: JUMP 000001dd: JUMPDEST 000001de: PUSH1 0x40 000001e0: MLOAD 000001e1: SWAP1 000001e2: DUP2 000001e3: MSTORE 000001e4: PUSH1 0x20 000001e6: ADD 000001e7: PUSH1 0x40 000001e9: MLOAD 000001ea: DUP1 000001eb: SWAP2 000001ec: SUB 000001ed: SWAP1 000001ee: RETURN 000001ef: JUMPDEST 000001f0: CALLVALUE 000001f1: ISZERO 000001f2: PUSH2 0x01fa 000001f5: JUMPI 000001f6: PUSH1 0x00 000001f8: DUP1 000001f9: REVERT 000001fa: JUMPDEST 000001fb: PUSH2 0x01b6 000001fe: PUSH1 0x01 00000200: PUSH1 0xa0 00000202: PUSH1 0x02 00000204: EXP 00000205: SUB 00000206: PUSH1 0x04 00000208: CALLDATALOAD 00000209: DUP2 0000020a: AND 0000020b: SWAP1 0000020c: PUSH1 0x24 0000020e: CALLDATALOAD 0000020f: AND 00000210: PUSH1 0x44 00000212: CALLDATALOAD 00000213: PUSH2 0x0519 00000216: JUMP 00000217: JUMPDEST 00000218: PUSH1 0x40 0000021a: MLOAD 0000021b: SWAP1 0000021c: ISZERO 0000021d: ISZERO 0000021e: DUP2 0000021f: MSTORE 00000220: PUSH1 0x20 00000222: ADD 00000223: PUSH1 0x40 00000225: MLOAD 00000226: DUP1 00000227: SWAP2 00000228: SUB 00000229: SWAP1 0000022a: RETURN 0000022b: JUMPDEST 0000022c: CALLVALUE 0000022d: ISZERO 0000022e: PUSH2 0x0236 00000231: JUMPI 00000232: PUSH1 0x00 00000234: DUP1 00000235: REVERT 00000236: JUMPDEST 00000237: PUSH2 0x023e 0000023a: PUSH2 0x0591 0000023d: JUMP 0000023e: JUMPDEST 0000023f: PUSH1 0x40 00000241: MLOAD 00000242: PUSH1 0xff 00000244: SWAP1 00000245: SWAP2 00000246: AND 00000247: DUP2 00000248: MSTORE 00000249: PUSH1 0x20 0000024b: ADD 0000024c: PUSH1 0x40 0000024e: MLOAD 0000024f: DUP1 00000250: SWAP2 00000251: SUB 00000252: SWAP1 00000253: RETURN 00000254: JUMPDEST 00000255: CALLVALUE 00000256: ISZERO 00000257: PUSH2 0x025f 0000025a: JUMPI 0000025b: PUSH1 0x00 0000025d: DUP1 0000025e: REVERT 0000025f: JUMPDEST 00000260: PUSH2 0x01b6 00000263: PUSH1 0x04 00000265: CALLDATALOAD 00000266: PUSH2 0x059a 00000269: JUMP 0000026a: JUMPDEST 0000026b: PUSH1 0x40 0000026d: MLOAD 0000026e: SWAP1 0000026f: ISZERO 00000270: ISZERO 00000271: DUP2 00000272: MSTORE 00000273: PUSH1 0x20 00000275: ADD 00000276: PUSH1 0x40 00000278: MLOAD 00000279: DUP1 0000027a: SWAP2 0000027b: SUB 0000027c: SWAP1 0000027d: RETURN 0000027e: JUMPDEST 0000027f: CALLVALUE 00000280: ISZERO 00000281: PUSH2 0x0289 00000284: JUMPI 00000285: PUSH1 0x00 00000287: DUP1 00000288: REVERT 00000289: JUMPDEST 0000028a: PUSH2 0x01dd 0000028d: PUSH1 0x01 0000028f: PUSH1 0xa0 00000291: PUSH1 0x02 00000293: EXP 00000294: SUB 00000295: PUSH1 0x04 00000297: CALLDATALOAD 00000298: AND 00000299: PUSH2 0x0626 0000029c: JUMP 0000029d: JUMPDEST 0000029e: PUSH1 0x40 000002a0: MLOAD 000002a1: SWAP1 000002a2: DUP2 000002a3: MSTORE 000002a4: PUSH1 0x20 000002a6: ADD 000002a7: PUSH1 0x40 000002a9: MLOAD 000002aa: DUP1 000002ab: SWAP2 000002ac: SUB 000002ad: SWAP1 000002ae: RETURN 000002af: JUMPDEST 000002b0: CALLVALUE 000002b1: ISZERO 000002b2: PUSH2 0x02ba 000002b5: JUMPI 000002b6: PUSH1 0x00 000002b8: DUP1 000002b9: REVERT 000002ba: JUMPDEST 000002bb: PUSH2 0x01b6 000002be: PUSH1 0x01 000002c0: PUSH1 0xa0 000002c2: PUSH1 0x02 000002c4: EXP 000002c5: SUB 000002c6: PUSH1 0x04 000002c8: CALLDATALOAD 000002c9: AND 000002ca: PUSH1 0x24 000002cc: CALLDATALOAD 000002cd: PUSH2 0x0638 000002d0: JUMP 000002d1: JUMPDEST 000002d2: PUSH1 0x40 000002d4: MLOAD 000002d5: SWAP1 000002d6: ISZERO 000002d7: ISZERO 000002d8: DUP2 000002d9: MSTORE 000002da: PUSH1 0x20 000002dc: ADD 000002dd: PUSH1 0x40 000002df: MLOAD 000002e0: DUP1 000002e1: SWAP2 000002e2: SUB 000002e3: SWAP1 000002e4: RETURN 000002e5: JUMPDEST 000002e6: CALLVALUE 000002e7: ISZERO 000002e8: PUSH2 0x02f0 000002eb: JUMPI 000002ec: PUSH1 0x00 000002ee: DUP1 000002ef: REVERT 000002f0: JUMPDEST 000002f1: PUSH2 0x011c 000002f4: PUSH2 0x0715 000002f7: JUMP 000002f8: JUMPDEST 000002f9: PUSH1 0x40 000002fb: MLOAD 000002fc: PUSH1 0x20 000002fe: DUP1 000002ff: DUP3 00000300: MSTORE 00000301: DUP2 00000302: SWAP1 00000303: DUP2 00000304: ADD 00000305: DUP4 00000306: DUP2 00000307: DUP2 00000308: MLOAD 00000309: DUP2 0000030a: MSTORE 0000030b: PUSH1 0x20 0000030d: ADD 0000030e: SWAP2 0000030f: POP 00000310: DUP1 00000311: MLOAD 00000312: SWAP1 00000313: PUSH1 0x20 00000315: ADD 00000316: SWAP1 00000317: DUP1 00000318: DUP4 00000319: DUP4 0000031a: PUSH1 0x00 0000031c: JUMPDEST 0000031d: DUP4 0000031e: DUP2 0000031f: LT 00000320: ISZERO 00000321: PUSH2 0x0159 00000324: JUMPI 00000325: DUP1 00000326: DUP3 00000327: ADD 00000328: MLOAD 00000329: DUP2 0000032a: DUP5 0000032b: ADD 0000032c: MSTORE 0000032d: JUMPDEST 0000032e: PUSH1 0x20 00000330: ADD 00000331: PUSH2 0x0140 00000334: JUMP 00000335: JUMPDEST 00000336: POP 00000337: POP 00000338: POP 00000339: POP 0000033a: SWAP1 0000033b: POP 0000033c: SWAP1 0000033d: DUP2 0000033e: ADD 0000033f: SWAP1 00000340: PUSH1 0x1f 00000342: AND 00000343: DUP1 00000344: ISZERO 00000345: PUSH2 0x0186 00000348: JUMPI 00000349: DUP1 0000034a: DUP3 0000034b: SUB 0000034c: DUP1 0000034d: MLOAD 0000034e: PUSH1 0x01 00000350: DUP4 00000351: PUSH1 0x20 00000353: SUB 00000354: PUSH2 0x0100 00000357: EXP 00000358: SUB 00000359: NOT 0000035a: AND 0000035b: DUP2 0000035c: MSTORE 0000035d: PUSH1 0x20 0000035f: ADD 00000360: SWAP2 00000361: POP 00000362: JUMPDEST 00000363: POP 00000364: SWAP3 00000365: POP 00000366: POP 00000367: POP 00000368: PUSH1 0x40 0000036a: MLOAD 0000036b: DUP1 0000036c: SWAP2 0000036d: SUB 0000036e: SWAP1 0000036f: RETURN 00000370: JUMPDEST 00000371: CALLVALUE 00000372: ISZERO 00000373: PUSH2 0x037b 00000376: JUMPI 00000377: PUSH1 0x00 00000379: DUP1 0000037a: REVERT 0000037b: JUMPDEST 0000037c: PUSH2 0x0106 0000037f: PUSH1 0x01 00000381: PUSH1 0xa0 00000383: PUSH1 0x02 00000385: EXP 00000386: SUB 00000387: PUSH1 0x04 00000389: CALLDATALOAD 0000038a: AND 0000038b: PUSH1 0x24 0000038d: CALLDATALOAD 0000038e: PUSH2 0x07b3 00000391: JUMP 00000392: JUMPDEST 00000393: STOP 00000394: JUMPDEST 00000395: CALLVALUE 00000396: ISZERO 00000397: PUSH2 0x039f 0000039a: JUMPI 0000039b: PUSH1 0x00 0000039d: DUP1 0000039e: REVERT 0000039f: JUMPDEST 000003a0: PUSH2 0x01b6 000003a3: PUSH1 0x04 000003a5: DUP1 000003a6: CALLDATALOAD 000003a7: PUSH1 0x01 000003a9: PUSH1 0xa0 000003ab: PUSH1 0x02 000003ad: EXP 000003ae: SUB 000003af: AND 000003b0: SWAP1 000003b1: PUSH1 0x24 000003b3: DUP1 000003b4: CALLDATALOAD 000003b5: SWAP2 000003b6: SWAP1 000003b7: PUSH1 0x64 000003b9: SWAP1 000003ba: PUSH1 0x44 000003bc: CALLDATALOAD 000003bd: SWAP1 000003be: DUP2 000003bf: ADD 000003c0: SWAP1 000003c1: DUP4 000003c2: ADD 000003c3: CALLDATALOAD 000003c4: DUP1 000003c5: PUSH1 0x20 000003c7: PUSH1 0x1f 000003c9: DUP3 000003ca: ADD 000003cb: DUP2 000003cc: SWAP1 000003cd: DIV 000003ce: DUP2 000003cf: MUL 000003d0: ADD 000003d1: PUSH1 0x40 000003d3: MLOAD 000003d4: SWAP1 000003d5: DUP2 000003d6: ADD 000003d7: PUSH1 0x40 000003d9: MSTORE 000003da: DUP2 000003db: DUP2 000003dc: MSTORE 000003dd: SWAP3 000003de: SWAP2 000003df: SWAP1 000003e0: PUSH1 0x20 000003e2: DUP5 000003e3: ADD 000003e4: DUP4 000003e5: DUP4 000003e6: DUP1 000003e7: DUP3 000003e8: DUP5 000003e9: CALLDATACOPY 000003ea: POP 000003eb: SWAP5 000003ec: SWAP7 000003ed: POP 000003ee: PUSH2 0x07c3 000003f1: SWAP6 000003f2: POP 000003f3: POP 000003f4: POP 000003f5: POP 000003f6: POP 000003f7: POP 000003f8: JUMP 000003f9: JUMPDEST 000003fa: PUSH1 0x40 000003fc: MLOAD 000003fd: SWAP1 000003fe: ISZERO 000003ff: ISZERO 00000400: DUP2 00000401: MSTORE 00000402: PUSH1 0x20 00000404: ADD 00000405: PUSH1 0x40 00000407: MLOAD 00000408: DUP1 00000409: SWAP2 0000040a: SUB 0000040b: SWAP1 0000040c: RETURN 0000040d: JUMPDEST 0000040e: CALLVALUE 0000040f: ISZERO 00000410: PUSH2 0x0418 00000413: JUMPI 00000414: PUSH1 0x00 00000416: DUP1 00000417: REVERT 00000418: JUMPDEST 00000419: PUSH2 0x01dd 0000041c: PUSH1 0x01 0000041e: PUSH1 0xa0 00000420: PUSH1 0x02 00000422: EXP 00000423: SUB 00000424: PUSH1 0x04 00000426: CALLDATALOAD 00000427: DUP2 00000428: AND 00000429: SWAP1 0000042a: PUSH1 0x24 0000042c: CALLDATALOAD 0000042d: AND 0000042e: PUSH2 0x08f7 00000431: JUMP 00000432: JUMPDEST 00000433: PUSH1 0x40 00000435: MLOAD 00000436: SWAP1 00000437: DUP2 00000438: MSTORE 00000439: PUSH1 0x20 0000043b: ADD 0000043c: PUSH1 0x40 0000043e: MLOAD 0000043f: DUP1 00000440: SWAP2 00000441: SUB 00000442: SWAP1 00000443: RETURN 00000444: JUMPDEST 00000445: PUSH1 0x00 00000447: DUP1 00000448: SLOAD 00000449: PUSH1 0x01 0000044b: DUP2 0000044c: PUSH1 0x01 0000044e: AND 0000044f: ISZERO 00000450: PUSH2 0x0100 00000453: MUL 00000454: SUB 00000455: AND 00000456: PUSH1 0x02 00000458: SWAP1 00000459: DIV 0000045a: DUP1 0000045b: PUSH1 0x1f 0000045d: ADD 0000045e: PUSH1 0x20 00000460: DUP1 00000461: SWAP2 00000462: DIV 00000463: MUL 00000464: PUSH1 0x20 00000466: ADD 00000467: PUSH1 0x40 00000469: MLOAD 0000046a: SWAP1 0000046b: DUP2 0000046c: ADD 0000046d: PUSH1 0x40 0000046f: MSTORE 00000470: DUP1 00000471: SWAP3 00000472: SWAP2 00000473: SWAP1 00000474: DUP2 00000475: DUP2 00000476: MSTORE 00000477: PUSH1 0x20 00000479: ADD 0000047a: DUP3 0000047b: DUP1 0000047c: SLOAD 0000047d: PUSH1 0x01 0000047f: DUP2 00000480: PUSH1 0x01 00000482: AND 00000483: ISZERO 00000484: PUSH2 0x0100 00000487: MUL 00000488: SUB 00000489: AND 0000048a: PUSH1 0x02 0000048c: SWAP1 0000048d: DIV 0000048e: DUP1 0000048f: ISZERO 00000490: PUSH2 0x04da 00000493: JUMPI 00000494: DUP1 00000495: PUSH1 0x1f 00000497: LT 00000498: PUSH2 0x04af 0000049b: JUMPI 0000049c: PUSH2 0x0100 0000049f: DUP1 000004a0: DUP4 000004a1: SLOAD 000004a2: DIV 000004a3: MUL 000004a4: DUP4 000004a5: MSTORE 000004a6: SWAP2 000004a7: PUSH1 0x20 000004a9: ADD 000004aa: SWAP2 000004ab: PUSH2 0x04da 000004ae: JUMP 000004af: JUMPDEST 000004b0: DUP3 000004b1: ADD 000004b2: SWAP2 000004b3: SWAP1 000004b4: PUSH1 0x00 000004b6: MSTORE 000004b7: PUSH1 0x20 000004b9: PUSH1 0x00 000004bb: KECCAK256 000004bc: SWAP1 000004bd: JUMPDEST 000004be: DUP2 000004bf: SLOAD 000004c0: DUP2 000004c1: MSTORE 000004c2: SWAP1 000004c3: PUSH1 0x01 000004c5: ADD 000004c6: SWAP1 000004c7: PUSH1 0x20 000004c9: ADD 000004ca: DUP1 000004cb: DUP4 000004cc: GT 000004cd: PUSH2 0x04bd 000004d0: JUMPI 000004d1: DUP3 000004d2: SWAP1 000004d3: SUB 000004d4: PUSH1 0x1f 000004d6: AND 000004d7: DUP3 000004d8: ADD 000004d9: SWAP2 000004da: JUMPDEST 000004db: POP 000004dc: POP 000004dd: POP 000004de: POP 000004df: POP 000004e0: DUP2 000004e1: JUMP 000004e2: JUMPDEST 000004e3: PUSH1 0x01 000004e5: PUSH1 0xa0 000004e7: PUSH1 0x02 000004e9: EXP 000004ea: SUB 000004eb: CALLER 000004ec: DUP2 000004ed: AND 000004ee: PUSH1 0x00 000004f0: SWAP1 000004f1: DUP2 000004f2: MSTORE 000004f3: PUSH1 0x05 000004f5: PUSH1 0x20 000004f7: SWAP1 000004f8: DUP2 000004f9: MSTORE 000004fa: PUSH1 0x40 000004fc: DUP1 000004fd: DUP4 000004fe: KECCAK256 000004ff: SWAP4 00000500: DUP7 00000501: AND 00000502: DUP4 00000503: MSTORE 00000504: SWAP3 00000505: SWAP1 00000506: MSTORE 00000507: KECCAK256 00000508: DUP2 00000509: SWAP1 0000050a: SSTORE 0000050b: PUSH1 0x01 0000050d: JUMPDEST 0000050e: SWAP3 0000050f: SWAP2 00000510: POP 00000511: POP 00000512: JUMP 00000513: JUMPDEST 00000514: PUSH1 0x03 00000516: SLOAD 00000517: DUP2 00000518: JUMP 00000519: JUMPDEST 0000051a: PUSH1 0x01 0000051c: PUSH1 0xa0 0000051e: PUSH1 0x02 00000520: EXP 00000521: SUB 00000522: DUP1 00000523: DUP5 00000524: AND 00000525: PUSH1 0x00 00000527: SWAP1 00000528: DUP2 00000529: MSTORE 0000052a: PUSH1 0x05 0000052c: PUSH1 0x20 0000052e: SWAP1 0000052f: DUP2 00000530: MSTORE 00000531: PUSH1 0x40 00000533: DUP1 00000534: DUP4 00000535: KECCAK256 00000536: CALLER 00000537: SWAP1 00000538: SWAP5 00000539: AND 0000053a: DUP4 0000053b: MSTORE 0000053c: SWAP3 0000053d: SWAP1 0000053e: MSTORE 0000053f: SWAP1 00000540: DUP2 00000541: KECCAK256 00000542: SLOAD 00000543: DUP3 00000544: GT 00000545: ISZERO 00000546: PUSH2 0x054e 00000549: JUMPI 0000054a: PUSH1 0x00 0000054c: DUP1 0000054d: REVERT 0000054e: JUMPDEST 0000054f: PUSH1 0x01 00000551: PUSH1 0xa0 00000553: PUSH1 0x02 00000555: EXP 00000556: SUB 00000557: DUP1 00000558: DUP6 00000559: AND 0000055a: PUSH1 0x00 0000055c: SWAP1 0000055d: DUP2 0000055e: MSTORE 0000055f: PUSH1 0x05 00000561: PUSH1 0x20 00000563: SWAP1 00000564: DUP2 00000565: MSTORE 00000566: PUSH1 0x40 00000568: DUP1 00000569: DUP4 0000056a: KECCAK256 0000056b: CALLER 0000056c: SWAP1 0000056d: SWAP5 0000056e: AND 0000056f: DUP4 00000570: MSTORE 00000571: SWAP3 00000572: SWAP1 00000573: MSTORE 00000574: KECCAK256 00000575: DUP1 00000576: SLOAD 00000577: DUP4 00000578: SWAP1 00000579: SUB 0000057a: SWAP1 0000057b: SSTORE 0000057c: PUSH2 0x0586 0000057f: DUP5 00000580: DUP5 00000581: DUP5 00000582: PUSH2 0x0914 00000585: JUMP 00000586: JUMPDEST 00000587: POP 00000588: PUSH1 0x01 0000058a: JUMPDEST 0000058b: SWAP4 0000058c: SWAP3 0000058d: POP 0000058e: POP 0000058f: POP 00000590: JUMP 00000591: JUMPDEST 00000592: PUSH1 0x02 00000594: SLOAD 00000595: PUSH1 0xff 00000597: AND 00000598: DUP2 00000599: JUMP 0000059a: JUMPDEST 0000059b: PUSH1 0x01 0000059d: PUSH1 0xa0 0000059f: PUSH1 0x02 000005a1: EXP 000005a2: SUB 000005a3: CALLER 000005a4: AND 000005a5: PUSH1 0x00 000005a7: SWAP1 000005a8: DUP2 000005a9: MSTORE 000005aa: PUSH1 0x04 000005ac: PUSH1 0x20 000005ae: MSTORE 000005af: PUSH1 0x40 000005b1: DUP2 000005b2: KECCAK256 000005b3: SLOAD 000005b4: DUP3 000005b5: SWAP1 000005b6: LT 000005b7: ISZERO 000005b8: PUSH2 0x05c0 000005bb: JUMPI 000005bc: PUSH1 0x00 000005be: DUP1 000005bf: REVERT 000005c0: JUMPDEST 000005c1: PUSH1 0x01 000005c3: PUSH1 0xa0 000005c5: PUSH1 0x02 000005c7: EXP 000005c8: SUB 000005c9: CALLER 000005ca: AND 000005cb: PUSH1 0x00 000005cd: DUP2 000005ce: DUP2 000005cf: MSTORE 000005d0: PUSH1 0x04 000005d2: PUSH1 0x20 000005d4: MSTORE 000005d5: PUSH1 0x40 000005d7: SWAP1 000005d8: DUP2 000005d9: SWAP1 000005da: KECCAK256 000005db: DUP1 000005dc: SLOAD 000005dd: DUP6 000005de: SWAP1 000005df: SUB 000005e0: SWAP1 000005e1: SSTORE 000005e2: PUSH1 0x03 000005e4: DUP1 000005e5: SLOAD 000005e6: DUP6 000005e7: SWAP1 000005e8: SUB 000005e9: SWAP1 000005ea: SSTORE 000005eb: PUSH32 0xcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5 0000060c: SWAP1 0000060d: DUP5 0000060e: SWAP1 0000060f: MLOAD 00000610: SWAP1 00000611: DUP2 00000612: MSTORE 00000613: PUSH1 0x20 00000615: ADD 00000616: PUSH1 0x40 00000618: MLOAD 00000619: DUP1 0000061a: SWAP2 0000061b: SUB 0000061c: SWAP1 0000061d: LOG2 0000061e: POP 0000061f: PUSH1 0x01 00000621: JUMPDEST 00000622: SWAP2 00000623: SWAP1 00000624: POP 00000625: JUMP 00000626: JUMPDEST 00000627: PUSH1 0x04 00000629: PUSH1 0x20 0000062b: MSTORE 0000062c: PUSH1 0x00 0000062e: SWAP1 0000062f: DUP2 00000630: MSTORE 00000631: PUSH1 0x40 00000633: SWAP1 00000634: KECCAK256 00000635: SLOAD 00000636: DUP2 00000637: JUMP 00000638: JUMPDEST 00000639: PUSH1 0x01 0000063b: PUSH1 0xa0 0000063d: PUSH1 0x02 0000063f: EXP 00000640: SUB 00000641: DUP3 00000642: AND 00000643: PUSH1 0x00 00000645: SWAP1 00000646: DUP2 00000647: MSTORE 00000648: PUSH1 0x04 0000064a: PUSH1 0x20 0000064c: MSTORE 0000064d: PUSH1 0x40 0000064f: DUP2 00000650: KECCAK256 00000651: SLOAD 00000652: DUP3 00000653: SWAP1 00000654: LT 00000655: ISZERO 00000656: PUSH2 0x065e 00000659: JUMPI 0000065a: PUSH1 0x00 0000065c: DUP1 0000065d: REVERT 0000065e: JUMPDEST 0000065f: PUSH1 0x01 00000661: PUSH1 0xa0 00000663: PUSH1 0x02 00000665: EXP 00000666: SUB 00000667: DUP1 00000668: DUP5 00000669: AND 0000066a: PUSH1 0x00 0000066c: SWAP1 0000066d: DUP2 0000066e: MSTORE 0000066f: PUSH1 0x05 00000671: PUSH1 0x20 00000673: SWAP1 00000674: DUP2 00000675: MSTORE 00000676: PUSH1 0x40 00000678: DUP1 00000679: DUP4 0000067a: KECCAK256 0000067b: CALLER 0000067c: SWAP1 0000067d: SWAP5 0000067e: AND 0000067f: DUP4 00000680: MSTORE 00000681: SWAP3 00000682: SWAP1 00000683: MSTORE 00000684: KECCAK256 00000685: SLOAD 00000686: DUP3 00000687: GT 00000688: ISZERO 00000689: PUSH2 0x0691 0000068c: JUMPI 0000068d: PUSH1 0x00 0000068f: DUP1 00000690: REVERT 00000691: JUMPDEST 00000692: PUSH1 0x01 00000694: PUSH1 0xa0 00000696: PUSH1 0x02 00000698: EXP 00000699: SUB 0000069a: DUP1 0000069b: DUP5 0000069c: AND 0000069d: PUSH1 0x00 0000069f: DUP2 000006a0: DUP2 000006a1: MSTORE 000006a2: PUSH1 0x04 000006a4: PUSH1 0x20 000006a6: SWAP1 000006a7: DUP2 000006a8: MSTORE 000006a9: PUSH1 0x40 000006ab: DUP1 000006ac: DUP4 000006ad: KECCAK256 000006ae: DUP1 000006af: SLOAD 000006b0: DUP9 000006b1: SWAP1 000006b2: SUB 000006b3: SWAP1 000006b4: SSTORE 000006b5: PUSH1 0x05 000006b7: DUP3 000006b8: MSTORE 000006b9: DUP1 000006ba: DUP4 000006bb: KECCAK256 000006bc: CALLER 000006bd: SWAP1 000006be: SWAP6 000006bf: AND 000006c0: DUP4 000006c1: MSTORE 000006c2: SWAP4 000006c3: SWAP1 000006c4: MSTORE 000006c5: DUP3 000006c6: SWAP1 000006c7: KECCAK256 000006c8: DUP1 000006c9: SLOAD 000006ca: DUP6 000006cb: SWAP1 000006cc: SUB 000006cd: SWAP1 000006ce: SSTORE 000006cf: PUSH1 0x03 000006d1: DUP1 000006d2: SLOAD 000006d3: DUP6 000006d4: SWAP1 000006d5: SUB 000006d6: SWAP1 000006d7: SSTORE 000006d8: SWAP1 000006d9: PUSH32 0xcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5 000006fa: SWAP1 000006fb: DUP5 000006fc: SWAP1 000006fd: MLOAD 000006fe: SWAP1 000006ff: DUP2 00000700: MSTORE 00000701: PUSH1 0x20 00000703: ADD 00000704: PUSH1 0x40 00000706: MLOAD 00000707: DUP1 00000708: SWAP2 00000709: SUB 0000070a: SWAP1 0000070b: LOG2 0000070c: POP 0000070d: PUSH1 0x01 0000070f: JUMPDEST 00000710: SWAP3 00000711: SWAP2 00000712: POP 00000713: POP 00000714: JUMP 00000715: JUMPDEST 00000716: PUSH1 0x01 00000718: DUP1 00000719: SLOAD 0000071a: PUSH1 0x01 0000071c: DUP2 0000071d: PUSH1 0x01 0000071f: AND 00000720: ISZERO 00000721: PUSH2 0x0100 00000724: MUL 00000725: SUB 00000726: AND 00000727: PUSH1 0x02 00000729: SWAP1 0000072a: DIV 0000072b: DUP1 0000072c: PUSH1 0x1f 0000072e: ADD 0000072f: PUSH1 0x20 00000731: DUP1 00000732: SWAP2 00000733: DIV 00000734: MUL 00000735: PUSH1 0x20 00000737: ADD 00000738: PUSH1 0x40 0000073a: MLOAD 0000073b: SWAP1 0000073c: DUP2 0000073d: ADD 0000073e: PUSH1 0x40 00000740: MSTORE 00000741: DUP1 00000742: SWAP3 00000743: SWAP2 00000744: SWAP1 00000745: DUP2 00000746: DUP2 00000747: MSTORE 00000748: PUSH1 0x20 0000074a: ADD 0000074b: DUP3 0000074c: DUP1 0000074d: SLOAD 0000074e: PUSH1 0x01 00000750: DUP2 00000751: PUSH1 0x01 00000753: AND 00000754: ISZERO 00000755: PUSH2 0x0100 00000758: MUL 00000759: SUB 0000075a: AND 0000075b: PUSH1 0x02 0000075d: SWAP1 0000075e: DIV 0000075f: DUP1 00000760: ISZERO 00000761: PUSH2 0x04da 00000764: JUMPI 00000765: DUP1 00000766: PUSH1 0x1f 00000768: LT 00000769: PUSH2 0x04af 0000076c: JUMPI 0000076d: PUSH2 0x0100 00000770: DUP1 00000771: DUP4 00000772: SLOAD 00000773: DIV 00000774: MUL 00000775: DUP4 00000776: MSTORE 00000777: SWAP2 00000778: PUSH1 0x20 0000077a: ADD 0000077b: SWAP2 0000077c: PUSH2 0x04da 0000077f: JUMP 00000780: JUMPDEST 00000781: DUP3 00000782: ADD 00000783: SWAP2 00000784: SWAP1 00000785: PUSH1 0x00 00000787: MSTORE 00000788: PUSH1 0x20 0000078a: PUSH1 0x00 0000078c: KECCAK256 0000078d: SWAP1 0000078e: JUMPDEST 0000078f: DUP2 00000790: SLOAD 00000791: DUP2 00000792: MSTORE 00000793: SWAP1 00000794: PUSH1 0x01 00000796: ADD 00000797: SWAP1 00000798: PUSH1 0x20 0000079a: ADD 0000079b: DUP1 0000079c: DUP4 0000079d: GT 0000079e: PUSH2 0x04bd 000007a1: JUMPI 000007a2: DUP3 000007a3: SWAP1 000007a4: SUB 000007a5: PUSH1 0x1f 000007a7: AND 000007a8: DUP3 000007a9: ADD 000007aa: SWAP2 000007ab: JUMPDEST 000007ac: POP 000007ad: POP 000007ae: POP 000007af: POP 000007b0: POP 000007b1: DUP2 000007b2: JUMP 000007b3: JUMPDEST 000007b4: PUSH2 0x07be 000007b7: CALLER 000007b8: DUP4 000007b9: DUP4 000007ba: PUSH2 0x0914 000007bd: JUMP 000007be: JUMPDEST 000007bf: JUMPDEST 000007c0: POP 000007c1: POP 000007c2: JUMP 000007c3: JUMPDEST 000007c4: PUSH1 0x00 000007c6: DUP4 000007c7: PUSH2 0x07d0 000007ca: DUP2 000007cb: DUP6 000007cc: PUSH2 0x04e2 000007cf: JUMP 000007d0: JUMPDEST 000007d1: ISZERO 000007d2: PUSH2 0x08ee 000007d5: JUMPI 000007d6: DUP1 000007d7: PUSH1 0x01 000007d9: PUSH1 0xa0 000007db: PUSH1 0x02 000007dd: EXP 000007de: SUB 000007df: AND 000007e0: PUSH4 0x8f4ffcb1 000007e5: CALLER 000007e6: DUP7 000007e7: ADDRESS 000007e8: DUP8 000007e9: PUSH1 0x40 000007eb: MLOAD 000007ec: DUP6 000007ed: PUSH4 0xffffffff 000007f2: AND 000007f3: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000811: MUL 00000812: DUP2 00000813: MSTORE 00000814: PUSH1 0x04 00000816: ADD 00000817: DUP1 00000818: DUP6 00000819: PUSH1 0x01 0000081b: PUSH1 0xa0 0000081d: PUSH1 0x02 0000081f: EXP 00000820: SUB 00000821: AND 00000822: PUSH1 0x01 00000824: PUSH1 0xa0 00000826: PUSH1 0x02 00000828: EXP 00000829: SUB 0000082a: AND 0000082b: DUP2 0000082c: MSTORE 0000082d: PUSH1 0x20 0000082f: ADD 00000830: DUP5 00000831: DUP2 00000832: MSTORE 00000833: PUSH1 0x20 00000835: ADD 00000836: DUP4 00000837: PUSH1 0x01 00000839: PUSH1 0xa0 0000083b: PUSH1 0x02 0000083d: EXP 0000083e: SUB 0000083f: AND 00000840: PUSH1 0x01 00000842: PUSH1 0xa0 00000844: PUSH1 0x02 00000846: EXP 00000847: SUB 00000848: AND 00000849: DUP2 0000084a: MSTORE 0000084b: PUSH1 0x20 0000084d: ADD 0000084e: DUP1 0000084f: PUSH1 0x20 00000851: ADD 00000852: DUP3 00000853: DUP2 00000854: SUB 00000855: DUP3 00000856: MSTORE 00000857: DUP4 00000858: DUP2 00000859: DUP2 0000085a: MLOAD 0000085b: DUP2 0000085c: MSTORE 0000085d: PUSH1 0x20 0000085f: ADD 00000860: SWAP2 00000861: POP 00000862: DUP1 00000863: MLOAD 00000864: SWAP1 00000865: PUSH1 0x20 00000867: ADD 00000868: SWAP1 00000869: DUP1 0000086a: DUP4 0000086b: DUP4 0000086c: PUSH1 0x00 0000086e: JUMPDEST 0000086f: DUP4 00000870: DUP2 00000871: LT 00000872: ISZERO 00000873: PUSH2 0x0887 00000876: JUMPI 00000877: DUP1 00000878: DUP3 00000879: ADD 0000087a: MLOAD 0000087b: DUP2 0000087c: DUP5 0000087d: ADD 0000087e: MSTORE 0000087f: JUMPDEST 00000880: PUSH1 0x20 00000882: ADD 00000883: PUSH2 0x086e 00000886: JUMP 00000887: JUMPDEST 00000888: POP 00000889: POP 0000088a: POP 0000088b: POP 0000088c: SWAP1 0000088d: POP 0000088e: SWAP1 0000088f: DUP2 00000890: ADD 00000891: SWAP1 00000892: PUSH1 0x1f 00000894: AND 00000895: DUP1 00000896: ISZERO 00000897: PUSH2 0x08b4 0000089a: JUMPI 0000089b: DUP1 0000089c: DUP3 0000089d: SUB 0000089e: DUP1 0000089f: MLOAD 000008a0: PUSH1 0x01 000008a2: DUP4 000008a3: PUSH1 0x20 000008a5: SUB 000008a6: PUSH2 0x0100 000008a9: EXP 000008aa: SUB 000008ab: NOT 000008ac: AND 000008ad: DUP2 000008ae: MSTORE 000008af: PUSH1 0x20 000008b1: ADD 000008b2: SWAP2 000008b3: POP 000008b4: JUMPDEST 000008b5: POP 000008b6: SWAP6 000008b7: POP 000008b8: POP 000008b9: POP 000008ba: POP 000008bb: POP 000008bc: POP 000008bd: PUSH1 0x00 000008bf: PUSH1 0x40 000008c1: MLOAD 000008c2: DUP1 000008c3: DUP4 000008c4: SUB 000008c5: DUP2 000008c6: PUSH1 0x00 000008c8: DUP8 000008c9: DUP1 000008ca: EXTCODESIZE 000008cb: ISZERO 000008cc: ISZERO 000008cd: PUSH2 0x08d5 000008d0: JUMPI 000008d1: PUSH1 0x00 000008d3: DUP1 000008d4: REVERT 000008d5: JUMPDEST 000008d6: PUSH2 0x02c6 000008d9: GAS 000008da: SUB 000008db: CALL 000008dc: ISZERO 000008dd: ISZERO 000008de: PUSH2 0x08e6 000008e1: JUMPI 000008e2: PUSH1 0x00 000008e4: DUP1 000008e5: REVERT 000008e6: JUMPDEST 000008e7: POP 000008e8: POP 000008e9: POP 000008ea: PUSH1 0x01 000008ec: SWAP2 000008ed: POP 000008ee: JUMPDEST 000008ef: JUMPDEST 000008f0: POP 000008f1: SWAP4 000008f2: SWAP3 000008f3: POP 000008f4: POP 000008f5: POP 000008f6: JUMP 000008f7: JUMPDEST 000008f8: PUSH1 0x05 000008fa: PUSH1 0x20 000008fc: SWAP1 000008fd: DUP2 000008fe: MSTORE 000008ff: PUSH1 0x00 00000901: SWAP3 00000902: DUP4 00000903: MSTORE 00000904: PUSH1 0x40 00000906: DUP1 00000907: DUP5 00000908: KECCAK256 00000909: SWAP1 0000090a: SWAP2 0000090b: MSTORE 0000090c: SWAP1 0000090d: DUP3 0000090e: MSTORE 0000090f: SWAP1 00000910: KECCAK256 00000911: SLOAD 00000912: DUP2 00000913: JUMP 00000914: JUMPDEST 00000915: PUSH1 0x01 00000917: PUSH1 0xa0 00000919: PUSH1 0x02 0000091b: EXP 0000091c: SUB 0000091d: DUP3 0000091e: AND 0000091f: ISZERO 00000920: ISZERO 00000921: PUSH2 0x0929 00000924: JUMPI 00000925: PUSH1 0x00 00000927: DUP1 00000928: REVERT 00000929: JUMPDEST 0000092a: PUSH1 0x01 0000092c: PUSH1 0xa0 0000092e: PUSH1 0x02 00000930: EXP 00000931: SUB 00000932: DUP4 00000933: AND 00000934: PUSH1 0x00 00000936: SWAP1 00000937: DUP2 00000938: MSTORE 00000939: PUSH1 0x04 0000093b: PUSH1 0x20 0000093d: MSTORE 0000093e: PUSH1 0x40 00000940: SWAP1 00000941: KECCAK256 00000942: SLOAD 00000943: DUP2 00000944: SWAP1 00000945: LT 00000946: ISZERO 00000947: PUSH2 0x094f 0000094a: JUMPI 0000094b: PUSH1 0x00 0000094d: DUP1 0000094e: REVERT 0000094f: JUMPDEST 00000950: PUSH1 0x01 00000952: PUSH1 0xa0 00000954: PUSH1 0x02 00000956: EXP 00000957: SUB 00000958: DUP3 00000959: AND 0000095a: PUSH1 0x00 0000095c: SWAP1 0000095d: DUP2 0000095e: MSTORE 0000095f: PUSH1 0x04 00000961: PUSH1 0x20 00000963: MSTORE 00000964: PUSH1 0x40 00000966: SWAP1 00000967: KECCAK256 00000968: SLOAD 00000969: DUP2 0000096a: DUP2 0000096b: ADD 0000096c: GT 0000096d: PUSH2 0x0975 00000970: JUMPI 00000971: PUSH1 0x00 00000973: DUP1 00000974: REVERT 00000975: JUMPDEST 00000976: PUSH1 0x01 00000978: PUSH1 0xa0 0000097a: PUSH1 0x02 0000097c: EXP 0000097d: SUB 0000097e: DUP1 0000097f: DUP5 00000980: AND 00000981: PUSH1 0x00 00000983: DUP2 00000984: DUP2 00000985: MSTORE 00000986: PUSH1 0x04 00000988: PUSH1 0x20 0000098a: MSTORE 0000098b: PUSH1 0x40 0000098d: DUP1 0000098e: DUP3 0000098f: KECCAK256 00000990: DUP1 00000991: SLOAD 00000992: DUP7 00000993: SWAP1 00000994: SUB 00000995: SWAP1 00000996: SSTORE 00000997: SWAP3 00000998: DUP6 00000999: AND 0000099a: DUP1 0000099b: DUP3 0000099c: MSTORE 0000099d: SWAP1 0000099e: DUP4 0000099f: SWAP1 000009a0: KECCAK256 000009a1: DUP1 000009a2: SLOAD 000009a3: DUP6 000009a4: ADD 000009a5: SWAP1 000009a6: SSTORE 000009a7: SWAP2 000009a8: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000009c9: SWAP1 000009ca: DUP5 000009cb: SWAP1 000009cc: MLOAD 000009cd: SWAP1 000009ce: DUP2 000009cf: MSTORE 000009d0: PUSH1 0x20 000009d2: ADD 000009d3: PUSH1 0x40 000009d5: MLOAD 000009d6: DUP1 000009d7: SWAP2 000009d8: SUB 000009d9: SWAP1 000009da: LOG3 000009db: JUMPDEST 000009dc: POP 000009dd: POP 000009de: POP 000009df: JUMP 000009e0: STOP 000009e1: LOG1 000009e2: PUSH6 0x627a7a723058 000009e9: KECCAK256 000009ea: CHAINID 000009eb: SHR 000009ec: MULMOD 000009ed: JUMPI 000009ee: UNKNOWN(0x22) 000009ef: MSIZE 000009f0: UNKNOWN(0xE9) 000009f1: EXTCODESIZE 000009f2: CLZ 000009f3: UNKNOWN(0xA9) 000009f4: UNKNOWN(0x2E) 000009f5: TIMESTAMP 000009f6: LOG4 000009f7: PUSH5 0x9a9850b21b 000009fd: SWAP14 000009fe: SWAP5 000009ff: SDIV 00000a00: PC 00000a01: UNKNOWN(0xB3) 00000a02: DUP9 00000a03: ORIGIN 00000a04: DUP14 00000a05: SGT 00000a06: UNKNOWN(0xA9) 00000a07: SWAP3 00000a08: COINBASE 00000a09: SELFBALANCE 00000a0a: STOP 00000a0b: UNKNOWN(0x29)
| 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": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x42966c68",
"selector": "0x42966c68",
"calldata_variants": [
"0x42966c68",
"0x42966c680000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x79cc6790",
"selector": "0x79cc6790",
"calldata_variants": [
"0x79cc6790",
"0x79cc67900000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 2563,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x2d23c4d9c09ea98636dd648ff3bfcbcb3fca692e02e90663d6805d3e4e822d8d
call_targets:
0x3a53999e9d66c6fd95d6eb3f1be6114e91a3ed94
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x2d23c4d9c09ea98636dd648ff3bfcbcb3fca692e02e90663d6805d3e4e822d8d",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x3a53999e9d66c6fd95d6eb3f1be6114e91a3ed94"
],
"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": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x42966c68",
"selector": "0x42966c68",
"calldata_variants": [
"0x42966c68",
"0x42966c680000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x79cc6790",
"selector": "0x79cc6790",
"calldata_variants": [
"0x79cc6790",
"0x79cc67900000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2267,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 1,
"guards_detected": [
{
"pc": 2563,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 1
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x2d23c4d9c09ea98636dd648ff3bfcbcb3fca692e02e90663d6805d3e4e822d8d
call_targets:
0x3a53999e9d66c6fd95d6eb3f1be6114e91a3ed94
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x2d23c4d9c09ea98636dd648ff3bfcbcb3fca692e02e90663d6805d3e4e822d8d",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x3a53999e9d66c6fd95d6eb3f1be6114e91a3ed94"
],
"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": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x42966c68",
"selector": "0x42966c68",
"calldata_variants": [
"0x42966c68",
"0x42966c680000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x79cc6790",
"selector": "0x79cc6790",
"calldata_variants": [
"0x79cc6790",
"0x79cc67900000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2267,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": [
{
"pc": 2563,
"type": "tx_origin_used"
}
]
}
|