Untitled diff

Created Diff never expires
417 removals
Words removed830
Total words2778
Words removed (%)29.88
507 lines
395 additions
Words added993
Total words2941
Words added (%)33.76
477 lines
; Assembly listing for method System.TimeZoneInfo:.ctor(ubyte[],System.String,ubyte):this (FullOpts)
; Assembly listing for method System.TimeZoneInfo:.ctor(ubyte[],System.String,ubyte):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; FullOpts code
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; partially interruptible
; partially interruptible
; No PGO data
; No PGO data
; 0 inlinees with PGO data; 33 single block inlinees; 13 inlinees without PGO data
; 0 inlinees with PGO data; 39 single block inlinees; 19 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 this [V00,T05] ( 20, 21 ) ref -> rbx this class-hnd single-def <System.TimeZoneInfo>
; V00 this [V00,T11] ( 20, 21 ) ref -> rbx this class-hnd single-def <System.TimeZoneInfo>
; V01 arg1 [V01,T40] ( 3, 2.50) ref -> r14 class-hnd single-def <ubyte[]>
; V01 arg1 [V01,T49] ( 3, 2.50) ref -> r14 class-hnd single-def <ubyte[]>
; V02 arg2 [V02,T31] ( 4, 4 ) ref -> r15 class-hnd single-def <System.String>
; V02 arg2 [V02,T43] ( 4, 4 ) ref -> r15 class-hnd single-def <System.String>
; V03 arg3 [V03,T41] ( 3, 2.50) ubyte -> r13 single-def
; V03 arg3 [V03,T50] ( 3, 2.50) ubyte -> r13 single-def
; V04 loc0 [V04 ] ( 6, 13.50) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.DateTime[]>
; V04 loc0 [V04 ] ( 6, 13.50) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.DateTime[]>
; V05 loc1 [V05 ] ( 4, 5 ) ref -> [rbp-0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <ubyte[]>
; V05 loc1 [V05 ] ( 4, 5 ) ref -> [rbp-0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <ubyte[]>
; V06 loc2 [V06 ] ( 20, 41.50) ref -> [rbp-0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.TimeZoneInfo+TZifType[]>
; V06 loc2 [V06 ] ( 20, 41.50) ref -> [rbp-0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.TimeZoneInfo+TZifType[]>
; V07 loc3 [V07 ] ( 5, 8.50) ref -> [rbp-0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
; V07 loc3 [V07 ] ( 5, 8.50) ref -> [rbp-0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
; V08 loc4 [V08 ] ( 2, 1 ) ref -> [rbp-0x50] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
; V08 loc4 [V08 ] ( 2, 1 ) ref -> [rbp-0x50] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
;* V09 loc5 [V09 ] ( 0, 0 ) struct ( 8) zero-ref <System.DateTime>
;* V09 loc5 [V09 ] ( 0, 0 ) struct ( 8) zero-ref <System.DateTime>
;* V10 loc6 [V10,T54] ( 0, 0 ) int -> zero-ref
;* V10 loc6 [V10,T66] ( 0, 0 ) int -> zero-ref
; V11 loc7 [V11,T12] ( 6, 12 ) int -> r12
; V11 loc7 [V11,T18] ( 6, 12 ) int -> r12
;* V12 loc8 [V12,T55] ( 0, 0 ) int -> zero-ref
;* V12 loc8 [V12,T67] ( 0, 0 ) int -> zero-ref
;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
;# V13 OutArgs [V13 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
;* V14 tmp1 [V14 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V14 tmp1 [V14 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V15 tmp2 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V15 tmp2 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
;* V16 tmp3 [V16 ] ( 0, 0 ) struct ( 8) zero-ref "folding static readonly field struct" <System.TimeSpan>
;* V16 tmp3 [V16 ] ( 0, 0 ) struct ( 8) zero-ref "folding static readonly field struct" <System.TimeSpan>
; V17 tmp4 [V17,T32] ( 3, 6 ) ref -> rax class-hnd exact "Inline return value spill temp" <System.String>
; V17 tmp4 [V17,T44] ( 3, 6 ) ref -> rsi class-hnd exact "Inline return value spill temp" <System.String>
; V18 tmp5 [V18,T07] ( 5, 20 ) ref -> [rbp-0x58] class-hnd exact spill-single-def "Inlining Arg" <System.String>
; V18 tmp5 [V18,T05] ( 7, 25 ) ref -> [rbp-0x80] class-hnd exact spill-single-def "Inlining Arg" <System.String>
; V19 tmp6 [V19,T00] ( 8, 32 ) int -> r12 "Inlining Arg"
; V19 tmp6 [V19,T00] ( 10, 37 ) int -> r12 "Inlining Arg"
;* V20 tmp7 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V20 tmp7 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V21 tmp8 [V21,T14] ( 4, 8 ) int -> rdx "Inline return value spill temp"
; V21 tmp8 [V21,T26] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V22 tmp9 [V22,T26] ( 2, 8 ) int -> rdx "Inlining Arg"
; V22 tmp9 [V22,T38] ( 2, 8 ) int -> rdx "Inlining Arg"
;* V23 tmp10 [V23 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V23 tmp10 [V23 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V24 tmp11 [V24,T22] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V24 tmp11 [V24,T34] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V25 tmp12 [V25,T15] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V25 tmp12 [V25,T27] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V26 tmp13 [V26,T33] ( 3, 6 ) ref -> rax class-hnd exact "Inline return value spill temp" <System.String>
; V26 tmp13 [V26,T23] ( 4, 8 ) ref -> rsi class-hnd exact "Inline return value spill temp" <System.String>
; V27 tmp14 [V27,T08] ( 5, 20 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "Inlining Arg" <System.String>
; V27 tmp14 [V27,T08] ( 7, 25 ) int -> rdx "Inlining Arg"
; V28 tmp15 [V28,T01] ( 8, 32 ) int -> r12 "Inlining Arg"
;* V28 tmp15 [V28 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V29 tmp16 [V29 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V29 tmp16 [V29,T53] ( 2, 4 ) long -> [rbp-0x58] spill-single-def "Inline stloc first use temp"
; V30 tmp17 [V30,T16] ( 4, 8 ) int -> rdx "Inline return value spill temp"
; V30 tmp17 [V30,T14] ( 4, 16 ) ref -> [rbp-0x88] class-hnd exact spill-single-def "dup spill" <System.String>
; V31 tmp18 [V31,T27] ( 2, 8 ) int -> rdx "Inlining Arg"
;* V31 tmp18 [V31 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V32 tmp19 [V32 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V32 tmp19 [V32 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V33 tmp20 [V33,T23] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V33 tmp20 [V33,T45] ( 3, 6 ) ref -> rsi class-hnd exact "Inline return value spill temp" <System.String>
; V34 tmp21 [V34,T17] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V34 tmp21 [V34,T06] ( 7, 25 ) ref -> [rbp-0x90] class-hnd exact spill-single-def "Inlining Arg" <System.String>
;* V35 tmp22 [V35 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
; V35 tmp22 [V35,T01] ( 10, 37 ) int -> r12 "Inlining Arg"
;* V36 tmp23 [V36 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V36 tmp23 [V36 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V37 tmp24 [V37 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
; V37 tmp24 [V37,T28] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V38 tmp25 [V38,T34] ( 3, 6 ) ref -> rax class-hnd exact "Inline return value spill temp" <System.String>
; V38 tmp25 [V38,T39] ( 2, 8 ) int -> rdx "Inlining Arg"
; V39 tmp26 [V39,T09] ( 5, 20 ) ref -> r12 class-hnd exact "Inlining Arg" <System.String>
;* V39 tmp26 [V39 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V40 tmp27 [V40,T02] ( 8, 32 ) int -> r14 "Inlining Arg"
; V40 tmp27 [V40,T35] ( 2, 8 ) byref -> rdi "Inlining Arg"
;* V41 tmp28 [V41 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V41 tmp28 [V41,T29] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V42 tmp29 [V42,T18] ( 4, 8 ) int -> rdx "Inline return value spill temp"
; V42 tmp29 [V42,T24] ( 4, 8 ) ref -> rsi class-hnd exact "Inline return value spill temp" <System.String>
; V43 tmp30 [V43,T28] ( 2, 8 ) int -> rdx "Inlining Arg"
; V43 tmp30 [V43,T09] ( 7, 25 ) int -> rdx "Inlining Arg"
;* V44 tmp31 [V44 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V44 tmp31 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V45 tmp32 [V45,T24] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V45 tmp32 [V45,T54] ( 2, 4 ) long -> [rbp-0x60] spill-single-def "Inline stloc first use temp"
; V46 tmp33 [V46,T19] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V46 tmp33 [V46,T15] ( 4, 16 ) ref -> [rbp-0x98] class-hnd exact spill-single-def "dup spill" <System.String>
; V47 tmp34 [V47,T35] ( 3, 6 ) ref -> rax class-hnd exact "Inline return value spill temp" <System.String>
;* V47 tmp34 [V47 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V48 tmp35 [V48,T10] ( 5, 20 ) ref -> r12 class-hnd exact "Inlining Arg" <System.String>
;* V48 tmp35 [V48 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V49 tmp36 [V49,T03] ( 8, 32 ) int -> r14 "Inlining Arg"
;* V49 tmp36 [V49 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
;* V50 tmp37 [V50 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V50 tmp37 [V50 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <System.DateTime>
; V51 tmp38 [V51,T20] ( 4, 8 ) int -> rdx "Inline return value spill temp"
;* V51 tmp38 [V51 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
; V52 tmp39 [V52,T29] ( 2, 8 ) int -> rdx "Inlining Arg"
; V52 tmp39 [V52,T46] ( 3, 6 ) ref -> rsi class-hnd exact "Inline return value spill temp" <System.String>
;* V53 tmp40 [V53 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V53 tmp40 [V53,T07] ( 7, 25 ) ref -> r12 class-hnd exact "Inlining Arg" <System.String>
; V54 tmp41 [V54,T25] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V54 tmp41 [V54,T02] ( 10, 37 ) int -> r14 "Inlining Arg"
; V55 tmp42 [V55,T21] ( 4, 8 ) int -> rax "Inline return value spill temp"
;* V55 tmp42 [V55 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V56 tmp43 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V56 tmp43 [V56,T30] ( 4, 8 ) int -> rax "Inline return value spill temp"
;* V57 tmp44 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V57 tmp44 [V57,T40] ( 2, 8 ) int -> rdx "Inlining Arg"
;* V58 tmp45 [V58 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V58 tmp45 [V58 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V59 tmp46 [V59 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V59 tmp46 [V59,T36] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V60 tmp47 [V60,T51] ( 4, 2 ) long -> rsi "Inline stloc first use temp"
; V60 tmp47 [V60,T31] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V61 tmp48 [V61,T42] ( 2, 4.50) long -> r15 "field V09._dateData (fldOffset=0x0)" P-INDEP
; V61 tmp48 [V61,T25] ( 4, 8 ) ref -> rsi class-hnd exact "Inline return value spill temp" <System.String>
; V62 tmp49 [V62,T53] ( 2, 1 ) long -> rsi "field V15._ticks (fldOffset=0x0)" P-INDEP
; V62 tmp49 [V62,T10] ( 7, 25 ) int -> rdx "Inlining Arg"
;* V63 tmp50 [V63,T56] ( 0, 0 ) long -> zero-ref "field V16._ticks (fldOffset=0x0)" P-INDEP
;* V63 tmp50 [V63 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V64 tmp51 [V64,T30] ( 2, 8 ) long -> rdi "field V35._dateData (fldOffset=0x0)" P-INDEP
; V64 tmp51 [V64,T55] ( 2, 4 ) long -> [rbp-0x68] spill-single-def "Inline stloc first use temp"
;* V65 tmp52 [V65 ] ( 0, 0 ) long -> zero-ref "field V36._dateData (fldOffset=0x0)" P-INDEP
; V65 tmp52 [V65,T16] ( 4, 16 ) ref -> [rbp-0xA0] class-hnd exact spill-single-def "dup spill" <System.String>
; V66 tmp53 [V66,T44] ( 3, 3 ) long -> rdi "fgMakeTemp is creating a new local variable"
;* V66 tmp53 [V66 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V67 tmp54 [V67,T45] ( 3, 3 ) long -> rdi "fgMakeTemp is creating a new local variable"
;* V67 tmp54 [V67 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V68 tmp55 [V68,T43] ( 4, 4 ) long -> rsi "fgMakeTemp is creating a new local variable"
; V68 tmp55 [V68,T47] ( 3, 6 ) ref -> rax class-hnd exact "Inline return value spill temp" <System.String>
; V69 cse0 [V69,T13] ( 5, 10 ) long -> rax "CSE #02: moderate"
; V69 tmp56 [V69,T13] ( 5, 20 ) ref -> r12 class-hnd exact "Inlining Arg" <System.String>
; V70 cse1 [V70,T11] ( 5, 14 ) long -> r14 "CSE #07: moderate"
; V70 tmp57 [V70,T03] ( 8, 32 ) int -> r14 "Inlining Arg"
; V71 cse2 [V71,T52] ( 4, 2 ) long -> rsi "CSE #11: conservative"
;* V71 tmp58 [V71 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V72 cse3 [V72,T36] ( 3, 6 ) int -> rdi "CSE #03: moderate"
; V72 tmp59 [V72,T32] ( 4, 8 ) int -> rdx "Inline return value spill temp"
; V73 cse4 [V73,T37] ( 3, 6 ) int -> rdi "CSE #04: moderate"
; V73 tmp60 [V73,T41] ( 2, 8 ) int -> rdx "Inlining Arg"
; V74 cse5 [V74,T38] ( 3, 6 ) int -> rdi "CSE #09: moderate"
;* V74 tmp61 [V74 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V75 cse6 [V75,T39] ( 3, 6 ) int -> rdi "CSE #10: moderate"
; V75 tmp62 [V75,T37] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V76 rat0 [V76,T06] ( 8, 20.50) long -> r14 "Widened IV V10"
; V76 tmp63 [V76,T33] ( 4, 8 ) int -> rax "Inline return value spill temp"
; V77 rat1 [V77,T04] ( 9, 26.50) long -> r15 "Widened IV V12"
;* V77 tmp64 [V77 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V78 rat2 [V78,T46] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;* V78 tmp65 [V78 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V79 rat3 [V79,T47] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;* V79 tmp66 [V79 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V80 rat4 [V80,T48] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;* V80 tmp67 [V80 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V81 rat5 [V81,T49] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
; V81 tmp68 [V81,T63] ( 4, 2 ) long -> rsi "Inline stloc first use temp"
; V82 rat6 [V82,T50] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
; V82 tmp69 [V82,T51] ( 2, 4.50) long -> r15 "field V09._dateData (fldOffset=0x0)" P-INDEP
; V83 tmp70 [V83,T65] ( 2, 1 ) long -> rsi "field V15._ticks (fldOffset=0x0)" P-INDEP
;* V84 tmp71 [V84,T68] ( 0, 0 ) long -> zero-ref "field V16._ticks (fldOffset=0x0)" P-INDEP
; V85 tmp72 [V85,T42] ( 2, 8 ) long -> rdi "field V49._dateData (fldOffset=0x0)" P-INDEP
;* V86 tmp73 [V86 ] ( 0, 0 ) long -> zero-ref "field V50._dateData (fldOffset=0x0)" P-INDEP
; V87 tmp74 [V87,T56] ( 3, 3 ) long -> rdi "fgMakeTemp is creating a new local variable"
; V88 tmp75 [V88,T57] ( 3, 3 ) long -> rdi "fgMakeTemp is creating a new local variable"
; V89 tmp76 [V89,T52] ( 4, 4 ) long -> rsi "fgMakeTemp is creating a new local variable"
; V90 cse0 [V90,T19] ( 5, 10 ) long -> rax "CSE #02: moderate"
; V91 cse1 [V91,T17] ( 5, 14 ) long -> r14 "CSE #14: moderate"
; V92 cse2 [V92,T64] ( 4, 2 ) long -> rsi "CSE #21: conservative"
; V93 cse3 [V93,T20] ( 5, 10 ) int -> [rbp-0x6C] spill-single-def "CSE #03: moderate"
; V94 cse4 [V94,T21] ( 5, 10 ) int -> [rbp-0x70] spill-single-def "CSE #07: moderate"
; V95 cse5 [V95,T22] ( 5, 10 ) int -> [rbp-0x74] spill-single-def "CSE #16: moderate"
; V96 cse6 [V96,T48] ( 3, 6 ) int -> rdi "CSE #20: conservative"
; V97 rat0 [V97,T12] ( 8, 20.50) long -> r14 "Widened IV V10"
; V98 rat1 [V98,T04] ( 9, 26.50) long -> r15 "Widened IV V12"
; V99 rat2 [V99,T58] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
; V100 rat3 [V100,T59] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
; V101 rat4 [V101,T60] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
; V102 rat5 [V102,T61] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
; V103 rat6 [V103,T62] ( 3, 3 ) long -> rdx "ReplaceWithLclVar is creating a new local variable"
;
;
; Lcl frame size = 56
; Lcl frame size = 120


G_M41263_IG01:
G_M41263_IG01:
push rbp
push rbp
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rbx
push rbx
sub rsp, 56
sub rsp, 120
lea rbp, [rsp+0x60]
lea rbp, [rsp+0xA0]
vxorps xmm8, xmm8, xmm8
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x50], ymm8
vmovdqu ymmword ptr [rbp-0x50], ymm8
xor eax, eax
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov qword ptr [rbp-0x30], rax
mov rbx, rdi
mov rbx, rdi
mov r14, rsi
mov r14, rsi
mov r15, rdx
mov r15, rdx
mov r13d, ecx
mov r13d, ecx
;; size=47 bbWeight=1 PerfScore 11.33
;; size=50 bbWeight=1 PerfScore 11.33
G_M41263_IG02:
G_M41263_IG02:
lea rdi, bword ptr [rbx+0x08]
lea rdi, bword ptr [rbx+0x08]
mov rsi, r15
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [rbx+0x49], 1
mov byte ptr [rbx+0x49], 1
mov rdi, r15
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:IsUtcAlias(System.String):ubyte
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:IsUtcAlias(System.String):ubyte
call [rax]System.TimeZoneInfo:IsUtcAlias(System.String):ubyte
call [rax]System.TimeZoneInfo:IsUtcAlias(System.String):ubyte
test eax, eax
test eax, eax
jne G_M41263_IG34
jne G_M41263_IG47
;; size=39 bbWeight=1 PerfScore 7.50
;; size=39 bbWeight=1 PerfScore 7.50
G_M41263_IG03:
G_M41263_IG03:
lea r9, [rbp-0x50]
lea r9, [rbp-0x50]
lea rsi, [rbp-0x30]
lea rsi, [rbp-0x30]
lea rdx, [rbp-0x38]
lea rdx, [rbp-0x38]
lea rcx, [rbp-0x40]
lea rcx, [rbp-0x40]
lea r8, [rbp-0x48]
lea r8, [rbp-0x48]
mov rdi, r14
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:TZif_ParseRaw(ubyte[],byref,byref,byref,byref,byref)
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:TZif_ParseRaw(ubyte[],byref,byref,byref,byref,byref)
call [rax]System.TimeZoneInfo:TZif_ParseRaw(ubyte[],byref,byref,byref,byref,byref)
call [rax]System.TimeZoneInfo:TZif_ParseRaw(ubyte[],byref,byref,byref,byref,byref)
mov rax, 0xD1FFAB1E ; code for System.DateTime:get_UtcNow():System.DateTime
mov rax, 0xD1FFAB1E ; code for System.DateTime:get_UtcNow():System.DateTime
call [rax]System.DateTime:get_UtcNow():System.DateTime
call [rax]System.DateTime:get_UtcNow():System.DateTime
mov r15, rax
mov r15, rax
xor r14d, r14d
xor r14d, r14d
jmp G_M41263_IG10
jmp G_M41263_IG13
;; size=58 bbWeight=0.50 PerfScore 5.88
;; size=58 bbWeight=0.50 PerfScore 5.88
G_M41263_IG04:
G_M41263_IG04:
mov rcx, gword ptr [rbp-0x48]
mov rcx, gword ptr [rbp-0x48]
mov gword ptr [rbp-0x60], rcx
mov rsi, rcx
mov gword ptr [rbp-0x90], rsi
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp r12d, dword ptr [rdi+0x08]
cmp r12d, dword ptr [rdi+0x08]
jae G_M41263_IG39
jae G_M41263_IG52
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
movzx r12, byte ptr [rdi+rax+0x19]
movzx r12, byte ptr [rdi+rax+0x19]
mov edi, dword ptr [rcx+0x08]
mov eax, dword ptr [rsi+0x08]
mov edx, edi
mov dword ptr [rbp-0x70], eax
mov edx, eax
sub edx, r12d
sub edx, r12d
cmp edi, r12d
cmp eax, r12d
jb G_M41263_IG33
jb G_M41263_IG46
movsxd rdi, r12d
movsxd rdi, r12d
lea rdi, bword ptr [rcx+2*rdi+0x0C]
lea rdi, bword ptr [rsi+2*rdi+0x0C]
xor esi, esi
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [rax]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [rcx]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
test eax, eax
test eax, eax
jge SHORT G_M41263_IG05
jge SHORT G_M41263_IG05
mov edx, eax
jmp SHORT G_M41263_IG06
jmp SHORT G_M41263_IG06
;; size=79 bbWeight=2 PerfScore 44.00
;; size=86 bbWeight=2 PerfScore 46.00
G_M41263_IG05:
G_M41263_IG05:
lea edx, [rax+r12]
add eax, r12d
;; size=4 bbWeight=2 PerfScore 1.00
;; size=3 bbWeight=2 PerfScore 0.50
G_M41263_IG06:
G_M41263_IG06:
test edx, edx
test eax, eax
jle SHORT G_M41263_IG07
jle G_M41263_IG10
mov edx, eax
sub edx, r12d
sub edx, r12d
mov rdi, gword ptr [rbp-0x60]
mov edi, r12d
mov esi, r12d
mov eax, edx
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this
add rdi, rax
call [rax]System.String:Substring(int,int):System.String:this
mov eax, dword ptr [rbp-0x70]
jmp SHORT G_M41263_IG08
mov ecx, eax
;; size=28 bbWeight=2 PerfScore 16.00
cmp rdi, rcx
ja G_M41263_IG22
test edx, edx
je SHORT G_M41263_IG08
cmp eax, edx
je SHORT G_M41263_IG07
mov eax, edx
mov qword ptr [rbp-0x60], rax
mov edi, edx
call System.String:FastAllocateString(int):System.String
mov gword ptr [rbp-0x98], rax
mov edi, r12d
mov r12, gword ptr [rbp-0x90]
lea rsi, bword ptr [r12+2*rdi+0x0C]
mov r12, gword ptr [rbp-0x98]
cmp byte ptr [r12], r12b
lea rdi, bword ptr [r12+0x0C]
mov rdx, qword ptr [rbp-0x60]
add rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
mov rsi, r12
jmp SHORT G_M41263_IG09
;; size=118 bbWeight=2 PerfScore 49.00
G_M41263_IG07:
G_M41263_IG07:
mov rdi, gword ptr [rbp-0x60]
mov r12, gword ptr [rbp-0x90]
mov rsi, r12
jmp SHORT G_M41263_IG09
;; size=12 bbWeight=2 PerfScore 6.50
G_M41263_IG08:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=2 PerfScore 0.50
G_M41263_IG09:
jmp SHORT G_M41263_IG11
;; size=2 bbWeight=2 PerfScore 4.00
G_M41263_IG10:
mov rdi, gword ptr [rbp-0x90]
mov esi, r12d
mov esi, r12d
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this
call [rax]System.String:Substring(int):System.String:this
call [rax]System.String:Substring(int):System.String:this
;; size=19 bbWeight=2 PerfScore 9.00
mov rsi, rax
G_M41263_IG08:
;; size=25 bbWeight=2 PerfScore 9.50
G_M41263_IG11:
lea rdi, bword ptr [rbx+0x40]
lea rdi, bword ptr [rbx+0x40]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
;; size=12 bbWeight=2 PerfScore 3.50
;; size=9 bbWeight=2 PerfScore 3.00
G_M41263_IG09:
G_M41263_IG12:
inc r14d
inc r14d
;; size=3 bbWeight=2 PerfScore 0.50
;; size=3 bbWeight=2 PerfScore 0.50
G_M41263_IG10:
G_M41263_IG13:
mov rdi, gword ptr [rbp-0x30]
mov rdi, gword ptr [rbp-0x30]
cmp dword ptr [rdi+0x08], r14d
cmp dword ptr [rdi+0x08], r14d
jle G_M41263_IG16
jle G_M41263_IG24
mov rdi, gword ptr [rbp-0x30]
mov rdi, gword ptr [rbp-0x30]
cmp r14d, dword ptr [rdi+0x08]
cmp r14d, dword ptr [rdi+0x08]
jae G_M41263_IG39
jae G_M41263_IG52
mov rdi, gword ptr [rbp-0x30]
mov rdi, gword ptr [rbp-0x30]
mov rdi, qword ptr [rdi+8*r14+0x10]
mov rdi, qword ptr [rdi+8*r14+0x10]
mov rdx, 0xD1FFAB1E
mov rdx, 0xD1FFAB1E
and rdi, rdx
and rdi, rdx
and rdx, r15
and rdx, r15
cmp rdi, rdx
cmp rdi, rdx
jg G_M41263_IG16
jg G_M41263_IG24
;; size=62 bbWeight=4 PerfScore 60.00
;; size=62 bbWeight=4 PerfScore 60.00
G_M41263_IG11:
G_M41263_IG14:
mov rdi, gword ptr [rbp-0x38]
mov rdi, gword ptr [rbp-0x38]
cmp r14d, dword ptr [rdi+0x08]
cmp r14d, dword ptr [rdi+0x08]
jae G_M41263_IG39
jae G_M41263_IG52
mov rdi, gword ptr [rbp-0x38]
mov rdi, gword ptr [rbp-0x38]
movzx r12, byte ptr [rdi+r14+0x10]
movzx r12, byte ptr [rdi+r14+0x10]
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp r12d, dword ptr [rdi+0x08]
cmp r12d, dword ptr [rdi+0x08]
jae G_M41263_IG39
jae G_M41263_IG52
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
mov eax, r12d
mov eax, r12d
shl rax, 4
shl rax, 4
cmp byte ptr [rdi+rax+0x18], 0
cmp byte ptr [rdi+rax+0x18], 0
jne G_M41263_IG04
jne G_M41263_IG04
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp r12d, dword ptr [rdi+0x08]
cmp r12d, dword ptr [rdi+0x08]
jae G_M41263_IG39
jae G_M41263_IG52
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
mov rdi, qword ptr [rdi+rax+0x10]
mov rdi, qword ptr [rdi+rax+0x10]
mov qword ptr [rbx+0x50], rdi
mov qword ptr [rbx+0x50], rdi
mov rcx, gword ptr [rbp-0x48]
mov rcx, gword ptr [rbp-0x48]
mov gword ptr [rbp-0x58], rcx
mov rsi, rcx
mov gword ptr [rbp-0x80], rsi
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp r12d, dword ptr [rdi+0x08]
cmp r12d, dword ptr [rdi+0x08]
jae G_M41263_IG39
jae G_M41263_IG52
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
movzx r12, byte ptr [rdi+rax+0x19]
movzx r12, byte ptr [rdi+rax+0x19]
mov edi, dword ptr [rcx+0x08]
mov eax, dword ptr [rsi+0x08]
mov edx, edi
mov dword ptr [rbp-0x6C], eax
mov edx, eax
sub edx, r12d
sub edx, r12d
cmp edi, r12d
cmp eax, r12d
jb G_M41263_IG33
jb G_M41263_IG46
movsxd rdi, r12d
movsxd rdi, r12d
lea rdi, bword ptr [rcx+2*rdi+0x0C]
lea rdi, bword ptr [rsi+2*rdi+0x0C]
xor esi, esi
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [rax]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [rcx]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
test eax, eax
test eax, eax
jge SHORT G_M41263_IG12
jge SHORT G_M41263_IG15
jmp SHORT G_M41263_IG16
;; size=170 bbWeight=2 PerfScore 101.50
G_M41263_IG15:
add eax, r12d
;; size=3 bbWeight=2 PerfScore 0.50
G_M41263_IG16:
test eax, eax
jle G_M41263_IG20
mov edx, eax
mov edx, eax
jmp SHORT G_M41263_IG13
;; size=166 bbWeight=2 PerfScore 99.50
G_M41263_IG12:
lea edx, [rax+r12]
;; size=4 bbWeight=2 PerfScore 1.00
G_M41263_IG13:
test edx, edx
jle SHORT G_M41263_IG14
sub edx, r12d
sub edx, r12d
mov rdi, gword ptr [rbp-0x58]
mov edi, r12d
mov esi, r12d
mov eax, edx
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this
add rdi, rax
call [rax]System.String:Substring(int,int):System.String:this
mov eax, dword ptr [rbp-0x6C]
jmp SHORT G_M41263_IG15
mov ecx, eax
;; size=28 bbWeight=2 PerfScore 16.00
cmp rdi, rcx
G_M41263_IG14:
ja G_M41263_IG23
mov rdi, gword ptr [rbp-0x58]
test edx, edx
je SHORT G_M41263_IG18
cmp eax, edx
je SHORT G_M41263_IG17
mov eax, edx
mov qword ptr [rbp-0x58], rax
mov edi, edx
call System.String:FastAllocateString(int):System.String
mov gword ptr [rbp-0x88], rax
mov edi, r12d
mov r12, gword ptr [rbp-0x80]
lea rsi, bword ptr [r12+2*rdi+0x0C]
mov r12, gword ptr [rbp-0x88]
cmp byte ptr [r12], r12b
lea rdi, bword ptr [r12+0x0C]
mov rdx, qword ptr [rbp-0x58]
add rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
mov rsi, r12
jmp SHORT G_M41263_IG19
;; size=115 bbWeight=2 PerfScore 49.00
G_M41263_IG17:
mov r12, gword ptr [rbp-0x80]
mov rsi, r12
jmp SHORT G_M41263_IG19
;; size=9 bbWeight=2 PerfScore 6.50
G_M41263_IG18:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=2 PerfScore 0.50
G_M41263_IG19:
jmp SHORT G_M41263_IG21
;; size=2 bbWeight=2 PerfScore 4.00
G_M41263_IG20:
mov rdi, gword ptr [rbp-0x80]
mov esi, r12d
mov esi, r12d
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this
call [rax]System.String:Substring(int):System.String:this
call [rax]System.String:Substring(int):System.String:this
;; size=19 bbWeight=2 PerfScore 9.00
mov rsi, rax
G_M41263_IG15:
;; size=22 bbWeight=2 PerfScore 9.50
G_M41263_IG21:
lea rdi, bword ptr [rbx+0x38]
lea rdi, bword ptr [rbx+0x38]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
jmp G_M41263_IG09
jmp G_M41263_IG12
;; size=17 bbWeight=2 PerfScore 7.50
;; size=14 bbWeight=2 PerfScore 7.00
G_M41263_IG16:
G_M41263_IG22:
mov rdi, gword ptr [rbp-0x90]
mov esi, r12d
mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this
call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this
int3
;; size=23 bbWeight=0.50 PerfScore 2.38
G_M41263_IG23:
mov rdi, gword ptr [rbp-0x80]
mov esi, r12d
mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this
call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this
int3
;; size=20 bbWeight=0.50 PerfScore 2.38
G_M41263_IG24:
mov rdi, gword ptr [rbp-0x30]
mov rdi, gword ptr [rbp-0x30]
cmp dword ptr [rdi+0x08], 0
cmp dword ptr [rdi+0x08], 0
jne G_M41263_IG29
jne G_M41263_IG40
xor r15d, r15d
xor r15d, r15d
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp dword ptr [rdi+0x08], 0
cmp dword ptr [rdi+0x08], 0
jle G_M41263_IG29
jle G_M41263_IG40
;; size=31 bbWeight=0.50 PerfScore 5.12
;; size=31 bbWeight=0.50 PerfScore 5.12
G_M41263_IG17:
G_M41263_IG25:
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp r15d, dword ptr [rdi+0x08]
cmp r15d, dword ptr [rdi+0x08]
jae G_M41263_IG39
jae G_M41263_IG52
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
mov r14, r15
mov r14, r15
shl r14, 4
shl r14, 4
cmp byte ptr [rdi+r14+0x18], 0
cmp byte ptr [rdi+r14+0x18], 0
je G_M41263_IG23
je G_M41263_IG31
;; size=37 bbWeight=4 PerfScore 43.00
;; size=37 bbWeight=4 PerfScore 43.00
G_M41263_IG18:
G_M41263_IG26:
mov r12, gword ptr [rbp-0x48]
mov r12, gword ptr [rbp-0x48]
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp r15d, dword ptr [rdi+0x08]
cmp r15d, dword ptr [rdi+0x08]
jae G_M41263_IG39
jae G_M41263_IG52
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
movzx r14, byte ptr [rdi+r14+0x19]
movzx r14, byte ptr [rdi+r14+0x19]
mov edi, dword ptr [r12+0x08]
mov edi, dword ptr [r12+0x08]
mov edx, edi
mov edx, edi
sub edx, r14d
sub edx, r14d
cmp edi, r14d
cmp edi, r14d
jb G_M41263_IG33
jb G_M41263_IG46
movsxd rdi, r14d
movsxd rdi, r14d
lea rdi, bword ptr [r12+2*rdi+0x0C]
lea rdi, bword ptr [r12+2*rdi+0x0C]
xor esi, esi
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [rax]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [rax]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
test eax, eax
test eax, eax
jge SHORT G_M41263_IG19
jge SHORT G_M41263_IG27
mov edx, eax
mov edx, eax
jmp SHORT G_M41263_IG20
jmp SHORT G_M41263_IG28
;; size=77 bbWeight=2 PerfScore 42.00
;; size=77 bbWeight=2 PerfScore 42.00
G_M41263_IG19:
G_M41263_IG27:
lea edx, [rax+r14]
lea edx, [rax+r14]
;; size=4 bbWeight=2 PerfScore 1.00
;; size=4 bbWeight=2 PerfScore 1.00
G_M41263_IG20:
G_M41263_IG28:
test edx, edx
test edx, edx
jle SHORT G_M41263_IG21
jle SHORT G_M41263_IG29
sub edx, r14d
sub edx, r14d
mov rdi, r12
mov rdi, r12
mov esi, r14d
mov esi, r14d
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this
call [rax]System.String:Substring(int,int):System.String:this
call [rax]System.String:Substring(int,int):System.String:this
jmp SHORT G_M41263_IG22
jmp SHORT G_M41263_IG30
;; size=27 bbWeight=2 PerfScore 14.50
;; size=27 bbWeight=2 PerfScore 14.50
G_M41263_IG21:
G_M41263_IG29:
mov rdi, r12
mov rdi, r12
mov esi, r14d
mov esi, r14d
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this
call [rax]System.String:Substring(int):System.String:this
call [rax]System.String:Substring(int):System.String:this
;; size=18 bbWeight=2 PerfScore 7.50
;; size=18 bbWeight=2 PerfScore 7.50
G_M41263_IG22:
G_M41263_IG30:
lea rdi, bword ptr [rbx+0x40]
lea rdi, bword ptr [rbx+0x40]
mov rsi, rax
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
jmp G_M41263_IG28
jmp G_M41263_IG39
;; size=17 bbWeight=2 PerfScore 7.50
;; size=17 bbWeight=2 PerfScore 7.50
G_M41263_IG23:
G_M41263_IG31:
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp r15d, dword ptr [rdi+0x08]
cmp r15d, dword ptr [rdi+0x08]
jae G_M41263_IG39
jae G_M41263_IG52
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
mov rdi, qword ptr [rdi+r14+0x10]
mov rdi, qword ptr [rdi+r14+0x10]
mov qword ptr [rbx+0x50], rdi
mov qword ptr [rbx+0x50], rdi
mov r12, gword ptr [rbp-0x48]
mov r12, gword ptr [rbp-0x48]
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
cmp r15d, dword ptr [rdi+0x08]
cmp r15d, dword ptr [rdi+0x08]
jae G_M41263_IG39
jae G_M41263_IG52
mov rdi, gword ptr [rbp-0x40]
mov rdi, gword ptr [rbp-0x40]
movzx r14, byte ptr [rdi+r14+0x19]
movzx r14, byte ptr [rdi+r14+0x19]
mov edi, dword ptr [r12+0x08]
mov eax, dword ptr [r12+0x08]
mov edx, edi
mov dword ptr [rbp-0x74], eax
mov edx, eax
sub edx, r14d
sub edx, r14d
cmp edi, r14d
cmp eax, r14d
jb G_M41263_IG33
jb G_M41263_IG46
movsxd rdi, r14d
movsxd rdi, r14d
lea rdi, bword ptr [r12+2*rdi+0x0C]
lea rdi, bword ptr [r12+2*rdi+0x0C]
xor esi, esi
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [rax]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
call [rcx]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int
test eax, eax
test eax, eax
jge SHORT G_M41263_IG24
jge SHORT G_M41263_IG32
mov edx, eax
jmp SHORT G_M41263_IG33
jmp SHORT G_M41263_IG25
;; size=105 bbWeight=2 PerfScore 61.50
;; size=104 bbWeight=2 PerfScore 60.00
G_M41263_IG24:
lea edx, [rax+r14]
;; size=4 bbWeight=2 PerfScore 1.00
G_M41263_IG25:
test edx, edx
jle SHORT G_M41263_IG26
sub edx, r14d
mov rdi, r12
mov esi, r14d
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this
call [rax]System.String:Substring(int,int):System.String:this
jmp SHORT G_M41263_IG27
;; size=27 bbWeight=2 PerfScore 14.50
G_M41263_IG26:
mov rdi, r12
mov esi, r14d
mov rax, 0xD1FFAB1E ; code for System.String:Substring(int):System.String:this
call [rax]System.String:Substring(int):System.String:this
;; size=18 bbWeight=2 PerfScore 7.50
G_M41263_IG27:
lea rdi, bword ptr [rbx+0x38]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
;; size=12 bbWeight=2 PerfScore 3.50
G_M41263_IG28:
inc r15d
mov rax, gword ptr [rbp-0x40]
cmp dword ptr [rax+0x08], r15d
jg G_M41263_IG17
;; size=17 bbWeight=4 PerfScore 21.00
G_M41263_IG29:
mov rsi, qword ptr [rbx+0x50]
mov rdi, rsi
mov rdx, 0xD1FFAB1E
mov rax, rdx
imul rdx:rax, rdi
mov rax, rdx
shr rax, 63
sar rdx, 26
add rax, rdx
imul rax, rax, 0xD1FFAB1E
sub rdi, rax
je G_M41263_IG30
mov rdx, 0xD1FFAB1E
mov rax, rdx
imul rdx:rax, rsi
mov rdi, rdx
shr rdi, 63
sar rdx, 33
add rdi, rdx
mov rdx, 0xD1FFAB1E
mov rax, rdx
imul rdx:rax, rdi
mov rax, rdx
shr rax, 63
sar rdx, 2
add rax, rdx
lea rax, [rax+2*rax]
shl rax, 3
sub rdi, rax
movsxd rax, edi
imul rdi, rax, 0xE10
mov rdx, 0xD1FFAB1E
mov rax, rdx
imul rdx:rax, rsi
mov rsi, rdx
shr rsi, 63
sar rdx, 26
add rsi, rdx
mov rdx, 0xD1FFAB1E
mov rax, rdx
imul rdx:rax, rsi
add rdx, rsi
mov rcx, rdx
shr rcx, 63
sar rdx, 5
add rdx, rcx
imul rdx, rdx, 60
sub rsi, rdx
movsxd rsi, esi
imul rsi, rsi, 60
add rsi, rdi
mov rdi, 0xD1FFAB1E
cmp rsi, rdi
jg SHORT G_M41263_IG32
mov rdi, 0xD1FFAB1E
cmp rsi, rdi
jl SHORT G_M41263_IG32
imul rsi, rsi, 0xD1FFAB1E
mov qword ptr [rbx+0x50], rsi
;; size=255 bbWeight=0.50 PerfScore 22.50
G_M41263_IG30:
test r13b, r13b
jne SHORT G_M41263_IG31
mov rsi, qword ptr [rbx+0x50]
lea rdi, bword ptr [rbx+0x28]
mov rdx, gword ptr [rbp-0x30]
mov rcx, gword ptr [rbp-0x38]
mov r8, gword ptr [rbp-0x40]
mov r9, gword ptr [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:TZif_GenerateAdjustmentRules(byref,System.TimeSpan,System.DateTime[],ubyte[],System.TimeZoneInfo+TZifType[],System.String)
call [rax]System.TimeZoneInfo:TZif_GenerateAdjustmentRules(byref,System.TimeSpan,System.DateTime[],ubyte[],System.TimeZoneInfo+TZifType[],System.String)
;; size=41 bbWeight=0.50 PerfScore 5.50
G_M41263_IG31:
mov rdi, gword ptr [rbx+0x08]
mov rsi, qword ptr [rbx+0x50]
mov rdx, gword ptr [rbx+0x28]
lea rcx, bword ptr [rbx+0x48]
mov rax, 0xD1FFAB1E ; code for System.TimeZoneInfo:ValidateTimeZoneInfo(System.String,System.TimeSpan,System.TimeZoneInfo+AdjustmentRule[],byref)
call [rax]System.TimeZoneInfo:ValidateTimeZoneInfo(System.String,System.TimeSpan,System.TimeZoneInfo+AdjustmentRule[],byref)
jmp SHORT G_M41263_IG36
;; size=30 bbWeight=0.50 PerfScore 5.88
G_M41263_IG32:
G_M41263_IG32:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_TimeSpanTooLong()
add eax, r14d
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_TimeSpanTooLong()
;; size=3 bbWeight=2 PerfScore 0.50
int3
;; size=13 bbWeight=0.50 PerfScore 1.75
G_M41263_IG33:
G_M41263_IG33:
mov edi, 8
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
int3
;; size=20 bbWeight=0.50 PerfScore 2.00
G_M41263_IG34:
xor edi, edi
mov qword ptr [rbx+0x50], rdi
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je SHORT G_M41263_IG38
;; size=21 bbWeight=0.50 PerfScore 2.75
G_M41263_IG35:
mov rdi, 0xD1FFAB1E ; data for System.Array+EmptyArray`1[System.TimeZoneInfo+AdjustmentRule]:Value
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [rbx+0x28]
call CORINFO_HELP_ASSIGN_REF
;; size=22 bbWeight=0.50 PerfScore 1.88
G_M41263_IG36:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M41263_IG37: