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

Analysis Run

b1bfdf89-3608-4fd0-b514-11fbacdbd4cd

complete
Chain ID
1
Address
Block Number
Created
Fri, Jan 9, 2026 8:16 PM
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
Present
Best current signal
Unrestricted batch transfer drains contract-held tokens
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
31789 report.consolidate complete 1 / 1 3 months ago
96157 artifact.fetch complete 1 / 3 1 week ago
96158 tool.cast_disasm complete 1 / 3 1 week ago
96159 analysis.bundle complete 1 / 3 1 week ago
96160 capability.graph complete 1 / 3 1 week ago
96161 detector.run complete 1 / 3 1 week ago
96162 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
1
No findings?
no
Summary
Found a public batch-transfer entrypoint that moves tokens from the contract’s own balance to caller-specified recipients without any caller authorization, enabling a direct drain of contract-held tokens once fees/accumulations exist.
View stderr
[codex:432789] OpenAI Codex v0.77.0 (research preview)
[codex:432789] --------
[codex:432789] workdir: /tmp/codex-multi-263d9z1u
[codex:432789] model: gpt-5.2-codex
[codex:432789] provider: openai
[codex:432789] approval: never
[codex:432789] sandbox: read-only
[codex:432789] reasoning effort: xhigh
[codex:432789] reasoning summaries: auto
[codex:432789] session id: 019ba45d-5ed0-79b3-9015-ceb2614bb73c
[codex:432789] --------
[codex:432789] user
[codex:432789] 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:432789] 
[codex:432789] Read `BYTECODE_BUNDLE.txt` completely. It contains:
[codex:432789] 1. Detected contract patterns (ERC20, ERC721, proxy, etc.)
[codex:432789] 2. Function selectors (4-byte signatures) - these are the entry points
[codex:432789] 3. Opcode disassembly - read this to understand control flow
[codex:432789] 4. Raw bytecode hex - reference for exact offsets
[codex:432789] 
[codex:432789] ANALYSIS STRATEGY:
[codex:432789] - Start with detected patterns: if it's ERC20-like, look for transfer/approve bugs
[codex:432789] - Trace function selectors: follow the control flow from entry point to value transfers
[codex:432789] - Read the disassembly: understand the logic, don't just pattern match
[codex:432789] - Look for math operations (DIV, MUL, SUB, ADD) - these are exploit hot spots
[codex:432789] - Check CALL/DELEGATECALL destinations - are they controllable?
[codex:432789] - Verify access control: is CALLER/ORIGIN checked before sensitive operations?
[codex:432789] 
[codex:432789] CRITICAL EXPLOIT PATTERNS:
[codex:432789] - DIV/SDIV with small denominator: division by zero, division inversion (1/x where x=1 gives huge result)
[codex:432789] - MUL/MULMOD overflow: integer overflow in share/amount calculations
[codex:432789] - SUB underflow: accounting errors where balances can go negative
[codex:432789] - CALL/DELEGATECALL with user-controlled destination: arbitrary external calls
[codex:432789] - Value transfers without auth: CALL with value but no CALLER check
[codex:432789] - Reentrancy: external CALL before SSTORE (state update)
[codex:432789] - SELFDESTRUCT with controllable beneficiary: drain all funds
[codex:432789] - Proxy storage collision: DELEGATECALL with overlapping storage slots
[codex:432789] - Signature replay: ecrecover without nonce/chainId/deadline
[codex:432789] 
[codex:432789] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:432789] - Gas inefficiency, code quality, or best practices
[codex:432789] - Theoretical vulnerabilities without a clear extraction path
[codex:432789] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:432789] - Issues requiring social engineering or off-chain coordination
[codex:432789] 
[codex:432789] For each finding, you MUST explain:
[codex:432789] 1. The specific opcode sequence/offsets from the disassembly
[codex:432789] 2. The function selector (if applicable) and how to call it
[codex:432789] 3. The concrete sequence of transactions to extract value
[codex:432789] 4. Why this is exploitable (not just suspicious)
[codex:432789] 
[codex:432789] If you cannot identify a concrete profit path: set no_findings=true.
[codex:432789] Do NOT hallucinate. Bytecode analysis is hard - be honest about uncertainty.
[codex:432789] 
[codex:432789] Output MUST be valid JSON matching the provided schema.
[codex:432789] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:432789] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:432789] mcp startup: no servers
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Preparing to read file**
[codex:432789] exec
[codex:432789] /bin/bash -lc ls in /tmp/codex-multi-263d9z1u succeeded in 5ms:
[codex:432789] BYTECODE_BUNDLE.txt
[codex:432789] codex-output-schema.json
[codex:432789] exec
[codex:432789] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 10ms:
[codex:432789] ================================================================================
[codex:432789] BYTECODE ANALYSIS BUNDLE
[codex:432789] ================================================================================
[codex:432789] 
[codex:432789] This contract has NO verified source. Analyze bytecode patterns carefully.
[codex:432789] 
[codex:432789] OPCODE STATISTICS:
[codex:432789]   Total bytes: 15006
[codex:432789]   Key opcodes:
[codex:432789]     ADD: 389
[codex:432789]     SLOAD: 183
[codex:432789]     SUB: 109
[codex:432789]     SSTORE: 56
[codex:432789]     DIV: 51
[codex:432789]     MUL: 45
[codex:432789]     CALLER: 18
[codex:432789]     CALL: 2
[codex:432789]     CREATE: 1
[codex:432789] 
[codex:432789]   Features:
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Analyzing bytecode for exploits**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "SELFDESTRUCT|DELEGATECALL|CALL" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 9ms:
[codex:432789] 16:    CALLER: 18
[codex:432789] 17:    CALL: 2
[codex:432789] 23:    ⚠️  Contains CALL/DELEGATECALL - check for reentrancy!
[codex:432789] 30:  - Proxy pattern (DELEGATECALL detected)
[codex:432789] 31:  - Contains SELFDESTRUCT
[codex:432789] 67:00000007: CALLDATASIZE
[codex:432789] 72:0000000f: CALLDATALOAD
[codex:432789] 358:00000299: CALLVALUE
[codex:432789] 371:000002ac: CALLDATASIZE
[codex:432789] 378:000002b3: CALLDATALOAD
[codex:432789] 389:000002d3: CALLDATALOAD
[codex:432789] 400:000002f3: CALLDATALOAD
[codex:432789] 411:00000313: CALLDATALOAD
[codex:432789] 422:00000333: CALLDATALOAD
[codex:432789] 433:00000353: CALLDATALOAD
[codex:432789] 444:00000373: CALLDATALOAD
[codex:432789] 455:00000393: CALLDATALOAD
[codex:432789] 466:000003b3: CALLDATALOAD
[codex:432789] 477:000003d3: CALLDATALOAD
[codex:432789] 488:000003f3: CALLDATALOAD
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Investigating SELFDESTRUCT absence in disassembly**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "DELEGATECALL" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 7ms:
[codex:432789] 23:    ⚠️  Contains CALL/DELEGATECALL - check for reentrancy!
[codex:432789] 30:  - Proxy pattern (DELEGATECALL detected)
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Investigating disassembly around suspicious call**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "00001af0" -n BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 3923:00001af0: CALL
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Extracting code context around line 3923**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '3890,3960p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 00001ab2: AND
[codex:432789] 00001ab3: EQ
[codex:432789] 00001ab4: ISZERO
[codex:432789] 00001ab5: ISZERO
[codex:432789] 00001ab6: PUSH2 0x1abe
[codex:432789] 00001ab9: JUMPI
[codex:432789] 00001aba: PUSH1 0x00
[codex:432789] 00001abc: DUP1
[codex:432789] 00001abd: REVERT
[codex:432789] 00001abe: JUMPDEST
[codex:432789] 00001abf: CALLER
[codex:432789] 00001ac0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 00001ad5: AND
[codex:432789] 00001ad6: PUSH2 0x08fc
[codex:432789] 00001ad9: PUSH1 0x0e
[codex:432789] 00001adb: SLOAD
[codex:432789] 00001adc: SWAP1
[codex:432789] 00001add: DUP2
[codex:432789] 00001ade: ISZERO
[codex:432789] 00001adf: MUL
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Analyzing EVM CALL sequence**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '3860,3925p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 27ms:
[codex:432789] 00001a52: PUSH1 0x19
[codex:432789] 00001a54: SLOAD
[codex:432789] 00001a55: SWAP1
[codex:432789] 00001a56: POP
[codex:432789] 00001a57: SWAP1
[codex:432789] 00001a58: JUMP
[codex:432789] 00001a59: JUMPDEST
[codex:432789] 00001a5a: PUSH1 0x00
[codex:432789] 00001a5c: PUSH1 0x08
[codex:432789] 00001a5e: SLOAD
[codex:432789] 00001a5f: SWAP1
[codex:432789] 00001a60: POP
[codex:432789] 00001a61: SWAP1
[codex:432789] 00001a62: JUMP
[codex:432789] 00001a63: JUMPDEST
[codex:432789] 00001a64: PUSH1 0x00
[codex:432789] 00001a66: DUP1
[codex:432789] 00001a67: SWAP1
[codex:432789] 00001a68: SLOAD
[codex:432789] 00001a69: SWAP1
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Analyzing complex EVM call sequence**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "PUSH1 0x0e" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 28ms:
[codex:432789] 3419:00001685: PUSH1 0x0e
[codex:432789] 3904:00001ad9: PUSH1 0x0e
[codex:432789] 3944:00001b0a: PUSH1 0x0e
[codex:432789] 5007:000023c8: PUSH1 0x0e
[codex:432789] 5468:0000285b: PUSH1 0x0e
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Reviewing code near offset 0x1685**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '3385,3445p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 0000165d: JUMPDEST
[codex:432789] 0000165e: DUP2
[codex:432789] 0000165f: SLOAD
[codex:432789] 00001660: DUP2
[codex:432789] 00001661: MSTORE
[codex:432789] 00001662: SWAP1
[codex:432789] 00001663: PUSH1 0x01
[codex:432789] 00001665: ADD
[codex:432789] 00001666: SWAP1
[codex:432789] 00001667: PUSH1 0x20
[codex:432789] 00001669: ADD
[codex:432789] 0000166a: DUP1
[codex:432789] 0000166b: DUP4
[codex:432789] 0000166c: GT
[codex:432789] 0000166d: PUSH2 0x165d
[codex:432789] 00001670: JUMPI
[codex:432789] 00001671: DUP3
[codex:432789] 00001672: SWAP1
[codex:432789] 00001673: SUB
[codex:432789] 00001674: PUSH1 0x1f
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Analyzing function returning storage slot**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '4970,5045p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 5ms:
[codex:432789] 00002399: JUMP
[codex:432789] 0000239a: JUMPDEST
[codex:432789] 0000239b: PUSH1 0x00
[codex:432789] 0000239d: PUSH1 0x08
[codex:432789] 0000239f: SLOAD
[codex:432789] 000023a0: CALLVALUE
[codex:432789] 000023a1: MUL
[codex:432789] 000023a2: SWAP1
[codex:432789] 000023a3: POP
[codex:432789] 000023a4: PUSH1 0x16
[codex:432789] 000023a6: SLOAD
[codex:432789] 000023a7: DUP2
[codex:432789] 000023a8: PUSH1 0x07
[codex:432789] 000023aa: SLOAD
[codex:432789] 000023ab: ADD
[codex:432789] 000023ac: GT
[codex:432789] 000023ad: ISZERO
[codex:432789] 000023ae: PUSH2 0x23b6
[codex:432789] 000023b1: JUMPI
[codex:432789] 000023b2: PUSH2 0x23ea
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Analyzing ETH deposit and withdrawal functions**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "1a63" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 1354:000008bb: PUSH2 0x1a63
[codex:432789] 3874:00001a63: JUMPDEST
[codex:432789] 7642:0x608060405260043610610293576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063010791b014610298578063049bf0711461040557806306fdde0314610430578063087d01df146104c0578063095ea7b3146104eb5780630ac3887c14610550578063153548e21461057b57806318160ddd146105a657806323392c7a146105d157806323b872dd1461063e57806328547ead146106c3578063313ce567146106ee578063330c91cc1461071f578063361531c31461076257806339fae0c11461078d57806342966c68146107b8578063488f38db146107fd5780636322c95014610828578063679aefce146108535780636a953e091461087e57806370a08231146108c1578063749ba8b41461091857806375418b9d1461092f57806377b318031461097357806379c650681461099e57806379cc6790146109eb578063828df79b14610a505780638383554314610a7b5780638b2b3d8b14610ad65780638da5cb5b14610b0157806390b08a5214610b58578063923cce5e14610b8357806394ede56314610bb057806395d89b4114610bdb5780639980ec8614610c6b578063a6f2ae3a14610cac578063a7ed901c14610cb6578063a9059cbb14610ce3578063ab2d97d714610d30578063b2f2d21b14610d5b578063ba93b0ec14610e31578063c98166c014610e5c578063cae9ca5114610e87578063d5bbc3bb14610f32578063db20cb3e14610f75578063dd62ed3e14610fe2578063e132db4114611059578063e296796e14611070578063eda456ba14611087578063ee5c4567146110ce578063f2801fe7146110f9578063f2fde38b146111ef578063f722783114611232578063f843d7fd1461125d578063fdef933b14611288575b600080fd5b3480156102a457600080fd5b50610403600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112b3565b005b34801561041157600080fd5b5061041a6115de565b6040518082815260200191505060405180910390f35b34801561043c57600080fd5b506104456115e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561048557808201518184015260208101905061046a565b50505050905090810190601f1680156104b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104cc57600080fd5b506104d5611682565b6040518082815260200191505060405180910390f35b3480156104f757600080fd5b50610536600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061168c565b604051808215151515815260200191505060405180910390f35b34801561055c57600080fd5b50610565611719565b6040518082815260200191505060405180910390f35b34801561058757600080fd5b5061059061171f565b6040518082815260200191505060405180910390f35b3480156105b257600080fd5b506105bb611725565b6040518082815260200191505060405180910390f35b3480156105dd57600080fd5b506105fc6004803603810190808035906020019092919050505061172b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561064a57600080fd5b506106a9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611769565b604051808215151515815260200191505060405180910390f35b3480156106cf57600080fd5b506106d8611899565b6040518082815260200191505060405180910390f35b3480156106fa57600080fd5b5061070361189f565b604051808260ff1660ff16815260200191505060405180910390f35b34801561072b57600080fd5b50610760600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118b2565b005b34801561076e57600080fd5b5061077761192d565b6040518082815260200191505060405180910390f35b34801561079957600080fd5b506107a2611937565b6040518082815260200191505060405180910390f35b3480156107c457600080fd5b506107e360048036038101908080359060200190929190505050611941565b604051808215151515815260200191505060405180910390f35b34801561080957600080fd5b50610812611a45565b6040518082815260200191505060405180910390f35b34801561083457600080fd5b5061083d611a4f565b6040518082815260200191505060405180910390f35b34801561085f57600080fd5b50610868611a59565b6040518082815260200191505060405180910390f35b34801561088a57600080fd5b506108bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a63565b005b3480156108cd57600080fd5b50610902600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b12565b6040518082815260200191505060405180910390f35b34801561092457600080fd5b5061092d611b2a565b005b34801561093b57600080fd5b50610944611dbe565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b34801561097f57600080fd5b50610988611e33565b6040518082815260200191505060405180910390f35b3480156109aa57600080fd5b506109e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e39565b005b3480156109f757600080fd5b50610a36600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611fc0565b604051808215151515815260200191505060405180910390f35b348015610a5c57600080fd5b50610a6561214e565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610abc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612154565b604051808215151515815260200191505060405180910390f35b348015610ae257600080fd5b50610aeb6121ad565b6040518082815260200191505060405180910390f35b348015610b0d57600080fd5b50610b166121b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b6457600080fd5b50610b6d6121d8565b6040518082815260200191505060405180910390f35b348015610b8f57600080fd5b50610bae600480360381019080803590602001909291905050506121e2565b005b348015610bbc57600080fd5b50610bc56122e4565b6040518082815260200191505060405180910390f35b348015610be757600080fd5b50610bf06122ee565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c30578082015181840152602081019050610c15565b50505050905090810190601f168015610c5d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c7757600080fd5b50610c966004803603810190808035906020019092919050505061238c565b6040518082815260200191505060405180910390f35b610cb461239a565b005b348015610cc257600080fd5b50610ce1600480360381019080803590602001909291905050506123ed565b005b348015610cef57600080fd5b50610d2e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612642565b005b348015610d3c57600080fd5b50610d45612651565b6040518082815260200191505060405180910390f35b348015610d6757600080fd5b50610d9c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612657565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200184815260200183815260200182151515158152602001965050505050505060405180910390f35b348015610e3d57600080fd5b50610e46612854565b6040518082815260200191505060405180910390f35b348015610e6857600080fd5b50610e7161285a565b6040518082815260200191505060405180910390f35b348015610e9357600080fd5b50610f18600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612860565b604051808215151515815260200191505060405180910390f35b348015610f3e57600080fd5b50610f73600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129e3565b005b348015610f8157600080fd5b50610fa060048036038101908080359060200190929190505050612b39565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fee57600080fd5b50611043600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b77565b6040518082815260200191505060405180910390f35b34801561106557600080fd5b5061106e612b9c565b005b34801561107c57600080fd5b50611085612cfa565b005b34801561109357600080fd5b5061109c612e7c565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b3480156110da57600080fd5b506110e3612ea4565b6040518082815260200191505060405180910390f35b34801561110557600080fd5b5061115a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612eaa565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200184815260200183815260200182151515158152602001965050505050505060405180910390f35b3480156111fb57600080fd5b50611230600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613652565b005b34801561123e57600080fd5b506112476136f0565b6040518082815260200191505060405180910390f35b34801561126957600080fd5b506112726136fa565b6040518082815260200191505060405180910390f35b34801561129457600080fd5b5061129d613704565b6040518082815260200191505060405180910390f35b6000806000806017541180156112c95750600084115b156115cd576017549250600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915082821015611322576115ce565b838381151561132d57fe5b049050600073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614151561137257611371308f8361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff161415156113b4576113b3308e8361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff161415156113f6576113f5308d8361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff1614151561143857611437308c8361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614151561147a57611479308b8361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161415156114bc576114bb308a8361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415156114fe576114fd30898361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415156115405761153f30888361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415156115825761158130878361370e565b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415156115c4576115c330868361370e565b5b60006017819055505b5b5050505050505050505050505050565b60155481565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561167a5780601f1061164f5761010080835404028352916020019161167a565b820191906000526020600020905b81548152906001019060200180831161165d57829003601f168201915b505050505081565b6000600e54905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b60165481565b60185481565b60045481565b600c8181548110151561173a57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156117f85760009050611892565b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555061188d84848461370e565b600190505b9392505050565b600a5481565b600360009054906101000a900460ff1681565b601860008154809291906001019190505550600d8190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000601754905090565b6000600954905090565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561199157600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816004600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a260019050919050565b6000601554905090565b6000601954905090565b6000600854905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611abe57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc600e549081150290604051600060405180830381858888f19350505050158015611b06573d6000803e3d6000fd5b506000600e8190555050565b60056020528060005260406000206000915090505481565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b8d57600080fd5b6000945060009350600954925060006019541115611c9e57601954600284811515611bb457fe5b04811515611bbe57fe5b0491505b601954851015611c9d5781600960008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff16600c86815481101515611c0357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611c9057611c8f30600c87815481101515611c5e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461370e565b5b8480600101955050611bc2565b5b60006018541115611da257601854600484811515611cb857fe5b04811515611cc257fe5b0490505b601854841015611da15780600960008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff16600d85815481101515611d0757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d9457611d9330600d86815481101515611d6257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361370e565b5b8380600101945050611cc6565b5b611dae30600954611fc0565b5060006009819055505050505050565b600080600080670de0b6b3a7640000600754811515611dd957fe5b0460136000600181526020019081526020016000205460016015540160136000600160155401815260200190815260200160002054670de0b6b3a7640000600754811515611e2357fe5b0411935093509350935090919293565b60195481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e9457600080fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806004600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561200e57612148565b81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816004600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a2600190505b92915050565b60175481565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff169050919050565b60075481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600754905090565b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6000600b54905090565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123845780601f1061235957610100808354040283529160200191612384565b820191906000526020600020905b81548152906001019060200180831161236757829003601f168201915b505050505081565b600060085482029050919050565b600060085434029050601654816007540111156123b6576123ea565b8060076000828254019250508190555034600e600082825401925050819055506123de612b9c565b6123e930338361370e565b5b50565b6000806000309250339150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124325761263c565b83600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561247e5761263c565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561250b5761263c565b6064605f850281151561251a57fe5b04905060646005850281151561252c57fe5b0460176000828254019250508190555080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b50505050565b61264d33838361370e565b5050565b60095481565b600080600080600080601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600f60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050601060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050601160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff1695509550955095509550955091939550919395565b60085481565b600e5481565b600080849050612870858561168c565b156129da578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561296a57808201518184015260208101905061294f565b50505050905090810190601f1680156129975780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156129b957600080fd5b505af11580156129cd573d6000803e3d6000fd5b50505050600191506129db565b5b509392505050565b60008090505b601854811015612abd578173ffffffffffffffffffffffffffffffffffffffff16600d82815481101515612a1957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612ab05760186000815480929190600190039190505550600d81815481101515612a8257fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b80806001019150506129e9565b601960008154809291906001019190505550600c8290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600d81815481101515612b4857fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6006602052816000526040600020602052806000526040600020600091509150505481565b60136000601554815260200190815260200160002054670de0b6b3a7640000600754811515612bc757fe5b0410158015612bd85750600d601554105b15612c0e576014600060016015540181526020019081526020016000205460088190555060016015600082825401925050819055505b60136000600160155401815260200190815260200160002054670de0b6b3a7640000600754811515612c3c57fe5b0410158015612c4d5750600c601554105b15612c83576014600060026015540181526020019081526020016000205460088190555060026015600082825401925050819055505b60136000600260155401815260200190815260200160002054670de0b6b3a7640000600754811515612cb157fe5b0410158015612cc25750600b601554105b15612cf8576014600060036015540181526020019081526020016000205460088190555060036015600082825401925050819055505b565b6000806000806000600b54118015612d1457506000601954115b15612e7557600360009054906101000a900460ff1660ff16600a0a614e20029350600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054925083831015612d8457612e76565b6000915060195484811515612d9557fe5b0490505b601954821015612e6457600073ffffffffffffffffffffffffffffffffffffffff16600c83815481101515612dca57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612e5757612e5630600c84815481101515612e2557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361370e565b5b8180600101925050612d99565b83600b600082825403925050819055505b5b50505050565b6000806000806000600954601754601954601854600b54945094509450945094509091929394565b600b5481565b600080600080600080612ebb613a1b565b60011515612ec88a612154565b151514156130c057601160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600f60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050601060008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050601160008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff16965096509650965096509650613647565b6080604051908101604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160011515815250905080601160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548160ff021916908315150217905550905050600f60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548160ff021916908315150217905550505050601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548160ff021916908315150217905550505050601160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600f60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050601060008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050601160008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff169650965096509650965096505b509295509295509295565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156136ad57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000601854905090565b6000601654905090565b6000600854905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561374957613a15565b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561379557613a15565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561382257613a15565b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061388757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15613894578190506138c6565b6064606283028115156138a357fe5b0490506064600283028115156138b557fe5b046009600082825401925050819055505b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550808203600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b50505050565b608060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160001515815250905600a165627a7a7230582099d721cb929aa04e0681ce28ecc9d162f3dd9445fdb855298556d599f0fd0b360029
[codex:432789] 
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Analyzing EVM stack with parameters and return address**
[codex:432789] thinking
[codex:432789] **Verifying stack effects with return address included**
[codex:432789] 
[codex:432789] I’m re-evaluating the stack with the return address below the argument to see how it impacts the CALL parameters and gas calculations. The deeper stack position shifts don’t alter the CALL recipient or value, but the gas computation looks suspicious—possibly designed to conditionally fail the call. I’m curious about further calls around 0x29bc that might clarify the real withdrawal logic!
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '5610,5695p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 0000298f: AND
[codex:432789] 00002990: DUP2
[codex:432789] 00002991: MSTORE
[codex:432789] 00002992: PUSH1 0x20
[codex:432789] 00002994: ADD
[codex:432789] 00002995: SWAP2
[codex:432789] 00002996: POP
[codex:432789] 00002997: JUMPDEST
[codex:432789] 00002998: POP
[codex:432789] 00002999: SWAP6
[codex:432789] 0000299a: POP
[codex:432789] 0000299b: POP
[codex:432789] 0000299c: POP
[codex:432789] 0000299d: POP
[codex:432789] 0000299e: POP
[codex:432789] 0000299f: POP
[codex:432789] 000029a0: PUSH1 0x00
[codex:432789] 000029a2: PUSH1 0x40
[codex:432789] 000029a4: MLOAD
[codex:432789] 000029a5: DUP1
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Analyzing suspicious external call**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "00002860" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 17ms:
[codex:432789] 5472:00002860: JUMPDEST
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '5430,5525p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 8ms:
[codex:432789] 0000282f: PUSH1 0x03
[codex:432789] 00002831: ADD
[codex:432789] 00002832: PUSH1 0x00
[codex:432789] 00002834: SWAP1
[codex:432789] 00002835: SLOAD
[codex:432789] 00002836: SWAP1
[codex:432789] 00002837: PUSH2 0x0100
[codex:432789] 0000283a: EXP
[codex:432789] 0000283b: SWAP1
[codex:432789] 0000283c: DIV
[codex:432789] 0000283d: PUSH1 0xff
[codex:432789] 0000283f: AND
[codex:432789] 00002840: SWAP6
[codex:432789] 00002841: POP
[codex:432789] 00002842: SWAP6
[codex:432789] 00002843: POP
[codex:432789] 00002844: SWAP6
[codex:432789] 00002845: POP
[codex:432789] 00002846: SWAP6
[codex:432789] 00002847: POP
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '5525,5615p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 8ms:
[codex:432789] 00002929: AND
[codex:432789] 0000292a: DUP2
[codex:432789] 0000292b: MSTORE
[codex:432789] 0000292c: PUSH1 0x20
[codex:432789] 0000292e: ADD
[codex:432789] 0000292f: DUP1
[codex:432789] 00002930: PUSH1 0x20
[codex:432789] 00002932: ADD
[codex:432789] 00002933: DUP3
[codex:432789] 00002934: DUP2
[codex:432789] 00002935: SUB
[codex:432789] 00002936: DUP3
[codex:432789] 00002937: MSTORE
[codex:432789] 00002938: DUP4
[codex:432789] 00002939: DUP2
[codex:432789] 0000293a: DUP2
[codex:432789] 0000293b: MLOAD
[codex:432789] 0000293c: DUP2
[codex:432789] 0000293d: MSTORE
[codex:432789] 0000293e: PUSH1 0x20
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Analyzing EVM bytecode for exploits**
[codex:432789] 
[codex:432789] I’m carefully examining contract bytecode to identify any unauthorized ETH or token withdrawals, focusing on function selectors, storage slots, and access controls, especially mint and transfer functions, potential arithmetic bugs, and owner-only restrictions to find a concrete exploit path.
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '5235,5315p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 000025ee: DUP4
[codex:432789] 000025ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 00002604: AND
[codex:432789] 00002605: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
[codex:432789] 00002626: DUP4
[codex:432789] 00002627: PUSH1 0x40
[codex:432789] 00002629: MLOAD
[codex:432789] 0000262a: DUP1
[codex:432789] 0000262b: DUP3
[codex:432789] 0000262c: DUP2
[codex:432789] 0000262d: MSTORE
[codex:432789] 0000262e: PUSH1 0x20
[codex:432789] 00002630: ADD
[codex:432789] 00002631: SWAP2
[codex:432789] 00002632: POP
[codex:432789] 00002633: POP
[codex:432789] 00002634: PUSH1 0x40
[codex:432789] 00002636: MLOAD
[codex:432789] 00002637: DUP1
[codex:432789] 00002638: SWAP2
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Inspecting internal transfer function**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "0000370e" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 30ms:
[codex:432789] 7282:0000370e: JUMPDEST
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '7245,7335p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 000036cf: NOT
[codex:432789] 000036d0: AND
[codex:432789] 000036d1: SWAP1
[codex:432789] 000036d2: DUP4
[codex:432789] 000036d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 000036e8: AND
[codex:432789] 000036e9: MUL
[codex:432789] 000036ea: OR
[codex:432789] 000036eb: SWAP1
[codex:432789] 000036ec: SSTORE
[codex:432789] 000036ed: POP
[codex:432789] 000036ee: POP
[codex:432789] 000036ef: JUMP
[codex:432789] 000036f0: JUMPDEST
[codex:432789] 000036f1: PUSH1 0x00
[codex:432789] 000036f3: PUSH1 0x18
[codex:432789] 000036f5: SLOAD
[codex:432789] 000036f6: SWAP1
[codex:432789] 000036f7: POP
[codex:432789] 000036f8: SWAP1
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Continuing processing**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '7335,7425p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 11ms:
[codex:432789] 000037cc: SWAP1
[codex:432789] 000037cd: DUP2
[codex:432789] 000037ce: MSTORE
[codex:432789] 000037cf: PUSH1 0x20
[codex:432789] 000037d1: ADD
[codex:432789] 000037d2: PUSH1 0x00
[codex:432789] 000037d4: KECCAK256
[codex:432789] 000037d5: SLOAD
[codex:432789] 000037d6: DUP3
[codex:432789] 000037d7: PUSH1 0x05
[codex:432789] 000037d9: PUSH1 0x00
[codex:432789] 000037db: DUP7
[codex:432789] 000037dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 000037f1: AND
[codex:432789] 000037f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 00003807: AND
[codex:432789] 00003808: DUP2
[codex:432789] 00003809: MSTORE
[codex:432789] 0000380a: PUSH1 0x20
[codex:432789] 0000380c: ADD
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Continuing analysis**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '7425,7515p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 000038b7: PUSH1 0x09
[codex:432789] 000038b9: PUSH1 0x00
[codex:432789] 000038bb: DUP3
[codex:432789] 000038bc: DUP3
[codex:432789] 000038bd: SLOAD
[codex:432789] 000038be: ADD
[codex:432789] 000038bf: SWAP3
[codex:432789] 000038c0: POP
[codex:432789] 000038c1: POP
[codex:432789] 000038c2: DUP2
[codex:432789] 000038c3: SWAP1
[codex:432789] 000038c4: SSTORE
[codex:432789] 000038c5: POP
[codex:432789] 000038c6: JUMPDEST
[codex:432789] 000038c7: DUP2
[codex:432789] 000038c8: PUSH1 0x05
[codex:432789] 000038ca: PUSH1 0x00
[codex:432789] 000038cc: DUP7
[codex:432789] 000038cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 000038e2: AND
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Continuing exploration**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '7515,7605p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 28ms:
[codex:432789] 0000399a: SWAP1
[codex:432789] 0000399b: DUP2
[codex:432789] 0000399c: MSTORE
[codex:432789] 0000399d: PUSH1 0x20
[codex:432789] 0000399f: ADD
[codex:432789] 000039a0: PUSH1 0x00
[codex:432789] 000039a2: KECCAK256
[codex:432789] 000039a3: PUSH1 0x00
[codex:432789] 000039a5: DUP3
[codex:432789] 000039a6: DUP3
[codex:432789] 000039a7: SLOAD
[codex:432789] 000039a8: ADD
[codex:432789] 000039a9: SWAP3
[codex:432789] 000039aa: POP
[codex:432789] 000039ab: POP
[codex:432789] 000039ac: DUP2
[codex:432789] 000039ad: SWAP1
[codex:432789] 000039ae: SSTORE
[codex:432789] 000039af: POP
[codex:432789] 000039b0: DUP3
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Analyzing internal transfer and custom functions**
[codex:432789] 
[codex:432789] I'm examining the transfer function's logic for safe math and fee calculation, noting it seems secure and standard. Now I'm shifting focus to other functions, especially one handling multiple addresses for transfers, to check if any lack access controls that could open exploit paths. I'm mapping function selectors to jump targets to investigate potential vulnerabilities like unauthorized airdrops or ownership changes.
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "000012b3" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 15ms:
[codex:432789] 3010:000012b3: JUMPDEST
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '2990,3075p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 0000129c: JUMP
[codex:432789] 0000129d: JUMPDEST
[codex:432789] 0000129e: PUSH1 0x40
[codex:432789] 000012a0: MLOAD
[codex:432789] 000012a1: DUP1
[codex:432789] 000012a2: DUP3
[codex:432789] 000012a3: DUP2
[codex:432789] 000012a4: MSTORE
[codex:432789] 000012a5: PUSH1 0x20
[codex:432789] 000012a7: ADD
[codex:432789] 000012a8: SWAP2
[codex:432789] 000012a9: POP
[codex:432789] 000012aa: POP
[codex:432789] 000012ab: PUSH1 0x40
[codex:432789] 000012ad: MLOAD
[codex:432789] 000012ae: DUP1
[codex:432789] 000012af: SWAP2
[codex:432789] 000012b0: SUB
[codex:432789] 000012b1: SWAP1
[codex:432789] 000012b2: RETURN
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Analyzing multi-address token distribution function**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "000015cd" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 25ms:
[codex:432789] 3272:000015cd: JUMPDEST
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '3245,3295p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 17ms:
[codex:432789] 00001581: JUMPDEST
[codex:432789] 00001582: JUMPDEST
[codex:432789] 00001583: PUSH1 0x00
[codex:432789] 00001585: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 0000159a: AND
[codex:432789] 0000159b: DUP6
[codex:432789] 0000159c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 000015b1: AND
[codex:432789] 000015b2: EQ
[codex:432789] 000015b3: ISZERO
[codex:432789] 000015b4: ISZERO
[codex:432789] 000015b5: PUSH2 0x15c4
[codex:432789] 000015b8: JUMPI
[codex:432789] 000015b9: PUSH2 0x15c3
[codex:432789] 000015bc: ADDRESS
[codex:432789] 000015bd: DUP7
[codex:432789] 000015be: DUP4
[codex:432789] 000015bf: PUSH2 0x370e
[codex:432789] 000015c2: JUMP
[codex:432789] 000015c3: JUMPDEST
[codex:432789] 
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Analyzing token airdrop logic and access control risks**
[codex:432789] 
[codex:432789] I'm unpacking a complex function that distributes tokens from the contract to multiple addresses, likely an `airdrop(address[10], uint256)` without any caller checks. It seems anyone can trigger token transfers from the contract's balance if a particular storage slot (possibly controlling distribution amount) is set, exposing a potential vulnerability where tokens might be drained by arbitrary callers. I’m carefully interpreting EVM bytecode control flow, stack operations, and address checks to confirm if there’s any effective access control or safeguards preventing misuse.
[codex:432789] thinking
[codex:432789] **Confirming transfer conditions and storage usage**
[codex:432789] 
[codex:432789] I'm verifying that as long as recipient addresses are non-zero, transfers proceed without further restrictions. The function uses storage slot 0x17 to load some value—likely related to token amounts—and an amount argument from the call; I'll continue analyzing subsequent instructions to understand how exactly these values control the transfer amounts.
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '3075,3165p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 7ms:
[codex:432789] 00001330: POP
[codex:432789] 00001331: PUSH1 0x00
[codex:432789] 00001333: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 00001348: AND
[codex:432789] 00001349: DUP15
[codex:432789] 0000134a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 0000135f: AND
[codex:432789] 00001360: EQ
[codex:432789] 00001361: ISZERO
[codex:432789] 00001362: ISZERO
[codex:432789] 00001363: PUSH2 0x1372
[codex:432789] 00001366: JUMPI
[codex:432789] 00001367: PUSH2 0x1371
[codex:432789] 0000136a: ADDRESS
[codex:432789] 0000136b: DUP16
[codex:432789] 0000136c: DUP4
[codex:432789] 0000136d: PUSH2 0x370e
[codex:432789] 00001370: JUMP
[codex:432789] 00001371: JUMPDEST
[codex:432789] 00001372: JUMPDEST
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Analyzing batch transfer vulnerability**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "PUSH1 0x17" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 9ms:
[codex:432789] 3015:000012ba: PUSH1 0x17
[codex:432789] 3030:000012cf: PUSH1 0x17
[codex:432789] 3267:000015c7: PUSH1 0x17
[codex:432789] 3729:00001930: PUSH1 0x17
[codex:432789] 4668:0000214f: PUSH1 0x17
[codex:432789] 5157:0000252e: PUSH1 0x17
[codex:432789] 6375:00002e88: PUSH1 0x17
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Investigating writes to slot17**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '3705,3765p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 6ms:
[codex:432789] 000018ed: SWAP2
[codex:432789] 000018ee: PUSH2 0x0100
[codex:432789] 000018f1: EXP
[codex:432789] 000018f2: DUP2
[codex:432789] 000018f3: SLOAD
[codex:432789] 000018f4: DUP2
[codex:432789] 000018f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 0000190a: MUL
[codex:432789] 0000190b: NOT
[codex:432789] 0000190c: AND
[codex:432789] 0000190d: SWAP1
[codex:432789] 0000190e: DUP4
[codex:432789] 0000190f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:432789] 00001924: AND
[codex:432789] 00001925: MUL
[codex:432789] 00001926: OR
[codex:432789] 00001927: SWAP1
[codex:432789] 00001928: SSTORE
[codex:432789] 00001929: POP
[codex:432789] 0000192a: POP
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Analyzing jump destination for storage access**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '4610,4695p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 7ms:
[codex:432789] 000020db: DUP3
[codex:432789] 000020dc: DUP3
[codex:432789] 000020dd: SLOAD
[codex:432789] 000020de: SUB
[codex:432789] 000020df: SWAP3
[codex:432789] 000020e0: POP
[codex:432789] 000020e1: POP
[codex:432789] 000020e2: DUP2
[codex:432789] 000020e3: SWAP1
[codex:432789] 000020e4: SSTORE
[codex:432789] 000020e5: POP
[codex:432789] 000020e6: DUP2
[codex:432789] 000020e7: PUSH1 0x04
[codex:432789] 000020e9: PUSH1 0x00
[codex:432789] 000020eb: DUP3
[codex:432789] 000020ec: DUP3
[codex:432789] 000020ed: SLOAD
[codex:432789] 000020ee: SUB
[codex:432789] 000020ef: SWAP3
[codex:432789] 000020f0: POP
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Inspecting jump destinations and storage usage**
[codex:432789] exec
[codex:432789] /bin/bash -lc "sed -n '5125,5195p' BYTECODE_BUNDLE.txt" in /tmp/codex-multi-263d9z1u succeeded in 18ms:
[codex:432789] 00002502: ISZERO
[codex:432789] 00002503: PUSH2 0x250b
[codex:432789] 00002506: JUMPI
[codex:432789] 00002507: PUSH2 0x263c
[codex:432789] 0000250a: JUMP
[codex:432789] 0000250b: JUMPDEST
[codex:432789] 0000250c: PUSH1 0x64
[codex:432789] 0000250e: PUSH1 0x5f
[codex:432789] 00002510: DUP6
[codex:432789] 00002511: MUL
[codex:432789] 00002512: DUP2
[codex:432789] 00002513: ISZERO
[codex:432789] 00002514: ISZERO
[codex:432789] 00002515: PUSH2 0x251a
[codex:432789] 00002518: JUMPI
[codex:432789] 00002519: INVALID
[codex:432789] 0000251a: JUMPDEST
[codex:432789] 0000251b: DIV
[codex:432789] 0000251c: SWAP1
[codex:432789] 0000251d: POP
[codex:432789] 
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Analyzing batch token drain vulnerability**
[codex:432789] 
[codex:432789] I’m piecing together how the contract accumulates fees in slot17 and exposes a public batch transfer function (selector 0x010791b0) that lets anyone sweep those fee tokens from the contract to arbitrary addresses without access control. The function checks slot17 > 0 and contract balance but doesn't restrict callers, enabling token draining when fees exist. I'll reference key opcode offsets to explain the exploit steps and contract state changes.
[codex:432789] thinking
[codex:432789] **Verifying parameter handling and transfer logic**
[codex:432789] 
[codex:432789] I’m confirming that the batch transfer function passes the contract address as sender and user-supplied addresses as recipients, with the amount argument checked only to ensure it’s nonzero and no greater than the contract balance. Multiple recipients can be zero-address (skipped), allowing a single recipient drain. Internal transfers revert if funds insufficient for each transfer, so total drain per call is capped by contract balance, enabling full withdrawal by a caller without restrictions.
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "00001367|0000136a|0000136d|00001370" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 7ms:
[codex:432789] 3087:00001367: PUSH2 0x1371
[codex:432789] 3088:0000136a: ADDRESS
[codex:432789] 3091:0000136d: PUSH2 0x370e
[codex:432789] 3092:00001370: JUMP
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Tracking relevant code lines**
[codex:432789] exec
[codex:432789] /bin/bash -lc 'rg -n "000015c7" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-263d9z1u succeeded in 7ms:
[codex:432789] 3267:000015c7: PUSH1 0x17
[codex:432789] 
[codex:432789] thinking
[codex:432789] **Summarizing exploit scenario and evidence**
[codex:432789] 
[codex:432789] I’m putting together a detailed exploit scenario showing how a public batch-transfer function in the contract allows draining tokens without caller authorization, supported by opcode offsets and behavior around slot17 and internal transfers. I’m carefully crafting the JSON output to include summary, severity, evidence with opcode references, and exploit steps to comply with reporting guidelines.
[codex:432789] codex
[codex:432789] {"no_findings":false,"summary":"Found a public batch-transfer entrypoint that moves tokens from the contract’s own balance to caller-specified recipients without any caller authorization, enabling a direct drain of contract-held tokens once fees/accumulations exist.","findings":[{"severity":"high","category":"access_control","title":"Unrestricted batch transfer drains contract-held tokens","exploit_scenario":"1) Wait until the contract holds a token balance (e.g., fees accumulate; slot 0x17 becomes non-zero from normal transfers). 2) Call selector 0x010791b0 with 10 address parameters where only one is the attacker address (others zero to skip) and set the final uint256 amount to <= balanceOf(address(this)) and >0. 3) The function executes internal transfers from ADDRESS (the contract) to the provided recipients (offsets 0x1367–0x1370), so the attacker receives tokens directly from the contract’s own balance.","recommendation":"Add strict access control (e.g., onlyOwner) to selector 0x010791b0 or hardcode/validate recipients; if intended for internal distribution only, remove the external selector or require a trusted caller and fixed recipient list.","evidence":"Selector 0x010791b0 dispatches to 0x12b3 (arg parsing at 0x0298 → JUMP 0x12b3). At 0x12b3–0x12ce the only gates are slot0x17 > 0 and amount > 0; there is no CALLER/ORIGIN check. Transfers are executed from the contract itself via `ADDRESS` and a user-supplied recipient and amount (`0000136a: ADDRESS`, `0000136d: PUSH2 0x370e`, `00001370: JUMP`), repeatedly for each provided address. Internal transfer logic at 0x370e updates balances. slot0x17 is incremented during normal transfers at 0x252e, making the gate reachable.","locations":["`BYTECODE_BUNDLE.txt:3010`","`BYTECODE_BUNDLE.txt:3087`","`BYTECODE_BUNDLE.txt:3092`","`BYTECODE_BUNDLE.txt:5157`","`BYTECODE_BUNDLE.txt:7282`"]}]}
[codex:432789] tokens used
[codex:432789] 85,989
[codex:432789] {"no_findings":false,"summary":"Found a public batch-transfer entrypoint that moves tokens from the contract’s own balance to caller-specified recipients without any caller authorization, enabling a direct drain of contract-held tokens once fees/accumulations exist.","findings":[{"severity":"high","category":"access_control","title":"Unrestricted batch transfer drains contract-held tokens","exploit_scenario":"1) Wait until the contract holds a token balance (e.g., fees accumulate; slot 0x17 becomes non-zero from normal transfers). 2) Call selector 0x010791b0 with 10 address parameters where only one is the attacker address (others zero to skip) and set the final uint256 amount to <= balanceOf(address(this)) and >0. 3) The function executes internal transfers from ADDRESS (the contract) to the provided recipients (offsets 0x1367–0x1370), so the attacker receives tokens directly from the contract’s own balance.","recommendation":"Add strict access control (e.g., onlyOwner) to selector 0x010791b0 or hardcode/validate recipients; if intended for internal distribution only, remove the external selector or require a trusted caller and fixed recipient list.","evidence":"Selector 0x010791b0 dispatches to 0x12b3 (arg parsing at 0x0298 → JUMP 0x12b3). At 0x12b3–0x12ce the only gates are slot0x17 > 0 and amount > 0; there is no CALLER/ORIGIN check. Transfers are executed from the contract itself via `ADDRESS` and a user-supplied recipient and amount (`0000136a: ADDRESS`, `0000136d: PUSH2 0x370e`, `00001370: JUMP`), repeatedly for each provided address. Internal transfer logic at 0x370e updates balances. slot0x17 is incremented during normal transfers at 0x252e, making the gate reachable.","locations":["`BYTECODE_BUNDLE.txt:3010`","`BYTECODE_BUNDLE.txt:3087`","`BYTECODE_BUNDLE.txt:3092`","`BYTECODE_BUNDLE.txt:5157`","`BYTECODE_BUNDLE.txt:7282`"]}]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-09T20:16:00.687936+00:00",
        "timed_out": false,
        "returncode": 0
    },
    "summary": "Found a public batch-transfer entrypoint that moves tokens from the contract\u2019s own balance to caller-specified recipients without any caller authorization, enabling a direct drain of contract-held tokens once fees/accumulations exist.",
    "raw_final": {
        "summary": "Found a public batch-transfer entrypoint that moves tokens from the contract\u2019s own balance to caller-specified recipients without any caller authorization, enabling a direct drain of contract-held tokens once fees/accumulations exist.",
        "findings": [
            {
                "title": "Unrestricted batch transfer drains contract-held tokens",
                "category": "access_control",
                "evidence": "Selector 0x010791b0 dispatches to 0x12b3 (arg parsing at 0x0298 \u2192 JUMP 0x12b3). At 0x12b3\u20130x12ce the only gates are slot0x17 > 0 and amount > 0; there is no CALLER/ORIGIN check. Transfers are executed from the contract itself via `ADDRESS` and a user-supplied recipient and amount (`0000136a: ADDRESS`, `0000136d: PUSH2 0x370e`, `00001370: JUMP`), repeatedly for each provided address. Internal transfer logic at 0x370e updates balances. slot0x17 is incremented during normal transfers at 0x252e, making the gate reachable.",
                "severity": "high",
                "locations": [
                    "`BYTECODE_BUNDLE.txt:3010`",
                    "`BYTECODE_BUNDLE.txt:3087`",
                    "`BYTECODE_BUNDLE.txt:3092`",
                    "`BYTECODE_BUNDLE.txt:5157`",
                    "`BYTECODE_BUNDLE.txt:7282`"
                ],
                "recommendation": "Add strict access control (e.g., onlyOwner) to selector 0x010791b0 or hardcode/validate recipients; if intended for internal distribution only, remove the external selector or require a trusted caller and fixed recipient list.",
                "exploit_scenario": "1) Wait until the contract holds a token balance (e.g., fees accumulate; slot 0x17 becomes non-zero from normal transfers). 2) Call selector 0x010791b0 with 10 address parameters where only one is the attacker address (others zero to skip) and set the final uint256 amount to <= balanceOf(address(this)) and >0. 3) The function executes internal transfers from ADDRESS (the contract) to the provided recipients (offsets 0x1367\u20130x1370), so the attacker receives tokens directly from the contract\u2019s own balance."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1,
    "timeout_fallback": false
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
1
Total opcodes
7575
Flags
create_opcodes_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0293
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002e: SWAP1
0000002f: DIV
00000030: PUSH4 0xffffffff
00000035: AND
00000036: DUP1
00000037: PUSH4 0x010791b0
0000003c: EQ
0000003d: PUSH2 0x0298
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0x049bf071
00000047: EQ
00000048: PUSH2 0x0405
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0x06fdde03
00000052: EQ
00000053: PUSH2 0x0430
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0x087d01df
0000005d: EQ
0000005e: PUSH2 0x04c0
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0x095ea7b3
00000068: EQ
00000069: PUSH2 0x04eb
0000006c: JUMPI
0000006d: DUP1
0000006e: PUSH4 0x0ac3887c
00000073: EQ
00000074: PUSH2 0x0550
00000077: JUMPI
00000078: DUP1
00000079: PUSH4 0x153548e2
0000007e: EQ
0000007f: PUSH2 0x057b
00000082: JUMPI
00000083: DUP1
00000084: PUSH4 0x18160ddd
00000089: EQ
0000008a: PUSH2 0x05a6
0000008d: JUMPI
0000008e: DUP1
0000008f: PUSH4 0x23392c7a
00000094: EQ
00000095: PUSH2 0x05d1
00000098: JUMPI
00000099: DUP1
0000009a: PUSH4 0x23b872dd
0000009f: EQ
000000a0: PUSH2 0x063e
000000a3: JUMPI
000000a4: DUP1
000000a5: PUSH4 0x28547ead
000000aa: EQ
000000ab: PUSH2 0x06c3
000000ae: JUMPI
000000af: DUP1
000000b0: PUSH4 0x313ce567
000000b5: EQ
000000b6: PUSH2 0x06ee
000000b9: JUMPI
000000ba: DUP1
000000bb: PUSH4 0x330c91cc
000000c0: EQ
000000c1: PUSH2 0x071f
000000c4: JUMPI
000000c5: DUP1
000000c6: PUSH4 0x361531c3
000000cb: EQ
000000cc: PUSH2 0x0762
000000cf: JUMPI
000000d0: DUP1
000000d1: PUSH4 0x39fae0c1
000000d6: EQ
000000d7: PUSH2 0x078d
000000da: JUMPI
000000db: DUP1
000000dc: PUSH4 0x42966c68
000000e1: EQ
000000e2: PUSH2 0x07b8
000000e5: JUMPI
000000e6: DUP1
000000e7: PUSH4 0x488f38db
000000ec: EQ
000000ed: PUSH2 0x07fd
000000f0: JUMPI
000000f1: DUP1
000000f2: PUSH4 0x6322c950
000000f7: EQ
000000f8: PUSH2 0x0828
000000fb: JUMPI
000000fc: DUP1
000000fd: PUSH4 0x679aefce
00000102: EQ
00000103: PUSH2 0x0853
00000106: JUMPI
00000107: DUP1
00000108: PUSH4 0x6a953e09
0000010d: EQ
0000010e: PUSH2 0x087e
00000111: JUMPI
00000112: DUP1
00000113: PUSH4 0x70a08231
00000118: EQ
00000119: PUSH2 0x08c1
0000011c: JUMPI
0000011d: DUP1
0000011e: PUSH4 0x749ba8b4
00000123: EQ
00000124: PUSH2 0x0918
00000127: JUMPI
00000128: DUP1
00000129: PUSH4 0x75418b9d
0000012e: EQ
0000012f: PUSH2 0x092f
00000132: JUMPI
00000133: DUP1
00000134: PUSH4 0x77b31803
00000139: EQ
0000013a: PUSH2 0x0973
0000013d: JUMPI
0000013e: DUP1
0000013f: PUSH4 0x79c65068
00000144: EQ
00000145: PUSH2 0x099e
00000148: JUMPI
00000149: DUP1
0000014a: PUSH4 0x79cc6790
0000014f: EQ
00000150: PUSH2 0x09eb
00000153: JUMPI
00000154: DUP1
00000155: PUSH4 0x828df79b
0000015a: EQ
0000015b: PUSH2 0x0a50
0000015e: JUMPI
0000015f: DUP1
00000160: PUSH4 0x83835543
00000165: EQ
00000166: PUSH2 0x0a7b
00000169: JUMPI
0000016a: DUP1
0000016b: PUSH4 0x8b2b3d8b
00000170: EQ
00000171: PUSH2 0x0ad6
00000174: JUMPI
00000175: DUP1
00000176: PUSH4 0x8da5cb5b
0000017b: EQ
0000017c: PUSH2 0x0b01
0000017f: JUMPI
00000180: DUP1
00000181: PUSH4 0x90b08a52
00000186: EQ
00000187: PUSH2 0x0b58
0000018a: JUMPI
0000018b: DUP1
0000018c: PUSH4 0x923cce5e
00000191: EQ
00000192: PUSH2 0x0b83
00000195: JUMPI
00000196: DUP1
00000197: PUSH4 0x94ede563
0000019c: EQ
0000019d: PUSH2 0x0bb0
000001a0: JUMPI
000001a1: DUP1
000001a2: PUSH4 0x95d89b41
000001a7: EQ
000001a8: PUSH2 0x0bdb
000001ab: JUMPI
000001ac: DUP1
000001ad: PUSH4 0x9980ec86
000001b2: EQ
000001b3: PUSH2 0x0c6b
000001b6: JUMPI
000001b7: DUP1
000001b8: PUSH4 0xa6f2ae3a
000001bd: EQ
000001be: PUSH2 0x0cac
000001c1: JUMPI
000001c2: DUP1
000001c3: PUSH4 0xa7ed901c
000001c8: EQ
000001c9: PUSH2 0x0cb6
000001cc: JUMPI
000001cd: DUP1
000001ce: PUSH4 0xa9059cbb
000001d3: EQ
000001d4: PUSH2 0x0ce3
000001d7: JUMPI
000001d8: DUP1
000001d9: PUSH4 0xab2d97d7
000001de: EQ
000001df: PUSH2 0x0d30
000001e2: JUMPI
000001e3: DUP1
000001e4: PUSH4 0xb2f2d21b
000001e9: EQ
000001ea: PUSH2 0x0d5b
000001ed: JUMPI
000001ee: DUP1
000001ef: PUSH4 0xba93b0ec
000001f4: EQ
000001f5: PUSH2 0x0e31
000001f8: JUMPI
000001f9: DUP1
000001fa: PUSH4 0xc98166c0
000001ff: EQ
00000200: PUSH2 0x0e5c
00000203: JUMPI
00000204: DUP1
00000205: PUSH4 0xcae9ca51
0000020a: EQ
0000020b: PUSH2 0x0e87
0000020e: JUMPI
0000020f: DUP1
00000210: PUSH4 0xd5bbc3bb
00000215: EQ
00000216: PUSH2 0x0f32
00000219: JUMPI
0000021a: DUP1
0000021b: PUSH4 0xdb20cb3e
00000220: EQ
00000221: PUSH2 0x0f75
00000224: JUMPI
00000225: DUP1
00000226: PUSH4 0xdd62ed3e
0000022b: EQ
0000022c: PUSH2 0x0fe2
0000022f: JUMPI
00000230: DUP1
00000231: PUSH4 0xe132db41
00000236: EQ
00000237: PUSH2 0x1059
0000023a: JUMPI
0000023b: DUP1
0000023c: PUSH4 0xe296796e
00000241: EQ
00000242: PUSH2 0x1070
00000245: JUMPI
00000246: DUP1
00000247: PUSH4 0xeda456ba
0000024c: EQ
0000024d: PUSH2 0x1087
00000250: JUMPI
00000251: DUP1
00000252: PUSH4 0xee5c4567
00000257: EQ
00000258: PUSH2 0x10ce
0000025b: JUMPI
0000025c: DUP1
0000025d: PUSH4 0xf2801fe7
00000262: EQ
00000263: PUSH2 0x10f9
00000266: JUMPI
00000267: DUP1
00000268: PUSH4 0xf2fde38b
0000026d: EQ
0000026e: PUSH2 0x11ef
00000271: JUMPI
00000272: DUP1
00000273: PUSH4 0xf7227831
00000278: EQ
00000279: PUSH2 0x1232
0000027c: JUMPI
0000027d: DUP1
0000027e: PUSH4 0xf843d7fd
00000283: EQ
00000284: PUSH2 0x125d
00000287: JUMPI
00000288: DUP1
00000289: PUSH4 0xfdef933b
0000028e: EQ
0000028f: PUSH2 0x1288
00000292: JUMPI
00000293: JUMPDEST
00000294: PUSH1 0x00
00000296: DUP1
00000297: REVERT
00000298: JUMPDEST
00000299: CALLVALUE
0000029a: DUP1
0000029b: ISZERO
0000029c: PUSH2 0x02a4
0000029f: JUMPI
000002a0: PUSH1 0x00
000002a2: DUP1
000002a3: REVERT
000002a4: JUMPDEST
000002a5: POP
000002a6: PUSH2 0x0403
000002a9: PUSH1 0x04
000002ab: DUP1
000002ac: CALLDATASIZE
000002ad: SUB
000002ae: DUP2
000002af: ADD
000002b0: SWAP1
000002b1: DUP1
000002b2: DUP1
000002b3: CALLDATALOAD
000002b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002c9: AND
000002ca: SWAP1
000002cb: PUSH1 0x20
000002cd: ADD
000002ce: SWAP1
000002cf: SWAP3
000002d0: SWAP2
000002d1: SWAP1
000002d2: DUP1
000002d3: CALLDATALOAD
000002d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002e9: AND
000002ea: SWAP1
000002eb: PUSH1 0x20
000002ed: ADD
000002ee: SWAP1
000002ef: SWAP3
000002f0: SWAP2
000002f1: SWAP1
000002f2: DUP1
000002f3: CALLDATALOAD
000002f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000309: AND
0000030a: SWAP1
0000030b: PUSH1 0x20
0000030d: ADD
0000030e: SWAP1
0000030f: SWAP3
00000310: SWAP2
00000311: SWAP1
00000312: DUP1
00000313: CALLDATALOAD
00000314: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000329: AND
0000032a: SWAP1
0000032b: PUSH1 0x20
0000032d: ADD
0000032e: SWAP1
0000032f: SWAP3
00000330: SWAP2
00000331: SWAP1
00000332: DUP1
00000333: CALLDATALOAD
00000334: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000349: AND
0000034a: SWAP1
0000034b: PUSH1 0x20
0000034d: ADD
0000034e: SWAP1
0000034f: SWAP3
00000350: SWAP2
00000351: SWAP1
00000352: DUP1
00000353: CALLDATALOAD
00000354: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000369: AND
0000036a: SWAP1
0000036b: PUSH1 0x20
0000036d: ADD
0000036e: SWAP1
0000036f: SWAP3
00000370: SWAP2
00000371: SWAP1
00000372: DUP1
00000373: CALLDATALOAD
00000374: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000389: AND
0000038a: SWAP1
0000038b: PUSH1 0x20
0000038d: ADD
0000038e: SWAP1
0000038f: SWAP3
00000390: SWAP2
00000391: SWAP1
00000392: DUP1
00000393: CALLDATALOAD
00000394: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003a9: AND
000003aa: SWAP1
000003ab: PUSH1 0x20
000003ad: ADD
000003ae: SWAP1
000003af: SWAP3
000003b0: SWAP2
000003b1: SWAP1
000003b2: DUP1
000003b3: CALLDATALOAD
000003b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003c9: AND
000003ca: SWAP1
000003cb: PUSH1 0x20
000003cd: ADD
000003ce: SWAP1
000003cf: SWAP3
000003d0: SWAP2
000003d1: SWAP1
000003d2: DUP1
000003d3: CALLDATALOAD
000003d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003e9: AND
000003ea: SWAP1
000003eb: PUSH1 0x20
000003ed: ADD
000003ee: SWAP1
000003ef: SWAP3
000003f0: SWAP2
000003f1: SWAP1
000003f2: DUP1
000003f3: CALLDATALOAD
000003f4: SWAP1
000003f5: PUSH1 0x20
000003f7: ADD
000003f8: SWAP1
000003f9: SWAP3
000003fa: SWAP2
000003fb: SWAP1
000003fc: POP
000003fd: POP
000003fe: POP
000003ff: PUSH2 0x12b3
00000402: JUMP
00000403: JUMPDEST
00000404: STOP
00000405: JUMPDEST
00000406: CALLVALUE
00000407: DUP1
00000408: ISZERO
00000409: PUSH2 0x0411
0000040c: JUMPI
0000040d: PUSH1 0x00
0000040f: DUP1
00000410: REVERT
00000411: JUMPDEST
00000412: POP
00000413: PUSH2 0x041a
00000416: PUSH2 0x15de
00000419: JUMP
0000041a: JUMPDEST
0000041b: PUSH1 0x40
0000041d: MLOAD
0000041e: DUP1
0000041f: DUP3
00000420: DUP2
00000421: MSTORE
00000422: PUSH1 0x20
00000424: ADD
00000425: SWAP2
00000426: POP
00000427: POP
00000428: PUSH1 0x40
0000042a: MLOAD
0000042b: DUP1
0000042c: SWAP2
0000042d: SUB
0000042e: SWAP1
0000042f: RETURN
00000430: JUMPDEST
00000431: CALLVALUE
00000432: DUP1
00000433: ISZERO
00000434: PUSH2 0x043c
00000437: JUMPI
00000438: PUSH1 0x00
0000043a: DUP1
0000043b: REVERT
0000043c: JUMPDEST
0000043d: POP
0000043e: PUSH2 0x0445
00000441: PUSH2 0x15e4
00000444: JUMP
00000445: JUMPDEST
00000446: PUSH1 0x40
00000448: MLOAD
00000449: DUP1
0000044a: DUP1
0000044b: PUSH1 0x20
0000044d: ADD
0000044e: DUP3
0000044f: DUP2
00000450: SUB
00000451: DUP3
00000452: MSTORE
00000453: DUP4
00000454: DUP2
00000455: DUP2
00000456: MLOAD
00000457: DUP2
00000458: MSTORE
00000459: PUSH1 0x20
0000045b: ADD
0000045c: SWAP2
0000045d: POP
0000045e: DUP1
0000045f: MLOAD
00000460: SWAP1
00000461: PUSH1 0x20
00000463: ADD
00000464: SWAP1
00000465: DUP1
00000466: DUP4
00000467: DUP4
00000468: PUSH1 0x00
0000046a: JUMPDEST
0000046b: DUP4
0000046c: DUP2
0000046d: LT
0000046e: ISZERO
0000046f: PUSH2 0x0485
00000472: JUMPI
00000473: DUP1
00000474: DUP3
00000475: ADD
00000476: MLOAD
00000477: DUP2
00000478: DUP5
00000479: ADD
0000047a: MSTORE
0000047b: PUSH1 0x20
0000047d: DUP2
0000047e: ADD
0000047f: SWAP1
00000480: POP
00000481: PUSH2 0x046a
00000484: JUMP
00000485: JUMPDEST
00000486: POP
00000487: POP
00000488: POP
00000489: POP
0000048a: SWAP1
0000048b: POP
0000048c: SWAP1
0000048d: DUP2
0000048e: ADD
0000048f: SWAP1
00000490: PUSH1 0x1f
00000492: AND
00000493: DUP1
00000494: ISZERO
00000495: PUSH2 0x04b2
00000498: JUMPI
00000499: DUP1
0000049a: DUP3
0000049b: SUB
0000049c: DUP1
0000049d: MLOAD
0000049e: PUSH1 0x01
000004a0: DUP4
000004a1: PUSH1 0x20
000004a3: SUB
000004a4: PUSH2 0x0100
000004a7: EXP
000004a8: SUB
000004a9: NOT
000004aa: AND
000004ab: DUP2
000004ac: MSTORE
000004ad: PUSH1 0x20
000004af: ADD
000004b0: SWAP2
000004b1: POP
000004b2: JUMPDEST
000004b3: POP
000004b4: SWAP3
000004b5: POP
000004b6: POP
000004b7: POP
000004b8: PUSH1 0x40
000004ba: MLOAD
000004bb: DUP1
000004bc: SWAP2
000004bd: SUB
000004be: SWAP1
000004bf: RETURN
000004c0: JUMPDEST
000004c1: CALLVALUE
000004c2: DUP1
000004c3: ISZERO
000004c4: PUSH2 0x04cc
000004c7: JUMPI
000004c8: PUSH1 0x00
000004ca: DUP1
000004cb: REVERT
000004cc: JUMPDEST
000004cd: POP
000004ce: PUSH2 0x04d5
000004d1: PUSH2 0x1682
000004d4: JUMP
000004d5: JUMPDEST
000004d6: PUSH1 0x40
000004d8: MLOAD
000004d9: DUP1
000004da: DUP3
000004db: DUP2
000004dc: MSTORE
000004dd: PUSH1 0x20
000004df: ADD
000004e0: SWAP2
000004e1: POP
000004e2: POP
000004e3: PUSH1 0x40
000004e5: MLOAD
000004e6: DUP1
000004e7: SWAP2
000004e8: SUB
000004e9: SWAP1
000004ea: RETURN
000004eb: JUMPDEST
000004ec: CALLVALUE
000004ed: DUP1
000004ee: ISZERO
000004ef: PUSH2 0x04f7
000004f2: JUMPI
000004f3: PUSH1 0x00
000004f5: DUP1
000004f6: REVERT
000004f7: JUMPDEST
000004f8: POP
000004f9: PUSH2 0x0536
000004fc: PUSH1 0x04
000004fe: DUP1
000004ff: CALLDATASIZE
00000500: SUB
00000501: DUP2
00000502: ADD
00000503: SWAP1
00000504: DUP1
00000505: DUP1
00000506: CALLDATALOAD
00000507: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000051c: AND
0000051d: SWAP1
0000051e: PUSH1 0x20
00000520: ADD
00000521: SWAP1
00000522: SWAP3
00000523: SWAP2
00000524: SWAP1
00000525: DUP1
00000526: CALLDATALOAD
00000527: SWAP1
00000528: PUSH1 0x20
0000052a: ADD
0000052b: SWAP1
0000052c: SWAP3
0000052d: SWAP2
0000052e: SWAP1
0000052f: POP
00000530: POP
00000531: POP
00000532: PUSH2 0x168c
00000535: JUMP
00000536: JUMPDEST
00000537: PUSH1 0x40
00000539: MLOAD
0000053a: DUP1
0000053b: DUP3
0000053c: ISZERO
0000053d: ISZERO
0000053e: ISZERO
0000053f: ISZERO
00000540: DUP2
00000541: MSTORE
00000542: PUSH1 0x20
00000544: ADD
00000545: SWAP2
00000546: POP
00000547: POP
00000548: PUSH1 0x40
0000054a: MLOAD
0000054b: DUP1
0000054c: SWAP2
0000054d: SUB
0000054e: SWAP1
0000054f: RETURN
00000550: JUMPDEST
00000551: CALLVALUE
00000552: DUP1
00000553: ISZERO
00000554: PUSH2 0x055c
00000557: JUMPI
00000558: PUSH1 0x00
0000055a: DUP1
0000055b: REVERT
0000055c: JUMPDEST
0000055d: POP
0000055e: PUSH2 0x0565
00000561: PUSH2 0x1719
00000564: JUMP
00000565: JUMPDEST
00000566: PUSH1 0x40
00000568: MLOAD
00000569: DUP1
0000056a: DUP3
0000056b: DUP2
0000056c: MSTORE
0000056d: PUSH1 0x20
0000056f: ADD
00000570: SWAP2
00000571: POP
00000572: POP
00000573: PUSH1 0x40
00000575: MLOAD
00000576: DUP1
00000577: SWAP2
00000578: SUB
00000579: SWAP1
0000057a: RETURN
0000057b: JUMPDEST
0000057c: CALLVALUE
0000057d: DUP1
0000057e: ISZERO
0000057f: PUSH2 0x0587
00000582: JUMPI
00000583: PUSH1 0x00
00000585: DUP1
00000586: REVERT
00000587: JUMPDEST
00000588: POP
00000589: PUSH2 0x0590
0000058c: PUSH2 0x171f
0000058f: JUMP
00000590: JUMPDEST
00000591: PUSH1 0x40
00000593: MLOAD
00000594: DUP1
00000595: DUP3
00000596: DUP2
00000597: MSTORE
00000598: PUSH1 0x20
0000059a: ADD
0000059b: SWAP2
0000059c: POP
0000059d: POP
0000059e: PUSH1 0x40
000005a0: MLOAD
000005a1: DUP1
000005a2: SWAP2
000005a3: SUB
000005a4: SWAP1
000005a5: RETURN
000005a6: JUMPDEST
000005a7: CALLVALUE
000005a8: DUP1
000005a9: ISZERO
000005aa: PUSH2 0x05b2
000005ad: JUMPI
000005ae: PUSH1 0x00
000005b0: DUP1
000005b1: REVERT
000005b2: JUMPDEST
000005b3: POP
000005b4: PUSH2 0x05bb
000005b7: PUSH2 0x1725
000005ba: JUMP
000005bb: JUMPDEST
000005bc: PUSH1 0x40
000005be: MLOAD
000005bf: DUP1
000005c0: DUP3
000005c1: DUP2
000005c2: MSTORE
000005c3: PUSH1 0x20
000005c5: ADD
000005c6: SWAP2
000005c7: POP
000005c8: POP
000005c9: PUSH1 0x40
000005cb: MLOAD
000005cc: DUP1
000005cd: SWAP2
000005ce: SUB
000005cf: SWAP1
000005d0: RETURN
000005d1: JUMPDEST
000005d2: CALLVALUE
000005d3: DUP1
000005d4: ISZERO
000005d5: PUSH2 0x05dd
000005d8: JUMPI
000005d9: PUSH1 0x00
000005db: DUP1
000005dc: REVERT
000005dd: JUMPDEST
000005de: POP
000005df: PUSH2 0x05fc
000005e2: PUSH1 0x04
000005e4: DUP1
000005e5: CALLDATASIZE
000005e6: SUB
000005e7: DUP2
000005e8: ADD
000005e9: SWAP1
000005ea: DUP1
000005eb: DUP1
000005ec: CALLDATALOAD
000005ed: SWAP1
000005ee: PUSH1 0x20
000005f0: ADD
000005f1: SWAP1
000005f2: SWAP3
000005f3: SWAP2
000005f4: SWAP1
000005f5: POP
000005f6: POP
000005f7: POP
000005f8: PUSH2 0x172b
000005fb: JUMP
000005fc: JUMPDEST
000005fd: PUSH1 0x40
000005ff: MLOAD
00000600: DUP1
00000601: DUP3
00000602: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000617: AND
00000618: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000062d: AND
0000062e: DUP2
0000062f: MSTORE
00000630: PUSH1 0x20
00000632: ADD
00000633: SWAP2
00000634: POP
00000635: POP
00000636: PUSH1 0x40
00000638: MLOAD
00000639: DUP1
0000063a: SWAP2
0000063b: SUB
0000063c: SWAP1
0000063d: RETURN
0000063e: JUMPDEST
0000063f: CALLVALUE
00000640: DUP1
00000641: ISZERO
00000642: PUSH2 0x064a
00000645: JUMPI
00000646: PUSH1 0x00
00000648: DUP1
00000649: REVERT
0000064a: JUMPDEST
0000064b: POP
0000064c: PUSH2 0x06a9
0000064f: PUSH1 0x04
00000651: DUP1
00000652: CALLDATASIZE
00000653: SUB
00000654: DUP2
00000655: ADD
00000656: SWAP1
00000657: DUP1
00000658: DUP1
00000659: CALLDATALOAD
0000065a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000066f: AND
00000670: SWAP1
00000671: PUSH1 0x20
00000673: ADD
00000674: SWAP1
00000675: SWAP3
00000676: SWAP2
00000677: SWAP1
00000678: DUP1
00000679: CALLDATALOAD
0000067a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000068f: AND
00000690: SWAP1
00000691: PUSH1 0x20
00000693: ADD
00000694: SWAP1
00000695: SWAP3
00000696: SWAP2
00000697: SWAP1
00000698: DUP1
00000699: CALLDATALOAD
0000069a: SWAP1
0000069b: PUSH1 0x20
0000069d: ADD
0000069e: SWAP1
0000069f: SWAP3
000006a0: SWAP2
000006a1: SWAP1
000006a2: POP
000006a3: POP
000006a4: POP
000006a5: PUSH2 0x1769
000006a8: JUMP
000006a9: JUMPDEST
000006aa: PUSH1 0x40
000006ac: MLOAD
000006ad: DUP1
000006ae: DUP3
000006af: ISZERO
000006b0: ISZERO
000006b1: ISZERO
000006b2: ISZERO
000006b3: DUP2
000006b4: MSTORE
000006b5: PUSH1 0x20
000006b7: ADD
000006b8: SWAP2
000006b9: POP
000006ba: POP
000006bb: PUSH1 0x40
000006bd: MLOAD
000006be: DUP1
000006bf: SWAP2
000006c0: SUB
000006c1: SWAP1
000006c2: RETURN
000006c3: JUMPDEST
000006c4: CALLVALUE
000006c5: DUP1
000006c6: ISZERO
000006c7: PUSH2 0x06cf
000006ca: JUMPI
000006cb: PUSH1 0x00
000006cd: DUP1
000006ce: REVERT
000006cf: JUMPDEST
000006d0: POP
000006d1: PUSH2 0x06d8
000006d4: PUSH2 0x1899
000006d7: JUMP
000006d8: JUMPDEST
000006d9: PUSH1 0x40
000006db: MLOAD
000006dc: DUP1
000006dd: DUP3
000006de: DUP2
000006df: MSTORE
000006e0: PUSH1 0x20
000006e2: ADD
000006e3: SWAP2
000006e4: POP
000006e5: POP
000006e6: PUSH1 0x40
000006e8: MLOAD
000006e9: DUP1
000006ea: SWAP2
000006eb: SUB
000006ec: SWAP1
000006ed: RETURN
000006ee: JUMPDEST
000006ef: CALLVALUE
000006f0: DUP1
000006f1: ISZERO
000006f2: PUSH2 0x06fa
000006f5: JUMPI
000006f6: PUSH1 0x00
000006f8: DUP1
000006f9: REVERT
000006fa: JUMPDEST
000006fb: POP
000006fc: PUSH2 0x0703
000006ff: PUSH2 0x189f
00000702: JUMP
00000703: JUMPDEST
00000704: PUSH1 0x40
00000706: MLOAD
00000707: DUP1
00000708: DUP3
00000709: PUSH1 0xff
0000070b: AND
0000070c: PUSH1 0xff
0000070e: AND
0000070f: DUP2
00000710: MSTORE
00000711: PUSH1 0x20
00000713: ADD
00000714: SWAP2
00000715: POP
00000716: POP
00000717: PUSH1 0x40
00000719: MLOAD
0000071a: DUP1
0000071b: SWAP2
0000071c: SUB
0000071d: SWAP1
0000071e: RETURN
0000071f: JUMPDEST
00000720: CALLVALUE
00000721: DUP1
00000722: ISZERO
00000723: PUSH2 0x072b
00000726: JUMPI
00000727: PUSH1 0x00
00000729: DUP1
0000072a: REVERT
0000072b: JUMPDEST
0000072c: POP
0000072d: PUSH2 0x0760
00000730: PUSH1 0x04
00000732: DUP1
00000733: CALLDATASIZE
00000734: SUB
00000735: DUP2
00000736: ADD
00000737: SWAP1
00000738: DUP1
00000739: DUP1
0000073a: CALLDATALOAD
0000073b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000750: AND
00000751: SWAP1
00000752: PUSH1 0x20
00000754: ADD
00000755: SWAP1
00000756: SWAP3
00000757: SWAP2
00000758: SWAP1
00000759: POP
0000075a: POP
0000075b: POP
0000075c: PUSH2 0x18b2
0000075f: JUMP
00000760: JUMPDEST
00000761: STOP
00000762: JUMPDEST
00000763: CALLVALUE
00000764: DUP1
00000765: ISZERO
00000766: PUSH2 0x076e
00000769: JUMPI
0000076a: PUSH1 0x00
0000076c: DUP1
0000076d: REVERT
0000076e: JUMPDEST
0000076f: POP
00000770: PUSH2 0x0777
00000773: PUSH2 0x192d
00000776: JUMP
00000777: JUMPDEST
00000778: PUSH1 0x40
0000077a: MLOAD
0000077b: DUP1
0000077c: DUP3
0000077d: DUP2
0000077e: MSTORE
0000077f: PUSH1 0x20
00000781: ADD
00000782: SWAP2
00000783: POP
00000784: POP
00000785: PUSH1 0x40
00000787: MLOAD
00000788: DUP1
00000789: SWAP2
0000078a: SUB
0000078b: SWAP1
0000078c: RETURN
0000078d: JUMPDEST
0000078e: CALLVALUE
0000078f: DUP1
00000790: ISZERO
00000791: PUSH2 0x0799
00000794: JUMPI
00000795: PUSH1 0x00
00000797: DUP1
00000798: REVERT
00000799: JUMPDEST
0000079a: POP
0000079b: PUSH2 0x07a2
0000079e: PUSH2 0x1937
000007a1: JUMP
000007a2: JUMPDEST
000007a3: PUSH1 0x40
000007a5: MLOAD
000007a6: DUP1
000007a7: DUP3
000007a8: DUP2
000007a9: MSTORE
000007aa: PUSH1 0x20
000007ac: ADD
000007ad: SWAP2
000007ae: POP
000007af: POP
000007b0: PUSH1 0x40
000007b2: MLOAD
000007b3: DUP1
000007b4: SWAP2
000007b5: SUB
000007b6: SWAP1
000007b7: RETURN
000007b8: JUMPDEST
000007b9: CALLVALUE
000007ba: DUP1
000007bb: ISZERO
000007bc: PUSH2 0x07c4
000007bf: JUMPI
000007c0: PUSH1 0x00
000007c2: DUP1
000007c3: REVERT
000007c4: JUMPDEST
000007c5: POP
000007c6: PUSH2 0x07e3
000007c9: PUSH1 0x04
000007cb: DUP1
000007cc: CALLDATASIZE
000007cd: SUB
000007ce: DUP2
000007cf: ADD
000007d0: SWAP1
000007d1: DUP1
000007d2: DUP1
000007d3: CALLDATALOAD
000007d4: SWAP1
000007d5: PUSH1 0x20
000007d7: ADD
000007d8: SWAP1
000007d9: SWAP3
000007da: SWAP2
000007db: SWAP1
000007dc: POP
000007dd: POP
000007de: POP
000007df: PUSH2 0x1941
000007e2: JUMP
000007e3: JUMPDEST
000007e4: PUSH1 0x40
000007e6: MLOAD
000007e7: DUP1
000007e8: DUP3
000007e9: ISZERO
000007ea: ISZERO
000007eb: ISZERO
000007ec: ISZERO
000007ed: DUP2
000007ee: MSTORE
000007ef: PUSH1 0x20
000007f1: ADD
000007f2: SWAP2
000007f3: POP
000007f4: POP
000007f5: PUSH1 0x40
000007f7: MLOAD
000007f8: DUP1
000007f9: SWAP2
000007fa: SUB
000007fb: SWAP1
000007fc: RETURN
000007fd: JUMPDEST
000007fe: CALLVALUE
000007ff: DUP1
00000800: ISZERO
00000801: PUSH2 0x0809
00000804: JUMPI
00000805: PUSH1 0x00
00000807: DUP1
00000808: REVERT
00000809: JUMPDEST
0000080a: POP
0000080b: PUSH2 0x0812
0000080e: PUSH2 0x1a45
00000811: JUMP
00000812: JUMPDEST
00000813: PUSH1 0x40
00000815: MLOAD
00000816: DUP1
00000817: DUP3
00000818: DUP2
00000819: MSTORE
0000081a: PUSH1 0x20
0000081c: ADD
0000081d: SWAP2
0000081e: POP
0000081f: POP
00000820: PUSH1 0x40
00000822: MLOAD
00000823: DUP1
00000824: SWAP2
00000825: SUB
00000826: SWAP1
00000827: RETURN
00000828: JUMPDEST
00000829: CALLVALUE
0000082a: DUP1
0000082b: ISZERO
0000082c: PUSH2 0x0834
0000082f: JUMPI
00000830: PUSH1 0x00
00000832: DUP1
00000833: REVERT
00000834: JUMPDEST
00000835: POP
00000836: PUSH2 0x083d
00000839: PUSH2 0x1a4f
0000083c: JUMP
0000083d: JUMPDEST
0000083e: PUSH1 0x40
00000840: MLOAD
00000841: DUP1
00000842: DUP3
00000843: DUP2
00000844: MSTORE
00000845: PUSH1 0x20
00000847: ADD
00000848: SWAP2
00000849: POP
0000084a: POP
0000084b: PUSH1 0x40
0000084d: MLOAD
0000084e: DUP1
0000084f: SWAP2
00000850: SUB
00000851: SWAP1
00000852: RETURN
00000853: JUMPDEST
00000854: CALLVALUE
00000855: DUP1
00000856: ISZERO
00000857: PUSH2 0x085f
0000085a: JUMPI
0000085b: PUSH1 0x00
0000085d: DUP1
0000085e: REVERT
0000085f: JUMPDEST
00000860: POP
00000861: PUSH2 0x0868
00000864: PUSH2 0x1a59
00000867: JUMP
00000868: JUMPDEST
00000869: PUSH1 0x40
0000086b: MLOAD
0000086c: DUP1
0000086d: DUP3
0000086e: DUP2
0000086f: MSTORE
00000870: PUSH1 0x20
00000872: ADD
00000873: SWAP2
00000874: POP
00000875: POP
00000876: PUSH1 0x40
00000878: MLOAD
00000879: DUP1
0000087a: SWAP2
0000087b: SUB
0000087c: SWAP1
0000087d: RETURN
0000087e: JUMPDEST
0000087f: CALLVALUE
00000880: DUP1
00000881: ISZERO
00000882: PUSH2 0x088a
00000885: JUMPI
00000886: PUSH1 0x00
00000888: DUP1
00000889: REVERT
0000088a: JUMPDEST
0000088b: POP
0000088c: PUSH2 0x08bf
0000088f: PUSH1 0x04
00000891: DUP1
00000892: CALLDATASIZE
00000893: SUB
00000894: DUP2
00000895: ADD
00000896: SWAP1
00000897: DUP1
00000898: DUP1
00000899: CALLDATALOAD
0000089a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008af: AND
000008b0: SWAP1
000008b1: PUSH1 0x20
000008b3: ADD
000008b4: SWAP1
000008b5: SWAP3
000008b6: SWAP2
000008b7: SWAP1
000008b8: POP
000008b9: POP
000008ba: POP
000008bb: PUSH2 0x1a63
000008be: JUMP
000008bf: JUMPDEST
000008c0: STOP
000008c1: JUMPDEST
000008c2: CALLVALUE
000008c3: DUP1
000008c4: ISZERO
000008c5: PUSH2 0x08cd
000008c8: JUMPI
000008c9: PUSH1 0x00
000008cb: DUP1
000008cc: REVERT
000008cd: JUMPDEST
000008ce: POP
000008cf: PUSH2 0x0902
000008d2: PUSH1 0x04
000008d4: DUP1
000008d5: CALLDATASIZE
000008d6: SUB
000008d7: DUP2
000008d8: ADD
000008d9: SWAP1
000008da: DUP1
000008db: DUP1
000008dc: CALLDATALOAD
000008dd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008f2: AND
000008f3: SWAP1
000008f4: PUSH1 0x20
000008f6: ADD
000008f7: SWAP1
000008f8: SWAP3
000008f9: SWAP2
000008fa: SWAP1
000008fb: POP
000008fc: POP
000008fd: POP
000008fe: PUSH2 0x1b12
00000901: JUMP
00000902: JUMPDEST
00000903: PUSH1 0x40
00000905: MLOAD
00000906: DUP1
00000907: DUP3
00000908: DUP2
00000909: MSTORE
0000090a: PUSH1 0x20
0000090c: ADD
0000090d: SWAP2
0000090e: POP
0000090f: POP
00000910: PUSH1 0x40
00000912: MLOAD
00000913: DUP1
00000914: SWAP2
00000915: SUB
00000916: SWAP1
00000917: RETURN
00000918: JUMPDEST
00000919: CALLVALUE
0000091a: DUP1
0000091b: ISZERO
0000091c: PUSH2 0x0924
0000091f: JUMPI
00000920: PUSH1 0x00
00000922: DUP1
00000923: REVERT
00000924: JUMPDEST
00000925: POP
00000926: PUSH2 0x092d
00000929: PUSH2 0x1b2a
0000092c: JUMP
0000092d: JUMPDEST
0000092e: STOP
0000092f: JUMPDEST
00000930: CALLVALUE
00000931: DUP1
00000932: ISZERO
00000933: PUSH2 0x093b
00000936: JUMPI
00000937: PUSH1 0x00
00000939: DUP1
0000093a: REVERT
0000093b: JUMPDEST
0000093c: POP
0000093d: PUSH2 0x0944
00000940: PUSH2 0x1dbe
00000943: JUMP
00000944: JUMPDEST
00000945: PUSH1 0x40
00000947: MLOAD
00000948: DUP1
00000949: DUP6
0000094a: DUP2
0000094b: MSTORE
0000094c: PUSH1 0x20
0000094e: ADD
0000094f: DUP5
00000950: DUP2
00000951: MSTORE
00000952: PUSH1 0x20
00000954: ADD
00000955: DUP4
00000956: DUP2
00000957: MSTORE
00000958: PUSH1 0x20
0000095a: ADD
0000095b: DUP3
0000095c: ISZERO
0000095d: ISZERO
0000095e: ISZERO
0000095f: ISZERO
00000960: DUP2
00000961: MSTORE
00000962: PUSH1 0x20
00000964: ADD
00000965: SWAP5
00000966: POP
00000967: POP
00000968: POP
00000969: POP
0000096a: POP
0000096b: PUSH1 0x40
0000096d: MLOAD
0000096e: DUP1
0000096f: SWAP2
00000970: SUB
00000971: SWAP1
00000972: RETURN
00000973: JUMPDEST
00000974: CALLVALUE
00000975: DUP1
00000976: ISZERO
00000977: PUSH2 0x097f
0000097a: JUMPI
0000097b: PUSH1 0x00
0000097d: DUP1
0000097e: REVERT
0000097f: JUMPDEST
00000980: POP
00000981: PUSH2 0x0988
00000984: PUSH2 0x1e33
00000987: JUMP
00000988: JUMPDEST
00000989: PUSH1 0x40
0000098b: MLOAD
0000098c: DUP1
0000098d: DUP3
0000098e: DUP2
0000098f: MSTORE
00000990: PUSH1 0x20
00000992: ADD
00000993: SWAP2
00000994: POP
00000995: POP
00000996: PUSH1 0x40
00000998: MLOAD
00000999: DUP1
0000099a: SWAP2
0000099b: SUB
0000099c: SWAP1
0000099d: RETURN
0000099e: JUMPDEST
0000099f: CALLVALUE
000009a0: DUP1
000009a1: ISZERO
000009a2: PUSH2 0x09aa
000009a5: JUMPI
000009a6: PUSH1 0x00
000009a8: DUP1
000009a9: REVERT
000009aa: JUMPDEST
000009ab: POP
000009ac: PUSH2 0x09e9
000009af: PUSH1 0x04
000009b1: DUP1
000009b2: CALLDATASIZE
000009b3: SUB
000009b4: DUP2
000009b5: ADD
000009b6: SWAP1
000009b7: DUP1
000009b8: DUP1
000009b9: CALLDATALOAD
000009ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009cf: AND
000009d0: SWAP1
000009d1: PUSH1 0x20
000009d3: ADD
000009d4: SWAP1
000009d5: SWAP3
000009d6: SWAP2
000009d7: SWAP1
000009d8: DUP1
000009d9: CALLDATALOAD
000009da: SWAP1
000009db: PUSH1 0x20
000009dd: ADD
000009de: SWAP1
000009df: SWAP3
000009e0: SWAP2
000009e1: SWAP1
000009e2: POP
000009e3: POP
000009e4: POP
000009e5: PUSH2 0x1e39
000009e8: JUMP
000009e9: JUMPDEST
000009ea: STOP
000009eb: JUMPDEST
000009ec: CALLVALUE
000009ed: DUP1
000009ee: ISZERO
000009ef: PUSH2 0x09f7
000009f2: JUMPI
000009f3: PUSH1 0x00
000009f5: DUP1
000009f6: REVERT
000009f7: JUMPDEST
000009f8: POP
000009f9: PUSH2 0x0a36
000009fc: PUSH1 0x04
000009fe: DUP1
000009ff: CALLDATASIZE
00000a00: SUB
00000a01: DUP2
00000a02: ADD
00000a03: SWAP1
00000a04: DUP1
00000a05: DUP1
00000a06: CALLDATALOAD
00000a07: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a1c: AND
00000a1d: SWAP1
00000a1e: PUSH1 0x20
00000a20: ADD
00000a21: SWAP1
00000a22: SWAP3
00000a23: SWAP2
00000a24: SWAP1
00000a25: DUP1
00000a26: CALLDATALOAD
00000a27: SWAP1
00000a28: PUSH1 0x20
00000a2a: ADD
00000a2b: SWAP1
00000a2c: SWAP3
00000a2d: SWAP2
00000a2e: SWAP1
00000a2f: POP
00000a30: POP
00000a31: POP
00000a32: PUSH2 0x1fc0
00000a35: JUMP
00000a36: JUMPDEST
00000a37: PUSH1 0x40
00000a39: MLOAD
00000a3a: DUP1
00000a3b: DUP3
00000a3c: ISZERO
00000a3d: ISZERO
00000a3e: ISZERO
00000a3f: ISZERO
00000a40: DUP2
00000a41: MSTORE
00000a42: PUSH1 0x20
00000a44: ADD
00000a45: SWAP2
00000a46: POP
00000a47: POP
00000a48: PUSH1 0x40
00000a4a: MLOAD
00000a4b: DUP1
00000a4c: SWAP2
00000a4d: SUB
00000a4e: SWAP1
00000a4f: RETURN
00000a50: JUMPDEST
00000a51: CALLVALUE
00000a52: DUP1
00000a53: ISZERO
00000a54: PUSH2 0x0a5c
00000a57: JUMPI
00000a58: PUSH1 0x00
00000a5a: DUP1
00000a5b: REVERT
00000a5c: JUMPDEST
00000a5d: POP
00000a5e: PUSH2 0x0a65
00000a61: PUSH2 0x214e
00000a64: JUMP
00000a65: JUMPDEST
00000a66: PUSH1 0x40
00000a68: MLOAD
00000a69: DUP1
00000a6a: DUP3
00000a6b: DUP2
00000a6c: MSTORE
00000a6d: PUSH1 0x20
00000a6f: ADD
00000a70: SWAP2
00000a71: POP
00000a72: POP
00000a73: PUSH1 0x40
00000a75: MLOAD
00000a76: DUP1
00000a77: SWAP2
00000a78: SUB
00000a79: SWAP1
00000a7a: RETURN
00000a7b: JUMPDEST
00000a7c: CALLVALUE
00000a7d: DUP1
00000a7e: ISZERO
00000a7f: PUSH2 0x0a87
00000a82: JUMPI
00000a83: PUSH1 0x00
00000a85: DUP1
00000a86: REVERT
00000a87: JUMPDEST
00000a88: POP
00000a89: PUSH2 0x0abc
00000a8c: PUSH1 0x04
00000a8e: DUP1
00000a8f: CALLDATASIZE
00000a90: SUB
00000a91: DUP2
00000a92: ADD
00000a93: SWAP1
00000a94: DUP1
00000a95: DUP1
00000a96: CALLDATALOAD
00000a97: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000aac: AND
00000aad: SWAP1
00000aae: PUSH1 0x20
00000ab0: ADD
00000ab1: SWAP1
00000ab2: SWAP3
00000ab3: SWAP2
00000ab4: SWAP1
00000ab5: POP
00000ab6: POP
00000ab7: POP
00000ab8: PUSH2 0x2154
00000abb: JUMP
00000abc: JUMPDEST
00000abd: PUSH1 0x40
00000abf: MLOAD
00000ac0: DUP1
00000ac1: DUP3
00000ac2: ISZERO
00000ac3: ISZERO
00000ac4: ISZERO
00000ac5: ISZERO
00000ac6: DUP2
00000ac7: MSTORE
00000ac8: PUSH1 0x20
00000aca: ADD
00000acb: SWAP2
00000acc: POP
00000acd: POP
00000ace: PUSH1 0x40
00000ad0: MLOAD
00000ad1: DUP1
00000ad2: SWAP2
00000ad3: SUB
00000ad4: SWAP1
00000ad5: RETURN
00000ad6: JUMPDEST
00000ad7: CALLVALUE
00000ad8: DUP1
00000ad9: ISZERO
00000ada: PUSH2 0x0ae2
00000add: JUMPI
00000ade: PUSH1 0x00
00000ae0: DUP1
00000ae1: REVERT
00000ae2: JUMPDEST
00000ae3: POP
00000ae4: PUSH2 0x0aeb
00000ae7: PUSH2 0x21ad
00000aea: JUMP
00000aeb: JUMPDEST
00000aec: PUSH1 0x40
00000aee: MLOAD
00000aef: DUP1
00000af0: DUP3
00000af1: DUP2
00000af2: MSTORE
00000af3: PUSH1 0x20
00000af5: ADD
00000af6: SWAP2
00000af7: POP
00000af8: POP
00000af9: PUSH1 0x40
00000afb: MLOAD
00000afc: DUP1
00000afd: SWAP2
00000afe: SUB
00000aff: SWAP1
00000b00: RETURN
00000b01: JUMPDEST
00000b02: CALLVALUE
00000b03: DUP1
00000b04: ISZERO
00000b05: PUSH2 0x0b0d
00000b08: JUMPI
00000b09: PUSH1 0x00
00000b0b: DUP1
00000b0c: REVERT
00000b0d: JUMPDEST
00000b0e: POP
00000b0f: PUSH2 0x0b16
00000b12: PUSH2 0x21b3
00000b15: JUMP
00000b16: JUMPDEST
00000b17: PUSH1 0x40
00000b19: MLOAD
00000b1a: DUP1
00000b1b: DUP3
00000b1c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b31: AND
00000b32: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b47: AND
00000b48: DUP2
00000b49: MSTORE
00000b4a: PUSH1 0x20
00000b4c: ADD
00000b4d: SWAP2
00000b4e: POP
00000b4f: POP
00000b50: PUSH1 0x40
00000b52: MLOAD
00000b53: DUP1
00000b54: SWAP2
00000b55: SUB
00000b56: SWAP1
00000b57: RETURN
00000b58: JUMPDEST
00000b59: CALLVALUE
00000b5a: DUP1
00000b5b: ISZERO
00000b5c: PUSH2 0x0b64
00000b5f: JUMPI
00000b60: PUSH1 0x00
00000b62: DUP1
00000b63: REVERT
00000b64: JUMPDEST
00000b65: POP
00000b66: PUSH2 0x0b6d
00000b69: PUSH2 0x21d8
00000b6c: JUMP
00000b6d: JUMPDEST
00000b6e: PUSH1 0x40
00000b70: MLOAD
00000b71: DUP1
00000b72: DUP3
00000b73: DUP2
00000b74: MSTORE
00000b75: PUSH1 0x20
00000b77: ADD
00000b78: SWAP2
00000b79: POP
00000b7a: POP
00000b7b: PUSH1 0x40
00000b7d: MLOAD
00000b7e: DUP1
00000b7f: SWAP2
00000b80: SUB
00000b81: SWAP1
00000b82: RETURN
00000b83: JUMPDEST
00000b84: CALLVALUE
00000b85: DUP1
00000b86: ISZERO
00000b87: PUSH2 0x0b8f
00000b8a: JUMPI
00000b8b: PUSH1 0x00
00000b8d: DUP1
00000b8e: REVERT
00000b8f: JUMPDEST
00000b90: POP
00000b91: PUSH2 0x0bae
00000b94: PUSH1 0x04
00000b96: DUP1
00000b97: CALLDATASIZE
00000b98: SUB
00000b99: DUP2
00000b9a: ADD
00000b9b: SWAP1
00000b9c: DUP1
00000b9d: DUP1
00000b9e: CALLDATALOAD
00000b9f: SWAP1
00000ba0: PUSH1 0x20
00000ba2: ADD
00000ba3: SWAP1
00000ba4: SWAP3
00000ba5: SWAP2
00000ba6: SWAP1
00000ba7: POP
00000ba8: POP
00000ba9: POP
00000baa: PUSH2 0x21e2
00000bad: JUMP
00000bae: JUMPDEST
00000baf: STOP
00000bb0: JUMPDEST
00000bb1: CALLVALUE
00000bb2: DUP1
00000bb3: ISZERO
00000bb4: PUSH2 0x0bbc
00000bb7: JUMPI
00000bb8: PUSH1 0x00
00000bba: DUP1
00000bbb: REVERT
00000bbc: JUMPDEST
00000bbd: POP
00000bbe: PUSH2 0x0bc5
00000bc1: PUSH2 0x22e4
00000bc4: JUMP
00000bc5: JUMPDEST
00000bc6: PUSH1 0x40
00000bc8: MLOAD
00000bc9: DUP1
00000bca: DUP3
00000bcb: DUP2
00000bcc: MSTORE
00000bcd: PUSH1 0x20
00000bcf: ADD
00000bd0: SWAP2
00000bd1: POP
00000bd2: POP
00000bd3: PUSH1 0x40
00000bd5: MLOAD
00000bd6: DUP1
00000bd7: SWAP2
00000bd8: SUB
00000bd9: SWAP1
00000bda: RETURN
00000bdb: JUMPDEST
00000bdc: CALLVALUE
00000bdd: DUP1
00000bde: ISZERO
00000bdf: PUSH2 0x0be7
00000be2: JUMPI
00000be3: PUSH1 0x00
00000be5: DUP1
00000be6: REVERT
00000be7: JUMPDEST
00000be8: POP
00000be9: PUSH2 0x0bf0
00000bec: PUSH2 0x22ee
00000bef: JUMP
00000bf0: JUMPDEST
00000bf1: PUSH1 0x40
00000bf3: MLOAD
00000bf4: DUP1
00000bf5: DUP1
00000bf6: PUSH1 0x20
00000bf8: ADD
00000bf9: DUP3
00000bfa: DUP2
00000bfb: SUB
00000bfc: DUP3
00000bfd: MSTORE
00000bfe: DUP4
00000bff: DUP2
00000c00: DUP2
00000c01: MLOAD
00000c02: DUP2
00000c03: MSTORE
00000c04: PUSH1 0x20
00000c06: ADD
00000c07: SWAP2
00000c08: POP
00000c09: DUP1
00000c0a: MLOAD
00000c0b: SWAP1
00000c0c: PUSH1 0x20
00000c0e: ADD
00000c0f: SWAP1
00000c10: DUP1
00000c11: DUP4
00000c12: DUP4
00000c13: PUSH1 0x00
00000c15: JUMPDEST
00000c16: DUP4
00000c17: DUP2
00000c18: LT
00000c19: ISZERO
00000c1a: PUSH2 0x0c30
00000c1d: JUMPI
00000c1e: DUP1
00000c1f: DUP3
00000c20: ADD
00000c21: MLOAD
00000c22: DUP2
00000c23: DUP5
00000c24: ADD
00000c25: MSTORE
00000c26: PUSH1 0x20
00000c28: DUP2
00000c29: ADD
00000c2a: SWAP1
00000c2b: POP
00000c2c: PUSH2 0x0c15
00000c2f: JUMP
00000c30: JUMPDEST
00000c31: POP
00000c32: POP
00000c33: POP
00000c34: POP
00000c35: SWAP1
00000c36: POP
00000c37: SWAP1
00000c38: DUP2
00000c39: ADD
00000c3a: SWAP1
00000c3b: PUSH1 0x1f
00000c3d: AND
00000c3e: DUP1
00000c3f: ISZERO
00000c40: PUSH2 0x0c5d
00000c43: JUMPI
00000c44: DUP1
00000c45: DUP3
00000c46: SUB
00000c47: DUP1
00000c48: MLOAD
00000c49: PUSH1 0x01
00000c4b: DUP4
00000c4c: PUSH1 0x20
00000c4e: SUB
00000c4f: PUSH2 0x0100
00000c52: EXP
00000c53: SUB
00000c54: NOT
00000c55: AND
00000c56: DUP2
00000c57: MSTORE
00000c58: PUSH1 0x20
00000c5a: ADD
00000c5b: SWAP2
00000c5c: POP
00000c5d: JUMPDEST
00000c5e: POP
00000c5f: SWAP3
00000c60: POP
00000c61: POP
00000c62: POP
00000c63: PUSH1 0x40
00000c65: MLOAD
00000c66: DUP1
00000c67: SWAP2
00000c68: SUB
00000c69: SWAP1
00000c6a: RETURN
00000c6b: JUMPDEST
00000c6c: CALLVALUE
00000c6d: DUP1
00000c6e: ISZERO
00000c6f: PUSH2 0x0c77
00000c72: JUMPI
00000c73: PUSH1 0x00
00000c75: DUP1
00000c76: REVERT
00000c77: JUMPDEST
00000c78: POP
00000c79: PUSH2 0x0c96
00000c7c: PUSH1 0x04
00000c7e: DUP1
00000c7f: CALLDATASIZE
00000c80: SUB
00000c81: DUP2
00000c82: ADD
00000c83: SWAP1
00000c84: DUP1
00000c85: DUP1
00000c86: CALLDATALOAD
00000c87: SWAP1
00000c88: PUSH1 0x20
00000c8a: ADD
00000c8b: SWAP1
00000c8c: SWAP3
00000c8d: SWAP2
00000c8e: SWAP1
00000c8f: POP
00000c90: POP
00000c91: POP
00000c92: PUSH2 0x238c
00000c95: JUMP
00000c96: JUMPDEST
00000c97: PUSH1 0x40
00000c99: MLOAD
00000c9a: DUP1
00000c9b: DUP3
00000c9c: DUP2
00000c9d: MSTORE
00000c9e: PUSH1 0x20
00000ca0: ADD
00000ca1: SWAP2
00000ca2: POP
00000ca3: POP
00000ca4: PUSH1 0x40
00000ca6: MLOAD
00000ca7: DUP1
00000ca8: SWAP2
00000ca9: SUB
00000caa: SWAP1
00000cab: RETURN
00000cac: JUMPDEST
00000cad: PUSH2 0x0cb4
00000cb0: PUSH2 0x239a
00000cb3: JUMP
00000cb4: JUMPDEST
00000cb5: STOP
00000cb6: JUMPDEST
00000cb7: CALLVALUE
00000cb8: DUP1
00000cb9: ISZERO
00000cba: PUSH2 0x0cc2
00000cbd: JUMPI
00000cbe: PUSH1 0x00
00000cc0: DUP1
00000cc1: REVERT
00000cc2: JUMPDEST
00000cc3: POP
00000cc4: PUSH2 0x0ce1
00000cc7: PUSH1 0x04
00000cc9: DUP1
00000cca: CALLDATASIZE
00000ccb: SUB
00000ccc: DUP2
00000ccd: ADD
00000cce: SWAP1
00000ccf: DUP1
00000cd0: DUP1
00000cd1: CALLDATALOAD
00000cd2: SWAP1
00000cd3: PUSH1 0x20
00000cd5: ADD
00000cd6: SWAP1
00000cd7: SWAP3
00000cd8: SWAP2
00000cd9: SWAP1
00000cda: POP
00000cdb: POP
00000cdc: POP
00000cdd: PUSH2 0x23ed
00000ce0: JUMP
00000ce1: JUMPDEST
00000ce2: STOP
00000ce3: JUMPDEST
00000ce4: CALLVALUE
00000ce5: DUP1
00000ce6: ISZERO
00000ce7: PUSH2 0x0cef
00000cea: JUMPI
00000ceb: PUSH1 0x00
00000ced: DUP1
00000cee: REVERT
00000cef: JUMPDEST
00000cf0: POP
00000cf1: PUSH2 0x0d2e
00000cf4: PUSH1 0x04
00000cf6: DUP1
00000cf7: CALLDATASIZE
00000cf8: SUB
00000cf9: DUP2
00000cfa: ADD
00000cfb: SWAP1
00000cfc: DUP1
00000cfd: DUP1
00000cfe: CALLDATALOAD
00000cff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d14: AND
00000d15: SWAP1
00000d16: PUSH1 0x20
00000d18: ADD
00000d19: SWAP1
00000d1a: SWAP3
00000d1b: SWAP2
00000d1c: SWAP1
00000d1d: DUP1
00000d1e: CALLDATALOAD
00000d1f: SWAP1
00000d20: PUSH1 0x20
00000d22: ADD
00000d23: SWAP1
00000d24: SWAP3
00000d25: SWAP2
00000d26: SWAP1
00000d27: POP
00000d28: POP
00000d29: POP
00000d2a: PUSH2 0x2642
00000d2d: JUMP
00000d2e: JUMPDEST
00000d2f: STOP
00000d30: JUMPDEST
00000d31: CALLVALUE
00000d32: DUP1
00000d33: ISZERO
00000d34: PUSH2 0x0d3c
00000d37: JUMPI
00000d38: PUSH1 0x00
00000d3a: DUP1
00000d3b: REVERT
00000d3c: JUMPDEST
00000d3d: POP
00000d3e: PUSH2 0x0d45
00000d41: PUSH2 0x2651
00000d44: JUMP
00000d45: JUMPDEST
00000d46: PUSH1 0x40
00000d48: MLOAD
00000d49: DUP1
00000d4a: DUP3
00000d4b: DUP2
00000d4c: MSTORE
00000d4d: PUSH1 0x20
00000d4f: ADD
00000d50: SWAP2
00000d51: POP
00000d52: POP
00000d53: PUSH1 0x40
00000d55: MLOAD
00000d56: DUP1
00000d57: SWAP2
00000d58: SUB
00000d59: SWAP1
00000d5a: RETURN
00000d5b: JUMPDEST
00000d5c: CALLVALUE
00000d5d: DUP1
00000d5e: ISZERO
00000d5f: PUSH2 0x0d67
00000d62: JUMPI
00000d63: PUSH1 0x00
00000d65: DUP1
00000d66: REVERT
00000d67: JUMPDEST
00000d68: POP
00000d69: PUSH2 0x0d9c
00000d6c: PUSH1 0x04
00000d6e: DUP1
00000d6f: CALLDATASIZE
00000d70: SUB
00000d71: DUP2
00000d72: ADD
00000d73: SWAP1
00000d74: DUP1
00000d75: DUP1
00000d76: CALLDATALOAD
00000d77: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d8c: AND
00000d8d: SWAP1
00000d8e: PUSH1 0x20
00000d90: ADD
00000d91: SWAP1
00000d92: SWAP3
00000d93: SWAP2
00000d94: SWAP1
00000d95: POP
00000d96: POP
00000d97: POP
00000d98: PUSH2 0x2657
00000d9b: JUMP
00000d9c: JUMPDEST
00000d9d: PUSH1 0x40
00000d9f: MLOAD
00000da0: DUP1
00000da1: DUP8
00000da2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000db7: AND
00000db8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dcd: AND
00000dce: DUP2
00000dcf: MSTORE
00000dd0: PUSH1 0x20
00000dd2: ADD
00000dd3: DUP7
00000dd4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000de9: AND
00000dea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dff: AND
00000e00: DUP2
00000e01: MSTORE
00000e02: PUSH1 0x20
00000e04: ADD
00000e05: DUP6
00000e06: DUP2
00000e07: MSTORE
00000e08: PUSH1 0x20
00000e0a: ADD
00000e0b: DUP5
00000e0c: DUP2
00000e0d: MSTORE
00000e0e: PUSH1 0x20
00000e10: ADD
00000e11: DUP4
00000e12: DUP2
00000e13: MSTORE
00000e14: PUSH1 0x20
00000e16: ADD
00000e17: DUP3
00000e18: ISZERO
00000e19: ISZERO
00000e1a: ISZERO
00000e1b: ISZERO
00000e1c: DUP2
00000e1d: MSTORE
00000e1e: PUSH1 0x20
00000e20: ADD
00000e21: SWAP7
00000e22: POP
00000e23: POP
00000e24: POP
00000e25: POP
00000e26: POP
00000e27: POP
00000e28: POP
00000e29: PUSH1 0x40
00000e2b: MLOAD
00000e2c: DUP1
00000e2d: SWAP2
00000e2e: SUB
00000e2f: SWAP1
00000e30: RETURN
00000e31: JUMPDEST
00000e32: CALLVALUE
00000e33: DUP1
00000e34: ISZERO
00000e35: PUSH2 0x0e3d
00000e38: JUMPI
00000e39: PUSH1 0x00
00000e3b: DUP1
00000e3c: REVERT
00000e3d: JUMPDEST
00000e3e: POP
00000e3f: PUSH2 0x0e46
00000e42: PUSH2 0x2854
00000e45: JUMP
00000e46: JUMPDEST
00000e47: PUSH1 0x40
00000e49: MLOAD
00000e4a: DUP1
00000e4b: DUP3
00000e4c: DUP2
00000e4d: MSTORE
00000e4e: PUSH1 0x20
00000e50: ADD
00000e51: SWAP2
00000e52: POP
00000e53: POP
00000e54: PUSH1 0x40
00000e56: MLOAD
00000e57: DUP1
00000e58: SWAP2
00000e59: SUB
00000e5a: SWAP1
00000e5b: RETURN
00000e5c: JUMPDEST
00000e5d: CALLVALUE
00000e5e: DUP1
00000e5f: ISZERO
00000e60: PUSH2 0x0e68
00000e63: JUMPI
00000e64: PUSH1 0x00
00000e66: DUP1
00000e67: REVERT
00000e68: JUMPDEST
00000e69: POP
00000e6a: PUSH2 0x0e71
00000e6d: PUSH2 0x285a
00000e70: JUMP
00000e71: JUMPDEST
00000e72: PUSH1 0x40
00000e74: MLOAD
00000e75: DUP1
00000e76: DUP3
00000e77: DUP2
00000e78: MSTORE
00000e79: PUSH1 0x20
00000e7b: ADD
00000e7c: SWAP2
00000e7d: POP
00000e7e: POP
00000e7f: PUSH1 0x40
00000e81: MLOAD
00000e82: DUP1
00000e83: SWAP2
00000e84: SUB
00000e85: SWAP1
00000e86: RETURN
00000e87: JUMPDEST
00000e88: CALLVALUE
00000e89: DUP1
00000e8a: ISZERO
00000e8b: PUSH2 0x0e93
00000e8e: JUMPI
00000e8f: PUSH1 0x00
00000e91: DUP1
00000e92: REVERT
00000e93: JUMPDEST
00000e94: POP
00000e95: PUSH2 0x0f18
00000e98: PUSH1 0x04
00000e9a: DUP1
00000e9b: CALLDATASIZE
00000e9c: SUB
00000e9d: DUP2
00000e9e: ADD
00000e9f: SWAP1
00000ea0: DUP1
00000ea1: DUP1
00000ea2: CALLDATALOAD
00000ea3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000eb8: AND
00000eb9: SWAP1
00000eba: PUSH1 0x20
00000ebc: ADD
00000ebd: SWAP1
00000ebe: SWAP3
00000ebf: SWAP2
00000ec0: SWAP1
00000ec1: DUP1
00000ec2: CALLDATALOAD
00000ec3: SWAP1
00000ec4: PUSH1 0x20
00000ec6: ADD
00000ec7: SWAP1
00000ec8: SWAP3
00000ec9: SWAP2
00000eca: SWAP1
00000ecb: DUP1
00000ecc: CALLDATALOAD
00000ecd: SWAP1
00000ece: PUSH1 0x20
00000ed0: ADD
00000ed1: SWAP1
00000ed2: DUP3
00000ed3: ADD
00000ed4: DUP1
00000ed5: CALLDATALOAD
00000ed6: SWAP1
00000ed7: PUSH1 0x20
00000ed9: ADD
00000eda: SWAP1
00000edb: DUP1
00000edc: DUP1
00000edd: PUSH1 0x1f
00000edf: ADD
00000ee0: PUSH1 0x20
00000ee2: DUP1
00000ee3: SWAP2
00000ee4: DIV
00000ee5: MUL
00000ee6: PUSH1 0x20
00000ee8: ADD
00000ee9: PUSH1 0x40
00000eeb: MLOAD
00000eec: SWAP1
00000eed: DUP2
00000eee: ADD
00000eef: PUSH1 0x40
00000ef1: MSTORE
00000ef2: DUP1
00000ef3: SWAP4
00000ef4: SWAP3
00000ef5: SWAP2
00000ef6: SWAP1
00000ef7: DUP2
00000ef8: DUP2
00000ef9: MSTORE
00000efa: PUSH1 0x20
00000efc: ADD
00000efd: DUP4
00000efe: DUP4
00000eff: DUP1
00000f00: DUP3
00000f01: DUP5
00000f02: CALLDATACOPY
00000f03: DUP3
00000f04: ADD
00000f05: SWAP2
00000f06: POP
00000f07: POP
00000f08: POP
00000f09: POP
00000f0a: POP
00000f0b: POP
00000f0c: SWAP2
00000f0d: SWAP3
00000f0e: SWAP2
00000f0f: SWAP3
00000f10: SWAP1
00000f11: POP
00000f12: POP
00000f13: POP
00000f14: PUSH2 0x2860
00000f17: JUMP
00000f18: JUMPDEST
00000f19: PUSH1 0x40
00000f1b: MLOAD
00000f1c: DUP1
00000f1d: DUP3
00000f1e: ISZERO
00000f1f: ISZERO
00000f20: ISZERO
00000f21: ISZERO
00000f22: DUP2
00000f23: MSTORE
00000f24: PUSH1 0x20
00000f26: ADD
00000f27: SWAP2
00000f28: POP
00000f29: POP
00000f2a: PUSH1 0x40
00000f2c: MLOAD
00000f2d: DUP1
00000f2e: SWAP2
00000f2f: SUB
00000f30: SWAP1
00000f31: RETURN
00000f32: JUMPDEST
00000f33: CALLVALUE
00000f34: DUP1
00000f35: ISZERO
00000f36: PUSH2 0x0f3e
00000f39: JUMPI
00000f3a: PUSH1 0x00
00000f3c: DUP1
00000f3d: REVERT
00000f3e: JUMPDEST
00000f3f: POP
00000f40: PUSH2 0x0f73
00000f43: PUSH1 0x04
00000f45: DUP1
00000f46: CALLDATASIZE
00000f47: SUB
00000f48: DUP2
00000f49: ADD
00000f4a: SWAP1
00000f4b: DUP1
00000f4c: DUP1
00000f4d: CALLDATALOAD
00000f4e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f63: AND
00000f64: SWAP1
00000f65: PUSH1 0x20
00000f67: ADD
00000f68: SWAP1
00000f69: SWAP3
00000f6a: SWAP2
00000f6b: SWAP1
00000f6c: POP
00000f6d: POP
00000f6e: POP
00000f6f: PUSH2 0x29e3
00000f72: JUMP
00000f73: JUMPDEST
00000f74: STOP
00000f75: JUMPDEST
00000f76: CALLVALUE
00000f77: DUP1
00000f78: ISZERO
00000f79: PUSH2 0x0f81
00000f7c: JUMPI
00000f7d: PUSH1 0x00
00000f7f: DUP1
00000f80: REVERT
00000f81: JUMPDEST
00000f82: POP
00000f83: PUSH2 0x0fa0
00000f86: PUSH1 0x04
00000f88: DUP1
00000f89: CALLDATASIZE
00000f8a: SUB
00000f8b: DUP2
00000f8c: ADD
00000f8d: SWAP1
00000f8e: DUP1
00000f8f: DUP1
00000f90: CALLDATALOAD
00000f91: SWAP1
00000f92: PUSH1 0x20
00000f94: ADD
00000f95: SWAP1
00000f96: SWAP3
00000f97: SWAP2
00000f98: SWAP1
00000f99: POP
00000f9a: POP
00000f9b: POP
00000f9c: PUSH2 0x2b39
00000f9f: JUMP
00000fa0: JUMPDEST
00000fa1: PUSH1 0x40
00000fa3: MLOAD
00000fa4: DUP1
00000fa5: DUP3
00000fa6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000fbb: AND
00000fbc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000fd1: AND
00000fd2: DUP2
00000fd3: MSTORE
00000fd4: PUSH1 0x20
00000fd6: ADD
00000fd7: SWAP2
00000fd8: POP
00000fd9: POP
00000fda: PUSH1 0x40
00000fdc: MLOAD
00000fdd: DUP1
00000fde: SWAP2
00000fdf: SUB
00000fe0: SWAP1
00000fe1: RETURN
00000fe2: JUMPDEST
00000fe3: CALLVALUE
00000fe4: DUP1
00000fe5: ISZERO
00000fe6: PUSH2 0x0fee
00000fe9: JUMPI
00000fea: PUSH1 0x00
00000fec: DUP1
00000fed: REVERT
00000fee: JUMPDEST
00000fef: POP
00000ff0: PUSH2 0x1043
00000ff3: PUSH1 0x04
00000ff5: DUP1
00000ff6: CALLDATASIZE
00000ff7: SUB
00000ff8: DUP2
00000ff9: ADD
00000ffa: SWAP1
00000ffb: DUP1
00000ffc: DUP1
00000ffd: CALLDATALOAD
00000ffe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001013: AND
00001014: SWAP1
00001015: PUSH1 0x20
00001017: ADD
00001018: SWAP1
00001019: SWAP3
0000101a: SWAP2
0000101b: SWAP1
0000101c: DUP1
0000101d: CALLDATALOAD
0000101e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001033: AND
00001034: SWAP1
00001035: PUSH1 0x20
00001037: ADD
00001038: SWAP1
00001039: SWAP3
0000103a: SWAP2
0000103b: SWAP1
0000103c: POP
0000103d: POP
0000103e: POP
0000103f: PUSH2 0x2b77
00001042: JUMP
00001043: JUMPDEST
00001044: PUSH1 0x40
00001046: MLOAD
00001047: DUP1
00001048: DUP3
00001049: DUP2
0000104a: MSTORE
0000104b: PUSH1 0x20
0000104d: ADD
0000104e: SWAP2
0000104f: POP
00001050: POP
00001051: PUSH1 0x40
00001053: MLOAD
00001054: DUP1
00001055: SWAP2
00001056: SUB
00001057: SWAP1
00001058: RETURN
00001059: JUMPDEST
0000105a: CALLVALUE
0000105b: DUP1
0000105c: ISZERO
0000105d: PUSH2 0x1065
00001060: JUMPI
00001061: PUSH1 0x00
00001063: DUP1
00001064: REVERT
00001065: JUMPDEST
00001066: POP
00001067: PUSH2 0x106e
0000106a: PUSH2 0x2b9c
0000106d: JUMP
0000106e: JUMPDEST
0000106f: STOP
00001070: JUMPDEST
00001071: CALLVALUE
00001072: DUP1
00001073: ISZERO
00001074: PUSH2 0x107c
00001077: JUMPI
00001078: PUSH1 0x00
0000107a: DUP1
0000107b: REVERT
0000107c: JUMPDEST
0000107d: POP
0000107e: PUSH2 0x1085
00001081: PUSH2 0x2cfa
00001084: JUMP
00001085: JUMPDEST
00001086: STOP
00001087: JUMPDEST
00001088: CALLVALUE
00001089: DUP1
0000108a: ISZERO
0000108b: PUSH2 0x1093
0000108e: JUMPI
0000108f: PUSH1 0x00
00001091: DUP1
00001092: REVERT
00001093: JUMPDEST
00001094: POP
00001095: PUSH2 0x109c
00001098: PUSH2 0x2e7c
0000109b: JUMP
0000109c: JUMPDEST
0000109d: PUSH1 0x40
0000109f: MLOAD
000010a0: DUP1
000010a1: DUP7
000010a2: DUP2
000010a3: MSTORE
000010a4: PUSH1 0x20
000010a6: ADD
000010a7: DUP6
000010a8: DUP2
000010a9: MSTORE
000010aa: PUSH1 0x20
000010ac: ADD
000010ad: DUP5
000010ae: DUP2
000010af: MSTORE
000010b0: PUSH1 0x20
000010b2: ADD
000010b3: DUP4
000010b4: DUP2
000010b5: MSTORE
000010b6: PUSH1 0x20
000010b8: ADD
000010b9: DUP3
000010ba: DUP2
000010bb: MSTORE
000010bc: PUSH1 0x20
000010be: ADD
000010bf: SWAP6
000010c0: POP
000010c1: POP
000010c2: POP
000010c3: POP
000010c4: POP
000010c5: POP
000010c6: PUSH1 0x40
000010c8: MLOAD
000010c9: DUP1
000010ca: SWAP2
000010cb: SUB
000010cc: SWAP1
000010cd: RETURN
000010ce: JUMPDEST
000010cf: CALLVALUE
000010d0: DUP1
000010d1: ISZERO
000010d2: PUSH2 0x10da
000010d5: JUMPI
000010d6: PUSH1 0x00
000010d8: DUP1
000010d9: REVERT
000010da: JUMPDEST
000010db: POP
000010dc: PUSH2 0x10e3
000010df: PUSH2 0x2ea4
000010e2: JUMP
000010e3: JUMPDEST
000010e4: PUSH1 0x40
000010e6: MLOAD
000010e7: DUP1
000010e8: DUP3
000010e9: DUP2
000010ea: MSTORE
000010eb: PUSH1 0x20
000010ed: ADD
000010ee: SWAP2
000010ef: POP
000010f0: POP
000010f1: PUSH1 0x40
000010f3: MLOAD
000010f4: DUP1
000010f5: SWAP2
000010f6: SUB
000010f7: SWAP1
000010f8: RETURN
000010f9: JUMPDEST
000010fa: CALLVALUE
000010fb: DUP1
000010fc: ISZERO
000010fd: PUSH2 0x1105
00001100: JUMPI
00001101: PUSH1 0x00
00001103: DUP1
00001104: REVERT
00001105: JUMPDEST
00001106: POP
00001107: PUSH2 0x115a
0000110a: PUSH1 0x04
0000110c: DUP1
0000110d: CALLDATASIZE
0000110e: SUB
0000110f: DUP2
00001110: ADD
00001111: SWAP1
00001112: DUP1
00001113: DUP1
00001114: CALLDATALOAD
00001115: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000112a: AND
0000112b: SWAP1
0000112c: PUSH1 0x20
0000112e: ADD
0000112f: SWAP1
00001130: SWAP3
00001131: SWAP2
00001132: SWAP1
00001133: DUP1
00001134: CALLDATALOAD
00001135: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000114a: AND
0000114b: SWAP1
0000114c: PUSH1 0x20
0000114e: ADD
0000114f: SWAP1
00001150: SWAP3
00001151: SWAP2
00001152: SWAP1
00001153: POP
00001154: POP
00001155: POP
00001156: PUSH2 0x2eaa
00001159: JUMP
0000115a: JUMPDEST
0000115b: PUSH1 0x40
0000115d: MLOAD
0000115e: DUP1
0000115f: DUP8
00001160: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001175: AND
00001176: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000118b: AND
0000118c: DUP2
0000118d: MSTORE
0000118e: PUSH1 0x20
00001190: ADD
00001191: DUP7
00001192: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011a7: AND
000011a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011bd: AND
000011be: DUP2
000011bf: MSTORE
000011c0: PUSH1 0x20
000011c2: ADD
000011c3: DUP6
000011c4: DUP2
000011c5: MSTORE
000011c6: PUSH1 0x20
000011c8: ADD
000011c9: DUP5
000011ca: DUP2
000011cb: MSTORE
000011cc: PUSH1 0x20
000011ce: ADD
000011cf: DUP4
000011d0: DUP2
000011d1: MSTORE
000011d2: PUSH1 0x20
000011d4: ADD
000011d5: DUP3
000011d6: ISZERO
000011d7: ISZERO
000011d8: ISZERO
000011d9: ISZERO
000011da: DUP2
000011db: MSTORE
000011dc: PUSH1 0x20
000011de: ADD
000011df: SWAP7
000011e0: POP
000011e1: POP
000011e2: POP
000011e3: POP
000011e4: POP
000011e5: POP
000011e6: POP
000011e7: PUSH1 0x40
000011e9: MLOAD
000011ea: DUP1
000011eb: SWAP2
000011ec: SUB
000011ed: SWAP1
000011ee: RETURN
000011ef: JUMPDEST
000011f0: CALLVALUE
000011f1: DUP1
000011f2: ISZERO
000011f3: PUSH2 0x11fb
000011f6: JUMPI
000011f7: PUSH1 0x00
000011f9: DUP1
000011fa: REVERT
000011fb: JUMPDEST
000011fc: POP
000011fd: PUSH2 0x1230
00001200: PUSH1 0x04
00001202: DUP1
00001203: CALLDATASIZE
00001204: SUB
00001205: DUP2
00001206: ADD
00001207: SWAP1
00001208: DUP1
00001209: DUP1
0000120a: CALLDATALOAD
0000120b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001220: AND
00001221: SWAP1
00001222: PUSH1 0x20
00001224: ADD
00001225: SWAP1
00001226: SWAP3
00001227: SWAP2
00001228: SWAP1
00001229: POP
0000122a: POP
0000122b: POP
0000122c: PUSH2 0x3652
0000122f: JUMP
00001230: JUMPDEST
00001231: STOP
00001232: JUMPDEST
00001233: CALLVALUE
00001234: DUP1
00001235: ISZERO
00001236: PUSH2 0x123e
00001239: JUMPI
0000123a: PUSH1 0x00
0000123c: DUP1
0000123d: REVERT
0000123e: JUMPDEST
0000123f: POP
00001240: PUSH2 0x1247
00001243: PUSH2 0x36f0
00001246: JUMP
00001247: JUMPDEST
00001248: PUSH1 0x40
0000124a: MLOAD
0000124b: DUP1
0000124c: DUP3
0000124d: DUP2
0000124e: MSTORE
0000124f: PUSH1 0x20
00001251: ADD
00001252: SWAP2
00001253: POP
00001254: POP
00001255: PUSH1 0x40
00001257: MLOAD
00001258: DUP1
00001259: SWAP2
0000125a: SUB
0000125b: SWAP1
0000125c: RETURN
0000125d: JUMPDEST
0000125e: CALLVALUE
0000125f: DUP1
00001260: ISZERO
00001261: PUSH2 0x1269
00001264: JUMPI
00001265: PUSH1 0x00
00001267: DUP1
00001268: REVERT
00001269: JUMPDEST
0000126a: POP
0000126b: PUSH2 0x1272
0000126e: PUSH2 0x36fa
00001271: JUMP
00001272: JUMPDEST
00001273: PUSH1 0x40
00001275: MLOAD
00001276: DUP1
00001277: DUP3
00001278: DUP2
00001279: MSTORE
0000127a: PUSH1 0x20
0000127c: ADD
0000127d: SWAP2
0000127e: POP
0000127f: POP
00001280: PUSH1 0x40
00001282: MLOAD
00001283: DUP1
00001284: SWAP2
00001285: SUB
00001286: SWAP1
00001287: RETURN
00001288: JUMPDEST
00001289: CALLVALUE
0000128a: DUP1
0000128b: ISZERO
0000128c: PUSH2 0x1294
0000128f: JUMPI
00001290: PUSH1 0x00
00001292: DUP1
00001293: REVERT
00001294: JUMPDEST
00001295: POP
00001296: PUSH2 0x129d
00001299: PUSH2 0x3704
0000129c: JUMP
0000129d: JUMPDEST
0000129e: PUSH1 0x40
000012a0: MLOAD
000012a1: DUP1
000012a2: DUP3
000012a3: DUP2
000012a4: MSTORE
000012a5: PUSH1 0x20
000012a7: ADD
000012a8: SWAP2
000012a9: POP
000012aa: POP
000012ab: PUSH1 0x40
000012ad: MLOAD
000012ae: DUP1
000012af: SWAP2
000012b0: SUB
000012b1: SWAP1
000012b2: RETURN
000012b3: JUMPDEST
000012b4: PUSH1 0x00
000012b6: DUP1
000012b7: PUSH1 0x00
000012b9: DUP1
000012ba: PUSH1 0x17
000012bc: SLOAD
000012bd: GT
000012be: DUP1
000012bf: ISZERO
000012c0: PUSH2 0x12c9
000012c3: JUMPI
000012c4: POP
000012c5: PUSH1 0x00
000012c7: DUP5
000012c8: GT
000012c9: JUMPDEST
000012ca: ISZERO
000012cb: PUSH2 0x15cd
000012ce: JUMPI
000012cf: PUSH1 0x17
000012d1: SLOAD
000012d2: SWAP3
000012d3: POP
000012d4: PUSH1 0x05
000012d6: PUSH1 0x00
000012d8: ADDRESS
000012d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012ee: AND
000012ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001304: AND
00001305: DUP2
00001306: MSTORE
00001307: PUSH1 0x20
00001309: ADD
0000130a: SWAP1
0000130b: DUP2
0000130c: MSTORE
0000130d: PUSH1 0x20
0000130f: ADD
00001310: PUSH1 0x00
00001312: KECCAK256
00001313: SLOAD
00001314: SWAP2
00001315: POP
00001316: DUP3
00001317: DUP3
00001318: LT
00001319: ISZERO
0000131a: PUSH2 0x1322
0000131d: JUMPI
0000131e: PUSH2 0x15ce
00001321: JUMP
00001322: JUMPDEST
00001323: DUP4
00001324: DUP4
00001325: DUP2
00001326: ISZERO
00001327: ISZERO
00001328: PUSH2 0x132d
0000132b: JUMPI
0000132c: INVALID
0000132d: JUMPDEST
0000132e: DIV
0000132f: SWAP1
00001330: POP
00001331: PUSH1 0x00
00001333: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001348: AND
00001349: DUP15
0000134a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000135f: AND
00001360: EQ
00001361: ISZERO
00001362: ISZERO
00001363: PUSH2 0x1372
00001366: JUMPI
00001367: PUSH2 0x1371
0000136a: ADDRESS
0000136b: DUP16
0000136c: DUP4
0000136d: PUSH2 0x370e
00001370: JUMP
00001371: JUMPDEST
00001372: JUMPDEST
00001373: PUSH1 0x00
00001375: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000138a: AND
0000138b: DUP14
0000138c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013a1: AND
000013a2: EQ
000013a3: ISZERO
000013a4: ISZERO
000013a5: PUSH2 0x13b4
000013a8: JUMPI
000013a9: PUSH2 0x13b3
000013ac: ADDRESS
000013ad: DUP15
000013ae: DUP4
000013af: PUSH2 0x370e
000013b2: JUMP
000013b3: JUMPDEST
000013b4: JUMPDEST
000013b5: PUSH1 0x00
000013b7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013cc: AND
000013cd: DUP13
000013ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013e3: AND
000013e4: EQ
000013e5: ISZERO
000013e6: ISZERO
000013e7: PUSH2 0x13f6
000013ea: JUMPI
000013eb: PUSH2 0x13f5
000013ee: ADDRESS
000013ef: DUP14
000013f0: DUP4
000013f1: PUSH2 0x370e
000013f4: JUMP
000013f5: JUMPDEST
000013f6: JUMPDEST
000013f7: PUSH1 0x00
000013f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000140e: AND
0000140f: DUP12
00001410: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001425: AND
00001426: EQ
00001427: ISZERO
00001428: ISZERO
00001429: PUSH2 0x1438
0000142c: JUMPI
0000142d: PUSH2 0x1437
00001430: ADDRESS
00001431: DUP13
00001432: DUP4
00001433: PUSH2 0x370e
00001436: JUMP
00001437: JUMPDEST
00001438: JUMPDEST
00001439: PUSH1 0x00
0000143b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001450: AND
00001451: DUP11
00001452: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001467: AND
00001468: EQ
00001469: ISZERO
0000146a: ISZERO
0000146b: PUSH2 0x147a
0000146e: JUMPI
0000146f: PUSH2 0x1479
00001472: ADDRESS
00001473: DUP12
00001474: DUP4
00001475: PUSH2 0x370e
00001478: JUMP
00001479: JUMPDEST
0000147a: JUMPDEST
0000147b: PUSH1 0x00
0000147d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001492: AND
00001493: DUP10
00001494: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014a9: AND
000014aa: EQ
000014ab: ISZERO
000014ac: ISZERO
000014ad: PUSH2 0x14bc
000014b0: JUMPI
000014b1: PUSH2 0x14bb
000014b4: ADDRESS
000014b5: DUP11
000014b6: DUP4
000014b7: PUSH2 0x370e
000014ba: JUMP
000014bb: JUMPDEST
000014bc: JUMPDEST
000014bd: PUSH1 0x00
000014bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014d4: AND
000014d5: DUP9
000014d6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014eb: AND
000014ec: EQ
000014ed: ISZERO
000014ee: ISZERO
000014ef: PUSH2 0x14fe
000014f2: JUMPI
000014f3: PUSH2 0x14fd
000014f6: ADDRESS
000014f7: DUP10
000014f8: DUP4
000014f9: PUSH2 0x370e
000014fc: JUMP
000014fd: JUMPDEST
000014fe: JUMPDEST
000014ff: PUSH1 0x00
00001501: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001516: AND
00001517: DUP8
00001518: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000152d: AND
0000152e: EQ
0000152f: ISZERO
00001530: ISZERO
00001531: PUSH2 0x1540
00001534: JUMPI
00001535: PUSH2 0x153f
00001538: ADDRESS
00001539: DUP9
0000153a: DUP4
0000153b: PUSH2 0x370e
0000153e: JUMP
0000153f: JUMPDEST
00001540: JUMPDEST
00001541: PUSH1 0x00
00001543: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001558: AND
00001559: DUP7
0000155a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000156f: AND
00001570: EQ
00001571: ISZERO
00001572: ISZERO
00001573: PUSH2 0x1582
00001576: JUMPI
00001577: PUSH2 0x1581
0000157a: ADDRESS
0000157b: DUP8
0000157c: DUP4
0000157d: PUSH2 0x370e
00001580: JUMP
00001581: JUMPDEST
00001582: JUMPDEST
00001583: PUSH1 0x00
00001585: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000159a: AND
0000159b: DUP6
0000159c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015b1: AND
000015b2: EQ
000015b3: ISZERO
000015b4: ISZERO
000015b5: PUSH2 0x15c4
000015b8: JUMPI
000015b9: PUSH2 0x15c3
000015bc: ADDRESS
000015bd: DUP7
000015be: DUP4
000015bf: PUSH2 0x370e
000015c2: JUMP
000015c3: JUMPDEST
000015c4: JUMPDEST
000015c5: PUSH1 0x00
000015c7: PUSH1 0x17
000015c9: DUP2
000015ca: SWAP1
000015cb: SSTORE
000015cc: POP
000015cd: JUMPDEST
000015ce: JUMPDEST
000015cf: POP
000015d0: POP
000015d1: POP
000015d2: POP
000015d3: POP
000015d4: POP
000015d5: POP
000015d6: POP
000015d7: POP
000015d8: POP
000015d9: POP
000015da: POP
000015db: POP
000015dc: POP
000015dd: JUMP
000015de: JUMPDEST
000015df: PUSH1 0x15
000015e1: SLOAD
000015e2: DUP2
000015e3: JUMP
000015e4: JUMPDEST
000015e5: PUSH1 0x01
000015e7: DUP1
000015e8: SLOAD
000015e9: PUSH1 0x01
000015eb: DUP2
000015ec: PUSH1 0x01
000015ee: AND
000015ef: ISZERO
000015f0: PUSH2 0x0100
000015f3: MUL
000015f4: SUB
000015f5: AND
000015f6: PUSH1 0x02
000015f8: SWAP1
000015f9: DIV
000015fa: DUP1
000015fb: PUSH1 0x1f
000015fd: ADD
000015fe: PUSH1 0x20
00001600: DUP1
00001601: SWAP2
00001602: DIV
00001603: MUL
00001604: PUSH1 0x20
00001606: ADD
00001607: PUSH1 0x40
00001609: MLOAD
0000160a: SWAP1
0000160b: DUP2
0000160c: ADD
0000160d: PUSH1 0x40
0000160f: MSTORE
00001610: DUP1
00001611: SWAP3
00001612: SWAP2
00001613: SWAP1
00001614: DUP2
00001615: DUP2
00001616: MSTORE
00001617: PUSH1 0x20
00001619: ADD
0000161a: DUP3
0000161b: DUP1
0000161c: SLOAD
0000161d: PUSH1 0x01
0000161f: DUP2
00001620: PUSH1 0x01
00001622: AND
00001623: ISZERO
00001624: PUSH2 0x0100
00001627: MUL
00001628: SUB
00001629: AND
0000162a: PUSH1 0x02
0000162c: SWAP1
0000162d: DIV
0000162e: DUP1
0000162f: ISZERO
00001630: PUSH2 0x167a
00001633: JUMPI
00001634: DUP1
00001635: PUSH1 0x1f
00001637: LT
00001638: PUSH2 0x164f
0000163b: JUMPI
0000163c: PUSH2 0x0100
0000163f: DUP1
00001640: DUP4
00001641: SLOAD
00001642: DIV
00001643: MUL
00001644: DUP4
00001645: MSTORE
00001646: SWAP2
00001647: PUSH1 0x20
00001649: ADD
0000164a: SWAP2
0000164b: PUSH2 0x167a
0000164e: JUMP
0000164f: JUMPDEST
00001650: DUP3
00001651: ADD
00001652: SWAP2
00001653: SWAP1
00001654: PUSH1 0x00
00001656: MSTORE
00001657: PUSH1 0x20
00001659: PUSH1 0x00
0000165b: KECCAK256
0000165c: SWAP1
0000165d: JUMPDEST
0000165e: DUP2
0000165f: SLOAD
00001660: DUP2
00001661: MSTORE
00001662: SWAP1
00001663: PUSH1 0x01
00001665: ADD
00001666: SWAP1
00001667: PUSH1 0x20
00001669: ADD
0000166a: DUP1
0000166b: DUP4
0000166c: GT
0000166d: PUSH2 0x165d
00001670: JUMPI
00001671: DUP3
00001672: SWAP1
00001673: SUB
00001674: PUSH1 0x1f
00001676: AND
00001677: DUP3
00001678: ADD
00001679: SWAP2
0000167a: JUMPDEST
0000167b: POP
0000167c: POP
0000167d: POP
0000167e: POP
0000167f: POP
00001680: DUP2
00001681: JUMP
00001682: JUMPDEST
00001683: PUSH1 0x00
00001685: PUSH1 0x0e
00001687: SLOAD
00001688: SWAP1
00001689: POP
0000168a: SWAP1
0000168b: JUMP
0000168c: JUMPDEST
0000168d: PUSH1 0x00
0000168f: DUP2
00001690: PUSH1 0x06
00001692: PUSH1 0x00
00001694: CALLER
00001695: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016aa: AND
000016ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016c0: AND
000016c1: DUP2
000016c2: MSTORE
000016c3: PUSH1 0x20
000016c5: ADD
000016c6: SWAP1
000016c7: DUP2
000016c8: MSTORE
000016c9: PUSH1 0x20
000016cb: ADD
000016cc: PUSH1 0x00
000016ce: KECCAK256
000016cf: PUSH1 0x00
000016d1: DUP6
000016d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016e7: AND
000016e8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016fd: AND
000016fe: DUP2
000016ff: MSTORE
00001700: PUSH1 0x20
00001702: ADD
00001703: SWAP1
00001704: DUP2
00001705: MSTORE
00001706: PUSH1 0x20
00001708: ADD
00001709: PUSH1 0x00
0000170b: KECCAK256
0000170c: DUP2
0000170d: SWAP1
0000170e: SSTORE
0000170f: POP
00001710: PUSH1 0x01
00001712: SWAP1
00001713: POP
00001714: SWAP3
00001715: SWAP2
00001716: POP
00001717: POP
00001718: JUMP
00001719: JUMPDEST
0000171a: PUSH1 0x16
0000171c: SLOAD
0000171d: DUP2
0000171e: JUMP
0000171f: JUMPDEST
00001720: PUSH1 0x18
00001722: SLOAD
00001723: DUP2
00001724: JUMP
00001725: JUMPDEST
00001726: PUSH1 0x04
00001728: SLOAD
00001729: DUP2
0000172a: JUMP
0000172b: JUMPDEST
0000172c: PUSH1 0x0c
0000172e: DUP2
0000172f: DUP2
00001730: SLOAD
00001731: DUP2
00001732: LT
00001733: ISZERO
00001734: ISZERO
00001735: PUSH2 0x173a
00001738: JUMPI
00001739: INVALID
0000173a: JUMPDEST
0000173b: SWAP1
0000173c: PUSH1 0x00
0000173e: MSTORE
0000173f: PUSH1 0x20
00001741: PUSH1 0x00
00001743: KECCAK256
00001744: ADD
00001745: PUSH1 0x00
00001747: SWAP2
00001748: POP
00001749: SLOAD
0000174a: SWAP1
0000174b: PUSH2 0x0100
0000174e: EXP
0000174f: SWAP1
00001750: DIV
00001751: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001766: AND
00001767: DUP2
00001768: JUMP
00001769: JUMPDEST
0000176a: PUSH1 0x00
0000176c: PUSH1 0x06
0000176e: PUSH1 0x00
00001770: DUP6
00001771: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001786: AND
00001787: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000179c: AND
0000179d: DUP2
0000179e: MSTORE
0000179f: PUSH1 0x20
000017a1: ADD
000017a2: SWAP1
000017a3: DUP2
000017a4: MSTORE
000017a5: PUSH1 0x20
000017a7: ADD
000017a8: PUSH1 0x00
000017aa: KECCAK256
000017ab: PUSH1 0x00
000017ad: CALLER
000017ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017c3: AND
000017c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017d9: AND
000017da: DUP2
000017db: MSTORE
000017dc: PUSH1 0x20
000017de: ADD
000017df: SWAP1
000017e0: DUP2
000017e1: MSTORE
000017e2: PUSH1 0x20
000017e4: ADD
000017e5: PUSH1 0x00
000017e7: KECCAK256
000017e8: SLOAD
000017e9: DUP3
000017ea: GT
000017eb: ISZERO
000017ec: PUSH2 0x17f8
000017ef: JUMPI
000017f0: PUSH1 0x00
000017f2: SWAP1
000017f3: POP
000017f4: PUSH2 0x1892
000017f7: JUMP
000017f8: JUMPDEST
000017f9: DUP2
000017fa: PUSH1 0x06
000017fc: PUSH1 0x00
000017fe: DUP7
000017ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001814: AND
00001815: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000182a: AND
0000182b: DUP2
0000182c: MSTORE
0000182d: PUSH1 0x20
0000182f: ADD
00001830: SWAP1
00001831: DUP2
00001832: MSTORE
00001833: PUSH1 0x20
00001835: ADD
00001836: PUSH1 0x00
00001838: KECCAK256
00001839: PUSH1 0x00
0000183b: CALLER
0000183c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001851: AND
00001852: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001867: AND
00001868: DUP2
00001869: MSTORE
0000186a: PUSH1 0x20
0000186c: ADD
0000186d: SWAP1
0000186e: DUP2
0000186f: MSTORE
00001870: PUSH1 0x20
00001872: ADD
00001873: PUSH1 0x00
00001875: KECCAK256
00001876: PUSH1 0x00
00001878: DUP3
00001879: DUP3
0000187a: SLOAD
0000187b: SUB
0000187c: SWAP3
0000187d: POP
0000187e: POP
0000187f: DUP2
00001880: SWAP1
00001881: SSTORE
00001882: POP
00001883: PUSH2 0x188d
00001886: DUP5
00001887: DUP5
00001888: DUP5
00001889: PUSH2 0x370e
0000188c: JUMP
0000188d: JUMPDEST
0000188e: PUSH1 0x01
00001890: SWAP1
00001891: POP
00001892: JUMPDEST
00001893: SWAP4
00001894: SWAP3
00001895: POP
00001896: POP
00001897: POP
00001898: JUMP
00001899: JUMPDEST
0000189a: PUSH1 0x0a
0000189c: SLOAD
0000189d: DUP2
0000189e: JUMP
0000189f: JUMPDEST
000018a0: PUSH1 0x03
000018a2: PUSH1 0x00
000018a4: SWAP1
000018a5: SLOAD
000018a6: SWAP1
000018a7: PUSH2 0x0100
000018aa: EXP
000018ab: SWAP1
000018ac: DIV
000018ad: PUSH1 0xff
000018af: AND
000018b0: DUP2
000018b1: JUMP
000018b2: JUMPDEST
000018b3: PUSH1 0x18
000018b5: PUSH1 0x00
000018b7: DUP2
000018b8: SLOAD
000018b9: DUP1
000018ba: SWAP3
000018bb: SWAP2
000018bc: SWAP1
000018bd: PUSH1 0x01
000018bf: ADD
000018c0: SWAP2
000018c1: SWAP1
000018c2: POP
000018c3: SSTORE
000018c4: POP
000018c5: PUSH1 0x0d
000018c7: DUP2
000018c8: SWAP1
000018c9: DUP1
000018ca: PUSH1 0x01
000018cc: DUP2
000018cd: SLOAD
000018ce: ADD
000018cf: DUP1
000018d0: DUP3
000018d1: SSTORE
000018d2: DUP1
000018d3: SWAP2
000018d4: POP
000018d5: POP
000018d6: SWAP1
000018d7: PUSH1 0x01
000018d9: DUP3
000018da: SUB
000018db: SWAP1
000018dc: PUSH1 0x00
000018de: MSTORE
000018df: PUSH1 0x20
000018e1: PUSH1 0x00
000018e3: KECCAK256
000018e4: ADD
000018e5: PUSH1 0x00
000018e7: SWAP1
000018e8: SWAP2
000018e9: SWAP3
000018ea: SWAP1
000018eb: SWAP2
000018ec: SWAP1
000018ed: SWAP2
000018ee: PUSH2 0x0100
000018f1: EXP
000018f2: DUP2
000018f3: SLOAD
000018f4: DUP2
000018f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000190a: MUL
0000190b: NOT
0000190c: AND
0000190d: SWAP1
0000190e: DUP4
0000190f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001924: AND
00001925: MUL
00001926: OR
00001927: SWAP1
00001928: SSTORE
00001929: POP
0000192a: POP
0000192b: POP
0000192c: JUMP
0000192d: JUMPDEST
0000192e: PUSH1 0x00
00001930: PUSH1 0x17
00001932: SLOAD
00001933: SWAP1
00001934: POP
00001935: SWAP1
00001936: JUMP
00001937: JUMPDEST
00001938: PUSH1 0x00
0000193a: PUSH1 0x09
0000193c: SLOAD
0000193d: SWAP1
0000193e: POP
0000193f: SWAP1
00001940: JUMP
00001941: JUMPDEST
00001942: PUSH1 0x00
00001944: DUP2
00001945: PUSH1 0x05
00001947: PUSH1 0x00
00001949: CALLER
0000194a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000195f: AND
00001960: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001975: AND
00001976: DUP2
00001977: MSTORE
00001978: PUSH1 0x20
0000197a: ADD
0000197b: SWAP1
0000197c: DUP2
0000197d: MSTORE
0000197e: PUSH1 0x20
00001980: ADD
00001981: PUSH1 0x00
00001983: KECCAK256
00001984: SLOAD
00001985: LT
00001986: ISZERO
00001987: ISZERO
00001988: ISZERO
00001989: PUSH2 0x1991
0000198c: JUMPI
0000198d: PUSH1 0x00
0000198f: DUP1
00001990: REVERT
00001991: JUMPDEST
00001992: DUP2
00001993: PUSH1 0x05
00001995: PUSH1 0x00
00001997: CALLER
00001998: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019ad: AND
000019ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019c3: AND
000019c4: DUP2
000019c5: MSTORE
000019c6: PUSH1 0x20
000019c8: ADD
000019c9: SWAP1
000019ca: DUP2
000019cb: MSTORE
000019cc: PUSH1 0x20
000019ce: ADD
000019cf: PUSH1 0x00
000019d1: KECCAK256
000019d2: PUSH1 0x00
000019d4: DUP3
000019d5: DUP3
000019d6: SLOAD
000019d7: SUB
000019d8: SWAP3
000019d9: POP
000019da: POP
000019db: DUP2
000019dc: SWAP1
000019dd: SSTORE
000019de: POP
000019df: DUP2
000019e0: PUSH1 0x04
000019e2: PUSH1 0x00
000019e4: DUP3
000019e5: DUP3
000019e6: SLOAD
000019e7: SUB
000019e8: SWAP3
000019e9: POP
000019ea: POP
000019eb: DUP2
000019ec: SWAP1
000019ed: SSTORE
000019ee: POP
000019ef: CALLER
000019f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a05: AND
00001a06: PUSH32 0xcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5
00001a27: DUP4
00001a28: PUSH1 0x40
00001a2a: MLOAD
00001a2b: DUP1
00001a2c: DUP3
00001a2d: DUP2
00001a2e: MSTORE
00001a2f: PUSH1 0x20
00001a31: ADD
00001a32: SWAP2
00001a33: POP
00001a34: POP
00001a35: PUSH1 0x40
00001a37: MLOAD
00001a38: DUP1
00001a39: SWAP2
00001a3a: SUB
00001a3b: SWAP1
00001a3c: LOG2
00001a3d: PUSH1 0x01
00001a3f: SWAP1
00001a40: POP
00001a41: SWAP2
00001a42: SWAP1
00001a43: POP
00001a44: JUMP
00001a45: JUMPDEST
00001a46: PUSH1 0x00
00001a48: PUSH1 0x15
00001a4a: SLOAD
00001a4b: SWAP1
00001a4c: POP
00001a4d: SWAP1
00001a4e: JUMP
00001a4f: JUMPDEST
00001a50: PUSH1 0x00
00001a52: PUSH1 0x19
00001a54: SLOAD
00001a55: SWAP1
00001a56: POP
00001a57: SWAP1
00001a58: JUMP
00001a59: JUMPDEST
00001a5a: PUSH1 0x00
00001a5c: PUSH1 0x08
00001a5e: SLOAD
00001a5f: SWAP1
00001a60: POP
00001a61: SWAP1
00001a62: JUMP
00001a63: JUMPDEST
00001a64: PUSH1 0x00
00001a66: DUP1
00001a67: SWAP1
00001a68: SLOAD
00001a69: SWAP1
00001a6a: PUSH2 0x0100
00001a6d: EXP
00001a6e: SWAP1
00001a6f: DIV
00001a70: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a85: AND
00001a86: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a9b: AND
00001a9c: CALLER
00001a9d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ab2: AND
00001ab3: EQ
00001ab4: ISZERO
00001ab5: ISZERO
00001ab6: PUSH2 0x1abe
00001ab9: JUMPI
00001aba: PUSH1 0x00
00001abc: DUP1
00001abd: REVERT
00001abe: JUMPDEST
00001abf: CALLER
00001ac0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ad5: AND
00001ad6: PUSH2 0x08fc
00001ad9: PUSH1 0x0e
00001adb: SLOAD
00001adc: SWAP1
00001add: DUP2
00001ade: ISZERO
00001adf: MUL
00001ae0: SWAP1
00001ae1: PUSH1 0x40
00001ae3: MLOAD
00001ae4: PUSH1 0x00
00001ae6: PUSH1 0x40
00001ae8: MLOAD
00001ae9: DUP1
00001aea: DUP4
00001aeb: SUB
00001aec: DUP2
00001aed: DUP6
00001aee: DUP9
00001aef: DUP9
00001af0: CALL
00001af1: SWAP4
00001af2: POP
00001af3: POP
00001af4: POP
00001af5: POP
00001af6: ISZERO
00001af7: DUP1
00001af8: ISZERO
00001af9: PUSH2 0x1b06
00001afc: JUMPI
00001afd: RETURNDATASIZE
00001afe: PUSH1 0x00
00001b00: DUP1
00001b01: RETURNDATACOPY
00001b02: RETURNDATASIZE
00001b03: PUSH1 0x00
00001b05: REVERT
00001b06: JUMPDEST
00001b07: POP
00001b08: PUSH1 0x00
00001b0a: PUSH1 0x0e
00001b0c: DUP2
00001b0d: SWAP1
00001b0e: SSTORE
00001b0f: POP
00001b10: POP
00001b11: JUMP
00001b12: JUMPDEST
00001b13: PUSH1 0x05
00001b15: PUSH1 0x20
00001b17: MSTORE
00001b18: DUP1
00001b19: PUSH1 0x00
00001b1b: MSTORE
00001b1c: PUSH1 0x40
00001b1e: PUSH1 0x00
00001b20: KECCAK256
00001b21: PUSH1 0x00
00001b23: SWAP2
00001b24: POP
00001b25: SWAP1
00001b26: POP
00001b27: SLOAD
00001b28: DUP2
00001b29: JUMP
00001b2a: JUMPDEST
00001b2b: PUSH1 0x00
00001b2d: DUP1
00001b2e: PUSH1 0x00
00001b30: DUP1
00001b31: PUSH1 0x00
00001b33: DUP1
00001b34: PUSH1 0x00
00001b36: SWAP1
00001b37: SLOAD
00001b38: SWAP1
00001b39: PUSH2 0x0100
00001b3c: EXP
00001b3d: SWAP1
00001b3e: DIV
00001b3f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b54: AND
00001b55: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b6a: AND
00001b6b: CALLER
00001b6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b81: AND
00001b82: EQ
00001b83: ISZERO
00001b84: ISZERO
00001b85: PUSH2 0x1b8d
00001b88: JUMPI
00001b89: PUSH1 0x00
00001b8b: DUP1
00001b8c: REVERT
00001b8d: JUMPDEST
00001b8e: PUSH1 0x00
00001b90: SWAP5
00001b91: POP
00001b92: PUSH1 0x00
00001b94: SWAP4
00001b95: POP
00001b96: PUSH1 0x09
00001b98: SLOAD
00001b99: SWAP3
00001b9a: POP
00001b9b: PUSH1 0x00
00001b9d: PUSH1 0x19
00001b9f: SLOAD
00001ba0: GT
00001ba1: ISZERO
00001ba2: PUSH2 0x1c9e
00001ba5: JUMPI
00001ba6: PUSH1 0x19
00001ba8: SLOAD
00001ba9: PUSH1 0x02
00001bab: DUP5
00001bac: DUP2
00001bad: ISZERO
00001bae: ISZERO
00001baf: PUSH2 0x1bb4
00001bb2: JUMPI
00001bb3: INVALID
00001bb4: JUMPDEST
00001bb5: DIV
00001bb6: DUP2
00001bb7: ISZERO
00001bb8: ISZERO
00001bb9: PUSH2 0x1bbe
00001bbc: JUMPI
00001bbd: INVALID
00001bbe: JUMPDEST
00001bbf: DIV
00001bc0: SWAP2
00001bc1: POP
00001bc2: JUMPDEST
00001bc3: PUSH1 0x19
00001bc5: SLOAD
00001bc6: DUP6
00001bc7: LT
00001bc8: ISZERO
00001bc9: PUSH2 0x1c9d
00001bcc: JUMPI
00001bcd: DUP2
00001bce: PUSH1 0x09
00001bd0: PUSH1 0x00
00001bd2: DUP3
00001bd3: DUP3
00001bd4: SLOAD
00001bd5: SUB
00001bd6: SWAP3
00001bd7: POP
00001bd8: POP
00001bd9: DUP2
00001bda: SWAP1
00001bdb: SSTORE
00001bdc: POP
00001bdd: PUSH1 0x00
00001bdf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001bf4: AND
00001bf5: PUSH1 0x0c
00001bf7: DUP7
00001bf8: DUP2
00001bf9: SLOAD
00001bfa: DUP2
00001bfb: LT
00001bfc: ISZERO
00001bfd: ISZERO
00001bfe: PUSH2 0x1c03
00001c01: JUMPI
00001c02: INVALID
00001c03: JUMPDEST
00001c04: SWAP1
00001c05: PUSH1 0x00
00001c07: MSTORE
00001c08: PUSH1 0x20
00001c0a: PUSH1 0x00
00001c0c: KECCAK256
00001c0d: ADD
00001c0e: PUSH1 0x00
00001c10: SWAP1
00001c11: SLOAD
00001c12: SWAP1
00001c13: PUSH2 0x0100
00001c16: EXP
00001c17: SWAP1
00001c18: DIV
00001c19: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c2e: AND
00001c2f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c44: AND
00001c45: EQ
00001c46: ISZERO
00001c47: ISZERO
00001c48: PUSH2 0x1c90
00001c4b: JUMPI
00001c4c: PUSH2 0x1c8f
00001c4f: ADDRESS
00001c50: PUSH1 0x0c
00001c52: DUP8
00001c53: DUP2
00001c54: SLOAD
00001c55: DUP2
00001c56: LT
00001c57: ISZERO
00001c58: ISZERO
00001c59: PUSH2 0x1c5e
00001c5c: JUMPI
00001c5d: INVALID
00001c5e: JUMPDEST
00001c5f: SWAP1
00001c60: PUSH1 0x00
00001c62: MSTORE
00001c63: PUSH1 0x20
00001c65: PUSH1 0x00
00001c67: KECCAK256
00001c68: ADD
00001c69: PUSH1 0x00
00001c6b: SWAP1
00001c6c: SLOAD
00001c6d: SWAP1
00001c6e: PUSH2 0x0100
00001c71: EXP
00001c72: SWAP1
00001c73: DIV
00001c74: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c89: AND
00001c8a: DUP5
00001c8b: PUSH2 0x370e
00001c8e: JUMP
00001c8f: JUMPDEST
00001c90: JUMPDEST
00001c91: DUP5
00001c92: DUP1
00001c93: PUSH1 0x01
00001c95: ADD
00001c96: SWAP6
00001c97: POP
00001c98: POP
00001c99: PUSH2 0x1bc2
00001c9c: JUMP
00001c9d: JUMPDEST
00001c9e: JUMPDEST
00001c9f: PUSH1 0x00
00001ca1: PUSH1 0x18
00001ca3: SLOAD
00001ca4: GT
00001ca5: ISZERO
00001ca6: PUSH2 0x1da2
00001ca9: JUMPI
00001caa: PUSH1 0x18
00001cac: SLOAD
00001cad: PUSH1 0x04
00001caf: DUP5
00001cb0: DUP2
00001cb1: ISZERO
00001cb2: ISZERO
00001cb3: PUSH2 0x1cb8
00001cb6: JUMPI
00001cb7: INVALID
00001cb8: JUMPDEST
00001cb9: DIV
00001cba: DUP2
00001cbb: ISZERO
00001cbc: ISZERO
00001cbd: PUSH2 0x1cc2
00001cc0: JUMPI
00001cc1: INVALID
00001cc2: JUMPDEST
00001cc3: DIV
00001cc4: SWAP1
00001cc5: POP
00001cc6: JUMPDEST
00001cc7: PUSH1 0x18
00001cc9: SLOAD
00001cca: DUP5
00001ccb: LT
00001ccc: ISZERO
00001ccd: PUSH2 0x1da1
00001cd0: JUMPI
00001cd1: DUP1
00001cd2: PUSH1 0x09
00001cd4: PUSH1 0x00
00001cd6: DUP3
00001cd7: DUP3
00001cd8: SLOAD
00001cd9: SUB
00001cda: SWAP3
00001cdb: POP
00001cdc: POP
00001cdd: DUP2
00001cde: SWAP1
00001cdf: SSTORE
00001ce0: POP
00001ce1: PUSH1 0x00
00001ce3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cf8: AND
00001cf9: PUSH1 0x0d
00001cfb: DUP6
00001cfc: DUP2
00001cfd: SLOAD
00001cfe: DUP2
00001cff: LT
00001d00: ISZERO
00001d01: ISZERO
00001d02: PUSH2 0x1d07
00001d05: JUMPI
00001d06: INVALID
00001d07: JUMPDEST
00001d08: SWAP1
00001d09: PUSH1 0x00
00001d0b: MSTORE
00001d0c: PUSH1 0x20
00001d0e: PUSH1 0x00
00001d10: KECCAK256
00001d11: ADD
00001d12: PUSH1 0x00
00001d14: SWAP1
00001d15: SLOAD
00001d16: SWAP1
00001d17: PUSH2 0x0100
00001d1a: EXP
00001d1b: SWAP1
00001d1c: DIV
00001d1d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d32: AND
00001d33: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d48: AND
00001d49: EQ
00001d4a: ISZERO
00001d4b: ISZERO
00001d4c: PUSH2 0x1d94
00001d4f: JUMPI
00001d50: PUSH2 0x1d93
00001d53: ADDRESS
00001d54: PUSH1 0x0d
00001d56: DUP7
00001d57: DUP2
00001d58: SLOAD
00001d59: DUP2
00001d5a: LT
00001d5b: ISZERO
00001d5c: ISZERO
00001d5d: PUSH2 0x1d62
00001d60: JUMPI
00001d61: INVALID
00001d62: JUMPDEST
00001d63: SWAP1
00001d64: PUSH1 0x00
00001d66: MSTORE
00001d67: PUSH1 0x20
00001d69: PUSH1 0x00
00001d6b: KECCAK256
00001d6c: ADD
00001d6d: PUSH1 0x00
00001d6f: SWAP1
00001d70: SLOAD
00001d71: SWAP1
00001d72: PUSH2 0x0100
00001d75: EXP
00001d76: SWAP1
00001d77: DIV
00001d78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d8d: AND
00001d8e: DUP4
00001d8f: PUSH2 0x370e
00001d92: JUMP
00001d93: JUMPDEST
00001d94: JUMPDEST
00001d95: DUP4
00001d96: DUP1
00001d97: PUSH1 0x01
00001d99: ADD
00001d9a: SWAP5
00001d9b: POP
00001d9c: POP
00001d9d: PUSH2 0x1cc6
00001da0: JUMP
00001da1: JUMPDEST
00001da2: JUMPDEST
00001da3: PUSH2 0x1dae
00001da6: ADDRESS
00001da7: PUSH1 0x09
00001da9: SLOAD
00001daa: PUSH2 0x1fc0
00001dad: JUMP
00001dae: JUMPDEST
00001daf: POP
00001db0: PUSH1 0x00
00001db2: PUSH1 0x09
00001db4: DUP2
00001db5: SWAP1
00001db6: SSTORE
00001db7: POP
00001db8: POP
00001db9: POP
00001dba: POP
00001dbb: POP
00001dbc: POP
00001dbd: JUMP
00001dbe: JUMPDEST
00001dbf: PUSH1 0x00
00001dc1: DUP1
00001dc2: PUSH1 0x00
00001dc4: DUP1
00001dc5: PUSH8 0x0de0b6b3a7640000
00001dce: PUSH1 0x07
00001dd0: SLOAD
00001dd1: DUP2
00001dd2: ISZERO
00001dd3: ISZERO
00001dd4: PUSH2 0x1dd9
00001dd7: JUMPI
00001dd8: INVALID
00001dd9: JUMPDEST
00001dda: DIV
00001ddb: PUSH1 0x13
00001ddd: PUSH1 0x00
00001ddf: PUSH1 0x01
00001de1: DUP2
00001de2: MSTORE
00001de3: PUSH1 0x20
00001de5: ADD
00001de6: SWAP1
00001de7: DUP2
00001de8: MSTORE
00001de9: PUSH1 0x20
00001deb: ADD
00001dec: PUSH1 0x00
00001dee: KECCAK256
00001def: SLOAD
00001df0: PUSH1 0x01
00001df2: PUSH1 0x15
00001df4: SLOAD
00001df5: ADD
00001df6: PUSH1 0x13
00001df8: PUSH1 0x00
00001dfa: PUSH1 0x01
00001dfc: PUSH1 0x15
00001dfe: SLOAD
00001dff: ADD
00001e00: DUP2
00001e01: MSTORE
00001e02: PUSH1 0x20
00001e04: ADD
00001e05: SWAP1
00001e06: DUP2
00001e07: MSTORE
00001e08: PUSH1 0x20
00001e0a: ADD
00001e0b: PUSH1 0x00
00001e0d: KECCAK256
00001e0e: SLOAD
00001e0f: PUSH8 0x0de0b6b3a7640000
00001e18: PUSH1 0x07
00001e1a: SLOAD
00001e1b: DUP2
00001e1c: ISZERO
00001e1d: ISZERO
00001e1e: PUSH2 0x1e23
00001e21: JUMPI
00001e22: INVALID
00001e23: JUMPDEST
00001e24: DIV
00001e25: GT
00001e26: SWAP4
00001e27: POP
00001e28: SWAP4
00001e29: POP
00001e2a: SWAP4
00001e2b: POP
00001e2c: SWAP4
00001e2d: POP
00001e2e: SWAP1
00001e2f: SWAP2
00001e30: SWAP3
00001e31: SWAP4
00001e32: JUMP
00001e33: JUMPDEST
00001e34: PUSH1 0x19
00001e36: SLOAD
00001e37: DUP2
00001e38: JUMP
00001e39: JUMPDEST
00001e3a: PUSH1 0x00
00001e3c: DUP1
00001e3d: SWAP1
00001e3e: SLOAD
00001e3f: SWAP1
00001e40: PUSH2 0x0100
00001e43: EXP
00001e44: SWAP1
00001e45: DIV
00001e46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e5b: AND
00001e5c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e71: AND
00001e72: CALLER
00001e73: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e88: AND
00001e89: EQ
00001e8a: ISZERO
00001e8b: ISZERO
00001e8c: PUSH2 0x1e94
00001e8f: JUMPI
00001e90: PUSH1 0x00
00001e92: DUP1
00001e93: REVERT
00001e94: JUMPDEST
00001e95: DUP1
00001e96: PUSH1 0x05
00001e98: PUSH1 0x00
00001e9a: DUP5
00001e9b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001eb0: AND
00001eb1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ec6: AND
00001ec7: DUP2
00001ec8: MSTORE
00001ec9: PUSH1 0x20
00001ecb: ADD
00001ecc: SWAP1
00001ecd: DUP2
00001ece: MSTORE
00001ecf: PUSH1 0x20
00001ed1: ADD
00001ed2: PUSH1 0x00
00001ed4: KECCAK256
00001ed5: PUSH1 0x00
00001ed7: DUP3
00001ed8: DUP3
00001ed9: SLOAD
00001eda: ADD
00001edb: SWAP3
00001edc: POP
00001edd: POP
00001ede: DUP2
00001edf: SWAP1
00001ee0: SSTORE
00001ee1: POP
00001ee2: DUP1
00001ee3: PUSH1 0x04
00001ee5: PUSH1 0x00
00001ee7: DUP3
00001ee8: DUP3
00001ee9: SLOAD
00001eea: ADD
00001eeb: SWAP3
00001eec: POP
00001eed: POP
00001eee: DUP2
00001eef: SWAP1
00001ef0: SSTORE
00001ef1: POP
00001ef2: ADDRESS
00001ef3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f08: AND
00001f09: PUSH1 0x00
00001f0b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f20: AND
00001f21: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00001f42: DUP4
00001f43: PUSH1 0x40
00001f45: MLOAD
00001f46: DUP1
00001f47: DUP3
00001f48: DUP2
00001f49: MSTORE
00001f4a: PUSH1 0x20
00001f4c: ADD
00001f4d: SWAP2
00001f4e: POP
00001f4f: POP
00001f50: PUSH1 0x40
00001f52: MLOAD
00001f53: DUP1
00001f54: SWAP2
00001f55: SUB
00001f56: SWAP1
00001f57: LOG3
00001f58: DUP2
00001f59: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f6e: AND
00001f6f: ADDRESS
00001f70: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f85: AND
00001f86: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00001fa7: DUP4
00001fa8: PUSH1 0x40
00001faa: MLOAD
00001fab: DUP1
00001fac: DUP3
00001fad: DUP2
00001fae: MSTORE
00001faf: PUSH1 0x20
00001fb1: ADD
00001fb2: SWAP2
00001fb3: POP
00001fb4: POP
00001fb5: PUSH1 0x40
00001fb7: MLOAD
00001fb8: DUP1
00001fb9: SWAP2
00001fba: SUB
00001fbb: SWAP1
00001fbc: LOG3
00001fbd: POP
00001fbe: POP
00001fbf: JUMP
00001fc0: JUMPDEST
00001fc1: PUSH1 0x00
00001fc3: DUP2
00001fc4: PUSH1 0x05
00001fc6: PUSH1 0x00
00001fc8: DUP6
00001fc9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fde: AND
00001fdf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ff4: AND
00001ff5: DUP2
00001ff6: MSTORE
00001ff7: PUSH1 0x20
00001ff9: ADD
00001ffa: SWAP1
00001ffb: DUP2
00001ffc: MSTORE
00001ffd: PUSH1 0x20
00001fff: ADD
00002000: PUSH1 0x00
00002002: KECCAK256
00002003: SLOAD
00002004: LT
00002005: ISZERO
00002006: PUSH2 0x200e
00002009: JUMPI
0000200a: PUSH2 0x2148
0000200d: JUMP
0000200e: JUMPDEST
0000200f: DUP2
00002010: PUSH1 0x05
00002012: PUSH1 0x00
00002014: DUP6
00002015: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000202a: AND
0000202b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002040: AND
00002041: DUP2
00002042: MSTORE
00002043: PUSH1 0x20
00002045: ADD
00002046: SWAP1
00002047: DUP2
00002048: MSTORE
00002049: PUSH1 0x20
0000204b: ADD
0000204c: PUSH1 0x00
0000204e: KECCAK256
0000204f: PUSH1 0x00
00002051: DUP3
00002052: DUP3
00002053: SLOAD
00002054: SUB
00002055: SWAP3
00002056: POP
00002057: POP
00002058: DUP2
00002059: SWAP1
0000205a: SSTORE
0000205b: POP
0000205c: DUP2
0000205d: PUSH1 0x06
0000205f: PUSH1 0x00
00002061: DUP6
00002062: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002077: AND
00002078: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000208d: AND
0000208e: DUP2
0000208f: MSTORE
00002090: PUSH1 0x20
00002092: ADD
00002093: SWAP1
00002094: DUP2
00002095: MSTORE
00002096: PUSH1 0x20
00002098: ADD
00002099: PUSH1 0x00
0000209b: KECCAK256
0000209c: PUSH1 0x00
0000209e: CALLER
0000209f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020b4: AND
000020b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020ca: AND
000020cb: DUP2
000020cc: MSTORE
000020cd: PUSH1 0x20
000020cf: ADD
000020d0: SWAP1
000020d1: DUP2
000020d2: MSTORE
000020d3: PUSH1 0x20
000020d5: ADD
000020d6: PUSH1 0x00
000020d8: KECCAK256
000020d9: PUSH1 0x00
000020db: DUP3
000020dc: DUP3
000020dd: SLOAD
000020de: SUB
000020df: SWAP3
000020e0: POP
000020e1: POP
000020e2: DUP2
000020e3: SWAP1
000020e4: SSTORE
000020e5: POP
000020e6: DUP2
000020e7: PUSH1 0x04
000020e9: PUSH1 0x00
000020eb: DUP3
000020ec: DUP3
000020ed: SLOAD
000020ee: SUB
000020ef: SWAP3
000020f0: POP
000020f1: POP
000020f2: DUP2
000020f3: SWAP1
000020f4: SSTORE
000020f5: POP
000020f6: DUP3
000020f7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000210c: AND
0000210d: PUSH32 0xcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5
0000212e: DUP4
0000212f: PUSH1 0x40
00002131: MLOAD
00002132: DUP1
00002133: DUP3
00002134: DUP2
00002135: MSTORE
00002136: PUSH1 0x20
00002138: ADD
00002139: SWAP2
0000213a: POP
0000213b: POP
0000213c: PUSH1 0x40
0000213e: MLOAD
0000213f: DUP1
00002140: SWAP2
00002141: SUB
00002142: SWAP1
00002143: LOG2
00002144: PUSH1 0x01
00002146: SWAP1
00002147: POP
00002148: JUMPDEST
00002149: SWAP3
0000214a: SWAP2
0000214b: POP
0000214c: POP
0000214d: JUMP
0000214e: JUMPDEST
0000214f: PUSH1 0x17
00002151: SLOAD
00002152: DUP2
00002153: JUMP
00002154: JUMPDEST
00002155: PUSH1 0x00
00002157: PUSH1 0x11
00002159: PUSH1 0x00
0000215b: DUP4
0000215c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002171: AND
00002172: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002187: AND
00002188: DUP2
00002189: MSTORE
0000218a: PUSH1 0x20
0000218c: ADD
0000218d: SWAP1
0000218e: DUP2
0000218f: MSTORE
00002190: PUSH1 0x20
00002192: ADD
00002193: PUSH1 0x00
00002195: KECCAK256
00002196: PUSH1 0x03
00002198: ADD
00002199: PUSH1 0x00
0000219b: SWAP1
0000219c: SLOAD
0000219d: SWAP1
0000219e: PUSH2 0x0100
000021a1: EXP
000021a2: SWAP1
000021a3: DIV
000021a4: PUSH1 0xff
000021a6: AND
000021a7: SWAP1
000021a8: POP
000021a9: SWAP2
000021aa: SWAP1
000021ab: POP
000021ac: JUMP
000021ad: JUMPDEST
000021ae: PUSH1 0x07
000021b0: SLOAD
000021b1: DUP2
000021b2: JUMP
000021b3: JUMPDEST
000021b4: PUSH1 0x00
000021b6: DUP1
000021b7: SWAP1
000021b8: SLOAD
000021b9: SWAP1
000021ba: PUSH2 0x0100
000021bd: EXP
000021be: SWAP1
000021bf: DIV
000021c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000021d5: AND
000021d6: DUP2
000021d7: JUMP
000021d8: JUMPDEST
000021d9: PUSH1 0x00
000021db: PUSH1 0x07
000021dd: SLOAD
000021de: SWAP1
000021df: POP
000021e0: SWAP1
000021e1: JUMP
000021e2: JUMPDEST
000021e3: DUP1
000021e4: PUSH1 0x05
000021e6: PUSH1 0x00
000021e8: CALLER
000021e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000021fe: AND
000021ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002214: AND
00002215: DUP2
00002216: MSTORE
00002217: PUSH1 0x20
00002219: ADD
0000221a: SWAP1
0000221b: DUP2
0000221c: MSTORE
0000221d: PUSH1 0x20
0000221f: ADD
00002220: PUSH1 0x00
00002222: KECCAK256
00002223: PUSH1 0x00
00002225: DUP3
00002226: DUP3
00002227: SLOAD
00002228: ADD
00002229: SWAP3
0000222a: POP
0000222b: POP
0000222c: DUP2
0000222d: SWAP1
0000222e: SSTORE
0000222f: POP
00002230: DUP1
00002231: PUSH1 0x05
00002233: PUSH1 0x00
00002235: ADDRESS
00002236: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000224b: AND
0000224c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002261: AND
00002262: DUP2
00002263: MSTORE
00002264: PUSH1 0x20
00002266: ADD
00002267: SWAP1
00002268: DUP2
00002269: MSTORE
0000226a: PUSH1 0x20
0000226c: ADD
0000226d: PUSH1 0x00
0000226f: KECCAK256
00002270: PUSH1 0x00
00002272: DUP3
00002273: DUP3
00002274: SLOAD
00002275: SUB
00002276: SWAP3
00002277: POP
00002278: POP
00002279: DUP2
0000227a: SWAP1
0000227b: SSTORE
0000227c: POP
0000227d: CALLER
0000227e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002293: AND
00002294: ADDRESS
00002295: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022aa: AND
000022ab: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
000022cc: DUP4
000022cd: PUSH1 0x40
000022cf: MLOAD
000022d0: DUP1
000022d1: DUP3
000022d2: DUP2
000022d3: MSTORE
000022d4: PUSH1 0x20
000022d6: ADD
000022d7: SWAP2
000022d8: POP
000022d9: POP
000022da: PUSH1 0x40
000022dc: MLOAD
000022dd: DUP1
000022de: SWAP2
000022df: SUB
000022e0: SWAP1
000022e1: LOG3
000022e2: POP
000022e3: JUMP
000022e4: JUMPDEST
000022e5: PUSH1 0x00
000022e7: PUSH1 0x0b
000022e9: SLOAD
000022ea: SWAP1
000022eb: POP
000022ec: SWAP1
000022ed: JUMP
000022ee: JUMPDEST
000022ef: PUSH1 0x02
000022f1: DUP1
000022f2: SLOAD
000022f3: PUSH1 0x01
000022f5: DUP2
000022f6: PUSH1 0x01
000022f8: AND
000022f9: ISZERO
000022fa: PUSH2 0x0100
000022fd: MUL
000022fe: SUB
000022ff: AND
00002300: PUSH1 0x02
00002302: SWAP1
00002303: DIV
00002304: DUP1
00002305: PUSH1 0x1f
00002307: ADD
00002308: PUSH1 0x20
0000230a: DUP1
0000230b: SWAP2
0000230c: DIV
0000230d: MUL
0000230e: PUSH1 0x20
00002310: ADD
00002311: PUSH1 0x40
00002313: MLOAD
00002314: SWAP1
00002315: DUP2
00002316: ADD
00002317: PUSH1 0x40
00002319: MSTORE
0000231a: DUP1
0000231b: SWAP3
0000231c: SWAP2
0000231d: SWAP1
0000231e: DUP2
0000231f: DUP2
00002320: MSTORE
00002321: PUSH1 0x20
00002323: ADD
00002324: DUP3
00002325: DUP1
00002326: SLOAD
00002327: PUSH1 0x01
00002329: DUP2
0000232a: PUSH1 0x01
0000232c: AND
0000232d: ISZERO
0000232e: PUSH2 0x0100
00002331: MUL
00002332: SUB
00002333: AND
00002334: PUSH1 0x02
00002336: SWAP1
00002337: DIV
00002338: DUP1
00002339: ISZERO
0000233a: PUSH2 0x2384
0000233d: JUMPI
0000233e: DUP1
0000233f: PUSH1 0x1f
00002341: LT
00002342: PUSH2 0x2359
00002345: JUMPI
00002346: PUSH2 0x0100
00002349: DUP1
0000234a: DUP4
0000234b: SLOAD
0000234c: DIV
0000234d: MUL
0000234e: DUP4
0000234f: MSTORE
00002350: SWAP2
00002351: PUSH1 0x20
00002353: ADD
00002354: SWAP2
00002355: PUSH2 0x2384
00002358: JUMP
00002359: JUMPDEST
0000235a: DUP3
0000235b: ADD
0000235c: SWAP2
0000235d: SWAP1
0000235e: PUSH1 0x00
00002360: MSTORE
00002361: PUSH1 0x20
00002363: PUSH1 0x00
00002365: KECCAK256
00002366: SWAP1
00002367: JUMPDEST
00002368: DUP2
00002369: SLOAD
0000236a: DUP2
0000236b: MSTORE
0000236c: SWAP1
0000236d: PUSH1 0x01
0000236f: ADD
00002370: SWAP1
00002371: PUSH1 0x20
00002373: ADD
00002374: DUP1
00002375: DUP4
00002376: GT
00002377: PUSH2 0x2367
0000237a: JUMPI
0000237b: DUP3
0000237c: SWAP1
0000237d: SUB
0000237e: PUSH1 0x1f
00002380: AND
00002381: DUP3
00002382: ADD
00002383: SWAP2
00002384: JUMPDEST
00002385: POP
00002386: POP
00002387: POP
00002388: POP
00002389: POP
0000238a: DUP2
0000238b: JUMP
0000238c: JUMPDEST
0000238d: PUSH1 0x00
0000238f: PUSH1 0x08
00002391: SLOAD
00002392: DUP3
00002393: MUL
00002394: SWAP1
00002395: POP
00002396: SWAP2
00002397: SWAP1
00002398: POP
00002399: JUMP
0000239a: JUMPDEST
0000239b: PUSH1 0x00
0000239d: PUSH1 0x08
0000239f: SLOAD
000023a0: CALLVALUE
000023a1: MUL
000023a2: SWAP1
000023a3: POP
000023a4: PUSH1 0x16
000023a6: SLOAD
000023a7: DUP2
000023a8: PUSH1 0x07
000023aa: SLOAD
000023ab: ADD
000023ac: GT
000023ad: ISZERO
000023ae: PUSH2 0x23b6
000023b1: JUMPI
000023b2: PUSH2 0x23ea
000023b5: JUMP
000023b6: JUMPDEST
000023b7: DUP1
000023b8: PUSH1 0x07
000023ba: PUSH1 0x00
000023bc: DUP3
000023bd: DUP3
000023be: SLOAD
000023bf: ADD
000023c0: SWAP3
000023c1: POP
000023c2: POP
000023c3: DUP2
000023c4: SWAP1
000023c5: SSTORE
000023c6: POP
000023c7: CALLVALUE
000023c8: PUSH1 0x0e
000023ca: PUSH1 0x00
000023cc: DUP3
000023cd: DUP3
000023ce: SLOAD
000023cf: ADD
000023d0: SWAP3
000023d1: POP
000023d2: POP
000023d3: DUP2
000023d4: SWAP1
000023d5: SSTORE
000023d6: POP
000023d7: PUSH2 0x23de
000023da: PUSH2 0x2b9c
000023dd: JUMP
000023de: JUMPDEST
000023df: PUSH2 0x23e9
000023e2: ADDRESS
000023e3: CALLER
000023e4: DUP4
000023e5: PUSH2 0x370e
000023e8: JUMP
000023e9: JUMPDEST
000023ea: JUMPDEST
000023eb: POP
000023ec: JUMP
000023ed: JUMPDEST
000023ee: PUSH1 0x00
000023f0: DUP1
000023f1: PUSH1 0x00
000023f3: ADDRESS
000023f4: SWAP3
000023f5: POP
000023f6: CALLER
000023f7: SWAP2
000023f8: POP
000023f9: PUSH1 0x00
000023fb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002410: AND
00002411: DUP3
00002412: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002427: AND
00002428: EQ
00002429: ISZERO
0000242a: PUSH2 0x2432
0000242d: JUMPI
0000242e: PUSH2 0x263c
00002431: JUMP
00002432: JUMPDEST
00002433: DUP4
00002434: PUSH1 0x05
00002436: PUSH1 0x00
00002438: DUP6
00002439: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000244e: AND
0000244f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002464: AND
00002465: DUP2
00002466: MSTORE
00002467: PUSH1 0x20
00002469: ADD
0000246a: SWAP1
0000246b: DUP2
0000246c: MSTORE
0000246d: PUSH1 0x20
0000246f: ADD
00002470: PUSH1 0x00
00002472: KECCAK256
00002473: SLOAD
00002474: LT
00002475: ISZERO
00002476: PUSH2 0x247e
00002479: JUMPI
0000247a: PUSH2 0x263c
0000247d: JUMP
0000247e: JUMPDEST
0000247f: PUSH1 0x05
00002481: PUSH1 0x00
00002483: DUP4
00002484: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002499: AND
0000249a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024af: AND
000024b0: DUP2
000024b1: MSTORE
000024b2: PUSH1 0x20
000024b4: ADD
000024b5: SWAP1
000024b6: DUP2
000024b7: MSTORE
000024b8: PUSH1 0x20
000024ba: ADD
000024bb: PUSH1 0x00
000024bd: KECCAK256
000024be: SLOAD
000024bf: DUP5
000024c0: PUSH1 0x05
000024c2: PUSH1 0x00
000024c4: DUP6
000024c5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024da: AND
000024db: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024f0: AND
000024f1: DUP2
000024f2: MSTORE
000024f3: PUSH1 0x20
000024f5: ADD
000024f6: SWAP1
000024f7: DUP2
000024f8: MSTORE
000024f9: PUSH1 0x20
000024fb: ADD
000024fc: PUSH1 0x00
000024fe: KECCAK256
000024ff: SLOAD
00002500: ADD
00002501: LT
00002502: ISZERO
00002503: PUSH2 0x250b
00002506: JUMPI
00002507: PUSH2 0x263c
0000250a: JUMP
0000250b: JUMPDEST
0000250c: PUSH1 0x64
0000250e: PUSH1 0x5f
00002510: DUP6
00002511: MUL
00002512: DUP2
00002513: ISZERO
00002514: ISZERO
00002515: PUSH2 0x251a
00002518: JUMPI
00002519: INVALID
0000251a: JUMPDEST
0000251b: DIV
0000251c: SWAP1
0000251d: POP
0000251e: PUSH1 0x64
00002520: PUSH1 0x05
00002522: DUP6
00002523: MUL
00002524: DUP2
00002525: ISZERO
00002526: ISZERO
00002527: PUSH2 0x252c
0000252a: JUMPI
0000252b: INVALID
0000252c: JUMPDEST
0000252d: DIV
0000252e: PUSH1 0x17
00002530: PUSH1 0x00
00002532: DUP3
00002533: DUP3
00002534: SLOAD
00002535: ADD
00002536: SWAP3
00002537: POP
00002538: POP
00002539: DUP2
0000253a: SWAP1
0000253b: SSTORE
0000253c: POP
0000253d: DUP1
0000253e: PUSH1 0x05
00002540: PUSH1 0x00
00002542: DUP6
00002543: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002558: AND
00002559: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000256e: AND
0000256f: DUP2
00002570: MSTORE
00002571: PUSH1 0x20
00002573: ADD
00002574: SWAP1
00002575: DUP2
00002576: MSTORE
00002577: PUSH1 0x20
00002579: ADD
0000257a: PUSH1 0x00
0000257c: KECCAK256
0000257d: PUSH1 0x00
0000257f: DUP3
00002580: DUP3
00002581: SLOAD
00002582: SUB
00002583: SWAP3
00002584: POP
00002585: POP
00002586: DUP2
00002587: SWAP1
00002588: SSTORE
00002589: POP
0000258a: DUP1
0000258b: PUSH1 0x05
0000258d: PUSH1 0x00
0000258f: DUP5
00002590: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025a5: AND
000025a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025bb: AND
000025bc: DUP2
000025bd: MSTORE
000025be: PUSH1 0x20
000025c0: ADD
000025c1: SWAP1
000025c2: DUP2
000025c3: MSTORE
000025c4: PUSH1 0x20
000025c6: ADD
000025c7: PUSH1 0x00
000025c9: KECCAK256
000025ca: PUSH1 0x00
000025cc: DUP3
000025cd: DUP3
000025ce: SLOAD
000025cf: ADD
000025d0: SWAP3
000025d1: POP
000025d2: POP
000025d3: DUP2
000025d4: SWAP1
000025d5: SSTORE
000025d6: POP
000025d7: DUP2
000025d8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025ed: AND
000025ee: DUP4
000025ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002604: AND
00002605: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00002626: DUP4
00002627: PUSH1 0x40
00002629: MLOAD
0000262a: DUP1
0000262b: DUP3
0000262c: DUP2
0000262d: MSTORE
0000262e: PUSH1 0x20
00002630: ADD
00002631: SWAP2
00002632: POP
00002633: POP
00002634: PUSH1 0x40
00002636: MLOAD
00002637: DUP1
00002638: SWAP2
00002639: SUB
0000263a: SWAP1
0000263b: LOG3
0000263c: JUMPDEST
0000263d: POP
0000263e: POP
0000263f: POP
00002640: POP
00002641: JUMP
00002642: JUMPDEST
00002643: PUSH2 0x264d
00002646: CALLER
00002647: DUP4
00002648: DUP4
00002649: PUSH2 0x370e
0000264c: JUMP
0000264d: JUMPDEST
0000264e: POP
0000264f: POP
00002650: JUMP
00002651: JUMPDEST
00002652: PUSH1 0x09
00002654: SLOAD
00002655: DUP2
00002656: JUMP
00002657: JUMPDEST
00002658: PUSH1 0x00
0000265a: DUP1
0000265b: PUSH1 0x00
0000265d: DUP1
0000265e: PUSH1 0x00
00002660: DUP1
00002661: PUSH1 0x11
00002663: PUSH1 0x00
00002665: DUP9
00002666: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000267b: AND
0000267c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002691: AND
00002692: DUP2
00002693: MSTORE
00002694: PUSH1 0x20
00002696: ADD
00002697: SWAP1
00002698: DUP2
00002699: MSTORE
0000269a: PUSH1 0x20
0000269c: ADD
0000269d: PUSH1 0x00
0000269f: KECCAK256
000026a0: PUSH1 0x01
000026a2: ADD
000026a3: PUSH1 0x00
000026a5: SWAP1
000026a6: SLOAD
000026a7: SWAP1
000026a8: PUSH2 0x0100
000026ab: EXP
000026ac: SWAP1
000026ad: DIV
000026ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026c3: AND
000026c4: PUSH1 0x11
000026c6: PUSH1 0x00
000026c8: DUP10
000026c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026de: AND
000026df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026f4: AND
000026f5: DUP2
000026f6: MSTORE
000026f7: PUSH1 0x20
000026f9: ADD
000026fa: SWAP1
000026fb: DUP2
000026fc: MSTORE
000026fd: PUSH1 0x20
000026ff: ADD
00002700: PUSH1 0x00
00002702: KECCAK256
00002703: PUSH1 0x00
00002705: ADD
00002706: PUSH1 0x00
00002708: SWAP1
00002709: SLOAD
0000270a: SWAP1
0000270b: PUSH2 0x0100
0000270e: EXP
0000270f: SWAP1
00002710: DIV
00002711: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002726: AND
00002727: PUSH1 0x11
00002729: PUSH1 0x00
0000272b: DUP11
0000272c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002741: AND
00002742: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002757: AND
00002758: DUP2
00002759: MSTORE
0000275a: PUSH1 0x20
0000275c: ADD
0000275d: SWAP1
0000275e: DUP2
0000275f: MSTORE
00002760: PUSH1 0x20
00002762: ADD
00002763: PUSH1 0x00
00002765: KECCAK256
00002766: PUSH1 0x02
00002768: ADD
00002769: SLOAD
0000276a: PUSH1 0x0f
0000276c: PUSH1 0x00
0000276e: DUP12
0000276f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002784: AND
00002785: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000279a: AND
0000279b: DUP2
0000279c: MSTORE
0000279d: PUSH1 0x20
0000279f: ADD
000027a0: SWAP1
000027a1: DUP2
000027a2: MSTORE
000027a3: PUSH1 0x20
000027a5: ADD
000027a6: PUSH1 0x00
000027a8: KECCAK256
000027a9: DUP1
000027aa: SLOAD
000027ab: SWAP1
000027ac: POP
000027ad: PUSH1 0x10
000027af: PUSH1 0x00
000027b1: DUP13
000027b2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000027c7: AND
000027c8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000027dd: AND
000027de: DUP2
000027df: MSTORE
000027e0: PUSH1 0x20
000027e2: ADD
000027e3: SWAP1
000027e4: DUP2
000027e5: MSTORE
000027e6: PUSH1 0x20
000027e8: ADD
000027e9: PUSH1 0x00
000027eb: KECCAK256
000027ec: DUP1
000027ed: SLOAD
000027ee: SWAP1
000027ef: POP
000027f0: PUSH1 0x11
000027f2: PUSH1 0x00
000027f4: DUP14
000027f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000280a: AND
0000280b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002820: AND
00002821: DUP2
00002822: MSTORE
00002823: PUSH1 0x20
00002825: ADD
00002826: SWAP1
00002827: DUP2
00002828: MSTORE
00002829: PUSH1 0x20
0000282b: ADD
0000282c: PUSH1 0x00
0000282e: KECCAK256
0000282f: PUSH1 0x03
00002831: ADD
00002832: PUSH1 0x00
00002834: SWAP1
00002835: SLOAD
00002836: SWAP1
00002837: PUSH2 0x0100
0000283a: EXP
0000283b: SWAP1
0000283c: DIV
0000283d: PUSH1 0xff
0000283f: AND
00002840: SWAP6
00002841: POP
00002842: SWAP6
00002843: POP
00002844: SWAP6
00002845: POP
00002846: SWAP6
00002847: POP
00002848: SWAP6
00002849: POP
0000284a: SWAP6
0000284b: POP
0000284c: SWAP2
0000284d: SWAP4
0000284e: SWAP6
0000284f: POP
00002850: SWAP2
00002851: SWAP4
00002852: SWAP6
00002853: JUMP
00002854: JUMPDEST
00002855: PUSH1 0x08
00002857: SLOAD
00002858: DUP2
00002859: JUMP
0000285a: JUMPDEST
0000285b: PUSH1 0x0e
0000285d: SLOAD
0000285e: DUP2
0000285f: JUMP
00002860: JUMPDEST
00002861: PUSH1 0x00
00002863: DUP1
00002864: DUP5
00002865: SWAP1
00002866: POP
00002867: PUSH2 0x2870
0000286a: DUP6
0000286b: DUP6
0000286c: PUSH2 0x168c
0000286f: JUMP
00002870: JUMPDEST
00002871: ISZERO
00002872: PUSH2 0x29da
00002875: JUMPI
00002876: DUP1
00002877: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000288c: AND
0000288d: PUSH4 0x8f4ffcb1
00002892: CALLER
00002893: DUP7
00002894: ADDRESS
00002895: DUP8
00002896: PUSH1 0x40
00002898: MLOAD
00002899: DUP6
0000289a: PUSH4 0xffffffff
0000289f: AND
000028a0: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000028be: MUL
000028bf: DUP2
000028c0: MSTORE
000028c1: PUSH1 0x04
000028c3: ADD
000028c4: DUP1
000028c5: DUP6
000028c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000028db: AND
000028dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000028f1: AND
000028f2: DUP2
000028f3: MSTORE
000028f4: PUSH1 0x20
000028f6: ADD
000028f7: DUP5
000028f8: DUP2
000028f9: MSTORE
000028fa: PUSH1 0x20
000028fc: ADD
000028fd: DUP4
000028fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002913: AND
00002914: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002929: AND
0000292a: DUP2
0000292b: MSTORE
0000292c: PUSH1 0x20
0000292e: ADD
0000292f: DUP1
00002930: PUSH1 0x20
00002932: ADD
00002933: DUP3
00002934: DUP2
00002935: SUB
00002936: DUP3
00002937: MSTORE
00002938: DUP4
00002939: DUP2
0000293a: DUP2
0000293b: MLOAD
0000293c: DUP2
0000293d: MSTORE
0000293e: PUSH1 0x20
00002940: ADD
00002941: SWAP2
00002942: POP
00002943: DUP1
00002944: MLOAD
00002945: SWAP1
00002946: PUSH1 0x20
00002948: ADD
00002949: SWAP1
0000294a: DUP1
0000294b: DUP4
0000294c: DUP4
0000294d: PUSH1 0x00
0000294f: JUMPDEST
00002950: DUP4
00002951: DUP2
00002952: LT
00002953: ISZERO
00002954: PUSH2 0x296a
00002957: JUMPI
00002958: DUP1
00002959: DUP3
0000295a: ADD
0000295b: MLOAD
0000295c: DUP2
0000295d: DUP5
0000295e: ADD
0000295f: MSTORE
00002960: PUSH1 0x20
00002962: DUP2
00002963: ADD
00002964: SWAP1
00002965: POP
00002966: PUSH2 0x294f
00002969: JUMP
0000296a: JUMPDEST
0000296b: POP
0000296c: POP
0000296d: POP
0000296e: POP
0000296f: SWAP1
00002970: POP
00002971: SWAP1
00002972: DUP2
00002973: ADD
00002974: SWAP1
00002975: PUSH1 0x1f
00002977: AND
00002978: DUP1
00002979: ISZERO
0000297a: PUSH2 0x2997
0000297d: JUMPI
0000297e: DUP1
0000297f: DUP3
00002980: SUB
00002981: DUP1
00002982: MLOAD
00002983: PUSH1 0x01
00002985: DUP4
00002986: PUSH1 0x20
00002988: SUB
00002989: PUSH2 0x0100
0000298c: EXP
0000298d: SUB
0000298e: NOT
0000298f: AND
00002990: DUP2
00002991: MSTORE
00002992: PUSH1 0x20
00002994: ADD
00002995: SWAP2
00002996: POP
00002997: JUMPDEST
00002998: POP
00002999: SWAP6
0000299a: POP
0000299b: POP
0000299c: POP
0000299d: POP
0000299e: POP
0000299f: POP
000029a0: PUSH1 0x00
000029a2: PUSH1 0x40
000029a4: MLOAD
000029a5: DUP1
000029a6: DUP4
000029a7: SUB
000029a8: DUP2
000029a9: PUSH1 0x00
000029ab: DUP8
000029ac: DUP1
000029ad: EXTCODESIZE
000029ae: ISZERO
000029af: DUP1
000029b0: ISZERO
000029b1: PUSH2 0x29b9
000029b4: JUMPI
000029b5: PUSH1 0x00
000029b7: DUP1
000029b8: REVERT
000029b9: JUMPDEST
000029ba: POP
000029bb: GAS
000029bc: CALL
000029bd: ISZERO
000029be: DUP1
000029bf: ISZERO
000029c0: PUSH2 0x29cd
000029c3: JUMPI
000029c4: RETURNDATASIZE
000029c5: PUSH1 0x00
000029c7: DUP1
000029c8: RETURNDATACOPY
000029c9: RETURNDATASIZE
000029ca: PUSH1 0x00
000029cc: REVERT
000029cd: JUMPDEST
000029ce: POP
000029cf: POP
000029d0: POP
000029d1: POP
000029d2: PUSH1 0x01
000029d4: SWAP2
000029d5: POP
000029d6: PUSH2 0x29db
000029d9: JUMP
000029da: JUMPDEST
000029db: JUMPDEST
000029dc: POP
000029dd: SWAP4
000029de: SWAP3
000029df: POP
000029e0: POP
000029e1: POP
000029e2: JUMP
000029e3: JUMPDEST
000029e4: PUSH1 0x00
000029e6: DUP1
000029e7: SWAP1
000029e8: POP
000029e9: JUMPDEST
000029ea: PUSH1 0x18
000029ec: SLOAD
000029ed: DUP2
000029ee: LT
000029ef: ISZERO
000029f0: PUSH2 0x2abd
000029f3: JUMPI
000029f4: DUP2
000029f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a0a: AND
00002a0b: PUSH1 0x0d
00002a0d: DUP3
00002a0e: DUP2
00002a0f: SLOAD
00002a10: DUP2
00002a11: LT
00002a12: ISZERO
00002a13: ISZERO
00002a14: PUSH2 0x2a19
00002a17: JUMPI
00002a18: INVALID
00002a19: JUMPDEST
00002a1a: SWAP1
00002a1b: PUSH1 0x00
00002a1d: MSTORE
00002a1e: PUSH1 0x20
00002a20: PUSH1 0x00
00002a22: KECCAK256
00002a23: ADD
00002a24: PUSH1 0x00
00002a26: SWAP1
00002a27: SLOAD
00002a28: SWAP1
00002a29: PUSH2 0x0100
00002a2c: EXP
00002a2d: SWAP1
00002a2e: DIV
00002a2f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a44: AND
00002a45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a5a: AND
00002a5b: EQ
00002a5c: ISZERO
00002a5d: PUSH2 0x2ab0
00002a60: JUMPI
00002a61: PUSH1 0x18
00002a63: PUSH1 0x00
00002a65: DUP2
00002a66: SLOAD
00002a67: DUP1
00002a68: SWAP3
00002a69: SWAP2
00002a6a: SWAP1
00002a6b: PUSH1 0x01
00002a6d: SWAP1
00002a6e: SUB
00002a6f: SWAP2
00002a70: SWAP1
00002a71: POP
00002a72: SSTORE
00002a73: POP
00002a74: PUSH1 0x0d
00002a76: DUP2
00002a77: DUP2
00002a78: SLOAD
00002a79: DUP2
00002a7a: LT
00002a7b: ISZERO
00002a7c: ISZERO
00002a7d: PUSH2 0x2a82
00002a80: JUMPI
00002a81: INVALID
00002a82: JUMPDEST
00002a83: SWAP1
00002a84: PUSH1 0x00
00002a86: MSTORE
00002a87: PUSH1 0x20
00002a89: PUSH1 0x00
00002a8b: KECCAK256
00002a8c: ADD
00002a8d: PUSH1 0x00
00002a8f: PUSH2 0x0100
00002a92: EXP
00002a93: DUP2
00002a94: SLOAD
00002a95: SWAP1
00002a96: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002aab: MUL
00002aac: NOT
00002aad: AND
00002aae: SWAP1
00002aaf: SSTORE
00002ab0: JUMPDEST
00002ab1: DUP1
00002ab2: DUP1
00002ab3: PUSH1 0x01
00002ab5: ADD
00002ab6: SWAP2
00002ab7: POP
00002ab8: POP
00002ab9: PUSH2 0x29e9
00002abc: JUMP
00002abd: JUMPDEST
00002abe: PUSH1 0x19
00002ac0: PUSH1 0x00
00002ac2: DUP2
00002ac3: SLOAD
00002ac4: DUP1
00002ac5: SWAP3
00002ac6: SWAP2
00002ac7: SWAP1
00002ac8: PUSH1 0x01
00002aca: ADD
00002acb: SWAP2
00002acc: SWAP1
00002acd: POP
00002ace: SSTORE
00002acf: POP
00002ad0: PUSH1 0x0c
00002ad2: DUP3
00002ad3: SWAP1
00002ad4: DUP1
00002ad5: PUSH1 0x01
00002ad7: DUP2
00002ad8: SLOAD
00002ad9: ADD
00002ada: DUP1
00002adb: DUP3
00002adc: SSTORE
00002add: DUP1
00002ade: SWAP2
00002adf: POP
00002ae0: POP
00002ae1: SWAP1
00002ae2: PUSH1 0x01
00002ae4: DUP3
00002ae5: SUB
00002ae6: SWAP1
00002ae7: PUSH1 0x00
00002ae9: MSTORE
00002aea: PUSH1 0x20
00002aec: PUSH1 0x00
00002aee: KECCAK256
00002aef: ADD
00002af0: PUSH1 0x00
00002af2: SWAP1
00002af3: SWAP2
00002af4: SWAP3
00002af5: SWAP1
00002af6: SWAP2
00002af7: SWAP1
00002af8: SWAP2
00002af9: PUSH2 0x0100
00002afc: EXP
00002afd: DUP2
00002afe: SLOAD
00002aff: DUP2
00002b00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b15: MUL
00002b16: NOT
00002b17: AND
00002b18: SWAP1
00002b19: DUP4
00002b1a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b2f: AND
00002b30: MUL
00002b31: OR
00002b32: SWAP1
00002b33: SSTORE
00002b34: POP
00002b35: POP
00002b36: POP
00002b37: POP
00002b38: JUMP
00002b39: JUMPDEST
00002b3a: PUSH1 0x0d
00002b3c: DUP2
00002b3d: DUP2
00002b3e: SLOAD
00002b3f: DUP2
00002b40: LT
00002b41: ISZERO
00002b42: ISZERO
00002b43: PUSH2 0x2b48
00002b46: JUMPI
00002b47: INVALID
00002b48: JUMPDEST
00002b49: SWAP1
00002b4a: PUSH1 0x00
00002b4c: MSTORE
00002b4d: PUSH1 0x20
00002b4f: PUSH1 0x00
00002b51: KECCAK256
00002b52: ADD
00002b53: PUSH1 0x00
00002b55: SWAP2
00002b56: POP
00002b57: SLOAD
00002b58: SWAP1
00002b59: PUSH2 0x0100
00002b5c: EXP
00002b5d: SWAP1
00002b5e: DIV
00002b5f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b74: AND
00002b75: DUP2
00002b76: JUMP
00002b77: JUMPDEST
00002b78: PUSH1 0x06
00002b7a: PUSH1 0x20
00002b7c: MSTORE
00002b7d: DUP2
00002b7e: PUSH1 0x00
00002b80: MSTORE
00002b81: PUSH1 0x40
00002b83: PUSH1 0x00
00002b85: KECCAK256
00002b86: PUSH1 0x20
00002b88: MSTORE
00002b89: DUP1
00002b8a: PUSH1 0x00
00002b8c: MSTORE
00002b8d: PUSH1 0x40
00002b8f: PUSH1 0x00
00002b91: KECCAK256
00002b92: PUSH1 0x00
00002b94: SWAP2
00002b95: POP
00002b96: SWAP2
00002b97: POP
00002b98: POP
00002b99: SLOAD
00002b9a: DUP2
00002b9b: JUMP
00002b9c: JUMPDEST
00002b9d: PUSH1 0x13
00002b9f: PUSH1 0x00
00002ba1: PUSH1 0x15
00002ba3: SLOAD
00002ba4: DUP2
00002ba5: MSTORE
00002ba6: PUSH1 0x20
00002ba8: ADD
00002ba9: SWAP1
00002baa: DUP2
00002bab: MSTORE
00002bac: PUSH1 0x20
00002bae: ADD
00002baf: PUSH1 0x00
00002bb1: KECCAK256
00002bb2: SLOAD
00002bb3: PUSH8 0x0de0b6b3a7640000
00002bbc: PUSH1 0x07
00002bbe: SLOAD
00002bbf: DUP2
00002bc0: ISZERO
00002bc1: ISZERO
00002bc2: PUSH2 0x2bc7
00002bc5: JUMPI
00002bc6: INVALID
00002bc7: JUMPDEST
00002bc8: DIV
00002bc9: LT
00002bca: ISZERO
00002bcb: DUP1
00002bcc: ISZERO
00002bcd: PUSH2 0x2bd8
00002bd0: JUMPI
00002bd1: POP
00002bd2: PUSH1 0x0d
00002bd4: PUSH1 0x15
00002bd6: SLOAD
00002bd7: LT
00002bd8: JUMPDEST
00002bd9: ISZERO
00002bda: PUSH2 0x2c0e
00002bdd: JUMPI
00002bde: PUSH1 0x14
00002be0: PUSH1 0x00
00002be2: PUSH1 0x01
00002be4: PUSH1 0x15
00002be6: SLOAD
00002be7: ADD
00002be8: DUP2
00002be9: MSTORE
00002bea: PUSH1 0x20
00002bec: ADD
00002bed: SWAP1
00002bee: DUP2
00002bef: MSTORE
00002bf0: PUSH1 0x20
00002bf2: ADD
00002bf3: PUSH1 0x00
00002bf5: KECCAK256
00002bf6: SLOAD
00002bf7: PUSH1 0x08
00002bf9: DUP2
00002bfa: SWAP1
00002bfb: SSTORE
00002bfc: POP
00002bfd: PUSH1 0x01
00002bff: PUSH1 0x15
00002c01: PUSH1 0x00
00002c03: DUP3
00002c04: DUP3
00002c05: SLOAD
00002c06: ADD
00002c07: SWAP3
00002c08: POP
00002c09: POP
00002c0a: DUP2
00002c0b: SWAP1
00002c0c: SSTORE
00002c0d: POP
00002c0e: JUMPDEST
00002c0f: PUSH1 0x13
00002c11: PUSH1 0x00
00002c13: PUSH1 0x01
00002c15: PUSH1 0x15
00002c17: SLOAD
00002c18: ADD
00002c19: DUP2
00002c1a: MSTORE
00002c1b: PUSH1 0x20
00002c1d: ADD
00002c1e: SWAP1
00002c1f: DUP2
00002c20: MSTORE
00002c21: PUSH1 0x20
00002c23: ADD
00002c24: PUSH1 0x00
00002c26: KECCAK256
00002c27: SLOAD
00002c28: PUSH8 0x0de0b6b3a7640000
00002c31: PUSH1 0x07
00002c33: SLOAD
00002c34: DUP2
00002c35: ISZERO
00002c36: ISZERO
00002c37: PUSH2 0x2c3c
00002c3a: JUMPI
00002c3b: INVALID
00002c3c: JUMPDEST
00002c3d: DIV
00002c3e: LT
00002c3f: ISZERO
00002c40: DUP1
00002c41: ISZERO
00002c42: PUSH2 0x2c4d
00002c45: JUMPI
00002c46: POP
00002c47: PUSH1 0x0c
00002c49: PUSH1 0x15
00002c4b: SLOAD
00002c4c: LT
00002c4d: JUMPDEST
00002c4e: ISZERO
00002c4f: PUSH2 0x2c83
00002c52: JUMPI
00002c53: PUSH1 0x14
00002c55: PUSH1 0x00
00002c57: PUSH1 0x02
00002c59: PUSH1 0x15
00002c5b: SLOAD
00002c5c: ADD
00002c5d: DUP2
00002c5e: MSTORE
00002c5f: PUSH1 0x20
00002c61: ADD
00002c62: SWAP1
00002c63: DUP2
00002c64: MSTORE
00002c65: PUSH1 0x20
00002c67: ADD
00002c68: PUSH1 0x00
00002c6a: KECCAK256
00002c6b: SLOAD
00002c6c: PUSH1 0x08
00002c6e: DUP2
00002c6f: SWAP1
00002c70: SSTORE
00002c71: POP
00002c72: PUSH1 0x02
00002c74: PUSH1 0x15
00002c76: PUSH1 0x00
00002c78: DUP3
00002c79: DUP3
00002c7a: SLOAD
00002c7b: ADD
00002c7c: SWAP3
00002c7d: POP
00002c7e: POP
00002c7f: DUP2
00002c80: SWAP1
00002c81: SSTORE
00002c82: POP
00002c83: JUMPDEST
00002c84: PUSH1 0x13
00002c86: PUSH1 0x00
00002c88: PUSH1 0x02
00002c8a: PUSH1 0x15
00002c8c: SLOAD
00002c8d: ADD
00002c8e: DUP2
00002c8f: MSTORE
00002c90: PUSH1 0x20
00002c92: ADD
00002c93: SWAP1
00002c94: DUP2
00002c95: MSTORE
00002c96: PUSH1 0x20
00002c98: ADD
00002c99: PUSH1 0x00
00002c9b: KECCAK256
00002c9c: SLOAD
00002c9d: PUSH8 0x0de0b6b3a7640000
00002ca6: PUSH1 0x07
00002ca8: SLOAD
00002ca9: DUP2
00002caa: ISZERO
00002cab: ISZERO
00002cac: PUSH2 0x2cb1
00002caf: JUMPI
00002cb0: INVALID
00002cb1: JUMPDEST
00002cb2: DIV
00002cb3: LT
00002cb4: ISZERO
00002cb5: DUP1
00002cb6: ISZERO
00002cb7: PUSH2 0x2cc2
00002cba: JUMPI
00002cbb: POP
00002cbc: PUSH1 0x0b
00002cbe: PUSH1 0x15
00002cc0: SLOAD
00002cc1: LT
00002cc2: JUMPDEST
00002cc3: ISZERO
00002cc4: PUSH2 0x2cf8
00002cc7: JUMPI
00002cc8: PUSH1 0x14
00002cca: PUSH1 0x00
00002ccc: PUSH1 0x03
00002cce: PUSH1 0x15
00002cd0: SLOAD
00002cd1: ADD
00002cd2: DUP2
00002cd3: MSTORE
00002cd4: PUSH1 0x20
00002cd6: ADD
00002cd7: SWAP1
00002cd8: DUP2
00002cd9: MSTORE
00002cda: PUSH1 0x20
00002cdc: ADD
00002cdd: PUSH1 0x00
00002cdf: KECCAK256
00002ce0: SLOAD
00002ce1: PUSH1 0x08
00002ce3: DUP2
00002ce4: SWAP1
00002ce5: SSTORE
00002ce6: POP
00002ce7: PUSH1 0x03
00002ce9: PUSH1 0x15
00002ceb: PUSH1 0x00
00002ced: DUP3
00002cee: DUP3
00002cef: SLOAD
00002cf0: ADD
00002cf1: SWAP3
00002cf2: POP
00002cf3: POP
00002cf4: DUP2
00002cf5: SWAP1
00002cf6: SSTORE
00002cf7: POP
00002cf8: JUMPDEST
00002cf9: JUMP
00002cfa: JUMPDEST
00002cfb: PUSH1 0x00
00002cfd: DUP1
00002cfe: PUSH1 0x00
00002d00: DUP1
00002d01: PUSH1 0x00
00002d03: PUSH1 0x0b
00002d05: SLOAD
00002d06: GT
00002d07: DUP1
00002d08: ISZERO
00002d09: PUSH2 0x2d14
00002d0c: JUMPI
00002d0d: POP
00002d0e: PUSH1 0x00
00002d10: PUSH1 0x19
00002d12: SLOAD
00002d13: GT
00002d14: JUMPDEST
00002d15: ISZERO
00002d16: PUSH2 0x2e75
00002d19: JUMPI
00002d1a: PUSH1 0x03
00002d1c: PUSH1 0x00
00002d1e: SWAP1
00002d1f: SLOAD
00002d20: SWAP1
00002d21: PUSH2 0x0100
00002d24: EXP
00002d25: SWAP1
00002d26: DIV
00002d27: PUSH1 0xff
00002d29: AND
00002d2a: PUSH1 0xff
00002d2c: AND
00002d2d: PUSH1 0x0a
00002d2f: EXP
00002d30: PUSH2 0x4e20
00002d33: MUL
00002d34: SWAP4
00002d35: POP
00002d36: PUSH1 0x05
00002d38: PUSH1 0x00
00002d3a: ADDRESS
00002d3b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002d50: AND
00002d51: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002d66: AND
00002d67: DUP2
00002d68: MSTORE
00002d69: PUSH1 0x20
00002d6b: ADD
00002d6c: SWAP1
00002d6d: DUP2
00002d6e: MSTORE
00002d6f: PUSH1 0x20
00002d71: ADD
00002d72: PUSH1 0x00
00002d74: KECCAK256
00002d75: SLOAD
00002d76: SWAP3
00002d77: POP
00002d78: DUP4
00002d79: DUP4
00002d7a: LT
00002d7b: ISZERO
00002d7c: PUSH2 0x2d84
00002d7f: JUMPI
00002d80: PUSH2 0x2e76
00002d83: JUMP
00002d84: JUMPDEST
00002d85: PUSH1 0x00
00002d87: SWAP2
00002d88: POP
00002d89: PUSH1 0x19
00002d8b: SLOAD
00002d8c: DUP5
00002d8d: DUP2
00002d8e: ISZERO
00002d8f: ISZERO
00002d90: PUSH2 0x2d95
00002d93: JUMPI
00002d94: INVALID
00002d95: JUMPDEST
00002d96: DIV
00002d97: SWAP1
00002d98: POP
00002d99: JUMPDEST
00002d9a: PUSH1 0x19
00002d9c: SLOAD
00002d9d: DUP3
00002d9e: LT
00002d9f: ISZERO
00002da0: PUSH2 0x2e64
00002da3: JUMPI
00002da4: PUSH1 0x00
00002da6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002dbb: AND
00002dbc: PUSH1 0x0c
00002dbe: DUP4
00002dbf: DUP2
00002dc0: SLOAD
00002dc1: DUP2
00002dc2: LT
00002dc3: ISZERO
00002dc4: ISZERO
00002dc5: PUSH2 0x2dca
00002dc8: JUMPI
00002dc9: INVALID
00002dca: JUMPDEST
00002dcb: SWAP1
00002dcc: PUSH1 0x00
00002dce: MSTORE
00002dcf: PUSH1 0x20
00002dd1: PUSH1 0x00
00002dd3: KECCAK256
00002dd4: ADD
00002dd5: PUSH1 0x00
00002dd7: SWAP1
00002dd8: SLOAD
00002dd9: SWAP1
00002dda: PUSH2 0x0100
00002ddd: EXP
00002dde: SWAP1
00002ddf: DIV
00002de0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002df5: AND
00002df6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002e0b: AND
00002e0c: EQ
00002e0d: ISZERO
00002e0e: ISZERO
00002e0f: PUSH2 0x2e57
00002e12: JUMPI
00002e13: PUSH2 0x2e56
00002e16: ADDRESS
00002e17: PUSH1 0x0c
00002e19: DUP5
00002e1a: DUP2
00002e1b: SLOAD
00002e1c: DUP2
00002e1d: LT
00002e1e: ISZERO
00002e1f: ISZERO
00002e20: PUSH2 0x2e25
00002e23: JUMPI
00002e24: INVALID
00002e25: JUMPDEST
00002e26: SWAP1
00002e27: PUSH1 0x00
00002e29: MSTORE
00002e2a: PUSH1 0x20
00002e2c: PUSH1 0x00
00002e2e: KECCAK256
00002e2f: ADD
00002e30: PUSH1 0x00
00002e32: SWAP1
00002e33: SLOAD
00002e34: SWAP1
00002e35: PUSH2 0x0100
00002e38: EXP
00002e39: SWAP1
00002e3a: DIV
00002e3b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002e50: AND
00002e51: DUP4
00002e52: PUSH2 0x370e
00002e55: JUMP
00002e56: JUMPDEST
00002e57: JUMPDEST
00002e58: DUP2
00002e59: DUP1
00002e5a: PUSH1 0x01
00002e5c: ADD
00002e5d: SWAP3
00002e5e: POP
00002e5f: POP
00002e60: PUSH2 0x2d99
00002e63: JUMP
00002e64: JUMPDEST
00002e65: DUP4
00002e66: PUSH1 0x0b
00002e68: PUSH1 0x00
00002e6a: DUP3
00002e6b: DUP3
00002e6c: SLOAD
00002e6d: SUB
00002e6e: SWAP3
00002e6f: POP
00002e70: POP
00002e71: DUP2
00002e72: SWAP1
00002e73: SSTORE
00002e74: POP
00002e75: JUMPDEST
00002e76: JUMPDEST
00002e77: POP
00002e78: POP
00002e79: POP
00002e7a: POP
00002e7b: JUMP
00002e7c: JUMPDEST
00002e7d: PUSH1 0x00
00002e7f: DUP1
00002e80: PUSH1 0x00
00002e82: DUP1
00002e83: PUSH1 0x00
00002e85: PUSH1 0x09
00002e87: SLOAD
00002e88: PUSH1 0x17
00002e8a: SLOAD
00002e8b: PUSH1 0x19
00002e8d: SLOAD
00002e8e: PUSH1 0x18
00002e90: SLOAD
00002e91: PUSH1 0x0b
00002e93: SLOAD
00002e94: SWAP5
00002e95: POP
00002e96: SWAP5
00002e97: POP
00002e98: SWAP5
00002e99: POP
00002e9a: SWAP5
00002e9b: POP
00002e9c: SWAP5
00002e9d: POP
00002e9e: SWAP1
00002e9f: SWAP2
00002ea0: SWAP3
00002ea1: SWAP4
00002ea2: SWAP5
00002ea3: JUMP
00002ea4: JUMPDEST
00002ea5: PUSH1 0x0b
00002ea7: SLOAD
00002ea8: DUP2
00002ea9: JUMP
00002eaa: JUMPDEST
00002eab: PUSH1 0x00
00002ead: DUP1
00002eae: PUSH1 0x00
00002eb0: DUP1
00002eb1: PUSH1 0x00
00002eb3: DUP1
00002eb4: PUSH2 0x2ebb
00002eb7: PUSH2 0x3a1b
00002eba: JUMP
00002ebb: JUMPDEST
00002ebc: PUSH1 0x01
00002ebe: ISZERO
00002ebf: ISZERO
00002ec0: PUSH2 0x2ec8
00002ec3: DUP11
00002ec4: PUSH2 0x2154
00002ec7: JUMP
00002ec8: JUMPDEST
00002ec9: ISZERO
00002eca: ISZERO
00002ecb: EQ
00002ecc: ISZERO
00002ecd: PUSH2 0x30c0
00002ed0: JUMPI
00002ed1: PUSH1 0x11
00002ed3: PUSH1 0x00
00002ed5: DUP11
00002ed6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002eeb: AND
00002eec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f01: AND
00002f02: DUP2
00002f03: MSTORE
00002f04: PUSH1 0x20
00002f06: ADD
00002f07: SWAP1
00002f08: DUP2
00002f09: MSTORE
00002f0a: PUSH1 0x20
00002f0c: ADD
00002f0d: PUSH1 0x00
00002f0f: KECCAK256
00002f10: PUSH1 0x01
00002f12: ADD
00002f13: PUSH1 0x00
00002f15: SWAP1
00002f16: SLOAD
00002f17: SWAP1
00002f18: PUSH2 0x0100
00002f1b: EXP
00002f1c: SWAP1
00002f1d: DIV
00002f1e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f33: AND
00002f34: PUSH1 0x11
00002f36: PUSH1 0x00
00002f38: DUP12
00002f39: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f4e: AND
00002f4f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f64: AND
00002f65: DUP2
00002f66: MSTORE
00002f67: PUSH1 0x20
00002f69: ADD
00002f6a: SWAP1
00002f6b: DUP2
00002f6c: MSTORE
00002f6d: PUSH1 0x20
00002f6f: ADD
00002f70: PUSH1 0x00
00002f72: KECCAK256
00002f73: PUSH1 0x00
00002f75: ADD
00002f76: PUSH1 0x00
00002f78: SWAP1
00002f79: SLOAD
00002f7a: SWAP1
00002f7b: PUSH2 0x0100
00002f7e: EXP
00002f7f: SWAP1
00002f80: DIV
00002f81: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f96: AND
00002f97: PUSH1 0x11
00002f99: PUSH1 0x00
00002f9b: DUP13
00002f9c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002fb1: AND
00002fb2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002fc7: AND
00002fc8: DUP2
00002fc9: MSTORE
00002fca: PUSH1 0x20
00002fcc: ADD
00002fcd: SWAP1
00002fce: DUP2
00002fcf: MSTORE
00002fd0: PUSH1 0x20
00002fd2: ADD
00002fd3: PUSH1 0x00
00002fd5: KECCAK256
00002fd6: PUSH1 0x02
00002fd8: ADD
00002fd9: SLOAD
00002fda: PUSH1 0x0f
00002fdc: PUSH1 0x00
00002fde: DUP14
00002fdf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002ff4: AND
00002ff5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000300a: AND
0000300b: DUP2
0000300c: MSTORE
0000300d: PUSH1 0x20
0000300f: ADD
00003010: SWAP1
00003011: DUP2
00003012: MSTORE
00003013: PUSH1 0x20
00003015: ADD
00003016: PUSH1 0x00
00003018: KECCAK256
00003019: DUP1
0000301a: SLOAD
0000301b: SWAP1
0000301c: POP
0000301d: PUSH1 0x10
0000301f: PUSH1 0x00
00003021: DUP15
00003022: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003037: AND
00003038: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000304d: AND
0000304e: DUP2
0000304f: MSTORE
00003050: PUSH1 0x20
00003052: ADD
00003053: SWAP1
00003054: DUP2
00003055: MSTORE
00003056: PUSH1 0x20
00003058: ADD
00003059: PUSH1 0x00
0000305b: KECCAK256
0000305c: DUP1
0000305d: SLOAD
0000305e: SWAP1
0000305f: POP
00003060: PUSH1 0x11
00003062: PUSH1 0x00
00003064: DUP16
00003065: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000307a: AND
0000307b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003090: AND
00003091: DUP2
00003092: MSTORE
00003093: PUSH1 0x20
00003095: ADD
00003096: SWAP1
00003097: DUP2
00003098: MSTORE
00003099: PUSH1 0x20
0000309b: ADD
0000309c: PUSH1 0x00
0000309e: KECCAK256
0000309f: PUSH1 0x03
000030a1: ADD
000030a2: PUSH1 0x00
000030a4: SWAP1
000030a5: SLOAD
000030a6: SWAP1
000030a7: PUSH2 0x0100
000030aa: EXP
000030ab: SWAP1
000030ac: DIV
000030ad: PUSH1 0xff
000030af: AND
000030b0: SWAP7
000030b1: POP
000030b2: SWAP7
000030b3: POP
000030b4: SWAP7
000030b5: POP
000030b6: SWAP7
000030b7: POP
000030b8: SWAP7
000030b9: POP
000030ba: SWAP7
000030bb: POP
000030bc: PUSH2 0x3647
000030bf: JUMP
000030c0: JUMPDEST
000030c1: PUSH1 0x80
000030c3: PUSH1 0x40
000030c5: MLOAD
000030c6: SWAP1
000030c7: DUP2
000030c8: ADD
000030c9: PUSH1 0x40
000030cb: MSTORE
000030cc: DUP1
000030cd: DUP10
000030ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000030e3: AND
000030e4: DUP2
000030e5: MSTORE
000030e6: PUSH1 0x20
000030e8: ADD
000030e9: DUP11
000030ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000030ff: AND
00003100: DUP2
00003101: MSTORE
00003102: PUSH1 0x20
00003104: ADD
00003105: PUSH1 0x00
00003107: DUP2
00003108: MSTORE
00003109: PUSH1 0x20
0000310b: ADD
0000310c: PUSH1 0x01
0000310e: ISZERO
0000310f: ISZERO
00003110: DUP2
00003111: MSTORE
00003112: POP
00003113: SWAP1
00003114: POP
00003115: DUP1
00003116: PUSH1 0x11
00003118: PUSH1 0x00
0000311a: DUP12
0000311b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003130: AND
00003131: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003146: AND
00003147: DUP2
00003148: MSTORE
00003149: PUSH1 0x20
0000314b: ADD
0000314c: SWAP1
0000314d: DUP2
0000314e: MSTORE
0000314f: PUSH1 0x20
00003151: ADD
00003152: PUSH1 0x00
00003154: KECCAK256
00003155: PUSH1 0x00
00003157: DUP3
00003158: ADD
00003159: MLOAD
0000315a: DUP2
0000315b: PUSH1 0x00
0000315d: ADD
0000315e: PUSH1 0x00
00003160: PUSH2 0x0100
00003163: EXP
00003164: DUP2
00003165: SLOAD
00003166: DUP2
00003167: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000317c: MUL
0000317d: NOT
0000317e: AND
0000317f: SWAP1
00003180: DUP4
00003181: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003196: AND
00003197: MUL
00003198: OR
00003199: SWAP1
0000319a: SSTORE
0000319b: POP
0000319c: PUSH1 0x20
0000319e: DUP3
0000319f: ADD
000031a0: MLOAD
000031a1: DUP2
000031a2: PUSH1 0x01
000031a4: ADD
000031a5: PUSH1 0x00
000031a7: PUSH2 0x0100
000031aa: EXP
000031ab: DUP2
000031ac: SLOAD
000031ad: DUP2
000031ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000031c3: MUL
000031c4: NOT
000031c5: AND
000031c6: SWAP1
000031c7: DUP4
000031c8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000031dd: AND
000031de: MUL
000031df: OR
000031e0: SWAP1
000031e1: SSTORE
000031e2: POP
000031e3: PUSH1 0x40
000031e5: DUP3
000031e6: ADD
000031e7: MLOAD
000031e8: DUP2
000031e9: PUSH1 0x02
000031eb: ADD
000031ec: SSTORE
000031ed: PUSH1 0x60
000031ef: DUP3
000031f0: ADD
000031f1: MLOAD
000031f2: DUP2
000031f3: PUSH1 0x03
000031f5: ADD
000031f6: PUSH1 0x00
000031f8: PUSH2 0x0100
000031fb: EXP
000031fc: DUP2
000031fd: SLOAD
000031fe: DUP2
000031ff: PUSH1 0xff
00003201: MUL
00003202: NOT
00003203: AND
00003204: SWAP1
00003205: DUP4
00003206: ISZERO
00003207: ISZERO
00003208: MUL
00003209: OR
0000320a: SWAP1
0000320b: SSTORE
0000320c: POP
0000320d: SWAP1
0000320e: POP
0000320f: POP
00003210: PUSH1 0x0f
00003212: PUSH1 0x00
00003214: DUP10
00003215: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000322a: AND
0000322b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003240: AND
00003241: DUP2
00003242: MSTORE
00003243: PUSH1 0x20
00003245: ADD
00003246: SWAP1
00003247: DUP2
00003248: MSTORE
00003249: PUSH1 0x20
0000324b: ADD
0000324c: PUSH1 0x00
0000324e: KECCAK256
0000324f: DUP2
00003250: SWAP1
00003251: DUP1
00003252: PUSH1 0x01
00003254: DUP2
00003255: SLOAD
00003256: ADD
00003257: DUP1
00003258: DUP3
00003259: SSTORE
0000325a: DUP1
0000325b: SWAP2
0000325c: POP
0000325d: POP
0000325e: SWAP1
0000325f: PUSH1 0x01
00003261: DUP3
00003262: SUB
00003263: SWAP1
00003264: PUSH1 0x00
00003266: MSTORE
00003267: PUSH1 0x20
00003269: PUSH1 0x00
0000326b: KECCAK256
0000326c: SWAP1
0000326d: PUSH1 0x04
0000326f: MUL
00003270: ADD
00003271: PUSH1 0x00
00003273: SWAP1
00003274: SWAP2
00003275: SWAP3
00003276: SWAP1
00003277: SWAP2
00003278: SWAP1
00003279: SWAP2
0000327a: POP
0000327b: PUSH1 0x00
0000327d: DUP3
0000327e: ADD
0000327f: MLOAD
00003280: DUP2
00003281: PUSH1 0x00
00003283: ADD
00003284: PUSH1 0x00
00003286: PUSH2 0x0100
00003289: EXP
0000328a: DUP2
0000328b: SLOAD
0000328c: DUP2
0000328d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000032a2: MUL
000032a3: NOT
000032a4: AND
000032a5: SWAP1
000032a6: DUP4
000032a7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000032bc: AND
000032bd: MUL
000032be: OR
000032bf: SWAP1
000032c0: SSTORE
000032c1: POP
000032c2: PUSH1 0x20
000032c4: DUP3
000032c5: ADD
000032c6: MLOAD
000032c7: DUP2
000032c8: PUSH1 0x01
000032ca: ADD
000032cb: PUSH1 0x00
000032cd: PUSH2 0x0100
000032d0: EXP
000032d1: DUP2
000032d2: SLOAD
000032d3: DUP2
000032d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000032e9: MUL
000032ea: NOT
000032eb: AND
000032ec: SWAP1
000032ed: DUP4
000032ee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003303: AND
00003304: MUL
00003305: OR
00003306: SWAP1
00003307: SSTORE
00003308: POP
00003309: PUSH1 0x40
0000330b: DUP3
0000330c: ADD
0000330d: MLOAD
0000330e: DUP2
0000330f: PUSH1 0x02
00003311: ADD
00003312: SSTORE
00003313: PUSH1 0x60
00003315: DUP3
00003316: ADD
00003317: MLOAD
00003318: DUP2
00003319: PUSH1 0x03
0000331b: ADD
0000331c: PUSH1 0x00
0000331e: PUSH2 0x0100
00003321: EXP
00003322: DUP2
00003323: SLOAD
00003324: DUP2
00003325: PUSH1 0xff
00003327: MUL
00003328: NOT
00003329: AND
0000332a: SWAP1
0000332b: DUP4
0000332c: ISZERO
0000332d: ISZERO
0000332e: MUL
0000332f: OR
00003330: SWAP1
00003331: SSTORE
00003332: POP
00003333: POP
00003334: POP
00003335: POP
00003336: PUSH1 0x10
00003338: PUSH1 0x00
0000333a: DUP10
0000333b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003350: AND
00003351: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003366: AND
00003367: DUP2
00003368: MSTORE
00003369: PUSH1 0x20
0000336b: ADD
0000336c: SWAP1
0000336d: DUP2
0000336e: MSTORE
0000336f: PUSH1 0x20
00003371: ADD
00003372: PUSH1 0x00
00003374: KECCAK256
00003375: DUP2
00003376: SWAP1
00003377: DUP1
00003378: PUSH1 0x01
0000337a: DUP2
0000337b: SLOAD
0000337c: ADD
0000337d: DUP1
0000337e: DUP3
0000337f: SSTORE
00003380: DUP1
00003381: SWAP2
00003382: POP
00003383: POP
00003384: SWAP1
00003385: PUSH1 0x01
00003387: DUP3
00003388: SUB
00003389: SWAP1
0000338a: PUSH1 0x00
0000338c: MSTORE
0000338d: PUSH1 0x20
0000338f: PUSH1 0x00
00003391: KECCAK256
00003392: SWAP1
00003393: PUSH1 0x04
00003395: MUL
00003396: ADD
00003397: PUSH1 0x00
00003399: SWAP1
0000339a: SWAP2
0000339b: SWAP3
0000339c: SWAP1
0000339d: SWAP2
0000339e: SWAP1
0000339f: SWAP2
000033a0: POP
000033a1: PUSH1 0x00
000033a3: DUP3
000033a4: ADD
000033a5: MLOAD
000033a6: DUP2
000033a7: PUSH1 0x00
000033a9: ADD
000033aa: PUSH1 0x00
000033ac: PUSH2 0x0100
000033af: EXP
000033b0: DUP2
000033b1: SLOAD
000033b2: DUP2
000033b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000033c8: MUL
000033c9: NOT
000033ca: AND
000033cb: SWAP1
000033cc: DUP4
000033cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000033e2: AND
000033e3: MUL
000033e4: OR
000033e5: SWAP1
000033e6: SSTORE
000033e7: POP
000033e8: PUSH1 0x20
000033ea: DUP3
000033eb: ADD
000033ec: MLOAD
000033ed: DUP2
000033ee: PUSH1 0x01
000033f0: ADD
000033f1: PUSH1 0x00
000033f3: PUSH2 0x0100
000033f6: EXP
000033f7: DUP2
000033f8: SLOAD
000033f9: DUP2
000033fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000340f: MUL
00003410: NOT
00003411: AND
00003412: SWAP1
00003413: DUP4
00003414: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003429: AND
0000342a: MUL
0000342b: OR
0000342c: SWAP1
0000342d: SSTORE
0000342e: POP
0000342f: PUSH1 0x40
00003431: DUP3
00003432: ADD
00003433: MLOAD
00003434: DUP2
00003435: PUSH1 0x02
00003437: ADD
00003438: SSTORE
00003439: PUSH1 0x60
0000343b: DUP3
0000343c: ADD
0000343d: MLOAD
0000343e: DUP2
0000343f: PUSH1 0x03
00003441: ADD
00003442: PUSH1 0x00
00003444: PUSH2 0x0100
00003447: EXP
00003448: DUP2
00003449: SLOAD
0000344a: DUP2
0000344b: PUSH1 0xff
0000344d: MUL
0000344e: NOT
0000344f: AND
00003450: SWAP1
00003451: DUP4
00003452: ISZERO
00003453: ISZERO
00003454: MUL
00003455: OR
00003456: SWAP1
00003457: SSTORE
00003458: POP
00003459: POP
0000345a: POP
0000345b: POP
0000345c: PUSH1 0x11
0000345e: PUSH1 0x00
00003460: DUP11
00003461: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003476: AND
00003477: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000348c: AND
0000348d: DUP2
0000348e: MSTORE
0000348f: PUSH1 0x20
00003491: ADD
00003492: SWAP1
00003493: DUP2
00003494: MSTORE
00003495: PUSH1 0x20
00003497: ADD
00003498: PUSH1 0x00
0000349a: KECCAK256
0000349b: PUSH1 0x01
0000349d: ADD
0000349e: PUSH1 0x00
000034a0: SWAP1
000034a1: SLOAD
000034a2: SWAP1
000034a3: PUSH2 0x0100
000034a6: EXP
000034a7: SWAP1
000034a8: DIV
000034a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000034be: AND
000034bf: PUSH1 0x11
000034c1: PUSH1 0x00
000034c3: DUP12
000034c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000034d9: AND
000034da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000034ef: AND
000034f0: DUP2
000034f1: MSTORE
000034f2: PUSH1 0x20
000034f4: ADD
000034f5: SWAP1
000034f6: DUP2
000034f7: MSTORE
000034f8: PUSH1 0x20
000034fa: ADD
000034fb: PUSH1 0x00
000034fd: KECCAK256
000034fe: PUSH1 0x00
00003500: ADD
00003501: PUSH1 0x00
00003503: SWAP1
00003504: SLOAD
00003505: SWAP1
00003506: PUSH2 0x0100
00003509: EXP
0000350a: SWAP1
0000350b: DIV
0000350c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003521: AND
00003522: PUSH1 0x11
00003524: PUSH1 0x00
00003526: DUP13
00003527: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000353c: AND
0000353d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003552: AND
00003553: DUP2
00003554: MSTORE
00003555: PUSH1 0x20
00003557: ADD
00003558: SWAP1
00003559: DUP2
0000355a: MSTORE
0000355b: PUSH1 0x20
0000355d: ADD
0000355e: PUSH1 0x00
00003560: KECCAK256
00003561: PUSH1 0x02
00003563: ADD
00003564: SLOAD
00003565: PUSH1 0x0f
00003567: PUSH1 0x00
00003569: DUP14
0000356a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000357f: AND
00003580: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003595: AND
00003596: DUP2
00003597: MSTORE
00003598: PUSH1 0x20
0000359a: ADD
0000359b: SWAP1
0000359c: DUP2
0000359d: MSTORE
0000359e: PUSH1 0x20
000035a0: ADD
000035a1: PUSH1 0x00
000035a3: KECCAK256
000035a4: DUP1
000035a5: SLOAD
000035a6: SWAP1
000035a7: POP
000035a8: PUSH1 0x10
000035aa: PUSH1 0x00
000035ac: DUP15
000035ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000035c2: AND
000035c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000035d8: AND
000035d9: DUP2
000035da: MSTORE
000035db: PUSH1 0x20
000035dd: ADD
000035de: SWAP1
000035df: DUP2
000035e0: MSTORE
000035e1: PUSH1 0x20
000035e3: ADD
000035e4: PUSH1 0x00
000035e6: KECCAK256
000035e7: DUP1
000035e8: SLOAD
000035e9: SWAP1
000035ea: POP
000035eb: PUSH1 0x11
000035ed: PUSH1 0x00
000035ef: DUP16
000035f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003605: AND
00003606: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000361b: AND
0000361c: DUP2
0000361d: MSTORE
0000361e: PUSH1 0x20
00003620: ADD
00003621: SWAP1
00003622: DUP2
00003623: MSTORE
00003624: PUSH1 0x20
00003626: ADD
00003627: PUSH1 0x00
00003629: KECCAK256
0000362a: PUSH1 0x03
0000362c: ADD
0000362d: PUSH1 0x00
0000362f: SWAP1
00003630: SLOAD
00003631: SWAP1
00003632: PUSH2 0x0100
00003635: EXP
00003636: SWAP1
00003637: DIV
00003638: PUSH1 0xff
0000363a: AND
0000363b: SWAP7
0000363c: POP
0000363d: SWAP7
0000363e: POP
0000363f: SWAP7
00003640: POP
00003641: SWAP7
00003642: POP
00003643: SWAP7
00003644: POP
00003645: SWAP7
00003646: POP
00003647: JUMPDEST
00003648: POP
00003649: SWAP3
0000364a: SWAP6
0000364b: POP
0000364c: SWAP3
0000364d: SWAP6
0000364e: POP
0000364f: SWAP3
00003650: SWAP6
00003651: JUMP
00003652: JUMPDEST
00003653: PUSH1 0x00
00003655: DUP1
00003656: SWAP1
00003657: SLOAD
00003658: SWAP1
00003659: PUSH2 0x0100
0000365c: EXP
0000365d: SWAP1
0000365e: DIV
0000365f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003674: AND
00003675: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000368a: AND
0000368b: CALLER
0000368c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000036a1: AND
000036a2: EQ
000036a3: ISZERO
000036a4: ISZERO
000036a5: PUSH2 0x36ad
000036a8: JUMPI
000036a9: PUSH1 0x00
000036ab: DUP1
000036ac: REVERT
000036ad: JUMPDEST
000036ae: DUP1
000036af: PUSH1 0x00
000036b1: DUP1
000036b2: PUSH2 0x0100
000036b5: EXP
000036b6: DUP2
000036b7: SLOAD
000036b8: DUP2
000036b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000036ce: MUL
000036cf: NOT
000036d0: AND
000036d1: SWAP1
000036d2: DUP4
000036d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000036e8: AND
000036e9: MUL
000036ea: OR
000036eb: SWAP1
000036ec: SSTORE
000036ed: POP
000036ee: POP
000036ef: JUMP
000036f0: JUMPDEST
000036f1: PUSH1 0x00
000036f3: PUSH1 0x18
000036f5: SLOAD
000036f6: SWAP1
000036f7: POP
000036f8: SWAP1
000036f9: JUMP
000036fa: JUMPDEST
000036fb: PUSH1 0x00
000036fd: PUSH1 0x16
000036ff: SLOAD
00003700: SWAP1
00003701: POP
00003702: SWAP1
00003703: JUMP
00003704: JUMPDEST
00003705: PUSH1 0x00
00003707: PUSH1 0x08
00003709: SLOAD
0000370a: SWAP1
0000370b: POP
0000370c: SWAP1
0000370d: JUMP
0000370e: JUMPDEST
0000370f: PUSH1 0x00
00003711: DUP1
00003712: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003727: AND
00003728: DUP4
00003729: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000373e: AND
0000373f: EQ
00003740: ISZERO
00003741: PUSH2 0x3749
00003744: JUMPI
00003745: PUSH2 0x3a15
00003748: JUMP
00003749: JUMPDEST
0000374a: DUP2
0000374b: PUSH1 0x05
0000374d: PUSH1 0x00
0000374f: DUP7
00003750: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003765: AND
00003766: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000377b: AND
0000377c: DUP2
0000377d: MSTORE
0000377e: PUSH1 0x20
00003780: ADD
00003781: SWAP1
00003782: DUP2
00003783: MSTORE
00003784: PUSH1 0x20
00003786: ADD
00003787: PUSH1 0x00
00003789: KECCAK256
0000378a: SLOAD
0000378b: LT
0000378c: ISZERO
0000378d: PUSH2 0x3795
00003790: JUMPI
00003791: PUSH2 0x3a15
00003794: JUMP
00003795: JUMPDEST
00003796: PUSH1 0x05
00003798: PUSH1 0x00
0000379a: DUP5
0000379b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000037b0: AND
000037b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000037c6: AND
000037c7: DUP2
000037c8: MSTORE
000037c9: PUSH1 0x20
000037cb: ADD
000037cc: SWAP1
000037cd: DUP2
000037ce: MSTORE
000037cf: PUSH1 0x20
000037d1: ADD
000037d2: PUSH1 0x00
000037d4: KECCAK256
000037d5: SLOAD
000037d6: DUP3
000037d7: PUSH1 0x05
000037d9: PUSH1 0x00
000037db: DUP7
000037dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000037f1: AND
000037f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003807: AND
00003808: DUP2
00003809: MSTORE
0000380a: PUSH1 0x20
0000380c: ADD
0000380d: SWAP1
0000380e: DUP2
0000380f: MSTORE
00003810: PUSH1 0x20
00003812: ADD
00003813: PUSH1 0x00
00003815: KECCAK256
00003816: SLOAD
00003817: ADD
00003818: LT
00003819: ISZERO
0000381a: PUSH2 0x3822
0000381d: JUMPI
0000381e: PUSH2 0x3a15
00003821: JUMP
00003822: JUMPDEST
00003823: ADDRESS
00003824: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003839: AND
0000383a: DUP5
0000383b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003850: AND
00003851: EQ
00003852: DUP1
00003853: PUSH2 0x3887
00003856: JUMPI
00003857: POP
00003858: ADDRESS
00003859: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000386e: AND
0000386f: DUP4
00003870: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003885: AND
00003886: EQ
00003887: JUMPDEST
00003888: ISZERO
00003889: PUSH2 0x3894
0000388c: JUMPI
0000388d: DUP2
0000388e: SWAP1
0000388f: POP
00003890: PUSH2 0x38c6
00003893: JUMP
00003894: JUMPDEST
00003895: PUSH1 0x64
00003897: PUSH1 0x62
00003899: DUP4
0000389a: MUL
0000389b: DUP2
0000389c: ISZERO
0000389d: ISZERO
0000389e: PUSH2 0x38a3
000038a1: JUMPI
000038a2: INVALID
000038a3: JUMPDEST
000038a4: DIV
000038a5: SWAP1
000038a6: POP
000038a7: PUSH1 0x64
000038a9: PUSH1 0x02
000038ab: DUP4
000038ac: MUL
000038ad: DUP2
000038ae: ISZERO
000038af: ISZERO
000038b0: PUSH2 0x38b5
000038b3: JUMPI
000038b4: INVALID
000038b5: JUMPDEST
000038b6: DIV
000038b7: PUSH1 0x09
000038b9: PUSH1 0x00
000038bb: DUP3
000038bc: DUP3
000038bd: SLOAD
000038be: ADD
000038bf: SWAP3
000038c0: POP
000038c1: POP
000038c2: DUP2
000038c3: SWAP1
000038c4: SSTORE
000038c5: POP
000038c6: JUMPDEST
000038c7: DUP2
000038c8: PUSH1 0x05
000038ca: PUSH1 0x00
000038cc: DUP7
000038cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000038e2: AND
000038e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000038f8: AND
000038f9: DUP2
000038fa: MSTORE
000038fb: PUSH1 0x20
000038fd: ADD
000038fe: SWAP1
000038ff: DUP2
00003900: MSTORE
00003901: PUSH1 0x20
00003903: ADD
00003904: PUSH1 0x00
00003906: KECCAK256
00003907: PUSH1 0x00
00003909: DUP3
0000390a: DUP3
0000390b: SLOAD
0000390c: SUB
0000390d: SWAP3
0000390e: POP
0000390f: POP
00003910: DUP2
00003911: SWAP1
00003912: SSTORE
00003913: POP
00003914: DUP1
00003915: PUSH1 0x05
00003917: PUSH1 0x00
00003919: DUP6
0000391a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000392f: AND
00003930: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003945: AND
00003946: DUP2
00003947: MSTORE
00003948: PUSH1 0x20
0000394a: ADD
0000394b: SWAP1
0000394c: DUP2
0000394d: MSTORE
0000394e: PUSH1 0x20
00003950: ADD
00003951: PUSH1 0x00
00003953: KECCAK256
00003954: PUSH1 0x00
00003956: DUP3
00003957: DUP3
00003958: SLOAD
00003959: ADD
0000395a: SWAP3
0000395b: POP
0000395c: POP
0000395d: DUP2
0000395e: SWAP1
0000395f: SSTORE
00003960: POP
00003961: DUP1
00003962: DUP3
00003963: SUB
00003964: PUSH1 0x05
00003966: PUSH1 0x00
00003968: ADDRESS
00003969: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000397e: AND
0000397f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003994: AND
00003995: DUP2
00003996: MSTORE
00003997: PUSH1 0x20
00003999: ADD
0000399a: SWAP1
0000399b: DUP2
0000399c: MSTORE
0000399d: PUSH1 0x20
0000399f: ADD
000039a0: PUSH1 0x00
000039a2: KECCAK256
000039a3: PUSH1 0x00
000039a5: DUP3
000039a6: DUP3
000039a7: SLOAD
000039a8: ADD
000039a9: SWAP3
000039aa: POP
000039ab: POP
000039ac: DUP2
000039ad: SWAP1
000039ae: SSTORE
000039af: POP
000039b0: DUP3
000039b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000039c6: AND
000039c7: DUP5
000039c8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000039dd: AND
000039de: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
000039ff: DUP4
00003a00: PUSH1 0x40
00003a02: MLOAD
00003a03: DUP1
00003a04: DUP3
00003a05: DUP2
00003a06: MSTORE
00003a07: PUSH1 0x20
00003a09: ADD
00003a0a: SWAP2
00003a0b: POP
00003a0c: POP
00003a0d: PUSH1 0x40
00003a0f: MLOAD
00003a10: DUP1
00003a11: SWAP2
00003a12: SUB
00003a13: SWAP1
00003a14: LOG3
00003a15: JUMPDEST
00003a16: POP
00003a17: POP
00003a18: POP
00003a19: POP
00003a1a: JUMP
00003a1b: JUMPDEST
00003a1c: PUSH1 0x80
00003a1e: PUSH1 0x40
00003a20: MLOAD
00003a21: SWAP1
00003a22: DUP2
00003a23: ADD
00003a24: PUSH1 0x40
00003a26: MSTORE
00003a27: DUP1
00003a28: PUSH1 0x00
00003a2a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003a3f: AND
00003a40: DUP2
00003a41: MSTORE
00003a42: PUSH1 0x20
00003a44: ADD
00003a45: PUSH1 0x00
00003a47: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003a5c: AND
00003a5d: DUP2
00003a5e: MSTORE
00003a5f: PUSH1 0x20
00003a61: ADD
00003a62: PUSH1 0x00
00003a64: DUP2
00003a65: MSTORE
00003a66: PUSH1 0x20
00003a68: ADD
00003a69: PUSH1 0x00
00003a6b: ISZERO
00003a6c: ISZERO
00003a6d: DUP2
00003a6e: MSTORE
00003a6f: POP
00003a70: SWAP1
00003a71: JUMP
00003a72: STOP
00003a73: LOG1
00003a74: PUSH6 0x627a7a723058
00003a7b: KECCAK256
00003a7c: SWAP10
00003a7d: UNKNOWN(0xD7)
00003a7e: UNKNOWN(0x21)
00003a7f: UNKNOWN(0xCB)
00003a80: SWAP3
00003a81: SWAP11
00003a82: LOG0
00003a83: UNKNOWN(0x4E)
00003a84: MOD
00003a85: DUP2
00003a86: UNKNOWN(0xCE)
00003a87: UNKNOWN(0x28)
00003a88: UNKNOWN(0xEC)
00003a89: UNKNOWN(0xC9)
00003a8a: UNKNOWN(0xD1)
00003a8b: PUSH3 0xf3dd94
00003a8f: GASLIMIT
00003a90: REVERT
00003a91: UNKNOWN(0xB8)
00003a92: SSTORE
00003a93: UNKNOWN(0x29)
00003a94: DUP6
00003a95: JUMP
00003a96: UNKNOWN(0xD5)
00003a97: SWAP10
00003a98: CREATE
00003a99: REVERT
00003a9a: SIGNEXTEND
00003a9b: CALLDATASIZE
00003a9c: STOP
00003a9d: UNKNOWN(0x29)

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high access_control codex Unrestricted batch transfer drains contract-held tokens 85 no
view
evidence_json
{
    "evidence": "Selector 0x010791b0 dispatches to 0x12b3 (arg parsing at 0x0298 \u2192 JUMP 0x12b3). At 0x12b3\u20130x12ce the only gates are slot0x17 > 0 and amount > 0; there is no CALLER/ORIGIN check. Transfers are executed from the contract itself via `ADDRESS` and a user-supplied recipient and amount (`0000136a: ADDRESS`, `0000136d: PUSH2 0x370e`, `00001370: JUMP`), repeatedly for each provided address. Internal transfer logic at 0x370e updates balances. slot0x17 is incremented during normal transfers at 0x252e, making the gate reachable.",
    "locations": [
        "`BYTECODE_BUNDLE.txt:3010`",
        "`BYTECODE_BUNDLE.txt:3087`",
        "`BYTECODE_BUNDLE.txt:3092`",
        "`BYTECODE_BUNDLE.txt:5157`",
        "`BYTECODE_BUNDLE.txt:7282`"
    ],
    "recommendation": "Add strict access control (e.g., onlyOwner) to selector 0x010791b0 or hardcode/validate recipients; if intended for internal distribution only, remove the external selector or require a trusted caller and fixed recipient list.",
    "exploit_scenario": "1) Wait until the contract holds a token balance (e.g., fees accumulate; slot 0x17 becomes non-zero from normal transfers). 2) Call selector 0x010791b0 with 10 address parameters where only one is the attacker address (others zero to skip) and set the final uint256 amount to <= balanceOf(address(this)) and >0. 3) The function executes internal transfers from ADDRESS (the contract) to the provided recipients (offsets 0x1367\u20130x1370), so the attacker receives tokens directly from the contract\u2019s own balance."
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x64856c8ac069ea2a47f26ae8a1f586ec821d211a4dc06309af52a86ce6bf1c19
call_targets: 0xb54ca24ac19098db42454c8ee8df67d260a22b1e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x64856c8ac069ea2a47f26ae8a1f586ec821d211a4dc06309af52a86ce6bf1c19",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb54ca24ac19098db42454c8ee8df67d260a22b1e"
    ],
    "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": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x010791b0",
            "selector": "0x010791b0",
            "calldata_variants": [
                "0x010791b0",
                "0x010791b00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x049bf071",
            "selector": "0x049bf071",
            "calldata_variants": [
                "0x049bf071",
                "0x049bf0710000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x087d01df",
            "selector": "0x087d01df",
            "calldata_variants": [
                "0x087d01df",
                "0x087d01df0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0ac3887c",
            "selector": "0x0ac3887c",
            "calldata_variants": [
                "0x0ac3887c",
                "0x0ac3887c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x153548e2",
            "selector": "0x153548e2",
            "calldata_variants": [
                "0x153548e2",
                "0x153548e20000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 6896,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10684,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [
        {
            "pc": 6812,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 7019,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 7794,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 13963,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 2
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x64856c8ac069ea2a47f26ae8a1f586ec821d211a4dc06309af52a86ce6bf1c19
call_targets: 0xb54ca24ac19098db42454c8ee8df67d260a22b1e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x64856c8ac069ea2a47f26ae8a1f586ec821d211a4dc06309af52a86ce6bf1c19",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb54ca24ac19098db42454c8ee8df67d260a22b1e"
    ],
    "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": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x010791b0",
            "selector": "0x010791b0",
            "calldata_variants": [
                "0x010791b0",
                "0x010791b00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x049bf071",
            "selector": "0x049bf071",
            "calldata_variants": [
                "0x049bf071",
                "0x049bf0710000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x087d01df",
            "selector": "0x087d01df",
            "calldata_variants": [
                "0x087d01df",
                "0x087d01df0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0ac3887c",
            "selector": "0x0ac3887c",
            "calldata_variants": [
                "0x0ac3887c",
                "0x0ac3887c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x153548e2",
            "selector": "0x153548e2",
            "calldata_variants": [
                "0x153548e2",
                "0x153548e20000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 6896,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10684,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": [
        {
            "pc": 6812,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 7019,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 7794,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 13963,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x00e19c186321078dc0914cdc721e3589238fbe30c426a17b467cdc34b553fb45
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x00e19c186321078dc0914cdc721e3589238fbe30c426a17b467cdc34b553fb45",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x010791b0",
            "selector": "0x010791b0",
            "calldata_variants": [
                "0x010791b0",
                "0x010791b00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x049bf071",
            "selector": "0x049bf071",
            "calldata_variants": [
                "0x049bf071",
                "0x049bf0710000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x087d01df",
            "selector": "0x087d01df",
            "calldata_variants": [
                "0x087d01df",
                "0x087d01df0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0ac3887c",
            "selector": "0x0ac3887c",
            "calldata_variants": [
                "0x0ac3887c",
                "0x0ac3887c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x153548e2",
            "selector": "0x153548e2",
            "calldata_variants": [
                "0x153548e2",
                "0x153548e20000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 1,
    "create2_count": 0
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}