719 lines
33 KiB
C#
719 lines
33 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Runtime.InteropServices;
|
|
using BestHTTP.Decompression.Crc;
|
|
using BestHTTP.Extensions;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.Decompression.Zlib
|
|
{
|
|
// Token: 0x020019DC RID: 6620
|
|
[Token(Token = "0x20019DC")]
|
|
[StructLayout(3)]
|
|
internal class ZlibBaseStream : Stream
|
|
{
|
|
// Token: 0x17001CB7 RID: 7351
|
|
// (get) Token: 0x0600B1E5 RID: 45541 RVA: 0x0029C674 File Offset: 0x0029A874
|
|
[Token(Token = "0x17001CB7")]
|
|
internal int Crc32
|
|
{
|
|
[Token(Token = "0x600B1E5")]
|
|
[Address(RVA = "0x1E70B70", Offset = "0x1E6F570", VA = "0x181E70B70")]
|
|
get
|
|
{
|
|
CRC32 crc = this.crc;
|
|
if (crc != 0)
|
|
{
|
|
return crc.Crc32Result;
|
|
}
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B1E6 RID: 45542 RVA: 0x0029C694 File Offset: 0x0029A894
|
|
[Token(Token = "0x600B1E6")]
|
|
[Address(RVA = "0x1E6FFA0", Offset = "0x1E6E9A0", VA = "0x181E6FFA0")]
|
|
public ZlibBaseStream(Stream stream, CompressionMode compressionMode, CompressionLevel level, ZlibStreamFlavor flavor, bool leaveOpen)
|
|
{
|
|
byte[] array = new byte[1];
|
|
this._buf1 = array;
|
|
base..ctor();
|
|
this._leaveOpen = false;
|
|
this._flushMode = (FlushType)((ulong)0L);
|
|
this._stream = stream;
|
|
this._compressionMode = compressionMode;
|
|
this._flavor = (ZlibStreamFlavor)0;
|
|
this._level = level;
|
|
this.windowBitsMax = (int)((ulong)15L);
|
|
CRC32 crc = new CRC32();
|
|
this.crc = crc;
|
|
}
|
|
|
|
// Token: 0x0600B1E7 RID: 45543 RVA: 0x0029C714 File Offset: 0x0029A914
|
|
[Token(Token = "0x600B1E7")]
|
|
[Address(RVA = "0x1E70090", Offset = "0x1E6EA90", VA = "0x181E70090")]
|
|
public ZlibBaseStream(Stream stream, CompressionMode compressionMode, CompressionLevel level, ZlibStreamFlavor flavor, bool leaveOpen, int windowBits)
|
|
{
|
|
byte[] array = new byte[1];
|
|
this._buf1 = array;
|
|
base..ctor();
|
|
this._leaveOpen = false;
|
|
this.windowBitsMax = 0;
|
|
this._flushMode = (FlushType)((ulong)0L);
|
|
this._stream = stream;
|
|
this._compressionMode = compressionMode;
|
|
this._flavor = (ZlibStreamFlavor)0;
|
|
this._level = level;
|
|
CRC32 crc = new CRC32();
|
|
this.crc = crc;
|
|
}
|
|
|
|
// Token: 0x17001CB8 RID: 7352
|
|
// (get) Token: 0x0600B1E8 RID: 45544 RVA: 0x0029C790 File Offset: 0x0029A990
|
|
[Token(Token = "0x17001CB8")]
|
|
protected internal bool _wantCompress
|
|
{
|
|
[Token(Token = "0x600B1E8")]
|
|
[Address(RVA = "0xE380F0", Offset = "0xE36AF0", VA = "0x180E380F0")]
|
|
get
|
|
{
|
|
return this._compressionMode == CompressionMode.Compress;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001CB9 RID: 7353
|
|
// (get) Token: 0x0600B1E9 RID: 45545 RVA: 0x0029C7A8 File Offset: 0x0029A9A8
|
|
[Token(Token = "0x17001CB9")]
|
|
private ZlibCodec z
|
|
{
|
|
[Token(Token = "0x600B1E9")]
|
|
[Address(RVA = "0x1E70C60", Offset = "0x1E6F660", VA = "0x181E70C60")]
|
|
get
|
|
{
|
|
if (this._z == (ulong)0L)
|
|
{
|
|
bool flag = this._flavor == ZlibStreamFlavor.ZLIB;
|
|
ZlibCodec zlibCodec = new ZlibCodec();
|
|
zlibCodec.CompressLevel = (CompressionLevel)((ulong)6L);
|
|
zlibCodec.WindowBits = (int)((ulong)15L);
|
|
this._z = zlibCodec;
|
|
if (this._compressionMode != CompressionMode.Decompress)
|
|
{
|
|
CompressionStrategy strategy = this.Strategy;
|
|
zlibCodec.Strategy = strategy;
|
|
ZlibCodec z = this._z;
|
|
int num = this.windowBitsMax;
|
|
CompressionLevel level = this._level;
|
|
z.WindowBits = num;
|
|
z.CompressLevel = level;
|
|
int num2 = z._InternalInitializeDeflate(flag);
|
|
}
|
|
int num3 = this.windowBitsMax;
|
|
int num4 = zlibCodec.InitializeInflate(num3, flag);
|
|
}
|
|
return this._z;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001CBA RID: 7354
|
|
// (get) Token: 0x0600B1EA RID: 45546 RVA: 0x0029C858 File Offset: 0x0029AA58
|
|
[Token(Token = "0x17001CBA")]
|
|
private byte[] workingBuffer
|
|
{
|
|
[Token(Token = "0x600B1EA")]
|
|
[Address(RVA = "0x1E70BE0", Offset = "0x1E6F5E0", VA = "0x181E70BE0")]
|
|
get
|
|
{
|
|
if (this._workingBuffer == (ulong)0L)
|
|
{
|
|
byte[] array = VariableSizedBufferPool.Get((long)this._bufferSize, true);
|
|
this._workingBuffer = array;
|
|
}
|
|
return this._workingBuffer;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B1EB RID: 45547 RVA: 0x0029C88C File Offset: 0x0029AA8C
|
|
[Token(Token = "0x600B1EB")]
|
|
[Address(RVA = "0x1E6F720", Offset = "0x1E6E120", VA = "0x181E6F720", Slot = "29")]
|
|
public override void Write(byte[] buffer, int offset, int count)
|
|
{
|
|
int num;
|
|
ZlibCodec z3;
|
|
do
|
|
{
|
|
CRC32 crc = this.crc;
|
|
num = 0;
|
|
if (crc != 0)
|
|
{
|
|
crc.SlurpBlock(buffer, offset, count);
|
|
}
|
|
ZlibBaseStream.StreamMode streamMode = this._streamMode;
|
|
if (streamMode != ZlibBaseStream.StreamMode.Undefined && streamMode != ZlibBaseStream.StreamMode.Writer)
|
|
{
|
|
goto IL_14C;
|
|
}
|
|
this._streamMode = (ZlibBaseStream.StreamMode)num;
|
|
if (count == 0)
|
|
{
|
|
return;
|
|
}
|
|
this.z.InputBuffer = buffer;
|
|
this._z.NextIn = offset;
|
|
this._z.AvailableBytesIn = count;
|
|
ZlibCodec z = this._z;
|
|
if (this._workingBuffer == num)
|
|
{
|
|
ulong num2;
|
|
byte[] array = VariableSizedBufferPool.Get((long)this._bufferSize, num2 != 0UL);
|
|
this._workingBuffer = array;
|
|
}
|
|
byte[] workingBuffer = this._workingBuffer;
|
|
z.OutputBuffer = workingBuffer;
|
|
this._z.NextOut = num;
|
|
byte[] workingBuffer2 = this._workingBuffer;
|
|
ZlibCodec z2 = this._z;
|
|
int length = workingBuffer2.Length;
|
|
z2.AvailableBytesOut = length;
|
|
z3 = this._z;
|
|
FlushType flushMode = this._flushMode;
|
|
if (this._compressionMode == (CompressionMode)num && z3.dstate == 0)
|
|
{
|
|
goto IL_158;
|
|
}
|
|
}
|
|
while (z3.istate == 0);
|
|
int num3;
|
|
if (num3 > 1)
|
|
{
|
|
goto IL_164;
|
|
}
|
|
byte[] workingBuffer3 = this._workingBuffer;
|
|
ZlibCodec z4 = this._z;
|
|
int num4 = this._stream.ReadByte();
|
|
int availableBytesIn = this._z.AvailableBytesIn;
|
|
if (availableBytesIn != 0)
|
|
{
|
|
}
|
|
if (this._flavor != ZlibStreamFlavor.GZIP || this._compressionMode == (CompressionMode)num || availableBytesIn == 8)
|
|
{
|
|
}
|
|
while (num == 0)
|
|
{
|
|
}
|
|
return;
|
|
IL_14C:
|
|
ZlibException ex = new ZlibException("Cannot Write after Reading.");
|
|
IL_158:
|
|
ZlibException ex2 = new ZlibException("No Deflate State!");
|
|
IL_164:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600B1EC RID: 45548 RVA: 0x0029CA0C File Offset: 0x0029AC0C
|
|
[Token(Token = "0x600B1EC")]
|
|
[Address(RVA = "0x1E70300", Offset = "0x1E6ED00", VA = "0x181E70300")]
|
|
private void finish()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B1EC)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.Decompression.Zlib.ZlibBaseStream::finish()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_297:
|
|
stloc:ZlibException(var_47_2AA, newobj:ZlibException(ZlibException::.ctor, call:string(string::Format, ldstr:string("Bad size in GZIP trailer. (actual({0})!=expected({1}))"), ldloc:ZlibException[exp:object](var_46), ldloc:ZlibException[exp:object](var_46))))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
|
--- End of inner exception stack trace ---
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
|
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
|
*/;
|
|
}
|
|
|
|
// Token: 0x0600B1ED RID: 45549 RVA: 0x0029CCC4 File Offset: 0x0029AEC4
|
|
[Token(Token = "0x600B1ED")]
|
|
[Address(RVA = "0x1E70180", Offset = "0x1E6EB80", VA = "0x181E70180")]
|
|
private void end()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B1ED)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.Decompression.Zlib.ZlibBaseStream::end()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_8D:
|
|
stloc:ZlibException(var_7_97, newobj:ZlibException(ZlibException::.ctor, ldstr:string("No Deflate State!")))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
|
--- End of inner exception stack trace ---
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
|
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
|
*/;
|
|
}
|
|
|
|
// Token: 0x0600B1EE RID: 45550 RVA: 0x0029CD6C File Offset: 0x0029AF6C
|
|
[Token(Token = "0x600B1EE")]
|
|
[Address(RVA = "0x1E6EDA0", Offset = "0x1E6D7A0", VA = "0x181E6EDA0", Slot = "15")]
|
|
public override void Close()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B1EE)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.Decompression.Zlib.ZlibBaseStream::Close()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_BA:
|
|
stloc:ZlibException(var_6_C4, newobj:ZlibException(ZlibException::.ctor, ldstr:string("No Deflate State!")))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
|
--- End of inner exception stack trace ---
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
|
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
|
*/;
|
|
}
|
|
|
|
// Token: 0x0600B1EF RID: 45551 RVA: 0x0029CE40 File Offset: 0x0029B040
|
|
[Token(Token = "0x600B1EF")]
|
|
[Address(RVA = "0xE35510", Offset = "0xE33F10", VA = "0x180E35510", Slot = "17")]
|
|
public override void Flush()
|
|
{
|
|
bool canRead = this._stream.CanRead;
|
|
}
|
|
|
|
// Token: 0x0600B1F0 RID: 45552 RVA: 0x0029CE60 File Offset: 0x0029B060
|
|
[Token(Token = "0x600B1F0")]
|
|
[Address(RVA = "0x1E6F690", Offset = "0x1E6E090", VA = "0x181E6F690", Slot = "25")]
|
|
public override long Seek(long offset, SeekOrigin origin)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B1F0)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int64 BestHTTP.Decompression.Zlib.ZlibBaseStream::Seek(System.Int64,System.IO.SeekOrigin)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
stloc:NotImplementedException(var_0_05, newobj:NotImplementedException(NotImplementedException::.ctor))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
|
--- End of inner exception stack trace ---
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
|
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
|
*/;
|
|
}
|
|
|
|
// Token: 0x0600B1F1 RID: 45553 RVA: 0x0029CE74 File Offset: 0x0029B074
|
|
[Token(Token = "0x600B1F1")]
|
|
[Address(RVA = "0x1E6F6E0", Offset = "0x1E6E0E0", VA = "0x181E6F6E0", Slot = "26")]
|
|
public override void SetLength(long value)
|
|
{
|
|
Stream stream = this._stream;
|
|
this.nomoreinput = false;
|
|
}
|
|
|
|
// Token: 0x0600B1F2 RID: 45554 RVA: 0x0029CE98 File Offset: 0x0029B098
|
|
[Token(Token = "0x600B1F2")]
|
|
[Address(RVA = "0x1E6EFD0", Offset = "0x1E6D9D0", VA = "0x181E6EFD0")]
|
|
private string ReadZeroTerminatedString()
|
|
{
|
|
List<byte> list = new List();
|
|
Stream stream = this._stream;
|
|
byte b = this._buf1[0];
|
|
list.Add(b);
|
|
byte[] array = list.ToArray();
|
|
return GZipStream.iso8859dash1.GetString(array);
|
|
}
|
|
|
|
// Token: 0x0600B1F3 RID: 45555 RVA: 0x0029CEE0 File Offset: 0x0029B0E0
|
|
[Token(Token = "0x600B1F3")]
|
|
[Address(RVA = "0x1E6FAC0", Offset = "0x1E6E4C0", VA = "0x181E6FAC0")]
|
|
private int _ReadAndValidateGzipHeader()
|
|
{
|
|
byte[] array;
|
|
do
|
|
{
|
|
uint num;
|
|
ulong num2;
|
|
array = VariableSizedBufferPool.Get((long)num, num2 != 0UL);
|
|
Stream stream = this._stream;
|
|
int length = array.Length;
|
|
}
|
|
while ("{il2cpp array field local5->}" != (ulong)31L || "{il2cpp array field local5->}" != (ulong)139L || "{il2cpp array field local5->}" != (ulong)8L);
|
|
int num3 = BitConverter.ToInt32(array, 4);
|
|
DateTime unixEpoch = GZipStream._unixEpoch;
|
|
int length2 = array.Length;
|
|
if ("{il2cpp array field local5->}" != (ulong)4L)
|
|
{
|
|
Stream stream2 = this._stream;
|
|
int length3 = array.Length;
|
|
byte b = array[0];
|
|
byte b2 = array[0];
|
|
uint num4;
|
|
byte b3 = (byte)((uint)b * num4);
|
|
b3 += b2;
|
|
Stream stream3 = this._stream;
|
|
}
|
|
if ("{il2cpp array field local5->}" != (ulong)8L)
|
|
{
|
|
string text = this.ReadZeroTerminatedString();
|
|
this._GzipFileName = text;
|
|
int length4 = array.Length;
|
|
}
|
|
if ("{il2cpp array field local5->}" != (ulong)16L)
|
|
{
|
|
string text2 = this.ReadZeroTerminatedString();
|
|
this._GzipComment = text2;
|
|
int length5 = array.Length;
|
|
}
|
|
if ("{il2cpp array field local5->}" != (ulong)2L)
|
|
{
|
|
}
|
|
VariableSizedBufferPool.Release(array);
|
|
VariableSizedBufferPool.Release(array);
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600B1F4 RID: 45556 RVA: 0x0029CFE4 File Offset: 0x0029B1E4
|
|
[Token(Token = "0x600B1F4")]
|
|
[Address(RVA = "0x1E6F160", Offset = "0x1E6DB60", VA = "0x181E6F160", Slot = "27")]
|
|
public override int Read(byte[] buffer, int offset, int count)
|
|
{
|
|
int num;
|
|
int num4;
|
|
bool flag;
|
|
for (;;)
|
|
{
|
|
num = 0;
|
|
if (this._streamMode == ZlibBaseStream.StreamMode.Undefined)
|
|
{
|
|
this._stream.Dispose();
|
|
this._streamMode = (ZlibBaseStream.StreamMode)((ulong)1L);
|
|
this.z.AvailableBytesIn = num;
|
|
if (this._flavor == ZlibStreamFlavor.GZIP)
|
|
{
|
|
int num2 = this._ReadAndValidateGzipHeader();
|
|
this._gzipHeaderByteCount = num2;
|
|
if (num2 == 0)
|
|
{
|
|
goto IL_1D9;
|
|
}
|
|
}
|
|
}
|
|
if (this._streamMode != ZlibBaseStream.StreamMode.Reader || count == 0 || ((this.nomoreinput ? 1 : 0) != num && this._compressionMode == (CompressionMode)num))
|
|
{
|
|
goto IL_1D9;
|
|
}
|
|
if (buffer != 0)
|
|
{
|
|
this._z.OutputBuffer = buffer;
|
|
this._z.NextOut = offset;
|
|
this._z.AvailableBytesOut = count;
|
|
ZlibCodec z = this._z;
|
|
byte[] workingBuffer = this.workingBuffer;
|
|
z.InputBuffer = workingBuffer;
|
|
ZlibCodec z2 = this._z;
|
|
ZlibCodec z4;
|
|
if (z2.AvailableBytesIn == num && (this.nomoreinput ? 1 : 0) == num)
|
|
{
|
|
z2.NextIn = num;
|
|
byte[] workingBuffer2 = this._workingBuffer;
|
|
ZlibCodec z3 = this._z;
|
|
Stream stream = this._stream;
|
|
int length = workingBuffer2.Length;
|
|
z4 = this._z;
|
|
if (z4.AvailableBytesIn == num)
|
|
{
|
|
this.nomoreinput = true;
|
|
}
|
|
}
|
|
FlushType flushMode = this._flushMode;
|
|
if (this._compressionMode == (CompressionMode)num)
|
|
{
|
|
int num3 = z4.Deflate(flushMode);
|
|
}
|
|
num4 = z4.Inflate(flushMode);
|
|
flag = this.nomoreinput;
|
|
if (flag && num4 == -5)
|
|
{
|
|
goto IL_1D9;
|
|
}
|
|
if (num4 <= 1)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
ZlibCodec z5;
|
|
if ((!flag && num4 != 1) || this._z.AvailableBytesOut != count)
|
|
{
|
|
z5 = this._z;
|
|
if (z5.AvailableBytesOut <= num || flag || num4 == 0)
|
|
{
|
|
}
|
|
}
|
|
if (z5.AvailableBytesOut <= num || !flag || this._compressionMode != (CompressionMode)num || z5.Deflate(FlushType.Finish) <= 1)
|
|
{
|
|
ZlibCodec z6 = this._z;
|
|
CRC32 crc = this.crc;
|
|
if (crc != 0)
|
|
{
|
|
crc.SlurpBlock(buffer, offset, count);
|
|
}
|
|
return count;
|
|
}
|
|
goto IL_1F1;
|
|
IL_1D9:
|
|
ZlibException ex = new ZlibException("Cannot Read after Writing.");
|
|
ZlibException ex2 = new ZlibException("The stream is not readable.");
|
|
IL_1F1:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x17001CBB RID: 7355
|
|
// (get) Token: 0x0600B1F5 RID: 45557 RVA: 0x0029D1FC File Offset: 0x0029B3FC
|
|
[Token(Token = "0x17001CBB")]
|
|
public override bool CanRead
|
|
{
|
|
[Token(Token = "0x600B1F5")]
|
|
[Address(RVA = "0xE38010", Offset = "0xE36A10", VA = "0x180E38010", Slot = "7")]
|
|
get
|
|
{
|
|
return this._stream.CanRead;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001CBC RID: 7356
|
|
// (get) Token: 0x0600B1F6 RID: 45558 RVA: 0x0029D21C File Offset: 0x0029B41C
|
|
[Token(Token = "0x17001CBC")]
|
|
public override bool CanSeek
|
|
{
|
|
[Token(Token = "0x600B1F6")]
|
|
[Address(RVA = "0xE38040", Offset = "0xE36A40", VA = "0x180E38040", Slot = "8")]
|
|
get
|
|
{
|
|
return this._stream.CanRead;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001CBD RID: 7357
|
|
// (get) Token: 0x0600B1F7 RID: 45559 RVA: 0x0029D23C File Offset: 0x0029B43C
|
|
[Token(Token = "0x17001CBD")]
|
|
public override bool CanWrite
|
|
{
|
|
[Token(Token = "0x600B1F7")]
|
|
[Address(RVA = "0xE38070", Offset = "0xE36A70", VA = "0x180E38070", Slot = "9")]
|
|
get
|
|
{
|
|
return this._stream.CanRead;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001CBE RID: 7358
|
|
// (get) Token: 0x0600B1F8 RID: 45560 RVA: 0x0029D25C File Offset: 0x0029B45C
|
|
[Token(Token = "0x17001CBE")]
|
|
public override long Length
|
|
{
|
|
[Token(Token = "0x600B1F8")]
|
|
[Address(RVA = "0xE365E0", Offset = "0xE34FE0", VA = "0x180E365E0", Slot = "10")]
|
|
get
|
|
{
|
|
bool canRead = this._stream.CanRead;
|
|
throw new NullReferenceException();
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001CBF RID: 7359
|
|
// (get) Token: 0x0600B1F9 RID: 45561 RVA: 0x0029D27C File Offset: 0x0029B47C
|
|
// (set) Token: 0x0600B1FA RID: 45562 RVA: 0x0029D290 File Offset: 0x0029B490
|
|
[Token(Token = "0x17001CBF")]
|
|
public override long Position
|
|
{
|
|
[Token(Token = "0x600B1F9")]
|
|
[Address(RVA = "0x1E70B90", Offset = "0x1E6F590", VA = "0x181E70B90", Slot = "11")]
|
|
get
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B1F9)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int64 BestHTTP.Decompression.Zlib.ZlibBaseStream::get_Position()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
stloc:NotImplementedException(var_0_05, newobj:NotImplementedException(NotImplementedException::.ctor))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
|
--- End of inner exception stack trace ---
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
|
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
|
*/;
|
|
}
|
|
[Token(Token = "0x600B1FA")]
|
|
[Address(RVA = "0x1E70D30", Offset = "0x1E6F730", VA = "0x181E70D30", Slot = "12")]
|
|
set
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B1FA)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.Decompression.Zlib.ZlibBaseStream::set_Position(System.Int64)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
stloc:NotImplementedException(var_0_05, newobj:NotImplementedException(NotImplementedException::.ctor))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
|
--- End of inner exception stack trace ---
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
|
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
|
*/;
|
|
}
|
|
}
|
|
|
|
// Token: 0x04007561 RID: 30049
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4007561")]
|
|
protected internal ZlibCodec _z;
|
|
|
|
// Token: 0x04007562 RID: 30050
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4007562")]
|
|
protected internal ZlibBaseStream.StreamMode _streamMode = (ZlibBaseStream.StreamMode)((ulong)2L);
|
|
|
|
// Token: 0x04007563 RID: 30051
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34")]
|
|
[Token(Token = "0x4007563")]
|
|
protected internal FlushType _flushMode;
|
|
|
|
// Token: 0x04007564 RID: 30052
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x4007564")]
|
|
protected internal ZlibStreamFlavor _flavor;
|
|
|
|
// Token: 0x04007565 RID: 30053
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3C")]
|
|
[Token(Token = "0x4007565")]
|
|
protected internal CompressionMode _compressionMode;
|
|
|
|
// Token: 0x04007566 RID: 30054
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x4007566")]
|
|
protected internal CompressionLevel _level;
|
|
|
|
// Token: 0x04007567 RID: 30055
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x44")]
|
|
[Token(Token = "0x4007567")]
|
|
protected internal bool _leaveOpen;
|
|
|
|
// Token: 0x04007568 RID: 30056
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x4007568")]
|
|
protected internal byte[] _workingBuffer;
|
|
|
|
// Token: 0x04007569 RID: 30057
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
|
|
[Token(Token = "0x4007569")]
|
|
protected internal int _bufferSize = (int)((ulong)16384L);
|
|
|
|
// Token: 0x0400756A RID: 30058
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x54")]
|
|
[Token(Token = "0x400756A")]
|
|
protected internal int windowBitsMax;
|
|
|
|
// Token: 0x0400756B RID: 30059
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
|
|
[Token(Token = "0x400756B")]
|
|
protected internal byte[] _buf1;
|
|
|
|
// Token: 0x0400756C RID: 30060
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
|
|
[Token(Token = "0x400756C")]
|
|
protected internal Stream _stream;
|
|
|
|
// Token: 0x0400756D RID: 30061
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
|
|
[Token(Token = "0x400756D")]
|
|
protected internal CompressionStrategy Strategy;
|
|
|
|
// Token: 0x0400756E RID: 30062
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
|
|
[Token(Token = "0x400756E")]
|
|
private CRC32 crc;
|
|
|
|
// Token: 0x0400756F RID: 30063
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
|
|
[Token(Token = "0x400756F")]
|
|
protected internal string _GzipFileName;
|
|
|
|
// Token: 0x04007570 RID: 30064
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x80")]
|
|
[Token(Token = "0x4007570")]
|
|
protected internal string _GzipComment;
|
|
|
|
// Token: 0x04007571 RID: 30065
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x88")]
|
|
[Token(Token = "0x4007571")]
|
|
protected internal DateTime _GzipMtime;
|
|
|
|
// Token: 0x04007572 RID: 30066
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x90")]
|
|
[Token(Token = "0x4007572")]
|
|
protected internal int _gzipHeaderByteCount;
|
|
|
|
// Token: 0x04007573 RID: 30067
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x94")]
|
|
[Token(Token = "0x4007573")]
|
|
private bool nomoreinput;
|
|
|
|
// Token: 0x020019DD RID: 6621
|
|
[Token(Token = "0x20019DD")]
|
|
internal enum StreamMode
|
|
{
|
|
// Token: 0x04007575 RID: 30069
|
|
[Token(Token = "0x4007575")]
|
|
Writer,
|
|
// Token: 0x04007576 RID: 30070
|
|
[Token(Token = "0x4007576")]
|
|
Reader,
|
|
// Token: 0x04007577 RID: 30071
|
|
[Token(Token = "0x4007577")]
|
|
Undefined
|
|
}
|
|
}
|
|
}
|