15658.mc

Created Diff never expires
54 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
92 lines
94 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
126 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