## Top method improvements

<details>
<summary>-111 (-16.32 % of base) - Serilog.Settings.Configuration.ObjectArgumentValue:IsConstructableContainer(System.Type,System.Type,byref,byref):bool</summary>

```diff
 ; Assembly listing for method Serilog.Settings.Configuration.ObjectArgumentValue:IsConstructableContainer(System.Type,System.Type,byref,byref):bool (FullOpts)
 ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 6 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T08] (  8,  6   )     ref  ->  r15         class-hnd single-def <System.Type>
-;  V01 arg1         [V01,T10] (  5,  5   )     ref  ->  r14         class-hnd single-def <System.Type>
-;  V02 arg2         [V02,T07] ( 10,  6   )   byref  ->  rbx         single-def
-;  V03 arg3         [V03,T13] (  4,  3.50)   byref  ->  r13         single-def
-;  V04 loc0         [V04,T20] (  3,  1.50)     ref  ->  rax         class-hnd single-def <System.Reflection.MethodInfo[]>
-;* V05 loc1         [V05,T24] (  0,  0   )     int  ->  zero-ref   
+;  V00 arg0         [V00,T06] (  8,  6   )     ref  ->  r15         class-hnd single-def <System.Type>
+;  V01 arg1         [V01,T08] (  5,  5   )     ref  ->  r14         class-hnd single-def <System.Type>
+;  V02 arg2         [V02,T05] ( 10,  6   )   byref  ->  rbx         single-def
+;  V03 arg3         [V03,T11] (  4,  3.50)   byref  ->  r13         single-def
+;  V04 loc0         [V04,T18] (  3,  1.50)     ref  ->  rax         class-hnd single-def <System.Reflection.MethodInfo[]>
+;* V05 loc1         [V05,T21] (  0,  0   )     int  ->  zero-ref   
 ;  V06 loc2         [V06,T00] (  8, 18.50)     ref  ->  r12         class-hnd <System.Reflection.MethodInfo>
-;  V07 loc3         [V07,T11] (  3,  6   )     ref  ->  rax         class-hnd <System.Reflection.ParameterInfo[]>
+;  V07 loc3         [V07,T09] (  3,  6   )     ref  ->  rax         class-hnd <System.Reflection.ParameterInfo[]>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;  V09 tmp1         [V09,T17] (  3,  3   )     ref  ->  r12         class-hnd exact single-def "NewArr temp" <System.Type[]>
+;  V09 tmp1         [V09,T14] (  3,  3   )     ref  ->  r12         class-hnd exact single-def "NewArr temp" <System.Type[]>
 ;* V10 tmp2         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
-;  V11 tmp3         [V11,T18] (  3,  3   )     ref  ->  [rbp-0x38]  class-hnd exact spill-single-def "NewArr temp" <System.Type[]>
+;  V11 tmp3         [V11,T15] (  3,  3   )     ref  ->  [rbp-0x38]  class-hnd exact spill-single-def "NewArr temp" <System.Type[]>
 ;* V12 tmp4         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
-;  V13 tmp5         [V13,T15] (  4,  4   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Type>
-;  V14 tmp6         [V14,T14] (  5,  5   )     ref  ->   r8         class-hnd single-def "Inlining Arg" <System.Type[]>
-;* V15 tmp7         [V15,T25] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V16 tmp8         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Type>
-;* V17 tmp9         [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V18 tmp10        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Reflection.ConstructorInfo>
-;* V19 tmp11        [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Type>
-;* V20 tmp12        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V21 tmp13        [V21,T05] (  6, 12   )     ref  ->  rax         "spilling varStr"
-;* V22 tmp14        [V22    ] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
-;  V23 tmp15        [V23,T19] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V24 tmp16        [V24,T06] (  3, 12   )     ref  ->  rdi         "argument with side effect"
-;  V25 tmp17        [V25,T09] (  2,  8   )     ref  ->  rdi         "argument with side effect"
-;  V26 cse0         [V26,T12] (  3,  6   )    long  ->  [rbp-0x30]  spill-single-def "CSE #06: moderate"
-;  V27 cse1         [V27,T21] (  3,  1.50)    long  ->  r12         "CSE #03: moderate"
-;  V28 cse2         [V28,T22] (  3,  1.50)     int  ->  rdi         "CSE #04: moderate"
-;  V29 cse3         [V29,T23] (  3,  1.50)     int  ->  rbx         "CSE #08: moderate"
-;  V30 cse4         [V30,T16] (  2,  4   )     int  ->  rdi         "CSE #07: moderate"
-;  V31 rat0         [V31,T01] (  4, 12.50)   byref  ->  rsi         "Strength reduced derived IV"
-;  V32 rat1         [V32,T03] (  4, 12.50)     int  ->  rdi         "Trip count IV"
-;  V33 rat2         [V33,T02] (  4, 12.50)   byref  ->  r15         "Strength reduced derived IV"
-;  V34 rat3         [V34,T04] (  4, 12.50)     int  ->  rbx         "Trip count IV"
+;  V13 tmp5         [V13,T12] (  4,  4   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Type>
+;* V14 tmp6         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Type[]>
+;* V15 tmp7         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Type[]>
+;  V16 tmp8         [V16,T17] (  2,  2   )     ref  ->   r8         class-hnd exact single-def "Inlining Arg" <System.Type[]>
+;* V17 tmp9         [V17,T22] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V18 tmp10        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Type>
+;* V19 tmp11        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V20 tmp12        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Reflection.ConstructorInfo>
+;* V21 tmp13        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Type>
+;* V22 tmp14        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
+;  V23 tmp15        [V23,T03] (  6, 12   )     ref  ->  rax         "spilling varStr"
+;* V24 tmp16        [V24    ] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
+;  V25 tmp17        [V25,T16] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
+;  V26 tmp18        [V26,T04] (  3, 12   )     ref  ->  rdi         "argument with side effect"
+;  V27 tmp19        [V27,T07] (  2,  8   )     ref  ->  rdi         "argument with side effect"
+;  V28 cse0         [V28,T10] (  3,  6   )    long  ->  [rbp-0x30]  spill-single-def "CSE #05: moderate"
+;  V29 cse1         [V29,T19] (  3,  1.50)    long  ->  r12         "CSE #03: moderate"
+;  V30 cse2         [V30,T20] (  3,  1.50)     int  ->  rbx         "CSE #07: moderate"
+;  V31 cse3         [V31,T13] (  2,  4   )     int  ->  rdi         "CSE #06: moderate"
+;  V32 rat0         [V32,T01] (  4, 12.50)   byref  ->  r15         "Strength reduced derived IV"
+;  V33 rat1         [V33,T02] (  4, 12.50)     int  ->  rbx         "Trip count IV"
 ;
 ; Lcl frame size = 24
 
 G_M47780_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 24
        lea      rbp, [rsp+0x40]
        mov      r15, rdi
        mov      r14, rsi
        mov      rbx, rdx
        mov      r13, rcx
 						;; size=31 bbWeight=1 PerfScore 7.75
 G_M47780_IG02:
        xor      rdi, rdi
        mov      gword ptr [r13], rdi
        mov      rdi, r15
        mov      rax, qword ptr [r15]
        mov      rax, qword ptr [rax+0x70]
        call     [rax+0x18]System.Type:GetAttributeFlagsImpl():int:this
        test     al, 128
-       jne      G_M47780_IG19
+       jne      G_M47780_IG16
 						;; size=27 bbWeight=1 PerfScore 9.75
 G_M47780_IG03:
        mov      rdi, rbx
        mov      rsi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
 						;; size=11 bbWeight=0.50 PerfScore 0.75
 G_M47780_IG04:
-       mov      r15, gword ptr [rbx]
-       mov      rdi, 0xD1FFAB1E      ; global ptr
-       test     byte  ptr [rdi], 1
-       je       G_M47780_IG21
-						;; size=22 bbWeight=0.50 PerfScore 2.62
-G_M47780_IG05:
-       mov      rdi, 0xD1FFAB1E      ; data for System.Type:EmptyTypes
-       mov      r8, gword ptr [rdi]
-       cmp      byte  ptr [r15], r15b
-       test     r8, r8
-       je       G_M47780_IG22
-       mov      edi, dword ptr [r8+0x08]
-       test     edi, edi
-       jle      SHORT G_M47780_IG07
-       lea      rsi, bword ptr [r8+0x10]
-       align    [0 bytes for IG06]
-						;; size=37 bbWeight=0.50 PerfScore 4.62
-G_M47780_IG06:
-       cmp      gword ptr [rsi], 0
-       je       G_M47780_IG22
-       add      rsi, 8
-       dec      edi
-       jne      SHORT G_M47780_IG06
-						;; size=18 bbWeight=4 PerfScore 18.00
-G_M47780_IG07:
-       mov      rdi, r15
+       mov      rdi, gword ptr [rbx]
+       cmp      byte  ptr [rdi], dil
+       mov      r8, 0xD1FFAB1E      ; const ptr
+       mov      r8, gword ptr [r8]
        mov      esi, 20
        xor      rdx, rdx
        mov      ecx, 3
        xor      r9, r9
-       mov      rax, qword ptr [r15]
+       mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x78]
        call     [rax+0x38]System.Type:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
        test     rax, rax
-       je       G_M47780_IG15
+       je       G_M47780_IG12
        mov      rdi, gword ptr [rbx]
        mov      esi, 28
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x90]
        call     [rax+0x08]System.Type:GetMethods(int):System.Reflection.MethodInfo[]:this
        mov      ebx, dword ptr [rax+0x08]
        test     ebx, ebx
-       jle      G_M47780_IG15
+       jle      G_M47780_IG12
        lea      r15, bword ptr [rax+0x10]
-						;; size=73 bbWeight=0.50 PerfScore 11.25
-G_M47780_IG08:
+						;; size=89 bbWeight=0.50 PerfScore 14.25
+G_M47780_IG05:
        mov      r12, gword ptr [r15]
        test     r12, r12
-       je       G_M47780_IG14
+       je       G_M47780_IG11
 						;; size=12 bbWeight=4 PerfScore 13.00
-G_M47780_IG09:
+G_M47780_IG06:
        mov      rdi, r12
        mov      rax, qword ptr [r12]
        mov      rax, qword ptr [rax+0x50]
        mov      qword ptr [rbp-0x30], rax
        call     [rax+0x20]System.Reflection.MethodBase:get_Attributes():int:this
        test     al, 16
-       jne      SHORT G_M47780_IG14
+       jne      SHORT G_M47780_IG11
        mov      rdi, r12
        mov      rax, qword ptr [r12]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x30]System.Reflection.MemberInfo:get_Name():System.String:this
        mov      rdi, 0xD1FFAB1E      ; 'Add'
        cmp      rax, rdi
-       je       SHORT G_M47780_IG13
+       je       SHORT G_M47780_IG10
 						;; size=51 bbWeight=2 PerfScore 36.50
-G_M47780_IG10:
+G_M47780_IG07:
        test     rax, rax
-       je       SHORT G_M47780_IG14
+       je       SHORT G_M47780_IG11
 						;; size=5 bbWeight=1 PerfScore 1.25
-G_M47780_IG11:
+G_M47780_IG08:
        cmp      dword ptr [rax+0x08], 3
-       jne      SHORT G_M47780_IG14
+       jne      SHORT G_M47780_IG11
 						;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M47780_IG12:
+G_M47780_IG09:
        mov      edi, dword ptr [rax+0x0C]
        xor      edi, 0xD1FFAB1E
        movzx    rax, word  ptr [rax+0x10]
        xor      eax, 100
        or       edi, eax
-       jne      SHORT G_M47780_IG14
+       jne      SHORT G_M47780_IG11
 						;; size=20 bbWeight=0.25 PerfScore 1.44
-G_M47780_IG13:
+G_M47780_IG10:
        mov      rdi, r12
        mov      rax, qword ptr [rbp-0x30]
        call     [rax+0x18]System.Reflection.MethodBase:GetParameters():System.Reflection.ParameterInfo[]:this
        mov      edi, dword ptr [rax+0x08]
        cmp      edi, 1
-       jne      SHORT G_M47780_IG14
+       jne      SHORT G_M47780_IG11
        mov      rdi, gword ptr [rax+0x10]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x38]System.Reflection.ParameterInfo:get_ParameterType():System.Type:this
        mov      rdi, rax
        mov      rsi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Type:op_Equality(System.Type,System.Type):bool
        call     [rax]System.Type:op_Equality(System.Type,System.Type):bool
        test     eax, eax
-       jne      SHORT G_M47780_IG17
+       jne      SHORT G_M47780_IG14
 						;; size=54 bbWeight=2 PerfScore 43.00
-G_M47780_IG14:
+G_M47780_IG11:
        add      r15, 8
        dec      ebx
-       jne      G_M47780_IG08
+       jne      G_M47780_IG05
 						;; size=12 bbWeight=4 PerfScore 6.00
-G_M47780_IG15:
+G_M47780_IG12:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M47780_IG16:
+G_M47780_IG13:
        add      rsp, 24
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M47780_IG17:
+G_M47780_IG14:
        mov      rdi, r13
        mov      rsi, r12
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      eax, 1
 						;; size=16 bbWeight=0.50 PerfScore 0.88
-G_M47780_IG18:
+G_M47780_IG15:
        add      rsp, 24
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M47780_IG19:
+G_M47780_IG16:
        mov      rdi, 0xD1FFAB1E      ; System.Type[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_PTR
        mov      r12, rax
        lea      rdi, bword ptr [r12+0x10]
        mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
        mov      rsi, r12
        mov      rdi, 0xD1FFAB1E      ; 'System.Collections.Generic.List`1[T]'
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this
        call     [rax]System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this
        mov      rsi, rax
        mov      rdi, rbx
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      rsi, gword ptr [rbx]
        mov      rdi, r15
        mov      rax, qword ptr [r15]
        mov      r12, qword ptr [rax+0xB0]
        call     [r12+0x30]System.Type:IsAssignableFrom(System.Type):bool:this
        test     eax, eax
        jne      G_M47780_IG04
        mov      rdi, 0xD1FFAB1E      ; System.Type[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_PTR
        mov      gword ptr [rbp-0x38], rax
        lea      rdi, bword ptr [rax+0x10]
        mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
        mov      rsi, gword ptr [rbp-0x38]
        mov      rdi, 0xD1FFAB1E      ; 'System.Collections.Generic.HashSet`1[T]'
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this
        call     [rax]System.RuntimeType:MakeGenericType(System.Type[]):System.Type:this
        mov      rsi, rax
        mov      rdi, rbx
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      rsi, gword ptr [rbx]
        mov      rdi, r15
 						;; size=180 bbWeight=0.50 PerfScore 15.88
-G_M47780_IG20:
+G_M47780_IG17:
        call     [r12+0x30]System.Type:IsAssignableFrom(System.Type):bool:this
        test     eax, eax
        jne      G_M47780_IG04
        xor      rax, rax
        mov      gword ptr [rbx], rax
-       jmp      G_M47780_IG15
+       jmp      G_M47780_IG12
 						;; size=23 bbWeight=0.50 PerfScore 3.75
-G_M47780_IG21:
-       mov      rdi, 0xD1FFAB1E      ; System.Type
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_NONGCSTATIC_BASE
-       call     [rax]CORINFO_HELP_GET_NONGCSTATIC_BASE
-       jmp      G_M47780_IG05
-						;; size=27 bbWeight=0 PerfScore 0.00
-G_M47780_IG22:
-       mov      rdi, 0xD1FFAB1E      ; 'types'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)
-       call     [rax]System.ArgumentNullException:Throw(System.String)
-       int3     
-						;; size=23 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 680, prolog size 31, PerfScore 182.31, instruction count 179, allocated bytes for code 680 (MethodHash=0c16455b) for method Serilog.Settings.Configuration.ObjectArgumentValue:IsConstructableContainer(System.Type,System.Type,byref,byref):bool (FullOpts)
+; Total bytes of code 569, prolog size 31, PerfScore 160.06, instruction count 155, allocated bytes for code 569 (MethodHash=0c16455b) for method Serilog.Settings.Configuration.ObjectArgumentValue:IsConstructableContainer(System.Type,System.Type,byref,byref):bool (FullOpts)
 ; ============================================================
