58a5a56b-8358-4516-9f42-50181b41b98b
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 31420 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 77146 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 77147 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 77148 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 77149 | capability.graph | complete | 1 / 3 | 1 week ago |
| 77150 | detector.run | complete | 1 / 3 | 1 week ago |
| 77151 | validation.fork | complete | 1 / 3 | 1 week ago |
| 113564 | tool.slither | failed | 2 / 2 | 1 week ago |
Traceback (most recent call last):
File "/var/www/tripwire/worker/worker.py", line 198, in main
payload = dispatch_job(job_type, job_id, job_meta, run_data, config, laravel_client)
File "/var/www/tripwire/worker/worker.py", line 114, in dispatch_job
return slither_run.run(job_id, job_meta, run_data, config, log, laravel_client)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/worker/jobs/slither_run.py", line 1056, in run
solc_path, solc_meta = _prepare_solc(chosen_version, workspace)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/worker/jobs/slither_run.py", line 190, in _prepare_solc
raise RuntimeError(f"solc version {default_version} is too old for supported toolchain")
RuntimeError: solc version 0.4.2 is too old for supported toolchain
[codex:10712] OpenAI Codex v0.77.0 (research preview)
[codex:10712] --------
[codex:10712] workdir: /tmp/codex-multi-54kwm9cj
[codex:10712] model: gpt-5.2-codex
[codex:10712] provider: openai
[codex:10712] approval: never
[codex:10712] sandbox: read-only
[codex:10712] reasoning effort: xhigh
[codex:10712] reasoning summaries: auto
[codex:10712] session id: 019b817f-058c-7a02-8b2e-60a2379c7434
[codex:10712] --------
[codex:10712] user
[codex:10712] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:10712]
[codex:10712] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:10712]
[codex:10712] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:10712] - Gas inefficiency, code quality, naming, or best practices
[codex:10712] - Theoretical vulnerabilities without a clear extraction path
[codex:10712] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:10712] - Front-running unless it enables theft beyond MEV
[codex:10712] - DoS, griefing, or issues that don't result in attacker profit
[codex:10712] - Missing events, view function issues, or informational findings
[codex:10712]
[codex:10712] HIGH-VALUE PATTERNS TO HUNT:
[codex:10712] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:10712] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:10712] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:10712] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:10712] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:10712] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:10712] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:10712] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:10712] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:10712]
[codex:10712] For each finding, you MUST provide:
[codex:10712] 1. Exact file and line numbers of vulnerable code
[codex:10712] 2. Step-by-step exploit transaction sequence
[codex:10712] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:10712]
[codex:10712] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:10712]
[codex:10712] Output MUST be valid JSON matching the provided schema.
[codex:10712] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:10712] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:10712] mcp startup: no servers
[codex:10712]
[codex:10712] thinking
[codex:10712] **Preparing to review instructions and audit bundle**
[codex:10712] exec
[codex:10712] /bin/bash -lc ls in /tmp/codex-multi-54kwm9cj succeeded in 5ms:
[codex:10712] AUDIT_BUNDLE.txt
[codex:10712] codex-output-schema.json
[codex:10712] contracts
[codex:10712] exec
[codex:10712] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-54kwm9cj succeeded in 7ms:
[codex:10712] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:10712]
[codex:10712] ================================================================================
[codex:10712] FILE: contracts/Contract.sol
[codex:10712] ================================================================================
[codex:10712] pragma solidity ^0.4.2;
[codex:10712]
[codex:10712] contract SafeMath {
[codex:10712] function safeMul(uint a, uint b) internal returns (uint) {
[codex:10712] uint c = a * b;
[codex:10712] assert(a == 0 || c / a == b);
[codex:10712] return c;
[codex:10712] }
[codex:10712]
[codex:10712] function safeSub(uint a, uint b) internal returns (uint) {
[codex:10712] assert(b <= a);
[codex:10712] return a - b;
[codex:10712] }
[codex:10712]
[codex:10712] function safeAdd(uint a, uint b) internal returns (uint) {
[codex:10712] exec
[codex:10712] /bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-54kwm9cj succeeded in 5ms:
[codex:10712]
[codex:10712] function changeFeeMake(uint feeMake_) {
[codex:10712] if (msg.sender != admin) throw;
[codex:10712] if (feeMake_ > feeMake) throw;
[codex:10712] feeMake = feeMake_;
[codex:10712] }
[codex:10712]
[codex:10712] function changeFeeTake(uint feeTake_) {
[codex:10712] if (msg.sender != admin) throw;
[codex:10712] if (feeTake_ > feeTake || feeTake_ < feeRebate) throw;
[codex:10712] feeTake = feeTake_;
[codex:10712] }
[codex:10712]
[codex:10712] function changeFeeRebate(uint feeRebate_) {
[codex:10712] if (msg.sender != admin) throw;
[codex:10712] if (feeRebate_ < feeRebate || feeRebate_ > feeTake) throw;
[codex:10712] feeRebate = feeRebate_;
[codex:10712] }
[codex:10712]
[codex:10712] function deposit() payable {
[codex:10712]
[codex:10712] thinking
[codex:10712] **Preparing to add line numbers**
[codex:10712] exec
[codex:10712] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1,240p'" in /tmp/codex-multi-54kwm9cj succeeded in 5ms:
[codex:10712] 1 pragma solidity ^0.4.2;
[codex:10712] 2
[codex:10712] 3 contract SafeMath {
[codex:10712] 4 function safeMul(uint a, uint b) internal returns (uint) {
[codex:10712] 5 uint c = a * b;
[codex:10712] 6 assert(a == 0 || c / a == b);
[codex:10712] 7 return c;
[codex:10712] 8 }
[codex:10712] 9
[codex:10712] 10 function safeSub(uint a, uint b) internal returns (uint) {
[codex:10712] 11 assert(b <= a);
[codex:10712] 12 return a - b;
[codex:10712] 13 }
[codex:10712] 14
[codex:10712] 15 function safeAdd(uint a, uint b) internal returns (uint) {
[codex:10712] 16 uint c = a + b;
[codex:10712] 17 assert(c>=a && c>=b);
[codex:10712] 18 return c;
[codex:10712] 19 }
[codex:10712] 20
[codex:10712] exec
[codex:10712] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '240,480p'" in /tmp/codex-multi-54kwm9cj succeeded in 6ms:
[codex:10712] 240 Withdraw(token, msg.sender, amount, tokens[token][msg.sender]);
[codex:10712] 241 }
[codex:10712] 242
[codex:10712] 243 function balanceOf(address token, address user) constant returns (uint) {
[codex:10712] 244 return tokens[token][user];
[codex:10712] 245 }
[codex:10712] 246
[codex:10712] 247 function order(address tokenGet, uint amountGet, address tokenGive, uint amountGive, uint expires, uint nonce) {
[codex:10712] 248 if (msg.value>0) throw;
[codex:10712] 249 bytes32 hash = sha256(this, tokenGet, amountGet, tokenGive, amountGive, expires, nonce);
[codex:10712] 250 orders[msg.sender][hash] = true;
[codex:10712] 251 Order(tokenGet, amountGet, tokenGive, amountGive, expires, nonce, msg.sender);
[codex:10712] 252 }
[codex:10712] 253
[codex:10712] 254 function trade(address tokenGet, uint amountGet, address tokenGive, uint amountGive, uint expires, uint nonce, address user, uint8 v, bytes32 r, bytes32 s, uint amount) {
[codex:10712] 255 //amount is in amountGet terms
[codex:10712] 256 if (msg.value>0) throw;
[codex:10712] 257 bytes32 hash = sha256(this, tokenGet, amountGet, tokenGive, amountGive, expires, nonce);
[codex:10712] 258 if (!(
[codex:10712] 259 (orders[user][hash] || ecrecover(hash,v,r,s) == user) &&
[codex:10712]
[codex:10712]
[codex:10712]
[codex:10712]
[codex:10712] thinking
[codex:10712] **Analyzing EtherDelta for profit exploits**
[codex:10712] thinking
[codex:10712] **Evaluating fee rebate and reentrancy implications**
[codex:10712]
[codex:10712] I’m exploring how lack of access control in the AccountLevelsTest contract could enable attackers to set high account levels and gain fee rebates, effectively profiting via self-trading. I’m also examining subtle reentrancy scenarios in withdraw and deposit functions that might let an attacker cycle funds to withdraw more than their balance, considering internal accounting and token callbacks.
[codex:10712] thinking
[codex:10712] **Analyzing token deposit and trade vulnerabilities**
[codex:10712]
[codex:10712] I’m inspecting how the contract’s depositToken trusts transferFrom’s return value without verifying actual token transfer, letting attackers credit themselves fake balances with malicious tokens. This can lead to profit by trading those fake balances for real assets from victims, exposing a concrete exploit path involving malicious tokens and unsuspecting traders.
[codex:10712] thinking
[codex:10712] **Preparing detailed vulnerability report**
[codex:10712]
[codex:10712] I'm finalizing the summary and precise code locations to produce a clear JSON report describing the fake token deposit exploit and its profit potential within EtherDelta’s trading system.
[codex:10712] codex
[codex:10712] {"no_findings":false,"summary":"Found an exploitable fake‑token deposit path that lets an attacker trade phantom balances for real assets and withdraw them.","findings":[{"severity":"high","category":"other","title":"Phantom ERC20 deposits enable trading fake balances for real assets","exploit_scenario":"1) Attacker deploys a malicious ERC20 that returns `true` for `transferFrom`/`transfer` without moving balances. 2) Attacker calls `depositToken(malToken, X)`; EtherDelta credits `tokens[malToken][attacker] += X` even though no tokens arrived. 3) A victim places an order to buy `malToken` with ETH/valuable tokens. 4) Attacker fills the order via `trade`, which only moves internal balances; victim’s real asset balance decreases while attacker’s real asset balance increases. 5) Attacker withdraws ETH/real tokens via `withdraw`/`withdrawToken`. Victim withdrawing `malToken` receives nothing.","recommendation":"Require proof of actual token receipt by checking contract token balance before/after `transferFrom` and crediting only the delta, or enforce a strict token whitelist of known‑good ERC20s.","evidence":"`depositToken` trusts the token’s return value and credits the requested amount without verifying actual token receipt; trades only move internal balances, so fake deposits can be swapped for real assets.","locations":["contracts/Contract.sol:227","contracts/Contract.sol:230","contracts/Contract.sol:231","contracts/Contract.sol:254","contracts/Contract.sol:268","contracts/Contract.sol:277","contracts/Contract.sol:281"]}]}
[codex:10712] tokens used
[codex:10712] 24,851
[codex:10712] {"no_findings":false,"summary":"Found an exploitable fake‑token deposit path that lets an attacker trade phantom balances for real assets and withdraw them.","findings":[{"severity":"high","category":"other","title":"Phantom ERC20 deposits enable trading fake balances for real assets","exploit_scenario":"1) Attacker deploys a malicious ERC20 that returns `true` for `transferFrom`/`transfer` without moving balances. 2) Attacker calls `depositToken(malToken, X)`; EtherDelta credits `tokens[malToken][attacker] += X` even though no tokens arrived. 3) A victim places an order to buy `malToken` with ETH/valuable tokens. 4) Attacker fills the order via `trade`, which only moves internal balances; victim’s real asset balance decreases while attacker’s real asset balance increases. 5) Attacker withdraws ETH/real tokens via `withdraw`/`withdrawToken`. Victim withdrawing `malToken` receives nothing.","recommendation":"Require proof of actual token receipt by checking contract token balance before/after `transferFrom` and crediting only the delta, or enforce a strict token whitelist of known‑good ERC20s.","evidence":"`depositToken` trusts the token’s return value and credits the requested amount without verifying actual token receipt; trades only move internal balances, so fake deposits can be swapped for real assets.","locations":["contracts/Contract.sol:227","contracts/Contract.sol:230","contracts/Contract.sol:231","contracts/Contract.sol:254","contracts/Contract.sol:268","contracts/Contract.sol:277","contracts/Contract.sol:281"]}]}
{
"codex": {
"ran_at": "2026-01-03T01:39:02.043276+00:00",
"returncode": 0
},
"summary": "Found an exploitable fake\u2011token deposit path that lets an attacker trade phantom balances for real assets and withdraw them.",
"raw_final": {
"summary": "Found an exploitable fake\u2011token deposit path that lets an attacker trade phantom balances for real assets and withdraw them.",
"findings": [
{
"title": "Phantom ERC20 deposits enable trading fake balances for real assets",
"category": "other",
"evidence": "`depositToken` trusts the token\u2019s return value and credits the requested amount without verifying actual token receipt; trades only move internal balances, so fake deposits can be swapped for real assets.",
"severity": "high",
"locations": [
"contracts/Contract.sol:227",
"contracts/Contract.sol:230",
"contracts/Contract.sol:231",
"contracts/Contract.sol:254",
"contracts/Contract.sol:268",
"contracts/Contract.sol:277",
"contracts/Contract.sol:281"
],
"recommendation": "Require proof of actual token receipt by checking contract token balance before/after `transferFrom` and crediting only the delta, or enforce a strict token whitelist of known\u2011good ERC20s.",
"exploit_scenario": "1) Attacker deploys a malicious ERC20 that returns `true` for `transferFrom`/`transfer` without moving balances. 2) Attacker calls `depositToken(malToken, X)`; EtherDelta credits `tokens[malToken][attacker] += X` even though no tokens arrived. 3) A victim places an order to buy `malToken` with ETH/valuable tokens. 4) Attacker fills the order via `trade`, which only moves internal balances; victim\u2019s real asset balance decreases while attacker\u2019s real asset balance increases. 5) Attacker withdraws ETH/real tokens via `withdraw`/`withdrawToken`. Victim withdrawing `malToken` receives nothing."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLDATASIZE 00000006: ISZERO 00000007: PUSH2 0x0132 0000000a: JUMPI 0000000b: PUSH1 0xe0 0000000d: PUSH1 0x02 0000000f: EXP 00000010: PUSH1 0x00 00000012: CALLDATALOAD 00000013: DIV 00000014: PUSH4 0x0a19b14a 00000019: DUP2 0000001a: EQ 0000001b: PUSH2 0x013f 0000001e: JUMPI 0000001f: DUP1 00000020: PUSH4 0x0b927666 00000025: EQ 00000026: PUSH2 0x017b 00000029: JUMPI 0000002a: DUP1 0000002b: PUSH4 0x19774d43 00000030: EQ 00000031: PUSH2 0x01a5 00000034: JUMPI 00000035: DUP1 00000036: PUSH4 0x278b8c0e 0000003b: EQ 0000003c: PUSH2 0x01cf 0000003f: JUMPI 00000040: DUP1 00000041: PUSH4 0x2e1a7d4d 00000046: EQ 00000047: PUSH2 0x0203 0000004a: JUMPI 0000004b: DUP1 0000004c: PUSH4 0x338b5dea 00000051: EQ 00000052: PUSH2 0x021c 00000055: JUMPI 00000056: DUP1 00000057: PUSH4 0x46be96c3 0000005c: EQ 0000005d: PUSH2 0x024c 00000060: JUMPI 00000061: DUP1 00000062: PUSH4 0x508493bc 00000067: EQ 00000068: PUSH2 0x031e 0000006b: JUMPI 0000006c: DUP1 0000006d: PUSH4 0x54d03b5c 00000072: EQ 00000073: PUSH2 0x0348 00000076: JUMPI 00000077: DUP1 00000078: PUSH4 0x57786394 0000007d: EQ 0000007e: PUSH2 0x036f 00000081: JUMPI 00000082: DUP1 00000083: PUSH4 0x5e1d7ae4 00000088: EQ 00000089: PUSH2 0x037d 0000008c: JUMPI 0000008d: DUP1 0000008e: PUSH4 0x65e17c9d 00000093: EQ 00000094: PUSH2 0x03a4 00000097: JUMPI 00000098: DUP1 00000099: PUSH4 0x6c86888b 0000009e: EQ 0000009f: PUSH2 0x03bb 000000a2: JUMPI 000000a3: DUP1 000000a4: PUSH4 0x71ffcb16 000000a9: EQ 000000aa: PUSH2 0x0431 000000ad: JUMPI 000000ae: DUP1 000000af: PUSH4 0x731c2f81 000000b4: EQ 000000b5: PUSH2 0x0458 000000b8: JUMPI 000000b9: DUP1 000000ba: PUSH4 0x8823a9c0 000000bf: EQ 000000c0: PUSH2 0x0466 000000c3: JUMPI 000000c4: DUP1 000000c5: PUSH4 0x8f283970 000000ca: EQ 000000cb: PUSH2 0x048d 000000ce: JUMPI 000000cf: DUP1 000000d0: PUSH4 0x9e281a98 000000d5: EQ 000000d6: PUSH2 0x04b4 000000d9: JUMPI 000000da: DUP1 000000db: PUSH4 0xbb5f4629 000000e0: EQ 000000e1: PUSH2 0x04e4 000000e4: JUMPI 000000e5: DUP1 000000e6: PUSH4 0xc281309e 000000eb: EQ 000000ec: PUSH2 0x0511 000000ef: JUMPI 000000f0: DUP1 000000f1: PUSH4 0xd0e30db0 000000f6: EQ 000000f7: PUSH2 0x051f 000000fa: JUMPI 000000fb: DUP1 000000fc: PUSH4 0xe8f6bc2e 00000101: EQ 00000102: PUSH2 0x056b 00000105: JUMPI 00000106: DUP1 00000107: PUSH4 0xf3412942 0000010c: EQ 0000010d: PUSH2 0x0592 00000110: JUMPI 00000111: DUP1 00000112: PUSH4 0xf7888aec 00000117: EQ 00000118: PUSH2 0x05a9 0000011b: JUMPI 0000011c: DUP1 0000011d: PUSH4 0xf851a440 00000122: EQ 00000123: PUSH2 0x05e4 00000126: JUMPI 00000127: DUP1 00000128: PUSH4 0xfb6e155f 0000012d: EQ 0000012e: PUSH2 0x05fb 00000131: JUMPI 00000132: JUMPDEST 00000133: CALLVALUE 00000134: PUSH2 0x0002 00000137: JUMPI 00000138: PUSH2 0x077f 0000013b: PUSH2 0x0002 0000013e: JUMP 0000013f: JUMPDEST 00000140: CALLVALUE 00000141: PUSH2 0x0002 00000144: JUMPI 00000145: PUSH2 0x077f 00000148: PUSH1 0x04 0000014a: CALLDATALOAD 0000014b: PUSH1 0x24 0000014d: CALLDATALOAD 0000014e: PUSH1 0x44 00000150: CALLDATALOAD 00000151: PUSH1 0x64 00000153: CALLDATALOAD 00000154: PUSH1 0x84 00000156: CALLDATALOAD 00000157: PUSH1 0xa4 00000159: CALLDATALOAD 0000015a: PUSH1 0xc4 0000015c: CALLDATALOAD 0000015d: PUSH1 0xe4 0000015f: CALLDATALOAD 00000160: PUSH2 0x0104 00000163: CALLDATALOAD 00000164: PUSH2 0x0124 00000167: CALLDATALOAD 00000168: PUSH2 0x0144 0000016b: CALLDATALOAD 0000016c: PUSH1 0x00 0000016e: PUSH1 0x00 00000170: CALLVALUE 00000171: GT 00000172: ISZERO 00000173: PUSH2 0x07c4 00000176: JUMPI 00000177: PUSH2 0x0002 0000017a: JUMP 0000017b: JUMPDEST 0000017c: CALLVALUE 0000017d: PUSH2 0x0002 00000180: JUMPI 00000181: PUSH2 0x077f 00000184: PUSH1 0x04 00000186: CALLDATALOAD 00000187: PUSH1 0x24 00000189: CALLDATALOAD 0000018a: PUSH1 0x44 0000018c: CALLDATALOAD 0000018d: PUSH1 0x64 0000018f: CALLDATALOAD 00000190: PUSH1 0x84 00000192: CALLDATALOAD 00000193: PUSH1 0xa4 00000195: CALLDATALOAD 00000196: PUSH1 0x00 00000198: PUSH1 0x00 0000019a: CALLVALUE 0000019b: GT 0000019c: ISZERO 0000019d: PUSH2 0x0a75 000001a0: JUMPI 000001a1: PUSH2 0x0002 000001a4: JUMP 000001a5: JUMPDEST 000001a6: CALLVALUE 000001a7: PUSH2 0x0002 000001aa: JUMPI 000001ab: PUSH1 0x08 000001ad: PUSH1 0x20 000001af: SWAP1 000001b0: DUP2 000001b1: MSTORE 000001b2: PUSH1 0x04 000001b4: CALLDATALOAD 000001b5: PUSH1 0x00 000001b7: SWAP1 000001b8: DUP2 000001b9: MSTORE 000001ba: PUSH1 0x40 000001bc: DUP1 000001bd: DUP3 000001be: KECCAK256 000001bf: SWAP1 000001c0: SWAP3 000001c1: MSTORE 000001c2: PUSH1 0x24 000001c4: CALLDATALOAD 000001c5: DUP2 000001c6: MSTORE 000001c7: KECCAK256 000001c8: SLOAD 000001c9: PUSH2 0x0781 000001cc: SWAP1 000001cd: DUP2 000001ce: JUMP 000001cf: JUMPDEST 000001d0: CALLVALUE 000001d1: PUSH2 0x0002 000001d4: JUMPI 000001d5: PUSH2 0x077f 000001d8: PUSH1 0x04 000001da: CALLDATALOAD 000001db: PUSH1 0x24 000001dd: CALLDATALOAD 000001de: PUSH1 0x44 000001e0: CALLDATALOAD 000001e1: PUSH1 0x64 000001e3: CALLDATALOAD 000001e4: PUSH1 0x84 000001e6: CALLDATALOAD 000001e7: PUSH1 0xa4 000001e9: CALLDATALOAD 000001ea: PUSH1 0xc4 000001ec: CALLDATALOAD 000001ed: PUSH1 0xe4 000001ef: CALLDATALOAD 000001f0: PUSH2 0x0104 000001f3: CALLDATALOAD 000001f4: PUSH1 0x00 000001f6: PUSH1 0x00 000001f8: CALLVALUE 000001f9: GT 000001fa: ISZERO 000001fb: PUSH2 0x0b82 000001fe: JUMPI 000001ff: PUSH2 0x0002 00000202: JUMP 00000203: JUMPDEST 00000204: CALLVALUE 00000205: PUSH2 0x0002 00000208: JUMPI 00000209: PUSH2 0x077f 0000020c: PUSH1 0x04 0000020e: CALLDATALOAD 0000020f: PUSH1 0x00 00000211: CALLVALUE 00000212: GT 00000213: ISZERO 00000214: PUSH2 0x0dd7 00000217: JUMPI 00000218: PUSH2 0x0002 0000021b: JUMP 0000021c: JUMPDEST 0000021d: CALLVALUE 0000021e: PUSH2 0x0002 00000221: JUMPI 00000222: PUSH2 0x077f 00000225: PUSH1 0x04 00000227: CALLDATALOAD 00000228: PUSH1 0x24 0000022a: CALLDATALOAD 0000022b: PUSH1 0x00 0000022d: CALLVALUE 0000022e: GT 0000022f: DUP1 00000230: PUSH2 0x0242 00000233: JUMPI 00000234: POP 00000235: DUP2 00000236: PUSH1 0x01 00000238: PUSH1 0xa0 0000023a: PUSH1 0x02 0000023c: EXP 0000023d: SUB 0000023e: AND 0000023f: PUSH1 0x00 00000241: EQ 00000242: JUMPDEST 00000243: ISZERO 00000244: PUSH2 0x0e97 00000247: JUMPI 00000248: PUSH2 0x0002 0000024b: JUMP 0000024c: JUMPDEST 0000024d: CALLVALUE 0000024e: PUSH2 0x0002 00000251: JUMPI 00000252: PUSH2 0x0781 00000255: PUSH1 0x04 00000257: CALLDATALOAD 00000258: PUSH1 0x24 0000025a: CALLDATALOAD 0000025b: PUSH1 0x44 0000025d: CALLDATALOAD 0000025e: PUSH1 0x64 00000260: CALLDATALOAD 00000261: PUSH1 0x84 00000263: CALLDATALOAD 00000264: PUSH1 0xa4 00000266: CALLDATALOAD 00000267: PUSH1 0xc4 00000269: CALLDATALOAD 0000026a: PUSH1 0xe4 0000026c: CALLDATALOAD 0000026d: PUSH2 0x0104 00000270: CALLDATALOAD 00000271: PUSH2 0x0124 00000274: CALLDATALOAD 00000275: PUSH1 0x40 00000277: DUP1 00000278: MLOAD 00000279: PUSH1 0x00 0000027b: PUSH1 0x20 0000027d: SWAP2 0000027e: DUP3 0000027f: ADD 00000280: DUP2 00000281: SWAP1 00000282: MSTORE 00000283: DUP3 00000284: MLOAD 00000285: PUSH1 0x60 00000287: PUSH1 0x02 00000289: EXP 0000028a: PUSH1 0x01 0000028c: PUSH1 0xa0 0000028e: PUSH1 0x02 00000290: EXP 00000291: SUB 00000292: ADDRESS 00000293: DUP2 00000294: AND 00000295: DUP3 00000296: MUL 00000297: DUP4 00000298: MSTORE 00000299: DUP16 0000029a: DUP2 0000029b: AND 0000029c: DUP3 0000029d: MUL 0000029e: PUSH1 0x14 000002a0: DUP5 000002a1: ADD 000002a2: MSTORE 000002a3: PUSH1 0x28 000002a5: DUP4 000002a6: ADD 000002a7: DUP16 000002a8: SWAP1 000002a9: MSTORE 000002aa: DUP14 000002ab: AND 000002ac: MUL 000002ad: PUSH1 0x48 000002af: DUP3 000002b0: ADD 000002b1: MSTORE 000002b2: PUSH1 0x5c 000002b4: DUP2 000002b5: ADD 000002b6: DUP12 000002b7: SWAP1 000002b8: MSTORE 000002b9: PUSH1 0x7c 000002bb: DUP2 000002bc: ADD 000002bd: DUP11 000002be: SWAP1 000002bf: MSTORE 000002c0: PUSH1 0x9c 000002c2: DUP2 000002c3: ADD 000002c4: DUP10 000002c5: SWAP1 000002c6: MSTORE 000002c7: SWAP3 000002c8: MLOAD 000002c9: SWAP1 000002ca: SWAP3 000002cb: DUP4 000002cc: SWAP3 000002cd: PUSH1 0x02 000002cf: SWAP3 000002d0: PUSH1 0xbc 000002d2: DUP4 000002d3: DUP2 000002d4: ADD 000002d5: SWAP4 000002d6: DUP3 000002d7: SWAP1 000002d8: SUB 000002d9: ADD 000002da: DUP2 000002db: DUP7 000002dc: DUP7 000002dd: PUSH2 0x61da 000002e0: GAS 000002e1: SUB 000002e2: CALL 000002e3: ISZERO 000002e4: PUSH2 0x0002 000002e7: JUMPI 000002e8: POP 000002e9: POP 000002ea: PUSH1 0x40 000002ec: DUP1 000002ed: MLOAD 000002ee: MLOAD 000002ef: PUSH1 0x01 000002f1: PUSH1 0xa0 000002f3: PUSH1 0x02 000002f5: EXP 000002f6: SUB 000002f7: DUP9 000002f8: AND 000002f9: SWAP1 000002fa: SWAP3 000002fb: MSTORE 000002fc: PUSH1 0x08 000002fe: PUSH1 0x20 00000300: SWAP1 00000301: DUP2 00000302: MSTORE 00000303: DUP2 00000304: DUP5 00000305: KECCAK256 00000306: DUP4 00000307: DUP6 00000308: MSTORE 00000309: SWAP1 0000030a: MSTORE 0000030b: SWAP1 0000030c: SWAP2 0000030d: KECCAK256 0000030e: SLOAD 0000030f: SWAP1 00000310: POP 00000311: SWAP11 00000312: SWAP10 00000313: POP 00000314: POP 00000315: POP 00000316: POP 00000317: POP 00000318: POP 00000319: POP 0000031a: POP 0000031b: POP 0000031c: POP 0000031d: JUMP 0000031e: JUMPDEST 0000031f: CALLVALUE 00000320: PUSH2 0x0002 00000323: JUMPI 00000324: PUSH1 0x06 00000326: PUSH1 0x20 00000328: SWAP1 00000329: DUP2 0000032a: MSTORE 0000032b: PUSH1 0x04 0000032d: CALLDATALOAD 0000032e: PUSH1 0x00 00000330: SWAP1 00000331: DUP2 00000332: MSTORE 00000333: PUSH1 0x40 00000335: DUP1 00000336: DUP3 00000337: KECCAK256 00000338: SWAP1 00000339: SWAP3 0000033a: MSTORE 0000033b: PUSH1 0x24 0000033d: CALLDATALOAD 0000033e: DUP2 0000033f: MSTORE 00000340: KECCAK256 00000341: SLOAD 00000342: PUSH2 0x0781 00000345: SWAP1 00000346: DUP2 00000347: JUMP 00000348: JUMPDEST 00000349: CALLVALUE 0000034a: PUSH2 0x0002 0000034d: JUMPI 0000034e: PUSH2 0x077f 00000351: PUSH1 0x04 00000353: CALLDATALOAD 00000354: PUSH1 0x00 00000356: SLOAD 00000357: PUSH1 0x01 00000359: PUSH1 0xa0 0000035b: PUSH1 0x02 0000035d: EXP 0000035e: SUB 0000035f: SWAP1 00000360: DUP2 00000361: AND 00000362: CALLER 00000363: SWAP1 00000364: SWAP2 00000365: AND 00000366: EQ 00000367: PUSH2 0x0fc1 0000036a: JUMPI 0000036b: PUSH2 0x0002 0000036e: JUMP 0000036f: JUMPDEST 00000370: CALLVALUE 00000371: PUSH2 0x0002 00000374: JUMPI 00000375: PUSH2 0x0781 00000378: PUSH1 0x03 0000037a: SLOAD 0000037b: DUP2 0000037c: JUMP 0000037d: JUMPDEST 0000037e: CALLVALUE 0000037f: PUSH2 0x0002 00000382: JUMPI 00000383: PUSH2 0x077f 00000386: PUSH1 0x04 00000388: CALLDATALOAD 00000389: PUSH1 0x00 0000038b: SLOAD 0000038c: PUSH1 0x01 0000038e: PUSH1 0xa0 00000390: PUSH1 0x02 00000392: EXP 00000393: SUB 00000394: SWAP1 00000395: DUP2 00000396: AND 00000397: CALLER 00000398: SWAP1 00000399: SWAP2 0000039a: AND 0000039b: EQ 0000039c: PUSH2 0x0fd5 0000039f: JUMPI 000003a0: PUSH2 0x0002 000003a3: JUMP 000003a4: JUMPDEST 000003a5: CALLVALUE 000003a6: PUSH2 0x0002 000003a9: JUMPI 000003aa: PUSH2 0x0793 000003ad: PUSH1 0x01 000003af: SLOAD 000003b0: PUSH1 0x01 000003b2: PUSH1 0xa0 000003b4: PUSH1 0x02 000003b6: EXP 000003b7: SUB 000003b8: AND 000003b9: DUP2 000003ba: JUMP 000003bb: JUMPDEST 000003bc: CALLVALUE 000003bd: PUSH2 0x0002 000003c0: JUMPI 000003c1: PUSH2 0x07b0 000003c4: PUSH1 0x04 000003c6: CALLDATALOAD 000003c7: PUSH1 0x24 000003c9: CALLDATALOAD 000003ca: PUSH1 0x44 000003cc: CALLDATALOAD 000003cd: PUSH1 0x64 000003cf: CALLDATALOAD 000003d0: PUSH1 0x84 000003d2: CALLDATALOAD 000003d3: PUSH1 0xa4 000003d5: CALLDATALOAD 000003d6: PUSH1 0xc4 000003d8: CALLDATALOAD 000003d9: PUSH1 0xe4 000003db: CALLDATALOAD 000003dc: PUSH2 0x0104 000003df: CALLDATALOAD 000003e0: PUSH2 0x0124 000003e3: CALLDATALOAD 000003e4: PUSH2 0x0144 000003e7: CALLDATALOAD 000003e8: PUSH2 0x0164 000003eb: CALLDATALOAD 000003ec: PUSH1 0x01 000003ee: PUSH1 0xa0 000003f0: PUSH1 0x02 000003f2: EXP 000003f3: SUB 000003f4: DUP13 000003f5: DUP2 000003f6: AND 000003f7: PUSH1 0x00 000003f9: SWAP1 000003fa: DUP2 000003fb: MSTORE 000003fc: PUSH1 0x06 000003fe: PUSH1 0x20 00000400: SWAP1 00000401: DUP2 00000402: MSTORE 00000403: PUSH1 0x40 00000405: DUP1 00000406: DUP4 00000407: KECCAK256 00000408: SWAP4 00000409: DUP6 0000040a: AND 0000040b: DUP4 0000040c: MSTORE 0000040d: SWAP3 0000040e: SWAP1 0000040f: MSTORE 00000410: SWAP1 00000411: DUP2 00000412: KECCAK256 00000413: SLOAD 00000414: DUP4 00000415: SWAP1 00000416: LT 00000417: DUP1 00000418: ISZERO 00000419: SWAP1 0000041a: PUSH2 0x100c 0000041d: JUMPI 0000041e: POP 0000041f: DUP3 00000420: PUSH2 0x1009 00000423: DUP15 00000424: DUP15 00000425: DUP15 00000426: DUP15 00000427: DUP15 00000428: DUP15 00000429: DUP15 0000042a: DUP15 0000042b: DUP15 0000042c: DUP15 0000042d: PUSH2 0x0624 00000430: JUMP 00000431: JUMPDEST 00000432: CALLVALUE 00000433: PUSH2 0x0002 00000436: JUMPI 00000437: PUSH2 0x077f 0000043a: PUSH1 0x04 0000043c: CALLDATALOAD 0000043d: PUSH1 0x00 0000043f: SLOAD 00000440: PUSH1 0x01 00000442: PUSH1 0xa0 00000444: PUSH1 0x02 00000446: EXP 00000447: SUB 00000448: SWAP1 00000449: DUP2 0000044a: AND 0000044b: CALLER 0000044c: SWAP1 0000044d: SWAP2 0000044e: AND 0000044f: EQ 00000450: PUSH2 0x101a 00000453: JUMPI 00000454: PUSH2 0x0002 00000457: JUMP 00000458: JUMPDEST 00000459: CALLVALUE 0000045a: PUSH2 0x0002 0000045d: JUMPI 0000045e: PUSH2 0x0781 00000461: PUSH1 0x05 00000463: SLOAD 00000464: DUP2 00000465: JUMP 00000466: JUMPDEST 00000467: CALLVALUE 00000468: PUSH2 0x0002 0000046b: JUMPI 0000046c: PUSH2 0x077f 0000046f: PUSH1 0x04 00000471: CALLDATALOAD 00000472: PUSH1 0x00 00000474: SLOAD 00000475: PUSH1 0x01 00000477: PUSH1 0xa0 00000479: PUSH1 0x02 0000047b: EXP 0000047c: SUB 0000047d: SWAP1 0000047e: DUP2 0000047f: AND 00000480: CALLER 00000481: SWAP1 00000482: SWAP2 00000483: AND 00000484: EQ 00000485: PUSH2 0x102f 00000488: JUMPI 00000489: PUSH2 0x0002 0000048c: JUMP 0000048d: JUMPDEST 0000048e: CALLVALUE 0000048f: PUSH2 0x0002 00000492: JUMPI 00000493: PUSH2 0x077f 00000496: PUSH1 0x04 00000498: CALLDATALOAD 00000499: PUSH1 0x00 0000049b: SLOAD 0000049c: PUSH1 0x01 0000049e: PUSH1 0xa0 000004a0: PUSH1 0x02 000004a2: EXP 000004a3: SUB 000004a4: SWAP1 000004a5: DUP2 000004a6: AND 000004a7: CALLER 000004a8: SWAP1 000004a9: SWAP2 000004aa: AND 000004ab: EQ 000004ac: PUSH2 0x104f 000004af: JUMPI 000004b0: PUSH2 0x0002 000004b3: JUMP 000004b4: JUMPDEST 000004b5: CALLVALUE 000004b6: PUSH2 0x0002 000004b9: JUMPI 000004ba: PUSH2 0x077f 000004bd: PUSH1 0x04 000004bf: CALLDATALOAD 000004c0: PUSH1 0x24 000004c2: CALLDATALOAD 000004c3: PUSH1 0x00 000004c5: CALLVALUE 000004c6: GT 000004c7: DUP1 000004c8: PUSH2 0x04da 000004cb: JUMPI 000004cc: POP 000004cd: DUP2 000004ce: PUSH1 0x01 000004d0: PUSH1 0xa0 000004d2: PUSH1 0x02 000004d4: EXP 000004d5: SUB 000004d6: AND 000004d7: PUSH1 0x00 000004d9: EQ 000004da: JUMPDEST 000004db: ISZERO 000004dc: PUSH2 0x1064 000004df: JUMPI 000004e0: PUSH2 0x0002 000004e3: JUMP 000004e4: JUMPDEST 000004e5: CALLVALUE 000004e6: PUSH2 0x0002 000004e9: JUMPI 000004ea: PUSH1 0x07 000004ec: PUSH1 0x20 000004ee: SWAP1 000004ef: DUP2 000004f0: MSTORE 000004f1: PUSH1 0x04 000004f3: CALLDATALOAD 000004f4: PUSH1 0x00 000004f6: SWAP1 000004f7: DUP2 000004f8: MSTORE 000004f9: PUSH1 0x40 000004fb: DUP1 000004fc: DUP3 000004fd: KECCAK256 000004fe: SWAP1 000004ff: SWAP3 00000500: MSTORE 00000501: PUSH1 0x24 00000503: CALLDATALOAD 00000504: DUP2 00000505: MSTORE 00000506: KECCAK256 00000507: SLOAD 00000508: PUSH2 0x07b0 0000050b: SWAP1 0000050c: PUSH1 0xff 0000050e: AND 0000050f: DUP2 00000510: JUMP 00000511: JUMPDEST 00000512: CALLVALUE 00000513: PUSH2 0x0002 00000516: JUMPI 00000517: PUSH2 0x0781 0000051a: PUSH1 0x04 0000051c: SLOAD 0000051d: DUP2 0000051e: JUMP 0000051f: JUMPDEST 00000520: PUSH2 0x077f 00000523: CALLER 00000524: PUSH1 0x01 00000526: PUSH1 0xa0 00000528: PUSH1 0x02 0000052a: EXP 0000052b: SUB 0000052c: AND 0000052d: PUSH1 0x00 0000052f: SWAP1 00000530: DUP2 00000531: MSTORE 00000532: PUSH1 0x00 00000534: DUP1 00000535: MLOAD 00000536: PUSH1 0x20 00000538: PUSH2 0x15b3 0000053b: DUP4 0000053c: CODECOPY 0000053d: DUP2 0000053e: MLOAD 0000053f: SWAP2 00000540: MSTORE 00000541: PUSH1 0x20 00000543: MSTORE 00000544: PUSH1 0x40 00000546: SWAP1 00000547: KECCAK256 00000548: SLOAD 00000549: PUSH2 0x11e5 0000054c: SWAP1 0000054d: CALLVALUE 0000054e: JUMPDEST 0000054f: PUSH1 0x00 00000551: DUP3 00000552: DUP3 00000553: ADD 00000554: PUSH2 0x12fd 00000557: DUP5 00000558: DUP3 00000559: LT 0000055a: DUP1 0000055b: ISZERO 0000055c: SWAP1 0000055d: PUSH2 0x0566 00000560: JUMPI 00000561: POP 00000562: DUP4 00000563: DUP3 00000564: LT 00000565: ISZERO 00000566: JUMPDEST 00000567: PUSH2 0x0e40 0000056a: JUMP 0000056b: JUMPDEST 0000056c: CALLVALUE 0000056d: PUSH2 0x0002 00000570: JUMPI 00000571: PUSH2 0x077f 00000574: PUSH1 0x04 00000576: CALLDATALOAD 00000577: PUSH1 0x00 00000579: SLOAD 0000057a: PUSH1 0x01 0000057c: PUSH1 0xa0 0000057e: PUSH1 0x02 00000580: EXP 00000581: SUB 00000582: SWAP1 00000583: DUP2 00000584: AND 00000585: CALLER 00000586: SWAP1 00000587: SWAP2 00000588: AND 00000589: EQ 0000058a: PUSH2 0x1256 0000058d: JUMPI 0000058e: PUSH2 0x0002 00000591: JUMP 00000592: JUMPDEST 00000593: CALLVALUE 00000594: PUSH2 0x0002 00000597: JUMPI 00000598: PUSH2 0x0793 0000059b: PUSH1 0x02 0000059d: SLOAD 0000059e: PUSH1 0x01 000005a0: PUSH1 0xa0 000005a2: PUSH1 0x02 000005a4: EXP 000005a5: SUB 000005a6: AND 000005a7: DUP2 000005a8: JUMP 000005a9: JUMPDEST 000005aa: CALLVALUE 000005ab: PUSH2 0x0002 000005ae: JUMPI 000005af: PUSH2 0x0781 000005b2: PUSH1 0x04 000005b4: CALLDATALOAD 000005b5: PUSH1 0x24 000005b7: CALLDATALOAD 000005b8: PUSH1 0x01 000005ba: PUSH1 0xa0 000005bc: PUSH1 0x02 000005be: EXP 000005bf: SUB 000005c0: DUP3 000005c1: DUP2 000005c2: AND 000005c3: PUSH1 0x00 000005c5: SWAP1 000005c6: DUP2 000005c7: MSTORE 000005c8: PUSH1 0x06 000005ca: PUSH1 0x20 000005cc: SWAP1 000005cd: DUP2 000005ce: MSTORE 000005cf: PUSH1 0x40 000005d1: DUP1 000005d2: DUP4 000005d3: KECCAK256 000005d4: SWAP4 000005d5: DUP6 000005d6: AND 000005d7: DUP4 000005d8: MSTORE 000005d9: SWAP3 000005da: SWAP1 000005db: MSTORE 000005dc: KECCAK256 000005dd: SLOAD 000005de: JUMPDEST 000005df: SWAP3 000005e0: SWAP2 000005e1: POP 000005e2: POP 000005e3: JUMP 000005e4: JUMPDEST 000005e5: CALLVALUE 000005e6: PUSH2 0x0002 000005e9: JUMPI 000005ea: PUSH2 0x0793 000005ed: PUSH1 0x00 000005ef: SLOAD 000005f0: PUSH1 0x01 000005f2: PUSH1 0xa0 000005f4: PUSH1 0x02 000005f6: EXP 000005f7: SUB 000005f8: AND 000005f9: DUP2 000005fa: JUMP 000005fb: JUMPDEST 000005fc: CALLVALUE 000005fd: PUSH2 0x0002 00000600: JUMPI 00000601: PUSH2 0x0781 00000604: PUSH1 0x04 00000606: CALLDATALOAD 00000607: PUSH1 0x24 00000609: CALLDATALOAD 0000060a: PUSH1 0x44 0000060c: CALLDATALOAD 0000060d: PUSH1 0x64 0000060f: CALLDATALOAD 00000610: PUSH1 0x84 00000612: CALLDATALOAD 00000613: PUSH1 0xa4 00000615: CALLDATALOAD 00000616: PUSH1 0xc4 00000618: CALLDATALOAD 00000619: PUSH1 0xe4 0000061b: CALLDATALOAD 0000061c: PUSH2 0x0104 0000061f: CALLDATALOAD 00000620: PUSH2 0x0124 00000623: CALLDATALOAD 00000624: JUMPDEST 00000625: PUSH1 0x00 00000627: PUSH1 0x00 00000629: PUSH1 0x00 0000062b: PUSH1 0x00 0000062d: PUSH1 0x02 0000062f: ADDRESS 00000630: DUP16 00000631: DUP16 00000632: DUP16 00000633: DUP16 00000634: DUP16 00000635: DUP16 00000636: PUSH1 0x00 00000638: PUSH1 0x40 0000063a: MLOAD 0000063b: PUSH1 0x20 0000063d: ADD 0000063e: MSTORE 0000063f: PUSH1 0x40 00000641: MLOAD 00000642: DUP1 00000643: DUP9 00000644: PUSH1 0x01 00000646: PUSH1 0xa0 00000648: PUSH1 0x02 0000064a: EXP 0000064b: SUB 0000064c: AND 0000064d: PUSH1 0x60 0000064f: PUSH1 0x02 00000651: EXP 00000652: MUL 00000653: DUP2 00000654: MSTORE 00000655: PUSH1 0x14 00000657: ADD 00000658: DUP8 00000659: PUSH1 0x01 0000065b: PUSH1 0xa0 0000065d: PUSH1 0x02 0000065f: EXP 00000660: SUB 00000661: AND 00000662: PUSH1 0x60 00000664: PUSH1 0x02 00000666: EXP 00000667: MUL 00000668: DUP2 00000669: MSTORE 0000066a: PUSH1 0x14 0000066c: ADD 0000066d: DUP7 0000066e: DUP2 0000066f: MSTORE 00000670: PUSH1 0x20 00000672: ADD 00000673: DUP6 00000674: PUSH1 0x01 00000676: PUSH1 0xa0 00000678: PUSH1 0x02 0000067a: EXP 0000067b: SUB 0000067c: AND 0000067d: PUSH1 0x60 0000067f: PUSH1 0x02 00000681: EXP 00000682: MUL 00000683: DUP2 00000684: MSTORE 00000685: PUSH1 0x14 00000687: ADD 00000688: DUP5 00000689: DUP2 0000068a: MSTORE 0000068b: PUSH1 0x20 0000068d: ADD 0000068e: DUP4 0000068f: DUP2 00000690: MSTORE 00000691: PUSH1 0x20 00000693: ADD 00000694: DUP3 00000695: DUP2 00000696: MSTORE 00000697: PUSH1 0x20 00000699: ADD 0000069a: SWAP8 0000069b: POP 0000069c: POP 0000069d: POP 0000069e: POP 0000069f: POP 000006a0: POP 000006a1: POP 000006a2: POP 000006a3: PUSH1 0x20 000006a5: PUSH1 0x40 000006a7: MLOAD 000006a8: DUP1 000006a9: DUP4 000006aa: SUB 000006ab: DUP2 000006ac: PUSH1 0x00 000006ae: DUP7 000006af: PUSH2 0x61da 000006b2: GAS 000006b3: SUB 000006b4: CALL 000006b5: ISZERO 000006b6: PUSH2 0x0002 000006b9: JUMPI 000006ba: POP 000006bb: POP 000006bc: PUSH1 0x40 000006be: DUP1 000006bf: MLOAD 000006c0: MLOAD 000006c1: PUSH1 0x01 000006c3: PUSH1 0xa0 000006c5: PUSH1 0x02 000006c7: EXP 000006c8: SUB 000006c9: DUP11 000006ca: AND 000006cb: PUSH1 0x00 000006cd: SWAP1 000006ce: DUP2 000006cf: MSTORE 000006d0: PUSH1 0x07 000006d2: PUSH1 0x20 000006d4: SWAP1 000006d5: DUP2 000006d6: MSTORE 000006d7: DUP4 000006d8: DUP3 000006d9: KECCAK256 000006da: DUP4 000006db: DUP4 000006dc: MSTORE 000006dd: SWAP1 000006de: MSTORE 000006df: SWAP2 000006e0: SWAP1 000006e1: SWAP2 000006e2: KECCAK256 000006e3: SLOAD 000006e4: SWAP1 000006e5: SWAP4 000006e6: POP 000006e7: PUSH1 0xff 000006e9: AND 000006ea: DUP1 000006eb: PUSH2 0x0764 000006ee: JUMPI 000006ef: POP 000006f0: PUSH1 0x40 000006f2: DUP1 000006f3: MLOAD 000006f4: PUSH1 0x00 000006f6: DUP2 000006f7: DUP2 000006f8: MSTORE 000006f9: PUSH1 0x20 000006fb: DUP3 000006fc: DUP2 000006fd: ADD 000006fe: DUP5 000006ff: MSTORE 00000700: SWAP2 00000701: DUP4 00000702: ADD 00000703: DUP2 00000704: SWAP1 00000705: MSTORE 00000706: DUP3 00000707: MLOAD 00000708: DUP7 00000709: DUP2 0000070a: MSTORE 0000070b: PUSH1 0xff 0000070d: DUP12 0000070e: AND 0000070f: DUP2 00000710: DUP5 00000711: ADD 00000712: MSTORE 00000713: DUP1 00000714: DUP5 00000715: ADD 00000716: DUP11 00000717: SWAP1 00000718: MSTORE 00000719: PUSH1 0x60 0000071b: DUP2 0000071c: ADD 0000071d: DUP10 0000071e: SWAP1 0000071f: MSTORE 00000720: SWAP3 00000721: MLOAD 00000722: PUSH1 0x01 00000724: PUSH1 0xa0 00000726: PUSH1 0x02 00000728: EXP 00000729: SUB 0000072a: DUP13 0000072b: AND 0000072c: SWAP4 0000072d: PUSH1 0x01 0000072f: SWAP4 00000730: PUSH1 0x80 00000732: DUP3 00000733: DUP2 00000734: ADD 00000735: SWAP5 00000736: SWAP2 00000737: SWAP4 00000738: PUSH1 0x1f 0000073a: NOT 0000073b: DUP2 0000073c: ADD 0000073d: SWAP4 0000073e: DUP2 0000073f: SWAP1 00000740: SUB 00000741: SWAP1 00000742: SWAP2 00000743: ADD 00000744: SWAP2 00000745: DUP7 00000746: PUSH2 0x61da 00000749: GAS 0000074a: SUB 0000074b: CALL 0000074c: ISZERO 0000074d: PUSH2 0x0002 00000750: JUMPI 00000751: POP 00000752: POP 00000753: PUSH1 0x20 00000755: PUSH1 0x40 00000757: MLOAD 00000758: SUB 00000759: MLOAD 0000075a: PUSH1 0x01 0000075c: PUSH1 0xa0 0000075e: PUSH1 0x02 00000760: EXP 00000761: SUB 00000762: AND 00000763: EQ 00000764: JUMPDEST 00000765: DUP1 00000766: ISZERO 00000767: PUSH2 0x0770 0000076a: JUMPI 0000076b: POP 0000076c: DUP10 0000076d: NUMBER 0000076e: GT 0000076f: ISZERO 00000770: JUMPDEST 00000771: ISZERO 00000772: ISZERO 00000773: PUSH2 0x1280 00000776: JUMPI 00000777: PUSH1 0x00 00000779: SWAP4 0000077a: POP 0000077b: PUSH2 0x126f 0000077e: JUMP 0000077f: JUMPDEST 00000780: STOP 00000781: JUMPDEST 00000782: PUSH1 0x40 00000784: DUP1 00000785: MLOAD 00000786: SWAP2 00000787: DUP3 00000788: MSTORE 00000789: MLOAD 0000078a: SWAP1 0000078b: DUP2 0000078c: SWAP1 0000078d: SUB 0000078e: PUSH1 0x20 00000790: ADD 00000791: SWAP1 00000792: RETURN 00000793: JUMPDEST 00000794: PUSH1 0x40 00000796: DUP1 00000797: MLOAD 00000798: PUSH1 0x01 0000079a: PUSH1 0xa0 0000079c: PUSH1 0x02 0000079e: EXP 0000079f: SUB 000007a0: SWAP3 000007a1: SWAP1 000007a2: SWAP3 000007a3: AND 000007a4: DUP3 000007a5: MSTORE 000007a6: MLOAD 000007a7: SWAP1 000007a8: DUP2 000007a9: SWAP1 000007aa: SUB 000007ab: PUSH1 0x20 000007ad: ADD 000007ae: SWAP1 000007af: RETURN 000007b0: JUMPDEST 000007b1: PUSH1 0x40 000007b3: DUP1 000007b4: MLOAD 000007b5: SWAP2 000007b6: ISZERO 000007b7: ISZERO 000007b8: DUP3 000007b9: MSTORE 000007ba: MLOAD 000007bb: SWAP1 000007bc: DUP2 000007bd: SWAP1 000007be: SUB 000007bf: PUSH1 0x20 000007c1: ADD 000007c2: SWAP1 000007c3: RETURN 000007c4: JUMPDEST 000007c5: PUSH1 0x02 000007c7: ADDRESS 000007c8: DUP14 000007c9: DUP14 000007ca: DUP14 000007cb: DUP14 000007cc: DUP14 000007cd: DUP14 000007ce: PUSH1 0x00 000007d0: PUSH1 0x40 000007d2: MLOAD 000007d3: PUSH1 0x20 000007d5: ADD 000007d6: MSTORE 000007d7: PUSH1 0x40 000007d9: MLOAD 000007da: DUP1 000007db: DUP9 000007dc: PUSH1 0x01 000007de: PUSH1 0xa0 000007e0: PUSH1 0x02 000007e2: EXP 000007e3: SUB 000007e4: AND 000007e5: PUSH1 0x60 000007e7: PUSH1 0x02 000007e9: EXP 000007ea: MUL 000007eb: DUP2 000007ec: MSTORE 000007ed: PUSH1 0x14 000007ef: ADD 000007f0: DUP8 000007f1: PUSH1 0x01 000007f3: PUSH1 0xa0 000007f5: PUSH1 0x02 000007f7: EXP 000007f8: SUB 000007f9: AND 000007fa: PUSH1 0x60 000007fc: PUSH1 0x02 000007fe: EXP 000007ff: MUL 00000800: DUP2 00000801: MSTORE 00000802: PUSH1 0x14 00000804: ADD 00000805: DUP7 00000806: DUP2 00000807: MSTORE 00000808: PUSH1 0x20 0000080a: ADD 0000080b: DUP6 0000080c: PUSH1 0x01 0000080e: PUSH1 0xa0 00000810: PUSH1 0x02 00000812: EXP 00000813: SUB 00000814: AND 00000815: PUSH1 0x60 00000817: PUSH1 0x02 00000819: EXP 0000081a: MUL 0000081b: DUP2 0000081c: MSTORE 0000081d: PUSH1 0x14 0000081f: ADD 00000820: DUP5 00000821: DUP2 00000822: MSTORE 00000823: PUSH1 0x20 00000825: ADD 00000826: DUP4 00000827: DUP2 00000828: MSTORE 00000829: PUSH1 0x20 0000082b: ADD 0000082c: DUP3 0000082d: DUP2 0000082e: MSTORE 0000082f: PUSH1 0x20 00000831: ADD 00000832: SWAP8 00000833: POP 00000834: POP 00000835: POP 00000836: POP 00000837: POP 00000838: POP 00000839: POP 0000083a: POP 0000083b: PUSH1 0x20 0000083d: PUSH1 0x40 0000083f: MLOAD 00000840: DUP1 00000841: DUP4 00000842: SUB 00000843: DUP2 00000844: PUSH1 0x00 00000846: DUP7 00000847: PUSH2 0x61da 0000084a: GAS 0000084b: SUB 0000084c: CALL 0000084d: ISZERO 0000084e: PUSH2 0x0002 00000851: JUMPI 00000852: POP 00000853: POP 00000854: PUSH1 0x40 00000856: DUP1 00000857: MLOAD 00000858: MLOAD 00000859: PUSH1 0x01 0000085b: PUSH1 0xa0 0000085d: PUSH1 0x02 0000085f: EXP 00000860: SUB 00000861: DUP9 00000862: AND 00000863: PUSH1 0x00 00000865: SWAP1 00000866: DUP2 00000867: MSTORE 00000868: PUSH1 0x07 0000086a: PUSH1 0x20 0000086c: SWAP1 0000086d: DUP2 0000086e: MSTORE 0000086f: DUP4 00000870: DUP3 00000871: KECCAK256 00000872: DUP4 00000873: DUP4 00000874: MSTORE 00000875: SWAP1 00000876: MSTORE 00000877: SWAP2 00000878: SWAP1 00000879: SWAP2 0000087a: KECCAK256 0000087b: SLOAD 0000087c: SWAP1 0000087d: SWAP2 0000087e: POP 0000087f: PUSH1 0xff 00000881: AND 00000882: DUP1 00000883: PUSH2 0x090e 00000886: JUMPI 00000887: POP 00000888: DUP6 00000889: PUSH1 0x01 0000088b: PUSH1 0xa0 0000088d: PUSH1 0x02 0000088f: EXP 00000890: SUB 00000891: AND 00000892: PUSH1 0x01 00000894: DUP3 00000895: DUP8 00000896: DUP8 00000897: DUP8 00000898: PUSH1 0x40 0000089a: MLOAD 0000089b: DUP1 0000089c: PUSH1 0x00 0000089e: MSTORE 0000089f: PUSH1 0x20 000008a1: ADD 000008a2: PUSH1 0x40 000008a4: MSTORE 000008a5: PUSH1 0x00 000008a7: PUSH1 0x40 000008a9: MLOAD 000008aa: PUSH1 0x20 000008ac: ADD 000008ad: MSTORE 000008ae: PUSH1 0x40 000008b0: MLOAD 000008b1: DUP1 000008b2: DUP6 000008b3: PUSH1 0x00 000008b5: NOT 000008b6: AND 000008b7: DUP2 000008b8: MSTORE 000008b9: PUSH1 0x20 000008bb: ADD 000008bc: DUP5 000008bd: PUSH1 0xff 000008bf: AND 000008c0: DUP2 000008c1: MSTORE 000008c2: PUSH1 0x20 000008c4: ADD 000008c5: DUP4 000008c6: PUSH1 0x00 000008c8: NOT 000008c9: AND 000008ca: DUP2 000008cb: MSTORE 000008cc: PUSH1 0x20 000008ce: ADD 000008cf: DUP3 000008d0: PUSH1 0x00 000008d2: NOT 000008d3: AND 000008d4: DUP2 000008d5: MSTORE 000008d6: PUSH1 0x20 000008d8: ADD 000008d9: SWAP5 000008da: POP 000008db: POP 000008dc: POP 000008dd: POP 000008de: POP 000008df: PUSH1 0x20 000008e1: PUSH1 0x40 000008e3: MLOAD 000008e4: PUSH1 0x20 000008e6: DUP2 000008e7: SUB 000008e8: SWAP1 000008e9: DUP1 000008ea: DUP5 000008eb: SUB 000008ec: SWAP1 000008ed: PUSH1 0x00 000008ef: DUP7 000008f0: PUSH2 0x61da 000008f3: GAS 000008f4: SUB 000008f5: CALL 000008f6: ISZERO 000008f7: PUSH2 0x0002 000008fa: JUMPI 000008fb: POP 000008fc: POP 000008fd: PUSH1 0x20 000008ff: PUSH1 0x40 00000901: MLOAD 00000902: SUB 00000903: MLOAD 00000904: PUSH1 0x01 00000906: PUSH1 0xa0 00000908: PUSH1 0x02 0000090a: EXP 0000090b: SUB 0000090c: AND 0000090d: EQ 0000090e: JUMPDEST 0000090f: DUP1 00000910: ISZERO 00000911: PUSH2 0x091a 00000914: JUMPI 00000915: POP 00000916: DUP8 00000917: NUMBER 00000918: GT 00000919: ISZERO 0000091a: JUMPDEST 0000091b: DUP1 0000091c: ISZERO 0000091d: PUSH2 0x0954 00000920: JUMPI 00000921: POP 00000922: PUSH1 0x01 00000924: PUSH1 0xa0 00000926: PUSH1 0x02 00000928: EXP 00000929: SUB 0000092a: DUP7 0000092b: AND 0000092c: PUSH1 0x00 0000092e: SWAP1 0000092f: DUP2 00000930: MSTORE 00000931: PUSH1 0x08 00000933: PUSH1 0x20 00000935: SWAP1 00000936: DUP2 00000937: MSTORE 00000938: PUSH1 0x40 0000093a: DUP1 0000093b: DUP4 0000093c: KECCAK256 0000093d: DUP5 0000093e: DUP5 0000093f: MSTORE 00000940: SWAP1 00000941: SWAP2 00000942: MSTORE 00000943: SWAP1 00000944: KECCAK256 00000945: SLOAD 00000946: DUP12 00000947: SWAP1 00000948: PUSH2 0x0951 0000094b: SWAP1 0000094c: DUP5 0000094d: PUSH2 0x054e 00000950: JUMP 00000951: JUMPDEST 00000952: GT 00000953: ISZERO 00000954: JUMPDEST 00000955: ISZERO 00000956: ISZERO 00000957: PUSH2 0x095f 0000095a: JUMPI 0000095b: PUSH2 0x0002 0000095e: JUMP 0000095f: JUMPDEST 00000960: PUSH2 0x09a5 00000963: DUP13 00000964: DUP13 00000965: DUP13 00000966: DUP13 00000967: DUP11 00000968: DUP8 00000969: PUSH1 0x00 0000096b: PUSH1 0x00 0000096d: PUSH1 0x00 0000096f: PUSH1 0x00 00000971: PUSH8 0x0de0b6b3a7640000 0000097a: PUSH2 0x1304 0000097d: DUP7 0000097e: PUSH1 0x03 00000980: PUSH1 0x00 00000982: POP 00000983: SLOAD 00000984: JUMPDEST 00000985: PUSH1 0x00 00000987: DUP3 00000988: DUP3 00000989: MUL 0000098a: PUSH2 0x12fd 0000098d: DUP5 0000098e: DUP4 0000098f: EQ 00000990: DUP1 00000991: PUSH2 0x0566 00000994: JUMPI 00000995: POP 00000996: DUP4 00000997: DUP6 00000998: DUP4 00000999: DUP2 0000099a: ISZERO 0000099b: PUSH2 0x0002 0000099e: JUMPI 0000099f: DIV 000009a0: EQ 000009a1: PUSH2 0x0e40 000009a4: JUMP 000009a5: JUMPDEST 000009a6: PUSH1 0x01 000009a8: PUSH1 0xa0 000009aa: PUSH1 0x02 000009ac: EXP 000009ad: SUB 000009ae: DUP7 000009af: AND 000009b0: PUSH1 0x00 000009b2: SWAP1 000009b3: DUP2 000009b4: MSTORE 000009b5: PUSH1 0x08 000009b7: PUSH1 0x20 000009b9: SWAP1 000009ba: DUP2 000009bb: MSTORE 000009bc: PUSH1 0x40 000009be: DUP1 000009bf: DUP4 000009c0: KECCAK256 000009c1: DUP5 000009c2: DUP5 000009c3: MSTORE 000009c4: SWAP1 000009c5: SWAP2 000009c6: MSTORE 000009c7: SWAP1 000009c8: KECCAK256 000009c9: SLOAD 000009ca: PUSH2 0x09d3 000009cd: SWAP1 000009ce: DUP4 000009cf: PUSH2 0x054e 000009d2: JUMP 000009d3: JUMPDEST 000009d4: PUSH1 0x01 000009d6: PUSH1 0xa0 000009d8: PUSH1 0x02 000009da: EXP 000009db: SUB 000009dc: DUP8 000009dd: AND 000009de: PUSH1 0x00 000009e0: SWAP1 000009e1: DUP2 000009e2: MSTORE 000009e3: PUSH1 0x08 000009e5: PUSH1 0x20 000009e7: SWAP1 000009e8: DUP2 000009e9: MSTORE 000009ea: PUSH1 0x40 000009ec: DUP1 000009ed: DUP4 000009ee: KECCAK256 000009ef: DUP6 000009f0: DUP5 000009f1: MSTORE 000009f2: SWAP1 000009f3: SWAP2 000009f4: MSTORE 000009f5: SWAP1 000009f6: KECCAK256 000009f7: SSTORE 000009f8: PUSH32 0x6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d 00000a19: DUP13 00000a1a: DUP4 00000a1b: DUP13 00000a1c: DUP15 00000a1d: DUP14 00000a1e: DUP4 00000a1f: MUL 00000a20: DUP2 00000a21: ISZERO 00000a22: PUSH2 0x0002 00000a25: JUMPI 00000a26: PUSH1 0x40 00000a28: DUP1 00000a29: MLOAD 00000a2a: PUSH1 0x01 00000a2c: PUSH1 0xa0 00000a2e: PUSH1 0x02 00000a30: EXP 00000a31: SUB 00000a32: SWAP7 00000a33: DUP8 00000a34: AND 00000a35: DUP2 00000a36: MSTORE 00000a37: PUSH1 0x20 00000a39: DUP2 00000a3a: ADD 00000a3b: SWAP6 00000a3c: SWAP1 00000a3d: SWAP6 00000a3e: MSTORE 00000a3f: SWAP3 00000a40: DUP6 00000a41: AND 00000a42: DUP5 00000a43: DUP5 00000a44: ADD 00000a45: MSTORE 00000a46: DIV 00000a47: PUSH1 0x60 00000a49: DUP4 00000a4a: ADD 00000a4b: MSTORE 00000a4c: DUP10 00000a4d: DUP4 00000a4e: AND 00000a4f: PUSH1 0x80 00000a51: DUP4 00000a52: ADD 00000a53: MSTORE 00000a54: CALLER 00000a55: SWAP1 00000a56: SWAP3 00000a57: AND 00000a58: PUSH1 0xa0 00000a5a: DUP3 00000a5b: ADD 00000a5c: MSTORE 00000a5d: SWAP1 00000a5e: MLOAD 00000a5f: SWAP1 00000a60: DUP2 00000a61: SWAP1 00000a62: SUB 00000a63: PUSH1 0xc0 00000a65: ADD 00000a66: SWAP1 00000a67: LOG1 00000a68: POP 00000a69: POP 00000a6a: POP 00000a6b: POP 00000a6c: POP 00000a6d: POP 00000a6e: POP 00000a6f: POP 00000a70: POP 00000a71: POP 00000a72: POP 00000a73: POP 00000a74: JUMP 00000a75: JUMPDEST 00000a76: PUSH1 0x40 00000a78: DUP1 00000a79: MLOAD 00000a7a: PUSH1 0x00 00000a7c: PUSH1 0x20 00000a7e: SWAP2 00000a7f: DUP3 00000a80: ADD 00000a81: DUP2 00000a82: SWAP1 00000a83: MSTORE 00000a84: DUP3 00000a85: MLOAD 00000a86: PUSH1 0x60 00000a88: PUSH1 0x02 00000a8a: EXP 00000a8b: PUSH1 0x01 00000a8d: PUSH1 0xa0 00000a8f: PUSH1 0x02 00000a91: EXP 00000a92: SUB 00000a93: ADDRESS 00000a94: DUP2 00000a95: AND 00000a96: DUP3 00000a97: MUL 00000a98: DUP4 00000a99: MSTORE 00000a9a: DUP13 00000a9b: DUP2 00000a9c: AND 00000a9d: DUP3 00000a9e: MUL 00000a9f: PUSH1 0x14 00000aa1: DUP5 00000aa2: ADD 00000aa3: MSTORE 00000aa4: PUSH1 0x28 00000aa6: DUP4 00000aa7: ADD 00000aa8: DUP13 00000aa9: SWAP1 00000aaa: MSTORE 00000aab: DUP11 00000aac: AND 00000aad: MUL 00000aae: PUSH1 0x48 00000ab0: DUP3 00000ab1: ADD 00000ab2: MSTORE 00000ab3: PUSH1 0x5c 00000ab5: DUP2 00000ab6: ADD 00000ab7: DUP9 00000ab8: SWAP1 00000ab9: MSTORE 00000aba: PUSH1 0x7c 00000abc: DUP2 00000abd: ADD 00000abe: DUP8 00000abf: SWAP1 00000ac0: MSTORE 00000ac1: PUSH1 0x9c 00000ac3: DUP2 00000ac4: ADD 00000ac5: DUP7 00000ac6: SWAP1 00000ac7: MSTORE 00000ac8: SWAP3 00000ac9: MLOAD 00000aca: PUSH1 0x02 00000acc: SWAP4 00000acd: PUSH1 0xbc 00000acf: DUP2 00000ad0: DUP2 00000ad1: ADD 00000ad2: SWAP5 00000ad3: SWAP4 00000ad4: SWAP2 00000ad5: DUP4 00000ad6: SWAP1 00000ad7: SUB 00000ad8: ADD 00000ad9: SWAP1 00000ada: DUP3 00000adb: SWAP1 00000adc: DUP7 00000add: PUSH2 0x61da 00000ae0: GAS 00000ae1: SUB 00000ae2: CALL 00000ae3: ISZERO 00000ae4: PUSH2 0x0002 00000ae7: JUMPI 00000ae8: POP 00000ae9: POP 00000aea: PUSH1 0x40 00000aec: DUP1 00000aed: MLOAD 00000aee: DUP1 00000aef: MLOAD 00000af0: CALLER 00000af1: PUSH1 0x01 00000af3: PUSH1 0xa0 00000af5: PUSH1 0x02 00000af7: EXP 00000af8: SUB 00000af9: SWAP1 00000afa: DUP2 00000afb: AND 00000afc: PUSH1 0x00 00000afe: DUP2 00000aff: DUP2 00000b00: MSTORE 00000b01: PUSH1 0x07 00000b03: PUSH1 0x20 00000b05: SWAP1 00000b06: DUP2 00000b07: MSTORE 00000b08: DUP7 00000b09: DUP3 00000b0a: KECCAK256 00000b0b: DUP6 00000b0c: DUP4 00000b0d: MSTORE 00000b0e: DUP2 00000b0f: MSTORE 00000b10: SWAP1 00000b11: DUP7 00000b12: SWAP1 00000b13: KECCAK256 00000b14: DUP1 00000b15: SLOAD 00000b16: PUSH1 0xff 00000b18: NOT 00000b19: AND 00000b1a: PUSH1 0x01 00000b1c: OR 00000b1d: SWAP1 00000b1e: SSTORE 00000b1f: DUP13 00000b20: DUP4 00000b21: AND 00000b22: DUP6 00000b23: MSTORE 00000b24: DUP5 00000b25: ADD 00000b26: DUP12 00000b27: SWAP1 00000b28: MSTORE 00000b29: SWAP1 00000b2a: DUP10 00000b2b: AND 00000b2c: DUP4 00000b2d: DUP6 00000b2e: ADD 00000b2f: MSTORE 00000b30: PUSH1 0x60 00000b32: DUP4 00000b33: ADD 00000b34: DUP9 00000b35: SWAP1 00000b36: MSTORE 00000b37: PUSH1 0x80 00000b39: DUP4 00000b3a: ADD 00000b3b: DUP8 00000b3c: SWAP1 00000b3d: MSTORE 00000b3e: PUSH1 0xa0 00000b40: DUP4 00000b41: ADD 00000b42: DUP7 00000b43: SWAP1 00000b44: MSTORE 00000b45: PUSH1 0xc0 00000b47: DUP4 00000b48: ADD 00000b49: MSTORE 00000b4a: SWAP2 00000b4b: MLOAD 00000b4c: SWAP2 00000b4d: SWAP3 00000b4e: POP 00000b4f: PUSH32 0x3f7f2eda73683c21a15f9435af1028c93185b5f1fa38270762dc32be606b3e85 00000b70: SWAP2 00000b71: SWAP1 00000b72: DUP2 00000b73: SWAP1 00000b74: SUB 00000b75: PUSH1 0xe0 00000b77: ADD 00000b78: SWAP1 00000b79: LOG1 00000b7a: POP 00000b7b: POP 00000b7c: POP 00000b7d: POP 00000b7e: POP 00000b7f: POP 00000b80: POP 00000b81: JUMP 00000b82: JUMPDEST 00000b83: PUSH1 0x40 00000b85: DUP1 00000b86: MLOAD 00000b87: PUSH1 0x00 00000b89: PUSH1 0x20 00000b8b: SWAP2 00000b8c: DUP3 00000b8d: ADD 00000b8e: DUP2 00000b8f: SWAP1 00000b90: MSTORE 00000b91: DUP3 00000b92: MLOAD 00000b93: PUSH1 0x60 00000b95: PUSH1 0x02 00000b97: EXP 00000b98: PUSH1 0x01 00000b9a: PUSH1 0xa0 00000b9c: PUSH1 0x02 00000b9e: EXP 00000b9f: SUB 00000ba0: ADDRESS 00000ba1: DUP2 00000ba2: AND 00000ba3: DUP3 00000ba4: MUL 00000ba5: DUP4 00000ba6: MSTORE 00000ba7: DUP16 00000ba8: DUP2 00000ba9: AND 00000baa: DUP3 00000bab: MUL 00000bac: PUSH1 0x14 00000bae: DUP5 00000baf: ADD 00000bb0: MSTORE 00000bb1: PUSH1 0x28 00000bb3: DUP4 00000bb4: ADD 00000bb5: DUP16 00000bb6: SWAP1 00000bb7: MSTORE 00000bb8: DUP14 00000bb9: AND 00000bba: MUL 00000bbb: PUSH1 0x48 00000bbd: DUP3 00000bbe: ADD 00000bbf: MSTORE 00000bc0: PUSH1 0x5c 00000bc2: DUP2 00000bc3: ADD 00000bc4: DUP12 00000bc5: SWAP1 00000bc6: MSTORE 00000bc7: PUSH1 0x7c 00000bc9: DUP2 00000bca: ADD 00000bcb: DUP11 00000bcc: SWAP1 00000bcd: MSTORE 00000bce: PUSH1 0x9c 00000bd0: DUP2 00000bd1: ADD 00000bd2: DUP10 00000bd3: SWAP1 00000bd4: MSTORE 00000bd5: SWAP3 00000bd6: MLOAD 00000bd7: PUSH1 0x02 00000bd9: SWAP4 00000bda: PUSH1 0xbc 00000bdc: DUP2 00000bdd: DUP2 00000bde: ADD 00000bdf: SWAP5 00000be0: SWAP4 00000be1: SWAP2 00000be2: DUP4 00000be3: SWAP1 00000be4: SUB 00000be5: ADD 00000be6: SWAP1 00000be7: DUP3 00000be8: SWAP1 00000be9: DUP7 00000bea: PUSH2 0x61da 00000bed: GAS 00000bee: SUB 00000bef: CALL 00000bf0: ISZERO 00000bf1: PUSH2 0x0002 00000bf4: JUMPI 00000bf5: POP 00000bf6: POP 00000bf7: PUSH1 0x40 00000bf9: DUP1 00000bfa: MLOAD 00000bfb: MLOAD 00000bfc: CALLER 00000bfd: PUSH1 0x01 00000bff: PUSH1 0xa0 00000c01: PUSH1 0x02 00000c03: EXP 00000c04: SUB 00000c05: AND 00000c06: PUSH1 0x00 00000c08: SWAP1 00000c09: DUP2 00000c0a: MSTORE 00000c0b: PUSH1 0x07 00000c0d: PUSH1 0x20 00000c0f: SWAP1 00000c10: DUP2 00000c11: MSTORE 00000c12: DUP4 00000c13: DUP3 00000c14: KECCAK256 00000c15: DUP4 00000c16: DUP4 00000c17: MSTORE 00000c18: SWAP1 00000c19: MSTORE 00000c1a: SWAP2 00000c1b: SWAP1 00000c1c: SWAP2 00000c1d: KECCAK256 00000c1e: SLOAD 00000c1f: SWAP1 00000c20: SWAP2 00000c21: POP 00000c22: PUSH1 0xff 00000c24: AND 00000c25: DUP1 00000c26: PUSH2 0x0cb1 00000c29: JUMPI 00000c2a: POP 00000c2b: CALLER 00000c2c: PUSH1 0x01 00000c2e: PUSH1 0xa0 00000c30: PUSH1 0x02 00000c32: EXP 00000c33: SUB 00000c34: AND 00000c35: PUSH1 0x01 00000c37: DUP3 00000c38: DUP7 00000c39: DUP7 00000c3a: DUP7 00000c3b: PUSH1 0x40 00000c3d: MLOAD 00000c3e: DUP1 00000c3f: PUSH1 0x00 00000c41: MSTORE 00000c42: PUSH1 0x20 00000c44: ADD 00000c45: PUSH1 0x40 00000c47: MSTORE 00000c48: PUSH1 0x00 00000c4a: PUSH1 0x40 00000c4c: MLOAD 00000c4d: PUSH1 0x20 00000c4f: ADD 00000c50: MSTORE 00000c51: PUSH1 0x40 00000c53: MLOAD 00000c54: DUP1 00000c55: DUP6 00000c56: PUSH1 0x00 00000c58: NOT 00000c59: AND 00000c5a: DUP2 00000c5b: MSTORE 00000c5c: PUSH1 0x20 00000c5e: ADD 00000c5f: DUP5 00000c60: PUSH1 0xff 00000c62: AND 00000c63: DUP2 00000c64: MSTORE 00000c65: PUSH1 0x20 00000c67: ADD 00000c68: DUP4 00000c69: PUSH1 0x00 00000c6b: NOT 00000c6c: AND 00000c6d: DUP2 00000c6e: MSTORE 00000c6f: PUSH1 0x20 00000c71: ADD 00000c72: DUP3 00000c73: PUSH1 0x00 00000c75: NOT 00000c76: AND 00000c77: DUP2 00000c78: MSTORE 00000c79: PUSH1 0x20 00000c7b: ADD 00000c7c: SWAP5 00000c7d: POP 00000c7e: POP 00000c7f: POP 00000c80: POP 00000c81: POP 00000c82: PUSH1 0x20 00000c84: PUSH1 0x40 00000c86: MLOAD 00000c87: PUSH1 0x20 00000c89: DUP2 00000c8a: SUB 00000c8b: SWAP1 00000c8c: DUP1 00000c8d: DUP5 00000c8e: SUB 00000c8f: SWAP1 00000c90: PUSH1 0x00 00000c92: DUP7 00000c93: PUSH2 0x61da 00000c96: GAS 00000c97: SUB 00000c98: CALL 00000c99: ISZERO 00000c9a: PUSH2 0x0002 00000c9d: JUMPI 00000c9e: POP 00000c9f: POP 00000ca0: PUSH1 0x20 00000ca2: PUSH1 0x40 00000ca4: MLOAD 00000ca5: SUB 00000ca6: MLOAD 00000ca7: PUSH1 0x01 00000ca9: PUSH1 0xa0 00000cab: PUSH1 0x02 00000cad: EXP 00000cae: SUB 00000caf: AND 00000cb0: EQ 00000cb1: JUMPDEST 00000cb2: ISZERO 00000cb3: ISZERO 00000cb4: PUSH2 0x0cbc 00000cb7: JUMPI 00000cb8: PUSH2 0x0002 00000cbb: JUMP 00000cbc: JUMPDEST 00000cbd: CALLER 00000cbe: PUSH1 0x01 00000cc0: PUSH1 0xa0 00000cc2: PUSH1 0x02 00000cc4: EXP 00000cc5: SUB 00000cc6: SWAP1 00000cc7: DUP2 00000cc8: AND 00000cc9: PUSH1 0x00 00000ccb: DUP2 00000ccc: DUP2 00000ccd: MSTORE 00000cce: PUSH1 0x08 00000cd0: PUSH1 0x20 00000cd2: SWAP1 00000cd3: DUP2 00000cd4: MSTORE 00000cd5: PUSH1 0x40 00000cd7: DUP1 00000cd8: DUP4 00000cd9: KECCAK256 00000cda: DUP7 00000cdb: DUP5 00000cdc: MSTORE 00000cdd: DUP3 00000cde: MSTORE 00000cdf: SWAP2 00000ce0: DUP3 00000ce1: SWAP1 00000ce2: KECCAK256 00000ce3: DUP14 00000ce4: SWAP1 00000ce5: SSTORE 00000ce6: DUP2 00000ce7: MLOAD 00000ce8: DUP15 00000ce9: DUP6 00000cea: AND 00000ceb: DUP2 00000cec: MSTORE 00000ced: SWAP1 00000cee: DUP2 00000cef: ADD 00000cf0: DUP14 00000cf1: SWAP1 00000cf2: MSTORE 00000cf3: SWAP3 00000cf4: DUP12 00000cf5: AND 00000cf6: DUP4 00000cf7: DUP3 00000cf8: ADD 00000cf9: MSTORE 00000cfa: PUSH1 0x60 00000cfc: DUP4 00000cfd: ADD 00000cfe: DUP11 00000cff: SWAP1 00000d00: MSTORE 00000d01: PUSH1 0x80 00000d03: DUP4 00000d04: ADD 00000d05: DUP10 00000d06: SWAP1 00000d07: MSTORE 00000d08: PUSH1 0xa0 00000d0a: DUP4 00000d0b: ADD 00000d0c: DUP9 00000d0d: SWAP1 00000d0e: MSTORE 00000d0f: PUSH1 0xc0 00000d11: DUP4 00000d12: ADD 00000d13: SWAP2 00000d14: SWAP1 00000d15: SWAP2 00000d16: MSTORE 00000d17: PUSH1 0xff 00000d19: DUP7 00000d1a: AND 00000d1b: PUSH1 0xe0 00000d1d: DUP4 00000d1e: ADD 00000d1f: MSTORE 00000d20: PUSH2 0x0100 00000d23: DUP3 00000d24: ADD 00000d25: DUP6 00000d26: SWAP1 00000d27: MSTORE 00000d28: PUSH2 0x0120 00000d2b: DUP3 00000d2c: ADD 00000d2d: DUP5 00000d2e: SWAP1 00000d2f: MSTORE 00000d30: MLOAD 00000d31: PUSH32 0x1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0 00000d52: SWAP2 00000d53: DUP2 00000d54: SWAP1 00000d55: SUB 00000d56: PUSH2 0x0140 00000d59: ADD 00000d5a: SWAP1 00000d5b: LOG1 00000d5c: POP 00000d5d: POP 00000d5e: POP 00000d5f: POP 00000d60: POP 00000d61: POP 00000d62: POP 00000d63: POP 00000d64: POP 00000d65: POP 00000d66: JUMP 00000d67: JUMPDEST 00000d68: CALLER 00000d69: PUSH1 0x01 00000d6b: PUSH1 0xa0 00000d6d: PUSH1 0x02 00000d6f: EXP 00000d70: SUB 00000d71: AND 00000d72: PUSH1 0x00 00000d74: DUP2 00000d75: DUP2 00000d76: MSTORE 00000d77: PUSH1 0x00 00000d79: DUP1 00000d7a: MLOAD 00000d7b: PUSH1 0x20 00000d7d: PUSH2 0x15b3 00000d80: DUP4 00000d81: CODECOPY 00000d82: DUP2 00000d83: MLOAD 00000d84: SWAP2 00000d85: MSTORE 00000d86: PUSH1 0x20 00000d88: SWAP1 00000d89: DUP2 00000d8a: MSTORE 00000d8b: PUSH1 0x40 00000d8d: DUP1 00000d8e: DUP4 00000d8f: KECCAK256 00000d90: SLOAD 00000d91: DUP2 00000d92: MLOAD 00000d93: SWAP4 00000d94: DUP5 00000d95: MSTORE 00000d96: SWAP2 00000d97: DUP4 00000d98: ADD 00000d99: SWAP4 00000d9a: SWAP1 00000d9b: SWAP4 00000d9c: MSTORE 00000d9d: DUP2 00000d9e: DUP4 00000d9f: ADD 00000da0: DUP5 00000da1: SWAP1 00000da2: MSTORE 00000da3: PUSH1 0x60 00000da5: DUP3 00000da6: ADD 00000da7: MSTORE 00000da8: SWAP1 00000da9: MLOAD 00000daa: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567 00000dcb: SWAP2 00000dcc: DUP2 00000dcd: SWAP1 00000dce: SUB 00000dcf: PUSH1 0x80 00000dd1: ADD 00000dd2: SWAP1 00000dd3: LOG1 00000dd4: JUMPDEST 00000dd5: POP 00000dd6: JUMP 00000dd7: JUMPDEST 00000dd8: CALLER 00000dd9: PUSH1 0x01 00000ddb: PUSH1 0xa0 00000ddd: PUSH1 0x02 00000ddf: EXP 00000de0: SUB 00000de1: AND 00000de2: PUSH1 0x00 00000de4: SWAP1 00000de5: DUP2 00000de6: MSTORE 00000de7: PUSH1 0x00 00000de9: DUP1 00000dea: MLOAD 00000deb: PUSH1 0x20 00000ded: PUSH2 0x15b3 00000df0: DUP4 00000df1: CODECOPY 00000df2: DUP2 00000df3: MLOAD 00000df4: SWAP2 00000df5: MSTORE 00000df6: PUSH1 0x20 00000df8: MSTORE 00000df9: PUSH1 0x40 00000dfb: SWAP1 00000dfc: KECCAK256 00000dfd: SLOAD 00000dfe: DUP2 00000dff: SWAP1 00000e00: LT 00000e01: ISZERO 00000e02: PUSH2 0x0e0a 00000e05: JUMPI 00000e06: PUSH2 0x0002 00000e09: JUMP 00000e0a: JUMPDEST 00000e0b: CALLER 00000e0c: PUSH1 0x01 00000e0e: PUSH1 0xa0 00000e10: PUSH1 0x02 00000e12: EXP 00000e13: SUB 00000e14: AND 00000e15: PUSH1 0x00 00000e17: SWAP1 00000e18: DUP2 00000e19: MSTORE 00000e1a: PUSH1 0x00 00000e1c: DUP1 00000e1d: MLOAD 00000e1e: PUSH1 0x20 00000e20: PUSH2 0x15b3 00000e23: DUP4 00000e24: CODECOPY 00000e25: DUP2 00000e26: MLOAD 00000e27: SWAP2 00000e28: MSTORE 00000e29: PUSH1 0x20 00000e2b: MSTORE 00000e2c: PUSH1 0x40 00000e2e: SWAP1 00000e2f: KECCAK256 00000e30: SLOAD 00000e31: PUSH2 0x0e4c 00000e34: SWAP1 00000e35: DUP3 00000e36: JUMPDEST 00000e37: PUSH1 0x00 00000e39: PUSH2 0x15aa 00000e3c: DUP4 00000e3d: DUP4 00000e3e: GT 00000e3f: ISZERO 00000e40: JUMPDEST 00000e41: DUP1 00000e42: ISZERO 00000e43: ISZERO 00000e44: PUSH2 0x0dd4 00000e47: JUMPI 00000e48: PUSH2 0x0002 00000e4b: JUMP 00000e4c: JUMPDEST 00000e4d: CALLER 00000e4e: PUSH1 0x01 00000e50: PUSH1 0xa0 00000e52: PUSH1 0x02 00000e54: EXP 00000e55: SUB 00000e56: AND 00000e57: PUSH1 0x00 00000e59: DUP2 00000e5a: DUP2 00000e5b: MSTORE 00000e5c: PUSH1 0x00 00000e5e: DUP1 00000e5f: MLOAD 00000e60: PUSH1 0x20 00000e62: PUSH2 0x15b3 00000e65: DUP4 00000e66: CODECOPY 00000e67: DUP2 00000e68: MLOAD 00000e69: SWAP2 00000e6a: MSTORE 00000e6b: PUSH1 0x20 00000e6d: MSTORE 00000e6e: PUSH1 0x40 00000e70: DUP1 00000e71: DUP3 00000e72: KECCAK256 00000e73: SWAP4 00000e74: SWAP1 00000e75: SWAP4 00000e76: SSTORE 00000e77: SWAP2 00000e78: MLOAD 00000e79: SWAP1 00000e7a: SWAP2 00000e7b: DUP4 00000e7c: SWAP2 00000e7d: SWAP1 00000e7e: DUP2 00000e7f: DUP2 00000e80: DUP2 00000e81: DUP6 00000e82: DUP8 00000e83: PUSH2 0x8502 00000e86: GAS 00000e87: SUB 00000e88: CALL 00000e89: SWAP3 00000e8a: POP 00000e8b: POP 00000e8c: POP 00000e8d: ISZERO 00000e8e: ISZERO 00000e8f: PUSH2 0x0d67 00000e92: JUMPI 00000e93: PUSH2 0x0002 00000e96: JUMP 00000e97: JUMPDEST 00000e98: DUP2 00000e99: PUSH1 0x01 00000e9b: PUSH1 0xa0 00000e9d: PUSH1 0x02 00000e9f: EXP 00000ea0: SUB 00000ea1: AND 00000ea2: PUSH4 0x23b872dd 00000ea7: CALLER 00000ea8: ADDRESS 00000ea9: DUP5 00000eaa: PUSH1 0x00 00000eac: PUSH1 0x40 00000eae: MLOAD 00000eaf: PUSH1 0x20 00000eb1: ADD 00000eb2: MSTORE 00000eb3: PUSH1 0x40 00000eb5: MLOAD 00000eb6: DUP5 00000eb7: PUSH1 0xe0 00000eb9: PUSH1 0x02 00000ebb: EXP 00000ebc: MUL 00000ebd: DUP2 00000ebe: MSTORE 00000ebf: PUSH1 0x04 00000ec1: ADD 00000ec2: DUP1 00000ec3: DUP5 00000ec4: PUSH1 0x01 00000ec6: PUSH1 0xa0 00000ec8: PUSH1 0x02 00000eca: EXP 00000ecb: SUB 00000ecc: AND 00000ecd: DUP2 00000ece: MSTORE 00000ecf: PUSH1 0x20 00000ed1: ADD 00000ed2: DUP4 00000ed3: PUSH1 0x01 00000ed5: PUSH1 0xa0 00000ed7: PUSH1 0x02 00000ed9: EXP 00000eda: SUB 00000edb: AND 00000edc: DUP2 00000edd: MSTORE 00000ede: PUSH1 0x20 00000ee0: ADD 00000ee1: DUP3 00000ee2: DUP2 00000ee3: MSTORE 00000ee4: PUSH1 0x20 00000ee6: ADD 00000ee7: SWAP4 00000ee8: POP 00000ee9: POP 00000eea: POP 00000eeb: POP 00000eec: PUSH1 0x20 00000eee: PUSH1 0x40 00000ef0: MLOAD 00000ef1: DUP1 00000ef2: DUP4 00000ef3: SUB 00000ef4: DUP2 00000ef5: PUSH1 0x00 00000ef7: DUP8 00000ef8: DUP1 00000ef9: EXTCODESIZE 00000efa: ISZERO 00000efb: PUSH2 0x0002 00000efe: JUMPI 00000eff: PUSH1 0x32 00000f01: GAS 00000f02: SUB 00000f03: CALL 00000f04: ISZERO 00000f05: PUSH2 0x0002 00000f08: JUMPI 00000f09: POP 00000f0a: POP 00000f0b: PUSH1 0x40 00000f0d: MLOAD 00000f0e: MLOAD 00000f0f: ISZERO 00000f10: ISZERO 00000f11: SWAP1 00000f12: POP 00000f13: PUSH2 0x0f1b 00000f16: JUMPI 00000f17: PUSH2 0x0002 00000f1a: JUMP 00000f1b: JUMPDEST 00000f1c: PUSH1 0x01 00000f1e: PUSH1 0xa0 00000f20: PUSH1 0x02 00000f22: EXP 00000f23: SUB 00000f24: DUP3 00000f25: DUP2 00000f26: AND 00000f27: PUSH1 0x00 00000f29: SWAP1 00000f2a: DUP2 00000f2b: MSTORE 00000f2c: PUSH1 0x06 00000f2e: PUSH1 0x20 00000f30: SWAP1 00000f31: DUP2 00000f32: MSTORE 00000f33: PUSH1 0x40 00000f35: DUP1 00000f36: DUP4 00000f37: KECCAK256 00000f38: CALLER 00000f39: SWAP1 00000f3a: SWAP5 00000f3b: AND 00000f3c: DUP4 00000f3d: MSTORE 00000f3e: SWAP3 00000f3f: SWAP1 00000f40: MSTORE 00000f41: KECCAK256 00000f42: SLOAD 00000f43: PUSH2 0x0f4c 00000f46: SWAP1 00000f47: DUP3 00000f48: PUSH2 0x054e 00000f4b: JUMP 00000f4c: JUMPDEST 00000f4d: PUSH1 0x01 00000f4f: PUSH1 0xa0 00000f51: PUSH1 0x02 00000f53: EXP 00000f54: SUB 00000f55: DUP4 00000f56: DUP2 00000f57: AND 00000f58: PUSH1 0x00 00000f5a: DUP2 00000f5b: DUP2 00000f5c: MSTORE 00000f5d: PUSH1 0x06 00000f5f: PUSH1 0x20 00000f61: SWAP1 00000f62: DUP2 00000f63: MSTORE 00000f64: PUSH1 0x40 00000f66: DUP1 00000f67: DUP4 00000f68: KECCAK256 00000f69: CALLER 00000f6a: SWAP1 00000f6b: SWAP6 00000f6c: AND 00000f6d: DUP1 00000f6e: DUP5 00000f6f: MSTORE 00000f70: SWAP5 00000f71: DUP3 00000f72: MSTORE 00000f73: SWAP2 00000f74: DUP3 00000f75: SWAP1 00000f76: KECCAK256 00000f77: DUP6 00000f78: SWAP1 00000f79: SSTORE 00000f7a: DUP2 00000f7b: MLOAD 00000f7c: SWAP3 00000f7d: DUP4 00000f7e: MSTORE 00000f7f: DUP3 00000f80: ADD 00000f81: SWAP3 00000f82: SWAP1 00000f83: SWAP3 00000f84: MSTORE 00000f85: DUP1 00000f86: DUP3 00000f87: ADD 00000f88: DUP5 00000f89: SWAP1 00000f8a: MSTORE 00000f8b: PUSH1 0x60 00000f8d: DUP2 00000f8e: ADD 00000f8f: SWAP3 00000f90: SWAP1 00000f91: SWAP3 00000f92: MSTORE 00000f93: MLOAD 00000f94: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 00000fb5: SWAP2 00000fb6: DUP2 00000fb7: SWAP1 00000fb8: SUB 00000fb9: PUSH1 0x80 00000fbb: ADD 00000fbc: SWAP1 00000fbd: LOG1 00000fbe: POP 00000fbf: POP 00000fc0: JUMP 00000fc1: JUMPDEST 00000fc2: PUSH1 0x03 00000fc4: SLOAD 00000fc5: DUP2 00000fc6: GT 00000fc7: ISZERO 00000fc8: PUSH2 0x0fd0 00000fcb: JUMPI 00000fcc: PUSH2 0x0002 00000fcf: JUMP 00000fd0: JUMPDEST 00000fd1: PUSH1 0x03 00000fd3: SSTORE 00000fd4: JUMP 00000fd5: JUMPDEST 00000fd6: PUSH1 0x05 00000fd8: SLOAD 00000fd9: DUP2 00000fda: LT 00000fdb: DUP1 00000fdc: PUSH2 0x0fe6 00000fdf: JUMPI 00000fe0: POP 00000fe1: PUSH1 0x04 00000fe3: SLOAD 00000fe4: DUP2 00000fe5: GT 00000fe6: JUMPDEST 00000fe7: ISZERO 00000fe8: PUSH2 0x0ff0 00000feb: JUMPI 00000fec: PUSH2 0x0002 00000fef: JUMP 00000ff0: JUMPDEST 00000ff1: PUSH1 0x05 00000ff3: SSTORE 00000ff4: JUMP 00000ff5: JUMPDEST 00000ff6: POP 00000ff7: PUSH1 0x01 00000ff9: JUMPDEST 00000ffa: SWAP13 00000ffb: SWAP12 00000ffc: POP 00000ffd: POP 00000ffe: POP 00000fff: POP 00001000: POP 00001001: POP 00001002: POP 00001003: POP 00001004: POP 00001005: POP 00001006: POP 00001007: POP 00001008: JUMP 00001009: JUMPDEST 0000100a: LT 0000100b: ISZERO 0000100c: JUMPDEST 0000100d: ISZERO 0000100e: ISZERO 0000100f: PUSH2 0x0ff5 00001012: JUMPI 00001013: POP 00001014: PUSH1 0x00 00001016: PUSH2 0x0ff9 00001019: JUMP 0000101a: JUMPDEST 0000101b: PUSH1 0x01 0000101d: DUP1 0000101e: SLOAD 0000101f: PUSH1 0x01 00001021: PUSH1 0xa0 00001023: PUSH1 0x02 00001025: EXP 00001026: SUB 00001027: NOT 00001028: AND 00001029: DUP3 0000102a: OR 0000102b: SWAP1 0000102c: SSTORE 0000102d: POP 0000102e: JUMP 0000102f: JUMPDEST 00001030: PUSH1 0x04 00001032: SLOAD 00001033: DUP2 00001034: GT 00001035: DUP1 00001036: PUSH2 0x1040 00001039: JUMPI 0000103a: POP 0000103b: PUSH1 0x05 0000103d: SLOAD 0000103e: DUP2 0000103f: LT 00001040: JUMPDEST 00001041: ISZERO 00001042: PUSH2 0x104a 00001045: JUMPI 00001046: PUSH2 0x0002 00001049: JUMP 0000104a: JUMPDEST 0000104b: PUSH1 0x04 0000104d: SSTORE 0000104e: JUMP 0000104f: JUMPDEST 00001050: PUSH1 0x00 00001052: DUP1 00001053: SLOAD 00001054: PUSH1 0x01 00001056: PUSH1 0xa0 00001058: PUSH1 0x02 0000105a: EXP 0000105b: SUB 0000105c: NOT 0000105d: AND 0000105e: DUP3 0000105f: OR 00001060: SWAP1 00001061: SSTORE 00001062: POP 00001063: JUMP 00001064: JUMPDEST 00001065: PUSH1 0x01 00001067: PUSH1 0xa0 00001069: PUSH1 0x02 0000106b: EXP 0000106c: SUB 0000106d: DUP3 0000106e: DUP2 0000106f: AND 00001070: PUSH1 0x00 00001072: SWAP1 00001073: DUP2 00001074: MSTORE 00001075: PUSH1 0x06 00001077: PUSH1 0x20 00001079: SWAP1 0000107a: DUP2 0000107b: MSTORE 0000107c: PUSH1 0x40 0000107e: DUP1 0000107f: DUP4 00001080: KECCAK256 00001081: CALLER 00001082: SWAP1 00001083: SWAP5 00001084: AND 00001085: DUP4 00001086: MSTORE 00001087: SWAP3 00001088: SWAP1 00001089: MSTORE 0000108a: KECCAK256 0000108b: SLOAD 0000108c: DUP2 0000108d: SWAP1 0000108e: LT 0000108f: ISZERO 00001090: PUSH2 0x1098 00001093: JUMPI 00001094: PUSH2 0x0002 00001097: JUMP 00001098: JUMPDEST 00001099: PUSH1 0x01 0000109b: PUSH1 0xa0 0000109d: PUSH1 0x02 0000109f: EXP 000010a0: SUB 000010a1: DUP3 000010a2: DUP2 000010a3: AND 000010a4: PUSH1 0x00 000010a6: SWAP1 000010a7: DUP2 000010a8: MSTORE 000010a9: PUSH1 0x06 000010ab: PUSH1 0x20 000010ad: SWAP1 000010ae: DUP2 000010af: MSTORE 000010b0: PUSH1 0x40 000010b2: DUP1 000010b3: DUP4 000010b4: KECCAK256 000010b5: CALLER 000010b6: SWAP1 000010b7: SWAP5 000010b8: AND 000010b9: DUP4 000010ba: MSTORE 000010bb: SWAP3 000010bc: SWAP1 000010bd: MSTORE 000010be: KECCAK256 000010bf: SLOAD 000010c0: PUSH2 0x10c9 000010c3: SWAP1 000010c4: DUP3 000010c5: PUSH2 0x0e36 000010c8: JUMP 000010c9: JUMPDEST 000010ca: PUSH1 0x01 000010cc: PUSH1 0xa0 000010ce: PUSH1 0x02 000010d0: EXP 000010d1: SUB 000010d2: DUP4 000010d3: DUP2 000010d4: AND 000010d5: PUSH1 0x00 000010d7: DUP2 000010d8: DUP2 000010d9: MSTORE 000010da: PUSH1 0x06 000010dc: PUSH1 0x20 000010de: SWAP1 000010df: DUP2 000010e0: MSTORE 000010e1: PUSH1 0x40 000010e3: DUP1 000010e4: DUP4 000010e5: KECCAK256 000010e6: CALLER 000010e7: SWAP1 000010e8: SWAP6 000010e9: AND 000010ea: DUP1 000010eb: DUP5 000010ec: MSTORE 000010ed: SWAP5 000010ee: DUP3 000010ef: MSTORE 000010f0: DUP1 000010f1: DUP4 000010f2: KECCAK256 000010f3: SWAP6 000010f4: SWAP1 000010f5: SWAP6 000010f6: SSTORE 000010f7: DUP5 000010f8: MLOAD 000010f9: DUP2 000010fa: ADD 000010fb: DUP3 000010fc: SWAP1 000010fd: MSTORE 000010fe: DUP5 000010ff: MLOAD 00001100: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 00001121: DUP2 00001122: MSTORE 00001123: PUSH1 0x04 00001125: DUP2 00001126: ADD 00001127: SWAP5 00001128: SWAP1 00001129: SWAP5 0000112a: MSTORE 0000112b: PUSH1 0x24 0000112d: DUP5 0000112e: ADD 0000112f: DUP7 00001130: SWAP1 00001131: MSTORE 00001132: SWAP4 00001133: MLOAD 00001134: SWAP2 00001135: SWAP4 00001136: PUSH4 0xa9059cbb 0000113b: SWAP4 0000113c: PUSH1 0x44 0000113e: DUP2 0000113f: DUP2 00001140: ADD 00001141: SWAP5 00001142: SWAP3 00001143: SWAP4 00001144: SWAP2 00001145: DUP4 00001146: SWAP1 00001147: SUB 00001148: ADD 00001149: SWAP1 0000114a: DUP3 0000114b: SWAP1 0000114c: DUP8 0000114d: DUP1 0000114e: EXTCODESIZE 0000114f: ISZERO 00001150: PUSH2 0x0002 00001153: JUMPI 00001154: PUSH1 0x32 00001156: GAS 00001157: SUB 00001158: CALL 00001159: ISZERO 0000115a: PUSH2 0x0002 0000115d: JUMPI 0000115e: POP 0000115f: POP 00001160: PUSH1 0x40 00001162: MLOAD 00001163: MLOAD 00001164: ISZERO 00001165: ISZERO 00001166: SWAP1 00001167: POP 00001168: PUSH2 0x1170 0000116b: JUMPI 0000116c: PUSH2 0x0002 0000116f: JUMP 00001170: JUMPDEST 00001171: PUSH1 0x01 00001173: PUSH1 0xa0 00001175: PUSH1 0x02 00001177: EXP 00001178: SUB 00001179: DUP3 0000117a: DUP2 0000117b: AND 0000117c: PUSH1 0x00 0000117e: DUP2 0000117f: DUP2 00001180: MSTORE 00001181: PUSH1 0x06 00001183: PUSH1 0x20 00001185: SWAP1 00001186: DUP2 00001187: MSTORE 00001188: PUSH1 0x40 0000118a: DUP1 0000118b: DUP4 0000118c: KECCAK256 0000118d: CALLER 0000118e: SWAP1 0000118f: SWAP6 00001190: AND 00001191: DUP1 00001192: DUP5 00001193: MSTORE 00001194: SWAP5 00001195: DUP3 00001196: MSTORE 00001197: SWAP2 00001198: DUP3 00001199: SWAP1 0000119a: KECCAK256 0000119b: SLOAD 0000119c: DUP3 0000119d: MLOAD 0000119e: SWAP4 0000119f: DUP5 000011a0: MSTORE 000011a1: SWAP1 000011a2: DUP4 000011a3: ADD 000011a4: SWAP4 000011a5: SWAP1 000011a6: SWAP4 000011a7: MSTORE 000011a8: DUP2 000011a9: DUP2 000011aa: ADD 000011ab: DUP5 000011ac: SWAP1 000011ad: MSTORE 000011ae: PUSH1 0x60 000011b0: DUP3 000011b1: ADD 000011b2: SWAP3 000011b3: SWAP1 000011b4: SWAP3 000011b5: MSTORE 000011b6: SWAP1 000011b7: MLOAD 000011b8: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567 000011d9: SWAP2 000011da: DUP2 000011db: SWAP1 000011dc: SUB 000011dd: PUSH1 0x80 000011df: ADD 000011e0: SWAP1 000011e1: LOG1 000011e2: POP 000011e3: POP 000011e4: JUMP 000011e5: JUMPDEST 000011e6: CALLER 000011e7: PUSH1 0x01 000011e9: PUSH1 0xa0 000011eb: PUSH1 0x02 000011ed: EXP 000011ee: SUB 000011ef: AND 000011f0: PUSH1 0x00 000011f2: DUP2 000011f3: DUP2 000011f4: MSTORE 000011f5: PUSH1 0x00 000011f7: DUP1 000011f8: MLOAD 000011f9: PUSH1 0x20 000011fb: PUSH2 0x15b3 000011fe: DUP4 000011ff: CODECOPY 00001200: DUP2 00001201: MLOAD 00001202: SWAP2 00001203: MSTORE 00001204: PUSH1 0x20 00001206: SWAP1 00001207: DUP2 00001208: MSTORE 00001209: PUSH1 0x40 0000120b: DUP1 0000120c: DUP4 0000120d: KECCAK256 0000120e: DUP6 0000120f: SWAP1 00001210: SSTORE 00001211: DUP1 00001212: MLOAD 00001213: SWAP3 00001214: DUP4 00001215: MSTORE 00001216: SWAP1 00001217: DUP3 00001218: ADD 00001219: SWAP3 0000121a: SWAP1 0000121b: SWAP3 0000121c: MSTORE 0000121d: CALLVALUE 0000121e: DUP2 0000121f: DUP4 00001220: ADD 00001221: MSTORE 00001222: PUSH1 0x60 00001224: DUP2 00001225: ADD 00001226: SWAP3 00001227: SWAP1 00001228: SWAP3 00001229: MSTORE 0000122a: MLOAD 0000122b: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 0000124c: SWAP2 0000124d: DUP2 0000124e: SWAP1 0000124f: SUB 00001250: PUSH1 0x80 00001252: ADD 00001253: SWAP1 00001254: LOG1 00001255: JUMP 00001256: JUMPDEST 00001257: PUSH1 0x02 00001259: DUP1 0000125a: SLOAD 0000125b: PUSH1 0x01 0000125d: PUSH1 0xa0 0000125f: PUSH1 0x02 00001261: EXP 00001262: SUB 00001263: NOT 00001264: AND 00001265: DUP3 00001266: OR 00001267: SWAP1 00001268: SSTORE 00001269: POP 0000126a: JUMP 0000126b: JUMPDEST 0000126c: DUP1 0000126d: SWAP4 0000126e: POP 0000126f: JUMPDEST 00001270: POP 00001271: POP 00001272: POP 00001273: SWAP11 00001274: SWAP10 00001275: POP 00001276: POP 00001277: POP 00001278: POP 00001279: POP 0000127a: POP 0000127b: POP 0000127c: POP 0000127d: POP 0000127e: POP 0000127f: JUMP 00001280: JUMPDEST 00001281: PUSH1 0x01 00001283: PUSH1 0xa0 00001285: PUSH1 0x02 00001287: EXP 00001288: SUB 00001289: DUP9 0000128a: AND 0000128b: PUSH1 0x00 0000128d: SWAP1 0000128e: DUP2 0000128f: MSTORE 00001290: PUSH1 0x08 00001292: PUSH1 0x20 00001294: SWAP1 00001295: DUP2 00001296: MSTORE 00001297: PUSH1 0x40 00001299: DUP1 0000129a: DUP4 0000129b: KECCAK256 0000129c: DUP7 0000129d: DUP5 0000129e: MSTORE 0000129f: SWAP1 000012a0: SWAP2 000012a1: MSTORE 000012a2: SWAP1 000012a3: KECCAK256 000012a4: SLOAD 000012a5: PUSH2 0x12af 000012a8: SWAP1 000012a9: DUP15 000012aa: SWAP1 000012ab: PUSH2 0x0e36 000012ae: JUMP 000012af: JUMPDEST 000012b0: PUSH1 0x01 000012b2: PUSH1 0xa0 000012b4: PUSH1 0x02 000012b6: EXP 000012b7: SUB 000012b8: DUP14 000012b9: DUP2 000012ba: AND 000012bb: PUSH1 0x00 000012bd: SWAP1 000012be: DUP2 000012bf: MSTORE 000012c0: PUSH1 0x06 000012c2: PUSH1 0x20 000012c4: SWAP1 000012c5: DUP2 000012c6: MSTORE 000012c7: PUSH1 0x40 000012c9: DUP1 000012ca: DUP4 000012cb: KECCAK256 000012cc: SWAP4 000012cd: DUP14 000012ce: AND 000012cf: DUP4 000012d0: MSTORE 000012d1: SWAP3 000012d2: SWAP1 000012d3: MSTORE 000012d4: KECCAK256 000012d5: SLOAD 000012d6: SWAP1 000012d7: SWAP3 000012d8: POP 000012d9: DUP12 000012da: SWAP1 000012db: PUSH2 0x12e4 000012de: SWAP1 000012df: DUP16 000012e0: PUSH2 0x0984 000012e3: JUMP 000012e4: JUMPDEST 000012e5: DUP2 000012e6: ISZERO 000012e7: PUSH2 0x0002 000012ea: JUMPI 000012eb: DIV 000012ec: SWAP1 000012ed: POP 000012ee: DUP1 000012ef: DUP3 000012f0: LT 000012f1: ISZERO 000012f2: PUSH2 0x126b 000012f5: JUMPI 000012f6: DUP2 000012f7: SWAP4 000012f8: POP 000012f9: PUSH2 0x126f 000012fc: JUMP 000012fd: JUMPDEST 000012fe: SWAP4 000012ff: SWAP3 00001300: POP 00001301: POP 00001302: POP 00001303: JUMP 00001304: JUMPDEST 00001305: DUP2 00001306: ISZERO 00001307: PUSH2 0x0002 0000130a: JUMPI 0000130b: DIV 0000130c: SWAP4 0000130d: POP 0000130e: PUSH8 0x0de0b6b3a7640000 00001317: PUSH2 0x1325 0000131a: DUP7 0000131b: PUSH1 0x04 0000131d: PUSH1 0x00 0000131f: POP 00001320: SLOAD 00001321: PUSH2 0x0984 00001324: JUMP 00001325: JUMPDEST 00001326: DUP2 00001327: ISZERO 00001328: PUSH2 0x0002 0000132b: JUMPI 0000132c: PUSH1 0x02 0000132e: SLOAD 0000132f: SWAP2 00001330: SWAP1 00001331: DIV 00001332: SWAP4 00001333: POP 00001334: PUSH1 0x00 00001336: SWAP3 00001337: POP 00001338: PUSH1 0x01 0000133a: PUSH1 0xa0 0000133c: PUSH1 0x02 0000133e: EXP 0000133f: SUB 00001340: AND 00001341: DUP3 00001342: EQ 00001343: PUSH2 0x13f8 00001346: JUMPI 00001347: PUSH1 0x02 00001349: SLOAD 0000134a: PUSH1 0x40 0000134c: DUP1 0000134d: MLOAD 0000134e: PUSH1 0x20 00001350: SWAP1 00001351: DUP2 00001352: ADD 00001353: DUP6 00001354: SWAP1 00001355: MSTORE 00001356: DUP2 00001357: MLOAD 00001358: PUSH32 0x1cbd051900000000000000000000000000000000000000000000000000000000 00001379: DUP2 0000137a: MSTORE 0000137b: PUSH1 0x01 0000137d: PUSH1 0xa0 0000137f: PUSH1 0x02 00001381: EXP 00001382: SUB 00001383: DUP11 00001384: DUP2 00001385: AND 00001386: PUSH1 0x04 00001388: DUP4 00001389: ADD 0000138a: MSTORE 0000138b: SWAP3 0000138c: MLOAD 0000138d: SWAP4 0000138e: SWAP1 0000138f: SWAP3 00001390: AND 00001391: SWAP3 00001392: PUSH4 0x1cbd0519 00001397: SWAP3 00001398: PUSH1 0x24 0000139a: DUP2 0000139b: DUP2 0000139c: ADD 0000139d: SWAP4 0000139e: SWAP3 0000139f: SWAP2 000013a0: DUP3 000013a1: SWAP1 000013a2: SUB 000013a3: ADD 000013a4: DUP2 000013a5: DUP9 000013a6: DUP8 000013a7: DUP1 000013a8: EXTCODESIZE 000013a9: ISZERO 000013aa: PUSH2 0x0002 000013ad: JUMPI 000013ae: PUSH1 0x32 000013b0: GAS 000013b1: SUB 000013b2: CALL 000013b3: ISZERO 000013b4: PUSH2 0x0002 000013b7: JUMPI 000013b8: POP 000013b9: POP 000013ba: PUSH1 0x40 000013bc: MLOAD 000013bd: MLOAD 000013be: SWAP2 000013bf: POP 000013c0: POP 000013c1: PUSH1 0x01 000013c3: DUP2 000013c4: EQ 000013c5: ISZERO 000013c6: PUSH2 0x13eb 000013c9: JUMPI 000013ca: PUSH8 0x0de0b6b3a7640000 000013d3: PUSH2 0x13e1 000013d6: DUP7 000013d7: PUSH1 0x05 000013d9: PUSH1 0x00 000013db: POP 000013dc: SLOAD 000013dd: PUSH2 0x0984 000013e0: JUMP 000013e1: JUMPDEST 000013e2: DUP2 000013e3: ISZERO 000013e4: PUSH2 0x0002 000013e7: JUMPI 000013e8: DIV 000013e9: SWAP2 000013ea: POP 000013eb: JUMPDEST 000013ec: DUP1 000013ed: PUSH1 0x02 000013ef: EQ 000013f0: ISZERO 000013f1: PUSH2 0x13f8 000013f4: JUMPI 000013f5: DUP3 000013f6: SWAP2 000013f7: POP 000013f8: JUMPDEST 000013f9: PUSH1 0x01 000013fb: PUSH1 0xa0 000013fd: PUSH1 0x02 000013ff: EXP 00001400: SUB 00001401: DUP11 00001402: DUP2 00001403: AND 00001404: PUSH1 0x00 00001406: SWAP1 00001407: DUP2 00001408: MSTORE 00001409: PUSH1 0x06 0000140b: PUSH1 0x20 0000140d: SWAP1 0000140e: DUP2 0000140f: MSTORE 00001410: PUSH1 0x40 00001412: DUP1 00001413: DUP4 00001414: KECCAK256 00001415: CALLER 00001416: SWAP1 00001417: SWAP5 00001418: AND 00001419: DUP4 0000141a: MSTORE 0000141b: SWAP3 0000141c: SWAP1 0000141d: MSTORE 0000141e: KECCAK256 0000141f: SLOAD 00001420: PUSH2 0x142d 00001423: SWAP1 00001424: PUSH2 0x1470 00001427: DUP8 00001428: DUP7 00001429: PUSH2 0x054e 0000142c: JUMP 0000142d: JUMPDEST 0000142e: PUSH1 0x01 00001430: PUSH1 0xa0 00001432: PUSH1 0x02 00001434: EXP 00001435: SUB 00001436: DUP12 00001437: DUP2 00001438: AND 00001439: PUSH1 0x00 0000143b: SWAP1 0000143c: DUP2 0000143d: MSTORE 0000143e: PUSH1 0x06 00001440: PUSH1 0x20 00001442: SWAP1 00001443: DUP2 00001444: MSTORE 00001445: PUSH1 0x40 00001447: DUP1 00001448: DUP4 00001449: KECCAK256 0000144a: CALLER 0000144b: DUP6 0000144c: AND 0000144d: DUP5 0000144e: MSTORE 0000144f: SWAP1 00001450: SWAP2 00001451: MSTORE 00001452: DUP1 00001453: DUP3 00001454: KECCAK256 00001455: SWAP4 00001456: SWAP1 00001457: SWAP4 00001458: SSTORE 00001459: SWAP1 0000145a: DUP9 0000145b: AND 0000145c: DUP2 0000145d: MSTORE 0000145e: KECCAK256 0000145f: SLOAD 00001460: PUSH2 0x1475 00001463: SWAP1 00001464: PUSH2 0x14bb 00001467: PUSH2 0x14c0 0000146a: DUP9 0000146b: DUP7 0000146c: PUSH2 0x054e 0000146f: JUMP 00001470: JUMPDEST 00001471: PUSH2 0x0e36 00001474: JUMP 00001475: JUMPDEST 00001476: PUSH1 0x01 00001478: PUSH1 0xa0 0000147a: PUSH1 0x02 0000147c: EXP 0000147d: SUB 0000147e: DUP12 0000147f: DUP2 00001480: AND 00001481: PUSH1 0x00 00001483: SWAP1 00001484: DUP2 00001485: MSTORE 00001486: PUSH1 0x06 00001488: PUSH1 0x20 0000148a: SWAP1 0000148b: DUP2 0000148c: MSTORE 0000148d: PUSH1 0x40 0000148f: DUP1 00001490: DUP4 00001491: KECCAK256 00001492: DUP12 00001493: DUP6 00001494: AND 00001495: DUP5 00001496: MSTORE 00001497: SWAP1 00001498: SWAP2 00001499: MSTORE 0000149a: DUP1 0000149b: DUP3 0000149c: KECCAK256 0000149d: SWAP4 0000149e: SWAP1 0000149f: SWAP4 000014a0: SSTORE 000014a1: PUSH1 0x01 000014a3: SLOAD 000014a4: SWAP1 000014a5: SWAP2 000014a6: AND 000014a7: DUP2 000014a8: MSTORE 000014a9: KECCAK256 000014aa: SLOAD 000014ab: PUSH2 0x14c6 000014ae: SWAP1 000014af: PUSH2 0x14bb 000014b2: PUSH2 0x1517 000014b5: DUP8 000014b6: DUP8 000014b7: PUSH2 0x054e 000014ba: JUMP 000014bb: JUMPDEST 000014bc: PUSH2 0x054e 000014bf: JUMP 000014c0: JUMPDEST 000014c1: DUP8 000014c2: PUSH2 0x0e36 000014c5: JUMP 000014c6: JUMPDEST 000014c7: PUSH1 0x01 000014c9: PUSH1 0xa0 000014cb: PUSH1 0x02 000014cd: EXP 000014ce: SUB 000014cf: DUP12 000014d0: DUP2 000014d1: AND 000014d2: PUSH1 0x00 000014d4: SWAP1 000014d5: DUP2 000014d6: MSTORE 000014d7: PUSH1 0x06 000014d9: PUSH1 0x20 000014db: DUP2 000014dc: DUP2 000014dd: MSTORE 000014de: PUSH1 0x40 000014e0: DUP1 000014e1: DUP5 000014e2: KECCAK256 000014e3: PUSH1 0x01 000014e5: SLOAD 000014e6: DUP7 000014e7: AND 000014e8: DUP6 000014e9: MSTORE 000014ea: DUP3 000014eb: MSTORE 000014ec: DUP1 000014ed: DUP5 000014ee: KECCAK256 000014ef: SWAP6 000014f0: SWAP1 000014f1: SWAP6 000014f2: SSTORE 000014f3: DUP13 000014f4: DUP5 000014f5: AND 000014f6: DUP4 000014f7: MSTORE 000014f8: SWAP1 000014f9: DUP2 000014fa: MSTORE 000014fb: DUP4 000014fc: DUP3 000014fd: KECCAK256 000014fe: SWAP3 000014ff: DUP11 00001500: AND 00001501: DUP3 00001502: MSTORE 00001503: SWAP2 00001504: SWAP1 00001505: SWAP2 00001506: MSTORE 00001507: KECCAK256 00001508: SLOAD 00001509: PUSH2 0x151d 0000150c: SWAP1 0000150d: DUP11 0000150e: PUSH2 0x155f 00001511: DUP11 00001512: DUP10 00001513: PUSH2 0x0984 00001516: JUMP 00001517: JUMPDEST 00001518: DUP6 00001519: PUSH2 0x0e36 0000151c: JUMP 0000151d: JUMPDEST 0000151e: PUSH1 0x01 00001520: PUSH1 0xa0 00001522: PUSH1 0x02 00001524: EXP 00001525: SUB 00001526: DUP10 00001527: DUP2 00001528: AND 00001529: PUSH1 0x00 0000152b: SWAP1 0000152c: DUP2 0000152d: MSTORE 0000152e: PUSH1 0x06 00001530: PUSH1 0x20 00001532: SWAP1 00001533: DUP2 00001534: MSTORE 00001535: PUSH1 0x40 00001537: DUP1 00001538: DUP4 00001539: KECCAK256 0000153a: DUP12 0000153b: DUP6 0000153c: AND 0000153d: DUP5 0000153e: MSTORE 0000153f: SWAP1 00001540: SWAP2 00001541: MSTORE 00001542: DUP1 00001543: DUP3 00001544: KECCAK256 00001545: SWAP4 00001546: SWAP1 00001547: SWAP4 00001548: SSTORE 00001549: CALLER 0000154a: SWAP1 0000154b: SWAP2 0000154c: AND 0000154d: DUP2 0000154e: MSTORE 0000154f: KECCAK256 00001550: SLOAD 00001551: PUSH2 0x156b 00001554: SWAP1 00001555: DUP11 00001556: PUSH2 0x159e 00001559: DUP11 0000155a: DUP10 0000155b: PUSH2 0x0984 0000155e: JUMP 0000155f: JUMPDEST 00001560: DUP2 00001561: ISZERO 00001562: PUSH2 0x0002 00001565: JUMPI 00001566: DIV 00001567: PUSH2 0x0e36 0000156a: JUMP 0000156b: JUMPDEST 0000156c: PUSH1 0x01 0000156e: PUSH1 0xa0 00001570: PUSH1 0x02 00001572: EXP 00001573: SUB 00001574: DUP10 00001575: DUP2 00001576: AND 00001577: PUSH1 0x00 00001579: SWAP1 0000157a: DUP2 0000157b: MSTORE 0000157c: PUSH1 0x06 0000157e: PUSH1 0x20 00001580: SWAP1 00001581: DUP2 00001582: MSTORE 00001583: PUSH1 0x40 00001585: DUP1 00001586: DUP4 00001587: KECCAK256 00001588: CALLER 00001589: SWAP1 0000158a: SWAP5 0000158b: AND 0000158c: DUP4 0000158d: MSTORE 0000158e: SWAP3 0000158f: SWAP1 00001590: MSTORE 00001591: KECCAK256 00001592: SSTORE 00001593: POP 00001594: POP 00001595: POP 00001596: POP 00001597: POP 00001598: POP 00001599: POP 0000159a: POP 0000159b: POP 0000159c: POP 0000159d: JUMP 0000159e: JUMPDEST 0000159f: DUP2 000015a0: ISZERO 000015a1: PUSH2 0x0002 000015a4: JUMPI 000015a5: DIV 000015a6: PUSH2 0x054e 000015a9: JUMP 000015aa: JUMPDEST 000015ab: POP 000015ac: DUP1 000015ad: DUP3 000015ae: SUB 000015af: PUSH2 0x05de 000015b2: JUMP 000015b3: SLOAD 000015b4: UNKNOWN(0xCD) 000015b5: UNKNOWN(0xD3) 000015b6: PUSH10 0xe4e8a8515e52ca72ec81 000015c1: PUSH13 0x2101831ad1f18bf44102ed1714 000015cf: MSIZE 000015d0: UNKNOWN(0xC9) 000015d1: UNKNOWN(0xB4) 000015d2: UNKNOWN(0xF8)
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | codex | Phantom ERC20 deposits enable trading fake balances for real assets | 85 | no | — |
viewevidence_json{
"evidence": "`depositToken` trusts the token\u2019s return value and credits the requested amount without verifying actual token receipt; trades only move internal balances, so fake deposits can be swapped for real assets.",
"locations": [
"contracts/Contract.sol:227",
"contracts/Contract.sol:230",
"contracts/Contract.sol:231",
"contracts/Contract.sol:254",
"contracts/Contract.sol:268",
"contracts/Contract.sol:277",
"contracts/Contract.sol:281"
],
"recommendation": "Require proof of actual token receipt by checking contract token balance before/after `transferFrom` and crediting only the delta, or enforce a strict token whitelist of known\u2011good ERC20s.",
"exploit_scenario": "1) Attacker deploys a malicious ERC20 that returns `true` for `transferFrom`/`transfer` without moving balances. 2) Attacker calls `depositToken(malToken, X)`; EtherDelta credits `tokens[malToken][attacker] += X` even though no tokens arrived. 3) A victim places an order to buy `malToken` with ETH/valuable tokens. 4) Attacker fills the order via `trade`, which only moves internal balances; victim\u2019s real asset balance decreases while attacker\u2019s real asset balance increases. 5) Attacker withdraws ETH/real tokens via `withdraw`/`withdrawToken`. Victim withdrawing `malToken` receives nothing."
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | yes | yes |
viewtrace_id: 0xccda7d0ca6898dd5898335f03c06e091e5fb47256eb58911370764a344878430
call_targets:
0x0000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000002, 0x373c55c277b866a69dc047cad488154ab9759466
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0xccda7d0ca6898dd5898335f03c06e091e5fb47256eb58911370764a344878430",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000000000000000000000000000000000001",
"0x0000000000000000000000000000000000000002",
"0x373c55c277b866a69dc047cad488154ab9759466"
],
"matched_probe": null,
"target_varies": true,
"classification": "target_varies"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x0a19b14a",
"selector": "0x0a19b14a",
"calldata_variants": [
"0x0a19b14a",
"0x0a19b14a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0b927666",
"selector": "0x0b927666",
"calldata_variants": [
"0x0b927666",
"0x0b9276660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x19774d43",
"selector": "0x19774d43",
"calldata_variants": [
"0x19774d43",
"0x19774d430000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x278b8c0e",
"selector": "0x278b8c0e",
"calldata_variants": [
"0x278b8c0e",
"0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e1a7d4d",
"selector": "0x2e1a7d4d",
"calldata_variants": [
"0x2e1a7d4d",
"0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x338b5dea",
"selector": "0x338b5dea",
"calldata_variants": [
"0x338b5dea",
"0x338b5dea0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x46be96c3",
"selector": "0x46be96c3",
"calldata_variants": [
"0x46be96c3",
"0x46be96c30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x508493bc",
"selector": "0x508493bc",
"calldata_variants": [
"0x508493bc",
"0x508493bc0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 738,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1716,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1867,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 12,
"guards_detected": [],
"untrusted_call_count": 12
}
|
| high | other | detector | ETH value transfer possible | 55 | yes | yes |
viewtrace_id: 0xccda7d0ca6898dd5898335f03c06e091e5fb47256eb58911370764a344878430
call_targets:
0x0000000000000000000000000000000000000001, 0x0000000000000000000000000000000000000002, 0x373c55c277b866a69dc047cad488154ab9759466
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0xccda7d0ca6898dd5898335f03c06e091e5fb47256eb58911370764a344878430",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000000000000000000000000000000000001",
"0x0000000000000000000000000000000000000002",
"0x373c55c277b866a69dc047cad488154ab9759466"
],
"matched_probe": null,
"target_varies": true,
"classification": "target_varies"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x0a19b14a",
"selector": "0x0a19b14a",
"calldata_variants": [
"0x0a19b14a",
"0x0a19b14a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0b927666",
"selector": "0x0b927666",
"calldata_variants": [
"0x0b927666",
"0x0b9276660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x19774d43",
"selector": "0x19774d43",
"calldata_variants": [
"0x19774d43",
"0x19774d430000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x278b8c0e",
"selector": "0x278b8c0e",
"calldata_variants": [
"0x278b8c0e",
"0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e1a7d4d",
"selector": "0x2e1a7d4d",
"calldata_variants": [
"0x2e1a7d4d",
"0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x338b5dea",
"selector": "0x338b5dea",
"calldata_variants": [
"0x338b5dea",
"0x338b5dea0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x46be96c3",
"selector": "0x46be96c3",
"calldata_variants": [
"0x46be96c3",
"0x46be96c30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x508493bc",
"selector": "0x508493bc",
"calldata_variants": [
"0x508493bc",
"0x508493bc0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 738,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1716,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1867,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 12,
"guards_detected": []
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 12
}
|