Created
August 7, 2017 18:19
-
-
Save Paxxi/3b3561ae3d1020898fb904db40b51ef2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.method assembly hidebysig static void | |
Parse(valuetype [System.Runtime]System.ReadOnlySpan`1<char> address, | |
uint16* numbers, | |
int32 start, | |
string& scopeId) cil managed | |
{ | |
// Code size 852 (0x354) | |
.maxstack 5 | |
.locals init ([0] int32 number, | |
[1] int32 index, | |
[2] int32 compressorIndex, | |
[3] bool numberIsValid, | |
[4] int32 PrefixLength, | |
[5] bool V_5, | |
[6] int32 i, | |
[7] char V_7, | |
[8] bool V_8, | |
[9] bool V_9, | |
[10] valuetype [System.Runtime]System.ReadOnlySpan`1<char> V_10, | |
[11] bool V_11, | |
[12] bool V_12, | |
[13] bool V_13, | |
[14] int32 j, | |
[15] bool V_15, | |
[16] bool V_16, | |
[17] bool V_17, | |
[18] bool V_18, | |
[19] bool V_19, | |
[20] bool V_20, | |
[21] bool V_21, | |
[22] bool V_22, | |
[23] int32 toIndex, | |
[24] int32 fromIndex, | |
[25] int32 V_25, | |
[26] bool V_26) | |
IL_0000: nop | |
IL_0001: ldc.i4.0 | |
IL_0002: stloc.0 | |
IL_0003: ldc.i4.0 | |
IL_0004: stloc.1 | |
IL_0005: ldc.i4.m1 | |
IL_0006: stloc.2 | |
IL_0007: ldc.i4.1 | |
IL_0008: stloc.3 | |
IL_0009: ldc.i4.0 | |
IL_000a: stloc.s PrefixLength | |
IL_000c: ldarga.s address | |
IL_000e: ldarg.2 | |
IL_000f: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_0014: ldc.i4.s 91 | |
IL_0016: ceq | |
IL_0018: stloc.s V_5 | |
IL_001a: ldloc.s V_5 | |
IL_001c: brfalse.s IL_0025 | |
IL_001e: nop | |
IL_001f: ldarg.2 | |
IL_0020: ldc.i4.1 | |
IL_0021: add | |
IL_0022: starg.s start | |
IL_0024: nop | |
IL_0025: ldarg.2 | |
IL_0026: stloc.s i | |
IL_0028: br IL_02c5 | |
IL_002d: nop | |
IL_002e: ldarga.s address | |
IL_0030: ldloc.s i | |
IL_0032: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_0037: stloc.s V_7 | |
IL_0039: ldloc.s V_7 | |
IL_003b: ldc.i4.s 37 | |
IL_003d: beq.s IL_005a | |
IL_003f: br.s IL_0041 | |
IL_0041: ldloc.s V_7 | |
IL_0043: ldc.i4.s 47 | |
IL_0045: beq IL_0255 | |
IL_004a: br.s IL_004c | |
IL_004c: ldloc.s V_7 | |
IL_004e: ldc.i4.s 58 | |
IL_0050: beq IL_0107 | |
IL_0055: br IL_02a9 | |
IL_005a: ldloc.3 | |
IL_005b: stloc.s V_8 | |
IL_005d: ldloc.s V_8 | |
IL_005f: brfalse.s IL_0072 | |
IL_0061: nop | |
IL_0062: ldarg.1 | |
IL_0063: ldloc.1 | |
IL_0064: dup | |
IL_0065: ldc.i4.1 | |
IL_0066: add | |
IL_0067: stloc.1 | |
IL_0068: conv.i | |
IL_0069: ldc.i4.2 | |
IL_006a: mul | |
IL_006b: add | |
IL_006c: ldloc.0 | |
IL_006d: conv.u2 | |
IL_006e: stind.i2 | |
IL_006f: ldc.i4.0 | |
IL_0070: stloc.3 | |
IL_0071: nop | |
IL_0072: ldloc.s i | |
IL_0074: starg.s start | |
IL_0076: ldloc.s i | |
IL_0078: ldc.i4.1 | |
IL_0079: add | |
IL_007a: stloc.s i | |
IL_007c: br.s IL_0086 | |
IL_007e: nop | |
IL_007f: nop | |
IL_0080: ldloc.s i | |
IL_0082: ldc.i4.1 | |
IL_0083: add | |
IL_0084: stloc.s i | |
IL_0086: ldloc.s i | |
IL_0088: ldarga.s address | |
IL_008a: call instance int32 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Length() | |
IL_008f: bge.s IL_00b0 | |
IL_0091: ldarga.s address | |
IL_0093: ldloc.s i | |
IL_0095: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_009a: ldc.i4.s 93 | |
IL_009c: beq.s IL_00b0 | |
IL_009e: ldarga.s address | |
IL_00a0: ldloc.s i | |
IL_00a2: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_00a7: ldc.i4.s 47 | |
IL_00a9: ceq | |
IL_00ab: ldc.i4.0 | |
IL_00ac: ceq | |
IL_00ae: br.s IL_00b1 | |
IL_00b0: ldc.i4.0 | |
IL_00b1: stloc.s V_9 | |
IL_00b3: ldloc.s V_9 | |
IL_00b5: brtrue.s IL_007e | |
IL_00b7: ldarg.3 | |
IL_00b8: ldarga.s address | |
IL_00ba: ldarg.2 | |
IL_00bb: ldloc.s i | |
IL_00bd: ldarg.2 | |
IL_00be: sub | |
IL_00bf: call instance valuetype [System.Runtime]System.ReadOnlySpan`1<!0> valuetype [System.Runtime]System.ReadOnlySpan`1<char>::Slice(int32, | |
int32) | |
IL_00c4: stloc.s V_10 | |
IL_00c6: ldloca.s V_10 | |
IL_00c8: constrained. valuetype [System.Runtime]System.ReadOnlySpan`1<char> | |
IL_00ce: callvirt instance string [System.Runtime]System.Object::ToString() | |
IL_00d3: stind.ref | |
IL_00d4: br.s IL_00de | |
IL_00d6: nop | |
IL_00d7: nop | |
IL_00d8: ldloc.s i | |
IL_00da: ldc.i4.1 | |
IL_00db: add | |
IL_00dc: stloc.s i | |
IL_00de: ldloc.s i | |
IL_00e0: ldarga.s address | |
IL_00e2: call instance int32 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Length() | |
IL_00e7: bge.s IL_00fb | |
IL_00e9: ldarga.s address | |
IL_00eb: ldloc.s i | |
IL_00ed: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_00f2: ldc.i4.s 93 | |
IL_00f4: ceq | |
IL_00f6: ldc.i4.0 | |
IL_00f7: ceq | |
IL_00f9: br.s IL_00fc | |
IL_00fb: ldc.i4.0 | |
IL_00fc: stloc.s V_11 | |
IL_00fe: ldloc.s V_11 | |
IL_0100: brtrue.s IL_00d6 | |
IL_0102: br IL_02c4 | |
IL_0107: ldarg.1 | |
IL_0108: ldloc.1 | |
IL_0109: dup | |
IL_010a: ldc.i4.1 | |
IL_010b: add | |
IL_010c: stloc.1 | |
IL_010d: conv.i | |
IL_010e: ldc.i4.2 | |
IL_010f: mul | |
IL_0110: add | |
IL_0111: ldloc.0 | |
IL_0112: conv.u2 | |
IL_0113: stind.i2 | |
IL_0114: ldc.i4.0 | |
IL_0115: stloc.0 | |
IL_0116: ldloc.s i | |
IL_0118: ldc.i4.1 | |
IL_0119: add | |
IL_011a: stloc.s i | |
IL_011c: ldarga.s address | |
IL_011e: ldloc.s i | |
IL_0120: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_0125: ldc.i4.s 58 | |
IL_0127: ceq | |
IL_0129: stloc.s V_12 | |
IL_012b: ldloc.s V_12 | |
IL_012d: brfalse.s IL_013b | |
IL_012f: nop | |
IL_0130: ldloc.1 | |
IL_0131: stloc.2 | |
IL_0132: ldloc.s i | |
IL_0134: ldc.i4.1 | |
IL_0135: add | |
IL_0136: stloc.s i | |
IL_0138: nop | |
IL_0139: br.s IL_0152 | |
IL_013b: ldloc.2 | |
IL_013c: ldc.i4.0 | |
IL_013d: bge.s IL_0145 | |
IL_013f: ldloc.1 | |
IL_0140: ldc.i4.6 | |
IL_0141: clt | |
IL_0143: br.s IL_0146 | |
IL_0145: ldc.i4.0 | |
IL_0146: stloc.s V_13 | |
IL_0148: ldloc.s V_13 | |
IL_014a: brfalse.s IL_0152 | |
IL_014c: nop | |
IL_014d: br IL_02c4 | |
IL_0152: ldloc.s i | |
IL_0154: stloc.s j | |
IL_0156: br IL_0200 | |
IL_015b: nop | |
IL_015c: ldarga.s address | |
IL_015e: ldloc.s j | |
IL_0160: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_0165: ldc.i4.s 46 | |
IL_0167: ceq | |
IL_0169: stloc.s V_15 | |
IL_016b: ldloc.s V_15 | |
IL_016d: brfalse IL_01f9 | |
IL_0172: nop | |
IL_0173: br.s IL_017d | |
IL_0175: nop | |
IL_0176: ldloc.s j | |
IL_0178: ldc.i4.1 | |
IL_0179: add | |
IL_017a: stloc.s j | |
IL_017c: nop | |
IL_017d: ldloc.s j | |
IL_017f: ldarga.s address | |
IL_0181: call instance int32 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Length() | |
IL_0186: bge.s IL_01b4 | |
IL_0188: ldarga.s address | |
IL_018a: ldloc.s j | |
IL_018c: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_0191: ldc.i4.s 93 | |
IL_0193: beq.s IL_01b4 | |
IL_0195: ldarga.s address | |
IL_0197: ldloc.s j | |
IL_0199: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_019e: ldc.i4.s 47 | |
IL_01a0: beq.s IL_01b4 | |
IL_01a2: ldarga.s address | |
IL_01a4: ldloc.s j | |
IL_01a6: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_01ab: ldc.i4.s 37 | |
IL_01ad: ceq | |
IL_01af: ldc.i4.0 | |
IL_01b0: ceq | |
IL_01b2: br.s IL_01b5 | |
IL_01b4: ldc.i4.0 | |
IL_01b5: stloc.s V_16 | |
IL_01b7: ldloc.s V_16 | |
IL_01b9: brtrue.s IL_0175 | |
IL_01bb: ldarga.s address | |
IL_01bd: constrained. valuetype [System.Runtime]System.ReadOnlySpan`1<char> | |
IL_01c3: callvirt instance string [System.Runtime]System.Object::ToString() | |
IL_01c8: ldloc.s i | |
IL_01ca: ldloc.s j | |
IL_01cc: call int32 System.IPv4AddressHelper::ParseHostNumber(string, | |
int32, | |
int32) | |
IL_01d1: stloc.0 | |
IL_01d2: ldarg.1 | |
IL_01d3: ldloc.1 | |
IL_01d4: dup | |
IL_01d5: ldc.i4.1 | |
IL_01d6: add | |
IL_01d7: stloc.1 | |
IL_01d8: conv.i | |
IL_01d9: ldc.i4.2 | |
IL_01da: mul | |
IL_01db: add | |
IL_01dc: ldloc.0 | |
IL_01dd: ldc.i4.s 16 | |
IL_01df: shr | |
IL_01e0: conv.u2 | |
IL_01e1: stind.i2 | |
IL_01e2: ldarg.1 | |
IL_01e3: ldloc.1 | |
IL_01e4: dup | |
IL_01e5: ldc.i4.1 | |
IL_01e6: add | |
IL_01e7: stloc.1 | |
IL_01e8: conv.i | |
IL_01e9: ldc.i4.2 | |
IL_01ea: mul | |
IL_01eb: add | |
IL_01ec: ldloc.0 | |
IL_01ed: conv.u2 | |
IL_01ee: stind.i2 | |
IL_01ef: ldloc.s j | |
IL_01f1: stloc.s i | |
IL_01f3: ldc.i4.0 | |
IL_01f4: stloc.0 | |
IL_01f5: ldc.i4.0 | |
IL_01f6: stloc.3 | |
IL_01f7: br.s IL_0253 | |
IL_01f9: nop | |
IL_01fa: ldloc.s j | |
IL_01fc: ldc.i4.1 | |
IL_01fd: add | |
IL_01fe: stloc.s j | |
IL_0200: ldloc.s j | |
IL_0202: ldarga.s address | |
IL_0204: call instance int32 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Length() | |
IL_0209: bge.s IL_0249 | |
IL_020b: ldarga.s address | |
IL_020d: ldloc.s j | |
IL_020f: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_0214: ldc.i4.s 93 | |
IL_0216: beq.s IL_0249 | |
IL_0218: ldarga.s address | |
IL_021a: ldloc.s j | |
IL_021c: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_0221: ldc.i4.s 58 | |
IL_0223: beq.s IL_0249 | |
IL_0225: ldarga.s address | |
IL_0227: ldloc.s j | |
IL_0229: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_022e: ldc.i4.s 37 | |
IL_0230: beq.s IL_0249 | |
IL_0232: ldarga.s address | |
IL_0234: ldloc.s j | |
IL_0236: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_023b: ldc.i4.s 47 | |
IL_023d: beq.s IL_0249 | |
IL_023f: ldloc.s j | |
IL_0241: ldloc.s i | |
IL_0243: ldc.i4.4 | |
IL_0244: add | |
IL_0245: clt | |
IL_0247: br.s IL_024a | |
IL_0249: ldc.i4.0 | |
IL_024a: stloc.s V_17 | |
IL_024c: ldloc.s V_17 | |
IL_024e: brtrue IL_015b | |
IL_0253: br.s IL_02c4 | |
IL_0255: ldloc.3 | |
IL_0256: stloc.s V_18 | |
IL_0258: ldloc.s V_18 | |
IL_025a: brfalse.s IL_026d | |
IL_025c: nop | |
IL_025d: ldarg.1 | |
IL_025e: ldloc.1 | |
IL_025f: dup | |
IL_0260: ldc.i4.1 | |
IL_0261: add | |
IL_0262: stloc.1 | |
IL_0263: conv.i | |
IL_0264: ldc.i4.2 | |
IL_0265: mul | |
IL_0266: add | |
IL_0267: ldloc.0 | |
IL_0268: conv.u2 | |
IL_0269: stind.i2 | |
IL_026a: ldc.i4.0 | |
IL_026b: stloc.3 | |
IL_026c: nop | |
IL_026d: ldloc.s i | |
IL_026f: ldc.i4.1 | |
IL_0270: add | |
IL_0271: stloc.s i | |
IL_0273: br.s IL_0291 | |
IL_0275: nop | |
IL_0276: ldloc.s PrefixLength | |
IL_0278: ldc.i4.s 10 | |
IL_027a: mul | |
IL_027b: ldarga.s address | |
IL_027d: ldloc.s i | |
IL_027f: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_0284: ldc.i4.s 48 | |
IL_0286: sub | |
IL_0287: add | |
IL_0288: stloc.s PrefixLength | |
IL_028a: nop | |
IL_028b: ldloc.s i | |
IL_028d: ldc.i4.1 | |
IL_028e: add | |
IL_028f: stloc.s i | |
IL_0291: ldarga.s address | |
IL_0293: ldloc.s i | |
IL_0295: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_029a: ldc.i4.s 93 | |
IL_029c: ceq | |
IL_029e: ldc.i4.0 | |
IL_029f: ceq | |
IL_02a1: stloc.s V_19 | |
IL_02a3: ldloc.s V_19 | |
IL_02a5: brtrue.s IL_0275 | |
IL_02a7: br.s IL_02c4 | |
IL_02a9: ldloc.0 | |
IL_02aa: ldc.i4.s 16 | |
IL_02ac: mul | |
IL_02ad: ldarga.s address | |
IL_02af: ldloc.s i | |
IL_02b1: dup | |
IL_02b2: ldc.i4.1 | |
IL_02b3: add | |
IL_02b4: stloc.s i | |
IL_02b6: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_02bb: call int32 [System.Runtime]System.Uri::FromHex(char) | |
IL_02c0: add | |
IL_02c1: stloc.0 | |
IL_02c2: br.s IL_02c4 | |
IL_02c4: nop | |
IL_02c5: ldloc.s i | |
IL_02c7: ldarga.s address | |
IL_02c9: call instance int32 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Length() | |
IL_02ce: bge.s IL_02e2 | |
IL_02d0: ldarga.s address | |
IL_02d2: ldloc.s i | |
IL_02d4: call instance !0 valuetype [System.Runtime]System.ReadOnlySpan`1<char>::get_Item(int32) | |
IL_02d9: ldc.i4.s 93 | |
IL_02db: ceq | |
IL_02dd: ldc.i4.0 | |
IL_02de: ceq | |
IL_02e0: br.s IL_02e3 | |
IL_02e2: ldc.i4.0 | |
IL_02e3: stloc.s V_20 | |
IL_02e5: ldloc.s V_20 | |
IL_02e7: brtrue IL_002d | |
IL_02ec: ldloc.3 | |
IL_02ed: stloc.s V_21 | |
IL_02ef: ldloc.s V_21 | |
IL_02f1: brfalse.s IL_0302 | |
IL_02f3: nop | |
IL_02f4: ldarg.1 | |
IL_02f5: ldloc.1 | |
IL_02f6: dup | |
IL_02f7: ldc.i4.1 | |
IL_02f8: add | |
IL_02f9: stloc.1 | |
IL_02fa: conv.i | |
IL_02fb: ldc.i4.2 | |
IL_02fc: mul | |
IL_02fd: add | |
IL_02fe: ldloc.0 | |
IL_02ff: conv.u2 | |
IL_0300: stind.i2 | |
IL_0301: nop | |
IL_0302: ldloc.2 | |
IL_0303: ldc.i4.0 | |
IL_0304: cgt | |
IL_0306: stloc.s V_22 | |
IL_0308: ldloc.s V_22 | |
IL_030a: brfalse.s IL_0353 | |
IL_030c: nop | |
IL_030d: ldc.i4.7 | |
IL_030e: stloc.s toIndex | |
IL_0310: ldloc.1 | |
IL_0311: ldc.i4.1 | |
IL_0312: sub | |
IL_0313: stloc.s fromIndex | |
IL_0315: ldloc.1 | |
IL_0316: ldloc.2 | |
IL_0317: sub | |
IL_0318: stloc.s V_25 | |
IL_031a: br.s IL_0347 | |
IL_031c: nop | |
IL_031d: ldarg.1 | |
IL_031e: ldloc.s toIndex | |
IL_0320: dup | |
IL_0321: ldc.i4.1 | |
IL_0322: sub | |
IL_0323: stloc.s toIndex | |
IL_0325: conv.i | |
IL_0326: ldc.i4.2 | |
IL_0327: mul | |
IL_0328: add | |
IL_0329: ldarg.1 | |
IL_032a: ldloc.s fromIndex | |
IL_032c: conv.i | |
IL_032d: ldc.i4.2 | |
IL_032e: mul | |
IL_032f: add | |
IL_0330: ldind.u2 | |
IL_0331: stind.i2 | |
IL_0332: ldarg.1 | |
IL_0333: ldloc.s fromIndex | |
IL_0335: dup | |
IL_0336: ldc.i4.1 | |
IL_0337: sub | |
IL_0338: stloc.s fromIndex | |
IL_033a: conv.i | |
IL_033b: ldc.i4.2 | |
IL_033c: mul | |
IL_033d: add | |
IL_033e: ldc.i4.0 | |
IL_033f: stind.i2 | |
IL_0340: nop | |
IL_0341: ldloc.s V_25 | |
IL_0343: ldc.i4.1 | |
IL_0344: sub | |
IL_0345: stloc.s V_25 | |
IL_0347: ldloc.s V_25 | |
IL_0349: ldc.i4.0 | |
IL_034a: cgt | |
IL_034c: stloc.s V_26 | |
IL_034e: ldloc.s V_26 | |
IL_0350: brtrue.s IL_031c | |
IL_0352: nop | |
IL_0353: ret | |
} // end of method IPv6AddressHelper::Parse |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.method assembly hidebysig static void | |
Parse(string address, | |
uint16* numbers, | |
int32 start, | |
string& scopeId) cil managed | |
{ | |
// Code size 798 (0x31e) | |
.maxstack 5 | |
.locals init ([0] int32 number, | |
[1] int32 index, | |
[2] int32 compressorIndex, | |
[3] bool numberIsValid, | |
[4] int32 PrefixLength, | |
[5] bool V_5, | |
[6] int32 i, | |
[7] char V_7, | |
[8] bool V_8, | |
[9] bool V_9, | |
[10] bool V_10, | |
[11] bool V_11, | |
[12] bool V_12, | |
[13] int32 j, | |
[14] bool V_14, | |
[15] bool V_15, | |
[16] bool V_16, | |
[17] bool V_17, | |
[18] bool V_18, | |
[19] bool V_19, | |
[20] bool V_20, | |
[21] bool V_21, | |
[22] int32 toIndex, | |
[23] int32 fromIndex, | |
[24] int32 V_24, | |
[25] bool V_25) | |
IL_0000: nop | |
IL_0001: ldc.i4.0 | |
IL_0002: stloc.0 | |
IL_0003: ldc.i4.0 | |
IL_0004: stloc.1 | |
IL_0005: ldc.i4.m1 | |
IL_0006: stloc.2 | |
IL_0007: ldc.i4.1 | |
IL_0008: stloc.3 | |
IL_0009: ldc.i4.0 | |
IL_000a: stloc.s PrefixLength | |
IL_000c: ldarg.0 | |
IL_000d: ldarg.2 | |
IL_000e: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_0013: ldc.i4.s 91 | |
IL_0015: ceq | |
IL_0017: stloc.s V_5 | |
IL_0019: ldloc.s V_5 | |
IL_001b: brfalse.s IL_0024 | |
IL_001d: nop | |
IL_001e: ldarg.2 | |
IL_001f: ldc.i4.1 | |
IL_0020: add | |
IL_0021: starg.s start | |
IL_0023: nop | |
IL_0024: ldarg.2 | |
IL_0025: stloc.s i | |
IL_0027: br IL_0291 | |
IL_002c: nop | |
IL_002d: ldarg.0 | |
IL_002e: ldloc.s i | |
IL_0030: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_0035: stloc.s V_7 | |
IL_0037: ldloc.s V_7 | |
IL_0039: ldc.i4.s 37 | |
IL_003b: beq.s IL_0058 | |
IL_003d: br.s IL_003f | |
IL_003f: ldloc.s V_7 | |
IL_0041: ldc.i4.s 47 | |
IL_0043: beq IL_0224 | |
IL_0048: br.s IL_004a | |
IL_004a: ldloc.s V_7 | |
IL_004c: ldc.i4.s 58 | |
IL_004e: beq IL_00f0 | |
IL_0053: br IL_0276 | |
IL_0058: ldloc.3 | |
IL_0059: stloc.s V_8 | |
IL_005b: ldloc.s V_8 | |
IL_005d: brfalse.s IL_0070 | |
IL_005f: nop | |
IL_0060: ldarg.1 | |
IL_0061: ldloc.1 | |
IL_0062: dup | |
IL_0063: ldc.i4.1 | |
IL_0064: add | |
IL_0065: stloc.1 | |
IL_0066: conv.i | |
IL_0067: ldc.i4.2 | |
IL_0068: mul | |
IL_0069: add | |
IL_006a: ldloc.0 | |
IL_006b: conv.u2 | |
IL_006c: stind.i2 | |
IL_006d: ldc.i4.0 | |
IL_006e: stloc.3 | |
IL_006f: nop | |
IL_0070: ldloc.s i | |
IL_0072: starg.s start | |
IL_0074: ldloc.s i | |
IL_0076: ldc.i4.1 | |
IL_0077: add | |
IL_0078: stloc.s i | |
IL_007a: br.s IL_0084 | |
IL_007c: nop | |
IL_007d: nop | |
IL_007e: ldloc.s i | |
IL_0080: ldc.i4.1 | |
IL_0081: add | |
IL_0082: stloc.s i | |
IL_0084: ldloc.s i | |
IL_0086: ldarg.0 | |
IL_0087: callvirt instance int32 [System.Runtime]System.String::get_Length() | |
IL_008c: bge.s IL_00ab | |
IL_008e: ldarg.0 | |
IL_008f: ldloc.s i | |
IL_0091: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_0096: ldc.i4.s 93 | |
IL_0098: beq.s IL_00ab | |
IL_009a: ldarg.0 | |
IL_009b: ldloc.s i | |
IL_009d: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_00a2: ldc.i4.s 47 | |
IL_00a4: ceq | |
IL_00a6: ldc.i4.0 | |
IL_00a7: ceq | |
IL_00a9: br.s IL_00ac | |
IL_00ab: ldc.i4.0 | |
IL_00ac: stloc.s V_9 | |
IL_00ae: ldloc.s V_9 | |
IL_00b0: brtrue.s IL_007c | |
IL_00b2: ldarg.3 | |
IL_00b3: ldarg.0 | |
IL_00b4: ldarg.2 | |
IL_00b5: ldloc.s i | |
IL_00b7: ldarg.2 | |
IL_00b8: sub | |
IL_00b9: callvirt instance string [System.Runtime]System.String::Substring(int32, | |
int32) | |
IL_00be: stind.ref | |
IL_00bf: br.s IL_00c9 | |
IL_00c1: nop | |
IL_00c2: nop | |
IL_00c3: ldloc.s i | |
IL_00c5: ldc.i4.1 | |
IL_00c6: add | |
IL_00c7: stloc.s i | |
IL_00c9: ldloc.s i | |
IL_00cb: ldarg.0 | |
IL_00cc: callvirt instance int32 [System.Runtime]System.String::get_Length() | |
IL_00d1: bge.s IL_00e4 | |
IL_00d3: ldarg.0 | |
IL_00d4: ldloc.s i | |
IL_00d6: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_00db: ldc.i4.s 93 | |
IL_00dd: ceq | |
IL_00df: ldc.i4.0 | |
IL_00e0: ceq | |
IL_00e2: br.s IL_00e5 | |
IL_00e4: ldc.i4.0 | |
IL_00e5: stloc.s V_10 | |
IL_00e7: ldloc.s V_10 | |
IL_00e9: brtrue.s IL_00c1 | |
IL_00eb: br IL_0290 | |
IL_00f0: ldarg.1 | |
IL_00f1: ldloc.1 | |
IL_00f2: dup | |
IL_00f3: ldc.i4.1 | |
IL_00f4: add | |
IL_00f5: stloc.1 | |
IL_00f6: conv.i | |
IL_00f7: ldc.i4.2 | |
IL_00f8: mul | |
IL_00f9: add | |
IL_00fa: ldloc.0 | |
IL_00fb: conv.u2 | |
IL_00fc: stind.i2 | |
IL_00fd: ldc.i4.0 | |
IL_00fe: stloc.0 | |
IL_00ff: ldloc.s i | |
IL_0101: ldc.i4.1 | |
IL_0102: add | |
IL_0103: stloc.s i | |
IL_0105: ldarg.0 | |
IL_0106: ldloc.s i | |
IL_0108: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_010d: ldc.i4.s 58 | |
IL_010f: ceq | |
IL_0111: stloc.s V_11 | |
IL_0113: ldloc.s V_11 | |
IL_0115: brfalse.s IL_0123 | |
IL_0117: nop | |
IL_0118: ldloc.1 | |
IL_0119: stloc.2 | |
IL_011a: ldloc.s i | |
IL_011c: ldc.i4.1 | |
IL_011d: add | |
IL_011e: stloc.s i | |
IL_0120: nop | |
IL_0121: br.s IL_013a | |
IL_0123: ldloc.2 | |
IL_0124: ldc.i4.0 | |
IL_0125: bge.s IL_012d | |
IL_0127: ldloc.1 | |
IL_0128: ldc.i4.6 | |
IL_0129: clt | |
IL_012b: br.s IL_012e | |
IL_012d: ldc.i4.0 | |
IL_012e: stloc.s V_12 | |
IL_0130: ldloc.s V_12 | |
IL_0132: brfalse.s IL_013a | |
IL_0134: nop | |
IL_0135: br IL_0290 | |
IL_013a: ldloc.s i | |
IL_013c: stloc.s j | |
IL_013e: br IL_01d4 | |
IL_0143: nop | |
IL_0144: ldarg.0 | |
IL_0145: ldloc.s j | |
IL_0147: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_014c: ldc.i4.s 46 | |
IL_014e: ceq | |
IL_0150: stloc.s V_14 | |
IL_0152: ldloc.s V_14 | |
IL_0154: brfalse.s IL_01cd | |
IL_0156: nop | |
IL_0157: br.s IL_0161 | |
IL_0159: nop | |
IL_015a: ldloc.s j | |
IL_015c: ldc.i4.1 | |
IL_015d: add | |
IL_015e: stloc.s j | |
IL_0160: nop | |
IL_0161: ldloc.s j | |
IL_0163: ldarg.0 | |
IL_0164: callvirt instance int32 [System.Runtime]System.String::get_Length() | |
IL_0169: bge.s IL_0194 | |
IL_016b: ldarg.0 | |
IL_016c: ldloc.s j | |
IL_016e: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_0173: ldc.i4.s 93 | |
IL_0175: beq.s IL_0194 | |
IL_0177: ldarg.0 | |
IL_0178: ldloc.s j | |
IL_017a: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_017f: ldc.i4.s 47 | |
IL_0181: beq.s IL_0194 | |
IL_0183: ldarg.0 | |
IL_0184: ldloc.s j | |
IL_0186: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_018b: ldc.i4.s 37 | |
IL_018d: ceq | |
IL_018f: ldc.i4.0 | |
IL_0190: ceq | |
IL_0192: br.s IL_0195 | |
IL_0194: ldc.i4.0 | |
IL_0195: stloc.s V_15 | |
IL_0197: ldloc.s V_15 | |
IL_0199: brtrue.s IL_0159 | |
IL_019b: ldarg.0 | |
IL_019c: ldloc.s i | |
IL_019e: ldloc.s j | |
IL_01a0: call int32 System.IPv4AddressHelper::ParseHostNumber(string, | |
int32, | |
int32) | |
IL_01a5: stloc.0 | |
IL_01a6: ldarg.1 | |
IL_01a7: ldloc.1 | |
IL_01a8: dup | |
IL_01a9: ldc.i4.1 | |
IL_01aa: add | |
IL_01ab: stloc.1 | |
IL_01ac: conv.i | |
IL_01ad: ldc.i4.2 | |
IL_01ae: mul | |
IL_01af: add | |
IL_01b0: ldloc.0 | |
IL_01b1: ldc.i4.s 16 | |
IL_01b3: shr | |
IL_01b4: conv.u2 | |
IL_01b5: stind.i2 | |
IL_01b6: ldarg.1 | |
IL_01b7: ldloc.1 | |
IL_01b8: dup | |
IL_01b9: ldc.i4.1 | |
IL_01ba: add | |
IL_01bb: stloc.1 | |
IL_01bc: conv.i | |
IL_01bd: ldc.i4.2 | |
IL_01be: mul | |
IL_01bf: add | |
IL_01c0: ldloc.0 | |
IL_01c1: conv.u2 | |
IL_01c2: stind.i2 | |
IL_01c3: ldloc.s j | |
IL_01c5: stloc.s i | |
IL_01c7: ldc.i4.0 | |
IL_01c8: stloc.0 | |
IL_01c9: ldc.i4.0 | |
IL_01ca: stloc.3 | |
IL_01cb: br.s IL_0222 | |
IL_01cd: nop | |
IL_01ce: ldloc.s j | |
IL_01d0: ldc.i4.1 | |
IL_01d1: add | |
IL_01d2: stloc.s j | |
IL_01d4: ldloc.s j | |
IL_01d6: ldarg.0 | |
IL_01d7: callvirt instance int32 [System.Runtime]System.String::get_Length() | |
IL_01dc: bge.s IL_0218 | |
IL_01de: ldarg.0 | |
IL_01df: ldloc.s j | |
IL_01e1: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_01e6: ldc.i4.s 93 | |
IL_01e8: beq.s IL_0218 | |
IL_01ea: ldarg.0 | |
IL_01eb: ldloc.s j | |
IL_01ed: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_01f2: ldc.i4.s 58 | |
IL_01f4: beq.s IL_0218 | |
IL_01f6: ldarg.0 | |
IL_01f7: ldloc.s j | |
IL_01f9: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_01fe: ldc.i4.s 37 | |
IL_0200: beq.s IL_0218 | |
IL_0202: ldarg.0 | |
IL_0203: ldloc.s j | |
IL_0205: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_020a: ldc.i4.s 47 | |
IL_020c: beq.s IL_0218 | |
IL_020e: ldloc.s j | |
IL_0210: ldloc.s i | |
IL_0212: ldc.i4.4 | |
IL_0213: add | |
IL_0214: clt | |
IL_0216: br.s IL_0219 | |
IL_0218: ldc.i4.0 | |
IL_0219: stloc.s V_16 | |
IL_021b: ldloc.s V_16 | |
IL_021d: brtrue IL_0143 | |
IL_0222: br.s IL_0290 | |
IL_0224: ldloc.3 | |
IL_0225: stloc.s V_17 | |
IL_0227: ldloc.s V_17 | |
IL_0229: brfalse.s IL_023c | |
IL_022b: nop | |
IL_022c: ldarg.1 | |
IL_022d: ldloc.1 | |
IL_022e: dup | |
IL_022f: ldc.i4.1 | |
IL_0230: add | |
IL_0231: stloc.1 | |
IL_0232: conv.i | |
IL_0233: ldc.i4.2 | |
IL_0234: mul | |
IL_0235: add | |
IL_0236: ldloc.0 | |
IL_0237: conv.u2 | |
IL_0238: stind.i2 | |
IL_0239: ldc.i4.0 | |
IL_023a: stloc.3 | |
IL_023b: nop | |
IL_023c: ldloc.s i | |
IL_023e: ldc.i4.1 | |
IL_023f: add | |
IL_0240: stloc.s i | |
IL_0242: br.s IL_025f | |
IL_0244: nop | |
IL_0245: ldloc.s PrefixLength | |
IL_0247: ldc.i4.s 10 | |
IL_0249: mul | |
IL_024a: ldarg.0 | |
IL_024b: ldloc.s i | |
IL_024d: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_0252: ldc.i4.s 48 | |
IL_0254: sub | |
IL_0255: add | |
IL_0256: stloc.s PrefixLength | |
IL_0258: nop | |
IL_0259: ldloc.s i | |
IL_025b: ldc.i4.1 | |
IL_025c: add | |
IL_025d: stloc.s i | |
IL_025f: ldarg.0 | |
IL_0260: ldloc.s i | |
IL_0262: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_0267: ldc.i4.s 93 | |
IL_0269: ceq | |
IL_026b: ldc.i4.0 | |
IL_026c: ceq | |
IL_026e: stloc.s V_18 | |
IL_0270: ldloc.s V_18 | |
IL_0272: brtrue.s IL_0244 | |
IL_0274: br.s IL_0290 | |
IL_0276: ldloc.0 | |
IL_0277: ldc.i4.s 16 | |
IL_0279: mul | |
IL_027a: ldarg.0 | |
IL_027b: ldloc.s i | |
IL_027d: dup | |
IL_027e: ldc.i4.1 | |
IL_027f: add | |
IL_0280: stloc.s i | |
IL_0282: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_0287: call int32 [System.Runtime]System.Uri::FromHex(char) | |
IL_028c: add | |
IL_028d: stloc.0 | |
IL_028e: br.s IL_0290 | |
IL_0290: nop | |
IL_0291: ldloc.s i | |
IL_0293: ldarg.0 | |
IL_0294: callvirt instance int32 [System.Runtime]System.String::get_Length() | |
IL_0299: bge.s IL_02ac | |
IL_029b: ldarg.0 | |
IL_029c: ldloc.s i | |
IL_029e: callvirt instance char [System.Runtime]System.String::get_Chars(int32) | |
IL_02a3: ldc.i4.s 93 | |
IL_02a5: ceq | |
IL_02a7: ldc.i4.0 | |
IL_02a8: ceq | |
IL_02aa: br.s IL_02ad | |
IL_02ac: ldc.i4.0 | |
IL_02ad: stloc.s V_19 | |
IL_02af: ldloc.s V_19 | |
IL_02b1: brtrue IL_002c | |
IL_02b6: ldloc.3 | |
IL_02b7: stloc.s V_20 | |
IL_02b9: ldloc.s V_20 | |
IL_02bb: brfalse.s IL_02cc | |
IL_02bd: nop | |
IL_02be: ldarg.1 | |
IL_02bf: ldloc.1 | |
IL_02c0: dup | |
IL_02c1: ldc.i4.1 | |
IL_02c2: add | |
IL_02c3: stloc.1 | |
IL_02c4: conv.i | |
IL_02c5: ldc.i4.2 | |
IL_02c6: mul | |
IL_02c7: add | |
IL_02c8: ldloc.0 | |
IL_02c9: conv.u2 | |
IL_02ca: stind.i2 | |
IL_02cb: nop | |
IL_02cc: ldloc.2 | |
IL_02cd: ldc.i4.0 | |
IL_02ce: cgt | |
IL_02d0: stloc.s V_21 | |
IL_02d2: ldloc.s V_21 | |
IL_02d4: brfalse.s IL_031d | |
IL_02d6: nop | |
IL_02d7: ldc.i4.7 | |
IL_02d8: stloc.s toIndex | |
IL_02da: ldloc.1 | |
IL_02db: ldc.i4.1 | |
IL_02dc: sub | |
IL_02dd: stloc.s fromIndex | |
IL_02df: ldloc.1 | |
IL_02e0: ldloc.2 | |
IL_02e1: sub | |
IL_02e2: stloc.s V_24 | |
IL_02e4: br.s IL_0311 | |
IL_02e6: nop | |
IL_02e7: ldarg.1 | |
IL_02e8: ldloc.s toIndex | |
IL_02ea: dup | |
IL_02eb: ldc.i4.1 | |
IL_02ec: sub | |
IL_02ed: stloc.s toIndex | |
IL_02ef: conv.i | |
IL_02f0: ldc.i4.2 | |
IL_02f1: mul | |
IL_02f2: add | |
IL_02f3: ldarg.1 | |
IL_02f4: ldloc.s fromIndex | |
IL_02f6: conv.i | |
IL_02f7: ldc.i4.2 | |
IL_02f8: mul | |
IL_02f9: add | |
IL_02fa: ldind.u2 | |
IL_02fb: stind.i2 | |
IL_02fc: ldarg.1 | |
IL_02fd: ldloc.s fromIndex | |
IL_02ff: dup | |
IL_0300: ldc.i4.1 | |
IL_0301: sub | |
IL_0302: stloc.s fromIndex | |
IL_0304: conv.i | |
IL_0305: ldc.i4.2 | |
IL_0306: mul | |
IL_0307: add | |
IL_0308: ldc.i4.0 | |
IL_0309: stind.i2 | |
IL_030a: nop | |
IL_030b: ldloc.s V_24 | |
IL_030d: ldc.i4.1 | |
IL_030e: sub | |
IL_030f: stloc.s V_24 | |
IL_0311: ldloc.s V_24 | |
IL_0313: ldc.i4.0 | |
IL_0314: cgt | |
IL_0316: stloc.s V_25 | |
IL_0318: ldloc.s V_25 | |
IL_031a: brtrue.s IL_02e6 | |
IL_031c: nop | |
IL_031d: ret | |
} // end of method IPv6AddressHelper::Parse |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment