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

Analysis Run

019ba9a5-c764-7202-b5cc-8890a9ee60f9

complete
Chain ID
1
Address
Block Number
Created
Sat, Jan 10, 2026 8:42 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
2
Validated
2
Source
Bytecode only
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
crit 0 high 2 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
37367 artifact.fetch complete 1 / 3 3 months ago
37368 proxy.resolve complete 1 / 3 3 months ago
37369 tool.cast_disasm complete 1 / 3 3 months ago
37370 analysis.bundle complete 1 / 3 3 months ago
37371 capability.graph complete 1 / 3 3 months ago
37372 detector.run complete 1 / 3 3 months ago
37373 validation.fork complete 1 / 3 3 months ago
37675 report.consolidate complete 1 / 6 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: no
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
3
No findings?
no
Summary
Detected dynamic external CALLs (some with ETH value) and a reachable CREATE path; bytecode shows no proxy/delegatecall usage, but guard coverage is unclear from artifacts.
View stdout
{"no_findings":false,"summary":"Detected dynamic external CALLs (some with ETH value) and a reachable CREATE path; bytecode shows no proxy/delegatecall usage, but guard coverage is unclear from artifacts.","findings":[{"severity":"medium","category":"access_control","title":"Dynamic external CALLs with ETH value and untrusted targets","exploit_scenario":"If any public or weakly guarded path lets an attacker influence the CALL target/value (via calldata or mutable storage), they can direct the contract to call arbitrary contracts and transfer ETH. That can drain funds or enable reentrancy into state-changing paths. Guard detection is empty in the artifact, so protection cannot be confirmed from bytecode alone.","recommendation":"Restrict these CALL paths to authorized roles or a strict allowlist, validate target/value bounds, and apply checks-effects-interactions or a reentrancy guard around external calls.","evidence":"BYTECODE_BUNDLE.json detector_findings[0]/[1] confirm 8 CALLs with computed target/value; validation shows target_varies with call_targets including 0x5d1b26d762b1973b8b7c2bfb196ba2ed969daf18, 0x9f6e731911af889a2b520ebecacbe764c5d59255, 0xe4d58f4645df8b865dbf2dae788836aedbbd2f63 and ETH value nonzero; callsites list returndata_checked:null and guards_detected:[] for all calls.","locations":["pc:0x9a4","pc:0xbb0","pc:0xf71","pc:0x1065","pc:0x15cd","pc:0x203f","pc:0x20c7","pc:0x2185"]},{"severity":"low","category":"other","title":"Low-level CALL return data not validated","exploit_scenario":"If these CALLs interact with tokens or protocols that signal failure via return values instead of reverts, the contract may treat a failed operation as successful, causing accounting or state inconsistencies. This is especially risky for ERC20s that return false rather than reverting.","recommendation":"Decode and validate returndata (e.g., require empty or true) or use safe call wrappers that enforce expected return semantics.","evidence":"callsites show returndata_checked:null for all CALLs at pcs 0x9a4/0xbb0/0xf71/0x1065/0x15cd/0x203f/0x20c7/0x2185; disassembly around these pcs shows CALL followed by success check and POPs without RETURNDATASIZE/RETURNDATACOPY usage.","locations":["pc:0x9a4","pc:0xbb0","pc:0xf71","pc:0x1065","pc:0x15cd","pc:0x203f","pc:0x20c7","pc:0x2185"]},{"severity":"low","category":"other","title":"CREATE reachable (contract deployment capability)","exploit_scenario":"If an untrusted caller can reach this path, they could trigger contract creation repeatedly, potentially causing gas griefing or unexpected storage updates tied to deployment results. Access control for this path is unclear from bytecode alone.","recommendation":"Restrict CREATE paths to privileged roles or one-time initialization, and validate/record deployed addresses explicitly.","evidence":"detector_findings[2] reports create_count=1 and CREATE opcode is present at pc 0x2520 in runtime bytecode.","locations":["pc:0x2520"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-kccghg1i
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: xhigh
reasoning summaries: auto
session id: 019ba9a8-feb3-7c81-8a60-82634566f011
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.

Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".

Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers

thinking
**Preparing to read BYTECODE_BUNDLE.json**
exec
/bin/bash -lc ls in /tmp/codex-kccghg1i succeeded in 7ms:
BYTECODE_BUNDLE.json
codex-output-schema.json

thinking
**Reading file contents**
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-kccghg1i succeeded in 9ms:
{
  "analysis_artifact": {
    "address": "0x5d1b26d762b1973b8b7c2bfb196ba2ed969daf18",
    "artifact_hash": "0xfc75e3e17268a437053d769710b02b3a4605f6c359d656b898f361aa6f6d2605",
    "artifact_json": {
      "auth": {
        "guards": []
      },
      "basic_blocks": [
        {
          "end_pc": 12,
          "hash": "0x0ff5a9f4de2706b20a804bed5cc46869765d8dccda5ddd08395233ecd6dd060d",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "CALLDATASIZE",
            "LT",
            "PUSH2",

thinking
**Searching for key terms with ripgrep**
exec
/bin/bash -lc 'rg -n "evidence_bundle|callsites|storage_slots|storage|proxy|delegatecall|reentrancy|guard" BYTECODE_BUNDLE.json' in /tmp/codex-kccghg1i succeeded in 49ms:
7:        "guards": []
10172:      "callsites": [
13303:            "guards": []
13309:            "delegatecall": 0,
13313:          "storage": {
13852:            "guards": []
13858:            "delegatecall": 0,
13862:          "storage": {
14401:            "guards": []
14407:            "delegatecall": 0,
14411:          "storage": {
14950:            "guards": []
14956:            "delegatecall": 0,
14960:          "storage": {
15499:            "guards": []
15505:            "delegatecall": 0,
15509:          "storage": {
16048:            "guards": []
16054:            "delegatecall": 0,
16058:          "storage": {

thinking
**Inspecting callsites and storage functions**
exec
/bin/bash -lc "sed -n '10140,10380p' BYTECODE_BUNDLE.json" in /tmp/codex-kccghg1i succeeded in 39ms:
            "MSTORE8",
            "SUB",
            "STOP"
          ],
          "start_pc": 9739
        },
        {
          "end_pc": 9785,
          "hash": "0x785b55f4c72917272d979430b687853ab0a3e978f977b5367356d535c87537fe",
          "opcodes": [
            "OP_29",
            "OP_A1",
            "PUSH6",
            "SHA3",
            "OP_4A",
            "OP_C8",
            "PUSH10",
            "OP_C5",
            "ADD",
            "MSIZE",

thinking
**Inspecting storage summary near line 38600**
exec
/bin/bash -lc "sed -n '38480,38740p' BYTECODE_BUNDLE.json" in /tmp/codex-kccghg1i succeeded in 13ms:
              },
              {
                "op": "SLOAD",
                "pc": 7385,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
              },
              {
                "op": "SLOAD",
                "pc": 7565,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
              },
              {
                "op": "SLOAD",
                "pc": 7823,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
              },
              {
                "op": "SLOAD",
                "pc": 8115,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000002"

thinking
**Examining storage list and access control**
exec
/bin/bash -lc "sed -n '39140,39230p' BYTECODE_BUNDLE.json" in /tmp/codex-kccghg1i succeeded in 11ms:
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000011"
          },
          {
            "op": "SLOAD",
            "pc": 8871,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
          }
        ],
        "writes": 76
      },
      "version": "analysis_artifact_v1"
    },
    "block_number": null,
    "chain_id": 1,
    "codehash": "0x78d351b540c5c7ffcec07b31c6865cba92f3e3a97d0758c3c1681707fefd0e07",
    "created_at": "2026-01-10T20:44:59.000000Z",
    "id": 761,
    "updated_at": "2026-01-10T20:44:59.000000Z",
    "version": "analysis_artifact_v1"
  },

thinking
**Analyzing bytecode and evidence structures**
exec
/bin/bash -lc 'rg -n "function_|summary|summaries|fn_summaries|function_analysis|entrypoints|reentrancy|guards_detected|external_calls|access" BYTECODE_BUNDLE.json' in /tmp/codex-kccghg1i succeeded in 7ms:
13114:      "function_entries": [
46652:        "guards_detected": [],
46706:        "guards_detected": []
46760:  "heuristics_summary": {

thinking
**Checking function_entries**
exec
/bin/bash -lc "sed -n '13080,13280p' BYTECODE_BUNDLE.json" in /tmp/codex-kccghg1i succeeded in 8ms:
        },
        {
          "from": "bb:9494",
          "to": "bb:9512",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:9516",
          "to": "bb:8971",
          "type": "control_flow"
        },
        {
          "from": "bb:9551",
          "to": "bb:9562",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:9580",
          "to": "bb:9592",
          "type": "control_flow_fallthrough"

thinking
**Examining bytecode callsites for risks**

I'm noticing these huge entry_pc numbers might be hashed or jump targets, so direct mapping is tricky. I see strong access control hints via storage slot checks for owner, but no explicit guard detections. There are several external calls with value at key bytecode PCs that could pose reentrancy risks, especially if state changes occur after calls. I plan to search the analysis artifact's basic blocks by start_pc near those callsites to find opcode snippets and understand the context better. This could help reveal whether access controls guard these external calls or if risks remain.
exec
/bin/bash -lc 'rg -n "start_pc": 2468 BYTECODE_BUNDLE.json' in /tmp/codex-kccghg1i exited 2 in 8ms:
rg: 2468: No such file or directory (os error 2)

thinking
**Clarifying ripgrep pattern usage**
exec
/bin/bash -lc "rg -n \"\\\"start_pc\\\": 2468\" BYTECODE_BUNDLE.json" in /tmp/codex-kccghg1i exited 1 in 32ms:


thinking
**Searching for specific program counter value**
exec
/bin/bash -lc "rg -n \"\\\"pc\\\": 2468\" BYTECODE_BUNDLE.json" in /tmp/codex-kccghg1i succeeded in 7ms:
10175:          "pc": 2468,
46292:          "pc": 2468,
46632:            "pc": 2468,
46686:            "pc": 2468,

thinking
**Inspecting occurrences near 46292**
exec
/bin/bash -lc "sed -n '46240,46340p' BYTECODE_BUNDLE.json" in /tmp/codex-kccghg1i succeeded in 10ms:
        {
          "end_pc": 9703,
          "hash": "0xf46bed9264a21687648020c6988e223b41bff6621a88ecbe0b5c0c72d62da50c",
          "id": "bb:9663",
          "start_pc": 9663,
          "type": "basic_block"
        },
        {
          "end_pc": 9708,
          "hash": "0x98509249b9424ca53ec00f4aa1a3d873dfa20364d0153b0bbca553e17c18dcb3",
          "id": "bb:9704",
          "start_pc": 9704,
          "type": "basic_block"
        },
        {
          "end_pc": 9709,
          "hash": "0x6046c3ef2232f05e85b54650fb4498a09ffd78e9c505f04297a7fcb4c86108d5",
          "id": "bb:9709",
          "start_pc": 9709,
          "type": "basic_block"

thinking
**Investigating function-level summaries**
exec
/bin/bash -lc "sed -n '13280,13440p' BYTECODE_BUNDLE.json" in /tmp/codex-kccghg1i succeeded in 10ms:
          "entry_pc": 3904234783,
          "selector": "0xe230d25e"
        },
        {
          "entry_pc": 4076725131,
          "selector": "0xe8b5e51f"
        },
        {
          "entry_pc": 4288785780,
          "selector": "0xf2fde38b"
        },
        {
          "entry_pc": 6,
          "selector": "0xffa1ad74"
        },
        {
          "entry_pc": null,
          "selector": "0x38cc4831"
        }
      ],

thinking
**Analyzing bytecode for call and create patterns**

I'm investigating the bytecode and analysis artifacts to confirm function details, including calls, creates, and potential vulnerabilities like reentrancy. I'll parse JSON with Python to match program counters to opcode blocks and clarify state updates after calls. This helps me verify findings such as untrusted calls, value transfers, and reachable CREATE instructions.
exec
/bin/bash -lc "python - <<'PY'
import json
import bisect

pcs=[2468,2992,3953,4197,5581,8255,8391,8581]
with open('BYTECODE_BUNDLE.json','r') as f:
    data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
# find blocks containing each pc
for pc in pcs:
    blk=None
    for b in blocks:
        if b['start_pc']<=pc<=b['end_pc']:
            blk=b
            break
    print('pc',pc,'block',blk['start_pc'] if blk else None, '-', blk['end_pc'] if blk else None)
    if blk:
        print('opcodes:', blk['opcodes'])
        print('---')
PY" in /tmp/codex-kccghg1i succeeded in 46ms:
pc 2468 block 2462 - 2474
opcodes: ['JUMPDEST', 'PUSH2', 'GAS', 'SUB', 'CALL', 'ISZERO', 'ISZERO', 'PUSH2', 'JUMPI']
---
pc 2992 block 2986 - 2998
opcodes: ['JUMPDEST', 'PUSH2', 'GAS', 'SUB', 'CALL', 'ISZERO', 'ISZERO', 'PUSH2', 'JUMPI']
---
pc 3953 block 3947 - 3959
opcodes: ['JUMPDEST', 'PUSH2', 'GAS', 'SUB', 'CALL', 'ISZERO', 'ISZERO', 'PUSH2', 'JUMPI']
---
pc 4197 block 4191 - 4203
opcodes: ['JUMPDEST', 'PUSH2', 'GAS', 'SUB', 'CALL', 'ISZERO', 'ISZERO', 'PUSH2', 'JUMPI']
---
pc 5581 block 5548 - 5592
opcodes: ['JUMPDEST', 'PUSH1', 'PUSH1', 'PUSH1', 'EXP', 'SUB', 'OP_82', 'AND', 'OP_81', 'ISZERO', 'PUSH2', 'MUL', 'OP_82', 'PUSH1', 'MLOAD', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_85', 'OP_88', 'OP_88', 'CALL', 'OP_93', 'POP', 'POP', 'POP', 'POP', 'ISZERO', 'ISZERO', 'PUSH2', 'JUMPI']
---
pc 8255 block 8249 - 8261
opcodes: ['JUMPDEST', 'PUSH2', 'GAS', 'SUB', 'CALL', 'ISZERO', 'ISZERO', 'PUSH2', 'JUMPI']
---
pc 8391 block 8385 - 8397
opcodes: ['JUMPDEST', 'PUSH2', 'GAS', 'SUB', 'CALL', 'ISZERO', 'ISZERO', 'PUSH2', 'JUMPI']

thinking
**Analyzing callsite control flow**

I’m examining the call instruction blocks, focusing on success checks via double ISZERO. Since target and value appear dynamic, I want to parse the runtime bytecode with a Python disassembler to map opcodes to PCs and understand the preconditions, especially owner checks or storage loads, around these calls. This should give me clearer insight into the callsite context.
exec
/bin/bash -lc "python - <<'PY'
import json

# simple EVM disassembler for runtime bytecode
opcodes = {
    0x00: 'STOP', 0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
    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',
    0x20:'SHA3',
    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',
    0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
    0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
    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',
    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',
    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',
    0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
    0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
}

with open('BYTECODE_BUNDLE.json','r') as f:
    data=json.load(f)
code_hex=data['artifact']['runtime_bytecode']['full']
if code_hex.startswith('0x'):
    code_hex=code_hex[2:]
code=bytes.fromhex(code_hex)

# disassemble around call pcs
call_pcs={2468,2992,3953,4197,5581,8255,8391,8581}
window=20

instrs=[]
pc=0
while pc < len(code):
    op=code[pc]
    opname=opcodes.get(op, f'OP_{op:02x}')
    start_pc=pc
    pc+=1
    push_data=b''
    if 0x60 <= op <= 0x7f:
        push_len=op-0x5f
        push_data=code[pc:pc+push_len]
        pc+=push_len
        opname=f'{opname} 0x{push_data.hex()}'
    instrs.append((start_pc, opname))

# create mapping from pc to index
pc_to_idx={pc:i for i,(pc,_) in enumerate(instrs)}

for target_pc in sorted(call_pcs):
    if target_pc not in pc_to_idx:
        # some PCs may align to push data? find nearest prior
        # find largest pc <= target_pc
        pcs=[pc for pc,_ in instrs]
        import bisect
        idx=bisect.bisect_right(pcs,target_pc)-1
    else:
        idx=pc_to_idx[target_pc]
    start=max(0, idx-window)
    end=min(len(instrs), idx+window+1)
    print(f\"\\n=== Context around pc {target_pc} ===\")
    for pc,opname in instrs[start:end]:
        marker='>>' if pc==target_pc else '  '
        print(f\"{marker} {pc:05d}: {opname}\")
PY" in /tmp/codex-kccghg1i succeeded in 79ms:

=== Context around pc 2468 ===
   02442: MLOAD
   02443: DUP1
   02444: DUP4
   02445: SUB
   02446: DUP2
   02447: PUSH1 0x00
   02449: DUP8
   02450: DUP1
   02451: EXTCODESIZE
   02452: ISZERO
   02453: ISZERO
   02454: PUSH2 0x099e
   02457: JUMPI
   02458: PUSH1 0x00
   02460: DUP1
   02461: REVERT
   02462: JUMPDEST
   02463: PUSH2 0x02c6

thinking
**Analyzing external call patterns and risks**

I’m looking closely at how external calls are made after EXTCODESIZE checks, noting some calls skip RETURNDATASIZE checks and just revert on failure. I want to trace how call targets and values get set by inspecting surrounding stack and opcode context to see if calls are hardcoded or dynamic. I’m also considering reentrancy risks from unguarded calls with ETH value and planning to locate CREATE opcode positions next to assess contract creation safety.
exec
/bin/bash -lc "python - <<'PY'
import json

opcodes = {
    0xf0:'CREATE',0xf5:'CREATE2'
}
with open('BYTECODE_BUNDLE.json','r') as f:
    data=json.load(f)
code_hex=data['artifact']['runtime_bytecode']['full']
if code_hex.startswith('0x'):
    code_hex=code_hex[2:]
code=bytes.fromhex(code_hex)

pc=0
pcs=[]
while pc < len(code):
    op=code[pc]
    if op in opcodes:
        pcs.append((pc, opcodes[op]))
    pc+=1
    if 0x60 <= op <= 0x7f:
        pc += op-0x5f

print(pcs)
PY" in /tmp/codex-kccghg1i succeeded in 51ms:
[(9504, 'CREATE')]

thinking
**Inspecting code around address 9504**
exec
/bin/bash -lc "python - <<'PY'
import json

opcodes = {
    0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
    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',
    0x20:'SHA3',
    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',
    0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
    0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
    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',
    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',
    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',
    0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
    0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
}

with open('BYTECODE_BUNDLE.json','r') as f:
    data=json.load(f)
code_hex=data['artifact']['runtime_bytecode']['full']
if code_hex.startswith('0x'):
    code_hex=code_hex[2:]
code=bytes.fromhex(code_hex)

# disassemble context around pc 9504
instrs=[]
pc=0
while pc < len(code):
    op=code[pc]
    opname=opcodes.get(op, f'OP_{op:02x}')
    start_pc=pc
    pc+=1
    if 0x60 <= op <= 0x7f:
        push_len=op-0x5f
        push_data=code[pc:pc+push_len]
        pc+=push_len
        opname=f'{opname} 0x{push_data.hex()}'
    instrs.append((start_pc, opname))

pc_to_idx={pc:i for i,(pc,_) in enumerate(instrs)}

for target_pc in [9504]:
    idx=pc_to_idx[target_pc]
    start=max(0, idx-30)
    end=min(len(instrs), idx+30)
    print(f\"\\n=== Context around pc {target_pc} ===\")
    for pc,opname in instrs[start:end]:
        marker='>>' if pc==target_pc else '  '
        print(f\"{marker} {pc:05d}: {opname}\")
PY" in /tmp/codex-kccghg1i succeeded in 43ms:

=== Context around pc 9504 ===
   09430: PUSH1 0x40
   09432: DUP1
   09433: MLOAD
   09434: SWAP1
   09435: DUP2
   09436: ADD
   09437: PUSH1 0x40
   09439: MSTORE
   09440: PUSH1 0x0c
   09442: DUP2
   09443: MSTORE
   09444: PUSH32 0x6574685f726f707374656e330000000000000000000000000000000000000000
   09477: PUSH1 0x20
   09479: DUP3
   09480: ADD
   09481: MSTORE
   09482: PUSH2 0x252c
   09485: JUMP

thinking
**Analyzing contract creation and access control**
exec
/bin/bash -lc "python - <<'PY'
import json

opcodes = {
    0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
    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',
    0x20:'SHA3',
    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',
    0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
    0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
    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',
    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',
    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',
    0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
    0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
}

with open('BYTECODE_BUNDLE.json','r') as f:
    data=json.load(f)
code_hex=data['artifact']['runtime_bytecode']['full']
if code_hex.startswith('0x'):
    code_hex=code_hex[2:]
code=bytes.fromhex(code_hex)

instrs=[]
pc=0
while pc < len(code):
    op=code[pc]
    opname=opcodes.get(op, f'OP_{op:02x}')
    start_pc=pc
    pc+=1
    if 0x60 <= op <= 0x7f:
        push_len=op-0x5f
        push_data=code[pc:pc+push_len]
        pc+=push_len
        opname=f'{opname} 0x{push_data.hex()}'
    instrs.append((start_pc, opname))

# print a larger context around create
start=9400
end=9550
for pc,opname in instrs:
    if start <= pc <= end:
        marker='>>' if pc==9504 else '  '
        print(f\"{marker} {pc:05d}: {opname}\")
PY" in /tmp/codex-kccghg1i succeeded in 44ms:
   09400: ISZERO
   09401: PUSH2 0x250e
   09404: JUMPI
   09405: POP
   09406: PUSH20 0x11f3514e4605b14daa29eb17e785f8efb9a14aae
   09427: PUSH2 0x2492
   09430: PUSH1 0x40
   09432: DUP1
   09433: MLOAD
   09434: SWAP1
   09435: DUP2
   09436: ADD
   09437: PUSH1 0x40
   09439: MSTORE
   09440: PUSH1 0x0c
   09442: DUP2
   09443: MSTORE
   09444: PUSH32 0x6574685f726f707374656e330000000000000000000000000000000000000000
   09477: PUSH1 0x20
   09479: DUP3

thinking
**Analyzing external calls and potential risks**

I'm examining CALL operations with computed target addresses checked only by EXTCODESIZE, indicating calls to contracts but no clear access control. The call targets vary and include hard-coded and storage-derived addresses, suggesting dynamic, possibly admin-set or user-influenced targets. This poses possible reentrancy or fund-drain risks if attacker controls these values. Also, return data isn't verified beyond CALL success, which could lead to undetected failures, especially in token transfers. I’m considering storage analysis next to identify where these target addresses come from and whether they’re controllable.
Reconnecting... 1/5

thinking
**Investigating access control around create**
exec
/bin/bash -lc "python - <<'PY'
import json

opcodes = {
    0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
    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',
    0x20:'SHA3',
    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',
    0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
    0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
    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',
    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',
    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',
    0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
    0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
}

with open('BYTECODE_BUNDLE.json','r') as f:
    data=json.load(f)
code_hex=data['artifact']['runtime_bytecode']['full']
if code_hex.startswith('0x'):
    code_hex=code_hex[2:]
code=bytes.fromhex(code_hex)

instrs=[]
pc=0
while pc < len(code):
    op=code[pc]
    opname=opcodes.get(op, f'OP_{op:02x}')
    start_pc=pc
    pc+=1
    if 0x60 <= op <= 0x7f:
        push_len=op-0x5f
        push_data=code[pc:pc+push_len]
        pc+=push_len
        opname=f'{opname} 0x{push_data.hex()}'
    instrs.append((start_pc, opname))

start=9300
end=9410
for pc,opname in instrs:
    if start <= pc <= end:
        print(f\"{pc:05d}: {opname}\")
PY" in /tmp/codex-kccghg1i succeeded in 47ms:
09303: PUSH2 0x2492
09306: PUSH1 0x40
09308: DUP1
09309: MLOAD
09310: SWAP1
09311: DUP2
09312: ADD
09313: PUSH1 0x40
09315: MSTORE
09316: PUSH1 0x0b
09318: DUP2
09319: MSTORE
09320: PUSH32 0x6574685f6d61696e6e6574000000000000000000000000000000000000000000
09353: PUSH1 0x20
09355: DUP3
09356: ADD
09357: MSTORE
09358: PUSH2 0x252c
09361: JUMP
09362: JUMPDEST

thinking
**Analyzing external calls and contract risks**
exec
/bin/bash -lc "python - <<'PY'
import json

opcodes = {
    0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
    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',
    0x20:'SHA3',
    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',
    0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
    0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
    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',
    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',
    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',
    0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
    0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
}

with open('BYTECODE_BUNDLE.json','r') as f:
    data=json.load(f)
code_hex=data['artifact']['runtime_bytecode']['full']
if code_hex.startswith('0x'):
    code_hex=code_hex[2:]
code=bytes.fromhex(code_hex)

instrs=[]
pc=0
while pc < len(code):
    op=code[pc]
    opname=opcodes.get(op, f'OP_{op:02x}')
    start_pc=pc
    pc+=1
    if 0x60 <= op <= 0x7f:
        push_len=op-0x5f
        pc+=push_len
    instrs.append((start_pc, opname))

pc_to_idx={pc:i for i,(pc,_) in enumerate(instrs)}

call_pcs=[2468,2992,3953,4197,5581,8255,8391,8581]
for call_pc in call_pcs:
    idx=pc_to_idx.get(call_pc)
    if idx is None:
        continue
    # look 40 instructions before and after for SSTORE
    window=80
    around=instrs[max(0,idx-window):min(len(instrs),idx+window)]
    sstores=[pc for pc,op in around if op=='SSTORE']
    print('call_pc',call_pc,'SSTORE nearby',sstores[:5], 'count',len(sstores))
PY" in /tmp/codex-kccghg1i succeeded in 60ms:
call_pc 2468 SSTORE nearby [] count 0
call_pc 2992 SSTORE nearby [3062] count 1
call_pc 3953 SSTORE nearby [] count 0
call_pc 4197 SSTORE nearby [4300] count 1
call_pc 5581 SSTORE nearby [5733, 5738] count 2
call_pc 8255 SSTORE nearby [8154] count 1
call_pc 8391 SSTORE nearby [8474] count 1
call_pc 8581 SSTORE nearby [8474] count 1

thinking
**Analyzing SSTORE relative to CALL instructions**
exec
/bin/bash -lc "python - <<'PY'
import json

opcodes = {
    0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
    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',
    0x20:'SHA3',
    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',
    0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
    0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
    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',
    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',
    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',
    0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
    0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
}

with open('BYTECODE_BUNDLE.json','r') as f:
    data=json.load(f)
code_hex=data['artifact']['runtime_bytecode']['full']
if code_hex.startswith('0x'):
    code_hex=code_hex[2:]
code=bytes.fromhex(code_hex)

instrs=[]
pc=0
while pc < len(code):
    op=code[pc]
    opname=opcodes.get(op, f'OP_{op:02x}')
    start_pc=pc
    pc+=1
    if 0x60 <= op <= 0x7f:
        push_len=op-0x5f
        push_data=code[pc:pc+push_len]
        pc+=push_len
        opname=f'{opname} 0x{push_data.hex()}'
    instrs.append((start_pc, opname))

pc_to_idx={pc:i for i,(pc,_) in enumerate(instrs)}

call_pcs=[2992,4197,5581,8255,8391,8581]
for call_pc in call_pcs:
    idx=pc_to_idx[call_pc]
    start=max(0, idx-40)
    end=min(len(instrs), idx+80)
    print('\\n=== call pc',call_pc,'===')
    for pc,opname in instrs[start:end]:
        marker='>>' if pc==call_pc else '  '
        if opname=='SSTORE':
            marker='**' if pc"'!=call_pc else '"'>>'
        print(f\"{marker} {pc:05d}: {opname}\")
PY" in /tmp/codex-kccghg1i succeeded in 59ms:

=== call pc 2992 ===
   02941: DUP4
   02942: SIGNEXTEND
   02943: SWAP1
   02944: SWAP3
   02945: SIGNEXTEND
   02946: PUSH1 0x24
   02948: DUP3
   02949: ADD
   02950: MSTORE
   02951: PUSH1 0x44
   02953: DUP2
   02954: ADD
   02955: SWAP2
   02956: SWAP1
   02957: SWAP2
   02958: MSTORE
   02959: PUSH1 0x64
   02961: ADD

thinking
**Analyzing call and state update relationships**
exec
/bin/bash -lc "python - <<'PY'
pcs=[2468,2992,3953,4197,5581,8255,8391,8581,9504]
for pc in pcs:
    print(pc, hex(pc))
PY" in /tmp/codex-kccghg1i succeeded in 28ms:
2468 0x9a4
2992 0xbb0
3953 0xf71
4197 0x1065
5581 0x15cd
8255 0x203f
8391 0x20c7
8581 0x2185
9504 0x2520

thinking
**Analyzing untrusted external calls and create operations**

I'm evaluating callsites flagged as untrusted external calls with possible ETH transfers, considering if to merge these findings or keep them separate for clarity. I'm exploring whether the calls have return data checks and if access control is missing, which affects severity. I'm trying to map specific calls to functions by analyzing jump tables and disassembly, though this is tricky given runtime bytecode. I also plan to include evidence details from detector findings about call counts, call target variability, and create operations. The scenario will describe risks from untrusted calls allowing arbitrary calls with ETH and potential unwanted contract deployment, while noting some uncertainties around access control and deployment effects.
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
    data=json.load(f)
code_hex=data['artifact']['runtime_bytecode']['full'][2:]
code=bytes.fromhex(code_hex)
origin_pcs=[]
pc=0
while pc < len(code):
    op=code[pc]
    if op==0x32: # ORIGIN
        origin_pcs.append(pc)
    pc+=1
    if 0x60 <= op <= 0x7f:
        pc += op-0x5f
print('ORIGIN pcs',origin_pcs)
PY" in /tmp/codex-kccghg1i succeeded in 39ms:
ORIGIN pcs []

thinking
**Analyzing contract risks and findings**
exec
/bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-kccghg1i succeeded in 5ms:
{"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}

thinking
**Preparing detailed vulnerability report**

I'm carefully composing JSON output capturing three key findings: dynamic external CALLs with ETH value and untrusted targets, unchecked CALL return data, and reachable CREATE instruction. Each includes clear evidence, exploit scenarios, and recommendations, ensuring no extra fields and precise formatting for clarity.
codex
{"no_findings":false,"summary":"Detected dynamic external CALLs (some with ETH value) and a reachable CREATE path; bytecode shows no proxy/delegatecall usage, but guard coverage is unclear from artifacts.","findings":[{"severity":"medium","category":"access_control","title":"Dynamic external CALLs with ETH value and untrusted targets","exploit_scenario":"If any public or weakly guarded path lets an attacker influence the CALL target/value (via calldata or mutable storage), they can direct the contract to call arbitrary contracts and transfer ETH. That can drain funds or enable reentrancy into state-changing paths. Guard detection is empty in the artifact, so protection cannot be confirmed from bytecode alone.","recommendation":"Restrict these CALL paths to authorized roles or a strict allowlist, validate target/value bounds, and apply checks-effects-interactions or a reentrancy guard around external calls.","evidence":"BYTECODE_BUNDLE.json detector_findings[0]/[1] confirm 8 CALLs with computed target/value; validation shows target_varies with call_targets including 0x5d1b26d762b1973b8b7c2bfb196ba2ed969daf18, 0x9f6e731911af889a2b520ebecacbe764c5d59255, 0xe4d58f4645df8b865dbf2dae788836aedbbd2f63 and ETH value nonzero; callsites list returndata_checked:null and guards_detected:[] for all calls.","locations":["pc:0x9a4","pc:0xbb0","pc:0xf71","pc:0x1065","pc:0x15cd","pc:0x203f","pc:0x20c7","pc:0x2185"]},{"severity":"low","category":"other","title":"Low-level CALL return data not validated","exploit_scenario":"If these CALLs interact with tokens or protocols that signal failure via return values instead of reverts, the contract may treat a failed operation as successful, causing accounting or state inconsistencies. This is especially risky for ERC20s that return false rather than reverting.","recommendation":"Decode and validate returndata (e.g., require empty or true) or use safe call wrappers that enforce expected return semantics.","evidence":"callsites show returndata_checked:null for all CALLs at pcs 0x9a4/0xbb0/0xf71/0x1065/0x15cd/0x203f/0x20c7/0x2185; disassembly around these pcs shows CALL followed by success check and POPs without RETURNDATASIZE/RETURNDATACOPY usage.","locations":["pc:0x9a4","pc:0xbb0","pc:0xf71","pc:0x1065","pc:0x15cd","pc:0x203f","pc:0x20c7","pc:0x2185"]},{"severity":"low","category":"other","title":"CREATE reachable (contract deployment capability)","exploit_scenario":"If an untrusted caller can reach this path, they could trigger contract creation repeatedly, potentially causing gas griefing or unexpected storage updates tied to deployment results. Access control for this path is unclear from bytecode alone.","recommendation":"Restrict CREATE paths to privileged roles or one-time initialization, and validate/record deployed addresses explicitly.","evidence":"detector_findings[2] reports create_count=1 and CREATE opcode is present at pc 0x2520 in runtime bytecode.","locations":["pc:0x2520"]}]}
tokens used
164,731
Metadata
{
    "codex": {
        "ran_at": "2026-01-10T20:53:30.246747+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 19594,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Detected dynamic external CALLs (some with ETH value) and a reachable CREATE path; bytecode shows no proxy/delegatecall usage, but guard coverage is unclear from artifacts.",
    "raw_final": {
        "summary": "Detected dynamic external CALLs (some with ETH value) and a reachable CREATE path; bytecode shows no proxy/delegatecall usage, but guard coverage is unclear from artifacts.",
        "findings": [
            {
                "title": "Dynamic external CALLs with ETH value and untrusted targets",
                "category": "access_control",
                "evidence": "BYTECODE_BUNDLE.json detector_findings[0]/[1] confirm 8 CALLs with computed target/value; validation shows target_varies with call_targets including 0x5d1b26d762b1973b8b7c2bfb196ba2ed969daf18, 0x9f6e731911af889a2b520ebecacbe764c5d59255, 0xe4d58f4645df8b865dbf2dae788836aedbbd2f63 and ETH value nonzero; callsites list returndata_checked:null and guards_detected:[] for all calls.",
                "severity": "medium",
                "locations": [
                    "pc:0x9a4",
                    "pc:0xbb0",
                    "pc:0xf71",
                    "pc:0x1065",
                    "pc:0x15cd",
                    "pc:0x203f",
                    "pc:0x20c7",
                    "pc:0x2185"
                ],
                "recommendation": "Restrict these CALL paths to authorized roles or a strict allowlist, validate target/value bounds, and apply checks-effects-interactions or a reentrancy guard around external calls.",
                "exploit_scenario": "If any public or weakly guarded path lets an attacker influence the CALL target/value (via calldata or mutable storage), they can direct the contract to call arbitrary contracts and transfer ETH. That can drain funds or enable reentrancy into state-changing paths. Guard detection is empty in the artifact, so protection cannot be confirmed from bytecode alone."
            },
            {
                "title": "Low-level CALL return data not validated",
                "category": "other",
                "evidence": "callsites show returndata_checked:null for all CALLs at pcs 0x9a4/0xbb0/0xf71/0x1065/0x15cd/0x203f/0x20c7/0x2185; disassembly around these pcs shows CALL followed by success check and POPs without RETURNDATASIZE/RETURNDATACOPY usage.",
                "severity": "low",
                "locations": [
                    "pc:0x9a4",
                    "pc:0xbb0",
                    "pc:0xf71",
                    "pc:0x1065",
                    "pc:0x15cd",
                    "pc:0x203f",
                    "pc:0x20c7",
                    "pc:0x2185"
                ],
                "recommendation": "Decode and validate returndata (e.g., require empty or true) or use safe call wrappers that enforce expected return semantics.",
                "exploit_scenario": "If these CALLs interact with tokens or protocols that signal failure via return values instead of reverts, the contract may treat a failed operation as successful, causing accounting or state inconsistencies. This is especially risky for ERC20s that return false rather than reverting."
            },
            {
                "title": "CREATE reachable (contract deployment capability)",
                "category": "other",
                "evidence": "detector_findings[2] reports create_count=1 and CREATE opcode is present at pc 0x2520 in runtime bytecode.",
                "severity": "low",
                "locations": [
                    "pc:0x2520"
                ],
                "recommendation": "Restrict CREATE paths to privileged roles or one-time initialization, and validate/record deployed addresses explicitly.",
                "exploit_scenario": "If an untrusted caller can reach this path, they could trigger contract creation repeatedly, potentially causing gas griefing or unexpected storage updates tied to deployment results. Access control for this path is unclear from bytecode alone."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
8
EXT*/BALANCE
12
Total opcodes
6262
Flags
create_opcodes_present heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x020b
0000000c: JUMPI
0000000d: PUSH4 0xffffffff
00000012: PUSH1 0xe0
00000014: PUSH1 0x02
00000016: EXP
00000017: PUSH1 0x00
00000019: CALLDATALOAD
0000001a: DIV
0000001b: AND
0000001c: PUSH4 0x05427ea7
00000021: DUP2
00000022: EQ
00000023: PUSH2 0x023d
00000026: JUMPI
00000027: DUP1
00000028: PUSH4 0x07d0d51e
0000002d: EQ
0000002e: PUSH2 0x0270
00000031: JUMPI
00000032: DUP1
00000033: PUSH4 0x0d1fce42
00000038: EQ
00000039: PUSH2 0x0283
0000003c: JUMPI
0000003d: DUP1
0000003e: PUSH4 0x0e81c1f1
00000043: EQ
00000044: PUSH2 0x0296
00000047: JUMPI
00000048: DUP1
00000049: PUSH4 0x0e959dd7
0000004e: EQ
0000004f: PUSH2 0x02a9
00000052: JUMPI
00000053: DUP1
00000054: PUSH4 0x0ee4c938
00000059: EQ
0000005a: PUSH2 0x02ec
0000005d: JUMPI
0000005e: DUP1
0000005f: PUSH4 0x107bf28c
00000064: EQ
00000065: PUSH2 0x0302
00000068: JUMPI
00000069: DUP1
0000006a: PUSH4 0x11e330b2
0000006f: EQ
00000070: PUSH2 0x038c
00000073: JUMPI
00000074: DUP1
00000075: PUSH4 0x12065fe0
0000007a: EQ
0000007b: PUSH2 0x03a2
0000007e: JUMPI
0000007f: DUP1
00000080: PUSH4 0x1df4ccfc
00000085: EQ
00000086: PUSH2 0x03b5
00000089: JUMPI
0000008a: DUP1
0000008b: PUSH4 0x1e0018d6
00000090: EQ
00000091: PUSH2 0x03c8
00000094: JUMPI
00000095: DUP1
00000096: PUSH4 0x278564ee
0000009b: EQ
0000009c: PUSH2 0x03f7
0000009f: JUMPI
000000a0: DUP1
000000a1: PUSH4 0x3566cc98
000000a6: EQ
000000a7: PUSH2 0x040a
000000aa: JUMPI
000000ab: DUP1
000000ac: PUSH4 0x359df915
000000b1: EQ
000000b2: PUSH2 0x042e
000000b5: JUMPI
000000b6: DUP1
000000b7: PUSH4 0x3712e726
000000bc: EQ
000000bd: PUSH2 0x0441
000000c0: JUMPI
000000c1: DUP1
000000c2: PUSH4 0x44515d3b
000000c7: EQ
000000c8: PUSH2 0x0454
000000cb: JUMPI
000000cc: DUP1
000000cd: PUSH4 0x4cf4a292
000000d2: EQ
000000d3: PUSH2 0x046a
000000d6: JUMPI
000000d7: DUP1
000000d8: PUSH4 0x54ab6269
000000dd: EQ
000000de: PUSH2 0x047d
000000e1: JUMPI
000000e2: DUP1
000000e3: PUSH4 0x550ed1f0
000000e8: EQ
000000e9: PUSH2 0x049c
000000ec: JUMPI
000000ed: DUP1
000000ee: PUSH4 0x55632748
000000f3: EQ
000000f4: PUSH2 0x04af
000000f7: JUMPI
000000f8: DUP1
000000f9: PUSH4 0x5bd4fd7b
000000fe: EQ
000000ff: PUSH2 0x04c2
00000102: JUMPI
00000103: DUP1
00000104: PUSH4 0x5c141ef5
00000109: EQ
0000010a: PUSH2 0x04e1
0000010d: JUMPI
0000010e: DUP1
0000010f: PUSH4 0x5d859a73
00000114: EQ
00000115: PUSH2 0x04fd
00000118: JUMPI
00000119: DUP1
0000011a: PUSH4 0x6533aa1e
0000011f: EQ
00000120: PUSH2 0x0510
00000123: JUMPI
00000124: DUP1
00000125: PUSH4 0x6b31ee01
0000012a: EQ
0000012b: PUSH2 0x0526
0000012e: JUMPI
0000012f: DUP1
00000130: PUSH4 0x6cd0f102
00000135: EQ
00000136: PUSH2 0x0539
00000139: JUMPI
0000013a: DUP1
0000013b: PUSH4 0x6ffcc719
00000140: EQ
00000141: PUSH2 0x054f
00000144: JUMPI
00000145: DUP1
00000146: PUSH4 0x76e3cf12
0000014b: EQ
0000014c: PUSH2 0x055d
0000014f: JUMPI
00000150: DUP1
00000151: PUSH4 0x7ef13d5d
00000156: EQ
00000157: PUSH2 0x0612
0000015a: JUMPI
0000015b: DUP1
0000015c: PUSH4 0x82a5285d
00000161: EQ
00000162: PUSH2 0x0625
00000165: JUMPI
00000166: DUP1
00000167: PUSH4 0x8da5cb5b
0000016c: EQ
0000016d: PUSH2 0x0638
00000170: JUMPI
00000171: DUP1
00000172: PUSH4 0x9b0740e8
00000177: EQ
00000178: PUSH2 0x064b
0000017b: JUMPI
0000017c: DUP1
0000017d: PUSH4 0xa7544786
00000182: EQ
00000183: PUSH2 0x065e
00000186: JUMPI
00000187: DUP1
00000188: PUSH4 0xb599afc8
0000018d: EQ
0000018e: PUSH2 0x0671
00000191: JUMPI
00000192: DUP1
00000193: PUSH4 0xb7adf82b
00000198: EQ
00000199: PUSH2 0x0684
0000019c: JUMPI
0000019d: DUP1
0000019e: PUSH4 0xbb504317
000001a3: EQ
000001a4: PUSH2 0x06a3
000001a7: JUMPI
000001a8: DUP1
000001a9: PUSH4 0xc13afce5
000001ae: EQ
000001af: PUSH2 0x06c5
000001b2: JUMPI
000001b3: DUP1
000001b4: PUSH4 0xd954cbcb
000001b9: EQ
000001ba: PUSH2 0x06db
000001bd: JUMPI
000001be: DUP1
000001bf: PUSH4 0xdcdba4f7
000001c4: EQ
000001c5: PUSH2 0x06ee
000001c8: JUMPI
000001c9: DUP1
000001ca: PUSH4 0xe0fa2881
000001cf: EQ
000001d0: PUSH2 0x0701
000001d3: JUMPI
000001d4: DUP1
000001d5: PUSH4 0xe1c7392a
000001da: EQ
000001db: PUSH2 0x0709
000001de: JUMPI
000001df: DUP1
000001e0: PUSH4 0xe230d25e
000001e5: EQ
000001e6: PUSH2 0x071c
000001e9: JUMPI
000001ea: DUP1
000001eb: PUSH4 0xe8b5e51f
000001f0: EQ
000001f1: PUSH2 0x072f
000001f4: JUMPI
000001f5: DUP1
000001f6: PUSH4 0xf2fde38b
000001fb: EQ
000001fc: PUSH2 0x0737
000001ff: JUMPI
00000200: DUP1
00000201: PUSH4 0xffa1ad74
00000206: EQ
00000207: PUSH2 0x0756
0000020a: JUMPI
0000020b: JUMPDEST
0000020c: PUSH1 0x06
0000020e: SLOAD
0000020f: CALLER
00000210: PUSH1 0x01
00000212: PUSH1 0xa0
00000214: PUSH1 0x02
00000216: EXP
00000217: SUB
00000218: SWAP1
00000219: DUP2
0000021a: AND
0000021b: SWAP2
0000021c: AND
0000021d: EQ
0000021e: ISZERO
0000021f: PUSH2 0x022f
00000222: JUMPI
00000223: PUSH2 0x022a
00000226: PUSH2 0x0769
00000229: JUMP
0000022a: JUMPDEST
0000022b: PUSH2 0x023b
0000022e: JUMP
0000022f: JUMPDEST
00000230: PUSH2 0x023b
00000233: PUSH1 0x01
00000235: PUSH1 0x00
00000237: PUSH2 0x07ec
0000023a: JUMP
0000023b: JUMPDEST
0000023c: STOP
0000023d: JUMPDEST
0000023e: CALLVALUE
0000023f: ISZERO
00000240: PUSH2 0x0248
00000243: JUMPI
00000244: PUSH1 0x00
00000246: DUP1
00000247: REVERT
00000248: JUMPDEST
00000249: PUSH2 0x025e
0000024c: PUSH1 0x04
0000024e: CALLDATALOAD
0000024f: PUSH1 0x0f
00000251: SWAP1
00000252: DUP2
00000253: SIGNEXTEND
00000254: SWAP1
00000255: PUSH1 0x24
00000257: CALLDATALOAD
00000258: SWAP1
00000259: SIGNEXTEND
0000025a: PUSH2 0x0936
0000025d: JUMP
0000025e: JUMPDEST
0000025f: PUSH1 0x40
00000261: MLOAD
00000262: SWAP1
00000263: DUP2
00000264: MSTORE
00000265: PUSH1 0x20
00000267: ADD
00000268: PUSH1 0x40
0000026a: MLOAD
0000026b: DUP1
0000026c: SWAP2
0000026d: SUB
0000026e: SWAP1
0000026f: RETURN
00000270: JUMPDEST
00000271: CALLVALUE
00000272: ISZERO
00000273: PUSH2 0x027b
00000276: JUMPI
00000277: PUSH1 0x00
00000279: DUP1
0000027a: REVERT
0000027b: JUMPDEST
0000027c: PUSH2 0x025e
0000027f: PUSH2 0x09bf
00000282: JUMP
00000283: JUMPDEST
00000284: CALLVALUE
00000285: ISZERO
00000286: PUSH2 0x028e
00000289: JUMPI
0000028a: PUSH1 0x00
0000028c: DUP1
0000028d: REVERT
0000028e: JUMPDEST
0000028f: PUSH2 0x025e
00000292: PUSH2 0x09c5
00000295: JUMP
00000296: JUMPDEST
00000297: CALLVALUE
00000298: ISZERO
00000299: PUSH2 0x02a1
0000029c: JUMPI
0000029d: PUSH1 0x00
0000029f: DUP1
000002a0: REVERT
000002a1: JUMPDEST
000002a2: PUSH2 0x025e
000002a5: PUSH2 0x09e6
000002a8: JUMP
000002a9: JUMPDEST
000002aa: CALLVALUE
000002ab: ISZERO
000002ac: PUSH2 0x02b4
000002af: JUMPI
000002b0: PUSH1 0x00
000002b2: DUP1
000002b3: REVERT
000002b4: JUMPDEST
000002b5: PUSH2 0x02c8
000002b8: PUSH1 0x01
000002ba: PUSH1 0xa0
000002bc: PUSH1 0x02
000002be: EXP
000002bf: SUB
000002c0: PUSH1 0x04
000002c2: CALLDATALOAD
000002c3: AND
000002c4: PUSH2 0x09ec
000002c7: JUMP
000002c8: JUMPDEST
000002c9: PUSH1 0x40
000002cb: MLOAD
000002cc: DUP1
000002cd: DUP5
000002ce: DUP2
000002cf: MSTORE
000002d0: PUSH1 0x20
000002d2: ADD
000002d3: DUP4
000002d4: DUP2
000002d5: MSTORE
000002d6: PUSH1 0x20
000002d8: ADD
000002d9: DUP3
000002da: DUP2
000002db: MSTORE
000002dc: PUSH1 0x20
000002de: ADD
000002df: SWAP4
000002e0: POP
000002e1: POP
000002e2: POP
000002e3: POP
000002e4: PUSH1 0x40
000002e6: MLOAD
000002e7: DUP1
000002e8: SWAP2
000002e9: SUB
000002ea: SWAP1
000002eb: RETURN
000002ec: JUMPDEST
000002ed: CALLVALUE
000002ee: ISZERO
000002ef: PUSH2 0x02f7
000002f2: JUMPI
000002f3: PUSH1 0x00
000002f5: DUP1
000002f6: REVERT
000002f7: JUMPDEST
000002f8: PUSH2 0x023b
000002fb: PUSH1 0x04
000002fd: CALLDATALOAD
000002fe: PUSH2 0x0a0d
00000301: JUMP
00000302: JUMPDEST
00000303: CALLVALUE
00000304: ISZERO
00000305: PUSH2 0x030d
00000308: JUMPI
00000309: PUSH1 0x00
0000030b: DUP1
0000030c: REVERT
0000030d: JUMPDEST
0000030e: PUSH2 0x0315
00000311: PUSH2 0x0a3c
00000314: JUMP
00000315: JUMPDEST
00000316: PUSH1 0x40
00000318: MLOAD
00000319: PUSH1 0x20
0000031b: DUP1
0000031c: DUP3
0000031d: MSTORE
0000031e: DUP2
0000031f: SWAP1
00000320: DUP2
00000321: ADD
00000322: DUP4
00000323: DUP2
00000324: DUP2
00000325: MLOAD
00000326: DUP2
00000327: MSTORE
00000328: PUSH1 0x20
0000032a: ADD
0000032b: SWAP2
0000032c: POP
0000032d: DUP1
0000032e: MLOAD
0000032f: SWAP1
00000330: PUSH1 0x20
00000332: ADD
00000333: SWAP1
00000334: DUP1
00000335: DUP4
00000336: DUP4
00000337: PUSH1 0x00
00000339: JUMPDEST
0000033a: DUP4
0000033b: DUP2
0000033c: LT
0000033d: ISZERO
0000033e: PUSH2 0x0351
00000341: JUMPI
00000342: DUP1
00000343: DUP3
00000344: ADD
00000345: MLOAD
00000346: DUP4
00000347: DUP3
00000348: ADD
00000349: MSTORE
0000034a: PUSH1 0x20
0000034c: ADD
0000034d: PUSH2 0x0339
00000350: JUMP
00000351: JUMPDEST
00000352: POP
00000353: POP
00000354: POP
00000355: POP
00000356: SWAP1
00000357: POP
00000358: SWAP1
00000359: DUP2
0000035a: ADD
0000035b: SWAP1
0000035c: PUSH1 0x1f
0000035e: AND
0000035f: DUP1
00000360: ISZERO
00000361: PUSH2 0x037e
00000364: JUMPI
00000365: DUP1
00000366: DUP3
00000367: SUB
00000368: DUP1
00000369: MLOAD
0000036a: PUSH1 0x01
0000036c: DUP4
0000036d: PUSH1 0x20
0000036f: SUB
00000370: PUSH2 0x0100
00000373: EXP
00000374: SUB
00000375: NOT
00000376: AND
00000377: DUP2
00000378: MSTORE
00000379: PUSH1 0x20
0000037b: ADD
0000037c: SWAP2
0000037d: POP
0000037e: JUMPDEST
0000037f: POP
00000380: SWAP3
00000381: POP
00000382: POP
00000383: POP
00000384: PUSH1 0x40
00000386: MLOAD
00000387: DUP1
00000388: SWAP2
00000389: SUB
0000038a: SWAP1
0000038b: RETURN
0000038c: JUMPDEST
0000038d: CALLVALUE
0000038e: ISZERO
0000038f: PUSH2 0x0397
00000392: JUMPI
00000393: PUSH1 0x00
00000395: DUP1
00000396: REVERT
00000397: JUMPDEST
00000398: PUSH2 0x023b
0000039b: PUSH1 0x04
0000039d: CALLDATALOAD
0000039e: PUSH2 0x0ada
000003a1: JUMP
000003a2: JUMPDEST
000003a3: CALLVALUE
000003a4: ISZERO
000003a5: PUSH2 0x03ad
000003a8: JUMPI
000003a9: PUSH1 0x00
000003ab: DUP1
000003ac: REVERT
000003ad: JUMPDEST
000003ae: PUSH2 0x025e
000003b1: PUSH2 0x0b0f
000003b4: JUMP
000003b5: JUMPDEST
000003b6: CALLVALUE
000003b7: ISZERO
000003b8: PUSH2 0x03c0
000003bb: JUMPI
000003bc: PUSH1 0x00
000003be: DUP1
000003bf: REVERT
000003c0: JUMPDEST
000003c1: PUSH2 0x025e
000003c4: PUSH2 0x0b1e
000003c7: JUMP
000003c8: JUMPDEST
000003c9: CALLVALUE
000003ca: ISZERO
000003cb: PUSH2 0x03d3
000003ce: JUMPI
000003cf: PUSH1 0x00
000003d1: DUP1
000003d2: REVERT
000003d3: JUMPDEST
000003d4: PUSH2 0x03db
000003d7: PUSH2 0x0b24
000003da: JUMP
000003db: JUMPDEST
000003dc: PUSH1 0x40
000003de: MLOAD
000003df: PUSH1 0x01
000003e1: PUSH1 0xa0
000003e3: PUSH1 0x02
000003e5: EXP
000003e6: SUB
000003e7: SWAP1
000003e8: SWAP2
000003e9: AND
000003ea: DUP2
000003eb: MSTORE
000003ec: PUSH1 0x20
000003ee: ADD
000003ef: PUSH1 0x40
000003f1: MLOAD
000003f2: DUP1
000003f3: SWAP2
000003f4: SUB
000003f5: SWAP1
000003f6: RETURN
000003f7: JUMPDEST
000003f8: CALLVALUE
000003f9: ISZERO
000003fa: PUSH2 0x0402
000003fd: JUMPI
000003fe: PUSH1 0x00
00000400: DUP1
00000401: REVERT
00000402: JUMPDEST
00000403: PUSH2 0x025e
00000406: PUSH2 0x0b33
00000409: JUMP
0000040a: JUMPDEST
0000040b: CALLVALUE
0000040c: ISZERO
0000040d: PUSH2 0x0415
00000410: JUMPI
00000411: PUSH1 0x00
00000413: DUP1
00000414: REVERT
00000415: JUMPDEST
00000416: PUSH2 0x025e
00000419: PUSH1 0x04
0000041b: CALLDATALOAD
0000041c: PUSH1 0x0f
0000041e: SWAP1
0000041f: DUP2
00000420: SIGNEXTEND
00000421: SWAP1
00000422: PUSH1 0x24
00000424: CALLDATALOAD
00000425: SWAP1
00000426: SIGNEXTEND
00000427: PUSH1 0x44
00000429: CALLDATALOAD
0000042a: PUSH2 0x0b39
0000042d: JUMP
0000042e: JUMPDEST
0000042f: CALLVALUE
00000430: ISZERO
00000431: PUSH2 0x0439
00000434: JUMPI
00000435: PUSH1 0x00
00000437: DUP1
00000438: REVERT
00000439: JUMPDEST
0000043a: PUSH2 0x025e
0000043d: PUSH2 0x0bcc
00000440: JUMP
00000441: JUMPDEST
00000442: CALLVALUE
00000443: ISZERO
00000444: PUSH2 0x044c
00000447: JUMPI
00000448: PUSH1 0x00
0000044a: DUP1
0000044b: REVERT
0000044c: JUMPDEST
0000044d: PUSH2 0x025e
00000450: PUSH2 0x0bd2
00000453: JUMP
00000454: JUMPDEST
00000455: CALLVALUE
00000456: ISZERO
00000457: PUSH2 0x045f
0000045a: JUMPI
0000045b: PUSH1 0x00
0000045d: DUP1
0000045e: REVERT
0000045f: JUMPDEST
00000460: PUSH2 0x023b
00000463: PUSH1 0x04
00000465: CALLDATALOAD
00000466: PUSH2 0x0bd8
00000469: JUMP
0000046a: JUMPDEST
0000046b: CALLVALUE
0000046c: ISZERO
0000046d: PUSH2 0x0475
00000470: JUMPI
00000471: PUSH1 0x00
00000473: DUP1
00000474: REVERT
00000475: JUMPDEST
00000476: PUSH2 0x025e
00000479: PUSH2 0x0bf8
0000047c: JUMP
0000047d: JUMPDEST
0000047e: CALLVALUE
0000047f: ISZERO
00000480: PUSH2 0x0488
00000483: JUMPI
00000484: PUSH1 0x00
00000486: DUP1
00000487: REVERT
00000488: JUMPDEST
00000489: PUSH2 0x023b
0000048c: PUSH1 0x01
0000048e: PUSH1 0xa0
00000490: PUSH1 0x02
00000492: EXP
00000493: SUB
00000494: PUSH1 0x04
00000496: CALLDATALOAD
00000497: AND
00000498: PUSH2 0x0c1d
0000049b: JUMP
0000049c: JUMPDEST
0000049d: CALLVALUE
0000049e: ISZERO
0000049f: PUSH2 0x04a7
000004a2: JUMPI
000004a3: PUSH1 0x00
000004a5: DUP1
000004a6: REVERT
000004a7: JUMPDEST
000004a8: PUSH2 0x025e
000004ab: PUSH2 0x0cdd
000004ae: JUMP
000004af: JUMPDEST
000004b0: CALLVALUE
000004b1: ISZERO
000004b2: PUSH2 0x04ba
000004b5: JUMPI
000004b6: PUSH1 0x00
000004b8: DUP1
000004b9: REVERT
000004ba: JUMPDEST
000004bb: PUSH2 0x025e
000004be: PUSH2 0x0d38
000004c1: JUMP
000004c2: JUMPDEST
000004c3: CALLVALUE
000004c4: ISZERO
000004c5: PUSH2 0x04cd
000004c8: JUMPI
000004c9: PUSH1 0x00
000004cb: DUP1
000004cc: REVERT
000004cd: JUMPDEST
000004ce: PUSH2 0x023b
000004d1: PUSH1 0x01
000004d3: PUSH1 0xa0
000004d5: PUSH1 0x02
000004d7: EXP
000004d8: SUB
000004d9: PUSH1 0x04
000004db: CALLDATALOAD
000004dc: AND
000004dd: PUSH2 0x0d3e
000004e0: JUMP
000004e1: JUMPDEST
000004e2: CALLVALUE
000004e3: ISZERO
000004e4: PUSH2 0x04ec
000004e7: JUMPI
000004e8: PUSH1 0x00
000004ea: DUP1
000004eb: REVERT
000004ec: JUMPDEST
000004ed: PUSH2 0x023b
000004f0: PUSH1 0x04
000004f2: CALLDATALOAD
000004f3: PUSH1 0x24
000004f5: CALLDATALOAD
000004f6: PUSH1 0x44
000004f8: CALLDATALOAD
000004f9: PUSH2 0x0d9d
000004fc: JUMP
000004fd: JUMPDEST
000004fe: CALLVALUE
000004ff: ISZERO
00000500: PUSH2 0x0508
00000503: JUMPI
00000504: PUSH1 0x00
00000506: DUP1
00000507: REVERT
00000508: JUMPDEST
00000509: PUSH2 0x025e
0000050c: PUSH2 0x0e28
0000050f: JUMP
00000510: JUMPDEST
00000511: CALLVALUE
00000512: ISZERO
00000513: PUSH2 0x051b
00000516: JUMPI
00000517: PUSH1 0x00
00000519: DUP1
0000051a: REVERT
0000051b: JUMPDEST
0000051c: PUSH2 0x023b
0000051f: PUSH1 0x04
00000521: CALLDATALOAD
00000522: PUSH2 0x0e2e
00000525: JUMP
00000526: JUMPDEST
00000527: CALLVALUE
00000528: ISZERO
00000529: PUSH2 0x0531
0000052c: JUMPI
0000052d: PUSH1 0x00
0000052f: DUP1
00000530: REVERT
00000531: JUMPDEST
00000532: PUSH2 0x025e
00000535: PUSH2 0x0e6c
00000538: JUMP
00000539: JUMPDEST
0000053a: CALLVALUE
0000053b: ISZERO
0000053c: PUSH2 0x0544
0000053f: JUMPI
00000540: PUSH1 0x00
00000542: DUP1
00000543: REVERT
00000544: JUMPDEST
00000545: PUSH2 0x023b
00000548: PUSH1 0x04
0000054a: CALLDATALOAD
0000054b: PUSH2 0x0e72
0000054e: JUMP
0000054f: JUMPDEST
00000550: PUSH2 0x023b
00000553: PUSH1 0x04
00000555: CALLDATALOAD
00000556: PUSH1 0x24
00000558: CALLDATALOAD
00000559: PUSH2 0x07ec
0000055c: JUMP
0000055d: JUMPDEST
0000055e: CALLVALUE
0000055f: ISZERO
00000560: PUSH2 0x0568
00000563: JUMPI
00000564: PUSH1 0x00
00000566: DUP1
00000567: REVERT
00000568: JUMPDEST
00000569: PUSH2 0x0573
0000056c: PUSH1 0x04
0000056e: CALLDATALOAD
0000056f: PUSH2 0x0eba
00000572: JUMP
00000573: JUMPDEST
00000574: PUSH1 0x40
00000576: MLOAD
00000577: DUP5
00000578: DUP2
00000579: MSTORE
0000057a: PUSH1 0x20
0000057c: DUP2
0000057d: ADD
0000057e: DUP5
0000057f: SWAP1
00000580: MSTORE
00000581: PUSH1 0x40
00000583: DUP2
00000584: ADD
00000585: DUP4
00000586: SWAP1
00000587: MSTORE
00000588: PUSH1 0x80
0000058a: PUSH1 0x60
0000058c: DUP3
0000058d: ADD
0000058e: DUP2
0000058f: DUP2
00000590: MSTORE
00000591: DUP4
00000592: SLOAD
00000593: PUSH1 0x02
00000595: PUSH1 0x00
00000597: NOT
00000598: PUSH2 0x0100
0000059b: PUSH1 0x01
0000059d: DUP5
0000059e: AND
0000059f: ISZERO
000005a0: MUL
000005a1: ADD
000005a2: SWAP1
000005a3: SWAP2
000005a4: AND
000005a5: DIV
000005a6: SWAP2
000005a7: DUP4
000005a8: ADD
000005a9: DUP3
000005aa: SWAP1
000005ab: MSTORE
000005ac: SWAP1
000005ad: PUSH1 0xa0
000005af: DUP4
000005b0: ADD
000005b1: SWAP1
000005b2: DUP5
000005b3: SWAP1
000005b4: DUP1
000005b5: ISZERO
000005b6: PUSH2 0x0600
000005b9: JUMPI
000005ba: DUP1
000005bb: PUSH1 0x1f
000005bd: LT
000005be: PUSH2 0x05d5
000005c1: JUMPI
000005c2: PUSH2 0x0100
000005c5: DUP1
000005c6: DUP4
000005c7: SLOAD
000005c8: DIV
000005c9: MUL
000005ca: DUP4
000005cb: MSTORE
000005cc: SWAP2
000005cd: PUSH1 0x20
000005cf: ADD
000005d0: SWAP2
000005d1: PUSH2 0x0600
000005d4: JUMP
000005d5: JUMPDEST
000005d6: DUP3
000005d7: ADD
000005d8: SWAP2
000005d9: SWAP1
000005da: PUSH1 0x00
000005dc: MSTORE
000005dd: PUSH1 0x20
000005df: PUSH1 0x00
000005e1: KECCAK256
000005e2: SWAP1
000005e3: JUMPDEST
000005e4: DUP2
000005e5: SLOAD
000005e6: DUP2
000005e7: MSTORE
000005e8: SWAP1
000005e9: PUSH1 0x01
000005eb: ADD
000005ec: SWAP1
000005ed: PUSH1 0x20
000005ef: ADD
000005f0: DUP1
000005f1: DUP4
000005f2: GT
000005f3: PUSH2 0x05e3
000005f6: JUMPI
000005f7: DUP3
000005f8: SWAP1
000005f9: SUB
000005fa: PUSH1 0x1f
000005fc: AND
000005fd: DUP3
000005fe: ADD
000005ff: SWAP2
00000600: JUMPDEST
00000601: POP
00000602: POP
00000603: SWAP6
00000604: POP
00000605: POP
00000606: POP
00000607: POP
00000608: POP
00000609: POP
0000060a: PUSH1 0x40
0000060c: MLOAD
0000060d: DUP1
0000060e: SWAP2
0000060f: SUB
00000610: SWAP1
00000611: RETURN
00000612: JUMPDEST
00000613: CALLVALUE
00000614: ISZERO
00000615: PUSH2 0x061d
00000618: JUMPI
00000619: PUSH1 0x00
0000061b: DUP1
0000061c: REVERT
0000061d: JUMPDEST
0000061e: PUSH2 0x03db
00000621: PUSH2 0x0eee
00000624: JUMP
00000625: JUMPDEST
00000626: CALLVALUE
00000627: ISZERO
00000628: PUSH2 0x0630
0000062b: JUMPI
0000062c: PUSH1 0x00
0000062e: DUP1
0000062f: REVERT
00000630: JUMPDEST
00000631: PUSH2 0x025e
00000634: PUSH2 0x0fba
00000637: JUMP
00000638: JUMPDEST
00000639: CALLVALUE
0000063a: ISZERO
0000063b: PUSH2 0x0643
0000063e: JUMPI
0000063f: PUSH1 0x00
00000641: DUP1
00000642: REVERT
00000643: JUMPDEST
00000644: PUSH2 0x03db
00000647: PUSH2 0x0ffb
0000064a: JUMP
0000064b: JUMPDEST
0000064c: CALLVALUE
0000064d: ISZERO
0000064e: PUSH2 0x0656
00000651: JUMPI
00000652: PUSH1 0x00
00000654: DUP1
00000655: REVERT
00000656: JUMPDEST
00000657: PUSH2 0x025e
0000065a: PUSH2 0x100a
0000065d: JUMP
0000065e: JUMPDEST
0000065f: CALLVALUE
00000660: ISZERO
00000661: PUSH2 0x0669
00000664: JUMPI
00000665: PUSH1 0x00
00000667: DUP1
00000668: REVERT
00000669: JUMPDEST
0000066a: PUSH2 0x025e
0000066d: PUSH2 0x1010
00000670: JUMP
00000671: JUMPDEST
00000672: CALLVALUE
00000673: ISZERO
00000674: PUSH2 0x067c
00000677: JUMPI
00000678: PUSH1 0x00
0000067a: DUP1
0000067b: REVERT
0000067c: JUMPDEST
0000067d: PUSH2 0x025e
00000680: PUSH2 0x107e
00000683: JUMP
00000684: JUMPDEST
00000685: CALLVALUE
00000686: ISZERO
00000687: PUSH2 0x068f
0000068a: JUMPI
0000068b: PUSH1 0x00
0000068d: DUP1
0000068e: REVERT
0000068f: JUMPDEST
00000690: PUSH2 0x023b
00000693: PUSH1 0x01
00000695: PUSH1 0xa0
00000697: PUSH1 0x02
00000699: EXP
0000069a: SUB
0000069b: PUSH1 0x04
0000069d: CALLDATALOAD
0000069e: AND
0000069f: PUSH2 0x1084
000006a2: JUMP
000006a3: JUMPDEST
000006a4: CALLVALUE
000006a5: ISZERO
000006a6: PUSH2 0x06ae
000006a9: JUMPI
000006aa: PUSH1 0x00
000006ac: DUP1
000006ad: REVERT
000006ae: JUMPDEST
000006af: PUSH2 0x023b
000006b2: PUSH1 0x01
000006b4: PUSH1 0xa0
000006b6: PUSH1 0x02
000006b8: EXP
000006b9: SUB
000006ba: PUSH1 0x04
000006bc: CALLDATALOAD
000006bd: AND
000006be: PUSH1 0x24
000006c0: CALLDATALOAD
000006c1: PUSH2 0x10ce
000006c4: JUMP
000006c5: JUMPDEST
000006c6: CALLVALUE
000006c7: ISZERO
000006c8: PUSH2 0x06d0
000006cb: JUMPI
000006cc: PUSH1 0x00
000006ce: DUP1
000006cf: REVERT
000006d0: JUMPDEST
000006d1: PUSH2 0x023b
000006d4: PUSH1 0x04
000006d6: CALLDATALOAD
000006d7: PUSH2 0x1197
000006da: JUMP
000006db: JUMPDEST
000006dc: CALLVALUE
000006dd: ISZERO
000006de: PUSH2 0x06e6
000006e1: JUMPI
000006e2: PUSH1 0x00
000006e4: DUP1
000006e5: REVERT
000006e6: JUMPDEST
000006e7: PUSH2 0x025e
000006ea: PUSH2 0x11c6
000006ed: JUMP
000006ee: JUMPDEST
000006ef: CALLVALUE
000006f0: ISZERO
000006f1: PUSH2 0x06f9
000006f4: JUMPI
000006f5: PUSH1 0x00
000006f7: DUP1
000006f8: REVERT
000006f9: JUMPDEST
000006fa: PUSH2 0x03db
000006fd: PUSH2 0x11cc
00000700: JUMP
00000701: JUMPDEST
00000702: PUSH2 0x023b
00000705: PUSH2 0x11db
00000708: JUMP
00000709: JUMPDEST
0000070a: CALLVALUE
0000070b: ISZERO
0000070c: PUSH2 0x0714
0000070f: JUMPI
00000710: PUSH1 0x00
00000712: DUP1
00000713: REVERT
00000714: JUMPDEST
00000715: PUSH2 0x023b
00000718: PUSH2 0x1237
0000071b: JUMP
0000071c: JUMPDEST
0000071d: CALLVALUE
0000071e: ISZERO
0000071f: PUSH2 0x0727
00000722: JUMPI
00000723: PUSH1 0x00
00000725: DUP1
00000726: REVERT
00000727: JUMPDEST
00000728: PUSH2 0x025e
0000072b: PUSH2 0x125a
0000072e: JUMP
0000072f: JUMPDEST
00000730: PUSH2 0x023b
00000733: PUSH2 0x0769
00000736: JUMP
00000737: JUMPDEST
00000738: CALLVALUE
00000739: ISZERO
0000073a: PUSH2 0x0742
0000073d: JUMPI
0000073e: PUSH1 0x00
00000740: DUP1
00000741: REVERT
00000742: JUMPDEST
00000743: PUSH2 0x023b
00000746: PUSH1 0x01
00000748: PUSH1 0xa0
0000074a: PUSH1 0x02
0000074c: EXP
0000074d: SUB
0000074e: PUSH1 0x04
00000750: CALLDATALOAD
00000751: AND
00000752: PUSH2 0x1260
00000755: JUMP
00000756: JUMPDEST
00000757: CALLVALUE
00000758: ISZERO
00000759: PUSH2 0x0761
0000075c: JUMPI
0000075d: PUSH1 0x00
0000075f: DUP1
00000760: REVERT
00000761: JUMPDEST
00000762: PUSH2 0x025e
00000765: PUSH2 0x1326
00000768: JUMP
00000769: JUMPDEST
0000076a: PUSH1 0x06
0000076c: SLOAD
0000076d: CALLER
0000076e: PUSH1 0x01
00000770: PUSH1 0xa0
00000772: PUSH1 0x02
00000774: EXP
00000775: SUB
00000776: SWAP1
00000777: DUP2
00000778: AND
00000779: SWAP2
0000077a: AND
0000077b: EQ
0000077c: PUSH2 0x0784
0000077f: JUMPI
00000780: PUSH1 0x00
00000782: DUP1
00000783: REVERT
00000784: JUMPDEST
00000785: PUSH1 0x04
00000787: DUP1
00000788: SLOAD
00000789: CALLVALUE
0000078a: SWAP1
0000078b: DUP2
0000078c: ADD
0000078d: SWAP2
0000078e: DUP3
0000078f: SWAP1
00000790: SSTORE
00000791: PUSH32 0xfe31723f1a66c698cd68f395c83e975ab0a2bd93716a8ae5069a17a9a0a70231
000007b2: SWAP2
000007b3: CALLER
000007b4: SWAP2
000007b5: SWAP1
000007b6: PUSH1 0x40
000007b8: MLOAD
000007b9: DUP1
000007ba: DUP5
000007bb: PUSH1 0x01
000007bd: PUSH1 0xa0
000007bf: PUSH1 0x02
000007c1: EXP
000007c2: SUB
000007c3: AND
000007c4: PUSH1 0x01
000007c6: PUSH1 0xa0
000007c8: PUSH1 0x02
000007ca: EXP
000007cb: SUB
000007cc: AND
000007cd: DUP2
000007ce: MSTORE
000007cf: PUSH1 0x20
000007d1: ADD
000007d2: DUP4
000007d3: DUP2
000007d4: MSTORE
000007d5: PUSH1 0x20
000007d7: ADD
000007d8: DUP3
000007d9: DUP2
000007da: MSTORE
000007db: PUSH1 0x20
000007dd: ADD
000007de: SWAP4
000007df: POP
000007e0: POP
000007e1: POP
000007e2: POP
000007e3: PUSH1 0x40
000007e5: MLOAD
000007e6: DUP1
000007e7: SWAP2
000007e8: SUB
000007e9: SWAP1
000007ea: LOG1
000007eb: JUMP
000007ec: JUMPDEST
000007ed: PUSH1 0x00
000007ef: DUP1
000007f0: DUP1
000007f1: CALLVALUE
000007f2: DUP2
000007f3: SWAP1
000007f4: GT
000007f5: PUSH2 0x07fd
000007f8: JUMPI
000007f9: PUSH1 0x00
000007fb: DUP1
000007fc: REVERT
000007fd: JUMPDEST
000007fe: PUSH1 0x00
00000800: DUP6
00000801: GT
00000802: DUP1
00000803: ISZERO
00000804: PUSH2 0x080e
00000807: JUMPI
00000808: POP
00000809: PUSH1 0x32
0000080b: DUP6
0000080c: GT
0000080d: ISZERO
0000080e: JUMPDEST
0000080f: ISZERO
00000810: ISZERO
00000811: PUSH2 0x0819
00000814: JUMPI
00000815: PUSH1 0x00
00000817: DUP1
00000818: REVERT
00000819: JUMPDEST
0000081a: DUP5
0000081b: CALLVALUE
0000081c: DUP2
0000081d: ISZERO
0000081e: ISZERO
0000081f: PUSH2 0x0824
00000822: JUMPI
00000823: INVALID
00000824: JUMPDEST
00000825: DIV
00000826: SWAP3
00000827: POP
00000828: PUSH2 0x082f
0000082b: PUSH2 0x0fba
0000082e: JUMP
0000082f: JUMPDEST
00000830: DUP4
00000831: LT
00000832: ISZERO
00000833: PUSH2 0x083b
00000836: JUMPI
00000837: PUSH1 0x00
00000839: DUP1
0000083a: REVERT
0000083b: JUMPDEST
0000083c: PUSH2 0x0843
0000083f: PUSH2 0x0cdd
00000842: JUMP
00000843: JUMPDEST
00000844: DUP4
00000845: GT
00000846: ISZERO
00000847: PUSH2 0x084f
0000084a: JUMPI
0000084b: PUSH1 0x00
0000084d: DUP1
0000084e: REVERT
0000084f: JUMPDEST
00000850: PUSH2 0x085d
00000853: PUSH1 0x01
00000855: PUSH3 0x0186a0
00000859: PUSH2 0x0936
0000085c: JUMP
0000085d: JUMPDEST
0000085e: SWAP2
0000085f: POP
00000860: DUP2
00000861: DUP6
00000862: GT
00000863: ISZERO
00000864: PUSH2 0x086c
00000867: JUMPI
00000868: PUSH1 0x00
0000086a: DUP1
0000086b: REVERT
0000086c: JUMPDEST
0000086d: PUSH1 0x0c
0000086f: SLOAD
00000870: DUP3
00000871: LT
00000872: ISZERO
00000873: PUSH2 0x0886
00000876: JUMPI
00000877: PUSH2 0x0884
0000087a: PUSH1 0x0c
0000087c: SLOAD
0000087d: PUSH1 0x03
0000087f: MUL
00000880: PUSH2 0x132b
00000883: JUMP
00000884: JUMPDEST
00000885: POP
00000886: JUMPDEST
00000887: PUSH3 0x0186a0
0000088b: PUSH1 0x12
0000088d: SLOAD
0000088e: PUSH3 0x0186a0
00000892: PUSH1 0x0a
00000894: SLOAD
00000895: CALLVALUE
00000896: MUL
00000897: DUP2
00000898: ISZERO
00000899: ISZERO
0000089a: PUSH2 0x089f
0000089d: JUMPI
0000089e: INVALID
0000089f: JUMPDEST
000008a0: DIV
000008a1: MUL
000008a2: DUP2
000008a3: ISZERO
000008a4: ISZERO
000008a5: PUSH2 0x08aa
000008a8: JUMPI
000008a9: INVALID
000008aa: JUMPDEST
000008ab: PUSH1 0x11
000008ad: DUP1
000008ae: SLOAD
000008af: SWAP3
000008b0: SWAP1
000008b1: SWAP2
000008b2: DIV
000008b3: SWAP2
000008b4: DUP3
000008b5: ADD
000008b6: SWAP1
000008b7: SSTORE
000008b8: PUSH1 0x05
000008ba: DUP1
000008bb: SLOAD
000008bc: CALLVALUE
000008bd: DUP4
000008be: DUP2
000008bf: SUB
000008c0: SWAP1
000008c1: SWAP2
000008c2: ADD
000008c3: SWAP1
000008c4: SWAP2
000008c5: SSTORE
000008c6: PUSH1 0x10
000008c8: SLOAD
000008c9: SWAP2
000008ca: SWAP3
000008cb: POP
000008cc: PUSH32 0xea66d02a1460806372fce5d299585c1cb7e48514a92ae6e65ffca893b4344867
000008ed: SWAP2
000008ee: SWAP1
000008ef: CALLER
000008f0: SWAP1
000008f1: DUP9
000008f2: PUSH1 0x40
000008f4: MLOAD
000008f5: SWAP4
000008f6: DUP5
000008f7: MSTORE
000008f8: PUSH1 0x01
000008fa: PUSH1 0xa0
000008fc: PUSH1 0x02
000008fe: EXP
000008ff: SUB
00000900: SWAP1
00000901: SWAP3
00000902: AND
00000903: PUSH1 0x20
00000905: DUP5
00000906: ADD
00000907: MSTORE
00000908: PUSH1 0x40
0000090a: DUP1
0000090b: DUP5
0000090c: ADD
0000090d: SWAP2
0000090e: SWAP1
0000090f: SWAP2
00000910: MSTORE
00000911: PUSH1 0x60
00000913: DUP4
00000914: ADD
00000915: SWAP2
00000916: SWAP1
00000917: SWAP2
00000918: MSTORE
00000919: PUSH1 0x80
0000091b: SWAP1
0000091c: SWAP2
0000091d: ADD
0000091e: SWAP1
0000091f: MLOAD
00000920: DUP1
00000921: SWAP2
00000922: SUB
00000923: SWAP1
00000924: LOG1
00000925: PUSH2 0x092f
00000928: DUP4
00000929: DUP7
0000092a: DUP7
0000092b: PUSH2 0x138b
0000092e: JUMP
0000092f: JUMPDEST
00000930: POP
00000931: POP
00000932: POP
00000933: POP
00000934: POP
00000935: JUMP
00000936: JUMPDEST
00000937: PUSH1 0x00
00000939: PUSH2 0x0940
0000093c: PUSH2 0x0eee
0000093f: JUMP
00000940: JUMPDEST
00000941: PUSH1 0x01
00000943: PUSH1 0xa0
00000945: PUSH1 0x02
00000947: EXP
00000948: SUB
00000949: AND
0000094a: PUSH4 0x42ad5c86
0000094f: DUP5
00000950: DUP5
00000951: PUSH1 0x00
00000953: PUSH1 0x40
00000955: MLOAD
00000956: PUSH1 0x20
00000958: ADD
00000959: MSTORE
0000095a: PUSH1 0x40
0000095c: MLOAD
0000095d: PUSH1 0xe0
0000095f: PUSH1 0x02
00000961: EXP
00000962: PUSH4 0xffffffff
00000967: DUP6
00000968: AND
00000969: MUL
0000096a: DUP2
0000096b: MSTORE
0000096c: PUSH1 0x0f
0000096e: SWAP3
0000096f: DUP4
00000970: SIGNEXTEND
00000971: DUP4
00000972: SIGNEXTEND
00000973: PUSH1 0x04
00000975: DUP3
00000976: ADD
00000977: MSTORE
00000978: SWAP1
00000979: DUP3
0000097a: SIGNEXTEND
0000097b: SWAP1
0000097c: SWAP2
0000097d: SIGNEXTEND
0000097e: PUSH1 0x24
00000980: DUP3
00000981: ADD
00000982: MSTORE
00000983: PUSH1 0x44
00000985: ADD
00000986: PUSH1 0x20
00000988: PUSH1 0x40
0000098a: MLOAD
0000098b: DUP1
0000098c: DUP4
0000098d: SUB
0000098e: DUP2
0000098f: PUSH1 0x00
00000991: DUP8
00000992: DUP1
00000993: EXTCODESIZE
00000994: ISZERO
00000995: ISZERO
00000996: PUSH2 0x099e
00000999: JUMPI
0000099a: PUSH1 0x00
0000099c: DUP1
0000099d: REVERT
0000099e: JUMPDEST
0000099f: PUSH2 0x02c6
000009a2: GAS
000009a3: SUB
000009a4: CALL
000009a5: ISZERO
000009a6: ISZERO
000009a7: PUSH2 0x09af
000009aa: JUMPI
000009ab: PUSH1 0x00
000009ad: DUP1
000009ae: REVERT
000009af: JUMPDEST
000009b0: POP
000009b1: POP
000009b2: POP
000009b3: PUSH1 0x40
000009b5: MLOAD
000009b6: DUP1
000009b7: MLOAD
000009b8: SWAP5
000009b9: SWAP4
000009ba: POP
000009bb: POP
000009bc: POP
000009bd: POP
000009be: JUMP
000009bf: JUMPDEST
000009c0: PUSH1 0x00
000009c2: NOT
000009c3: DUP2
000009c4: JUMP
000009c5: JUMPDEST
000009c6: PUSH1 0x05
000009c8: SLOAD
000009c9: PUSH1 0x04
000009cb: SLOAD
000009cc: PUSH1 0x00
000009ce: SWAP2
000009cf: ADD
000009d0: DUP2
000009d1: DUP2
000009d2: SGT
000009d3: PUSH2 0x09dd
000009d6: JUMPI
000009d7: PUSH1 0x00
000009d9: PUSH2 0x09df
000009dc: JUMP
000009dd: JUMPDEST
000009de: DUP1
000009df: JUMPDEST
000009e0: SWAP2
000009e1: POP
000009e2: JUMPDEST
000009e3: POP
000009e4: SWAP1
000009e5: JUMP
000009e6: JUMPDEST
000009e7: PUSH1 0x0e
000009e9: SLOAD
000009ea: DUP2
000009eb: JUMP
000009ec: JUMPDEST
000009ed: PUSH1 0x09
000009ef: PUSH1 0x20
000009f1: MSTORE
000009f2: PUSH1 0x00
000009f4: SWAP1
000009f5: DUP2
000009f6: MSTORE
000009f7: PUSH1 0x40
000009f9: SWAP1
000009fa: KECCAK256
000009fb: DUP1
000009fc: SLOAD
000009fd: PUSH1 0x01
000009ff: DUP3
00000a00: ADD
00000a01: SLOAD
00000a02: PUSH1 0x02
00000a04: SWAP1
00000a05: SWAP3
00000a06: ADD
00000a07: SLOAD
00000a08: SWAP1
00000a09: SWAP2
00000a0a: SWAP1
00000a0b: DUP4
00000a0c: JUMP
00000a0d: JUMPDEST
00000a0e: PUSH1 0x07
00000a10: SLOAD
00000a11: CALLER
00000a12: PUSH1 0x01
00000a14: PUSH1 0xa0
00000a16: PUSH1 0x02
00000a18: EXP
00000a19: SUB
00000a1a: SWAP1
00000a1b: DUP2
00000a1c: AND
00000a1d: SWAP2
00000a1e: AND
00000a1f: EQ
00000a20: PUSH2 0x0a28
00000a23: JUMPI
00000a24: PUSH1 0x00
00000a26: DUP1
00000a27: REVERT
00000a28: JUMPDEST
00000a29: PUSH3 0x0186a0
00000a2d: DUP2
00000a2e: LT
00000a2f: PUSH2 0x0a37
00000a32: JUMPI
00000a33: PUSH1 0x00
00000a35: DUP1
00000a36: REVERT
00000a37: JUMPDEST
00000a38: PUSH1 0x12
00000a3a: SSTORE
00000a3b: JUMP
00000a3c: JUMPDEST
00000a3d: PUSH1 0x01
00000a3f: DUP1
00000a40: SLOAD
00000a41: PUSH1 0x01
00000a43: DUP2
00000a44: PUSH1 0x01
00000a46: AND
00000a47: ISZERO
00000a48: PUSH2 0x0100
00000a4b: MUL
00000a4c: SUB
00000a4d: AND
00000a4e: PUSH1 0x02
00000a50: SWAP1
00000a51: DIV
00000a52: DUP1
00000a53: PUSH1 0x1f
00000a55: ADD
00000a56: PUSH1 0x20
00000a58: DUP1
00000a59: SWAP2
00000a5a: DIV
00000a5b: MUL
00000a5c: PUSH1 0x20
00000a5e: ADD
00000a5f: PUSH1 0x40
00000a61: MLOAD
00000a62: SWAP1
00000a63: DUP2
00000a64: ADD
00000a65: PUSH1 0x40
00000a67: MSTORE
00000a68: DUP1
00000a69: SWAP3
00000a6a: SWAP2
00000a6b: SWAP1
00000a6c: DUP2
00000a6d: DUP2
00000a6e: MSTORE
00000a6f: PUSH1 0x20
00000a71: ADD
00000a72: DUP3
00000a73: DUP1
00000a74: SLOAD
00000a75: PUSH1 0x01
00000a77: DUP2
00000a78: PUSH1 0x01
00000a7a: AND
00000a7b: ISZERO
00000a7c: PUSH2 0x0100
00000a7f: MUL
00000a80: SUB
00000a81: AND
00000a82: PUSH1 0x02
00000a84: SWAP1
00000a85: DIV
00000a86: DUP1
00000a87: ISZERO
00000a88: PUSH2 0x0ad2
00000a8b: JUMPI
00000a8c: DUP1
00000a8d: PUSH1 0x1f
00000a8f: LT
00000a90: PUSH2 0x0aa7
00000a93: JUMPI
00000a94: PUSH2 0x0100
00000a97: DUP1
00000a98: DUP4
00000a99: SLOAD
00000a9a: DIV
00000a9b: MUL
00000a9c: DUP4
00000a9d: MSTORE
00000a9e: SWAP2
00000a9f: PUSH1 0x20
00000aa1: ADD
00000aa2: SWAP2
00000aa3: PUSH2 0x0ad2
00000aa6: JUMP
00000aa7: JUMPDEST
00000aa8: DUP3
00000aa9: ADD
00000aaa: SWAP2
00000aab: SWAP1
00000aac: PUSH1 0x00
00000aae: MSTORE
00000aaf: PUSH1 0x20
00000ab1: PUSH1 0x00
00000ab3: KECCAK256
00000ab4: SWAP1
00000ab5: JUMPDEST
00000ab6: DUP2
00000ab7: SLOAD
00000ab8: DUP2
00000ab9: MSTORE
00000aba: SWAP1
00000abb: PUSH1 0x01
00000abd: ADD
00000abe: SWAP1
00000abf: PUSH1 0x20
00000ac1: ADD
00000ac2: DUP1
00000ac3: DUP4
00000ac4: GT
00000ac5: PUSH2 0x0ab5
00000ac8: JUMPI
00000ac9: DUP3
00000aca: SWAP1
00000acb: SUB
00000acc: PUSH1 0x1f
00000ace: AND
00000acf: DUP3
00000ad0: ADD
00000ad1: SWAP2
00000ad2: JUMPDEST
00000ad3: POP
00000ad4: POP
00000ad5: POP
00000ad6: POP
00000ad7: POP
00000ad8: DUP2
00000ad9: JUMP
00000ada: JUMPDEST
00000adb: PUSH1 0x07
00000add: SLOAD
00000ade: CALLER
00000adf: PUSH1 0x01
00000ae1: PUSH1 0xa0
00000ae3: PUSH1 0x02
00000ae5: EXP
00000ae6: SUB
00000ae7: SWAP1
00000ae8: DUP2
00000ae9: AND
00000aea: SWAP2
00000aeb: AND
00000aec: EQ
00000aed: PUSH2 0x0af5
00000af0: JUMPI
00000af1: PUSH1 0x00
00000af3: DUP1
00000af4: REVERT
00000af5: JUMPDEST
00000af6: PUSH1 0x00
00000af8: DUP2
00000af9: GT
00000afa: PUSH2 0x0b02
00000afd: JUMPI
00000afe: PUSH1 0x00
00000b00: DUP1
00000b01: REVERT
00000b02: JUMPDEST
00000b03: PUSH2 0x0b0b
00000b06: DUP2
00000b07: PUSH2 0x132b
00000b0a: JUMP
00000b0b: JUMPDEST
00000b0c: POP
00000b0d: POP
00000b0e: JUMP
00000b0f: JUMPDEST
00000b10: PUSH1 0x01
00000b12: PUSH1 0xa0
00000b14: PUSH1 0x02
00000b16: EXP
00000b17: SUB
00000b18: ADDRESS
00000b19: AND
00000b1a: BALANCE
00000b1b: JUMPDEST
00000b1c: SWAP1
00000b1d: JUMP
00000b1e: JUMPDEST
00000b1f: PUSH1 0x0f
00000b21: SLOAD
00000b22: DUP2
00000b23: JUMP
00000b24: JUMPDEST
00000b25: PUSH1 0x06
00000b27: SLOAD
00000b28: PUSH1 0x01
00000b2a: PUSH1 0xa0
00000b2c: PUSH1 0x02
00000b2e: EXP
00000b2f: SUB
00000b30: AND
00000b31: DUP2
00000b32: JUMP
00000b33: JUMPDEST
00000b34: PUSH1 0x0d
00000b36: SLOAD
00000b37: DUP2
00000b38: JUMP
00000b39: JUMPDEST
00000b3a: PUSH1 0x00
00000b3c: PUSH2 0x0b43
00000b3f: PUSH2 0x0eee
00000b42: JUMP
00000b43: JUMPDEST
00000b44: PUSH1 0x01
00000b46: PUSH1 0xa0
00000b48: PUSH1 0x02
00000b4a: EXP
00000b4b: SUB
00000b4c: AND
00000b4d: PUSH4 0x7ce27a4e
00000b52: DUP6
00000b53: DUP6
00000b54: DUP6
00000b55: PUSH1 0x00
00000b57: PUSH1 0x40
00000b59: MLOAD
00000b5a: PUSH1 0x20
00000b5c: ADD
00000b5d: MSTORE
00000b5e: PUSH1 0x40
00000b60: MLOAD
00000b61: PUSH1 0xe0
00000b63: PUSH1 0x02
00000b65: EXP
00000b66: PUSH4 0xffffffff
00000b6b: DUP7
00000b6c: AND
00000b6d: MUL
00000b6e: DUP2
00000b6f: MSTORE
00000b70: PUSH1 0x0f
00000b72: SWAP4
00000b73: DUP5
00000b74: SIGNEXTEND
00000b75: DUP5
00000b76: SIGNEXTEND
00000b77: PUSH1 0x04
00000b79: DUP3
00000b7a: ADD
00000b7b: MSTORE
00000b7c: SWAP2
00000b7d: DUP4
00000b7e: SIGNEXTEND
00000b7f: SWAP1
00000b80: SWAP3
00000b81: SIGNEXTEND
00000b82: PUSH1 0x24
00000b84: DUP3
00000b85: ADD
00000b86: MSTORE
00000b87: PUSH1 0x44
00000b89: DUP2
00000b8a: ADD
00000b8b: SWAP2
00000b8c: SWAP1
00000b8d: SWAP2
00000b8e: MSTORE
00000b8f: PUSH1 0x64
00000b91: ADD
00000b92: PUSH1 0x20
00000b94: PUSH1 0x40
00000b96: MLOAD
00000b97: DUP1
00000b98: DUP4
00000b99: SUB
00000b9a: DUP2
00000b9b: PUSH1 0x00
00000b9d: DUP8
00000b9e: DUP1
00000b9f: EXTCODESIZE
00000ba0: ISZERO
00000ba1: ISZERO
00000ba2: PUSH2 0x0baa
00000ba5: JUMPI
00000ba6: PUSH1 0x00
00000ba8: DUP1
00000ba9: REVERT
00000baa: JUMPDEST
00000bab: PUSH2 0x02c6
00000bae: GAS
00000baf: SUB
00000bb0: CALL
00000bb1: ISZERO
00000bb2: ISZERO
00000bb3: PUSH2 0x0bbb
00000bb6: JUMPI
00000bb7: PUSH1 0x00
00000bb9: DUP1
00000bba: REVERT
00000bbb: JUMPDEST
00000bbc: POP
00000bbd: POP
00000bbe: POP
00000bbf: PUSH1 0x40
00000bc1: MLOAD
00000bc2: DUP1
00000bc3: MLOAD
00000bc4: SWAP6
00000bc5: SWAP5
00000bc6: POP
00000bc7: POP
00000bc8: POP
00000bc9: POP
00000bca: POP
00000bcb: JUMP
00000bcc: JUMPDEST
00000bcd: PUSH1 0x05
00000bcf: SLOAD
00000bd0: DUP2
00000bd1: JUMP
00000bd2: JUMPDEST
00000bd3: PUSH1 0x13
00000bd5: SLOAD
00000bd6: DUP2
00000bd7: JUMP
00000bd8: JUMPDEST
00000bd9: PUSH1 0x07
00000bdb: SLOAD
00000bdc: CALLER
00000bdd: PUSH1 0x01
00000bdf: PUSH1 0xa0
00000be1: PUSH1 0x02
00000be3: EXP
00000be4: SUB
00000be5: SWAP1
00000be6: DUP2
00000be7: AND
00000be8: SWAP2
00000be9: AND
00000bea: EQ
00000beb: PUSH2 0x0bf3
00000bee: JUMPI
00000bef: PUSH1 0x00
00000bf1: DUP1
00000bf2: REVERT
00000bf3: JUMPDEST
00000bf4: PUSH1 0x0c
00000bf6: SSTORE
00000bf7: JUMP
00000bf8: JUMPDEST
00000bf9: PUSH1 0x07
00000bfb: SLOAD
00000bfc: PUSH1 0x00
00000bfe: SWAP1
00000bff: CALLER
00000c00: PUSH1 0x01
00000c02: PUSH1 0xa0
00000c04: PUSH1 0x02
00000c06: EXP
00000c07: SUB
00000c08: SWAP1
00000c09: DUP2
00000c0a: AND
00000c0b: SWAP2
00000c0c: AND
00000c0d: EQ
00000c0e: PUSH2 0x0c16
00000c11: JUMPI
00000c12: PUSH1 0x00
00000c14: DUP1
00000c15: REVERT
00000c16: JUMPDEST
00000c17: POP
00000c18: PUSH1 0x0a
00000c1a: SLOAD
00000c1b: SWAP1
00000c1c: JUMP
00000c1d: JUMPDEST
00000c1e: PUSH1 0x06
00000c20: SLOAD
00000c21: PUSH1 0x00
00000c23: SWAP1
00000c24: CALLER
00000c25: PUSH1 0x01
00000c27: PUSH1 0xa0
00000c29: PUSH1 0x02
00000c2b: EXP
00000c2c: SUB
00000c2d: SWAP1
00000c2e: DUP2
00000c2f: AND
00000c30: SWAP2
00000c31: AND
00000c32: EQ
00000c33: PUSH2 0x0c3b
00000c36: JUMPI
00000c37: PUSH1 0x00
00000c39: DUP1
00000c3a: REVERT
00000c3b: JUMPDEST
00000c3c: PUSH1 0x01
00000c3e: PUSH1 0xa0
00000c40: PUSH1 0x02
00000c42: EXP
00000c43: SUB
00000c44: DUP3
00000c45: AND
00000c46: ISZERO
00000c47: ISZERO
00000c48: PUSH2 0x0c5a
00000c4b: JUMPI
00000c4c: PUSH1 0x06
00000c4e: SLOAD
00000c4f: PUSH1 0x01
00000c51: PUSH1 0xa0
00000c53: PUSH1 0x02
00000c55: EXP
00000c56: SUB
00000c57: AND
00000c58: SWAP2
00000c59: POP
00000c5a: JUMPDEST
00000c5b: POP
00000c5c: PUSH1 0x00
00000c5e: PUSH1 0x04
00000c60: DUP2
00000c61: SWAP1
00000c62: SSTORE
00000c63: PUSH1 0x05
00000c65: SSTORE
00000c66: PUSH1 0x01
00000c68: PUSH1 0xa0
00000c6a: PUSH1 0x02
00000c6c: EXP
00000c6d: SUB
00000c6e: ADDRESS
00000c6f: AND
00000c70: BALANCE
00000c71: PUSH2 0x0c7a
00000c74: DUP3
00000c75: DUP3
00000c76: PUSH2 0x1551
00000c79: JUMP
00000c7a: JUMPDEST
00000c7b: PUSH32 0x3d58bd61d8606013d7b93463f5e9938573d0cf107ae6ad2de256c0ff55fac2fc
00000c9c: DUP3
00000c9d: DUP3
00000c9e: PUSH1 0x04
00000ca0: SLOAD
00000ca1: PUSH1 0x40
00000ca3: MLOAD
00000ca4: DUP1
00000ca5: DUP5
00000ca6: PUSH1 0x01
00000ca8: PUSH1 0xa0
00000caa: PUSH1 0x02
00000cac: EXP
00000cad: SUB
00000cae: AND
00000caf: PUSH1 0x01
00000cb1: PUSH1 0xa0
00000cb3: PUSH1 0x02
00000cb5: EXP
00000cb6: SUB
00000cb7: AND
00000cb8: DUP2
00000cb9: MSTORE
00000cba: PUSH1 0x20
00000cbc: ADD
00000cbd: DUP4
00000cbe: DUP2
00000cbf: MSTORE
00000cc0: PUSH1 0x20
00000cc2: ADD
00000cc3: DUP3
00000cc4: DUP2
00000cc5: MSTORE
00000cc6: PUSH1 0x20
00000cc8: ADD
00000cc9: SWAP4
00000cca: POP
00000ccb: POP
00000ccc: POP
00000ccd: POP
00000cce: PUSH1 0x40
00000cd0: MLOAD
00000cd1: DUP1
00000cd2: SWAP2
00000cd3: SUB
00000cd4: SWAP1
00000cd5: LOG1
00000cd6: PUSH2 0x0b0b
00000cd9: PUSH2 0x165e
00000cdc: JUMP
00000cdd: JUMPDEST
00000cde: PUSH1 0x00
00000ce0: PUSH2 0x0d33
00000ce3: PUSH2 0x0cea
00000ce6: PUSH2 0x0fba
00000ce9: JUMP
00000cea: JUMPDEST
00000ceb: PUSH2 0x0d2e
00000cee: PUSH3 0x0186a0
00000cf2: PUSH1 0x0b
00000cf4: SLOAD
00000cf5: PUSH2 0x0cfc
00000cf8: PUSH2 0x09c5
00000cfb: JUMP
00000cfc: JUMPDEST
00000cfd: MUL
00000cfe: DUP2
00000cff: ISZERO
00000d00: ISZERO
00000d01: PUSH2 0x0d06
00000d04: JUMPI
00000d05: INVALID
00000d06: JUMPDEST
00000d07: DIV
00000d08: PUSH1 0x08
00000d0a: PUSH1 0x00
00000d0c: DUP2
00000d0d: SLOAD
00000d0e: DUP2
00000d0f: LT
00000d10: ISZERO
00000d11: ISZERO
00000d12: PUSH2 0x0d17
00000d15: JUMPI
00000d16: INVALID
00000d17: JUMPDEST
00000d18: SWAP1
00000d19: PUSH1 0x00
00000d1b: MSTORE
00000d1c: PUSH1 0x20
00000d1e: PUSH1 0x00
00000d20: KECCAK256
00000d21: SWAP1
00000d22: PUSH1 0x04
00000d24: MUL
00000d25: ADD
00000d26: PUSH1 0x00
00000d28: ADD
00000d29: SLOAD
00000d2a: PUSH2 0x16de
00000d2d: JUMP
00000d2e: JUMPDEST
00000d2f: PUSH2 0x16f5
00000d32: JUMP
00000d33: JUMPDEST
00000d34: SWAP1
00000d35: POP
00000d36: SWAP1
00000d37: JUMP
00000d38: JUMPDEST
00000d39: PUSH1 0x12
00000d3b: SLOAD
00000d3c: DUP2
00000d3d: JUMP
00000d3e: JUMPDEST
00000d3f: PUSH1 0x06
00000d41: SLOAD
00000d42: CALLER
00000d43: PUSH1 0x01
00000d45: PUSH1 0xa0
00000d47: PUSH1 0x02
00000d49: EXP
00000d4a: SUB
00000d4b: SWAP1
00000d4c: DUP2
00000d4d: AND
00000d4e: SWAP2
00000d4f: AND
00000d50: EQ
00000d51: PUSH2 0x0d59
00000d54: JUMPI
00000d55: PUSH1 0x00
00000d57: DUP1
00000d58: REVERT
00000d59: JUMPDEST
00000d5a: PUSH1 0x01
00000d5c: PUSH1 0xa0
00000d5e: PUSH1 0x02
00000d60: EXP
00000d61: SUB
00000d62: DUP2
00000d63: AND
00000d64: ISZERO
00000d65: ISZERO
00000d66: PUSH2 0x0d6e
00000d69: JUMPI
00000d6a: PUSH1 0x00
00000d6c: DUP1
00000d6d: REVERT
00000d6e: JUMPDEST
00000d6f: PUSH1 0x06
00000d71: DUP1
00000d72: SLOAD
00000d73: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d88: NOT
00000d89: AND
00000d8a: PUSH1 0x01
00000d8c: PUSH1 0xa0
00000d8e: PUSH1 0x02
00000d90: EXP
00000d91: SUB
00000d92: SWAP3
00000d93: SWAP1
00000d94: SWAP3
00000d95: AND
00000d96: SWAP2
00000d97: SWAP1
00000d98: SWAP2
00000d99: OR
00000d9a: SWAP1
00000d9b: SSTORE
00000d9c: JUMP
00000d9d: JUMPDEST
00000d9e: PUSH1 0x07
00000da0: SLOAD
00000da1: CALLER
00000da2: PUSH1 0x01
00000da4: PUSH1 0xa0
00000da6: PUSH1 0x02
00000da8: EXP
00000da9: SUB
00000daa: SWAP1
00000dab: DUP2
00000dac: AND
00000dad: SWAP2
00000dae: AND
00000daf: EQ
00000db0: PUSH2 0x0db8
00000db3: JUMPI
00000db4: PUSH1 0x00
00000db6: DUP1
00000db7: REVERT
00000db8: JUMPDEST
00000db9: PUSH1 0x08
00000dbb: SLOAD
00000dbc: DUP4
00000dbd: LT
00000dbe: DUP1
00000dbf: ISZERO
00000dc0: PUSH2 0x0dc9
00000dc3: JUMPI
00000dc4: POP
00000dc5: PUSH1 0x00
00000dc7: DUP3
00000dc8: GT
00000dc9: JUMPDEST
00000dca: ISZERO
00000dcb: ISZERO
00000dcc: PUSH2 0x0dd4
00000dcf: JUMPI
00000dd0: PUSH1 0x00
00000dd2: DUP1
00000dd3: REVERT
00000dd4: JUMPDEST
00000dd5: DUP2
00000dd6: PUSH1 0x08
00000dd8: DUP5
00000dd9: DUP2
00000dda: SLOAD
00000ddb: DUP2
00000ddc: LT
00000ddd: ISZERO
00000dde: ISZERO
00000ddf: PUSH2 0x0de4
00000de2: JUMPI
00000de3: INVALID
00000de4: JUMPDEST
00000de5: PUSH1 0x00
00000de7: SWAP2
00000de8: DUP3
00000de9: MSTORE
00000dea: PUSH1 0x20
00000dec: SWAP1
00000ded: SWAP2
00000dee: KECCAK256
00000def: PUSH1 0x04
00000df1: SWAP1
00000df2: SWAP2
00000df3: MUL
00000df4: ADD
00000df5: SSTORE
00000df6: PUSH1 0x08
00000df8: DUP1
00000df9: SLOAD
00000dfa: DUP3
00000dfb: SWAP2
00000dfc: SWAP1
00000dfd: DUP6
00000dfe: SWAP1
00000dff: DUP2
00000e00: LT
00000e01: PUSH2 0x0e06
00000e04: JUMPI
00000e05: INVALID
00000e06: JUMPDEST
00000e07: SWAP1
00000e08: PUSH1 0x00
00000e0a: MSTORE
00000e0b: PUSH1 0x20
00000e0d: PUSH1 0x00
00000e0f: KECCAK256
00000e10: SWAP1
00000e11: PUSH1 0x04
00000e13: MUL
00000e14: ADD
00000e15: PUSH1 0x01
00000e17: ADD
00000e18: DUP2
00000e19: SWAP1
00000e1a: SSTORE
00000e1b: POP
00000e1c: PUSH2 0x0e23
00000e1f: PUSH2 0x170e
00000e22: JUMP
00000e23: JUMPDEST
00000e24: POP
00000e25: POP
00000e26: POP
00000e27: JUMP
00000e28: JUMPDEST
00000e29: PUSH1 0x0c
00000e2b: SLOAD
00000e2c: DUP2
00000e2d: JUMP
00000e2e: JUMPDEST
00000e2f: PUSH1 0x07
00000e31: SLOAD
00000e32: CALLER
00000e33: PUSH1 0x01
00000e35: PUSH1 0xa0
00000e37: PUSH1 0x02
00000e39: EXP
00000e3a: SUB
00000e3b: SWAP1
00000e3c: DUP2
00000e3d: AND
00000e3e: SWAP2
00000e3f: AND
00000e40: EQ
00000e41: PUSH2 0x0e49
00000e44: JUMPI
00000e45: PUSH1 0x00
00000e47: DUP1
00000e48: REVERT
00000e49: JUMPDEST
00000e4a: PUSH1 0x00
00000e4c: DUP2
00000e4d: GT
00000e4e: DUP1
00000e4f: ISZERO
00000e50: PUSH2 0x0e5c
00000e53: JUMPI
00000e54: POP
00000e55: PUSH3 0x0186a0
00000e59: DUP2
00000e5a: GT
00000e5b: ISZERO
00000e5c: JUMPDEST
00000e5d: ISZERO
00000e5e: ISZERO
00000e5f: PUSH2 0x0e67
00000e62: JUMPI
00000e63: PUSH1 0x00
00000e65: DUP1
00000e66: REVERT
00000e67: JUMPDEST
00000e68: PUSH1 0x0b
00000e6a: SSTORE
00000e6b: JUMP
00000e6c: JUMPDEST
00000e6d: PUSH1 0x11
00000e6f: SLOAD
00000e70: DUP2
00000e71: JUMP
00000e72: JUMPDEST
00000e73: PUSH1 0x07
00000e75: SLOAD
00000e76: CALLER
00000e77: PUSH1 0x01
00000e79: PUSH1 0xa0
00000e7b: PUSH1 0x02
00000e7d: EXP
00000e7e: SUB
00000e7f: SWAP1
00000e80: DUP2
00000e81: AND
00000e82: SWAP2
00000e83: AND
00000e84: EQ
00000e85: PUSH2 0x0e8d
00000e88: JUMPI
00000e89: PUSH1 0x00
00000e8b: DUP1
00000e8c: REVERT
00000e8d: JUMPDEST
00000e8e: DUP1
00000e8f: PUSH1 0x00
00000e91: LT
00000e92: DUP1
00000e93: ISZERO
00000e94: PUSH2 0x0e9f
00000e97: JUMPI
00000e98: POP
00000e99: PUSH3 0x0186a0
00000e9d: DUP2
00000e9e: LT
00000e9f: JUMPDEST
00000ea0: ISZERO
00000ea1: ISZERO
00000ea2: PUSH2 0x0eaa
00000ea5: JUMPI
00000ea6: PUSH1 0x00
00000ea8: DUP1
00000ea9: REVERT
00000eaa: JUMPDEST
00000eab: PUSH1 0x0a
00000ead: DUP2
00000eae: SWAP1
00000eaf: SSTORE
00000eb0: PUSH2 0x0eb7
00000eb3: PUSH2 0x170e
00000eb6: JUMP
00000eb7: JUMPDEST
00000eb8: POP
00000eb9: JUMP
00000eba: JUMPDEST
00000ebb: PUSH1 0x08
00000ebd: DUP1
00000ebe: SLOAD
00000ebf: DUP3
00000ec0: SWAP1
00000ec1: DUP2
00000ec2: LT
00000ec3: PUSH2 0x0ec8
00000ec6: JUMPI
00000ec7: INVALID
00000ec8: JUMPDEST
00000ec9: PUSH1 0x00
00000ecb: SWAP2
00000ecc: DUP3
00000ecd: MSTORE
00000ece: PUSH1 0x20
00000ed0: SWAP1
00000ed1: SWAP2
00000ed2: KECCAK256
00000ed3: PUSH1 0x04
00000ed5: SWAP1
00000ed6: SWAP2
00000ed7: MUL
00000ed8: ADD
00000ed9: DUP1
00000eda: SLOAD
00000edb: PUSH1 0x01
00000edd: DUP3
00000ede: ADD
00000edf: SLOAD
00000ee0: PUSH1 0x02
00000ee2: DUP4
00000ee3: ADD
00000ee4: SLOAD
00000ee5: SWAP2
00000ee6: SWAP4
00000ee7: POP
00000ee8: SWAP2
00000ee9: PUSH1 0x03
00000eeb: ADD
00000eec: DUP5
00000eed: JUMP
00000eee: JUMPDEST
00000eef: PUSH1 0x00
00000ef1: DUP1
00000ef2: SLOAD
00000ef3: DUP2
00000ef4: SWAP1
00000ef5: PUSH1 0x01
00000ef7: PUSH1 0xa0
00000ef9: PUSH1 0x02
00000efb: EXP
00000efc: SUB
00000efd: AND
00000efe: ISZERO
00000eff: ISZERO
00000f00: DUP1
00000f01: PUSH2 0x0f1d
00000f04: JUMPI
00000f05: POP
00000f06: PUSH1 0x00
00000f08: DUP1
00000f09: SLOAD
00000f0a: PUSH2 0x0f1b
00000f0d: SWAP1
00000f0e: PUSH1 0x01
00000f10: PUSH1 0xa0
00000f12: PUSH1 0x02
00000f14: EXP
00000f15: SUB
00000f16: AND
00000f17: PUSH2 0x17db
00000f1a: JUMP
00000f1b: JUMPDEST
00000f1c: GT
00000f1d: JUMPDEST
00000f1e: ISZERO
00000f1f: PUSH2 0x0f88
00000f22: JUMPI
00000f23: PUSH1 0x00
00000f25: DUP1
00000f26: SLOAD
00000f27: PUSH1 0x01
00000f29: PUSH1 0xa0
00000f2b: PUSH1 0x02
00000f2d: EXP
00000f2e: SUB
00000f2f: AND
00000f30: SWAP1
00000f31: PUSH4 0x38cc4831
00000f36: SWAP1
00000f37: PUSH1 0x40
00000f39: MLOAD
00000f3a: PUSH1 0x20
00000f3c: ADD
00000f3d: MSTORE
00000f3e: PUSH1 0x40
00000f40: MLOAD
00000f41: DUP2
00000f42: PUSH4 0xffffffff
00000f47: AND
00000f48: PUSH1 0xe0
00000f4a: PUSH1 0x02
00000f4c: EXP
00000f4d: MUL
00000f4e: DUP2
00000f4f: MSTORE
00000f50: PUSH1 0x04
00000f52: ADD
00000f53: PUSH1 0x20
00000f55: PUSH1 0x40
00000f57: MLOAD
00000f58: DUP1
00000f59: DUP4
00000f5a: SUB
00000f5b: DUP2
00000f5c: PUSH1 0x00
00000f5e: DUP8
00000f5f: DUP1
00000f60: EXTCODESIZE
00000f61: ISZERO
00000f62: ISZERO
00000f63: PUSH2 0x0f6b
00000f66: JUMPI
00000f67: PUSH1 0x00
00000f69: DUP1
00000f6a: REVERT
00000f6b: JUMPDEST
00000f6c: PUSH2 0x02c6
00000f6f: GAS
00000f70: SUB
00000f71: CALL
00000f72: ISZERO
00000f73: ISZERO
00000f74: PUSH2 0x0f7c
00000f77: JUMPI
00000f78: PUSH1 0x00
00000f7a: DUP1
00000f7b: REVERT
00000f7c: JUMPDEST
00000f7d: POP
00000f7e: POP
00000f7f: POP
00000f80: PUSH1 0x40
00000f82: MLOAD
00000f83: DUP1
00000f84: MLOAD
00000f85: SWAP2
00000f86: POP
00000f87: POP
00000f88: JUMPDEST
00000f89: PUSH1 0x01
00000f8b: PUSH1 0xa0
00000f8d: PUSH1 0x02
00000f8f: EXP
00000f90: SUB
00000f91: DUP2
00000f92: AND
00000f93: ISZERO
00000f94: DUP1
00000f95: PUSH2 0x0fa4
00000f98: JUMPI
00000f99: POP
00000f9a: PUSH2 0x0fa2
00000f9d: DUP2
00000f9e: PUSH2 0x17db
00000fa1: JUMP
00000fa2: JUMPDEST
00000fa3: ISZERO
00000fa4: JUMPDEST
00000fa5: ISZERO
00000fa6: PUSH2 0x09dd
00000fa9: JUMPI
00000faa: POP
00000fab: POP
00000fac: PUSH1 0x03
00000fae: SLOAD
00000faf: PUSH1 0x01
00000fb1: PUSH1 0xa0
00000fb3: PUSH1 0x02
00000fb5: EXP
00000fb6: SUB
00000fb7: AND
00000fb8: SWAP1
00000fb9: JUMP
00000fba: JUMPDEST
00000fbb: PUSH1 0x00
00000fbd: DUP1
00000fbe: PUSH2 0x0fc5
00000fc1: PUSH2 0x1010
00000fc4: JUMP
00000fc5: JUMPDEST
00000fc6: SWAP1
00000fc7: POP
00000fc8: PUSH1 0x12
00000fca: SLOAD
00000fcb: PUSH3 0x0186a0
00000fcf: SUB
00000fd0: PUSH1 0x0a
00000fd2: SLOAD
00000fd3: DUP3
00000fd4: MUL
00000fd5: MUL
00000fd6: PUSH3 0x0186a0
00000fda: DUP1
00000fdb: PUSH2 0x0fe9
00000fde: PUSH1 0x01
00000fe0: PUSH3 0x0186a0
00000fe4: DUP7
00000fe5: PUSH2 0x0b39
00000fe8: JUMP
00000fe9: JUMPDEST
00000fea: MUL
00000feb: MUL
00000fec: DUP2
00000fed: ISZERO
00000fee: ISZERO
00000fef: PUSH2 0x0ff4
00000ff2: JUMPI
00000ff3: INVALID
00000ff4: JUMPDEST
00000ff5: DIV
00000ff6: SWAP2
00000ff7: POP
00000ff8: POP
00000ff9: SWAP1
00000ffa: JUMP
00000ffb: JUMPDEST
00000ffc: PUSH1 0x07
00000ffe: SLOAD
00000fff: PUSH1 0x01
00001001: PUSH1 0xa0
00001003: PUSH1 0x02
00001005: EXP
00001006: SUB
00001007: AND
00001008: DUP2
00001009: JUMP
0000100a: JUMPDEST
0000100b: PUSH1 0x0b
0000100d: SLOAD
0000100e: DUP2
0000100f: JUMP
00001010: JUMPDEST
00001011: PUSH1 0x00
00001013: PUSH2 0x101a
00001016: PUSH2 0x0eee
00001019: JUMP
0000101a: JUMPDEST
0000101b: PUSH1 0x01
0000101d: PUSH1 0xa0
0000101f: PUSH1 0x02
00001021: EXP
00001022: SUB
00001023: AND
00001024: PUSH4 0x863007d0
00001029: PUSH1 0x00
0000102b: PUSH1 0x40
0000102d: MLOAD
0000102e: PUSH1 0x20
00001030: ADD
00001031: MSTORE
00001032: PUSH1 0x40
00001034: MLOAD
00001035: DUP2
00001036: PUSH4 0xffffffff
0000103b: AND
0000103c: PUSH1 0xe0
0000103e: PUSH1 0x02
00001040: EXP
00001041: MUL
00001042: DUP2
00001043: MSTORE
00001044: PUSH1 0x04
00001046: ADD
00001047: PUSH1 0x20
00001049: PUSH1 0x40
0000104b: MLOAD
0000104c: DUP1
0000104d: DUP4
0000104e: SUB
0000104f: DUP2
00001050: PUSH1 0x00
00001052: DUP8
00001053: DUP1
00001054: EXTCODESIZE
00001055: ISZERO
00001056: ISZERO
00001057: PUSH2 0x105f
0000105a: JUMPI
0000105b: PUSH1 0x00
0000105d: DUP1
0000105e: REVERT
0000105f: JUMPDEST
00001060: PUSH2 0x02c6
00001063: GAS
00001064: SUB
00001065: CALL
00001066: ISZERO
00001067: ISZERO
00001068: PUSH2 0x1070
0000106b: JUMPI
0000106c: PUSH1 0x00
0000106e: DUP1
0000106f: REVERT
00001070: JUMPDEST
00001071: POP
00001072: POP
00001073: POP
00001074: PUSH1 0x40
00001076: MLOAD
00001077: DUP1
00001078: MLOAD
00001079: SWAP2
0000107a: POP
0000107b: POP
0000107c: SWAP1
0000107d: JUMP
0000107e: JUMPDEST
0000107f: PUSH1 0x10
00001081: SLOAD
00001082: DUP2
00001083: JUMP
00001084: JUMPDEST
00001085: PUSH1 0x07
00001087: SLOAD
00001088: CALLER
00001089: PUSH1 0x01
0000108b: PUSH1 0xa0
0000108d: PUSH1 0x02
0000108f: EXP
00001090: SUB
00001091: SWAP1
00001092: DUP2
00001093: AND
00001094: SWAP2
00001095: AND
00001096: EQ
00001097: PUSH2 0x109f
0000109a: JUMPI
0000109b: PUSH1 0x00
0000109d: DUP1
0000109e: REVERT
0000109f: JUMPDEST
000010a0: PUSH1 0x03
000010a2: DUP1
000010a3: SLOAD
000010a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010b9: NOT
000010ba: AND
000010bb: PUSH1 0x01
000010bd: PUSH1 0xa0
000010bf: PUSH1 0x02
000010c1: EXP
000010c2: SUB
000010c3: SWAP3
000010c4: SWAP1
000010c5: SWAP3
000010c6: AND
000010c7: SWAP2
000010c8: SWAP1
000010c9: SWAP2
000010ca: OR
000010cb: SWAP1
000010cc: SSTORE
000010cd: JUMP
000010ce: JUMPDEST
000010cf: PUSH1 0x06
000010d1: SLOAD
000010d2: CALLER
000010d3: PUSH1 0x01
000010d5: PUSH1 0xa0
000010d7: PUSH1 0x02
000010d9: EXP
000010da: SUB
000010db: SWAP1
000010dc: DUP2
000010dd: AND
000010de: SWAP2
000010df: AND
000010e0: EQ
000010e1: PUSH2 0x10e9
000010e4: JUMPI
000010e5: PUSH1 0x00
000010e7: DUP1
000010e8: REVERT
000010e9: JUMPDEST
000010ea: PUSH2 0x10f1
000010ed: PUSH2 0x09c5
000010f0: JUMP
000010f1: JUMPDEST
000010f2: DUP2
000010f3: GT
000010f4: ISZERO
000010f5: PUSH2 0x10fd
000010f8: JUMPI
000010f9: PUSH1 0x00
000010fb: DUP1
000010fc: REVERT
000010fd: JUMPDEST
000010fe: PUSH1 0x01
00001100: PUSH1 0xa0
00001102: PUSH1 0x02
00001104: EXP
00001105: SUB
00001106: DUP3
00001107: AND
00001108: ISZERO
00001109: ISZERO
0000110a: PUSH2 0x111c
0000110d: JUMPI
0000110e: PUSH1 0x06
00001110: SLOAD
00001111: PUSH1 0x01
00001113: PUSH1 0xa0
00001115: PUSH1 0x02
00001117: EXP
00001118: SUB
00001119: AND
0000111a: SWAP2
0000111b: POP
0000111c: JUMPDEST
0000111d: DUP1
0000111e: PUSH2 0x1125
00001121: PUSH2 0x09c5
00001124: JUMP
00001125: JUMPDEST
00001126: SUB
00001127: PUSH1 0x04
00001129: SSTORE
0000112a: PUSH1 0x00
0000112c: PUSH1 0x05
0000112e: SSTORE
0000112f: PUSH2 0x1138
00001132: DUP3
00001133: DUP3
00001134: PUSH2 0x1551
00001137: JUMP
00001138: JUMPDEST
00001139: PUSH32 0x3d58bd61d8606013d7b93463f5e9938573d0cf107ae6ad2de256c0ff55fac2fc
0000115a: DUP3
0000115b: DUP3
0000115c: PUSH1 0x04
0000115e: SLOAD
0000115f: PUSH1 0x40
00001161: MLOAD
00001162: DUP1
00001163: DUP5
00001164: PUSH1 0x01
00001166: PUSH1 0xa0
00001168: PUSH1 0x02
0000116a: EXP
0000116b: SUB
0000116c: AND
0000116d: PUSH1 0x01
0000116f: PUSH1 0xa0
00001171: PUSH1 0x02
00001173: EXP
00001174: SUB
00001175: AND
00001176: DUP2
00001177: MSTORE
00001178: PUSH1 0x20
0000117a: ADD
0000117b: DUP4
0000117c: DUP2
0000117d: MSTORE
0000117e: PUSH1 0x20
00001180: ADD
00001181: DUP3
00001182: DUP2
00001183: MSTORE
00001184: PUSH1 0x20
00001186: ADD
00001187: SWAP4
00001188: POP
00001189: POP
0000118a: POP
0000118b: POP
0000118c: PUSH1 0x40
0000118e: MLOAD
0000118f: DUP1
00001190: SWAP2
00001191: SUB
00001192: SWAP1
00001193: LOG1
00001194: POP
00001195: POP
00001196: JUMP
00001197: JUMPDEST
00001198: PUSH1 0x07
0000119a: SLOAD
0000119b: CALLER
0000119c: PUSH1 0x01
0000119e: PUSH1 0xa0
000011a0: PUSH1 0x02
000011a2: EXP
000011a3: SUB
000011a4: SWAP1
000011a5: DUP2
000011a6: AND
000011a7: SWAP2
000011a8: AND
000011a9: EQ
000011aa: PUSH2 0x11b2
000011ad: JUMPI
000011ae: PUSH1 0x00
000011b0: DUP1
000011b1: REVERT
000011b2: JUMPDEST
000011b3: PUSH3 0x0186a0
000011b7: DUP2
000011b8: LT
000011b9: PUSH2 0x11c1
000011bc: JUMPI
000011bd: PUSH1 0x00
000011bf: DUP1
000011c0: REVERT
000011c1: JUMPDEST
000011c2: PUSH1 0x13
000011c4: SSTORE
000011c5: JUMP
000011c6: JUMPDEST
000011c7: PUSH1 0x04
000011c9: SLOAD
000011ca: DUP2
000011cb: JUMP
000011cc: JUMPDEST
000011cd: PUSH1 0x03
000011cf: SLOAD
000011d0: PUSH1 0x01
000011d2: PUSH1 0xa0
000011d4: PUSH1 0x02
000011d6: EXP
000011d7: SUB
000011d8: AND
000011d9: DUP2
000011da: JUMP
000011db: JUMPDEST
000011dc: PUSH1 0x00
000011de: CALLVALUE
000011df: GT
000011e0: ISZERO
000011e1: PUSH2 0x1235
000011e4: JUMPI
000011e5: PUSH1 0x11
000011e7: DUP1
000011e8: SLOAD
000011e9: CALLVALUE
000011ea: SWAP1
000011eb: DUP2
000011ec: ADD
000011ed: SWAP1
000011ee: SWAP2
000011ef: SSTORE
000011f0: PUSH32 0x7d08b5b7cfe8722872406c430472d942802a7e0b6185e43af8614a65d80a2685
00001211: SWAP1
00001212: CALLER
00001213: SWAP1
00001214: PUSH1 0x40
00001216: MLOAD
00001217: PUSH1 0x01
00001219: PUSH1 0xa0
0000121b: PUSH1 0x02
0000121d: EXP
0000121e: SUB
0000121f: SWAP1
00001220: SWAP3
00001221: AND
00001222: DUP3
00001223: MSTORE
00001224: PUSH1 0x20
00001226: DUP3
00001227: ADD
00001228: MSTORE
00001229: PUSH1 0x40
0000122b: SWAP1
0000122c: DUP2
0000122d: ADD
0000122e: SWAP1
0000122f: MLOAD
00001230: DUP1
00001231: SWAP2
00001232: SUB
00001233: SWAP1
00001234: LOG1
00001235: JUMPDEST
00001236: JUMP
00001237: JUMPDEST
00001238: PUSH1 0x07
0000123a: SLOAD
0000123b: CALLER
0000123c: PUSH1 0x01
0000123e: PUSH1 0xa0
00001240: PUSH1 0x02
00001242: EXP
00001243: SUB
00001244: SWAP1
00001245: DUP2
00001246: AND
00001247: SWAP2
00001248: AND
00001249: EQ
0000124a: PUSH2 0x1252
0000124d: JUMPI
0000124e: PUSH1 0x00
00001250: DUP1
00001251: REVERT
00001252: JUMPDEST
00001253: PUSH2 0x1235
00001256: PUSH2 0x17df
00001259: JUMP
0000125a: JUMPDEST
0000125b: PUSH1 0x01
0000125d: NOT
0000125e: DUP2
0000125f: JUMP
00001260: JUMPDEST
00001261: PUSH1 0x07
00001263: SLOAD
00001264: PUSH1 0x00
00001266: SWAP1
00001267: CALLER
00001268: PUSH1 0x01
0000126a: PUSH1 0xa0
0000126c: PUSH1 0x02
0000126e: EXP
0000126f: SUB
00001270: SWAP1
00001271: DUP2
00001272: AND
00001273: SWAP2
00001274: AND
00001275: EQ
00001276: PUSH2 0x127e
00001279: JUMPI
0000127a: PUSH1 0x00
0000127c: DUP1
0000127d: REVERT
0000127e: JUMPDEST
0000127f: PUSH1 0x07
00001281: SLOAD
00001282: PUSH1 0x01
00001284: PUSH1 0xa0
00001286: PUSH1 0x02
00001288: EXP
00001289: SUB
0000128a: DUP4
0000128b: DUP2
0000128c: AND
0000128d: SWAP2
0000128e: AND
0000128f: EQ
00001290: DUP1
00001291: ISZERO
00001292: SWAP1
00001293: PUSH2 0x12a4
00001296: JUMPI
00001297: POP
00001298: PUSH1 0x01
0000129a: PUSH1 0xa0
0000129c: PUSH1 0x02
0000129e: EXP
0000129f: SUB
000012a0: DUP3
000012a1: AND
000012a2: ISZERO
000012a3: ISZERO
000012a4: JUMPDEST
000012a5: ISZERO
000012a6: ISZERO
000012a7: PUSH2 0x12af
000012aa: JUMPI
000012ab: PUSH1 0x00
000012ad: DUP1
000012ae: REVERT
000012af: JUMPDEST
000012b0: POP
000012b1: PUSH1 0x07
000012b3: DUP1
000012b4: SLOAD
000012b5: PUSH1 0x01
000012b7: PUSH1 0xa0
000012b9: PUSH1 0x02
000012bb: EXP
000012bc: SUB
000012bd: DUP4
000012be: DUP2
000012bf: AND
000012c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012d5: NOT
000012d6: DUP4
000012d7: AND
000012d8: OR
000012d9: SWAP1
000012da: SWAP3
000012db: SSTORE
000012dc: AND
000012dd: PUSH32 0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c
000012fe: DUP2
000012ff: DUP4
00001300: PUSH1 0x40
00001302: MLOAD
00001303: PUSH1 0x01
00001305: PUSH1 0xa0
00001307: PUSH1 0x02
00001309: EXP
0000130a: SUB
0000130b: SWAP3
0000130c: DUP4
0000130d: AND
0000130e: DUP2
0000130f: MSTORE
00001310: SWAP2
00001311: AND
00001312: PUSH1 0x20
00001314: DUP3
00001315: ADD
00001316: MSTORE
00001317: PUSH1 0x40
00001319: SWAP1
0000131a: DUP2
0000131b: ADD
0000131c: SWAP1
0000131d: MLOAD
0000131e: DUP1
0000131f: SWAP2
00001320: SUB
00001321: SWAP1
00001322: LOG1
00001323: POP
00001324: POP
00001325: JUMP
00001326: JUMPDEST
00001327: PUSH1 0x0f
00001329: DUP2
0000132a: JUMP
0000132b: JUMPDEST
0000132c: PUSH1 0x00
0000132e: DUP1
0000132f: PUSH2 0x133f
00001332: PUSH2 0x1339
00001335: PUSH2 0x1010
00001338: JUMP
00001339: JUMPDEST
0000133a: DUP5
0000133b: PUSH2 0x1f95
0000133e: JUMP
0000133f: JUMPDEST
00001340: SWAP3
00001341: POP
00001342: PUSH2 0x1350
00001345: PUSH1 0x01
00001347: PUSH3 0x0186a0
0000134b: DUP6
0000134c: PUSH2 0x0b39
0000134f: JUMP
00001350: JUMPDEST
00001351: SWAP1
00001352: POP
00001353: PUSH1 0x01
00001355: PUSH1 0xa0
00001357: PUSH1 0x02
00001359: EXP
0000135a: SUB
0000135b: ADDRESS
0000135c: AND
0000135d: BALANCE
0000135e: DUP2
0000135f: GT
00001360: PUSH2 0x1385
00001363: JUMPI
00001364: PUSH2 0x1372
00001367: PUSH1 0x01
00001369: PUSH3 0x0186a0
0000136d: DUP6
0000136e: PUSH2 0x1fa4
00001371: JUMP
00001372: JUMPDEST
00001373: POP
00001374: PUSH1 0x0f
00001376: DUP1
00001377: SLOAD
00001378: DUP3
00001379: ADD
0000137a: SWAP1
0000137b: SSTORE
0000137c: PUSH1 0x05
0000137e: DUP1
0000137f: SLOAD
00001380: DUP3
00001381: SWAP1
00001382: SUB
00001383: SWAP1
00001384: SSTORE
00001385: JUMPDEST
00001386: SWAP3
00001387: SWAP2
00001388: POP
00001389: POP
0000138a: JUMP
0000138b: JUMPDEST
0000138c: PUSH1 0x00
0000138e: DUP1
0000138f: DUP1
00001390: DUP1
00001391: DUP1
00001392: DUP1
00001393: DUP1
00001394: DUP1
00001395: NUMBER
00001396: GAS
00001397: TIMESTAMP
00001398: PUSH1 0x10
0000139a: SLOAD
0000139b: ADD
0000139c: ADD
0000139d: ADD
0000139e: SWAP7
0000139f: POP
000013a0: PUSH1 0x00
000013a2: SWAP6
000013a3: POP
000013a4: JUMPDEST
000013a5: DUP10
000013a6: DUP7
000013a7: LT
000013a8: ISZERO
000013a9: PUSH2 0x14e4
000013ac: JUMPI
000013ad: GAS
000013ae: DUP8
000013af: ADD
000013b0: SWAP7
000013b1: POP
000013b2: PUSH2 0x13c1
000013b5: PUSH1 0x01
000013b7: PUSH3 0x0186a0
000013bb: DUP12
000013bc: DUP11
000013bd: PUSH2 0x20e5
000013c0: JUMP
000013c1: JUMPDEST
000013c2: SWAP5
000013c3: POP
000013c4: PUSH2 0x13cd
000013c7: DUP12
000013c8: DUP7
000013c9: PUSH2 0x21a2
000013cc: JUMP
000013cd: JUMPDEST
000013ce: SWAP4
000013cf: POP
000013d0: SWAP4
000013d1: POP
000013d2: SWAP4
000013d3: POP
000013d4: PUSH32 0xef03c7913ec8cce6a9da8d305276f6631e75cfe38909b1e6964cb09079723b38
000013f5: PUSH1 0x10
000013f7: SLOAD
000013f8: CALLER
000013f9: DUP14
000013fa: DUP10
000013fb: DUP15
000013fc: DUP11
000013fd: DUP11
000013fe: DUP11
000013ff: PUSH1 0x40
00001401: MLOAD
00001402: SWAP8
00001403: DUP9
00001404: MSTORE
00001405: PUSH1 0x01
00001407: PUSH1 0xa0
00001409: PUSH1 0x02
0000140b: EXP
0000140c: SUB
0000140d: SWAP1
0000140e: SWAP7
0000140f: AND
00001410: PUSH1 0x20
00001412: DUP9
00001413: ADD
00001414: MSTORE
00001415: PUSH1 0x40
00001417: DUP1
00001418: DUP9
00001419: ADD
0000141a: SWAP6
0000141b: SWAP1
0000141c: SWAP6
0000141d: MSTORE
0000141e: PUSH1 0x60
00001420: DUP8
00001421: ADD
00001422: SWAP4
00001423: SWAP1
00001424: SWAP4
00001425: MSTORE
00001426: PUSH1 0x80
00001428: DUP7
00001429: ADD
0000142a: SWAP2
0000142b: SWAP1
0000142c: SWAP2
0000142d: MSTORE
0000142e: PUSH1 0xa0
00001430: DUP6
00001431: ADD
00001432: MSTORE
00001433: PUSH1 0xc0
00001435: DUP5
00001436: ADD
00001437: MSTORE
00001438: PUSH1 0xe0
0000143a: DUP4
0000143b: ADD
0000143c: SWAP2
0000143d: SWAP1
0000143e: SWAP2
0000143f: MSTORE
00001440: PUSH2 0x0100
00001443: SWAP1
00001444: SWAP2
00001445: ADD
00001446: SWAP1
00001447: MLOAD
00001448: DUP1
00001449: SWAP2
0000144a: SUB
0000144b: SWAP1
0000144c: LOG1
0000144d: DUP2
0000144e: ISZERO
0000144f: PUSH2 0x14cb
00001452: JUMPI
00001453: PUSH32 0xe95e5ceb9ba425d34fc3c3a9901eb35b93848d1315b8b68a8e419ebf3e4f8c81
00001474: PUSH1 0x10
00001476: SLOAD
00001477: CALLER
00001478: DUP14
00001479: DUP10
0000147a: DUP15
0000147b: DUP11
0000147c: DUP10
0000147d: PUSH1 0x40
0000147f: MLOAD
00001480: SWAP7
00001481: DUP8
00001482: MSTORE
00001483: PUSH1 0x01
00001485: PUSH1 0xa0
00001487: PUSH1 0x02
00001489: EXP
0000148a: SUB
0000148b: SWAP1
0000148c: SWAP6
0000148d: AND
0000148e: PUSH1 0x20
00001490: DUP8
00001491: ADD
00001492: MSTORE
00001493: PUSH1 0x40
00001495: DUP1
00001496: DUP8
00001497: ADD
00001498: SWAP5
00001499: SWAP1
0000149a: SWAP5
0000149b: MSTORE
0000149c: PUSH1 0x60
0000149e: DUP7
0000149f: ADD
000014a0: SWAP3
000014a1: SWAP1
000014a2: SWAP3
000014a3: MSTORE
000014a4: PUSH1 0x80
000014a6: DUP6
000014a7: ADD
000014a8: MSTORE
000014a9: PUSH1 0xa0
000014ab: DUP5
000014ac: ADD
000014ad: MSTORE
000014ae: PUSH1 0xc0
000014b0: DUP4
000014b1: ADD
000014b2: SWAP2
000014b3: SWAP1
000014b4: SWAP2
000014b5: MSTORE
000014b6: PUSH1 0xe0
000014b8: SWAP1
000014b9: SWAP2
000014ba: ADD
000014bb: SWAP1
000014bc: MLOAD
000014bd: DUP1
000014be: SWAP2
000014bf: SUB
000014c0: SWAP1
000014c1: LOG1
000014c2: PUSH1 0x00
000014c4: PUSH1 0x11
000014c6: SSTORE
000014c7: PUSH2 0x14d5
000014ca: JUMP
000014cb: JUMPDEST
000014cc: PUSH1 0x05
000014ce: DUP1
000014cf: SLOAD
000014d0: DUP5
000014d1: SWAP1
000014d2: SUB
000014d3: SWAP1
000014d4: SSTORE
000014d5: JUMPDEST
000014d6: SWAP7
000014d7: DUP3
000014d8: ADD
000014d9: SWAP7
000014da: PUSH1 0x01
000014dc: SWAP1
000014dd: SWAP6
000014de: ADD
000014df: SWAP5
000014e0: PUSH2 0x13a4
000014e3: JUMP
000014e4: JUMPDEST
000014e5: POP
000014e6: PUSH1 0x01
000014e8: PUSH1 0xa0
000014ea: PUSH1 0x02
000014ec: EXP
000014ed: SUB
000014ee: CALLER
000014ef: AND
000014f0: PUSH1 0x00
000014f2: SWAP1
000014f3: DUP2
000014f4: MSTORE
000014f5: PUSH1 0x09
000014f7: PUSH1 0x20
000014f9: MSTORE
000014fa: PUSH1 0x40
000014fc: DUP2
000014fd: KECCAK256
000014fe: DUP1
000014ff: SLOAD
00001500: CALLVALUE
00001501: SWAP1
00001502: DUP2
00001503: ADD
00001504: DUP3
00001505: SSTORE
00001506: PUSH1 0x02
00001508: DUP3
00001509: ADD
0000150a: DUP1
0000150b: SLOAD
0000150c: DUP14
0000150d: ADD
0000150e: SWAP1
0000150f: SSTORE
00001510: PUSH1 0x0d
00001512: DUP1
00001513: SLOAD
00001514: SWAP1
00001515: SWAP2
00001516: ADD
00001517: SWAP1
00001518: SSTORE
00001519: PUSH1 0x10
0000151b: DUP1
0000151c: SLOAD
0000151d: DUP13
0000151e: ADD
0000151f: SWAP1
00001520: SSTORE
00001521: SWAP1
00001522: DUP9
00001523: GT
00001524: ISZERO
00001525: PUSH2 0x1544
00001528: JUMPI
00001529: PUSH1 0x01
0000152b: DUP2
0000152c: ADD
0000152d: DUP1
0000152e: SLOAD
0000152f: DUP10
00001530: ADD
00001531: SWAP1
00001532: SSTORE
00001533: PUSH1 0x0e
00001535: DUP1
00001536: SLOAD
00001537: DUP10
00001538: ADD
00001539: SWAP1
0000153a: SSTORE
0000153b: PUSH2 0x1544
0000153e: CALLER
0000153f: DUP10
00001540: PUSH2 0x1551
00001543: JUMP
00001544: JUMPDEST
00001545: POP
00001546: POP
00001547: POP
00001548: POP
00001549: POP
0000154a: POP
0000154b: POP
0000154c: POP
0000154d: POP
0000154e: POP
0000154f: POP
00001550: JUMP
00001551: JUMPDEST
00001552: PUSH1 0x01
00001554: PUSH1 0xa0
00001556: PUSH1 0x02
00001558: EXP
00001559: SUB
0000155a: DUP3
0000155b: AND
0000155c: ISZERO
0000155d: ISZERO
0000155e: PUSH2 0x1566
00001561: JUMPI
00001562: PUSH1 0x00
00001564: DUP1
00001565: REVERT
00001566: JUMPDEST
00001567: ADDRESS
00001568: PUSH1 0x01
0000156a: PUSH1 0xa0
0000156c: PUSH1 0x02
0000156e: EXP
0000156f: SUB
00001570: AND
00001571: DUP3
00001572: PUSH1 0x01
00001574: PUSH1 0xa0
00001576: PUSH1 0x02
00001578: EXP
00001579: SUB
0000157a: AND
0000157b: EQ
0000157c: ISZERO
0000157d: ISZERO
0000157e: ISZERO
0000157f: PUSH2 0x1587
00001582: JUMPI
00001583: PUSH1 0x00
00001585: DUP1
00001586: REVERT
00001587: JUMPDEST
00001588: PUSH1 0x00
0000158a: DUP2
0000158b: GT
0000158c: DUP1
0000158d: ISZERO
0000158e: PUSH2 0x15a1
00001591: JUMPI
00001592: POP
00001593: ADDRESS
00001594: PUSH1 0x01
00001596: PUSH1 0xa0
00001598: PUSH1 0x02
0000159a: EXP
0000159b: SUB
0000159c: AND
0000159d: BALANCE
0000159e: DUP2
0000159f: GT
000015a0: ISZERO
000015a1: JUMPDEST
000015a2: ISZERO
000015a3: ISZERO
000015a4: PUSH2 0x15ac
000015a7: JUMPI
000015a8: PUSH1 0x00
000015aa: DUP1
000015ab: REVERT
000015ac: JUMPDEST
000015ad: PUSH1 0x01
000015af: PUSH1 0xa0
000015b1: PUSH1 0x02
000015b3: EXP
000015b4: SUB
000015b5: DUP3
000015b6: AND
000015b7: DUP2
000015b8: ISZERO
000015b9: PUSH2 0x08fc
000015bc: MUL
000015bd: DUP3
000015be: PUSH1 0x40
000015c0: MLOAD
000015c1: PUSH1 0x00
000015c3: PUSH1 0x40
000015c5: MLOAD
000015c6: DUP1
000015c7: DUP4
000015c8: SUB
000015c9: DUP2
000015ca: DUP6
000015cb: DUP9
000015cc: DUP9
000015cd: CALL
000015ce: SWAP4
000015cf: POP
000015d0: POP
000015d1: POP
000015d2: POP
000015d3: ISZERO
000015d4: ISZERO
000015d5: PUSH2 0x15dd
000015d8: JUMPI
000015d9: PUSH1 0x00
000015db: DUP1
000015dc: REVERT
000015dd: JUMPDEST
000015de: PUSH32 0x20157e1a763dcbf757143750265ae22b2f46bad0ce452ea04ed79d7d6f2b1702
000015ff: DUP3
00001600: DUP3
00001601: PUSH1 0x40
00001603: MLOAD
00001604: PUSH1 0x01
00001606: PUSH1 0xa0
00001608: PUSH1 0x02
0000160a: EXP
0000160b: SUB
0000160c: SWAP1
0000160d: SWAP3
0000160e: AND
0000160f: DUP3
00001610: MSTORE
00001611: PUSH1 0x20
00001613: DUP3
00001614: ADD
00001615: MSTORE
00001616: PUSH1 0x60
00001618: PUSH1 0x40
0000161a: DUP1
0000161b: DUP4
0000161c: ADD
0000161d: DUP3
0000161e: SWAP1
0000161f: MSTORE
00001620: PUSH1 0x10
00001622: SWAP2
00001623: DUP4
00001624: ADD
00001625: SWAP2
00001626: SWAP1
00001627: SWAP2
00001628: MSTORE
00001629: PUSH32 0x5472616e73666572205375636365737300000000000000000000000000000000
0000164a: PUSH1 0x80
0000164c: DUP4
0000164d: ADD
0000164e: MSTORE
0000164f: PUSH1 0xa0
00001651: SWAP1
00001652: SWAP2
00001653: ADD
00001654: SWAP1
00001655: MLOAD
00001656: DUP1
00001657: SWAP2
00001658: SUB
00001659: SWAP1
0000165a: LOG1
0000165b: POP
0000165c: POP
0000165d: JUMP
0000165e: JUMPDEST
0000165f: PUSH1 0x00
00001661: PUSH1 0x0d
00001663: DUP2
00001664: SWAP1
00001665: SSTORE
00001666: PUSH1 0x0e
00001668: DUP2
00001669: SWAP1
0000166a: SSTORE
0000166b: PUSH1 0x0f
0000166d: DUP2
0000166e: SWAP1
0000166f: SSTORE
00001670: PUSH1 0x10
00001672: DUP2
00001673: SWAP1
00001674: SSTORE
00001675: PUSH1 0x11
00001677: SSTORE
00001678: PUSH32 0xd2f6c0020d30a86146de6300741f2bd90869bddf3818f8d3294ae782f6216176
00001699: PUSH1 0x40
0000169b: MLOAD
0000169c: PUSH1 0x20
0000169e: DUP1
0000169f: DUP3
000016a0: MSTORE
000016a1: PUSH1 0x0c
000016a3: SWAP1
000016a4: DUP3
000016a5: ADD
000016a6: MSTORE
000016a7: PUSH32 0x576974686472617720416c6c0000000000000000000000000000000000000000
000016c8: PUSH1 0x40
000016ca: DUP1
000016cb: DUP4
000016cc: ADD
000016cd: SWAP2
000016ce: SWAP1
000016cf: SWAP2
000016d0: MSTORE
000016d1: PUSH1 0x60
000016d3: SWAP1
000016d4: SWAP2
000016d5: ADD
000016d6: SWAP1
000016d7: MLOAD
000016d8: DUP1
000016d9: SWAP2
000016da: SUB
000016db: SWAP1
000016dc: LOG1
000016dd: JUMP
000016de: JUMPDEST
000016df: PUSH1 0x00
000016e1: DUP1
000016e2: DUP3
000016e3: DUP5
000016e4: DUP2
000016e5: ISZERO
000016e6: ISZERO
000016e7: PUSH2 0x16ec
000016ea: JUMPI
000016eb: INVALID
000016ec: JUMPDEST
000016ed: DIV
000016ee: SWAP5
000016ef: SWAP4
000016f0: POP
000016f1: POP
000016f2: POP
000016f3: POP
000016f4: JUMP
000016f5: JUMPDEST
000016f6: PUSH1 0x00
000016f8: DUP2
000016f9: DUP4
000016fa: LT
000016fb: ISZERO
000016fc: PUSH2 0x1705
000016ff: JUMPI
00001700: DUP2
00001701: PUSH2 0x1707
00001704: JUMP
00001705: JUMPDEST
00001706: DUP3
00001707: JUMPDEST
00001708: SWAP4
00001709: SWAP3
0000170a: POP
0000170b: POP
0000170c: POP
0000170d: JUMP
0000170e: JUMPDEST
0000170f: PUSH1 0x00
00001711: DUP1
00001712: DUP1
00001713: JUMPDEST
00001714: PUSH1 0x08
00001716: SLOAD
00001717: DUP3
00001718: LT
00001719: ISZERO
0000171a: PUSH2 0x174e
0000171d: JUMPI
0000171e: PUSH1 0x08
00001720: DUP1
00001721: SLOAD
00001722: DUP4
00001723: SWAP1
00001724: DUP2
00001725: LT
00001726: PUSH2 0x172b
00001729: JUMPI
0000172a: INVALID
0000172b: JUMPDEST
0000172c: SWAP1
0000172d: PUSH1 0x00
0000172f: MSTORE
00001730: PUSH1 0x20
00001732: PUSH1 0x00
00001734: KECCAK256
00001735: SWAP1
00001736: PUSH1 0x04
00001738: MUL
00001739: ADD
0000173a: PUSH1 0x01
0000173c: ADD
0000173d: SLOAD
0000173e: DUP4
0000173f: ADD
00001740: SWAP3
00001741: POP
00001742: DUP2
00001743: DUP1
00001744: PUSH1 0x01
00001746: ADD
00001747: SWAP3
00001748: POP
00001749: POP
0000174a: PUSH2 0x1713
0000174d: JUMP
0000174e: JUMPDEST
0000174f: POP
00001750: PUSH1 0x00
00001752: JUMPDEST
00001753: PUSH1 0x08
00001755: SLOAD
00001756: DUP2
00001757: LT
00001758: ISZERO
00001759: PUSH2 0x0e23
0000175c: JUMPI
0000175d: PUSH2 0x17b1
00001760: PUSH1 0x08
00001762: DUP3
00001763: DUP2
00001764: SLOAD
00001765: DUP2
00001766: LT
00001767: ISZERO
00001768: ISZERO
00001769: PUSH2 0x176e
0000176c: JUMPI
0000176d: INVALID
0000176e: JUMPDEST
0000176f: SWAP1
00001770: PUSH1 0x00
00001772: MSTORE
00001773: PUSH1 0x20
00001775: PUSH1 0x00
00001777: KECCAK256
00001778: SWAP1
00001779: PUSH1 0x04
0000177b: MUL
0000177c: ADD
0000177d: PUSH1 0x01
0000177f: ADD
00001780: SLOAD
00001781: PUSH1 0x0a
00001783: SLOAD
00001784: PUSH3 0x0186a0
00001788: SUB
00001789: MUL
0000178a: DUP5
0000178b: PUSH1 0x08
0000178d: DUP5
0000178e: DUP2
0000178f: SLOAD
00001790: DUP2
00001791: LT
00001792: ISZERO
00001793: ISZERO
00001794: PUSH2 0x1799
00001797: JUMPI
00001798: INVALID
00001799: JUMPDEST
0000179a: SWAP1
0000179b: PUSH1 0x00
0000179d: MSTORE
0000179e: PUSH1 0x20
000017a0: PUSH1 0x00
000017a2: KECCAK256
000017a3: SWAP1
000017a4: PUSH1 0x04
000017a6: MUL
000017a7: ADD
000017a8: PUSH1 0x00
000017aa: ADD
000017ab: SLOAD
000017ac: MUL
000017ad: PUSH2 0x16de
000017b0: JUMP
000017b1: JUMPDEST
000017b2: PUSH1 0x08
000017b4: DUP1
000017b5: SLOAD
000017b6: DUP4
000017b7: SWAP1
000017b8: DUP2
000017b9: LT
000017ba: PUSH2 0x17bf
000017bd: JUMPI
000017be: INVALID
000017bf: JUMPDEST
000017c0: PUSH1 0x00
000017c2: SWAP2
000017c3: DUP3
000017c4: MSTORE
000017c5: PUSH1 0x20
000017c7: SWAP1
000017c8: SWAP2
000017c9: KECCAK256
000017ca: PUSH1 0x02
000017cc: PUSH1 0x04
000017ce: SWAP1
000017cf: SWAP3
000017d0: MUL
000017d1: ADD
000017d2: ADD
000017d3: SSTORE
000017d4: PUSH1 0x01
000017d6: ADD
000017d7: PUSH2 0x1752
000017da: JUMP
000017db: JUMPDEST
000017dc: EXTCODESIZE
000017dd: SWAP1
000017de: JUMP
000017df: JUMPDEST
000017e0: PUSH2 0x17eb
000017e3: PUSH1 0x08
000017e5: PUSH1 0x00
000017e7: PUSH2 0x22be
000017ea: JUMP
000017eb: JUMPDEST
000017ec: PUSH1 0x08
000017ee: DUP1
000017ef: SLOAD
000017f0: PUSH1 0x01
000017f2: DUP2
000017f3: ADD
000017f4: PUSH2 0x17fd
000017f7: DUP4
000017f8: DUP3
000017f9: PUSH2 0x22df
000017fc: JUMP
000017fd: JUMPDEST
000017fe: SWAP2
000017ff: PUSH1 0x00
00001801: MSTORE
00001802: PUSH1 0x20
00001804: PUSH1 0x00
00001806: KECCAK256
00001807: SWAP1
00001808: PUSH1 0x04
0000180a: MUL
0000180b: ADD
0000180c: PUSH1 0x00
0000180e: PUSH1 0x80
00001810: PUSH1 0x40
00001812: MLOAD
00001813: SWAP1
00001814: DUP2
00001815: ADD
00001816: PUSH1 0x40
00001818: MSTORE
00001819: DUP1
0000181a: PUSH1 0x64
0000181c: DUP2
0000181d: MSTORE
0000181e: PUSH1 0x20
00001820: ADD
00001821: PUSH1 0x3c
00001823: DUP2
00001824: MSTORE
00001825: PUSH1 0x20
00001827: ADD
00001828: PUSH1 0x00
0000182a: DUP2
0000182b: MSTORE
0000182c: PUSH1 0x20
0000182e: ADD
0000182f: PUSH1 0x40
00001831: DUP1
00001832: MLOAD
00001833: SWAP1
00001834: DUP2
00001835: ADD
00001836: PUSH1 0x40
00001838: MSTORE
00001839: PUSH1 0x03
0000183b: DUP2
0000183c: MSTORE
0000183d: PUSH32 0x3131310000000000000000000000000000000000000000000000000000000000
0000185e: PUSH1 0x20
00001860: DUP3
00001861: ADD
00001862: MSTORE
00001863: SWAP1
00001864: MSTORE
00001865: SWAP2
00001866: SWAP1
00001867: POP
00001868: DUP2
00001869: MLOAD
0000186a: DUP2
0000186b: SSTORE
0000186c: PUSH1 0x20
0000186e: DUP3
0000186f: ADD
00001870: MLOAD
00001871: DUP2
00001872: PUSH1 0x01
00001874: ADD
00001875: SSTORE
00001876: PUSH1 0x40
00001878: DUP3
00001879: ADD
0000187a: MLOAD
0000187b: DUP2
0000187c: PUSH1 0x02
0000187e: ADD
0000187f: SSTORE
00001880: PUSH1 0x60
00001882: DUP3
00001883: ADD
00001884: MLOAD
00001885: DUP2
00001886: PUSH1 0x03
00001888: ADD
00001889: SWAP1
0000188a: DUP1
0000188b: MLOAD
0000188c: PUSH2 0x1899
0000188f: SWAP3
00001890: SWAP2
00001891: PUSH1 0x20
00001893: ADD
00001894: SWAP1
00001895: PUSH2 0x230b
00001898: JUMP
00001899: JUMPDEST
0000189a: POP
0000189b: POP
0000189c: POP
0000189d: POP
0000189e: PUSH1 0x08
000018a0: DUP1
000018a1: SLOAD
000018a2: DUP1
000018a3: PUSH1 0x01
000018a5: ADD
000018a6: DUP3
000018a7: DUP2
000018a8: PUSH2 0x18b1
000018ab: SWAP2
000018ac: SWAP1
000018ad: PUSH2 0x22df
000018b0: JUMP
000018b1: JUMPDEST
000018b2: SWAP2
000018b3: PUSH1 0x00
000018b5: MSTORE
000018b6: PUSH1 0x20
000018b8: PUSH1 0x00
000018ba: KECCAK256
000018bb: SWAP1
000018bc: PUSH1 0x04
000018be: MUL
000018bf: ADD
000018c0: PUSH1 0x00
000018c2: PUSH1 0x80
000018c4: PUSH1 0x40
000018c6: MLOAD
000018c7: SWAP1
000018c8: DUP2
000018c9: ADD
000018ca: PUSH1 0x40
000018cc: MSTORE
000018cd: DUP1
000018ce: PUSH1 0x1e
000018d0: DUP2
000018d1: MSTORE
000018d2: PUSH1 0x20
000018d4: ADD
000018d5: PUSH1 0x50
000018d7: DUP2
000018d8: MSTORE
000018d9: PUSH1 0x20
000018db: ADD
000018dc: PUSH1 0x00
000018de: DUP2
000018df: MSTORE
000018e0: PUSH1 0x20
000018e2: ADD
000018e3: PUSH1 0x40
000018e5: DUP1
000018e6: MLOAD
000018e7: SWAP1
000018e8: DUP2
000018e9: ADD
000018ea: PUSH1 0x40
000018ec: MSTORE
000018ed: PUSH1 0x03
000018ef: DUP2
000018f0: MSTORE
000018f1: PUSH32 0x3232320000000000000000000000000000000000000000000000000000000000
00001912: PUSH1 0x20
00001914: DUP3
00001915: ADD
00001916: MSTORE
00001917: SWAP1
00001918: MSTORE
00001919: SWAP2
0000191a: SWAP1
0000191b: POP
0000191c: DUP2
0000191d: MLOAD
0000191e: DUP2
0000191f: SSTORE
00001920: PUSH1 0x20
00001922: DUP3
00001923: ADD
00001924: MLOAD
00001925: DUP2
00001926: PUSH1 0x01
00001928: ADD
00001929: SSTORE
0000192a: PUSH1 0x40
0000192c: DUP3
0000192d: ADD
0000192e: MLOAD
0000192f: DUP2
00001930: PUSH1 0x02
00001932: ADD
00001933: SSTORE
00001934: PUSH1 0x60
00001936: DUP3
00001937: ADD
00001938: MLOAD
00001939: DUP2
0000193a: PUSH1 0x03
0000193c: ADD
0000193d: SWAP1
0000193e: DUP1
0000193f: MLOAD
00001940: PUSH2 0x194d
00001943: SWAP3
00001944: SWAP2
00001945: PUSH1 0x20
00001947: ADD
00001948: SWAP1
00001949: PUSH2 0x230b
0000194c: JUMP
0000194d: JUMPDEST
0000194e: POP
0000194f: POP
00001950: POP
00001951: POP
00001952: PUSH1 0x08
00001954: DUP1
00001955: SLOAD
00001956: DUP1
00001957: PUSH1 0x01
00001959: ADD
0000195a: DUP3
0000195b: DUP2
0000195c: PUSH2 0x1965
0000195f: SWAP2
00001960: SWAP1
00001961: PUSH2 0x22df
00001964: JUMP
00001965: JUMPDEST
00001966: SWAP2
00001967: PUSH1 0x00
00001969: MSTORE
0000196a: PUSH1 0x20
0000196c: PUSH1 0x00
0000196e: KECCAK256
0000196f: SWAP1
00001970: PUSH1 0x04
00001972: MUL
00001973: ADD
00001974: PUSH1 0x00
00001976: PUSH1 0x80
00001978: PUSH1 0x40
0000197a: MLOAD
0000197b: SWAP1
0000197c: DUP2
0000197d: ADD
0000197e: PUSH1 0x40
00001980: MSTORE
00001981: DUP1
00001982: PUSH1 0x14
00001984: DUP2
00001985: MSTORE
00001986: PUSH1 0x20
00001988: ADD
00001989: PUSH1 0x64
0000198b: DUP2
0000198c: MSTORE
0000198d: PUSH1 0x20
0000198f: ADD
00001990: PUSH1 0x00
00001992: DUP2
00001993: MSTORE
00001994: PUSH1 0x20
00001996: ADD
00001997: PUSH1 0x40
00001999: DUP1
0000199a: MLOAD
0000199b: SWAP1
0000199c: DUP2
0000199d: ADD
0000199e: PUSH1 0x40
000019a0: MSTORE
000019a1: PUSH1 0x03
000019a3: DUP2
000019a4: MSTORE
000019a5: PUSH32 0x3333330000000000000000000000000000000000000000000000000000000000
000019c6: PUSH1 0x20
000019c8: DUP3
000019c9: ADD
000019ca: MSTORE
000019cb: SWAP1
000019cc: MSTORE
000019cd: SWAP2
000019ce: SWAP1
000019cf: POP
000019d0: DUP2
000019d1: MLOAD
000019d2: DUP2
000019d3: SSTORE
000019d4: PUSH1 0x20
000019d6: DUP3
000019d7: ADD
000019d8: MLOAD
000019d9: DUP2
000019da: PUSH1 0x01
000019dc: ADD
000019dd: SSTORE
000019de: PUSH1 0x40
000019e0: DUP3
000019e1: ADD
000019e2: MLOAD
000019e3: DUP2
000019e4: PUSH1 0x02
000019e6: ADD
000019e7: SSTORE
000019e8: PUSH1 0x60
000019ea: DUP3
000019eb: ADD
000019ec: MLOAD
000019ed: DUP2
000019ee: PUSH1 0x03
000019f0: ADD
000019f1: SWAP1
000019f2: DUP1
000019f3: MLOAD
000019f4: PUSH2 0x1a01
000019f7: SWAP3
000019f8: SWAP2
000019f9: PUSH1 0x20
000019fb: ADD
000019fc: SWAP1
000019fd: PUSH2 0x230b
00001a00: JUMP
00001a01: JUMPDEST
00001a02: POP
00001a03: POP
00001a04: POP
00001a05: POP
00001a06: PUSH1 0x08
00001a08: DUP1
00001a09: SLOAD
00001a0a: DUP1
00001a0b: PUSH1 0x01
00001a0d: ADD
00001a0e: DUP3
00001a0f: DUP2
00001a10: PUSH2 0x1a19
00001a13: SWAP2
00001a14: SWAP1
00001a15: PUSH2 0x22df
00001a18: JUMP
00001a19: JUMPDEST
00001a1a: SWAP2
00001a1b: PUSH1 0x00
00001a1d: MSTORE
00001a1e: PUSH1 0x20
00001a20: PUSH1 0x00
00001a22: KECCAK256
00001a23: SWAP1
00001a24: PUSH1 0x04
00001a26: MUL
00001a27: ADD
00001a28: PUSH1 0x00
00001a2a: PUSH1 0x80
00001a2c: PUSH1 0x40
00001a2e: MLOAD
00001a2f: SWAP1
00001a30: DUP2
00001a31: ADD
00001a32: PUSH1 0x40
00001a34: MSTORE
00001a35: DUP1
00001a36: PUSH1 0x0a
00001a38: DUP2
00001a39: MSTORE
00001a3a: PUSH1 0x20
00001a3c: ADD
00001a3d: PUSH1 0x64
00001a3f: DUP2
00001a40: MSTORE
00001a41: PUSH1 0x20
00001a43: ADD
00001a44: PUSH1 0x00
00001a46: DUP2
00001a47: MSTORE
00001a48: PUSH1 0x20
00001a4a: ADD
00001a4b: PUSH1 0x40
00001a4d: DUP1
00001a4e: MLOAD
00001a4f: SWAP1
00001a50: DUP2
00001a51: ADD
00001a52: PUSH1 0x40
00001a54: MSTORE
00001a55: PUSH1 0x03
00001a57: DUP2
00001a58: MSTORE
00001a59: PUSH32 0x3434340000000000000000000000000000000000000000000000000000000000
00001a7a: PUSH1 0x20
00001a7c: DUP3
00001a7d: ADD
00001a7e: MSTORE
00001a7f: SWAP1
00001a80: MSTORE
00001a81: SWAP2
00001a82: SWAP1
00001a83: POP
00001a84: DUP2
00001a85: MLOAD
00001a86: DUP2
00001a87: SSTORE
00001a88: PUSH1 0x20
00001a8a: DUP3
00001a8b: ADD
00001a8c: MLOAD
00001a8d: DUP2
00001a8e: PUSH1 0x01
00001a90: ADD
00001a91: SSTORE
00001a92: PUSH1 0x40
00001a94: DUP3
00001a95: ADD
00001a96: MLOAD
00001a97: DUP2
00001a98: PUSH1 0x02
00001a9a: ADD
00001a9b: SSTORE
00001a9c: PUSH1 0x60
00001a9e: DUP3
00001a9f: ADD
00001aa0: MLOAD
00001aa1: DUP2
00001aa2: PUSH1 0x03
00001aa4: ADD
00001aa5: SWAP1
00001aa6: DUP1
00001aa7: MLOAD
00001aa8: PUSH2 0x1ab5
00001aab: SWAP3
00001aac: SWAP2
00001aad: PUSH1 0x20
00001aaf: ADD
00001ab0: SWAP1
00001ab1: PUSH2 0x230b
00001ab4: JUMP
00001ab5: JUMPDEST
00001ab6: POP
00001ab7: POP
00001ab8: POP
00001ab9: POP
00001aba: PUSH1 0x08
00001abc: DUP1
00001abd: SLOAD
00001abe: DUP1
00001abf: PUSH1 0x01
00001ac1: ADD
00001ac2: DUP3
00001ac3: DUP2
00001ac4: PUSH2 0x1acd
00001ac7: SWAP2
00001ac8: SWAP1
00001ac9: PUSH2 0x22df
00001acc: JUMP
00001acd: JUMPDEST
00001ace: SWAP2
00001acf: PUSH1 0x00
00001ad1: MSTORE
00001ad2: PUSH1 0x20
00001ad4: PUSH1 0x00
00001ad6: KECCAK256
00001ad7: SWAP1
00001ad8: PUSH1 0x04
00001ada: MUL
00001adb: ADD
00001adc: PUSH1 0x00
00001ade: PUSH1 0x80
00001ae0: PUSH1 0x40
00001ae2: MLOAD
00001ae3: SWAP1
00001ae4: DUP2
00001ae5: ADD
00001ae6: PUSH1 0x40
00001ae8: MSTORE
00001ae9: DUP1
00001aea: PUSH1 0x06
00001aec: DUP2
00001aed: MSTORE
00001aee: PUSH1 0x20
00001af0: ADD
00001af1: PUSH1 0x64
00001af3: DUP2
00001af4: MSTORE
00001af5: PUSH1 0x20
00001af7: ADD
00001af8: PUSH1 0x00
00001afa: DUP2
00001afb: MSTORE
00001afc: PUSH1 0x20
00001afe: ADD
00001aff: PUSH1 0x40
00001b01: DUP1
00001b02: MLOAD
00001b03: SWAP1
00001b04: DUP2
00001b05: ADD
00001b06: PUSH1 0x40
00001b08: MSTORE
00001b09: PUSH1 0x03
00001b0b: DUP2
00001b0c: MSTORE
00001b0d: PUSH32 0x3535350000000000000000000000000000000000000000000000000000000000
00001b2e: PUSH1 0x20
00001b30: DUP3
00001b31: ADD
00001b32: MSTORE
00001b33: SWAP1
00001b34: MSTORE
00001b35: SWAP2
00001b36: SWAP1
00001b37: POP
00001b38: DUP2
00001b39: MLOAD
00001b3a: DUP2
00001b3b: SSTORE
00001b3c: PUSH1 0x20
00001b3e: DUP3
00001b3f: ADD
00001b40: MLOAD
00001b41: DUP2
00001b42: PUSH1 0x01
00001b44: ADD
00001b45: SSTORE
00001b46: PUSH1 0x40
00001b48: DUP3
00001b49: ADD
00001b4a: MLOAD
00001b4b: DUP2
00001b4c: PUSH1 0x02
00001b4e: ADD
00001b4f: SSTORE
00001b50: PUSH1 0x60
00001b52: DUP3
00001b53: ADD
00001b54: MLOAD
00001b55: DUP2
00001b56: PUSH1 0x03
00001b58: ADD
00001b59: SWAP1
00001b5a: DUP1
00001b5b: MLOAD
00001b5c: PUSH2 0x1b69
00001b5f: SWAP3
00001b60: SWAP2
00001b61: PUSH1 0x20
00001b63: ADD
00001b64: SWAP1
00001b65: PUSH2 0x230b
00001b68: JUMP
00001b69: JUMPDEST
00001b6a: POP
00001b6b: POP
00001b6c: POP
00001b6d: POP
00001b6e: PUSH1 0x08
00001b70: DUP1
00001b71: SLOAD
00001b72: DUP1
00001b73: PUSH1 0x01
00001b75: ADD
00001b76: DUP3
00001b77: DUP2
00001b78: PUSH2 0x1b81
00001b7b: SWAP2
00001b7c: SWAP1
00001b7d: PUSH2 0x22df
00001b80: JUMP
00001b81: JUMPDEST
00001b82: SWAP2
00001b83: PUSH1 0x00
00001b85: MSTORE
00001b86: PUSH1 0x20
00001b88: PUSH1 0x00
00001b8a: KECCAK256
00001b8b: SWAP1
00001b8c: PUSH1 0x04
00001b8e: MUL
00001b8f: ADD
00001b90: PUSH1 0x00
00001b92: PUSH1 0x80
00001b94: PUSH1 0x40
00001b96: MLOAD
00001b97: SWAP1
00001b98: DUP2
00001b99: ADD
00001b9a: PUSH1 0x40
00001b9c: MSTORE
00001b9d: DUP1
00001b9e: PUSH1 0x05
00001ba0: DUP2
00001ba1: MSTORE
00001ba2: PUSH1 0x20
00001ba4: ADD
00001ba5: PUSH1 0x64
00001ba7: DUP2
00001ba8: MSTORE
00001ba9: PUSH1 0x20
00001bab: ADD
00001bac: PUSH1 0x00
00001bae: DUP2
00001baf: MSTORE
00001bb0: PUSH1 0x20
00001bb2: ADD
00001bb3: PUSH1 0x40
00001bb5: DUP1
00001bb6: MLOAD
00001bb7: SWAP1
00001bb8: DUP2
00001bb9: ADD
00001bba: PUSH1 0x40
00001bbc: MSTORE
00001bbd: PUSH1 0x03
00001bbf: DUP2
00001bc0: MSTORE
00001bc1: PUSH32 0x3636360000000000000000000000000000000000000000000000000000000000
00001be2: PUSH1 0x20
00001be4: DUP3
00001be5: ADD
00001be6: MSTORE
00001be7: SWAP1
00001be8: MSTORE
00001be9: SWAP2
00001bea: SWAP1
00001beb: POP
00001bec: DUP2
00001bed: MLOAD
00001bee: DUP2
00001bef: SSTORE
00001bf0: PUSH1 0x20
00001bf2: DUP3
00001bf3: ADD
00001bf4: MLOAD
00001bf5: DUP2
00001bf6: PUSH1 0x01
00001bf8: ADD
00001bf9: SSTORE
00001bfa: PUSH1 0x40
00001bfc: DUP3
00001bfd: ADD
00001bfe: MLOAD
00001bff: DUP2
00001c00: PUSH1 0x02
00001c02: ADD
00001c03: SSTORE
00001c04: PUSH1 0x60
00001c06: DUP3
00001c07: ADD
00001c08: MLOAD
00001c09: DUP2
00001c0a: PUSH1 0x03
00001c0c: ADD
00001c0d: SWAP1
00001c0e: DUP1
00001c0f: MLOAD
00001c10: PUSH2 0x1c1d
00001c13: SWAP3
00001c14: SWAP2
00001c15: PUSH1 0x20
00001c17: ADD
00001c18: SWAP1
00001c19: PUSH2 0x230b
00001c1c: JUMP
00001c1d: JUMPDEST
00001c1e: POP
00001c1f: POP
00001c20: POP
00001c21: POP
00001c22: PUSH1 0x08
00001c24: DUP1
00001c25: SLOAD
00001c26: DUP1
00001c27: PUSH1 0x01
00001c29: ADD
00001c2a: DUP3
00001c2b: DUP2
00001c2c: PUSH2 0x1c35
00001c2f: SWAP2
00001c30: SWAP1
00001c31: PUSH2 0x22df
00001c34: JUMP
00001c35: JUMPDEST
00001c36: SWAP2
00001c37: PUSH1 0x00
00001c39: MSTORE
00001c3a: PUSH1 0x20
00001c3c: PUSH1 0x00
00001c3e: KECCAK256
00001c3f: SWAP1
00001c40: PUSH1 0x04
00001c42: MUL
00001c43: ADD
00001c44: PUSH1 0x00
00001c46: PUSH1 0x80
00001c48: PUSH1 0x40
00001c4a: MLOAD
00001c4b: SWAP1
00001c4c: DUP2
00001c4d: ADD
00001c4e: PUSH1 0x40
00001c50: MSTORE
00001c51: DUP1
00001c52: PUSH1 0x04
00001c54: DUP2
00001c55: MSTORE
00001c56: PUSH1 0x20
00001c58: ADD
00001c59: PUSH1 0x64
00001c5b: DUP2
00001c5c: MSTORE
00001c5d: PUSH1 0x20
00001c5f: ADD
00001c60: PUSH1 0x00
00001c62: DUP2
00001c63: MSTORE
00001c64: PUSH1 0x20
00001c66: ADD
00001c67: PUSH1 0x40
00001c69: DUP1
00001c6a: MLOAD
00001c6b: SWAP1
00001c6c: DUP2
00001c6d: ADD
00001c6e: PUSH1 0x40
00001c70: MSTORE
00001c71: PUSH1 0x03
00001c73: DUP2
00001c74: MSTORE
00001c75: PUSH32 0x3737370000000000000000000000000000000000000000000000000000000000
00001c96: PUSH1 0x20
00001c98: DUP3
00001c99: ADD
00001c9a: MSTORE
00001c9b: SWAP1
00001c9c: MSTORE
00001c9d: SWAP2
00001c9e: SWAP1
00001c9f: POP
00001ca0: DUP2
00001ca1: MLOAD
00001ca2: DUP2
00001ca3: SSTORE
00001ca4: PUSH1 0x20
00001ca6: DUP3
00001ca7: ADD
00001ca8: MLOAD
00001ca9: DUP2
00001caa: PUSH1 0x01
00001cac: ADD
00001cad: SSTORE
00001cae: PUSH1 0x40
00001cb0: DUP3
00001cb1: ADD
00001cb2: MLOAD
00001cb3: DUP2
00001cb4: PUSH1 0x02
00001cb6: ADD
00001cb7: SSTORE
00001cb8: PUSH1 0x60
00001cba: DUP3
00001cbb: ADD
00001cbc: MLOAD
00001cbd: DUP2
00001cbe: PUSH1 0x03
00001cc0: ADD
00001cc1: SWAP1
00001cc2: DUP1
00001cc3: MLOAD
00001cc4: PUSH2 0x1cd1
00001cc7: SWAP3
00001cc8: SWAP2
00001cc9: PUSH1 0x20
00001ccb: ADD
00001ccc: SWAP1
00001ccd: PUSH2 0x230b
00001cd0: JUMP
00001cd1: JUMPDEST
00001cd2: POP
00001cd3: POP
00001cd4: POP
00001cd5: POP
00001cd6: PUSH1 0x08
00001cd8: DUP1
00001cd9: SLOAD
00001cda: DUP1
00001cdb: PUSH1 0x01
00001cdd: ADD
00001cde: DUP3
00001cdf: DUP2
00001ce0: PUSH2 0x1ce9
00001ce3: SWAP2
00001ce4: SWAP1
00001ce5: PUSH2 0x22df
00001ce8: JUMP
00001ce9: JUMPDEST
00001cea: SWAP2
00001ceb: PUSH1 0x00
00001ced: MSTORE
00001cee: PUSH1 0x20
00001cf0: PUSH1 0x00
00001cf2: KECCAK256
00001cf3: SWAP1
00001cf4: PUSH1 0x04
00001cf6: MUL
00001cf7: ADD
00001cf8: PUSH1 0x00
00001cfa: PUSH1 0x80
00001cfc: PUSH1 0x40
00001cfe: MLOAD
00001cff: SWAP1
00001d00: DUP2
00001d01: ADD
00001d02: PUSH1 0x40
00001d04: MSTORE
00001d05: DUP1
00001d06: PUSH1 0x03
00001d08: DUP2
00001d09: MSTORE
00001d0a: PUSH1 0x20
00001d0c: ADD
00001d0d: PUSH1 0xa0
00001d0f: DUP2
00001d10: MSTORE
00001d11: PUSH1 0x20
00001d13: ADD
00001d14: PUSH1 0x00
00001d16: DUP2
00001d17: MSTORE
00001d18: PUSH1 0x20
00001d1a: ADD
00001d1b: PUSH1 0x40
00001d1d: DUP1
00001d1e: MLOAD
00001d1f: SWAP1
00001d20: DUP2
00001d21: ADD
00001d22: PUSH1 0x40
00001d24: MSTORE
00001d25: PUSH1 0x03
00001d27: DUP2
00001d28: MSTORE
00001d29: PUSH32 0x3838380000000000000000000000000000000000000000000000000000000000
00001d4a: PUSH1 0x20
00001d4c: DUP3
00001d4d: ADD
00001d4e: MSTORE
00001d4f: SWAP1
00001d50: MSTORE
00001d51: SWAP2
00001d52: SWAP1
00001d53: POP
00001d54: DUP2
00001d55: MLOAD
00001d56: DUP2
00001d57: SSTORE
00001d58: PUSH1 0x20
00001d5a: DUP3
00001d5b: ADD
00001d5c: MLOAD
00001d5d: DUP2
00001d5e: PUSH1 0x01
00001d60: ADD
00001d61: SSTORE
00001d62: PUSH1 0x40
00001d64: DUP3
00001d65: ADD
00001d66: MLOAD
00001d67: DUP2
00001d68: PUSH1 0x02
00001d6a: ADD
00001d6b: SSTORE
00001d6c: PUSH1 0x60
00001d6e: DUP3
00001d6f: ADD
00001d70: MLOAD
00001d71: DUP2
00001d72: PUSH1 0x03
00001d74: ADD
00001d75: SWAP1
00001d76: DUP1
00001d77: MLOAD
00001d78: PUSH2 0x1d85
00001d7b: SWAP3
00001d7c: SWAP2
00001d7d: PUSH1 0x20
00001d7f: ADD
00001d80: SWAP1
00001d81: PUSH2 0x230b
00001d84: JUMP
00001d85: JUMPDEST
00001d86: POP
00001d87: POP
00001d88: POP
00001d89: POP
00001d8a: PUSH1 0x08
00001d8c: DUP1
00001d8d: SLOAD
00001d8e: DUP1
00001d8f: PUSH1 0x01
00001d91: ADD
00001d92: DUP3
00001d93: DUP2
00001d94: PUSH2 0x1d9d
00001d97: SWAP2
00001d98: SWAP1
00001d99: PUSH2 0x22df
00001d9c: JUMP
00001d9d: JUMPDEST
00001d9e: SWAP2
00001d9f: PUSH1 0x00
00001da1: MSTORE
00001da2: PUSH1 0x20
00001da4: PUSH1 0x00
00001da6: KECCAK256
00001da7: SWAP1
00001da8: PUSH1 0x04
00001daa: MUL
00001dab: ADD
00001dac: PUSH1 0x00
00001dae: PUSH1 0x80
00001db0: PUSH1 0x40
00001db2: MLOAD
00001db3: SWAP1
00001db4: DUP2
00001db5: ADD
00001db6: PUSH1 0x40
00001db8: MSTORE
00001db9: DUP1
00001dba: PUSH1 0x02
00001dbc: DUP2
00001dbd: MSTORE
00001dbe: PUSH1 0x20
00001dc0: ADD
00001dc1: PUSH1 0xc8
00001dc3: DUP2
00001dc4: MSTORE
00001dc5: PUSH1 0x20
00001dc7: ADD
00001dc8: PUSH1 0x00
00001dca: DUP2
00001dcb: MSTORE
00001dcc: PUSH1 0x20
00001dce: ADD
00001dcf: PUSH1 0x80
00001dd1: PUSH1 0x40
00001dd3: MLOAD
00001dd4: SWAP1
00001dd5: DUP2
00001dd6: ADD
00001dd7: PUSH1 0x40
00001dd9: SWAP1
00001dda: DUP2
00001ddb: MSTORE
00001ddc: PUSH1 0x48
00001dde: DUP3
00001ddf: MSTORE
00001de0: PUSH32 0x3232333232343233323233333233343234323234333234343332323332333332
00001e01: PUSH1 0x20
00001e03: DUP4
00001e04: ADD
00001e05: MSTORE
00001e06: PUSH32 0x3433333233333433343233343333343434323234323334323434333234333334
00001e27: SWAP1
00001e28: DUP3
00001e29: ADD
00001e2a: MSTORE
00001e2b: PUSH32 0x3334343432343433000000000000000000000000000000000000000000000000
00001e4c: PUSH1 0x60
00001e4e: DUP3
00001e4f: ADD
00001e50: MSTORE
00001e51: SWAP1
00001e52: MSTORE
00001e53: SWAP2
00001e54: SWAP1
00001e55: POP
00001e56: DUP2
00001e57: MLOAD
00001e58: DUP2
00001e59: SSTORE
00001e5a: PUSH1 0x20
00001e5c: DUP3
00001e5d: ADD
00001e5e: MLOAD
00001e5f: DUP2
00001e60: PUSH1 0x01
00001e62: ADD
00001e63: SSTORE
00001e64: PUSH1 0x40
00001e66: DUP3
00001e67: ADD
00001e68: MLOAD
00001e69: DUP2
00001e6a: PUSH1 0x02
00001e6c: ADD
00001e6d: SSTORE
00001e6e: PUSH1 0x60
00001e70: DUP3
00001e71: ADD
00001e72: MLOAD
00001e73: DUP2
00001e74: PUSH1 0x03
00001e76: ADD
00001e77: SWAP1
00001e78: DUP1
00001e79: MLOAD
00001e7a: PUSH2 0x1e87
00001e7d: SWAP3
00001e7e: SWAP2
00001e7f: PUSH1 0x20
00001e81: ADD
00001e82: SWAP1
00001e83: PUSH2 0x230b
00001e86: JUMP
00001e87: JUMPDEST
00001e88: POP
00001e89: POP
00001e8a: POP
00001e8b: POP
00001e8c: PUSH1 0x08
00001e8e: DUP1
00001e8f: SLOAD
00001e90: DUP1
00001e91: PUSH1 0x01
00001e93: ADD
00001e94: DUP3
00001e95: DUP2
00001e96: PUSH2 0x1e9f
00001e99: SWAP2
00001e9a: SWAP1
00001e9b: PUSH2 0x22df
00001e9e: JUMP
00001e9f: JUMPDEST
00001ea0: SWAP2
00001ea1: PUSH1 0x00
00001ea3: MSTORE
00001ea4: PUSH1 0x20
00001ea6: PUSH1 0x00
00001ea8: KECCAK256
00001ea9: SWAP1
00001eaa: PUSH1 0x04
00001eac: MUL
00001ead: ADD
00001eae: PUSH1 0x00
00001eb0: PUSH1 0x80
00001eb2: PUSH1 0x40
00001eb4: MLOAD
00001eb5: SWAP1
00001eb6: DUP2
00001eb7: ADD
00001eb8: PUSH1 0x40
00001eba: MSTORE
00001ebb: DUP1
00001ebc: PUSH1 0x01
00001ebe: DUP2
00001ebf: MSTORE
00001ec0: PUSH1 0x20
00001ec2: ADD
00001ec3: PUSH1 0xc8
00001ec5: DUP2
00001ec6: MSTORE
00001ec7: PUSH1 0x20
00001ec9: ADD
00001eca: PUSH1 0x00
00001ecc: DUP2
00001ecd: MSTORE
00001ece: PUSH1 0x20
00001ed0: ADD
00001ed1: PUSH1 0x80
00001ed3: PUSH1 0x40
00001ed5: MLOAD
00001ed6: SWAP1
00001ed7: DUP2
00001ed8: ADD
00001ed9: PUSH1 0x40
00001edb: SWAP1
00001edc: DUP2
00001edd: MSTORE
00001ede: PUSH1 0x48
00001ee0: DUP3
00001ee1: MSTORE
00001ee2: PUSH32 0x3535363535373536353536363536373537353537363537373635353635363635
00001f03: PUSH1 0x20
00001f05: DUP4
00001f06: ADD
00001f07: MSTORE
00001f08: PUSH32 0x3736363536363736373536373636373737353537353637353737363537363637
00001f29: SWAP1
00001f2a: DUP3
00001f2b: ADD
00001f2c: MSTORE
00001f2d: PUSH32 0x3637373735373736000000000000000000000000000000000000000000000000
00001f4e: PUSH1 0x60
00001f50: DUP3
00001f51: ADD
00001f52: MSTORE
00001f53: SWAP1
00001f54: MSTORE
00001f55: SWAP2
00001f56: SWAP1
00001f57: POP
00001f58: DUP2
00001f59: MLOAD
00001f5a: DUP2
00001f5b: SSTORE
00001f5c: PUSH1 0x20
00001f5e: DUP3
00001f5f: ADD
00001f60: MLOAD
00001f61: DUP2
00001f62: PUSH1 0x01
00001f64: ADD
00001f65: SSTORE
00001f66: PUSH1 0x40
00001f68: DUP3
00001f69: ADD
00001f6a: MLOAD
00001f6b: DUP2
00001f6c: PUSH1 0x02
00001f6e: ADD
00001f6f: SSTORE
00001f70: PUSH1 0x60
00001f72: DUP3
00001f73: ADD
00001f74: MLOAD
00001f75: DUP2
00001f76: PUSH1 0x03
00001f78: ADD
00001f79: SWAP1
00001f7a: DUP1
00001f7b: MLOAD
00001f7c: PUSH2 0x1f89
00001f7f: SWAP3
00001f80: SWAP2
00001f81: PUSH1 0x20
00001f83: ADD
00001f84: SWAP1
00001f85: PUSH2 0x230b
00001f88: JUMP
00001f89: JUMPDEST
00001f8a: POP
00001f8b: POP
00001f8c: POP
00001f8d: POP
00001f8e: PUSH2 0x1235
00001f91: PUSH2 0x170e
00001f94: JUMP
00001f95: JUMPDEST
00001f96: PUSH1 0x00
00001f98: DUP2
00001f99: DUP4
00001f9a: LT
00001f9b: PUSH2 0x1705
00001f9e: JUMPI
00001f9f: DUP2
00001fa0: PUSH2 0x1707
00001fa3: JUMP
00001fa4: JUMPDEST
00001fa5: PUSH1 0x00
00001fa7: DUP1
00001fa8: PUSH2 0x1faf
00001fab: PUSH2 0x0eee
00001fae: JUMP
00001faf: JUMPDEST
00001fb0: PUSH1 0x02
00001fb2: DUP1
00001fb3: SLOAD
00001fb4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fc9: NOT
00001fca: AND
00001fcb: PUSH1 0x01
00001fcd: PUSH1 0xa0
00001fcf: PUSH1 0x02
00001fd1: EXP
00001fd2: SUB
00001fd3: SWAP3
00001fd4: DUP4
00001fd5: AND
00001fd6: OR
00001fd7: SWAP1
00001fd8: DUP2
00001fd9: SWAP1
00001fda: SSTORE
00001fdb: AND
00001fdc: PUSH4 0x7ce27a4e
00001fe1: DUP7
00001fe2: DUP7
00001fe3: DUP7
00001fe4: PUSH1 0x00
00001fe6: PUSH1 0x40
00001fe8: MLOAD
00001fe9: PUSH1 0x20
00001feb: ADD
00001fec: MSTORE
00001fed: PUSH1 0x40
00001fef: MLOAD
00001ff0: PUSH1 0xe0
00001ff2: PUSH1 0x02
00001ff4: EXP
00001ff5: PUSH4 0xffffffff
00001ffa: DUP7
00001ffb: AND
00001ffc: MUL
00001ffd: DUP2
00001ffe: MSTORE
00001fff: PUSH1 0x0f
00002001: SWAP4
00002002: DUP5
00002003: SIGNEXTEND
00002004: DUP5
00002005: SIGNEXTEND
00002006: PUSH1 0x04
00002008: DUP3
00002009: ADD
0000200a: MSTORE
0000200b: SWAP2
0000200c: DUP4
0000200d: SIGNEXTEND
0000200e: SWAP1
0000200f: SWAP3
00002010: SIGNEXTEND
00002011: PUSH1 0x24
00002013: DUP3
00002014: ADD
00002015: MSTORE
00002016: PUSH1 0x44
00002018: DUP2
00002019: ADD
0000201a: SWAP2
0000201b: SWAP1
0000201c: SWAP2
0000201d: MSTORE
0000201e: PUSH1 0x64
00002020: ADD
00002021: PUSH1 0x20
00002023: PUSH1 0x40
00002025: MLOAD
00002026: DUP1
00002027: DUP4
00002028: SUB
00002029: DUP2
0000202a: PUSH1 0x00
0000202c: DUP8
0000202d: DUP1
0000202e: EXTCODESIZE
0000202f: ISZERO
00002030: ISZERO
00002031: PUSH2 0x2039
00002034: JUMPI
00002035: PUSH1 0x00
00002037: DUP1
00002038: REVERT
00002039: JUMPDEST
0000203a: PUSH2 0x02c6
0000203d: GAS
0000203e: SUB
0000203f: CALL
00002040: ISZERO
00002041: ISZERO
00002042: PUSH2 0x204a
00002045: JUMPI
00002046: PUSH1 0x00
00002048: DUP1
00002049: REVERT
0000204a: JUMPDEST
0000204b: POP
0000204c: POP
0000204d: POP
0000204e: PUSH1 0x40
00002050: MLOAD
00002051: DUP1
00002052: MLOAD
00002053: PUSH1 0x02
00002055: SLOAD
00002056: SWAP1
00002057: SWAP3
00002058: POP
00002059: PUSH1 0x01
0000205b: PUSH1 0xa0
0000205d: PUSH1 0x02
0000205f: EXP
00002060: SUB
00002061: AND
00002062: SWAP1
00002063: POP
00002064: PUSH4 0x70675489
00002069: DUP3
0000206a: DUP8
0000206b: DUP8
0000206c: DUP8
0000206d: PUSH1 0x00
0000206f: PUSH1 0x40
00002071: MLOAD
00002072: PUSH1 0x20
00002074: ADD
00002075: MSTORE
00002076: PUSH1 0x40
00002078: MLOAD
00002079: PUSH1 0xe0
0000207b: PUSH1 0x02
0000207d: EXP
0000207e: PUSH4 0xffffffff
00002083: DUP8
00002084: AND
00002085: MUL
00002086: DUP2
00002087: MSTORE
00002088: PUSH1 0x0f
0000208a: SWAP4
0000208b: DUP5
0000208c: SIGNEXTEND
0000208d: DUP5
0000208e: SIGNEXTEND
0000208f: PUSH1 0x04
00002091: DUP3
00002092: ADD
00002093: MSTORE
00002094: SWAP2
00002095: DUP4
00002096: SIGNEXTEND
00002097: SWAP1
00002098: SWAP3
00002099: SIGNEXTEND
0000209a: PUSH1 0x24
0000209c: DUP3
0000209d: ADD
0000209e: MSTORE
0000209f: PUSH1 0x44
000020a1: DUP2
000020a2: ADD
000020a3: SWAP2
000020a4: SWAP1
000020a5: SWAP2
000020a6: MSTORE
000020a7: PUSH1 0x64
000020a9: ADD
000020aa: PUSH1 0x20
000020ac: PUSH1 0x40
000020ae: MLOAD
000020af: DUP1
000020b0: DUP4
000020b1: SUB
000020b2: DUP2
000020b3: DUP6
000020b4: DUP9
000020b5: DUP1
000020b6: EXTCODESIZE
000020b7: ISZERO
000020b8: ISZERO
000020b9: PUSH2 0x20c1
000020bc: JUMPI
000020bd: PUSH1 0x00
000020bf: DUP1
000020c0: REVERT
000020c1: JUMPDEST
000020c2: PUSH2 0x25ee
000020c5: GAS
000020c6: SUB
000020c7: CALL
000020c8: ISZERO
000020c9: ISZERO
000020ca: PUSH2 0x20d2
000020cd: JUMPI
000020ce: PUSH1 0x00
000020d0: DUP1
000020d1: REVERT
000020d2: JUMPDEST
000020d3: POP
000020d4: POP
000020d5: POP
000020d6: POP
000020d7: PUSH1 0x40
000020d9: MLOAD
000020da: DUP1
000020db: MLOAD
000020dc: SWAP7
000020dd: SWAP6
000020de: POP
000020df: POP
000020e0: POP
000020e1: POP
000020e2: POP
000020e3: POP
000020e4: JUMP
000020e5: JUMPDEST
000020e6: PUSH1 0x00
000020e8: PUSH2 0x20ef
000020eb: PUSH2 0x0eee
000020ee: JUMP
000020ef: JUMPDEST
000020f0: PUSH1 0x02
000020f2: DUP1
000020f3: SLOAD
000020f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002109: NOT
0000210a: AND
0000210b: PUSH1 0x01
0000210d: PUSH1 0xa0
0000210f: PUSH1 0x02
00002111: EXP
00002112: SUB
00002113: SWAP3
00002114: DUP4
00002115: AND
00002116: OR
00002117: SWAP1
00002118: DUP2
00002119: SWAP1
0000211a: SSTORE
0000211b: AND
0000211c: PUSH4 0xb92615f2
00002121: DUP7
00002122: DUP7
00002123: DUP7
00002124: DUP7
00002125: PUSH1 0x00
00002127: PUSH1 0x40
00002129: MLOAD
0000212a: PUSH1 0x20
0000212c: ADD
0000212d: MSTORE
0000212e: PUSH1 0x40
00002130: MLOAD
00002131: PUSH1 0xe0
00002133: PUSH1 0x02
00002135: EXP
00002136: PUSH4 0xffffffff
0000213b: DUP8
0000213c: AND
0000213d: MUL
0000213e: DUP2
0000213f: MSTORE
00002140: PUSH1 0x0f
00002142: SWAP5
00002143: DUP6
00002144: SIGNEXTEND
00002145: DUP6
00002146: SIGNEXTEND
00002147: PUSH1 0x04
00002149: DUP3
0000214a: ADD
0000214b: MSTORE
0000214c: SWAP3
0000214d: DUP5
0000214e: SIGNEXTEND
0000214f: SWAP1
00002150: SWAP4
00002151: SIGNEXTEND
00002152: PUSH1 0x24
00002154: DUP4
00002155: ADD
00002156: MSTORE
00002157: PUSH1 0x44
00002159: DUP3
0000215a: ADD
0000215b: MSTORE
0000215c: PUSH1 0x64
0000215e: DUP2
0000215f: ADD
00002160: SWAP2
00002161: SWAP1
00002162: SWAP2
00002163: MSTORE
00002164: PUSH1 0x84
00002166: ADD
00002167: PUSH1 0x20
00002169: PUSH1 0x40
0000216b: MLOAD
0000216c: DUP1
0000216d: DUP4
0000216e: SUB
0000216f: DUP2
00002170: PUSH1 0x00
00002172: DUP8
00002173: DUP1
00002174: EXTCODESIZE
00002175: ISZERO
00002176: ISZERO
00002177: PUSH2 0x217f
0000217a: JUMPI
0000217b: PUSH1 0x00
0000217d: DUP1
0000217e: REVERT
0000217f: JUMPDEST
00002180: PUSH2 0x02c6
00002183: GAS
00002184: SUB
00002185: CALL
00002186: ISZERO
00002187: ISZERO
00002188: PUSH2 0x2190
0000218b: JUMPI
0000218c: PUSH1 0x00
0000218e: DUP1
0000218f: REVERT
00002190: JUMPDEST
00002191: POP
00002192: POP
00002193: POP
00002194: PUSH1 0x40
00002196: MLOAD
00002197: DUP1
00002198: MLOAD
00002199: SWAP7
0000219a: SWAP6
0000219b: POP
0000219c: POP
0000219d: POP
0000219e: POP
0000219f: POP
000021a0: POP
000021a1: JUMP
000021a2: JUMPDEST
000021a3: PUSH1 0x00
000021a5: DUP1
000021a6: PUSH1 0x00
000021a8: DUP1
000021a9: PUSH1 0x00
000021ab: DUP1
000021ac: PUSH1 0x01
000021ae: DUP8
000021af: LT
000021b0: DUP1
000021b1: PUSH2 0x21bc
000021b4: JUMPI
000021b5: POP
000021b6: PUSH3 0x0186a0
000021ba: DUP8
000021bb: GT
000021bc: JUMPDEST
000021bd: ISZERO
000021be: PUSH2 0x21d2
000021c1: JUMPI
000021c2: PUSH1 0x00
000021c4: NOT
000021c5: DUP9
000021c6: PUSH1 0x00
000021c8: SWAP6
000021c9: POP
000021ca: SWAP6
000021cb: POP
000021cc: SWAP6
000021cd: POP
000021ce: PUSH2 0x22b4
000021d1: JUMP
000021d2: JUMPDEST
000021d3: PUSH1 0x00
000021d5: SWAP3
000021d6: POP
000021d7: PUSH1 0x00
000021d9: SWAP2
000021da: POP
000021db: JUMPDEST
000021dc: PUSH1 0x08
000021de: SLOAD
000021df: DUP3
000021e0: LT
000021e1: ISZERO
000021e2: PUSH2 0x2281
000021e5: JUMPI
000021e6: PUSH1 0x08
000021e8: DUP1
000021e9: SLOAD
000021ea: DUP4
000021eb: SWAP1
000021ec: DUP2
000021ed: LT
000021ee: PUSH2 0x21f3
000021f1: JUMPI
000021f2: INVALID
000021f3: JUMPDEST
000021f4: SWAP1
000021f5: PUSH1 0x00
000021f7: MSTORE
000021f8: PUSH1 0x20
000021fa: PUSH1 0x00
000021fc: KECCAK256
000021fd: SWAP1
000021fe: PUSH1 0x04
00002200: MUL
00002201: ADD
00002202: PUSH1 0x02
00002204: ADD
00002205: SLOAD
00002206: DUP4
00002207: ADD
00002208: SWAP3
00002209: POP
0000220a: DUP3
0000220b: DUP8
0000220c: GT
0000220d: ISZERO
0000220e: ISZERO
0000220f: PUSH2 0x2276
00002212: JUMPI
00002213: PUSH1 0x08
00002215: DUP1
00002216: SLOAD
00002217: DUP4
00002218: SWAP1
00002219: DUP2
0000221a: LT
0000221b: PUSH2 0x2220
0000221e: JUMPI
0000221f: INVALID
00002220: JUMPDEST
00002221: SWAP1
00002222: PUSH1 0x00
00002224: MSTORE
00002225: PUSH1 0x20
00002227: PUSH1 0x00
00002229: KECCAK256
0000222a: SWAP1
0000222b: PUSH1 0x04
0000222d: MUL
0000222e: ADD
0000222f: PUSH1 0x00
00002231: ADD
00002232: SLOAD
00002233: DUP9
00002234: MUL
00002235: SWAP1
00002236: POP
00002237: PUSH3 0x0186a0
0000223b: PUSH1 0x0b
0000223d: SLOAD
0000223e: PUSH2 0x2245
00002241: PUSH2 0x09c5
00002244: JUMP
00002245: JUMPDEST
00002246: MUL
00002247: DUP2
00002248: ISZERO
00002249: ISZERO
0000224a: PUSH2 0x224f
0000224d: JUMPI
0000224e: INVALID
0000224f: JUMPDEST
00002250: DIV
00002251: DUP2
00002252: LT
00002253: PUSH2 0x2267
00002256: JUMPI
00002257: PUSH1 0x01
00002259: NOT
0000225a: DUP9
0000225b: PUSH1 0x00
0000225d: SWAP6
0000225e: POP
0000225f: SWAP6
00002260: POP
00002261: SWAP6
00002262: POP
00002263: PUSH2 0x22b4
00002266: JUMP
00002267: JUMPDEST
00002268: DUP2
00002269: DUP2
0000226a: PUSH1 0x00
0000226c: SWAP6
0000226d: POP
0000226e: SWAP6
0000226f: POP
00002270: SWAP6
00002271: POP
00002272: PUSH2 0x22b4
00002275: JUMP
00002276: JUMPDEST
00002277: PUSH1 0x01
00002279: SWAP1
0000227a: SWAP2
0000227b: ADD
0000227c: SWAP1
0000227d: PUSH2 0x21db
00002280: JUMP
00002281: JUMPDEST
00002282: PUSH1 0x13
00002284: SLOAD
00002285: SWAP3
00002286: SWAP1
00002287: SWAP3
00002288: ADD
00002289: SWAP2
0000228a: DUP3
0000228b: DUP8
0000228c: GT
0000228d: PUSH2 0x22a4
00002290: JUMPI
00002291: PUSH1 0x08
00002293: SLOAD
00002294: PUSH1 0x11
00002296: SLOAD
00002297: SWAP1
00002298: SWAP7
00002299: POP
0000229a: SWAP5
0000229b: POP
0000229c: PUSH1 0x01
0000229e: SWAP4
0000229f: POP
000022a0: PUSH2 0x22b4
000022a3: JUMP
000022a4: JUMPDEST
000022a5: PUSH1 0x08
000022a7: SLOAD
000022a8: PUSH1 0x01
000022aa: ADD
000022ab: SWAP6
000022ac: POP
000022ad: PUSH1 0x00
000022af: SWAP5
000022b0: POP
000022b1: DUP5
000022b2: SWAP4
000022b3: POP
000022b4: JUMPDEST
000022b5: POP
000022b6: POP
000022b7: POP
000022b8: SWAP3
000022b9: POP
000022ba: SWAP3
000022bb: POP
000022bc: SWAP3
000022bd: JUMP
000022be: JUMPDEST
000022bf: POP
000022c0: DUP1
000022c1: SLOAD
000022c2: PUSH1 0x00
000022c4: DUP3
000022c5: SSTORE
000022c6: PUSH1 0x04
000022c8: MUL
000022c9: SWAP1
000022ca: PUSH1 0x00
000022cc: MSTORE
000022cd: PUSH1 0x20
000022cf: PUSH1 0x00
000022d1: KECCAK256
000022d2: SWAP1
000022d3: DUP2
000022d4: ADD
000022d5: SWAP1
000022d6: PUSH2 0x0eb7
000022d9: SWAP2
000022da: SWAP1
000022db: PUSH2 0x2385
000022de: JUMP
000022df: JUMPDEST
000022e0: DUP2
000022e1: SLOAD
000022e2: DUP2
000022e3: DUP4
000022e4: SSTORE
000022e5: DUP2
000022e6: DUP2
000022e7: ISZERO
000022e8: GT
000022e9: PUSH2 0x0e23
000022ec: JUMPI
000022ed: PUSH1 0x04
000022ef: MUL
000022f0: DUP2
000022f1: PUSH1 0x04
000022f3: MUL
000022f4: DUP4
000022f5: PUSH1 0x00
000022f7: MSTORE
000022f8: PUSH1 0x20
000022fa: PUSH1 0x00
000022fc: KECCAK256
000022fd: SWAP2
000022fe: DUP3
000022ff: ADD
00002300: SWAP2
00002301: ADD
00002302: PUSH2 0x0e23
00002305: SWAP2
00002306: SWAP1
00002307: PUSH2 0x2385
0000230a: JUMP
0000230b: JUMPDEST
0000230c: DUP3
0000230d: DUP1
0000230e: SLOAD
0000230f: PUSH1 0x01
00002311: DUP2
00002312: PUSH1 0x01
00002314: AND
00002315: ISZERO
00002316: PUSH2 0x0100
00002319: MUL
0000231a: SUB
0000231b: AND
0000231c: PUSH1 0x02
0000231e: SWAP1
0000231f: DIV
00002320: SWAP1
00002321: PUSH1 0x00
00002323: MSTORE
00002324: PUSH1 0x20
00002326: PUSH1 0x00
00002328: KECCAK256
00002329: SWAP1
0000232a: PUSH1 0x1f
0000232c: ADD
0000232d: PUSH1 0x20
0000232f: SWAP1
00002330: DIV
00002331: DUP2
00002332: ADD
00002333: SWAP3
00002334: DUP3
00002335: PUSH1 0x1f
00002337: LT
00002338: PUSH2 0x234c
0000233b: JUMPI
0000233c: DUP1
0000233d: MLOAD
0000233e: PUSH1 0xff
00002340: NOT
00002341: AND
00002342: DUP4
00002343: DUP1
00002344: ADD
00002345: OR
00002346: DUP6
00002347: SSTORE
00002348: PUSH2 0x2379
0000234b: JUMP
0000234c: JUMPDEST
0000234d: DUP3
0000234e: DUP1
0000234f: ADD
00002350: PUSH1 0x01
00002352: ADD
00002353: DUP6
00002354: SSTORE
00002355: DUP3
00002356: ISZERO
00002357: PUSH2 0x2379
0000235a: JUMPI
0000235b: SWAP2
0000235c: DUP3
0000235d: ADD
0000235e: JUMPDEST
0000235f: DUP3
00002360: DUP2
00002361: GT
00002362: ISZERO
00002363: PUSH2 0x2379
00002366: JUMPI
00002367: DUP3
00002368: MLOAD
00002369: DUP3
0000236a: SSTORE
0000236b: SWAP2
0000236c: PUSH1 0x20
0000236e: ADD
0000236f: SWAP2
00002370: SWAP1
00002371: PUSH1 0x01
00002373: ADD
00002374: SWAP1
00002375: PUSH2 0x235e
00002378: JUMP
00002379: JUMPDEST
0000237a: POP
0000237b: PUSH2 0x09e2
0000237e: SWAP3
0000237f: SWAP2
00002380: POP
00002381: PUSH2 0x23bc
00002384: JUMP
00002385: JUMPDEST
00002386: PUSH2 0x0b1b
00002389: SWAP2
0000238a: SWAP1
0000238b: JUMPDEST
0000238c: DUP1
0000238d: DUP3
0000238e: GT
0000238f: ISZERO
00002390: PUSH2 0x09e2
00002393: JUMPI
00002394: PUSH1 0x00
00002396: DUP1
00002397: DUP3
00002398: SSTORE
00002399: PUSH1 0x01
0000239b: DUP3
0000239c: ADD
0000239d: DUP2
0000239e: SWAP1
0000239f: SSTORE
000023a0: PUSH1 0x02
000023a2: DUP3
000023a3: ADD
000023a4: DUP2
000023a5: SWAP1
000023a6: SSTORE
000023a7: PUSH2 0x23b3
000023aa: PUSH1 0x03
000023ac: DUP4
000023ad: ADD
000023ae: DUP3
000023af: PUSH2 0x23d6
000023b2: JUMP
000023b3: JUMPDEST
000023b4: POP
000023b5: PUSH1 0x04
000023b7: ADD
000023b8: PUSH2 0x238b
000023bb: JUMP
000023bc: JUMPDEST
000023bd: PUSH2 0x0b1b
000023c0: SWAP2
000023c1: SWAP1
000023c2: JUMPDEST
000023c3: DUP1
000023c4: DUP3
000023c5: GT
000023c6: ISZERO
000023c7: PUSH2 0x09e2
000023ca: JUMPI
000023cb: PUSH1 0x00
000023cd: DUP2
000023ce: SSTORE
000023cf: PUSH1 0x01
000023d1: ADD
000023d2: PUSH2 0x23c2
000023d5: JUMP
000023d6: JUMPDEST
000023d7: POP
000023d8: DUP1
000023d9: SLOAD
000023da: PUSH1 0x01
000023dc: DUP2
000023dd: PUSH1 0x01
000023df: AND
000023e0: ISZERO
000023e1: PUSH2 0x0100
000023e4: MUL
000023e5: SUB
000023e6: AND
000023e7: PUSH1 0x02
000023e9: SWAP1
000023ea: DIV
000023eb: PUSH1 0x00
000023ed: DUP3
000023ee: SSTORE
000023ef: DUP1
000023f0: PUSH1 0x1f
000023f2: LT
000023f3: PUSH2 0x23fc
000023f6: JUMPI
000023f7: POP
000023f8: PUSH2 0x0eb7
000023fb: JUMP
000023fc: JUMPDEST
000023fd: PUSH1 0x1f
000023ff: ADD
00002400: PUSH1 0x20
00002402: SWAP1
00002403: DIV
00002404: SWAP1
00002405: PUSH1 0x00
00002407: MSTORE
00002408: PUSH1 0x20
0000240a: PUSH1 0x00
0000240c: KECCAK256
0000240d: SWAP1
0000240e: DUP2
0000240f: ADD
00002410: SWAP1
00002411: PUSH2 0x0eb7
00002414: SWAP2
00002415: SWAP1
00002416: PUSH2 0x23bc
00002419: JUMP
0000241a: JUMPDEST
0000241b: PUSH1 0x00
0000241d: DUP1
0000241e: PUSH2 0x243a
00002421: PUSH20 0xe4d58f4645df8b865dbf2dae788836aedbbd2f63
00002436: PUSH2 0x17db
00002439: JUMP
0000243a: JUMPDEST
0000243b: GT
0000243c: ISZERO
0000243d: PUSH2 0x2497
00002440: JUMPI
00002441: POP
00002442: PUSH20 0xe4d58f4645df8b865dbf2dae788836aedbbd2f63
00002457: PUSH2 0x2492
0000245a: PUSH1 0x40
0000245c: DUP1
0000245d: MLOAD
0000245e: SWAP1
0000245f: DUP2
00002460: ADD
00002461: PUSH1 0x40
00002463: MSTORE
00002464: PUSH1 0x0b
00002466: DUP2
00002467: MSTORE
00002468: PUSH32 0x6574685f6d61696e6e6574000000000000000000000000000000000000000000
00002489: PUSH1 0x20
0000248b: DUP3
0000248c: ADD
0000248d: MSTORE
0000248e: PUSH2 0x252c
00002491: JUMP
00002492: JUMPDEST
00002493: PUSH2 0x0b1b
00002496: JUMP
00002497: JUMPDEST
00002498: PUSH1 0x00
0000249a: PUSH2 0x24b6
0000249d: PUSH20 0x11f3514e4605b14daa29eb17e785f8efb9a14aae
000024b2: PUSH2 0x17db
000024b5: JUMP
000024b6: JUMPDEST
000024b7: GT
000024b8: ISZERO
000024b9: PUSH2 0x250e
000024bc: JUMPI
000024bd: POP
000024be: PUSH20 0x11f3514e4605b14daa29eb17e785f8efb9a14aae
000024d3: PUSH2 0x2492
000024d6: PUSH1 0x40
000024d8: DUP1
000024d9: MLOAD
000024da: SWAP1
000024db: DUP2
000024dc: ADD
000024dd: PUSH1 0x40
000024df: MSTORE
000024e0: PUSH1 0x0c
000024e2: DUP2
000024e3: MSTORE
000024e4: PUSH32 0x6574685f726f707374656e330000000000000000000000000000000000000000
00002505: PUSH1 0x20
00002507: DUP3
00002508: ADD
00002509: MSTORE
0000250a: PUSH2 0x252c
0000250d: JUMP
0000250e: JUMPDEST
0000250f: PUSH2 0x2516
00002512: PUSH2 0x253f
00002515: JUMP
00002516: JUMPDEST
00002517: PUSH1 0x40
00002519: MLOAD
0000251a: DUP1
0000251b: SWAP2
0000251c: SUB
0000251d: SWAP1
0000251e: PUSH1 0x00
00002520: CREATE
00002521: DUP1
00002522: ISZERO
00002523: ISZERO
00002524: PUSH2 0x0d33
00002527: JUMPI
00002528: PUSH1 0x00
0000252a: DUP1
0000252b: REVERT
0000252c: JUMPDEST
0000252d: PUSH1 0x01
0000252f: DUP2
00002530: DUP1
00002531: MLOAD
00002532: PUSH2 0x0b0b
00002535: SWAP3
00002536: SWAP2
00002537: PUSH1 0x20
00002539: ADD
0000253a: SWAP1
0000253b: PUSH2 0x230b
0000253e: JUMP
0000253f: JUMPDEST
00002540: PUSH1 0x40
00002542: MLOAD
00002543: PUSH1 0xca
00002545: DUP1
00002546: PUSH2 0x254f
00002549: DUP4
0000254a: CODECOPY
0000254b: ADD
0000254c: SWAP1
0000254d: JUMP
0000254e: STOP
0000254f: PUSH1 0x60
00002551: PUSH1 0x40
00002553: MSTORE
00002554: CALLVALUE
00002555: ISZERO
00002556: PUSH2 0x000f
00002559: JUMPI
0000255a: PUSH1 0x00
0000255c: DUP1
0000255d: REVERT
0000255e: JUMPDEST
0000255f: PUSH1 0xad
00002561: DUP1
00002562: PUSH2 0x001d
00002565: PUSH1 0x00
00002567: CODECOPY
00002568: PUSH1 0x00
0000256a: RETURN
0000256b: STOP
0000256c: PUSH1 0x60
0000256e: PUSH1 0x40
00002570: MSTORE
00002571: PUSH1 0x04
00002573: CALLDATASIZE
00002574: LT
00002575: PUSH1 0x3e
00002577: JUMPI
00002578: PUSH4 0xffffffff
0000257d: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000259b: PUSH1 0x00
0000259d: CALLDATALOAD
0000259e: DIV
0000259f: AND
000025a0: PUSH4 0x38cc4831
000025a5: DUP2
000025a6: EQ
000025a7: PUSH1 0x43
000025a9: JUMPI
000025aa: JUMPDEST
000025ab: PUSH1 0x00
000025ad: DUP1
000025ae: REVERT
000025af: JUMPDEST
000025b0: CALLVALUE
000025b1: ISZERO
000025b2: PUSH1 0x4d
000025b4: JUMPI
000025b5: PUSH1 0x00
000025b7: DUP1
000025b8: REVERT
000025b9: JUMPDEST
000025ba: PUSH1 0x53
000025bc: PUSH1 0x7c
000025be: JUMP
000025bf: JUMPDEST
000025c0: PUSH1 0x40
000025c2: MLOAD
000025c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025d8: SWAP1
000025d9: SWAP2
000025da: AND
000025db: DUP2
000025dc: MSTORE
000025dd: PUSH1 0x20
000025df: ADD
000025e0: PUSH1 0x40
000025e2: MLOAD
000025e3: DUP1
000025e4: SWAP2
000025e5: SUB
000025e6: SWAP1
000025e7: RETURN
000025e8: JUMPDEST
000025e9: PUSH1 0x00
000025eb: SWAP1
000025ec: JUMP
000025ed: STOP
000025ee: LOG1
000025ef: PUSH6 0x627a7a723058
000025f6: KECCAK256
000025f7: CODESIZE
000025f8: UNKNOWN(0xB2)
000025f9: SMOD
000025fa: DUP10
000025fb: SHL
000025fc: REVERT
000025fd: OR
000025fe: BYTE
000025ff: BLOBBASEFEE
00002600: PUSH7 0x64d634a0c385cc
00002608: NUMBER
00002609: SWAP11
0000260a: RETURN
0000260b: TIMESTAMP
0000260c: GT
0000260d: UNKNOWN(0xB9)
0000260e: UNKNOWN(0xCD)
0000260f: UNKNOWN(0xD2)
00002610: SWAP7
00002611: DUP7
00002612: BLOBHASH
00002613: UNKNOWN(0xC2)
00002614: UNKNOWN(0x2A)
00002615: MSTORE8
00002616: SUB
00002617: STOP
00002618: UNKNOWN(0x29)
00002619: LOG1
0000261a: PUSH6 0x627a7a723058
00002621: KECCAK256
00002622: BLOBBASEFEE
00002623: UNKNOWN(0xC8)
00002624: PUSH10 0x1669760068ff04cd2699
0000262f: UNKNOWN(0xC5)
00002630: ADD
00002631: MSIZE
00002632: UNKNOWN(0xC8)
00002633: UNKNOWN(0xAD)
00002634: AND
00002635: DUP5
00002636: UNKNOWN(0x25)
00002637: UNKNOWN(0xE2)
00002638: DUP1
00002639: PUSH22

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 yes yes
view
trace_id: 0x7b9b0dadf509a3b288a2ecb2ffe0511afb64c7151cbb05f4c0040b8a9b4ffa2d
call_targets: 0x5d1b26d762b1973b8b7c2bfb196ba2ed969daf18, 0x9f6e731911af889a2b520ebecacbe764c5d59255, 0xe4d58f4645df8b865dbf2dae788836aedbbd2f63
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x7b9b0dadf509a3b288a2ecb2ffe0511afb64c7151cbb05f4c0040b8a9b4ffa2d",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x5d1b26d762b1973b8b7c2bfb196ba2ed969daf18",
        "0x9f6e731911af889a2b520ebecacbe764c5d59255",
        "0xe4d58f4645df8b865dbf2dae788836aedbbd2f63"
    ],
    "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": "0x05427ea7",
            "selector": "0x05427ea7",
            "calldata_variants": [
                "0x05427ea7",
                "0x05427ea70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07d0d51e",
            "selector": "0x07d0d51e",
            "calldata_variants": [
                "0x07d0d51e",
                "0x07d0d51e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0d1fce42",
            "selector": "0x0d1fce42",
            "calldata_variants": [
                "0x0d1fce42",
                "0x0d1fce420000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0e81c1f1",
            "selector": "0x0e81c1f1",
            "calldata_variants": [
                "0x0e81c1f1",
                "0x0e81c1f10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0e959dd7",
            "selector": "0x0e959dd7",
            "calldata_variants": [
                "0x0e959dd7",
                "0x0e959dd70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0ee4c938",
            "selector": "0x0ee4c938",
            "calldata_variants": [
                "0x0ee4c938",
                "0x0ee4c9380000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x107bf28c",
            "selector": "0x107bf28c",
            "calldata_variants": [
                "0x107bf28c",
                "0x107bf28c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x11e330b2",
            "selector": "0x11e330b2",
            "calldata_variants": [
                "0x11e330b2",
                "0x11e330b20000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2468,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2992,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3953,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 8,
    "guards_detected": [],
    "untrusted_call_count": 8
}
high other detector ETH value transfer possible 55 yes yes
view
trace_id: 0x7b9b0dadf509a3b288a2ecb2ffe0511afb64c7151cbb05f4c0040b8a9b4ffa2d
call_targets: 0x5d1b26d762b1973b8b7c2bfb196ba2ed969daf18, 0x9f6e731911af889a2b520ebecacbe764c5d59255, 0xe4d58f4645df8b865dbf2dae788836aedbbd2f63
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x7b9b0dadf509a3b288a2ecb2ffe0511afb64c7151cbb05f4c0040b8a9b4ffa2d",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x5d1b26d762b1973b8b7c2bfb196ba2ed969daf18",
        "0x9f6e731911af889a2b520ebecacbe764c5d59255",
        "0xe4d58f4645df8b865dbf2dae788836aedbbd2f63"
    ],
    "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": "0x05427ea7",
            "selector": "0x05427ea7",
            "calldata_variants": [
                "0x05427ea7",
                "0x05427ea70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07d0d51e",
            "selector": "0x07d0d51e",
            "calldata_variants": [
                "0x07d0d51e",
                "0x07d0d51e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0d1fce42",
            "selector": "0x0d1fce42",
            "calldata_variants": [
                "0x0d1fce42",
                "0x0d1fce420000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0e81c1f1",
            "selector": "0x0e81c1f1",
            "calldata_variants": [
                "0x0e81c1f1",
                "0x0e81c1f10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0e959dd7",
            "selector": "0x0e959dd7",
            "calldata_variants": [
                "0x0e959dd7",
                "0x0e959dd70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0ee4c938",
            "selector": "0x0ee4c938",
            "calldata_variants": [
                "0x0ee4c938",
                "0x0ee4c9380000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x107bf28c",
            "selector": "0x107bf28c",
            "calldata_variants": [
                "0x107bf28c",
                "0x107bf28c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x11e330b2",
            "selector": "0x11e330b2",
            "calldata_variants": [
                "0x11e330b2",
                "0x11e330b20000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2468,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2992,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3953,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 8,
    "guards_detected": []
}
medium access_control codex Dynamic external CALLs with ETH value and untrusted targets 75 no
view
evidence_json
{
    "evidence": "BYTECODE_BUNDLE.json detector_findings[0]/[1] confirm 8 CALLs with computed target/value; validation shows target_varies with call_targets including 0x5d1b26d762b1973b8b7c2bfb196ba2ed969daf18, 0x9f6e731911af889a2b520ebecacbe764c5d59255, 0xe4d58f4645df8b865dbf2dae788836aedbbd2f63 and ETH value nonzero; callsites list returndata_checked:null and guards_detected:[] for all calls.",
    "locations": [
        "pc:0x9a4",
        "pc:0xbb0",
        "pc:0xf71",
        "pc:0x1065",
        "pc:0x15cd",
        "pc:0x203f",
        "pc:0x20c7",
        "pc:0x2185"
    ],
    "recommendation": "Restrict these CALL paths to authorized roles or a strict allowlist, validate target/value bounds, and apply checks-effects-interactions or a reentrancy guard around external calls.",
    "exploit_scenario": "If any public or weakly guarded path lets an attacker influence the CALL target/value (via calldata or mutable storage), they can direct the contract to call arbitrary contracts and transfer ETH. That can drain funds or enable reentrancy into state-changing paths. Guard detection is empty in the artifact, so protection cannot be confirmed from bytecode alone."
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x69aebb902b673d83cb9565cf39ff63eab81bc06f4e1410dc362a67380178a3ae
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x69aebb902b673d83cb9565cf39ff63eab81bc06f4e1410dc362a67380178a3ae",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x05427ea7",
            "selector": "0x05427ea7",
            "calldata_variants": [
                "0x05427ea7",
                "0x05427ea70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07d0d51e",
            "selector": "0x07d0d51e",
            "calldata_variants": [
                "0x07d0d51e",
                "0x07d0d51e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0d1fce42",
            "selector": "0x0d1fce42",
            "calldata_variants": [
                "0x0d1fce42",
                "0x0d1fce420000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0e81c1f1",
            "selector": "0x0e81c1f1",
            "calldata_variants": [
                "0x0e81c1f1",
                "0x0e81c1f10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0e959dd7",
            "selector": "0x0e959dd7",
            "calldata_variants": [
                "0x0e959dd7",
                "0x0e959dd70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0ee4c938",
            "selector": "0x0ee4c938",
            "calldata_variants": [
                "0x0ee4c938",
                "0x0ee4c9380000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x107bf28c",
            "selector": "0x107bf28c",
            "calldata_variants": [
                "0x107bf28c",
                "0x107bf28c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x11e330b2",
            "selector": "0x11e330b2",
            "calldata_variants": [
                "0x11e330b2",
                "0x11e330b20000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 1,
    "create2_count": 0
}
low other codex Low-level CALL return data not validated 65 no
view
evidence_json
{
    "evidence": "callsites show returndata_checked:null for all CALLs at pcs 0x9a4/0xbb0/0xf71/0x1065/0x15cd/0x203f/0x20c7/0x2185; disassembly around these pcs shows CALL followed by success check and POPs without RETURNDATASIZE/RETURNDATACOPY usage.",
    "locations": [
        "pc:0x9a4",
        "pc:0xbb0",
        "pc:0xf71",
        "pc:0x1065",
        "pc:0x15cd",
        "pc:0x203f",
        "pc:0x20c7",
        "pc:0x2185"
    ],
    "recommendation": "Decode and validate returndata (e.g., require empty or true) or use safe call wrappers that enforce expected return semantics.",
    "exploit_scenario": "If these CALLs interact with tokens or protocols that signal failure via return values instead of reverts, the contract may treat a failed operation as successful, causing accounting or state inconsistencies. This is especially risky for ERC20s that return false rather than reverting."
}
low other codex CREATE reachable (contract deployment capability) 65 no
view
evidence_json
{
    "evidence": "detector_findings[2] reports create_count=1 and CREATE opcode is present at pc 0x2520 in runtime bytecode.",
    "locations": [
        "pc:0x2520"
    ],
    "recommendation": "Restrict CREATE paths to privileged roles or one-time initialization, and validate/record deployed addresses explicitly.",
    "exploit_scenario": "If an untrusted caller can reach this path, they could trigger contract creation repeatedly, potentially causing gas griefing or unexpected storage updates tied to deployment results. Access control for this path is unclear from bytecode alone."
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 12
}