Skip to content

Instantly share code, notes, and snippets.

@MihuBot
Created March 12, 2024 18:16
Show Gist options
  • Save MihuBot/ab591d14edc38e5ee55c50e73c745a17 to your computer and use it in GitHub Desktop.
Save MihuBot/ab591d14edc38e5ee55c50e73c745a17 to your computer and use it in GitHub Desktop.

Top method regressions

2384 (147.71 % of base) - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.__Canon]
 ; Assembly listing for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.__Canon] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 13 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 28 single block inlinees; 23 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T02] ( 27, 23   )    long  ->  [rbp-0x38]  EH-live single-def
-;  V01 arg0         [V01,T17] (  4,  4   )     ref  ->  rbx         class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
-;  V02 arg1         [V02,T09] (  5,  8   )  struct (32) [rbp+0x10]  do-not-enreg[SF] ld-addr-op single-def <System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]>
-;  V03 loc0         [V03,T18] (  4,  6   )     ref  ->  rbx         class-hnd exact single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
-;  V04 loc1         [V04,T04] (  8, 14   )     int  ->  r14        
-;  V05 loc2         [V05,T07] (  6, 10   )     ref  ->  r13         class-hnd <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
-;  V06 loc3         [V06    ] (  5, 12   )  struct (128) [rbp-0xB8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
-;  V07 loc4         [V07    ] (  2,  2   )  struct ( 8) [rbp-0xC0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableHashSet`1+NodeEnumerable[System.__Canon]>
-;  V08 loc5         [V08,T20] (  3,  6   )     ref  ->  [rbp-0x270]  class-hnd <System.__Canon>
-;  V09 loc6         [V09,T22] (  3,  6   )  struct (16) [rbp-0xD0]  do-not-enreg[SFR] multireg-ret must-init ld-addr-op <System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.__Canon]>
-;  V10 loc7         [V10    ] (  5, 12   )  struct (128) [rbp-0x150]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
-;  V11 loc8         [V11,T21] (  3,  6   )     ref  ->  rbx         class-hnd <System.__Canon>
-;  V12 loc9         [V12,T23] (  3,  6   )  struct (16) [rbp-0x160]  do-not-enreg[SFR] multireg-ret must-init ld-addr-op <System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.__Canon]>
-;  V13 OutArgs      [V13    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V00 TypeCtx      [V00,T04] ( 20, 15   )    long  ->  [rbp-0x38]  EH-live single-def
+;  V01 arg0         [V01,T57] (  4,  4   )     ref  ->  rbx         class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.__Canon]>
+;  V02 arg1         [V02,T39] (  5,  8   )  struct (32) [rbp+0x10]  do-not-enreg[SF] ld-addr-op single-def <System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]>
+;  V03 loc0         [V03,T05] (  8, 13   )     ref  ->  rbx         class-hnd exact single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
+;  V04 loc1         [V04,T03] ( 10, 18   )     int  ->  r14        
+;  V05 loc2         [V05,T06] (  9, 15   )     ref  ->  r13         class-hnd <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;  V06 loc3         [V06    ] ( 19, 40   )  struct (128) [rbp-0xB8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
+;* V07 loc4         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Collections.Immutable.ImmutableHashSet`1+NodeEnumerable[System.__Canon]>
+;* V08 loc5         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.__Canon>
+;  V09 loc6         [V09,T60] (  3,  6   )  struct (16) [rbp-0xC8]  do-not-enreg[SFR] multireg-ret must-init ld-addr-op <System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.__Canon]>
+;  V10 loc7         [V10    ] ( 10, 22   )  struct (128) [rbp-0x148]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
+;  V11 loc8         [V11,T58] (  3,  6   )     ref  ->  rbx         class-hnd <System.__Canon>
+;  V12 loc9         [V12,T61] (  3,  6   )  struct (16) [rbp-0x158]  do-not-enreg[SFR] multireg-ret must-init ld-addr-op <System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.__Canon]>
+;  V13 OutArgs      [V13    ] (  1,  1   )  struct (80) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V15 tmp2         [V15    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V16 tmp3         [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V17 tmp4         [V17    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V18 tmp5         [V18    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V19 tmp6         [V19    ] (  2,  4   )  struct ( 8) [rbp-0x168]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+NodeEnumerable[System.__Canon]>
+;* V19 tmp6         [V19    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+NodeEnumerable[System.__Canon]>
 ;* V20 tmp7         [V20    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V21 tmp8         [V21    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V22 tmp9         [V22    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V23 tmp10        [V23    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V24 tmp11        [V24    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V25 tmp12        [V25    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V26 tmp13        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Collections.Generic.IEqualityComparer`1[System.__Canon]>
-;  V27 tmp14        [V27    ] (  3, 12   )  struct (32) [rbp-0x188]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]>
+;* V27 tmp14        [V27    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]>
 ;* V28 tmp15        [V28    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V29 tmp16        [V29    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V30 tmp17        [V30    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V31 tmp18        [V31    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V32 tmp19        [V32    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V33 tmp20        [V33    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V34 tmp21        [V34    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V35 tmp22        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Collections.Generic.IEqualityComparer`1[System.__Canon]>
-;  V36 tmp23        [V36    ] (  3, 12   )  struct (32) [rbp-0x1A8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]>
+;* V36 tmp23        [V36    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]>
 ;* V37 tmp24        [V37    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V38 tmp25        [V38    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V39 tmp26        [V39    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V40 tmp27        [V40    ] (  3,  6   )  struct (16) [rbp-0x1B8]  do-not-enreg[XSR] multireg-ret must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.__Canon]>
+;  V40 tmp27        [V40,T41] (  4,  8   )  struct (16) [rbp-0x168]  do-not-enreg[SFR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.__Canon]>
 ;* V41 tmp28        [V41    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V42 tmp29        [V42    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V43 tmp30        [V43,T30] (  4,  4   )    long  ->  rbx         "Indirect call through function pointer"
+;  V43 tmp30        [V43,T77] (  4,  4   )    long  ->  rbx         "Indirect call through function pointer"
 ;* V44 tmp31        [V44    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V45 tmp32        [V45,T31] (  4,  4   )    long  ->  rcx         "Indirect call through function pointer"
-;* V46 tmp33        [V46    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[S] "spilled call-like call argument" <System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]>
-;  V47 tmp34        [V47    ] (  3, 12   )  struct (32) [rbp-0x1D8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]>
+;  V45 tmp32        [V45,T78] (  4,  4   )    long  ->  rcx         "Indirect call through function pointer"
+;  V46 tmp33        [V46,T56] (  4,  7   )     ref  ->  r12         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;* V47 tmp34        [V47    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V48 tmp35        [V48    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V49 tmp36        [V49    ] (  2,  4   )  struct (128) [rbp-0x258]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
-;* V50 tmp37        [V50    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V51 tmp38        [V51    ] (  2,  2   )     ref  ->  [rbp-0xC0]  do-not-enreg[X] addr-exposed "field V07._root (fldOffset=0x0)" P-DEP
-;  V52 tmp39        [V52    ] (  2,  3   )     ref  ->  [rbp-0x168]  do-not-enreg[X] addr-exposed "field V19._root (fldOffset=0x0)" P-DEP
-;  V53 tmp40        [V53,T19] (  4,  6   )     ref  ->  r15         single-def "V02.[008..016)"
-;  V54 tmp41        [V54,T38] (  2,  4   )    long  ->  rdi         "argument with side effect"
-;  V55 tmp42        [V55,T39] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V56 tmp43        [V56,T40] (  2,  4   )    long  ->  rdx         "argument with side effect"
-;  V57 tmp44        [V57,T00] (  2, 32   )    long  ->  rsi         "argument with side effect"
-;  V58 tmp45        [V58,T12] (  2,  8   )    long  ->  rsi         "argument with side effect"
-;  V59 tmp46        [V59,T13] (  2,  8   )    long  ->  rdi         "argument with side effect"
-;  V60 tmp47        [V60,T14] (  2,  8   )    long  ->  rsi         "argument with side effect"
-;  V61 tmp48        [V61,T41] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V62 tmp49        [V62,T01] (  2, 32   )    long  ->  rsi         "argument with side effect"
-;  V63 tmp50        [V63,T15] (  2,  8   )    long  ->  rsi         "argument with side effect"
-;  V64 tmp51        [V64,T16] (  2,  8   )    long  ->  rsi         "argument with side effect"
-;  V65 tmp52        [V65,T42] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V66 PSPSym       [V66,T45] (  1,  1   )    long  ->  [rbp-0x280]  do-not-enreg[V] "PSPSym"
-;  V67 cse0         [V67,T03] (  6, 22   )    long  ->  r12         hoist "CSE #02: aggressive"
-;  V68 cse1         [V68,T08] (  5, 10   )    long  ->  [rbp-0x260]  multi-def "CSE #03: aggressive"
-;  V69 cse2         [V69,T44] (  3,  3   )    long  ->  r12         "CSE #01: moderate"
-;  V70 cse3         [V70,T43] (  7,  3   )    long  ->  [rbp-0x268]  multi-def "CSE #05: moderate"
-;  V71 rat0         [V71,T32] (  3,  4   )    long  ->  rdi         "runtime lookup"
-;  V72 rat1         [V72,T24] (  3,  5.60)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;  V73 rat2         [V73,T33] (  3,  4   )    long  ->  rdi         "runtime lookup"
-;  V74 rat3         [V74,T25] (  3,  5.60)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;  V75 rat4         [V75,T34] (  3,  4   )    long  ->  r12         "runtime lookup"
-;  V76 rat5         [V76,T26] (  3,  5.60)    long  ->  r12         "fgMakeTemp is creating a new local variable"
-;  V77 rat6         [V77,T35] (  3,  4   )    long  ->  r12         "runtime lookup"
-;  V78 rat7         [V78,T27] (  3,  5.60)    long  ->  r12         "fgMakeTemp is creating a new local variable"
-;  V79 rat8         [V79,T10] (  3,  8   )    long  ->  registers   "runtime lookup"
-;  V80 rat9         [V80,T05] (  3, 11.20)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V81 rat10        [V81,T36] (  3,  4   )    long  ->  rax         "runtime lookup"
-;  V82 rat11        [V82,T28] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V83 rat12        [V83,T11] (  3,  8   )    long  ->  rsi         "runtime lookup"
-;  V84 rat13        [V84,T06] (  3, 11.20)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
-;  V85 rat14        [V85,T37] (  3,  4   )    long  ->  rsi         "runtime lookup"
-;  V86 rat15        [V86,T29] (  3,  5.60)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
-;  V87 rat16        [V87,T46] (  3,  0   )    long  ->  rbx         "runtime lookup"
-;  V88 rat17        [V88,T47] (  3,  0   )    long  ->  rbx         "fgMakeTemp is creating a new local variable"
-;  V89 rat18        [V89,T48] (  3,  0   )    long  ->  rbx         "runtime lookup"
-;  V90 rat19        [V90,T49] (  3,  0   )    long  ->  rbx         "fgMakeTemp is creating a new local variable"
+;  V49 tmp36        [V49    ] (  5, 10   )  struct (128) [rbp-0x1E8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
+;* V50 tmp37        [V50    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V51 tmp38        [V51,T73] (  4,  4.40)    long  ->  rsi         "spilling helperCall"
+;* V52 tmp39        [V52    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;  V53 tmp40        [V53    ] ( 14, 20   )  struct (32) [rbp-0x208]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;* V54 tmp41        [V54    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V55 tmp42        [V55    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V56 tmp43        [V56    ] (  0,  0   )   byref  ->  zero-ref   
+;* V57 tmp44        [V57    ] (  0,  0   )   byref  ->  zero-ref   
+;* V58 tmp45        [V58    ] (  0,  0   )     int  ->  zero-ref   
+;  V59 tmp46        [V59,T72] (  7,  5.40)    long  ->  [rbp-0x210]  "Inlining Arg"
+;* V60 tmp47        [V60    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V61 tmp48        [V61    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V62 tmp49        [V62,T112] (  2,  2   )  struct (32) [rbp-0x230]  do-not-enreg[S] must-init "impAppendStmt" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;  V63 tmp50        [V63,T102] (  3,  3   )     ref  ->  [rbp-0x360]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;* V64 tmp51        [V64    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V65 tmp52        [V65    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V66 tmp53        [V66,T85] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;* V67 tmp54        [V67,T122] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V68 tmp55        [V68    ] (  3,  3   )  struct (32) [rbp-0x250]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;  V69 tmp56        [V69,T100] (  5,  3.40)    long  ->  [rbp-0x258]  spill-single-def "Inlining Arg"
+;* V70 tmp57        [V70    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V71 tmp58        [V71,T113] (  2,  2   )    long  ->  rsi         "Indirect call through function pointer"
+;* V72 tmp59        [V72    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V73 tmp60        [V73    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V74 tmp61        [V74,T114] (  2,  2   )    long  ->  r12         "Indirect call through function pointer"
+;  V75 tmp62        [V75,T111] (  2,  2   )     ref  ->  [rbp-0x368]  class-hnd exact spill-single-def "non-inline candidate call" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V76 tmp63        [V76,T115] (  2,  2   )     int  ->  rax         "Inlining Arg"
+;  V77 tmp64        [V77,T12] (  5, 13.60)    long  ->  [rbp-0x260]  spill-single-def "Inlining Arg"
+;* V78 tmp65        [V78    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V79 tmp66        [V79    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V80 tmp67        [V80,T08] (  6, 13.60)    long  ->  [rbp-0x268]  "Inlining Arg"
+;* V81 tmp68        [V81    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V82 tmp69        [V82,T35] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V83 tmp70        [V83    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V84 tmp71        [V84    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V85 tmp72        [V85,T42] (  3,  8   )    long  ->   r8         "Indirect call through function pointer"
+;  V86 tmp73        [V86,T14] (  3, 12   )     ref  ->  [rbp-0x370]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;* V87 tmp74        [V87    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.__Canon>
+;  V88 tmp75        [V88,T09] (  6, 13.60)    long  ->  [rbp-0x270]  "Inlining Arg"
+;  V89 tmp76        [V89,T62] (  3,  6   )     int  ->  rdi         "Inline stloc first use temp"
+;  V90 tmp77        [V90,T40] (  4,  8   )     ref  ->  [rbp-0x378]  class-hnd "Inline stloc first use temp" <System.__Canon>
+;* V91 tmp78        [V91    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V92 tmp79        [V92,T124] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;* V93 tmp80        [V93    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V94 tmp81        [V94    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V95 tmp82        [V95    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V96 tmp83        [V96,T125] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;  V97 tmp84        [V97,T10] (  6, 13.60)    long  ->  [rbp-0x278]  "Inlining Arg"
+;* V98 tmp85        [V98    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V99 tmp86        [V99,T36] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V100 tmp87       [V100    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V101 tmp88       [V101    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V102 tmp89       [V102,T43] (  3,  8   )    long  ->  rdx         "Indirect call through function pointer"
+;  V103 tmp90       [V103,T15] (  3, 12   )     ref  ->  [rbp-0x380]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V104 tmp91       [V104,T50] (  2,  8   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]>
+;* V105 tmp92       [V105    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[S] "spilled call-like call argument" <System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]>
+;* V106 tmp93       [V106    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]>
+;* V107 tmp94       [V107    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V108 tmp95       [V108    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V109 tmp96       [V109    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V110 tmp97       [V110    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V111 tmp98       [V111    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V112 tmp99       [V112    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V113 tmp100      [V113,T16] (  3, 12   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Collections.Generic.IEqualityComparer`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;* V114 tmp101      [V114    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V115 tmp102      [V115    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
+;  V116 tmp103      [V116    ] (  5, 10   )  struct (128) [rbp-0x2F8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
+;  V117 tmp104      [V117,T74] (  4,  4.40)    long  ->  rsi         "spilling helperCall"
+;  V118 tmp105      [V118,T86] (  2,  4   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;  V119 tmp106      [V119    ] (  2,  4   )  struct (32) [rbp-0x318]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;* V120 tmp107      [V120    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V121 tmp108      [V121    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V122 tmp109      [V122    ] (  0,  0   )   byref  ->  zero-ref   
+;* V123 tmp110      [V123    ] (  0,  0   )   byref  ->  zero-ref   
+;* V124 tmp111      [V124    ] (  0,  0   )     int  ->  zero-ref   
+;  V125 tmp112      [V125,T13] (  5, 13.60)    long  ->  rbx         "Inlining Arg"
+;* V126 tmp113      [V126    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V127 tmp114      [V127    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V128 tmp115      [V128,T11] (  6, 13.60)    long  ->  [rbp-0x320]  "Inlining Arg"
+;* V129 tmp116      [V129    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V130 tmp117      [V130,T37] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V131 tmp118      [V131    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V132 tmp119      [V132    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V133 tmp120      [V133,T44] (  3,  8   )    long  ->  rdx         "Indirect call through function pointer"
+;  V134 tmp121      [V134,T17] (  3, 12   )     ref  ->  [rbp-0x388]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;* V135 tmp122      [V135    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V136 tmp123      [V136    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V137 tmp124      [V137    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V138 tmp125      [V138,T18] (  3, 12   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Collections.Generic.IEqualityComparer`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;* V139 tmp126      [V139    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V140 tmp127      [V140    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
+;* V141 tmp128      [V141    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V142 tmp129      [V142    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V143 tmp130      [V143    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V07._root (fldOffset=0x0)" P-INDEP
+;* V144 tmp131      [V144    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V19._root (fldOffset=0x0)" P-INDEP
+;  V145 tmp132      [V145,T87] (  2,  4   )     ref  ->  r13         "field V27._root (fldOffset=0x0)" P-INDEP
+;* V146 tmp133      [V146,T118] (  0,  0   )     ref  ->  zero-ref    "field V27._equalityComparer (fldOffset=0x8)" P-INDEP
+;  V147 tmp134      [V147,T88] (  2,  4   )     ref  ->  rdi         "field V27._hashBucketEqualityComparer (fldOffset=0x10)" P-INDEP
+;  V148 tmp135      [V148,T94] (  2,  4   )     int  ->  rax         "field V27._count (fldOffset=0x18)" P-INDEP
+;  V149 tmp136      [V149,T89] (  2,  4   )     ref  ->  rsi         "field V36._root (fldOffset=0x0)" P-INDEP
+;* V150 tmp137      [V150,T119] (  0,  0   )     ref  ->  zero-ref    "field V36._equalityComparer (fldOffset=0x8)" P-INDEP
+;  V151 tmp138      [V151,T90] (  2,  4   )     ref  ->  rdi         "field V36._hashBucketEqualityComparer (fldOffset=0x10)" P-INDEP
+;  V152 tmp139      [V152,T95] (  2,  4   )     int  ->  rax         "field V36._count (fldOffset=0x18)" P-INDEP
+;  V153 tmp140      [V153    ] (  7,  7.50)     ref  ->  [rbp-0x208]  do-not-enreg[X] addr-exposed "field V53._root (fldOffset=0x0)" P-DEP
+;  V154 tmp141      [V154    ] (  9,  8   )     ref  ->  [rbp-0x200]  do-not-enreg[X] addr-exposed "field V53._stack (fldOffset=0x8)" P-DEP
+;  V155 tmp142      [V155    ] (  5,  6   )     ref  ->  [rbp-0x1F8]  do-not-enreg[X] addr-exposed "field V53._current (fldOffset=0x10)" P-DEP
+;  V156 tmp143      [V156    ] (  5,  6   )     int  ->  [rbp-0x1F0]  do-not-enreg[X] addr-exposed "field V53._poolUserId (fldOffset=0x18)" P-DEP
+;  V157 tmp144      [V157,T91] (  2,  4   )     ref  ->  rdi         "field V106._root (fldOffset=0x0)" P-INDEP
+;  V158 tmp145      [V158,T92] (  2,  4   )     ref  ->  rsi         "field V106._equalityComparer (fldOffset=0x8)" P-INDEP
+;  V159 tmp146      [V159,T93] (  2,  4   )     ref  ->  rdx         "field V106._hashBucketEqualityComparer (fldOffset=0x10)" P-INDEP
+;  V160 tmp147      [V160,T96] (  2,  4   )     int  ->  rcx         "field V106._count (fldOffset=0x18)" P-INDEP
+;  V161 tmp148      [V161,T07] (  6, 10   )     ref  ->  r15         single-def "V02.[008..016)"
+;* V162 tmp149      [V162    ] (  0,  0   )     ref  ->  zero-ref    single-def "V40.[000..008)"
+;* V163 tmp150      [V163    ] (  0,  0   )     int  ->  zero-ref    "V40.[008..012)"
+;* V164 tmp151      [V164    ] (  0,  0   )     int  ->  zero-ref    "V40.[012..016)"
+;  V165 tmp152      [V165,T97] (  2,  4   )    long  ->  rdi         "argument with side effect"
+;  V166 tmp153      [V166,T75] (  3,  4.40)    long  ->  rdi         "argument with side effect"
+;  V167 tmp154      [V167,T116] (  2,  2   )    long  ->  rdi         "argument with side effect"
+;  V168 tmp155      [V168,T117] (  2,  2   )    long  ->  r12         "argument with side effect"
+;  V169 tmp156      [V169,T00] (  2, 32   )    long  ->  rsi         "argument with side effect"
+;  V170 tmp157      [V170,T51] (  2,  8   )    long  ->  [rbp-0x328]  spill-single-def "argument with side effect"
+;  V171 tmp158      [V171,T52] (  2,  8   )    long  ->  [rbp-0x330]  spill-single-def "argument with side effect"
+;  V172 tmp159      [V172,T53] (  2,  8   )    long  ->  [rbp-0x338]  spill-single-def "argument with side effect"
+;  V173 tmp160      [V173,T130] (  2,  0   )     ref  ->  rdi         "argument with side effect"
+;  V174 tmp161      [V174,T98] (  2,  4   )    long  ->  rsi         "argument with side effect"
+;  V175 tmp162      [V175,T01] (  2, 32   )    long  ->  rsi         "argument with side effect"
+;  V176 tmp163      [V176,T54] (  2,  8   )    long  ->  [rbp-0x340]  spill-single-def "argument with side effect"
+;  V177 tmp164      [V177,T55] (  2,  8   )    long  ->  rsi         "argument with side effect"
+;  V178 tmp165      [V178,T131] (  2,  0   )     ref  ->  rdi         "argument with side effect"
+;  V179 PSPSym      [V179,T123] (  1,  1   )    long  ->  [rbp-0x390]  do-not-enreg[V] "PSPSym"
+;  V180 cse0        [V180,T02] (  5, 21   )    long  ->  r12         hoist "CSE #03: aggressive"
+;  V181 cse1        [V181,T101] (  7,  3   )    long  ->  [rbp-0x348]  multi-def "CSE #16: conservative"
+;  V182 cse2        [V182,T120] (  3,  1.50)    long  ->  [rbp-0x350]  spill-single-def "CSE #01: conservative"
+;  V183 cse3        [V183,T121] (  3,  1.50)    long  ->  [rbp-0x358]  spill-single-def "CSE #02: conservative"
+;  V184 cse4        [V184,T59] (  3,  6   )     ref  ->  rdi         "CSE #06: moderate"
+;  V185 rat0        [V185,T79] (  3,  4   )    long  ->  rdi         "runtime lookup"
+;  V186 rat1        [V186,T63] (  3,  5.60)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V187 rat2        [V187,T80] (  3,  4   )    long  ->  rdi         "runtime lookup"
+;  V188 rat3        [V188,T64] (  3,  5.60)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V189 rat4        [V189,T81] (  3,  4   )    long  ->  rdi         "runtime lookup"
+;  V190 rat5        [V190,T65] (  3,  5.60)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V191 rat6        [V191,T66] (  3,  5.60)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
+;  V192 rat7        [V192,T67] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V193 rat8        [V193,T107] (  3,  2   )    long  ->  registers   "runtime lookup"
+;  V194 rat9        [V194,T103] (  3,  2.80)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V195 rat10       [V195,T108] (  3,  2   )    long  ->  registers   "runtime lookup"
+;  V196 rat11       [V196,T104] (  3,  2.80)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V197 rat12       [V197,T109] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V198 rat13       [V198,T105] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V199 rat14       [V199,T110] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V200 rat15       [V200,T106] (  3,  2.80)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V201 rat16       [V201,T82] (  3,  4   )    long  ->  r12         "runtime lookup"
+;  V202 rat17       [V202,T68] (  3,  5.60)    long  ->  r12         "fgMakeTemp is creating a new local variable"
+;  V203 rat18       [V203,T19] (  3, 11.20)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V204 rat19       [V204,T20] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V205 rat20       [V205,T21] (  3, 11.20)    long  ->   r8         "fgMakeTemp is creating a new local variable"
+;  V206 rat21       [V206,T45] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V207 rat22       [V207,T22] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V208 rat23       [V208,T23] (  3, 11.20)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V209 rat24       [V209,T46] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V210 rat25       [V210,T24] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V211 rat26       [V211,T25] (  3, 11.20)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V212 rat27       [V212,T26] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V213 rat28       [V213,T27] (  3, 11.20)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V214 rat29       [V214,T47] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V215 rat30       [V215,T28] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V216 rat31       [V216,T38] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;* V217 rat32       [V217,T99] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V218 rat33       [V218,T29] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V219 rat34       [V219,T83] (  3,  4   )    long  ->  rax         "runtime lookup"
+;  V220 rat35       [V220,T69] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V221 rat36       [V221,T76] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
+;  V222 rat37       [V222,T70] (  3,  5.60)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
+;  V223 rat38       [V223,T84] (  3,  4   )    long  ->  rsi         "runtime lookup"
+;  V224 rat39       [V224,T71] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V225 rat40       [V225,T30] (  3, 11.20)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V226 rat41       [V226,T31] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V227 rat42       [V227,T32] (  3, 11.20)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V228 rat43       [V228,T48] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V229 rat44       [V229,T33] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V230 rat45       [V230,T49] (  3,  8   )    long  ->  rsi         "runtime lookup"
+;  V231 rat46       [V231,T34] (  3, 11.20)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
+;  V232 rat47       [V232,T126] (  3,  0   )    long  ->  rbx         "runtime lookup"
+;  V233 rat48       [V233,T127] (  3,  0   )    long  ->  rbx         "fgMakeTemp is creating a new local variable"
+;  V234 rat49       [V234,T128] (  3,  0   )    long  ->  rbx         "runtime lookup"
+;  V235 rat50       [V235,T129] (  3,  0   )    long  ->  rbx         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 632
+; Lcl frame size = 952
 
 G_M45682_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 632
-       lea      rbp, [rsp+0x2A0]
+       sub      rsp, 952
+       lea      rbp, [rsp+0x3E0]
        xor      eax, eax
-       mov      qword ptr [rbp-0x258], rax
+       mov      qword ptr [rbp-0x318], rax
        vxorps   xmm8, xmm8, xmm8
-       mov      rax, -528
+       mov      rax, -720
        vmovdqa  xmmword ptr [rbp+rax-0x40], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x30], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x20], xmm8
        add      rax, 48
        jne      SHORT  -5 instr
        mov      qword ptr [rbp-0x40], rax
-       mov      qword ptr [rbp-0x280], rsp
+       mov      qword ptr [rbp-0x390], rsp
        mov      qword ptr [rbp-0x30], rdi
        mov      qword ptr [rbp-0x38], rdi
        mov      rdx, rdi
        mov      rbx, rsi
 						;; size=98 bbWeight=1 PerfScore 20.33
 G_M45682_IG02:
        mov      r15, gword ptr [rbp+0x18]
        test     rbx, rbx
-       je       G_M45682_IG37
+       je       G_M45682_IG125
        mov      rdi, qword ptr [rdx+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rdi, qword ptr [rdi+0xE0]
        test     rdi, rdi
        je       SHORT G_M45682_IG04
 						;; size=32 bbWeight=1 PerfScore 9.50
 G_M45682_IG03:
        jmp      SHORT G_M45682_IG05
 						;; size=2 bbWeight=0.80 PerfScore 1.60
 G_M45682_IG04:
        mov      rdi, rdx
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rdi, rax
 						;; size=21 bbWeight=0.20 PerfScore 0.35
 G_M45682_IG05:
        mov      rsi, r15
        mov      rdx, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet:CreateRange[System.__Canon](System.Collections.Generic.IEqualityComparer`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]
        call     [rax]System.Collections.Immutable.ImmutableHashSet:CreateRange[System.__Canon](System.Collections.Generic.IEqualityComparer`1[System.__Canon],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]
        mov      rbx, rax
        xor      r14d, r14d
        mov      rdx, qword ptr [rbp-0x38]
        mov      rdi, qword ptr [rdx+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rdi, qword ptr [rdi+0x10]
        test     rdi, rdi
        je       SHORT G_M45682_IG07
 						;; size=44 bbWeight=1 PerfScore 12.50
 G_M45682_IG06:
        jmp      SHORT G_M45682_IG08
 						;; size=2 bbWeight=0.80 PerfScore 1.60
 G_M45682_IG07:
        mov      rdi, rdx
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rdi, rax
 						;; size=21 bbWeight=0.20 PerfScore 0.35
 G_M45682_IG08:
        call     CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
        mov      r13, gword ptr [rax]
+       mov      r12, gword ptr [rbp+0x10]
+       test     r12, r12
+       je       G_M45682_IG126
        mov      rdx, qword ptr [rbp-0x38]
        mov      rdi, qword ptr [rdx+0x30]
        mov      rdi, qword ptr [rdi]
-       mov      r12, qword ptr [rdi+0xE8]
-       test     r12, r12
+       mov      rdi, qword ptr [rdi+0xE8]
+       test     rdi, rdi
        je       SHORT G_M45682_IG10
-						;; size=31 bbWeight=1 PerfScore 11.25
+						;; size=44 bbWeight=1 PerfScore 13.50
 G_M45682_IG09:
        jmp      SHORT G_M45682_IG11
 						;; size=2 bbWeight=0.80 PerfScore 1.60
 G_M45682_IG10:
        mov      rdi, rdx
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
-       mov      r12, rax
-						;; size=21 bbWeight=0.20 PerfScore 0.35
+       mov      rdi, rax
+       mov      rdx, qword ptr [rbp-0x38]
+						;; size=25 bbWeight=0.20 PerfScore 0.55
 G_M45682_IG11:
-       mov      rsi, r12
-       lea      rdi, [rbp-0x168]
-       mov      rdx, gword ptr [rbp+0x10]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+NodeEnumerable[System.__Canon]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]):this
-       call     [rax]System.Collections.Immutable.ImmutableHashSet`1+NodeEnumerable[System.__Canon]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]):this
-       mov      rdx, gword ptr [rbp-0x168]
-       mov      gword ptr [rbp-0xC0], rdx
-       mov      rdx, r12
-       lea      rsi, [rbp-0xB8]
-       lea      rdi, [rbp-0xC0]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+NodeEnumerable[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:this
-       call     [rax]System.Collections.Immutable.ImmutableHashSet`1+NodeEnumerable[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:this
-       nop      
-						;; size=70 bbWeight=1 PerfScore 11.75
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rsi, qword ptr [rsi+0x18]
+       test     rsi, rsi
+       je       SHORT G_M45682_IG13
+						;; size=16 bbWeight=1 PerfScore 7.25
 G_M45682_IG12:
+       jmp      SHORT G_M45682_IG14
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M45682_IG13:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rsi, rax
+       mov      rdx, qword ptr [rbp-0x38]
+						;; size=22 bbWeight=0.20 PerfScore 0.50
+G_M45682_IG14:
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x1E8], rdi
+       mov      rdi, qword ptr [rsi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rax, qword ptr [rdi+0x10]
+       test     rax, rax
+       je       SHORT G_M45682_IG16
+						;; size=25 bbWeight=1 PerfScore 8.50
+G_M45682_IG15:
+       mov      qword ptr [rbp-0x210], rax
+       jmp      SHORT G_M45682_IG17
+						;; size=9 bbWeight=0.80 PerfScore 2.40
+G_M45682_IG16:
+       mov      rdi, rsi
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      qword ptr [rbp-0x210], rax
+						;; size=25 bbWeight=0.20 PerfScore 0.50
+G_M45682_IG17:
+       mov      gword ptr [rbp-0x208], r12
+       xor      rcx, rcx
+       mov      gword ptr [rbp-0x1F8], rcx
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool:NewId():int
+       call     [rcx]System.Collections.Immutable.SecureObjectPool:NewId():int
+       mov      dword ptr [rbp-0x1F0], eax
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x200], rdi
+       mov      rdi, gword ptr [rbp-0x208]
+       cmp      gword ptr [rdi+0x08], 0
+       je       G_M45682_IG37
+						;; size=61 bbWeight=1 PerfScore 12.75
+G_M45682_IG18:
+       mov      rax, qword ptr [rbp-0x210]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rcx, qword ptr [rdi+0x18]
+       test     rcx, rcx
+       je       SHORT G_M45682_IG20
+						;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M45682_IG19:
+       jmp      SHORT G_M45682_IG21
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M45682_IG20:
+       mov      qword ptr [rbp-0x210], rax
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rcx, rax
+       mov      rax, qword ptr [rbp-0x210]
+						;; size=35 bbWeight=0.10 PerfScore 0.38
+G_M45682_IG21:
+       mov      rdi, rcx
+       mov      qword ptr [rbp-0x358], rdi
+       mov      rcx, rdi
+       mov      qword ptr [rbp-0x258], rcx
+						;; size=20 bbWeight=0.50 PerfScore 1.25
+G_M45682_IG22:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x208]
+       vmovdqu  ymmword ptr [rbp-0x250], ymm0
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M45682_IG23:
+       mov      rsi, qword ptr [rcx+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rdx, qword ptr [rsi+0x18]
+       test     rdx, rdx
+       je       SHORT G_M45682_IG25
+						;; size=16 bbWeight=0.50 PerfScore 3.62
+G_M45682_IG24:
+       mov      qword ptr [rbp-0x210], rax
+       jmp      SHORT G_M45682_IG26
+						;; size=9 bbWeight=0.40 PerfScore 1.20
+G_M45682_IG25:
+       mov      qword ptr [rbp-0x210], rax
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdx, rax
+						;; size=28 bbWeight=0.10 PerfScore 0.28
+G_M45682_IG26:
+       mov      qword ptr [rbp-0x350], rdx
+       mov      rsi, rdx
+       lea      rdi, [rbp-0x250]
+       call     rsi
+       cmp      eax, -1
+       je       SHORT G_M45682_IG30
+       mov      rdi, qword ptr [rbp-0x258]
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rax, qword ptr [rsi+0x20]
+       test     rax, rax
+       je       SHORT G_M45682_IG28
+						;; size=47 bbWeight=0.50 PerfScore 7.12
+G_M45682_IG27:
+       mov      rdi, rax
+       jmp      SHORT G_M45682_IG29
+						;; size=5 bbWeight=0.40 PerfScore 0.90
+G_M45682_IG28:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=18 bbWeight=0.10 PerfScore 0.15
+G_M45682_IG29:
+       lea      rsi, [rbp-0x200]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       call     [rax]System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       test     eax, eax
+       je       SHORT G_M45682_IG30
+       mov      r12, qword ptr [rbp-0x350]
+       mov      rax, gword ptr [rbp-0x200]
+       mov      gword ptr [rbp-0x368], rax
+       lea      rdi, [rbp-0x250]
+       call     r12
+       mov      r12, gword ptr [rbp-0x368]
+       mov      dword ptr [r12+0x10], eax
+       jmp      G_M45682_IG36
+						;; size=71 bbWeight=0.50 PerfScore 7.75
+G_M45682_IG30:
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x200], rdi
+						;; size=9 bbWeight=0.50 PerfScore 0.62
+G_M45682_IG31:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x208]
+       vmovdqu  ymmword ptr [rbp-0x230], ymm0
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M45682_IG32:
+       mov      rax, qword ptr [rbp-0x210]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M45682_IG34
+						;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M45682_IG33:
+       mov      qword ptr [rbp-0x210], rax
+       jmp      SHORT G_M45682_IG35
+						;; size=9 bbWeight=0.40 PerfScore 1.20
+G_M45682_IG34:
+       mov      qword ptr [rbp-0x210], rax
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=28 bbWeight=0.10 PerfScore 0.28
+G_M45682_IG35:
+       call     CORINFO_HELP_NEWSFAST
+       mov      gword ptr [rbp-0x360], rax
+       movzx    rsi, byte  ptr [r12+0x1D]
+       mov      rdi, rax
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       call     [rcx]System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       mov      r12, qword ptr [rbp-0x358]
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x230]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, r12
+       mov      rsi, gword ptr [rbp-0x360]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       call     [rax]System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       mov      gword ptr [rbp-0x200], rax
+						;; size=129 bbWeight=0.50 PerfScore 13.25
+G_M45682_IG36:
+       lea      rdi, [rbp-0x208]
+       mov      rsi, qword ptr [rbp-0x210]
+       mov      rdx, gword ptr [rbp-0x208]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]):this
+       call     [rax]System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]):this
+						;; size=33 bbWeight=0.50 PerfScore 2.88
+G_M45682_IG37:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x208]
+       vmovdqu  ymmword ptr [rbp-0x1D8], ymm0
+						;; size=16 bbWeight=1 PerfScore 5.00
+G_M45682_IG38:
+       vxorps   ymm0, ymm0, ymm0
+       vmovdqu  ymmword ptr [rbp-0x1B8], ymm0
+       vmovdqu  ymmword ptr [rbp-0x198], ymm0
+       vmovdqu  xmmword ptr [rbp-0x178], xmm0
+       mov      dword ptr [rbp-0x1E0], -1
+       lea      rdi, bword ptr [rbp-0xB8]
+       lea      rsi, bword ptr [rbp-0x1E8]
+       mov      ecx, 16
+       rep movsq 
+						;; size=60 bbWeight=1 PerfScore 30.58
+G_M45682_IG39:
        mov      rdx, qword ptr [rbp-0x38]
        mov      rdi, qword ptr [rdx+0x30]
        mov      rdi, qword ptr [rdi]
        mov      r12, qword ptr [rdi+0x90]
        test     r12, r12
-       je       SHORT G_M45682_IG14
+       je       SHORT G_M45682_IG41
 						;; size=23 bbWeight=1 PerfScore 8.25
-G_M45682_IG13:
-       jmp      SHORT G_M45682_IG15
+G_M45682_IG40:
+       jmp      SHORT G_M45682_IG42
 						;; size=2 bbWeight=0.80 PerfScore 1.60
-G_M45682_IG14:
+G_M45682_IG41:
        mov      rdi, rdx
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      r12, rax
        mov      rdx, qword ptr [rbp-0x38]
 						;; size=25 bbWeight=0.20 PerfScore 0.55
-G_M45682_IG15:
-       jmp      G_M45682_IG21
+G_M45682_IG42:
+       jmp      G_M45682_IG73
 						;; size=5 bbWeight=1 PerfScore 2.00
-G_M45682_IG16:
-       mov      rsi, r12
-       lea      rdi, [rbp-0xB8]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:get_Current():System.__Canon:this
-       call     [rax]System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:get_Current():System.__Canon:this
-       mov      gword ptr [rbp-0x270], rax
-       cmp      byte  ptr [rbx], bl
-       vxorps   ymm0, ymm0, ymm0
-       vmovdqu  ymmword ptr [rbp-0x1D8], ymm0
-       mov      rdx, qword ptr [rbp-0x38]
-       mov      rdi, qword ptr [rdx+0x30]
+G_M45682_IG43:
+       mov      rax, r12
+       mov      qword ptr [rbp-0x260], rax
+       mov      rdi, qword ptr [rax+0x30]
        mov      rdi, qword ptr [rdi]
-       mov      rcx, qword ptr [rdi+0x58]
+       mov      rcx, qword ptr [rdi+0x10]
        test     rcx, rcx
-       je       SHORT G_M45682_IG18
-						;; size=63 bbWeight=2 PerfScore 35.17
-G_M45682_IG17:
-       jmp      SHORT G_M45682_IG19
+       je       SHORT G_M45682_IG45
+						;; size=26 bbWeight=2 PerfScore 17.00
+G_M45682_IG44:
+       jmp      SHORT G_M45682_IG46
 						;; size=2 bbWeight=1.60 PerfScore 3.20
-G_M45682_IG18:
-       mov      rdi, rdx
+G_M45682_IG45:
+       mov      rdi, rax
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rcx, rax
+       mov      rax, qword ptr [rbp-0x260]
+						;; size=28 bbWeight=0.40 PerfScore 1.10
+G_M45682_IG46:
+       cmp      gword ptr [rbp-0xA8], 0
+       je       G_M45682_IG53
+       cmp      gword ptr [rbp-0xA0], 0
+       je       G_M45682_IG57
+       mov      rdi, qword ptr [rcx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x30]
+       test     rdi, rdi
+       je       SHORT G_M45682_IG48
+						;; size=44 bbWeight=2 PerfScore 26.50
+G_M45682_IG47:
+       jmp      SHORT G_M45682_IG49
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M45682_IG48:
+       mov      qword ptr [rbp-0x268], rcx
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       mov      rax, qword ptr [rbp-0x260]
+       mov      rcx, qword ptr [rbp-0x268]
+						;; size=42 bbWeight=0.40 PerfScore 1.90
+G_M45682_IG49:
+       mov      rdx, gword ptr [rbp-0xA0]
+       mov      gword ptr [rbp-0x370], rdx
+       cmp      byte  ptr [rdx], dl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      r8, qword ptr [rsi+0x10]
+       test     r8, r8
+       je       SHORT G_M45682_IG51
+						;; size=29 bbWeight=2 PerfScore 20.50
+G_M45682_IG50:
+       mov      qword ptr [rbp-0x268], rcx
+       jmp      SHORT G_M45682_IG52
+						;; size=9 bbWeight=1.60 PerfScore 4.80
+G_M45682_IG51:
+       mov      qword ptr [rbp-0x268], rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      r8, rax
+						;; size=25 bbWeight=0.40 PerfScore 1.00
+G_M45682_IG52:
+       lea      rdi, [rbp-0xA8]
+       call     r8
+       mov      rdi, gword ptr [rbp-0x370]
+       cmp      eax, dword ptr [rdi+0x10]
+       mov      rax, qword ptr [rbp-0x260]
+       mov      rcx, qword ptr [rbp-0x268]
+       je       G_M45682_IG57
+						;; size=40 bbWeight=2 PerfScore 21.00
+G_M45682_IG53:
+       mov      rdi, qword ptr [rcx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x28]
+       test     rdi, rdi
+       je       SHORT G_M45682_IG55
+						;; size=16 bbWeight=2 PerfScore 14.50
+G_M45682_IG54:
+       jmp      SHORT G_M45682_IG56
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M45682_IG55:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
 						;; size=21 bbWeight=0.40 PerfScore 0.70
-G_M45682_IG19:
-       mov      rsi, rcx
-       mov      qword ptr [rbp-0x260], rsi
-       mov      rdi, rsi
-       lea      rdi, [rbp-0x1D8]
-       mov      rdx, rbx
-       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]):this
-       call     [rcx]System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]):this
+G_M45682_IG56:
+       mov      qword ptr [rbp-0x328], rdi
        lea      rdi, [rsp]
-       lea      rsi, [rbp-0x1D8]
+       lea      rsi, [rbp-0xA8]
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp], rcx
        add      rsi, 8
        add      rdi, 8
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp+0x08], rcx
        add      rsi, 8
        add      rdi, 8
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp+0x10], rcx
        add      rsi, 8
        add      rdi, 8
        movsq    
-       mov      rdi, qword ptr [rbp-0x38]
-       mov      rsi, gword ptr [rbp-0x270]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Contains(System.__Canon,System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):ubyte
-       call     [rax]System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Contains(System.__Canon,System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):ubyte
-       test     eax, eax
-       jne      G_M45682_IG21
-       mov      rsi, qword ptr [rbp-0x260]
-       vxorps   ymm0, ymm0, ymm0
-       vmovdqu  ymmword ptr [rbp-0x188], ymm0
-       lea      rdi, [rbp-0x188]
-       mov      rdx, r13
-       mov      rcx, r15
-       mov      r8, gword ptr [rbp+0x20]
-       mov      r9d, r14d
-       mov      r10, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.Collections.Generic.IEqualityComparer`1[System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],int):this
-       call     [r10]System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.Collections.Generic.IEqualityComparer`1[System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],int):this
+       mov      rdi, qword ptr [rbp-0x328]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]])
+       call     [rcx]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]])
+       mov      rax, qword ptr [rbp-0x260]
+						;; size=93 bbWeight=2 PerfScore 37.50
+G_M45682_IG57:
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rcx, qword ptr [rdi+0x18]
+       test     rcx, rcx
+       je       SHORT G_M45682_IG59
+						;; size=16 bbWeight=2 PerfScore 14.50
+G_M45682_IG58:
+       jmp      SHORT G_M45682_IG60
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M45682_IG59:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rcx, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M45682_IG60:
+       cmp      byte  ptr [rbp-0x84], 0
+       je       G_M45682_IG64
+       mov      rdi, qword ptr [rcx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       SHORT G_M45682_IG62
+						;; size=29 bbWeight=2 PerfScore 20.50
+G_M45682_IG61:
+       mov      qword ptr [rbp-0x270], rcx
+       jmp      SHORT G_M45682_IG63
+						;; size=9 bbWeight=1.60 PerfScore 4.80
+G_M45682_IG62:
+       mov      qword ptr [rbp-0x270], rcx
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=28 bbWeight=0.40 PerfScore 1.10
+G_M45682_IG63:
+       mov      qword ptr [rbp-0x330], rdi
        lea      rdi, [rsp]
-       lea      rsi, [rbp-0x188]
+       lea      rsi, [rbp-0x88]
+       movsq    
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x20], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x28], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x30], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x330]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon])
+       call     [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon])
+       mov      rcx, qword ptr [rbp-0x270]
+						;; size=148 bbWeight=2 PerfScore 64.50
+G_M45682_IG64:
+       mov      edi, dword ptr [rbp-0x88]
+       cmp      edi, 1
+       je       G_M45682_IG81
+       cmp      edi, 2
+       jne      G_M45682_IG76
+       mov      rdi, qword ptr [rcx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rax, qword ptr [rdi+0x10]
+       test     rax, rax
+       je       G_M45682_IG82
+						;; size=44 bbWeight=2 PerfScore 21.50
+G_M45682_IG65:
+       cmp      gword ptr [rbp-0x68], 0
+       je       SHORT G_M45682_IG69
+       cmp      gword ptr [rbp-0x60], 0
+       je       G_M45682_IG71
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       G_M45682_IG83
+						;; size=38 bbWeight=2 PerfScore 26.50
+G_M45682_IG66:
+       mov      rcx, gword ptr [rbp-0x60]
+       mov      gword ptr [rbp-0x380], rcx
+       cmp      byte  ptr [rcx], cl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rdx, qword ptr [rsi+0x10]
+       test     rdx, rdx
+       je       G_M45682_IG84
+						;; size=30 bbWeight=2 PerfScore 20.50
+G_M45682_IG67:
+       mov      qword ptr [rbp-0x278], rax
+						;; size=7 bbWeight=1.60 PerfScore 1.60
+G_M45682_IG68:
+       lea      rdi, [rbp-0x70]
+       call     rdx
+       mov      rdi, gword ptr [rbp-0x380]
+       cmp      eax, dword ptr [rdi+0x10]
+       mov      rax, qword ptr [rbp-0x278]
+       je       SHORT G_M45682_IG71
+						;; size=25 bbWeight=2 PerfScore 19.00
+G_M45682_IG69:
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x10]
+       test     rdi, rdi
+       je       G_M45682_IG85
+						;; size=20 bbWeight=2 PerfScore 14.50
+G_M45682_IG70:
+       mov      qword ptr [rbp-0x338], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x70]
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp], rcx
        add      rsi, 8
        add      rdi, 8
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp+0x08], rcx
        add      rsi, 8
        add      rdi, 8
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp+0x10], rcx
        add      rsi, 8
        add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
        movsq    
-       mov      rdi, qword ptr [rbp-0x38]
-       mov      rsi, gword ptr [rbp-0x270]
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x338]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon])
+       call     [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon])
+						;; size=103 bbWeight=2 PerfScore 46.50
+G_M45682_IG71:
+       mov      rdi, gword ptr [rbp-0x58]
+       test     rdi, rdi
+       je       G_M45682_IG75
+       mov      rax, gword ptr [rdi+0x08]
+						;; size=17 bbWeight=2 PerfScore 8.50
+G_M45682_IG72:
+       mov      rdi, gword ptr [rbx+0x10]
+       mov      rsi, gword ptr [rbx+0x08]
+       mov      ecx, dword ptr [rbx+0x20]
+       mov      rdx, gword ptr [rbx+0x18]
+       mov      gword ptr [rsp], rdi
+       mov      gword ptr [rsp+0x08], rsi
+       mov      gword ptr [rsp+0x10], rdx
+       mov      dword ptr [rsp+0x18], ecx
+       mov      rdi, qword ptr [rbx]
+       mov      gword ptr [rbp-0x378], rax
+       mov      rsi, rax
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Contains(System.__Canon,System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):ubyte
+       call     [rcx]System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Contains(System.__Canon,System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):ubyte
+       test     eax, eax
+       jne      SHORT G_M45682_IG73
+       mov      rdx, qword ptr [rbp-0x38]
+       mov      rsi, gword ptr [rbp-0x378]
+       mov      rdi, gword ptr [rbp+0x20]
+       test     r13, r13
+       je       G_M45682_IG77
+       test     r15, r15
+       je       G_M45682_IG78
+       test     r14d, r14d
+       jl       G_M45682_IG79
+       test     rdi, rdi
+       je       G_M45682_IG80
+       mov      eax, r14d
+       mov      gword ptr [rsp], r13
+       mov      gword ptr [rsp+0x08], r15
+       mov      gword ptr [rsp+0x10], rdi
+       mov      dword ptr [rsp+0x18], eax
+       mov      rdi, rdx
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Add(System.__Canon,System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.__Canon]
        call     [rax]System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Add(System.__Canon,System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.__Canon]
-						;; size=261 bbWeight=2 PerfScore 100.17
-G_M45682_IG20:
-       mov      gword ptr [rbp-0xD0], rax
-       mov      qword ptr [rbp-0xC8], rdx
-       mov      r13, gword ptr [rbp-0xD0]
-       add      r14d, dword ptr [rbp-0xC8]
-						;; size=28 bbWeight=2 PerfScore 10.00
-G_M45682_IG21:
+       mov      gword ptr [rbp-0xC8], rax
+       mov      qword ptr [rbp-0xC0], rdx
+       mov      r13, gword ptr [rbp-0xC8]
+       add      r14d, dword ptr [rbp-0xC0]
+						;; size=177 bbWeight=2 PerfScore 81.00
+G_M45682_IG73:
        mov      rsi, r12
        lea      rdi, [rbp-0xB8]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
        call     [rax]System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
        test     eax, eax
-       jne      G_M45682_IG16
+       jne      G_M45682_IG43
 						;; size=30 bbWeight=8 PerfScore 42.00
-G_M45682_IG22:
+G_M45682_IG74:
+       jmp      G_M45682_IG86
+						;; size=5 bbWeight=1 PerfScore 2.00
+G_M45682_IG75:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M45682_IG76:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M45682_IG77:
+       mov      edi, 0x45F
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M45682_IG78:
+       mov      edi, 0x469
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M45682_IG79:
+       mov      edi, 0x4B9
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       xor      rsi, rsi
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailRange(System.String,System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailRange(System.String,System.String)
+       int3     
+						;; size=38 bbWeight=0 PerfScore 0.00
+G_M45682_IG80:
+       mov      edi, 0x4F5
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M45682_IG81:
+       mov      rax, gword ptr [rbp-0x80]
+       jmp      G_M45682_IG72
+						;; size=9 bbWeight=2 PerfScore 6.00
+G_M45682_IG82:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       jmp      G_M45682_IG65
+						;; size=23 bbWeight=0.40 PerfScore 1.40
+G_M45682_IG83:
+       mov      qword ptr [rbp-0x278], rax
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       mov      rax, qword ptr [rbp-0x278]
+       jmp      G_M45682_IG66
+						;; size=40 bbWeight=0.40 PerfScore 2.30
+G_M45682_IG84:
+       mov      qword ptr [rbp-0x278], rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdx, rax
+       jmp      G_M45682_IG68
+						;; size=30 bbWeight=0.40 PerfScore 1.80
+G_M45682_IG85:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M45682_IG70
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M45682_IG86:
        mov      rdi, qword ptr [rbp-0x38]
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      rax, qword ptr [rsi+0x98]
        test     rax, rax
-       je       SHORT G_M45682_IG24
+       je       SHORT G_M45682_IG88
 						;; size=23 bbWeight=1 PerfScore 8.25
-G_M45682_IG23:
-       jmp      SHORT G_M45682_IG25
+G_M45682_IG87:
+       jmp      SHORT G_M45682_IG89
 						;; size=2 bbWeight=0.80 PerfScore 1.60
-G_M45682_IG24:
+G_M45682_IG88:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=15 bbWeight=0.20 PerfScore 0.25
-G_M45682_IG25:
-       mov      qword ptr [rbp-0x268], rax
+G_M45682_IG89:
+       mov      qword ptr [rbp-0x348], rax
        mov      rcx, rax
        lea      rdi, [rbp-0xB8]
        call     rcx
-       mov      rsi, r12
-       mov      rdx, gword ptr [rbx+0x10]
-       lea      rdi, [rbp-0x258]
-       xor      rcx, rcx
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.Collections.Immutable.ImmutableHashSet`1+Builder[System.__Canon]):this
-       call     [rax]System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.Collections.Immutable.ImmutableHashSet`1+Builder[System.__Canon]):this
-       lea      rdi, bword ptr [rbp-0x150]
-       lea      rsi, bword ptr [rbp-0x258]
+       mov      rdi, qword ptr [rbx]
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rsi, qword ptr [rsi+0x90]
+       test     rsi, rsi
+       je       SHORT G_M45682_IG91
+						;; size=41 bbWeight=1 PerfScore 14.00
+G_M45682_IG90:
+       jmp      SHORT G_M45682_IG92
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M45682_IG91:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rsi, rax
+						;; size=18 bbWeight=0.20 PerfScore 0.30
+G_M45682_IG92:
+       mov      rbx, gword ptr [rbx+0x10]
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x2F8], rdi
+       mov      rdi, qword ptr [rsi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rax, qword ptr [rdi+0x10]
+       test     rax, rax
+       je       SHORT G_M45682_IG94
+						;; size=29 bbWeight=1 PerfScore 10.50
+G_M45682_IG93:
+       mov      rsi, rax
+       jmp      SHORT G_M45682_IG95
+						;; size=5 bbWeight=0.80 PerfScore 1.80
+G_M45682_IG94:
+       mov      rdi, rsi
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rsi, rax
+						;; size=21 bbWeight=0.20 PerfScore 0.35
+G_M45682_IG95:
+       lea      rdi, [rbp-0x318]
+       mov      rdx, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]):this
+       call     [rax]System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]):this
+						;; size=22 bbWeight=1 PerfScore 4.00
+G_M45682_IG96:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x318]
+       vmovdqu  ymmword ptr [rbp-0x2E8], ymm0
+						;; size=16 bbWeight=1 PerfScore 5.00
+G_M45682_IG97:
+       vxorps   ymm0, ymm0, ymm0
+       vmovdqu  ymmword ptr [rbp-0x2C8], ymm0
+       vmovdqu  ymmword ptr [rbp-0x2A8], ymm0
+       vmovdqu  xmmword ptr [rbp-0x288], xmm0
+       mov      dword ptr [rbp-0x2F0], -1
+       lea      rdi, bword ptr [rbp-0x148]
+       lea      rsi, bword ptr [rbp-0x2F8]
        mov      ecx, 16
        rep movsq 
-						;; size=69 bbWeight=1 PerfScore 37.25
-G_M45682_IG26:
-       jmp      G_M45682_IG31
+						;; size=60 bbWeight=1 PerfScore 30.58
+G_M45682_IG98:
+       jmp      G_M45682_IG117
 						;; size=5 bbWeight=1 PerfScore 2.00
-G_M45682_IG27:
-       mov      rsi, r12
-       lea      rdi, [rbp-0x150]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:get_Current():System.__Canon:this
-       call     [rax]System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:get_Current():System.__Canon:this
-       mov      rbx, rax
+G_M45682_IG99:
+       mov      rbx, r12
+       mov      rdi, qword ptr [rbx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rax, qword ptr [rdi+0x10]
+       test     rax, rax
+       je       SHORT G_M45682_IG101
+						;; size=19 bbWeight=2 PerfScore 15.00
+G_M45682_IG100:
+       jmp      SHORT G_M45682_IG102
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M45682_IG101:
+       mov      rdi, rbx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+						;; size=18 bbWeight=0.40 PerfScore 0.60
+G_M45682_IG102:
+       cmp      gword ptr [rbp-0x138], 0
+       je       G_M45682_IG109
+       cmp      gword ptr [rbp-0x130], 0
+       je       G_M45682_IG113
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x30]
+       test     rdi, rdi
+       je       SHORT G_M45682_IG104
+						;; size=44 bbWeight=2 PerfScore 26.50
+G_M45682_IG103:
+       jmp      SHORT G_M45682_IG105
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M45682_IG104:
+       mov      qword ptr [rbp-0x320], rax
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       mov      rax, qword ptr [rbp-0x320]
+						;; size=35 bbWeight=0.40 PerfScore 1.50
+G_M45682_IG105:
+       mov      rcx, gword ptr [rbp-0x130]
+       mov      gword ptr [rbp-0x388], rcx
+       cmp      byte  ptr [rcx], cl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rdx, qword ptr [rsi+0x10]
+       test     rdx, rdx
+       je       SHORT G_M45682_IG107
+						;; size=29 bbWeight=2 PerfScore 20.50
+G_M45682_IG106:
+       mov      qword ptr [rbp-0x320], rax
+       jmp      SHORT G_M45682_IG108
+						;; size=9 bbWeight=1.60 PerfScore 4.80
+G_M45682_IG107:
+       mov      qword ptr [rbp-0x320], rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdx, rax
+						;; size=25 bbWeight=0.40 PerfScore 1.00
+G_M45682_IG108:
+       lea      rdi, [rbp-0x138]
+       call     rdx
+       mov      rdi, gword ptr [rbp-0x388]
+       cmp      eax, dword ptr [rdi+0x10]
+       mov      rax, qword ptr [rbp-0x320]
+       je       G_M45682_IG113
+						;; size=32 bbWeight=2 PerfScore 19.00
+G_M45682_IG109:
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x28]
+       test     rdi, rdi
+       je       SHORT G_M45682_IG111
+						;; size=16 bbWeight=2 PerfScore 14.50
+G_M45682_IG110:
+       jmp      SHORT G_M45682_IG112
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M45682_IG111:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M45682_IG112:
+       mov      qword ptr [rbp-0x340], rdi
        lea      rdi, [rsp]
-       lea      rsi, [rbp+0x10]
+       lea      rsi, [rbp-0x138]
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp], rcx
        add      rsi, 8
        add      rdi, 8
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp+0x08], rcx
        add      rsi, 8
        add      rdi, 8
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp+0x10], rcx
        add      rsi, 8
        add      rdi, 8
        movsq    
-       mov      rdi, qword ptr [rbp-0x38]
-       mov      rsi, rbx
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Contains(System.__Canon,System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):ubyte
-       call     [rax]System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Contains(System.__Canon,System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):ubyte
-       test     eax, eax
-       jne      G_M45682_IG31
-       vxorps   ymm0, ymm0, ymm0
-       vmovdqu  ymmword ptr [rbp-0x1A8], ymm0
-       mov      rdi, qword ptr [rbp-0x38]
-       mov      rsi, qword ptr [rdi+0x30]
-       mov      rsi, qword ptr [rsi]
-       mov      rsi, qword ptr [rsi+0x58]
+       mov      rdi, qword ptr [rbp-0x340]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]])
+       call     [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]])
+						;; size=86 bbWeight=2 PerfScore 35.50
+G_M45682_IG113:
+       mov      rdi, qword ptr [rbx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rsi, qword ptr [rdi+0x18]
        test     rsi, rsi
-       je       SHORT G_M45682_IG29
-						;; size=141 bbWeight=2 PerfScore 64.17
-G_M45682_IG28:
-       jmp      SHORT G_M45682_IG30
+       je       SHORT G_M45682_IG115
+						;; size=16 bbWeight=2 PerfScore 14.50
+G_M45682_IG114:
+       jmp      SHORT G_M45682_IG116
 						;; size=2 bbWeight=1.60 PerfScore 3.20
-G_M45682_IG29:
+G_M45682_IG115:
+       mov      rdi, rbx
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rsi, rax
-						;; size=18 bbWeight=0.40 PerfScore 0.60
-G_M45682_IG30:
-       lea      rdi, [rbp-0x1A8]
-       mov      rdx, r13
-       mov      rcx, r15
-       mov      r8, gword ptr [rbp+0x20]
-       mov      r9d, r14d
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.Collections.Generic.IEqualityComparer`1[System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],int):this
-       call     [rax]System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.Collections.Generic.IEqualityComparer`1[System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],int):this
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M45682_IG116:
+       lea      rdi, [rbp-0x118]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon]:get_Current():System.__Canon:this
+       call     [rax]System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon]:get_Current():System.__Canon:this
+       mov      rbx, rax
        lea      rdi, [rsp]
-       lea      rsi, [rbp-0x1A8]
+       lea      rsi, [rbp+0x10]
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp], rcx
        add      rsi, 8
        add      rdi, 8
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp+0x08], rcx
        add      rsi, 8
        add      rdi, 8
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp+0x10], rcx
        add      rsi, 8
        add      rdi, 8
        movsq    
        mov      rdi, qword ptr [rbp-0x38]
        mov      rsi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Contains(System.__Canon,System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):ubyte
+       call     [rax]System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Contains(System.__Canon,System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):ubyte
+       test     eax, eax
+       jne      SHORT G_M45682_IG117
+       mov      rdi, gword ptr [rbp+0x20]
+       test     r13, r13
+       je       G_M45682_IG119
+       test     r15, r15
+       je       G_M45682_IG120
+       test     r14d, r14d
+       jl       G_M45682_IG121
+       test     rdi, rdi
+       je       G_M45682_IG122
+       mov      rsi, r13
+       mov      eax, r14d
+       mov      gword ptr [rsp], rsi
+       mov      gword ptr [rsp+0x08], r15
+       mov      gword ptr [rsp+0x10], rdi
+       mov      dword ptr [rsp+0x18], eax
+       mov      rdi, qword ptr [rbp-0x38]
+       mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Add(System.__Canon,System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.__Canon]
        call     [rax]System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:Add(System.__Canon,System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.__Canon]
-       mov      gword ptr [rbp-0x160], rax
-       mov      qword ptr [rbp-0x158], rdx
-       mov      r13, gword ptr [rbp-0x160]
-       add      r14d, dword ptr [rbp-0x158]
-						;; size=139 bbWeight=2 PerfScore 55.00
-G_M45682_IG31:
+       mov      gword ptr [rbp-0x158], rax
+       mov      qword ptr [rbp-0x150], rdx
+       mov      r13, gword ptr [rbp-0x158]
+       add      r14d, dword ptr [rbp-0x150]
+						;; size=213 bbWeight=2 PerfScore 84.50
+G_M45682_IG117:
        mov      rsi, r12
-       lea      rdi, [rbp-0x150]
+       lea      rdi, [rbp-0x148]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
        call     [rax]System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
        test     eax, eax
-       jne      G_M45682_IG27
+       jne      G_M45682_IG99
 						;; size=30 bbWeight=8 PerfScore 42.00
-G_M45682_IG32:
-       mov      rbx, qword ptr [rbp-0x268]
-       lea      rdi, [rbp-0x150]
+G_M45682_IG118:
+       jmp      G_M45682_IG123
+						;; size=5 bbWeight=1 PerfScore 2.00
+G_M45682_IG119:
+       mov      edi, 0x45F
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M45682_IG120:
+       mov      edi, 0x469
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M45682_IG121:
+       mov      edi, 0x4B9
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       xor      rsi, rsi
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailRange(System.String,System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailRange(System.String,System.String)
+       int3     
+						;; size=38 bbWeight=0 PerfScore 0.00
+G_M45682_IG122:
+       mov      edi, 0x4F5
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M45682_IG123:
+       mov      rbx, qword ptr [rbp-0x348]
+       lea      rdi, [rbp-0x148]
        call     rbx
-       vxorps   xmm0, xmm0, xmm0
-       vmovdqu  xmmword ptr [rbp-0x1B8], xmm0
-       mov      rdi, qword ptr [rbp-0x38]
-       mov      rsi, qword ptr [rdi+0x30]
-       mov      rsi, qword ptr [rsi]
-       mov      rsi, qword ptr [rsi+0x68]
-       test     rsi, rsi
-       je       SHORT G_M45682_IG34
-						;; size=48 bbWeight=1 PerfScore 14.08
-G_M45682_IG33:
-       jmp      SHORT G_M45682_IG35
-						;; size=2 bbWeight=0.80 PerfScore 1.60
-G_M45682_IG34:
-       mov      rsi, 0xD1FFAB1E      ; global ptr
-       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
-       mov      rsi, rax
-						;; size=18 bbWeight=0.20 PerfScore 0.30
-G_M45682_IG35:
-       lea      rdi, [rbp-0x1B8]
-       mov      rdx, r13
-       mov      ecx, r14d
-       mov      r8d, 1
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.__Canon]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],int,int):this
-       call     [rax]System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.__Canon]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],int,int):this
-       mov      rax, gword ptr [rbp-0x1B8]
-       mov      rdx, qword ptr [rbp-0x1B0]
-						;; size=45 bbWeight=1 PerfScore 6.50
-G_M45682_IG36:
-       add      rsp, 632
+       test     r13, r13
+       je       SHORT G_M45682_IG126
+       mov      gword ptr [rbp-0x168], r13
+       mov      dword ptr [rbp-0x160], r14d
+       mov      dword ptr [rbp-0x15C], 1
+       mov      rax, gword ptr [rbp-0x168]
+       mov      rdx, qword ptr [rbp-0x160]
+						;; size=59 bbWeight=1 PerfScore 10.75
+G_M45682_IG124:
+       vzeroupper 
+       add      rsp, 952
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=1 PerfScore 4.25
-G_M45682_IG37:
+						;; size=21 bbWeight=1 PerfScore 5.25
+G_M45682_IG125:
        mov      edi, 0x48B
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
-G_M45682_IG38:
+G_M45682_IG126:
+       mov      edi, 0x45F
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M45682_IG127:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 40
-       mov      rbp, qword ptr [rdi+0x20]
-       mov      qword ptr [rsp+0x20], rbp
-       lea      rbp, [rbp+0x2A0]
+       sub      rsp, 88
+       mov      rbp, qword ptr [rdi+0x50]
+       mov      qword ptr [rsp+0x50], rbp
+       lea      rbp, [rbp+0x3E0]
 						;; size=30 bbWeight=0 PerfScore 0.00
-G_M45682_IG39:
-       mov      rdi, qword ptr [rbp-0x38]
-       mov      rsi, qword ptr [rdi+0x30]
-       mov      rsi, qword ptr [rsi]
-       mov      rbx, qword ptr [rsi+0x98]
+G_M45682_IG128:
+       mov      rdx, qword ptr [rbp-0x38]
+       mov      rdi, qword ptr [rdx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rbx, qword ptr [rdi+0x98]
        test     rbx, rbx
-       je       SHORT G_M45682_IG40
-       jmp      SHORT G_M45682_IG41
+       je       SHORT G_M45682_IG129
+       jmp      SHORT G_M45682_IG130
 						;; size=25 bbWeight=0 PerfScore 0.00
-G_M45682_IG40:
+G_M45682_IG129:
+       mov      rdi, rdx
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rbx, rax
-						;; size=18 bbWeight=0 PerfScore 0.00
-G_M45682_IG41:
+						;; size=21 bbWeight=0 PerfScore 0.00
+G_M45682_IG130:
        mov      rcx, rbx
        lea      rdi, [rbp-0xB8]
        call     rcx
        nop      
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M45682_IG42:
-       add      rsp, 40
+G_M45682_IG131:
+       vzeroupper 
+       add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0 PerfScore 0.00
-G_M45682_IG43:
+						;; size=18 bbWeight=0 PerfScore 0.00
+G_M45682_IG132:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 40
-       mov      rbp, qword ptr [rdi+0x20]
-       mov      qword ptr [rsp+0x20], rbp
-       lea      rbp, [rbp+0x2A0]
+       sub      rsp, 88
+       mov      rbp, qword ptr [rdi+0x50]
+       mov      qword ptr [rsp+0x50], rbp
+       lea      rbp, [rbp+0x3E0]
 						;; size=30 bbWeight=0 PerfScore 0.00
-G_M45682_IG44:
-       mov      rdi, qword ptr [rbp-0x38]
-       mov      rsi, qword ptr [rdi+0x30]
-       mov      rsi, qword ptr [rsi]
-       mov      rbx, qword ptr [rsi+0x98]
+G_M45682_IG133:
+       mov      rdx, qword ptr [rbp-0x38]
+       mov      rdi, qword ptr [rdx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rbx, qword ptr [rdi+0x98]
        test     rbx, rbx
-       je       SHORT G_M45682_IG45
-       jmp      SHORT G_M45682_IG46
+       je       SHORT G_M45682_IG134
+       jmp      SHORT G_M45682_IG135
 						;; size=25 bbWeight=0 PerfScore 0.00
-G_M45682_IG45:
+G_M45682_IG134:
+       mov      rdi, rdx
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rbx, rax
-						;; size=18 bbWeight=0 PerfScore 0.00
-G_M45682_IG46:
-       lea      rdi, [rbp-0x150]
+						;; size=21 bbWeight=0 PerfScore 0.00
+G_M45682_IG135:
+       lea      rdi, [rbp-0x148]
        call     rbx
        nop      
 						;; size=10 bbWeight=0 PerfScore 0.00
-G_M45682_IG47:
-       add      rsp, 40
+G_M45682_IG136:
+       vzeroupper 
+       add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0 PerfScore 0.00
+						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1614, prolog size 98, PerfScore 515.87, instruction count 377, allocated bytes for code 1614 (MethodHash=52e24d8d) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.__Canon] (FullOpts)
+; Total bytes of code 3998, prolog size 98, PerfScore 1152.63, instruction count 878, allocated bytes for code 3998 (MethodHash=52e24d8d) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.__Canon] (FullOpts)
1715 (289.21 % of base) - System.Collections.Immutable.ImmutableHashSet`1+Builder[System.__Canon]:System.Collections.Generic.ICollection.CopyTo(System.__Canon[],int):this
 ; Assembly listing for method System.Collections.Immutable.ImmutableHashSet`1+Builder[System.__Canon]:System.Collections.Generic.ICollection<T>.CopyTo(System.__Canon[],int):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
+; 0 inlinees with PGO data; 10 single block inlinees; 12 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  7,  6   )     ref  ->  [rbp-0x138]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableHashSet`1+Builder[System.__Canon]>
-;  V01 arg1         [V01,T07] (  5,  6   )     ref  ->  r15         class-hnd single-def <System.__Canon[]>
-;  V02 arg2         [V02,T05] (  6,  8   )     int  ->  registers  
-;  V03 loc0         [V03    ] (  5, 12   )  struct (128) [rbp-0xB0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
-;  V04 loc1         [V04,T17] (  2,  4   )     ref  ->  rdx         class-hnd <System.__Canon>
-;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V00 this         [V00,T20] (  8,  7   )     ref  ->  [rbp-0x1E0]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableHashSet`1+Builder[System.__Canon]>
+;  V01 arg1         [V01,T24] (  5,  6   )     ref  ->  r15         class-hnd single-def <System.__Canon[]>
+;  V02 arg2         [V02,T19] (  6,  8   )     int  ->  registers  
+;  V03 loc0         [V03    ] ( 19, 40   )  struct (128) [rbp-0xB0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
+;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.__Canon>
+;  V05 OutArgs      [V05    ] (  1,  1   )  struct (80) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V07 tmp2         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp3         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V09 tmp4         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V10 tmp5         [V10,T04] (  3, 12   )     int  ->  rbx         "impSpillLclRefs"
+;  V10 tmp5         [V10,T09] (  3, 12   )     int  ->  rbx         "impSpillLclRefs"
 ;* V11 tmp6         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V12 tmp7         [V12,T14] (  6,  4   )    long  ->  rax         "Indirect call through function pointer"
+;  V12 tmp7         [V12,T46] (  6,  4   )    long  ->  rax         "Indirect call through function pointer"
 ;* V13 tmp8         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V14 tmp9         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V15 tmp10        [V15    ] (  2,  4   )  struct (128) [rbp-0x130]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
-;* V16 tmp11        [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V17 tmp12        [V17,T24] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V18 tmp13        [V18,T18] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V19 tmp14        [V19,T02] (  2, 32   )    long  ->  rsi         "argument with side effect"
-;  V20 tmp15        [V20,T08] (  2,  8   )    long  ->  rsi         "argument with side effect"
-;  V21 PSPSym       [V21,T21] (  1,  1   )    long  ->  [rbp-0x140]  do-not-enreg[V] "PSPSym"
-;  V22 cse0         [V22,T15] (  3,  4   )    long  ->  r13         "CSE #02: moderate"
-;  V23 cse1         [V23,T03] ( 10, 14   )    long  ->  r14         multi-def "CSE #01: aggressive"
-;* V24 rat0         [V24,T13] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
-;* V25 rat1         [V25,T19] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V26 rat2         [V26,T09] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V27 rat3         [V27,T16] (  3,  4   )    long  ->  r13         "runtime lookup"
-;  V28 rat4         [V28,T10] (  3,  5.60)    long  ->  r13         "fgMakeTemp is creating a new local variable"
-;* V29 rat5         [V29,T20] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;  V30 rat6         [V30,T11] (  2,  4   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;  V31 rat7         [V31,T01] (  3, 32   )    long  ->  rsi         "runtime lookup"
-;  V32 rat8         [V32,T00] (  3, 44.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
-;  V33 rat9         [V33,T12] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V34 rat10        [V34,T22] (  3,  0   )    long  ->  rdi         "Spilling to split statement for tree"
-;  V35 rat11        [V35,T23] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V15 tmp10        [V15    ] (  5, 10   )  struct (128) [rbp-0x130]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
+;  V16 tmp11        [V16,T44] (  3,  4.40)    long  ->  rdi         "spilling helperCall"
+;  V17 tmp12        [V17,T34] (  4,  7   )     ref  ->  r12         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;  V18 tmp13        [V18    ] ( 14, 20   )  struct (32) [rbp-0x150]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;* V19 tmp14        [V19    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V20 tmp15        [V20    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref   
+;  V22 tmp17        [V22,T62] (  2,  2   )   byref  ->  rcx         single-def
+;  V23 tmp18        [V23,T64] (  2,  2   )     int  ->  rdi        
+;  V24 tmp19        [V24,T43] (  6,  5.40)    long  ->  [rbp-0x158]  spill-single-def "Inlining Arg"
+;* V25 tmp20        [V25    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V26 tmp21        [V26    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V27 tmp22        [V27,T65] (  2,  2   )  struct (32) [rbp-0x178]  do-not-enreg[S] must-init "impAppendStmt" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;  V28 tmp23        [V28,T53] (  3,  3   )     ref  ->  [rbp-0x1E8]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;* V29 tmp24        [V29    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V30 tmp25        [V30    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V31 tmp26        [V31,T51] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;* V32 tmp27        [V32,T75] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V33 tmp28        [V33    ] (  3,  3   )  struct (32) [rbp-0x198]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;  V34 tmp29        [V34,T52] (  5,  3.40)    long  ->  [rbp-0x1A0]  spill-single-def "Inlining Arg"
+;* V35 tmp30        [V35    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V36 tmp31        [V36,T66] (  2,  2   )    long  ->  rsi         "Indirect call through function pointer"
+;* V37 tmp32        [V37    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V38 tmp33        [V38    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V39 tmp34        [V39,T67] (  2,  2   )    long  ->  r12         "Indirect call through function pointer"
+;  V40 tmp35        [V40,T63] (  2,  2   )     ref  ->  [rbp-0x1F0]  class-hnd exact spill-single-def "non-inline candidate call" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V41 tmp36        [V41,T68] (  2,  2   )     int  ->  rax         "Inlining Arg"
+;  V42 tmp37        [V42,T23] (  3,  8.80)    long  ->  r12         "Inlining Arg"
+;* V43 tmp38        [V43    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V44 tmp39        [V44    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V45 tmp40        [V45,T06] (  5, 13.60)    long  ->  [rbp-0x1A8]  spill-single-def "Inlining Arg"
+;* V46 tmp41        [V46    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V47 tmp42        [V47,T21] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V48 tmp43        [V48    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V49 tmp44        [V49    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V50 tmp45        [V50,T25] (  3,  8   )    long  ->   r8         "Indirect call through function pointer"
+;  V51 tmp46        [V51,T07] (  3, 12   )     ref  ->  [rbp-0x1F8]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;* V52 tmp47        [V52    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.__Canon>
+;  V53 tmp48        [V53,T04] (  6, 13.60)    long  ->  r12         "Inlining Arg"
+;  V54 tmp49        [V54,T37] (  3,  6   )     int  ->  rdi         "Inline stloc first use temp"
+;  V55 tmp50        [V55,T35] (  3,  6   )     ref  ->  rdx         class-hnd "Inline stloc first use temp" <System.__Canon>
+;* V56 tmp51        [V56    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V57 tmp52        [V57,T77] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;* V58 tmp53        [V58    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V59 tmp54        [V59    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V60 tmp55        [V60    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V61 tmp56        [V61,T78] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;  V62 tmp57        [V62,T05] (  6, 13.60)    long  ->  r12         "Inlining Arg"
+;* V63 tmp58        [V63    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V64 tmp59        [V64,T22] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V65 tmp60        [V65    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V66 tmp61        [V66    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V67 tmp62        [V67,T26] (  3,  8   )    long  ->  rdx         "Indirect call through function pointer"
+;  V68 tmp63        [V68,T08] (  3, 12   )     ref  ->  [rbp-0x200]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V69 tmp64        [V69,T30] (  2,  8   )     ref  ->  rsi         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]>
+;  V70 tmp65        [V70    ] (  7,  7.50)     ref  ->  [rbp-0x150]  do-not-enreg[X] addr-exposed "field V18._root (fldOffset=0x0)" P-DEP
+;  V71 tmp66        [V71    ] (  9,  8   )     ref  ->  [rbp-0x148]  do-not-enreg[X] addr-exposed "field V18._stack (fldOffset=0x8)" P-DEP
+;  V72 tmp67        [V72    ] (  5,  6   )     ref  ->  [rbp-0x140]  do-not-enreg[X] addr-exposed "field V18._current (fldOffset=0x10)" P-DEP
+;  V73 tmp68        [V73    ] (  5,  6   )     int  ->  [rbp-0x138]  do-not-enreg[X] addr-exposed "field V18._poolUserId (fldOffset=0x18)" P-DEP
+;  V74 tmp69        [V74,T81] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V75 tmp70        [V75,T69] (  2,  2   )    long  ->  rdi         "argument with side effect"
+;  V76 tmp71        [V76,T70] (  2,  2   )    long  ->  r12         "argument with side effect"
+;  V77 tmp72        [V77,T02] (  2, 32   )    long  ->  rsi         "argument with side effect"
+;  V78 tmp73        [V78,T31] (  2,  8   )    long  ->  [rbp-0x1B0]  spill-single-def "argument with side effect"
+;  V79 tmp74        [V79,T32] (  2,  8   )    long  ->  [rbp-0x1B8]  spill-single-def "argument with side effect"
+;  V80 tmp75        [V80,T33] (  2,  8   )    long  ->  [rbp-0x1C0]  spill-single-def "argument with side effect"
+;  V81 PSPSym       [V81,T76] (  1,  1   )    long  ->  [rbp-0x210]  do-not-enreg[V] "PSPSym"
+;  V82 cse0         [V82,T47] (  3,  4   )    long  ->  r13         "CSE #04: moderate"
+;  V83 cse1         [V83,T48] (  3,  4   )    long  ->  [rbp-0x1C8]  spill-single-def "CSE #05: moderate"
+;  V84 cse2         [V84,T73] (  3,  1.50)    long  ->  [rbp-0x1D0]  spill-single-def "CSE #02: conservative"
+;  V85 cse3         [V85,T74] (  3,  1.50)    long  ->  [rbp-0x1D8]  spill-single-def "CSE #03: conservative"
+;  V86 cse4         [V86,T03] ( 10, 14   )    long  ->  r14         multi-def "CSE #01: aggressive"
+;  V87 cse5         [V87,T36] (  3,  6   )     ref  ->  rsi         "CSE #08: moderate"
+;* V88 rat0         [V88,T45] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;* V89 rat1         [V89,T71] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V90 rat2         [V90,T38] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V91 rat3         [V91,T49] (  3,  4   )    long  ->  r13         "runtime lookup"
+;  V92 rat4         [V92,T39] (  3,  5.60)    long  ->  r13         "fgMakeTemp is creating a new local variable"
+;  V93 rat5         [V93,T50] (  3,  4   )    long  ->  rax         "runtime lookup"
+;  V94 rat6         [V94,T40] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V95 rat7         [V95,T58] (  3,  2   )    long  ->  registers   "runtime lookup"
+;  V96 rat8         [V96,T54] (  3,  2.80)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V97 rat9         [V97,T59] (  3,  2   )    long  ->  registers   "runtime lookup"
+;  V98 rat10        [V98,T55] (  3,  2.80)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V99 rat11        [V99,T60] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V100 rat12       [V100,T56] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V101 rat13       [V101,T61] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V102 rat14       [V102,T57] (  3,  2.80)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V103 rat15       [V103,T72] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V104 rat16       [V104,T41] (  2,  4   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V105 rat17       [V105,T10] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V106 rat18       [V106,T11] (  3, 11.20)    long  ->   r8         "fgMakeTemp is creating a new local variable"
+;  V107 rat19       [V107,T27] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V108 rat20       [V108,T12] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V109 rat21       [V109,T13] (  3, 11.20)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V110 rat22       [V110,T28] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V111 rat23       [V111,T14] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V112 rat24       [V112,T15] (  3, 11.20)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V113 rat25       [V113,T16] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V114 rat26       [V114,T17] (  3, 11.20)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V115 rat27       [V115,T29] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V116 rat28       [V116,T18] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V117 rat29       [V117,T01] (  3, 32   )    long  ->  rsi         "runtime lookup"
+;  V118 rat30       [V118,T00] (  3, 44.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
+;  V119 rat31       [V119,T42] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V120 rat32       [V120,T79] (  3,  0   )    long  ->  rdi         "Spilling to split statement for tree"
+;  V121 rat33       [V121,T80] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 280
+; Lcl frame size = 568
 
 G_M10945_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 280
-       lea      rbp, [rsp+0x140]
+       sub      rsp, 568
+       lea      rbp, [rsp+0x260]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x198], rax
        vxorps   xmm8, xmm8, xmm8
-       vmovdqa  xmmword ptr [rbp-0x130], xmm8
-       mov      rax, -240
+       vmovdqa  xmmword ptr [rbp-0x190], xmm8
+       mov      rax, -336
        vmovdqa  xmmword ptr [rbp+rax-0x30], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x20], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x10], xmm8
        add      rax, 48
        jne      SHORT  -5 instr
-       mov      qword ptr [rbp-0x140], rsp
+       mov      qword ptr [rbp-0x210], rsp
        mov      qword ptr [rbp-0x30], rdi
-       mov      gword ptr [rbp-0x138], rdi
+       mov      gword ptr [rbp-0x1E0], rdi
        mov      r15, rsi
        mov      ebx, edx
        mov      rdx, rdi
-						;; size=98 bbWeight=1 PerfScore 20.33
+						;; size=107 bbWeight=1 PerfScore 21.58
 G_M10945_IG02:
        mov      r14, qword ptr [rdx]
        test     r15, r15
-       je       G_M10945_IG17
+       je       G_M10945_IG74
        test     ebx, ebx
-       jl       G_M10945_IG18
+       jl       G_M10945_IG75
        mov      edi, ebx
        add      edi, dword ptr [rdx+0x28]
        cmp      dword ptr [r15+0x08], edi
-       jl       G_M10945_IG18
+       jl       G_M10945_IG75
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      r13, qword ptr [rdi+0x38]
        test     r13, r13
        je       SHORT G_M10945_IG04
 						;; size=51 bbWeight=1 PerfScore 19.00
 G_M10945_IG03:
        jmp      SHORT G_M10945_IG05
 						;; size=2 bbWeight=0.80 PerfScore 1.60
 G_M10945_IG04:
        mov      rdi, r14
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      r13, rax
 						;; size=21 bbWeight=0.20 PerfScore 0.35
 G_M10945_IG05:
-       mov      rsi, r13
-       mov      rdx, gword ptr [rbp-0x138]
-       mov      rdx, gword ptr [rdx+0x08]
-       lea      rdi, [rbp-0x130]
-       mov      rcx, gword ptr [rbp-0x138]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.Collections.Immutable.ImmutableHashSet`1+Builder[System.__Canon]):this
-       call     [rax]System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.Collections.Immutable.ImmutableHashSet`1+Builder[System.__Canon]):this
+       mov      rdi, r13
+       mov      rdx, gword ptr [rbp-0x1E0]
+       mov      r12, gword ptr [rdx+0x08]
+       mov      gword ptr [rbp-0x130], rdx
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rax, qword ptr [rsi+0x10]
+       test     rax, rax
+       je       SHORT G_M10945_IG07
+						;; size=37 bbWeight=1 PerfScore 11.50
+G_M10945_IG06:
+       jmp      SHORT G_M10945_IG08
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M10945_IG07:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+						;; size=15 bbWeight=0.20 PerfScore 0.25
+G_M10945_IG08:
+       mov      qword ptr [rbp-0x1C8], rax
+       mov      qword ptr [rbp-0x158], rax
+       test     r12, r12
+       je       G_M10945_IG76
+       mov      gword ptr [rbp-0x150], r12
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x140], rdi
+       mov      rdi, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool:NewId():int
+       call     [rdi]System.Collections.Immutable.SecureObjectPool:NewId():int
+       mov      dword ptr [rbp-0x138], eax
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x148], rdi
+       mov      rdi, gword ptr [rbp-0x150]
+       cmp      gword ptr [rdi+0x08], 0
+       je       G_M10945_IG28
+						;; size=84 bbWeight=1 PerfScore 16.00
+G_M10945_IG09:
+       mov      rax, qword ptr [rbp-0x158]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rcx, qword ptr [rdi+0x18]
+       test     rcx, rcx
+       je       SHORT G_M10945_IG11
+						;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M10945_IG10:
+       jmp      SHORT G_M10945_IG12
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M10945_IG11:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rcx, rax
+       mov      rax, qword ptr [rbp-0x158]
+						;; size=28 bbWeight=0.10 PerfScore 0.28
+G_M10945_IG12:
+       mov      rdi, rcx
+       mov      qword ptr [rbp-0x1D8], rdi
+       mov      rcx, rdi
+       mov      qword ptr [rbp-0x1A0], rcx
+						;; size=20 bbWeight=0.50 PerfScore 1.25
+G_M10945_IG13:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x150]
+       vmovdqu  ymmword ptr [rbp-0x198], ymm0
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M10945_IG14:
+       mov      rsi, qword ptr [rcx+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rdx, qword ptr [rsi+0x18]
+       test     rdx, rdx
+       je       SHORT G_M10945_IG16
+						;; size=16 bbWeight=0.50 PerfScore 3.62
+G_M10945_IG15:
+       jmp      SHORT G_M10945_IG17
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M10945_IG16:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdx, rax
+						;; size=21 bbWeight=0.10 PerfScore 0.18
+G_M10945_IG17:
+       mov      qword ptr [rbp-0x1D0], rdx
+       mov      rsi, rdx
+       lea      rdi, [rbp-0x198]
+       call     rsi
+       cmp      eax, -1
+       je       SHORT G_M10945_IG21
+       mov      rdi, qword ptr [rbp-0x1A0]
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rax, qword ptr [rsi+0x20]
+       test     rax, rax
+       je       SHORT G_M10945_IG19
+						;; size=47 bbWeight=0.50 PerfScore 7.12
+G_M10945_IG18:
+       mov      rdi, rax
+       jmp      SHORT G_M10945_IG20
+						;; size=5 bbWeight=0.40 PerfScore 0.90
+G_M10945_IG19:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=18 bbWeight=0.10 PerfScore 0.15
+G_M10945_IG20:
+       lea      rsi, [rbp-0x148]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       call     [rax]System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       test     eax, eax
+       je       SHORT G_M10945_IG21
+       mov      r12, qword ptr [rbp-0x1D0]
+       mov      rax, gword ptr [rbp-0x148]
+       mov      gword ptr [rbp-0x1F0], rax
+       lea      rdi, [rbp-0x198]
+       call     r12
+       mov      r12, gword ptr [rbp-0x1F0]
+       mov      dword ptr [r12+0x10], eax
+       jmp      G_M10945_IG27
+						;; size=71 bbWeight=0.50 PerfScore 7.75
+G_M10945_IG21:
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x148], rdi
+						;; size=9 bbWeight=0.50 PerfScore 0.62
+G_M10945_IG22:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x150]
+       vmovdqu  ymmword ptr [rbp-0x178], ymm0
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M10945_IG23:
+       mov      rax, qword ptr [rbp-0x158]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M10945_IG25
+						;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M10945_IG24:
+       jmp      SHORT G_M10945_IG26
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M10945_IG25:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.10 PerfScore 0.18
+G_M10945_IG26:
+       call     CORINFO_HELP_NEWSFAST
+       mov      gword ptr [rbp-0x1E8], rax
+       movzx    rsi, byte  ptr [r12+0x1D]
+       mov      rdi, rax
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       call     [rcx]System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       mov      r12, qword ptr [rbp-0x1D8]
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x178]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, r12
+       mov      rsi, gword ptr [rbp-0x1E8]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       call     [rax]System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       mov      gword ptr [rbp-0x148], rax
+						;; size=129 bbWeight=0.50 PerfScore 13.25
+G_M10945_IG27:
+       lea      rdi, [rbp-0x150]
+       mov      rsi, qword ptr [rbp-0x158]
+       mov      rdx, gword ptr [rbp-0x150]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]):this
+       call     [rax]System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]):this
+						;; size=33 bbWeight=0.50 PerfScore 2.88
+G_M10945_IG28:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x150]
+       vmovdqu  ymmword ptr [rbp-0x120], ymm0
+						;; size=16 bbWeight=1 PerfScore 5.00
+G_M10945_IG29:
+       vxorps   ymm0, ymm0, ymm0
+       vmovdqu  ymmword ptr [rbp-0x100], ymm0
+       vmovdqu  ymmword ptr [rbp-0xE0], ymm0
+       vmovdqu  xmmword ptr [rbp-0xC0], xmm0
+       lea      rcx, bword ptr [rbp-0x130]
+       mov      rdx, gword ptr [rbp-0x1E0]
+       mov      edi, dword ptr [rdx+0x2C]
+       mov      dword ptr [rcx+0x08], edi
        lea      rdi, bword ptr [rbp-0xB0]
        lea      rsi, bword ptr [rbp-0x130]
        mov      ecx, 16
        rep movsq 
-						;; size=62 bbWeight=1 PerfScore 34.25
-G_M10945_IG06:
+						;; size=70 bbWeight=1 PerfScore 34.08
+G_M10945_IG30:
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rdi, qword ptr [rdi+0x38]
        test     rdi, rdi
-       jne      SHORT G_M10945_IG08
-       jmp      SHORT G_M10945_IG08
-						;; size=18 bbWeight=1 PerfScore 9.25
-G_M10945_IG07:
-       mov      rsi, r13
-       lea      rdi, [rbp-0xB0]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:get_Current():System.__Canon:this
-       call     [rax]System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:get_Current():System.__Canon:this
-       mov      rdx, rax
+       jne      G_M10945_IG58
+       jmp      G_M10945_IG58
+						;; size=25 bbWeight=1 PerfScore 9.25
+G_M10945_IG31:
+       mov      r12, r13
+       mov      rax, qword ptr [rbp-0x1C8]
+       mov      rcx, rax
+       mov      qword ptr [rbp-0x1A8], rcx
+       cmp      gword ptr [rbp-0xA0], 0
+       je       G_M10945_IG38
+       cmp      gword ptr [rbp-0x98], 0
+       je       G_M10945_IG42
+       mov      rdi, qword ptr [rcx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x30]
+       test     rdi, rdi
+       je       SHORT G_M10945_IG33
+						;; size=64 bbWeight=2 PerfScore 31.50
+G_M10945_IG32:
+       jmp      SHORT G_M10945_IG34
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M10945_IG33:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       mov      rcx, qword ptr [rbp-0x1A8]
+						;; size=28 bbWeight=0.40 PerfScore 1.10
+G_M10945_IG34:
+       mov      rdx, gword ptr [rbp-0x98]
+       mov      gword ptr [rbp-0x1F8], rdx
+       cmp      byte  ptr [rdx], dl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      r8, qword ptr [rsi+0x10]
+       test     r8, r8
+       je       SHORT G_M10945_IG36
+						;; size=29 bbWeight=2 PerfScore 20.50
+G_M10945_IG35:
+       jmp      SHORT G_M10945_IG37
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M10945_IG36:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      r8, rax
+						;; size=18 bbWeight=0.40 PerfScore 0.60
+G_M10945_IG37:
+       lea      rdi, [rbp-0xA0]
+       call     r8
+       mov      rdi, gword ptr [rbp-0x1F8]
+       cmp      eax, dword ptr [rdi+0x10]
+       mov      rcx, qword ptr [rbp-0x1A8]
+       je       G_M10945_IG42
+						;; size=33 bbWeight=2 PerfScore 19.00
+G_M10945_IG38:
+       mov      rdi, qword ptr [rcx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x28]
+       test     rdi, rdi
+       je       SHORT G_M10945_IG40
+						;; size=16 bbWeight=2 PerfScore 14.50
+G_M10945_IG39:
+       jmp      SHORT G_M10945_IG41
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M10945_IG40:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M10945_IG41:
+       mov      qword ptr [rbp-0x1B0], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0xA0]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1B0]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]])
+       call     [rcx]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]])
+						;; size=86 bbWeight=2 PerfScore 35.50
+G_M10945_IG42:
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rcx, qword ptr [rdi+0x18]
+       test     rcx, rcx
+       je       SHORT G_M10945_IG44
+						;; size=17 bbWeight=2 PerfScore 14.50
+G_M10945_IG43:
+       mov      r12, rcx
+       jmp      SHORT G_M10945_IG45
+						;; size=5 bbWeight=1.60 PerfScore 3.60
+G_M10945_IG44:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r12, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M10945_IG45:
+       cmp      byte  ptr [rbp-0x7C], 0
+       je       G_M10945_IG49
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       SHORT G_M10945_IG47
+						;; size=27 bbWeight=2 PerfScore 20.50
+G_M10945_IG46:
+       jmp      SHORT G_M10945_IG48
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M10945_IG47:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M10945_IG48:
+       mov      qword ptr [rbp-0x1B8], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x80]
+       movsq    
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x20], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x28], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x30], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1B8]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon])
+       call     [rcx]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon])
+						;; size=138 bbWeight=2 PerfScore 62.50
+G_M10945_IG49:
+       mov      edi, dword ptr [rbp-0x80]
+       cmp      edi, 1
+       je       G_M10945_IG63
+       cmp      edi, 2
+       jne      G_M10945_IG62
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rcx, qword ptr [rdi+0x10]
+       test     rcx, rcx
+       je       G_M10945_IG64
+						;; size=42 bbWeight=2 PerfScore 21.50
+G_M10945_IG50:
+       mov      r12, rcx
+						;; size=3 bbWeight=1.60 PerfScore 0.40
+G_M10945_IG51:
+       cmp      gword ptr [rbp-0x60], 0
+       je       SHORT G_M10945_IG54
+       cmp      gword ptr [rbp-0x58], 0
+       je       G_M10945_IG56
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       G_M10945_IG65
+						;; size=39 bbWeight=2 PerfScore 26.50
+G_M10945_IG52:
+       mov      rcx, gword ptr [rbp-0x58]
+       mov      gword ptr [rbp-0x200], rcx
+       cmp      byte  ptr [rcx], cl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rdx, qword ptr [rsi+0x10]
+       test     rdx, rdx
+       je       G_M10945_IG66
+						;; size=30 bbWeight=2 PerfScore 20.50
+G_M10945_IG53:
+       lea      rdi, [rbp-0x68]
+       call     rdx
+       mov      rdi, gword ptr [rbp-0x200]
+       cmp      eax, dword ptr [rdi+0x10]
+       je       G_M10945_IG56
+						;; size=22 bbWeight=2 PerfScore 17.00
+G_M10945_IG54:
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x10]
+       test     rdi, rdi
+       je       G_M10945_IG67
+						;; size=21 bbWeight=2 PerfScore 14.50
+G_M10945_IG55:
+       mov      qword ptr [rbp-0x1C0], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x68]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1C0]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon])
+       call     [rcx]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon])
+						;; size=103 bbWeight=2 PerfScore 46.50
+G_M10945_IG56:
+       mov      rsi, gword ptr [rbp-0x50]
+       test     rsi, rsi
+       je       SHORT G_M10945_IG61
+       mov      rdx, gword ptr [rsi+0x08]
+						;; size=13 bbWeight=2 PerfScore 8.50
+G_M10945_IG57:
        lea      esi, [rbx+0x01]
        mov      r12d, esi
        movsxd   rsi, ebx
        mov      rdi, r15
        call     CORINFO_HELP_ARRADDR_ST
        mov      ebx, r12d
-						;; size=45 bbWeight=2 PerfScore 13.50
-G_M10945_IG08:
+						;; size=20 bbWeight=2 PerfScore 5.00
+G_M10945_IG58:
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rsi, qword ptr [rdi+0x38]
        test     rsi, rsi
-       je       SHORT G_M10945_IG10
-						;; size=16 bbWeight=8 PerfScore 58.00
-G_M10945_IG09:
-       jmp      SHORT G_M10945_IG11
-						;; size=2 bbWeight=6.40 PerfScore 12.80
-G_M10945_IG10:
-       mov      rdi, r14
-       mov      rsi, 0xD1FFAB1E      ; global ptr
-       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
-       mov      rsi, rax
-						;; size=21 bbWeight=1.60 PerfScore 2.80
-G_M10945_IG11:
+       je       G_M10945_IG68
+						;; size=20 bbWeight=8 PerfScore 58.00
+G_M10945_IG59:
        lea      rdi, [rbp-0xB0]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
        call     [rax]System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
        test     eax, eax
-       jne      SHORT G_M10945_IG07
-						;; size=23 bbWeight=8 PerfScore 40.00
-G_M10945_IG12:
+       jne      G_M10945_IG31
+						;; size=27 bbWeight=8 PerfScore 40.00
+G_M10945_IG60:
+       jmp      G_M10945_IG69
+						;; size=5 bbWeight=1 PerfScore 2.00
+G_M10945_IG61:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M10945_IG62:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M10945_IG63:
+       mov      rdx, gword ptr [rbp-0x78]
+       jmp      G_M10945_IG57
+						;; size=9 bbWeight=2 PerfScore 6.00
+G_M10945_IG64:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r12, rax
+       jmp      G_M10945_IG51
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M10945_IG65:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M10945_IG52
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M10945_IG66:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdx, rax
+       jmp      G_M10945_IG53
+						;; size=23 bbWeight=0.40 PerfScore 1.40
+G_M10945_IG67:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M10945_IG55
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M10945_IG68:
+       mov      rdi, r14
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rsi, rax
+       jmp      G_M10945_IG59
+						;; size=26 bbWeight=1.60 PerfScore 6.00
+G_M10945_IG69:
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rax, qword ptr [rdi+0x58]
        test     rax, rax
-       je       SHORT G_M10945_IG14
+       je       SHORT G_M10945_IG71
 						;; size=16 bbWeight=1 PerfScore 7.25
-G_M10945_IG13:
-       jmp      SHORT G_M10945_IG15
+G_M10945_IG70:
+       jmp      SHORT G_M10945_IG72
 						;; size=2 bbWeight=0.80 PerfScore 1.60
-G_M10945_IG14:
+G_M10945_IG71:
        mov      rdi, r14
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=18 bbWeight=0.20 PerfScore 0.30
-G_M10945_IG15:
+G_M10945_IG72:
        lea      rdi, [rbp-0xB0]
        call     rax
        nop      
 						;; size=10 bbWeight=1 PerfScore 3.75
-G_M10945_IG16:
-       add      rsp, 280
+G_M10945_IG73:
+       vzeroupper 
+       add      rsp, 568
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=1 PerfScore 4.25
-G_M10945_IG17:
+						;; size=21 bbWeight=1 PerfScore 5.25
+G_M10945_IG74:
        mov      edi, 0x497
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
-G_M10945_IG18:
+G_M10945_IG75:
        mov      edi, 0x4A3
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        xor      rsi, rsi
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailRange(System.String,System.String)
        call     [rax]System.Collections.Immutable.Requires:FailRange(System.String,System.String)
        int3     
 						;; size=38 bbWeight=0 PerfScore 0.00
-G_M10945_IG19:
+G_M10945_IG76:
+       mov      edi, 0x45F
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M10945_IG77:
        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+0x140]
-						;; size=25 bbWeight=0 PerfScore 0.00
-G_M10945_IG20:
-       mov      rdx, gword ptr [rbp-0x138]
+       sub      rsp, 88
+       mov      rbp, qword ptr [rdi+0x50]
+       mov      qword ptr [rsp+0x50], rbp
+       lea      rbp, [rbp+0x260]
+						;; size=30 bbWeight=0 PerfScore 0.00
+G_M10945_IG78:
+       mov      rdx, gword ptr [rbp-0x1E0]
        mov      r14, qword ptr [rdx]
        mov      rdi, r14
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      rax, qword ptr [rsi+0x58]
        test     rax, rax
-       je       SHORT G_M10945_IG21
-       jmp      SHORT G_M10945_IG22
+       je       SHORT G_M10945_IG79
+       jmp      SHORT G_M10945_IG80
 						;; size=31 bbWeight=0 PerfScore 0.00
-G_M10945_IG21:
+G_M10945_IG79:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=15 bbWeight=0 PerfScore 0.00
-G_M10945_IG22:
+G_M10945_IG80:
        lea      rdi, [rbp-0xB0]
        call     rax
        nop      
 						;; size=10 bbWeight=0 PerfScore 0.00
-G_M10945_IG23:
-       add      rsp, 8
+G_M10945_IG81:
+       vzeroupper 
+       add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0 PerfScore 0.00
+						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 593, prolog size 98, PerfScore 229.03, instruction count 151, allocated bytes for code 593 (MethodHash=c93ad53e) for method System.Collections.Immutable.ImmutableHashSet`1+Builder[System.__Canon]:System.Collections.Generic.ICollection<T>.CopyTo(System.__Canon[],int):this (FullOpts)
+; Total bytes of code 2308, prolog size 107, PerfScore 709.19, instruction count 518, allocated bytes for code 2308 (MethodHash=c93ad53e) for method System.Collections.Immutable.ImmutableHashSet`1+Builder[System.__Canon]:System.Collections.Generic.ICollection<T>.CopyTo(System.__Canon[],int):this (FullOpts)
1712 (283.91 % of base) - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:System.Collections.Generic.ICollection.CopyTo(System.__Canon[],int):this
 ; Assembly listing for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:System.Collections.Generic.ICollection<T>.CopyTo(System.__Canon[],int):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
+; 0 inlinees with PGO data; 9 single block inlinees; 12 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T08] (  6,  5   )     ref  ->  [rbp-0x138]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
-;  V01 arg1         [V01,T06] (  5,  6   )     ref  ->  r15         class-hnd single-def <System.__Canon[]>
-;  V02 arg2         [V02,T05] (  6,  8   )     int  ->  registers  
-;  V03 loc0         [V03    ] (  5, 12   )  struct (128) [rbp-0xB0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
-;  V04 loc1         [V04,T17] (  2,  4   )     ref  ->  rdx         class-hnd <System.__Canon>
-;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V00 this         [V00,T33] (  6,  5   )     ref  ->  [rbp-0x1E0]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
+;  V01 arg1         [V01,T23] (  5,  6   )     ref  ->  r15         class-hnd single-def <System.__Canon[]>
+;  V02 arg2         [V02,T19] (  6,  8   )     int  ->  registers  
+;  V03 loc0         [V03    ] ( 19, 40   )  struct (128) [rbp-0xB0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
+;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.__Canon>
+;  V05 OutArgs      [V05    ] (  1,  1   )  struct (80) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V07 tmp2         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp3         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V09 tmp4         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V10 tmp5         [V10,T04] (  3, 12   )     int  ->  rbx         "impSpillLclRefs"
+;  V10 tmp5         [V10,T09] (  3, 12   )     int  ->  rbx         "impSpillLclRefs"
 ;* V11 tmp6         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V12 tmp7         [V12,T14] (  6,  4   )    long  ->  rax         "Indirect call through function pointer"
+;  V12 tmp7         [V12,T46] (  6,  4   )    long  ->  rax         "Indirect call through function pointer"
 ;* V13 tmp8         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V14 tmp9         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V15 tmp10        [V15    ] (  2,  4   )  struct (128) [rbp-0x130]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
-;* V16 tmp11        [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V17 tmp12        [V17,T24] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V18 tmp13        [V18,T18] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V19 tmp14        [V19,T02] (  2, 32   )    long  ->  rsi         "argument with side effect"
-;  V20 tmp15        [V20,T07] (  2,  8   )    long  ->  rsi         "argument with side effect"
-;  V21 PSPSym       [V21,T21] (  1,  1   )    long  ->  [rbp-0x140]  do-not-enreg[V] "PSPSym"
-;  V22 cse0         [V22,T15] (  3,  4   )    long  ->  r13         "CSE #02: moderate"
-;  V23 cse1         [V23,T03] ( 10, 14   )    long  ->  r14         multi-def "CSE #01: aggressive"
-;* V24 rat0         [V24,T13] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
-;* V25 rat1         [V25,T19] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V26 rat2         [V26,T09] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V27 rat3         [V27,T16] (  3,  4   )    long  ->  r13         "runtime lookup"
-;  V28 rat4         [V28,T10] (  3,  5.60)    long  ->  r13         "fgMakeTemp is creating a new local variable"
-;* V29 rat5         [V29,T20] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;  V30 rat6         [V30,T11] (  2,  4   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;  V31 rat7         [V31,T01] (  3, 32   )    long  ->  rsi         "runtime lookup"
-;  V32 rat8         [V32,T00] (  3, 44.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
-;  V33 rat9         [V33,T12] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V34 rat10        [V34,T22] (  3,  0   )    long  ->  rdi         "Spilling to split statement for tree"
-;  V35 rat11        [V35,T23] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V15 tmp10        [V15    ] (  5, 10   )  struct (128) [rbp-0x130]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
+;  V16 tmp11        [V16,T44] (  3,  4.40)    long  ->  rdi         "spilling helperCall"
+;  V17 tmp12        [V17,T34] (  4,  7   )     ref  ->  r12         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;  V18 tmp13        [V18    ] ( 14, 20   )  struct (32) [rbp-0x150]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;* V19 tmp14        [V19    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V20 tmp15        [V20    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref   
+;* V22 tmp17        [V22    ] (  0,  0   )   byref  ->  zero-ref   
+;* V23 tmp18        [V23    ] (  0,  0   )     int  ->  zero-ref   
+;  V24 tmp19        [V24,T43] (  6,  5.40)    long  ->  [rbp-0x158]  spill-single-def "Inlining Arg"
+;* V25 tmp20        [V25    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V26 tmp21        [V26    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V27 tmp22        [V27,T63] (  2,  2   )  struct (32) [rbp-0x178]  do-not-enreg[S] must-init "impAppendStmt" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;  V28 tmp23        [V28,T53] (  3,  3   )     ref  ->  [rbp-0x1E8]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;* V29 tmp24        [V29    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V30 tmp25        [V30    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V31 tmp26        [V31,T51] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;* V32 tmp27        [V32,T73] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V33 tmp28        [V33    ] (  3,  3   )  struct (32) [rbp-0x198]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;  V34 tmp29        [V34,T52] (  5,  3.40)    long  ->  [rbp-0x1A0]  spill-single-def "Inlining Arg"
+;* V35 tmp30        [V35    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V36 tmp31        [V36,T64] (  2,  2   )    long  ->  rsi         "Indirect call through function pointer"
+;* V37 tmp32        [V37    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V38 tmp33        [V38    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V39 tmp34        [V39,T65] (  2,  2   )    long  ->  r12         "Indirect call through function pointer"
+;  V40 tmp35        [V40,T62] (  2,  2   )     ref  ->  [rbp-0x1F0]  class-hnd exact spill-single-def "non-inline candidate call" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V41 tmp36        [V41,T66] (  2,  2   )     int  ->  rax         "Inlining Arg"
+;  V42 tmp37        [V42,T22] (  3,  8.80)    long  ->  r12         "Inlining Arg"
+;* V43 tmp38        [V43    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V44 tmp39        [V44    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V45 tmp40        [V45,T06] (  5, 13.60)    long  ->  [rbp-0x1A8]  spill-single-def "Inlining Arg"
+;* V46 tmp41        [V46    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V47 tmp42        [V47,T20] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V48 tmp43        [V48    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V49 tmp44        [V49    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V50 tmp45        [V50,T24] (  3,  8   )    long  ->   r8         "Indirect call through function pointer"
+;  V51 tmp46        [V51,T07] (  3, 12   )     ref  ->  [rbp-0x1F8]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;* V52 tmp47        [V52    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.__Canon>
+;  V53 tmp48        [V53,T04] (  6, 13.60)    long  ->  r12         "Inlining Arg"
+;  V54 tmp49        [V54,T37] (  3,  6   )     int  ->  rdi         "Inline stloc first use temp"
+;  V55 tmp50        [V55,T35] (  3,  6   )     ref  ->  rdx         class-hnd "Inline stloc first use temp" <System.__Canon>
+;* V56 tmp51        [V56    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V57 tmp52        [V57,T75] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;* V58 tmp53        [V58    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V59 tmp54        [V59    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V60 tmp55        [V60    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V61 tmp56        [V61,T76] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;  V62 tmp57        [V62,T05] (  6, 13.60)    long  ->  r12         "Inlining Arg"
+;* V63 tmp58        [V63    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V64 tmp59        [V64,T21] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V65 tmp60        [V65    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V66 tmp61        [V66    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V67 tmp62        [V67,T25] (  3,  8   )    long  ->  rdx         "Indirect call through function pointer"
+;  V68 tmp63        [V68,T08] (  3, 12   )     ref  ->  [rbp-0x200]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V69 tmp64        [V69,T29] (  2,  8   )     ref  ->  rsi         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]>
+;  V70 tmp65        [V70    ] (  7,  7.50)     ref  ->  [rbp-0x150]  do-not-enreg[X] addr-exposed "field V18._root (fldOffset=0x0)" P-DEP
+;  V71 tmp66        [V71    ] (  9,  8   )     ref  ->  [rbp-0x148]  do-not-enreg[X] addr-exposed "field V18._stack (fldOffset=0x8)" P-DEP
+;  V72 tmp67        [V72    ] (  5,  6   )     ref  ->  [rbp-0x140]  do-not-enreg[X] addr-exposed "field V18._current (fldOffset=0x10)" P-DEP
+;  V73 tmp68        [V73    ] (  5,  6   )     int  ->  [rbp-0x138]  do-not-enreg[X] addr-exposed "field V18._poolUserId (fldOffset=0x18)" P-DEP
+;  V74 tmp69        [V74,T79] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V75 tmp70        [V75,T67] (  2,  2   )    long  ->  rdi         "argument with side effect"
+;  V76 tmp71        [V76,T68] (  2,  2   )    long  ->  r12         "argument with side effect"
+;  V77 tmp72        [V77,T02] (  2, 32   )    long  ->  rsi         "argument with side effect"
+;  V78 tmp73        [V78,T30] (  2,  8   )    long  ->  [rbp-0x1B0]  spill-single-def "argument with side effect"
+;  V79 tmp74        [V79,T31] (  2,  8   )    long  ->  [rbp-0x1B8]  spill-single-def "argument with side effect"
+;  V80 tmp75        [V80,T32] (  2,  8   )    long  ->  [rbp-0x1C0]  spill-single-def "argument with side effect"
+;  V81 PSPSym       [V81,T74] (  1,  1   )    long  ->  [rbp-0x210]  do-not-enreg[V] "PSPSym"
+;  V82 cse0         [V82,T47] (  3,  4   )    long  ->  r13         "CSE #04: moderate"
+;  V83 cse1         [V83,T48] (  3,  4   )    long  ->  [rbp-0x1C8]  spill-single-def "CSE #05: moderate"
+;  V84 cse2         [V84,T71] (  3,  1.50)    long  ->  [rbp-0x1D0]  spill-single-def "CSE #02: conservative"
+;  V85 cse3         [V85,T72] (  3,  1.50)    long  ->  [rbp-0x1D8]  spill-single-def "CSE #03: conservative"
+;  V86 cse4         [V86,T03] ( 10, 14   )    long  ->  r14         multi-def "CSE #01: aggressive"
+;  V87 cse5         [V87,T36] (  3,  6   )     ref  ->  rsi         "CSE #08: moderate"
+;* V88 rat0         [V88,T45] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;* V89 rat1         [V89,T69] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V90 rat2         [V90,T38] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V91 rat3         [V91,T49] (  3,  4   )    long  ->  r13         "runtime lookup"
+;  V92 rat4         [V92,T39] (  3,  5.60)    long  ->  r13         "fgMakeTemp is creating a new local variable"
+;  V93 rat5         [V93,T50] (  3,  4   )    long  ->  rax         "runtime lookup"
+;  V94 rat6         [V94,T40] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V95 rat7         [V95,T58] (  3,  2   )    long  ->  registers   "runtime lookup"
+;  V96 rat8         [V96,T54] (  3,  2.80)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V97 rat9         [V97,T59] (  3,  2   )    long  ->  registers   "runtime lookup"
+;  V98 rat10        [V98,T55] (  3,  2.80)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V99 rat11        [V99,T60] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V100 rat12       [V100,T56] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V101 rat13       [V101,T61] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V102 rat14       [V102,T57] (  3,  2.80)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V103 rat15       [V103,T70] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V104 rat16       [V104,T41] (  2,  4   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V105 rat17       [V105,T10] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V106 rat18       [V106,T11] (  3, 11.20)    long  ->   r8         "fgMakeTemp is creating a new local variable"
+;  V107 rat19       [V107,T26] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V108 rat20       [V108,T12] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V109 rat21       [V109,T13] (  3, 11.20)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V110 rat22       [V110,T27] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V111 rat23       [V111,T14] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V112 rat24       [V112,T15] (  3, 11.20)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V113 rat25       [V113,T16] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V114 rat26       [V114,T17] (  3, 11.20)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V115 rat27       [V115,T28] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V116 rat28       [V116,T18] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V117 rat29       [V117,T01] (  3, 32   )    long  ->  rsi         "runtime lookup"
+;  V118 rat30       [V118,T00] (  3, 44.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
+;  V119 rat31       [V119,T42] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V120 rat32       [V120,T77] (  3,  0   )    long  ->  rdi         "Spilling to split statement for tree"
+;  V121 rat33       [V121,T78] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 280
+; Lcl frame size = 568
 
 G_M35275_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 280
-       lea      rbp, [rsp+0x140]
+       sub      rsp, 568
+       lea      rbp, [rsp+0x260]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x198], rax
        vxorps   xmm8, xmm8, xmm8
-       vmovdqa  xmmword ptr [rbp-0x130], xmm8
-       mov      rax, -240
+       vmovdqa  xmmword ptr [rbp-0x190], xmm8
+       mov      rax, -336
        vmovdqa  xmmword ptr [rbp+rax-0x30], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x20], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x10], xmm8
        add      rax, 48
        jne      SHORT  -5 instr
-       mov      qword ptr [rbp-0x140], rsp
+       mov      qword ptr [rbp-0x210], rsp
        mov      qword ptr [rbp-0x30], rdi
-       mov      gword ptr [rbp-0x138], rdi
+       mov      gword ptr [rbp-0x1E0], rdi
        mov      r15, rsi
        mov      ebx, edx
        mov      rdx, rdi
-						;; size=98 bbWeight=1 PerfScore 20.33
+						;; size=107 bbWeight=1 PerfScore 21.58
 G_M35275_IG02:
        mov      r14, qword ptr [rdx]
        test     r15, r15
-       je       G_M35275_IG17
+       je       G_M35275_IG74
        test     ebx, ebx
-       jl       G_M35275_IG18
+       jl       G_M35275_IG75
        mov      edi, ebx
        add      edi, dword ptr [rdx+0x20]
        cmp      dword ptr [r15+0x08], edi
-       jl       G_M35275_IG18
+       jl       G_M35275_IG75
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      r13, qword ptr [rdi+0x90]
        test     r13, r13
        je       SHORT G_M35275_IG04
 						;; size=54 bbWeight=1 PerfScore 19.00
 G_M35275_IG03:
        jmp      SHORT G_M35275_IG05
 						;; size=2 bbWeight=0.80 PerfScore 1.60
 G_M35275_IG04:
        mov      rdi, r14
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      r13, rax
 						;; size=21 bbWeight=0.20 PerfScore 0.35
 G_M35275_IG05:
-       mov      rsi, r13
-       mov      rdx, gword ptr [rbp-0x138]
-       mov      rdx, gword ptr [rdx+0x10]
-       lea      rdi, [rbp-0x130]
-       xor      rcx, rcx
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.Collections.Immutable.ImmutableHashSet`1+Builder[System.__Canon]):this
-       call     [rax]System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.Collections.Immutable.ImmutableHashSet`1+Builder[System.__Canon]):this
+       mov      rdi, r13
+       mov      rdx, gword ptr [rbp-0x1E0]
+       mov      r12, gword ptr [rdx+0x10]
+       xor      rsi, rsi
+       mov      gword ptr [rbp-0x130], rsi
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rax, qword ptr [rsi+0x10]
+       test     rax, rax
+       je       SHORT G_M35275_IG07
+						;; size=39 bbWeight=1 PerfScore 11.75
+G_M35275_IG06:
+       jmp      SHORT G_M35275_IG08
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M35275_IG07:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+						;; size=15 bbWeight=0.20 PerfScore 0.25
+G_M35275_IG08:
+       mov      qword ptr [rbp-0x1C8], rax
+       mov      qword ptr [rbp-0x158], rax
+       test     r12, r12
+       je       G_M35275_IG76
+       mov      gword ptr [rbp-0x150], r12
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x140], rdi
+       mov      rdi, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool:NewId():int
+       call     [rdi]System.Collections.Immutable.SecureObjectPool:NewId():int
+       mov      dword ptr [rbp-0x138], eax
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x148], rdi
+       mov      rdi, gword ptr [rbp-0x150]
+       cmp      gword ptr [rdi+0x08], 0
+       je       G_M35275_IG28
+						;; size=84 bbWeight=1 PerfScore 16.00
+G_M35275_IG09:
+       mov      rax, qword ptr [rbp-0x158]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rcx, qword ptr [rdi+0x18]
+       test     rcx, rcx
+       je       SHORT G_M35275_IG11
+						;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M35275_IG10:
+       jmp      SHORT G_M35275_IG12
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M35275_IG11:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rcx, rax
+       mov      rax, qword ptr [rbp-0x158]
+						;; size=28 bbWeight=0.10 PerfScore 0.28
+G_M35275_IG12:
+       mov      rdi, rcx
+       mov      qword ptr [rbp-0x1D8], rdi
+       mov      rcx, rdi
+       mov      qword ptr [rbp-0x1A0], rcx
+						;; size=20 bbWeight=0.50 PerfScore 1.25
+G_M35275_IG13:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x150]
+       vmovdqu  ymmword ptr [rbp-0x198], ymm0
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M35275_IG14:
+       mov      rsi, qword ptr [rcx+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rdx, qword ptr [rsi+0x18]
+       test     rdx, rdx
+       je       SHORT G_M35275_IG16
+						;; size=16 bbWeight=0.50 PerfScore 3.62
+G_M35275_IG15:
+       jmp      SHORT G_M35275_IG17
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M35275_IG16:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdx, rax
+						;; size=21 bbWeight=0.10 PerfScore 0.18
+G_M35275_IG17:
+       mov      qword ptr [rbp-0x1D0], rdx
+       mov      rsi, rdx
+       lea      rdi, [rbp-0x198]
+       call     rsi
+       cmp      eax, -1
+       je       SHORT G_M35275_IG21
+       mov      rdi, qword ptr [rbp-0x1A0]
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rax, qword ptr [rsi+0x20]
+       test     rax, rax
+       je       SHORT G_M35275_IG19
+						;; size=47 bbWeight=0.50 PerfScore 7.12
+G_M35275_IG18:
+       mov      rdi, rax
+       jmp      SHORT G_M35275_IG20
+						;; size=5 bbWeight=0.40 PerfScore 0.90
+G_M35275_IG19:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=18 bbWeight=0.10 PerfScore 0.15
+G_M35275_IG20:
+       lea      rsi, [rbp-0x148]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       call     [rax]System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       test     eax, eax
+       je       SHORT G_M35275_IG21
+       mov      r12, qword ptr [rbp-0x1D0]
+       mov      rax, gword ptr [rbp-0x148]
+       mov      gword ptr [rbp-0x1F0], rax
+       lea      rdi, [rbp-0x198]
+       call     r12
+       mov      r12, gword ptr [rbp-0x1F0]
+       mov      dword ptr [r12+0x10], eax
+       jmp      G_M35275_IG27
+						;; size=71 bbWeight=0.50 PerfScore 7.75
+G_M35275_IG21:
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x148], rdi
+						;; size=9 bbWeight=0.50 PerfScore 0.62
+G_M35275_IG22:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x150]
+       vmovdqu  ymmword ptr [rbp-0x178], ymm0
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M35275_IG23:
+       mov      rax, qword ptr [rbp-0x158]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M35275_IG25
+						;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M35275_IG24:
+       jmp      SHORT G_M35275_IG26
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M35275_IG25:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.10 PerfScore 0.18
+G_M35275_IG26:
+       call     CORINFO_HELP_NEWSFAST
+       mov      gword ptr [rbp-0x1E8], rax
+       movzx    rsi, byte  ptr [r12+0x1D]
+       mov      rdi, rax
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       call     [rcx]System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       mov      r12, qword ptr [rbp-0x1D8]
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x178]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, r12
+       mov      rsi, gword ptr [rbp-0x1E8]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       call     [rax]System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       mov      gword ptr [rbp-0x148], rax
+						;; size=129 bbWeight=0.50 PerfScore 13.25
+G_M35275_IG27:
+       lea      rdi, [rbp-0x150]
+       mov      rsi, qword ptr [rbp-0x158]
+       mov      rdx, gword ptr [rbp-0x150]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]):this
+       call     [rax]System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]):this
+						;; size=33 bbWeight=0.50 PerfScore 2.88
+G_M35275_IG28:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x150]
+       vmovdqu  ymmword ptr [rbp-0x120], ymm0
+						;; size=16 bbWeight=1 PerfScore 5.00
+G_M35275_IG29:
+       vxorps   ymm0, ymm0, ymm0
+       vmovdqu  ymmword ptr [rbp-0x100], ymm0
+       vmovdqu  ymmword ptr [rbp-0xE0], ymm0
+       vmovdqu  xmmword ptr [rbp-0xC0], xmm0
+       mov      dword ptr [rbp-0x128], -1
        lea      rdi, bword ptr [rbp-0xB0]
        lea      rsi, bword ptr [rbp-0x130]
        mov      ecx, 16
        rep movsq 
-						;; size=57 bbWeight=1 PerfScore 33.50
-G_M35275_IG06:
+						;; size=60 bbWeight=1 PerfScore 30.58
+G_M35275_IG30:
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rdi, qword ptr [rdi+0x90]
        test     rdi, rdi
-       jne      SHORT G_M35275_IG08
-       jmp      SHORT G_M35275_IG08
-						;; size=21 bbWeight=1 PerfScore 9.25
-G_M35275_IG07:
-       mov      rsi, r13
-       lea      rdi, [rbp-0xB0]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:get_Current():System.__Canon:this
-       call     [rax]System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:get_Current():System.__Canon:this
-       mov      rdx, rax
+       jne      G_M35275_IG58
+       jmp      G_M35275_IG58
+						;; size=28 bbWeight=1 PerfScore 9.25
+G_M35275_IG31:
+       mov      r12, r13
+       mov      rax, qword ptr [rbp-0x1C8]
+       mov      rcx, rax
+       mov      qword ptr [rbp-0x1A8], rcx
+       cmp      gword ptr [rbp-0xA0], 0
+       je       G_M35275_IG38
+       cmp      gword ptr [rbp-0x98], 0
+       je       G_M35275_IG42
+       mov      rdi, qword ptr [rcx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x30]
+       test     rdi, rdi
+       je       SHORT G_M35275_IG33
+						;; size=64 bbWeight=2 PerfScore 31.50
+G_M35275_IG32:
+       jmp      SHORT G_M35275_IG34
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M35275_IG33:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       mov      rcx, qword ptr [rbp-0x1A8]
+						;; size=28 bbWeight=0.40 PerfScore 1.10
+G_M35275_IG34:
+       mov      rdx, gword ptr [rbp-0x98]
+       mov      gword ptr [rbp-0x1F8], rdx
+       cmp      byte  ptr [rdx], dl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      r8, qword ptr [rsi+0x10]
+       test     r8, r8
+       je       SHORT G_M35275_IG36
+						;; size=29 bbWeight=2 PerfScore 20.50
+G_M35275_IG35:
+       jmp      SHORT G_M35275_IG37
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M35275_IG36:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      r8, rax
+						;; size=18 bbWeight=0.40 PerfScore 0.60
+G_M35275_IG37:
+       lea      rdi, [rbp-0xA0]
+       call     r8
+       mov      rdi, gword ptr [rbp-0x1F8]
+       cmp      eax, dword ptr [rdi+0x10]
+       mov      rcx, qword ptr [rbp-0x1A8]
+       je       G_M35275_IG42
+						;; size=33 bbWeight=2 PerfScore 19.00
+G_M35275_IG38:
+       mov      rdi, qword ptr [rcx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x28]
+       test     rdi, rdi
+       je       SHORT G_M35275_IG40
+						;; size=16 bbWeight=2 PerfScore 14.50
+G_M35275_IG39:
+       jmp      SHORT G_M35275_IG41
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M35275_IG40:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M35275_IG41:
+       mov      qword ptr [rbp-0x1B0], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0xA0]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1B0]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]])
+       call     [rcx]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]])
+						;; size=86 bbWeight=2 PerfScore 35.50
+G_M35275_IG42:
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rcx, qword ptr [rdi+0x18]
+       test     rcx, rcx
+       je       SHORT G_M35275_IG44
+						;; size=17 bbWeight=2 PerfScore 14.50
+G_M35275_IG43:
+       mov      r12, rcx
+       jmp      SHORT G_M35275_IG45
+						;; size=5 bbWeight=1.60 PerfScore 3.60
+G_M35275_IG44:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r12, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M35275_IG45:
+       cmp      byte  ptr [rbp-0x7C], 0
+       je       G_M35275_IG49
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       SHORT G_M35275_IG47
+						;; size=27 bbWeight=2 PerfScore 20.50
+G_M35275_IG46:
+       jmp      SHORT G_M35275_IG48
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M35275_IG47:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M35275_IG48:
+       mov      qword ptr [rbp-0x1B8], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x80]
+       movsq    
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x20], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x28], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x30], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1B8]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon])
+       call     [rcx]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon])
+						;; size=138 bbWeight=2 PerfScore 62.50
+G_M35275_IG49:
+       mov      edi, dword ptr [rbp-0x80]
+       cmp      edi, 1
+       je       G_M35275_IG63
+       cmp      edi, 2
+       jne      G_M35275_IG62
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rcx, qword ptr [rdi+0x10]
+       test     rcx, rcx
+       je       G_M35275_IG64
+						;; size=42 bbWeight=2 PerfScore 21.50
+G_M35275_IG50:
+       mov      r12, rcx
+						;; size=3 bbWeight=1.60 PerfScore 0.40
+G_M35275_IG51:
+       cmp      gword ptr [rbp-0x60], 0
+       je       SHORT G_M35275_IG54
+       cmp      gword ptr [rbp-0x58], 0
+       je       G_M35275_IG56
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       G_M35275_IG65
+						;; size=39 bbWeight=2 PerfScore 26.50
+G_M35275_IG52:
+       mov      rcx, gword ptr [rbp-0x58]
+       mov      gword ptr [rbp-0x200], rcx
+       cmp      byte  ptr [rcx], cl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rdx, qword ptr [rsi+0x10]
+       test     rdx, rdx
+       je       G_M35275_IG66
+						;; size=30 bbWeight=2 PerfScore 20.50
+G_M35275_IG53:
+       lea      rdi, [rbp-0x68]
+       call     rdx
+       mov      rdi, gword ptr [rbp-0x200]
+       cmp      eax, dword ptr [rdi+0x10]
+       je       G_M35275_IG56
+						;; size=22 bbWeight=2 PerfScore 17.00
+G_M35275_IG54:
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x10]
+       test     rdi, rdi
+       je       G_M35275_IG67
+						;; size=21 bbWeight=2 PerfScore 14.50
+G_M35275_IG55:
+       mov      qword ptr [rbp-0x1C0], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x68]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1C0]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon])
+       call     [rcx]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon])
+						;; size=103 bbWeight=2 PerfScore 46.50
+G_M35275_IG56:
+       mov      rsi, gword ptr [rbp-0x50]
+       test     rsi, rsi
+       je       SHORT G_M35275_IG61
+       mov      rdx, gword ptr [rsi+0x08]
+						;; size=13 bbWeight=2 PerfScore 8.50
+G_M35275_IG57:
        lea      esi, [rbx+0x01]
        mov      r12d, esi
        movsxd   rsi, ebx
        mov      rdi, r15
        call     CORINFO_HELP_ARRADDR_ST
        mov      ebx, r12d
-						;; size=45 bbWeight=2 PerfScore 13.50
-G_M35275_IG08:
+						;; size=20 bbWeight=2 PerfScore 5.00
+G_M35275_IG58:
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rsi, qword ptr [rdi+0x90]
        test     rsi, rsi
-       je       SHORT G_M35275_IG10
-						;; size=19 bbWeight=8 PerfScore 58.00
-G_M35275_IG09:
-       jmp      SHORT G_M35275_IG11
-						;; size=2 bbWeight=6.40 PerfScore 12.80
-G_M35275_IG10:
-       mov      rdi, r14
-       mov      rsi, 0xD1FFAB1E      ; global ptr
-       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
-       mov      rsi, rax
-						;; size=21 bbWeight=1.60 PerfScore 2.80
-G_M35275_IG11:
+       je       G_M35275_IG68
+						;; size=23 bbWeight=8 PerfScore 58.00
+G_M35275_IG59:
        lea      rdi, [rbp-0xB0]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
        call     [rax]System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
        test     eax, eax
-       jne      SHORT G_M35275_IG07
-						;; size=23 bbWeight=8 PerfScore 40.00
-G_M35275_IG12:
+       jne      G_M35275_IG31
+						;; size=27 bbWeight=8 PerfScore 40.00
+G_M35275_IG60:
+       jmp      G_M35275_IG69
+						;; size=5 bbWeight=1 PerfScore 2.00
+G_M35275_IG61:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M35275_IG62:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M35275_IG63:
+       mov      rdx, gword ptr [rbp-0x78]
+       jmp      G_M35275_IG57
+						;; size=9 bbWeight=2 PerfScore 6.00
+G_M35275_IG64:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r12, rax
+       jmp      G_M35275_IG51
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M35275_IG65:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M35275_IG52
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M35275_IG66:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdx, rax
+       jmp      G_M35275_IG53
+						;; size=23 bbWeight=0.40 PerfScore 1.40
+G_M35275_IG67:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M35275_IG55
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M35275_IG68:
+       mov      rdi, r14
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rsi, rax
+       jmp      G_M35275_IG59
+						;; size=26 bbWeight=1.60 PerfScore 6.00
+G_M35275_IG69:
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rax, qword ptr [rdi+0x98]
        test     rax, rax
-       je       SHORT G_M35275_IG14
+       je       SHORT G_M35275_IG71
 						;; size=19 bbWeight=1 PerfScore 7.25
-G_M35275_IG13:
-       jmp      SHORT G_M35275_IG15
+G_M35275_IG70:
+       jmp      SHORT G_M35275_IG72
 						;; size=2 bbWeight=0.80 PerfScore 1.60
-G_M35275_IG14:
+G_M35275_IG71:
        mov      rdi, r14
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=18 bbWeight=0.20 PerfScore 0.30
-G_M35275_IG15:
+G_M35275_IG72:
        lea      rdi, [rbp-0xB0]
        call     rax
        nop      
 						;; size=10 bbWeight=1 PerfScore 3.75
-G_M35275_IG16:
-       add      rsp, 280
+G_M35275_IG73:
+       vzeroupper 
+       add      rsp, 568
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=1 PerfScore 4.25
-G_M35275_IG17:
+						;; size=21 bbWeight=1 PerfScore 5.25
+G_M35275_IG74:
        mov      edi, 0x497
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
-G_M35275_IG18:
+G_M35275_IG75:
        mov      edi, 0x4A3
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        xor      rsi, rsi
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailRange(System.String,System.String)
        call     [rax]System.Collections.Immutable.Requires:FailRange(System.String,System.String)
        int3     
 						;; size=38 bbWeight=0 PerfScore 0.00
-G_M35275_IG19:
+G_M35275_IG76:
+       mov      edi, 0x45F
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M35275_IG77:
        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+0x140]
-						;; size=25 bbWeight=0 PerfScore 0.00
-G_M35275_IG20:
-       mov      rdx, gword ptr [rbp-0x138]
+       sub      rsp, 88
+       mov      rbp, qword ptr [rdi+0x50]
+       mov      qword ptr [rsp+0x50], rbp
+       lea      rbp, [rbp+0x260]
+						;; size=30 bbWeight=0 PerfScore 0.00
+G_M35275_IG78:
+       mov      rdx, gword ptr [rbp-0x1E0]
        mov      r14, qword ptr [rdx]
        mov      rdi, r14
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      rax, qword ptr [rsi+0x98]
        test     rax, rax
-       je       SHORT G_M35275_IG21
-       jmp      SHORT G_M35275_IG22
+       je       SHORT G_M35275_IG79
+       jmp      SHORT G_M35275_IG80
 						;; size=34 bbWeight=0 PerfScore 0.00
-G_M35275_IG21:
+G_M35275_IG79:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=15 bbWeight=0 PerfScore 0.00
-G_M35275_IG22:
+G_M35275_IG80:
        lea      rdi, [rbp-0xB0]
        call     rax
        nop      
 						;; size=10 bbWeight=0 PerfScore 0.00
-G_M35275_IG23:
-       add      rsp, 8
+G_M35275_IG81:
+       vzeroupper 
+       add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0 PerfScore 0.00
+						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 603, prolog size 98, PerfScore 228.28, instruction count 151, allocated bytes for code 603 (MethodHash=0dfe7634) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:System.Collections.Generic.ICollection<T>.CopyTo(System.__Canon[],int):this (FullOpts)
+; Total bytes of code 2315, prolog size 107, PerfScore 705.94, instruction count 516, allocated bytes for code 2315 (MethodHash=0dfe7634) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:System.Collections.Generic.ICollection<T>.CopyTo(System.__Canon[],int):this (FullOpts)
1708 (271.97 % of base) - System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:RemoveAll(System.Predicate`1[System.__Canon]):System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:this
 ; Assembly listing for method System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:RemoveAll(System.Predicate`1[System.__Canon]):System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 16 single block inlinees; 16 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T12] (  5,  4   )     ref  ->  [rbp-0xA8]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]>
-;  V01 arg1         [V01,T06] (  5,  7   )     ref  ->  rbx         class-hnd single-def <System.Predicate`1[System.__Canon]>
-;  V02 loc0         [V02,T05] (  6,  9   )     ref  ->  r14         class-hnd <System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]>
-;  V03 loc1         [V03    ] (  7, 16   )  struct (56) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]>
-;  V04 loc2         [V04,T07] (  5,  9   )     int  ->  r12        
-;  V05 OutArgs      [V05    ] (  1,  1   )  struct ( 8) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V00 this         [V00,T37] (  8, 15   )     ref  ->  [rbp-0x130]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]>
+;  V01 arg1         [V01,T59] (  5, 11   )     ref  ->  rbx         class-hnd single-def <System.Predicate`1[System.__Canon]>
+;  V02 loc0         [V02,T58] (  5, 14   )     ref  ->  [rbp-0x138]  do-not-enreg[Z] must-init class-hnd EH-live <System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]>
+;  V03 loc1         [V03    ] ( 44,197   )  struct (56) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]>
+;  V04 loc2         [V04,T38] (  5, 17   )     int  ->  r14        
+;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V07 tmp2         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V08 tmp3         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V09 tmp4         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V10 tmp5         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V11 tmp6         [V11    ] (  3, 12   )  struct (56) [rbp-0xA0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]>
+;  V11 tmp6         [V11    ] (  3, 24   )  struct (56) [rbp-0xA0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]>
 ;* V12 tmp7         [V12    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V13 tmp8         [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V14 tmp9         [V14,T18] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V15 tmp10        [V15,T02] (  2, 32   )    long  ->  rsi         "argument with side effect"
-;  V16 tmp11        [V16,T09] (  2,  8   )    long  ->  rsi         "argument with side effect"
-;  V17 tmp12        [V17,T08] (  2,  8   )     ref  ->  rsi         "argument with side effect"
-;  V18 tmp13        [V18,T10] (  2,  8   )    long  ->  rsi         "argument with side effect"
-;  V19 tmp14        [V19,T11] (  2,  8   )    long  ->  rsi         "argument with side effect"
-;  V20 tmp15        [V20,T26] (  2,  0   )    long  ->  rsi         "argument with side effect"
-;  V21 tmp16        [V21,T19] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V22 PSPSym       [V22,T22] (  1,  1   )    long  ->  [rbp-0xB8]  do-not-enreg[V] "PSPSym"
-;  V23 cse0         [V23,T04] (  8,  9   )    long  ->  r13         multi-def "CSE #02: aggressive"
-;  V24 cse1         [V24,T03] (  8, 12.80)    long  ->  r15         multi-def "CSE #01: aggressive"
-;* V25 rat0         [V25,T16] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
-;* V26 rat1         [V26,T20] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V27 rat2         [V27,T13] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V28 rat3         [V28,T17] (  3,  4   )    long  ->  r13         "runtime lookup"
-;  V29 rat4         [V29,T14] (  3,  5.60)    long  ->  r13         "fgMakeTemp is creating a new local variable"
-;* V30 rat5         [V30,T21] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;  V31 rat6         [V31,T15] (  2,  4   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;  V32 rat7         [V32,T01] (  3, 32   )    long  ->  rsi         "runtime lookup"
-;  V33 rat8         [V33,T00] (  3, 44.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
-;  V34 rat9         [V34,T23] (  3,  0   )    long  ->  r15         "Spilling to split statement for tree"
-;  V35 rat10        [V35,T24] (  3,  0   )    long  ->  r13         "runtime lookup"
-;  V36 rat11        [V36,T25] (  3,  0   )    long  ->  r13         "fgMakeTemp is creating a new local variable"
+;* V14 tmp9         [V14    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V15 tmp10        [V15,T91] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;  V16 tmp11        [V16,T14] (  5, 27.20)    long  ->  r13         "Inlining Arg"
+;* V17 tmp12        [V17    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V18 tmp13        [V18,T33] (  4, 17.60)    long  ->  rdi         "spilling helperCall"
+;* V19 tmp14        [V19    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V20 tmp15        [V20    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V21 tmp16        [V21,T42] (  3, 16   )    long  ->  rax         "Indirect call through function pointer"
+;  V22 tmp17        [V22,T17] (  3, 24   )     ref  ->  r12         class-hnd exact "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V23 tmp18        [V23,T51] (  2, 16   )     ref  ->  rsi         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]>
+;  V24 tmp19        [V24,T40] (  3, 12   )     ref  ->  rdi         ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;  V25 tmp20        [V25,T15] (  5, 27.20)    long  ->  r13         "Inlining Arg"
+;  V26 tmp21        [V26,T34] (  4, 17.60)    long  ->  rdi         "spilling helperCall"
+;* V27 tmp22        [V27    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V28 tmp23        [V28    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V29 tmp24        [V29,T62] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V30 tmp25        [V30,T09] (  4, 32   )     ref  ->  r12         class-hnd exact "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;* V31 tmp26        [V31    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V32 tmp27        [V32    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V33 tmp28        [V33    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V34 tmp29        [V34    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V35 tmp30        [V35,T43] (  3, 16   )    long  ->  rax         "Indirect call through function pointer"
+;* V36 tmp31        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;  V37 tmp32        [V37    ] (  2, 16   )  struct (56) [rbp-0xD8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]>
+;  V38 tmp33        [V38,T13] (  6, 27.20)    long  ->  r12         "Inlining Arg"
+;* V39 tmp34        [V39    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V40 tmp35        [V40,T44] (  3, 16   )    long  ->  rax         "Indirect call through function pointer"
+;  V41 tmp36        [V41,T10] (  4, 32   )     ref  ->  r13         class-hnd exact "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;* V42 tmp37        [V42    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V43 tmp38        [V43    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V44 tmp39        [V44,T52] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V45 tmp40        [V45,T00] (  9, 70.40)    long  ->  r13         "Inlining Arg"
+;* V46 tmp41        [V46    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V47 tmp42        [V47,T18] (  3, 24   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;* V48 tmp43        [V48    ] (  0,  0   )  struct ( 8) zero-ref    "location for address-of(RValue)" <System.Collections.Immutable.RefAsValueType`1[System.__Canon]>
+;* V49 tmp44        [V49    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]>
+;* V50 tmp45        [V50    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V51 tmp46        [V51    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V52 tmp47        [V52,T35] (  4, 17.60)    long  ->  rdi         "spilling helperCall"
+;* V53 tmp48        [V53    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V54 tmp49        [V54    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V55 tmp50        [V55,T45] (  3, 16   )    long  ->  rax         "Indirect call through function pointer"
+;  V56 tmp51        [V56,T19] (  3, 24   )     ref  ->  r12         class-hnd exact "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V57 tmp52        [V57,T92] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;* V58 tmp53        [V58    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableList`1+Builder[System.__Canon]>
+;  V59 tmp54        [V59,T01] (  4, 64   )     ref  ->  [rbp-0x140]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V60 tmp55        [V60,T02] (  6, 44.80)    long  ->  r12         "Inlining Arg"
+;* V61 tmp56        [V61    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V62 tmp57        [V62    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V63 tmp58        [V63    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V64 tmp59        [V64    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V65 tmp60        [V65,T11] (  3, 32   )    long  ->  rcx         "Indirect call through function pointer"
+;  V66 tmp61        [V66,T41] (  3, 16   )     ref  ->  rdx         class-hnd "Inline return value spill temp" <System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]>
+;  V67 tmp62        [V67,T79] (  3,  3   )     ref  ->  rdi         ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;  V68 tmp63        [V68,T64] (  5,  6.80)    long  ->  r15         "Inlining Arg"
+;  V69 tmp64        [V69,T74] (  4,  4.40)    long  ->  rdi         "spilling helperCall"
+;* V70 tmp65        [V70    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V71 tmp66        [V71    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V72 tmp67        [V72,T88] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V73 tmp68        [V73,T60] (  4,  8   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;* V74 tmp69        [V74    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V75 tmp70        [V75    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V76 tmp71        [V76    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V77 tmp72        [V77    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V78 tmp73        [V78,T80] (  3,  4   )    long  ->  rax         "Indirect call through function pointer"
+;* V79 tmp74        [V79    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;  V80 tmp75        [V80    ] (  2,  4   )  struct (56) [rbp-0x110]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]>
+;  V81 tmp76        [V81,T63] (  6,  6.80)    long  ->  rbx         "Inlining Arg"
+;* V82 tmp77        [V82    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V83 tmp78        [V83,T81] (  3,  4   )    long  ->  rax         "Indirect call through function pointer"
+;  V84 tmp79        [V84,T61] (  4,  8   )     ref  ->  r15         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;* V85 tmp80        [V85    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V86 tmp81        [V86    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V87 tmp82        [V87,T16] (  4, 24   )     ref  ->  rax         "field V48.Value (fldOffset=0x0)" P-INDEP
+;  V88 tmp83        [V88,T86] (  2,  4   )    long  ->  rsi         "argument with side effect"
+;  V89 tmp84        [V89,T53] (  2, 16   )    long  ->  [rbp-0x118]  spill-single-def "argument with side effect"
+;  V90 tmp85        [V90,T07] (  3, 35.20)    long  ->  rdi         "argument with side effect"
+;  V91 tmp86        [V91,T54] (  2, 16   )    long  ->  [rbp-0x120]  spill-single-def "argument with side effect"
+;  V92 tmp87        [V92,T55] (  2, 16   )    long  ->  [rbp-0x128]  spill-single-def "argument with side effect"
+;  V93 tmp88        [V93,T36] (  3, 17.60)    long  ->  rdi         "argument with side effect"
+;  V94 tmp89        [V94,T56] (  2, 16   )    long  ->  rdi         "argument with side effect"
+;  V95 tmp90        [V95,T57] (  2, 16   )    long  ->  rsi         "argument with side effect"
+;  V96 tmp91        [V96,T93] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V97 tmp92        [V97,T75] (  3,  4.40)    long  ->  rdi         "argument with side effect"
+;  V98 tmp93        [V98,T87] (  2,  4   )    long  ->  rdi         "argument with side effect"
+;  V99 PSPSym       [V99,T90] (  1,  1   )    long  ->  [rbp-0x148]  do-not-enreg[V] "PSPSym"
+;  V100 cse0        [V100,T39] (  7, 16   )    long  ->  r15         multi-def "CSE #02: conservative"
+;* V101 rat0        [V101,T76] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;* V102 rat1        [V102,T89] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V103 rat2        [V103,T65] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V104 rat3        [V104,T77] (  3,  4.40)    long  ->  rsi         "Spilling to split statement for tree"
+;  V105 rat4        [V105,T82] (  3,  4   )    long  ->  r15         "runtime lookup"
+;  V106 rat5        [V106,T66] (  3,  5.60)    long  ->  r15         "fgMakeTemp is creating a new local variable"
+;  V107 rat6        [V107,T20] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V108 rat7        [V108,T21] (  3, 22.40)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V109 rat8        [V109,T46] (  3, 16   )    long  ->  rdi         "runtime lookup"
+;  V110 rat9        [V110,T22] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V111 rat10       [V111,T23] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V112 rat11       [V112,T47] (  3, 16   )    long  ->  rdi         "runtime lookup"
+;  V113 rat12       [V113,T24] (  3, 22.40)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V114 rat13       [V114,T25] (  3, 22.40)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V115 rat14       [V115,T26] (  3, 22.40)    long  ->  r12         "fgMakeTemp is creating a new local variable"
+;  V116 rat15       [V116,T27] (  3, 22.40)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V117 rat16       [V117,T48] (  3, 16   )    long  ->  rdi         "runtime lookup"
+;  V118 rat17       [V118,T28] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V119 rat18       [V119,T08] (  3, 35.20)    long  ->  rdi         "Spilling to split statement for tree"
+;  V120 rat19       [V120,T03] (  3, 44.80)    long  ->  r13         "fgMakeTemp is creating a new local variable"
+;  V121 rat20       [V121,T29] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V122 rat21       [V122,T30] (  3, 22.40)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V123 rat22       [V123,T49] (  3, 16   )    long  ->  rdi         "runtime lookup"
+;  V124 rat23       [V124,T31] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V125 rat24       [V125,T04] (  3, 44.80)    long  ->  r12         "fgMakeTemp is creating a new local variable"
+;  V126 rat25       [V126,T12] (  3, 32   )    long  ->  rdi         "runtime lookup"
+;  V127 rat26       [V127,T05] (  3, 44.80)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V128 rat27       [V128,T06] (  3, 44.80)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V129 rat28       [V129,T50] (  3, 16   )    long  ->  rdi         "runtime lookup"
+;  V130 rat29       [V130,T32] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V131 rat30       [V131,T78] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
+;  V132 rat31       [V132,T83] (  3,  4   )    long  ->  r15         "runtime lookup"
+;  V133 rat32       [V133,T67] (  3,  5.60)    long  ->  r15         "fgMakeTemp is creating a new local variable"
+;  V134 rat33       [V134,T68] (  3,  5.60)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V135 rat34       [V135,T84] (  3,  4   )    long  ->  rdi         "runtime lookup"
+;  V136 rat35       [V136,T69] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V137 rat36       [V137,T70] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V138 rat37       [V138,T71] (  3,  5.60)    long  ->  rbx         "fgMakeTemp is creating a new local variable"
+;  V139 rat38       [V139,T72] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V140 rat39       [V140,T85] (  3,  4   )    long  ->  rdi         "runtime lookup"
+;  V141 rat40       [V141,T73] (  3,  5.60)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 152
+; Lcl frame size = 344
 
 G_M59587_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 152
-       lea      rbp, [rsp+0xC0]
+       sub      rsp, 344
+       lea      rbp, [rsp+0x180]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x138], rax
        vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0xA0], ymm8
-       vmovdqu  ymmword ptr [rbp-0x80], ymm8
-       vmovdqu  ymmword ptr [rbp-0x60], ymm8
-       vmovdqa  xmmword ptr [rbp-0x40], xmm8
-       mov      qword ptr [rbp-0xB8], rsp
+       vmovdqa  xmmword ptr [rbp-0x130], xmm8
+       mov      rax, -240
+       vmovdqa  xmmword ptr [rbp+rax-0x30], xmm8
+       vmovdqa  xmmword ptr [rbp+rax-0x20], xmm8
+       vmovdqa  xmmword ptr [rbp+rax-0x10], xmm8
+       add      rax, 48
+       jne      SHORT  -5 instr
+       mov      qword ptr [rbp-0x148], rsp
        mov      qword ptr [rbp-0x30], rdi
-       mov      gword ptr [rbp-0xA8], rdi
+       mov      gword ptr [rbp-0x130], rdi
        mov      rbx, rsi
-						;; size=74 bbWeight=1 PerfScore 18.33
+						;; size=102 bbWeight=1 PerfScore 21.08
 G_M59587_IG02:
-       mov      r15, qword ptr [rdi]
+       cmp      dword ptr [rdi], edi
        test     rbx, rbx
-       je       G_M59587_IG17
-       mov      r14, rdi
-       mov      rsi, qword ptr [r15+0x30]
-       mov      rsi, qword ptr [rsi]
-       mov      r13, qword ptr [rsi+0x10]
-       test     r13, r13
+       je       G_M59587_IG86
+       mov      gword ptr [rbp-0x138], rdi
+       mov      rsi, qword ptr [rdi]
+       mov      rax, qword ptr [rsi+0x30]
+       mov      rax, qword ptr [rax]
+       mov      r15, qword ptr [rax+0x28]
+       test     r15, r15
        je       SHORT G_M59587_IG04
-						;; size=31 bbWeight=1 PerfScore 10.75
+						;; size=37 bbWeight=1 PerfScore 14.50
 G_M59587_IG03:
        jmp      SHORT G_M59587_IG05
 						;; size=2 bbWeight=0.80 PerfScore 1.60
 G_M59587_IG04:
-       mov      rdi, r15
+       mov      rdi, rsi
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
-       mov      r13, rax
+       mov      r15, rax
 						;; size=21 bbWeight=0.20 PerfScore 0.35
 G_M59587_IG05:
-       mov      rsi, r13
+       mov      rsi, r15
        xor      edx, edx
        mov      dword ptr [rsp], edx
        lea      rdi, [rbp-0x68]
-       mov      rdx, r14
+       mov      rdx, gword ptr [rbp-0x130]
        xor      rcx, rcx
        mov      r8d, -1
        mov      r9d, -1
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.__Canon],System.Collections.Immutable.ImmutableList`1+Builder[System.__Canon],int,int,ubyte):this
        call     [rax]System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.__Canon],System.Collections.Immutable.ImmutableList`1+Builder[System.__Canon],int,int,ubyte):this
        nop      
-						;; size=42 bbWeight=1 PerfScore 6.50
+						;; size=46 bbWeight=1 PerfScore 7.25
 G_M59587_IG06:
-       xor      r12d, r12d
-       mov      rdi, qword ptr [r15+0x30]
+       xor      r14d, r14d
+       jmp      G_M59587_IG44
+						;; size=8 bbWeight=1 PerfScore 2.25
+G_M59587_IG07:
+       mov      r13, r15
+       cmp      gword ptr [rbp-0x60], 0
+       je       SHORT G_M59587_IG14
+       cmp      gword ptr [rbp-0x58], 0
+       je       G_M59587_IG18
+       mov      rdi, qword ptr [r13+0x30]
        mov      rdi, qword ptr [rdi]
-       mov      rdi, qword ptr [rdi+0x10]
+       mov      rdi, qword ptr [rdi+0x18]
        test     rdi, rdi
-       jne      G_M59587_IG11
-       jmp      G_M59587_IG11
-						;; size=28 bbWeight=1 PerfScore 9.50
-G_M59587_IG07:
-       mov      rsi, r13
+       je       SHORT G_M59587_IG09
+						;; size=37 bbWeight=4 PerfScore 54.00
+G_M59587_IG08:
+       jmp      SHORT G_M59587_IG10
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M59587_IG09:
+       mov      rdi, r13
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.80 PerfScore 1.40
+G_M59587_IG10:
+       mov      r12, gword ptr [rbp-0x58]
+       cmp      byte  ptr [r12], r12b
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rax, qword ptr [rsi+0x10]
+       test     rax, rax
+       je       SHORT G_M59587_IG12
+						;; size=21 bbWeight=4 PerfScore 37.00
+G_M59587_IG11:
+       jmp      SHORT G_M59587_IG13
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M59587_IG12:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+						;; size=15 bbWeight=0.80 PerfScore 1.00
+G_M59587_IG13:
        lea      rdi, [rbp-0x68]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:get_Current():System.__Canon:this
-       call     [rax]System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:get_Current():System.__Canon:this
-       mov      rsi, rax
+       call     rax
+       cmp      eax, dword ptr [r12+0x10]
+       je       G_M59587_IG18
+						;; size=17 bbWeight=4 PerfScore 30.00
+G_M59587_IG14:
+       mov      rdi, qword ptr [r13+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x10]
+       test     rdi, rdi
+       je       SHORT G_M59587_IG16
+						;; size=16 bbWeight=4 PerfScore 29.00
+G_M59587_IG15:
+       jmp      SHORT G_M59587_IG17
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M59587_IG16:
+       mov      rdi, r13
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.80 PerfScore 1.40
+G_M59587_IG17:
+       mov      qword ptr [rbp-0x128], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x68]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x128]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon])
+       call     [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon])
+						;; size=103 bbWeight=4 PerfScore 93.00
+G_M59587_IG18:
+       cmp      gword ptr [rbp-0x50], 0
+       je       G_M59587_IG80
+       mov      rsi, gword ptr [rbp-0x50]
+       mov      rsi, gword ptr [rsi+0x08]
        mov      rdi, gword ptr [rbx+0x08]
        call     [rbx+0x18]System.Predicate`1[System.__Canon]:Invoke(System.__Canon):ubyte:this
        test     eax, eax
-       je       G_M59587_IG10
-       mov      rdi, r14
-       mov      esi, r12d
+       je       G_M59587_IG43
+       mov      rdi, gword ptr [rbp-0x138]
+       mov      esi, r14d
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:RemoveAt(int):System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:RemoveAt(int):System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:this
-       mov      r14, rax
-       mov      rsi, r13
+       mov      gword ptr [rbp-0x138], rax
+       mov      r13, r15
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x60], rdi
+						;; size=74 bbWeight=4 PerfScore 89.00
+G_M59587_IG19:
+       mov      gword ptr [rbp-0x50], rdi
+       cmp      gword ptr [rbp-0x58], 0
+       je       G_M59587_IG40
+       mov      rdi, qword ptr [r13+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x28]
+       test     rdi, rdi
+       je       SHORT G_M59587_IG21
+						;; size=31 bbWeight=4 PerfScore 45.00
+G_M59587_IG20:
+       jmp      SHORT G_M59587_IG22
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M59587_IG21:
+       mov      rdi, r13
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.80 PerfScore 1.40
+G_M59587_IG22:
+       mov      r12, gword ptr [rbp-0x58]
+       cmp      byte  ptr [r12], r12b
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rax, qword ptr [rsi+0x10]
+       test     rax, rax
+       je       SHORT G_M59587_IG24
+						;; size=21 bbWeight=4 PerfScore 37.00
+G_M59587_IG23:
+       mov      rdi, rax
+       jmp      SHORT G_M59587_IG25
+						;; size=5 bbWeight=3.20 PerfScore 7.20
+G_M59587_IG24:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdi, rax
+						;; size=18 bbWeight=0.80 PerfScore 1.20
+G_M59587_IG25:
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rax, qword ptr [rsi+0x10]
+       test     rax, rax
+       je       SHORT G_M59587_IG27
+						;; size=13 bbWeight=4 PerfScore 21.00
+G_M59587_IG26:
+       jmp      SHORT G_M59587_IG28
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M59587_IG27:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+						;; size=15 bbWeight=0.80 PerfScore 1.00
+G_M59587_IG28:
        lea      rdi, [rbp-0x68]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:Dispose():this
-       call     [rax]System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:Dispose():this
+       call     rax
+       cmp      eax, dword ptr [r12+0x10]
+       jne      G_M59587_IG40
+       mov      rdi, gword ptr [r12+0x08]
+       cmp      dword ptr [rdi+0x10], 0
+       jle      SHORT G_M59587_IG29
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:Clear():this
+       call     [rax]System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:Clear():this
+						;; size=40 bbWeight=4 PerfScore 67.00
+G_M59587_IG29:
+       mov      rdi, qword ptr [r13+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      r12, qword ptr [rdi+0x38]
+       test     r12, r12
+       je       SHORT G_M59587_IG31
+						;; size=16 bbWeight=4 PerfScore 29.00
+G_M59587_IG30:
+       jmp      SHORT G_M59587_IG32
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M59587_IG31:
+       mov      rdi, r13
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r12, rax
+						;; size=21 bbWeight=0.80 PerfScore 1.40
+G_M59587_IG32:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x68]
+       vmovdqu  ymmword ptr [rbp-0xD8], ymm0
+       vmovdqu  ymm0, ymmword ptr [rbp-0x50]
+       vmovdqu  ymmword ptr [rbp-0xC0], ymm0
+						;; size=26 bbWeight=4 PerfScore 40.00
+G_M59587_IG33:
+       mov      r13, gword ptr [rbp-0x58]
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rax, qword ptr [rdi+0x18]
+       test     rax, rax
+       je       SHORT G_M59587_IG35
+						;; size=21 bbWeight=4 PerfScore 33.00
+G_M59587_IG34:
+       jmp      SHORT G_M59587_IG36
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M59587_IG35:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+						;; size=18 bbWeight=0.80 PerfScore 1.20
+G_M59587_IG36:
+       lea      rdi, [rbp-0xD8]
+       call     rax
+       cmp      eax, dword ptr [r13+0x10]
+       jne      SHORT G_M59587_IG40
+       mov      dword ptr [r13+0x10], -1
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M59587_IG38
+						;; size=40 bbWeight=4 PerfScore 63.00
+G_M59587_IG37:
+       jmp      SHORT G_M59587_IG39
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M59587_IG38:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.80 PerfScore 1.40
+G_M59587_IG39:
+       mov      rsi, r13
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryAdd(System.__Canon)
+       call     [rax]System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryAdd(System.__Canon)
+						;; size=15 bbWeight=4 PerfScore 14.00
+G_M59587_IG40:
+       xor      rsi, rsi
+       mov      gword ptr [rbp-0x58], rsi
        vxorps   ymm0, ymm0, ymm0
        vmovdqu  ymmword ptr [rbp-0xA0], ymm0
        vmovdqu  ymmword ptr [rbp-0x88], ymm0
-       mov      rsi, r13
+       mov      rsi, r15
        xor      edi, edi
        mov      dword ptr [rsp], edi
        lea      rdi, [rbp-0xA0]
-       mov      rdx, r14
-       mov      r8d, r12d
+       mov      rdx, gword ptr [rbp-0x138]
+       mov      r8d, r14d
        xor      rcx, rcx
        mov      r9d, -1
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.__Canon],System.Collections.Immutable.ImmutableList`1+Builder[System.__Canon],int,int,ubyte):this
        call     [rax]System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.ImmutableList`1+Node[System.__Canon],System.Collections.Immutable.ImmutableList`1+Builder[System.__Canon],int,int,ubyte):this
-						;; size=140 bbWeight=2 PerfScore 60.17
-G_M59587_IG08:
+						;; size=71 bbWeight=4 PerfScore 42.33
+G_M59587_IG41:
        vmovdqu  ymm0, ymmword ptr [rbp-0xA0]
        vmovdqu  ymmword ptr [rbp-0x68], ymm0
        vmovdqu  ymm0, ymmword ptr [rbp-0x88]
        vmovdqu  ymmword ptr [rbp-0x50], ymm0
-						;; size=26 bbWeight=2 PerfScore 20.00
-G_M59587_IG09:
-       jmp      SHORT G_M59587_IG11
-						;; size=2 bbWeight=2 PerfScore 4.00
-G_M59587_IG10:
-       inc      r12d
-						;; size=3 bbWeight=2 PerfScore 0.50
-G_M59587_IG11:
-       mov      rdi, qword ptr [r15+0x30]
+						;; size=26 bbWeight=4 PerfScore 40.00
+G_M59587_IG42:
+       jmp      SHORT G_M59587_IG44
+						;; size=2 bbWeight=4 PerfScore 8.00
+G_M59587_IG43:
+       inc      r14d
+						;; size=3 bbWeight=4 PerfScore 1.00
+G_M59587_IG44:
+       mov      rdx, gword ptr [rbp-0x130]
+       mov      rdi, qword ptr [rdx]
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      r13, qword ptr [rsi+0x28]
+       test     r13, r13
+       je       SHORT G_M59587_IG46
+						;; size=26 bbWeight=8 PerfScore 82.00
+G_M59587_IG45:
+       jmp      SHORT G_M59587_IG47
+						;; size=2 bbWeight=6.40 PerfScore 12.80
+G_M59587_IG46:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r13, rax
+						;; size=18 bbWeight=1.60 PerfScore 2.40
+G_M59587_IG47:
+       cmp      gword ptr [rbp-0x60], 0
+       je       SHORT G_M59587_IG55
+						;; size=7 bbWeight=8 PerfScore 24.00
+G_M59587_IG48:
+       cmp      gword ptr [rbp-0x58], 0
+       je       G_M59587_IG59
+       mov      rdi, qword ptr [r13+0x30]
        mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       SHORT G_M59587_IG50
+						;; size=27 bbWeight=4 PerfScore 41.00
+G_M59587_IG49:
+       jmp      SHORT G_M59587_IG51
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M59587_IG50:
+       mov      rdi, r13
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.80 PerfScore 1.40
+G_M59587_IG51:
+       mov      r12, gword ptr [rbp-0x58]
+       cmp      byte  ptr [r12], r12b
        mov      rsi, qword ptr [rdi+0x10]
-       test     rsi, rsi
-       je       SHORT G_M59587_IG13
-						;; size=16 bbWeight=8 PerfScore 58.00
-G_M59587_IG12:
-       jmp      SHORT G_M59587_IG14
+       mov      rax, qword ptr [rsi+0x10]
+       test     rax, rax
+       je       SHORT G_M59587_IG53
+						;; size=21 bbWeight=4 PerfScore 37.00
+G_M59587_IG52:
+       jmp      SHORT G_M59587_IG54
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M59587_IG53:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+						;; size=15 bbWeight=0.80 PerfScore 1.00
+G_M59587_IG54:
+       lea      rdi, [rbp-0x68]
+       call     rax
+       cmp      eax, dword ptr [r12+0x10]
+       je       G_M59587_IG59
+						;; size=17 bbWeight=4 PerfScore 30.00
+G_M59587_IG55:
+       mov      rdi, qword ptr [r13+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x10]
+       test     rdi, rdi
+       je       SHORT G_M59587_IG57
+						;; size=16 bbWeight=4 PerfScore 29.00
+G_M59587_IG56:
+       jmp      SHORT G_M59587_IG58
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M59587_IG57:
+       mov      rdi, r13
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.80 PerfScore 1.40
+G_M59587_IG58:
+       mov      qword ptr [rbp-0x118], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x68]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x118]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon])
+       call     [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon])
+						;; size=103 bbWeight=4 PerfScore 93.00
+G_M59587_IG59:
+       cmp      gword ptr [rbp-0x68], 0
+       je       SHORT G_M59587_IG61
+						;; size=7 bbWeight=8 PerfScore 24.00
+G_M59587_IG60:
+       mov      rdi, gword ptr [rbp-0x68]
+       mov      edi, dword ptr [rdi+0x20]
+       cmp      edi, dword ptr [rbp-0x38]
+       jne      G_M59587_IG81
+						;; size=16 bbWeight=4 PerfScore 24.00
+G_M59587_IG61:
+       cmp      gword ptr [rbp-0x58], 0
+       je       G_M59587_IG79
+       mov      rdi, qword ptr [r13+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      r12, qword ptr [rdi+0x20]
+       test     r12, r12
+       je       SHORT G_M59587_IG63
+						;; size=27 bbWeight=8 PerfScore 82.00
+G_M59587_IG62:
+       jmp      SHORT G_M59587_IG64
 						;; size=2 bbWeight=6.40 PerfScore 12.80
-G_M59587_IG13:
-       mov      rdi, r15
+G_M59587_IG63:
+       mov      rdi, r13
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
-       mov      rsi, rax
+       mov      r12, rax
 						;; size=21 bbWeight=1.60 PerfScore 2.80
-G_M59587_IG14:
+G_M59587_IG64:
+       mov      rax, gword ptr [rbp-0x58]
+       mov      gword ptr [rbp-0x140], rax
+       cmp      byte  ptr [rax], al
+       mov      rdi, qword ptr [r12+0x10]
+       mov      rdi, qword ptr [rdi+0x10]
+       test     rdi, rdi
+       je       SHORT G_M59587_IG66
+						;; size=27 bbWeight=8 PerfScore 82.00
+G_M59587_IG65:
+       jmp      SHORT G_M59587_IG67
+						;; size=2 bbWeight=6.40 PerfScore 12.80
+G_M59587_IG66:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdi, rax
+						;; size=21 bbWeight=1.60 PerfScore 2.80
+G_M59587_IG67:
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rcx, qword ptr [rsi+0x10]
+       test     rcx, rcx
+       je       SHORT G_M59587_IG69
+						;; size=13 bbWeight=8 PerfScore 42.00
+G_M59587_IG68:
+       jmp      SHORT G_M59587_IG70
+						;; size=2 bbWeight=6.40 PerfScore 12.80
+G_M59587_IG69:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rcx, rax
+						;; size=18 bbWeight=1.60 PerfScore 2.40
+G_M59587_IG70:
        lea      rdi, [rbp-0x68]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
-       call     [rax]System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
-       test     eax, eax
-       jne      G_M59587_IG07
-						;; size=24 bbWeight=8 PerfScore 40.00
-G_M59587_IG15:
-       mov      rsi, r13
+       call     rcx
+       mov      rcx, gword ptr [rbp-0x140]
+       cmp      eax, dword ptr [rcx+0x10]
+       je       G_M59587_IG75
+						;; size=22 bbWeight=8 PerfScore 68.00
+G_M59587_IG71:
+       mov      rdi, qword ptr [r12+0x10]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       SHORT G_M59587_IG73
+						;; size=14 bbWeight=4 PerfScore 21.00
+G_M59587_IG72:
+       jmp      SHORT G_M59587_IG74
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M59587_IG73:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdi, rax
+						;; size=21 bbWeight=0.80 PerfScore 1.40
+G_M59587_IG74:
+       mov      qword ptr [rbp-0x120], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x68]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x120]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon])
+       call     [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon])
+						;; size=103 bbWeight=4 PerfScore 93.00
+G_M59587_IG75:
+       mov      rcx, gword ptr [rbp-0x140]
+       mov      rdi, gword ptr [rcx+0x08]
+       cmp      dword ptr [rbp-0x3C], 0
+       jle      SHORT G_M59587_IG79
+       cmp      dword ptr [rdi+0x10], 0
+       jle      SHORT G_M59587_IG79
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:Pop():System.Collections.Immutable.RefAsValueType`1[System.__Canon]:this
+       call     [rax]System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:Pop():System.Collections.Immutable.RefAsValueType`1[System.__Canon]:this
+       mov      gword ptr [rbp-0x50], rax
+       cmp      byte  ptr [rbp-0x34], 0
+       jne      SHORT G_M59587_IG77
+						;; size=45 bbWeight=8 PerfScore 138.00
+G_M59587_IG76:
+       mov      rdx, gword ptr [rax+0x18]
+       jmp      SHORT G_M59587_IG78
+						;; size=6 bbWeight=4 PerfScore 16.00
+G_M59587_IG77:
+       mov      rdx, gword ptr [rax+0x10]
+						;; size=4 bbWeight=4 PerfScore 8.00
+G_M59587_IG78:
        lea      rdi, [rbp-0x68]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:Dispose():this
-       call     [rax]System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:Dispose():this
-       mov      rax, r14
-						;; size=22 bbWeight=1 PerfScore 4.25
-G_M59587_IG16:
+       mov      rsi, r13
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:PushNext(System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]):this
+       call     [rax]System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:PushNext(System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]):this
+       mov      edi, dword ptr [rbp-0x3C]
+       dec      edi
+       mov      dword ptr [rbp-0x3C], edi
+       jmp      G_M59587_IG07
+						;; size=32 bbWeight=8 PerfScore 66.00
+G_M59587_IG79:
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x50], rdi
+       jmp      SHORT G_M59587_IG82
+						;; size=8 bbWeight=8 PerfScore 26.00
+G_M59587_IG80:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M59587_IG81:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SR:get_CollectionModifiedDuringEnumeration():System.String
+       call     [rax]System.SR:get_CollectionModifiedDuringEnumeration():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_M59587_IG82:
+       mov      rdi, rsp
+       call     G_M59587_IG87
+						;; size=8 bbWeight=1 PerfScore 1.25
+G_M59587_IG83:
+       nop      
+						;; size=1 bbWeight=1 PerfScore 0.25
+G_M59587_IG84:
+       mov      rax, gword ptr [rbp-0x138]
+						;; size=7 bbWeight=1 PerfScore 1.00
+G_M59587_IG85:
        vzeroupper 
-       add      rsp, 152
+       add      rsp, 344
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=21 bbWeight=1 PerfScore 5.25
-G_M59587_IG17:
+G_M59587_IG86:
        mov      edi, 0x59D
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
-G_M59587_IG18:
+G_M59587_IG87:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 24
-       mov      rbp, qword ptr [rdi+0x08]
-       mov      qword ptr [rsp+0x08], rbp
-       lea      rbp, [rbp+0xC0]
-						;; size=30 bbWeight=0 PerfScore 0.00
-G_M59587_IG19:
-       mov      rdi, gword ptr [rbp-0xA8]
-       mov      r15, qword ptr [rdi]
-       mov      rsi, qword ptr [r15+0x30]
+       sub      rsp, 72
+       mov      rbp, qword ptr [rdi+0x38]
+       mov      qword ptr [rsp+0x38], rbp
+       lea      rbp, [rbp+0x180]
+						;; size=30 bbWeight=1 PerfScore 9.75
+G_M59587_IG88:
+       mov      rdx, gword ptr [rbp-0x130]
+       mov      rdi, qword ptr [rdx]
+       mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
-       mov      r13, qword ptr [rsi+0x10]
-       test     r13, r13
-       je       SHORT G_M59587_IG20
-       jmp      SHORT G_M59587_IG21
-						;; size=28 bbWeight=0 PerfScore 0.00
-G_M59587_IG20:
+       mov      r15, qword ptr [rsi+0x28]
+       test     r15, r15
+       je       SHORT G_M59587_IG90
+						;; size=26 bbWeight=1 PerfScore 10.25
+G_M59587_IG89:
+       jmp      SHORT G_M59587_IG91
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M59587_IG90:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r15, rax
+						;; size=18 bbWeight=0.20 PerfScore 0.30
+G_M59587_IG91:
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x60], rdi
+						;; size=6 bbWeight=1 PerfScore 1.25
+G_M59587_IG92:
+       mov      gword ptr [rbp-0x50], rdi
+       cmp      gword ptr [rbp-0x58], 0
+       je       G_M59587_IG113
+       mov      rdi, qword ptr [r15+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x28]
+       test     rdi, rdi
+       je       SHORT G_M59587_IG94
+						;; size=31 bbWeight=1 PerfScore 11.25
+G_M59587_IG93:
+       jmp      SHORT G_M59587_IG95
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M59587_IG94:
        mov      rdi, r15
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
-       mov      r13, rax
-						;; size=21 bbWeight=0 PerfScore 0.00
-G_M59587_IG21:
-       mov      rsi, r13
+       mov      rdi, rax
+						;; size=21 bbWeight=0.20 PerfScore 0.35
+G_M59587_IG95:
+       mov      rbx, gword ptr [rbp-0x58]
+       cmp      byte  ptr [rbx], bl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rax, qword ptr [rsi+0x10]
+       test     rax, rax
+       je       SHORT G_M59587_IG97
+						;; size=19 bbWeight=1 PerfScore 9.25
+G_M59587_IG96:
+       mov      rdi, rax
+       jmp      SHORT G_M59587_IG98
+						;; size=5 bbWeight=0.80 PerfScore 1.80
+G_M59587_IG97:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdi, rax
+						;; size=18 bbWeight=0.20 PerfScore 0.30
+G_M59587_IG98:
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rax, qword ptr [rsi+0x10]
+       test     rax, rax
+       je       SHORT G_M59587_IG100
+						;; size=13 bbWeight=1 PerfScore 5.25
+G_M59587_IG99:
+       jmp      SHORT G_M59587_IG101
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M59587_IG100:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+						;; size=15 bbWeight=0.20 PerfScore 0.25
+G_M59587_IG101:
        lea      rdi, [rbp-0x68]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:Dispose():this
-       call     [rax]System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]:Dispose():this
-       nop      
-						;; size=20 bbWeight=0 PerfScore 0.00
-G_M59587_IG22:
+       call     rax
+       cmp      eax, dword ptr [rbx+0x10]
+       jne      G_M59587_IG113
+       mov      rdi, gword ptr [rbx+0x08]
+       cmp      dword ptr [rdi+0x10], 0
+       jle      SHORT G_M59587_IG102
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:Clear():this
+       call     [rax]System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:Clear():this
+						;; size=37 bbWeight=1 PerfScore 16.75
+G_M59587_IG102:
+       mov      rdi, qword ptr [r15+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rbx, qword ptr [rdi+0x38]
+       test     rbx, rbx
+       je       SHORT G_M59587_IG104
+						;; size=16 bbWeight=1 PerfScore 7.25
+G_M59587_IG103:
+       jmp      SHORT G_M59587_IG105
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M59587_IG104:
+       mov      rdi, r15
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rbx, rax
+						;; size=21 bbWeight=0.20 PerfScore 0.35
+G_M59587_IG105:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x68]
+       vmovdqu  ymmword ptr [rbp-0x110], ymm0
+       vmovdqu  ymm0, ymmword ptr [rbp-0x50]
+       vmovdqu  ymmword ptr [rbp-0xF8], ymm0
+						;; size=26 bbWeight=1 PerfScore 10.00
+G_M59587_IG106:
+       mov      r15, gword ptr [rbp-0x58]
+       mov      rdi, qword ptr [rbx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rax, qword ptr [rdi+0x18]
+       test     rax, rax
+       je       SHORT G_M59587_IG108
+						;; size=20 bbWeight=1 PerfScore 8.25
+G_M59587_IG107:
+       jmp      SHORT G_M59587_IG109
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M59587_IG108:
+       mov      rdi, rbx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+						;; size=18 bbWeight=0.20 PerfScore 0.30
+G_M59587_IG109:
+       lea      rdi, [rbp-0x110]
+       call     rax
+       cmp      eax, dword ptr [r15+0x10]
+       jne      SHORT G_M59587_IG113
+       mov      dword ptr [r15+0x10], -1
+       mov      rdi, qword ptr [rbx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M59587_IG111
+						;; size=39 bbWeight=1 PerfScore 15.75
+G_M59587_IG110:
+       jmp      SHORT G_M59587_IG112
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M59587_IG111:
+       mov      rdi, rbx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.20 PerfScore 0.35
+G_M59587_IG112:
+       mov      rsi, r15
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryAdd(System.__Canon)
+       call     [rax]System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryAdd(System.__Canon)
+						;; size=15 bbWeight=1 PerfScore 3.50
+G_M59587_IG113:
+       xor      rax, rax
+       mov      gword ptr [rbp-0x58], rax
+						;; size=6 bbWeight=1 PerfScore 1.25
+G_M59587_IG114:
        vzeroupper 
-       add      rsp, 24
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=0 PerfScore 0.00
+						;; size=18 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 628, prolog size 74, PerfScore 254.80, instruction count 159, allocated bytes for code 628 (MethodHash=27ed173c) for method System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:RemoveAll(System.Predicate`1[System.__Canon]):System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:this (FullOpts)
+; Total bytes of code 2336, prolog size 102, PerfScore 2143.92, instruction count 564, allocated bytes for code 2336 (MethodHash=27ed173c) for method System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:RemoveAll(System.Predicate`1[System.__Canon]):System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:this (FullOpts)
1692 (252.91 % of base) - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:System.Collections.ICollection.CopyTo(System.Array,int):this
 ; Assembly listing for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 6 single block inlinees; 5 inlinees without PGO data
+; 0 inlinees with PGO data; 13 single block inlinees; 14 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] (  8, 14   )     ref  ->  [rbp-0x130]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
+;  V00 this         [V00,T04] (  8, 14   )     ref  ->  [rbp-0x1D8]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]>
 ;  V01 arg1         [V01,T05] (  8, 12   )     ref  ->  rbx         class-hnd single-def <System.Array>
-;  V02 arg2         [V02,T07] (  6,  8   )     int  ->  r15        
-;  V03 loc0         [V03    ] (  5, 12   )  struct (128) [rbp-0xA8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
-;  V04 loc1         [V04,T20] (  2,  4   )     ref  ->  r13         class-hnd <System.__Canon>
-;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V02 arg2         [V02,T21] (  6,  8   )     int  ->  r15        
+;  V03 loc0         [V03    ] ( 19, 40   )  struct (128) [rbp-0xB0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
+;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.__Canon>
+;  V05 OutArgs      [V05    ] (  1,  1   )  struct (80) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V07 tmp2         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V08 tmp3         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V09 tmp4         [V09,T06] (  3, 12   )     int  ->  rsi         "impSpillLclRefs"
+;  V09 tmp4         [V09,T11] (  3, 12   )     int  ->  rsi         "impSpillLclRefs"
 ;* V10 tmp5         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V11 tmp6         [V11,T17] (  6,  4   )    long  ->  rax         "Indirect call through function pointer"
+;  V11 tmp6         [V11,T49] (  6,  4   )    long  ->  rax         "Indirect call through function pointer"
 ;* V12 tmp7         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp8         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V14 tmp9         [V14    ] (  2,  4   )  struct (128) [rbp-0x128]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
-;* V15 tmp10        [V15    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V16 tmp11        [V16,T11] (  2,  4   )     int  ->  rdi         "Inline return value spill temp"
-;* V17 tmp12        [V17    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V18 tmp13        [V18,T12] (  3,  6   )     int  ->  rdi         "Inline stloc first use temp"
-;  V19 tmp14        [V19,T08] (  2,  8   )   byref  ->  rdi         "Inlining Arg"
-;  V20 tmp15        [V20,T25] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V21 tmp16        [V21,T21] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V22 tmp17        [V22,T03] (  2, 32   )    long  ->  rsi         "argument with side effect"
-;  V23 tmp18        [V23,T09] (  2,  8   )    long  ->  rsi         "argument with side effect"
-;  V24 tmp19        [V24,T10] (  2,  8   )    long  ->  rdx         "argument with side effect"
-;  V25 PSPSym       [V25,T22] (  1,  1   )    long  ->  [rbp-0x140]  do-not-enreg[V] "PSPSym"
-;  V26 cse0         [V26,T18] (  3,  4   )    long  ->  r14         "CSE #02: moderate"
-;  V27 rat0         [V27,T15] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
-;  V28 rat1         [V28,T19] (  3,  4   )    long  ->  r14         "runtime lookup"
-;  V29 rat2         [V29,T13] (  3,  5.60)    long  ->  r14         "fgMakeTemp is creating a new local variable"
-;  V30 rat3         [V30,T01] (  3, 35.20)    long  ->  rdi         "Spilling to split statement for tree"
-;  V31 rat4         [V31,T02] (  3, 32   )    long  ->  rsi         "runtime lookup"
-;  V32 rat5         [V32,T00] (  3, 44.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
-;  V33 rat6         [V33,T16] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
-;  V34 rat7         [V34,T14] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V35 rat8         [V35,T23] (  3,  0   )    long  ->  rdi         "Spilling to split statement for tree"
-;  V36 rat9         [V36,T24] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V14 tmp9         [V14    ] (  5, 10   )  struct (128) [rbp-0x130]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]>
+;  V15 tmp10        [V15,T46] (  3,  4.40)    long  ->  rdi         "spilling helperCall"
+;  V16 tmp11        [V16,T36] (  4,  7   )     ref  ->  r13         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;  V17 tmp12        [V17    ] ( 14, 20   )  struct (32) [rbp-0x150]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;* V18 tmp13        [V18    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V19 tmp14        [V19    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V20 tmp15        [V20    ] (  0,  0   )   byref  ->  zero-ref   
+;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref   
+;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref   
+;  V23 tmp18        [V23,T45] (  6,  5.40)    long  ->  [rbp-0x158]  spill-single-def "Inlining Arg"
+;* V24 tmp19        [V24    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V25 tmp20        [V25    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V26 tmp21        [V26,T66] (  2,  2   )  struct (32) [rbp-0x178]  do-not-enreg[S] must-init "impAppendStmt" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;  V27 tmp22        [V27,T56] (  3,  3   )     ref  ->  [rbp-0x1E0]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;* V28 tmp23        [V28    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V29 tmp24        [V29    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V30 tmp25        [V30,T54] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;* V31 tmp26        [V31,T74] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V32 tmp27        [V32    ] (  3,  3   )  struct (32) [rbp-0x198]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]>
+;  V33 tmp28        [V33,T55] (  5,  3.40)    long  ->  [rbp-0x1A0]  spill-single-def "Inlining Arg"
+;* V34 tmp29        [V34    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V35 tmp30        [V35,T67] (  2,  2   )    long  ->  rsi         "Indirect call through function pointer"
+;* V36 tmp31        [V36    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V37 tmp32        [V37    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V38 tmp33        [V38,T68] (  2,  2   )    long  ->  r13         "Indirect call through function pointer"
+;  V39 tmp34        [V39,T65] (  2,  2   )     ref  ->  [rbp-0x1E8]  class-hnd exact spill-single-def "non-inline candidate call" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V40 tmp35        [V40,T69] (  2,  2   )     int  ->  rax         "Inlining Arg"
+;  V41 tmp36        [V41,T24] (  3,  8.80)    long  ->  r13         "Inlining Arg"
+;* V42 tmp37        [V42    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V43 tmp38        [V43    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V44 tmp39        [V44,T08] (  5, 13.60)    long  ->  [rbp-0x1A8]  spill-single-def "Inlining Arg"
+;* V45 tmp40        [V45    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V46 tmp41        [V46,T22] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V47 tmp42        [V47    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V48 tmp43        [V48    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V49 tmp44        [V49,T25] (  3,  8   )    long  ->  rdx         "Indirect call through function pointer"
+;  V50 tmp45        [V50,T09] (  3, 12   )     ref  ->  [rbp-0x1F0]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;* V51 tmp46        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.__Canon>
+;  V52 tmp47        [V52,T06] (  6, 13.60)    long  ->  r13         "Inlining Arg"
+;  V53 tmp48        [V53,T39] (  3,  6   )     int  ->  rdi         "Inline stloc first use temp"
+;  V54 tmp49        [V54,T37] (  3,  6   )     ref  ->  r13         class-hnd "Inline stloc first use temp" <System.__Canon>
+;* V55 tmp50        [V55    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V56 tmp51        [V56,T76] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;* V57 tmp52        [V57    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V58 tmp53        [V58    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V59 tmp54        [V59    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V60 tmp55        [V60,T77] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;  V61 tmp56        [V61,T07] (  6, 13.60)    long  ->  r13         "Inlining Arg"
+;* V62 tmp57        [V62    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V63 tmp58        [V63,T23] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V64 tmp59        [V64    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V65 tmp60        [V65    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V66 tmp61        [V66,T26] (  3,  8   )    long  ->  rcx         "Indirect call through function pointer"
+;  V67 tmp62        [V67,T10] (  3, 12   )     ref  ->  [rbp-0x1F8]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V68 tmp63        [V68,T30] (  2,  8   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]>
+;  V69 tmp64        [V69,T40] (  2,  4   )     int  ->  rax         "Inline return value spill temp"
+;* V70 tmp65        [V70    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V71 tmp66        [V71,T41] (  3,  6   )     int  ->  rax         "Inline stloc first use temp"
+;  V72 tmp67        [V72,T31] (  2,  8   )   byref  ->  rdi         "Inlining Arg"
+;  V73 tmp68        [V73    ] (  7,  7.50)     ref  ->  [rbp-0x150]  do-not-enreg[X] addr-exposed "field V17._root (fldOffset=0x0)" P-DEP
+;  V74 tmp69        [V74    ] (  9,  8   )     ref  ->  [rbp-0x148]  do-not-enreg[X] addr-exposed "field V17._stack (fldOffset=0x8)" P-DEP
+;  V75 tmp70        [V75    ] (  5,  6   )     ref  ->  [rbp-0x140]  do-not-enreg[X] addr-exposed "field V17._current (fldOffset=0x10)" P-DEP
+;  V76 tmp71        [V76    ] (  5,  6   )     int  ->  [rbp-0x138]  do-not-enreg[X] addr-exposed "field V17._poolUserId (fldOffset=0x18)" P-DEP
+;  V77 tmp72        [V77,T80] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V78 tmp73        [V78,T70] (  2,  2   )    long  ->  rdi         "argument with side effect"
+;  V79 tmp74        [V79,T71] (  2,  2   )    long  ->  r13         "argument with side effect"
+;  V80 tmp75        [V80,T03] (  2, 32   )    long  ->  rsi         "argument with side effect"
+;  V81 tmp76        [V81,T32] (  2,  8   )    long  ->  [rbp-0x1B0]  spill-single-def "argument with side effect"
+;  V82 tmp77        [V82,T33] (  2,  8   )    long  ->  [rbp-0x1B8]  spill-single-def "argument with side effect"
+;  V83 tmp78        [V83,T34] (  2,  8   )    long  ->  [rbp-0x1C0]  spill-single-def "argument with side effect"
+;  V84 tmp79        [V84,T35] (  2,  8   )    long  ->  rdx         "argument with side effect"
+;  V85 PSPSym       [V85,T75] (  1,  1   )    long  ->  [rbp-0x200]  do-not-enreg[V] "PSPSym"
+;  V86 cse0         [V86,T50] (  3,  4   )    long  ->  r14         "CSE #04: moderate"
+;  V87 cse1         [V87,T51] (  3,  4   )    long  ->  r12         "CSE #05: moderate"
+;  V88 cse2         [V88,T72] (  3,  1.50)    long  ->  [rbp-0x1C8]  spill-single-def "CSE #01: conservative"
+;  V89 cse3         [V89,T73] (  3,  1.50)    long  ->  [rbp-0x1D0]  spill-single-def "CSE #02: conservative"
+;  V90 cse4         [V90,T38] (  3,  6   )     ref  ->  rdi         "CSE #08: moderate"
+;  V91 rat0         [V91,T47] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
+;  V92 rat1         [V92,T52] (  3,  4   )    long  ->  r14         "runtime lookup"
+;  V93 rat2         [V93,T42] (  3,  5.60)    long  ->  r14         "fgMakeTemp is creating a new local variable"
+;  V94 rat3         [V94,T53] (  3,  4   )    long  ->  r12         "runtime lookup"
+;  V95 rat4         [V95,T43] (  3,  5.60)    long  ->  r12         "fgMakeTemp is creating a new local variable"
+;  V96 rat5         [V96,T61] (  3,  2   )    long  ->  registers   "runtime lookup"
+;  V97 rat6         [V97,T57] (  3,  2.80)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V98 rat7         [V98,T62] (  3,  2   )    long  ->  registers   "runtime lookup"
+;  V99 rat8         [V99,T58] (  3,  2.80)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V100 rat9        [V100,T63] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V101 rat10       [V101,T59] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V102 rat11       [V102,T64] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V103 rat12       [V103,T60] (  3,  2.80)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V104 rat13       [V104,T12] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V105 rat14       [V105,T13] (  3, 11.20)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V106 rat15       [V106,T27] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V107 rat16       [V107,T14] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V108 rat17       [V108,T15] (  3, 11.20)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V109 rat18       [V109,T28] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V110 rat19       [V110,T16] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V111 rat20       [V111,T17] (  3, 11.20)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V112 rat21       [V112,T18] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V113 rat22       [V113,T19] (  3, 11.20)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V114 rat23       [V114,T29] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V115 rat24       [V115,T20] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V116 rat25       [V116,T01] (  3, 35.20)    long  ->  rdi         "Spilling to split statement for tree"
+;  V117 rat26       [V117,T02] (  3, 32   )    long  ->  rsi         "runtime lookup"
+;  V118 rat27       [V118,T00] (  3, 44.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
+;  V119 rat28       [V119,T48] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
+;  V120 rat29       [V120,T44] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V121 rat30       [V121,T78] (  3,  0   )    long  ->  rdi         "Spilling to split statement for tree"
+;  V122 rat31       [V122,T79] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 288
+; Lcl frame size = 552
 
 G_M30256_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
+       push     r12
        push     rbx
-       sub      rsp, 288
-       lea      rbp, [rsp+0x140]
+       sub      rsp, 552
+       lea      rbp, [rsp+0x250]
        xor      eax, eax
-       mov      qword ptr [rbp-0x128], rax
+       mov      qword ptr [rbp-0x198], rax
        vxorps   xmm8, xmm8, xmm8
-       mov      rax, -240
+       vmovdqa  xmmword ptr [rbp-0x190], xmm8
+       mov      rax, -336
        vmovdqa  xmmword ptr [rbp+rax-0x30], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x20], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x10], xmm8
        add      rax, 48
        jne      SHORT  -5 instr
-       mov      qword ptr [rbp-0x30], rax
-       mov      qword ptr [rbp-0x140], rsp
-       mov      qword ptr [rbp-0x28], rdi
-       mov      gword ptr [rbp-0x130], rdi
+       mov      qword ptr [rbp-0x200], rsp
+       mov      qword ptr [rbp-0x30], rdi
+       mov      gword ptr [rbp-0x1D8], rdi
        mov      r8, rdi
        mov      rbx, rsi
        mov      r15d, edx
-						;; size=102 bbWeight=1 PerfScore 19.58
+						;; size=108 bbWeight=1 PerfScore 21.58
 G_M30256_IG02:
        test     rbx, rbx
-       je       G_M30256_IG21
+       je       G_M30256_IG78
        test     r15d, r15d
-       jl       G_M30256_IG22
+       jl       G_M30256_IG79
        mov      edi, dword ptr [rbx+0x08]
        test     edi, edi
-       jl       G_M30256_IG20
+       jl       G_M30256_IG77
        mov      esi, r15d
        add      esi, dword ptr [r8+0x20]
        cmp      edi, esi
-       jl       G_M30256_IG22
+       jl       G_M30256_IG79
        mov      rdi, qword ptr [r8]
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      r14, qword ptr [rsi+0x90]
        test     r14, r14
        je       SHORT G_M30256_IG04
 						;; size=66 bbWeight=1 PerfScore 19.50
 G_M30256_IG03:
        jmp      SHORT G_M30256_IG05
 						;; size=2 bbWeight=0.80 PerfScore 1.60
 G_M30256_IG04:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      r14, rax
 						;; size=18 bbWeight=0.20 PerfScore 0.30
 G_M30256_IG05:
-       mov      rsi, r14
-       mov      r8, gword ptr [rbp-0x130]
-       mov      rdx, gword ptr [r8+0x10]
-       lea      rdi, [rbp-0x128]
+       mov      rdi, r14
+       mov      r8, gword ptr [rbp-0x1D8]
+       mov      r13, gword ptr [r8+0x10]
+       xor      rsi, rsi
+       mov      gword ptr [rbp-0x130], rsi
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      r12, qword ptr [rsi+0x10]
+       test     r12, r12
+       je       SHORT G_M30256_IG07
+						;; size=39 bbWeight=1 PerfScore 11.75
+G_M30256_IG06:
+       jmp      SHORT G_M30256_IG08
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M30256_IG07:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r12, rax
+						;; size=18 bbWeight=0.20 PerfScore 0.30
+G_M30256_IG08:
+       mov      qword ptr [rbp-0x158], r12
+       test     r13, r13
+       je       G_M30256_IG80
+       mov      gword ptr [rbp-0x150], r13
        xor      rcx, rcx
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.Collections.Immutable.ImmutableHashSet`1+Builder[System.__Canon]):this
-       call     [rax]System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.Collections.Immutable.ImmutableHashSet`1+Builder[System.__Canon]):this
-       lea      rdi, bword ptr [rbp-0xA8]
-       lea      rsi, bword ptr [rbp-0x128]
+       mov      gword ptr [rbp-0x140], rcx
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool:NewId():int
+       call     [rcx]System.Collections.Immutable.SecureObjectPool:NewId():int
+       mov      dword ptr [rbp-0x138], eax
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x148], rdi
+       mov      rdi, gword ptr [rbp-0x150]
+       cmp      gword ptr [rdi+0x08], 0
+       je       G_M30256_IG28
+						;; size=77 bbWeight=1 PerfScore 15.00
+G_M30256_IG09:
+       mov      rax, qword ptr [rbp-0x158]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rcx, qword ptr [rdi+0x18]
+       test     rcx, rcx
+       je       SHORT G_M30256_IG11
+						;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M30256_IG10:
+       jmp      SHORT G_M30256_IG12
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M30256_IG11:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rcx, rax
+       mov      rax, qword ptr [rbp-0x158]
+						;; size=28 bbWeight=0.10 PerfScore 0.28
+G_M30256_IG12:
+       mov      rdi, rcx
+       mov      qword ptr [rbp-0x1D0], rdi
+       mov      rcx, rdi
+       mov      qword ptr [rbp-0x1A0], rcx
+						;; size=20 bbWeight=0.50 PerfScore 1.25
+G_M30256_IG13:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x150]
+       vmovdqu  ymmword ptr [rbp-0x198], ymm0
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M30256_IG14:
+       mov      rsi, qword ptr [rcx+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rdx, qword ptr [rsi+0x18]
+       test     rdx, rdx
+       je       SHORT G_M30256_IG16
+						;; size=16 bbWeight=0.50 PerfScore 3.62
+G_M30256_IG15:
+       jmp      SHORT G_M30256_IG17
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M30256_IG16:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdx, rax
+						;; size=21 bbWeight=0.10 PerfScore 0.18
+G_M30256_IG17:
+       mov      qword ptr [rbp-0x1C8], rdx
+       mov      rsi, rdx
+       lea      rdi, [rbp-0x198]
+       call     rsi
+       cmp      eax, -1
+       je       SHORT G_M30256_IG21
+       mov      rdi, qword ptr [rbp-0x1A0]
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rax, qword ptr [rsi+0x20]
+       test     rax, rax
+       je       SHORT G_M30256_IG19
+						;; size=47 bbWeight=0.50 PerfScore 7.12
+G_M30256_IG18:
+       mov      rdi, rax
+       jmp      SHORT G_M30256_IG20
+						;; size=5 bbWeight=0.40 PerfScore 0.90
+G_M30256_IG19:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=18 bbWeight=0.10 PerfScore 0.15
+G_M30256_IG20:
+       lea      rsi, [rbp-0x148]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       call     [rax]System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       test     eax, eax
+       je       SHORT G_M30256_IG21
+       mov      r13, qword ptr [rbp-0x1C8]
+       mov      rax, gword ptr [rbp-0x148]
+       mov      gword ptr [rbp-0x1E8], rax
+       lea      rdi, [rbp-0x198]
+       call     r13
+       mov      r13, gword ptr [rbp-0x1E8]
+       mov      dword ptr [r13+0x10], eax
+       jmp      G_M30256_IG27
+						;; size=70 bbWeight=0.50 PerfScore 7.75
+G_M30256_IG21:
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x148], rdi
+						;; size=9 bbWeight=0.50 PerfScore 0.62
+G_M30256_IG22:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x150]
+       vmovdqu  ymmword ptr [rbp-0x178], ymm0
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M30256_IG23:
+       mov      rax, qword ptr [rbp-0x158]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M30256_IG25
+						;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M30256_IG24:
+       jmp      SHORT G_M30256_IG26
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M30256_IG25:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.10 PerfScore 0.18
+G_M30256_IG26:
+       call     CORINFO_HELP_NEWSFAST
+       mov      gword ptr [rbp-0x1E0], rax
+       movzx    rsi, byte  ptr [r13+0x1D]
+       mov      rdi, rax
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       call     [rcx]System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       mov      r13, qword ptr [rbp-0x1D0]
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x178]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, r13
+       mov      rsi, gword ptr [rbp-0x1E0]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       call     [rax]System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       mov      gword ptr [rbp-0x148], rax
+						;; size=128 bbWeight=0.50 PerfScore 13.25
+G_M30256_IG27:
+       lea      rdi, [rbp-0x150]
+       mov      rsi, qword ptr [rbp-0x158]
+       mov      rdx, gword ptr [rbp-0x150]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]):this
+       call     [rax]System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]):this
+						;; size=33 bbWeight=0.50 PerfScore 2.88
+G_M30256_IG28:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x150]
+       vmovdqu  ymmword ptr [rbp-0x120], ymm0
+						;; size=16 bbWeight=1 PerfScore 5.00
+G_M30256_IG29:
+       vxorps   ymm0, ymm0, ymm0
+       vmovdqu  ymmword ptr [rbp-0x100], ymm0
+       vmovdqu  ymmword ptr [rbp-0xE0], ymm0
+       vmovdqu  xmmword ptr [rbp-0xC0], xmm0
+       mov      dword ptr [rbp-0x128], -1
+       lea      rdi, bword ptr [rbp-0xB0]
+       lea      rsi, bword ptr [rbp-0x130]
        mov      ecx, 16
        rep movsq 
-						;; size=57 bbWeight=1 PerfScore 33.50
-G_M30256_IG06:
-       jmp      SHORT G_M30256_IG09
-						;; size=2 bbWeight=1 PerfScore 2.00
-G_M30256_IG07:
-       mov      rsi, r14
-       lea      rdi, [rbp-0xA8]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:get_Current():System.__Canon:this
-       call     [rax]System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:get_Current():System.__Canon:this
+						;; size=60 bbWeight=1 PerfScore 30.58
+G_M30256_IG30:
+       jmp      G_M30256_IG59
+						;; size=5 bbWeight=1 PerfScore 2.00
+G_M30256_IG31:
+       mov      r13, r14
+       mov      rax, r12
+       mov      qword ptr [rbp-0x1A8], rax
+       cmp      gword ptr [rbp-0xA0], 0
+       je       G_M30256_IG38
+       cmp      gword ptr [rbp-0x98], 0
+       je       G_M30256_IG42
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x30]
+       test     rdi, rdi
+       je       SHORT G_M30256_IG33
+						;; size=57 bbWeight=2 PerfScore 29.50
+G_M30256_IG32:
+       jmp      SHORT G_M30256_IG34
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M30256_IG33:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       mov      rax, qword ptr [rbp-0x1A8]
+						;; size=28 bbWeight=0.40 PerfScore 1.10
+G_M30256_IG34:
+       mov      rcx, gword ptr [rbp-0x98]
+       mov      gword ptr [rbp-0x1F0], rcx
+       cmp      byte  ptr [rcx], cl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rdx, qword ptr [rsi+0x10]
+       test     rdx, rdx
+       je       SHORT G_M30256_IG36
+						;; size=29 bbWeight=2 PerfScore 20.50
+G_M30256_IG35:
+       jmp      SHORT G_M30256_IG37
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M30256_IG36:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdx, rax
+						;; size=18 bbWeight=0.40 PerfScore 0.60
+G_M30256_IG37:
+       lea      rdi, [rbp-0xA0]
+       call     rdx
+       mov      rdi, gword ptr [rbp-0x1F0]
+       cmp      eax, dword ptr [rdi+0x10]
+       mov      rax, qword ptr [rbp-0x1A8]
+       je       G_M30256_IG42
+						;; size=32 bbWeight=2 PerfScore 19.00
+G_M30256_IG38:
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x28]
+       test     rdi, rdi
+       je       SHORT G_M30256_IG40
+						;; size=16 bbWeight=2 PerfScore 14.50
+G_M30256_IG39:
+       jmp      SHORT G_M30256_IG41
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M30256_IG40:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M30256_IG41:
+       mov      qword ptr [rbp-0x1B0], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0xA0]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1B0]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]])
+       call     [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]])
+						;; size=86 bbWeight=2 PerfScore 35.50
+G_M30256_IG42:
+       mov      rdi, qword ptr [r13+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rax, qword ptr [rdi+0x18]
+       test     rax, rax
+       je       SHORT G_M30256_IG44
+						;; size=16 bbWeight=2 PerfScore 14.50
+G_M30256_IG43:
+       mov      r13, rax
+       jmp      SHORT G_M30256_IG45
+						;; size=5 bbWeight=1.60 PerfScore 3.60
+G_M30256_IG44:
+       mov      rdi, r13
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r13, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M30256_IG45:
+       cmp      byte  ptr [rbp-0x7C], 0
+       je       G_M30256_IG49
+       mov      rdi, qword ptr [r13+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       SHORT G_M30256_IG47
+						;; size=26 bbWeight=2 PerfScore 20.50
+G_M30256_IG46:
+       jmp      SHORT G_M30256_IG48
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M30256_IG47:
+       mov      rdi, r13
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M30256_IG48:
+       mov      qword ptr [rbp-0x1B8], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x80]
+       movsq    
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x20], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x28], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x30], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1B8]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon])
+       call     [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon])
+						;; size=138 bbWeight=2 PerfScore 62.50
+G_M30256_IG49:
+       mov      edi, dword ptr [rbp-0x80]
+       cmp      edi, 1
+       je       G_M30256_IG65
+       cmp      edi, 2
+       jne      G_M30256_IG63
+       mov      rdi, qword ptr [r13+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rax, qword ptr [rdi+0x10]
+       test     rax, rax
+       je       G_M30256_IG66
+						;; size=41 bbWeight=2 PerfScore 21.50
+G_M30256_IG50:
        mov      r13, rax
+						;; size=3 bbWeight=1.60 PerfScore 0.40
+G_M30256_IG51:
+       cmp      gword ptr [rbp-0x60], 0
+       je       SHORT G_M30256_IG54
+       cmp      gword ptr [rbp-0x58], 0
+       je       G_M30256_IG56
+       mov      rdi, qword ptr [r13+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       G_M30256_IG67
+						;; size=38 bbWeight=2 PerfScore 26.50
+G_M30256_IG52:
+       mov      rax, gword ptr [rbp-0x58]
+       mov      gword ptr [rbp-0x1F8], rax
+       cmp      byte  ptr [rax], al
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rcx, qword ptr [rsi+0x10]
+       test     rcx, rcx
+       je       G_M30256_IG68
+						;; size=30 bbWeight=2 PerfScore 20.50
+G_M30256_IG53:
+       lea      rdi, [rbp-0x68]
+       call     rcx
+       mov      rdi, gword ptr [rbp-0x1F8]
+       cmp      eax, dword ptr [rdi+0x10]
+       je       SHORT G_M30256_IG56
+						;; size=18 bbWeight=2 PerfScore 17.00
+G_M30256_IG54:
+       mov      rdi, qword ptr [r13+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x10]
+       test     rdi, rdi
+       je       G_M30256_IG69
+						;; size=20 bbWeight=2 PerfScore 14.50
+G_M30256_IG55:
+       mov      qword ptr [rbp-0x1C0], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x68]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1C0]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon])
+       call     [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.__Canon])
+						;; size=103 bbWeight=2 PerfScore 46.50
+G_M30256_IG56:
+       mov      rdi, gword ptr [rbp-0x50]
+       test     rdi, rdi
+       je       SHORT G_M30256_IG62
+       mov      r13, gword ptr [rdi+0x08]
+						;; size=13 bbWeight=2 PerfScore 8.50
+G_M30256_IG57:
        mov      esi, r15d
        lea      r15d, [rsi+0x01]
        mov      rdi, qword ptr [rbx]
-       mov      edi, dword ptr [rdi+0x04]
-       add      edi, -24
-       shr      edi, 3
-       je       SHORT G_M30256_IG08
-       cmp      edi, 1
-       jne      SHORT G_M30256_IG14
-						;; size=51 bbWeight=2 PerfScore 24.00
-G_M30256_IG08:
+       mov      eax, dword ptr [rdi+0x04]
+       add      eax, -24
+       shr      eax, 3
+       jne      G_M30256_IG70
+						;; size=25 bbWeight=2 PerfScore 13.00
+G_M30256_IG58:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Array:GetFlattenedIndex(int):long:this
        call     [rax]System.Array:GetFlattenedIndex(int):long:this
        mov      rdx, rax
        mov      rsi, r13
        mov      rdi, rbx
        call     System.Array:InternalSetValue(System.Object,long):this
 						;; size=29 bbWeight=2 PerfScore 10.50
-G_M30256_IG09:
-       mov      r8, gword ptr [rbp-0x130]
+G_M30256_IG59:
+       mov      r8, gword ptr [rbp-0x1D8]
        mov      rdi, qword ptr [r8]
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      rsi, qword ptr [rsi+0x90]
        test     rsi, rsi
-       je       SHORT G_M30256_IG11
-						;; size=29 bbWeight=8 PerfScore 82.00
-G_M30256_IG10:
-       jmp      SHORT G_M30256_IG12
-						;; size=2 bbWeight=6.40 PerfScore 12.80
-G_M30256_IG11:
-       mov      rsi, 0xD1FFAB1E      ; global ptr
-       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
-       mov      rsi, rax
-						;; size=18 bbWeight=1.60 PerfScore 2.40
-G_M30256_IG12:
-       lea      rdi, [rbp-0xA8]
+       je       G_M30256_IG71
+						;; size=33 bbWeight=8 PerfScore 82.00
+G_M30256_IG60:
+       lea      rdi, [rbp-0xB0]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
        call     [rax]System.Collections.Immutable.ImmutableHashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this
        test     eax, eax
-       jne      G_M30256_IG07
+       jne      G_M30256_IG31
 						;; size=27 bbWeight=8 PerfScore 40.00
-G_M30256_IG13:
-       jmp      SHORT G_M30256_IG15
-						;; size=2 bbWeight=1 PerfScore 2.00
-G_M30256_IG14:
+G_M30256_IG61:
+       jmp      G_M30256_IG72
+						;; size=5 bbWeight=1 PerfScore 2.00
+G_M30256_IG62:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M30256_IG63:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M30256_IG64:
        mov      edi, 58
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
-G_M30256_IG15:
-       mov      r8, gword ptr [rbp-0x130]
+G_M30256_IG65:
+       mov      r13, gword ptr [rbp-0x78]
+       jmp      G_M30256_IG57
+						;; size=9 bbWeight=2 PerfScore 6.00
+G_M30256_IG66:
+       mov      rdi, r13
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r13, rax
+       jmp      G_M30256_IG51
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M30256_IG67:
+       mov      rdi, r13
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M30256_IG52
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M30256_IG68:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rcx, rax
+       jmp      G_M30256_IG53
+						;; size=23 bbWeight=0.40 PerfScore 1.40
+G_M30256_IG69:
+       mov      rdi, r13
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M30256_IG55
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M30256_IG70:
+       cmp      eax, 1
+       jne      G_M30256_IG64
+       jmp      G_M30256_IG58
+						;; size=14 bbWeight=2 PerfScore 6.50
+G_M30256_IG71:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rsi, rax
+       jmp      G_M30256_IG60
+						;; size=23 bbWeight=1.60 PerfScore 5.60
+G_M30256_IG72:
+       mov      r8, gword ptr [rbp-0x1D8]
        mov      rdi, qword ptr [r8]
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      rax, qword ptr [rsi+0x98]
        test     rax, rax
-       je       SHORT G_M30256_IG17
+       je       SHORT G_M30256_IG74
 						;; size=29 bbWeight=1 PerfScore 10.25
-G_M30256_IG16:
-       jmp      SHORT G_M30256_IG18
+G_M30256_IG73:
+       jmp      SHORT G_M30256_IG75
 						;; size=2 bbWeight=0.80 PerfScore 1.60
-G_M30256_IG17:
+G_M30256_IG74:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=15 bbWeight=0.20 PerfScore 0.25
-G_M30256_IG18:
-       lea      rdi, [rbp-0xA8]
+G_M30256_IG75:
+       lea      rdi, [rbp-0xB0]
        call     rax
        nop      
 						;; size=10 bbWeight=1 PerfScore 3.75
-G_M30256_IG19:
-       add      rsp, 288
+G_M30256_IG76:
+       vzeroupper 
+       add      rsp, 552
        pop      rbx
+       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=16 bbWeight=1 PerfScore 3.75
-G_M30256_IG20:
+						;; size=21 bbWeight=1 PerfScore 5.25
+G_M30256_IG77:
        call     CORINFO_HELP_OVERFLOW
 						;; size=5 bbWeight=0 PerfScore 0.00
-G_M30256_IG21:
+G_M30256_IG78:
        mov      edi, 0x497
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
-G_M30256_IG22:
+G_M30256_IG79:
        mov      edi, 0x4A3
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        xor      rsi, rsi
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailRange(System.String,System.String)
        call     [rax]System.Collections.Immutable.Requires:FailRange(System.String,System.String)
        int3     
 						;; size=38 bbWeight=0 PerfScore 0.00
-G_M30256_IG23:
+G_M30256_IG80:
+       mov      edi, 0x45F
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M30256_IG81:
        push     rbp
        push     r15
        push     r14
        push     r13
+       push     r12
        push     rbx
-       sub      rsp, 16
-       mov      rbp, qword ptr [rdi]
-       mov      qword ptr [rsp], rbp
-       lea      rbp, [rbp+0x140]
-						;; size=26 bbWeight=0 PerfScore 0.00
-G_M30256_IG24:
-       mov      r8, gword ptr [rbp-0x130]
+       sub      rsp, 88
+       mov      rbp, qword ptr [rdi+0x50]
+       mov      qword ptr [rsp+0x50], rbp
+       lea      rbp, [rbp+0x250]
+						;; size=30 bbWeight=0 PerfScore 0.00
+G_M30256_IG82:
+       mov      r8, gword ptr [rbp-0x1D8]
        mov      rdi, qword ptr [r8]
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      rax, qword ptr [rsi+0x98]
        test     rax, rax
-       je       SHORT G_M30256_IG25
-       jmp      SHORT G_M30256_IG26
+       je       SHORT G_M30256_IG83
+       jmp      SHORT G_M30256_IG84
 						;; size=31 bbWeight=0 PerfScore 0.00
-G_M30256_IG25:
+G_M30256_IG83:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=15 bbWeight=0 PerfScore 0.00
-G_M30256_IG26:
-       lea      rdi, [rbp-0xA8]
+G_M30256_IG84:
+       lea      rdi, [rbp-0xB0]
        call     rax
        nop      
 						;; size=10 bbWeight=0 PerfScore 0.00
-G_M30256_IG27:
-       add      rsp, 16
+G_M30256_IG85:
+       vzeroupper 
+       add      rsp, 88
        pop      rbx
+       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=13 bbWeight=0 PerfScore 0.00
+						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 669, prolog size 102, PerfScore 269.78, instruction count 163, allocated bytes for code 669 (MethodHash=c83889cf) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts)
+; Total bytes of code 2361, prolog size 108, PerfScore 747.74, instruction count 529, allocated bytes for code 2361 (MethodHash=c83889cf) for method System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts)
1602 (253.08 % of base) - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]][],int):this
 ; Assembly listing for method System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]:System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]][],int):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
+; 0 inlinees with PGO data; 9 single block inlinees; 11 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T08] (  6,  5   )     ref  ->  [rbp-0x158]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]>
-;  V01 arg1         [V01,T06] (  5,  6   )     ref  ->  r15         class-hnd single-def <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]][]>
-;  V02 arg2         [V02,T05] (  6,  8   )     int  ->  registers  
-;  V03 loc0         [V03    ] (  5, 12   )  struct (136) [rbp-0xB8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
-;  V04 loc1         [V04,T18] (  2,  4   )  struct (16) [rbp-0xC8]  do-not-enreg[SR] multireg-ret must-init <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
-;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V00 this         [V00,T30] (  6,  5   )     ref  ->  [rbp-0x210]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]>
+;  V01 arg1         [V01,T22] (  5,  6   )     ref  ->  r15         class-hnd single-def <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]][]>
+;  V02 arg2         [V02,T17] (  6,  8   )     int  ->  registers  
+;  V03 loc0         [V03    ] ( 17, 36   )  struct (136) [rbp-0xB8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
+;* V04 loc1         [V04    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
+;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V07 tmp2         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp3         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V09 tmp4         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V10 tmp5         [V10,T03] (  4, 16   )     int  ->  rbx         "impSpillLclRefs"
 ;* V11 tmp6         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V12 tmp7         [V12,T14] (  6,  4   )    long  ->  rax         "Indirect call through function pointer"
+;  V12 tmp7         [V12,T43] (  6,  4   )    long  ->  rax         "Indirect call through function pointer"
 ;* V13 tmp8         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V14 tmp9         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V15 tmp10        [V15    ] (  2,  4   )  struct (136) [rbp-0x150]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
-;* V16 tmp11        [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V17 tmp12        [V17,T25] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V18 tmp13        [V18,T19] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V19 tmp14        [V19,T02] (  2, 32   )    long  ->  rsi         "argument with side effect"
-;  V20 tmp15        [V20,T07] (  2,  8   )    long  ->  rsi         "argument with side effect"
-;  V21 PSPSym       [V21,T22] (  1,  1   )    long  ->  [rbp-0x160]  do-not-enreg[V] "PSPSym"
-;  V22 cse0         [V22,T15] (  3,  4   )    long  ->  r12         "CSE #02: moderate"
-;  V23 cse1         [V23,T04] ( 10, 14   )    long  ->  r14         multi-def "CSE #01: aggressive"
-;  V24 cse2         [V24,T16] (  3,  4   )     int  ->  r13         "CSE #03: moderate"
-;* V25 rat0         [V25,T13] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
-;* V26 rat1         [V26,T20] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V27 rat2         [V27,T09] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V28 rat3         [V28,T17] (  3,  4   )    long  ->  r12         "runtime lookup"
-;  V29 rat4         [V29,T10] (  3,  5.60)    long  ->  r12         "fgMakeTemp is creating a new local variable"
-;* V30 rat5         [V30,T21] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;  V31 rat6         [V31,T11] (  2,  4   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;  V32 rat7         [V32,T01] (  3, 32   )    long  ->  rsi         "runtime lookup"
-;  V33 rat8         [V33,T00] (  3, 44.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
-;  V34 rat9         [V34,T12] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V35 rat10        [V35,T23] (  3,  0   )    long  ->  rdi         "Spilling to split statement for tree"
-;  V36 rat11        [V36,T24] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V15 tmp10        [V15    ] (  5, 10   )  struct (136) [rbp-0x140]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
+;  V16 tmp11        [V16,T41] (  3,  4.40)    long  ->  rdi         "spilling helperCall"
+;  V17 tmp12        [V17,T31] (  4,  7   )     ref  ->  [rbp-0x218]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V18 tmp13        [V18    ] ( 14, 20   )  struct (32) [rbp-0x160]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;* V19 tmp14        [V19    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V20 tmp15        [V20    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref   
+;* V22 tmp17        [V22    ] (  0,  0   )   byref  ->  zero-ref   
+;* V23 tmp18        [V23    ] (  0,  0   )     int  ->  zero-ref   
+;  V24 tmp19        [V24,T40] (  6,  5.40)    long  ->  [rbp-0x168]  spill-single-def "Inlining Arg"
+;* V25 tmp20        [V25    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V26 tmp21        [V26    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V27 tmp22        [V27,T61] (  2,  2   )  struct (32) [rbp-0x188]  do-not-enreg[S] must-init "impAppendStmt" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V28 tmp23        [V28,T51] (  3,  3   )     ref  ->  [rbp-0x220]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;* V29 tmp24        [V29    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V30 tmp25        [V30    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V31 tmp26        [V31,T49] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;* V32 tmp27        [V32,T71] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V33 tmp28        [V33    ] (  3,  3   )  struct (32) [rbp-0x1A8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V34 tmp29        [V34,T50] (  5,  3.40)    long  ->  [rbp-0x1B0]  spill-single-def "Inlining Arg"
+;* V35 tmp30        [V35    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V36 tmp31        [V36,T62] (  2,  2   )    long  ->  rsi         "Indirect call through function pointer"
+;* V37 tmp32        [V37    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V38 tmp33        [V38    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V39 tmp34        [V39,T63] (  2,  2   )    long  ->  rdx         "Indirect call through function pointer"
+;  V40 tmp35        [V40,T60] (  2,  2   )     ref  ->  [rbp-0x228]  class-hnd exact spill-single-def "non-inline candidate call" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V41 tmp36        [V41,T64] (  2,  2   )     int  ->  rax         "Inlining Arg"
+;  V42 tmp37        [V42,T21] (  3,  8.80)    long  ->  [rbp-0x1B8]  spill-single-def "Inlining Arg"
+;* V43 tmp38        [V43    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V44 tmp39        [V44,T18] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;  V45 tmp40        [V45,T06] (  5, 13.60)    long  ->  [rbp-0x1C0]  spill-single-def "Inlining Arg"
+;* V46 tmp41        [V46    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V47 tmp42        [V47,T19] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V48 tmp43        [V48    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V49 tmp44        [V49    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V50 tmp45        [V50,T23] (  3,  8   )    long  ->   r9         "Indirect call through function pointer"
+;  V51 tmp46        [V51,T07] (  3, 12   )     ref  ->  [rbp-0x230]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V52 tmp47        [V52,T33] (  3,  6   )     int  ->  rsi         "Inline stloc first use temp"
+;  V53 tmp48        [V53,T34] (  3,  6   )  struct (16) [rbp-0x1D0]  do-not-enreg[S] must-init "Inline stloc first use temp" <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
+;* V54 tmp49        [V54    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V55 tmp50        [V55    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V56 tmp51        [V56,T73] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;* V57 tmp52        [V57    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V58 tmp53        [V58,T74] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;  V59 tmp54        [V59,T05] (  6, 13.60)    long  ->  [rbp-0x1D8]  "Inlining Arg"
+;* V60 tmp55        [V60    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V61 tmp56        [V61,T20] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V62 tmp57        [V62    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V63 tmp58        [V63    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V64 tmp59        [V64,T24] (  3,  8   )    long  ->   r8         "Indirect call through function pointer"
+;  V65 tmp60        [V65,T08] (  3, 12   )     ref  ->  [rbp-0x238]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V66 tmp61        [V66,T27] (  2,  8   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]>
+;  V67 tmp62        [V67    ] (  7,  7.50)     ref  ->  [rbp-0x160]  do-not-enreg[X] addr-exposed "field V18._root (fldOffset=0x0)" P-DEP
+;  V68 tmp63        [V68    ] (  9,  8   )     ref  ->  [rbp-0x158]  do-not-enreg[X] addr-exposed "field V18._stack (fldOffset=0x8)" P-DEP
+;  V69 tmp64        [V69    ] (  5,  6   )     ref  ->  [rbp-0x150]  do-not-enreg[X] addr-exposed "field V18._current (fldOffset=0x10)" P-DEP
+;  V70 tmp65        [V70    ] (  5,  6   )     int  ->  [rbp-0x148]  do-not-enreg[X] addr-exposed "field V18._poolUserId (fldOffset=0x18)" P-DEP
+;  V71 tmp66        [V71,T77] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V72 tmp67        [V72,T65] (  2,  2   )    long  ->  rdi         "argument with side effect"
+;  V73 tmp68        [V73,T66] (  2,  2   )    long  ->  [rbp-0x1E0]  spill-single-def "argument with side effect"
+;  V74 tmp69        [V74,T02] (  2, 32   )    long  ->  rsi         "argument with side effect"
+;  V75 tmp70        [V75,T28] (  2,  8   )    long  ->  [rbp-0x1E8]  spill-single-def "argument with side effect"
+;  V76 tmp71        [V76,T29] (  2,  8   )    long  ->  [rbp-0x1F0]  spill-single-def "argument with side effect"
+;  V77 PSPSym       [V77,T72] (  1,  1   )    long  ->  [rbp-0x248]  do-not-enreg[V] "PSPSym"
+;  V78 cse0         [V78,T44] (  3,  4   )    long  ->  r12         "CSE #04: moderate"
+;  V79 cse1         [V79,T45] (  3,  4   )    long  ->  [rbp-0x1F8]  spill-single-def "CSE #05: moderate"
+;  V80 cse2         [V80,T69] (  3,  1.50)    long  ->  [rbp-0x200]  spill-single-def "CSE #02: conservative"
+;  V81 cse3         [V81,T70] (  3,  1.50)    long  ->  [rbp-0x208]  spill-single-def "CSE #03: conservative"
+;  V82 cse4         [V82,T04] ( 10, 14   )    long  ->  r14         multi-def "CSE #01: aggressive"
+;  V83 cse5         [V83,T46] (  3,  4   )     int  ->  r13         "CSE #09: moderate"
+;  V84 cse6         [V84,T32] (  3,  6   )     ref  ->  rdi         "CSE #08: moderate"
+;* V85 rat0         [V85,T42] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;* V86 rat1         [V86,T67] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V87 rat2         [V87,T35] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V88 rat3         [V88,T47] (  3,  4   )    long  ->  r12         "runtime lookup"
+;  V89 rat4         [V89,T36] (  3,  5.60)    long  ->  r12         "fgMakeTemp is creating a new local variable"
+;  V90 rat5         [V90,T48] (  3,  4   )    long  ->  registers   "runtime lookup"
+;  V91 rat6         [V91,T37] (  3,  5.60)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V92 rat7         [V92,T56] (  3,  2   )    long  ->  registers   "runtime lookup"
+;  V93 rat8         [V93,T52] (  3,  2.80)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V94 rat9         [V94,T57] (  3,  2   )    long  ->  registers   "runtime lookup"
+;  V95 rat10        [V95,T53] (  3,  2.80)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V96 rat11        [V96,T58] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V97 rat12        [V97,T54] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V98 rat13        [V98,T59] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V99 rat14        [V99,T55] (  3,  2.80)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V100 rat15       [V100,T68] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V101 rat16       [V101,T38] (  2,  4   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V102 rat17       [V102,T09] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V103 rat18       [V103,T10] (  3, 11.20)    long  ->   r9         "fgMakeTemp is creating a new local variable"
+;  V104 rat19       [V104,T25] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V105 rat20       [V105,T11] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V106 rat21       [V106,T12] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V107 rat22       [V107,T13] (  3, 11.20)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V108 rat23       [V108,T14] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V109 rat24       [V109,T15] (  3, 11.20)    long  ->   r8         "fgMakeTemp is creating a new local variable"
+;  V110 rat25       [V110,T26] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V111 rat26       [V111,T16] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V112 rat27       [V112,T01] (  3, 32   )    long  ->  rsi         "runtime lookup"
+;  V113 rat28       [V113,T00] (  3, 44.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
+;  V114 rat29       [V114,T39] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V115 rat30       [V115,T75] (  3,  0   )    long  ->  rdi         "Spilling to split statement for tree"
+;  V116 rat31       [V116,T76] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 312
+; Lcl frame size = 600
 
 G_M38674_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 312
-       lea      rbp, [rsp+0x160]
+       sub      rsp, 600
+       lea      rbp, [rsp+0x280]
        vxorps   xmm8, xmm8, xmm8
-       mov      rax, -288
+       vmovdqa  xmmword ptr [rbp-0x1D0], xmm8
+       vmovdqa  xmmword ptr [rbp-0x1C0], xmm8
+       mov      rax, -384
        vmovdqa  xmmword ptr [rbp+rax-0x30], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x20], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x10], xmm8
        add      rax, 48
        jne      SHORT  -5 instr
-       mov      qword ptr [rbp-0x160], rsp
+       mov      qword ptr [rbp-0x248], rsp
        mov      qword ptr [rbp-0x30], rdi
-       mov      gword ptr [rbp-0x158], rdi
+       mov      gword ptr [rbp-0x210], rdi
        mov      r15, rsi
        mov      ebx, edx
        mov      rdx, rdi
-						;; size=90 bbWeight=1 PerfScore 18.33
+						;; size=106 bbWeight=1 PerfScore 22.33
 G_M38674_IG02:
        mov      r14, qword ptr [rdx]
        test     r15, r15
-       je       G_M38674_IG18
+       je       G_M38674_IG73
        test     ebx, ebx
-       jl       G_M38674_IG19
+       jl       G_M38674_IG74
        mov      r13d, dword ptr [r15+0x08]
        mov      edi, ebx
        add      edi, dword ptr [rdx+0x18]
        cmp      r13d, edi
-       jl       G_M38674_IG19
+       jl       G_M38674_IG74
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      r12, qword ptr [rdi+0xB8]
        test     r12, r12
        je       SHORT G_M38674_IG04
 						;; size=57 bbWeight=1 PerfScore 18.25
 G_M38674_IG03:
        jmp      SHORT G_M38674_IG05
 						;; size=2 bbWeight=0.80 PerfScore 1.60
 G_M38674_IG04:
        mov      rdi, r14
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      r12, rax
 						;; size=21 bbWeight=0.20 PerfScore 0.35
 G_M38674_IG05:
-       mov      rsi, r12
-       mov      rdx, gword ptr [rbp-0x158]
-       mov      rdx, gword ptr [rdx+0x08]
-       lea      rdi, [rbp-0x150]
-       xor      rcx, rcx
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]):this
-       call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]):this
+       mov      rdi, r12
+       mov      rdx, gword ptr [rbp-0x210]
+       mov      rax, gword ptr [rdx+0x08]
+       mov      gword ptr [rbp-0x218], rax
+       xor      rsi, rsi
+       mov      gword ptr [rbp-0x140], rsi
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rcx, qword ptr [rsi+0x18]
+       test     rcx, rcx
+       je       SHORT G_M38674_IG07
+						;; size=46 bbWeight=1 PerfScore 12.75
+G_M38674_IG06:
+       jmp      SHORT G_M38674_IG08
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M38674_IG07:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rcx, rax
+						;; size=18 bbWeight=0.20 PerfScore 0.30
+G_M38674_IG08:
+       mov      qword ptr [rbp-0x1F8], rcx
+       mov      qword ptr [rbp-0x168], rcx
+       mov      rax, gword ptr [rbp-0x218]
+       test     rax, rax
+       je       G_M38674_IG75
+       mov      gword ptr [rbp-0x160], rax
+       xor      rsi, rsi
+       mov      gword ptr [rbp-0x150], rsi
+       mov      rsi, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool:NewId():int
+       call     [rsi]System.Collections.Immutable.SecureObjectPool:NewId():int
+       mov      dword ptr [rbp-0x148], eax
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x158], rdi
+       mov      rdi, gword ptr [rbp-0x160]
+       cmp      gword ptr [rdi+0x08], 0
+       je       G_M38674_IG28
+						;; size=91 bbWeight=1 PerfScore 17.00
+G_M38674_IG09:
+       mov      rax, qword ptr [rbp-0x168]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rcx, qword ptr [rdi+0x18]
+       test     rcx, rcx
+       je       SHORT G_M38674_IG11
+						;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M38674_IG10:
+       jmp      SHORT G_M38674_IG12
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M38674_IG11:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rcx, rax
+       mov      rax, qword ptr [rbp-0x168]
+						;; size=28 bbWeight=0.10 PerfScore 0.28
+G_M38674_IG12:
+       mov      rdi, rcx
+       mov      qword ptr [rbp-0x208], rdi
+       mov      rcx, rdi
+       mov      qword ptr [rbp-0x1B0], rcx
+						;; size=20 bbWeight=0.50 PerfScore 1.25
+G_M38674_IG13:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x160]
+       vmovdqu  ymmword ptr [rbp-0x1A8], ymm0
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M38674_IG14:
+       mov      rsi, qword ptr [rcx+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rdx, qword ptr [rsi+0x18]
+       test     rdx, rdx
+       je       SHORT G_M38674_IG16
+						;; size=16 bbWeight=0.50 PerfScore 3.62
+G_M38674_IG15:
+       jmp      SHORT G_M38674_IG17
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M38674_IG16:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdx, rax
+						;; size=21 bbWeight=0.10 PerfScore 0.18
+G_M38674_IG17:
+       mov      qword ptr [rbp-0x200], rdx
+       mov      rsi, rdx
+       lea      rdi, [rbp-0x1A8]
+       call     rsi
+       cmp      eax, -1
+       je       SHORT G_M38674_IG21
+       mov      rdi, qword ptr [rbp-0x1B0]
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rax, qword ptr [rsi+0x20]
+       test     rax, rax
+       je       SHORT G_M38674_IG19
+						;; size=47 bbWeight=0.50 PerfScore 7.12
+G_M38674_IG18:
+       mov      rdi, rax
+       jmp      SHORT G_M38674_IG20
+						;; size=5 bbWeight=0.40 PerfScore 0.90
+G_M38674_IG19:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=18 bbWeight=0.10 PerfScore 0.15
+G_M38674_IG20:
+       lea      rsi, [rbp-0x158]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       call     [rax]System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       test     eax, eax
+       je       SHORT G_M38674_IG21
+       mov      rdx, qword ptr [rbp-0x200]
+       mov      rax, gword ptr [rbp-0x158]
+       mov      gword ptr [rbp-0x228], rax
+       lea      rdi, [rbp-0x1A8]
+       call     rdx
+       mov      rdi, gword ptr [rbp-0x228]
+       mov      dword ptr [rdi+0x10], eax
+       jmp      G_M38674_IG27
+						;; size=68 bbWeight=0.50 PerfScore 7.75
+G_M38674_IG21:
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x158], rdi
+						;; size=9 bbWeight=0.50 PerfScore 0.62
+G_M38674_IG22:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x160]
+       vmovdqu  ymmword ptr [rbp-0x188], ymm0
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M38674_IG23:
+       mov      rax, qword ptr [rbp-0x168]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M38674_IG25
+						;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M38674_IG24:
+       jmp      SHORT G_M38674_IG26
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M38674_IG25:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.10 PerfScore 0.18
+G_M38674_IG26:
+       call     CORINFO_HELP_NEWSFAST
+       mov      gword ptr [rbp-0x220], rax
+       mov      rsi, gword ptr [rbp-0x218]
+       movzx    rsi, byte  ptr [rsi+0x1D]
+       mov      rdi, rax
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       call     [rcx]System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       mov      rdi, qword ptr [rbp-0x208]
+       mov      qword ptr [rbp-0x1E0], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x188]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1E0]
+       mov      rsi, gword ptr [rbp-0x220]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       call     [rax]System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       mov      gword ptr [rbp-0x158], rax
+						;; size=146 bbWeight=0.50 PerfScore 14.62
+G_M38674_IG27:
+       lea      rdi, [rbp-0x160]
+       mov      rsi, qword ptr [rbp-0x168]
+       mov      rdx, gword ptr [rbp-0x160]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]):this
+       call     [rax]System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]):this
+						;; size=33 bbWeight=0.50 PerfScore 2.88
+G_M38674_IG28:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x160]
+       vmovdqu  ymmword ptr [rbp-0x130], ymm0
+						;; size=16 bbWeight=1 PerfScore 5.00
+G_M38674_IG29:
+       vxorps   ymm0, ymm0, ymm0
+       vmovdqu  ymmword ptr [rbp-0x110], ymm0
+       vmovdqu  ymmword ptr [rbp-0xF0], ymm0
+       vmovdqu  ymmword ptr [rbp-0xD8], ymm0
+       mov      dword ptr [rbp-0x138], -1
        lea      rdi, bword ptr [rbp-0xB8]
-       lea      rsi, bword ptr [rbp-0x150]
+       lea      rsi, bword ptr [rbp-0x140]
        mov      ecx, 17
        rep movsq 
-						;; size=57 bbWeight=1 PerfScore 33.50
-G_M38674_IG06:
+						;; size=60 bbWeight=1 PerfScore 30.58
+G_M38674_IG30:
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rdi, qword ptr [rdi+0xB8]
        test     rdi, rdi
-       jne      SHORT G_M38674_IG08
-       jmp      SHORT G_M38674_IG08
-						;; size=21 bbWeight=1 PerfScore 9.25
-G_M38674_IG07:
-       mov      rsi, r12
-       lea      rdi, [rbp-0xB8]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:get_Current():System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]:this
-       call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:get_Current():System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]:this
-       mov      gword ptr [rbp-0xC8], rax
-       mov      qword ptr [rbp-0xC0], rdx
+       jne      G_M38674_IG55
+       jmp      G_M38674_IG55
+						;; size=28 bbWeight=1 PerfScore 9.25
+G_M38674_IG31:
+       mov      qword ptr [rbp-0x1B8], r12
+       mov      rcx, qword ptr [rbp-0x1F8]
+       mov      rdx, rcx
+       mov      qword ptr [rbp-0x1C0], rdx
+       cmp      gword ptr [rbp-0xA8], 0
+       je       G_M38674_IG38
+       cmp      gword ptr [rbp-0xA0], 0
+       je       G_M38674_IG42
+       mov      rdi, qword ptr [rdx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x30]
+       test     rdi, rdi
+       je       SHORT G_M38674_IG33
+						;; size=68 bbWeight=2 PerfScore 33.00
+G_M38674_IG32:
+       jmp      SHORT G_M38674_IG34
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M38674_IG33:
+       mov      rdi, rdx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       mov      rdx, qword ptr [rbp-0x1C0]
+						;; size=28 bbWeight=0.40 PerfScore 1.10
+G_M38674_IG34:
+       mov      r8, gword ptr [rbp-0xA0]
+       mov      gword ptr [rbp-0x230], r8
+       cmp      byte  ptr [r8], r8b
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      r9, qword ptr [rsi+0x10]
+       test     r9, r9
+       je       SHORT G_M38674_IG36
+						;; size=30 bbWeight=2 PerfScore 20.50
+G_M38674_IG35:
+       jmp      SHORT G_M38674_IG37
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M38674_IG36:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      r9, rax
+						;; size=18 bbWeight=0.40 PerfScore 0.60
+G_M38674_IG37:
+       lea      rdi, [rbp-0xA8]
+       call     r9
+       mov      rdi, gword ptr [rbp-0x230]
+       cmp      eax, dword ptr [rdi+0x10]
+       mov      rdx, qword ptr [rbp-0x1C0]
+       je       G_M38674_IG42
+						;; size=33 bbWeight=2 PerfScore 19.00
+G_M38674_IG38:
+       mov      rdi, qword ptr [rdx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x28]
+       test     rdi, rdi
+       je       SHORT G_M38674_IG40
+						;; size=16 bbWeight=2 PerfScore 14.50
+G_M38674_IG39:
+       jmp      SHORT G_M38674_IG41
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M38674_IG40:
+       mov      rdi, rdx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M38674_IG41:
+       mov      qword ptr [rbp-0x1E8], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0xA8]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1E8]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]])
+       call     [rcx]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]])
+						;; size=86 bbWeight=2 PerfScore 35.50
+G_M38674_IG42:
+       mov      rax, qword ptr [rbp-0x1B8]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M38674_IG44
+						;; size=23 bbWeight=2 PerfScore 16.50
+G_M38674_IG43:
+       jmp      SHORT G_M38674_IG45
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M38674_IG44:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M38674_IG45:
+       mov      esi, dword ptr [rbp-0x88]
+       cmp      esi, 1
+       je       G_M38674_IG60
+       cmp      esi, 2
+       jne      G_M38674_IG59
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rax, qword ptr [rsi+0x18]
+       test     rax, rax
+       je       G_M38674_IG62
+						;; size=44 bbWeight=2 PerfScore 21.50
+G_M38674_IG46:
+       cmp      gword ptr [rbp-0x60], 0
+       je       SHORT G_M38674_IG50
+       cmp      gword ptr [rbp-0x58], 0
+       je       G_M38674_IG52
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       G_M38674_IG63
+						;; size=38 bbWeight=2 PerfScore 26.50
+G_M38674_IG47:
+       mov      rdx, gword ptr [rbp-0x58]
+       mov      gword ptr [rbp-0x238], rdx
+       cmp      byte  ptr [rdx], dl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      r8, qword ptr [rsi+0x10]
+       test     r8, r8
+       je       G_M38674_IG64
+						;; size=30 bbWeight=2 PerfScore 20.50
+G_M38674_IG48:
+       mov      qword ptr [rbp-0x1D8], rax
+						;; size=7 bbWeight=1.60 PerfScore 1.60
+G_M38674_IG49:
+       lea      rdi, [rbp-0x68]
+       call     r8
+       mov      rdi, gword ptr [rbp-0x238]
+       cmp      eax, dword ptr [rdi+0x10]
+       mov      rax, qword ptr [rbp-0x1D8]
+       je       SHORT G_M38674_IG52
+						;; size=26 bbWeight=2 PerfScore 19.00
+G_M38674_IG50:
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x10]
+       test     rdi, rdi
+       je       G_M38674_IG65
+						;; size=20 bbWeight=2 PerfScore 14.50
+G_M38674_IG51:
+       mov      qword ptr [rbp-0x1F0], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x68]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1F0]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]])
+       call     [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]])
+						;; size=103 bbWeight=2 PerfScore 46.50
+G_M38674_IG52:
+       mov      rdi, gword ptr [rbp-0x50]
+       test     rdi, rdi
+       je       SHORT G_M38674_IG58
+						;; size=9 bbWeight=2 PerfScore 4.50
+G_M38674_IG53:
+       vmovdqu  xmm0, xmmword ptr [rdi+0x20]
+       vmovdqu  xmmword ptr [rbp-0x1D0], xmm0
+						;; size=13 bbWeight=2 PerfScore 10.00
+G_M38674_IG54:
        lea      edi, [rbx+0x01]
        mov      edx, edi
        cmp      ebx, r13d
-       jae      SHORT G_M38674_IG11
+       jae      G_M38674_IG66
        mov      edi, ebx
        shl      rdi, 4
        lea      rdi, bword ptr [r15+rdi+0x10]
-       lea      rsi, bword ptr [rbp-0xC8]
+       lea      rsi, bword ptr [rbp-0x1D0]
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
        mov      ebx, edx
-						;; size=73 bbWeight=2 PerfScore 25.00
-G_M38674_IG08:
+						;; size=41 bbWeight=2 PerfScore 13.00
+G_M38674_IG55:
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rsi, qword ptr [rdi+0xB8]
        test     rsi, rsi
-       je       SHORT G_M38674_IG12
-						;; size=19 bbWeight=8 PerfScore 58.00
-G_M38674_IG09:
+       je       G_M38674_IG67
+						;; size=23 bbWeight=8 PerfScore 58.00
+G_M38674_IG56:
        lea      rdi, [rbp-0xB8]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this
        call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this
        test     eax, eax
-       jne      SHORT G_M38674_IG07
-						;; size=23 bbWeight=8 PerfScore 40.00
-G_M38674_IG10:
-       jmp      SHORT G_M38674_IG13
-						;; size=2 bbWeight=1 PerfScore 2.00
-G_M38674_IG11:
+       jne      G_M38674_IG31
+						;; size=27 bbWeight=8 PerfScore 40.00
+G_M38674_IG57:
+       jmp      G_M38674_IG68
+						;; size=5 bbWeight=1 PerfScore 2.00
+G_M38674_IG58:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M38674_IG59:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M38674_IG60:
+       vmovdqu  xmm0, xmmword ptr [rbp-0x78]
+       vmovdqu  xmmword ptr [rbp-0x1D0], xmm0
+						;; size=13 bbWeight=2 PerfScore 8.00
+G_M38674_IG61:
+       jmp      G_M38674_IG54
+						;; size=5 bbWeight=2 PerfScore 4.00
+G_M38674_IG62:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       jmp      G_M38674_IG46
+						;; size=20 bbWeight=0.40 PerfScore 1.30
+G_M38674_IG63:
+       mov      qword ptr [rbp-0x1D8], rax
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       mov      rax, qword ptr [rbp-0x1D8]
+       jmp      G_M38674_IG47
+						;; size=40 bbWeight=0.40 PerfScore 2.30
+G_M38674_IG64:
+       mov      qword ptr [rbp-0x1D8], rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      r8, rax
+       jmp      G_M38674_IG49
+						;; size=30 bbWeight=0.40 PerfScore 1.80
+G_M38674_IG65:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M38674_IG51
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M38674_IG66:
        call     CORINFO_HELP_RNGCHKFAIL
 						;; size=5 bbWeight=0 PerfScore 0.00
-G_M38674_IG12:
+G_M38674_IG67:
        mov      rdi, r14
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rsi, rax
-       jmp      SHORT G_M38674_IG09
-						;; size=23 bbWeight=1.60 PerfScore 6.00
-G_M38674_IG13:
+       jmp      G_M38674_IG56
+						;; size=26 bbWeight=1.60 PerfScore 6.00
+G_M38674_IG68:
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rax, qword ptr [rdi+0xC8]
        test     rax, rax
-       je       SHORT G_M38674_IG15
+       je       SHORT G_M38674_IG70
 						;; size=19 bbWeight=1 PerfScore 7.25
-G_M38674_IG14:
-       jmp      SHORT G_M38674_IG16
+G_M38674_IG69:
+       jmp      SHORT G_M38674_IG71
 						;; size=2 bbWeight=0.80 PerfScore 1.60
-G_M38674_IG15:
+G_M38674_IG70:
        mov      rdi, r14
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=18 bbWeight=0.20 PerfScore 0.30
-G_M38674_IG16:
+G_M38674_IG71:
        lea      rdi, [rbp-0xB8]
        call     rax
        nop      
 						;; size=10 bbWeight=1 PerfScore 3.75
-G_M38674_IG17:
-       add      rsp, 312
+G_M38674_IG72:
+       vzeroupper 
+       add      rsp, 600
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=1 PerfScore 4.25
-G_M38674_IG18:
+						;; size=21 bbWeight=1 PerfScore 5.25
+G_M38674_IG73:
        mov      edi, 0x497
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
-G_M38674_IG19:
+G_M38674_IG74:
        mov      edi, 0x4A3
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        xor      rsi, rsi
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailRange(System.String,System.String)
        call     [rax]System.Collections.Immutable.Requires:FailRange(System.String,System.String)
        int3     
 						;; size=38 bbWeight=0 PerfScore 0.00
-G_M38674_IG20:
+G_M38674_IG75:
+       mov      edi, 0x45F
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M38674_IG76:
        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+0x160]
-						;; size=25 bbWeight=0 PerfScore 0.00
-G_M38674_IG21:
-       mov      rdx, gword ptr [rbp-0x158]
+       sub      rsp, 72
+       mov      rbp, qword ptr [rdi+0x38]
+       mov      qword ptr [rsp+0x38], rbp
+       lea      rbp, [rbp+0x280]
+						;; size=30 bbWeight=0 PerfScore 0.00
+G_M38674_IG77:
+       mov      rdx, gword ptr [rbp-0x210]
        mov      r14, qword ptr [rdx]
        mov      rdi, r14
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      rax, qword ptr [rsi+0xC8]
        test     rax, rax
-       je       SHORT G_M38674_IG22
-       jmp      SHORT G_M38674_IG23
+       je       SHORT G_M38674_IG78
+       jmp      SHORT G_M38674_IG79
 						;; size=34 bbWeight=0 PerfScore 0.00
-G_M38674_IG22:
+G_M38674_IG78:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=15 bbWeight=0 PerfScore 0.00
-G_M38674_IG23:
+G_M38674_IG79:
        lea      rdi, [rbp-0xB8]
        call     rax
        nop      
 						;; size=10 bbWeight=0 PerfScore 0.00
-G_M38674_IG24:
-       add      rsp, 8
+G_M38674_IG80:
+       vzeroupper 
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0 PerfScore 0.00
+						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 633, prolog size 90, PerfScore 229.43, instruction count 159, allocated bytes for code 633 (MethodHash=010268ed) for method System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]:System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]][],int):this (FullOpts)
+; Total bytes of code 2235, prolog size 106, PerfScore 649.77, instruction count 485, allocated bytes for code 2235 (MethodHash=010268ed) for method System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]:System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]][],int):this (FullOpts)
1559 (21.70 % of base) - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this
 ; Assembly listing for method System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 137 single block inlinees; 50 inlinees without PGO data
+; 0 inlinees with PGO data; 173 single block inlinees; 71 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T14] ( 25, 19.50)     ref  ->  r14         this class-hnd single-def <System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]>
-;  V01 arg1         [V01,T00] ( 49,143   )   byref  ->  rbx         single-def
-;  V02 arg2         [V02,T133] (  3,  2.50)     ref  ->  [rbp-0x6B8]  class-hnd single-def <System.Type>
-;  V03 arg3         [V03,T21] ( 13, 19   )     ref  ->  r13         class-hnd single-def <System.Text.Json.JsonSerializerOptions>
-;  V04 arg4         [V04,T01] ( 76, 74   )   byref  ->  r15         single-def
-;  V05 arg5         [V05,T100] (  9,  5.50)   byref  ->  [rbp-0x6C0]  single-def
-;  V06 loc0         [V06,T99] ( 13,  7.50)     ref  ->  [rbp-0x6C8]  class-hnd spill-single-def <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
-;  V07 loc1         [V07,T43] ( 14, 15.62)     ref  ->  rbx         class-hnd <System.Object>
-;  V08 loc2         [V08,T35] ( 12, 16.50)     ref  ->  [rbp-0x6D0]  class-hnd exact spill-single-def <System.Text.Json.ArgumentState>
+;  V00 this         [V00,T19] ( 24, 19   )     ref  ->  r13         this class-hnd single-def <System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]>
+;  V01 arg1         [V01,T00] ( 72,238.50)   byref  ->  rbx         single-def
+;  V02 arg2         [V02,T160] (  3,  2.50)     ref  ->  [rbp-0x880]  class-hnd single-def <System.Type>
+;  V03 arg3         [V03,T18] ( 14, 24.50)     ref  ->  r14         class-hnd single-def <System.Text.Json.JsonSerializerOptions>
+;  V04 arg4         [V04,T01] ( 82, 86.50)   byref  ->  r15         single-def
+;  V05 arg5         [V05,T117] (  9,  5.50)   byref  ->  [rbp-0x888]  single-def
+;  V06 loc0         [V06,T69] ( 19, 10.50)     ref  ->  [rbp-0x890]  class-hnd spill-single-def <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
+;  V07 loc1         [V07,T51] ( 14, 15.62)     ref  ->  [rbp-0x898]  class-hnd <System.Object>
+;  V08 loc2         [V08,T40] ( 12, 16.50)     ref  ->  [rbp-0x8A0]  class-hnd exact spill-single-def <System.Text.Json.ArgumentState>
 ;* V09 loc3         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ubyte]>
 ;* V10 loc4         [V10    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op <System.Buffers.ReadOnlySequence`1[ubyte]>
-;  V11 loc5         [V11,T202] (  4,  1.62)     ref  ->  [rbp-0x6D8]  class-hnd spill-single-def <System.Object>
-;  V12 loc6         [V12    ] ( 22, 86   )  struct (192) [rbp-0xF0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Text.Json.Utf8JsonReader>
-;  V13 loc7         [V13,T47] (  4, 12.50)     ref  ->  [rbp-0x6E0]  class-hnd exact spill-single-def <System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String][]>
-;  V14 loc8         [V14,T223] (  2,  1   )     ref  ->  r13         class-hnd exact single-def <System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String][]>
-;* V15 loc9         [V15,T232] (  0,  0   )     int  ->  zero-ref   
-;  V16 loc10        [V16,T16] (  8, 24   )     ref  ->  [rbp-0x6E8]  class-hnd spill-single-def <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
-;  V17 loc11        [V17,T29] (  9, 18   )    long  ->  [rbp-0xF8]  spill-single-def
-;  V18 loc12        [V18,T81] (  2,  8   )     ref  ->  [rbp-0x6F0]  class-hnd spill-single-def <ubyte[]>
-;  V19 loc13        [V19,T61] (  3, 10   )     ref  ->  [rbp-0x6F8]  class-hnd spill-single-def <System.String>
-;  V20 loc14        [V20,T63] (  3, 10   )   ubyte  ->  [rbp-0xFC]  spill-single-def
-;  V21 loc15        [V21,T163] (  6,  3   )     ref  ->  [rbp-0x700]  class-hnd spill-single-def <System.Text.Json.Serialization.JsonConverter>
-;  V22 loc16        [V22,T206] (  3,  1.50)   ubyte  ->  r13        
+;  V11 loc5         [V11,T71] (  8, 10.12)     ref  ->  [rbp-0x8A8]  class-hnd spill-single-def <System.Object>
+;  V12 loc6         [V12    ] ( 17, 78   )  struct (192) [rbp-0xF0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Text.Json.Utf8JsonReader>
+;  V13 loc7         [V13,T56] (  4, 12.50)     ref  ->  [rbp-0x8B0]  class-hnd exact spill-single-def <System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String][]>
+;  V14 loc8         [V14,T256] (  2,  1   )     ref  ->  r14         class-hnd exact single-def <System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String][]>
+;* V15 loc9         [V15,T266] (  0,  0   )     int  ->  zero-ref   
+;  V16 loc10        [V16,T21] (  8, 24   )     ref  ->  [rbp-0x8B8]  class-hnd spill-single-def <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
+;  V17 loc11        [V17,T33] (  9, 18   )    long  ->  [rbp-0xF8]  spill-single-def
+;  V18 loc12        [V18,T99] (  2,  8   )     ref  ->  [rbp-0x8C0]  class-hnd spill-single-def <ubyte[]>
+;  V19 loc13        [V19,T75] (  3, 10   )     ref  ->  rbx         class-hnd <System.String>
+;  V20 loc14        [V20,T77] (  3, 10   )   ubyte  ->  [rbp-0xFC]  spill-single-def
+;  V21 loc15        [V21,T197] (  6,  3   )     ref  ->  [rbp-0x8C8]  class-hnd spill-single-def <System.Text.Json.Serialization.JsonConverter>
+;  V22 loc16        [V22,T240] (  3,  1.50)   ubyte  ->  r14        
 ;  V23 loc17        [V23    ] (  2,  1   )     ref  ->  [rbp-0x108]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Object>
-;  V24 loc18        [V24,T224] (  2,  1   )     ref  ->  rsi         class-hnd single-def <System.Object>
-;  V25 loc19        [V25,T225] (  2,  1   )     ref  ->  r13         class-hnd exact single-def <System.ValueTuple`3[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Object,System.String][]>
-;* V26 loc20        [V26,T233] (  0,  0   )     int  ->  zero-ref   
-;  V27 loc21        [V27,T30] (  8, 18   )     ref  ->  [rbp-0x708]  class-hnd spill-single-def <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
-;  V28 loc22        [V28,T34] (  8, 17   )     ref  ->  [rbp-0x710]  class-hnd spill-single-def <System.Object>
-;  V29 loc23        [V29,T49] (  4, 12   )     ref  ->  [rbp-0x718]  class-hnd spill-single-def <System.String>
+;  V24 loc18        [V24,T257] (  2,  1   )     ref  ->  rsi         class-hnd single-def <System.Object>
+;  V25 loc19        [V25,T258] (  2,  1   )     ref  ->  r14         class-hnd exact single-def <System.ValueTuple`3[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Object,System.String][]>
+;* V26 loc20        [V26,T267] (  0,  0   )     int  ->  zero-ref   
+;  V27 loc21        [V27,T34] (  8, 18   )     ref  ->  [rbp-0x8D0]  class-hnd spill-single-def <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
+;  V28 loc22        [V28,T39] (  8, 17   )     ref  ->  [rbp-0x8D8]  class-hnd spill-single-def <System.Object>
+;  V29 loc23        [V29,T58] (  4, 12   )     ref  ->  [rbp-0x8E0]  class-hnd spill-single-def <System.String>
 ;* V30 loc24        [V30    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
-;  V31 loc25        [V31,T101] (  3,  6   )     ref  ->  r12         class-hnd <System.Object>
-;  V32 loc26        [V32,T102] (  3,  6   )     ref  ->  [rbp-0x720]  class-hnd spill-single-def <System.Collections.Generic.IDictionary`2[System.String,System.Text.Json.JsonElement]>
+;  V31 loc25        [V31,T118] (  3,  6   )     ref  ->  r12         class-hnd <System.Object>
+;  V32 loc26        [V32,T119] (  3,  6   )     ref  ->  [rbp-0x8E8]  class-hnd spill-single-def <System.Collections.Generic.IDictionary`2[System.String,System.Text.Json.JsonElement]>
 ;  V33 OutArgs      [V33    ] (  1,  1   )  struct (80) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V34 tmp1         [V34    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
 ;* V35 tmp2         [V35    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V36 tmp3         [V36,T207] (  2,  1   )     int  ->  rax        
-;  V37 tmp4         [V37,T136] (  4,  4   )     ref  ->  rcx         class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+;  V36 tmp3         [V36,T241] (  2,  1   )     int  ->  rax        
+;  V37 tmp4         [V37,T164] (  4,  4   )     ref  ->  rdx         class-hnd single-def "dup spill" <System.Action`1[System.Object]>
 ;* V38 tmp5         [V38    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V39 tmp6         [V39,T137] (  4,  4   )     ref  ->  rdx         class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+;  V39 tmp6         [V39,T165] (  4,  4   )     ref  ->   r8         class-hnd single-def "dup spill" <System.Action`1[System.Object]>
 ;* V40 tmp7         [V40    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V41 tmp8         [V41    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V42 tmp9         [V42,T138] (  4,  4   )     ref  ->  rcx         class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+;  V42 tmp9         [V42,T166] (  4,  4   )     ref  ->  rcx         class-hnd single-def "dup spill" <System.Action`1[System.Object]>
 ;* V43 tmp10        [V43    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V44 tmp11        [V44    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V45 tmp12        [V45    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
 ;* V46 tmp13        [V46    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V47 tmp14        [V47,T208] (  2,  1   )     int  ->  rax        
-;  V48 tmp15        [V48,T139] (  4,  4   )     ref  ->  rcx         class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+;  V47 tmp14        [V47,T242] (  2,  1   )     int  ->  rax        
+;  V48 tmp15        [V48,T167] (  4,  4   )     ref  ->  rdx         class-hnd single-def "dup spill" <System.Action`1[System.Object]>
 ;* V49 tmp16        [V49    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;  V50 tmp17        [V50    ] (  3, 12   )  struct (192) [rbp-0x1C8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Text.Json.Utf8JsonReader>
 ;* V51 tmp18        [V51    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-;  V52 tmp19        [V52,T77] (  3,  8   )  struct (192) [rbp-0x288]  do-not-enreg[S] must-init <System.Text.Json.Utf8JsonReader>
+;  V52 tmp19        [V52,T95] (  3,  8   )  struct (192) [rbp-0x288]  do-not-enreg[S] must-init <System.Text.Json.Utf8JsonReader>
 ;* V53 tmp20        [V53    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V54 tmp21        [V54    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V55 tmp22        [V55    ] (  3, 12   )  struct (192) [rbp-0x348]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Text.Json.Utf8JsonReader>
 ;* V56 tmp23        [V56    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] "spilled call-like call argument" <System.Buffers.ReadOnlySequence`1[ubyte]>
 ;* V57 tmp24        [V57    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V58 tmp25        [V58,T184] (  4,  2   )     ref  ->  rdi         class-hnd "Inline return value spill temp" <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
-;* V59 tmp26        [V59    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
-;* V60 tmp27        [V60    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ubyte]>
-;  V61 tmp28        [V61,T132] (  5,  5   )   byref  ->  rsi         single-def "Inlining Arg"
-;  V62 tmp29        [V62,T209] (  3,  1.50)    long  ->  rdi         "Inline return value spill temp"
-;  V63 tmp30        [V63,T203] (  3,  1.50)     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;  V64 tmp31        [V64,T204] (  3,  1.50)     ref  ->  [rbp-0x728]  class-hnd spill-single-def "Inline stloc first use temp" <System.Object>
-;  V65 tmp32        [V65,T210] (  3,  1.50)     int  ->  [rbp-0x34C]  spill-single-def "Inline stloc first use temp"
-;  V66 tmp33        [V66,T211] (  3,  1.50)     int  ->  [rbp-0x350]  spill-single-def "Inline stloc first use temp"
-;  V67 tmp34        [V67,T226] (  2,  1   )     ref  ->  [rbp-0x730]  class-hnd spill-single-def "Inline stloc first use temp" <System.Buffers.ReadOnlySequenceSegment`1[ubyte]>
-;* V68 tmp35        [V68    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Buffers.ReadOnlySequenceSegment`1[ubyte]>
-;* V69 tmp36        [V69    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
-;* V70 tmp37        [V70    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V58 tmp25        [V58,T220] (  4,  2   )     ref  ->  rdi         class-hnd "Inline return value spill temp" <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
+;  V59 tmp26        [V59,T168] (  4,  4   )     ref  ->  rdx         class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+;* V60 tmp27        [V60    ] (  0,  0   )     ref  ->  zero-ref    single-def
+;* V61 tmp28        [V61    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V62 tmp29        [V62,T169] (  4,  4   )     ref  ->  rcx         class-hnd single-def "dup spill" <System.Action`1[System.Object]>
+;* V63 tmp30        [V63    ] (  0,  0   )     ref  ->  zero-ref    single-def
+;* V64 tmp31        [V64    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
+;* V65 tmp32        [V65    ] (  0,  0   )  struct (16) zero-ref    "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
+;  V66 tmp33        [V66    ] (  2,  8   )   ubyte  ->  [rbp-0x350]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;  V67 tmp34        [V67,T52] (  5, 14   )     ref  ->  [rbp-0x8F0]  class-hnd spill-single-def "Inline stloc first use temp" <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
+;* V68 tmp35        [V68    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V69 tmp36        [V69,T224] (  2,  2   )   byref  ->  [rbp-0x8F8]  spill-single-def "Inlining Arg"
+;  V70 tmp37        [V70,T198] (  3,  3   )     ref  ->  [rbp-0x900]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.BitArray>
 ;* V71 tmp38        [V71    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V72 tmp39        [V72    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V73 tmp40        [V73,T91] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
-;* V74 tmp41        [V74    ] (  0,  0   )  struct (16) zero-ref    "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
-;  V75 tmp42        [V75    ] (  4, 12.50)     ref  ->  [rbp-0x358]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.Json.Serialization.Metadata.JsonParameterInfo>
-;  V76 tmp43        [V76    ] (  1,  4   )   ubyte  ->  [rbp-0x360]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;  V77 tmp44        [V77,T62] (  3, 10   )     ref  ->  [rbp-0x738]  class-hnd spill-single-def "Inline stloc first use temp" <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
-;  V78 tmp45        [V78,T23] ( 10, 20   )     ref  ->  [rbp-0x740]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Text.Json.ArgumentState>
-;  V79 tmp46        [V79,T73] (  4,  8   )     int  ->  [rbp-0x364]  spill-single-def "Inline stloc first use temp"
-;  V80 tmp47        [V80,T50] (  3, 12   )     ref  ->  [rbp-0x748]  class-hnd exact spill-single-def "impAppendStmt" <System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String][]>
-;  V81 tmp48        [V81,T92] (  2,  8   )  struct (56) [rbp-0x3A0]  do-not-enreg[HS] must-init hidden-struct-arg "impAppendStmt" <System.Text.Json.JsonReaderState>
-;  V82 tmp49        [V82,T28] (  5, 20   )  struct (88) [rbp-0x3F8]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String]>
-;  V83 tmp50        [V83,T48] (  6, 12   )     ref  ->  [rbp-0x750]  class-hnd spill-single-def "Inline stloc first use temp" <System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String][]>
-;  V84 tmp51        [V84,T140] (  2,  4   )     ref  ->  [rbp-0x758]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String][]>
-;  V85 tmp52        [V85,T82] (  2,  8   )     ref  ->  rdi         class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String]]>
-;* V86 tmp53        [V86    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V87 tmp54        [V87,T161] (  8,  3   )     ref  ->  [rbp-0x760]  class-hnd spill-single-def "Inline stloc first use temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
-;* V88 tmp55        [V88    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V89 tmp56        [V89    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver>
-;* V90 tmp57        [V90    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.Json.JsonSerializerOptions>
-;* V91 tmp58        [V91    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.Json.JsonPropertyDictionary`1[System.Text.Json.Serialization.Metadata.JsonParameterInfo]>
-;* V92 tmp59        [V92    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
-;  V93 tmp60        [V93,T189] (  2,  2   )   byref  ->  [rbp-0x768]  spill-single-def "Inlining Arg"
-;  V94 tmp61        [V94,T164] (  3,  3   )     ref  ->  [rbp-0x770]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.BitArray>
-;* V95 tmp62        [V95    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V96 tmp63        [V96    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V97 tmp64        [V97    ] (  0,  0   )  struct (16) zero-ref    "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
-;* V98 tmp65        [V98    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
-;  V99 tmp66        [V99    ] (  2,  4   )  struct (24) [rbp-0x410]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.Buffers.ReadOnlySequence`1[ubyte]>
-;* V100 tmp67       [V100    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[ubyte]>
-;* V101 tmp68       [V101    ] (  0,  0   )  struct (16) zero-ref    "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
-;* V102 tmp69       [V102    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]>
-;  V103 tmp70       [V103,T36] (  4, 16   )     ref  ->  rax         class-hnd "Inlining Arg" <ubyte[]>
-;* V104 tmp71       [V104    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V105 tmp72       [V105,T103] (  3,  6   )     ref  ->  rcx         class-hnd "Inline return value spill temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
-;  V106 tmp73       [V106,T37] (  4, 16   )   byref  ->  rdi         "Inlining Arg"
-;* V107 tmp74       [V107    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V108 tmp75       [V108,T235] (  3,  0   )     ref  ->  rdx         class-hnd "Inline return value spill temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
-;  V109 tmp76       [V109,T234] (  4,  0   )   byref  ->  rdi         "Inlining Arg"
-;* V110 tmp77       [V110    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;  V111 tmp78       [V111,T240] (  2,  0   )   byref  ->  r15         "impAppendStmt"
-;* V112 tmp79       [V112    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
-;  V113 tmp80       [V113,T236] (  3,  0   )     ref  ->  rsi         class-hnd "Inline return value spill temp" <ubyte[]>
-;  V114 tmp81       [V114,T237] (  3,  0   )     ref  ->  r13         class-hnd exact "Inline stloc first use temp" <ubyte[]>
-;  V115 tmp82       [V115,T241] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
-;* V116 tmp83       [V116    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V117 tmp84       [V117,T248] (  2,  0   )    long  ->  rdx         "Inlining Arg"
-;* V118 tmp85       [V118    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;  V119 tmp86       [V119,T242] (  2,  0   )   byref  ->  rbx         "impAppendStmt"
-;  V120 tmp87       [V120    ] (  2,  0   )  struct (192) [rbp-0x4D0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.Text.Json.Utf8JsonReader>
-;  V121 tmp88       [V121,T243] (  2,  0   )   byref  ->  r13         "impAppendStmt"
-;* V122 tmp89       [V122    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V123 tmp90       [V123    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
-;  V124 tmp91       [V124,T238] (  3,  0   )     ref  ->  rsi         class-hnd "Inline return value spill temp" <ubyte[]>
-;  V125 tmp92       [V125,T239] (  3,  0   )     ref  ->  r15         class-hnd exact "Inline stloc first use temp" <ubyte[]>
-;  V126 tmp93       [V126,T244] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
-;* V127 tmp94       [V127    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V128 tmp95       [V128,T249] (  2,  0   )    long  ->  rdx         "Inlining Arg"
-;* V129 tmp96       [V129    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V130 tmp97       [V130    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
-;  V131 tmp98       [V131,T64] (  3, 10   )     int  ->  rax         "Inline stloc first use temp"
-;  V132 tmp99       [V132,T65] (  3, 10   )   ubyte  ->  rdi         "Inline stloc first use temp"
-;* V133 tmp100      [V133,T142] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V134 tmp101      [V134,T02] (  5, 40   )   byref  ->  rsi         "Inlining Arg"
-;* V135 tmp102      [V135    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V136 tmp103      [V136,T40] (  2, 16   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Text.Json.Serialization.Metadata.JsonParameterInfo>
-;* V137 tmp104      [V137    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V138 tmp105      [V138,T143] (  2,  4   )  struct (192) [rbp-0x590]  do-not-enreg[S] must-init "Inline stloc first use temp" <System.Text.Json.Utf8JsonReader>
-;* V139 tmp106      [V139    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V140 tmp107      [V140,T108] (  3,  6   )   ubyte  ->  rax         "Inline stloc first use temp"
-;* V141 tmp108      [V141,T144] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V142 tmp109      [V142,T31] (  2, 18   )     int  ->  [rbp-0x594]  spill-single-def "Inline stloc first use temp"
+;* V73 tmp40        [V73    ] (  0,  0   )  struct (16) zero-ref    "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
+;* V74 tmp41        [V74    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
+;  V75 tmp42        [V75    ] (  2,  4   )  struct (24) [rbp-0x368]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.Buffers.ReadOnlySequence`1[ubyte]>
+;* V76 tmp43        [V76    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[ubyte]>
+;* V77 tmp44        [V77    ] (  0,  0   )  struct (16) zero-ref    "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
+;* V78 tmp45        [V78    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]>
+;  V79 tmp46        [V79,T41] (  4, 16   )     ref  ->  rax         class-hnd "Inlining Arg" <ubyte[]>
+;* V80 tmp47        [V80    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;  V81 tmp48        [V81,T120] (  3,  6   )     ref  ->  rcx         class-hnd "Inline return value spill temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
+;  V82 tmp49        [V82,T42] (  4, 16   )   byref  ->  rdi         "Inlining Arg"
+;* V83 tmp50        [V83    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V84 tmp51        [V84,T270] (  3,  0   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
+;  V85 tmp52        [V85,T268] (  4,  0   )   byref  ->  rdi         "Inlining Arg"
+;* V86 tmp53        [V86    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;  V87 tmp54        [V87,T280] (  2,  0   )   byref  ->  r15         "impAppendStmt"
+;* V88 tmp55        [V88    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
+;  V89 tmp56        [V89,T271] (  3,  0   )     ref  ->  rsi         class-hnd "Inline return value spill temp" <ubyte[]>
+;  V90 tmp57        [V90,T272] (  3,  0   )     ref  ->  r14         class-hnd exact "Inline stloc first use temp" <ubyte[]>
+;  V91 tmp58        [V91,T281] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;* V92 tmp59        [V92    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V93 tmp60        [V93,T294] (  2,  0   )    long  ->  rdx         "Inlining Arg"
+;* V94 tmp61        [V94    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;  V95 tmp62        [V95,T282] (  2,  0   )   byref  ->  r14         "impAppendStmt"
+;  V96 tmp63        [V96    ] (  2,  0   )  struct (192) [rbp-0x428]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.Text.Json.Utf8JsonReader>
+;  V97 tmp64        [V97,T283] (  2,  0   )   byref  ->  r14         "impAppendStmt"
+;* V98 tmp65        [V98    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V99 tmp66        [V99    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
+;  V100 tmp67       [V100,T273] (  3,  0   )     ref  ->  rsi         class-hnd "Inline return value spill temp" <ubyte[]>
+;  V101 tmp68       [V101,T274] (  3,  0   )     ref  ->  r15         class-hnd exact "Inline stloc first use temp" <ubyte[]>
+;  V102 tmp69       [V102,T284] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;* V103 tmp70       [V103    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V104 tmp71       [V104,T295] (  2,  0   )    long  ->  rdx         "Inlining Arg"
+;  V105 tmp72       [V105,T67] (  2, 12   )   ubyte  ->  [rbp-0x42C]  spill-single-def "Inlining Arg"
+;* V106 tmp73       [V106    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V107 tmp74       [V107    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V108 tmp75       [V108,T172] (  2,  4   )  struct (192) [rbp-0x4F0]  do-not-enreg[S] must-init "Inline stloc first use temp" <System.Text.Json.Utf8JsonReader>
+;* V109 tmp76       [V109    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V110 tmp77       [V110,T127] (  3,  6   )   ubyte  ->  rax         "Inline stloc first use temp"
+;* V111 tmp78       [V111,T173] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V112 tmp79       [V112,T35] (  2, 18   )     int  ->  [rbp-0x4F4]  spill-single-def "Inline stloc first use temp"
+;* V113 tmp80       [V113    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V114 tmp81       [V114    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V115 tmp82       [V115    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
+;  V116 tmp83       [V116,T128] (  3,  6   )     int  ->  rcx         "Inline stloc first use temp"
+;  V117 tmp84       [V117,T129] (  3,  6   )   ubyte  ->  rdi         "Inline stloc first use temp"
+;* V118 tmp85       [V118,T174] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V119 tmp86       [V119    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
+;  V120 tmp87       [V120,T06] (  3, 40   )     int  ->  rdi         "Inline stloc first use temp"
+;  V121 tmp88       [V121,T07] (  3, 40   )   ubyte  ->  rsi         "Inline stloc first use temp"
+;* V122 tmp89       [V122,T48] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V123 tmp90       [V123    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
+;  V124 tmp91       [V124,T130] (  3,  6   )     int  ->  rax         "Inline stloc first use temp"
+;  V125 tmp92       [V125,T131] (  3,  6   )   ubyte  ->  rdi         "Inline stloc first use temp"
+;* V126 tmp93       [V126,T175] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V127 tmp94       [V127    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V128 tmp95       [V128,T02] (  5, 40   )   byref  ->  rsi         "Inlining Arg"
+;  V129 tmp96       [V129,T199] (  3,  3   )   byref  ->  rbx         single-def "Inlining Arg"
+;* V130 tmp97       [V130    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
+;* V131 tmp98       [V131    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ubyte]>
+;  V132 tmp99       [V132,T159] (  5,  5   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V133 tmp100      [V133,T243] (  3,  1.50)    long  ->  rdi         "Inline return value spill temp"
+;  V134 tmp101      [V134,T237] (  3,  1.50)     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;  V135 tmp102      [V135,T238] (  3,  1.50)     ref  ->  [rbp-0x908]  class-hnd spill-single-def "Inline stloc first use temp" <System.Object>
+;  V136 tmp103      [V136,T244] (  3,  1.50)     int  ->  [rbp-0x4F8]  spill-single-def "Inline stloc first use temp"
+;  V137 tmp104      [V137,T245] (  3,  1.50)     int  ->  [rbp-0x4FC]  spill-single-def "Inline stloc first use temp"
+;  V138 tmp105      [V138,T259] (  2,  1   )     ref  ->  [rbp-0x910]  class-hnd spill-single-def "Inline stloc first use temp" <System.Buffers.ReadOnlySequenceSegment`1[ubyte]>
+;* V139 tmp106      [V139    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Buffers.ReadOnlySequenceSegment`1[ubyte]>
+;* V140 tmp107      [V140    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
+;* V141 tmp108      [V141    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V142 tmp109      [V142    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V143 tmp110      [V143    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V144 tmp111      [V144    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V145 tmp112      [V145    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
-;  V146 tmp113      [V146,T109] (  3,  6   )     int  ->  rcx         "Inline stloc first use temp"
-;  V147 tmp114      [V147,T110] (  3,  6   )   ubyte  ->  rdi         "Inline stloc first use temp"
-;* V148 tmp115      [V148,T145] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V149 tmp116      [V149    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
-;  V150 tmp117      [V150,T05] (  3, 40   )     int  ->  rdi         "Inline stloc first use temp"
-;  V151 tmp118      [V151,T06] (  3, 40   )   ubyte  ->  rsi         "Inline stloc first use temp"
-;* V152 tmp119      [V152,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V153 tmp120      [V153    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
-;  V154 tmp121      [V154,T111] (  3,  6   )     int  ->  rax         "Inline stloc first use temp"
-;  V155 tmp122      [V155,T112] (  3,  6   )   ubyte  ->  rdi         "Inline stloc first use temp"
-;* V156 tmp123      [V156,T146] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V157 tmp124      [V157,T11] (  4, 32   )   byref  ->  rdi         "Inlining Arg"
-;  V158 tmp125      [V158,T12] (  4, 32   )   byref  ->  rsi         "Inlining Arg"
-;* V159 tmp126      [V159    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
-;* V160 tmp127      [V160    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.Json.JsonPropertyDictionary`1[System.Text.Json.Serialization.Metadata.JsonPropertyInfo]>
-;* V161 tmp128      [V161    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
-;  V162 tmp129      [V162,T113] (  3,  6   )     int  ->  rsi         "Inline return value spill temp"
-;  V163 tmp130      [V163,T55] (  3, 12   )     int  ->  rsi         "Inlining Arg"
-;  V164 tmp131      [V164,T26] (  5, 20   )     ref  ->  [rbp-0x778]  class-hnd exact spill-single-def "Inlining Arg" <System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String][]>
-;* V165 tmp132      [V165    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V166 tmp133      [V166,T114] (  2,  4   )     int  ->  rdi         "Inline return value spill temp"
-;* V167 tmp134      [V167    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V168 tmp135      [V168,T115] (  3,  6   )     int  ->  rdi         "Inline stloc first use temp"
-;  V169 tmp136      [V169,T83] (  2,  8   )   byref  ->  rdi         "Inlining Arg"
-;  V170 tmp137      [V170,T93] (  2,  8   )    long  ->  rdx         "Inlining Arg"
-;  V171 tmp138      [V171,T84] (  2,  8   )     ref  ->  rcx         class-hnd "Inlining Arg" <ubyte[]>
-;  V172 tmp139      [V172,T85] (  2,  8   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.String>
-;* V173 tmp140      [V173    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V174 tmp141      [V174    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
-;  V175 tmp142      [V175,T66] (  3, 10   )     int  ->  rax         "Inline stloc first use temp"
-;  V176 tmp143      [V176,T67] (  3, 10   )   ubyte  ->  rdi         "Inline stloc first use temp"
-;* V177 tmp144      [V177,T147] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V178 tmp145      [V178,T03] (  5, 40   )   byref  ->  rsi         "Inlining Arg"
-;  V179 tmp146      [V179,T78] (  3,  8   )    long  ->  registers   "Inline return value spill temp"
-;* V180 tmp147      [V180    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Object>
-;* V181 tmp148      [V181    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Object>
-;  V182 tmp149      [V182,T79] (  3,  8   )     int  ->  [rbp-0x598]  spill-single-def "Inline stloc first use temp"
-;  V183 tmp150      [V183,T80] (  3,  8   )     int  ->  [rbp-0x59C]  spill-single-def "Inline stloc first use temp"
-;* V184 tmp151      [V184,T199] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Buffers.ReadOnlySequenceSegment`1[ubyte]>
-;* V185 tmp152      [V185    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Buffers.ReadOnlySequenceSegment`1[ubyte]>
-;* V186 tmp153      [V186    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
-;* V187 tmp154      [V187    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V188 tmp155      [V188    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V189 tmp156      [V189,T60] (  5, 10   )  struct (24) [rbp-0x5B8]  do-not-enreg[S] must-init "Inline return value spill temp" <System.Buffers.ReadOnlySequence`1[ubyte]>
-;* V190 tmp157      [V190    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.SequencePosition>
-;* V191 tmp158      [V191    ] (  0,  0   )  struct (16) zero-ref    multireg-ret "Inline return value spill temp" <System.SequencePosition>
-;* V192 tmp159      [V192    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Object>
-;* V193 tmp160      [V193    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Object>
-;  V194 tmp161      [V194,T74] (  4,  8   )     int  ->  [rbp-0x5BC]  spill-single-def "Inline stloc first use temp"
-;  V195 tmp162      [V195,T116] (  3,  6   )     int  ->  [rbp-0x5C0]  spill-single-def "Inline stloc first use temp"
-;* V196 tmp163      [V196    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.SequencePosition>
-;* V197 tmp164      [V197,T200] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Buffers.ReadOnlySequenceSegment`1[ubyte]>
-;* V198 tmp165      [V198    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlyMemory`1[ubyte]>
-;  V199 tmp166      [V199,T75] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
-;* V200 tmp167      [V200    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.SequencePosition>
-;* V201 tmp168      [V201    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V202 tmp169      [V202    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V203 tmp170      [V203    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V204 tmp171      [V204    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Object>
-;* V205 tmp172      [V205    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.ReadOnlySequence`1[ubyte]>
-;* V206 tmp173      [V206    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Object>
-;  V207 tmp174      [V207,T94] (  2,  8   )     int  ->  r11         "Inlining Arg"
-;* V208 tmp175      [V208    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V209 tmp176      [V209,T39] (  4, 16   )     int  ->  rdi         "Inlining Arg"
-;* V210 tmp177      [V210    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V211 tmp178      [V211,T86] (  2,  8   )   byref  ->  rsi         "Inlining Arg"
-;  V212 tmp179      [V212,T95] (  2,  8   )     int  ->  r11         "Inlining Arg"
-;* V213 tmp180      [V213    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V214 tmp181      [V214    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V215 tmp182      [V215,T148] (  2,  4   )  struct (192) [rbp-0x680]  do-not-enreg[S] must-init "Inline stloc first use temp" <System.Text.Json.Utf8JsonReader>
-;* V216 tmp183      [V216    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V217 tmp184      [V217,T117] (  3,  6   )   ubyte  ->  rax         "Inline stloc first use temp"
-;* V218 tmp185      [V218,T149] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V219 tmp186      [V219,T32] (  2, 18   )     int  ->  [rbp-0x684]  spill-single-def "Inline stloc first use temp"
-;* V220 tmp187      [V220    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V221 tmp188      [V221    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V222 tmp189      [V222,T118] (  3,  6   )     int  ->  rax        
-;* V223 tmp190      [V223    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V224 tmp191      [V224    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ubyte]>
-;* V225 tmp192      [V225    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
-;  V226 tmp193      [V226,T119] (  3,  6   )     int  ->  rcx         "Inline stloc first use temp"
-;  V227 tmp194      [V227,T120] (  3,  6   )   ubyte  ->  rdi         "Inline stloc first use temp"
-;* V228 tmp195      [V228,T150] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V229 tmp196      [V229    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
-;  V230 tmp197      [V230,T07] (  3, 40   )     int  ->  rdi         "Inline stloc first use temp"
-;  V231 tmp198      [V231,T08] (  3, 40   )   ubyte  ->  rsi         "Inline stloc first use temp"
-;* V232 tmp199      [V232,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V233 tmp200      [V233    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
-;  V234 tmp201      [V234,T121] (  3,  6   )     int  ->  rax         "Inline stloc first use temp"
-;  V235 tmp202      [V235,T122] (  3,  6   )   ubyte  ->  rdi         "Inline stloc first use temp"
-;* V236 tmp203      [V236,T151] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V237 tmp204      [V237    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V238 tmp205      [V238,T04] (  5, 40   )   byref  ->  rdi         "Inlining Arg"
-;  V239 tmp206      [V239,T227] (  2,  1   )   byref  ->  rdi         single-def "Inline stloc first use temp"
-;  V240 tmp207      [V240,T228] (  2,  1   )     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
-;  V241 tmp208      [V241,T190] (  2,  2   )   byref  ->  r12         single-def "impAppendStmt"
-;  V242 tmp209      [V242,T229] (  2,  1   )     ref  ->  rbx         class-hnd single-def "Inline stloc first use temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
-;* V243 tmp210      [V243    ] (  0,  0   )   byref  ->  zero-ref   
-;  V244 tmp211      [V244,T230] (  2,  1   )   byref  ->  r15         single-def
-;  V245 tmp212      [V245,T231] (  2,  1   )     int  ->  rdi        
-;  V246 tmp213      [V246,T185] (  4,  2   )     ref  ->  rdi         class-hnd "Inline return value spill temp" <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
-;  V247 tmp214      [V247,T191] (  2,  2   )   byref  ->  [rbp-0x780]  single-def "Inlining Arg"
-;  V248 tmp215      [V248,T165] (  3,  3   )     ref  ->  [rbp-0x788]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.BitArray>
-;* V249 tmp216      [V249    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V250 tmp217      [V250,T162] (  8,  3   )     ref  ->  [rbp-0x790]  class-hnd spill-single-def "Inline stloc first use temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
-;* V251 tmp218      [V251    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V252 tmp219      [V252    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver>
-;* V253 tmp220      [V253    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.Json.JsonSerializerOptions>
-;* V254 tmp221      [V254    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.Json.JsonPropertyDictionary`1[System.Text.Json.Serialization.Metadata.JsonParameterInfo]>
-;* V255 tmp222      [V255    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
-;  V256 tmp223      [V256,T192] (  2,  2   )   byref  ->  [rbp-0x798]  spill-single-def "Inlining Arg"
-;  V257 tmp224      [V257,T166] (  3,  3   )     ref  ->  [rbp-0x7A0]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.BitArray>
+;* V144 tmp111      [V144,T109] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
+;* V145 tmp112      [V145    ] (  0,  0   )  struct (16) zero-ref    "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
+;  V146 tmp113      [V146    ] (  4, 12.50)     ref  ->  [rbp-0x508]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.Json.Serialization.Metadata.JsonParameterInfo>
+;  V147 tmp114      [V147    ] (  1,  4   )   ubyte  ->  [rbp-0x510]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;  V148 tmp115      [V148,T76] (  3, 10   )     ref  ->  [rbp-0x918]  class-hnd spill-single-def "Inline stloc first use temp" <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
+;  V149 tmp116      [V149,T27] ( 10, 20   )     ref  ->  [rbp-0x920]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Text.Json.ArgumentState>
+;  V150 tmp117      [V150,T90] (  4,  8   )     int  ->  [rbp-0x514]  spill-single-def "Inline stloc first use temp"
+;  V151 tmp118      [V151,T59] (  3, 12   )     ref  ->  [rbp-0x928]  class-hnd exact spill-single-def "impAppendStmt" <System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String][]>
+;  V152 tmp119      [V152,T110] (  2,  8   )  struct (56) [rbp-0x550]  do-not-enreg[HS] must-init hidden-struct-arg "impAppendStmt" <System.Text.Json.JsonReaderState>
+;  V153 tmp120      [V153,T32] (  5, 20   )  struct (88) [rbp-0x5A8]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String]>
+;  V154 tmp121      [V154,T57] (  6, 12   )     ref  ->  [rbp-0x930]  class-hnd spill-single-def "Inline stloc first use temp" <System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String][]>
+;  V155 tmp122      [V155,T170] (  2,  4   )     ref  ->  [rbp-0x938]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String][]>
+;  V156 tmp123      [V156,T100] (  2,  8   )     ref  ->  rdi         class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String]]>
+;* V157 tmp124      [V157    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V158 tmp125      [V158,T195] (  8,  3   )     ref  ->  [rbp-0x940]  class-hnd spill-single-def "Inline stloc first use temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
+;* V159 tmp126      [V159    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V160 tmp127      [V160    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver>
+;* V161 tmp128      [V161    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.Json.JsonSerializerOptions>
+;* V162 tmp129      [V162    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.Json.JsonPropertyDictionary`1[System.Text.Json.Serialization.Metadata.JsonParameterInfo]>
+;* V163 tmp130      [V163    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
+;  V164 tmp131      [V164,T225] (  2,  2   )   byref  ->  [rbp-0x948]  spill-single-def "Inlining Arg"
+;  V165 tmp132      [V165,T200] (  3,  3   )     ref  ->  [rbp-0x950]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.BitArray>
+;* V166 tmp133      [V166    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V167 tmp134      [V167    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V168 tmp135      [V168    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
+;* V169 tmp136      [V169    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
+;  V170 tmp137      [V170    ] (  2,  4   )  struct (24) [rbp-0x5C0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.Buffers.ReadOnlySequence`1[ubyte]>
+;* V171 tmp138      [V171    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[ubyte]>
+;* V172 tmp139      [V172    ] (  0,  0   )  struct (16) zero-ref    "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
+;* V173 tmp140      [V173    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]>
+;  V174 tmp141      [V174,T43] (  4, 16   )     ref  ->  rax         class-hnd "Inlining Arg" <ubyte[]>
+;* V175 tmp142      [V175    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;  V176 tmp143      [V176,T121] (  3,  6   )     ref  ->  r10         class-hnd "Inline return value spill temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
+;  V177 tmp144      [V177,T44] (  4, 16   )   byref  ->  rdi         "Inlining Arg"
+;* V178 tmp145      [V178    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V179 tmp146      [V179,T275] (  3,  0   )     ref  ->  rdx         class-hnd "Inline return value spill temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
+;  V180 tmp147      [V180,T269] (  4,  0   )   byref  ->  rdi         "Inlining Arg"
+;* V181 tmp148      [V181    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;  V182 tmp149      [V182,T285] (  2,  0   )   byref  ->  r15         "impAppendStmt"
+;* V183 tmp150      [V183    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
+;  V184 tmp151      [V184,T276] (  3,  0   )     ref  ->  rsi         class-hnd "Inline return value spill temp" <ubyte[]>
+;  V185 tmp152      [V185,T277] (  3,  0   )     ref  ->  r14         class-hnd exact "Inline stloc first use temp" <ubyte[]>
+;  V186 tmp153      [V186,T286] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;* V187 tmp154      [V187    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V188 tmp155      [V188,T296] (  2,  0   )    long  ->  rdx         "Inlining Arg"
+;* V189 tmp156      [V189    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;  V190 tmp157      [V190,T287] (  2,  0   )   byref  ->  rbx         "impAppendStmt"
+;  V191 tmp158      [V191    ] (  2,  0   )  struct (192) [rbp-0x680]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.Text.Json.Utf8JsonReader>
+;  V192 tmp159      [V192,T288] (  2,  0   )   byref  ->  r14         "impAppendStmt"
+;* V193 tmp160      [V193    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V194 tmp161      [V194    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
+;  V195 tmp162      [V195,T278] (  3,  0   )     ref  ->  rsi         class-hnd "Inline return value spill temp" <ubyte[]>
+;  V196 tmp163      [V196,T279] (  3,  0   )     ref  ->  r15         class-hnd exact "Inline stloc first use temp" <ubyte[]>
+;  V197 tmp164      [V197,T289] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;* V198 tmp165      [V198    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V199 tmp166      [V199,T297] (  2,  0   )    long  ->  rdx         "Inlining Arg"
+;* V200 tmp167      [V200    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V201 tmp168      [V201    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
+;  V202 tmp169      [V202,T78] (  3, 10   )     int  ->  rax         "Inline stloc first use temp"
+;  V203 tmp170      [V203,T79] (  3, 10   )   ubyte  ->  rdi         "Inline stloc first use temp"
+;* V204 tmp171      [V204,T176] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V205 tmp172      [V205,T03] (  5, 40   )   byref  ->  rsi         "Inlining Arg"
+;* V206 tmp173      [V206    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V207 tmp174      [V207,T47] (  2, 16   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Text.Json.Serialization.Metadata.JsonParameterInfo>
+;* V208 tmp175      [V208    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V209 tmp176      [V209,T177] (  2,  4   )  struct (192) [rbp-0x740]  do-not-enreg[S] must-init "Inline stloc first use temp" <System.Text.Json.Utf8JsonReader>
+;* V210 tmp177      [V210    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V211 tmp178      [V211,T132] (  3,  6   )   ubyte  ->  rax         "Inline stloc first use temp"
+;* V212 tmp179      [V212,T178] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V213 tmp180      [V213,T36] (  2, 18   )     int  ->  [rbp-0x744]  spill-single-def "Inline stloc first use temp"
+;* V214 tmp181      [V214    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V215 tmp182      [V215    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V216 tmp183      [V216    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
+;  V217 tmp184      [V217,T133] (  3,  6   )     int  ->  rcx         "Inline stloc first use temp"
+;  V218 tmp185      [V218,T134] (  3,  6   )   ubyte  ->  rdi         "Inline stloc first use temp"
+;* V219 tmp186      [V219,T179] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V220 tmp187      [V220    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
+;  V221 tmp188      [V221,T08] (  3, 40   )     int  ->  rdi         "Inline stloc first use temp"
+;  V222 tmp189      [V222,T09] (  3, 40   )   ubyte  ->  rsi         "Inline stloc first use temp"
+;* V223 tmp190      [V223,T49] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V224 tmp191      [V224    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
+;  V225 tmp192      [V225,T135] (  3,  6   )     int  ->  rax         "Inline stloc first use temp"
+;  V226 tmp193      [V226,T136] (  3,  6   )   ubyte  ->  rdi         "Inline stloc first use temp"
+;* V227 tmp194      [V227,T180] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V228 tmp195      [V228,T16] (  4, 32   )   byref  ->  rdi         "Inlining Arg"
+;  V229 tmp196      [V229,T17] (  4, 32   )   byref  ->  rsi         "Inlining Arg"
+;* V230 tmp197      [V230    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
+;* V231 tmp198      [V231    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.Json.JsonPropertyDictionary`1[System.Text.Json.Serialization.Metadata.JsonPropertyInfo]>
+;* V232 tmp199      [V232    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
+;  V233 tmp200      [V233,T137] (  3,  6   )     int  ->  rsi         "Inline return value spill temp"
+;  V234 tmp201      [V234,T64] (  3, 12   )     int  ->  rsi         "Inlining Arg"
+;  V235 tmp202      [V235,T30] (  5, 20   )     ref  ->  [rbp-0x958]  class-hnd exact spill-single-def "Inlining Arg" <System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String][]>
+;* V236 tmp203      [V236    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;  V237 tmp204      [V237,T138] (  2,  4   )     int  ->  rdi         "Inline return value spill temp"
+;* V238 tmp205      [V238    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V239 tmp206      [V239,T139] (  3,  6   )     int  ->  rdi         "Inline stloc first use temp"
+;  V240 tmp207      [V240,T101] (  2,  8   )   byref  ->  rdi         "Inlining Arg"
+;  V241 tmp208      [V241,T111] (  2,  8   )    long  ->  rdx         "Inlining Arg"
+;  V242 tmp209      [V242,T102] (  2,  8   )     ref  ->  rcx         class-hnd "Inlining Arg" <ubyte[]>
+;  V243 tmp210      [V243,T103] (  2,  8   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.String>
+;* V244 tmp211      [V244    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V245 tmp212      [V245    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
+;  V246 tmp213      [V246,T80] (  3, 10   )     int  ->  rax         "Inline stloc first use temp"
+;  V247 tmp214      [V247,T81] (  3, 10   )   ubyte  ->  rdi         "Inline stloc first use temp"
+;* V248 tmp215      [V248,T181] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V249 tmp216      [V249,T04] (  5, 40   )   byref  ->  rsi         "Inlining Arg"
+;  V250 tmp217      [V250,T96] (  3,  8   )    long  ->  rsi         "Inline return value spill temp"
+;* V251 tmp218      [V251    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Object>
+;* V252 tmp219      [V252    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Object>
+;  V253 tmp220      [V253,T97] (  3,  8   )     int  ->  [rbp-0x748]  spill-single-def "Inline stloc first use temp"
+;  V254 tmp221      [V254,T98] (  3,  8   )     int  ->  [rbp-0x74C]  spill-single-def "Inline stloc first use temp"
+;* V255 tmp222      [V255,T234] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Buffers.ReadOnlySequenceSegment`1[ubyte]>
+;* V256 tmp223      [V256    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Buffers.ReadOnlySequenceSegment`1[ubyte]>
+;* V257 tmp224      [V257    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
 ;* V258 tmp225      [V258    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V259 tmp226      [V259,T87] (  2,  8   )   byref  ->  rdi         "Inlining Arg"
-;  V260 tmp227      [V260,T27] (  5, 20   )     ref  ->  rdi         class-hnd exact "impAppendStmt" <System.Collections.BitArray>
-;  V261 tmp228      [V261,T25] (  6, 20   )     int  ->   r8         "Inlining Arg"
-;  V262 tmp229      [V262,T152] (  2,  4   )     int  ->  rsi         "Inline stloc first use temp"
-;  V263 tmp230      [V263,T104] (  3,  6   )   byref  ->  rdx         "Inline stloc first use temp"
-;  V264 tmp231      [V264,T167] (  3,  3   )   byref  ->  [rbp-0x7A8]  spill-single-def "Inlining Arg"
-;  V265 tmp232      [V265,T171] (  3,  3   )     int  ->  rax         "Single return block return value"
-;  V266 tmp233      [V266,T177] (  2,  2.50)   byref  ->  [rbp-0x7B0]  spill-single-def "field V09._reference (fldOffset=0x0)" P-INDEP
-;  V267 tmp234      [V267,T134] (  3,  4.50)     int  ->  [rbp-0x688]  spill-single-def "field V09._length (fldOffset=0x8)" P-INDEP
-;  V268 tmp235      [V268,T19] ( 10, 20.50)     ref  ->  [rbp-0x7B8]  spill-single-def "field V10._startObject (fldOffset=0x0)" P-INDEP
-;  V269 tmp236      [V269,T46] (  6, 12.50)     ref  ->  [rbp-0x7C0]  spill-single-def "field V10._endObject (fldOffset=0x8)" P-INDEP
-;  V270 tmp237      [V270,T59] (  5, 10.50)     int  ->  [rbp-0x68C]  spill-single-def "field V10._startInteger (fldOffset=0x10)" P-INDEP
-;  V271 tmp238      [V271,T70] (  4,  8.50)     int  ->  [rbp-0x690]  spill-single-def "field V10._endInteger (fldOffset=0x14)" P-INDEP
-;* V272 tmp239      [V272    ] (  0,  0   )   byref  ->  zero-ref    "field V51._reference (fldOffset=0x0)" P-INDEP
-;* V273 tmp240      [V273    ] (  0,  0   )     int  ->  zero-ref    "field V51._length (fldOffset=0x8)" P-INDEP
-;  V274 tmp241      [V274,T205] (  3,  1.50)   byref  ->  rax         "field V59._reference (fldOffset=0x0)" P-INDEP
-;  V275 tmp242      [V275,T212] (  3,  1.50)     int  ->  rdx         "field V59._length (fldOffset=0x8)" P-INDEP
-;* V276 tmp243      [V276    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V60._reference (fldOffset=0x0)" P-INDEP
-;* V277 tmp244      [V277    ] (  0,  0   )     int  ->  zero-ref    "field V60._length (fldOffset=0x8)" P-INDEP
-;* V278 tmp245      [V278    ] (  0,  0   )   byref  ->  zero-ref    "field V74._reference (fldOffset=0x0)" P-INDEP
-;* V279 tmp246      [V279    ] (  0,  0   )     int  ->  zero-ref    "field V74._length (fldOffset=0x8)" P-INDEP
-;* V280 tmp247      [V280    ] (  0,  0   )   byref  ->  zero-ref    "field V97._reference (fldOffset=0x0)" P-INDEP
-;* V281 tmp248      [V281    ] (  0,  0   )     int  ->  zero-ref    "field V97._length (fldOffset=0x8)" P-INDEP
-;  V282 tmp249      [V282,T45] (  8, 14   )   byref  ->  [rbp-0x7C8]  "field V98._reference (fldOffset=0x0)" P-INDEP
-;  V283 tmp250      [V283,T44] ( 12, 14   )     int  ->  [rbp-0x694]  "field V98._length (fldOffset=0x8)" P-INDEP
-;  V284 tmp251      [V284,T71] (  4,  8   )   byref  ->  rax         "field V100._reference (fldOffset=0x0)" P-INDEP
-;  V285 tmp252      [V285,T76] (  4,  8   )     int  ->  rcx         "field V100._length (fldOffset=0x8)" P-INDEP
-;* V286 tmp253      [V286    ] (  0,  0   )   byref  ->  zero-ref    "field V101._reference (fldOffset=0x0)" P-INDEP
-;* V287 tmp254      [V287    ] (  0,  0   )     int  ->  zero-ref    "field V101._length (fldOffset=0x8)" P-INDEP
-;* V288 tmp255      [V288    ] (  0,  0   )   byref  ->  zero-ref    "field V102._reference (fldOffset=0x0)" P-DEP
-;* V289 tmp256      [V289    ] (  0,  0   )     int  ->  zero-ref    "field V102._length (fldOffset=0x8)" P-DEP
-;  V290 tmp257      [V290,T105] (  3,  6   )   byref  ->  registers   "field V104._reference (fldOffset=0x0)" P-INDEP
-;  V291 tmp258      [V291,T123] (  3,  6   )     int  ->  registers   "field V104._length (fldOffset=0x8)" P-INDEP
-;* V292 tmp259      [V292    ] (  0,  0   )   byref  ->  zero-ref    "field V110._reference (fldOffset=0x0)" P-INDEP
-;* V293 tmp260      [V293    ] (  0,  0   )     int  ->  zero-ref    "field V110._length (fldOffset=0x8)" P-INDEP
-;* V294 tmp261      [V294    ] (  0,  0   )   byref  ->  zero-ref    "field V118._reference (fldOffset=0x0)" P-INDEP
-;* V295 tmp262      [V295    ] (  0,  0   )     int  ->  zero-ref    "field V118._length (fldOffset=0x8)" P-INDEP
-;* V296 tmp263      [V296    ] (  0,  0   )     ref  ->  zero-ref    "field V130._array (fldOffset=0x0)" P-INDEP
-;* V297 tmp264      [V297    ] (  0,  0   )    long  ->  zero-ref    "field V130._allocationFreeContainer (fldOffset=0x8)" P-INDEP
-;  V298 tmp265      [V298,T68] (  3, 10   )     int  ->  rsi         "field V130._currentDepth (fldOffset=0x10)" P-INDEP
-;* V299 tmp266      [V299    ] (  0,  0   )     ref  ->  zero-ref    "field V145._array (fldOffset=0x0)" P-INDEP
-;* V300 tmp267      [V300    ] (  0,  0   )    long  ->  zero-ref    "field V145._allocationFreeContainer (fldOffset=0x8)" P-INDEP
-;  V301 tmp268      [V301,T124] (  3,  6   )     int  ->  rax         "field V145._currentDepth (fldOffset=0x10)" P-INDEP
-;* V302 tmp269      [V302    ] (  0,  0   )     ref  ->  zero-ref    "field V149._array (fldOffset=0x0)" P-INDEP
-;* V303 tmp270      [V303    ] (  0,  0   )    long  ->  zero-ref    "field V149._allocationFreeContainer (fldOffset=0x8)" P-INDEP
-;  V304 tmp271      [V304,T09] (  3, 40   )     int  ->  rcx         "field V149._currentDepth (fldOffset=0x10)" P-INDEP
-;* V305 tmp272      [V305    ] (  0,  0   )     ref  ->  zero-ref    "field V153._array (fldOffset=0x0)" P-INDEP
-;* V306 tmp273      [V306    ] (  0,  0   )    long  ->  zero-ref    "field V153._allocationFreeContainer (fldOffset=0x8)" P-INDEP
-;  V307 tmp274      [V307,T125] (  3,  6   )     int  ->  rsi         "field V153._currentDepth (fldOffset=0x10)" P-INDEP
-;* V308 tmp275      [V308    ] (  0,  0   )     ref  ->  zero-ref    "field V174._array (fldOffset=0x0)" P-INDEP
-;* V309 tmp276      [V309    ] (  0,  0   )    long  ->  zero-ref    "field V174._allocationFreeContainer (fldOffset=0x8)" P-INDEP
-;  V310 tmp277      [V310,T69] (  3, 10   )     int  ->  rsi         "field V174._currentDepth (fldOffset=0x10)" P-INDEP
-;* V311 tmp278      [V311    ] (  0,  0   )     ref  ->  zero-ref    "field V190._object (fldOffset=0x0)" P-INDEP
-;* V312 tmp279      [V312    ] (  0,  0   )     int  ->  zero-ref    "field V190._integer (fldOffset=0x8)" P-INDEP
-;  V313 tmp280      [V313,T106] (  3,  6   )     ref  ->  rdi         "field V191._object (fldOffset=0x0)" P-INDEP
-;  V314 tmp281      [V314,T126] (  3,  6   )     int  ->  registers   "field V191._integer (fldOffset=0x8)" P-INDEP
-;* V315 tmp282      [V315,T201] (  0,  0   )     ref  ->  zero-ref    "field V196._object (fldOffset=0x0)" P-INDEP
-;  V316 tmp283      [V316,T153] (  2,  4   )     int  ->  rax         "field V196._integer (fldOffset=0x8)" P-INDEP
-;* V317 tmp284      [V317    ] (  0,  0   )     ref  ->  zero-ref    "field V198._object (fldOffset=0x0)" P-INDEP
-;* V318 tmp285      [V318    ] (  0,  0   )     int  ->  zero-ref    "field V198._index (fldOffset=0x8)" P-INDEP
-;  V319 tmp286      [V319,T154] (  2,  4   )     int  ->  rcx         "field V198._length (fldOffset=0xc)" P-INDEP
-;* V320 tmp287      [V320    ] (  0,  0   )     ref  ->  zero-ref    "field V200._object (fldOffset=0x0)" P-DEP
-;* V321 tmp288      [V321    ] (  0,  0   )     int  ->  zero-ref    "field V200._integer (fldOffset=0x8)" P-DEP
-;* V322 tmp289      [V322    ] (  0,  0   )     ref  ->  zero-ref    "field V205._startObject (fldOffset=0x0)" P-INDEP
-;* V323 tmp290      [V323    ] (  0,  0   )     ref  ->  zero-ref    "field V205._endObject (fldOffset=0x8)" P-INDEP
-;* V324 tmp291      [V324    ] (  0,  0   )     int  ->  zero-ref    "field V205._startInteger (fldOffset=0x10)" P-INDEP
-;* V325 tmp292      [V325    ] (  0,  0   )     int  ->  zero-ref    "field V205._endInteger (fldOffset=0x14)" P-INDEP
-;  V326 tmp293      [V326,T141] (  2,  4   )   byref  ->  [rbp-0x7D0]  spill-single-def "field V210._reference (fldOffset=0x0)" P-INDEP
-;  V327 tmp294      [V327,T155] (  2,  4   )     int  ->  r11         "field V210._length (fldOffset=0x8)" P-INDEP
-;  V328 tmp295      [V328,T245] (  2,  0   )   byref  ->  rcx         "field V224._reference (fldOffset=0x0)" P-INDEP
-;* V329 tmp296      [V329,T250] (  0,  0   )     int  ->  zero-ref    "field V224._length (fldOffset=0x8)" P-INDEP
-;* V330 tmp297      [V330    ] (  0,  0   )     ref  ->  zero-ref    "field V225._array (fldOffset=0x0)" P-INDEP
-;* V331 tmp298      [V331    ] (  0,  0   )    long  ->  zero-ref    "field V225._allocationFreeContainer (fldOffset=0x8)" P-INDEP
-;  V332 tmp299      [V332,T127] (  3,  6   )     int  ->  rax         "field V225._currentDepth (fldOffset=0x10)" P-INDEP
-;* V333 tmp300      [V333    ] (  0,  0   )     ref  ->  zero-ref    "field V229._array (fldOffset=0x0)" P-INDEP
-;* V334 tmp301      [V334    ] (  0,  0   )    long  ->  zero-ref    "field V229._allocationFreeContainer (fldOffset=0x8)" P-INDEP
-;  V335 tmp302      [V335,T10] (  3, 40   )     int  ->  rcx         "field V229._currentDepth (fldOffset=0x10)" P-INDEP
-;* V336 tmp303      [V336    ] (  0,  0   )     ref  ->  zero-ref    "field V233._array (fldOffset=0x0)" P-INDEP
-;* V337 tmp304      [V337    ] (  0,  0   )    long  ->  zero-ref    "field V233._allocationFreeContainer (fldOffset=0x8)" P-INDEP
-;  V338 tmp305      [V338,T128] (  3,  6   )     int  ->  rsi         "field V233._currentDepth (fldOffset=0x10)" P-INDEP
-;* V339 tmp306      [V339    ] (  0,  0   )     ref  ->  zero-ref    "V82.[000..008)"
-;* V340 tmp307      [V340    ] (  0,  0   )     ref  ->  zero-ref    "V82.[008..016)"
-;* V341 tmp308      [V341    ] (  0,  0   )     ref  ->  zero-ref    "V82.[016..024)"
-;* V342 tmp309      [V342    ] (  0,  0   )    long  ->  zero-ref    "V82.[024..032)"
-;  V343 tmp310      [V343,T107] (  3,  6   )     ref  ->  rdi         "V189.[000..008)"
-;* V344 tmp311      [V344    ] (  0,  0   )     ref  ->  zero-ref    "V189.[008..016)"
-;  V345 tmp312      [V345,T129] (  3,  6   )     int  ->  r11         "V189.[016..020)"
-;* V346 tmp313      [V346    ] (  0,  0   )     int  ->  zero-ref    "V189.[020..024)"
-;  V347 tmp314      [V347,T51] (  3, 12   )   byref  ->   r8         "Spilling address for field-by-field copy"
-;  V348 tmp315      [V348,T168] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
-;  V349 tmp316      [V349,T172] (  3,  3   )     int  ->  rsi         "index expr"
-;  V350 tmp317      [V350,T178] (  3,  2.25)     ref  ->  rax         single-def "argument with side effect"
-;  V351 tmp318      [V351,T213] (  2,  1.50)    long  ->  rbx         "argument with side effect"
-;  V352 tmp319      [V352,T193] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V353 tmp320      [V353,T246] (  2,  0   )     ref  ->  rbx         "argument with side effect"
-;  V354 tmp321      [V354,T247] (  2,  0   )     ref  ->  rsi         "argument with side effect"
-;  V355 tmp322      [V355,T88] (  2,  8   )     ref  ->  rdi         "argument with side effect"
-;  V356 tmp323      [V356,T96] (  2,  8   )     int  ->  rsi         "argument with side effect"
-;  V357 tmp324      [V357,T89] (  2,  8   )     ref  ->  rdi         "argument with side effect"
-;  V358 tmp325      [V358,T196] (  2,  2   )    long  ->  rdi         "argument with side effect"
-;  V359 tmp326      [V359,T169] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
-;  V360 tmp327      [V360,T173] (  3,  3   )     int  ->  rsi         "index expr"
-;  V361 tmp328      [V361,T179] (  3,  2.25)     ref  ->  rax         single-def "argument with side effect"
-;  V362 tmp329      [V362,T214] (  2,  1.50)    long  ->  rbx         "argument with side effect"
-;  V363 tmp330      [V363,T170] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V364 tmp331      [V364,T17] (  3, 24   )     ref  ->  rdx         "arr expr"
-;  V365 tmp332      [V365,T18] (  3, 24   )     ref  ->  rsi         "arr expr"
-;* V366 tmp333      [V366,T98] (  0,  0   )     ref  ->  zero-ref    "arr expr"
-;  V367 tmp334      [V367,T90] (  2,  8   )     ref  ->  rdi         "argument with side effect"
-;  V368 tmp335      [V368,T52] (  3, 12   )     ref  ->  rdx         "arr expr"
-;  V369 tmp336      [V369,T194] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V370 tmp337      [V370,T197] (  2,  2   )    long  ->  rdi         "argument with side effect"
-;  V371 tmp338      [V371,T195] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
-;  V372 tmp339      [V372,T198] (  2,  2   )    long  ->  rdi         "argument with side effect"
-;* V373 cse0        [V373,T135] (  0,  0   )    long  ->  zero-ref    multi-def "CSE #11: conservative"
-;  V374 cse1        [V374,T24] (  6, 20   )   byref  ->  [rbp-0x7D8]  spill-single-def "CSE #28: moderate"
-;  V375 cse2        [V375,T53] (  3, 12   )   byref  ->  rsi         "CSE #49: conservative"
-;  V376 cse3        [V376,T56] (  3, 12   )    long  ->  rsi         "CSE #27: conservative"
-;  V377 cse4        [V377,T57] (  3, 12   )    long  ->  rdi         "CSE #48: conservative"
-;  V378 cse5        [V378,T58] (  9, 11.50)    long  ->  [rbp-0x6A0]  multi-def "CSE #07: conservative"
-;  V379 cse6        [V379,T130] (  3,  6   )     int  ->  rdi         "CSE #08: conservative"
-;  V380 cse7        [V380,T38] (  3, 12   )     ref  ->  rsi         "CSE #45: conservative"
-;  V381 cse8        [V381,T72] (  4,  8   )     ref  ->  [rbp-0x7E0]  spill-single-def "CSE #10: conservative"
-;  V382 cse9        [V382,T131] (  3,  6   )     int  ->  rdi         "CSE #37: conservative"
-;  V383 cse10       [V383,T13] ( 25, 31   )   byref  ->  [rbp-0x7E8]  multi-def "CSE #06: moderate"
-;  V384 rat0        [V384,T15] (  7, 24.50)    long  ->  [rbp-0x6A8]  "Widened IV V26"
-;  V385 rat1        [V385,T22] (  6, 20.50)    long  ->  [rbp-0x6B0]  "Widened IV V15"
-;  V386 rat2        [V386,T215] (  2,  1.50)    long  ->  rdi         "Spilling to split statement for tree"
-;  V387 rat3        [V387,T156] (  5,  3.75)     ref  ->  rsi         "replacement local"
-;  V388 rat4        [V388,T218] (  3,  1.25)    long  ->  rdi         "CSE for expectedClsNode"
-;  V389 rat5        [V389,T157] (  5,  3.75)     ref  ->  registers   "replacement local"
-;  V390 rat6        [V390,T219] (  3,  1.25)    long  ->  rdi         "CSE for expectedClsNode"
-;  V391 rat7        [V391,T216] (  2,  1.50)    long  ->  rdi         "Spilling to split statement for tree"
-;  V392 rat8        [V392,T180] (  3,  2.25)     ref  ->  rsi         "Spilling to split statement for tree"
-;  V393 rat9        [V393,T158] (  5,  3.75)     ref  ->  rax         "replacement local"
-;  V394 rat10       [V394,T220] (  3,  1.25)    long  ->  rdi         "CSE for expectedClsNode"
-;  V395 rat11       [V395,T159] (  5,  3.75)     ref  ->  registers   "replacement local"
-;  V396 rat12       [V396,T221] (  3,  1.25)    long  ->  rdi         "CSE for expectedClsNode"
-;  V397 rat13       [V397,T217] (  2,  1.50)    long  ->  rdi         "Spilling to split statement for tree"
-;  V398 rat14       [V398,T160] (  5,  3.75)     ref  ->  rsi         "replacement local"
-;  V399 rat15       [V399,T222] (  3,  1.25)    long  ->  rdi         "CSE for expectedClsNode"
-;  V400 rat16       [V400,T181] (  3,  2.20)    long  ->  rdi         "Spilling to split statement for tree"
-;  V401 rat17       [V401,T186] (  3,  2   )    long  ->  rdi         "runtime lookup"
-;  V402 rat18       [V402,T174] (  3,  2.80)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;* V403 rat19       [V403,T33] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
-;* V404 rat20       [V404,T97] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V405 rat21       [V405,T20] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V406 rat22       [V406,T182] (  3,  2.20)    long  ->  rdi         "Spilling to split statement for tree"
-;  V407 rat23       [V407,T187] (  3,  2   )    long  ->  rdi         "runtime lookup"
-;  V408 rat24       [V408,T175] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V409 rat25       [V409,T183] (  3,  2.20)    long  ->  rdi         "Spilling to split statement for tree"
-;  V410 rat26       [V410,T188] (  3,  2   )    long  ->  rdi         "runtime lookup"
-;  V411 rat27       [V411,T176] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V412 rat28       [V412,T54] (  3, 12   )     ref  ->  r11         "delegate invoke call"
-;  TEMP_01                                     int  ->  [rbp-0x7EC]
-;  TEMP_02                                     ref  ->  [rbp-0x7F8]
+;* V259 tmp226      [V259    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V260 tmp227      [V260,T74] (  5, 10   )  struct (24) [rbp-0x768]  do-not-enreg[S] must-init "Inline return value spill temp" <System.Buffers.ReadOnlySequence`1[ubyte]>
+;* V261 tmp228      [V261    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.SequencePosition>
+;* V262 tmp229      [V262    ] (  0,  0   )  struct (16) zero-ref    multireg-ret "Inline return value spill temp" <System.SequencePosition>
+;* V263 tmp230      [V263    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Object>
+;* V264 tmp231      [V264    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Object>
+;  V265 tmp232      [V265,T91] (  4,  8   )     int  ->  [rbp-0x76C]  spill-single-def "Inline stloc first use temp"
+;  V266 tmp233      [V266,T140] (  3,  6   )     int  ->  [rbp-0x770]  spill-single-def "Inline stloc first use temp"
+;* V267 tmp234      [V267    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.SequencePosition>
+;* V268 tmp235      [V268,T235] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Buffers.ReadOnlySequenceSegment`1[ubyte]>
+;* V269 tmp236      [V269    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlyMemory`1[ubyte]>
+;  V270 tmp237      [V270,T92] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
+;* V271 tmp238      [V271    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.SequencePosition>
+;* V272 tmp239      [V272    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V273 tmp240      [V273    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V274 tmp241      [V274    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V275 tmp242      [V275    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Object>
+;* V276 tmp243      [V276    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.ReadOnlySequence`1[ubyte]>
+;* V277 tmp244      [V277    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Object>
+;  V278 tmp245      [V278,T112] (  2,  8   )     int  ->  rdi         "Inlining Arg"
+;* V279 tmp246      [V279    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V280 tmp247      [V280,T46] (  4, 16   )     int  ->  rdi         "Inlining Arg"
+;* V281 tmp248      [V281    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;  V282 tmp249      [V282,T104] (  2,  8   )   byref  ->  rsi         "Inlining Arg"
+;  V283 tmp250      [V283,T113] (  2,  8   )     int  ->   r8         "Inlining Arg"
+;* V284 tmp251      [V284    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V285 tmp252      [V285    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V286 tmp253      [V286,T182] (  2,  4   )  struct (192) [rbp-0x830]  do-not-enreg[S] must-init "Inline stloc first use temp" <System.Text.Json.Utf8JsonReader>
+;* V287 tmp254      [V287    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V288 tmp255      [V288,T141] (  3,  6   )   ubyte  ->  rax         "Inline stloc first use temp"
+;* V289 tmp256      [V289,T183] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V290 tmp257      [V290,T37] (  2, 18   )     int  ->  rbx         "Inline stloc first use temp"
+;* V291 tmp258      [V291    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V292 tmp259      [V292    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V293 tmp260      [V293    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
+;  V294 tmp261      [V294,T142] (  3,  6   )     int  ->  rbx         "Inline stloc first use temp"
+;  V295 tmp262      [V295,T143] (  3,  6   )   ubyte  ->  rdi         "Inline stloc first use temp"
+;* V296 tmp263      [V296,T184] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V297 tmp264      [V297    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
+;  V298 tmp265      [V298,T10] (  3, 40   )     int  ->  rdi         "Inline stloc first use temp"
+;  V299 tmp266      [V299,T11] (  3, 40   )   ubyte  ->  rsi         "Inline stloc first use temp"
+;* V300 tmp267      [V300,T50] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V301 tmp268      [V301    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
+;  V302 tmp269      [V302,T144] (  3,  6   )     int  ->  rax         "Inline stloc first use temp"
+;  V303 tmp270      [V303,T145] (  3,  6   )   ubyte  ->  rdi         "Inline stloc first use temp"
+;* V304 tmp271      [V304,T185] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V305 tmp272      [V305    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V306 tmp273      [V306,T05] (  5, 40   )   byref  ->  rdi         "Inlining Arg"
+;  V307 tmp274      [V307,T260] (  2,  1   )   byref  ->  rdi         single-def "Inline stloc first use temp"
+;  V308 tmp275      [V308,T261] (  2,  1   )     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
+;  V309 tmp276      [V309,T226] (  2,  2   )   byref  ->  r12         single-def "impAppendStmt"
+;  V310 tmp277      [V310,T262] (  2,  1   )     ref  ->  rbx         class-hnd single-def "Inline stloc first use temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
+;* V311 tmp278      [V311    ] (  0,  0   )   byref  ->  zero-ref   
+;  V312 tmp279      [V312,T263] (  2,  1   )   byref  ->  rbx         single-def
+;  V313 tmp280      [V313,T264] (  2,  1   )     int  ->  rdi        
+;  V314 tmp281      [V314,T221] (  4,  2   )     ref  ->  rdi         class-hnd "Inline return value spill temp" <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
+;  V315 tmp282      [V315,T227] (  2,  2   )   byref  ->  [rbp-0x960]  single-def "Inlining Arg"
+;  V316 tmp283      [V316,T201] (  3,  3   )     ref  ->  [rbp-0x968]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.BitArray>
+;* V317 tmp284      [V317    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V318 tmp285      [V318,T196] (  8,  3   )     ref  ->  [rbp-0x970]  class-hnd spill-single-def "Inline stloc first use temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
+;* V319 tmp286      [V319    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V320 tmp287      [V320    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver>
+;* V321 tmp288      [V321    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.Json.JsonSerializerOptions>
+;* V322 tmp289      [V322    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.Json.JsonPropertyDictionary`1[System.Text.Json.Serialization.Metadata.JsonParameterInfo]>
+;* V323 tmp290      [V323    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]>
+;  V324 tmp291      [V324,T228] (  2,  2   )   byref  ->  [rbp-0x978]  spill-single-def "Inlining Arg"
+;  V325 tmp292      [V325,T202] (  3,  3   )     ref  ->  [rbp-0x980]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.BitArray>
+;* V326 tmp293      [V326    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V327 tmp294      [V327,T105] (  2,  8   )   byref  ->  rdi         "Inlining Arg"
+;  V328 tmp295      [V328,T31] (  5, 20   )     ref  ->  rdi         class-hnd exact "impAppendStmt" <System.Collections.BitArray>
+;  V329 tmp296      [V329,T29] (  6, 20   )     int  ->   r8         "Inlining Arg"
+;  V330 tmp297      [V330,T186] (  2,  4   )     int  ->  rsi         "Inline stloc first use temp"
+;  V331 tmp298      [V331,T122] (  3,  6   )   byref  ->  rdx         "Inline stloc first use temp"
+;  V332 tmp299      [V332,T203] (  3,  3   )   byref  ->  [rbp-0x988]  spill-single-def "Inlining Arg"
+;  V333 tmp300      [V333,T207] (  3,  3   )     int  ->  rax         "Single return block return value"
+;  V334 tmp301      [V334,T213] (  2,  2.50)   byref  ->  [rbp-0x990]  spill-single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+;  V335 tmp302      [V335,T161] (  3,  4.50)     int  ->  [rbp-0x834]  spill-single-def "field V09._length (fldOffset=0x8)" P-INDEP
+;  V336 tmp303      [V336,T24] ( 10, 20.50)     ref  ->  [rbp-0x998]  spill-single-def "field V10._startObject (fldOffset=0x0)" P-INDEP
+;  V337 tmp304      [V337,T55] (  6, 12.50)     ref  ->  [rbp-0x9A0]  spill-single-def "field V10._endObject (fldOffset=0x8)" P-INDEP
+;  V338 tmp305      [V338,T70] (  5, 10.50)     int  ->  [rbp-0x838]  spill-single-def "field V10._startInteger (fldOffset=0x10)" P-INDEP
+;  V339 tmp306      [V339,T84] (  4,  8.50)     int  ->  [rbp-0x83C]  spill-single-def "field V10._endInteger (fldOffset=0x14)" P-INDEP
+;* V340 tmp307      [V340    ] (  0,  0   )   byref  ->  zero-ref    "field V51._reference (fldOffset=0x0)" P-INDEP
+;* V341 tmp308      [V341    ] (  0,  0   )     int  ->  zero-ref    "field V51._length (fldOffset=0x8)" P-INDEP
+;* V342 tmp309      [V342    ] (  0,  0   )   byref  ->  zero-ref    "field V65._reference (fldOffset=0x0)" P-INDEP
+;* V343 tmp310      [V343    ] (  0,  0   )     int  ->  zero-ref    "field V65._length (fldOffset=0x8)" P-INDEP
+;* V344 tmp311      [V344    ] (  0,  0   )   byref  ->  zero-ref    "field V73._reference (fldOffset=0x0)" P-INDEP
+;* V345 tmp312      [V345    ] (  0,  0   )     int  ->  zero-ref    "field V73._length (fldOffset=0x8)" P-INDEP
+;  V346 tmp313      [V346,T73] (  7, 10   )   byref  ->  [rbp-0x9A8]  "field V74._reference (fldOffset=0x0)" P-INDEP
+;  V347 tmp314      [V347,T72] ( 11, 10   )     int  ->  [rbp-0x840]  "field V74._length (fldOffset=0x8)" P-INDEP
+;  V348 tmp315      [V348,T87] (  4,  8   )   byref  ->  rax         "field V76._reference (fldOffset=0x0)" P-INDEP
+;  V349 tmp316      [V349,T93] (  4,  8   )     int  ->  rcx         "field V76._length (fldOffset=0x8)" P-INDEP
+;* V350 tmp317      [V350    ] (  0,  0   )   byref  ->  zero-ref    "field V77._reference (fldOffset=0x0)" P-INDEP
+;* V351 tmp318      [V351    ] (  0,  0   )     int  ->  zero-ref    "field V77._length (fldOffset=0x8)" P-INDEP
+;* V352 tmp319      [V352    ] (  0,  0   )   byref  ->  zero-ref    "field V78._reference (fldOffset=0x0)" P-DEP
+;* V353 tmp320      [V353    ] (  0,  0   )     int  ->  zero-ref    "field V78._length (fldOffset=0x8)" P-DEP
+;  V354 tmp321      [V354,T123] (  3,  6   )   byref  ->  registers   "field V80._reference (fldOffset=0x0)" P-INDEP
+;  V355 tmp322      [V355,T146] (  3,  6   )     int  ->  registers   "field V80._length (fldOffset=0x8)" P-INDEP
+;* V356 tmp323      [V356    ] (  0,  0   )   byref  ->  zero-ref    "field V86._reference (fldOffset=0x0)" P-INDEP
+;* V357 tmp324      [V357    ] (  0,  0   )     int  ->  zero-ref    "field V86._length (fldOffset=0x8)" P-INDEP
+;* V358 tmp325      [V358    ] (  0,  0   )   byref  ->  zero-ref    "field V94._reference (fldOffset=0x0)" P-INDEP
+;* V359 tmp326      [V359    ] (  0,  0   )     int  ->  zero-ref    "field V94._length (fldOffset=0x8)" P-INDEP
+;* V360 tmp327      [V360    ] (  0,  0   )     ref  ->  zero-ref    "field V115._array (fldOffset=0x0)" P-INDEP
+;* V361 tmp328      [V361    ] (  0,  0   )    long  ->  zero-ref    "field V115._allocationFreeContainer (fldOffset=0x8)" P-INDEP
+;  V362 tmp329      [V362,T147] (  3,  6   )     int  ->  rax         "field V115._currentDepth (fldOffset=0x10)" P-INDEP
+;* V363 tmp330      [V363    ] (  0,  0   )     ref  ->  zero-ref    "field V119._array (fldOffset=0x0)" P-INDEP
+;* V364 tmp331      [V364    ] (  0,  0   )    long  ->  zero-ref    "field V119._allocationFreeContainer (fldOffset=0x8)" P-INDEP
+;  V365 tmp332      [V365,T12] (  3, 40   )     int  ->  rcx         "field V119._currentDepth (fldOffset=0x10)" P-INDEP
+;* V366 tmp333      [V366    ] (  0,  0   )     ref  ->  zero-ref    "field V123._array (fldOffset=0x0)" P-INDEP
+;* V367 tmp334      [V367    ] (  0,  0   )    long  ->  zero-ref    "field V123._allocationFreeContainer (fldOffset=0x8)" P-INDEP
+;  V368 tmp335      [V368,T148] (  3,  6   )     int  ->  rsi         "field V123._currentDepth (fldOffset=0x10)" P-INDEP
+;  V369 tmp336      [V369,T239] (  3,  1.50)   byref  ->  rax         "field V130._reference (fldOffset=0x0)" P-INDEP
+;  V370 tmp337      [V370,T246] (  3,  1.50)     int  ->  rdx         "field V130._length (fldOffset=0x8)" P-INDEP
+;* V371 tmp338      [V371    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V131._reference (fldOffset=0x0)" P-INDEP
+;* V372 tmp339      [V372    ] (  0,  0   )     int  ->  zero-ref    "field V131._length (fldOffset=0x8)" P-INDEP
+;* V373 tmp340      [V373    ] (  0,  0   )   byref  ->  zero-ref    "field V145._reference (fldOffset=0x0)" P-INDEP
+;* V374 tmp341      [V374    ] (  0,  0   )     int  ->  zero-ref    "field V145._length (fldOffset=0x8)" P-INDEP
+;  V375 tmp342      [V375,T53] (  4, 14   )   byref  ->  [rbp-0x9B0]  spill-single-def "field V168._reference (fldOffset=0x0)" P-INDEP
+;  V376 tmp343      [V376,T54] (  4, 14   )     int  ->  [rbp-0x844]  spill-single-def "field V168._length (fldOffset=0x8)" P-INDEP
+;  V377 tmp344      [V377,T86] (  6,  8   )   byref  ->  [rbp-0x9B8]  "field V169._reference (fldOffset=0x0)" P-INDEP
+;  V378 tmp345      [V378,T85] ( 10,  8   )     int  ->  [rbp-0x848]  "field V169._length (fldOffset=0x8)" P-INDEP
+;  V379 tmp346      [V379,T88] (  4,  8   )   byref  ->  rax         "field V171._reference (fldOffset=0x0)" P-INDEP
+;  V380 tmp347      [V380,T94] (  4,  8   )     int  ->  rcx         "field V171._length (fldOffset=0x8)" P-INDEP
+;* V381 tmp348      [V381    ] (  0,  0   )   byref  ->  zero-ref    "field V172._reference (fldOffset=0x0)" P-INDEP
+;* V382 tmp349      [V382    ] (  0,  0   )     int  ->  zero-ref    "field V172._length (fldOffset=0x8)" P-INDEP
+;* V383 tmp350      [V383    ] (  0,  0   )   byref  ->  zero-ref    "field V173._reference (fldOffset=0x0)" P-DEP
+;* V384 tmp351      [V384    ] (  0,  0   )     int  ->  zero-ref    "field V173._length (fldOffset=0x8)" P-DEP
+;  V385 tmp352      [V385,T124] (  3,  6   )   byref  ->  registers   "field V175._reference (fldOffset=0x0)" P-INDEP
+;  V386 tmp353      [V386,T149] (  3,  6   )     int  ->  registers   "field V175._length (fldOffset=0x8)" P-INDEP
+;* V387 tmp354      [V387    ] (  0,  0   )   byref  ->  zero-ref    "field V181._reference (fldOffset=0x0)" P-INDEP
+;* V388 tmp355      [V388    ] (  0,  0   )     int  ->  zero-ref    "field V181._length (fldOffset=0x8)" P-INDEP
+;* V389 tmp356      [V389    ] (  0,  0   )   byref  ->  zero-ref    "field V189._reference (fldOffset=0x0)" P-INDEP
+;* V390 tmp357      [V390    ] (  0,  0   )     int  ->  zero-ref    "field V189._length (fldOffset=0x8)" P-INDEP
+;* V391 tmp358      [V391    ] (  0,  0   )     ref  ->  zero-ref    "field V201._array (fldOffset=0x0)" P-INDEP
+;* V392 tmp359      [V392    ] (  0,  0   )    long  ->  zero-ref    "field V201._allocationFreeContainer (fldOffset=0x8)" P-INDEP
+;  V393 tmp360      [V393,T82] (  3, 10   )     int  ->  rsi         "field V201._currentDepth (fldOffset=0x10)" P-INDEP
+;* V394 tmp361      [V394    ] (  0,  0   )     ref  ->  zero-ref    "field V216._array (fldOffset=0x0)" P-INDEP
+;* V395 tmp362      [V395    ] (  0,  0   )    long  ->  zero-ref    "field V216._allocationFreeContainer (fldOffset=0x8)" P-INDEP
+;  V396 tmp363      [V396,T150] (  3,  6   )     int  ->  rax         "field V216._currentDepth (fldOffset=0x10)" P-INDEP
+;* V397 tmp364      [V397    ] (  0,  0   )     ref  ->  zero-ref    "field V220._array (fldOffset=0x0)" P-INDEP
+;* V398 tmp365      [V398    ] (  0,  0   )    long  ->  zero-ref    "field V220._allocationFreeContainer (fldOffset=0x8)" P-INDEP
+;  V399 tmp366      [V399,T13] (  3, 40   )     int  ->  rcx         "field V220._currentDepth (fldOffset=0x10)" P-INDEP
+;* V400 tmp367      [V400    ] (  0,  0   )     ref  ->  zero-ref    "field V224._array (fldOffset=0x0)" P-INDEP
+;* V401 tmp368      [V401    ] (  0,  0   )    long  ->  zero-ref    "field V224._allocationFreeContainer (fldOffset=0x8)" P-INDEP
+;  V402 tmp369      [V402,T151] (  3,  6   )     int  ->  rsi         "field V224._currentDepth (fldOffset=0x10)" P-INDEP
+;* V403 tmp370      [V403    ] (  0,  0   )     ref  ->  zero-ref    "field V245._array (fldOffset=0x0)" P-INDEP
+;* V404 tmp371      [V404    ] (  0,  0   )    long  ->  zero-ref    "field V245._allocationFreeContainer (fldOffset=0x8)" P-INDEP
+;  V405 tmp372      [V405,T83] (  3, 10   )     int  ->  rsi         "field V245._currentDepth (fldOffset=0x10)" P-INDEP
+;* V406 tmp373      [V406    ] (  0,  0   )     ref  ->  zero-ref    "field V261._object (fldOffset=0x0)" P-INDEP
+;* V407 tmp374      [V407    ] (  0,  0   )     int  ->  zero-ref    "field V261._integer (fldOffset=0x8)" P-INDEP
+;  V408 tmp375      [V408,T125] (  3,  6   )     ref  ->  rsi         "field V262._object (fldOffset=0x0)" P-INDEP
+;  V409 tmp376      [V409,T152] (  3,  6   )     int  ->  registers   "field V262._integer (fldOffset=0x8)" P-INDEP
+;* V410 tmp377      [V410,T236] (  0,  0   )     ref  ->  zero-ref    "field V267._object (fldOffset=0x0)" P-INDEP
+;  V411 tmp378      [V411,T187] (  2,  4   )     int  ->  rax         "field V267._integer (fldOffset=0x8)" P-INDEP
+;* V412 tmp379      [V412    ] (  0,  0   )     ref  ->  zero-ref    "field V269._object (fldOffset=0x0)" P-INDEP
+;* V413 tmp380      [V413    ] (  0,  0   )     int  ->  zero-ref    "field V269._index (fldOffset=0x8)" P-INDEP
+;  V414 tmp381      [V414,T188] (  2,  4   )     int  ->  rcx         "field V269._length (fldOffset=0xc)" P-INDEP
+;* V415 tmp382      [V415    ] (  0,  0   )     ref  ->  zero-ref    "field V271._object (fldOffset=0x0)" P-DEP
+;* V416 tmp383      [V416    ] (  0,  0   )     int  ->  zero-ref    "field V271._integer (fldOffset=0x8)" P-DEP
+;* V417 tmp384      [V417    ] (  0,  0   )     ref  ->  zero-ref    "field V276._startObject (fldOffset=0x0)" P-INDEP
+;* V418 tmp385      [V418    ] (  0,  0   )     ref  ->  zero-ref    "field V276._endObject (fldOffset=0x8)" P-INDEP
+;* V419 tmp386      [V419    ] (  0,  0   )     int  ->  zero-ref    "field V276._startInteger (fldOffset=0x10)" P-INDEP
+;* V420 tmp387      [V420    ] (  0,  0   )     int  ->  zero-ref    "field V276._endInteger (fldOffset=0x14)" P-INDEP
+;  V421 tmp388      [V421,T171] (  2,  4   )   byref  ->  [rbp-0x9C0]  spill-single-def "field V281._reference (fldOffset=0x0)" P-INDEP
+;  V422 tmp389      [V422,T189] (  2,  4   )     int  ->   r8         "field V281._length (fldOffset=0x8)" P-INDEP
+;* V423 tmp390      [V423    ] (  0,  0   )     ref  ->  zero-ref    "field V293._array (fldOffset=0x0)" P-INDEP
+;* V424 tmp391      [V424    ] (  0,  0   )    long  ->  zero-ref    "field V293._allocationFreeContainer (fldOffset=0x8)" P-INDEP
+;  V425 tmp392      [V425,T153] (  3,  6   )     int  ->  rax         "field V293._currentDepth (fldOffset=0x10)" P-INDEP
+;* V426 tmp393      [V426    ] (  0,  0   )     ref  ->  zero-ref    "field V297._array (fldOffset=0x0)" P-INDEP
+;* V427 tmp394      [V427    ] (  0,  0   )    long  ->  zero-ref    "field V297._allocationFreeContainer (fldOffset=0x8)" P-INDEP
+;  V428 tmp395      [V428,T14] (  3, 40   )     int  ->  rcx         "field V297._currentDepth (fldOffset=0x10)" P-INDEP
+;* V429 tmp396      [V429    ] (  0,  0   )     ref  ->  zero-ref    "field V301._array (fldOffset=0x0)" P-INDEP
+;* V430 tmp397      [V430    ] (  0,  0   )    long  ->  zero-ref    "field V301._allocationFreeContainer (fldOffset=0x8)" P-INDEP
+;  V431 tmp398      [V431,T154] (  3,  6   )     int  ->  rsi         "field V301._currentDepth (fldOffset=0x10)" P-INDEP
+;* V432 tmp399      [V432    ] (  0,  0   )     ref  ->  zero-ref    "V153.[000..008)"
+;* V433 tmp400      [V433    ] (  0,  0   )     ref  ->  zero-ref    "V153.[008..016)"
+;* V434 tmp401      [V434    ] (  0,  0   )     ref  ->  zero-ref    "V153.[016..024)"
+;* V435 tmp402      [V435    ] (  0,  0   )    long  ->  zero-ref    "V153.[024..032)"
+;  V436 tmp403      [V436,T126] (  3,  6   )     ref  ->  rsi         "V260.[000..008)"
+;* V437 tmp404      [V437    ] (  0,  0   )     ref  ->  zero-ref    "V260.[008..016)"
+;  V438 tmp405      [V438,T155] (  3,  6   )     int  ->  rdi         "V260.[016..020)"
+;* V439 tmp406      [V439    ] (  0,  0   )     int  ->  zero-ref    "V260.[020..024)"
+;  V440 tmp407      [V440,T60] (  3, 12   )   byref  ->   r8         "Spilling address for field-by-field copy"
+;  V441 tmp408      [V441,T204] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
+;  V442 tmp409      [V442,T208] (  3,  3   )     int  ->  rsi         "index expr"
+;  V443 tmp410      [V443,T106] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V444 tmp411      [V444,T114] (  2,  8   )     int  ->  rsi         "argument with side effect"
+;  V445 tmp412      [V445,T107] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V446 tmp413      [V446,T214] (  3,  2.25)     ref  ->  rax         single-def "argument with side effect"
+;  V447 tmp414      [V447,T247] (  2,  1.50)    long  ->  [rbp-0x850]  spill-single-def "argument with side effect"
+;  V448 tmp415      [V448,T229] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V449 tmp416      [V449,T290] (  2,  0   )     ref  ->  rbx         "argument with side effect"
+;  V450 tmp417      [V450,T291] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V451 tmp418      [V451,T292] (  2,  0   )     ref  ->  rbx         "argument with side effect"
+;  V452 tmp419      [V452,T293] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V453 tmp420      [V453,T205] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
+;  V454 tmp421      [V454,T209] (  3,  3   )     int  ->  rsi         "index expr"
+;  V455 tmp422      [V455,T215] (  3,  2.25)     ref  ->  rax         single-def "argument with side effect"
+;  V456 tmp423      [V456,T248] (  2,  1.50)    long  ->  [rbp-0x858]  spill-single-def "argument with side effect"
+;  V457 tmp424      [V457,T206] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
+;  V458 tmp425      [V458,T22] (  3, 24   )     ref  ->  rdx         "arr expr"
+;  V459 tmp426      [V459,T23] (  3, 24   )     ref  ->  rsi         "arr expr"
+;* V460 tmp427      [V460,T116] (  0,  0   )     ref  ->  zero-ref    "arr expr"
+;  V461 tmp428      [V461,T108] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V462 tmp429      [V462,T61] (  3, 12   )     ref  ->  rdx         "arr expr"
+;  V463 tmp430      [V463,T230] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V464 tmp431      [V464,T232] (  2,  2   )    long  ->  rdi         "argument with side effect"
+;  V465 tmp432      [V465,T231] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
+;  V466 tmp433      [V466,T233] (  2,  2   )    long  ->  rdi         "argument with side effect"
+;* V467 cse0        [V467,T162] (  0,  0   )    long  ->  zero-ref    multi-def "CSE #23: conservative"
+;  V468 cse1        [V468,T28] (  6, 20   )   byref  ->  [rbp-0x9C8]  spill-single-def "CSE #39: conservative"
+;  V469 cse2        [V469,T62] (  3, 12   )   byref  ->  rsi         "CSE #59: conservative"
+;  V470 cse3        [V470,T163] (  9,  4.25)    long  ->  [rbp-0x860]  multi-def "CSE #35: conservative"
+;  V471 cse4        [V471,T65] (  3, 12   )    long  ->  rsi         "CSE #38: conservative"
+;  V472 cse5        [V472,T66] (  3, 12   )    long  ->  rdi         "CSE #58: conservative"
+;  V473 cse6        [V473,T68] (  9, 11.50)    long  ->  [rbp-0x868]  multi-def "CSE #19: conservative"
+;  V474 cse7        [V474,T156] (  3,  6   )     int  ->  rdi         "CSE #03: conservative"
+;  V475 cse8        [V475,T157] (  3,  6   )     int  ->  rdi         "CSE #20: conservative"
+;  V476 cse9        [V476,T45] (  3, 12   )     ref  ->  rsi         "CSE #55: conservative"
+;  V477 cse10       [V477,T89] (  4,  8   )     ref  ->  [rbp-0x9D0]  spill-single-def "CSE #22: conservative"
+;  V478 cse11       [V478,T158] (  3,  6   )     int  ->  rdi         "CSE #48: conservative"
+;  V479 cse12       [V479,T15] ( 35, 39   )   byref  ->  [rbp-0x9D8]  multi-def "CSE #02: moderate"
+;  V480 rat0        [V480,T20] (  7, 24.50)    long  ->  [rbp-0x870]  "Widened IV V26"
+;  V481 rat1        [V481,T26] (  6, 20.50)    long  ->  [rbp-0x878]  "Widened IV V15"
+;  V482 rat2        [V482,T249] (  2,  1.50)    long  ->  rdi         "Spilling to split statement for tree"
+;  V483 rat3        [V483,T190] (  5,  3.75)     ref  ->  rsi         "replacement local"
+;  V484 rat4        [V484,T251] (  3,  1.25)    long  ->  rdi         "CSE for expectedClsNode"
+;  V485 rat5        [V485,T191] (  5,  3.75)     ref  ->  registers   "replacement local"
+;  V486 rat6        [V486,T252] (  3,  1.25)    long  ->  rdi         "CSE for expectedClsNode"
+;  V487 rat7        [V487,T250] (  2,  1.50)    long  ->  rdi         "Spilling to split statement for tree"
+;  V488 rat8        [V488,T216] (  3,  2.25)     ref  ->  rsi         "Spilling to split statement for tree"
+;  V489 rat9        [V489,T192] (  5,  3.75)     ref  ->  rax         "replacement local"
+;  V490 rat10       [V490,T253] (  3,  1.25)    long  ->  rdi         "CSE for expectedClsNode"
+;  V491 rat11       [V491,T193] (  5,  3.75)     ref  ->  registers   "replacement local"
+;  V492 rat12       [V492,T254] (  3,  1.25)    long  ->  rdi         "CSE for expectedClsNode"
+;  V493 rat13       [V493,T194] (  5,  3.75)     ref  ->  rsi         "replacement local"
+;  V494 rat14       [V494,T255] (  3,  1.25)    long  ->  rdi         "CSE for expectedClsNode"
+;* V495 rat15       [V495,T217] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;* V496 rat16       [V496,T265] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V497 rat17       [V497,T210] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;* V498 rat18       [V498,T38] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;* V499 rat19       [V499,T115] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V500 rat20       [V500,T25] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V501 rat21       [V501,T218] (  3,  2.20)    long  ->  rdi         "Spilling to split statement for tree"
+;  V502 rat22       [V502,T222] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V503 rat23       [V503,T211] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V504 rat24       [V504,T219] (  3,  2.20)    long  ->  rdi         "Spilling to split statement for tree"
+;  V505 rat25       [V505,T223] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V506 rat26       [V506,T212] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V507 rat27       [V507,T63] (  3, 12   )     ref  ->  [rbp-0x9E0]  spill-single-def "delegate invoke call"
+;  TEMP_01                                     int  ->  [rbp-0x9E4]
+;  TEMP_02                                     ref  ->  [rbp-0x9F0]
 ;
-; Lcl frame size = 2088
+; Lcl frame size = 2584
 
 G_M61993_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 0x828
-       lea      rbp, [rsp+0x850]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x7F8], rax
+       sub      rsp, 0xA18
+       lea      rbp, [rsp+0xA40]
        vxorps   xmm8, xmm8, xmm8
-       vmovdqa  xmmword ptr [rbp-0x7F0], xmm8
-       mov      rax, -0x7B0
+       mov      rax, -0x9C0
        vmovdqa  xmmword ptr [rbp+rax-0x30], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x20], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x10], xmm8
        add      rax, 48
        jne      SHORT  -5 instr
        mov      qword ptr [rbp-0x30], rdi
-       mov      r14, rdi
+       mov      r13, rdi
        mov      rbx, rsi
        mov      rax, rdx
-       mov      r13, rcx
+       mov      r14, rcx
        mov      r15, r8
        mov      r12, r9
-						;; size=103 bbWeight=1 PerfScore 20.33
+						;; size=86 bbWeight=1 PerfScore 17.08
 G_M61993_IG02:
        mov      r10, gword ptr [r15+0x58]
-       mov      gword ptr [rbp-0x6C8], r10
+       mov      gword ptr [rbp-0x890], r10
        cmp      gword ptr [r10+0x08], 0
        je       SHORT G_M61993_IG04
 						;; size=18 bbWeight=1 PerfScore 7.00
 G_M61993_IG03:
        cmp      byte  ptr [r15+0x90], 0
        je       SHORT G_M61993_IG05
 						;; size=10 bbWeight=0.50 PerfScore 2.00
 G_M61993_IG04:
-       mov      rdi, r14
+       mov      rdi, r13
        mov      rsi, rbx
        mov      rdx, rax
-       mov      rcx, r13
+       mov      rcx, r14
        mov      r8, r15
        mov      r9, r12
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this
        call     [rax]System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this
-       jmp      G_M61993_IG172
+       jmp      G_M61993_IG206
 						;; size=35 bbWeight=0.50 PerfScore 3.38
 G_M61993_IG05:
        mov      rcx, gword ptr [r15+0x70]
-       mov      gword ptr [rbp-0x6D0], rcx
+       mov      gword ptr [rbp-0x8A0], rcx
        cmp      byte  ptr [r15+0x28], 0
        jne      SHORT G_M61993_IG07
        cmp      byte  ptr [r15+0x8B], 0
        jne      SHORT G_M61993_IG06
        cmp      byte  ptr [rbx+0x28], 1
-       jne      G_M61993_IG193
+       jne      G_M61993_IG235
        cmp      byte  ptr [r15+0x8F], 0
        jne      SHORT G_M61993_IG08
        xor      rdi, rdi
        jmp      SHORT G_M61993_IG09
 						;; size=52 bbWeight=0.50 PerfScore 10.62
 G_M61993_IG06:
-       mov      r10, gword ptr [rbp-0x6C8]
-       jmp      G_M61993_IG127
+       mov      r10, gword ptr [rbp-0x890]
+       jmp      G_M61993_IG161
 						;; size=12 bbWeight=0.25 PerfScore 0.75
 G_M61993_IG07:
-       mov      r10, gword ptr [rbp-0x6C8]
-       jmp      G_M61993_IG127
+       mov      r10, gword ptr [rbp-0x890]
+       jmp      G_M61993_IG161
 						;; size=12 bbWeight=0.25 PerfScore 0.75
 G_M61993_IG08:
        mov      rdi, gword ptr [r15]
        mov      esi, dword ptr [r15+0x20]
        add      esi, -2
        cmp      esi, dword ptr [rdi+0x08]
-       jae      G_M61993_IG175
+       jae      G_M61993_IG209
        imul     rsi, rsi, 112
        mov      rdi, gword ptr [rdi+rsi+0x10]
 						;; size=28 bbWeight=0.50 PerfScore 6.12
 G_M61993_IG09:
        test     rdi, rdi
-       je       G_M61993_IG16
+       je       G_M61993_IG52
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Metadata.JsonPropertyInfo:TryGetPrePopulatedValue(byref):ubyte:this
        call     [rax]System.Text.Json.Serialization.Metadata.JsonPropertyInfo:TryGetPrePopulatedValue(byref):ubyte:this
        test     eax, eax
-       je       G_M61993_IG16
+       je       G_M61993_IG52
        mov      rax, gword ptr [r15+0x50]
-       mov      gword ptr [rbp-0x6D8], rax
-       mov      rdi, qword ptr [r14]
-       mov      rsi, qword ptr [rdi+0x30]
-       mov      rsi, qword ptr [rsi+0x20]
-       mov      rcx, qword ptr [rsi+0x18]
-       test     rcx, rcx
-       je       SHORT G_M61993_IG11
-						;; size=63 bbWeight=0.50 PerfScore 9.12
+       mov      gword ptr [rbp-0x8A8], rax
+       cmp      dword ptr [r13], r13d
+       mov      rcx, gword ptr [rbp-0x890]
+       mov      rdx, gword ptr [rcx+0x38]
+       test     rdx, rdx
+       je       SHORT G_M61993_IG10
+       mov      rsi, rax
+       mov      rdi, gword ptr [rdx+0x08]
+       call     [rdx+0x18]System.Action`1[System.__Canon]:Invoke(System.__Canon):this
+       mov      rax, gword ptr [rbp-0x8A8]
+						;; size=80 bbWeight=0.50 PerfScore 11.25
 G_M61993_IG10:
-       mov      rax, gword ptr [rbp-0x6D8]
-       mov      rdi, rcx
-       jmp      SHORT G_M61993_IG12
-						;; size=12 bbWeight=0.40 PerfScore 1.30
-G_M61993_IG11:
-       mov      rsi, 0xD1FFAB1E      ; global ptr
-       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       lea      rdx, bword ptr [r15+0x30]
+       mov      bword ptr [rbp-0x9D8], rdx
+       mov      bword ptr [rbp-0x8F8], rdx
+       mov      rcx, gword ptr [rbp-0x890]
+       cmp      dword ptr [rcx+0xF4], 0
+       jle      SHORT G_M61993_IG11
+       mov      rdi, 0xD1FFAB1E      ; System.Collections.BitArray
+       call     CORINFO_HELP_NEWSFAST
+       mov      gword ptr [rbp-0x900], rax
+       mov      rcx, gword ptr [rbp-0x890]
+       mov      esi, dword ptr [rcx+0xF4]
        mov      rdi, rax
-       mov      rax, gword ptr [rbp-0x6D8]
-						;; size=25 bbWeight=0.10 PerfScore 0.25
+       xor      edx, edx
+       mov      r8, 0xD1FFAB1E      ; code for System.Collections.BitArray:.ctor(int,ubyte):this
+       call     [r8]System.Collections.BitArray:.ctor(int,ubyte):this
+       mov      rsi, bword ptr [rbp-0x8F8]
+       lea      rdi, bword ptr [rsi+0x48]
+       mov      rsi, gword ptr [rbp-0x900]
+       call     CORINFO_HELP_CHECKED_ASSIGN_REF
+						;; size=110 bbWeight=0.50 PerfScore 10.00
+G_M61993_IG11:
+       mov      rdi, rbx
+       mov      rsi, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
+       call     [rsi]System.Text.Json.Utf8JsonReader:Read():ubyte:this
+       cmp      byte  ptr [rbx+0x28], 2
+       je       G_M61993_IG43
+       cmp      byte  ptr [rbx+0x2D], 0
+       jne      SHORT G_M61993_IG13
+						;; size=31 bbWeight=4 PerfScore 46.00
 G_M61993_IG12:
+       mov      rdi, bword ptr [rbx+0x98]
+       mov      rax, rdi
+       mov      esi, dword ptr [rbx+0xA0]
+       mov      ecx, esi
+       jmp      SHORT G_M61993_IG16
+						;; size=20 bbWeight=2 PerfScore 13.00
+G_M61993_IG13:
+       vmovdqu  xmm0, xmmword ptr [rbx+0xA8]
+       vmovdqu  xmmword ptr [rbp-0x368], xmm0
+       mov      rdi, qword ptr [rbx+0xB8]
+       mov      qword ptr [rbp-0x358], rdi
+						;; size=30 bbWeight=2 PerfScore 16.00
+G_M61993_IG14:
+       lea      rdi, [rbp-0x368]
+       mov      rax, 0xD1FFAB1E      ; code for System.Buffers.BuffersExtensions:ToArray[ubyte](byref):ubyte[]
+       call     [rax]System.Buffers.BuffersExtensions:ToArray[ubyte](byref):ubyte[]
+       test     rax, rax
+       jne      SHORT G_M61993_IG15
+       xor      rax, rax
+       xor      ecx, ecx
+       jmp      SHORT G_M61993_IG16
+						;; size=30 bbWeight=2 PerfScore 15.00
+G_M61993_IG15:
+       lea      rcx, bword ptr [rax+0x10]
+       mov      edi, dword ptr [rax+0x08]
+       mov      rax, rcx
+       mov      ecx, edi
+						;; size=12 bbWeight=2 PerfScore 6.00
+G_M61993_IG16:
+       cmp      byte  ptr [rbx+0x2E], 0
+       jne      SHORT G_M61993_IG18
+						;; size=6 bbWeight=4 PerfScore 16.00
+G_M61993_IG17:
+       mov      rdx, rax
+       mov      r8d, ecx
+       jmp      SHORT G_M61993_IG19
+						;; size=8 bbWeight=2 PerfScore 5.00
+G_M61993_IG18:
+       mov      rdi, rax
+       mov      esi, ecx
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonReaderHelper:GetUnescapedSpan(System.ReadOnlySpan`1[ubyte]):System.ReadOnlySpan`1[ubyte]
+       call     [rax]System.Text.Json.JsonReaderHelper:GetUnescapedSpan(System.ReadOnlySpan`1[ubyte]):System.ReadOnlySpan`1[ubyte]
+       mov      ecx, edx
+       mov      rdx, rax
+       mov      r8d, ecx
+						;; size=25 bbWeight=2 PerfScore 9.00
+G_M61993_IG19:
+       cmp      byte  ptr [r15+0x8B], 0
+       je       SHORT G_M61993_IG23
+						;; size=10 bbWeight=4 PerfScore 16.00
+G_M61993_IG20:
+       mov      rax, bword ptr [rbp-0x9D8]
+       mov      rdi, rax
+       cmp      byte  ptr [rdi+0x5E], 1
+       je       SHORT G_M61993_IG21
+       mov      rcx, gword ptr [rdi+0x28]
+       jmp      SHORT G_M61993_IG22
+						;; size=22 bbWeight=2 PerfScore 18.50
+G_M61993_IG21:
+       mov      rcx, gword ptr [rdi+0x30]
+						;; size=4 bbWeight=2 PerfScore 4.00
+G_M61993_IG22:
+       mov      bword ptr [rbp-0x9A8], rdx
+       mov      rdi, rdx
+       mov      dword ptr [rbp-0x840], r8d
+       mov      esi, r8d
+       mov      rdx, gword ptr [rcx+0x88]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Text.Json.JsonSerializer:IsMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte
+       call     [rcx]System.Text.Json.JsonSerializer:IsMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte
+       test     eax, eax
+       je       G_M61993_IG34
+       cmp      byte  ptr [r14+0x8B], 0
+       mov      rdx, bword ptr [rbp-0x9A8]
+       mov      r8d, dword ptr [rbp-0x840]
+       je       G_M61993_IG210
+						;; size=75 bbWeight=2 PerfScore 30.00
+G_M61993_IG23:
+       mov      dword ptr [rsp], 1
+       mov      rsi, rdx
+       mov      edx, r8d
+       lea      r9, [rbp-0x350]
+       mov      rdi, gword ptr [rbp-0x8A8]
+       mov      rcx, r15
+       mov      r8, r14
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonSerializer:LookupProperty(System.Object,System.ReadOnlySpan`1[ubyte],byref,System.Text.Json.JsonSerializerOptions,byref,ubyte):System.Text.Json.Serialization.Metadata.JsonPropertyInfo
+       call     [rax]System.Text.Json.JsonSerializer:LookupProperty(System.Object,System.ReadOnlySpan`1[ubyte],byref,System.Text.Json.JsonSerializerOptions,byref,ubyte):System.Text.Json.Serialization.Metadata.JsonPropertyInfo
+       mov      gword ptr [rbp-0x8F0], rax
+       movzx    rcx, byte  ptr [rbp-0x350]
+       mov      dword ptr [rbp-0x42C], ecx
+       cmp      byte  ptr [rax+0x9B], 0
+       jne      G_M61993_IG38
+						;; size=78 bbWeight=4 PerfScore 55.00
+G_M61993_IG24:
+       cmp      byte  ptr [rbx+0x24], 0
+       je       G_M61993_IG35
+       cmp      byte  ptr [rbx+0x28], 5
+       jne      SHORT G_M61993_IG25
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
+       call     [rax]System.Text.Json.Utf8JsonReader:Read():ubyte:this
+						;; size=31 bbWeight=2 PerfScore 23.00
+G_M61993_IG25:
+       movzx    rdi, byte  ptr [rbx+0x28]
+       mov      eax, edi
+       cmp      eax, 1
+       je       SHORT G_M61993_IG26
+       cmp      eax, 3
+       jne      G_M61993_IG40
+						;; size=21 bbWeight=2 PerfScore 9.50
+G_M61993_IG26:
+       mov      eax, dword ptr [rbx+0x58]
+       mov      ecx, eax
+       cmp      edi, 1
+       je       SHORT G_M61993_IG27
+       cmp      edi, 3
+       jne      SHORT G_M61993_IG28
+						;; size=15 bbWeight=2 PerfScore 9.50
+G_M61993_IG27:
+       lea      ecx, [rax-0x01]
+						;; size=3 bbWeight=2 PerfScore 1.00
+G_M61993_IG28:
+       mov      dword ptr [rbp-0x4F4], ecx
+						;; size=6 bbWeight=2 PerfScore 2.00
+G_M61993_IG29:
+       mov      rdi, rbx
+       mov      rcx, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
+       call     [rcx]System.Text.Json.Utf8JsonReader:Read():ubyte:this
+       mov      ecx, dword ptr [rbx+0x58]
+       mov      edi, ecx
+       movzx    rsi, byte  ptr [rbx+0x28]
+       cmp      esi, 1
+       je       SHORT G_M61993_IG31
+						;; size=30 bbWeight=16 PerfScore 144.00
+G_M61993_IG30:
+       cmp      esi, 3
+       jne      SHORT G_M61993_IG32
+						;; size=5 bbWeight=8 PerfScore 10.00
+G_M61993_IG31:
+       lea      edi, [rcx-0x01]
+						;; size=3 bbWeight=8 PerfScore 4.00
+G_M61993_IG32:
+       mov      ecx, dword ptr [rbp-0x4F4]
+       cmp      ecx, edi
+       jl       SHORT G_M61993_IG29
+						;; size=10 bbWeight=16 PerfScore 36.00
+G_M61993_IG33:
+       jmp      G_M61993_IG40
+						;; size=5 bbWeight=2 PerfScore 4.00
+G_M61993_IG34:
+       mov      rdx, bword ptr [rbp-0x9A8]
+       mov      r8d, dword ptr [rbp-0x840]
+       jmp      G_M61993_IG23
+						;; size=19 bbWeight=1 PerfScore 4.00
+G_M61993_IG35:
+       lea      rdi, bword ptr [rbp-0x4F0]
+       mov      rsi, rbx
+       mov      ecx, 24
+       rep movsq 
+       mov      esi, dword ptr [rbx+0x58]
+       mov      eax, esi
+       movzx    rdi, byte  ptr [rbx+0x28]
+       cmp      edi, 1
+       je       SHORT G_M61993_IG36
+       cmp      edi, 3
+       jne      SHORT G_M61993_IG37
+						;; size=38 bbWeight=2 PerfScore 65.50
+G_M61993_IG36:
+       lea      eax, [rsi-0x01]
+						;; size=3 bbWeight=2 PerfScore 1.00
+G_M61993_IG37:
+       mov      rdi, rbx
+       mov      esi, eax
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:TrySkipPartial(int):ubyte:this
+       call     [rax]System.Text.Json.Utf8JsonReader:TrySkipPartial(int):ubyte:this
+       test     eax, eax
+       jne      G_M61993_IG40
+       mov      rdi, rbx
+       lea      rsi, bword ptr [rbp-0x4F0]
+       mov      ecx, 6
+       rep movsq 
+       call     CORINFO_HELP_ASSIGN_BYREF
+       movsq    
+       movsq    
+       call     CORINFO_HELP_ASSIGN_BYREF
+       movsq    
+       movsq    
+       call     CORINFO_HELP_ASSIGN_BYREF
+       movsq    
+       call     CORINFO_HELP_ASSIGN_BYREF
+       movsq    
+       call     CORINFO_HELP_ASSIGN_BYREF
+       call     CORINFO_HELP_ASSIGN_BYREF
+       movsq    
+       call     CORINFO_HELP_ASSIGN_BYREF
+       movsq    
+       call     CORINFO_HELP_ASSIGN_BYREF
+       call     CORINFO_HELP_ASSIGN_BYREF
+       movsq    
+       jmp      SHORT G_M61993_IG40
+						;; size=108 bbWeight=2 PerfScore 102.00
+G_M61993_IG38:
+       mov      rdi, rbx
+       mov      rdx, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
+       call     [rdx]System.Text.Json.Utf8JsonReader:Read():ubyte:this
+       cmp      dword ptr [rbp-0x42C], 0
+       jne      SHORT G_M61993_IG39
+       mov      rdi, gword ptr [rbp-0x8F0]
+       mov      rsi, gword ptr [rbp-0x8A8]
+       mov      rdx, r15
+       mov      rcx, rbx
+       mov      rax, qword ptr [rdi]
+       mov      rax, qword ptr [rax+0x48]
+       call     [rax+0x30]System.Text.Json.Serialization.Metadata.JsonPropertyInfo:ReadJsonAndSetMember(System.Object,byref,byref):ubyte:this
+       jmp      SHORT G_M61993_IG40
+						;; size=56 bbWeight=2 PerfScore 36.00
+G_M61993_IG39:
+       mov      rdi, gword ptr [rbp-0x8F0]
+       mov      rsi, gword ptr [rbp-0x8A8]
+       mov      rdx, r15
+       mov      rcx, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Metadata.JsonPropertyInfo:ReadJsonAndAddExtensionProperty(System.Object,byref,byref):ubyte:this
+       call     [rax]System.Text.Json.Serialization.Metadata.JsonPropertyInfo:ReadJsonAndAddExtensionProperty(System.Object,byref,byref):ubyte:this
+						;; size=32 bbWeight=2 PerfScore 11.50
+G_M61993_IG40:
+       mov      rax, bword ptr [rbp-0x9D8]
        mov      rsi, rax
-       mov      rdx, gword ptr [rbp-0x6C8]
-       mov      rcx, r13
-       mov      r8, rbx
-       mov      r9, r15
-       mov      r10, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.__Canon]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref)
-       call     [r10]System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.__Canon]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref)
-       mov      rdi, qword ptr [r14]
+       xor      rdi, rdi
+       mov      gword ptr [rsi], rdi
+						;; size=15 bbWeight=4 PerfScore 10.00
+G_M61993_IG41:
+       mov      gword ptr [rsi+0x08], rdi
+						;; size=4 bbWeight=4 PerfScore 4.00
+G_M61993_IG42:
+       mov      gword ptr [rsi+0x10], rdi
+       mov      byte  ptr [rsi+0x58], 0
+       jmp      G_M61993_IG11
+						;; size=13 bbWeight=4 PerfScore 16.00
+G_M61993_IG43:
+       mov      r14, gword ptr [rbp-0x890]
+       mov      rcx, gword ptr [r14+0x40]
+       test     rcx, rcx
+       je       SHORT G_M61993_IG44
+       mov      rsi, gword ptr [rbp-0x8A8]
+       mov      rdi, gword ptr [rcx+0x08]
+       call     [rcx+0x18]System.Action`1[System.__Canon]:Invoke(System.__Canon):this
+						;; size=30 bbWeight=0.50 PerfScore 5.12
+G_M61993_IG44:
+       mov      rax, bword ptr [rbp-0x9D8]
+       mov      rbx, rax
+       cmp      dword ptr [r14+0xF4], 0
+       jle      G_M61993_IG51
+       mov      rdi, gword ptr [rbx+0x48]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.BitArray:HasAllSet():ubyte:this
+       cmp      dword ptr [rdi], edi
+       call     [rcx]System.Collections.BitArray:HasAllSet():ubyte:this
+       test     eax, eax
+       jne      SHORT G_M61993_IG50
+       mov      rsi, gword ptr [rbx+0x48]
+       mov      rdi, r14
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowJsonException_JsonRequiredPropertyMissing(System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Collections.BitArray)
+       call     [rax]System.Text.Json.ThrowHelper:ThrowJsonException_JsonRequiredPropertyMissing(System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Collections.BitArray)
+       mov      rax, bword ptr [rbp-0x9D8]
+						;; size=72 bbWeight=0.50 PerfScore 10.62
+G_M61993_IG45:
+       cmp      gword ptr [r15+0x68], 0
+       je       SHORT G_M61993_IG46
+       mov      rsi, rax
+       mov      rdi, r14
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Metadata.JsonTypeInfo:UpdateSortedPropertyCache(byref):this
+       call     [rax]System.Text.Json.Serialization.Metadata.JsonTypeInfo:UpdateSortedPropertyCache(byref):this
+						;; size=25 bbWeight=0.50 PerfScore 3.88
+G_M61993_IG46:
+       mov      rdi, qword ptr [r13]
        mov      rdi, qword ptr [rdi+0x30]
        mov      rdi, qword ptr [rdi+0x20]
-       mov      rdi, qword ptr [rdi]
-       mov      rbx, gword ptr [rbp-0x6D8]
-       mov      rsi, rbx
+       mov      rbx, qword ptr [rdi]
+       mov      rdi, rbx
+       mov      r15, gword ptr [rbp-0x8A8]
+       mov      rsi, r15
        test     rsi, rsi
-       je       SHORT G_M61993_IG15
-						;; size=61 bbWeight=0.50 PerfScore 7.88
-G_M61993_IG13:
+       je       SHORT G_M61993_IG49
+						;; size=33 bbWeight=0.50 PerfScore 5.38
+G_M61993_IG47:
        cmp      qword ptr [rsi], rdi
-       je       SHORT G_M61993_IG15
+       je       SHORT G_M61993_IG49
 						;; size=5 bbWeight=0.25 PerfScore 1.00
-G_M61993_IG14:
-       mov      rsi, rbx
+G_M61993_IG48:
+       mov      rsi, r15
        call     CORINFO_HELP_CHKCASTANY
        mov      rsi, rax
 						;; size=11 bbWeight=0.12 PerfScore 0.19
-G_M61993_IG15:
+G_M61993_IG49:
        mov      rdi, r12
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       jmp      G_M61993_IG123
+       jmp      G_M61993_IG156
 						;; size=13 bbWeight=0.50 PerfScore 1.62
-G_M61993_IG16:
+G_M61993_IG50:
+       mov      rax, bword ptr [rbp-0x9D8]
+       jmp      SHORT G_M61993_IG45
+						;; size=9 bbWeight=0.25 PerfScore 0.75
+G_M61993_IG51:
+       mov      rax, bword ptr [rbp-0x9D8]
+       jmp      SHORT G_M61993_IG45
+						;; size=9 bbWeight=0.25 PerfScore 0.75
+G_M61993_IG52:
        lea      rsi, bword ptr [rbx+0x80]
        mov      rdi, gword ptr [rsi]
        mov      rax, gword ptr [rsi+0x08]
-       mov      gword ptr [rbp-0x728], rax
+       mov      gword ptr [rbp-0x908], rax
        mov      edx, dword ptr [rsi+0x10]
        and      edx, 0xD1FFAB1E
-       mov      dword ptr [rbp-0x34C], edx
+       mov      dword ptr [rbp-0x4F8], edx
        mov      r8d, dword ptr [rsi+0x14]
        and      r8d, 0xD1FFAB1E
-       mov      dword ptr [rbp-0x350], r8d
+       mov      dword ptr [rbp-0x4FC], r8d
        cmp      rdi, rax
-       je       SHORT G_M61993_IG17
+       je       SHORT G_M61993_IG53
        mov      rsi, rdi
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.ReadOnlySequenceSegment`1[ubyte]
        call     CORINFO_HELP_CHKCASTCLASS
-       mov      gword ptr [rbp-0x730], rax
-       mov      rsi, gword ptr [rbp-0x728]
+       mov      gword ptr [rbp-0x910], rax
+       mov      rsi, gword ptr [rbp-0x908]
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.ReadOnlySequenceSegment`1[ubyte]
        call     CORINFO_HELP_CHKCASTCLASS
-       movsxd   rdi, dword ptr [rbp-0x350]
+       movsxd   rdi, dword ptr [rbp-0x4FC]
        add      rdi, qword ptr [rax+0x10]
-       movsxd   rax, dword ptr [rbp-0x34C]
-       mov      rcx, gword ptr [rbp-0x730]
+       movsxd   rax, dword ptr [rbp-0x4F8]
+       mov      rcx, gword ptr [rbp-0x910]
        add      rax, qword ptr [rcx+0x10]
        sub      rdi, rax
-       jmp      SHORT G_M61993_IG18
+       jmp      SHORT G_M61993_IG54
 						;; size=140 bbWeight=0.50 PerfScore 16.62
-G_M61993_IG17:
-       mov      r8d, dword ptr [rbp-0x350]
-       sub      r8d, dword ptr [rbp-0x34C]
+G_M61993_IG53:
+       mov      r8d, dword ptr [rbp-0x4FC]
+       sub      r8d, dword ptr [rbp-0x4F8]
        movsxd   rdi, r8d
 						;; size=17 bbWeight=0.50 PerfScore 1.62
-G_M61993_IG18:
+G_M61993_IG54:
        test     rdi, rdi
-       je       SHORT G_M61993_IG19
+       je       SHORT G_M61993_IG55
        xor      rax, rax
        xor      edx, edx
-       jmp      SHORT G_M61993_IG20
+       jmp      SHORT G_M61993_IG56
 						;; size=11 bbWeight=0.50 PerfScore 1.88
-G_M61993_IG19:
+G_M61993_IG55:
        mov      rax, bword ptr [rbx+0x30]
        mov      edx, dword ptr [rbx+0x38]
 						;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M61993_IG20:
-       mov      bword ptr [rbp-0x7B0], rax
-       mov      dword ptr [rbp-0x688], edx
+G_M61993_IG56:
+       mov      bword ptr [rbp-0x990], rax
+       mov      dword ptr [rbp-0x834], edx
        mov      rsi, gword ptr [rbx+0x80]
-       mov      gword ptr [rbp-0x7B8], rsi
+       mov      gword ptr [rbp-0x998], rsi
        mov      r8, gword ptr [rbx+0x88]
-       mov      gword ptr [rbp-0x7C0], r8
+       mov      gword ptr [rbp-0x9A0], r8
        mov      r9d, dword ptr [rbx+0x90]
-       mov      dword ptr [rbp-0x68C], r9d
+       mov      dword ptr [rbp-0x838], r9d
        mov      r11d, dword ptr [rbx+0x94]
-       mov      dword ptr [rbp-0x690], r11d
+       mov      dword ptr [rbp-0x83C], r11d
        mov      rdi, gword ptr [r15+0x58]
-       mov      gword ptr [rbp-0x760], rdi
+       mov      gword ptr [rbp-0x940], rdi
        cmp      byte  ptr [rdi+0x103], 0
-       jne      G_M61993_IG176
+       jne      G_M61993_IG219
        mov      eax, dword ptr [rdi+0xF0]
-       mov      dword ptr [rbp-0x7EC], eax
+       mov      dword ptr [rbp-0x9E4], eax
        mov      rax, gword ptr [rdi+0x08]
        mov      rax, gword ptr [rax+0x10]
-       mov      edi, dword ptr [rbp-0x7EC]
+       mov      edi, dword ptr [rbp-0x9E4]
        cmp      edi, dword ptr [rax+0x10]
-       jne      G_M61993_IG195
+       jne      G_M61993_IG237
        lea      rax, bword ptr [r15+0x30]
-       mov      bword ptr [rbp-0x7E8], rax
-       mov      bword ptr [rbp-0x768], rax
-       mov      rdi, gword ptr [rbp-0x760]
+       mov      bword ptr [rbp-0x9D8], rax
+       mov      bword ptr [rbp-0x948], rax
+       mov      rdi, gword ptr [rbp-0x940]
        cmp      dword ptr [rdi+0xF4], 0
-       jle      SHORT G_M61993_IG21
+       jle      SHORT G_M61993_IG57
        mov      rdi, 0xD1FFAB1E      ; System.Collections.BitArray
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x770], rax
-       mov      rcx, gword ptr [rbp-0x760]
+       mov      gword ptr [rbp-0x950], rax
+       mov      rcx, gword ptr [rbp-0x940]
        mov      esi, dword ptr [rcx+0xF4]
        mov      rdi, rax
        xor      edx, edx
        mov      rcx, 0xD1FFAB1E      ; code for System.Collections.BitArray:.ctor(int,ubyte):this
        call     [rcx]System.Collections.BitArray:.ctor(int,ubyte):this
-       mov      rdi, bword ptr [rbp-0x768]
+       mov      rdi, bword ptr [rbp-0x948]
        lea      rdi, bword ptr [rdi+0x48]
-       mov      rsi, gword ptr [rbp-0x770]
+       mov      rsi, gword ptr [rbp-0x950]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
 						;; size=237 bbWeight=0.50 PerfScore 26.50
-G_M61993_IG21:
+G_M61993_IG57:
        xor      rdi, rdi
        mov      gword ptr [r15+0x30], rdi
-       mov      rdi, r14
+       mov      rdi, r13
        mov      rsi, r15
-       mov      rdx, r13
-       mov      gword ptr [rbp-0x7F8], rdx
-       mov      rdx, qword ptr [r14]
+       mov      rdx, r14
+       mov      gword ptr [rbp-0x9F0], rdx
+       mov      rdx, qword ptr [r13]
        mov      rdx, qword ptr [rdx+0x68]
-       mov      qword ptr [rbp-0x6A0], rdx
-       mov      rdx, gword ptr [rbp-0x7F8]
-       mov      r10, qword ptr [rbp-0x6A0]
-       call     [r10+0x08]System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:InitializeConstructorArgumentCaches(byref,System.Text.Json.JsonSerializerOptions):this
-						;; size=54 bbWeight=0.50 PerfScore 6.50
-G_M61993_IG22:
+       mov      qword ptr [rbp-0x868], rdx
+       mov      rdx, gword ptr [rbp-0x9F0]
+       mov      r11, qword ptr [rbp-0x868]
+       call     [r11+0x08]System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:InitializeConstructorArgumentCaches(byref,System.Text.Json.JsonSerializerOptions):this
+						;; size=55 bbWeight=0.50 PerfScore 6.50
+G_M61993_IG58:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
        call     [rax]System.Text.Json.Utf8JsonReader:Read():ubyte:this
        cmp      byte  ptr [rbx+0x28], 2
-       je       G_M61993_IG75
+       je       G_M61993_IG110
        cmp      byte  ptr [rbx+0x2D], 0
-       jne      SHORT G_M61993_IG24
+       jne      SHORT G_M61993_IG60
 						;; size=31 bbWeight=4 PerfScore 46.00
-G_M61993_IG23:
+G_M61993_IG59:
        mov      rdi, bword ptr [rbx+0x98]
        mov      rax, rdi
        mov      esi, dword ptr [rbx+0xA0]
        mov      ecx, esi
-       jmp      SHORT G_M61993_IG27
+       jmp      SHORT G_M61993_IG63
 						;; size=20 bbWeight=2 PerfScore 13.00
-G_M61993_IG24:
+G_M61993_IG60:
        vmovdqu  xmm0, xmmword ptr [rbx+0xA8]
-       vmovdqu  xmmword ptr [rbp-0x410], xmm0
+       vmovdqu  xmmword ptr [rbp-0x5C0], xmm0
        mov      rdi, qword ptr [rbx+0xB8]
-       mov      qword ptr [rbp-0x400], rdi
+       mov      qword ptr [rbp-0x5B0], rdi
 						;; size=30 bbWeight=2 PerfScore 16.00
-G_M61993_IG25:
-       lea      rdi, [rbp-0x410]
+G_M61993_IG61:
+       lea      rdi, [rbp-0x5C0]
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.BuffersExtensions:ToArray[ubyte](byref):ubyte[]
        call     [rax]System.Buffers.BuffersExtensions:ToArray[ubyte](byref):ubyte[]
        test     rax, rax
-       jne      SHORT G_M61993_IG26
+       jne      SHORT G_M61993_IG62
        xor      rax, rax
        xor      ecx, ecx
-       jmp      SHORT G_M61993_IG27
+       jmp      SHORT G_M61993_IG63
 						;; size=30 bbWeight=2 PerfScore 15.00
-G_M61993_IG26:
+G_M61993_IG62:
        lea      rcx, bword ptr [rax+0x10]
        mov      edi, dword ptr [rax+0x08]
        mov      rax, rcx
        mov      ecx, edi
 						;; size=12 bbWeight=2 PerfScore 6.00
-G_M61993_IG27:
+G_M61993_IG63:
        cmp      byte  ptr [rbx+0x2E], 0
-       jne      SHORT G_M61993_IG29
+       jne      SHORT G_M61993_IG65
 						;; size=6 bbWeight=4 PerfScore 16.00
-G_M61993_IG28:
+G_M61993_IG64:
        mov      rdx, rax
        mov      r8d, ecx
-       jmp      SHORT G_M61993_IG30
+       jmp      SHORT G_M61993_IG66
 						;; size=8 bbWeight=2 PerfScore 5.00
-G_M61993_IG29:
+G_M61993_IG65:
        mov      rdi, rax
        mov      esi, ecx
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonReaderHelper:GetUnescapedSpan(System.ReadOnlySpan`1[ubyte]):System.ReadOnlySpan`1[ubyte]
        call     [rax]System.Text.Json.JsonReaderHelper:GetUnescapedSpan(System.ReadOnlySpan`1[ubyte]):System.ReadOnlySpan`1[ubyte]
        mov      ecx, edx
        mov      rdx, rax
        mov      r8d, ecx
 						;; size=25 bbWeight=2 PerfScore 9.00
-G_M61993_IG30:
+G_M61993_IG66:
+       mov      bword ptr [rbp-0x9B8], rdx
+       mov      rax, rdx
+       mov      bword ptr [rbp-0x9B0], rax
+       mov      dword ptr [rbp-0x848], r8d
+       mov      ecx, r8d
+       mov      dword ptr [rbp-0x844], ecx
        cmp      byte  ptr [r15+0x8B], 0
-       je       G_M61993_IG41
-						;; size=14 bbWeight=4 PerfScore 16.00
-G_M61993_IG31:
-       mov      rax, bword ptr [rbp-0x7E8]
-       mov      rdi, rax
+       je       G_M61993_IG76
+						;; size=47 bbWeight=4 PerfScore 34.00
+G_M61993_IG67:
+       mov      r9, bword ptr [rbp-0x9D8]
+       mov      rdi, r9
        cmp      byte  ptr [rdi+0x5E], 1
-       je       SHORT G_M61993_IG32
-       mov      rcx, gword ptr [rdi+0x28]
-       jmp      SHORT G_M61993_IG33
+       je       SHORT G_M61993_IG68
+       mov      r10, gword ptr [rdi+0x28]
+       jmp      SHORT G_M61993_IG69
 						;; size=22 bbWeight=2 PerfScore 18.50
-G_M61993_IG32:
-       mov      rcx, gword ptr [rdi+0x30]
+G_M61993_IG68:
+       mov      r10, gword ptr [rdi+0x30]
 						;; size=4 bbWeight=2 PerfScore 4.00
-G_M61993_IG33:
-       mov      bword ptr [rbp-0x7C8], rdx
-       mov      rdi, rdx
-       mov      dword ptr [rbp-0x694], r8d
-       mov      esi, r8d
-       mov      rdx, gword ptr [rcx+0x88]
-       mov      rcx, 0xD1FFAB1E      ; code for System.Text.Json.JsonSerializer:IsMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte
-       call     [rcx]System.Text.Json.JsonSerializer:IsMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte
+G_M61993_IG69:
+       mov      rdi, rax
+       mov      esi, ecx
+       mov      rdx, gword ptr [r10+0x88]
+       mov      r10, 0xD1FFAB1E      ; code for System.Text.Json.JsonSerializer:IsMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte
+       call     [r10]System.Text.Json.JsonSerializer:IsMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte
        test     eax, eax
-       je       SHORT G_M61993_IG40
-       cmp      byte  ptr [r13+0x8B], 0
-       je       G_M61993_IG177
-						;; size=57 bbWeight=2 PerfScore 26.00
-G_M61993_IG34:
+       mov      rax, bword ptr [rbp-0x9B0]
+       mov      ecx, dword ptr [rbp-0x844]
+       je       SHORT G_M61993_IG76
+       cmp      byte  ptr [r14+0x8B], 0
+       je       G_M61993_IG220
+						;; size=56 bbWeight=2 PerfScore 26.00
+G_M61993_IG70:
        mov      esi, dword ptr [rbx+0x58]
        mov      eax, esi
        movzx    rdi, byte  ptr [rbx+0x28]
        cmp      edi, 1
-       je       SHORT G_M61993_IG36
+       je       SHORT G_M61993_IG72
 						;; size=15 bbWeight=4 PerfScore 22.00
-G_M61993_IG35:
+G_M61993_IG71:
        cmp      edi, 3
-       jne      SHORT G_M61993_IG37
+       jne      SHORT G_M61993_IG73
 						;; size=5 bbWeight=2 PerfScore 2.50
-G_M61993_IG36:
+G_M61993_IG72:
        lea      eax, [rsi-0x01]
 						;; size=3 bbWeight=2 PerfScore 1.00
-G_M61993_IG37:
+G_M61993_IG73:
        mov      rdi, rbx
        mov      esi, eax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:TrySkipPartial(int):ubyte:this
        call     [rax]System.Text.Json.Utf8JsonReader:TrySkipPartial(int):ubyte:this
-       mov      rax, bword ptr [rbp-0x7E8]
+       mov      rax, bword ptr [rbp-0x9D8]
        mov      rsi, rax
        xor      rdx, rdx
        mov      gword ptr [rsi], rdx
 						;; size=32 bbWeight=4 PerfScore 25.00
-G_M61993_IG38:
+G_M61993_IG74:
        mov      gword ptr [rsi+0x08], rdx
 						;; size=4 bbWeight=4 PerfScore 4.00
-G_M61993_IG39:
+G_M61993_IG75:
        mov      gword ptr [rsi+0x10], rdx
        mov      byte  ptr [rsi+0x58], 0
-       jmp      G_M61993_IG22
-						;; size=13 bbWeight=4 PerfScore 16.00
-G_M61993_IG40:
-       mov      rdx, bword ptr [rbp-0x7C8]
-       mov      r8d, dword ptr [rbp-0x694]
-						;; size=14 bbWeight=1 PerfScore 2.00
-G_M61993_IG41:
-       lea      rsi, [rbp-0x358]
+       mov      bword ptr [rbp-0x9D8], rax
+       jmp      G_M61993_IG58
+						;; size=20 bbWeight=4 PerfScore 20.00
+G_M61993_IG76:
+       lea      rsi, [rbp-0x508]
        mov      qword ptr [rsp], rsi
-       mov      bword ptr [rbp-0x7C8], rdx
-       mov      rsi, rdx
-       mov      dword ptr [rbp-0x694], r8d
-       mov      edx, r8d
-       mov      rdi, r14
+       mov      rsi, rax
+       mov      edx, ecx
+       mov      rdi, r13
        mov      rcx, r15
        mov      r8, rbx
-       mov      r9, r13
-       mov      r10, qword ptr [rbp-0x6A0]
+       mov      r9, r14
+       mov      r10, qword ptr [rbp-0x868]
        call     [r10+0x20]System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:TryLookupConstructorParameter(System.ReadOnlySpan`1[ubyte],byref,byref,System.Text.Json.JsonSerializerOptions,byref):ubyte:this
        test     eax, eax
-       je       G_M61993_IG59
+       je       G_M61993_IG94
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
        call     [rax]System.Text.Json.Utf8JsonReader:Read():ubyte:this
-       mov      rdi, gword ptr [rbp-0x358]
+       mov      rdi, gword ptr [rbp-0x508]
        cmp      byte  ptr [rdi+0x35], 0
-       jne      G_M61993_IG57
+       jne      G_M61993_IG92
        cmp      byte  ptr [rbx+0x24], 0
-       je       SHORT G_M61993_IG52
-						;; size=100 bbWeight=4 PerfScore 91.00
-G_M61993_IG42:
+       je       SHORT G_M61993_IG87
+						;; size=85 bbWeight=4 PerfScore 83.00
+G_M61993_IG77:
        cmp      byte  ptr [rbx+0x28], 5
-       jne      SHORT G_M61993_IG43
+       jne      SHORT G_M61993_IG78
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
        call     [rax]System.Text.Json.Utf8JsonReader:Read():ubyte:this
 						;; size=21 bbWeight=2 PerfScore 15.00
-G_M61993_IG43:
+G_M61993_IG78:
        movzx    rdi, byte  ptr [rbx+0x28]
        mov      eax, edi
        cmp      eax, 1
-       je       SHORT G_M61993_IG44
+       je       SHORT G_M61993_IG79
        cmp      eax, 3
-       jne      G_M61993_IG55
+       jne      G_M61993_IG90
 						;; size=21 bbWeight=2 PerfScore 9.50
-G_M61993_IG44:
+G_M61993_IG79:
        mov      eax, dword ptr [rbx+0x58]
        mov      ecx, eax
        cmp      edi, 1
-       je       SHORT G_M61993_IG45
+       je       SHORT G_M61993_IG80
        cmp      edi, 3
-       jne      SHORT G_M61993_IG46
+       jne      SHORT G_M61993_IG81
 						;; size=15 bbWeight=2 PerfScore 9.50
-G_M61993_IG45:
+G_M61993_IG80:
        lea      ecx, [rax-0x01]
 						;; size=3 bbWeight=2 PerfScore 1.00
-G_M61993_IG46:
-       mov      dword ptr [rbp-0x594], ecx
+G_M61993_IG81:
+       mov      dword ptr [rbp-0x744], ecx
 						;; size=6 bbWeight=2 PerfScore 2.00
-G_M61993_IG47:
+G_M61993_IG82:
        mov      rdi, rbx
        mov      rcx, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
        call     [rcx]System.Text.Json.Utf8JsonReader:Read():ubyte:this
        mov      ecx, dword ptr [rbx+0x58]
        mov      edi, ecx
        movzx    rsi, byte  ptr [rbx+0x28]
        cmp      esi, 1
-       je       SHORT G_M61993_IG49
+       je       SHORT G_M61993_IG84
 						;; size=30 bbWeight=16 PerfScore 144.00
-G_M61993_IG48:
+G_M61993_IG83:
        cmp      esi, 3
-       jne      SHORT G_M61993_IG50
+       jne      SHORT G_M61993_IG85
 						;; size=5 bbWeight=8 PerfScore 10.00
-G_M61993_IG49:
+G_M61993_IG84:
        lea      edi, [rcx-0x01]
 						;; size=3 bbWeight=8 PerfScore 4.00
-G_M61993_IG50:
-       mov      ecx, dword ptr [rbp-0x594]
+G_M61993_IG85:
+       mov      ecx, dword ptr [rbp-0x744]
        cmp      ecx, edi
-       jl       SHORT G_M61993_IG47
+       jl       SHORT G_M61993_IG82
 						;; size=10 bbWeight=16 PerfScore 36.00
-G_M61993_IG51:
-       jmp      G_M61993_IG55
+G_M61993_IG86:
+       jmp      G_M61993_IG90
 						;; size=5 bbWeight=2 PerfScore 4.00
-G_M61993_IG52:
-       lea      rdi, bword ptr [rbp-0x590]
+G_M61993_IG87:
+       lea      rdi, bword ptr [rbp-0x740]
        mov      rsi, rbx
        mov      ecx, 24
        rep movsq 
        mov      esi, dword ptr [rbx+0x58]
        mov      eax, esi
        movzx    rdi, byte  ptr [rbx+0x28]
        cmp      edi, 1
-       je       SHORT G_M61993_IG53
+       je       SHORT G_M61993_IG88
        cmp      edi, 3
-       jne      SHORT G_M61993_IG54
+       jne      SHORT G_M61993_IG89
 						;; size=38 bbWeight=2 PerfScore 65.50
-G_M61993_IG53:
+G_M61993_IG88:
        lea      eax, [rsi-0x01]
 						;; size=3 bbWeight=2 PerfScore 1.00
-G_M61993_IG54:
+G_M61993_IG89:
        mov      rdi, rbx
        mov      esi, eax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:TrySkipPartial(int):ubyte:this
        call     [rax]System.Text.Json.Utf8JsonReader:TrySkipPartial(int):ubyte:this
        test     eax, eax
-       jne      SHORT G_M61993_IG55
+       jne      SHORT G_M61993_IG90
        mov      rdi, rbx
-       lea      rsi, bword ptr [rbp-0x590]
+       lea      rsi, bword ptr [rbp-0x740]
        mov      ecx, 6
        rep movsq 
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
        movsq    
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
        movsq    
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
        call     CORINFO_HELP_ASSIGN_BYREF
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
        call     CORINFO_HELP_ASSIGN_BYREF
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
 						;; size=102 bbWeight=2 PerfScore 98.00
-G_M61993_IG55:
-       mov      rax, bword ptr [rbp-0x7E8]
+G_M61993_IG90:
+       mov      rax, bword ptr [rbp-0x9D8]
        mov      rdi, rax
        mov      rsi, gword ptr [rdi+0x40]
        xor      rdx, rdx
        mov      gword ptr [rsi+0x20], rdx
 						;; size=20 bbWeight=4 PerfScore 18.00
-G_M61993_IG56:
+G_M61993_IG91:
        mov      gword ptr [rdi+0x08], rdx
        mov      byte  ptr [rdi+0x58], 0
-       jmp      G_M61993_IG22
+       jmp      G_M61993_IG58
 						;; size=13 bbWeight=4 PerfScore 16.00
-G_M61993_IG57:
-       mov      rdi, r14
+G_M61993_IG92:
+       mov      rdi, r13
        mov      rsi, r15
        mov      rdx, rbx
-       mov      rcx, gword ptr [rbp-0x358]
-       mov      r8, qword ptr [rbp-0x6A0]
+       mov      rcx, gword ptr [rbp-0x508]
+       mov      r8, qword ptr [rbp-0x868]
        call     [r8+0x10]System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:ReadAndCacheConstructorArgument(byref,byref,System.Text.Json.Serialization.Metadata.JsonParameterInfo):ubyte:this
-       mov      rax, bword ptr [rbp-0x7E8]
+       mov      rax, bword ptr [rbp-0x9D8]
        mov      rsi, rax
        mov      rdx, gword ptr [rsi+0x40]
        xor      r9, r9
        mov      gword ptr [rdx+0x20], r9
 						;; size=48 bbWeight=4 PerfScore 41.00
-G_M61993_IG58:
+G_M61993_IG93:
        mov      gword ptr [rsi+0x08], r9
        mov      byte  ptr [rsi+0x58], 0
-       jmp      G_M61993_IG22
+       jmp      G_M61993_IG58
 						;; size=13 bbWeight=4 PerfScore 16.00
-G_M61993_IG59:
+G_M61993_IG94:
        xor      esi, esi
        mov      dword ptr [rsp], esi
-       mov      rsi, bword ptr [rbp-0x7C8]
-       mov      edx, dword ptr [rbp-0x694]
-       lea      r9, [rbp-0x360]
+       mov      rsi, bword ptr [rbp-0x9B0]
+       mov      edx, dword ptr [rbp-0x844]
+       lea      r9, [rbp-0x510]
        mov      rcx, r15
-       mov      r8, r13
+       mov      r8, r14
        xor      rdi, rdi
        mov      r10, 0xD1FFAB1E      ; code for System.Text.Json.JsonSerializer:LookupProperty(System.Object,System.ReadOnlySpan`1[ubyte],byref,System.Text.Json.JsonSerializerOptions,byref,ubyte):System.Text.Json.Serialization.Metadata.JsonPropertyInfo
        call     [r10]System.Text.Json.JsonSerializer:LookupProperty(System.Object,System.ReadOnlySpan`1[ubyte],byref,System.Text.Json.JsonSerializerOptions,byref,ubyte):System.Text.Json.Serialization.Metadata.JsonPropertyInfo
-       mov      gword ptr [rbp-0x738], rax
+       mov      gword ptr [rbp-0x918], rax
        cmp      byte  ptr [rax+0x9A], 0
-       je       G_M61993_IG68
+       je       G_M61993_IG103
 						;; size=66 bbWeight=4 PerfScore 51.00
-G_M61993_IG60:
+G_M61993_IG95:
        mov      rcx, gword ptr [r15+0x70]
-       mov      gword ptr [rbp-0x740], rcx
+       mov      gword ptr [rbp-0x920], rcx
        mov      rdx, gword ptr [rcx+0x10]
-       mov      gword ptr [rbp-0x7E0], rdx
+       mov      gword ptr [rbp-0x9D0], rdx
        test     rdx, rdx
-       jne      SHORT G_M61993_IG63
+       jne      SHORT G_M61993_IG98
        mov      rdi, 0xD1FFAB1E
        mov      esi, 126
        call     CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.ArrayPool`1[System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String]]:s_shared
        mov      rdi, gword ptr [rdi]
        mov      rsi, gword ptr [r15+0x58]
        mov      rsi, gword ptr [rsi+0x10]
        mov      rsi, gword ptr [rsi+0x10]
        mov      esi, dword ptr [rsi+0x10]
        cmp      esi, 1
-       jle      SHORT G_M61993_IG61
-       jmp      SHORT G_M61993_IG62
+       jle      SHORT G_M61993_IG96
+       jmp      SHORT G_M61993_IG97
 						;; size=82 bbWeight=2 PerfScore 44.50
-G_M61993_IG61:
+G_M61993_IG96:
        mov      esi, 1
 						;; size=5 bbWeight=2 PerfScore 0.50
-G_M61993_IG62:
+G_M61993_IG97:
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon]]:Rent(int):System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon][]:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Buffers.SharedArrayPool`1[System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon]]:Rent(int):System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon][]:this
-       mov      rcx, gword ptr [rbp-0x740]
+       mov      rcx, gword ptr [rbp-0x920]
        lea      rdi, bword ptr [rcx+0x10]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
-       jmp      G_M61993_IG65
+       jmp      G_M61993_IG100
 						;; size=38 bbWeight=2 PerfScore 22.00
-G_M61993_IG63:
-       mov      rcx, gword ptr [rbp-0x740]
+G_M61993_IG98:
+       mov      rcx, gword ptr [rbp-0x920]
        mov      edi, dword ptr [rcx+0x30]
        cmp      edi, dword ptr [rdx+0x08]
-       jne      G_M61993_IG65
+       jne      G_M61993_IG100
        mov      rdi, 0xD1FFAB1E
        mov      esi, 126
        call     CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.ArrayPool`1[System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String]]:s_shared
        mov      rdi, gword ptr [rdi]
-       mov      rsi, gword ptr [rbp-0x7E0]
+       mov      rsi, gword ptr [rbp-0x9D0]
        mov      esi, dword ptr [rsi+0x08]
        add      esi, esi
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon]]:Rent(int):System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon][]:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Buffers.SharedArrayPool`1[System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon]]:Rent(int):System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon][]:this
-       mov      gword ptr [rbp-0x750], rax
-       mov      rcx, gword ptr [rbp-0x740]
+       mov      gword ptr [rbp-0x930], rax
+       mov      rcx, gword ptr [rbp-0x920]
        mov      rdx, gword ptr [rcx+0x10]
-       mov      gword ptr [rbp-0x778], rdx
+       mov      gword ptr [rbp-0x958], rdx
        cmp      byte  ptr [rdx], dl
        test     rax, rax
-       je       G_M61993_IG74
+       je       G_M61993_IG109
        mov      rdi, qword ptr [rax]
        mov      edi, dword ptr [rdi+0x04]
        add      edi, -24
        shr      edi, 3
-       je       SHORT G_M61993_IG64
+       je       SHORT G_M61993_IG99
        cmp      edi, 1
-       jne      G_M61993_IG187
+       jne      G_M61993_IG230
 						;; size=137 bbWeight=2 PerfScore 73.00
-G_M61993_IG64:
+G_M61993_IG99:
        mov      rdi, rdx
        xor      esi, esi
        mov      r8, 0xD1FFAB1E      ; code for System.Array:GetLowerBound(int):int:this
        call     [r8]System.Array:GetLowerBound(int):int:this
        mov      esi, eax
-       mov      rdi, gword ptr [rbp-0x778]
+       mov      rdi, gword ptr [rbp-0x958]
        mov      r8d, dword ptr [rdi+0x08]
        test     r8d, r8d
-       jl       G_M61993_IG174
-       mov      rdx, gword ptr [rbp-0x750]
+       jl       G_M61993_IG208
+       mov      rdx, gword ptr [rbp-0x930]
        xor      ecx, ecx
        mov      rax, 0xD1FFAB1E      ; code for System.Array:Copy(System.Array,int,System.Array,int,int)
        call     [rax]System.Array:Copy(System.Array,int,System.Array,int,int)
-       mov      rax, gword ptr [rbp-0x740]
+       mov      rax, gword ptr [rbp-0x920]
        mov      rcx, gword ptr [rax+0x10]
-       mov      gword ptr [rbp-0x758], rcx
+       mov      gword ptr [rbp-0x938], rcx
        lea      rdi, bword ptr [rax+0x10]
-       mov      rsi, gword ptr [rbp-0x750]
+       mov      rsi, gword ptr [rbp-0x930]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.ArrayPool`1[System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String]]:s_shared
        mov      rdi, gword ptr [rdi]
-       mov      rsi, gword ptr [rbp-0x758]
+       mov      rsi, gword ptr [rbp-0x938]
        mov      edx, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon]]:Return(System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon][],ubyte):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Buffers.SharedArrayPool`1[System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon]]:Return(System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon][],ubyte):this
 						;; size=134 bbWeight=2 PerfScore 58.00
-G_M61993_IG65:
-       mov      rsi, gword ptr [rbp-0x740]
+G_M61993_IG100:
+       mov      rsi, gword ptr [rbp-0x920]
        mov      rax, gword ptr [rsi+0x10]
-       mov      gword ptr [rbp-0x748], rax
+       mov      gword ptr [rbp-0x928], rax
        mov      ecx, dword ptr [rsi+0x30]
-       mov      dword ptr [rbp-0x364], ecx
+       mov      dword ptr [rbp-0x514], ecx
        lea      edi, [rcx+0x01]
        mov      dword ptr [rsi+0x30], edi
-       lea      rsi, [rbp-0x3A0]
+       lea      rsi, [rbp-0x550]
        mov      rdi, rbx
        mov      rdx, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:get_CurrentState():System.Text.Json.JsonReaderState:this
        call     [rdx]System.Text.Json.Utf8JsonReader:get_CurrentState():System.Text.Json.JsonReaderState:this
        mov      rdx, qword ptr [rbx+0x10]
        movsxd   r8, dword ptr [rbx+0x20]
        add      rdx, r8
        mov      rcx, gword ptr [r15+0x38]
        mov      rdi, gword ptr [r15+0x40]
 						;; size=74 bbWeight=2 PerfScore 45.50
-G_M61993_IG66:
-       vmovdqu  ymm0, ymmword ptr [rbp-0x3A0]
-       vmovdqu  ymmword ptr [rbp-0x3D8], ymm0
-       vmovdqu  ymm0, ymmword ptr [rbp-0x388]
-       vmovdqu  ymmword ptr [rbp-0x3C0], ymm0
+G_M61993_IG101:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x550]
+       vmovdqu  ymmword ptr [rbp-0x588], ymm0
+       vmovdqu  ymm0, ymmword ptr [rbp-0x538]
+       vmovdqu  ymmword ptr [rbp-0x570], ymm0
 						;; size=32 bbWeight=2 PerfScore 20.00
-G_M61993_IG67:
-       mov      rsi, gword ptr [rbp-0x738]
-       mov      gword ptr [rbp-0x3F8], rsi
-       mov      gword ptr [rbp-0x3F0], rcx
-       mov      gword ptr [rbp-0x3E8], rdi
-       mov      ecx, dword ptr [rbp-0x364]
-       mov      rdi, gword ptr [rbp-0x748]
+G_M61993_IG102:
+       mov      rsi, gword ptr [rbp-0x918]
+       mov      gword ptr [rbp-0x5A8], rsi
+       mov      gword ptr [rbp-0x5A0], rcx
+       mov      gword ptr [rbp-0x598], rdi
+       mov      ecx, dword ptr [rbp-0x514]
+       mov      rdi, gword ptr [rbp-0x928]
        cmp      ecx, dword ptr [rdi+0x08]
-       jae      G_M61993_IG175
+       jae      G_M61993_IG209
        imul     rcx, rcx, 88
        lea      r8, bword ptr [rdi+rcx+0x10]
        mov      rdi, r8
-       lea      rsi, bword ptr [rbp-0x3F8]
+       lea      rsi, bword ptr [rbp-0x5A8]
        call     CORINFO_HELP_ASSIGN_BYREF
        call     CORINFO_HELP_ASSIGN_BYREF
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 5
        rep movsq 
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
        movsq    
        mov      qword ptr [r8+0x18], rdx
 						;; size=105 bbWeight=2 PerfScore 92.00
-G_M61993_IG68:
+G_M61993_IG103:
        mov      esi, dword ptr [rbx+0x58]
        mov      eax, esi
        movzx    rdi, byte  ptr [rbx+0x28]
        cmp      edi, 1
-       je       SHORT G_M61993_IG70
+       je       SHORT G_M61993_IG105
 						;; size=15 bbWeight=4 PerfScore 22.00
-G_M61993_IG69:
+G_M61993_IG104:
        cmp      edi, 3
-       jne      SHORT G_M61993_IG71
+       jne      SHORT G_M61993_IG106
 						;; size=5 bbWeight=2 PerfScore 2.50
-G_M61993_IG70:
+G_M61993_IG105:
        lea      eax, [rsi-0x01]
 						;; size=3 bbWeight=2 PerfScore 1.00
-G_M61993_IG71:
+G_M61993_IG106:
        mov      rdi, rbx
        mov      esi, eax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:TrySkipPartial(int):ubyte:this
        call     [rax]System.Text.Json.Utf8JsonReader:TrySkipPartial(int):ubyte:this
-       mov      rax, bword ptr [rbp-0x7E8]
+       mov      rax, bword ptr [rbp-0x9D8]
        mov      rsi, rax
        xor      rdi, rdi
        mov      gword ptr [rsi], rdi
 						;; size=32 bbWeight=4 PerfScore 25.00
-G_M61993_IG72:
+G_M61993_IG107:
        mov      gword ptr [rsi+0x08], rdi
 						;; size=4 bbWeight=4 PerfScore 4.00
-G_M61993_IG73:
+G_M61993_IG108:
        mov      gword ptr [rsi+0x10], rdi
        mov      byte  ptr [rsi+0x58], 0
-       mov      bword ptr [rbp-0x7E8], rax
-       jmp      G_M61993_IG22
+       mov      bword ptr [rbp-0x9D8], rax
+       jmp      G_M61993_IG58
 						;; size=20 bbWeight=4 PerfScore 20.00
-G_M61993_IG74:
-       jmp      G_M61993_IG64
+G_M61993_IG109:
+       jmp      G_M61993_IG99
 						;; size=5 bbWeight=1 PerfScore 2.00
-G_M61993_IG75:
-       mov      rax, bword ptr [rbp-0x7E8]
+G_M61993_IG110:
+       mov      rax, bword ptr [rbp-0x9D8]
        xor      rsi, rsi
-       mov      gword ptr [rbp-0x358], rsi
-       mov      rsi, qword ptr [r14]
+       mov      gword ptr [rbp-0x508], rsi
+       mov      rsi, qword ptr [r13]
        mov      rsi, qword ptr [rsi+0x30]
        mov      rsi, qword ptr [rsi+0x20]
        mov      rbx, qword ptr [rsi]
-       mov      bword ptr [rbp-0x7E8], rax
+       mov      qword ptr [rbp-0x860], rbx
+       mov      qword ptr [rbp-0x850], rbx
+       mov      bword ptr [rbp-0x9D8], rax
        mov      rsi, rax
-       mov      rdi, r14
-       mov      rcx, qword ptr [rbp-0x6A0]
+       mov      rdi, r13
+       mov      rcx, qword ptr [rbp-0x868]
        call     [rcx+0x18]System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:CreateObject(byref):System.Object:this
        mov      rcx, rax
        test     rcx, rcx
-       je       SHORT G_M61993_IG78
-						;; size=61 bbWeight=0.50 PerfScore 8.62
-G_M61993_IG76:
-       mov      rdi, rbx
+       je       SHORT G_M61993_IG113
+						;; size=76 bbWeight=0.50 PerfScore 9.62
+G_M61993_IG111:
+       mov      rdi, qword ptr [rbp-0x850]
        cmp      qword ptr [rcx], rdi
-       je       SHORT G_M61993_IG78
-						;; size=8 bbWeight=0.25 PerfScore 1.06
-G_M61993_IG77:
+       je       SHORT G_M61993_IG113
+						;; size=12 bbWeight=0.25 PerfScore 1.25
+G_M61993_IG112:
        mov      rsi, rax
        call     CORINFO_HELP_CHKCASTANY
-       mov      rbx, rax
-       mov      rcx, rbx
-						;; size=14 bbWeight=0.12 PerfScore 0.22
-G_M61993_IG78:
-       mov      rbx, rcx
-       mov      rax, gword ptr [rbp-0x6C8]
-       mov      rcx, gword ptr [rax+0x38]
-       test     rcx, rcx
-       je       G_M61993_IG82
-       mov      rsi, rbx
-       mov      rdi, gword ptr [rcx+0x08]
-       call     [rcx+0x18]System.Action`1[System.__Canon]:Invoke(System.__Canon):this
-       mov      rax, gword ptr [rbp-0x6C8]
-						;; size=40 bbWeight=0.50 PerfScore 5.38
-G_M61993_IG79:
-       mov      rcx, gword ptr [rbp-0x6D0]
-       cmp      dword ptr [rcx+0x30], 0
-       jle      G_M61993_IG116
-       mov      rdx, gword ptr [rcx+0x10]
-       mov      gword ptr [rbp-0x6E0], rdx
-       xor      r8d, r8d
-       mov      bword ptr [rbp-0x6C0], r12
+       mov      rcx, rax
+						;; size=11 bbWeight=0.12 PerfScore 0.19
+G_M61993_IG113:
+       mov      rax, rcx
+       mov      rcx, gword ptr [rbp-0x890]
+       mov      rdx, gword ptr [rcx+0x38]
+       test     rdx, rdx
+       je       G_M61993_IG117
+       mov      gword ptr [rbp-0x898], rax
+       mov      rsi, rax
+       mov      rdi, gword ptr [rdx+0x08]
+       call     [rdx+0x18]System.Action`1[System.__Canon]:Invoke(System.__Canon):this
+       mov      rax, gword ptr [rbp-0x898]
+       mov      rcx, gword ptr [rbp-0x890]
+						;; size=54 bbWeight=0.50 PerfScore 6.38
+G_M61993_IG114:
+       mov      rdx, gword ptr [rbp-0x8A0]
+       cmp      dword ptr [rdx+0x30], 0
+       jle      G_M61993_IG149
+       mov      r8, gword ptr [rdx+0x10]
+       mov      gword ptr [rbp-0x8B0], r8
+       xor      r9d, r9d
+       mov      bword ptr [rbp-0x888], r12
 						;; size=38 bbWeight=0.50 PerfScore 4.62
-G_M61993_IG80:
-       cmp      r8d, dword ptr [rdx+0x08]
-       jae      G_M61993_IG175
-       mov      qword ptr [rbp-0x6B0], r8
-       imul     rsi, r8, 88
-       mov      r9, gword ptr [rdx+rsi+0x10]
-       mov      gword ptr [rbp-0x6E8], r9
-       lea      r10, bword ptr [rdx+rsi+0x10]
-       mov      bword ptr [rbp-0x7D8], r10
-       mov      r11, qword ptr [r10+0x18]
-       mov      qword ptr [rbp-0xF8], r11
-       mov      rdi, gword ptr [r10+0x08]
-       mov      gword ptr [rbp-0x6F0], rdi
-       mov      rsi, gword ptr [r10+0x10]
-       mov      gword ptr [rbp-0x6F8], rsi
-       mov      eax, dword ptr [rbp-0x68C]
-       and      eax, 0xD1FFAB1E
-       mov      dword ptr [rbp-0x598], eax
-       mov      r12d, dword ptr [rbp-0x690]
+G_M61993_IG115:
+       cmp      r9d, dword ptr [r8+0x08]
+       jae      G_M61993_IG209
+       mov      qword ptr [rbp-0x878], r9
+       imul     rsi, r9, 88
+       mov      r10, gword ptr [r8+rsi+0x10]
+       mov      gword ptr [rbp-0x8B8], r10
+       lea      r11, bword ptr [r8+rsi+0x10]
+       mov      bword ptr [rbp-0x9C8], r11
+       mov      rdi, qword ptr [r11+0x18]
+       mov      qword ptr [rbp-0xF8], rdi
+       mov      rsi, gword ptr [r11+0x08]
+       mov      gword ptr [rbp-0x8C0], rsi
+       mov      rbx, gword ptr [r11+0x10]
+       mov      ecx, dword ptr [rbp-0x838]
+       and      ecx, 0xD1FFAB1E
+       mov      dword ptr [rbp-0x748], ecx
+       mov      r12d, dword ptr [rbp-0x83C]
        and      r12d, 0xD1FFAB1E
-       mov      dword ptr [rbp-0x59C], r12d
-       mov      r12, gword ptr [rbp-0x7B8]
-       mov      rax, gword ptr [rbp-0x7C0]
-       cmp      r12, rax
-       je       SHORT G_M61993_IG83
-						;; size=135 bbWeight=4 PerfScore 115.00
-G_M61993_IG81:
+       mov      dword ptr [rbp-0x74C], r12d
+       mov      r12, gword ptr [rbp-0x998]
+       mov      rcx, gword ptr [rbp-0x9A0]
+       cmp      r12, rcx
+       je       SHORT G_M61993_IG118
+						;; size=129 bbWeight=4 PerfScore 111.00
+G_M61993_IG116:
+       mov      gword ptr [rbp-0x898], rax
        mov      rsi, r12
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.ReadOnlySequenceSegment`1[ubyte]
        call     CORINFO_HELP_CHKCASTCLASS
-       mov      rsi, gword ptr [rbp-0x7C0]
+       mov      rsi, gword ptr [rbp-0x9A0]
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.ReadOnlySequenceSegment`1[ubyte]
        call     CORINFO_HELP_CHKCASTCLASS
-       movsxd   rsi, dword ptr [rbp-0x59C]
+       movsxd   rsi, dword ptr [rbp-0x74C]
        add      rsi, qword ptr [rax+0x10]
-       movsxd   rdi, dword ptr [rbp-0x598]
+       movsxd   rdi, dword ptr [rbp-0x748]
        add      rdi, qword ptr [r12+0x10]
        sub      rsi, rdi
-       jmp      SHORT G_M61993_IG84
-						;; size=68 bbWeight=2 PerfScore 36.00
-G_M61993_IG82:
-       mov      rax, gword ptr [rbp-0x6C8]
-       jmp      G_M61993_IG79
+       jmp      SHORT G_M61993_IG119
+						;; size=75 bbWeight=2 PerfScore 38.00
+G_M61993_IG117:
+       mov      rcx, gword ptr [rbp-0x890]
+       jmp      G_M61993_IG114
 						;; size=12 bbWeight=0.25 PerfScore 0.75
-G_M61993_IG83:
-       mov      edi, dword ptr [rbp-0x59C]
-       sub      edi, dword ptr [rbp-0x598]
-       movsxd   rdi, edi
-       mov      rsi, rdi
-						;; size=18 bbWeight=2 PerfScore 7.00
-G_M61993_IG84:
+G_M61993_IG118:
+       mov      esi, dword ptr [rbp-0x74C]
+       sub      esi, dword ptr [rbp-0x748]
+       movsxd   rsi, esi
+       mov      gword ptr [rbp-0x898], rax
+						;; size=22 bbWeight=2 PerfScore 8.50
+G_M61993_IG119:
        test     rsi, rsi
-       je       G_M61993_IG91
+       je       G_M61993_IG127
 						;; size=9 bbWeight=4 PerfScore 5.00
-G_M61993_IG85:
-       mov      r11, qword ptr [rbp-0xF8]
-       test     r11, r11
-       jl       G_M61993_IG188
-       test     r11, r11
-       jne      SHORT G_M61993_IG86
-       mov      rdi, r12
-       mov      esi, dword ptr [rbp-0x68C]
-       mov      r11d, esi
-       jmp      G_M61993_IG90
-						;; size=38 bbWeight=2 PerfScore 14.00
-G_M61993_IG86:
-       mov      esi, dword ptr [rbp-0x68C]
-       mov      edi, esi
-       and      edi, 0xD1FFAB1E
-       mov      dword ptr [rbp-0x5BC], edi
-       mov      esi, dword ptr [rbp-0x690]
+G_M61993_IG120:
+       mov      rdi, qword ptr [rbp-0xF8]
+       test     rdi, rdi
+       jl       G_M61993_IG231
+       test     rdi, rdi
+       jne      SHORT G_M61993_IG121
+       mov      rsi, r12
+       mov      edi, dword ptr [rbp-0x838]
+       jmp      G_M61993_IG126
+						;; size=35 bbWeight=2 PerfScore 13.50
+G_M61993_IG121:
+       mov      esi, dword ptr [rbp-0x838]
        and      esi, 0xD1FFAB1E
-       mov      dword ptr [rbp-0x5C0], esi
-       mov      rax, gword ptr [rbp-0x7C0]
-       cmp      r12, rax
-       je       SHORT G_M61993_IG87
+       mov      dword ptr [rbp-0x76C], esi
+       mov      r8d, dword ptr [rbp-0x83C]
+       and      r8d, 0xD1FFAB1E
+       mov      dword ptr [rbp-0x770], r8d
+       mov      rcx, gword ptr [rbp-0x9A0]
+       cmp      r12, rcx
+       je       SHORT G_M61993_IG122
        mov      rsi, r12
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.ReadOnlySequenceSegment`1[ubyte]
        call     CORINFO_HELP_CHKCASTCLASS
        mov      ecx, dword ptr [r12+0x24]
-       mov      eax, dword ptr [rbp-0x5BC]
+       mov      eax, dword ptr [rbp-0x76C]
        sub      ecx, eax
        movsxd   rdi, ecx
        mov      rsi, qword ptr [rbp-0xF8]
        cmp      rdi, rsi
-       jg       SHORT G_M61993_IG88
+       jg       SHORT G_M61993_IG124
        test     ecx, ecx
-       jl       G_M61993_IG189
+       jl       G_M61993_IG232
        movsxd   rcx, ecx
        sub      rsi, rcx
        mov      rcx, rsi
        mov      rdi, gword ptr [r12+0x08]
-       mov      rsi, gword ptr [rbp-0x7C0]
-       mov      edx, dword ptr [rbp-0x5C0]
+       mov      rsi, gword ptr [rbp-0x9A0]
+       mov      edx, dword ptr [rbp-0x770]
        mov      r8d, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.ReadOnlySequence`1[ubyte]:SeekMultiSegment(System.Buffers.ReadOnlySequenceSegment`1[ubyte],System.Object,int,long,int):System.SequencePosition
        call     [rax]System.Buffers.ReadOnlySequence`1[ubyte]:SeekMultiSegment(System.Buffers.ReadOnlySequenceSegment`1[ubyte],System.Object,int,long,int):System.SequencePosition
-       mov      rdi, rax
-       jmp      SHORT G_M61993_IG89
-						;; size=154 bbWeight=2 PerfScore 52.00
-G_M61993_IG87:
-       mov      esi, dword ptr [rbp-0x5C0]
-       mov      edi, dword ptr [rbp-0x5BC]
-       sub      esi, edi
-       movsxd   rsi, esi
-       mov      r11, qword ptr [rbp-0xF8]
-       cmp      rsi, r11
-       mov      eax, edi
-       mov      rsi, r11
-       jl       G_M61993_IG190
-						;; size=38 bbWeight=2 PerfScore 10.50
-G_M61993_IG88:
+       mov      rsi, rax
+       jmp      SHORT G_M61993_IG125
+						;; size=155 bbWeight=2 PerfScore 51.50
+G_M61993_IG122:
+       mov      r8d, dword ptr [rbp-0x770]
+       mov      esi, dword ptr [rbp-0x76C]
+       sub      r8d, esi
+       movsxd   r8, r8d
+       mov      rdi, qword ptr [rbp-0xF8]
+       cmp      r8, rdi
+       mov      eax, esi
+       jl       G_M61993_IG233
+						;; size=37 bbWeight=2 PerfScore 10.00
+G_M61993_IG123:
+       mov      rsi, rdi
+						;; size=3 bbWeight=1 PerfScore 0.25
+G_M61993_IG124:
        add      eax, esi
-       mov      rdi, r12
+       mov      rsi, r12
        mov      edx, eax
 						;; size=7 bbWeight=2 PerfScore 1.50
-G_M61993_IG89:
-       mov      eax, dword ptr [rbp-0x68C]
-       mov      r11d, eax
-       and      r11d, 0xD1FFAB1E
-       or       r11d, edx
-						;; size=19 bbWeight=2 PerfScore 3.50
-G_M61993_IG90:
+G_M61993_IG125:
+       mov      eax, dword ptr [rbp-0x838]
+       mov      edi, eax
+       and      edi, 0xD1FFAB1E
+       or       edi, edx
+						;; size=16 bbWeight=2 PerfScore 3.50
+G_M61993_IG126:
        vxorps   ymm0, ymm0, ymm0
        vmovdqu  ymmword ptr [rbp-0x348], ymm0
        vmovdqu  ymmword ptr [rbp-0x328], ymm0
        vmovdqu  ymmword ptr [rbp-0x308], ymm0
        vmovdqu  ymmword ptr [rbp-0x2E8], ymm0
        vmovdqu  ymmword ptr [rbp-0x2C8], ymm0
        vmovdqu  ymmword ptr [rbp-0x2A8], ymm0
-       mov      gword ptr [rbp-0x5B8], rdi
-       mov      rax, gword ptr [rbp-0x7C0]
-       mov      gword ptr [rbp-0x5B0], rax
-       mov      dword ptr [rbp-0x5A8], r11d
-       mov      r11d, dword ptr [rbp-0x690]
-       mov      dword ptr [rbp-0x5A4], r11d
+       mov      gword ptr [rbp-0x768], rsi
+       mov      rcx, gword ptr [rbp-0x9A0]
+       mov      gword ptr [rbp-0x760], rcx
+       mov      dword ptr [rbp-0x758], edi
+       mov      edi, dword ptr [rbp-0x83C]
+       mov      dword ptr [rbp-0x754], edi
        lea      rdi, [rsp]
-       lea      rsi, [rbp-0x5B8]
+       lea      rsi, [rbp-0x768]
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp], rcx
        add      rsi, 8
        add      rdi, 8
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp+0x08], rcx
        add      rsi, 8
        add      rdi, 8
        movsq    
-       mov      r10, bword ptr [rbp-0x7D8]
-       add      r10, 32
+       mov      r11, bword ptr [rbp-0x9C8]
+       add      r11, 32
        lea      rdi, [rsp+0x18]
-       mov      rsi, r10
+       mov      rsi, r11
        mov      ecx, 4
        rep movsq 
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp+0x38], rcx
        add      rsi, 8
        add      rdi, 8
        movsq    
        movsq    
        lea      rdi, [rbp-0x348]
        mov      esi, 1
        mov      rcx, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:.ctor(System.Buffers.ReadOnlySequence`1[ubyte],ubyte,System.Text.Json.JsonReaderState):this
        call     [rcx]System.Text.Json.Utf8JsonReader:.ctor(System.Buffers.ReadOnlySequence`1[ubyte],ubyte,System.Text.Json.JsonReaderState):this
        lea      rdi, bword ptr [rbp-0x288]
        lea      rsi, bword ptr [rbp-0x348]
        mov      ecx, 24
        rep movsq 
-       jmp      G_M61993_IG92
-						;; size=236 bbWeight=2 PerfScore 172.67
-G_M61993_IG91:
-       mov      r11, qword ptr [rbp-0xF8]
-       movsxd   rdi, r11d
-       cmp      r11, rdi
-       jne      G_M61993_IG174
-       mov      edi, r11d
-       mov      r11d, dword ptr [rbp-0x688]
-       cmp      edi, r11d
-       ja       G_M61993_IG191
+       jmp      G_M61993_IG128
+						;; size=233 bbWeight=2 PerfScore 172.67
+G_M61993_IG127:
+       mov      rdi, qword ptr [rbp-0xF8]
+       movsxd   rsi, edi
+       cmp      rdi, rsi
+       jne      G_M61993_IG208
+       cmp      edi, dword ptr [rbp-0x834]
+       ja       G_M61993_IG234
        mov      esi, edi
-       add      rsi, bword ptr [rbp-0x7B0]
-       sub      r11d, edi
-       mov      bword ptr [rbp-0x7D0], rsi
+       add      rsi, bword ptr [rbp-0x990]
+       mov      r8d, dword ptr [rbp-0x834]
+       sub      r8d, edi
+       mov      bword ptr [rbp-0x9C0], rsi
        vxorps   ymm0, ymm0, ymm0
        vmovdqu  ymmword ptr [rbp-0x1C8], ymm0
        vmovdqu  ymmword ptr [rbp-0x1A8], ymm0
        vmovdqu  ymmword ptr [rbp-0x188], ymm0
        vmovdqu  ymmword ptr [rbp-0x168], ymm0
        vmovdqu  ymmword ptr [rbp-0x148], ymm0
        vmovdqu  ymmword ptr [rbp-0x128], ymm0
-       mov      r10, bword ptr [rbp-0x7D8]
-       add      r10, 32
+       mov      r11, bword ptr [rbp-0x9C8]
+       add      r11, 32
        lea      rdi, [rsp]
-       mov      rsi, r10
+       mov      rsi, r11
        mov      ecx, 4
        rep movsq 
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp+0x20], rcx
        add      rsi, 8
        add      rdi, 8
        movsq    
        movsq    
-       mov      rsi, bword ptr [rbp-0x7D0]
-       mov      edx, r11d
+       mov      rsi, bword ptr [rbp-0x9C0]
+       mov      edx, r8d
        lea      rdi, [rbp-0x1C8]
        mov      ecx, 1
-       mov      r10, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:.ctor(System.ReadOnlySpan`1[ubyte],ubyte,System.Text.Json.JsonReaderState):this
-       call     [r10]System.Text.Json.Utf8JsonReader:.ctor(System.ReadOnlySpan`1[ubyte],ubyte,System.Text.Json.JsonReaderState):this
+       mov      r8, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:.ctor(System.ReadOnlySpan`1[ubyte],ubyte,System.Text.Json.JsonReaderState):this
+       call     [r8]System.Text.Json.Utf8JsonReader:.ctor(System.ReadOnlySpan`1[ubyte],ubyte,System.Text.Json.JsonReaderState):this
        lea      rdi, bword ptr [rbp-0x288]
        lea      rsi, bword ptr [rbp-0x1C8]
        mov      ecx, 24
        rep movsq 
-						;; size=212 bbWeight=2 PerfScore 158.17
-G_M61993_IG92:
+						;; size=212 bbWeight=2 PerfScore 161.17
+G_M61993_IG128:
        lea      rdi, bword ptr [rbp-0xF0]
        lea      rsi, bword ptr [rbp-0x288]
        mov      ecx, 24
        rep movsq 
        lea      rdi, bword ptr [r15+0x38]
-       mov      rsi, gword ptr [rbp-0x6F0]
+       mov      rsi, gword ptr [rbp-0x8C0]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        lea      rdi, bword ptr [r15+0x30]
-       mov      rsi, gword ptr [rbp-0x6E8]
+       mov      rsi, gword ptr [rbp-0x8B8]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      rax, gword ptr [rbp-0x6E8]
+       mov      rax, gword ptr [rbp-0x8B8]
        mov      rdi, qword ptr [rax+0xB8]
        mov      qword ptr [r15+0x94], rdi
-       mov      rsi, gword ptr [rbp-0x6F8]
        xor      ecx, ecx
-       test     rsi, rsi
+       test     rbx, rbx
        setne    cl
        mov      dword ptr [rbp-0xFC], ecx
        test     ecx, ecx
-       je       SHORT G_M61993_IG94
-						;; size=100 bbWeight=4 PerfScore 160.00
-G_M61993_IG93:
+       je       SHORT G_M61993_IG130
+						;; size=93 bbWeight=4 PerfScore 156.00
+G_M61993_IG129:
        lea      rdi, bword ptr [r15+0x40]
+       mov      rsi, rbx
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      rdi, rbx
-       mov      rsi, gword ptr [rbp-0x6E8]
-       mov      rdx, r13
+       mov      rdi, gword ptr [rbp-0x898]
+       mov      rsi, gword ptr [rbp-0x8B8]
+       mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonSerializer:CreateExtensionDataProperty(System.Object,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonSerializerOptions)
        call     [rax]System.Text.Json.JsonSerializer:CreateExtensionDataProperty(System.Object,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonSerializerOptions)
-						;; size=34 bbWeight=2 PerfScore 12.50
-G_M61993_IG94:
-       mov      rax, gword ptr [rbp-0x6E8]
+						;; size=41 bbWeight=2 PerfScore 14.50
+G_M61993_IG130:
+       mov      rax, gword ptr [rbp-0x8B8]
        cmp      byte  ptr [rax+0x9B], 0
-       jne      G_M61993_IG110
+       jne      G_M61993_IG143
 						;; size=20 bbWeight=4 PerfScore 20.00
-G_M61993_IG95:
+G_M61993_IG131:
        cmp      byte  ptr [rbp-0xCC], 0
-       je       G_M61993_IG107
+       je       G_M61993_IG140
        cmp      byte  ptr [rbp-0xC8], 5
-       jne      SHORT G_M61993_IG98
-       cmp      byte  ptr [rbp-0xC5], 0
-       jne      SHORT G_M61993_IG96
-       lea      rdi, [rbp-0xF0]
-       mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:ReadSingleSegment():ubyte:this
-       call     [rax]System.Text.Json.Utf8JsonReader:ReadSingleSegment():ubyte:this
-       jmp      SHORT G_M61993_IG97
-						;; size=52 bbWeight=2 PerfScore 29.50
-G_M61993_IG96:
+       jne      SHORT G_M61993_IG132
        lea      rdi, [rbp-0xF0]
-       mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:ReadMultiSegment():ubyte:this
-       call     [rax]System.Text.Json.Utf8JsonReader:ReadMultiSegment():ubyte:this
-						;; size=19 bbWeight=2 PerfScore 7.50
-G_M61993_IG97:
-       test     eax, eax
-       jne      SHORT G_M61993_IG98
-       cmp      byte  ptr [rbp-0xCC], 0
-       je       SHORT G_M61993_IG98
-       cmp      byte  ptr [rbp-0xC8], 0
-       je       G_M61993_IG192
-						;; size=26 bbWeight=2 PerfScore 14.50
-G_M61993_IG98:
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
+       call     [rax]System.Text.Json.Utf8JsonReader:Read():ubyte:this
+						;; size=41 bbWeight=2 PerfScore 19.50
+G_M61993_IG132:
        movzx    rdi, byte  ptr [rbp-0xC8]
        mov      eax, edi
        cmp      eax, 1
-       je       SHORT G_M61993_IG99
+       je       SHORT G_M61993_IG133
        cmp      eax, 3
-       jne      G_M61993_IG112
+       jne      G_M61993_IG145
 						;; size=24 bbWeight=2 PerfScore 7.50
-G_M61993_IG99:
+G_M61993_IG133:
        mov      eax, dword ptr [rbp-0x98]
-       mov      ecx, eax
+       mov      ebx, eax
        cmp      edi, 1
-       je       SHORT G_M61993_IG100
+       je       SHORT G_M61993_IG134
        cmp      edi, 3
-       jne      SHORT G_M61993_IG101
+       jne      SHORT G_M61993_IG135
 						;; size=18 bbWeight=2 PerfScore 7.50
-G_M61993_IG100:
-       lea      ecx, [rax-0x01]
+G_M61993_IG134:
+       lea      ebx, [rax-0x01]
 						;; size=3 bbWeight=2 PerfScore 1.00
-G_M61993_IG101:
-       mov      dword ptr [rbp-0x684], ecx
-						;; size=6 bbWeight=2 PerfScore 2.00
-G_M61993_IG102:
+G_M61993_IG135:
        lea      rdi, [rbp-0xF0]
-       mov      rcx, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
-       call     [rcx]System.Text.Json.Utf8JsonReader:Read():ubyte:this
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
+       call     [rax]System.Text.Json.Utf8JsonReader:Read():ubyte:this
        mov      ecx, dword ptr [rbp-0x98]
        mov      edi, ecx
        movzx    rsi, byte  ptr [rbp-0xC8]
        cmp      esi, 1
-       je       SHORT G_M61993_IG104
+       je       SHORT G_M61993_IG137
 						;; size=40 bbWeight=16 PerfScore 116.00
-G_M61993_IG103:
+G_M61993_IG136:
        cmp      esi, 3
-       jne      SHORT G_M61993_IG105
+       jne      SHORT G_M61993_IG138
 						;; size=5 bbWeight=8 PerfScore 10.00
-G_M61993_IG104:
+G_M61993_IG137:
        lea      edi, [rcx-0x01]
 						;; size=3 bbWeight=8 PerfScore 4.00
-G_M61993_IG105:
-       mov      ecx, dword ptr [rbp-0x684]
-       cmp      ecx, edi
-       jl       SHORT G_M61993_IG102
-						;; size=10 bbWeight=16 PerfScore 36.00
-G_M61993_IG106:
-       jmp      G_M61993_IG112
+G_M61993_IG138:
+       cmp      ebx, edi
+       jl       SHORT G_M61993_IG135
+						;; size=4 bbWeight=16 PerfScore 20.00
+G_M61993_IG139:
+       jmp      G_M61993_IG145
 						;; size=5 bbWeight=2 PerfScore 4.00
-G_M61993_IG107:
-       lea      rdi, bword ptr [rbp-0x680]
+G_M61993_IG140:
+       lea      rdi, bword ptr [rbp-0x830]
        lea      rsi, bword ptr [rbp-0xF0]
        mov      ecx, 24
        rep movsq 
        mov      esi, dword ptr [rbp-0x98]
        mov      eax, esi
        movzx    rdi, byte  ptr [rbp-0xC8]
        cmp      edi, 1
-       je       SHORT G_M61993_IG108
+       je       SHORT G_M61993_IG141
        cmp      edi, 3
-       jne      SHORT G_M61993_IG109
+       jne      SHORT G_M61993_IG142
 						;; size=48 bbWeight=2 PerfScore 62.00
-G_M61993_IG108:
+G_M61993_IG141:
        lea      eax, [rsi-0x01]
 						;; size=3 bbWeight=2 PerfScore 1.00
-G_M61993_IG109:
+G_M61993_IG142:
        lea      rdi, [rbp-0xF0]
        mov      esi, eax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:TrySkipPartial(int):ubyte:this
        call     [rax]System.Text.Json.Utf8JsonReader:TrySkipPartial(int):ubyte:this
        test     eax, eax
-       jne      SHORT G_M61993_IG112
+       jne      G_M61993_IG145
        lea      rdi, bword ptr [rbp-0xF0]
-       lea      rsi, bword ptr [rbp-0x680]
+       lea      rsi, bword ptr [rbp-0x830]
        mov      ecx, 24
        rep movsq 
-       jmp      SHORT G_M61993_IG112
-						;; size=49 bbWeight=2 PerfScore 67.00
-G_M61993_IG110:
+       jmp      SHORT G_M61993_IG145
+						;; size=53 bbWeight=2 PerfScore 67.00
+G_M61993_IG143:
        lea      rdi, [rbp-0xF0]
        mov      rdx, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
        call     [rdx]System.Text.Json.Utf8JsonReader:Read():ubyte:this
        cmp      dword ptr [rbp-0xFC], 0
-       jne      SHORT G_M61993_IG111
+       jne      SHORT G_M61993_IG144
        lea      rcx, [rbp-0xF0]
-       mov      rdi, gword ptr [rbp-0x6E8]
-       mov      rsi, rbx
+       mov      rdi, gword ptr [rbp-0x8B8]
+       mov      rsi, gword ptr [rbp-0x898]
        mov      rdx, r15
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x30]System.Text.Json.Serialization.Metadata.JsonPropertyInfo:ReadJsonAndSetMember(System.Object,byref,byref):ubyte:this
-       jmp      SHORT G_M61993_IG112
-						;; size=60 bbWeight=2 PerfScore 35.50
-G_M61993_IG111:
+       jmp      SHORT G_M61993_IG145
+						;; size=64 bbWeight=2 PerfScore 37.00
+G_M61993_IG144:
        lea      rcx, [rbp-0xF0]
-       mov      rdi, gword ptr [rbp-0x6E8]
-       mov      rsi, rbx
+       mov      rdi, gword ptr [rbp-0x8B8]
+       mov      rsi, gword ptr [rbp-0x898]
        mov      rdx, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Metadata.JsonPropertyInfo:ReadJsonAndAddExtensionProperty(System.Object,byref,byref):ubyte:this
        call     [rax]System.Text.Json.Serialization.Metadata.JsonPropertyInfo:ReadJsonAndAddExtensionProperty(System.Object,byref,byref):ubyte:this
-						;; size=32 bbWeight=2 PerfScore 10.50
-G_M61993_IG112:
-       mov      rax, bword ptr [rbp-0x7E8]
-       mov      rdi, rax
+						;; size=36 bbWeight=2 PerfScore 12.00
+G_M61993_IG145:
+       mov      rbx, bword ptr [rbp-0x9D8]
+       mov      rdi, rbx
        xor      rsi, rsi
        mov      gword ptr [rdi], rsi
 						;; size=15 bbWeight=4 PerfScore 10.00
-G_M61993_IG113:
+G_M61993_IG146:
        mov      gword ptr [rdi+0x08], rsi
 						;; size=4 bbWeight=4 PerfScore 4.00
-G_M61993_IG114:
+G_M61993_IG147:
        mov      gword ptr [rdi+0x10], rsi
        mov      byte  ptr [rdi+0x58], 0
-       mov      rdi, qword ptr [rbp-0x6B0]
+       mov      rdi, qword ptr [rbp-0x878]
        inc      edi
-       mov      rcx, gword ptr [rbp-0x6D0]
-       cmp      edi, dword ptr [rcx+0x30]
-       mov      bword ptr [rbp-0x7E8], rax
-       mov      r8, rdi
-       mov      rdx, gword ptr [rbp-0x6E0]
-       jl       G_M61993_IG80
+       mov      rax, gword ptr [rbp-0x8A0]
+       cmp      edi, dword ptr [rax+0x30]
+       mov      bword ptr [rbp-0x9D8], rbx
+       mov      r9, rdi
+       mov      r8, gword ptr [rbp-0x8B0]
+       jl       G_M61993_IG160
 						;; size=50 bbWeight=4 PerfScore 42.00
-G_M61993_IG115:
-       mov      r12, bword ptr [rbp-0x6C0]
-       mov      rcx, gword ptr [rbp-0x6D0]
-       mov      r13, gword ptr [rcx+0x10]
+G_M61993_IG148:
+       mov      r12, bword ptr [rbp-0x888]
+       mov      rdx, gword ptr [rbp-0x8A0]
+       mov      r14, gword ptr [rdx+0x10]
        xor      rdi, rdi
-       mov      gword ptr [rcx+0x10], rdi
+       mov      gword ptr [rdx+0x10], rdi
        mov      rdi, 0xD1FFAB1E
        mov      esi, 126
        call     CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.ArrayPool`1[System.ValueTuple`5[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonReaderState,long,ubyte[],System.String]]:s_shared
        mov      rdi, gword ptr [rdi]
-       mov      rsi, r13
+       mov      rsi, r14
        mov      edx, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon]]:Return(System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon][],ubyte):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Buffers.SharedArrayPool`1[System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon]]:Return(System.ValueTuple`5[System.__Canon,System.Text.Json.JsonReaderState,long,System.__Canon,System.__Canon][],ubyte):this
-       mov      rax, gword ptr [rbp-0x6C8]
-       mov      rcx, gword ptr [rbp-0x6D0]
-						;; size=93 bbWeight=0.50 PerfScore 8.88
-G_M61993_IG116:
-       mov      rdx, gword ptr [rax+0x40]
-       test     rdx, rdx
-       je       SHORT G_M61993_IG117
-       mov      rsi, rbx
-       mov      rdi, gword ptr [rdx+0x08]
-       call     [rdx+0x18]System.Action`1[System.__Canon]:Invoke(System.__Canon):this
-       mov      rcx, gword ptr [rbp-0x6D0]
-						;; size=26 bbWeight=0.50 PerfScore 4.75
-G_M61993_IG117:
-       mov      r13, bword ptr [rbp-0x7E8]
-       mov      rdx, r13
-       mov      bword ptr [rbp-0x7A8], rdx
-       mov      rax, gword ptr [rbp-0x6C8]
-       cmp      dword ptr [rax+0xF4], 0
-       jle      SHORT G_M61993_IG118
-       mov      rdi, gword ptr [rdx+0x48]
-       mov      rsi, 0xD1FFAB1E      ; code for System.Collections.BitArray:HasAllSet():ubyte:this
+       mov      rax, gword ptr [rbp-0x898]
+       mov      rcx, gword ptr [rbp-0x890]
+       mov      rdx, gword ptr [rbp-0x8A0]
+						;; size=100 bbWeight=0.50 PerfScore 9.38
+G_M61993_IG149:
+       mov      r8, gword ptr [rcx+0x40]
+       test     r8, r8
+       je       SHORT G_M61993_IG150
+       mov      gword ptr [rbp-0x898], rax
+       mov      rsi, rax
+       mov      rdi, gword ptr [r8+0x08]
+       call     [r8+0x18]System.Action`1[System.__Canon]:Invoke(System.__Canon):this
+       mov      rax, gword ptr [rbp-0x898]
+       mov      rdx, gword ptr [rbp-0x8A0]
+						;; size=41 bbWeight=0.50 PerfScore 5.75
+G_M61993_IG150:
+       mov      r14, bword ptr [rbp-0x9D8]
+       mov      rsi, r14
+       mov      bword ptr [rbp-0x988], rsi
+       mov      rcx, gword ptr [rbp-0x890]
+       cmp      dword ptr [rcx+0xF4], 0
+       jle      SHORT G_M61993_IG151
+       mov      gword ptr [rbp-0x898], rax
+       mov      rdi, gword ptr [rsi+0x48]
+       mov      r8, 0xD1FFAB1E      ; code for System.Collections.BitArray:HasAllSet():ubyte:this
        cmp      dword ptr [rdi], edi
-       call     [rsi]System.Collections.BitArray:HasAllSet():ubyte:this
+       call     [r8]System.Collections.BitArray:HasAllSet():ubyte:this
        test     eax, eax
-       jne      G_M61993_IG126
-       mov      rsi, bword ptr [rbp-0x7A8]
+       jne      G_M61993_IG159
+       mov      rsi, bword ptr [rbp-0x988]
        mov      rsi, gword ptr [rsi+0x48]
-       mov      rdi, gword ptr [rbp-0x6C8]
+       mov      rdi, gword ptr [rbp-0x890]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowJsonException_JsonRequiredPropertyMissing(System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Collections.BitArray)
        call     [rax]System.Text.Json.ThrowHelper:ThrowJsonException_JsonRequiredPropertyMissing(System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Collections.BitArray)
-       mov      rcx, gword ptr [rbp-0x6D0]
-						;; size=96 bbWeight=0.50 PerfScore 12.50
-G_M61993_IG118:
-       mov      rdi, qword ptr [r14]
-       mov      rdi, qword ptr [rdi+0x30]
-       mov      rdi, qword ptr [rdi+0x20]
-       mov      rdi, qword ptr [rdi]
-       mov      rsi, rbx
+       mov      rax, gword ptr [rbp-0x898]
+       mov      rdx, gword ptr [rbp-0x8A0]
+						;; size=111 bbWeight=0.50 PerfScore 13.50
+G_M61993_IG151:
+       mov      rsi, rax
        test     rsi, rsi
-       je       SHORT G_M61993_IG125
-						;; size=22 bbWeight=0.50 PerfScore 4.75
-G_M61993_IG119:
+       je       SHORT G_M61993_IG158
+						;; size=8 bbWeight=0.50 PerfScore 0.75
+G_M61993_IG152:
+       mov      rbx, qword ptr [rbp-0x860]
+       mov      rdi, rbx
        cmp      qword ptr [rsi], rdi
-       je       SHORT G_M61993_IG121
-						;; size=5 bbWeight=0.25 PerfScore 1.00
-G_M61993_IG120:
-       mov      rsi, rbx
+       je       SHORT G_M61993_IG154
+						;; size=15 bbWeight=0.25 PerfScore 1.31
+G_M61993_IG153:
+       mov      rsi, rax
        call     CORINFO_HELP_CHKCASTANY
        mov      rsi, rax
 						;; size=11 bbWeight=0.12 PerfScore 0.19
-G_M61993_IG121:
+G_M61993_IG154:
        mov      rdi, r12
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        cmp      gword ptr [r15+0x68], 0
-       je       SHORT G_M61993_IG122
-       mov      rsi, r13
+       je       SHORT G_M61993_IG155
+       mov      rsi, r14
        mov      rdi, gword ptr [r15+0x58]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Metadata.JsonTypeInfo:UpdateSortedPropertyCache(byref):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Text.Json.Serialization.Metadata.JsonTypeInfo:UpdateSortedPropertyCache(byref):this
 						;; size=36 bbWeight=0.50 PerfScore 6.88
-G_M61993_IG122:
-       mov      rbx, gword ptr [rbp-0x6D0]
+G_M61993_IG155:
+       mov      rbx, gword ptr [rbp-0x8A0]
        cmp      gword ptr [rbx+0x28], 0
-       je       SHORT G_M61993_IG123
-       mov      rsi, r13
+       je       SHORT G_M61993_IG156
+       mov      rsi, r14
        mov      rdi, gword ptr [r15+0x58]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Metadata.JsonTypeInfo:UpdateSortedParameterCache(byref):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Text.Json.Serialization.Metadata.JsonTypeInfo:UpdateSortedParameterCache(byref):this
 						;; size=35 bbWeight=0.50 PerfScore 6.75
-G_M61993_IG123:
+G_M61993_IG156:
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M61993_IG124:
+G_M61993_IG157:
        vzeroupper 
-       add      rsp, 0x828
+       add      rsp, 0xA18
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=21 bbWeight=0.50 PerfScore 2.62
-G_M61993_IG125:
-       jmp      SHORT G_M61993_IG121
+G_M61993_IG158:
+       jmp      SHORT G_M61993_IG154
 						;; size=2 bbWeight=0.25 PerfScore 0.50
-G_M61993_IG126:
-       mov      rcx, gword ptr [rbp-0x6D0]
-       jmp      G_M61993_IG118
-						;; size=12 bbWeight=0.25 PerfScore 0.75
-G_M61993_IG127:
+G_M61993_IG159:
+       mov      rax, gword ptr [rbp-0x898]
+       mov      rdx, gword ptr [rbp-0x8A0]
+       jmp      G_M61993_IG151
+						;; size=19 bbWeight=0.25 PerfScore 1.00
+G_M61993_IG160:
+       mov      rax, gword ptr [rbp-0x898]
+       jmp      G_M61993_IG115
+						;; size=12 bbWeight=2 PerfScore 6.00
+G_M61993_IG161:
        cmp      byte  ptr [r15+0x8A], 0
-       jne      SHORT G_M61993_IG128
+       jne      SHORT G_M61993_IG162
        cmp      byte  ptr [rbx+0x28], 1
-       jne      G_M61993_IG193
+       jne      G_M61993_IG235
        mov      byte  ptr [r15+0x8A], 1
 						;; size=28 bbWeight=0.50 PerfScore 4.50
-G_M61993_IG128:
+G_M61993_IG162:
        cmp      byte  ptr [r15+0x8B], 0
-       je       G_M61993_IG133
+       je       G_M61993_IG167
        cmp      byte  ptr [r15+0x8A], 2
-       jae      G_M61993_IG133
-       mov      gword ptr [rbp-0x6B8], rax
-       mov      rdi, r14
+       jae      G_M61993_IG167
+       mov      gword ptr [rbp-0x880], rax
+       mov      rdi, r13
        mov      rsi, r10
        mov      rdx, rbx
        mov      rcx, r15
        mov      r8, 0xD1FFAB1E      ; code for System.Text.Json.JsonSerializer:TryReadMetadata(System.Text.Json.Serialization.JsonConverter,System.Text.Json.Serialization.Metadata.JsonTypeInfo,byref,byref):ubyte
        call     [r8]System.Text.Json.JsonSerializer:TryReadMetadata(System.Text.Json.Serialization.JsonConverter,System.Text.Json.Serialization.Metadata.JsonTypeInfo,byref,byref):ubyte
        test     eax, eax
-       je       G_M61993_IG153
+       je       G_M61993_IG187
        cmp      byte  ptr [r15+0x8D], 4
-       jne      SHORT G_M61993_IG132
-       mov      rdi, qword ptr [r14]
+       jne      SHORT G_M61993_IG166
+       mov      rdi, qword ptr [r13]
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi+0x20]
        mov      rax, qword ptr [rsi+0x10]
        test     rax, rax
-       je       SHORT G_M61993_IG130
-						;; size=98 bbWeight=0.50 PerfScore 13.88
-G_M61993_IG129:
+       je       SHORT G_M61993_IG164
+						;; size=99 bbWeight=0.50 PerfScore 13.88
+G_M61993_IG163:
        mov      rdi, rax
-       jmp      SHORT G_M61993_IG131
+       jmp      SHORT G_M61993_IG165
 						;; size=5 bbWeight=0.40 PerfScore 0.90
-G_M61993_IG130:
+G_M61993_IG164:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rdi, rax
 						;; size=18 bbWeight=0.10 PerfScore 0.15
-G_M61993_IG131:
+G_M61993_IG165:
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonSerializer:ResolveReferenceId[System.__Canon](byref):System.__Canon
        call     [rax]System.Text.Json.JsonSerializer:ResolveReferenceId[System.__Canon](byref):System.__Canon
        mov      rsi, rax
        mov      rdi, r12
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       jmp      G_M61993_IG123
+       jmp      G_M61993_IG156
 						;; size=31 bbWeight=0.50 PerfScore 3.50
-G_M61993_IG132:
+G_M61993_IG166:
        mov      byte  ptr [r15+0x8A], 2
-       mov      rax, gword ptr [rbp-0x6B8]
-       mov      r10, gword ptr [rbp-0x6C8]
+       mov      rax, gword ptr [rbp-0x880]
+       mov      r10, gword ptr [rbp-0x890]
 						;; size=22 bbWeight=0.50 PerfScore 1.50
-G_M61993_IG133:
+G_M61993_IG167:
        test     byte  ptr [r15+0x8D], 8
-       je       G_M61993_IG138
+       je       G_M61993_IG172
        cmp      byte  ptr [r15+0x8E], 1
-       je       G_M61993_IG138
-       mov      gword ptr [rbp-0x6B8], rax
-       mov      rdi, r14
+       je       G_M61993_IG172
+       mov      gword ptr [rbp-0x880], rax
+       mov      rdi, r13
        mov      rsi, r10
        mov      rdx, r15
        mov      r8, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.JsonConverter:ResolvePolymorphicConverter(System.Text.Json.Serialization.Metadata.JsonTypeInfo,byref):System.Text.Json.Serialization.JsonConverter:this
        call     [r8]System.Text.Json.Serialization.JsonConverter:ResolvePolymorphicConverter(System.Text.Json.Serialization.Metadata.JsonTypeInfo,byref):System.Text.Json.Serialization.JsonConverter:this
-       mov      gword ptr [rbp-0x700], rax
+       mov      gword ptr [rbp-0x8C8], rax
        test     rax, rax
-       mov      r10, gword ptr [rbp-0x6C8]
-       je       G_M61993_IG137
+       mov      r10, gword ptr [rbp-0x890]
+       je       G_M61993_IG171
        mov      rdi, rax
        mov      rcx, qword ptr [rax]
        mov      rcx, qword ptr [rcx+0x40]
        call     [rcx+0x20]System.Text.Json.Serialization.JsonConverter:get_Type():System.Type:this
        mov      rdx, rax
        lea      r9, [rbp-0x108]
        mov      rsi, rbx
-       mov      rdi, gword ptr [rbp-0x700]
-       mov      rcx, r13
+       mov      rdi, gword ptr [rbp-0x8C8]
+       mov      rcx, r14
        mov      r8, r15
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x50]
        call     [rax]System.Text.Json.Serialization.JsonConverter:OnTryReadAsObject(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this
-       mov      r13d, eax
-       mov      rdi, qword ptr [r14]
+       mov      r14d, eax
+       mov      rdi, qword ptr [r13]
        mov      rdi, qword ptr [rdi+0x30]
        mov      rdi, qword ptr [rdi+0x20]
-       mov      rdi, qword ptr [rdi]
+       mov      rbx, qword ptr [rdi]
+       mov      rdi, rbx
        mov      rsi, gword ptr [rbp-0x108]
        mov      rax, rsi
        test     rax, rax
-       je       SHORT G_M61993_IG136
-						;; size=160 bbWeight=0.50 PerfScore 21.88
-G_M61993_IG134:
+       je       SHORT G_M61993_IG170
+						;; size=164 bbWeight=0.50 PerfScore 22.00
+G_M61993_IG168:
        cmp      qword ptr [rax], rdi
-       je       SHORT G_M61993_IG136
+       je       SHORT G_M61993_IG170
 						;; size=5 bbWeight=0.25 PerfScore 1.00
-G_M61993_IG135:
+G_M61993_IG169:
        call     CORINFO_HELP_CHKCASTANY
 						;; size=5 bbWeight=0.12 PerfScore 0.12
-G_M61993_IG136:
+G_M61993_IG170:
        mov      rdi, r12
        mov      rsi, rax
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        lea      rdi, bword ptr [r15+0x58]
        lea      r12, bword ptr [r15+0x60]
        mov      rsi, gword ptr [r15+0x60]
        mov      rbx, gword ptr [r15+0x58]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      rdi, r12
        mov      rsi, rbx
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       lea      rax, bword ptr [r15+0x30]
-       mov      r15, rax
+       add      r15, 48
+       mov      rbx, r15
        xor      edi, edi
        mov      esi, 2
-       test     r13d, r13d
+       test     r14d, r14d
        cmove    edi, esi
-       mov      byte  ptr [r15+0x5E], dil
-       mov      eax, r13d
-       jmp      G_M61993_IG172
-						;; size=75 bbWeight=0.50 PerfScore 7.00
-G_M61993_IG137:
-       mov      rax, gword ptr [rbp-0x6B8]
+       mov      byte  ptr [rbx+0x5E], dil
+       mov      eax, r14d
+       jmp      G_M61993_IG206
+						;; size=75 bbWeight=0.50 PerfScore 6.88
+G_M61993_IG171:
+       mov      rax, gword ptr [rbp-0x880]
 						;; size=7 bbWeight=0.25 PerfScore 0.25
-G_M61993_IG138:
+G_M61993_IG172:
        cmp      byte  ptr [r15+0x8F], 0
-       jne      SHORT G_M61993_IG139
+       jne      SHORT G_M61993_IG173
        xor      rdi, rdi
-       jmp      SHORT G_M61993_IG140
+       jmp      SHORT G_M61993_IG174
 						;; size=14 bbWeight=0.50 PerfScore 3.12
-G_M61993_IG139:
+G_M61993_IG173:
        mov      rdi, gword ptr [r15]
        mov      esi, dword ptr [r15+0x20]
        add      esi, -2
        cmp      esi, dword ptr [rdi+0x08]
-       jae      G_M61993_IG175
+       jae      G_M61993_IG209
        imul     rsi, rsi, 112
        mov      rdi, gword ptr [rdi+rsi+0x10]
 						;; size=28 bbWeight=0.50 PerfScore 6.12
-G_M61993_IG140:
+G_M61993_IG174:
        test     rdi, rdi
-       mov      gword ptr [rbp-0x6B8], rax
-       je       G_M61993_IG144
+       mov      gword ptr [rbp-0x880], rax
+       je       G_M61993_IG178
        mov      rsi, r15
        mov      rdx, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Metadata.JsonPropertyInfo:TryGetPrePopulatedValue(byref):ubyte:this
        call     [rdx]System.Text.Json.Serialization.Metadata.JsonPropertyInfo:TryGetPrePopulatedValue(byref):ubyte:this
        test     eax, eax
-       je       G_M61993_IG143
+       je       G_M61993_IG177
        mov      rsi, gword ptr [r15+0x50]
-       mov      rax, gword ptr [rbp-0x6C8]
+       mov      rax, gword ptr [rbp-0x890]
        mov      rcx, gword ptr [rax+0x38]
        test     rcx, rcx
-       je       SHORT G_M61993_IG141
+       je       SHORT G_M61993_IG175
        mov      rdi, gword ptr [rcx+0x08]
        call     [rcx+0x18]System.Action`1[System.__Canon]:Invoke(System.__Canon):this
 						;; size=66 bbWeight=0.50 PerfScore 9.12
-G_M61993_IG141:
+G_M61993_IG175:
        mov      byte  ptr [r15+0x8A], 4
        lea      rdi, bword ptr [r15+0x30]
        mov      rcx, rdi
-       mov      rax, gword ptr [rbp-0x6C8]
+       mov      rax, gword ptr [rbp-0x890]
        cmp      dword ptr [rax+0xF4], 0
-       mov      bword ptr [rbp-0x780], rcx
-       jle      SHORT G_M61993_IG142
+       mov      bword ptr [rbp-0x960], rcx
+       jle      SHORT G_M61993_IG176
        mov      rdi, 0xD1FFAB1E      ; System.Collections.BitArray
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x788], rax
-       mov      rcx, gword ptr [rbp-0x6C8]
+       mov      gword ptr [rbp-0x968], rax
+       mov      rcx, gword ptr [rbp-0x890]
        mov      esi, dword ptr [rcx+0xF4]
        mov      rdi, rax
        xor      edx, edx
        mov      rcx, 0xD1FFAB1E      ; code for System.Collections.BitArray:.ctor(int,ubyte):this
        call     [rcx]System.Collections.BitArray:.ctor(int,ubyte):this
-       mov      rdi, bword ptr [rbp-0x780]
+       mov      rdi, bword ptr [rbp-0x960]
        lea      rdi, bword ptr [rdi+0x48]
-       mov      rsi, gword ptr [rbp-0x788]
+       mov      rsi, gword ptr [rbp-0x968]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      rax, gword ptr [rbp-0x6B8]
+       mov      rax, gword ptr [rbp-0x880]
        jmp      G_M61993_IG04
 						;; size=125 bbWeight=0.50 PerfScore 11.62
-G_M61993_IG142:
-       mov      rax, gword ptr [rbp-0x6B8]
+G_M61993_IG176:
+       mov      rax, gword ptr [rbp-0x880]
        jmp      G_M61993_IG04
 						;; size=12 bbWeight=0.25 PerfScore 0.75
-G_M61993_IG143:
-       mov      r10, gword ptr [rbp-0x6C8]
+G_M61993_IG177:
+       mov      r10, gword ptr [rbp-0x890]
 						;; size=7 bbWeight=0.25 PerfScore 0.25
-G_M61993_IG144:
+G_M61993_IG178:
        cmp      byte  ptr [r15+0x8A], 3
-       jae      SHORT G_M61993_IG147
+       jae      SHORT G_M61993_IG181
        cmp      byte  ptr [r15+0x8B], 0
-       je       SHORT G_M61993_IG145
+       je       SHORT G_M61993_IG179
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonSerializer:ValidateMetadataForObjectConverter(byref)
        call     [rax]System.Text.Json.JsonSerializer:ValidateMetadataForObjectConverter(byref)
-       mov      r10, gword ptr [rbp-0x6C8]
+       mov      r10, gword ptr [rbp-0x890]
 						;; size=42 bbWeight=0.50 PerfScore 6.25
-G_M61993_IG145:
+G_M61993_IG179:
        cmp      byte  ptr [r15+0x8D], 4
-       jne      SHORT G_M61993_IG150
-       mov      rdi, qword ptr [r14]
+       jne      SHORT G_M61993_IG184
+       mov      rdi, qword ptr [r13]
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi+0x20]
        mov      rax, qword ptr [rsi+0x10]
        test     rax, rax
-       je       SHORT G_M61993_IG148
-						;; size=30 bbWeight=0.50 PerfScore 6.62
-G_M61993_IG146:
+       je       SHORT G_M61993_IG182
+						;; size=31 bbWeight=0.50 PerfScore 6.62
+G_M61993_IG180:
        mov      rdi, rax
-       jmp      SHORT G_M61993_IG149
+       jmp      SHORT G_M61993_IG183
 						;; size=5 bbWeight=0.40 PerfScore 0.90
-G_M61993_IG147:
-       jmp      G_M61993_IG152
+G_M61993_IG181:
+       jmp      G_M61993_IG186
 						;; size=5 bbWeight=0.25 PerfScore 0.50
-G_M61993_IG148:
+G_M61993_IG182:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rdi, rax
 						;; size=18 bbWeight=0.10 PerfScore 0.15
-G_M61993_IG149:
+G_M61993_IG183:
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonSerializer:ResolveReferenceId[System.__Canon](byref):System.__Canon
        call     [rax]System.Text.Json.JsonSerializer:ResolveReferenceId[System.__Canon](byref):System.__Canon
        mov      rsi, rax
        mov      rdi, r12
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       jmp      G_M61993_IG123
+       jmp      G_M61993_IG156
 						;; size=31 bbWeight=0.50 PerfScore 3.50
-G_M61993_IG150:
+G_M61993_IG184:
        mov      rax, gword ptr [r15+0x58]
-       mov      gword ptr [rbp-0x790], rax
+       mov      gword ptr [rbp-0x970], rax
        cmp      byte  ptr [rax+0x103], 0
-       jne      G_M61993_IG194
+       jne      G_M61993_IG236
        mov      edi, dword ptr [rax+0xF0]
        mov      rdx, gword ptr [rax+0x08]
        mov      rdx, gword ptr [rdx+0x10]
        cmp      edi, dword ptr [rdx+0x10]
-       jne      G_M61993_IG195
+       jne      G_M61993_IG237
        lea      rdi, bword ptr [r15+0x30]
        mov      rdx, rdi
-       mov      bword ptr [rbp-0x798], rdx
+       mov      bword ptr [rbp-0x978], rdx
        cmp      dword ptr [rax+0xF4], 0
-       jle      SHORT G_M61993_IG151
+       jle      SHORT G_M61993_IG185
        mov      rdi, 0xD1FFAB1E      ; System.Collections.BitArray
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x7A0], rax
-       mov      rcx, gword ptr [rbp-0x790]
+       mov      gword ptr [rbp-0x980], rax
+       mov      rcx, gword ptr [rbp-0x970]
        mov      esi, dword ptr [rcx+0xF4]
        mov      rdi, rax
        xor      edx, edx
        mov      rcx, 0xD1FFAB1E      ; code for System.Collections.BitArray:.ctor(int,ubyte):this
        call     [rcx]System.Collections.BitArray:.ctor(int,ubyte):this
-       mov      rdi, bword ptr [rbp-0x798]
+       mov      rdi, bword ptr [rbp-0x978]
        lea      rdi, bword ptr [rdi+0x48]
-       mov      rsi, gword ptr [rbp-0x7A0]
+       mov      rsi, gword ptr [rbp-0x980]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
 						;; size=145 bbWeight=0.50 PerfScore 17.62
-G_M61993_IG151:
+G_M61993_IG185:
        xor      rdi, rdi
        mov      gword ptr [r15+0x30], rdi
-       mov      rdi, r14
+       mov      rdi, r13
        mov      rsi, r15
-       mov      rdx, r13
-       mov      rax, qword ptr [r14]
+       mov      rdx, r14
+       mov      rax, qword ptr [r13]
        mov      rax, qword ptr [rax+0x68]
        call     [rax+0x08]System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:InitializeConstructorArgumentCaches(byref,System.Text.Json.JsonSerializerOptions):this
        mov      byte  ptr [r15+0x8A], 3
-						;; size=33 bbWeight=0.50 PerfScore 5.00
-G_M61993_IG152:
-       mov      rdi, r14
+						;; size=34 bbWeight=0.50 PerfScore 5.00
+G_M61993_IG186:
+       mov      rdi, r13
        mov      rsi, r15
        mov      rdx, rbx
-       mov      rcx, r13
+       mov      rcx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this
        call     [rax]System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this
        test     eax, eax
-       jne      SHORT G_M61993_IG155
+       jne      SHORT G_M61993_IG189
 						;; size=28 bbWeight=0.50 PerfScore 2.75
-G_M61993_IG153:
+G_M61993_IG187:
        xor      rax, rax
        mov      gword ptr [r12], rax
 						;; size=6 bbWeight=0.50 PerfScore 0.62
-G_M61993_IG154:
+G_M61993_IG188:
        vzeroupper 
-       add      rsp, 0x828
+       add      rsp, 0xA18
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=21 bbWeight=0.50 PerfScore 2.62
-G_M61993_IG155:
-       mov      rsi, qword ptr [r14]
+G_M61993_IG189:
+       mov      rsi, qword ptr [r13]
        mov      rsi, qword ptr [rsi+0x30]
        mov      rsi, qword ptr [rsi+0x20]
        mov      rbx, qword ptr [rsi]
+       mov      qword ptr [rbp-0x858], rbx
        lea      rdx, bword ptr [r15+0x30]
        mov      rax, rdx
-       mov      bword ptr [rbp-0x7E8], rax
+       mov      bword ptr [rbp-0x9D8], rax
        mov      rsi, rax
-       mov      rdi, r14
-       mov      rcx, qword ptr [r14]
+       mov      rdi, r13
+       mov      rcx, qword ptr [r13]
        mov      rcx, qword ptr [rcx+0x68]
        call     [rcx+0x18]System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:CreateObject(byref):System.Object:this
        mov      rcx, rax
        test     rcx, rcx
-       je       SHORT G_M61993_IG158
-						;; size=52 bbWeight=0.50 PerfScore 9.38
-G_M61993_IG156:
-       mov      rdi, rbx
+       je       SHORT G_M61993_IG192
+						;; size=61 bbWeight=0.50 PerfScore 9.88
+G_M61993_IG190:
+       mov      rdi, qword ptr [rbp-0x858]
        cmp      qword ptr [rcx], rdi
-       je       SHORT G_M61993_IG158
-						;; size=8 bbWeight=0.25 PerfScore 1.06
-G_M61993_IG157:
+       je       SHORT G_M61993_IG192
+						;; size=12 bbWeight=0.25 PerfScore 1.25
+G_M61993_IG191:
        mov      rsi, rax
        call     CORINFO_HELP_CHKCASTANY
-       mov      rbx, rax
-       mov      rcx, rbx
-						;; size=14 bbWeight=0.12 PerfScore 0.22
-G_M61993_IG158:
-       mov      rbx, rcx
+       mov      rcx, rax
+						;; size=11 bbWeight=0.12 PerfScore 0.19
+G_M61993_IG192:
+       mov      rax, rcx
        test     byte  ptr [r15+0x8D], 2
-       je       SHORT G_M61993_IG159
+       je       SHORT G_M61993_IG193
        mov      rdi, gword ptr [r15+0x08]
        mov      rsi, gword ptr [r15+0x10]
-       mov      rdx, rbx
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x20]System.Text.Json.Serialization.ReferenceResolver:AddReference(System.String,System.Object):this
+       mov      gword ptr [rbp-0x898], rax
+       mov      rdx, rax
+       mov      rcx, qword ptr [rdi]
+       mov      rcx, qword ptr [rcx+0x40]
+       call     [rcx+0x20]System.Text.Json.Serialization.ReferenceResolver:AddReference(System.String,System.Object):this
        xor      rsi, rsi
        mov      gword ptr [r15+0x10], rsi
-						;; size=40 bbWeight=0.50 PerfScore 8.38
-G_M61993_IG159:
-       mov      rax, gword ptr [rbp-0x6C8]
-       mov      rcx, gword ptr [rax+0x38]
-       test     rcx, rcx
-       je       SHORT G_M61993_IG160
-       mov      rsi, rbx
-       mov      rdi, gword ptr [rcx+0x08]
-       call     [rcx+0x18]System.Action`1[System.__Canon]:Invoke(System.__Canon):this
-						;; size=26 bbWeight=0.50 PerfScore 4.75
-G_M61993_IG160:
-       mov      rcx, gword ptr [rbp-0x6D0]
-       cmp      dword ptr [rcx+0x30], 0
-       jle      G_M61993_IG165
-       xor      r8d, r8d
-						;; size=20 bbWeight=0.50 PerfScore 2.62
-G_M61993_IG161:
-       mov      rsi, gword ptr [rcx+0x18]
+       mov      rax, gword ptr [rbp-0x898]
+						;; size=54 bbWeight=0.50 PerfScore 9.38
+G_M61993_IG193:
+       mov      rcx, gword ptr [rbp-0x890]
+       mov      rdx, gword ptr [rcx+0x38]
+       test     rdx, rdx
+       je       SHORT G_M61993_IG194
+       mov      gword ptr [rbp-0x898], rax
+       mov      rsi, rax
+       mov      rdi, gword ptr [rdx+0x08]
+       call     [rdx+0x18]System.Action`1[System.__Canon]:Invoke(System.__Canon):this
+       mov      rax, gword ptr [rbp-0x898]
+						;; size=40 bbWeight=0.50 PerfScore 5.75
+G_M61993_IG194:
+       mov      r8, gword ptr [rbp-0x8A0]
+       cmp      dword ptr [r8+0x30], 0
+       jle      G_M61993_IG199
+       xor      r9d, r9d
+						;; size=21 bbWeight=0.50 PerfScore 2.62
+G_M61993_IG195:
+       mov      rsi, gword ptr [r8+0x18]
        mov      rdx, rsi
-       cmp      r8d, dword ptr [rdx+0x08]
-       jae      G_M61993_IG175
-       lea      rdi, [r8+2*r8]
-       mov      r9, gword ptr [rdx+8*rdi+0x10]
-       mov      gword ptr [rbp-0x708], r9
-       mov      qword ptr [rbp-0x6A8], r8
-       cmp      r8d, dword ptr [rsi+0x08]
-       jae      G_M61993_IG175
+       cmp      r9d, dword ptr [rdx+0x08]
+       jae      G_M61993_IG209
+       lea      rdi, [r9+2*r9]
+       mov      r10, gword ptr [rdx+8*rdi+0x10]
+       mov      gword ptr [rbp-0x8D0], r10
+       mov      qword ptr [rbp-0x870], r9
+       cmp      r9d, dword ptr [rsi+0x08]
+       jae      G_M61993_IG209
        lea      rsi, bword ptr [rsi+8*rdi+0x10]
-       mov      r10, gword ptr [rsi+0x08]
-       mov      gword ptr [rbp-0x710], r10
-       mov      r11, gword ptr [rsi+0x10]
-       mov      gword ptr [rbp-0x718], r11
-       test     r11, r11
-       jne      G_M61993_IG166
+       mov      r11, gword ptr [rsi+0x08]
+       mov      gword ptr [rbp-0x8D8], r11
+       mov      rdi, gword ptr [rsi+0x10]
+       mov      gword ptr [rbp-0x8E0], rdi
+       test     rdi, rdi
+       jne      G_M61993_IG200
 						;; size=86 bbWeight=4 PerfScore 92.00
-G_M61993_IG162:
-       test     r10, r10
-       jne      SHORT G_M61993_IG163
-       cmp      byte  ptr [r9+0x96], 0
-       jne      G_M61993_IG170
+G_M61993_IG196:
+       test     r11, r11
+       jne      SHORT G_M61993_IG197
+       cmp      byte  ptr [r10+0x96], 0
+       jne      G_M61993_IG204
 						;; size=19 bbWeight=2 PerfScore 10.50
-G_M61993_IG163:
-       mov      r11, gword ptr [r9+0x28]
-       mov      rsi, rbx
-       mov      rdx, r10
-       mov      rdi, gword ptr [r11+0x08]
+G_M61993_IG197:
+       mov      rdi, gword ptr [r10+0x28]
+       mov      gword ptr [rbp-0x9E0], rdi
+       mov      gword ptr [rbp-0x898], rax
+       mov      rsi, rax
+       mov      rdx, r11
+       mov      rdi, gword ptr [rdi+0x08]
+       mov      r11, gword ptr [rbp-0x9E0]
        call     [r11+0x18]System.Action`2[System.__Canon,System.__Canon]:Invoke(System.__Canon,System.__Canon):this
-       mov      rax, bword ptr [rbp-0x7E8]
+       mov      rax, bword ptr [rbp-0x9D8]
        mov      rdi, rax
-       mov      rcx, gword ptr [rbp-0x708]
+       mov      rcx, gword ptr [rbp-0x8D0]
        cmp      byte  ptr [rcx+0x94], 0
-       je       SHORT G_M61993_IG164
+       je       SHORT G_M61993_IG198
        mov      rdi, gword ptr [rdi+0x48]
        mov      r8d, dword ptr [rcx+0x8C]
        cmp      r8d, dword ptr [rdi+0x10]
-       jae      G_M61993_IG196
+       jae      G_M61993_IG238
        mov      ecx, 1
        shlx     esi, ecx, r8d
        mov      rdx, gword ptr [rdi+0x08]
        mov      ecx, r8d
        sar      ecx, 5
        cmp      ecx, dword ptr [rdx+0x08]
-       jae      G_M61993_IG175
+       jae      G_M61993_IG209
        sar      r8d, 5
        mov      ecx, r8d
        lea      rdx, bword ptr [rdx+4*rcx+0x10]
        or       dword ptr [rdx], esi
        inc      dword ptr [rdi+0x14]
-       mov      bword ptr [rbp-0x7E8], rax
-       jmp      G_M61993_IG170
-						;; size=123 bbWeight=2 PerfScore 80.00
-G_M61993_IG164:
-       mov      bword ptr [rbp-0x7E8], rax
-       jmp      G_M61993_IG170
-						;; size=12 bbWeight=1 PerfScore 3.00
-G_M61993_IG165:
-       mov      rax, gword ptr [rbp-0x6C8]
-       jmp      G_M61993_IG116
-						;; size=12 bbWeight=0.25 PerfScore 0.75
-G_M61993_IG166:
-       mov      bword ptr [rbp-0x6C0], r12
-       mov      rdi, rbx
-       mov      rsi, r9
-       mov      rdx, r13
+       mov      bword ptr [rbp-0x9D8], rax
+       mov      rax, gword ptr [rbp-0x898]
+       jmp      G_M61993_IG204
+						;; size=151 bbWeight=2 PerfScore 88.00
+G_M61993_IG198:
+       mov      bword ptr [rbp-0x9D8], rax
+       mov      rax, gword ptr [rbp-0x898]
+       jmp      G_M61993_IG204
+						;; size=19 bbWeight=1 PerfScore 4.00
+G_M61993_IG199:
+       mov      qword ptr [rbp-0x860], rbx
+       mov      rdx, r8
+       mov      rcx, gword ptr [rbp-0x890]
+       jmp      G_M61993_IG149
+						;; size=22 bbWeight=0.25 PerfScore 1.06
+G_M61993_IG200:
+       mov      bword ptr [rbp-0x888], r12
+       mov      gword ptr [rbp-0x898], rax
+       mov      rdi, rax
+       mov      rsi, r10
+       mov      rdx, r14
        mov      r12, 0xD1FFAB1E      ; code for System.Text.Json.JsonSerializer:CreateExtensionDataProperty(System.Object,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonSerializerOptions)
        call     [r12]System.Text.Json.JsonSerializer:CreateExtensionDataProperty(System.Object,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.JsonSerializerOptions)
-       mov      rdi, gword ptr [rbp-0x708]
-       mov      rsi, rbx
+       mov      rdi, gword ptr [rbp-0x8D0]
+       mov      rsi, gword ptr [rbp-0x898]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x28]System.Text.Json.Serialization.Metadata.JsonPropertyInfo:GetValueAsObject(System.Object):System.Object:this
        mov      r12, rax
        mov      rsi, r12
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.IDictionary`2[System.String,System.Text.Json.JsonElement]
        call     CORINFO_HELP_ISINSTANCEOFINTERFACE
-       mov      gword ptr [rbp-0x720], rax
+       mov      gword ptr [rbp-0x8E8], rax
        test     rax, rax
-       je       SHORT G_M61993_IG169
-       mov      rax, gword ptr [rbp-0x720]
+       je       SHORT G_M61993_IG203
+       mov      rax, gword ptr [rbp-0x8E8]
        mov      rsi, 0xD1FFAB1E      ; System.Text.Json.JsonElement
-       mov      r12, gword ptr [rbp-0x710]
+       mov      r12, gword ptr [rbp-0x8D8]
        cmp      qword ptr [r12], rsi
-       je       SHORT G_M61993_IG168
-						;; size=113 bbWeight=2 PerfScore 47.00
-G_M61993_IG167:
+       je       SHORT G_M61993_IG202
+						;; size=124 bbWeight=2 PerfScore 50.50
+G_M61993_IG201:
        mov      rsi, r12
        mov      rdi, 0xD1FFAB1E      ; System.Text.Json.JsonElement
        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_UNBOX
        call     [rcx]CORINFO_HELP_UNBOX
-       mov      rax, gword ptr [rbp-0x720]
+       mov      rax, gword ptr [rbp-0x8E8]
 						;; size=32 bbWeight=1 PerfScore 4.75
-G_M61993_IG168:
+G_M61993_IG202:
        mov      rdx, gword ptr [r12+0x08]
        mov      rcx, qword ptr [r12+0x10]
        mov      rdi, rax
-       mov      rsi, gword ptr [rbp-0x718]
+       mov      rsi, gword ptr [rbp-0x8E0]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IDictionary`2[System.__Canon,System.Text.Json.JsonElement]:set_Item(System.__Canon,System.Text.Json.JsonElement):this
        call     [r11]System.Collections.Generic.IDictionary`2[System.__Canon,System.Text.Json.JsonElement]:set_Item(System.__Canon,System.Text.Json.JsonElement):this
-       mov      r12, bword ptr [rbp-0x6C0]
-       jmp      SHORT G_M61993_IG170
-						;; size=42 bbWeight=2 PerfScore 23.00
-G_M61993_IG169:
+       mov      rax, gword ptr [rbp-0x898]
+       mov      r12, bword ptr [rbp-0x888]
+       jmp      SHORT G_M61993_IG204
+						;; size=49 bbWeight=2 PerfScore 25.00
+G_M61993_IG203:
        mov      rsi, r12
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.IDictionary`2[System.String,System.Object]
        call     CORINFO_HELP_CHKCASTINTERFACE
        mov      rdi, rax
-       mov      rdx, gword ptr [rbp-0x710]
-       mov      rsi, gword ptr [rbp-0x718]
+       mov      rdx, gword ptr [rbp-0x8D8]
+       mov      rsi, gword ptr [rbp-0x8E0]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IDictionary`2[System.__Canon,System.__Canon]:set_Item(System.__Canon,System.__Canon):this
        call     [r11]System.Collections.Generic.IDictionary`2[System.__Canon,System.__Canon]:set_Item(System.__Canon,System.__Canon):this
-       mov      r12, bword ptr [rbp-0x6C0]
-						;; size=55 bbWeight=2 PerfScore 16.00
-G_M61993_IG170:
-       mov      r8, qword ptr [rbp-0x6A8]
-       inc      r8d
-       mov      rdi, r8
-       mov      rcx, gword ptr [rbp-0x6D0]
-       cmp      edi, dword ptr [rcx+0x30]
-       mov      r8, rdi
-       jl       G_M61993_IG161
-						;; size=32 bbWeight=4 PerfScore 27.00
-G_M61993_IG171:
-       mov      r13, gword ptr [rcx+0x18]
+       mov      rax, gword ptr [rbp-0x898]
+       mov      r12, bword ptr [rbp-0x888]
+						;; size=62 bbWeight=2 PerfScore 18.00
+G_M61993_IG204:
+       mov      r9, qword ptr [rbp-0x870]
+       inc      r9d
+       mov      rdi, r9
+       mov      r8, gword ptr [rbp-0x8A0]
+       cmp      edi, dword ptr [r8+0x30]
+       mov      r9, rdi
+       jl       G_M61993_IG195
+						;; size=33 bbWeight=4 PerfScore 27.00
+G_M61993_IG205:
+       mov      gword ptr [rbp-0x898], rax
+       mov      r14, gword ptr [r8+0x18]
        xor      rdi, rdi
-       mov      gword ptr [rcx+0x18], rdi
+       mov      gword ptr [r8+0x18], rdi
        mov      rdi, 0xD1FFAB1E
        mov      esi, 125
        call     CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.ArrayPool`1[System.ValueTuple`3[System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Object,System.String]]:s_shared
        mov      rdi, gword ptr [rdi]
-       mov      rsi, r13
+       mov      rsi, r14
        mov      edx, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:Return(System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon][],ubyte):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Buffers.SharedArrayPool`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:Return(System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon][],ubyte):this
-       mov      rax, gword ptr [rbp-0x6C8]
-       mov      rcx, gword ptr [rbp-0x6D0]
-       jmp      G_M61993_IG116
-						;; size=84 bbWeight=0.50 PerfScore 8.88
-G_M61993_IG172:
+       mov      qword ptr [rbp-0x860], rbx
+       mov      rax, gword ptr [rbp-0x898]
+       mov      rcx, gword ptr [rbp-0x890]
+       mov      rdx, gword ptr [rbp-0x8A0]
+       jmp      G_M61993_IG149
+						;; size=105 bbWeight=0.50 PerfScore 10.38
+G_M61993_IG206:
        movzx    rax, al
 						;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M61993_IG173:
+G_M61993_IG207:
        vzeroupper 
-       add      rsp, 0x828
+       add      rsp, 0xA18
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=21 bbWeight=0.50 PerfScore 2.62
-G_M61993_IG174:
+G_M61993_IG208:
        call     CORINFO_HELP_OVERFLOW
 						;; size=5 bbWeight=0 PerfScore 0.00
-G_M61993_IG175:
+G_M61993_IG209:
        call     CORINFO_HELP_RNGCHKFAIL
 						;; size=5 bbWeight=0 PerfScore 0.00
-G_M61993_IG176:
+G_M61993_IG210:
+       mov      r14, bword ptr [rbp-0x9D8]
+       mov      rdi, r14
+       cmp      byte  ptr [rdi+0x5E], 1
+       je       SHORT G_M61993_IG211
+       mov      rax, gword ptr [rdi+0x28]
+       jmp      SHORT G_M61993_IG212
+						;; size=22 bbWeight=0 PerfScore 0.00
+G_M61993_IG211:
+       mov      rax, gword ptr [rdi+0x30]
+						;; size=4 bbWeight=0 PerfScore 0.00
+G_M61993_IG212:
+       mov      bword ptr [rbp-0x9A8], rdx
+       mov      rdi, rdx
+       mov      dword ptr [rbp-0x840], r8d
+       mov      esi, r8d
+       mov      rdx, gword ptr [rax+0x88]
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonSerializer:GetMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte
+       call     [rax]System.Text.Json.JsonSerializer:GetMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte
+       test     eax, eax
+       je       G_M61993_IG215
+       mov      r15, r14
+       mov      r12d, dword ptr [rbp-0x840]
+       test     r12d, r12d
+       jne      SHORT G_M61993_IG213
+       mov      rdi, 0xD1FFAB1E
+       mov      esi, 20
+       call     CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
+       mov      rsi, 0xD1FFAB1E      ; data for System.Array+EmptyArray`1[ubyte]:Value
+       mov      rsi, gword ptr [rsi]
+       jmp      SHORT G_M61993_IG214
+						;; size=97 bbWeight=0 PerfScore 0.00
+G_M61993_IG213:
+       mov      esi, r12d
+       mov      rdi, 0xD1FFAB1E      ; ubyte[]
+       call     CORINFO_HELP_NEWARR_1_VC
+       mov      r14, rax
+       lea      rdi, bword ptr [r14+0x10]
+       mov      edx, r12d
+       mov      rsi, bword ptr [rbp-0x9A8]
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      rsi, r14
+						;; size=50 bbWeight=0 PerfScore 0.00
+G_M61993_IG214:
+       lea      rdi, bword ptr [r15+0x08]
+       call     CORINFO_HELP_CHECKED_ASSIGN_REF
+       mov      edi, 0x19D3
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
+       call     [rax]System.SR:GetResourceString(System.String):System.String
+       mov      rbx, rax
+       mov      rdi, 0xD1FFAB1E
+       mov      esi, 51
+       call     CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
+       mov      rdi, 0xD1FFAB1E      ; data for System.Array+EmptyArray`1[System.Object]:Value
+       mov      rsi, gword ptr [rdi]
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.SR:Format(System.String,System.Object[]):System.String
+       call     [rax]System.SR:Format(System.String,System.Object[]):System.String
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowJsonException(System.String)
+       call     [rax]System.Text.Json.ThrowHelper:ThrowJsonException(System.String)
+       int3     
+						;; size=111 bbWeight=0 PerfScore 0.00
+G_M61993_IG215:
+       mov      rcx, gword ptr [r15+0x58]
+       cmp      dword ptr [rcx+0xF8], 3
+       jne      SHORT G_M61993_IG216
+       lea      rdi, bword ptr [rbp-0x428]
+       mov      rsi, rbx
+       mov      ecx, 24
+       rep movsq 
+       lea      rdi, [rbp-0x428]
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:GetString():System.String:this
+       call     [rax]System.Text.Json.Utf8JsonReader:GetString():System.String:this
+       lea      rdi, bword ptr [r14+0x10]
+       mov      rsi, rax
+       call     CORINFO_HELP_CHECKED_ASSIGN_REF
+       jmp      G_M61993_IG229
+						;; size=67 bbWeight=0 PerfScore 0.00
+G_M61993_IG216:
+       mov      r12d, dword ptr [rbp-0x840]
+       test     r12d, r12d
+       jne      SHORT G_M61993_IG217
+       mov      rdi, 0xD1FFAB1E
+       mov      esi, 20
+       call     CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
+       mov      rsi, 0xD1FFAB1E      ; data for System.Array+EmptyArray`1[ubyte]:Value
+       mov      rsi, gword ptr [rsi]
+       jmp      SHORT G_M61993_IG218
+						;; size=47 bbWeight=0 PerfScore 0.00
+G_M61993_IG217:
+       mov      esi, r12d
+       mov      rdi, 0xD1FFAB1E      ; ubyte[]
+       call     CORINFO_HELP_NEWARR_1_VC
+       mov      r15, rax
+       lea      rdi, bword ptr [r15+0x10]
+       mov      edx, r12d
+       mov      rsi, bword ptr [rbp-0x9A8]
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      rsi, r15
+						;; size=50 bbWeight=0 PerfScore 0.00
+G_M61993_IG218:
+       lea      rdi, bword ptr [r14+0x08]
+       call     CORINFO_HELP_CHECKED_ASSIGN_REF
+       jmp      G_M61993_IG229
+						;; size=14 bbWeight=0 PerfScore 0.00
+G_M61993_IG219:
        mov      rsi, gword ptr [rdi+0xB0]
        mov      rdi, gword ptr [rsi+0x20]
-       mov      r13, gword ptr [rbp-0x760]
-       mov      rsi, gword ptr [r13+0xB8]
+       mov      rbx, gword ptr [rbp-0x940]
+       mov      rsi, gword ptr [rbx+0xB8]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowInvalidOperationException_NoMetadataForTypeProperties(System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver,System.Type)
        call     [rax]System.Text.Json.ThrowHelper:ThrowInvalidOperationException_NoMetadataForTypeProperties(System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver,System.Type)
        int3     
 						;; size=38 bbWeight=0 PerfScore 0.00
-G_M61993_IG177:
-       mov      r13, bword ptr [rbp-0x7E8]
-       mov      rdi, r13
+G_M61993_IG220:
+       mov      r14, bword ptr [rbp-0x9D8]
+       mov      rdi, r14
        cmp      byte  ptr [rdi+0x5E], 1
-       je       SHORT G_M61993_IG178
+       je       SHORT G_M61993_IG221
        mov      rdx, gword ptr [rdi+0x28]
-       jmp      SHORT G_M61993_IG179
+       jmp      SHORT G_M61993_IG222
 						;; size=22 bbWeight=0 PerfScore 0.00
-G_M61993_IG178:
+G_M61993_IG221:
        mov      rdx, gword ptr [rdi+0x30]
 						;; size=4 bbWeight=0 PerfScore 0.00
-G_M61993_IG179:
-       mov      rdi, bword ptr [rbp-0x7C8]
-       mov      esi, dword ptr [rbp-0x694]
+G_M61993_IG222:
+       mov      rdi, bword ptr [rbp-0x9B8]
+       mov      esi, dword ptr [rbp-0x848]
        mov      rdx, gword ptr [rdx+0x88]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonSerializer:GetMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte
        call     [rax]System.Text.Json.JsonSerializer:GetMetadataPropertyName(System.ReadOnlySpan`1[ubyte],System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver):ubyte
        test     eax, eax
-       je       G_M61993_IG182
-       mov      r15, r13
-       mov      r12d, dword ptr [rbp-0x694]
+       je       G_M61993_IG225
+       mov      r15, r14
+       mov      r12d, dword ptr [rbp-0x848]
        test     r12d, r12d
-       jne      SHORT G_M61993_IG180
+       jne      SHORT G_M61993_IG223
        mov      rdi, 0xD1FFAB1E
        mov      esi, 20
        call     CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
        mov      rsi, 0xD1FFAB1E      ; data for System.Array+EmptyArray`1[ubyte]:Value
        mov      rsi, gword ptr [rsi]
-       jmp      SHORT G_M61993_IG181
+       jmp      SHORT G_M61993_IG224
 						;; size=90 bbWeight=0 PerfScore 0.00
-G_M61993_IG180:
+G_M61993_IG223:
        mov      esi, r12d
        mov      rdi, 0xD1FFAB1E      ; ubyte[]
        call     CORINFO_HELP_NEWARR_1_VC
-       mov      r13, rax
-       lea      rdi, bword ptr [r13+0x10]
+       mov      r14, rax
+       lea      rdi, bword ptr [r14+0x10]
        mov      edx, r12d
-       mov      rsi, bword ptr [rbp-0x7C8]
+       mov      rsi, bword ptr [rbp-0x9B8]
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
-       mov      rsi, r13
+       mov      rsi, r14
 						;; size=50 bbWeight=0 PerfScore 0.00
-G_M61993_IG181:
+G_M61993_IG224:
        lea      rdi, bword ptr [r15+0x08]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      edi, 0x19D3
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rax]System.SR:GetResourceString(System.String):System.String
        mov      rbx, rax
        mov      rdi, 0xD1FFAB1E
        mov      esi, 51
        call     CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
        mov      rdi, 0xD1FFAB1E      ; data for System.Array+EmptyArray`1[System.Object]:Value
        mov      rsi, gword ptr [rdi]
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.SR:Format(System.String,System.Object[]):System.String
        call     [rax]System.SR:Format(System.String,System.Object[]):System.String
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowJsonException(System.String)
        call     [rax]System.Text.Json.ThrowHelper:ThrowJsonException(System.String)
        int3     
 						;; size=111 bbWeight=0 PerfScore 0.00
-G_M61993_IG182:
+G_M61993_IG225:
        mov      rcx, gword ptr [r15+0x58]
        cmp      dword ptr [rcx+0xF8], 3
-       jne      SHORT G_M61993_IG183
-       lea      rdi, bword ptr [rbp-0x4D0]
+       jne      SHORT G_M61993_IG226
+       lea      rdi, bword ptr [rbp-0x680]
        mov      rsi, rbx
        mov      ecx, 24
        rep movsq 
-       lea      rdi, [rbp-0x4D0]
+       lea      rdi, [rbp-0x680]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:GetString():System.String:this
        call     [rax]System.Text.Json.Utf8JsonReader:GetString():System.String:this
-       lea      rdi, bword ptr [r13+0x10]
+       lea      rdi, bword ptr [r14+0x10]
        mov      rsi, rax
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       jmp      SHORT G_M61993_IG186
+       jmp      SHORT G_M61993_IG229
 						;; size=64 bbWeight=0 PerfScore 0.00
-G_M61993_IG183:
-       mov      rbx, r13
-       mov      r12d, dword ptr [rbp-0x694]
+G_M61993_IG226:
+       mov      rbx, r14
+       mov      r12d, dword ptr [rbp-0x848]
        test     r12d, r12d
-       jne      SHORT G_M61993_IG184
+       jne      SHORT G_M61993_IG227
        mov      rdi, 0xD1FFAB1E
        mov      esi, 20
        call     CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
        mov      rsi, 0xD1FFAB1E      ; data for System.Array+EmptyArray`1[ubyte]:Value
        mov      rsi, gword ptr [rsi]
-       jmp      SHORT G_M61993_IG185
+       jmp      SHORT G_M61993_IG228
 						;; size=50 bbWeight=0 PerfScore 0.00
-G_M61993_IG184:
+G_M61993_IG227:
        mov      esi, r12d
        mov      rdi, 0xD1FFAB1E      ; ubyte[]
        call     CORINFO_HELP_NEWARR_1_VC
        mov      r15, rax
        lea      rdi, bword ptr [r15+0x10]
        mov      edx, r12d
-       mov      rsi, bword ptr [rbp-0x7C8]
+       mov      rsi, bword ptr [rbp-0x9B8]
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      rsi, r15
 						;; size=50 bbWeight=0 PerfScore 0.00
-G_M61993_IG185:
+G_M61993_IG228:
        lea      rdi, bword ptr [rbx+0x08]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
 						;; size=9 bbWeight=0 PerfScore 0.00
-G_M61993_IG186:
+G_M61993_IG229:
        mov      edi, 0x1979
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rax]System.SR:GetResourceString(System.String):System.String
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowJsonException(System.String)
        call     [rax]System.Text.Json.ThrowHelper:ThrowJsonException(System.String)
        int3     
 						;; size=51 bbWeight=0 PerfScore 0.00
-G_M61993_IG187:
+G_M61993_IG230:
        mov      edi, 9
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
-G_M61993_IG188:
-       mov      rdi, r11
+G_M61993_IG231:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowStartOrEndArgumentValidationException(long)
        call     [rax]System.ThrowHelper:ThrowStartOrEndArgumentValidationException(long)
        int3     
-						;; size=16 bbWeight=0 PerfScore 0.00
-G_M61993_IG189:
+						;; size=13 bbWeight=0 PerfScore 0.00
+G_M61993_IG232:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException_PositionOutOfRange()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException_PositionOutOfRange()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M61993_IG190:
+G_M61993_IG233:
        mov      edi, 1
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
-G_M61993_IG191:
+G_M61993_IG234:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M61993_IG192:
-       xor      rcx, rcx
-       xor      r8d, r8d
-       lea      rdi, [rbp-0xF0]
-       mov      esi, 32
-       xor      edx, edx
-       mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowJsonReaderException(byref,int,ubyte,System.ReadOnlySpan`1[ubyte])
-       call     [rax]System.Text.Json.ThrowHelper:ThrowJsonReaderException(byref,int,ubyte,System.ReadOnlySpan`1[ubyte])
-       int3     
-						;; size=32 bbWeight=0 PerfScore 0.00
-G_M61993_IG193:
-       mov      rdi, gword ptr [r14+0x20]
+G_M61993_IG235:
+       mov      rdi, gword ptr [r13+0x20]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowJsonException_DeserializeUnableToConvertValue(System.Type)
        call     [rax]System.Text.Json.ThrowHelper:ThrowJsonException_DeserializeUnableToConvertValue(System.Type)
        int3     
 						;; size=17 bbWeight=0 PerfScore 0.00
-G_M61993_IG194:
+G_M61993_IG236:
        mov      rdi, gword ptr [rax+0xB0]
        mov      rdi, gword ptr [rdi+0x20]
        mov      rsi, gword ptr [rax+0xB8]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowInvalidOperationException_NoMetadataForTypeProperties(System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver,System.Type)
        call     [rax]System.Text.Json.ThrowHelper:ThrowInvalidOperationException_NoMetadataForTypeProperties(System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver,System.Type)
        int3     
 						;; size=31 bbWeight=0 PerfScore 0.00
-G_M61993_IG195:
-       mov      rdi, gword ptr [r14+0x20]
+G_M61993_IG237:
+       mov      rdi, gword ptr [r13+0x20]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowInvalidOperationException_ConstructorParameterIncompleteBinding(System.Type)
        call     [rax]System.Text.Json.ThrowHelper:ThrowInvalidOperationException_ConstructorParameterIncompleteBinding(System.Type)
        int3     
 						;; size=17 bbWeight=0 PerfScore 0.00
-G_M61993_IG196:
+G_M61993_IG238:
        mov      edi, r8d
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.BitArray:ThrowArgumentOutOfRangeException(int)
        call     [rax]System.Collections.BitArray:ThrowArgumentOutOfRangeException(int)
        int3     
 						;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 7185, prolog size 103, PerfScore 3238.88, instruction count 1564, allocated bytes for code 7185 (MethodHash=67e50dd6) for method System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
+; Total bytes of code 8744, prolog size 86, PerfScore 3999.77, instruction count 1882, allocated bytes for code 8744 (MethodHash=67e50dd6) for method System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
1538 (269.35 % of base) - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]][],int):this
 ; Assembly listing for method System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]][],int):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 9 single block inlinees; 9 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T08] (  6,  5   )     ref  ->  [rbp-0x158]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]>
-;  V01 arg1         [V01,T05] (  5,  7   )     ref  ->  rbx         class-hnd single-def <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]][]>
-;  V02 arg2         [V02,T06] (  4,  6   )     int  ->  registers  
-;  V03 loc0         [V03    ] (  5, 12   )  struct (136) [rbp-0xB8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
-;  V04 loc1         [V04,T17] (  2,  4   )  struct (16) [rbp-0xC8]  do-not-enreg[SR] multireg-ret must-init <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
-;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V00 this         [V00,T22] (  7,  6   )     ref  ->  [rbp-0x1F8]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]>
+;  V01 arg1         [V01,T17] (  5,  7   )     ref  ->  rbx         class-hnd single-def <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]][]>
+;  V02 arg2         [V02,T23] (  4,  6   )     int  ->  registers  
+;  V03 loc0         [V03    ] ( 17, 36   )  struct (136) [rbp-0xB8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
+;* V04 loc1         [V04    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
+;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V07 tmp2         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V08 tmp3         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V09 tmp4         [V09,T03] (  4, 16   )     int  ->  r15         "impSpillLclRefs"
 ;* V10 tmp5         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V11 tmp6         [V11,T14] (  6,  4   )    long  ->  rax         "Indirect call through function pointer"
-;  V12 tmp7         [V12    ] (  2,  4   )  struct (136) [rbp-0x150]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
-;* V13 tmp8         [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V14 tmp9         [V14,T18] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V15 tmp10        [V15,T02] (  2, 32   )    long  ->  rsi         "argument with side effect"
-;  V16 tmp11        [V16,T07] (  2,  8   )    long  ->  rsi         "argument with side effect"
-;  V17 PSPSym       [V17,T21] (  1,  1   )    long  ->  [rbp-0x160]  do-not-enreg[V] "PSPSym"
-;  V18 cse0         [V18,T15] (  3,  4   )    long  ->  r13         "CSE #02: moderate"
-;  V19 cse1         [V19,T04] ( 10, 14   )    long  ->  r14         multi-def "CSE #01: aggressive"
-;* V20 rat0         [V20,T13] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
-;* V21 rat1         [V21,T19] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V22 rat2         [V22,T09] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V23 rat3         [V23,T16] (  3,  4   )    long  ->  r13         "runtime lookup"
-;  V24 rat4         [V24,T10] (  3,  5.60)    long  ->  r13         "fgMakeTemp is creating a new local variable"
-;* V25 rat5         [V25,T20] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;  V26 rat6         [V26,T11] (  2,  4   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;  V27 rat7         [V27,T01] (  3, 32   )    long  ->  rsi         "runtime lookup"
-;  V28 rat8         [V28,T00] (  3, 44.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
-;  V29 rat9         [V29,T12] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V30 rat10        [V30,T22] (  3,  0   )    long  ->  rdi         "Spilling to split statement for tree"
-;  V31 rat11        [V31,T23] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V11 tmp6         [V11,T43] (  6,  4   )    long  ->  rax         "Indirect call through function pointer"
+;  V12 tmp7         [V12    ] (  5, 10   )  struct (136) [rbp-0x140]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
+;  V13 tmp8         [V13,T41] (  3,  4.40)    long  ->  rdi         "spilling helperCall"
+;  V14 tmp9         [V14,T31] (  4,  7   )     ref  ->  r12         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V15 tmp10        [V15    ] ( 14, 20   )  struct (32) [rbp-0x160]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;* V16 tmp11        [V16    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V17 tmp12        [V17    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V18 tmp13        [V18    ] (  0,  0   )   byref  ->  zero-ref   
+;  V19 tmp14        [V19,T59] (  2,  2   )   byref  ->  rcx         single-def
+;  V20 tmp15        [V20,T61] (  2,  2   )     int  ->  rdi        
+;  V21 tmp16        [V21,T40] (  6,  5.40)    long  ->  [rbp-0x168]  spill-single-def "Inlining Arg"
+;* V22 tmp17        [V22    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V23 tmp18        [V23    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V24 tmp19        [V24,T62] (  2,  2   )  struct (32) [rbp-0x188]  do-not-enreg[S] must-init "impAppendStmt" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V25 tmp20        [V25,T50] (  3,  3   )     ref  ->  [rbp-0x200]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;* V26 tmp21        [V26    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V27 tmp22        [V27    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V28 tmp23        [V28,T48] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;* V29 tmp24        [V29,T72] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V30 tmp25        [V30    ] (  3,  3   )  struct (32) [rbp-0x1A8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V31 tmp26        [V31,T49] (  5,  3.40)    long  ->  [rbp-0x1B0]  spill-single-def "Inlining Arg"
+;* V32 tmp27        [V32    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V33 tmp28        [V33,T63] (  2,  2   )    long  ->  rsi         "Indirect call through function pointer"
+;* V34 tmp29        [V34    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V35 tmp30        [V35    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V36 tmp31        [V36,T64] (  2,  2   )    long  ->  r12         "Indirect call through function pointer"
+;  V37 tmp32        [V37,T60] (  2,  2   )     ref  ->  [rbp-0x208]  class-hnd exact spill-single-def "non-inline candidate call" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V38 tmp33        [V38,T65] (  2,  2   )     int  ->  rax         "Inlining Arg"
+;  V39 tmp34        [V39,T21] (  3,  8.80)    long  ->  r12         "Inlining Arg"
+;* V40 tmp35        [V40    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V41 tmp36        [V41,T18] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;  V42 tmp37        [V42,T06] (  5, 13.60)    long  ->  [rbp-0x1B8]  spill-single-def "Inlining Arg"
+;* V43 tmp38        [V43    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V44 tmp39        [V44,T19] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V45 tmp40        [V45    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V46 tmp41        [V46    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V47 tmp42        [V47,T24] (  3,  8   )    long  ->   r8         "Indirect call through function pointer"
+;  V48 tmp43        [V48,T07] (  3, 12   )     ref  ->  [rbp-0x210]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V49 tmp44        [V49,T33] (  3,  6   )     int  ->  rsi         "Inline stloc first use temp"
+;  V50 tmp45        [V50,T34] (  3,  6   )  struct (16) [rbp-0x1C8]  do-not-enreg[S] must-init "Inline stloc first use temp" <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
+;* V51 tmp46        [V51    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V52 tmp47        [V52    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V53 tmp48        [V53,T74] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;* V54 tmp49        [V54    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V55 tmp50        [V55,T75] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;  V56 tmp51        [V56,T05] (  6, 13.60)    long  ->  r12         "Inlining Arg"
+;* V57 tmp52        [V57    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V58 tmp53        [V58,T20] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V59 tmp54        [V59    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V60 tmp55        [V60    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V61 tmp56        [V61,T25] (  3,  8   )    long  ->  rdx         "Indirect call through function pointer"
+;  V62 tmp57        [V62,T08] (  3, 12   )     ref  ->  [rbp-0x218]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V63 tmp58        [V63,T28] (  2,  8   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]>
+;  V64 tmp59        [V64    ] (  7,  7.50)     ref  ->  [rbp-0x160]  do-not-enreg[X] addr-exposed "field V15._root (fldOffset=0x0)" P-DEP
+;  V65 tmp60        [V65    ] (  9,  8   )     ref  ->  [rbp-0x158]  do-not-enreg[X] addr-exposed "field V15._stack (fldOffset=0x8)" P-DEP
+;  V66 tmp61        [V66    ] (  5,  6   )     ref  ->  [rbp-0x150]  do-not-enreg[X] addr-exposed "field V15._current (fldOffset=0x10)" P-DEP
+;  V67 tmp62        [V67    ] (  5,  6   )     int  ->  [rbp-0x148]  do-not-enreg[X] addr-exposed "field V15._poolUserId (fldOffset=0x18)" P-DEP
+;  V68 tmp63        [V68,T66] (  2,  2   )    long  ->  rdi         "argument with side effect"
+;  V69 tmp64        [V69,T67] (  2,  2   )    long  ->  r12         "argument with side effect"
+;  V70 tmp65        [V70,T02] (  2, 32   )    long  ->  rsi         "argument with side effect"
+;  V71 tmp66        [V71,T29] (  2,  8   )    long  ->  [rbp-0x1D0]  spill-single-def "argument with side effect"
+;  V72 tmp67        [V72,T30] (  2,  8   )    long  ->  [rbp-0x1D8]  spill-single-def "argument with side effect"
+;  V73 PSPSym       [V73,T73] (  1,  1   )    long  ->  [rbp-0x228]  do-not-enreg[V] "PSPSym"
+;  V74 cse0         [V74,T44] (  3,  4   )    long  ->  r13         "CSE #04: moderate"
+;  V75 cse1         [V75,T45] (  3,  4   )    long  ->  [rbp-0x1E0]  spill-single-def "CSE #05: moderate"
+;  V76 cse2         [V76,T70] (  3,  1.50)    long  ->  [rbp-0x1E8]  spill-single-def "CSE #02: conservative"
+;  V77 cse3         [V77,T71] (  3,  1.50)    long  ->  [rbp-0x1F0]  spill-single-def "CSE #03: conservative"
+;  V78 cse4         [V78,T04] ( 10, 14   )    long  ->  r14         multi-def "CSE #01: aggressive"
+;  V79 cse5         [V79,T32] (  3,  6   )     ref  ->  rdi         "CSE #08: moderate"
+;* V80 rat0         [V80,T42] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;* V81 rat1         [V81,T68] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V82 rat2         [V82,T35] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V83 rat3         [V83,T46] (  3,  4   )    long  ->  r13         "runtime lookup"
+;  V84 rat4         [V84,T36] (  3,  5.60)    long  ->  r13         "fgMakeTemp is creating a new local variable"
+;  V85 rat5         [V85,T47] (  3,  4   )    long  ->  rax         "runtime lookup"
+;  V86 rat6         [V86,T37] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V87 rat7         [V87,T55] (  3,  2   )    long  ->  registers   "runtime lookup"
+;  V88 rat8         [V88,T51] (  3,  2.80)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V89 rat9         [V89,T56] (  3,  2   )    long  ->  registers   "runtime lookup"
+;  V90 rat10        [V90,T52] (  3,  2.80)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V91 rat11        [V91,T57] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V92 rat12        [V92,T53] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V93 rat13        [V93,T58] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V94 rat14        [V94,T54] (  3,  2.80)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V95 rat15        [V95,T69] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V96 rat16        [V96,T38] (  2,  4   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V97 rat17        [V97,T09] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V98 rat18        [V98,T10] (  3, 11.20)    long  ->   r8         "fgMakeTemp is creating a new local variable"
+;  V99 rat19        [V99,T26] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V100 rat20       [V100,T11] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V101 rat21       [V101,T12] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V102 rat22       [V102,T13] (  3, 11.20)    long  ->  r12         "fgMakeTemp is creating a new local variable"
+;  V103 rat23       [V103,T14] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V104 rat24       [V104,T15] (  3, 11.20)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V105 rat25       [V105,T27] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V106 rat26       [V106,T16] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V107 rat27       [V107,T01] (  3, 32   )    long  ->  rsi         "runtime lookup"
+;  V108 rat28       [V108,T00] (  3, 44.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
+;  V109 rat29       [V109,T39] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V110 rat30       [V110,T76] (  3,  0   )    long  ->  rdi         "Spilling to split statement for tree"
+;  V111 rat31       [V111,T77] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 312
+; Lcl frame size = 568
 
 G_M32152_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 312
-       lea      rbp, [rsp+0x160]
+       sub      rsp, 568
+       lea      rbp, [rsp+0x260]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x1C8], rax
        vxorps   xmm8, xmm8, xmm8
-       mov      rax, -288
+       vmovdqa  xmmword ptr [rbp-0x1C0], xmm8
+       mov      rax, -384
        vmovdqa  xmmword ptr [rbp+rax-0x30], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x20], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x10], xmm8
        add      rax, 48
        jne      SHORT  -5 instr
-       mov      qword ptr [rbp-0x160], rsp
+       mov      qword ptr [rbp-0x228], rsp
        mov      qword ptr [rbp-0x30], rdi
-       mov      gword ptr [rbp-0x158], rdi
+       mov      gword ptr [rbp-0x1F8], rdi
+       mov      r8, rdi
        mov      rbx, rsi
        mov      r15d, edx
-       mov      rdx, rdi
-						;; size=91 bbWeight=1 PerfScore 18.33
+						;; size=108 bbWeight=1 PerfScore 21.58
 G_M32152_IG02:
-       mov      r14, qword ptr [rdx]
+       mov      r14, qword ptr [r8]
        test     rbx, rbx
-       je       G_M32152_IG18
+       je       G_M32152_IG72
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      r13, qword ptr [rdi+0x60]
        test     r13, r13
        je       SHORT G_M32152_IG04
 						;; size=28 bbWeight=1 PerfScore 10.50
 G_M32152_IG03:
        jmp      SHORT G_M32152_IG05
 						;; size=2 bbWeight=0.80 PerfScore 1.60
 G_M32152_IG04:
        mov      rdi, r14
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      r13, rax
 						;; size=21 bbWeight=0.20 PerfScore 0.35
 G_M32152_IG05:
-       mov      rsi, r13
-       mov      rdx, gword ptr [rbp-0x158]
-       mov      rdx, gword ptr [rdx+0x08]
-       lea      rdi, [rbp-0x150]
-       mov      rcx, gword ptr [rbp-0x158]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]):this
-       call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]):this
+       mov      rdi, r13
+       mov      r8, gword ptr [rbp-0x1F8]
+       mov      r12, gword ptr [r8+0x08]
+       mov      gword ptr [rbp-0x140], r8
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rax, qword ptr [rsi+0x18]
+       test     rax, rax
+       je       SHORT G_M32152_IG07
+						;; size=37 bbWeight=1 PerfScore 11.50
+G_M32152_IG06:
+       jmp      SHORT G_M32152_IG08
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M32152_IG07:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+						;; size=15 bbWeight=0.20 PerfScore 0.25
+G_M32152_IG08:
+       mov      qword ptr [rbp-0x1E0], rax
+       mov      qword ptr [rbp-0x168], rax
+       test     r12, r12
+       je       G_M32152_IG73
+       mov      gword ptr [rbp-0x160], r12
+       xor      rdx, rdx
+       mov      gword ptr [rbp-0x150], rdx
+       mov      rdx, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool:NewId():int
+       call     [rdx]System.Collections.Immutable.SecureObjectPool:NewId():int
+       mov      dword ptr [rbp-0x148], eax
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x158], rdi
+       mov      rdi, gword ptr [rbp-0x160]
+       cmp      gword ptr [rdi+0x08], 0
+       je       G_M32152_IG28
+						;; size=84 bbWeight=1 PerfScore 16.00
+G_M32152_IG09:
+       mov      rax, qword ptr [rbp-0x168]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rcx, qword ptr [rdi+0x18]
+       test     rcx, rcx
+       je       SHORT G_M32152_IG11
+						;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M32152_IG10:
+       jmp      SHORT G_M32152_IG12
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M32152_IG11:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rcx, rax
+       mov      rax, qword ptr [rbp-0x168]
+						;; size=28 bbWeight=0.10 PerfScore 0.28
+G_M32152_IG12:
+       mov      rdi, rcx
+       mov      qword ptr [rbp-0x1F0], rdi
+       mov      rcx, rdi
+       mov      qword ptr [rbp-0x1B0], rcx
+						;; size=20 bbWeight=0.50 PerfScore 1.25
+G_M32152_IG13:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x160]
+       vmovdqu  ymmword ptr [rbp-0x1A8], ymm0
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M32152_IG14:
+       mov      rsi, qword ptr [rcx+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rdx, qword ptr [rsi+0x18]
+       test     rdx, rdx
+       je       SHORT G_M32152_IG16
+						;; size=16 bbWeight=0.50 PerfScore 3.62
+G_M32152_IG15:
+       jmp      SHORT G_M32152_IG17
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M32152_IG16:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdx, rax
+						;; size=21 bbWeight=0.10 PerfScore 0.18
+G_M32152_IG17:
+       mov      qword ptr [rbp-0x1E8], rdx
+       mov      rsi, rdx
+       lea      rdi, [rbp-0x1A8]
+       call     rsi
+       cmp      eax, -1
+       je       SHORT G_M32152_IG21
+       mov      rdi, qword ptr [rbp-0x1B0]
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rax, qword ptr [rsi+0x20]
+       test     rax, rax
+       je       SHORT G_M32152_IG19
+						;; size=47 bbWeight=0.50 PerfScore 7.12
+G_M32152_IG18:
+       mov      rdi, rax
+       jmp      SHORT G_M32152_IG20
+						;; size=5 bbWeight=0.40 PerfScore 0.90
+G_M32152_IG19:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=18 bbWeight=0.10 PerfScore 0.15
+G_M32152_IG20:
+       lea      rsi, [rbp-0x158]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       call     [rax]System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       test     eax, eax
+       je       SHORT G_M32152_IG21
+       mov      r12, qword ptr [rbp-0x1E8]
+       mov      rax, gword ptr [rbp-0x158]
+       mov      gword ptr [rbp-0x208], rax
+       lea      rdi, [rbp-0x1A8]
+       call     r12
+       mov      r12, gword ptr [rbp-0x208]
+       mov      dword ptr [r12+0x10], eax
+       jmp      G_M32152_IG27
+						;; size=71 bbWeight=0.50 PerfScore 7.75
+G_M32152_IG21:
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x158], rdi
+						;; size=9 bbWeight=0.50 PerfScore 0.62
+G_M32152_IG22:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x160]
+       vmovdqu  ymmword ptr [rbp-0x188], ymm0
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M32152_IG23:
+       mov      rax, qword ptr [rbp-0x168]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M32152_IG25
+						;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M32152_IG24:
+       jmp      SHORT G_M32152_IG26
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M32152_IG25:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.10 PerfScore 0.18
+G_M32152_IG26:
+       call     CORINFO_HELP_NEWSFAST
+       mov      gword ptr [rbp-0x200], rax
+       movzx    rsi, byte  ptr [r12+0x1D]
+       mov      rdi, rax
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       call     [rcx]System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       mov      r12, qword ptr [rbp-0x1F0]
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x188]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, r12
+       mov      rsi, gword ptr [rbp-0x200]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       call     [rax]System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       mov      gword ptr [rbp-0x158], rax
+						;; size=129 bbWeight=0.50 PerfScore 13.25
+G_M32152_IG27:
+       lea      rdi, [rbp-0x160]
+       mov      rsi, qword ptr [rbp-0x168]
+       mov      rdx, gword ptr [rbp-0x160]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]):this
+       call     [rax]System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]):this
+						;; size=33 bbWeight=0.50 PerfScore 2.88
+G_M32152_IG28:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x160]
+       vmovdqu  ymmword ptr [rbp-0x130], ymm0
+						;; size=16 bbWeight=1 PerfScore 5.00
+G_M32152_IG29:
+       vxorps   ymm0, ymm0, ymm0
+       vmovdqu  ymmword ptr [rbp-0x110], ymm0
+       vmovdqu  ymmword ptr [rbp-0xF0], ymm0
+       vmovdqu  ymmword ptr [rbp-0xD8], ymm0
+       lea      rcx, bword ptr [rbp-0x140]
+       mov      r8, gword ptr [rbp-0x1F8]
+       mov      edi, dword ptr [r8+0x2C]
+       mov      dword ptr [rcx+0x08], edi
        lea      rdi, bword ptr [rbp-0xB8]
-       lea      rsi, bword ptr [rbp-0x150]
+       lea      rsi, bword ptr [rbp-0x140]
        mov      ecx, 17
        rep movsq 
-						;; size=62 bbWeight=1 PerfScore 34.25
-G_M32152_IG06:
+						;; size=71 bbWeight=1 PerfScore 34.08
+G_M32152_IG30:
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rdi, qword ptr [rdi+0x60]
        test     rdi, rdi
-       jne      SHORT G_M32152_IG08
-       jmp      SHORT G_M32152_IG08
-						;; size=18 bbWeight=1 PerfScore 9.25
-G_M32152_IG07:
-       mov      rsi, r13
-       lea      rdi, [rbp-0xB8]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:get_Current():System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]:this
-       call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:get_Current():System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]:this
-       mov      gword ptr [rbp-0xC8], rax
-       mov      qword ptr [rbp-0xC0], rdx
+       jne      G_M32152_IG54
+       jmp      G_M32152_IG54
+						;; size=25 bbWeight=1 PerfScore 9.25
+G_M32152_IG31:
+       mov      r12, r13
+       mov      rax, qword ptr [rbp-0x1E0]
+       mov      rcx, rax
+       mov      qword ptr [rbp-0x1B8], rcx
+       cmp      gword ptr [rbp-0xA8], 0
+       je       G_M32152_IG38
+       cmp      gword ptr [rbp-0xA0], 0
+       je       G_M32152_IG42
+       mov      rdi, qword ptr [rcx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x30]
+       test     rdi, rdi
+       je       SHORT G_M32152_IG33
+						;; size=64 bbWeight=2 PerfScore 31.50
+G_M32152_IG32:
+       jmp      SHORT G_M32152_IG34
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M32152_IG33:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       mov      rcx, qword ptr [rbp-0x1B8]
+						;; size=28 bbWeight=0.40 PerfScore 1.10
+G_M32152_IG34:
+       mov      rdx, gword ptr [rbp-0xA0]
+       mov      gword ptr [rbp-0x210], rdx
+       cmp      byte  ptr [rdx], dl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      r8, qword ptr [rsi+0x10]
+       test     r8, r8
+       je       SHORT G_M32152_IG36
+						;; size=29 bbWeight=2 PerfScore 20.50
+G_M32152_IG35:
+       jmp      SHORT G_M32152_IG37
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M32152_IG36:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      r8, rax
+						;; size=18 bbWeight=0.40 PerfScore 0.60
+G_M32152_IG37:
+       lea      rdi, [rbp-0xA8]
+       call     r8
+       mov      rdi, gword ptr [rbp-0x210]
+       cmp      eax, dword ptr [rdi+0x10]
+       mov      rcx, qword ptr [rbp-0x1B8]
+       je       G_M32152_IG42
+						;; size=33 bbWeight=2 PerfScore 19.00
+G_M32152_IG38:
+       mov      rdi, qword ptr [rcx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x28]
+       test     rdi, rdi
+       je       SHORT G_M32152_IG40
+						;; size=16 bbWeight=2 PerfScore 14.50
+G_M32152_IG39:
+       jmp      SHORT G_M32152_IG41
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M32152_IG40:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M32152_IG41:
+       mov      qword ptr [rbp-0x1D0], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0xA8]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1D0]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]])
+       call     [rcx]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]])
+						;; size=86 bbWeight=2 PerfScore 35.50
+G_M32152_IG42:
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M32152_IG44
+						;; size=17 bbWeight=2 PerfScore 14.50
+G_M32152_IG43:
+       jmp      SHORT G_M32152_IG45
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M32152_IG44:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M32152_IG45:
+       mov      esi, dword ptr [rbp-0x88]
+       cmp      esi, 1
+       je       G_M32152_IG59
+       cmp      esi, 2
+       jne      G_M32152_IG58
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      r12, qword ptr [rsi+0x18]
+       test     r12, r12
+       je       G_M32152_IG61
+						;; size=44 bbWeight=2 PerfScore 21.50
+G_M32152_IG46:
+       cmp      gword ptr [rbp-0x60], 0
+       je       SHORT G_M32152_IG49
+       cmp      gword ptr [rbp-0x58], 0
+       je       G_M32152_IG51
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       G_M32152_IG62
+						;; size=39 bbWeight=2 PerfScore 26.50
+G_M32152_IG47:
+       mov      rcx, gword ptr [rbp-0x58]
+       mov      gword ptr [rbp-0x218], rcx
+       cmp      byte  ptr [rcx], cl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rdx, qword ptr [rsi+0x10]
+       test     rdx, rdx
+       je       G_M32152_IG63
+						;; size=30 bbWeight=2 PerfScore 20.50
+G_M32152_IG48:
+       lea      rdi, [rbp-0x68]
+       call     rdx
+       mov      rdi, gword ptr [rbp-0x218]
+       cmp      eax, dword ptr [rdi+0x10]
+       je       G_M32152_IG51
+						;; size=22 bbWeight=2 PerfScore 17.00
+G_M32152_IG49:
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x10]
+       test     rdi, rdi
+       je       G_M32152_IG64
+						;; size=21 bbWeight=2 PerfScore 14.50
+G_M32152_IG50:
+       mov      qword ptr [rbp-0x1D8], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x68]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1D8]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]])
+       call     [rcx]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]])
+						;; size=103 bbWeight=2 PerfScore 46.50
+G_M32152_IG51:
+       mov      rdi, gword ptr [rbp-0x50]
+       test     rdi, rdi
+       je       SHORT G_M32152_IG57
+						;; size=9 bbWeight=2 PerfScore 4.50
+G_M32152_IG52:
+       vmovdqu  xmm0, xmmword ptr [rdi+0x20]
+       vmovdqu  xmmword ptr [rbp-0x1C8], xmm0
+						;; size=13 bbWeight=2 PerfScore 10.00
+G_M32152_IG53:
        lea      edi, [r15+0x01]
        mov      r12d, edi
        cmp      r15d, dword ptr [rbx+0x08]
-       jae      SHORT G_M32152_IG11
+       jae      G_M32152_IG65
        mov      edi, r15d
        shl      rdi, 4
        lea      rdi, bword ptr [rbx+rdi+0x10]
-       lea      rsi, bword ptr [rbp-0xC8]
+       lea      rsi, bword ptr [rbp-0x1C8]
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
        mov      r15d, r12d
-						;; size=78 bbWeight=2 PerfScore 30.50
-G_M32152_IG08:
+						;; size=46 bbWeight=2 PerfScore 18.50
+G_M32152_IG54:
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rsi, qword ptr [rdi+0x60]
        test     rsi, rsi
-       je       SHORT G_M32152_IG12
-						;; size=16 bbWeight=8 PerfScore 58.00
-G_M32152_IG09:
+       je       G_M32152_IG66
+						;; size=20 bbWeight=8 PerfScore 58.00
+G_M32152_IG55:
        lea      rdi, [rbp-0xB8]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this
        call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this
        test     eax, eax
-       jne      SHORT G_M32152_IG07
-						;; size=23 bbWeight=8 PerfScore 40.00
-G_M32152_IG10:
-       jmp      SHORT G_M32152_IG13
-						;; size=2 bbWeight=1 PerfScore 2.00
-G_M32152_IG11:
+       jne      G_M32152_IG31
+						;; size=27 bbWeight=8 PerfScore 40.00
+G_M32152_IG56:
+       jmp      G_M32152_IG67
+						;; size=5 bbWeight=1 PerfScore 2.00
+G_M32152_IG57:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M32152_IG58:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M32152_IG59:
+       vmovdqu  xmm0, xmmword ptr [rbp-0x78]
+       vmovdqu  xmmword ptr [rbp-0x1C8], xmm0
+						;; size=13 bbWeight=2 PerfScore 8.00
+G_M32152_IG60:
+       jmp      G_M32152_IG53
+						;; size=5 bbWeight=2 PerfScore 4.00
+G_M32152_IG61:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r12, rax
+       jmp      G_M32152_IG46
+						;; size=23 bbWeight=0.40 PerfScore 1.40
+G_M32152_IG62:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M32152_IG47
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M32152_IG63:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdx, rax
+       jmp      G_M32152_IG48
+						;; size=23 bbWeight=0.40 PerfScore 1.40
+G_M32152_IG64:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M32152_IG50
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M32152_IG65:
        call     CORINFO_HELP_RNGCHKFAIL
 						;; size=5 bbWeight=0 PerfScore 0.00
-G_M32152_IG12:
+G_M32152_IG66:
        mov      rdi, r14
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rsi, rax
-       jmp      SHORT G_M32152_IG09
-						;; size=23 bbWeight=1.60 PerfScore 6.00
-G_M32152_IG13:
+       jmp      G_M32152_IG55
+						;; size=26 bbWeight=1.60 PerfScore 6.00
+G_M32152_IG67:
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rax, qword ptr [rdi+0x80]
        test     rax, rax
-       je       SHORT G_M32152_IG15
+       je       SHORT G_M32152_IG69
 						;; size=19 bbWeight=1 PerfScore 7.25
-G_M32152_IG14:
-       jmp      SHORT G_M32152_IG16
+G_M32152_IG68:
+       jmp      SHORT G_M32152_IG70
 						;; size=2 bbWeight=0.80 PerfScore 1.60
-G_M32152_IG15:
+G_M32152_IG69:
        mov      rdi, r14
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=18 bbWeight=0.20 PerfScore 0.30
-G_M32152_IG16:
+G_M32152_IG70:
        lea      rdi, [rbp-0xB8]
        call     rax
        nop      
 						;; size=10 bbWeight=1 PerfScore 3.75
-G_M32152_IG17:
-       add      rsp, 312
+G_M32152_IG71:
+       vzeroupper 
+       add      rsp, 568
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=1 PerfScore 4.25
-G_M32152_IG18:
+						;; size=21 bbWeight=1 PerfScore 5.25
+G_M32152_IG72:
        mov      edi, 0x497
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
-G_M32152_IG19:
+G_M32152_IG73:
+       mov      edi, 0x45F
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M32152_IG74:
        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+0x160]
-						;; size=25 bbWeight=0 PerfScore 0.00
-G_M32152_IG20:
-       mov      rdx, gword ptr [rbp-0x158]
-       mov      r14, qword ptr [rdx]
+       sub      rsp, 72
+       mov      rbp, qword ptr [rdi+0x38]
+       mov      qword ptr [rsp+0x38], rbp
+       lea      rbp, [rbp+0x260]
+						;; size=30 bbWeight=0 PerfScore 0.00
+G_M32152_IG75:
+       mov      r8, gword ptr [rbp-0x1F8]
+       mov      r14, qword ptr [r8]
        mov      rdi, r14
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      rax, qword ptr [rsi+0x80]
        test     rax, rax
-       je       SHORT G_M32152_IG21
-       jmp      SHORT G_M32152_IG22
+       je       SHORT G_M32152_IG76
+       jmp      SHORT G_M32152_IG77
 						;; size=34 bbWeight=0 PerfScore 0.00
-G_M32152_IG21:
+G_M32152_IG76:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=15 bbWeight=0 PerfScore 0.00
-G_M32152_IG22:
+G_M32152_IG77:
        lea      rdi, [rbp-0xB8]
        call     rax
        nop      
 						;; size=10 bbWeight=0 PerfScore 0.00
-G_M32152_IG23:
-       add      rsp, 8
+G_M32152_IG78:
+       vzeroupper 
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0 PerfScore 0.00
+						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 571, prolog size 91, PerfScore 227.93, instruction count 144, allocated bytes for code 571 (MethodHash=3a938267) for method System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]][],int):this (FullOpts)
+; Total bytes of code 2109, prolog size 108, PerfScore 638.39, instruction count 463, allocated bytes for code 2109 (MethodHash=3a938267) for method System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]][],int):this (FullOpts)
1508 (191.86 % of base) - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this
 ; Assembly listing for method System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 9 single block inlinees; 5 inlinees without PGO data
+; 0 inlinees with PGO data; 17 single block inlinees; 13 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] (  8, 14   )     ref  ->  [rbp-0x160]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]>
-;  V01 arg1         [V01,T06] (  8, 12   )     ref  ->  rbx         class-hnd single-def <System.Array>
-;  V02 arg2         [V02,T09] (  6,  8   )     int  ->  r15        
-;  V03 loc0         [V03    ] (  5, 12   )  struct (136) [rbp-0xB8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
-;  V04 loc1         [V04,T16] (  3,  6   )  struct (16) [rbp-0xC8]  do-not-enreg[SFR] multireg-ret must-init ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
-;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V00 this         [V00,T04] (  9, 15   )     ref  ->  [rbp-0x1F0]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]>
+;  V01 arg1         [V01,T07] (  8, 12   )     ref  ->  rbx         class-hnd single-def <System.Array>
+;  V02 arg2         [V02,T22] (  6,  8   )     int  ->  r15        
+;  V03 loc0         [V03    ] ( 19, 40   )  struct (136) [rbp-0xB8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
+;* V04 loc1         [V04    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
+;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V07 tmp2         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V08 tmp3         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V09 tmp4         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V10 tmp5         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V11 tmp6         [V11,T11] (  2,  8   )     ref  ->  r12         class-hnd "impAppendStmt" <System.__Canon>
-;  V12 tmp7         [V12    ] (  2,  8   )  struct ( 8) [rbp-0xD0]  do-not-enreg[XS] addr-exposed "location for address-of(RValue)" <System.Nullable`1[int]>
+;* V11 tmp6         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.__Canon>
+;  V12 tmp7         [V12    ] (  3, 12   )  struct ( 8) [rbp-0xC0]  do-not-enreg[XS] addr-exposed "location for address-of(RValue)" <System.Nullable`1[int]>
 ;* V13 tmp8         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.DictionaryEntry>
-;  V14 tmp9         [V14,T05] (  4, 16   )     ref  ->  [rbp-0x168]  class-hnd exact spill-single-def "Single-def Box Helper" <System.Collections.DictionaryEntry>
-;  V15 tmp10        [V15,T07] (  3, 12   )     int  ->  rsi         "impSpillLclRefs"
+;  V14 tmp9         [V14,T05] (  4, 16   )     ref  ->  [rbp-0x1F8]  class-hnd exact spill-single-def "Single-def Box Helper" <System.Collections.DictionaryEntry>
+;  V15 tmp10        [V15,T12] (  3, 12   )     int  ->  rsi         "impSpillLclRefs"
 ;* V16 tmp11        [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V17 tmp12        [V17,T23] (  6,  4   )    long  ->  rax         "Indirect call through function pointer"
+;  V17 tmp12        [V17,T53] (  6,  4   )    long  ->  rax         "Indirect call through function pointer"
 ;* V18 tmp13        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp14        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V20 tmp15        [V20    ] (  2,  4   )  struct (136) [rbp-0x158]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
-;* V21 tmp16        [V21    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V22 tmp17        [V22,T12] (  2,  8   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.Int32>
-;* V23 tmp18        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.DictionaryEntry>
-;  V24 tmp19        [V24,T17] (  2,  4   )     int  ->  rdi         "Inline return value spill temp"
-;* V25 tmp20        [V25    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V26 tmp21        [V26,T18] (  3,  6   )     int  ->  rdi         "Inline stloc first use temp"
-;  V27 tmp22        [V27,T13] (  2,  8   )   byref  ->  rdi         "Inlining Arg"
-;  V28 tmp23        [V28    ] (  2,  8   )   ubyte  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "field V12.hasValue (fldOffset=0x0)" P-DEP
-;  V29 tmp24        [V29    ] (  2,  8   )     int  ->  [rbp-0xCC]  do-not-enreg[X] addr-exposed "field V12.value (fldOffset=0x4)" P-DEP
-;  V30 tmp25        [V30,T26] (  2,  4   )     ref  ->  r12         "field V13._key (fldOffset=0x0)" P-INDEP
-;  V31 tmp26        [V31,T27] (  2,  4   )     ref  ->  [rbp-0x170]  spill-single-def "field V13._value (fldOffset=0x8)" P-INDEP
-;  V32 tmp27        [V32,T33] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V33 tmp28        [V33,T28] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V34 tmp29        [V34,T03] (  2, 32   )    long  ->  rsi         "argument with side effect"
-;  V35 tmp30        [V35,T14] (  2,  8   )    long  ->  rsi         "argument with side effect"
-;  V36 tmp31        [V36,T15] (  2,  8   )    long  ->  rdx         "argument with side effect"
-;  V37 PSPSym       [V37,T30] (  1,  1   )    long  ->  [rbp-0x180]  do-not-enreg[V] "PSPSym"
-;  V38 cse0         [V38,T24] (  3,  4   )    long  ->  r13         "CSE #02: moderate"
-;* V39 cse1         [V39,T29] (  0,  0   )    long  ->  zero-ref    "CSE #03: moderate"
-;  V40 cse2         [V40,T19] (  6,  3.20)    long  ->  r14         multi-def "CSE #01: moderate"
-;  V41 rat0         [V41,T22] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
-;  V42 rat1         [V42,T25] (  3,  4   )    long  ->  r13         "runtime lookup"
-;  V43 rat2         [V43,T20] (  3,  5.60)    long  ->  r13         "fgMakeTemp is creating a new local variable"
-;* V44 rat3         [V44,T10] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V45 rat4         [V45,T08] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V46 rat5         [V46,T01] (  3, 35.20)    long  ->  rdi         "Spilling to split statement for tree"
-;  V47 rat6         [V47,T02] (  3, 32   )    long  ->  rsi         "runtime lookup"
-;  V48 rat7         [V48,T00] (  3, 44.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
-;  V49 rat8         [V49,T21] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V50 rat9         [V50,T31] (  3,  0   )    long  ->  rdi         "Spilling to split statement for tree"
-;  V51 rat10        [V51,T32] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V20 tmp15        [V20    ] (  5, 10   )  struct (136) [rbp-0x148]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
+;  V21 tmp16        [V21,T51] (  3,  4.40)    long  ->  rdi         "spilling helperCall"
+;  V22 tmp17        [V22,T38] (  4,  7   )     ref  ->  r12         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V23 tmp18        [V23    ] ( 14, 20   )  struct (32) [rbp-0x168]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;* V24 tmp19        [V24    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V25 tmp20        [V25    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V26 tmp21        [V26    ] (  0,  0   )   byref  ->  zero-ref   
+;  V27 tmp22        [V27,T71] (  2,  2   )   byref  ->  rcx         single-def
+;  V28 tmp23        [V28,T73] (  2,  2   )     int  ->  rdi        
+;  V29 tmp24        [V29,T50] (  6,  5.40)    long  ->  [rbp-0x170]  spill-single-def "Inlining Arg"
+;* V30 tmp25        [V30    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V31 tmp26        [V31    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V32 tmp27        [V32,T74] (  2,  2   )  struct (32) [rbp-0x190]  do-not-enreg[S] must-init "impAppendStmt" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V33 tmp28        [V33,T62] (  3,  3   )     ref  ->  [rbp-0x200]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;* V34 tmp29        [V34    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V35 tmp30        [V35    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V36 tmp31        [V36,T58] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;* V37 tmp32        [V37,T83] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V38 tmp33        [V38    ] (  3,  3   )  struct (32) [rbp-0x1B0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V39 tmp34        [V39,T61] (  5,  3.40)    long  ->  [rbp-0x1B8]  spill-single-def "Inlining Arg"
+;* V40 tmp35        [V40    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V41 tmp36        [V41,T75] (  2,  2   )    long  ->  rsi         "Indirect call through function pointer"
+;* V42 tmp37        [V42    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V43 tmp38        [V43    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V44 tmp39        [V44,T76] (  2,  2   )    long  ->  r12         "Indirect call through function pointer"
+;  V45 tmp40        [V45,T72] (  2,  2   )     ref  ->  [rbp-0x208]  class-hnd exact spill-single-def "non-inline candidate call" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V46 tmp41        [V46,T77] (  2,  2   )     int  ->  rax         "Inlining Arg"
+;  V47 tmp42        [V47,T26] (  3,  8.80)    long  ->  r12         "Inlining Arg"
+;* V48 tmp43        [V48    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V49 tmp44        [V49,T23] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;  V50 tmp45        [V50,T09] (  5, 13.60)    long  ->  [rbp-0x1C0]  spill-single-def "Inlining Arg"
+;* V51 tmp46        [V51    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V52 tmp47        [V52,T24] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V53 tmp48        [V53    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V54 tmp49        [V54    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V55 tmp50        [V55,T27] (  3,  8   )    long  ->   r8         "Indirect call through function pointer"
+;  V56 tmp51        [V56,T10] (  3, 12   )     ref  ->  [rbp-0x210]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V57 tmp52        [V57,T41] (  3,  6   )     int  ->  rsi         "Inline stloc first use temp"
+;* V58 tmp53        [V58    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "Inline stloc first use temp" <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
+;* V59 tmp54        [V59    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V60 tmp55        [V60    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V61 tmp56        [V61,T85] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;* V62 tmp57        [V62    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V63 tmp58        [V63,T86] (  3,  0   )     ref  ->  r14         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;  V64 tmp59        [V64,T08] (  6, 13.60)    long  ->  r12         "Inlining Arg"
+;* V65 tmp60        [V65    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V66 tmp61        [V66,T25] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V67 tmp62        [V67    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V68 tmp63        [V68    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V69 tmp64        [V69,T28] (  3,  8   )    long  ->  rdx         "Indirect call through function pointer"
+;  V70 tmp65        [V70,T11] (  3, 12   )     ref  ->  [rbp-0x218]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V71 tmp66        [V71,T32] (  2,  8   )     ref  ->  rsi         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]>
+;  V72 tmp67        [V72,T33] (  2,  8   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.Int32>
+;* V73 tmp68        [V73    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.DictionaryEntry>
+;  V74 tmp69        [V74,T42] (  2,  4   )     int  ->  rax         "Inline return value spill temp"
+;* V75 tmp70        [V75    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V76 tmp71        [V76,T43] (  3,  6   )     int  ->  rax         "Inline stloc first use temp"
+;  V77 tmp72        [V77,T34] (  2,  8   )   byref  ->  rdi         "Inlining Arg"
+;  V78 tmp73        [V78    ] (  2,  6   )   ubyte  ->  [rbp-0xC0]  do-not-enreg[X] addr-exposed "field V12.hasValue (fldOffset=0x0)" P-DEP
+;  V79 tmp74        [V79    ] (  2,  6   )     int  ->  [rbp-0xBC]  do-not-enreg[X] addr-exposed "field V12.value (fldOffset=0x4)" P-DEP
+;  V80 tmp75        [V80,T59] (  2,  4   )     ref  ->  r12         "field V13._key (fldOffset=0x0)" P-INDEP
+;  V81 tmp76        [V81,T60] (  2,  4   )     ref  ->  [rbp-0x220]  spill-single-def "field V13._value (fldOffset=0x8)" P-INDEP
+;  V82 tmp77        [V82    ] (  7,  7.50)     ref  ->  [rbp-0x168]  do-not-enreg[X] addr-exposed "field V23._root (fldOffset=0x0)" P-DEP
+;  V83 tmp78        [V83    ] (  9,  8   )     ref  ->  [rbp-0x160]  do-not-enreg[X] addr-exposed "field V23._stack (fldOffset=0x8)" P-DEP
+;  V84 tmp79        [V84    ] (  5,  6   )     ref  ->  [rbp-0x158]  do-not-enreg[X] addr-exposed "field V23._current (fldOffset=0x10)" P-DEP
+;  V85 tmp80        [V85    ] (  5,  6   )     int  ->  [rbp-0x150]  do-not-enreg[X] addr-exposed "field V23._poolUserId (fldOffset=0x18)" P-DEP
+;* V86 tmp81        [V86    ] (  0,  0   )     ref  ->  zero-ref    "V04.[000..008)"
+;* V87 tmp82        [V87    ] (  0,  0   )   ubyte  ->  zero-ref    "V04.[008..009)"
+;* V88 tmp83        [V88    ] (  0,  0   )     int  ->  zero-ref    "V04.[012..016)"
+;  V89 tmp84        [V89,T39] (  3,  6   )     ref  ->  r12         "V58.[000..008)"
+;  V90 tmp85        [V90,T44] (  3,  6   )   ubyte  ->  rcx         "V58.[008..009)"
+;  V91 tmp86        [V91,T45] (  3,  6   )     int  ->  rdx         "V58.[012..016)"
+;  V92 tmp87        [V92,T06] (  4, 16   )   byref  ->  rsi         "Spilling address for field-by-field copy"
+;  V93 tmp88        [V93,T89] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V94 tmp89        [V94,T78] (  2,  2   )    long  ->  rdi         "argument with side effect"
+;  V95 tmp90        [V95,T79] (  2,  2   )    long  ->  r12         "argument with side effect"
+;  V96 tmp91        [V96,T03] (  2, 32   )    long  ->  rsi         "argument with side effect"
+;  V97 tmp92        [V97,T35] (  2,  8   )    long  ->  [rbp-0x1C8]  spill-single-def "argument with side effect"
+;  V98 tmp93        [V98,T36] (  2,  8   )    long  ->  [rbp-0x1D0]  spill-single-def "argument with side effect"
+;  V99 tmp94        [V99,T37] (  2,  8   )    long  ->  rdx         "argument with side effect"
+;  V100 PSPSym      [V100,T84] (  1,  1   )    long  ->  [rbp-0x228]  do-not-enreg[V] "PSPSym"
+;  V101 cse0        [V101,T54] (  3,  4   )    long  ->  r13         "CSE #04: conservative"
+;* V102 cse1        [V102,T80] (  0,  0   )    long  ->  zero-ref    "CSE #09: moderate"
+;  V103 cse2        [V103,T55] (  3,  4   )    long  ->  [rbp-0x1D8]  spill-single-def "CSE #05: conservative"
+;  V104 cse3        [V104,T81] (  3,  1.50)    long  ->  [rbp-0x1E0]  spill-single-def "CSE #01: conservative"
+;  V105 cse4        [V105,T82] (  3,  1.50)    long  ->  [rbp-0x1E8]  spill-single-def "CSE #02: conservative"
+;  V106 cse5        [V106,T46] (  6,  3.20)    long  ->  r14         multi-def "CSE #03: moderate"
+;  V107 cse6        [V107,T40] (  3,  6   )     ref  ->  rsi         "CSE #08: moderate"
+;  V108 rat0        [V108,T52] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
+;  V109 rat1        [V109,T56] (  3,  4   )    long  ->  r13         "runtime lookup"
+;  V110 rat2        [V110,T47] (  3,  5.60)    long  ->  r13         "fgMakeTemp is creating a new local variable"
+;  V111 rat3        [V111,T57] (  3,  4   )    long  ->  rax         "runtime lookup"
+;  V112 rat4        [V112,T48] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V113 rat5        [V113,T67] (  3,  2   )    long  ->  registers   "runtime lookup"
+;  V114 rat6        [V114,T63] (  3,  2.80)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V115 rat7        [V115,T68] (  3,  2   )    long  ->  registers   "runtime lookup"
+;  V116 rat8        [V116,T64] (  3,  2.80)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V117 rat9        [V117,T69] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V118 rat10       [V118,T65] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V119 rat11       [V119,T70] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V120 rat12       [V120,T66] (  3,  2.80)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V121 rat13       [V121,T13] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V122 rat14       [V122,T14] (  3, 11.20)    long  ->   r8         "fgMakeTemp is creating a new local variable"
+;  V123 rat15       [V123,T29] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V124 rat16       [V124,T15] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V125 rat17       [V125,T16] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V126 rat18       [V126,T17] (  3, 11.20)    long  ->  r12         "fgMakeTemp is creating a new local variable"
+;  V127 rat19       [V127,T18] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V128 rat20       [V128,T19] (  3, 11.20)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V129 rat21       [V129,T30] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V130 rat22       [V130,T20] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V131 rat23       [V131,T31] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V132 rat24       [V132,T21] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V133 rat25       [V133,T01] (  3, 35.20)    long  ->  rdi         "Spilling to split statement for tree"
+;  V134 rat26       [V134,T02] (  3, 32   )    long  ->  rsi         "runtime lookup"
+;  V135 rat27       [V135,T00] (  3, 44.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
+;  V136 rat28       [V136,T49] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V137 rat29       [V137,T87] (  3,  0   )    long  ->  rdi         "Spilling to split statement for tree"
+;  V138 rat30       [V138,T88] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 344
+; Lcl frame size = 568
 
 G_M38819_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 344
-       lea      rbp, [rsp+0x180]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x158], rax
+       sub      rsp, 568
+       lea      rbp, [rsp+0x260]
        vxorps   xmm8, xmm8, xmm8
-       mov      rax, -288
+       mov      rax, -384
        vmovdqa  xmmword ptr [rbp+rax-0x30], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x20], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x10], xmm8
        add      rax, 48
        jne      SHORT  -5 instr
-       mov      qword ptr [rbp-0x180], rsp
+       mov      qword ptr [rbp-0x228], rsp
        mov      qword ptr [rbp-0x30], rdi
-       mov      gword ptr [rbp-0x160], rdi
+       mov      gword ptr [rbp-0x1F0], rdi
        mov      r8, rdi
        mov      rbx, rsi
        mov      r15d, edx
-						;; size=100 bbWeight=1 PerfScore 19.58
+						;; size=91 bbWeight=1 PerfScore 18.33
 G_M38819_IG02:
        test     rbx, rbx
-       je       G_M38819_IG21
+       je       G_M38819_IG73
        test     r15d, r15d
-       jl       G_M38819_IG22
+       jl       G_M38819_IG74
        mov      edi, dword ptr [rbx+0x08]
        test     edi, edi
-       jl       G_M38819_IG20
+       jl       G_M38819_IG72
        mov      esi, r15d
        add      esi, dword ptr [r8+0x28]
        cmp      edi, esi
-       jl       G_M38819_IG22
+       jl       G_M38819_IG74
        mov      r14, qword ptr [r8]
        mov      rdi, r14
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      r13, qword ptr [rsi+0x60]
        test     r13, r13
        je       SHORT G_M38819_IG04
 						;; size=66 bbWeight=1 PerfScore 19.75
 G_M38819_IG03:
        jmp      SHORT G_M38819_IG05
 						;; size=2 bbWeight=0.80 PerfScore 1.60
 G_M38819_IG04:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      r13, rax
 						;; size=18 bbWeight=0.20 PerfScore 0.30
 G_M38819_IG05:
-       mov      rsi, r13
-       mov      r8, gword ptr [rbp-0x160]
-       mov      rdx, gword ptr [r8+0x08]
-       lea      rdi, [rbp-0x158]
-       mov      rcx, r8
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]):this
-       call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]):this
+       mov      rdi, r13
+       mov      r8, gword ptr [rbp-0x1F0]
+       mov      r12, gword ptr [r8+0x08]
+       mov      gword ptr [rbp-0x148], r8
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rax, qword ptr [rsi+0x18]
+       test     rax, rax
+       je       SHORT G_M38819_IG07
+						;; size=37 bbWeight=1 PerfScore 11.50
+G_M38819_IG06:
+       jmp      SHORT G_M38819_IG08
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M38819_IG07:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+						;; size=15 bbWeight=0.20 PerfScore 0.25
+G_M38819_IG08:
+       mov      qword ptr [rbp-0x1D8], rax
+       mov      qword ptr [rbp-0x170], rax
+       test     r12, r12
+       je       G_M38819_IG75
+       mov      gword ptr [rbp-0x168], r12
+       xor      rdx, rdx
+       mov      gword ptr [rbp-0x158], rdx
+       mov      rdx, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool:NewId():int
+       call     [rdx]System.Collections.Immutable.SecureObjectPool:NewId():int
+       mov      dword ptr [rbp-0x150], eax
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x160], rdi
+       mov      rdi, gword ptr [rbp-0x168]
+       cmp      gword ptr [rdi+0x08], 0
+       je       G_M38819_IG28
+						;; size=84 bbWeight=1 PerfScore 16.00
+G_M38819_IG09:
+       mov      rax, qword ptr [rbp-0x170]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rcx, qword ptr [rdi+0x18]
+       test     rcx, rcx
+       je       SHORT G_M38819_IG11
+						;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M38819_IG10:
+       jmp      SHORT G_M38819_IG12
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M38819_IG11:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rcx, rax
+       mov      rax, qword ptr [rbp-0x170]
+						;; size=28 bbWeight=0.10 PerfScore 0.28
+G_M38819_IG12:
+       mov      rdi, rcx
+       mov      qword ptr [rbp-0x1E8], rdi
+       mov      rcx, rdi
+       mov      qword ptr [rbp-0x1B8], rcx
+						;; size=20 bbWeight=0.50 PerfScore 1.25
+G_M38819_IG13:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x168]
+       vmovdqu  ymmword ptr [rbp-0x1B0], ymm0
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M38819_IG14:
+       mov      rsi, qword ptr [rcx+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rdx, qword ptr [rsi+0x18]
+       test     rdx, rdx
+       je       SHORT G_M38819_IG16
+						;; size=16 bbWeight=0.50 PerfScore 3.62
+G_M38819_IG15:
+       jmp      SHORT G_M38819_IG17
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M38819_IG16:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdx, rax
+						;; size=21 bbWeight=0.10 PerfScore 0.18
+G_M38819_IG17:
+       mov      qword ptr [rbp-0x1E0], rdx
+       mov      rsi, rdx
+       lea      rdi, [rbp-0x1B0]
+       call     rsi
+       cmp      eax, -1
+       je       SHORT G_M38819_IG21
+       mov      rdi, qword ptr [rbp-0x1B8]
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rax, qword ptr [rsi+0x20]
+       test     rax, rax
+       je       SHORT G_M38819_IG19
+						;; size=47 bbWeight=0.50 PerfScore 7.12
+G_M38819_IG18:
+       mov      rdi, rax
+       jmp      SHORT G_M38819_IG20
+						;; size=5 bbWeight=0.40 PerfScore 0.90
+G_M38819_IG19:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=18 bbWeight=0.10 PerfScore 0.15
+G_M38819_IG20:
+       lea      rsi, [rbp-0x160]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       call     [rax]System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       test     eax, eax
+       je       SHORT G_M38819_IG21
+       mov      r12, qword ptr [rbp-0x1E0]
+       mov      rax, gword ptr [rbp-0x160]
+       mov      gword ptr [rbp-0x208], rax
+       lea      rdi, [rbp-0x1B0]
+       call     r12
+       mov      r12, gword ptr [rbp-0x208]
+       mov      dword ptr [r12+0x10], eax
+       jmp      G_M38819_IG27
+						;; size=71 bbWeight=0.50 PerfScore 7.75
+G_M38819_IG21:
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x160], rdi
+						;; size=9 bbWeight=0.50 PerfScore 0.62
+G_M38819_IG22:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x168]
+       vmovdqu  ymmword ptr [rbp-0x190], ymm0
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M38819_IG23:
+       mov      rax, qword ptr [rbp-0x170]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M38819_IG25
+						;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M38819_IG24:
+       jmp      SHORT G_M38819_IG26
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M38819_IG25:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.10 PerfScore 0.18
+G_M38819_IG26:
+       call     CORINFO_HELP_NEWSFAST
+       mov      gword ptr [rbp-0x200], rax
+       movzx    rsi, byte  ptr [r12+0x1D]
+       mov      rdi, rax
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       call     [rcx]System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       mov      r12, qword ptr [rbp-0x1E8]
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x190]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, r12
+       mov      rsi, gword ptr [rbp-0x200]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       call     [rax]System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       mov      gword ptr [rbp-0x160], rax
+						;; size=129 bbWeight=0.50 PerfScore 13.25
+G_M38819_IG27:
+       lea      rdi, [rbp-0x168]
+       mov      rsi, qword ptr [rbp-0x170]
+       mov      rdx, gword ptr [rbp-0x168]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]):this
+       call     [rax]System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]):this
+						;; size=33 bbWeight=0.50 PerfScore 2.88
+G_M38819_IG28:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x168]
+       vmovdqu  ymmword ptr [rbp-0x138], ymm0
+						;; size=16 bbWeight=1 PerfScore 5.00
+G_M38819_IG29:
+       vxorps   ymm0, ymm0, ymm0
+       vmovdqu  ymmword ptr [rbp-0x118], ymm0
+       vmovdqu  ymmword ptr [rbp-0xF8], ymm0
+       vmovdqu  ymmword ptr [rbp-0xE0], ymm0
+       lea      rcx, bword ptr [rbp-0x148]
+       mov      r8, gword ptr [rbp-0x1F0]
+       mov      edi, dword ptr [r8+0x2C]
+       mov      dword ptr [rcx+0x08], edi
        lea      rdi, bword ptr [rbp-0xB8]
-       lea      rsi, bword ptr [rbp-0x158]
+       lea      rsi, bword ptr [rbp-0x148]
        mov      ecx, 17
        rep movsq 
-						;; size=58 bbWeight=1 PerfScore 33.50
-G_M38819_IG06:
-       jmp      G_M38819_IG09
+						;; size=71 bbWeight=1 PerfScore 34.08
+G_M38819_IG30:
+       jmp      G_M38819_IG54
 						;; size=5 bbWeight=1 PerfScore 2.00
-G_M38819_IG07:
-       mov      rsi, r13
-       lea      rdi, [rbp-0xB8]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:get_Current():System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]:this
-       call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:get_Current():System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]:this
-       mov      gword ptr [rbp-0xC8], rax
-       mov      qword ptr [rbp-0xC0], rdx
-       mov      r12, gword ptr [rbp-0xC8]
-       mov      rsi, qword ptr [rbp-0xC0]
-       mov      qword ptr [rbp-0xD0], rsi
-       lea      rsi, [rbp-0xD0]
+G_M38819_IG31:
+       mov      r12, r13
+       mov      rax, qword ptr [rbp-0x1D8]
+       mov      rcx, rax
+       mov      qword ptr [rbp-0x1C0], rcx
+       cmp      gword ptr [rbp-0xA8], 0
+       je       G_M38819_IG38
+       cmp      gword ptr [rbp-0xA0], 0
+       je       G_M38819_IG42
+       mov      rdi, qword ptr [rcx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x30]
+       test     rdi, rdi
+       je       SHORT G_M38819_IG33
+						;; size=64 bbWeight=2 PerfScore 31.50
+G_M38819_IG32:
+       jmp      SHORT G_M38819_IG34
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M38819_IG33:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       mov      rcx, qword ptr [rbp-0x1C0]
+						;; size=28 bbWeight=0.40 PerfScore 1.10
+G_M38819_IG34:
+       mov      rdx, gword ptr [rbp-0xA0]
+       mov      gword ptr [rbp-0x210], rdx
+       cmp      byte  ptr [rdx], dl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      r8, qword ptr [rsi+0x10]
+       test     r8, r8
+       je       SHORT G_M38819_IG36
+						;; size=29 bbWeight=2 PerfScore 20.50
+G_M38819_IG35:
+       jmp      SHORT G_M38819_IG37
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M38819_IG36:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      r8, rax
+						;; size=18 bbWeight=0.40 PerfScore 0.60
+G_M38819_IG37:
+       lea      rdi, [rbp-0xA8]
+       call     r8
+       mov      rdi, gword ptr [rbp-0x210]
+       cmp      eax, dword ptr [rdi+0x10]
+       mov      rcx, qword ptr [rbp-0x1C0]
+       je       G_M38819_IG42
+						;; size=33 bbWeight=2 PerfScore 19.00
+G_M38819_IG38:
+       mov      rdi, qword ptr [rcx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x28]
+       test     rdi, rdi
+       je       SHORT G_M38819_IG40
+						;; size=16 bbWeight=2 PerfScore 14.50
+G_M38819_IG39:
+       jmp      SHORT G_M38819_IG41
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M38819_IG40:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M38819_IG41:
+       mov      qword ptr [rbp-0x1C8], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0xA8]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1C8]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]])
+       call     [rcx]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]])
+						;; size=86 bbWeight=2 PerfScore 35.50
+G_M38819_IG42:
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M38819_IG44
+						;; size=17 bbWeight=2 PerfScore 14.50
+G_M38819_IG43:
+       jmp      SHORT G_M38819_IG45
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M38819_IG44:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M38819_IG45:
+       mov      esi, dword ptr [rbp-0x88]
+       cmp      esi, 1
+       je       G_M38819_IG60
+       cmp      esi, 2
+       jne      G_M38819_IG58
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      r12, qword ptr [rsi+0x18]
+       test     r12, r12
+       je       G_M38819_IG61
+						;; size=44 bbWeight=2 PerfScore 21.50
+G_M38819_IG46:
+       cmp      gword ptr [rbp-0x60], 0
+       je       SHORT G_M38819_IG49
+       cmp      gword ptr [rbp-0x58], 0
+       je       G_M38819_IG51
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       G_M38819_IG62
+						;; size=39 bbWeight=2 PerfScore 26.50
+G_M38819_IG47:
+       mov      rcx, gword ptr [rbp-0x58]
+       mov      gword ptr [rbp-0x218], rcx
+       cmp      byte  ptr [rcx], cl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rdx, qword ptr [rsi+0x10]
+       test     rdx, rdx
+       je       G_M38819_IG63
+						;; size=30 bbWeight=2 PerfScore 20.50
+G_M38819_IG48:
+       lea      rdi, [rbp-0x68]
+       call     rdx
+       mov      rdi, gword ptr [rbp-0x218]
+       cmp      eax, dword ptr [rdi+0x10]
+       je       G_M38819_IG51
+						;; size=22 bbWeight=2 PerfScore 17.00
+G_M38819_IG49:
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x10]
+       test     rdi, rdi
+       je       G_M38819_IG64
+						;; size=21 bbWeight=2 PerfScore 14.50
+G_M38819_IG50:
+       mov      qword ptr [rbp-0x1D0], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x68]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1D0]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]])
+       call     [rcx]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]])
+						;; size=103 bbWeight=2 PerfScore 46.50
+G_M38819_IG51:
+       mov      rsi, gword ptr [rbp-0x50]
+       test     rsi, rsi
+       je       G_M38819_IG57
+       add      rsi, 32
+       mov      r12, gword ptr [rsi]
+       movzx    rcx, byte  ptr [rsi+0x08]
+       mov      edx, dword ptr [rsi+0x0C]
+						;; size=27 bbWeight=2 PerfScore 17.00
+G_M38819_IG52:
+       mov      byte  ptr [rbp-0xC0], cl
+       mov      dword ptr [rbp-0xBC], edx
+       lea      rsi, [rbp-0xC0]
        mov      rdi, 0xD1FFAB1E      ; System.Nullable`1[int]
        call     CORINFO_HELP_BOX_NULLABLE
-       mov      gword ptr [rbp-0x170], rax
+       mov      gword ptr [rbp-0x220], rax
        mov      rdi, 0xD1FFAB1E      ; System.Collections.DictionaryEntry
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x168], rax
+       mov      gword ptr [rbp-0x1F8], rax
        lea      rdi, bword ptr [rax+0x08]
        mov      rsi, r12
        call     CORINFO_HELP_ASSIGN_REF
-       mov      r12, gword ptr [rbp-0x168]
+       mov      r12, gword ptr [rbp-0x1F8]
        lea      rdi, bword ptr [r12+0x10]
-       mov      rsi, gword ptr [rbp-0x170]
+       mov      rsi, gword ptr [rbp-0x220]
        call     CORINFO_HELP_ASSIGN_REF
        mov      esi, r15d
        lea      r15d, [rsi+0x01]
        mov      rdi, qword ptr [rbx]
-       mov      edi, dword ptr [rdi+0x04]
-       add      edi, -24
-       shr      edi, 3
-       je       SHORT G_M38819_IG08
-       cmp      edi, 1
-       jne      SHORT G_M38819_IG14
-						;; size=170 bbWeight=2 PerfScore 54.00
-G_M38819_IG08:
+       mov      eax, dword ptr [rdi+0x04]
+       add      eax, -24
+       shr      eax, 3
+       jne      G_M38819_IG65
+						;; size=124 bbWeight=2 PerfScore 37.50
+G_M38819_IG53:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Array:GetFlattenedIndex(int):long:this
        call     [rax]System.Array:GetFlattenedIndex(int):long:this
        mov      rdx, rax
        mov      rsi, r12
        mov      rdi, rbx
        call     System.Array:InternalSetValue(System.Object,long):this
-						;; size=29 bbWeight=2 PerfScore 10.50
-G_M38819_IG09:
-       mov      rcx, gword ptr [rbp-0x160]
-       mov      rdi, qword ptr [rcx]
+       mov      r8, gword ptr [rbp-0x1F0]
+						;; size=36 bbWeight=2 PerfScore 12.50
+G_M38819_IG54:
+       mov      rdi, qword ptr [r8]
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      rsi, qword ptr [rsi+0x60]
        test     rsi, rsi
-       je       SHORT G_M38819_IG11
-						;; size=26 bbWeight=8 PerfScore 82.00
-G_M38819_IG10:
-       jmp      SHORT G_M38819_IG12
-						;; size=2 bbWeight=6.40 PerfScore 12.80
-G_M38819_IG11:
-       mov      rsi, 0xD1FFAB1E      ; global ptr
-       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
-       mov      rsi, rax
-						;; size=18 bbWeight=1.60 PerfScore 2.40
-G_M38819_IG12:
+       je       G_M38819_IG66
+						;; size=23 bbWeight=8 PerfScore 74.00
+G_M38819_IG55:
        lea      rdi, [rbp-0xB8]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this
        call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this
        test     eax, eax
-       jne      G_M38819_IG07
+       jne      G_M38819_IG31
 						;; size=27 bbWeight=8 PerfScore 40.00
-G_M38819_IG13:
-       jmp      SHORT G_M38819_IG15
-						;; size=2 bbWeight=1 PerfScore 2.00
-G_M38819_IG14:
+G_M38819_IG56:
+       jmp      G_M38819_IG67
+						;; size=5 bbWeight=1 PerfScore 2.00
+G_M38819_IG57:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      r14, rax
+       mov      rdi, r14
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, r14
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M38819_IG58:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M38819_IG59:
        mov      edi, 58
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
-G_M38819_IG15:
+G_M38819_IG60:
+       mov      r12, gword ptr [rbp-0x78]
+       movzx    rcx, byte  ptr [rbp-0x70]
+       mov      edx, dword ptr [rbp-0x6C]
+       jmp      G_M38819_IG52
+						;; size=16 bbWeight=2 PerfScore 10.00
+G_M38819_IG61:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r12, rax
+       jmp      G_M38819_IG46
+						;; size=23 bbWeight=0.40 PerfScore 1.40
+G_M38819_IG62:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M38819_IG47
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M38819_IG63:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdx, rax
+       jmp      G_M38819_IG48
+						;; size=23 bbWeight=0.40 PerfScore 1.40
+G_M38819_IG64:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M38819_IG50
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M38819_IG65:
+       cmp      eax, 1
+       jne      G_M38819_IG59
+       jmp      G_M38819_IG53
+						;; size=14 bbWeight=2 PerfScore 6.50
+G_M38819_IG66:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rsi, rax
+       jmp      G_M38819_IG55
+						;; size=23 bbWeight=1.60 PerfScore 5.60
+G_M38819_IG67:
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rax, qword ptr [rdi+0x80]
        test     rax, rax
-       je       SHORT G_M38819_IG17
+       je       SHORT G_M38819_IG69
 						;; size=19 bbWeight=1 PerfScore 7.25
-G_M38819_IG16:
-       jmp      SHORT G_M38819_IG18
+G_M38819_IG68:
+       jmp      SHORT G_M38819_IG70
 						;; size=2 bbWeight=0.80 PerfScore 1.60
-G_M38819_IG17:
+G_M38819_IG69:
        mov      rdi, r14
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=18 bbWeight=0.20 PerfScore 0.30
-G_M38819_IG18:
+G_M38819_IG70:
        lea      rdi, [rbp-0xB8]
        call     rax
        nop      
 						;; size=10 bbWeight=1 PerfScore 3.75
-G_M38819_IG19:
-       add      rsp, 344
+G_M38819_IG71:
+       vzeroupper 
+       add      rsp, 568
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=1 PerfScore 4.25
-G_M38819_IG20:
+						;; size=21 bbWeight=1 PerfScore 5.25
+G_M38819_IG72:
        call     CORINFO_HELP_OVERFLOW
 						;; size=5 bbWeight=0 PerfScore 0.00
-G_M38819_IG21:
+G_M38819_IG73:
        mov      edi, 0x497
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
-G_M38819_IG22:
+G_M38819_IG74:
        mov      edi, 0x4A3
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        xor      rsi, rsi
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailRange(System.String,System.String)
        call     [rax]System.Collections.Immutable.Requires:FailRange(System.String,System.String)
        int3     
 						;; size=38 bbWeight=0 PerfScore 0.00
-G_M38819_IG23:
+G_M38819_IG75:
+       mov      edi, 0x45F
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M38819_IG76:
        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+0x180]
-						;; size=25 bbWeight=0 PerfScore 0.00
-G_M38819_IG24:
-       mov      r8, gword ptr [rbp-0x160]
+       sub      rsp, 72
+       mov      rbp, qword ptr [rdi+0x38]
+       mov      qword ptr [rsp+0x38], rbp
+       lea      rbp, [rbp+0x260]
+						;; size=30 bbWeight=0 PerfScore 0.00
+G_M38819_IG77:
+       mov      r8, gword ptr [rbp-0x1F0]
        mov      r14, qword ptr [r8]
        mov      rdi, r14
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      rax, qword ptr [rsi+0x80]
        test     rax, rax
-       je       SHORT G_M38819_IG25
-       jmp      SHORT G_M38819_IG26
+       je       SHORT G_M38819_IG78
+       jmp      SHORT G_M38819_IG79
 						;; size=34 bbWeight=0 PerfScore 0.00
-G_M38819_IG25:
+G_M38819_IG78:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=15 bbWeight=0 PerfScore 0.00
-G_M38819_IG26:
+G_M38819_IG79:
        lea      rdi, [rbp-0xB8]
        call     rax
        nop      
 						;; size=10 bbWeight=0 PerfScore 0.00
-G_M38819_IG27:
-       add      rsp, 8
+G_M38819_IG80:
+       vzeroupper 
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0 PerfScore 0.00
+						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 786, prolog size 100, PerfScore 297.58, instruction count 185, allocated bytes for code 786 (MethodHash=5858685c) for method System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts)
+; Total bytes of code 2294, prolog size 91, PerfScore 691.19, instruction count 502, allocated bytes for code 2294 (MethodHash=5858685c) for method System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts)
1500 (189.63 % of base) - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this
 ; Assembly listing for method System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 9 single block inlinees; 5 inlinees without PGO data
+; 0 inlinees with PGO data; 16 single block inlinees; 13 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  7, 13   )     ref  ->  [rbp-0x160]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]>
-;  V01 arg1         [V01,T06] (  8, 12   )     ref  ->  rbx         class-hnd single-def <System.Array>
-;  V02 arg2         [V02,T09] (  6,  8   )     int  ->  r15        
-;  V03 loc0         [V03    ] (  5, 12   )  struct (136) [rbp-0xB8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
-;  V04 loc1         [V04,T16] (  3,  6   )  struct (16) [rbp-0xC8]  do-not-enreg[SFR] multireg-ret must-init ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
-;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V00 this         [V00,T06] (  7, 13   )     ref  ->  [rbp-0x1F0]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]>
+;  V01 arg1         [V01,T07] (  8, 12   )     ref  ->  rbx         class-hnd single-def <System.Array>
+;  V02 arg2         [V02,T22] (  6,  8   )     int  ->  r15        
+;  V03 loc0         [V03    ] ( 19, 40   )  struct (136) [rbp-0xB8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
+;* V04 loc1         [V04    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
+;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V07 tmp2         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V08 tmp3         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V09 tmp4         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V10 tmp5         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V11 tmp6         [V11,T11] (  2,  8   )     ref  ->  r12         class-hnd "impAppendStmt" <System.__Canon>
-;  V12 tmp7         [V12    ] (  2,  8   )  struct ( 8) [rbp-0xD0]  do-not-enreg[XS] addr-exposed "location for address-of(RValue)" <System.Nullable`1[int]>
+;* V11 tmp6         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.__Canon>
+;  V12 tmp7         [V12    ] (  3, 12   )  struct ( 8) [rbp-0xC0]  do-not-enreg[XS] addr-exposed "location for address-of(RValue)" <System.Nullable`1[int]>
 ;* V13 tmp8         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.DictionaryEntry>
-;  V14 tmp9         [V14,T04] (  4, 16   )     ref  ->  [rbp-0x168]  class-hnd exact spill-single-def "Single-def Box Helper" <System.Collections.DictionaryEntry>
-;  V15 tmp10        [V15,T07] (  3, 12   )     int  ->  rsi         "impSpillLclRefs"
+;  V14 tmp9         [V14,T04] (  4, 16   )     ref  ->  [rbp-0x1F8]  class-hnd exact spill-single-def "Single-def Box Helper" <System.Collections.DictionaryEntry>
+;  V15 tmp10        [V15,T12] (  3, 12   )     int  ->  rsi         "impSpillLclRefs"
 ;* V16 tmp11        [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V17 tmp12        [V17,T23] (  6,  4   )    long  ->  rax         "Indirect call through function pointer"
+;  V17 tmp12        [V17,T53] (  6,  4   )    long  ->  rax         "Indirect call through function pointer"
 ;* V18 tmp13        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp14        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V20 tmp15        [V20    ] (  2,  4   )  struct (136) [rbp-0x158]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
-;* V21 tmp16        [V21    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V22 tmp17        [V22,T12] (  2,  8   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.Int32>
-;* V23 tmp18        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.DictionaryEntry>
-;  V24 tmp19        [V24,T17] (  2,  4   )     int  ->  rdi         "Inline return value spill temp"
-;* V25 tmp20        [V25    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V26 tmp21        [V26,T18] (  3,  6   )     int  ->  rdi         "Inline stloc first use temp"
-;  V27 tmp22        [V27,T13] (  2,  8   )   byref  ->  rdi         "Inlining Arg"
-;  V28 tmp23        [V28    ] (  2,  8   )   ubyte  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "field V12.hasValue (fldOffset=0x0)" P-DEP
-;  V29 tmp24        [V29    ] (  2,  8   )     int  ->  [rbp-0xCC]  do-not-enreg[X] addr-exposed "field V12.value (fldOffset=0x4)" P-DEP
-;  V30 tmp25        [V30,T26] (  2,  4   )     ref  ->  r12         "field V13._key (fldOffset=0x0)" P-INDEP
-;  V31 tmp26        [V31,T27] (  2,  4   )     ref  ->  [rbp-0x170]  spill-single-def "field V13._value (fldOffset=0x8)" P-INDEP
-;  V32 tmp27        [V32,T33] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V33 tmp28        [V33,T28] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V34 tmp29        [V34,T03] (  2, 32   )    long  ->  rsi         "argument with side effect"
-;  V35 tmp30        [V35,T14] (  2,  8   )    long  ->  rsi         "argument with side effect"
-;  V36 tmp31        [V36,T15] (  2,  8   )    long  ->  rdx         "argument with side effect"
-;  V37 PSPSym       [V37,T30] (  1,  1   )    long  ->  [rbp-0x180]  do-not-enreg[V] "PSPSym"
-;  V38 cse0         [V38,T24] (  3,  4   )    long  ->  r13         "CSE #02: moderate"
-;* V39 cse1         [V39,T29] (  0,  0   )    long  ->  zero-ref    "CSE #03: moderate"
-;  V40 cse2         [V40,T19] (  6,  3.20)    long  ->  r14         multi-def "CSE #01: moderate"
-;  V41 rat0         [V41,T22] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
-;  V42 rat1         [V42,T25] (  3,  4   )    long  ->  r13         "runtime lookup"
-;  V43 rat2         [V43,T20] (  3,  5.60)    long  ->  r13         "fgMakeTemp is creating a new local variable"
-;* V44 rat3         [V44,T10] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V45 rat4         [V45,T08] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V46 rat5         [V46,T01] (  3, 35.20)    long  ->  rdi         "Spilling to split statement for tree"
-;  V47 rat6         [V47,T02] (  3, 32   )    long  ->  rsi         "runtime lookup"
-;  V48 rat7         [V48,T00] (  3, 44.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
-;  V49 rat8         [V49,T21] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V50 rat9         [V50,T31] (  3,  0   )    long  ->  rdi         "Spilling to split statement for tree"
-;  V51 rat10        [V51,T32] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V20 tmp15        [V20    ] (  5, 10   )  struct (136) [rbp-0x148]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
+;  V21 tmp16        [V21,T51] (  3,  4.40)    long  ->  rdi         "spilling helperCall"
+;  V22 tmp17        [V22,T38] (  4,  7   )     ref  ->  r12         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V23 tmp18        [V23    ] ( 14, 20   )  struct (32) [rbp-0x168]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;* V24 tmp19        [V24    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V25 tmp20        [V25    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V26 tmp21        [V26    ] (  0,  0   )   byref  ->  zero-ref   
+;* V27 tmp22        [V27    ] (  0,  0   )   byref  ->  zero-ref   
+;* V28 tmp23        [V28    ] (  0,  0   )     int  ->  zero-ref   
+;  V29 tmp24        [V29,T50] (  6,  5.40)    long  ->  [rbp-0x170]  spill-single-def "Inlining Arg"
+;* V30 tmp25        [V30    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V31 tmp26        [V31    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V32 tmp27        [V32,T72] (  2,  2   )  struct (32) [rbp-0x190]  do-not-enreg[S] must-init "impAppendStmt" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V33 tmp28        [V33,T62] (  3,  3   )     ref  ->  [rbp-0x200]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;* V34 tmp29        [V34    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V35 tmp30        [V35    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V36 tmp31        [V36,T58] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;* V37 tmp32        [V37,T81] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V38 tmp33        [V38    ] (  3,  3   )  struct (32) [rbp-0x1B0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V39 tmp34        [V39,T61] (  5,  3.40)    long  ->  [rbp-0x1B8]  spill-single-def "Inlining Arg"
+;* V40 tmp35        [V40    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V41 tmp36        [V41,T73] (  2,  2   )    long  ->  rsi         "Indirect call through function pointer"
+;* V42 tmp37        [V42    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V43 tmp38        [V43    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V44 tmp39        [V44,T74] (  2,  2   )    long  ->  r12         "Indirect call through function pointer"
+;  V45 tmp40        [V45,T71] (  2,  2   )     ref  ->  [rbp-0x208]  class-hnd exact spill-single-def "non-inline candidate call" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V46 tmp41        [V46,T75] (  2,  2   )     int  ->  rax         "Inlining Arg"
+;  V47 tmp42        [V47,T26] (  3,  8.80)    long  ->  r12         "Inlining Arg"
+;* V48 tmp43        [V48    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V49 tmp44        [V49,T23] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;  V50 tmp45        [V50,T09] (  5, 13.60)    long  ->  [rbp-0x1C0]  spill-single-def "Inlining Arg"
+;* V51 tmp46        [V51    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V52 tmp47        [V52,T24] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V53 tmp48        [V53    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V54 tmp49        [V54    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V55 tmp50        [V55,T27] (  3,  8   )    long  ->   r8         "Indirect call through function pointer"
+;  V56 tmp51        [V56,T10] (  3, 12   )     ref  ->  [rbp-0x210]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V57 tmp52        [V57,T41] (  3,  6   )     int  ->  rsi         "Inline stloc first use temp"
+;* V58 tmp53        [V58    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "Inline stloc first use temp" <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
+;* V59 tmp54        [V59    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V60 tmp55        [V60    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V61 tmp56        [V61,T83] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;* V62 tmp57        [V62    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V63 tmp58        [V63,T84] (  3,  0   )     ref  ->  r14         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;  V64 tmp59        [V64,T08] (  6, 13.60)    long  ->  r12         "Inlining Arg"
+;* V65 tmp60        [V65    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V66 tmp61        [V66,T25] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V67 tmp62        [V67    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V68 tmp63        [V68    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V69 tmp64        [V69,T28] (  3,  8   )    long  ->  rdx         "Indirect call through function pointer"
+;  V70 tmp65        [V70,T11] (  3, 12   )     ref  ->  [rbp-0x218]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V71 tmp66        [V71,T32] (  2,  8   )     ref  ->  rsi         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]>
+;  V72 tmp67        [V72,T33] (  2,  8   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.Int32>
+;* V73 tmp68        [V73    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.DictionaryEntry>
+;  V74 tmp69        [V74,T42] (  2,  4   )     int  ->  rax         "Inline return value spill temp"
+;* V75 tmp70        [V75    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V76 tmp71        [V76,T43] (  3,  6   )     int  ->  rax         "Inline stloc first use temp"
+;  V77 tmp72        [V77,T34] (  2,  8   )   byref  ->  rdi         "Inlining Arg"
+;  V78 tmp73        [V78    ] (  2,  6   )   ubyte  ->  [rbp-0xC0]  do-not-enreg[X] addr-exposed "field V12.hasValue (fldOffset=0x0)" P-DEP
+;  V79 tmp74        [V79    ] (  2,  6   )     int  ->  [rbp-0xBC]  do-not-enreg[X] addr-exposed "field V12.value (fldOffset=0x4)" P-DEP
+;  V80 tmp75        [V80,T59] (  2,  4   )     ref  ->  r12         "field V13._key (fldOffset=0x0)" P-INDEP
+;  V81 tmp76        [V81,T60] (  2,  4   )     ref  ->  [rbp-0x220]  spill-single-def "field V13._value (fldOffset=0x8)" P-INDEP
+;  V82 tmp77        [V82    ] (  7,  7.50)     ref  ->  [rbp-0x168]  do-not-enreg[X] addr-exposed "field V23._root (fldOffset=0x0)" P-DEP
+;  V83 tmp78        [V83    ] (  9,  8   )     ref  ->  [rbp-0x160]  do-not-enreg[X] addr-exposed "field V23._stack (fldOffset=0x8)" P-DEP
+;  V84 tmp79        [V84    ] (  5,  6   )     ref  ->  [rbp-0x158]  do-not-enreg[X] addr-exposed "field V23._current (fldOffset=0x10)" P-DEP
+;  V85 tmp80        [V85    ] (  5,  6   )     int  ->  [rbp-0x150]  do-not-enreg[X] addr-exposed "field V23._poolUserId (fldOffset=0x18)" P-DEP
+;* V86 tmp81        [V86    ] (  0,  0   )     ref  ->  zero-ref    "V04.[000..008)"
+;* V87 tmp82        [V87    ] (  0,  0   )   ubyte  ->  zero-ref    "V04.[008..009)"
+;* V88 tmp83        [V88    ] (  0,  0   )     int  ->  zero-ref    "V04.[012..016)"
+;  V89 tmp84        [V89,T39] (  3,  6   )     ref  ->  r12         "V58.[000..008)"
+;  V90 tmp85        [V90,T44] (  3,  6   )   ubyte  ->  rcx         "V58.[008..009)"
+;  V91 tmp86        [V91,T45] (  3,  6   )     int  ->  rdx         "V58.[012..016)"
+;  V92 tmp87        [V92,T05] (  4, 16   )   byref  ->  rsi         "Spilling address for field-by-field copy"
+;  V93 tmp88        [V93,T87] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V94 tmp89        [V94,T76] (  2,  2   )    long  ->  rdi         "argument with side effect"
+;  V95 tmp90        [V95,T77] (  2,  2   )    long  ->  r12         "argument with side effect"
+;  V96 tmp91        [V96,T03] (  2, 32   )    long  ->  rsi         "argument with side effect"
+;  V97 tmp92        [V97,T35] (  2,  8   )    long  ->  [rbp-0x1C8]  spill-single-def "argument with side effect"
+;  V98 tmp93        [V98,T36] (  2,  8   )    long  ->  [rbp-0x1D0]  spill-single-def "argument with side effect"
+;  V99 tmp94        [V99,T37] (  2,  8   )    long  ->  rdx         "argument with side effect"
+;  V100 PSPSym      [V100,T82] (  1,  1   )    long  ->  [rbp-0x228]  do-not-enreg[V] "PSPSym"
+;  V101 cse0        [V101,T54] (  3,  4   )    long  ->  r13         "CSE #04: conservative"
+;* V102 cse1        [V102,T78] (  0,  0   )    long  ->  zero-ref    "CSE #09: moderate"
+;  V103 cse2        [V103,T55] (  3,  4   )    long  ->  [rbp-0x1D8]  spill-single-def "CSE #05: conservative"
+;  V104 cse3        [V104,T79] (  3,  1.50)    long  ->  [rbp-0x1E0]  spill-single-def "CSE #01: conservative"
+;  V105 cse4        [V105,T80] (  3,  1.50)    long  ->  [rbp-0x1E8]  spill-single-def "CSE #02: conservative"
+;  V106 cse5        [V106,T46] (  6,  3.20)    long  ->  r14         multi-def "CSE #03: moderate"
+;  V107 cse6        [V107,T40] (  3,  6   )     ref  ->  rsi         "CSE #08: moderate"
+;  V108 rat0        [V108,T52] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
+;  V109 rat1        [V109,T56] (  3,  4   )    long  ->  r13         "runtime lookup"
+;  V110 rat2        [V110,T47] (  3,  5.60)    long  ->  r13         "fgMakeTemp is creating a new local variable"
+;  V111 rat3        [V111,T57] (  3,  4   )    long  ->  rax         "runtime lookup"
+;  V112 rat4        [V112,T48] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V113 rat5        [V113,T67] (  3,  2   )    long  ->  registers   "runtime lookup"
+;  V114 rat6        [V114,T63] (  3,  2.80)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V115 rat7        [V115,T68] (  3,  2   )    long  ->  registers   "runtime lookup"
+;  V116 rat8        [V116,T64] (  3,  2.80)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V117 rat9        [V117,T69] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V118 rat10       [V118,T65] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V119 rat11       [V119,T70] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V120 rat12       [V120,T66] (  3,  2.80)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V121 rat13       [V121,T13] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V122 rat14       [V122,T14] (  3, 11.20)    long  ->   r8         "fgMakeTemp is creating a new local variable"
+;  V123 rat15       [V123,T29] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V124 rat16       [V124,T15] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V125 rat17       [V125,T16] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V126 rat18       [V126,T17] (  3, 11.20)    long  ->  r12         "fgMakeTemp is creating a new local variable"
+;  V127 rat19       [V127,T18] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V128 rat20       [V128,T19] (  3, 11.20)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V129 rat21       [V129,T30] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V130 rat22       [V130,T20] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V131 rat23       [V131,T31] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V132 rat24       [V132,T21] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V133 rat25       [V133,T01] (  3, 35.20)    long  ->  rdi         "Spilling to split statement for tree"
+;  V134 rat26       [V134,T02] (  3, 32   )    long  ->  rsi         "runtime lookup"
+;  V135 rat27       [V135,T00] (  3, 44.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
+;  V136 rat28       [V136,T49] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V137 rat29       [V137,T85] (  3,  0   )    long  ->  rdi         "Spilling to split statement for tree"
+;  V138 rat30       [V138,T86] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 344
+; Lcl frame size = 568
 
 G_M52777_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 344
-       lea      rbp, [rsp+0x180]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x158], rax
+       sub      rsp, 568
+       lea      rbp, [rsp+0x260]
        vxorps   xmm8, xmm8, xmm8
-       mov      rax, -288
+       mov      rax, -384
        vmovdqa  xmmword ptr [rbp+rax-0x30], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x20], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x10], xmm8
        add      rax, 48
        jne      SHORT  -5 instr
-       mov      qword ptr [rbp-0x180], rsp
+       mov      qword ptr [rbp-0x228], rsp
        mov      qword ptr [rbp-0x30], rdi
-       mov      gword ptr [rbp-0x160], rdi
+       mov      gword ptr [rbp-0x1F0], rdi
        mov      r8, rdi
        mov      rbx, rsi
        mov      r15d, edx
-						;; size=100 bbWeight=1 PerfScore 19.58
+						;; size=91 bbWeight=1 PerfScore 18.33
 G_M52777_IG02:
        test     rbx, rbx
-       je       G_M52777_IG21
+       je       G_M52777_IG73
        test     r15d, r15d
-       jl       G_M52777_IG22
+       jl       G_M52777_IG74
        mov      edi, dword ptr [rbx+0x08]
        test     edi, edi
-       jl       G_M52777_IG20
+       jl       G_M52777_IG72
        mov      esi, r15d
        add      esi, dword ptr [r8+0x18]
        cmp      edi, esi
-       jl       G_M52777_IG22
+       jl       G_M52777_IG74
        mov      r14, qword ptr [r8]
        mov      rdi, r14
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      r13, qword ptr [rsi+0xB8]
        test     r13, r13
        je       SHORT G_M52777_IG04
 						;; size=69 bbWeight=1 PerfScore 19.75
 G_M52777_IG03:
        jmp      SHORT G_M52777_IG05
 						;; size=2 bbWeight=0.80 PerfScore 1.60
 G_M52777_IG04:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      r13, rax
 						;; size=18 bbWeight=0.20 PerfScore 0.30
 G_M52777_IG05:
-       mov      rsi, r13
-       mov      r8, gword ptr [rbp-0x160]
-       mov      rdx, gword ptr [r8+0x08]
-       lea      rdi, [rbp-0x158]
-       xor      rcx, rcx
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]):this
-       call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]):this
+       mov      rdi, r13
+       mov      r8, gword ptr [rbp-0x1F0]
+       mov      r12, gword ptr [r8+0x08]
+       xor      rsi, rsi
+       mov      gword ptr [rbp-0x148], rsi
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rax, qword ptr [rsi+0x18]
+       test     rax, rax
+       je       SHORT G_M52777_IG07
+						;; size=39 bbWeight=1 PerfScore 11.75
+G_M52777_IG06:
+       jmp      SHORT G_M52777_IG08
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M52777_IG07:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+						;; size=15 bbWeight=0.20 PerfScore 0.25
+G_M52777_IG08:
+       mov      qword ptr [rbp-0x1D8], rax
+       mov      qword ptr [rbp-0x170], rax
+       test     r12, r12
+       je       G_M52777_IG75
+       mov      gword ptr [rbp-0x168], r12
+       xor      rdx, rdx
+       mov      gword ptr [rbp-0x158], rdx
+       mov      rdx, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool:NewId():int
+       call     [rdx]System.Collections.Immutable.SecureObjectPool:NewId():int
+       mov      dword ptr [rbp-0x150], eax
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x160], rdi
+       mov      rdi, gword ptr [rbp-0x168]
+       cmp      gword ptr [rdi+0x08], 0
+       je       G_M52777_IG28
+						;; size=84 bbWeight=1 PerfScore 16.00
+G_M52777_IG09:
+       mov      rax, qword ptr [rbp-0x170]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rcx, qword ptr [rdi+0x18]
+       test     rcx, rcx
+       je       SHORT G_M52777_IG11
+						;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M52777_IG10:
+       jmp      SHORT G_M52777_IG12
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M52777_IG11:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rcx, rax
+       mov      rax, qword ptr [rbp-0x170]
+						;; size=28 bbWeight=0.10 PerfScore 0.28
+G_M52777_IG12:
+       mov      rdi, rcx
+       mov      qword ptr [rbp-0x1E8], rdi
+       mov      rcx, rdi
+       mov      qword ptr [rbp-0x1B8], rcx
+						;; size=20 bbWeight=0.50 PerfScore 1.25
+G_M52777_IG13:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x168]
+       vmovdqu  ymmword ptr [rbp-0x1B0], ymm0
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M52777_IG14:
+       mov      rsi, qword ptr [rcx+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rdx, qword ptr [rsi+0x18]
+       test     rdx, rdx
+       je       SHORT G_M52777_IG16
+						;; size=16 bbWeight=0.50 PerfScore 3.62
+G_M52777_IG15:
+       jmp      SHORT G_M52777_IG17
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M52777_IG16:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdx, rax
+						;; size=21 bbWeight=0.10 PerfScore 0.18
+G_M52777_IG17:
+       mov      qword ptr [rbp-0x1E0], rdx
+       mov      rsi, rdx
+       lea      rdi, [rbp-0x1B0]
+       call     rsi
+       cmp      eax, -1
+       je       SHORT G_M52777_IG21
+       mov      rdi, qword ptr [rbp-0x1B8]
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rax, qword ptr [rsi+0x20]
+       test     rax, rax
+       je       SHORT G_M52777_IG19
+						;; size=47 bbWeight=0.50 PerfScore 7.12
+G_M52777_IG18:
+       mov      rdi, rax
+       jmp      SHORT G_M52777_IG20
+						;; size=5 bbWeight=0.40 PerfScore 0.90
+G_M52777_IG19:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=18 bbWeight=0.10 PerfScore 0.15
+G_M52777_IG20:
+       lea      rsi, [rbp-0x160]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       call     [rax]System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       test     eax, eax
+       je       SHORT G_M52777_IG21
+       mov      r12, qword ptr [rbp-0x1E0]
+       mov      rax, gword ptr [rbp-0x160]
+       mov      gword ptr [rbp-0x208], rax
+       lea      rdi, [rbp-0x1B0]
+       call     r12
+       mov      r12, gword ptr [rbp-0x208]
+       mov      dword ptr [r12+0x10], eax
+       jmp      G_M52777_IG27
+						;; size=71 bbWeight=0.50 PerfScore 7.75
+G_M52777_IG21:
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x160], rdi
+						;; size=9 bbWeight=0.50 PerfScore 0.62
+G_M52777_IG22:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x168]
+       vmovdqu  ymmword ptr [rbp-0x190], ymm0
+						;; size=16 bbWeight=0.50 PerfScore 2.50
+G_M52777_IG23:
+       mov      rax, qword ptr [rbp-0x170]
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M52777_IG25
+						;; size=23 bbWeight=0.50 PerfScore 4.12
+G_M52777_IG24:
+       jmp      SHORT G_M52777_IG26
+						;; size=2 bbWeight=0.40 PerfScore 0.80
+G_M52777_IG25:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.10 PerfScore 0.18
+G_M52777_IG26:
+       call     CORINFO_HELP_NEWSFAST
+       mov      gword ptr [rbp-0x200], rax
+       movzx    rsi, byte  ptr [r12+0x1D]
+       mov      rdi, rax
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       call     [rcx]System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       mov      r12, qword ptr [rbp-0x1E8]
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x190]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, r12
+       mov      rsi, gword ptr [rbp-0x200]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       call     [rax]System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       mov      gword ptr [rbp-0x160], rax
+						;; size=129 bbWeight=0.50 PerfScore 13.25
+G_M52777_IG27:
+       lea      rdi, [rbp-0x168]
+       mov      rsi, qword ptr [rbp-0x170]
+       mov      rdx, gword ptr [rbp-0x168]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]):this
+       call     [rax]System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]):this
+						;; size=33 bbWeight=0.50 PerfScore 2.88
+G_M52777_IG28:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x168]
+       vmovdqu  ymmword ptr [rbp-0x138], ymm0
+						;; size=16 bbWeight=1 PerfScore 5.00
+G_M52777_IG29:
+       vxorps   ymm0, ymm0, ymm0
+       vmovdqu  ymmword ptr [rbp-0x118], ymm0
+       vmovdqu  ymmword ptr [rbp-0xF8], ymm0
+       vmovdqu  ymmword ptr [rbp-0xE0], ymm0
+       mov      dword ptr [rbp-0x140], -1
        lea      rdi, bword ptr [rbp-0xB8]
-       lea      rsi, bword ptr [rbp-0x158]
+       lea      rsi, bword ptr [rbp-0x148]
        mov      ecx, 17
        rep movsq 
-						;; size=57 bbWeight=1 PerfScore 33.50
-G_M52777_IG06:
-       jmp      G_M52777_IG09
+						;; size=60 bbWeight=1 PerfScore 30.58
+G_M52777_IG30:
+       jmp      G_M52777_IG54
 						;; size=5 bbWeight=1 PerfScore 2.00
-G_M52777_IG07:
-       mov      rsi, r13
-       lea      rdi, [rbp-0xB8]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:get_Current():System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]:this
-       call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:get_Current():System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]:this
-       mov      gword ptr [rbp-0xC8], rax
-       mov      qword ptr [rbp-0xC0], rdx
-       mov      r12, gword ptr [rbp-0xC8]
-       mov      rsi, qword ptr [rbp-0xC0]
-       mov      qword ptr [rbp-0xD0], rsi
-       lea      rsi, [rbp-0xD0]
+G_M52777_IG31:
+       mov      r12, r13
+       mov      rax, qword ptr [rbp-0x1D8]
+       mov      rcx, rax
+       mov      qword ptr [rbp-0x1C0], rcx
+       cmp      gword ptr [rbp-0xA8], 0
+       je       G_M52777_IG38
+       cmp      gword ptr [rbp-0xA0], 0
+       je       G_M52777_IG42
+       mov      rdi, qword ptr [rcx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x30]
+       test     rdi, rdi
+       je       SHORT G_M52777_IG33
+						;; size=64 bbWeight=2 PerfScore 31.50
+G_M52777_IG32:
+       jmp      SHORT G_M52777_IG34
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M52777_IG33:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       mov      rcx, qword ptr [rbp-0x1C0]
+						;; size=28 bbWeight=0.40 PerfScore 1.10
+G_M52777_IG34:
+       mov      rdx, gword ptr [rbp-0xA0]
+       mov      gword ptr [rbp-0x210], rdx
+       cmp      byte  ptr [rdx], dl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      r8, qword ptr [rsi+0x10]
+       test     r8, r8
+       je       SHORT G_M52777_IG36
+						;; size=29 bbWeight=2 PerfScore 20.50
+G_M52777_IG35:
+       jmp      SHORT G_M52777_IG37
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M52777_IG36:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      r8, rax
+						;; size=18 bbWeight=0.40 PerfScore 0.60
+G_M52777_IG37:
+       lea      rdi, [rbp-0xA8]
+       call     r8
+       mov      rdi, gword ptr [rbp-0x210]
+       cmp      eax, dword ptr [rdi+0x10]
+       mov      rcx, qword ptr [rbp-0x1C0]
+       je       G_M52777_IG42
+						;; size=33 bbWeight=2 PerfScore 19.00
+G_M52777_IG38:
+       mov      rdi, qword ptr [rcx+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x28]
+       test     rdi, rdi
+       je       SHORT G_M52777_IG40
+						;; size=16 bbWeight=2 PerfScore 14.50
+G_M52777_IG39:
+       jmp      SHORT G_M52777_IG41
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M52777_IG40:
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M52777_IG41:
+       mov      qword ptr [rbp-0x1C8], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0xA8]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1C8]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]])
+       call     [rcx]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]])
+						;; size=86 bbWeight=2 PerfScore 35.50
+G_M52777_IG42:
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M52777_IG44
+						;; size=17 bbWeight=2 PerfScore 14.50
+G_M52777_IG43:
+       jmp      SHORT G_M52777_IG45
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M52777_IG44:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M52777_IG45:
+       mov      esi, dword ptr [rbp-0x88]
+       cmp      esi, 1
+       je       G_M52777_IG60
+       cmp      esi, 2
+       jne      G_M52777_IG58
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      r12, qword ptr [rsi+0x18]
+       test     r12, r12
+       je       G_M52777_IG61
+						;; size=44 bbWeight=2 PerfScore 21.50
+G_M52777_IG46:
+       cmp      gword ptr [rbp-0x60], 0
+       je       SHORT G_M52777_IG49
+       cmp      gword ptr [rbp-0x58], 0
+       je       G_M52777_IG51
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       G_M52777_IG62
+						;; size=39 bbWeight=2 PerfScore 26.50
+G_M52777_IG47:
+       mov      rcx, gword ptr [rbp-0x58]
+       mov      gword ptr [rbp-0x218], rcx
+       cmp      byte  ptr [rcx], cl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rdx, qword ptr [rsi+0x10]
+       test     rdx, rdx
+       je       G_M52777_IG63
+						;; size=30 bbWeight=2 PerfScore 20.50
+G_M52777_IG48:
+       lea      rdi, [rbp-0x68]
+       call     rdx
+       mov      rdi, gword ptr [rbp-0x218]
+       cmp      eax, dword ptr [rdi+0x10]
+       je       G_M52777_IG51
+						;; size=22 bbWeight=2 PerfScore 17.00
+G_M52777_IG49:
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x10]
+       test     rdi, rdi
+       je       G_M52777_IG64
+						;; size=21 bbWeight=2 PerfScore 14.50
+G_M52777_IG50:
+       mov      qword ptr [rbp-0x1D0], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x68]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1D0]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]])
+       call     [rcx]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]])
+						;; size=103 bbWeight=2 PerfScore 46.50
+G_M52777_IG51:
+       mov      rsi, gword ptr [rbp-0x50]
+       test     rsi, rsi
+       je       G_M52777_IG57
+       add      rsi, 32
+       mov      r12, gword ptr [rsi]
+       movzx    rcx, byte  ptr [rsi+0x08]
+       mov      edx, dword ptr [rsi+0x0C]
+						;; size=27 bbWeight=2 PerfScore 17.00
+G_M52777_IG52:
+       mov      byte  ptr [rbp-0xC0], cl
+       mov      dword ptr [rbp-0xBC], edx
+       lea      rsi, [rbp-0xC0]
        mov      rdi, 0xD1FFAB1E      ; System.Nullable`1[int]
        call     CORINFO_HELP_BOX_NULLABLE
-       mov      gword ptr [rbp-0x170], rax
+       mov      gword ptr [rbp-0x220], rax
        mov      rdi, 0xD1FFAB1E      ; System.Collections.DictionaryEntry
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x168], rax
+       mov      gword ptr [rbp-0x1F8], rax
        lea      rdi, bword ptr [rax+0x08]
        mov      rsi, r12
        call     CORINFO_HELP_ASSIGN_REF
-       mov      r12, gword ptr [rbp-0x168]
+       mov      r12, gword ptr [rbp-0x1F8]
        lea      rdi, bword ptr [r12+0x10]
-       mov      rsi, gword ptr [rbp-0x170]
+       mov      rsi, gword ptr [rbp-0x220]
        call     CORINFO_HELP_ASSIGN_REF
        mov      esi, r15d
        lea      r15d, [rsi+0x01]
        mov      rdi, qword ptr [rbx]
-       mov      edi, dword ptr [rdi+0x04]
-       add      edi, -24
-       shr      edi, 3
-       je       SHORT G_M52777_IG08
-       cmp      edi, 1
-       jne      SHORT G_M52777_IG14
-						;; size=170 bbWeight=2 PerfScore 54.00
-G_M52777_IG08:
+       mov      eax, dword ptr [rdi+0x04]
+       add      eax, -24
+       shr      eax, 3
+       jne      G_M52777_IG65
+						;; size=124 bbWeight=2 PerfScore 37.50
+G_M52777_IG53:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Array:GetFlattenedIndex(int):long:this
        call     [rax]System.Array:GetFlattenedIndex(int):long:this
        mov      rdx, rax
        mov      rsi, r12
        mov      rdi, rbx
        call     System.Array:InternalSetValue(System.Object,long):this
 						;; size=29 bbWeight=2 PerfScore 10.50
-G_M52777_IG09:
-       mov      r8, gword ptr [rbp-0x160]
+G_M52777_IG54:
+       mov      r8, gword ptr [rbp-0x1F0]
        mov      rdi, qword ptr [r8]
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      rsi, qword ptr [rsi+0xB8]
        test     rsi, rsi
-       je       SHORT G_M52777_IG11
-						;; size=29 bbWeight=8 PerfScore 82.00
-G_M52777_IG10:
-       jmp      SHORT G_M52777_IG12
-						;; size=2 bbWeight=6.40 PerfScore 12.80
-G_M52777_IG11:
-       mov      rsi, 0xD1FFAB1E      ; global ptr
-       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
-       mov      rsi, rax
-						;; size=18 bbWeight=1.60 PerfScore 2.40
-G_M52777_IG12:
+       je       G_M52777_IG66
+						;; size=33 bbWeight=8 PerfScore 82.00
+G_M52777_IG55:
        lea      rdi, [rbp-0xB8]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this
        call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this
        test     eax, eax
-       jne      G_M52777_IG07
+       jne      G_M52777_IG31
 						;; size=27 bbWeight=8 PerfScore 40.00
-G_M52777_IG13:
-       jmp      SHORT G_M52777_IG15
-						;; size=2 bbWeight=1 PerfScore 2.00
-G_M52777_IG14:
+G_M52777_IG56:
+       jmp      G_M52777_IG67
+						;; size=5 bbWeight=1 PerfScore 2.00
+G_M52777_IG57:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      r14, rax
+       mov      rdi, r14
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, r14
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M52777_IG58:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M52777_IG59:
        mov      edi, 58
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
-G_M52777_IG15:
+G_M52777_IG60:
+       mov      r12, gword ptr [rbp-0x78]
+       movzx    rcx, byte  ptr [rbp-0x70]
+       mov      edx, dword ptr [rbp-0x6C]
+       jmp      G_M52777_IG52
+						;; size=16 bbWeight=2 PerfScore 10.00
+G_M52777_IG61:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r12, rax
+       jmp      G_M52777_IG46
+						;; size=23 bbWeight=0.40 PerfScore 1.40
+G_M52777_IG62:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M52777_IG47
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M52777_IG63:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdx, rax
+       jmp      G_M52777_IG48
+						;; size=23 bbWeight=0.40 PerfScore 1.40
+G_M52777_IG64:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M52777_IG50
+						;; size=26 bbWeight=0.40 PerfScore 1.50
+G_M52777_IG65:
+       cmp      eax, 1
+       jne      G_M52777_IG59
+       jmp      G_M52777_IG53
+						;; size=14 bbWeight=2 PerfScore 6.50
+G_M52777_IG66:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rsi, rax
+       jmp      G_M52777_IG55
+						;; size=23 bbWeight=1.60 PerfScore 5.60
+G_M52777_IG67:
        mov      rdi, qword ptr [r14+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rax, qword ptr [rdi+0xC8]
        test     rax, rax
-       je       SHORT G_M52777_IG17
+       je       SHORT G_M52777_IG69
 						;; size=19 bbWeight=1 PerfScore 7.25
-G_M52777_IG16:
-       jmp      SHORT G_M52777_IG18
+G_M52777_IG68:
+       jmp      SHORT G_M52777_IG70
 						;; size=2 bbWeight=0.80 PerfScore 1.60
-G_M52777_IG17:
+G_M52777_IG69:
        mov      rdi, r14
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=18 bbWeight=0.20 PerfScore 0.30
-G_M52777_IG18:
+G_M52777_IG70:
        lea      rdi, [rbp-0xB8]
        call     rax
        nop      
 						;; size=10 bbWeight=1 PerfScore 3.75
-G_M52777_IG19:
-       add      rsp, 344
+G_M52777_IG71:
+       vzeroupper 
+       add      rsp, 568
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=1 PerfScore 4.25
-G_M52777_IG20:
+						;; size=21 bbWeight=1 PerfScore 5.25
+G_M52777_IG72:
        call     CORINFO_HELP_OVERFLOW
 						;; size=5 bbWeight=0 PerfScore 0.00
-G_M52777_IG21:
+G_M52777_IG73:
        mov      edi, 0x497
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
-G_M52777_IG22:
+G_M52777_IG74:
        mov      edi, 0x4A3
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        xor      rsi, rsi
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailRange(System.String,System.String)
        call     [rax]System.Collections.Immutable.Requires:FailRange(System.String,System.String)
        int3     
 						;; size=38 bbWeight=0 PerfScore 0.00
-G_M52777_IG23:
+G_M52777_IG75:
+       mov      edi, 0x45F
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M52777_IG76:
        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+0x180]
-						;; size=25 bbWeight=0 PerfScore 0.00
-G_M52777_IG24:
-       mov      r8, gword ptr [rbp-0x160]
+       sub      rsp, 72
+       mov      rbp, qword ptr [rdi+0x38]
+       mov      qword ptr [rsp+0x38], rbp
+       lea      rbp, [rbp+0x260]
+						;; size=30 bbWeight=0 PerfScore 0.00
+G_M52777_IG77:
+       mov      r8, gword ptr [rbp-0x1F0]
        mov      r14, qword ptr [r8]
        mov      rdi, r14
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      rax, qword ptr [rsi+0xC8]
        test     rax, rax
-       je       SHORT G_M52777_IG25
-       jmp      SHORT G_M52777_IG26
+       je       SHORT G_M52777_IG78
+       jmp      SHORT G_M52777_IG79
 						;; size=34 bbWeight=0 PerfScore 0.00
-G_M52777_IG25:
+G_M52777_IG78:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=15 bbWeight=0 PerfScore 0.00
-G_M52777_IG26:
+G_M52777_IG79:
        lea      rdi, [rbp-0xB8]
        call     rax
        nop      
 						;; size=10 bbWeight=0 PerfScore 0.00
-G_M52777_IG27:
-       add      rsp, 8
+G_M52777_IG80:
+       vzeroupper 
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0 PerfScore 0.00
+						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 791, prolog size 100, PerfScore 297.58, instruction count 185, allocated bytes for code 791 (MethodHash=fb7631d6) for method System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts)
+; Total bytes of code 2291, prolog size 91, PerfScore 693.94, instruction count 500, allocated bytes for code 2291 (MethodHash=fb7631d6) for method System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts)
1461 (293.96 % of base) - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this
 ; Assembly listing for method System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
+; 0 inlinees with PGO data; 12 single block inlinees; 8 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  7, 10   )     ref  ->  [rbp-0x150]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]>
-;  V01 arg1         [V01,T08] (  3,  6   )  struct ( 8) [rbp-0x20]  do-not-enreg[S] single-def <System.Nullable`1[int]>
-;  V02 loc0         [V02    ] (  5, 15   )  struct (136) [rbp-0xA8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
-;  V03 loc1         [V03,T09] (  2,  8   )  struct (16) [rbp-0xB8]  do-not-enreg[SR] multireg-ret must-init ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
-;  V04 loc2         [V04,T18] (  2,  2   )   ubyte  ->  [rbp-0xBC]  do-not-enreg[Z] EH-live
-;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V00 this         [V00,T27] (  8, 11   )     ref  ->  [rbp-0x1F0]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]>
+;  V01 arg1         [V01,T35] (  3,  6   )  struct ( 8) [rbp-0x38]  do-not-enreg[S] single-def <System.Nullable`1[int]>
+;  V02 loc0         [V02    ] ( 17, 63   )  struct (136) [rbp-0xC0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
+;* V03 loc1         [V03    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
+;  V04 loc2         [V04,T68] (  2,  2   )   ubyte  ->  [rbp-0xC4]  do-not-enreg[Z] EH-live
+;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V07 tmp2         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V08 tmp3         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V09 tmp4         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]>
 ;* V10 tmp5         [V10    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Nullable`1[int]>
 ;* V11 tmp6         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V12 tmp7         [V12,T07] (  6,  8   )    long  ->  rax         "Indirect call through function pointer"
-;  V13 tmp8         [V13    ] (  2,  4   )  struct (136) [rbp-0x148]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
-;* V14 tmp9         [V14    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V15 tmp10        [V15,T02] (  2, 16   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableDictionary`2+Comparers[System.__Canon,System.Nullable`1[int]]>
-;* V16 tmp11        [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "field V10.hasValue (fldOffset=0x0)" P-INDEP
-;* V17 tmp12        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V10.value (fldOffset=0x4)" P-INDEP
-;  V18 tmp13        [V18,T17] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V19 tmp14        [V19,T00] (  2, 32   )    long  ->  rsi         "argument with side effect"
-;  V20 tmp15        [V20,T03] (  2, 16   )    long  ->  rsi         "argument with side effect"
-;  V21 PSPSym       [V21,T19] (  1,  1   )    long  ->  [rbp-0x160]  do-not-enreg[V] "PSPSym"
-;  V22 cse0         [V22,T04] (  4, 14   )    long  ->  r15         "CSE #02: aggressive"
-;  V23 cse1         [V23,T06] (  6,  5.20)    long  ->  rbx         multi-def "CSE #01: aggressive"
-;  V24 rat0         [V24,T14] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
-;  V25 rat1         [V25,T16] (  3,  4   )    long  ->  r15         "runtime lookup"
-;  V26 rat2         [V26,T11] (  3,  5.60)    long  ->  r15         "fgMakeTemp is creating a new local variable"
-;* V27 rat3         [V27,T10] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V28 rat4         [V28,T01] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V29 rat5         [V29,T12] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V30 rat6         [V30,T15] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
-;  V31 rat7         [V31,T13] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V12 tmp7         [V12,T33] (  6,  8   )    long  ->  rax         "Indirect call through function pointer"
+;  V13 tmp8         [V13    ] (  5, 10   )  struct (136) [rbp-0x150]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
+;  V14 tmp9         [V14,T48] (  3,  4.40)    long  ->  rdi         "spilling helperCall"
+;  V15 tmp10        [V15,T34] (  4,  8   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V16 tmp11        [V16    ] ( 14, 28   )  struct (32) [rbp-0x170]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;* V17 tmp12        [V17    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V18 tmp13        [V18    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref   
+;  V20 tmp15        [V20,T67] (  2,  2   )   byref  ->  rcx         single-def
+;  V21 tmp16        [V21,T69] (  2,  2   )     int  ->  rdi        
+;  V22 tmp17        [V22,T32] (  6,  8.80)    long  ->  r12         "Inlining Arg"
+;* V23 tmp18        [V23    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V24 tmp19        [V24    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V25 tmp20        [V25,T59] (  2,  4   )  struct (32) [rbp-0x190]  do-not-enreg[S] must-init "impAppendStmt" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V26 tmp21        [V26,T38] (  3,  6   )     ref  ->  [rbp-0x1F8]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;* V27 tmp22        [V27    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V28 tmp23        [V28    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V29 tmp24        [V29,T57] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;* V30 tmp25        [V30,T70] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V31 tmp26        [V31    ] (  3,  6   )  struct (32) [rbp-0x1B0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V32 tmp27        [V32,T37] (  5,  6.80)    long  ->  [rbp-0x1B8]  spill-single-def "Inlining Arg"
+;* V33 tmp28        [V33    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V34 tmp29        [V34,T60] (  2,  4   )    long  ->  rdx         "Indirect call through function pointer"
+;* V35 tmp30        [V35    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V36 tmp31        [V36    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V37 tmp32        [V37,T61] (  2,  4   )    long  ->  r14         "Indirect call through function pointer"
+;  V38 tmp33        [V38,T58] (  2,  4   )     ref  ->  [rbp-0x200]  class-hnd exact spill-single-def "non-inline candidate call" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V39 tmp34        [V39,T62] (  2,  4   )     int  ->  rax         "Inlining Arg"
+;  V40 tmp35        [V40,T17] (  3, 17.60)    long  ->  r14         "Inlining Arg"
+;* V41 tmp36        [V41    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V42 tmp37        [V42,T14] (  4, 17.60)    long  ->  rdi         "spilling helperCall"
+;  V43 tmp38        [V43,T02] (  5, 27.20)    long  ->  r12         "Inlining Arg"
+;* V44 tmp39        [V44    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V45 tmp40        [V45,T15] (  4, 17.60)    long  ->  rdi         "spilling helperCall"
+;* V46 tmp41        [V46    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V47 tmp42        [V47    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V48 tmp43        [V48,T18] (  3, 16   )    long  ->  rcx         "Indirect call through function pointer"
+;  V49 tmp44        [V49,T03] (  3, 24   )     ref  ->  [rbp-0x208]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V50 tmp45        [V50,T29] (  3, 12   )     int  ->  rsi         "Inline stloc first use temp"
+;  V51 tmp46        [V51,T30] (  3, 12   )  struct (16) [rbp-0x1C8]  do-not-enreg[S] must-init "Inline stloc first use temp" <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
+;* V52 tmp47        [V52    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V53 tmp48        [V53    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V54 tmp49        [V54,T72] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;* V55 tmp50        [V55    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V56 tmp51        [V56,T73] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;  V57 tmp52        [V57,T01] (  6, 27.20)    long  ->  r14         "Inlining Arg"
+;* V58 tmp53        [V58    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V59 tmp54        [V59,T16] (  4, 17.60)    long  ->  rdi         "spilling helperCall"
+;* V60 tmp55        [V60    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V61 tmp56        [V61    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V62 tmp57        [V62,T19] (  3, 16   )    long  ->  rax         "Indirect call through function pointer"
+;  V63 tmp58        [V63,T04] (  3, 24   )     ref  ->  r12         class-hnd exact "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V64 tmp59        [V64,T22] (  2, 16   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]>
+;  V65 tmp60        [V65,T23] (  2, 16   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableDictionary`2+Comparers[System.__Canon,System.Nullable`1[int]]>
+;* V66 tmp61        [V66    ] (  0,  0   )   ubyte  ->  zero-ref    "field V10.hasValue (fldOffset=0x0)" P-INDEP
+;* V67 tmp62        [V67    ] (  0,  0   )     int  ->  zero-ref    "field V10.value (fldOffset=0x4)" P-INDEP
+;  V68 tmp63        [V68    ] (  7, 11   )     ref  ->  [rbp-0x170]  do-not-enreg[X] addr-exposed "field V16._root (fldOffset=0x0)" P-DEP
+;  V69 tmp64        [V69    ] (  9, 13   )     ref  ->  [rbp-0x168]  do-not-enreg[X] addr-exposed "field V16._stack (fldOffset=0x8)" P-DEP
+;  V70 tmp65        [V70    ] (  5,  9   )     ref  ->  [rbp-0x160]  do-not-enreg[X] addr-exposed "field V16._current (fldOffset=0x10)" P-DEP
+;  V71 tmp66        [V71    ] (  5,  9   )     int  ->  [rbp-0x158]  do-not-enreg[X] addr-exposed "field V16._poolUserId (fldOffset=0x18)" P-DEP
+;  V72 tmp67        [V72,T63] (  2,  4   )    long  ->  rdi         "argument with side effect"
+;  V73 tmp68        [V73,T64] (  2,  4   )    long  ->  r14         "argument with side effect"
+;  V74 tmp69        [V74,T00] (  2, 32   )    long  ->  rsi         "argument with side effect"
+;  V75 tmp70        [V75,T24] (  2, 16   )    long  ->  [rbp-0x1D0]  spill-single-def "argument with side effect"
+;  V76 tmp71        [V76,T25] (  2, 16   )    long  ->  [rbp-0x1D8]  spill-single-def "argument with side effect"
+;  V77 PSPSym       [V77,T71] (  1,  1   )    long  ->  [rbp-0x218]  do-not-enreg[V] "PSPSym"
+;  V78 cse0         [V78,T26] (  4, 14   )    long  ->  r15         "CSE #04: moderate"
+;  V79 cse1         [V79,T39] (  3,  6   )    long  ->  r13         "CSE #05: moderate"
+;  V80 cse2         [V80,T65] (  3,  3   )    long  ->  [rbp-0x1E0]  spill-single-def "CSE #01: moderate"
+;  V81 cse3         [V81,T66] (  3,  3   )    long  ->  [rbp-0x1E8]  spill-single-def "CSE #02: moderate"
+;  V82 cse4         [V82,T31] (  6,  5.20)    long  ->  rbx         multi-def "CSE #03: moderate"
+;  V83 cse5         [V83,T28] (  3, 12   )     ref  ->  rdi         "CSE #08: moderate"
+;  V84 rat0         [V84,T49] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
+;  V85 rat1         [V85,T51] (  3,  4   )    long  ->  r15         "runtime lookup"
+;  V86 rat2         [V86,T40] (  3,  5.60)    long  ->  r15         "fgMakeTemp is creating a new local variable"
+;  V87 rat3         [V87,T52] (  3,  4   )    long  ->  r13         "runtime lookup"
+;  V88 rat4         [V88,T41] (  3,  5.60)    long  ->  r13         "fgMakeTemp is creating a new local variable"
+;  V89 rat5         [V89,T53] (  3,  4   )    long  ->  rax         "runtime lookup"
+;  V90 rat6         [V90,T42] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V91 rat7         [V91,T54] (  3,  4   )    long  ->  registers   "runtime lookup"
+;  V92 rat8         [V92,T43] (  3,  5.60)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V93 rat9         [V93,T55] (  3,  4   )    long  ->  rdi         "runtime lookup"
+;  V94 rat10        [V94,T44] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V95 rat11        [V95,T56] (  3,  4   )    long  ->  rdi         "runtime lookup"
+;  V96 rat12        [V96,T45] (  3,  5.60)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V97 rat13        [V97,T05] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V98 rat14        [V98,T06] (  3, 22.40)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V99 rat15        [V99,T20] (  3, 16   )    long  ->  rdi         "runtime lookup"
+;  V100 rat16       [V100,T07] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V101 rat17       [V101,T08] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V102 rat18       [V102,T09] (  3, 22.40)    long  ->  r14         "fgMakeTemp is creating a new local variable"
+;  V103 rat19       [V103,T10] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V104 rat20       [V104,T11] (  3, 22.40)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V105 rat21       [V105,T21] (  3, 16   )    long  ->  rdi         "runtime lookup"
+;  V106 rat22       [V106,T12] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V107 rat23       [V107,T36] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V108 rat24       [V108,T13] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V109 rat25       [V109,T46] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V110 rat26       [V110,T50] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
+;  V111 rat27       [V111,T47] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 336
+; Lcl frame size = 552
 
 G_M15826_IG01:
        push     rbp
        push     r15
+       push     r14
+       push     r13
+       push     r12
        push     rbx
-       sub      rsp, 336
-       lea      rbp, [rsp+0x160]
+       sub      rsp, 552
+       lea      rbp, [rsp+0x250]
        xor      eax, eax
-       mov      qword ptr [rbp-0x148], rax
+       mov      qword ptr [rbp-0x1C8], rax
        vxorps   xmm8, xmm8, xmm8
-       mov      rax, -288
+       mov      rax, -384
+       vmovdqa  xmmword ptr [rbp+rax-0x40], xmm8
+       vmovdqa  xmmword ptr [rbp+rax-0x30], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x20], xmm8
-       vmovdqa  xmmword ptr [rbp+rax-0x10], xmm8
-       vmovdqa  xmmword ptr [rax+rbp], xmm8
        add      rax, 48
        jne      SHORT  -5 instr
-       mov      qword ptr [rbp-0x160], rsp
-       mov      qword ptr [rbp-0x18], rdi
-       mov      gword ptr [rbp-0x150], rdi
-       mov      qword ptr [rbp-0x20], rsi
+       mov      qword ptr [rbp-0x40], rax
+       mov      qword ptr [rbp-0x218], rsp
+       mov      qword ptr [rbp-0x30], rdi
+       mov      gword ptr [rbp-0x1F0], rdi
+       mov      qword ptr [rbp-0x38], rsi
        mov      rdx, rdi
-						;; size=91 bbWeight=1 PerfScore 17.08
+						;; size=102 bbWeight=1 PerfScore 21.08
 G_M15826_IG02:
        mov      rbx, qword ptr [rdx]
        mov      rdi, rbx
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      r15, qword ptr [rsi+0x60]
        test     r15, r15
        je       SHORT G_M15826_IG04
 						;; size=22 bbWeight=1 PerfScore 9.50
 G_M15826_IG03:
        jmp      SHORT G_M15826_IG05
 						;; size=2 bbWeight=0.80 PerfScore 1.60
 G_M15826_IG04:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      r15, rax
 						;; size=18 bbWeight=0.20 PerfScore 0.30
 G_M15826_IG05:
-       mov      rsi, r15
-       mov      rdx, gword ptr [rbp-0x150]
-       mov      rdx, gword ptr [rdx+0x08]
-       lea      rdi, [rbp-0x148]
-       mov      rcx, gword ptr [rbp-0x150]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]):this
-       call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]):this
-       lea      rdi, bword ptr [rbp-0xA8]
-       lea      rsi, bword ptr [rbp-0x148]
-       mov      ecx, 17
-       rep movsq 
-						;; size=62 bbWeight=1 PerfScore 34.25
+       mov      rdi, r15
+       mov      rdx, gword ptr [rbp-0x1F0]
+       mov      r14, gword ptr [rdx+0x08]
+       mov      gword ptr [rbp-0x150], rdx
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      r13, qword ptr [rsi+0x18]
+       test     r13, r13
+       je       SHORT G_M15826_IG07
+						;; size=37 bbWeight=1 PerfScore 11.50
 G_M15826_IG06:
        jmp      SHORT G_M15826_IG08
-						;; size=2 bbWeight=1 PerfScore 2.00
+						;; size=2 bbWeight=0.80 PerfScore 1.60
 G_M15826_IG07:
-       mov      rsi, r15
-       lea      rdi, [rbp-0xA8]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:get_Current():System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]:this
-       call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:get_Current():System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]:this
-       mov      gword ptr [rbp-0xB8], rax
-       mov      qword ptr [rbp-0xB0], rdx
-       mov      rcx, gword ptr [rbp-0x150]
-       mov      rdi, gword ptr [rcx+0x10]
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r13, rax
+						;; size=18 bbWeight=0.20 PerfScore 0.30
+G_M15826_IG08:
+       mov      r12, r13
+       test     r14, r14
+       je       G_M15826_IG74
+       mov      gword ptr [rbp-0x170], r14
+       xor      rax, rax
+       mov      gword ptr [rbp-0x160], rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool:NewId():int
+       call     [rax]System.Collections.Immutable.SecureObjectPool:NewId():int
+       mov      dword ptr [rbp-0x158], eax
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x168], rdi
+       mov      rdi, gword ptr [rbp-0x170]
+       cmp      gword ptr [rdi+0x08], 0
+       je       G_M15826_IG27
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rax, qword ptr [rdi+0x18]
+       test     rax, rax
+       je       SHORT G_M15826_IG10
+						;; size=90 bbWeight=1 PerfScore 21.50
+G_M15826_IG09:
+       jmp      SHORT G_M15826_IG11
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M15826_IG10:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+						;; size=18 bbWeight=0.20 PerfScore 0.30
+G_M15826_IG11:
+       mov      rdi, rax
+       mov      qword ptr [rbp-0x1E8], rdi
+       mov      rax, rdi
+       mov      qword ptr [rbp-0x1B8], rax
+						;; size=20 bbWeight=1 PerfScore 2.50
+G_M15826_IG12:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x170]
+       vmovdqu  ymmword ptr [rbp-0x1B0], ymm0
+						;; size=16 bbWeight=1 PerfScore 5.00
+G_M15826_IG13:
+       mov      rsi, qword ptr [rax+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rcx, qword ptr [rsi+0x18]
+       test     rcx, rcx
+       je       SHORT G_M15826_IG15
+						;; size=16 bbWeight=1 PerfScore 7.25
+G_M15826_IG14:
+       jmp      SHORT G_M15826_IG16
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M15826_IG15:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rcx, rax
+						;; size=21 bbWeight=0.20 PerfScore 0.35
+G_M15826_IG16:
+       mov      qword ptr [rbp-0x1E0], rcx
+       mov      rdx, rcx
+       lea      rdi, [rbp-0x1B0]
+       call     rdx
+       cmp      eax, -1
+       je       SHORT G_M15826_IG20
+       mov      rdi, qword ptr [rbp-0x1B8]
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rax, qword ptr [rsi+0x20]
+       test     rax, rax
+       je       SHORT G_M15826_IG18
+						;; size=47 bbWeight=1 PerfScore 14.25
+G_M15826_IG17:
+       mov      rdi, rax
+       jmp      SHORT G_M15826_IG19
+						;; size=5 bbWeight=0.80 PerfScore 1.80
+G_M15826_IG18:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=18 bbWeight=0.20 PerfScore 0.30
+G_M15826_IG19:
+       lea      rsi, [rbp-0x168]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       call     [rax]System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       test     eax, eax
+       je       SHORT G_M15826_IG20
+       mov      r14, qword ptr [rbp-0x1E0]
+       mov      rax, gword ptr [rbp-0x168]
+       mov      gword ptr [rbp-0x200], rax
+       lea      rdi, [rbp-0x1B0]
+       call     r14
+       mov      r14, gword ptr [rbp-0x200]
+       mov      dword ptr [r14+0x10], eax
+       jmp      G_M15826_IG26
+						;; size=70 bbWeight=1 PerfScore 15.50
+G_M15826_IG20:
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x168], rdi
+						;; size=9 bbWeight=1 PerfScore 1.25
+G_M15826_IG21:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x170]
+       vmovdqu  ymmword ptr [rbp-0x190], ymm0
+						;; size=16 bbWeight=1 PerfScore 5.00
+G_M15826_IG22:
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M15826_IG24
+						;; size=17 bbWeight=1 PerfScore 7.25
+G_M15826_IG23:
+       jmp      SHORT G_M15826_IG25
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M15826_IG24:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.20 PerfScore 0.35
+G_M15826_IG25:
+       call     CORINFO_HELP_NEWSFAST
+       mov      gword ptr [rbp-0x1F8], rax
+       movzx    rsi, byte  ptr [r14+0x1D]
+       mov      rdi, rax
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       call     [rcx]System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       mov      r14, qword ptr [rbp-0x1E8]
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x190]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, r14
+       mov      rsi, gword ptr [rbp-0x1F8]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       call     [rax]System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       mov      gword ptr [rbp-0x168], rax
+						;; size=128 bbWeight=1 PerfScore 26.50
+G_M15826_IG26:
+       lea      rdi, [rbp-0x170]
+       mov      rsi, r12
+       mov      rdx, gword ptr [rbp-0x170]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]):this
+       call     [rax]System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]):this
+						;; size=29 bbWeight=1 PerfScore 5.00
+G_M15826_IG27:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x170]
+       vmovdqu  ymmword ptr [rbp-0x140], ymm0
+						;; size=16 bbWeight=1 PerfScore 5.00
+G_M15826_IG28:
+       vxorps   ymm0, ymm0, ymm0
+       vmovdqu  ymmword ptr [rbp-0x120], ymm0
+       vmovdqu  ymmword ptr [rbp-0x100], ymm0
+       vmovdqu  ymmword ptr [rbp-0xE8], ymm0
+       lea      rcx, bword ptr [rbp-0x150]
+       mov      rdx, gword ptr [rbp-0x1F0]
+       mov      edi, dword ptr [rdx+0x2C]
+       mov      dword ptr [rcx+0x08], edi
+       lea      rdi, bword ptr [rbp-0xC0]
+       lea      rsi, bword ptr [rbp-0x150]
+       mov      ecx, 17
+       rep movsq 
+						;; size=70 bbWeight=1 PerfScore 34.08
+G_M15826_IG29:
+       jmp      G_M15826_IG53
+						;; size=5 bbWeight=1 PerfScore 2.00
+G_M15826_IG30:
+       mov      r14, r15
+       mov      r12, r13
+       cmp      gword ptr [rbp-0xB0], 0
+       je       G_M15826_IG37
+       cmp      gword ptr [rbp-0xA8], 0
+       je       G_M15826_IG41
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x30]
+       test     rdi, rdi
+       je       SHORT G_M15826_IG32
+						;; size=51 bbWeight=4 PerfScore 55.00
+G_M15826_IG31:
+       jmp      SHORT G_M15826_IG33
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M15826_IG32:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.80 PerfScore 1.40
+G_M15826_IG33:
+       mov      rax, gword ptr [rbp-0xA8]
+       mov      gword ptr [rbp-0x208], rax
+       cmp      byte  ptr [rax], al
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rcx, qword ptr [rsi+0x10]
+       test     rcx, rcx
+       je       SHORT G_M15826_IG35
+						;; size=29 bbWeight=4 PerfScore 41.00
+G_M15826_IG34:
+       jmp      SHORT G_M15826_IG36
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M15826_IG35:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rcx, rax
+						;; size=18 bbWeight=0.80 PerfScore 1.20
+G_M15826_IG36:
+       lea      rdi, [rbp-0xB0]
+       call     rcx
+       mov      rdi, gword ptr [rbp-0x208]
+       cmp      eax, dword ptr [rdi+0x10]
+       je       G_M15826_IG41
+						;; size=25 bbWeight=4 PerfScore 34.00
+G_M15826_IG37:
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x28]
+       test     rdi, rdi
+       je       SHORT G_M15826_IG39
+						;; size=17 bbWeight=4 PerfScore 29.00
+G_M15826_IG38:
+       jmp      SHORT G_M15826_IG40
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M15826_IG39:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.80 PerfScore 1.40
+G_M15826_IG40:
+       mov      qword ptr [rbp-0x1D0], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0xB0]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1D0]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]])
+       call     [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]])
+						;; size=86 bbWeight=4 PerfScore 71.00
+G_M15826_IG41:
+       mov      rdi, qword ptr [r14+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M15826_IG43
+						;; size=16 bbWeight=4 PerfScore 29.00
+G_M15826_IG42:
+       jmp      SHORT G_M15826_IG44
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M15826_IG43:
+       mov      rdi, r14
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.80 PerfScore 1.40
+G_M15826_IG44:
+       mov      esi, dword ptr [rbp-0x90]
+       cmp      esi, 1
+       je       G_M15826_IG57
+       cmp      esi, 2
+       jne      G_M15826_IG56
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      r14, qword ptr [rsi+0x18]
+       test     r14, r14
+       je       G_M15826_IG59
+						;; size=44 bbWeight=4 PerfScore 43.00
+G_M15826_IG45:
+       cmp      gword ptr [rbp-0x68], 0
+       je       SHORT G_M15826_IG48
+       cmp      gword ptr [rbp-0x60], 0
+       je       G_M15826_IG50
+       mov      rdi, qword ptr [r14+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       G_M15826_IG60
+						;; size=38 bbWeight=4 PerfScore 53.00
+G_M15826_IG46:
+       mov      r12, gword ptr [rbp-0x60]
+       cmp      byte  ptr [r12], r12b
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rax, qword ptr [rsi+0x10]
+       test     rax, rax
+       je       G_M15826_IG61
+						;; size=25 bbWeight=4 PerfScore 37.00
+G_M15826_IG47:
+       lea      rdi, [rbp-0x70]
+       call     rax
+       cmp      eax, dword ptr [r12+0x10]
+       je       SHORT G_M15826_IG50
+						;; size=13 bbWeight=4 PerfScore 30.00
+G_M15826_IG48:
+       mov      rdi, qword ptr [r14+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x10]
+       test     rdi, rdi
+       je       G_M15826_IG62
+						;; size=20 bbWeight=4 PerfScore 29.00
+G_M15826_IG49:
+       mov      qword ptr [rbp-0x1D8], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x70]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1D8]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]])
+       call     [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]])
+						;; size=103 bbWeight=4 PerfScore 93.00
+G_M15826_IG50:
+       mov      rdi, gword ptr [rbp-0x58]
+       test     rdi, rdi
+       je       SHORT G_M15826_IG55
+						;; size=9 bbWeight=4 PerfScore 9.00
+G_M15826_IG51:
+       vmovdqu  xmm0, xmmword ptr [rdi+0x20]
+       vmovdqu  xmmword ptr [rbp-0x1C8], xmm0
+						;; size=13 bbWeight=4 PerfScore 20.00
+G_M15826_IG52:
+       mov      rdx, gword ptr [rbp-0x1F0]
+       mov      rdi, gword ptr [rdx+0x10]
        mov      rdi, gword ptr [rdi+0x10]
-       mov      rdx, qword ptr [rbp-0xB0]
-       mov      rsi, qword ptr [rbp-0x20]
+       mov      rdx, qword ptr [rbp-0x1C0]
+       mov      rsi, qword ptr [rbp-0x38]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]:Equals(System.Nullable`1[int],System.Nullable`1[int]):ubyte:this
        call     [r11]System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]:Equals(System.Nullable`1[int],System.Nullable`1[int]):ubyte:this
        test     eax, eax
-       jne      SHORT G_M15826_IG10
-						;; size=79 bbWeight=4 PerfScore 70.00
-G_M15826_IG08:
+       jne      G_M15826_IG63
+						;; size=47 bbWeight=4 PerfScore 46.00
+G_M15826_IG53:
        mov      rsi, r15
-       lea      rdi, [rbp-0xA8]
+       lea      rdi, [rbp-0xC0]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this
        call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this
        test     eax, eax
-       jne      SHORT G_M15826_IG07
-						;; size=26 bbWeight=8 PerfScore 42.00
-G_M15826_IG09:
-       jmp      SHORT G_M15826_IG11
-						;; size=2 bbWeight=1 PerfScore 2.00
-G_M15826_IG10:
-       mov      dword ptr [rbp-0xBC], 1
-       jmp      SHORT G_M15826_IG15
+       jne      G_M15826_IG30
+						;; size=30 bbWeight=8 PerfScore 42.00
+G_M15826_IG54:
+       jmp      G_M15826_IG64
+						;; size=5 bbWeight=1 PerfScore 2.00
+G_M15826_IG55:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M15826_IG56:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M15826_IG57:
+       vmovdqu  xmm0, xmmword ptr [rbp-0x80]
+       vmovdqu  xmmword ptr [rbp-0x1C8], xmm0
+						;; size=13 bbWeight=4 PerfScore 16.00
+G_M15826_IG58:
+       jmp      G_M15826_IG52
+						;; size=5 bbWeight=4 PerfScore 8.00
+G_M15826_IG59:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r14, rax
+       jmp      G_M15826_IG45
+						;; size=23 bbWeight=0.80 PerfScore 2.80
+G_M15826_IG60:
+       mov      rdi, r14
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M15826_IG46
+						;; size=26 bbWeight=0.80 PerfScore 3.00
+G_M15826_IG61:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       jmp      G_M15826_IG47
+						;; size=20 bbWeight=0.80 PerfScore 2.60
+G_M15826_IG62:
+       mov      rdi, r14
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M15826_IG49
+						;; size=26 bbWeight=0.80 PerfScore 3.00
+G_M15826_IG63:
+       mov      dword ptr [rbp-0xC4], 1
+       jmp      SHORT G_M15826_IG68
 						;; size=12 bbWeight=1 PerfScore 3.00
-G_M15826_IG11:
+G_M15826_IG64:
        mov      rdi, qword ptr [rbx+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rax, qword ptr [rdi+0x80]
        test     rax, rax
-       je       SHORT G_M15826_IG13
+       je       SHORT G_M15826_IG66
 						;; size=19 bbWeight=1 PerfScore 7.25
-G_M15826_IG12:
-       jmp      SHORT G_M15826_IG14
+G_M15826_IG65:
+       jmp      SHORT G_M15826_IG67
 						;; size=2 bbWeight=0.80 PerfScore 1.60
-G_M15826_IG13:
+G_M15826_IG66:
        mov      rdi, rbx
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=18 bbWeight=0.20 PerfScore 0.30
-G_M15826_IG14:
-       lea      rdi, [rbp-0xA8]
+G_M15826_IG67:
+       lea      rdi, [rbp-0xC0]
        call     rax
-       jmp      SHORT G_M15826_IG19
+       jmp      SHORT G_M15826_IG72
 						;; size=11 bbWeight=1 PerfScore 5.50
-G_M15826_IG15:
+G_M15826_IG68:
        mov      rdi, rsp
-       call     G_M15826_IG21
+       call     G_M15826_IG75
 						;; size=8 bbWeight=1 PerfScore 1.25
-G_M15826_IG16:
+G_M15826_IG69:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
-G_M15826_IG17:
-       mov      eax, dword ptr [rbp-0xBC]
+G_M15826_IG70:
+       mov      eax, dword ptr [rbp-0xC4]
 						;; size=6 bbWeight=1 PerfScore 1.00
-G_M15826_IG18:
-       add      rsp, 336
+G_M15826_IG71:
+       vzeroupper 
+       add      rsp, 552
        pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=12 bbWeight=1 PerfScore 2.75
-G_M15826_IG19:
+						;; size=21 bbWeight=1 PerfScore 5.25
+G_M15826_IG72:
        xor      eax, eax
 						;; size=2 bbWeight=1 PerfScore 0.25
-G_M15826_IG20:
-       add      rsp, 336
+G_M15826_IG73:
+       vzeroupper 
+       add      rsp, 552
        pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=12 bbWeight=1 PerfScore 2.75
-G_M15826_IG21:
+						;; size=21 bbWeight=1 PerfScore 5.25
+G_M15826_IG74:
+       mov      edi, 0x45F
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M15826_IG75:
        push     rbp
        push     r15
+       push     r14
+       push     r13
+       push     r12
        push     rbx
-       sub      rsp, 16
-       mov      rbp, qword ptr [rdi]
-       mov      qword ptr [rsp], rbp
-       lea      rbp, [rbp+0x160]
-						;; size=22 bbWeight=1 PerfScore 6.75
-G_M15826_IG22:
-       mov      rcx, gword ptr [rbp-0x150]
-       mov      rbx, qword ptr [rcx]
+       sub      rsp, 72
+       mov      rbp, qword ptr [rdi+0x38]
+       mov      qword ptr [rsp+0x38], rbp
+       lea      rbp, [rbp+0x250]
+						;; size=30 bbWeight=1 PerfScore 9.75
+G_M15826_IG76:
+       mov      rdx, gword ptr [rbp-0x1F0]
+       mov      rbx, qword ptr [rdx]
        mov      rdi, rbx
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      rax, qword ptr [rsi+0x80]
        test     rax, rax
-       je       SHORT G_M15826_IG24
+       je       SHORT G_M15826_IG78
 						;; size=32 bbWeight=1 PerfScore 10.50
-G_M15826_IG23:
-       jmp      SHORT G_M15826_IG25
+G_M15826_IG77:
+       jmp      SHORT G_M15826_IG79
 						;; size=2 bbWeight=0.80 PerfScore 1.60
-G_M15826_IG24:
+G_M15826_IG78:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=15 bbWeight=0.20 PerfScore 0.25
-G_M15826_IG25:
-       lea      rdi, [rbp-0xA8]
+G_M15826_IG79:
+       lea      rdi, [rbp-0xC0]
        call     rax
        nop      
 						;; size=10 bbWeight=1 PerfScore 3.75
-G_M15826_IG26:
-       add      rsp, 16
+G_M15826_IG80:
+       vzeroupper 
+       add      rsp, 72
        pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=9 bbWeight=1 PerfScore 2.75
+						;; size=18 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 497, prolog size 91, PerfScore 230.23, instruction count 119, allocated bytes for code 497 (MethodHash=223ec22d) for method System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts)
+; Total bytes of code 1958, prolog size 102, PerfScore 997.27, instruction count 441, allocated bytes for code 1958 (MethodHash=223ec22d) for method System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts)
1449 (292.73 % of base) - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this
 ; Assembly listing for method System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
+; 0 inlinees with PGO data; 11 single block inlinees; 8 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  6,  9   )     ref  ->  [rbp-0x150]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]>
-;  V01 arg1         [V01,T08] (  3,  6   )  struct ( 8) [rbp-0x20]  do-not-enreg[S] single-def <System.Nullable`1[int]>
-;  V02 loc0         [V02    ] (  5, 15   )  struct (136) [rbp-0xA8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
-;  V03 loc1         [V03,T09] (  2,  8   )  struct (16) [rbp-0xB8]  do-not-enreg[SR] multireg-ret must-init ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
-;  V04 loc2         [V04,T18] (  2,  2   )   ubyte  ->  [rbp-0xBC]  do-not-enreg[Z] EH-live
-;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V00 this         [V00,T30] (  6,  9   )     ref  ->  [rbp-0x1F0]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]>
+;  V01 arg1         [V01,T35] (  3,  6   )  struct ( 8) [rbp-0x38]  do-not-enreg[S] single-def <System.Nullable`1[int]>
+;  V02 loc0         [V02    ] ( 17, 63   )  struct (136) [rbp-0xC0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
+;* V03 loc1         [V03    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
+;  V04 loc2         [V04,T67] (  2,  2   )   ubyte  ->  [rbp-0xC4]  do-not-enreg[Z] EH-live
+;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V07 tmp2         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V08 tmp3         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V09 tmp4         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]>
 ;* V10 tmp5         [V10    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Nullable`1[int]>
 ;* V11 tmp6         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V12 tmp7         [V12,T07] (  6,  8   )    long  ->  rax         "Indirect call through function pointer"
-;  V13 tmp8         [V13    ] (  2,  4   )  struct (136) [rbp-0x148]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
-;* V14 tmp9         [V14    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V15 tmp10        [V15,T02] (  2, 16   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableDictionary`2+Comparers[System.__Canon,System.Nullable`1[int]]>
-;* V16 tmp11        [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "field V10.hasValue (fldOffset=0x0)" P-INDEP
-;* V17 tmp12        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V10.value (fldOffset=0x4)" P-INDEP
-;  V18 tmp13        [V18,T17] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V19 tmp14        [V19,T00] (  2, 32   )    long  ->  rsi         "argument with side effect"
-;  V20 tmp15        [V20,T03] (  2, 16   )    long  ->  rsi         "argument with side effect"
-;  V21 PSPSym       [V21,T19] (  1,  1   )    long  ->  [rbp-0x160]  do-not-enreg[V] "PSPSym"
-;  V22 cse0         [V22,T04] (  4, 14   )    long  ->  r15         "CSE #02: aggressive"
-;  V23 cse1         [V23,T06] (  6,  5.20)    long  ->  rbx         multi-def "CSE #01: aggressive"
-;  V24 rat0         [V24,T14] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
-;  V25 rat1         [V25,T16] (  3,  4   )    long  ->  r15         "runtime lookup"
-;  V26 rat2         [V26,T11] (  3,  5.60)    long  ->  r15         "fgMakeTemp is creating a new local variable"
-;* V27 rat3         [V27,T10] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V28 rat4         [V28,T01] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V29 rat5         [V29,T12] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V30 rat6         [V30,T15] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
-;  V31 rat7         [V31,T13] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V12 tmp7         [V12,T33] (  6,  8   )    long  ->  rax         "Indirect call through function pointer"
+;  V13 tmp8         [V13    ] (  4,  8   )  struct (136) [rbp-0x150]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
+;  V14 tmp9         [V14,T48] (  3,  4.40)    long  ->  rdi         "spilling helperCall"
+;  V15 tmp10        [V15,T34] (  4,  8   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V16 tmp11        [V16    ] ( 14, 28   )  struct (32) [rbp-0x170]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;* V17 tmp12        [V17    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V18 tmp13        [V18    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref   
+;* V20 tmp15        [V20    ] (  0,  0   )   byref  ->  zero-ref   
+;* V21 tmp16        [V21    ] (  0,  0   )     int  ->  zero-ref   
+;  V22 tmp17        [V22,T32] (  6,  8.80)    long  ->  r12         "Inlining Arg"
+;* V23 tmp18        [V23    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V24 tmp19        [V24    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V25 tmp20        [V25,T59] (  2,  4   )  struct (32) [rbp-0x190]  do-not-enreg[S] must-init "impAppendStmt" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V26 tmp21        [V26,T38] (  3,  6   )     ref  ->  [rbp-0x1F8]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;* V27 tmp22        [V27    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V28 tmp23        [V28    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V29 tmp24        [V29,T57] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;* V30 tmp25        [V30,T68] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V31 tmp26        [V31    ] (  3,  6   )  struct (32) [rbp-0x1B0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
+;  V32 tmp27        [V32,T37] (  5,  6.80)    long  ->  [rbp-0x1B8]  spill-single-def "Inlining Arg"
+;* V33 tmp28        [V33    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V34 tmp29        [V34,T60] (  2,  4   )    long  ->  rdx         "Indirect call through function pointer"
+;* V35 tmp30        [V35    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V36 tmp31        [V36    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V37 tmp32        [V37,T61] (  2,  4   )    long  ->  r14         "Indirect call through function pointer"
+;  V38 tmp33        [V38,T58] (  2,  4   )     ref  ->  [rbp-0x200]  class-hnd exact spill-single-def "non-inline candidate call" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V39 tmp34        [V39,T62] (  2,  4   )     int  ->  rax         "Inlining Arg"
+;  V40 tmp35        [V40,T17] (  3, 17.60)    long  ->  r14         "Inlining Arg"
+;* V41 tmp36        [V41    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V42 tmp37        [V42,T14] (  4, 17.60)    long  ->  rdi         "spilling helperCall"
+;  V43 tmp38        [V43,T02] (  5, 27.20)    long  ->  r12         "Inlining Arg"
+;* V44 tmp39        [V44    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V45 tmp40        [V45,T15] (  4, 17.60)    long  ->  rdi         "spilling helperCall"
+;* V46 tmp41        [V46    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V47 tmp42        [V47    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V48 tmp43        [V48,T18] (  3, 16   )    long  ->  rcx         "Indirect call through function pointer"
+;  V49 tmp44        [V49,T03] (  3, 24   )     ref  ->  [rbp-0x208]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V50 tmp45        [V50,T28] (  3, 12   )     int  ->  rsi         "Inline stloc first use temp"
+;  V51 tmp46        [V51,T29] (  3, 12   )  struct (16) [rbp-0x1C8]  do-not-enreg[S] must-init "Inline stloc first use temp" <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
+;* V52 tmp47        [V52    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V53 tmp48        [V53    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V54 tmp49        [V54,T70] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;* V55 tmp50        [V55    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V56 tmp51        [V56,T71] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;  V57 tmp52        [V57,T01] (  6, 27.20)    long  ->  r14         "Inlining Arg"
+;* V58 tmp53        [V58    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V59 tmp54        [V59,T16] (  4, 17.60)    long  ->  rdi         "spilling helperCall"
+;* V60 tmp55        [V60    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V61 tmp56        [V61    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V62 tmp57        [V62,T19] (  3, 16   )    long  ->  rax         "Indirect call through function pointer"
+;  V63 tmp58        [V63,T04] (  3, 24   )     ref  ->  r12         class-hnd exact "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V64 tmp59        [V64,T22] (  2, 16   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]>
+;  V65 tmp60        [V65,T23] (  2, 16   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableDictionary`2+Comparers[System.__Canon,System.Nullable`1[int]]>
+;* V66 tmp61        [V66    ] (  0,  0   )   ubyte  ->  zero-ref    "field V10.hasValue (fldOffset=0x0)" P-INDEP
+;* V67 tmp62        [V67    ] (  0,  0   )     int  ->  zero-ref    "field V10.value (fldOffset=0x4)" P-INDEP
+;  V68 tmp63        [V68    ] (  7, 11   )     ref  ->  [rbp-0x170]  do-not-enreg[X] addr-exposed "field V16._root (fldOffset=0x0)" P-DEP
+;  V69 tmp64        [V69    ] (  9, 13   )     ref  ->  [rbp-0x168]  do-not-enreg[X] addr-exposed "field V16._stack (fldOffset=0x8)" P-DEP
+;  V70 tmp65        [V70    ] (  5,  9   )     ref  ->  [rbp-0x160]  do-not-enreg[X] addr-exposed "field V16._current (fldOffset=0x10)" P-DEP
+;  V71 tmp66        [V71    ] (  5,  9   )     int  ->  [rbp-0x158]  do-not-enreg[X] addr-exposed "field V16._poolUserId (fldOffset=0x18)" P-DEP
+;  V72 tmp67        [V72,T63] (  2,  4   )    long  ->  rdi         "argument with side effect"
+;  V73 tmp68        [V73,T64] (  2,  4   )    long  ->  r14         "argument with side effect"
+;  V74 tmp69        [V74,T00] (  2, 32   )    long  ->  rsi         "argument with side effect"
+;  V75 tmp70        [V75,T24] (  2, 16   )    long  ->  [rbp-0x1D0]  spill-single-def "argument with side effect"
+;  V76 tmp71        [V76,T25] (  2, 16   )    long  ->  [rbp-0x1D8]  spill-single-def "argument with side effect"
+;  V77 PSPSym       [V77,T69] (  1,  1   )    long  ->  [rbp-0x218]  do-not-enreg[V] "PSPSym"
+;  V78 cse0         [V78,T26] (  4, 14   )    long  ->  r15         "CSE #04: moderate"
+;  V79 cse1         [V79,T39] (  3,  6   )    long  ->  r13         "CSE #05: moderate"
+;  V80 cse2         [V80,T65] (  3,  3   )    long  ->  [rbp-0x1E0]  spill-single-def "CSE #01: moderate"
+;  V81 cse3         [V81,T66] (  3,  3   )    long  ->  [rbp-0x1E8]  spill-single-def "CSE #02: moderate"
+;  V82 cse4         [V82,T31] (  6,  5.20)    long  ->  rbx         multi-def "CSE #03: moderate"
+;  V83 cse5         [V83,T27] (  3, 12   )     ref  ->  rdi         "CSE #08: moderate"
+;  V84 rat0         [V84,T49] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
+;  V85 rat1         [V85,T51] (  3,  4   )    long  ->  r15         "runtime lookup"
+;  V86 rat2         [V86,T40] (  3,  5.60)    long  ->  r15         "fgMakeTemp is creating a new local variable"
+;  V87 rat3         [V87,T52] (  3,  4   )    long  ->  r13         "runtime lookup"
+;  V88 rat4         [V88,T41] (  3,  5.60)    long  ->  r13         "fgMakeTemp is creating a new local variable"
+;  V89 rat5         [V89,T53] (  3,  4   )    long  ->  rax         "runtime lookup"
+;  V90 rat6         [V90,T42] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V91 rat7         [V91,T54] (  3,  4   )    long  ->  registers   "runtime lookup"
+;  V92 rat8         [V92,T43] (  3,  5.60)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V93 rat9         [V93,T55] (  3,  4   )    long  ->  rdi         "runtime lookup"
+;  V94 rat10        [V94,T44] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V95 rat11        [V95,T56] (  3,  4   )    long  ->  rdi         "runtime lookup"
+;  V96 rat12        [V96,T45] (  3,  5.60)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V97 rat13        [V97,T05] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V98 rat14        [V98,T06] (  3, 22.40)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V99 rat15        [V99,T20] (  3, 16   )    long  ->  rdi         "runtime lookup"
+;  V100 rat16       [V100,T07] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V101 rat17       [V101,T08] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V102 rat18       [V102,T09] (  3, 22.40)    long  ->  r14         "fgMakeTemp is creating a new local variable"
+;  V103 rat19       [V103,T10] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V104 rat20       [V104,T11] (  3, 22.40)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V105 rat21       [V105,T21] (  3, 16   )    long  ->  rdi         "runtime lookup"
+;  V106 rat22       [V106,T12] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V107 rat23       [V107,T36] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V108 rat24       [V108,T13] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V109 rat25       [V109,T46] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V110 rat26       [V110,T50] (  3,  4.40)    long  ->  rdi         "Spilling to split statement for tree"
+;  V111 rat27       [V111,T47] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 336
+; Lcl frame size = 552
 
 G_M39000_IG01:
        push     rbp
        push     r15
+       push     r14
+       push     r13
+       push     r12
        push     rbx
-       sub      rsp, 336
-       lea      rbp, [rsp+0x160]
+       sub      rsp, 552
+       lea      rbp, [rsp+0x250]
        xor      eax, eax
-       mov      qword ptr [rbp-0x148], rax
+       mov      qword ptr [rbp-0x1C8], rax
        vxorps   xmm8, xmm8, xmm8
-       mov      rax, -288
+       mov      rax, -384
+       vmovdqa  xmmword ptr [rbp+rax-0x40], xmm8
+       vmovdqa  xmmword ptr [rbp+rax-0x30], xmm8
        vmovdqa  xmmword ptr [rbp+rax-0x20], xmm8
-       vmovdqa  xmmword ptr [rbp+rax-0x10], xmm8
-       vmovdqa  xmmword ptr [rax+rbp], xmm8
        add      rax, 48
        jne      SHORT  -5 instr
-       mov      qword ptr [rbp-0x160], rsp
-       mov      qword ptr [rbp-0x18], rdi
-       mov      gword ptr [rbp-0x150], rdi
-       mov      qword ptr [rbp-0x20], rsi
+       mov      qword ptr [rbp-0x40], rax
+       mov      qword ptr [rbp-0x218], rsp
+       mov      qword ptr [rbp-0x30], rdi
+       mov      gword ptr [rbp-0x1F0], rdi
+       mov      qword ptr [rbp-0x38], rsi
        mov      rdx, rdi
-						;; size=91 bbWeight=1 PerfScore 17.08
+						;; size=102 bbWeight=1 PerfScore 21.08
 G_M39000_IG02:
        mov      rbx, qword ptr [rdx]
        mov      rdi, rbx
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      r15, qword ptr [rsi+0xB8]
        test     r15, r15
        je       SHORT G_M39000_IG04
 						;; size=25 bbWeight=1 PerfScore 9.50
 G_M39000_IG03:
        jmp      SHORT G_M39000_IG05
 						;; size=2 bbWeight=0.80 PerfScore 1.60
 G_M39000_IG04:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      r15, rax
 						;; size=18 bbWeight=0.20 PerfScore 0.30
 G_M39000_IG05:
-       mov      rsi, r15
-       mov      rdx, gword ptr [rbp-0x150]
-       mov      rdx, gword ptr [rdx+0x08]
-       lea      rdi, [rbp-0x148]
-       xor      rcx, rcx
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]):this
-       call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]):this
-       lea      rdi, bword ptr [rbp-0xA8]
-       lea      rsi, bword ptr [rbp-0x148]
-       mov      ecx, 17
-       rep movsq 
-						;; size=57 bbWeight=1 PerfScore 33.50
+       mov      rdi, r15
+       mov      rdx, gword ptr [rbp-0x1F0]
+       mov      r14, gword ptr [rdx+0x08]
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      r13, qword ptr [rsi+0x18]
+       test     r13, r13
+       je       SHORT G_M39000_IG07
+						;; size=30 bbWeight=1 PerfScore 10.50
 G_M39000_IG06:
        jmp      SHORT G_M39000_IG08
-						;; size=2 bbWeight=1 PerfScore 2.00
+						;; size=2 bbWeight=0.80 PerfScore 1.60
 G_M39000_IG07:
-       mov      rsi, r15
-       lea      rdi, [rbp-0xA8]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:get_Current():System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]:this
-       call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:get_Current():System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]:this
-       mov      gword ptr [rbp-0xB8], rax
-       mov      qword ptr [rbp-0xB0], rdx
-       mov      rdx, gword ptr [rbp-0x150]
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r13, rax
+						;; size=18 bbWeight=0.20 PerfScore 0.30
+G_M39000_IG08:
+       mov      r12, r13
+       test     r14, r14
+       je       G_M39000_IG74
+       mov      gword ptr [rbp-0x170], r14
+       xor      rax, rax
+       mov      gword ptr [rbp-0x160], rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool:NewId():int
+       call     [rax]System.Collections.Immutable.SecureObjectPool:NewId():int
+       mov      dword ptr [rbp-0x158], eax
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x168], rdi
+       mov      rdi, gword ptr [rbp-0x170]
+       cmp      gword ptr [rdi+0x08], 0
+       je       G_M39000_IG27
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rax, qword ptr [rdi+0x18]
+       test     rax, rax
+       je       SHORT G_M39000_IG10
+						;; size=90 bbWeight=1 PerfScore 21.50
+G_M39000_IG09:
+       jmp      SHORT G_M39000_IG11
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M39000_IG10:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+						;; size=18 bbWeight=0.20 PerfScore 0.30
+G_M39000_IG11:
+       mov      rdi, rax
+       mov      qword ptr [rbp-0x1E8], rdi
+       mov      rax, rdi
+       mov      qword ptr [rbp-0x1B8], rax
+						;; size=20 bbWeight=1 PerfScore 2.50
+G_M39000_IG12:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x170]
+       vmovdqu  ymmword ptr [rbp-0x1B0], ymm0
+						;; size=16 bbWeight=1 PerfScore 5.00
+G_M39000_IG13:
+       mov      rsi, qword ptr [rax+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rcx, qword ptr [rsi+0x18]
+       test     rcx, rcx
+       je       SHORT G_M39000_IG15
+						;; size=16 bbWeight=1 PerfScore 7.25
+G_M39000_IG14:
+       jmp      SHORT G_M39000_IG16
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M39000_IG15:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rcx, rax
+						;; size=21 bbWeight=0.20 PerfScore 0.35
+G_M39000_IG16:
+       mov      qword ptr [rbp-0x1E0], rcx
+       mov      rdx, rcx
+       lea      rdi, [rbp-0x1B0]
+       call     rdx
+       cmp      eax, -1
+       je       SHORT G_M39000_IG20
+       mov      rdi, qword ptr [rbp-0x1B8]
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      rax, qword ptr [rsi+0x20]
+       test     rax, rax
+       je       SHORT G_M39000_IG18
+						;; size=47 bbWeight=1 PerfScore 14.25
+G_M39000_IG17:
+       mov      rdi, rax
+       jmp      SHORT G_M39000_IG19
+						;; size=5 bbWeight=0.80 PerfScore 1.80
+G_M39000_IG18:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=18 bbWeight=0.20 PerfScore 0.30
+G_M39000_IG19:
+       lea      rsi, [rbp-0x168]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       call     [rax]System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte
+       test     eax, eax
+       je       SHORT G_M39000_IG20
+       mov      r14, qword ptr [rbp-0x1E0]
+       mov      rax, gword ptr [rbp-0x168]
+       mov      gword ptr [rbp-0x200], rax
+       lea      rdi, [rbp-0x1B0]
+       call     r14
+       mov      r14, gword ptr [rbp-0x200]
+       mov      dword ptr [r14+0x10], eax
+       jmp      G_M39000_IG26
+						;; size=70 bbWeight=1 PerfScore 15.50
+G_M39000_IG20:
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x168], rdi
+						;; size=9 bbWeight=1 PerfScore 1.25
+G_M39000_IG21:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x170]
+       vmovdqu  ymmword ptr [rbp-0x190], ymm0
+						;; size=16 bbWeight=1 PerfScore 5.00
+G_M39000_IG22:
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M39000_IG24
+						;; size=17 bbWeight=1 PerfScore 7.25
+G_M39000_IG23:
+       jmp      SHORT G_M39000_IG25
+						;; size=2 bbWeight=0.80 PerfScore 1.60
+G_M39000_IG24:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.20 PerfScore 0.35
+G_M39000_IG25:
+       call     CORINFO_HELP_NEWSFAST
+       mov      gword ptr [rbp-0x1F8], rax
+       movzx    rsi, byte  ptr [r14+0x1D]
+       mov      rdi, rax
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       call     [rcx]System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this
+       mov      r14, qword ptr [rbp-0x1E8]
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x190]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, r14
+       mov      rsi, gword ptr [rbp-0x1F8]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       call     [rax]System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon]
+       mov      gword ptr [rbp-0x168], rax
+						;; size=128 bbWeight=1 PerfScore 26.50
+G_M39000_IG26:
+       lea      rdi, [rbp-0x170]
+       mov      rsi, r12
+       mov      rdx, gword ptr [rbp-0x170]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]):this
+       call     [rax]System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]):this
+						;; size=29 bbWeight=1 PerfScore 5.00
+G_M39000_IG27:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x170]
+       vmovdqu  ymmword ptr [rbp-0x140], ymm0
+						;; size=16 bbWeight=1 PerfScore 5.00
+G_M39000_IG28:
+       vxorps   ymm0, ymm0, ymm0
+       vmovdqu  ymmword ptr [rbp-0x120], ymm0
+       vmovdqu  ymmword ptr [rbp-0x100], ymm0
+       vmovdqu  ymmword ptr [rbp-0xE8], ymm0
+       mov      dword ptr [rbp-0x148], -1
+       lea      rdi, bword ptr [rbp-0xC0]
+       lea      rsi, bword ptr [rbp-0x150]
+       mov      ecx, 17
+       rep movsq 
+						;; size=60 bbWeight=1 PerfScore 30.58
+G_M39000_IG29:
+       jmp      G_M39000_IG53
+						;; size=5 bbWeight=1 PerfScore 2.00
+G_M39000_IG30:
+       mov      r14, r15
+       mov      r12, r13
+       cmp      gword ptr [rbp-0xB0], 0
+       je       G_M39000_IG37
+       cmp      gword ptr [rbp-0xA8], 0
+       je       G_M39000_IG41
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x30]
+       test     rdi, rdi
+       je       SHORT G_M39000_IG32
+						;; size=51 bbWeight=4 PerfScore 55.00
+G_M39000_IG31:
+       jmp      SHORT G_M39000_IG33
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M39000_IG32:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.80 PerfScore 1.40
+G_M39000_IG33:
+       mov      rax, gword ptr [rbp-0xA8]
+       mov      gword ptr [rbp-0x208], rax
+       cmp      byte  ptr [rax], al
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rcx, qword ptr [rsi+0x10]
+       test     rcx, rcx
+       je       SHORT G_M39000_IG35
+						;; size=29 bbWeight=4 PerfScore 41.00
+G_M39000_IG34:
+       jmp      SHORT G_M39000_IG36
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M39000_IG35:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rcx, rax
+						;; size=18 bbWeight=0.80 PerfScore 1.20
+G_M39000_IG36:
+       lea      rdi, [rbp-0xB0]
+       call     rcx
+       mov      rdi, gword ptr [rbp-0x208]
+       cmp      eax, dword ptr [rdi+0x10]
+       je       G_M39000_IG41
+						;; size=25 bbWeight=4 PerfScore 34.00
+G_M39000_IG37:
+       mov      rdi, qword ptr [r12+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x28]
+       test     rdi, rdi
+       je       SHORT G_M39000_IG39
+						;; size=17 bbWeight=4 PerfScore 29.00
+G_M39000_IG38:
+       jmp      SHORT G_M39000_IG40
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M39000_IG39:
+       mov      rdi, r12
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.80 PerfScore 1.40
+G_M39000_IG40:
+       mov      qword ptr [rbp-0x1D0], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0xB0]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1D0]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]])
+       call     [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]])
+						;; size=86 bbWeight=4 PerfScore 71.00
+G_M39000_IG41:
+       mov      rdi, qword ptr [r14+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M39000_IG43
+						;; size=16 bbWeight=4 PerfScore 29.00
+G_M39000_IG42:
+       jmp      SHORT G_M39000_IG44
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M39000_IG43:
+       mov      rdi, r14
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.80 PerfScore 1.40
+G_M39000_IG44:
+       mov      esi, dword ptr [rbp-0x90]
+       cmp      esi, 1
+       je       G_M39000_IG57
+       cmp      esi, 2
+       jne      G_M39000_IG56
+       mov      rsi, qword ptr [rdi+0x30]
+       mov      rsi, qword ptr [rsi]
+       mov      r14, qword ptr [rsi+0x18]
+       test     r14, r14
+       je       G_M39000_IG59
+						;; size=44 bbWeight=4 PerfScore 43.00
+G_M39000_IG45:
+       cmp      gword ptr [rbp-0x68], 0
+       je       SHORT G_M39000_IG48
+       cmp      gword ptr [rbp-0x60], 0
+       je       G_M39000_IG50
+       mov      rdi, qword ptr [r14+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       G_M39000_IG60
+						;; size=38 bbWeight=4 PerfScore 53.00
+G_M39000_IG46:
+       mov      r12, gword ptr [rbp-0x60]
+       cmp      byte  ptr [r12], r12b
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rax, qword ptr [rsi+0x10]
+       test     rax, rax
+       je       G_M39000_IG61
+						;; size=25 bbWeight=4 PerfScore 37.00
+G_M39000_IG47:
+       lea      rdi, [rbp-0x70]
+       call     rax
+       cmp      eax, dword ptr [r12+0x10]
+       je       SHORT G_M39000_IG50
+						;; size=13 bbWeight=4 PerfScore 30.00
+G_M39000_IG48:
+       mov      rdi, qword ptr [r14+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x10]
+       test     rdi, rdi
+       je       G_M39000_IG62
+						;; size=20 bbWeight=4 PerfScore 29.00
+G_M39000_IG49:
+       mov      qword ptr [rbp-0x1D8], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x70]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       movsq    
+       movsq    
+       mov      rdi, qword ptr [rbp-0x1D8]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]])
+       call     [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]])
+						;; size=103 bbWeight=4 PerfScore 93.00
+G_M39000_IG50:
+       mov      rdi, gword ptr [rbp-0x58]
+       test     rdi, rdi
+       je       SHORT G_M39000_IG55
+						;; size=9 bbWeight=4 PerfScore 9.00
+G_M39000_IG51:
+       vmovdqu  xmm0, xmmword ptr [rdi+0x20]
+       vmovdqu  xmmword ptr [rbp-0x1C8], xmm0
+						;; size=13 bbWeight=4 PerfScore 20.00
+G_M39000_IG52:
+       mov      rdx, gword ptr [rbp-0x1F0]
        mov      rdi, gword ptr [rdx+0x10]
        mov      rdi, gword ptr [rdi+0x10]
-       mov      rdx, qword ptr [rbp-0xB0]
-       mov      rsi, qword ptr [rbp-0x20]
+       mov      rdx, qword ptr [rbp-0x1C0]
+       mov      rsi, qword ptr [rbp-0x38]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]:Equals(System.Nullable`1[int],System.Nullable`1[int]):ubyte:this
        call     [r11]System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]:Equals(System.Nullable`1[int],System.Nullable`1[int]):ubyte:this
        test     eax, eax
-       jne      SHORT G_M39000_IG10
-						;; size=79 bbWeight=4 PerfScore 70.00
-G_M39000_IG08:
+       jne      G_M39000_IG63
+						;; size=47 bbWeight=4 PerfScore 46.00
+G_M39000_IG53:
        mov      rsi, r15
-       lea      rdi, [rbp-0xA8]
+       lea      rdi, [rbp-0xC0]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this
        call     [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this
        test     eax, eax
-       jne      SHORT G_M39000_IG07
-						;; size=26 bbWeight=8 PerfScore 42.00
-G_M39000_IG09:
-       jmp      SHORT G_M39000_IG11
-						;; size=2 bbWeight=1 PerfScore 2.00
-G_M39000_IG10:
-       mov      dword ptr [rbp-0xBC], 1
-       jmp      SHORT G_M39000_IG15
+       jne      G_M39000_IG30
+						;; size=30 bbWeight=8 PerfScore 42.00
+G_M39000_IG54:
+       jmp      G_M39000_IG64
+						;; size=5 bbWeight=1 PerfScore 2.00
+G_M39000_IG55:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M39000_IG56:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M39000_IG57:
+       vmovdqu  xmm0, xmmword ptr [rbp-0x80]
+       vmovdqu  xmmword ptr [rbp-0x1C8], xmm0
+						;; size=13 bbWeight=4 PerfScore 16.00
+G_M39000_IG58:
+       jmp      G_M39000_IG52
+						;; size=5 bbWeight=4 PerfScore 8.00
+G_M39000_IG59:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      r14, rax
+       jmp      G_M39000_IG45
+						;; size=23 bbWeight=0.80 PerfScore 2.80
+G_M39000_IG60:
+       mov      rdi, r14
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M39000_IG46
+						;; size=26 bbWeight=0.80 PerfScore 3.00
+G_M39000_IG61:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       jmp      G_M39000_IG47
+						;; size=20 bbWeight=0.80 PerfScore 2.60
+G_M39000_IG62:
+       mov      rdi, r14
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       jmp      G_M39000_IG49
+						;; size=26 bbWeight=0.80 PerfScore 3.00
+G_M39000_IG63:
+       mov      dword ptr [rbp-0xC4], 1
+       jmp      SHORT G_M39000_IG68
 						;; size=12 bbWeight=1 PerfScore 3.00
-G_M39000_IG11:
+G_M39000_IG64:
        mov      rdi, qword ptr [rbx+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rax, qword ptr [rdi+0xC8]
        test     rax, rax
-       je       SHORT G_M39000_IG13
+       je       SHORT G_M39000_IG66
 						;; size=19 bbWeight=1 PerfScore 7.25
-G_M39000_IG12:
-       jmp      SHORT G_M39000_IG14
+G_M39000_IG65:
+       jmp      SHORT G_M39000_IG67
 						;; size=2 bbWeight=0.80 PerfScore 1.60
-G_M39000_IG13:
+G_M39000_IG66:
        mov      rdi, rbx
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=18 bbWeight=0.20 PerfScore 0.30
-G_M39000_IG14:
-       lea      rdi, [rbp-0xA8]
+G_M39000_IG67:
+       lea      rdi, [rbp-0xC0]
        call     rax
-       jmp      SHORT G_M39000_IG19
+       jmp      SHORT G_M39000_IG72
 						;; size=11 bbWeight=1 PerfScore 5.50
-G_M39000_IG15:
+G_M39000_IG68:
        mov      rdi, rsp
-       call     G_M39000_IG21
+       call     G_M39000_IG75
 						;; size=8 bbWeight=1 PerfScore 1.25
-G_M39000_IG16:
+G_M39000_IG69:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
-G_M39000_IG17:
-       mov      eax, dword ptr [rbp-0xBC]
+G_M39000_IG70:
+       mov      eax, dword ptr [rbp-0xC4]
 						;; size=6 bbWeight=1 PerfScore 1.00
-G_M39000_IG18:
-       add      rsp, 336
+G_M39000_IG71:
+       vzeroupper 
+       add      rsp, 552
        pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=12 bbWeight=1 PerfScore 2.75
-G_M39000_IG19:
+						;; size=21 bbWeight=1 PerfScore 5.25
+G_M39000_IG72:
        xor      eax, eax
 						;; size=2 bbWeight=1 PerfScore 0.25
-G_M39000_IG20:
-       add      rsp, 336
+G_M39000_IG73:
+       vzeroupper 
+       add      rsp, 552
        pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=12 bbWeight=1 PerfScore 2.75
-G_M39000_IG21:
+						;; size=21 bbWeight=1 PerfScore 5.25
+G_M39000_IG74:
+       mov      edi, 0x45F
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M39000_IG75:
        push     rbp
        push     r15
+       push     r14
+       push     r13
+       push     r12
        push     rbx
-       sub      rsp, 16
-       mov      rbp, qword ptr [rdi]
-       mov      qword ptr [rsp], rbp
-       lea      rbp, [rbp+0x160]
-						;; size=22 bbWeight=1 PerfScore 6.75
-G_M39000_IG22:
-       mov      rdx, gword ptr [rbp-0x150]
+       sub      rsp, 72
+       mov      rbp, qword ptr [rdi+0x38]
+       mov      qword ptr [rsp+0x38], rbp
+       lea      rbp, [rbp+0x250]
+						;; size=30 bbWeight=1 PerfScore 9.75
+G_M39000_IG76:
+       mov      rdx, gword ptr [rbp-0x1F0]
        mov      rbx, qword ptr [rdx]
        mov      rdi, rbx
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      rax, qword ptr [rsi+0xC8]
        test     rax, rax
-       je       SHORT G_M39000_IG24
+       je       SHORT G_M39000_IG78
 						;; size=32 bbWeight=1 PerfScore 10.50
-G_M39000_IG23:
-       jmp      SHORT G_M39000_IG25
+G_M39000_IG77:
+       jmp      SHORT G_M39000_IG79
 						;; size=2 bbWeight=0.80 PerfScore 1.60
-G_M39000_IG24:
+G_M39000_IG78:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=15 bbWeight=0.20 PerfScore 0.25
-G_M39000_IG25:
-       lea      rdi, [rbp-0xA8]
+G_M39000_IG79:
+       lea      rdi, [rbp-0xC0]
        call     rax
        nop      
 						;; size=10 bbWeight=1 PerfScore 3.75
-G_M39000_IG26:
-       add      rsp, 16
+G_M39000_IG80:
+       vzeroupper 
+       add      rsp, 72
        pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=9 bbWeight=1 PerfScore 2.75
+						;; size=18 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 495, prolog size 91, PerfScore 229.48, instruction count 119, allocated bytes for code 495 (MethodHash=45b467a7) for method System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts)
+; Total bytes of code 1944, prolog size 102, PerfScore 992.77, instruction count 437, allocated bytes for code 1944 (MethodHash=45b467a7) for method System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts)
1346 (246.97 % of base) - System.Collections.Immutable.ImmutableSortedDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:set_KeyComparer(System.Collections.Generic.IComparer`1[System.__Canon]):this
 ; Assembly listing for method System.Collections.Immutable.ImmutableSortedDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:set_KeyComparer(System.Collections.Generic.IComparer`1[System.__Canon]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 14 single block inlinees; 11 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] ( 15, 10.50)     ref  ->  [rbp-0x78]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableSortedDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]>
-;  V01 arg1         [V01,T03] (  6,  6.50)     ref  ->  rbx         class-hnd single-def <System.Collections.Generic.IComparer`1[System.__Canon]>
-;  V02 loc0         [V02,T10] (  5,  5.50)     ref  ->  r14         class-hnd <System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]>
-;  V03 loc1         [V03,T11] (  4,  5   )     int  ->  r13        
-;  V04 loc2         [V04    ] (  5,  7   )  struct (40) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
-;  V05 loc3         [V05,T08] (  3,  6   )  struct (16) [rbp-0x68]  do-not-enreg[SFR] multireg-ret must-init ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
-;  V06 loc4         [V06    ] (  2,  4   )   ubyte  ->  [rbp-0x70]  do-not-enreg[X] addr-exposed ld-addr-op
-;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V00 this         [V00,T11] ( 15, 10.50)     ref  ->  [rbp-0xD0]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableSortedDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]>
+;  V01 arg1         [V01,T36] (  6,  6.50)     ref  ->  rbx         class-hnd single-def <System.Collections.Generic.IComparer`1[System.__Canon]>
+;  V02 loc0         [V02,T30] (  5,  5.50)     ref  ->  r14         class-hnd <System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]>
+;  V03 loc1         [V03,T51] (  4,  5   )     int  ->  r13        
+;  V04 loc2         [V04    ] ( 24, 59   )  struct (40) [rbp-0x58]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
+;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
+;  V06 loc4         [V06    ] (  2,  4   )   ubyte  ->  [rbp-0x60]  do-not-enreg[X] addr-exposed ld-addr-op
+;  V07 OutArgs      [V07    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V08 tmp1         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V09 tmp2         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V10 tmp3         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V11 tmp4         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V12 tmp5         [V12    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V13 tmp6         [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V14 tmp7         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.__Canon>
 ;* V15 tmp8         [V15    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Nullable`1[int]>
 ;* V16 tmp9         [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V17 tmp10        [V17,T16] (  6,  2   )    long  ->  rax         "Indirect call through function pointer"
-;* V18 tmp11        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "field V15.hasValue (fldOffset=0x0)" P-INDEP
-;* V19 tmp12        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V15.value (fldOffset=0x4)" P-INDEP
-;  V20 tmp13        [V20,T00] (  2, 16   )    long  ->  rsi         "argument with side effect"
-;  V21 tmp14        [V21,T05] (  2,  8   )    long  ->  rsi         "argument with side effect"
-;  V22 PSPSym       [V22,T21] (  1,  1   )    long  ->  [rbp-0x80]  do-not-enreg[V] "PSPSym"
-;  V23 cse0         [V23,T06] (  3,  6.50)    long  ->  r12         hoist "CSE #02: aggressive"
-;* V24 cse1         [V24,T20] (  0,  0   )    long  ->  zero-ref    "CSE #03: aggressive"
-;  V25 cse2         [V25,T07] (  9,  2.80)    long  ->  r15         multi-def "CSE #01: aggressive"
-;* V26 rat0         [V26,T12] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
-;* V27 rat1         [V27,T19] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V28 rat2         [V28,T09] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V29 rat3         [V29,T17] (  3,  2   )    long  ->  rsi         "runtime lookup"
-;  V30 rat4         [V30,T13] (  3,  2.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
-;  V31 rat5         [V31,T18] (  3,  2   )    long  ->  r12         "runtime lookup"
-;  V32 rat6         [V32,T14] (  3,  2.80)    long  ->  r12         "fgMakeTemp is creating a new local variable"
-;* V33 rat7         [V33,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V34 rat8         [V34,T02] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V35 rat9         [V35,T15] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V36 rat10        [V36,T22] (  3,  0   )    long  ->  r15         "Spilling to split statement for tree"
-;  V37 rat11        [V37,T23] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V17 tmp10        [V17,T67] (  6,  2   )    long  ->  rax         "Indirect call through function pointer"
+;  V18 tmp11        [V18,T61] (  3,  3   )     ref  ->  r12         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]>
+;  V19 tmp12        [V19    ] (  2,  2   )  struct (40) [rbp-0x88]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
+;* V20 tmp13        [V20    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V21 tmp14        [V21    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V22 tmp15        [V22,T75] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;  V23 tmp16        [V23,T10] (  5, 13.60)    long  ->  [rbp-0x90]  spill-single-def "Inlining Arg"
+;* V24 tmp17        [V24    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V25 tmp18        [V25,T31] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V26 tmp19        [V26    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V27 tmp20        [V27    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V28 tmp21        [V28,T37] (  3,  8   )    long  ->  rdx         "Indirect call through function pointer"
+;  V29 tmp22        [V29,T12] (  3, 12   )     ref  ->  [rbp-0xD8]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V30 tmp23        [V30,T06] (  5, 20   )     ref  ->  rdx         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]>
+;* V31 tmp24        [V31    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
+;* V32 tmp25        [V32    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V33 tmp26        [V33,T13] (  3, 12   )     ref  ->  rsi         class-hnd "Inlining Arg" <System.__Canon>
+;* V34 tmp27        [V34    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Nullable`1[int]>
+;* V35 tmp28        [V35    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V36 tmp29        [V36    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V37 tmp30        [V37,T14] (  3, 12   )     ref  ->   r8         class-hnd "Inlining Arg" <System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]>
+;  V38 tmp31        [V38    ] (  1,  2   )   ubyte  ->  [rbp-0x98]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;* V39 tmp32        [V39,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V40 tmp33        [V40,T00] (  8, 35.20)    long  ->  [rbp-0xA0]  spill-single-def "Inlining Arg"
+;* V41 tmp34        [V41    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V42 tmp35        [V42,T15] (  3, 12   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;* V43 tmp36        [V43    ] (  0,  0   )  struct ( 8) zero-ref    "location for address-of(RValue)" <System.Collections.Immutable.RefAsValueType`1[System.__Canon]>
+;* V44 tmp37        [V44    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]>
+;* V45 tmp38        [V45    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V46 tmp39        [V46    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V47 tmp40        [V47,T32] (  4,  8.80)    long  ->  rdi         "spilling helperCall"
+;* V48 tmp41        [V48    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V49 tmp42        [V49    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V50 tmp43        [V50,T38] (  3,  8   )    long  ->  rdx         "Indirect call through function pointer"
+;  V51 tmp44        [V51,T16] (  3, 12   )     ref  ->  [rbp-0xE0]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V52 tmp45        [V52,T76] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
+;* V53 tmp46        [V53    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableSortedDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]>
+;  V54 tmp47        [V54,T01] (  4, 32   )     ref  ->  [rbp-0xE8]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V55 tmp48        [V55,T02] (  6, 22.40)    long  ->  [rbp-0xA8]  "Inlining Arg"
+;* V56 tmp49        [V56    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V57 tmp50        [V57    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V58 tmp51        [V58    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V59 tmp52        [V59    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V60 tmp53        [V60,T08] (  3, 16   )    long  ->   r8         "Indirect call through function pointer"
+;  V61 tmp54        [V61,T53] (  2,  4   )   ubyte  ->  rdi         "field V15.hasValue (fldOffset=0x0)" P-INDEP
+;  V62 tmp55        [V62,T54] (  2,  4   )     int  ->  rdx         "field V15.value (fldOffset=0x4)" P-INDEP
+;  V63 tmp56        [V63,T55] (  2,  4   )   ubyte  ->  rdi         "field V34.hasValue (fldOffset=0x0)" P-INDEP
+;  V64 tmp57        [V64,T56] (  2,  4   )     int  ->  rdx         "field V34.value (fldOffset=0x4)" P-INDEP
+;  V65 tmp58        [V65,T17] (  3, 12   )     ref  ->  rax         "field V43.Value (fldOffset=0x0)" P-INDEP
+;* V66 tmp59        [V66    ] (  0,  0   )     ref  ->  zero-ref    "V05.[000..008)"
+;* V67 tmp60        [V67    ] (  0,  0   )   ubyte  ->  zero-ref    "V05.[008..009)"
+;* V68 tmp61        [V68    ] (  0,  0   )     int  ->  zero-ref    "V05.[012..016)"
+;* V69 tmp62        [V69    ] (  0,  0   )     ref  ->  zero-ref    "V31.[000..008)"
+;  V70 tmp63        [V70,T57] (  2,  4   )   ubyte  ->  rdi         "V31.[008..009)"
+;* V71 tmp64        [V71    ] (  0,  0   )     int  ->  zero-ref    "V31.[012..016)"
+;  V72 tmp65        [V72,T71] (  2,  2   )    long  ->  rsi         "argument with side effect"
+;  V73 tmp66        [V73,T44] (  2,  8   )    long  ->  [rbp-0xB0]  spill-single-def "argument with side effect"
+;  V74 tmp67        [V74,T07] (  3, 17.60)    long  ->  rdi         "argument with side effect"
+;  V75 tmp68        [V75,T45] (  2,  8   )    long  ->  [rbp-0xB8]  spill-single-def "argument with side effect"
+;  V76 tmp69        [V76,T46] (  2,  8   )    long  ->  [rbp-0xC0]  spill-single-def "argument with side effect"
+;  V77 tmp70        [V77,T18] (  3, 12   )  struct ( 8) [rbp-0xC8]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
+;  V78 tmp71        [V78,T79] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V79 PSPSym       [V79,T74] (  1,  1   )    long  ->  [rbp-0xF8]  do-not-enreg[V] "PSPSym"
+;  V80 cse0         [V80,T47] (  3,  6.50)    long  ->  r12         hoist "CSE #02: moderate"
+;* V81 cse1         [V81,T73] (  0,  0   )    long  ->  zero-ref    "CSE #05: moderate"
+;  V82 cse2         [V82,T48] (  9,  2.80)    long  ->  r15         multi-def "CSE #01: moderate"
+;  V83 cse3         [V83,T49] (  3,  6   )     ref  ->  rdx         "CSE #04: moderate"
+;* V84 rat0         [V84,T52] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;* V85 rat1         [V85,T72] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V86 rat2         [V86,T50] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V87 rat3         [V87,T68] (  3,  2   )    long  ->  rsi         "runtime lookup"
+;  V88 rat4         [V88,T62] (  3,  2.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
+;  V89 rat5         [V89,T66] (  3,  2.20)    long  ->  rsi         "Spilling to split statement for tree"
+;  V90 rat6         [V90,T69] (  3,  2   )    long  ->  rsi         "runtime lookup"
+;  V91 rat7         [V91,T63] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V92 rat8         [V92,T70] (  3,  2   )    long  ->  r12         "runtime lookup"
+;  V93 rat9         [V93,T64] (  3,  2.80)    long  ->  r12         "fgMakeTemp is creating a new local variable"
+;  V94 rat10        [V94,T19] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V95 rat11        [V95,T20] (  3, 11.20)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V96 rat12        [V96,T39] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V97 rat13        [V97,T21] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V98 rat14        [V98,T33] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;* V99 rat15        [V99,T58] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V100 rat16       [V100,T22] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;* V101 rat17       [V101,T40] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V102 rat18       [V102,T23] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;* V103 rat19       [V103,T34] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;* V104 rat20       [V104,T59] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V105 rat21       [V105,T24] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;* V106 rat22       [V106,T35] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
+;* V107 rat23       [V107,T60] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V108 rat24       [V108,T25] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V109 rat25       [V109,T26] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V110 rat26       [V110,T27] (  3, 11.20)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V111 rat27       [V111,T41] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V112 rat28       [V112,T28] (  3, 11.20)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V113 rat29       [V113,T03] (  3, 22.40)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V114 rat30       [V114,T09] (  3, 16   )    long  ->  rdi         "runtime lookup"
+;  V115 rat31       [V115,T04] (  3, 22.40)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V116 rat32       [V116,T05] (  3, 22.40)    long  ->   r8         "fgMakeTemp is creating a new local variable"
+;  V117 rat33       [V117,T42] (  3,  8   )    long  ->  rdi         "runtime lookup"
+;  V118 rat34       [V118,T29] (  3, 11.20)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V119 rat35       [V119,T65] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V120 rat36       [V120,T77] (  3,  0   )    long  ->  rdi         "Spilling to split statement for tree"
+;  V121 rat37       [V121,T78] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 248
 
 G_M26647_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 88
-       lea      rbp, [rsp+0x80]
+       sub      rsp, 248
+       lea      rbp, [rsp+0x120]
        xor      eax, eax
-       mov      qword ptr [rbp-0x68], rax
+       mov      qword ptr [rbp-0x88], rax
        vxorps   xmm8, xmm8, xmm8
+       vmovdqu  ymmword ptr [rbp-0x80], ymm8
        vmovdqu  ymmword ptr [rbp-0x60], ymm8
        vmovdqa  xmmword ptr [rbp-0x40], xmm8
-       mov      qword ptr [rbp-0x80], rsp
+       mov      qword ptr [rbp-0xF8], rsp
        mov      qword ptr [rbp-0x30], rdi
-       mov      gword ptr [rbp-0x78], rdi
+       mov      gword ptr [rbp-0xD0], rdi
        mov      rbx, rsi
-						;; size=58 bbWeight=1 PerfScore 15.58
+						;; size=75 bbWeight=1 PerfScore 17.58
 G_M26647_IG02:
        mov      r15, qword ptr [rdi]
        test     rbx, rbx
-       je       G_M26647_IG19
+       je       G_M26647_IG67
        cmp      rbx, gword ptr [rdi+0x10]
-       je       G_M26647_IG18
+       je       G_M26647_IG66
 						;; size=22 bbWeight=1 PerfScore 7.25
 G_M26647_IG03:
        mov      rsi, qword ptr [r15+0x30]
        mov      rsi, qword ptr [rsi]
        mov      rsi, qword ptr [rsi+0x38]
        test     rsi, rsi
        je       SHORT G_M26647_IG05
 						;; size=16 bbWeight=0.50 PerfScore 3.62
 G_M26647_IG04:
        jmp      SHORT G_M26647_IG06
 						;; size=2 bbWeight=0.40 PerfScore 0.80
 G_M26647_IG05:
        mov      rdi, r15
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rsi, rax
 						;; size=21 bbWeight=0.10 PerfScore 0.18
 G_M26647_IG06:
        mov      rdi, rsi
        call     CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
        mov      r14, gword ptr [rax]
        xor      r13d, r13d
-       mov      rdi, gword ptr [rbp-0x78]
-       mov      rdi, gword ptr [rdi+0x08]
-       lea      rsi, [rbp-0x58]
-       mov      rdx, gword ptr [rbp-0x78]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]:GetEnumerator(System.Collections.Immutable.ImmutableSortedDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]):System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:this
-       cmp      dword ptr [rdi], edi
-       call     [rax]System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]:GetEnumerator(System.Collections.Immutable.ImmutableSortedDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]):System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:this
-       nop      
-						;; size=45 bbWeight=0.50 PerfScore 7.25
+       mov      rdi, gword ptr [rbp-0xD0]
+       mov      r12, gword ptr [rdi+0x08]
+       mov      rsi, qword ptr [r12]
+       mov      rax, qword ptr [rsi+0x30]
+       mov      rax, qword ptr [rax]
+       mov      rax, qword ptr [rax+0x28]
+       test     rax, rax
+       je       SHORT G_M26647_IG08
+						;; size=45 bbWeight=0.50 PerfScore 7.88
 G_M26647_IG07:
+       mov      rsi, rax
+       jmp      SHORT G_M26647_IG09
+						;; size=5 bbWeight=0.40 PerfScore 0.90
+G_M26647_IG08:
+       mov      rdi, rsi
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rsi, rax
+						;; size=21 bbWeight=0.10 PerfScore 0.18
+G_M26647_IG09:
+       lea      rdi, [rbp-0x88]
+       mov      rdx, r12
+       mov      rcx, gword ptr [rbp-0xD0]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]],System.Collections.Immutable.ImmutableSortedDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]):this
+       call     [rax]System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]],System.Collections.Immutable.ImmutableSortedDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]):this
+						;; size=29 bbWeight=0.50 PerfScore 2.50
+G_M26647_IG10:
+       vmovdqu  ymm0, ymmword ptr [rbp-0x88]
+       vmovdqu  ymmword ptr [rbp-0x58], ymm0
+       mov      rdi, qword ptr [rbp-0x68]
+       mov      qword ptr [rbp-0x38], rdi
+						;; size=21 bbWeight=0.50 PerfScore 3.50
+G_M26647_IG11:
        mov      rdi, qword ptr [r15+0x30]
        mov      rdi, qword ptr [rdi]
        mov      r12, qword ptr [rdi+0x40]
        test     r12, r12
-       je       SHORT G_M26647_IG09
+       je       SHORT G_M26647_IG13
 						;; size=16 bbWeight=0.50 PerfScore 3.62
-G_M26647_IG08:
-       jmp      SHORT G_M26647_IG10
+G_M26647_IG12:
+       jmp      SHORT G_M26647_IG14
 						;; size=2 bbWeight=0.40 PerfScore 0.80
-G_M26647_IG09:
+G_M26647_IG13:
        mov      rdi, r15
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      r12, rax
 						;; size=21 bbWeight=0.10 PerfScore 0.18
-G_M26647_IG10:
-       jmp      SHORT G_M26647_IG12
-						;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M26647_IG11:
-       mov      rsi, r12
+G_M26647_IG14:
+       jmp      G_M26647_IG27
+						;; size=5 bbWeight=0.50 PerfScore 1.00
+G_M26647_IG15:
+       mov      rax, r12
+       mov      qword ptr [rbp-0x90], rax
+       cmp      gword ptr [rbp-0x50], 0
+       je       G_M26647_IG22
+       cmp      gword ptr [rbp-0x48], 0
+       je       G_M26647_IG26
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M26647_IG17
+						;; size=48 bbWeight=2 PerfScore 29.00
+G_M26647_IG16:
+       jmp      SHORT G_M26647_IG18
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M26647_IG17:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       mov      rax, qword ptr [rbp-0x90]
+						;; size=28 bbWeight=0.40 PerfScore 1.10
+G_M26647_IG18:
+       mov      rcx, gword ptr [rbp-0x48]
+       mov      gword ptr [rbp-0xD8], rcx
+       cmp      byte  ptr [rcx], cl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rdx, qword ptr [rsi+0x10]
+       test     rdx, rdx
+       je       SHORT G_M26647_IG20
+						;; size=26 bbWeight=2 PerfScore 20.50
+G_M26647_IG19:
+       jmp      SHORT G_M26647_IG21
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M26647_IG20:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdx, rax
+						;; size=18 bbWeight=0.40 PerfScore 0.60
+G_M26647_IG21:
        lea      rdi, [rbp-0x58]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:get_Current():System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]:this
-       call     [rax]System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:get_Current():System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]:this
-       mov      gword ptr [rbp-0x68], rax
-       mov      qword ptr [rbp-0x60], rdx
-       mov      rdx, gword ptr [rbp-0x78]
-       mov      r8, gword ptr [rdx+0x18]
-       lea      r9, [rbp-0x70]
+       call     rdx
+       mov      rdi, gword ptr [rbp-0xD8]
+       cmp      eax, dword ptr [rdi+0x10]
+       mov      rax, qword ptr [rbp-0x90]
+       je       G_M26647_IG26
+						;; size=29 bbWeight=2 PerfScore 19.00
+G_M26647_IG22:
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       SHORT G_M26647_IG24
+						;; size=16 bbWeight=2 PerfScore 14.50
+G_M26647_IG23:
+       jmp      SHORT G_M26647_IG25
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M26647_IG24:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M26647_IG25:
+       mov      qword ptr [rbp-0xC0], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x58]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, qword ptr [rbp-0xC0]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]](System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]])
+       call     [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]](System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]])
+						;; size=99 bbWeight=2 PerfScore 42.50
+G_M26647_IG26:
+       mov      rdx, gword ptr [rbp-0x40]
+       test     rdx, rdx
+       je       G_M26647_IG57
+       cmp      dword ptr [rdx], edx
+       mov      rsi, gword ptr [rdx+0x08]
+       movzx    rdi, byte  ptr [rdx+0x24]
+       mov      edx, dword ptr [rdx+0x28]
+       mov      rcx, gword ptr [rbp-0xD0]
+       mov      r8, gword ptr [rcx+0x18]
+       test     rsi, rsi
+       je       G_M26647_IG58
+       test     r8, r8
+       je       G_M26647_IG59
+       mov      byte  ptr [rbp-0xC8], dil
+       mov      dword ptr [rbp-0xC4], edx
+       lea      rdx, [rbp-0x98]
+       mov      qword ptr [rsp], rdx
+       lea      rdx, [rbp-0x60]
+       mov      qword ptr [rsp+0x08], rdx
+       mov      rdx, qword ptr [rbp-0xC8]
        mov      rdi, r14
-       mov      rsi, gword ptr [rbp-0x68]
-       mov      rdx, qword ptr [rbp-0x60]
        mov      rcx, rbx
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]:Add(System.__Canon,System.Nullable`1[int],System.Collections.Generic.IComparer`1[System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]],byref):System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]:this
-       cmp      dword ptr [rdi], edi
-       call     [rax]System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]:Add(System.__Canon,System.Nullable`1[int],System.Collections.Generic.IComparer`1[System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]],byref):System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]:this
+       xor      r9d, r9d
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]:SetOrAdd(System.__Canon,System.Nullable`1[int],System.Collections.Generic.IComparer`1[System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]],ubyte,byref,byref):System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]:this
+       call     [rax]System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]:SetOrAdd(System.__Canon,System.Nullable`1[int],System.Collections.Generic.IComparer`1[System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]],ubyte,byref,byref):System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]:this
        mov      r14, rax
-       cmp      byte  ptr [rbp-0x70], 0
-       je       SHORT G_M26647_IG12
+       cmp      byte  ptr [rbp-0x60], 0
+       je       SHORT G_M26647_IG27
        inc      r13d
-						;; size=79 bbWeight=2 PerfScore 43.50
-G_M26647_IG12:
-       mov      rsi, r12
+						;; size=129 bbWeight=2 PerfScore 60.50
+G_M26647_IG27:
+       mov      rax, r12
+       mov      qword ptr [rbp-0xA0], rax
+       cmp      gword ptr [rbp-0x50], 0
+       je       G_M26647_IG35
+						;; size=21 bbWeight=4 PerfScore 17.00
+G_M26647_IG28:
+       cmp      gword ptr [rbp-0x48], 0
+       je       G_M26647_IG39
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x20]
+       test     rdi, rdi
+       je       SHORT G_M26647_IG30
+						;; size=27 bbWeight=2 PerfScore 20.50
+G_M26647_IG29:
+       jmp      SHORT G_M26647_IG31
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M26647_IG30:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+       mov      rax, qword ptr [rbp-0xA0]
+						;; size=28 bbWeight=0.40 PerfScore 1.10
+G_M26647_IG31:
+       mov      rcx, gword ptr [rbp-0x48]
+       mov      gword ptr [rbp-0xE0], rcx
+       cmp      byte  ptr [rcx], cl
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rdx, qword ptr [rsi+0x10]
+       test     rdx, rdx
+       je       SHORT G_M26647_IG33
+						;; size=26 bbWeight=2 PerfScore 20.50
+G_M26647_IG32:
+       jmp      SHORT G_M26647_IG34
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M26647_IG33:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdx, rax
+						;; size=18 bbWeight=0.40 PerfScore 0.60
+G_M26647_IG34:
        lea      rdi, [rbp-0x58]
-       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this
-       call     [rax]System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this
-       test     eax, eax
-       jne      SHORT G_M26647_IG11
-						;; size=23 bbWeight=4 PerfScore 21.00
-G_M26647_IG13:
+       call     rdx
+       mov      rdi, gword ptr [rbp-0xE0]
+       cmp      eax, dword ptr [rdi+0x10]
+       mov      rax, qword ptr [rbp-0xA0]
+       je       G_M26647_IG39
+						;; size=29 bbWeight=2 PerfScore 19.00
+G_M26647_IG35:
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x18]
+       test     rdi, rdi
+       je       SHORT G_M26647_IG37
+						;; size=16 bbWeight=2 PerfScore 14.50
+G_M26647_IG36:
+       jmp      SHORT G_M26647_IG38
+						;; size=2 bbWeight=1.60 PerfScore 3.20
+G_M26647_IG37:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rdi, rax
+						;; size=21 bbWeight=0.40 PerfScore 0.70
+G_M26647_IG38:
+       mov      qword ptr [rbp-0xB0], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x58]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, qword ptr [rbp-0xB0]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]](System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]])
+       call     [rcx]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]](System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]])
+       mov      rax, qword ptr [rbp-0xA0]
+						;; size=106 bbWeight=2 PerfScore 44.50
+G_M26647_IG39:
+       cmp      gword ptr [rbp-0x58], 0
+       je       SHORT G_M26647_IG41
+						;; size=7 bbWeight=4 PerfScore 12.00
+G_M26647_IG40:
+       mov      rdi, gword ptr [rbp-0x58]
+       mov      edi, dword ptr [rdi+0x34]
+       cmp      edi, dword ptr [rbp-0x34]
+       jne      G_M26647_IG60
+						;; size=16 bbWeight=2 PerfScore 12.00
+G_M26647_IG41:
+       cmp      gword ptr [rbp-0x48], 0
+       je       G_M26647_IG56
+       mov      rdi, qword ptr [rax+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rcx, qword ptr [rdi+0x28]
+       test     rcx, rcx
+       je       SHORT G_M26647_IG43
+						;; size=27 bbWeight=4 PerfScore 41.00
+G_M26647_IG42:
+       jmp      SHORT G_M26647_IG44
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M26647_IG43:
+       mov      rdi, rax
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
+       mov      rcx, rax
+       mov      rax, qword ptr [rbp-0xA0]
+						;; size=28 bbWeight=0.80 PerfScore 2.20
+G_M26647_IG44:
+       mov      rdx, gword ptr [rbp-0x48]
+       mov      gword ptr [rbp-0xE8], rdx
+       cmp      byte  ptr [rdx], dl
+       mov      rdi, qword ptr [rcx+0x10]
+       mov      rdi, qword ptr [rdi+0x10]
+       test     rdi, rdi
+       je       SHORT G_M26647_IG46
+						;; size=26 bbWeight=4 PerfScore 41.00
+G_M26647_IG45:
+       jmp      SHORT G_M26647_IG47
+						;; size=2 bbWeight=3.20 PerfScore 6.40
+G_M26647_IG46:
+       mov      qword ptr [rbp-0xA8], rcx
+       mov      rdi, rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdi, rax
+       mov      rax, qword ptr [rbp-0xA0]
+       mov      rcx, qword ptr [rbp-0xA8]
+						;; size=42 bbWeight=0.80 PerfScore 3.80
+G_M26647_IG47:
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      r8, qword ptr [rsi+0x10]
+       test     r8, r8
+       je       SHORT G_M26647_IG49
+						;; size=13 bbWeight=4 PerfScore 21.00
+G_M26647_IG48:
+       mov      qword ptr [rbp-0xA8], rcx
+       jmp      SHORT G_M26647_IG50
+						;; size=9 bbWeight=3.20 PerfScore 9.60
+G_M26647_IG49:
+       mov      qword ptr [rbp-0xA8], rcx
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      r8, rax
+						;; size=25 bbWeight=0.80 PerfScore 2.00
+G_M26647_IG50:
+       lea      rdi, [rbp-0x58]
+       call     r8
+       mov      rcx, gword ptr [rbp-0xE8]
+       cmp      eax, dword ptr [rcx+0x10]
+       je       G_M26647_IG55
+						;; size=23 bbWeight=4 PerfScore 34.00
+G_M26647_IG51:
+       mov      rdi, qword ptr [rbp-0xA8]
+       mov      rsi, qword ptr [rdi+0x10]
+       mov      rax, qword ptr [rsi+0x18]
+       test     rax, rax
+       je       SHORT G_M26647_IG53
+						;; size=20 bbWeight=2 PerfScore 12.50
+G_M26647_IG52:
+       mov      rdi, rax
+       jmp      SHORT G_M26647_IG54
+						;; size=5 bbWeight=1.60 PerfScore 3.60
+G_M26647_IG53:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdi, rax
+						;; size=18 bbWeight=0.40 PerfScore 0.60
+G_M26647_IG54:
+       mov      qword ptr [rbp-0xB8], rdi
+       lea      rdi, [rsp]
+       lea      rsi, [rbp-0x58]
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x08], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x10], rcx
+       add      rsi, 8
+       add      rdi, 8
+       mov      rcx, gword ptr [rsi]
+       mov      gword ptr [rsp+0x18], rcx
+       add      rsi, 8
+       add      rdi, 8
+       movsq    
+       mov      rdi, qword ptr [rbp-0xB8]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]](System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]])
+       call     [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]](System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]])
+						;; size=99 bbWeight=2 PerfScore 42.50
+G_M26647_IG55:
+       mov      rcx, gword ptr [rbp-0xE8]
+       mov      rdi, gword ptr [rcx+0x08]
+       cmp      dword ptr [rdi+0x10], 0
+       jle      SHORT G_M26647_IG56
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:Pop():System.Collections.Immutable.RefAsValueType`1[System.__Canon]:this
+       call     [rax]System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:Pop():System.Collections.Immutable.RefAsValueType`1[System.__Canon]:this
+       mov      gword ptr [rbp-0x40], rax
+       mov      rdx, gword ptr [rax+0x18]
+       lea      rdi, [rbp-0x58]
+       mov      rsi, qword ptr [rbp-0xA0]
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:PushLeft(System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]):this
+       call     [rax]System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:PushLeft(System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]):this
+       jmp      G_M26647_IG15
+						;; size=65 bbWeight=4 PerfScore 80.00
+G_M26647_IG56:
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x40], rdi
+       jmp      G_M26647_IG61
+						;; size=11 bbWeight=4 PerfScore 13.00
+G_M26647_IG57:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor():this
+       call     [rax]System.InvalidOperationException:.ctor():this
+       mov      rdi, rbx
+       call     CORINFO_HELP_THROW
+						;; size=41 bbWeight=0 PerfScore 0.00
+G_M26647_IG58:
+       mov      edi, 0x671
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M26647_IG59:
+       mov      edi, 0x4C5
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M26647_IG60:
+       mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
+       call     CORINFO_HELP_NEWSFAST
+       mov      rbx, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SR:get_CollectionModifiedDuringEnumeration():System.String
+       call     [rax]System.SR:get_CollectionModifiedDuringEnumeration():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_M26647_IG61:
        mov      rdi, qword ptr [r15+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rax, qword ptr [rdi+0x50]
        test     rax, rax
-       je       SHORT G_M26647_IG15
+       je       SHORT G_M26647_IG63
 						;; size=16 bbWeight=0.50 PerfScore 3.62
-G_M26647_IG14:
-       jmp      SHORT G_M26647_IG16
+G_M26647_IG62:
+       jmp      SHORT G_M26647_IG64
 						;; size=2 bbWeight=0.40 PerfScore 0.80
-G_M26647_IG15:
+G_M26647_IG63:
        mov      rdi, r15
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
 						;; size=18 bbWeight=0.10 PerfScore 0.15
-G_M26647_IG16:
+G_M26647_IG64:
        lea      rdi, [rbp-0x58]
        call     rax
-       mov      rdx, gword ptr [rbp-0x78]
-       lea      rdi, bword ptr [rdx+0x10]
+       mov      rcx, gword ptr [rbp-0xD0]
+       lea      rdi, bword ptr [rcx+0x10]
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rdx, gword ptr [rbp-0x78]
-       inc      dword ptr [rdx+0x34]
-       cmp      gword ptr [rdx+0x08], r14
-       je       SHORT G_M26647_IG17
-       lea      rdi, bword ptr [rdx+0x08]
+       mov      rcx, gword ptr [rbp-0xD0]
+       inc      dword ptr [rcx+0x34]
+       cmp      gword ptr [rcx+0x08], r14
+       je       SHORT G_M26647_IG65
+       lea      rdi, bword ptr [rcx+0x08]
        mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
        xor      rdi, rdi
-       mov      rdx, gword ptr [rbp-0x78]
-       mov      gword ptr [rdx+0x20], rdi
-						;; size=57 bbWeight=0.50 PerfScore 9.12
-G_M26647_IG17:
-       mov      dword ptr [rdx+0x30], r13d
+       mov      rcx, gword ptr [rbp-0xD0]
+       mov      gword ptr [rcx+0x20], rdi
+						;; size=66 bbWeight=0.50 PerfScore 9.12
+G_M26647_IG65:
+       mov      dword ptr [rcx+0x30], r13d
 						;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M26647_IG18:
-       add      rsp, 88
+G_M26647_IG66:
+       vzeroupper 
+       add      rsp, 248
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=1 PerfScore 4.25
-G_M26647_IG19:
+						;; size=21 bbWeight=1 PerfScore 5.25
+G_M26647_IG67:
        mov      edi, 0x4E9
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        call     [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
-G_M26647_IG20:
+G_M26647_IG68:
        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+0x80]
-						;; size=25 bbWeight=0 PerfScore 0.00
-G_M26647_IG21:
-       mov      rdi, gword ptr [rbp-0x78]
-       mov      r15, qword ptr [rdi]
-       mov      rsi, qword ptr [r15+0x30]
+       sub      rsp, 56
+       mov      rbp, qword ptr [rdi+0x28]
+       mov      qword ptr [rsp+0x28], rbp
+       lea      rbp, [rbp+0x120]
+						;; size=30 bbWeight=0 PerfScore 0.00
+G_M26647_IG69:
+       mov      rcx, gword ptr [rbp-0xD0]
+       mov      r15, qword ptr [rcx]
+       mov      rdi, r15
+       mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi]
        mov      rax, qword ptr [rsi+0x50]
        test     rax, rax
-       je       SHORT G_M26647_IG22
-       jmp      SHORT G_M26647_IG23
-						;; size=25 bbWeight=0 PerfScore 0.00
-G_M26647_IG22:
-       mov      rdi, r15
+       je       SHORT G_M26647_IG70
+       jmp      SHORT G_M26647_IG71
+						;; size=31 bbWeight=0 PerfScore 0.00
+G_M26647_IG70:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
-						;; size=18 bbWeight=0 PerfScore 0.00
-G_M26647_IG23:
+						;; size=15 bbWeight=0 PerfScore 0.00
+G_M26647_IG71:
        lea      rdi, [rbp-0x58]
        call     rax
        nop      
 						;; size=7 bbWeight=0 PerfScore 0.00
-G_M26647_IG24:
-       add      rsp, 8
+G_M26647_IG72:
+       vzeroupper 
+       add      rsp, 56
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0 PerfScore 0.00
+						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 545, prolog size 58, PerfScore 123.23, instruction count 154, allocated bytes for code 545 (MethodHash=abde97e8) for method System.Collections.Immutable.ImmutableSortedDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:set_KeyComparer(System.Collections.Generic.IComparer`1[System.__Canon]):this (FullOpts)
+; Total bytes of code 1891, prolog size 75, PerfScore 759.03, instruction count 442, allocated bytes for code 1891 (MethodHash=abde97e8) for method System.Collections.Immutable.ImmutableSortedDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:set_KeyComparer(System.Collections.Generic.IComparer`1[System.__Canon]):this (FullOpts)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment