1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
iaddq $-9,%rdx
jl Find
Loop:
mrmovq (%rdi),%r10
mrmovq 8(%rdi),%r11
rmmovq %r10,(%rsi)
andq %r10, %r10
jle Npos1
iaddq $1,%rax
Npos1:
mrmovq 16(%rdi),%r10
rmmovq %r11,8(%rsi)
andq %r11, %r11
jle Npos2
iaddq $1,%rax
Npos2:
mrmovq 24(%rdi),%r11
rmmovq %r10,16(%rsi)
andq %r10, %r10
jle Npos3
iaddq $1,%rax
Npos3:
mrmovq 32(%rdi),%r10
rmmovq %r11,24(%rsi)
andq %r11, %r11
jle Npos4
iaddq $1,%rax
Npos4:
mrmovq 40(%rdi),%r11
rmmovq %r10,32(%rsi)
andq %r10, %r10
jle Npos5
iaddq $1,%rax
Npos5:
mrmovq 48(%rdi),%r10
rmmovq %r11,40(%rsi)
andq %r11, %r11
jle Npos6
iaddq $1,%rax
Npos6:
mrmovq 56(%rdi),%r11
rmmovq %r10,48(%rsi)
andq %r10, %r10
jle Npos7
iaddq $1,%rax
Npos7:
mrmovq 64(%rdi),%r10
rmmovq %r11,56(%rsi)
andq %r11, %r11
jle Npos8
iaddq $1,%rax
Npos8:
rmmovq %r10,64(%rsi)
andq %r10, %r10
jle Npos
iaddq $1,%rax
Npos:
iaddq $72,%rdi
iaddq $72,%rsi
iaddq $-9,%rdx
jge Loop
Find:
iaddq $6,%rdx
jl Left
jg Right
jmp Last3
Left:
iaddq $2,%rdx
je Last1
iaddq $-1,%rdx
je Last2
jmp Done
RL:
iaddq $1,%rdx
jl Last4
jmp Last5
Right:
iaddq $-3,%rdx
jl RL
jg RR
jmp Last6
RR:
iaddq $-1,%rdx
je Last7
Last8:
mrmovq 56(%rdi),%r10
andq %r10,%r10
rmmovq %r10,56(%rsi)
jl Last7
iaddq $1,%rax
Last7:
mrmovq 48(%rdi),%r10
andq %r10,%r10
rmmovq %r10,48(%rsi)
jl Last6
iaddq $1,%rax
Last6:
mrmovq 40(%rdi),%r10
andq %r10,%r10
rmmovq %r10,40(%rsi)
jl Last5
iaddq $1,%rax
Last5:
mrmovq 32(%rdi),%r10
andq %r10,%r10
rmmovq %r10,32(%rsi)
jl Last4
iaddq $1,%rax
Last4:
mrmovq 24(%rdi),%r10
andq %r10,%r10
rmmovq %r10,24(%rsi)
jl Last3
iaddq $1,%rax
Last3:
mrmovq 16(%rdi),%r10
andq %r10,%r10
rmmovq %r10,16(%rsi)
jl Last2
iaddq $1,%rax
Last2:
mrmovq 8(%rdi),%r10
andq %r10,%r10
rmmovq %r10,8(%rsi)
jl Last1
iaddq $1,%rax
Last1:
mrmovq (%rdi),%r10
andq %r10,%r10
rmmovq %r10,(%rsi)
jl Done
iaddq $1,%rax
|