Skip to content

Instantly share code, notes, and snippets.

@MihuBot
Created August 16, 2024 08:50
Show Gist options
  • Save MihuBot/2d44f30c11cf7a178def2c8497de8e2a to your computer and use it in GitHub Desktop.
Save MihuBot/2d44f30c11cf7a178def2c8497de8e2a to your computer and use it in GitHub Desktop.

Top method regressions

29 (3.86 % of base) - System.Security.Cryptography.CryptographicAttributeObjectCollection:Add(System.Security.Cryptography.CryptographicAttributeObject):int:this
 ; Assembly listing for method System.Security.Cryptography.CryptographicAttributeObjectCollection:Add(System.Security.Cryptography.CryptographicAttributeObject):int:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 19 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T07] (  6, 11.50)     ref  ->  rbx         this class-hnd single-def <System.Security.Cryptography.CryptographicAttributeObjectCollection>
-;  V01 arg1         [V01,T17] (  8,  9.50)     ref  ->  r15         class-hnd single-def <System.Security.Cryptography.CryptographicAttributeObject>
-;  V02 loc0         [V02,T21] (  6,  6.75)     ref  ->  r14         class-hnd exact single-def <System.String>
-;  V03 loc1         [V03,T29] (  2,  1   )     int  ->  rbx        
-;  V04 loc2         [V04,T06] (  4, 14   )     ref  ->  r12         class-hnd exact <System.Security.Cryptography.CryptographicAttributeObject>
+;  V00 this         [V00,T09] (  6, 11.50)     ref  ->  rbx         this class-hnd single-def <System.Security.Cryptography.CryptographicAttributeObjectCollection>
+;  V01 arg1         [V01,T13] (  8,  9.50)     ref  ->  r15         class-hnd single-def <System.Security.Cryptography.CryptographicAttributeObject>
+;  V02 loc0         [V02,T16] (  6,  6.75)     ref  ->  r14         class-hnd exact single-def <System.String>
+;  V03 loc1         [V03,T23] (  2,  1   )     int  ->  rbx        
+;  V04 loc2         [V04,T08] (  4, 14   )     ref  ->  r12         class-hnd exact <System.Security.Cryptography.CryptographicAttributeObject>
 ;* V05 loc3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V06 loc4         [V06,T08] (  4, 12.50)     ref  ->  r14         class-hnd exact <System.Security.Cryptography.AsnEncodedDataEnumerator>
