Untitled Diff

Created Diff never expires
69 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
195 lines
70 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
197 lines
; Method Program:IndexOfNullByte(byref):int
; Method Program:IndexOfNullByte(byref):int
G_M000_IG01: ;; offset=0000H
G_M000_IG01: ;; offset=0000H
4883EC28 sub rsp, 40
4883EC28 sub rsp, 40
C5F877 vzeroupper
C5F877 vzeroupper


G_M000_IG02: ;; offset=0007H
G_M000_IG02: ;; offset=0007H
33C0 xor eax, eax
33C0 xor eax, eax
488BD1 mov rdx, rcx
488BD1 mov rdx, rcx
83E20F and edx, 15
83E20F and edx, 15
F7DA neg edx
F7DA neg edx
83C210 add edx, 16
83C210 add edx, 16
83E20F and edx, 15
83E20F and edx, 15
4883FA08 cmp rdx, 8
4883FA08 cmp rdx, 8
7275 jb SHORT G_M000_IG06
0F827D000000 jb G_M000_IG06


G_M000_IG03: ;; offset=0021H
G_M000_IG03: ;; offset=0021H
EB0A jmp SHORT G_M000_IG05
EB12 jmp SHORT G_M000_IG05
0F1F4000 align [4 bytes for IG09]
0F1F40000F1F840000000000 align [12 bytes for IG09]


G_M000_IG04: ;; offset=0027H
G_M000_IG04: ;; offset=002FH
4883FA08 cmp rdx, 8
4883FA08 cmp rdx, 8
7265 jb SHORT G_M000_IG06
7269 jb SHORT G_M000_IG06


G_M000_IG05: ;; offset=002DH
G_M000_IG05: ;; offset=0035H
4883C2F8 add rdx, -8
4883C2F8 add rdx, -8
803C0100 cmp byte ptr [rcx+rax], 0
4C8D0401 lea r8, bword ptr [rcx+rax]
0F8476010000 je G_M000_IG19
41803800 cmp byte ptr [r8], 0
807C010100 cmp byte ptr [rcx+rax+01H], 0
0F847A010000 je G_M000_IG19
0F846D010000 je G_M000_IG20
4180780100 cmp byte ptr [r8+01H], 0
807C010200 cmp byte ptr [rcx+rax+02H], 0
0F8471010000 je G_M000_IG20
0F8466010000 je G_M000_IG21
4180780200 cmp byte ptr [r8+02H], 0
807C010300 cmp byte ptr [rcx+rax+03H], 0
0F846A010000 je G_M000_IG21
0F8460010000 je G_M000_IG22
4180780300 cmp byte ptr [r8+03H], 0
807C010400 cmp byte ptr [rcx+rax+04H], 0
0F8464010000 je G_M000_IG22
0F845A010000 je G_M000_IG23
4180780400 cmp byte ptr [r8+04H], 0
807C010500 cmp byte ptr [rcx+rax+05H], 0
0F845E010000 je G_M000_IG23
0F8454010000 je G_M000_IG24
4180780500 cmp byte ptr [r8+05H], 0
807C010600 cmp byte ptr [rcx+rax+06H], 0
0F8458010000 je G_M000_IG24
0F844E010000 je G_M000_IG25
4180780600 cmp byte ptr [r8+06H], 0
807C010700 cmp byte ptr [rcx+rax+07H], 0
0F8452010000 je G_M000_IG25
0F8448010000 je G_M000_IG26
4180780700 cmp byte ptr [r8+07H], 0
0F844C010000 je G_M000_IG26
4883C008 add rax, 8
4883C008 add rax, 8
4883FA08 cmp rdx, 8
4883FA08 cmp rdx, 8
739B jae SHORT G_M000_IG05
7397 jae SHORT G_M000_IG05


G_M000_IG06: ;; offset=0092H
G_M000_IG06: ;; offset=009EH
4883FA04 cmp rdx, 4
4883FA04 cmp rdx, 4
7233 jb SHORT G_M000_IG08
7237 jb SHORT G_M000_IG08


G_M000_IG07: ;; offset=0098H
G_M000_IG07: ;; offset=00A4H
4883C2FC add rdx, -4
4883C2FC add rdx, -4
803C0100 cmp byte ptr [rcx+rax], 0
4C8D0401 lea r8, bword ptr [rcx+rax]
41803800 cmp byte ptr [r8], 0
0F840B010000 je G_M000_IG19
0F840B010000 je G_M000_IG19
807C010100 cmp byte ptr [rcx+rax+01H], 0
4180780100 cmp byte ptr [r8+01H], 0
0F8402010000 je G_M000_IG20
0F8402010000 je G_M000_IG20
807C010200 cmp byte ptr [rcx+rax+02H], 0
4180780200 cmp byte ptr [r8+02H], 0
0F84FB000000 je G_M000_IG21
0F84FB000000 je G_M000_IG21
807C010300 cmp byte ptr [rcx+rax+03H], 0
4180780300 cmp byte ptr [r8+03H], 0
0F84F5000000 je G_M000_IG22
0F84F5000000 je G_M000_IG22
4883C004 add rax, 4
4883C004 add rax, 4


