structs_magic

Created Diff never expires
6 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
118 lines
4 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
116 lines
```assembly
```assembly
; System.SpanHelpers.LastIndexOfValueType[[System.Byte, System.Private.CoreLib]](Byte ByRef, Byte, Int32)
; System.SpanHelpers.LastIndexOfValueType[[System.Byte, System.Private.CoreLib],[System.SpanHelpers+DefaultEqualityComparer`1[[System.Byte, System.Private.CoreLib]], System.Private.CoreLib]](Byte ByRef, Byte, Int32)
vzeroupper
vzeroupper
cmp r8d,10
cmp r8d,10
jge short M11_L02
jge short M11_L02
dec r8d
dec r8d
js near ptr M11_L09
js near ptr M11_L09
movzx r9d,dl
movzx r9d,dl
nop word ptr [rax+rax]
nop word ptr [rax+rax]
M11_L00:
M11_L00:
movsxd rax,r8d
movsxd rax,r8d
movzx eax,byte ptr [rcx+rax]
movzx eax,byte ptr [rcx+rax]
cmp eax,r9d
cmp eax,r9d
je short M11_L01
je short M11_L01
dec r8d
dec r8d
jns short M11_L00
jns short M11_L00
jmp near ptr M11_L09
jmp near ptr M11_L09
M11_L01:
M11_L01:
mov eax,r8d
mov eax,r8d
jmp near ptr M11_L08
jmp near ptr M11_L08
M11_L02:
M11_L02:
cmp r8d,20
cmp r8d,20
jle near ptr M11_L05
jl near ptr M11_L05
movzx r9d,dl
movzx r9d,dl
vmovd xmm0,r9d
vmovd xmm0,r9d
vpbroadcastb ymm0,xmm0
vpbroadcastb ymm0,xmm0
lea edx,[r8-20]
lea edx,[r8-20]
movsxd r9,edx
movsxd r9,edx
add r9,rcx
add r9,rcx
M11_L03:
M11_L03:
vpcmpeqb ymm1,ymm0,[r9]
vpcmpeqb ymm1,ymm0,[r9]
vptest ymm1,ymm1
vptest ymm1,ymm1
jne short M11_L04
jne short M11_L04
add r9,0FFFFFFFFFFFFFFE0
add r9,0FFFFFFFFFFFFFFE0
cmp r9,rcx
cmp r9,rcx
jae short M11_L03
jae short M11_L03
mov r9d,r8d
mov r9d,r8d
mov r8d,r9d
mov r8d,r9d
test r8b,1F
test r8b,1F
je near ptr M11_L09
je near ptr M11_L09
vpcmpeqb ymm1,ymm0,[rcx]
vpcmpeqb ymm1,ymm0,[rcx]
vptest ymm1,ymm1
vptest ymm1,ymm1
je near ptr M11_L09
je near ptr M11_L09
vpmovmskb ecx,ymm1
vpmovmskb ecx,ymm1
xor eax,eax
xor eax,eax
lzcnt eax,ecx
lzcnt eax,ecx
neg eax
neg eax
add eax,1F
add eax,1F
jmp near ptr M11_L08
jmp near ptr M11_L08
nop word ptr [rax+rax]
nop word ptr [rax+rax]
M11_L04:
M11_L04:
mov rax,r9
mov rax,r9
sub rax,rcx
sub rax,rcx
mov ecx,eax
mov ecx,eax
vpmovmskb eax,ymm1
vpmovmskb eax,ymm1
lzcnt eax,eax
lzcnt eax,eax
neg eax
neg eax
lea eax,[rcx+rax+1F]
lea eax,[rcx+rax+1F]
jmp short M11_L08
jmp short M11_L08
M11_L05:
M11_L05:
movzx r9d,dl
movzx r9d,dl
vmovd xmm0,r9d
vmovd xmm0,r9d
vpbroadcastb xmm0,xmm0
vpbroadcastb xmm0,xmm0
lea eax,[r8-10]
lea eax,[r8-10]
cdqe
cdqe
add rax,rcx
add rax,rcx
M11_L06:
M11_L06:
vpcmpeqb xmm1,xmm0,[rax]
vpcmpeqb xmm1,xmm0,[rax]
vptest xmm1,xmm1
vptest xmm1,xmm1
jne short M11_L07
jne short M11_L07
add rax,0FFFFFFFFFFFFFFF0
add rax,0FFFFFFFFFFFFFFF0
cmp rax,rcx
cmp rax,rcx
jae short M11_L06
jae short M11_L06
mov eax,r8d
mov eax,r8d
test al,0F
test al,0F
je short M11_L09
je short M11_L09
vpcmpeqb xmm1,xmm0,[rcx]
vpcmpeqb xmm1,xmm0,[rcx]
vptest xmm1,xmm1
vptest xmm1,xmm1
je short M11_L09
je short M11_L09
vpmovmskb ecx,xmm1
vpmovmskb ecx,xmm1
xor eax,eax
xor eax,eax
lzcnt eax,ecx
lzcnt eax,ecx
neg eax
neg eax
add eax,1F
add eax,1F
jmp short M11_L08
jmp short M11_L08
M11_L07:
M11_L07:
sub rax,rcx
sub rax,rcx
vpmovmskb edx,xmm1
vpmovmskb edx,xmm1
xor r9d,r9d
xor r9d,r9d
lzcnt r9d,edx
lzcnt r9d,edx
mov ecx,r9d
mov ecx,r9d
neg ecx
neg ecx
lea eax,[rax+rcx+1F]
lea eax,[rax+rcx+1F]
M11_L08:
M11_L08:
vzeroupper
vzeroupper
ret
ret
M11_L09:
M11_L09:
mov eax,0FFFFFFFF
mov eax,0FFFFFFFF
vzeroupper
vzeroupper
ret
ret
int 3
int 3
int 3
int 3
int 3
int 3
int 3
int 3
sbb [rax],eax
sbb [rax],eax
add [rax],al
add [rax],al
add [rax],al
add [rax],al
add [rax],al
add [rax],al
(bad)
push 0FFFFFFFFFA9896CC
cwde
cli
jg short M11_L10
jg short M11_L10
M11_L10:
M11_L10:
add [rbp+48],dl
add [rbp+48],dl
mov ebp,esp
mov ebp,esp
mov [rbp+10],rcx
mov [rbp+10],rcx
; Total bytes of code 344
; Total bytes of code 344
```
```