019b3836-4076-722b-8b7d-9857be4c7abf
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 5223 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 5224 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 48660 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 48661 | capability.graph | complete | 1 / 3 | 1 week ago |
| 48662 | detector.run | complete | 1 / 3 | 1 week ago |
| 48663 | validation.fork | complete | 1 / 3 | 1 week ago |
| 113293 | report.consolidate | complete | 1 / 6 | 1 week ago |
No slither job recorded yet.
{"no_findings":false,"summary":"Bytecode-only review found one medium-confidence accounting flaw in the approval/allowance flow and one low-severity callback/reentrancy risk in a custom approve-and-call style entrypoint. No proxy/delegatecall/selfdestruct behavior was evidenced in the bundle.","findings":[{"severity":"medium","category":"other","title":"Allowance accounting appears cumulative and is not reset on re-approval","exploit_scenario":"Best-effort selector inference indicates `selector:0xcae9ca51` is the only approval-like writer for the nested mapping at slot 0x06. It stores a fresh approved amount, but `selector:0x23b872dd` checks transfers against `spent + amount <= approved` using a second nested mapping at slot 0x07 and then increments that spent counter instead of decreasing the approved amount. If a spender has already used part or all of an approval, a later re-approval to the same nominal amount does not restore the expected remaining allowance. Example: approve 100, spend 100, approve 100 again; future `transferFrom` calls fail because historical spent remains 100. Integrations that read `selector:0xdd62ed3e` may also observe the raw approved amount rather than true remaining spendable capacity.","recommendation":"Use standard remaining-allowance semantics. Either decrement the allowance mapping directly during `transferFrom`, or if keeping separate approved/spent mappings, reset the spent counter whenever a new approval is written and have the public allowance getter return `approved - spent`. Add tests for partial spend, full spend, and re-approval to the same spender.","evidence":"At `pc:0x2c4` the approval-like function writes a nested mapping after building a slot with constant `0x06`. In `selector:0x23b872dd`, the block at `pc:0x48d` builds a slot with constant `0x06`, then another with constant `0x07`, and enforces a bound via `SLOAD(slot7) + amount <= SLOAD(slot6)` before proceeding. Later, at `pc:0x536` through `pc:0x580`, the code writes `SSTORE(slot7, SLOAD(slot7) + amount)`, showing cumulative spend tracking. The getter at `selector:0xdd62ed3e` (`pc:0x3bd` onward) reads the mapping keyed with constant `0x06`, not an obvious remaining-allowance calculation. This is a bytecode inference, but the slot usage pattern is consistent.","locations":["selector:0xcae9ca51","selector:0x23b872dd","selector:0xdd62ed3e","pc:0x2c4","pc:0x48d","pc:0x536","pc:0x580","pc:0x3bd"]},{"severity":"low","category":"reentrancy","title":"Custom approval path performs an unguarded external callback to a user-supplied contract","exploit_scenario":"The custom entrypoint at `selector:0xcae9ca51` writes approval-related state and then performs a `CALL` to the address supplied in calldata, with calldata shaped like `0x8f4ffcb1(...)` (consistent with an approve-and-call/receiveApproval pattern). A malicious callee can reenter public token functions before the original call returns. Because the target is user-chosen, this may be intentional behavior rather than a bug, but any integrator assuming a simple approval without synchronous execution can be surprised.","recommendation":"If this callback is intended, document it clearly as approve-and-call behavior and treat the callee as untrusted. Consider a reentrancy guard around stateful paths that should not be reentered, and validate callback success/expected interface more explicitly. If synchronous callbacks are not required, remove the external call and expose a plain approval flow instead.","evidence":"The bundle’s detector validated an untrusted `CALL` at `pc:0x385` with a computed target. Bytecode-level symbolic tracing of the block starting at `selector:0xcae9ca51` shows the target is the masked address loaded from `calldata[0x04]`, while `pc:0x2c4` has already updated approval-related storage. The earlier `CALL` at `pc:0x341` targets precompile `0x04` for memory copying, so the externally relevant callback is the later call at `pc:0x385`. No guard was detected in the analysis artifact. Returndata/interface checking is unclear from the bundle, so impact is conservatively rated low.","locations":["selector:0xcae9ca51","pc:0x2c4","pc:0x385"]}]}
OpenAI Codex v0.118.0 (research preview)
--------
workdir: /tmp/codex-wkeusirp
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5c35-728c-7281-bc17-df37988c0db9
--------
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 'rg --files' in /tmp/codex-wkeusirp
exec
/bin/bash -lc pwd in /tmp/codex-wkeusirp
succeeded in 0ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
succeeded in 0ms:
/tmp/codex-wkeusirp
exec
/bin/bash -lc 'wc -c BYTECODE_BUNDLE.json codex-output-schema.json' in /tmp/codex-wkeusirp
succeeded in 0ms:
101465 BYTECODE_BUNDLE.json
815 codex-output-schema.json
102280 total
exec
/bin/bash -lc "sed -n '1,240p' codex-output-schema.json" in /tmp/codex-wkeusirp
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 "sed -n '1,260p' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
{
"analysis_artifact": {
"address": "0x13ec114ffdb980cdf470c45dcf45e544d15c4da6",
"artifact_hash": "0xff77a22f0fcb34af7ea5325e5258111792f6afb6eefe6864efbd5d35371f7292",
"artifact_json": {
"auth": {
"guards": []
},
"basic_blocks": [
{
"end_pc": 10,
"hash": "0xc590080b273074d852d07d86387bb692518eb6057284cadca88ac84fde6f0664",
"opcodes": [
"PUSH1",
"PUSH1",
"MSTORE",
"CALLDATASIZE",
"ISZERO",
"PUSH2",
"JUMPI"
],
"start_pc": 0
},
{
"end_pc": 30,
"hash": "0x4db61c68c65e3aafb60d5980f9dbe93dfd98998da1cba601a06d76a8f1510248",
"opcodes": [
"PUSH1",
"PUSH1",
"EXP",
"PUSH1",
"CALLDATALOAD",
"DIV",
"PUSH4",
"OP_81",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 11
},
{
"end_pc": 41,
"hash": "0x12cc4e8ed2fdd30122dfac48b782310710c9179137ddfc82c887c065a801b538",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 31
},
{
"end_pc": 52,
"hash": "0x4c296856393777328c11adf4a88cd725c352e0ff8b748e2cbe77f7d082a1d73c",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 42
},
{
"end_pc": 63,
"hash": "0x1fc51f3d6be0da89bc6938488db56fcc2cefd162968e4242adf170575f96f1a2",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 53
},
{
"end_pc": 74,
"hash": "0xe693856b391bfd2874967602ab2a71ee1552f8ffd147a93a96273594bde47bc0",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 64
},
{
"end_pc": 85,
"hash": "0x273f47041a78985996d31a122316d7cd4d00c9a6468a62dce547795791ce5ce8",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 75
},
{
"end_pc": 96,
"hash": "0x02cc38d89e9aedd0cb62694c3c2f76074e6e3c7faddb9f6851526dbdd16d7198",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 86
},
{
"end_pc": 107,
"hash": "0x2e7d94f9aab0358566009196c567ce053776d6a253790ce0b5ab068301731ed9",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 97
},
{
"end_pc": 118,
"hash": "0xee41d2f8eb040265f75e671bd78e34ad061d03f766f70446f6cc8d3a89530e7d",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 108
},
{
"end_pc": 129,
"hash": "0x6629e4f27300c3d03a41db89f956d36ff6308c4477dc9431c2a7df939b286b1c",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 119
},
{
"end_pc": 140,
"hash": "0x7568c9f5f6718e3d8dea4b1f67093ecabaab4fac1b5cac7859a1b89bcc5c4349",
"opcodes": [
"OP_80",
"PUSH4",
"EQ",
"PUSH2",
"JUMPI"
],
"start_pc": 130
},
{
"end_pc": 148,
"hash": "0x01c9cbeb31e8809b6ebc4aaaa3fa932054c629171654dec7c3a5870ef8f00be3",
"opcodes": [
"JUMPDEST",
"PUSH2",
"PUSH2",
"JUMP"
],
"start_pc": 141
},
{
"end_pc": 214,
"hash": "0x52861e116eb55f2549b78de50da53428f9fdadcfcca9d04a812677c13dba7608",
"opcodes": [
"JUMPDEST",
"PUSH2",
"PUSH1",
"OP_80",
"SLOAD",
"PUSH1",
"PUSH1",
"PUSH1",
"OP_83",
"AND",
"ISZERO",
"PUSH2",
"MUL",
"PUSH1",
"NOT",
"ADD",
"OP_90",
"OP_92",
"AND",
"OP_91",
"OP_90",
"OP_91",
"DIV",
"PUSH1",
"OP_81",
"ADD",
"OP_82",
"OP_90",
"DIV",
"OP_90",
"OP_91",
"MUL",
"PUSH1",
"OP_90",
"OP_81",
"ADD",
"PUSH1",
"MSTORE",
"PUSH1",
"OP_82",
"OP_81",
"MSTORE",
"OP_92",
"OP_91",
"OP_90",
"OP_82",
"OP_82",
"OP_80",
"ISZERO",
"PUSH2",
"JUMPI"
],
"start_pc": 149
},
{
"end_pc": 222,
"hash": "0x077ebfa1f9c2d20c800e0e55fa750b723269da7a7f8011c22b1b3bec9be4ea0d",
"opcodes": [
"OP_80",
"PUSH1",
"LT",
"PUSH2",
"JUMPI"
],
"start_pc": 215
},
{
"end_pc": 241,
"hash": "0x0350f3b9d4270218a0ad1b4ec46904c8ad61ffe1f7806c49e79ad3b0038b9884",
"opcodes": [
"PUSH2",
"OP_80",
"OP_83",
"SLOAD",
"DIV",
"MUL",
"OP_83",
"MSTORE",
"OP_91",
"PUSH1",
"ADD",
"OP_91",
"PUSH2",
"JUMP"
exec
/bin/bash -lc "jq 'keys' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
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-wkeusirp
succeeded in 0ms:
[
"auth",
"basic_blocks",
"callsites",
"cfg_edges",
"cfg_hash",
"dispatcher_type",
"function_entries",
"functions",
"selectors",
"sinks",
"storage",
"version"
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.detectors' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
null
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.selectors' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
[
"0x06fdde03",
"0x18160ddd",
"0x23b872dd",
"0x313ce567",
"0x54fd4d50",
"0x70a08231",
"0x95d89b41",
"0xa9059cbb",
"0xcae9ca51",
"0xdc3080f2",
"0xdd62ed3e"
]
exec
/bin/bash -lc "jq '.heuristics_summary' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
{
"create2_count": 0,
"delegatecall_count": 0,
"flags": [],
"selfdestruct_count": 0
}
exec
/bin/bash -lc "jq '.detector_findings' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
[
{
"confidence": 55,
"evidence_json": {
"eth_value_calls": 3,
"examples": [
{
"opcode": "CALL",
"pc": 833,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 901,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1050,
"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": [
"0x0000000000000000000000000000000000000004",
"0x13ec114ffdb980cdf470c45dcf45e544d15c4da6"
],
"classification": "target_varies",
"confirmed": true,
"errors": 0,
"matched_probe": null,
"sink": "CALL",
"status": "confirmed",
"target_varies": true,
"trace_id": "0x77f0cab4ff0a7a4a710f82cfe5e1f3e3a98544aa13c2bde1d91748de0f474a50",
"trace_mode": "callTracer"
}
},
{
"confidence": 60,
"evidence_json": {
"call_count": 3,
"examples": [
{
"opcode": "CALL",
"pc": 833,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 901,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1050,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
}
],
"guards_detected": [],
"untrusted_call_count": 3
},
"normalized_json": {
"sink": "CALL"
},
"severity": "high",
"title": "Untrusted CALL target/value reachable",
"validated": true,
"validation_json": {
"attempts": 1,
"call_targets": [
"0x0000000000000000000000000000000000000004",
"0x13ec114ffdb980cdf470c45dcf45e544d15c4da6"
],
"classification": "target_varies",
"confirmed": true,
"errors": 0,
"matched_probe": null,
"sink": "CALL",
"status": "confirmed",
"target_varies": true,
"trace_id": "0x77f0cab4ff0a7a4a710f82cfe5e1f3e3a98544aa13c2bde1d91748de0f474a50",
"trace_mode": "callTracer"
}
}
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.function_entries' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
[
{
"entry_pc": null,
"selector": "0x06fdde03"
},
{
"entry_pc": 599290589,
"selector": "0x18160ddd"
},
{
"entry_pc": 826074471,
"selector": "0x23b872dd"
},
{
"entry_pc": 1425886544,
"selector": "0x313ce567"
},
{
"entry_pc": 1889567281,
"selector": "0x54fd4d50"
},
{
"entry_pc": 2514000705,
"selector": "0x70a08231"
},
{
"entry_pc": 2835717307,
"selector": "0x95d89b41"
},
{
"entry_pc": 3404319313,
"selector": "0xa9059cbb"
},
{
"entry_pc": 3694166258,
"selector": "0xcae9ca51"
},
{
"entry_pc": 3714247998,
"selector": "0xdc3080f2"
},
{
"entry_pc": 994,
"selector": "0xdd62ed3e"
}
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.callsites' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
[
{
"opcode": "CALL",
"pc": 833,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 901,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1050,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
}
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.functions' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
[
{
"auth": {
"guards": []
},
"entry_pc": null,
"selector": "0x06fdde03",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 23,
"slots": [
{
"op": "SLOAD",
"pc": 156,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 228,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 248,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 307,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 320,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 389,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 434,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 505,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 708,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 599290589,
"selector": "0x18160ddd",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 23,
"slots": [
{
"op": "SLOAD",
"pc": 156,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 228,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 248,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 307,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 320,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 389,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 434,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 505,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 708,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 826074471,
"selector": "0x23b872dd",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 23,
"slots": [
{
"op": "SLOAD",
"pc": 156,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 228,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 248,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 307,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 320,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 389,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 434,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 505,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 708,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 1425886544,
"selector": "0x313ce567",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 23,
"slots": [
{
"op": "SLOAD",
"pc": 156,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 228,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 248,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 307,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 320,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 389,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 434,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 505,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 708,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 1889567281,
"selector": "0x54fd4d50",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 23,
"slots": [
{
"op": "SLOAD",
"pc": 156,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 228,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 248,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 307,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 320,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 389,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 434,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 505,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 708,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 2514000705,
"selector": "0x70a08231",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 23,
"slots": [
{
"op": "SLOAD",
"pc": 156,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 228,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 248,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 307,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 320,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 389,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 434,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 505,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 708,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 2835717307,
"selector": "0x95d89b41",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 23,
"slots": [
{
"op": "SLOAD",
"pc": 156,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 228,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 248,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 307,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 320,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 389,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 434,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 505,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 708,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3404319313,
"selector": "0xa9059cbb",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 23,
"slots": [
{
"op": "SLOAD",
"pc": 156,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 228,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 248,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 307,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 320,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 389,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 434,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 505,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 708,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3694166258,
"selector": "0xcae9ca51",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 23,
"slots": [
{
"op": "SLOAD",
"pc": 156,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 228,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 248,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 307,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 320,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 389,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 434,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 505,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 708,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 3714247998,
"selector": "0xdc3080f2",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 23,
"slots": [
{
"op": "SLOAD",
"pc": 156,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 228,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 248,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 307,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 320,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 389,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 434,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 505,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 708,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 994,
"selector": "0xdd62ed3e",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 23,
"slots": [
{
"op": "SLOAD",
"pc": 156,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 228,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 248,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 307,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 320,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 389,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 434,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 505,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 708,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
}
]
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.sinks' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
{
"call": 3,
"create": 0,
"create2": 0,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0,
"upgrade_slot_write_suspected": false
}
exec
/bin/bash -lc "jq '.analysis_artifact.artifact_json.storage' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
{
"keccak_count": 22,
"reads": 23,
"slots": [
{
"op": "SLOAD",
"pc": 156,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 228,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 248,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 307,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 320,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 389,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 434,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 505,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 708,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
exec
/bin/bash -lc "rg -n '\"pc\": (708|833|901|994|1050)|0xa9059cbb|0x23b872dd|0x54fd4d50|0xcae9ca51|0xdc3080f2' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
1656: "pc": 833,
1663: "pc": 901,
1670: "pc": 1050,
1991: "selector": "0x23b872dd"
1999: "selector": "0x54fd4d50"
2011: "selector": "0xa9059cbb"
2015: "selector": "0xcae9ca51"
2019: "selector": "0xdc3080f2"
2084: "pc": 708,
2148: "pc": 708,
2160: "selector": "0x23b872dd",
2212: "pc": 708,
2276: "pc": 708,
2288: "selector": "0x54fd4d50",
2340: "pc": 708,
2404: "pc": 708,
2468: "pc": 708,
2480: "selector": "0xa9059cbb",
2532: "pc": 708,
2544: "selector": "0xcae9ca51",
2596: "pc": 708,
2608: "selector": "0xdc3080f2",
2660: "pc": 708,
2724: "pc": 708,
2735: "0x23b872dd",
2737: "0x54fd4d50",
2740: "0xa9059cbb",
2741: "0xcae9ca51",
2742: "0xdc3080f2",
2800: "pc": 708,
3160: "from": "fn:0x23b872dd",
3170: "from": "fn:0x54fd4d50",
3185: "from": "fn:0xa9059cbb",
3190: "from": "fn:0xcae9ca51",
3195: "from": "fn:0xdc3080f2",
3610: "pc": 833,
3616: "pc": 901,
3622: "pc": 1050,
3643: "id": "fn:0x23b872dd",
3644: "selector": "0x23b872dd",
3655: "id": "fn:0x54fd4d50",
3656: "selector": "0x54fd4d50",
3673: "id": "fn:0xa9059cbb",
3674: "selector": "0xa9059cbb",
3679: "id": "fn:0xcae9ca51",
3680: "selector": "0xcae9ca51",
3685: "id": "fn:0xdc3080f2",
3686: "selector": "0xdc3080f2",
3710: "pc": 833,
3717: "pc": 901,
3724: "pc": 1050,
3763: "pc": 833,
3770: "pc": 901,
3777: "pc": 1050,
exec
/bin/bash -lc "jq '.artifact | keys' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
[
"codehash",
"compiler_json",
"implementation_address",
"is_proxy",
"runtime_bytecode",
"verified_source"
]
exec
/bin/bash -lc "jq '.capability_graph | keys' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
[
"address",
"block_number",
"chain_id",
"codehash",
"created_at",
"graph_hash",
"graph_json",
"id",
"updated_at",
"version"
]
exec
/bin/bash -lc "jq '.analysis_run | keys' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
[
"address",
"block_number",
"chain_id",
"child_links",
"created_at",
"id",
"parent_links",
"status",
"updated_at"
]
exec
/bin/bash -lc "jq '.artifact | {is_proxy, implementation_address, verified_source, compiler_json}' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
{
"is_proxy": false,
"implementation_address": null,
"verified_source": false,
"compiler_json": {
"etherscan": {
"skipped": true
}
}
}
exec
/bin/bash -lc "jq '.capability_graph.graph_json' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
{
"edges": [
{
"from": "bb:0",
"to": "bb:141",
"type": "control_flow"
},
{
"from": "bb:0",
"to": "bb:11",
"type": "control_flow_fallthrough"
},
{
"from": "bb:11",
"to": "bb:149",
"type": "control_flow"
},
{
"from": "bb:11",
"to": "bb:31",
"type": "control_flow_fallthrough"
},
{
"from": "bb:31",
"to": "bb:242",
"type": "control_flow"
},
{
"from": "bb:31",
"to": "bb:42",
"type": "control_flow_fallthrough"
},
{
"from": "bb:42",
"to": "bb:251",
"type": "control_flow"
},
{
"from": "bb:42",
"to": "bb:53",
"type": "control_flow_fallthrough"
},
{
"from": "bb:53",
"to": "bb:301",
"type": "control_flow"
},
{
"from": "bb:53",
"to": "bb:64",
"type": "control_flow_fallthrough"
},
{
"from": "bb:64",
"to": "bb:313",
"type": "control_flow"
},
{
"from": "bb:64",
"to": "bb:75",
"type": "control_flow_fallthrough"
},
{
"from": "bb:75",
"to": "bb:403",
"type": "control_flow"
},
{
"from": "bb:75",
"to": "bb:86",
"type": "control_flow_fallthrough"
},
{
"from": "bb:86",
"to": "bb:427",
"type": "control_flow"
},
{
"from": "bb:86",
"to": "bb:97",
"type": "control_flow_fallthrough"
},
{
"from": "bb:97",
"to": "bb:519",
"type": "control_flow"
},
{
"from": "bb:97",
"to": "bb:108",
"type": "control_flow_fallthrough"
},
{
"from": "bb:108",
"to": "bb:566",
"type": "control_flow"
},
{
"from": "bb:108",
"to": "bb:119",
"type": "control_flow_fallthrough"
},
{
"from": "bb:119",
"to": "bb:920",
"type": "control_flow"
},
{
"from": "bb:119",
"to": "bb:130",
"type": "control_flow_fallthrough"
},
{
"from": "bb:130",
"to": "bb:957",
"type": "control_flow"
},
{
"from": "bb:130",
"to": "bb:141",
"type": "control_flow_fallthrough"
},
{
"from": "bb:149",
"to": "bb:1537",
"type": "control_flow"
},
{
"from": "bb:149",
"to": "bb:215",
"type": "control_flow_fallthrough"
},
{
"from": "bb:215",
"to": "bb:1494",
"type": "control_flow"
},
{
"from": "bb:215",
"to": "bb:223",
"type": "control_flow_fallthrough"
},
{
"from": "bb:223",
"to": "bb:1537",
"type": "control_flow"
},
{
"from": "bb:251",
"to": "bb:1134",
"type": "control_flow"
},
{
"from": "bb:251",
"to": "bb:297",
"type": "control_flow_fallthrough"
},
{
"from": "bb:313",
"to": "bb:1537",
"type": "control_flow"
},
{
"from": "bb:313",
"to": "bb:376",
"type": "control_flow_fallthrough"
},
{
"from": "bb:376",
"to": "bb:1494",
"type": "control_flow"
},
{
"from": "bb:376",
"to": "bb:384",
"type": "control_flow_fallthrough"
},
{
"from": "bb:384",
"to": "bb:1537",
"type": "control_flow"
},
{
"from": "bb:427",
"to": "bb:1537",
"type": "control_flow"
},
{
"from": "bb:427",
"to": "bb:492",
"type": "control_flow_fallthrough"
},
{
"from": "bb:492",
"to": "bb:1494",
"type": "control_flow"
},
{
"from": "bb:492",
"to": "bb:500",
"type": "control_flow_fallthrough"
},
{
"from": "bb:500",
"to": "bb:1537",
"type": "control_flow"
},
{
"from": "bb:519",
"to": "bb:1545",
"type": "control_flow"
},
{
"from": "bb:519",
"to": "bb:562",
"type": "control_flow_fallthrough"
},
{
"from": "bb:566",
"to": "bb:875",
"type": "control_flow"
},
{
"from": "bb:566",
"to": "bb:850",
"type": "control_flow_fallthrough"
},
{
"from": "bb:850",
"to": "bb:875",
"type": "control_flow_fallthrough"
},
{
"from": "bb:875",
"to": "bb:907",
"type": "control_flow_fallthrough"
},
{
"from": "bb:996",
"to": "bb:1092",
"type": "control_flow"
},
{
"from": "bb:996",
"to": "bb:1067",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1067",
"to": "bb:1092",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1134",
"to": "bb:1165",
"type": "control_flow"
},
{
"from": "bb:1134",
"to": "bb:1161",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1165",
"to": "bb:1239",
"type": "control_flow"
},
{
"from": "bb:1165",
"to": "bb:1235",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1494",
"to": "bb:1508",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1508",
"to": "bb:1508",
"type": "control_flow"
},
{
"from": "bb:1508",
"to": "bb:1528",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1528",
"to": "bb:1537",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1545",
"to": "bb:1579",
"type": "control_flow"
},
{
"from": "bb:1545",
"to": "bb:1575",
"type": "control_flow_fallthrough"
},
{
"from": "fn:0x18160ddd",
"to": "bb:599290589",
"type": "entry"
},
{
"from": "fn:0x23b872dd",
"to": "bb:826074471",
"type": "entry"
},
{
"from": "fn:0x313ce567",
"to": "bb:1425886544",
"type": "entry"
},
{
"from": "fn:0x54fd4d50",
"to": "bb:1889567281",
"type": "entry"
},
{
"from": "fn:0x70a08231",
"to": "bb:2514000705",
"type": "entry"
},
{
"from": "fn:0x95d89b41",
"to": "bb:2835717307",
"type": "entry"
},
{
"from": "fn:0xa9059cbb",
"to": "bb:3404319313",
"type": "entry"
},
{
"from": "fn:0xcae9ca51",
"to": "bb:3694166258",
"type": "entry"
},
{
"from": "fn:0xdc3080f2",
"to": "bb:3714247998",
"type": "entry"
},
{
"from": "fn:0xdd62ed3e",
"to": "bb:994",
"type": "entry"
},
{
"from": "bb:566",
"to": "call:833",
"type": "contains"
},
{
"from": "call:833",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:875",
"to": "call:901",
"type": "contains"
},
{
"from": "call:901",
"to": "sink:call",
"type": "capability"
},
{
"from": "bb:996",
"to": "call:1050",
"type": "contains"
},
{
"from": "call:1050",
"to": "sink:call",
"type": "capability"
}
],
"nodes": [
{
"end_pc": 10,
"hash": "0xc590080b273074d852d07d86387bb692518eb6057284cadca88ac84fde6f0664",
"id": "bb:0",
"start_pc": 0,
"type": "basic_block"
},
{
"end_pc": 30,
"hash": "0x4db61c68c65e3aafb60d5980f9dbe93dfd98998da1cba601a06d76a8f1510248",
"id": "bb:11",
"start_pc": 11,
"type": "basic_block"
},
{
"end_pc": 41,
"hash": "0x12cc4e8ed2fdd30122dfac48b782310710c9179137ddfc82c887c065a801b538",
"id": "bb:31",
"start_pc": 31,
"type": "basic_block"
},
{
"end_pc": 52,
"hash": "0x4c296856393777328c11adf4a88cd725c352e0ff8b748e2cbe77f7d082a1d73c",
"id": "bb:42",
"start_pc": 42,
"type": "basic_block"
},
{
"end_pc": 63,
"hash": "0x1fc51f3d6be0da89bc6938488db56fcc2cefd162968e4242adf170575f96f1a2",
"id": "bb:53",
"start_pc": 53,
"type": "basic_block"
},
{
"end_pc": 74,
"hash": "0xe693856b391bfd2874967602ab2a71ee1552f8ffd147a93a96273594bde47bc0",
"id": "bb:64",
"start_pc": 64,
"type": "basic_block"
},
{
"end_pc": 85,
"hash": "0x273f47041a78985996d31a122316d7cd4d00c9a6468a62dce547795791ce5ce8",
"id": "bb:75",
"start_pc": 75,
"type": "basic_block"
},
{
"end_pc": 96,
"hash": "0x02cc38d89e9aedd0cb62694c3c2f76074e6e3c7faddb9f6851526dbdd16d7198",
"id": "bb:86",
"start_pc": 86,
"type": "basic_block"
},
{
"end_pc": 107,
"hash": "0x2e7d94f9aab0358566009196c567ce053776d6a253790ce0b5ab068301731ed9",
"id": "bb:97",
"start_pc": 97,
"type": "basic_block"
},
{
"end_pc": 118,
"hash": "0xee41d2f8eb040265f75e671bd78e34ad061d03f766f70446f6cc8d3a89530e7d",
"id": "bb:108",
"start_pc": 108,
"type": "basic_block"
},
{
"end_pc": 129,
"hash": "0x6629e4f27300c3d03a41db89f956d36ff6308c4477dc9431c2a7df939b286b1c",
"id": "bb:119",
"start_pc": 119,
"type": "basic_block"
},
{
"end_pc": 140,
"hash": "0x7568c9f5f6718e3d8dea4b1f67093ecabaab4fac1b5cac7859a1b89bcc5c4349",
"id": "bb:130",
"start_pc": 130,
"type": "basic_block"
},
{
"end_pc": 148,
"hash": "0x01c9cbeb31e8809b6ebc4aaaa3fa932054c629171654dec7c3a5870ef8f00be3",
"id": "bb:141",
"start_pc": 141,
"type": "basic_block"
},
{
"end_pc": 214,
"hash": "0x52861e116eb55f2549b78de50da53428f9fdadcfcca9d04a812677c13dba7608",
"id": "bb:149",
"start_pc": 149,
"type": "basic_block"
},
{
"end_pc": 222,
"hash": "0x077ebfa1f9c2d20c800e0e55fa750b723269da7a7f8011c22b1b3bec9be4ea0d",
"id": "bb:215",
"start_pc": 215,
"type": "basic_block"
},
{
"end_pc": 241,
"hash": "0x0350f3b9d4270218a0ad1b4ec46904c8ad61ffe1f7806c49e79ad3b0038b9884",
"id": "bb:223",
"start_pc": 223,
"type": "basic_block"
},
{
"end_pc": 250,
"hash": "0x3a3669e009b49c0068eabc67adae73ab5360d61101f63d22efd34c572eabf879",
"id": "bb:242",
"start_pc": 242,
"type": "basic_block"
},
{
"end_pc": 296,
"hash": "0xbd781e67b3b061d9b613393fb1cb1db1dc593270c907049d810ef540f6d96639",
"id": "bb:251",
"start_pc": 251,
"type": "basic_block"
},
{
"end_pc": 300,
"hash": "0xd7fd16f2f78e22206387c4b4c199cc3784df86884d46b4e8dd4e28c06e9c719b",
"id": "bb:297",
"start_pc": 297,
"type": "basic_block"
},
{
"end_pc": 312,
"hash": "0x54cdaef02fe32a41536f7b77cc4b8e1e29196b55e9e9c5c0b363a6a6aa9c99a4",
"id": "bb:301",
"start_pc": 301,
"type": "basic_block"
},
{
"end_pc": 375,
"hash": "0xcb7f9de1a9aff3f6cd792aaac249e4b9470b36ed02df379d5e345d300245e40a",
"id": "bb:313",
"start_pc": 313,
"type": "basic_block"
},
{
"end_pc": 383,
"hash": "0xe40ef11fe8c31d3583d5d5d783e1716b0eccbf0b4445f3c93188999b56a32696",
"id": "bb:376",
"start_pc": 376,
"type": "basic_block"
},
{
"end_pc": 402,
"hash": "0x4cc9d9db2caa4a98d8c6e48756c9b479f57aec858fca5af75986a53bd4fc2d72",
"id": "bb:384",
"start_pc": 384,
"type": "basic_block"
},
{
"end_pc": 426,
"hash": "0x6472e63b2c46d825395a5e8969cb8973555892225ea26d88bb52e23180f24c8f",
"id": "bb:403",
"start_pc": 403,
"type": "basic_block"
},
{
"end_pc": 491,
"hash": "0x09b2b05782250da3b10c046da1b8d38a77c2a39dd1cee30c8578f1394e13f65b",
"id": "bb:427",
"start_pc": 427,
"type": "basic_block"
},
{
"end_pc": 499,
"hash": "0xdf48cc08ba77aa9249942224308dcbe30f5f035da2a00bc97cdb4523e620ebd1",
"id": "bb:492",
"start_pc": 492,
"type": "basic_block"
},
{
"end_pc": 518,
"hash": "0x70c8ab4d7c40a93cd4dc864a4cad39f60d5e8536d04cd58f87aad62a3779c313",
"id": "bb:500",
"start_pc": 500,
"type": "basic_block"
},
{
"end_pc": 561,
"hash": "0xaeedd8bdcc909d20d5f367dad7524f2440382a817922adc39693e1012e358fd7",
"id": "bb:519",
"start_pc": 519,
"type": "basic_block"
},
{
"end_pc": 565,
"hash": "0xa4a4ae061ef386f7d7486aaf3298058f26a9f17e111d4eb1ba437f6d2a947101",
"id": "bb:562",
"start_pc": 562,
"type": "basic_block"
},
{
"end_pc": 849,
"hash": "0x63fec82cc0f41e798d0c39011f364e5f0e1428e47413786caf13f0a0fb1f1a52",
"id": "bb:566",
"start_pc": 566,
"type": "basic_block"
},
{
"end_pc": 874,
"hash": "0x17f7deb342002d7b4a616129a837954148eb0171e6fa8c57aac90d77236f888b",
"id": "bb:850",
"start_pc": 850,
"type": "basic_block"
},
{
"end_pc": 906,
"hash": "0x84229ca8d3771a6156324b47011bcdb0a683777a4d2a1f266849cf7ca40d8a04",
"id": "bb:875",
"start_pc": 875,
"type": "basic_block"
},
{
"end_pc": 919,
"hash": "0xfa6321d1a087cb91c03b5652829eb3bd5f4d3c5a25f3637a26c05f6fbe498a43",
"id": "bb:907",
"start_pc": 907,
"type": "basic_block"
},
{
"end_pc": 956,
"hash": "0x7e02ca16c778428ad3d0810dfc23c433b033732b606e505f38f6145112c184a8",
"id": "bb:920",
"start_pc": 920,
"type": "basic_block"
},
{
"end_pc": 993,
"hash": "0x042c1afb96f235fc54f29cf1b2f30ed811fb81afeff6e474f6e7b29d53f24c7e",
"id": "bb:957",
"start_pc": 957,
"type": "basic_block"
},
{
"end_pc": 995,
"hash": "0x0f692128e76a1124821e667bb073ac313d488f7fcdbc8d9fbbf13d26ceb31f0b",
"id": "bb:994",
"start_pc": 994,
"type": "basic_block"
},
{
"end_pc": 1066,
"hash": "0x9aa34f2fb0626cb939c113c9be278794f8c988658f24ca2507bb497607223c81",
"id": "bb:996",
"start_pc": 996,
"type": "basic_block"
},
{
"end_pc": 1091,
"hash": "0xfa2051631966675ac33e4879826a9d4b2735cb21b292a65e73b1461d671f1a28",
"id": "bb:1067",
"start_pc": 1067,
"type": "basic_block"
},
{
"end_pc": 1105,
"hash": "0xed2e9a49cde9ace4b4babfac1c4ae1c15310169c3a36e4ec83145a57a85f40a9",
"id": "bb:1092",
"start_pc": 1092,
"type": "basic_block"
},
{
"end_pc": 1123,
"hash": "0xa96f242abd52ace13a743ee9f25b502cd9acd559a9fab18eae38fca805ee16e2",
"id": "bb:1106",
"start_pc": 1106,
"type": "basic_block"
},
{
"end_pc": 1133,
"hash": "0x773879341b32f5b6026d79ed82eef4857b55f8e358550abf4f6fb17e0034783d",
"id": "bb:1124",
"start_pc": 1124,
"type": "basic_block"
},
{
"end_pc": 1160,
"hash": "0x27b02c7a508c8ef9b5dafce2cb47cfae33cae0493ef5eaa29816ab8355675871",
"id": "bb:1134",
"start_pc": 1134,
"type": "basic_block"
},
{
"end_pc": 1164,
"hash": "0xb870c2451c872330e47a2f27febb9f221e0d95bb7acd53fea95092ef4a1fef81",
"id": "bb:1161",
"start_pc": 1161,
"type": "basic_block"
},
{
"end_pc": 1234,
"hash": "0x6f1fe87986557c612b30fbc58565f6a70d96d26291dd484dd3c7f186f6e340f4",
"id": "bb:1165",
"start_pc": 1165,
"type": "basic_block"
},
{
"end_pc": 1238,
"hash": "0xa2322d0f620061258f81b0badc511a723277818dc50ef6a3692e1698c4df3bb4",
"id": "bb:1235",
"start_pc": 1235,
"type": "basic_block"
},
{
"end_pc": 1493,
"hash": "0x8aabb90779c205ca802c356bcdb37e5a64a765a37c42f5f51ff387dcd5c064d6",
"id": "bb:1239",
"start_pc": 1239,
"type": "basic_block"
},
{
"end_pc": 1507,
"hash": "0xe29364775856bee6925d7cf64e9af2d323980a88adb4aa11164c677966a022c3",
"id": "bb:1494",
"start_pc": 1494,
"type": "basic_block"
},
{
"end_pc": 1527,
"hash": "0x0244fd9037d4cd28697c125e9aec828866398d6055fb6700decd7e10d4f34b2b",
"id": "bb:1508",
"start_pc": 1508,
"type": "basic_block"
},
{
"end_pc": 1536,
"hash": "0xd09b7139c6f2689a9b6a470591300d1369859ae005bd951fd4d53dffb3def30c",
"id": "bb:1528",
"start_pc": 1528,
"type": "basic_block"
},
{
"end_pc": 1544,
"hash": "0x11b76a610eeb420f60cc87d7813cf316d452a9d3dad9447001e4465884d0982c",
"id": "bb:1537",
"start_pc": 1537,
"type": "basic_block"
},
{
"end_pc": 1574,
"hash": "0x9b59d5dfbde39063b397638d02f908e20875b6ae1a1ece07f9e9d3862df39956",
"id": "bb:1545",
"start_pc": 1545,
"type": "basic_block"
},
{
"end_pc": 1578,
"hash": "0x5e5705eaaa471c747e31d32d521d9df1abdd5d619c03e58b86d0ebec630efb96",
"id": "bb:1575",
"start_pc": 1575,
"type": "basic_block"
},
{
"end_pc": 1751,
"hash": "0x70a3db40fa43d2ecf7b79f52905610ddae82b1a222f938ab41c073593f982940",
"id": "bb:1579",
"start_pc": 1579,
"type": "basic_block"
},
{
"id": "call:833",
"opcode": "CALL",
"pc": 833,
"type": "callsite"
},
{
"id": "call:901",
"opcode": "CALL",
"pc": 901,
"type": "callsite"
},
{
"id": "call:1050",
"opcode": "CALL",
"pc": 1050,
"type": "callsite"
},
{
"id": "sink:call",
"type": "sink"
},
{
"entry_pc": null,
"id": "fn:0x06fdde03",
"selector": "0x06fdde03",
"type": "function"
},
{
"entry_pc": 599290589,
"id": "fn:0x18160ddd",
"selector": "0x18160ddd",
"type": "function"
},
{
"entry_pc": 826074471,
"id": "fn:0x23b872dd",
"selector": "0x23b872dd",
"type": "function"
},
{
"entry_pc": 1425886544,
"id": "fn:0x313ce567",
"selector": "0x313ce567",
"type": "function"
},
{
"entry_pc": 1889567281,
"id": "fn:0x54fd4d50",
"selector": "0x54fd4d50",
"type": "function"
},
{
"entry_pc": 2514000705,
"id": "fn:0x70a08231",
"selector": "0x70a08231",
"type": "function"
},
{
"entry_pc": 2835717307,
"id": "fn:0x95d89b41",
"selector": "0x95d89b41",
"type": "function"
},
{
"entry_pc": 3404319313,
"id": "fn:0xa9059cbb",
"selector": "0xa9059cbb",
"type": "function"
},
{
"entry_pc": 3694166258,
"id": "fn:0xcae9ca51",
"selector": "0xcae9ca51",
"type": "function"
},
{
"entry_pc": 3714247998,
"id": "fn:0xdc3080f2",
"selector": "0xdc3080f2",
"type": "function"
},
{
"entry_pc": 994,
"id": "fn:0xdd62ed3e",
"selector": "0xdd62ed3e",
"type": "function"
}
],
"version": "capability_graph_v1"
}
exec
/bin/bash -lc "jq -r '.artifact.runtime_bytecode' BYTECODE_BUNDLE.json | awk '{print length}'" in /tmp/codex-wkeusirp
succeeded in 0ms:
1
3519
15
17
15
20
1
exec
/bin/bash -lc "jq -r '.artifact.runtime_bytecode' BYTECODE_BUNDLE.json | cut -c1-240" in /tmp/codex-wkeusirp
succeeded in 0ms:
{
"full": "0x6060604052361561008d5760e060020a600035046306fdde03811461009557806318160ddd146100f257806323b872dd146100fb578063313ce5671461012d57806354fd4d501461013957806370a082311461019357806395d89b41146101ab578063a9059cbb14610207578063cae9ca5
"head": null,
"length": 3506,
"tail": null,
"truncated": false
}
exec
/bin/bash -lc "jq -r '.artifact.runtime_bytecode' BYTECODE_BUNDLE.json | rev | cut -c1-240 | rev" in /tmp/codex-wkeusirp
succeeded in 0ms:
{
600084600160a060020a0316815260200190815260200160002060008282825054019250508190555081600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505056",
"head": null,
"length": 3506,
"tail": null,
"truncated": false
}
exec
/bin/bash -lc "sed -n '1960,2060p' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
"type": "control_flow_fallthrough"
},
{
"from": "bb:1528",
"to": "bb:1537",
"type": "control_flow_fallthrough"
},
{
"from": "bb:1545",
"to": "bb:1579",
"type": "control_flow"
},
{
"from": "bb:1545",
"to": "bb:1575",
"type": "control_flow_fallthrough"
}
],
"cfg_hash": "0x2d7113878c42918c536d45905e61b51cbcc7cf978f1f0deb30c3227f65d134dd",
"dispatcher_type": "selector_jump_table",
"function_entries": [
{
"entry_pc": null,
"selector": "0x06fdde03"
},
{
"entry_pc": 599290589,
"selector": "0x18160ddd"
},
{
"entry_pc": 826074471,
"selector": "0x23b872dd"
},
{
"entry_pc": 1425886544,
"selector": "0x313ce567"
},
{
"entry_pc": 1889567281,
"selector": "0x54fd4d50"
},
{
"entry_pc": 2514000705,
"selector": "0x70a08231"
},
{
"entry_pc": 2835717307,
"selector": "0x95d89b41"
},
{
"entry_pc": 3404319313,
"selector": "0xa9059cbb"
},
{
"entry_pc": 3694166258,
"selector": "0xcae9ca51"
},
{
"entry_pc": 3714247998,
"selector": "0xdc3080f2"
},
{
"entry_pc": 994,
"selector": "0xdd62ed3e"
}
],
"functions": [
{
"auth": {
"guards": []
},
"entry_pc": null,
"selector": "0x06fdde03",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 23,
"slots": [
{
"op": "SLOAD",
"pc": 156,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 228,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 248,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 307,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
exec
/bin/bash -lc "sed -n '2070,2168p' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 434,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 505,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 708,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 599290589,
"selector": "0x18160ddd",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 23,
"slots": [
{
"op": "SLOAD",
"pc": 156,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
{
"op": "SLOAD",
"pc": 228,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 248,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
},
{
"op": "SLOAD",
"pc": 307,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
},
{
"op": "SLOAD",
"pc": 320,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000002"
},
{
"op": "SLOAD",
"pc": 389,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SLOAD",
"pc": 434,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000001"
},
{
"op": "SLOAD",
"pc": 505,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
},
{
"op": "SSTORE",
"pc": 708,
"slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"writes": 6
}
},
{
"auth": {
"guards": []
},
"entry_pc": 826074471,
"selector": "0x23b872dd",
"sinks": {
"call": 3,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 0
},
"storage": {
"reads": 23,
exec
/bin/bash -lc "sed -n '3150,3210p' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
"from": "bb:1545",
"to": "bb:1575",
"type": "control_flow_fallthrough"
},
{
"from": "fn:0x18160ddd",
"to": "bb:599290589",
"type": "entry"
},
{
"from": "fn:0x23b872dd",
"to": "bb:826074471",
"type": "entry"
},
{
"from": "fn:0x313ce567",
"to": "bb:1425886544",
"type": "entry"
},
{
"from": "fn:0x54fd4d50",
"to": "bb:1889567281",
"type": "entry"
},
{
"from": "fn:0x70a08231",
"to": "bb:2514000705",
"type": "entry"
},
{
"from": "fn:0x95d89b41",
"to": "bb:2835717307",
"type": "entry"
},
{
"from": "fn:0xa9059cbb",
"to": "bb:3404319313",
"type": "entry"
},
{
"from": "fn:0xcae9ca51",
"to": "bb:3694166258",
"type": "entry"
},
{
"from": "fn:0xdc3080f2",
"to": "bb:3714247998",
"type": "entry"
},
{
"from": "fn:0xdd62ed3e",
"to": "bb:994",
"type": "entry"
},
{
"from": "bb:566",
"to": "call:833",
"type": "contains"
},
{
"from": "call:833",
exec
/bin/bash -lc "sed -n '3600,3785p' BYTECODE_BUNDLE.json" in /tmp/codex-wkeusirp
succeeded in 0ms:
{
"end_pc": 1751,
"hash": "0x70a3db40fa43d2ecf7b79f52905610ddae82b1a222f938ab41c073593f982940",
"id": "bb:1579",
"start_pc": 1579,
"type": "basic_block"
},
{
"id": "call:833",
"opcode": "CALL",
"pc": 833,
"type": "callsite"
},
{
"id": "call:901",
"opcode": "CALL",
"pc": 901,
"type": "callsite"
},
{
"id": "call:1050",
"opcode": "CALL",
"pc": 1050,
"type": "callsite"
},
{
"id": "sink:call",
"type": "sink"
},
{
"entry_pc": null,
"id": "fn:0x06fdde03",
"selector": "0x06fdde03",
"type": "function"
},
{
"entry_pc": 599290589,
"id": "fn:0x18160ddd",
"selector": "0x18160ddd",
"type": "function"
},
{
"entry_pc": 826074471,
"id": "fn:0x23b872dd",
"selector": "0x23b872dd",
"type": "function"
},
{
"entry_pc": 1425886544,
"id": "fn:0x313ce567",
"selector": "0x313ce567",
"type": "function"
},
{
"entry_pc": 1889567281,
"id": "fn:0x54fd4d50",
"selector": "0x54fd4d50",
"type": "function"
},
{
"entry_pc": 2514000705,
"id": "fn:0x70a08231",
"selector": "0x70a08231",
"type": "function"
},
{
"entry_pc": 2835717307,
"id": "fn:0x95d89b41",
"selector": "0x95d89b41",
"type": "function"
},
{
"entry_pc": 3404319313,
"id": "fn:0xa9059cbb",
"selector": "0xa9059cbb",
"type": "function"
},
{
"entry_pc": 3694166258,
"id": "fn:0xcae9ca51",
"selector": "0xcae9ca51",
"type": "function"
},
{
"entry_pc": 3714247998,
"id": "fn:0xdc3080f2",
"selector": "0xdc3080f2",
"type": "function"
},
{
"entry_pc": 994,
"id": "fn:0xdd62ed3e",
"selector": "0xdd62ed3e",
"type": "function"
}
],
"version": "capability_graph_v1"
},
"id": 2664,
"updated_at": "2026-04-04T19:59:07.000000Z",
"version": "capability_graph_v1"
},
"detector_findings": [
{
"confidence": 55,
"evidence_json": {
"eth_value_calls": 3,
"examples": [
{
"opcode": "CALL",
"pc": 833,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 901,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1050,
"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": [
"0x0000000000000000000000000000000000000004",
"0x13ec114ffdb980cdf470c45dcf45e544d15c4da6"
],
"classification": "target_varies",
"confirmed": true,
"errors": 0,
"matched_probe": null,
"sink": "CALL",
"status": "confirmed",
"target_varies": true,
"trace_id": "0x77f0cab4ff0a7a4a710f82cfe5e1f3e3a98544aa13c2bde1d91748de0f474a50",
"trace_mode": "callTracer"
}
},
{
"confidence": 60,
"evidence_json": {
"call_count": 3,
"examples": [
{
"opcode": "CALL",
"pc": 833,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 901,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
},
{
"opcode": "CALL",
"pc": 1050,
"returndata_checked": null,
"target_expression_category": "computed",
"value_expression_category": "computed"
}
],
"guards_detected": [],
"untrusted_call_count": 3
},
exec
js_repl in /tmp/codex-wkeusirp
succeeded in 104ms:
bytecode length 1752
[
{
"pc": 560,
"op": "MULMOD"
},
{
"pc": 561,
"op": "JUMPI"
},
{
"pc": 562,
"op": "PUSH2",
"arg": "0x0002"
},
{
"pc": 565,
"op": "JUMP"
},
{
"pc": 566,
"op": "JUMPDEST"
},
{
"pc": 567,
"op": "PUSH1",
"arg": "0x80"
},
{
"pc": 569,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 571,
"op": "PUSH1",
"arg": "0x44"
},
{
"pc": 573,
"op": "CALLDATALOAD"
},
{
"pc": 574,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 576,
"op": "DUP2"
},
{
"pc": 577,
"op": "DUP2"
},
{
"pc": 578,
"op": "ADD"
},
{
"pc": 579,
"op": "CALLDATALOAD"
},
{
"pc": 580,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 582,
"op": "DUP2"
},
{
"pc": 583,
"op": "ADD"
},
{
"pc": 584,
"op": "DUP5"
},
{
"pc": 585,
"op": "SWAP1"
},
{
"pc": 586,
"op": "DIV"
},
{
"pc": 587,
"op": "SWAP1"
},
{
"pc": 588,
"op": "SWAP4"
},
{
"pc": 589,
"op": "MUL"
},
{
"pc": 590,
"op": "DUP5"
},
{
"pc": 591,
"op": "ADD"
},
{
"pc": 592,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 594,
"op": "MSTORE"
},
{
"pc": 595,
"op": "PUSH1",
"arg": "0x60"
},
{
"pc": 597,
"op": "DUP4"
},
{
"pc": 598,
"op": "DUP2"
},
{
"pc": 599,
"op": "MSTORE"
},
{
"pc": 600,
"op": "PUSH2",
"arg": "0x0452"
},
{
"pc": 603,
"op": "SWAP5"
},
{
"pc": 604,
"op": "DUP3"
},
{
"pc": 605,
"op": "CALLDATALOAD"
},
{
"pc": 606,
"op": "SWAP5"
},
{
"pc": 607,
"op": "PUSH1",
"arg": "0x24"
},
{
"pc": 609,
"op": "DUP1"
},
{
"pc": 610,
"op": "CALLDATALOAD"
},
{
"pc": 611,
"op": "SWAP6"
},
{
"pc": 612,
"op": "PUSH1",
"arg": "0x64"
},
{
"pc": 614,
"op": "SWAP5"
},
{
"pc": 615,
"op": "SWAP4"
},
{
"pc": 616,
"op": "SWAP2"
},
{
"pc": 617,
"op": "ADD"
},
{
"pc": 618,
"op": "SWAP2"
},
{
"pc": 619,
"op": "SWAP1"
},
{
"pc": 620,
"op": "DUP2"
},
{
"pc": 621,
"op": "SWAP1"
},
{
"pc": 622,
"op": "DUP4"
},
{
"pc": 623,
"op": "DUP3"
},
{
"pc": 624,
"op": "DUP1"
},
{
"pc": 625,
"op": "DUP3"
},
{
"pc": 626,
"op": "DUP5"
},
{
"pc": 627,
"op": "CALLDATACOPY"
},
{
"pc": 628,
"op": "POP"
},
{
"pc": 629,
"op": "SWAP5"
},
{
"pc": 630,
"op": "SWAP7"
},
{
"pc": 631,
"op": "POP"
},
{
"pc": 632,
"op": "POP"
},
{
"pc": 633,
"op": "POP"
},
{
"pc": 634,
"op": "POP"
},
{
"pc": 635,
"op": "POP"
},
{
"pc": 636,
"op": "POP"
},
{
"pc": 637,
"op": "POP"
},
{
"pc": 638,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 640,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 642,
"op": "DUP4"
},
{
"pc": 643,
"op": "PUSH1",
"arg": "0x06"
},
{
"pc": 645,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 647,
"op": "POP"
},
{
"pc": 648,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 650,
"op": "CALLER"
},
{
"pc": 651,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 653,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 655,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 657,
"op": "EXP"
},
{
"pc": 658,
"op": "SUB"
},
{
"pc": 659,
"op": "AND"
},
{
"pc": 660,
"op": "DUP2"
},
{
"pc": 661,
"op": "MSTORE"
},
{
"pc": 662,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 664,
"op": "ADD"
},
{
"pc": 665,
"op": "SWAP1"
},
{
"pc": 666,
"op": "DUP2"
},
{
"pc": 667,
"op": "MSTORE"
},
{
"pc": 668,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 670,
"op": "ADD"
},
{
"pc": 671,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 673,
"op": "SHA3"
},
{
"pc": 674,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 676,
"op": "POP"
},
{
"pc": 677,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 679,
"op": "DUP8"
},
{
"pc": 680,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 682,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 684,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 686,
"op": "EXP"
},
{
"pc": 687,
"op": "SUB"
},
{
"pc": 688,
"op": "AND"
},
{
"pc": 689,
"op": "DUP2"
},
{
"pc": 690,
"op": "MSTORE"
},
{
"pc": 691,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 693,
"op": "ADD"
},
{
"pc": 694,
"op": "SWAP1"
},
{
"pc": 695,
"op": "DUP2"
},
{
"pc": 696,
"op": "MSTORE"
},
{
"pc": 697,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 699,
"op": "ADD"
},
{
"pc": 700,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 702,
"op": "SHA3"
},
{
"pc": 703,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 705,
"op": "POP"
},
{
"pc": 706,
"op": "DUP2"
},
{
"pc": 707,
"op": "SWAP1"
},
{
"pc": 708,
"op": "SSTORE"
},
{
"pc": 709,
"op": "POP"
},
{
"pc": 710,
"op": "DUP5"
},
{
"pc": 711,
"op": "SWAP1"
},
{
"pc": 712,
"op": "POP"
},
{
"pc": 713,
"op": "DUP1"
},
{
"pc": 714,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 716,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 718,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 720,
"op": "EXP"
},
{
"pc": 721,
"op": "SUB"
},
{
"pc": 722,
"op": "AND"
},
{
"pc": 723,
"op": "PUSH4",
"arg": "0x8f4ffcb1"
},
{
"pc": 728,
"op": "CALLER"
},
{
"pc": 729,
"op": "DUP7"
},
{
"pc": 730,
"op": "ADDRESS"
},
{
"pc": 731,
"op": "DUP8"
},
{
"pc": 732,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 734,
"op": "MLOAD"
},
{
"pc": 735,
"op": "DUP6"
},
{
"pc": 736,
"op": "PUSH1",
"arg": "0xe0"
},
{
"pc": 738,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 740,
"op": "EXP"
},
{
"pc": 741,
"op": "MUL"
},
{
"pc": 742,
"op": "DUP2"
},
{
"pc": 743,
"op": "MSTORE"
},
{
"pc": 744,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 746,
"op": "ADD"
},
{
"pc": 747,
"op": "DUP1"
},
{
"pc": 748,
"op": "DUP6"
},
{
"pc": 749,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 751,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 753,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 755,
"op": "EXP"
},
{
"pc": 756,
"op": "SUB"
},
{
"pc": 757,
"op": "AND"
},
{
"pc": 758,
"op": "DUP2"
},
{
"pc": 759,
"op": "MSTORE"
},
{
"pc": 760,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 762,
"op": "ADD"
},
{
"pc": 763,
"op": "DUP5"
},
{
"pc": 764,
"op": "DUP2"
},
{
"pc": 765,
"op": "MSTORE"
},
{
"pc": 766,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 768,
"op": "ADD"
},
{
"pc": 769,
"op": "DUP4"
},
{
"pc": 770,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 772,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 774,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 776,
"op": "EXP"
},
{
"pc": 777,
"op": "SUB"
},
{
"pc": 778,
"op": "AND"
},
{
"pc": 779,
"op": "DUP2"
},
{
"pc": 780,
"op": "MSTORE"
},
{
"pc": 781,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 783,
"op": "ADD"
},
{
"pc": 784,
"op": "DUP1"
},
{
"pc": 785,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 787,
"op": "ADD"
},
{
"pc": 788,
"op": "DUP3"
},
{
"pc": 789,
"op": "DUP2"
},
{
"pc": 790,
"op": "SUB"
},
{
"pc": 791,
"op": "DUP3"
},
{
"pc": 792,
"op": "MSTORE"
},
{
"pc": 793,
"op": "DUP4"
},
{
"pc": 794,
"op": "DUP2"
},
{
"pc": 795,
"op": "DUP2"
},
{
"pc": 796,
"op": "MLOAD"
},
{
"pc": 797,
"op": "DUP2"
},
{
"pc": 798,
"op": "MSTORE"
},
{
"pc": 799,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 801,
"op": "ADD"
},
{
"pc": 802,
"op": "SWAP2"
},
{
"pc": 803,
"op": "POP"
},
{
"pc": 804,
"op": "DUP1"
},
{
"pc": 805,
"op": "MLOAD"
},
{
"pc": 806,
"op": "SWAP1"
},
{
"pc": 807,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 809,
"op": "ADD"
},
{
"pc": 810,
"op": "SWAP1"
},
{
"pc": 811,
"op": "DUP1"
},
{
"pc": 812,
"op": "DUP4"
},
{
"pc": 813,
"op": "DUP4"
},
{
"pc": 814,
"op": "DUP3"
},
{
"pc": 815,
"op": "SWAP1"
},
{
"pc": 816,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 818,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 820,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 822,
"op": "DUP5"
},
{
"pc": 823,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 825,
"op": "ADD"
},
{
"pc": 826,
"op": "DIV"
},
{
"pc": 827,
"op": "PUSH1",
"arg": "0x0f"
},
{
"pc": 829,
"op": "MUL"
},
{
"pc": 830,
"op": "PUSH1",
"arg": "0x03"
},
{
"pc": 832,
"op": "ADD"
},
{
"pc": 833,
"op": "CALL"
},
{
"pc": 834,
"op": "POP"
},
{
"pc": 835,
"op": "SWAP1"
},
{
"pc": 836,
"op": "POP"
},
{
"pc": 837,
"op": "SWAP1"
},
{
"pc": 838,
"op": "DUP2"
},
{
"pc": 839,
"op": "ADD"
},
{
"pc": 840,
"op": "SWAP1"
},
{
"pc": 841,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 843,
"op": "AND"
},
{
"pc": 844,
"op": "DUP1"
},
{
"pc": 845,
"op": "ISZERO"
},
{
"pc": 846,
"op": "PUSH2",
"arg": "0x036b"
},
{
"pc": 849,
"op": "JUMPI"
},
{
"pc": 850,
"op": "DUP1"
},
{
"pc": 851,
"op": "DUP3"
},
{
"pc": 852,
"op": "SUB"
},
{
"pc": 853,
"op": "DUP1"
},
{
"pc": 854,
"op": "MLOAD"
},
{
"pc": 855,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 857,
"op": "DUP4"
},
{
"pc": 858,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 860,
"op": "SUB"
},
{
"pc": 861,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 864,
"op": "EXP"
},
{
"pc": 865,
"op": "SUB"
},
{
"pc": 866,
"op": "NOT"
},
{
"pc": 867,
"op": "AND"
},
{
"pc": 868,
"op": "DUP2"
},
{
"pc": 869,
"op": "MSTORE"
},
{
"pc": 870,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 872,
"op": "ADD"
},
{
"pc": 873,
"op": "SWAP2"
},
{
"pc": 874,
"op": "POP"
},
{
"pc": 875,
"op": "JUMPDEST"
},
{
"pc": 876,
"op": "POP"
},
{
"pc": 877,
"op": "SWAP6"
},
{
"pc": 878,
"op": "POP"
},
{
"pc": 879,
"op": "POP"
},
{
"pc": 880,
"op": "POP"
},
{
"pc": 881,
"op": "POP"
},
{
"pc": 882,
"op": "POP"
},
{
"pc": 883,
"op": "POP"
},
{
"pc": 884,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 886,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 888,
"op": "MLOAD"
},
{
"pc": 889,
"op": "DUP1"
},
{
"pc": 890,
"op": "DUP4"
},
{
"pc": 891,
"op": "SUB"
},
{
"pc": 892,
"op": "DUP2"
},
{
"pc": 893,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 895,
"op": "DUP8"
},
{
"pc": 896,
"op": "PUSH2",
"arg": "0x61da"
},
{
"pc": 899,
"op": "GAS"
},
{
"pc": 900,
"op": "SUB"
},
{
"pc": 901,
"op": "CALL"
},
{
"pc": 902,
"op": "ISZERO"
},
{
"pc": 903,
"op": "PUSH2",
"arg": "0x0002"
},
{
"pc": 906,
"op": "JUMPI"
},
{
"pc": 907,
"op": "POP"
},
{
"pc": 908,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 910,
"op": "SWAP8"
},
{
"pc": 911,
"op": "SWAP7"
},
{
"pc": 912,
"op": "POP"
},
{
"pc": 913,
"op": "POP"
},
{
"pc": 914,
"op": "POP"
},
{
"pc": 915,
"op": "POP"
},
{
"pc": 916,
"op": "POP"
},
{
"pc": 917,
"op": "POP"
},
{
"pc": 918,
"op": "POP"
},
{
"pc": 919,
"op": "JUMP"
},
{
"pc": 920,
"op": "JUMPDEST"
}
]
exec
js_repl in /tmp/codex-wkeusirp
succeeded in 6ms:
== 0-160 ==
[
{
"pc": 0,
"op": "PUSH1",
"arg": "0x60"
},
{
"pc": 2,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 4,
"op": "MSTORE"
},
{
"pc": 5,
"op": "CALLDATASIZE"
},
{
"pc": 6,
"op": "ISZERO"
},
{
"pc": 7,
"op": "PUSH2",
"arg": "0x008d"
},
{
"pc": 10,
"op": "JUMPI"
},
{
"pc": 11,
"op": "PUSH1",
"arg": "0xe0"
},
{
"pc": 13,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 15,
"op": "EXP"
},
{
"pc": 16,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 18,
"op": "CALLDATALOAD"
},
{
"pc": 19,
"op": "DIV"
},
{
"pc": 20,
"op": "PUSH4",
"arg": "0x06fdde03"
},
{
"pc": 25,
"op": "DUP2"
},
{
"pc": 26,
"op": "EQ"
},
{
"pc": 27,
"op": "PUSH2",
"arg": "0x0095"
},
{
"pc": 30,
"op": "JUMPI"
},
{
"pc": 31,
"op": "DUP1"
},
{
"pc": 32,
"op": "PUSH4",
"arg": "0x18160ddd"
},
{
"pc": 37,
"op": "EQ"
},
{
"pc": 38,
"op": "PUSH2",
"arg": "0x00f2"
},
{
"pc": 41,
"op": "JUMPI"
},
{
"pc": 42,
"op": "DUP1"
},
{
"pc": 43,
"op": "PUSH4",
"arg": "0x23b872dd"
},
{
"pc": 48,
"op": "EQ"
},
{
"pc": 49,
"op": "PUSH2",
"arg": "0x00fb"
},
{
"pc": 52,
"op": "JUMPI"
},
{
"pc": 53,
"op": "DUP1"
},
{
"pc": 54,
"op": "PUSH4",
"arg": "0x313ce567"
},
{
"pc": 59,
"op": "EQ"
},
{
"pc": 60,
"op": "PUSH2",
"arg": "0x012d"
},
{
"pc": 63,
"op": "JUMPI"
},
{
"pc": 64,
"op": "DUP1"
},
{
"pc": 65,
"op": "PUSH4",
"arg": "0x54fd4d50"
},
{
"pc": 70,
"op": "EQ"
},
{
"pc": 71,
"op": "PUSH2",
"arg": "0x0139"
},
{
"pc": 74,
"op": "JUMPI"
},
{
"pc": 75,
"op": "DUP1"
},
{
"pc": 76,
"op": "PUSH4",
"arg": "0x70a08231"
},
{
"pc": 81,
"op": "EQ"
},
{
"pc": 82,
"op": "PUSH2",
"arg": "0x0193"
},
{
"pc": 85,
"op": "JUMPI"
},
{
"pc": 86,
"op": "DUP1"
},
{
"pc": 87,
"op": "PUSH4",
"arg": "0x95d89b41"
},
{
"pc": 92,
"op": "EQ"
},
{
"pc": 93,
"op": "PUSH2",
"arg": "0x01ab"
},
{
"pc": 96,
"op": "JUMPI"
},
{
"pc": 97,
"op": "DUP1"
},
{
"pc": 98,
"op": "PUSH4",
"arg": "0xa9059cbb"
},
{
"pc": 103,
"op": "EQ"
},
{
"pc": 104,
"op": "PUSH2",
"arg": "0x0207"
},
{
"pc": 107,
"op": "JUMPI"
},
{
"pc": 108,
"op": "DUP1"
},
{
"pc": 109,
"op": "PUSH4",
"arg": "0xcae9ca51"
},
{
"pc": 114,
"op": "EQ"
},
{
"pc": 115,
"op": "PUSH2",
"arg": "0x0236"
},
{
"pc": 118,
"op": "JUMPI"
},
{
"pc": 119,
"op": "DUP1"
},
{
"pc": 120,
"op": "PUSH4",
"arg": "0xdc3080f2"
},
{
"pc": 125,
"op": "EQ"
},
{
"pc": 126,
"op": "PUSH2",
"arg": "0x0398"
},
{
"pc": 129,
"op": "JUMPI"
},
{
"pc": 130,
"op": "DUP1"
},
{
"pc": 131,
"op": "PUSH4",
"arg": "0xdd62ed3e"
},
{
"pc": 136,
"op": "EQ"
},
{
"pc": 137,
"op": "PUSH2",
"arg": "0x03bd"
},
{
"pc": 140,
"op": "JUMPI"
},
{
"pc": 141,
"op": "JUMPDEST"
},
{
"pc": 142,
"op": "PUSH2",
"arg": "0x03e2"
},
{
"pc": 145,
"op": "PUSH2",
"arg": "0x0002"
},
{
"pc": 148,
"op": "JUMP"
},
{
"pc": 149,
"op": "JUMPDEST"
},
{
"pc": 150,
"op": "PUSH2",
"arg": "0x03e4"
},
{
"pc": 153,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 155,
"op": "DUP1"
},
{
"pc": 156,
"op": "SLOAD"
},
{
"pc": 157,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 159,
"op": "PUSH1",
"arg": "0x02"
}
]
== 920-1125 ==
[
{
"pc": 920,
"op": "JUMPDEST"
},
{
"pc": 921,
"op": "PUSH1",
"arg": "0x07"
},
{
"pc": 923,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 925,
"op": "SWAP1"
},
{
"pc": 926,
"op": "DUP2"
},
{
"pc": 927,
"op": "MSTORE"
},
{
"pc": 928,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 930,
"op": "CALLDATALOAD"
},
{
"pc": 931,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 933,
"op": "SWAP1"
},
{
"pc": 934,
"op": "DUP2"
},
{
"pc": 935,
"op": "MSTORE"
},
{
"pc": 936,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 938,
"op": "DUP1"
},
{
"pc": 939,
"op": "DUP3"
},
{
"pc": 940,
"op": "SHA3"
},
{
"pc": 941,
"op": "SWAP1"
},
{
"pc": 942,
"op": "SWAP3"
},
{
"pc": 943,
"op": "MSTORE"
},
{
"pc": 944,
"op": "PUSH1",
"arg": "0x24"
},
{
"pc": 946,
"op": "CALLDATALOAD"
},
{
"pc": 947,
"op": "DUP2"
},
{
"pc": 948,
"op": "MSTORE"
},
{
"pc": 949,
"op": "SHA3"
},
{
"pc": 950,
"op": "SLOAD"
},
{
"pc": 951,
"op": "PUSH2",
"arg": "0x0452"
},
{
"pc": 954,
"op": "SWAP1"
},
{
"pc": 955,
"op": "DUP2"
},
{
"pc": 956,
"op": "JUMP"
},
{
"pc": 957,
"op": "JUMPDEST"
},
{
"pc": 958,
"op": "PUSH1",
"arg": "0x06"
},
{
"pc": 960,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 962,
"op": "SWAP1"
},
{
"pc": 963,
"op": "DUP2"
},
{
"pc": 964,
"op": "MSTORE"
},
{
"pc": 965,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 967,
"op": "CALLDATALOAD"
},
{
"pc": 968,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 970,
"op": "SWAP1"
},
{
"pc": 971,
"op": "DUP2"
},
{
"pc": 972,
"op": "MSTORE"
},
{
"pc": 973,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 975,
"op": "DUP1"
},
{
"pc": 976,
"op": "DUP3"
},
{
"pc": 977,
"op": "SHA3"
},
{
"pc": 978,
"op": "SWAP1"
},
{
"pc": 979,
"op": "SWAP3"
},
{
"pc": 980,
"op": "MSTORE"
},
{
"pc": 981,
"op": "PUSH1",
"arg": "0x24"
},
{
"pc": 983,
"op": "CALLDATALOAD"
},
{
"pc": 984,
"op": "DUP2"
},
{
"pc": 985,
"op": "MSTORE"
},
{
"pc": 986,
"op": "SHA3"
},
{
"pc": 987,
"op": "SLOAD"
},
{
"pc": 988,
"op": "PUSH2",
"arg": "0x0452"
},
{
"pc": 991,
"op": "SWAP1"
},
{
"pc": 992,
"op": "DUP2"
},
{
"pc": 993,
"op": "JUMP"
},
{
"pc": 994,
"op": "JUMPDEST"
},
{
"pc": 995,
"op": "STOP"
},
{
"pc": 996,
"op": "JUMPDEST"
},
{
"pc": 997,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 999,
"op": "MLOAD"
},
{
"pc": 1000,
"op": "DUP1"
},
{
"pc": 1001,
"op": "DUP1"
},
{
"pc": 1002,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1004,
"op": "ADD"
},
{
"pc": 1005,
"op": "DUP3"
},
{
"pc": 1006,
"op": "DUP2"
},
{
"pc": 1007,
"op": "SUB"
},
{
"pc": 1008,
"op": "DUP3"
},
{
"pc": 1009,
"op": "MSTORE"
},
{
"pc": 1010,
"op": "DUP4"
},
{
"pc": 1011,
"op": "DUP2"
},
{
"pc": 1012,
"op": "DUP2"
},
{
"pc": 1013,
"op": "MLOAD"
},
{
"pc": 1014,
"op": "DUP2"
},
{
"pc": 1015,
"op": "MSTORE"
},
{
"pc": 1016,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1018,
"op": "ADD"
},
{
"pc": 1019,
"op": "SWAP2"
},
{
"pc": 1020,
"op": "POP"
},
{
"pc": 1021,
"op": "DUP1"
},
{
"pc": 1022,
"op": "MLOAD"
},
{
"pc": 1023,
"op": "SWAP1"
},
{
"pc": 1024,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1026,
"op": "ADD"
},
{
"pc": 1027,
"op": "SWAP1"
},
{
"pc": 1028,
"op": "DUP1"
},
{
"pc": 1029,
"op": "DUP4"
},
{
"pc": 1030,
"op": "DUP4"
},
{
"pc": 1031,
"op": "DUP3"
},
{
"pc": 1032,
"op": "SWAP1"
},
{
"pc": 1033,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1035,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 1037,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1039,
"op": "DUP5"
},
{
"pc": 1040,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 1042,
"op": "ADD"
},
{
"pc": 1043,
"op": "DIV"
},
{
"pc": 1044,
"op": "PUSH1",
"arg": "0x0f"
},
{
"pc": 1046,
"op": "MUL"
},
{
"pc": 1047,
"op": "PUSH1",
"arg": "0x03"
},
{
"pc": 1049,
"op": "ADD"
},
{
"pc": 1050,
"op": "CALL"
},
{
"pc": 1051,
"op": "POP"
},
{
"pc": 1052,
"op": "SWAP1"
},
{
"pc": 1053,
"op": "POP"
},
{
"pc": 1054,
"op": "SWAP1"
},
{
"pc": 1055,
"op": "DUP2"
},
{
"pc": 1056,
"op": "ADD"
},
{
"pc": 1057,
"op": "SWAP1"
},
{
"pc": 1058,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 1060,
"op": "AND"
},
{
"pc": 1061,
"op": "DUP1"
},
{
"pc": 1062,
"op": "ISZERO"
},
{
"pc": 1063,
"op": "PUSH2",
"arg": "0x0444"
},
{
"pc": 1066,
"op": "JUMPI"
},
{
"pc": 1067,
"op": "DUP1"
},
{
"pc": 1068,
"op": "DUP3"
},
{
"pc": 1069,
"op": "SUB"
},
{
"pc": 1070,
"op": "DUP1"
},
{
"pc": 1071,
"op": "MLOAD"
},
{
"pc": 1072,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1074,
"op": "DUP4"
},
{
"pc": 1075,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1077,
"op": "SUB"
},
{
"pc": 1078,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 1081,
"op": "EXP"
},
{
"pc": 1082,
"op": "SUB"
},
{
"pc": 1083,
"op": "NOT"
},
{
"pc": 1084,
"op": "AND"
},
{
"pc": 1085,
"op": "DUP2"
},
{
"pc": 1086,
"op": "MSTORE"
},
{
"pc": 1087,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1089,
"op": "ADD"
},
{
"pc": 1090,
"op": "SWAP2"
},
{
"pc": 1091,
"op": "POP"
},
{
"pc": 1092,
"op": "JUMPDEST"
},
{
"pc": 1093,
"op": "POP"
},
{
"pc": 1094,
"op": "SWAP3"
},
{
"pc": 1095,
"op": "POP"
},
{
"pc": 1096,
"op": "POP"
},
{
"pc": 1097,
"op": "POP"
},
{
"pc": 1098,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1100,
"op": "MLOAD"
},
{
"pc": 1101,
"op": "DUP1"
},
{
"pc": 1102,
"op": "SWAP2"
},
{
"pc": 1103,
"op": "SUB"
},
{
"pc": 1104,
"op": "SWAP1"
},
{
"pc": 1105,
"op": "RETURN"
},
{
"pc": 1106,
"op": "JUMPDEST"
},
{
"pc": 1107,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1109,
"op": "DUP1"
},
{
"pc": 1110,
"op": "MLOAD"
},
{
"pc": 1111,
"op": "SWAP2"
},
{
"pc": 1112,
"op": "DUP3"
},
{
"pc": 1113,
"op": "MSTORE"
},
{
"pc": 1114,
"op": "MLOAD"
},
{
"pc": 1115,
"op": "SWAP1"
},
{
"pc": 1116,
"op": "DUP2"
},
{
"pc": 1117,
"op": "SWAP1"
},
{
"pc": 1118,
"op": "SUB"
},
{
"pc": 1119,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1121,
"op": "ADD"
},
{
"pc": 1122,
"op": "SWAP1"
},
{
"pc": 1123,
"op": "RETURN"
},
{
"pc": 1124,
"op": "JUMPDEST"
},
{
"pc": 1125,
"op": "PUSH1",
"arg": "0x60"
}
]
== 1494-1585 ==
[
{
"pc": 1494,
"op": "JUMPDEST"
},
{
"pc": 1495,
"op": "DUP3"
},
{
"pc": 1496,
"op": "ADD"
},
{
"pc": 1497,
"op": "SWAP2"
},
{
"pc": 1498,
"op": "SWAP1"
},
{
"pc": 1499,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1501,
"op": "MSTORE"
},
{
"pc": 1502,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1504,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1506,
"op": "SHA3"
},
{
"pc": 1507,
"op": "SWAP1"
},
{
"pc": 1508,
"op": "JUMPDEST"
},
{
"pc": 1509,
"op": "DUP2"
},
{
"pc": 1510,
"op": "SLOAD"
},
{
"pc": 1511,
"op": "DUP2"
},
{
"pc": 1512,
"op": "MSTORE"
},
{
"pc": 1513,
"op": "SWAP1"
},
{
"pc": 1514,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1516,
"op": "ADD"
},
{
"pc": 1517,
"op": "SWAP1"
},
{
"pc": 1518,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1520,
"op": "ADD"
},
{
"pc": 1521,
"op": "DUP1"
},
{
"pc": 1522,
"op": "DUP4"
},
{
"pc": 1523,
"op": "GT"
},
{
"pc": 1524,
"op": "PUSH2",
"arg": "0x05e4"
},
{
"pc": 1527,
"op": "JUMPI"
},
{
"pc": 1528,
"op": "DUP3"
},
{
"pc": 1529,
"op": "SWAP1"
},
{
"pc": 1530,
"op": "SUB"
},
{
"pc": 1531,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 1533,
"op": "AND"
},
{
"pc": 1534,
"op": "DUP3"
},
{
"pc": 1535,
"op": "ADD"
},
{
"pc": 1536,
"op": "SWAP2"
},
{
"pc": 1537,
"op": "JUMPDEST"
},
{
"pc": 1538,
"op": "POP"
},
{
"pc": 1539,
"op": "POP"
},
{
"pc": 1540,
"op": "POP"
},
{
"pc": 1541,
"op": "POP"
},
{
"pc": 1542,
"op": "POP"
},
{
"pc": 1543,
"op": "DUP2"
},
{
"pc": 1544,
"op": "JUMP"
},
{
"pc": 1545,
"op": "JUMPDEST"
},
{
"pc": 1546,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1548,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1550,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1552,
"op": "EXP"
},
{
"pc": 1553,
"op": "SUB"
},
{
"pc": 1554,
"op": "DUP3"
},
{
"pc": 1555,
"op": "AND"
},
{
"pc": 1556,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1558,
"op": "SWAP1"
},
{
"pc": 1559,
"op": "DUP2"
},
{
"pc": 1560,
"op": "MSTORE"
},
{
"pc": 1561,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1563,
"op": "SWAP1"
},
{
"pc": 1564,
"op": "SHA3"
},
{
"pc": 1565,
"op": "SLOAD"
},
{
"pc": 1566,
"op": "DUP1"
},
{
"pc": 1567,
"op": "DUP3"
},
{
"pc": 1568,
"op": "ADD"
},
{
"pc": 1569,
"op": "LT"
},
{
"pc": 1570,
"op": "ISZERO"
},
{
"pc": 1571,
"op": "PUSH2",
"arg": "0x062b"
},
{
"pc": 1574,
"op": "JUMPI"
},
{
"pc": 1575,
"op": "PUSH2",
"arg": "0x0002"
},
{
"pc": 1578,
"op": "JUMP"
},
{
"pc": 1579,
"op": "JUMPDEST"
},
{
"pc": 1580,
"op": "DUP1"
},
{
"pc": 1581,
"op": "PUSH1",
"arg": "0x05"
},
{
"pc": 1583,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1585,
"op": "POP"
}
]
exec
js_repl in /tmp/codex-wkeusirp
succeeded in 1ms:
== 1579-1751 ==
[
{
"pc": 1579,
"op": "JUMPDEST"
},
{
"pc": 1580,
"op": "DUP1"
},
{
"pc": 1581,
"op": "PUSH1",
"arg": "0x05"
},
{
"pc": 1583,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1585,
"op": "POP"
},
{
"pc": 1586,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1588,
"op": "CALLER"
},
{
"pc": 1589,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1591,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1593,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1595,
"op": "EXP"
},
{
"pc": 1596,
"op": "SUB"
},
{
"pc": 1597,
"op": "AND"
},
{
"pc": 1598,
"op": "DUP2"
},
{
"pc": 1599,
"op": "MSTORE"
},
{
"pc": 1600,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1602,
"op": "ADD"
},
{
"pc": 1603,
"op": "SWAP1"
},
{
"pc": 1604,
"op": "DUP2"
},
{
"pc": 1605,
"op": "MSTORE"
},
{
"pc": 1606,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1608,
"op": "ADD"
},
{
"pc": 1609,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1611,
"op": "SHA3"
},
{
"pc": 1612,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1614,
"op": "DUP3"
},
{
"pc": 1615,
"op": "DUP3"
},
{
"pc": 1616,
"op": "DUP3"
},
{
"pc": 1617,
"op": "POP"
},
{
"pc": 1618,
"op": "SLOAD"
},
{
"pc": 1619,
"op": "SUB"
},
{
"pc": 1620,
"op": "SWAP3"
},
{
"pc": 1621,
"op": "POP"
},
{
"pc": 1622,
"op": "POP"
},
{
"pc": 1623,
"op": "DUP2"
},
{
"pc": 1624,
"op": "SWAP1"
},
{
"pc": 1625,
"op": "SSTORE"
},
{
"pc": 1626,
"op": "POP"
},
{
"pc": 1627,
"op": "DUP1"
},
{
"pc": 1628,
"op": "PUSH1",
"arg": "0x05"
},
{
"pc": 1630,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1632,
"op": "POP"
},
{
"pc": 1633,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1635,
"op": "DUP5"
},
{
"pc": 1636,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1638,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1640,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1642,
"op": "EXP"
},
{
"pc": 1643,
"op": "SUB"
},
{
"pc": 1644,
"op": "AND"
},
{
"pc": 1645,
"op": "DUP2"
},
{
"pc": 1646,
"op": "MSTORE"
},
{
"pc": 1647,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1649,
"op": "ADD"
},
{
"pc": 1650,
"op": "SWAP1"
},
{
"pc": 1651,
"op": "DUP2"
},
{
"pc": 1652,
"op": "MSTORE"
},
{
"pc": 1653,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1655,
"op": "ADD"
},
{
"pc": 1656,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1658,
"op": "SHA3"
},
{
"pc": 1659,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1661,
"op": "DUP3"
},
{
"pc": 1662,
"op": "DUP3"
},
{
"pc": 1663,
"op": "DUP3"
},
{
"pc": 1664,
"op": "POP"
},
{
"pc": 1665,
"op": "SLOAD"
},
{
"pc": 1666,
"op": "ADD"
},
{
"pc": 1667,
"op": "SWAP3"
},
{
"pc": 1668,
"op": "POP"
},
{
"pc": 1669,
"op": "POP"
},
{
"pc": 1670,
"op": "DUP2"
},
{
"pc": 1671,
"op": "SWAP1"
},
{
"pc": 1672,
"op": "SSTORE"
},
{
"pc": 1673,
"op": "POP"
},
{
"pc": 1674,
"op": "DUP2"
},
{
"pc": 1675,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1677,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1679,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1681,
"op": "EXP"
},
{
"pc": 1682,
"op": "SUB"
},
{
"pc": 1683,
"op": "AND"
},
{
"pc": 1684,
"op": "CALLER"
},
{
"pc": 1685,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1687,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1689,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1691,
"op": "EXP"
},
{
"pc": 1692,
"op": "SUB"
},
{
"pc": 1693,
"op": "AND"
},
{
"pc": 1694,
"op": "PUSH32",
"arg": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
},
{
"pc": 1727,
"op": "DUP4"
},
{
"pc": 1728,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1730,
"op": "MLOAD"
},
{
"pc": 1731,
"op": "DUP1"
},
{
"pc": 1732,
"op": "DUP3"
},
{
"pc": 1733,
"op": "DUP2"
},
{
"pc": 1734,
"op": "MSTORE"
},
{
"pc": 1735,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1737,
"op": "ADD"
},
{
"pc": 1738,
"op": "SWAP2"
},
{
"pc": 1739,
"op": "POP"
},
{
"pc": 1740,
"op": "POP"
},
{
"pc": 1741,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1743,
"op": "MLOAD"
},
{
"pc": 1744,
"op": "DUP1"
},
{
"pc": 1745,
"op": "SWAP2"
},
{
"pc": 1746,
"op": "SUB"
},
{
"pc": 1747,
"op": "SWAP1"
},
{
"pc": 1748,
"op": "LOG3"
},
{
"pc": 1749,
"op": "POP"
},
{
"pc": 1750,
"op": "POP"
},
{
"pc": 1751,
"op": "JUMP"
}
]
exec
js_repl in /tmp/codex-wkeusirp
succeeded in 2ms:
== 242-565 ==
[
{
"pc": 242,
"op": "JUMPDEST"
},
{
"pc": 243,
"op": "PUSH2",
"arg": "0x0452"
},
{
"pc": 246,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 248,
"op": "SLOAD"
},
{
"pc": 249,
"op": "DUP2"
},
{
"pc": 250,
"op": "JUMP"
},
{
"pc": 251,
"op": "JUMPDEST"
},
{
"pc": 252,
"op": "PUSH2",
"arg": "0x0452"
},
{
"pc": 255,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 257,
"op": "CALLDATALOAD"
},
{
"pc": 258,
"op": "PUSH1",
"arg": "0x24"
},
{
"pc": 260,
"op": "CALLDATALOAD"
},
{
"pc": 261,
"op": "PUSH1",
"arg": "0x44"
},
{
"pc": 263,
"op": "CALLDATALOAD"
},
{
"pc": 264,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 266,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 268,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 270,
"op": "EXP"
},
{
"pc": 271,
"op": "SUB"
},
{
"pc": 272,
"op": "DUP4"
},
{
"pc": 273,
"op": "AND"
},
{
"pc": 274,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 276,
"op": "SWAP1"
},
{
"pc": 277,
"op": "DUP2"
},
{
"pc": 278,
"op": "MSTORE"
},
{
"pc": 279,
"op": "PUSH1",
"arg": "0x05"
},
{
"pc": 281,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 283,
"op": "MSTORE"
},
{
"pc": 284,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 286,
"op": "DUP2"
},
{
"pc": 287,
"op": "SHA3"
},
{
"pc": 288,
"op": "SLOAD"
},
{
"pc": 289,
"op": "DUP3"
},
{
"pc": 290,
"op": "SWAP1"
},
{
"pc": 291,
"op": "LT"
},
{
"pc": 292,
"op": "ISZERO"
},
{
"pc": 293,
"op": "PUSH2",
"arg": "0x046e"
},
{
"pc": 296,
"op": "JUMPI"
},
{
"pc": 297,
"op": "PUSH2",
"arg": "0x0002"
},
{
"pc": 300,
"op": "JUMP"
},
{
"pc": 301,
"op": "JUMPDEST"
},
{
"pc": 302,
"op": "PUSH2",
"arg": "0x0464"
},
{
"pc": 305,
"op": "PUSH1",
"arg": "0x03"
},
{
"pc": 307,
"op": "SLOAD"
},
{
"pc": 308,
"op": "PUSH1",
"arg": "0xff"
},
{
"pc": 310,
"op": "AND"
},
{
"pc": 311,
"op": "DUP2"
},
{
"pc": 312,
"op": "JUMP"
},
{
"pc": 313,
"op": "JUMPDEST"
},
{
"pc": 314,
"op": "PUSH2",
"arg": "0x03e4"
},
{
"pc": 317,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 319,
"op": "DUP1"
},
{
"pc": 320,
"op": "SLOAD"
},
{
"pc": 321,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 323,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 325,
"op": "DUP3"
},
{
"pc": 326,
"op": "AND"
},
{
"pc": 327,
"op": "ISZERO"
},
{
"pc": 328,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 331,
"op": "MUL"
},
{
"pc": 332,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 334,
"op": "NOT"
},
{
"pc": 335,
"op": "ADD"
},
{
"pc": 336,
"op": "SWAP1"
},
{
"pc": 337,
"op": "SWAP2"
},
{
"pc": 338,
"op": "AND"
},
{
"pc": 339,
"op": "DUP3"
},
{
"pc": 340,
"op": "SWAP1"
},
{
"pc": 341,
"op": "DIV"
},
{
"pc": 342,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 344,
"op": "DUP2"
},
{
"pc": 345,
"op": "ADD"
},
{
"pc": 346,
"op": "DUP3"
},
{
"pc": 347,
"op": "SWAP1"
},
{
"pc": 348,
"op": "DIV"
},
{
"pc": 349,
"op": "SWAP1"
},
{
"pc": 350,
"op": "SWAP2"
},
{
"pc": 351,
"op": "MUL"
},
{
"pc": 352,
"op": "PUSH1",
"arg": "0x80"
},
{
"pc": 354,
"op": "SWAP1"
},
{
"pc": 355,
"op": "DUP2"
},
{
"pc": 356,
"op": "ADD"
},
{
"pc": 357,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 359,
"op": "MSTORE"
},
{
"pc": 360,
"op": "PUSH1",
"arg": "0x60"
},
{
"pc": 362,
"op": "DUP3"
},
{
"pc": 363,
"op": "DUP2"
},
{
"pc": 364,
"op": "MSTORE"
},
{
"pc": 365,
"op": "SWAP3"
},
{
"pc": 366,
"op": "SWAP2"
},
{
"pc": 367,
"op": "SWAP1"
},
{
"pc": 368,
"op": "DUP3"
},
{
"pc": 369,
"op": "DUP3"
},
{
"pc": 370,
"op": "DUP1"
},
{
"pc": 371,
"op": "ISZERO"
},
{
"pc": 372,
"op": "PUSH2",
"arg": "0x0601"
},
{
"pc": 375,
"op": "JUMPI"
},
{
"pc": 376,
"op": "DUP1"
},
{
"pc": 377,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 379,
"op": "LT"
},
{
"pc": 380,
"op": "PUSH2",
"arg": "0x05d6"
},
{
"pc": 383,
"op": "JUMPI"
},
{
"pc": 384,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 387,
"op": "DUP1"
},
{
"pc": 388,
"op": "DUP4"
},
{
"pc": 389,
"op": "SLOAD"
},
{
"pc": 390,
"op": "DIV"
},
{
"pc": 391,
"op": "MUL"
},
{
"pc": 392,
"op": "DUP4"
},
{
"pc": 393,
"op": "MSTORE"
},
{
"pc": 394,
"op": "SWAP2"
},
{
"pc": 395,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 397,
"op": "ADD"
},
{
"pc": 398,
"op": "SWAP2"
},
{
"pc": 399,
"op": "PUSH2",
"arg": "0x0601"
},
{
"pc": 402,
"op": "JUMP"
},
{
"pc": 403,
"op": "JUMPDEST"
},
{
"pc": 404,
"op": "PUSH2",
"arg": "0x0452"
},
{
"pc": 407,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 409,
"op": "CALLDATALOAD"
},
{
"pc": 410,
"op": "PUSH1",
"arg": "0x05"
},
{
"pc": 412,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 414,
"op": "MSTORE"
},
{
"pc": 415,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 417,
"op": "SWAP1"
},
{
"pc": 418,
"op": "DUP2"
},
{
"pc": 419,
"op": "MSTORE"
},
{
"pc": 420,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 422,
"op": "SWAP1"
},
{
"pc": 423,
"op": "SHA3"
},
{
"pc": 424,
"op": "SLOAD"
},
{
"pc": 425,
"op": "DUP2"
},
{
"pc": 426,
"op": "JUMP"
},
{
"pc": 427,
"op": "JUMPDEST"
},
{
"pc": 428,
"op": "PUSH2",
"arg": "0x03e4"
},
{
"pc": 431,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 433,
"op": "DUP1"
},
{
"pc": 434,
"op": "SLOAD"
},
{
"pc": 435,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 437,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 439,
"op": "DUP3"
},
{
"pc": 440,
"op": "DUP5"
},
{
"pc": 441,
"op": "AND"
},
{
"pc": 442,
"op": "ISZERO"
},
{
"pc": 443,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 446,
"op": "MUL"
},
{
"pc": 447,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 449,
"op": "NOT"
},
{
"pc": 450,
"op": "ADD"
},
{
"pc": 451,
"op": "SWAP1"
},
{
"pc": 452,
"op": "SWAP3"
},
{
"pc": 453,
"op": "AND"
},
{
"pc": 454,
"op": "SWAP2"
},
{
"pc": 455,
"op": "SWAP1"
},
{
"pc": 456,
"op": "SWAP2"
},
{
"pc": 457,
"op": "DIV"
},
{
"pc": 458,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 460,
"op": "DUP2"
},
{
"pc": 461,
"op": "ADD"
},
{
"pc": 462,
"op": "DUP3"
},
{
"pc": 463,
"op": "SWAP1"
},
{
"pc": 464,
"op": "DIV"
},
{
"pc": 465,
"op": "SWAP1"
},
{
"pc": 466,
"op": "SWAP2"
},
{
"pc": 467,
"op": "MUL"
},
{
"pc": 468,
"op": "PUSH1",
"arg": "0x80"
},
{
"pc": 470,
"op": "SWAP1"
},
{
"pc": 471,
"op": "DUP2"
},
{
"pc": 472,
"op": "ADD"
},
{
"pc": 473,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 475,
"op": "MSTORE"
},
{
"pc": 476,
"op": "PUSH1",
"arg": "0x60"
},
{
"pc": 478,
"op": "DUP3"
},
{
"pc": 479,
"op": "DUP2"
},
{
"pc": 480,
"op": "MSTORE"
},
{
"pc": 481,
"op": "SWAP3"
},
{
"pc": 482,
"op": "SWAP2"
},
{
"pc": 483,
"op": "SWAP1"
},
{
"pc": 484,
"op": "DUP3"
},
{
"pc": 485,
"op": "DUP3"
},
{
"pc": 486,
"op": "DUP1"
},
{
"pc": 487,
"op": "ISZERO"
},
{
"pc": 488,
"op": "PUSH2",
"arg": "0x0601"
},
{
"pc": 491,
"op": "JUMPI"
},
{
"pc": 492,
"op": "DUP1"
},
{
"pc": 493,
"op": "PUSH1",
"arg": "0x1f"
},
{
"pc": 495,
"op": "LT"
},
{
"pc": 496,
"op": "PUSH2",
"arg": "0x05d6"
},
{
"pc": 499,
"op": "JUMPI"
},
{
"pc": 500,
"op": "PUSH2",
"arg": "0x0100"
},
{
"pc": 503,
"op": "DUP1"
},
{
"pc": 504,
"op": "DUP4"
},
{
"pc": 505,
"op": "SLOAD"
},
{
"pc": 506,
"op": "DIV"
},
{
"pc": 507,
"op": "MUL"
},
{
"pc": 508,
"op": "DUP4"
},
{
"pc": 509,
"op": "MSTORE"
},
{
"pc": 510,
"op": "SWAP2"
},
{
"pc": 511,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 513,
"op": "ADD"
},
{
"pc": 514,
"op": "SWAP2"
},
{
"pc": 515,
"op": "PUSH2",
"arg": "0x0601"
},
{
"pc": 518,
"op": "JUMP"
},
{
"pc": 519,
"op": "JUMPDEST"
},
{
"pc": 520,
"op": "PUSH2",
"arg": "0x03e2"
},
{
"pc": 523,
"op": "PUSH1",
"arg": "0x04"
},
{
"pc": 525,
"op": "CALLDATALOAD"
},
{
"pc": 526,
"op": "PUSH1",
"arg": "0x24"
},
{
"pc": 528,
"op": "CALLDATALOAD"
},
{
"pc": 529,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 531,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 533,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 535,
"op": "EXP"
},
{
"pc": 536,
"op": "SUB"
},
{
"pc": 537,
"op": "CALLER"
},
{
"pc": 538,
"op": "AND"
},
{
"pc": 539,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 541,
"op": "SWAP1"
},
{
"pc": 542,
"op": "DUP2"
},
{
"pc": 543,
"op": "MSTORE"
},
{
"pc": 544,
"op": "PUSH1",
"arg": "0x05"
},
{
"pc": 546,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 548,
"op": "MSTORE"
},
{
"pc": 549,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 551,
"op": "SWAP1"
},
{
"pc": 552,
"op": "SHA3"
},
{
"pc": 553,
"op": "SLOAD"
},
{
"pc": 554,
"op": "DUP2"
},
{
"pc": 555,
"op": "SWAP1"
},
{
"pc": 556,
"op": "LT"
},
{
"pc": 557,
"op": "ISZERO"
},
{
"pc": 558,
"op": "PUSH2",
"arg": "0x0609"
},
{
"pc": 561,
"op": "JUMPI"
},
{
"pc": 562,
"op": "PUSH2",
"arg": "0x0002"
},
{
"pc": 565,
"op": "JUMP"
}
]
exec
js_repl in /tmp/codex-wkeusirp
succeeded in 2ms:
== 1124-1493 ==
[
{
"pc": 1124,
"op": "JUMPDEST"
},
{
"pc": 1125,
"op": "PUSH1",
"arg": "0x60"
},
{
"pc": 1127,
"op": "SWAP1"
},
{
"pc": 1128,
"op": "DUP2"
},
{
"pc": 1129,
"op": "MSTORE"
},
{
"pc": 1130,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1132,
"op": "SWAP1"
},
{
"pc": 1133,
"op": "RETURN"
},
{
"pc": 1134,
"op": "JUMPDEST"
},
{
"pc": 1135,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1137,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1139,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1141,
"op": "EXP"
},
{
"pc": 1142,
"op": "SUB"
},
{
"pc": 1143,
"op": "DUP4"
},
{
"pc": 1144,
"op": "AND"
},
{
"pc": 1145,
"op": "DUP2"
},
{
"pc": 1146,
"op": "MSTORE"
},
{
"pc": 1147,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1149,
"op": "DUP2"
},
{
"pc": 1150,
"op": "SHA3"
},
{
"pc": 1151,
"op": "SLOAD"
},
{
"pc": 1152,
"op": "DUP1"
},
{
"pc": 1153,
"op": "DUP4"
},
{
"pc": 1154,
"op": "ADD"
},
{
"pc": 1155,
"op": "LT"
},
{
"pc": 1156,
"op": "ISZERO"
},
{
"pc": 1157,
"op": "PUSH2",
"arg": "0x048d"
},
{
"pc": 1160,
"op": "JUMPI"
},
{
"pc": 1161,
"op": "PUSH2",
"arg": "0x0002"
},
{
"pc": 1164,
"op": "JUMP"
},
{
"pc": 1165,
"op": "JUMPDEST"
},
{
"pc": 1166,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1168,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1170,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1172,
"op": "EXP"
},
{
"pc": 1173,
"op": "SUB"
},
{
"pc": 1174,
"op": "DUP1"
},
{
"pc": 1175,
"op": "DUP6"
},
{
"pc": 1176,
"op": "AND"
},
{
"pc": 1177,
"op": "DUP1"
},
{
"pc": 1178,
"op": "DUP4"
},
{
"pc": 1179,
"op": "MSTORE"
},
{
"pc": 1180,
"op": "PUSH1",
"arg": "0x06"
},
{
"pc": 1182,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1184,
"op": "SWAP1"
},
{
"pc": 1185,
"op": "DUP2"
},
{
"pc": 1186,
"op": "MSTORE"
},
{
"pc": 1187,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1189,
"op": "DUP1"
},
{
"pc": 1190,
"op": "DUP6"
},
{
"pc": 1191,
"op": "SHA3"
},
{
"pc": 1192,
"op": "CALLER"
},
{
"pc": 1193,
"op": "SWAP5"
},
{
"pc": 1194,
"op": "SWAP1"
},
{
"pc": 1195,
"op": "SWAP5"
},
{
"pc": 1196,
"op": "AND"
},
{
"pc": 1197,
"op": "DUP1"
},
{
"pc": 1198,
"op": "DUP7"
},
{
"pc": 1199,
"op": "MSTORE"
},
{
"pc": 1200,
"op": "SWAP4"
},
{
"pc": 1201,
"op": "DUP3"
},
{
"pc": 1202,
"op": "MSTORE"
},
{
"pc": 1203,
"op": "DUP1"
},
{
"pc": 1204,
"op": "DUP6"
},
{
"pc": 1205,
"op": "SHA3"
},
{
"pc": 1206,
"op": "SLOAD"
},
{
"pc": 1207,
"op": "SWAP3"
},
{
"pc": 1208,
"op": "DUP6"
},
{
"pc": 1209,
"op": "MSTORE"
},
{
"pc": 1210,
"op": "PUSH1",
"arg": "0x07"
},
{
"pc": 1212,
"op": "DUP3"
},
{
"pc": 1213,
"op": "MSTORE"
},
{
"pc": 1214,
"op": "DUP1"
},
{
"pc": 1215,
"op": "DUP6"
},
{
"pc": 1216,
"op": "SHA3"
},
{
"pc": 1217,
"op": "SWAP4"
},
{
"pc": 1218,
"op": "DUP6"
},
{
"pc": 1219,
"op": "MSTORE"
},
{
"pc": 1220,
"op": "SWAP3"
},
{
"pc": 1221,
"op": "SWAP1"
},
{
"pc": 1222,
"op": "MSTORE"
},
{
"pc": 1223,
"op": "SWAP1"
},
{
"pc": 1224,
"op": "DUP3"
},
{
"pc": 1225,
"op": "SHA3"
},
{
"pc": 1226,
"op": "SLOAD"
},
{
"pc": 1227,
"op": "DUP4"
},
{
"pc": 1228,
"op": "ADD"
},
{
"pc": 1229,
"op": "GT"
},
{
"pc": 1230,
"op": "ISZERO"
},
{
"pc": 1231,
"op": "PUSH2",
"arg": "0x04d7"
},
{
"pc": 1234,
"op": "JUMPI"
},
{
"pc": 1235,
"op": "PUSH2",
"arg": "0x0002"
},
{
"pc": 1238,
"op": "JUMP"
},
{
"pc": 1239,
"op": "JUMPDEST"
},
{
"pc": 1240,
"op": "DUP2"
},
{
"pc": 1241,
"op": "PUSH1",
"arg": "0x05"
},
{
"pc": 1243,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1245,
"op": "POP"
},
{
"pc": 1246,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1248,
"op": "DUP7"
},
{
"pc": 1249,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1251,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1253,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1255,
"op": "EXP"
},
{
"pc": 1256,
"op": "SUB"
},
{
"pc": 1257,
"op": "AND"
},
{
"pc": 1258,
"op": "DUP2"
},
{
"pc": 1259,
"op": "MSTORE"
},
{
"pc": 1260,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1262,
"op": "ADD"
},
{
"pc": 1263,
"op": "SWAP1"
},
{
"pc": 1264,
"op": "DUP2"
},
{
"pc": 1265,
"op": "MSTORE"
},
{
"pc": 1266,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1268,
"op": "ADD"
},
{
"pc": 1269,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1271,
"op": "SHA3"
},
{
"pc": 1272,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1274,
"op": "DUP3"
},
{
"pc": 1275,
"op": "DUP3"
},
{
"pc": 1276,
"op": "DUP3"
},
{
"pc": 1277,
"op": "POP"
},
{
"pc": 1278,
"op": "SLOAD"
},
{
"pc": 1279,
"op": "SUB"
},
{
"pc": 1280,
"op": "SWAP3"
},
{
"pc": 1281,
"op": "POP"
},
{
"pc": 1282,
"op": "POP"
},
{
"pc": 1283,
"op": "DUP2"
},
{
"pc": 1284,
"op": "SWAP1"
},
{
"pc": 1285,
"op": "SSTORE"
},
{
"pc": 1286,
"op": "POP"
},
{
"pc": 1287,
"op": "DUP2"
},
{
"pc": 1288,
"op": "PUSH1",
"arg": "0x05"
},
{
"pc": 1290,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1292,
"op": "POP"
},
{
"pc": 1293,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1295,
"op": "DUP6"
},
{
"pc": 1296,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1298,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1300,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1302,
"op": "EXP"
},
{
"pc": 1303,
"op": "SUB"
},
{
"pc": 1304,
"op": "AND"
},
{
"pc": 1305,
"op": "DUP2"
},
{
"pc": 1306,
"op": "MSTORE"
},
{
"pc": 1307,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1309,
"op": "ADD"
},
{
"pc": 1310,
"op": "SWAP1"
},
{
"pc": 1311,
"op": "DUP2"
},
{
"pc": 1312,
"op": "MSTORE"
},
{
"pc": 1313,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1315,
"op": "ADD"
},
{
"pc": 1316,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1318,
"op": "SHA3"
},
{
"pc": 1319,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1321,
"op": "DUP3"
},
{
"pc": 1322,
"op": "DUP3"
},
{
"pc": 1323,
"op": "DUP3"
},
{
"pc": 1324,
"op": "POP"
},
{
"pc": 1325,
"op": "SLOAD"
},
{
"pc": 1326,
"op": "ADD"
},
{
"pc": 1327,
"op": "SWAP3"
},
{
"pc": 1328,
"op": "POP"
},
{
"pc": 1329,
"op": "POP"
},
{
"pc": 1330,
"op": "DUP2"
},
{
"pc": 1331,
"op": "SWAP1"
},
{
"pc": 1332,
"op": "SSTORE"
},
{
"pc": 1333,
"op": "POP"
},
{
"pc": 1334,
"op": "DUP2"
},
{
"pc": 1335,
"op": "PUSH1",
"arg": "0x07"
},
{
"pc": 1337,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1339,
"op": "POP"
},
{
"pc": 1340,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1342,
"op": "DUP7"
},
{
"pc": 1343,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1345,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1347,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1349,
"op": "EXP"
},
{
"pc": 1350,
"op": "SUB"
},
{
"pc": 1351,
"op": "AND"
},
{
"pc": 1352,
"op": "DUP2"
},
{
"pc": 1353,
"op": "MSTORE"
},
{
"pc": 1354,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1356,
"op": "ADD"
},
{
"pc": 1357,
"op": "SWAP1"
},
{
"pc": 1358,
"op": "DUP2"
},
{
"pc": 1359,
"op": "MSTORE"
},
{
"pc": 1360,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1362,
"op": "ADD"
},
{
"pc": 1363,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1365,
"op": "SHA3"
},
{
"pc": 1366,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1368,
"op": "POP"
},
{
"pc": 1369,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1371,
"op": "CALLER"
},
{
"pc": 1372,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1374,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1376,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1378,
"op": "EXP"
},
{
"pc": 1379,
"op": "SUB"
},
{
"pc": 1380,
"op": "AND"
},
{
"pc": 1381,
"op": "DUP2"
},
{
"pc": 1382,
"op": "MSTORE"
},
{
"pc": 1383,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1385,
"op": "ADD"
},
{
"pc": 1386,
"op": "SWAP1"
},
{
"pc": 1387,
"op": "DUP2"
},
{
"pc": 1388,
"op": "MSTORE"
},
{
"pc": 1389,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1391,
"op": "ADD"
},
{
"pc": 1392,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1394,
"op": "SHA3"
},
{
"pc": 1395,
"op": "PUSH1",
"arg": "0x00"
},
{
"pc": 1397,
"op": "DUP3"
},
{
"pc": 1398,
"op": "DUP3"
},
{
"pc": 1399,
"op": "DUP3"
},
{
"pc": 1400,
"op": "POP"
},
{
"pc": 1401,
"op": "SLOAD"
},
{
"pc": 1402,
"op": "ADD"
},
{
"pc": 1403,
"op": "SWAP3"
},
{
"pc": 1404,
"op": "POP"
},
{
"pc": 1405,
"op": "POP"
},
{
"pc": 1406,
"op": "DUP2"
},
{
"pc": 1407,
"op": "SWAP1"
},
{
"pc": 1408,
"op": "SSTORE"
},
{
"pc": 1409,
"op": "POP"
},
{
"pc": 1410,
"op": "DUP3"
},
{
"pc": 1411,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1413,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1415,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1417,
"op": "EXP"
},
{
"pc": 1418,
"op": "SUB"
},
{
"pc": 1419,
"op": "AND"
},
{
"pc": 1420,
"op": "DUP5"
},
{
"pc": 1421,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1423,
"op": "PUSH1",
"arg": "0xa0"
},
{
"pc": 1425,
"op": "PUSH1",
"arg": "0x02"
},
{
"pc": 1427,
"op": "EXP"
},
{
"pc": 1428,
"op": "SUB"
},
{
"pc": 1429,
"op": "AND"
},
{
"pc": 1430,
"op": "PUSH32",
"arg": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
},
{
"pc": 1463,
"op": "DUP5"
},
{
"pc": 1464,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1466,
"op": "MLOAD"
},
{
"pc": 1467,
"op": "DUP1"
},
{
"pc": 1468,
"op": "DUP3"
},
{
"pc": 1469,
"op": "DUP2"
},
{
"pc": 1470,
"op": "MSTORE"
},
{
"pc": 1471,
"op": "PUSH1",
"arg": "0x20"
},
{
"pc": 1473,
"op": "ADD"
},
{
"pc": 1474,
"op": "SWAP2"
},
{
"pc": 1475,
"op": "POP"
},
{
"pc": 1476,
"op": "POP"
},
{
"pc": 1477,
"op": "PUSH1",
"arg": "0x40"
},
{
"pc": 1479,
"op": "MLOAD"
},
{
"pc": 1480,
"op": "DUP1"
},
{
"pc": 1481,
"op": "SWAP2"
},
{
"pc": 1482,
"op": "SUB"
},
{
"pc": 1483,
"op": "SWAP1"
},
{
"pc": 1484,
"op": "LOG3"
},
{
"pc": 1485,
"op": "POP"
},
{
"pc": 1486,
"op": "PUSH1",
"arg": "0x01"
},
{
"pc": 1488,
"op": "SWAP4"
},
{
"pc": 1489,
"op": "SWAP3"
},
{
"pc": 1490,
"op": "POP"
},
{
"pc": 1491,
"op": "POP"
},
{
"pc": 1492,
"op": "POP"
},
{
"pc": 1493,
"op": "JUMP"
}
]
exec
js_repl in /tmp/codex-wkeusirp
succeeded in 18ms:
{
"pc": 833,
"op": "CALL",
"before": [
"(0x03+(0x0f*((0x1f+m[0x60])/0x20)))",
"0x04",
"0x00",
"(0x20+0x60)",
"m[0x60]",
"(0x20+(0x20+(0x20+(0x20+(0x20+(0x04+m[0x40]))))))",
"m[0x60]",
"m[0x60]",
"(0x20+0x60)",
"(0x20+(0x20+(0x20+(0x20+(0x20+(0x04+m[0x40]))))))",
"(0x20+(0x20+(0x20+(0x04+m[0x40]))))",
"(0x04+m[0x40])"
],
"call": {
"to": "0x04",
"value": "0x00",
"inOff": "(0x20+0x60)",
"inSize": "m[0x60]",
"outOff": "(0x20+(0x20+(0x20+(0x20+(0x20+(0x04+m[0x40]))))))",
"outSize": "m[0x60]",
"gas": "(0x03+(0x0f*((0x1f+m[0x60])/0x20)))"
},
"after": [
"call(0x04,value=0x00,in=(0x20+0x60):m[0x60],out=(0x20+(0x20+(0x20+(0x20+(0x20+(0x04+m[0x40])))))):m[0x60],gas=(0x03+(0x0f*((0x1f+m[0x60])/0x20))))",
"m[0x60]",
"(0x20+0x60)",
"(0x20+(0x20+(0x20+(0x20+(0x20+(0x04+m[0x40]))))))",
"(0x20+(0x20+(0x20+(0x04+m[0x40]))))",
"(0x04+m[0x40])",
"0x60",
"address(this)",
"cd[0x24]",
"msg.sender",
"0x8f4ffcb1",
"(((0x02**0xa0)-0x01)&cd[0x04])"
]
}
---
{
"pc": 901,
"op": "CALL",
"before": [
"(gas-0x61da)",
"?dup8",
"0x00",
"m[0x40]",
"(len-m[0x40])",
"m[0x40]",
"0x00",
"len"
],
"call": {
"to": "?dup8",
"value": "0x00",
"inOff": "m[0x40]",
"inSize": "(len-m[0x40])",
"outOff": "m[0x40]",
"outSize": "0x00",
"gas": "(gas-0x61da)"
},
"after": [
"call(?dup8,value=0x00,in=m[0x40]:(len-m[0x40]),out=m[0x40]:0x00,gas=(gas-0x61da))",
"len"
]
}
exec
js_repl in /tmp/codex-wkeusirp
succeeded in 2ms:
{
"pc": 833,
"op": "CALL",
"before": [
"(0x03+(0x0f*((0x1f+m[0x60])/0x20)))",
"0x04",
"0x00",
"(0x20+0x60)",
"m[0x60]",
"(0x20+(0x20+(0x20+(0x20+(0x20+(0x04+m[0x40]))))))",
"m[0x60]",
"m[0x60]",
"(0x20+0x60)",
"(0x20+(0x20+(0x20+(0x20+(0x20+(0x04+m[0x40]))))))",
"(0x20+(0x20+(0x20+(0x04+m[0x40]))))",
"(0x04+m[0x40])"
],
"call": {
"to": "0x04",
"value": "0x00",
"inOff": "(0x20+0x60)",
"inSize": "m[0x60]",
"outOff": "(0x20+(0x20+(0x20+(0x20+(0x20+(0x04+m[0x40]))))))",
"outSize": "m[0x60]",
"gas": "(0x03+(0x0f*((0x1f+m[0x60])/0x20)))"
},
"after": [
"call(0x04,value=0x00,in=(0x20+0x60):m[0x60],out=(0x20+(0x20+(0x20+(0x20+(0x20+(0x04+m[0x40])))))):m[0x60],gas=(0x03+(0x0f*((0x1f+m[0x60])/0x20))))",
"m[0x60]",
"(0x20+0x60)",
"(0x20+(0x20+(0x20+(0x20+(0x20+(0x04+m[0x40]))))))",
"(0x20+(0x20+(0x20+(0x04+m[0x40]))))",
"(0x04+m[0x40])",
"0x60",
"address(this)",
"cd[0x24]",
"msg.sender",
"0x8f4ffcb1",
"(((0x02**0xa0)-0x01)&cd[0x04])"
]
}
{
"pc": 901,
"op": "CALL",
"before": [
"(gas-0x61da)",
"(((0x02**0xa0)-0x01)&cd[0x04])",
"0x00",
"m[0x40]",
"((0x20+((m[0x60]+(0x20+(0x20+(0x20+(0x20+(0x20+(0x04+m[0x40])))))))-(0x1f&m[0x60])))-m[0x40])",
"m[0x40]",
"0x00",
"(0x20+((m[0x60]+(0x20+(0x20+(0x20+(0x20+(0x20+(0x04+m[0x40])))))))-(0x1f&m[0x60])))",
"0x8f4ffcb1",
"(((0x02**0xa0)-0x01)&cd[0x04])",
"cd[0x04]",
"0x00"
],
"call": {
"to": "(((0x02**0xa0)-0x01)&cd[0x04])",
"value": "0x00",
"inOff": "m[0x40]",
"inSize": "((0x20+((m[0x60]+(0x20+(0x20+(0x20+(0x20+(0x20+(0x04+m[0x40])))))))-(0x1f&m[0x60])))-m[0x40])",
"outOff": "m[0x40]",
"outSize": "0x00",
"gas": "(gas-0x61da)"
},
"after": [
"call((((0x02**0xa0)-0x01)&cd[0x04]),value=0x00,in=m[0x40]:((0x20+((m[0x60]+(0x20+(0x20+(0x20+(0x20+(0x20+(0x04+m[0x40])))))))-(0x1f&m[0x60])))-m[0x40]),out=m[0x40]:0x00,gas=(gas-0x61da))",
"(0x20+((m[0x60]+(0x20+(0x20+(0x20+(0x20+(0x20+(0x04+m[0x40])))))))-(0x1f&m[0x60])))",
"0x8f4ffcb1",
"(((0x02**0xa0)-0x01)&cd[0x04])",
"cd[0x04]",
"0x00",
"0x60",
"cd[0x24]",
"cd[0x04]",
"0x0452",
"JUMPDEST(sel)"
]
}
exec
js_repl in /tmp/codex-wkeusirp
succeeded in 2ms:
{
"pc": 1050,
"op": "CALL",
"before": [
"(0x03+(0x0f*((0x1f+m[JUMPDEST(sel)])/0x20)))",
"0x04",
"0x00",
"(0x20+JUMPDEST(sel))",
"m[JUMPDEST(sel)]",
"(0x20+(0x20+m[0x40]))",
"m[JUMPDEST(sel)]",
"m[JUMPDEST(sel)]",
"(0x20+JUMPDEST(sel))",
"(0x20+(0x20+m[0x40]))",
"m[0x40]",
"m[0x40]"
],
"call": {
"to": "0x04",
"value": "0x00",
"inOff": "(0x20+JUMPDEST(sel))",
"inSize": "m[JUMPDEST(sel)]",
"outOff": "(0x20+(0x20+m[0x40]))",
"outSize": "m[JUMPDEST(sel)]",
"gas": "(0x03+(0x0f*((0x1f+m[JUMPDEST(sel)])/0x20)))"
},
"after": [
"call(0x04,value=0x00,in=(0x20+JUMPDEST(sel)):m[JUMPDEST(sel)],out=(0x20+(0x20+m[0x40])):m[JUMPDEST(sel)],gas=(0x03+(0x0f*((0x1f+m[JUMPDEST(sel)])/0x20))))",
"m[JUMPDEST(sel)]",
"(0x20+JUMPDEST(sel))",
"(0x20+(0x20+m[0x40]))",
"m[0x40]",
"m[0x40]",
"JUMPDEST(sel)"
]
}
codex
{"no_findings":false,"summary":"Bytecode-only review found one medium-confidence accounting flaw in the approval/allowance flow and one low-severity callback/reentrancy risk in a custom approve-and-call style entrypoint. No proxy/delegatecall/selfdestruct behavior was evidenced in the bundle.","findings":[{"severity":"medium","category":"other","title":"Allowance accounting appears cumulative and is not reset on re-approval","exploit_scenario":"Best-effort selector inference indicates `selector:0xcae9ca51` is the only approval-like writer for the nested mapping at slot 0x06. It stores a fresh approved amount, but `selector:0x23b872dd` checks transfers against `spent + amount <= approved` using a second nested mapping at slot 0x07 and then increments that spent counter instead of decreasing the approved amount. If a spender has already used part or all of an approval, a later re-approval to the same nominal amount does not restore the expected remaining allowance. Example: approve 100, spend 100, approve 100 again; future `transferFrom` calls fail because historical spent remains 100. Integrations that read `selector:0xdd62ed3e` may also observe the raw approved amount rather than true remaining spendable capacity.","recommendation":"Use standard remaining-allowance semantics. Either decrement the allowance mapping directly during `transferFrom`, or if keeping separate approved/spent mappings, reset the spent counter whenever a new approval is written and have the public allowance getter return `approved - spent`. Add tests for partial spend, full spend, and re-approval to the same spender.","evidence":"At `pc:0x2c4` the approval-like function writes a nested mapping after building a slot with constant `0x06`. In `selector:0x23b872dd`, the block at `pc:0x48d` builds a slot with constant `0x06`, then another with constant `0x07`, and enforces a bound via `SLOAD(slot7) + amount <= SLOAD(slot6)` before proceeding. Later, at `pc:0x536` through `pc:0x580`, the code writes `SSTORE(slot7, SLOAD(slot7) + amount)`, showing cumulative spend tracking. The getter at `selector:0xdd62ed3e` (`pc:0x3bd` onward) reads the mapping keyed with constant `0x06`, not an obvious remaining-allowance calculation. This is a bytecode inference, but the slot usage pattern is consistent.","locations":["selector:0xcae9ca51","selector:0x23b872dd","selector:0xdd62ed3e","pc:0x2c4","pc:0x48d","pc:0x536","pc:0x580","pc:0x3bd"]},{"severity":"low","category":"reentrancy","title":"Custom approval path performs an unguarded external callback to a user-supplied contract","exploit_scenario":"The custom entrypoint at `selector:0xcae9ca51` writes approval-related state and then performs a `CALL` to the address supplied in calldata, with calldata shaped like `0x8f4ffcb1(...)` (consistent with an approve-and-call/receiveApproval pattern). A malicious callee can reenter public token functions before the original call returns. Because the target is user-chosen, this may be intentional behavior rather than a bug, but any integrator assuming a simple approval without synchronous execution can be surprised.","recommendation":"If this callback is intended, document it clearly as approve-and-call behavior and treat the callee as untrusted. Consider a reentrancy guard around stateful paths that should not be reentered, and validate callback success/expected interface more explicitly. If synchronous callbacks are not required, remove the external call and expose a plain approval flow instead.","evidence":"The bundle’s detector validated an untrusted `CALL` at `pc:0x385` with a computed target. Bytecode-level symbolic tracing of the block starting at `selector:0xcae9ca51` shows the target is the masked address loaded from `calldata[0x04]`, while `pc:0x2c4` has already updated approval-related storage. The earlier `CALL` at `pc:0x341` targets precompile `0x04` for memory copying, so the externally relevant callback is the later call at `pc:0x385`. No guard was detected in the analysis artifact. Returndata/interface checking is unclear from the bundle, so impact is conservatively rated low.","locations":["selector:0xcae9ca51","pc:0x2c4","pc:0x385"]}]}
tokens used
93,962
{
"codex": {
"ran_at": "2026-04-05T05:58:50.017375+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 3506,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Bytecode-only review found one medium-confidence accounting flaw in the approval/allowance flow and one low-severity callback/reentrancy risk in a custom approve-and-call style entrypoint. No proxy/delegatecall/selfdestruct behavior was evidenced in the bundle.",
"raw_final": {
"summary": "Bytecode-only review found one medium-confidence accounting flaw in the approval/allowance flow and one low-severity callback/reentrancy risk in a custom approve-and-call style entrypoint. No proxy/delegatecall/selfdestruct behavior was evidenced in the bundle.",
"findings": [
{
"title": "Allowance accounting appears cumulative and is not reset on re-approval",
"category": "other",
"evidence": "At `pc:0x2c4` the approval-like function writes a nested mapping after building a slot with constant `0x06`. In `selector:0x23b872dd`, the block at `pc:0x48d` builds a slot with constant `0x06`, then another with constant `0x07`, and enforces a bound via `SLOAD(slot7) + amount <= SLOAD(slot6)` before proceeding. Later, at `pc:0x536` through `pc:0x580`, the code writes `SSTORE(slot7, SLOAD(slot7) + amount)`, showing cumulative spend tracking. The getter at `selector:0xdd62ed3e` (`pc:0x3bd` onward) reads the mapping keyed with constant `0x06`, not an obvious remaining-allowance calculation. This is a bytecode inference, but the slot usage pattern is consistent.",
"severity": "medium",
"locations": [
"selector:0xcae9ca51",
"selector:0x23b872dd",
"selector:0xdd62ed3e",
"pc:0x2c4",
"pc:0x48d",
"pc:0x536",
"pc:0x580",
"pc:0x3bd"
],
"recommendation": "Use standard remaining-allowance semantics. Either decrement the allowance mapping directly during `transferFrom`, or if keeping separate approved/spent mappings, reset the spent counter whenever a new approval is written and have the public allowance getter return `approved - spent`. Add tests for partial spend, full spend, and re-approval to the same spender.",
"exploit_scenario": "Best-effort selector inference indicates `selector:0xcae9ca51` is the only approval-like writer for the nested mapping at slot 0x06. It stores a fresh approved amount, but `selector:0x23b872dd` checks transfers against `spent + amount <= approved` using a second nested mapping at slot 0x07 and then increments that spent counter instead of decreasing the approved amount. If a spender has already used part or all of an approval, a later re-approval to the same nominal amount does not restore the expected remaining allowance. Example: approve 100, spend 100, approve 100 again; future `transferFrom` calls fail because historical spent remains 100. Integrations that read `selector:0xdd62ed3e` may also observe the raw approved amount rather than true remaining spendable capacity."
},
{
"title": "Custom approval path performs an unguarded external callback to a user-supplied contract",
"category": "reentrancy",
"evidence": "The bundle\u2019s detector validated an untrusted `CALL` at `pc:0x385` with a computed target. Bytecode-level symbolic tracing of the block starting at `selector:0xcae9ca51` shows the target is the masked address loaded from `calldata[0x04]`, while `pc:0x2c4` has already updated approval-related storage. The earlier `CALL` at `pc:0x341` targets precompile `0x04` for memory copying, so the externally relevant callback is the later call at `pc:0x385`. No guard was detected in the analysis artifact. Returndata/interface checking is unclear from the bundle, so impact is conservatively rated low.",
"severity": "low",
"locations": [
"selector:0xcae9ca51",
"pc:0x2c4",
"pc:0x385"
],
"recommendation": "If this callback is intended, document it clearly as approve-and-call behavior and treat the callee as untrusted. Consider a reentrancy guard around stateful paths that should not be reentered, and validate callback success/expected interface more explicitly. If synchronous callbacks are not required, remove the external call and expose a plain approval flow instead.",
"exploit_scenario": "The custom entrypoint at `selector:0xcae9ca51` writes approval-related state and then performs a `CALL` to the address supplied in calldata, with calldata shaped like `0x8f4ffcb1(...)` (consistent with an approve-and-call/receiveApproval pattern). A malicious callee can reenter public token functions before the original call returns. Because the target is user-chosen, this may be intentional behavior rather than a bug, but any integrator assuming a simple approval without synchronous execution can be surprised."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLDATASIZE 00000006: ISZERO 00000007: PUSH2 0x008d 0000000a: JUMPI 0000000b: PUSH1 0xe0 0000000d: PUSH1 0x02 0000000f: EXP 00000010: PUSH1 0x00 00000012: CALLDATALOAD 00000013: DIV 00000014: PUSH4 0x06fdde03 00000019: DUP2 0000001a: EQ 0000001b: PUSH2 0x0095 0000001e: JUMPI 0000001f: DUP1 00000020: PUSH4 0x18160ddd 00000025: EQ 00000026: PUSH2 0x00f2 00000029: JUMPI 0000002a: DUP1 0000002b: PUSH4 0x23b872dd 00000030: EQ 00000031: PUSH2 0x00fb 00000034: JUMPI 00000035: DUP1 00000036: PUSH4 0x313ce567 0000003b: EQ 0000003c: PUSH2 0x012d 0000003f: JUMPI 00000040: DUP1 00000041: PUSH4 0x54fd4d50 00000046: EQ 00000047: PUSH2 0x0139 0000004a: JUMPI 0000004b: DUP1 0000004c: PUSH4 0x70a08231 00000051: EQ 00000052: PUSH2 0x0193 00000055: JUMPI 00000056: DUP1 00000057: PUSH4 0x95d89b41 0000005c: EQ 0000005d: PUSH2 0x01ab 00000060: JUMPI 00000061: DUP1 00000062: PUSH4 0xa9059cbb 00000067: EQ 00000068: PUSH2 0x0207 0000006b: JUMPI 0000006c: DUP1 0000006d: PUSH4 0xcae9ca51 00000072: EQ 00000073: PUSH2 0x0236 00000076: JUMPI 00000077: DUP1 00000078: PUSH4 0xdc3080f2 0000007d: EQ 0000007e: PUSH2 0x0398 00000081: JUMPI 00000082: DUP1 00000083: PUSH4 0xdd62ed3e 00000088: EQ 00000089: PUSH2 0x03bd 0000008c: JUMPI 0000008d: JUMPDEST 0000008e: PUSH2 0x03e2 00000091: PUSH2 0x0002 00000094: JUMP 00000095: JUMPDEST 00000096: PUSH2 0x03e4 00000099: PUSH1 0x00 0000009b: DUP1 0000009c: SLOAD 0000009d: PUSH1 0x20 0000009f: PUSH1 0x02 000000a1: PUSH1 0x01 000000a3: DUP4 000000a4: AND 000000a5: ISZERO 000000a6: PUSH2 0x0100 000000a9: MUL 000000aa: PUSH1 0x00 000000ac: NOT 000000ad: ADD 000000ae: SWAP1 000000af: SWAP3 000000b0: AND 000000b1: SWAP2 000000b2: SWAP1 000000b3: SWAP2 000000b4: DIV 000000b5: PUSH1 0x1f 000000b7: DUP2 000000b8: ADD 000000b9: DUP3 000000ba: SWAP1 000000bb: DIV 000000bc: SWAP1 000000bd: SWAP2 000000be: MUL 000000bf: PUSH1 0x80 000000c1: SWAP1 000000c2: DUP2 000000c3: ADD 000000c4: PUSH1 0x40 000000c6: MSTORE 000000c7: PUSH1 0x60 000000c9: DUP3 000000ca: DUP2 000000cb: MSTORE 000000cc: SWAP3 000000cd: SWAP2 000000ce: SWAP1 000000cf: DUP3 000000d0: DUP3 000000d1: DUP1 000000d2: ISZERO 000000d3: PUSH2 0x0601 000000d6: JUMPI 000000d7: DUP1 000000d8: PUSH1 0x1f 000000da: LT 000000db: PUSH2 0x05d6 000000de: JUMPI 000000df: PUSH2 0x0100 000000e2: DUP1 000000e3: DUP4 000000e4: SLOAD 000000e5: DIV 000000e6: MUL 000000e7: DUP4 000000e8: MSTORE 000000e9: SWAP2 000000ea: PUSH1 0x20 000000ec: ADD 000000ed: SWAP2 000000ee: PUSH2 0x0601 000000f1: JUMP 000000f2: JUMPDEST 000000f3: PUSH2 0x0452 000000f6: PUSH1 0x04 000000f8: SLOAD 000000f9: DUP2 000000fa: JUMP 000000fb: JUMPDEST 000000fc: PUSH2 0x0452 000000ff: PUSH1 0x04 00000101: CALLDATALOAD 00000102: PUSH1 0x24 00000104: CALLDATALOAD 00000105: PUSH1 0x44 00000107: CALLDATALOAD 00000108: PUSH1 0x01 0000010a: PUSH1 0xa0 0000010c: PUSH1 0x02 0000010e: EXP 0000010f: SUB 00000110: DUP4 00000111: AND 00000112: PUSH1 0x00 00000114: SWAP1 00000115: DUP2 00000116: MSTORE 00000117: PUSH1 0x05 00000119: PUSH1 0x20 0000011b: MSTORE 0000011c: PUSH1 0x40 0000011e: DUP2 0000011f: KECCAK256 00000120: SLOAD 00000121: DUP3 00000122: SWAP1 00000123: LT 00000124: ISZERO 00000125: PUSH2 0x046e 00000128: JUMPI 00000129: PUSH2 0x0002 0000012c: JUMP 0000012d: JUMPDEST 0000012e: PUSH2 0x0464 00000131: PUSH1 0x03 00000133: SLOAD 00000134: PUSH1 0xff 00000136: AND 00000137: DUP2 00000138: JUMP 00000139: JUMPDEST 0000013a: PUSH2 0x03e4 0000013d: PUSH1 0x02 0000013f: DUP1 00000140: SLOAD 00000141: PUSH1 0x20 00000143: PUSH1 0x01 00000145: DUP3 00000146: AND 00000147: ISZERO 00000148: PUSH2 0x0100 0000014b: MUL 0000014c: PUSH1 0x00 0000014e: NOT 0000014f: ADD 00000150: SWAP1 00000151: SWAP2 00000152: AND 00000153: DUP3 00000154: SWAP1 00000155: DIV 00000156: PUSH1 0x1f 00000158: DUP2 00000159: ADD 0000015a: DUP3 0000015b: SWAP1 0000015c: DIV 0000015d: SWAP1 0000015e: SWAP2 0000015f: MUL 00000160: PUSH1 0x80 00000162: SWAP1 00000163: DUP2 00000164: ADD 00000165: PUSH1 0x40 00000167: MSTORE 00000168: PUSH1 0x60 0000016a: DUP3 0000016b: DUP2 0000016c: MSTORE 0000016d: SWAP3 0000016e: SWAP2 0000016f: SWAP1 00000170: DUP3 00000171: DUP3 00000172: DUP1 00000173: ISZERO 00000174: PUSH2 0x0601 00000177: JUMPI 00000178: DUP1 00000179: PUSH1 0x1f 0000017b: LT 0000017c: PUSH2 0x05d6 0000017f: JUMPI 00000180: PUSH2 0x0100 00000183: DUP1 00000184: DUP4 00000185: SLOAD 00000186: DIV 00000187: MUL 00000188: DUP4 00000189: MSTORE 0000018a: SWAP2 0000018b: PUSH1 0x20 0000018d: ADD 0000018e: SWAP2 0000018f: PUSH2 0x0601 00000192: JUMP 00000193: JUMPDEST 00000194: PUSH2 0x0452 00000197: PUSH1 0x04 00000199: CALLDATALOAD 0000019a: PUSH1 0x05 0000019c: PUSH1 0x20 0000019e: MSTORE 0000019f: PUSH1 0x00 000001a1: SWAP1 000001a2: DUP2 000001a3: MSTORE 000001a4: PUSH1 0x40 000001a6: SWAP1 000001a7: KECCAK256 000001a8: SLOAD 000001a9: DUP2 000001aa: JUMP 000001ab: JUMPDEST 000001ac: PUSH2 0x03e4 000001af: PUSH1 0x01 000001b1: DUP1 000001b2: SLOAD 000001b3: PUSH1 0x20 000001b5: PUSH1 0x02 000001b7: DUP3 000001b8: DUP5 000001b9: AND 000001ba: ISZERO 000001bb: PUSH2 0x0100 000001be: MUL 000001bf: PUSH1 0x00 000001c1: NOT 000001c2: ADD 000001c3: SWAP1 000001c4: SWAP3 000001c5: AND 000001c6: SWAP2 000001c7: SWAP1 000001c8: SWAP2 000001c9: DIV 000001ca: PUSH1 0x1f 000001cc: DUP2 000001cd: ADD 000001ce: DUP3 000001cf: SWAP1 000001d0: DIV 000001d1: SWAP1 000001d2: SWAP2 000001d3: MUL 000001d4: PUSH1 0x80 000001d6: SWAP1 000001d7: DUP2 000001d8: ADD 000001d9: PUSH1 0x40 000001db: MSTORE 000001dc: PUSH1 0x60 000001de: DUP3 000001df: DUP2 000001e0: MSTORE 000001e1: SWAP3 000001e2: SWAP2 000001e3: SWAP1 000001e4: DUP3 000001e5: DUP3 000001e6: DUP1 000001e7: ISZERO 000001e8: PUSH2 0x0601 000001eb: JUMPI 000001ec: DUP1 000001ed: PUSH1 0x1f 000001ef: LT 000001f0: PUSH2 0x05d6 000001f3: JUMPI 000001f4: PUSH2 0x0100 000001f7: DUP1 000001f8: DUP4 000001f9: SLOAD 000001fa: DIV 000001fb: MUL 000001fc: DUP4 000001fd: MSTORE 000001fe: SWAP2 000001ff: PUSH1 0x20 00000201: ADD 00000202: SWAP2 00000203: PUSH2 0x0601 00000206: JUMP 00000207: JUMPDEST 00000208: PUSH2 0x03e2 0000020b: PUSH1 0x04 0000020d: CALLDATALOAD 0000020e: PUSH1 0x24 00000210: CALLDATALOAD 00000211: PUSH1 0x01 00000213: PUSH1 0xa0 00000215: PUSH1 0x02 00000217: EXP 00000218: SUB 00000219: CALLER 0000021a: AND 0000021b: PUSH1 0x00 0000021d: SWAP1 0000021e: DUP2 0000021f: MSTORE 00000220: PUSH1 0x05 00000222: PUSH1 0x20 00000224: MSTORE 00000225: PUSH1 0x40 00000227: SWAP1 00000228: KECCAK256 00000229: SLOAD 0000022a: DUP2 0000022b: SWAP1 0000022c: LT 0000022d: ISZERO 0000022e: PUSH2 0x0609 00000231: JUMPI 00000232: PUSH2 0x0002 00000235: JUMP 00000236: JUMPDEST 00000237: PUSH1 0x80 00000239: PUSH1 0x20 0000023b: PUSH1 0x44 0000023d: CALLDATALOAD 0000023e: PUSH1 0x04 00000240: DUP2 00000241: DUP2 00000242: ADD 00000243: CALLDATALOAD 00000244: PUSH1 0x1f 00000246: DUP2 00000247: ADD 00000248: DUP5 00000249: SWAP1 0000024a: DIV 0000024b: SWAP1 0000024c: SWAP4 0000024d: MUL 0000024e: DUP5 0000024f: ADD 00000250: PUSH1 0x40 00000252: MSTORE 00000253: PUSH1 0x60 00000255: DUP4 00000256: DUP2 00000257: MSTORE 00000258: PUSH2 0x0452 0000025b: SWAP5 0000025c: DUP3 0000025d: CALLDATALOAD 0000025e: SWAP5 0000025f: PUSH1 0x24 00000261: DUP1 00000262: CALLDATALOAD 00000263: SWAP6 00000264: PUSH1 0x64 00000266: SWAP5 00000267: SWAP4 00000268: SWAP2 00000269: ADD 0000026a: SWAP2 0000026b: SWAP1 0000026c: DUP2 0000026d: SWAP1 0000026e: DUP4 0000026f: DUP3 00000270: DUP1 00000271: DUP3 00000272: DUP5 00000273: CALLDATACOPY 00000274: POP 00000275: SWAP5 00000276: SWAP7 00000277: POP 00000278: POP 00000279: POP 0000027a: POP 0000027b: POP 0000027c: POP 0000027d: POP 0000027e: PUSH1 0x00 00000280: PUSH1 0x00 00000282: DUP4 00000283: PUSH1 0x06 00000285: PUSH1 0x00 00000287: POP 00000288: PUSH1 0x00 0000028a: CALLER 0000028b: PUSH1 0x01 0000028d: PUSH1 0xa0 0000028f: PUSH1 0x02 00000291: EXP 00000292: SUB 00000293: AND 00000294: DUP2 00000295: MSTORE 00000296: PUSH1 0x20 00000298: ADD 00000299: SWAP1 0000029a: DUP2 0000029b: MSTORE 0000029c: PUSH1 0x20 0000029e: ADD 0000029f: PUSH1 0x00 000002a1: KECCAK256 000002a2: PUSH1 0x00 000002a4: POP 000002a5: PUSH1 0x00 000002a7: DUP8 000002a8: PUSH1 0x01 000002aa: PUSH1 0xa0 000002ac: PUSH1 0x02 000002ae: EXP 000002af: SUB 000002b0: AND 000002b1: DUP2 000002b2: MSTORE 000002b3: PUSH1 0x20 000002b5: ADD 000002b6: SWAP1 000002b7: DUP2 000002b8: MSTORE 000002b9: PUSH1 0x20 000002bb: ADD 000002bc: PUSH1 0x00 000002be: KECCAK256 000002bf: PUSH1 0x00 000002c1: POP 000002c2: DUP2 000002c3: SWAP1 000002c4: SSTORE 000002c5: POP 000002c6: DUP5 000002c7: SWAP1 000002c8: POP 000002c9: DUP1 000002ca: PUSH1 0x01 000002cc: PUSH1 0xa0 000002ce: PUSH1 0x02 000002d0: EXP 000002d1: SUB 000002d2: AND 000002d3: PUSH4 0x8f4ffcb1 000002d8: CALLER 000002d9: DUP7 000002da: ADDRESS 000002db: DUP8 000002dc: PUSH1 0x40 000002de: MLOAD 000002df: DUP6 000002e0: PUSH1 0xe0 000002e2: PUSH1 0x02 000002e4: EXP 000002e5: MUL 000002e6: DUP2 000002e7: MSTORE 000002e8: PUSH1 0x04 000002ea: ADD 000002eb: DUP1 000002ec: DUP6 000002ed: PUSH1 0x01 000002ef: PUSH1 0xa0 000002f1: PUSH1 0x02 000002f3: EXP 000002f4: SUB 000002f5: AND 000002f6: DUP2 000002f7: MSTORE 000002f8: PUSH1 0x20 000002fa: ADD 000002fb: DUP5 000002fc: DUP2 000002fd: MSTORE 000002fe: PUSH1 0x20 00000300: ADD 00000301: DUP4 00000302: PUSH1 0x01 00000304: PUSH1 0xa0 00000306: PUSH1 0x02 00000308: EXP 00000309: SUB 0000030a: AND 0000030b: DUP2 0000030c: MSTORE 0000030d: PUSH1 0x20 0000030f: ADD 00000310: DUP1 00000311: PUSH1 0x20 00000313: ADD 00000314: DUP3 00000315: DUP2 00000316: SUB 00000317: DUP3 00000318: MSTORE 00000319: DUP4 0000031a: DUP2 0000031b: DUP2 0000031c: MLOAD 0000031d: DUP2 0000031e: MSTORE 0000031f: PUSH1 0x20 00000321: ADD 00000322: SWAP2 00000323: POP 00000324: DUP1 00000325: MLOAD 00000326: SWAP1 00000327: PUSH1 0x20 00000329: ADD 0000032a: SWAP1 0000032b: DUP1 0000032c: DUP4 0000032d: DUP4 0000032e: DUP3 0000032f: SWAP1 00000330: PUSH1 0x00 00000332: PUSH1 0x04 00000334: PUSH1 0x20 00000336: DUP5 00000337: PUSH1 0x1f 00000339: ADD 0000033a: DIV 0000033b: PUSH1 0x0f 0000033d: MUL 0000033e: PUSH1 0x03 00000340: ADD 00000341: CALL 00000342: POP 00000343: SWAP1 00000344: POP 00000345: SWAP1 00000346: DUP2 00000347: ADD 00000348: SWAP1 00000349: PUSH1 0x1f 0000034b: AND 0000034c: DUP1 0000034d: ISZERO 0000034e: PUSH2 0x036b 00000351: JUMPI 00000352: DUP1 00000353: DUP3 00000354: SUB 00000355: DUP1 00000356: MLOAD 00000357: PUSH1 0x01 00000359: DUP4 0000035a: PUSH1 0x20 0000035c: SUB 0000035d: PUSH2 0x0100 00000360: EXP 00000361: SUB 00000362: NOT 00000363: AND 00000364: DUP2 00000365: MSTORE 00000366: PUSH1 0x20 00000368: ADD 00000369: SWAP2 0000036a: POP 0000036b: JUMPDEST 0000036c: POP 0000036d: SWAP6 0000036e: POP 0000036f: POP 00000370: POP 00000371: POP 00000372: POP 00000373: POP 00000374: PUSH1 0x00 00000376: PUSH1 0x40 00000378: MLOAD 00000379: DUP1 0000037a: DUP4 0000037b: SUB 0000037c: DUP2 0000037d: PUSH1 0x00 0000037f: DUP8 00000380: PUSH2 0x61da 00000383: GAS 00000384: SUB 00000385: CALL 00000386: ISZERO 00000387: PUSH2 0x0002 0000038a: JUMPI 0000038b: POP 0000038c: PUSH1 0x01 0000038e: SWAP8 0000038f: SWAP7 00000390: POP 00000391: POP 00000392: POP 00000393: POP 00000394: POP 00000395: POP 00000396: POP 00000397: JUMP 00000398: JUMPDEST 00000399: PUSH1 0x07 0000039b: PUSH1 0x20 0000039d: SWAP1 0000039e: DUP2 0000039f: MSTORE 000003a0: PUSH1 0x04 000003a2: CALLDATALOAD 000003a3: PUSH1 0x00 000003a5: SWAP1 000003a6: DUP2 000003a7: MSTORE 000003a8: PUSH1 0x40 000003aa: DUP1 000003ab: DUP3 000003ac: KECCAK256 000003ad: SWAP1 000003ae: SWAP3 000003af: MSTORE 000003b0: PUSH1 0x24 000003b2: CALLDATALOAD 000003b3: DUP2 000003b4: MSTORE 000003b5: KECCAK256 000003b6: SLOAD 000003b7: PUSH2 0x0452 000003ba: SWAP1 000003bb: DUP2 000003bc: JUMP 000003bd: JUMPDEST 000003be: PUSH1 0x06 000003c0: PUSH1 0x20 000003c2: SWAP1 000003c3: DUP2 000003c4: MSTORE 000003c5: PUSH1 0x04 000003c7: CALLDATALOAD 000003c8: PUSH1 0x00 000003ca: SWAP1 000003cb: DUP2 000003cc: MSTORE 000003cd: PUSH1 0x40 000003cf: DUP1 000003d0: DUP3 000003d1: KECCAK256 000003d2: SWAP1 000003d3: SWAP3 000003d4: MSTORE 000003d5: PUSH1 0x24 000003d7: CALLDATALOAD 000003d8: DUP2 000003d9: MSTORE 000003da: KECCAK256 000003db: SLOAD 000003dc: PUSH2 0x0452 000003df: SWAP1 000003e0: DUP2 000003e1: JUMP 000003e2: JUMPDEST 000003e3: STOP 000003e4: JUMPDEST 000003e5: PUSH1 0x40 000003e7: MLOAD 000003e8: DUP1 000003e9: DUP1 000003ea: PUSH1 0x20 000003ec: ADD 000003ed: DUP3 000003ee: DUP2 000003ef: SUB 000003f0: DUP3 000003f1: MSTORE 000003f2: DUP4 000003f3: DUP2 000003f4: DUP2 000003f5: MLOAD 000003f6: DUP2 000003f7: MSTORE 000003f8: PUSH1 0x20 000003fa: ADD 000003fb: SWAP2 000003fc: POP 000003fd: DUP1 000003fe: MLOAD 000003ff: SWAP1 00000400: PUSH1 0x20 00000402: ADD 00000403: SWAP1 00000404: DUP1 00000405: DUP4 00000406: DUP4 00000407: DUP3 00000408: SWAP1 00000409: PUSH1 0x00 0000040b: PUSH1 0x04 0000040d: PUSH1 0x20 0000040f: DUP5 00000410: PUSH1 0x1f 00000412: ADD 00000413: DIV 00000414: PUSH1 0x0f 00000416: MUL 00000417: PUSH1 0x03 00000419: ADD 0000041a: CALL 0000041b: POP 0000041c: SWAP1 0000041d: POP 0000041e: SWAP1 0000041f: DUP2 00000420: ADD 00000421: SWAP1 00000422: PUSH1 0x1f 00000424: AND 00000425: DUP1 00000426: ISZERO 00000427: PUSH2 0x0444 0000042a: JUMPI 0000042b: DUP1 0000042c: DUP3 0000042d: SUB 0000042e: DUP1 0000042f: MLOAD 00000430: PUSH1 0x01 00000432: DUP4 00000433: PUSH1 0x20 00000435: SUB 00000436: PUSH2 0x0100 00000439: EXP 0000043a: SUB 0000043b: NOT 0000043c: AND 0000043d: DUP2 0000043e: MSTORE 0000043f: PUSH1 0x20 00000441: ADD 00000442: SWAP2 00000443: POP 00000444: JUMPDEST 00000445: POP 00000446: SWAP3 00000447: POP 00000448: POP 00000449: POP 0000044a: PUSH1 0x40 0000044c: MLOAD 0000044d: DUP1 0000044e: SWAP2 0000044f: SUB 00000450: SWAP1 00000451: RETURN 00000452: JUMPDEST 00000453: PUSH1 0x40 00000455: DUP1 00000456: MLOAD 00000457: SWAP2 00000458: DUP3 00000459: MSTORE 0000045a: MLOAD 0000045b: SWAP1 0000045c: DUP2 0000045d: SWAP1 0000045e: SUB 0000045f: PUSH1 0x20 00000461: ADD 00000462: SWAP1 00000463: RETURN 00000464: JUMPDEST 00000465: PUSH1 0x60 00000467: SWAP1 00000468: DUP2 00000469: MSTORE 0000046a: PUSH1 0x20 0000046c: SWAP1 0000046d: RETURN 0000046e: JUMPDEST 0000046f: PUSH1 0x01 00000471: PUSH1 0xa0 00000473: PUSH1 0x02 00000475: EXP 00000476: SUB 00000477: DUP4 00000478: AND 00000479: DUP2 0000047a: MSTORE 0000047b: PUSH1 0x40 0000047d: DUP2 0000047e: KECCAK256 0000047f: SLOAD 00000480: DUP1 00000481: DUP4 00000482: ADD 00000483: LT 00000484: ISZERO 00000485: PUSH2 0x048d 00000488: JUMPI 00000489: PUSH2 0x0002 0000048c: JUMP 0000048d: JUMPDEST 0000048e: PUSH1 0x01 00000490: PUSH1 0xa0 00000492: PUSH1 0x02 00000494: EXP 00000495: SUB 00000496: DUP1 00000497: DUP6 00000498: AND 00000499: DUP1 0000049a: DUP4 0000049b: MSTORE 0000049c: PUSH1 0x06 0000049e: PUSH1 0x20 000004a0: SWAP1 000004a1: DUP2 000004a2: MSTORE 000004a3: PUSH1 0x40 000004a5: DUP1 000004a6: DUP6 000004a7: KECCAK256 000004a8: CALLER 000004a9: SWAP5 000004aa: SWAP1 000004ab: SWAP5 000004ac: AND 000004ad: DUP1 000004ae: DUP7 000004af: MSTORE 000004b0: SWAP4 000004b1: DUP3 000004b2: MSTORE 000004b3: DUP1 000004b4: DUP6 000004b5: KECCAK256 000004b6: SLOAD 000004b7: SWAP3 000004b8: DUP6 000004b9: MSTORE 000004ba: PUSH1 0x07 000004bc: DUP3 000004bd: MSTORE 000004be: DUP1 000004bf: DUP6 000004c0: KECCAK256 000004c1: SWAP4 000004c2: DUP6 000004c3: MSTORE 000004c4: SWAP3 000004c5: SWAP1 000004c6: MSTORE 000004c7: SWAP1 000004c8: DUP3 000004c9: KECCAK256 000004ca: SLOAD 000004cb: DUP4 000004cc: ADD 000004cd: GT 000004ce: ISZERO 000004cf: PUSH2 0x04d7 000004d2: JUMPI 000004d3: PUSH2 0x0002 000004d6: JUMP 000004d7: JUMPDEST 000004d8: DUP2 000004d9: PUSH1 0x05 000004db: PUSH1 0x00 000004dd: POP 000004de: PUSH1 0x00 000004e0: DUP7 000004e1: PUSH1 0x01 000004e3: PUSH1 0xa0 000004e5: PUSH1 0x02 000004e7: EXP 000004e8: SUB 000004e9: AND 000004ea: DUP2 000004eb: MSTORE 000004ec: PUSH1 0x20 000004ee: ADD 000004ef: SWAP1 000004f0: DUP2 000004f1: MSTORE 000004f2: PUSH1 0x20 000004f4: ADD 000004f5: PUSH1 0x00 000004f7: KECCAK256 000004f8: PUSH1 0x00 000004fa: DUP3 000004fb: DUP3 000004fc: DUP3 000004fd: POP 000004fe: SLOAD 000004ff: SUB 00000500: SWAP3 00000501: POP 00000502: POP 00000503: DUP2 00000504: SWAP1 00000505: SSTORE 00000506: POP 00000507: DUP2 00000508: PUSH1 0x05 0000050a: PUSH1 0x00 0000050c: POP 0000050d: PUSH1 0x00 0000050f: DUP6 00000510: PUSH1 0x01 00000512: PUSH1 0xa0 00000514: PUSH1 0x02 00000516: EXP 00000517: SUB 00000518: AND 00000519: DUP2 0000051a: MSTORE 0000051b: PUSH1 0x20 0000051d: ADD 0000051e: SWAP1 0000051f: DUP2 00000520: MSTORE 00000521: PUSH1 0x20 00000523: ADD 00000524: PUSH1 0x00 00000526: KECCAK256 00000527: PUSH1 0x00 00000529: DUP3 0000052a: DUP3 0000052b: DUP3 0000052c: POP 0000052d: SLOAD 0000052e: ADD 0000052f: SWAP3 00000530: POP 00000531: POP 00000532: DUP2 00000533: SWAP1 00000534: SSTORE 00000535: POP 00000536: DUP2 00000537: PUSH1 0x07 00000539: PUSH1 0x00 0000053b: POP 0000053c: PUSH1 0x00 0000053e: DUP7 0000053f: PUSH1 0x01 00000541: PUSH1 0xa0 00000543: PUSH1 0x02 00000545: EXP 00000546: SUB 00000547: AND 00000548: DUP2 00000549: MSTORE 0000054a: PUSH1 0x20 0000054c: ADD 0000054d: SWAP1 0000054e: DUP2 0000054f: MSTORE 00000550: PUSH1 0x20 00000552: ADD 00000553: PUSH1 0x00 00000555: KECCAK256 00000556: PUSH1 0x00 00000558: POP 00000559: PUSH1 0x00 0000055b: CALLER 0000055c: PUSH1 0x01 0000055e: PUSH1 0xa0 00000560: PUSH1 0x02 00000562: EXP 00000563: SUB 00000564: AND 00000565: DUP2 00000566: MSTORE 00000567: PUSH1 0x20 00000569: ADD 0000056a: SWAP1 0000056b: DUP2 0000056c: MSTORE 0000056d: PUSH1 0x20 0000056f: ADD 00000570: PUSH1 0x00 00000572: KECCAK256 00000573: PUSH1 0x00 00000575: DUP3 00000576: DUP3 00000577: DUP3 00000578: POP 00000579: SLOAD 0000057a: ADD 0000057b: SWAP3 0000057c: POP 0000057d: POP 0000057e: DUP2 0000057f: SWAP1 00000580: SSTORE 00000581: POP 00000582: DUP3 00000583: PUSH1 0x01 00000585: PUSH1 0xa0 00000587: PUSH1 0x02 00000589: EXP 0000058a: SUB 0000058b: AND 0000058c: DUP5 0000058d: PUSH1 0x01 0000058f: PUSH1 0xa0 00000591: PUSH1 0x02 00000593: EXP 00000594: SUB 00000595: AND 00000596: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000005b7: DUP5 000005b8: PUSH1 0x40 000005ba: MLOAD 000005bb: DUP1 000005bc: DUP3 000005bd: DUP2 000005be: MSTORE 000005bf: PUSH1 0x20 000005c1: ADD 000005c2: SWAP2 000005c3: POP 000005c4: POP 000005c5: PUSH1 0x40 000005c7: MLOAD 000005c8: DUP1 000005c9: SWAP2 000005ca: SUB 000005cb: SWAP1 000005cc: LOG3 000005cd: POP 000005ce: PUSH1 0x01 000005d0: SWAP4 000005d1: SWAP3 000005d2: POP 000005d3: POP 000005d4: POP 000005d5: JUMP 000005d6: JUMPDEST 000005d7: DUP3 000005d8: ADD 000005d9: SWAP2 000005da: SWAP1 000005db: PUSH1 0x00 000005dd: MSTORE 000005de: PUSH1 0x20 000005e0: PUSH1 0x00 000005e2: KECCAK256 000005e3: SWAP1 000005e4: JUMPDEST 000005e5: DUP2 000005e6: SLOAD 000005e7: DUP2 000005e8: MSTORE 000005e9: SWAP1 000005ea: PUSH1 0x01 000005ec: ADD 000005ed: SWAP1 000005ee: PUSH1 0x20 000005f0: ADD 000005f1: DUP1 000005f2: DUP4 000005f3: GT 000005f4: PUSH2 0x05e4 000005f7: JUMPI 000005f8: DUP3 000005f9: SWAP1 000005fa: SUB 000005fb: PUSH1 0x1f 000005fd: AND 000005fe: DUP3 000005ff: ADD 00000600: SWAP2 00000601: JUMPDEST 00000602: POP 00000603: POP 00000604: POP 00000605: POP 00000606: POP 00000607: DUP2 00000608: JUMP 00000609: JUMPDEST 0000060a: PUSH1 0x01 0000060c: PUSH1 0xa0 0000060e: PUSH1 0x02 00000610: EXP 00000611: SUB 00000612: DUP3 00000613: AND 00000614: PUSH1 0x00 00000616: SWAP1 00000617: DUP2 00000618: MSTORE 00000619: PUSH1 0x40 0000061b: SWAP1 0000061c: KECCAK256 0000061d: SLOAD 0000061e: DUP1 0000061f: DUP3 00000620: ADD 00000621: LT 00000622: ISZERO 00000623: PUSH2 0x062b 00000626: JUMPI 00000627: PUSH2 0x0002 0000062a: JUMP 0000062b: JUMPDEST 0000062c: DUP1 0000062d: PUSH1 0x05 0000062f: PUSH1 0x00 00000631: POP 00000632: PUSH1 0x00 00000634: CALLER 00000635: PUSH1 0x01 00000637: PUSH1 0xa0 00000639: PUSH1 0x02 0000063b: EXP 0000063c: SUB 0000063d: AND 0000063e: DUP2 0000063f: MSTORE 00000640: PUSH1 0x20 00000642: ADD 00000643: SWAP1 00000644: DUP2 00000645: MSTORE 00000646: PUSH1 0x20 00000648: ADD 00000649: PUSH1 0x00 0000064b: KECCAK256 0000064c: PUSH1 0x00 0000064e: DUP3 0000064f: DUP3 00000650: DUP3 00000651: POP 00000652: SLOAD 00000653: SUB 00000654: SWAP3 00000655: POP 00000656: POP 00000657: DUP2 00000658: SWAP1 00000659: SSTORE 0000065a: POP 0000065b: DUP1 0000065c: PUSH1 0x05 0000065e: PUSH1 0x00 00000660: POP 00000661: PUSH1 0x00 00000663: DUP5 00000664: PUSH1 0x01 00000666: PUSH1 0xa0 00000668: PUSH1 0x02 0000066a: EXP 0000066b: SUB 0000066c: AND 0000066d: DUP2 0000066e: MSTORE 0000066f: PUSH1 0x20 00000671: ADD 00000672: SWAP1 00000673: DUP2 00000674: MSTORE 00000675: PUSH1 0x20 00000677: ADD 00000678: PUSH1 0x00 0000067a: KECCAK256 0000067b: PUSH1 0x00 0000067d: DUP3 0000067e: DUP3 0000067f: DUP3 00000680: POP 00000681: SLOAD 00000682: ADD 00000683: SWAP3 00000684: POP 00000685: POP 00000686: DUP2 00000687: SWAP1 00000688: SSTORE 00000689: POP 0000068a: DUP2 0000068b: PUSH1 0x01 0000068d: PUSH1 0xa0 0000068f: PUSH1 0x02 00000691: EXP 00000692: SUB 00000693: AND 00000694: CALLER 00000695: PUSH1 0x01 00000697: PUSH1 0xa0 00000699: PUSH1 0x02 0000069b: EXP 0000069c: SUB 0000069d: AND 0000069e: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000006bf: DUP4 000006c0: PUSH1 0x40 000006c2: MLOAD 000006c3: DUP1 000006c4: DUP3 000006c5: DUP2 000006c6: MSTORE 000006c7: PUSH1 0x20 000006c9: ADD 000006ca: SWAP2 000006cb: POP 000006cc: POP 000006cd: PUSH1 0x40 000006cf: MLOAD 000006d0: DUP1 000006d1: SWAP2 000006d2: SUB 000006d3: SWAP1 000006d4: LOG3 000006d5: POP 000006d6: POP 000006d7: JUMP
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.
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | ETH value transfer possible | 55 | yes | yes |
viewtrace_id: 0x77f0cab4ff0a7a4a710f82cfe5e1f3e3a98544aa13c2bde1d91748de0f474a50
call_targets:
0x0000000000000000000000000000000000000004, 0x13ec114ffdb980cdf470c45dcf45e544d15c4da6
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x77f0cab4ff0a7a4a710f82cfe5e1f3e3a98544aa13c2bde1d91748de0f474a50",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000000000000000000000000000000000004",
"0x13ec114ffdb980cdf470c45dcf45e544d15c4da6"
],
"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": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x54fd4d50",
"selector": "0x54fd4d50",
"calldata_variants": [
"0x54fd4d50",
"0x54fd4d500000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95d89b41",
"selector": "0x95d89b41",
"calldata_variants": [
"0x95d89b41",
"0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 833,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 901,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1050,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": []
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | yes | yes |
viewtrace_id: 0x77f0cab4ff0a7a4a710f82cfe5e1f3e3a98544aa13c2bde1d91748de0f474a50
call_targets:
0x0000000000000000000000000000000000000004, 0x13ec114ffdb980cdf470c45dcf45e544d15c4da6
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x77f0cab4ff0a7a4a710f82cfe5e1f3e3a98544aa13c2bde1d91748de0f474a50",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000000000000000000000000000000000004",
"0x13ec114ffdb980cdf470c45dcf45e544d15c4da6"
],
"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": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x54fd4d50",
"selector": "0x54fd4d50",
"calldata_variants": [
"0x54fd4d50",
"0x54fd4d500000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x70a08231",
"selector": "0x70a08231",
"calldata_variants": [
"0x70a08231",
"0x70a082310000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95d89b41",
"selector": "0x95d89b41",
"calldata_variants": [
"0x95d89b41",
"0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 833,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 901,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1050,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [],
"untrusted_call_count": 3
}
|
| medium | other | codex | Allowance accounting appears cumulative and is not reset on re-approval | 75 | no | — |
viewevidence_json{
"evidence": "At `pc:0x2c4` the approval-like function writes a nested mapping after building a slot with constant `0x06`. In `selector:0x23b872dd`, the block at `pc:0x48d` builds a slot with constant `0x06`, then another with constant `0x07`, and enforces a bound via `SLOAD(slot7) + amount <= SLOAD(slot6)` before proceeding. Later, at `pc:0x536` through `pc:0x580`, the code writes `SSTORE(slot7, SLOAD(slot7) + amount)`, showing cumulative spend tracking. The getter at `selector:0xdd62ed3e` (`pc:0x3bd` onward) reads the mapping keyed with constant `0x06`, not an obvious remaining-allowance calculation. This is a bytecode inference, but the slot usage pattern is consistent.",
"locations": [
"selector:0xcae9ca51",
"selector:0x23b872dd",
"selector:0xdd62ed3e",
"pc:0x2c4",
"pc:0x48d",
"pc:0x536",
"pc:0x580",
"pc:0x3bd"
],
"recommendation": "Use standard remaining-allowance semantics. Either decrement the allowance mapping directly during `transferFrom`, or if keeping separate approved/spent mappings, reset the spent counter whenever a new approval is written and have the public allowance getter return `approved - spent`. Add tests for partial spend, full spend, and re-approval to the same spender.",
"exploit_scenario": "Best-effort selector inference indicates `selector:0xcae9ca51` is the only approval-like writer for the nested mapping at slot 0x06. It stores a fresh approved amount, but `selector:0x23b872dd` checks transfers against `spent + amount <= approved` using a second nested mapping at slot 0x07 and then increments that spent counter instead of decreasing the approved amount. If a spender has already used part or all of an approval, a later re-approval to the same nominal amount does not restore the expected remaining allowance. Example: approve 100, spend 100, approve 100 again; future `transferFrom` calls fail because historical spent remains 100. Integrations that read `selector:0xdd62ed3e` may also observe the raw approved amount rather than true remaining spendable capacity."
}
|
| low | reentrancy | codex | Custom approval path performs an unguarded external callback to a user-supplied contract | 65 | no | — |
viewevidence_json{
"evidence": "The bundle\u2019s detector validated an untrusted `CALL` at `pc:0x385` with a computed target. Bytecode-level symbolic tracing of the block starting at `selector:0xcae9ca51` shows the target is the masked address loaded from `calldata[0x04]`, while `pc:0x2c4` has already updated approval-related storage. The earlier `CALL` at `pc:0x341` targets precompile `0x04` for memory copying, so the externally relevant callback is the later call at `pc:0x385`. No guard was detected in the analysis artifact. Returndata/interface checking is unclear from the bundle, so impact is conservatively rated low.",
"locations": [
"selector:0xcae9ca51",
"pc:0x2c4",
"pc:0x385"
],
"recommendation": "If this callback is intended, document it clearly as approve-and-call behavior and treat the callee as untrusted. Consider a reentrancy guard around stateful paths that should not be reentered, and validate callback success/expected interface more explicitly. If synchronous callbacks are not required, remove the external call and expose a plain approval flow instead.",
"exploit_scenario": "The custom entrypoint at `selector:0xcae9ca51` writes approval-related state and then performs a `CALL` to the address supplied in calldata, with calldata shaped like `0x8f4ffcb1(...)` (consistent with an approve-and-call/receiveApproval pattern). A malicious callee can reenter public token functions before the original call returns. Because the target is user-chosen, this may be intentional behavior rather than a bug, but any integrator assuming a simple approval without synchronous execution can be surprised."
}
|