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

Analysis Run

1d994932-0503-468b-953d-2697ac274172

complete
Chain ID
1
Address
Block Number
Created
Fri, Jan 2, 2026 6:25 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
Not yet
Best current signal
ETH value transfer possible
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
31313 report.consolidate complete 1 / 1 3 months ago
110876 artifact.fetch complete 1 / 3 1 week ago
110877 tool.cast_disasm complete 1 / 3 1 week ago
110878 analysis.bundle complete 1 / 3 1 week ago
110879 capability.graph complete 1 / 3 1 week ago
110880 detector.run complete 1 / 3 1 week ago
110881 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
0
No findings?
yes
Summary
Reviewed the full runtime bytecode bundle. The only value transfers observed are standard ERC20 `transfer`/`transferFrom` calls and an ETH `CALL` using a 2300‑gas stipend, all embedded in complex balance/nonce/signature logic. No delegatecall/selfdestruct, no controllable upgrade path, and no unprotected value-transfer path were identified from bytecode alone.
View stderr
[codex:416116] OpenAI Codex v0.77.0 (research preview)
[codex:416116] --------
[codex:416116] workdir: /tmp/codex-multi-6utv7vr8
[codex:416116] model: gpt-5.2-codex
[codex:416116] provider: openai
[codex:416116] approval: never
[codex:416116] sandbox: read-only
[codex:416116] reasoning effort: xhigh
[codex:416116] reasoning summaries: auto
[codex:416116] session id: 019b7fed-f3b2-78d3-9b52-3f67f2404d15
[codex:416116] --------
[codex:416116] user
[codex:416116] 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:416116] 
[codex:416116] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:416116] 
[codex:416116] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:416116] - Gas inefficiency, code quality, or best practices
[codex:416116] - Theoretical vulnerabilities without a clear extraction path
[codex:416116] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:416116] - Issues requiring social engineering or off-chain coordination
[codex:416116] 
[codex:416116] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:416116] - CALL/DELEGATECALL with controllable destination or calldata
[codex:416116] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:416116] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:416116] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:416116] - External calls before state updates (reentrancy)
[codex:416116] - SELFDESTRUCT with controllable beneficiary
[codex:416116] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:416116] 
[codex:416116] For each finding, you MUST explain:
[codex:416116] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:416116] 2. The concrete sequence of transactions to extract value
[codex:416116] 3. Why you believe this is exploitable (not just suspicious)
[codex:416116] 
[codex:416116] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:416116] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:416116] 
[codex:416116] Output MUST be valid JSON matching the provided schema.
[codex:416116] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:416116] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:416116] mcp startup: no servers
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Reading BYTECODE_BUNDLE file**
[codex:416116] exec
[codex:416116] /bin/bash -lc ls in /tmp/codex-multi-6utv7vr8 succeeded in 6ms:
[codex:416116] BYTECODE_BUNDLE.txt
[codex:416116] codex-output-schema.json
[codex:416116] exec
[codex:416116] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-6utv7vr8 succeeded in 6ms:
[codex:416116] Runtime bytecode bundle for best-effort auditing.
[codex:416116] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:416116] 
[codex:416116] FILE: runtime_bytecode.hex
[codex:416116] 0x6080604052600436106101355760003560e01c80637362d9c8116100ab578063929a0be61161006f578063929a0be614610945578063c0a0dce314610982578063c23c033c14610ae9578063cf30901214610b1c578063f2fde38b14610b31578063ffd2a7d314610b6457610135565b80637362d9c81461085d57806379a9ce36146108905780637ea10e79146108c35780638da5cb5b146108ff5780638f32d59b1461093057610135565b80635239413b116100fd5780635239413b1461069157806354ba6951146106bf5780635b3a48bb146107245780636897e97414610757578063715018a61461078a578063723b60d71461079f57610135565b80631d8794e01461013a5780632091d0791461018a57806335107cd7146102d3578063390dcbf7146104475780634dbda95514610665575b600080fd5b34801561014657600080fd5b506101766004803603604081101561015d57600080fd5b5080356001600160a01b0316906020013560ff16610b79565b604080519115158252519081900360200190f35b34801561019657600080fd5b506102d1600480360360608110156101ad57600080fd5b810190602081018135600160201b8111156101c757600080fd5b8201836020820111156101d957600080fd5b803590602001918460018302840111600160201b831117156101fa57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092956001600160a01b03853516959094909350604081019250602001359050600160201b81111561025d57600080fd5b82018360208201111561026f57600080fd5b803590602001918460018302840111600160201b8311171561029057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c9f945050505050565b005b3480156102df57600080fd5b506102d1600480360360e08110156102f657600080fd5b6001600160a01b03823581169261ffff602082013516926001600160401b036040830135169263ffffffff6060840135169260808101359091169181019060c0810160a0820135600160201b81111561034e57600080fd5b82018360208201111561036057600080fd5b803590602001918460018302840111600160201b8311171561038157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156103d357600080fd5b8201836020820111156103e557600080fd5b803590602001918460018302840111600160201b8311171561040657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610fe5945050505050565b34801561045357600080fd5b506102d1600480360361020081101561046b57600080fd5b6040805180820182526001600160a01b038435169392830192916060830191906020840190600290839083908082843760009201919091525050604080518082018252929594938181019392509060029083908390808284376000920191909152505060408051808201825292956001600160401b03853516959094909360608201935091602090910190600290839083908082843760009201919091525091946001600160401b038435169463ffffffff602086013516946001600160a01b03604082013516945091925090608081019060600135600160201b81111561055257600080fd5b82018360208201111561056457600080fd5b803590602001918460018302840111600160201b8311171561058557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156105d757600080fd5b8201836020820111156105e957600080fd5b803590602001918460018302840111600160201b8311171561060a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550506001600160401b0383358116945060208401358116936040013516915061148b9050565b34801561067157600080fd5b5061067a611759565b6040805161ffff9092168252519081900360200190f35b34801561069d57600080fd5b506102d1600480360360208110156106b457600080fd5b503561ffff1661176a565b3480156106cb57600080fd5b506106d46117d3565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156107105781810151838201526020016106f8565b505050509050019250505060405180910390f35b34801561073057600080fd5b506102d16004803603602081101561074757600080fd5b50356001600160a01b0316611886565b34801561076357600080fd5b506102d16004803603602081101561077a57600080fd5b50356001600160a01b0316611ad5565b34801561079657600080fd5b506102d1611b66565b3480156107ab57600080fd5b506106d4600480360360408110156107c257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156107ec57600080fd5b8201836020820111156107fe57600080fd5b803590602001918460208302840111600160201b8311171561081f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611bf7945050505050565b34801561086957600080fd5b506102d16004803603602081101561088057600080fd5b50356001600160a01b0316611d5e565b34801561089c57600080fd5b506102d1600480360360208110156108b357600080fd5b50356001600160a01b0316611def565b3480156108cf57600080fd5b5061067a600480360360408110156108e657600080fd5b5080356001600160a01b0316906020013560ff16611e80565b34801561090b57600080fd5b50610914611fb6565b604080516001600160a01b039092168252519081900360200190f35b34801561093c57600080fd5b50610176611fc5565b34801561095157600080fd5b506102d16004803603604081101561096857600080fd5b5080356001600160a01b0316906020013561ffff16611fd6565b6102d1600480360360e081101561099857600080fd5b6001600160a01b03823581169261ffff602082013516926001600160401b036040830135169263ffffffff6060840135169260808101359091169181019060c0810160a0820135600160201b8111156109f057600080fd5b820183602082011115610a0257600080fd5b803590602001918460018302840111600160201b83111715610a2357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610a7557600080fd5b820183602082011115610a8757600080fd5b803590602001918460018302840111600160201b83111715610aa857600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061233b945050505050565b348015610af557600080fd5b506102d160048036036020811015610b0c57600080fd5b50356001600160a01b03166126cc565b348015610b2857600080fd5b5061017661275d565b348015610b3d57600080fd5b506102d160048036036020811015610b5457600080fd5b50356001600160a01b031661276d565b348015610b7057600080fd5b506106d46127c0565b60006001826001811115610b8957fe5b1115610bd5576040805162461bcd60e51b8152602060048201526016602482015275496e76616c69642077686974656c697374207479706560501b604482015290519081900360640190fd5b6001600160a01b038316600090815260026020819052604090912054600019610100600183161502011604610c0c57506000610c99565b6000826001811115610c1a57fe5b60ff16600260ff160a60026000866001600160a01b03166001600160a01b031681526020019081526020016000206000815460018160011615610100020316600290048110610c6557fe5b815460011615610c845790600052602060002090602091828204019190065b9054901a600160f81b0260f81c1660ff161190505b92915050565b610cac600084848461287d565b610ce75760405162461bcd60e51b81526004018080602001828103825260218152602001806143ca6021913960400191505060405180910390fd5b60006063845181610cf457fe5b04905060005b818161ffff161015610f455761ffff606382021660008080610d1d89828661296c565b8b8701602201519295509093509150610d378a8683612990565b610d88576040805162461bcd60e51b815260206004820152601960248201527f55736572207369676e617475726520697320696e76616c696400000000000000604482015290519081900360640190fd5b610d90614035565b610d9a8286612ad2565b805161ffff87166000908152600560205260409020549192506001600160401b03908116868216039116600882900b1315610e1c576040805162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e74207661756c742062756666657200000000000000604482015290519081900360640190fd5b816020015163ffffffff168463ffffffff1611610e6a5760405162461bcd60e51b81526004018080602001828103825260358152602001806142686035913960400191505060405180910390fd5b60005461ffff600160b81b909104811690871610610ebf576040805162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a5908185cdcd95d609a1b604482015290519081900360640190fd5b6001600160401b038516825263ffffffff84166020830152610ee18383612ca2565b61ffff959095166000908152600560209081526040808320805467ffffffffffffffff198082166001600160401b039283168c900383161790925560049093529220805492831692821690970116179094555050506001929092019150610cfa9050565b507f87a48f7996cb0768a7ff6b2aa1411875c4e7e13631745f388a62923a617d14ed846040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fa5578181015183820152602001610f8d565b50505050905090810190601f168015610fd25780820380516001836020036101000a031916815260200191505b509250505060405180910390a150505050565b600054600160a01b900460ff161561102e5760405162461bcd60e51b815260040180806020018281038252603281526020018061413a6032913960400191505060405180910390fd5b6000805460ff60a01b1916600160a01b179081905561ffff600160b81b909104811690871610611095576040805162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a5908185cdcd95d609a1b604482015290519081900360640190fd5b336001600160a01b038816146110dc5760405162461bcd60e51b81526004018080602001828103825260318152602001806142076031913960400191505060405180910390fd5b866001600160a01b0316836001600160a01b03161461112c5760405162461bcd60e51b81526004018080602001828103825260318152602001806143eb6031913960400191505060405180910390fd5b604080516001600160601b031960608a901b1660208201526001600160f01b031960f089901b1660348201526001600160c01b031960c088901b1660368201526001600160e01b031960e087901b16603e8201528151602281830301815260429091019091526111a190600390858585612fdb565b6111e6576040805162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b6111ee614035565b6111f88888612ad2565b9050806020015163ffffffff168563ffffffff16116112485760405162461bcd60e51b81526004018080602001828103825260278152602001806143a36027913960400191505060405180910390fd5b80516001600160401b038088169116101561129f576040805162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b604482015290519081900360640190fd5b61ffff87166000908152600460209081526040909120805467ffffffffffffffff1981166001600160401b039182168a900382161790915563ffffffff87169183019190915281518790031681526112f78882612ca2565b61130288888861307e565b7f1e7f91273d70e85b3418ba15a115fd91715dc834a212c47ebe55745f18b3e0a88888888888888860405180886001600160a01b03166001600160a01b031681526020018761ffff1661ffff168152602001866001600160401b03166001600160401b031681526020018563ffffffff1663ffffffff168152602001846001600160a01b03166001600160a01b031681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156113d35781810151838201526020016113bb565b50505050905090810190601f1680156114005780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561143357818101518382015260200161141b565b50505050905090810190601f1680156114605780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390a150506000805460ff60a01b19169055505050505050565b896001600160401b0316836001600160401b031611156114dc5760405162461bcd60e51b815260040180806020018281038252602281526020018061416c6022913960400191505060405180910390fd5b88516001600160401b0390811690831610156115295760405162461bcd60e51b815260040180806020018281038252602f8152602001806142ed602f913960400191505060405180910390fd5b88600160200201516001600160401b0316826001600160401b031611156115815760405162461bcd60e51b815260040180806020018281038252603181526020018061441c6031913960400191505060405180910390fd5b876001600160401b0316816001600160401b031611156115d25760405162461bcd60e51b81526004018080602001828103825260238152602001806141e46023913960400191505060405180910390fd5b60608d8d600060200201518e600160200201518e600060200201518f6001602090810291909101516040805160609790971b6001600160601b0319168784015260f095861b6001600160f01b031990811660348901529490951b909316603686015260e091821b6001600160e01b031990811660388701529290911b909116603c8401528151808403909101815291810190529050808b8b600060200201518c600160200201518c8c6040516020018087805190602001908083835b602083106116ad5780518252601f19909201916020918201910161168e565b51815160209384036101000a600019018019909216911617905260c0998a1b6001600160c01b03199081169290940191825297891b8316600882015295881b82166010870152509290951b909116601883015260e01b6001600160e01b0319169181019190915260408051600481840301815260249092019052925061173a91508290508f89898961320f565b6117498e8e8e8787878e61326a565b5050505050505050505050505050565b600054600160a81b900461ffff1681565b611772611fc5565b6117b1576040805162461bcd60e51b8152602060048201819052602482015260008051602061434a833981519152604482015290519081900360640190fd5b6000805461ffff909216600160a81b0261ffff60a81b19909216919091179055565b606080600060179054906101000a900461ffff1661ffff16604051908082528060200260200182016040528015611814578160200160208202803883390190505b50905060005b60005461ffff600160b81b9091048116908216101561187f5761ffff811660008181526004602052604090205483516001600160401b03909116918491811061185f57fe5b6001600160401b039092166020928302919091019091015260010161181a565b5090505b90565b6001600160a01b03811633146118e3576040805162461bcd60e51b815260206004820152601d60248201527f4164647265737320646f6573206e6f74206d617463682073656e646572000000604482015290519081900360640190fd5b604080516001600160d01b03194360d01b1660208083019190915282518083036006018152602690920183526001600160a01b0384166000908152600291829052929092205490916007600019610100600185161502019092160410156119e4576001600160a01b0382166000908152600260208190526040909120546000196101006001831615020116046119bd5760026000836001600160a01b03166001600160a01b03168152602001908152602001600020805460018160011615610100020316600290048091906001016119bb919061405c565b505b6001600160a01b03821660009081526002602052604090206119df9082613385565b611a95565b60005b6006811015611a93578181815181106119fc57fe5b602001015160f81c60f81b60026000856001600160a01b03166001600160a01b0316815260200190815260200160002082600101815460018160011615610100020316600290048110611a4b57fe5b815460011615611a6a5790600052602060002090602091828204019190065b601f036101000a81548160ff02191690600160f81b8404021790555080806001019150506119e7565b505b604080516001600160a01b038416815290517f7c6947eb6f707f58d1a16902e136c738797923b7c4a9509d9bd4be1f30e05b9d9181900360200190a15050565b611add611fc5565b611b1c576040805162461bcd60e51b8152602060048201819052602482015260008051602061434a833981519152604482015290519081900360640190fd5b611b278160016134d3565b604080516001600160a01b038316815290517f62f539fdce72b1b8414b4761dac3c935f18860d32f042f01d4a8bf581fa863319181900360200190a150565b611b6e611fc5565b611bad576040805162461bcd60e51b8152602060048201819052602482015260008051602061434a833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060808251604051908082528060200260200182016040528015611c25578160200160208202803883390190505b50905060005b8351811015611c8157611c5185858381518110611c4457fe5b6020026020010151612ad2565b60000151828281518110611c6157fe5b6001600160401b0390921660209283029190910190910152600101611c2b565b507ffb7de0621328a977285d9d780b9cff64b112259bf180f5e2642267ef9bc1c63c84848360405180846001600160a01b03166001600160a01b031681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611d02578181015183820152602001611cea565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611d41578181015183820152602001611d29565b505050509050019550505050505060405180910390a19392505050565b611d66611fc5565b611da5576040805162461bcd60e51b8152602060048201819052602482015260008051602061434a833981519152604482015290519081900360640190fd5b611db0816001613613565b604080516001600160a01b038316815290517ff6dd8be138fcbc416afd31ac8a434b3685c35be0bffc8730eebf36cb50b5f78d9181900360200190a150565b611df7611fc5565b611e36576040805162461bcd60e51b8152602060048201819052602482015260008051602061434a833981519152604482015290519081900360640190fd5b611e41816000613613565b604080516001600160a01b038316815290517f86185c63d21a208b65358328f7182bc77aafd60929c0897348857bc710eca2d29181900360200190a150565b6000611e8d336001610b79565b611ed6576040805162461bcd60e51b81526020600482015260156024820152742737ba1030903bb434ba32b634b9ba1030b236b4b760591b604482015290519081900360640190fd5b60005461ffff600160b81b9091048116600101811610611f3d576040805162461bcd60e51b815260206004820152601860248201527f4173736574206964207370616365206578686175737465640000000000000000604482015290519081900360640190fd5b506000805461ffff600160b81b808304821660018181018416830261ffff60b81b1990951694909417855584526020929092526040832080546001600160a01b03871660ff60a01b60a088901b16176001600160a81b03166001600160a81b031990911617905591546000199190049091160192915050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b600054600160a01b900460ff161561201f5760405162461bcd60e51b815260040180806020018281038252603281526020018061413a6032913960400191505060405180910390fd5b6000805460ff60a01b1916600160a01b1781556001600160a01b03831681526002602081815260409283902080548451601f600019600184161561010002019092169490940490810183900483028401830190945283835260609390918301828280156120cd5780601f106120a2576101008083540402835291602001916120cd565b820191906000526020600020905b8154815290600101906020018083116120b057829003601f168201915b50505050509050600080905060078251106120e9575060078101515b65ffffffffffff8116158015906121175750600054600160a81b900461ffff16810165ffffffffffff164310155b6121525760405162461bcd60e51b815260040180806020018281038252603981526020018061436a6039913960400191505060405180910390fd5b6001600160a01b03841633146121af576040805162461bcd60e51b815260206004820152601d60248201527f4164647265737320646f6573206e6f74206d617463682073656e646572000000604482015290519081900360640190fd5b60005461ffff600160b81b909104811690841610612204576040805162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a5908185cdcd95d609a1b604482015290519081900360640190fd5b61220c614035565b6122168585612ad2565b805160008252606082015191925090801561223957506001600160401b03811615155b612275576040805162461bcd60e51b81526020600482015260086024820152674e6f2066756e647360c01b604482015290519081900360640190fd5b61ffff8516600090815260046020526040902080546001600160401b038082168490031667ffffffffffffffff199091161790556122b38683612ca2565b6122be86868361307e565b602080830151604080516001600160a01b038a16815261ffff8916938101939093526001600160401b0384168382015263ffffffff9091166060830152517fb6602b0a60e2a9abe4a7816783781b101bf31e81b66cf004aa5ff3f9c533b5d09181900360800190a150506000805460ff60a01b1916905550505050565b600054600160a01b900460ff16156123845760405162461bcd60e51b815260040180806020018281038252603281526020018061413a6032913960400191505060405180910390fd5b6000805460ff60a01b1916600160a01b179081905561ffff600160b81b9091048116908716106123eb576040805162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a5908185cdcd95d609a1b604482015290519081900360640190fd5b336001600160a01b038816146124325760405162461bcd60e51b81526004018080602001828103825260308152602001806142386030913960400191505060405180910390fd5b866001600160a01b0316836001600160a01b0316146124825760405162461bcd60e51b81526004018080602001828103825260308152602001806141b46030913960400191505060405180910390fd5b604080516001600160601b031960608a901b1660208201526001600160f01b031960f089901b1660348201526001600160c01b031960c088901b1660368201526001600160e01b031960e087901b16603e8201528151602281830301815260429091019091526124f790600290858585612fdb565b61253c576040805162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b612544614035565b61254e8888612ad2565b9050806020015163ffffffff168563ffffffff161161259e5760405162461bcd60e51b81526004018080602001828103825260278152602001806143a36027913960400191505060405180910390fd5b61ffff87166000908152600460209081526040909120805467ffffffffffffffff1981166001600160401b039182168a018216179091558251880116825263ffffffff8616908201526125f18882612ca2565b6125fc88888861381f565b7f334f906ad6a83b11ef611b474f217126a930d0beda33fe1f99567b0835051a4e8888888888888860405180886001600160a01b03166001600160a01b031681526020018761ffff1661ffff168152602001866001600160401b03166001600160401b031681526020018563ffffffff1663ffffffff168152602001846001600160a01b03166001600160a01b03168152602001806020018060200183810383528581815181526020019150805190602001908083836000838110156113d35781810151838201526020016113bb565b6126d4611fc5565b612713576040805162461bcd60e51b8152602060048201819052602482015260008051602061434a833981519152604482015290519081900360640190fd5b61271e8160006134d3565b604080516001600160a01b038316815290517fd09f686f0004011c426dd8e783304238db2b407d25f0cbcabd206d671dcfc6f39181900360200190a150565b600054600160a01b900460ff1681565b612775611fc5565b6127b4576040805162461bcd60e51b8152602060048201819052602482015260008051602061434a833981519152604482015290519081900360640190fd5b6127bd81613934565b50565b606080600060179054906101000a900461ffff1661ffff16604051908082528060200260200182016040528015612801578160200160208202803883390190505b50905060005b60005461ffff600160b81b9091048116908216101561187f5761ffff811660008181526005602090815260408083205460049092529091205484516001600160401b039182169190921601918491811061285d57fe5b6001600160401b0390921660209283029190910190910152600101612807565b600061288a836000610b79565b61289657506000612964565b60006129408660038111156128a757fe5b8686604051602001808460ff1660ff1660f81b815260010183805190602001908083835b602083106128ea5780518252601f1990920191602091820191016128cb565b6001836020036101000a038019825116818451168082178552505050505050905001826001600160a01b03166001600160a01b031660601b815260140193505050506040516020818303038152906040526139d4565b9050836001600160a01b03166129568285613a25565b6001600160a01b0316149150505b949350505050565b600e91820261ffff1601919091016002810151600a82015191909201519192909190565b81830160428101516062820151606383015160009392919060606129b689896022613ab5565b90506000612a3a8183604051602001808360ff1660ff1660f81b815260010182805190602001908083835b60208310612a005780518252601f1990920191602091820191016129e1565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526139d4565b9050601b8360ff161015612a4f57601b830192505b6040805160008152602080820180845284905260ff861682840152606082018890526080820187905291516001600160a01b038b169260019260a080820193601f1981019281900390910190855afa158015612aaf573d6000803e3d6000fd5b505050602060405103516001600160a01b03161496505050505050509392505050565b612ada614035565b6001600160a01b0383166000908152600260208190526040909120546015600019610100600184161502019091169190910410612c71576001600160a01b0383166000908152600260208190526040822054600e9160061960001961010060018516150201909216040104905060005b8161ffff168161ffff161015612c6e576001600160a01b0385166000908152600260208181526040808420805482516001821615610100026000190190911694909404601f810184900484028501840190925281845284938493612c0a9391929190830182828015612bfd5780601f10612bd257610100808354040283529160200191612bfd565b820191906000526020600020905b815481529060010190602001808311612be057829003601f168201915b505050505085600761296c565b9250925092508661ffff168361ffff161415612c63576040518060800160405280836001600160401b031681526020018263ffffffff1681526020018561ffff1681526020016001151581525095505050505050610c99565b505050600101612b4a565b50505b506040805160808101825260008082526020820181905261ffff841692820192909252606081019190915292915050565b6060816060015115612dcf5760008260400151600e0260090161ffff1690508260000151836020015160405160200180836001600160401b03166001600160401b031660c01b81526008018263ffffffff1663ffffffff1660e01b815260040192505050604051602081830303815290604052915060008090505b600c811015612dc857828181518110612d3257fe5b602001015160f81c60f81b60026000876001600160a01b03166001600160a01b03168152602001908152602001600020828401815460018160011615610100020316600290048110612d8057fe5b815460011615612d9f5790600052602060002090602091828204019190065b601f036101000a81548160ff02191690600160f81b840402179055508080600101915050612d1d565b5050612fd6565b506040818101518251602080850151845160f09490941b6001600160f01b0319168483015260c09290921b6001600160c01b031916602284015260e09190911b6001600160e01b031916602a8301528251808303600e018152602e90920183526001600160a01b0385166000908152600291829052929092205490916001821615610100026000190190911604612eec57600081604051602001808366ffffffffffffff1666ffffffffffffff1660c81b815260070182805190602001908083835b60208310612eb05780518252601f199092019160209182019101612e91565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529050612fb4565b60026000846001600160a01b03166001600160a01b0316815260200190815260200160002080546001816001161561010002031660029004905060011415612fb457600081604051602001808365ffffffffffff1665ffffffffffff1660d01b815260060182805190602001908083835b60208310612f7c5780518252601f199092019160209182019101612f5d565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290505b6001600160a01b0383166000908152600260205260409020612fd69082613385565b505050565b60008061302f876003811115612fed57fe5b8787604051602001808460ff1660ff1660f81b81526001018380519060200190808383602083106128ea5780518252601f1990920191602091820191016128cb565b9050846001600160a01b03166130458286613a25565b6001600160a01b03161461305d576000915050613075565b61307161306a8285613a25565b6000610b79565b9150505b95945050505050565b61ffff82166130d2576040516001600160a01b038416906402540be4006001600160401b0384160280156108fc02916000818181858888f193505050501580156130cc573d6000803e3d6000fd5b50612fd6565b60006130dd83613b35565b90508060006130eb85613b54565b90506001600160401b038416600860ff83161015613119578160080360ff16600a0a818161311557fe5b0490505b60088260ff1611156131325760ff600719830116600a0a025b6040805163a9059cbb60e01b81526001600160a01b03898116600483015260248201849052915160009286169163a9059cbb91604480830192602092919082900301818787803b15801561318557600080fd5b505af1158015613199573d6000803e3d6000fd5b505050506040513d60208110156131af57600080fd5b5051905080613205576040805162461bcd60e51b815260206004820152601860248201527f436f756c64206e6f74207472616e736665722066756e64730000000000000000604482015290519081900360640190fd5b5050505050505050565b61321e60018686868686613b6f565b613263576040805162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b5050505050565b855185516305f5e1006001600160401b038781168682168102839004949188160291909104916132a6918b9163ffffffff16858a886000613ca3565b602080890151908801516132c6918b9163ffffffff168585886001613ca3565b7f83894d4e8b2a45cbd6d36fa4cfdf5ec3c73257f8a4dcac4af7c380e887ec513b8989600060200201518a600160200201518a600060200201518b600160209081029190910151604080516001600160a01b03909716875261ffff95861692870192909252929093168484015263ffffffff90811660608501529081166080840152861660a08301526001600160401b03808a1660c084015280891660e0840152871661010083015251908190036101200190a1505050505050505050565b8154600260018083161561010002038216048251808201602081106020841001600281146134335760018114613458578660005260208404602060002001600160028402018855602085066020850681602003808a01878b016001836101000a038083511687540187556001870196506020830192505b8183101561341957825187556001870196506020830192506133fc565b50815191036101000a9081900402909355506134ca915050565b60028302826020036101000a846020036101000a6020890151040201850187556134ca565b8660005260208404602060002001600160028402018855846020038088018589016001836101000a038083511660ff198b160185556020830192506001850194505b818310156134b7578251855560018501945060208301925061349a565b50815191036101000a9081900402909155505b50505050505050565b6001600160a01b0382166000908152600260208190526040909120546000196101006001831615020116046135075761360f565b80600181111561351357fe5b60ff16600260ff160a60ff0360026000846001600160a01b03166001600160a01b03168152602001908152602001600020600081546001816001161561010002031660029004811061356157fe5b8154600116156135805790600052602060002090602091828204019190065b9054901a600160f81b0260f81c1660f81b60026000846001600160a01b03166001600160a01b0316815260200190815260200160002060008154600181600116156101000203166002900481106135d357fe5b8154600116156135f25790600052602060002090602091828204019190065b601f036101000a81548160ff02191690600160f81b840402179055505b5050565b6001600160a01b038216600090815260026020819052604090912054600019610100600183161502011604613707576001600160a01b038216600090815260026020526040902081600181111561366657fe5b60ff16600260ff160a60f81b90808054603f811680603e81146136a35760028301845560018316613695578192505b6001600284040193506136bb565b600084815260209081902060ff198516905560419094555b50505090600182038154600116156136e25790600052602060002090602091828204019190065b90919290919091601f036101000a81548160ff02191690600160f81b84040217905550505b80600181111561371357fe5b60ff16600260ff160a60026000846001600160a01b03166001600160a01b03168152602001908152602001600020600081546001816001161561010002031660029004811061375e57fe5b81546001161561377d5790600052602060002090602091828204019190065b9054901a600160f81b0260f81c1760f81b60026000846001600160a01b03166001600160a01b0316815260200190815260200160002060008154600181600116156101000203166002900481106137d057fe5b8154600116156137ef5790600052602060002090602091828204019190065b8282829054901a600160f81b02179250601f036101000a81548160ff02191690600160f81b840402179055505050565b61ffff821661387b5734816001600160401b03166402540be40002146138765760405162461bcd60e51b815260040180806020018281038252602e81526020018061431c602e913960400191505060405180910390fd5b612fd6565b600061388683613b35565b905080600061389485613b54565b90506001600160401b038416600860ff831610156138c2578160080360ff16600a0a81816138be57fe5b0490505b60088260ff1611156138db5760ff600719830116600a0a025b604080516323b872dd60e01b81526001600160a01b0389811660048301523060248301526044820184905291516000928616916323b872dd91606480830192602092919082900301818787803b15801561318557600080fd5b6001600160a01b0381166139795760405162461bcd60e51b815260040180806020018281038252602681526020018061418e6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b8051602091820120604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082019390935281518082039093018352605c019052805191012090565b6020810151604082015160418301516000929190601b60ff82161015613a4957601b015b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015613aa0573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b606081830184511015613ac757600080fd5b606082158015613ae257604051915060208201604052613b2c565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015613b1b578051835260209283019201613b03565b5050858452601f01601f1916604052505b50949350505050565b61ffff166000908152600160205260409020546001600160a81b031690565b61ffff1660009081526001602052604081205460581b901a90565b6000613b7c846000610b79565b613b8857506000613c99565b6000613c4f886003811115613b9957fe5b888888604051602001808560ff1660ff1660f81b815260010184805190602001908083835b60208310613bdd5780518252601f199092019160209182019101613bbe565b6001836020036101000a038019825116818451168082178552505050505050905001836001600160a01b03166001600160a01b031660601b8152601401826001600160a01b03166001600160a01b031660601b81526014019450505050506040516020818303038152906040526139d4565b9050856001600160a01b0316613c658286613a25565b6001600160a01b0316148015613c955750846001600160a01b0316613c8a8285613a25565b6001600160a01b0316145b9150505b9695505050505050565b61ffff8681161415613cb4576134ca565b60005461ffff600160b81b909104811690871610613d0c576040805162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908185cdcd95d081a5960821b604482015290519081900360640190fd5b613d14614035565b613d1e8888612ad2565b9050806020015163ffffffff16866001600160401b031614613d715760405162461bcd60e51b81526004018080602001828103825260278152602001806142c66027913960400191505060405180910390fd5b600082613d7e5785613d81565b60005b6001600160a01b038a16600090815260036020908152604080832061ffff8d16845282528083206001600160401b03808d16855290835281842063ffffffff8a168552909252909120549187019250600891820b9182900b9083161215613e195760405162461bcd60e51b815260040180806020018281038252602981526020018061429d6029913960400191505060405180910390fd5b6001600160401b0382168190038415613efd5761ffff8a166000908152600560205260409020546001600160401b0380831691161015613ea0576040805162461bcd60e51b815260206004820181905260248201527f4e6f7420656e6f75676820617373657473206c65667420696e20627566666572604482015290519081900360640190fd5b61ffff8a16600090815260046020908152604080832080546001600160401b038082168701811667ffffffffffffffff19928316179092556005909352922080548084168590038416921691909117905584518201168452613fae565b83516001600160401b0380831691161015613f54576040805162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b604482015290519081900360640190fd5b61ffff8a16600090815260046020908152604080832080546001600160401b03808216879003811667ffffffffffffffff199283161790925560059093529220805480841685018416921691909117905584518290031684525b6001600160a01b038b16600090815260036020908152604080832061ffff8e16845282528083206001600160401b038d8116855290835281842063ffffffff8b168552909252909120805491831660080b68ffffffffffffffffff1668ffffffffffffffffff199092169190911790556140288b85612ca2565b5050505050505050505050565b60408051608081018252600080825260208201819052918101829052606081019190915290565b81546001816001161561010002031660029004825481601f106140b75782601f1061409c575b826008026101000360020a80910402828001178355612fd6565b60ff1916836000526020600020558180016001018355612fd6565b82601f106140e7575082600052602060002080549082601f01602090048101906140e1919061411b565b50614082565b50818001600101835581811115612fd657601f016020900481601f01602090048360005260206000209182019101612fd691905b61188391905b808211156141355760008155600101614121565b509056fe536d61727420636f6e74726163742066756e6374696f6e65642063616c6c65642066726f6d206c6f636b65642073746174655472616e73616374696f6e206578636565647320616c6c6f77656420616d6f756e744f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737346756e6374696f6e206d757374206265207369676e65642062792075736572206465706f736974696e672066756e64735472616e73616374696f6e206665652065786365656473206d6178696d756d2066656546756e6374696f6e206d7573742062652063616c6c65642062792075736572207769746864726177696e672066756e647346756e6374696f6e206d7573742062652063616c6c65642062792075736572206465706f736974696e672066756e6473486967686572206e6f6e636520686173206265656e207265636f72646564206279207573657220666f72207468697320617373657455706461746564206f7264657220736d616c6c207468616e2070726576696f75732076657273696f6e4173736574206e6f6e636520646f6573206e6f7420657175616c207369676e6564206e6f6e63655472616e73616374696f6e20756e646572206d696e696d756d20616c6c6f7765642065786368616e67652072617465416d6f756e7420706172616d6574657220646f6573206e6f74206d617463682070726f76696465642065746865724f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724e6f7420656e6f75676820626c6f636b732068617665207061737365642073696e6365207769746864726177616c20696e6974696174696f6e486967686572206e6f6e636520686173206265656e207265636f7264656420666f722075736572496e76616c6964206d61746368696e6720656e67696e65207369676e617475726546756e6374696f6e206d757374206265207369676e65642062792075736572207769746864726177696e672066756e64735472616e73616374696f6e2065786365656473206d6178696d756d20616c6c6f7765642065786368616e67652072617465a265627a7a723158205601412bf284c30ec003e1019519c27e5b1a674c80eabf83f14577b6c31f8eff64736f6c634300050b0032
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Analyzing bytecode for exploit patterns**
[codex:416116] 
[codex:416116] I'm examining the bytecode deeply to find concrete exploit paths that could lead to unauthorized fund transfers. Since source is missing, I'm focusing on identifying risky call patterns like unchecked CALLs, delegatecalls, and signature misuse by parsing selectors, string clues, and opcode occurrences, while preparing to run lightweight Python scripts to locate critical opcodes and their context.
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import binascii
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text().split('FILE: runtime_bytecode.hex',1)[1]
[codex:416116] # extract hex after 0x
[codex:416116] import re
[codex:416116] m = re.search(r'0x([0-9a-fA-F]+)', hexdata)
[codex:416116] if not m:
[codex:416116]     raise SystemExit('no hex')
[codex:416116] hexstr = m.group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116] # opcode names
[codex:416116] opnames = {0xf1:'CALL',0xf2:'CALLCODE',0xf4:'DELEGATECALL',0xfa:'STATICCALL',0xff:'SELFDESTRUCT',0xf0:'CREATE',0xf5:'CREATE2'}
[codex:416116] # simple disasm to locate opcodes
[codex:416116] op_offsets=[]
[codex:416116]  i=0
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 exited 1 in 28ms:
[codex:416116]   File "<stdin>", line 15
[codex:416116]     i=0
[codex:416116] IndentationError: unexpected indent
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Fixing indentation error and rerunning**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] m = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata)
[codex:416116] if not m:
[codex:416116]     raise SystemExit('no hex')
[codex:416116] hexstr = m.group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116] 
[codex:416116] opnames = {0xf1:'CALL',0xf2:'CALLCODE',0xf4:'DELEGATECALL',0xfa:'STATICCALL',0xff:'SELFDESTRUCT',0xf0:'CREATE',0xf5:'CREATE2'}
[codex:416116] 
[codex:416116] op_offsets=[]
[codex:416116] 
[codex:416116] i=0
[codex:416116] while i < len(bytecode):
[codex:416116]     op = bytecode[i]
[codex:416116]     if op in opnames:
[codex:416116]         op_offsets.append((i, opnames[op]))
[codex:416116]     if 0x60 <= op <= 0x7f:
[codex:416116]         i += 1 + (op-0x5f)
[codex:416116]     else:
[codex:416116]         i += 1
[codex:416116] 
[codex:416116] print('len',len(bytecode))
[codex:416116] for off, name in op_offsets:
[codex:416116]     print(hex(off), name)
[codex:416116] 
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 31ms:
[codex:416116] len 17537
[codex:416116] 0x2a9e STATICCALL
[codex:416116] 0x30b6 CALL
[codex:416116] 0x3188 CALL
[codex:416116] 0x3a8f STATICCALL
[codex:416116] 0x445a CALLCODE
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Investigating CALL and CALLCODE usage**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] m = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata)
[codex:416116] hexstr = m.group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116] 
[codex:416116] # opcode table
[codex:416116] opcodes = {i: f'PUSH{i-0x5f}' for i in range(0x60,0x80)}
[codex:416116] # basic names
[codex:416116] names = {
[codex:416116]     0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:416116]     0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:416116]     0x20:'SHA3',
[codex:416116]     0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:416116]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:416116]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:416116]     0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:416116]     0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:416116]     0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:416116]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:416116]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:416116] }
[codex:416116] 
[codex:416116] 
[codex:416116] def disasm(start, count=40):
[codex:416116]     i = start
[codex:416116]     out = []
[codex:416116]     while i < len(bytecode) and len(out) < count:
[codex:416116]         op = bytecode[i]
[codex:416116]         name = names.get(op, f'OP{op:02x}')
[codex:416116]         if 0x60 <= op <= 0x7f:
[codex:416116]             n = op-0x5f
[codex:416116]             data = bytecode[i+1:i+1+n]
[codex:416116]             out.append((i, name, data.hex()))
[codex:416116]             i += 1 + n
[codex:416116]         else:
[codex:416116]             out.append((i, name, ''))
[codex:416116]             i += 1
[codex:416116]     return out
[codex:416116] 
[codex:416116] # print around call offsets
[codex:416116] call_offsets = [0x30b6, 0x3188, 0x2a9e, 0x3a8f, 0x445a]
[codex:416116] for off in call_offsets:
[codex:416116]     print('--- around', hex(off))
[codex:416116]     for ins in disasm(off-20, 50):
[codex:416116]         print(f\"{ins[0]:#06x} {ins[1]:<12} {ins[2]}\")
[codex:416116] 
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 30ms:
[codex:416116] --- around 0x30b6
[codex:416116] 0x30a2 SHL          
[codex:416116] 0x30a3 SUB          
[codex:416116] 0x30a4 DUP5         
[codex:416116] 0x30a5 AND          
[codex:416116] 0x30a6 MUL          
[codex:416116] 0x30a7 DUP1         
[codex:416116] 0x30a8 ISZERO       
[codex:416116] 0x30a9 PUSH2        08fc
[codex:416116] 0x30ac MUL          
[codex:416116] 0x30ad SWAP2        
[codex:416116] 0x30ae PUSH1        00
[codex:416116] 0x30b0 DUP2         
[codex:416116] 0x30b1 DUP2         
[codex:416116] 0x30b2 DUP2         
[codex:416116] 0x30b3 DUP6         
[codex:416116] 0x30b4 DUP9         
[codex:416116] 0x30b5 DUP9         
[codex:416116] 0x30b6 CALL         
[codex:416116] 0x30b7 SWAP4        
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Analyzing CALL arguments in disassembly**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116] 
[codex:416116] names = {
[codex:416116]     0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:416116]     0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:416116]     0x20:'SHA3',
[codex:416116]     0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:416116]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:416116]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:416116]     0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:416116]     0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:416116]     0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:416116]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:416116]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:416116] }
[codex:416116] 
[codex:416116] def disasm(start, end):
[codex:416116]     i = start
[codex:416116]     out = []
[codex:416116]     while i < len(bytecode) and i < end:
[codex:416116]         op = bytecode[i]
[codex:416116]         name = names.get(op, f'OP{op:02x}')
[codex:416116]         if 0x60 <= op <= 0x7f:
[codex:416116]             n = op-0x5f
[codex:416116]             data = bytecode[i+1:i+1+n]
[codex:416116]             out.append((i, name, data.hex()))
[codex:416116]             i += 1 + n
[codex:416116]         else:
[codex:416116]             out.append((i, name, ''))
[codex:416116]             i += 1
[codex:416116]     return out
[codex:416116] 
[codex:416116] start=0x3060
[codex:416116] end=0x30c5
[codex:416116] for ins in disasm(start,end):
[codex:416116]     print(f\"{ins[0]:#06x} {ins[1]:<12} {ins[2]}\")
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 29ms:
[codex:416116] 0x3060 PUSH18       61306a8285613a25565b6000610b79565b91
[codex:416116] 0x3073 POP          
[codex:416116] 0x3074 POP          
[codex:416116] 0x3075 JUMPDEST     
[codex:416116] 0x3076 SWAP6        
[codex:416116] 0x3077 SWAP5        
[codex:416116] 0x3078 POP          
[codex:416116] 0x3079 POP          
[codex:416116] 0x307a POP          
[codex:416116] 0x307b POP          
[codex:416116] 0x307c POP          
[codex:416116] 0x307d JUMP         
[codex:416116] 0x307e JUMPDEST     
[codex:416116] 0x307f PUSH2        ffff
[codex:416116] 0x3082 DUP3         
[codex:416116] 0x3083 AND          
[codex:416116] 0x3084 PUSH2        30d2
[codex:416116] 0x3087 JUMPI        
[codex:416116] 0x3088 PUSH1        40
[codex:416116] 0x308a MLOAD        
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Analyzing low-level token transfer call**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116] 
[codex:416116] names = {
[codex:416116]     0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:416116]     0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:416116]     0x20:'SHA3',
[codex:416116]     0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:416116]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:416116]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:416116]     0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:416116]     0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:416116]     0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:416116]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:416116]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:416116] }
[codex:416116] 
[codex:416116] def disasm(start, end):
[codex:416116]     i = start
[codex:416116]     out = []
[codex:416116]     while i < len(bytecode) and i < end:
[codex:416116]         op = bytecode[i]
[codex:416116]         name = names.get(op, f'OP{op:02x}')
[codex:416116]         if 0x60 <= op <= 0x7f:
[codex:416116]             n = op-0x5f
[codex:416116]             data = bytecode[i+1:i+1+n]
[codex:416116]             out.append((i, name, data.hex()))
[codex:416116]             i += 1 + n
[codex:416116]         else:
[codex:416116]             out.append((i, name, ''))
[codex:416116]             i += 1
[codex:416116]     return out
[codex:416116] 
[codex:416116] start=0x3120
[codex:416116] end=0x31d0
[codex:416116] for ins in disasm(start,end):
[codex:416116]     print(f\"{ins[0]:#06x} {ins[1]:<12} {ins[2]}\")
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 28ms:
[codex:416116] 0x3120 GT           
[codex:416116] 0x3121 ISZERO       
[codex:416116] 0x3122 PUSH2        3132
[codex:416116] 0x3125 JUMPI        
[codex:416116] 0x3126 PUSH1        ff
[codex:416116] 0x3128 PUSH1        07
[codex:416116] 0x312a NOT          
[codex:416116] 0x312b DUP4         
[codex:416116] 0x312c ADD          
[codex:416116] 0x312d AND          
[codex:416116] 0x312e PUSH1        0a
[codex:416116] 0x3130 EXP          
[codex:416116] 0x3131 MUL          
[codex:416116] 0x3132 JUMPDEST     
[codex:416116] 0x3133 PUSH1        40
[codex:416116] 0x3135 DUP1         
[codex:416116] 0x3136 MLOAD        
[codex:416116] 0x3137 PUSH4        a9059cbb
[codex:416116] 0x313c PUSH1        e0
[codex:416116] 0x313e SHL          
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Analyzing call usage and stack effects**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116] 
[codex:416116] # minimal opcode decode
[codex:416116] 
[codex:416116] def iter_ops(start, end):
[codex:416116]     i = start
[codex:416116]     while i < end:
[codex:416116]         op = bytecode[i]
[codex:416116]         if 0x60 <= op <= 0x7f:
[codex:416116]             n = op - 0x5f
[codex:416116]             data = bytecode[i+1:i+1+n]
[codex:416116]             yield i, op, data
[codex:416116]             i += 1 + n
[codex:416116]         else:
[codex:416116]             yield i, op, None
[codex:416116]             i += 1
[codex:416116] 
[codex:416116] # symbolic stack
[codex:416116] class Sym(str):
[codex:416116]     pass
[codex:416116] 
[codex:416116] # map op to name
[codex:416116] names = {
[codex:416116]     0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:416116]     0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:416116]     0x20:'SHA3',
[codex:416116]     0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:416116]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:416116]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:416116]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:416116] }
[codex:416116] 
[codex:416116] # initialize stack with 12 symbols a0 (top), a1, ...
[codex:416116] stack = [Sym(f'a{i}') for i in range(12)]
[codex:416116] 
[codex:416116] start=0x307e
[codex:416116] end=0x30b7
[codex:416116] 
[codex:416116] for pc, op, data in iter_ops(start,end):
[codex:416116]     name = names.get(op, f'OP{op:02x}')
[codex:416116]     # print state
[codex:416116]     #print(pc, name, data.hex() if data else '')
[codex:416116]     if 0x60 <= op <= 0x7f:
[codex:416116]         val = int.from_bytes(data, 'big')
[codex:416116]         stack.insert(0, Sym(hex(val)))
[codex:416116]     elif 0x80 <= op <= 0x8f:  # DUP1..DUP16
[codex:416116]         n = op - 0x7f
[codex:416116]         stack.insert(0, stack[n-1])
[codex:416116]     elif 0x90 <= op <= 0x9f:  # SWAP1..SWAP16
[codex:416116]         n = op - 0x8f
[codex:416116]         stack[0], stack[n] = stack[n], stack[0]
[codex:416116]     else:
[codex:416116]         # handle some ops
[codex:416116]         def pop():
[codex:416116]             return stack.pop(0)
[codex:416116]         def push(x):
[codex:416116]             stack.insert(0, Sym(x) if not isinstance(x, Sym) else x)
[codex:416116]         if name in ('POP',):
[codex:416116]             pop()
[codex:416116]         elif name in ('ADD','SUB','MUL','DIV','AND','OR','XOR','SHL','SHR','SAR'):
[codex:416116]             a = pop(); b = pop()
[codex:416116]             push(Sym(f'({a} {name} {b})'))
[codex:416116]         elif name in ('ISZERO','NOT','EXTCODESIZE'):
[codex:416116]             a = pop(); push(Sym(f'{name}({a})'))
[codex:416116]         elif name in ('MLOAD',):
[codex:416116]             a = pop(); push(Sym(f'MLOAD({a})'))
[codex:416116]         elif name in ('MSTORE','MSTORE8','SSTORE','JUMP','JUMPI'):
[codex:416116]             # pop required args
[codex:416116]             if name=='MSTORE' or name=='MSTORE8':
[codex:416116]                 pop(); pop()
[codex:416116]             elif name=='SSTORE':
[codex:416116]                 pop(); pop()
[codex:416116]             elif name=='JUMP':
[codex:416116]                 pop()
[codex:416116]             elif name=='JUMPI':
[codex:416116]                 pop(); pop()
[codex:416116]         elif name in ('CALL',):
[codex:416116]             # stop before call
[codex:416116]             print('Stack before CALL at', hex(pc))
[codex:416116]             print(stack[:10])
[codex:416116]             break
[codex:416116]         elif name in ('GAS',):
[codex:416116]             push(Sym('GAS'))
[codex:416116]         elif name in ('PUSH1','PUSH2','PUSH3','PUSH4','PUSH5','PUSH6','PUSH7','PUSH8','PUSH9','PUSH10','PUSH11','PUSH12','PUSH13','PUSH14','PUSH15','PUSH16','PUSH17','PUSH18','PUSH19','PUSH20','PUSH21','PUSH22','PUSH23','PUSH24','PUSH25','PUSH26','PUSH27','PUSH28','PUSH29','PUSH30','PUSH31','PUSH32'):
[codex:416116]             pass
[codex:416116]         elif name in ('STOP','RETURN','REVERT','INVALID'):
[codex:416116]             break
[codex:416116]         else:
[codex:416116]             # for unhandled, just note? treat as no stack change (may be wrong)
[codex:416116]             # to keep moving, skip
[codex:416116]             pass
[codex:416116] 
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 32ms:
[codex:416116] Stack before CALL at 0x30b6
[codex:416116] ['(0x8fc MUL ISZERO(((a0 AND ((0x40 SHL 0x1) SUB 0x1)) MUL 0x2540be400)))', '(a2 AND ((0xa0 SHL 0x1) SUB 0x1))', '((a0 AND ((0x40 SHL 0x1) SUB 0x1)) MUL 0x2540be400)', 'MLOAD(0x40)', '0x0', 'MLOAD(0x40)', '0x0', 'MLOAD(0x40)', '((a0 AND ((0x40 SHL 0x1) SUB 0x1)) MUL 0x2540be400)', '(0x8fc MUL ISZERO(((a0 AND ((0x40 SHL 0x1) SUB 0x1)) MUL 0x2540be400)))']
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Analyzing opcode operand order and stack modeling**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116] 
[codex:416116] names = {
[codex:416116]     0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:416116]     0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:416116]     0x20:'SHA3',
[codex:416116]     0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:416116]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:416116]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:416116]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:416116] }
[codex:416116] 
[codex:416116] # initialize stack with 12 symbols a0 (top), a1, ...
[codex:416116] stack = [f'a{i}' for i in range(12)]
[codex:416116] 
[codex:416116] def push(x):
[codex:416116]     stack.insert(0, x)
[codex:416116] 
[codex:416116] def pop():
[codex:416116]     return stack.pop(0)
[codex:416116] 
[codex:416116] # simulate
[codex:416116] start=0x307e
[codex:416116] end=0x30b7
[codex:416116] 
[codex:416116] # decode loop
[codex:416116] pc = start
[codex:416116] while pc < end:
[codex:416116]     op = bytecode[pc]
[codex:416116]     name = names.get(op, f'OP{op:02x}')
[codex:416116]     if 0x60 <= op <= 0x7f:
[codex:416116]         n = op-0x5f
[codex:416116]         data = bytecode[pc+1:pc+1+n]
[codex:416116]         push(hex(int.from_bytes(data,'big')))
[codex:416116]         pc += 1+n
[codex:416116]         continue
[codex:416116]     if 0x80 <= op <= 0x8f:
[codex:416116]         n = op-0x7f
[codex:416116]         push(stack[n-1])
[codex:416116]         pc += 1
[codex:416116]         continue
[codex:416116]     if 0x90 <= op <= 0x9f:
[codex:416116]         n = op-0x8f
[codex:416116]         stack[0], stack[n] = stack[n], stack[0]
[codex:416116]         pc += 1
[codex:416116]         continue
[codex:416116] 
[codex:416116]     # process selected ops
[codex:416116]     if name == 'POP':
[codex:416116]         pop()
[codex:416116]     elif name in ('ADD','SUB','MUL','DIV','AND','OR','XOR','SHL','SHR','SAR'):
[codex:416116]         a = pop(); b = pop()  # a=top, b=next
[codex:416116]         push(f'({b} {name} {a})')
[codex:416116]     elif name in ('ISZERO','NOT','EXTCODESIZE'):
[codex:416116]         a = pop(); push(f'{name}({a})')
[codex:416116]     elif name == 'MLOAD':
[codex:416116]         a = pop(); push(f'MLOAD({a})')
[codex:416116]     elif name == 'MSTORE' or name == 'MSTORE8':
[codex:416116]         pop(); pop()
[codex:416116]     elif name == 'SSTORE':
[codex:416116]         pop(); pop()
[codex:416116]     elif name == 'JUMP':
[codex:416116]         pop()
[codex:416116]     elif name == 'JUMPI':
[codex:416116]         pop(); pop()
[codex:416116]     elif name == 'GAS':
[codex:416116]         push('GAS')
[codex:416116]     elif name == 'CALL':
[codex:416116]         print('Stack before CALL at', hex(pc))
[codex:416116]         print(stack[:10])
[codex:416116]         break
[codex:416116]     else:
[codex:416116]         # unhandled; assume no stack effect
[codex:416116]         pass
[codex:416116]     pc += 1
[codex:416116] 
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 27ms:
[codex:416116] Stack before CALL at 0x30b6
[codex:416116] ['(ISZERO((0x2540be400 MUL ((0x1 SUB (0x1 SHL 0x40)) AND a0))) MUL 0x8fc)', '((0x1 SUB (0x1 SHL 0xa0)) AND a2)', '(0x2540be400 MUL ((0x1 SUB (0x1 SHL 0x40)) AND a0))', 'MLOAD(0x40)', '0x0', 'MLOAD(0x40)', '0x0', 'MLOAD(0x40)', '(0x2540be400 MUL ((0x1 SUB (0x1 SHL 0x40)) AND a0))', '(ISZERO((0x2540be400 MUL ((0x1 SUB (0x1 SHL 0x40)) AND a0))) MUL 0x8fc)']
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Analyzing ETH transfer call mechanics**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116] 
[codex:416116] # find SSTORE opcodes
[codex:416116] sstore_offsets=[]
[codex:416116] 
[codex:416116] i=0
[codex:416116] while i < len(bytecode):
[codex:416116]     op=bytecode[i]
[codex:416116]     if op==0x55:
[codex:416116]         sstore_offsets.append(i)
[codex:416116]     if 0x60 <= op <= 0x7f:
[codex:416116]         i += 1 + (op-0x5f)
[codex:416116]     else:
[codex:416116]         i += 1
[codex:416116] 
[codex:416116] print('SSTORE count', len(sstore_offsets))
[codex:416116] print([hex(o) for o in sstore_offsets[:20]])
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 33ms:
[codex:416116] SSTORE count 42
[codex:416116] ['0xf1c', '0xf33', '0x1043', '0x12d7', '0x1483', '0x17d1', '0x1a85', '0x1bf5', '0x1f68', '0x1fa4', '0x2032', '0x22a9', '0x2335', '0x2399', '0x25d5', '0x2dba', '0x33cc', '0x33ef', '0x3408', '0x342a']
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Analyzing potential vulnerability paths**
[codex:416116] 
[codex:416116] I'm considering whether there are unprotected functions that could let an attacker steal funds, focusing on owner updates and withdrawal functions. I'm checking protections like onlyOwner, user signatures, and replay prevention. A tricky part is tracing ETH transfers internally by finding where certain jump destinations are called, so I plan to parse the bytecode for jump instructions targeting a specific address using Python. Let's explore this carefully!
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116] 
[codex:416116] # find PUSH2 0x307e (opcode 0x61 0x30 0x7e)
[codex:416116] pattern = bytes([0x61, 0x30, 0x7e])
[codex:416116] indices = [i for i in range(len(bytecode)-2) if bytecode[i:i+3]==pattern]
[codex:416116] print('occurrences', len(indices))
[codex:416116] for i in indices:
[codex:416116]     # show nearby opcodes bytes
[codex:416116]     print(hex(i), bytecode[i-5:i+10].hex())
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 37ms:
[codex:416116] occurrences 2
[codex:416116] 0x12fe 130288888861307e565b7f1e7f9127
[codex:416116] 0x22ba 22be86868361307e565b6020808301
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Analyzing function call references**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116] 
[codex:416116] names = {
[codex:416116]     0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:416116]     0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:416116]     0x20:'SHA3',
[codex:416116]     0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:416116]     0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:416116]     0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:416116]     0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:416116]     0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:416116]     0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:416116]     0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:416116]     0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:416116] }
[codex:416116] 
[codex:416116] def disasm(start, end):
[codex:416116]     i = start
[codex:416116]     while i < end:
[codex:416116]         op = bytecode[i]
[codex:416116]         name = names.get(op, f'OP{op:02x}')
[codex:416116]         if 0x60 <= op <= 0x7f:
[codex:416116]             n = op-0x5f
[codex:416116]             data = bytecode[i+1:i+1+n]
[codex:416116]             print(f\"{i:#06x} {name:<12} {data.hex()}\")
[codex:416116]             i += 1+n
[codex:416116]         else:
[codex:416116]             print(f\"{i:#06x} {name:<12}\")
[codex:416116]             i += 1
[codex:416116] 
[codex:416116] print('--- around 0x12f0')
[codex:416116] disasm(0x12d0, 0x1315)
[codex:416116] print('--- around 0x22b0')
[codex:416116] disasm(0x2290, 0x22d5)
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 28ms:
[codex:416116] --- around 0x12f0
[codex:416116] 0x12d0 SWAP1       
[codex:416116] 0x12d1 SUB         
[codex:416116] 0x12d2 DUP3        
[codex:416116] 0x12d3 AND         
[codex:416116] 0x12d4 OR          
[codex:416116] 0x12d5 SWAP1       
[codex:416116] 0x12d6 SWAP2       
[codex:416116] 0x12d7 SSTORE      
[codex:416116] 0x12d8 PUSH4        ffffffff
[codex:416116] 0x12dd DUP8        
[codex:416116] 0x12de AND         
[codex:416116] 0x12df SWAP2       
[codex:416116] 0x12e0 DUP4        
[codex:416116] 0x12e1 ADD         
[codex:416116] 0x12e2 SWAP2       
[codex:416116] 0x12e3 SWAP1       
[codex:416116] 0x12e4 SWAP2       
[codex:416116] 0x12e5 MSTORE      
[codex:416116] 0x12e6 DUP2        
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Analyzing ETH transfer call contexts**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)',hexdata).group(1)
[codex:416116] bytecode=bytes.fromhex(hexstr)
[codex:416116] # find jumpdests around 0x12d0
[codex:416116] positions=[i for i,b in enumerate(bytecode) if b==0x5b]
[codex:416116] near=[p for p in positions if 0x1200<=p<=0x1300]
[codex:416116] print(near)
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 32ms:
[codex:416116] [4680, 4767, 4855]
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Examining jump destinations**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)',hexdata).group(1)
[codex:416116] bytecode=bytes.fromhex(hexstr)
[codex:416116] 
[codex:416116] names={
[codex:416116]     0x5b:'JUMPDEST',0x56:'JUMP',0x57:'JUMPI',0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x73:'PUSH20',0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:416116]     0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:416116] }
[codex:416116] 
[codex:416116] def disasm(start,end):
[codex:416116]     i=start
[codex:416116]     while i<end:
[codex:416116]         op=bytecode[i]
[codex:416116]         name=names.get(op)
[codex:416116]         if 0x60<=op<=0x7f:
[codex:416116]             n=op-0x5f
[codex:416116]             data=bytecode[i+1:i+1+n]
[codex:416116]             print(f\"{i:#06x} PUSH{n:<2} {data.hex()}\")
[codex:416116]             i+=1+n
[codex:416116]         else:
[codex:416116]             if name:
[codex:416116]                 print(f\"{i:#06x} {name}\")
[codex:416116]             else:
[codex:416116]                 print(f\"{i:#06x} OP{op:02x}\")
[codex:416116]             i+=1
[codex:416116] 
[codex:416116] print('--- around 0x1240')
[codex:416116] disasm(0x1230,0x12b0)
[codex:416116] print('--- around 0x12b0')
[codex:416116] disasm(0x12b0,0x1310)
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 27ms:
[codex:416116] --- around 0x1240
[codex:416116] 0x1230 OP20
[codex:416116] 0x1231 OP01
[codex:416116] 0x1232 DUP1
[codex:416116] 0x1233 PUSH2  43a3
[codex:416116] 0x1236 PUSH1  27
[codex:416116] 0x1238 SWAP2
[codex:416116] 0x1239 OP39
[codex:416116] 0x123a PUSH1  40
[codex:416116] 0x123c OP01
[codex:416116] 0x123d SWAP2
[codex:416116] 0x123e OP50
[codex:416116] 0x123f OP50
[codex:416116] 0x1240 PUSH1  40
[codex:416116] 0x1242 OP51
[codex:416116] 0x1243 DUP1
[codex:416116] 0x1244 SWAP2
[codex:416116] 0x1245 OP03
[codex:416116] 0x1246 SWAP1
[codex:416116] 0x1247 OPfd
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Mapping function selectors to code offsets**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)',hexdata).group(1)
[codex:416116] bytecode=bytes.fromhex(hexstr)
[codex:416116] 
[codex:416116] # scan for pattern PUSH4 <sel> EQ PUSH2 <dest> JUMPI
[codex:416116] results=[]
[codex:416116] 
[codex:416116] # disasm to get opcodes and immediates with pc
[codex:416116] ops=[]
[codex:416116] i=0
[codex:416116] while i < len(bytecode):
[codex:416116]     op=bytecode[i]
[codex:416116]     if 0x60 <= op <= 0x7f:
[codex:416116]         n=op-0x5f
[codex:416116]         data=bytecode[i+1:i+1+n]
[codex:416116]         ops.append((i, op, data))
[codex:416116]         i += 1+n
[codex:416116]     else:
[codex:416116]         ops.append((i, op, None))
[codex:416116]         i += 1
[codex:416116] 
[codex:416116] # find pattern
[codex:416116] for idx in range(len(ops)-4):
[codex:416116]     pc, op, data = ops[idx]
[codex:416116]     if op==0x63: # PUSH4
[codex:416116]         sel = data.hex()
[codex:416116]         # next op should be EQ (0x14)
[codex:416116]         if ops[idx+1][1]==0x14 and ops[idx+2][1]==0x61 and ops[idx+4][1]==0x57:
[codex:416116]             dest = int.from_bytes(ops[idx+2][2], 'big')
[codex:416116]             results.append((sel, dest, pc))
[codex:416116] 
[codex:416116] # print unique selectors/dests
[codex:416116] for sel,dest,pc in results:
[codex:416116]     print(sel, hex(dest), hex(pc))
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 34ms:
[codex:416116] 
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Analyzing bytecode dispatch pattern**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)',hexdata).group(1)
[codex:416116] # search pattern in hex string for push4 eq push2 jumpi
[codex:416116] pat=re.compile(r'63([0-9a-fA-F]{8})14'  # push4 sel, eq
[codex:416116]                r'61([0-9a-fA-F]{4})57')  # push2 dest, jumpi
[codex:416116] matches=list(pat.finditer(hexstr))
[codex:416116] print('matches', len(matches))
[codex:416116] for m in matches[:30]:
[codex:416116]     sel=m.group(1)
[codex:416116]     dest=m.group(2)
[codex:416116]     print(sel, dest)
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 29ms:
[codex:416116] matches 22
[codex:416116] 929a0be6 0945
[codex:416116] c0a0dce3 0982
[codex:416116] c23c033c 0ae9
[codex:416116] cf309012 0b1c
[codex:416116] f2fde38b 0b31
[codex:416116] ffd2a7d3 0b64
[codex:416116] 7362d9c8 085d
[codex:416116] 79a9ce36 0890
[codex:416116] 7ea10e79 08c3
[codex:416116] 8da5cb5b 08ff
[codex:416116] 8f32d59b 0930
[codex:416116] 5239413b 0691
[codex:416116] 54ba6951 06bf
[codex:416116] 5b3a48bb 0724
[codex:416116] 6897e974 0757
[codex:416116] 715018a6 078a
[codex:416116] 723b60d7 079f
[codex:416116] 1d8794e0 013a
[codex:416116] 2091d079 018a
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Mapping jump destinations to functions**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)',hexdata).group(1)
[codex:416116] pat='61124856'
[codex:416116] idx=[m.start() for m in re.finditer(pat, hexstr)]
[codex:416116] print('occurrences', len(idx))
[codex:416116] print([hex(i//2) for i in idx[:10]])
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 28ms:
[codex:416116] occurrences 0
[codex:416116] []
[codex:416116] 
[codex:416116] thinking
[codex:416116] **Analyzing internal function boundaries and vulnerability potential**
[codex:416116] 
[codex:416116] I'm mapping internal function addresses and jump destinations to understand which function includes specific code regions like 0x1248 and 0x22b0, aiming to clarify the control flow. Then, I evaluate the contract's security by checking for unprotected calls, ownership controls, signature verifications, and unusual call patterns such as delegatecalls or selfdestructs. After thorough inspection, I find no obvious exploitable vulnerabilities or unprotected fund transfers, so I'll prepare a JSON report indicating no findings with a concise summary explaining this conclusion.
[codex:416116] codex
[codex:416116] {"no_findings":true,"summary":"Reviewed the full runtime bytecode bundle. The only value transfers observed are standard ERC20 `transfer`/`transferFrom` calls and an ETH `CALL` using a 2300‑gas stipend, all embedded in complex balance/nonce/signature logic. No delegatecall/selfdestruct, no controllable upgrade path, and no unprotected value-transfer path were identified from bytecode alone.","findings":[]}
[codex:416116] tokens used
[codex:416116] 100,613
[codex:416116] {"no_findings":true,"summary":"Reviewed the full runtime bytecode bundle. The only value transfers observed are standard ERC20 `transfer`/`transferFrom` calls and an ETH `CALL` using a 2300‑gas stipend, all embedded in complex balance/nonce/signature logic. No delegatecall/selfdestruct, no controllable upgrade path, and no unprotected value-transfer path were identified from bytecode alone.","findings":[]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-02T18:25:11.706576+00:00",
        "returncode": 0
    },
    "summary": "Reviewed the full runtime bytecode bundle. The only value transfers observed are standard ERC20 `transfer`/`transferFrom` calls and an ETH `CALL` using a 2300\u2011gas stipend, all embedded in complex balance/nonce/signature logic. No delegatecall/selfdestruct, no controllable upgrade path, and no unprotected value-transfer path were identified from bytecode alone.",
    "raw_final": {
        "summary": "Reviewed the full runtime bytecode bundle. The only value transfers observed are standard ERC20 `transfer`/`transferFrom` calls and an ETH `CALL` using a 2300\u2011gas stipend, all embedded in complex balance/nonce/signature logic. No delegatecall/selfdestruct, no controllable upgrade path, and no unprotected value-transfer path were identified from bytecode alone.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
5
EXT*/BALANCE
2
Total opcodes
12027
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0135
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x7362d9c8
00000019: GT
0000001a: PUSH2 0x00ab
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0x929a0be6
00000024: GT
00000025: PUSH2 0x006f
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0x929a0be6
0000002f: EQ
00000030: PUSH2 0x0945
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xc0a0dce3
0000003a: EQ
0000003b: PUSH2 0x0982
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xc23c033c
00000045: EQ
00000046: PUSH2 0x0ae9
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xcf309012
00000050: EQ
00000051: PUSH2 0x0b1c
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xf2fde38b
0000005b: EQ
0000005c: PUSH2 0x0b31
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xffd2a7d3
00000066: EQ
00000067: PUSH2 0x0b64
0000006a: JUMPI
0000006b: PUSH2 0x0135
0000006e: JUMP
0000006f: JUMPDEST
00000070: DUP1
00000071: PUSH4 0x7362d9c8
00000076: EQ
00000077: PUSH2 0x085d
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0x79a9ce36
00000081: EQ
00000082: PUSH2 0x0890
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0x7ea10e79
0000008c: EQ
0000008d: PUSH2 0x08c3
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0x8da5cb5b
00000097: EQ
00000098: PUSH2 0x08ff
0000009b: JUMPI
0000009c: DUP1
0000009d: PUSH4 0x8f32d59b
000000a2: EQ
000000a3: PUSH2 0x0930
000000a6: JUMPI
000000a7: PUSH2 0x0135
000000aa: JUMP
000000ab: JUMPDEST
000000ac: DUP1
000000ad: PUSH4 0x5239413b
000000b2: GT
000000b3: PUSH2 0x00fd
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0x5239413b
000000bd: EQ
000000be: PUSH2 0x0691
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0x54ba6951
000000c8: EQ
000000c9: PUSH2 0x06bf
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH4 0x5b3a48bb
000000d3: EQ
000000d4: PUSH2 0x0724
000000d7: JUMPI
000000d8: DUP1
000000d9: PUSH4 0x6897e974
000000de: EQ
000000df: PUSH2 0x0757
000000e2: JUMPI
000000e3: DUP1
000000e4: PUSH4 0x715018a6
000000e9: EQ
000000ea: PUSH2 0x078a
000000ed: JUMPI
000000ee: DUP1
000000ef: PUSH4 0x723b60d7
000000f4: EQ
000000f5: PUSH2 0x079f
000000f8: JUMPI
000000f9: PUSH2 0x0135
000000fc: JUMP
000000fd: JUMPDEST
000000fe: DUP1
000000ff: PUSH4 0x1d8794e0
00000104: EQ
00000105: PUSH2 0x013a
00000108: JUMPI
00000109: DUP1
0000010a: PUSH4 0x2091d079
0000010f: EQ
00000110: PUSH2 0x018a
00000113: JUMPI
00000114: DUP1
00000115: PUSH4 0x35107cd7
0000011a: EQ
0000011b: PUSH2 0x02d3
0000011e: JUMPI
0000011f: DUP1
00000120: PUSH4 0x390dcbf7
00000125: EQ
00000126: PUSH2 0x0447
00000129: JUMPI
0000012a: DUP1
0000012b: PUSH4 0x4dbda955
00000130: EQ
00000131: PUSH2 0x0665
00000134: JUMPI
00000135: JUMPDEST
00000136: PUSH1 0x00
00000138: DUP1
00000139: REVERT
0000013a: JUMPDEST
0000013b: CALLVALUE
0000013c: DUP1
0000013d: ISZERO
0000013e: PUSH2 0x0146
00000141: JUMPI
00000142: PUSH1 0x00
00000144: DUP1
00000145: REVERT
00000146: JUMPDEST
00000147: POP
00000148: PUSH2 0x0176
0000014b: PUSH1 0x04
0000014d: DUP1
0000014e: CALLDATASIZE
0000014f: SUB
00000150: PUSH1 0x40
00000152: DUP2
00000153: LT
00000154: ISZERO
00000155: PUSH2 0x015d
00000158: JUMPI
00000159: PUSH1 0x00
0000015b: DUP1
0000015c: REVERT
0000015d: JUMPDEST
0000015e: POP
0000015f: DUP1
00000160: CALLDATALOAD
00000161: PUSH1 0x01
00000163: PUSH1 0x01
00000165: PUSH1 0xa0
00000167: SHL
00000168: SUB
00000169: AND
0000016a: SWAP1
0000016b: PUSH1 0x20
0000016d: ADD
0000016e: CALLDATALOAD
0000016f: PUSH1 0xff
00000171: AND
00000172: PUSH2 0x0b79
00000175: JUMP
00000176: JUMPDEST
00000177: PUSH1 0x40
00000179: DUP1
0000017a: MLOAD
0000017b: SWAP2
0000017c: ISZERO
0000017d: ISZERO
0000017e: DUP3
0000017f: MSTORE
00000180: MLOAD
00000181: SWAP1
00000182: DUP2
00000183: SWAP1
00000184: SUB
00000185: PUSH1 0x20
00000187: ADD
00000188: SWAP1
00000189: RETURN
0000018a: JUMPDEST
0000018b: CALLVALUE
0000018c: DUP1
0000018d: ISZERO
0000018e: PUSH2 0x0196
00000191: JUMPI
00000192: PUSH1 0x00
00000194: DUP1
00000195: REVERT
00000196: JUMPDEST
00000197: POP
00000198: PUSH2 0x02d1
0000019b: PUSH1 0x04
0000019d: DUP1
0000019e: CALLDATASIZE
0000019f: SUB
000001a0: PUSH1 0x60
000001a2: DUP2
000001a3: LT
000001a4: ISZERO
000001a5: PUSH2 0x01ad
000001a8: JUMPI
000001a9: PUSH1 0x00
000001ab: DUP1
000001ac: REVERT
000001ad: JUMPDEST
000001ae: DUP2
000001af: ADD
000001b0: SWAP1
000001b1: PUSH1 0x20
000001b3: DUP2
000001b4: ADD
000001b5: DUP2
000001b6: CALLDATALOAD
000001b7: PUSH1 0x01
000001b9: PUSH1 0x20
000001bb: SHL
000001bc: DUP2
000001bd: GT
000001be: ISZERO
000001bf: PUSH2 0x01c7
000001c2: JUMPI
000001c3: PUSH1 0x00
000001c5: DUP1
000001c6: REVERT
000001c7: JUMPDEST
000001c8: DUP3
000001c9: ADD
000001ca: DUP4
000001cb: PUSH1 0x20
000001cd: DUP3
000001ce: ADD
000001cf: GT
000001d0: ISZERO
000001d1: PUSH2 0x01d9
000001d4: JUMPI
000001d5: PUSH1 0x00
000001d7: DUP1
000001d8: REVERT
000001d9: JUMPDEST
000001da: DUP1
000001db: CALLDATALOAD
000001dc: SWAP1
000001dd: PUSH1 0x20
000001df: ADD
000001e0: SWAP2
000001e1: DUP5
000001e2: PUSH1 0x01
000001e4: DUP4
000001e5: MUL
000001e6: DUP5
000001e7: ADD
000001e8: GT
000001e9: PUSH1 0x01
000001eb: PUSH1 0x20
000001ed: SHL
000001ee: DUP4
000001ef: GT
000001f0: OR
000001f1: ISZERO
000001f2: PUSH2 0x01fa
000001f5: JUMPI
000001f6: PUSH1 0x00
000001f8: DUP1
000001f9: REVERT
000001fa: JUMPDEST
000001fb: SWAP2
000001fc: SWAP1
000001fd: DUP1
000001fe: DUP1
000001ff: PUSH1 0x1f
00000201: ADD
00000202: PUSH1 0x20
00000204: DUP1
00000205: SWAP2
00000206: DIV
00000207: MUL
00000208: PUSH1 0x20
0000020a: ADD
0000020b: PUSH1 0x40
0000020d: MLOAD
0000020e: SWAP1
0000020f: DUP2
00000210: ADD
00000211: PUSH1 0x40
00000213: MSTORE
00000214: DUP1
00000215: SWAP4
00000216: SWAP3
00000217: SWAP2
00000218: SWAP1
00000219: DUP2
0000021a: DUP2
0000021b: MSTORE
0000021c: PUSH1 0x20
0000021e: ADD
0000021f: DUP4
00000220: DUP4
00000221: DUP1
00000222: DUP3
00000223: DUP5
00000224: CALLDATACOPY
00000225: PUSH1 0x00
00000227: SWAP3
00000228: ADD
00000229: SWAP2
0000022a: SWAP1
0000022b: SWAP2
0000022c: MSTORE
0000022d: POP
0000022e: SWAP3
0000022f: SWAP6
00000230: PUSH1 0x01
00000232: PUSH1 0x01
00000234: PUSH1 0xa0
00000236: SHL
00000237: SUB
00000238: DUP6
00000239: CALLDATALOAD
0000023a: AND
0000023b: SWAP6
0000023c: SWAP1
0000023d: SWAP5
0000023e: SWAP1
0000023f: SWAP4
00000240: POP
00000241: PUSH1 0x40
00000243: DUP2
00000244: ADD
00000245: SWAP3
00000246: POP
00000247: PUSH1 0x20
00000249: ADD
0000024a: CALLDATALOAD
0000024b: SWAP1
0000024c: POP
0000024d: PUSH1 0x01
0000024f: PUSH1 0x20
00000251: SHL
00000252: DUP2
00000253: GT
00000254: ISZERO
00000255: PUSH2 0x025d
00000258: JUMPI
00000259: PUSH1 0x00
0000025b: DUP1
0000025c: REVERT
0000025d: JUMPDEST
0000025e: DUP3
0000025f: ADD
00000260: DUP4
00000261: PUSH1 0x20
00000263: DUP3
00000264: ADD
00000265: GT
00000266: ISZERO
00000267: PUSH2 0x026f
0000026a: JUMPI
0000026b: PUSH1 0x00
0000026d: DUP1
0000026e: REVERT
0000026f: JUMPDEST
00000270: DUP1
00000271: CALLDATALOAD
00000272: SWAP1
00000273: PUSH1 0x20
00000275: ADD
00000276: SWAP2
00000277: DUP5
00000278: PUSH1 0x01
0000027a: DUP4
0000027b: MUL
0000027c: DUP5
0000027d: ADD
0000027e: GT
0000027f: PUSH1 0x01
00000281: PUSH1 0x20
00000283: SHL
00000284: DUP4
00000285: GT
00000286: OR
00000287: ISZERO
00000288: PUSH2 0x0290
0000028b: JUMPI
0000028c: PUSH1 0x00
0000028e: DUP1
0000028f: REVERT
00000290: JUMPDEST
00000291: SWAP2
00000292: SWAP1
00000293: DUP1
00000294: DUP1
00000295: PUSH1 0x1f
00000297: ADD
00000298: PUSH1 0x20
0000029a: DUP1
0000029b: SWAP2
0000029c: DIV
0000029d: MUL
0000029e: PUSH1 0x20
000002a0: ADD
000002a1: PUSH1 0x40
000002a3: MLOAD
000002a4: SWAP1
000002a5: DUP2
000002a6: ADD
000002a7: PUSH1 0x40
000002a9: MSTORE
000002aa: DUP1
000002ab: SWAP4
000002ac: SWAP3
000002ad: SWAP2
000002ae: SWAP1
000002af: DUP2
000002b0: DUP2
000002b1: MSTORE
000002b2: PUSH1 0x20
000002b4: ADD
000002b5: DUP4
000002b6: DUP4
000002b7: DUP1
000002b8: DUP3
000002b9: DUP5
000002ba: CALLDATACOPY
000002bb: PUSH1 0x00
000002bd: SWAP3
000002be: ADD
000002bf: SWAP2
000002c0: SWAP1
000002c1: SWAP2
000002c2: MSTORE
000002c3: POP
000002c4: SWAP3
000002c5: SWAP6
000002c6: POP
000002c7: PUSH2 0x0c9f
000002ca: SWAP5
000002cb: POP
000002cc: POP
000002cd: POP
000002ce: POP
000002cf: POP
000002d0: JUMP
000002d1: JUMPDEST
000002d2: STOP
000002d3: JUMPDEST
000002d4: CALLVALUE
000002d5: DUP1
000002d6: ISZERO
000002d7: PUSH2 0x02df
000002da: JUMPI
000002db: PUSH1 0x00
000002dd: DUP1
000002de: REVERT
000002df: JUMPDEST
000002e0: POP
000002e1: PUSH2 0x02d1
000002e4: PUSH1 0x04
000002e6: DUP1
000002e7: CALLDATASIZE
000002e8: SUB
000002e9: PUSH1 0xe0
000002eb: DUP2
000002ec: LT
000002ed: ISZERO
000002ee: PUSH2 0x02f6
000002f1: JUMPI
000002f2: PUSH1 0x00
000002f4: DUP1
000002f5: REVERT
000002f6: JUMPDEST
000002f7: PUSH1 0x01
000002f9: PUSH1 0x01
000002fb: PUSH1 0xa0
000002fd: SHL
000002fe: SUB
000002ff: DUP3
00000300: CALLDATALOAD
00000301: DUP2
00000302: AND
00000303: SWAP3
00000304: PUSH2 0xffff
00000307: PUSH1 0x20
00000309: DUP3
0000030a: ADD
0000030b: CALLDATALOAD
0000030c: AND
0000030d: SWAP3
0000030e: PUSH1 0x01
00000310: PUSH1 0x01
00000312: PUSH1 0x40
00000314: SHL
00000315: SUB
00000316: PUSH1 0x40
00000318: DUP4
00000319: ADD
0000031a: CALLDATALOAD
0000031b: AND
0000031c: SWAP3
0000031d: PUSH4 0xffffffff
00000322: PUSH1 0x60
00000324: DUP5
00000325: ADD
00000326: CALLDATALOAD
00000327: AND
00000328: SWAP3
00000329: PUSH1 0x80
0000032b: DUP2
0000032c: ADD
0000032d: CALLDATALOAD
0000032e: SWAP1
0000032f: SWAP2
00000330: AND
00000331: SWAP2
00000332: DUP2
00000333: ADD
00000334: SWAP1
00000335: PUSH1 0xc0
00000337: DUP2
00000338: ADD
00000339: PUSH1 0xa0
0000033b: DUP3
0000033c: ADD
0000033d: CALLDATALOAD
0000033e: PUSH1 0x01
00000340: PUSH1 0x20
00000342: SHL
00000343: DUP2
00000344: GT
00000345: ISZERO
00000346: PUSH2 0x034e
00000349: JUMPI
0000034a: PUSH1 0x00
0000034c: DUP1
0000034d: REVERT
0000034e: JUMPDEST
0000034f: DUP3
00000350: ADD
00000351: DUP4
00000352: PUSH1 0x20
00000354: DUP3
00000355: ADD
00000356: GT
00000357: ISZERO
00000358: PUSH2 0x0360
0000035b: JUMPI
0000035c: PUSH1 0x00
0000035e: DUP1
0000035f: REVERT
00000360: JUMPDEST
00000361: DUP1
00000362: CALLDATALOAD
00000363: SWAP1
00000364: PUSH1 0x20
00000366: ADD
00000367: SWAP2
00000368: DUP5
00000369: PUSH1 0x01
0000036b: DUP4
0000036c: MUL
0000036d: DUP5
0000036e: ADD
0000036f: GT
00000370: PUSH1 0x01
00000372: PUSH1 0x20
00000374: SHL
00000375: DUP4
00000376: GT
00000377: OR
00000378: ISZERO
00000379: PUSH2 0x0381
0000037c: JUMPI
0000037d: PUSH1 0x00
0000037f: DUP1
00000380: REVERT
00000381: JUMPDEST
00000382: SWAP2
00000383: SWAP1
00000384: DUP1
00000385: DUP1
00000386: PUSH1 0x1f
00000388: ADD
00000389: PUSH1 0x20
0000038b: DUP1
0000038c: SWAP2
0000038d: DIV
0000038e: MUL
0000038f: PUSH1 0x20
00000391: ADD
00000392: PUSH1 0x40
00000394: MLOAD
00000395: SWAP1
00000396: DUP2
00000397: ADD
00000398: PUSH1 0x40
0000039a: MSTORE
0000039b: DUP1
0000039c: SWAP4
0000039d: SWAP3
0000039e: SWAP2
0000039f: SWAP1
000003a0: DUP2
000003a1: DUP2
000003a2: MSTORE
000003a3: PUSH1 0x20
000003a5: ADD
000003a6: DUP4
000003a7: DUP4
000003a8: DUP1
000003a9: DUP3
000003aa: DUP5
000003ab: CALLDATACOPY
000003ac: PUSH1 0x00
000003ae: SWAP3
000003af: ADD
000003b0: SWAP2
000003b1: SWAP1
000003b2: SWAP2
000003b3: MSTORE
000003b4: POP
000003b5: SWAP3
000003b6: SWAP6
000003b7: SWAP5
000003b8: SWAP4
000003b9: PUSH1 0x20
000003bb: DUP2
000003bc: ADD
000003bd: SWAP4
000003be: POP
000003bf: CALLDATALOAD
000003c0: SWAP2
000003c1: POP
000003c2: POP
000003c3: PUSH1 0x01
000003c5: PUSH1 0x20
000003c7: SHL
000003c8: DUP2
000003c9: GT
000003ca: ISZERO
000003cb: PUSH2 0x03d3
000003ce: JUMPI
000003cf: PUSH1 0x00
000003d1: DUP1
000003d2: REVERT
000003d3: JUMPDEST
000003d4: DUP3
000003d5: ADD
000003d6: DUP4
000003d7: PUSH1 0x20
000003d9: DUP3
000003da: ADD
000003db: GT
000003dc: ISZERO
000003dd: PUSH2 0x03e5
000003e0: JUMPI
000003e1: PUSH1 0x00
000003e3: DUP1
000003e4: REVERT
000003e5: JUMPDEST
000003e6: DUP1
000003e7: CALLDATALOAD
000003e8: SWAP1
000003e9: PUSH1 0x20
000003eb: ADD
000003ec: SWAP2
000003ed: DUP5
000003ee: PUSH1 0x01
000003f0: DUP4
000003f1: MUL
000003f2: DUP5
000003f3: ADD
000003f4: GT
000003f5: PUSH1 0x01
000003f7: PUSH1 0x20
000003f9: SHL
000003fa: DUP4
000003fb: GT
000003fc: OR
000003fd: ISZERO
000003fe: PUSH2 0x0406
00000401: JUMPI
00000402: PUSH1 0x00
00000404: DUP1
00000405: REVERT
00000406: JUMPDEST
00000407: SWAP2
00000408: SWAP1
00000409: DUP1
0000040a: DUP1
0000040b: PUSH1 0x1f
0000040d: ADD
0000040e: PUSH1 0x20
00000410: DUP1
00000411: SWAP2
00000412: DIV
00000413: MUL
00000414: PUSH1 0x20
00000416: ADD
00000417: PUSH1 0x40
00000419: MLOAD
0000041a: SWAP1
0000041b: DUP2
0000041c: ADD
0000041d: PUSH1 0x40
0000041f: MSTORE
00000420: DUP1
00000421: SWAP4
00000422: SWAP3
00000423: SWAP2
00000424: SWAP1
00000425: DUP2
00000426: DUP2
00000427: MSTORE
00000428: PUSH1 0x20
0000042a: ADD
0000042b: DUP4
0000042c: DUP4
0000042d: DUP1
0000042e: DUP3
0000042f: DUP5
00000430: CALLDATACOPY
00000431: PUSH1 0x00
00000433: SWAP3
00000434: ADD
00000435: SWAP2
00000436: SWAP1
00000437: SWAP2
00000438: MSTORE
00000439: POP
0000043a: SWAP3
0000043b: SWAP6
0000043c: POP
0000043d: PUSH2 0x0fe5
00000440: SWAP5
00000441: POP
00000442: POP
00000443: POP
00000444: POP
00000445: POP
00000446: JUMP
00000447: JUMPDEST
00000448: CALLVALUE
00000449: DUP1
0000044a: ISZERO
0000044b: PUSH2 0x0453
0000044e: JUMPI
0000044f: PUSH1 0x00
00000451: DUP1
00000452: REVERT
00000453: JUMPDEST
00000454: POP
00000455: PUSH2 0x02d1
00000458: PUSH1 0x04
0000045a: DUP1
0000045b: CALLDATASIZE
0000045c: SUB
0000045d: PUSH2 0x0200
00000460: DUP2
00000461: LT
00000462: ISZERO
00000463: PUSH2 0x046b
00000466: JUMPI
00000467: PUSH1 0x00
00000469: DUP1
0000046a: REVERT
0000046b: JUMPDEST
0000046c: PUSH1 0x40
0000046e: DUP1
0000046f: MLOAD
00000470: DUP1
00000471: DUP3
00000472: ADD
00000473: DUP3
00000474: MSTORE
00000475: PUSH1 0x01
00000477: PUSH1 0x01
00000479: PUSH1 0xa0
0000047b: SHL
0000047c: SUB
0000047d: DUP5
0000047e: CALLDATALOAD
0000047f: AND
00000480: SWAP4
00000481: SWAP3
00000482: DUP4
00000483: ADD
00000484: SWAP3
00000485: SWAP2
00000486: PUSH1 0x60
00000488: DUP4
00000489: ADD
0000048a: SWAP2
0000048b: SWAP1
0000048c: PUSH1 0x20
0000048e: DUP5
0000048f: ADD
00000490: SWAP1
00000491: PUSH1 0x02
00000493: SWAP1
00000494: DUP4
00000495: SWAP1
00000496: DUP4
00000497: SWAP1
00000498: DUP1
00000499: DUP3
0000049a: DUP5
0000049b: CALLDATACOPY
0000049c: PUSH1 0x00
0000049e: SWAP3
0000049f: ADD
000004a0: SWAP2
000004a1: SWAP1
000004a2: SWAP2
000004a3: MSTORE
000004a4: POP
000004a5: POP
000004a6: PUSH1 0x40
000004a8: DUP1
000004a9: MLOAD
000004aa: DUP1
000004ab: DUP3
000004ac: ADD
000004ad: DUP3
000004ae: MSTORE
000004af: SWAP3
000004b0: SWAP6
000004b1: SWAP5
000004b2: SWAP4
000004b3: DUP2
000004b4: DUP2
000004b5: ADD
000004b6: SWAP4
000004b7: SWAP3
000004b8: POP
000004b9: SWAP1
000004ba: PUSH1 0x02
000004bc: SWAP1
000004bd: DUP4
000004be: SWAP1
000004bf: DUP4
000004c0: SWAP1
000004c1: DUP1
000004c2: DUP3
000004c3: DUP5
000004c4: CALLDATACOPY
000004c5: PUSH1 0x00
000004c7: SWAP3
000004c8: ADD
000004c9: SWAP2
000004ca: SWAP1
000004cb: SWAP2
000004cc: MSTORE
000004cd: POP
000004ce: POP
000004cf: PUSH1 0x40
000004d1: DUP1
000004d2: MLOAD
000004d3: DUP1
000004d4: DUP3
000004d5: ADD
000004d6: DUP3
000004d7: MSTORE
000004d8: SWAP3
000004d9: SWAP6
000004da: PUSH1 0x01
000004dc: PUSH1 0x01
000004de: PUSH1 0x40
000004e0: SHL
000004e1: SUB
000004e2: DUP6
000004e3: CALLDATALOAD
000004e4: AND
000004e5: SWAP6
000004e6: SWAP1
000004e7: SWAP5
000004e8: SWAP1
000004e9: SWAP4
000004ea: PUSH1 0x60
000004ec: DUP3
000004ed: ADD
000004ee: SWAP4
000004ef: POP
000004f0: SWAP2
000004f1: PUSH1 0x20
000004f3: SWAP1
000004f4: SWAP2
000004f5: ADD
000004f6: SWAP1
000004f7: PUSH1 0x02
000004f9: SWAP1
000004fa: DUP4
000004fb: SWAP1
000004fc: DUP4
000004fd: SWAP1
000004fe: DUP1
000004ff: DUP3
00000500: DUP5
00000501: CALLDATACOPY
00000502: PUSH1 0x00
00000504: SWAP3
00000505: ADD
00000506: SWAP2
00000507: SWAP1
00000508: SWAP2
00000509: MSTORE
0000050a: POP
0000050b: SWAP2
0000050c: SWAP5
0000050d: PUSH1 0x01
0000050f: PUSH1 0x01
00000511: PUSH1 0x40
00000513: SHL
00000514: SUB
00000515: DUP5
00000516: CALLDATALOAD
00000517: AND
00000518: SWAP5
00000519: PUSH4 0xffffffff
0000051e: PUSH1 0x20
00000520: DUP7
00000521: ADD
00000522: CALLDATALOAD
00000523: AND
00000524: SWAP5
00000525: PUSH1 0x01
00000527: PUSH1 0x01
00000529: PUSH1 0xa0
0000052b: SHL
0000052c: SUB
0000052d: PUSH1 0x40
0000052f: DUP3
00000530: ADD
00000531: CALLDATALOAD
00000532: AND
00000533: SWAP5
00000534: POP
00000535: SWAP2
00000536: SWAP3
00000537: POP
00000538: SWAP1
00000539: PUSH1 0x80
0000053b: DUP2
0000053c: ADD
0000053d: SWAP1
0000053e: PUSH1 0x60
00000540: ADD
00000541: CALLDATALOAD
00000542: PUSH1 0x01
00000544: PUSH1 0x20
00000546: SHL
00000547: DUP2
00000548: GT
00000549: ISZERO
0000054a: PUSH2 0x0552
0000054d: JUMPI
0000054e: PUSH1 0x00
00000550: DUP1
00000551: REVERT
00000552: JUMPDEST
00000553: DUP3
00000554: ADD
00000555: DUP4
00000556: PUSH1 0x20
00000558: DUP3
00000559: ADD
0000055a: GT
0000055b: ISZERO
0000055c: PUSH2 0x0564
0000055f: JUMPI
00000560: PUSH1 0x00
00000562: DUP1
00000563: REVERT
00000564: JUMPDEST
00000565: DUP1
00000566: CALLDATALOAD
00000567: SWAP1
00000568: PUSH1 0x20
0000056a: ADD
0000056b: SWAP2
0000056c: DUP5
0000056d: PUSH1 0x01
0000056f: DUP4
00000570: MUL
00000571: DUP5
00000572: ADD
00000573: GT
00000574: PUSH1 0x01
00000576: PUSH1 0x20
00000578: SHL
00000579: DUP4
0000057a: GT
0000057b: OR
0000057c: ISZERO
0000057d: PUSH2 0x0585
00000580: JUMPI
00000581: PUSH1 0x00
00000583: DUP1
00000584: REVERT
00000585: JUMPDEST
00000586: SWAP2
00000587: SWAP1
00000588: DUP1
00000589: DUP1
0000058a: PUSH1 0x1f
0000058c: ADD
0000058d: PUSH1 0x20
0000058f: DUP1
00000590: SWAP2
00000591: DIV
00000592: MUL
00000593: PUSH1 0x20
00000595: ADD
00000596: PUSH1 0x40
00000598: MLOAD
00000599: SWAP1
0000059a: DUP2
0000059b: ADD
0000059c: PUSH1 0x40
0000059e: MSTORE
0000059f: DUP1
000005a0: SWAP4
000005a1: SWAP3
000005a2: SWAP2
000005a3: SWAP1
000005a4: DUP2
000005a5: DUP2
000005a6: MSTORE
000005a7: PUSH1 0x20
000005a9: ADD
000005aa: DUP4
000005ab: DUP4
000005ac: DUP1
000005ad: DUP3
000005ae: DUP5
000005af: CALLDATACOPY
000005b0: PUSH1 0x00
000005b2: SWAP3
000005b3: ADD
000005b4: SWAP2
000005b5: SWAP1
000005b6: SWAP2
000005b7: MSTORE
000005b8: POP
000005b9: SWAP3
000005ba: SWAP6
000005bb: SWAP5
000005bc: SWAP4
000005bd: PUSH1 0x20
000005bf: DUP2
000005c0: ADD
000005c1: SWAP4
000005c2: POP
000005c3: CALLDATALOAD
000005c4: SWAP2
000005c5: POP
000005c6: POP
000005c7: PUSH1 0x01
000005c9: PUSH1 0x20
000005cb: SHL
000005cc: DUP2
000005cd: GT
000005ce: ISZERO
000005cf: PUSH2 0x05d7
000005d2: JUMPI
000005d3: PUSH1 0x00
000005d5: DUP1
000005d6: REVERT
000005d7: JUMPDEST
000005d8: DUP3
000005d9: ADD
000005da: DUP4
000005db: PUSH1 0x20
000005dd: DUP3
000005de: ADD
000005df: GT
000005e0: ISZERO
000005e1: PUSH2 0x05e9
000005e4: JUMPI
000005e5: PUSH1 0x00
000005e7: DUP1
000005e8: REVERT
000005e9: JUMPDEST
000005ea: DUP1
000005eb: CALLDATALOAD
000005ec: SWAP1
000005ed: PUSH1 0x20
000005ef: ADD
000005f0: SWAP2
000005f1: DUP5
000005f2: PUSH1 0x01
000005f4: DUP4
000005f5: MUL
000005f6: DUP5
000005f7: ADD
000005f8: GT
000005f9: PUSH1 0x01
000005fb: PUSH1 0x20
000005fd: SHL
000005fe: DUP4
000005ff: GT
00000600: OR
00000601: ISZERO
00000602: PUSH2 0x060a
00000605: JUMPI
00000606: PUSH1 0x00
00000608: DUP1
00000609: REVERT
0000060a: JUMPDEST
0000060b: SWAP2
0000060c: SWAP1
0000060d: DUP1
0000060e: DUP1
0000060f: PUSH1 0x1f
00000611: ADD
00000612: PUSH1 0x20
00000614: DUP1
00000615: SWAP2
00000616: DIV
00000617: MUL
00000618: PUSH1 0x20
0000061a: ADD
0000061b: PUSH1 0x40
0000061d: MLOAD
0000061e: SWAP1
0000061f: DUP2
00000620: ADD
00000621: PUSH1 0x40
00000623: MSTORE
00000624: DUP1
00000625: SWAP4
00000626: SWAP3
00000627: SWAP2
00000628: SWAP1
00000629: DUP2
0000062a: DUP2
0000062b: MSTORE
0000062c: PUSH1 0x20
0000062e: ADD
0000062f: DUP4
00000630: DUP4
00000631: DUP1
00000632: DUP3
00000633: DUP5
00000634: CALLDATACOPY
00000635: PUSH1 0x00
00000637: SWAP3
00000638: ADD
00000639: SWAP2
0000063a: SWAP1
0000063b: SWAP2
0000063c: MSTORE
0000063d: POP
0000063e: SWAP3
0000063f: SWAP6
00000640: POP
00000641: POP
00000642: PUSH1 0x01
00000644: PUSH1 0x01
00000646: PUSH1 0x40
00000648: SHL
00000649: SUB
0000064a: DUP4
0000064b: CALLDATALOAD
0000064c: DUP2
0000064d: AND
0000064e: SWAP5
0000064f: POP
00000650: PUSH1 0x20
00000652: DUP5
00000653: ADD
00000654: CALLDATALOAD
00000655: DUP2
00000656: AND
00000657: SWAP4
00000658: PUSH1 0x40
0000065a: ADD
0000065b: CALLDATALOAD
0000065c: AND
0000065d: SWAP2
0000065e: POP
0000065f: PUSH2 0x148b
00000662: SWAP1
00000663: POP
00000664: JUMP
00000665: JUMPDEST
00000666: CALLVALUE
00000667: DUP1
00000668: ISZERO
00000669: PUSH2 0x0671
0000066c: JUMPI
0000066d: PUSH1 0x00
0000066f: DUP1
00000670: REVERT
00000671: JUMPDEST
00000672: POP
00000673: PUSH2 0x067a
00000676: PUSH2 0x1759
00000679: JUMP
0000067a: JUMPDEST
0000067b: PUSH1 0x40
0000067d: DUP1
0000067e: MLOAD
0000067f: PUSH2 0xffff
00000682: SWAP1
00000683: SWAP3
00000684: AND
00000685: DUP3
00000686: MSTORE
00000687: MLOAD
00000688: SWAP1
00000689: DUP2
0000068a: SWAP1
0000068b: SUB
0000068c: PUSH1 0x20
0000068e: ADD
0000068f: SWAP1
00000690: RETURN
00000691: JUMPDEST
00000692: CALLVALUE
00000693: DUP1
00000694: ISZERO
00000695: PUSH2 0x069d
00000698: JUMPI
00000699: PUSH1 0x00
0000069b: DUP1
0000069c: REVERT
0000069d: JUMPDEST
0000069e: POP
0000069f: PUSH2 0x02d1
000006a2: PUSH1 0x04
000006a4: DUP1
000006a5: CALLDATASIZE
000006a6: SUB
000006a7: PUSH1 0x20
000006a9: DUP2
000006aa: LT
000006ab: ISZERO
000006ac: PUSH2 0x06b4
000006af: JUMPI
000006b0: PUSH1 0x00
000006b2: DUP1
000006b3: REVERT
000006b4: JUMPDEST
000006b5: POP
000006b6: CALLDATALOAD
000006b7: PUSH2 0xffff
000006ba: AND
000006bb: PUSH2 0x176a
000006be: JUMP
000006bf: JUMPDEST
000006c0: CALLVALUE
000006c1: DUP1
000006c2: ISZERO
000006c3: PUSH2 0x06cb
000006c6: JUMPI
000006c7: PUSH1 0x00
000006c9: DUP1
000006ca: REVERT
000006cb: JUMPDEST
000006cc: POP
000006cd: PUSH2 0x06d4
000006d0: PUSH2 0x17d3
000006d3: JUMP
000006d4: JUMPDEST
000006d5: PUSH1 0x40
000006d7: DUP1
000006d8: MLOAD
000006d9: PUSH1 0x20
000006db: DUP1
000006dc: DUP3
000006dd: MSTORE
000006de: DUP4
000006df: MLOAD
000006e0: DUP2
000006e1: DUP4
000006e2: ADD
000006e3: MSTORE
000006e4: DUP4
000006e5: MLOAD
000006e6: SWAP2
000006e7: SWAP3
000006e8: DUP4
000006e9: SWAP3
000006ea: SWAP1
000006eb: DUP4
000006ec: ADD
000006ed: SWAP2
000006ee: DUP6
000006ef: DUP2
000006f0: ADD
000006f1: SWAP2
000006f2: MUL
000006f3: DUP1
000006f4: DUP4
000006f5: DUP4
000006f6: PUSH1 0x00
000006f8: JUMPDEST
000006f9: DUP4
000006fa: DUP2
000006fb: LT
000006fc: ISZERO
000006fd: PUSH2 0x0710
00000700: JUMPI
00000701: DUP2
00000702: DUP2
00000703: ADD
00000704: MLOAD
00000705: DUP4
00000706: DUP3
00000707: ADD
00000708: MSTORE
00000709: PUSH1 0x20
0000070b: ADD
0000070c: PUSH2 0x06f8
0000070f: JUMP
00000710: JUMPDEST
00000711: POP
00000712: POP
00000713: POP
00000714: POP
00000715: SWAP1
00000716: POP
00000717: ADD
00000718: SWAP3
00000719: POP
0000071a: POP
0000071b: POP
0000071c: PUSH1 0x40
0000071e: MLOAD
0000071f: DUP1
00000720: SWAP2
00000721: SUB
00000722: SWAP1
00000723: RETURN
00000724: JUMPDEST
00000725: CALLVALUE
00000726: DUP1
00000727: ISZERO
00000728: PUSH2 0x0730
0000072b: JUMPI
0000072c: PUSH1 0x00
0000072e: DUP1
0000072f: REVERT
00000730: JUMPDEST
00000731: POP
00000732: PUSH2 0x02d1
00000735: PUSH1 0x04
00000737: DUP1
00000738: CALLDATASIZE
00000739: SUB
0000073a: PUSH1 0x20
0000073c: DUP2
0000073d: LT
0000073e: ISZERO
0000073f: PUSH2 0x0747
00000742: JUMPI
00000743: PUSH1 0x00
00000745: DUP1
00000746: REVERT
00000747: JUMPDEST
00000748: POP
00000749: CALLDATALOAD
0000074a: PUSH1 0x01
0000074c: PUSH1 0x01
0000074e: PUSH1 0xa0
00000750: SHL
00000751: SUB
00000752: AND
00000753: PUSH2 0x1886
00000756: JUMP
00000757: JUMPDEST
00000758: CALLVALUE
00000759: DUP1
0000075a: ISZERO
0000075b: PUSH2 0x0763
0000075e: JUMPI
0000075f: PUSH1 0x00
00000761: DUP1
00000762: REVERT
00000763: JUMPDEST
00000764: POP
00000765: PUSH2 0x02d1
00000768: PUSH1 0x04
0000076a: DUP1
0000076b: CALLDATASIZE
0000076c: SUB
0000076d: PUSH1 0x20
0000076f: DUP2
00000770: LT
00000771: ISZERO
00000772: PUSH2 0x077a
00000775: JUMPI
00000776: PUSH1 0x00
00000778: DUP1
00000779: REVERT
0000077a: JUMPDEST
0000077b: POP
0000077c: CALLDATALOAD
0000077d: PUSH1 0x01
0000077f: PUSH1 0x01
00000781: PUSH1 0xa0
00000783: SHL
00000784: SUB
00000785: AND
00000786: PUSH2 0x1ad5
00000789: JUMP
0000078a: JUMPDEST
0000078b: CALLVALUE
0000078c: DUP1
0000078d: ISZERO
0000078e: PUSH2 0x0796
00000791: JUMPI
00000792: PUSH1 0x00
00000794: DUP1
00000795: REVERT
00000796: JUMPDEST
00000797: POP
00000798: PUSH2 0x02d1
0000079b: PUSH2 0x1b66
0000079e: JUMP
0000079f: JUMPDEST
000007a0: CALLVALUE
000007a1: DUP1
000007a2: ISZERO
000007a3: PUSH2 0x07ab
000007a6: JUMPI
000007a7: PUSH1 0x00
000007a9: DUP1
000007aa: REVERT
000007ab: JUMPDEST
000007ac: POP
000007ad: PUSH2 0x06d4
000007b0: PUSH1 0x04
000007b2: DUP1
000007b3: CALLDATASIZE
000007b4: SUB
000007b5: PUSH1 0x40
000007b7: DUP2
000007b8: LT
000007b9: ISZERO
000007ba: PUSH2 0x07c2
000007bd: JUMPI
000007be: PUSH1 0x00
000007c0: DUP1
000007c1: REVERT
000007c2: JUMPDEST
000007c3: PUSH1 0x01
000007c5: PUSH1 0x01
000007c7: PUSH1 0xa0
000007c9: SHL
000007ca: SUB
000007cb: DUP3
000007cc: CALLDATALOAD
000007cd: AND
000007ce: SWAP2
000007cf: SWAP1
000007d0: DUP2
000007d1: ADD
000007d2: SWAP1
000007d3: PUSH1 0x40
000007d5: DUP2
000007d6: ADD
000007d7: PUSH1 0x20
000007d9: DUP3
000007da: ADD
000007db: CALLDATALOAD
000007dc: PUSH1 0x01
000007de: PUSH1 0x20
000007e0: SHL
000007e1: DUP2
000007e2: GT
000007e3: ISZERO
000007e4: PUSH2 0x07ec
000007e7: JUMPI
000007e8: PUSH1 0x00
000007ea: DUP1
000007eb: REVERT
000007ec: JUMPDEST
000007ed: DUP3
000007ee: ADD
000007ef: DUP4
000007f0: PUSH1 0x20
000007f2: DUP3
000007f3: ADD
000007f4: GT
000007f5: ISZERO
000007f6: PUSH2 0x07fe
000007f9: JUMPI
000007fa: PUSH1 0x00
000007fc: DUP1
000007fd: REVERT
000007fe: JUMPDEST
000007ff: DUP1
00000800: CALLDATALOAD
00000801: SWAP1
00000802: PUSH1 0x20
00000804: ADD
00000805: SWAP2
00000806: DUP5
00000807: PUSH1 0x20
00000809: DUP4
0000080a: MUL
0000080b: DUP5
0000080c: ADD
0000080d: GT
0000080e: PUSH1 0x01
00000810: PUSH1 0x20
00000812: SHL
00000813: DUP4
00000814: GT
00000815: OR
00000816: ISZERO
00000817: PUSH2 0x081f
0000081a: JUMPI
0000081b: PUSH1 0x00
0000081d: DUP1
0000081e: REVERT
0000081f: JUMPDEST
00000820: SWAP2
00000821: SWAP1
00000822: DUP1
00000823: DUP1
00000824: PUSH1 0x20
00000826: MUL
00000827: PUSH1 0x20
00000829: ADD
0000082a: PUSH1 0x40
0000082c: MLOAD
0000082d: SWAP1
0000082e: DUP2
0000082f: ADD
00000830: PUSH1 0x40
00000832: MSTORE
00000833: DUP1
00000834: SWAP4
00000835: SWAP3
00000836: SWAP2
00000837: SWAP1
00000838: DUP2
00000839: DUP2
0000083a: MSTORE
0000083b: PUSH1 0x20
0000083d: ADD
0000083e: DUP4
0000083f: DUP4
00000840: PUSH1 0x20
00000842: MUL
00000843: DUP1
00000844: DUP3
00000845: DUP5
00000846: CALLDATACOPY
00000847: PUSH1 0x00
00000849: SWAP3
0000084a: ADD
0000084b: SWAP2
0000084c: SWAP1
0000084d: SWAP2
0000084e: MSTORE
0000084f: POP
00000850: SWAP3
00000851: SWAP6
00000852: POP
00000853: PUSH2 0x1bf7
00000856: SWAP5
00000857: POP
00000858: POP
00000859: POP
0000085a: POP
0000085b: POP
0000085c: JUMP
0000085d: JUMPDEST
0000085e: CALLVALUE
0000085f: DUP1
00000860: ISZERO
00000861: PUSH2 0x0869
00000864: JUMPI
00000865: PUSH1 0x00
00000867: DUP1
00000868: REVERT
00000869: JUMPDEST
0000086a: POP
0000086b: PUSH2 0x02d1
0000086e: PUSH1 0x04
00000870: DUP1
00000871: CALLDATASIZE
00000872: SUB
00000873: PUSH1 0x20
00000875: DUP2
00000876: LT
00000877: ISZERO
00000878: PUSH2 0x0880
0000087b: JUMPI
0000087c: PUSH1 0x00
0000087e: DUP1
0000087f: REVERT
00000880: JUMPDEST
00000881: POP
00000882: CALLDATALOAD
00000883: PUSH1 0x01
00000885: PUSH1 0x01
00000887: PUSH1 0xa0
00000889: SHL
0000088a: SUB
0000088b: AND
0000088c: PUSH2 0x1d5e
0000088f: JUMP
00000890: JUMPDEST
00000891: CALLVALUE
00000892: DUP1
00000893: ISZERO
00000894: PUSH2 0x089c
00000897: JUMPI
00000898: PUSH1 0x00
0000089a: DUP1
0000089b: REVERT
0000089c: JUMPDEST
0000089d: POP
0000089e: PUSH2 0x02d1
000008a1: PUSH1 0x04
000008a3: DUP1
000008a4: CALLDATASIZE
000008a5: SUB
000008a6: PUSH1 0x20
000008a8: DUP2
000008a9: LT
000008aa: ISZERO
000008ab: PUSH2 0x08b3
000008ae: JUMPI
000008af: PUSH1 0x00
000008b1: DUP1
000008b2: REVERT
000008b3: JUMPDEST
000008b4: POP
000008b5: CALLDATALOAD
000008b6: PUSH1 0x01
000008b8: PUSH1 0x01
000008ba: PUSH1 0xa0
000008bc: SHL
000008bd: SUB
000008be: AND
000008bf: PUSH2 0x1def
000008c2: JUMP
000008c3: JUMPDEST
000008c4: CALLVALUE
000008c5: DUP1
000008c6: ISZERO
000008c7: PUSH2 0x08cf
000008ca: JUMPI
000008cb: PUSH1 0x00
000008cd: DUP1
000008ce: REVERT
000008cf: JUMPDEST
000008d0: POP
000008d1: PUSH2 0x067a
000008d4: PUSH1 0x04
000008d6: DUP1
000008d7: CALLDATASIZE
000008d8: SUB
000008d9: PUSH1 0x40
000008db: DUP2
000008dc: LT
000008dd: ISZERO
000008de: PUSH2 0x08e6
000008e1: JUMPI
000008e2: PUSH1 0x00
000008e4: DUP1
000008e5: REVERT
000008e6: JUMPDEST
000008e7: POP
000008e8: DUP1
000008e9: CALLDATALOAD
000008ea: PUSH1 0x01
000008ec: PUSH1 0x01
000008ee: PUSH1 0xa0
000008f0: SHL
000008f1: SUB
000008f2: AND
000008f3: SWAP1
000008f4: PUSH1 0x20
000008f6: ADD
000008f7: CALLDATALOAD
000008f8: PUSH1 0xff
000008fa: AND
000008fb: PUSH2 0x1e80
000008fe: JUMP
000008ff: JUMPDEST
00000900: CALLVALUE
00000901: DUP1
00000902: ISZERO
00000903: PUSH2 0x090b
00000906: JUMPI
00000907: PUSH1 0x00
00000909: DUP1
0000090a: REVERT
0000090b: JUMPDEST
0000090c: POP
0000090d: PUSH2 0x0914
00000910: PUSH2 0x1fb6
00000913: JUMP
00000914: JUMPDEST
00000915: PUSH1 0x40
00000917: DUP1
00000918: MLOAD
00000919: PUSH1 0x01
0000091b: PUSH1 0x01
0000091d: PUSH1 0xa0
0000091f: SHL
00000920: SUB
00000921: SWAP1
00000922: SWAP3
00000923: AND
00000924: DUP3
00000925: MSTORE
00000926: MLOAD
00000927: SWAP1
00000928: DUP2
00000929: SWAP1
0000092a: SUB
0000092b: PUSH1 0x20
0000092d: ADD
0000092e: SWAP1
0000092f: RETURN
00000930: JUMPDEST
00000931: CALLVALUE
00000932: DUP1
00000933: ISZERO
00000934: PUSH2 0x093c
00000937: JUMPI
00000938: PUSH1 0x00
0000093a: DUP1
0000093b: REVERT
0000093c: JUMPDEST
0000093d: POP
0000093e: PUSH2 0x0176
00000941: PUSH2 0x1fc5
00000944: JUMP
00000945: JUMPDEST
00000946: CALLVALUE
00000947: DUP1
00000948: ISZERO
00000949: PUSH2 0x0951
0000094c: JUMPI
0000094d: PUSH1 0x00
0000094f: DUP1
00000950: REVERT
00000951: JUMPDEST
00000952: POP
00000953: PUSH2 0x02d1
00000956: PUSH1 0x04
00000958: DUP1
00000959: CALLDATASIZE
0000095a: SUB
0000095b: PUSH1 0x40
0000095d: DUP2
0000095e: LT
0000095f: ISZERO
00000960: PUSH2 0x0968
00000963: JUMPI
00000964: PUSH1 0x00
00000966: DUP1
00000967: REVERT
00000968: JUMPDEST
00000969: POP
0000096a: DUP1
0000096b: CALLDATALOAD
0000096c: PUSH1 0x01
0000096e: PUSH1 0x01
00000970: PUSH1 0xa0
00000972: SHL
00000973: SUB
00000974: AND
00000975: SWAP1
00000976: PUSH1 0x20
00000978: ADD
00000979: CALLDATALOAD
0000097a: PUSH2 0xffff
0000097d: AND
0000097e: PUSH2 0x1fd6
00000981: JUMP
00000982: JUMPDEST
00000983: PUSH2 0x02d1
00000986: PUSH1 0x04
00000988: DUP1
00000989: CALLDATASIZE
0000098a: SUB
0000098b: PUSH1 0xe0
0000098d: DUP2
0000098e: LT
0000098f: ISZERO
00000990: PUSH2 0x0998
00000993: JUMPI
00000994: PUSH1 0x00
00000996: DUP1
00000997: REVERT
00000998: JUMPDEST
00000999: PUSH1 0x01
0000099b: PUSH1 0x01
0000099d: PUSH1 0xa0
0000099f: SHL
000009a0: SUB
000009a1: DUP3
000009a2: CALLDATALOAD
000009a3: DUP2
000009a4: AND
000009a5: SWAP3
000009a6: PUSH2 0xffff
000009a9: PUSH1 0x20
000009ab: DUP3
000009ac: ADD
000009ad: CALLDATALOAD
000009ae: AND
000009af: SWAP3
000009b0: PUSH1 0x01
000009b2: PUSH1 0x01
000009b4: PUSH1 0x40
000009b6: SHL
000009b7: SUB
000009b8: PUSH1 0x40
000009ba: DUP4
000009bb: ADD
000009bc: CALLDATALOAD
000009bd: AND
000009be: SWAP3
000009bf: PUSH4 0xffffffff
000009c4: PUSH1 0x60
000009c6: DUP5
000009c7: ADD
000009c8: CALLDATALOAD
000009c9: AND
000009ca: SWAP3
000009cb: PUSH1 0x80
000009cd: DUP2
000009ce: ADD
000009cf: CALLDATALOAD
000009d0: SWAP1
000009d1: SWAP2
000009d2: AND
000009d3: SWAP2
000009d4: DUP2
000009d5: ADD
000009d6: SWAP1
000009d7: PUSH1 0xc0
000009d9: DUP2
000009da: ADD
000009db: PUSH1 0xa0
000009dd: DUP3
000009de: ADD
000009df: CALLDATALOAD
000009e0: PUSH1 0x01
000009e2: PUSH1 0x20
000009e4: SHL
000009e5: DUP2
000009e6: GT
000009e7: ISZERO
000009e8: PUSH2 0x09f0
000009eb: JUMPI
000009ec: PUSH1 0x00
000009ee: DUP1
000009ef: REVERT
000009f0: JUMPDEST
000009f1: DUP3
000009f2: ADD
000009f3: DUP4
000009f4: PUSH1 0x20
000009f6: DUP3
000009f7: ADD
000009f8: GT
000009f9: ISZERO
000009fa: PUSH2 0x0a02
000009fd: JUMPI
000009fe: PUSH1 0x00
00000a00: DUP1
00000a01: REVERT
00000a02: JUMPDEST
00000a03: DUP1
00000a04: CALLDATALOAD
00000a05: SWAP1
00000a06: PUSH1 0x20
00000a08: ADD
00000a09: SWAP2
00000a0a: DUP5
00000a0b: PUSH1 0x01
00000a0d: DUP4
00000a0e: MUL
00000a0f: DUP5
00000a10: ADD
00000a11: GT
00000a12: PUSH1 0x01
00000a14: PUSH1 0x20
00000a16: SHL
00000a17: DUP4
00000a18: GT
00000a19: OR
00000a1a: ISZERO
00000a1b: PUSH2 0x0a23
00000a1e: JUMPI
00000a1f: PUSH1 0x00
00000a21: DUP1
00000a22: REVERT
00000a23: JUMPDEST
00000a24: SWAP2
00000a25: SWAP1
00000a26: DUP1
00000a27: DUP1
00000a28: PUSH1 0x1f
00000a2a: ADD
00000a2b: PUSH1 0x20
00000a2d: DUP1
00000a2e: SWAP2
00000a2f: DIV
00000a30: MUL
00000a31: PUSH1 0x20
00000a33: ADD
00000a34: PUSH1 0x40
00000a36: MLOAD
00000a37: SWAP1
00000a38: DUP2
00000a39: ADD
00000a3a: PUSH1 0x40
00000a3c: MSTORE
00000a3d: DUP1
00000a3e: SWAP4
00000a3f: SWAP3
00000a40: SWAP2
00000a41: SWAP1
00000a42: DUP2
00000a43: DUP2
00000a44: MSTORE
00000a45: PUSH1 0x20
00000a47: ADD
00000a48: DUP4
00000a49: DUP4
00000a4a: DUP1
00000a4b: DUP3
00000a4c: DUP5
00000a4d: CALLDATACOPY
00000a4e: PUSH1 0x00
00000a50: SWAP3
00000a51: ADD
00000a52: SWAP2
00000a53: SWAP1
00000a54: SWAP2
00000a55: MSTORE
00000a56: POP
00000a57: SWAP3
00000a58: SWAP6
00000a59: SWAP5
00000a5a: SWAP4
00000a5b: PUSH1 0x20
00000a5d: DUP2
00000a5e: ADD
00000a5f: SWAP4
00000a60: POP
00000a61: CALLDATALOAD
00000a62: SWAP2
00000a63: POP
00000a64: POP
00000a65: PUSH1 0x01
00000a67: PUSH1 0x20
00000a69: SHL
00000a6a: DUP2
00000a6b: GT
00000a6c: ISZERO
00000a6d: PUSH2 0x0a75
00000a70: JUMPI
00000a71: PUSH1 0x00
00000a73: DUP1
00000a74: REVERT
00000a75: JUMPDEST
00000a76: DUP3
00000a77: ADD
00000a78: DUP4
00000a79: PUSH1 0x20
00000a7b: DUP3
00000a7c: ADD
00000a7d: GT
00000a7e: ISZERO
00000a7f: PUSH2 0x0a87
00000a82: JUMPI
00000a83: PUSH1 0x00
00000a85: DUP1
00000a86: REVERT
00000a87: JUMPDEST
00000a88: DUP1
00000a89: CALLDATALOAD
00000a8a: SWAP1
00000a8b: PUSH1 0x20
00000a8d: ADD
00000a8e: SWAP2
00000a8f: DUP5
00000a90: PUSH1 0x01
00000a92: DUP4
00000a93: MUL
00000a94: DUP5
00000a95: ADD
00000a96: GT
00000a97: PUSH1 0x01
00000a99: PUSH1 0x20
00000a9b: SHL
00000a9c: DUP4
00000a9d: GT
00000a9e: OR
00000a9f: ISZERO
00000aa0: PUSH2 0x0aa8
00000aa3: JUMPI
00000aa4: PUSH1 0x00
00000aa6: DUP1
00000aa7: REVERT
00000aa8: JUMPDEST
00000aa9: SWAP2
00000aaa: SWAP1
00000aab: DUP1
00000aac: DUP1
00000aad: PUSH1 0x1f
00000aaf: ADD
00000ab0: PUSH1 0x20
00000ab2: DUP1
00000ab3: SWAP2
00000ab4: DIV
00000ab5: MUL
00000ab6: PUSH1 0x20
00000ab8: ADD
00000ab9: PUSH1 0x40
00000abb: MLOAD
00000abc: SWAP1
00000abd: DUP2
00000abe: ADD
00000abf: PUSH1 0x40
00000ac1: MSTORE
00000ac2: DUP1
00000ac3: SWAP4
00000ac4: SWAP3
00000ac5: SWAP2
00000ac6: SWAP1
00000ac7: DUP2
00000ac8: DUP2
00000ac9: MSTORE
00000aca: PUSH1 0x20
00000acc: ADD
00000acd: DUP4
00000ace: DUP4
00000acf: DUP1
00000ad0: DUP3
00000ad1: DUP5
00000ad2: CALLDATACOPY
00000ad3: PUSH1 0x00
00000ad5: SWAP3
00000ad6: ADD
00000ad7: SWAP2
00000ad8: SWAP1
00000ad9: SWAP2
00000ada: MSTORE
00000adb: POP
00000adc: SWAP3
00000add: SWAP6
00000ade: POP
00000adf: PUSH2 0x233b
00000ae2: SWAP5
00000ae3: POP
00000ae4: POP
00000ae5: POP
00000ae6: POP
00000ae7: POP
00000ae8: JUMP
00000ae9: JUMPDEST
00000aea: CALLVALUE
00000aeb: DUP1
00000aec: ISZERO
00000aed: PUSH2 0x0af5
00000af0: JUMPI
00000af1: PUSH1 0x00
00000af3: DUP1
00000af4: REVERT
00000af5: JUMPDEST
00000af6: POP
00000af7: PUSH2 0x02d1
00000afa: PUSH1 0x04
00000afc: DUP1
00000afd: CALLDATASIZE
00000afe: SUB
00000aff: PUSH1 0x20
00000b01: DUP2
00000b02: LT
00000b03: ISZERO
00000b04: PUSH2 0x0b0c
00000b07: JUMPI
00000b08: PUSH1 0x00
00000b0a: DUP1
00000b0b: REVERT
00000b0c: JUMPDEST
00000b0d: POP
00000b0e: CALLDATALOAD
00000b0f: PUSH1 0x01
00000b11: PUSH1 0x01
00000b13: PUSH1 0xa0
00000b15: SHL
00000b16: SUB
00000b17: AND
00000b18: PUSH2 0x26cc
00000b1b: JUMP
00000b1c: JUMPDEST
00000b1d: CALLVALUE
00000b1e: DUP1
00000b1f: ISZERO
00000b20: PUSH2 0x0b28
00000b23: JUMPI
00000b24: PUSH1 0x00
00000b26: DUP1
00000b27: REVERT
00000b28: JUMPDEST
00000b29: POP
00000b2a: PUSH2 0x0176
00000b2d: PUSH2 0x275d
00000b30: JUMP
00000b31: JUMPDEST
00000b32: CALLVALUE
00000b33: DUP1
00000b34: ISZERO
00000b35: PUSH2 0x0b3d
00000b38: JUMPI
00000b39: PUSH1 0x00
00000b3b: DUP1
00000b3c: REVERT
00000b3d: JUMPDEST
00000b3e: POP
00000b3f: PUSH2 0x02d1
00000b42: PUSH1 0x04
00000b44: DUP1
00000b45: CALLDATASIZE
00000b46: SUB
00000b47: PUSH1 0x20
00000b49: DUP2
00000b4a: LT
00000b4b: ISZERO
00000b4c: PUSH2 0x0b54
00000b4f: JUMPI
00000b50: PUSH1 0x00
00000b52: DUP1
00000b53: REVERT
00000b54: JUMPDEST
00000b55: POP
00000b56: CALLDATALOAD
00000b57: PUSH1 0x01
00000b59: PUSH1 0x01
00000b5b: PUSH1 0xa0
00000b5d: SHL
00000b5e: SUB
00000b5f: AND
00000b60: PUSH2 0x276d
00000b63: JUMP
00000b64: JUMPDEST
00000b65: CALLVALUE
00000b66: DUP1
00000b67: ISZERO
00000b68: PUSH2 0x0b70
00000b6b: JUMPI
00000b6c: PUSH1 0x00
00000b6e: DUP1
00000b6f: REVERT
00000b70: JUMPDEST
00000b71: POP
00000b72: PUSH2 0x06d4
00000b75: PUSH2 0x27c0
00000b78: JUMP
00000b79: JUMPDEST
00000b7a: PUSH1 0x00
00000b7c: PUSH1 0x01
00000b7e: DUP3
00000b7f: PUSH1 0x01
00000b81: DUP2
00000b82: GT
00000b83: ISZERO
00000b84: PUSH2 0x0b89
00000b87: JUMPI
00000b88: INVALID
00000b89: JUMPDEST
00000b8a: GT
00000b8b: ISZERO
00000b8c: PUSH2 0x0bd5
00000b8f: JUMPI
00000b90: PUSH1 0x40
00000b92: DUP1
00000b93: MLOAD
00000b94: PUSH3 0x461bcd
00000b98: PUSH1 0xe5
00000b9a: SHL
00000b9b: DUP2
00000b9c: MSTORE
00000b9d: PUSH1 0x20
00000b9f: PUSH1 0x04
00000ba1: DUP3
00000ba2: ADD
00000ba3: MSTORE
00000ba4: PUSH1 0x16
00000ba6: PUSH1 0x24
00000ba8: DUP3
00000ba9: ADD
00000baa: MSTORE
00000bab: PUSH22 0x496e76616c69642077686974656c6973742074797065
00000bc2: PUSH1 0x50
00000bc4: SHL
00000bc5: PUSH1 0x44
00000bc7: DUP3
00000bc8: ADD
00000bc9: MSTORE
00000bca: SWAP1
00000bcb: MLOAD
00000bcc: SWAP1
00000bcd: DUP2
00000bce: SWAP1
00000bcf: SUB
00000bd0: PUSH1 0x64
00000bd2: ADD
00000bd3: SWAP1
00000bd4: REVERT
00000bd5: JUMPDEST
00000bd6: PUSH1 0x01
00000bd8: PUSH1 0x01
00000bda: PUSH1 0xa0
00000bdc: SHL
00000bdd: SUB
00000bde: DUP4
00000bdf: AND
00000be0: PUSH1 0x00
00000be2: SWAP1
00000be3: DUP2
00000be4: MSTORE
00000be5: PUSH1 0x02
00000be7: PUSH1 0x20
00000be9: DUP2
00000bea: SWAP1
00000beb: MSTORE
00000bec: PUSH1 0x40
00000bee: SWAP1
00000bef: SWAP2
00000bf0: KECCAK256
00000bf1: SLOAD
00000bf2: PUSH1 0x00
00000bf4: NOT
00000bf5: PUSH2 0x0100
00000bf8: PUSH1 0x01
00000bfa: DUP4
00000bfb: AND
00000bfc: ISZERO
00000bfd: MUL
00000bfe: ADD
00000bff: AND
00000c00: DIV
00000c01: PUSH2 0x0c0c
00000c04: JUMPI
00000c05: POP
00000c06: PUSH1 0x00
00000c08: PUSH2 0x0c99
00000c0b: JUMP
00000c0c: JUMPDEST
00000c0d: PUSH1 0x00
00000c0f: DUP3
00000c10: PUSH1 0x01
00000c12: DUP2
00000c13: GT
00000c14: ISZERO
00000c15: PUSH2 0x0c1a
00000c18: JUMPI
00000c19: INVALID
00000c1a: JUMPDEST
00000c1b: PUSH1 0xff
00000c1d: AND
00000c1e: PUSH1 0x02
00000c20: PUSH1 0xff
00000c22: AND
00000c23: EXP
00000c24: PUSH1 0x02
00000c26: PUSH1 0x00
00000c28: DUP7
00000c29: PUSH1 0x01
00000c2b: PUSH1 0x01
00000c2d: PUSH1 0xa0
00000c2f: SHL
00000c30: SUB
00000c31: AND
00000c32: PUSH1 0x01
00000c34: PUSH1 0x01
00000c36: PUSH1 0xa0
00000c38: SHL
00000c39: SUB
00000c3a: AND
00000c3b: DUP2
00000c3c: MSTORE
00000c3d: PUSH1 0x20
00000c3f: ADD
00000c40: SWAP1
00000c41: DUP2
00000c42: MSTORE
00000c43: PUSH1 0x20
00000c45: ADD
00000c46: PUSH1 0x00
00000c48: KECCAK256
00000c49: PUSH1 0x00
00000c4b: DUP2
00000c4c: SLOAD
00000c4d: PUSH1 0x01
00000c4f: DUP2
00000c50: PUSH1 0x01
00000c52: AND
00000c53: ISZERO
00000c54: PUSH2 0x0100
00000c57: MUL
00000c58: SUB
00000c59: AND
00000c5a: PUSH1 0x02
00000c5c: SWAP1
00000c5d: DIV
00000c5e: DUP2
00000c5f: LT
00000c60: PUSH2 0x0c65
00000c63: JUMPI
00000c64: INVALID
00000c65: JUMPDEST
00000c66: DUP2
00000c67: SLOAD
00000c68: PUSH1 0x01
00000c6a: AND
00000c6b: ISZERO
00000c6c: PUSH2 0x0c84
00000c6f: JUMPI
00000c70: SWAP1
00000c71: PUSH1 0x00
00000c73: MSTORE
00000c74: PUSH1 0x20
00000c76: PUSH1 0x00
00000c78: KECCAK256
00000c79: SWAP1
00000c7a: PUSH1 0x20
00000c7c: SWAP2
00000c7d: DUP3
00000c7e: DUP3
00000c7f: DIV
00000c80: ADD
00000c81: SWAP2
00000c82: SWAP1
00000c83: MOD
00000c84: JUMPDEST
00000c85: SWAP1
00000c86: SLOAD
00000c87: SWAP1
00000c88: BYTE
00000c89: PUSH1 0x01
00000c8b: PUSH1 0xf8
00000c8d: SHL
00000c8e: MUL
00000c8f: PUSH1 0xf8
00000c91: SHR
00000c92: AND
00000c93: PUSH1 0xff
00000c95: AND
00000c96: GT
00000c97: SWAP1
00000c98: POP
00000c99: JUMPDEST
00000c9a: SWAP3
00000c9b: SWAP2
00000c9c: POP
00000c9d: POP
00000c9e: JUMP
00000c9f: JUMPDEST
00000ca0: PUSH2 0x0cac
00000ca3: PUSH1 0x00
00000ca5: DUP5
00000ca6: DUP5
00000ca7: DUP5
00000ca8: PUSH2 0x287d
00000cab: JUMP
00000cac: JUMPDEST
00000cad: PUSH2 0x0ce7
00000cb0: JUMPI
00000cb1: PUSH1 0x40
00000cb3: MLOAD
00000cb4: PUSH3 0x461bcd
00000cb8: PUSH1 0xe5
00000cba: SHL
00000cbb: DUP2
00000cbc: MSTORE
00000cbd: PUSH1 0x04
00000cbf: ADD
00000cc0: DUP1
00000cc1: DUP1
00000cc2: PUSH1 0x20
00000cc4: ADD
00000cc5: DUP3
00000cc6: DUP2
00000cc7: SUB
00000cc8: DUP3
00000cc9: MSTORE
00000cca: PUSH1 0x21
00000ccc: DUP2
00000ccd: MSTORE
00000cce: PUSH1 0x20
00000cd0: ADD
00000cd1: DUP1
00000cd2: PUSH2 0x43ca
00000cd5: PUSH1 0x21
00000cd7: SWAP2
00000cd8: CODECOPY
00000cd9: PUSH1 0x40
00000cdb: ADD
00000cdc: SWAP2
00000cdd: POP
00000cde: POP
00000cdf: PUSH1 0x40
00000ce1: MLOAD
00000ce2: DUP1
00000ce3: SWAP2
00000ce4: SUB
00000ce5: SWAP1
00000ce6: REVERT
00000ce7: JUMPDEST
00000ce8: PUSH1 0x00
00000cea: PUSH1 0x63
00000cec: DUP5
00000ced: MLOAD
00000cee: DUP2
00000cef: PUSH2 0x0cf4
00000cf2: JUMPI
00000cf3: INVALID
00000cf4: JUMPDEST
00000cf5: DIV
00000cf6: SWAP1
00000cf7: POP
00000cf8: PUSH1 0x00
00000cfa: JUMPDEST
00000cfb: DUP2
00000cfc: DUP2
00000cfd: PUSH2 0xffff
00000d00: AND
00000d01: LT
00000d02: ISZERO
00000d03: PUSH2 0x0f45
00000d06: JUMPI
00000d07: PUSH2 0xffff
00000d0a: PUSH1 0x63
00000d0c: DUP3
00000d0d: MUL
00000d0e: AND
00000d0f: PUSH1 0x00
00000d11: DUP1
00000d12: DUP1
00000d13: PUSH2 0x0d1d
00000d16: DUP10
00000d17: DUP3
00000d18: DUP7
00000d19: PUSH2 0x296c
00000d1c: JUMP
00000d1d: JUMPDEST
00000d1e: DUP12
00000d1f: DUP8
00000d20: ADD
00000d21: PUSH1 0x22
00000d23: ADD
00000d24: MLOAD
00000d25: SWAP3
00000d26: SWAP6
00000d27: POP
00000d28: SWAP1
00000d29: SWAP4
00000d2a: POP
00000d2b: SWAP2
00000d2c: POP
00000d2d: PUSH2 0x0d37
00000d30: DUP11
00000d31: DUP7
00000d32: DUP4
00000d33: PUSH2 0x2990
00000d36: JUMP
00000d37: JUMPDEST
00000d38: PUSH2 0x0d88
00000d3b: JUMPI
00000d3c: PUSH1 0x40
00000d3e: DUP1
00000d3f: MLOAD
00000d40: PUSH3 0x461bcd
00000d44: PUSH1 0xe5
00000d46: SHL
00000d47: DUP2
00000d48: MSTORE
00000d49: PUSH1 0x20
00000d4b: PUSH1 0x04
00000d4d: DUP3
00000d4e: ADD
00000d4f: MSTORE
00000d50: PUSH1 0x19
00000d52: PUSH1 0x24
00000d54: DUP3
00000d55: ADD
00000d56: MSTORE
00000d57: PUSH32 0x55736572207369676e617475726520697320696e76616c696400000000000000
00000d78: PUSH1 0x44
00000d7a: DUP3
00000d7b: ADD
00000d7c: MSTORE
00000d7d: SWAP1
00000d7e: MLOAD
00000d7f: SWAP1
00000d80: DUP2
00000d81: SWAP1
00000d82: SUB
00000d83: PUSH1 0x64
00000d85: ADD
00000d86: SWAP1
00000d87: REVERT
00000d88: JUMPDEST
00000d89: PUSH2 0x0d90
00000d8c: PUSH2 0x4035
00000d8f: JUMP
00000d90: JUMPDEST
00000d91: PUSH2 0x0d9a
00000d94: DUP3
00000d95: DUP7
00000d96: PUSH2 0x2ad2
00000d99: JUMP
00000d9a: JUMPDEST
00000d9b: DUP1
00000d9c: MLOAD
00000d9d: PUSH2 0xffff
00000da0: DUP8
00000da1: AND
00000da2: PUSH1 0x00
00000da4: SWAP1
00000da5: DUP2
00000da6: MSTORE
00000da7: PUSH1 0x05
00000da9: PUSH1 0x20
00000dab: MSTORE
00000dac: PUSH1 0x40
00000dae: SWAP1
00000daf: KECCAK256
00000db0: SLOAD
00000db1: SWAP2
00000db2: SWAP3
00000db3: POP
00000db4: PUSH1 0x01
00000db6: PUSH1 0x01
00000db8: PUSH1 0x40
00000dba: SHL
00000dbb: SUB
00000dbc: SWAP1
00000dbd: DUP2
00000dbe: AND
00000dbf: DUP7
00000dc0: DUP3
00000dc1: AND
00000dc2: SUB
00000dc3: SWAP2
00000dc4: AND
00000dc5: PUSH1 0x08
00000dc7: DUP3
00000dc8: SWAP1
00000dc9: SIGNEXTEND
00000dca: SGT
00000dcb: ISZERO
00000dcc: PUSH2 0x0e1c
00000dcf: JUMPI
00000dd0: PUSH1 0x40
00000dd2: DUP1
00000dd3: MLOAD
00000dd4: PUSH3 0x461bcd
00000dd8: PUSH1 0xe5
00000dda: SHL
00000ddb: DUP2
00000ddc: MSTORE
00000ddd: PUSH1 0x20
00000ddf: PUSH1 0x04
00000de1: DUP3
00000de2: ADD
00000de3: MSTORE
00000de4: PUSH1 0x19
00000de6: PUSH1 0x24
00000de8: DUP3
00000de9: ADD
00000dea: MSTORE
00000deb: PUSH32 0x496e73756666696369656e74207661756c742062756666657200000000000000
00000e0c: PUSH1 0x44
00000e0e: DUP3
00000e0f: ADD
00000e10: MSTORE
00000e11: SWAP1
00000e12: MLOAD
00000e13: SWAP1
00000e14: DUP2
00000e15: SWAP1
00000e16: SUB
00000e17: PUSH1 0x64
00000e19: ADD
00000e1a: SWAP1
00000e1b: REVERT
00000e1c: JUMPDEST
00000e1d: DUP2
00000e1e: PUSH1 0x20
00000e20: ADD
00000e21: MLOAD
00000e22: PUSH4 0xffffffff
00000e27: AND
00000e28: DUP5
00000e29: PUSH4 0xffffffff
00000e2e: AND
00000e2f: GT
00000e30: PUSH2 0x0e6a
00000e33: JUMPI
00000e34: PUSH1 0x40
00000e36: MLOAD
00000e37: PUSH3 0x461bcd
00000e3b: PUSH1 0xe5
00000e3d: SHL
00000e3e: DUP2
00000e3f: MSTORE
00000e40: PUSH1 0x04
00000e42: ADD
00000e43: DUP1
00000e44: DUP1
00000e45: PUSH1 0x20
00000e47: ADD
00000e48: DUP3
00000e49: DUP2
00000e4a: SUB
00000e4b: DUP3
00000e4c: MSTORE
00000e4d: PUSH1 0x35
00000e4f: DUP2
00000e50: MSTORE
00000e51: PUSH1 0x20
00000e53: ADD
00000e54: DUP1
00000e55: PUSH2 0x4268
00000e58: PUSH1 0x35
00000e5a: SWAP2
00000e5b: CODECOPY
00000e5c: PUSH1 0x40
00000e5e: ADD
00000e5f: SWAP2
00000e60: POP
00000e61: POP
00000e62: PUSH1 0x40
00000e64: MLOAD
00000e65: DUP1
00000e66: SWAP2
00000e67: SUB
00000e68: SWAP1
00000e69: REVERT
00000e6a: JUMPDEST
00000e6b: PUSH1 0x00
00000e6d: SLOAD
00000e6e: PUSH2 0xffff
00000e71: PUSH1 0x01
00000e73: PUSH1 0xb8
00000e75: SHL
00000e76: SWAP1
00000e77: SWAP2
00000e78: DIV
00000e79: DUP2
00000e7a: AND
00000e7b: SWAP1
00000e7c: DUP8
00000e7d: AND
00000e7e: LT
00000e7f: PUSH2 0x0ebf
00000e82: JUMPI
00000e83: PUSH1 0x40
00000e85: DUP1
00000e86: MLOAD
00000e87: PUSH3 0x461bcd
00000e8b: PUSH1 0xe5
00000e8d: SHL
00000e8e: DUP2
00000e8f: MSTORE
00000e90: PUSH1 0x20
00000e92: PUSH1 0x04
00000e94: DUP3
00000e95: ADD
00000e96: MSTORE
00000e97: PUSH1 0x0d
00000e99: PUSH1 0x24
00000e9b: DUP3
00000e9c: ADD
00000e9d: MSTORE
00000e9e: PUSH13 0x125b9d985b1a5908185cdcd95d
00000eac: PUSH1 0x9a
00000eae: SHL
00000eaf: PUSH1 0x44
00000eb1: DUP3
00000eb2: ADD
00000eb3: MSTORE
00000eb4: SWAP1
00000eb5: MLOAD
00000eb6: SWAP1
00000eb7: DUP2
00000eb8: SWAP1
00000eb9: SUB
00000eba: PUSH1 0x64
00000ebc: ADD
00000ebd: SWAP1
00000ebe: REVERT
00000ebf: JUMPDEST
00000ec0: PUSH1 0x01
00000ec2: PUSH1 0x01
00000ec4: PUSH1 0x40
00000ec6: SHL
00000ec7: SUB
00000ec8: DUP6
00000ec9: AND
00000eca: DUP3
00000ecb: MSTORE
00000ecc: PUSH4 0xffffffff
00000ed1: DUP5
00000ed2: AND
00000ed3: PUSH1 0x20
00000ed5: DUP4
00000ed6: ADD
00000ed7: MSTORE
00000ed8: PUSH2 0x0ee1
00000edb: DUP4
00000edc: DUP4
00000edd: PUSH2 0x2ca2
00000ee0: JUMP
00000ee1: JUMPDEST
00000ee2: PUSH2 0xffff
00000ee5: SWAP6
00000ee6: SWAP1
00000ee7: SWAP6
00000ee8: AND
00000ee9: PUSH1 0x00
00000eeb: SWAP1
00000eec: DUP2
00000eed: MSTORE
00000eee: PUSH1 0x05
00000ef0: PUSH1 0x20
00000ef2: SWAP1
00000ef3: DUP2
00000ef4: MSTORE
00000ef5: PUSH1 0x40
00000ef7: DUP1
00000ef8: DUP4
00000ef9: KECCAK256
00000efa: DUP1
00000efb: SLOAD
00000efc: PUSH8 0xffffffffffffffff
00000f05: NOT
00000f06: DUP1
00000f07: DUP3
00000f08: AND
00000f09: PUSH1 0x01
00000f0b: PUSH1 0x01
00000f0d: PUSH1 0x40
00000f0f: SHL
00000f10: SUB
00000f11: SWAP3
00000f12: DUP4
00000f13: AND
00000f14: DUP13
00000f15: SWAP1
00000f16: SUB
00000f17: DUP4
00000f18: AND
00000f19: OR
00000f1a: SWAP1
00000f1b: SWAP3
00000f1c: SSTORE
00000f1d: PUSH1 0x04
00000f1f: SWAP1
00000f20: SWAP4
00000f21: MSTORE
00000f22: SWAP3
00000f23: KECCAK256
00000f24: DUP1
00000f25: SLOAD
00000f26: SWAP3
00000f27: DUP4
00000f28: AND
00000f29: SWAP3
00000f2a: DUP3
00000f2b: AND
00000f2c: SWAP1
00000f2d: SWAP8
00000f2e: ADD
00000f2f: AND
00000f30: OR
00000f31: SWAP1
00000f32: SWAP5
00000f33: SSTORE
00000f34: POP
00000f35: POP
00000f36: POP
00000f37: PUSH1 0x01
00000f39: SWAP3
00000f3a: SWAP1
00000f3b: SWAP3
00000f3c: ADD
00000f3d: SWAP2
00000f3e: POP
00000f3f: PUSH2 0x0cfa
00000f42: SWAP1
00000f43: POP
00000f44: JUMP
00000f45: JUMPDEST
00000f46: POP
00000f47: PUSH32 0x87a48f7996cb0768a7ff6b2aa1411875c4e7e13631745f388a62923a617d14ed
00000f68: DUP5
00000f69: PUSH1 0x40
00000f6b: MLOAD
00000f6c: DUP1
00000f6d: DUP1
00000f6e: PUSH1 0x20
00000f70: ADD
00000f71: DUP3
00000f72: DUP2
00000f73: SUB
00000f74: DUP3
00000f75: MSTORE
00000f76: DUP4
00000f77: DUP2
00000f78: DUP2
00000f79: MLOAD
00000f7a: DUP2
00000f7b: MSTORE
00000f7c: PUSH1 0x20
00000f7e: ADD
00000f7f: SWAP2
00000f80: POP
00000f81: DUP1
00000f82: MLOAD
00000f83: SWAP1
00000f84: PUSH1 0x20
00000f86: ADD
00000f87: SWAP1
00000f88: DUP1
00000f89: DUP4
00000f8a: DUP4
00000f8b: PUSH1 0x00
00000f8d: JUMPDEST
00000f8e: DUP4
00000f8f: DUP2
00000f90: LT
00000f91: ISZERO
00000f92: PUSH2 0x0fa5
00000f95: JUMPI
00000f96: DUP2
00000f97: DUP2
00000f98: ADD
00000f99: MLOAD
00000f9a: DUP4
00000f9b: DUP3
00000f9c: ADD
00000f9d: MSTORE
00000f9e: PUSH1 0x20
00000fa0: ADD
00000fa1: PUSH2 0x0f8d
00000fa4: JUMP
00000fa5: JUMPDEST
00000fa6: POP
00000fa7: POP
00000fa8: POP
00000fa9: POP
00000faa: SWAP1
00000fab: POP
00000fac: SWAP1
00000fad: DUP2
00000fae: ADD
00000faf: SWAP1
00000fb0: PUSH1 0x1f
00000fb2: AND
00000fb3: DUP1
00000fb4: ISZERO
00000fb5: PUSH2 0x0fd2
00000fb8: JUMPI
00000fb9: DUP1
00000fba: DUP3
00000fbb: SUB
00000fbc: DUP1
00000fbd: MLOAD
00000fbe: PUSH1 0x01
00000fc0: DUP4
00000fc1: PUSH1 0x20
00000fc3: SUB
00000fc4: PUSH2 0x0100
00000fc7: EXP
00000fc8: SUB
00000fc9: NOT
00000fca: AND
00000fcb: DUP2
00000fcc: MSTORE
00000fcd: PUSH1 0x20
00000fcf: ADD
00000fd0: SWAP2
00000fd1: POP
00000fd2: JUMPDEST
00000fd3: POP
00000fd4: SWAP3
00000fd5: POP
00000fd6: POP
00000fd7: POP
00000fd8: PUSH1 0x40
00000fda: MLOAD
00000fdb: DUP1
00000fdc: SWAP2
00000fdd: SUB
00000fde: SWAP1
00000fdf: LOG1
00000fe0: POP
00000fe1: POP
00000fe2: POP
00000fe3: POP
00000fe4: JUMP
00000fe5: JUMPDEST
00000fe6: PUSH1 0x00
00000fe8: SLOAD
00000fe9: PUSH1 0x01
00000feb: PUSH1 0xa0
00000fed: SHL
00000fee: SWAP1
00000fef: DIV
00000ff0: PUSH1 0xff
00000ff2: AND
00000ff3: ISZERO
00000ff4: PUSH2 0x102e
00000ff7: JUMPI
00000ff8: PUSH1 0x40
00000ffa: MLOAD
00000ffb: PUSH3 0x461bcd
00000fff: PUSH1 0xe5
00001001: SHL
00001002: DUP2
00001003: MSTORE
00001004: PUSH1 0x04
00001006: ADD
00001007: DUP1
00001008: DUP1
00001009: PUSH1 0x20
0000100b: ADD
0000100c: DUP3
0000100d: DUP2
0000100e: SUB
0000100f: DUP3
00001010: MSTORE
00001011: PUSH1 0x32
00001013: DUP2
00001014: MSTORE
00001015: PUSH1 0x20
00001017: ADD
00001018: DUP1
00001019: PUSH2 0x413a
0000101c: PUSH1 0x32
0000101e: SWAP2
0000101f: CODECOPY
00001020: PUSH1 0x40
00001022: ADD
00001023: SWAP2
00001024: POP
00001025: POP
00001026: PUSH1 0x40
00001028: MLOAD
00001029: DUP1
0000102a: SWAP2
0000102b: SUB
0000102c: SWAP1
0000102d: REVERT
0000102e: JUMPDEST
0000102f: PUSH1 0x00
00001031: DUP1
00001032: SLOAD
00001033: PUSH1 0xff
00001035: PUSH1 0xa0
00001037: SHL
00001038: NOT
00001039: AND
0000103a: PUSH1 0x01
0000103c: PUSH1 0xa0
0000103e: SHL
0000103f: OR
00001040: SWAP1
00001041: DUP2
00001042: SWAP1
00001043: SSTORE
00001044: PUSH2 0xffff
00001047: PUSH1 0x01
00001049: PUSH1 0xb8
0000104b: SHL
0000104c: SWAP1
0000104d: SWAP2
0000104e: DIV
0000104f: DUP2
00001050: AND
00001051: SWAP1
00001052: DUP8
00001053: AND
00001054: LT
00001055: PUSH2 0x1095
00001058: JUMPI
00001059: PUSH1 0x40
0000105b: DUP1
0000105c: MLOAD
0000105d: PUSH3 0x461bcd
00001061: PUSH1 0xe5
00001063: SHL
00001064: DUP2
00001065: MSTORE
00001066: PUSH1 0x20
00001068: PUSH1 0x04
0000106a: DUP3
0000106b: ADD
0000106c: MSTORE
0000106d: PUSH1 0x0d
0000106f: PUSH1 0x24
00001071: DUP3
00001072: ADD
00001073: MSTORE
00001074: PUSH13 0x125b9d985b1a5908185cdcd95d
00001082: PUSH1 0x9a
00001084: SHL
00001085: PUSH1 0x44
00001087: DUP3
00001088: ADD
00001089: MSTORE
0000108a: SWAP1
0000108b: MLOAD
0000108c: SWAP1
0000108d: DUP2
0000108e: SWAP1
0000108f: SUB
00001090: PUSH1 0x64
00001092: ADD
00001093: SWAP1
00001094: REVERT
00001095: JUMPDEST
00001096: CALLER
00001097: PUSH1 0x01
00001099: PUSH1 0x01
0000109b: PUSH1 0xa0
0000109d: SHL
0000109e: SUB
0000109f: DUP9
000010a0: AND
000010a1: EQ
000010a2: PUSH2 0x10dc
000010a5: JUMPI
000010a6: PUSH1 0x40
000010a8: MLOAD
000010a9: PUSH3 0x461bcd
000010ad: PUSH1 0xe5
000010af: SHL
000010b0: DUP2
000010b1: MSTORE
000010b2: PUSH1 0x04
000010b4: ADD
000010b5: DUP1
000010b6: DUP1
000010b7: PUSH1 0x20
000010b9: ADD
000010ba: DUP3
000010bb: DUP2
000010bc: SUB
000010bd: DUP3
000010be: MSTORE
000010bf: PUSH1 0x31
000010c1: DUP2
000010c2: MSTORE
000010c3: PUSH1 0x20
000010c5: ADD
000010c6: DUP1
000010c7: PUSH2 0x4207
000010ca: PUSH1 0x31
000010cc: SWAP2
000010cd: CODECOPY
000010ce: PUSH1 0x40
000010d0: ADD
000010d1: SWAP2
000010d2: POP
000010d3: POP
000010d4: PUSH1 0x40
000010d6: MLOAD
000010d7: DUP1
000010d8: SWAP2
000010d9: SUB
000010da: SWAP1
000010db: REVERT
000010dc: JUMPDEST
000010dd: DUP7
000010de: PUSH1 0x01
000010e0: PUSH1 0x01
000010e2: PUSH1 0xa0
000010e4: SHL
000010e5: SUB
000010e6: AND
000010e7: DUP4
000010e8: PUSH1 0x01
000010ea: PUSH1 0x01
000010ec: PUSH1 0xa0
000010ee: SHL
000010ef: SUB
000010f0: AND
000010f1: EQ
000010f2: PUSH2 0x112c
000010f5: JUMPI
000010f6: PUSH1 0x40
000010f8: MLOAD
000010f9: PUSH3 0x461bcd
000010fd: PUSH1 0xe5
000010ff: SHL
00001100: DUP2
00001101: MSTORE
00001102: PUSH1 0x04
00001104: ADD
00001105: DUP1
00001106: DUP1
00001107: PUSH1 0x20
00001109: ADD
0000110a: DUP3
0000110b: DUP2
0000110c: SUB
0000110d: DUP3
0000110e: MSTORE
0000110f: PUSH1 0x31
00001111: DUP2
00001112: MSTORE
00001113: PUSH1 0x20
00001115: ADD
00001116: DUP1
00001117: PUSH2 0x43eb
0000111a: PUSH1 0x31
0000111c: SWAP2
0000111d: CODECOPY
0000111e: PUSH1 0x40
00001120: ADD
00001121: SWAP2
00001122: POP
00001123: POP
00001124: PUSH1 0x40
00001126: MLOAD
00001127: DUP1
00001128: SWAP2
00001129: SUB
0000112a: SWAP1
0000112b: REVERT
0000112c: JUMPDEST
0000112d: PUSH1 0x40
0000112f: DUP1
00001130: MLOAD
00001131: PUSH1 0x01
00001133: PUSH1 0x01
00001135: PUSH1 0x60
00001137: SHL
00001138: SUB
00001139: NOT
0000113a: PUSH1 0x60
0000113c: DUP11
0000113d: SWAP1
0000113e: SHL
0000113f: AND
00001140: PUSH1 0x20
00001142: DUP3
00001143: ADD
00001144: MSTORE
00001145: PUSH1 0x01
00001147: PUSH1 0x01
00001149: PUSH1 0xf0
0000114b: SHL
0000114c: SUB
0000114d: NOT
0000114e: PUSH1 0xf0
00001150: DUP10
00001151: SWAP1
00001152: SHL
00001153: AND
00001154: PUSH1 0x34
00001156: DUP3
00001157: ADD
00001158: MSTORE
00001159: PUSH1 0x01
0000115b: PUSH1 0x01
0000115d: PUSH1 0xc0
0000115f: SHL
00001160: SUB
00001161: NOT
00001162: PUSH1 0xc0
00001164: DUP9
00001165: SWAP1
00001166: SHL
00001167: AND
00001168: PUSH1 0x36
0000116a: DUP3
0000116b: ADD
0000116c: MSTORE
0000116d: PUSH1 0x01
0000116f: PUSH1 0x01
00001171: PUSH1 0xe0
00001173: SHL
00001174: SUB
00001175: NOT
00001176: PUSH1 0xe0
00001178: DUP8
00001179: SWAP1
0000117a: SHL
0000117b: AND
0000117c: PUSH1 0x3e
0000117e: DUP3
0000117f: ADD
00001180: MSTORE
00001181: DUP2
00001182: MLOAD
00001183: PUSH1 0x22
00001185: DUP2
00001186: DUP4
00001187: SUB
00001188: ADD
00001189: DUP2
0000118a: MSTORE
0000118b: PUSH1 0x42
0000118d: SWAP1
0000118e: SWAP2
0000118f: ADD
00001190: SWAP1
00001191: SWAP2
00001192: MSTORE
00001193: PUSH2 0x11a1
00001196: SWAP1
00001197: PUSH1 0x03
00001199: SWAP1
0000119a: DUP6
0000119b: DUP6
0000119c: DUP6
0000119d: PUSH2 0x2fdb
000011a0: JUMP
000011a1: JUMPDEST
000011a2: PUSH2 0x11e6
000011a5: JUMPI
000011a6: PUSH1 0x40
000011a8: DUP1
000011a9: MLOAD
000011aa: PUSH3 0x461bcd
000011ae: PUSH1 0xe5
000011b0: SHL
000011b1: DUP2
000011b2: MSTORE
000011b3: PUSH1 0x20
000011b5: PUSH1 0x04
000011b7: DUP3
000011b8: ADD
000011b9: MSTORE
000011ba: PUSH1 0x11
000011bc: PUSH1 0x24
000011be: DUP3
000011bf: ADD
000011c0: MSTORE
000011c1: PUSH17 0x496e76616c6964207369676e6174757265
000011d3: PUSH1 0x78
000011d5: SHL
000011d6: PUSH1 0x44
000011d8: DUP3
000011d9: ADD
000011da: MSTORE
000011db: SWAP1
000011dc: MLOAD
000011dd: SWAP1
000011de: DUP2
000011df: SWAP1
000011e0: SUB
000011e1: PUSH1 0x64
000011e3: ADD
000011e4: SWAP1
000011e5: REVERT
000011e6: JUMPDEST
000011e7: PUSH2 0x11ee
000011ea: PUSH2 0x4035
000011ed: JUMP
000011ee: JUMPDEST
000011ef: PUSH2 0x11f8
000011f2: DUP9
000011f3: DUP9
000011f4: PUSH2 0x2ad2
000011f7: JUMP
000011f8: JUMPDEST
000011f9: SWAP1
000011fa: POP
000011fb: DUP1
000011fc: PUSH1 0x20
000011fe: ADD
000011ff: MLOAD
00001200: PUSH4 0xffffffff
00001205: AND
00001206: DUP6
00001207: PUSH4 0xffffffff
0000120c: AND
0000120d: GT
0000120e: PUSH2 0x1248
00001211: JUMPI
00001212: PUSH1 0x40
00001214: MLOAD
00001215: PUSH3 0x461bcd
00001219: PUSH1 0xe5
0000121b: SHL
0000121c: DUP2
0000121d: MSTORE
0000121e: PUSH1 0x04
00001220: ADD
00001221: DUP1
00001222: DUP1
00001223: PUSH1 0x20
00001225: ADD
00001226: DUP3
00001227: DUP2
00001228: SUB
00001229: DUP3
0000122a: MSTORE
0000122b: PUSH1 0x27
0000122d: DUP2
0000122e: MSTORE
0000122f: PUSH1 0x20
00001231: ADD
00001232: DUP1
00001233: PUSH2 0x43a3
00001236: PUSH1 0x27
00001238: SWAP2
00001239: CODECOPY
0000123a: PUSH1 0x40
0000123c: ADD
0000123d: SWAP2
0000123e: POP
0000123f: POP
00001240: PUSH1 0x40
00001242: MLOAD
00001243: DUP1
00001244: SWAP2
00001245: SUB
00001246: SWAP1
00001247: REVERT
00001248: JUMPDEST
00001249: DUP1
0000124a: MLOAD
0000124b: PUSH1 0x01
0000124d: PUSH1 0x01
0000124f: PUSH1 0x40
00001251: SHL
00001252: SUB
00001253: DUP1
00001254: DUP9
00001255: AND
00001256: SWAP2
00001257: AND
00001258: LT
00001259: ISZERO
0000125a: PUSH2 0x129f
0000125d: JUMPI
0000125e: PUSH1 0x40
00001260: DUP1
00001261: MLOAD
00001262: PUSH3 0x461bcd
00001266: PUSH1 0xe5
00001268: SHL
00001269: DUP2
0000126a: MSTORE
0000126b: PUSH1 0x20
0000126d: PUSH1 0x04
0000126f: DUP3
00001270: ADD
00001271: MSTORE
00001272: PUSH1 0x12
00001274: PUSH1 0x24
00001276: DUP3
00001277: ADD
00001278: MSTORE
00001279: PUSH18 0x496e73756666696369656e742066756e6473
0000128c: PUSH1 0x70
0000128e: SHL
0000128f: PUSH1 0x44
00001291: DUP3
00001292: ADD
00001293: MSTORE
00001294: SWAP1
00001295: MLOAD
00001296: SWAP1
00001297: DUP2
00001298: SWAP1
00001299: SUB
0000129a: PUSH1 0x64
0000129c: ADD
0000129d: SWAP1
0000129e: REVERT
0000129f: JUMPDEST
000012a0: PUSH2 0xffff
000012a3: DUP8
000012a4: AND
000012a5: PUSH1 0x00
000012a7: SWAP1
000012a8: DUP2
000012a9: MSTORE
000012aa: PUSH1 0x04
000012ac: PUSH1 0x20
000012ae: SWAP1
000012af: DUP2
000012b0: MSTORE
000012b1: PUSH1 0x40
000012b3: SWAP1
000012b4: SWAP2
000012b5: KECCAK256
000012b6: DUP1
000012b7: SLOAD
000012b8: PUSH8 0xffffffffffffffff
000012c1: NOT
000012c2: DUP2
000012c3: AND
000012c4: PUSH1 0x01
000012c6: PUSH1 0x01
000012c8: PUSH1 0x40
000012ca: SHL
000012cb: SUB
000012cc: SWAP2
000012cd: DUP3
000012ce: AND
000012cf: DUP11
000012d0: SWAP1
000012d1: SUB
000012d2: DUP3
000012d3: AND
000012d4: OR
000012d5: SWAP1
000012d6: SWAP2
000012d7: SSTORE
000012d8: PUSH4 0xffffffff
000012dd: DUP8
000012de: AND
000012df: SWAP2
000012e0: DUP4
000012e1: ADD
000012e2: SWAP2
000012e3: SWAP1
000012e4: SWAP2
000012e5: MSTORE
000012e6: DUP2
000012e7: MLOAD
000012e8: DUP8
000012e9: SWAP1
000012ea: SUB
000012eb: AND
000012ec: DUP2
000012ed: MSTORE
000012ee: PUSH2 0x12f7
000012f1: DUP9
000012f2: DUP3
000012f3: PUSH2 0x2ca2
000012f6: JUMP
000012f7: JUMPDEST
000012f8: PUSH2 0x1302
000012fb: DUP9
000012fc: DUP9
000012fd: DUP9
000012fe: PUSH2 0x307e
00001301: JUMP
00001302: JUMPDEST
00001303: PUSH32 0x1e7f91273d70e85b3418ba15a115fd91715dc834a212c47ebe55745f18b3e0a8
00001324: DUP9
00001325: DUP9
00001326: DUP9
00001327: DUP9
00001328: DUP9
00001329: DUP9
0000132a: DUP9
0000132b: PUSH1 0x40
0000132d: MLOAD
0000132e: DUP1
0000132f: DUP9
00001330: PUSH1 0x01
00001332: PUSH1 0x01
00001334: PUSH1 0xa0
00001336: SHL
00001337: SUB
00001338: AND
00001339: PUSH1 0x01
0000133b: PUSH1 0x01
0000133d: PUSH1 0xa0
0000133f: SHL
00001340: SUB
00001341: AND
00001342: DUP2
00001343: MSTORE
00001344: PUSH1 0x20
00001346: ADD
00001347: DUP8
00001348: PUSH2 0xffff
0000134b: AND
0000134c: PUSH2 0xffff
0000134f: AND
00001350: DUP2
00001351: MSTORE
00001352: PUSH1 0x20
00001354: ADD
00001355: DUP7
00001356: PUSH1 0x01
00001358: PUSH1 0x01
0000135a: PUSH1 0x40
0000135c: SHL
0000135d: SUB
0000135e: AND
0000135f: PUSH1 0x01
00001361: PUSH1 0x01
00001363: PUSH1 0x40
00001365: SHL
00001366: SUB
00001367: AND
00001368: DUP2
00001369: MSTORE
0000136a: PUSH1 0x20
0000136c: ADD
0000136d: DUP6
0000136e: PUSH4 0xffffffff
00001373: AND
00001374: PUSH4 0xffffffff
00001379: AND
0000137a: DUP2
0000137b: MSTORE
0000137c: PUSH1 0x20
0000137e: ADD
0000137f: DUP5
00001380: PUSH1 0x01
00001382: PUSH1 0x01
00001384: PUSH1 0xa0
00001386: SHL
00001387: SUB
00001388: AND
00001389: PUSH1 0x01
0000138b: PUSH1 0x01
0000138d: PUSH1 0xa0
0000138f: SHL
00001390: SUB
00001391: AND
00001392: DUP2
00001393: MSTORE
00001394: PUSH1 0x20
00001396: ADD
00001397: DUP1
00001398: PUSH1 0x20
0000139a: ADD
0000139b: DUP1
0000139c: PUSH1 0x20
0000139e: ADD
0000139f: DUP4
000013a0: DUP2
000013a1: SUB
000013a2: DUP4
000013a3: MSTORE
000013a4: DUP6
000013a5: DUP2
000013a6: DUP2
000013a7: MLOAD
000013a8: DUP2
000013a9: MSTORE
000013aa: PUSH1 0x20
000013ac: ADD
000013ad: SWAP2
000013ae: POP
000013af: DUP1
000013b0: MLOAD
000013b1: SWAP1
000013b2: PUSH1 0x20
000013b4: ADD
000013b5: SWAP1
000013b6: DUP1
000013b7: DUP4
000013b8: DUP4
000013b9: PUSH1 0x00
000013bb: JUMPDEST
000013bc: DUP4
000013bd: DUP2
000013be: LT
000013bf: ISZERO
000013c0: PUSH2 0x13d3
000013c3: JUMPI
000013c4: DUP2
000013c5: DUP2
000013c6: ADD
000013c7: MLOAD
000013c8: DUP4
000013c9: DUP3
000013ca: ADD
000013cb: MSTORE
000013cc: PUSH1 0x20
000013ce: ADD
000013cf: PUSH2 0x13bb
000013d2: JUMP
000013d3: JUMPDEST
000013d4: POP
000013d5: POP
000013d6: POP
000013d7: POP
000013d8: SWAP1
000013d9: POP
000013da: SWAP1
000013db: DUP2
000013dc: ADD
000013dd: SWAP1
000013de: PUSH1 0x1f
000013e0: AND
000013e1: DUP1
000013e2: ISZERO
000013e3: PUSH2 0x1400
000013e6: JUMPI
000013e7: DUP1
000013e8: DUP3
000013e9: SUB
000013ea: DUP1
000013eb: MLOAD
000013ec: PUSH1 0x01
000013ee: DUP4
000013ef: PUSH1 0x20
000013f1: SUB
000013f2: PUSH2 0x0100
000013f5: EXP
000013f6: SUB
000013f7: NOT
000013f8: AND
000013f9: DUP2
000013fa: MSTORE
000013fb: PUSH1 0x20
000013fd: ADD
000013fe: SWAP2
000013ff: POP
00001400: JUMPDEST
00001401: POP
00001402: DUP4
00001403: DUP2
00001404: SUB
00001405: DUP3
00001406: MSTORE
00001407: DUP5
00001408: MLOAD
00001409: DUP2
0000140a: MSTORE
0000140b: DUP5
0000140c: MLOAD
0000140d: PUSH1 0x20
0000140f: SWAP2
00001410: DUP3
00001411: ADD
00001412: SWAP2
00001413: DUP7
00001414: ADD
00001415: SWAP1
00001416: DUP1
00001417: DUP4
00001418: DUP4
00001419: PUSH1 0x00
0000141b: JUMPDEST
0000141c: DUP4
0000141d: DUP2
0000141e: LT
0000141f: ISZERO
00001420: PUSH2 0x1433
00001423: JUMPI
00001424: DUP2
00001425: DUP2
00001426: ADD
00001427: MLOAD
00001428: DUP4
00001429: DUP3
0000142a: ADD
0000142b: MSTORE
0000142c: PUSH1 0x20
0000142e: ADD
0000142f: PUSH2 0x141b
00001432: JUMP
00001433: JUMPDEST
00001434: POP
00001435: POP
00001436: POP
00001437: POP
00001438: SWAP1
00001439: POP
0000143a: SWAP1
0000143b: DUP2
0000143c: ADD
0000143d: SWAP1
0000143e: PUSH1 0x1f
00001440: AND
00001441: DUP1
00001442: ISZERO
00001443: PUSH2 0x1460
00001446: JUMPI
00001447: DUP1
00001448: DUP3
00001449: SUB
0000144a: DUP1
0000144b: MLOAD
0000144c: PUSH1 0x01
0000144e: DUP4
0000144f: PUSH1 0x20
00001451: SUB
00001452: PUSH2 0x0100
00001455: EXP
00001456: SUB
00001457: NOT
00001458: AND
00001459: DUP2
0000145a: MSTORE
0000145b: PUSH1 0x20
0000145d: ADD
0000145e: SWAP2
0000145f: POP
00001460: JUMPDEST
00001461: POP
00001462: SWAP10
00001463: POP
00001464: POP
00001465: POP
00001466: POP
00001467: POP
00001468: POP
00001469: POP
0000146a: POP
0000146b: POP
0000146c: POP
0000146d: PUSH1 0x40
0000146f: MLOAD
00001470: DUP1
00001471: SWAP2
00001472: SUB
00001473: SWAP1
00001474: LOG1
00001475: POP
00001476: POP
00001477: PUSH1 0x00
00001479: DUP1
0000147a: SLOAD
0000147b: PUSH1 0xff
0000147d: PUSH1 0xa0
0000147f: SHL
00001480: NOT
00001481: AND
00001482: SWAP1
00001483: SSTORE
00001484: POP
00001485: POP
00001486: POP
00001487: POP
00001488: POP
00001489: POP
0000148a: JUMP
0000148b: JUMPDEST
0000148c: DUP10
0000148d: PUSH1 0x01
0000148f: PUSH1 0x01
00001491: PUSH1 0x40
00001493: SHL
00001494: SUB
00001495: AND
00001496: DUP4
00001497: PUSH1 0x01
00001499: PUSH1 0x01
0000149b: PUSH1 0x40
0000149d: SHL
0000149e: SUB
0000149f: AND
000014a0: GT
000014a1: ISZERO
000014a2: PUSH2 0x14dc
000014a5: JUMPI
000014a6: PUSH1 0x40
000014a8: MLOAD
000014a9: PUSH3 0x461bcd
000014ad: PUSH1 0xe5
000014af: SHL
000014b0: DUP2
000014b1: MSTORE
000014b2: PUSH1 0x04
000014b4: ADD
000014b5: DUP1
000014b6: DUP1
000014b7: PUSH1 0x20
000014b9: ADD
000014ba: DUP3
000014bb: DUP2
000014bc: SUB
000014bd: DUP3
000014be: MSTORE
000014bf: PUSH1 0x22
000014c1: DUP2
000014c2: MSTORE
000014c3: PUSH1 0x20
000014c5: ADD
000014c6: DUP1
000014c7: PUSH2 0x416c
000014ca: PUSH1 0x22
000014cc: SWAP2
000014cd: CODECOPY
000014ce: PUSH1 0x40
000014d0: ADD
000014d1: SWAP2
000014d2: POP
000014d3: POP
000014d4: PUSH1 0x40
000014d6: MLOAD
000014d7: DUP1
000014d8: SWAP2
000014d9: SUB
000014da: SWAP1
000014db: REVERT
000014dc: JUMPDEST
000014dd: DUP9
000014de: MLOAD
000014df: PUSH1 0x01
000014e1: PUSH1 0x01
000014e3: PUSH1 0x40
000014e5: SHL
000014e6: SUB
000014e7: SWAP1
000014e8: DUP2
000014e9: AND
000014ea: SWAP1
000014eb: DUP4
000014ec: AND
000014ed: LT
000014ee: ISZERO
000014ef: PUSH2 0x1529
000014f2: JUMPI
000014f3: PUSH1 0x40
000014f5: MLOAD
000014f6: PUSH3 0x461bcd
000014fa: PUSH1 0xe5
000014fc: SHL
000014fd: DUP2
000014fe: MSTORE
000014ff: PUSH1 0x04
00001501: ADD
00001502: DUP1
00001503: DUP1
00001504: PUSH1 0x20
00001506: ADD
00001507: DUP3
00001508: DUP2
00001509: SUB
0000150a: DUP3
0000150b: MSTORE
0000150c: PUSH1 0x2f
0000150e: DUP2
0000150f: MSTORE
00001510: PUSH1 0x20
00001512: ADD
00001513: DUP1
00001514: PUSH2 0x42ed
00001517: PUSH1 0x2f
00001519: SWAP2
0000151a: CODECOPY
0000151b: PUSH1 0x40
0000151d: ADD
0000151e: SWAP2
0000151f: POP
00001520: POP
00001521: PUSH1 0x40
00001523: MLOAD
00001524: DUP1
00001525: SWAP2
00001526: SUB
00001527: SWAP1
00001528: REVERT
00001529: JUMPDEST
0000152a: DUP9
0000152b: PUSH1 0x01
0000152d: PUSH1 0x20
0000152f: MUL
00001530: ADD
00001531: MLOAD
00001532: PUSH1 0x01
00001534: PUSH1 0x01
00001536: PUSH1 0x40
00001538: SHL
00001539: SUB
0000153a: AND
0000153b: DUP3
0000153c: PUSH1 0x01
0000153e: PUSH1 0x01
00001540: PUSH1 0x40
00001542: SHL
00001543: SUB
00001544: AND
00001545: GT
00001546: ISZERO
00001547: PUSH2 0x1581
0000154a: JUMPI
0000154b: PUSH1 0x40
0000154d: MLOAD
0000154e: PUSH3 0x461bcd
00001552: PUSH1 0xe5
00001554: SHL
00001555: DUP2
00001556: MSTORE
00001557: PUSH1 0x04
00001559: ADD
0000155a: DUP1
0000155b: DUP1
0000155c: PUSH1 0x20
0000155e: ADD
0000155f: DUP3
00001560: DUP2
00001561: SUB
00001562: DUP3
00001563: MSTORE
00001564: PUSH1 0x31
00001566: DUP2
00001567: MSTORE
00001568: PUSH1 0x20
0000156a: ADD
0000156b: DUP1
0000156c: PUSH2 0x441c
0000156f: PUSH1 0x31
00001571: SWAP2
00001572: CODECOPY
00001573: PUSH1 0x40
00001575: ADD
00001576: SWAP2
00001577: POP
00001578: POP
00001579: PUSH1 0x40
0000157b: MLOAD
0000157c: DUP1
0000157d: SWAP2
0000157e: SUB
0000157f: SWAP1
00001580: REVERT
00001581: JUMPDEST
00001582: DUP8
00001583: PUSH1 0x01
00001585: PUSH1 0x01
00001587: PUSH1 0x40
00001589: SHL
0000158a: SUB
0000158b: AND
0000158c: DUP2
0000158d: PUSH1 0x01
0000158f: PUSH1 0x01
00001591: PUSH1 0x40
00001593: SHL
00001594: SUB
00001595: AND
00001596: GT
00001597: ISZERO
00001598: PUSH2 0x15d2
0000159b: JUMPI
0000159c: PUSH1 0x40
0000159e: MLOAD
0000159f: PUSH3 0x461bcd
000015a3: PUSH1 0xe5
000015a5: SHL
000015a6: DUP2
000015a7: MSTORE
000015a8: PUSH1 0x04
000015aa: ADD
000015ab: DUP1
000015ac: DUP1
000015ad: PUSH1 0x20
000015af: ADD
000015b0: DUP3
000015b1: DUP2
000015b2: SUB
000015b3: DUP3
000015b4: MSTORE
000015b5: PUSH1 0x23
000015b7: DUP2
000015b8: MSTORE
000015b9: PUSH1 0x20
000015bb: ADD
000015bc: DUP1
000015bd: PUSH2 0x41e4
000015c0: PUSH1 0x23
000015c2: SWAP2
000015c3: CODECOPY
000015c4: PUSH1 0x40
000015c6: ADD
000015c7: SWAP2
000015c8: POP
000015c9: POP
000015ca: PUSH1 0x40
000015cc: MLOAD
000015cd: DUP1
000015ce: SWAP2
000015cf: SUB
000015d0: SWAP1
000015d1: REVERT
000015d2: JUMPDEST
000015d3: PUSH1 0x60
000015d5: DUP14
000015d6: DUP14
000015d7: PUSH1 0x00
000015d9: PUSH1 0x20
000015db: MUL
000015dc: ADD
000015dd: MLOAD
000015de: DUP15
000015df: PUSH1 0x01
000015e1: PUSH1 0x20
000015e3: MUL
000015e4: ADD
000015e5: MLOAD
000015e6: DUP15
000015e7: PUSH1 0x00
000015e9: PUSH1 0x20
000015eb: MUL
000015ec: ADD
000015ed: MLOAD
000015ee: DUP16
000015ef: PUSH1 0x01
000015f1: PUSH1 0x20
000015f3: SWAP1
000015f4: DUP2
000015f5: MUL
000015f6: SWAP2
000015f7: SWAP1
000015f8: SWAP2
000015f9: ADD
000015fa: MLOAD
000015fb: PUSH1 0x40
000015fd: DUP1
000015fe: MLOAD
000015ff: PUSH1 0x60
00001601: SWAP8
00001602: SWAP1
00001603: SWAP8
00001604: SHL
00001605: PUSH1 0x01
00001607: PUSH1 0x01
00001609: PUSH1 0x60
0000160b: SHL
0000160c: SUB
0000160d: NOT
0000160e: AND
0000160f: DUP8
00001610: DUP5
00001611: ADD
00001612: MSTORE
00001613: PUSH1 0xf0
00001615: SWAP6
00001616: DUP7
00001617: SHL
00001618: PUSH1 0x01
0000161a: PUSH1 0x01
0000161c: PUSH1 0xf0
0000161e: SHL
0000161f: SUB
00001620: NOT
00001621: SWAP1
00001622: DUP2
00001623: AND
00001624: PUSH1 0x34
00001626: DUP10
00001627: ADD
00001628: MSTORE
00001629: SWAP5
0000162a: SWAP1
0000162b: SWAP6
0000162c: SHL
0000162d: SWAP1
0000162e: SWAP4
0000162f: AND
00001630: PUSH1 0x36
00001632: DUP7
00001633: ADD
00001634: MSTORE
00001635: PUSH1 0xe0
00001637: SWAP2
00001638: DUP3
00001639: SHL
0000163a: PUSH1 0x01
0000163c: PUSH1 0x01
0000163e: PUSH1 0xe0
00001640: SHL
00001641: SUB
00001642: NOT
00001643: SWAP1
00001644: DUP2
00001645: AND
00001646: PUSH1 0x38
00001648: DUP8
00001649: ADD
0000164a: MSTORE
0000164b: SWAP3
0000164c: SWAP1
0000164d: SWAP2
0000164e: SHL
0000164f: SWAP1
00001650: SWAP2
00001651: AND
00001652: PUSH1 0x3c
00001654: DUP5
00001655: ADD
00001656: MSTORE
00001657: DUP2
00001658: MLOAD
00001659: DUP1
0000165a: DUP5
0000165b: SUB
0000165c: SWAP1
0000165d: SWAP2
0000165e: ADD
0000165f: DUP2
00001660: MSTORE
00001661: SWAP2
00001662: DUP2
00001663: ADD
00001664: SWAP1
00001665: MSTORE
00001666: SWAP1
00001667: POP
00001668: DUP1
00001669: DUP12
0000166a: DUP12
0000166b: PUSH1 0x00
0000166d: PUSH1 0x20
0000166f: MUL
00001670: ADD
00001671: MLOAD
00001672: DUP13
00001673: PUSH1 0x01
00001675: PUSH1 0x20
00001677: MUL
00001678: ADD
00001679: MLOAD
0000167a: DUP13
0000167b: DUP13
0000167c: PUSH1 0x40
0000167e: MLOAD
0000167f: PUSH1 0x20
00001681: ADD
00001682: DUP1
00001683: DUP8
00001684: DUP1
00001685: MLOAD
00001686: SWAP1
00001687: PUSH1 0x20
00001689: ADD
0000168a: SWAP1
0000168b: DUP1
0000168c: DUP4
0000168d: DUP4
0000168e: JUMPDEST
0000168f: PUSH1 0x20
00001691: DUP4
00001692: LT
00001693: PUSH2 0x16ad
00001696: JUMPI
00001697: DUP1
00001698: MLOAD
00001699: DUP3
0000169a: MSTORE
0000169b: PUSH1 0x1f
0000169d: NOT
0000169e: SWAP1
0000169f: SWAP3
000016a0: ADD
000016a1: SWAP2
000016a2: PUSH1 0x20
000016a4: SWAP2
000016a5: DUP3
000016a6: ADD
000016a7: SWAP2
000016a8: ADD
000016a9: PUSH2 0x168e
000016ac: JUMP
000016ad: JUMPDEST
000016ae: MLOAD
000016af: DUP2
000016b0: MLOAD
000016b1: PUSH1 0x20
000016b3: SWAP4
000016b4: DUP5
000016b5: SUB
000016b6: PUSH2 0x0100
000016b9: EXP
000016ba: PUSH1 0x00
000016bc: NOT
000016bd: ADD
000016be: DUP1
000016bf: NOT
000016c0: SWAP1
000016c1: SWAP3
000016c2: AND
000016c3: SWAP2
000016c4: AND
000016c5: OR
000016c6: SWAP1
000016c7: MSTORE
000016c8: PUSH1 0xc0
000016ca: SWAP10
000016cb: DUP11
000016cc: SHL
000016cd: PUSH1 0x01
000016cf: PUSH1 0x01
000016d1: PUSH1 0xc0
000016d3: SHL
000016d4: SUB
000016d5: NOT
000016d6: SWAP1
000016d7: DUP2
000016d8: AND
000016d9: SWAP3
000016da: SWAP1
000016db: SWAP5
000016dc: ADD
000016dd: SWAP2
000016de: DUP3
000016df: MSTORE
000016e0: SWAP8
000016e1: DUP10
000016e2: SHL
000016e3: DUP4
000016e4: AND
000016e5: PUSH1 0x08
000016e7: DUP3
000016e8: ADD
000016e9: MSTORE
000016ea: SWAP6
000016eb: DUP9
000016ec: SHL
000016ed: DUP3
000016ee: AND
000016ef: PUSH1 0x10
000016f1: DUP8
000016f2: ADD
000016f3: MSTORE
000016f4: POP
000016f5: SWAP3
000016f6: SWAP1
000016f7: SWAP6
000016f8: SHL
000016f9: SWAP1
000016fa: SWAP2
000016fb: AND
000016fc: PUSH1 0x18
000016fe: DUP4
000016ff: ADD
00001700: MSTORE
00001701: PUSH1 0xe0
00001703: SHL
00001704: PUSH1 0x01
00001706: PUSH1 0x01
00001708: PUSH1 0xe0
0000170a: SHL
0000170b: SUB
0000170c: NOT
0000170d: AND
0000170e: SWAP2
0000170f: DUP2
00001710: ADD
00001711: SWAP2
00001712: SWAP1
00001713: SWAP2
00001714: MSTORE
00001715: PUSH1 0x40
00001717: DUP1
00001718: MLOAD
00001719: PUSH1 0x04
0000171b: DUP2
0000171c: DUP5
0000171d: SUB
0000171e: ADD
0000171f: DUP2
00001720: MSTORE
00001721: PUSH1 0x24
00001723: SWAP1
00001724: SWAP3
00001725: ADD
00001726: SWAP1
00001727: MSTORE
00001728: SWAP3
00001729: POP
0000172a: PUSH2 0x173a
0000172d: SWAP2
0000172e: POP
0000172f: DUP3
00001730: SWAP1
00001731: POP
00001732: DUP16
00001733: DUP10
00001734: DUP10
00001735: DUP10
00001736: PUSH2 0x320f
00001739: JUMP
0000173a: JUMPDEST
0000173b: PUSH2 0x1749
0000173e: DUP15
0000173f: DUP15
00001740: DUP15
00001741: DUP8
00001742: DUP8
00001743: DUP8
00001744: DUP15
00001745: PUSH2 0x326a
00001748: JUMP
00001749: JUMPDEST
0000174a: POP
0000174b: POP
0000174c: POP
0000174d: POP
0000174e: POP
0000174f: POP
00001750: POP
00001751: POP
00001752: POP
00001753: POP
00001754: POP
00001755: POP
00001756: POP
00001757: POP
00001758: JUMP
00001759: JUMPDEST
0000175a: PUSH1 0x00
0000175c: SLOAD
0000175d: PUSH1 0x01
0000175f: PUSH1 0xa8
00001761: SHL
00001762: SWAP1
00001763: DIV
00001764: PUSH2 0xffff
00001767: AND
00001768: DUP2
00001769: JUMP
0000176a: JUMPDEST
0000176b: PUSH2 0x1772
0000176e: PUSH2 0x1fc5
00001771: JUMP
00001772: JUMPDEST
00001773: PUSH2 0x17b1
00001776: JUMPI
00001777: PUSH1 0x40
00001779: DUP1
0000177a: MLOAD
0000177b: PUSH3 0x461bcd
0000177f: PUSH1 0xe5
00001781: SHL
00001782: DUP2
00001783: MSTORE
00001784: PUSH1 0x20
00001786: PUSH1 0x04
00001788: DUP3
00001789: ADD
0000178a: DUP2
0000178b: SWAP1
0000178c: MSTORE
0000178d: PUSH1 0x24
0000178f: DUP3
00001790: ADD
00001791: MSTORE
00001792: PUSH1 0x00
00001794: DUP1
00001795: MLOAD
00001796: PUSH1 0x20
00001798: PUSH2 0x434a
0000179b: DUP4
0000179c: CODECOPY
0000179d: DUP2
0000179e: MLOAD
0000179f: SWAP2
000017a0: MSTORE
000017a1: PUSH1 0x44
000017a3: DUP3
000017a4: ADD
000017a5: MSTORE
000017a6: SWAP1
000017a7: MLOAD
000017a8: SWAP1
000017a9: DUP2
000017aa: SWAP1
000017ab: SUB
000017ac: PUSH1 0x64
000017ae: ADD
000017af: SWAP1
000017b0: REVERT
000017b1: JUMPDEST
000017b2: PUSH1 0x00
000017b4: DUP1
000017b5: SLOAD
000017b6: PUSH2 0xffff
000017b9: SWAP1
000017ba: SWAP3
000017bb: AND
000017bc: PUSH1 0x01
000017be: PUSH1 0xa8
000017c0: SHL
000017c1: MUL
000017c2: PUSH2 0xffff
000017c5: PUSH1 0xa8
000017c7: SHL
000017c8: NOT
000017c9: SWAP1
000017ca: SWAP3
000017cb: AND
000017cc: SWAP2
000017cd: SWAP1
000017ce: SWAP2
000017cf: OR
000017d0: SWAP1
000017d1: SSTORE
000017d2: JUMP
000017d3: JUMPDEST
000017d4: PUSH1 0x60
000017d6: DUP1
000017d7: PUSH1 0x00
000017d9: PUSH1 0x17
000017db: SWAP1
000017dc: SLOAD
000017dd: SWAP1
000017de: PUSH2 0x0100
000017e1: EXP
000017e2: SWAP1
000017e3: DIV
000017e4: PUSH2 0xffff
000017e7: AND
000017e8: PUSH2 0xffff
000017eb: AND
000017ec: PUSH1 0x40
000017ee: MLOAD
000017ef: SWAP1
000017f0: DUP1
000017f1: DUP3
000017f2: MSTORE
000017f3: DUP1
000017f4: PUSH1 0x20
000017f6: MUL
000017f7: PUSH1 0x20
000017f9: ADD
000017fa: DUP3
000017fb: ADD
000017fc: PUSH1 0x40
000017fe: MSTORE
000017ff: DUP1
00001800: ISZERO
00001801: PUSH2 0x1814
00001804: JUMPI
00001805: DUP2
00001806: PUSH1 0x20
00001808: ADD
00001809: PUSH1 0x20
0000180b: DUP3
0000180c: MUL
0000180d: DUP1
0000180e: CODESIZE
0000180f: DUP4
00001810: CODECOPY
00001811: ADD
00001812: SWAP1
00001813: POP
00001814: JUMPDEST
00001815: POP
00001816: SWAP1
00001817: POP
00001818: PUSH1 0x00
0000181a: JUMPDEST
0000181b: PUSH1 0x00
0000181d: SLOAD
0000181e: PUSH2 0xffff
00001821: PUSH1 0x01
00001823: PUSH1 0xb8
00001825: SHL
00001826: SWAP1
00001827: SWAP2
00001828: DIV
00001829: DUP2
0000182a: AND
0000182b: SWAP1
0000182c: DUP3
0000182d: AND
0000182e: LT
0000182f: ISZERO
00001830: PUSH2 0x187f
00001833: JUMPI
00001834: PUSH2 0xffff
00001837: DUP2
00001838: AND
00001839: PUSH1 0x00
0000183b: DUP2
0000183c: DUP2
0000183d: MSTORE
0000183e: PUSH1 0x04
00001840: PUSH1 0x20
00001842: MSTORE
00001843: PUSH1 0x40
00001845: SWAP1
00001846: KECCAK256
00001847: SLOAD
00001848: DUP4
00001849: MLOAD
0000184a: PUSH1 0x01
0000184c: PUSH1 0x01
0000184e: PUSH1 0x40
00001850: SHL
00001851: SUB
00001852: SWAP1
00001853: SWAP2
00001854: AND
00001855: SWAP2
00001856: DUP5
00001857: SWAP2
00001858: DUP2
00001859: LT
0000185a: PUSH2 0x185f
0000185d: JUMPI
0000185e: INVALID
0000185f: JUMPDEST
00001860: PUSH1 0x01
00001862: PUSH1 0x01
00001864: PUSH1 0x40
00001866: SHL
00001867: SUB
00001868: SWAP1
00001869: SWAP3
0000186a: AND
0000186b: PUSH1 0x20
0000186d: SWAP3
0000186e: DUP4
0000186f: MUL
00001870: SWAP2
00001871: SWAP1
00001872: SWAP2
00001873: ADD
00001874: SWAP1
00001875: SWAP2
00001876: ADD
00001877: MSTORE
00001878: PUSH1 0x01
0000187a: ADD
0000187b: PUSH2 0x181a
0000187e: JUMP
0000187f: JUMPDEST
00001880: POP
00001881: SWAP1
00001882: POP
00001883: JUMPDEST
00001884: SWAP1
00001885: JUMP
00001886: JUMPDEST
00001887: PUSH1 0x01
00001889: PUSH1 0x01
0000188b: PUSH1 0xa0
0000188d: SHL
0000188e: SUB
0000188f: DUP2
00001890: AND
00001891: CALLER
00001892: EQ
00001893: PUSH2 0x18e3
00001896: JUMPI
00001897: PUSH1 0x40
00001899: DUP1
0000189a: MLOAD
0000189b: PUSH3 0x461bcd
0000189f: PUSH1 0xe5
000018a1: SHL
000018a2: DUP2
000018a3: MSTORE
000018a4: PUSH1 0x20
000018a6: PUSH1 0x04
000018a8: DUP3
000018a9: ADD
000018aa: MSTORE
000018ab: PUSH1 0x1d
000018ad: PUSH1 0x24
000018af: DUP3
000018b0: ADD
000018b1: MSTORE
000018b2: PUSH32 0x4164647265737320646f6573206e6f74206d617463682073656e646572000000
000018d3: PUSH1 0x44
000018d5: DUP3
000018d6: ADD
000018d7: MSTORE
000018d8: SWAP1
000018d9: MLOAD
000018da: SWAP1
000018db: DUP2
000018dc: SWAP1
000018dd: SUB
000018de: PUSH1 0x64
000018e0: ADD
000018e1: SWAP1
000018e2: REVERT
000018e3: JUMPDEST
000018e4: PUSH1 0x40
000018e6: DUP1
000018e7: MLOAD
000018e8: PUSH1 0x01
000018ea: PUSH1 0x01
000018ec: PUSH1 0xd0
000018ee: SHL
000018ef: SUB
000018f0: NOT
000018f1: NUMBER
000018f2: PUSH1 0xd0
000018f4: SHL
000018f5: AND
000018f6: PUSH1 0x20
000018f8: DUP1
000018f9: DUP4
000018fa: ADD
000018fb: SWAP2
000018fc: SWAP1
000018fd: SWAP2
000018fe: MSTORE
000018ff: DUP3
00001900: MLOAD
00001901: DUP1
00001902: DUP4
00001903: SUB
00001904: PUSH1 0x06
00001906: ADD
00001907: DUP2
00001908: MSTORE
00001909: PUSH1 0x26
0000190b: SWAP1
0000190c: SWAP3
0000190d: ADD
0000190e: DUP4
0000190f: MSTORE
00001910: PUSH1 0x01
00001912: PUSH1 0x01
00001914: PUSH1 0xa0
00001916: SHL
00001917: SUB
00001918: DUP5
00001919: AND
0000191a: PUSH1 0x00
0000191c: SWAP1
0000191d: DUP2
0000191e: MSTORE
0000191f: PUSH1 0x02
00001921: SWAP2
00001922: DUP3
00001923: SWAP1
00001924: MSTORE
00001925: SWAP3
00001926: SWAP1
00001927: SWAP3
00001928: KECCAK256
00001929: SLOAD
0000192a: SWAP1
0000192b: SWAP2
0000192c: PUSH1 0x07
0000192e: PUSH1 0x00
00001930: NOT
00001931: PUSH2 0x0100
00001934: PUSH1 0x01
00001936: DUP6
00001937: AND
00001938: ISZERO
00001939: MUL
0000193a: ADD
0000193b: SWAP1
0000193c: SWAP3
0000193d: AND
0000193e: DIV
0000193f: LT
00001940: ISZERO
00001941: PUSH2 0x19e4
00001944: JUMPI
00001945: PUSH1 0x01
00001947: PUSH1 0x01
00001949: PUSH1 0xa0
0000194b: SHL
0000194c: SUB
0000194d: DUP3
0000194e: AND
0000194f: PUSH1 0x00
00001951: SWAP1
00001952: DUP2
00001953: MSTORE
00001954: PUSH1 0x02
00001956: PUSH1 0x20
00001958: DUP2
00001959: SWAP1
0000195a: MSTORE
0000195b: PUSH1 0x40
0000195d: SWAP1
0000195e: SWAP2
0000195f: KECCAK256
00001960: SLOAD
00001961: PUSH1 0x00
00001963: NOT
00001964: PUSH2 0x0100
00001967: PUSH1 0x01
00001969: DUP4
0000196a: AND
0000196b: ISZERO
0000196c: MUL
0000196d: ADD
0000196e: AND
0000196f: DIV
00001970: PUSH2 0x19bd
00001973: JUMPI
00001974: PUSH1 0x02
00001976: PUSH1 0x00
00001978: DUP4
00001979: PUSH1 0x01
0000197b: PUSH1 0x01
0000197d: PUSH1 0xa0
0000197f: SHL
00001980: SUB
00001981: AND
00001982: PUSH1 0x01
00001984: PUSH1 0x01
00001986: PUSH1 0xa0
00001988: SHL
00001989: SUB
0000198a: AND
0000198b: DUP2
0000198c: MSTORE
0000198d: PUSH1 0x20
0000198f: ADD
00001990: SWAP1
00001991: DUP2
00001992: MSTORE
00001993: PUSH1 0x20
00001995: ADD
00001996: PUSH1 0x00
00001998: KECCAK256
00001999: DUP1
0000199a: SLOAD
0000199b: PUSH1 0x01
0000199d: DUP2
0000199e: PUSH1 0x01
000019a0: AND
000019a1: ISZERO
000019a2: PUSH2 0x0100
000019a5: MUL
000019a6: SUB
000019a7: AND
000019a8: PUSH1 0x02
000019aa: SWAP1
000019ab: DIV
000019ac: DUP1
000019ad: SWAP2
000019ae: SWAP1
000019af: PUSH1 0x01
000019b1: ADD
000019b2: PUSH2 0x19bb
000019b5: SWAP2
000019b6: SWAP1
000019b7: PUSH2 0x405c
000019ba: JUMP
000019bb: JUMPDEST
000019bc: POP
000019bd: JUMPDEST
000019be: PUSH1 0x01
000019c0: PUSH1 0x01
000019c2: PUSH1 0xa0
000019c4: SHL
000019c5: SUB
000019c6: DUP3
000019c7: AND
000019c8: PUSH1 0x00
000019ca: SWAP1
000019cb: DUP2
000019cc: MSTORE
000019cd: PUSH1 0x02
000019cf: PUSH1 0x20
000019d1: MSTORE
000019d2: PUSH1 0x40
000019d4: SWAP1
000019d5: KECCAK256
000019d6: PUSH2 0x19df
000019d9: SWAP1
000019da: DUP3
000019db: PUSH2 0x3385
000019de: JUMP
000019df: JUMPDEST
000019e0: PUSH2 0x1a95
000019e3: JUMP
000019e4: JUMPDEST
000019e5: PUSH1 0x00
000019e7: JUMPDEST
000019e8: PUSH1 0x06
000019ea: DUP2
000019eb: LT
000019ec: ISZERO
000019ed: PUSH2 0x1a93
000019f0: JUMPI
000019f1: DUP2
000019f2: DUP2
000019f3: DUP2
000019f4: MLOAD
000019f5: DUP2
000019f6: LT
000019f7: PUSH2 0x19fc
000019fa: JUMPI
000019fb: INVALID
000019fc: JUMPDEST
000019fd: PUSH1 0x20
000019ff: ADD
00001a00: ADD
00001a01: MLOAD
00001a02: PUSH1 0xf8
00001a04: SHR
00001a05: PUSH1 0xf8
00001a07: SHL
00001a08: PUSH1 0x02
00001a0a: PUSH1 0x00
00001a0c: DUP6
00001a0d: PUSH1 0x01
00001a0f: PUSH1 0x01
00001a11: PUSH1 0xa0
00001a13: SHL
00001a14: SUB
00001a15: AND
00001a16: PUSH1 0x01
00001a18: PUSH1 0x01
00001a1a: PUSH1 0xa0
00001a1c: SHL
00001a1d: SUB
00001a1e: AND
00001a1f: DUP2
00001a20: MSTORE
00001a21: PUSH1 0x20
00001a23: ADD
00001a24: SWAP1
00001a25: DUP2
00001a26: MSTORE
00001a27: PUSH1 0x20
00001a29: ADD
00001a2a: PUSH1 0x00
00001a2c: KECCAK256
00001a2d: DUP3
00001a2e: PUSH1 0x01
00001a30: ADD
00001a31: DUP2
00001a32: SLOAD
00001a33: PUSH1 0x01
00001a35: DUP2
00001a36: PUSH1 0x01
00001a38: AND
00001a39: ISZERO
00001a3a: PUSH2 0x0100
00001a3d: MUL
00001a3e: SUB
00001a3f: AND
00001a40: PUSH1 0x02
00001a42: SWAP1
00001a43: DIV
00001a44: DUP2
00001a45: LT
00001a46: PUSH2 0x1a4b
00001a49: JUMPI
00001a4a: INVALID
00001a4b: JUMPDEST
00001a4c: DUP2
00001a4d: SLOAD
00001a4e: PUSH1 0x01
00001a50: AND
00001a51: ISZERO
00001a52: PUSH2 0x1a6a
00001a55: JUMPI
00001a56: SWAP1
00001a57: PUSH1 0x00
00001a59: MSTORE
00001a5a: PUSH1 0x20
00001a5c: PUSH1 0x00
00001a5e: KECCAK256
00001a5f: SWAP1
00001a60: PUSH1 0x20
00001a62: SWAP2
00001a63: DUP3
00001a64: DUP3
00001a65: DIV
00001a66: ADD
00001a67: SWAP2
00001a68: SWAP1
00001a69: MOD
00001a6a: JUMPDEST
00001a6b: PUSH1 0x1f
00001a6d: SUB
00001a6e: PUSH2 0x0100
00001a71: EXP
00001a72: DUP2
00001a73: SLOAD
00001a74: DUP2
00001a75: PUSH1 0xff
00001a77: MUL
00001a78: NOT
00001a79: AND
00001a7a: SWAP1
00001a7b: PUSH1 0x01
00001a7d: PUSH1 0xf8
00001a7f: SHL
00001a80: DUP5
00001a81: DIV
00001a82: MUL
00001a83: OR
00001a84: SWAP1
00001a85: SSTORE
00001a86: POP
00001a87: DUP1
00001a88: DUP1
00001a89: PUSH1 0x01
00001a8b: ADD
00001a8c: SWAP2
00001a8d: POP
00001a8e: POP
00001a8f: PUSH2 0x19e7
00001a92: JUMP
00001a93: JUMPDEST
00001a94: POP
00001a95: JUMPDEST
00001a96: PUSH1 0x40
00001a98: DUP1
00001a99: MLOAD
00001a9a: PUSH1 0x01
00001a9c: PUSH1 0x01
00001a9e: PUSH1 0xa0
00001aa0: SHL
00001aa1: SUB
00001aa2: DUP5
00001aa3: AND
00001aa4: DUP2
00001aa5: MSTORE
00001aa6: SWAP1
00001aa7: MLOAD
00001aa8: PUSH32 0x7c6947eb6f707f58d1a16902e136c738797923b7c4a9509d9bd4be1f30e05b9d
00001ac9: SWAP2
00001aca: DUP2
00001acb: SWAP1
00001acc: SUB
00001acd: PUSH1 0x20
00001acf: ADD
00001ad0: SWAP1
00001ad1: LOG1
00001ad2: POP
00001ad3: POP
00001ad4: JUMP
00001ad5: JUMPDEST
00001ad6: PUSH2 0x1add
00001ad9: PUSH2 0x1fc5
00001adc: JUMP
00001add: JUMPDEST
00001ade: PUSH2 0x1b1c
00001ae1: JUMPI
00001ae2: PUSH1 0x40
00001ae4: DUP1
00001ae5: MLOAD
00001ae6: PUSH3 0x461bcd
00001aea: PUSH1 0xe5
00001aec: SHL
00001aed: DUP2
00001aee: MSTORE
00001aef: PUSH1 0x20
00001af1: PUSH1 0x04
00001af3: DUP3
00001af4: ADD
00001af5: DUP2
00001af6: SWAP1
00001af7: MSTORE
00001af8: PUSH1 0x24
00001afa: DUP3
00001afb: ADD
00001afc: MSTORE
00001afd: PUSH1 0x00
00001aff: DUP1
00001b00: MLOAD
00001b01: PUSH1 0x20
00001b03: PUSH2 0x434a
00001b06: DUP4
00001b07: CODECOPY
00001b08: DUP2
00001b09: MLOAD
00001b0a: SWAP2
00001b0b: MSTORE
00001b0c: PUSH1 0x44
00001b0e: DUP3
00001b0f: ADD
00001b10: MSTORE
00001b11: SWAP1
00001b12: MLOAD
00001b13: SWAP1
00001b14: DUP2
00001b15: SWAP1
00001b16: SUB
00001b17: PUSH1 0x64
00001b19: ADD
00001b1a: SWAP1
00001b1b: REVERT
00001b1c: JUMPDEST
00001b1d: PUSH2 0x1b27
00001b20: DUP2
00001b21: PUSH1 0x01
00001b23: PUSH2 0x34d3
00001b26: JUMP
00001b27: JUMPDEST
00001b28: PUSH1 0x40
00001b2a: DUP1
00001b2b: MLOAD
00001b2c: PUSH1 0x01
00001b2e: PUSH1 0x01
00001b30: PUSH1 0xa0
00001b32: SHL
00001b33: SUB
00001b34: DUP4
00001b35: AND
00001b36: DUP2
00001b37: MSTORE
00001b38: SWAP1
00001b39: MLOAD
00001b3a: PUSH32 0x62f539fdce72b1b8414b4761dac3c935f18860d32f042f01d4a8bf581fa86331
00001b5b: SWAP2
00001b5c: DUP2
00001b5d: SWAP1
00001b5e: SUB
00001b5f: PUSH1 0x20
00001b61: ADD
00001b62: SWAP1
00001b63: LOG1
00001b64: POP
00001b65: JUMP
00001b66: JUMPDEST
00001b67: PUSH2 0x1b6e
00001b6a: PUSH2 0x1fc5
00001b6d: JUMP
00001b6e: JUMPDEST
00001b6f: PUSH2 0x1bad
00001b72: JUMPI
00001b73: PUSH1 0x40
00001b75: DUP1
00001b76: MLOAD
00001b77: PUSH3 0x461bcd
00001b7b: PUSH1 0xe5
00001b7d: SHL
00001b7e: DUP2
00001b7f: MSTORE
00001b80: PUSH1 0x20
00001b82: PUSH1 0x04
00001b84: DUP3
00001b85: ADD
00001b86: DUP2
00001b87: SWAP1
00001b88: MSTORE
00001b89: PUSH1 0x24
00001b8b: DUP3
00001b8c: ADD
00001b8d: MSTORE
00001b8e: PUSH1 0x00
00001b90: DUP1
00001b91: MLOAD
00001b92: PUSH1 0x20
00001b94: PUSH2 0x434a
00001b97: DUP4
00001b98: CODECOPY
00001b99: DUP2
00001b9a: MLOAD
00001b9b: SWAP2
00001b9c: MSTORE
00001b9d: PUSH1 0x44
00001b9f: DUP3
00001ba0: ADD
00001ba1: MSTORE
00001ba2: SWAP1
00001ba3: MLOAD
00001ba4: SWAP1
00001ba5: DUP2
00001ba6: SWAP1
00001ba7: SUB
00001ba8: PUSH1 0x64
00001baa: ADD
00001bab: SWAP1
00001bac: REVERT
00001bad: JUMPDEST
00001bae: PUSH1 0x00
00001bb0: DUP1
00001bb1: SLOAD
00001bb2: PUSH1 0x40
00001bb4: MLOAD
00001bb5: PUSH1 0x01
00001bb7: PUSH1 0x01
00001bb9: PUSH1 0xa0
00001bbb: SHL
00001bbc: SUB
00001bbd: SWAP1
00001bbe: SWAP2
00001bbf: AND
00001bc0: SWAP1
00001bc1: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00001be2: SWAP1
00001be3: DUP4
00001be4: SWAP1
00001be5: LOG3
00001be6: PUSH1 0x00
00001be8: DUP1
00001be9: SLOAD
00001bea: PUSH1 0x01
00001bec: PUSH1 0x01
00001bee: PUSH1 0xa0
00001bf0: SHL
00001bf1: SUB
00001bf2: NOT
00001bf3: AND
00001bf4: SWAP1
00001bf5: SSTORE
00001bf6: JUMP
00001bf7: JUMPDEST
00001bf8: PUSH1 0x60
00001bfa: DUP1
00001bfb: DUP3
00001bfc: MLOAD
00001bfd: PUSH1 0x40
00001bff: MLOAD
00001c00: SWAP1
00001c01: DUP1
00001c02: DUP3
00001c03: MSTORE
00001c04: DUP1
00001c05: PUSH1 0x20
00001c07: MUL
00001c08: PUSH1 0x20
00001c0a: ADD
00001c0b: DUP3
00001c0c: ADD
00001c0d: PUSH1 0x40
00001c0f: MSTORE
00001c10: DUP1
00001c11: ISZERO
00001c12: PUSH2 0x1c25
00001c15: JUMPI
00001c16: DUP2
00001c17: PUSH1 0x20
00001c19: ADD
00001c1a: PUSH1 0x20
00001c1c: DUP3
00001c1d: MUL
00001c1e: DUP1
00001c1f: CODESIZE
00001c20: DUP4
00001c21: CODECOPY
00001c22: ADD
00001c23: SWAP1
00001c24: POP
00001c25: JUMPDEST
00001c26: POP
00001c27: SWAP1
00001c28: POP
00001c29: PUSH1 0x00
00001c2b: JUMPDEST
00001c2c: DUP4
00001c2d: MLOAD
00001c2e: DUP2
00001c2f: LT
00001c30: ISZERO
00001c31: PUSH2 0x1c81
00001c34: JUMPI
00001c35: PUSH2 0x1c51
00001c38: DUP6
00001c39: DUP6
00001c3a: DUP4
00001c3b: DUP2
00001c3c: MLOAD
00001c3d: DUP2
00001c3e: LT
00001c3f: PUSH2 0x1c44
00001c42: JUMPI
00001c43: INVALID
00001c44: JUMPDEST
00001c45: PUSH1 0x20
00001c47: MUL
00001c48: PUSH1 0x20
00001c4a: ADD
00001c4b: ADD
00001c4c: MLOAD
00001c4d: PUSH2 0x2ad2
00001c50: JUMP
00001c51: JUMPDEST
00001c52: PUSH1 0x00
00001c54: ADD
00001c55: MLOAD
00001c56: DUP3
00001c57: DUP3
00001c58: DUP2
00001c59: MLOAD
00001c5a: DUP2
00001c5b: LT
00001c5c: PUSH2 0x1c61
00001c5f: JUMPI
00001c60: INVALID
00001c61: JUMPDEST
00001c62: PUSH1 0x01
00001c64: PUSH1 0x01
00001c66: PUSH1 0x40
00001c68: SHL
00001c69: SUB
00001c6a: SWAP1
00001c6b: SWAP3
00001c6c: AND
00001c6d: PUSH1 0x20
00001c6f: SWAP3
00001c70: DUP4
00001c71: MUL
00001c72: SWAP2
00001c73: SWAP1
00001c74: SWAP2
00001c75: ADD
00001c76: SWAP1
00001c77: SWAP2
00001c78: ADD
00001c79: MSTORE
00001c7a: PUSH1 0x01
00001c7c: ADD
00001c7d: PUSH2 0x1c2b
00001c80: JUMP
00001c81: JUMPDEST
00001c82: POP
00001c83: PUSH32 0xfb7de0621328a977285d9d780b9cff64b112259bf180f5e2642267ef9bc1c63c
00001ca4: DUP5
00001ca5: DUP5
00001ca6: DUP4
00001ca7: PUSH1 0x40
00001ca9: MLOAD
00001caa: DUP1
00001cab: DUP5
00001cac: PUSH1 0x01
00001cae: PUSH1 0x01
00001cb0: PUSH1 0xa0
00001cb2: SHL
00001cb3: SUB
00001cb4: AND
00001cb5: PUSH1 0x01
00001cb7: PUSH1 0x01
00001cb9: PUSH1 0xa0
00001cbb: SHL
00001cbc: SUB
00001cbd: AND
00001cbe: DUP2
00001cbf: MSTORE
00001cc0: PUSH1 0x20
00001cc2: ADD
00001cc3: DUP1
00001cc4: PUSH1 0x20
00001cc6: ADD
00001cc7: DUP1
00001cc8: PUSH1 0x20
00001cca: ADD
00001ccb: DUP4
00001ccc: DUP2
00001ccd: SUB
00001cce: DUP4
00001ccf: MSTORE
00001cd0: DUP6
00001cd1: DUP2
00001cd2: DUP2
00001cd3: MLOAD
00001cd4: DUP2
00001cd5: MSTORE
00001cd6: PUSH1 0x20
00001cd8: ADD
00001cd9: SWAP2
00001cda: POP
00001cdb: DUP1
00001cdc: MLOAD
00001cdd: SWAP1
00001cde: PUSH1 0x20
00001ce0: ADD
00001ce1: SWAP1
00001ce2: PUSH1 0x20
00001ce4: MUL
00001ce5: DUP1
00001ce6: DUP4
00001ce7: DUP4
00001ce8: PUSH1 0x00
00001cea: JUMPDEST
00001ceb: DUP4
00001cec: DUP2
00001ced: LT
00001cee: ISZERO
00001cef: PUSH2 0x1d02
00001cf2: JUMPI
00001cf3: DUP2
00001cf4: DUP2
00001cf5: ADD
00001cf6: MLOAD
00001cf7: DUP4
00001cf8: DUP3
00001cf9: ADD
00001cfa: MSTORE
00001cfb: PUSH1 0x20
00001cfd: ADD
00001cfe: PUSH2 0x1cea
00001d01: JUMP
00001d02: JUMPDEST
00001d03: POP
00001d04: POP
00001d05: POP
00001d06: POP
00001d07: SWAP1
00001d08: POP
00001d09: ADD
00001d0a: DUP4
00001d0b: DUP2
00001d0c: SUB
00001d0d: DUP3
00001d0e: MSTORE
00001d0f: DUP5
00001d10: DUP2
00001d11: DUP2
00001d12: MLOAD
00001d13: DUP2
00001d14: MSTORE
00001d15: PUSH1 0x20
00001d17: ADD
00001d18: SWAP2
00001d19: POP
00001d1a: DUP1
00001d1b: MLOAD
00001d1c: SWAP1
00001d1d: PUSH1 0x20
00001d1f: ADD
00001d20: SWAP1
00001d21: PUSH1 0x20
00001d23: MUL
00001d24: DUP1
00001d25: DUP4
00001d26: DUP4
00001d27: PUSH1 0x00
00001d29: JUMPDEST
00001d2a: DUP4
00001d2b: DUP2
00001d2c: LT
00001d2d: ISZERO
00001d2e: PUSH2 0x1d41
00001d31: JUMPI
00001d32: DUP2
00001d33: DUP2
00001d34: ADD
00001d35: MLOAD
00001d36: DUP4
00001d37: DUP3
00001d38: ADD
00001d39: MSTORE
00001d3a: PUSH1 0x20
00001d3c: ADD
00001d3d: PUSH2 0x1d29
00001d40: JUMP
00001d41: JUMPDEST
00001d42: POP
00001d43: POP
00001d44: POP
00001d45: POP
00001d46: SWAP1
00001d47: POP
00001d48: ADD
00001d49: SWAP6
00001d4a: POP
00001d4b: POP
00001d4c: POP
00001d4d: POP
00001d4e: POP
00001d4f: POP
00001d50: PUSH1 0x40
00001d52: MLOAD
00001d53: DUP1
00001d54: SWAP2
00001d55: SUB
00001d56: SWAP1
00001d57: LOG1
00001d58: SWAP4
00001d59: SWAP3
00001d5a: POP
00001d5b: POP
00001d5c: POP
00001d5d: JUMP
00001d5e: JUMPDEST
00001d5f: PUSH2 0x1d66
00001d62: PUSH2 0x1fc5
00001d65: JUMP
00001d66: JUMPDEST
00001d67: PUSH2 0x1da5
00001d6a: JUMPI
00001d6b: PUSH1 0x40
00001d6d: DUP1
00001d6e: MLOAD
00001d6f: PUSH3 0x461bcd
00001d73: PUSH1 0xe5
00001d75: SHL
00001d76: DUP2
00001d77: MSTORE
00001d78: PUSH1 0x20
00001d7a: PUSH1 0x04
00001d7c: DUP3
00001d7d: ADD
00001d7e: DUP2
00001d7f: SWAP1
00001d80: MSTORE
00001d81: PUSH1 0x24
00001d83: DUP3
00001d84: ADD
00001d85: MSTORE
00001d86: PUSH1 0x00
00001d88: DUP1
00001d89: MLOAD
00001d8a: PUSH1 0x20
00001d8c: PUSH2 0x434a
00001d8f: DUP4
00001d90: CODECOPY
00001d91: DUP2
00001d92: MLOAD
00001d93: SWAP2
00001d94: MSTORE
00001d95: PUSH1 0x44
00001d97: DUP3
00001d98: ADD
00001d99: MSTORE
00001d9a: SWAP1
00001d9b: MLOAD
00001d9c: SWAP1
00001d9d: DUP2
00001d9e: SWAP1
00001d9f: SUB
00001da0: PUSH1 0x64
00001da2: ADD
00001da3: SWAP1
00001da4: REVERT
00001da5: JUMPDEST
00001da6: PUSH2 0x1db0
00001da9: DUP2
00001daa: PUSH1 0x01
00001dac: PUSH2 0x3613
00001daf: JUMP
00001db0: JUMPDEST
00001db1: PUSH1 0x40
00001db3: DUP1
00001db4: MLOAD
00001db5: PUSH1 0x01
00001db7: PUSH1 0x01
00001db9: PUSH1 0xa0
00001dbb: SHL
00001dbc: SUB
00001dbd: DUP4
00001dbe: AND
00001dbf: DUP2
00001dc0: MSTORE
00001dc1: SWAP1
00001dc2: MLOAD
00001dc3: PUSH32 0xf6dd8be138fcbc416afd31ac8a434b3685c35be0bffc8730eebf36cb50b5f78d
00001de4: SWAP2
00001de5: DUP2
00001de6: SWAP1
00001de7: SUB
00001de8: PUSH1 0x20
00001dea: ADD
00001deb: SWAP1
00001dec: LOG1
00001ded: POP
00001dee: JUMP
00001def: JUMPDEST
00001df0: PUSH2 0x1df7
00001df3: PUSH2 0x1fc5
00001df6: JUMP
00001df7: JUMPDEST
00001df8: PUSH2 0x1e36
00001dfb: JUMPI
00001dfc: PUSH1 0x40
00001dfe: DUP1
00001dff: MLOAD
00001e00: PUSH3 0x461bcd
00001e04: PUSH1 0xe5
00001e06: SHL
00001e07: DUP2
00001e08: MSTORE
00001e09: PUSH1 0x20
00001e0b: PUSH1 0x04
00001e0d: DUP3
00001e0e: ADD
00001e0f: DUP2
00001e10: SWAP1
00001e11: MSTORE
00001e12: PUSH1 0x24
00001e14: DUP3
00001e15: ADD
00001e16: MSTORE
00001e17: PUSH1 0x00
00001e19: DUP1
00001e1a: MLOAD
00001e1b: PUSH1 0x20
00001e1d: PUSH2 0x434a
00001e20: DUP4
00001e21: CODECOPY
00001e22: DUP2
00001e23: MLOAD
00001e24: SWAP2
00001e25: MSTORE
00001e26: PUSH1 0x44
00001e28: DUP3
00001e29: ADD
00001e2a: MSTORE
00001e2b: SWAP1
00001e2c: MLOAD
00001e2d: SWAP1
00001e2e: DUP2
00001e2f: SWAP1
00001e30: SUB
00001e31: PUSH1 0x64
00001e33: ADD
00001e34: SWAP1
00001e35: REVERT
00001e36: JUMPDEST
00001e37: PUSH2 0x1e41
00001e3a: DUP2
00001e3b: PUSH1 0x00
00001e3d: PUSH2 0x3613
00001e40: JUMP
00001e41: JUMPDEST
00001e42: PUSH1 0x40
00001e44: DUP1
00001e45: MLOAD
00001e46: PUSH1 0x01
00001e48: PUSH1 0x01
00001e4a: PUSH1 0xa0
00001e4c: SHL
00001e4d: SUB
00001e4e: DUP4
00001e4f: AND
00001e50: DUP2
00001e51: MSTORE
00001e52: SWAP1
00001e53: MLOAD
00001e54: PUSH32 0x86185c63d21a208b65358328f7182bc77aafd60929c0897348857bc710eca2d2
00001e75: SWAP2
00001e76: DUP2
00001e77: SWAP1
00001e78: SUB
00001e79: PUSH1 0x20
00001e7b: ADD
00001e7c: SWAP1
00001e7d: LOG1
00001e7e: POP
00001e7f: JUMP
00001e80: JUMPDEST
00001e81: PUSH1 0x00
00001e83: PUSH2 0x1e8d
00001e86: CALLER
00001e87: PUSH1 0x01
00001e89: PUSH2 0x0b79
00001e8c: JUMP
00001e8d: JUMPDEST
00001e8e: PUSH2 0x1ed6
00001e91: JUMPI
00001e92: PUSH1 0x40
00001e94: DUP1
00001e95: MLOAD
00001e96: PUSH3 0x461bcd
00001e9a: PUSH1 0xe5
00001e9c: SHL
00001e9d: DUP2
00001e9e: MSTORE
00001e9f: PUSH1 0x20
00001ea1: PUSH1 0x04
00001ea3: DUP3
00001ea4: ADD
00001ea5: MSTORE
00001ea6: PUSH1 0x15
00001ea8: PUSH1 0x24
00001eaa: DUP3
00001eab: ADD
00001eac: MSTORE
00001ead: PUSH21 0x2737ba1030903bb434ba32b634b9ba1030b236b4b7
00001ec3: PUSH1 0x59
00001ec5: SHL
00001ec6: PUSH1 0x44
00001ec8: DUP3
00001ec9: ADD
00001eca: MSTORE
00001ecb: SWAP1
00001ecc: MLOAD
00001ecd: SWAP1
00001ece: DUP2
00001ecf: SWAP1
00001ed0: SUB
00001ed1: PUSH1 0x64
00001ed3: ADD
00001ed4: SWAP1
00001ed5: REVERT
00001ed6: JUMPDEST
00001ed7: PUSH1 0x00
00001ed9: SLOAD
00001eda: PUSH2 0xffff
00001edd: PUSH1 0x01
00001edf: PUSH1 0xb8
00001ee1: SHL
00001ee2: SWAP1
00001ee3: SWAP2
00001ee4: DIV
00001ee5: DUP2
00001ee6: AND
00001ee7: PUSH1 0x01
00001ee9: ADD
00001eea: DUP2
00001eeb: AND
00001eec: LT
00001eed: PUSH2 0x1f3d
00001ef0: JUMPI
00001ef1: PUSH1 0x40
00001ef3: DUP1
00001ef4: MLOAD
00001ef5: PUSH3 0x461bcd
00001ef9: PUSH1 0xe5
00001efb: SHL
00001efc: DUP2
00001efd: MSTORE
00001efe: PUSH1 0x20
00001f00: PUSH1 0x04
00001f02: DUP3
00001f03: ADD
00001f04: MSTORE
00001f05: PUSH1 0x18
00001f07: PUSH1 0x24
00001f09: DUP3
00001f0a: ADD
00001f0b: MSTORE
00001f0c: PUSH32 0x4173736574206964207370616365206578686175737465640000000000000000
00001f2d: PUSH1 0x44
00001f2f: DUP3
00001f30: ADD
00001f31: MSTORE
00001f32: SWAP1
00001f33: MLOAD
00001f34: SWAP1
00001f35: DUP2
00001f36: SWAP1
00001f37: SUB
00001f38: PUSH1 0x64
00001f3a: ADD
00001f3b: SWAP1
00001f3c: REVERT
00001f3d: JUMPDEST
00001f3e: POP
00001f3f: PUSH1 0x00
00001f41: DUP1
00001f42: SLOAD
00001f43: PUSH2 0xffff
00001f46: PUSH1 0x01
00001f48: PUSH1 0xb8
00001f4a: SHL
00001f4b: DUP1
00001f4c: DUP4
00001f4d: DIV
00001f4e: DUP3
00001f4f: AND
00001f50: PUSH1 0x01
00001f52: DUP2
00001f53: DUP2
00001f54: ADD
00001f55: DUP5
00001f56: AND
00001f57: DUP4
00001f58: MUL
00001f59: PUSH2 0xffff
00001f5c: PUSH1 0xb8
00001f5e: SHL
00001f5f: NOT
00001f60: SWAP1
00001f61: SWAP6
00001f62: AND
00001f63: SWAP5
00001f64: SWAP1
00001f65: SWAP5
00001f66: OR
00001f67: DUP6
00001f68: SSTORE
00001f69: DUP5
00001f6a: MSTORE
00001f6b: PUSH1 0x20
00001f6d: SWAP3
00001f6e: SWAP1
00001f6f: SWAP3
00001f70: MSTORE
00001f71: PUSH1 0x40
00001f73: DUP4
00001f74: KECCAK256
00001f75: DUP1
00001f76: SLOAD
00001f77: PUSH1 0x01
00001f79: PUSH1 0x01
00001f7b: PUSH1 0xa0
00001f7d: SHL
00001f7e: SUB
00001f7f: DUP8
00001f80: AND
00001f81: PUSH1 0xff
00001f83: PUSH1 0xa0
00001f85: SHL
00001f86: PUSH1 0xa0
00001f88: DUP9
00001f89: SWAP1
00001f8a: SHL
00001f8b: AND
00001f8c: OR
00001f8d: PUSH1 0x01
00001f8f: PUSH1 0x01
00001f91: PUSH1 0xa8
00001f93: SHL
00001f94: SUB
00001f95: AND
00001f96: PUSH1 0x01
00001f98: PUSH1 0x01
00001f9a: PUSH1 0xa8
00001f9c: SHL
00001f9d: SUB
00001f9e: NOT
00001f9f: SWAP1
00001fa0: SWAP2
00001fa1: AND
00001fa2: OR
00001fa3: SWAP1
00001fa4: SSTORE
00001fa5: SWAP2
00001fa6: SLOAD
00001fa7: PUSH1 0x00
00001fa9: NOT
00001faa: SWAP2
00001fab: SWAP1
00001fac: DIV
00001fad: SWAP1
00001fae: SWAP2
00001faf: AND
00001fb0: ADD
00001fb1: SWAP3
00001fb2: SWAP2
00001fb3: POP
00001fb4: POP
00001fb5: JUMP
00001fb6: JUMPDEST
00001fb7: PUSH1 0x00
00001fb9: SLOAD
00001fba: PUSH1 0x01
00001fbc: PUSH1 0x01
00001fbe: PUSH1 0xa0
00001fc0: SHL
00001fc1: SUB
00001fc2: AND
00001fc3: SWAP1
00001fc4: JUMP
00001fc5: JUMPDEST
00001fc6: PUSH1 0x00
00001fc8: SLOAD
00001fc9: PUSH1 0x01
00001fcb: PUSH1 0x01
00001fcd: PUSH1 0xa0
00001fcf: SHL
00001fd0: SUB
00001fd1: AND
00001fd2: CALLER
00001fd3: EQ
00001fd4: SWAP1
00001fd5: JUMP
00001fd6: JUMPDEST
00001fd7: PUSH1 0x00
00001fd9: SLOAD
00001fda: PUSH1 0x01
00001fdc: PUSH1 0xa0
00001fde: SHL
00001fdf: SWAP1
00001fe0: DIV
00001fe1: PUSH1 0xff
00001fe3: AND
00001fe4: ISZERO
00001fe5: PUSH2 0x201f
00001fe8: JUMPI
00001fe9: PUSH1 0x40
00001feb: MLOAD
00001fec: PUSH3 0x461bcd
00001ff0: PUSH1 0xe5
00001ff2: SHL
00001ff3: DUP2
00001ff4: MSTORE
00001ff5: PUSH1 0x04
00001ff7: ADD
00001ff8: DUP1
00001ff9: DUP1
00001ffa: PUSH1 0x20
00001ffc: ADD
00001ffd: DUP3
00001ffe: DUP2
00001fff: SUB
00002000: DUP3
00002001: MSTORE
00002002: PUSH1 0x32
00002004: DUP2
00002005: MSTORE
00002006: PUSH1 0x20
00002008: ADD
00002009: DUP1
0000200a: PUSH2 0x413a
0000200d: PUSH1 0x32
0000200f: SWAP2
00002010: CODECOPY
00002011: PUSH1 0x40
00002013: ADD
00002014: SWAP2
00002015: POP
00002016: POP
00002017: PUSH1 0x40
00002019: MLOAD
0000201a: DUP1
0000201b: SWAP2
0000201c: SUB
0000201d: SWAP1
0000201e: REVERT
0000201f: JUMPDEST
00002020: PUSH1 0x00
00002022: DUP1
00002023: SLOAD
00002024: PUSH1 0xff
00002026: PUSH1 0xa0
00002028: SHL
00002029: NOT
0000202a: AND
0000202b: PUSH1 0x01
0000202d: PUSH1 0xa0
0000202f: SHL
00002030: OR
00002031: DUP2
00002032: SSTORE
00002033: PUSH1 0x01
00002035: PUSH1 0x01
00002037: PUSH1 0xa0
00002039: SHL
0000203a: SUB
0000203b: DUP4
0000203c: AND
0000203d: DUP2
0000203e: MSTORE
0000203f: PUSH1 0x02
00002041: PUSH1 0x20
00002043: DUP2
00002044: DUP2
00002045: MSTORE
00002046: PUSH1 0x40
00002048: SWAP3
00002049: DUP4
0000204a: SWAP1
0000204b: KECCAK256
0000204c: DUP1
0000204d: SLOAD
0000204e: DUP5
0000204f: MLOAD
00002050: PUSH1 0x1f
00002052: PUSH1 0x00
00002054: NOT
00002055: PUSH1 0x01
00002057: DUP5
00002058: AND
00002059: ISZERO
0000205a: PUSH2 0x0100
0000205d: MUL
0000205e: ADD
0000205f: SWAP1
00002060: SWAP3
00002061: AND
00002062: SWAP5
00002063: SWAP1
00002064: SWAP5
00002065: DIV
00002066: SWAP1
00002067: DUP2
00002068: ADD
00002069: DUP4
0000206a: SWAP1
0000206b: DIV
0000206c: DUP4
0000206d: MUL
0000206e: DUP5
0000206f: ADD
00002070: DUP4
00002071: ADD
00002072: SWAP1
00002073: SWAP5
00002074: MSTORE
00002075: DUP4
00002076: DUP4
00002077: MSTORE
00002078: PUSH1 0x60
0000207a: SWAP4
0000207b: SWAP1
0000207c: SWAP2
0000207d: DUP4
0000207e: ADD
0000207f: DUP3
00002080: DUP3
00002081: DUP1
00002082: ISZERO
00002083: PUSH2 0x20cd
00002086: JUMPI
00002087: DUP1
00002088: PUSH1 0x1f
0000208a: LT
0000208b: PUSH2 0x20a2
0000208e: JUMPI
0000208f: PUSH2 0x0100
00002092: DUP1
00002093: DUP4
00002094: SLOAD
00002095: DIV
00002096: MUL
00002097: DUP4
00002098: MSTORE
00002099: SWAP2
0000209a: PUSH1 0x20
0000209c: ADD
0000209d: SWAP2
0000209e: PUSH2 0x20cd
000020a1: JUMP
000020a2: JUMPDEST
000020a3: DUP3
000020a4: ADD
000020a5: SWAP2
000020a6: SWAP1
000020a7: PUSH1 0x00
000020a9: MSTORE
000020aa: PUSH1 0x20
000020ac: PUSH1 0x00
000020ae: KECCAK256
000020af: SWAP1
000020b0: JUMPDEST
000020b1: DUP2
000020b2: SLOAD
000020b3: DUP2
000020b4: MSTORE
000020b5: SWAP1
000020b6: PUSH1 0x01
000020b8: ADD
000020b9: SWAP1
000020ba: PUSH1 0x20
000020bc: ADD
000020bd: DUP1
000020be: DUP4
000020bf: GT
000020c0: PUSH2 0x20b0
000020c3: JUMPI
000020c4: DUP3
000020c5: SWAP1
000020c6: SUB
000020c7: PUSH1 0x1f
000020c9: AND
000020ca: DUP3
000020cb: ADD
000020cc: SWAP2
000020cd: JUMPDEST
000020ce: POP
000020cf: POP
000020d0: POP
000020d1: POP
000020d2: POP
000020d3: SWAP1
000020d4: POP
000020d5: PUSH1 0x00
000020d7: DUP1
000020d8: SWAP1
000020d9: POP
000020da: PUSH1 0x07
000020dc: DUP3
000020dd: MLOAD
000020de: LT
000020df: PUSH2 0x20e9
000020e2: JUMPI
000020e3: POP
000020e4: PUSH1 0x07
000020e6: DUP2
000020e7: ADD
000020e8: MLOAD
000020e9: JUMPDEST
000020ea: PUSH6 0xffffffffffff
000020f1: DUP2
000020f2: AND
000020f3: ISZERO
000020f4: DUP1
000020f5: ISZERO
000020f6: SWAP1
000020f7: PUSH2 0x2117
000020fa: JUMPI
000020fb: POP
000020fc: PUSH1 0x00
000020fe: SLOAD
000020ff: PUSH1 0x01
00002101: PUSH1 0xa8
00002103: SHL
00002104: SWAP1
00002105: DIV
00002106: PUSH2 0xffff
00002109: AND
0000210a: DUP2
0000210b: ADD
0000210c: PUSH6 0xffffffffffff
00002113: AND
00002114: NUMBER
00002115: LT
00002116: ISZERO
00002117: JUMPDEST
00002118: PUSH2 0x2152
0000211b: JUMPI
0000211c: PUSH1 0x40
0000211e: MLOAD
0000211f: PUSH3 0x461bcd
00002123: PUSH1 0xe5
00002125: SHL
00002126: DUP2
00002127: MSTORE
00002128: PUSH1 0x04
0000212a: ADD
0000212b: DUP1
0000212c: DUP1
0000212d: PUSH1 0x20
0000212f: ADD
00002130: DUP3
00002131: DUP2
00002132: SUB
00002133: DUP3
00002134: MSTORE
00002135: PUSH1 0x39
00002137: DUP2
00002138: MSTORE
00002139: PUSH1 0x20
0000213b: ADD
0000213c: DUP1
0000213d: PUSH2 0x436a
00002140: PUSH1 0x39
00002142: SWAP2
00002143: CODECOPY
00002144: PUSH1 0x40
00002146: ADD
00002147: SWAP2
00002148: POP
00002149: POP
0000214a: PUSH1 0x40
0000214c: MLOAD
0000214d: DUP1
0000214e: SWAP2
0000214f: SUB
00002150: SWAP1
00002151: REVERT
00002152: JUMPDEST
00002153: PUSH1 0x01
00002155: PUSH1 0x01
00002157: PUSH1 0xa0
00002159: SHL
0000215a: SUB
0000215b: DUP5
0000215c: AND
0000215d: CALLER
0000215e: EQ
0000215f: PUSH2 0x21af
00002162: JUMPI
00002163: PUSH1 0x40
00002165: DUP1
00002166: MLOAD
00002167: PUSH3 0x461bcd
0000216b: PUSH1 0xe5
0000216d: SHL
0000216e: DUP2
0000216f: MSTORE
00002170: PUSH1 0x20
00002172: PUSH1 0x04
00002174: DUP3
00002175: ADD
00002176: MSTORE
00002177: PUSH1 0x1d
00002179: PUSH1 0x24
0000217b: DUP3
0000217c: ADD
0000217d: MSTORE
0000217e: PUSH32 0x4164647265737320646f6573206e6f74206d617463682073656e646572000000
0000219f: PUSH1 0x44
000021a1: DUP3
000021a2: ADD
000021a3: MSTORE
000021a4: SWAP1
000021a5: MLOAD
000021a6: SWAP1
000021a7: DUP2
000021a8: SWAP1
000021a9: SUB
000021aa: PUSH1 0x64
000021ac: ADD
000021ad: SWAP1
000021ae: REVERT
000021af: JUMPDEST
000021b0: PUSH1 0x00
000021b2: SLOAD
000021b3: PUSH2 0xffff
000021b6: PUSH1 0x01
000021b8: PUSH1 0xb8
000021ba: SHL
000021bb: SWAP1
000021bc: SWAP2
000021bd: DIV
000021be: DUP2
000021bf: AND
000021c0: SWAP1
000021c1: DUP5
000021c2: AND
000021c3: LT
000021c4: PUSH2 0x2204
000021c7: JUMPI
000021c8: PUSH1 0x40
000021ca: DUP1
000021cb: MLOAD
000021cc: PUSH3 0x461bcd
000021d0: PUSH1 0xe5
000021d2: SHL
000021d3: DUP2
000021d4: MSTORE
000021d5: PUSH1 0x20
000021d7: PUSH1 0x04
000021d9: DUP3
000021da: ADD
000021db: MSTORE
000021dc: PUSH1 0x0d
000021de: PUSH1 0x24
000021e0: DUP3
000021e1: ADD
000021e2: MSTORE
000021e3: PUSH13 0x125b9d985b1a5908185cdcd95d
000021f1: PUSH1 0x9a
000021f3: SHL
000021f4: PUSH1 0x44
000021f6: DUP3
000021f7: ADD
000021f8: MSTORE
000021f9: SWAP1
000021fa: MLOAD
000021fb: SWAP1
000021fc: DUP2
000021fd: SWAP1
000021fe: SUB
000021ff: PUSH1 0x64
00002201: ADD
00002202: SWAP1
00002203: REVERT
00002204: JUMPDEST
00002205: PUSH2 0x220c
00002208: PUSH2 0x4035
0000220b: JUMP
0000220c: JUMPDEST
0000220d: PUSH2 0x2216
00002210: DUP6
00002211: DUP6
00002212: PUSH2 0x2ad2
00002215: JUMP
00002216: JUMPDEST
00002217: DUP1
00002218: MLOAD
00002219: PUSH1 0x00
0000221b: DUP3
0000221c: MSTORE
0000221d: PUSH1 0x60
0000221f: DUP3
00002220: ADD
00002221: MLOAD
00002222: SWAP2
00002223: SWAP3
00002224: POP
00002225: SWAP1
00002226: DUP1
00002227: ISZERO
00002228: PUSH2 0x2239
0000222b: JUMPI
0000222c: POP
0000222d: PUSH1 0x01
0000222f: PUSH1 0x01
00002231: PUSH1 0x40
00002233: SHL
00002234: SUB
00002235: DUP2
00002236: AND
00002237: ISZERO
00002238: ISZERO
00002239: JUMPDEST
0000223a: PUSH2 0x2275
0000223d: JUMPI
0000223e: PUSH1 0x40
00002240: DUP1
00002241: MLOAD
00002242: PUSH3 0x461bcd
00002246: PUSH1 0xe5
00002248: SHL
00002249: DUP2
0000224a: MSTORE
0000224b: PUSH1 0x20
0000224d: PUSH1 0x04
0000224f: DUP3
00002250: ADD
00002251: MSTORE
00002252: PUSH1 0x08
00002254: PUSH1 0x24
00002256: DUP3
00002257: ADD
00002258: MSTORE
00002259: PUSH8 0x4e6f2066756e6473
00002262: PUSH1 0xc0
00002264: SHL
00002265: PUSH1 0x44
00002267: DUP3
00002268: ADD
00002269: MSTORE
0000226a: SWAP1
0000226b: MLOAD
0000226c: SWAP1
0000226d: DUP2
0000226e: SWAP1
0000226f: SUB
00002270: PUSH1 0x64
00002272: ADD
00002273: SWAP1
00002274: REVERT
00002275: JUMPDEST
00002276: PUSH2 0xffff
00002279: DUP6
0000227a: AND
0000227b: PUSH1 0x00
0000227d: SWAP1
0000227e: DUP2
0000227f: MSTORE
00002280: PUSH1 0x04
00002282: PUSH1 0x20
00002284: MSTORE
00002285: PUSH1 0x40
00002287: SWAP1
00002288: KECCAK256
00002289: DUP1
0000228a: SLOAD
0000228b: PUSH1 0x01
0000228d: PUSH1 0x01
0000228f: PUSH1 0x40
00002291: SHL
00002292: SUB
00002293: DUP1
00002294: DUP3
00002295: AND
00002296: DUP5
00002297: SWAP1
00002298: SUB
00002299: AND
0000229a: PUSH8 0xffffffffffffffff
000022a3: NOT
000022a4: SWAP1
000022a5: SWAP2
000022a6: AND
000022a7: OR
000022a8: SWAP1
000022a9: SSTORE
000022aa: PUSH2 0x22b3
000022ad: DUP7
000022ae: DUP4
000022af: PUSH2 0x2ca2
000022b2: JUMP
000022b3: JUMPDEST
000022b4: PUSH2 0x22be
000022b7: DUP7
000022b8: DUP7
000022b9: DUP4
000022ba: PUSH2 0x307e
000022bd: JUMP
000022be: JUMPDEST
000022bf: PUSH1 0x20
000022c1: DUP1
000022c2: DUP4
000022c3: ADD
000022c4: MLOAD
000022c5: PUSH1 0x40
000022c7: DUP1
000022c8: MLOAD
000022c9: PUSH1 0x01
000022cb: PUSH1 0x01
000022cd: PUSH1 0xa0
000022cf: SHL
000022d0: SUB
000022d1: DUP11
000022d2: AND
000022d3: DUP2
000022d4: MSTORE
000022d5: PUSH2 0xffff
000022d8: DUP10
000022d9: AND
000022da: SWAP4
000022db: DUP2
000022dc: ADD
000022dd: SWAP4
000022de: SWAP1
000022df: SWAP4
000022e0: MSTORE
000022e1: PUSH1 0x01
000022e3: PUSH1 0x01
000022e5: PUSH1 0x40
000022e7: SHL
000022e8: SUB
000022e9: DUP5
000022ea: AND
000022eb: DUP4
000022ec: DUP3
000022ed: ADD
000022ee: MSTORE
000022ef: PUSH4 0xffffffff
000022f4: SWAP1
000022f5: SWAP2
000022f6: AND
000022f7: PUSH1 0x60
000022f9: DUP4
000022fa: ADD
000022fb: MSTORE
000022fc: MLOAD
000022fd: PUSH32 0xb6602b0a60e2a9abe4a7816783781b101bf31e81b66cf004aa5ff3f9c533b5d0
0000231e: SWAP2
0000231f: DUP2
00002320: SWAP1
00002321: SUB
00002322: PUSH1 0x80
00002324: ADD
00002325: SWAP1
00002326: LOG1
00002327: POP
00002328: POP
00002329: PUSH1 0x00
0000232b: DUP1
0000232c: SLOAD
0000232d: PUSH1 0xff
0000232f: PUSH1 0xa0
00002331: SHL
00002332: NOT
00002333: AND
00002334: SWAP1
00002335: SSTORE
00002336: POP
00002337: POP
00002338: POP
00002339: POP
0000233a: JUMP
0000233b: JUMPDEST
0000233c: PUSH1 0x00
0000233e: SLOAD
0000233f: PUSH1 0x01
00002341: PUSH1 0xa0
00002343: SHL
00002344: SWAP1
00002345: DIV
00002346: PUSH1 0xff
00002348: AND
00002349: ISZERO
0000234a: PUSH2 0x2384
0000234d: JUMPI
0000234e: PUSH1 0x40
00002350: MLOAD
00002351: PUSH3 0x461bcd
00002355: PUSH1 0xe5
00002357: SHL
00002358: DUP2
00002359: MSTORE
0000235a: PUSH1 0x04
0000235c: ADD
0000235d: DUP1
0000235e: DUP1
0000235f: PUSH1 0x20
00002361: ADD
00002362: DUP3
00002363: DUP2
00002364: SUB
00002365: DUP3
00002366: MSTORE
00002367: PUSH1 0x32
00002369: DUP2
0000236a: MSTORE
0000236b: PUSH1 0x20
0000236d: ADD
0000236e: DUP1
0000236f: PUSH2 0x413a
00002372: PUSH1 0x32
00002374: SWAP2
00002375: CODECOPY
00002376: PUSH1 0x40
00002378: ADD
00002379: SWAP2
0000237a: POP
0000237b: POP
0000237c: PUSH1 0x40
0000237e: MLOAD
0000237f: DUP1
00002380: SWAP2
00002381: SUB
00002382: SWAP1
00002383: REVERT
00002384: JUMPDEST
00002385: PUSH1 0x00
00002387: DUP1
00002388: SLOAD
00002389: PUSH1 0xff
0000238b: PUSH1 0xa0
0000238d: SHL
0000238e: NOT
0000238f: AND
00002390: PUSH1 0x01
00002392: PUSH1 0xa0
00002394: SHL
00002395: OR
00002396: SWAP1
00002397: DUP2
00002398: SWAP1
00002399: SSTORE
0000239a: PUSH2 0xffff
0000239d: PUSH1 0x01
0000239f: PUSH1 0xb8
000023a1: SHL
000023a2: SWAP1
000023a3: SWAP2
000023a4: DIV
000023a5: DUP2
000023a6: AND
000023a7: SWAP1
000023a8: DUP8
000023a9: AND
000023aa: LT
000023ab: PUSH2 0x23eb
000023ae: JUMPI
000023af: PUSH1 0x40
000023b1: DUP1
000023b2: MLOAD
000023b3: PUSH3 0x461bcd
000023b7: PUSH1 0xe5
000023b9: SHL
000023ba: DUP2
000023bb: MSTORE
000023bc: PUSH1 0x20
000023be: PUSH1 0x04
000023c0: DUP3
000023c1: ADD
000023c2: MSTORE
000023c3: PUSH1 0x0d
000023c5: PUSH1 0x24
000023c7: DUP3
000023c8: ADD
000023c9: MSTORE
000023ca: PUSH13 0x125b9d985b1a5908185cdcd95d
000023d8: PUSH1 0x9a
000023da: SHL
000023db: PUSH1 0x44
000023dd: DUP3
000023de: ADD
000023df: MSTORE
000023e0: SWAP1
000023e1: MLOAD
000023e2: SWAP1
000023e3: DUP2
000023e4: SWAP1
000023e5: SUB
000023e6: PUSH1 0x64
000023e8: ADD
000023e9: SWAP1
000023ea: REVERT
000023eb: JUMPDEST
000023ec: CALLER
000023ed: PUSH1 0x01
000023ef: PUSH1 0x01
000023f1: PUSH1 0xa0
000023f3: SHL
000023f4: SUB
000023f5: DUP9
000023f6: AND
000023f7: EQ
000023f8: PUSH2 0x2432
000023fb: JUMPI
000023fc: PUSH1 0x40
000023fe: MLOAD
000023ff: PUSH3 0x461bcd
00002403: PUSH1 0xe5
00002405: SHL
00002406: DUP2
00002407: MSTORE
00002408: PUSH1 0x04
0000240a: ADD
0000240b: DUP1
0000240c: DUP1
0000240d: PUSH1 0x20
0000240f: ADD
00002410: DUP3
00002411: DUP2
00002412: SUB
00002413: DUP3
00002414: MSTORE
00002415: PUSH1 0x30
00002417: DUP2
00002418: MSTORE
00002419: PUSH1 0x20
0000241b: ADD
0000241c: DUP1
0000241d: PUSH2 0x4238
00002420: PUSH1 0x30
00002422: SWAP2
00002423: CODECOPY
00002424: PUSH1 0x40
00002426: ADD
00002427: SWAP2
00002428: POP
00002429: POP
0000242a: PUSH1 0x40
0000242c: MLOAD
0000242d: DUP1
0000242e: SWAP2
0000242f: SUB
00002430: SWAP1
00002431: REVERT
00002432: JUMPDEST
00002433: DUP7
00002434: PUSH1 0x01
00002436: PUSH1 0x01
00002438: PUSH1 0xa0
0000243a: SHL
0000243b: SUB
0000243c: AND
0000243d: DUP4
0000243e: PUSH1 0x01
00002440: PUSH1 0x01
00002442: PUSH1 0xa0
00002444: SHL
00002445: SUB
00002446: AND
00002447: EQ
00002448: PUSH2 0x2482
0000244b: JUMPI
0000244c: PUSH1 0x40
0000244e: MLOAD
0000244f: PUSH3 0x461bcd
00002453: PUSH1 0xe5
00002455: SHL
00002456: DUP2
00002457: MSTORE
00002458: PUSH1 0x04
0000245a: ADD
0000245b: DUP1
0000245c: DUP1
0000245d: PUSH1 0x20
0000245f: ADD
00002460: DUP3
00002461: DUP2
00002462: SUB
00002463: DUP3
00002464: MSTORE
00002465: PUSH1 0x30
00002467: DUP2
00002468: MSTORE
00002469: PUSH1 0x20
0000246b: ADD
0000246c: DUP1
0000246d: PUSH2 0x41b4
00002470: PUSH1 0x30
00002472: SWAP2
00002473: CODECOPY
00002474: PUSH1 0x40
00002476: ADD
00002477: SWAP2
00002478: POP
00002479: POP
0000247a: PUSH1 0x40
0000247c: MLOAD
0000247d: DUP1
0000247e: SWAP2
0000247f: SUB
00002480: SWAP1
00002481: REVERT
00002482: JUMPDEST
00002483: PUSH1 0x40
00002485: DUP1
00002486: MLOAD
00002487: PUSH1 0x01
00002489: PUSH1 0x01
0000248b: PUSH1 0x60
0000248d: SHL
0000248e: SUB
0000248f: NOT
00002490: PUSH1 0x60
00002492: DUP11
00002493: SWAP1
00002494: SHL
00002495: AND
00002496: PUSH1 0x20
00002498: DUP3
00002499: ADD
0000249a: MSTORE
0000249b: PUSH1 0x01
0000249d: PUSH1 0x01
0000249f: PUSH1 0xf0
000024a1: SHL
000024a2: SUB
000024a3: NOT
000024a4: PUSH1 0xf0
000024a6: DUP10
000024a7: SWAP1
000024a8: SHL
000024a9: AND
000024aa: PUSH1 0x34
000024ac: DUP3
000024ad: ADD
000024ae: MSTORE
000024af: PUSH1 0x01
000024b1: PUSH1 0x01
000024b3: PUSH1 0xc0
000024b5: SHL
000024b6: SUB
000024b7: NOT
000024b8: PUSH1 0xc0
000024ba: DUP9
000024bb: SWAP1
000024bc: SHL
000024bd: AND
000024be: PUSH1 0x36
000024c0: DUP3
000024c1: ADD
000024c2: MSTORE
000024c3: PUSH1 0x01
000024c5: PUSH1 0x01
000024c7: PUSH1 0xe0
000024c9: SHL
000024ca: SUB
000024cb: NOT
000024cc: PUSH1 0xe0
000024ce: DUP8
000024cf: SWAP1
000024d0: SHL
000024d1: AND
000024d2: PUSH1 0x3e
000024d4: DUP3
000024d5: ADD
000024d6: MSTORE
000024d7: DUP2
000024d8: MLOAD
000024d9: PUSH1 0x22
000024db: DUP2
000024dc: DUP4
000024dd: SUB
000024de: ADD
000024df: DUP2
000024e0: MSTORE
000024e1: PUSH1 0x42
000024e3: SWAP1
000024e4: SWAP2
000024e5: ADD
000024e6: SWAP1
000024e7: SWAP2
000024e8: MSTORE
000024e9: PUSH2 0x24f7
000024ec: SWAP1
000024ed: PUSH1 0x02
000024ef: SWAP1
000024f0: DUP6
000024f1: DUP6
000024f2: DUP6
000024f3: PUSH2 0x2fdb
000024f6: JUMP
000024f7: JUMPDEST
000024f8: PUSH2 0x253c
000024fb: JUMPI
000024fc: PUSH1 0x40
000024fe: DUP1
000024ff: MLOAD
00002500: PUSH3 0x461bcd
00002504: PUSH1 0xe5
00002506: SHL
00002507: DUP2
00002508: MSTORE
00002509: PUSH1 0x20
0000250b: PUSH1 0x04
0000250d: DUP3
0000250e: ADD
0000250f: MSTORE
00002510: PUSH1 0x11
00002512: PUSH1 0x24
00002514: DUP3
00002515: ADD
00002516: MSTORE
00002517: PUSH17 0x496e76616c6964207369676e6174757265
00002529: PUSH1 0x78
0000252b: SHL
0000252c: PUSH1 0x44
0000252e: DUP3
0000252f: ADD
00002530: MSTORE
00002531: SWAP1
00002532: MLOAD
00002533: SWAP1
00002534: DUP2
00002535: SWAP1
00002536: SUB
00002537: PUSH1 0x64
00002539: ADD
0000253a: SWAP1
0000253b: REVERT
0000253c: JUMPDEST
0000253d: PUSH2 0x2544
00002540: PUSH2 0x4035
00002543: JUMP
00002544: JUMPDEST
00002545: PUSH2 0x254e
00002548: DUP9
00002549: DUP9
0000254a: PUSH2 0x2ad2
0000254d: JUMP
0000254e: JUMPDEST
0000254f: SWAP1
00002550: POP
00002551: DUP1
00002552: PUSH1 0x20
00002554: ADD
00002555: MLOAD
00002556: PUSH4 0xffffffff
0000255b: AND
0000255c: DUP6
0000255d: PUSH4 0xffffffff
00002562: AND
00002563: GT
00002564: PUSH2 0x259e
00002567: JUMPI
00002568: PUSH1 0x40
0000256a: MLOAD
0000256b: PUSH3 0x461bcd
0000256f: PUSH1 0xe5
00002571: SHL
00002572: DUP2
00002573: MSTORE
00002574: PUSH1 0x04
00002576: ADD
00002577: DUP1
00002578: DUP1
00002579: PUSH1 0x20
0000257b: ADD
0000257c: DUP3
0000257d: DUP2
0000257e: SUB
0000257f: DUP3
00002580: MSTORE
00002581: PUSH1 0x27
00002583: DUP2
00002584: MSTORE
00002585: PUSH1 0x20
00002587: ADD
00002588: DUP1
00002589: PUSH2 0x43a3
0000258c: PUSH1 0x27
0000258e: SWAP2
0000258f: CODECOPY
00002590: PUSH1 0x40
00002592: ADD
00002593: SWAP2
00002594: POP
00002595: POP
00002596: PUSH1 0x40
00002598: MLOAD
00002599: DUP1
0000259a: SWAP2
0000259b: SUB
0000259c: SWAP1
0000259d: REVERT
0000259e: JUMPDEST
0000259f: PUSH2 0xffff
000025a2: DUP8
000025a3: AND
000025a4: PUSH1 0x00
000025a6: SWAP1
000025a7: DUP2
000025a8: MSTORE
000025a9: PUSH1 0x04
000025ab: PUSH1 0x20
000025ad: SWAP1
000025ae: DUP2
000025af: MSTORE
000025b0: PUSH1 0x40
000025b2: SWAP1
000025b3: SWAP2
000025b4: KECCAK256
000025b5: DUP1
000025b6: SLOAD
000025b7: PUSH8 0xffffffffffffffff
000025c0: NOT
000025c1: DUP2
000025c2: AND
000025c3: PUSH1 0x01
000025c5: PUSH1 0x01
000025c7: PUSH1 0x40
000025c9: SHL
000025ca: SUB
000025cb: SWAP2
000025cc: DUP3
000025cd: AND
000025ce: DUP11
000025cf: ADD
000025d0: DUP3
000025d1: AND
000025d2: OR
000025d3: SWAP1
000025d4: SWAP2
000025d5: SSTORE
000025d6: DUP3
000025d7: MLOAD
000025d8: DUP9
000025d9: ADD
000025da: AND
000025db: DUP3
000025dc: MSTORE
000025dd: PUSH4 0xffffffff
000025e2: DUP7
000025e3: AND
000025e4: SWAP1
000025e5: DUP3
000025e6: ADD
000025e7: MSTORE
000025e8: PUSH2 0x25f1
000025eb: DUP9
000025ec: DUP3
000025ed: PUSH2 0x2ca2
000025f0: JUMP
000025f1: JUMPDEST
000025f2: PUSH2 0x25fc
000025f5: DUP9
000025f6: DUP9
000025f7: DUP9
000025f8: PUSH2 0x381f
000025fb: JUMP
000025fc: JUMPDEST
000025fd: PUSH32 0x334f906ad6a83b11ef611b474f217126a930d0beda33fe1f99567b0835051a4e
0000261e: DUP9
0000261f: DUP9
00002620: DUP9
00002621: DUP9
00002622: DUP9
00002623: DUP9
00002624: DUP9
00002625: PUSH1 0x40
00002627: MLOAD
00002628: DUP1
00002629: DUP9
0000262a: PUSH1 0x01
0000262c: PUSH1 0x01
0000262e: PUSH1 0xa0
00002630: SHL
00002631: SUB
00002632: AND
00002633: PUSH1 0x01
00002635: PUSH1 0x01
00002637: PUSH1 0xa0
00002639: SHL
0000263a: SUB
0000263b: AND
0000263c: DUP2
0000263d: MSTORE
0000263e: PUSH1 0x20
00002640: ADD
00002641: DUP8
00002642: PUSH2 0xffff
00002645: AND
00002646: PUSH2 0xffff
00002649: AND
0000264a: DUP2
0000264b: MSTORE
0000264c: PUSH1 0x20
0000264e: ADD
0000264f: DUP7
00002650: PUSH1 0x01
00002652: PUSH1 0x01
00002654: PUSH1 0x40
00002656: SHL
00002657: SUB
00002658: AND
00002659: PUSH1 0x01
0000265b: PUSH1 0x01
0000265d: PUSH1 0x40
0000265f: SHL
00002660: SUB
00002661: AND
00002662: DUP2
00002663: MSTORE
00002664: PUSH1 0x20
00002666: ADD
00002667: DUP6
00002668: PUSH4 0xffffffff
0000266d: AND
0000266e: PUSH4 0xffffffff
00002673: AND
00002674: DUP2
00002675: MSTORE
00002676: PUSH1 0x20
00002678: ADD
00002679: DUP5
0000267a: PUSH1 0x01
0000267c: PUSH1 0x01
0000267e: PUSH1 0xa0
00002680: SHL
00002681: SUB
00002682: AND
00002683: PUSH1 0x01
00002685: PUSH1 0x01
00002687: PUSH1 0xa0
00002689: SHL
0000268a: SUB
0000268b: AND
0000268c: DUP2
0000268d: MSTORE
0000268e: PUSH1 0x20
00002690: ADD
00002691: DUP1
00002692: PUSH1 0x20
00002694: ADD
00002695: DUP1
00002696: PUSH1 0x20
00002698: ADD
00002699: DUP4
0000269a: DUP2
0000269b: SUB
0000269c: DUP4
0000269d: MSTORE
0000269e: DUP6
0000269f: DUP2
000026a0: DUP2
000026a1: MLOAD
000026a2: DUP2
000026a3: MSTORE
000026a4: PUSH1 0x20
000026a6: ADD
000026a7: SWAP2
000026a8: POP
000026a9: DUP1
000026aa: MLOAD
000026ab: SWAP1
000026ac: PUSH1 0x20
000026ae: ADD
000026af: SWAP1
000026b0: DUP1
000026b1: DUP4
000026b2: DUP4
000026b3: PUSH1 0x00
000026b5: DUP4
000026b6: DUP2
000026b7: LT
000026b8: ISZERO
000026b9: PUSH2 0x13d3
000026bc: JUMPI
000026bd: DUP2
000026be: DUP2
000026bf: ADD
000026c0: MLOAD
000026c1: DUP4
000026c2: DUP3
000026c3: ADD
000026c4: MSTORE
000026c5: PUSH1 0x20
000026c7: ADD
000026c8: PUSH2 0x13bb
000026cb: JUMP
000026cc: JUMPDEST
000026cd: PUSH2 0x26d4
000026d0: PUSH2 0x1fc5
000026d3: JUMP
000026d4: JUMPDEST
000026d5: PUSH2 0x2713
000026d8: JUMPI
000026d9: PUSH1 0x40
000026db: DUP1
000026dc: MLOAD
000026dd: PUSH3 0x461bcd
000026e1: PUSH1 0xe5
000026e3: SHL
000026e4: DUP2
000026e5: MSTORE
000026e6: PUSH1 0x20
000026e8: PUSH1 0x04
000026ea: DUP3
000026eb: ADD
000026ec: DUP2
000026ed: SWAP1
000026ee: MSTORE
000026ef: PUSH1 0x24
000026f1: DUP3
000026f2: ADD
000026f3: MSTORE
000026f4: PUSH1 0x00
000026f6: DUP1
000026f7: MLOAD
000026f8: PUSH1 0x20
000026fa: PUSH2 0x434a
000026fd: DUP4
000026fe: CODECOPY
000026ff: DUP2
00002700: MLOAD
00002701: SWAP2
00002702: MSTORE
00002703: PUSH1 0x44
00002705: DUP3
00002706: ADD
00002707: MSTORE
00002708: SWAP1
00002709: MLOAD
0000270a: SWAP1
0000270b: DUP2
0000270c: SWAP1
0000270d: SUB
0000270e: PUSH1 0x64
00002710: ADD
00002711: SWAP1
00002712: REVERT
00002713: JUMPDEST
00002714: PUSH2 0x271e
00002717: DUP2
00002718: PUSH1 0x00
0000271a: PUSH2 0x34d3
0000271d: JUMP
0000271e: JUMPDEST
0000271f: PUSH1 0x40
00002721: DUP1
00002722: MLOAD
00002723: PUSH1 0x01
00002725: PUSH1 0x01
00002727: PUSH1 0xa0
00002729: SHL
0000272a: SUB
0000272b: DUP4
0000272c: AND
0000272d: DUP2
0000272e: MSTORE
0000272f: SWAP1
00002730: MLOAD
00002731: PUSH32 0xd09f686f0004011c426dd8e783304238db2b407d25f0cbcabd206d671dcfc6f3
00002752: SWAP2
00002753: DUP2
00002754: SWAP1
00002755: SUB
00002756: PUSH1 0x20
00002758: ADD
00002759: SWAP1
0000275a: LOG1
0000275b: POP
0000275c: JUMP
0000275d: JUMPDEST
0000275e: PUSH1 0x00
00002760: SLOAD
00002761: PUSH1 0x01
00002763: PUSH1 0xa0
00002765: SHL
00002766: SWAP1
00002767: DIV
00002768: PUSH1 0xff
0000276a: AND
0000276b: DUP2
0000276c: JUMP
0000276d: JUMPDEST
0000276e: PUSH2 0x2775
00002771: PUSH2 0x1fc5
00002774: JUMP
00002775: JUMPDEST
00002776: PUSH2 0x27b4
00002779: JUMPI
0000277a: PUSH1 0x40
0000277c: DUP1
0000277d: MLOAD
0000277e: PUSH3 0x461bcd
00002782: PUSH1 0xe5
00002784: SHL
00002785: DUP2
00002786: MSTORE
00002787: PUSH1 0x20
00002789: PUSH1 0x04
0000278b: DUP3
0000278c: ADD
0000278d: DUP2
0000278e: SWAP1
0000278f: MSTORE
00002790: PUSH1 0x24
00002792: DUP3
00002793: ADD
00002794: MSTORE
00002795: PUSH1 0x00
00002797: DUP1
00002798: MLOAD
00002799: PUSH1 0x20
0000279b: PUSH2 0x434a
0000279e: DUP4
0000279f: CODECOPY
000027a0: DUP2
000027a1: MLOAD
000027a2: SWAP2
000027a3: MSTORE
000027a4: PUSH1 0x44
000027a6: DUP3
000027a7: ADD
000027a8: MSTORE
000027a9: SWAP1
000027aa: MLOAD
000027ab: SWAP1
000027ac: DUP2
000027ad: SWAP1
000027ae: SUB
000027af: PUSH1 0x64
000027b1: ADD
000027b2: SWAP1
000027b3: REVERT
000027b4: JUMPDEST
000027b5: PUSH2 0x27bd
000027b8: DUP2
000027b9: PUSH2 0x3934
000027bc: JUMP
000027bd: JUMPDEST
000027be: POP
000027bf: JUMP
000027c0: JUMPDEST
000027c1: PUSH1 0x60
000027c3: DUP1
000027c4: PUSH1 0x00
000027c6: PUSH1 0x17
000027c8: SWAP1
000027c9: SLOAD
000027ca: SWAP1
000027cb: PUSH2 0x0100
000027ce: EXP
000027cf: SWAP1
000027d0: DIV
000027d1: PUSH2 0xffff
000027d4: AND
000027d5: PUSH2 0xffff
000027d8: AND
000027d9: PUSH1 0x40
000027db: MLOAD
000027dc: SWAP1
000027dd: DUP1
000027de: DUP3
000027df: MSTORE
000027e0: DUP1
000027e1: PUSH1 0x20
000027e3: MUL
000027e4: PUSH1 0x20
000027e6: ADD
000027e7: DUP3
000027e8: ADD
000027e9: PUSH1 0x40
000027eb: MSTORE
000027ec: DUP1
000027ed: ISZERO
000027ee: PUSH2 0x2801
000027f1: JUMPI
000027f2: DUP2
000027f3: PUSH1 0x20
000027f5: ADD
000027f6: PUSH1 0x20
000027f8: DUP3
000027f9: MUL
000027fa: DUP1
000027fb: CODESIZE
000027fc: DUP4
000027fd: CODECOPY
000027fe: ADD
000027ff: SWAP1
00002800: POP
00002801: JUMPDEST
00002802: POP
00002803: SWAP1
00002804: POP
00002805: PUSH1 0x00
00002807: JUMPDEST
00002808: PUSH1 0x00
0000280a: SLOAD
0000280b: PUSH2 0xffff
0000280e: PUSH1 0x01
00002810: PUSH1 0xb8
00002812: SHL
00002813: SWAP1
00002814: SWAP2
00002815: DIV
00002816: DUP2
00002817: AND
00002818: SWAP1
00002819: DUP3
0000281a: AND
0000281b: LT
0000281c: ISZERO
0000281d: PUSH2 0x187f
00002820: JUMPI
00002821: PUSH2 0xffff
00002824: DUP2
00002825: AND
00002826: PUSH1 0x00
00002828: DUP2
00002829: DUP2
0000282a: MSTORE
0000282b: PUSH1 0x05
0000282d: PUSH1 0x20
0000282f: SWAP1
00002830: DUP2
00002831: MSTORE
00002832: PUSH1 0x40
00002834: DUP1
00002835: DUP4
00002836: KECCAK256
00002837: SLOAD
00002838: PUSH1 0x04
0000283a: SWAP1
0000283b: SWAP3
0000283c: MSTORE
0000283d: SWAP1
0000283e: SWAP2
0000283f: KECCAK256
00002840: SLOAD
00002841: DUP5
00002842: MLOAD
00002843: PUSH1 0x01
00002845: PUSH1 0x01
00002847: PUSH1 0x40
00002849: SHL
0000284a: SUB
0000284b: SWAP2
0000284c: DUP3
0000284d: AND
0000284e: SWAP2
0000284f: SWAP1
00002850: SWAP3
00002851: AND
00002852: ADD
00002853: SWAP2
00002854: DUP5
00002855: SWAP2
00002856: DUP2
00002857: LT
00002858: PUSH2 0x285d
0000285b: JUMPI
0000285c: INVALID
0000285d: JUMPDEST
0000285e: PUSH1 0x01
00002860: PUSH1 0x01
00002862: PUSH1 0x40
00002864: SHL
00002865: SUB
00002866: SWAP1
00002867: SWAP3
00002868: AND
00002869: PUSH1 0x20
0000286b: SWAP3
0000286c: DUP4
0000286d: MUL
0000286e: SWAP2
0000286f: SWAP1
00002870: SWAP2
00002871: ADD
00002872: SWAP1
00002873: SWAP2
00002874: ADD
00002875: MSTORE
00002876: PUSH1 0x01
00002878: ADD
00002879: PUSH2 0x2807
0000287c: JUMP
0000287d: JUMPDEST
0000287e: PUSH1 0x00
00002880: PUSH2 0x288a
00002883: DUP4
00002884: PUSH1 0x00
00002886: PUSH2 0x0b79
00002889: JUMP
0000288a: JUMPDEST
0000288b: PUSH2 0x2896
0000288e: JUMPI
0000288f: POP
00002890: PUSH1 0x00
00002892: PUSH2 0x2964
00002895: JUMP
00002896: JUMPDEST
00002897: PUSH1 0x00
00002899: PUSH2 0x2940
0000289c: DUP7
0000289d: PUSH1 0x03
0000289f: DUP2
000028a0: GT
000028a1: ISZERO
000028a2: PUSH2 0x28a7
000028a5: JUMPI
000028a6: INVALID
000028a7: JUMPDEST
000028a8: DUP7
000028a9: DUP7
000028aa: PUSH1 0x40
000028ac: MLOAD
000028ad: PUSH1 0x20
000028af: ADD
000028b0: DUP1
000028b1: DUP5
000028b2: PUSH1 0xff
000028b4: AND
000028b5: PUSH1 0xff
000028b7: AND
000028b8: PUSH1 0xf8
000028ba: SHL
000028bb: DUP2
000028bc: MSTORE
000028bd: PUSH1 0x01
000028bf: ADD
000028c0: DUP4
000028c1: DUP1
000028c2: MLOAD
000028c3: SWAP1
000028c4: PUSH1 0x20
000028c6: ADD
000028c7: SWAP1
000028c8: DUP1
000028c9: DUP4
000028ca: DUP4
000028cb: JUMPDEST
000028cc: PUSH1 0x20
000028ce: DUP4
000028cf: LT
000028d0: PUSH2 0x28ea
000028d3: JUMPI
000028d4: DUP1
000028d5: MLOAD
000028d6: DUP3
000028d7: MSTORE
000028d8: PUSH1 0x1f
000028da: NOT
000028db: SWAP1
000028dc: SWAP3
000028dd: ADD
000028de: SWAP2
000028df: PUSH1 0x20
000028e1: SWAP2
000028e2: DUP3
000028e3: ADD
000028e4: SWAP2
000028e5: ADD
000028e6: PUSH2 0x28cb
000028e9: JUMP
000028ea: JUMPDEST
000028eb: PUSH1 0x01
000028ed: DUP4
000028ee: PUSH1 0x20
000028f0: SUB
000028f1: PUSH2 0x0100
000028f4: EXP
000028f5: SUB
000028f6: DUP1
000028f7: NOT
000028f8: DUP3
000028f9: MLOAD
000028fa: AND
000028fb: DUP2
000028fc: DUP5
000028fd: MLOAD
000028fe: AND
000028ff: DUP1
00002900: DUP3
00002901: OR
00002902: DUP6
00002903: MSTORE
00002904: POP
00002905: POP
00002906: POP
00002907: POP
00002908: POP
00002909: POP
0000290a: SWAP1
0000290b: POP
0000290c: ADD
0000290d: DUP3
0000290e: PUSH1 0x01
00002910: PUSH1 0x01
00002912: PUSH1 0xa0
00002914: SHL
00002915: SUB
00002916: AND
00002917: PUSH1 0x01
00002919: PUSH1 0x01
0000291b: PUSH1 0xa0
0000291d: SHL
0000291e: SUB
0000291f: AND
00002920: PUSH1 0x60
00002922: SHL
00002923: DUP2
00002924: MSTORE
00002925: PUSH1 0x14
00002927: ADD
00002928: SWAP4
00002929: POP
0000292a: POP
0000292b: POP
0000292c: POP
0000292d: PUSH1 0x40
0000292f: MLOAD
00002930: PUSH1 0x20
00002932: DUP2
00002933: DUP4
00002934: SUB
00002935: SUB
00002936: DUP2
00002937: MSTORE
00002938: SWAP1
00002939: PUSH1 0x40
0000293b: MSTORE
0000293c: PUSH2 0x39d4
0000293f: JUMP
00002940: JUMPDEST
00002941: SWAP1
00002942: POP
00002943: DUP4
00002944: PUSH1 0x01
00002946: PUSH1 0x01
00002948: PUSH1 0xa0
0000294a: SHL
0000294b: SUB
0000294c: AND
0000294d: PUSH2 0x2956
00002950: DUP3
00002951: DUP6
00002952: PUSH2 0x3a25
00002955: JUMP
00002956: JUMPDEST
00002957: PUSH1 0x01
00002959: PUSH1 0x01
0000295b: PUSH1 0xa0
0000295d: SHL
0000295e: SUB
0000295f: AND
00002960: EQ
00002961: SWAP2
00002962: POP
00002963: POP
00002964: JUMPDEST
00002965: SWAP5
00002966: SWAP4
00002967: POP
00002968: POP
00002969: POP
0000296a: POP
0000296b: JUMP
0000296c: JUMPDEST
0000296d: PUSH1 0x0e
0000296f: SWAP2
00002970: DUP3
00002971: MUL
00002972: PUSH2 0xffff
00002975: AND
00002976: ADD
00002977: SWAP2
00002978: SWAP1
00002979: SWAP2
0000297a: ADD
0000297b: PUSH1 0x02
0000297d: DUP2
0000297e: ADD
0000297f: MLOAD
00002980: PUSH1 0x0a
00002982: DUP3
00002983: ADD
00002984: MLOAD
00002985: SWAP2
00002986: SWAP1
00002987: SWAP3
00002988: ADD
00002989: MLOAD
0000298a: SWAP2
0000298b: SWAP3
0000298c: SWAP1
0000298d: SWAP2
0000298e: SWAP1
0000298f: JUMP
00002990: JUMPDEST
00002991: DUP2
00002992: DUP4
00002993: ADD
00002994: PUSH1 0x42
00002996: DUP2
00002997: ADD
00002998: MLOAD
00002999: PUSH1 0x62
0000299b: DUP3
0000299c: ADD
0000299d: MLOAD
0000299e: PUSH1 0x63
000029a0: DUP4
000029a1: ADD
000029a2: MLOAD
000029a3: PUSH1 0x00
000029a5: SWAP4
000029a6: SWAP3
000029a7: SWAP2
000029a8: SWAP1
000029a9: PUSH1 0x60
000029ab: PUSH2 0x29b6
000029ae: DUP10
000029af: DUP10
000029b0: PUSH1 0x22
000029b2: PUSH2 0x3ab5
000029b5: JUMP
000029b6: JUMPDEST
000029b7: SWAP1
000029b8: POP
000029b9: PUSH1 0x00
000029bb: PUSH2 0x2a3a
000029be: DUP2
000029bf: DUP4
000029c0: PUSH1 0x40
000029c2: MLOAD
000029c3: PUSH1 0x20
000029c5: ADD
000029c6: DUP1
000029c7: DUP4
000029c8: PUSH1 0xff
000029ca: AND
000029cb: PUSH1 0xff
000029cd: AND
000029ce: PUSH1 0xf8
000029d0: SHL
000029d1: DUP2
000029d2: MSTORE
000029d3: PUSH1 0x01
000029d5: ADD
000029d6: DUP3
000029d7: DUP1
000029d8: MLOAD
000029d9: SWAP1
000029da: PUSH1 0x20
000029dc: ADD
000029dd: SWAP1
000029de: DUP1
000029df: DUP4
000029e0: DUP4
000029e1: JUMPDEST
000029e2: PUSH1 0x20
000029e4: DUP4
000029e5: LT
000029e6: PUSH2 0x2a00
000029e9: JUMPI
000029ea: DUP1
000029eb: MLOAD
000029ec: DUP3
000029ed: MSTORE
000029ee: PUSH1 0x1f
000029f0: NOT
000029f1: SWAP1
000029f2: SWAP3
000029f3: ADD
000029f4: SWAP2
000029f5: PUSH1 0x20
000029f7: SWAP2
000029f8: DUP3
000029f9: ADD
000029fa: SWAP2
000029fb: ADD
000029fc: PUSH2 0x29e1
000029ff: JUMP
00002a00: JUMPDEST
00002a01: PUSH1 0x01
00002a03: DUP4
00002a04: PUSH1 0x20
00002a06: SUB
00002a07: PUSH2 0x0100
00002a0a: EXP
00002a0b: SUB
00002a0c: DUP1
00002a0d: NOT
00002a0e: DUP3
00002a0f: MLOAD
00002a10: AND
00002a11: DUP2
00002a12: DUP5
00002a13: MLOAD
00002a14: AND
00002a15: DUP1
00002a16: DUP3
00002a17: OR
00002a18: DUP6
00002a19: MSTORE
00002a1a: POP
00002a1b: POP
00002a1c: POP
00002a1d: POP
00002a1e: POP
00002a1f: POP
00002a20: SWAP1
00002a21: POP
00002a22: ADD
00002a23: SWAP3
00002a24: POP
00002a25: POP
00002a26: POP
00002a27: PUSH1 0x40
00002a29: MLOAD
00002a2a: PUSH1 0x20
00002a2c: DUP2
00002a2d: DUP4
00002a2e: SUB
00002a2f: SUB
00002a30: DUP2
00002a31: MSTORE
00002a32: SWAP1
00002a33: PUSH1 0x40
00002a35: MSTORE
00002a36: PUSH2 0x39d4
00002a39: JUMP
00002a3a: JUMPDEST
00002a3b: SWAP1
00002a3c: POP
00002a3d: PUSH1 0x1b
00002a3f: DUP4
00002a40: PUSH1 0xff
00002a42: AND
00002a43: LT
00002a44: ISZERO
00002a45: PUSH2 0x2a4f
00002a48: JUMPI
00002a49: PUSH1 0x1b
00002a4b: DUP4
00002a4c: ADD
00002a4d: SWAP3
00002a4e: POP
00002a4f: JUMPDEST
00002a50: PUSH1 0x40
00002a52: DUP1
00002a53: MLOAD
00002a54: PUSH1 0x00
00002a56: DUP2
00002a57: MSTORE
00002a58: PUSH1 0x20
00002a5a: DUP1
00002a5b: DUP3
00002a5c: ADD
00002a5d: DUP1
00002a5e: DUP5
00002a5f: MSTORE
00002a60: DUP5
00002a61: SWAP1
00002a62: MSTORE
00002a63: PUSH1 0xff
00002a65: DUP7
00002a66: AND
00002a67: DUP3
00002a68: DUP5
00002a69: ADD
00002a6a: MSTORE
00002a6b: PUSH1 0x60
00002a6d: DUP3
00002a6e: ADD
00002a6f: DUP9
00002a70: SWAP1
00002a71: MSTORE
00002a72: PUSH1 0x80
00002a74: DUP3
00002a75: ADD
00002a76: DUP8
00002a77: SWAP1
00002a78: MSTORE
00002a79: SWAP2
00002a7a: MLOAD
00002a7b: PUSH1 0x01
00002a7d: PUSH1 0x01
00002a7f: PUSH1 0xa0
00002a81: SHL
00002a82: SUB
00002a83: DUP12
00002a84: AND
00002a85: SWAP3
00002a86: PUSH1 0x01
00002a88: SWAP3
00002a89: PUSH1 0xa0
00002a8b: DUP1
00002a8c: DUP3
00002a8d: ADD
00002a8e: SWAP4
00002a8f: PUSH1 0x1f
00002a91: NOT
00002a92: DUP2
00002a93: ADD
00002a94: SWAP3
00002a95: DUP2
00002a96: SWAP1
00002a97: SUB
00002a98: SWAP1
00002a99: SWAP2
00002a9a: ADD
00002a9b: SWAP1
00002a9c: DUP6
00002a9d: GAS
00002a9e: STATICCALL
00002a9f: ISZERO
00002aa0: DUP1
00002aa1: ISZERO
00002aa2: PUSH2 0x2aaf
00002aa5: JUMPI
00002aa6: RETURNDATASIZE
00002aa7: PUSH1 0x00
00002aa9: DUP1
00002aaa: RETURNDATACOPY
00002aab: RETURNDATASIZE
00002aac: PUSH1 0x00
00002aae: REVERT
00002aaf: JUMPDEST
00002ab0: POP
00002ab1: POP
00002ab2: POP
00002ab3: PUSH1 0x20
00002ab5: PUSH1 0x40
00002ab7: MLOAD
00002ab8: SUB
00002ab9: MLOAD
00002aba: PUSH1 0x01
00002abc: PUSH1 0x01
00002abe: PUSH1 0xa0
00002ac0: SHL
00002ac1: SUB
00002ac2: AND
00002ac3: EQ
00002ac4: SWAP7
00002ac5: POP
00002ac6: POP
00002ac7: POP
00002ac8: POP
00002ac9: POP
00002aca: POP
00002acb: POP
00002acc: SWAP4
00002acd: SWAP3
00002ace: POP
00002acf: POP
00002ad0: POP
00002ad1: JUMP
00002ad2: JUMPDEST
00002ad3: PUSH2 0x2ada
00002ad6: PUSH2 0x4035
00002ad9: JUMP
00002ada: JUMPDEST
00002adb: PUSH1 0x01
00002add: PUSH1 0x01
00002adf: PUSH1 0xa0
00002ae1: SHL
00002ae2: SUB
00002ae3: DUP4
00002ae4: AND
00002ae5: PUSH1 0x00
00002ae7: SWAP1
00002ae8: DUP2
00002ae9: MSTORE
00002aea: PUSH1 0x02
00002aec: PUSH1 0x20
00002aee: DUP2
00002aef: SWAP1
00002af0: MSTORE
00002af1: PUSH1 0x40
00002af3: SWAP1
00002af4: SWAP2
00002af5: KECCAK256
00002af6: SLOAD
00002af7: PUSH1 0x15
00002af9: PUSH1 0x00
00002afb: NOT
00002afc: PUSH2 0x0100
00002aff: PUSH1 0x01
00002b01: DUP5
00002b02: AND
00002b03: ISZERO
00002b04: MUL
00002b05: ADD
00002b06: SWAP1
00002b07: SWAP2
00002b08: AND
00002b09: SWAP2
00002b0a: SWAP1
00002b0b: SWAP2
00002b0c: DIV
00002b0d: LT
00002b0e: PUSH2 0x2c71
00002b11: JUMPI
00002b12: PUSH1 0x01
00002b14: PUSH1 0x01
00002b16: PUSH1 0xa0
00002b18: SHL
00002b19: SUB
00002b1a: DUP4
00002b1b: AND
00002b1c: PUSH1 0x00
00002b1e: SWAP1
00002b1f: DUP2
00002b20: MSTORE
00002b21: PUSH1 0x02
00002b23: PUSH1 0x20
00002b25: DUP2
00002b26: SWAP1
00002b27: MSTORE
00002b28: PUSH1 0x40
00002b2a: DUP3
00002b2b: KECCAK256
00002b2c: SLOAD
00002b2d: PUSH1 0x0e
00002b2f: SWAP2
00002b30: PUSH1 0x06
00002b32: NOT
00002b33: PUSH1 0x00
00002b35: NOT
00002b36: PUSH2 0x0100
00002b39: PUSH1 0x01
00002b3b: DUP6
00002b3c: AND
00002b3d: ISZERO
00002b3e: MUL
00002b3f: ADD
00002b40: SWAP1
00002b41: SWAP3
00002b42: AND
00002b43: DIV
00002b44: ADD
00002b45: DIV
00002b46: SWAP1
00002b47: POP
00002b48: PUSH1 0x00
00002b4a: JUMPDEST
00002b4b: DUP2
00002b4c: PUSH2 0xffff
00002b4f: AND
00002b50: DUP2
00002b51: PUSH2 0xffff
00002b54: AND
00002b55: LT
00002b56: ISZERO
00002b57: PUSH2 0x2c6e
00002b5a: JUMPI
00002b5b: PUSH1 0x01
00002b5d: PUSH1 0x01
00002b5f: PUSH1 0xa0
00002b61: SHL
00002b62: SUB
00002b63: DUP6
00002b64: AND
00002b65: PUSH1 0x00
00002b67: SWAP1
00002b68: DUP2
00002b69: MSTORE
00002b6a: PUSH1 0x02
00002b6c: PUSH1 0x20
00002b6e: DUP2
00002b6f: DUP2
00002b70: MSTORE
00002b71: PUSH1 0x40
00002b73: DUP1
00002b74: DUP5
00002b75: KECCAK256
00002b76: DUP1
00002b77: SLOAD
00002b78: DUP3
00002b79: MLOAD
00002b7a: PUSH1 0x01
00002b7c: DUP3
00002b7d: AND
00002b7e: ISZERO
00002b7f: PUSH2 0x0100
00002b82: MUL
00002b83: PUSH1 0x00
00002b85: NOT
00002b86: ADD
00002b87: SWAP1
00002b88: SWAP2
00002b89: AND
00002b8a: SWAP5
00002b8b: SWAP1
00002b8c: SWAP5
00002b8d: DIV
00002b8e: PUSH1 0x1f
00002b90: DUP2
00002b91: ADD
00002b92: DUP5
00002b93: SWAP1
00002b94: DIV
00002b95: DUP5
00002b96: MUL
00002b97: DUP6
00002b98: ADD
00002b99: DUP5
00002b9a: ADD
00002b9b: SWAP1
00002b9c: SWAP3
00002b9d: MSTORE
00002b9e: DUP2
00002b9f: DUP5
00002ba0: MSTORE
00002ba1: DUP5
00002ba2: SWAP4
00002ba3: DUP5
00002ba4: SWAP4
00002ba5: PUSH2 0x2c0a
00002ba8: SWAP4
00002ba9: SWAP2
00002baa: SWAP3
00002bab: SWAP2
00002bac: SWAP1
00002bad: DUP4
00002bae: ADD
00002baf: DUP3
00002bb0: DUP3
00002bb1: DUP1
00002bb2: ISZERO
00002bb3: PUSH2 0x2bfd
00002bb6: JUMPI
00002bb7: DUP1
00002bb8: PUSH1 0x1f
00002bba: LT
00002bbb: PUSH2 0x2bd2
00002bbe: JUMPI
00002bbf: PUSH2 0x0100
00002bc2: DUP1
00002bc3: DUP4
00002bc4: SLOAD
00002bc5: DIV
00002bc6: MUL
00002bc7: DUP4
00002bc8: MSTORE
00002bc9: SWAP2
00002bca: PUSH1 0x20
00002bcc: ADD
00002bcd: SWAP2
00002bce: PUSH2 0x2bfd
00002bd1: JUMP
00002bd2: JUMPDEST
00002bd3: DUP3
00002bd4: ADD
00002bd5: SWAP2
00002bd6: SWAP1
00002bd7: PUSH1 0x00
00002bd9: MSTORE
00002bda: PUSH1 0x20
00002bdc: PUSH1 0x00
00002bde: KECCAK256
00002bdf: SWAP1
00002be0: JUMPDEST
00002be1: DUP2
00002be2: SLOAD
00002be3: DUP2
00002be4: MSTORE
00002be5: SWAP1
00002be6: PUSH1 0x01
00002be8: ADD
00002be9: SWAP1
00002bea: PUSH1 0x20
00002bec: ADD
00002bed: DUP1
00002bee: DUP4
00002bef: GT
00002bf0: PUSH2 0x2be0
00002bf3: JUMPI
00002bf4: DUP3
00002bf5: SWAP1
00002bf6: SUB
00002bf7: PUSH1 0x1f
00002bf9: AND
00002bfa: DUP3
00002bfb: ADD
00002bfc: SWAP2
00002bfd: JUMPDEST
00002bfe: POP
00002bff: POP
00002c00: POP
00002c01: POP
00002c02: POP
00002c03: DUP6
00002c04: PUSH1 0x07
00002c06: PUSH2 0x296c
00002c09: JUMP
00002c0a: JUMPDEST
00002c0b: SWAP3
00002c0c: POP
00002c0d: SWAP3
00002c0e: POP
00002c0f: SWAP3
00002c10: POP
00002c11: DUP7
00002c12: PUSH2 0xffff
00002c15: AND
00002c16: DUP4
00002c17: PUSH2 0xffff
00002c1a: AND
00002c1b: EQ
00002c1c: ISZERO
00002c1d: PUSH2 0x2c63
00002c20: JUMPI
00002c21: PUSH1 0x40
00002c23: MLOAD
00002c24: DUP1
00002c25: PUSH1 0x80
00002c27: ADD
00002c28: PUSH1 0x40
00002c2a: MSTORE
00002c2b: DUP1
00002c2c: DUP4
00002c2d: PUSH1 0x01
00002c2f: PUSH1 0x01
00002c31: PUSH1 0x40
00002c33: SHL
00002c34: SUB
00002c35: AND
00002c36: DUP2
00002c37: MSTORE
00002c38: PUSH1 0x20
00002c3a: ADD
00002c3b: DUP3
00002c3c: PUSH4 0xffffffff
00002c41: AND
00002c42: DUP2
00002c43: MSTORE
00002c44: PUSH1 0x20
00002c46: ADD
00002c47: DUP6
00002c48: PUSH2 0xffff
00002c4b: AND
00002c4c: DUP2
00002c4d: MSTORE
00002c4e: PUSH1 0x20
00002c50: ADD
00002c51: PUSH1 0x01
00002c53: ISZERO
00002c54: ISZERO
00002c55: DUP2
00002c56: MSTORE
00002c57: POP
00002c58: SWAP6
00002c59: POP
00002c5a: POP
00002c5b: POP
00002c5c: POP
00002c5d: POP
00002c5e: POP
00002c5f: PUSH2 0x0c99
00002c62: JUMP
00002c63: JUMPDEST
00002c64: POP
00002c65: POP
00002c66: POP
00002c67: PUSH1 0x01
00002c69: ADD
00002c6a: PUSH2 0x2b4a
00002c6d: JUMP
00002c6e: JUMPDEST
00002c6f: POP
00002c70: POP
00002c71: JUMPDEST
00002c72: POP
00002c73: PUSH1 0x40
00002c75: DUP1
00002c76: MLOAD
00002c77: PUSH1 0x80
00002c79: DUP2
00002c7a: ADD
00002c7b: DUP3
00002c7c: MSTORE
00002c7d: PUSH1 0x00
00002c7f: DUP1
00002c80: DUP3
00002c81: MSTORE
00002c82: PUSH1 0x20
00002c84: DUP3
00002c85: ADD
00002c86: DUP2
00002c87: SWAP1
00002c88: MSTORE
00002c89: PUSH2 0xffff
00002c8c: DUP5
00002c8d: AND
00002c8e: SWAP3
00002c8f: DUP3
00002c90: ADD
00002c91: SWAP3
00002c92: SWAP1
00002c93: SWAP3
00002c94: MSTORE
00002c95: PUSH1 0x60
00002c97: DUP2
00002c98: ADD
00002c99: SWAP2
00002c9a: SWAP1
00002c9b: SWAP2
00002c9c: MSTORE
00002c9d: SWAP3
00002c9e: SWAP2
00002c9f: POP
00002ca0: POP
00002ca1: JUMP
00002ca2: JUMPDEST
00002ca3: PUSH1 0x60
00002ca5: DUP2
00002ca6: PUSH1 0x60
00002ca8: ADD
00002ca9: MLOAD
00002caa: ISZERO
00002cab: PUSH2 0x2dcf
00002cae: JUMPI
00002caf: PUSH1 0x00
00002cb1: DUP3
00002cb2: PUSH1 0x40
00002cb4: ADD
00002cb5: MLOAD
00002cb6: PUSH1 0x0e
00002cb8: MUL
00002cb9: PUSH1 0x09
00002cbb: ADD
00002cbc: PUSH2 0xffff
00002cbf: AND
00002cc0: SWAP1
00002cc1: POP
00002cc2: DUP3
00002cc3: PUSH1 0x00
00002cc5: ADD
00002cc6: MLOAD
00002cc7: DUP4
00002cc8: PUSH1 0x20
00002cca: ADD
00002ccb: MLOAD
00002ccc: PUSH1 0x40
00002cce: MLOAD
00002ccf: PUSH1 0x20
00002cd1: ADD
00002cd2: DUP1
00002cd3: DUP4
00002cd4: PUSH1 0x01
00002cd6: PUSH1 0x01
00002cd8: PUSH1 0x40
00002cda: SHL
00002cdb: SUB
00002cdc: AND
00002cdd: PUSH1 0x01
00002cdf: PUSH1 0x01
00002ce1: PUSH1 0x40
00002ce3: SHL
00002ce4: SUB
00002ce5: AND
00002ce6: PUSH1 0xc0
00002ce8: SHL
00002ce9: DUP2
00002cea: MSTORE
00002ceb: PUSH1 0x08
00002ced: ADD
00002cee: DUP3
00002cef: PUSH4 0xffffffff
00002cf4: AND
00002cf5: PUSH4 0xffffffff
00002cfa: AND
00002cfb: PUSH1 0xe0
00002cfd: SHL
00002cfe: DUP2
00002cff: MSTORE
00002d00: PUSH1 0x04
00002d02: ADD
00002d03: SWAP3
00002d04: POP
00002d05: POP
00002d06: POP
00002d07: PUSH1 0x40
00002d09: MLOAD
00002d0a: PUSH1 0x20
00002d0c: DUP2
00002d0d: DUP4
00002d0e: SUB
00002d0f: SUB
00002d10: DUP2
00002d11: MSTORE
00002d12: SWAP1
00002d13: PUSH1 0x40
00002d15: MSTORE
00002d16: SWAP2
00002d17: POP
00002d18: PUSH1 0x00
00002d1a: DUP1
00002d1b: SWAP1
00002d1c: POP
00002d1d: JUMPDEST
00002d1e: PUSH1 0x0c
00002d20: DUP2
00002d21: LT
00002d22: ISZERO
00002d23: PUSH2 0x2dc8
00002d26: JUMPI
00002d27: DUP3
00002d28: DUP2
00002d29: DUP2
00002d2a: MLOAD
00002d2b: DUP2
00002d2c: LT
00002d2d: PUSH2 0x2d32
00002d30: JUMPI
00002d31: INVALID
00002d32: JUMPDEST
00002d33: PUSH1 0x20
00002d35: ADD
00002d36: ADD
00002d37: MLOAD
00002d38: PUSH1 0xf8
00002d3a: SHR
00002d3b: PUSH1 0xf8
00002d3d: SHL
00002d3e: PUSH1 0x02
00002d40: PUSH1 0x00
00002d42: DUP8
00002d43: PUSH1 0x01
00002d45: PUSH1 0x01
00002d47: PUSH1 0xa0
00002d49: SHL
00002d4a: SUB
00002d4b: AND
00002d4c: PUSH1 0x01
00002d4e: PUSH1 0x01
00002d50: PUSH1 0xa0
00002d52: SHL
00002d53: SUB
00002d54: AND
00002d55: DUP2
00002d56: MSTORE
00002d57: PUSH1 0x20
00002d59: ADD
00002d5a: SWAP1
00002d5b: DUP2
00002d5c: MSTORE
00002d5d: PUSH1 0x20
00002d5f: ADD
00002d60: PUSH1 0x00
00002d62: KECCAK256
00002d63: DUP3
00002d64: DUP5
00002d65: ADD
00002d66: DUP2
00002d67: SLOAD
00002d68: PUSH1 0x01
00002d6a: DUP2
00002d6b: PUSH1 0x01
00002d6d: AND
00002d6e: ISZERO
00002d6f: PUSH2 0x0100
00002d72: MUL
00002d73: SUB
00002d74: AND
00002d75: PUSH1 0x02
00002d77: SWAP1
00002d78: DIV
00002d79: DUP2
00002d7a: LT
00002d7b: PUSH2 0x2d80
00002d7e: JUMPI
00002d7f: INVALID
00002d80: JUMPDEST
00002d81: DUP2
00002d82: SLOAD
00002d83: PUSH1 0x01
00002d85: AND
00002d86: ISZERO
00002d87: PUSH2 0x2d9f
00002d8a: JUMPI
00002d8b: SWAP1
00002d8c: PUSH1 0x00
00002d8e: MSTORE
00002d8f: PUSH1 0x20
00002d91: PUSH1 0x00
00002d93: KECCAK256
00002d94: SWAP1
00002d95: PUSH1 0x20
00002d97: SWAP2
00002d98: DUP3
00002d99: DUP3
00002d9a: DIV
00002d9b: ADD
00002d9c: SWAP2
00002d9d: SWAP1
00002d9e: MOD
00002d9f: JUMPDEST
00002da0: PUSH1 0x1f
00002da2: SUB
00002da3: PUSH2 0x0100
00002da6: EXP
00002da7: DUP2
00002da8: SLOAD
00002da9: DUP2
00002daa: PUSH1 0xff
00002dac: MUL
00002dad: NOT
00002dae: AND
00002daf: SWAP1
00002db0: PUSH1 0x01
00002db2: PUSH1 0xf8
00002db4: SHL
00002db5: DUP5
00002db6: DIV
00002db7: MUL
00002db8: OR
00002db9: SWAP1
00002dba: SSTORE
00002dbb: POP
00002dbc: DUP1
00002dbd: DUP1
00002dbe: PUSH1 0x01
00002dc0: ADD
00002dc1: SWAP2
00002dc2: POP
00002dc3: POP
00002dc4: PUSH2 0x2d1d
00002dc7: JUMP
00002dc8: JUMPDEST
00002dc9: POP
00002dca: POP
00002dcb: PUSH2 0x2fd6
00002dce: JUMP
00002dcf: JUMPDEST
00002dd0: POP
00002dd1: PUSH1 0x40
00002dd3: DUP2
00002dd4: DUP2
00002dd5: ADD
00002dd6: MLOAD
00002dd7: DUP3
00002dd8: MLOAD
00002dd9: PUSH1 0x20
00002ddb: DUP1
00002ddc: DUP6
00002ddd: ADD
00002dde: MLOAD
00002ddf: DUP5
00002de0: MLOAD
00002de1: PUSH1 0xf0
00002de3: SWAP5
00002de4: SWAP1
00002de5: SWAP5
00002de6: SHL
00002de7: PUSH1 0x01
00002de9: PUSH1 0x01
00002deb: PUSH1 0xf0
00002ded: SHL
00002dee: SUB
00002def: NOT
00002df0: AND
00002df1: DUP5
00002df2: DUP4
00002df3: ADD
00002df4: MSTORE
00002df5: PUSH1 0xc0
00002df7: SWAP3
00002df8: SWAP1
00002df9: SWAP3
00002dfa: SHL
00002dfb: PUSH1 0x01
00002dfd: PUSH1 0x01
00002dff: PUSH1 0xc0
00002e01: SHL
00002e02: SUB
00002e03: NOT
00002e04: AND
00002e05: PUSH1 0x22
00002e07: DUP5
00002e08: ADD
00002e09: MSTORE
00002e0a: PUSH1 0xe0
00002e0c: SWAP2
00002e0d: SWAP1
00002e0e: SWAP2
00002e0f: SHL
00002e10: PUSH1 0x01
00002e12: PUSH1 0x01
00002e14: PUSH1 0xe0
00002e16: SHL
00002e17: SUB
00002e18: NOT
00002e19: AND
00002e1a: PUSH1 0x2a
00002e1c: DUP4
00002e1d: ADD
00002e1e: MSTORE
00002e1f: DUP3
00002e20: MLOAD
00002e21: DUP1
00002e22: DUP4
00002e23: SUB
00002e24: PUSH1 0x0e
00002e26: ADD
00002e27: DUP2
00002e28: MSTORE
00002e29: PUSH1 0x2e
00002e2b: SWAP1
00002e2c: SWAP3
00002e2d: ADD
00002e2e: DUP4
00002e2f: MSTORE
00002e30: PUSH1 0x01
00002e32: PUSH1 0x01
00002e34: PUSH1 0xa0
00002e36: SHL
00002e37: SUB
00002e38: DUP6
00002e39: AND
00002e3a: PUSH1 0x00
00002e3c: SWAP1
00002e3d: DUP2
00002e3e: MSTORE
00002e3f: PUSH1 0x02
00002e41: SWAP2
00002e42: DUP3
00002e43: SWAP1
00002e44: MSTORE
00002e45: SWAP3
00002e46: SWAP1
00002e47: SWAP3
00002e48: KECCAK256
00002e49: SLOAD
00002e4a: SWAP1
00002e4b: SWAP2
00002e4c: PUSH1 0x01
00002e4e: DUP3
00002e4f: AND
00002e50: ISZERO
00002e51: PUSH2 0x0100
00002e54: MUL
00002e55: PUSH1 0x00
00002e57: NOT
00002e58: ADD
00002e59: SWAP1
00002e5a: SWAP2
00002e5b: AND
00002e5c: DIV
00002e5d: PUSH2 0x2eec
00002e60: JUMPI
00002e61: PUSH1 0x00
00002e63: DUP2
00002e64: PUSH1 0x40
00002e66: MLOAD
00002e67: PUSH1 0x20
00002e69: ADD
00002e6a: DUP1
00002e6b: DUP4
00002e6c: PUSH7 0xffffffffffffff
00002e74: AND
00002e75: PUSH7 0xffffffffffffff
00002e7d: AND
00002e7e: PUSH1 0xc8
00002e80: SHL
00002e81: DUP2
00002e82: MSTORE
00002e83: PUSH1 0x07
00002e85: ADD
00002e86: DUP3
00002e87: DUP1
00002e88: MLOAD
00002e89: SWAP1
00002e8a: PUSH1 0x20
00002e8c: ADD
00002e8d: SWAP1
00002e8e: DUP1
00002e8f: DUP4
00002e90: DUP4
00002e91: JUMPDEST
00002e92: PUSH1 0x20
00002e94: DUP4
00002e95: LT
00002e96: PUSH2 0x2eb0
00002e99: JUMPI
00002e9a: DUP1
00002e9b: MLOAD
00002e9c: DUP3
00002e9d: MSTORE
00002e9e: PUSH1 0x1f
00002ea0: NOT
00002ea1: SWAP1
00002ea2: SWAP3
00002ea3: ADD
00002ea4: SWAP2
00002ea5: PUSH1 0x20
00002ea7: SWAP2
00002ea8: DUP3
00002ea9: ADD
00002eaa: SWAP2
00002eab: ADD
00002eac: PUSH2 0x2e91
00002eaf: JUMP
00002eb0: JUMPDEST
00002eb1: PUSH1 0x01
00002eb3: DUP4
00002eb4: PUSH1 0x20
00002eb6: SUB
00002eb7: PUSH2 0x0100
00002eba: EXP
00002ebb: SUB
00002ebc: DUP1
00002ebd: NOT
00002ebe: DUP3
00002ebf: MLOAD
00002ec0: AND
00002ec1: DUP2
00002ec2: DUP5
00002ec3: MLOAD
00002ec4: AND
00002ec5: DUP1
00002ec6: DUP3
00002ec7: OR
00002ec8: DUP6
00002ec9: MSTORE
00002eca: POP
00002ecb: POP
00002ecc: POP
00002ecd: POP
00002ece: POP
00002ecf: POP
00002ed0: SWAP1
00002ed1: POP
00002ed2: ADD
00002ed3: SWAP3
00002ed4: POP
00002ed5: POP
00002ed6: POP
00002ed7: PUSH1 0x40
00002ed9: MLOAD
00002eda: PUSH1 0x20
00002edc: DUP2
00002edd: DUP4
00002ede: SUB
00002edf: SUB
00002ee0: DUP2
00002ee1: MSTORE
00002ee2: SWAP1
00002ee3: PUSH1 0x40
00002ee5: MSTORE
00002ee6: SWAP1
00002ee7: POP
00002ee8: PUSH2 0x2fb4
00002eeb: JUMP
00002eec: JUMPDEST
00002eed: PUSH1 0x02
00002eef: PUSH1 0x00
00002ef1: DUP5
00002ef2: PUSH1 0x01
00002ef4: PUSH1 0x01
00002ef6: PUSH1 0xa0
00002ef8: SHL
00002ef9: SUB
00002efa: AND
00002efb: PUSH1 0x01
00002efd: PUSH1 0x01
00002eff: PUSH1 0xa0
00002f01: SHL
00002f02: SUB
00002f03: AND
00002f04: DUP2
00002f05: MSTORE
00002f06: PUSH1 0x20
00002f08: ADD
00002f09: SWAP1
00002f0a: DUP2
00002f0b: MSTORE
00002f0c: PUSH1 0x20
00002f0e: ADD
00002f0f: PUSH1 0x00
00002f11: KECCAK256
00002f12: DUP1
00002f13: SLOAD
00002f14: PUSH1 0x01
00002f16: DUP2
00002f17: PUSH1 0x01
00002f19: AND
00002f1a: ISZERO
00002f1b: PUSH2 0x0100
00002f1e: MUL
00002f1f: SUB
00002f20: AND
00002f21: PUSH1 0x02
00002f23: SWAP1
00002f24: DIV
00002f25: SWAP1
00002f26: POP
00002f27: PUSH1 0x01
00002f29: EQ
00002f2a: ISZERO
00002f2b: PUSH2 0x2fb4
00002f2e: JUMPI
00002f2f: PUSH1 0x00
00002f31: DUP2
00002f32: PUSH1 0x40
00002f34: MLOAD
00002f35: PUSH1 0x20
00002f37: ADD
00002f38: DUP1
00002f39: DUP4
00002f3a: PUSH6 0xffffffffffff
00002f41: AND
00002f42: PUSH6 0xffffffffffff
00002f49: AND
00002f4a: PUSH1 0xd0
00002f4c: SHL
00002f4d: DUP2
00002f4e: MSTORE
00002f4f: PUSH1 0x06
00002f51: ADD
00002f52: DUP3
00002f53: DUP1
00002f54: MLOAD
00002f55: SWAP1
00002f56: PUSH1 0x20
00002f58: ADD
00002f59: SWAP1
00002f5a: DUP1
00002f5b: DUP4
00002f5c: DUP4
00002f5d: JUMPDEST
00002f5e: PUSH1 0x20
00002f60: DUP4
00002f61: LT
00002f62: PUSH2 0x2f7c
00002f65: JUMPI
00002f66: DUP1
00002f67: MLOAD
00002f68: DUP3
00002f69: MSTORE
00002f6a: PUSH1 0x1f
00002f6c: NOT
00002f6d: SWAP1
00002f6e: SWAP3
00002f6f: ADD
00002f70: SWAP2
00002f71: PUSH1 0x20
00002f73: SWAP2
00002f74: DUP3
00002f75: ADD
00002f76: SWAP2
00002f77: ADD
00002f78: PUSH2 0x2f5d
00002f7b: JUMP
00002f7c: JUMPDEST
00002f7d: PUSH1 0x01
00002f7f: DUP4
00002f80: PUSH1 0x20
00002f82: SUB
00002f83: PUSH2 0x0100
00002f86: EXP
00002f87: SUB
00002f88: DUP1
00002f89: NOT
00002f8a: DUP3
00002f8b: MLOAD
00002f8c: AND
00002f8d: DUP2
00002f8e: DUP5
00002f8f: MLOAD
00002f90: AND
00002f91: DUP1
00002f92: DUP3
00002f93: OR
00002f94: DUP6
00002f95: MSTORE
00002f96: POP
00002f97: POP
00002f98: POP
00002f99: POP
00002f9a: POP
00002f9b: POP
00002f9c: SWAP1
00002f9d: POP
00002f9e: ADD
00002f9f: SWAP3
00002fa0: POP
00002fa1: POP
00002fa2: POP
00002fa3: PUSH1 0x40
00002fa5: MLOAD
00002fa6: PUSH1 0x20
00002fa8: DUP2
00002fa9: DUP4
00002faa: SUB
00002fab: SUB
00002fac: DUP2
00002fad: MSTORE
00002fae: SWAP1
00002faf: PUSH1 0x40
00002fb1: MSTORE
00002fb2: SWAP1
00002fb3: POP
00002fb4: JUMPDEST
00002fb5: PUSH1 0x01
00002fb7: PUSH1 0x01
00002fb9: PUSH1 0xa0
00002fbb: SHL
00002fbc: SUB
00002fbd: DUP4
00002fbe: AND
00002fbf: PUSH1 0x00
00002fc1: SWAP1
00002fc2: DUP2
00002fc3: MSTORE
00002fc4: PUSH1 0x02
00002fc6: PUSH1 0x20
00002fc8: MSTORE
00002fc9: PUSH1 0x40
00002fcb: SWAP1
00002fcc: KECCAK256
00002fcd: PUSH2 0x2fd6
00002fd0: SWAP1
00002fd1: DUP3
00002fd2: PUSH2 0x3385
00002fd5: JUMP
00002fd6: JUMPDEST
00002fd7: POP
00002fd8: POP
00002fd9: POP
00002fda: JUMP
00002fdb: JUMPDEST
00002fdc: PUSH1 0x00
00002fde: DUP1
00002fdf: PUSH2 0x302f
00002fe2: DUP8
00002fe3: PUSH1 0x03
00002fe5: DUP2
00002fe6: GT
00002fe7: ISZERO
00002fe8: PUSH2 0x2fed
00002feb: JUMPI
00002fec: INVALID
00002fed: JUMPDEST
00002fee: DUP8
00002fef: DUP8
00002ff0: PUSH1 0x40
00002ff2: MLOAD
00002ff3: PUSH1 0x20
00002ff5: ADD
00002ff6: DUP1
00002ff7: DUP5
00002ff8: PUSH1 0xff
00002ffa: AND
00002ffb: PUSH1 0xff
00002ffd: AND
00002ffe: PUSH1 0xf8
00003000: SHL
00003001: DUP2
00003002: MSTORE
00003003: PUSH1 0x01
00003005: ADD
00003006: DUP4
00003007: DUP1
00003008: MLOAD
00003009: SWAP1
0000300a: PUSH1 0x20
0000300c: ADD
0000300d: SWAP1
0000300e: DUP1
0000300f: DUP4
00003010: DUP4
00003011: PUSH1 0x20
00003013: DUP4
00003014: LT
00003015: PUSH2 0x28ea
00003018: JUMPI
00003019: DUP1
0000301a: MLOAD
0000301b: DUP3
0000301c: MSTORE
0000301d: PUSH1 0x1f
0000301f: NOT
00003020: SWAP1
00003021: SWAP3
00003022: ADD
00003023: SWAP2
00003024: PUSH1 0x20
00003026: SWAP2
00003027: DUP3
00003028: ADD
00003029: SWAP2
0000302a: ADD
0000302b: PUSH2 0x28cb
0000302e: JUMP
0000302f: JUMPDEST
00003030: SWAP1
00003031: POP
00003032: DUP5
00003033: PUSH1 0x01
00003035: PUSH1 0x01
00003037: PUSH1 0xa0
00003039: SHL
0000303a: SUB
0000303b: AND
0000303c: PUSH2 0x3045
0000303f: DUP3
00003040: DUP7
00003041: PUSH2 0x3a25
00003044: JUMP
00003045: JUMPDEST
00003046: PUSH1 0x01
00003048: PUSH1 0x01
0000304a: PUSH1 0xa0
0000304c: SHL
0000304d: SUB
0000304e: AND
0000304f: EQ
00003050: PUSH2 0x305d
00003053: JUMPI
00003054: PUSH1 0x00
00003056: SWAP2
00003057: POP
00003058: POP
00003059: PUSH2 0x3075
0000305c: JUMP
0000305d: JUMPDEST
0000305e: PUSH2 0x3071
00003061: PUSH2 0x306a
00003064: DUP3
00003065: DUP6
00003066: PUSH2 0x3a25
00003069: JUMP
0000306a: JUMPDEST
0000306b: PUSH1 0x00
0000306d: PUSH2 0x0b79
00003070: JUMP
00003071: JUMPDEST
00003072: SWAP2
00003073: POP
00003074: POP
00003075: JUMPDEST
00003076: SWAP6
00003077: SWAP5
00003078: POP
00003079: POP
0000307a: POP
0000307b: POP
0000307c: POP
0000307d: JUMP
0000307e: JUMPDEST
0000307f: PUSH2 0xffff
00003082: DUP3
00003083: AND
00003084: PUSH2 0x30d2
00003087: JUMPI
00003088: PUSH1 0x40
0000308a: MLOAD
0000308b: PUSH1 0x01
0000308d: PUSH1 0x01
0000308f: PUSH1 0xa0
00003091: SHL
00003092: SUB
00003093: DUP5
00003094: AND
00003095: SWAP1
00003096: PUSH5 0x02540be400
0000309c: PUSH1 0x01
0000309e: PUSH1 0x01
000030a0: PUSH1 0x40
000030a2: SHL
000030a3: SUB
000030a4: DUP5
000030a5: AND
000030a6: MUL
000030a7: DUP1
000030a8: ISZERO
000030a9: PUSH2 0x08fc
000030ac: MUL
000030ad: SWAP2
000030ae: PUSH1 0x00
000030b0: DUP2
000030b1: DUP2
000030b2: DUP2
000030b3: DUP6
000030b4: DUP9
000030b5: DUP9
000030b6: CALL
000030b7: SWAP4
000030b8: POP
000030b9: POP
000030ba: POP
000030bb: POP
000030bc: ISZERO
000030bd: DUP1
000030be: ISZERO
000030bf: PUSH2 0x30cc
000030c2: JUMPI
000030c3: RETURNDATASIZE
000030c4: PUSH1 0x00
000030c6: DUP1
000030c7: RETURNDATACOPY
000030c8: RETURNDATASIZE
000030c9: PUSH1 0x00
000030cb: REVERT
000030cc: JUMPDEST
000030cd: POP
000030ce: PUSH2 0x2fd6
000030d1: JUMP
000030d2: JUMPDEST
000030d3: PUSH1 0x00
000030d5: PUSH2 0x30dd
000030d8: DUP4
000030d9: PUSH2 0x3b35
000030dc: JUMP
000030dd: JUMPDEST
000030de: SWAP1
000030df: POP
000030e0: DUP1
000030e1: PUSH1 0x00
000030e3: PUSH2 0x30eb
000030e6: DUP6
000030e7: PUSH2 0x3b54
000030ea: JUMP
000030eb: JUMPDEST
000030ec: SWAP1
000030ed: POP
000030ee: PUSH1 0x01
000030f0: PUSH1 0x01
000030f2: PUSH1 0x40
000030f4: SHL
000030f5: SUB
000030f6: DUP5
000030f7: AND
000030f8: PUSH1 0x08
000030fa: PUSH1 0xff
000030fc: DUP4
000030fd: AND
000030fe: LT
000030ff: ISZERO
00003100: PUSH2 0x3119
00003103: JUMPI
00003104: DUP2
00003105: PUSH1 0x08
00003107: SUB
00003108: PUSH1 0xff
0000310a: AND
0000310b: PUSH1 0x0a
0000310d: EXP
0000310e: DUP2
0000310f: DUP2
00003110: PUSH2 0x3115
00003113: JUMPI
00003114: INVALID
00003115: JUMPDEST
00003116: DIV
00003117: SWAP1
00003118: POP
00003119: JUMPDEST
0000311a: PUSH1 0x08
0000311c: DUP3
0000311d: PUSH1 0xff
0000311f: AND
00003120: GT
00003121: ISZERO
00003122: PUSH2 0x3132
00003125: JUMPI
00003126: PUSH1 0xff
00003128: PUSH1 0x07
0000312a: NOT
0000312b: DUP4
0000312c: ADD
0000312d: AND
0000312e: PUSH1 0x0a
00003130: EXP
00003131: MUL
00003132: JUMPDEST
00003133: PUSH1 0x40
00003135: DUP1
00003136: MLOAD
00003137: PUSH4 0xa9059cbb
0000313c: PUSH1 0xe0
0000313e: SHL
0000313f: DUP2
00003140: MSTORE
00003141: PUSH1 0x01
00003143: PUSH1 0x01
00003145: PUSH1 0xa0
00003147: SHL
00003148: SUB
00003149: DUP10
0000314a: DUP2
0000314b: AND
0000314c: PUSH1 0x04
0000314e: DUP4
0000314f: ADD
00003150: MSTORE
00003151: PUSH1 0x24
00003153: DUP3
00003154: ADD
00003155: DUP5
00003156: SWAP1
00003157: MSTORE
00003158: SWAP2
00003159: MLOAD
0000315a: PUSH1 0x00
0000315c: SWAP3
0000315d: DUP7
0000315e: AND
0000315f: SWAP2
00003160: PUSH4 0xa9059cbb
00003165: SWAP2
00003166: PUSH1 0x44
00003168: DUP1
00003169: DUP4
0000316a: ADD
0000316b: SWAP3
0000316c: PUSH1 0x20
0000316e: SWAP3
0000316f: SWAP2
00003170: SWAP1
00003171: DUP3
00003172: SWAP1
00003173: SUB
00003174: ADD
00003175: DUP2
00003176: DUP8
00003177: DUP8
00003178: DUP1
00003179: EXTCODESIZE
0000317a: ISZERO
0000317b: DUP1
0000317c: ISZERO
0000317d: PUSH2 0x3185
00003180: JUMPI
00003181: PUSH1 0x00
00003183: DUP1
00003184: REVERT
00003185: JUMPDEST
00003186: POP
00003187: GAS
00003188: CALL
00003189: ISZERO
0000318a: DUP1
0000318b: ISZERO
0000318c: PUSH2 0x3199
0000318f: JUMPI
00003190: RETURNDATASIZE
00003191: PUSH1 0x00
00003193: DUP1
00003194: RETURNDATACOPY
00003195: RETURNDATASIZE
00003196: PUSH1 0x00
00003198: REVERT
00003199: JUMPDEST
0000319a: POP
0000319b: POP
0000319c: POP
0000319d: POP
0000319e: PUSH1 0x40
000031a0: MLOAD
000031a1: RETURNDATASIZE
000031a2: PUSH1 0x20
000031a4: DUP2
000031a5: LT
000031a6: ISZERO
000031a7: PUSH2 0x31af
000031aa: JUMPI
000031ab: PUSH1 0x00
000031ad: DUP1
000031ae: REVERT
000031af: JUMPDEST
000031b0: POP
000031b1: MLOAD
000031b2: SWAP1
000031b3: POP
000031b4: DUP1
000031b5: PUSH2 0x3205
000031b8: JUMPI
000031b9: PUSH1 0x40
000031bb: DUP1
000031bc: MLOAD
000031bd: PUSH3 0x461bcd
000031c1: PUSH1 0xe5
000031c3: SHL
000031c4: DUP2
000031c5: MSTORE
000031c6: PUSH1 0x20
000031c8: PUSH1 0x04
000031ca: DUP3
000031cb: ADD
000031cc: MSTORE
000031cd: PUSH1 0x18
000031cf: PUSH1 0x24
000031d1: DUP3
000031d2: ADD
000031d3: MSTORE
000031d4: PUSH32 0x436f756c64206e6f74207472616e736665722066756e64730000000000000000
000031f5: PUSH1 0x44
000031f7: DUP3
000031f8: ADD
000031f9: MSTORE
000031fa: SWAP1
000031fb: MLOAD
000031fc: SWAP1
000031fd: DUP2
000031fe: SWAP1
000031ff: SUB
00003200: PUSH1 0x64
00003202: ADD
00003203: SWAP1
00003204: REVERT
00003205: JUMPDEST
00003206: POP
00003207: POP
00003208: POP
00003209: POP
0000320a: POP
0000320b: POP
0000320c: POP
0000320d: POP
0000320e: JUMP
0000320f: JUMPDEST
00003210: PUSH2 0x321e
00003213: PUSH1 0x01
00003215: DUP7
00003216: DUP7
00003217: DUP7
00003218: DUP7
00003219: DUP7
0000321a: PUSH2 0x3b6f
0000321d: JUMP
0000321e: JUMPDEST
0000321f: PUSH2 0x3263
00003222: JUMPI
00003223: PUSH1 0x40
00003225: DUP1
00003226: MLOAD
00003227: PUSH3 0x461bcd
0000322b: PUSH1 0xe5
0000322d: SHL
0000322e: DUP2
0000322f: MSTORE
00003230: PUSH1 0x20
00003232: PUSH1 0x04
00003234: DUP3
00003235: ADD
00003236: MSTORE
00003237: PUSH1 0x11
00003239: PUSH1 0x24
0000323b: DUP3
0000323c: ADD
0000323d: MSTORE
0000323e: PUSH17 0x496e76616c6964207369676e6174757265
00003250: PUSH1 0x78
00003252: SHL
00003253: PUSH1 0x44
00003255: DUP3
00003256: ADD
00003257: MSTORE
00003258: SWAP1
00003259: MLOAD
0000325a: SWAP1
0000325b: DUP2
0000325c: SWAP1
0000325d: SUB
0000325e: PUSH1 0x64
00003260: ADD
00003261: SWAP1
00003262: REVERT
00003263: JUMPDEST
00003264: POP
00003265: POP
00003266: POP
00003267: POP
00003268: POP
00003269: JUMP
0000326a: JUMPDEST
0000326b: DUP6
0000326c: MLOAD
0000326d: DUP6
0000326e: MLOAD
0000326f: PUSH4 0x05f5e100
00003274: PUSH1 0x01
00003276: PUSH1 0x01
00003278: PUSH1 0x40
0000327a: SHL
0000327b: SUB
0000327c: DUP8
0000327d: DUP2
0000327e: AND
0000327f: DUP7
00003280: DUP3
00003281: AND
00003282: DUP2
00003283: MUL
00003284: DUP4
00003285: SWAP1
00003286: DIV
00003287: SWAP5
00003288: SWAP2
00003289: DUP9
0000328a: AND
0000328b: MUL
0000328c: SWAP2
0000328d: SWAP1
0000328e: SWAP2
0000328f: DIV
00003290: SWAP2
00003291: PUSH2 0x32a6
00003294: SWAP2
00003295: DUP12
00003296: SWAP2
00003297: PUSH4 0xffffffff
0000329c: AND
0000329d: DUP6
0000329e: DUP11
0000329f: DUP9
000032a0: PUSH1 0x00
000032a2: PUSH2 0x3ca3
000032a5: JUMP
000032a6: JUMPDEST
000032a7: PUSH1 0x20
000032a9: DUP1
000032aa: DUP10
000032ab: ADD
000032ac: MLOAD
000032ad: SWAP1
000032ae: DUP9
000032af: ADD
000032b0: MLOAD
000032b1: PUSH2 0x32c6
000032b4: SWAP2
000032b5: DUP12
000032b6: SWAP2
000032b7: PUSH4 0xffffffff
000032bc: AND
000032bd: DUP6
000032be: DUP6
000032bf: DUP9
000032c0: PUSH1 0x01
000032c2: PUSH2 0x3ca3
000032c5: JUMP
000032c6: JUMPDEST
000032c7: PUSH32 0x83894d4e8b2a45cbd6d36fa4cfdf5ec3c73257f8a4dcac4af7c380e887ec513b
000032e8: DUP10
000032e9: DUP10
000032ea: PUSH1 0x00
000032ec: PUSH1 0x20
000032ee: MUL
000032ef: ADD
000032f0: MLOAD
000032f1: DUP11
000032f2: PUSH1 0x01
000032f4: PUSH1 0x20
000032f6: MUL
000032f7: ADD
000032f8: MLOAD
000032f9: DUP11
000032fa: PUSH1 0x00
000032fc: PUSH1 0x20
000032fe: MUL
000032ff: ADD
00003300: MLOAD
00003301: DUP12
00003302: PUSH1 0x01
00003304: PUSH1 0x20
00003306: SWAP1
00003307: DUP2
00003308: MUL
00003309: SWAP2
0000330a: SWAP1
0000330b: SWAP2
0000330c: ADD
0000330d: MLOAD
0000330e: PUSH1 0x40
00003310: DUP1
00003311: MLOAD
00003312: PUSH1 0x01
00003314: PUSH1 0x01
00003316: PUSH1 0xa0
00003318: SHL
00003319: SUB
0000331a: SWAP1
0000331b: SWAP8
0000331c: AND
0000331d: DUP8
0000331e: MSTORE
0000331f: PUSH2 0xffff
00003322: SWAP6
00003323: DUP7
00003324: AND
00003325: SWAP3
00003326: DUP8
00003327: ADD
00003328: SWAP3
00003329: SWAP1
0000332a: SWAP3
0000332b: MSTORE
0000332c: SWAP3
0000332d: SWAP1
0000332e: SWAP4
0000332f: AND
00003330: DUP5
00003331: DUP5
00003332: ADD
00003333: MSTORE
00003334: PUSH4 0xffffffff
00003339: SWAP1
0000333a: DUP2
0000333b: AND
0000333c: PUSH1 0x60
0000333e: DUP6
0000333f: ADD
00003340: MSTORE
00003341: SWAP1
00003342: DUP2
00003343: AND
00003344: PUSH1 0x80
00003346: DUP5
00003347: ADD
00003348: MSTORE
00003349: DUP7
0000334a: AND
0000334b: PUSH1 0xa0
0000334d: DUP4
0000334e: ADD
0000334f: MSTORE
00003350: PUSH1 0x01
00003352: PUSH1 0x01
00003354: PUSH1 0x40
00003356: SHL
00003357: SUB
00003358: DUP1
00003359: DUP11
0000335a: AND
0000335b: PUSH1 0xc0
0000335d: DUP5
0000335e: ADD
0000335f: MSTORE
00003360: DUP1
00003361: DUP10
00003362: AND
00003363: PUSH1 0xe0
00003365: DUP5
00003366: ADD
00003367: MSTORE
00003368: DUP8
00003369: AND
0000336a: PUSH2 0x0100
0000336d: DUP4
0000336e: ADD
0000336f: MSTORE
00003370: MLOAD
00003371: SWAP1
00003372: DUP2
00003373: SWAP1
00003374: SUB
00003375: PUSH2 0x0120
00003378: ADD
00003379: SWAP1
0000337a: LOG1
0000337b: POP
0000337c: POP
0000337d: POP
0000337e: POP
0000337f: POP
00003380: POP
00003381: POP
00003382: POP
00003383: POP
00003384: JUMP
00003385: JUMPDEST
00003386: DUP2
00003387: SLOAD
00003388: PUSH1 0x02
0000338a: PUSH1 0x01
0000338c: DUP1
0000338d: DUP4
0000338e: AND
0000338f: ISZERO
00003390: PUSH2 0x0100
00003393: MUL
00003394: SUB
00003395: DUP3
00003396: AND
00003397: DIV
00003398: DUP3
00003399: MLOAD
0000339a: DUP1
0000339b: DUP3
0000339c: ADD
0000339d: PUSH1 0x20
0000339f: DUP2
000033a0: LT
000033a1: PUSH1 0x20
000033a3: DUP5
000033a4: LT
000033a5: ADD
000033a6: PUSH1 0x02
000033a8: DUP2
000033a9: EQ
000033aa: PUSH2 0x3433
000033ad: JUMPI
000033ae: PUSH1 0x01
000033b0: DUP2
000033b1: EQ
000033b2: PUSH2 0x3458
000033b5: JUMPI
000033b6: DUP7
000033b7: PUSH1 0x00
000033b9: MSTORE
000033ba: PUSH1 0x20
000033bc: DUP5
000033bd: DIV
000033be: PUSH1 0x20
000033c0: PUSH1 0x00
000033c2: KECCAK256
000033c3: ADD
000033c4: PUSH1 0x01
000033c6: PUSH1 0x02
000033c8: DUP5
000033c9: MUL
000033ca: ADD
000033cb: DUP9
000033cc: SSTORE
000033cd: PUSH1 0x20
000033cf: DUP6
000033d0: MOD
000033d1: PUSH1 0x20
000033d3: DUP6
000033d4: MOD
000033d5: DUP2
000033d6: PUSH1 0x20
000033d8: SUB
000033d9: DUP1
000033da: DUP11
000033db: ADD
000033dc: DUP8
000033dd: DUP12
000033de: ADD
000033df: PUSH1 0x01
000033e1: DUP4
000033e2: PUSH2 0x0100
000033e5: EXP
000033e6: SUB
000033e7: DUP1
000033e8: DUP4
000033e9: MLOAD
000033ea: AND
000033eb: DUP8
000033ec: SLOAD
000033ed: ADD
000033ee: DUP8
000033ef: SSTORE
000033f0: PUSH1 0x01
000033f2: DUP8
000033f3: ADD
000033f4: SWAP7
000033f5: POP
000033f6: PUSH1 0x20
000033f8: DUP4
000033f9: ADD
000033fa: SWAP3
000033fb: POP
000033fc: JUMPDEST
000033fd: DUP2
000033fe: DUP4
000033ff: LT
00003400: ISZERO
00003401: PUSH2 0x3419
00003404: JUMPI
00003405: DUP3
00003406: MLOAD
00003407: DUP8
00003408: SSTORE
00003409: PUSH1 0x01
0000340b: DUP8
0000340c: ADD
0000340d: SWAP7
0000340e: POP
0000340f: PUSH1 0x20
00003411: DUP4
00003412: ADD
00003413: SWAP3
00003414: POP
00003415: PUSH2 0x33fc
00003418: JUMP
00003419: JUMPDEST
0000341a: POP
0000341b: DUP2
0000341c: MLOAD
0000341d: SWAP2
0000341e: SUB
0000341f: PUSH2 0x0100
00003422: EXP
00003423: SWAP1
00003424: DUP2
00003425: SWAP1
00003426: DIV
00003427: MUL
00003428: SWAP1
00003429: SWAP4
0000342a: SSTORE
0000342b: POP
0000342c: PUSH2 0x34ca
0000342f: SWAP2
00003430: POP
00003431: POP
00003432: JUMP
00003433: JUMPDEST
00003434: PUSH1 0x02
00003436: DUP4
00003437: MUL
00003438: DUP3
00003439: PUSH1 0x20
0000343b: SUB
0000343c: PUSH2 0x0100
0000343f: EXP
00003440: DUP5
00003441: PUSH1 0x20
00003443: SUB
00003444: PUSH2 0x0100
00003447: EXP
00003448: PUSH1 0x20
0000344a: DUP10
0000344b: ADD
0000344c: MLOAD
0000344d: DIV
0000344e: MUL
0000344f: ADD
00003450: DUP6
00003451: ADD
00003452: DUP8
00003453: SSTORE
00003454: PUSH2 0x34ca
00003457: JUMP
00003458: JUMPDEST
00003459: DUP7
0000345a: PUSH1 0x00
0000345c: MSTORE
0000345d: PUSH1 0x20
0000345f: DUP5
00003460: DIV
00003461: PUSH1 0x20
00003463: PUSH1 0x00
00003465: KECCAK256
00003466: ADD
00003467: PUSH1 0x01
00003469: PUSH1 0x02
0000346b: DUP5
0000346c: MUL
0000346d: ADD
0000346e: DUP9
0000346f: SSTORE
00003470: DUP5
00003471: PUSH1 0x20
00003473: SUB
00003474: DUP1
00003475: DUP9
00003476: ADD
00003477: DUP6
00003478: DUP10
00003479: ADD
0000347a: PUSH1 0x01
0000347c: DUP4
0000347d: PUSH2 0x0100
00003480: EXP
00003481: SUB
00003482: DUP1
00003483: DUP4
00003484: MLOAD
00003485: AND
00003486: PUSH1 0xff
00003488: NOT
00003489: DUP12
0000348a: AND
0000348b: ADD
0000348c: DUP6
0000348d: SSTORE
0000348e: PUSH1 0x20
00003490: DUP4
00003491: ADD
00003492: SWAP3
00003493: POP
00003494: PUSH1 0x01
00003496: DUP6
00003497: ADD
00003498: SWAP5
00003499: POP
0000349a: JUMPDEST
0000349b: DUP2
0000349c: DUP4
0000349d: LT
0000349e: ISZERO
0000349f: PUSH2 0x34b7
000034a2: JUMPI
000034a3: DUP3
000034a4: MLOAD
000034a5: DUP6
000034a6: SSTORE
000034a7: PUSH1 0x01
000034a9: DUP6
000034aa: ADD
000034ab: SWAP5
000034ac: POP
000034ad: PUSH1 0x20
000034af: DUP4
000034b0: ADD
000034b1: SWAP3
000034b2: POP
000034b3: PUSH2 0x349a
000034b6: JUMP
000034b7: JUMPDEST
000034b8: POP
000034b9: DUP2
000034ba: MLOAD
000034bb: SWAP2
000034bc: SUB
000034bd: PUSH2 0x0100
000034c0: EXP
000034c1: SWAP1
000034c2: DUP2
000034c3: SWAP1
000034c4: DIV
000034c5: MUL
000034c6: SWAP1
000034c7: SWAP2
000034c8: SSTORE
000034c9: POP
000034ca: JUMPDEST
000034cb: POP
000034cc: POP
000034cd: POP
000034ce: POP
000034cf: POP
000034d0: POP
000034d1: POP
000034d2: JUMP
000034d3: JUMPDEST
000034d4: PUSH1 0x01
000034d6: PUSH1 0x01
000034d8: PUSH1 0xa0
000034da: SHL
000034db: SUB
000034dc: DUP3
000034dd: AND
000034de: PUSH1 0x00
000034e0: SWAP1
000034e1: DUP2
000034e2: MSTORE
000034e3: PUSH1 0x02
000034e5: PUSH1 0x20
000034e7: DUP2
000034e8: SWAP1
000034e9: MSTORE
000034ea: PUSH1 0x40
000034ec: SWAP1
000034ed: SWAP2
000034ee: KECCAK256
000034ef: SLOAD
000034f0: PUSH1 0x00
000034f2: NOT
000034f3: PUSH2 0x0100
000034f6: PUSH1 0x01
000034f8: DUP4
000034f9: AND
000034fa: ISZERO
000034fb: MUL
000034fc: ADD
000034fd: AND
000034fe: DIV
000034ff: PUSH2 0x3507
00003502: JUMPI
00003503: PUSH2 0x360f
00003506: JUMP
00003507: JUMPDEST
00003508: DUP1
00003509: PUSH1 0x01
0000350b: DUP2
0000350c: GT
0000350d: ISZERO
0000350e: PUSH2 0x3513
00003511: JUMPI
00003512: INVALID
00003513: JUMPDEST
00003514: PUSH1 0xff
00003516: AND
00003517: PUSH1 0x02
00003519: PUSH1 0xff
0000351b: AND
0000351c: EXP
0000351d: PUSH1 0xff
0000351f: SUB
00003520: PUSH1 0x02
00003522: PUSH1 0x00
00003524: DUP5
00003525: PUSH1 0x01
00003527: PUSH1 0x01
00003529: PUSH1 0xa0
0000352b: SHL
0000352c: SUB
0000352d: AND
0000352e: PUSH1 0x01
00003530: PUSH1 0x01
00003532: PUSH1 0xa0
00003534: SHL
00003535: SUB
00003536: AND
00003537: DUP2
00003538: MSTORE
00003539: PUSH1 0x20
0000353b: ADD
0000353c: SWAP1
0000353d: DUP2
0000353e: MSTORE
0000353f: PUSH1 0x20
00003541: ADD
00003542: PUSH1 0x00
00003544: KECCAK256
00003545: PUSH1 0x00
00003547: DUP2
00003548: SLOAD
00003549: PUSH1 0x01
0000354b: DUP2
0000354c: PUSH1 0x01
0000354e: AND
0000354f: ISZERO
00003550: PUSH2 0x0100
00003553: MUL
00003554: SUB
00003555: AND
00003556: PUSH1 0x02
00003558: SWAP1
00003559: DIV
0000355a: DUP2
0000355b: LT
0000355c: PUSH2 0x3561
0000355f: JUMPI
00003560: INVALID
00003561: JUMPDEST
00003562: DUP2
00003563: SLOAD
00003564: PUSH1 0x01
00003566: AND
00003567: ISZERO
00003568: PUSH2 0x3580
0000356b: JUMPI
0000356c: SWAP1
0000356d: PUSH1 0x00
0000356f: MSTORE
00003570: PUSH1 0x20
00003572: PUSH1 0x00
00003574: KECCAK256
00003575: SWAP1
00003576: PUSH1 0x20
00003578: SWAP2
00003579: DUP3
0000357a: DUP3
0000357b: DIV
0000357c: ADD
0000357d: SWAP2
0000357e: SWAP1
0000357f: MOD
00003580: JUMPDEST
00003581: SWAP1
00003582: SLOAD
00003583: SWAP1
00003584: BYTE
00003585: PUSH1 0x01
00003587: PUSH1 0xf8
00003589: SHL
0000358a: MUL
0000358b: PUSH1 0xf8
0000358d: SHR
0000358e: AND
0000358f: PUSH1 0xf8
00003591: SHL
00003592: PUSH1 0x02
00003594: PUSH1 0x00
00003596: DUP5
00003597: PUSH1 0x01
00003599: PUSH1 0x01
0000359b: PUSH1 0xa0
0000359d: SHL
0000359e: SUB
0000359f: AND
000035a0: PUSH1 0x01
000035a2: PUSH1 0x01
000035a4: PUSH1 0xa0
000035a6: SHL
000035a7: SUB
000035a8: AND
000035a9: DUP2
000035aa: MSTORE
000035ab: PUSH1 0x20
000035ad: ADD
000035ae: SWAP1
000035af: DUP2
000035b0: MSTORE
000035b1: PUSH1 0x20
000035b3: ADD
000035b4: PUSH1 0x00
000035b6: KECCAK256
000035b7: PUSH1 0x00
000035b9: DUP2
000035ba: SLOAD
000035bb: PUSH1 0x01
000035bd: DUP2
000035be: PUSH1 0x01
000035c0: AND
000035c1: ISZERO
000035c2: PUSH2 0x0100
000035c5: MUL
000035c6: SUB
000035c7: AND
000035c8: PUSH1 0x02
000035ca: SWAP1
000035cb: DIV
000035cc: DUP2
000035cd: LT
000035ce: PUSH2 0x35d3
000035d1: JUMPI
000035d2: INVALID
000035d3: JUMPDEST
000035d4: DUP2
000035d5: SLOAD
000035d6: PUSH1 0x01
000035d8: AND
000035d9: ISZERO
000035da: PUSH2 0x35f2
000035dd: JUMPI
000035de: SWAP1
000035df: PUSH1 0x00
000035e1: MSTORE
000035e2: PUSH1 0x20
000035e4: PUSH1 0x00
000035e6: KECCAK256
000035e7: SWAP1
000035e8: PUSH1 0x20
000035ea: SWAP2
000035eb: DUP3
000035ec: DUP3
000035ed: DIV
000035ee: ADD
000035ef: SWAP2
000035f0: SWAP1
000035f1: MOD
000035f2: JUMPDEST
000035f3: PUSH1 0x1f
000035f5: SUB
000035f6: PUSH2 0x0100
000035f9: EXP
000035fa: DUP2
000035fb: SLOAD
000035fc: DUP2
000035fd: PUSH1 0xff
000035ff: MUL
00003600: NOT
00003601: AND
00003602: SWAP1
00003603: PUSH1 0x01
00003605: PUSH1 0xf8
00003607: SHL
00003608: DUP5
00003609: DIV
0000360a: MUL
0000360b: OR
0000360c: SWAP1
0000360d: SSTORE
0000360e: POP
0000360f: JUMPDEST
00003610: POP
00003611: POP
00003612: JUMP
00003613: JUMPDEST
00003614: PUSH1 0x01
00003616: PUSH1 0x01
00003618: PUSH1 0xa0
0000361a: SHL
0000361b: SUB
0000361c: DUP3
0000361d: AND
0000361e: PUSH1 0x00
00003620: SWAP1
00003621: DUP2
00003622: MSTORE
00003623: PUSH1 0x02
00003625: PUSH1 0x20
00003627: DUP2
00003628: SWAP1
00003629: MSTORE
0000362a: PUSH1 0x40
0000362c: SWAP1
0000362d: SWAP2
0000362e: KECCAK256
0000362f: SLOAD
00003630: PUSH1 0x00
00003632: NOT
00003633: PUSH2 0x0100
00003636: PUSH1 0x01
00003638: DUP4
00003639: AND
0000363a: ISZERO
0000363b: MUL
0000363c: ADD
0000363d: AND
0000363e: DIV
0000363f: PUSH2 0x3707
00003642: JUMPI
00003643: PUSH1 0x01
00003645: PUSH1 0x01
00003647: PUSH1 0xa0
00003649: SHL
0000364a: SUB
0000364b: DUP3
0000364c: AND
0000364d: PUSH1 0x00
0000364f: SWAP1
00003650: DUP2
00003651: MSTORE
00003652: PUSH1 0x02
00003654: PUSH1 0x20
00003656: MSTORE
00003657: PUSH1 0x40
00003659: SWAP1
0000365a: KECCAK256
0000365b: DUP2
0000365c: PUSH1 0x01
0000365e: DUP2
0000365f: GT
00003660: ISZERO
00003661: PUSH2 0x3666
00003664: JUMPI
00003665: INVALID
00003666: JUMPDEST
00003667: PUSH1 0xff
00003669: AND
0000366a: PUSH1 0x02
0000366c: PUSH1 0xff
0000366e: AND
0000366f: EXP
00003670: PUSH1 0xf8
00003672: SHL
00003673: SWAP1
00003674: DUP1
00003675: DUP1
00003676: SLOAD
00003677: PUSH1 0x3f
00003679: DUP2
0000367a: AND
0000367b: DUP1
0000367c: PUSH1 0x3e
0000367e: DUP2
0000367f: EQ
00003680: PUSH2 0x36a3
00003683: JUMPI
00003684: PUSH1 0x02
00003686: DUP4
00003687: ADD
00003688: DUP5
00003689: SSTORE
0000368a: PUSH1 0x01
0000368c: DUP4
0000368d: AND
0000368e: PUSH2 0x3695
00003691: JUMPI
00003692: DUP2
00003693: SWAP3
00003694: POP
00003695: JUMPDEST
00003696: PUSH1 0x01
00003698: PUSH1 0x02
0000369a: DUP5
0000369b: DIV
0000369c: ADD
0000369d: SWAP4
0000369e: POP
0000369f: PUSH2 0x36bb
000036a2: JUMP
000036a3: JUMPDEST
000036a4: PUSH1 0x00
000036a6: DUP5
000036a7: DUP2
000036a8: MSTORE
000036a9: PUSH1 0x20
000036ab: SWAP1
000036ac: DUP2
000036ad: SWAP1
000036ae: KECCAK256
000036af: PUSH1 0xff
000036b1: NOT
000036b2: DUP6
000036b3: AND
000036b4: SWAP1
000036b5: SSTORE
000036b6: PUSH1 0x41
000036b8: SWAP1
000036b9: SWAP5
000036ba: SSTORE
000036bb: JUMPDEST
000036bc: POP
000036bd: POP
000036be: POP
000036bf: SWAP1
000036c0: PUSH1 0x01
000036c2: DUP3
000036c3: SUB
000036c4: DUP2
000036c5: SLOAD
000036c6: PUSH1 0x01
000036c8: AND
000036c9: ISZERO
000036ca: PUSH2 0x36e2
000036cd: JUMPI
000036ce: SWAP1
000036cf: PUSH1 0x00
000036d1: MSTORE
000036d2: PUSH1 0x20
000036d4: PUSH1 0x00
000036d6: KECCAK256
000036d7: SWAP1
000036d8: PUSH1 0x20
000036da: SWAP2
000036db: DUP3
000036dc: DUP3
000036dd: DIV
000036de: ADD
000036df: SWAP2
000036e0: SWAP1
000036e1: MOD
000036e2: JUMPDEST
000036e3: SWAP1
000036e4: SWAP2
000036e5: SWAP3
000036e6: SWAP1
000036e7: SWAP2
000036e8: SWAP1
000036e9: SWAP2
000036ea: PUSH1 0x1f
000036ec: SUB
000036ed: PUSH2 0x0100
000036f0: EXP
000036f1: DUP2
000036f2: SLOAD
000036f3: DUP2
000036f4: PUSH1 0xff
000036f6: MUL
000036f7: NOT
000036f8: AND
000036f9: SWAP1
000036fa: PUSH1 0x01
000036fc: PUSH1 0xf8
000036fe: SHL
000036ff: DUP5
00003700: DIV
00003701: MUL
00003702: OR
00003703: SWAP1
00003704: SSTORE
00003705: POP
00003706: POP
00003707: JUMPDEST
00003708: DUP1
00003709: PUSH1 0x01
0000370b: DUP2
0000370c: GT
0000370d: ISZERO
0000370e: PUSH2 0x3713
00003711: JUMPI
00003712: INVALID
00003713: JUMPDEST
00003714: PUSH1 0xff
00003716: AND
00003717: PUSH1 0x02
00003719: PUSH1 0xff
0000371b: AND
0000371c: EXP
0000371d: PUSH1 0x02
0000371f: PUSH1 0x00
00003721: DUP5
00003722: PUSH1 0x01
00003724: PUSH1 0x01
00003726: PUSH1 0xa0
00003728: SHL
00003729: SUB
0000372a: AND
0000372b: PUSH1 0x01
0000372d: PUSH1 0x01
0000372f: PUSH1 0xa0
00003731: SHL
00003732: SUB
00003733: AND
00003734: DUP2
00003735: MSTORE
00003736: PUSH1 0x20
00003738: ADD
00003739: SWAP1
0000373a: DUP2
0000373b: MSTORE
0000373c: PUSH1 0x20
0000373e: ADD
0000373f: PUSH1 0x00
00003741: KECCAK256
00003742: PUSH1 0x00
00003744: DUP2
00003745: SLOAD
00003746: PUSH1 0x01
00003748: DUP2
00003749: PUSH1 0x01
0000374b: AND
0000374c: ISZERO
0000374d: PUSH2 0x0100
00003750: MUL
00003751: SUB
00003752: AND
00003753: PUSH1 0x02
00003755: SWAP1
00003756: DIV
00003757: DUP2
00003758: LT
00003759: PUSH2 0x375e
0000375c: JUMPI
0000375d: INVALID
0000375e: JUMPDEST
0000375f: DUP2
00003760: SLOAD
00003761: PUSH1 0x01
00003763: AND
00003764: ISZERO
00003765: PUSH2 0x377d
00003768: JUMPI
00003769: SWAP1
0000376a: PUSH1 0x00
0000376c: MSTORE
0000376d: PUSH1 0x20
0000376f: PUSH1 0x00
00003771: KECCAK256
00003772: SWAP1
00003773: PUSH1 0x20
00003775: SWAP2
00003776: DUP3
00003777: DUP3
00003778: DIV
00003779: ADD
0000377a: SWAP2
0000377b: SWAP1
0000377c: MOD
0000377d: JUMPDEST
0000377e: SWAP1
0000377f: SLOAD
00003780: SWAP1
00003781: BYTE
00003782: PUSH1 0x01
00003784: PUSH1 0xf8
00003786: SHL
00003787: MUL
00003788: PUSH1 0xf8
0000378a: SHR
0000378b: OR
0000378c: PUSH1 0xf8
0000378e: SHL
0000378f: PUSH1 0x02
00003791: PUSH1 0x00
00003793: DUP5
00003794: PUSH1 0x01
00003796: PUSH1 0x01
00003798: PUSH1 0xa0
0000379a: SHL
0000379b: SUB
0000379c: AND
0000379d: PUSH1 0x01
0000379f: PUSH1 0x01
000037a1: PUSH1 0xa0
000037a3: SHL
000037a4: SUB
000037a5: AND
000037a6: DUP2
000037a7: MSTORE
000037a8: PUSH1 0x20
000037aa: ADD
000037ab: SWAP1
000037ac: DUP2
000037ad: MSTORE
000037ae: PUSH1 0x20
000037b0: ADD
000037b1: PUSH1 0x00
000037b3: KECCAK256
000037b4: PUSH1 0x00
000037b6: DUP2
000037b7: SLOAD
000037b8: PUSH1 0x01
000037ba: DUP2
000037bb: PUSH1 0x01
000037bd: AND
000037be: ISZERO
000037bf: PUSH2 0x0100
000037c2: MUL
000037c3: SUB
000037c4: AND
000037c5: PUSH1 0x02
000037c7: SWAP1
000037c8: DIV
000037c9: DUP2
000037ca: LT
000037cb: PUSH2 0x37d0
000037ce: JUMPI
000037cf: INVALID
000037d0: JUMPDEST
000037d1: DUP2
000037d2: SLOAD
000037d3: PUSH1 0x01
000037d5: AND
000037d6: ISZERO
000037d7: PUSH2 0x37ef
000037da: JUMPI
000037db: SWAP1
000037dc: PUSH1 0x00
000037de: MSTORE
000037df: PUSH1 0x20
000037e1: PUSH1 0x00
000037e3: KECCAK256
000037e4: SWAP1
000037e5: PUSH1 0x20
000037e7: SWAP2
000037e8: DUP3
000037e9: DUP3
000037ea: DIV
000037eb: ADD
000037ec: SWAP2
000037ed: SWAP1
000037ee: MOD
000037ef: JUMPDEST
000037f0: DUP3
000037f1: DUP3
000037f2: DUP3
000037f3: SWAP1
000037f4: SLOAD
000037f5: SWAP1
000037f6: BYTE
000037f7: PUSH1 0x01
000037f9: PUSH1 0xf8
000037fb: SHL
000037fc: MUL
000037fd: OR
000037fe: SWAP3
000037ff: POP
00003800: PUSH1 0x1f
00003802: SUB
00003803: PUSH2 0x0100
00003806: EXP
00003807: DUP2
00003808: SLOAD
00003809: DUP2
0000380a: PUSH1 0xff
0000380c: MUL
0000380d: NOT
0000380e: AND
0000380f: SWAP1
00003810: PUSH1 0x01
00003812: PUSH1 0xf8
00003814: SHL
00003815: DUP5
00003816: DIV
00003817: MUL
00003818: OR
00003819: SWAP1
0000381a: SSTORE
0000381b: POP
0000381c: POP
0000381d: POP
0000381e: JUMP
0000381f: JUMPDEST
00003820: PUSH2 0xffff
00003823: DUP3
00003824: AND
00003825: PUSH2 0x387b
00003828: JUMPI
00003829: CALLVALUE
0000382a: DUP2
0000382b: PUSH1 0x01
0000382d: PUSH1 0x01
0000382f: PUSH1 0x40
00003831: SHL
00003832: SUB
00003833: AND
00003834: PUSH5 0x02540be400
0000383a: MUL
0000383b: EQ
0000383c: PUSH2 0x3876
0000383f: JUMPI
00003840: PUSH1 0x40
00003842: MLOAD
00003843: PUSH3 0x461bcd
00003847: PUSH1 0xe5
00003849: SHL
0000384a: DUP2
0000384b: MSTORE
0000384c: PUSH1 0x04
0000384e: ADD
0000384f: DUP1
00003850: DUP1
00003851: PUSH1 0x20
00003853: ADD
00003854: DUP3
00003855: DUP2
00003856: SUB
00003857: DUP3
00003858: MSTORE
00003859: PUSH1 0x2e
0000385b: DUP2
0000385c: MSTORE
0000385d: PUSH1 0x20
0000385f: ADD
00003860: DUP1
00003861: PUSH2 0x431c
00003864: PUSH1 0x2e
00003866: SWAP2
00003867: CODECOPY
00003868: PUSH1 0x40
0000386a: ADD
0000386b: SWAP2
0000386c: POP
0000386d: POP
0000386e: PUSH1 0x40
00003870: MLOAD
00003871: DUP1
00003872: SWAP2
00003873: SUB
00003874: SWAP1
00003875: REVERT
00003876: JUMPDEST
00003877: PUSH2 0x2fd6
0000387a: JUMP
0000387b: JUMPDEST
0000387c: PUSH1 0x00
0000387e: PUSH2 0x3886
00003881: DUP4
00003882: PUSH2 0x3b35
00003885: JUMP
00003886: JUMPDEST
00003887: SWAP1
00003888: POP
00003889: DUP1
0000388a: PUSH1 0x00
0000388c: PUSH2 0x3894
0000388f: DUP6
00003890: PUSH2 0x3b54
00003893: JUMP
00003894: JUMPDEST
00003895: SWAP1
00003896: POP
00003897: PUSH1 0x01
00003899: PUSH1 0x01
0000389b: PUSH1 0x40
0000389d: SHL
0000389e: SUB
0000389f: DUP5
000038a0: AND
000038a1: PUSH1 0x08
000038a3: PUSH1 0xff
000038a5: DUP4
000038a6: AND
000038a7: LT
000038a8: ISZERO
000038a9: PUSH2 0x38c2
000038ac: JUMPI
000038ad: DUP2
000038ae: PUSH1 0x08
000038b0: SUB
000038b1: PUSH1 0xff
000038b3: AND
000038b4: PUSH1 0x0a
000038b6: EXP
000038b7: DUP2
000038b8: DUP2
000038b9: PUSH2 0x38be
000038bc: JUMPI
000038bd: INVALID
000038be: JUMPDEST
000038bf: DIV
000038c0: SWAP1
000038c1: POP
000038c2: JUMPDEST
000038c3: PUSH1 0x08
000038c5: DUP3
000038c6: PUSH1 0xff
000038c8: AND
000038c9: GT
000038ca: ISZERO
000038cb: PUSH2 0x38db
000038ce: JUMPI
000038cf: PUSH1 0xff
000038d1: PUSH1 0x07
000038d3: NOT
000038d4: DUP4
000038d5: ADD
000038d6: AND
000038d7: PUSH1 0x0a
000038d9: EXP
000038da: MUL
000038db: JUMPDEST
000038dc: PUSH1 0x40
000038de: DUP1
000038df: MLOAD
000038e0: PUSH4 0x23b872dd
000038e5: PUSH1 0xe0
000038e7: SHL
000038e8: DUP2
000038e9: MSTORE
000038ea: PUSH1 0x01
000038ec: PUSH1 0x01
000038ee: PUSH1 0xa0
000038f0: SHL
000038f1: SUB
000038f2: DUP10
000038f3: DUP2
000038f4: AND
000038f5: PUSH1 0x04
000038f7: DUP4
000038f8: ADD
000038f9: MSTORE
000038fa: ADDRESS
000038fb: PUSH1 0x24
000038fd: DUP4
000038fe: ADD
000038ff: MSTORE
00003900: PUSH1 0x44
00003902: DUP3
00003903: ADD
00003904: DUP5
00003905: SWAP1
00003906: MSTORE
00003907: SWAP2
00003908: MLOAD
00003909: PUSH1 0x00
0000390b: SWAP3
0000390c: DUP7
0000390d: AND
0000390e: SWAP2
0000390f: PUSH4 0x23b872dd
00003914: SWAP2
00003915: PUSH1 0x64
00003917: DUP1
00003918: DUP4
00003919: ADD
0000391a: SWAP3
0000391b: PUSH1 0x20
0000391d: SWAP3
0000391e: SWAP2
0000391f: SWAP1
00003920: DUP3
00003921: SWAP1
00003922: SUB
00003923: ADD
00003924: DUP2
00003925: DUP8
00003926: DUP8
00003927: DUP1
00003928: EXTCODESIZE
00003929: ISZERO
0000392a: DUP1
0000392b: ISZERO
0000392c: PUSH2 0x3185
0000392f: JUMPI
00003930: PUSH1 0x00
00003932: DUP1
00003933: REVERT
00003934: JUMPDEST
00003935: PUSH1 0x01
00003937: PUSH1 0x01
00003939: PUSH1 0xa0
0000393b: SHL
0000393c: SUB
0000393d: DUP2
0000393e: AND
0000393f: PUSH2 0x3979
00003942: JUMPI
00003943: PUSH1 0x40
00003945: MLOAD
00003946: PUSH3 0x461bcd
0000394a: PUSH1 0xe5
0000394c: SHL
0000394d: DUP2
0000394e: MSTORE
0000394f: PUSH1 0x04
00003951: ADD
00003952: DUP1
00003953: DUP1
00003954: PUSH1 0x20
00003956: ADD
00003957: DUP3
00003958: DUP2
00003959: SUB
0000395a: DUP3
0000395b: MSTORE
0000395c: PUSH1 0x26
0000395e: DUP2
0000395f: MSTORE
00003960: PUSH1 0x20
00003962: ADD
00003963: DUP1
00003964: PUSH2 0x418e
00003967: PUSH1 0x26
00003969: SWAP2
0000396a: CODECOPY
0000396b: PUSH1 0x40
0000396d: ADD
0000396e: SWAP2
0000396f: POP
00003970: POP
00003971: PUSH1 0x40
00003973: MLOAD
00003974: DUP1
00003975: SWAP2
00003976: SUB
00003977: SWAP1
00003978: REVERT
00003979: JUMPDEST
0000397a: PUSH1 0x00
0000397c: DUP1
0000397d: SLOAD
0000397e: PUSH1 0x40
00003980: MLOAD
00003981: PUSH1 0x01
00003983: PUSH1 0x01
00003985: PUSH1 0xa0
00003987: SHL
00003988: SUB
00003989: DUP1
0000398a: DUP6
0000398b: AND
0000398c: SWAP4
0000398d: SWAP3
0000398e: AND
0000398f: SWAP2
00003990: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
000039b1: SWAP2
000039b2: LOG3
000039b3: PUSH1 0x00
000039b5: DUP1
000039b6: SLOAD
000039b7: PUSH1 0x01
000039b9: PUSH1 0x01
000039bb: PUSH1 0xa0
000039bd: SHL
000039be: SUB
000039bf: NOT
000039c0: AND
000039c1: PUSH1 0x01
000039c3: PUSH1 0x01
000039c5: PUSH1 0xa0
000039c7: SHL
000039c8: SUB
000039c9: SWAP3
000039ca: SWAP1
000039cb: SWAP3
000039cc: AND
000039cd: SWAP2
000039ce: SWAP1
000039cf: SWAP2
000039d0: OR
000039d1: SWAP1
000039d2: SSTORE
000039d3: JUMP
000039d4: JUMPDEST
000039d5: DUP1
000039d6: MLOAD
000039d7: PUSH1 0x20
000039d9: SWAP2
000039da: DUP3
000039db: ADD
000039dc: KECCAK256
000039dd: PUSH1 0x40
000039df: DUP1
000039e0: MLOAD
000039e1: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
00003a02: DUP2
00003a03: DUP6
00003a04: ADD
00003a05: MSTORE
00003a06: PUSH1 0x3c
00003a08: DUP1
00003a09: DUP3
00003a0a: ADD
00003a0b: SWAP4
00003a0c: SWAP1
00003a0d: SWAP4
00003a0e: MSTORE
00003a0f: DUP2
00003a10: MLOAD
00003a11: DUP1
00003a12: DUP3
00003a13: SUB
00003a14: SWAP1
00003a15: SWAP4
00003a16: ADD
00003a17: DUP4
00003a18: MSTORE
00003a19: PUSH1 0x5c
00003a1b: ADD
00003a1c: SWAP1
00003a1d: MSTORE
00003a1e: DUP1
00003a1f: MLOAD
00003a20: SWAP2
00003a21: ADD
00003a22: KECCAK256
00003a23: SWAP1
00003a24: JUMP
00003a25: JUMPDEST
00003a26: PUSH1 0x20
00003a28: DUP2
00003a29: ADD
00003a2a: MLOAD
00003a2b: PUSH1 0x40
00003a2d: DUP3
00003a2e: ADD
00003a2f: MLOAD
00003a30: PUSH1 0x41
00003a32: DUP4
00003a33: ADD
00003a34: MLOAD
00003a35: PUSH1 0x00
00003a37: SWAP3
00003a38: SWAP2
00003a39: SWAP1
00003a3a: PUSH1 0x1b
00003a3c: PUSH1 0xff
00003a3e: DUP3
00003a3f: AND
00003a40: LT
00003a41: ISZERO
00003a42: PUSH2 0x3a49
00003a45: JUMPI
00003a46: PUSH1 0x1b
00003a48: ADD
00003a49: JUMPDEST
00003a4a: PUSH1 0x40
00003a4c: DUP1
00003a4d: MLOAD
00003a4e: PUSH1 0x00
00003a50: DUP2
00003a51: MSTORE
00003a52: PUSH1 0x20
00003a54: DUP1
00003a55: DUP3
00003a56: ADD
00003a57: DUP1
00003a58: DUP5
00003a59: MSTORE
00003a5a: DUP10
00003a5b: SWAP1
00003a5c: MSTORE
00003a5d: PUSH1 0xff
00003a5f: DUP5
00003a60: AND
00003a61: DUP3
00003a62: DUP5
00003a63: ADD
00003a64: MSTORE
00003a65: PUSH1 0x60
00003a67: DUP3
00003a68: ADD
00003a69: DUP7
00003a6a: SWAP1
00003a6b: MSTORE
00003a6c: PUSH1 0x80
00003a6e: DUP3
00003a6f: ADD
00003a70: DUP6
00003a71: SWAP1
00003a72: MSTORE
00003a73: SWAP2
00003a74: MLOAD
00003a75: PUSH1 0x01
00003a77: SWAP3
00003a78: PUSH1 0xa0
00003a7a: DUP1
00003a7b: DUP5
00003a7c: ADD
00003a7d: SWAP4
00003a7e: SWAP2
00003a7f: SWAP3
00003a80: PUSH1 0x1f
00003a82: NOT
00003a83: DUP2
00003a84: ADD
00003a85: SWAP3
00003a86: DUP2
00003a87: SWAP1
00003a88: SUB
00003a89: SWAP1
00003a8a: SWAP2
00003a8b: ADD
00003a8c: SWAP1
00003a8d: DUP6
00003a8e: GAS
00003a8f: STATICCALL
00003a90: ISZERO
00003a91: DUP1
00003a92: ISZERO
00003a93: PUSH2 0x3aa0
00003a96: JUMPI
00003a97: RETURNDATASIZE
00003a98: PUSH1 0x00
00003a9a: DUP1
00003a9b: RETURNDATACOPY
00003a9c: RETURNDATASIZE
00003a9d: PUSH1 0x00
00003a9f: REVERT
00003aa0: JUMPDEST
00003aa1: POP
00003aa2: POP
00003aa3: PUSH1 0x40
00003aa5: MLOAD
00003aa6: PUSH1 0x1f
00003aa8: NOT
00003aa9: ADD
00003aaa: MLOAD
00003aab: SWAP8
00003aac: SWAP7
00003aad: POP
00003aae: POP
00003aaf: POP
00003ab0: POP
00003ab1: POP
00003ab2: POP
00003ab3: POP
00003ab4: JUMP
00003ab5: JUMPDEST
00003ab6: PUSH1 0x60
00003ab8: DUP2
00003ab9: DUP4
00003aba: ADD
00003abb: DUP5
00003abc: MLOAD
00003abd: LT
00003abe: ISZERO
00003abf: PUSH2 0x3ac7
00003ac2: JUMPI
00003ac3: PUSH1 0x00
00003ac5: DUP1
00003ac6: REVERT
00003ac7: JUMPDEST
00003ac8: PUSH1 0x60
00003aca: DUP3
00003acb: ISZERO
00003acc: DUP1
00003acd: ISZERO
00003ace: PUSH2 0x3ae2
00003ad1: JUMPI
00003ad2: PUSH1 0x40
00003ad4: MLOAD
00003ad5: SWAP2
00003ad6: POP
00003ad7: PUSH1 0x20
00003ad9: DUP3
00003ada: ADD
00003adb: PUSH1 0x40
00003add: MSTORE
00003ade: PUSH2 0x3b2c
00003ae1: JUMP
00003ae2: JUMPDEST
00003ae3: PUSH1 0x40
00003ae5: MLOAD
00003ae6: SWAP2
00003ae7: POP
00003ae8: PUSH1 0x1f
00003aea: DUP5
00003aeb: AND
00003aec: DUP1
00003aed: ISZERO
00003aee: PUSH1 0x20
00003af0: MUL
00003af1: DUP2
00003af2: DUP5
00003af3: ADD
00003af4: ADD
00003af5: DUP6
00003af6: DUP2
00003af7: ADD
00003af8: DUP8
00003af9: DUP4
00003afa: ISZERO
00003afb: PUSH1 0x20
00003afd: MUL
00003afe: DUP5
00003aff: DUP12
00003b00: ADD
00003b01: ADD
00003b02: ADD
00003b03: JUMPDEST
00003b04: DUP2
00003b05: DUP4
00003b06: LT
00003b07: ISZERO
00003b08: PUSH2 0x3b1b
00003b0b: JUMPI
00003b0c: DUP1
00003b0d: MLOAD
00003b0e: DUP4
00003b0f: MSTORE
00003b10: PUSH1 0x20
00003b12: SWAP3
00003b13: DUP4
00003b14: ADD
00003b15: SWAP3
00003b16: ADD
00003b17: PUSH2 0x3b03
00003b1a: JUMP
00003b1b: JUMPDEST
00003b1c: POP
00003b1d: POP
00003b1e: DUP6
00003b1f: DUP5
00003b20: MSTORE
00003b21: PUSH1 0x1f
00003b23: ADD
00003b24: PUSH1 0x1f
00003b26: NOT
00003b27: AND
00003b28: PUSH1 0x40
00003b2a: MSTORE
00003b2b: POP
00003b2c: JUMPDEST
00003b2d: POP
00003b2e: SWAP5
00003b2f: SWAP4
00003b30: POP
00003b31: POP
00003b32: POP
00003b33: POP
00003b34: JUMP
00003b35: JUMPDEST
00003b36: PUSH2 0xffff
00003b39: AND
00003b3a: PUSH1 0x00
00003b3c: SWAP1
00003b3d: DUP2
00003b3e: MSTORE
00003b3f: PUSH1 0x01
00003b41: PUSH1 0x20
00003b43: MSTORE
00003b44: PUSH1 0x40
00003b46: SWAP1
00003b47: KECCAK256
00003b48: SLOAD
00003b49: PUSH1 0x01
00003b4b: PUSH1 0x01
00003b4d: PUSH1 0xa8
00003b4f: SHL
00003b50: SUB
00003b51: AND
00003b52: SWAP1
00003b53: JUMP
00003b54: JUMPDEST
00003b55: PUSH2 0xffff
00003b58: AND
00003b59: PUSH1 0x00
00003b5b: SWAP1
00003b5c: DUP2
00003b5d: MSTORE
00003b5e: PUSH1 0x01
00003b60: PUSH1 0x20
00003b62: MSTORE
00003b63: PUSH1 0x40
00003b65: DUP2
00003b66: KECCAK256
00003b67: SLOAD
00003b68: PUSH1 0x58
00003b6a: SHL
00003b6b: SWAP1
00003b6c: BYTE
00003b6d: SWAP1
00003b6e: JUMP
00003b6f: JUMPDEST
00003b70: PUSH1 0x00
00003b72: PUSH2 0x3b7c
00003b75: DUP5
00003b76: PUSH1 0x00
00003b78: PUSH2 0x0b79
00003b7b: JUMP
00003b7c: JUMPDEST
00003b7d: PUSH2 0x3b88
00003b80: JUMPI
00003b81: POP
00003b82: PUSH1 0x00
00003b84: PUSH2 0x3c99
00003b87: JUMP
00003b88: JUMPDEST
00003b89: PUSH1 0x00
00003b8b: PUSH2 0x3c4f
00003b8e: DUP9
00003b8f: PUSH1 0x03
00003b91: DUP2
00003b92: GT
00003b93: ISZERO
00003b94: PUSH2 0x3b99
00003b97: JUMPI
00003b98: INVALID
00003b99: JUMPDEST
00003b9a: DUP9
00003b9b: DUP9
00003b9c: DUP9
00003b9d: PUSH1 0x40
00003b9f: MLOAD
00003ba0: PUSH1 0x20
00003ba2: ADD
00003ba3: DUP1
00003ba4: DUP6
00003ba5: PUSH1 0xff
00003ba7: AND
00003ba8: PUSH1 0xff
00003baa: AND
00003bab: PUSH1 0xf8
00003bad: SHL
00003bae: DUP2
00003baf: MSTORE
00003bb0: PUSH1 0x01
00003bb2: ADD
00003bb3: DUP5
00003bb4: DUP1
00003bb5: MLOAD
00003bb6: SWAP1
00003bb7: PUSH1 0x20
00003bb9: ADD
00003bba: SWAP1
00003bbb: DUP1
00003bbc: DUP4
00003bbd: DUP4
00003bbe: JUMPDEST
00003bbf: PUSH1 0x20
00003bc1: DUP4
00003bc2: LT
00003bc3: PUSH2 0x3bdd
00003bc6: JUMPI
00003bc7: DUP1
00003bc8: MLOAD
00003bc9: DUP3
00003bca: MSTORE
00003bcb: PUSH1 0x1f
00003bcd: NOT
00003bce: SWAP1
00003bcf: SWAP3
00003bd0: ADD
00003bd1: SWAP2
00003bd2: PUSH1 0x20
00003bd4: SWAP2
00003bd5: DUP3
00003bd6: ADD
00003bd7: SWAP2
00003bd8: ADD
00003bd9: PUSH2 0x3bbe
00003bdc: JUMP
00003bdd: JUMPDEST
00003bde: PUSH1 0x01
00003be0: DUP4
00003be1: PUSH1 0x20
00003be3: SUB
00003be4: PUSH2 0x0100
00003be7: EXP
00003be8: SUB
00003be9: DUP1
00003bea: NOT
00003beb: DUP3
00003bec: MLOAD
00003bed: AND
00003bee: DUP2
00003bef: DUP5
00003bf0: MLOAD
00003bf1: AND
00003bf2: DUP1
00003bf3: DUP3
00003bf4: OR
00003bf5: DUP6
00003bf6: MSTORE
00003bf7: POP
00003bf8: POP
00003bf9: POP
00003bfa: POP
00003bfb: POP
00003bfc: POP
00003bfd: SWAP1
00003bfe: POP
00003bff: ADD
00003c00: DUP4
00003c01: PUSH1 0x01
00003c03: PUSH1 0x01
00003c05: PUSH1 0xa0
00003c07: SHL
00003c08: SUB
00003c09: AND
00003c0a: PUSH1 0x01
00003c0c: PUSH1 0x01
00003c0e: PUSH1 0xa0
00003c10: SHL
00003c11: SUB
00003c12: AND
00003c13: PUSH1 0x60
00003c15: SHL
00003c16: DUP2
00003c17: MSTORE
00003c18: PUSH1 0x14
00003c1a: ADD
00003c1b: DUP3
00003c1c: PUSH1 0x01
00003c1e: PUSH1 0x01
00003c20: PUSH1 0xa0
00003c22: SHL
00003c23: SUB
00003c24: AND
00003c25: PUSH1 0x01
00003c27: PUSH1 0x01
00003c29: PUSH1 0xa0
00003c2b: SHL
00003c2c: SUB
00003c2d: AND
00003c2e: PUSH1 0x60
00003c30: SHL
00003c31: DUP2
00003c32: MSTORE
00003c33: PUSH1 0x14
00003c35: ADD
00003c36: SWAP5
00003c37: POP
00003c38: POP
00003c39: POP
00003c3a: POP
00003c3b: POP
00003c3c: PUSH1 0x40
00003c3e: MLOAD
00003c3f: PUSH1 0x20
00003c41: DUP2
00003c42: DUP4
00003c43: SUB
00003c44: SUB
00003c45: DUP2
00003c46: MSTORE
00003c47: SWAP1
00003c48: PUSH1 0x40
00003c4a: MSTORE
00003c4b: PUSH2 0x39d4
00003c4e: JUMP
00003c4f: JUMPDEST
00003c50: SWAP1
00003c51: POP
00003c52: DUP6
00003c53: PUSH1 0x01
00003c55: PUSH1 0x01
00003c57: PUSH1 0xa0
00003c59: SHL
00003c5a: SUB
00003c5b: AND
00003c5c: PUSH2 0x3c65
00003c5f: DUP3
00003c60: DUP7
00003c61: PUSH2 0x3a25
00003c64: JUMP
00003c65: JUMPDEST
00003c66: PUSH1 0x01
00003c68: PUSH1 0x01
00003c6a: PUSH1 0xa0
00003c6c: SHL
00003c6d: SUB
00003c6e: AND
00003c6f: EQ
00003c70: DUP1
00003c71: ISZERO
00003c72: PUSH2 0x3c95
00003c75: JUMPI
00003c76: POP
00003c77: DUP5
00003c78: PUSH1 0x01
00003c7a: PUSH1 0x01
00003c7c: PUSH1 0xa0
00003c7e: SHL
00003c7f: SUB
00003c80: AND
00003c81: PUSH2 0x3c8a
00003c84: DUP3
00003c85: DUP6
00003c86: PUSH2 0x3a25
00003c89: JUMP
00003c8a: JUMPDEST
00003c8b: PUSH1 0x01
00003c8d: PUSH1 0x01
00003c8f: PUSH1 0xa0
00003c91: SHL
00003c92: SUB
00003c93: AND
00003c94: EQ
00003c95: JUMPDEST
00003c96: SWAP2
00003c97: POP
00003c98: POP
00003c99: JUMPDEST
00003c9a: SWAP7
00003c9b: SWAP6
00003c9c: POP
00003c9d: POP
00003c9e: POP
00003c9f: POP
00003ca0: POP
00003ca1: POP
00003ca2: JUMP
00003ca3: JUMPDEST
00003ca4: PUSH2 0xffff
00003ca7: DUP7
00003ca8: DUP2
00003ca9: AND
00003caa: EQ
00003cab: ISZERO
00003cac: PUSH2 0x3cb4
00003caf: JUMPI
00003cb0: PUSH2 0x34ca
00003cb3: JUMP
00003cb4: JUMPDEST
00003cb5: PUSH1 0x00
00003cb7: SLOAD
00003cb8: PUSH2 0xffff
00003cbb: PUSH1 0x01
00003cbd: PUSH1 0xb8
00003cbf: SHL
00003cc0: SWAP1
00003cc1: SWAP2
00003cc2: DIV
00003cc3: DUP2
00003cc4: AND
00003cc5: SWAP1
00003cc6: DUP8
00003cc7: AND
00003cc8: LT
00003cc9: PUSH2 0x3d0c
00003ccc: JUMPI
00003ccd: PUSH1 0x40
00003ccf: DUP1
00003cd0: MLOAD
00003cd1: PUSH3 0x461bcd
00003cd5: PUSH1 0xe5
00003cd7: SHL
00003cd8: DUP2
00003cd9: MSTORE
00003cda: PUSH1 0x20
00003cdc: PUSH1 0x04
00003cde: DUP3
00003cdf: ADD
00003ce0: MSTORE
00003ce1: PUSH1 0x10
00003ce3: PUSH1 0x24
00003ce5: DUP3
00003ce6: ADD
00003ce7: MSTORE
00003ce8: PUSH16 0x125b9d985b1a5908185cdcd95d081a59
00003cf9: PUSH1 0x82
00003cfb: SHL
00003cfc: PUSH1 0x44
00003cfe: DUP3
00003cff: ADD
00003d00: MSTORE
00003d01: SWAP1
00003d02: MLOAD
00003d03: SWAP1
00003d04: DUP2
00003d05: SWAP1
00003d06: SUB
00003d07: PUSH1 0x64
00003d09: ADD
00003d0a: SWAP1
00003d0b: REVERT
00003d0c: JUMPDEST
00003d0d: PUSH2 0x3d14
00003d10: PUSH2 0x4035
00003d13: JUMP
00003d14: JUMPDEST
00003d15: PUSH2 0x3d1e
00003d18: DUP9
00003d19: DUP9
00003d1a: PUSH2 0x2ad2
00003d1d: JUMP
00003d1e: JUMPDEST
00003d1f: SWAP1
00003d20: POP
00003d21: DUP1
00003d22: PUSH1 0x20
00003d24: ADD
00003d25: MLOAD
00003d26: PUSH4 0xffffffff
00003d2b: AND
00003d2c: DUP7
00003d2d: PUSH1 0x01
00003d2f: PUSH1 0x01
00003d31: PUSH1 0x40
00003d33: SHL
00003d34: SUB
00003d35: AND
00003d36: EQ
00003d37: PUSH2 0x3d71
00003d3a: JUMPI
00003d3b: PUSH1 0x40
00003d3d: MLOAD
00003d3e: PUSH3 0x461bcd
00003d42: PUSH1 0xe5
00003d44: SHL
00003d45: DUP2
00003d46: MSTORE
00003d47: PUSH1 0x04
00003d49: ADD
00003d4a: DUP1
00003d4b: DUP1
00003d4c: PUSH1 0x20
00003d4e: ADD
00003d4f: DUP3
00003d50: DUP2
00003d51: SUB
00003d52: DUP3
00003d53: MSTORE
00003d54: PUSH1 0x27
00003d56: DUP2
00003d57: MSTORE
00003d58: PUSH1 0x20
00003d5a: ADD
00003d5b: DUP1
00003d5c: PUSH2 0x42c6
00003d5f: PUSH1 0x27
00003d61: SWAP2
00003d62: CODECOPY
00003d63: PUSH1 0x40
00003d65: ADD
00003d66: SWAP2
00003d67: POP
00003d68: POP
00003d69: PUSH1 0x40
00003d6b: MLOAD
00003d6c: DUP1
00003d6d: SWAP2
00003d6e: SUB
00003d6f: SWAP1
00003d70: REVERT
00003d71: JUMPDEST
00003d72: PUSH1 0x00
00003d74: DUP3
00003d75: PUSH2 0x3d7e
00003d78: JUMPI
00003d79: DUP6
00003d7a: PUSH2 0x3d81
00003d7d: JUMP
00003d7e: JUMPDEST
00003d7f: PUSH1 0x00
00003d81: JUMPDEST
00003d82: PUSH1 0x01
00003d84: PUSH1 0x01
00003d86: PUSH1 0xa0
00003d88: SHL
00003d89: SUB
00003d8a: DUP11
00003d8b: AND
00003d8c: PUSH1 0x00
00003d8e: SWAP1
00003d8f: DUP2
00003d90: MSTORE
00003d91: PUSH1 0x03
00003d93: PUSH1 0x20
00003d95: SWAP1
00003d96: DUP2
00003d97: MSTORE
00003d98: PUSH1 0x40
00003d9a: DUP1
00003d9b: DUP4
00003d9c: KECCAK256
00003d9d: PUSH2 0xffff
00003da0: DUP14
00003da1: AND
00003da2: DUP5
00003da3: MSTORE
00003da4: DUP3
00003da5: MSTORE
00003da6: DUP1
00003da7: DUP4
00003da8: KECCAK256
00003da9: PUSH1 0x01
00003dab: PUSH1 0x01
00003dad: PUSH1 0x40
00003daf: SHL
00003db0: SUB
00003db1: DUP1
00003db2: DUP14
00003db3: AND
00003db4: DUP6
00003db5: MSTORE
00003db6: SWAP1
00003db7: DUP4
00003db8: MSTORE
00003db9: DUP2
00003dba: DUP5
00003dbb: KECCAK256
00003dbc: PUSH4 0xffffffff
00003dc1: DUP11
00003dc2: AND
00003dc3: DUP6
00003dc4: MSTORE
00003dc5: SWAP1
00003dc6: SWAP3
00003dc7: MSTORE
00003dc8: SWAP1
00003dc9: SWAP2
00003dca: KECCAK256
00003dcb: SLOAD
00003dcc: SWAP2
00003dcd: DUP8
00003dce: ADD
00003dcf: SWAP3
00003dd0: POP
00003dd1: PUSH1 0x08
00003dd3: SWAP2
00003dd4: DUP3
00003dd5: SIGNEXTEND
00003dd6: SWAP2
00003dd7: DUP3
00003dd8: SWAP1
00003dd9: SIGNEXTEND
00003dda: SWAP1
00003ddb: DUP4
00003ddc: AND
00003ddd: SLT
00003dde: ISZERO
00003ddf: PUSH2 0x3e19
00003de2: JUMPI
00003de3: PUSH1 0x40
00003de5: MLOAD
00003de6: PUSH3 0x461bcd
00003dea: PUSH1 0xe5
00003dec: SHL
00003ded: DUP2
00003dee: MSTORE
00003def: PUSH1 0x04
00003df1: ADD
00003df2: DUP1
00003df3: DUP1
00003df4: PUSH1 0x20
00003df6: ADD
00003df7: DUP3
00003df8: DUP2
00003df9: SUB
00003dfa: DUP3
00003dfb: MSTORE
00003dfc: PUSH1 0x29
00003dfe: DUP2
00003dff: MSTORE
00003e00: PUSH1 0x20
00003e02: ADD
00003e03: DUP1
00003e04: PUSH2 0x429d
00003e07: PUSH1 0x29
00003e09: SWAP2
00003e0a: CODECOPY
00003e0b: PUSH1 0x40
00003e0d: ADD
00003e0e: SWAP2
00003e0f: POP
00003e10: POP
00003e11: PUSH1 0x40
00003e13: MLOAD
00003e14: DUP1
00003e15: SWAP2
00003e16: SUB
00003e17: SWAP1
00003e18: REVERT
00003e19: JUMPDEST
00003e1a: PUSH1 0x01
00003e1c: PUSH1 0x01
00003e1e: PUSH1 0x40
00003e20: SHL
00003e21: SUB
00003e22: DUP3
00003e23: AND
00003e24: DUP2
00003e25: SWAP1
00003e26: SUB
00003e27: DUP5
00003e28: ISZERO
00003e29: PUSH2 0x3efd
00003e2c: JUMPI
00003e2d: PUSH2 0xffff
00003e30: DUP11
00003e31: AND
00003e32: PUSH1 0x00
00003e34: SWAP1
00003e35: DUP2
00003e36: MSTORE
00003e37: PUSH1 0x05
00003e39: PUSH1 0x20
00003e3b: MSTORE
00003e3c: PUSH1 0x40
00003e3e: SWAP1
00003e3f: KECCAK256
00003e40: SLOAD
00003e41: PUSH1 0x01
00003e43: PUSH1 0x01
00003e45: PUSH1 0x40
00003e47: SHL
00003e48: SUB
00003e49: DUP1
00003e4a: DUP4
00003e4b: AND
00003e4c: SWAP2
00003e4d: AND
00003e4e: LT
00003e4f: ISZERO
00003e50: PUSH2 0x3ea0
00003e53: JUMPI
00003e54: PUSH1 0x40
00003e56: DUP1
00003e57: MLOAD
00003e58: PUSH3 0x461bcd
00003e5c: PUSH1 0xe5
00003e5e: SHL
00003e5f: DUP2
00003e60: MSTORE
00003e61: PUSH1 0x20
00003e63: PUSH1 0x04
00003e65: DUP3
00003e66: ADD
00003e67: DUP2
00003e68: SWAP1
00003e69: MSTORE
00003e6a: PUSH1 0x24
00003e6c: DUP3
00003e6d: ADD
00003e6e: MSTORE
00003e6f: PUSH32 0x4e6f7420656e6f75676820617373657473206c65667420696e20627566666572
00003e90: PUSH1 0x44
00003e92: DUP3
00003e93: ADD
00003e94: MSTORE
00003e95: SWAP1
00003e96: MLOAD
00003e97: SWAP1
00003e98: DUP2
00003e99: SWAP1
00003e9a: SUB
00003e9b: PUSH1 0x64
00003e9d: ADD
00003e9e: SWAP1
00003e9f: REVERT
00003ea0: JUMPDEST
00003ea1: PUSH2 0xffff
00003ea4: DUP11
00003ea5: AND
00003ea6: PUSH1 0x00
00003ea8: SWAP1
00003ea9: DUP2
00003eaa: MSTORE
00003eab: PUSH1 0x04
00003ead: PUSH1 0x20
00003eaf: SWAP1
00003eb0: DUP2
00003eb1: MSTORE
00003eb2: PUSH1 0x40
00003eb4: DUP1
00003eb5: DUP4
00003eb6: KECCAK256
00003eb7: DUP1
00003eb8: SLOAD
00003eb9: PUSH1 0x01
00003ebb: PUSH1 0x01
00003ebd: PUSH1 0x40
00003ebf: SHL
00003ec0: SUB
00003ec1: DUP1
00003ec2: DUP3
00003ec3: AND
00003ec4: DUP8
00003ec5: ADD
00003ec6: DUP2
00003ec7: AND
00003ec8: PUSH8 0xffffffffffffffff
00003ed1: NOT
00003ed2: SWAP3
00003ed3: DUP4
00003ed4: AND
00003ed5: OR
00003ed6: SWAP1
00003ed7: SWAP3
00003ed8: SSTORE
00003ed9: PUSH1 0x05
00003edb: SWAP1
00003edc: SWAP4
00003edd: MSTORE
00003ede: SWAP3
00003edf: KECCAK256
00003ee0: DUP1
00003ee1: SLOAD
00003ee2: DUP1
00003ee3: DUP5
00003ee4: AND
00003ee5: DUP6
00003ee6: SWAP1
00003ee7: SUB
00003ee8: DUP5
00003ee9: AND
00003eea: SWAP3
00003eeb: AND
00003eec: SWAP2
00003eed: SWAP1
00003eee: SWAP2
00003eef: OR
00003ef0: SWAP1
00003ef1: SSTORE
00003ef2: DUP5
00003ef3: MLOAD
00003ef4: DUP3
00003ef5: ADD
00003ef6: AND
00003ef7: DUP5
00003ef8: MSTORE
00003ef9: PUSH2 0x3fae
00003efc: JUMP
00003efd: JUMPDEST
00003efe: DUP4
00003eff: MLOAD
00003f00: PUSH1 0x01
00003f02: PUSH1 0x01
00003f04: PUSH1 0x40
00003f06: SHL
00003f07: SUB
00003f08: DUP1
00003f09: DUP4
00003f0a: AND
00003f0b: SWAP2
00003f0c: AND
00003f0d: LT
00003f0e: ISZERO
00003f0f: PUSH2 0x3f54
00003f12: JUMPI
00003f13: PUSH1 0x40
00003f15: DUP1
00003f16: MLOAD
00003f17: PUSH3 0x461bcd
00003f1b: PUSH1 0xe5
00003f1d: SHL
00003f1e: DUP2
00003f1f: MSTORE
00003f20: PUSH1 0x20
00003f22: PUSH1 0x04
00003f24: DUP3
00003f25: ADD
00003f26: MSTORE
00003f27: PUSH1 0x12
00003f29: PUSH1 0x24
00003f2b: DUP3
00003f2c: ADD
00003f2d: MSTORE
00003f2e: PUSH18 0x496e73756666696369656e742066756e6473
00003f41: PUSH1 0x70
00003f43: SHL
00003f44: PUSH1 0x44
00003f46: DUP3
00003f47: ADD
00003f48: MSTORE
00003f49: SWAP1
00003f4a: MLOAD
00003f4b: SWAP1
00003f4c: DUP2
00003f4d: SWAP1
00003f4e: SUB
00003f4f: PUSH1 0x64
00003f51: ADD
00003f52: SWAP1
00003f53: REVERT
00003f54: JUMPDEST
00003f55: PUSH2 0xffff
00003f58: DUP11
00003f59: AND
00003f5a: PUSH1 0x00
00003f5c: SWAP1
00003f5d: DUP2
00003f5e: MSTORE
00003f5f: PUSH1 0x04
00003f61: PUSH1 0x20
00003f63: SWAP1
00003f64: DUP2
00003f65: MSTORE
00003f66: PUSH1 0x40
00003f68: DUP1
00003f69: DUP4
00003f6a: KECCAK256
00003f6b: DUP1
00003f6c: SLOAD
00003f6d: PUSH1 0x01
00003f6f: PUSH1 0x01
00003f71: PUSH1 0x40
00003f73: SHL
00003f74: SUB
00003f75: DUP1
00003f76: DUP3
00003f77: AND
00003f78: DUP8
00003f79: SWAP1
00003f7a: SUB
00003f7b: DUP2
00003f7c: AND
00003f7d: PUSH8 0xffffffffffffffff
00003f86: NOT
00003f87: SWAP3
00003f88: DUP4
00003f89: AND
00003f8a: OR
00003f8b: SWAP1
00003f8c: SWAP3
00003f8d: SSTORE
00003f8e: PUSH1 0x05
00003f90: SWAP1
00003f91: SWAP4
00003f92: MSTORE
00003f93: SWAP3
00003f94: KECCAK256
00003f95: DUP1
00003f96: SLOAD
00003f97: DUP1
00003f98: DUP5
00003f99: AND
00003f9a: DUP6
00003f9b: ADD
00003f9c: DUP5
00003f9d: AND
00003f9e: SWAP3
00003f9f: AND
00003fa0: SWAP2
00003fa1: SWAP1
00003fa2: SWAP2
00003fa3: OR
00003fa4: SWAP1
00003fa5: SSTORE
00003fa6: DUP5
00003fa7: MLOAD
00003fa8: DUP3
00003fa9: SWAP1
00003faa: SUB
00003fab: AND
00003fac: DUP5
00003fad: MSTORE
00003fae: JUMPDEST
00003faf: PUSH1 0x01
00003fb1: PUSH1 0x01
00003fb3: PUSH1 0xa0
00003fb5: SHL
00003fb6: SUB
00003fb7: DUP12
00003fb8: AND
00003fb9: PUSH1 0x00
00003fbb: SWAP1
00003fbc: DUP2
00003fbd: MSTORE
00003fbe: PUSH1 0x03
00003fc0: PUSH1 0x20
00003fc2: SWAP1
00003fc3: DUP2
00003fc4: MSTORE
00003fc5: PUSH1 0x40
00003fc7: DUP1
00003fc8: DUP4
00003fc9: KECCAK256
00003fca: PUSH2 0xffff
00003fcd: DUP15
00003fce: AND
00003fcf: DUP5
00003fd0: MSTORE
00003fd1: DUP3
00003fd2: MSTORE
00003fd3: DUP1
00003fd4: DUP4
00003fd5: KECCAK256
00003fd6: PUSH1 0x01
00003fd8: PUSH1 0x01
00003fda: PUSH1 0x40
00003fdc: SHL
00003fdd: SUB
00003fde: DUP14
00003fdf: DUP2
00003fe0: AND
00003fe1: DUP6
00003fe2: MSTORE
00003fe3: SWAP1
00003fe4: DUP4
00003fe5: MSTORE
00003fe6: DUP2
00003fe7: DUP5
00003fe8: KECCAK256
00003fe9: PUSH4 0xffffffff
00003fee: DUP12
00003fef: AND
00003ff0: DUP6
00003ff1: MSTORE
00003ff2: SWAP1
00003ff3: SWAP3
00003ff4: MSTORE
00003ff5: SWAP1
00003ff6: SWAP2
00003ff7: KECCAK256
00003ff8: DUP1
00003ff9: SLOAD
00003ffa: SWAP2
00003ffb: DUP4
00003ffc: AND
00003ffd: PUSH1 0x08
00003fff: SIGNEXTEND
00004000: PUSH9 0xffffffffffffffffff
0000400a: AND
0000400b: PUSH9 0xffffffffffffffffff
00004015: NOT
00004016: SWAP1
00004017: SWAP3
00004018: AND
00004019: SWAP2
0000401a: SWAP1
0000401b: SWAP2
0000401c: OR
0000401d: SWAP1
0000401e: SSTORE
0000401f: PUSH2 0x4028
00004022: DUP12
00004023: DUP6
00004024: PUSH2 0x2ca2
00004027: JUMP
00004028: JUMPDEST
00004029: POP
0000402a: POP
0000402b: POP
0000402c: POP
0000402d: POP
0000402e: POP
0000402f: POP
00004030: POP
00004031: POP
00004032: POP
00004033: POP
00004034: JUMP
00004035: JUMPDEST
00004036: PUSH1 0x40
00004038: DUP1
00004039: MLOAD
0000403a: PUSH1 0x80
0000403c: DUP2
0000403d: ADD
0000403e: DUP3
0000403f: MSTORE
00004040: PUSH1 0x00
00004042: DUP1
00004043: DUP3
00004044: MSTORE
00004045: PUSH1 0x20
00004047: DUP3
00004048: ADD
00004049: DUP2
0000404a: SWAP1
0000404b: MSTORE
0000404c: SWAP2
0000404d: DUP2
0000404e: ADD
0000404f: DUP3
00004050: SWAP1
00004051: MSTORE
00004052: PUSH1 0x60
00004054: DUP2
00004055: ADD
00004056: SWAP2
00004057: SWAP1
00004058: SWAP2
00004059: MSTORE
0000405a: SWAP1
0000405b: JUMP
0000405c: JUMPDEST
0000405d: DUP2
0000405e: SLOAD
0000405f: PUSH1 0x01
00004061: DUP2
00004062: PUSH1 0x01
00004064: AND
00004065: ISZERO
00004066: PUSH2 0x0100
00004069: MUL
0000406a: SUB
0000406b: AND
0000406c: PUSH1 0x02
0000406e: SWAP1
0000406f: DIV
00004070: DUP3
00004071: SLOAD
00004072: DUP2
00004073: PUSH1 0x1f
00004075: LT
00004076: PUSH2 0x40b7
00004079: JUMPI
0000407a: DUP3
0000407b: PUSH1 0x1f
0000407d: LT
0000407e: PUSH2 0x409c
00004081: JUMPI
00004082: JUMPDEST
00004083: DUP3
00004084: PUSH1 0x08
00004086: MUL
00004087: PUSH2 0x0100
0000408a: SUB
0000408b: PUSH1 0x02
0000408d: EXP
0000408e: DUP1
0000408f: SWAP2
00004090: DIV
00004091: MUL
00004092: DUP3
00004093: DUP1
00004094: ADD
00004095: OR
00004096: DUP4
00004097: SSTORE
00004098: PUSH2 0x2fd6
0000409b: JUMP
0000409c: JUMPDEST
0000409d: PUSH1 0xff
0000409f: NOT
000040a0: AND
000040a1: DUP4
000040a2: PUSH1 0x00
000040a4: MSTORE
000040a5: PUSH1 0x20
000040a7: PUSH1 0x00
000040a9: KECCAK256
000040aa: SSTORE
000040ab: DUP2
000040ac: DUP1
000040ad: ADD
000040ae: PUSH1 0x01
000040b0: ADD
000040b1: DUP4
000040b2: SSTORE
000040b3: PUSH2 0x2fd6
000040b6: JUMP
000040b7: JUMPDEST
000040b8: DUP3
000040b9: PUSH1 0x1f
000040bb: LT
000040bc: PUSH2 0x40e7
000040bf: JUMPI
000040c0: POP
000040c1: DUP3
000040c2: PUSH1 0x00
000040c4: MSTORE
000040c5: PUSH1 0x20
000040c7: PUSH1 0x00
000040c9: KECCAK256
000040ca: DUP1
000040cb: SLOAD
000040cc: SWAP1
000040cd: DUP3
000040ce: PUSH1 0x1f
000040d0: ADD
000040d1: PUSH1 0x20
000040d3: SWAP1
000040d4: DIV
000040d5: DUP2
000040d6: ADD
000040d7: SWAP1
000040d8: PUSH2 0x40e1
000040db: SWAP2
000040dc: SWAP1
000040dd: PUSH2 0x411b
000040e0: JUMP
000040e1: JUMPDEST
000040e2: POP
000040e3: PUSH2 0x4082
000040e6: JUMP
000040e7: JUMPDEST
000040e8: POP
000040e9: DUP2
000040ea: DUP1
000040eb: ADD
000040ec: PUSH1 0x01
000040ee: ADD
000040ef: DUP4
000040f0: SSTORE
000040f1: DUP2
000040f2: DUP2
000040f3: GT
000040f4: ISZERO
000040f5: PUSH2 0x2fd6
000040f8: JUMPI
000040f9: PUSH1 0x1f
000040fb: ADD
000040fc: PUSH1 0x20
000040fe: SWAP1
000040ff: DIV
00004100: DUP2
00004101: PUSH1 0x1f
00004103: ADD
00004104: PUSH1 0x20
00004106: SWAP1
00004107: DIV
00004108: DUP4
00004109: PUSH1 0x00
0000410b: MSTORE
0000410c: PUSH1 0x20
0000410e: PUSH1 0x00
00004110: KECCAK256
00004111: SWAP2
00004112: DUP3
00004113: ADD
00004114: SWAP2
00004115: ADD
00004116: PUSH2 0x2fd6
00004119: SWAP2
0000411a: SWAP1
0000411b: JUMPDEST
0000411c: PUSH2 0x1883
0000411f: SWAP2
00004120: SWAP1
00004121: JUMPDEST
00004122: DUP1
00004123: DUP3
00004124: GT
00004125: ISZERO
00004126: PUSH2 0x4135
00004129: JUMPI
0000412a: PUSH1 0x00
0000412c: DUP2
0000412d: SSTORE
0000412e: PUSH1 0x01
00004130: ADD
00004131: PUSH2 0x4121
00004134: JUMP
00004135: JUMPDEST
00004136: POP
00004137: SWAP1
00004138: JUMP
00004139: INVALID
0000413a: MSTORE8
0000413b: PUSH14 0x61727420636f6e74726163742066
0000414a: PUSH22 0x6e6374696f6e65642063616c6c65642066726f6d206c
00004161: PUSH16 0x636b65642073746174655472616e7361
00004172: PUSH4 0x74696f6e
00004177: KECCAK256
00004178: PUSH6 0x786365656473
0000417f: KECCAK256
00004180: PUSH2 0x6c6c
00004183: PUSH16 0x77656420616d6f756e744f776e61626c
00004194: PUSH6 0x3a206e657720
0000419b: PUSH16 0x776e657220697320746865207a65726f
000041ac: KECCAK256
000041ad: PUSH2 0x6464
000041b0: PUSH19 0x65737346756e6374696f6e206d757374206265
000041c4: KECCAK256
000041c5: PUSH20 0x69676e65642062792075736572206465706f7369
000041da: PUSH21 0x696e672066756e64735472616e73616374696f6e20
000041f0: PUSH7 0x65652065786365
000041f8: PUSH6 0x6473206d6178
000041ff: PUSH10 0x6d756d2066656546756e
0000420a: PUSH4 0x74696f6e
0000420f: KECCAK256
00004210: PUSH14 0x7573742062652063616c6c656420
0000421f: PUSH3 0x792075
00004223: PUSH20 0x6572207769746864726177696e672066756e6473
00004238: CHAINID
00004239: PUSH22 0x6e6374696f6e206d7573742062652063616c6c656420
00004250: PUSH3 0x792075
00004254: PUSH20 0x6572206465706f736974696e672066756e647348
00004269: PUSH10 0x67686572206e6f6e6365
00004274: KECCAK256
00004275: PUSH9 0x6173206265656e2072
0000427f: PUSH6 0x636f72646564
00004286: KECCAK256
00004287: PUSH3 0x792075
0000428b: PUSH20 0x657220666f722074686973206173736574557064
000042a0: PUSH2 0x7465
000042a3: PUSH5 0x206f726465
000042a9: PUSH19 0x20736d616c6c207468616e2070726576696f75
000042bd: PUSH20 0x2076657273696f6e4173736574206e6f6e636520
000042d2: PUSH5 0x6f6573206e
000042d8: PUSH16 0x7420657175616c207369676e6564206e
000042e9: PUSH16 0x6e63655472616e73616374696f6e2075
000042fa: PUSH15 0x646572206d696e696d756d20616c6c
0000430a: PUSH16 0x7765642065786368616e676520726174
0000431b: PUSH6 0x416d6f756e74
00004322: KECCAK256
00004323: PUSH17 0x6172616d6574657220646f6573206e6f74
00004335: KECCAK256
00004336: PUSH14 0x617463682070726f766964656420
00004345: PUSH6 0x746865724f77
0000434c: PUSH15 0x61626c653a2063616c6c6572206973
0000435c: KECCAK256
0000435d: PUSH15 0x6f7420746865206f776e65724e6f74
0000436d: KECCAK256
0000436e: PUSH6 0x6e6f75676820
00004375: PUSH3 0x6c6f63
00004379: PUSH12 0x732068617665207061737365
00004386: PUSH5 0x2073696e63
0000438c: PUSH6 0x207769746864
00004393: PUSH19 0x6177616c20696e6974696174696f6e48696768
000043a7: PUSH6 0x72206e6f6e63
000043ae: PUSH6 0x206861732062
000043b5: PUSH6 0x656e20726563
000043bc: PUSH16 0x7264656420666f722075736572496e76
000043cd: PUSH2 0x6c69
000043d0: PUSH5 0x206d617463
000043d6: PUSH9 0x696e6720656e67696e
000043e0: PUSH6 0x207369676e61
000043e7: PUSH21 0x75726546756e6374696f6e206d7573742062652073
000043fd: PUSH10 0x676e6564206279207573
00004408: PUSH6 0x722077697468
0000440f: PUSH5 0x726177696e
00004415: PUSH8 0x2066756e64735472
0000441e: PUSH2 0x6e73
00004421: PUSH2 0x6374
00004424: PUSH10 0x6f6e2065786365656473
0000442f: KECCAK256
00004430: PUSH14 0x6178696d756d20616c6c6f776564
0000443f: KECCAK256
00004440: PUSH6 0x786368616e67
00004447: PUSH6 0x2072617465a2
0000444e: PUSH6 0x627a7a723158
00004455: KECCAK256
00004456: JUMP
00004457: ADD
00004458: COINBASE
00004459: UNKNOWN(0x2B)
0000445a: CALLCODE
0000445b: DUP5
0000445c: UNKNOWN(0xC3)
0000445d: UNKNOWN(0x0E)
0000445e: UNKNOWN(0xC0)
0000445f: SUB
00004460: UNKNOWN(0xE1)
00004461: ADD
00004462: SWAP6
00004463: NOT
00004464: UNKNOWN(0xC2)
00004465: PUSH31

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x8370fc66674ef8f7741d53d1cfb858cbdcddd9ce751a0b706ab0b96a916e4287
call_targets: 0x00f2b67b5a5ec2ff88b2be7d5a8d1a39d5929237
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x8370fc66674ef8f7741d53d1cfb858cbdcddd9ce751a0b706ab0b96a916e4287",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x00f2b67b5a5ec2ff88b2be7d5a8d1a39d5929237"
    ],
    "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": "0x929a0be6",
            "selector": "0x929a0be6",
            "calldata_variants": [
                "0x929a0be6",
                "0x929a0be60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc0a0dce3",
            "selector": "0xc0a0dce3",
            "calldata_variants": [
                "0xc0a0dce3",
                "0xc0a0dce30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc23c033c",
            "selector": "0xc23c033c",
            "calldata_variants": [
                "0xc23c033c",
                "0xc23c033c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcf309012",
            "selector": "0xcf309012",
            "calldata_variants": [
                "0xcf309012",
                "0xcf3090120000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffd2a7d3",
            "selector": "0xffd2a7d3",
            "calldata_variants": [
                "0xffd2a7d3",
                "0xffd2a7d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7362d9c8",
            "selector": "0x7362d9c8",
            "calldata_variants": [
                "0x7362d9c8",
                "0x7362d9c80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x79a9ce36",
            "selector": "0x79a9ce36",
            "calldata_variants": [
                "0x79a9ce36",
                "0x79a9ce360000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 12470,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 12680,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 17498,
            "opcode": "CALLCODE",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": []
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x8370fc66674ef8f7741d53d1cfb858cbdcddd9ce751a0b706ab0b96a916e4287
call_targets: 0x00f2b67b5a5ec2ff88b2be7d5a8d1a39d5929237
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x8370fc66674ef8f7741d53d1cfb858cbdcddd9ce751a0b706ab0b96a916e4287",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x00f2b67b5a5ec2ff88b2be7d5a8d1a39d5929237"
    ],
    "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": "0x929a0be6",
            "selector": "0x929a0be6",
            "calldata_variants": [
                "0x929a0be6",
                "0x929a0be60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc0a0dce3",
            "selector": "0xc0a0dce3",
            "calldata_variants": [
                "0xc0a0dce3",
                "0xc0a0dce30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc23c033c",
            "selector": "0xc23c033c",
            "calldata_variants": [
                "0xc23c033c",
                "0xc23c033c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcf309012",
            "selector": "0xcf309012",
            "calldata_variants": [
                "0xcf309012",
                "0xcf3090120000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffd2a7d3",
            "selector": "0xffd2a7d3",
            "calldata_variants": [
                "0xffd2a7d3",
                "0xffd2a7d30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7362d9c8",
            "selector": "0x7362d9c8",
            "calldata_variants": [
                "0x7362d9c8",
                "0x7362d9c80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x79a9ce36",
            "selector": "0x79a9ce36",
            "calldata_variants": [
                "0x79a9ce36",
                "0x79a9ce360000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 12470,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 12680,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 17498,
            "opcode": "CALLCODE",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [],
    "untrusted_call_count": 3
}