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

Analysis Run

4e41c9fa-9c30-46f0-9b99-00da8171b03d

complete
Chain ID
1
Address
Block Number
Created
Sun, Jan 4, 2026 5:49 AM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
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

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: no

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
0
No findings?
yes
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.
View stderr
[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":[]}
Metadata
{
    "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
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
1
EXT*/BALANCE
2
Total opcodes
1825
Flags
No heuristic flags raised.
View cast disassembly output
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)

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "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
view
trace_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
view
trace_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"
        }
    ]
}