Log suspicious instructions

This commit is contained in:
Yoshi Askharoun
2025-08-02 21:36:40 -05:00
parent bab5aa4542
commit 3a6dfd9f49
+15
View File
@@ -260,6 +260,17 @@ public partial class Decompiler
// These instructions are inconsequential for determining how objects are initialized
break;
case OpCode.Jump:
case OpCode.JumpIfFalse:
case OpCode.JumpIfFalsePeek:
case OpCode.JumpIfTruePeek:
Console.WriteLine($"Suspicious instruction: {instruction}");
// Ensure stack is in valid state
var isPeek = instruction.OpCode is OpCode.JumpIfFalsePeek or OpCode.JumpIfTruePeek or OpCode.JumpIfNullPeek;
var rawJumpCondition = IrisExpression.ToSyntax(isPeek ? stack.Peek() : stack.Pop(), _context);
break;
case OpCode.ConstructObjectParam:
case OpCode.PushThis:
case OpCode.MethodInvoke:
@@ -317,6 +328,10 @@ public partial class Decompiler
if (instruction.OpCode is OpCode.DestructiveListen)
refreshOffset = (uint)instruction.Operands.ElementAt(4).Value;
// What does this mean?
if (scriptId is uint.MaxValue)
break;
var markupTypeSchema = initType.ResolveScriptId(scriptId, out var scriptOffset);
string watch = null;