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

Analysis Run

019b3836-2e59-708d-99c9-3db04a41b280

complete
Chain ID
1
Address
Block Number
Created
Fri, Dec 19, 2025 8:03 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
2255 artifact.fetch complete 1 / 3 3 months ago
2256 tool.cast_disasm complete 1 / 3 3 months ago
45620 analysis.bundle complete 1 / 3 1 week ago
45621 capability.graph complete 1 / 3 1 week ago
45622 detector.run complete 1 / 3 1 week ago
45623 validation.fork complete 1 / 3 1 week ago
113247 report.consolidate complete 1 / 6 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Bytecode-only analysis suggests this contract maintains a global record table and exposes a public ETH-transfer path. The strongest issues are missing access control around record mutation/payout setup and a payout routine that performs a value-bearing CALL without clearly consuming claim state; selector meanings are inferred from storage/call patterns, not verified source.
View stdout
{"no_findings":false,"summary":"Bytecode-only analysis suggests this contract maintains a global record table and exposes a public ETH-transfer path. The strongest issues are missing access control around record mutation/payout setup and a payout routine that performs a value-bearing CALL without clearly consuming claim state; selector meanings are inferred from storage/call patterns, not verified source.","findings":[{"severity":"high","category":"access_control","title":"Unauthenticated record creation can steer later ETH payouts","exploit_scenario":"An attacker can call selector 0x75724990 to create or modify a record-like entry with attacker-chosen data, then call selector 0x2515994e with the relevant index to trigger the value-bearing CALL. Because no guard was detected on either path and the CALL target/value were dynamically confirmed to vary, this can plausibly route contract ETH to attacker-controlled addresses. Exact selector semantics are uncertain from bytecode alone, but the mutation-plus-payout pattern is strong.","recommendation":"Restrict the record-mutating selector(s) and the payout trigger with explicit authorization. If public participation is intended, bind records to msg.sender, validate index/amount invariants onchain, and separate user input from payout destination data.","evidence":"Selector 0x75724990 has no detected guard and performs multiple writes into a record-like slot derived from a base slot plus offset 5, including SSTOREs at pc 0x248, pc 0x257, and pc 0x274, plus counter/accounting updates at pc 0x283 and pc 0x29f. Selector 0x2515994e reaches the only external CALL site at pc 0x458. The detector validated this CALL as confirmed, with target_varies=true and observed call targets including external address 0x4f541a72b8dbfd121e158f9a395177dc9d030005.","locations":["selector:0x75724990","pc:0x248","pc:0x257","pc:0x274","pc:0x283","pc:0x29f","selector:0x2515994e","pc:0x458"]},{"severity":"medium","category":"reentrancy","title":"Payout path appears replayable and reentrancy-prone","exploit_scenario":"A malicious recipient contract can be configured as the payout target and, when selector 0x2515994e executes, reenter or repeatedly call the same selector on the same index. The payout path appears to read storage, perform a value-bearing CALL, and return without clearing or decrementing the record in that same path. If the inferred accounting role of these slots is correct, the same entitlement can be paid multiple times until balance exhaustion.","recommendation":"Use checks-effects-interactions: mark the record as spent or decrement owed value before the external CALL, and add a reentrancy guard around payout-related entrypoints. Revert on failed transfer instead of ignoring the CALL result.","evidence":"The only CALL occurs at pc 0x458 and the artifact reports returndata_checked=null. In the selector 0x2515994e path, the bytecode shows SLOAD-based computation leading into the CALL but no SSTORE before or after it. A separate selector, 0xdda1a1e6, clears a byte-like field at record slot+2 (pc 0x2e4 through pc 0x2fd), yet that flag is not obviously consulted on the payout path, which suggests claim state is not consumed during transfer. This replay conclusion is based on bytecode inference and is therefore medium-confidence.","locations":["selector:0x2515994e","pc:0x458","selector:0xdda1a1e6","pc:0x2e4","pc:0x2fd"]}]}
View stderr
OpenAI Codex v0.118.0 (research preview)
--------
workdir: /tmp/codex-jzb1pn5_
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5b98-0f8a-7120-a336-dd3ca8d9a8de
--------
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.
warning: Codex could not find system bubblewrap on PATH. Please install bubblewrap with your package manager. Codex will use the vendored bubblewrap in the meantime.
exec
/bin/bash -lc pwd in /tmp/codex-jzb1pn5_
 succeeded in 0ms:
/tmp/codex-jzb1pn5_

exec
/bin/bash -lc 'rg --files /tmp/codex-jzb1pn5_' in /tmp/codex-jzb1pn5_
 succeeded in 0ms:
/tmp/codex-jzb1pn5_/codex-output-schema.json
/tmp/codex-jzb1pn5_/BYTECODE_BUNDLE.json

exec
/bin/bash -lc 'wc -c BYTECODE_BUNDLE.json' in /tmp/codex-jzb1pn5_
 succeeded in 0ms:
47103 BYTECODE_BUNDLE.json

exec
/bin/bash -lc "sed -n '1,220p' BYTECODE_BUNDLE.json" in /tmp/codex-jzb1pn5_
 succeeded in 0ms:
{
  "analysis_artifact": {
    "address": "0x9c9e98aba397c49e03ee2e4cf11c0effb8cc8135",
    "artifact_hash": "0x5d2d54bc6a8cdc9f8f4a177c27dd32b4666f2811447740b32a11f748d9ef90ab",
    "artifact_json": {
      "auth": {
        "guards": []
      },
      "basic_blocks": [
        {
          "end_pc": 10,
          "hash": "0xf5d6af4a12b776a41e6ca657b4f2e80045eea6e7b0e6dbc2cfae642d142272c3",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "CALLDATASIZE",
            "ISZERO",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 0
        },
        {
          "end_pc": 56,
          "hash": "0xea13e8a2f3b5a564454dbeb7ebfbd02c31f7ef5c0570120140ed23fc67ee435e",
          "opcodes": [
            "PUSH1",
            "CALLDATALOAD",
            "PUSH29",
            "OP_90",
            "DIV",
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 11
        },
        {
          "end_pc": 67,
          "hash": "0x8d02554824cf27ace5344799536b4f72903bda01abdf66d3bf6297df041e36b8",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 57
        },
        {
          "end_pc": 78,
          "hash": "0xf8f5d469be396e67423be51d67a102426463a140efdab87af4d53a36b3d7c2c9",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 68
        },
        {
          "end_pc": 89,
          "hash": "0x13c8bfe37582ba5636c5b4996c40cdcb1fdc7ef4a72c617edf5dff64699f9a60",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 79
        },
        {
          "end_pc": 100,
          "hash": "0x24fe541a4edb87d7cb8d79ee6225cc472ac8eaf3e5483b6fa6c23068b02d8337",
          "opcodes": [
            "OP_80",
            "PUSH4",
            "EQ",
            "PUSH2",
            "JUMPI"
          ],
          "start_pc": 90
        },
        {
          "end_pc": 104,
          "hash": "0x484c92b211ef8dd68c0e6130583870a32a0375881a1fa83a77c257901b3588c4",
          "opcodes": [
            "PUSH2",
            "JUMP"
          ],
          "start_pc": 101
        },
        {
          "end_pc": 106,
          "hash": "0xb2aa0226de40f9148b126a397c9454c583834cf0c5ad69f7f4bf75d73e0ec551",
          "opcodes": [
            "JUMPDEST",
            "PUSH2"
          ],
          "start_pc": 105
        },
        {
          "end_pc": 253,
          "hash": "0x2b0645577818da80de4270c9d660dc972753a46a7ac07474acea985b4357e62b",
          "opcodes": [
            "JUMPDEST",
            "PUSH1",
            "NUMBER",
            "PUSH32",
            "CALLER",
            "CALLVALUE",
            "TIMESTAMP",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_84",
            "PUSH20",
            "AND",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_83",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_82",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_93",
            "POP",
            "POP",
            "POP",
            "POP",
            "PUSH1",
            "MLOAD",
            "OP_80",
            "OP_91",
            "SUB",
            "OP_90",
            "OP_A2",
            "PUSH1",
            "PUSH1",
            "POP",
            "PUSH1",
            "PUSH1",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "OP_90",
            "OP_81",
            "MSTORE",
            "PUSH1",
            "ADD",
            "PUSH1",
            "SHA3",
            "PUSH1",
            "POP",
            "OP_90",
            "POP",
            "CALLVALUE",
            "OP_81",
            "PUSH1",
            "ADD",
            "PUSH1",
            "OP_82",
            "OP_82",
            "OP_82",
            "POP",
            "SLOAD",
            "ADD",
            "OP_92",
            "POP",
            "POP",
            "OP_81",
            "OP_90",
            "SSTORE",
            "POP"
          ],
          "start_pc": 109
        },
        {
          "end_pc": 256,
          "hash": "0x2c2cb426186476a7c86225c71d1f8193b721adfb134077b9382b892f0d85ae7e",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "JUMP"
          ],
          "start_pc": 254
        },
        {
          "end_pc": 258,
          "hash": "0x79bce3cb5a7b1ee711b1cd0b1bc1c43e20ce3722cb4fb784776f67858ebca334",
          "opcodes": [
            "JUMPDEST",
            "STOP"
          ],
          "start_pc": 257
        },
        {
          "end_pc": 280,
          "hash": "0x27468b7bb1e1c849c45cbfc16d69abd40f467af39c04c783765c57541dd60d78",
          "opcodes": [
            "JUMPDEST",
            "PUSH2",
            "PUSH1",
            "OP_80",
            "OP_80",
            "CALLDATALOAD",
            "OP_90",

exec
/bin/bash -lc "sed -n '1,220p' codex-output-schema.json" in /tmp/codex-jzb1pn5_
 succeeded in 0ms:
{"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"}}}}}}}
exec
/bin/bash -lc "rg -n 'detector|selector|delegatecall|callsites|storage|proxy|fallback|receive|evidence|findings|slots|calls' BYTECODE_BUNDLE.json" in /tmp/codex-jzb1pn5_
 succeeded in 0ms:
