Diff
checker
文本
文本
图像
文档
Excel
文件夹
Legal
Enterprise
桌面版
定价
登录
下载 Diffchecker 桌面版
比较文本
查找两个文本文件之间的差异
工具
历史
实时编辑器
折叠未更改行
关闭换行
视图
拆分
统一
比对精度
智能
单词
字符
语法高亮
选择语法
忽略
文本转换
转到第一个差异
编辑输入
Diffchecker Desktop
运行Diffchecker最安全的方式。获取Diffchecker桌面应用:您的差异永远不会离开您的电脑!
获取桌面版
15658.mc
创建于
2年前
差异永不过期
清除
导出
分享
解释
58 删除
行
总计
删除
字符
总计
删除
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
92 行
全部复制
98 添加
行
总计
添加
字符
总计
添加
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
126 行
全部复制
; 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, #-0x
5
0]!
stp fp, lr, [sp, #-0x
6
0]!
mov fp, sp
mov fp, sp
复制
已复制
复制
已复制
str x0, [fp, #0x
4
0] //
str x0, [fp, #0x
5
0] //
str x1, [fp, #0x
4
8] //
str x1, [fp, #0x
5
8] //
str x2, [fp, #0x
3
0] //
str x2, [fp, #0x
4
0] //
str x3, [fp, #0x
3
8] //
str x3, [fp, #0x
4
8] //
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, #0x2
0
] //
str w0, [fp, #0x28] //
ldr w0, [fp, #0x30] //
str w0, [fp, #0x24] //
ldr w0, [fp, #0x28] //
ldr w1, [fp, #0x2
4
] //
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], #0x
5
0
ldp fp, lr, [sp], #0x
6
0
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, #0x
2
C] //
str w0, [fp, #0x
3
C] //
str wzr, [fp, #0x
2
8] //
str wzr, [fp, #0x
3
8] //
str wzr, [fp, #0x
2
4] //
str wzr, [fp, #0x
3
4] //
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, #0x
2
4] //
str x0, [fp, #0x14]
//
movz
x2
, #0xD1FFAB1E
ldr w1, [fp, #0x
3
4] //
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, #0x
1
C] //
str w0, [fp, #0x
2
C] //
add x0, fp, #
48
//
add x0, fp, #
64 //
ldr w1, [fp, #0x
2
4] //
str x0, [fp, #0x1C]
//
movz
x2
, #0xD1FFAB1E
ldr w1, [fp, #0x
3
4] //
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, #0x
1
C] //
str w0, [fp, #0x24] //
sub w0,
w1, w0
ldr
w0
, [fp, #0x
2
C] //
ldr
w1
, [fp, #0x2
8
] //
ldrb w1, [fp, #0x24] //
orr
w0,
w0, w1
sub w0,
w0, w1
str
w0
, [fp, #0x2
4
] //
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, #0x
2
4] //
str w0, [fp, #0x
3
4] //
G_M000_IG06:
G_M000_IG06:
复制
已复制
复制
已复制
ldr w0, [fp,
#0x24] //
ldr w0, [fp,
#0x34] //
ldr
w1
, [fp, #0x2
C
] //
str w0, [fp, #0x28] //
ldr w0, [fp, #0x3C] //
str w0, [fp,
#0x24] //
ldr
w0, [fp, #0x28] //
ldr w1
, [fp, #0x2
4
] //
cmp w0, w1
cmp w0, w1
blt G_M000_IG05
blt G_M000_IG05
复制
已复制
复制
已复制
ldr w0, [fp, #0x
2
8] //
ldr w0, [fp, #0x
3
8] //
cmp w0, #0
cmp w0, #0
cset x0, eq
cset x0, eq
G_M000_IG07:
G_M000_IG07:
复制
已复制
复制
已复制
ldp fp, lr, [sp], #0x
5
0
ldp fp, lr, [sp], #0x
6
0
ret lr
ret lr
复制
已复制
复制
已复制
; Total bytes of code
276
; Total bytes of code
412
已保存差异
原始文本
打开文件
; 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 ; MinOpts code ; fp based frame ; partially interruptible G_M000_IG01: stp fp, lr, [sp, #-0x50]! mov fp, sp str x0, [fp, #0x40] // str x1, [fp, #0x48] // str x2, [fp, #0x30] // str x3, [fp, #0x38] // G_M000_IG02: add x0, fp, #64 // movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 str w0, [fp, #0x20] // add x0, fp, #48 // movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 ldr w1, [fp, #0x20] // cmp w0, w1 beq G_M000_IG04 mov w0, wzr G_M000_IG03: ldp fp, lr, [sp], #0x50 ret lr G_M000_IG04: add x0, fp, #64 // movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 str w0, [fp, #0x2C] // str wzr, [fp, #0x28] // str wzr, [fp, #0x24] // b G_M000_IG06 G_M000_IG05: add x0, fp, #64 // ldr w1, [fp, #0x24] // movz x2, #0xD1FFAB1E movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ldrb w0, [x0] str w0, [fp, #0x1C] // add x0, fp, #48 // ldr w1, [fp, #0x24] // movz x2, #0xD1FFAB1E movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ldrb w0, [x0] ldr w1, [fp, #0x1C] // sub w0, w1, w0 ldr w1, [fp, #0x28] // orr w0, w0, w1 str w0, [fp, #0x28] // ldr w0, [fp, #0x24] // add w0, w0, #1 str w0, [fp, #0x24] // G_M000_IG06: ldr w0, [fp, #0x24] // ldr w1, [fp, #0x2C] // cmp w0, w1 blt G_M000_IG05 ldr w0, [fp, #0x28] // cmp w0, #0 cset x0, eq G_M000_IG07: ldp fp, lr, [sp], #0x50 ret lr ; Total bytes of code 276
更改后文本
打开文件
; 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 ; MinOpts code ; fp based frame ; partially interruptible G_M000_IG01: stp fp, lr, [sp, #-0x60]! mov fp, sp str x0, [fp, #0x50] // str x1, [fp, #0x58] // str x2, [fp, #0x40] // str x3, [fp, #0x48] // 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 // str x0, [fp, #0x14] // movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] str x0, [fp, #0x1C] // ldr x0, [fp, #0x14] // ldr x1, [fp, #0x1C] // blr x1 str w0, [fp, #0x28] // ldr w0, [fp, #0x30] // str w0, [fp, #0x24] // ldr w0, [fp, #0x28] // ldr w1, [fp, #0x24] // cmp w0, w1 beq G_M000_IG04 mov w0, wzr G_M000_IG03: ldp fp, lr, [sp], #0x60 ret lr G_M000_IG04: 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, #0x3C] // str wzr, [fp, #0x38] // str wzr, [fp, #0x34] // b G_M000_IG06 G_M000_IG05: add x0, fp, #80 // str x0, [fp, #0x14] // ldr w1, [fp, #0x34] // movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] str x0, [fp, #0x1C] // ldr x0, [fp, #0x14] // ldr x2, [fp, #0x1C] // blr x2 ldrb w0, [x0] str w0, [fp, #0x2C] // add x0, fp, #64 // str x0, [fp, #0x1C] // ldr w1, [fp, #0x34] // 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 x2, [fp, #0x14] // blr x2 ldrb w0, [x0] str w0, [fp, #0x24] // ldr w0, [fp, #0x2C] // ldrb w1, [fp, #0x24] // sub w0, w0, w1 str w0, [fp, #0x24] // ldr w0, [fp, #0x38] // str w0, [fp, #0x28] // ldr w0, [fp, #0x24] // ldr w1, [fp, #0x28] // orr w0, w0, w1 str w0, [fp, #0x38] // ldr w0, [fp, #0x34] // add w0, w0, #1 str w0, [fp, #0x34] // G_M000_IG06: ldr w0, [fp, #0x34] // str w0, [fp, #0x28] // ldr w0, [fp, #0x3C] // str w0, [fp, #0x24] // ldr w0, [fp, #0x28] // ldr w1, [fp, #0x24] // cmp w0, w1 blt G_M000_IG05 ldr w0, [fp, #0x38] // cmp w0, #0 cset x0, eq G_M000_IG07: ldp fp, lr, [sp], #0x60 ret lr ; Total bytes of code 412
查找差异