15658.mc
92 lines
; Assembly listing for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; Assembly listing for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; Emitting BLENDED_CODE for generic ARM64 - Windows
; Emitting BLENDED_CODE for generic ARM64 - Windows
; MinOpts code
; MinOpts code
; fp based frame
; fp based frame
; partially interruptible
; partially interruptible
G_M000_IG01:
G_M000_IG01:
stp fp, lr, [sp, #-0x50]!
stp fp, lr, [sp, #-0x60]!
mov fp, sp
mov fp, sp
str x0, [fp, #0x40] //
str x0, [fp, #0x50] //
str x1, [fp, #0x48] //
str x1, [fp, #0x58] //
str x2, [fp, #0x30] //
str x2, [fp, #0x40] //
str x3, [fp, #0x38] //
str x3, [fp, #0x48] //
G_M000_IG02:
G_M000_IG02:
add x0, fp, #80 //
str x0, [fp, #0x1C] //
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL #16
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
str x0, [fp, #0x14] //
ldr x0, [fp, #0x1C] //
ldr x1, [fp, #0x14] //
blr x1
str w0, [fp, #0x30] //
add x0, fp, #64 //
add x0, fp, #64 //
movz x1, #0xD1FFAB1E
str x0, [fp, #0x14] //
movk x1, #0xD1FFAB1E LSL #16
movz x0, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #32
movk x0, #0xD1FFAB1E LSL #16
ldr x1, [x1]
movk x0, #0xD1FFAB1E LSL #32
blr x1
ldr x0, [x0]
str w0, [fp, #0x20] //
str x0, [fp, #0x1C] //
add x0, fp, #48 //
ldr x0, [fp, #0x14] //
movz x1, #0xD1FFAB1E
ldr x1, [fp, #0x1C] //
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
blr x1
blr x1
ldr w1, [fp, #0x20] //
str w0, [fp, #0x28] //
ldr w0, [fp, #0x30] //
str w0, [fp, #0x24] //
ldr w0, [fp, #0x28] //
ldr w1, [fp, #0x24] //
cmp w0, w1
cmp w0, w1
beq G_M000_IG04
beq G_M000_IG04
mov w0, wzr
mov w0, wzr
G_M000_IG03:
G_M000_IG03:
ldp fp, lr, [sp], #0x50
ldp fp, lr, [sp], #0x60
ret lr
ret lr
G_M000_IG04:
G_M000_IG04:
add x0, fp, #64 //
add x0, fp, #80 //
movz x1, #0xD1FFAB1E
str x0, [fp, #0x1C] //
movk x1, #0xD1FFAB1E LSL #16
movz x0, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #32
movk x0, #0xD1FFAB1E LSL #16
ldr x1, [x1]
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
str x0, [fp, #0x14] //
ldr x0, [fp, #0x1C] //
ldr x1, [fp, #0x14] //
blr x1
blr x1
str w0, [fp, #0x2C] //
str w0, [fp, #0x3C] //
str wzr, [fp, #0x28] //
str wzr, [fp, #0x38] //
str wzr, [fp, #0x24] //
str wzr, [fp, #0x34] //
b G_M000_IG06
b G_M000_IG06
G_M000_IG05:
G_M000_IG05:
add x0, fp, #64 //
add x0, fp, #80 //
ldr w1, [fp, #0x24] //
str x0, [fp, #0x14] //
movz x2, #0xD1FFAB1E
ldr w1, [fp, #0x34] //
movk x2, #0xD1FFAB1E LSL #16
movz x0, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #32
movk x0, #0xD1FFAB1E LSL #16
ldr x2, [x2]
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
str x0, [fp, #0x1C] //
ldr x0, [fp, #0x14] //
ldr x2, [fp, #0x1C] //
blr x2
blr x2
ldrb w0, [x0]
ldrb w0, [x0]
str w0, [fp, #0x1C] //
str w0, [fp, #0x2C] //
add x0, fp, #48 //
add x0, fp, #64 //
ldr w1, [fp, #0x24] //
str x0, [fp, #0x1C] //
movz x2, #0xD1FFAB1E
ldr w1, [fp, #0x34] //
movk x2, #0xD1FFAB1E LSL #16
movz x0, #0xD1FFAB1E
movk x2, #0xD1FFAB1E LSL #32
movk x0, #0xD1FFAB1E LSL #16
ldr x2, [x2]
movk x0, #0xD1FFAB1E LSL #32
ldr x0, [x0]
str x0, [fp, #0x14] //
ldr x0, [fp, #0x1C] //
ldr x2, [fp, #0x14] //
blr x2
blr x2
ldrb w0, [x0]
ldrb w0, [x0]
ldr w1, [fp, #0x1C] //
str w0, [fp, #0x24] //
sub w0, w1, w0
ldr w0, [fp, #0x2C] //
ldr w1, [fp, #0x28] //
ldrb w1, [fp, #0x24] //
orr w0, w0, w1
sub w0, w0, w1
str w0, [fp, #0x24] //
ldr w0, [fp, #0x38] //
str w0, [fp, #0x28] //
str w0, [fp, #0x28] //
ldr w0, [fp, #0x24] //
ldr w0, [fp, #0x24] //
ldr w1, [fp, #0x28] //
orr w0, w0, w1
str w0, [fp, #0x38] //
ldr w0, [fp, #0x34] //
add w0, w0, #1
add w0, w0, #1
str w0, [fp, #0x24] //
str w0, [fp, #0x34] //
G_M000_IG06:
G_M000_IG06:
ldr w0, [fp, #0x24] //
ldr w0, [fp, #0x34] //
ldr w1, [fp, #0x2C] //
str w0, [fp, #0x28] //
ldr w0, [fp, #0x3C] //
str w0, [fp, #0x24] //
ldr w0, [fp, #0x28] //
ldr w1, [fp, #0x24] //
cmp w0, w1
cmp w0, w1
blt G_M000_IG05
blt G_M000_IG05
ldr w0, [fp, #0x28] //
ldr w0, [fp, #0x38] //
cmp w0, #0
cmp w0, #0
cset x0, eq
cset x0, eq
G_M000_IG07:
G_M000_IG07:
ldp fp, lr, [sp], #0x50
ldp fp, lr, [sp], #0x60
ret lr
ret lr
; Total bytes of code 276
; Total bytes of code 412