terraria-cpp2il-methodrecon v1.4.4.9
Terraria mobile dump, with reconstructed method body. Dump with CallAnalysis: https://infinitynichto.github.io/terraria-cpp2il
Loading...
Searching...
No Matches
Random.cs
Go to the documentation of this file.
1using System;
3
4namespace System
5{
6 // Token: 0x020000F0 RID: 240
7 public class Random
8 {
9 // Token: 0x060008E5 RID: 2277 RVA: 0x00015A94 File Offset: 0x00013C94
10 public Random()
11 {
12 if (!true)
13 {
14 }
15 int num = Random.GenerateSeed();
16 }
17
18 // Token: 0x060008E6 RID: 2278 RVA: 0x00015AAC File Offset: 0x00013CAC
19 public Random(int Seed)
20 {
21 }
22
23 // Token: 0x060008E7 RID: 2279 RVA: 0x00015ADC File Offset: 0x00013CDC
24 protected virtual double Sample()
25 {
26 /*
27An exception occurred when decompiling this method (060008E7)
28
29ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Double System.Random::Sample()
30
31 ---> System.Exception: Basic block has to end with unconditional control flow.
32{
33 Block_0:
34 stloc:int32(var_0_06, call:int32(Random::InternalSample, ldloc:Random(this)))
35}
36
37 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
38 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
39 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
40 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
41 --- End of inner exception stack trace ---
42 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
43 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 1683
44*/;
45 }
46
47 // Token: 0x060008E8 RID: 2280 RVA: 0x00015AF0 File Offset: 0x00013CF0
48 private int InternalSample()
49 {
50 /*
51An exception occurred when decompiling this method (060008E8)
52
53ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 System.Random::InternalSample()
54
55 ---> System.Exception: Basic block has to end with unconditional control flow.
56{
57 Block_0:
58 stloc:int32(var_0_06, ldfld:int32(Random::_inext, ldloc:Random(this)))
59 stloc:int32[](var_1_0D, ldfld:int32[](Random::_seedArray, ldloc:Random(this)))
60 stloc:int32[](var_2_14, ldfld:int32[](Random::_seedArray, ldloc:Random(this)))
61 stloc:int32(var_3_16, ldc.i4:int32(1))
62 stloc:int64(var_4_1C, ldc.i4:int64(2147483646))
63 stfld:int32(int32::m_value, ldloc:int32[exp:int32&](var_3_16), ldloc:int64[exp:int32](var_4_1C))
64 stfld:int32(Random::_inext, ldloc:Random(this), ldloc:int32[][exp:int32](var_2_14))
65 stfld:int32[](Random::_seedArray, ldloc:Random(this), ldloc:int32[](var_1_0D))
66}
67
68 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
69 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
70 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
71 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
72 --- End of inner exception stack trace ---
73 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
74 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 1683
75*/;
76 }
77
78 // Token: 0x060008E9 RID: 2281 RVA: 0x00015B30 File Offset: 0x00013D30
79 private static int GenerateSeed()
80 {
81 if (!true)
82 {
83 }
84 if (!true)
85 {
86 }
87 if (!true)
88 {
89 }
90 long num = 0L;
91 if (true)
92 {
93 }
94 if (num != 0L || 3 != 0 || !true)
95 {
96 }
97 throw new OutOfMemoryException();
98 }
99
100 // Token: 0x060008EA RID: 2282 RVA: 0x0000207A File Offset: 0x0000027A
101 private static int GenerateGlobalSeed()
102 {
103 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
104 }
105
106 // Token: 0x060008EB RID: 2283 RVA: 0x00015B64 File Offset: 0x00013D64
107 public virtual int Next()
108 {
109 return this.InternalSample();
110 }
111
112 // Token: 0x060008EC RID: 2284 RVA: 0x00015B78 File Offset: 0x00013D78
113 private double GetSampleForLargeRange()
114 {
115 /*
116An exception occurred when decompiling this method (060008EC)
117
118ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Double System.Random::GetSampleForLargeRange()
119
120 ---> System.Exception: Basic block has to end with unconditional control flow.
121{
122 Block_0:
123 stloc:int32(var_0_06, call:int32(Random::InternalSample, ldloc:Random(this)))
124 stloc:int32(var_1_0D, call:int32(Random::InternalSample, ldloc:Random(this)))
125}
126
127 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
128 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
129 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
130 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
131 --- End of inner exception stack trace ---
132 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
133 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 1683
134*/;
135 }
136
137 // Token: 0x060008ED RID: 2285 RVA: 0x00015B94 File Offset: 0x00013D94
138 public virtual int Next(int minValue, int maxValue)
139 {
140 /*
141An exception occurred when decompiling this method (060008ED)
142
143ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 System.Random::Next(System.Int32,System.Int32)
144
145 ---> System.Exception: Basic block has to end with unconditional control flow.
146{
147 Block_0:
148 stloc:float64(var_0_06, call:float64(Random::GetSampleForLargeRange, ldloc:Random(this)))
149 stloc:string(var_1_1B, call:string(SR::Format, ldstr:string("'{0}' cannot be greater than {1}."), ldstr:string[exp:object]("minValue"), ldstr:string[exp:object]("maxValue")))
150}
151
152 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
153 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
154 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
155 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
156 --- End of inner exception stack trace ---
157 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
158 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 1683
159*/;
160 }
161
162 // Token: 0x060008EE RID: 2286 RVA: 0x00015BBC File Offset: 0x00013DBC
163 public virtual int Next(int maxValue)
164 {
165 /*
166An exception occurred when decompiling this method (060008EE)
167
168ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 System.Random::Next(System.Int32)
169
170 ---> System.Exception: Basic block has to end with unconditional control flow.
171{
172 Block_0:
173 stloc:string(var_0_0F, call:string(SR::Format, ldstr:string("'{0}' must be greater than zero."), ldstr:string[exp:object]("maxValue")))
174}
175
176 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
177 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
178 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
179 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
180 --- End of inner exception stack trace ---
181 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
182 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 1683
183*/;
184 }
185
186 // Token: 0x060008EF RID: 2287 RVA: 0x00015BD8 File Offset: 0x00013DD8
187 public virtual void NextBytes(byte[] buffer)
188 {
189 while (buffer == null)
190 {
191 }
192 int num = this.InternalSample();
193 }
194
195 // Token: 0x060008F0 RID: 2288 RVA: 0x00015BF4 File Offset: 0x00013DF4
196 // Note: this type is marked as 'beforefieldinit'.
197 static Random()
198 {
199 }
200
201 // Token: 0x04000389 RID: 905
202 private int _inext;
203
204 // Token: 0x0400038A RID: 906
205 private int _inextp;
206
207 // Token: 0x0400038B RID: 907
208 private int[] _seedArray;
209
210 // Token: 0x0400038C RID: 908
212 private static Random t_threadRandom;
213
214 // Token: 0x0400038D RID: 909
216 }
217}
class f__AnonymousType0<< Count > j__TPar
virtual double Sample()
Definition Random.cs:24
static readonly Random s_globalRandom
Definition Random.cs:215
int InternalSample()
Definition Random.cs:48
virtual int Next()
Definition Random.cs:107
static int GenerateGlobalSeed()
Definition Random.cs:101
virtual void NextBytes(byte[] buffer)
Definition Random.cs:187
static Random t_threadRandom
Definition Random.cs:212
int[] _seedArray
Definition Random.cs:208
Random(int Seed)
Definition Random.cs:19
double GetSampleForLargeRange()
Definition Random.cs:113
virtual int Next(int minValue, int maxValue)
Definition Random.cs:138
static int GenerateSeed()
Definition Random.cs:79
virtual int Next(int maxValue)
Definition Random.cs:163
static Random()
Definition Random.cs:197