-;  V07 loc5         [V07,T18] (  4,  8   )     ref  ->  rdx         class-hnd <System.Security.Cryptography.AsnEncodedData>
+;* V06 loc4         [V06,T30] (  0,  0   )    long  ->  zero-ref    class-hnd exact <System.Security.Cryptography.AsnEncodedDataEnumerator>
+;  V07 loc5         [V07,T14] (  4,  8   )     ref  ->  rdx         class-hnd <System.Security.Cryptography.AsnEncodedData>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V09 tmp1         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Security.Cryptography.AsnEncodedDataCollection>
 ;* V10 tmp2         [V10    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
-;  V11 tmp3         [V11,T30] (  2,  2   )     int  ->  rdi         "spilling unroll qmark"
-;  V12 tmp4         [V12,T37] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.CryptographicException>
-;  V13 tmp5         [V13,T38] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
-;  V14 tmp6         [V14,T31] (  2,  2   )     int  ->  r13         "impAppendStmt"
-;  V15 tmp7         [V15,T39] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
+;  V11 tmp3         [V11,T24] (  2,  2   )     int  ->  rdi         "spilling unroll qmark"
+;  V12 tmp4         [V12,T32] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.CryptographicException>
+;  V13 tmp5         [V13,T33] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;  V14 tmp6         [V14,T25] (  2,  2   )     int  ->  r13         "impAppendStmt"
+;  V15 tmp7         [V15,T34] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
 ;* V16 tmp8         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Security.Cryptography.Oid>
 ;  V17 tmp9         [V17,T03] (  3, 24   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.CryptographicAttributeObject]>
 ;* V18 tmp10        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Security.Cryptography.Oid>
-;  V19 tmp11        [V19,T27] (  3,  3   )     ref  ->  r15         class-hnd exact "Inlining Arg" <System.Security.Cryptography.AsnEncodedDataCollection>
-;  V20 tmp12        [V20,T25] (  4,  4   )     ref  ->  r14         class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.AsnEncodedDataEnumerator>
-;* V21 tmp13        [V21,T20] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Security.Cryptography.AsnEncodedDataCollection>
-;  V22 tmp14        [V22,T02] (  4, 24   )     int  ->  rdi         "Inlining Arg"
-;  V23 tmp15        [V23,T16] (  2, 12   )     ref  ->  rsi         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.AsnEncodedData]>
-;  V24 tmp16        [V24,T09] (  3, 12   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Security.Cryptography.AsnEncodedDataCollection>
+;  V19 tmp11        [V19,T21] (  3,  3   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Security.Cryptography.AsnEncodedDataCollection>
+;* V20 tmp12        [V20    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.AsnEncodedDataEnumerator>
+;  V21 tmp13        [V21,T06] (  2, 16   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Security.Cryptography.AsnEncodedDataCollection>
+;  V22 tmp14        [V22,T02] (  4, 24   )     int  ->  rsi         "Inlining Arg"
+;  V23 tmp15        [V23,T05] (  3, 20   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.AsnEncodedData]>
+;  V24 tmp16        [V24,T10] (  3, 12   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Security.Cryptography.AsnEncodedDataCollection>
 ;* V25 tmp17        [V25    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V26 tmp18        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.AsnEncodedData]>
 ;  V27 tmp19        [V27,T01] (  6, 24   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.AsnEncodedData]>
-;  V28 tmp20        [V28,T23] (  3,  6   )     ref  ->  rcx         class-hnd "Inline stloc first use temp" <System.Security.Cryptography.AsnEncodedData[]>
-;  V29 tmp21        [V29,T19] (  4,  8   )     int  ->  rax         "Inline stloc first use temp"
+;  V28 tmp20        [V28,T18] (  3,  6   )     ref  ->  rcx         class-hnd "Inline stloc first use temp" <System.Security.Cryptography.AsnEncodedData[]>
+;  V29 tmp21        [V29,T15] (  4,  8   )     int  ->  rax         "Inline stloc first use temp"
 ;* V30 tmp22        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V31 tmp23        [V31    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V32 tmp24        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Security.Cryptography.AsnEncodedDataCollection>
 ;* V33 tmp25        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.AsnEncodedData]>
 ;* V34 tmp26        [V34    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.CryptographicAttributeObject]>
 ;* V35 tmp27        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.CryptographicAttributeObject]>
-;  V36 tmp28        [V36,T22] (  6,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.CryptographicAttributeObject]>
-;  V37 tmp29        [V37,T32] (  3,  1.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <System.Security.Cryptography.CryptographicAttributeObject[]>
-;  V38 tmp30        [V38,T28] (  4,  2   )     int  ->  rax         single-def "Inline stloc first use temp"
-;  V39 tmp31        [V39,T04] (  3, 24   )     ref  ->  rdi         "arr expr"
-;  V40 tmp32        [V40,T05] (  2, 16   )     ref  ->  rsi         "argument with side effect"
-;  V41 tmp33        [V41,T40] (  2,  0   )     ref  ->  rsi         "argument with side effect"
-;  V42 tmp34        [V42,T41] (  2,  0   )     ref  ->  rsi         "argument with side effect"
-;  V43 tmp35        [V43,T10] (  3, 12   )     ref  ->  rsi         "arr expr"
-;  V44 tmp36        [V44,T42] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V45 cse0         [V45,T13] (  3, 12   )     int  ->  rax         "CSE #10: moderate"
-;  V46 cse1         [V46,T11] (  3, 12   )     ref  ->  rsi         "CSE #09: moderate"
-;  V47 cse2         [V47,T26] (  2,  4   )     int  ->  rax         "CSE #05: moderate"
-;  V48 cse3         [V48,T34] (  3,  1.50)     int  ->  rax         "CSE #02: moderate"
-;  V49 cse4         [V49,T14] (  3, 12   )     int  ->  rdi         "CSE #08: moderate"
-;  V50 cse5         [V50,T35] (  2,  1   )     int  ->  rsi         "CSE #03: moderate"
-;  V51 cse6         [V51,T15] (  3, 12   )     int  ->  rdi         "CSE #06: moderate"
-;  V52 cse7         [V52,T12] (  2,  8   )     ref  ->  rsi         "CSE #07: moderate"
-;  V53 cse8         [V53,T24] (  3,  6   )     ref  ->  rdi         "CSE #04: moderate"
-;  V54 cse9         [V54,T33] (  3,  1.50)     ref  ->  rdi         "CSE #01: moderate"
-;  V55 rat0         [V55,T00] (  8, 25.50)    long  ->  r13         "Widened IV V03"
-;  V56 rat1         [V56,T36] (  3,  3   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V36 tmp28        [V36,T17] (  6,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.CryptographicAttributeObject]>
+;  V37 tmp29        [V37,T26] (  3,  1.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <System.Security.Cryptography.CryptographicAttributeObject[]>
+;  V38 tmp30        [V38,T22] (  4,  2   )     int  ->  rax         single-def "Inline stloc first use temp"
+;  V39 tmp31        [V39    ] (  9, 22   )  struct (24) [rbp-0x40]  do-not-enreg[XSF] must-init addr-exposed "stack allocated ref class temp" <System.Security.Cryptography.AsnEncodedDataEnumerator>
+;  V40 tmp32        [V40,T04] (  3, 24   )     ref  ->  rdi         "arr expr"
+;  V41 tmp33        [V41,T07] (  2, 16   )     ref  ->  rsi         "argument with side effect"
+;  V42 tmp34        [V42,T35] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V43 tmp35        [V43,T36] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V44 tmp36        [V44,T11] (  3, 12   )     ref  ->  rdi         "arr expr"
+;  V45 tmp37        [V45,T37] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V46 cse0         [V46,T20] (  2,  4   )     int  ->  rax         "CSE #05: moderate"
+;  V47 cse1         [V47,T28] (  3,  1.50)     int  ->  rax         "CSE #02: moderate"
+;  V48 cse2         [V48,T29] (  2,  1   )     int  ->  rsi         "CSE #03: moderate"
+;  V49 cse3         [V49,T12] (  3, 12   )     int  ->  rdi         "CSE #06: moderate"
+;  V50 cse4         [V50,T19] (  3,  6   )     ref  ->  rdi         "CSE #04: moderate"
+;  V51 cse5         [V51,T27] (  3,  1.50)     ref  ->  rdi         "CSE #01: moderate"
+;  V52 rat0         [V52,T00] (  8, 25.50)    long  ->  r13         "Widened IV V03"
+;  V53 rat1         [V53,T31] (  3,  3   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 24
 
 G_M1123_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x30]
+       sub      rsp, 24
+       lea      rbp, [rsp+0x40]
+       vxorps   xmm8, xmm8, xmm8
+       vmovdqa  xmmword ptr [rbp-0x40], xmm8
+       xor      eax, eax
+       mov      qword ptr [rbp-0x30], rax
        mov      rbx, rdi
        mov      r15, rsi
-						;; size=22 bbWeight=1 PerfScore 8.00
+						;; size=41 bbWeight=1 PerfScore 10.83
 G_M1123_IG02:
        test     r15, r15
        je       G_M1123_IG21
        mov      rdi, gword ptr [r15+0x10]
        mov      rax, 0xD1FFAB1E      ; code for Internal.Cryptography.PkcsHelpers:CopyOid(System.Security.Cryptography.Oid):System.Security.Cryptography.Oid
        call     [rax]Internal.Cryptography.PkcsHelpers:CopyOid(System.Security.Cryptography.Oid):System.Security.Cryptography.Oid
        mov      r14, gword ptr [rax+0x08]
        xor      r13d, r13d
        mov      rdi, gword ptr [rbx+0x08]
        cmp      dword ptr [rdi+0x10], 0
        jle      SHORT G_M1123_IG04
 						;; size=42 bbWeight=1 PerfScore 14.75
 G_M1123_IG03:
        mov      rdi, gword ptr [rbx+0x08]
        cmp      r13d, dword ptr [rdi+0x10]
        jae      G_M1123_IG20
        mov      rdi, gword ptr [rdi+0x08]
        cmp      r13d, dword ptr [rdi+0x08]
        jae      G_M1123_IG22
        mov      r12, gword ptr [rdi+8*r13+0x10]
        mov      rdi, gword ptr [r12+0x08]
        cmp      rdi, gword ptr [r15+0x08]
        je       G_M1123_IG19
        mov      rdi, gword ptr [r12+0x10]
        mov      rax, 0xD1FFAB1E      ; code for Internal.Cryptography.PkcsHelpers:CopyOid(System.Security.Cryptography.Oid):System.Security.Cryptography.Oid
        call     [rax]Internal.Cryptography.PkcsHelpers:CopyOid(System.Security.Cryptography.Oid):System.Security.Cryptography.Oid
        mov      rsi, gword ptr [rax+0x08]
        mov      rdi, r14
        mov      edx, 5
        mov      rax, 0xD1FFAB1E      ; code for System.String:Equals(System.String,System.String,int):ubyte
        call     [rax]System.String:Equals(System.String,System.String,int):ubyte
        test     eax, eax
        jne      SHORT G_M1123_IG08
        inc      r13d
        mov      rdi, gword ptr [rbx+0x08]
        cmp      r13d, dword ptr [rdi+0x10]
        jl       SHORT G_M1123_IG03
 						;; size=106 bbWeight=4 PerfScore 154.00
 G_M1123_IG04:
        mov      rdi, gword ptr [rbx+0x08]
        mov      eax, dword ptr [rdi+0x10]
        mov      r13d, eax
        inc      dword ptr [rdi+0x14]
        mov      r14, gword ptr [rdi+0x08]
        mov      esi, dword ptr [r14+0x08]
        cmp      esi, eax
        ja       SHORT G_M1123_IG05
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        call     [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        jmp      SHORT G_M1123_IG06
 						;; size=42 bbWeight=0.50 PerfScore 9.00
 G_M1123_IG05:
        lea      esi, [rax+0x01]
        mov      dword ptr [rdi+0x10], esi
        mov      edi, eax
        lea      rdi, bword ptr [r14+8*rdi+0x10]
        mov      rsi, r15
        call     CORINFO_HELP_ASSIGN_REF
 						;; size=21 bbWeight=0.50 PerfScore 2.00
 G_M1123_IG06:
        mov      eax, r13d
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M1123_IG07:
        vzeroupper 
-       add      rsp, 8
+       add      rsp, 24
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=18 bbWeight=0.50 PerfScore 2.62
 G_M1123_IG08:
        mov      ebx, r13d
        test     r14, r14
        je       SHORT G_M1123_IG11
 						;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M1123_IG09:
        cmp      dword ptr [r14+0x08], 20
        jne      SHORT G_M1123_IG11
 						;; size=7 bbWeight=0.25 PerfScore 1.00
 G_M1123_IG10:
        vmovups  ymm0, ymmword ptr [r14+0x0C]
        vmovups  ymm1, ymmword ptr [r14+0x14]
        vpxor    ymm1, ymm1, ymmword ptr [reloc @RWD00]
        vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD32], -34
        vptest   ymm0, ymm0
        sete     dil
        movzx    rdi, dil
        test     edi, edi
        jne      G_M1123_IG18
 						;; size=52 bbWeight=0.50 PerfScore 10.75
 G_M1123_IG11:
-       mov      r15, gword ptr [r15+0x08]
-       cmp      byte  ptr [r15], r15b
-       mov      rdi, 0xD1FFAB1E      ; System.Security.Cryptography.AsnEncodedDataEnumerator
-       call     CORINFO_HELP_NEWSFAST
-       mov      r14, rax
-       lea      rdi, bword ptr [r14+0x08]
-       mov      rsi, r15
-       call     CORINFO_HELP_ASSIGN_REF
-       mov      dword ptr [r14+0x10], -1
+       mov      rdi, gword ptr [r15+0x08]
+       cmp      byte  ptr [rdi], dil
+       vxorps   xmm0, xmm0, xmm0
+       vmovdqu  xmmword ptr [rbp-0x40], xmm0
+       vmovdqu  xmmword ptr [rbp-0x3C], xmm0
+       mov      rsi, 0xD1FFAB1E      ; System.Security.Cryptography.AsnEncodedDataEnumerator
+       mov      qword ptr [rbp-0x40], rsi
+       mov      gword ptr [rbp-0x38], rdi
+       mov      dword ptr [rbp-0x30], -1
        jmp      SHORT G_M1123_IG13
-						;; size=47 bbWeight=0.50 PerfScore 5.62
+						;; size=48 bbWeight=0.50 PerfScore 6.29
 G_M1123_IG12:
        mov      rsi, rdx
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        call     [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
 						;; size=15 bbWeight=2 PerfScore 7.00
 G_M1123_IG13:
-       mov      edi, dword ptr [r14+0x10]
-       mov      rsi, gword ptr [r14+0x08]
+       mov      edi, dword ptr [rbp-0x30]
+       mov      rsi, gword ptr [rbp-0x38]
        mov      rsi, gword ptr [rsi+0x08]
-       mov      eax, dword ptr [rsi+0x10]
-       lea      ecx, [rax-0x01]
-       cmp      edi, ecx
+       mov      esi, dword ptr [rsi+0x10]
+       dec      esi
+       cmp      edi, esi
        jge      SHORT G_M1123_IG15
        inc      edi
-       mov      dword ptr [r14+0x10], edi
-       cmp      edi, eax
+       mov      dword ptr [rbp-0x30], edi
+       mov      rdi, gword ptr [rbp-0x38]
+       mov      esi, dword ptr [rbp-0x30]
+       mov      rdi, gword ptr [rdi+0x08]
+       cmp      esi, dword ptr [rdi+0x10]
        jae      G_M1123_IG20
-						;; size=36 bbWeight=4 PerfScore 49.00
+						;; size=45 bbWeight=4 PerfScore 67.00
 G_M1123_IG14:
-       mov      rsi, gword ptr [rsi+0x08]
-       cmp      edi, dword ptr [rsi+0x08]
+       mov      rdi, gword ptr [rdi+0x08]
+       cmp      esi, dword ptr [rdi+0x08]
        jae      G_M1123_IG22
-       mov      edi, edi
-       mov      rdx, gword ptr [rsi+8*rdi+0x10]
+       mov      esi, esi
+       mov      rdx, gword ptr [rdi+8*rsi+0x10]
        mov      rdi, gword ptr [r12+0x08]
        cmp      byte  ptr [rdi], dil
        test     rdx, rdx
        je       SHORT G_M1123_IG17
        mov      rdi, gword ptr [rdi+0x08]
        mov      eax, dword ptr [rdi+0x10]
        inc      dword ptr [rdi+0x14]
        mov      rcx, gword ptr [rdi+0x08]
        cmp      dword ptr [rcx+0x08], eax
        jbe      SHORT G_M1123_IG12
        lea      esi, [rax+0x01]
        mov      dword ptr [rdi+0x10], esi
        movsxd   rsi, eax
        mov      rdi, rcx
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
        call     [rax]CORINFO_HELP_ARRADDR_ST
        jmp      SHORT G_M1123_IG13
 						;; size=78 bbWeight=2 PerfScore 69.50
 G_M1123_IG15:
        mov      eax, ebx
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M1123_IG16:
        vzeroupper 
-       add      rsp, 8
+       add      rsp, 24
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=18 bbWeight=0.50 PerfScore 2.62
 G_M1123_IG17:
        mov      edi, 0x430B
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)
        call     [rax]System.ArgumentNullException:Throw(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
 G_M1123_IG18:
        mov      rdi, 0xD1FFAB1E      ; System.Security.Cryptography.CryptographicException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_Cryptography_Pkcs9_MultipleSigningTimeNotAllowed():System.String
        call     [rax]System.SR:get_Cryptography_Pkcs9_MultipleSigningTimeNotAllowed():System.String
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.CryptographicException:.ctor(System.String):this
        call     [rax]System.Security.Cryptography.CryptographicException:.ctor(System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=57 bbWeight=0 PerfScore 0.00
 G_M1123_IG19:
        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_InvalidOperation_DuplicateItemNotAllowed():System.String
        call     [rax]System.SR:get_InvalidOperation_DuplicateItemNotAllowed():System.String
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor(System.String):this
        call     [rax]System.InvalidOperationException:.ctor(System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=57 bbWeight=0 PerfScore 0.00
 G_M1123_IG20:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M1123_IG21:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      edi, 0x1E5C
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this
        call     [rax]System.ArgumentNullException:.ctor(System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=65 bbWeight=0 PerfScore 0.00
 G_M1123_IG22:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 RWD00  	dq	002E003000340038h, 0035003300310031h, 0031002E00390034h, 0035002E0039002Eh
 RWD32  	dq	002E0032002E0031h, 002E003000340038h, 0035003300310031h, 0031002E00390034h
 
 
-; Total bytes of code 751, prolog size 22, PerfScore 336.88, instruction count 191, allocated bytes for code 751 (MethodHash=599afb9c) for method System.Security.Cryptography.CryptographicAttributeObjectCollection:Add(System.Security.Cryptography.CryptographicAttributeObject):int:this (FullOpts)
+; Total bytes of code 780, prolog size 41, PerfScore 358.38, instruction count 198, allocated bytes for code 780 (MethodHash=599afb9c) for method System.Security.Cryptography.CryptographicAttributeObjectCollection:Add(System.Security.Cryptography.CryptographicAttributeObject):int:this (FullOpts)
23 (9.20 % of base) - System.Formats.Nrbf.ArraySinglePrimitiveRecord`1[System.Numerics.Vector`1[float]]:DecodeFromNonSeekableStream(System.IO.BinaryReader,int):System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]
 ; Assembly listing for method System.Formats.Nrbf.ArraySinglePrimitiveRecord`1[System.Numerics.Vector`1[float]]:DecodeFromNonSeekableStream(System.IO.BinaryReader,int):System.Collections.Generic.List`1[System.Numerics.Vector`1[float]] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T06] (  4,  6.25)     ref  ->  rbx         class-hnd single-def <System.IO.BinaryReader>
-;  V01 arg1         [V01,T09] (  6,  5.25)     int  ->  r15         single-def
-;  V02 loc0         [V02,T02] (  8, 22   )     ref  ->  r13         class-hnd exact single-def <System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]>
-;* V03 loc1         [V03,T13] (  0,  0   )     int  ->  zero-ref   
+;  V00 arg0         [V00,T04] (  4,  6.25)     ref  ->  rbx         class-hnd single-def <System.IO.BinaryReader>
+;  V01 arg1         [V01,T07] (  6,  5.25)     int  ->  r15         single-def
+;  V02 loc0         [V02,T00] (  8, 22   )     ref  ->  r13         class-hnd exact single-def <System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]>
+;* V03 loc1         [V03,T11] (  0,  0   )     int  ->  zero-ref   
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T10] (  3,  6   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]>
+;  V05 tmp1         [V05,T08] (  3,  6   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]>
 ;* V06 tmp2         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.TimeSpan>
-;  V07 tmp3         [V07,T00] (  3, 24   )     ref  ->  rax         class-hnd exact "Single-def Box Helper" <System.TimeSpan>
-;  V08 tmp4         [V08,T01] (  3, 24   )     ref  ->  r12         "inline UNBOX clone1"
-;  V09 tmp5         [V09,T12] (  2,  2   )     int  ->  r14         "Inline return value spill temp"
+;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.TimeSpan>
+;* V08 tmp4         [V08    ] (  0,  0   )   byref  ->  zero-ref    "inline UNBOX clone1"
+;  V09 tmp5         [V09,T10] (  2,  2   )     int  ->  r14         "Inline return value spill temp"
 ;* V10 tmp6         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V11 tmp7         [V11,T05] (  3, 10   )     ref  ->  r12         class-hnd exact "Inline stloc first use temp" <System.Numerics.Vector`1[float][]>
-;  V12 tmp8         [V12,T04] (  4, 12   )     int  ->  rax         "Inline stloc first use temp"
-;  V13 tmp9         [V13,T14] (  3, 16   )  simd32  ->  mm0         "Inlining Arg" <System.Numerics.Vector`1[float]>
-;  V14 tmp10        [V14,T07] (  2,  8   )    long  ->  r12         "field V06._ticks (fldOffset=0x0)" P-INDEP
-;  V15 cse0         [V15,T11] (  2,  4.25)    long  ->  r14         hoist "CSE #02: moderate"
-;  V16 cse1         [V16,T08] (  2,  8   )     int  ->  rdi         "CSE #03: aggressive"
-;  V17 rat0         [V17,T03] (  4, 12.25)     int  ->  r15         "Trip count IV"
+;  V11 tmp7         [V11,T03] (  3, 10   )     ref  ->  r12         class-hnd exact "Inline stloc first use temp" <System.Numerics.Vector`1[float][]>
+;  V12 tmp8         [V12,T02] (  4, 12   )     int  ->  rax         "Inline stloc first use temp"
+;  V13 tmp9         [V13,T12] (  3, 16   )  simd32  ->  mm0         "Inlining Arg" <System.Numerics.Vector`1[float]>
+;  V14 tmp10        [V14    ] (  6, 21   )  struct (16) [rbp-0x38]  do-not-enreg[XSF] must-init addr-exposed "stack allocated boxed value class temp" <System.Runtime.CompilerServices.StackAllocatedBox`1[System.TimeSpan]>
+;  V15 tmp11        [V15,T05] (  2,  8   )    long  ->  rax         "field V06._ticks (fldOffset=0x0)" P-INDEP
+;  V16 cse0         [V16,T09] (  2,  4.25)    long  ->  r14         hoist "CSE #02: moderate"
+;  V17 cse1         [V17,T06] (  2,  8   )     int  ->  rdi         "CSE #05: aggressive"
+;  V18 rat0         [V18,T01] (  4, 12.25)     int  ->  r15         "Trip count IV"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 56
 
 G_M51783_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 40
-       lea      rbp, [rsp+0x50]
+       sub      rsp, 56
+       lea      rbp, [rsp+0x60]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x38], rax
+       mov      qword ptr [rbp-0x30], rax
        mov      rbx, rdi
        mov      r15d, esi
-						;; size=25 bbWeight=1 PerfScore 7.25
+						;; size=35 bbWeight=1 PerfScore 9.50
 G_M51783_IG02:
        mov      edi, 4
        cmp      r15d, 4
        mov      r14d, edi
        cmovle   r14d, r15d
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]
        call     CORINFO_HELP_NEWSFAST
        mov      r13, rax
        mov      rdi, r13
        mov      esi, r14d
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:.ctor(int):this
        call     [rax]System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:.ctor(int):this
        test     r15d, r15d
-       jle      G_M51783_IG08
+       jle      G_M51783_IG10
 						;; size=61 bbWeight=1 PerfScore 7.50
 G_M51783_IG03:
        mov      rdi, qword ptr [rbx]
        mov      r14, qword ptr [rdi+0x50]
 						;; size=7 bbWeight=0.25 PerfScore 1.00
 G_M51783_IG04:
        mov      rdi, rbx
        call     [r14+0x10]System.IO.BinaryReader:ReadInt64():long:this
-       mov      r12, rax
-       mov      rdi, 0xD1FFAB1E      ; System.TimeSpan
-       call     CORINFO_HELP_NEWSFAST
-       mov      qword ptr [rax+0x08], r12
-       mov      r12, rax
-       mov      rsi, r12
+       vxorps   xmm0, xmm0, xmm0
+       vmovups  xmmword ptr [rbp-0x38], xmm0
+       mov      rsi, 0xD1FFAB1E      ; System.TimeSpan
+       mov      qword ptr [rbp-0x38], rsi
+       mov      qword ptr [rbp-0x30], rax
+       mov      rsi, 0xD1FFAB1E      ; System.Numerics.Vector`1[float]
+       cmp      qword ptr [rbp-0x38], rsi
+       je       SHORT G_M51783_IG06
+						;; size=50 bbWeight=4 PerfScore 40.33
+G_M51783_IG05:
+       mov      rsi, qword ptr [rbp-0x38]
        mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector`1[float]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_UNBOX
-       call     [rax]CORINFO_HELP_UNBOX
-       vmovups  ymm0, ymmword ptr [r12+0x08]
+       call     CORINFO_HELP_UNBOX_TYPETEST
+						;; size=19 bbWeight=1 PerfScore 2.25
+G_M51783_IG06:
+       lea      rdi, bword ptr [rbp-0x30]
+       vmovups  ymm0, ymmword ptr [rdi]
        inc      dword ptr [r13+0x14]
        mov      r12, gword ptr [r13+0x08]
        mov      eax, dword ptr [r13+0x10]
        mov      edi, dword ptr [r12+0x08]
        cmp      edi, eax
-       ja       SHORT G_M51783_IG06
-						;; size=85 bbWeight=4 PerfScore 100.00
-G_M51783_IG05:
+       ja       SHORT G_M51783_IG08
+						;; size=29 bbWeight=4 PerfScore 63.00
+G_M51783_IG07:
        vmovups  ymmword ptr [rsp], ymm0
        mov      rdi, r13
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:AddWithResize(System.Numerics.Vector`1[float]):this
        call     [rax]System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:AddWithResize(System.Numerics.Vector`1[float]):this
-       jmp      SHORT G_M51783_IG07
+       jmp      SHORT G_M51783_IG09
 						;; size=22 bbWeight=2 PerfScore 13.00
-G_M51783_IG06:
+G_M51783_IG08:
        lea      ecx, [rax+0x01]
        mov      dword ptr [r13+0x10], ecx
        mov      eax, eax
        shl      rax, 5
        vmovups  ymmword ptr [r12+rax+0x10], ymm0
 						;; size=20 bbWeight=2 PerfScore 8.50
-G_M51783_IG07:
+G_M51783_IG09:
        dec      r15d
        jne      G_M51783_IG04
 						;; size=9 bbWeight=4 PerfScore 5.00
-G_M51783_IG08:
+G_M51783_IG10:
        mov      rax, r13
 						;; size=3 bbWeight=1 PerfScore 0.25
-G_M51783_IG09:
+G_M51783_IG11:
        vzeroupper 
-       add      rsp, 40
+       add      rsp, 56
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=18 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 250, prolog size 19, PerfScore 147.75, instruction count 65, allocated bytes for code 250 (MethodHash=ff9635b8) for method System.Formats.Nrbf.ArraySinglePrimitiveRecord`1[System.Numerics.Vector`1[float]]:DecodeFromNonSeekableStream(System.IO.BinaryReader,int):System.Collections.Generic.List`1[System.Numerics.Vector`1[float]] (FullOpts)
+; Total bytes of code 273, prolog size 29, PerfScore 155.58, instruction count 71, allocated bytes for code 273 (MethodHash=ff9635b8) for method System.Formats.Nrbf.ArraySinglePrimitiveRecord`1[System.Numerics.Vector`1[float]]:DecodeFromNonSeekableStream(System.IO.BinaryReader,int):System.Collections.Generic.List`1[System.Numerics.Vector`1[float]] (FullOpts)
19 (1.64 % of base) - System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:CheckCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.Pkcs.SignerInfo,byref,byref,System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo):ubyte
 ; Assembly listing for method System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:CheckCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.Pkcs.SignerInfo,byref,byref,System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 53 single block inlinees; 14 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T17] (  8,  8   )     ref  ->  rbx         class-hnd single-def <System.Security.Cryptography.X509Certificates.X509Certificate2>
-;  V01 arg1         [V01,T22] (  3,  3   )     ref  ->  r14         class-hnd single-def <System.Security.Cryptography.Pkcs.SignerInfo>
-;  V02 arg2         [V02,T23] (  3,  3   )   byref  ->  rdx         single-def
-;  V03 arg3         [V03,T24] (  3,  3   )   byref  ->  rcx         single-def
-;  V04 arg4         [V04,T20] (  5,  5   )     ref  ->  r15         class-hnd single-def <System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo>
-;  V05 loc0         [V05,T15] (  4, 18   )     ref  ->  r15         class-hnd exact single-def <System.Security.Cryptography.X509Certificates.X509ExtensionCollection>
-;  V06 loc1         [V06,T18] (  4, 10   )   ubyte  ->  r13        
-;  V07 loc2         [V07,T12] (  5, 33   )     int  ->  r12        
-;  V08 loc3         [V08,T16] (  3, 12   )     ref  ->  rdi         class-hnd exact <System.Security.Cryptography.X509Certificates.X509EnhancedKeyUsageExtension>
-;* V09 loc4         [V09,T35] (  0,  0   )   ubyte  ->  zero-ref   
-;  V10 loc5         [V10,T03] (  4,100   )     ref  ->  rax         class-hnd exact <System.Security.Cryptography.OidEnumerator>
-;* V11 loc6         [V11,T49] (  0,  0   )   ubyte  ->  zero-ref    single-def
+;  V00 arg0         [V00,T12] (  8,  8   )     ref  ->  rbx         class-hnd single-def <System.Security.Cryptography.X509Certificates.X509Certificate2>
+;  V01 arg1         [V01,T17] (  3,  3   )     ref  ->  r14         class-hnd single-def <System.Security.Cryptography.Pkcs.SignerInfo>
+;  V02 arg2         [V02,T18] (  3,  3   )   byref  ->  rdx         single-def
+;  V03 arg3         [V03,T19] (  3,  3   )   byref  ->  rcx         single-def
+;  V04 arg4         [V04,T15] (  5,  5   )     ref  ->  r15         class-hnd single-def <System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo>
+;  V05 loc0         [V05,T10] (  4, 18   )     ref  ->  r15         class-hnd exact single-def <System.Security.Cryptography.X509Certificates.X509ExtensionCollection>
+;  V06 loc1         [V06,T13] (  4, 10   )   ubyte  ->  r13        
+;  V07 loc2         [V07,T08] (  5, 33   )     int  ->  r12        
+;  V08 loc3         [V08,T11] (  3, 12   )     ref  ->  rdi         class-hnd exact <System.Security.Cryptography.X509Certificates.X509EnhancedKeyUsageExtension>
+;* V09 loc4         [V09,T30] (  0,  0   )   ubyte  ->  zero-ref   
+;* V10 loc5         [V10,T31] (  0,  0   )    long  ->  zero-ref    class-hnd exact <System.Security.Cryptography.OidEnumerator>
+;* V11 loc6         [V11,T45] (  0,  0   )   ubyte  ->  zero-ref    single-def
 ;# V12 OutArgs      [V12    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V13 tmp1         [V13    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.DateTime>
 ;* V14 tmp2         [V14    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.DateTimeOffset>
 ;* V15 tmp3         [V15    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.DateTimeOffset>
 ;* V16 tmp4         [V16    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.DateTime>
 ;* V17 tmp5         [V17    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.DateTimeOffset>
 ;* V18 tmp6         [V18    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.DateTimeOffset>
-;  V19 tmp7         [V19,T10] (  4, 72   )     ref  ->  rdi         "ISINST eval op1"
+;  V19 tmp7         [V19,T06] (  4, 72   )     ref  ->  rdi         "ISINST eval op1"
 ;* V20 tmp8         [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling qmarkNull" <System.Security.Cryptography.X509Certificates.X509EnhancedKeyUsageExtension>
-;  V21 tmp9         [V21,T19] (  4,  8   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.X509Certificates.X509Certificate2Collection>
+;  V21 tmp9         [V21,T14] (  4,  8   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.X509Certificates.X509Certificate2Collection>
 ;* V22 tmp10        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impSpillSpecialSideEff" <System.Security.Cryptography.CryptographicException>
 ;* V23 tmp11        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.DateTimeOffset>
 ;* V24 tmp12        [V24    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
 ;* V25 tmp13        [V25    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.TimeSpan>
-;  V26 tmp14        [V26,T36] (  3,  3   )    long  ->  rdi         single-def "Inline stloc first use temp"
+;  V26 tmp14        [V26,T32] (  3,  3   )    long  ->  rdi         single-def "Inline stloc first use temp"
 ;* V27 tmp15        [V27    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp16        [V28    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.TimeSpan>
-;  V29 tmp17        [V29,T25] (  4,  4   )     ref  ->  r12         class-hnd exact single-def "Inline stloc first use temp" <System.TimeZoneInfo+CachedData>
+;  V29 tmp17        [V29,T20] (  4,  4   )     ref  ->  r12         class-hnd exact single-def "Inline stloc first use temp" <System.TimeZoneInfo+CachedData>
 ;* V30 tmp18        [V30    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.DateTime>
-;  V31 tmp19        [V31,T33] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
-;  V32 tmp20        [V32,T26] (  4,  4   )     ref  ->  rdi        
+;  V31 tmp19        [V31,T28] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
+;  V32 tmp20        [V32,T21] (  4,  4   )     ref  ->  rdi        
 ;* V33 tmp21        [V33    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.DateTimeOffset>
 ;* V34 tmp22        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.DateTimeOffset>
 ;* V35 tmp23        [V35    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.DateTime>
 ;* V36 tmp24        [V36    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.DateTime>
 ;* V37 tmp25        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
 ;* V38 tmp26        [V38    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.DateTime>
 ;* V39 tmp27        [V39    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V40 tmp28        [V40    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
 ;* V41 tmp29        [V41    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.DateTime>
 ;* V42 tmp30        [V42    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp31        [V43    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
 ;* V44 tmp32        [V44    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
 ;* V45 tmp33        [V45    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
 ;* V46 tmp34        [V46    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.DateTimeOffset>
 ;* V47 tmp35        [V47    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
 ;* V48 tmp36        [V48    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.TimeSpan>
-;  V49 tmp37        [V49,T37] (  3,  3   )    long  ->  rdi         single-def "Inline stloc first use temp"
+;  V49 tmp37        [V49,T33] (  3,  3   )    long  ->  rdi         single-def "Inline stloc first use temp"
 ;* V50 tmp38        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V51 tmp39        [V51    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.TimeSpan>
-;  V52 tmp40        [V52,T27] (  4,  4   )     ref  ->  r12         class-hnd exact single-def "Inline stloc first use temp" <System.TimeZoneInfo+CachedData>
+;  V52 tmp40        [V52,T22] (  4,  4   )     ref  ->  r12         class-hnd exact single-def "Inline stloc first use temp" <System.TimeZoneInfo+CachedData>
 ;* V53 tmp41        [V53    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.DateTime>
-;  V54 tmp42        [V54,T34] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
-;  V55 tmp43        [V55,T28] (  4,  4   )     ref  ->  rdi        
+;  V54 tmp42        [V54,T29] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
+;  V55 tmp43        [V55,T23] (  4,  4   )     ref  ->  rdi        
 ;* V56 tmp44        [V56    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.DateTimeOffset>
 ;* V57 tmp45        [V57    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.DateTimeOffset>
 ;* V58 tmp46        [V58    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.DateTime>
 ;* V59 tmp47        [V59    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.DateTime>
 ;* V60 tmp48        [V60    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
 ;* V61 tmp49        [V61    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.DateTime>
 ;* V62 tmp50        [V62    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V63 tmp51        [V63    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
 ;* V64 tmp52        [V64    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.DateTime>
 ;* V65 tmp53        [V65    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V66 tmp54        [V66    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
 ;* V67 tmp55        [V67    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
 ;* V68 tmp56        [V68    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
-;  V69 tmp57        [V69,T14] (  3, 24   )     ref  ->  [rbp-0x48]  class-hnd exact spill-single-def "Inlining Arg" <System.Security.Cryptography.OidCollection>
-;  V70 tmp58        [V70,T13] (  4, 32   )     ref  ->  [rbp-0x50]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Security.Cryptography.OidEnumerator>
+;  V69 tmp57        [V69,T09] (  3, 24   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.Security.Cryptography.OidCollection>
+;* V70 tmp58        [V70    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.OidEnumerator>
 ;  V71 tmp59        [V71,T00] (  5,192   )     int  ->  [rbp-0x2C]  spill-single-def "Inlining Arg"
-;  V72 tmp60        [V72,T09] (  2, 96   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Security.Cryptography.OidCollection>
+;  V72 tmp60        [V72,T01] (  3,160   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.Security.Cryptography.OidCollection>
 ;* V73 tmp61        [V73    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V74 tmp62        [V74,T02] (  3,128   )     int  ->  [rbp-0x30]  spill-single-def "Inlining Arg"
+;  V74 tmp62        [V74,T03] (  3,128   )     int  ->  [rbp-0x30]  spill-single-def "Inlining Arg"
 ;* V75 tmp63        [V75    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V76 tmp64        [V76    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Security.Cryptography.Oid>
 ;* V77 tmp65        [V77    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V78 tmp66        [V78,T01] (  5,144   )     ref  ->  rdi         "spilling varStr"
-;  V79 tmp67        [V79,T11] (  2, 64   )     int  ->  rdi         "spilling unroll qmark"
+;  V78 tmp66        [V78,T02] (  5,144   )     ref  ->  rax         "spilling varStr"
+;  V79 tmp67        [V79,T07] (  2, 64   )     int  ->  rax         "spilling unroll qmark"
 ;* V80 tmp68        [V80    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V81 tmp69        [V81    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V82 tmp70        [V82    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Security.Cryptography.OidCollection>
 ;* V83 tmp71        [V83    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509Extension]>
-;  V84 tmp72        [V84,T21] (  3,  6   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Collections.ArrayList>
-;* V85 tmp73        [V85,T48] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
-;  V86 tmp74        [V86,T29] (  4,  4   )    long  ->  r13         "field V13._dateData (fldOffset=0x0)" P-INDEP
-;* V87 tmp75        [V87    ] (  0,  0   )   short  ->  zero-ref    single-def "field V14._offsetMinutes (fldOffset=0x0)" P-INDEP
-;* V88 tmp76        [V88    ] (  0,  0   )    long  ->  zero-ref    single-def "field V14._dateTime (fldOffset=0x8)" P-INDEP
-;* V89 tmp77        [V89    ] (  0,  0   )   short  ->  zero-ref    single-def "field V15._offsetMinutes (fldOffset=0x0)" P-INDEP
-;  V90 tmp78        [V90,T38] (  2,  2   )    long  ->  rdi         single-def "field V15._dateTime (fldOffset=0x8)" P-INDEP
-;  V91 tmp79        [V91,T30] (  4,  4   )    long  ->  r13         "field V16._dateData (fldOffset=0x0)" P-INDEP
-;* V92 tmp80        [V92    ] (  0,  0   )   short  ->  zero-ref    single-def "field V17._offsetMinutes (fldOffset=0x0)" P-INDEP
-;* V93 tmp81        [V93    ] (  0,  0   )    long  ->  zero-ref    single-def "field V17._dateTime (fldOffset=0x8)" P-INDEP
-;* V94 tmp82        [V94    ] (  0,  0   )   short  ->  zero-ref    single-def "field V18._offsetMinutes (fldOffset=0x0)" P-INDEP
-;  V95 tmp83        [V95,T39] (  2,  2   )    long  ->  rdi         single-def "field V18._dateTime (fldOffset=0x8)" P-INDEP
-;* V96 tmp84        [V96    ] (  0,  0   )   short  ->  zero-ref    single-def "field V23._offsetMinutes (fldOffset=0x0)" P-INDEP
-;  V97 tmp85        [V97,T40] (  2,  2   )    long  ->  [rbp-0x38]  do-not-enreg[F] "field V23._dateTime (fldOffset=0x8)" P-INDEP
-;* V98 tmp86        [V98    ] (  0,  0   )    long  ->  zero-ref    single-def "field V24._dateData (fldOffset=0x0)" P-INDEP
-;  V99 tmp87        [V99,T31] (  4,  4   )    long  ->  r12         "field V25._ticks (fldOffset=0x0)" P-INDEP
-;  V100 tmp88       [V100,T41] (  2,  2   )    long  ->  r12         "field V28._ticks (fldOffset=0x0)" P-INDEP
-;* V101 tmp89       [V101    ] (  0,  0   )    long  ->  zero-ref    single-def "field V30._dateData (fldOffset=0x0)" P-INDEP
-;* V102 tmp90       [V102    ] (  0,  0   )   short  ->  zero-ref    "field V33._offsetMinutes (fldOffset=0x0)" P-INDEP
-;* V103 tmp91       [V103    ] (  0,  0   )    long  ->  zero-ref    single-def "field V33._dateTime (fldOffset=0x8)" P-INDEP
-;* V104 tmp92       [V104    ] (  0,  0   )   short  ->  zero-ref    "field V34._offsetMinutes (fldOffset=0x0)" P-INDEP
-;* V105 tmp93       [V105    ] (  0,  0   )    long  ->  zero-ref    single-def "field V34._dateTime (fldOffset=0x8)" P-INDEP
-;* V106 tmp94       [V106    ] (  0,  0   )    long  ->  zero-ref    single-def "field V35._dateData (fldOffset=0x0)" P-INDEP
-;* V107 tmp95       [V107    ] (  0,  0   )    long  ->  zero-ref    single-def "field V36._dateData (fldOffset=0x0)" P-INDEP
-;* V108 tmp96       [V108    ] (  0,  0   )    long  ->  zero-ref    single-def "field V37._dateData (fldOffset=0x0)" P-INDEP
-;  V109 tmp97       [V109,T42] (  2,  2   )    long  ->  rax         single-def "field V38._dateData (fldOffset=0x0)" P-INDEP
-;* V110 tmp98       [V110    ] (  0,  0   )    long  ->  zero-ref    single-def "field V40._dateData (fldOffset=0x0)" P-INDEP
-;  V111 tmp99       [V111,T43] (  2,  2   )    long  ->  rdi         single-def "field V41._dateData (fldOffset=0x0)" P-INDEP
-;* V112 tmp100      [V112    ] (  0,  0   )    long  ->  zero-ref    single-def "field V43._dateData (fldOffset=0x0)" P-INDEP
-;* V113 tmp101      [V113    ] (  0,  0   )    long  ->  zero-ref    single-def "field V44._dateData (fldOffset=0x0)" P-INDEP
-;* V114 tmp102      [V114    ] (  0,  0   )   short  ->  zero-ref    single-def "field V46._offsetMinutes (fldOffset=0x0)" P-INDEP
-;  V115 tmp103      [V115,T44] (  2,  2   )    long  ->  [rbp-0x40]  do-not-enreg[F] "field V46._dateTime (fldOffset=0x8)" P-INDEP
-;* V116 tmp104      [V116    ] (  0,  0   )    long  ->  zero-ref    single-def "field V47._dateData (fldOffset=0x0)" P-INDEP
-;  V117 tmp105      [V117,T32] (  4,  4   )    long  ->  r12         "field V48._ticks (fldOffset=0x0)" P-INDEP
-;  V118 tmp106      [V118,T45] (  2,  2   )    long  ->  r12         "field V51._ticks (fldOffset=0x0)" P-INDEP
-;* V119 tmp107      [V119    ] (  0,  0   )    long  ->  zero-ref    single-def "field V53._dateData (fldOffset=0x0)" P-INDEP
-;* V120 tmp108      [V120    ] (  0,  0   )   short  ->  zero-ref    "field V56._offsetMinutes (fldOffset=0x0)" P-INDEP
-;* V121 tmp109      [V121    ] (  0,  0   )    long  ->  zero-ref    single-def "field V56._dateTime (fldOffset=0x8)" P-INDEP
-;* V122 tmp110      [V122    ] (  0,  0   )   short  ->  zero-ref    "field V57._offsetMinutes (fldOffset=0x0)" P-INDEP
-;* V123 tmp111      [V123    ] (  0,  0   )    long  ->  zero-ref    single-def "field V57._dateTime (fldOffset=0x8)" P-INDEP
-;* V124 tmp112      [V124    ] (  0,  0   )    long  ->  zero-ref    single-def "field V58._dateData (fldOffset=0x0)" P-INDEP
-;* V125 tmp113      [V125    ] (  0,  0   )    long  ->  zero-ref    single-def "field V59._dateData (fldOffset=0x0)" P-INDEP
-;* V126 tmp114      [V126    ] (  0,  0   )    long  ->  zero-ref    single-def "field V60._dateData (fldOffset=0x0)" P-INDEP
-;  V127 tmp115      [V127,T46] (  2,  2   )    long  ->  rax         single-def "field V61._dateData (fldOffset=0x0)" P-INDEP
-;* V128 tmp116      [V128    ] (  0,  0   )    long  ->  zero-ref    single-def "field V63._dateData (fldOffset=0x0)" P-INDEP
-;  V129 tmp117      [V129,T47] (  2,  2   )    long  ->  rdi         single-def "field V64._dateData (fldOffset=0x0)" P-INDEP
-;* V130 tmp118      [V130    ] (  0,  0   )    long  ->  zero-ref    single-def "field V66._dateData (fldOffset=0x0)" P-INDEP
-;* V131 tmp119      [V131    ] (  0,  0   )    long  ->  zero-ref    single-def "field V67._dateData (fldOffset=0x0)" P-INDEP
-;  V132 tmp120      [V132,T52] (  2,  0   )     ref  ->  rdx         "argument with side effect"
-;  V133 tmp121      [V133,T04] (  3, 96   )     ref  ->  rdi         "arr expr"
-;  V134 PSPSym      [V134,T50] (  1,  1   )    long  ->  [rbp-0x60]  do-not-enreg[V] "PSPSym"
-;  V135 cse0        [V135,T06] (  3, 96   )     int  ->  rdx         "CSE #05: aggressive"
-;  V136 cse1        [V136,T07] (  3, 96   )     int  ->  rcx         "CSE #04: aggressive"
-;  V137 cse2        [V137,T08] (  3, 96   )     int  ->  rcx         "CSE #02: aggressive"
-;  V138 cse3        [V138,T05] (  3, 96   )     ref  ->  rdi         "CSE #03: aggressive"
-;  V139 rat0        [V139,T51] (  3, 96   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V84 tmp72        [V84,T16] (  3,  6   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Collections.ArrayList>
+;  V85 tmp73        [V85    ] (  9,176   )  struct (24) [rbp-0x48]  do-not-enreg[XSF] must-init addr-exposed "stack allocated ref class temp" <System.Security.Cryptography.OidEnumerator>
+;* V86 tmp74        [V86,T44] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
+;  V87 tmp75        [V87,T24] (  4,  4   )    long  ->  r13         "field V13._dateData (fldOffset=0x0)" P-INDEP
+;* V88 tmp76        [V88    ] (  0,  0   )   short  ->  zero-ref    single-def "field V14._offsetMinutes (fldOffset=0x0)" P-INDEP
+;* V89 tmp77        [V89    ] (  0,  0   )    long  ->  zero-ref    single-def "field V14._dateTime (fldOffset=0x8)" P-INDEP
+;* V90 tmp78        [V90    ] (  0,  0   )   short  ->  zero-ref    single-def "field V15._offsetMinutes (fldOffset=0x0)" P-INDEP
+;  V91 tmp79        [V91,T34] (  2,  2   )    long  ->  rdi         single-def "field V15._dateTime (fldOffset=0x8)" P-INDEP
+;  V92 tmp80        [V92,T25] (  4,  4   )    long  ->  r13         "field V16._dateData (fldOffset=0x0)" P-INDEP
+;* V93 tmp81        [V93    ] (  0,  0   )   short  ->  zero-ref    single-def "field V17._offsetMinutes (fldOffset=0x0)" P-INDEP
+;* V94 tmp82        [V94    ] (  0,  0   )    long  ->  zero-ref    single-def "field V17._dateTime (fldOffset=0x8)" P-INDEP
+;* V95 tmp83        [V95    ] (  0,  0   )   short  ->  zero-ref    single-def "field V18._offsetMinutes (fldOffset=0x0)" P-INDEP
+;  V96 tmp84        [V96,T35] (  2,  2   )    long  ->  rdi         single-def "field V18._dateTime (fldOffset=0x8)" P-INDEP
+;* V97 tmp85        [V97    ] (  0,  0   )   short  ->  zero-ref    single-def "field V23._offsetMinutes (fldOffset=0x0)" P-INDEP
+;  V98 tmp86        [V98,T36] (  2,  2   )    long  ->  [rbp-0x50]  do-not-enreg[F] "field V23._dateTime (fldOffset=0x8)" P-INDEP
+;* V99 tmp87        [V99    ] (  0,  0   )    long  ->  zero-ref    single-def "field V24._dateData (fldOffset=0x0)" P-INDEP
+;  V100 tmp88       [V100,T26] (  4,  4   )    long  ->  r12         "field V25._ticks (fldOffset=0x0)" P-INDEP
+;  V101 tmp89       [V101,T37] (  2,  2   )    long  ->  r12         "field V28._ticks (fldOffset=0x0)" P-INDEP
+;* V102 tmp90       [V102    ] (  0,  0   )    long  ->  zero-ref    single-def "field V30._dateData (fldOffset=0x0)" P-INDEP
+;* V103 tmp91       [V103    ] (  0,  0   )   short  ->  zero-ref    "field V33._offsetMinutes (fldOffset=0x0)" P-INDEP
+;* V104 tmp92       [V104    ] (  0,  0   )    long  ->  zero-ref    single-def "field V33._dateTime (fldOffset=0x8)" P-INDEP
+;* V105 tmp93       [V105    ] (  0,  0   )   short  ->  zero-ref    "field V34._offsetMinutes (fldOffset=0x0)" P-INDEP
+;* V106 tmp94       [V106    ] (  0,  0   )    long  ->  zero-ref    single-def "field V34._dateTime (fldOffset=0x8)" P-INDEP
+;* V107 tmp95       [V107    ] (  0,  0   )    long  ->  zero-ref    single-def "field V35._dateData (fldOffset=0x0)" P-INDEP
+;* V108 tmp96       [V108    ] (  0,  0   )    long  ->  zero-ref    single-def "field V36._dateData (fldOffset=0x0)" P-INDEP
+;* V109 tmp97       [V109    ] (  0,  0   )    long  ->  zero-ref    single-def "field V37._dateData (fldOffset=0x0)" P-INDEP
+;  V110 tmp98       [V110,T38] (  2,  2   )    long  ->  rax         single-def "field V38._dateData (fldOffset=0x0)" P-INDEP
+;* V111 tmp99       [V111    ] (  0,  0   )    long  ->  zero-ref    single-def "field V40._dateData (fldOffset=0x0)" P-INDEP
+;  V112 tmp100      [V112,T39] (  2,  2   )    long  ->  rdi         single-def "field V41._dateData (fldOffset=0x0)" P-INDEP
+;* V113 tmp101      [V113    ] (  0,  0   )    long  ->  zero-ref    single-def "field V43._dateData (fldOffset=0x0)" P-INDEP
+;* V114 tmp102      [V114    ] (  0,  0   )    long  ->  zero-ref    single-def "field V44._dateData (fldOffset=0x0)" P-INDEP
+;* V115 tmp103      [V115    ] (  0,  0   )   short  ->  zero-ref    single-def "field V46._offsetMinutes (fldOffset=0x0)" P-INDEP
+;  V116 tmp104      [V116,T40] (  2,  2   )    long  ->  [rbp-0x58]  do-not-enreg[F] "field V46._dateTime (fldOffset=0x8)" P-INDEP
+;* V117 tmp105      [V117    ] (  0,  0   )    long  ->  zero-ref    single-def "field V47._dateData (fldOffset=0x0)" P-INDEP
+;  V118 tmp106      [V118,T27] (  4,  4   )    long  ->  r12         "field V48._ticks (fldOffset=0x0)" P-INDEP
+;  V119 tmp107      [V119,T41] (  2,  2   )    long  ->  r12         "field V51._ticks (fldOffset=0x0)" P-INDEP
+;* V120 tmp108      [V120    ] (  0,  0   )    long  ->  zero-ref    single-def "field V53._dateData (fldOffset=0x0)" P-INDEP
+;* V121 tmp109      [V121    ] (  0,  0   )   short  ->  zero-ref    "field V56._offsetMinutes (fldOffset=0x0)" P-INDEP
+;* V122 tmp110      [V122    ] (  0,  0   )    long  ->  zero-ref    single-def "field V56._dateTime (fldOffset=0x8)" P-INDEP
+;* V123 tmp111      [V123    ] (  0,  0   )   short  ->  zero-ref    "field V57._offsetMinutes (fldOffset=0x0)" P-INDEP
+;* V124 tmp112      [V124    ] (  0,  0   )    long  ->  zero-ref    single-def "field V57._dateTime (fldOffset=0x8)" P-INDEP
+;* V125 tmp113      [V125    ] (  0,  0   )    long  ->  zero-ref    single-def "field V58._dateData (fldOffset=0x0)" P-INDEP
+;* V126 tmp114      [V126    ] (  0,  0   )    long  ->  zero-ref    single-def "field V59._dateData (fldOffset=0x0)" P-INDEP
+;* V127 tmp115      [V127    ] (  0,  0   )    long  ->  zero-ref    single-def "field V60._dateData (fldOffset=0x0)" P-INDEP
+;  V128 tmp116      [V128,T42] (  2,  2   )    long  ->  rax         single-def "field V61._dateData (fldOffset=0x0)" P-INDEP
+;* V129 tmp117      [V129    ] (  0,  0   )    long  ->  zero-ref    single-def "field V63._dateData (fldOffset=0x0)" P-INDEP
+;  V130 tmp118      [V130,T43] (  2,  2   )    long  ->  rdi         single-def "field V64._dateData (fldOffset=0x0)" P-INDEP
+;* V131 tmp119      [V131    ] (  0,  0   )    long  ->  zero-ref    single-def "field V66._dateData (fldOffset=0x0)" P-INDEP
+;* V132 tmp120      [V132    ] (  0,  0   )    long  ->  zero-ref    single-def "field V67._dateData (fldOffset=0x0)" P-INDEP
+;  V133 tmp121      [V133,T48] (  2,  0   )     ref  ->  rdx         "argument with side effect"
+;  V134 tmp122      [V134,T04] (  3, 96   )     ref  ->  rax         "arr expr"
+;  V135 PSPSym      [V135,T46] (  1,  1   )    long  ->  [rbp-0x60]  do-not-enreg[V] "PSPSym"
+;  V136 cse0        [V136,T05] (  3, 96   )     int  ->  rax         "CSE #02: aggressive"
+;  V137 rat0        [V137,T47] (  3, 96   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 56
 
 G_M14137_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 56
        lea      rbp, [rsp+0x60]
+       vxorps   xmm8, xmm8, xmm8
+       vmovdqu  xmmword ptr [rbp-0x48], xmm8
+       xor      eax, eax
+       mov      qword ptr [rbp-0x38], rax
        mov      qword ptr [rbp-0x60], rsp
        mov      rbx, rdi
        mov      r14, rsi
        mov      r15, r8
-						;; size=32 bbWeight=1 PerfScore 8.50
+						;; size=48 bbWeight=1 PerfScore 12.08
 G_M14137_IG02:
        mov      rdi, rbx
        mov      rsi, rdx
        mov      rdx, rcx
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:CertMatchesIds(System.Security.Cryptography.X509Certificates.X509Certificate2,byref,byref):ubyte
        call     [rax]System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:CertMatchesIds(System.Security.Cryptography.X509Certificates.X509Certificate2,byref,byref):ubyte
        test     eax, eax
        je       G_M14137_IG20
        cmp      byte  ptr [rbx], bl
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.X509Certificates.X509Certificate:GetNotAfter():System.DateTime:this
        call     [rax]System.Security.Cryptography.X509Certificates.X509Certificate:GetNotAfter():System.DateTime:this
        mov      r13, rax
        mov      rdi, 0xD1FFAB1E
        and      rdi, r13
        je       SHORT G_M14137_IG03
        mov      rax, 0xD1FFAB1E
        cmp      rdi, rax
        je       SHORT G_M14137_IG05
 						;; size=79 bbWeight=1 PerfScore 15.00
 G_M14137_IG03:
        mov      rdi, 0xD1FFAB1E      ; data for System.TimeZoneInfo:s_cachedData
        mov      r12, gword ptr [rdi]
        mov      rdi, gword ptr [r12+0x08]
        test     rdi, rdi
        jne      SHORT G_M14137_IG04
        mov      rdi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.TimeZoneInfo+CachedData:CreateLocal():System.TimeZoneInfo:this
        call     [rax]System.TimeZoneInfo+CachedData:CreateLocal():System.TimeZoneInfo:this
        mov      rdi, rax
 						;; size=41 bbWeight=1 PerfScore 9.25
 G_M14137_IG04:
        mov      rsi, r13
        mov      rcx, r12
        mov      edx, 2
        mov      rax, 0xD1FFAB1E      ; code for System.TimeZoneInfo:GetUtcOffset(System.DateTime,int,System.TimeZoneInfo+CachedData):System.TimeSpan:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.TimeZoneInfo:GetUtcOffset(System.DateTime,int,System.TimeZoneInfo+CachedData):System.TimeSpan:this
        mov      r12, rax
        jmp      SHORT G_M14137_IG06
        align    [0 bytes for IG14]
 						;; size=30 bbWeight=1 PerfScore 9.25
 G_M14137_IG05:
        xor      r12d, r12d
 						;; size=3 bbWeight=1 PerfScore 0.25
 G_M14137_IG06:
        mov      rdi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.DateTimeOffset:ValidateOffset(System.TimeSpan):short
        call     [rax]System.DateTimeOffset:ValidateOffset(System.TimeSpan):short
        mov      rdi, r13
        mov      rsi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.DateTimeOffset:ValidateDate(System.DateTime,System.TimeSpan):System.DateTime
        call     [rax]System.DateTimeOffset:ValidateDate(System.DateTime,System.TimeSpan):System.DateTime
-       mov      qword ptr [rbp-0x38], rax
+       mov      qword ptr [rbp-0x50], rax
        movsx    rdi, word  ptr [r15+0x78]
        mov      rdi, qword ptr [r15+0x80]
        mov      rax, 0xD1FFAB1E
-       and      rax, qword ptr [rbp-0x38]
+       and      rax, qword ptr [rbp-0x50]
        mov      rcx, 0xD1FFAB1E
        or       rax, rcx
        mov      rcx, 0xD1FFAB1E
        and      rdi, rcx
        mov      rcx, 0xD1FFAB1E
        or       rdi, rcx
        mov      rcx, 0xD1FFAB1E
        and      rax, rcx
        and      rdi, rcx
        cmp      rax, rdi
        jl       G_M14137_IG20
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.X509Certificates.X509Certificate:GetNotBefore():System.DateTime:this
        call     [rax]System.Security.Cryptography.X509Certificates.X509Certificate:GetNotBefore():System.DateTime:this
        mov      r13, rax
        mov      rdi, 0xD1FFAB1E
        and      rdi, r13
        je       SHORT G_M14137_IG07
        mov      rax, 0xD1FFAB1E
        cmp      rdi, rax
        je       SHORT G_M14137_IG09
 						;; size=175 bbWeight=1 PerfScore 26.75
 G_M14137_IG07:
        mov      rdi, 0xD1FFAB1E      ; data for System.TimeZoneInfo:s_cachedData
        mov      r12, gword ptr [rdi]
        mov      rdi, gword ptr [r12+0x08]
        test     rdi, rdi
        jne      SHORT G_M14137_IG08
        mov      rdi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.TimeZoneInfo+CachedData:CreateLocal():System.TimeZoneInfo:this
        call     [rax]System.TimeZoneInfo+CachedData:CreateLocal():System.TimeZoneInfo:this
        mov      rdi, rax
 						;; size=41 bbWeight=1 PerfScore 9.25
 G_M14137_IG08:
        mov      rsi, r13
        mov      rcx, r12
        mov      edx, 2
        mov      rax, 0xD1FFAB1E      ; code for System.TimeZoneInfo:GetUtcOffset(System.DateTime,int,System.TimeZoneInfo+CachedData):System.TimeSpan:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.TimeZoneInfo:GetUtcOffset(System.DateTime,int,System.TimeZoneInfo+CachedData):System.TimeSpan:this
        mov      r12, rax
        jmp      SHORT G_M14137_IG10
 						;; size=30 bbWeight=1 PerfScore 9.25
 G_M14137_IG09:
        xor      r12d, r12d
 						;; size=3 bbWeight=1 PerfScore 0.25
 G_M14137_IG10:
        mov      rdi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.DateTimeOffset:ValidateOffset(System.TimeSpan):short
        call     [rax]System.DateTimeOffset:ValidateOffset(System.TimeSpan):short
        mov      rdi, r13
        mov      rsi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.DateTimeOffset:ValidateDate(System.DateTime,System.TimeSpan):System.DateTime
        call     [rax]System.DateTimeOffset:ValidateDate(System.DateTime,System.TimeSpan):System.DateTime
-       mov      qword ptr [rbp-0x40], rax
+       mov      qword ptr [rbp-0x58], rax
        mov      rdi, qword ptr [r15+0x80]
        mov      rax, 0xD1FFAB1E
-       and      rax, qword ptr [rbp-0x40]
+       and      rax, qword ptr [rbp-0x58]
        mov      rcx, 0xD1FFAB1E
        or       rax, rcx
        mov      rcx, 0xD1FFAB1E
        and      rdi, rcx
        mov      rcx, 0xD1FFAB1E
        or       rdi, rcx
        mov      rcx, 0xD1FFAB1E
        and      rax, rcx
        and      rdi, rcx
        cmp      rax, rdi
        jg       G_M14137_IG20
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.X509Certificates.X509Certificate2:get_Extensions():System.Security.Cryptography.X509Certificates.X509ExtensionCollection:this
        call     [rax]System.Security.Cryptography.X509Certificates.X509Certificate2:get_Extensions():System.Security.Cryptography.X509Certificates.X509ExtensionCollection:this
        mov      r15, rax
        xor      r13d, r13d
        xor      r12d, r12d
        mov      rdi, gword ptr [r15+0x08]
        cmp      dword ptr [rdi+0x10], 0
        jle      G_M14137_IG20
 						;; size=160 bbWeight=1 PerfScore 26.25
 G_M14137_IG11:
        mov      rdi, r15
        mov      esi, r12d
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.X509Certificates.X509ExtensionCollection:get_Item(int):System.Security.Cryptography.X509Certificates.X509Extension:this
        call     [rax]System.Security.Cryptography.X509Certificates.X509ExtensionCollection:get_Item(int):System.Security.Cryptography.X509Certificates.X509Extension:this
        mov      rdi, rax
        test     rdi, rdi
        je       G_M14137_IG18
 						;; size=30 bbWeight=8 PerfScore 42.00
 G_M14137_IG12:
        mov      rax, 0xD1FFAB1E      ; System.Security.Cryptography.X509Certificates.X509EnhancedKeyUsageExtension
        cmp      qword ptr [rdi], rax
        jne      G_M14137_IG18
 						;; size=19 bbWeight=16 PerfScore 68.00
 G_M14137_IG13:
        test     r13d, r13d
        jne      G_M14137_IG20
        mov      r13d, 1
        cmp      byte  ptr [rdi+0x18], 0
        je       G_M14137_IG20
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.X509Certificates.X509EnhancedKeyUsageExtension:get_EnhancedKeyUsages():System.Security.Cryptography.OidCollection:this
        call     [rax]System.Security.Cryptography.X509Certificates.X509EnhancedKeyUsageExtension:get_EnhancedKeyUsages():System.Security.Cryptography.OidCollection:this
-       mov      gword ptr [rbp-0x48], rax
        cmp      byte  ptr [rax], al
+       vxorps   xmm0, xmm0, xmm0
+       vmovdqu  xmmword ptr [rbp-0x48], xmm0
+       vmovdqu  xmmword ptr [rbp-0x44], xmm0
        mov      rdi, 0xD1FFAB1E      ; System.Security.Cryptography.OidEnumerator
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x50], rax
-       lea      rdi, bword ptr [rax+0x08]
-       mov      rsi, gword ptr [rbp-0x48]
-       call     CORINFO_HELP_ASSIGN_REF
-       mov      rax, gword ptr [rbp-0x50]
-       mov      dword ptr [rax+0x10], -1
-						;; size=86 bbWeight=4 PerfScore 78.00
+       mov      qword ptr [rbp-0x48], rdi
+       mov      gword ptr [rbp-0x40], rax
+       mov      dword ptr [rbp-0x38], -1
+						;; size=78 bbWeight=4 PerfScore 69.33
 G_M14137_IG14:
-       mov      ecx, dword ptr [rax+0x10]
-       mov      rdi, gword ptr [rax+0x08]
-       mov      edx, dword ptr [rdi+0x10]
-       lea      esi, [rdx-0x01]
-       cmp      ecx, esi
-       jge      SHORT G_M14137_IG20
-       inc      ecx
-       mov      dword ptr [rax+0x10], ecx
+       mov      eax, dword ptr [rbp-0x38]
+       mov      rdi, gword ptr [rbp-0x40]
+       mov      edi, dword ptr [rdi+0x10]
+       dec      edi
+       cmp      eax, edi
+       jge      G_M14137_IG20
+       inc      eax
+       mov      dword ptr [rbp-0x38], eax
+       mov      rax, gword ptr [rbp-0x40]
+       mov      ecx, dword ptr [rbp-0x38]
        mov      dword ptr [rbp-0x2C], ecx
+       mov      edx, dword ptr [rax+0x10]
        mov      dword ptr [rbp-0x30], edx
        cmp      ecx, edx
        jae      G_M14137_IG27
-						;; size=36 bbWeight=32 PerfScore 392.00
+						;; size=49 bbWeight=32 PerfScore 448.00
 G_M14137_IG15:
-       mov      rdi, gword ptr [rdi+0x08]
-       cmp      ecx, dword ptr [rdi+0x08]
+       mov      rax, gword ptr [rax+0x08]
+       cmp      ecx, dword ptr [rax+0x08]
        jae      G_M14137_IG28
-       mov      ecx, ecx
-       mov      rdi, gword ptr [rdi+8*rcx+0x10]
-       mov      rdi, gword ptr [rdi+0x08]
-       test     rdi, rdi
+       mov      edi, ecx
+       mov      rax, gword ptr [rax+8*rdi+0x10]
+       mov      rax, gword ptr [rax+0x08]
+       test     rax, rax
        je       SHORT G_M14137_IG14
 						;; size=29 bbWeight=16 PerfScore 184.00
 G_M14137_IG16:
-       cmp      dword ptr [rdi+0x08], 17
+       cmp      dword ptr [rax+0x08], 17
        jne      SHORT G_M14137_IG14
 						;; size=6 bbWeight=8 PerfScore 32.00
 G_M14137_IG17:
-       vmovups  ymm0, ymmword ptr [rdi+0x0C]
-       vmovups  ymm1, ymmword ptr [rdi+0x0E]
+       vmovups  ymm0, ymmword ptr [rax+0x0C]
+       vmovups  ymm1, ymmword ptr [rax+0x0E]
        vpxor    ymm1, ymm1, ymmword ptr [reloc @RWD00]
        vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD32], -34
        vptest   ymm0, ymm0
-       sete     dil
-       movzx    rdi, dil
-       test     edi, edi
+       sete     al
+       movzx    rax, al
+       test     eax, eax
        je       SHORT G_M14137_IG14
-						;; size=46 bbWeight=16 PerfScore 344.00
+						;; size=44 bbWeight=16 PerfScore 344.00
 G_M14137_IG18:
        inc      r12d
        mov      rax, gword ptr [r15+0x08]
        cmp      r12d, dword ptr [rax+0x10]
        jl       G_M14137_IG11
 						;; size=17 bbWeight=8 PerfScore 50.00
 G_M14137_IG19:
        test     r13d, r13d
        jne      SHORT G_M14137_IG24
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M14137_IG20:
        xor      eax, eax
 						;; size=2 bbWeight=1 PerfScore 0.25
 G_M14137_IG21:
        vzeroupper 
        add      rsp, 56
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=18 bbWeight=1 PerfScore 5.25
 G_M14137_IG22:
        mov      eax, 1
 						;; size=5 bbWeight=1 PerfScore 0.25
 G_M14137_IG23:
        vzeroupper 
        add      rsp, 56
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=18 bbWeight=1 PerfScore 5.25
 G_M14137_IG24:
        mov      rdi, 0xD1FFAB1E      ; System.Security.Cryptography.X509Certificates.X509Certificate2Collection
        call     CORINFO_HELP_NEWSFAST
        mov      r15, rax
        mov      rdi, 0xD1FFAB1E      ; System.Collections.ArrayList
        call     CORINFO_HELP_NEWSFAST
        mov      r13, rax
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
        je       SHORT G_M14137_IG26
 						;; size=51 bbWeight=1 PerfScore 7.25
 G_M14137_IG25:
        mov      rdi, 0xD1FFAB1E      ; data for System.Array+EmptyArray`1[System.Object]:Value
        mov      rsi, gword ptr [rdi]
        lea      rdi, bword ptr [r13+0x08]
        call     CORINFO_HELP_ASSIGN_REF
        lea      rdi, bword ptr [r15+0x08]
        mov      rsi, r13
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, r15
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.CollectionBase:System.Collections.IList.Add(System.Object):int:this
        call     [rax]System.Collections.CollectionBase:System.Collections.IList.Add(System.Object):int:this
        mov      rdi, r14
        mov      rsi, r15
        mov      edx, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.Pkcs.SignerInfo:CheckSignature(System.Security.Cryptography.X509Certificates.X509Certificate2Collection,ubyte):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Security.Cryptography.Pkcs.SignerInfo:CheckSignature(System.Security.Cryptography.X509Certificates.X509Certificate2Collection,ubyte):this
        jmp      G_M14137_IG22
 						;; size=82 bbWeight=1 PerfScore 18.25
 G_M14137_IG26:
        mov      rdi, 0xD1FFAB1E      ; System.Array+EmptyArray`1[System.Object]
        call     CORINFO_HELP_GET_GCSTATIC_BASE
        jmp      SHORT G_M14137_IG25
 						;; size=17 bbWeight=0 PerfScore 0.00
 G_M14137_IG27:
        mov      edi, 0x4351
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdx, rax
        mov      esi, dword ptr [rbp-0x30]
        mov      edi, dword ptr [rbp-0x2C]
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
        call     [rax]System.ArgumentOutOfRangeException:ThrowGreaterEqual[uint](uint,uint,System.String)
        int3     
 						;; size=42 bbWeight=0 PerfScore 0.00
 G_M14137_IG28:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M14137_IG29:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        push     rax
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
        lea      rbp, [rbp+0x60]
 						;; size=22 bbWeight=0 PerfScore 0.00
 G_M14137_IG30:
        lea      rax, G_M14137_IG20
 						;; size=7 bbWeight=0 PerfScore 0.00
 G_M14137_IG31:
        vzeroupper 
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=18 bbWeight=0 PerfScore 0.00
 RWD00  	dq	0036002E0033002Eh, 0035002E0031002Eh, 0037002E0035002Eh, 0038002E0033002Eh
 RWD32  	dq	002E0033002E0031h, 002E0031002E0036h, 002E0035002E0035h, 002E0033002E0037h
 
 
-; Total bytes of code 1156, prolog size 32, PerfScore 1341.75, instruction count 276, allocated bytes for code 1156 (MethodHash=8e53c8c6) for method System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:CheckCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.Pkcs.SignerInfo,byref,byref,System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo):ubyte (FullOpts)
+; Total bytes of code 1175, prolog size 48, PerfScore 1392.67, instruction count 281, allocated bytes for code 1175 (MethodHash=8e53c8c6) for method System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:CheckCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.Pkcs.SignerInfo,byref,byref,System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo):ubyte (FullOpts)
18 (1.43 % of base) - System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:TryGetCertIds(System.Security.Cryptography.Pkcs.SignerInfo,byref,byref):ubyte
 ; Assembly listing for method System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:TryGetCertIds(System.Security.Cryptography.Pkcs.SignerInfo,byref,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 33 single block inlinees; 7 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T47] (  5,  5   )     ref  ->  r14         class-hnd single-def <System.Security.Cryptography.Pkcs.SignerInfo>
-;  V01 arg1         [V01,T27] (  7, 52   )   byref  ->  rbx         single-def
-;  V02 arg2         [V02,T28] (  7, 52   )   byref  ->  r15         single-def
-;* V03 loc0         [V03,T53] (  0,  0   )    long  ->  zero-ref    class-hnd exact single-def <System.Security.Cryptography.CryptographicAttributeObjectEnumerator>
-;  V04 loc1         [V04,T46] (  3, 12   )     ref  ->  r14         class-hnd exact <System.Security.Cryptography.CryptographicAttributeObject>
+;  V00 arg0         [V00,T41] (  5,  5   )     ref  ->  r14         class-hnd single-def <System.Security.Cryptography.Pkcs.SignerInfo>
+;  V01 arg1         [V01,T22] (  7, 52   )   byref  ->  rbx         single-def
+;  V02 arg2         [V02,T23] (  7, 52   )   byref  ->  r15         single-def
+;* V03 loc0         [V03,T48] (  0,  0   )    long  ->  zero-ref    class-hnd exact single-def <System.Security.Cryptography.CryptographicAttributeObjectEnumerator>
+;  V04 loc1         [V04,T40] (  3, 12   )     ref  ->  r14         class-hnd exact <System.Security.Cryptography.CryptographicAttributeObject>
 ;* V05 loc2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
-;  V06 loc3         [V06,T04] (  4,100   )     ref  ->  r13         class-hnd exact <System.Security.Cryptography.AsnEncodedDataEnumerator>
-;  V07 loc4         [V07,T21] (  4, 64   )     ref  ->  r14         class-hnd <System.Security.Cryptography.AsnEncodedData>
+;* V06 loc3         [V06,T46] (  0,  0   )    long  ->  zero-ref    class-hnd exact <System.Security.Cryptography.AsnEncodedDataEnumerator>
+;  V07 loc4         [V07,T17] (  4, 64   )     ref  ->  r14         class-hnd <System.Security.Cryptography.AsnEncodedData>
 ;* V08 loc5         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
 ;* V09 loc6         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-ret <System.Security.Cryptography.Pkcs.Asn1.SigningCertificateAsn>
-;* V10 loc7         [V10,T52] (  0,  0   )   ubyte  ->  zero-ref    do-not-enreg[Z] EH-live
+;* V10 loc7         [V10,T47] (  0,  0   )   ubyte  ->  zero-ref    do-not-enreg[Z] EH-live
 ;* V11 loc8         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-ret <System.Security.Cryptography.Pkcs.Asn1.SigningCertificateV2Asn>
 ;# V12 OutArgs      [V12    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V13 tmp1         [V13,T38] (  3, 24   )     ref  ->  rax         class-hnd exact "dup spill" <System.Security.Cryptography.Oid>
+;  V13 tmp1         [V13,T32] (  3, 24   )     ref  ->  rax         class-hnd exact "dup spill" <System.Security.Cryptography.Oid>
 ;* V14 tmp2         [V14    ] (  0,  0   )     ref  ->  zero-ref   
-;  V15 tmp3         [V15,T33] (  9, 32   )     ref  ->  rdi        
-;  V16 tmp4         [V16,T11] (  3, 96   )     ref  ->  rax         class-hnd exact "dup spill" <System.Security.Cryptography.Oid>
+;  V15 tmp3         [V15,T28] (  9, 32   )     ref  ->  rax        
+;  V16 tmp4         [V16,T12] (  3, 96   )     ref  ->  rax         class-hnd exact "dup spill" <System.Security.Cryptography.Oid>
 ;* V17 tmp5         [V17    ] (  0,  0   )     ref  ->  zero-ref   
-;  V18 tmp6         [V18,T01] ( 10,144   )     ref  ->  r12        
+;  V18 tmp6         [V18,T02] ( 10,144   )     ref  ->  r13        
 ;* V19 tmp7         [V19    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
-;  V20 tmp8         [V20,T22] (  2, 64   )  struct (88) [rbp-0x80]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Nullable`1[System.Security.Cryptography.Pkcs.Asn1.EssCertIdV2]>
+;  V20 tmp8         [V20,T18] (  2, 64   )  struct (88) [rbp-0x78]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Nullable`1[System.Security.Cryptography.Pkcs.Asn1.EssCertIdV2]>
 ;* V21 tmp9         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impSpillSpecialSideEff" <System.Security.Cryptography.CryptographicException>
 ;* V22 tmp10        [V22    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
-;  V23 tmp11        [V23,T23] (  2, 64   )  struct (56) [rbp-0xB8]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Nullable`1[System.Security.Cryptography.Pkcs.Asn1.EssCertId]>
+;  V23 tmp11        [V23,T19] (  2, 64   )  struct (56) [rbp-0xB0]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Nullable`1[System.Security.Cryptography.Pkcs.Asn1.EssCertId]>
 ;* V24 tmp12        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impSpillSpecialSideEff" <System.Security.Cryptography.CryptographicException>
 ;* V25 tmp13        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline return value spill temp" <System.Security.Cryptography.CryptographicAttributeObjectCollection>
-;  V26 tmp14        [V26,T51] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Security.Cryptography.CryptographicAttributeObjectCollection>
-;  V27 tmp15        [V27,T50] (  5,  5   )     ref  ->  rax        
-;  V28 tmp16        [V28,T48] (  3,  6   )     ref  ->  r13         class-hnd exact single-def "dup spill" <System.Security.Cryptography.CryptographicAttributeObjectCollection>
+;  V26 tmp14        [V26,T45] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Security.Cryptography.CryptographicAttributeObjectCollection>
+;  V27 tmp15        [V27,T44] (  5,  5   )     ref  ->  rax        
+;  V28 tmp16        [V28,T42] (  3,  6   )     ref  ->  r13         class-hnd exact single-def "dup spill" <System.Security.Cryptography.CryptographicAttributeObjectCollection>
 ;* V29 tmp17        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.Security.Cryptography.CryptographicAttributeObjectCollection>
 ;* V30 tmp18        [V30    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.CryptographicAttributeObjectEnumerator>
-;  V31 tmp19        [V31,T35] (  2, 32   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Security.Cryptography.CryptographicAttributeObjectCollection>
-;  V32 tmp20        [V32,T29] (  4, 48   )     int  ->  rax         "Inlining Arg"
-;  V33 tmp21        [V33,T32] (  3, 40   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.CryptographicAttributeObject]>
+;  V31 tmp19        [V31,T29] (  2, 32   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Security.Cryptography.CryptographicAttributeObjectCollection>
+;  V32 tmp20        [V32,T24] (  4, 48   )     int  ->  rax         "Inlining Arg"
+;  V33 tmp21        [V33,T27] (  3, 40   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.CryptographicAttributeObject]>
 ;* V34 tmp22        [V34    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
-;  V35 tmp23        [V35,T42] (  2, 16   )     int  ->  rax         "spilling unroll qmark"
+;  V35 tmp23        [V35,T36] (  2, 16   )     int  ->  rdi         "spilling unroll qmark"
 ;* V36 tmp24        [V36    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
-;  V37 tmp25        [V37,T43] (  2, 16   )     int  ->  rdi         "spilling unroll qmark"
-;  V38 tmp26        [V38,T39] (  3, 24   )     ref  ->  r14         class-hnd exact "Inlining Arg" <System.Security.Cryptography.AsnEncodedDataCollection>
-;  V39 tmp27        [V39,T34] (  4, 32   )     ref  ->  r13         class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.AsnEncodedDataEnumerator>
-;* V40 tmp28        [V40,T26] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Security.Cryptography.AsnEncodedDataCollection>
-;  V41 tmp29        [V41,T00] (  4,192   )     int  ->  rax         "Inlining Arg"
-;  V42 tmp30        [V42,T20] (  2, 96   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.AsnEncodedData]>
+;  V37 tmp25        [V37,T37] (  2, 16   )     int  ->  rax         "spilling unroll qmark"
+;  V38 tmp26        [V38,T33] (  3, 24   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.Security.Cryptography.AsnEncodedDataCollection>
+;* V39 tmp27        [V39    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.AsnEncodedDataEnumerator>
+;  V40 tmp28        [V40,T05] (  2,128   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.Security.Cryptography.AsnEncodedDataCollection>
+;  V41 tmp29        [V41,T00] (  4,192   )     int  ->  rdi         "Inlining Arg"
+;  V42 tmp30        [V42,T01] (  3,160   )     ref  ->  rax         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.AsnEncodedData]>
 ;* V43 tmp31        [V43    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
-;  V44 tmp32        [V44,T24] (  2, 64   )     int  ->  rax         "spilling unroll qmark"
-;  V45 tmp33        [V45,T02] (  4,128   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
-;  V46 tmp34        [V46    ] (  8,256   )  struct (16) [rbp-0xC8]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
+;  V44 tmp32        [V44,T20] (  2, 64   )     int  ->  rax         "spilling unroll qmark"
+;  V45 tmp33        [V45,T03] (  4,128   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
+;  V46 tmp34        [V46    ] (  8,256   )  struct (16) [rbp-0xC0]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
 ;* V47 tmp35        [V47    ] (  0,  0   )  struct (48) zero-ref    do-not-enreg[S] "Inlining Arg" <System.Security.Cryptography.Pkcs.Asn1.EssCertId>
 ;* V48 tmp36        [V48    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
-;  V49 tmp37        [V49,T25] (  2, 64   )     int  ->  rax         "spilling unroll qmark"
-;  V50 tmp38        [V50,T03] (  4,128   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
-;  V51 tmp39        [V51    ] (  8,256   )  struct (16) [rbp-0xD8]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
+;  V49 tmp37        [V49,T21] (  2, 64   )     int  ->  rax         "spilling unroll qmark"
+;  V50 tmp38        [V50,T04] (  4,128   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
+;  V51 tmp39        [V51    ] (  8,256   )  struct (16) [rbp-0xD0]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
 ;* V52 tmp40        [V52    ] (  0,  0   )  struct (80) zero-ref    do-not-enreg[S] "Inlining Arg" <System.Security.Cryptography.Pkcs.Asn1.EssCertIdV2>
 ;* V53 tmp41        [V53    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V54 tmp42        [V54    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V55 tmp43        [V55    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Security.Cryptography.AsnEncodedDataCollection>
 ;* V56 tmp44        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.AsnEncodedData]>
 ;* V57 tmp45        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V58 tmp46        [V58    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V59 tmp47        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Security.Cryptography.CryptographicAttributeObjectCollection>
 ;* V60 tmp48        [V60    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.CryptographicAttributeObject]>
-;  V61 tmp49        [V61    ] (  8, 43   )  struct (24) [rbp-0xF0]  do-not-enreg[XSF] must-init addr-exposed "stack allocated ref class temp" <System.Security.Cryptography.CryptographicAttributeObjectEnumerator>
-;  V62 tmp50        [V62,T49] (  3,  6   )     int  ->  rcx         "Single return block return value"
-;  V63 tmp51        [V63,T30] (  3, 48   )     ref  ->  rax         "field V09.Certs (fldOffset=0x0)" P-INDEP
-;  V64 tmp52        [V64,T44] (  1, 16   )     ref  ->  rdx         "field V09.Policies (fldOffset=0x8)" P-INDEP
-;  V65 tmp53        [V65,T31] (  3, 48   )     ref  ->  rax         "field V11.Certs (fldOffset=0x0)" P-INDEP
-;  V66 tmp54        [V66,T45] (  1, 16   )     ref  ->  rdx         "field V11.Policies (fldOffset=0x8)" P-INDEP
-;* V67 tmp55        [V67    ] (  0,  0   )     ref  ->  zero-ref    "field V19._object (fldOffset=0x0)" P-INDEP
-;* V68 tmp56        [V68    ] (  0,  0   )     int  ->  zero-ref    "field V19._index (fldOffset=0x8)" P-INDEP
-;* V69 tmp57        [V69    ] (  0,  0   )     int  ->  zero-ref    "field V19._length (fldOffset=0xc)" P-INDEP
-;* V70 tmp58        [V70    ] (  0,  0   )     ref  ->  zero-ref    "field V22._object (fldOffset=0x0)" P-INDEP
-;* V71 tmp59        [V71    ] (  0,  0   )     int  ->  zero-ref    "field V22._index (fldOffset=0x8)" P-INDEP
-;* V72 tmp60        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0xc)" P-INDEP
-;  V73 tmp61        [V73,T05] (  4, 96   )     ref  ->  [rbp-0xC8]  do-not-enreg[] "field V46._object (fldOffset=0x0)" P-DEP
-;  V74 tmp62        [V74,T07] (  4, 96   )     int  ->  [rbp-0xC0]  do-not-enreg[] "field V46._index (fldOffset=0x8)" P-DEP
-;  V75 tmp63        [V75,T08] (  4, 96   )     int  ->  [rbp-0xBC]  do-not-enreg[] "field V46._length (fldOffset=0xc)" P-DEP
-;  V76 tmp64        [V76,T06] (  4, 96   )     ref  ->  [rbp-0xD8]  do-not-enreg[] "field V51._object (fldOffset=0x0)" P-DEP
-;  V77 tmp65        [V77,T09] (  4, 96   )     int  ->  [rbp-0xD0]  do-not-enreg[] "field V51._index (fldOffset=0x8)" P-DEP
-;  V78 tmp66        [V78,T10] (  4, 96   )     int  ->  [rbp-0xCC]  do-not-enreg[] "field V51._length (fldOffset=0xc)" P-DEP
-;* V79 tmp67        [V79    ] (  0,  0   )   ubyte  ->  zero-ref    "V20.[000..001)"
-;* V80 tmp68        [V80    ] (  0,  0   )   ubyte  ->  zero-ref    "V23.[000..001)"
-;  V81 tmp69        [V81,T40] (  3, 24   )     ref  ->  rdi         "arr expr"
-;  V82 tmp70        [V82,T12] (  3, 96   )     ref  ->  rdi         "arr expr"
-;  V83 PSPSym       [V83,T54] (  1,  1   )    long  ->  [rbp-0x100]  do-not-enreg[V] "PSPSym"
-;  V84 cse0         [V84,T17] (  3, 96   )     int  ->  rsi         "CSE #15: moderate"
-;  V85 cse1         [V85,T13] (  3, 96   )     ref  ->  rdi         "CSE #14: moderate"
-;  V86 cse2         [V86,T18] (  3, 96   )     int  ->  rax         "CSE #13: moderate"
-;  V87 cse3         [V87,T19] (  3, 96   )     int  ->  rax         "CSE #11: moderate"
-;  V88 cse4         [V88,T14] (  2, 64   )     ref  ->  rdi         "CSE #12: moderate"
-;  V89 cse5         [V89,T41] (  3, 24   )     int  ->  rdi         "CSE #16: moderate"
-;  V90 cse6         [V90,T36] (  2, 32   )     int  ->  rdi         "CSE #07: moderate"
-;  V91 cse7         [V91,T37] (  2, 32   )     int  ->  rdi         "CSE #10: moderate"
-;  V92 rat0         [V92,T57] (  3, 24   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V93 rat1         [V93,T58] (  3, 24   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V94 rat2         [V94,T55] (  3, 96   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V95 rat3         [V95,T56] (  3, 96   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V96 rat4         [V96,T15] (  3, 96   )   byref  ->  rsi         "ReplaceWithLclVar is creating a new local variable"
-;  V97 rat5         [V97,T16] (  3, 96   )   byref  ->  rdi         "ReplaceWithLclVar is creating a new local variable"
+;  V61 tmp49        [V61    ] (  8, 43   )  struct (24) [rbp-0xE8]  do-not-enreg[XSF] must-init addr-exposed "stack allocated ref class temp" <System.Security.Cryptography.CryptographicAttributeObjectEnumerator>
+;  V62 tmp50        [V62    ] (  9,176   )  struct (24) [rbp-0x100]  do-not-enreg[XSF] must-init addr-exposed "stack allocated ref class temp" <System.Security.Cryptography.AsnEncodedDataEnumerator>
+;  V63 tmp51        [V63,T43] (  3,  6   )     int  ->  rcx         "Single return block return value"
+;  V64 tmp52        [V64,T25] (  3, 48   )     ref  ->  rax         "field V09.Certs (fldOffset=0x0)" P-INDEP
+;  V65 tmp53        [V65,T38] (  1, 16   )     ref  ->  rdx         "field V09.Policies (fldOffset=0x8)" P-INDEP
+;  V66 tmp54        [V66,T26] (  3, 48   )     ref  ->  rax         "field V11.Certs (fldOffset=0x0)" P-INDEP
+;  V67 tmp55        [V67,T39] (  1, 16   )     ref  ->  rdx         "field V11.Policies (fldOffset=0x8)" P-INDEP
+;* V68 tmp56        [V68    ] (  0,  0   )     ref  ->  zero-ref    "field V19._object (fldOffset=0x0)" P-INDEP
+;* V69 tmp57        [V69    ] (  0,  0   )     int  ->  zero-ref    "field V19._index (fldOffset=0x8)" P-INDEP
+;* V70 tmp58        [V70    ] (  0,  0   )     int  ->  zero-ref    "field V19._length (fldOffset=0xc)" P-INDEP
+;* V71 tmp59        [V71    ] (  0,  0   )     ref  ->  zero-ref    "field V22._object (fldOffset=0x0)" P-INDEP
+;* V72 tmp60        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V22._index (fldOffset=0x8)" P-INDEP
+;* V73 tmp61        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0xc)" P-INDEP
+;  V74 tmp62        [V74,T06] (  4, 96   )     ref  ->  [rbp-0xC0]  do-not-enreg[] "field V46._object (fldOffset=0x0)" P-DEP
+;  V75 tmp63        [V75,T08] (  4, 96   )     int  ->  [rbp-0xB8]  do-not-enreg[] "field V46._index (fldOffset=0x8)" P-DEP
+;  V76 tmp64        [V76,T09] (  4, 96   )     int  ->  [rbp-0xB4]  do-not-enreg[] "field V46._length (fldOffset=0xc)" P-DEP
+;  V77 tmp65        [V77,T07] (  4, 96   )     ref  ->  [rbp-0xD0]  do-not-enreg[] "field V51._object (fldOffset=0x0)" P-DEP
+;  V78 tmp66        [V78,T10] (  4, 96   )     int  ->  [rbp-0xC8]  do-not-enreg[] "field V51._index (fldOffset=0x8)" P-DEP
+;  V79 tmp67        [V79,T11] (  4, 96   )     int  ->  [rbp-0xC4]  do-not-enreg[] "field V51._length (fldOffset=0xc)" P-DEP
+;* V80 tmp68        [V80    ] (  0,  0   )   ubyte  ->  zero-ref    "V20.[000..001)"
+;* V81 tmp69        [V81    ] (  0,  0   )   ubyte  ->  zero-ref    "V23.[000..001)"
+;  V82 tmp70        [V82,T34] (  3, 24   )     ref  ->  rdi         "arr expr"
+;  V83 tmp71        [V83,T13] (  3, 96   )     ref  ->  rax         "arr expr"
+;  V84 PSPSym       [V84,T49] (  1,  1   )    long  ->  [rbp-0x110]  do-not-enreg[V] "PSPSym"
+;  V85 cse0         [V85,T16] (  3, 96   )     int  ->  rax         "CSE #11: moderate"
+;  V86 cse1         [V86,T35] (  3, 24   )     int  ->  rdi         "CSE #12: moderate"
+;  V87 cse2         [V87,T30] (  2, 32   )     int  ->  rdi         "CSE #07: moderate"
+;  V88 cse3         [V88,T31] (  2, 32   )     int  ->  rdi         "CSE #10: moderate"
+;  V89 rat0         [V89,T52] (  3, 24   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V90 rat1         [V90,T53] (  3, 24   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V91 rat2         [V91,T50] (  3, 96   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V92 rat3         [V92,T51] (  3, 96   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V93 rat4         [V93,T14] (  3, 96   )   byref  ->  rsi         "ReplaceWithLclVar is creating a new local variable"
+;  V94 rat5         [V94,T15] (  3, 96   )   byref  ->  rdi         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 216
+; Lcl frame size = 240
 
 G_M23582_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rbx
-       sub      rsp, 216
-       lea      rbp, [rsp+0x100]
+       sub      rsp, 240
+       lea      rbp, [rsp+0x110]
        vxorps   xmm8, xmm8, xmm8
-       vmovdqu32 zmmword ptr [rbp-0xF0], zmm8
-       vmovdqu32 zmmword ptr [rbp-0xB0], zmm8
-       vmovdqu32 zmmword ptr [rbp-0x70], zmm8
-       xor      eax, eax
-       mov      qword ptr [rbp-0x30], rax
-       mov      qword ptr [rbp-0x100], rsp
+       vmovdqu32 zmmword ptr [rbp-0x100], zmm8
+       vmovdqu32 zmmword ptr [rbp-0xC0], zmm8
+       vmovdqu32 zmmword ptr [rbp-0x80], zmm8
+       vmovdqa  xmmword ptr [rbp-0x40], xmm8
+       vmovdqa  xmmword ptr [rbp-0x30], xmm8
+       mov      qword ptr [rbp-0x110], rsp
        mov      r14, rdi
        mov      rbx, rsi
        mov      r15, rdx
-						;; size=82 bbWeight=1 PerfScore 16.08
+						;; size=75 bbWeight=1 PerfScore 17.83
 G_M23582_IG02:
        xor      edi, edi
        mov      qword ptr [rbx], rdi
        mov      qword ptr [rbx+0x08], rdi
        mov      qword ptr [rbx+0x10], rdi
        mov      qword ptr [rbx+0x18], rdi
        mov      qword ptr [rbx+0x20], rdi
        mov      qword ptr [rbx+0x28], rdi
        mov      qword ptr [rbx+0x30], rdi
 						;; size=29 bbWeight=1 PerfScore 7.25
 G_M23582_IG03:
        mov      qword ptr [r15], rdi
        mov      qword ptr [r15+0x08], rdi
        mov      qword ptr [r15+0x10], rdi
        mov      qword ptr [r15+0x18], rdi
        mov      qword ptr [r15+0x20], rdi
        mov      qword ptr [r15+0x28], rdi
        mov      qword ptr [r15+0x30], rdi
        mov      qword ptr [r15+0x38], rdi
        mov      qword ptr [r15+0x40], rdi
        mov      qword ptr [r15+0x48], rdi
        mov      qword ptr [r15+0x50], rdi
        mov      rax, gword ptr [r14+0x48]
        test     rax, rax
        jne      SHORT G_M23582_IG04
        mov      rdi, gword ptr [r14+0x18]
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.Pkcs.SignerInfo:MakeAttributeCollection(System.Security.Cryptography.Asn1.AttributeAsn[]):System.Security.Cryptography.CryptographicAttributeObjectCollection
        call     [rax]System.Security.Cryptography.Pkcs.SignerInfo:MakeAttributeCollection(System.Security.Cryptography.Asn1.AttributeAsn[]):System.Security.Cryptography.CryptographicAttributeObjectCollection
        mov      r13, rax
        lea      rdi, bword ptr [r14+0x48]
        mov      rsi, r13
        call     CORINFO_HELP_ASSIGN_REF
        mov      rax, r13
 						;; size=86 bbWeight=1 PerfScore 21.75
 G_M23582_IG04:
        cmp      byte  ptr [rax], al
        mov      rdi, 0xD1FFAB1E      ; System.Security.Cryptography.CryptographicAttributeObjectEnumerator
-       mov      qword ptr [rbp-0xF0], rdi
-       mov      gword ptr [rbp-0xE8], rax
-       mov      dword ptr [rbp-0xE0], -1
+       mov      qword ptr [rbp-0xE8], rdi
+       mov      gword ptr [rbp-0xE0], rax
+       mov      dword ptr [rbp-0xD8], -1
 						;; size=36 bbWeight=1 PerfScore 6.25
 G_M23582_IG05:
-       mov      edi, dword ptr [rbp-0xE0]
-       mov      rax, gword ptr [rbp-0xE8]
+       mov      edi, dword ptr [rbp-0xD8]
+       mov      rax, gword ptr [rbp-0xE0]
        mov      rax, gword ptr [rax+0x08]
        mov      eax, dword ptr [rax+0x10]
        dec      eax
        cmp      edi, eax
        jge      G_M23582_IG38
        inc      edi
-       mov      dword ptr [rbp-0xE0], edi
-       mov      rdi, gword ptr [rbp-0xE8]
-       mov      eax, dword ptr [rbp-0xE0]
+       mov      dword ptr [rbp-0xD8], edi
+       mov      rdi, gword ptr [rbp-0xE0]
+       mov      eax, dword ptr [rbp-0xD8]
        mov      rdi, gword ptr [rdi+0x08]
        cmp      eax, dword ptr [rdi+0x10]
        jae      G_M23582_IG43
 						;; size=64 bbWeight=8 PerfScore 134.00
 G_M23582_IG06:
        mov      rdi, gword ptr [rdi+0x08]
        cmp      eax, dword ptr [rdi+0x08]
        jae      G_M23582_IG44
        mov      eax, eax
        mov      r14, gword ptr [rdi+8*rax+0x10]
        mov      rdi, gword ptr [r14+0x10]
        mov      rax, 0xD1FFAB1E      ; code for Internal.Cryptography.PkcsHelpers:CopyOid(System.Security.Cryptography.Oid):System.Security.Cryptography.Oid
        call     [rax]Internal.Cryptography.PkcsHelpers:CopyOid(System.Security.Cryptography.Oid):System.Security.Cryptography.Oid
        test     rax, rax
        je       SHORT G_M23582_IG07
-       mov      rdi, gword ptr [rax+0x08]
+       mov      rax, gword ptr [rax+0x08]
        jmp      SHORT G_M23582_IG08
 						;; size=47 bbWeight=4 PerfScore 75.00
 G_M23582_IG07:
-       xor      rdi, rdi
+       xor      rax, rax
 						;; size=2 bbWeight=4 PerfScore 1.00
 G_M23582_IG08:
-       test     rdi, rdi
+       test     rax, rax
        je       SHORT G_M23582_IG13
 						;; size=5 bbWeight=4 PerfScore 5.00
 G_M23582_IG09:
-       cmp      dword ptr [rdi+0x08], 26
+       cmp      dword ptr [rax+0x08], 26
        jne      SHORT G_M23582_IG11
 						;; size=6 bbWeight=2 PerfScore 8.00
 G_M23582_IG10:
-       vmovups  ymm0, ymmword ptr [rdi+0x0C]
-       vmovups  ymm1, ymmword ptr [rdi+0x20]
+       vmovups  ymm0, ymmword ptr [rax+0x0C]
+       vmovups  ymm1, ymmword ptr [rax+0x20]
        vpxor    ymm1, ymm1, ymmword ptr [reloc @RWD00]
        vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD32], -34
        vptest   ymm0, ymm0
-       sete     al
-       movzx    rax, al
-       test     eax, eax
+       sete     dil
+       movzx    rdi, dil
+       test     edi, edi
        jne      SHORT G_M23582_IG13
-						;; size=44 bbWeight=4 PerfScore 86.00
+						;; size=46 bbWeight=4 PerfScore 86.00
 G_M23582_IG11:
-       cmp      dword ptr [rdi+0x08], 26
+       cmp      dword ptr [rax+0x08], 26
        jne      G_M23582_IG05
 						;; size=10 bbWeight=2 PerfScore 8.00
 G_M23582_IG12:
-       vmovups  ymm0, ymmword ptr [rdi+0x0C]
-       vmovups  ymm1, ymmword ptr [rdi+0x20]
+       vmovups  ymm0, ymmword ptr [rax+0x0C]
+       vmovups  ymm1, ymmword ptr [rax+0x20]
        vpxor    ymm1, ymm1, ymmword ptr [reloc @RWD64]
        vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD32], -34
        vptest   ymm0, ymm0
-       sete     dil
-       movzx    rdi, dil
-       test     edi, edi
+       sete     al
+       movzx    rax, al
+       test     eax, eax
        je       G_M23582_IG05
-						;; size=50 bbWeight=4 PerfScore 86.00
+						;; size=48 bbWeight=4 PerfScore 86.00
 G_M23582_IG13:
-       mov      r14, gword ptr [r14+0x08]
-       cmp      byte  ptr [r14], r14b
+       mov      rax, gword ptr [r14+0x08]
+       cmp      byte  ptr [rax], al
+       vxorps   xmm0, xmm0, xmm0
+       vmovdqu  xmmword ptr [rbp-0x100], xmm0
+       vmovdqu  xmmword ptr [rbp-0xFC], xmm0
        mov      rdi, 0xD1FFAB1E      ; System.Security.Cryptography.AsnEncodedDataEnumerator
-       call     CORINFO_HELP_NEWSFAST
-       mov      r13, rax
-       lea      rdi, bword ptr [r13+0x08]
-       mov      rsi, r14
-       call     CORINFO_HELP_ASSIGN_REF
-       mov      dword ptr [r13+0x10], -1
-						;; size=45 bbWeight=4 PerfScore 37.00
+       mov      qword ptr [rbp-0x100], rdi
+       mov      gword ptr [rbp-0xF8], rax
+       mov      dword ptr [rbp-0xF0], -1
+						;; size=60 bbWeight=4 PerfScore 42.33
 G_M23582_IG14:
-       mov      eax, dword ptr [r13+0x10]
-       mov      rdi, gword ptr [r13+0x08]
+       mov      eax, dword ptr [rbp-0xF0]
+       mov      rdi, gword ptr [rbp-0xF8]
        mov      rdi, gword ptr [rdi+0x08]
-       mov      esi, dword ptr [rdi+0x10]
-       lea      edx, [rsi-0x01]
-       cmp      eax, edx
+       mov      edi, dword ptr [rdi+0x10]
+       dec      edi
+       cmp      eax, edi
        jge      G_M23582_IG05
        inc      eax
-       mov      dword ptr [r13+0x10], eax
-       cmp      eax, esi
+       mov      dword ptr [rbp-0xF0], eax
+       mov      rax, gword ptr [rbp-0xF8]
+       mov      edi, dword ptr [rbp-0xF0]
+       mov      rax, gword ptr [rax+0x08]
+       cmp      edi, dword ptr [rax+0x10]
        jae      G_M23582_IG43
-						;; size=40 bbWeight=32 PerfScore 392.00
+						;; size=64 bbWeight=32 PerfScore 536.00
 G_M23582_IG15:
-       mov      rdi, gword ptr [rdi+0x08]
-       cmp      eax, dword ptr [rdi+0x08]
+       mov      rax, gword ptr [rax+0x08]
+       cmp      edi, dword ptr [rax+0x08]
        jae      G_M23582_IG44
-       mov      eax, eax
-       mov      r14, gword ptr [rdi+8*rax+0x10]
+       mov      edi, edi
+       mov      r14, gword ptr [rax+8*rdi+0x10]
        mov      rax, gword ptr [r14+0x08]
        test     rax, rax
        je       SHORT G_M23582_IG16
-       mov      r12, gword ptr [rax+0x08]
+       mov      r13, gword ptr [rax+0x08]
        jmp      SHORT G_M23582_IG17
 						;; size=35 bbWeight=16 PerfScore 248.00
 G_M23582_IG16:
-       xor      r12, r12
+       xor      r13, r13
 						;; size=3 bbWeight=16 PerfScore 4.00
 G_M23582_IG17:
-       test     r12, r12
+       test     r13, r13
        je       SHORT G_M23582_IG20
 						;; size=5 bbWeight=16 PerfScore 20.00
 G_M23582_IG18:
-       cmp      dword ptr [r12+0x08], 26
+       cmp      dword ptr [r13+0x08], 26
        jne      SHORT G_M23582_IG20
-						;; size=8 bbWeight=8 PerfScore 32.00
+						;; size=7 bbWeight=8 PerfScore 32.00
 G_M23582_IG19:
-       vmovups  ymm0, ymmword ptr [r12+0x0C]
-       vmovups  ymm1, ymmword ptr [r12+0x20]
+       vmovups  ymm0, ymmword ptr [r13+0x0C]
+       vmovups  ymm1, ymmword ptr [r13+0x20]
        vpxor    ymm1, ymm1, ymmword ptr [reloc @RWD00]
        vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD32], -34
        vptest   ymm0, ymm0
        sete     al
        movzx    rax, al
        test     eax, eax
        je       SHORT G_M23582_IG21
        cmp      byte  ptr [rbx], 0
        jne      SHORT G_M23582_IG23
        jmp      SHORT G_M23582_IG25
-						;; size=55 bbWeight=16 PerfScore 440.00
+						;; size=53 bbWeight=16 PerfScore 440.00
 G_M23582_IG20:
-       test     r12, r12
+       test     r13, r13
        je       G_M23582_IG14
 						;; size=9 bbWeight=16 PerfScore 20.00
 G_M23582_IG21:
-       cmp      dword ptr [r12+0x08], 26
+       cmp      dword ptr [r13+0x08], 26
        jne      G_M23582_IG14
-						;; size=12 bbWeight=8 PerfScore 32.00
+						;; size=11 bbWeight=8 PerfScore 32.00
 G_M23582_IG22:
-       vmovups  ymm0, ymmword ptr [r12+0x0C]
-       vmovups  ymm1, ymmword ptr [r12+0x20]
+       vmovups  ymm0, ymmword ptr [r13+0x0C]
+       vmovups  ymm1, ymmword ptr [r13+0x20]
        vpxor    ymm1, ymm1, ymmword ptr [reloc @RWD64]
        vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD32], -34
        vptest   ymm0, ymm0
        sete     al
        movzx    rax, al
        test     eax, eax
        je       G_M23582_IG14
        cmp      byte  ptr [r15], 0
        je       G_M23582_IG32
-						;; size=62 bbWeight=16 PerfScore 408.00
+						;; size=60 bbWeight=16 PerfScore 408.00
 G_M23582_IG23:
        xor      eax, eax
 						;; size=2 bbWeight=1 PerfScore 0.25
 G_M23582_IG24:
        vzeroupper 
-       add      rsp, 216
+       add      rsp, 240
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=21 bbWeight=1 PerfScore 5.25
+						;; size=19 bbWeight=1 PerfScore 4.75
 G_M23582_IG25:
        mov      rdi, gword ptr [r14+0x10]
        test     rdi, rdi
        je       SHORT G_M23582_IG26
-       mov      gword ptr [rbp-0xC8], rdi
+       mov      gword ptr [rbp-0xC0], rdi
        xor      esi, esi
-       mov      dword ptr [rbp-0xC0], esi
+       mov      dword ptr [rbp-0xB8], esi
        mov      edi, dword ptr [rdi+0x08]
-       mov      dword ptr [rbp-0xBC], edi
+       mov      dword ptr [rbp-0xB4], edi
        jmp      SHORT G_M23582_IG29
 						;; size=35 bbWeight=16 PerfScore 168.00
 G_M23582_IG26:
        xor      rdi, rdi
-       mov      gword ptr [rbp-0xC8], rdi
+       mov      gword ptr [rbp-0xC0], rdi
 						;; size=9 bbWeight=16 PerfScore 20.00
 G_M23582_IG27:
-       mov      dword ptr [rbp-0xC0], edi
+       mov      dword ptr [rbp-0xB8], edi
 						;; size=6 bbWeight=16 PerfScore 16.00
 G_M23582_IG28:
-       mov      dword ptr [rbp-0xBC], edi
+       mov      dword ptr [rbp-0xB4], edi
 						;; size=6 bbWeight=16 PerfScore 16.00
 G_M23582_IG29:
-       mov      rdi, gword ptr [rbp-0xC8]
-       mov      rsi, qword ptr [rbp-0xC0]
+       mov      rdi, gword ptr [rbp-0xC0]
+       mov      rsi, qword ptr [rbp-0xB8]
        xor      edx, edx
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.Pkcs.Asn1.SigningCertificateAsn:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.SigningCertificateAsn
        call     [rax]System.Security.Cryptography.Pkcs.Asn1.SigningCertificateAsn:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.SigningCertificateAsn
        mov      edi, dword ptr [rax+0x08]
        test     edi, edi
        jle      G_M23582_IG37
 						;; size=39 bbWeight=16 PerfScore 140.00
 G_M23582_IG30:
        vmovdqu  ymm0, ymmword ptr [rax+0x10]
-       vmovdqu  ymmword ptr [rbp-0xB0], ymm0
+       vmovdqu  ymmword ptr [rbp-0xA8], ymm0
        vmovdqu  xmm0, xmmword ptr [rax+0x30]
-       vmovdqu  xmmword ptr [rbp-0x90], xmm0
+       vmovdqu  xmmword ptr [rbp-0x88], xmm0
 						;; size=26 bbWeight=16 PerfScore 176.00
 G_M23582_IG31:
        mov      rdi, rbx
-       lea      rsi, bword ptr [rbp-0xB8]
+       lea      rsi, bword ptr [rbp-0xB0]
        movsq    
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
        movsq    
        call     CORINFO_HELP_ASSIGN_BYREF
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
        mov      byte  ptr [rbx], 1
        jmp      G_M23582_IG20
 						;; size=41 bbWeight=16 PerfScore 172.00
 G_M23582_IG32:
        mov      rdi, gword ptr [r14+0x10]
        test     rdi, rdi
        je       SHORT G_M23582_IG33
-       mov      gword ptr [rbp-0xD8], rdi
+       mov      gword ptr [rbp-0xD0], rdi
        xor      esi, esi
-       mov      dword ptr [rbp-0xD0], esi
+       mov      dword ptr [rbp-0xC8], esi
        mov      edi, dword ptr [rdi+0x08]
-       mov      dword ptr [rbp-0xCC], edi
+       mov      dword ptr [rbp-0xC4], edi
        jmp      SHORT G_M23582_IG36
 						;; size=35 bbWeight=16 PerfScore 168.00
 G_M23582_IG33:
        xor      rdi, rdi
-       mov      gword ptr [rbp-0xD8], rdi
+       mov      gword ptr [rbp-0xD0], rdi
 						;; size=9 bbWeight=16 PerfScore 20.00
 G_M23582_IG34:
-       mov      dword ptr [rbp-0xD0], edi
+       mov      dword ptr [rbp-0xC8], edi
 						;; size=6 bbWeight=16 PerfScore 16.00
 G_M23582_IG35:
-       mov      dword ptr [rbp-0xCC], edi
+       mov      dword ptr [rbp-0xC4], edi
 						;; size=6 bbWeight=16 PerfScore 16.00
 G_M23582_IG36:
-       mov      rdi, gword ptr [rbp-0xD8]
-       mov      rsi, qword ptr [rbp-0xD0]
+       mov      rdi, gword ptr [rbp-0xD0]
+       mov      rsi, qword ptr [rbp-0xC8]
        xor      edx, edx
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.Pkcs.Asn1.SigningCertificateV2Asn:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.SigningCertificateV2Asn
        call     [rax]System.Security.Cryptography.Pkcs.Asn1.SigningCertificateV2Asn:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.SigningCertificateV2Asn
        mov      edi, dword ptr [rax+0x08]
        test     edi, edi
        jle      SHORT G_M23582_IG37
        lea      rsi, bword ptr [rax+0x10]
        cmp      byte  ptr [rsi], sil
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_BULK_WRITEBARRIER
-       lea      rdi, bword ptr [rbp-0x78]
+       lea      rdi, bword ptr [rbp-0x70]
        mov      edx, 80
        call     [rax]CORINFO_HELP_BULK_WRITEBARRIER
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_BULK_WRITEBARRIER
        mov      rdi, r15
        cmp      byte  ptr [rdi], dil
-       lea      rsi, [rbp-0x80]
+       lea      rsi, [rbp-0x78]
        mov      edx, 88
        call     [rax]CORINFO_HELP_BULK_WRITEBARRIER
        mov      byte  ptr [r15], 1
        jmp      G_M23582_IG14
 						;; size=99 bbWeight=16 PerfScore 424.00
 G_M23582_IG37:
        xor      ecx, ecx
        jmp      SHORT G_M23582_IG41
 						;; size=4 bbWeight=1 PerfScore 2.25
 G_M23582_IG38:
        cmp      byte  ptr [r15], 0
        je       SHORT G_M23582_IG40
        mov      eax, 1
 						;; size=11 bbWeight=1 PerfScore 4.25
 G_M23582_IG39:
        vzeroupper 
-       add      rsp, 216
+       add      rsp, 240
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=21 bbWeight=1 PerfScore 5.25
+						;; size=19 bbWeight=1 PerfScore 4.75
 G_M23582_IG40:
        movzx    rcx, byte  ptr [rbx]
 						;; size=3 bbWeight=1 PerfScore 2.00
 G_M23582_IG41:
        movzx    rax, cl
 						;; size=3 bbWeight=1 PerfScore 0.25
 G_M23582_IG42:
        vzeroupper 
-       add      rsp, 216
+       add      rsp, 240
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=21 bbWeight=1 PerfScore 5.25
+						;; size=19 bbWeight=1 PerfScore 4.75
 G_M23582_IG43:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M23582_IG44:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M23582_IG45:
        push     rbp
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rbx
-       push     rax
+       sub      rsp, 16
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
-       lea      rbp, [rbp+0x100]
-						;; size=25 bbWeight=0 PerfScore 0.00
+       lea      rbp, [rbp+0x110]
+						;; size=26 bbWeight=0 PerfScore 0.00
 G_M23582_IG46:
        lea      rax, G_M23582_IG37
 						;; size=7 bbWeight=0 PerfScore 0.00
 G_M23582_IG47:
        vzeroupper 
-       add      rsp, 8
+       add      rsp, 16
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=0 PerfScore 0.00
+						;; size=16 bbWeight=0 PerfScore 0.00
 G_M23582_IG48:
        push     rbp
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rbx
-       push     rax
+       sub      rsp, 16
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
-       lea      rbp, [rbp+0x100]
-						;; size=25 bbWeight=0 PerfScore 0.00
+       lea      rbp, [rbp+0x110]
+						;; size=26 bbWeight=0 PerfScore 0.00
 G_M23582_IG49:
        lea      rax, G_M23582_IG37
 						;; size=7 bbWeight=0 PerfScore 0.00
 G_M23582_IG50:
        vzeroupper 
-       add      rsp, 8
+       add      rsp, 16
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=0 PerfScore 0.00
+						;; size=16 bbWeight=0 PerfScore 0.00
 RWD00  	dq	0039003400350033h, 0039002E0031002Eh, 002E00360031002Eh, 00320031002E0032h
 RWD32  	dq	002E0032002E0031h, 002E003000340038h, 0035003300310031h, 0031002E00390034h
 RWD64  	dq	0039003400350033h, 0039002E0031002Eh, 002E00360031002Eh, 00370034002E0032h
 
 
-; Total bytes of code 1257, prolog size 82, PerfScore 3464.08, instruction count 317, allocated bytes for code 1257 (MethodHash=373aa3e1) for method System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:TryGetCertIds(System.Security.Cryptography.Pkcs.SignerInfo,byref,byref):ubyte (FullOpts)
+; Total bytes of code 1275, prolog size 75, PerfScore 3613.67, instruction count 312, allocated bytes for code 1275 (MethodHash=373aa3e1) for method System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:TryGetCertIds(System.Security.Cryptography.Pkcs.SignerInfo,byref,byref):ubyte (FullOpts)
16 (4.52 % of base) - System.Linq.Expressions.Interpreter.LightCompiler:DefineBlockLabels(System.Linq.Expressions.Expression):this
 ; Assembly listing for method System.Linq.Expressions.Interpreter.LightCompiler:DefineBlockLabels(System.Linq.Expressions.Expression):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  4,  6   )     ref  ->  rbx         this class-hnd single-def <System.Linq.Expressions.Interpreter.LightCompiler>
-;  V01 arg1         [V01,T09] (  3,  3   )     ref  ->  rsi         class-hnd single-def <System.Linq.Expressions.Expression>
-;  V02 loc0         [V02,T08] (  5,  7   )     ref  ->  r15         class-hnd single-def <System.Linq.Expressions.BlockExpression>
+;  V00 this         [V00,T05] (  4,  6   )     ref  ->  rbx         this class-hnd single-def <System.Linq.Expressions.Interpreter.LightCompiler>
+;  V01 arg1         [V01,T08] (  3,  3   )     ref  ->  rsi         class-hnd single-def <System.Linq.Expressions.Expression>
+;  V02 loc0         [V02,T07] (  5,  7   )     ref  ->  r15         class-hnd single-def <System.Linq.Expressions.BlockExpression>
 ;  V03 loc1         [V03,T01] (  5, 16.50)     int  ->  r14        
-;  V04 loc2         [V04,T10] (  3,  5   )     int  ->  r12        
-;  V05 loc3         [V05,T12] (  2,  4   )     ref  ->  rax         class-hnd exact <System.Linq.Expressions.LabelExpression>
+;  V04 loc2         [V04,T09] (  3,  5   )     int  ->  r12        
+;  V05 loc3         [V05,T11] (  2,  4   )     ref  ->  rax         class-hnd exact <System.Linq.Expressions.LabelExpression>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07,T00] (  4, 36   )     ref  ->  rax         "ISINST eval op1"
 ;* V08 tmp2         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling qmarkNull" <System.Linq.Expressions.LabelExpression>
 ;* V09 tmp3         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.Expression]>
 ;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.Expression]>
-;* V11 tmp5         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Linq.Expressions.Interpreter.LabelInfo>
+;* V11 tmp5         [V11    ] (  0,  0   )   byref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Linq.Expressions.Interpreter.LabelInfo>
 ;  V12 tmp6         [V12,T03] (  3, 12   )     ref  ->  rsi         class-hnd exact "Inlining Arg" <System.Linq.Expressions.LabelTarget>
-;  V13 tmp7         [V13,T07] (  2,  8   )     ref  ->  rdi         class-hnd exact "dup spill" <System.Linq.Expressions.Interpreter.LabelInfo>
-;  V14 tmp8         [V14,T04] (  3, 12   )     ref  ->  [rbp-0x30]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Linq.Expressions.Interpreter.LabelInfo>
-;  V15 tmp9         [V15,T05] (  3, 12   )     ref  ->  [rbp-0x38]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Linq.Expressions.Interpreter.LabelScopeInfo]>
-;  V16 tmp10        [V16,T13] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V17 tmp11        [V17,T02] (  2, 16   )     ref  ->  rdi         "argument with side effect"
-;  V18 cse0         [V18,T11] (  3,  5   )    long  ->  r13         "CSE #02: moderate"
+;  V13 tmp7         [V13,T06] (  2,  8   )     ref  ->  rdi         class-hnd exact "dup spill" <System.Linq.Expressions.Interpreter.LabelInfo>
+;* V14 tmp8         [V14    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Linq.Expressions.Interpreter.LabelInfo>
+;  V15 tmp9         [V15,T04] (  3, 12   )     ref  ->  [rbp-0x60]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Linq.Expressions.Interpreter.LabelScopeInfo]>
+;  V16 tmp10        [V16    ] (  4,  8   )  struct (48) [rbp-0x58]  do-not-enreg[XSF] must-init addr-exposed "stack allocated ref class temp" <System.Linq.Expressions.Interpreter.LabelInfo>
+;  V17 tmp11        [V17,T12] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V18 tmp12        [V18,T02] (  2, 16   )     ref  ->  rdi         "argument with side effect"
+;  V19 cse0         [V19,T10] (  3,  5   )    long  ->  r13         "CSE #02: moderate"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 56
 
 G_M20037_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 24
-       lea      rbp, [rsp+0x40]
+       sub      rsp, 56
+       lea      rbp, [rsp+0x60]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x58], rax
+       vxorps   xmm8, xmm8, xmm8
+       vmovdqu  ymmword ptr [rbp-0x50], ymm8
+       mov      qword ptr [rbp-0x30], rax
        mov      rbx, rdi
-						;; size=22 bbWeight=1 PerfScore 7.00
+						;; size=42 bbWeight=1 PerfScore 11.58
 G_M20037_IG02:
        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.BlockExpression
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        mov      r15, rax
        test     r15, r15
        je       G_M20037_IG10
 						;; size=34 bbWeight=1 PerfScore 5.00
 G_M20037_IG03:
        xor      r14d, r14d
        mov      rdi, r15
        mov      rax, qword ptr [r15]
        mov      r13, qword ptr [rax+0x48]
        call     [r13+0x30]System.Linq.Expressions.BlockExpression:GetOrMakeExpressions():System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.Expression]:this
        mov      rdi, gword ptr [rax+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection`1[System.__Canon]:get_Count():int:this
        call     [r11]System.Collections.Generic.ICollection`1[System.__Canon]:get_Count():int:this
        mov      r12d, eax
        test     r12d, r12d
        jle      G_M20037_IG10
 						;; size=46 bbWeight=0.50 PerfScore 7.12
 G_M20037_IG04:
        mov      rdi, r15
        call     [r13+0x30]System.Linq.Expressions.BlockExpression:GetOrMakeExpressions():System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.Expression]:this
        mov      rdi, gword ptr [rax+0x08]
        mov      esi, r14d
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IList`1[System.__Canon]:get_Item(int):System.__Canon:this
        call     [r11]System.Collections.Generic.IList`1[System.__Canon]:get_Item(int):System.__Canon:this
        test     rax, rax
        je       G_M20037_IG09
 						;; size=36 bbWeight=4 PerfScore 40.00
 G_M20037_IG05:
        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.LabelExpression
        cmp      qword ptr [rax], rdi
        jne      G_M20037_IG09
 						;; size=19 bbWeight=8 PerfScore 34.00
 G_M20037_IG06:
        mov      rsi, gword ptr [rax+0x08]
        test     rsi, rsi
        je       SHORT G_M20037_IG07
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Interpreter.LightCompiler:EnsureLabel(System.Linq.Expressions.LabelTarget):System.Linq.Expressions.Interpreter.LabelInfo:this
        call     [rax]System.Linq.Expressions.Interpreter.LightCompiler:EnsureLabel(System.Linq.Expressions.LabelTarget):System.Linq.Expressions.Interpreter.LabelInfo:this
        mov      rdi, rax
        mov      rsi, gword ptr [rbx+0x28]
        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Expressions.Interpreter.LabelInfo:Define(System.Linq.Expressions.Interpreter.LabelScopeInfo):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Linq.Expressions.Interpreter.LabelInfo:Define(System.Linq.Expressions.Interpreter.LabelScopeInfo):this
        jmp      SHORT G_M20037_IG09
 						;; size=47 bbWeight=2 PerfScore 34.50
 G_M20037_IG07:
+       vxorps   ymm0, ymm0, ymm0
+       vmovdqu  ymmword ptr [rbp-0x58], ymm0
+       vmovdqu  xmmword ptr [rbp-0x3F], xmm0
        mov      rdi, 0xD1FFAB1E      ; System.Linq.Expressions.Interpreter.LabelInfo
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x30], rax
+       mov      qword ptr [rbp-0x58], rdi
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.Linq.Expressions.Interpreter.LabelScopeInfo]
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x38], rax
+       mov      gword ptr [rbp-0x60], rax
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
        je       SHORT G_M20037_IG11
-						;; size=53 bbWeight=2 PerfScore 17.50
+						;; size=62 bbWeight=2 PerfScore 20.17
 G_M20037_IG08:
        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List`1[System.Linq.Expressions.Interpreter.LabelScopeInfo]:s_emptyArray
        mov      rsi, gword ptr [rdi]
        lea      rdi, bword ptr [rax+0x08]
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rax, gword ptr [rbp-0x30]
-       lea      rdi, bword ptr [rax+0x20]
-       mov      rsi, gword ptr [rbp-0x38]
-       call     CORINFO_HELP_ASSIGN_REF
+       mov      rax, gword ptr [rbp-0x60]
+       mov      gword ptr [rbp-0x38], rax
        xor      rdi, rdi
-       mov      rax, gword ptr [rbp-0x30]
-       mov      gword ptr [rax+0x08], rdi
-						;; size=49 bbWeight=2 PerfScore 19.00
+       mov      gword ptr [rbp-0x50], rdi
+						;; size=36 bbWeight=2 PerfScore 14.00
 G_M20037_IG09:
        inc      r14d
        cmp      r14d, r12d
        jl       G_M20037_IG04
 						;; size=12 bbWeight=4 PerfScore 6.00
 G_M20037_IG10:
-       add      rsp, 24
+       add      rsp, 56
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M20037_IG11:
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.Linq.Expressions.Interpreter.LabelScopeInfo]
        call     CORINFO_HELP_GET_GCSTATIC_BASE
-       mov      rax, gword ptr [rbp-0x38]
+       mov      rax, gword ptr [rbp-0x60]
        jmp      SHORT G_M20037_IG08
 						;; size=21 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 354, prolog size 19, PerfScore 174.38, instruction count 84, allocated bytes for code 354 (MethodHash=076bb1ba) for method System.Linq.Expressions.Interpreter.LightCompiler:DefineBlockLabels(System.Linq.Expressions.Expression):this (FullOpts)
+; Total bytes of code 370, prolog size 39, PerfScore 176.63, instruction count 88, allocated bytes for code 370 (MethodHash=076bb1ba) for method System.Linq.Expressions.Interpreter.LightCompiler:DefineBlockLabels(System.Linq.Expressions.Expression):this (FullOpts)
11 (1.77 % of base) - System.Linq.Expressions.ExpressionVisitor:Visit[System.Numerics.Vector`1[float]](System.Collections.ObjectModel.ReadOnlyCollection`1[System.Numerics.Vector`1[float]],System.Func`2[System.Numerics.Vector`1[float],System.Numerics.Vector`1[float]]):System.Collections.ObjectModel.ReadOnlyCollection`1[System.Numerics.Vector`1[float]]
 ; Assembly listing for method System.Linq.Expressions.ExpressionVisitor:Visit[System.Numerics.Vector`1[float]](System.Collections.ObjectModel.ReadOnlyCollection`1[System.Numerics.Vector`1[float]],System.Func`2[System.Numerics.Vector`1[float],System.Numerics.Vector`1[float]]):System.Collections.ObjectModel.ReadOnlyCollection`1[System.Numerics.Vector`1[float]] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 6 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T03] (  9, 26.50)     ref  ->  rbx         class-hnd single-def <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Numerics.Vector`1[float]]>
 ;  V01 arg1         [V01,T04] (  5, 11   )     ref  ->  r15         class-hnd single-def <System.Func`2[System.Numerics.Vector`1[float],System.Numerics.Vector`1[float]]>
 ;  V02 loc0         [V02,T02] ( 11, 29.66)     ref  ->  r14         class-hnd <System.Numerics.Vector`1[float][]>
 ;* V03 loc1         [V03,T09] (  0,  0   )     int  ->  zero-ref   
-;  V04 loc2         [V04,T07] (  4,  8   )     int  ->  r12        
+;  V04 loc2         [V04,T06] (  4,  8   )     int  ->  r12        
 ;  V05 loc3         [V05,T12] (  3,  8   )  simd32  ->  [rbp-0x50]  do-not-enreg[HS] hidden-struct-arg <System.Numerics.Vector`1[float]>
 ;  V06 loc4         [V06,T00] ( 12, 82.16)     int  ->  [rbp-0x54] 
 ;  V07 OutArgs      [V07    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V08 tmp1         [V08,T11] (  2, 16   )  simd32  ->  [rbp-0x90]  do-not-enreg[HS] hidden-struct-arg "spilled call-like call argument"
-;  V09 tmp2         [V09,T05] (  3, 12   )     ref  ->  [rbp-0xB8]  class-hnd exact spill-single-def "Single-def Box Helper" <System.Numerics.Vector`1[float]>
-;  V10 tmp3         [V10,T06] (  3, 12   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Single-def Box Helper" <System.Numerics.Vector`1[float]>
+;* V09 tmp2         [V09    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Numerics.Vector`1[float]>
+;  V10 tmp3         [V10,T05] (  3, 12   )     ref  ->  [rbp-0xE0]  class-hnd exact spill-single-def "Single-def Box Helper" <System.Numerics.Vector`1[float]>
 ;  V11 tmp4         [V11,T10] (  4, 64   )  simd32  ->  [rbp-0xB0]  do-not-enreg[HS] hidden-struct-arg "Strict ordering of exceptions for Array store"
 ;  V12 tmp5         [V12,T08] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Runtime.CompilerServices.TrueReadOnlyCollection`1[System.Numerics.Vector`1[float]]>
-;  V13 rat0         [V13,T01] ( 12, 42   )    long  ->  r13         "Widened IV V03"
+;  V13 tmp6         [V13    ] (  4,  8   )  struct (40) [rbp-0xD8]  do-not-enreg[XSF] addr-exposed "stack allocated boxed value class temp" <System.Runtime.CompilerServices.StackAllocatedBox`1[System.Numerics.Vector`1[float]]>
+;  V14 cse0         [V14,T07] (  3,  6   )    long  ->  rdi         "CSE #01: aggressive"
+;  V15 rat0         [V15,T01] ( 12, 42   )    long  ->  r13         "Widened IV V03"
 ;
-; Lcl frame size = 184
+; Lcl frame size = 216
 
 G_M3520_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 184
-       lea      rbp, [rsp+0xE0]
+       sub      rsp, 216
+       lea      rbp, [rsp+0x100]
        mov      rbx, rdi
        mov      r15, rsi
 						;; size=31 bbWeight=1 PerfScore 7.25
 G_M3520_IG02:
        test     rbx, rbx
        je       G_M3520_IG16
        test     r15, r15
        je       G_M3520_IG15
        xor      r14, r14
        xor      r13d, r13d
        mov      rdi, gword ptr [rbx+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.ICollection`1[System.Numerics.Vector`1[float]]:get_Count():int:this
        call     [r11]System.Collections.Generic.ICollection`1[System.Numerics.Vector`1[float]]:get_Count():int:this
        mov      r12d, eax
        test     r12d, r12d
        jle      G_M3520_IG09
 						;; size=53 bbWeight=1 PerfScore 9.75
 G_M3520_IG03:
        mov      rdi, gword ptr [rbx+0x08]
        lea      rsi, [rbp-0x90]
        mov      edx, r13d
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IList`1[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this
        call     [r11]System.Collections.Generic.IList`1[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this
        vmovups  ymm0, ymmword ptr [rbp-0x90]
        vmovups  ymmword ptr [rsp], ymm0
        lea      rsi, [rbp-0x50]
        mov      rdi, gword ptr [r15+0x08]
        call     [r15+0x18]System.Func`2[System.Numerics.Vector`1[float],System.Numerics.Vector`1[float]]:Invoke(System.Numerics.Vector`1[float]):System.Numerics.Vector`1[float]:this
        test     r14, r14
        jne      G_M3520_IG07
 						;; size=61 bbWeight=4 PerfScore 71.00
 G_M3520_IG04:
+       vxorps   ymm0, ymm0, ymm0
+       vmovdqu  ymmword ptr [rbp-0xD8], ymm0
+       vmovdqu  xmmword ptr [rbp-0xC0], xmm0
        mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector`1[float]
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0xB8], rax
+       mov      qword ptr [rbp-0xD8], rdi
        vmovups  ymm0, ymmword ptr [rbp-0x50]
-       vmovups  ymmword ptr [rax+0x08], ymm0
-       mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector`1[float]
+       vmovups  ymmword ptr [rbp-0xD0], ymm0
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0xC0], rax
+       mov      gword ptr [rbp-0xE0], rax
        mov      rdi, gword ptr [rbx+0x08]
        lea      rsi, bword ptr [rax+0x08]
        mov      edx, r13d
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IList`1[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this
        call     [r11]System.Collections.Generic.IList`1[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this
-       mov      rsi, gword ptr [rbp-0xB8]
-       cmp      rsi, gword ptr [rbp-0xC0]
+       lea      rsi, [rbp-0xD8]
+       mov      rdi, gword ptr [rbp-0xE0]
+       cmp      rsi, rdi
        je       G_M3520_IG08
        movsxd   rsi, r12d
        mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector`1[float][]
        call     CORINFO_HELP_NEWARR_1_VC
        mov      r14, rax
        xor      eax, eax
        test     r13d, r13d
        jle      SHORT G_M3520_IG07
-						;; size=126 bbWeight=2 PerfScore 47.50
+						;; size=137 bbWeight=2 PerfScore 45.17
 G_M3520_IG05:
        cmp      dword ptr [r14+0x08], r13d
        jl       G_M3520_IG12
 						;; size=10 bbWeight=1 PerfScore 4.00
 G_M3520_IG06:
        mov      rdi, gword ptr [rbx+0x08]
        lea      rsi, [rbp-0xB0]
        mov      dword ptr [rbp-0x54], eax
        mov      edx, eax
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IList`1[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this
        call     [r11]System.Collections.Generic.IList`1[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this
        mov      eax, dword ptr [rbp-0x54]
        mov      edi, eax
        shl      rdi, 5
        vmovups  ymm0, ymmword ptr [rbp-0xB0]
        vmovups  ymmword ptr [r14+rdi+0x10], ymm0
        inc      eax
        cmp      eax, r13d
        jl       SHORT G_M3520_IG06
 						;; size=60 bbWeight=15.84 PerfScore 257.40
 G_M3520_IG07:
        cmp      r13d, dword ptr [r14+0x08]
        jae      G_M3520_IG17
        mov      rax, r13
        shl      rax, 5
        vmovups  ymm0, ymmword ptr [rbp-0x50]
        vmovups  ymmword ptr [r14+rax+0x10], ymm0
 						;; size=29 bbWeight=2 PerfScore 21.50
 G_M3520_IG08:
        inc      r13d
        cmp      r13d, r12d
        jl       G_M3520_IG03
 						;; size=12 bbWeight=4 PerfScore 6.00
 G_M3520_IG09:
        test     r14, r14
        jne      SHORT G_M3520_IG13
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M3520_IG10:
        mov      rax, rbx
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M3520_IG11:
        vzeroupper 
-       add      rsp, 184
+       add      rsp, 216
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=21 bbWeight=0.50 PerfScore 2.62
 G_M3520_IG12:
        mov      rdi, gword ptr [rbx+0x08]
        lea      rsi, [rbp-0xB0]
        mov      dword ptr [rbp-0x54], eax
        mov      edx, eax
        mov      r11, 0xD1FFAB1E      ; function address
        call     [r11]System.Collections.Generic.IList`1[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this
        mov      edi, dword ptr [rbp-0x54]
        cmp      edi, dword ptr [r14+0x08]
        jae      G_M3520_IG17
        mov      eax, edi
        shl      rax, 5
        vmovups  ymm0, ymmword ptr [rbp-0xB0]
        vmovups  ymmword ptr [r14+rax+0x10], ymm0
        inc      edi
        cmp      edi, r13d
        mov      eax, edi
        jl       SHORT G_M3520_IG12
        jmp      G_M3520_IG07
 						;; size=77 bbWeight=0.16 PerfScore 3.60
 G_M3520_IG13:
        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.TrueReadOnlyCollection`1[System.Numerics.Vector`1[float]]
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        lea      rdi, bword ptr [rbx+0x08]
        mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
        mov      rax, rbx
 						;; size=33 bbWeight=0.50 PerfScore 1.75
 G_M3520_IG14:
        vzeroupper 
-       add      rsp, 184
+       add      rsp, 216
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=21 bbWeight=0.50 PerfScore 2.62
 G_M3520_IG15:
        mov      edi, 0x3B01
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)
        call     [rax]System.ArgumentNullException:Throw(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
 G_M3520_IG16:
        mov      edi, 0x3AF5
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)
        call     [rax]System.ArgumentNullException:Throw(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
 G_M3520_IG17:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 620, prolog size 25, PerfScore 436.38, instruction count 144, allocated bytes for code 620 (MethodHash=f352f23f) for method System.Linq.Expressions.ExpressionVisitor:Visit[System.Numerics.Vector`1[float]](System.Collections.ObjectModel.ReadOnlyCollection`1[System.Numerics.Vector`1[float]],System.Func`2[System.Numerics.Vector`1[float],System.Numerics.Vector`1[float]]):System.Collections.ObjectModel.ReadOnlyCollection`1[System.Numerics.Vector`1[float]] (FullOpts)
+; Total bytes of code 631, prolog size 25, PerfScore 434.04, instruction count 146, allocated bytes for code 631 (MethodHash=f352f23f) for method System.Linq.Expressions.ExpressionVisitor:Visit[System.Numerics.Vector`1[float]](System.Collections.ObjectModel.ReadOnlyCollection`1[System.Numerics.Vector`1[float]],System.Func`2[System.Numerics.Vector`1[float],System.Numerics.Vector`1[float]]):System.Collections.ObjectModel.ReadOnlyCollection`1[System.Numerics.Vector`1[float]] (FullOpts)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment