Skip to content

Instantly share code, notes, and snippets.

@EgorBot
Created June 25, 2024 22:18
Show Gist options
  • Save EgorBot/aa10814e9b702eee960a1fd0cd17751f to your computer and use it in GitHub Desktop.
Save EgorBot/aa10814e9b702eee960a1fd0cd17751f to your computer and use it in GitHub Desktop.
diff_asm_7be65f28.asm
Percent | Source code & Disassembly of jitted-36725-17433.so for cpu-clock (390941 samples, percent: local period)
------------------------------------------------------------------------------------------------------------------------
:
:
:
: 3 Disassembly of section .text:
:
: 5 0000000000000080 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]>:
: 6 uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]():
0.07 : 80: stp x29, x30, [sp, #-128]!
0.00 : 84: stp d8, d9, [sp, #32]
0.00 : 88: stp d10, d11, [sp, #48]
0.00 : 8c: stp d12, d13, [sp, #64]
0.00 : 90: stp d14, d15, [sp, #80]
0.00 : 94: stp x19, x20, [sp, #96]
0.00 : 98: stp x21, x22, [sp, #112]
0.07 : 9c: mov x29, sp
0.00 : a0: mov x19, x2
0.00 : a4: mov x20, x3
0.00 : a8: mov w2, wzr
0.00 : ac: cmp w1, #0x20
0.00 : b0: b.le 1024 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xfa4>
0.00 : b4: movi v8.4s, #0x0
0.00 : b8: ldr q9, 1050 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xfd0>
0.09 : bc: uqsub v10.16b, v8.16b, v9.16b
0.00 : c0: ldr q11, 1060 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xfe0>
0.00 : c4: ldr q12, 1070 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xff0>
0.00 : c8: ldr q13, 1080 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x1000>
0.00 : cc: movi v14.16b, #0x60
0.00 : d0: movi v15.16b, #0x70
0.00 : d4: movi v16.16b, #0xf
0.00 : d8: movi v17.16b, #0x80
0.08 : dc: movi v18.16b, #0xef
0.00 : e0: movi v19.16b, #0xbf
0.00 : e4: mov w3, wzr
0.00 : e8: mov w4, wzr
0.00 : ec: sxtw x5, w2
4.39 : f0: ldr q20, [x0, x5]
0.00 : f4: and v21.16b, v20.16b, v17.16b
0.00 : f8: umaxp v21.4s, v21.4s, v21.4s
0.59 : fc: mov x5, v21.d[0]
0.00 : 100: cmp x5, #0x0
0.00 : 104: b.eq 26c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x1ec> // b.none
2.14 : 108: ext v21.16b, v8.16b, v20.16b, #15
0.00 : 10c: ushr v22.8h, v21.8h, #4
3.03 : 110: and v22.16b, v22.16b, v16.16b
0.00 : 114: tbl v22.16b, {v11.16b}, v22.16b
0.00 : 118: and v21.16b, v21.16b, v16.16b
0.42 : 11c: tbl v21.16b, {v12.16b}, v21.16b
0.00 : 120: and v21.16b, v22.16b, v21.16b
0.00 : 124: ushr v22.8h, v20.8h, #4
1.51 : 128: and v22.16b, v22.16b, v16.16b
0.00 : 12c: tbl v22.16b, {v13.16b}, v22.16b
3.05 : 130: and v21.16b, v21.16b, v22.16b
0.00 : 134: ext v22.16b, v8.16b, v20.16b, #14
0.00 : 138: ext v23.16b, v8.16b, v20.16b, #13
0.49 : 13c: mov v8.16b, v20.16b
0.00 : 140: uqsub v20.16b, v22.16b, v14.16b
0.00 : 144: uqsub v22.16b, v23.16b, v15.16b
1.52 : 148: orr v20.16b, v20.16b, v22.16b
0.00 : 14c: and v20.16b, v20.16b, v17.16b
3.15 : 150: eor v20.16b, v20.16b, v21.16b
0.00 : 154: umaxp v20.4s, v20.4s, v20.4s
0.00 : 158: mov x5, v20.d[0]
0.43 : 15c: cmp x5, #0x0
0.00 : 160: b.ne 4f0 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x470> // b.any
63.13 : 164: uqsub v10.16b, v8.16b, v9.16b
0.00 : 168: cmge v20.16b, v19.16b, v8.16b
0.00 : 16c: addv b20, v20.16b
0.00 : 170: smov x5, v20.b[0]
0.00 : 174: sub w3, w3, w5
0.00 : 178: cmhi v20.16b, v8.16b, v18.16b
0.00 : 17c: umaxp v21.4s, v20.4s, v20.4s
5.02 : 180: mov x5, v21.d[0]
0.00 : 184: cmp x5, #0x0
0.00 : 188: b.ne 4dc <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x45c> // b.any
0.59 : 18c: add w2, w2, #0x10
0.00 : 190: add w5, w2, #0x10
0.00 : 194: cmp w5, w1
0.00 : 198: b.le ec <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x6c>
0.00 : 19c: umaxp v20.4s, v10.4s, v10.4s
0.08 : 1a0: mov x5, v20.d[0]
0.00 : 1a4: cmp x5, #0x0
0.00 : 1a8: cset x5, ne // ne = any
0.00 : 1ac: cmp w2, w1
0.00 : 1b0: cset x6, lt // lt = tstop
0.00 : 1b4: orr w6, w6, w5
0.00 : 1b8: cbz w6, 488 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x408>
0.04 : 1bc: cbz w2, a64 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x9e4>
0.04 : 1c0: cbz w5, a64 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x9e4>
0.00 : 1c4: add x5, x0, w2, sxtw
0.00 : 1c8: sub x5, x5, #0x3
0.00 : 1cc: sub w6, w1, w2
0.00 : 1d0: add w6, w6, #0x3
0.00 : 1d4: mov w7, wzr
0.00 : 1d8: mov w8, wzr
0.03 : 1dc: ldrb w9, [x5]
0.05 : 1e0: and w9, w9, #0xc0
0.00 : 1e4: cmp w9, #0x80
0.00 : 1e8: cset x9, ne // ne = any
0.00 : 1ec: cbnz w9, 294 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x214>
0.00 : 1f0: mov w8, #0x1 // #1
0.00 : 1f4: ldurb w9, [x5, #-1]
0.00 : 1f8: and w9, w9, #0xc0
0.00 : 1fc: cmp w9, #0x80
0.00 : 200: cset x9, ne // ne = any
0.00 : 204: cbnz w9, 294 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x214>
0.00 : 208: mov w8, #0x2 // #2
0.00 : 20c: ldurb w9, [x5, #-2]
0.00 : 210: and w9, w9, #0xc0
0.00 : 214: cmp w9, #0x80
0.00 : 218: cset x9, ne // ne = any
0.00 : 21c: cbnz w9, 294 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x214>
0.00 : 220: mov w8, #0x3 // #3
0.00 : 224: ldurb w9, [x5, #-3]
0.00 : 228: and w9, w9, #0xc0
0.00 : 22c: cmp w9, #0x80
0.00 : 230: cset x9, ne // ne = any
0.00 : 234: cbnz w9, 294 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x214>
0.02 : 238: cbz w9, 438 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x3b8>
0.06 : 23c: mov w10, wzr
0.00 : 240: add w6, w6, w7
0.18 : 244: cmp w10, w6
0.00 : 248: b.ge 264 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x1e4> // b.tcont
0.36 : 24c: ldrb w11, [x5, w10, sxtw #0]
0.01 : 250: cmp w11, #0x80
0.00 : 254: b.ge 2a0 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x220> // b.tcont
0.13 : 258: add w10, w10, #0x1
0.05 : 25c: cmp w10, w6
0.00 : 260: b.ne 24c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x1cc> // b.any
0.05 : 264: add x21, x5, w6, sxtw
0.00 : 268: b 43c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x3bc>
0.00 : 26c: umaxp v20.4s, v10.4s, v10.4s
0.00 : 270: mov x5, v20.d[0]
0.00 : 274: cmp x5, #0x0
0.00 : 278: b.ne d40 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xcc0> // b.any
0.00 : 27c: movi v10.4s, #0x0
0.00 : 280: mov w22, #0x10 // #16
0.00 : 284: add w8, w2, #0x50
0.00 : 288: cmp w8, w1
0.00 : 28c: b.gt 18c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x10c>
0.00 : 290: b 9f0 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x970>
0.00 : 294: sub x5, x5, w8, sxtw
0.00 : 298: asr w7, w8, #0
0.00 : 29c: b 238 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x1b8>
0.40 : 2a0: and w7, w11, #0xe0
0.12 : 2a4: cmp w7, #0xc0
0.00 : 2a8: b.ne 2f8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x278> // b.any
0.41 : 2ac: add w7, w10, #0x2
0.00 : 2b0: cmp w7, w6
0.00 : 2b4: b.gt 38c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x30c>
0.43 : 2b8: add w8, w10, #0x1
0.00 : 2bc: ldrb w8, [x5, w8, sxtw #0]
0.04 : 2c0: and w8, w8, #0xc0
0.05 : 2c4: cmp w8, #0x80
0.00 : 2c8: b.ne 38c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x30c> // b.any
0.57 : 2cc: add w8, w10, #0x1
0.00 : 2d0: ldrb w8, [x5, w8, sxtw #0]
0.01 : 2d4: and w8, w8, #0x3f
0.00 : 2d8: and w11, w11, #0x1f
0.00 : 2dc: orr w8, w8, w11, lsl #6
0.02 : 2e0: mov w9, #0x7ff // #2047
0.07 : 2e4: cmp w8, #0x80
0.00 : 2e8: ccmp w8, w9, #0x2, cs // cs = hs, nlast
0.43 : 2ec: b.hi 38c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x30c> // b.pmore
0.62 : 2f0: asr w10, w7, #0
0.00 : 2f4: b 244 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x1c4>
0.00 : 2f8: and w7, w11, #0xf0
0.00 : 2fc: cmp w7, #0xe0
0.00 : 300: b.ne 394 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x314> // b.any
0.00 : 304: add w7, w10, #0x3
0.00 : 308: cmp w7, w6
0.00 : 30c: b.gt 38c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x30c>
0.00 : 310: add w8, w10, #0x1
0.00 : 314: ldrb w8, [x5, w8, sxtw #0]
0.00 : 318: and w8, w8, #0x3f
0.00 : 31c: lsl w8, w8, #6
0.00 : 320: and w11, w11, #0xf
0.00 : 324: orr w8, w8, w11, lsl #12
0.00 : 328: add w9, w10, #0x2
0.00 : 32c: ldrb w9, [x5, w9, sxtw #0]
0.00 : 330: and w9, w9, #0x3f
0.00 : 334: orr w8, w8, w9
0.00 : 338: mov w9, #0xffff // #65535
0.00 : 33c: cmp w8, #0x800
0.00 : 340: ccmp w8, w9, #0x2, cs // cs = hs, nlast
0.00 : 344: cset x9, hi // hi = pmore
0.00 : 348: mov w11, #0xd7ff // #55295
0.00 : 34c: mov w13, #0xe000 // #57344
0.00 : 350: cmp w8, w11
0.00 : 354: ccmp w8, w13, #0x2, hi // hi = pmore
0.00 : 358: cset x8, cc // cc = lo, ul, last
0.00 : 35c: orr w8, w9, w8
0.00 : 360: cbnz w8, 38c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x30c>
0.00 : 364: add w8, w10, #0x1
0.00 : 368: ldrb w8, [x5, w8, sxtw #0]
0.00 : 36c: and w8, w8, #0xc0
0.00 : 370: cmp w8, #0x80
0.00 : 374: b.ne 38c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x30c> // b.any
0.00 : 378: add w8, w10, #0x2
0.00 : 37c: ldrb w8, [x5, w8, sxtw #0]
0.00 : 380: and w8, w8, #0xc0
0.00 : 384: cmp w8, #0x80
0.00 : 388: b.eq 2f0 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x270> // b.none
0.00 : 38c: add x21, x5, w10, sxtw
0.00 : 390: b 43c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x3bc>
0.00 : 394: and w7, w11, #0xf8
0.00 : 398: cmp w7, #0xf0
0.00 : 39c: b.ne 38c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x30c> // b.any
0.00 : 3a0: add w7, w10, #0x4
0.00 : 3a4: cmp w7, w6
0.00 : 3a8: b.gt 38c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x30c>
0.00 : 3ac: add w8, w10, #0x1
0.00 : 3b0: ldrb w8, [x5, w8, sxtw #0]
0.00 : 3b4: and w8, w8, #0xc0
0.00 : 3b8: cmp w8, #0x80
0.00 : 3bc: b.ne 38c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x30c> // b.any
0.00 : 3c0: add w8, w10, #0x2
0.00 : 3c4: ldrb w8, [x5, w8, sxtw #0]
0.00 : 3c8: and w8, w8, #0xc0
0.00 : 3cc: cmp w8, #0x80
0.00 : 3d0: b.ne 38c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x30c> // b.any
0.00 : 3d4: add w8, w10, #0x3
0.00 : 3d8: ldrb w8, [x5, w8, sxtw #0]
0.00 : 3dc: and w8, w8, #0xc0
0.00 : 3e0: cmp w8, #0x80
0.00 : 3e4: b.ne 38c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x30c> // b.any
0.00 : 3e8: add w8, w10, #0x1
0.00 : 3ec: ldrb w8, [x5, w8, sxtw #0]
0.00 : 3f0: and w8, w8, #0x3f
0.00 : 3f4: lsl w8, w8, #12
0.00 : 3f8: and w9, w11, #0x7
0.00 : 3fc: orr w8, w8, w9, lsl #18
0.00 : 400: add w9, w10, #0x2
0.00 : 404: ldrb w9, [x5, w9, sxtw #0]
0.00 : 408: and w9, w9, #0x3f
0.00 : 40c: orr w8, w8, w9, lsl #6
0.00 : 410: add w9, w10, #0x3
0.00 : 414: ldrb w9, [x5, w9, sxtw #0]
0.00 : 418: and w9, w9, #0x3f
0.00 : 41c: orr w8, w8, w9
0.00 : 420: mov w9, #0xffff // #65535
0.00 : 424: mov w11, #0x10ffff // #1114111
0.00 : 428: cmp w8, w9
0.00 : 42c: ccmp w8, w11, #0x2, hi // hi = pmore
0.00 : 430: b.ls 2f0 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x270> // b.plast
0.00 : 434: b 38c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x30c>
0.00 : 438: sub x21, x5, #0x3
0.09 : 43c: add x5, x0, w1, sxtw
0.00 : 440: cmp x5, x21
0.00 : 444: b.ne c80 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xc00> // b.any
0.07 : 448: add x2, x0, w2, sxtw
0.00 : 44c: cmp x2, x21
0.00 : 450: b.cs 488 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x408> // b.hs, b.nlast
0.52 : 454: ldrb w5, [x2]
0.46 : 458: and w5, w5, #0xc0
0.00 : 45c: cmp w5, #0x80
0.00 : 460: b.ne 468 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x3e8> // b.any
1.00 : 464: add w3, w3, #0x1
1.14 : 468: ldrb w5, [x2]
0.00 : 46c: and w5, w5, #0xf0
0.00 : 470: cmp w5, #0xf0
0.00 : 474: b.ne 47c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x3fc> // b.any
0.00 : 478: add w4, w4, #0x1
1.81 : 47c: add x2, x2, #0x1
0.00 : 480: cmp x2, x21
0.00 : 484: b.cc 454 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x3d4> // b.lo, b.ul, b.last
0.00 : 488: neg w2, w4
0.00 : 48c: lsl w2, w2, #1
0.00 : 490: add w2, w2, w3, lsl #1
0.00 : 494: mov w5, #0x3 // #3
0.00 : 498: msub w3, w3, w5, w4
0.08 : 49c: neg w5, w4
0.00 : 4a0: neg w4, w4
0.00 : 4a4: lsl w4, w4, #1
0.00 : 4a8: sub w2, w4, w2, lsl #1
0.00 : 4ac: sub w2, w2, w3
0.00 : 4b0: str w2, [x19]
0.00 : 4b4: str w5, [x20]
0.00 : 4b8: add x0, x0, w1, sxtw
0.08 : 4bc: ldp x21, x22, [sp, #112]
0.24 : 4c0: ldp x19, x20, [sp, #96]
0.15 : 4c4: ldp d14, d15, [sp, #80]
0.00 : 4c8: ldp d12, d13, [sp, #64]
0.08 : 4cc: ldp d10, d11, [sp, #48]
0.08 : 4d0: ldp d8, d9, [sp, #32]
0.07 : 4d4: ldp x29, x30, [sp], #128
0.09 : 4d8: ret
0.00 : 4dc: addv b20, v20.16b
0.00 : 4e0: umov w5, v20.b[0]
0.00 : 4e4: neg w5, w5
0.00 : 4e8: add w4, w4, w5, uxtb
0.00 : 4ec: b 18c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x10c>
0.00 : 4f0: cbnz w2, 70c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x68c>
0.00 : 4f4: mov x22, x0
0.00 : 4f8: mov w5, wzr
0.00 : 4fc: mov w6, wzr
0.00 : 500: mov w7, wzr
0.00 : 504: cmp w7, #0x0
0.00 : 508: b.gt 534 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x4b4>
0.00 : 50c: neg w6, w7
0.00 : 510: ldrb w6, [x0, w6, sxtw #0]
0.00 : 514: and w6, w6, #0xc0
0.00 : 518: cmp w6, #0x80
0.00 : 51c: cset x6, ne // ne = any
0.00 : 520: cbnz w6, 52c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x4ac>
0.00 : 524: add w7, w7, #0x1
0.00 : 528: b 504 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x484>
0.00 : 52c: sub x22, x0, w7, sxtw
0.00 : 530: asr w5, w7, #0
0.00 : 534: cbz w6, 708 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x688>
0.00 : 538: mov w6, wzr
0.00 : 53c: add w1, w1, w5
0.00 : 540: cmp w6, w1
0.00 : 544: b.ge 700 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x680> // b.tcont
0.00 : 548: ldrb w5, [x22, w6, sxtw #0]
0.00 : 54c: cmp w5, #0x80
0.00 : 550: b.ge 564 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x4e4> // b.tcont
0.00 : 554: add w6, w6, #0x1
0.00 : 558: cmp w6, w1
0.00 : 55c: b.ne 548 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x4c8> // b.any
0.00 : 560: b 700 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x680>
0.00 : 564: and w7, w5, #0xe0
0.00 : 568: cmp w7, #0xc0
0.00 : 56c: b.ne 5b8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x538> // b.any
0.00 : 570: add w7, w6, #0x2
0.00 : 574: cmp w7, w1
0.00 : 578: b.gt 6f8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x678>
0.00 : 57c: add w8, w6, #0x1
0.00 : 580: ldrb w8, [x22, w8, sxtw #0]
0.00 : 584: and w8, w8, #0xc0
0.00 : 588: cmp w8, #0x80
0.00 : 58c: b.ne 6f8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x678> // b.any
0.00 : 590: add w8, w6, #0x1
0.00 : 594: ldrb w8, [x22, w8, sxtw #0]
0.00 : 598: and w8, w8, #0x3f
0.00 : 59c: and w5, w5, #0x1f
0.00 : 5a0: orr w5, w8, w5, lsl #6
0.00 : 5a4: mov w8, #0x7ff // #2047
0.00 : 5a8: cmp w5, #0x80
0.00 : 5ac: ccmp w5, w8, #0x2, cs // cs = hs, nlast
0.00 : 5b0: b.ls 6f0 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x670> // b.plast
0.00 : 5b4: b 6f8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x678>
0.00 : 5b8: and w7, w5, #0xf0
0.00 : 5bc: cmp w7, #0xe0
0.00 : 5c0: b.ne 650 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x5d0> // b.any
0.00 : 5c4: add w7, w6, #0x3
0.00 : 5c8: cmp w7, w1
0.00 : 5cc: b.gt 6f8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x678>
0.00 : 5d0: add w8, w6, #0x1
0.00 : 5d4: ldrb w8, [x22, w8, sxtw #0]
0.00 : 5d8: and w8, w8, #0x3f
0.00 : 5dc: lsl w8, w8, #6
0.00 : 5e0: and w5, w5, #0xf
0.00 : 5e4: orr w5, w8, w5, lsl #12
0.00 : 5e8: add w8, w6, #0x2
0.00 : 5ec: ldrb w8, [x22, w8, sxtw #0]
0.00 : 5f0: and w8, w8, #0x3f
0.00 : 5f4: orr w5, w5, w8
0.00 : 5f8: mov w8, #0xffff // #65535
0.00 : 5fc: cmp w5, #0x800
0.00 : 600: ccmp w5, w8, #0x2, cs // cs = hs, nlast
0.00 : 604: cset x8, hi // hi = pmore
0.00 : 608: mov w9, #0xd7ff // #55295
0.00 : 60c: mov w10, #0xe000 // #57344
0.00 : 610: cmp w5, w9
0.00 : 614: ccmp w5, w10, #0x2, hi // hi = pmore
0.00 : 618: cset x5, cc // cc = lo, ul, last
0.00 : 61c: orr w5, w8, w5
0.00 : 620: cbnz w5, 6f8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x678>
0.00 : 624: add w5, w6, #0x1
0.00 : 628: ldrb w5, [x22, w5, sxtw #0]
0.00 : 62c: and w5, w5, #0xc0
0.00 : 630: cmp w5, #0x80
0.00 : 634: b.ne 6f8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x678> // b.any
0.00 : 638: add w5, w6, #0x2
0.00 : 63c: ldrb w5, [x22, w5, sxtw #0]
0.00 : 640: and w5, w5, #0xc0
0.00 : 644: cmp w5, #0x80
0.00 : 648: b.eq 6f0 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x670> // b.none
0.00 : 64c: b 6f8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x678>
0.00 : 650: and w7, w5, #0xf8
0.00 : 654: cmp w7, #0xf0
0.00 : 658: b.ne 6f8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x678> // b.any
0.00 : 65c: add w7, w6, #0x4
0.00 : 660: cmp w7, w1
0.00 : 664: b.gt 6f8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x678>
0.00 : 668: add w8, w6, #0x1
0.00 : 66c: ldrb w8, [x22, w8, sxtw #0]
0.00 : 670: and w8, w8, #0xc0
0.00 : 674: cmp w8, #0x80
0.00 : 678: b.ne 6f8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x678> // b.any
0.00 : 67c: add w8, w6, #0x2
0.00 : 680: ldrb w8, [x22, w8, sxtw #0]
0.00 : 684: and w8, w8, #0xc0
0.00 : 688: cmp w8, #0x80
0.00 : 68c: b.ne 6f8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x678> // b.any
0.00 : 690: add w8, w6, #0x3
0.00 : 694: ldrb w8, [x22, w8, sxtw #0]
0.00 : 698: and w8, w8, #0xc0
0.00 : 69c: cmp w8, #0x80
0.00 : 6a0: b.ne 6f8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x678> // b.any
0.00 : 6a4: add w8, w6, #0x1
0.00 : 6a8: ldrb w8, [x22, w8, sxtw #0]
0.00 : 6ac: and w8, w8, #0x3f
0.00 : 6b0: lsl w8, w8, #12
0.00 : 6b4: and w5, w5, #0x7
0.00 : 6b8: orr w5, w8, w5, lsl #18
0.00 : 6bc: add w8, w6, #0x2
0.00 : 6c0: ldrb w8, [x22, w8, sxtw #0]
0.00 : 6c4: and w8, w8, #0x3f
0.00 : 6c8: orr w5, w5, w8, lsl #6
0.00 : 6cc: add w8, w6, #0x3
0.00 : 6d0: ldrb w8, [x22, w8, sxtw #0]
0.00 : 6d4: and w8, w8, #0x3f
0.00 : 6d8: orr w5, w5, w8
0.00 : 6dc: mov w8, #0xffff // #65535
0.00 : 6e0: mov w9, #0x10ffff // #1114111
0.00 : 6e4: cmp w5, w8
0.00 : 6e8: ccmp w5, w9, #0x2, hi // hi = pmore
0.00 : 6ec: b.hi 6f8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x678> // b.pmore
0.00 : 6f0: asr w6, w7, #0
0.00 : 6f4: b 540 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x4c0>
0.00 : 6f8: add x22, x22, w6, sxtw
0.00 : 6fc: b 708 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x688>
0.00 : 700: add x22, x22, w1, sxtw
0.00 : 704: b 708 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x688>
0.00 : 708: b 930 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x8b0>
0.00 : 70c: add x5, x0, w2, sxtw
0.00 : 710: sub x5, x5, #0x3
0.00 : 714: sub w1, w1, w2
0.00 : 718: add w1, w1, #0x3
0.00 : 71c: mov w6, wzr
0.00 : 720: mov w7, wzr
0.00 : 724: mov w8, wzr
0.00 : 728: cmp w8, #0x3
0.00 : 72c: b.gt 758 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x6d8>
0.00 : 730: neg w7, w8
0.00 : 734: ldrb w7, [x5, w7, sxtw #0]
0.00 : 738: and w7, w7, #0xc0
0.00 : 73c: cmp w7, #0x80
0.00 : 740: cset x7, ne // ne = any
0.00 : 744: cbnz w7, 750 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x6d0>
0.00 : 748: add w8, w8, #0x1
0.00 : 74c: b 728 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x6a8>
0.00 : 750: sub x5, x5, w8, sxtw
0.00 : 754: asr w6, w8, #0
0.00 : 758: cbz w7, 92c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x8ac>
0.00 : 75c: mov w7, wzr
0.00 : 760: add w1, w1, w6
0.00 : 764: cmp w7, w1
0.00 : 768: b.ge 924 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x8a4> // b.tcont
0.00 : 76c: ldrb w6, [x5, w7, sxtw #0]
0.00 : 770: cmp w6, #0x80
0.00 : 774: b.ge 788 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x708> // b.tcont
0.00 : 778: add w7, w7, #0x1
0.00 : 77c: cmp w7, w1
0.00 : 780: b.ne 76c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x6ec> // b.any
0.00 : 784: b 924 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x8a4>
0.00 : 788: and w8, w6, #0xe0
0.00 : 78c: cmp w8, #0xc0
0.00 : 790: b.ne 7dc <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x75c> // b.any
0.00 : 794: add w8, w7, #0x2
0.00 : 798: cmp w8, w1
0.00 : 79c: b.gt 91c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x89c>
0.00 : 7a0: add w9, w7, #0x1
0.00 : 7a4: ldrb w9, [x5, w9, sxtw #0]
0.00 : 7a8: and w9, w9, #0xc0
0.00 : 7ac: cmp w9, #0x80
0.00 : 7b0: b.ne 91c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x89c> // b.any
0.00 : 7b4: add w9, w7, #0x1
0.00 : 7b8: ldrb w9, [x5, w9, sxtw #0]
0.00 : 7bc: and w9, w9, #0x3f
0.00 : 7c0: and w6, w6, #0x1f
0.00 : 7c4: orr w6, w9, w6, lsl #6
0.00 : 7c8: mov w9, #0x7ff // #2047
0.00 : 7cc: cmp w6, #0x80
0.00 : 7d0: ccmp w6, w9, #0x2, cs // cs = hs, nlast
0.00 : 7d4: b.ls 914 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x894> // b.plast
0.00 : 7d8: b 91c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x89c>
0.00 : 7dc: and w8, w6, #0xf0
0.00 : 7e0: cmp w8, #0xe0
0.00 : 7e4: b.ne 874 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x7f4> // b.any
0.00 : 7e8: add w8, w7, #0x3
0.00 : 7ec: cmp w8, w1
0.00 : 7f0: b.gt 91c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x89c>
0.00 : 7f4: add w9, w7, #0x1
0.00 : 7f8: ldrb w9, [x5, w9, sxtw #0]
0.00 : 7fc: and w9, w9, #0x3f
0.00 : 800: lsl w9, w9, #6
0.00 : 804: and w6, w6, #0xf
0.00 : 808: orr w6, w9, w6, lsl #12
0.00 : 80c: add w9, w7, #0x2
0.00 : 810: ldrb w9, [x5, w9, sxtw #0]
0.00 : 814: and w9, w9, #0x3f
0.00 : 818: orr w6, w6, w9
0.00 : 81c: mov w9, #0xffff // #65535
0.00 : 820: cmp w6, #0x800
0.00 : 824: ccmp w6, w9, #0x2, cs // cs = hs, nlast
0.00 : 828: cset x9, hi // hi = pmore
0.00 : 82c: mov w10, #0xd7ff // #55295
0.00 : 830: mov w11, #0xe000 // #57344
0.00 : 834: cmp w6, w10
0.00 : 838: ccmp w6, w11, #0x2, hi // hi = pmore
0.00 : 83c: cset x6, cc // cc = lo, ul, last
0.00 : 840: orr w6, w9, w6
0.00 : 844: cbnz w6, 91c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x89c>
0.00 : 848: add w6, w7, #0x1
0.00 : 84c: ldrb w6, [x5, w6, sxtw #0]
0.00 : 850: and w6, w6, #0xc0
0.00 : 854: cmp w6, #0x80
0.00 : 858: b.ne 91c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x89c> // b.any
0.00 : 85c: add w6, w7, #0x2
0.00 : 860: ldrb w6, [x5, w6, sxtw #0]
0.00 : 864: and w6, w6, #0xc0
0.00 : 868: cmp w6, #0x80
0.00 : 86c: b.eq 914 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x894> // b.none
0.00 : 870: b 91c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x89c>
0.00 : 874: and w8, w6, #0xf8
0.00 : 878: cmp w8, #0xf0
0.00 : 87c: b.ne 91c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x89c> // b.any
0.00 : 880: add w8, w7, #0x4
0.00 : 884: cmp w8, w1
0.00 : 888: b.gt 91c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x89c>
0.00 : 88c: add w9, w7, #0x1
0.00 : 890: ldrb w9, [x5, w9, sxtw #0]
0.00 : 894: and w9, w9, #0xc0
0.00 : 898: cmp w9, #0x80
0.00 : 89c: b.ne 91c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x89c> // b.any
0.00 : 8a0: add w9, w7, #0x2
0.00 : 8a4: ldrb w9, [x5, w9, sxtw #0]
0.00 : 8a8: and w9, w9, #0xc0
0.00 : 8ac: cmp w9, #0x80
0.00 : 8b0: b.ne 91c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x89c> // b.any
0.00 : 8b4: add w9, w7, #0x3
0.00 : 8b8: ldrb w9, [x5, w9, sxtw #0]
0.00 : 8bc: and w9, w9, #0xc0
0.00 : 8c0: cmp w9, #0x80
0.00 : 8c4: b.ne 91c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x89c> // b.any
0.00 : 8c8: add w9, w7, #0x1
0.00 : 8cc: ldrb w9, [x5, w9, sxtw #0]
0.00 : 8d0: and w9, w9, #0x3f
0.00 : 8d4: lsl w9, w9, #12
0.00 : 8d8: and w6, w6, #0x7
0.00 : 8dc: orr w6, w9, w6, lsl #18
0.00 : 8e0: add w9, w7, #0x2
0.00 : 8e4: ldrb w9, [x5, w9, sxtw #0]
0.00 : 8e8: and w9, w9, #0x3f
0.00 : 8ec: orr w6, w6, w9, lsl #6
0.00 : 8f0: add w9, w7, #0x3
0.00 : 8f4: ldrb w9, [x5, w9, sxtw #0]
0.00 : 8f8: and w9, w9, #0x3f
0.00 : 8fc: orr w6, w6, w9
0.00 : 900: mov w9, #0xffff // #65535
0.00 : 904: mov w10, #0x10ffff // #1114111
0.00 : 908: cmp w6, w9
0.00 : 90c: ccmp w6, w10, #0x2, hi // hi = pmore
0.00 : 910: b.hi 91c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x89c> // b.pmore
0.00 : 914: asr w7, w8, #0
0.00 : 918: b 764 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x6e4>
0.00 : 91c: add x22, x5, w7, sxtw
0.00 : 920: b 930 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x8b0>
0.00 : 924: add x22, x5, w1, sxtw
0.00 : 928: b 930 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x8b0>
0.00 : 92c: sub x22, x5, #0x3
0.00 : 930: add x1, x0, w2, sxtw
0.00 : 934: cmp x1, x22
0.00 : 938: b.ls 97c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x8fc> // b.plast
0.00 : 93c: mov x1, x22
0.00 : 940: add x5, x0, w2, sxtw
0.00 : 944: cmp x5, x1
0.00 : 948: b.ls 9b8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x938> // b.plast
0.00 : 94c: ldrb w5, [x1]
0.00 : 950: and w5, w5, #0xc0
0.00 : 954: cmp w5, #0x80
0.00 : 958: b.ne 960 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x8e0> // b.any
0.00 : 95c: sub w3, w3, #0x1
0.00 : 960: ldrb w5, [x1]
0.00 : 964: and w5, w5, #0xf0
0.00 : 968: cmp w5, #0xf0
0.00 : 96c: b.ne 974 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x8f4> // b.any
0.00 : 970: sub w4, w4, #0x1
0.00 : 974: add x1, x1, #0x1
0.00 : 978: b 940 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x8c0>
0.00 : 97c: add x0, x0, w2, sxtw
0.00 : 980: cmp x0, x22
0.00 : 984: b.cs 9b8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x938> // b.hs, b.nlast
0.00 : 988: ldrb w1, [x0]
0.00 : 98c: and w1, w1, #0xc0
0.00 : 990: cmp w1, #0x80
0.00 : 994: b.ne 99c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x91c> // b.any
0.00 : 998: add w3, w3, #0x1
0.00 : 99c: ldrb w1, [x0]
0.00 : 9a0: and w1, w1, #0xf0
0.00 : 9a4: cmp w1, #0xf0
0.00 : 9a8: b.ne 9b0 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x930> // b.any
0.00 : 9ac: add w4, w4, #0x1
0.00 : 9b0: add x0, x0, #0x1
0.00 : 9b4: b 980 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x900>
0.00 : 9b8: mov w0, w4
0.00 : 9bc: mov w1, w3
0.00 : 9c0: mov x2, #0xcd08 // #52488
0.00 : 9c4: movk x2, #0xd936, lsl #16
0.00 : 9c8: movk x2, #0xf81e, lsl #32
0.00 : 9cc: ldr x2, [x2]
0.00 : 9d0: blr x2
0.00 : 9d4: str x0, [x29, #24]
0.00 : 9d8: ldr w0, [x29, #24]
0.00 : 9dc: str w0, [x19]
0.00 : 9e0: ldr w0, [x29, #28]
0.00 : 9e4: str w0, [x20]
0.00 : 9e8: mov x0, x22
0.00 : 9ec: b 4bc <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x43c>
0.00 : 9f0: add w5, w2, w22
0.00 : 9f4: add w5, w5, #0x40
0.00 : 9f8: cmp w5, w1
0.00 : 9fc: b.gt a58 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x9d8>
0.00 : a00: add x5, x0, w2, sxtw
0.00 : a04: sxtw x6, w22
0.00 : a08: ldr q20, [x5, x6]
0.00 : a0c: add x5, x0, w2, sxtw
0.00 : a10: add x5, x5, w22, sxtw
0.00 : a14: ldr q21, [x5, #16]
0.00 : a18: orr v20.16b, v20.16b, v21.16b
0.00 : a1c: add x5, x0, w2, sxtw
0.00 : a20: add x5, x5, w22, sxtw
0.00 : a24: ldr q21, [x5, #32]
0.00 : a28: add x5, x0, w2, sxtw
0.00 : a2c: add x5, x5, w22, sxtw
0.00 : a30: ldr q22, [x5, #48]
0.00 : a34: orr v21.16b, v21.16b, v22.16b
0.00 : a38: orr v20.16b, v20.16b, v21.16b
0.00 : a3c: and v20.16b, v20.16b, v17.16b
0.00 : a40: umaxp v20.4s, v20.4s, v20.4s
0.00 : a44: mov x5, v20.d[0]
0.00 : a48: cmp x5, #0x0
0.00 : a4c: b.ne a58 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x9d8> // b.any
0.00 : a50: add w22, w22, #0x40
0.00 : a54: b 9f0 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x970>
0.00 : a58: add w2, w2, w22
0.00 : a5c: sub w2, w2, #0x10
0.00 : a60: b 18c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x10c>
0.00 : a64: add x21, x0, w2, sxtw
0.00 : a68: sub w5, w1, w2
0.00 : a6c: mov w6, wzr
0.00 : a70: mov w7, wzr
0.00 : a74: mov w8, wzr
0.00 : a78: cmp w8, #0x0
0.00 : a7c: b.gt aa8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xa28>
0.00 : a80: neg w7, w8
0.00 : a84: ldrb w7, [x21, w7, sxtw #0]
0.00 : a88: and w7, w7, #0xc0
0.00 : a8c: cmp w7, #0x80
0.00 : a90: cset x7, ne // ne = any
0.00 : a94: cbnz w7, aa0 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xa20>
0.00 : a98: add w8, w8, #0x1
0.00 : a9c: b a78 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x9f8>
0.00 : aa0: sub x21, x21, w8, sxtw
0.00 : aa4: asr w6, w8, #0
0.00 : aa8: cbz w7, c7c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbfc>
0.00 : aac: mov w7, wzr
0.00 : ab0: add w5, w5, w6
0.00 : ab4: cmp w7, w5
0.00 : ab8: b.ge c74 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbf4> // b.tcont
0.00 : abc: ldrb w6, [x21, w7, sxtw #0]
0.00 : ac0: cmp w6, #0x80
0.00 : ac4: b.ge ad8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xa58> // b.tcont
0.00 : ac8: add w7, w7, #0x1
0.00 : acc: cmp w7, w5
0.00 : ad0: b.ne abc <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xa3c> // b.any
0.00 : ad4: b c74 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbf4>
0.00 : ad8: and w8, w6, #0xe0
0.00 : adc: cmp w8, #0xc0
0.00 : ae0: b.ne b2c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xaac> // b.any
0.00 : ae4: add w8, w7, #0x2
0.00 : ae8: cmp w8, w5
0.00 : aec: b.gt c6c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbec>
0.00 : af0: add w9, w7, #0x1
0.00 : af4: ldrb w9, [x21, w9, sxtw #0]
0.00 : af8: and w9, w9, #0xc0
0.00 : afc: cmp w9, #0x80
0.00 : b00: b.ne c6c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbec> // b.any
0.00 : b04: add w9, w7, #0x1
0.00 : b08: ldrb w9, [x21, w9, sxtw #0]
0.00 : b0c: and w9, w9, #0x3f
0.00 : b10: and w6, w6, #0x1f
0.00 : b14: orr w6, w9, w6, lsl #6
0.00 : b18: mov w9, #0x7ff // #2047
0.00 : b1c: cmp w6, #0x80
0.00 : b20: ccmp w6, w9, #0x2, cs // cs = hs, nlast
0.00 : b24: b.ls c64 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbe4> // b.plast
0.00 : b28: b c6c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbec>
0.00 : b2c: and w8, w6, #0xf0
0.00 : b30: cmp w8, #0xe0
0.00 : b34: b.ne bc4 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xb44> // b.any
0.00 : b38: add w8, w7, #0x3
0.00 : b3c: cmp w8, w5
0.00 : b40: b.gt c6c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbec>
0.00 : b44: add w9, w7, #0x1
0.00 : b48: ldrb w9, [x21, w9, sxtw #0]
0.00 : b4c: and w9, w9, #0x3f
0.00 : b50: lsl w9, w9, #6
0.00 : b54: and w6, w6, #0xf
0.00 : b58: orr w6, w9, w6, lsl #12
0.00 : b5c: add w9, w7, #0x2
0.00 : b60: ldrb w9, [x21, w9, sxtw #0]
0.00 : b64: and w9, w9, #0x3f
0.00 : b68: orr w6, w6, w9
0.00 : b6c: mov w9, #0xffff // #65535
0.00 : b70: cmp w6, #0x800
0.00 : b74: ccmp w6, w9, #0x2, cs // cs = hs, nlast
0.00 : b78: cset x9, hi // hi = pmore
0.00 : b7c: mov w10, #0xd7ff // #55295
0.00 : b80: mov w11, #0xe000 // #57344
0.00 : b84: cmp w6, w10
0.00 : b88: ccmp w6, w11, #0x2, hi // hi = pmore
0.00 : b8c: cset x6, cc // cc = lo, ul, last
0.00 : b90: orr w6, w9, w6
0.00 : b94: cbnz w6, c6c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbec>
0.00 : b98: add w6, w7, #0x1
0.00 : b9c: ldrb w6, [x21, w6, sxtw #0]
0.00 : ba0: and w6, w6, #0xc0
0.00 : ba4: cmp w6, #0x80
0.00 : ba8: b.ne c6c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbec> // b.any
0.00 : bac: add w6, w7, #0x2
0.00 : bb0: ldrb w6, [x21, w6, sxtw #0]
0.00 : bb4: and w6, w6, #0xc0
0.00 : bb8: cmp w6, #0x80
0.00 : bbc: b.eq c64 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbe4> // b.none
0.00 : bc0: b c6c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbec>
0.00 : bc4: and w8, w6, #0xf8
0.00 : bc8: cmp w8, #0xf0
0.00 : bcc: b.ne c6c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbec> // b.any
0.00 : bd0: add w8, w7, #0x4
0.00 : bd4: cmp w8, w5
0.00 : bd8: b.gt c6c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbec>
0.00 : bdc: add w9, w7, #0x1
0.00 : be0: ldrb w9, [x21, w9, sxtw #0]
0.00 : be4: and w9, w9, #0xc0
0.00 : be8: cmp w9, #0x80
0.00 : bec: b.ne c6c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbec> // b.any
0.00 : bf0: add w9, w7, #0x2
0.00 : bf4: ldrb w9, [x21, w9, sxtw #0]
0.00 : bf8: and w9, w9, #0xc0
0.00 : bfc: cmp w9, #0x80
0.00 : c00: b.ne c6c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbec> // b.any
0.00 : c04: add w9, w7, #0x3
0.00 : c08: ldrb w9, [x21, w9, sxtw #0]
0.00 : c0c: and w9, w9, #0xc0
0.00 : c10: cmp w9, #0x80
0.00 : c14: b.ne c6c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbec> // b.any
0.00 : c18: add w9, w7, #0x1
0.00 : c1c: ldrb w9, [x21, w9, sxtw #0]
0.00 : c20: and w9, w9, #0x3f
0.00 : c24: lsl w9, w9, #12
0.00 : c28: and w6, w6, #0x7
0.00 : c2c: orr w6, w9, w6, lsl #18
0.00 : c30: add w9, w7, #0x2
0.00 : c34: ldrb w9, [x21, w9, sxtw #0]
0.00 : c38: and w9, w9, #0x3f
0.00 : c3c: orr w6, w6, w9, lsl #6
0.00 : c40: add w9, w7, #0x3
0.00 : c44: ldrb w9, [x21, w9, sxtw #0]
0.00 : c48: and w9, w9, #0x3f
0.00 : c4c: orr w6, w6, w9
0.00 : c50: mov w9, #0xffff // #65535
0.00 : c54: mov w10, #0x10ffff // #1114111
0.00 : c58: cmp w6, w9
0.00 : c5c: ccmp w6, w10, #0x2, hi // hi = pmore
0.00 : c60: b.hi c6c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbec> // b.pmore
0.00 : c64: asr w7, w8, #0
0.00 : c68: b ab4 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xa34>
0.00 : c6c: add x21, x21, w7, sxtw
0.00 : c70: b c7c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbfc>
0.00 : c74: add x21, x21, w5, sxtw
0.00 : c78: b c7c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xbfc>
0.00 : c7c: b 43c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x3bc>
0.00 : c80: add x1, x0, w2, sxtw
0.00 : c84: cmp x1, x21
0.00 : c88: b.ls ccc <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xc4c> // b.plast
0.00 : c8c: mov x1, x21
0.00 : c90: add x5, x0, w2, sxtw
0.00 : c94: cmp x5, x1
0.00 : c98: b.ls d08 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xc88> // b.plast
0.00 : c9c: ldrb w5, [x1]
0.00 : ca0: and w5, w5, #0xc0
0.00 : ca4: cmp w5, #0x80
0.00 : ca8: b.ne cb0 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xc30> // b.any
0.00 : cac: sub w3, w3, #0x1
0.00 : cb0: ldrb w5, [x1]
0.00 : cb4: and w5, w5, #0xf0
0.00 : cb8: cmp w5, #0xf0
0.00 : cbc: b.ne cc4 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xc44> // b.any
0.00 : cc0: sub w4, w4, #0x1
0.00 : cc4: add x1, x1, #0x1
0.00 : cc8: b c90 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xc10>
0.00 : ccc: add x0, x0, w2, sxtw
0.00 : cd0: cmp x0, x21
0.00 : cd4: b.cs d08 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xc88> // b.hs, b.nlast
0.00 : cd8: ldrb w1, [x0]
0.00 : cdc: and w1, w1, #0xc0
0.00 : ce0: cmp w1, #0x80
0.00 : ce4: b.ne cec <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xc6c> // b.any
0.00 : ce8: add w3, w3, #0x1
0.00 : cec: ldrb w1, [x0]
0.00 : cf0: and w1, w1, #0xf0
0.00 : cf4: cmp w1, #0xf0
0.00 : cf8: b.ne d00 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xc80> // b.any
0.00 : cfc: add w4, w4, #0x1
0.00 : d00: add x0, x0, #0x1
0.00 : d04: b cd0 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xc50>
0.00 : d08: mov w0, w4
0.00 : d0c: mov w1, w3
0.00 : d10: mov x2, #0xcd08 // #52488
0.00 : d14: movk x2, #0xd936, lsl #16
0.00 : d18: movk x2, #0xf81e, lsl #32
0.00 : d1c: ldr x2, [x2]
0.00 : d20: blr x2
0.00 : d24: str x0, [x29, #24]
0.00 : d28: ldr w0, [x29, #24]
0.00 : d2c: str w0, [x19]
0.00 : d30: ldr w0, [x29, #28]
0.00 : d34: str w0, [x20]
0.00 : d38: mov x0, x21
0.00 : d3c: b 4bc <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x43c>
0.00 : d40: add x5, x0, w2, sxtw
0.00 : d44: sub x5, x5, #0x3
0.00 : d48: sub w1, w1, w2
0.00 : d4c: add w1, w1, #0x3
0.00 : d50: mov w6, wzr
0.00 : d54: mov w7, wzr
0.00 : d58: mov w8, wzr
0.00 : d5c: cmp w8, #0xd
0.00 : d60: b.gt d8c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xd0c>
0.00 : d64: neg w7, w8
0.00 : d68: ldrb w7, [x5, w7, sxtw #0]
0.00 : d6c: and w7, w7, #0xc0
0.00 : d70: cmp w7, #0x80
0.00 : d74: cset x7, ne // ne = any
0.00 : d78: cbnz w7, d84 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xd04>
0.00 : d7c: add w8, w8, #0x1
0.00 : d80: b d5c <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xcdc>
0.00 : d84: sub x5, x5, w8, sxtw
0.00 : d88: asr w6, w8, #0
0.00 : d8c: cbz w7, f60 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xee0>
0.00 : d90: mov w7, wzr
0.00 : d94: add w1, w1, w6
0.00 : d98: cmp w7, w1
0.00 : d9c: b.ge f58 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xed8> // b.tcont
0.00 : da0: ldrb w6, [x5, w7, sxtw #0]
0.00 : da4: cmp w6, #0x80
0.00 : da8: b.ge dbc <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xd3c> // b.tcont
0.00 : dac: add w7, w7, #0x1
0.00 : db0: cmp w7, w1
0.00 : db4: b.ne da0 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xd20> // b.any
0.00 : db8: b f58 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xed8>
0.00 : dbc: and w8, w6, #0xe0
0.00 : dc0: cmp w8, #0xc0
0.00 : dc4: b.ne e10 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xd90> // b.any
0.00 : dc8: add w8, w7, #0x2
0.00 : dcc: cmp w8, w1
0.00 : dd0: b.gt f50 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xed0>
0.00 : dd4: add w9, w7, #0x1
0.00 : dd8: ldrb w9, [x5, w9, sxtw #0]
0.00 : ddc: and w9, w9, #0xc0
0.00 : de0: cmp w9, #0x80
0.00 : de4: b.ne f50 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xed0> // b.any
0.00 : de8: add w9, w7, #0x1
0.00 : dec: ldrb w9, [x5, w9, sxtw #0]
0.00 : df0: and w9, w9, #0x3f
0.00 : df4: and w6, w6, #0x1f
0.00 : df8: orr w6, w9, w6, lsl #6
0.00 : dfc: mov w9, #0x7ff // #2047
0.00 : e00: cmp w6, #0x80
0.00 : e04: ccmp w6, w9, #0x2, cs // cs = hs, nlast
0.00 : e08: b.ls f48 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xec8> // b.plast
0.00 : e0c: b f50 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xed0>
0.00 : e10: and w8, w6, #0xf0
0.00 : e14: cmp w8, #0xe0
0.00 : e18: b.ne ea8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xe28> // b.any
0.00 : e1c: add w8, w7, #0x3
0.00 : e20: cmp w8, w1
0.00 : e24: b.gt f50 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xed0>
0.00 : e28: add w9, w7, #0x1
0.00 : e2c: ldrb w9, [x5, w9, sxtw #0]
0.00 : e30: and w9, w9, #0x3f
0.00 : e34: lsl w9, w9, #6
0.00 : e38: and w6, w6, #0xf
0.00 : e3c: orr w6, w9, w6, lsl #12
0.00 : e40: add w9, w7, #0x2
0.00 : e44: ldrb w9, [x5, w9, sxtw #0]
0.00 : e48: and w9, w9, #0x3f
0.00 : e4c: orr w6, w6, w9
0.00 : e50: mov w9, #0xffff // #65535
0.00 : e54: cmp w6, #0x800
0.00 : e58: ccmp w6, w9, #0x2, cs // cs = hs, nlast
0.00 : e5c: cset x9, hi // hi = pmore
0.00 : e60: mov w10, #0xd7ff // #55295
0.00 : e64: mov w11, #0xe000 // #57344
0.00 : e68: cmp w6, w10
0.00 : e6c: ccmp w6, w11, #0x2, hi // hi = pmore
0.00 : e70: cset x6, cc // cc = lo, ul, last
0.00 : e74: orr w6, w9, w6
0.00 : e78: cbnz w6, f50 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xed0>
0.00 : e7c: add w6, w7, #0x1
0.00 : e80: ldrb w6, [x5, w6, sxtw #0]
0.00 : e84: and w6, w6, #0xc0
0.00 : e88: cmp w6, #0x80
0.00 : e8c: b.ne f50 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xed0> // b.any
0.00 : e90: add w6, w7, #0x2
0.00 : e94: ldrb w6, [x5, w6, sxtw #0]
0.00 : e98: and w6, w6, #0xc0
0.00 : e9c: cmp w6, #0x80
0.00 : ea0: b.eq f48 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xec8> // b.none
0.00 : ea4: b f50 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xed0>
0.00 : ea8: and w8, w6, #0xf8
0.00 : eac: cmp w8, #0xf0
0.00 : eb0: b.ne f50 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xed0> // b.any
0.00 : eb4: add w8, w7, #0x4
0.00 : eb8: cmp w8, w1
0.00 : ebc: b.gt f50 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xed0>
0.00 : ec0: add w9, w7, #0x1
0.00 : ec4: ldrb w9, [x5, w9, sxtw #0]
0.00 : ec8: and w9, w9, #0xc0
0.00 : ecc: cmp w9, #0x80
0.00 : ed0: b.ne f50 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xed0> // b.any
0.00 : ed4: add w9, w7, #0x2
0.00 : ed8: ldrb w9, [x5, w9, sxtw #0]
0.00 : edc: and w9, w9, #0xc0
0.00 : ee0: cmp w9, #0x80
0.00 : ee4: b.ne f50 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xed0> // b.any
0.00 : ee8: add w9, w7, #0x3
0.00 : eec: ldrb w9, [x5, w9, sxtw #0]
0.00 : ef0: and w9, w9, #0xc0
0.00 : ef4: cmp w9, #0x80
0.00 : ef8: b.ne f50 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xed0> // b.any
0.00 : efc: add w9, w7, #0x1
0.00 : f00: ldrb w9, [x5, w9, sxtw #0]
0.00 : f04: and w9, w9, #0x3f
0.00 : f08: lsl w9, w9, #12
0.00 : f0c: and w6, w6, #0x7
0.00 : f10: orr w6, w9, w6, lsl #18
0.00 : f14: add w9, w7, #0x2
0.00 : f18: ldrb w9, [x5, w9, sxtw #0]
0.00 : f1c: and w9, w9, #0x3f
0.00 : f20: orr w6, w6, w9, lsl #6
0.00 : f24: add w9, w7, #0x3
0.00 : f28: ldrb w9, [x5, w9, sxtw #0]
0.00 : f2c: and w9, w9, #0x3f
0.00 : f30: orr w6, w6, w9
0.00 : f34: mov w9, #0xffff // #65535
0.00 : f38: mov w10, #0x10ffff // #1114111
0.00 : f3c: cmp w6, w9
0.00 : f40: ccmp w6, w10, #0x2, hi // hi = pmore
0.00 : f44: b.hi f50 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xed0> // b.pmore
0.00 : f48: asr w7, w8, #0
0.00 : f4c: b d98 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xd18>
0.00 : f50: add x21, x5, w7, sxtw
0.00 : f54: b f64 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xee4>
0.00 : f58: add x21, x5, w1, sxtw
0.00 : f5c: b f64 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xee4>
0.00 : f60: sub x21, x5, #0xd
0.00 : f64: add x1, x0, w2, sxtw
0.00 : f68: cmp x1, x21
0.00 : f6c: b.ls fb0 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xf30> // b.plast
0.00 : f70: mov x1, x21
0.00 : f74: add x5, x0, w2, sxtw
0.00 : f78: cmp x5, x1
0.00 : f7c: b.ls fec <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xf6c> // b.plast
0.00 : f80: ldrb w5, [x1]
0.00 : f84: and w5, w5, #0xc0
0.00 : f88: cmp w5, #0x80
0.00 : f8c: b.ne f94 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xf14> // b.any
0.00 : f90: sub w3, w3, #0x1
0.00 : f94: ldrb w5, [x1]
0.00 : f98: and w5, w5, #0xf0
0.00 : f9c: cmp w5, #0xf0
0.00 : fa0: b.ne fa8 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xf28> // b.any
0.00 : fa4: sub w4, w4, #0x1
0.00 : fa8: add x1, x1, #0x1
0.00 : fac: b f74 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xef4>
0.00 : fb0: add x0, x0, w2, sxtw
0.00 : fb4: cmp x0, x21
0.00 : fb8: b.cs fec <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xf6c> // b.hs, b.nlast
0.00 : fbc: ldrb w1, [x0]
0.00 : fc0: and w1, w1, #0xc0
0.00 : fc4: cmp w1, #0x80
0.00 : fc8: b.ne fd0 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xf50> // b.any
0.00 : fcc: add w3, w3, #0x1
0.00 : fd0: ldrb w1, [x0]
0.00 : fd4: and w1, w1, #0xf0
0.00 : fd8: cmp w1, #0xf0
0.00 : fdc: b.ne fe4 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xf64> // b.any
0.00 : fe0: add w4, w4, #0x1
0.00 : fe4: add x0, x0, #0x1
0.00 : fe8: b fb4 <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0xf34>
0.00 : fec: mov w0, w4
0.00 : ff0: mov w1, w3
0.00 : ff4: mov x2, #0xcd08 // #52488
0.00 : ff8: movk x2, #0xd936, lsl #16
0.00 : ffc: movk x2, #0xf81e, lsl #32
0.00 : 1000: ldr x2, [x2]
0.00 : 1004: blr x2
0.00 : 1008: str x0, [x29, #24]
0.00 : 100c: ldr w0, [x29, #24]
0.00 : 1010: str w0, [x19]
0.00 : 1014: ldr w0, [x29, #28]
0.00 : 1018: str w0, [x20]
0.00 : 101c: mov x0, x21
0.00 : 1020: b 4bc <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x43c>
0.00 : 1024: mov x2, x19
0.00 : 1028: mov x3, x20
0.00 : 102c: mov x4, #0xccc0 // #52416
0.00 : 1030: movk x4, #0xd936, lsl #16
0.00 : 1034: movk x4, #0xf81e, lsl #32
0.00 : 1038: ldr x4, [x4]
0.00 : 103c: blr x4
0.00 : 1040: b 4bc <uint8* [System.Private.CoreLib] System.Text.Unicode.Utf8Utility::GetPointerToFirstInvalidByteArm64(uint8*,int32,int32&,int32&)[OptimizedTier1]+0x43c>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment