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




// Metadata version: v4.0.30319
.assembly extern mscorlib
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .ver 4:0:0:0
}
.assembly '09.blocks'
{

  // --- 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 02 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 '09.blocks.exe'
// MVID: {27582DA6-698B-4DFC-8FD1-428E976A6BF3}
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003       // WINDOWS_CUI
.corflags 0x00000001    //  ILONLY
// Image base: 0x030E0000


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

.class public auto ansi beforefieldinit Program
       extends [mscorlib]System.Object
{
  .class auto ansi nested private beforefieldinit Inner
         extends [mscorlib]System.Object
  {
    .class auto ansi nested private beforefieldinit f_B
           extends [mscorlib]System.Object
    {
      .class auto ansi nested private beforefieldinit p_C
             extends [mscorlib]System.Object
      {
        .field private class Program/Inner/f_B outer
        .field private int32 v_C
        .method public hidebysig specialname rtspecialname instance void 
                .ctor(class Program/Inner/f_B outer) cil managed
        {
          // Code size       14 (0xe)
          .maxstack  8
          IL_0000:  ldarg.0
          IL_0001:  call instance void [mscorlib]System.Object::.ctor()
          IL_0006:  ldarg.0
          IL_0007:  ldarg.1
          IL_0008:  stfld class Program/Inner/f_B Program/Inner/f_B/p_C::outer
          IL_000d:  ret
        } // end of method p_C::.ctor

        .method public hidebysig instance void  Execute() cil managed
        {
          // Code size       54 (0x36)
          .maxstack  8
          IL_0000:  ldarg.0
          IL_0001:  ldfld class Program/Inner/f_B Program/Inner/f_B/p_C::outer
          IL_0006:  ldfld class Program/Inner Program/Inner/f_B::outer
          IL_000b:  ldc.i4.1
          IL_000c:  stfld int32 Program/Inner::v_A
          IL_0011:  ldarg.0
          IL_0012:  ldc.i4.1
          IL_0013:  stfld int32 Program/Inner/f_B/p_C::v_C
          IL_0018:  ldarg.0
          IL_0019:  ldfld class Program/Inner/f_B Program/Inner/f_B/p_C::outer
          IL_001e:  ldarg.0
          IL_001f:  ldfld class Program/Inner/f_B Program/Inner/f_B/p_C::outer
          IL_0024:  ldfld int32 Program/Inner/f_B::p_B
          IL_0029:  ldarg.0
          IL_002a:  ldfld int32 Program/Inner/f_B/p_C::v_C
          IL_002f:  add
          IL_0030:  stfld int32 Program/Inner/f_B::v_B
          IL_0035:  ret
        } // end of method p_C::Execute

      } // end of class p_C

      .field private class Program/Inner outer
      .field private int32 p_B
      .field private int32 v_B
      .method public hidebysig specialname rtspecialname instance void 
              .ctor(class Program/Inner outer) cil managed
      {
        // Code size       14 (0xe)
        .maxstack  8
        IL_0000:  ldarg.0
        IL_0001:  call instance void [mscorlib]System.Object::.ctor()
        IL_0006:  ldarg.0
        IL_0007:  ldarg.1
        IL_0008:  stfld class Program/Inner Program/Inner/f_B::outer
        IL_000d:  ret
      } // end of method f_B::.ctor

      .method public hidebysig instance int32  Execute(int32 p_B) cil managed
      {
        // Code size       53 (0x35)
        .maxstack  3
        .locals init (class Program/Inner/f_B/p_C V_0)
        IL_0000:  ldarg.0
        IL_0001:  ldarg.1
        IL_0002:  stfld int32 Program/Inner/f_B::p_B
        IL_0007:  ldarg.0
        IL_0008:  newobj instance void Program/Inner/f_B/p_C::.ctor(class Program/Inner/f_B)
        IL_000d:  stloc.0
        IL_000e:  ldloc.0
        IL_000f:  callvirt instance void Program/Inner/f_B/p_C::Execute()
        IL_0014:  ldarg.0
        IL_0015:  ldfld class Program/Inner Program/Inner/f_B::outer
        IL_001a:  ldarg.0
        IL_001b:  ldfld class Program/Inner Program/Inner/f_B::outer
        IL_0020:  ldfld int32 Program/Inner::v_A
        IL_0025:  ldc.i4.3
        IL_0026:  add
        IL_0027:  stfld int32 Program/Inner::v_A
        IL_002c:  ldarg.0
        IL_002d:  ldfld int32 Program/Inner/f_B::v_B
        IL_0032:  ldc.i4.2
        IL_0033:  mul
        IL_0034:  ret
      } // end of method f_B::Execute

    } // end of class f_B

    .field private int32 v_A
    .field private int32 v_A2
    .method public hidebysig specialname rtspecialname instance void 
            .ctor() cil managed
    {
      // Code size       7 (0x7)
      .maxstack  8
      IL_0000:  ldarg.0
      IL_0001:  call instance void [mscorlib]System.Object::.ctor()
      IL_0006:  ret
    } // end of method Inner::.ctor

    .method public hidebysig instance void  Execute() cil managed
    {
      // Code size       65 (0x41)
      .maxstack  2
      .locals init (class Program/Inner/f_B V_0)
      IL_0000:  ldarg.0
      IL_0001:  newobj instance void Program/Inner/f_B::.ctor(class Program/Inner)
      IL_0006:  stloc.0
      IL_0007:  ldarg.0
      IL_0008:  call string [mscorlib]System.Console::ReadLine()
      IL_000d:  call int32 [mscorlib]System.Int32::Parse(string)
      IL_0012:  stfld int32 Program/Inner::v_A2
      IL_0017:  ldloc.0
      IL_0018:  ldc.i4.3
      IL_0019:  callvirt instance int32 Program/Inner/f_B::Execute(int32)
      IL_001e:  ldarg.0
      IL_001f:  ldfld int32 Program/Inner::v_A2
      IL_0024:  ble IL_0035

      IL_0029:  ldc.i4.s 100
      IL_002b:  call void [mscorlib]System.Console::WriteLine(int32)
      IL_0030:  br IL_0040

      IL_0035:  ldarg.0
      IL_0036:  ldfld int32 Program/Inner::v_A
      IL_003b:  call void [mscorlib]System.Console::WriteLine(int32)
      IL_0040:  ret
    } // end of method Inner::Execute

  } // end of class Inner

  .method public hidebysig specialname rtspecialname instance void 
          .ctor() cil managed
  {
    // Code size       7 (0x7)
    .maxstack  8
    IL_0000:  ldarg.0
    IL_0001:  call instance void [mscorlib]System.Object::.ctor()
    IL_0006:  ret
  } // end of method Program::.ctor

  .method public hidebysig static void  Main(string[] agrs) cil managed
  {
    .entrypoint
    // Code size       13 (0xd)
    .maxstack  1
    .locals init (class Program/Inner V_0)
    IL_0000:  newobj instance void Program/Inner::.ctor()
    IL_0005:  stloc.0
    IL_0006:  ldloc.0
    IL_0007:  callvirt instance void Program/Inner::Execute()
    IL_000c:  ret
  } // end of method Program::Main

} // end of class Program


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

// *********** DISASSEMBLY COMPLETE ***********************
// WARNING: Created Win32 resource file 09.blocks.ilasm.res