Skip to content

Instantly share code, notes, and snippets.

@MihuBot
Created June 16, 2024 19:13
Show Gist options
  • Save MihuBot/a771fac250ebab3c72b2a3f61fa4bb45 to your computer and use it in GitHub Desktop.
Save MihuBot/a771fac250ebab3c72b2a3f61fa4bb45 to your computer and use it in GitHub Desktop.

Top method regressions

74 (1.39 % of base) - System.Runtime.Serialization.DataContracts.CollectionDataContract:IsCollectionOrTryCreate(System.Type,ubyte,byref,byref,ubyte,ubyte):ubyte
 ; Assembly listing for method System.Runtime.Serialization.DataContracts.CollectionDataContract:IsCollectionOrTryCreate(System.Type,ubyte,byref,byref,ubyte,ubyte):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 68 single block inlinees; 15 inlinees without PGO data
+; 0 inlinees with PGO data; 68 single block inlinees; 16 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] ( 56, 29   )     ref  ->  rbx         class-hnd single-def <System.Type>
+;  V00 arg0         [V00,T01] ( 47, 24.50)     ref  ->  rbx         class-hnd single-def <System.Type>
 ;  V01 arg1         [V01,T15] ( 11,  6.50)   ubyte  ->  r13         single-def
 ;  V02 arg2         [V02,T11] ( 12,  7.50)   byref  ->  r14         single-def
 ;  V03 arg3         [V03,T08] ( 23, 13   )   byref  ->  r15         single-def