943:      "callsites": [
1080:      "dispatcher_type": "selector_jump_table",
1084:          "selector": "0x2515994e"
1088:          "selector": "0x6ccb5d02"
1092:          "selector": "0x75724990"
1096:          "selector": "0xdae9e379"
1100:          "selector": "0xdda1a1e6"
1109:          "selector": "0x2515994e",
1112:            "delegatecall": 0,
1116:          "storage": {
1118:            "slots": [
1138:          "selector": "0x6ccb5d02",
1141:            "delegatecall": 0,
1145:          "storage": {
1147:            "slots": [
1167:          "selector": "0x75724990",
1170:            "delegatecall": 0,
1174:          "storage": {
1176:            "slots": [
1196:          "selector": "0xdae9e379",
1199:            "delegatecall": 0,
1203:          "storage": {
1205:            "slots": [
1225:          "selector": "0xdda1a1e6",
1228:            "delegatecall": 0,
1232:          "storage": {
1234:            "slots": [
1250:      "selectors": [
1261:        "delegatecall": 0,
1266:      "storage": {
1269:        "slots": [
1312:    "is_proxy": false,
1709:          "type": "callsite"
1718:          "selector": "0x2515994e",
1724:          "selector": "0x6ccb5d02",
1730:          "selector": "0x75724990",
1736:          "selector": "0xdae9e379",
1742:          "selector": "0xdda1a1e6",
1752:  "detector_findings": [
1755:      "evidence_json": {
1794:      "evidence_json": {
1795:        "eth_value_calls": 1,
1834:    "delegatecall_count": 0,

exec
/bin/bash -lc "jq 'keys' BYTECODE_BUNDLE.json" in /tmp/codex-jzb1pn5_
 succeeded in 0ms:
[
  "analysis_artifact",
  "analysis_run",
  "artifact",
  "capability_graph",
  "detector_findings",
  "heuristics_summary"
]

exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json | keys' BYTECODE_BUNDLE.json" in /tmp/codex-jzb1pn5_
 succeeded in 0ms:
[
  "auth",
  "basic_blocks",
  "callsites",
  "cfg_edges",
  "cfg_hash",
  "dispatcher_type",
  "function_entries",
  "functions",
  "selectors",
  "sinks",
  "storage",
  "version"
]

exec
/bin/bash -lc "sed -n '930,1325p' BYTECODE_BUNDLE.json" in /tmp/codex-jzb1pn5_
 succeeded in 0ms:
          "end_pc": 1124,
          "hash": "0x249228b430d0dcd9cfd1378813359e2f908c8ee0a9f47b9f84acf06c9ed6cece",
          "opcodes": [
            "JUMPDEST",
            "POP",
            "POP",
            "POP",
            "POP",
            "JUMP"
          ],
          "start_pc": 1119
        }
      ],
      "callsites": [
        {
          "opcode": "CALL",
          "pc": 1112,
          "returndata_checked": null,
          "target_expression_category": "computed",
          "value_expression_category": "computed"
        }
      ],
      "cfg_edges": [
        {
          "from": "bb:0",
          "to": "bb:105",
          "type": "control_flow"
        },
        {
          "from": "bb:0",
          "to": "bb:11",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:11",
          "to": "bb:259",
          "type": "control_flow"
        },
        {
          "from": "bb:11",
          "to": "bb:57",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:57",
          "to": "bb:283",
          "type": "control_flow"
        },
        {
          "from": "bb:57",
          "to": "bb:68",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:68",
          "to": "bb:349",
          "type": "control_flow"
        },
        {
          "from": "bb:68",
          "to": "bb:79",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:79",
          "to": "bb:382",
          "type": "control_flow"
        },
        {
          "from": "bb:79",
          "to": "bb:90",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:90",
          "to": "bb:417",
          "type": "control_flow"
        },
        {
          "from": "bb:90",
          "to": "bb:101",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:101",
          "to": "bb:105",
          "type": "control_flow"
        },
        {
          "from": "bb:105",
          "to": "bb:109",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:109",
          "to": "bb:254",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:259",
          "to": "bb:937",
          "type": "control_flow"
        },
        {
          "from": "bb:283",
          "to": "bb:823",
          "type": "control_flow"
        },
        {
          "from": "bb:349",
          "to": "bb:441",
          "type": "control_flow"
        },
        {
          "from": "bb:382",
          "to": "bb:772",
          "type": "control_flow"
        },
        {
          "from": "bb:417",
          "to": "bb:678",
          "type": "control_flow"
        },
        {
          "from": "bb:441",
          "to": "bb:673",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:678",
          "to": "bb:767",
          "type": "control_flow_fallthrough"
        },
        {
          "from": "bb:772",
          "to": "bb:819",
          "type": "control_flow"
        },
        {
          "from": "bb:823",
          "to": "bb:930",
          "type": "control_flow"
        },
        {
          "from": "bb:937",
          "to": "bb:1119",
          "type": "control_flow_fallthrough"
        }
      ],
      "cfg_hash": "0xbfc0022835f0d38beec98791d1234cef6d1ce50a151d103b78a42173f615d395",
      "dispatcher_type": "selector_jump_table",
      "function_entries": [
        {
          "entry_pc": 1825266946,
          "selector": "0x2515994e"
        },
        {
          "entry_pc": 1970424208,
          "selector": "0x6ccb5d02"
        },
        {
          "entry_pc": 3672761209,
          "selector": "0x75724990"
        },
        {
          "entry_pc": 3718357478,
          "selector": "0xdae9e379"
        },
        {
          "entry_pc": null,
          "selector": "0xdda1a1e6"
        }
      ],
      "functions": [
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 1825266946,
          "selector": "0x2515994e",
          "sinks": {
            "call": 1,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 13,
            "slots": [
              {
                "op": "SLOAD",
                "pc": 894,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1039,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              }
            ],
            "writes": 7
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 1970424208,
          "selector": "0x6ccb5d02",
          "sinks": {
            "call": 1,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 13,
            "slots": [
              {
                "op": "SLOAD",
                "pc": 894,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1039,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              }
            ],
            "writes": 7
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 3672761209,
          "selector": "0x75724990",
          "sinks": {
            "call": 1,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 13,
            "slots": [
              {
                "op": "SLOAD",
                "pc": 894,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1039,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              }
            ],
            "writes": 7
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": 3718357478,
          "selector": "0xdae9e379",
          "sinks": {
            "call": 1,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 13,
            "slots": [
              {
                "op": "SLOAD",
                "pc": 894,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1039,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              }
            ],
            "writes": 7
          }
        },
        {
          "auth": {
            "guards": []
          },
          "entry_pc": null,
          "selector": "0xdda1a1e6",
          "sinks": {
            "call": 1,
            "delegatecall": 0,
            "selfdestruct": 0,
            "staticcall": 0
          },
          "storage": {
            "reads": 13,
            "slots": [
              {
                "op": "SLOAD",
                "pc": 894,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              },
              {
                "op": "SLOAD",
                "pc": 1039,
                "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
              }
            ],
            "writes": 7
          }
        }
      ],
      "selectors": [
        "0x2515994e",
        "0x6ccb5d02",
        "0x75724990",
        "0xdae9e379",
        "0xdda1a1e6"
      ],
      "sinks": {
        "call": 1,
        "create": 0,
        "create2": 0,
        "delegatecall": 0,
        "selfdestruct": 0,
        "staticcall": 0,
        "upgrade_slot_write_suspected": false
      },
      "storage": {
        "keccak_count": 10,
        "reads": 13,
        "slots": [
          {
            "op": "SLOAD",
            "pc": 894,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          },
          {
            "op": "SLOAD",
            "pc": 1039,
            "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
          }
        ],
        "writes": 7
      },
      "version": "analysis_artifact_v1"
    },
    "block_number": null,
    "chain_id": 1,
    "codehash": "0x078cf294923eed7f9d62fcfb884dae4ce7252a87bff75c9aa2ecc6111f8d32b5",
    "created_at": "2026-04-04T19:53:51.000000Z",
    "id": 2062,
    "updated_at": "2026-04-04T19:53:51.000000Z",
    "version": "analysis_artifact_v1"
  },
  "analysis_run": {
    "address": "0x9c9e98aba397c49e03ee2e4cf11c0effb8cc8135",
    "block_number": null,
    "chain_id": 1,
    "child_links": [],
    "created_at": "2025-12-19T20:03:53.000000Z",
    "id": "019b3836-2e59-708d-99c9-3db04a41b280",
    "parent_links": [],
    "status": "running",
    "updated_at": "2026-04-04T19:53:51.000000Z"
  },
  "artifact": {
    "codehash": "0x078cf294923eed7f9d62fcfb884dae4ce7252a87bff75c9aa2ecc6111f8d32b5",
    "compiler_json": {
      "etherscan": {
        "skipped": true
      }
    },
    "implementation_address": null,
    "is_proxy": false,
    "runtime_bytecode": {
      "full": "0x60606040523615610069576000357c0100000000000000000000000000000000000000000000000000000000900480632515994e146101035780636ccb5d021461011b578063757249901461015d578063dae9e3791461017e578063dda1a1e6146101a157610069565b6101015b6000437f5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db333442604051808473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a26000600050600060008152602001908152602001600020600050905034816000016000828282505401925050819055505b50565b005b61011960048080359060200190919050506103a9565b005b6101316004808035906020019091905050610337565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61017c60048080359060200190919080359060200190919050506101b9565b005b61018b6004805050610304565b6040518082815260200191505060405180910390f35b6101b760048080359060200190919050506102a6565b005b60006000600050600060008152602001908152602001600020600050905060606040519081016040528084815260200183815260200160018152602001508160050160005060008360040160005054815260200190815260200160002060005060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908302179055506020820151816001016000505560408201518160020160006101000a81548160ff02191690830217905550905050806004016000818150546001019190508190555081816002016000828282505403925050819055505b505050565b6000600060006000506000600081526020019081526020016000206000509150816005016000506000848152602001908152602001600020600050905060008160020160006101000a81548160ff021916908302179055505b505050565b600060006000600050600060008152602001908152602001600020600050905080600001600050549150610333565b5090565b6000600060006000600050600060008152602001908152602001600020600050915081600501600050600085815260200190815260200160002060005090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692506103a2565b5050919050565b600060006000600060005060006000815260200190815260200160002060005092508260050160005060008581526020019081526020016000206000509150816001016000505483600101600050546000856000016000505402040290508160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600082604051809050600060405180830381858888f19350505050505b5050505056",
      "head": null,
      "length": 2252,
      "tail": null,
      "truncated": false
    },
    "verified_source": false
  },
  "capability_graph": {
    "address": "0x9c9e98aba397c49e03ee2e4cf11c0effb8cc8135",
    "block_number": null,
    "chain_id": 1,

exec
/bin/bash -lc "sed -n '1680,1865p' BYTECODE_BUNDLE.json" in /tmp/codex-jzb1pn5_
 succeeded in 0ms:
          "id": "bb:823",
          "start_pc": 823,
          "type": "basic_block"
        },
        {
          "end_pc": 936,
          "hash": "0x9d5e34c57157f20a27a003c44911f50cf2516dfdc34b4d6e64bfa51e468474f0",
          "id": "bb:930",
          "start_pc": 930,
          "type": "basic_block"
        },
        {
          "end_pc": 1118,
          "hash": "0xbe220e2e1cabdbe611fe1a95c5948a1c5e1866e2ad1c9335c69ad4063d328761",
          "id": "bb:937",
          "start_pc": 937,
          "type": "basic_block"
        },
        {
          "end_pc": 1124,
          "hash": "0x249228b430d0dcd9cfd1378813359e2f908c8ee0a9f47b9f84acf06c9ed6cece",
          "id": "bb:1119",
          "start_pc": 1119,
          "type": "basic_block"
        },
        {
          "id": "call:1112",
          "opcode": "CALL",
          "pc": 1112,
          "type": "callsite"
        },
        {
          "id": "sink:call",
          "type": "sink"
        },
        {
          "entry_pc": 1825266946,
          "id": "fn:0x2515994e",
          "selector": "0x2515994e",
          "type": "function"
        },
        {
          "entry_pc": 1970424208,
          "id": "fn:0x6ccb5d02",
          "selector": "0x6ccb5d02",
          "type": "function"
        },
        {
          "entry_pc": 3672761209,
          "id": "fn:0x75724990",
          "selector": "0x75724990",
          "type": "function"
        },
        {
          "entry_pc": 3718357478,
          "id": "fn:0xdae9e379",
          "selector": "0xdae9e379",
          "type": "function"
        },
        {
          "entry_pc": null,
          "id": "fn:0xdda1a1e6",
          "selector": "0xdda1a1e6",
          "type": "function"
        }
      ],
      "version": "capability_graph_v1"
    },
    "id": 2062,
    "updated_at": "2026-04-04T19:53:51.000000Z",
    "version": "capability_graph_v1"
  },
  "detector_findings": [
    {
      "confidence": 60,
      "evidence_json": {
        "call_count": 1,
        "examples": [
          {
            "opcode": "CALL",
            "pc": 1112,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          }
        ],
        "guards_detected": [],
        "untrusted_call_count": 1
      },
      "normalized_json": {
        "sink": "CALL"
      },
      "severity": "high",
      "title": "Untrusted CALL target/value reachable",
      "validated": true,
      "validation_json": {
        "attempts": 1,
        "call_targets": [
          "0x4f541a72b8dbfd121e158f9a395177dc9d030005",
          "0x9c9e98aba397c49e03ee2e4cf11c0effb8cc8135"
        ],
        "classification": "target_varies",
        "confirmed": true,
        "errors": 0,
        "matched_probe": null,
        "sink": "CALL",
        "status": "confirmed",
        "target_varies": true,
        "trace_id": "0x64c16fe4eaba2e7d2c1db7b2a0aab50a72eee572175e6f53861345b403c3748d",
        "trace_mode": "callTracer"
      }
    },
    {
      "confidence": 55,
      "evidence_json": {
        "eth_value_calls": 1,
        "examples": [
          {
            "opcode": "CALL",
            "pc": 1112,
            "returndata_checked": null,
            "target_expression_category": "computed",
            "value_expression_category": "computed"
          }
        ],
        "guards_detected": []
      },
      "normalized_json": {
        "sink": "CALL",
        "value": "nonzero"
      },
      "severity": "high",
      "title": "ETH value transfer possible",
      "validated": true,
      "validation_json": {
        "attempts": 1,
        "call_targets": [
          "0x4f541a72b8dbfd121e158f9a395177dc9d030005",
          "0x9c9e98aba397c49e03ee2e4cf11c0effb8cc8135"
        ],
        "classification": "target_varies",
        "confirmed": true,
        "errors": 0,
        "matched_probe": null,
        "sink": "CALL",
        "status": "confirmed",
        "target_varies": true,
        "trace_id": "0x64c16fe4eaba2e7d2c1db7b2a0aab50a72eee572175e6f53861345b403c3748d",
        "trace_mode": "callTracer"
      }
    }
  ],
  "heuristics_summary": {
    "create2_count": 0,
    "delegatecall_count": 0,
    "flags": [],
    "selfdestruct_count": 0
  }
}
exec
/bin/bash -lc "python - <<'PY'
import json
from textwrap import wrap
with open('BYTECODE_BUNDLE.json') as f:
    j=json.load(f)
code=j['artifact']['runtime_bytecode']['full']
print('selectors', j['analysis_artifact']['artifact_json']['selectors'])
print('callsites', j['analysis_artifact']['artifact_json']['callsites'])
print('detectors', [(d['title'], d['severity']) for d in j['detector_findings']])
PY" in /tmp/codex-jzb1pn5_
 succeeded in 0ms:
selectors ['0x2515994e', '0x6ccb5d02', '0x75724990', '0xdae9e379', '0xdda1a1e6']
callsites [{'opcode': 'CALL', 'pc': 1112, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}]
detectors [('Untrusted CALL target/value reachable', 'high'), ('ETH value transfer possible', 'high')]

exec
/bin/bash -lc "python - <<'PY'
import json
opnames = {
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:'PREVRANDAO',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',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for i in range(1,33): opnames[0x5f+i]=f'PUSH{i}'
for i in range(1,17): opnames[0x7f+i]=f'DUP{i}'
for i in range(1,17): opnames[0x8f+i]=f'SWAP{i}'
for i in range(0,5): opnames[0xa0+i]=f'LOG{i}'
with open('BYTECODE_BUNDLE.json') as f: j=json.load(f)
code=bytes.fromhex(j['artifact']['runtime_bytecode']['full'][2:])
# disassemble selected ranges
ranges=[(0,130),(0x100,0x1d0),(0x1b0,0x470)]
for start,end in ranges:
    print(f'-- range {start:#x}-{end:#x} --')
    pc=start
    while pc < min(end,len(code)):
        op=code[pc]
        name=opnames.get(op,f'OP_{op:02x}')
        if 0x60 <= op <= 0x7f:
            n=op-0x5f
            data=code[pc+1:pc+1+n]
            print(f'{pc:04x}: {name} 0x{data.hex()}')
            pc += 1+n
        else:
            print(f'{pc:04x}: {name}')
            pc += 1
PY" in /tmp/codex-jzb1pn5_
 succeeded in 0ms:
-- range 0x0-0x82 --
0000: PUSH1 0x60
0002: PUSH1 0x40
0004: MSTORE
0005: CALLDATASIZE
0006: ISZERO
0007: PUSH2 0x0069
000a: JUMPI
000b: PUSH1 0x00
000d: CALLDATALOAD
000e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
002c: SWAP1
002d: DIV
002e: DUP1
002f: PUSH4 0x2515994e
0034: EQ
0035: PUSH2 0x0103
0038: JUMPI
0039: DUP1
003a: PUSH4 0x6ccb5d02
003f: EQ
0040: PUSH2 0x011b
0043: JUMPI
0044: DUP1
0045: PUSH4 0x75724990
004a: EQ
004b: PUSH2 0x015d
004e: JUMPI
004f: DUP1
0050: PUSH4 0xdae9e379
0055: EQ
0056: PUSH2 0x017e
0059: JUMPI
005a: DUP1
005b: PUSH4 0xdda1a1e6
0060: EQ
0061: PUSH2 0x01a1
0064: JUMPI
0065: PUSH2 0x0069
0068: JUMP
0069: JUMPDEST
006a: PUSH2 0x0101
006d: JUMPDEST
006e: PUSH1 0x00
0070: NUMBER
0071: PUSH32 0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db
-- range 0x100-0x1d0 --
0100: JUMP
0101: JUMPDEST
0102: STOP
0103: JUMPDEST
0104: PUSH2 0x0119
0107: PUSH1 0x04
0109: DUP1
010a: DUP1
010b: CALLDATALOAD
010c: SWAP1
010d: PUSH1 0x20
010f: ADD
0110: SWAP1
0111: SWAP2
0112: SWAP1
0113: POP
0114: POP
0115: PUSH2 0x03a9
0118: JUMP
0119: JUMPDEST
011a: STOP
011b: JUMPDEST
011c: PUSH2 0x0131
011f: PUSH1 0x04
0121: DUP1
0122: DUP1
0123: CALLDATALOAD
0124: SWAP1
0125: PUSH1 0x20
0127: ADD
0128: SWAP1
0129: SWAP2
012a: SWAP1
012b: POP
012c: POP
012d: PUSH2 0x0337
0130: JUMP
0131: JUMPDEST
0132: PUSH1 0x40
0134: MLOAD
0135: DUP1
0136: DUP3
0137: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
014c: AND
014d: DUP2
014e: MSTORE
014f: PUSH1 0x20
0151: ADD
0152: SWAP2
0153: POP
0154: POP
0155: PUSH1 0x40
0157: MLOAD
0158: DUP1
0159: SWAP2
015a: SUB
015b: SWAP1
015c: RETURN
015d: JUMPDEST
015e: PUSH2 0x017c
0161: PUSH1 0x04
0163: DUP1
0164: DUP1
0165: CALLDATALOAD
0166: SWAP1
0167: PUSH1 0x20
0169: ADD
016a: SWAP1
016b: SWAP2
016c: SWAP1
016d: DUP1
016e: CALLDATALOAD
016f: SWAP1
0170: PUSH1 0x20
0172: ADD
0173: SWAP1
0174: SWAP2
0175: SWAP1
0176: POP
0177: POP
0178: PUSH2 0x01b9
017b: JUMP
017c: JUMPDEST
017d: STOP
017e: JUMPDEST
017f: PUSH2 0x018b
0182: PUSH1 0x04
0184: DUP1
0185: POP
0186: POP
0187: PUSH2 0x0304
018a: JUMP
018b: JUMPDEST
018c: PUSH1 0x40
018e: MLOAD
018f: DUP1
0190: DUP3
0191: DUP2
0192: MSTORE
0193: PUSH1 0x20
0195: ADD
0196: SWAP2
0197: POP
0198: POP
0199: PUSH1 0x40
019b: MLOAD
019c: DUP1
019d: SWAP2
019e: SUB
019f: SWAP1
01a0: RETURN
01a1: JUMPDEST
01a2: PUSH2 0x01b7
01a5: PUSH1 0x04
01a7: DUP1
01a8: DUP1
01a9: CALLDATALOAD
01aa: SWAP1
01ab: PUSH1 0x20
01ad: ADD
01ae: SWAP1
01af: SWAP2
01b0: SWAP1
01b1: POP
01b2: POP
01b3: PUSH2 0x02a6
01b6: JUMP
01b7: JUMPDEST
01b8: STOP
01b9: JUMPDEST
01ba: PUSH1 0x00
01bc: PUSH1 0x00
01be: PUSH1 0x00
01c0: POP
01c1: PUSH1 0x00
01c3: PUSH1 0x00
01c5: DUP2
01c6: MSTORE
01c7: PUSH1 0x20
01c9: ADD
01ca: SWAP1
01cb: DUP2
01cc: MSTORE
01cd: PUSH1 0x20
01cf: ADD
-- range 0x1b0-0x470 --
01b0: SWAP1
01b1: POP
01b2: POP
01b3: PUSH2 0x02a6
01b6: JUMP
01b7: JUMPDEST
01b8: STOP
01b9: JUMPDEST
01ba: PUSH1 0x00
01bc: PUSH1 0x00
01be: PUSH1 0x00
01c0: POP
01c1: PUSH1 0x00
01c3: PUSH1 0x00
01c5: DUP2
01c6: MSTORE
01c7: PUSH1 0x20
01c9: ADD
01ca: SWAP1
01cb: DUP2
01cc: MSTORE
01cd: PUSH1 0x20
01cf: ADD
01d0: PUSH1 0x00
01d2: SHA3
01d3: PUSH1 0x00
01d5: POP
01d6: SWAP1
01d7: POP
01d8: PUSH1 0x60
01da: PUSH1 0x40
01dc: MLOAD
01dd: SWAP1
01de: DUP2
01df: ADD
01e0: PUSH1 0x40
01e2: MSTORE
01e3: DUP1
01e4: DUP5
01e5: DUP2
01e6: MSTORE
01e7: PUSH1 0x20
01e9: ADD
01ea: DUP4
01eb: DUP2
01ec: MSTORE
01ed: PUSH1 0x20
01ef: ADD
01f0: PUSH1 0x01
01f2: DUP2
01f3: MSTORE
01f4: PUSH1 0x20
01f6: ADD
01f7: POP
01f8: DUP2
01f9: PUSH1 0x05
01fb: ADD
01fc: PUSH1 0x00
01fe: POP
01ff: PUSH1 0x00
0201: DUP4
0202: PUSH1 0x04
0204: ADD
0205: PUSH1 0x00
0207: POP
0208: SLOAD
0209: DUP2
020a: MSTORE
020b: PUSH1 0x20
020d: ADD
020e: SWAP1
020f: DUP2
0210: MSTORE
0211: PUSH1 0x20
0213: ADD
0214: PUSH1 0x00
0216: SHA3
0217: PUSH1 0x00
0219: POP
021a: PUSH1 0x00
021c: DUP3
021d: ADD
021e: MLOAD
021f: DUP2
0220: PUSH1 0x00
0222: ADD
0223: PUSH1 0x00
0225: PUSH2 0x0100
0228: EXP
0229: DUP2
022a: SLOAD
022b: DUP2
022c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0241: MUL
0242: NOT
0243: AND
0244: SWAP1
0245: DUP4
0246: MUL
0247: OR
0248: SWAP1
0249: SSTORE
024a: POP
024b: PUSH1 0x20
024d: DUP3
024e: ADD
024f: MLOAD
0250: DUP2
0251: PUSH1 0x01
0253: ADD
0254: PUSH1 0x00
0256: POP
0257: SSTORE
0258: PUSH1 0x40
025a: DUP3
025b: ADD
025c: MLOAD
025d: DUP2
025e: PUSH1 0x02
0260: ADD
0261: PUSH1 0x00
0263: PUSH2 0x0100
0266: EXP
0267: DUP2
0268: SLOAD
0269: DUP2
026a: PUSH1 0xff
026c: MUL
026d: NOT
026e: AND
026f: SWAP1
0270: DUP4
0271: MUL
0272: OR
0273: SWAP1
0274: SSTORE
0275: POP
0276: SWAP1
0277: POP
0278: POP
0279: DUP1
027a: PUSH1 0x04
027c: ADD
027d: PUSH1 0x00
027f: DUP2
0280: DUP2
0281: POP
0282: SLOAD
0283: PUSH1 0x01
0285: ADD
0286: SWAP2
0287: SWAP1
0288: POP
0289: DUP2
028a: SWAP1
028b: SSTORE
028c: POP
028d: DUP2
028e: DUP2
028f: PUSH1 0x02
0291: ADD
0292: PUSH1 0x00
0294: DUP3
0295: DUP3
0296: DUP3
0297: POP
0298: SLOAD
0299: SUB
029a: SWAP3
029b: POP
029c: POP
029d: DUP2
029e: SWAP1
029f: SSTORE
02a0: POP
02a1: JUMPDEST
02a2: POP
02a3: POP
02a4: POP
02a5: JUMP
02a6: JUMPDEST
02a7: PUSH1 0x00
02a9: PUSH1 0x00
02ab: PUSH1 0x00
02ad: PUSH1 0x00
02af: POP
02b0: PUSH1 0x00
02b2: PUSH1 0x00
02b4: DUP2
02b5: MSTORE
02b6: PUSH1 0x20
02b8: ADD
02b9: SWAP1
02ba: DUP2
02bb: MSTORE
02bc: PUSH1 0x20
02be: ADD
02bf: PUSH1 0x00
02c1: SHA3
02c2: PUSH1 0x00
02c4: POP
02c5: SWAP2
02c6: POP
02c7: DUP2
02c8: PUSH1 0x05
02ca: ADD
02cb: PUSH1 0x00
02cd: POP
02ce: PUSH1 0x00
02d0: DUP5
02d1: DUP2
02d2: MSTORE
02d3: PUSH1 0x20
02d5: ADD
02d6: SWAP1
02d7: DUP2
02d8: MSTORE
02d9: PUSH1 0x20
02db: ADD
02dc: PUSH1 0x00
02de: SHA3
02df: PUSH1 0x00
02e1: POP
02e2: SWAP1
02e3: POP
02e4: PUSH1 0x00
02e6: DUP2
02e7: PUSH1 0x02
02e9: ADD
02ea: PUSH1 0x00
02ec: PUSH2 0x0100
02ef: EXP
02f0: DUP2
02f1: SLOAD
02f2: DUP2
02f3: PUSH1 0xff
02f5: MUL
02f6: NOT
02f7: AND
02f8: SWAP1
02f9: DUP4
02fa: MUL
02fb: OR
02fc: SWAP1
02fd: SSTORE
02fe: POP
02ff: JUMPDEST
0300: POP
0301: POP
0302: POP
0303: JUMP
0304: JUMPDEST
0305: PUSH1 0x00
0307: PUSH1 0x00
0309: PUSH1 0x00
030b: PUSH1 0x00
030d: POP
030e: PUSH1 0x00
0310: PUSH1 0x00
0312: DUP2
0313: MSTORE
0314: PUSH1 0x20
0316: ADD
0317: SWAP1
0318: DUP2
0319: MSTORE
031a: PUSH1 0x20
031c: ADD
031d: PUSH1 0x00
031f: SHA3
0320: PUSH1 0x00
0322: POP
0323: SWAP1
0324: POP
0325: DUP1
0326: PUSH1 0x00
0328: ADD
0329: PUSH1 0x00
032b: POP
032c: SLOAD
032d: SWAP2
032e: POP
032f: PUSH2 0x0333
0332: JUMP
0333: JUMPDEST
0334: POP
0335: SWAP1
0336: JUMP
0337: JUMPDEST
0338: PUSH1 0x00
033a: PUSH1 0x00
033c: PUSH1 0x00
033e: PUSH1 0x00
0340: PUSH1 0x00
0342: POP
0343: PUSH1 0x00
0345: PUSH1 0x00
0347: DUP2
0348: MSTORE
0349: PUSH1 0x20
034b: ADD
034c: SWAP1
034d: DUP2
034e: MSTORE
034f: PUSH1 0x20
0351: ADD
0352: PUSH1 0x00
0354: SHA3
0355: PUSH1 0x00
0357: POP
0358: SWAP2
0359: POP
035a: DUP2
035b: PUSH1 0x05
035d: ADD
035e: PUSH1 0x00
0360: POP
0361: PUSH1 0x00
0363: DUP6
0364: DUP2
0365: MSTORE
0366: PUSH1 0x20
0368: ADD
0369: SWAP1
036a: DUP2
036b: MSTORE
036c: PUSH1 0x20
036e: ADD
036f: PUSH1 0x00
0371: SHA3
0372: PUSH1 0x00
0374: POP
0375: SWAP1
0376: POP
0377: DUP1
0378: PUSH1 0x00
037a: ADD
037b: PUSH1 0x00
037d: SWAP1
037e: SLOAD
037f: SWAP1
0380: PUSH2 0x0100
0383: EXP
0384: SWAP1
0385: DIV
0386: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
039b: AND
039c: SWAP3
039d: POP
039e: PUSH2 0x03a2
03a1: JUMP
03a2: JUMPDEST
03a3: POP
03a4: POP
03a5: SWAP2
03a6: SWAP1
03a7: POP
03a8: JUMP
03a9: JUMPDEST
03aa: PUSH1 0x00
03ac: PUSH1 0x00
03ae: PUSH1 0x00
03b0: PUSH1 0x00
03b2: PUSH1 0x00
03b4: POP
03b5: PUSH1 0x00
03b7: PUSH1 0x00
03b9: DUP2
03ba: MSTORE
03bb: PUSH1 0x20
03bd: ADD
03be: SWAP1
03bf: DUP2
03c0: MSTORE
03c1: PUSH1 0x20
03c3: ADD
03c4: PUSH1 0x00
03c6: SHA3
03c7: PUSH1 0x00
03c9: POP
03ca: SWAP3
03cb: POP
03cc: DUP3
03cd: PUSH1 0x05
03cf: ADD
03d0: PUSH1 0x00
03d2: POP
03d3: PUSH1 0x00
03d5: DUP6
03d6: DUP2
03d7: MSTORE
03d8: PUSH1 0x20
03da: ADD
03db: SWAP1
03dc: DUP2
03dd: MSTORE
03de: PUSH1 0x20
03e0: ADD
03e1: PUSH1 0x00
03e3: SHA3
03e4: PUSH1 0x00
03e6: POP
03e7: SWAP2
03e8: POP
03e9: DUP2
03ea: PUSH1 0x01
03ec: ADD
03ed: PUSH1 0x00
03ef: POP
03f0: SLOAD
03f1: DUP4
03f2: PUSH1 0x01
03f4: ADD
03f5: PUSH1 0x00
03f7: POP
03f8: SLOAD
03f9: PUSH1 0x00
03fb: DUP6
03fc: PUSH1 0x00
03fe: ADD
03ff: PUSH1 0x00
0401: POP
0402: SLOAD
0403: MUL
0404: DIV
0405: MUL
0406: SWAP1
0407: POP
0408: DUP2
0409: PUSH1 0x00
040b: ADD
040c: PUSH1 0x00
040e: SWAP1
040f: SLOAD
0410: SWAP1
0411: PUSH2 0x0100
0414: EXP
0415: SWAP1
0416: DIV
0417: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
042c: AND
042d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0442: AND
0443: PUSH1 0x00
0445: DUP3
0446: PUSH1 0x40
0448: MLOAD
0449: DUP1
044a: SWAP1
044b: POP
044c: PUSH1 0x00
044e: PUSH1 0x40
0450: MLOAD
0451: DUP1
0452: DUP4
0453: SUB
0454: DUP2
0455: DUP6
0456: DUP9
0457: DUP9
0458: CALL
0459: SWAP4
045a: POP
045b: POP
045c: POP
045d: POP
045e: POP
045f: JUMPDEST
0460: POP
0461: POP
0462: POP
0463: POP
0464: JUMP

exec
/bin/bash -lc "python - <<'PY'
import json
opnames = {}
base = {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:'PREVRANDAO',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',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
opnames.update(base)
for i in range(1,33): opnames[0x5f+i]=f'PUSH{i}'
for i in range(1,17): opnames[0x7f+i]=f'DUP{i}'
for i in range(1,17): opnames[0x8f+i]=f'SWAP{i}'
for i in range(0,5): opnames[0xa0+i]=f'LOG{i}'
with open('BYTECODE_BUNDLE.json') as f: j=json.load(f)
code=bytes.fromhex(j['artifact']['runtime_bytecode']['full'][2:])
start,end=0x69,0x104
pc=start
while pc<end:
    op=code[pc]; name=opnames.get(op,f'OP_{op:02x}')
    if 0x60<=op<=0x7f:
        n=op-0x5f; data=code[pc+1:pc+1+n]
        print(f'{pc:04x}: {name} 0x{data.hex()}')
        pc+=1+n
    else:
        print(f'{pc:04x}: {name}')
        pc+=1
PY" in /tmp/codex-jzb1pn5_
 succeeded in 0ms:
0069: JUMPDEST
006a: PUSH2 0x0101
006d: JUMPDEST
006e: PUSH1 0x00
0070: NUMBER
0071: PUSH32 0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db
0092: CALLER
0093: CALLVALUE
0094: TIMESTAMP
0095: PUSH1 0x40
0097: MLOAD
0098: DUP1
0099: DUP5
009a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00af: AND
00b0: DUP2
00b1: MSTORE
00b2: PUSH1 0x20
00b4: ADD
00b5: DUP4
00b6: DUP2
00b7: MSTORE
00b8: PUSH1 0x20
00ba: ADD
00bb: DUP3
00bc: DUP2
00bd: MSTORE
00be: PUSH1 0x20
00c0: ADD
00c1: SWAP4
00c2: POP
00c3: POP
00c4: POP
00c5: POP
00c6: PUSH1 0x40
00c8: MLOAD
00c9: DUP1
00ca: SWAP2
00cb: SUB
00cc: SWAP1
00cd: LOG2
00ce: PUSH1 0x00
00d0: PUSH1 0x00
00d2: POP
00d3: PUSH1 0x00
00d5: PUSH1 0x00
00d7: DUP2
00d8: MSTORE
00d9: PUSH1 0x20
00db: ADD
00dc: SWAP1
00dd: DUP2
00de: MSTORE
00df: PUSH1 0x20
00e1: ADD
00e2: PUSH1 0x00
00e4: SHA3
00e5: PUSH1 0x00
00e7: POP
00e8: SWAP1
00e9: POP
00ea: CALLVALUE
00eb: DUP2
00ec: PUSH1 0x00
00ee: ADD
00ef: PUSH1 0x00
00f1: DUP3
00f2: DUP3
00f3: DUP3
00f4: POP
00f5: SLOAD
00f6: ADD
00f7: SWAP3
00f8: POP
00f9: POP
00fa: DUP2
00fb: SWAP1
00fc: SSTORE
00fd: POP
00fe: JUMPDEST
00ff: POP
0100: JUMP
0101: JUMPDEST
0102: STOP
0103: JUMPDEST

exec
/bin/bash -lc "python - <<'PY'
# rough symbolic trace for range 0x03a9-0x045f using simple expressions
import json
ops={}
for i in range(1,33): ops[0x5f+i]=('PUSH',i)
for i in range(1,17): ops[0x7f+i]=('DUP',i)
for i in range(1,17): ops[0x8f+i]=('SWAP',i)
base={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x20:'SHA3',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x42:'TIMESTAMP',0x43:'NUMBER',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x5b:'JUMPDEST',0x5a:'GAS',0xf1:'CALL',0xa2:'LOG2'}
with open('BYTECODE_BUNDLE.json') as f:j=json.load(f)
code=bytes.fromhex(j['artifact']['runtime_bytecode']['full'][2:])

def dis(start,end,init_stack):
    stack=init_stack[:]  # top at end
    mem={}
    pc=start
    while pc<end:
        op=code[pc]
        if 0x60<=op<=0x7f:
            n=op-0x5f
            data='0x'+code[pc+1:pc+1+n].hex()
            stack.append(data)
            name=f'PUSH{n} {data}'
            pc+=1+n
        elif 0x80<=op<=0x8f:
            n=op-0x7f
            stack.append(stack[-n])
            name=f'DUP{n}'
            pc+=1
        elif 0x90<=op<=0x9f:
            n=op-0x8f
            stack[-1],stack[-1-n]=stack[-1-n],stack[-1]
            name=f'SWAP{n}'
            pc+=1
        else:
            name=base.get(op, hex(op))
            pc+=1
            if op==0x50: stack.pop()
            elif op==0x01:
                a,b=stack.pop(),stack.pop(); stack.append(f'({b}+{a})')
            elif op==0x02:
                a,b=stack.pop(),stack.pop(); stack.append(f'({b}*{a})')
            elif op==0x03:
                a,b=stack.pop(),stack.pop(); stack.append(f'({b}-{a})')
            elif op==0x04:
                a,b=stack.pop(),stack.pop(); stack.append(f'({b}/{a})')
            elif op==0x16:
                a,b=stack.pop(),stack.pop(); stack.append(f'({b}&{a})')
            elif op==0x20:
                a,b=stack.pop(),stack.pop(); stack.append(f'keccak({b},{a})')
            elif op==0x33: stack.append('CALLER')
            elif op==0x34: stack.append('CALLVALUE')
            elif op==0x42: stack.append('TIMESTAMP')
            elif op==0x43: stack.append('NUMBER')
            elif op==0x51:
                a=stack.pop(); stack.append(f'mem[{a}]')
            elif op==0x52:
                a=stack.pop(); b=stack.pop(); mem[a]=b
            elif op==0x54:
                a=stack.pop(); stack.append(f'sload[{a}]')
            elif op==0x55:
                a=stack.pop(); b=stack.pop();
                # store b into a? actually value then key? for SSTORE top is key? stack: key,value? No EVM SSTORE pops key then value? Actually SSTORE(key,value). top=key? check from patterns maybe after ADD/DUP/SWAP. use placeholder
                pass
            elif op==0x5a: stack.append('GAS')
            elif op==0xf1:
                out_size=stack.pop(); out_off=stack.pop(); in_size=stack.pop(); in_off=stack.pop(); value=stack.pop(); to=stack.pop(); gas=stack.pop();
                stack.append(f'call(gas={gas},to={to},value={value},in={in_off}:{in_size},out={out_off}:{out_size})')
            elif op==0x5b: pass
            elif op==0x56: break
        print(f'{pc-1:04x}: {name:<18} stack={stack}')

print('Assume initial stack [ret,arg0]')
dis(0x03a9,0x0459,['ret','arg0'])
PY" in /tmp/codex-jzb1pn5_
 succeeded in 0ms:
Assume initial stack [ret,arg0]
03a9: JUMPDEST           stack=['ret', 'arg0']
03ab: PUSH1 0x00         stack=['ret', 'arg0', '0x00']
03ad: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00']
03af: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00']
03b1: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00']
03b3: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00']
03b4: POP                stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00']
03b6: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00']
03b8: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00']
03b9: DUP2               stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00']
03ba: MSTORE             stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00']
03bc: PUSH1 0x20         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00', '0x20']
03bd: ADD                stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '(0x00+0x20)']
03be: SWAP1              stack=['ret', 'arg0', '0x00', '0x00', '0x00', '(0x00+0x20)', '0x00']
03bf: DUP2               stack=['ret', 'arg0', '0x00', '0x00', '0x00', '(0x00+0x20)', '0x00', '(0x00+0x20)']
03c0: MSTORE             stack=['ret', 'arg0', '0x00', '0x00', '0x00', '(0x00+0x20)']
03c2: PUSH1 0x20         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '(0x00+0x20)', '0x20']
03c3: ADD                stack=['ret', 'arg0', '0x00', '0x00', '0x00', '((0x00+0x20)+0x20)']
03c5: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '((0x00+0x20)+0x20)', '0x00']
03c6: SHA3               stack=['ret', 'arg0', '0x00', '0x00', '0x00', 'keccak(((0x00+0x20)+0x20),0x00)']
03c8: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00']
03c9: POP                stack=['ret', 'arg0', '0x00', '0x00', '0x00', 'keccak(((0x00+0x20)+0x20),0x00)']
03ca: SWAP3              stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', '0x00']
03cb: POP                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00']
03cc: DUP3               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', 'keccak(((0x00+0x20)+0x20),0x00)']
03ce: PUSH1 0x05         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', 'keccak(((0x00+0x20)+0x20),0x00)', '0x05']
03cf: ADD                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', '(keccak(((0x00+0x20)+0x20),0x00)+0x05)']
03d1: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', '(keccak(((0x00+0x20)+0x20),0x00)+0x05)', '0x00']
03d2: POP                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', '(keccak(((0x00+0x20)+0x20),0x00)+0x05)']
03d4: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', '(keccak(((0x00+0x20)+0x20),0x00)+0x05)', '0x00']
03d5: DUP6               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', '(keccak(((0x00+0x20)+0x20),0x00)+0x05)', '0x00', 'arg0']
03d6: DUP2               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', '(keccak(((0x00+0x20)+0x20),0x00)+0x05)', '0x00', 'arg0', '0x00']
03d7: MSTORE             stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', '(keccak(((0x00+0x20)+0x20),0x00)+0x05)', '0x00']
03d9: PUSH1 0x20         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', '(keccak(((0x00+0x20)+0x20),0x00)+0x05)', '0x00', '0x20']
03da: ADD                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', '(keccak(((0x00+0x20)+0x20),0x00)+0x05)', '(0x00+0x20)']
03db: SWAP1              stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', '(0x00+0x20)', '(keccak(((0x00+0x20)+0x20),0x00)+0x05)']
03dc: DUP2               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', '(0x00+0x20)', '(keccak(((0x00+0x20)+0x20),0x00)+0x05)', '(0x00+0x20)']
03dd: MSTORE             stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', '(0x00+0x20)']
03df: PUSH1 0x20         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', '(0x00+0x20)', '0x20']
03e0: ADD                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', '((0x00+0x20)+0x20)']
03e2: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', '((0x00+0x20)+0x20)', '0x00']
03e3: SHA3               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', 'keccak(((0x00+0x20)+0x20),0x00)']
03e5: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00']
03e6: POP                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00', 'keccak(((0x00+0x20)+0x20),0x00)']
03e7: SWAP2              stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '0x00']
03e8: POP                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00']
03e9: DUP2               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'keccak(((0x00+0x20)+0x20),0x00)']
03eb: PUSH1 0x01         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'keccak(((0x00+0x20)+0x20),0x00)', '0x01']
03ec: ADD                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '(keccak(((0x00+0x20)+0x20),0x00)+0x01)']
03ee: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '(keccak(((0x00+0x20)+0x20),0x00)+0x01)', '0x00']
03ef: POP                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '(keccak(((0x00+0x20)+0x20),0x00)+0x01)']
03f0: SLOAD              stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]']
03f1: DUP4               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', 'keccak(((0x00+0x20)+0x20),0x00)']
03f3: PUSH1 0x01         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', 'keccak(((0x00+0x20)+0x20),0x00)', '0x01']
03f4: ADD                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', '(keccak(((0x00+0x20)+0x20),0x00)+0x01)']
03f6: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', '(keccak(((0x00+0x20)+0x20),0x00)+0x01)', '0x00']
03f7: POP                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', '(keccak(((0x00+0x20)+0x20),0x00)+0x01)']
03f8: SLOAD              stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]']
03fa: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', '0x00']
03fb: DUP6               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', '0x00', 'keccak(((0x00+0x20)+0x20),0x00)']
03fd: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', '0x00', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00']
03fe: ADD                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', '0x00', '(keccak(((0x00+0x20)+0x20),0x00)+0x00)']
0400: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', '0x00', '(keccak(((0x00+0x20)+0x20),0x00)+0x00)', '0x00']
0401: POP                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', '0x00', '(keccak(((0x00+0x20)+0x20),0x00)+0x00)']
0402: SLOAD              stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]']
0403: MUL                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', '(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])']
0404: DIV                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]))']
0405: MUL                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))']
0406: SWAP1              stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', '0x00']
0407: POP                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))']
0408: DUP2               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'keccak(((0x00+0x20)+0x20),0x00)']
040a: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'keccak(((0x00+0x20)+0x20),0x00)', '0x00']
040b: ADD                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', '(keccak(((0x00+0x20)+0x20),0x00)+0x00)']
040d: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', '(keccak(((0x00+0x20)+0x20),0x00)+0x00)', '0x00']
040e: SWAP1              stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', '0x00', '(keccak(((0x00+0x20)+0x20),0x00)+0x00)']
040f: SLOAD              stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]']
0410: SWAP1              stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '0x00']
0413: PUSH2 0x0100       stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '0x00', '0x0100']
0414: 0xa                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '0x00', '0x0100']
0415: SWAP1              stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '0x0100', '0x00']
0416: DIV                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(0x0100/0x00)']
042b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(0x0100/0x00)', '0xffffffffffffffffffffffffffffffffffffffff']
042c: AND                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)']
0441: PUSH20 0xffffffffffffffffffffffffffffffffffffffff stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)', '0xffffffffffffffffffffffffffffffffffffffff']
0442: AND                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)']
0444: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00']
0445: DUP3               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]']
0447: PUSH1 0x40         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '0x40']
0448: MLOAD              stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', 'mem[0x40]']
0449: DUP1               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', 'mem[0x40]', 'mem[0x40]']
044a: SWAP1              stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', 'mem[0x40]', 'mem[0x40]']
044b: POP                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', 'mem[0x40]']
044d: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', 'mem[0x40]', '0x00']
044f: PUSH1 0x40         stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', 'mem[0x40]', '0x00', '0x40']
0450: MLOAD              stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', 'mem[0x40]', '0x00', 'mem[0x40]']
0451: DUP1               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', 'mem[0x40]', '0x00', 'mem[0x40]', 'mem[0x40]']
0452: DUP4               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', 'mem[0x40]', '0x00', 'mem[0x40]', 'mem[0x40]', 'mem[0x40]']
0453: SUB                stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', 'mem[0x40]', '0x00', 'mem[0x40]', '(mem[0x40]-mem[0x40])']
0454: DUP2               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', 'mem[0x40]', '0x00', 'mem[0x40]', '(mem[0x40]-mem[0x40])', 'mem[0x40]']
0455: DUP6               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', 'mem[0x40]', '0x00', 'mem[0x40]', '(mem[0x40]-mem[0x40])', 'mem[0x40]', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]']
0456: DUP9               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', 'mem[0x40]', '0x00', 'mem[0x40]', '(mem[0x40]-mem[0x40])', 'mem[0x40]', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)']
0457: DUP9               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', 'mem[0x40]', '0x00', 'mem[0x40]', '(mem[0x40]-mem[0x40])', 'mem[0x40]', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00']
0458: CALL               stack=['ret', 'arg0', 'keccak(((0x00+0x20)+0x20),0x00)', 'keccak(((0x00+0x20)+0x20),0x00)', '(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]*(sload[(keccak(((0x00+0x20)+0x20),0x00)+0x01)]/(0x00*sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)])))', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', '(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', 'sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)]', 'mem[0x40]', 'call(gas=0x00,to=mem[0x40],value=(mem[0x40]-mem[0x40]),in=mem[0x40]:sload[(keccak(((0x00+0x20)+0x20),0x00)+0x00)],out=(((0x0100/0x00)&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff):0x00)']

exec
/bin/bash -lc 'rg -n "2515994e|6ccb5d02|75724990|dae9e379|dda1a1e6" /usr /home 2>/dev/null | head -n 50' in /tmp/codex-jzb1pn5_
exec
/bin/bash -lc "python - <<'PY'
try:
 import eth_utils
 print('eth_utils ok')
except Exception as e:
 print('no eth_utils', e)
PY" in /tmp/codex-jzb1pn5_
 succeeded in 265ms:
eth_utils ok

 succeeded in 3068ms:
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:j=json.load(f)
code=bytes.fromhex(j['artifact']['runtime_bytecode']['full'][2:])
ops={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x0a:'EXP',0x16:'AND',0x20:'SHA3',0x33:'CALLER',0x34:'CALLVALUE',0x42:'TIMESTAMP',0x43:'NUMBER',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x5a:'GAS',0x5b:'JUMPDEST',0xf1:'CALL'}
for i in range(1,33): ops[0x5f+i]=f'PUSH{i}'
for i in range(1,17): ops[0x7f+i]=f'DUP{i}'
for i in range(1,17): ops[0x8f+i]=f'SWAP{i}'

def run(start,end,init):
    st=init[:]  # bottom..top
    mem={}
    pc=start
    while pc<end:
        op=code[pc]
        name=ops.get(op,hex(op))
        if 0x60<=op<=0x7f:
            n=op-0x5f; data='0x'+code[pc+1:pc+1+n].hex(); st.append(data); pc+=1+n
            print(f'{pc-n-1:04x}: {name} {data:<12} stack={st}')
            continue
        if 0x80<=op<=0x8f:
            n=op-0x7f; st.append(st[-n]); pc+=1
            print(f'{pc-1:04x}: DUP{n:<14} stack={st}')
            continue
        if 0x90<=op<=0x9f:
            n=op-0x8f; st[-1],st[-1-n]=st[-1-n],st[-1]; pc+=1
            print(f'{pc-1:04x}: SWAP{n:<13} stack={st}')
            continue
        pc+=1
        if op==0x50: st.pop()
        elif op==0x01:
            a=st.pop(); b=st.pop(); st.append(f'({b}+{a})')
        elif op==0x02:
            a=st.pop(); b=st.pop(); st.append(f'({b}*{a})')
        elif op==0x03:
            a=st.pop(); b=st.pop(); st.append(f'({b}-{a})')
        elif op==0x04:
            a=st.pop(); b=st.pop(); st.append(f'({b}/{a})')
        elif op==0x0a:
            a=st.pop(); b=st.pop(); st.append(f'({b}**{a})')
        elif op==0x16:
            a=st.pop(); b=st.pop(); st.append(f'({b}&{a})')
        elif op==0x20:
            offset=st.pop(); size=st.pop(); st.append(f'keccak(mem[{offset}:{offset}+{size}])')
        elif op==0x33: st.append('CALLER')
        elif op==0x34: st.append('CALLVALUE')
        elif op==0x42: st.append('TIMESTAMP')
        elif op==0x43: st.append('NUMBER')
        elif op==0x51:
            off=st.pop(); st.append(f'mem[{off}]')
        elif op==0x52:
            off=st.pop(); val=st.pop(); mem[off]=val
        elif op==0x54:
            key=st.pop(); st.append(f'sload[{key}]')
        elif op==0x55:
            key=st.pop(); val=st.pop(); print(f'      SSTORE {key} := {val}')
        elif op==0x5a: st.append('GAS')
        elif op==0xf1:
            gas=st.pop(); to=st.pop(); value=st.pop(); in_off=st.pop(); in_size=st.pop(); out_off=st.pop(); out_size=st.pop(); st.append(f'call(gas={gas},to={to},value={value},in={in_off}:{in_size},out={out_off}:{out_size})')
        elif op==0x56:
            print(f'{pc-1:04x}: JUMP stack={st}'); break
        print(f'{pc-1:04x}: {name:<18} stack={st}')

print('Fallback 0x6e-0x100')
run(0x6e,0x100,['ret'])
print('\\nGetter 0x337')
run(0x337,0x3a9,['ret','arg0'])
print('\\nSetter? 0x2a6')
run(0x2a6,0x304,['ret','arg0'])
print('\\nWithdraw? 0x3a9')
run(0x3a9,0x45f,['ret','arg0'])
PY" in /tmp/codex-jzb1pn5_
 succeeded in 0ms:
Fallback 0x6e-0x100
006e: PUSH1 0x00         stack=['ret', '0x00']
0070: NUMBER             stack=['ret', '0x00', 'NUMBER']
0071: PUSH32 0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db']
0092: CALLER             stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER']
0093: CALLVALUE          stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE']
0094: TIMESTAMP          stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP']
0095: PUSH1 0x40         stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', '0x40']
0097: MLOAD              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]']
0098: DUP1              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', 'mem[0x40]']
0099: DUP5              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', 'mem[0x40]', 'CALLER']
009a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', 'mem[0x40]', 'CALLER', '0xffffffffffffffffffffffffffffffffffffffff']
00af: AND                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', 'mem[0x40]', '(CALLER&0xffffffffffffffffffffffffffffffffffffffff)']
00b0: DUP2              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', 'mem[0x40]', '(CALLER&0xffffffffffffffffffffffffffffffffffffffff)', 'mem[0x40]']
00b1: MSTORE             stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', 'mem[0x40]']
00b2: PUSH1 0x20         stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', 'mem[0x40]', '0x20']
00b4: ADD                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', '(mem[0x40]+0x20)']
00b5: DUP4              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', '(mem[0x40]+0x20)', 'CALLVALUE']
00b6: DUP2              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', '(mem[0x40]+0x20)', 'CALLVALUE', '(mem[0x40]+0x20)']
00b7: MSTORE             stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', '(mem[0x40]+0x20)']
00b8: PUSH1 0x20         stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', '(mem[0x40]+0x20)', '0x20']
00ba: ADD                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', '((mem[0x40]+0x20)+0x20)']
00bb: DUP3              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', '((mem[0x40]+0x20)+0x20)', 'TIMESTAMP']
00bc: DUP2              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', '((mem[0x40]+0x20)+0x20)', 'TIMESTAMP', '((mem[0x40]+0x20)+0x20)']
00bd: MSTORE             stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', '((mem[0x40]+0x20)+0x20)']
00be: PUSH1 0x20         stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', '((mem[0x40]+0x20)+0x20)', '0x20']
00c0: ADD                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'CALLER', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', '(((mem[0x40]+0x20)+0x20)+0x20)']
00c1: SWAP4             stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(((mem[0x40]+0x20)+0x20)+0x20)', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]', 'CALLER']
00c2: POP                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(((mem[0x40]+0x20)+0x20)+0x20)', 'CALLVALUE', 'TIMESTAMP', 'mem[0x40]']
00c3: POP                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(((mem[0x40]+0x20)+0x20)+0x20)', 'CALLVALUE', 'TIMESTAMP']
00c4: POP                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(((mem[0x40]+0x20)+0x20)+0x20)', 'CALLVALUE']
00c5: POP                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(((mem[0x40]+0x20)+0x20)+0x20)']
00c6: PUSH1 0x40         stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(((mem[0x40]+0x20)+0x20)+0x20)', '0x40']
00c8: MLOAD              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(((mem[0x40]+0x20)+0x20)+0x20)', 'mem[0x40]']
00c9: DUP1              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(((mem[0x40]+0x20)+0x20)+0x20)', 'mem[0x40]', 'mem[0x40]']
00ca: SWAP2             stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'mem[0x40]', 'mem[0x40]', '(((mem[0x40]+0x20)+0x20)+0x20)']
00cb: SUB                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', 'mem[0x40]', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))']
00cc: SWAP1             stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]']
00cd: 0xa2               stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]']
00ce: PUSH1 0x00         stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', '0x00']
00d0: PUSH1 0x00         stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', '0x00', '0x00']
00d2: POP                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', '0x00']
00d3: PUSH1 0x00         stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', '0x00', '0x00']
00d5: PUSH1 0x00         stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', '0x00', '0x00', '0x00']
00d7: DUP2              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', '0x00', '0x00', '0x00', '0x00']
00d8: MSTORE             stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', '0x00', '0x00']
00d9: PUSH1 0x20         stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', '0x00', '0x00', '0x20']
00db: ADD                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', '0x00', '(0x00+0x20)']
00dc: SWAP1             stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', '(0x00+0x20)', '0x00']
00dd: DUP2              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', '(0x00+0x20)', '0x00', '(0x00+0x20)']
00de: MSTORE             stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', '(0x00+0x20)']
00df: PUSH1 0x20         stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', '(0x00+0x20)', '0x20']
00e1: ADD                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', '((0x00+0x20)+0x20)']
00e2: PUSH1 0x00         stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', '((0x00+0x20)+0x20)', '0x00']
00e4: SHA3               stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
00e5: PUSH1 0x00         stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
00e7: POP                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'mem[0x40]', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
00e8: SWAP1             stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'mem[0x40]']
00e9: POP                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
00ea: CALLVALUE          stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'CALLVALUE']
00eb: DUP2              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'CALLVALUE', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
00ec: PUSH1 0x00         stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'CALLVALUE', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
00ee: ADD                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'CALLVALUE', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)']
00ef: PUSH1 0x00         stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'CALLVALUE', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)', '0x00']
00f1: DUP3              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'CALLVALUE', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)', '0x00', 'CALLVALUE']
00f2: DUP3              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'CALLVALUE', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)', '0x00', 'CALLVALUE', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)']
00f3: DUP3              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'CALLVALUE', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)', '0x00', 'CALLVALUE', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)', '0x00']
00f4: POP                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'CALLVALUE', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)', '0x00', 'CALLVALUE', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)']
00f5: SLOAD              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'CALLVALUE', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)', '0x00', 'CALLVALUE', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]']
00f6: ADD                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'CALLVALUE', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)', '0x00', '(CALLVALUE+sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])']
00f7: SWAP3             stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(CALLVALUE+sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)', '0x00', 'CALLVALUE']
00f8: POP                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(CALLVALUE+sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)', '0x00']
00f9: POP                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(CALLVALUE+sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)']
00fa: DUP2              stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(CALLVALUE+sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)', '(CALLVALUE+sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])']
00fb: SWAP1             stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(CALLVALUE+sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])', '(CALLVALUE+sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)']
      SSTORE (keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00) := (CALLVALUE+sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])
