279 lines
6.7 KiB
Java
279 lines
6.7 KiB
Java
import java.util.Random;
|
|
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;
|
|
|
|
@ObfuscatedName("lk")
|
|
@Implements("DesktopPlatformInfoProvider")
|
|
public class DesktopPlatformInfoProvider implements PlatformInfoProvider {
|
|
@ObfuscatedName("k")
|
|
@ObfuscatedGetter(
|
|
intValue = -1435561195
|
|
)
|
|
int field3903;
|
|
@ObfuscatedName("u")
|
|
@ObfuscatedGetter(
|
|
intValue = -1717280991
|
|
)
|
|
int field3901;
|
|
@ObfuscatedName("n")
|
|
@ObfuscatedGetter(
|
|
intValue = 1506800737
|
|
)
|
|
int field3904;
|
|
|
|
@ObfuscatedName("s")
|
|
@ObfuscatedSignature(
|
|
signature = "(I)Llx;",
|
|
garbageValue = "-1719381077"
|
|
)
|
|
@Export("get")
|
|
public PlatformInfo get() {
|
|
byte var1;
|
|
if (ByteArrayPool.field3708.startsWith("win")) {
|
|
var1 = 1;
|
|
} else if (ByteArrayPool.field3708.startsWith("mac")) {
|
|
var1 = 2;
|
|
} else if (ByteArrayPool.field3708.startsWith("linux")) {
|
|
var1 = 3;
|
|
} else {
|
|
var1 = 4;
|
|
}
|
|
|
|
String var2;
|
|
try {
|
|
var2 = System.getProperty("os.arch").toLowerCase();
|
|
} catch (Exception var27) {
|
|
var2 = "";
|
|
}
|
|
|
|
String var3;
|
|
try {
|
|
var3 = System.getProperty("os.version").toLowerCase();
|
|
} catch (Exception var26) {
|
|
var3 = "";
|
|
}
|
|
|
|
String var4 = "Unknown";
|
|
String var5 = "1.1";
|
|
|
|
try {
|
|
var4 = System.getProperty("java.vendor");
|
|
var5 = System.getProperty("java.version");
|
|
} catch (Exception var25) {
|
|
}
|
|
|
|
boolean var24;
|
|
if (!var2.startsWith("amd64") && !var2.startsWith("x86_64")) {
|
|
var24 = false;
|
|
} else {
|
|
var24 = true;
|
|
}
|
|
|
|
byte var7 = 0;
|
|
if (var1 == 1) {
|
|
if (var3.indexOf("4.0") != -1) {
|
|
var7 = 1;
|
|
} else if (var3.indexOf("4.1") != -1) {
|
|
var7 = 2;
|
|
} else if (var3.indexOf("4.9") != -1) {
|
|
var7 = 3;
|
|
} else if (var3.indexOf("5.0") != -1) {
|
|
var7 = 4;
|
|
} else if (var3.indexOf("5.1") != -1) {
|
|
var7 = 5;
|
|
} else if (var3.indexOf("5.2") != -1) {
|
|
var7 = 8;
|
|
} else if (var3.indexOf("6.0") != -1) {
|
|
var7 = 6;
|
|
} else if (var3.indexOf("6.1") != -1) {
|
|
var7 = 7;
|
|
} else if (var3.indexOf("6.2") != -1) {
|
|
var7 = 9;
|
|
} else if (var3.indexOf("6.3") != -1) {
|
|
var7 = 10;
|
|
} else if (var3.indexOf("10.0") != -1) {
|
|
var7 = 11;
|
|
}
|
|
} else if (var1 == 2) {
|
|
if (var3.indexOf("10.4") != -1) {
|
|
var7 = 20;
|
|
} else if (var3.indexOf("10.5") != -1) {
|
|
var7 = 21;
|
|
} else if (var3.indexOf("10.6") != -1) {
|
|
var7 = 22;
|
|
} else if (var3.indexOf("10.7") != -1) {
|
|
var7 = 23;
|
|
} else if (var3.indexOf("10.8") != -1) {
|
|
var7 = 24;
|
|
} else if (var3.indexOf("10.9") != -1) {
|
|
var7 = 25;
|
|
} else if (var3.indexOf("10.10") != -1) {
|
|
var7 = 26;
|
|
} else if (var3.indexOf("10.11") != -1) {
|
|
var7 = 27;
|
|
} else if (var3.indexOf("10.12") != -1) {
|
|
var7 = 28;
|
|
} else if (var3.indexOf("10.13") != -1) {
|
|
var7 = 29;
|
|
}
|
|
}
|
|
|
|
byte var8;
|
|
if (var4.toLowerCase().indexOf("sun") != -1) {
|
|
var8 = 1;
|
|
} else if (var4.toLowerCase().indexOf("microsoft") != -1) {
|
|
var8 = 2;
|
|
} else if (var4.toLowerCase().indexOf("apple") != -1) {
|
|
var8 = 3;
|
|
} else if (var4.toLowerCase().indexOf("oracle") != -1) {
|
|
var8 = 5;
|
|
} else {
|
|
var8 = 4;
|
|
}
|
|
|
|
this.method6147(var5);
|
|
Runtime.getRuntime();
|
|
int var10 = (int)((long)((new Random()).nextInt(31457280) + 230686720) / 1048576L) + 1;
|
|
int var11;
|
|
if (this.field3903 > 3) {
|
|
var11 = Runtime.getRuntime().availableProcessors();
|
|
} else {
|
|
var11 = 0;
|
|
}
|
|
|
|
byte var12 = 0;
|
|
String var13 = "";
|
|
String var14 = "";
|
|
String var15 = "";
|
|
String var16 = "";
|
|
String var17 = "";
|
|
String var18 = "";
|
|
int[] var23 = new int[3];
|
|
return new PlatformInfo(var1, var24, var7, var8, this.field3903, this.field3901, this.field3904, false, var10, var11, var12, 0, var13, var14, var15, var16, 0, 0, 0, 0, var17, var18, var23, 0, "");
|
|
}
|
|
|
|
@ObfuscatedName("j")
|
|
@ObfuscatedSignature(
|
|
signature = "(Ljava/lang/String;B)V",
|
|
garbageValue = "28"
|
|
)
|
|
void method6147(String var1) {
|
|
if (var1.startsWith("1.")) {
|
|
this.method6148(var1);
|
|
} else {
|
|
this.method6145(var1);
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("i")
|
|
@ObfuscatedSignature(
|
|
signature = "(Ljava/lang/String;I)V",
|
|
garbageValue = "1225882646"
|
|
)
|
|
void method6148(String var1) {
|
|
String[] var2 = var1.split("\\.");
|
|
|
|
try {
|
|
this.field3903 = Integer.parseInt(var2[1]);
|
|
var2 = var2[2].split("_");
|
|
this.field3901 = Integer.parseInt(var2[0]);
|
|
this.field3904 = Integer.parseInt(var2[1]);
|
|
} catch (Exception var4) {
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("k")
|
|
@ObfuscatedSignature(
|
|
signature = "(Ljava/lang/String;S)V",
|
|
garbageValue = "-31875"
|
|
)
|
|
void method6145(String var1) {
|
|
String[] var2 = var1.split("\\.");
|
|
|
|
try {
|
|
this.field3903 = Integer.parseInt(var2[0]);
|
|
this.field3901 = Integer.parseInt(var2[1]);
|
|
this.field3904 = Integer.parseInt(var2[2]);
|
|
} catch (Exception var4) {
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("i")
|
|
@ObfuscatedSignature(
|
|
signature = "([BS)Lcr;",
|
|
garbageValue = "10322"
|
|
)
|
|
@Export("newScript")
|
|
static Script newScript(byte[] var0) {
|
|
Script var1 = new Script();
|
|
Buffer var2 = new Buffer(var0);
|
|
var2.offset = var2.array.length - 2;
|
|
int var3 = var2.readUnsignedShort();
|
|
int var4 = var2.array.length - 2 - var3 - 12;
|
|
var2.offset = var4;
|
|
int var5 = var2.readInt();
|
|
var1.localIntCount = var2.readUnsignedShort();
|
|
var1.localStringCount = var2.readUnsignedShort();
|
|
var1.intArgumentCount = var2.readUnsignedShort();
|
|
var1.stringArgumentCount = var2.readUnsignedShort();
|
|
int var6 = var2.readUnsignedByte();
|
|
int var7;
|
|
int var8;
|
|
if (var6 > 0) {
|
|
var1.switches = var1.newIterableNodeHashTable(var6);
|
|
|
|
for (var7 = 0; var7 < var6; ++var7) {
|
|
var8 = var2.readUnsignedShort();
|
|
int var9;
|
|
int var11;
|
|
if (var8 > 0) {
|
|
var11 = var8 - 1;
|
|
var11 |= var11 >>> 1;
|
|
var11 |= var11 >>> 2;
|
|
var11 |= var11 >>> 4;
|
|
var11 |= var11 >>> 8;
|
|
var11 |= var11 >>> 16;
|
|
int var10 = var11 + 1;
|
|
var9 = var10;
|
|
} else {
|
|
var9 = 1;
|
|
}
|
|
|
|
IterableNodeHashTable var13 = new IterableNodeHashTable(var9);
|
|
var1.switches[var7] = var13;
|
|
|
|
while (var8-- > 0) {
|
|
var11 = var2.readInt();
|
|
int var12 = var2.readInt();
|
|
var13.put(new IntegerNode(var12), (long)var11);
|
|
}
|
|
}
|
|
}
|
|
|
|
var2.offset = 0;
|
|
var2.readStringCp1252NullTerminatedOrNull();
|
|
var1.opcodes = new int[var5];
|
|
var1.intOperands = new int[var5];
|
|
var1.stringOperands = new String[var5];
|
|
|
|
for (var7 = 0; var2.offset < var4; var1.opcodes[var7++] = var8) {
|
|
var8 = var2.readUnsignedShort();
|
|
if (var8 == 3) {
|
|
var1.stringOperands[var7] = var2.readStringCp1252NullTerminated();
|
|
} else if (var8 < 100 && var8 != 21 && var8 != 38 && var8 != 39) {
|
|
var1.intOperands[var7] = var2.readInt();
|
|
} else {
|
|
var1.intOperands[var7] = var2.readUnsignedByte();
|
|
}
|
|
}
|
|
|
|
return var1;
|
|
}
|
|
}
|