G_M000_IG08: ;; offset=00CBH
G_M000_IG08: ;; offset=00DBH
4885D2 test rdx, rdx
4885D2 test rdx, rdx
7415 je SHORT G_M000_IG10
7415 je SHORT G_M000_IG10


G_M000_IG09: ;; offset=00D0H
G_M000_IG09: ;; offset=00E0H
48FFCA dec rdx
48FFCA dec rdx
803C0100 cmp byte ptr [rcx+rax], 0
803C0100 cmp byte ptr [rcx+rax], 0
0F84D4000000 je G_M000_IG19
0F84D4000000 je G_M000_IG19
48FFC0 inc rax
48FFC0 inc rax
4885D2 test rdx, rdx
4885D2 test rdx, rdx
75EB jne SHORT G_M000_IG09
75EB jne SHORT G_M000_IG09


G_M000_IG10: ;; offset=00E5H
G_M000_IG10: ;; offset=00F5H
483DFFFFFF7F cmp rax, 0x7FFFFFFF
483DFFFFFF7F cmp rax, 0x7FFFFFFF
0F83F2000000 jae G_M000_IG29
0F83F2000000 jae G_M000_IG29
488BD1 mov rdx, rcx
488BD1 mov rdx, rcx
8BD2 mov edx, edx
8BD2 mov edx, edx
4803D0 add rdx, rax
4803D0 add rdx, rax
F6C21F test dl, 31
F6C21F test dl, 31
7430 je SHORT G_M000_IG13
7430 je SHORT G_M000_IG13


G_M000_IG11: ;; offset=00FEH
G_M000_IG11: ;; offset=010EH
C4E17857C0 vxorps xmm0, xmm0, xmm0
C4E17857C0 vxorps xmm0, xmm0, xmm0
C4E179740401 vpcmpeqb xmm0, xmm0, xmmword ptr [rcx+rax]
C4E179740401 vpcmpeqb xmm0, xmm0, xmmword ptr [rcx+rax]
C4E179D7D0 vpmovmskb edx, xmm0
C4E179D7D0 vpmovmskb edx, xmm0
85D2 test edx, edx
85D2 test edx, edx
7506 jne SHORT G_M000_IG12
7506 jne SHORT G_M000_IG12
4883C010 add rax, 16
4883C010 add rax, 16
EB16 jmp SHORT G_M000_IG13
EB16 jmp SHORT G_M000_IG13


G_M000_IG12: ;; offset=0118H
G_M000_IG12: ;; offset=0128H
33C9 xor ecx, ecx
33C9 xor ecx, ecx
F30FBCCA tzcnt ecx, edx
F30FBCCA tzcnt ecx, edx
8BD1 mov edx, ecx
8BD1 mov edx, ecx
03C2 add eax, edx
03C2 add eax, edx
E9AC000000 jmp G_M000_IG27
E9AC000000 jmp G_M000_IG27
0F1F8000000000 align [7 bytes for IG14]
0F1F8000000000 align [7 bytes for IG14]


G_M000_IG13: ;; offset=012EH
G_M000_IG13: ;; offset=013EH
8BD0 mov edx, eax
8BD0 mov edx, eax
F7DA neg edx
F7DA neg edx
81C2FFFFFF7F add edx, 0x7FFFFFFF
81C2FFFFFF7F add edx, 0x7FFFFFFF
83E2E0 and edx, -32
83E2E0 and edx, -32
483BD0 cmp rdx, rax
483BD0 cmp rdx, rax
761E jbe SHORT G_M000_IG15
761E jbe SHORT G_M000_IG15


G_M000_IG14: ;; offset=0140H
G_M000_IG14: ;; offset=0150H
C5FC57C0 vxorps ymm0, ymm0, ymm0
C5FC57C0 vxorps ymm0, ymm0, ymm0
C5FD740401 vpcmpeqb ymm0, ymm0, ymmword ptr[rcx+rax]
C5FD740401 vpcmpeqb ymm0, ymm0, ymmword ptr[rcx+rax]
C57DD7C0 vpmovmskb r8d, ymm0
C57DD7C0 vpmovmskb r8d, ymm0
4585C0 test r8d, r8d
4585C0 test r8d, r8d
7535 jne SHORT G_M000_IG17
7535 jne SHORT G_M000_IG17
4883C020 add rax, 32
4883C020 add rax, 32
483BD0 cmp rdx, rax
483BD0 cmp rdx, rax
77E5 ja SHORT G_M000_IG14
77E5 ja SHORT G_M000_IG14


G_M000_IG15: ;; offset=015BH
G_M000_IG15: ;; offset=016BH
8BD0 mov edx, eax
8BD0 mov edx, eax
F7DA neg edx
F7DA neg edx
81C2FFFFFF7F add edx, 0x7FFFFFFF
81C2FFFFFF7F add edx, 0x7FFFFFFF
83E2F0 and edx, -16
83E2F0 and edx, -16
483BD0 cmp rdx, rax
483BD0 cmp rdx, rax
7627 jbe SHORT G_M000_IG18
7627 jbe SHORT G_M000_IG18