00fc: SSTORE             stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(CALLVALUE+sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])']
00fd: POP                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
00fe: JUMPDEST           stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
00ff: POP                stack=['ret', '0x00', 'NUMBER', '0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db', '(mem[0x40]-(((mem[0x40]+0x20)+0x20)+0x20))']

Getter 0x337
0337: JUMPDEST           stack=['ret', 'arg0']
0338: PUSH1 0x00         stack=['ret', 'arg0', '0x00']
033a: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00']
033c: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00']
033e: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00']
0340: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00']
0342: POP                stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00']
0343: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00']
0345: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00']
0347: DUP2              stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00']
0348: MSTORE             stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00']
0349: PUSH1 0x20         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00', '0x20']
034b: ADD                stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '(0x00+0x20)']
034c: SWAP1             stack=['ret', 'arg0', '0x00', '0x00', '0x00', '(0x00+0x20)', '0x00']
034d: DUP2              stack=['ret', 'arg0', '0x00', '0x00', '0x00', '(0x00+0x20)', '0x00', '(0x00+0x20)']
034e: MSTORE             stack=['ret', 'arg0', '0x00', '0x00', '0x00', '(0x00+0x20)']
034f: PUSH1 0x20         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '(0x00+0x20)', '0x20']
0351: ADD                stack=['ret', 'arg0', '0x00', '0x00', '0x00', '((0x00+0x20)+0x20)']
0352: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '((0x00+0x20)+0x20)', '0x00']
0354: SHA3               stack=['ret', 'arg0', '0x00', '0x00', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
0355: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
0357: POP                stack=['ret', 'arg0', '0x00', '0x00', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
0358: SWAP2             stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00']
0359: POP                stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
035a: DUP2              stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
035b: PUSH1 0x05         stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x05']
035d: ADD                stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)']
035e: PUSH1 0x00         stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00']
0360: POP                stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)']
0361: PUSH1 0x00         stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00']
0363: DUP6              stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00', 'arg0']
0364: DUP2              stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00', 'arg0', '0x00']
0365: MSTORE             stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00']
0366: PUSH1 0x20         stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00', '0x20']
0368: ADD                stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '(0x00+0x20)']
0369: SWAP1             stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(0x00+0x20)', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)']
036a: DUP2              stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(0x00+0x20)', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '(0x00+0x20)']
036b: MSTORE             stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(0x00+0x20)']
036c: PUSH1 0x20         stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(0x00+0x20)', '0x20']
036e: ADD                stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '((0x00+0x20)+0x20)']
036f: PUSH1 0x00         stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '((0x00+0x20)+0x20)', '0x00']
0371: SHA3               stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
0372: PUSH1 0x00         stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
0374: POP                stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
0375: SWAP1             stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
0376: POP                stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
0377: DUP1              stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
0378: PUSH1 0x00         stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
037a: ADD                stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)']
037b: PUSH1 0x00         stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)', '0x00']
037d: SWAP1             stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)']
037e: SLOAD              stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]']
037f: SWAP1             stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]', '0x00']
0380: PUSH2 0x0100       stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]', '0x00', '0x0100']
0383: EXP                stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]', '(0x00**0x0100)']
0384: SWAP1             stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(0x00**0x0100)', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]']
0385: DIV                stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])']
0386: PUSH20 0xffffffffffffffffffffffffffffffffffffffff stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])', '0xffffffffffffffffffffffffffffffffffffffff']
039b: AND                stack=['ret', 'arg0', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)']
039c: SWAP3             stack=['ret', 'arg0', '(((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
039d: POP                stack=['ret', 'arg0', '(((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
039e: PUSH2 0x03a2       stack=['ret', 'arg0', '(((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x03a2']
03a1: JUMP stack=['ret', 'arg0', '(((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x03a2']

Setter? 0x2a6
02a6: JUMPDEST           stack=['ret', 'arg0']
02a7: PUSH1 0x00         stack=['ret', 'arg0', '0x00']
02a9: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00']
02ab: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00']
02ad: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00']
02af: POP                stack=['ret', 'arg0', '0x00', '0x00', '0x00']
02b0: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00']
02b2: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00']
02b4: DUP2              stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00']
02b5: MSTORE             stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00']
02b6: PUSH1 0x20         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x20']
02b8: ADD                stack=['ret', 'arg0', '0x00', '0x00', '0x00', '(0x00+0x20)']
02b9: SWAP1             stack=['ret', 'arg0', '0x00', '0x00', '(0x00+0x20)', '0x00']
02ba: DUP2              stack=['ret', 'arg0', '0x00', '0x00', '(0x00+0x20)', '0x00', '(0x00+0x20)']
02bb: MSTORE             stack=['ret', 'arg0', '0x00', '0x00', '(0x00+0x20)']
02bc: PUSH1 0x20         stack=['ret', 'arg0', '0x00', '0x00', '(0x00+0x20)', '0x20']
02be: ADD                stack=['ret', 'arg0', '0x00', '0x00', '((0x00+0x20)+0x20)']
02bf: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '((0x00+0x20)+0x20)', '0x00']
02c1: SHA3               stack=['ret', 'arg0', '0x00', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
02c2: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
02c4: POP                stack=['ret', 'arg0', '0x00', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
02c5: SWAP2             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00']
02c6: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
02c7: DUP2              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
02c8: PUSH1 0x05         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x05']
02ca: ADD                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)']
02cb: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00']
02cd: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)']
02ce: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00']
02d0: DUP5              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00', 'arg0']
02d1: DUP2              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00', 'arg0', '0x00']
02d2: MSTORE             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00']
02d3: PUSH1 0x20         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00', '0x20']
02d5: ADD                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '(0x00+0x20)']
02d6: SWAP1             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(0x00+0x20)', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)']
02d7: DUP2              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(0x00+0x20)', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '(0x00+0x20)']
02d8: MSTORE             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(0x00+0x20)']
02d9: PUSH1 0x20         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(0x00+0x20)', '0x20']
02db: ADD                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '((0x00+0x20)+0x20)']
02dc: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '((0x00+0x20)+0x20)', '0x00']
02de: SHA3               stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
02df: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
02e1: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
02e2: SWAP1             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
02e3: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
02e4: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
02e6: DUP2              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
02e7: PUSH1 0x02         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x02']
02e9: ADD                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)']
02ea: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)', '0x00']
02ec: PUSH2 0x0100       stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)', '0x00', '0x0100']
02ef: EXP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)', '(0x00**0x0100)']
02f0: DUP2              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)', '(0x00**0x0100)', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)']
02f1: SLOAD              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)', '(0x00**0x0100)', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)]']
02f2: DUP2              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)', '(0x00**0x0100)', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)]', '(0x00**0x0100)']
02f3: PUSH1 0xff         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)', '(0x00**0x0100)', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)]', '(0x00**0x0100)', '0xff']
02f5: MUL                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)', '(0x00**0x0100)', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)]', '((0x00**0x0100)*0xff)']
02f6: 0x19               stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)', '(0x00**0x0100)', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)]', '((0x00**0x0100)*0xff)']
02f7: AND                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)', '(0x00**0x0100)', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)]&((0x00**0x0100)*0xff))']
02f8: SWAP1             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)]&((0x00**0x0100)*0xff))', '(0x00**0x0100)']
02f9: DUP4              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)]&((0x00**0x0100)*0xff))', '(0x00**0x0100)', '0x00']
02fa: MUL                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)]&((0x00**0x0100)*0xff))', '((0x00**0x0100)*0x00)']
02fb: 0x17               stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)]&((0x00**0x0100)*0xff))', '((0x00**0x0100)*0x00)']
02fc: SWAP1             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)', '((0x00**0x0100)*0x00)', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)]&((0x00**0x0100)*0xff))']
      SSTORE (sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)]&((0x00**0x0100)*0xff)) := ((0x00**0x0100)*0x00)
