## Top method improvements

<details>
<summary>-132 (-19.10 % of base) - System.Text.Json.JsonWriterHelper:EscapeString(System.ReadOnlySpan`1[byte],System.Span`1[byte],int,System.Text.Encodings.Web.JavaScriptEncoder,byref,byref,bool)</summary>

```diff
 ; Assembly listing for method System.Text.Json.JsonWriterHelper:EscapeString(System.ReadOnlySpan`1[byte],System.Span`1[byte],int,System.Text.Encodings.Web.JavaScriptEncoder,byref,byref,bool) (FullOpts)
 ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 11 single block inlinees; 12 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[byte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[byte]>
-;  V02 arg2         [V02,T00] ( 25, 27.04)     int  ->  rbx        
-;  V03 arg3         [V03,T09] (  5,  4   )     ref  ->  [rbp-0x50]  class-hnd single-def <System.Text.Encodings.Web.JavaScriptEncoder>
-;  V04 arg4         [V04,T04] (  9, 11   )   byref  ->  r14         single-def
-;  V05 arg5         [V05,T03] ( 14, 11.50)   byref  ->  r15         single-def
-;  V06 arg6         [V06,T28] (  2,  1   )   ubyte  ->  [rbp+0x20]  single-def
+;  V02 arg2         [V02,T02] ( 18, 12   )     int  ->  rbx        
+;  V03 arg3         [V03,T10] (  5,  4   )     ref  ->  [rbp-0x50]  class-hnd single-def <System.Text.Encodings.Web.JavaScriptEncoder>
+;  V04 arg4         [V04,T05] (  7, 10.92)   byref  ->  r14         single-def
+;  V05 arg5         [V05,T04] ( 10, 11.42)   byref  ->  r15         single-def
+;  V06 arg6         [V06,T29] (  2,  1   )   ubyte  ->  [rbp+0x20]  single-def
 ;* V07 loc0         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[byte]>
-;  V08 loc1         [V08,T01] ( 10, 16   )   ubyte  ->  rdi        
+;  V08 loc1         [V08,T01] (  5, 15.84)   ubyte  ->  rdi        
 ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[byte]>
 ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[byte]>
-;  V12 tmp3         [V12,T02] (  6, 12   )     int  ->   r8         "Span.get_Item index"
+;  V12 tmp3         [V12,T03] (  3, 11.88)     int  ->  rsi         "Span.get_Item index"
 ;* V13 tmp4         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[byte]>
 ;* V14 tmp5         [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp6         [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[byte]>
 ;* V16 tmp7         [V16    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp8         [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp9         [V18    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp10        [V19    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[byte]>
-;  V20 tmp11        [V20,T18] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V21 tmp12        [V21,T22] (  2,  2   )     int  ->   r8         "Inlining Arg"
+;  V20 tmp11        [V20,T19] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V21 tmp12        [V21,T23] (  2,  2   )     int  ->   r8         "Inlining Arg"
 ;* V22 tmp13        [V22    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[byte]>
-;  V23 tmp14        [V23,T16] (  3,  3   )   byref  ->  r12         single-def "Inlining Arg"
-;  V24 tmp15        [V24,T10] (  4,  4   )     int  ->  r13         "Inlining Arg"
+;  V23 tmp14        [V23,T17] (  3,  3   )   byref  ->  r12         single-def "Inlining Arg"
+;  V24 tmp15        [V24,T11] (  4,  4   )     int  ->  r13         "Inlining Arg"
 ;* V25 tmp16        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
 ;* V26 tmp17        [V26    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[byte]>
 ;  V27 tmp18        [V27    ] (  2,  1   )     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;  V28 tmp19        [V28    ] (  3,  1.50)     int  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;  V29 tmp20        [V29,T26] (  3,  1.50)     int  ->  rax         "Inline stloc first use temp"
+;  V29 tmp20        [V29,T27] (  3,  1.50)     int  ->  rax         "Inline stloc first use temp"
 ;* V30 tmp21        [V30    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[byte]>
-;  V31 tmp22        [V31,T11] (  4,  4   )     int  ->  rdi         "Inlining Arg"
+;  V31 tmp22        [V31,T12] (  4,  4   )     int  ->  rdi         "Inlining Arg"
 ;* V32 tmp23        [V32    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[byte]>
-;  V33 tmp24        [V33,T19] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
-;  V34 tmp25        [V34,T23] (  2,  2   )     int  ->  r13         "Inlining Arg"
+;  V33 tmp24        [V33,T20] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V34 tmp25        [V34,T24] (  2,  2   )     int  ->  r13         "Inlining Arg"
 ;* V35 tmp26        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[byte]>
 ;* V36 tmp27        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[byte]>
-;  V37 tmp28        [V37,T12] (  4,  4   )     int  ->  rsi         "Inlining Arg"
+;  V37 tmp28        [V37,T13] (  4,  4   )     int  ->  rsi         "Inlining Arg"
 ;* V38 tmp29        [V38    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[byte]>
-;  V39 tmp30        [V39,T20] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V40 tmp31        [V40,T24] (  2,  2   )     int  ->   r8         "Inlining Arg"
+;  V39 tmp30        [V39,T21] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V40 tmp31        [V40,T25] (  2,  2   )     int  ->   r8         "Inlining Arg"
 ;* V41 tmp32        [V41    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[byte]>
-;  V42 tmp33        [V42,T17] (  3,  3   )   byref  ->  r12         single-def "Inlining Arg"
-;  V43 tmp34        [V43,T13] (  4,  4   )     int  ->  r13         "Inlining Arg"
+;  V42 tmp33        [V42,T18] (  3,  3   )   byref  ->  r12         single-def "Inlining Arg"
+;  V43 tmp34        [V43,T14] (  4,  4   )     int  ->  r13         "Inlining Arg"
 ;* V44 tmp35        [V44    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.Encodings.Web.DefaultJavaScriptEncoder>
 ;* V45 tmp36        [V45    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[byte]>
 ;  V46 tmp37        [V46    ] (  2,  1   )     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;  V47 tmp38        [V47    ] (  3,  1.50)     int  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;  V48 tmp39        [V48,T27] (  3,  1.50)     int  ->  rax         "Inline stloc first use temp"
+;  V48 tmp39        [V48,T28] (  3,  1.50)     int  ->  rax         "Inline stloc first use temp"
 ;* V49 tmp40        [V49    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[byte]>
-;  V50 tmp41        [V50,T14] (  4,  4   )     int  ->  rdi         "Inlining Arg"
+;  V50 tmp41        [V50,T15] (  4,  4   )     int  ->  rdi         "Inlining Arg"
 ;* V51 tmp42        [V51    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[byte]>
-;  V52 tmp43        [V52,T21] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
-;  V53 tmp44        [V53,T25] (  2,  2   )     int  ->  r13         "Inlining Arg"
-;  V54 tmp45        [V54,T08] (  6,  7   )   byref  ->  [rbp-0x58]  single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V55 tmp46        [V55,T05] (  9,  7.79)     int  ->  r13         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V56 tmp47        [V56,T07] (  8,  7   )   byref  ->  [rbp-0x60]  "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V57 tmp48        [V57,T06] (  9,  7.50)     int  ->  r12         "field V01._length (fldOffset=0x8)" P-INDEP
+;  V52 tmp43        [V52,T22] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V53 tmp44        [V53,T26] (  2,  2   )     int  ->  r13         "Inlining Arg"
+;  V54 tmp45        [V54,T09] (  5,  6.96)   byref  ->  [rbp-0x58]  single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V55 tmp46        [V55,T06] (  8,  8.21)     int  ->  r13         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V56 tmp47        [V56,T08] (  6,  6.96)   byref  ->  [rbp-0x60]  "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V57 tmp48        [V57,T07] (  7,  7.46)     int  ->  r12         "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V58 tmp49        [V58    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V59 tmp50        [V59    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V60 tmp51        [V60    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V62 tmp53        [V62    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V64 tmp55        [V64    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V65 tmp56        [V65    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V66 tmp57        [V66    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V67 tmp58        [V67    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V68 tmp59        [V68    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V19._reference (fldOffset=0x0)" P-INDEP
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref    "field V19._length (fldOffset=0x8)" P-INDEP
 ;* V70 tmp61        [V70    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V22._reference (fldOffset=0x0)" P-INDEP
 ;* V71 tmp62        [V71    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V72 tmp63        [V72    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V25._reference (fldOffset=0x0)" P-INDEP
 ;* V73 tmp64        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V25._length (fldOffset=0x8)" P-INDEP
 ;* V74 tmp65        [V74    ] (  0,  0   )   byref  ->  zero-ref    "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V75 tmp66        [V75    ] (  0,  0   )     int  ->  zero-ref    "field V26._length (fldOffset=0x8)" P-INDEP
 ;* V76 tmp67        [V76    ] (  0,  0   )   byref  ->  zero-ref    "field V30._reference (fldOffset=0x0)" P-INDEP
 ;* V77 tmp68        [V77    ] (  0,  0   )     int  ->  zero-ref    "field V30._length (fldOffset=0x8)" P-INDEP
 ;* V78 tmp69        [V78    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V79 tmp70        [V79    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V80 tmp71        [V80    ] (  0,  0   )   byref  ->  zero-ref    "field V35._reference (fldOffset=0x0)" P-INDEP
 ;* V81 tmp72        [V81    ] (  0,  0   )     int  ->  zero-ref    "field V35._length (fldOffset=0x8)" P-INDEP
 ;* V82 tmp73        [V82    ] (  0,  0   )   byref  ->  zero-ref    "field V36._reference (fldOffset=0x0)" P-INDEP
 ;* V83 tmp74        [V83    ] (  0,  0   )     int  ->  zero-ref    "field V36._length (fldOffset=0x8)" P-INDEP
 ;* V84 tmp75        [V84    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V38._reference (fldOffset=0x0)" P-INDEP
 ;* V85 tmp76        [V85    ] (  0,  0   )     int  ->  zero-ref    "field V38._length (fldOffset=0x8)" P-INDEP
 ;* V86 tmp77        [V86    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V41._reference (fldOffset=0x0)" P-INDEP
 ;* V87 tmp78        [V87    ] (  0,  0   )     int  ->  zero-ref    "field V41._length (fldOffset=0x8)" P-INDEP
 ;* V88 tmp79        [V88    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V45._reference (fldOffset=0x0)" P-INDEP
 ;* V89 tmp80        [V89    ] (  0,  0   )     int  ->  zero-ref    "field V45._length (fldOffset=0x8)" P-INDEP
 ;* V90 tmp81        [V90    ] (  0,  0   )   byref  ->  zero-ref    "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V91 tmp82        [V91    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x8)" P-INDEP
 ;* V92 tmp83        [V92    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V51._reference (fldOffset=0x0)" P-INDEP
 ;* V93 tmp84        [V93    ] (  0,  0   )     int  ->  zero-ref    "field V51._length (fldOffset=0x8)" P-INDEP
-;  V94 cse0         [V94,T15] (  6,  3   )     int  ->  rbx         multi-def "CSE #02: moderate"
+;  V94 cse0         [V94,T16] (  6,  3   )     int  ->  rbx         multi-def "CSE #03: moderate"
+;  V95 rat0         [V95,T00] (  6, 16.59)    long  ->  rbx         "Widened IV V02"
 ;
 ; Lcl frame size = 72
 
 G_M1454_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 72
        lea      rbp, [rsp+0x70]
        mov      gword ptr [rbp-0x50], r9
        mov      rax, rdi
        mov      r13d, esi
        mov      r12d, ecx
        mov      rcx, rdx
        mov      ebx, r8d
        mov      r14, bword ptr [rbp+0x10]
        mov      r15, bword ptr [rbp+0x18]
 						;; size=46 bbWeight=1 PerfScore 11.00
 G_M1454_IG02:
        cmp      ebx, r13d
-       ja       G_M1454_IG20
+       ja       G_M1454_IG15
        cmp      ebx, r12d
-       ja       G_M1454_IG21
+       ja       G_M1454_IG16
        mov      edx, ebx
        mov      bword ptr [rbp-0x60], rcx
        mov      rdi, rcx
        mov      bword ptr [rbp-0x58], rax
        mov      rsi, rax
        mov      r8, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,nuint)
        call     [r8]System.SpanHelpers:Memmove(byref,byref,nuint)
        mov      dword ptr [r15], ebx
        mov      dword ptr [r14], ebx
        mov      rax, gword ptr [rbp-0x50]
        test     rax, rax
-       jne      G_M1454_IG17
+       jne      G_M1454_IG12
 						;; size=66 bbWeight=1 PerfScore 12.75
 G_M1454_IG03:
        cmp      ebx, r13d
        jge      SHORT G_M1454_IG08
-       test     ebx, ebx
-       jl       G_M1454_IG13
-						;; size=13 bbWeight=0.25 PerfScore 0.62
+       mov      ebx, ebx
+						;; size=7 bbWeight=0.25 PerfScore 0.38
 G_M1454_IG04:
-       mov      esi, ebx
        mov      rax, bword ptr [rbp-0x58]
-       movzx    rdi, byte  ptr [rax+rsi]
+       movzx    rdi, byte  ptr [rax+rbx]
        cmp      edi, 127
-       jg       G_M1454_IG14
+       jg       SHORT G_M1454_IG09
        mov      esi, edi
        mov      rdx, 0xD1FFAB1E      ; static handle
        cmp      byte  ptr [rdx+rsi], 0
        je       SHORT G_M1454_IG06
-						;; size=38 bbWeight=3.96 PerfScore 31.68
+						;; size=32 bbWeight=3.96 PerfScore 30.69
 G_M1454_IG05:
-       mov      r8d, dword ptr [r15]
-       cmp      r8d, r12d
-       jae      G_M1454_IG22
-       mov      esi, r8d
+       mov      esi, dword ptr [r15]
+       cmp      esi, r12d
+       jae      G_M1454_IG17
        mov      rcx, bword ptr [rbp-0x60]
        mov      byte  ptr [rcx+rsi], dil
        inc      dword ptr [r15]
        mov      bword ptr [rbp-0x60], rcx
        jmp      SHORT G_M1454_IG07
-						;; size=32 bbWeight=1.98 PerfScore 22.77
+						;; size=29 bbWeight=1.98 PerfScore 22.28
 G_M1454_IG06:
        mov      rcx, bword ptr [rbp-0x60]
        mov      bword ptr [rbp-0x60], rcx
        mov      rsi, rcx
        mov      edx, r12d
        mov      rcx, r15
        mov      r8, 0xD1FFAB1E      ; code for System.Text.Json.JsonWriterHelper:EscapeNextBytes(byte,System.Span`1[byte],byref)
        call     [r8]System.Text.Json.JsonWriterHelper:EscapeNextBytes(byte,System.Span`1[byte],byref)
 						;; size=30 bbWeight=1.98 PerfScore 11.88
 G_M1454_IG07:
        inc      ebx
        inc      dword ptr [r14]
        cmp      ebx, r13d
        jl       SHORT G_M1454_IG04
 						;; size=10 bbWeight=3.96 PerfScore 17.82
 G_M1454_IG08:
        add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M1454_IG09:
-       mov      esi, edi
-       mov      rdx, 0xD1FFAB1E      ; static handle
-       cmp      byte  ptr [rdx+rsi], 0
-       je       SHORT G_M1454_IG11
-						;; size=18 bbWeight=0.04 PerfScore 0.14
-G_M1454_IG10:
-       mov      r8d, dword ptr [r15]
-       cmp      r8d, r12d
-       jae      G_M1454_IG22
-       mov      esi, r8d
-       mov      rcx, bword ptr [rbp-0x60]
-       mov      byte  ptr [rcx+rsi], dil
-       inc      dword ptr [r15]
-       jmp      SHORT G_M1454_IG12
-						;; size=28 bbWeight=0.02 PerfScore 0.21
-G_M1454_IG11:
-       mov      rcx, bword ptr [rbp-0x60]
-       mov      bword ptr [rbp-0x60], rcx
-       mov      rsi, rcx
-       mov      edx, r12d
-       mov      rcx, r15
-       mov      r8, 0xD1FFAB1E      ; code for System.Text.Json.JsonWriterHelper:EscapeNextBytes(byte,System.Span`1[byte],byref)
-       call     [r8]System.Text.Json.JsonWriterHelper:EscapeNextBytes(byte,System.Span`1[byte],byref)
-       mov      rcx, bword ptr [rbp-0x60]
-						;; size=34 bbWeight=0.02 PerfScore 0.14
-G_M1454_IG12:
-       inc      ebx
-       inc      dword ptr [r14]
-       cmp      ebx, r13d
-       mov      bword ptr [rbp-0x60], rcx
-       jge      SHORT G_M1454_IG08
-						;; size=14 bbWeight=0.04 PerfScore 0.22
-G_M1454_IG13:
-       cmp      ebx, r13d
-       jae      G_M1454_IG22
-       mov      esi, ebx
-       mov      rax, bword ptr [rbp-0x58]
-       movzx    rdi, byte  ptr [rax+rsi]
-       cmp      edi, 127
-       jle      SHORT G_M1454_IG09
-						;; size=25 bbWeight=0.04 PerfScore 0.23
-G_M1454_IG14:
        mov      esi, dword ptr [r15]
        cmp      esi, r12d
-       ja       G_M1454_IG20
-       mov      edx, esi
-       mov      rcx, rdx
+       ja       G_M1454_IG15
+       mov      ecx, esi
        add      rcx, bword ptr [rbp-0x60]
        mov      r8d, r12d
        sub      r8d, esi
        cmp      ebx, r13d
-       ja       G_M1454_IG20
+       ja       G_M1454_IG15
        mov      r12d, ebx
        add      r12, bword ptr [rbp-0x58]
        sub      r13d, ebx
        lea      rsi, [rbp-0x48]
        mov      qword ptr [rsp], rsi
        movzx    rbx, byte  ptr [rbp+0x20]
        mov      dword ptr [rsp+0x08], ebx
        mov      rsi, r12
        mov      edx, r13d
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      rdi, gword ptr [rdi]
        lea      r9, [rbp-0x40]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Encodings.Web.TextEncoder:EncodeUtf8(System.ReadOnlySpan`1[byte],System.Span`1[byte],byref,byref,bool):int:this
        call     [rax]System.Text.Encodings.Web.TextEncoder:EncodeUtf8(System.ReadOnlySpan`1[byte],System.Span`1[byte],byref,byref,bool):int:this
        test     eax, eax
-       je       SHORT G_M1454_IG16
+       je       SHORT G_M1454_IG11
        cmp      eax, 2
-       jne      SHORT G_M1454_IG15
+       jne      SHORT G_M1454_IG10
        test     ebx, ebx
-       je       SHORT G_M1454_IG16
-						;; size=110 bbWeight=0.50 PerfScore 10.88
-G_M1454_IG15:
+       je       SHORT G_M1454_IG11
+						;; size=107 bbWeight=0.50 PerfScore 10.75
+G_M1454_IG10:
        mov      edi, dword ptr [rbp-0x48]
        cmp      edi, r13d
-       ja       G_M1454_IG20
+       ja       G_M1454_IG15
        mov      esi, edi
        add      rsi, r12
        sub      r13d, edi
        mov      rdi, rsi
        mov      esi, r13d
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowArgumentException_InvalidUTF8(System.ReadOnlySpan`1[byte])
        call     [rax]System.Text.Json.ThrowHelper:ThrowArgumentException_InvalidUTF8(System.ReadOnlySpan`1[byte])
 						;; size=38 bbWeight=0.50 PerfScore 3.38
-G_M1454_IG16:
+G_M1454_IG11:
        mov      esi, dword ptr [rbp-0x48]
        add      dword ptr [r15], esi
        mov      esi, dword ptr [rbp-0x40]
        add      dword ptr [r14], esi
        jmp      G_M1454_IG08
 						;; size=17 bbWeight=0.50 PerfScore 5.00
-G_M1454_IG17:
+G_M1454_IG12:
        mov      ecx, ebx
        add      rcx, bword ptr [rbp-0x60]
        mov      r8d, r12d
        sub      r8d, ebx
+       cmp      ebx, r13d
+       ja       SHORT G_M1454_IG15
        mov      r12d, ebx
        add      r12, bword ptr [rbp-0x58]
        sub      r13d, ebx
        lea      rsi, [rbp-0x38]
        mov      qword ptr [rsp], rsi
        movzx    rbx, byte  ptr [rbp+0x20]
        mov      dword ptr [rsp+0x08], ebx
        mov      rsi, r12
        mov      edx, r13d
        lea      r9, [rbp-0x30]
        mov      rdi, rax
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x18]System.Text.Encodings.Web.TextEncoder:EncodeUtf8(System.ReadOnlySpan`1[byte],System.Span`1[byte],byref,byref,bool):int:this
        test     eax, eax
-       je       SHORT G_M1454_IG19
+       je       SHORT G_M1454_IG14
        cmp      eax, 2
-       jne      SHORT G_M1454_IG18
+       jne      SHORT G_M1454_IG13
        test     ebx, ebx
-       je       SHORT G_M1454_IG19
-						;; size=74 bbWeight=0.50 PerfScore 9.38
-G_M1454_IG18:
+       je       SHORT G_M1454_IG14
+						;; size=79 bbWeight=0.50 PerfScore 10.00
+G_M1454_IG13:
        mov      edi, dword ptr [rbp-0x38]
        cmp      edi, r13d
-       ja       SHORT G_M1454_IG20
+       ja       SHORT G_M1454_IG15
        mov      esi, edi
        add      rsi, r12
        sub      r13d, edi
        mov      rdi, rsi
        mov      esi, r13d
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowArgumentException_InvalidUTF8(System.ReadOnlySpan`1[byte])
        call     [rax]System.Text.Json.ThrowHelper:ThrowArgumentException_InvalidUTF8(System.ReadOnlySpan`1[byte])
 						;; size=34 bbWeight=0.50 PerfScore 3.38
-G_M1454_IG19:
+G_M1454_IG14:
        mov      eax, dword ptr [rbp-0x38]
        add      dword ptr [r15], eax
        mov      eax, dword ptr [rbp-0x30]
        add      dword ptr [r14], eax
        jmp      G_M1454_IG08
 						;; size=17 bbWeight=0.50 PerfScore 5.00
-G_M1454_IG20:
+G_M1454_IG15:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M1454_IG21:
+G_M1454_IG16:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M1454_IG22:
+G_M1454_IG17:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 691, prolog size 46, PerfScore 150.72, instruction count 197, allocated bytes for code 691 (MethodHash=51ebfa51) for method System.Text.Json.JsonWriterHelper:EscapeString(System.ReadOnlySpan`1[byte],System.Span`1[byte],int,System.Text.Encodings.Web.JavaScriptEncoder,byref,byref,bool) (FullOpts)
+; Total bytes of code 559, prolog size 46, PerfScore 148.54, instruction count 163, allocated bytes for code 559 (MethodHash=51ebfa51) for method System.Text.Json.JsonWriterHelper:EscapeString(System.ReadOnlySpan`1[byte],System.Span`1[byte],int,System.Text.Encodings.Web.JavaScriptEncoder,byref,byref,bool) (FullOpts)
 ; ============================================================
```

</details>


<details>
<summary>-124 (-17.56 % of base) - System.Text.Json.JsonWriterHelper:EscapeString(System.ReadOnlySpan`1[char],System.Span`1[char],int,System.Text.Encodings.Web.JavaScriptEncoder,byref,byref,bool)</summary>

```diff
 ; Assembly listing for method System.Text.Json.JsonWriterHelper:EscapeString(System.ReadOnlySpan`1[char],System.Span`1[char],int,System.Text.Encodings.Web.JavaScriptEncoder,byref,byref,bool) (FullOpts)
 ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 9 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[char]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[char]>
-;  V02 arg2         [V02,T00] ( 23, 26.04)     int  ->  rbx        
-;  V03 arg3         [V03,T09] (  5,  4   )     ref  ->  [rbp-0x58]  class-hnd single-def <System.Text.Encodings.Web.JavaScriptEncoder>
-;  V04 arg4         [V04,T04] (  9, 11   )   byref  ->  r14         single-def
-;  V05 arg5         [V05,T03] ( 14, 11.50)   byref  ->  r15         single-def
-;  V06 arg6         [V06,T23] (  2,  1   )   ubyte  ->  [rbp+0x20]  single-def
+;  V02 arg2         [V02,T02] ( 16, 11   )     int  ->  rbx        
+;  V03 arg3         [V03,T10] (  5,  4   )     ref  ->  [rbp-0x58]  class-hnd single-def <System.Text.Encodings.Web.JavaScriptEncoder>
+;  V04 arg4         [V04,T05] (  7, 10.92)   byref  ->  r14         single-def
+;  V05 arg5         [V05,T04] ( 10, 11.42)   byref  ->  r15         single-def
+;  V06 arg6         [V06,T24] (  2,  1   )   ubyte  ->  [rbp+0x20]  single-def
 ;* V07 loc0         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[char]>
-;  V08 loc1         [V08,T01] ( 10, 16   )  ushort  ->  rdi        
+;  V08 loc1         [V08,T01] (  5, 15.84)  ushort  ->  rdi        
 ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[char]>
 ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[char]>
-;  V12 tmp3         [V12,T02] (  6, 12   )     int  ->  registers   "Span.get_Item index"
+;  V12 tmp3         [V12,T03] (  3, 11.88)     int  ->  rsi         "Span.get_Item index"
 ;* V13 tmp4         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[char]>
 ;* V14 tmp5         [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp6         [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[char]>
 ;* V16 tmp7         [V16    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp8         [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp9         [V18    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp10        [V19    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[char]>
-;  V20 tmp11        [V20,T17] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V21 tmp12        [V21,T19] (  2,  2   )     int  ->   r8         "Inlining Arg"
+;  V20 tmp11        [V20,T18] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V21 tmp12        [V21,T20] (  2,  2   )     int  ->   r8         "Inlining Arg"
 ;* V22 tmp13        [V22    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[char]>
-;  V23 tmp14        [V23,T13] (  3,  2   )   byref  ->  r12         single-def "Inlining Arg"
-;  V24 tmp15        [V24,T15] (  3,  2   )     int  ->  r13         "Inlining Arg"
+;  V23 tmp14        [V23,T14] (  3,  2   )   byref  ->  r12         single-def "Inlining Arg"
+;  V24 tmp15        [V24,T16] (  3,  2   )     int  ->  r13         "Inlining Arg"
 ;* V25 tmp16        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[char]>
 ;* V26 tmp17        [V26    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[char]>
 ;  V27 tmp18        [V27    ] (  2,  1   )     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;  V28 tmp19        [V28    ] (  4,  1   )     int  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;  V29 tmp20        [V29,T21] (  3,  1.50)     int  ->  rax         "Inline stloc first use temp"
+;  V29 tmp20        [V29,T22] (  3,  1.50)     int  ->  rax         "Inline stloc first use temp"
 ;* V30 tmp21        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[byte]>
 ;* V31 tmp22        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[byte]>
-;  V32 tmp23        [V32,T10] (  4,  4   )     int  ->  rsi         "Inlining Arg"
+;  V32 tmp23        [V32,T11] (  4,  4   )     int  ->  rsi         "Inlining Arg"
 ;* V33 tmp24        [V33    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[char]>
-;  V34 tmp25        [V34,T18] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V35 tmp26        [V35,T20] (  2,  2   )     int  ->  r12         "Inlining Arg"
+;  V34 tmp25        [V34,T19] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V35 tmp26        [V35,T21] (  2,  2   )     int  ->  r12         "Inlining Arg"
 ;* V36 tmp27        [V36    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[char]>
-;  V37 tmp28        [V37,T14] (  3,  2   )   byref  ->  [rbp-0x60]  spill-single-def "Inlining Arg"
-;  V38 tmp29        [V38,T16] (  3,  2   )     int  ->  r13         "Inlining Arg"
+;  V37 tmp28        [V37,T15] (  3,  2   )   byref  ->  [rbp-0x60]  spill-single-def "Inlining Arg"
+;  V38 tmp29        [V38,T17] (  3,  2   )     int  ->  r13         "Inlining Arg"
 ;* V39 tmp30        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.Encodings.Web.DefaultJavaScriptEncoder>
 ;* V40 tmp31        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[char]>
 ;  V41 tmp32        [V41    ] (  2,  1   )     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;  V42 tmp33        [V42    ] (  4,  1   )     int  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;  V43 tmp34        [V43,T22] (  3,  1.50)     int  ->  rax         "Inline stloc first use temp"
-;  V44 tmp35        [V44,T08] (  6,  7   )   byref  ->  [rbp-0x68]  single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V45 tmp36        [V45,T05] (  9,  7.79)     int  ->  r13         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V46 tmp37        [V46,T07] (  8,  7   )   byref  ->  [rbp-0x70]  "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V47 tmp38        [V47,T06] (  9,  7.50)     int  ->  r12         "field V01._length (fldOffset=0x8)" P-INDEP
+;  V43 tmp34        [V43,T23] (  3,  1.50)     int  ->  rax         "Inline stloc first use temp"
+;  V44 tmp35        [V44,T09] (  5,  6.96)   byref  ->  [rbp-0x68]  single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V45 tmp36        [V45,T06] (  8,  8.21)     int  ->  r13         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V46 tmp37        [V46,T08] (  6,  6.96)   byref  ->  [rbp-0x70]  "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V47 tmp38        [V47,T07] (  7,  7.46)     int  ->  r12         "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V48 tmp39        [V48    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V49 tmp40        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V50 tmp41        [V50    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V51 tmp42        [V51    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V52 tmp43        [V52    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V54 tmp45        [V54    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V56 tmp47        [V56    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V57 tmp48        [V57    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V58 tmp49        [V58    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V19._reference (fldOffset=0x0)" P-INDEP
 ;* V59 tmp50        [V59    ] (  0,  0   )     int  ->  zero-ref    "field V19._length (fldOffset=0x8)" P-INDEP
 ;* V60 tmp51        [V60    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V22._reference (fldOffset=0x0)" P-INDEP
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V62 tmp53        [V62    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V25._reference (fldOffset=0x0)" P-INDEP
 ;* V63 tmp54        [V63    ] (  0,  0   )     int  ->  zero-ref    "field V25._length (fldOffset=0x8)" P-INDEP
 ;* V64 tmp55        [V64    ] (  0,  0   )   byref  ->  zero-ref    "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V65 tmp56        [V65    ] (  0,  0   )     int  ->  zero-ref    "field V26._length (fldOffset=0x8)" P-INDEP
 ;* V66 tmp57        [V66    ] (  0,  0   )   byref  ->  zero-ref    "field V30._reference (fldOffset=0x0)" P-INDEP
 ;* V67 tmp58        [V67    ] (  0,  0   )     int  ->  zero-ref    "field V30._length (fldOffset=0x8)" P-INDEP
 ;* V68 tmp59        [V68    ] (  0,  0   )   byref  ->  zero-ref    "field V31._reference (fldOffset=0x0)" P-INDEP
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V70 tmp61        [V70    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V33._reference (fldOffset=0x0)" P-INDEP
 ;* V71 tmp62        [V71    ] (  0,  0   )     int  ->  zero-ref    "field V33._length (fldOffset=0x8)" P-INDEP
 ;* V72 tmp63        [V72    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V36._reference (fldOffset=0x0)" P-INDEP
 ;* V73 tmp64        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V36._length (fldOffset=0x8)" P-INDEP
 ;* V74 tmp65        [V74    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V75 tmp66        [V75    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
-;  V76 cse0         [V76,T12] (  4,  3   )    long  ->  [rbp-0x50]  spill-single-def "CSE #02: moderate"
-;  V77 cse1         [V77,T11] (  6,  3   )     int  ->  rbx         multi-def "CSE #03: moderate"
+;  V76 cse0         [V76,T13] (  4,  3   )    long  ->  [rbp-0x50]  spill-single-def "CSE #02: moderate"
+;  V77 cse1         [V77,T12] (  6,  3   )     int  ->  rbx         multi-def "CSE #04: moderate"
+;  V78 rat0         [V78,T00] (  6, 16.59)    long  ->  rbx         "Widened IV V02"
 ;
 ; Lcl frame size = 88
 
 G_M33326_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 88
        lea      rbp, [rsp+0x80]
        mov      gword ptr [rbp-0x58], r9
        mov      rax, rdi
        mov      r13d, esi
        mov      r12d, ecx
        mov      rcx, rdx
        mov      ebx, r8d
        mov      r14, bword ptr [rbp+0x10]
        mov      r15, bword ptr [rbp+0x18]
 						;; size=49 bbWeight=1 PerfScore 11.00
 G_M33326_IG02:
        cmp      ebx, r13d
-       ja       G_M33326_IG18
+       ja       G_M33326_IG13
        cmp      ebx, r12d
-       ja       G_M33326_IG19
+       ja       G_M33326_IG14
        mov      r8d, ebx
        add      r8, r8
        mov      qword ptr [rbp-0x50], r8
        mov      rdx, r8
        mov      bword ptr [rbp-0x70], rcx
        mov      rdi, rcx
        mov      bword ptr [rbp-0x68], rax
        mov      rsi, rax
        mov      r9, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,nuint)
        call     [r9]System.SpanHelpers:Memmove(byref,byref,nuint)
        mov      dword ptr [r15], ebx
        mov      dword ptr [r14], ebx
        mov      rax, gword ptr [rbp-0x58]
        test     rax, rax
-       jne      G_M33326_IG16
+       jne      G_M33326_IG11
 						;; size=77 bbWeight=1 PerfScore 14.25
 G_M33326_IG03:
        cmp      ebx, r13d
        jge      SHORT G_M33326_IG08
-       test     ebx, ebx
-       jl       G_M33326_IG13
-						;; size=13 bbWeight=0.25 PerfScore 0.62
+       mov      ebx, ebx
+						;; size=7 bbWeight=0.25 PerfScore 0.38
 G_M33326_IG04:
-       mov      esi, ebx
        mov      r8, bword ptr [rbp-0x68]
-       movzx    rdi, word  ptr [r8+2*rsi]
+       movzx    rdi, word  ptr [r8+2*rbx]
        cmp      edi, 127
-       jg       G_M33326_IG14
+       jg       SHORT G_M33326_IG09
        mov      esi, edi
        mov      rdx, 0xD1FFAB1E      ; static handle
        cmp      byte  ptr [rdx+rsi], 0
        je       SHORT G_M33326_IG06
-						;; size=38 bbWeight=3.96 PerfScore 31.68
+						;; size=32 bbWeight=3.96 PerfScore 30.69
 G_M33326_IG05:
-       mov      eax, dword ptr [r15]
-       cmp      eax, r12d
-       jae      G_M33326_IG22
-       mov      esi, eax
+       mov      esi, dword ptr [r15]
+       cmp      esi, r12d
+       jae      G_M33326_IG17
        mov      rcx, bword ptr [rbp-0x70]
        mov      word  ptr [rcx+2*rsi], di
        inc      dword ptr [r15]
        mov      bword ptr [rbp-0x70], rcx
        jmp      SHORT G_M33326_IG07
-						;; size=31 bbWeight=1.98 PerfScore 22.77
+						;; size=29 bbWeight=1.98 PerfScore 22.28
 G_M33326_IG06:
        mov      rcx, bword ptr [rbp-0x70]
        mov      bword ptr [rbp-0x70], rcx
        mov      rsi, rcx
        mov      edx, r12d
        mov      rcx, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonWriterHelper:EscapeNextChars(char,System.Span`1[char],byref)
        call     [rax]System.Text.Json.JsonWriterHelper:EscapeNextChars(char,System.Span`1[char],byref)
 						;; size=29 bbWeight=1.98 PerfScore 11.88
 G_M33326_IG07:
        inc      ebx
        inc      dword ptr [r14]
        cmp      ebx, r13d
        jl       SHORT G_M33326_IG04
 						;; size=10 bbWeight=3.96 PerfScore 17.82
 G_M33326_IG08:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M33326_IG09:
-       mov      esi, edi
-       mov      rdx, 0xD1FFAB1E      ; static handle
-       cmp      byte  ptr [rdx+rsi], 0
-       je       SHORT G_M33326_IG11
-						;; size=18 bbWeight=0.04 PerfScore 0.14
-G_M33326_IG10:
        mov      esi, dword ptr [r15]
        cmp      esi, r12d
-       jae      G_M33326_IG22
-       mov      rcx, bword ptr [rbp-0x70]
-       mov      word  ptr [rcx+2*rsi], di
-       inc      dword ptr [r15]
-       jmp      SHORT G_M33326_IG12
-						;; size=25 bbWeight=0.02 PerfScore 0.21
-G_M33326_IG11:
-       mov      rcx, bword ptr [rbp-0x70]
-       mov      bword ptr [rbp-0x70], rcx
-       mov      rsi, rcx
-       mov      edx, r12d
-       mov      rcx, r15
-       mov      r8, 0xD1FFAB1E      ; code for System.Text.Json.JsonWriterHelper:EscapeNextChars(char,System.Span`1[char],byref)
-       call     [r8]System.Text.Json.JsonWriterHelper:EscapeNextChars(char,System.Span`1[char],byref)
-       mov      rcx, bword ptr [rbp-0x70]
-						;; size=34 bbWeight=0.02 PerfScore 0.14
-G_M33326_IG12:
-       inc      ebx
-       inc      dword ptr [r14]
-       cmp      ebx, r13d
-       mov      bword ptr [rbp-0x70], rcx
-       jge      SHORT G_M33326_IG08
-						;; size=14 bbWeight=0.04 PerfScore 0.22
-G_M33326_IG13:
-       cmp      ebx, r13d
-       jae      G_M33326_IG22
-       mov      esi, ebx
-       mov      rax, bword ptr [rbp-0x68]
-       movzx    rdi, word  ptr [rax+2*rsi]
-       cmp      edi, 127
-       jle      SHORT G_M33326_IG09
-						;; size=24 bbWeight=0.04 PerfScore 0.23
-G_M33326_IG14:
-       mov      esi, dword ptr [r15]
-       cmp      esi, r12d
-       ja       G_M33326_IG18
+       ja       G_M33326_IG13
        mov      edx, esi
        mov      rcx, bword ptr [rbp-0x70]
        lea      rcx, bword ptr [rcx+2*rdx]
        sub      r12d, esi
        cmp      ebx, r13d
-       ja       G_M33326_IG18
+       ja       G_M33326_IG13
        mov      esi, ebx
        mov      r8, bword ptr [rbp-0x68]
        lea      rax, bword ptr [r8+2*rsi]
        mov      bword ptr [rbp-0x60], rax
        sub      r13d, ebx
        lea      rsi, [rbp-0x48]
        mov      qword ptr [rsp], rsi
        movzx    rbx, byte  ptr [rbp+0x20]
        mov      dword ptr [rsp+0x08], ebx
        mov      rsi, rax
        mov      edx, r13d
        mov      r8d, r12d
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      rdi, gword ptr [rdi]
        lea      r9, [rbp-0x40]
        mov      r10, 0xD1FFAB1E      ; code for System.Text.Encodings.Web.TextEncoder:Encode(System.ReadOnlySpan`1[char],System.Span`1[char],byref,byref,bool):int:this
        call     [r10]System.Text.Encodings.Web.TextEncoder:Encode(System.ReadOnlySpan`1[char],System.Span`1[char],byref,byref,bool):int:this
        test     eax, eax
-       je       SHORT G_M33326_IG15
+       je       SHORT G_M33326_IG10
        cmp      eax, 2
-       jne      G_M33326_IG21
+       jne      G_M33326_IG16
        test     ebx, ebx
-       jne      G_M33326_IG21
+       jne      G_M33326_IG16
 						;; size=127 bbWeight=0.50 PerfScore 11.75
-G_M33326_IG15:
+G_M33326_IG10:
        mov      edi, dword ptr [rbp-0x48]
        add      dword ptr [r15], edi
        mov      edi, dword ptr [rbp-0x40]
        add      dword ptr [r14], edi
        jmp      G_M33326_IG08
 						;; size=17 bbWeight=0.50 PerfScore 5.00
-G_M33326_IG16:
+G_M33326_IG11:
        mov      r10, qword ptr [rbp-0x50]
        mov      rcx, r10
        add      rcx, bword ptr [rbp-0x70]
        mov      r8d, r12d
        sub      r8d, ebx
+       cmp      ebx, r13d
+       ja       SHORT G_M33326_IG13
        mov      r12, r10
        add      r12, bword ptr [rbp-0x68]
        sub      r13d, ebx
        lea      rsi, [rbp-0x38]
        mov      qword ptr [rsp], rsi
        movzx    rbx, byte  ptr [rbp+0x20]
        mov      dword ptr [rsp+0x08], ebx
        mov      rsi, r12
        mov      edx, r13d
        lea      r9, [rbp-0x30]
        mov      rdi, rax
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x28]System.Text.Encodings.Web.TextEncoder:Encode(System.ReadOnlySpan`1[char],System.Span`1[char],byref,byref,bool):int:this
        test     eax, eax
-       je       SHORT G_M33326_IG17
+       je       SHORT G_M33326_IG12
        cmp      eax, 2
-       jne      SHORT G_M33326_IG20
+       jne      SHORT G_M33326_IG15
        test     ebx, ebx
-       jne      SHORT G_M33326_IG20
-						;; size=79 bbWeight=0.50 PerfScore 9.88
-G_M33326_IG17:
+       jne      SHORT G_M33326_IG15
+						;; size=84 bbWeight=0.50 PerfScore 10.50
+G_M33326_IG12:
        mov      edi, dword ptr [rbp-0x38]
        add      dword ptr [r15], edi
        mov      edi, dword ptr [rbp-0x30]
        add      dword ptr [r14], edi
        jmp      G_M33326_IG08
 						;; size=17 bbWeight=0.50 PerfScore 5.00
-G_M33326_IG18:
+G_M33326_IG13:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M33326_IG19:
+G_M33326_IG14:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M33326_IG20:
+G_M33326_IG15:
        cmp      dword ptr [rbp-0x38], r13d
-       jae      SHORT G_M33326_IG22
+       jae      SHORT G_M33326_IG17
        mov      edi, dword ptr [rbp-0x38]
        movzx    rdi, word  ptr [r12+2*rdi]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowArgumentException_InvalidUTF16(int)
        call     [rax]System.Text.Json.ThrowHelper:ThrowArgumentException_InvalidUTF16(int)
        int3     
 						;; size=27 bbWeight=0 PerfScore 0.00
-G_M33326_IG21:
+G_M33326_IG16:
        cmp      dword ptr [rbp-0x48], r13d
-       jae      SHORT G_M33326_IG22
+       jae      SHORT G_M33326_IG17
        mov      edi, dword ptr [rbp-0x48]
        mov      rbx, bword ptr [rbp-0x60]
        movzx    rdi, word  ptr [rbx+2*rdi]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowArgumentException_InvalidUTF16(int)
        call     [rax]System.Text.Json.ThrowHelper:ThrowArgumentException_InvalidUTF16(int)
        int3     
 						;; size=30 bbWeight=0 PerfScore 0.00
-G_M33326_IG22:
+G_M33326_IG17:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 706, prolog size 49, PerfScore 146.84, instruction count 197, allocated bytes for code 706 (MethodHash=07b57dd1) for method System.Text.Json.JsonWriterHelper:EscapeString(System.ReadOnlySpan`1[char],System.Span`1[char],int,System.Text.Encodings.Web.JavaScriptEncoder,byref,byref,bool) (FullOpts)
+; Total bytes of code 582, prolog size 49, PerfScore 144.79, instruction count 165, allocated bytes for code 582 (MethodHash=07b57dd1) for method System.Text.Json.JsonWriterHelper:EscapeString(System.ReadOnlySpan`1[char],System.Span`1[char],int,System.Text.Encodings.Web.JavaScriptEncoder,byref,byref,bool) (FullOpts)
 ; ============================================================
```

</details>


<details>
<summary>-72 (-17.27 % of base) - System.Security.Cryptography.CryptoStream:Write(System.ReadOnlySpan`1[byte]):this</summary>

```diff
 ; Assembly listing for method System.Security.Cryptography.CryptoStream:Write(System.ReadOnlySpan`1[byte]):this (FullOpts)
 ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 4 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <System.Security.Cryptography.CryptoStream>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[byte]>
-;  V02 loc0         [V02,T01] ( 13,  6   )     ref  ->  [rbp-0x20]  class-hnd EH-live single-def <byte[]>
+;  V02 loc0         [V02,T01] (  9,  8   )     ref  ->  [rbp-0x20]  class-hnd EH-live single-def <byte[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[byte]>
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[byte]>
 ;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[byte]>
 ;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[byte]>
 ;* V08 tmp5         [V08    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp6         [V09    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V11 tmp8         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[byte]>
 ;  V13 tmp10        [V13,T03] (  2,  2   )   byref  ->  r15         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V14 tmp11        [V14,T00] ( 11,  6.50)     int  ->  [rbp-0x14]  EH-live single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V14 tmp11        [V14,T00] (  8,  8   )     int  ->  [rbp-0x14]  EH-live single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V15 tmp12        [V15    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V16 tmp13        [V16    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V18 tmp15        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;  V19 tmp16        [V19,T08] (  3,  2   )   byref  ->  rdi         "field V06._reference (fldOffset=0x0)" P-INDEP
-;  V20 tmp17        [V20,T09] (  3,  2   )     int  ->  rcx         "field V06._length (fldOffset=0x8)" P-INDEP
+;  V19 tmp16        [V19,T06] (  3,  3   )   byref  ->  rdi         "field V06._reference (fldOffset=0x0)" P-INDEP
+;  V20 tmp17        [V20,T08] (  3,  3   )     int  ->  rcx         "field V06._length (fldOffset=0x8)" P-INDEP
 ;* V21 tmp18        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp19        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
-;  V23 tmp20        [V23,T06] (  6,  2   )   byref  ->  rdi         "field V12._reference (fldOffset=0x0)" P-INDEP
-;  V24 tmp21        [V24,T07] (  6,  2   )     int  ->  rcx         "field V12._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp20        [V23,T07] (  3,  3   )   byref  ->  rdi         "field V12._reference (fldOffset=0x0)" P-INDEP
+;  V24 tmp21        [V24,T09] (  3,  3   )     int  ->  rcx         "field V12._length (fldOffset=0x8)" P-INDEP
 ;  V25 tmp22        [V25,T04] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
-;  V26 tmp23        [V26,T11] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V27 tmp24        [V27,T05] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
-;* V28 cse0         [V28,T10] (  0,  0   )   byref  ->  zero-ref    multi-def "CSE #03: moderate"
+;  V26 tmp23        [V26,T05] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
 ;
 ; Lcl frame size = 16
 
 G_M32776_IG01:
        push     rbp
        push     r15
        push     rbx
        sub      rsp, 16
        lea      rbp, [rsp+0x20]
        mov      dword ptr [rbp-0x14], edx
        mov      rbx, rdi
        mov      r15, rsi
 						;; size=22 bbWeight=1 PerfScore 5.25
 G_M32776_IG02:
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
-       je       G_M32776_IG14
+       je       G_M32776_IG10
 						;; size=19 bbWeight=1 PerfScore 3.25
 G_M32776_IG03:
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.ArrayPool`1[byte]:s_shared
        mov      rdi, gword ptr [rdi]
        mov      esi, dword ptr [rbp-0x14]
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[byte]:Rent(int):byte[]:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Buffers.SharedArrayPool`1[byte]:Rent(int):byte[]:this
        mov      gword ptr [rbp-0x20], rax
 						;; size=34 bbWeight=1 PerfScore 9.50
 G_M32776_IG04:
        cmp      gword ptr [rbp-0x20], 0
-       je       SHORT G_M32776_IG06
-						;; size=7 bbWeight=1 PerfScore 2.00
-G_M32776_IG05:
+       je       SHORT G_M32776_IG05
        mov      rax, gword ptr [rbp-0x20]
        lea      rdi, bword ptr [rax+0x10]
        mov      ecx, dword ptr [rax+0x08]
-       jmp      SHORT G_M32776_IG07
-						;; size=13 bbWeight=0.50 PerfScore 2.75
-G_M32776_IG06:
+       jmp      SHORT G_M32776_IG06
+						;; size=20 bbWeight=1 PerfScore 7.50
+G_M32776_IG05:
        xor      rdi, rdi
        xor      ecx, ecx
-						;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M32776_IG07:
+						;; size=4 bbWeight=1 PerfScore 0.50
+G_M32776_IG06:
        mov      esi, dword ptr [rbp-0x14]
        cmp      esi, ecx
-       jg       SHORT G_M32776_IG08
+       jg       SHORT G_M32776_IG07
        mov      edx, dword ptr [rbp-0x14]
        mov      rsi, r15
        mov      rcx, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,nuint)
        call     [rcx]System.SpanHelpers:Memmove(byref,byref,nuint)
        mov      rdi, rbx
        mov      rsi, gword ptr [rbp-0x20]
        mov      ecx, dword ptr [rbp-0x14]
        xor      edx, edx
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x68]
        call     [rax+0x28]System.IO.Stream:Write(byte[],int,int):this
-       jmp      SHORT G_M32776_IG09
+       jmp      SHORT G_M32776_IG08
 						;; size=49 bbWeight=1 PerfScore 18.25
-G_M32776_IG08:
+G_M32776_IG07:
        mov      rcx, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rcx]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M32776_IG09:
-       cmp      gword ptr [rbp-0x20], 0
-       je       SHORT G_M32776_IG11
-						;; size=7 bbWeight=1 PerfScore 2.00
-G_M32776_IG10:
-       mov      rsi, gword ptr [rbp-0x20]
-       mov      ecx, dword ptr [rbp-0x14]
-       cmp      dword ptr [rsi+0x08], ecx
-       jl       SHORT G_M32776_IG15
-       lea      rdi, bword ptr [rsi+0x10]
-       jmp      SHORT G_M32776_IG12
-						;; size=18 bbWeight=0.50 PerfScore 3.75
-G_M32776_IG11:
-       cmp      dword ptr [rbp-0x14], 0
-       jne      SHORT G_M32776_IG15
-       xor      rdi, rdi
-       xor      ecx, ecx
-						;; size=10 bbWeight=0.50 PerfScore 1.25
-G_M32776_IG12:
-       mov      esi, ecx
-       mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.CryptographicOperations:ZeroMemory(System.Span`1[byte])
-       call     [rax]System.Security.Cryptography.CryptographicOperations:ZeroMemory(System.Span`1[byte])
-       mov      rdi, 0xD1FFAB1E      ; static handle
-       mov      rdi, gword ptr [rdi]
-       mov      rsi, gword ptr [rbp-0x20]
-       xor      edx, edx
-       mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[byte]:Return(byte[],bool):this
-       cmp      dword ptr [rdi], edi
-       call     [rax]System.Buffers.SharedArrayPool`1[byte]:Return(byte[],bool):this
+G_M32776_IG08:
+       call     G_M32776_IG11
        nop      
-						;; size=48 bbWeight=1 PerfScore 12.50
-G_M32776_IG13:
+						;; size=6 bbWeight=1 PerfScore 1.25
+G_M32776_IG09:
        add      rsp, 16
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 2.75
-G_M32776_IG14:
+G_M32776_IG10:
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.ArrayPool`1[byte]
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
        jmp      G_M32776_IG03
 						;; size=27 bbWeight=0 PerfScore 0.00
-G_M32776_IG15:
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
-       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
-       int3     
-						;; size=13 bbWeight=0 PerfScore 0.00
-G_M32776_IG16:
+G_M32776_IG11:
        push     rax
-						;; size=1 bbWeight=0 PerfScore 0.00
-G_M32776_IG17:
+						;; size=1 bbWeight=1 PerfScore 1.00
+G_M32776_IG12:
        cmp      gword ptr [rbp-0x20], 0
-       jne      SHORT G_M32776_IG20
+       jne      SHORT G_M32776_IG15
        cmp      dword ptr [rbp-0x14], 0
-       je       SHORT G_M32776_IG19
-						;; size=13 bbWeight=0 PerfScore 0.00
-G_M32776_IG18:
+       je       SHORT G_M32776_IG14
+						;; size=13 bbWeight=1 PerfScore 4.00
+G_M32776_IG13:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M32776_IG19:
+G_M32776_IG14:
        xor      rdi, rdi
        xor      ecx, ecx
-       jmp      SHORT G_M32776_IG21
-						;; size=6 bbWeight=0 PerfScore 0.00
-G_M32776_IG20:
+       jmp      SHORT G_M32776_IG16
+						;; size=6 bbWeight=1 PerfScore 2.50
+G_M32776_IG15:
        mov      rsi, gword ptr [rbp-0x20]
-       mov      ecx, dword ptr [rbp-0x14]
-       cmp      dword ptr [rsi+0x08], ecx
-       jl       SHORT G_M32776_IG18
+       mov      edi, dword ptr [rsi+0x08]
+       sub      edi, dword ptr [rbp-0x14]
+       js       SHORT G_M32776_IG13
        lea      rdi, bword ptr [rsi+0x10]
-						;; size=16 bbWeight=0 PerfScore 0.00
-G_M32776_IG21:
+       mov      ecx, dword ptr [rbp-0x14]
+						;; size=19 bbWeight=1 PerfScore 6.50
+G_M32776_IG16:
        mov      esi, ecx
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.CryptographicOperations:ZeroMemory(System.Span`1[byte])
        call     [rax]System.Security.Cryptography.CryptographicOperations:ZeroMemory(System.Span`1[byte])
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       jne      SHORT G_M32776_IG18
+						;; size=29 bbWeight=1 PerfScore 6.75
+G_M32776_IG17:
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.ArrayPool`1[byte]
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+						;; size=22 bbWeight=0 PerfScore 0.00
+G_M32776_IG18:
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.ArrayPool`1[byte]:s_shared
        mov      rdi, gword ptr [rdi]
        mov      rsi, gword ptr [rbp-0x20]
        xor      edx, edx
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[byte]:Return(byte[],bool):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Buffers.SharedArrayPool`1[byte]:Return(byte[],bool):this
        nop      
-						;; size=70 bbWeight=0 PerfScore 0.00
-G_M32776_IG22:
+						;; size=34 bbWeight=1 PerfScore 9.00
+G_M32776_IG19:
        add      rsp, 8
        ret      
-						;; size=5 bbWeight=0 PerfScore 0.00
+						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 417, prolog size 22, PerfScore 63.50, instruction count 111, allocated bytes for code 417 (MethodHash=a9827ff7) for method System.Security.Cryptography.CryptoStream:Write(System.ReadOnlySpan`1[byte]):this (FullOpts)
+; Total bytes of code 345, prolog size 22, PerfScore 79.25, instruction count 91, allocated bytes for code 345 (MethodHash=a9827ff7) for method System.Security.Cryptography.CryptoStream:Write(System.ReadOnlySpan`1[byte]):this (FullOpts)
 ; ============================================================
```

</details>



Note: some changes were skipped as they were too large to fit into a comment.

