using System; using System.Collections.Generic; using System.ComponentModel; using System.IO; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Cpp2IlInjected; using Hjg.Pngcs; using Hjg.Pngcs.Chunks; using RecRoom.Async; using UnityEngine; using UnityEngine.Experimental.Rendering; // Token: 0x02001FF7 RID: 8183 [Token(Token = "0x2001FF7")] [StructLayout(3)] public class KGMPNCLMCHO { // Token: 0x0600E298 RID: 58008 RVA: 0x0035EC58 File Offset: 0x0035CE58 [Token(Token = "0x600E298")] [Address(RVA = "0x19DE7B0", Offset = "0x19DD1B0", VA = "0x1819DE7B0")] public static IPromise BFHKDGFEKPH(Texture2D CAKFKAGPMBF, bool KDLALCBIHJG = false) { int num = 0; if (!(CAKFKAGPMBF == num)) { if (!KDLALCBIHJG) { Color[] pixels4 = CAKFKAGPMBF.GetPixels(); Color[] pixels5 = pixels4; GraphicsFormat graphicsFormat = CAKFKAGPMBF.graphicsFormat; int width3 = (int)graphicsFormat; BackgroundWorker backgroundWorker = new BackgroundWorker(); int height3; DoWorkEventHandler doWorkEventHandler = delegate(object sender, DoWorkEventArgs args) { int width2 = width3; int height2 = height3; uint num2; ulong num3; ImageInfo imageInfo = new ImageInfo(width2, height2, (int)num2, num3 != 0UL); PngWriter pngWriter = new PngWriter(new MemoryStream(), imageInfo); int rows = imageInfo.Rows; ImageLine imageLine = new ImageLine(imageInfo); int num4 = 0; int cols = imageInfo.Cols; if (num4 < cols) { Color[] pixels3 = pixels5; imageLine += imageLine; throw new NullReferenceException(); } int num5 = imageInfo.Rows; num5 -= rows; pngWriter.WriteRow(imageLine, num5); pngWriter.End(); }; backgroundWorker.DoWork += doWorkEventHandler; RunWorkerCompletedEventHandler runWorkerCompletedEventHandler = KGMPNCLMCHO.LMHGAJGCNFC(new Promise()); backgroundWorker.RunWorkerCompleted += runWorkerCompletedEventHandler; backgroundWorker.RunWorkerAsync(); } Color[] pixels2 = CAKFKAGPMBF.GetPixels(); Color[] pixels = pixels2; GraphicsFormat graphicsFormat2 = CAKFKAGPMBF.graphicsFormat; int width = (int)graphicsFormat2; BackgroundWorker backgroundWorker2 = new BackgroundWorker(); } return Promise.FromError("Null texture cannot be encoded"); } // Token: 0x0600E299 RID: 58009 RVA: 0x0035ED14 File Offset: 0x0035CF14 [Token(Token = "0x600E299")] [Address(RVA = "0x19DEB80", Offset = "0x19DD580", VA = "0x1819DEB80")] public static IPromise JBCBNKBFMCA(byte[] MGPDDEMABPB) { BackgroundWorker backgroundWorker = new BackgroundWorker(); DoWorkEventHandler doWorkEventHandler = delegate(object sender, DoWorkEventArgs args) { int num = 0; PngReader pngReader = new PngReader(new MemoryStream(MGPDDEMABPB)); ImageInfo k__BackingField = pngReader.k__BackingField; PngChunkPLTE plte = pngReader.GetMetadata().GetPLTE(); PngChunkTRNS trns = pngReader.GetMetadata().GetTRNS(); int num2 = 0; List[] array = new List[k__BackingField.Rows]; if (num2 < k__BackingField.Rows) { List list = new List(); ImageLine imageLine = pngReader.ReadRow(num2); uint num8; if (plte == 0) { if (num2 >= k__BackingField.Cols) { goto IL_19C; } int channels = k__BackingField.Channels; int num3 = channels * num2; int[] k__BackingField = imageLine.k__BackingField; int length = k__BackingField.Length; int num4 = k__BackingField[num3]; int num5 = num3 + 1; int num6 = k__BackingField[num5]; int num7 = k__BackingField[num5]; if (channels == 4) { num3 += 3; } int[] array2 = new int[4]; array2[0] = num4; array2[0] = num6; array2[1] = num7; array2[1] = (int)num8; list.Add(num); num2++; } bool flag = trns != 0; int[] array3; if (num8 < (uint)array3.Length) { int[] array4 = new int[flag ? 1 : 0]; int num9 = array3[(int)num8]; array4[0] = num9; uint num10 = num8 + 1U; int num11 = array3[(int)num10]; array4[0] = num11; int num12 = array3[num11]; array4[1] = num12; if (flag) { num8 += (uint)3; int num13 = array3[(int)num8]; array4[1] = num13; } list.Add(num); num8 += (flag ? 1U : 0U); } IL_19C: int rows = k__BackingField.Rows; throw new ArrayTypeMismatchException(); } pngReader.End(); List list2 = new List(); int length2 = array.Length; if (num2 < length2) { List list3 = array[num2]; list2.AddRange(list3); num2++; } CHHPOAKJMIL chhpoakjmil = new CHHPOAKJMIL(); Color[] array5 = list2.ToArray(); chhpoakjmil.k__BackingField = array5; int cols = k__BackingField.Cols; chhpoakjmil.k__BackingField = cols; int rows2 = k__BackingField.Rows; chhpoakjmil.k__BackingField = rows2; }; backgroundWorker.DoWork += doWorkEventHandler; RunWorkerCompletedEventHandler runWorkerCompletedEventHandler = KGMPNCLMCHO.LMHGAJGCNFC(new Promise()); backgroundWorker.RunWorkerCompleted += runWorkerCompletedEventHandler; backgroundWorker.RunWorkerAsync(); throw new NullReferenceException(); } // Token: 0x0600E29A RID: 58010 RVA: 0x0035ED68 File Offset: 0x0035CF68 [Token(Token = "0x600E29A")] [Address(RVA = "0x19DEA40", Offset = "0x19DD440", VA = "0x1819DEA40")] private static IPromise EBHJADDKGEF(Texture2D CAKFKAGPMBF) { Color[] pixels3 = CAKFKAGPMBF.GetPixels(); Color[] pixels = pixels3; GraphicsFormat graphicsFormat = CAKFKAGPMBF.graphicsFormat; int width = (int)graphicsFormat; BackgroundWorker backgroundWorker = new BackgroundWorker(); int height; DoWorkEventHandler doWorkEventHandler = delegate(object sender, DoWorkEventArgs args) { int width2 = width; int height2 = height; uint num; ulong num2; ImageInfo imageInfo = new ImageInfo(width2, height2, (int)num, num2 != 0UL); PngWriter pngWriter = new PngWriter(new MemoryStream(), imageInfo); int rows = imageInfo.Rows; ImageLine imageLine = new ImageLine(imageInfo); int num3 = 0; int cols = imageInfo.Cols; if (num3 < cols) { Color[] pixels2 = pixels; imageLine += imageLine; throw new NullReferenceException(); } int num4 = imageInfo.Rows; num4 -= rows; pngWriter.WriteRow(imageLine, num4); pngWriter.End(); }; backgroundWorker.DoWork += doWorkEventHandler; RunWorkerCompletedEventHandler runWorkerCompletedEventHandler = KGMPNCLMCHO.LMHGAJGCNFC(new Promise()); backgroundWorker.RunWorkerCompleted += runWorkerCompletedEventHandler; backgroundWorker.RunWorkerAsync(); throw new NullReferenceException(); } // Token: 0x0600E29B RID: 58011 RVA: 0x0035EDD4 File Offset: 0x0035CFD4 [Token(Token = "0x600E29B")] [Address(RVA = "0x19DEC90", Offset = "0x19DD690", VA = "0x1819DEC90")] private static IPromise PBPCFCDGMIA(Texture2D CAKFKAGPMBF) { Color[] pixels4 = CAKFKAGPMBF.GetPixels(); Color[] pixels = pixels4; GraphicsFormat graphicsFormat = CAKFKAGPMBF.graphicsFormat; int width = (int)graphicsFormat; BackgroundWorker backgroundWorker = new BackgroundWorker(); int height; DoWorkEventHandler doWorkEventHandler = delegate(object sender, DoWorkEventArgs args) { int width2 = width; int height2 = height; int num; ulong num2; ImageInfo imageInfo = new ImageInfo(width2, height2, 8, num != 0, num != 0, num2 != 0UL); num = 0; PngWriter pngWriter = new PngWriter(new MemoryStream(), imageInfo); PngChunkPLTE pngChunkPLTE = pngWriter.metadata.CreatePLTEChunk(); Color[] pixels2 = pixels; int cols = imageInfo.Cols; int num3 = imageInfo.Rows; PNNNFMKFEGK.LLFGILJHKAA llfgiljhkaa = PNNNFMKFEGK.HBOPBOHLLHH(imageInfo, pixels2); PNNNFMKFEGK pnnnfmkfegk = new PNNNFMKFEGK(cols, num3, llfgiljhkaa); pnnnfmkfegk.AMBDOAIKPOI = true; pnnnfmkfegk.CPLDGKCIAGP(); int num4 = pnnnfmkfegk.NCOGLNDNAOE(); num3 = num4; pngChunkPLTE.SetNentries(num4); int num5 = 0; if (num3 > 0) { int[] array = pnnnfmkfegk.EKDFIFGBNCK(num5); int length = array.Length; int num6 = array[1]; int num7 = array[0]; int num8 = array[0]; pngChunkPLTE.SetEntry(num5, num8, num7, num6); num5++; } int num9 = pnnnfmkfegk.DLEOOHNHJOJ(); pngWriter.metadata.CreateTRNSChunk().setIndexEntryAsTransparent(num9); int rows = imageInfo.Rows; ImageLine imageLine = new ImageLine(imageInfo); int num10 = 0; int cols2 = imageInfo.Cols; if (num10 < cols2) { Color[] pixels3 = pixels; imageLine += imageLine; throw new NullReferenceException(); } int num11 = imageInfo.Rows; num11 -= rows; pngWriter.WriteRow(imageLine, num11); pngWriter.End(); }; backgroundWorker.DoWork += doWorkEventHandler; RunWorkerCompletedEventHandler runWorkerCompletedEventHandler = KGMPNCLMCHO.LMHGAJGCNFC(new Promise()); backgroundWorker.RunWorkerCompleted += runWorkerCompletedEventHandler; backgroundWorker.RunWorkerAsync(); throw new NullReferenceException(); } // Token: 0x0600E29C RID: 58012 RVA: 0x0035EE40 File Offset: 0x0035D040 [Token(Token = "0x600E29C")] [Address(RVA = "0x2B5BD70", Offset = "0x2B5A770", VA = "0x182B5BD70")] private static RunWorkerCompletedEventHandler LMHGAJGCNFC(Promise cpp2il__autoParamName__idx_0) { RunWorkerCompletedEventHandler runWorkerCompletedEventHandler; return runWorkerCompletedEventHandler; } // Token: 0x0600E29D RID: 58013 RVA: 0x0035EE54 File Offset: 0x0035D054 [Token(Token = "0x600E29D")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public KGMPNCLMCHO() { } // Token: 0x02001FF8 RID: 8184 [Token(Token = "0x2001FF8")] [CompilerGenerated] private sealed class BOMDAOFFIGF { // Token: 0x0600E29E RID: 58014 RVA: 0x0035EE68 File Offset: 0x0035D068 [Token(Token = "0x600E29E")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public BOMDAOFFIGF() { } // Token: 0x0600E29F RID: 58015 RVA: 0x0035EE7C File Offset: 0x0035D07C [Token(Token = "0x600E29F")] [Address(RVA = "0x19CCE00", Offset = "0x19CB800", VA = "0x1819CCE00")] internal void b__0(object sender, DoWorkEventArgs args) { int num = 0; PngReader pngReader = new PngReader(new MemoryStream(this.bytes)); ImageInfo k__BackingField = pngReader.k__BackingField; PngChunkPLTE plte = pngReader.GetMetadata().GetPLTE(); PngChunkTRNS trns = pngReader.GetMetadata().GetTRNS(); int num2 = 0; List[] array = new List[k__BackingField.Rows]; if (num2 < k__BackingField.Rows) { List list = new List(); ImageLine imageLine = pngReader.ReadRow(num2); uint num8; if (plte == 0) { if (num2 >= k__BackingField.Cols) { goto IL_19C; } int channels = k__BackingField.Channels; int num3 = channels * num2; int[] k__BackingField = imageLine.k__BackingField; int length = k__BackingField.Length; int num4 = k__BackingField[num3]; int num5 = num3 + 1; int num6 = k__BackingField[num5]; int num7 = k__BackingField[num5]; if (channels == 4) { num3 += 3; } int[] array2 = new int[4]; array2[0] = num4; array2[0] = num6; array2[1] = num7; array2[1] = (int)num8; list.Add(num); num2++; } bool flag = trns != 0; int[] array3; if (num8 < (uint)array3.Length) { int[] array4 = new int[flag ? 1 : 0]; int num9 = array3[(int)num8]; array4[0] = num9; uint num10 = num8 + 1U; int num11 = array3[(int)num10]; array4[0] = num11; int num12 = array3[num11]; array4[1] = num12; if (flag) { num8 += (uint)3; int num13 = array3[(int)num8]; array4[1] = num13; } list.Add(num); num8 += (flag ? 1U : 0U); } IL_19C: int rows = k__BackingField.Rows; throw new ArrayTypeMismatchException(); } pngReader.End(); List list2 = new List(); int length2 = array.Length; if (num2 < length2) { List list3 = array[num2]; list2.AddRange(list3); num2++; } CHHPOAKJMIL chhpoakjmil = new CHHPOAKJMIL(); Color[] array5 = list2.ToArray(); chhpoakjmil.k__BackingField = array5; int cols = k__BackingField.Cols; chhpoakjmil.k__BackingField = cols; int rows2 = k__BackingField.Rows; chhpoakjmil.k__BackingField = rows2; } // Token: 0x040094A5 RID: 38053 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x40094A5")] public byte[] bytes; } // Token: 0x02001FF9 RID: 8185 [Token(Token = "0x2001FF9")] [CompilerGenerated] private sealed class HCDCNODAACF { // Token: 0x0600E2A0 RID: 58016 RVA: 0x0035F0C4 File Offset: 0x0035D2C4 [Token(Token = "0x600E2A0")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public HCDCNODAACF() { } // Token: 0x0600E2A1 RID: 58017 RVA: 0x0035F0D8 File Offset: 0x0035D2D8 [Token(Token = "0x600E2A1")] [Address(RVA = "0x19CDC70", Offset = "0x19CC670", VA = "0x1819CDC70")] internal void b__0(object sender, DoWorkEventArgs args) { int num = this.width; int num2 = this.height; uint num3; ulong num4; ImageInfo imageInfo = new ImageInfo(num, num2, (int)num3, num4 != 0UL); PngWriter pngWriter = new PngWriter(new MemoryStream(), imageInfo); int rows = imageInfo.Rows; ImageLine imageLine = new ImageLine(imageInfo); int num5 = 0; int cols = imageInfo.Cols; if (num5 < cols) { Color[] array = this.pixels; imageLine += imageLine; throw new NullReferenceException(); } int num6 = imageInfo.Rows; num6 -= rows; pngWriter.WriteRow(imageLine, num6); pngWriter.End(); } // Token: 0x040094A6 RID: 38054 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x40094A6")] public int width; // Token: 0x040094A7 RID: 38055 [global::Cpp2IlInjected.FieldOffset(Offset = "0x14")] [Token(Token = "0x40094A7")] public int height; // Token: 0x040094A8 RID: 38056 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x40094A8")] public Color[] pixels; } // Token: 0x02001FFA RID: 8186 [Token(Token = "0x2001FFA")] [CompilerGenerated] private sealed class OKHLOALFGHN { // Token: 0x0600E2A2 RID: 58018 RVA: 0x0035F184 File Offset: 0x0035D384 [Token(Token = "0x600E2A2")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public OKHLOALFGHN() { } // Token: 0x0600E2A3 RID: 58019 RVA: 0x0035F198 File Offset: 0x0035D398 [Token(Token = "0x600E2A3")] [Address(RVA = "0x19E15E0", Offset = "0x19DFFE0", VA = "0x1819E15E0")] internal void b__0(object sender, DoWorkEventArgs args) { int num = this.width; int num2 = this.height; int num3; ulong num4; ImageInfo imageInfo = new ImageInfo(num, num2, 8, num3 != 0, num3 != 0, num4 != 0UL); num3 = 0; PngWriter pngWriter = new PngWriter(new MemoryStream(), imageInfo); PngChunkPLTE pngChunkPLTE = pngWriter.metadata.CreatePLTEChunk(); Color[] array = this.pixels; int cols = imageInfo.Cols; int num5 = imageInfo.Rows; PNNNFMKFEGK.LLFGILJHKAA llfgiljhkaa = PNNNFMKFEGK.HBOPBOHLLHH(imageInfo, array); PNNNFMKFEGK pnnnfmkfegk = new PNNNFMKFEGK(cols, num5, llfgiljhkaa); pnnnfmkfegk.AMBDOAIKPOI = true; pnnnfmkfegk.CPLDGKCIAGP(); int num6 = pnnnfmkfegk.NCOGLNDNAOE(); num5 = num6; pngChunkPLTE.SetNentries(num6); int num7 = 0; if (num5 > 0) { int[] array2 = pnnnfmkfegk.EKDFIFGBNCK(num7); int length = array2.Length; int num8 = array2[1]; int num9 = array2[0]; int num10 = array2[0]; pngChunkPLTE.SetEntry(num7, num10, num9, num8); num7++; } int num11 = pnnnfmkfegk.DLEOOHNHJOJ(); pngWriter.metadata.CreateTRNSChunk().setIndexEntryAsTransparent(num11); int rows = imageInfo.Rows; ImageLine imageLine = new ImageLine(imageInfo); int num12 = 0; int cols2 = imageInfo.Cols; if (num12 < cols2) { Color[] array3 = this.pixels; imageLine += imageLine; throw new NullReferenceException(); } int num13 = imageInfo.Rows; num13 -= rows; pngWriter.WriteRow(imageLine, num13); pngWriter.End(); } // Token: 0x040094A9 RID: 38057 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x40094A9")] public int width; // Token: 0x040094AA RID: 38058 [global::Cpp2IlInjected.FieldOffset(Offset = "0x14")] [Token(Token = "0x40094AA")] public int height; // Token: 0x040094AB RID: 38059 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x40094AB")] public Color[] pixels; } // Token: 0x02001FFB RID: 8187 [Token(Token = "0x2001FFB")] [CompilerGenerated] private sealed class LIPGJNBKHMA { // Token: 0x0600E2A4 RID: 58020 RVA: 0x0035F32C File Offset: 0x0035D52C [Token(Token = "0x600E2A4")] [Address(RVA = "0x1B1AA80", Offset = "0x1B19480", VA = "0x181B1AA80")] public LIPGJNBKHMA() { } // Token: 0x0600E2A5 RID: 58021 RVA: 0x0035F348 File Offset: 0x0035D548 [Token(Token = "0x600E2A5")] [Address(RVA = "0x23F8E40", Offset = "0x23F7840", VA = "0x1823F8E40")] internal void b__0(object sender, RunWorkerCompletedEventArgs e) { KGMPNCLMCHO.JCELOMJGFKC jcelomjgfkc = new KGMPNCLMCHO.JCELOMJGFKC(); jcelomjgfkc.CS$<>8__locals1 = this; jcelomjgfkc.e = e; Action action; BPHGKAEDBPE.APAOCLJJNFK(action); } // Token: 0x040094AC RID: 38060 [global::Cpp2IlInjected.FieldOffset(Offset = "0x0")] [Token(Token = "0x40094AC")] public Promise promise; } // Token: 0x02001FFC RID: 8188 [Token(Token = "0x2001FFC")] [CompilerGenerated] private sealed class JCELOMJGFKC { // Token: 0x0600E2A6 RID: 58022 RVA: 0x0035F378 File Offset: 0x0035D578 [Token(Token = "0x600E2A6")] [Address(RVA = "0x1B1AA80", Offset = "0x1B19480", VA = "0x181B1AA80")] public JCELOMJGFKC() { } // Token: 0x0600E2A7 RID: 58023 RVA: 0x0035F394 File Offset: 0x0035D594 [Token(Token = "0x600E2A7")] [Address(RVA = "0x23F1EE0", Offset = "0x23F08E0", VA = "0x1823F1EE0")] internal void b__1() { Exception error; Promise promise; object result; do { RunWorkerCompletedEventArgs runWorkerCompletedEventArgs = this.e; error = runWorkerCompletedEventArgs.error; if (error != 0) { goto IL_35; } promise = this.CS$<>8__locals1.promise; result = runWorkerCompletedEventArgs.Result; if (result == 0) { } } while (result == 0); promise.Complete(result); return; IL_35: Debug.LogException(error); KGMPNCLMCHO.LIPGJNBKHMA cs$<>8__locals = this.CS$<>8__locals1; RunWorkerCompletedEventArgs runWorkerCompletedEventArgs2 = this.e; Promise promise2 = cs$<>8__locals.promise; Exception error2 = runWorkerCompletedEventArgs2.error; Promise promise3 = this.CS$<>8__locals1.promise; throw new NullReferenceException(); } // Token: 0x040094AD RID: 38061 [global::Cpp2IlInjected.FieldOffset(Offset = "0x0")] [Token(Token = "0x40094AD")] public RunWorkerCompletedEventArgs e; // Token: 0x040094AE RID: 38062 [global::Cpp2IlInjected.FieldOffset(Offset = "0x0")] [Token(Token = "0x40094AE")] public KGMPNCLMCHO.LIPGJNBKHMA CS$<>8__locals1; } }