02fd: SSTORE             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x02)']
02fe: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
02ff: JUMPDEST           stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
0300: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
0301: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
0302: POP                stack=['ret', 'arg0']
0303: JUMP stack=['ret', 'arg0']

Withdraw? 0x3a9
03a9: JUMPDEST           stack=['ret', 'arg0']
03aa: PUSH1 0x00         stack=['ret', 'arg0', '0x00']
03ac: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00']
03ae: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00']
03b0: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00']
03b2: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00']
03b4: POP                stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00']
03b5: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00']
03b7: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00']
03b9: DUP2              stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00', '0x00']
03ba: MSTORE             stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00']
03bb: PUSH1 0x20         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '0x00', '0x20']
03bd: ADD                stack=['ret', 'arg0', '0x00', '0x00', '0x00', '0x00', '(0x00+0x20)']
03be: SWAP1             stack=['ret', 'arg0', '0x00', '0x00', '0x00', '(0x00+0x20)', '0x00']
03bf: DUP2              stack=['ret', 'arg0', '0x00', '0x00', '0x00', '(0x00+0x20)', '0x00', '(0x00+0x20)']
03c0: MSTORE             stack=['ret', 'arg0', '0x00', '0x00', '0x00', '(0x00+0x20)']
03c1: PUSH1 0x20         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '(0x00+0x20)', '0x20']
03c3: ADD                stack=['ret', 'arg0', '0x00', '0x00', '0x00', '((0x00+0x20)+0x20)']
03c4: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', '((0x00+0x20)+0x20)', '0x00']
03c6: SHA3               stack=['ret', 'arg0', '0x00', '0x00', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
03c7: PUSH1 0x00         stack=['ret', 'arg0', '0x00', '0x00', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
03c9: POP                stack=['ret', 'arg0', '0x00', '0x00', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
03ca: SWAP3             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', '0x00']
03cb: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00']
03cc: DUP3              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
03cd: PUSH1 0x05         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x05']
03cf: ADD                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)']
03d0: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00']
03d2: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)']
03d3: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00']
03d5: DUP6              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00', 'arg0']
03d6: DUP2              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00', 'arg0', '0x00']
03d7: MSTORE             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00']
03d8: PUSH1 0x20         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '0x00', '0x20']
03da: ADD                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '(0x00+0x20)']
03db: SWAP1             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', '(0x00+0x20)', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)']
03dc: DUP2              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', '(0x00+0x20)', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x05)', '(0x00+0x20)']
03dd: MSTORE             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', '(0x00+0x20)']
03de: PUSH1 0x20         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', '(0x00+0x20)', '0x20']
03e0: ADD                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', '((0x00+0x20)+0x20)']
03e1: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', '((0x00+0x20)+0x20)', '0x00']
03e3: SHA3               stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
03e4: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
03e6: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
03e7: SWAP2             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '0x00']
03e8: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
03e9: DUP2              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
03ea: PUSH1 0x01         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x01']
03ec: ADD                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)']
03ed: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)', '0x00']
03ef: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)']
03f0: SLOAD              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]']
03f1: DUP4              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
03f2: PUSH1 0x01         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x01']
03f4: ADD                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)']
03f5: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)', '0x00']
03f7: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)']
03f8: SLOAD              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]']
03f9: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', '0x00']
03fb: DUP6              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
03fc: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', '0x00', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
03fe: ADD                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)']
03ff: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)', '0x00']
0401: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)']
0402: SLOAD              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]']
0403: MUL                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', '(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])']
0404: DIV                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]))']
0405: MUL                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))']
0406: SWAP1             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '0x00']
0407: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))']
0408: DUP2              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])']
0409: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '0x00']
040b: ADD                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)']
040c: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)', '0x00']
040e: SWAP1             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '0x00', '(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)']
040f: SLOAD              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '0x00', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]']
0410: SWAP1             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]', '0x00']
0411: PUSH2 0x0100       stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]', '0x00', '0x0100']
0414: EXP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]', '(0x00**0x0100)']
0415: SWAP1             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '(0x00**0x0100)', 'sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]']
0416: DIV                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])']
0417: PUSH20 0xffffffffffffffffffffffffffffffffffffffff stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])', '0xffffffffffffffffffffffffffffffffffffffff']
042c: AND                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '(((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)']
042d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '(((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)', '0xffffffffffffffffffffffffffffffffffffffff']
0442: AND                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)']
0443: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00']
0445: DUP3              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))']
0446: PUSH1 0x40         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '0x40']
0448: MLOAD              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]']
0449: DUP1              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]', 'mem[0x40]']
044a: SWAP1             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]', 'mem[0x40]']
044b: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]']
044c: PUSH1 0x00         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]', '0x00']
044e: PUSH1 0x40         stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]', '0x00', '0x40']
0450: MLOAD              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]', '0x00', 'mem[0x40]']
0451: DUP1              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]', '0x00', 'mem[0x40]', 'mem[0x40]']
0452: DUP4              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]', '0x00', 'mem[0x40]', 'mem[0x40]', 'mem[0x40]']
0453: SUB                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]', '0x00', 'mem[0x40]', '(mem[0x40]-mem[0x40])']
0454: DUP2              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]', '0x00', 'mem[0x40]', '(mem[0x40]-mem[0x40])', 'mem[0x40]']
0455: DUP6              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]', '0x00', 'mem[0x40]', '(mem[0x40]-mem[0x40])', 'mem[0x40]', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))']
0456: DUP9              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]', '0x00', 'mem[0x40]', '(mem[0x40]-mem[0x40])', 'mem[0x40]', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)']
0457: DUP9              stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]', '0x00', 'mem[0x40]', '(mem[0x40]-mem[0x40])', 'mem[0x40]', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00']
0458: CALL               stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]', 'call(gas=0x00,to=((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff),value=(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]))),in=mem[0x40]:(mem[0x40]-mem[0x40]),out=mem[0x40]:0x00)']
0459: SWAP4             stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'call(gas=0x00,to=((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff),value=(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]))),in=mem[0x40]:(mem[0x40]-mem[0x40]),out=mem[0x40]:0x00)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]', '((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff)']
045a: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'call(gas=0x00,to=((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff),value=(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]))),in=mem[0x40]:(mem[0x40]-mem[0x40]),out=mem[0x40]:0x00)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'mem[0x40]']
045b: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'call(gas=0x00,to=((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff),value=(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]))),in=mem[0x40]:(mem[0x40]-mem[0x40]),out=mem[0x40]:0x00)', '0x00', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))']
045c: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'call(gas=0x00,to=((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff),value=(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]))),in=mem[0x40]:(mem[0x40]-mem[0x40]),out=mem[0x40]:0x00)', '0x00']
045d: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))', 'call(gas=0x00,to=((((0x00**0x0100)/sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])&0xffffffffffffffffffffffffffffffffffffffff)&0xffffffffffffffffffffffffffffffffffffffff),value=(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)]))),in=mem[0x40]:(mem[0x40]-mem[0x40]),out=mem[0x40]:0x00)']
045e: POP                stack=['ret', 'arg0', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', 'keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])', '(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]*(sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x01)]/(0x00*sload[(keccak(mem[0x00:0x00+((0x00+0x20)+0x20)])+0x00)])))']