```

</details>


<details>
<summary>-107 (-25.48 % of base) - MessagePack.FormatterResolverExtensions:.cctor()</summary>

```diff
 ; Assembly listing for method MessagePack.FormatterResolverExtensions:.cctor() (FullOpts)
 ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 8 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 OutArgs      [V00    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
-;  V01 tmp1         [V01,T02] (  5, 10   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <MessagePack.Internal.ThreadsafeTypeKeyHashTable`1[System.Func`2[MessagePack.IFormatterResolver,MessagePack.Formatters.IMessagePackFormatter]]>
-;  V02 tmp2         [V02,T04] (  3,  6   )     ref  ->  rax         class-hnd single-def "dup spill" <System.Reflection.MethodInfo>
+;  V01 tmp1         [V01,T00] (  5, 10   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <MessagePack.Internal.ThreadsafeTypeKeyHashTable`1[System.Func`2[MessagePack.IFormatterResolver,MessagePack.Formatters.IMessagePackFormatter]]>
+;  V02 tmp2         [V02,T01] (  3,  6   )     ref  ->  rax         class-hnd single-def "dup spill" <System.Reflection.MethodInfo>
 ;* V03 tmp3         [V03    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V04 tmp4         [V04,T10] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Exception>
+;  V04 tmp4         [V04,T07] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Exception>
 ;* V05 tmp5         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Object>
 ;* V06 tmp6         [V06    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V07 tmp7         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <MessagePack.Internal.ThreadsafeTypeKeyHashTable`1+Entry[System.Func`2[MessagePack.IFormatterResolver,MessagePack.Formatters.IMessagePackFormatter]][]>
-;  V08 tmp8         [V08,T03] (  5,  9   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Type[]>
-;* V09 tmp9         [V09,T08] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V10 tmp10        [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Type>
-;  V11 tmp11        [V11,T05] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V12 cse0         [V12,T09] (  3,  3   )   float  ->  [rbp-0x14]  spill-single-def "CSE #02: aggressive"
-;  V13 cse1         [V13,T07] (  3,  2.50)     int  ->  rsi         "CSE #03: aggressive"
-;  V14 cse2         [V14,T06] (  3,  3   )    long  ->  rbx         "CSE #01: aggressive"
-;  V15 rat0         [V15,T00] (  4, 12.50)   byref  ->  rdx         "Strength reduced derived IV"
-;  V16 rat1         [V16,T01] (  4, 12.50)     int  ->  rsi         "Trip count IV"
+;* V08 tmp8         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Type[]>
+;* V09 tmp9         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Type[]>
+;* V10 tmp10        [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Type[]>
+;* V11 tmp11        [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Type[]>
+;  V12 tmp12        [V12,T02] (  2,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Type[]>
+;* V13 tmp13        [V13,T05] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V14 tmp14        [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Type>
+;  V15 tmp15        [V15,T03] (  2,  4   )    long  ->  rsi         "argument with side effect"
+;  V16 cse0         [V16,T06] (  3,  3   )   float  ->  [rbp-0x14]  spill-single-def "CSE #02: aggressive"
+;  V17 cse1         [V17,T04] (  3,  3   )    long  ->  rbx         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 32
 
 G_M4854_IG01:
        push     rbp
        push     r15
        push     rbx
        sub      rsp, 32
        lea      rbp, [rsp+0x30]
 						;; size=13 bbWeight=1 PerfScore 3.75
 G_M4854_IG02:
        mov      rbx, 0xD1FFAB1E      ; MessagePack.Internal.ThreadsafeTypeKeyHashTable`1[System.Func`2[MessagePack.IFormatterResolver,MessagePack.Formatters.IMessagePackFormatter]]
        mov      rdi, rbx
        call     CORINFO_HELP_NEWSFAST
        mov      r15, rax
        mov      rdi, 0xD1FFAB1E      ; System.Object
        call     CORINFO_HELP_NEWSFAST
        mov      rsi, rax
        lea      rdi, bword ptr [r15+0x10]
        call     CORINFO_HELP_ASSIGN_REF
        vmovss   xmm0, dword ptr [reloc @RWD00]
        vmovss   dword ptr [rbp-0x14], xmm0
        mov      rdi, rbx
        mov      esi, 4
        mov      rax, 0xD1FFAB1E      ; code for MessagePack.Internal.ThreadsafeTypeKeyHashTable`1[System.__Canon]:CalculateCapacity(int,float):int
        call     [rax]MessagePack.Internal.ThreadsafeTypeKeyHashTable`1[System.__Canon]:CalculateCapacity(int,float):int
        movsxd   rsi, eax
        mov      rdi, 0xD1FFAB1E      ; MessagePack.Internal.ThreadsafeTypeKeyHashTable`1+Entry[System.Func`2[MessagePack.IFormatterResolver,MessagePack.Formatters.IMessagePackFormatter]][]
        call     CORINFO_HELP_NEWARR_1_PTR
        mov      rsi, rax
        lea      rdi, bword ptr [r15+0x08]
        call     CORINFO_HELP_ASSIGN_REF
        vmovss   xmm0, dword ptr [rbp-0x14]
        vmovss   dword ptr [r15+0x1C], xmm0
        mov      rdi, 0xD1FFAB1E      ; data for MessagePack.FormatterResolverExtensions:FormatterGetters
        mov      rsi, r15
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rdi, 0xD1FFAB1E      ; global ptr
-       test     byte  ptr [rdi], 1
-       je       G_M4854_IG08
-						;; size=159 bbWeight=1 PerfScore 22.50
-G_M4854_IG03:
-       mov      rdi, 0xD1FFAB1E      ; data for System.Type:EmptyTypes
+       mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      rdi, gword ptr [rdi]
-       test     rdi, rdi
-       je       G_M4854_IG09
-       mov      esi, dword ptr [rdi+0x08]
-       test     esi, esi
-       jle      SHORT G_M4854_IG06
-						;; size=29 bbWeight=1 PerfScore 6.75
-G_M4854_IG04:
-       lea      rdx, bword ptr [rdi+0x10]
-       align    [0 bytes for IG05]
-						;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M4854_IG05:
-       cmp      gword ptr [rdx], 0
-       je       G_M4854_IG09
-       add      rdx, 8
-       dec      esi
-       jne      SHORT G_M4854_IG05
-						;; size=18 bbWeight=4 PerfScore 18.00
-G_M4854_IG06:
        mov      gword ptr [rsp], rdi
        xor      rdi, rdi
        mov      gword ptr [rsp+0x08], rdi
        mov      rdi, 0xD1FFAB1E      ; 'MessagePack.IFormatterResolver'
        mov      rsi, 0xD1FFAB1E      ; 'GetFormatter'
        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
        test     rax, rax
-       je       SHORT G_M4854_IG10
+       je       SHORT G_M4854_IG04
        mov      rdi, 0xD1FFAB1E      ; data for MessagePack.FormatterResolverExtensions:GetFormatterRuntimeMethod
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
        nop      
-						;; size=86 bbWeight=1 PerfScore 10.00
-G_M4854_IG07:
+						;; size=239 bbWeight=1 PerfScore 31.50
+G_M4854_IG03:
        add      rsp, 32
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 2.75
-G_M4854_IG08:
-       mov      rdi, 0xD1FFAB1E      ; System.Type
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_NONGCSTATIC_BASE
-       call     [rax]CORINFO_HELP_GET_NONGCSTATIC_BASE
-       jmp      G_M4854_IG03
-						;; size=27 bbWeight=0 PerfScore 0.00
-G_M4854_IG09:
-       mov      rdi, 0xD1FFAB1E      ; 'types'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)
-       call     [rax]System.ArgumentNullException:Throw(System.String)
-       int3     
-						;; size=23 bbWeight=0 PerfScore 0.00
-G_M4854_IG10:
+G_M4854_IG04:
        mov      rdi, 0xD1FFAB1E      ; System.Exception
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rdi, rbx
        mov      rsi, 0xD1FFAB1E      ; 'Unable to find our own method.'
        mov      rax, 0xD1FFAB1E      ; code for System.Exception:.ctor(System.String):this
        call     [rax]System.Exception:.ctor(System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=52 bbWeight=0 PerfScore 0.00
 RWD00  	dd	3F400000h		;      0.75
 
 
-; Total bytes of code 420, prolog size 13, PerfScore 64.00, instruction count 88, allocated bytes for code 420 (MethodHash=c26bed09) for method MessagePack.FormatterResolverExtensions:.cctor() (FullOpts)
+; Total bytes of code 313, prolog size 13, PerfScore 38.00, instruction count 65, allocated bytes for code 313 (MethodHash=c26bed09) for method MessagePack.FormatterResolverExtensions:.cctor() (FullOpts)
 ; ============================================================
```

</details>


<details>
<summary>-104 (-53.89 % of base) - Moq.Extensions:CanCreateInstance(System.Type):bool</summary>

```diff
 ; Assembly listing for method Moq.Extensions:CanCreateInstance(System.Type):bool (FullOpts)
 ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 4 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] (  5,  4.50)     ref  ->  rbx         class-hnd single-def <System.Type>
+;  V00 arg0         [V00,T00] (  5,  4.50)     ref  ->  rbx         class-hnd single-def <System.Type>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;  V02 tmp1         [V02,T03] (  5,  5   )     ref  ->   r8         class-hnd single-def "Inlining Arg" <System.Type[]>
-;* V03 tmp2         [V03,T06] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V04 tmp3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Type>
-;* V05 tmp4         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Reflection.ConstructorInfo>
-;* V06 tmp5         [V06    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V07 cse0         [V07,T04] (  3,  2.50)    long  ->  r15         "CSE #03: aggressive"
-;  V08 cse1         [V08,T05] (  3,  1.50)     int  ->  rdi         "CSE #01: aggressive"
-;  V09 rat0         [V09,T00] (  4, 12.50)   byref  ->  rsi         "Strength reduced derived IV"
-;  V10 rat1         [V10,T01] (  4, 12.50)     int  ->  rdi         "Trip count IV"
+;* V02 tmp1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Type[]>
+;* V03 tmp2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Type[]>
+;  V04 tmp3         [V04,T02] (  2,  2   )     ref  ->   r8         class-hnd exact single-def "Inlining Arg" <System.Type[]>
+;* V05 tmp4         [V05,T03] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V06 tmp5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Type>
+;* V07 tmp6         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Reflection.ConstructorInfo>
+;* V08 tmp7         [V08    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V09 cse0         [V09,T01] (  3,  2.50)    long  ->  r15         "CSE #02: aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M18672_IG01:
        push     rbp
        push     r15
        push     rbx
        lea      rbp, [rsp+0x10]
        mov      rbx, rdi
 						;; size=12 bbWeight=1 PerfScore 3.75
 G_M18672_IG02:
        mov      rdi, rbx
        mov      rax, qword ptr [rbx]
        mov      r15, qword ptr [rax+0x78]
        call     [r15+0x08]System.Type:IsValueTypeImpl():bool:this
        test     eax, eax
        je       SHORT G_M18672_IG05
 						;; size=18 bbWeight=1 PerfScore 8.50
 G_M18672_IG03:
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M18672_IG04:
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=5 bbWeight=0.50 PerfScore 1.25
 G_M18672_IG05:
-       mov      rdi, 0xD1FFAB1E      ; global ptr
-       test     byte  ptr [rdi], 1
-       je       SHORT G_M18672_IG10
-						;; size=15 bbWeight=0.50 PerfScore 1.62
-G_M18672_IG06:
-       mov      rdi, 0xD1FFAB1E      ; data for System.Type:EmptyTypes
+       mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r8, gword ptr [rdi]
-       test     r8, r8
-       je       SHORT G_M18672_IG11
-       mov      edi, dword ptr [r8+0x08]
-       test     edi, edi
-       jle      SHORT G_M18672_IG08
-       lea      rsi, bword ptr [r8+0x10]
-       align    [11 bytes for IG07]
-						;; size=41 bbWeight=0.50 PerfScore 3.75
-G_M18672_IG07:
-       cmp      gword ptr [rsi], 0
-       je       SHORT G_M18672_IG11
-       add      rsi, 8
-       dec      edi
-       jne      SHORT G_M18672_IG07
-						;; size=14 bbWeight=4 PerfScore 18.00
-G_M18672_IG08:
        mov      rdi, rbx
        mov      esi, 20
        xor      rdx, rdx
        mov      ecx, 3
        xor      r9, r9
        call     [r15+0x38]System.Type:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
        test     rax, rax
        setne    al
        movzx    rax, al
-						;; size=31 bbWeight=0.50 PerfScore 2.62
-G_M18672_IG09:
+						;; size=44 bbWeight=0.50 PerfScore 3.75
+G_M18672_IG06:
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=5 bbWeight=0.50 PerfScore 1.25
-G_M18672_IG10:
-       mov      rdi, 0xD1FFAB1E      ; System.Type
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_NONGCSTATIC_BASE
-       call     [rax]CORINFO_HELP_GET_NONGCSTATIC_BASE
-       jmp      SHORT G_M18672_IG06
-						;; size=24 bbWeight=0 PerfScore 0.00
-G_M18672_IG11:
-       mov      rdi, 0xD1FFAB1E      ; 'types'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)
-       call     [rax]System.ArgumentNullException:Throw(System.String)
-       int3     
-						;; size=23 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 193, prolog size 12, PerfScore 40.88, instruction count 54, allocated bytes for code 193 (MethodHash=a458b70f) for method Moq.Extensions:CanCreateInstance(System.Type):bool (FullOpts)
+; Total bytes of code 89, prolog size 12, PerfScore 18.62, instruction count 31, allocated bytes for code 89 (MethodHash=a458b70f) for method Moq.Extensions:CanCreateInstance(System.Type):bool (FullOpts)
 ; ============================================================
```

</details>


<details>
<summary>-99 (-11.43 % of base) - Humanizer.BulgarianNumberToWordsConverter:InnerConvert(long,int,bool):System.String</summary>

```diff
 ; Assembly listing for method Humanizer.BulgarianNumberToWordsConverter:InnerConvert(long,int,bool):System.String (FullOpts)
 ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00    ] ( 13,  8   )    long  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op
+;  V00 arg0         [V00    ] ( 13,  8   )    long  ->  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V01 arg1         [V01,T01] ( 10,  6   )     int  ->  rbx         single-def
 ;  V02 arg2         [V02,T03] (  4,  3   )   ubyte  ->  r15         single-def
 ;* V03 loc0         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Collections.Generic.List`1[System.String]>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
-;  V05 tmp1         [V05,T00] ( 15, 15   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.String]>
-;  V06 tmp2         [V06,T11] (  3,  1.50)     ref  ->  r13         class-hnd single-def "Inline stloc first use temp" <System.String[]>
-;  V07 tmp3         [V07,T04] (  4,  2   )     int  ->  r12         single-def "Inline stloc first use temp"
-;  V08 tmp4         [V08,T05] (  2,  2   )     ref  ->  rax         single-def "argument with side effect"
-;  V09 tmp5         [V09,T06] (  2,  2   )     ref  ->  rax         single-def "argument with side effect"
-;  V10 tmp6         [V10,T07] (  2,  2   )     ref  ->  rax         single-def "argument with side effect"
-;  V11 tmp7         [V11,T08] (  2,  2   )     ref  ->  rax         single-def "argument with side effect"
-;  V12 tmp8         [V12,T09] (  2,  2   )     ref  ->  rax         single-def "argument with side effect"
-;  V13 tmp9         [V13,T10] (  2,  2   )     ref  ->  rax         single-def "argument with side effect"
-;  V14 cse0         [V14,T12] (  3,  1.50)     ref  ->  r13         "CSE #02: moderate"
-;  V15 cse1         [V15,T13] (  2,  1   )     int  ->  rdi         "CSE #03: moderate"
-;  V16 cse2         [V16,T02] ( 10,  5   )     int  ->  r13         multi-def "CSE #05: aggressive"
+;  V05 tmp1         [V05,T00] ( 13, 13   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.String]>
+;* V06 tmp2         [V06,T12] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String[]>
+;* V07 tmp3         [V07,T13] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
+;  V08 tmp4         [V08,T04] (  2,  2   )     ref  ->  rax         single-def "argument with side effect"
+;  V09 tmp5         [V09,T05] (  2,  2   )     ref  ->  rax         single-def "argument with side effect"
+;  V10 tmp6         [V10,T06] (  2,  2   )     ref  ->  rax         single-def "argument with side effect"
+;  V11 tmp7         [V11,T07] (  2,  2   )     ref  ->  rax         single-def "argument with side effect"
+;  V12 tmp8         [V12,T08] (  2,  2   )     ref  ->  rax         single-def "argument with side effect"
+;  V13 tmp9         [V13,T09] (  2,  2   )     ref  ->  rax         single-def "argument with side effect"
+;  V14 cse0         [V14,T10] (  2,  1   )     ref  ->  rsi         "CSE #01: moderate"
+;  V15 cse1         [V15,T02] ( 10,  5   )     int  ->  r13         multi-def "CSE #03: aggressive"
+;  V16 cse2         [V16,T11] (  2,  1   )     ref  ->  rsi         "CSE #02: moderate"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 32
 
 G_M33890_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rbx
-       sub      rsp, 24
+       sub      rsp, 32
        lea      rbp, [rsp+0x40]
-       mov      qword ptr [rbp-0x30], rdi
+       mov      qword ptr [rbp-0x28], rdi
        mov      ebx, esi
        mov      r15d, edx
-						;; size=28 bbWeight=1 PerfScore 8.25
+						;; size=26 bbWeight=1 PerfScore 7.25
 G_M33890_IG02:
-       cmp      qword ptr [rbp-0x30], 0
-       je       G_M33890_IG10
+       cmp      qword ptr [rbp-0x28], 0
+       je       G_M33890_IG07
 						;; size=11 bbWeight=1 PerfScore 2.00
 G_M33890_IG03:
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.String]
        call     CORINFO_HELP_NEWSFAST
        mov      r14, rax
-       mov      rdi, 0xD1FFAB1E      ; global ptr
-       test     byte  ptr [rdi], 1
-       je       G_M33890_IG14
-						;; size=37 bbWeight=0.50 PerfScore 2.38
-G_M33890_IG04:
-       mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List`1[System.String]:s_emptyArray
-       mov      r13, gword ptr [rdi]
+       mov      rdi, 0xD1FFAB1E      ; const ptr
+       mov      rsi, gword ptr [rdi]
        lea      rdi, bword ptr [r14+0x08]
-       mov      rsi, r13
        call     CORINFO_HELP_ASSIGN_REF
-       cmp      qword ptr [rbp-0x30], 0
-       jge      SHORT G_M33890_IG07
+       cmp      qword ptr [rbp-0x28], 0
+       jge      SHORT G_M33890_IG04
        inc      dword ptr [r14+0x14]
-       mov      r12d, dword ptr [r14+0x10]
-       mov      edi, dword ptr [r13+0x08]
-       cmp      edi, r12d
-       ja       SHORT G_M33890_IG05
        mov      rdi, r14
        mov      rsi, 0xD1FFAB1E      ; '<8='
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        call     [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
-       jmp      SHORT G_M33890_IG06
-						;; size=76 bbWeight=0.50 PerfScore 10.00
-G_M33890_IG05:
-       lea      esi, [r12+0x01]
-       mov      dword ptr [r14+0x10], esi
-       mov      esi, r12d
-       mov      rdi, 0xD1FFAB1E      ; '<8='
-       mov      gword ptr [r13+8*rsi+0x10], rdi
-						;; size=27 bbWeight=0.50 PerfScore 1.50
-G_M33890_IG06:
-       mov      rsi, qword ptr [rbp-0x30]
+       mov      rsi, qword ptr [rbp-0x28]
        neg      rsi
-       mov      qword ptr [rbp-0x30], rsi
-						;; size=11 bbWeight=0.50 PerfScore 1.12
-G_M33890_IG07:
+       mov      qword ptr [rbp-0x28], rsi
+						;; size=87 bbWeight=0.50 PerfScore 8.12
+G_M33890_IG04:
        mov      esi, ebx
        mov      rdi, 0xD1FFAB1E      ; ':28=B'
        mov      rax, 0xD1FFAB1E      ; code for Humanizer.BulgarianNumberToWordsConverter:ToOrdinalOverAHundred(System.String,int):System.String
        call     [rax]Humanizer.BulgarianNumberToWordsConverter:ToOrdinalOverAHundred(System.String,int):System.String
        mov      gword ptr [rsp+0x08], rax
        movzx    r13, r15b
        mov      edx, r13d
-       lea      rsi, [rbp-0x30]
+       lea      rsi, [rbp-0x28]
        mov      rdi, r14
        mov      rcx, 0xD1FFAB1E
        xor      r8d, r8d
        mov      r9, 0xD1FFAB1E      ; ':28=B'
        mov      rax, 0xD1FFAB1E      ; ':204@8'
        mov      gword ptr [rsp], rax
        mov      rax, 0xD1FFAB1E      ; code for Humanizer.BulgarianNumberToWordsConverter:CollectParts(System.Collections.Generic.List`1[System.String],byref,bool,long,int,System.String,System.String,System.String)
        call     [rax]Humanizer.BulgarianNumberToWordsConverter:CollectParts(System.Collections.Generic.List`1[System.String],byref,bool,long,int,System.String,System.String,System.String)
        mov      esi, ebx
        mov      rdi, 0xD1FFAB1E      ; ':204@'
        mov      rax, 0xD1FFAB1E      ; code for Humanizer.BulgarianNumberToWordsConverter:ToOrdinalOverAHundred(System.String,int):System.String
        call     [rax]Humanizer.BulgarianNumberToWordsConverter:ToOrdinalOverAHundred(System.String,int):System.String
        mov      gword ptr [rsp+0x08], rax
        mov      edx, r13d
-       lea      rsi, [rbp-0x30]
+       lea      rsi, [rbp-0x28]
        mov      rdi, r14
        mov      rcx, 0xD1FFAB1E
        xor      r8d, r8d
        mov      r9, 0xD1FFAB1E      ; ':204@'
        mov      rax, 0xD1FFAB1E      ; ':204@8'
        mov      gword ptr [rsp], rax
        mov      rax, 0xD1FFAB1E      ; code for Humanizer.BulgarianNumberToWordsConverter:CollectParts(System.Collections.Generic.List`1[System.String],byref,bool,long,int,System.String,System.String,System.String)
        call     [rax]Humanizer.BulgarianNumberToWordsConverter:CollectParts(System.Collections.Generic.List`1[System.String],byref,bool,long,int,System.String,System.String,System.String)
        mov      esi, ebx
        mov      rdi, 0xD1FFAB1E      ; 'B@8;'
        mov      rax, 0xD1FFAB1E      ; code for Humanizer.BulgarianNumberToWordsConverter:ToOrdinalOverAHundred(System.String,int):System.String
        call     [rax]Humanizer.BulgarianNumberToWordsConverter:ToOrdinalOverAHundred(System.String,int):System.String
        mov      gword ptr [rsp+0x08], rax
        mov      edx, r13d
-       lea      rsi, [rbp-0x30]
+       lea      rsi, [rbp-0x28]
        mov      rdi, r14
        mov      rcx, 0xD1FFAB1E
        xor      r8d, r8d
        mov      r9, 0xD1FFAB1E      ; 'B@8;'
        mov      rax, 0xD1FFAB1E      ; 'B@8;'
        mov      gword ptr [rsp], rax
        mov      rax, 0xD1FFAB1E      ; code for Humanizer.BulgarianNumberToWordsConverter:CollectParts(System.Collections.Generic.List`1[System.String],byref,bool,long,int,System.String,System.String,System.String)
        call     [rax]Humanizer.BulgarianNumberToWordsConverter:CollectParts(System.Collections.Generic.List`1[System.String],byref,bool,long,int,System.String,System.String,System.String)
        mov      esi, ebx
        mov      rdi, 0xD1FFAB1E      ; '<8;8'
        mov      rax, 0xD1FFAB1E      ; code for Humanizer.BulgarianNumberToWordsConverter:ToOrdinalOverAHundred(System.String,int):System.String
        call     [rax]Humanizer.BulgarianNumberToWordsConverter:ToOrdinalOverAHundred(System.String,int):System.String
        mov      gword ptr [rsp+0x08], rax
        mov      edx, r13d
-       lea      rsi, [rbp-0x30]
+       lea      rsi, [rbp-0x28]
        mov      rdi, r14
        mov      ecx, 0xD1FFAB1E
        xor      r8d, r8d
        mov      r9, 0xD1FFAB1E      ; '<8;8'
 						;; size=325 bbWeight=0.50 PerfScore 19.88
-G_M33890_IG08:
+G_M33890_IG05:
        mov      rax, 0xD1FFAB1E      ; '<8;8'
        mov      gword ptr [rsp], rax
        mov      rax, 0xD1FFAB1E      ; code for Humanizer.BulgarianNumberToWordsConverter:CollectParts(System.Collections.Generic.List`1[System.String],byref,bool,long,int,System.String,System.String,System.String)
        call     [rax]Humanizer.BulgarianNumberToWordsConverter:CollectParts(System.Collections.Generic.List`1[System.String],byref,bool,long,int,System.String,System.String,System.String)
        mov      esi, ebx
        mov      rdi, 0xD1FFAB1E      ; '<8;'
        mov      rax, 0xD1FFAB1E      ; code for Humanizer.BulgarianNumberToWordsConverter:ToOrdinalOverAHundred(System.String,int):System.String
        call     [rax]Humanizer.BulgarianNumberToWordsConverter:ToOrdinalOverAHundred(System.String,int):System.String
        mov      gword ptr [rsp+0x08], rax
        mov      edx, r13d
-       lea      rsi, [rbp-0x30]
+       lea      rsi, [rbp-0x28]
        mov      rdi, r14
        mov      ecx, 0xD1FFAB1E
        xor      r8d, r8d
        mov      r9, 0xD1FFAB1E      ; '<8;'
        mov      rax, 0xD1FFAB1E      ; '<8;8'
        mov      gword ptr [rsp], rax
        mov      rax, 0xD1FFAB1E      ; code for Humanizer.BulgarianNumberToWordsConverter:CollectParts(System.Collections.Generic.List`1[System.String],byref,bool,long,int,System.String,System.String,System.String)
        call     [rax]Humanizer.BulgarianNumberToWordsConverter:CollectParts(System.Collections.Generic.List`1[System.String],byref,bool,long,int,System.String,System.String,System.String)
        mov      esi, ebx
        mov      rdi, 0xD1FFAB1E      ; 'E8;'
        mov      rax, 0xD1FFAB1E      ; code for Humanizer.BulgarianNumberToWordsConverter:ToOrdinalOverAHundred(System.String,int):System.String
        call     [rax]Humanizer.BulgarianNumberToWordsConverter:ToOrdinalOverAHundred(System.String,int):System.String
        mov      gword ptr [rsp+0x08], rax
        mov      edx, r13d
-       lea      rsi, [rbp-0x30]
+       lea      rsi, [rbp-0x28]
        mov      rdi, r14
        mov      ecx, 0x3E8
        mov      r8d, 1
        mov      r9, 0xD1FFAB1E      ; 'E8;'
        mov      rax, 0xD1FFAB1E      ; 'E8;'
        mov      gword ptr [rsp], rax
        mov      rax, 0xD1FFAB1E      ; code for Humanizer.BulgarianNumberToWordsConverter:CollectParts(System.Collections.Generic.List`1[System.String],byref,bool,long,int,System.String,System.String,System.String)
        call     [rax]Humanizer.BulgarianNumberToWordsConverter:CollectParts(System.Collections.Generic.List`1[System.String],byref,bool,long,int,System.String,System.String,System.String)
        mov      edx, r13d
-       lea      rsi, [rbp-0x30]
+       lea      rsi, [rbp-0x28]
        mov      rdi, r14
        mov      ecx, ebx
        mov      rax, 0xD1FFAB1E      ; code for Humanizer.BulgarianNumberToWordsConverter:CollectPartsUnderOneThousand(System.Collections.Generic.List`1[System.String],byref,bool,int)
        call     [rax]Humanizer.BulgarianNumberToWordsConverter:CollectPartsUnderOneThousand(System.Collections.Generic.List`1[System.String],byref,bool,int)
        mov      rsi, r14
        mov      rdi, 0xD1FFAB1E      ; ' '
        mov      rax, 0xD1FFAB1E      ; code for System.String:Join(System.String,System.Collections.Generic.IEnumerable`1[System.String]):System.String
        call     [rax]System.String:Join(System.String,System.Collections.Generic.IEnumerable`1[System.String]):System.String
        nop      
 						;; size=245 bbWeight=0.50 PerfScore 17.50
-G_M33890_IG09:
-       add      rsp, 24
+G_M33890_IG06:
+       add      rsp, 32
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M33890_IG10:
+						;; size=13 bbWeight=0.50 PerfScore 1.88
+G_M33890_IG07:
        movzx    r13, r15b
        test     r13d, r13d
-       je       SHORT G_M33890_IG12
+       je       SHORT G_M33890_IG09
        mov      edi, ebx
        mov      rax, 0xD1FFAB1E      ; code for Humanizer.BulgarianNumberToWordsConverter:OrdinalZero(int):System.String
        call     [rax]Humanizer.BulgarianNumberToWordsConverter:OrdinalZero(int):System.String
        nop      
 						;; size=24 bbWeight=0.50 PerfScore 2.62
-G_M33890_IG11:
-       add      rsp, 24
+G_M33890_IG08:
+       add      rsp, 32
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M33890_IG12:
+						;; size=13 bbWeight=0.50 PerfScore 1.88
+G_M33890_IG09:
        mov      rax, 0xD1FFAB1E      ; '=C'
 						;; size=10 bbWeight=0.50 PerfScore 0.12
-G_M33890_IG13:
-       add      rsp, 24
+G_M33890_IG10:
+       add      rsp, 32
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M33890_IG14:
-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.String]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
-       jmp      G_M33890_IG04
-						;; size=27 bbWeight=0 PerfScore 0.00
+						;; size=13 bbWeight=0.50 PerfScore 1.88
 
-; Total bytes of code 866, prolog size 19, PerfScore 71.75, instruction count 182, allocated bytes for code 866 (MethodHash=5c427b9d) for method Humanizer.BulgarianNumberToWordsConverter:InnerConvert(long,int,bool):System.String (FullOpts)
+; Total bytes of code 767, prolog size 17, PerfScore 63.12, instruction count 160, allocated bytes for code 767 (MethodHash=5c427b9d) for method Humanizer.BulgarianNumberToWordsConverter:InnerConvert(long,int,bool):System.String (FullOpts)
 ; ============================================================
```

</details>


<details>
<summary>-50 (-10.96 % of base) - dnlib.DotNet.AssemblyResolver:GetDirs(System.String):System.Collections.Generic.IEnumerable`1[System.String]:this</summary>

```diff
 ; Assembly listing for method dnlib.DotNet.AssemblyResolver:GetDirs(System.String):System.Collections.Generic.IEnumerable`1[System.String]:this (FullOpts)
 ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 8 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <dnlib.DotNet.AssemblyResolver>
 ;  V01 arg1         [V01,T10] (  7,  7   )     ref  ->  rbx         class-hnd single-def <System.String>
 ;  V02 loc0         [V02,T00] (  8, 41   )     ref  ->  [rbp-0x30]  class-hnd exact EH-live single-def <System.Collections.Generic.List`1[System.String]>
 ;  V03 loc1         [V03,T05] (  3, 17   )     ref  ->  rbx         class-hnd exact single-def <System.IO.DirectoryInfo[]>
 ;* V04 loc2         [V04,T12] (  0,  0   )     int  ->  zero-ref   
 ;* V05 loc3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.IO.DirectoryInfo>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;  V07 tmp1         [V07,T11] (  3,  6   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.String]>
-;  V08 tmp2         [V08,T08] (  7, 14   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.IO.DirectoryInfo>
+;  V08 tmp2         [V08,T08] (  7, 14   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.IO.DirectoryInfo>
 ;* V09 tmp3         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impSpillSpecialSideEff" <System.Object>
-;  V10 tmp4         [V10,T09] (  5, 10   )     ref  ->  r14         class-hnd "Inlining Arg" <System.String>
+;  V10 tmp4         [V10,T09] (  5, 10   )     ref  ->  r13         class-hnd "Inlining Arg" <System.String>
 ;* V11 tmp5         [V11    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V12 tmp6         [V12,T04] (  3, 20   )     ref  ->  r13         class-hnd "Inline stloc first use temp" <System.String[]>
 ;  V13 tmp7         [V13,T03] (  4, 24   )     int  ->  r12         "Inline stloc first use temp"
 ;  V14 tmp8         [V14,T02] (  3, 32   )     ref  ->  rsi         class-hnd exact "Inlining Arg" <System.String>
-;  V15 cse0         [V15,T06] (  2, 16   )     int  ->  rdi         "CSE #03: aggressive"
-;  V16 cse1         [V16,T07] (  2, 16   )     int  ->  rdi         "CSE #02: aggressive"
-;  V17 rat0         [V17,T01] (  5, 33   )    long  ->  r15         "Widened IV V04"
+;  V15 cse0         [V15,T06] (  2, 16   )     int  ->  rdi         "CSE #02: aggressive"
+;  V16 cse1         [V16,T07] (  2, 16   )     int  ->  rdi         "CSE #01: aggressive"
+;  V17 rat0         [V17,T01] (  5, 33   )    long  ->  r14         "Widened IV V04"
 ;
 ; Lcl frame size = 8
 
 G_M1447_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        push     rax
        lea      rbp, [rsp+0x30]
        mov      rbx, rsi
 						;; size=19 bbWeight=1 PerfScore 7.75
 G_M1447_IG02:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Directory:Exists(System.String):bool
        call     [rax]System.IO.Directory:Exists(System.String):bool
        test     eax, eax
-       je       G_M1447_IG12
+       je       G_M1447_IG11
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.String]
        call     CORINFO_HELP_NEWSFAST
        mov      r15, rax
-       mov      rdi, 0xD1FFAB1E      ; global ptr
-       test     byte  ptr [rdi], 1
-       je       G_M1447_IG16
-						;; size=60 bbWeight=1 PerfScore 9.50
-G_M1447_IG03:
-       mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List`1[System.String]:s_emptyArray
+       mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      rsi, gword ptr [rdi]
        lea      rdi, bword ptr [r15+0x08]
        call     CORINFO_HELP_ASSIGN_REF
        mov      gword ptr [rbp-0x30], r15
-						;; size=26 bbWeight=1 PerfScore 4.75
-G_M1447_IG04:
+						;; size=67 bbWeight=1 PerfScore 11.00
+G_M1447_IG03:
        mov      rdi, 0xD1FFAB1E      ; System.IO.DirectoryInfo
        call     CORINFO_HELP_NEWSFAST
-       mov      r15, rax
-       mov      byte  ptr [r15+0x29], 1
+       mov      r14, rax
+       mov      byte  ptr [r14+0x29], 1
        test     rbx, rbx
-       je       G_M1447_IG09
+       je       G_M1447_IG08
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Path:GetFullPath(System.String):System.String
        call     [rax]System.IO.Path:GetFullPath(System.String):System.String
-       mov      r14, rax
-       lea      rdi, bword ptr [r15+0x10]
+       mov      r13, rax
+       lea      rdi, bword ptr [r14+0x10]
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
-       test     r14, r14
-       cmove    r14, rbx
+       test     r13, r13
+       cmove    r13, rbx
        xor      rdi, rdi
-       mov      gword ptr [r15+0x18], rdi
-       lea      rdi, bword ptr [r15+0x08]
-       mov      rsi, r14
+       mov      gword ptr [r14+0x18], rdi
+       lea      rdi, bword ptr [r14+0x08]
+       mov      rsi, r13
        call     CORINFO_HELP_ASSIGN_REF
-       mov      byte  ptr [r15+0xB8], 1
-       mov      rdi, r15
+       mov      byte  ptr [r14+0xB8], 1
+       mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.IO.DirectoryInfo:GetDirectories():System.IO.DirectoryInfo[]:this
        call     [rax]System.IO.DirectoryInfo:GetDirectories():System.IO.DirectoryInfo[]:this
        mov      rbx, rax
-       xor      r15d, r15d
-       jmp      SHORT G_M1447_IG07
+       xor      r14d, r14d
+       jmp      SHORT G_M1447_IG06
 						;; size=118 bbWeight=1 PerfScore 20.00
-G_M1447_IG05:
-       mov      rdi, r14
+G_M1447_IG04:
+       mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        call     [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
 						;; size=15 bbWeight=4 PerfScore 14.00
-G_M1447_IG06:
-       inc      r15d
+G_M1447_IG05:
+       inc      r14d
 						;; size=3 bbWeight=8 PerfScore 2.00
-G_M1447_IG07:
+G_M1447_IG06:
        mov      edi, dword ptr [rbx+0x08]
-       cmp      edi, r15d
-       jle      SHORT G_M1447_IG10
-       mov      rdi, gword ptr [rbx+8*r15+0x10]
+       cmp      edi, r14d
+       jle      SHORT G_M1447_IG09
+       mov      rdi, gword ptr [rbx+8*r14+0x10]
        mov      rsi, gword ptr [rdi+0x08]
-       mov      r14, gword ptr [rbp-0x30]
-       inc      dword ptr [r14+0x14]
-       mov      r13, gword ptr [r14+0x08]
-       mov      r12d, dword ptr [r14+0x10]
+       inc      dword ptr [r15+0x14]
+       mov      r13, gword ptr [r15+0x08]
+       mov      r12d, dword ptr [r15+0x10]
        mov      edi, dword ptr [r13+0x08]
        cmp      edi, r12d
-       jbe      SHORT G_M1447_IG05
-						;; size=42 bbWeight=8 PerfScore 148.00
-G_M1447_IG08:
+       jbe      SHORT G_M1447_IG04
+						;; size=38 bbWeight=8 PerfScore 140.00
+G_M1447_IG07:
        lea      edi, [r12+0x01]
-       mov      dword ptr [r14+0x10], edi
+       mov      dword ptr [r15+0x10], edi
        mov      edi, r12d
        lea      rdi, bword ptr [r13+8*rdi+0x10]
        call     CORINFO_HELP_ASSIGN_REF
-       jmp      SHORT G_M1447_IG06
+       jmp      SHORT G_M1447_IG05
 						;; size=24 bbWeight=4 PerfScore 27.00
-G_M1447_IG09:
+G_M1447_IG08:
        mov      rdi, 0xD1FFAB1E      ; 'path'
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)
        call     [rax]System.ArgumentNullException:Throw(System.String)
        int3     
 						;; size=23 bbWeight=0 PerfScore 0.00
-G_M1447_IG10:
+G_M1447_IG09:
        mov      rax, gword ptr [rbp-0x30]
 						;; size=4 bbWeight=1 PerfScore 1.00
-G_M1447_IG11:
+G_M1447_IG10:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
-G_M1447_IG12:
+G_M1447_IG11:
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
-       je       SHORT G_M1447_IG15
+       je       SHORT G_M1447_IG14
 						;; size=15 bbWeight=1 PerfScore 3.25
-G_M1447_IG13:
+G_M1447_IG12:
        mov      rax, 0xD1FFAB1E      ; data for System.Array2+EmptyClass`1[System.String]:Empty
        mov      rax, gword ptr [rax]
 						;; size=13 bbWeight=1 PerfScore 2.25
-G_M1447_IG14:
+G_M1447_IG13:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
-G_M1447_IG15:
+G_M1447_IG14:
        mov      rdi, 0xD1FFAB1E      ; System.Array2+EmptyClass`1[System.String]
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
-       jmp      SHORT G_M1447_IG13
+       jmp      SHORT G_M1447_IG12
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M1447_IG16:
-       mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.String]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
-       jmp      G_M1447_IG03
-						;; size=27 bbWeight=0 PerfScore 0.00
-G_M1447_IG17:
+G_M1447_IG15:
        push     rax
 						;; size=1 bbWeight=0 PerfScore 0.00
-G_M1447_IG18:
-       lea      rax, G_M1447_IG10
+G_M1447_IG16:
+       lea      rax, G_M1447_IG09
 						;; size=7 bbWeight=0 PerfScore 0.00
-G_M1447_IG19:
+G_M1447_IG17:
        add      rsp, 8
        ret      
 						;; size=5 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 456, prolog size 19, PerfScore 248.00, instruction count 112, allocated bytes for code 456 (MethodHash=0239fa58) for method dnlib.DotNet.AssemblyResolver:GetDirs(System.String):System.Collections.Generic.IEnumerable`1[System.String]:this (FullOpts)
+; Total bytes of code 406, prolog size 19, PerfScore 236.75, instruction count 104, allocated bytes for code 406 (MethodHash=0239fa58) for method dnlib.DotNet.AssemblyResolver:GetDirs(System.String):System.Collections.Generic.IEnumerable`1[System.String]:this (FullOpts)
 ; ============================================================
```

</details>



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