G_M000_IG16: ;; offset=016DH
G_M000_IG16: ;; offset=017DH
C5F857C0 vxorps xmm0, xmm0, xmm0
C5F857C0 vxorps xmm0, xmm0, xmm0
C5F9740401 vpcmpeqb xmm0, xmm0, xmmword ptr [rcx+rax]
C5F9740401 vpcmpeqb xmm0, xmm0, xmmword ptr [rcx+rax]
C5F9D7D0 vpmovmskb edx, xmm0
C5F9D7D0 vpmovmskb edx, xmm0
85D2 test edx, edx
85D2 test edx, edx
7557 jne SHORT G_M000_IG28
7557 jne SHORT G_M000_IG28
4883C010 add rax, 16
4883C010 add rax, 16
EB0D jmp SHORT G_M000_IG18
EB0D jmp SHORT G_M000_IG18


G_M000_IG17: ;; offset=0184H
G_M000_IG17: ;; offset=0194H
33D2 xor edx, edx
33D2 xor edx, edx
F3410FBCD0 tzcnt edx, r8d
F3410FBCD0 tzcnt edx, r8d
8BCA mov ecx, edx
8BCA mov ecx, edx
03C1 add eax, ecx
03C1 add eax, ecx
EB3C jmp SHORT G_M000_IG27
EB3C jmp SHORT G_M000_IG27


G_M000_IG18: ;; offset=0191H
G_M000_IG18: ;; offset=01A1H
483DFFFFFF7F cmp rax, 0x7FFFFFFF
483DFFFFFF7F cmp rax, 0x7FFFFFFF
7344 jae SHORT G_M000_IG29
7344 jae SHORT G_M000_IG29
488BD0 mov rdx, rax
488BD0 mov rdx, rax
48F7DA neg rdx
48F7DA neg rdx
4881C2FFFFFF7F add rdx, 0x7FFFFFFF
4881C2FFFFFF7F add rdx, 0x7FFFFFFF
E97CFEFFFF jmp G_M000_IG04
E974FEFFFF jmp G_M000_IG04


G_M000_IG19: ;; offset=01ABH
G_M000_IG19: ;; offset=01BBH
EB20 jmp SHORT G_M000_IG27
EB20 jmp SHORT G_M000_IG27


G_M000_IG20: ;; offset=01ADH
G_M000_IG20: ;; offset=01BDH
FFC0 inc eax
FFC0 inc eax
EB1C jmp SHORT G_M000_IG27
EB1C jmp SHORT G_M000_IG27


G_M000_IG21: ;; offset=01B1H
G_M000_IG21: ;; offset=01C1H
83C002 add eax, 2
83C002 add eax, 2
EB17 jmp SHORT G_M000_IG27
EB17 jmp SHORT G_M000_IG27


G_M000_IG22: ;; offset=01B6H
G_M000_IG22: ;; offset=01C6H
83C003 add eax, 3
83C003 add eax, 3
EB12 jmp SHORT G_M000_IG27
EB12 jmp SHORT G_M000_IG27


G_M000_IG23: ;; offset=01BBH
G_M000_IG23: ;; offset=01CBH
83C004 add eax, 4
83C004 add eax, 4
EB0D jmp SHORT G_M000_IG27
EB0D jmp SHORT G_M000_IG27


G_M000_IG24: ;; offset=01C0H
G_M000_IG24: ;; offset=01D0H
83C005 add eax, 5
83C005 add eax, 5
EB08 jmp SHORT G_M000_IG27
EB08 jmp SHORT G_M000_IG27


G_M000_IG25: ;; offset=01C5H
G_M000_IG25: ;; offset=01D5H
83C006 add eax, 6
83C006 add eax, 6
EB03 jmp SHORT G_M000_IG27
EB03 jmp SHORT G_M000_IG27


G_M000_IG26: ;; offset=01CAH
G_M000_IG26: ;; offset=01DAH
83C007 add eax, 7
83C007 add eax, 7


G_M000_IG27: ;; offset=01CDH
G_M000_IG27: ;; offset=01DDH
C5F877 vzeroupper
C5F877 vzeroupper
4883C428 add rsp, 40
4883C428 add rsp, 40
C3 ret
C3 ret


G_M000_IG28: ;; offset=01D5H
G_M000_IG28: ;; offset=01E5H
F30FBCD2 tzcnt edx, edx
F30FBCD2 tzcnt edx, edx
03C2 add eax, edx
03C2 add eax, edx
EBF0 jmp SHORT G_M000_IG27
EBF0 jmp SHORT G_M000_IG27


G_M000_IG29: ;; offset=01DDH
G_M000_IG29: ;; offset=01EDH
FF15A5381300 call [Program:ThrowMustBeNullTerminatedString()]
FF1595381300 call [Program:ThrowMustBeNullTerminatedString()]
CC int3
CC int3
; Total bytes of code: 484
; Total bytes of code: 500