codex
{"no_findings":false,"summary":"Bytecode-only analysis suggests this contract maintains a global record table and exposes a public ETH-transfer path. The strongest issues are missing access control around record mutation/payout setup and a payout routine that performs a value-bearing CALL without clearly consuming claim state; selector meanings are inferred from storage/call patterns, not verified source.","findings":[{"severity":"high","category":"access_control","title":"Unauthenticated record creation can steer later ETH payouts","exploit_scenario":"An attacker can call selector 0x75724990 to create or modify a record-like entry with attacker-chosen data, then call selector 0x2515994e with the relevant index to trigger the value-bearing CALL. Because no guard was detected on either path and the CALL target/value were dynamically confirmed to vary, this can plausibly route contract ETH to attacker-controlled addresses. Exact selector semantics are uncertain from bytecode alone, but the mutation-plus-payout pattern is strong.","recommendation":"Restrict the record-mutating selector(s) and the payout trigger with explicit authorization. If public participation is intended, bind records to msg.sender, validate index/amount invariants onchain, and separate user input from payout destination data.","evidence":"Selector 0x75724990 has no detected guard and performs multiple writes into a record-like slot derived from a base slot plus offset 5, including SSTOREs at pc 0x248, pc 0x257, and pc 0x274, plus counter/accounting updates at pc 0x283 and pc 0x29f. Selector 0x2515994e reaches the only external CALL site at pc 0x458. The detector validated this CALL as confirmed, with target_varies=true and observed call targets including external address 0x4f541a72b8dbfd121e158f9a395177dc9d030005.","locations":["selector:0x75724990","pc:0x248","pc:0x257","pc:0x274","pc:0x283","pc:0x29f","selector:0x2515994e","pc:0x458"]},{"severity":"medium","category":"reentrancy","title":"Payout path appears replayable and reentrancy-prone","exploit_scenario":"A malicious recipient contract can be configured as the payout target and, when selector 0x2515994e executes, reenter or repeatedly call the same selector on the same index. The payout path appears to read storage, perform a value-bearing CALL, and return without clearing or decrementing the record in that same path. If the inferred accounting role of these slots is correct, the same entitlement can be paid multiple times until balance exhaustion.","recommendation":"Use checks-effects-interactions: mark the record as spent or decrement owed value before the external CALL, and add a reentrancy guard around payout-related entrypoints. Revert on failed transfer instead of ignoring the CALL result.","evidence":"The only CALL occurs at pc 0x458 and the artifact reports returndata_checked=null. In the selector 0x2515994e path, the bytecode shows SLOAD-based computation leading into the CALL but no SSTORE before or after it. A separate selector, 0xdda1a1e6, clears a byte-like field at record slot+2 (pc 0x2e4 through pc 0x2fd), yet that flag is not obviously consulted on the payout path, which suggests claim state is not consumed during transfer. This replay conclusion is based on bytecode inference and is therefore medium-confidence.","locations":["selector:0x2515994e","pc:0x458","selector:0xdda1a1e6","pc:0x2e4","pc:0x2fd"]}]}
tokens used
93,964
Metadata
{
    "codex": {
        "ran_at": "2026-04-05T03:07:12.510692+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 2252,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Bytecode-only analysis suggests this contract maintains a global record table and exposes a public ETH-transfer path. The strongest issues are missing access control around record mutation/payout setup and a payout routine that performs a value-bearing CALL without clearly consuming claim state; selector meanings are inferred from storage/call patterns, not verified source.",
    "raw_final": {
        "summary": "Bytecode-only analysis suggests this contract maintains a global record table and exposes a public ETH-transfer path. The strongest issues are missing access control around record mutation/payout setup and a payout routine that performs a value-bearing CALL without clearly consuming claim state; selector meanings are inferred from storage/call patterns, not verified source.",
        "findings": [
            {
                "title": "Unauthenticated record creation can steer later ETH payouts",
                "category": "access_control",
                "evidence": "Selector 0x75724990 has no detected guard and performs multiple writes into a record-like slot derived from a base slot plus offset 5, including SSTOREs at pc 0x248, pc 0x257, and pc 0x274, plus counter/accounting updates at pc 0x283 and pc 0x29f. Selector 0x2515994e reaches the only external CALL site at pc 0x458. The detector validated this CALL as confirmed, with target_varies=true and observed call targets including external address 0x4f541a72b8dbfd121e158f9a395177dc9d030005.",
                "severity": "high",
                "locations": [
                    "selector:0x75724990",
                    "pc:0x248",
                    "pc:0x257",
                    "pc:0x274",
                    "pc:0x283",
                    "pc:0x29f",
                    "selector:0x2515994e",
                    "pc:0x458"
                ],
                "recommendation": "Restrict the record-mutating selector(s) and the payout trigger with explicit authorization. If public participation is intended, bind records to msg.sender, validate index/amount invariants onchain, and separate user input from payout destination data.",
                "exploit_scenario": "An attacker can call selector 0x75724990 to create or modify a record-like entry with attacker-chosen data, then call selector 0x2515994e with the relevant index to trigger the value-bearing CALL. Because no guard was detected on either path and the CALL target/value were dynamically confirmed to vary, this can plausibly route contract ETH to attacker-controlled addresses. Exact selector semantics are uncertain from bytecode alone, but the mutation-plus-payout pattern is strong."
            },
            {
                "title": "Payout path appears replayable and reentrancy-prone",
                "category": "reentrancy",
                "evidence": "The only CALL occurs at pc 0x458 and the artifact reports returndata_checked=null. In the selector 0x2515994e path, the bytecode shows SLOAD-based computation leading into the CALL but no SSTORE before or after it. A separate selector, 0xdda1a1e6, clears a byte-like field at record slot+2 (pc 0x2e4 through pc 0x2fd), yet that flag is not obviously consulted on the payout path, which suggests claim state is not consumed during transfer. This replay conclusion is based on bytecode inference and is therefore medium-confidence.",
                "severity": "medium",
                "locations": [
                    "selector:0x2515994e",
                    "pc:0x458",
                    "selector:0xdda1a1e6",
                    "pc:0x2e4",
                    "pc:0x2fd"
                ],
                "recommendation": "Use checks-effects-interactions: mark the record as spent or decrement owed value before the external CALL, and add a reentrancy guard around payout-related entrypoints. Revert on failed transfer instead of ignoring the CALL result.",
                "exploit_scenario": "A malicious recipient contract can be configured as the payout target and, when selector 0x2515994e executes, reenter or repeatedly call the same selector on the same index. The payout path appears to read storage, perform a value-bearing CALL, and return without clearing or decrementing the record in that same path. If the inferred accounting role of these slots is correct, the same entitlement can be paid multiple times until balance exhaustion."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
1
EXT*/BALANCE
0
Total opcodes
715
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x0069
0000000a: JUMPI
0000000b: PUSH1 0x00
0000000d: CALLDATALOAD
0000000e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002c: SWAP1
0000002d: DIV
0000002e: DUP1
0000002f: PUSH4 0x2515994e
00000034: EQ
00000035: PUSH2 0x0103
00000038: JUMPI
00000039: DUP1
0000003a: PUSH4 0x6ccb5d02
0000003f: EQ
00000040: PUSH2 0x011b
00000043: JUMPI
00000044: DUP1
00000045: PUSH4 0x75724990
0000004a: EQ
0000004b: PUSH2 0x015d
0000004e: JUMPI
0000004f: DUP1
00000050: PUSH4 0xdae9e379
00000055: EQ
00000056: PUSH2 0x017e
00000059: JUMPI
0000005a: DUP1
0000005b: PUSH4 0xdda1a1e6
00000060: EQ
00000061: PUSH2 0x01a1
00000064: JUMPI
00000065: PUSH2 0x0069
00000068: JUMP
00000069: JUMPDEST
0000006a: PUSH2 0x0101
0000006d: JUMPDEST
0000006e: PUSH1 0x00
00000070: NUMBER
00000071: PUSH32 0x5d6ac9b7defd8fbb29ef2ab0f08c3744192b3777466dd98d1fd7daed5064b6db
00000092: CALLER
00000093: CALLVALUE
00000094: TIMESTAMP
00000095: PUSH1 0x40
00000097: MLOAD
00000098: DUP1
00000099: DUP5
0000009a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000000af: AND
000000b0: DUP2
000000b1: MSTORE
000000b2: PUSH1 0x20
000000b4: ADD
000000b5: DUP4
000000b6: DUP2
000000b7: MSTORE
000000b8: PUSH1 0x20
000000ba: ADD
000000bb: DUP3
000000bc: DUP2
000000bd: MSTORE
000000be: PUSH1 0x20
000000c0: ADD
000000c1: SWAP4
000000c2: POP
000000c3: POP
000000c4: POP
000000c5: POP
000000c6: PUSH1 0x40
000000c8: MLOAD
000000c9: DUP1
000000ca: SWAP2
000000cb: SUB
000000cc: SWAP1
000000cd: LOG2
000000ce: PUSH1 0x00
000000d0: PUSH1 0x00
000000d2: POP
000000d3: PUSH1 0x00
000000d5: PUSH1 0x00
000000d7: DUP2
000000d8: MSTORE
000000d9: PUSH1 0x20
000000db: ADD
000000dc: SWAP1
000000dd: DUP2
000000de: MSTORE
000000df: PUSH1 0x20
000000e1: ADD
000000e2: PUSH1 0x00
000000e4: KECCAK256
000000e5: PUSH1 0x00
000000e7: POP
000000e8: SWAP1
000000e9: POP
000000ea: CALLVALUE
000000eb: DUP2
000000ec: PUSH1 0x00
000000ee: ADD
000000ef: PUSH1 0x00
000000f1: DUP3
000000f2: DUP3
000000f3: DUP3
000000f4: POP
000000f5: SLOAD
000000f6: ADD
000000f7: SWAP3
000000f8: POP
000000f9: POP
000000fa: DUP2
000000fb: SWAP1
000000fc: SSTORE
000000fd: POP
000000fe: JUMPDEST
000000ff: POP
00000100: JUMP
00000101: JUMPDEST
00000102: STOP
00000103: JUMPDEST
00000104: PUSH2 0x0119
00000107: PUSH1 0x04
00000109: DUP1
0000010a: DUP1
0000010b: CALLDATALOAD
0000010c: SWAP1
0000010d: PUSH1 0x20
0000010f: ADD
00000110: SWAP1
00000111: SWAP2
00000112: SWAP1
00000113: POP
00000114: POP
00000115: PUSH2 0x03a9
00000118: JUMP
00000119: JUMPDEST
0000011a: STOP
0000011b: JUMPDEST
0000011c: PUSH2 0x0131
0000011f: PUSH1 0x04
00000121: DUP1
00000122: DUP1
00000123: CALLDATALOAD
00000124: SWAP1
00000125: PUSH1 0x20
00000127: ADD
00000128: SWAP1
00000129: SWAP2
0000012a: SWAP1
0000012b: POP
0000012c: POP
0000012d: PUSH2 0x0337
00000130: JUMP
00000131: JUMPDEST
00000132: PUSH1 0x40
00000134: MLOAD
00000135: DUP1
00000136: DUP3
00000137: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000014c: AND
0000014d: DUP2
0000014e: MSTORE
0000014f: PUSH1 0x20
00000151: ADD
00000152: SWAP2
00000153: POP
00000154: POP
00000155: PUSH1 0x40
00000157: MLOAD
00000158: DUP1
00000159: SWAP2
0000015a: SUB
0000015b: SWAP1
0000015c: RETURN
0000015d: JUMPDEST
0000015e: PUSH2 0x017c
00000161: PUSH1 0x04
00000163: DUP1
00000164: DUP1
00000165: CALLDATALOAD
00000166: SWAP1
00000167: PUSH1 0x20
00000169: ADD
0000016a: SWAP1
0000016b: SWAP2
0000016c: SWAP1
0000016d: DUP1
0000016e: CALLDATALOAD
0000016f: SWAP1
00000170: PUSH1 0x20
00000172: ADD
00000173: SWAP1
00000174: SWAP2
00000175: SWAP1
00000176: POP
00000177: POP
00000178: PUSH2 0x01b9
0000017b: JUMP
0000017c: JUMPDEST
0000017d: STOP
0000017e: JUMPDEST
0000017f: PUSH2 0x018b
00000182: PUSH1 0x04
00000184: DUP1
00000185: POP
00000186: POP
00000187: PUSH2 0x0304
0000018a: JUMP
0000018b: JUMPDEST
0000018c: PUSH1 0x40
0000018e: MLOAD
0000018f: DUP1
00000190: DUP3
00000191: DUP2
00000192: MSTORE
00000193: PUSH1 0x20
00000195: ADD
00000196: SWAP2
00000197: POP
00000198: POP
00000199: PUSH1 0x40
0000019b: MLOAD
0000019c: DUP1
0000019d: SWAP2
0000019e: SUB
0000019f: SWAP1
000001a0: RETURN
000001a1: JUMPDEST
000001a2: PUSH2 0x01b7
000001a5: PUSH1 0x04
000001a7: DUP1
000001a8: DUP1
000001a9: CALLDATALOAD
000001aa: SWAP1
000001ab: PUSH1 0x20
000001ad: ADD
000001ae: SWAP1
000001af: SWAP2
000001b0: SWAP1
000001b1: POP
000001b2: POP
000001b3: PUSH2 0x02a6
000001b6: JUMP
000001b7: JUMPDEST
000001b8: STOP
000001b9: JUMPDEST
000001ba: PUSH1 0x00
000001bc: PUSH1 0x00
000001be: PUSH1 0x00
000001c0: POP
000001c1: PUSH1 0x00
000001c3: PUSH1 0x00
000001c5: DUP2
000001c6: MSTORE
000001c7: PUSH1 0x20
000001c9: ADD
000001ca: SWAP1
000001cb: DUP2
000001cc: MSTORE
000001cd: PUSH1 0x20
000001cf: ADD
000001d0: PUSH1 0x00
000001d2: KECCAK256
000001d3: PUSH1 0x00
000001d5: POP
000001d6: SWAP1
000001d7: POP
000001d8: PUSH1 0x60
000001da: PUSH1 0x40
000001dc: MLOAD
000001dd: SWAP1
000001de: DUP2
000001df: ADD
000001e0: PUSH1 0x40
000001e2: MSTORE
000001e3: DUP1
000001e4: DUP5
000001e5: DUP2
000001e6: MSTORE
000001e7: PUSH1 0x20
000001e9: ADD
000001ea: DUP4
000001eb: DUP2
000001ec: MSTORE
000001ed: PUSH1 0x20
000001ef: ADD
000001f0: PUSH1 0x01
000001f2: DUP2
000001f3: MSTORE
000001f4: PUSH1 0x20
000001f6: ADD
000001f7: POP
000001f8: DUP2
000001f9: PUSH1 0x05
000001fb: ADD
000001fc: PUSH1 0x00
000001fe: POP
000001ff: PUSH1 0x00
00000201: DUP4
00000202: PUSH1 0x04
00000204: ADD
00000205: PUSH1 0x00
00000207: POP
00000208: SLOAD
00000209: DUP2
0000020a: MSTORE
0000020b: PUSH1 0x20
0000020d: ADD
0000020e: SWAP1
0000020f: DUP2
00000210: MSTORE
00000211: PUSH1 0x20
00000213: ADD
00000214: PUSH1 0x00
00000216: KECCAK256
00000217: PUSH1 0x00
00000219: POP
0000021a: PUSH1 0x00
0000021c: DUP3
0000021d: ADD
0000021e: MLOAD
0000021f: DUP2
00000220: PUSH1 0x00
00000222: ADD
00000223: PUSH1 0x00
00000225: PUSH2 0x0100
00000228: EXP
00000229: DUP2
0000022a: SLOAD
0000022b: DUP2
0000022c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000241: MUL
00000242: NOT
00000243: AND
00000244: SWAP1
00000245: DUP4
00000246: MUL
00000247: OR
00000248: SWAP1
00000249: SSTORE
0000024a: POP
0000024b: PUSH1 0x20
0000024d: DUP3
0000024e: ADD
0000024f: MLOAD
00000250: DUP2
00000251: PUSH1 0x01
00000253: ADD
00000254: PUSH1 0x00
00000256: POP
00000257: SSTORE
00000258: PUSH1 0x40
0000025a: DUP3
0000025b: ADD
0000025c: MLOAD
0000025d: DUP2
0000025e: PUSH1 0x02
00000260: ADD
00000261: PUSH1 0x00
00000263: PUSH2 0x0100
00000266: EXP
00000267: DUP2
00000268: SLOAD
00000269: DUP2
0000026a: PUSH1 0xff
0000026c: MUL
0000026d: NOT
0000026e: AND
0000026f: SWAP1
00000270: DUP4
00000271: MUL
00000272: OR
00000273: SWAP1
00000274: SSTORE
00000275: POP
00000276: SWAP1
00000277: POP
00000278: POP
00000279: DUP1
0000027a: PUSH1 0x04
0000027c: ADD
0000027d: PUSH1 0x00
0000027f: DUP2
00000280: DUP2
00000281: POP
00000282: SLOAD
00000283: PUSH1 0x01
00000285: ADD
00000286: SWAP2
00000287: SWAP1
00000288: POP
00000289: DUP2
0000028a: SWAP1
0000028b: SSTORE
0000028c: POP
0000028d: DUP2
0000028e: DUP2
0000028f: PUSH1 0x02
00000291: ADD
00000292: PUSH1 0x00
00000294: DUP3
00000295: DUP3
00000296: DUP3
00000297: POP
00000298: SLOAD
00000299: SUB
0000029a: SWAP3
0000029b: POP
0000029c: POP
0000029d: DUP2
0000029e: SWAP1
0000029f: SSTORE
000002a0: POP
000002a1: JUMPDEST
000002a2: POP
000002a3: POP
000002a4: POP
000002a5: JUMP
000002a6: JUMPDEST
000002a7: PUSH1 0x00
000002a9: PUSH1 0x00
000002ab: PUSH1 0x00
000002ad: PUSH1 0x00
000002af: POP
000002b0: PUSH1 0x00
000002b2: PUSH1 0x00
000002b4: DUP2
000002b5: MSTORE
000002b6: PUSH1 0x20
000002b8: ADD
000002b9: SWAP1
000002ba: DUP2
000002bb: MSTORE
000002bc: PUSH1 0x20
000002be: ADD
000002bf: PUSH1 0x00
000002c1: KECCAK256
000002c2: PUSH1 0x00
000002c4: POP
000002c5: SWAP2
000002c6: POP
000002c7: DUP2
000002c8: PUSH1 0x05
000002ca: ADD
000002cb: PUSH1 0x00
000002cd: POP
000002ce: PUSH1 0x00
000002d0: DUP5
000002d1: DUP2
000002d2: MSTORE
000002d3: PUSH1 0x20
000002d5: ADD
000002d6: SWAP1
000002d7: DUP2
000002d8: MSTORE
000002d9: PUSH1 0x20
000002db: ADD
000002dc: PUSH1 0x00
000002de: KECCAK256
000002df: PUSH1 0x00
000002e1: POP
000002e2: SWAP1
000002e3: POP
000002e4: PUSH1 0x00
000002e6: DUP2
000002e7: PUSH1 0x02
000002e9: ADD
000002ea: PUSH1 0x00
000002ec: PUSH2 0x0100
000002ef: EXP
000002f0: DUP2
000002f1: SLOAD
000002f2: DUP2
000002f3: PUSH1 0xff
000002f5: MUL
000002f6: NOT
000002f7: AND
000002f8: SWAP1
000002f9: DUP4
000002fa: MUL
000002fb: OR
000002fc: SWAP1
000002fd: SSTORE
000002fe: POP
000002ff: JUMPDEST
00000300: POP
00000301: POP
00000302: POP
00000303: JUMP
00000304: JUMPDEST
00000305: PUSH1 0x00
00000307: PUSH1 0x00
00000309: PUSH1 0x00
0000030b: PUSH1 0x00
0000030d: POP
0000030e: PUSH1 0x00
00000310: PUSH1 0x00
00000312: DUP2
00000313: MSTORE
00000314: PUSH1 0x20
00000316: ADD
00000317: SWAP1
00000318: DUP2
00000319: MSTORE
0000031a: PUSH1 0x20
0000031c: ADD
0000031d: PUSH1 0x00
0000031f: KECCAK256
00000320: PUSH1 0x00
00000322: POP
00000323: SWAP1
00000324: POP
00000325: DUP1
00000326: PUSH1 0x00
00000328: ADD
00000329: PUSH1 0x00
0000032b: POP
0000032c: SLOAD
0000032d: SWAP2
0000032e: POP
0000032f: PUSH2 0x0333
00000332: JUMP
00000333: JUMPDEST
00000334: POP
00000335: SWAP1
00000336: JUMP
00000337: JUMPDEST
00000338: PUSH1 0x00
0000033a: PUSH1 0x00
0000033c: PUSH1 0x00
0000033e: PUSH1 0x00
00000340: PUSH1 0x00
00000342: POP
00000343: PUSH1 0x00
00000345: PUSH1 0x00
00000347: DUP2
00000348: MSTORE
00000349: PUSH1 0x20
0000034b: ADD
0000034c: SWAP1
0000034d: DUP2
0000034e: MSTORE
0000034f: PUSH1 0x20
00000351: ADD
00000352: PUSH1 0x00
00000354: KECCAK256
00000355: PUSH1 0x00
00000357: POP
00000358: SWAP2
00000359: POP
0000035a: DUP2
0000035b: PUSH1 0x05
0000035d: ADD
0000035e: PUSH1 0x00
00000360: POP
00000361: PUSH1 0x00
00000363: DUP6
00000364: DUP2
00000365: MSTORE
00000366: PUSH1 0x20
00000368: ADD
00000369: SWAP1
0000036a: DUP2
0000036b: MSTORE
0000036c: PUSH1 0x20
0000036e: ADD
0000036f: PUSH1 0x00
00000371: KECCAK256
00000372: PUSH1 0x00
00000374: POP
00000375: SWAP1
00000376: POP
00000377: DUP1
00000378: PUSH1 0x00
0000037a: ADD
0000037b: PUSH1 0x00
0000037d: SWAP1
0000037e: SLOAD
0000037f: SWAP1
00000380: PUSH2 0x0100
00000383: EXP
00000384: SWAP1
00000385: DIV
00000386: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000039b: AND
0000039c: SWAP3
0000039d: POP
0000039e: PUSH2 0x03a2
000003a1: JUMP
000003a2: JUMPDEST
000003a3: POP
000003a4: POP
000003a5: SWAP2
000003a6: SWAP1
000003a7: POP
000003a8: JUMP
000003a9: JUMPDEST
000003aa: PUSH1 0x00
000003ac: PUSH1 0x00
000003ae: PUSH1 0x00
000003b0: PUSH1 0x00
000003b2: PUSH1 0x00
000003b4: POP
000003b5: PUSH1 0x00
000003b7: PUSH1 0x00
000003b9: DUP2
000003ba: MSTORE
000003bb: PUSH1 0x20
000003bd: ADD
000003be: SWAP1
000003bf: DUP2
000003c0: MSTORE
000003c1: PUSH1 0x20
000003c3: ADD
000003c4: PUSH1 0x00
000003c6: KECCAK256
000003c7: PUSH1 0x00
000003c9: POP
000003ca: SWAP3
000003cb: POP
000003cc: DUP3
000003cd: PUSH1 0x05
000003cf: ADD
000003d0: PUSH1 0x00
000003d2: POP
000003d3: PUSH1 0x00
000003d5: DUP6
000003d6: DUP2
000003d7: MSTORE
000003d8: PUSH1 0x20
000003da: ADD
000003db: SWAP1
000003dc: DUP2
000003dd: MSTORE
000003de: PUSH1 0x20
000003e0: ADD
000003e1: PUSH1 0x00
000003e3: KECCAK256
000003e4: PUSH1 0x00
000003e6: POP
000003e7: SWAP2
000003e8: POP
000003e9: DUP2
000003ea: PUSH1 0x01
000003ec: ADD
000003ed: PUSH1 0x00
000003ef: POP
000003f0: SLOAD
000003f1: DUP4
000003f2: PUSH1 0x01
000003f4: ADD
000003f5: PUSH1 0x00
000003f7: POP
000003f8: SLOAD
000003f9: PUSH1 0x00
000003fb: DUP6
000003fc: PUSH1 0x00
000003fe: ADD
000003ff: PUSH1 0x00
00000401: POP
00000402: SLOAD
00000403: MUL
00000404: DIV
00000405: MUL
00000406: SWAP1
00000407: POP
00000408: DUP2
00000409: PUSH1 0x00
0000040b: ADD
0000040c: PUSH1 0x00
0000040e: SWAP1
0000040f: SLOAD
00000410: SWAP1
00000411: PUSH2 0x0100
00000414: EXP
00000415: SWAP1
00000416: DIV
00000417: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000042c: AND
0000042d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000442: AND
00000443: PUSH1 0x00
00000445: DUP3
00000446: PUSH1 0x40
00000448: MLOAD
00000449: DUP1
0000044a: SWAP1
0000044b: POP
0000044c: PUSH1 0x00
0000044e: PUSH1 0x40
00000450: MLOAD
00000451: DUP1
00000452: DUP4
00000453: SUB
00000454: DUP2
00000455: DUP6
00000456: DUP9
00000457: DUP9
00000458: CALL
00000459: SWAP4
0000045a: POP
0000045b: POP
0000045c: POP
0000045d: POP
0000045e: POP
0000045f: JUMPDEST
00000460: POP
00000461: POP
00000462: POP
00000463: POP
00000464: JUMP
View stderr
Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment.

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: 0x64c16fe4eaba2e7d2c1db7b2a0aab50a72eee572175e6f53861345b403c3748d
call_targets: 0x4f541a72b8dbfd121e158f9a395177dc9d030005, 0x9c9e98aba397c49e03ee2e4cf11c0effb8cc8135
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x64c16fe4eaba2e7d2c1db7b2a0aab50a72eee572175e6f53861345b403c3748d",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x4f541a72b8dbfd121e158f9a395177dc9d030005",
        "0x9c9e98aba397c49e03ee2e4cf11c0effb8cc8135"
    ],
    "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": "0x2515994e",
            "selector": "0x2515994e",
            "calldata_variants": [
                "0x2515994e",
                "0x2515994e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6ccb5d02",
            "selector": "0x6ccb5d02",
            "calldata_variants": [
                "0x6ccb5d02",
                "0x6ccb5d020000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x75724990",
            "selector": "0x75724990",
            "calldata_variants": [
                "0x75724990",
                "0x757249900000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdae9e379",
            "selector": "0xdae9e379",
            "calldata_variants": [
                "0xdae9e379",
                "0xdae9e3790000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdda1a1e6",
            "selector": "0xdda1a1e6",
            "calldata_variants": [
                "0xdda1a1e6",
                "0xdda1a1e60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1112,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 1,
    "guards_detected": [],
    "untrusted_call_count": 1
}
high other detector ETH value transfer possible 55 yes yes
view
trace_id: 0x64c16fe4eaba2e7d2c1db7b2a0aab50a72eee572175e6f53861345b403c3748d
call_targets: 0x4f541a72b8dbfd121e158f9a395177dc9d030005, 0x9c9e98aba397c49e03ee2e4cf11c0effb8cc8135
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0x64c16fe4eaba2e7d2c1db7b2a0aab50a72eee572175e6f53861345b403c3748d",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x4f541a72b8dbfd121e158f9a395177dc9d030005",
        "0x9c9e98aba397c49e03ee2e4cf11c0effb8cc8135"
    ],
    "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": "0x2515994e",
            "selector": "0x2515994e",
            "calldata_variants": [
                "0x2515994e",
                "0x2515994e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x6ccb5d02",
            "selector": "0x6ccb5d02",
            "calldata_variants": [
                "0x6ccb5d02",
                "0x6ccb5d020000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x75724990",
            "selector": "0x75724990",
            "calldata_variants": [
                "0x75724990",
                "0x757249900000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdae9e379",
            "selector": "0xdae9e379",
            "calldata_variants": [
                "0xdae9e379",
                "0xdae9e3790000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdda1a1e6",
            "selector": "0xdda1a1e6",
            "calldata_variants": [
                "0xdda1a1e6",
                "0xdda1a1e60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1112,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 1,
    "guards_detected": []
}
high access_control codex Unauthenticated record creation can steer later ETH payouts 85 no
view
evidence_json
{
    "evidence": "Selector 0x75724990 has no detected guard and performs multiple writes into a record-like slot derived from a base slot plus offset 5, including SSTOREs at pc 0x248, pc 0x257, and pc 0x274, plus counter/accounting updates at pc 0x283 and pc 0x29f. Selector 0x2515994e reaches the only external CALL site at pc 0x458. The detector validated this CALL as confirmed, with target_varies=true and observed call targets including external address 0x4f541a72b8dbfd121e158f9a395177dc9d030005.",
    "locations": [
        "selector:0x75724990",
        "pc:0x248",
        "pc:0x257",
        "pc:0x274",
        "pc:0x283",
        "pc:0x29f",
        "selector:0x2515994e",
        "pc:0x458"
    ],
    "recommendation": "Restrict the record-mutating selector(s) and the payout trigger with explicit authorization. If public participation is intended, bind records to msg.sender, validate index/amount invariants onchain, and separate user input from payout destination data.",
    "exploit_scenario": "An attacker can call selector 0x75724990 to create or modify a record-like entry with attacker-chosen data, then call selector 0x2515994e with the relevant index to trigger the value-bearing CALL. Because no guard was detected on either path and the CALL target/value were dynamically confirmed to vary, this can plausibly route contract ETH to attacker-controlled addresses. Exact selector semantics are uncertain from bytecode alone, but the mutation-plus-payout pattern is strong."
}
medium reentrancy codex Payout path appears replayable and reentrancy-prone 75 no
view
evidence_json
{
    "evidence": "The only CALL occurs at pc 0x458 and the artifact reports returndata_checked=null. In the selector 0x2515994e path, the bytecode shows SLOAD-based computation leading into the CALL but no SSTORE before or after it. A separate selector, 0xdda1a1e6, clears a byte-like field at record slot+2 (pc 0x2e4 through pc 0x2fd), yet that flag is not obviously consulted on the payout path, which suggests claim state is not consumed during transfer. This replay conclusion is based on bytecode inference and is therefore medium-confidence.",
    "locations": [
        "selector:0x2515994e",
        "pc:0x458",
        "selector:0xdda1a1e6",
        "pc:0x2e4",
        "pc:0x2fd"
    ],
    "recommendation": "Use checks-effects-interactions: mark the record as spent or decrement owed value before the external CALL, and add a reentrancy guard around payout-related entrypoints. Revert on failed transfer instead of ignoring the CALL result.",
    "exploit_scenario": "A malicious recipient contract can be configured as the payout target and, when selector 0x2515994e executes, reenter or repeatedly call the same selector on the same index. The payout path appears to read storage, perform a value-bearing CALL, and return without clearing or decrementing the record in that same path. If the inferred accounting role of these slots is correct, the same entitlement can be paid multiple times until balance exhaustion."
}