ここでは非常に奇妙な文言があり、割り当てた後、あなたはまた、直接の比較を行うことができます
int型の A = 0 ; もし((A = 10)> 9 ) { Console.WriteLineを(A)。 }
内部のIntPtr method_33(のIntPtr intptr_37、文字列 STRING_0は、paramsはClass276.Enum20 [] enum20_0) { ながら(intptr_37を!= IntPtr.Zero) { 使用(AllocatedMemory allocatedMemory = この .externalProcessMemory_0.CreateAllocatedMemory(256 )) { allocatedMemory.AllocateOfChunk <のIntPtr> (" Itrが" )。 IntPtrのIntPtr; 一方、((のIntPtr = この .method_35(intptr_37、allocatedMemory [ " Itrは"!]))= IntPtr.Zero) { のIntPtrアドレス = この.method_37(のIntPtr)。 もし(この .externalProcessMemory_0.ReadStringA(アドレス)== STRING_0) { 場合(enum20_0!= NULL ) { Class276.Enum20 []配列 = この.method_31(のIntPtr)。 もし(Array.lengthと!= enum20_0.Length ||!array.SequenceEqual(enum20_0)) { 続けます; } } 戻りのIntPtr。 } } intptr_37 = この.method_25(intptr_37)。 } } 戻りIntPtr.Zero。 }
2つのwhileループがあります。
最初のサイクルではないintptr_37渡されIntPtr.Zero
256 externalProcessMemory_0に基づいてメモリの割り当て
256メモリ内部のメモリのチャンクを割り当てます
IntPtr = method_35(intptr_37、チャンク新たに割り当てられたメモリ)
第二内部ループ
【のIntPtr = method_35(intptr_37、チャンク新たに割り当てられたメモリ)]この次のサイクルタイムが再びそれを行います
アドレス= method_37(のIntPtr)。
externalProcessMemory_0.ReadStringA(アドレス)とメソッド名を読みます
一致する場合、それはのIntPtrを返し、メソッド名の一致を判定し、そうでなければ第二のサイクルに戻ります
第二サイクルの終わりには、要件を満たすことが判明していませんでした、
実行intptr_37 = this.method_25(intptr_37)。
したがって、第二サイクルは、主に
1のIntPtr = method_35(intptr_37、チャンク新たに割り当てられたメモリ)
2.アドレス= method_37(のIntPtr)。
3.それが一致するかどうかを確認するためにメソッド名を読みます
内部のIntPtr method_35(のIntPtr intptr_37、のIntPtr intptr_38) { 戻り 、この .method_17を<のIntPtr>(この .intptr_19、新しい オブジェクト[] { intptr_37、 intptr_38 })。 }
内部のIntPtr method_37(のIntPtr intptr_37) { 戻り 、この .method_17を<のIntPtr>(この .intptr_21、新しい オブジェクト[] { intptr_37 })。 }
プライベート Tのmethod_17 <T>(のIntPtr intptr_37、paramsの オブジェクト [] object_0)ここで、 T:構造体 { 戻り 、この .externalProcessMemory_0.CallInjectedを<T> (intptr_37、CallingConvention.Cdecl、object_0)。 }