.assembly extern mscorlib { } .assembly test { } .module test .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 .corflags 0x00000003 .class public auto ansi beforefieldinit test { .method assembly hidebysig static void frob(int32 A_0, int32 A_1, int32 A_2) cil managed noinlining { .maxstack 3 .locals init (int32 V_0, int32 V_1, int32 V_2, class [mscorlib]System.Exception V_3) IL_0000: call void test::dummy() IL_0005: leave IL_000f IL_000a: leave IL_0014 IL_000f: br IL_001a IL_0014: ldnull IL_0015: br IL_001f IL_001a: br IL_0027 IL_001f: pop IL_0020: call void test::dummy() IL_0025: br.s IL_0000 IL_0027: ldc.i4.0 IL_0028: stloc.0 IL_0029: call void test::dummy() IL_002e: leave IL_0077 IL_0033: call void test::dummy() IL_0038: leave IL_0047 IL_003d: leave IL_004c IL_0042: leave IL_0052 IL_0047: br IL_0058 IL_004c: ldnull IL_004d: br IL_005d IL_0052: ldnull IL_0053: br IL_0065 IL_0058: br IL_0066 IL_005d: pop IL_005e: ldc.i4.1 IL_005f: stloc.0 IL_0060: br IL_0066 IL_0065: pop IL_0066: ldloc.0 IL_0067: brfalse IL_0076 IL_006c: IL_0071: call void test::dummy() IL_0076: endfinally IL_0077: ldarg.0 IL_0078: ldarg.1 IL_0079: bge IL_00c2 IL_007e: ldarg.0 IL_007f: ldarg.2 IL_0080: blt IL_00a8 IL_0085: ldarg.1 IL_0086: ldarg.0 IL_0087: sub IL_0088: ldarg.2 IL_0089: ldc.i4 0x400 IL_008e: add IL_008f: call int32 [mscorlib]System.Math::Min(int32, int32) IL_0094: stloc.1 IL_0095: ldarg.2 IL_0096: ldarg.0 IL_0097: ldloc.1 IL_0098: add IL_0099: bge IL_00ac IL_009e: call void test::dummy() IL_00a3: br IL_00ac IL_00a8: ldarg.2 IL_00a9: ldarg.0 IL_00aa: sub IL_00ab: pop IL_00ac: ldc.i4.0 IL_00ad: stloc.2 IL_00ae: call void test::dummy() IL_00b3: leave IL_00bd IL_00b8: leave IL_0115 IL_00bd: br IL_00c7 IL_00c2: leave IL_0110 IL_00c7: leave IL_011b IL_00cc: call void test::dummy() IL_00d1: leave IL_00e0 IL_00d6: leave IL_00e5 IL_00db: leave IL_00eb IL_00e0: br IL_00f1 IL_00e5: ldnull IL_00e6: br IL_00f6 IL_00eb: ldnull IL_00ec: br IL_00fe IL_00f1: br IL_00ff IL_00f6: pop IL_00f7: ldc.i4.1 IL_00f8: stloc.0 IL_00f9: br IL_00ff IL_00fe: pop IL_00ff: ldloc.0 IL_0100: brfalse IL_010f IL_0105: IL_010a: call void test::dummy() IL_010f: endfinally IL_0110: br IL_0209 IL_0115: ldnull IL_0116: br IL_0120 IL_011b: br IL_0174 IL_0120: stloc.3 IL_0121: ldloc.3 IL_0122: pop IL_0123: call void test::dummy() IL_0128: //pop IL_0129: ldc.i4.1 IL_012a: stloc.0 IL_012b: leave IL_0174 IL_0130: call void test::dummy() IL_0135: leave IL_0144 IL_013a: leave IL_0149 IL_013f: leave IL_014f IL_0144: br IL_0155 IL_0149: ldnull IL_014a: br IL_015a IL_014f: ldnull IL_0150: br IL_0162 IL_0155: br IL_0163 IL_015a: pop IL_015b: ldc.i4.1 IL_015c: stloc.0 IL_015d: br IL_0163 IL_0162: pop IL_0163: ldloc.0 IL_0164: brfalse IL_0173 IL_0169: IL_016e: call void test::dummy() IL_0173: endfinally IL_0174: ldloc.2 IL_0175: ldc.i4.0 IL_0176: bge IL_01a7 IL_017b: ldarg.1 IL_017c: ldc.i4 0x7fffffff IL_0181: beq IL_0196 IL_0186: ldstr "Detect premature EOF" IL_018b: IL_0190: newobj instance void [mscorlib]System.Exception::.ctor(string) IL_0195: throw IL_0196: ldarg.2 IL_0197: ldarg.0 IL_0198: beq IL_01b1 IL_019d: call void test::dummy() IL_01a2: br IL_01b1 IL_01a7: ldarg.0 IL_01a8: ldloc.2 IL_01a9: add IL_01aa: starg.s A_0 IL_01ac: br IL_01b6 IL_01b1: leave IL_01ff IL_01b6: leave IL_0204 IL_01bb: call void test::dummy() IL_01c0: leave IL_01cf IL_01c5: leave IL_01d4 IL_01ca: leave IL_01da IL_01cf: br IL_01e0 IL_01d4: ldnull IL_01d5: br IL_01e5 IL_01da: ldnull IL_01db: br IL_01ed IL_01e0: br IL_01ee IL_01e5: pop IL_01e6: ldc.i4.1 IL_01e7: stloc.0 IL_01e8: br IL_01ee IL_01ed: pop IL_01ee: ldloc.0 IL_01ef: brfalse IL_01fe IL_01f4: IL_01f9: call void test::dummy() IL_01fe: endfinally IL_01ff: br IL_0209 IL_0204: br IL_0077 IL_0209: call void test::dummy() IL_020e: leave IL_021d IL_0213: leave IL_0222 IL_0218: leave IL_0228 IL_021d: br IL_022e IL_0222: ldnull IL_0223: br IL_0233 IL_0228: ldnull IL_0229: br IL_023b IL_022e: br IL_023c IL_0233: pop IL_0234: ldc.i4.1 IL_0235: stloc.0 IL_0236: br IL_023c IL_023b: pop IL_023c: ldloc.0 IL_023d: brfalse IL_024c IL_0242: call void test::dummy() IL_0247: IL_024c: ret IL_024d: .try IL_0000 to IL_000a catch [mscorlib]System.Exception handler IL_000a to IL_000f .try IL_0029 to IL_0033 fault handler IL_0033 to IL_0077 .try IL_0033 to IL_003d catch [mscorlib]System.Exception handler IL_003d to IL_0042 .try IL_0033 to IL_0042 catch [mscorlib]System.Exception handler IL_0042 to IL_0047 .try IL_00ae to IL_00b8 catch [mscorlib]System.Exception handler IL_00b8 to IL_00bd .try IL_0077 to IL_00cc fault handler IL_00cc to IL_0110 .try IL_00cc to IL_00d6 catch [mscorlib]System.Exception handler IL_00d6 to IL_00db .try IL_00cc to IL_00db catch [mscorlib]System.Exception handler IL_00db to IL_00e0 .try IL_0121 to IL_0130 fault handler IL_0130 to IL_0174 .try IL_0130 to IL_013a catch [mscorlib]System.Exception handler IL_013a to IL_013f .try IL_0130 to IL_013f catch [mscorlib]System.Exception handler IL_013f to IL_0144 .try IL_0174 to IL_01bb fault handler IL_01bb to IL_01ff .try IL_01bb to IL_01c5 catch [mscorlib]System.Exception handler IL_01c5 to IL_01ca .try IL_01bb to IL_01ca catch [mscorlib]System.Exception handler IL_01ca to IL_01cf .try IL_0209 to IL_0213 catch [mscorlib]System.Exception handler IL_0213 to IL_0218 .try IL_0209 to IL_0218 catch [mscorlib]System.Exception handler IL_0218 to IL_021d } .method assembly hidebysig static void dummy() cil managed { ret } .method public hidebysig static void Main() cil managed noinlining { .entrypoint ldc.i4.0 ldc.i4.0 ldc.i4.0 call void test::frob(int32, int32, int32) ret } }