//  Microsoft (R) .NET Framework IL Disassembler.  Version 2.0.50727.42
//  Copyright (c) Microsoft Corporation.  All rights reserved.




// Metadata version: v2.0.50727
.assembly extern mscorlib
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .ver 2:0:0:0
}
.assembly '01.variables'
{

  // --- The following custom attribute is added automatically, do not uncomment -------
  //  .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 07 01 00 00 00 00 ) 

  .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) 
  .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78   // ....T..WrapNonEx
                                                                                                                                                                                                                                                                63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 )       // ceptionThrows.
  .hash algorithm 0x00008004
  .ver 0:0:0:0
}
.module '01.variables.exe'
// MVID: {4BD411F2-7839-4CF8-BD92-56F5D1BAE43B}
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003       // WINDOWS_CUI
.corflags 0x00000001    //  ILONLY
// Image base: 0x00380000


// =============== CLASS MEMBERS DECLARATION ===================

.class public auto ansi beforefieldinit FL_Program
       extends [mscorlib]System.Object
{
  .field public static literal int32 C = int32(0x00000000)
  .field public int32 A
  .field public int32 B
  .method public hidebysig instance int32  F(int32 P1,
                                                                                                                                                                                                                              int32& P2,
                                                                                                                                                                                                                              [out] int32& P3) cil managed
  {
    // Code size       20 (0x14)
    .maxstack  2
    .locals init ([0] int32 D,
             [1] int32 CS$1$0000)
    .language '{3F5162F8-07C6-11D3-9053-00C04FA302A1}', '{994B45C4-E6E9-11D2-903F-00C04FA302A1}', '{5A869D0B-6611-11D3-BD2A-0000F80849BD}'
// Source File 'l:\Лекции\3 Курс\Теория компиляторов\Samples\MSIL\decompiled\01.variables.cs' 
//000042:   public int F(int P1, ref int P2, out int P3) {
    IL_0000:  nop
//000043:     int D = 0;
    IL_0001:  ldc.i4.0
    IL_0002:  stloc.0
//000044:     D = P1 + P2;
    IL_0003:  ldarg.1
    IL_0004:  ldarg.2
    IL_0005:  ldind.i4
    IL_0006:  add
    IL_0007:  stloc.0
//000045:     P3 = D;
    IL_0008:  ldarg.3
    IL_0009:  ldloc.0
    IL_000a:  stind.i4
//000046:     P2 = P1;
    IL_000b:  ldarg.2
    IL_000c:  ldarg.1
    IL_000d:  stind.i4
//000047: 
//000048:     return C;
    IL_000e:  ldc.i4.0
    IL_000f:  stloc.1
    IL_0010:  br.s IL_0012

//000049:   }
    IL_0012:  ldloc.1
    IL_0013:  ret
  } // end of method FL_Program::F

  .method public hidebysig instance void  FL_Main() cil managed
  {
    // Code size       58 (0x3a)
    .maxstack  8
//000050: 
//000051: 
//000052:   public void FL_Main() {
    IL_0000:  nop
//000053:     B = 2;
    IL_0001:  ldarg.0
    IL_0002:  ldc.i4.2
    IL_0003:  stfld int32 FL_Program::B
//000054:     Console.WriteLine(F(1, ref B, out A));
    IL_0008:  ldarg.0
    IL_0009:  ldc.i4.1
    IL_000a:  ldarg.0
    IL_000b:  ldflda int32 FL_Program::B
    IL_0010:  ldarg.0
    IL_0011:  ldflda int32 FL_Program::A
    IL_0016:  call instance int32 FL_Program::F(int32,
                                                                                                                                                                                                                          int32&,
                                                                                                                                                                                                                          int32&)
    IL_001b:  call void [mscorlib]System.Console::WriteLine(int32)
    IL_0020:  nop
//000055:     Console.WriteLine(A);
    IL_0021:  ldarg.0
    IL_0022:  ldfld int32 FL_Program::A
    IL_0027:  call void [mscorlib]System.Console::WriteLine(int32)
    IL_002c:  nop
//000056:     Console.WriteLine(B);
    IL_002d:  ldarg.0
    IL_002e:  ldfld int32 FL_Program::B
    IL_0033:  call void [mscorlib]System.Console::WriteLine(int32)
    IL_0038:  nop
//000057:   }
    IL_0039:  ret
  } // end of method FL_Program::FL_Main

  .method public hidebysig static void  Main(string[] args) cil managed
  {
    .entrypoint
    // Code size       13 (0xd)
    .maxstack  8
//000058: 
//000059: 
//000060:   public static void Main(string[] args) {
    IL_0000:  nop
//000061:     (new FL_Program()).FL_Main();
    IL_0001:  newobj instance void FL_Program::.ctor()
    IL_0006:  call instance void FL_Program::FL_Main()
    IL_000b:  nop
//000062:   }
    IL_000c:  ret
  } // end of method FL_Program::Main

  .method public hidebysig specialname rtspecialname instance void 
          .ctor() cil managed
  {
    // Code size       22 (0x16)
    .maxstack  8
//000038:   public int A = 0;
    IL_0000:  ldarg.0
    IL_0001:  ldc.i4.0
    IL_0002:  stfld int32 FL_Program::A
//000039:   public int B = 0;
    IL_0007:  ldarg.0
    IL_0008:  ldc.i4.0
    IL_0009:  stfld int32 FL_Program::B
    IL_000e:  ldarg.0
    IL_000f:  call instance void [mscorlib]System.Object::.ctor()
    IL_0014:  nop
    IL_0015:  ret
  } // end of method FL_Program::.ctor

} // end of class FL_Program


// =============================================================

// *********** DISASSEMBLY COMPLETE ***********************
// WARNING: Created Win32 resource file 01.variables.ilasm.res