Files
runelite/runescape-client/src/main/java/Varcs.java
2021-06-16 11:24:56 +01:00

764 lines
27 KiB
Java

import java.io.EOFException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import net.runelite.mapping.Export;
import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature;
import net.runelite.rs.ScriptOpcodes;
@ObfuscatedName("df")
@Implements("Varcs")
public class Varcs {
@ObfuscatedName("be")
@ObfuscatedSignature(
descriptor = "[Loa;"
)
@Export("worldSelectBackSprites")
static SpritePixels[] worldSelectBackSprites;
@ObfuscatedName("da")
@ObfuscatedSignature(
descriptor = "Ljf;"
)
@Export("archive12")
static Archive archive12;
@ObfuscatedName("v")
@Export("intsPersistence")
boolean[] intsPersistence;
@ObfuscatedName("y")
@Export("map")
Map map;
@ObfuscatedName("j")
@Export("strings")
String[] strings;
@ObfuscatedName("o")
@Export("unwrittenChanges")
boolean unwrittenChanges;
@ObfuscatedName("m")
@ObfuscatedGetter(
longValue = -4374446863144258723L
)
long field1382;
Varcs() {
this.unwrittenChanges = false; // L: 22
int var1 = SecureRandomFuture.archive2.getGroupFileCount(19); // L: 26
this.map = new HashMap(); // L: 27
this.intsPersistence = new boolean[var1]; // L: 28
int var2;
for (var2 = 0; var2 < var1; ++var2) { // L: 29
VarcInt var3 = Interpreter.method2009(var2); // L: 30
this.intsPersistence[var2] = var3.persist; // L: 31
}
var2 = 0; // L: 33
if (SecureRandomFuture.archive2.method5031(15)) { // L: 34
var2 = SecureRandomFuture.archive2.getGroupFileCount(15); // L: 35
}
this.strings = new String[var2]; // L: 37
this.read(); // L: 38
} // L: 39
@ObfuscatedName("f")
@ObfuscatedSignature(
descriptor = "(IIB)V",
garbageValue = "88"
)
@Export("setInt")
void setInt(int var1, int var2) {
this.map.put(var1, var2); // L: 42
if (this.intsPersistence[var1]) {
this.unwrittenChanges = true; // L: 43
}
} // L: 44
@ObfuscatedName("e")
@ObfuscatedSignature(
descriptor = "(IB)I",
garbageValue = "-43"
)
@Export("getInt")
int getInt(int var1) {
Object var2 = this.map.get(var1); // L: 47
return var2 instanceof Integer ? (Integer)var2 : -1; // L: 48 49 51
}
@ObfuscatedName("v")
@ObfuscatedSignature(
descriptor = "(ILjava/lang/String;B)V",
garbageValue = "-105"
)
@Export("setString")
void setString(int var1, String var2) {
this.map.put(var1, var2); // L: 55
} // L: 56
@ObfuscatedName("y")
@ObfuscatedSignature(
descriptor = "(IB)Ljava/lang/String;",
garbageValue = "30"
)
@Export("getString")
String getString(int var1) {
Object var2 = this.map.get(var1); // L: 59
return var2 instanceof String ? (String)var2 : ""; // L: 60 61 63
}
@ObfuscatedName("j")
@ObfuscatedSignature(
descriptor = "(ILjava/lang/String;I)V",
garbageValue = "1842220205"
)
@Export("setStringOld")
void setStringOld(int var1, String var2) {
this.strings[var1] = var2; // L: 67
} // L: 68
@ObfuscatedName("o")
@ObfuscatedSignature(
descriptor = "(II)Ljava/lang/String;",
garbageValue = "921484764"
)
@Export("getStringOld")
String getStringOld(int var1) {
return this.strings[var1]; // L: 71
}
@ObfuscatedName("m")
@ObfuscatedSignature(
descriptor = "(I)V",
garbageValue = "1804190455"
)
@Export("clearTransient")
void clearTransient() {
int var1;
for (var1 = 0; var1 < this.intsPersistence.length; ++var1) { // L: 75
if (!this.intsPersistence[var1]) { // L: 76
this.map.remove(var1); // L: 77
}
}
for (var1 = 0; var1 < this.strings.length; ++var1) { // L: 80
this.strings[var1] = null; // L: 81
}
} // L: 83
@ObfuscatedName("r")
@ObfuscatedSignature(
descriptor = "(ZI)Lnp;",
garbageValue = "609461646"
)
@Export("getPreferencesFile")
AccessFile getPreferencesFile(boolean var1) {
return class262.getPreferencesFile("2", class182.field2114.name, var1); // L: 86
}
@ObfuscatedName("h")
@ObfuscatedSignature(
descriptor = "(I)V",
garbageValue = "-1876168838"
)
@Export("write")
void write() {
AccessFile var1 = this.getPreferencesFile(true); // L: 90
try {
int var2 = 3; // L: 92
int var3 = 0; // L: 93
Iterator var4 = this.map.entrySet().iterator(); // L: 94
while (var4.hasNext()) {
Entry var5 = (Entry)var4.next(); // L: 95
int var6 = (Integer)var5.getKey(); // L: 97
if (this.intsPersistence[var6]) { // L: 98
Object var7 = var5.getValue(); // L: 99
var2 += 3; // L: 100
if (var7 instanceof Integer) { // L: 101
var2 += 4;
} else if (var7 instanceof String) { // L: 102
var2 += class44.stringCp1252NullTerminatedByteSize((String)var7);
}
++var3; // L: 103
}
}
Buffer var23 = new Buffer(var2); // L: 107
var23.writeByte(2); // L: 108
var23.writeShort(var3); // L: 109
Iterator var24 = this.map.entrySet().iterator(); // L: 110
while (var24.hasNext()) {
Entry var12 = (Entry)var24.next(); // L: 111
int var13 = (Integer)var12.getKey();
if (this.intsPersistence[var13]) { // L: 114
var23.writeShort(var13);
Object var8 = var12.getValue();
class375 var9 = class375.method6511(var8.getClass());
var23.writeByte(var9.field4137);
class375.method6512(var8, var23); // L: 119
}
}
var1.write(var23.array, 0, var23.offset); // L: 123
} catch (Exception var21) {
} finally {
try {
var1.close();
} catch (Exception var20) {
}
}
this.unwrittenChanges = false;
this.field1382 = ClientPacket.currentTimeMillis();
}
@ObfuscatedName("d")
@ObfuscatedSignature(
descriptor = "(B)V",
garbageValue = "124"
)
@Export("read")
void read() {
AccessFile var1 = this.getPreferencesFile(false); // L: 137
label228: {
try {
byte[] var2 = new byte[(int)var1.length()];
int var4;
for (int var3 = 0; var3 < var2.length; var3 += var4) {
var4 = var1.read(var2, var3, var2.length - var3);
if (var4 == -1) {
throw new EOFException();
}
}
Buffer var15 = new Buffer(var2);
if (var15.array.length - var15.offset >= 1) {
int var16 = var15.readUnsignedByte();
if (var16 >= 0 && var16 <= 2) {
int var7;
int var8;
int var9;
int var17;
if (var16 >= 2) {
var17 = var15.readUnsignedShort();
var7 = 0;
while (true) {
if (var7 >= var17) {
break label228;
}
var8 = var15.readUnsignedShort();
var9 = var15.readUnsignedByte();
class375[] var10 = new class375[]{class375.field4128, class375.field4134, class375.field4127};
class375 var11 = (class375)Clock.findEnumerated(var10, var9);
Object var12 = var11.method6510(var15); // L: 160
if (this.intsPersistence[var8]) { // L: 161
this.map.put(var8, var12); // L: 162
}
++var7;
}
} else {
var17 = var15.readUnsignedShort();
for (var7 = 0; var7 < var17; ++var7) {
var8 = var15.readUnsignedShort();
var9 = var15.readInt();
if (this.intsPersistence[var8]) { // L: 171
this.map.put(var8, var9); // L: 172
}
}
var7 = var15.readUnsignedShort();
var8 = 0;
while (true) {
if (var8 >= var7) {
break label228;
}
var15.readUnsignedShort(); // L: 177
var15.readStringCp1252NullTerminated();
++var8; // L: 176
}
}
}
return; // L: 187
}
} catch (Exception var26) { // L: 182
break label228;
} finally {
try {
var1.close();
} catch (Exception var25) {
}
}
return;
}
this.unwrittenChanges = false;
} // L: 190
@ObfuscatedName("z")
@ObfuscatedSignature(
descriptor = "(I)V",
garbageValue = "1424878016"
)
@Export("tryWrite")
void tryWrite() {
if (this.unwrittenChanges && this.field1382 < ClientPacket.currentTimeMillis() - 60000L) {
this.write();
}
} // L: 196
@ObfuscatedName("b")
@ObfuscatedSignature(
descriptor = "(I)Z",
garbageValue = "262947682"
)
@Export("hasUnwrittenChanges")
boolean hasUnwrittenChanges() {
return this.unwrittenChanges;
}
@ObfuscatedName("e")
@ObfuscatedSignature(
descriptor = "(Lcs;IIB)V",
garbageValue = "-123"
)
@Export("runScript")
static void runScript(ScriptEvent var0, int var1, int var2) {
Object[] var3 = var0.args; // L: 113
Script var4;
int var20;
if (Message.isWorldMapEvent(var0.type)) { // L: 115
Occluder.worldMapEvent = (WorldMapEvent)var3[0]; // L: 116
WorldMapElement var5 = Archive.WorldMapElement_get(Occluder.worldMapEvent.mapElement); // L: 117
var4 = StructComposition.getWorldMapScript(var0.type, var5.objectId, var5.category); // L: 118
} else {
var20 = (Integer)var3[0]; // L: 121
var4 = class375.getScript(var20); // L: 122
}
if (var4 != null) { // L: 124
ChatChannel.Interpreter_intStackSize = 0; // L: 127
UserComparator9.Interpreter_stringStackSize = 0; // L: 128
var20 = -1; // L: 129
int[] var6 = var4.opcodes; // L: 130
int[] var7 = var4.intOperands; // L: 131
byte var8 = -1; // L: 132
Interpreter.Interpreter_frameDepth = 0; // L: 133
Interpreter.field963 = false; // L: 134
boolean var9 = false; // L: 135
int var10 = 0; // L: 136
boolean var30 = false;
label985: {
label986: {
try {
int var13;
try {
var30 = true; // L: 138
class231.Interpreter_intLocals = new int[var4.localIntCount]; // L: 139
int var11 = 0; // L: 140
UrlRequester.Interpreter_stringLocals = new String[var4.localStringCount]; // L: 141
int var12 = 0;
int var14;
String var21;
for (var13 = 1; var13 < var3.length; ++var13) { // L: 142
if (var3[var13] instanceof Integer) { // L: 143
var14 = (Integer)var3[var13]; // L: 144
if (var14 == -2147483647) { // L: 145
var14 = var0.mouseX;
}
if (var14 == -2147483646) { // L: 146
var14 = var0.mouseY;
}
if (var14 == -2147483645) { // L: 147
var14 = var0.widget != null ? var0.widget.id * -464746545 * 363798319 : -1;
}
if (var14 == -2147483644) { // L: 148
var14 = var0.opIndex;
}
if (var14 == -2147483643) { // L: 149
var14 = var0.widget != null ? var0.widget.childIndex * 1482836169 * 576999801 : -1;
}
if (var14 == -2147483642) { // L: 150
var14 = var0.dragTarget != null ? var0.dragTarget.id * -464746545 * 363798319 : -1;
}
if (var14 == -2147483641) { // L: 151
var14 = var0.dragTarget != null ? var0.dragTarget.childIndex * 1482836169 * 576999801 : -1;
}
if (var14 == -2147483640) { // L: 152
var14 = var0.keyTyped;
}
if (var14 == -2147483639) { // L: 153
var14 = var0.keyPressed;
}
class231.Interpreter_intLocals[var11++] = var14; // L: 154
} else if (var3[var13] instanceof String) { // L: 156
var21 = (String)var3[var13]; // L: 157
if (var21.equals("event_opbase")) { // L: 158
var21 = var0.targetName;
}
UrlRequester.Interpreter_stringLocals[var12++] = var21; // L: 159
}
}
Interpreter.field966 = var0.field1154; // L: 163
while (true) {
++var10; // L: 165
if (var10 > var1) { // L: 166
throw new RuntimeException();
}
++var20; // L: 167
int var33 = var6[var20];
if (var33 >= 100) { // L: 168
boolean var35;
if (var4.intOperands[var20] == 1) { // L: 386
var35 = true;
} else {
var35 = false; // L: 387
}
var14 = class7.method88(var33, var4, var35); // L: 388
switch(var14) { // L: 389
case 0:
var30 = false;
break label985;
case 1:
default:
break;
case 2:
throw new IllegalStateException(); // L: 392
}
} else if (var33 == 0) { // L: 169
Interpreter.Interpreter_intStack[++ChatChannel.Interpreter_intStackSize - 1] = var7[var20]; // L: 170
} else if (var33 == ScriptOpcodes.GET_VARP) { // L: 173
var13 = var7[var20]; // L: 174
Interpreter.Interpreter_intStack[++ChatChannel.Interpreter_intStackSize - 1] = Varps.Varps_main[var13]; // L: 175
} else if (var33 == ScriptOpcodes.SET_VARP) { // L: 178
var13 = var7[var20]; // L: 179
Varps.Varps_main[var13] = Interpreter.Interpreter_intStack[--ChatChannel.Interpreter_intStackSize]; // L: 180
class6.changeGameOptions(var13); // L: 181
} else if (var33 == ScriptOpcodes.SCONST) { // L: 184
Interpreter.Interpreter_stringStack[++UserComparator9.Interpreter_stringStackSize - 1] = var4.stringOperands[var20]; // L: 185
} else if (var33 == ScriptOpcodes.JUMP) { // L: 188
var20 += var7[var20]; // L: 189
} else if (var33 == ScriptOpcodes.IF_ICMPNE) { // L: 192
ChatChannel.Interpreter_intStackSize -= 2; // L: 193
if (Interpreter.Interpreter_intStack[ChatChannel.Interpreter_intStackSize] != Interpreter.Interpreter_intStack[ChatChannel.Interpreter_intStackSize + 1]) { // L: 194
var20 += var7[var20];
}
} else if (var33 == ScriptOpcodes.IF_ICMPEQ) { // L: 197
ChatChannel.Interpreter_intStackSize -= 2; // L: 198
if (Interpreter.Interpreter_intStack[ChatChannel.Interpreter_intStackSize] == Interpreter.Interpreter_intStack[ChatChannel.Interpreter_intStackSize + 1]) { // L: 199
var20 += var7[var20];
}
} else if (var33 == ScriptOpcodes.IF_ICMPLT) { // L: 202
ChatChannel.Interpreter_intStackSize -= 2; // L: 203
if (Interpreter.Interpreter_intStack[ChatChannel.Interpreter_intStackSize] < Interpreter.Interpreter_intStack[ChatChannel.Interpreter_intStackSize + 1]) { // L: 204
var20 += var7[var20];
}
} else if (var33 == ScriptOpcodes.IF_ICMPGT) { // L: 207
ChatChannel.Interpreter_intStackSize -= 2; // L: 208
if (Interpreter.Interpreter_intStack[ChatChannel.Interpreter_intStackSize] > Interpreter.Interpreter_intStack[ChatChannel.Interpreter_intStackSize + 1]) { // L: 209
var20 += var7[var20];
}
} else if (var33 == ScriptOpcodes.RETURN) { // L: 212
if (Interpreter.Interpreter_frameDepth == 0) { // L: 213
var30 = false;
break;
}
ScriptFrame var40 = Interpreter.Interpreter_frames[--Interpreter.Interpreter_frameDepth]; // L: 214
var4 = var40.script; // L: 215
var6 = var4.opcodes; // L: 216
var7 = var4.intOperands; // L: 217
var20 = var40.pc; // L: 218
class231.Interpreter_intLocals = var40.intLocals; // L: 219
UrlRequester.Interpreter_stringLocals = var40.stringLocals; // L: 220
} else if (var33 == ScriptOpcodes.GET_VARBIT) { // L: 223
var13 = var7[var20]; // L: 224
Interpreter.Interpreter_intStack[++ChatChannel.Interpreter_intStackSize - 1] = ScriptFrame.getVarbit(var13); // L: 225
} else if (var33 == ScriptOpcodes.SET_VARBIT) { // L: 228
var13 = var7[var20]; // L: 229
Archive.method5060(var13, Interpreter.Interpreter_intStack[--ChatChannel.Interpreter_intStackSize]); // L: 230
} else if (var33 == ScriptOpcodes.IF_ICMPLE) { // L: 233
ChatChannel.Interpreter_intStackSize -= 2; // L: 234
if (Interpreter.Interpreter_intStack[ChatChannel.Interpreter_intStackSize] <= Interpreter.Interpreter_intStack[ChatChannel.Interpreter_intStackSize + 1]) { // L: 235
var20 += var7[var20];
}
} else if (var33 == ScriptOpcodes.IF_ICMPGE) { // L: 238
ChatChannel.Interpreter_intStackSize -= 2; // L: 239
if (Interpreter.Interpreter_intStack[ChatChannel.Interpreter_intStackSize] >= Interpreter.Interpreter_intStack[ChatChannel.Interpreter_intStackSize + 1]) { // L: 240
var20 += var7[var20];
}
} else if (var33 == ScriptOpcodes.ILOAD) { // L: 243
Interpreter.Interpreter_intStack[++ChatChannel.Interpreter_intStackSize - 1] = class231.Interpreter_intLocals[var7[var20]]; // L: 244
} else if (var33 == ScriptOpcodes.ISTORE) { // L: 247
class231.Interpreter_intLocals[var7[var20]] = Interpreter.Interpreter_intStack[--ChatChannel.Interpreter_intStackSize]; // L: 248
} else if (var33 == ScriptOpcodes.SLOAD) { // L: 251
Interpreter.Interpreter_stringStack[++UserComparator9.Interpreter_stringStackSize - 1] = UrlRequester.Interpreter_stringLocals[var7[var20]]; // L: 252
} else if (var33 == ScriptOpcodes.SSTORE) { // L: 255
UrlRequester.Interpreter_stringLocals[var7[var20]] = Interpreter.Interpreter_stringStack[--UserComparator9.Interpreter_stringStackSize]; // L: 256
} else if (var33 == ScriptOpcodes.JOIN_STRING) { // L: 259
var13 = var7[var20]; // L: 260
UserComparator9.Interpreter_stringStackSize -= var13; // L: 261
var21 = MouseRecorder.method2203(Interpreter.Interpreter_stringStack, UserComparator9.Interpreter_stringStackSize, var13); // L: 262
Interpreter.Interpreter_stringStack[++UserComparator9.Interpreter_stringStackSize - 1] = var21; // L: 263
} else if (var33 == ScriptOpcodes.POP_INT) { // L: 266
--ChatChannel.Interpreter_intStackSize; // L: 267
} else if (var33 == ScriptOpcodes.POP_STRING) { // L: 270
--UserComparator9.Interpreter_stringStackSize; // L: 271
} else {
int var17;
if (var33 != ScriptOpcodes.INVOKE) { // L: 274
if (var33 == ScriptOpcodes.GET_VARC_INT) { // L: 297
Interpreter.Interpreter_intStack[++ChatChannel.Interpreter_intStackSize - 1] = class20.varcs.getInt(var7[var20]); // L: 298
} else if (var33 == ScriptOpcodes.SET_VARC_INT) { // L: 301
class20.varcs.setInt(var7[var20], Interpreter.Interpreter_intStack[--ChatChannel.Interpreter_intStackSize]); // L: 302
} else if (var33 == ScriptOpcodes.DEFINE_ARRAY) { // L: 305
var13 = var7[var20] >> 16; // L: 306
var14 = var7[var20] & 65535; // L: 307
int var24 = Interpreter.Interpreter_intStack[--ChatChannel.Interpreter_intStackSize]; // L: 308
if (var24 < 0 || var24 > 5000) { // L: 309
throw new RuntimeException(); // L: 310
}
Interpreter.Interpreter_arrayLengths[var13] = var24; // L: 312
byte var25 = -1; // L: 313
if (var14 == 105) { // L: 314
var25 = 0;
}
for (var17 = 0; var17 < var24; ++var17) { // L: 315
Interpreter.Interpreter_arrays[var13][var17] = var25;
}
} else if (var33 == ScriptOpcodes.GET_ARRAY_INT) { // L: 318
var13 = var7[var20]; // L: 319
var14 = Interpreter.Interpreter_intStack[--ChatChannel.Interpreter_intStackSize]; // L: 320
if (var14 < 0 || var14 >= Interpreter.Interpreter_arrayLengths[var13]) { // L: 321
throw new RuntimeException(); // L: 322
}
Interpreter.Interpreter_intStack[++ChatChannel.Interpreter_intStackSize - 1] = Interpreter.Interpreter_arrays[var13][var14]; // L: 324
} else if (var33 == ScriptOpcodes.SET_ARRAY_INT) { // L: 327
var13 = var7[var20]; // L: 328
ChatChannel.Interpreter_intStackSize -= 2; // L: 329
var14 = Interpreter.Interpreter_intStack[ChatChannel.Interpreter_intStackSize]; // L: 330
if (var14 < 0 || var14 >= Interpreter.Interpreter_arrayLengths[var13]) { // L: 331
throw new RuntimeException(); // L: 332
}
Interpreter.Interpreter_arrays[var13][var14] = Interpreter.Interpreter_intStack[ChatChannel.Interpreter_intStackSize + 1]; // L: 334
} else {
String var22;
if (var33 == ScriptOpcodes.GET_VARC_STRING_OLD) { // L: 337
var22 = class20.varcs.getStringOld(var7[var20]); // L: 338
if (var22 == null) { // L: 339
var22 = "null";
}
Interpreter.Interpreter_stringStack[++UserComparator9.Interpreter_stringStackSize - 1] = var22; // L: 340
} else if (var33 == ScriptOpcodes.SET_VARC_STRING_OLD) { // L: 343
class20.varcs.setStringOld(var7[var20], Interpreter.Interpreter_stringStack[--UserComparator9.Interpreter_stringStackSize]); // L: 344
} else if (var33 == ScriptOpcodes.GET_VARC_STRING) { // L: 347
var22 = class20.varcs.getString(var7[var20]); // L: 348
Interpreter.Interpreter_stringStack[++UserComparator9.Interpreter_stringStackSize - 1] = var22; // L: 349
} else if (var33 == ScriptOpcodes.SET_VARC_STRING) { // L: 352
class20.varcs.setString(var7[var20], Interpreter.Interpreter_stringStack[--UserComparator9.Interpreter_stringStackSize]); // L: 353
} else if (var33 == ScriptOpcodes.SWITCH) { // L: 356
IterableNodeHashTable var38 = var4.switches[var7[var20]]; // L: 357
IntegerNode var37 = (IntegerNode)var38.get((long)Interpreter.Interpreter_intStack[--ChatChannel.Interpreter_intStackSize]); // L: 358
if (var37 != null) { // L: 359
var20 += var37.integer;
}
} else {
Integer var39;
if (var33 == ScriptOpcodes.GET_VARCLANSETTING) { // L: 362
var39 = DirectByteArrayCopier.field3128.getTitleGroupValue(var7[var20]); // L: 363
if (var39 == null) { // L: 364
Interpreter.Interpreter_intStack[++ChatChannel.Interpreter_intStackSize - 1] = -1; // L: 365
} else {
Interpreter.Interpreter_intStack[++ChatChannel.Interpreter_intStackSize - 1] = var39; // L: 368
}
} else {
if (var33 != ScriptOpcodes.GET_VARCLAN) { // L: 372
throw new IllegalStateException(); // L: 382
}
var39 = class10.field74.method6047(var7[var20]); // L: 373
if (var39 == null) { // L: 374
Interpreter.Interpreter_intStack[++ChatChannel.Interpreter_intStackSize - 1] = -1; // L: 375
} else {
Interpreter.Interpreter_intStack[++ChatChannel.Interpreter_intStackSize - 1] = var39; // L: 378
}
}
}
}
} else {
var13 = var7[var20]; // L: 275
Script var36 = class375.getScript(var13); // L: 276
int[] var15 = new int[var36.localIntCount]; // L: 277
String[] var16 = new String[var36.localStringCount]; // L: 278
for (var17 = 0; var17 < var36.intArgumentCount; ++var17) { // L: 279
var15[var17] = Interpreter.Interpreter_intStack[var17 + (ChatChannel.Interpreter_intStackSize - var36.intArgumentCount)];
}
for (var17 = 0; var17 < var36.stringArgumentCount; ++var17) { // L: 280
var16[var17] = Interpreter.Interpreter_stringStack[var17 + (UserComparator9.Interpreter_stringStackSize - var36.stringArgumentCount)];
}
ChatChannel.Interpreter_intStackSize -= var36.intArgumentCount; // L: 281
UserComparator9.Interpreter_stringStackSize -= var36.stringArgumentCount; // L: 282
ScriptFrame var23 = new ScriptFrame(); // L: 283
var23.script = var4; // L: 284
var23.pc = var20; // L: 285
var23.intLocals = class231.Interpreter_intLocals; // L: 286
var23.stringLocals = UrlRequester.Interpreter_stringLocals; // L: 287
Interpreter.Interpreter_frames[++Interpreter.Interpreter_frameDepth - 1] = var23; // L: 288
var4 = var36; // L: 289
var6 = var36.opcodes; // L: 290
var7 = var36.intOperands; // L: 291
var20 = -1; // L: 292
class231.Interpreter_intLocals = var15; // L: 293
UrlRequester.Interpreter_stringLocals = var16; // L: 294
}
}
}
} catch (Exception var31) { // L: 402
var9 = true; // L: 403
StringBuilder var27 = new StringBuilder(30); // L: 405
var27.append("").append(var4.key).append(" "); // L: 406
for (var13 = Interpreter.Interpreter_frameDepth - 1; var13 >= 0; --var13) { // L: 407
var27.append("").append(Interpreter.Interpreter_frames[var13].script.key).append(" ");
}
var27.append("").append(var8); // L: 408
FriendsChat.RunException_sendStackTrace(var27.toString(), var31); // L: 409
var30 = false;
break label986;
}
} finally {
if (var30) {
if (Interpreter.field963) { // L: 413
Interpreter.field951 = true; // L: 414
}
while (Interpreter.field965.size() > 0) { // L: 416
class106 var19 = (class106)Interpreter.field965.remove(0); // L: 417
MouseHandler.widgetDefaultMenuAction(var19.method2375(), var19.method2360(), var19.method2367(), var19.method2363(), "");
}
if (Interpreter.field951) { // L: 420
class20.method288(); // L: 421
Interpreter.field951 = false; // L: 422
Interpreter.field963 = false; // L: 423
}
if (!var9 && var2 > 0 && var10 >= var2) {
FriendsChat.RunException_sendStackTrace("Warning: Script " + var4.field1069 + " finished at op count " + var10 + " of max " + var1, (Throwable)null);
}
}
}
if (Interpreter.field963) {
Interpreter.field951 = true;
}
while (Interpreter.field965.size() > 0) {
class106 var41 = (class106)Interpreter.field965.remove(0);
MouseHandler.widgetDefaultMenuAction(var41.method2375(), var41.method2360(), var41.method2367(), var41.method2363(), "");
}
if (Interpreter.field951) {
class20.method288();
Interpreter.field951 = false;
Interpreter.field963 = false;
}
if (!var9 && var2 > 0 && var10 >= var2) {
FriendsChat.RunException_sendStackTrace("Warning: Script " + var4.field1069 + " finished at op count " + var10 + " of max " + var1, (Throwable)null);
}
return;
}
if (Interpreter.field963) {
Interpreter.field951 = true;
}
while (Interpreter.field965.size() > 0) {
class106 var26 = (class106)Interpreter.field965.remove(0);
MouseHandler.widgetDefaultMenuAction(var26.method2375(), var26.method2360(), var26.method2367(), var26.method2363(), "");
}
if (Interpreter.field951) {
class20.method288();
Interpreter.field951 = false;
Interpreter.field963 = false;
}
if (!var9 && var2 > 0 && var10 >= var2) {
FriendsChat.RunException_sendStackTrace("Warning: Script " + var4.field1069 + " finished at op count " + var10 + " of max " + var1, (Throwable)null);
}
return; // L: 429
}
if (Interpreter.field963) {
Interpreter.field951 = true;
}
while (Interpreter.field965.size() > 0) {
class106 var34 = (class106)Interpreter.field965.remove(0);
MouseHandler.widgetDefaultMenuAction(var34.method2375(), var34.method2360(), var34.method2367(), var34.method2363(), ""); // L: 418
}
if (Interpreter.field951) {
class20.method288();
Interpreter.field951 = false;
Interpreter.field963 = false;
}
if (!var9 && var2 > 0 && var10 >= var2) { // L: 425
FriendsChat.RunException_sendStackTrace("Warning: Script " + var4.field1069 + " finished at op count " + var10 + " of max " + var1, (Throwable)null); // L: 426
}
}
} // L: 125
}