-;  V04 arg4         [V04,T30] (  5,  3.50)   ubyte  ->  r12         single-def
-;  V05 arg5         [V05,T31] (  5,  3.50)   ubyte  ->  [rbp-0x2C]  single-def
+;  V04 arg4         [V04,T31] (  5,  3.50)   ubyte  ->  r12         single-def
+;  V05 arg5         [V05,T32] (  5,  3.50)   ubyte  ->  [rbp-0x2C]  single-def
 ;  V06 loc0         [V06    ] ( 10,  5   )     ref  ->  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Reflection.MethodInfo>
 ;  V07 loc1         [V07    ] ( 10,  5   )     ref  ->  [rbp-0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Reflection.MethodInfo>
-;  V08 loc2         [V08,T35] (  8,  4   )   ubyte  ->  [rbp-0x44]  spill-single-def
-;  V09 loc3         [V09,T37] (  6,  3   )   ubyte  ->  [rbp-0x48] 
+;  V08 loc2         [V08,T36] (  8,  4   )   ubyte  ->  [rbp-0x44]  spill-single-def
+;  V09 loc3         [V09,T38] (  6,  3   )   ubyte  ->  [rbp-0x48] 
 ;  V10 loc4         [V10    ] (  5,  2.50)     ref  ->  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
 ;  V11 loc5         [V11    ] (  5,  2.50)     ref  ->  [rbp-0x58]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
-;  V12 loc6         [V12,T29] ( 11,  5.50)     ref  ->  [rbp-0xC0]  class-hnd spill-single-def <System.Type>
-;  V13 loc7         [V13,T38] (  6,  3   )   ubyte  ->  [rbp-0x5C]  spill-single-def
-;  V14 loc8         [V14,T63] (  5,  2.50)     ref  ->  [rbp-0xC8]  class-hnd <System.Reflection.ConstructorInfo>
-;  V15 loc9         [V15,T12] ( 15,  9   )     ref  ->  [rbp-0xD0]  class-hnd <System.Type>
+;  V12 loc6         [V12,T30] ( 11,  5.50)     ref  ->  [rbp-0xC8]  class-hnd spill-single-def <System.Type>
+;  V13 loc7         [V13,T39] (  6,  3   )   ubyte  ->  [rbp-0x5C]  spill-single-def
+;  V14 loc8         [V14,T64] (  5,  2.50)     ref  ->  [rbp-0xD0]  class-hnd <System.Reflection.ConstructorInfo>
+;  V15 loc9         [V15,T12] ( 15,  9   )     ref  ->  [rbp-0xD8]  class-hnd <System.Type>
 ;  V16 loc10        [V16,T09] ( 15, 13.49)   ubyte  ->  [rbp-0x60] 
-;  V17 loc11        [V17,T32] (  5,  5.50)   ubyte  ->  [rbp-0x64] 
-;  V18 loc12        [V18,T20] (  7,  7   )     ref  ->  [rbp-0xD8]  class-hnd spill-single-def <System.Type>
-;  V19 loc13        [V19,T13] (  4,  9   )     ref  ->  [rbp-0xE0]  class-hnd spill-single-def <System.Type[]>
-;  V20 loc14        [V20,T118] (  2,  1   )     int  ->  r12        
-;  V21 loc15        [V21,T64] (  5,  2.50)     ref  ->  [rbp-0xE8]  class-hnd spill-single-def <System.Type[]>
-;  V22 loc16        [V22,T14] (  4,  9   )     ref  ->  [rbp-0xF0]  class-hnd spill-single-def <System.Type[]>
-;* V23 loc17        [V23,T130] (  0,  0   )     int  ->  zero-ref   
-;  V24 loc18        [V24,T04] (  7, 20   )     ref  ->  [rbp-0xF8]  class-hnd spill-single-def <System.Type>
-;  V25 loc19        [V25,T05] (  2, 20   )     ref  ->  [rbp-0x100]  class-hnd spill-single-def <System.Type>
-;  V26 loc20        [V26,T02] (  3, 24   )     ref  ->  [rbp-0x108]  class-hnd spill-single-def <System.Type[]>
+;  V17 loc11        [V17,T33] (  5,  5.50)   ubyte  ->  [rbp-0x64] 
+;  V18 loc12        [V18,T20] (  7,  7   )     ref  ->  [rbp-0xE0]  class-hnd spill-single-def <System.Type>
+;  V19 loc13        [V19,T13] (  4,  9   )     ref  ->  [rbp-0xE8]  class-hnd spill-single-def <System.Type[]>
+;  V20 loc14        [V20,T120] (  2,  1   )     int  ->  r12        
+;  V21 loc15        [V21,T65] (  5,  2.50)     ref  ->  [rbp-0xF0]  class-hnd spill-single-def <System.Type[]>
+;  V22 loc16        [V22,T14] (  4,  9   )     ref  ->  [rbp-0xF8]  class-hnd spill-single-def <System.Type[]>
+;* V23 loc17        [V23,T131] (  0,  0   )     int  ->  zero-ref   
+;  V24 loc18        [V24,T04] (  7, 20   )     ref  ->  [rbp-0x100]  class-hnd spill-single-def <System.Type>
+;  V25 loc19        [V25,T05] (  2, 20   )     ref  ->  [rbp-0x108]  class-hnd spill-single-def <System.Type>
+;  V26 loc20        [V26,T02] (  3, 24   )     ref  ->  [rbp-0x110]  class-hnd spill-single-def <System.Type[]>
 ;  V27 loc21        [V27,T18] (  2,  4   )     int  ->   r8        
 ;  V28 loc22        [V28,T10] (  5, 10   )   ubyte  ->   r8        
-;  V29 loc23        [V29,T19] ( 14,  7   )     ref  ->  [rbp-0x110]  class-hnd <System.Type[]>
-;  V30 loc24        [V30,T127] (  2,  1   )   ubyte  ->  rax        
+;  V29 loc23        [V29,T19] ( 14,  7   )     ref  ->  [rbp-0x118]  class-hnd <System.Type[]>
+;  V30 loc24        [V30,T128] (  2,  1   )   ubyte  ->  rax        
 ;  V31 OutArgs      [V31    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V32 tmp1         [V32,T119] (  2,  1   )     int  ->  rax        
-;  V33 tmp2         [V33,T120] (  3,  1.50)     int  ->  rax        
+;  V32 tmp1         [V32,T121] (  2,  1   )     int  ->  rax        
+;  V33 tmp2         [V33,T122] (  3,  1.50)     int  ->  rax        
 ;  V34 tmp3         [V34,T17] (  3,  8   )     ref  ->  registers  
 ;* V35 tmp4         [V35    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V36 tmp5         [V36    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V37 tmp6         [V37,T113] (  3,  1.50)     ref  ->  rsi        
-;  V38 tmp7         [V38,T39] (  3,  3   )     ref  ->  [rbp-0x118]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
+;  V37 tmp6         [V37,T115] (  3,  1.50)     ref  ->  rsi        
+;  V38 tmp7         [V38,T40] (  3,  3   )     ref  ->  [rbp-0x120]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
 ;* V39 tmp8         [V39    ] (  0,  0   )   byref  ->  zero-ref    single-def
 ;  V40 tmp9         [V40,T21] (  7,  7   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract>
 ;* V41 tmp10        [V41    ] (  0,  0   )   byref  ->  zero-ref   
-;  V42 tmp11        [V42,T114] (  3,  1.50)     ref  ->  r12        
-;  V43 tmp12        [V43,T22] (  7,  7   )     ref  ->  [rbp-0x120]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract>
+;  V42 tmp11        [V42,T116] (  3,  1.50)     ref  ->  r12        
+;  V43 tmp12        [V43,T22] (  7,  7   )     ref  ->  [rbp-0x128]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract>
 ;* V44 tmp13        [V44    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "non-inline candidate call" <System.String>
 ;* V45 tmp14        [V45    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V46 tmp15        [V46,T128] (  2,  1   )     int  ->  r13        
-;  V47 tmp16        [V47,T129] (  2,  1   )     int  ->  r12        
+;  V46 tmp15        [V46,T129] (  2,  1   )     int  ->  r13        
+;  V47 tmp16        [V47,T130] (  2,  1   )     int  ->  r12        
 ;* V48 tmp17        [V48    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V49 tmp18        [V49    ] (  0,  0   )     int  ->  zero-ref   
 ;* V50 tmp19        [V50    ] (  0,  0   )     int  ->  zero-ref   
-;  V51 tmp20        [V51,T121] (  3,  1.50)     int  ->  [rbp-0x68] 
+;  V51 tmp20        [V51,T123] (  3,  1.50)     int  ->  [rbp-0x68] 
 ;* V52 tmp21        [V52    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "non-inline candidate call" <System.String>
 ;* V53 tmp22        [V53    ] (  0,  0   )   byref  ->  zero-ref    single-def
 ;  V54 tmp23        [V54,T23] (  7,  7   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract>
 ;* V55 tmp24        [V55    ] (  0,  0   )   byref  ->  zero-ref   
-;  V56 tmp25        [V56,T115] (  3,  1.50)     ref  ->  r12        
-;  V57 tmp26        [V57,T24] (  7,  7   )     ref  ->  [rbp-0x128]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract>
-;  V58 tmp27        [V58,T40] (  3,  3   )     ref  ->  [rbp-0x130]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
-;  V59 tmp28        [V59,T36] (  4,  4   )     ref  ->  [rbp-0x138]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
-;  V60 tmp29        [V60,T66] (  2,  2   )     ref  ->  rax         class-hnd single-def "Strict ordering of exceptions for Array store" <System.Type>
-;  V61 tmp30        [V61,T67] (  2,  2   )     ref  ->  rax         class-hnd single-def "Strict ordering of exceptions for Array store" <System.Type>
-;  V62 tmp31        [V62,T65] (  4,  2   )     int  ->  rax        
+;  V56 tmp25        [V56,T117] (  3,  1.50)     ref  ->  r12        
+;  V57 tmp26        [V57,T24] (  7,  7   )     ref  ->  [rbp-0x130]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract>
+;  V58 tmp27        [V58,T41] (  3,  3   )     ref  ->  [rbp-0x138]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
+;  V59 tmp28        [V59,T37] (  4,  4   )     ref  ->  [rbp-0x140]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
+;  V60 tmp29        [V60,T68] (  2,  2   )     ref  ->  rax         class-hnd single-def "Strict ordering of exceptions for Array store" <System.Type>
+;  V61 tmp30        [V61,T69] (  2,  2   )     ref  ->  rax         class-hnd single-def "Strict ordering of exceptions for Array store" <System.Type>
+;  V62 tmp31        [V62,T66] (  4,  2   )     int  ->  rax        
 ;* V63 tmp32        [V63    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V64 tmp33        [V64    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V65 tmp34        [V65,T116] (  3,  1.50)     ref  ->  rax        
+;  V65 tmp34        [V65,T118] (  3,  1.50)     ref  ->  rax        
 ;* V66 tmp35        [V66    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
-;  V67 tmp36        [V67,T117] (  3,  1.50)     ref  ->  rax        
+;  V67 tmp36        [V67,T119] (  3,  1.50)     ref  ->  rax        
 ;  V68 tmp37        [V68,T25] (  7,  7   )     ref  ->  r13         class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract>
-;  V69 tmp38        [V69,T41] (  3,  3   )     ref  ->  [rbp-0x140]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
-;  V70 tmp39        [V70,T42] (  3,  3   )     ref  ->  [rbp-0x148]  class-hnd spill-single-def "impAppendStmt" <System.Type>
-;  V71 tmp40        [V71,T43] (  3,  3   )     ref  ->  [rbp-0x150]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
-;  V72 tmp41        [V72,T44] (  3,  3   )     ref  ->  [rbp-0x158]  class-hnd spill-single-def "impAppendStmt" <System.Type>
-;  V73 tmp42        [V73,T45] (  3,  3   )     ref  ->  [rbp-0x160]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
-;  V74 tmp43        [V74,T46] (  3,  3   )     ref  ->  [rbp-0x168]  class-hnd spill-single-def "impAppendStmt" <System.Type>
-;  V75 tmp44        [V75,T68] (  2,  2   )     ref  ->  rax         class-hnd "Strict ordering of exceptions for Array store" <System.Type>
+;  V69 tmp38        [V69,T42] (  3,  3   )     ref  ->  [rbp-0x148]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
+;  V70 tmp39        [V70,T43] (  3,  3   )     ref  ->  [rbp-0x150]  class-hnd spill-single-def "impAppendStmt" <System.Type>
+;  V71 tmp40        [V71,T44] (  3,  3   )     ref  ->  [rbp-0x158]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
+;  V72 tmp41        [V72,T45] (  3,  3   )     ref  ->  [rbp-0x160]  class-hnd spill-single-def "impAppendStmt" <System.Type>
+;  V73 tmp42        [V73,T46] (  3,  3   )     ref  ->  [rbp-0x168]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
+;  V74 tmp43        [V74,T47] (  3,  3   )     ref  ->  [rbp-0x170]  class-hnd spill-single-def "impAppendStmt" <System.Type>
+;  V75 tmp44        [V75,T70] (  2,  2   )     ref  ->  rax         class-hnd "Strict ordering of exceptions for Array store" <System.Type>
 ;* V76 tmp45        [V76    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Type>
 ;* V77 tmp46        [V77    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Type>
 ;* V78 tmp47        [V78    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Type>
 ;* V79 tmp48        [V79    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V80 tmp49        [V80    ] (  3,  1.50)     ref  ->  [rbp-0x70]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Type>
-;  V81 tmp50        [V81,T122] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
+;  V81 tmp50        [V81,T124] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
 ;  V82 tmp51        [V82    ] (  2,  1   )     ref  ->  [rbp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Runtime.Serialization.DataContracts.DataContract>
-;  V83 tmp52        [V83,T47] (  3,  3   )     ref  ->  rax         class-hnd "Inlining Arg" <System.Type>
+;* V83 tmp52        [V83,T132] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V84 tmp53        [V84,T48] (  3,  3   )     ref  ->  rax         class-hnd "Inlining Arg" <System.Type>
 ;  V85 tmp54        [V85,T49] (  3,  3   )     ref  ->  rax         class-hnd "Inlining Arg" <System.Type>
-;* V86 tmp55        [V86    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V87 tmp56        [V87,T69] (  2,  2   )     ref  ->  r15         class-hnd "Inlining Arg" <System.Type>
-;  V88 tmp57        [V88,T70] (  2,  2   )     ref  ->  [rbp-0x170]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodInfo>
-;  V89 tmp58        [V89,T50] (  3,  3   )     ref  ->  [rbp-0x178]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodInfo>
-;  V90 tmp59        [V90,T26] (  7,  7   )     ref  ->  [rbp-0x180]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper>
-;* V91 tmp60        [V91    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V92 tmp61        [V92,T133] (  2,  0   )     ref  ->  r15         class-hnd exact "non-inline candidate call" <System.String>
-;  V93 tmp62        [V93,T132] (  4,  0   )     ref  ->  r14         class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.InvalidDataContractException>
-;* V94 tmp63        [V94    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V95 tmp64        [V95,T134] (  2,  0   )     ref  ->  rbx         class-hnd exact "Inlining Arg" <System.String>
-;  V96 tmp65        [V96,T71] (  2,  2   )     ref  ->   r8         class-hnd exact single-def "Inlining Arg" <System.Type[]>
-;* V97 tmp66        [V97,T131] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V98 tmp67        [V98    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Type>
-;* V99 tmp68        [V99    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V86 tmp55        [V86,T50] (  3,  3   )     ref  ->  rax         class-hnd "Inlining Arg" <System.Type>
+;* V87 tmp56        [V87    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
+;  V88 tmp57        [V88,T71] (  2,  2   )     ref  ->  r15         class-hnd "Inlining Arg" <System.Type>
+;  V89 tmp58        [V89,T72] (  2,  2   )     ref  ->  [rbp-0x178]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodInfo>
+;  V90 tmp59        [V90,T51] (  3,  3   )     ref  ->  [rbp-0x180]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodInfo>
+;  V91 tmp60        [V91,T26] (  7,  7   )     ref  ->  [rbp-0x188]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper>
+;* V92 tmp61        [V92    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
+;  V93 tmp62        [V93,T135] (  2,  0   )     ref  ->  r15         class-hnd exact "non-inline candidate call" <System.String>
+;  V94 tmp63        [V94,T134] (  4,  0   )     ref  ->  r14         class-hnd exact "NewObj constructor temp" <System.Runtime.Serialization.InvalidDataContractException>
+;* V95 tmp64        [V95    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V96 tmp65        [V96,T136] (  2,  0   )     ref  ->  rbx         class-hnd exact "Inlining Arg" <System.String>
+;  V97 tmp66        [V97,T73] (  2,  2   )     ref  ->   r8         class-hnd exact single-def "Inlining Arg" <System.Type[]>
+;* V98 tmp67        [V98,T133] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V99 tmp68        [V99    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Type>
 ;* V100 tmp69       [V100    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V101 tmp70       [V101,T72] (  2,  2   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Reflection.MethodInfo>
-;  V102 tmp71       [V102,T73] (  2,  2   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Type>
-;  V103 tmp72       [V103,T74] (  2,  2   )     ref  ->  [rbp-0x188]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodInfo>
-;  V104 tmp73       [V104,T75] (  2,  2   )     ref  ->  [rbp-0x190]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodInfo>
-;* V105 tmp74       [V105    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V106 tmp75       [V106,T27] (  6,  6   )     ref  ->  [rbp-0x198]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper>
-;* V107 tmp76       [V107    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V108 tmp77       [V108,T76] (  2,  2   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Type>
-;  V109 tmp78       [V109,T77] (  2,  2   )     ref  ->  [rbp-0x1A0]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodInfo>
-;  V110 tmp79       [V110,T78] (  2,  2   )     ref  ->  [rbp-0x1A8]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
-;  V111 tmp80       [V111,T79] (  2,  2   )     ref  ->  [rbp-0x1B0]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
-;  V112 tmp81       [V112,T33] (  5,  5   )     ref  ->  [rbp-0x1B8]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper>
-;  V113 tmp82       [V113,T80] (  2,  2   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Type>
-;  V114 tmp83       [V114,T81] (  2,  2   )     ref  ->  [rbp-0x1C0]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodInfo>
-;  V115 tmp84       [V115,T82] (  2,  2   )     ref  ->  [rbp-0x1C8]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodInfo>
-;* V116 tmp85       [V116    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V117 tmp86       [V117,T28] (  6,  6   )     ref  ->  [rbp-0x1D0]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper>
-;* V118 tmp87       [V118    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V119 tmp88       [V119,T83] (  2,  2   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Type>
-;  V120 tmp89       [V120,T84] (  2,  2   )     ref  ->  [rbp-0x1D8]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodInfo>
-;  V121 tmp90       [V121,T85] (  2,  2   )     ref  ->  [rbp-0x1E0]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
-;  V122 tmp91       [V122,T86] (  2,  2   )     ref  ->  [rbp-0x1E8]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
-;  V123 tmp92       [V123,T34] (  5,  5   )     ref  ->  [rbp-0x1F0]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper>
-;  V124 tmp93       [V124,T16] (  8,  8   )     int  ->  rax         "Single return block return value"
-;  V125 tmp94       [V125,T87] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V126 tmp95       [V126,T88] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V127 tmp96       [V127,T89] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V128 tmp97       [V128,T90] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V129 tmp98       [V129,T91] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V130 tmp99       [V130,T51] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
+;* V101 tmp70       [V101    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V102 tmp71       [V102,T74] (  2,  2   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Reflection.MethodInfo>
+;  V103 tmp72       [V103,T75] (  2,  2   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Type>
+;  V104 tmp73       [V104,T76] (  2,  2   )     ref  ->  [rbp-0x190]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodInfo>
+;  V105 tmp74       [V105,T77] (  2,  2   )     ref  ->  [rbp-0x198]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodInfo>
+;* V106 tmp75       [V106    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
+;  V107 tmp76       [V107,T28] (  6,  6   )     ref  ->  [rbp-0x1A0]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper>
+;* V108 tmp77       [V108    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
+;  V109 tmp78       [V109,T78] (  2,  2   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Type>
+;  V110 tmp79       [V110,T79] (  2,  2   )     ref  ->  [rbp-0x1A8]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodInfo>
+;  V111 tmp80       [V111,T80] (  2,  2   )     ref  ->  [rbp-0x1B0]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
+;  V112 tmp81       [V112,T81] (  2,  2   )     ref  ->  [rbp-0x1B8]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
+;  V113 tmp82       [V113,T34] (  5,  5   )     ref  ->  [rbp-0x1C0]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper>
+;  V114 tmp83       [V114,T82] (  2,  2   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Type>
+;  V115 tmp84       [V115,T83] (  2,  2   )     ref  ->  [rbp-0x1C8]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodInfo>
+;  V116 tmp85       [V116,T84] (  2,  2   )     ref  ->  [rbp-0x1D0]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodInfo>
+;* V117 tmp86       [V117    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
+;  V118 tmp87       [V118,T29] (  6,  6   )     ref  ->  [rbp-0x1D8]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper>
+;* V119 tmp88       [V119    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
+;  V120 tmp89       [V120,T85] (  2,  2   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Type>
+;  V121 tmp90       [V121,T86] (  2,  2   )     ref  ->  [rbp-0x1E0]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodInfo>
+;  V122 tmp91       [V122,T87] (  2,  2   )     ref  ->  [rbp-0x1E8]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
+;  V123 tmp92       [V123,T88] (  2,  2   )     ref  ->  [rbp-0x1F0]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
+;  V124 tmp93       [V124,T35] (  5,  5   )     ref  ->  [rbp-0x1F8]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper>
+;  V125 tmp94       [V125,T16] (  8,  8   )     int  ->  rax         "Single return block return value"
+;  V126 tmp95       [V126,T89] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V127 tmp96       [V127,T90] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V128 tmp97       [V128,T91] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V129 tmp98       [V129,T92] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V130 tmp99       [V130,T93] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V131 tmp100      [V131,T52] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
-;  V132 tmp101      [V132,T92] (  2,  2   )     ref  ->  rsi         "argument with side effect"
-;  V133 tmp102      [V133,T93] (  2,  2   )     ref  ->  rsi         "argument with side effect"
-;  V134 tmp103      [V134,T94] (  2,  2   )     ref  ->  rsi         "argument with side effect"
-;  V135 tmp104      [V135,T95] (  2,  2   )     ref  ->  rsi         "argument with side effect"
-;  V136 tmp105      [V136,T96] (  2,  2   )     ref  ->  rsi         "argument with side effect"
-;  V137 tmp106      [V137,T53] (  3,  3   )     ref  ->  rax         "argument with side effect"
+;  V132 tmp101      [V132,T53] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
+;  V133 tmp102      [V133,T94] (  2,  2   )     ref  ->  rsi         "argument with side effect"
+;  V134 tmp103      [V134,T95] (  2,  2   )     ref  ->  rsi         "argument with side effect"
+;  V135 tmp104      [V135,T96] (  2,  2   )     ref  ->  rsi         "argument with side effect"
+;  V136 tmp105      [V136,T97] (  2,  2   )     ref  ->  rsi         "argument with side effect"
+;  V137 tmp106      [V137,T98] (  2,  2   )     ref  ->  rsi         "argument with side effect"
 ;  V138 tmp107      [V138,T54] (  3,  3   )     ref  ->  rax         "argument with side effect"
-;  V139 tmp108      [V139,T97] (  2,  2   )     ref  ->  rsi         "argument with side effect"
-;  V140 tmp109      [V140,T135] (  2,  0   )     ref  ->  rsi         "argument with side effect"
-;  V141 tmp110      [V141,T98] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
-;  V142 tmp111      [V142,T55] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
-;  V143 tmp112      [V143,T56] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
+;  V139 tmp108      [V139,T55] (  3,  3   )     ref  ->  rax         "argument with side effect"
+;  V140 tmp109      [V140,T99] (  2,  2   )     ref  ->  rsi         "argument with side effect"
+;  V141 tmp110      [V141,T137] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V142 tmp111      [V142,T100] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
+;  V143 tmp112      [V143,T56] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
 ;  V144 tmp113      [V144,T57] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V145 tmp114      [V145,T58] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
-;  V146 tmp115      [V146,T99] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V147 tmp116      [V147,T100] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V148 tmp117      [V148,T59] (  3,  3   )     ref  ->  rax         single-def "arr expr"
-;  V149 tmp118      [V149,T60] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V150 tmp119      [V150,T101] (  2,  2   )     ref  ->  r15         single-def "argument with side effect"
-;  V151 tmp120      [V151,T102] (  2,  2   )     ref  ->   r9         single-def "argument with side effect"
-;  V152 tmp121      [V152,T61] (  3,  3   )     ref  ->  rax         single-def "arr expr"
-;  V153 tmp122      [V153,T103] (  2,  2   )     ref  ->  [rbp-0x1F8]  spill-single-def "argument with side effect"
-;  V154 tmp123      [V154,T104] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V155 tmp124      [V155,T105] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V156 tmp125      [V156,T106] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V157 tmp126      [V157,T107] (  2,  2   )     ref  ->  [rbp-0x200]  spill-single-def "argument with side effect"
-;  V158 tmp127      [V158,T108] (  2,  2   )     ref  ->   r9         single-def "argument with side effect"
-;  V159 tmp128      [V159,T109] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
-;  V160 tmp129      [V160,T110] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
-;  V161 tmp130      [V161,T111] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
-;  V162 tmp131      [V162,T112] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
-;  V163 cse0        [V163,T123] (  3,  1.50)    long  ->  [rbp-0x80]  spill-single-def "CSE #03: conservative"
-;  V164 cse1        [V164,T124] (  3,  1.50)    long  ->  [rbp-0x88]  spill-single-def "CSE #06: conservative"
-;  V165 cse2        [V165,T125] (  3,  1.50)    long  ->  [rbp-0x90]  spill-single-def "CSE #13: conservative"
-;  V166 cse3        [V166,T126] (  3,  1.50)    long  ->  [rbp-0x98]  spill-single-def "CSE #16: conservative"
-;  V167 cse4        [V167,T03] (  3, 24   )     int  ->  [rbp-0x9C]  spill-single-def "CSE #18: aggressive"
-;  V168 rat0        [V168,T06] (  6, 17   )    long  ->  [rbp-0xA8]  "Widened IV V20"
-;  V169 rat1        [V169,T07] (  5, 16.50)    long  ->  [rbp-0xB0]  "Widened IV V23"
-;  V170 rat2        [V170,T00] (  6, 70   )    long  ->  [rbp-0xB8]  "Widened IV V27"
-;  V171 rat3        [V171,T62] (  3,  2.83)     int  ->  rdx         "ReplaceWithLclVar is creating a new local variable"
+;  V145 tmp114      [V145,T58] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
+;  V146 tmp115      [V146,T59] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
+;  V147 tmp116      [V147,T101] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V148 tmp117      [V148,T102] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V149 tmp118      [V149,T60] (  3,  3   )     ref  ->  rax         single-def "arr expr"
+;  V150 tmp119      [V150,T61] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
+;  V151 tmp120      [V151,T103] (  2,  2   )     ref  ->  r15         single-def "argument with side effect"
+;  V152 tmp121      [V152,T104] (  2,  2   )     ref  ->   r9         single-def "argument with side effect"
+;  V153 tmp122      [V153,T62] (  3,  3   )     ref  ->  rax         single-def "arr expr"
+;  V154 tmp123      [V154,T105] (  2,  2   )     ref  ->  [rbp-0x200]  spill-single-def "argument with side effect"
+;  V155 tmp124      [V155,T106] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
+;  V156 tmp125      [V156,T107] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V157 tmp126      [V157,T108] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V158 tmp127      [V158,T109] (  2,  2   )     ref  ->  [rbp-0x208]  spill-single-def "argument with side effect"
+;  V159 tmp128      [V159,T110] (  2,  2   )     ref  ->   r9         single-def "argument with side effect"
+;  V160 tmp129      [V160,T111] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
+;  V161 tmp130      [V161,T112] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
+;  V162 tmp131      [V162,T113] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
+;  V163 tmp132      [V163,T114] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
+;  V164 cse0        [V164,T67] (  4,  2   )    long  ->  [rbp-0x80]  spill-single-def "CSE #05: conservative"
+;  V165 cse1        [V165,T125] (  3,  1.50)    long  ->  [rbp-0x88]  spill-single-def "CSE #03: conservative"
+;  V166 cse2        [V166,T126] (  3,  1.50)    long  ->  [rbp-0x90]  spill-single-def "CSE #13: conservative"
+;  V167 cse3        [V167,T127] (  3,  1.50)    long  ->  [rbp-0x98]  spill-single-def "CSE #16: conservative"
+;  V168 cse4        [V168,T03] (  3, 24   )     int  ->  [rbp-0x9C]  spill-single-def "CSE #18: aggressive"
+;  V169 cse5        [V169,T27] ( 13,  6.50)    long  ->  [rbp-0xA8]  spill-single-def "CSE #01: moderate"
+;  V170 rat0        [V170,T06] (  6, 17   )    long  ->  [rbp-0xB0]  "Widened IV V20"
+;  V171 rat1        [V171,T07] (  5, 16.50)    long  ->  [rbp-0xB8]  "Widened IV V23"
+;  V172 rat2        [V172,T00] (  6, 70   )    long  ->  [rbp-0xC0]  "Widened IV V27"
+;  V173 rat3        [V173,T63] (  3,  2.83)     int  ->  rdx         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 488
+; Lcl frame size = 504
 
 G_M46076_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 488
-       lea      rbp, [rsp+0x210]
+       sub      rsp, 504
+       lea      rbp, [rsp+0x220]
        xor      eax, eax
        mov      qword ptr [rbp-0x78], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x70], zmm8
        mov      dword ptr [rbp-0x2C], r9d
        mov      rbx, rdi
        mov      r13d, esi
        mov      r14, rdx
        mov      r15, rcx
        mov      r12d, r8d
 						;; size=65 bbWeight=1 PerfScore 12.58
 G_M46076_IG02:
        xor      rcx, rcx
        mov      gword ptr [r14], rcx
        mov      rcx, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfObject():System.Type
        call     [rcx]System.Runtime.Serialization.Globals:get_TypeOfObject():System.Type
        mov      rsi, rax
        mov      rdi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.DataContract+DataContractCriticalHelper:GetBuiltInDataContract(System.Type):System.Runtime.Serialization.DataContracts.DataContract
        call     [rax]System.Runtime.Serialization.DataContracts.DataContract+DataContractCriticalHelper:GetBuiltInDataContract(System.Type):System.Runtime.Serialization.DataContracts.DataContract
        test     rax, rax
        jne      G_M46076_IG85
 						;; size=52 bbWeight=1 PerfScore 10.75
 G_M46076_IG03:
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfCollectionDataContractAttribute():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfCollectionDataContractAttribute():System.Type
        mov      rsi, rax
        mov      rdi, rbx
        xor      edx, edx
        mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x48]
-       mov      qword ptr [rbp-0x80], rax
-       call     [rax+0x18]System.Reflection.MemberInfo:IsDefined(System.Type,ubyte):ubyte:this
+       mov      qword ptr [rbp-0xA8], rax
+       mov      rcx, qword ptr [rax+0x48]
+       mov      qword ptr [rbp-0x88], rcx
+       call     [rcx+0x18]System.Reflection.MemberInfo:IsDefined(System.Type,ubyte):ubyte:this
        mov      dword ptr [rbp-0x44], eax
        xor      ecx, ecx
        mov      dword ptr [rbp-0x48], ecx
        xor      rdi, rdi
        mov      gword ptr [rbp-0x50], rdi
-						;; size=48 bbWeight=0.50 PerfScore 7.75
+						;; size=58 bbWeight=0.50 PerfScore 8.25
 G_M46076_IG04:
        mov      gword ptr [rbp-0x58], rdi
        mov      rdi, rbx
-       mov      rdx, qword ptr [rbx]
-       mov      rdx, qword ptr [rdx+0x98]
-       mov      qword ptr [rbp-0x98], rdx
-       call     [rdx+0x20]System.Type:get_BaseType():System.Type:this
-       mov      gword ptr [rbp-0xC0], rax
+       mov      rdx, qword ptr [rbp-0xA8]
+       mov      rsi, qword ptr [rdx+0x98]
+       mov      qword ptr [rbp-0x98], rsi
+       call     [rsi+0x20]System.Type:get_BaseType():System.Type:this
+       mov      gword ptr [rbp-0xC8], rax
        test     rax, rax
        je       G_M46076_IG10
        mov      rcx, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfObject():System.Type
        call     [rcx]System.Runtime.Serialization.Globals:get_TypeOfObject():System.Type
        mov      rsi, rax
-       mov      rdi, gword ptr [rbp-0xC0]
+       mov      rdi, gword ptr [rbp-0xC8]
        mov      rax, 0xD1FFAB1E      ; code for System.Type:op_Equality(System.Type,System.Type):ubyte
        call     [rax]System.Type:op_Equality(System.Type,System.Type):ubyte
        test     eax, eax
        jne      G_M46076_IG10
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfValueType():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfValueType():System.Type
        mov      rsi, rax
-       mov      rdi, gword ptr [rbp-0xC0]
+       mov      rdi, gword ptr [rbp-0xC8]
        mov      rax, 0xD1FFAB1E      ; code for System.Type:op_Equality(System.Type,System.Type):ubyte
        call     [rax]System.Type:op_Equality(System.Type,System.Type):ubyte
        test     eax, eax
        jne      G_M46076_IG10
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfUri():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfUri():System.Type
        mov      rsi, rax
-       mov      rdi, gword ptr [rbp-0xC0]
+       mov      rdi, gword ptr [rbp-0xC8]
        mov      rax, 0xD1FFAB1E      ; code for System.Type:op_Equality(System.Type,System.Type):ubyte
        call     [rax]System.Type:op_Equality(System.Type,System.Type):ubyte
        test     eax, eax
        jne      G_M46076_IG10
-       mov      rdi, gword ptr [rbp-0xC0]
+       mov      rdi, gword ptr [rbp-0xC8]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x58]
        call     [rax+0x10]System.Type:IsArrayImpl():ubyte:this
        test     eax, eax
        je       SHORT G_M46076_IG06
-       mov      rdi, gword ptr [rbp-0xC0]
-						;; size=197 bbWeight=0.50 PerfScore 24.38
+       mov      rdi, gword ptr [rbp-0xC8]
+						;; size=201 bbWeight=0.50 PerfScore 23.88
 G_M46076_IG05:
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.DataContract+DataContractCriticalHelper:GetBuiltInDataContract(System.Type):System.Runtime.Serialization.DataContracts.DataContract
        call     [rax]System.Runtime.Serialization.DataContracts.DataContract+DataContractCriticalHelper:GetBuiltInDataContract(System.Type):System.Runtime.Serialization.DataContracts.DataContract
        test     rax, rax
        je       SHORT G_M46076_IG07
 						;; size=17 bbWeight=0.50 PerfScore 2.25
 G_M46076_IG06:
        lea      rdx, [rbp-0x78]
        lea      rcx, [rbp-0x70]
-       mov      rdi, gword ptr [rbp-0xC0]
+       mov      rdi, gword ptr [rbp-0xC8]
        xor      esi, esi
        mov      r8d, 1
        xor      r9d, r9d
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:IsCollectionOrTryCreate(System.Type,ubyte,byref,byref,ubyte,ubyte):ubyte
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:IsCollectionOrTryCreate(System.Type,ubyte,byref,byref,ubyte,ubyte):ubyte
        jmp      SHORT G_M46076_IG08
 						;; size=40 bbWeight=0.50 PerfScore 4.00
 G_M46076_IG07:
-       mov      rdi, gword ptr [rbp-0xC0]
+       mov      rdi, gword ptr [rbp-0xC8]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x68]
        call     [rax+0x08]System.Type:GetElementType():System.Type:this
        mov      gword ptr [rbp-0x70], rax
        mov      eax, 1
 						;; size=26 bbWeight=0.50 PerfScore 4.62
 G_M46076_IG08:
        xor      rdi, rdi
        mov      gword ptr [rbp-0x78], rdi
 						;; size=6 bbWeight=0.50 PerfScore 0.62
 G_M46076_IG09:
        mov      gword ptr [rbp-0x70], rdi
        test     eax, eax
        je       SHORT G_M46076_IG10
        mov      rdi, rbx
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0xA8]
-       call     [rax+0x38]System.Type:get_IsSerializable():ubyte:this
+       mov      rax, qword ptr [rbp-0xA8]
+       mov      rcx, qword ptr [rax+0xA8]
+       call     [rcx+0x38]System.Type:get_IsSerializable():ubyte:this
        test     eax, eax
        sete     al
        movzx    rax, al
        jmp      SHORT G_M46076_IG11
-						;; size=34 bbWeight=0.50 PerfScore 6.50
+						;; size=38 bbWeight=0.50 PerfScore 6.00
 G_M46076_IG10:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M46076_IG11:
        movzx    rax, al
        mov      dword ptr [rbp-0x5C], eax
        mov      rcx, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfDataContractAttribute():System.Type
        call     [rcx]System.Runtime.Serialization.Globals:get_TypeOfDataContractAttribute():System.Type
        mov      rsi, rax
        mov      rdi, rbx
        xor      edx, edx
-       mov      rax, qword ptr [rbp-0x80]
-       call     [rax+0x18]System.Reflection.MemberInfo:IsDefined(System.Type,ubyte):ubyte:this
+       mov      rcx, qword ptr [rbp-0x88]
+       call     [rcx+0x18]System.Reflection.MemberInfo:IsDefined(System.Type,ubyte):ubyte:this
        test     eax, eax
        jne      G_M46076_IG84
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfIXmlSerializable():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfIXmlSerializable():System.Type
        mov      rdi, rax
        mov      rsi, rbx
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0xB0]
        call     [rax+0x20]System.Type:IsAssignableFrom(System.Type):ubyte:this
        test     eax, eax
        jne      G_M46076_IG82
        mov      rdi, rbx
-       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:IsArraySegment(System.Type):ubyte
-       call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:IsArraySegment(System.Type):ubyte
+       mov      rax, qword ptr [rbp-0xA8]
+       mov      rcx, qword ptr [rax+0x60]
+       mov      qword ptr [rbp-0x80], rcx
+       call     [rcx+0x08]System.Type:get_IsGenericType():ubyte:this
        test     eax, eax
-       jne      G_M46076_IG82
+       je       SHORT G_M46076_IG12
+       mov      rdi, rbx
+       mov      rax, qword ptr [rbp-0xA8]
+       mov      rcx, qword ptr [rax+0x68]
+       call     [rcx+0x18]System.Type:GetGenericTypeDefinition():System.Type:this
+       mov      rcx, 0xD1FFAB1E      ; 'System.ArraySegment`1[T]'
+       cmp      rax, rcx
+       je       G_M46076_IG82
+						;; size=144 bbWeight=0.50 PerfScore 19.38
+G_M46076_IG12:
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfIEnumerable():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfIEnumerable():System.Type
        mov      rdi, rax
        mov      rsi, rbx
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0xB0]
        call     [rax+0x20]System.Type:IsAssignableFrom(System.Type):ubyte:this
        test     eax, eax
        je       G_M46076_IG81
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Type:get_IsInterface():ubyte:this
        call     [rax]System.Type:get_IsInterface():ubyte:this
        test     eax, eax
        je       G_M46076_IG16
        mov      rdi, rbx
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x60]
-						;; size=175 bbWeight=0.50 PerfScore 24.12
-G_M46076_IG12:
-       mov      qword ptr [rbp-0x88], rax
+       mov      rax, qword ptr [rbp-0x80]
        call     [rax+0x08]System.Type:get_IsGenericType():ubyte:this
        test     eax, eax
        je       SHORT G_M46076_IG13
        mov      rdi, rbx
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x68]
-       call     [rax+0x18]System.Type:GetGenericTypeDefinition():System.Type:this
+       mov      rax, qword ptr [rbp-0xA8]
+       mov      rcx, qword ptr [rax+0x68]
+       call     [rcx+0x18]System.Type:GetGenericTypeDefinition():System.Type:this
        jmp      SHORT G_M46076_IG14
-						;; size=29 bbWeight=0.50 PerfScore 7.25
+						;; size=95 bbWeight=0.50 PerfScore 15.25
 G_M46076_IG13:
        mov      rax, rbx
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M46076_IG14:
-       mov      gword ptr [rbp-0xD8], rax
+       mov      gword ptr [rbp-0xE0], rax
        mov      rcx, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper:get_KnownInterfaces():System.Type[]
        call     [rcx]System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper:get_KnownInterfaces():System.Type[]
-       mov      gword ptr [rbp-0xE0], rax
+       mov      gword ptr [rbp-0xE8], rax
        xor      ecx, ecx
        cmp      dword ptr [rax+0x08], 0
        jle      SHORT G_M46076_IG16
 						;; size=34 bbWeight=0.50 PerfScore 4.75
 G_M46076_IG15:
-       mov      qword ptr [rbp-0xA8], rcx
+       mov      qword ptr [rbp-0xB0], rcx
        mov      rdi, gword ptr [rax+8*rcx+0x10]
-       mov      rsi, gword ptr [rbp-0xD8]
+       mov      rsi, gword ptr [rbp-0xE0]
        mov      rdx, 0xD1FFAB1E      ; code for System.Type:op_Equality(System.Type,System.Type):ubyte
        call     [rdx]System.Type:op_Equality(System.Type,System.Type):ubyte
        test     eax, eax
        jne      G_M46076_IG67
-       mov      rdi, qword ptr [rbp-0xA8]
+       mov      rdi, qword ptr [rbp-0xB0]
        inc      edi
        mov      rax, rdi
-       mov      rdi, gword ptr [rbp-0xE0]
+       mov      rdi, gword ptr [rbp-0xE8]
        cmp      dword ptr [rdi+0x08], eax
        mov      rcx, rax
        jg       G_M46076_IG17
 						;; size=70 bbWeight=4 PerfScore 61.00
 G_M46076_IG16:
        xor      rcx, rcx
-       mov      gword ptr [rbp-0xC8], rcx
+       mov      gword ptr [rbp-0xD0], rcx
        mov      rdi, rbx
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x78]
+       mov      rdx, qword ptr [rbp-0xA8]
+       mov      rax, qword ptr [rdx+0x78]
        mov      qword ptr [rbp-0x90], rax
        call     [rax+0x08]System.Type:IsValueTypeImpl():ubyte:this
        test     eax, eax
        jne      G_M46076_IG19
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r8, gword ptr [rdi]
        mov      rdi, rbx
        mov      esi, 52
        xor      rdx, rdx
        mov      ecx, 3
        xor      r9, r9
        mov      rax, qword ptr [rbp-0x90]
        call     [rax+0x38]System.Type:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
-       mov      gword ptr [rbp-0xC8], rax
+       mov      gword ptr [rbp-0xD0], rax
        test     rax, rax
        sete     dil
        movzx    rdi, dil
        movzx    rcx, r12b
        test     edi, ecx
        je       SHORT G_M46076_IG19
        mov      rdi, rbx
-       mov      rcx, qword ptr [rbx]
-       mov      rcx, qword ptr [rcx+0xA8]
-       call     [rcx+0x38]System.Type:get_IsSerializable():ubyte:this
+       mov      rcx, qword ptr [rbp-0xA8]
+       mov      rdx, qword ptr [rcx+0xA8]
+       call     [rdx+0x38]System.Type:get_IsSerializable():ubyte:this
        test     eax, eax
        je       SHORT G_M46076_IG18
        jmp      G_M46076_IG66
-						;; size=129 bbWeight=0.50 PerfScore 16.38
+						;; size=137 bbWeight=0.50 PerfScore 15.38
 G_M46076_IG17:
        mov      rax, rdi
        jmp      G_M46076_IG15
 						;; size=8 bbWeight=2 PerfScore 4.50
 G_M46076_IG18:
        mov      dword ptr [rbp-0x48], 1
        mov      rdi, 0xD1FFAB1E      ; 'CollectionTypeDoesNotHaveDefaultCtor'
        mov      rcx, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rcx]System.SR:GetResourceString(System.String):System.String
        mov      rdx, rax
        lea      r9, [rbp-0x58]
        lea      r8, [rbp-0x50]
        mov      esi, dword ptr [rbp-0x44]
        mov      rdi, rbx
        xor      rcx, rcx
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:GetReadOnlyCollectionExceptionMessages(System.Type,ubyte,System.String,System.String,byref,byref)
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:GetReadOnlyCollectionExceptionMessages(System.Type,ubyte,System.String,System.String,byref,byref)
 						;; size=60 bbWeight=0.50 PerfScore 5.25
 G_M46076_IG19:
        xor      rax, rax
-       mov      gword ptr [rbp-0xD0], rax
+       mov      gword ptr [rbp-0xD8], rax
        xor      ecx, ecx
        mov      dword ptr [rbp-0x60], ecx
        xor      edx, edx
        mov      dword ptr [rbp-0x64], edx
        mov      rdi, rbx
        mov      rsi, qword ptr [rbp-0x98]
        call     [rsi+0x38]System.Type:GetInterfaces():System.Type[]:this
-       mov      gword ptr [rbp-0xF0], rax
+       mov      gword ptr [rbp-0xF8], rax
        xor      ecx, ecx
        cmp      dword ptr [rax+0x08], 0
        jle      SHORT G_M46076_IG21
 						;; size=47 bbWeight=0.50 PerfScore 6.62
 G_M46076_IG20:
-       mov      qword ptr [rbp-0xB0], rcx
+       mov      qword ptr [rbp-0xB8], rcx
        mov      rdx, gword ptr [rax+8*rcx+0x10]
-       mov      gword ptr [rbp-0xF8], rdx
+       mov      gword ptr [rbp-0x100], rdx
        mov      rdi, rdx
        mov      rsi, qword ptr [rdx]
        mov      rsi, qword ptr [rsi+0x60]
        call     [rsi+0x08]System.Type:get_IsGenericType():ubyte:this
        test     eax, eax
        jne      SHORT G_M46076_IG22
        jmp      SHORT G_M46076_IG23
 						;; size=38 bbWeight=4 PerfScore 58.00
 G_M46076_IG21:
-       mov      r10, gword ptr [rbp-0xD0]
+       mov      r10, gword ptr [rbp-0xD8]
        jmp      G_M46076_IG33
 						;; size=12 bbWeight=0.25 PerfScore 0.75
 G_M46076_IG22:
-       mov      rdi, gword ptr [rbp-0xF8]
+       mov      rdi, gword ptr [rbp-0x100]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x68]
        call     [rax+0x18]System.Type:GetGenericTypeDefinition():System.Type:this
        jmp      SHORT G_M46076_IG24
 						;; size=19 bbWeight=2 PerfScore 20.00
 G_M46076_IG23:
-       mov      rax, gword ptr [rbp-0xF8]
+       mov      rax, gword ptr [rbp-0x100]
        mov      rcx, rax
        mov      rax, rcx
 						;; size=13 bbWeight=2 PerfScore 3.00
 G_M46076_IG24:
-       mov      gword ptr [rbp-0x100], rax
+       mov      gword ptr [rbp-0x108], rax
        mov      rcx, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper:get_KnownInterfaces():System.Type[]
        call     [rcx]System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper:get_KnownInterfaces():System.Type[]
-       mov      gword ptr [rbp-0x108], rax
+       mov      gword ptr [rbp-0x110], rax
        xor      ecx, ecx
        mov      edx, dword ptr [rax+0x08]
        mov      dword ptr [rbp-0x9C], edx
        test     edx, edx
        jle      SHORT G_M46076_IG26
 						;; size=41 bbWeight=4 PerfScore 39.00
 G_M46076_IG25:
-       mov      qword ptr [rbp-0xB8], rcx
+       mov      qword ptr [rbp-0xC0], rcx
        mov      rdi, gword ptr [rax+8*rcx+0x10]
-       mov      rsi, gword ptr [rbp-0x100]
+       mov      rsi, gword ptr [rbp-0x108]
        mov      r8, 0xD1FFAB1E      ; code for System.Type:op_Equality(System.Type,System.Type):ubyte
        call     [r8]System.Type:op_Equality(System.Type,System.Type):ubyte
        test     eax, eax
        je       SHORT G_M46076_IG27
        jmp      SHORT G_M46076_IG29
 						;; size=38 bbWeight=16 PerfScore 168.00
 G_M46076_IG26:
-       mov      r10, gword ptr [rbp-0xD0]
+       mov      r10, gword ptr [rbp-0xD8]
        jmp      G_M46076_IG32
 						;; size=12 bbWeight=2 PerfScore 6.00
 G_M46076_IG27:
-       mov      r8, qword ptr [rbp-0xB8]
+       mov      r8, qword ptr [rbp-0xC0]
        inc      r8d
        mov      r9d, dword ptr [rbp-0x9C]
        cmp      r9d, r8d
        mov      rcx, r8
-       mov      rax, gword ptr [rbp-0x108]
+       mov      rax, gword ptr [rbp-0x110]
        jg       SHORT G_M46076_IG25
 						;; size=32 bbWeight=16 PerfScore 76.00
 G_M46076_IG28:
-       mov      r10, gword ptr [rbp-0xD0]
+       mov      r10, gword ptr [rbp-0xD8]
        jmp      SHORT G_M46076_IG32
 						;; size=9 bbWeight=8 PerfScore 24.00
 G_M46076_IG29:
-       mov      r8, qword ptr [rbp-0xB8]
+       mov      r8, qword ptr [rbp-0xC0]
        inc      r8d
        movzx    r8, r8b
        mov      eax, dword ptr [rbp-0x60]
        test     eax, eax
        je       SHORT G_M46076_IG31
        cmp      r8d, eax
        jl       SHORT G_M46076_IG31
        mov      r9d, eax
        and      r9d, r8d
        cmp      r9d, r8d
        jne      SHORT G_M46076_IG30
        mov      r10d, 1
        mov      dword ptr [rbp-0x60], eax
        mov      dword ptr [rbp-0x64], r10d
-       mov      r10, gword ptr [rbp-0xD0]
+       mov      r10, gword ptr [rbp-0xD8]
        jmp      SHORT G_M46076_IG32
 						;; size=59 bbWeight=2 PerfScore 24.00
 G_M46076_IG30:
        mov      dword ptr [rbp-0x60], eax
-       mov      r10, gword ptr [rbp-0xD0]
+       mov      r10, gword ptr [rbp-0xD8]
        jmp      SHORT G_M46076_IG32
 						;; size=12 bbWeight=1 PerfScore 4.00
 G_M46076_IG31:
        mov      eax, r8d
-       mov      r10, gword ptr [rbp-0xF8]
+       mov      r10, gword ptr [rbp-0x100]
        xor      r8d, r8d
        xor      r11d, r11d
        mov      dword ptr [rbp-0x60], eax
        mov      dword ptr [rbp-0x64], r11d
 						;; size=23 bbWeight=2 PerfScore 7.50
 G_M46076_IG32:
-       mov      r8, qword ptr [rbp-0xB0]
+       mov      r8, qword ptr [rbp-0xB8]
        inc      r8d
-       mov      r9, gword ptr [rbp-0xF0]
+       mov      r9, gword ptr [rbp-0xF8]
        cmp      dword ptr [r9+0x08], r8d
        mov      rax, r9
        mov      rcx, r8
        jg       SHORT G_M46076_IG36
 						;; size=29 bbWeight=4 PerfScore 27.00
 G_M46076_IG33:
        mov      eax, dword ptr [rbp-0x60]
        test     eax, eax
        je       G_M46076_IG81
        cmp      eax, 8
        ja       SHORT G_M46076_IG35
 						;; size=16 bbWeight=0.50 PerfScore 1.75
 G_M46076_IG34:
        mov      ecx, 63
        mov      dword ptr [rbp-0x60], eax
        bt       ecx, eax
        mov      eax, dword ptr [rbp-0x60]
        jae      G_M46076_IG53
 						;; size=20 bbWeight=0.49 PerfScore 1.84
 G_M46076_IG35:
        cmp      dword ptr [rbp-0x64], 0
        je       SHORT G_M46076_IG37
        jmp      G_M46076_IG52
 						;; size=11 bbWeight=0.50 PerfScore 2.50
 G_M46076_IG36:
-       mov      gword ptr [rbp-0xD0], r10
+       mov      gword ptr [rbp-0xD8], r10
        jmp      G_M46076_IG20
 						;; size=12 bbWeight=2 PerfScore 6.00
 G_M46076_IG37:
        xor      rcx, rcx
        mov      dword ptr [rbp-0x60], eax
        lea      edx, [rax-0x01]
        cmp      edx, 4
        ja       G_M46076_IG48
 						;; size=17 bbWeight=0.50 PerfScore 1.50
 G_M46076_IG38:
        mov      ecx, edx
        lea      rdx, [reloc @RWD00]
        mov      edx, dword ptr [rdx+4*rcx]
        lea      rdi, G_M46076_IG02
        add      rdx, rdi
        jmp      rdx
 						;; size=24 bbWeight=0.42 PerfScore 2.50
 G_M46076_IG39:
-       mov      gword ptr [rbp-0xD0], r10
+       mov      gword ptr [rbp-0xD8], r10
        mov      rcx, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfObject():System.Type
        call     [rcx]System.Runtime.Serialization.Globals:get_TypeOfObject():System.Type
        mov      rsi, rax
        mov      rdi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      rdi, 0xD1FFAB1E      ; System.Type[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      rcx, rax
-       mov      gword ptr [rbp-0x130], rcx
+       mov      gword ptr [rbp-0x138], rcx
        mov      rdx, gword ptr [r15]
        mov      rdi, rcx
        xor      esi, esi
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
        call     [rax]CORINFO_HELP_ARRADDR_ST
-       mov      rcx, gword ptr [rbp-0x130]
+       mov      rcx, gword ptr [rbp-0x138]
        mov      rax, rcx
        mov      rcx, rax
-       mov      r10, gword ptr [rbp-0xD0]
+       mov      r10, gword ptr [rbp-0xD8]
        jmp      G_M46076_IG48
 						;; size=105 bbWeight=0.50 PerfScore 9.38
 G_M46076_IG40:
        mov      rdi, r10
-       mov      gword ptr [rbp-0xD0], r10
+       mov      gword ptr [rbp-0xD8], r10
        mov      rcx, qword ptr [r10]
        mov      rcx, qword ptr [rcx+0x68]
        call     [rcx+0x28]System.Type:GetGenericArguments():System.Type[]:this
        cmp      dword ptr [rax+0x08], 0
        jbe      G_M46076_IG89
-       mov      gword ptr [rbp-0x110], rax
+       mov      gword ptr [rbp-0x118], rax
        mov      rsi, gword ptr [rax+0x10]
        mov      rdi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      rcx, gword ptr [rbp-0x110]
-       mov      r10, gword ptr [rbp-0xD0]
+       mov      rcx, gword ptr [rbp-0x118]
+       mov      r10, gword ptr [rbp-0xD8]
        jmp      G_M46076_IG48
 						;; size=68 bbWeight=0.50 PerfScore 10.25
 G_M46076_IG41:
-       mov      gword ptr [rbp-0xD0], r10
+       mov      gword ptr [rbp-0xD8], r10
        mov      rdi, 0xD1FFAB1E      ; System.Type[]
        mov      esi, 2
        call     CORINFO_HELP_NEWARR_1_OBJ
-       mov      gword ptr [rbp-0x138], rax
+       mov      gword ptr [rbp-0x140], rax
        mov      rcx, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfObject():System.Type
        call     [rcx]System.Runtime.Serialization.Globals:get_TypeOfObject():System.Type
-       mov      rcx, gword ptr [rbp-0x138]
+       mov      rcx, gword ptr [rbp-0x140]
        lea      rdi, bword ptr [rcx+0x10]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfObject():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfObject():System.Type
-       mov      rcx, gword ptr [rbp-0x138]
+       mov      rcx, gword ptr [rbp-0x140]
        lea      rdi, bword ptr [rcx+0x18]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rax, gword ptr [rbp-0x138]
-       mov      gword ptr [rbp-0x110], rax
+       mov      rax, gword ptr [rbp-0x140]
+       mov      gword ptr [rbp-0x118], rax
        mov      rcx, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfKeyValue():System.Type
        call     [rcx]System.Runtime.Serialization.Globals:get_TypeOfKeyValue():System.Type
        mov      rdi, rax
-       mov      rsi, gword ptr [rbp-0x110]
+       mov      rsi, gword ptr [rbp-0x118]
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0xA8]
        call     [rax+0x08]System.Type:MakeGenericType(System.Type[]):System.Type:this
        mov      rsi, rax
        mov      rdi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      rcx, gword ptr [rbp-0x110]
-       mov      r10, gword ptr [rbp-0xD0]
+       mov      rcx, gword ptr [rbp-0x118]
+       mov      r10, gword ptr [rbp-0xD8]
        jmp      G_M46076_IG48
 						;; size=175 bbWeight=0.50 PerfScore 17.25
 G_M46076_IG42:
        mov      rdi, r10
-       mov      gword ptr [rbp-0xD0], r10
+       mov      gword ptr [rbp-0xD8], r10
        mov      rcx, qword ptr [r10]
        mov      rcx, qword ptr [rcx+0x68]
        call     [rcx+0x28]System.Type:GetGenericArguments():System.Type[]:this
-       mov      gword ptr [rbp-0x110], rax
-       mov      rdi, gword ptr [rbp-0xD0]
-       mov      gword ptr [rbp-0xD0], rdi
+       mov      gword ptr [rbp-0x118], rax
+       mov      rdi, gword ptr [rbp-0xD8]
+       mov      gword ptr [rbp-0xD8], rdi
        mov      rcx, qword ptr [rdi]
        mov      rcx, qword ptr [rcx+0x60]
        call     [rcx+0x10]System.Type:get_IsGenericTypeDefinition():ubyte:this
        test     eax, eax
        je       SHORT G_M46076_IG43
        mov      eax, 1
        jmp      SHORT G_M46076_IG45
 						;; size=62 bbWeight=0.50 PerfScore 10.88
 G_M46076_IG43:
-       mov      rcx, gword ptr [rbp-0x110]
+       mov      rcx, gword ptr [rbp-0x118]
        cmp      dword ptr [rcx+0x08], 0
        jbe      G_M46076_IG89
-       mov      gword ptr [rbp-0x110], rcx
+       mov      gword ptr [rbp-0x118], rcx
        mov      rdi, gword ptr [rcx+0x10]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x58]
        call     [rax+0x30]System.Type:get_IsGenericParameter():ubyte:this
        test     eax, eax
        jne      SHORT G_M46076_IG44
        xor      eax, eax
        jmp      SHORT G_M46076_IG45
 						;; size=46 bbWeight=0.50 PerfScore 9.25
 G_M46076_IG44:
-       mov      rcx, gword ptr [rbp-0x110]
+       mov      rcx, gword ptr [rbp-0x118]
        cmp      dword ptr [rcx+0x08], 1
        jbe      G_M46076_IG89
-       mov      gword ptr [rbp-0x110], rcx
+       mov      gword ptr [rbp-0x118], rcx
        mov      rdi, gword ptr [rcx+0x18]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x58]
        call     [rax+0x30]System.Type:get_IsGenericParameter():ubyte:this
 						;; size=38 bbWeight=0.50 PerfScore 7.50
 G_M46076_IG45:
        movzx    rax, al
        test     eax, eax
        je       SHORT G_M46076_IG46
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfKeyValue():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfKeyValue():System.Type
        jmp      SHORT G_M46076_IG47
 						;; size=21 bbWeight=0.50 PerfScore 3.38
 G_M46076_IG46:
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfKeyValue():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfKeyValue():System.Type
        mov      rdi, rax
-       mov      rsi, gword ptr [rbp-0x110]
+       mov      rsi, gword ptr [rbp-0x118]
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0xA8]
        call     [rax+0x08]System.Type:MakeGenericType(System.Type[]):System.Type:this
 						;; size=35 bbWeight=0.50 PerfScore 5.75
 G_M46076_IG47:
        mov      rdi, r15
        mov      rsi, rax
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      rcx, gword ptr [rbp-0x110]
-       mov      r10, gword ptr [rbp-0xD0]
+       mov      rcx, gword ptr [rbp-0x118]
+       mov      r10, gword ptr [rbp-0xD8]
 						;; size=25 bbWeight=0.50 PerfScore 1.75
 G_M46076_IG48:
        test     r13b, r13b
        je       G_M46076_IG62
        lea      r8, [rbp-0x40]
        lea      r9, [rbp-0x38]
        mov      rdi, rbx
        mov      rsi, r10
        mov      rdx, rcx
        mov      ecx, 1
        mov      r10, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:GetCollectionMethods(System.Type,System.Type,System.Type[],ubyte,byref,byref)
        call     [r10]System.Runtime.Serialization.DataContracts.CollectionDataContract:GetCollectionMethods(System.Type,System.Type,System.Type[],ubyte,byref,byref)
        mov      r13d, dword ptr [rbp-0x48]
        test     r13d, r13d
        je       G_M46076_IG50
        mov      rdi, 0xD1FFAB1E      ; System.Runtime.Serialization.DataContracts.CollectionDataContract
        call     CORINFO_HELP_NEWSFAST
        mov      r12, rax
        mov      r15, gword ptr [r15]
        mov      rax, gword ptr [rbp-0x40]
-       mov      gword ptr [rbp-0x1D8], rax
+       mov      gword ptr [rbp-0x1E0], rax
        mov      rcx, gword ptr [rbp-0x50]
-       mov      gword ptr [rbp-0x1E0], rcx
+       mov      gword ptr [rbp-0x1E8], rcx
        mov      rdx, gword ptr [rbp-0x58]
-       mov      gword ptr [rbp-0x1E8], rdx
+       mov      gword ptr [rbp-0x1F0], rdx
        mov      rdi, 0xD1FFAB1E      ; System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x1F0], rax
-       mov      rdi, gword ptr [rbp-0x1E8]
+       mov      gword ptr [rbp-0x1F8], rax
+       mov      rdi, gword ptr [rbp-0x1F0]
        mov      gword ptr [rsp], rdi
        mov      rdi, rax
        mov      rsi, rbx
        mov      edx, dword ptr [rbp-0x60]
        mov      rcx, r15
-       mov      r8, gword ptr [rbp-0x1D8]
-       mov      r9, gword ptr [rbp-0x1E0]
+       mov      r8, gword ptr [rbp-0x1E0]
+       mov      r9, gword ptr [rbp-0x1E8]
        mov      r10, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper:.ctor(System.Type,ubyte,System.Type,System.Reflection.MethodInfo,System.String,System.String):this
        call     [r10]System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper:.ctor(System.Type,ubyte,System.Type,System.Reflection.MethodInfo,System.String,System.String):this
        lea      rdi, bword ptr [r12+0x18]
-       mov      rsi, gword ptr [rbp-0x1F0]
+       mov      rsi, gword ptr [rbp-0x1F8]
        call     CORINFO_HELP_ASSIGN_REF
-       mov      r15, gword ptr [rbp-0x1F0]
+       mov      r15, gword ptr [rbp-0x1F8]
        mov      rsi, gword ptr [r15+0x28]
        lea      rdi, bword ptr [r12+0x08]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rsi, gword ptr [r15+0x30]
        lea      rdi, bword ptr [r12+0x10]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, r12
 						;; size=238 bbWeight=0.50 PerfScore 20.12
 G_M46076_IG49:
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:GetSharedTypeContract(System.Type):System.Runtime.Serialization.DataContracts.DataContract:this
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:GetSharedTypeContract(System.Type):System.Runtime.Serialization.DataContracts.DataContract:this
        mov      rsi, rax
        mov      rdi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:InitCollectionDataContract(System.Runtime.Serialization.DataContracts.DataContract):this
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:InitCollectionDataContract(System.Runtime.Serialization.DataContracts.DataContract):this
        jmp      G_M46076_IG51
 						;; size=38 bbWeight=0.50 PerfScore 4.62
 G_M46076_IG50:
        mov      rdi, 0xD1FFAB1E      ; System.Runtime.Serialization.DataContracts.CollectionDataContract
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x128], rax
+       mov      gword ptr [rbp-0x130], rax
        mov      r15, gword ptr [r15]
        mov      rcx, gword ptr [rbp-0x40]
-       mov      gword ptr [rbp-0x1C0], rcx
+       mov      gword ptr [rbp-0x1C8], rcx
        mov      rdx, gword ptr [rbp-0x38]
-       mov      gword ptr [rbp-0x1C8], rdx
+       mov      gword ptr [rbp-0x1D0], rdx
        mov      rdi, 0xD1FFAB1E      ; System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x1D0], rax
-       mov      r10, gword ptr [rbp-0xC8]
+       mov      gword ptr [rbp-0x1D8], rax
+       mov      r10, gword ptr [rbp-0xD0]
        mov      gword ptr [rsp], r10
        mov      rdi, rax
        mov      rsi, rbx
        mov      edx, dword ptr [rbp-0x60]
        mov      rcx, r15
-       mov      r8, gword ptr [rbp-0x1C0]
-       mov      r9, gword ptr [rbp-0x1C8]
+       mov      r8, gword ptr [rbp-0x1C8]
+       mov      r9, gword ptr [rbp-0x1D0]
        mov      r10, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper:.ctor(System.Type,ubyte,System.Type,System.Reflection.MethodInfo,System.Reflection.MethodInfo,System.Reflection.ConstructorInfo):this
        call     [r10]System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper:.ctor(System.Type,ubyte,System.Type,System.Reflection.MethodInfo,System.Reflection.MethodInfo,System.Reflection.ConstructorInfo):this
        test     r12b, r12b
        sete     dil
-       mov      r12, gword ptr [rbp-0x1D0]
+       mov      r12, gword ptr [rbp-0x1D8]
        mov      byte  ptr [r12+0xF0], dil
-       mov      r15, gword ptr [rbp-0x128]
+       mov      r15, gword ptr [rbp-0x130]
        lea      rdi, bword ptr [r15+0x18]
        mov      rsi, r12
        call     CORINFO_HELP_ASSIGN_REF
        mov      rsi, gword ptr [r12+0x28]
        lea      rdi, bword ptr [r15+0x08]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rsi, gword ptr [r12+0x30]
        lea      rdi, bword ptr [r15+0x10]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, r15
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:GetSharedTypeContract(System.Type):System.Runtime.Serialization.DataContracts.DataContract:this
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:GetSharedTypeContract(System.Type):System.Runtime.Serialization.DataContracts.DataContract:this
        mov      rsi, rax
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:InitCollectionDataContract(System.Runtime.Serialization.DataContracts.DataContract):this
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:InitCollectionDataContract(System.Runtime.Serialization.DataContracts.DataContract):this
        mov      r12, r15
 						;; size=227 bbWeight=0.50 PerfScore 20.12
 G_M46076_IG51:
        mov      rdi, r14
        mov      rsi, r12
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      dword ptr [rbp-0x48], r13d
        jmp      G_M46076_IG62
 						;; size=20 bbWeight=0.50 PerfScore 2.25
 G_M46076_IG52:
        mov      dword ptr [rbp-0x60], eax
        mov      rdi, 0xD1FFAB1E      ; 'CollectionTypeHasMultipleDefinitionsOfInterface'
        mov      rcx, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rcx]System.SR:GetResourceString(System.String):System.String
        mov      r15, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper:get_KnownInterfaces():System.Type[]
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper:get_KnownInterfaces():System.Type[]
        mov      r12d, dword ptr [rbp-0x60]
        lea      edi, [r12-0x01]
        cmp      edi, dword ptr [rax+0x08]
        jae      G_M46076_IG89
        lea      edx, [r12-0x01]
        mov      edi, edx
        mov      rdi, gword ptr [rax+8*rdi+0x10]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x30]System.Reflection.MemberInfo:get_Name():System.String:this
        mov      r9, rax
        mov      bword ptr [rsp], r14
        mov      r8, r15
        movzx    rsi, r13b
        mov      edx, dword ptr [rbp-0x44]
        mov      ecx, dword ptr [rbp-0x5C]
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:HandleIfInvalidCollection(System.Type,ubyte,ubyte,ubyte,System.String,System.String,byref):ubyte
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:HandleIfInvalidCollection(System.Type,ubyte,ubyte,ubyte,System.String,System.String,byref):ubyte
        jmp      G_M46076_IG86
 						;; size=120 bbWeight=0.50 PerfScore 16.25
 G_M46076_IG53:
        cmp      dword ptr [rbp-0x64], 0
        mov      dword ptr [rbp-0x60], eax
        je       SHORT G_M46076_IG54
        mov      rcx, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfIEnumerable():System.Type
        call     [rcx]System.Runtime.Serialization.Globals:get_TypeOfIEnumerable():System.Type
        mov      r10, rax
 						;; size=24 bbWeight=0.50 PerfScore 3.75
 G_M46076_IG54:
        mov      rdi, r10
-       mov      gword ptr [rbp-0xD0], r10
+       mov      gword ptr [rbp-0xD8], r10
        mov      rcx, qword ptr [r10]
        mov      rcx, qword ptr [rcx+0x60]
        call     [rcx+0x08]System.Type:get_IsGenericType():ubyte:this
        test     eax, eax
        je       SHORT G_M46076_IG55
-       mov      rdi, gword ptr [rbp-0xD0]
-       mov      gword ptr [rbp-0xD0], rdi
+       mov      rdi, gword ptr [rbp-0xD8]
+       mov      gword ptr [rbp-0xD8], rdi
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x68]
        call     [rax+0x28]System.Type:GetGenericArguments():System.Type[]:this
        cmp      dword ptr [rax+0x08], 0
        jbe      G_M46076_IG89
        mov      rsi, gword ptr [rax+0x10]
        jmp      SHORT G_M46076_IG56
 						;; size=64 bbWeight=0.50 PerfScore 13.25
 G_M46076_IG55:
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfObject():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfObject():System.Type
        mov      rsi, rax
 						;; size=15 bbWeight=0.50 PerfScore 1.75
 G_M46076_IG56:
        mov      rdi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      rdi, 0xD1FFAB1E      ; System.Type[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_OBJ
-       mov      gword ptr [rbp-0x118], rax
+       mov      gword ptr [rbp-0x120], rax
        mov      rdx, gword ptr [r15]
        mov      rdi, rax
        xor      esi, esi
        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
        call     [rcx]CORINFO_HELP_ARRADDR_ST
        lea      r8, [rbp-0x40]
        lea      r9, [rbp-0x38]
        mov      rdi, rbx
-       mov      rsi, gword ptr [rbp-0xD0]
-       mov      rdx, gword ptr [rbp-0x118]
+       mov      rsi, gword ptr [rbp-0xD8]
+       mov      rdx, gword ptr [rbp-0x120]
        xor      ecx, ecx
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:GetCollectionMethods(System.Type,System.Type,System.Type[],ubyte,byref,byref)
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:GetCollectionMethods(System.Type,System.Type,System.Type[],ubyte,byref,byref)
        mov      rdi, gword ptr [rbp-0x38]
        test     rdi, rdi
        jne      SHORT G_M46076_IG58
        mov      rdi, rbx
-       mov      rax, qword ptr [rbx]
+       mov      rax, qword ptr [rbp-0xA8]
        mov      rax, qword ptr [rax+0xA8]
        call     [rax+0x38]System.Type:get_IsSerializable():ubyte:this
        movzx    rdi, byte  ptr [rbp-0x2C]
        or       edi, eax
        jne      G_M46076_IG63
        mov      dword ptr [rbp-0x48], 1
        mov      rdi, 0xD1FFAB1E      ; 'CollectionTypeDoesNotHaveAddMethod'
        mov      rdx, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rdx]System.SR:GetResourceString(System.String):System.String
-       mov      gword ptr [rbp-0x1F8], rax
+       mov      gword ptr [rbp-0x200], rax
        mov      rdi, gword ptr [r15]
        mov      rcx, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.DataContract:GetClrTypeFullName(System.Type):System.String
        call     [rcx]System.Runtime.Serialization.DataContracts.DataContract:GetClrTypeFullName(System.Type):System.String
        mov      rcx, rax
-       mov      rdx, gword ptr [rbp-0x1F8]
+       mov      rdx, gword ptr [rbp-0x200]
        lea      r8, [rbp-0x50]
        lea      r9, [rbp-0x58]
        mov      rdi, rbx
        mov      esi, dword ptr [rbp-0x44]
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:GetReadOnlyCollectionExceptionMessages(System.Type,ubyte,System.String,System.String,byref,byref)
-						;; size=217 bbWeight=0.50 PerfScore 21.25
+						;; size=221 bbWeight=0.50 PerfScore 20.75
 G_M46076_IG57:
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:GetReadOnlyCollectionExceptionMessages(System.Type,ubyte,System.String,System.String,byref,byref)
 						;; size=2 bbWeight=0.50 PerfScore 1.50
 G_M46076_IG58:
        test     r13b, r13b
        je       G_M46076_IG62
        mov      r13d, dword ptr [rbp-0x48]
        test     r13d, r13d
        je       G_M46076_IG60
        mov      rdi, 0xD1FFAB1E      ; System.Runtime.Serialization.DataContracts.CollectionDataContract
        call     CORINFO_HELP_NEWSFAST
        mov      r12, rax
        mov      r15, gword ptr [r15]
        mov      rax, gword ptr [rbp-0x40]
-       mov      gword ptr [rbp-0x1A0], rax
+       mov      gword ptr [rbp-0x1A8], rax
        mov      rcx, gword ptr [rbp-0x50]
-       mov      gword ptr [rbp-0x1A8], rcx
+       mov      gword ptr [rbp-0x1B0], rcx
        mov      rdx, gword ptr [rbp-0x58]
-       mov      gword ptr [rbp-0x1B0], rdx
+       mov      gword ptr [rbp-0x1B8], rdx
        mov      rdi, 0xD1FFAB1E      ; System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x1B8], rax
-       mov      rdi, gword ptr [rbp-0x1B0]
+       mov      gword ptr [rbp-0x1C0], rax
+       mov      rdi, gword ptr [rbp-0x1B8]
        mov      gword ptr [rsp], rdi
        mov      rdi, rax
        mov      rsi, rbx
        mov      edx, dword ptr [rbp-0x60]
        mov      rcx, r15
-       mov      r8, gword ptr [rbp-0x1A0]
-       mov      r9, gword ptr [rbp-0x1A8]
+       mov      r8, gword ptr [rbp-0x1A8]
+       mov      r9, gword ptr [rbp-0x1B0]
        mov      r10, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper:.ctor(System.Type,ubyte,System.Type,System.Reflection.MethodInfo,System.String,System.String):this
        call     [r10]System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper:.ctor(System.Type,ubyte,System.Type,System.Reflection.MethodInfo,System.String,System.String):this
        lea      rdi, bword ptr [r12+0x18]
-       mov      rsi, gword ptr [rbp-0x1B8]
+       mov      rsi, gword ptr [rbp-0x1C0]
        call     CORINFO_HELP_ASSIGN_REF
-       mov      r15, gword ptr [rbp-0x1B8]
+       mov      r15, gword ptr [rbp-0x1C0]
        mov      rsi, gword ptr [r15+0x28]
        lea      rdi, bword ptr [r12+0x08]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rsi, gword ptr [r15+0x30]
        lea      rdi, bword ptr [r12+0x10]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, r12
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:GetSharedTypeContract(System.Type):System.Runtime.Serialization.DataContracts.DataContract:this
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:GetSharedTypeContract(System.Type):System.Runtime.Serialization.DataContracts.DataContract:this
        mov      rsi, rax
        mov      rdi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:InitCollectionDataContract(System.Runtime.Serialization.DataContracts.DataContract):this
 						;; size=234 bbWeight=0.50 PerfScore 19.62
 G_M46076_IG59:
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:InitCollectionDataContract(System.Runtime.Serialization.DataContracts.DataContract):this
        jmp      G_M46076_IG61
 						;; size=7 bbWeight=0.50 PerfScore 2.50
 G_M46076_IG60:
        mov      rdi, 0xD1FFAB1E      ; System.Runtime.Serialization.DataContracts.CollectionDataContract
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x120], rax
+       mov      gword ptr [rbp-0x128], rax
        mov      r15, gword ptr [r15]
        mov      rcx, gword ptr [rbp-0x40]
-       mov      gword ptr [rbp-0x188], rcx
+       mov      gword ptr [rbp-0x190], rcx
        mov      rdx, gword ptr [rbp-0x38]
-       mov      gword ptr [rbp-0x190], rdx
+       mov      gword ptr [rbp-0x198], rdx
        mov      rdi, 0xD1FFAB1E      ; System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x198], rax
-       mov      r10, gword ptr [rbp-0xC8]
+       mov      gword ptr [rbp-0x1A0], rax
+       mov      r10, gword ptr [rbp-0xD0]
        mov      gword ptr [rsp], r10
        mov      rdi, rax
        mov      rsi, rbx
        mov      edx, dword ptr [rbp-0x60]
        mov      rcx, r15
-       mov      r8, gword ptr [rbp-0x188]
-       mov      r9, gword ptr [rbp-0x190]
+       mov      r8, gword ptr [rbp-0x190]
+       mov      r9, gword ptr [rbp-0x198]
        mov      r10, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper:.ctor(System.Type,ubyte,System.Type,System.Reflection.MethodInfo,System.Reflection.MethodInfo,System.Reflection.ConstructorInfo):this
        call     [r10]System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper:.ctor(System.Type,ubyte,System.Type,System.Reflection.MethodInfo,System.Reflection.MethodInfo,System.Reflection.ConstructorInfo):this
        test     r12b, r12b
        sete     dil
-       mov      r12, gword ptr [rbp-0x198]
+       mov      r12, gword ptr [rbp-0x1A0]
        mov      byte  ptr [r12+0xF0], dil
-       mov      r15, gword ptr [rbp-0x120]
+       mov      r15, gword ptr [rbp-0x128]
        lea      rdi, bword ptr [r15+0x18]
        mov      rsi, r12
        call     CORINFO_HELP_ASSIGN_REF
        mov      rsi, gword ptr [r12+0x28]
        lea      rdi, bword ptr [r15+0x08]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rsi, gword ptr [r12+0x30]
        lea      rdi, bword ptr [r15+0x10]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, r15
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:GetSharedTypeContract(System.Type):System.Runtime.Serialization.DataContracts.DataContract:this
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:GetSharedTypeContract(System.Type):System.Runtime.Serialization.DataContracts.DataContract:this
        mov      rsi, rax
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:InitCollectionDataContract(System.Runtime.Serialization.DataContracts.DataContract):this
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:InitCollectionDataContract(System.Runtime.Serialization.DataContracts.DataContract):this
        mov      r12, r15
 						;; size=227 bbWeight=0.50 PerfScore 20.12
 G_M46076_IG61:
        mov      rdi, r14
        mov      rsi, r12
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      dword ptr [rbp-0x48], r13d
 						;; size=15 bbWeight=0.50 PerfScore 1.25
 G_M46076_IG62:
        movzx    rax, byte  ptr [rbp-0x2C]
        test     dword ptr [rbp-0x48], eax
        sete     al
        movzx    rax, al
        jmp      G_M46076_IG86
 						;; size=18 bbWeight=0.50 PerfScore 3.12
 G_M46076_IG63:
        movzx    r13, r13b
        mov      r12d, dword ptr [rbp-0x44]
        cmp      dword ptr [rbp-0x5C], 0
        jne      SHORT G_M46076_IG64
        xor      eax, eax
        mov      dword ptr [rbp-0x68], eax
        jmp      SHORT G_M46076_IG65
 						;; size=21 bbWeight=0.50 PerfScore 3.75
 G_M46076_IG64:
        cmp      byte  ptr [rbp-0x2C], 0
        sete     al
        movzx    rax, al
        mov      dword ptr [rbp-0x68], eax
 						;; size=13 bbWeight=0.50 PerfScore 2.12
 G_M46076_IG65:
        mov      rdi, 0xD1FFAB1E      ; 'CollectionTypeDoesNotHaveAddMethod'
        mov      rcx, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rcx]System.SR:GetResourceString(System.String):System.String
-       mov      gword ptr [rbp-0x200], rax
+       mov      gword ptr [rbp-0x208], rax
        mov      rdi, gword ptr [r15]
        mov      rcx, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.DataContract:GetClrTypeFullName(System.Type):System.String
        call     [rcx]System.Runtime.Serialization.DataContracts.DataContract:GetClrTypeFullName(System.Type):System.String
        mov      r9, rax
        mov      bword ptr [rsp], r14
-       mov      r8, gword ptr [rbp-0x200]
+       mov      r8, gword ptr [rbp-0x208]
        movzx    rdx, r12b
        movzx    rcx, byte  ptr [rbp-0x68]
        movzx    rsi, r13b
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:HandleIfInvalidCollection(System.Type,ubyte,ubyte,ubyte,System.String,System.String,byref):ubyte
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:HandleIfInvalidCollection(System.Type,ubyte,ubyte,ubyte,System.String,System.String,byref):ubyte
        jmp      G_M46076_IG86
 						;; size=90 bbWeight=0.50 PerfScore 9.50
 G_M46076_IG66:
        mov      rdi, 0xD1FFAB1E      ; 'CollectionTypeDoesNotHaveDefaultCtor'
        mov      rax, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rax]System.SR:GetResourceString(System.String):System.String
        mov      r8, rax
        mov      bword ptr [rsp], r14
        movzx    rsi, r13b
        mov      edx, dword ptr [rbp-0x44]
        mov      ecx, dword ptr [rbp-0x5C]
        mov      rdi, rbx
        xor      r9, r9
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:HandleIfInvalidCollection(System.Type,ubyte,ubyte,ubyte,System.String,System.String,byref):ubyte
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:HandleIfInvalidCollection(System.Type,ubyte,ubyte,ubyte,System.String,System.String,byref):ubyte
        jmp      G_M46076_IG86
 						;; size=62 bbWeight=0.50 PerfScore 6.38
 G_M46076_IG67:
-       mov      r12, qword ptr [rbp-0xA8]
+       mov      r12, qword ptr [rbp-0xB0]
        xor      rdi, rdi
        mov      gword ptr [rbp-0x38], rdi
        mov      rdi, rbx
-       mov      rax, qword ptr [rbp-0x88]
+       mov      rax, qword ptr [rbp-0x80]
        call     [rax+0x08]System.Type:get_IsGenericType():ubyte:this
        test     eax, eax
        jne      G_M46076_IG72
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfIDictionary():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfIDictionary():System.Type
        mov      rsi, rax
-       mov      rdi, gword ptr [rbp-0xD8]
+       mov      rdi, gword ptr [rbp-0xE0]
        mov      rax, 0xD1FFAB1E      ; code for System.Type:op_Equality(System.Type,System.Type):ubyte
        call     [rax]System.Type:op_Equality(System.Type,System.Type):ubyte
        test     eax, eax
        jne      SHORT G_M46076_IG68
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfObject():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfObject():System.Type
        mov      rsi, rax
        mov      rdi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfIList():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfIList():System.Type
        mov      rsi, rax
-       mov      rdi, gword ptr [rbp-0xD8]
+       mov      rdi, gword ptr [rbp-0xE0]
        mov      rax, 0xD1FFAB1E      ; code for System.Type:op_Equality(System.Type,System.Type):ubyte
        call     [rax]System.Type:op_Equality(System.Type,System.Type):ubyte
        test     eax, eax
        je       SHORT G_M46076_IG70
        jmp      SHORT G_M46076_IG69
-						;; size=135 bbWeight=0.50 PerfScore 16.25
+						;; size=132 bbWeight=0.50 PerfScore 16.25
 G_M46076_IG68:
        mov      rdi, 0xD1FFAB1E      ; 'System.Runtime.Serialization.KeyValue`2[System.Object,System.Ob'
        mov      gword ptr [r15], rdi
 						;; size=13 bbWeight=0.50 PerfScore 0.62
 G_M46076_IG69:
        xor      rdi, rdi
        mov      gword ptr [rsp], rdi
        mov      rdi, rbx
        mov      rsi, 0xD1FFAB1E      ; 'Add'
        mov      edx, 28
        xor      rcx, rcx
        mov      r8d, 3
        xor      r9, r9
-       mov      rax, qword ptr [rbx]
+       mov      rax, qword ptr [rbp-0xA8]
        mov      rax, qword ptr [rax+0x88]
        call     [rax+0x38]System.Type:GetMethodImpl(System.String,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
        mov      gword ptr [rbp-0x38], rax
-						;; size=52 bbWeight=0.50 PerfScore 5.38
+						;; size=56 bbWeight=0.50 PerfScore 4.88
 G_M46076_IG70:
        xor      rdi, rdi
        mov      gword ptr [rsp], rdi
 						;; size=6 bbWeight=0.50 PerfScore 0.62
 G_M46076_IG71:
        mov      gword ptr [rsp+0x08], rdi
        mov      rdi, 0xD1FFAB1E      ; 'System.Collections.IEnumerable'
        mov      rsi, 0xD1FFAB1E      ; 'GetEnumerator'
        mov      edx, -1
        mov      ecx, 28
        xor      r8, r8
        mov      r9d, 3
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
        call     [rax]System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
        mov      gword ptr [rbp-0x40], rax
        jmp      G_M46076_IG77
 						;; size=65 bbWeight=0.50 PerfScore 4.38
 G_M46076_IG72:
        mov      rdi, rbx
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x68]
-       call     [rax+0x28]System.Type:GetGenericArguments():System.Type[]:this
-       mov      gword ptr [rbp-0xE8], rax
+       mov      rax, qword ptr [rbp-0xA8]
+       mov      rcx, qword ptr [rax+0x68]
+       call     [rcx+0x28]System.Type:GetGenericArguments():System.Type[]:this
+       mov      gword ptr [rbp-0xF0], rax
        mov      rcx, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfIDictionaryGeneric():System.Type
        call     [rcx]System.Runtime.Serialization.Globals:get_TypeOfIDictionaryGeneric():System.Type
        mov      rsi, rax
-       mov      rdi, gword ptr [rbp-0xD8]
+       mov      rdi, gword ptr [rbp-0xE0]
        mov      rax, 0xD1FFAB1E      ; code for System.Type:op_Equality(System.Type,System.Type):ubyte
        call     [rax]System.Type:op_Equality(System.Type,System.Type):ubyte
        test     eax, eax
        jne      G_M46076_IG75
-       mov      rax, gword ptr [rbp-0xE8]
+       mov      rax, gword ptr [rbp-0xF0]
        cmp      dword ptr [rax+0x08], 0
        jbe      G_M46076_IG89
        mov      rsi, gword ptr [rax+0x10]
        mov      rdi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfICollectionGeneric():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfICollectionGeneric():System.Type
        mov      rsi, rax
-       mov      rdi, gword ptr [rbp-0xD8]
+       mov      rdi, gword ptr [rbp-0xE0]
        mov      rax, 0xD1FFAB1E      ; code for System.Type:op_Equality(System.Type,System.Type):ubyte
        call     [rax]System.Type:op_Equality(System.Type,System.Type):ubyte
        test     eax, eax
        jne      SHORT G_M46076_IG73
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfIListGeneric():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfIListGeneric():System.Type
        mov      rsi, rax
-       mov      rdi, gword ptr [rbp-0xD8]
+       mov      rdi, gword ptr [rbp-0xE0]
        mov      rax, 0xD1FFAB1E      ; code for System.Type:op_Equality(System.Type,System.Type):ubyte
        call     [rax]System.Type:op_Equality(System.Type,System.Type):ubyte
        test     eax, eax
        je       G_M46076_IG74
-						;; size=171 bbWeight=0.50 PerfScore 21.75
+						;; size=175 bbWeight=0.50 PerfScore 21.25
 G_M46076_IG73:
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfICollectionGeneric():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfICollectionGeneric():System.Type
-       mov      gword ptr [rbp-0x148], rax
+       mov      gword ptr [rbp-0x150], rax
        mov      rdi, 0xD1FFAB1E      ; System.Type[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_OBJ
-       mov      gword ptr [rbp-0x140], rax
+       mov      gword ptr [rbp-0x148], rax
        mov      rdx, gword ptr [r15]
        mov      rdi, rax
        xor      esi, esi
        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
        call     [rcx]CORINFO_HELP_ARRADDR_ST
-       mov      rdi, gword ptr [rbp-0x148]
-       mov      rsi, gword ptr [rbp-0x140]
+       mov      rdi, gword ptr [rbp-0x150]
+       mov      rsi, gword ptr [rbp-0x148]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0xA8]
        call     [rax+0x08]System.Type:MakeGenericType(System.Type[]):System.Type:this
        xor      rdi, rdi
        mov      gword ptr [rsp], rdi
        mov      rdi, rax
        mov      rsi, 0xD1FFAB1E      ; 'Add'
        mov      edx, 28
        xor      rcx, rcx
        mov      r8d, 3
        xor      r9, r9
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0x88]
        call     [rax+0x38]System.Type:GetMethodImpl(System.String,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
        mov      gword ptr [rbp-0x38], rax
 						;; size=145 bbWeight=0.50 PerfScore 16.12
 G_M46076_IG74:
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfIEnumerableGeneric():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfIEnumerableGeneric():System.Type
-       mov      gword ptr [rbp-0x158], rax
+       mov      gword ptr [rbp-0x160], rax
        mov      rdi, 0xD1FFAB1E      ; System.Type[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_OBJ
-       mov      gword ptr [rbp-0x150], rax
+       mov      gword ptr [rbp-0x158], rax
        mov      rdx, gword ptr [r15]
        mov      rdi, rax
        xor      esi, esi
        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
        call     [rcx]CORINFO_HELP_ARRADDR_ST
-       mov      rdi, gword ptr [rbp-0x158]
-       mov      rsi, gword ptr [rbp-0x150]
+       mov      rdi, gword ptr [rbp-0x160]
+       mov      rsi, gword ptr [rbp-0x158]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0xA8]
        call     [rax+0x08]System.Type:MakeGenericType(System.Type[]):System.Type:this
        xor      rdi, rdi
        mov      gword ptr [rsp], rdi
        mov      rdi, rax
        mov      rsi, 0xD1FFAB1E      ; 'GetEnumerator'
        mov      edx, 28
        xor      rcx, rcx
        mov      r8d, 3
        xor      r9, r9
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0x88]
        call     [rax+0x38]System.Type:GetMethodImpl(System.String,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
        mov      gword ptr [rbp-0x40], rax
        jmp      G_M46076_IG77
 						;; size=150 bbWeight=0.50 PerfScore 17.12
 G_M46076_IG75:
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfKeyValue():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfKeyValue():System.Type
        mov      rdi, rax
-       mov      rsi, gword ptr [rbp-0xE8]
+       mov      rsi, gword ptr [rbp-0xF0]
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0xA8]
        call     [rax+0x08]System.Type:MakeGenericType(System.Type[]):System.Type:this
        mov      rsi, rax
        mov      rdi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        xor      rdi, rdi
        mov      gword ptr [rsp], rdi
        mov      rdi, rbx
        mov      rsi, 0xD1FFAB1E      ; 'Add'
        mov      edx, 28
        xor      rcx, rcx
        mov      r8d, 3
        xor      r9, r9
-       mov      rax, qword ptr [rbx]
+       mov      rax, qword ptr [rbp-0xA8]
        mov      rax, qword ptr [rax+0x88]
        call     [rax+0x38]System.Type:GetMethodImpl(System.String,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
        mov      gword ptr [rbp-0x38], rax
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfIEnumerableGeneric():System.Type
        call     [rax]System.Runtime.Serialization.Globals:get_TypeOfIEnumerableGeneric():System.Type
-       mov      gword ptr [rbp-0x168], rax
+       mov      gword ptr [rbp-0x170], rax
        mov      rdi, 0xD1FFAB1E      ; System.Type[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_OBJ
-       mov      gword ptr [rbp-0x160], rax
+       mov      gword ptr [rbp-0x168], rax
        mov      rcx, 0xD1FFAB1E      ; code for System.Runtime.Serialization.Globals:get_TypeOfKeyValuePair():System.Type
        call     [rcx]System.Runtime.Serialization.Globals:get_TypeOfKeyValuePair():System.Type
        mov      rdi, rax
-       mov      rsi, gword ptr [rbp-0xE8]
+       mov      rsi, gword ptr [rbp-0xF0]
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0xA8]
        call     [rax+0x08]System.Type:MakeGenericType(System.Type[]):System.Type:this
-       mov      rcx, gword ptr [rbp-0x160]
+       mov      rcx, gword ptr [rbp-0x168]
        lea      rdi, bword ptr [rcx+0x10]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rdi, gword ptr [rbp-0x168]
-       mov      rsi, gword ptr [rbp-0x160]
+       mov      rdi, gword ptr [rbp-0x170]
+       mov      rsi, gword ptr [rbp-0x168]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0xA8]
-						;; size=222 bbWeight=0.50 PerfScore 25.38
+						;; size=226 bbWeight=0.50 PerfScore 24.88
 G_M46076_IG76:
        call     [rax+0x08]System.Type:MakeGenericType(System.Type[]):System.Type:this
        xor      rdi, rdi
        mov      gword ptr [rsp], rdi
        mov      rdi, rax
        mov      rsi, 0xD1FFAB1E      ; 'GetEnumerator'
        mov      edx, 28
        xor      rcx, rcx
        mov      r8d, 3
        xor      r9, r9
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0x88]
        call     [rax+0x38]System.Type:GetMethodImpl(System.String,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
        mov      gword ptr [rbp-0x40], rax
 						;; size=55 bbWeight=0.50 PerfScore 6.88
 G_M46076_IG77:
        test     r13b, r13b
        je       G_M46076_IG79
        mov      rdi, 0xD1FFAB1E      ; System.Runtime.Serialization.DataContracts.CollectionDataContract
        call     CORINFO_HELP_NEWSFAST
        mov      r13, rax
        mov      r15, gword ptr [r15]
        mov      rax, gword ptr [rbp-0x40]
-       mov      gword ptr [rbp-0x170], rax
+       mov      gword ptr [rbp-0x178], rax
        mov      rcx, gword ptr [rbp-0x38]
-       mov      gword ptr [rbp-0x178], rcx
+       mov      gword ptr [rbp-0x180], rcx
        mov      rdi, 0xD1FFAB1E      ; System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x180], rax
+       mov      gword ptr [rbp-0x188], rax
        xor      rdx, rdx
        mov      gword ptr [rsp], rdx
        inc      r12d
        movzx    rdx, r12b
        mov      rdi, rax
        mov      rsi, rbx
        mov      rcx, r15
-       mov      r8, gword ptr [rbp-0x170]
+       mov      r8, gword ptr [rbp-0x178]
        xor      r9, r9
        mov      r10, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper:.ctor(System.Type,ubyte,System.Type,System.Reflection.MethodInfo,System.String,System.String):this
        call     [r10]System.Runtime.Serialization.DataContracts.CollectionDataContract+CollectionDataContractCriticalHelper:.ctor(System.Type,ubyte,System.Type,System.Reflection.MethodInfo,System.String,System.String):this
-       mov      r15, gword ptr [rbp-0x178]
+       mov      r15, gword ptr [rbp-0x180]
        test     r15, r15
        jne      SHORT G_M46076_IG78
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Type:get_IsInterface():ubyte:this
        call     [rax]System.Type:get_IsInterface():ubyte:this
        test     eax, eax
        je       G_M46076_IG88
 						;; size=154 bbWeight=0.50 PerfScore 12.50
 G_M46076_IG78:
-       mov      r12, gword ptr [rbp-0x180]
+       mov      r12, gword ptr [rbp-0x188]
        lea      rdi, bword ptr [r12+0x60]
        mov      rsi, r15
        call     CORINFO_HELP_ASSIGN_REF
        xor      rdi, rdi
        mov      gword ptr [r12+0x68], rdi
        lea      rdi, bword ptr [r13+0x18]
        mov      rsi, r12
        call     CORINFO_HELP_ASSIGN_REF
        mov      rsi, gword ptr [r12+0x28]
        lea      rdi, bword ptr [r13+0x08]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rsi, gword ptr [r12+0x30]
        lea      rdi, bword ptr [r13+0x10]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, r13
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:GetSharedTypeContract(System.Type):System.Runtime.Serialization.DataContracts.DataContract:this
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:GetSharedTypeContract(System.Type):System.Runtime.Serialization.DataContracts.DataContract:this
        mov      rsi, rax
        mov      rdi, r13
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:InitCollectionDataContract(System.Runtime.Serialization.DataContracts.DataContract):this
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:InitCollectionDataContract(System.Runtime.Serialization.DataContracts.DataContract):this
        mov      rdi, r14
        mov      rsi, r13
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
 						;; size=114 bbWeight=0.50 PerfScore 10.88
 G_M46076_IG79:
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M46076_IG80:
-       add      rsp, 488
+       add      rsp, 504
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=18 bbWeight=0.50 PerfScore 2.12
 G_M46076_IG81:
        mov      rdi, 0xD1FFAB1E      ; 'CollectionTypeIsNotIEnumerable'
        mov      rax, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rax]System.SR:GetResourceString(System.String):System.String
        mov      r8, rax
        mov      bword ptr [rsp], r14
        movzx    rsi, r13b
        mov      edx, dword ptr [rbp-0x44]
        mov      ecx, dword ptr [rbp-0x5C]
        mov      rdi, rbx
        xor      r9, r9
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:HandleIfInvalidCollection(System.Type,ubyte,ubyte,ubyte,System.String,System.String,byref):ubyte
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:HandleIfInvalidCollection(System.Type,ubyte,ubyte,ubyte,System.String,System.String,byref):ubyte
        jmp      G_M46076_IG86
 						;; size=62 bbWeight=0.50 PerfScore 6.38
 G_M46076_IG82:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M46076_IG83:
-       add      rsp, 488
+       add      rsp, 504
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=18 bbWeight=0.50 PerfScore 2.12
 G_M46076_IG84:
        mov      rdi, 0xD1FFAB1E      ; 'CollectionTypeCannotHaveDataContract'
        mov      rax, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rax]System.SR:GetResourceString(System.String):System.String
        mov      r8, rax
        mov      bword ptr [rsp], r14
        movzx    rsi, r13b
        mov      edx, dword ptr [rbp-0x44]
        mov      ecx, dword ptr [rbp-0x5C]
        mov      rdi, rbx
        xor      r9, r9
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:HandleIfInvalidCollection(System.Type,ubyte,ubyte,ubyte,System.String,System.String,byref):ubyte
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:HandleIfInvalidCollection(System.Type,ubyte,ubyte,ubyte,System.String,System.String,byref):ubyte
        jmp      SHORT G_M46076_IG86
 						;; size=59 bbWeight=0.50 PerfScore 6.38
 G_M46076_IG85:
        mov      rdi, 0xD1FFAB1E      ; 'CollectionTypeCannotBeBuiltIn'
        mov      rax, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rax]System.SR:GetResourceString(System.String):System.String
        mov      r8, rax
        mov      bword ptr [rsp], r14
        movzx    rsi, r13b
        mov      rdi, rbx
        xor      edx, edx
        xor      ecx, ecx
        xor      r9, r9
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.CollectionDataContract:HandleIfInvalidCollection(System.Type,ubyte,ubyte,ubyte,System.String,System.String,byref):ubyte
        call     [rax]System.Runtime.Serialization.DataContracts.CollectionDataContract:HandleIfInvalidCollection(System.Type,ubyte,ubyte,ubyte,System.String,System.String,byref):ubyte
 						;; size=55 bbWeight=0.50 PerfScore 4.62
 G_M46076_IG86:
        movzx    rax, al
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M46076_IG87:
-       add      rsp, 488
+       add      rsp, 504
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=18 bbWeight=0.50 PerfScore 2.12
 G_M46076_IG88:
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_CollectionMustHaveAddMethod():System.String
        call     [rax]System.SR:get_CollectionMustHaveAddMethod():System.String
        mov      r15, rax
        mov      rdi, 0xD1FFAB1E      ; System.Runtime.Serialization.InvalidDataContractException
        call     CORINFO_HELP_NEWSFAST
        mov      r14, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.Serialization.DataContracts.DataContract:GetClrTypeFullName(System.Type):System.String
        call     [rax]System.Runtime.Serialization.DataContracts.DataContract:GetClrTypeFullName(System.Type):System.String
        mov      rsi, rax
        mov      rdi, r15
        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      rbx, rax
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Exception:.ctor():this
        call     [rax]System.Exception:.ctor():this
        lea      rdi, bword ptr [r14+0x10]
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, r14
        call     CORINFO_HELP_THROW
        int3     
 						;; size=105 bbWeight=0 PerfScore 0.00
 G_M46076_IG89:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 RWD00  	dd	G_M46076_IG42 - G_M46076_IG02
        	dd	G_M46076_IG41 - G_M46076_IG02
        	dd	G_M46076_IG40 - G_M46076_IG02
        	dd	G_M46076_IG40 - G_M46076_IG02
        	dd	G_M46076_IG39 - G_M46076_IG02
 
 
-; Total bytes of code 5339, prolog size 65, PerfScore 1087.55, instruction count 1174, allocated bytes for code 5339 (MethodHash=6da94c03) for method System.Runtime.Serialization.DataContracts.CollectionDataContract:IsCollectionOrTryCreate(System.Type,ubyte,byref,byref,ubyte,ubyte):ubyte (FullOpts)
+; Total bytes of code 5413, prolog size 65, PerfScore 1087.30, instruction count 1182, allocated bytes for code 5413 (MethodHash=6da94c03) for method System.Runtime.Serialization.DataContracts.CollectionDataContract:IsCollectionOrTryCreate(System.Type,ubyte,byref,byref,ubyte,ubyte):ubyte (FullOpts)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment