Untitled diff

创建于 差异永不过期
153 删除
138 行
123 添加
109 行
; Method Program:GetKey(System.ReadOnlySpan`1[ubyte]):ulong (FullOpts)
; Method Program:GetKey(System.ReadOnlySpan`1[ubyte]):ulong (FullOpts)
G_M21528_IG01: ;; offset=0x0000
G_M21528_IG01: ;; offset=0x0000
push rsi
push rbx
sub rsp, 40
sub rsp, 40
;; size=6 bbWeight=1 PerfScore 2.25
;; size=4 bbWeight=1 PerfScore 0.25


G_M21528_IG02: ;; offset=0x0006
G_M21528_IG02: ;; offset=0x0004
mov rbx, bword ptr [rcx]
mov rax, bword ptr [rcx]
mov esi, dword ptr [rcx+0x08]
mov ecx, dword ptr [rcx+0x08]
movzx rax, sil
movzx rdx, cl
shl rax, 56
shl rdx, 56
cmp esi, 7
cmp ecx, 7
ja G_M21528_IG12
ja G_M21528_IG11
;; size=23 bbWeight=1 PerfScore 6.00
;; size=22 bbWeight=1 PerfScore 6.00


G_M21528_IG03: ;; offset=0x001D
G_M21528_IG03: ;; offset=0x001A
mov ecx, esi
mov r8d, ecx
lea rdx, [reloc @RWD00]
lea r10, [reloc @RWD00]
mov edx, dword ptr [rdx+4*rcx]
mov r10d, dword ptr [r10+4*r8]
lea r8, G_M21528_IG02
lea r9, G_M21528_IG02
add rdx, r8
add r10, r9
jmp rdx
jmp r10
;; size=24 bbWeight=0.89 PerfScore 5.33
;; size=27 bbWeight=0.89 PerfScore 5.33


G_M21528_IG04: ;; offset=0x0035
G_M21528_IG04: ;; offset=0x0035
cmp esi, 4
mov r8d, dword ptr [rax]
jl G_M21528_IG14
lea r10, bword ptr [rax+0x04]
mov ecx, dword ptr [rbx]
or rdx, r8
cmp esi, 6
movzx r8, word ptr [r10]
jl SHORT G_M21528_IG07
shl r8, 32
lea rdx, bword ptr [rbx+0x04]
or rdx, r8
or rax, rcx
;; size=21 bbWeight=0.50 PerfScore 2.75
movzx rcx, word ptr [rdx]
shl rcx, 32
or rax, rcx
;; size=33 bbWeight=0.50 PerfScore 4.00


G_M21528_IG05: ;; offset=0x0056
G_M21528_IG05: ;; offset=0x004A
lea ecx, [rsi-0x01]
lea r8d, [rcx-0x01]
cmp ecx, esi
cmp r8d, ecx
jae G_M21528_IG15
jae SHORT G_M21528_IG14
mov edx, ecx
mov ecx, r8d
movzx rdx, byte ptr [rbx+rdx]
movzx rax, byte ptr [rax+rcx]
shl ecx, 3
shl r8d, 3
shlx rcx, rdx, rcx
shlx rax, rax, r8
or rcx, rax
or rax, rdx
mov rax, rcx
mov rdx, rax
jmp SHORT G_M21528_IG13
jmp SHORT G_M21528_IG12
;; size=33 bbWeight=0.50 PerfScore 3.75
;; size=33 bbWeight=0.50 PerfScore 3.75


G_M21528_IG06: ;; offset=0x0077
G_M21528_IG06: ;; offset=0x006B
cmp esi, 4
mov ecx, dword ptr [rax]
jl SHORT G_M21528_IG14
add rax, 4
mov ecx, dword ptr [rbx]
or rcx, rdx
cmp esi, 6
movzx rdx, word ptr [rax]
jl SHORT G_M21528_IG07
shl rdx, 32
add rbx, 4
or rdx, rcx
or rcx, rax
jmp SHORT G_M21528_IG12
movzx rax, word ptr [rbx]
;; size=21 bbWeight=0.50 PerfScore 3.62
shl rax, 32
or rax, rcx
jmp SHORT G_M21528_IG13
;; size=31 bbWeight=0.50 PerfScore 4.88

G_M21528_IG07: ;; offset=0x0096
call [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
int3
;; size=7 bbWeight=0.50 PerfScore 1.62


G_M21528_IG08: ;; offset=0x009D
G_M21528_IG07: ;; offset=0x0080
cmp esi, 4
mov r8d, dword ptr [rax]
jl SHORT G_M21528_IG14
or rdx, r8
mov ecx, dword ptr [rbx]
or rax, rcx
jmp SHORT G_M21528_IG05
jmp SHORT G_M21528_IG05
;; size=12 bbWeight=0.50 PerfScore 2.75
;; size=8 bbWeight=0.50 PerfScore 2.12


G_M21528_IG09: ;; offset=0x00A9
G_M21528_IG08: ;; offset=0x0088
cmp esi, 4
mov eax, dword ptr [rax]
jl SHORT G_M21528_IG14
or rdx, rax
mov ecx, dword ptr [rbx]
jmp SHORT G_M21528_IG12
or rax, rcx
;; size=7 bbWeight=0.50 PerfScore 2.12
jmp SHORT G_M21528_IG13
;; size=12 bbWeight=0.50 PerfScore 2.75


G_M21528_IG10: ;; offset=0x00B5
G_M21528_IG09: ;; offset=0x008F
cmp esi, 2
movzx r8, word ptr [rax]
jl SHORT G_M21528_IG14
or rdx, r8
movzx rcx, word ptr [rbx]
or rax, rcx
jmp SHORT G_M21528_IG05
jmp SHORT G_M21528_IG05
;; size=13 bbWeight=0.50 PerfScore 2.75
;; size=9 bbWeight=0.50 PerfScore 2.12


G_M21528_IG11: ;; offset=0x00C2
G_M21528_IG10: ;; offset=0x0098
cmp esi, 2
movzx rcx, word ptr [rax]
jl SHORT G_M21528_IG14
or rdx, rcx
movzx rcx, word ptr [rbx]
jmp SHORT G_M21528_IG12
or rax, rcx
;; size=8 bbWeight=0.50 PerfScore 2.12
jmp SHORT G_M21528_IG13
;; size=13 bbWeight=0.50 PerfScore 2.75


G_M21528_IG12: ;; offset=0x00CF
G_M21528_IG11: ;; offset=0x00A0
cmp esi, 8
jl SHORT G_M21528_IG14
mov rcx, 0xFFFFFFFFFFFFFF
mov rcx, 0xFFFFFFFFFFFFFF
and rcx, qword ptr [rbx]
and rcx, qword ptr [rax]
or rax, rcx
or rdx, rcx
;; size=21 bbWeight=0.50 PerfScore 2.38
;; size=16 bbWeight=0.50 PerfScore 1.75


G_M21528_IG13: ;; offset=0x00E4
G_M21528_IG12: ;; offset=0x00B0
mov rax, rdx
;; size=3 bbWeight=1 PerfScore 0.25

G_M21528_IG13: ;; offset=0x00B3
add rsp, 40
add rsp, 40
pop rbx
pop rsi
ret
ret
;; size=7 bbWeight=1 PerfScore 2.25
;; size=5 bbWeight=1 PerfScore 1.25

G_M21528_IG14: ;; offset=0x00EB
mov ecx, 40
call [System.ThrowHelper:ThrowArgumentOutOfRangeException(int)]
int3
;; size=12 bbWeight=0.50 PerfScore 1.75


G_M21528_IG15: ;; offset=0x00F7
G_M21528_IG14: ;; offset=0x00B8
call CORINFO_HELP_RNGCHKFAIL
call CORINFO_HELP_RNGCHKFAIL
int3
int3
;; size=6 bbWeight=0 PerfScore 0.00
;; size=6 bbWeight=0 PerfScore 0.00
RWD00 dd 000000DEh ; case G_M21528_IG13
RWD00 dd 000000ACh ; case G_M21528_IG12
dd 00000050h ; case G_M21528_IG05
dd 00000046h ; case G_M21528_IG05
dd 000000BCh ; case G_M21528_IG11
dd 00000094h ; case G_M21528_IG10
dd 000000AFh ; case G_M21528_IG10
dd 0000008Bh ; case G_M21528_IG09
dd 000000A3h ; case G_M21528_IG09
dd 00000084h ; case G_M21528_IG08
dd 00000097h ; case G_M21528_IG08
dd 0000007Ch ; case G_M21528_IG07
dd 00000071h ; case G_M21528_IG06
dd 00000067h ; case G_M21528_IG06
dd 0000002Fh ; case G_M21528_IG04
dd 00000031h ; case G_M21528_IG04
; Total bytes of code: 253
; Total bytes of code: 190