Files
OpenMaidEngine/vm-map/opcodes.toml
gamer147 5c21074454 chore(gfx): set dispatch labels for the gfx command-buffer ops
VM dispatches on the opcodes.toml label field (OpcodeTableJson), so the 14 gfx
ops' labels are set to their dispatch strings. Ops still stubbed until the VM
cases land (Task 3.3+); full suite green (34), lint clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 17:44:32 -04:00

6826 lines
126 KiB
TOML

# vm-map/opcodes.toml -- CANONICAL living opcode reference (hand-edited).
# Generated artifacts (age_opcodes_himegari.py, build/opcodes.json, docs/opcode-reference.md,
# build/opcode-coverage.md) come from this file via tools/opcodes_build.py --build. Do not edit those.
# Skeletons are appended by --bootstrap; enrich each [opcode.semantics] as we investigate.
[meta]
instruction_model = "code = seq of <opcode:u32> then argc*(<argtype:u32><value:u32>); len_dwords = 1 + 2*argc"
opcodes_used_by_himegari = 248
[meta.arg_types]
"0x0" = "immediate"
"0x1" = "float"
"0x2" = "string"
"0x3" = "global-int"
"0x4" = "global-float"
"0x5" = "global-string"
"0x6" = "global-ptr"
"0x8" = "global-string-ptr"
"0x9" = "local-int"
"0xa" = "local-float"
"0xb" = "local-string"
"0xc" = "local-ptr"
"0xd" = "local-float-ptr"
"0xe" = "local-string-ptr"
[meta.header_fields]
"F0" = "local_integer_1"
"F1" = "local_floats"
"F2" = "local_strings_1"
"F3" = "local_integer_2"
"F4" = "unknown_data"
"F5" = "local_strings_2"
"F6" = "sub_header_length(=0x1C)"
"F7" = "table_1_length"
"F8" = "table_1_offset(=code end)"
"F9" = "table_2_length"
"F10" = "table_2_offset"
"F11" = "table_3_length"
"F12" = "table_3_offset"
[[opcode]]
op = 0x1
label = "u004149C0"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004149C0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x2
label = "exit"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "exit"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode]]
op = 0x3
label = "call-script"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "call-script"
category = "control"
summary = "load & call another SYS4 script by id; id = RAW index into the SYS4INI file table (asset-index). Pushes a script frame; returns to caller when the callee ends."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "native-RE (Ghidra): handler FUN_0041bc90 -> loader FUN_0040e980 -> resolver FUN_0044f390 indexes an 80-byte record table (base [ctx+0x414], count [ctx+0x40c]) at base+id*0x50 = the SYS4INI record layout {name[64],arc_id@0x40,file_number@0x44,offset@0x48,size@0x4c}. Confirmed statically: all 297 distinct corpus call-script ids resolve to a .BIN script with a semantically-exact name (0x1ab->ADDITEM, 0x2ae7->MES, 0x143->BUNKI, 0x329d->CALCREVISE), 0 out-of-range, 0 pack-branch. See docs/engine-re.md + name-resolution.md #1."
confirm_by = ""
details = """
op 0x03 (call-script, argc 1): `call-script <id>`. RESOLVED — the id is a direct RAW index into
the SYS4INI global file table (the same table parse_sys4ini.py reads, but indexed WITHOUT skipping
'@' placeholders; SYS4INI has 13208 records / 2 placeholders). No separate on-disk id->code registry
exists; SYS4INI *is* the call-script registry.
Native mechanism (dispatch table `handler(op)=ctx[0x26c93+op]`, op 0x03 -> FUN_0041bc90):
1. FUN_0041bc90 fetches operand 1 (id), bounds-checks call depth (<=0x26), pushes a frame.
2. FUN_0040e980 (loader): opens the resource by id, reads the 0x20-byte SYS4 header, checks magic,
allocates per-frame code/local buffers from the header var-counts, reads the bytecode body,
pushes a script frame (stride 0x1e = 30 dwords, indexed by ctx[0x14f45]).
3. FUN_0044f390 (resolver): record = [ctx+0x414] + id*0x50. Tries a LOOSE OVERRIDE first
(CreateFileA on record.name -> mod/patch hook point), else opens archive [record.arc_id*0x100 +
ctx+0x410], SetFilePointer to record.offset, size = record.size.
(High-byte-tagged ids `id & 0xff000000` select an alternate pack via [ctx+0x3028]; UNUSED by the
corpus -- 0/297 ids have a high byte.)
Companion op 0x8f `call` is INTRA-script (a local JSR), not cross-script -- see its entry.
This also names the whole call graph statically (build/callscript-names.json).
"""
[[opcode.semantics.args]]
i = 1
role = "script id = raw SYS4INI file index"
observed_types = ["imm", "g-int", "l-ptr"]
[[opcode]]
op = 0x5
label = "ret"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "ret"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode]]
op = 0x6
label = "u00417E80"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00417E80"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x8
label = "u00417FC0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00417FC0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x9
label = "exit-script"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "exit-script"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode]]
op = 0x21
label = "u00418860"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00418860"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x22
label = "u00418920"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00418920"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x25
label = "u00418B40"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00418B40"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x50
label = "add"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "add"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x51
label = "sub"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "sub"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x52
label = "mul"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "mul"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x53
label = "div"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "div"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x54
label = "mod"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "mod"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int", "l-ptr"]
[[opcode]]
op = 0x55
label = "mov"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "mov"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x56
label = "and"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "and"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x57
label = "or"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "or"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x58
label = "sar"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "sar"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x59
label = "shl"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "shl"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int", "l-ptr"]
[[opcode]]
op = 0x5a
label = "eq"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "eq"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x5b
label = "ne"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "ne"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x5c
label = "lt"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "lt"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x5d
label = "lte"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "lte"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x5e
label = "gr"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "gr"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x5f
label = "gre"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "gre"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x60
label = "u0041A270"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041A270"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int", "l-ptr"]
[[opcode]]
op = 0x61
label = "lookup-array"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "lookup-array"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-ptr", "l-str-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "g-str", "l-int", "l-str"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x63
label = "u00414A60"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00414A60"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x64
label = "copy-local-array"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "copy-local-array"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x6c
label = "copy-to-global"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "copy-to-global"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x6e
label = "show-text"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "show-text"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["string", "g-str"]
[[opcode]]
op = 0x6f
label = "end-text-line"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "end-text-line"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x70
label = "u0041A750"
argc = 5
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041A750"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x71
label = "u0041A7B0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "label-def"
category = "structural"
summary = "1 imm; count == T1 table size -> the label/anchor T1 indexes. v1 no-op; revisit if menu/callback dispatch looks up by id"
noop_headless = true
source = "investigation"
confidence = "high"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x72
label = "wait-for-input"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "wait-for-input"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x73
label = "u0041AB30"
argc = 10
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041AB30"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 6
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 7
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 8
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 9
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 10
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x75
label = "u0041AC30"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041AC30"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x76
label = "u0041AC60"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041AC60"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x77
label = "u0041ACB0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041ACB0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x78
label = "u0041AD00"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041AD00"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x79
label = "u0041AD30"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041AD30"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x7a
label = "u0041AD70"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "text-param?"
category = "adv"
summary = "3 args (imm/computed/imm); sub computes a value then 0x7a then show-text — text speed/wait/window param"
noop_headless = false
source = "inference"
confidence = "med"
depends_on = []
evidence = "confirm via frida"
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x7b
label = "u0041ADB0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041ADB0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x7c
label = "u00416A90"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00416A90"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x7f
label = "u00414C60"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00414C60"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x80
label = "u0041AF00"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041AF00"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x85
label = "u00414CF0"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00414CF0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x86
label = "u0041B210"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041B210"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x87
label = "u00414D10"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00414D10"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x88
label = "u0041B290"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041B290"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x8b
label = "u0041B3D0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041B3D0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x8c
label = "jmp"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "jmp"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x8f
label = "call"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "call"
category = "control"
summary = "intra-script subroutine call (local JSR): PC = frame.codebase + operand*4; pushes a return address on the per-frame return stack. NOT cross-script (that is call-script 0x03)."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "native-RE (Ghidra): handler FUN_0041fba0 (= ctx[0x26c93+0x8f]) sets [frame PC @+0x53d2c] = [frame codebase @+0x53d28] + operand*4 and pushes ((pc-base)>>2)+3 onto the per-frame return stack ([ctx+0x552e8]/[ctx+0x55248]). Target is a code OFFSET within the current script (matches header table T3 tag 0x8F = local call targets), confirming it is a local JSR, not a script load."
confirm_by = ""
[[opcode.semantics.args]]
i = 1
role = "local code target (word offset within current script)"
observed_types = ["imm", "g-int"]
[[opcode]]
op = 0x90
label = "u0041BEB0"
argc = 7
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "hotspot-branch"
category = "input"
summary = "cursor/input hotspot hit-test: rect (x,y,w,h) -> 3-way branch on interaction, else fall through to pc+1"
noop_headless = true
source = "investigation"
confidence = "high"
depends_on = [0x1f4, 0x1f5]
evidence = "all 301 ADV scripts contain the identical 8 sites; enc.len 15 lands pc+1 on the fall-through stmt (design-confirmed); fall-through = correct headless no-input path, proven by 279 CLEAN dialogue scenes"
confirm_by = "target->interaction-state mapping (hover-enter/leave/click) via live input capture or Frida in A2"
details = """
op 0x90 (u0041BEB0, argc 7): `0x90 x y w h tgt_a tgt_b tgt_c`. Kelebek left it "ukn" noting args
5-7 are code locations. Corpus analysis (all 301 ADV scripts) resolves it:
- Two forms, both ONLY in one shared ADV-chrome subroutine copied into every ADV script:
* Mode A (1505 = 5x301): immediate x,y,w,h with w=h=20; the five on-screen buttons at
(684|706|728|750|772, 572), each setting one of G[0x6c9..0x6cd] to 1 / 0 / 0+run-action
(reads as hover-enter / hover-leave / click). All 3 targets real.
* Mode B (903 = 3x301): local-int operands, w=h=1, only tgt_c real -- a keyed 2-way input test.
- Every one of the 301 scripts has EXACTLY 8 sites (5 A + 3 B); zero scene-specific use.
- Falls through (pc+1) when nothing matches -- design-confirmed (0xd0 + 15 dwords = 0xdf = label_df).
- Headless (no cursor/input) => fall through => vm0 stub already correct; the 12 EMPTY sweep scenes
are gated by state + this input-wait chrome, NOT by unmodelled 0x90. Model live in A2.
"""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 6
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 7
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x93
label = "u00415040"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415040"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x94
label = "u00415090"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415090"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x97
label = "u0041C150"
argc = 5
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "hotspot-reg?"
category = "input"
summary = "companion register-hotspot / set-widget-action (argc5: v1 v2 1 1 <action-id>; NO code targets)"
noop_headless = true
source = "inference"
confidence = "med"
depends_on = [0x90]
evidence = "interleaves with 0x90 in the shared ADV-chrome subroutine; trailing imm = action id 0x0/0x7/0x8; same widget cluster as 0x90/0x91/0x92/0x95; confirm via frida"
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0xa0
label = "jcc"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "jcc"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0xa1
label = "u00427C00"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00427C00"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0xa2
label = "u00427FD0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00427FD0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0xa3
label = "u004244D0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004244D0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0xae
label = "u00415130"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415130"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0xb4
label = "play-sound-effect"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "play-sound-effect"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "g-int", "l-int"]
[[opcode]]
op = 0xb5
label = "u0041D050"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041D050"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int"]
[[opcode]]
op = 0xb6
label = "u0041D080"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "snd-ctrl?"
category = "audio"
summary = "1 imm; self-chains, 0x41D family near play-sound-effect/0xb5 — sound channel/volume/stop control"
noop_headless = false
source = "inference"
confidence = "low"
depends_on = []
evidence = "confirm via frida"
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0xb7
label = "u0041D0E0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041D0E0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0xb8
label = "u00415520"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415520"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0xb9
label = "u0041D140"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041D140"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0xba
label = "u0041D0B0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041D0B0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0xbf
label = "play-bgm"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "play-bgm"
category = "audio"
summary = "Play background music by id. BGM is addressed by DIRECT LITERAL NAME: id -> BGM{id:03d}.OGG (in DATA3), NOT the per-scene section manifest (that's voices/textures). E.g. play-bgm 5 -> BGM005."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "By-ear confirmed (2026-07-06): SC0000 real game plays BGM005 for play-bgm 0x5 and BGM008 for play-bgm 0x8 (we initially mis-played BGM006/BGM009 via the manifest = off-by-one). Direct-name proven by play-bgm 0x23 -> BGM035.OGG, a real standalone track (BGM set skips 030-034) that the manifest mis-resolved to a graphics entry (EV049AA.AGF). CORRECTS the earlier 'unified manifest / Frida BGM006' claim, which was wrong by one. Voices/textures still use the manifest (files[base+id], offset 0). Diagnostic: `Age.Cli audio SC0000.BIN`."
[[opcode.semantics.args]]
i = 1
role = "bgm id (direct file-name number: BGM{id:03d}.OGG)"
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0xc0
label = "u00415620"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415620"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0xc2
label = "u0041D2B0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041D2B0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0xc4
label = "play-voice"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "play-voice"
category = "audio"
summary = "Play a voice clip by id; id resolves via the SYS4INI section manifest -> files[section_base(scene)+id] (voice OGG in DATA1/DATA4). Same rule as set-texture (NOT play-bgm, which is direct-name BGM{id:03d})."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "By-ear confirmed (2026-07-06): SC0000 prologue voices play on their lines via Godot AudioStreamPlayer. Off-by-one disproven structurally: manifest interleaves graphics/voice (files[35]=EV049AA, [36]=MAN999, [37]=EV052CA, [38]=SYL0001), so files[base+id] lands voices on OGGs while files[base+id-1] would land them on .AGF graphics (silent) -- and they play, so the offset is exactly 0. Lily's lines are correctly form-gated (G[0xa57/0xa58/0xa59]) and stay silent when no form flag is seeded -- not a bug."
[[opcode.semantics.args]]
i = 1
role = "voice id (section-manifest index)"
observed_types = ["imm", "l-int", "l-ptr"]
[[opcode]]
op = 0xc5
label = "u0041D4A0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041D4A0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0xc6
label = "u0041D5D0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041D5D0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0xc7
label = "u0041D760"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041D760"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0xc8
label = "sleep"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "sleep"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0xcc
label = "mouse_callback"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "mouse_callback"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0xcd
label = "get-input-type"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "get-input-type"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode]]
op = 0xd0
label = "u00415830"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415830"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0xd3
label = "u00425960"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00425960"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0xd4
label = "u004266F0"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004266F0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0xd5
label = "u004262C0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004262C0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0xd9
label = "u00415880"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415880"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0xfb
label = "joy_callback"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "joy_callback"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0xfe
label = "u0041E360"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041E360"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0xff
label = "u00415A10"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415A10"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x100
label = "u00415A60"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415A60"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x101
label = "u00415BF0"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415BF0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x107
label = "u0041E500"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041E500"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x108
label = "u00415E70"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415E70"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x109
label = "u00415EC0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415EC0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "l-int"]
[[opcode]]
op = 0x10a
label = "u0041E540"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041E540"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x10b
label = "u0041E5A0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041E5A0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x10c
label = "u0041E5E0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041E5E0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x10d
label = "u00415F10"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415F10"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x12c
label = "lookup-array-2d"
argc = 5
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "lookup-array-2d"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-ptr", "l-str-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "g-str", "l-int", "l-str"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x12e
label = "u0041E940"
argc = 8
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041E940"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 6
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 7
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 8
role = ""
observed_types = ["imm", "g-int", "l-int"]
[[opcode]]
op = 0x12f
label = "u0041ECB0"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041ECB0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x130
label = "u00415F40"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415F40"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x131
label = "u00415F70"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415F70"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int"]
[[opcode]]
op = 0x132
label = "u0041EF00"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041EF00"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x133
label = "u0041EFF0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041EFF0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x134
label = "u0041F050"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041F050"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x135
label = "bit-set"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "bit-set"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int", "l-ptr"]
[[opcode]]
op = 0x136
label = "bit-reset"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "bit-reset"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int", "l-ptr"]
[[opcode]]
op = 0x137
label = "u0041F1C0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041F1C0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x13a
label = "u0041F3A0"
argc = 6
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041F3A0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 6
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x13f
label = "check-bit"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "check-bit"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x140
label = "u0041F9C0"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041F9C0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["string"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["string"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["g-int"]
[[opcode]]
op = 0x141
label = "u0041FAA0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041FAA0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x142
label = "u0041FB10"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041FB10"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x143
label = "u00415FB0"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415FB0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x144
label = "u004259D0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004259D0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-str"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-str"]
[[opcode]]
op = 0x149
label = "u0041FCE0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041FCE0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x191
label = "u0041A4A0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041A4A0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int"]
[[opcode]]
op = 0x192
label = "set-string"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "set-string"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-str", "l-str", "l-str-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["string", "g-int", "g-str", "l-str", "l-str-ptr"]
[[opcode]]
op = 0x193
label = "concat"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "concat"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-str", "l-str"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["string", "g-str", "l-str", "l-str-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["string", "g-str", "l-str", "l-ptr", "l-str-ptr"]
[[opcode]]
op = 0x194
label = "u00425480"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00425480"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-str", "l-str", "l-str-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["string", "l-str", "l-str-ptr"]
[[opcode]]
op = 0x195
label = "u00425580"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00425580"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-str", "l-str", "l-str-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["string", "g-str"]
[[opcode]]
op = 0x196
label = "display-furigana"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "display-furigana"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["string"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["string"]
[[opcode]]
op = 0x197
label = "u0041B510"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041B510"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x198
label = "u0041B540"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041B540"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x199
label = "u00414D50"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00414D50"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x19a
label = "u00414E50"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00414E50"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int"]
[[opcode]]
op = 0x19b
label = "u00414E80"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00414E80"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x19c
label = "u00414EC0"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00414EC0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x19d
label = "u0041C680"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041C680"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-ptr"]
[[opcode]]
op = 0x19e
label = "u0041C6E0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041C6E0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "l-int"]
[[opcode]]
op = 0x1a0
label = "u0041C9B0"
argc = 9
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041C9B0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 6
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 7
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 8
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 9
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x1a1
label = "u0041CB40"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041CB40"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x1a2
label = "gfx-cmd-register"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "gfx-cmd-register"
category = "draw"
summary = "0x1a2 (val) — gfx cmd-type 3. Handler gfx_op_0x1a2_registry_insert @0x42d360: builds key '%c%8.8x'(3, operand-desc) and INSERTS operand 1 into the gfx command-buffer registry (FUN_0042cf70, open-addressing hash). This is what POPULATES the registry that op 0x215 queries. NOT save/scene (raw Kelebek VA 0x428010 drifted to op 0x1ac save handler). See docs/engine-re.md gfx op-contract table."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "Ghidra: real handler FUN_0042d360 (via dispatch table ctx[0x26c93+op]); sets *(ctx+0x53d88+ctx[0x53d14]*0x78)=3, sprintf(\"%c%8.8x\",3,op1), FUN_0042cf70 (hash insert; counterpart of op 0x215 find). NOT save/scene (raw Kelebek VA 0x428010 drifted to op 0x1ac save handler). See docs/engine-re.md"
[[opcode.semantics.args]]
i = 1
role = "value"
observed_types = ["g-int", "l-ptr"]
[[opcode]]
op = 0x1a3
label = "string-lookup-set"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "string-lookup-set"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-ptr"]
[[opcode]]
op = 0x1a4
label = "u0041B580"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041B580"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x1a5
label = "set-font"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "set-font"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["string"]
[[opcode]]
op = 0x1a6
label = "halve-strlen"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "halve-strlen"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-str", "l-str-ptr"]
[[opcode]]
op = 0x1a7
label = "comment"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "comment"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["string", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x1a8
label = "dev_ukn"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "dev_ukn"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x1a9
label = "u00428090"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00428090"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-str", "l-str-ptr"]
[[opcode]]
op = 0x1aa
label = "u00425920"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00425920"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-str", "l-str-ptr"]
[[opcode]]
op = 0x1ab
label = "u0041CCA0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041CCA0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x1ac
label = "u0041CD80"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041CD80"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x1ad
label = "u004154F0"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004154F0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x1ae
label = "u0041CED0"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041CED0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x1af
label = "u004245C0"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004245C0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x1b0
label = "u0041A510"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041A510"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x1b2
label = "u00425790"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00425790"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["string", "g-int"]
[[opcode]]
op = 0x1b3
label = "u004257D0"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004257D0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x1b4
label = "u004237C0"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004237C0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x1b5
label = "u0041B5F0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041B5F0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x1b6
label = "u00414F60"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00414F60"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int"]
[[opcode]]
op = 0x1b7
label = "u0041B640"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041B640"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int"]
[[opcode]]
op = 0x1b8
label = "u0041B670"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041B670"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x1b9
label = "u0041B710"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041B710"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x1ba
label = "u0041D850"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041D850"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x1bb
label = "u0041B7B0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041B7B0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x1bc
label = "u00415670"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "block-mark"
category = "marker"
summary = "zero-arg; follows jcc/mov, precedes mov/ret — block boundary"
noop_headless = true
source = "inference"
confidence = "high"
depends_on = []
evidence = ""
[[opcode]]
op = 0x1bd
label = "u0041D910"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041D910"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x1bf
label = "u004156C0"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "call-end"
category = "marker"
summary = "zero-arg; call->0x1bf->stmt-end — end-of-call-statement marker"
noop_headless = true
source = "inference"
confidence = "med"
depends_on = []
evidence = ""
[[opcode]]
op = 0x1c1
label = "u0041B820"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041B820"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x1c7
label = "u00414F90"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00414F90"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int"]
[[opcode]]
op = 0x1c8
label = "toString"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "toString"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-str"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "l-int"]
[[opcode]]
op = 0x1ca
label = "u0041B9B0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041B9B0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int"]
[[opcode]]
op = 0x1cb
label = "u00414FD0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00414FD0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int"]
[[opcode]]
op = 0x1cc
label = "u00415010"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00415010"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int"]
[[opcode]]
op = 0x1ce
label = "u0041B9F0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041B9F0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x1cf
label = "u0041DA10"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041DA10"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int"]
[[opcode]]
op = 0x1d0
label = "u0041BA80"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041BA80"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x1d1
label = "u0041BAE0"
argc = 5
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041BAE0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x1d2
label = "u0041BB40"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "stmt-desc?"
category = "marker"
summary = "2 imm; immediately after stmt-begin 0x1f4 — statement descriptor?"
noop_headless = true
source = "harness"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x1d3
label = "u0041BB90"
argc = 5
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041BB90"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x1d4
label = "u0041BC00"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0041BC00"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x1d5
label = "u00415700"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "cond-block"
category = "marker"
summary = "zero-arg; ALWAYS follows jcc — marks conditional body entry"
noop_headless = true
source = "inference"
confidence = "high"
depends_on = []
evidence = ""
[[opcode]]
op = 0x1f4
label = "u004160D0"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "stmt-begin"
category = "marker"
summary = "zero-arg; opens scripts, pairs with stmt-end 0x1f5"
noop_headless = true
source = "investigation"
confidence = "high"
depends_on = []
evidence = ""
[[opcode]]
op = 0x1f5
label = "u00416120"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "stmt-end"
category = "marker"
summary = "zero-arg; precedes exit/next-stmt, pairs with 0x1f4"
noop_headless = true
source = "investigation"
confidence = "high"
depends_on = []
evidence = ""
[[opcode]]
op = 0x1f6
label = "u00416170"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00416170"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x1f7
label = "gfx-elem-create"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "gfx-elem-create"
category = "draw"
summary = "0x1f7 (handle)(count) — gfx cmd-type 5. Handler gfx_op_0x1f7_elem_create @0x422270: if count>1 → FUN_0047d8b0(handle,count) (array element), else FUN_0047d850(handle) (single). In label_12649 it selects the object after a 0x215 slot-query, before 0x1fa clears the slot. See docs/engine-re.md gfx op-contract table."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "Ghidra handler 0x422270 (dispatch ctx[0x26c93+0x1f7]); FUN_0047d8b0/FUN_0047d850 on operand1 gated by operand2>1."
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x1f8
label = "create-texture"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "create-texture"
category = "draw"
summary = "Allocate/prepare a texture slot: (slot, width, height, flag). e.g. `create-texture 0xd 0x190 0x1e 0x0` = slot 13, 400x30."
noop_headless = false
source = "investigation"
confidence = "med"
depends_on = []
evidence = "SC0000 CG/UI-draw path disasm; slot/w/h roles read off the operands (400x30 text bars, etc.)."
[[opcode.semantics.args]]
i = 1
role = "texture slot"
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = "width"
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = "height"
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 4
role = "flag"
observed_types = ["imm"]
[[opcode]]
op = 0x1f9
label = "set-texture"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "set-texture"
category = "draw"
summary = "Load asset #resId into texture slot: (resId, slot, flag=-1). resId resolves via the SYS4INI per-scene section manifest: files[section_base(scene)+resId] (same rule for play-bgm/play-voice). See docs/asset-resolution-re.md."
noop_headless = false
source = "frida"
confidence = "high"
depends_on = []
evidence = "SC0000 Frida-confirmed 17/17 (0x25->EV052CA, 0x2e->EV052DB, 0x36->BG030A background); resolution rule validated on 586/595 captured loads. Traced in CG-load subroutine label_12649 as `set-texture G[0x62424] <slot> -1`."
[[opcode.semantics.args]]
i = 1
role = "resId (section-manifest index into SYS4INI)"
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = "texture slot"
observed_types = ["imm", "g-int", "l-int"]
[[opcode.semantics.args]]
i = 3
role = "flag (typically -1 / 0xffffffff)"
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x1fa
label = "gfx-elem-release"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "gfx-elem-release"
category = "draw"
summary = "0x1fa (idx) — gfx cmd-type 3. Handler gfx_op_0x1fa_elem_release @0x4224a0: releases the element at [ctx+0x52bd4 + idx*4] (virtual free, then nulls the slot) + FUN_00474e40(idx). In label_12649 it clears the working slot G[0x62452] after a 0x215/0x1f7 pair. See docs/engine-re.md gfx op-contract table."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "Ghidra handler 0x4224a0 (dispatch ctx[0x26c93+0x1fa]); frees ctx+0x52bd4[operand1*4] via vtbl, then FUN_00474e40(operand1)."
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x1fb
label = "draw-texture"
argc = 8
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "draw-texture"
category = "draw"
summary = "Blit a texture slot to screen. Observed 8 args: (handle, slot, srcx, srcy, w, h, dstx, dsty). e.g. `draw-texture 0xcf08 0x3 0 0 0x320 0x258 0 0` = full-screen (800x600) slot 3 at (0,0)."
noop_headless = false
source = "investigation"
confidence = "med"
depends_on = []
evidence = "SC0000 CG-load subroutine label_12649: `draw-texture (ptr) (slot) 0 0 (w) (h) (dstx) (dsty)`; full-screen slot-3 draws use 0x320x0x258 (800x600)."
[[opcode.semantics.args]]
i = 1
role = "handle/source ref"
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = "texture slot"
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = "src x"
observed_types = ["imm", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 4
role = "src y"
observed_types = ["imm", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 5
role = "width"
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 6
role = "height"
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 7
role = "dst x"
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 8
role = "dst y"
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x1fd
label = "u00420620"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00420620"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x1fe
label = "u004206C0"
argc = 5
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004206C0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x1ff
label = "set-gfx-geom3-c"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "set-gfx-geom3-c"
category = "draw"
summary = "0x1ff (handle)(a)(b)(c) — gfx cmd-type 9. Handler gfx_op_0x1ff_set_geom3 @0x4227b0: SETS a 3-vector (int→float a,b,c) on object `handle` via native worker FUN_0047e800 (sibling of 0x217/0x219, a distinct per-object vector). See docs/engine-re.md gfx op-contract table."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "Ghidra handler 0x4227b0 (dispatch ctx[0x26c93+0x1ff]); FUN_0047e800(op1,(float)op2,(float)op3,(float)op4)."
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x202
label = "gfx-blit-color"
argc = 5
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "gfx-blit-color"
category = "draw"
summary = "0x202 (handle)(x)(y)(alpha)(color) — gfx cmd-type 0xb. Handler gfx_op_0x202_blit_color @0x4228d0: blits object `handle` at (x,y) with a packed ARGB built from alpha(op4, ≥0x100→0xff, <0→FUN_0047f3e0) and color(op5, <0→FUN_0047f3e0) → FUN_0047ea00. See docs/engine-re.md gfx op-contract table."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "Ghidra handler 0x4228d0 (dispatch ctx[0x26c93+0x202]); packs (alpha<<24|rgb) from operands 4/5, FUN_0047ea00(op1,op2,op3,packed)."
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "g-int", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm", "g-int", "l-int"]
[[opcode]]
op = 0x203
label = "gfx-draw-color"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "gfx-draw-color"
category = "draw"
summary = "0x203 (handle)(v)(alpha)(color) — gfx cmd-type 9. Handler gfx_op_0x203_draw_color @0x4229a0: draws object `handle` with op2 + a packed ARGB from alpha(op3)/color(op4) → FUN_0047e9b0. Sibling of 0x202 with one fewer positional arg. See docs/engine-re.md gfx op-contract table."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "Ghidra handler 0x4229a0 (dispatch ctx[0x26c93+0x203]); packs color from operands 3/4, FUN_0047e9b0(op1,op2,packed)."
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "g-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm", "g-int", "l-int"]
[[opcode]]
op = 0x204
label = "draw-string"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "draw-string"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["string", "g-str", "l-str", "l-str-ptr"]
[[opcode]]
op = 0x205
label = "u00420A60"
argc = 6
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00420A60"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 6
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x207
label = "u00420B00"
argc = 8
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00420B00"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "g-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 6
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 7
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 8
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x208
label = "get-texture-size"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "get-texture-size"
category = "draw"
summary = "0x208 (slot)(out_w)(out_h) — writes the loaded texture's width/height into two output globals; keystone for bytecode-computed sprite/bg geometry (SC0000 label_12649)"
noop_headless = false
source = "inference"
confidence = "med"
depends_on = []
evidence = "SC0000 label_12649: set-texture(resId,slot) then 0x208(slot)->w,h feeds w/2 horizontal-center + foot-anchor subtraction into draw-texture dst; stubbing yields 0x0 sizes / off-center draws"
[[opcode.semantics.args]]
i = 1
role = "slot"
observed_types = ["imm", "g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = "out_width"
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 3
role = "out_height"
observed_types = ["g-int", "l-int"]
[[opcode]]
op = 0x20a
label = "u00420CE0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00420CE0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x20b
label = "u00420D50"
argc = 7
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00420D50"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 6
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 7
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x20c
label = "u00416200"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00416200"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x20d
label = "u00420E10"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00420E10"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x20e
label = "u00416250"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00416250"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x20f
label = "u00420E40"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00420E40"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x212
label = "set-gfx-field64"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "set-gfx-field64"
category = "draw"
summary = "0x212 (obj_idx)(val) — gfx cmd-type 5. Handler gfx_op_0x212_set_field64 @0x4230c0: obj=[ctx+0x14d54 + obj_idx*4]; if obj: *(obj+0x64)=val. Sets one per-object field. See docs/engine-re.md gfx op-contract table."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "Ghidra handler 0x4230c0 (dispatch ctx[0x26c93+0x212]); writes [obj+0x64]=operand2, obj from ctx+0x14d54[operand1*4]."
[[opcode.semantics.args]]
i = 1
role = "obj_idx"
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = "value"
observed_types = ["imm"]
[[opcode]]
op = 0x213
label = "set-gfx-xy"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "set-gfx-xy"
category = "draw"
summary = "0x213 (obj_idx)(x)(y) — gfx cmd-type 7. Handler gfx_op_0x213_set_field68_6c @0x423110: obj=[ctx+0x14d54 + obj_idx*4]; if obj: *(obj+0x68)=x; *(obj+0x6c)=y (an (x,y) pair). See docs/engine-re.md gfx op-contract table."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "Ghidra handler 0x423110; writes obj+0x68/+0x6c from operands 2/3, obj from ctx+0x14d54[operand1*4]."
[[opcode.semantics.args]]
i = 1
role = "obj_idx"
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = "x"
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 3
role = "y"
observed_types = ["imm"]
[[opcode]]
op = 0x215
label = "query-gfx-object?"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "query-gfx-object?"
category = "draw"
summary = "0x215 (out)(handle_id) — native graphics command-buffer op. Real handler FUN_0042a0b0 (Ghidra-resolved via the dispatch table ctx[0x26c93+op]; Kelebek's 0x421160 is VA-drift, lands in an unrelated fn). Does TWO things: (1) writes cmd-type 5 into the CURRENT gfx-object record `[ctx+0x53d88 + ctx[0x53d14]*0x78]` (a command-buffer registration, parallel to op 0x1a2→type 3); (2) returns `out = map.find(handle_id)` over an engine-internal associative registry (found value, else 0xffffffff=not-found), sign-tested (gre/lt 0) to drive label_12649's slot-select branch + set working slot G[0x62452]. So `out` is NATIVE COMMAND-BUFFER STATE (the registry is populated by sibling gfx ops — op 0x1a2→FUN_0042cf70 is the hash insert), NOT the VM global bank → seeding story-state CANNOT reproduce it. Stubbed → constant return → every draw collapses to slot 0 → anchor-preserve reads foreign-sized textures → the cumulative bg/sprite drift. SETTLES the drift as (b) a genuine native op, NOT (a) state-divergence. Faithful fix = model the gfx command-buffer (record array + handle→object registry) and run the gfx ops instead of stubbing — static/Frida-free (handlers now readable; inserts are bytecode-driven). Full decode + verdict: docs/engine-re.md (op 0x215 section)."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "Ghidra: real handler FUN_0042a0b0 = {*(ctx+0x53d88+ctx[0x53d14]*0x78)=5; out=FUN_0047f280(FUN_0041b940(2))}. FUN_0047f280 = std::map::find (returns mapped value or 0xffffffff); FUN_0041b940(2) = operand-fetch of operand 2 (the handle key); FUN_00425fb0(1,val) = operand-write to `out`. Registry populated by op 0x1a2 handler FUN_0042d360 → FUN_0042cf70 (open-addressing hash insert). Bytecode sites: SC0000 label_12649 (0x12670) + label_123ef (0x12419/0x12450), handle-ids from 0x62455[idx] (±offset); result gre/lt 0 branches slot-select. Record table 0x3239 (label_125bd @0x0050f) assigns per-object slots 4..13."
[[opcode.semantics.args]]
i = 1
role = "out_slot_status"
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = "handle_id"
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode]]
op = 0x216
label = "query-gfx-field?"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "query-gfx-field?"
category = "draw"
summary = "0x216 (out)(idx) — gfx cmd-type 5. Handler gfx_op_0x216_query_table46d14 @0x42a0f0: out = *(ctx+0x46d14 + idx*0x14). A per-object field query over a stride-0x14 table. See docs/engine-re.md gfx op-contract table."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "Ghidra handler 0x42a0f0; reads ctx+0x46d14[operand2 * 0x14], writes operand1 via FUN_00425fb0(1,·)."
[[opcode.semantics.args]]
i = 1
role = "out"
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = "idx"
observed_types = ["imm", "g-int", "l-int"]
[[opcode]]
op = 0x217
label = "set-gfx-geom3"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "set-gfx-geom3"
category = "draw"
summary = "0x217 (handle)(a)(b)(c) — gfx cmd-type 9. Handler gfx_op_0x217_set_geom3 @0x4231b0: SETS a 3-vector (int→float a,b,c) on object `handle` via native worker FUN_0047e960. In SC0000 label_12649 it writes the anchor vector G[0x6249b/c/d] INTO the object; op 0x218 reads it back. See docs/engine-re.md gfx op-contract table."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "Ghidra handler 0x4231b0 (dispatch ctx[0x26c93+0x217]); FUN_0047e960(op1,(float)op2,(float)op3,(float)op4). label_12649 sites e.g. 0x00c67 handle=G[0x62457], vec=G[0x6249b/c/d]."
[[opcode.semantics.args]]
i = 1
role = "handle"
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = "a"
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = "b"
observed_types = ["imm", "g-int", "l-int"]
[[opcode.semantics.args]]
i = 4
role = "c"
observed_types = ["imm", "g-int"]
[[opcode]]
op = 0x218
label = "get-gfx-geom3?"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "get-gfx-geom3?"
category = "draw"
summary = "0x218 (handle)(out_a)(out_b)(out_c) — gfx cmd-type 9. Handler gfx_op_0x218_query_geom3 @0x42a130: GETS a stored 3-vector from object `handle` (FUN_0047f360) into out_a/b/c. In label_12649 it reads the object's anchor vector back into G[0x6249b/c/d] — a stubbed DRIVER of the render drift (stale anchor → bad centering). See docs/engine-re.md gfx op-contract table."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "Ghidra handler 0x42a130; FUN_0047f360(obj op1) + 3x FUN_00550850→FUN_00425fb0(2/3/4). label_12649 site 0x00c8f handle=G[0x62457] → G[0x6249b/c/d]."
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["g-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["g-int"]
[[opcode]]
op = 0x219
label = "set-gfx-geom3-b"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "set-gfx-geom3-b"
category = "draw"
summary = "0x219 (handle)(a)(b)(c) — gfx cmd-type 9. Handler gfx_op_0x219_set_geom3 @0x423240: SETS a 3-vector (int→float) on object `handle` via native worker FUN_0047e910 (sibling of 0x217, a different per-object vector). See docs/engine-re.md gfx op-contract table."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "Ghidra handler 0x423240 (was unanalyzed; function created this session; dispatch ctx[0x26c93+0x219]); FUN_0047e910(op1,(float)op2,(float)op3,(float)op4)."
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["g-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["g-int"]
[[opcode]]
op = 0x21a
label = "get-gfx-geom3-b?"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "get-gfx-geom3-b?"
category = "draw"
summary = "0x21a (handle)(out_a)(out_b)(out_c) — gfx cmd-type 9. Handler gfx_op_0x21a_query_geom3 @0x42a1b0: GETS a stored 3-vector from object `handle` (FUN_0047f2e0) into out_a/b/c. In label_12649 it reads the object's position vector into G[0x62498/9/a] — a stubbed DRIVER of the render drift. See docs/engine-re.md gfx op-contract table."
noop_headless = false
source = "investigation"
confidence = "high"
depends_on = []
evidence = "Ghidra handler 0x42a1b0; FUN_0047f2e0(obj op1) + 3x→FUN_00425fb0(2/3/4). label_12649 site 0x00c86 handle=G[0x62457] → G[0x62498/9/a]."
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["g-int", "l-int"]
[[opcode]]
op = 0x21b
label = "u004213E0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "line-id?"
category = "marker"
summary = "1 imm; mov->0x21b->stmt-end; near save/load-messkip — likely line/stmt id, verify not msg-control"
noop_headless = true
source = "harness"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x21c
label = "u00416270"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00416270"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x21d
label = "u00421410"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00421410"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x21e
label = "u00421450"
argc = 6
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00421450"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 6
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x21f
label = "u00421510"
argc = 7
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00421510"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 6
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 7
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x220
label = "u004215D0"
argc = 6
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004215D0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 6
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x222
label = "u004216C0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004216C0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x223
label = "u00421700"
argc = 8
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00421700"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm", "l-ptr"]
[[opcode.semantics.args]]
i = 6
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 7
role = ""
observed_types = ["imm", "g-int"]
[[opcode.semantics.args]]
i = 8
role = ""
observed_types = ["imm", "g-int"]
[[opcode]]
op = 0x224
label = "u00416290"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00416290"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x228
label = "u00421940"
argc = 5
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00421940"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "g-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["g-int", "l-int"]
[[opcode]]
op = 0x229
label = "u004219E0"
argc = 5
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004219E0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm", "g-int"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x22a
label = "u00421A90"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00421A90"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x22c
label = "u00421BD0"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00421BD0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x22d
label = "u00421C60"
argc = 5
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00421C60"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["g-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["g-int"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x22f
label = "u00421DD0"
argc = 5
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00421DD0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x230
label = "u00421E70"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00421E70"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int"]
[[opcode]]
op = 0x231
label = "u00421EA0"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00421EA0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-ptr"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm", "l-ptr"]
[[opcode]]
op = 0x232
label = "u00421EF0"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00421EF0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x233
label = "u00421FB0"
argc = 5
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00421FB0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x234
label = "u00422060"
argc = 5
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00422060"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["g-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x236
label = "u004221A0"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004221A0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-ptr"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm", "l-ptr"]
[[opcode]]
op = 0x238
label = "u00422390"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00422390"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int"]
[[opcode]]
op = 0x239
label = "u004223C0"
argc = 6
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004223C0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm", "l-ptr"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm", "l-ptr"]
[[opcode.semantics.args]]
i = 6
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x23a
label = "u00422420"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00422420"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x23b
label = "u00422460"
argc = 7
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00422460"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "g-int", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 6
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 7
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x23c
label = "u004162B0"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004162B0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x23d
label = "u004162F0"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004162F0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x23f
label = "u00422930"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00422930"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "g-int", "l-int"]
[[opcode]]
op = 0x241
label = "u00422B80"
argc = 5
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00422B80"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-ptr"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["l-ptr"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["l-int"]
[[opcode]]
op = 0x242
label = "u00422D60"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00422D60"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x243
label = "u00417070"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00417070"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x248
label = "u00422E80"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00422E80"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x249
label = "u00422EB0"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00422EB0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "l-int", "l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x24d
label = "u00422E90"
argc = 12
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00422E90"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 5
role = ""
observed_types = ["imm", "l-int"]
[[opcode.semantics.args]]
i = 6
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 7
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 8
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 9
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 10
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 11
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 12
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x24e
label = "u00422EA0"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00422EA0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x258
label = "u00422FE0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "decl?"
category = "marker"
summary = "2 imm; runs in a chain right after script-entry 0x259, enumerating ids — prologue declaration/registration?"
noop_headless = true
source = "harness"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x259
label = "u00416410"
argc = 0
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00416410"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode]]
op = 0x2bd
label = "u00423100"
argc = 1
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00423100"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm"]
[[opcode]]
op = 0x2bf
label = "u00423180"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u00423180"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["imm", "g-int", "l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["imm", "l-int"]
[[opcode]]
op = 0x2c0
label = "u004231C0"
argc = 3
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u004231C0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["imm"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["l-ptr"]
[[opcode]]
op = 0x2c5
label = "strlen"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "strlen"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "med"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["g-str", "l-str", "l-str-ptr"]
[[opcode]]
op = 0x2c6
label = "u0042B5E0"
argc = 2
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0042B5E0"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-str"]
[[opcode]]
op = 0x2c8
label = "u0042B610"
argc = 4
abi_source = "kelebek+decode-validated"
[opcode.semantics]
name = "u0042B610"
category = "unknown"
summary = ""
noop_headless = false
source = "kelebek"
confidence = "low"
depends_on = []
evidence = ""
[[opcode.semantics.args]]
i = 1
role = ""
observed_types = ["l-str-ptr"]
[[opcode.semantics.args]]
i = 2
role = ""
observed_types = ["l-str"]
[[opcode.semantics.args]]
i = 3
role = ""
observed_types = ["l-int"]
[[opcode.semantics.args]]
i = 4
role = ""
observed_types = ["imm"]