public static WaitObjectResult GetRealWaitObjectResult(WaitObjectResult value)
        {
            Ldarg_0();
            Ldc_I4((int)WaitObjectResult.Abandoned);
            Blt_Un_S("IL_0022");

            Ldarg_0();
            Ldc_I4((int)WaitObjectResult.Timeout);
            Blt_Un_S("IL_001C");

            Ldarg_0();
            Ldc_I4_M1();
            Blt_Un_S("IL_0016");

            Ldc_I4_M1();
            Ret();

            IL.MarkLabel("IL_0016");

            Ldc_I4((int)WaitObjectResult.Timeout);
            Ret();

            IL.MarkLabel("IL_001C");

            Ldc_I4((int)WaitObjectResult.Abandoned);
            Ret();

            IL.MarkLabel("IL_0022");

            Ldc_I4_0();
            return(IL.Return <WaitObjectResult>());
        }
        public static WaitObjectResult GetRealWaitObjectResult(WaitObjectResult value, out int index)
        {
            Br("skip");
            index = 0;
            IL.MarkLabel("skip");

            Ldarg_0();
            Ldc_I4((int)WaitObjectResult.Abandoned);
            Bge_Un_S("IL_000D");

            Ldarg_1();
            Ldarg_0();
            Stind_I4();
            Ldc_I4_0();
            Ret();

            IL.MarkLabel("IL_000D");

            Ldarg_0();
            Ldc_I4((int)WaitObjectResult.Timeout);
            Bge_Un_S("IL_0024");

            Ldarg_1();
            Ldarg_0();
            Ldc_I4((int)WaitObjectResult.Abandoned);
            Sub();
            Stind_I4();
            Ldc_I4((int)WaitObjectResult.Abandoned);
            Ret();

            IL.MarkLabel("IL_0024");

            Ldarg_0();
            Ldc_I4_M1();
            Bge_Un_S("IL_0037");

            Ldarg_1();
            Ldarg_0();
            Ldc_I4((int)WaitObjectResult.Timeout);
            Sub();
            Stind_I4();
            Ldc_I4((int)WaitObjectResult.Timeout);
            Ret();

            IL.MarkLabel("IL_0037");

            Ldarg_1();
            Ldc_I4_0();
            Stind_I4();
            Ldc_I4_M1();

            return(IL.Return <WaitObjectResult>());
        }
 public static WaitObjectResult GetRealWaitObjectResult(WaitObjectResult value, out int index)
 => Kernel32.GetRealWaitObjectResult(value, out index);
 public static WaitObjectResult GetRealWaitObjectResult(WaitObjectResult value)
 => Kernel32.GetRealWaitObjectResult(value);