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

Analysis Run

13782684-6c80-4a2d-abfa-a44ebe897c9f

complete
Chain ID
1
Address
Block Number
Created
Sun, Jan 4, 2026 12:10 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
Untrusted CALL target/value reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
31489 report.consolidate complete 1 / 1 3 months ago
77560 artifact.fetch complete 1 / 3 1 week ago
77561 tool.cast_disasm complete 1 / 3 1 week ago
77562 analysis.bundle complete 1 / 3 1 week ago
77563 capability.graph complete 1 / 3 1 week ago
77564 detector.run complete 1 / 3 1 week ago
77565 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 paths found in the provided runtime bytecode; value-transfer functions (ERC20 transfers and ETH CALLs) are gated by an approved-sender mapping, and whitelist management is restricted by an owner check.
View stderr
[codex:996958] OpenAI Codex v0.77.0 (research preview)
[codex:996958] --------
[codex:996958] workdir: /tmp/codex-multi-s02w5tz7
[codex:996958] model: gpt-5.2-codex
[codex:996958] provider: openai
[codex:996958] approval: never
[codex:996958] sandbox: read-only
[codex:996958] reasoning effort: xhigh
[codex:996958] reasoning summaries: auto
[codex:996958] session id: 019b864f-9df0-7b70-89de-a374524bf80b
[codex:996958] --------
[codex:996958] user
[codex:996958] 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:996958] 
[codex:996958] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:996958] 
[codex:996958] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:996958] - Gas inefficiency, code quality, or best practices
[codex:996958] - Theoretical vulnerabilities without a clear extraction path
[codex:996958] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:996958] - Issues requiring social engineering or off-chain coordination
[codex:996958] 
[codex:996958] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:996958] - CALL/DELEGATECALL with controllable destination or calldata
[codex:996958] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:996958] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:996958] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:996958] - External calls before state updates (reentrancy)
[codex:996958] - SELFDESTRUCT with controllable beneficiary
[codex:996958] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:996958] 
[codex:996958] For each finding, you MUST explain:
[codex:996958] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:996958] 2. The concrete sequence of transactions to extract value
[codex:996958] 3. Why you believe this is exploitable (not just suspicious)
[codex:996958] 
[codex:996958] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:996958] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:996958] 
[codex:996958] Output MUST be valid JSON matching the provided schema.
[codex:996958] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:996958] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:996958] mcp startup: no servers
[codex:996958] 
[codex:996958] thinking
[codex:996958] **Reviewing task instructions**
[codex:996958] exec
[codex:996958] /bin/bash -lc ls in /tmp/codex-multi-s02w5tz7 succeeded in 6ms:
[codex:996958] BYTECODE_BUNDLE.txt
[codex:996958] codex-output-schema.json
[codex:996958] 
[codex:996958] thinking
[codex:996958] **Preparing to read file contents**
[codex:996958] exec
[codex:996958] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-s02w5tz7 succeeded in 5ms:
[codex:996958] Runtime bytecode bundle for best-effort auditing.
[codex:996958] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:996958] 
[codex:996958] FILE: runtime_bytecode.hex
[codex:996958] 0x6080604052600436106100845760003560e01c80638da5cb5b116100565780638da5cb5b14610102578063982fb9d81461012f578063c81e25ab1461016f578063cdeb14851461019f578063f2fde38b146101bf57005b806346b0813b1461008d5780636c04204e146100ad578063715018a6146100cd5780637670d1d8146100e257005b3661008b57005b005b34801561009957600080fd5b5061008b6100a8366004610afd565b6101df565b3480156100b957600080fd5b5061008b6100c8366004610b95565b6102a8565b3480156100d957600080fd5b5061008b610593565b3480156100ee57600080fd5b5061008b6100fd366004610afd565b6105a7565b34801561010e57600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b34801561013b57600080fd5b5061015f61014a366004610c13565b60016020526000908152604090205460ff1681565b6040519015158152602001610126565b34801561017b57600080fd5b5061015f61018a366004610c37565b60026020526000908152604090205460ff1681565b3480156101ab57600080fd5b5061008b6101ba366004610c50565b61065f565b3480156101cb57600080fd5b5061008b6101da366004610c13565b6108e6565b6101e761095f565b600081511161023d5760405162461bcd60e51b815260206004820152601f60248201527f506c656173652070617373206174206c65617374206f6e652073656e6465720060448201526064015b60405180910390fd5b60005b81518110156102a457600180600084848151811061026057610260610cbd565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061029c81610cd3565b915050610240565b5050565b3360009081526001602052604090205460ff166103075760405162461bcd60e51b815260206004820152601d60248201527f43616c6c6572206973206e6f7420617070726f7665642073656e6465720000006044820152606401610234565b60008181526002602052604090205460ff161561035f5760405162461bcd60e51b815260206004820152601660248201527510985d18da081dd85cc8185b1c9958591e481cd95b9d60521b6044820152606401610234565b81518351146103805760405162461bcd60e51b815260040161023490610cfa565b60005b835181101561053957600080866001600160a01b031663a9059cbb60e01b8785815181106103b3576103b3610cbd565b60200260200101518786815181106103cd576103cd610cbd565b60209081029190910101516040516001600160a01b039092166024830152604482015260640160408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516104319190610d41565b6000604051808303816000865af19150503d806000811461046e576040519150601f19603f3d011682016040523d82523d6000602084013e610473565b606091505b5091509150816104bd5760405162461bcd60e51b8152602060048201526015602482015274131bddcb5b195d995b0818d85b1b0819985a5b1959605a1b6044820152606401610234565b80511561052457808060200190518101906104d89190610d70565b6105245760405162461bcd60e51b815260206004820152601f60248201527f4552433230206f7065726174696f6e20646964206e6f742073756363656564006044820152606401610234565b5050808061053190610cd3565b915050610383565b5060008181526002602052604090819020805460ff19166001179055517ff973a404f52ae16dd11a5d146523df4aacafc60aba31263f058c8d866f612795906105859083815260200190565b60405180910390a150505050565b61059b61095f565b6105a560006109b9565b565b6105af61095f565b60008151116106005760405162461bcd60e51b815260206004820152601f60248201527f506c656173652070617373206174206c65617374206f6e652073656e646572006044820152606401610234565b60005b81518110156102a4576001600083838151811061062257610622610cbd565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191690558061065781610cd3565b915050610603565b3360009081526001602052604090205460ff166106be5760405162461bcd60e51b815260206004820152601d60248201527f43616c6c6572206973206e6f7420617070726f7665642073656e6465720000006044820152606401610234565b60008181526002602052604090205460ff16156107125760405162461bcd60e51b815260206004820152601260248201527110985d18da08185b1c9958591e481d5cd95960721b6044820152606401610234565b60008351116107785760405162461bcd60e51b815260206004820152602c60248201527f506c656173652070617373206174206c65617374206f6e652064657374696e6160448201526b74696f6e206164647265737360a01b6064820152608401610234565b81518351146107995760405162461bcd60e51b815260040161023490610cfa565b60005b835181101561088d5760008482815181106107b9576107b9610cbd565b60200260200101516001600160a01b03168483815181106107dc576107dc610cbd565b602002602001015160405160006040518083038185875af1925050503d8060008114610824576040519150601f19603f3d011682016040523d82523d6000602084013e610829565b606091505b505090508061087a5760405162461bcd60e51b815260206004820152601e60248201527f5478207761732072656a65637465642062792064657374696e6174696f6e00006044820152606401610234565b508061088581610cd3565b91505061079c565b5060008181526002602052604090819020805460ff19166001179055517ff973a404f52ae16dd11a5d146523df4aacafc60aba31263f058c8d866f612795906108d99083815260200190565b60405180910390a1505050565b6108ee61095f565b6001600160a01b0381166109535760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610234565b61095c816109b9565b50565b6000546001600160a01b031633146105a55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610234565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610a4857610a48610a09565b604052919050565b600067ffffffffffffffff821115610a6a57610a6a610a09565b5060051b60200190565b6001600160a01b038116811461095c57600080fd5b600082601f830112610a9a57600080fd5b81356020610aaf610aaa83610a50565b610a1f565b82815260059290921b84018101918181019086841115610ace57600080fd5b8286015b84811015610af2578035610ae581610a74565b8352918301918301610ad2565b509695505050505050565b600060208284031215610b0f57600080fd5b813567ffffffffffffffff811115610b2657600080fd5b610b3284828501610a89565b949350505050565b600082601f830112610b4b57600080fd5b81356020610b5b610aaa83610a50565b82815260059290921b84018101918181019086841115610b7a57600080fd5b8286015b84811015610af25780358352918301918301610b7e565b60008060008060808587031215610bab57600080fd5b8435610bb681610a74565b9350602085013567ffffffffffffffff80821115610bd357600080fd5b610bdf88838901610a89565b94506040870135915080821115610bf557600080fd5b50610c0287828801610b3a565b949793965093946060013593505050565b600060208284031215610c2557600080fd5b8135610c3081610a74565b9392505050565b600060208284031215610c4957600080fd5b5035919050565b600080600060608486031215610c6557600080fd5b833567ffffffffffffffff80821115610c7d57600080fd5b610c8987838801610a89565b94506020860135915080821115610c9f57600080fd5b50610cac86828701610b3a565b925050604084013590509250925092565b634e487b7160e01b600052603260045260246000fd5b600060018201610cf357634e487b7160e01b600052601160045260246000fd5b5060010190565b60208082526027908201527f456163682064657374696e6174696f6e2073686f756c642068617665206f776e60408201526608185b5bdd5b9d60ca1b606082015260800190565b6000825160005b81811015610d625760208186018101518583015201610d48565b506000920191825250919050565b600060208284031215610d8257600080fd5b81518015158114610c3057600080fdfea2646970667358221220ab43ebd68ef99a626ac4c1c67e10bb8b547ac6228c955da5db2f47c2cc34fd3964736f6c63430008140033
[codex:996958] 
[codex:996958] thinking
[codex:996958] **Examining EVM bytecode functions**
[codex:996958] exec
[codex:996958] /bin/bash -lc "python - <<'PY'
[codex:996958] import binascii
[codex:996958] s='10985d18da08185b1c9958591e481d5cd9596072'
[codex:996958] print(len(s)//2)
[codex:996958] print(bytes.fromhex(s))
[codex:996958] PY" in /tmp/codex-multi-s02w5tz7 succeeded in 18ms:
[codex:996958] 20
[codex:996958] b'\x10\x98]\x18\xda\x08\x18[\x1c\x99XY\x1eH\x1d\\\xd9Y`r'
[codex:996958] 
[codex:996958] thinking
[codex:996958] **Analyzing hex and ASCII length discrepancies**
[codex:996958] exec
[codex:996958] /bin/bash -lc "python - <<'PY'
[codex:996958] import binascii
[codex:996958] s='10985d18da08185b1c9958591e481d5cd95960721b'
[codex:996958] print(len(s)//2)
[codex:996958] print(bytes.fromhex(s))
[codex:996958] PY" in /tmp/codex-multi-s02w5tz7 succeeded in 20ms:
[codex:996958] 21
[codex:996958] b'\x10\x98]\x18\xda\x08\x18[\x1c\x99XY\x1eH\x1d\\\xd9Y`r\x1b'
[codex:996958] 
[codex:996958] 
[codex:996958] 
[codex:996958] thinking
[codex:996958] **Examining complex contract functions and mappings**
[codex:996958] thinking
[codex:996958] **Parsing function parameters and sender checks in detail**
[codex:996958] 
[codex:996958] I’m tracing how the contract decodes function inputs, verifies approved senders via mapping keys, and ensures arrays match in length for batch sends. It looks like send functions require approved senders and check destinations but only once for all destinations, raising interesting questions about the exact whitelist logic.
[codex:996958] thinking
[codex:996958] **Analyzing destination whitelist checks and revert encoding**
[codex:996958] 
[codex:996958] I’m examining how the contract approves senders and destinations, noting a potential mismatch where destinations may not be individually checked in batch sends. Also, I’m unpacking the complex bytecode patterns used to encode revert strings and error selectors, trying to understand their custom encoding scheme.
[codex:996958] exec
[codex:996958] /bin/bash -lc "python - <<'PY'
[codex:996958] val=0x461bcd
[codex:996958] res=val<<0xe5
[codex:996958] print(hex(res))
[codex:996958] # maybe take top 4 bytes? 
[codex:996958] print(hex(res>>224))
[codex:996958] PY" in /tmp/codex-multi-s02w5tz7 succeeded in 17ms:
[codex:996958] 0x8c379a000000000000000000000000000000000000000000000000000000000
[codex:996958] 0x8c379a0
[codex:996958] 
[codex:996958] thinking
[codex:996958] **Decoding Error(string) revert pattern**
[codex:996958] exec
[codex:996958] /bin/bash -lc "python - <<'PY'
[codex:996958] import re
[codex:996958] from binascii import unhexlify
[codex:996958] 
[codex:996958] hexdata=open('BYTECODE_BUNDLE.txt').read()
[codex:996958] # extract runtime bytecode hex after 0x
[codex:996958] m=re.search(r'0x([0-9a-fA-F]+)', hexdata)
[codex:996958] hexstr=m.group(1)
[codex:996958] code=bytes.fromhex(hexstr)
[codex:996958] # find ascii strings of length >=4
[codex:996958] strings=[]
[codex:996958] cur=b''
[codex:996958] start=None
[codex:996958] for i,b in enumerate(code):
[codex:996958]     if 32 <= b < 127:
[codex:996958]         if start is None:
[codex:996958]             start=i
[codex:996958]             cur=bytes([b])
[codex:996958]         else:
[codex:996958]             cur+=bytes([b])
[codex:996958]     else:
[codex:996958]         if start is not None and len(cur)>=4:
[codex:996958]             strings.append((start,cur))
[codex:996958]         start=None
[codex:996958]         cur=b''
[codex:996958] if start is not None and len(cur)>=4:
[codex:996958]     strings.append((start,cur))
[codex:996958] for off,s in strings:
[codex:996958]     print(hex(off), s)
[codex:996958] PY" in /tmp/codex-multi-s02w5tz7 succeeded in 25ms:
[codex:996958] 0x2 b'`@R`'
[codex:996958] 0x112 b'T`@Q`'
[codex:996958] 0x126 b'[`@Q'
[codex:996958] 0x14d b'` R`'
[codex:996958] 0x15e b'V[`@Q'
[codex:996958] 0x16d b'&V[4'
[codex:996958] 0x188 b'7V[`'
[codex:996958] 0x18d b'` R`'
[codex:996958] 0x1b8 b'PV[a'
[codex:996958] 0x1bd b'_V[4'
[codex:996958] 0x1e5 b'_V[`'
[codex:996958] 0x1ef b'=W`@QbF'
[codex:996958] 0x1fc b'R` `'
[codex:996958] 0x20c b'Please pass at least one sender'
[codex:996958] 0x234 b'[`@Q'
[codex:996958] 0x25f b'V[` '
[codex:996958] 0x2a2 b'@V[PPV[3`'
[codex:996958] 0x2b1 b'` R`@'
[codex:996958] 0x2bf b'W`@QbF'
[codex:996958] 0x2cb b'R` `'
[codex:996958] 
[codex:996958] thinking
[codex:996958] **Analyzing extracted revert strings and contract logic**
[codex:996958] exec
[codex:996958] /bin/bash -lc "python - <<'PY'
[codex:996958] import re
[codex:996958] from binascii import unhexlify
[codex:996958] 
[codex:996958] hexdata=open('BYTECODE_BUNDLE.txt').read()
[codex:996958] hexstr=re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:996958] code=bytes.fromhex(hexstr)
[codex:996958] 
[codex:996958] # EVM opcode table
[codex:996958] opcodes={
[codex:996958]     0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:996958]     0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:996958]     0x20:'SHA3',
[codex:996958]     0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:996958]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:996958]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:996958]     0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:996958]     0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:996958]     0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:996958]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:996958]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:996958] }
[codex:996958] 
[codex:996958] # disassemble range around 0x2a8 and 0x65f
[codex:996958] 
[codex:996958] def disasm(start, end):
[codex:996958]     i=start
[codex:996958]     while i<end:
[codex:996958]         op=code[i]
[codex:996958]         name=opcodes.get(op, f'UNKNOWN_{op:02x}')
[codex:996958]         if 0x60 <= op <= 0x7f:
[codex:996958]             n=op-0x5f
[codex:996958]             data=code[i+1:i+1+n]
[codex:996958]             print(f'{i:04x}: {name} 0x{data.hex()}')
[codex:996958]             i+=1+n
[codex:996958]         else:
[codex:996958]             print(f'{i:04x}: {name}')
[codex:996958]             i+=1
[codex:996958] 
[codex:996958] print('--- disasm 0x2a8-0x3a0 ---')
[codex:996958] disasm(0x2a8,0x3a0)
[codex:996958] print('--- disasm 0x3a0-0x540 ---')
[codex:996958] disasm(0x3a0,0x540)
[codex:996958] print('--- disasm 0x65f-0x7a5 ---')
[codex:996958] disasm(0x65f,0x7a5)
[codex:996958] print('--- disasm 0x7a5-0x890 ---')
[codex:996958] disasm(0x7a5,0x890)
[codex:996958] PY" in /tmp/codex-multi-s02w5tz7 succeeded in 24ms:
[codex:996958] --- disasm 0x2a8-0x3a0 ---
[codex:996958] 02a8: JUMPDEST
[codex:996958] 02a9: CALLER
[codex:996958] 02aa: PUSH1 0x00
[codex:996958] 02ac: SWAP1
[codex:996958] 02ad: DUP2
[codex:996958] 02ae: MSTORE
[codex:996958] 02af: PUSH1 0x01
[codex:996958] 02b1: PUSH1 0x20
[codex:996958] 02b3: MSTORE
[codex:996958] 02b4: PUSH1 0x40
[codex:996958] 02b6: SWAP1
[codex:996958] 02b7: SHA3
[codex:996958] 02b8: SLOAD
[codex:996958] 02b9: PUSH1 0xff
[codex:996958] 02bb: AND
[codex:996958] 02bc: PUSH2 0x0307
[codex:996958] 02bf: JUMPI
[codex:996958] 02c0: PUSH1 0x40
[codex:996958] 02c2: MLOAD
[codex:996958] 
[codex:996958] thinking
[codex:996958] **Extending disassembly range**
[codex:996958] exec
[codex:996958] /bin/bash -lc "python - <<'PY'
[codex:996958] import re
[codex:996958] hexdata=open('BYTECODE_BUNDLE.txt').read()
[codex:996958] hexstr=re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:996958] code=bytes.fromhex(hexstr)
[codex:996958] 
[codex:996958] opcodes={
[codex:996958]     0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:996958]     0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:996958]     0x20:'SHA3',
[codex:996958]     0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:996958]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:996958]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:996958]     0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:996958]     0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:996958]     0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:996958]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:996958]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:996958] }
[codex:996958] 
[codex:996958] def disasm(start,end):
[codex:996958]     i=start
[codex:996958]     while i<end:
[codex:996958]         op=code[i]
[codex:996958]         name=opcodes.get(op, f'UNKNOWN_{op:02x}')
[codex:996958]         if 0x60<=op<=0x7f:
[codex:996958]             n=op-0x5f
[codex:996958]             data=code[i+1:i+1+n]
[codex:996958]             print(f'{i:04x}: {name} 0x{data.hex()}')
[codex:996958]             i+=1+n
[codex:996958]         else:
[codex:996958]             print(f'{i:04x}: {name}')
[codex:996958]             i+=1
[codex:996958] 
[codex:996958] print('--- disasm 0x538-0x5b0 ---')
[codex:996958] disasm(0x538,0x5b0)
[codex:996958] print('--- disasm 0x88d-0x910 ---')
[codex:996958] disasm(0x88d,0x910)
[codex:996958] PY" in /tmp/codex-multi-s02w5tz7 succeeded in 27ms:
[codex:996958] --- disasm 0x538-0x5b0 ---
[codex:996958] 0538: JUMP
[codex:996958] 0539: JUMPDEST
[codex:996958] 053a: POP
[codex:996958] 053b: PUSH1 0x00
[codex:996958] 053d: DUP2
[codex:996958] 053e: DUP2
[codex:996958] 053f: MSTORE
[codex:996958] 0540: PUSH1 0x02
[codex:996958] 0542: PUSH1 0x20
[codex:996958] 0544: MSTORE
[codex:996958] 0545: PUSH1 0x40
[codex:996958] 0547: SWAP1
[codex:996958] 0548: DUP2
[codex:996958] 0549: SWAP1
[codex:996958] 054a: SHA3
[codex:996958] 054b: DUP1
[codex:996958] 054c: SLOAD
[codex:996958] 054d: PUSH1 0xff
[codex:996958] 054f: NOT
[codex:996958] 
[codex:996958] thinking
[codex:996958] **Analyzing stack usage for mapping keys**
[codex:996958] exec
[codex:996958] /bin/bash -lc "python - <<'PY'
[codex:996958] import re
[codex:996958] hexdata=open('BYTECODE_BUNDLE.txt').read()
[codex:996958] hexstr=re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:996958] code=bytes.fromhex(hexstr)
[codex:996958] 
[codex:996958] opcodes={
[codex:996958]     0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:996958]     0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:996958]     0x20:'SHA3',
[codex:996958]     0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:996958]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:996958]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:996958]     0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:996958]     0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:996958]     0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:996958]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:996958]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:996958] }
[codex:996958] 
[codex:996958] def disasm(start,end):
[codex:996958]     i=start
[codex:996958]     while i<end:
[codex:996958]         op=code[i]
[codex:996958]         name=opcodes.get(op, f'UNKNOWN_{op:02x}')
[codex:996958]         if 0x60<=op<=0x7f:
[codex:996958]             n=op-0x5f
[codex:996958]             data=code[i+1:i+1+n]
[codex:996958]             print(f'{i:04x}: {name} 0x{data.hex()}')
[codex:996958]             i+=1+n
[codex:996958]         else:
[codex:996958]             print(f'{i:04x}: {name}')
[codex:996958]             i+=1
[codex:996958] 
[codex:996958] print('--- disasm 0xb95-0xc10 ---')
[codex:996958] disasm(0xb95,0xc10)
[codex:996958] PY" in /tmp/codex-multi-s02w5tz7 succeeded in 24ms:
[codex:996958] --- disasm 0xb95-0xc10 ---
[codex:996958] 0b95: JUMPDEST
[codex:996958] 0b96: PUSH1 0x00
[codex:996958] 0b98: DUP1
[codex:996958] 0b99: PUSH1 0x00
[codex:996958] 0b9b: DUP1
[codex:996958] 0b9c: PUSH1 0x80
[codex:996958] 0b9e: DUP6
[codex:996958] 0b9f: DUP8
[codex:996958] 0ba0: SUB
[codex:996958] 0ba1: SLT
[codex:996958] 0ba2: ISZERO
[codex:996958] 0ba3: PUSH2 0x0bab
[codex:996958] 0ba6: JUMPI
[codex:996958] 0ba7: PUSH1 0x00
[codex:996958] 0ba9: DUP1
[codex:996958] 0baa: REVERT
[codex:996958] 0bab: JUMPDEST
[codex:996958] 0bac: DUP5
[codex:996958] 0bad: CALLDATALOAD
[codex:996958] 
[codex:996958] thinking
[codex:996958] **Continuing to review swap order**
[codex:996958] exec
[codex:996958] /bin/bash -lc "python - <<'PY'
[codex:996958] import re
[codex:996958] hexdata=open('BYTECODE_BUNDLE.txt').read()
[codex:996958] hexstr=re.search(r'0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:996958] code=bytes.fromhex(hexstr)
[codex:996958] 
[codex:996958] opcodes={
[codex:996958]     0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:996958]     0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:996958]     0x20:'SHA3',
[codex:996958]     0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:996958]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:996958]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:996958]     0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:996958]     0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:996958]     0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:996958]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:996958]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:996958] }
[codex:996958] 
[codex:996958] def disasm(start,end):
[codex:996958]     i=start
[codex:996958]     while i<end:
[codex:996958]         op=code[i]
[codex:996958]         name=opcodes.get(op, f'UNKNOWN_{op:02x}')
[codex:996958]         if 0x60<=op<=0x7f:
[codex:996958]             n=op-0x5f
[codex:996958]             data=code[i+1:i+1+n]
[codex:996958]             print(f'{i:04x}: {name} 0x{data.hex()}')
[codex:996958]             i+=1+n
[codex:996958]         else:
[codex:996958]             print(f'{i:04x}: {name}')
[codex:996958]             i+=1
[codex:996958] 
[codex:996958] print('--- disasm 0xc10-0xc40 ---')
[codex:996958] disasm(0xc10,0xc40)
[codex:996958] PY" in /tmp/codex-multi-s02w5tz7 succeeded in 23ms:
[codex:996958] --- disasm 0xc10-0xc40 ---
[codex:996958] 0c10: POP
[codex:996958] 0c11: POP
[codex:996958] 0c12: JUMP
[codex:996958] 0c13: JUMPDEST
[codex:996958] 0c14: PUSH1 0x00
[codex:996958] 0c16: PUSH1 0x20
[codex:996958] 0c18: DUP3
[codex:996958] 0c19: DUP5
[codex:996958] 0c1a: SUB
[codex:996958] 0c1b: SLT
[codex:996958] 0c1c: ISZERO
[codex:996958] 0c1d: PUSH2 0x0c25
[codex:996958] 0c20: JUMPI
[codex:996958] 0c21: PUSH1 0x00
[codex:996958] 0c23: DUP1
[codex:996958] 0c24: REVERT
[codex:996958] 0c25: JUMPDEST
[codex:996958] 0c26: DUP2
[codex:996958] 0c27: CALLDATALOAD
[codex:996958] 
[codex:996958] thinking
[codex:996958] **Analyzing bytecode and exploit potential**
[codex:996958] 
[codex:996958] I’m carefully tracing the bytecode, focusing on stack order and parameter usage to understand how input parameters map and how approval checks are implemented. By examining token transfer calls, array pointer handling, and owner-only restrictions, I deduce no obvious exploit path exists for unauthorized value extraction. I’m preparing a JSON report indicating no findings, based on the absence of unchecked delegatecalls, selfdestructs, or approval bypasses.
[codex:996958] codex
[codex:996958] {"no_findings":true,"summary":"No concrete, exploitable value-extraction paths found in the provided runtime bytecode; value-transfer functions (ERC20 transfers and ETH CALLs) are gated by an approved-sender mapping, and whitelist management is restricted by an owner check.","findings":[]}
[codex:996958] tokens used
[codex:996958] 56,687
[codex:996958] {"no_findings":true,"summary":"No concrete, exploitable value-extraction paths found in the provided runtime bytecode; value-transfer functions (ERC20 transfers and ETH CALLs) are gated by an approved-sender mapping, and whitelist management is restricted by an owner check.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-04T00:10:56.613852+00:00",
        "returncode": 0
    },
    "summary": "No concrete, exploitable value-extraction paths found in the provided runtime bytecode; value-transfer functions (ERC20 transfers and ETH CALLs) are gated by an approved-sender mapping, and whitelist management is restricted by an owner check.",
    "raw_final": {
        "summary": "No concrete, exploitable value-extraction paths found in the provided runtime bytecode; value-transfer functions (ERC20 transfers and ETH CALLs) are gated by an approved-sender mapping, and whitelist management is restricted by an owner check.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
0
Total opcodes
2106
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0084
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x8da5cb5b
00000019: GT
0000001a: PUSH2 0x0056
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0x8da5cb5b
00000024: EQ
00000025: PUSH2 0x0102
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0x982fb9d8
0000002f: EQ
00000030: PUSH2 0x012f
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xc81e25ab
0000003a: EQ
0000003b: PUSH2 0x016f
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xcdeb1485
00000045: EQ
00000046: PUSH2 0x019f
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf2fde38b
00000050: EQ
00000051: PUSH2 0x01bf
00000054: JUMPI
00000055: STOP
00000056: JUMPDEST
00000057: DUP1
00000058: PUSH4 0x46b0813b
0000005d: EQ
0000005e: PUSH2 0x008d
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0x6c04204e
00000068: EQ
00000069: PUSH2 0x00ad
0000006c: JUMPI
0000006d: DUP1
0000006e: PUSH4 0x715018a6
00000073: EQ
00000074: PUSH2 0x00cd
00000077: JUMPI
00000078: DUP1
00000079: PUSH4 0x7670d1d8
0000007e: EQ
0000007f: PUSH2 0x00e2
00000082: JUMPI
00000083: STOP
00000084: JUMPDEST
00000085: CALLDATASIZE
00000086: PUSH2 0x008b
00000089: JUMPI
0000008a: STOP
0000008b: JUMPDEST
0000008c: STOP
0000008d: JUMPDEST
0000008e: CALLVALUE
0000008f: DUP1
00000090: ISZERO
00000091: PUSH2 0x0099
00000094: JUMPI
00000095: PUSH1 0x00
00000097: DUP1
00000098: REVERT
00000099: JUMPDEST
0000009a: POP
0000009b: PUSH2 0x008b
0000009e: PUSH2 0x00a8
000000a1: CALLDATASIZE
000000a2: PUSH1 0x04
000000a4: PUSH2 0x0afd
000000a7: JUMP
000000a8: JUMPDEST
000000a9: PUSH2 0x01df
000000ac: JUMP
000000ad: JUMPDEST
000000ae: CALLVALUE
000000af: DUP1
000000b0: ISZERO
000000b1: PUSH2 0x00b9
000000b4: JUMPI
000000b5: PUSH1 0x00
000000b7: DUP1
000000b8: REVERT
000000b9: JUMPDEST
000000ba: POP
000000bb: PUSH2 0x008b
000000be: PUSH2 0x00c8
000000c1: CALLDATASIZE
000000c2: PUSH1 0x04
000000c4: PUSH2 0x0b95
000000c7: JUMP
000000c8: JUMPDEST
000000c9: PUSH2 0x02a8
000000cc: JUMP
000000cd: JUMPDEST
000000ce: CALLVALUE
000000cf: DUP1
000000d0: ISZERO
000000d1: PUSH2 0x00d9
000000d4: JUMPI
000000d5: PUSH1 0x00
000000d7: DUP1
000000d8: REVERT
000000d9: JUMPDEST
000000da: POP
000000db: PUSH2 0x008b
000000de: PUSH2 0x0593
000000e1: JUMP
000000e2: JUMPDEST
000000e3: CALLVALUE
000000e4: DUP1
000000e5: ISZERO
000000e6: PUSH2 0x00ee
000000e9: JUMPI
000000ea: PUSH1 0x00
000000ec: DUP1
000000ed: REVERT
000000ee: JUMPDEST
000000ef: POP
000000f0: PUSH2 0x008b
000000f3: PUSH2 0x00fd
000000f6: CALLDATASIZE
000000f7: PUSH1 0x04
000000f9: PUSH2 0x0afd
000000fc: JUMP
000000fd: JUMPDEST
000000fe: PUSH2 0x05a7
00000101: JUMP
00000102: JUMPDEST
00000103: CALLVALUE
00000104: DUP1
00000105: ISZERO
00000106: PUSH2 0x010e
00000109: JUMPI
0000010a: PUSH1 0x00
0000010c: DUP1
0000010d: REVERT
0000010e: JUMPDEST
0000010f: POP
00000110: PUSH1 0x00
00000112: SLOAD
00000113: PUSH1 0x40
00000115: MLOAD
00000116: PUSH1 0x01
00000118: PUSH1 0x01
0000011a: PUSH1 0xa0
0000011c: SHL
0000011d: SUB
0000011e: SWAP1
0000011f: SWAP2
00000120: AND
00000121: DUP2
00000122: MSTORE
00000123: PUSH1 0x20
00000125: ADD
00000126: JUMPDEST
00000127: PUSH1 0x40
00000129: MLOAD
0000012a: DUP1
0000012b: SWAP2
0000012c: SUB
0000012d: SWAP1
0000012e: RETURN
0000012f: JUMPDEST
00000130: CALLVALUE
00000131: DUP1
00000132: ISZERO
00000133: PUSH2 0x013b
00000136: JUMPI
00000137: PUSH1 0x00
00000139: DUP1
0000013a: REVERT
0000013b: JUMPDEST
0000013c: POP
0000013d: PUSH2 0x015f
00000140: PUSH2 0x014a
00000143: CALLDATASIZE
00000144: PUSH1 0x04
00000146: PUSH2 0x0c13
00000149: JUMP
0000014a: JUMPDEST
0000014b: PUSH1 0x01
0000014d: PUSH1 0x20
0000014f: MSTORE
00000150: PUSH1 0x00
00000152: SWAP1
00000153: DUP2
00000154: MSTORE
00000155: PUSH1 0x40
00000157: SWAP1
00000158: KECCAK256
00000159: SLOAD
0000015a: PUSH1 0xff
0000015c: AND
0000015d: DUP2
0000015e: JUMP
0000015f: JUMPDEST
00000160: PUSH1 0x40
00000162: MLOAD
00000163: SWAP1
00000164: ISZERO
00000165: ISZERO
00000166: DUP2
00000167: MSTORE
00000168: PUSH1 0x20
0000016a: ADD
0000016b: PUSH2 0x0126
0000016e: JUMP
0000016f: JUMPDEST
00000170: CALLVALUE
00000171: DUP1
00000172: ISZERO
00000173: PUSH2 0x017b
00000176: JUMPI
00000177: PUSH1 0x00
00000179: DUP1
0000017a: REVERT
0000017b: JUMPDEST
0000017c: POP
0000017d: PUSH2 0x015f
00000180: PUSH2 0x018a
00000183: CALLDATASIZE
00000184: PUSH1 0x04
00000186: PUSH2 0x0c37
00000189: JUMP
0000018a: JUMPDEST
0000018b: PUSH1 0x02
0000018d: PUSH1 0x20
0000018f: MSTORE
00000190: PUSH1 0x00
00000192: SWAP1
00000193: DUP2
00000194: MSTORE
00000195: PUSH1 0x40
00000197: SWAP1
00000198: KECCAK256
00000199: SLOAD
0000019a: PUSH1 0xff
0000019c: AND
0000019d: DUP2
0000019e: JUMP
0000019f: JUMPDEST
000001a0: CALLVALUE
000001a1: DUP1
000001a2: ISZERO
000001a3: PUSH2 0x01ab
000001a6: JUMPI
000001a7: PUSH1 0x00
000001a9: DUP1
000001aa: REVERT
000001ab: JUMPDEST
000001ac: POP
000001ad: PUSH2 0x008b
000001b0: PUSH2 0x01ba
000001b3: CALLDATASIZE
000001b4: PUSH1 0x04
000001b6: PUSH2 0x0c50
000001b9: JUMP
000001ba: JUMPDEST
000001bb: PUSH2 0x065f
000001be: JUMP
000001bf: JUMPDEST
000001c0: CALLVALUE
000001c1: DUP1
000001c2: ISZERO
000001c3: PUSH2 0x01cb
000001c6: JUMPI
000001c7: PUSH1 0x00
000001c9: DUP1
000001ca: REVERT
000001cb: JUMPDEST
000001cc: POP
000001cd: PUSH2 0x008b
000001d0: PUSH2 0x01da
000001d3: CALLDATASIZE
000001d4: PUSH1 0x04
000001d6: PUSH2 0x0c13
000001d9: JUMP
000001da: JUMPDEST
000001db: PUSH2 0x08e6
000001de: JUMP
000001df: JUMPDEST
000001e0: PUSH2 0x01e7
000001e3: PUSH2 0x095f
000001e6: JUMP
000001e7: JUMPDEST
000001e8: PUSH1 0x00
000001ea: DUP2
000001eb: MLOAD
000001ec: GT
000001ed: PUSH2 0x023d
000001f0: JUMPI
000001f1: PUSH1 0x40
000001f3: MLOAD
000001f4: PUSH3 0x461bcd
000001f8: PUSH1 0xe5
000001fa: SHL
000001fb: DUP2
000001fc: MSTORE
000001fd: PUSH1 0x20
000001ff: PUSH1 0x04
00000201: DUP3
00000202: ADD
00000203: MSTORE
00000204: PUSH1 0x1f
00000206: PUSH1 0x24
00000208: DUP3
00000209: ADD
0000020a: MSTORE
0000020b: PUSH32 0x506c656173652070617373206174206c65617374206f6e652073656e64657200
0000022c: PUSH1 0x44
0000022e: DUP3
0000022f: ADD
00000230: MSTORE
00000231: PUSH1 0x64
00000233: ADD
00000234: JUMPDEST
00000235: PUSH1 0x40
00000237: MLOAD
00000238: DUP1
00000239: SWAP2
0000023a: SUB
0000023b: SWAP1
0000023c: REVERT
0000023d: JUMPDEST
0000023e: PUSH1 0x00
00000240: JUMPDEST
00000241: DUP2
00000242: MLOAD
00000243: DUP2
00000244: LT
00000245: ISZERO
00000246: PUSH2 0x02a4
00000249: JUMPI
0000024a: PUSH1 0x01
0000024c: DUP1
0000024d: PUSH1 0x00
0000024f: DUP5
00000250: DUP5
00000251: DUP2
00000252: MLOAD
00000253: DUP2
00000254: LT
00000255: PUSH2 0x0260
00000258: JUMPI
00000259: PUSH2 0x0260
0000025c: PUSH2 0x0cbd
0000025f: JUMP
00000260: JUMPDEST
00000261: PUSH1 0x20
00000263: SWAP1
00000264: DUP2
00000265: MUL
00000266: SWAP2
00000267: SWAP1
00000268: SWAP2
00000269: ADD
0000026a: DUP2
0000026b: ADD
0000026c: MLOAD
0000026d: PUSH1 0x01
0000026f: PUSH1 0x01
00000271: PUSH1 0xa0
00000273: SHL
00000274: SUB
00000275: AND
00000276: DUP3
00000277: MSTORE
00000278: DUP2
00000279: ADD
0000027a: SWAP2
0000027b: SWAP1
0000027c: SWAP2
0000027d: MSTORE
0000027e: PUSH1 0x40
00000280: ADD
00000281: PUSH1 0x00
00000283: KECCAK256
00000284: DUP1
00000285: SLOAD
00000286: PUSH1 0xff
00000288: NOT
00000289: AND
0000028a: SWAP2
0000028b: ISZERO
0000028c: ISZERO
0000028d: SWAP2
0000028e: SWAP1
0000028f: SWAP2
00000290: OR
00000291: SWAP1
00000292: SSTORE
00000293: DUP1
00000294: PUSH2 0x029c
00000297: DUP2
00000298: PUSH2 0x0cd3
0000029b: JUMP
0000029c: JUMPDEST
0000029d: SWAP2
0000029e: POP
0000029f: POP
000002a0: PUSH2 0x0240
000002a3: JUMP
000002a4: JUMPDEST
000002a5: POP
000002a6: POP
000002a7: JUMP
000002a8: JUMPDEST
000002a9: CALLER
000002aa: PUSH1 0x00
000002ac: SWAP1
000002ad: DUP2
000002ae: MSTORE
000002af: PUSH1 0x01
000002b1: PUSH1 0x20
000002b3: MSTORE
000002b4: PUSH1 0x40
000002b6: SWAP1
000002b7: KECCAK256
000002b8: SLOAD
000002b9: PUSH1 0xff
000002bb: AND
000002bc: PUSH2 0x0307
000002bf: JUMPI
000002c0: PUSH1 0x40
000002c2: MLOAD
000002c3: PUSH3 0x461bcd
000002c7: PUSH1 0xe5
000002c9: SHL
000002ca: DUP2
000002cb: MSTORE
000002cc: PUSH1 0x20
000002ce: PUSH1 0x04
000002d0: DUP3
000002d1: ADD
000002d2: MSTORE
000002d3: PUSH1 0x1d
000002d5: PUSH1 0x24
000002d7: DUP3
000002d8: ADD
000002d9: MSTORE
000002da: PUSH32 0x43616c6c6572206973206e6f7420617070726f7665642073656e646572000000
000002fb: PUSH1 0x44
000002fd: DUP3
000002fe: ADD
000002ff: MSTORE
00000300: PUSH1 0x64
00000302: ADD
00000303: PUSH2 0x0234
00000306: JUMP
00000307: JUMPDEST
00000308: PUSH1 0x00
0000030a: DUP2
0000030b: DUP2
0000030c: MSTORE
0000030d: PUSH1 0x02
0000030f: PUSH1 0x20
00000311: MSTORE
00000312: PUSH1 0x40
00000314: SWAP1
00000315: KECCAK256
00000316: SLOAD
00000317: PUSH1 0xff
00000319: AND
0000031a: ISZERO
0000031b: PUSH2 0x035f
0000031e: JUMPI
0000031f: PUSH1 0x40
00000321: MLOAD
00000322: PUSH3 0x461bcd
00000326: PUSH1 0xe5
00000328: SHL
00000329: DUP2
0000032a: MSTORE
0000032b: PUSH1 0x20
0000032d: PUSH1 0x04
0000032f: DUP3
00000330: ADD
00000331: MSTORE
00000332: PUSH1 0x16
00000334: PUSH1 0x24
00000336: DUP3
00000337: ADD
00000338: MSTORE
00000339: PUSH22 0x10985d18da081dd85cc8185b1c9958591e481cd95b9d
00000350: PUSH1 0x52
00000352: SHL
00000353: PUSH1 0x44
00000355: DUP3
00000356: ADD
00000357: MSTORE
00000358: PUSH1 0x64
0000035a: ADD
0000035b: PUSH2 0x0234
0000035e: JUMP
0000035f: JUMPDEST
00000360: DUP2
00000361: MLOAD
00000362: DUP4
00000363: MLOAD
00000364: EQ
00000365: PUSH2 0x0380
00000368: JUMPI
00000369: PUSH1 0x40
0000036b: MLOAD
0000036c: PUSH3 0x461bcd
00000370: PUSH1 0xe5
00000372: SHL
00000373: DUP2
00000374: MSTORE
00000375: PUSH1 0x04
00000377: ADD
00000378: PUSH2 0x0234
0000037b: SWAP1
0000037c: PUSH2 0x0cfa
0000037f: JUMP
00000380: JUMPDEST
00000381: PUSH1 0x00
00000383: JUMPDEST
00000384: DUP4
00000385: MLOAD
00000386: DUP2
00000387: LT
00000388: ISZERO
00000389: PUSH2 0x0539
0000038c: JUMPI
0000038d: PUSH1 0x00
0000038f: DUP1
00000390: DUP7
00000391: PUSH1 0x01
00000393: PUSH1 0x01
00000395: PUSH1 0xa0
00000397: SHL
00000398: SUB
00000399: AND
0000039a: PUSH4 0xa9059cbb
0000039f: PUSH1 0xe0
000003a1: SHL
000003a2: DUP8
000003a3: DUP6
000003a4: DUP2
000003a5: MLOAD
000003a6: DUP2
000003a7: LT
000003a8: PUSH2 0x03b3
000003ab: JUMPI
000003ac: PUSH2 0x03b3
000003af: PUSH2 0x0cbd
000003b2: JUMP
000003b3: JUMPDEST
000003b4: PUSH1 0x20
000003b6: MUL
000003b7: PUSH1 0x20
000003b9: ADD
000003ba: ADD
000003bb: MLOAD
000003bc: DUP8
000003bd: DUP7
000003be: DUP2
000003bf: MLOAD
000003c0: DUP2
000003c1: LT
000003c2: PUSH2 0x03cd
000003c5: JUMPI
000003c6: PUSH2 0x03cd
000003c9: PUSH2 0x0cbd
000003cc: JUMP
000003cd: JUMPDEST
000003ce: PUSH1 0x20
000003d0: SWAP1
000003d1: DUP2
000003d2: MUL
000003d3: SWAP2
000003d4: SWAP1
000003d5: SWAP2
000003d6: ADD
000003d7: ADD
000003d8: MLOAD
000003d9: PUSH1 0x40
000003db: MLOAD
000003dc: PUSH1 0x01
000003de: PUSH1 0x01
000003e0: PUSH1 0xa0
000003e2: SHL
000003e3: SUB
000003e4: SWAP1
000003e5: SWAP3
000003e6: AND
000003e7: PUSH1 0x24
000003e9: DUP4
000003ea: ADD
000003eb: MSTORE
000003ec: PUSH1 0x44
000003ee: DUP3
000003ef: ADD
000003f0: MSTORE
000003f1: PUSH1 0x64
000003f3: ADD
000003f4: PUSH1 0x40
000003f6: DUP1
000003f7: MLOAD
000003f8: PUSH1 0x1f
000003fa: NOT
000003fb: DUP2
000003fc: DUP5
000003fd: SUB
000003fe: ADD
000003ff: DUP2
00000400: MSTORE
00000401: SWAP2
00000402: DUP2
00000403: MSTORE
00000404: PUSH1 0x20
00000406: DUP3
00000407: ADD
00000408: DUP1
00000409: MLOAD
0000040a: PUSH1 0x01
0000040c: PUSH1 0x01
0000040e: PUSH1 0xe0
00000410: SHL
00000411: SUB
00000412: AND
00000413: PUSH1 0x01
00000415: PUSH1 0x01
00000417: PUSH1 0xe0
00000419: SHL
0000041a: SUB
0000041b: NOT
0000041c: SWAP1
0000041d: SWAP5
0000041e: AND
0000041f: SWAP4
00000420: SWAP1
00000421: SWAP4
00000422: OR
00000423: SWAP1
00000424: SWAP3
00000425: MSTORE
00000426: SWAP1
00000427: MLOAD
00000428: PUSH2 0x0431
0000042b: SWAP2
0000042c: SWAP1
0000042d: PUSH2 0x0d41
00000430: JUMP
00000431: JUMPDEST
00000432: PUSH1 0x00
00000434: PUSH1 0x40
00000436: MLOAD
00000437: DUP1
00000438: DUP4
00000439: SUB
0000043a: DUP2
0000043b: PUSH1 0x00
0000043d: DUP7
0000043e: GAS
0000043f: CALL
00000440: SWAP2
00000441: POP
00000442: POP
00000443: RETURNDATASIZE
00000444: DUP1
00000445: PUSH1 0x00
00000447: DUP2
00000448: EQ
00000449: PUSH2 0x046e
0000044c: JUMPI
0000044d: PUSH1 0x40
0000044f: MLOAD
00000450: SWAP2
00000451: POP
00000452: PUSH1 0x1f
00000454: NOT
00000455: PUSH1 0x3f
00000457: RETURNDATASIZE
00000458: ADD
00000459: AND
0000045a: DUP3
0000045b: ADD
0000045c: PUSH1 0x40
0000045e: MSTORE
0000045f: RETURNDATASIZE
00000460: DUP3
00000461: MSTORE
00000462: RETURNDATASIZE
00000463: PUSH1 0x00
00000465: PUSH1 0x20
00000467: DUP5
00000468: ADD
00000469: RETURNDATACOPY
0000046a: PUSH2 0x0473
0000046d: JUMP
0000046e: JUMPDEST
0000046f: PUSH1 0x60
00000471: SWAP2
00000472: POP
00000473: JUMPDEST
00000474: POP
00000475: SWAP2
00000476: POP
00000477: SWAP2
00000478: POP
00000479: DUP2
0000047a: PUSH2 0x04bd
0000047d: JUMPI
0000047e: PUSH1 0x40
00000480: MLOAD
00000481: PUSH3 0x461bcd
00000485: PUSH1 0xe5
00000487: SHL
00000488: DUP2
00000489: MSTORE
0000048a: PUSH1 0x20
0000048c: PUSH1 0x04
0000048e: DUP3
0000048f: ADD
00000490: MSTORE
00000491: PUSH1 0x15
00000493: PUSH1 0x24
00000495: DUP3
00000496: ADD
00000497: MSTORE
00000498: PUSH21 0x131bddcb5b195d995b0818d85b1b0819985a5b1959
000004ae: PUSH1 0x5a
000004b0: SHL
000004b1: PUSH1 0x44
000004b3: DUP3
000004b4: ADD
000004b5: MSTORE
000004b6: PUSH1 0x64
000004b8: ADD
000004b9: PUSH2 0x0234
000004bc: JUMP
000004bd: JUMPDEST
000004be: DUP1
000004bf: MLOAD
000004c0: ISZERO
000004c1: PUSH2 0x0524
000004c4: JUMPI
000004c5: DUP1
000004c6: DUP1
000004c7: PUSH1 0x20
000004c9: ADD
000004ca: SWAP1
000004cb: MLOAD
000004cc: DUP2
000004cd: ADD
000004ce: SWAP1
000004cf: PUSH2 0x04d8
000004d2: SWAP2
000004d3: SWAP1
000004d4: PUSH2 0x0d70
000004d7: JUMP
000004d8: JUMPDEST
000004d9: PUSH2 0x0524
000004dc: JUMPI
000004dd: PUSH1 0x40
000004df: MLOAD
000004e0: PUSH3 0x461bcd
000004e4: PUSH1 0xe5
000004e6: SHL
000004e7: DUP2
000004e8: MSTORE
000004e9: PUSH1 0x20
000004eb: PUSH1 0x04
000004ed: DUP3
000004ee: ADD
000004ef: MSTORE
000004f0: PUSH1 0x1f
000004f2: PUSH1 0x24
000004f4: DUP3
000004f5: ADD
000004f6: MSTORE
000004f7: PUSH32 0x4552433230206f7065726174696f6e20646964206e6f74207375636365656400
00000518: PUSH1 0x44
0000051a: DUP3
0000051b: ADD
0000051c: MSTORE
0000051d: PUSH1 0x64
0000051f: ADD
00000520: PUSH2 0x0234
00000523: JUMP
00000524: JUMPDEST
00000525: POP
00000526: POP
00000527: DUP1
00000528: DUP1
00000529: PUSH2 0x0531
0000052c: SWAP1
0000052d: PUSH2 0x0cd3
00000530: JUMP
00000531: JUMPDEST
00000532: SWAP2
00000533: POP
00000534: POP
00000535: PUSH2 0x0383
00000538: JUMP
00000539: JUMPDEST
0000053a: POP
0000053b: PUSH1 0x00
0000053d: DUP2
0000053e: DUP2
0000053f: MSTORE
00000540: PUSH1 0x02
00000542: PUSH1 0x20
00000544: MSTORE
00000545: PUSH1 0x40
00000547: SWAP1
00000548: DUP2
00000549: SWAP1
0000054a: KECCAK256
0000054b: DUP1
0000054c: SLOAD
0000054d: PUSH1 0xff
0000054f: NOT
00000550: AND
00000551: PUSH1 0x01
00000553: OR
00000554: SWAP1
00000555: SSTORE
00000556: MLOAD
00000557: PUSH32 0xf973a404f52ae16dd11a5d146523df4aacafc60aba31263f058c8d866f612795
00000578: SWAP1
00000579: PUSH2 0x0585
0000057c: SWAP1
0000057d: DUP4
0000057e: DUP2
0000057f: MSTORE
00000580: PUSH1 0x20
00000582: ADD
00000583: SWAP1
00000584: JUMP
00000585: JUMPDEST
00000586: PUSH1 0x40
00000588: MLOAD
00000589: DUP1
0000058a: SWAP2
0000058b: SUB
0000058c: SWAP1
0000058d: LOG1
0000058e: POP
0000058f: POP
00000590: POP
00000591: POP
00000592: JUMP
00000593: JUMPDEST
00000594: PUSH2 0x059b
00000597: PUSH2 0x095f
0000059a: JUMP
0000059b: JUMPDEST
0000059c: PUSH2 0x05a5
0000059f: PUSH1 0x00
000005a1: PUSH2 0x09b9
000005a4: JUMP
000005a5: JUMPDEST
000005a6: JUMP
000005a7: JUMPDEST
000005a8: PUSH2 0x05af
000005ab: PUSH2 0x095f
000005ae: JUMP
000005af: JUMPDEST
000005b0: PUSH1 0x00
000005b2: DUP2
000005b3: MLOAD
000005b4: GT
000005b5: PUSH2 0x0600
000005b8: JUMPI
000005b9: PUSH1 0x40
000005bb: MLOAD
000005bc: PUSH3 0x461bcd
000005c0: PUSH1 0xe5
000005c2: SHL
000005c3: DUP2
000005c4: MSTORE
000005c5: PUSH1 0x20
000005c7: PUSH1 0x04
000005c9: DUP3
000005ca: ADD
000005cb: MSTORE
000005cc: PUSH1 0x1f
000005ce: PUSH1 0x24
000005d0: DUP3
000005d1: ADD
000005d2: MSTORE
000005d3: PUSH32 0x506c656173652070617373206174206c65617374206f6e652073656e64657200
000005f4: PUSH1 0x44
000005f6: DUP3
000005f7: ADD
000005f8: MSTORE
000005f9: PUSH1 0x64
000005fb: ADD
000005fc: PUSH2 0x0234
000005ff: JUMP
00000600: JUMPDEST
00000601: PUSH1 0x00
00000603: JUMPDEST
00000604: DUP2
00000605: MLOAD
00000606: DUP2
00000607: LT
00000608: ISZERO
00000609: PUSH2 0x02a4
0000060c: JUMPI
0000060d: PUSH1 0x01
0000060f: PUSH1 0x00
00000611: DUP4
00000612: DUP4
00000613: DUP2
00000614: MLOAD
00000615: DUP2
00000616: LT
00000617: PUSH2 0x0622
0000061a: JUMPI
0000061b: PUSH2 0x0622
0000061e: PUSH2 0x0cbd
00000621: JUMP
00000622: JUMPDEST
00000623: PUSH1 0x20
00000625: SWAP1
00000626: DUP2
00000627: MUL
00000628: SWAP2
00000629: SWAP1
0000062a: SWAP2
0000062b: ADD
0000062c: DUP2
0000062d: ADD
0000062e: MLOAD
0000062f: PUSH1 0x01
00000631: PUSH1 0x01
00000633: PUSH1 0xa0
00000635: SHL
00000636: SUB
00000637: AND
00000638: DUP3
00000639: MSTORE
0000063a: DUP2
0000063b: ADD
0000063c: SWAP2
0000063d: SWAP1
0000063e: SWAP2
0000063f: MSTORE
00000640: PUSH1 0x40
00000642: ADD
00000643: PUSH1 0x00
00000645: KECCAK256
00000646: DUP1
00000647: SLOAD
00000648: PUSH1 0xff
0000064a: NOT
0000064b: AND
0000064c: SWAP1
0000064d: SSTORE
0000064e: DUP1
0000064f: PUSH2 0x0657
00000652: DUP2
00000653: PUSH2 0x0cd3
00000656: JUMP
00000657: JUMPDEST
00000658: SWAP2
00000659: POP
0000065a: POP
0000065b: PUSH2 0x0603
0000065e: JUMP
0000065f: JUMPDEST
00000660: CALLER
00000661: PUSH1 0x00
00000663: SWAP1
00000664: DUP2
00000665: MSTORE
00000666: PUSH1 0x01
00000668: PUSH1 0x20
0000066a: MSTORE
0000066b: PUSH1 0x40
0000066d: SWAP1
0000066e: KECCAK256
0000066f: SLOAD
00000670: PUSH1 0xff
00000672: AND
00000673: PUSH2 0x06be
00000676: JUMPI
00000677: PUSH1 0x40
00000679: MLOAD
0000067a: PUSH3 0x461bcd
0000067e: PUSH1 0xe5
00000680: SHL
00000681: DUP2
00000682: MSTORE
00000683: PUSH1 0x20
00000685: PUSH1 0x04
00000687: DUP3
00000688: ADD
00000689: MSTORE
0000068a: PUSH1 0x1d
0000068c: PUSH1 0x24
0000068e: DUP3
0000068f: ADD
00000690: MSTORE
00000691: PUSH32 0x43616c6c6572206973206e6f7420617070726f7665642073656e646572000000
000006b2: PUSH1 0x44
000006b4: DUP3
000006b5: ADD
000006b6: MSTORE
000006b7: PUSH1 0x64
000006b9: ADD
000006ba: PUSH2 0x0234
000006bd: JUMP
000006be: JUMPDEST
000006bf: PUSH1 0x00
000006c1: DUP2
000006c2: DUP2
000006c3: MSTORE
000006c4: PUSH1 0x02
000006c6: PUSH1 0x20
000006c8: MSTORE
000006c9: PUSH1 0x40
000006cb: SWAP1
000006cc: KECCAK256
000006cd: SLOAD
000006ce: PUSH1 0xff
000006d0: AND
000006d1: ISZERO
000006d2: PUSH2 0x0712
000006d5: JUMPI
000006d6: PUSH1 0x40
000006d8: MLOAD
000006d9: PUSH3 0x461bcd
000006dd: PUSH1 0xe5
000006df: SHL
000006e0: DUP2
000006e1: MSTORE
000006e2: PUSH1 0x20
000006e4: PUSH1 0x04
000006e6: DUP3
000006e7: ADD
000006e8: MSTORE
000006e9: PUSH1 0x12
000006eb: PUSH1 0x24
000006ed: DUP3
000006ee: ADD
000006ef: MSTORE
000006f0: PUSH18 0x10985d18da08185b1c9958591e481d5cd959
00000703: PUSH1 0x72
00000705: SHL
00000706: PUSH1 0x44
00000708: DUP3
00000709: ADD
0000070a: MSTORE
0000070b: PUSH1 0x64
0000070d: ADD
0000070e: PUSH2 0x0234
00000711: JUMP
00000712: JUMPDEST
00000713: PUSH1 0x00
00000715: DUP4
00000716: MLOAD
00000717: GT
00000718: PUSH2 0x0778
0000071b: JUMPI
0000071c: PUSH1 0x40
0000071e: MLOAD
0000071f: PUSH3 0x461bcd
00000723: PUSH1 0xe5
00000725: SHL
00000726: DUP2
00000727: MSTORE
00000728: PUSH1 0x20
0000072a: PUSH1 0x04
0000072c: DUP3
0000072d: ADD
0000072e: MSTORE
0000072f: PUSH1 0x2c
00000731: PUSH1 0x24
00000733: DUP3
00000734: ADD
00000735: MSTORE
00000736: PUSH32 0x506c656173652070617373206174206c65617374206f6e652064657374696e61
00000757: PUSH1 0x44
00000759: DUP3
0000075a: ADD
0000075b: MSTORE
0000075c: PUSH12 0x74696f6e2061646472657373
00000769: PUSH1 0xa0
0000076b: SHL
0000076c: PUSH1 0x64
0000076e: DUP3
0000076f: ADD
00000770: MSTORE
00000771: PUSH1 0x84
00000773: ADD
00000774: PUSH2 0x0234
00000777: JUMP
00000778: JUMPDEST
00000779: DUP2
0000077a: MLOAD
0000077b: DUP4
0000077c: MLOAD
0000077d: EQ
0000077e: PUSH2 0x0799
00000781: JUMPI
00000782: PUSH1 0x40
00000784: MLOAD
00000785: PUSH3 0x461bcd
00000789: PUSH1 0xe5
0000078b: SHL
0000078c: DUP2
0000078d: MSTORE
0000078e: PUSH1 0x04
00000790: ADD
00000791: PUSH2 0x0234
00000794: SWAP1
00000795: PUSH2 0x0cfa
00000798: JUMP
00000799: JUMPDEST
0000079a: PUSH1 0x00
0000079c: JUMPDEST
0000079d: DUP4
0000079e: MLOAD
0000079f: DUP2
000007a0: LT
000007a1: ISZERO
000007a2: PUSH2 0x088d
000007a5: JUMPI
000007a6: PUSH1 0x00
000007a8: DUP5
000007a9: DUP3
000007aa: DUP2
000007ab: MLOAD
000007ac: DUP2
000007ad: LT
000007ae: PUSH2 0x07b9
000007b1: JUMPI
000007b2: PUSH2 0x07b9
000007b5: PUSH2 0x0cbd
000007b8: JUMP
000007b9: JUMPDEST
000007ba: PUSH1 0x20
000007bc: MUL
000007bd: PUSH1 0x20
000007bf: ADD
000007c0: ADD
000007c1: MLOAD
000007c2: PUSH1 0x01
000007c4: PUSH1 0x01
000007c6: PUSH1 0xa0
000007c8: SHL
000007c9: SUB
000007ca: AND
000007cb: DUP5
000007cc: DUP4
000007cd: DUP2
000007ce: MLOAD
000007cf: DUP2
000007d0: LT
000007d1: PUSH2 0x07dc
000007d4: JUMPI
000007d5: PUSH2 0x07dc
000007d8: PUSH2 0x0cbd
000007db: JUMP
000007dc: JUMPDEST
000007dd: PUSH1 0x20
000007df: MUL
000007e0: PUSH1 0x20
000007e2: ADD
000007e3: ADD
000007e4: MLOAD
000007e5: PUSH1 0x40
000007e7: MLOAD
000007e8: PUSH1 0x00
000007ea: PUSH1 0x40
000007ec: MLOAD
000007ed: DUP1
000007ee: DUP4
000007ef: SUB
000007f0: DUP2
000007f1: DUP6
000007f2: DUP8
000007f3: GAS
000007f4: CALL
000007f5: SWAP3
000007f6: POP
000007f7: POP
000007f8: POP
000007f9: RETURNDATASIZE
000007fa: DUP1
000007fb: PUSH1 0x00
000007fd: DUP2
000007fe: EQ
000007ff: PUSH2 0x0824
00000802: JUMPI
00000803: PUSH1 0x40
00000805: MLOAD
00000806: SWAP2
00000807: POP
00000808: PUSH1 0x1f
0000080a: NOT
0000080b: PUSH1 0x3f
0000080d: RETURNDATASIZE
0000080e: ADD
0000080f: AND
00000810: DUP3
00000811: ADD
00000812: PUSH1 0x40
00000814: MSTORE
00000815: RETURNDATASIZE
00000816: DUP3
00000817: MSTORE
00000818: RETURNDATASIZE
00000819: PUSH1 0x00
0000081b: PUSH1 0x20
0000081d: DUP5
0000081e: ADD
0000081f: RETURNDATACOPY
00000820: PUSH2 0x0829
00000823: JUMP
00000824: JUMPDEST
00000825: PUSH1 0x60
00000827: SWAP2
00000828: POP
00000829: JUMPDEST
0000082a: POP
0000082b: POP
0000082c: SWAP1
0000082d: POP
0000082e: DUP1
0000082f: PUSH2 0x087a
00000832: JUMPI
00000833: PUSH1 0x40
00000835: MLOAD
00000836: PUSH3 0x461bcd
0000083a: PUSH1 0xe5
0000083c: SHL
0000083d: DUP2
0000083e: MSTORE
0000083f: PUSH1 0x20
00000841: PUSH1 0x04
00000843: DUP3
00000844: ADD
00000845: MSTORE
00000846: PUSH1 0x1e
00000848: PUSH1 0x24
0000084a: DUP3
0000084b: ADD
0000084c: MSTORE
0000084d: PUSH32 0x5478207761732072656a65637465642062792064657374696e6174696f6e0000
0000086e: PUSH1 0x44
00000870: DUP3
00000871: ADD
00000872: MSTORE
00000873: PUSH1 0x64
00000875: ADD
00000876: PUSH2 0x0234
00000879: JUMP
0000087a: JUMPDEST
0000087b: POP
0000087c: DUP1
0000087d: PUSH2 0x0885
00000880: DUP2
00000881: PUSH2 0x0cd3
00000884: JUMP
00000885: JUMPDEST
00000886: SWAP2
00000887: POP
00000888: POP
00000889: PUSH2 0x079c
0000088c: JUMP
0000088d: JUMPDEST
0000088e: POP
0000088f: PUSH1 0x00
00000891: DUP2
00000892: DUP2
00000893: MSTORE
00000894: PUSH1 0x02
00000896: PUSH1 0x20
00000898: MSTORE
00000899: PUSH1 0x40
0000089b: SWAP1
0000089c: DUP2
0000089d: SWAP1
0000089e: KECCAK256
0000089f: DUP1
000008a0: SLOAD
000008a1: PUSH1 0xff
000008a3: NOT
000008a4: AND
000008a5: PUSH1 0x01
000008a7: OR
000008a8: SWAP1
000008a9: SSTORE
000008aa: MLOAD
000008ab: PUSH32 0xf973a404f52ae16dd11a5d146523df4aacafc60aba31263f058c8d866f612795
000008cc: SWAP1
000008cd: PUSH2 0x08d9
000008d0: SWAP1
000008d1: DUP4
000008d2: DUP2
000008d3: MSTORE
000008d4: PUSH1 0x20
000008d6: ADD
000008d7: SWAP1
000008d8: JUMP
000008d9: JUMPDEST
000008da: PUSH1 0x40
000008dc: MLOAD
000008dd: DUP1
000008de: SWAP2
000008df: SUB
000008e0: SWAP1
000008e1: LOG1
000008e2: POP
000008e3: POP
000008e4: POP
000008e5: JUMP
000008e6: JUMPDEST
000008e7: PUSH2 0x08ee
000008ea: PUSH2 0x095f
000008ed: JUMP
000008ee: JUMPDEST
000008ef: PUSH1 0x01
000008f1: PUSH1 0x01
000008f3: PUSH1 0xa0
000008f5: SHL
000008f6: SUB
000008f7: DUP2
000008f8: AND
000008f9: PUSH2 0x0953
000008fc: JUMPI
000008fd: PUSH1 0x40
000008ff: MLOAD
00000900: PUSH3 0x461bcd
00000904: PUSH1 0xe5
00000906: SHL
00000907: DUP2
00000908: MSTORE
00000909: PUSH1 0x20
0000090b: PUSH1 0x04
0000090d: DUP3
0000090e: ADD
0000090f: MSTORE
00000910: PUSH1 0x26
00000912: PUSH1 0x24
00000914: DUP3
00000915: ADD
00000916: MSTORE
00000917: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061
00000938: PUSH1 0x44
0000093a: DUP3
0000093b: ADD
0000093c: MSTORE
0000093d: PUSH6 0x646472657373
00000944: PUSH1 0xd0
00000946: SHL
00000947: PUSH1 0x64
00000949: DUP3
0000094a: ADD
0000094b: MSTORE
0000094c: PUSH1 0x84
0000094e: ADD
0000094f: PUSH2 0x0234
00000952: JUMP
00000953: JUMPDEST
00000954: PUSH2 0x095c
00000957: DUP2
00000958: PUSH2 0x09b9
0000095b: JUMP
0000095c: JUMPDEST
0000095d: POP
0000095e: JUMP
0000095f: JUMPDEST
00000960: PUSH1 0x00
00000962: SLOAD
00000963: PUSH1 0x01
00000965: PUSH1 0x01
00000967: PUSH1 0xa0
00000969: SHL
0000096a: SUB
0000096b: AND
0000096c: CALLER
0000096d: EQ
0000096e: PUSH2 0x05a5
00000971: JUMPI
00000972: PUSH1 0x40
00000974: MLOAD
00000975: PUSH3 0x461bcd
00000979: PUSH1 0xe5
0000097b: SHL
0000097c: DUP2
0000097d: MSTORE
0000097e: PUSH1 0x20
00000980: PUSH1 0x04
00000982: DUP3
00000983: ADD
00000984: DUP2
00000985: SWAP1
00000986: MSTORE
00000987: PUSH1 0x24
00000989: DUP3
0000098a: ADD
0000098b: MSTORE
0000098c: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
000009ad: PUSH1 0x44
000009af: DUP3
000009b0: ADD
000009b1: MSTORE
000009b2: PUSH1 0x64
000009b4: ADD
000009b5: PUSH2 0x0234
000009b8: JUMP
000009b9: JUMPDEST
000009ba: PUSH1 0x00
000009bc: DUP1
000009bd: SLOAD
000009be: PUSH1 0x01
000009c0: PUSH1 0x01
000009c2: PUSH1 0xa0
000009c4: SHL
000009c5: SUB
000009c6: DUP4
000009c7: DUP2
000009c8: AND
000009c9: PUSH1 0x01
000009cb: PUSH1 0x01
000009cd: PUSH1 0xa0
000009cf: SHL
000009d0: SUB
000009d1: NOT
000009d2: DUP4
000009d3: AND
000009d4: DUP2
000009d5: OR
000009d6: DUP5
000009d7: SSTORE
000009d8: PUSH1 0x40
000009da: MLOAD
000009db: SWAP2
000009dc: SWAP1
000009dd: SWAP3
000009de: AND
000009df: SWAP3
000009e0: DUP4
000009e1: SWAP2
000009e2: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00000a03: SWAP2
00000a04: SWAP1
00000a05: LOG3
00000a06: POP
00000a07: POP
00000a08: JUMP
00000a09: JUMPDEST
00000a0a: PUSH4 0x4e487b71
00000a0f: PUSH1 0xe0
00000a11: SHL
00000a12: PUSH1 0x00
00000a14: MSTORE
00000a15: PUSH1 0x41
00000a17: PUSH1 0x04
00000a19: MSTORE
00000a1a: PUSH1 0x24
00000a1c: PUSH1 0x00
00000a1e: REVERT
00000a1f: JUMPDEST
00000a20: PUSH1 0x40
00000a22: MLOAD
00000a23: PUSH1 0x1f
00000a25: DUP3
00000a26: ADD
00000a27: PUSH1 0x1f
00000a29: NOT
00000a2a: AND
00000a2b: DUP2
00000a2c: ADD
00000a2d: PUSH8 0xffffffffffffffff
00000a36: DUP2
00000a37: GT
00000a38: DUP3
00000a39: DUP3
00000a3a: LT
00000a3b: OR
00000a3c: ISZERO
00000a3d: PUSH2 0x0a48
00000a40: JUMPI
00000a41: PUSH2 0x0a48
00000a44: PUSH2 0x0a09
00000a47: JUMP
00000a48: JUMPDEST
00000a49: PUSH1 0x40
00000a4b: MSTORE
00000a4c: SWAP2
00000a4d: SWAP1
00000a4e: POP
00000a4f: JUMP
00000a50: JUMPDEST
00000a51: PUSH1 0x00
00000a53: PUSH8 0xffffffffffffffff
00000a5c: DUP3
00000a5d: GT
00000a5e: ISZERO
00000a5f: PUSH2 0x0a6a
00000a62: JUMPI
00000a63: PUSH2 0x0a6a
00000a66: PUSH2 0x0a09
00000a69: JUMP
00000a6a: JUMPDEST
00000a6b: POP
00000a6c: PUSH1 0x05
00000a6e: SHL
00000a6f: PUSH1 0x20
00000a71: ADD
00000a72: SWAP1
00000a73: JUMP
00000a74: JUMPDEST
00000a75: PUSH1 0x01
00000a77: PUSH1 0x01
00000a79: PUSH1 0xa0
00000a7b: SHL
00000a7c: SUB
00000a7d: DUP2
00000a7e: AND
00000a7f: DUP2
00000a80: EQ
00000a81: PUSH2 0x095c
00000a84: JUMPI
00000a85: PUSH1 0x00
00000a87: DUP1
00000a88: REVERT
00000a89: JUMPDEST
00000a8a: PUSH1 0x00
00000a8c: DUP3
00000a8d: PUSH1 0x1f
00000a8f: DUP4
00000a90: ADD
00000a91: SLT
00000a92: PUSH2 0x0a9a
00000a95: JUMPI
00000a96: PUSH1 0x00
00000a98: DUP1
00000a99: REVERT
00000a9a: JUMPDEST
00000a9b: DUP2
00000a9c: CALLDATALOAD
00000a9d: PUSH1 0x20
00000a9f: PUSH2 0x0aaf
00000aa2: PUSH2 0x0aaa
00000aa5: DUP4
00000aa6: PUSH2 0x0a50
00000aa9: JUMP
00000aaa: JUMPDEST
00000aab: PUSH2 0x0a1f
00000aae: JUMP
00000aaf: JUMPDEST
00000ab0: DUP3
00000ab1: DUP2
00000ab2: MSTORE
00000ab3: PUSH1 0x05
00000ab5: SWAP3
00000ab6: SWAP1
00000ab7: SWAP3
00000ab8: SHL
00000ab9: DUP5
00000aba: ADD
00000abb: DUP2
00000abc: ADD
00000abd: SWAP2
00000abe: DUP2
00000abf: DUP2
00000ac0: ADD
00000ac1: SWAP1
00000ac2: DUP7
00000ac3: DUP5
00000ac4: GT
00000ac5: ISZERO
00000ac6: PUSH2 0x0ace
00000ac9: JUMPI
00000aca: PUSH1 0x00
00000acc: DUP1
00000acd: REVERT
00000ace: JUMPDEST
00000acf: DUP3
00000ad0: DUP7
00000ad1: ADD
00000ad2: JUMPDEST
00000ad3: DUP5
00000ad4: DUP2
00000ad5: LT
00000ad6: ISZERO
00000ad7: PUSH2 0x0af2
00000ada: JUMPI
00000adb: DUP1
00000adc: CALLDATALOAD
00000add: PUSH2 0x0ae5
00000ae0: DUP2
00000ae1: PUSH2 0x0a74
00000ae4: JUMP
00000ae5: JUMPDEST
00000ae6: DUP4
00000ae7: MSTORE
00000ae8: SWAP2
00000ae9: DUP4
00000aea: ADD
00000aeb: SWAP2
00000aec: DUP4
00000aed: ADD
00000aee: PUSH2 0x0ad2
00000af1: JUMP
00000af2: JUMPDEST
00000af3: POP
00000af4: SWAP7
00000af5: SWAP6
00000af6: POP
00000af7: POP
00000af8: POP
00000af9: POP
00000afa: POP
00000afb: POP
00000afc: JUMP
00000afd: JUMPDEST
00000afe: PUSH1 0x00
00000b00: PUSH1 0x20
00000b02: DUP3
00000b03: DUP5
00000b04: SUB
00000b05: SLT
00000b06: ISZERO
00000b07: PUSH2 0x0b0f
00000b0a: JUMPI
00000b0b: PUSH1 0x00
00000b0d: DUP1
00000b0e: REVERT
00000b0f: JUMPDEST
00000b10: DUP2
00000b11: CALLDATALOAD
00000b12: PUSH8 0xffffffffffffffff
00000b1b: DUP2
00000b1c: GT
00000b1d: ISZERO
00000b1e: PUSH2 0x0b26
00000b21: JUMPI
00000b22: PUSH1 0x00
00000b24: DUP1
00000b25: REVERT
00000b26: JUMPDEST
00000b27: PUSH2 0x0b32
00000b2a: DUP5
00000b2b: DUP3
00000b2c: DUP6
00000b2d: ADD
00000b2e: PUSH2 0x0a89
00000b31: JUMP
00000b32: JUMPDEST
00000b33: SWAP5
00000b34: SWAP4
00000b35: POP
00000b36: POP
00000b37: POP
00000b38: POP
00000b39: JUMP
00000b3a: JUMPDEST
00000b3b: PUSH1 0x00
00000b3d: DUP3
00000b3e: PUSH1 0x1f
00000b40: DUP4
00000b41: ADD
00000b42: SLT
00000b43: PUSH2 0x0b4b
00000b46: JUMPI
00000b47: PUSH1 0x00
00000b49: DUP1
00000b4a: REVERT
00000b4b: JUMPDEST
00000b4c: DUP2
00000b4d: CALLDATALOAD
00000b4e: PUSH1 0x20
00000b50: PUSH2 0x0b5b
00000b53: PUSH2 0x0aaa
00000b56: DUP4
00000b57: PUSH2 0x0a50
00000b5a: JUMP
00000b5b: JUMPDEST
00000b5c: DUP3
00000b5d: DUP2
00000b5e: MSTORE
00000b5f: PUSH1 0x05
00000b61: SWAP3
00000b62: SWAP1
00000b63: SWAP3
00000b64: SHL
00000b65: DUP5
00000b66: ADD
00000b67: DUP2
00000b68: ADD
00000b69: SWAP2
00000b6a: DUP2
00000b6b: DUP2
00000b6c: ADD
00000b6d: SWAP1
00000b6e: DUP7
00000b6f: DUP5
00000b70: GT
00000b71: ISZERO
00000b72: PUSH2 0x0b7a
00000b75: JUMPI
00000b76: PUSH1 0x00
00000b78: DUP1
00000b79: REVERT
00000b7a: JUMPDEST
00000b7b: DUP3
00000b7c: DUP7
00000b7d: ADD
00000b7e: JUMPDEST
00000b7f: DUP5
00000b80: DUP2
00000b81: LT
00000b82: ISZERO
00000b83: PUSH2 0x0af2
00000b86: JUMPI
00000b87: DUP1
00000b88: CALLDATALOAD
00000b89: DUP4
00000b8a: MSTORE
00000b8b: SWAP2
00000b8c: DUP4
00000b8d: ADD
00000b8e: SWAP2
00000b8f: DUP4
00000b90: ADD
00000b91: PUSH2 0x0b7e
00000b94: JUMP
00000b95: JUMPDEST
00000b96: PUSH1 0x00
00000b98: DUP1
00000b99: PUSH1 0x00
00000b9b: DUP1
00000b9c: PUSH1 0x80
00000b9e: DUP6
00000b9f: DUP8
00000ba0: SUB
00000ba1: SLT
00000ba2: ISZERO
00000ba3: PUSH2 0x0bab
00000ba6: JUMPI
00000ba7: PUSH1 0x00
00000ba9: DUP1
00000baa: REVERT
00000bab: JUMPDEST
00000bac: DUP5
00000bad: CALLDATALOAD
00000bae: PUSH2 0x0bb6
00000bb1: DUP2
00000bb2: PUSH2 0x0a74
00000bb5: JUMP
00000bb6: JUMPDEST
00000bb7: SWAP4
00000bb8: POP
00000bb9: PUSH1 0x20
00000bbb: DUP6
00000bbc: ADD
00000bbd: CALLDATALOAD
00000bbe: PUSH8 0xffffffffffffffff
00000bc7: DUP1
00000bc8: DUP3
00000bc9: GT
00000bca: ISZERO
00000bcb: PUSH2 0x0bd3
00000bce: JUMPI
00000bcf: PUSH1 0x00
00000bd1: DUP1
00000bd2: REVERT
00000bd3: JUMPDEST
00000bd4: PUSH2 0x0bdf
00000bd7: DUP9
00000bd8: DUP4
00000bd9: DUP10
00000bda: ADD
00000bdb: PUSH2 0x0a89
00000bde: JUMP
00000bdf: JUMPDEST
00000be0: SWAP5
00000be1: POP
00000be2: PUSH1 0x40
00000be4: DUP8
00000be5: ADD
00000be6: CALLDATALOAD
00000be7: SWAP2
00000be8: POP
00000be9: DUP1
00000bea: DUP3
00000beb: GT
00000bec: ISZERO
00000bed: PUSH2 0x0bf5
00000bf0: JUMPI
00000bf1: PUSH1 0x00
00000bf3: DUP1
00000bf4: REVERT
00000bf5: JUMPDEST
00000bf6: POP
00000bf7: PUSH2 0x0c02
00000bfa: DUP8
00000bfb: DUP3
00000bfc: DUP9
00000bfd: ADD
00000bfe: PUSH2 0x0b3a
00000c01: JUMP
00000c02: JUMPDEST
00000c03: SWAP5
00000c04: SWAP8
00000c05: SWAP4
00000c06: SWAP7
00000c07: POP
00000c08: SWAP4
00000c09: SWAP5
00000c0a: PUSH1 0x60
00000c0c: ADD
00000c0d: CALLDATALOAD
00000c0e: SWAP4
00000c0f: POP
00000c10: POP
00000c11: POP
00000c12: JUMP
00000c13: JUMPDEST
00000c14: PUSH1 0x00
00000c16: PUSH1 0x20
00000c18: DUP3
00000c19: DUP5
00000c1a: SUB
00000c1b: SLT
00000c1c: ISZERO
00000c1d: PUSH2 0x0c25
00000c20: JUMPI
00000c21: PUSH1 0x00
00000c23: DUP1
00000c24: REVERT
00000c25: JUMPDEST
00000c26: DUP2
00000c27: CALLDATALOAD
00000c28: PUSH2 0x0c30
00000c2b: DUP2
00000c2c: PUSH2 0x0a74
00000c2f: JUMP
00000c30: JUMPDEST
00000c31: SWAP4
00000c32: SWAP3
00000c33: POP
00000c34: POP
00000c35: POP
00000c36: JUMP
00000c37: JUMPDEST
00000c38: PUSH1 0x00
00000c3a: PUSH1 0x20
00000c3c: DUP3
00000c3d: DUP5
00000c3e: SUB
00000c3f: SLT
00000c40: ISZERO
00000c41: PUSH2 0x0c49
00000c44: JUMPI
00000c45: PUSH1 0x00
00000c47: DUP1
00000c48: REVERT
00000c49: JUMPDEST
00000c4a: POP
00000c4b: CALLDATALOAD
00000c4c: SWAP2
00000c4d: SWAP1
00000c4e: POP
00000c4f: JUMP
00000c50: JUMPDEST
00000c51: PUSH1 0x00
00000c53: DUP1
00000c54: PUSH1 0x00
00000c56: PUSH1 0x60
00000c58: DUP5
00000c59: DUP7
00000c5a: SUB
00000c5b: SLT
00000c5c: ISZERO
00000c5d: PUSH2 0x0c65
00000c60: JUMPI
00000c61: PUSH1 0x00
00000c63: DUP1
00000c64: REVERT
00000c65: JUMPDEST
00000c66: DUP4
00000c67: CALLDATALOAD
00000c68: PUSH8 0xffffffffffffffff
00000c71: DUP1
00000c72: DUP3
00000c73: GT
00000c74: ISZERO
00000c75: PUSH2 0x0c7d
00000c78: JUMPI
00000c79: PUSH1 0x00
00000c7b: DUP1
00000c7c: REVERT
00000c7d: JUMPDEST
00000c7e: PUSH2 0x0c89
00000c81: DUP8
00000c82: DUP4
00000c83: DUP9
00000c84: ADD
00000c85: PUSH2 0x0a89
00000c88: JUMP
00000c89: JUMPDEST
00000c8a: SWAP5
00000c8b: POP
00000c8c: PUSH1 0x20
00000c8e: DUP7
00000c8f: ADD
00000c90: CALLDATALOAD
00000c91: SWAP2
00000c92: POP
00000c93: DUP1
00000c94: DUP3
00000c95: GT
00000c96: ISZERO
00000c97: PUSH2 0x0c9f
00000c9a: JUMPI
00000c9b: PUSH1 0x00
00000c9d: DUP1
00000c9e: REVERT
00000c9f: JUMPDEST
00000ca0: POP
00000ca1: PUSH2 0x0cac
00000ca4: DUP7
00000ca5: DUP3
00000ca6: DUP8
00000ca7: ADD
00000ca8: PUSH2 0x0b3a
00000cab: JUMP
00000cac: JUMPDEST
00000cad: SWAP3
00000cae: POP
00000caf: POP
00000cb0: PUSH1 0x40
00000cb2: DUP5
00000cb3: ADD
00000cb4: CALLDATALOAD
00000cb5: SWAP1
00000cb6: POP
00000cb7: SWAP3
00000cb8: POP
00000cb9: SWAP3
00000cba: POP
00000cbb: SWAP3
00000cbc: JUMP
00000cbd: JUMPDEST
00000cbe: PUSH4 0x4e487b71
00000cc3: PUSH1 0xe0
00000cc5: SHL
00000cc6: PUSH1 0x00
00000cc8: MSTORE
00000cc9: PUSH1 0x32
00000ccb: PUSH1 0x04
00000ccd: MSTORE
00000cce: PUSH1 0x24
00000cd0: PUSH1 0x00
00000cd2: REVERT
00000cd3: JUMPDEST
00000cd4: PUSH1 0x00
00000cd6: PUSH1 0x01
00000cd8: DUP3
00000cd9: ADD
00000cda: PUSH2 0x0cf3
00000cdd: JUMPI
00000cde: PUSH4 0x4e487b71
00000ce3: PUSH1 0xe0
00000ce5: SHL
00000ce6: PUSH1 0x00
00000ce8: MSTORE
00000ce9: PUSH1 0x11
00000ceb: PUSH1 0x04
00000ced: MSTORE
00000cee: PUSH1 0x24
00000cf0: PUSH1 0x00
00000cf2: REVERT
00000cf3: JUMPDEST
00000cf4: POP
00000cf5: PUSH1 0x01
00000cf7: ADD
00000cf8: SWAP1
00000cf9: JUMP
00000cfa: JUMPDEST
00000cfb: PUSH1 0x20
00000cfd: DUP1
00000cfe: DUP3
00000cff: MSTORE
00000d00: PUSH1 0x27
00000d02: SWAP1
00000d03: DUP3
00000d04: ADD
00000d05: MSTORE
00000d06: PUSH32 0x456163682064657374696e6174696f6e2073686f756c642068617665206f776e
00000d27: PUSH1 0x40
00000d29: DUP3
00000d2a: ADD
00000d2b: MSTORE
00000d2c: PUSH7 0x08185b5bdd5b9d
00000d34: PUSH1 0xca
00000d36: SHL
00000d37: PUSH1 0x60
00000d39: DUP3
00000d3a: ADD
00000d3b: MSTORE
00000d3c: PUSH1 0x80
00000d3e: ADD
00000d3f: SWAP1
00000d40: JUMP
00000d41: JUMPDEST
00000d42: PUSH1 0x00
00000d44: DUP3
00000d45: MLOAD
00000d46: PUSH1 0x00
00000d48: JUMPDEST
00000d49: DUP2
00000d4a: DUP2
00000d4b: LT
00000d4c: ISZERO
00000d4d: PUSH2 0x0d62
00000d50: JUMPI
00000d51: PUSH1 0x20
00000d53: DUP2
00000d54: DUP7
00000d55: ADD
00000d56: DUP2
00000d57: ADD
00000d58: MLOAD
00000d59: DUP6
00000d5a: DUP4
00000d5b: ADD
00000d5c: MSTORE
00000d5d: ADD
00000d5e: PUSH2 0x0d48
00000d61: JUMP
00000d62: JUMPDEST
00000d63: POP
00000d64: PUSH1 0x00
00000d66: SWAP3
00000d67: ADD
00000d68: SWAP2
00000d69: DUP3
00000d6a: MSTORE
00000d6b: POP
00000d6c: SWAP2
00000d6d: SWAP1
00000d6e: POP
00000d6f: JUMP
00000d70: JUMPDEST
00000d71: PUSH1 0x00
00000d73: PUSH1 0x20
00000d75: DUP3
00000d76: DUP5
00000d77: SUB
00000d78: SLT
00000d79: ISZERO
00000d7a: PUSH2 0x0d82
00000d7d: JUMPI
00000d7e: PUSH1 0x00
00000d80: DUP1
00000d81: REVERT
00000d82: JUMPDEST
00000d83: DUP2
00000d84: MLOAD
00000d85: DUP1
00000d86: ISZERO
00000d87: ISZERO
00000d88: DUP2
00000d89: EQ
00000d8a: PUSH2 0x0c30
00000d8d: JUMPI
00000d8e: PUSH1 0x00
00000d90: DUP1
00000d91: REVERT
00000d92: INVALID
00000d93: LOG2
00000d94: PUSH5 0x6970667358
00000d9a: UNKNOWN(0x22)
00000d9b: SLT
00000d9c: KECCAK256
00000d9d: UNKNOWN(0xAB)
00000d9e: NUMBER
00000d9f: UNKNOWN(0xEB)
00000da0: UNKNOWN(0xD6)
00000da1: DUP15
00000da2: UNKNOWN(0xF9)
00000da3: SWAP11
00000da4: PUSH3 0x6ac4c1
00000da8: UNKNOWN(0xC6)
00000da9: PUSH31

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x2c6c4327b4df65b7c556018992358c001ce5f4ddaae577a7a193bc3503190878
call_targets: 0x21667fda170a5f827b31c0f8fc8dc34f4d82d177
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x2c6c4327b4df65b7c556018992358c001ce5f4ddaae577a7a193bc3503190878",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x21667fda170a5f827b31c0f8fc8dc34f4d82d177"
    ],
    "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": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x982fb9d8",
            "selector": "0x982fb9d8",
            "calldata_variants": [
                "0x982fb9d8",
                "0x982fb9d80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc81e25ab",
            "selector": "0xc81e25ab",
            "calldata_variants": [
                "0xc81e25ab",
                "0xc81e25ab0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcdeb1485",
            "selector": "0xcdeb1485",
            "calldata_variants": [
                "0xcdeb1485",
                "0xcdeb14850000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x46b0813b",
            "selector": "0x46b0813b",
            "calldata_variants": [
                "0x46b0813b",
                "0x46b0813b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6c04204e",
            "selector": "0x6c04204e",
            "calldata_variants": [
                "0x6c04204e",
                "0x6c04204e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x715018a6",
            "selector": "0x715018a6",
            "calldata_variants": [
                "0x715018a6",
                "0x715018a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1087,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2036,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x2c6c4327b4df65b7c556018992358c001ce5f4ddaae577a7a193bc3503190878
call_targets: 0x21667fda170a5f827b31c0f8fc8dc34f4d82d177
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x2c6c4327b4df65b7c556018992358c001ce5f4ddaae577a7a193bc3503190878",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x21667fda170a5f827b31c0f8fc8dc34f4d82d177"
    ],
    "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": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x982fb9d8",
            "selector": "0x982fb9d8",
            "calldata_variants": [
                "0x982fb9d8",
                "0x982fb9d80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc81e25ab",
            "selector": "0xc81e25ab",
            "calldata_variants": [
                "0xc81e25ab",
                "0xc81e25ab0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcdeb1485",
            "selector": "0xcdeb1485",
            "calldata_variants": [
                "0xcdeb1485",
                "0xcdeb14850000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x46b0813b",
            "selector": "0x46b0813b",
            "calldata_variants": [
                "0x46b0813b",
                "0x46b0813b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6c04204e",
            "selector": "0x6c04204e",
            "calldata_variants": [
                "0x6c04204e",
                "0x6c04204e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x715018a6",
            "selector": "0x715018a6",
            "calldata_variants": [
                "0x715018a6",
                "0x715018a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1087,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2036,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}