OLD | NEW |
1 OPTION» DOTNAME | 1 default»rel |
2 .text$» SEGMENT ALIGN(256) 'CODE' | 2 %define XMMWORD |
3 EXTERN» OPENSSL_ia32cap_P:NEAR | 3 %define YMMWORD |
| 4 %define ZMMWORD |
| 5 section».text code align=64 |
4 | 6 |
5 PUBLIC» gcm_gmult_4bit | 7 EXTERN» OPENSSL_ia32cap_P |
| 8 |
| 9 global» gcm_gmult_4bit |
6 | 10 |
7 ALIGN 16 | 11 ALIGN 16 |
8 gcm_gmult_4bit» PROC PUBLIC | 12 gcm_gmult_4bit: |
9 » mov» QWORD PTR[8+rsp],rdi» ;WIN64 prologue | 13 » mov» QWORD[8+rsp],rdi» ;WIN64 prologue |
10 » mov» QWORD PTR[16+rsp],rsi | 14 » mov» QWORD[16+rsp],rsi |
11 mov rax,rsp | 15 mov rax,rsp |
12 $L$SEH_begin_gcm_gmult_4bit:: | 16 $L$SEH_begin_gcm_gmult_4bit: |
13 mov rdi,rcx | 17 mov rdi,rcx |
14 mov rsi,rdx | 18 mov rsi,rdx |
15 | 19 |
16 | 20 |
17 push rbx | 21 push rbx |
18 push rbp | 22 push rbp |
19 push r12 | 23 push r12 |
20 $L$gmult_prologue:: | 24 $L$gmult_prologue: |
21 | 25 |
22 » movzx» r8,BYTE PTR[15+rdi] | 26 » movzx» r8,BYTE[15+rdi] |
23 » lea» r11,QWORD PTR[$L$rem_4bit] | 27 » lea» r11,[$L$rem_4bit] |
24 xor rax,rax | 28 xor rax,rax |
25 xor rbx,rbx | 29 xor rbx,rbx |
26 mov al,r8b | 30 mov al,r8b |
27 mov bl,r8b | 31 mov bl,r8b |
28 shl al,4 | 32 shl al,4 |
29 mov rcx,14 | 33 mov rcx,14 |
30 » mov» r8,QWORD PTR[8+rax*1+rsi] | 34 » mov» r8,QWORD[8+rax*1+rsi] |
31 » mov» r9,QWORD PTR[rax*1+rsi] | 35 » mov» r9,QWORD[rax*1+rsi] |
32 » and» bl,0f0h | 36 » and» bl,0xf0 |
33 mov rdx,r8 | 37 mov rdx,r8 |
34 » jmp» $L$oop1 | 38 » jmp» NEAR $L$oop1 |
35 | 39 |
36 ALIGN 16 | 40 ALIGN 16 |
37 $L$oop1:: | 41 $L$oop1: |
38 shr r8,4 | 42 shr r8,4 |
39 » and» rdx,0fh | 43 » and» rdx,0xf |
40 mov r10,r9 | 44 mov r10,r9 |
41 » mov» al,BYTE PTR[rcx*1+rdi] | 45 » mov» al,BYTE[rcx*1+rdi] |
42 shr r9,4 | 46 shr r9,4 |
43 » xor» r8,QWORD PTR[8+rbx*1+rsi] | 47 » xor» r8,QWORD[8+rbx*1+rsi] |
44 shl r10,60 | 48 shl r10,60 |
45 » xor» r9,QWORD PTR[rbx*1+rsi] | 49 » xor» r9,QWORD[rbx*1+rsi] |
46 mov bl,al | 50 mov bl,al |
47 » xor» r9,QWORD PTR[rdx*8+r11] | 51 » xor» r9,QWORD[rdx*8+r11] |
48 mov rdx,r8 | 52 mov rdx,r8 |
49 shl al,4 | 53 shl al,4 |
50 xor r8,r10 | 54 xor r8,r10 |
51 dec rcx | 55 dec rcx |
52 » js» $L$break1 | 56 » js» NEAR $L$break1 |
53 | 57 |
54 shr r8,4 | 58 shr r8,4 |
55 » and» rdx,0fh | 59 » and» rdx,0xf |
56 mov r10,r9 | 60 mov r10,r9 |
57 shr r9,4 | 61 shr r9,4 |
58 » xor» r8,QWORD PTR[8+rax*1+rsi] | 62 » xor» r8,QWORD[8+rax*1+rsi] |
59 shl r10,60 | 63 shl r10,60 |
60 » xor» r9,QWORD PTR[rax*1+rsi] | 64 » xor» r9,QWORD[rax*1+rsi] |
61 » and» bl,0f0h | 65 » and» bl,0xf0 |
62 » xor» r9,QWORD PTR[rdx*8+r11] | 66 » xor» r9,QWORD[rdx*8+r11] |
63 mov rdx,r8 | 67 mov rdx,r8 |
64 xor r8,r10 | 68 xor r8,r10 |
65 » jmp» $L$oop1 | 69 » jmp» NEAR $L$oop1 |
66 | 70 |
67 ALIGN 16 | 71 ALIGN 16 |
68 $L$break1:: | 72 $L$break1: |
69 shr r8,4 | 73 shr r8,4 |
70 » and» rdx,0fh | 74 » and» rdx,0xf |
71 mov r10,r9 | 75 mov r10,r9 |
72 shr r9,4 | 76 shr r9,4 |
73 » xor» r8,QWORD PTR[8+rax*1+rsi] | 77 » xor» r8,QWORD[8+rax*1+rsi] |
74 shl r10,60 | 78 shl r10,60 |
75 » xor» r9,QWORD PTR[rax*1+rsi] | 79 » xor» r9,QWORD[rax*1+rsi] |
76 » and» bl,0f0h | 80 » and» bl,0xf0 |
77 » xor» r9,QWORD PTR[rdx*8+r11] | 81 » xor» r9,QWORD[rdx*8+r11] |
78 mov rdx,r8 | 82 mov rdx,r8 |
79 xor r8,r10 | 83 xor r8,r10 |
80 | 84 |
81 shr r8,4 | 85 shr r8,4 |
82 » and» rdx,0fh | 86 » and» rdx,0xf |
83 mov r10,r9 | 87 mov r10,r9 |
84 shr r9,4 | 88 shr r9,4 |
85 » xor» r8,QWORD PTR[8+rbx*1+rsi] | 89 » xor» r8,QWORD[8+rbx*1+rsi] |
86 shl r10,60 | 90 shl r10,60 |
87 » xor» r9,QWORD PTR[rbx*1+rsi] | 91 » xor» r9,QWORD[rbx*1+rsi] |
88 xor r8,r10 | 92 xor r8,r10 |
89 » xor» r9,QWORD PTR[rdx*8+r11] | 93 » xor» r9,QWORD[rdx*8+r11] |
90 | 94 |
91 bswap r8 | 95 bswap r8 |
92 bswap r9 | 96 bswap r9 |
93 » mov» QWORD PTR[8+rdi],r8 | 97 » mov» QWORD[8+rdi],r8 |
94 » mov» QWORD PTR[rdi],r9 | 98 » mov» QWORD[rdi],r9 |
95 | 99 |
96 » mov» rbx,QWORD PTR[16+rsp] | 100 » mov» rbx,QWORD[16+rsp] |
97 » lea» rsp,QWORD PTR[24+rsp] | 101 » lea» rsp,[24+rsp] |
98 $L$gmult_epilogue:: | 102 $L$gmult_epilogue: |
99 » mov» rdi,QWORD PTR[8+rsp]» ;WIN64 epilogue | 103 » mov» rdi,QWORD[8+rsp]» ;WIN64 epilogue |
100 » mov» rsi,QWORD PTR[16+rsp] | 104 » mov» rsi,QWORD[16+rsp] |
101 DB 0F3h,0C3h ;repret | 105 DB 0F3h,0C3h ;repret |
102 $L$SEH_end_gcm_gmult_4bit:: | 106 $L$SEH_end_gcm_gmult_4bit: |
103 gcm_gmult_4bit» ENDP | 107 global» gcm_ghash_4bit |
104 PUBLIC» gcm_ghash_4bit | |
105 | 108 |
106 ALIGN 16 | 109 ALIGN 16 |
107 gcm_ghash_4bit» PROC PUBLIC | 110 gcm_ghash_4bit: |
108 » mov» QWORD PTR[8+rsp],rdi» ;WIN64 prologue | 111 » mov» QWORD[8+rsp],rdi» ;WIN64 prologue |
109 » mov» QWORD PTR[16+rsp],rsi | 112 » mov» QWORD[16+rsp],rsi |
110 mov rax,rsp | 113 mov rax,rsp |
111 $L$SEH_begin_gcm_ghash_4bit:: | 114 $L$SEH_begin_gcm_ghash_4bit: |
112 mov rdi,rcx | 115 mov rdi,rcx |
113 mov rsi,rdx | 116 mov rsi,rdx |
114 mov rdx,r8 | 117 mov rdx,r8 |
115 mov rcx,r9 | 118 mov rcx,r9 |
116 | 119 |
117 | 120 |
118 push rbx | 121 push rbx |
119 push rbp | 122 push rbp |
120 push r12 | 123 push r12 |
121 push r13 | 124 push r13 |
122 push r14 | 125 push r14 |
123 push r15 | 126 push r15 |
124 sub rsp,280 | 127 sub rsp,280 |
125 $L$ghash_prologue:: | 128 $L$ghash_prologue: |
126 mov r14,rdx | 129 mov r14,rdx |
127 mov r15,rcx | 130 mov r15,rcx |
128 sub rsi,-128 | 131 sub rsi,-128 |
129 » lea» rbp,QWORD PTR[((16+128))+rsp] | 132 » lea» rbp,[((16+128))+rsp] |
130 xor edx,edx | 133 xor edx,edx |
131 » mov» r8,QWORD PTR[((0+0-128))+rsi] | 134 » mov» r8,QWORD[((0+0-128))+rsi] |
132 » mov» rax,QWORD PTR[((0+8-128))+rsi] | 135 » mov» rax,QWORD[((0+8-128))+rsi] |
133 » mov» dl,al | 136 » mov» dl,al |
134 » shr» rax,4 | 137 » shr» rax,4 |
135 » mov» r10,r8 | 138 » mov» r10,r8 |
136 » shr» r8,4 | 139 » shr» r8,4 |
137 » mov» r9,QWORD PTR[((16+0-128))+rsi] | 140 » mov» r9,QWORD[((16+0-128))+rsi] |
138 » shl» dl,4 | 141 » shl» dl,4 |
139 » mov» rbx,QWORD PTR[((16+8-128))+rsi] | 142 » mov» rbx,QWORD[((16+8-128))+rsi] |
140 » shl» r10,60 | 143 » shl» r10,60 |
141 » mov» BYTE PTR[rsp],dl | 144 » mov» BYTE[rsp],dl |
142 » or» rax,r10 | 145 » or» rax,r10 |
143 » mov» dl,bl | 146 » mov» dl,bl |
144 » shr» rbx,4 | 147 » shr» rbx,4 |
145 » mov» r10,r9 | 148 » mov» r10,r9 |
146 » shr» r9,4 | 149 » shr» r9,4 |
147 » mov» QWORD PTR[rbp],r8 | 150 » mov» QWORD[rbp],r8 |
148 » mov» r8,QWORD PTR[((32+0-128))+rsi] | 151 » mov» r8,QWORD[((32+0-128))+rsi] |
149 » shl» dl,4 | 152 » shl» dl,4 |
150 » mov» QWORD PTR[((0-128))+rbp],rax | 153 » mov» QWORD[((0-128))+rbp],rax |
151 » mov» rax,QWORD PTR[((32+8-128))+rsi] | 154 » mov» rax,QWORD[((32+8-128))+rsi] |
152 » shl» r10,60 | 155 » shl» r10,60 |
153 » mov» BYTE PTR[1+rsp],dl | 156 » mov» BYTE[1+rsp],dl |
154 » or» rbx,r10 | 157 » or» rbx,r10 |
155 » mov» dl,al | 158 » mov» dl,al |
156 » shr» rax,4 | 159 » shr» rax,4 |
157 » mov» r10,r8 | 160 » mov» r10,r8 |
158 » shr» r8,4 | 161 » shr» r8,4 |
159 » mov» QWORD PTR[8+rbp],r9 | 162 » mov» QWORD[8+rbp],r9 |
160 » mov» r9,QWORD PTR[((48+0-128))+rsi] | 163 » mov» r9,QWORD[((48+0-128))+rsi] |
161 » shl» dl,4 | 164 » shl» dl,4 |
162 » mov» QWORD PTR[((8-128))+rbp],rbx | 165 » mov» QWORD[((8-128))+rbp],rbx |
163 » mov» rbx,QWORD PTR[((48+8-128))+rsi] | 166 » mov» rbx,QWORD[((48+8-128))+rsi] |
164 » shl» r10,60 | 167 » shl» r10,60 |
165 » mov» BYTE PTR[2+rsp],dl | 168 » mov» BYTE[2+rsp],dl |
166 » or» rax,r10 | 169 » or» rax,r10 |
167 » mov» dl,bl | 170 » mov» dl,bl |
168 » shr» rbx,4 | 171 » shr» rbx,4 |
169 » mov» r10,r9 | 172 » mov» r10,r9 |
170 » shr» r9,4 | 173 » shr» r9,4 |
171 » mov» QWORD PTR[16+rbp],r8 | 174 » mov» QWORD[16+rbp],r8 |
172 » mov» r8,QWORD PTR[((64+0-128))+rsi] | 175 » mov» r8,QWORD[((64+0-128))+rsi] |
173 » shl» dl,4 | 176 » shl» dl,4 |
174 » mov» QWORD PTR[((16-128))+rbp],rax | 177 » mov» QWORD[((16-128))+rbp],rax |
175 » mov» rax,QWORD PTR[((64+8-128))+rsi] | 178 » mov» rax,QWORD[((64+8-128))+rsi] |
176 » shl» r10,60 | 179 » shl» r10,60 |
177 » mov» BYTE PTR[3+rsp],dl | 180 » mov» BYTE[3+rsp],dl |
178 » or» rbx,r10 | 181 » or» rbx,r10 |
179 » mov» dl,al | 182 » mov» dl,al |
180 » shr» rax,4 | 183 » shr» rax,4 |
181 » mov» r10,r8 | 184 » mov» r10,r8 |
182 » shr» r8,4 | 185 » shr» r8,4 |
183 » mov» QWORD PTR[24+rbp],r9 | 186 » mov» QWORD[24+rbp],r9 |
184 » mov» r9,QWORD PTR[((80+0-128))+rsi] | 187 » mov» r9,QWORD[((80+0-128))+rsi] |
185 » shl» dl,4 | 188 » shl» dl,4 |
186 » mov» QWORD PTR[((24-128))+rbp],rbx | 189 » mov» QWORD[((24-128))+rbp],rbx |
187 » mov» rbx,QWORD PTR[((80+8-128))+rsi] | 190 » mov» rbx,QWORD[((80+8-128))+rsi] |
188 » shl» r10,60 | 191 » shl» r10,60 |
189 » mov» BYTE PTR[4+rsp],dl | 192 » mov» BYTE[4+rsp],dl |
190 » or» rax,r10 | 193 » or» rax,r10 |
191 » mov» dl,bl | 194 » mov» dl,bl |
192 » shr» rbx,4 | 195 » shr» rbx,4 |
193 » mov» r10,r9 | 196 » mov» r10,r9 |
194 » shr» r9,4 | 197 » shr» r9,4 |
195 » mov» QWORD PTR[32+rbp],r8 | 198 » mov» QWORD[32+rbp],r8 |
196 » mov» r8,QWORD PTR[((96+0-128))+rsi] | 199 » mov» r8,QWORD[((96+0-128))+rsi] |
197 » shl» dl,4 | 200 » shl» dl,4 |
198 » mov» QWORD PTR[((32-128))+rbp],rax | 201 » mov» QWORD[((32-128))+rbp],rax |
199 » mov» rax,QWORD PTR[((96+8-128))+rsi] | 202 » mov» rax,QWORD[((96+8-128))+rsi] |
200 » shl» r10,60 | 203 » shl» r10,60 |
201 » mov» BYTE PTR[5+rsp],dl | 204 » mov» BYTE[5+rsp],dl |
202 » or» rbx,r10 | 205 » or» rbx,r10 |
203 » mov» dl,al | 206 » mov» dl,al |
204 » shr» rax,4 | 207 » shr» rax,4 |
205 » mov» r10,r8 | 208 » mov» r10,r8 |
206 » shr» r8,4 | 209 » shr» r8,4 |
207 » mov» QWORD PTR[40+rbp],r9 | 210 » mov» QWORD[40+rbp],r9 |
208 » mov» r9,QWORD PTR[((112+0-128))+rsi] | 211 » mov» r9,QWORD[((112+0-128))+rsi] |
209 » shl» dl,4 | 212 » shl» dl,4 |
210 » mov» QWORD PTR[((40-128))+rbp],rbx | 213 » mov» QWORD[((40-128))+rbp],rbx |
211 » mov» rbx,QWORD PTR[((112+8-128))+rsi] | 214 » mov» rbx,QWORD[((112+8-128))+rsi] |
212 » shl» r10,60 | 215 » shl» r10,60 |
213 » mov» BYTE PTR[6+rsp],dl | 216 » mov» BYTE[6+rsp],dl |
214 » or» rax,r10 | 217 » or» rax,r10 |
215 » mov» dl,bl | 218 » mov» dl,bl |
216 » shr» rbx,4 | 219 » shr» rbx,4 |
217 » mov» r10,r9 | 220 » mov» r10,r9 |
218 » shr» r9,4 | 221 » shr» r9,4 |
219 » mov» QWORD PTR[48+rbp],r8 | 222 » mov» QWORD[48+rbp],r8 |
220 » mov» r8,QWORD PTR[((128+0-128))+rsi] | 223 » mov» r8,QWORD[((128+0-128))+rsi] |
221 » shl» dl,4 | 224 » shl» dl,4 |
222 » mov» QWORD PTR[((48-128))+rbp],rax | 225 » mov» QWORD[((48-128))+rbp],rax |
223 » mov» rax,QWORD PTR[((128+8-128))+rsi] | 226 » mov» rax,QWORD[((128+8-128))+rsi] |
224 » shl» r10,60 | 227 » shl» r10,60 |
225 » mov» BYTE PTR[7+rsp],dl | 228 » mov» BYTE[7+rsp],dl |
226 » or» rbx,r10 | 229 » or» rbx,r10 |
227 » mov» dl,al | 230 » mov» dl,al |
228 » shr» rax,4 | 231 » shr» rax,4 |
229 » mov» r10,r8 | 232 » mov» r10,r8 |
230 » shr» r8,4 | 233 » shr» r8,4 |
231 » mov» QWORD PTR[56+rbp],r9 | 234 » mov» QWORD[56+rbp],r9 |
232 » mov» r9,QWORD PTR[((144+0-128))+rsi] | 235 » mov» r9,QWORD[((144+0-128))+rsi] |
233 » shl» dl,4 | 236 » shl» dl,4 |
234 » mov» QWORD PTR[((56-128))+rbp],rbx | 237 » mov» QWORD[((56-128))+rbp],rbx |
235 » mov» rbx,QWORD PTR[((144+8-128))+rsi] | 238 » mov» rbx,QWORD[((144+8-128))+rsi] |
236 » shl» r10,60 | 239 » shl» r10,60 |
237 » mov» BYTE PTR[8+rsp],dl | 240 » mov» BYTE[8+rsp],dl |
238 » or» rax,r10 | 241 » or» rax,r10 |
239 » mov» dl,bl | 242 » mov» dl,bl |
240 » shr» rbx,4 | 243 » shr» rbx,4 |
241 » mov» r10,r9 | 244 » mov» r10,r9 |
242 » shr» r9,4 | 245 » shr» r9,4 |
243 » mov» QWORD PTR[64+rbp],r8 | 246 » mov» QWORD[64+rbp],r8 |
244 » mov» r8,QWORD PTR[((160+0-128))+rsi] | 247 » mov» r8,QWORD[((160+0-128))+rsi] |
245 » shl» dl,4 | 248 » shl» dl,4 |
246 » mov» QWORD PTR[((64-128))+rbp],rax | 249 » mov» QWORD[((64-128))+rbp],rax |
247 » mov» rax,QWORD PTR[((160+8-128))+rsi] | 250 » mov» rax,QWORD[((160+8-128))+rsi] |
248 » shl» r10,60 | 251 » shl» r10,60 |
249 » mov» BYTE PTR[9+rsp],dl | 252 » mov» BYTE[9+rsp],dl |
250 » or» rbx,r10 | 253 » or» rbx,r10 |
251 » mov» dl,al | 254 » mov» dl,al |
252 » shr» rax,4 | 255 » shr» rax,4 |
253 » mov» r10,r8 | 256 » mov» r10,r8 |
254 » shr» r8,4 | 257 » shr» r8,4 |
255 » mov» QWORD PTR[72+rbp],r9 | 258 » mov» QWORD[72+rbp],r9 |
256 » mov» r9,QWORD PTR[((176+0-128))+rsi] | 259 » mov» r9,QWORD[((176+0-128))+rsi] |
257 » shl» dl,4 | 260 » shl» dl,4 |
258 » mov» QWORD PTR[((72-128))+rbp],rbx | 261 » mov» QWORD[((72-128))+rbp],rbx |
259 » mov» rbx,QWORD PTR[((176+8-128))+rsi] | 262 » mov» rbx,QWORD[((176+8-128))+rsi] |
260 » shl» r10,60 | 263 » shl» r10,60 |
261 » mov» BYTE PTR[10+rsp],dl | 264 » mov» BYTE[10+rsp],dl |
262 » or» rax,r10 | 265 » or» rax,r10 |
263 » mov» dl,bl | 266 » mov» dl,bl |
264 » shr» rbx,4 | 267 » shr» rbx,4 |
265 » mov» r10,r9 | 268 » mov» r10,r9 |
266 » shr» r9,4 | 269 » shr» r9,4 |
267 » mov» QWORD PTR[80+rbp],r8 | 270 » mov» QWORD[80+rbp],r8 |
268 » mov» r8,QWORD PTR[((192+0-128))+rsi] | 271 » mov» r8,QWORD[((192+0-128))+rsi] |
269 » shl» dl,4 | 272 » shl» dl,4 |
270 » mov» QWORD PTR[((80-128))+rbp],rax | 273 » mov» QWORD[((80-128))+rbp],rax |
271 » mov» rax,QWORD PTR[((192+8-128))+rsi] | 274 » mov» rax,QWORD[((192+8-128))+rsi] |
272 » shl» r10,60 | 275 » shl» r10,60 |
273 » mov» BYTE PTR[11+rsp],dl | 276 » mov» BYTE[11+rsp],dl |
274 » or» rbx,r10 | 277 » or» rbx,r10 |
275 » mov» dl,al | 278 » mov» dl,al |
276 » shr» rax,4 | 279 » shr» rax,4 |
277 » mov» r10,r8 | 280 » mov» r10,r8 |
278 » shr» r8,4 | 281 » shr» r8,4 |
279 » mov» QWORD PTR[88+rbp],r9 | 282 » mov» QWORD[88+rbp],r9 |
280 » mov» r9,QWORD PTR[((208+0-128))+rsi] | 283 » mov» r9,QWORD[((208+0-128))+rsi] |
281 » shl» dl,4 | 284 » shl» dl,4 |
282 » mov» QWORD PTR[((88-128))+rbp],rbx | 285 » mov» QWORD[((88-128))+rbp],rbx |
283 » mov» rbx,QWORD PTR[((208+8-128))+rsi] | 286 » mov» rbx,QWORD[((208+8-128))+rsi] |
284 » shl» r10,60 | 287 » shl» r10,60 |
285 » mov» BYTE PTR[12+rsp],dl | 288 » mov» BYTE[12+rsp],dl |
286 » or» rax,r10 | 289 » or» rax,r10 |
287 » mov» dl,bl | 290 » mov» dl,bl |
288 » shr» rbx,4 | 291 » shr» rbx,4 |
289 » mov» r10,r9 | 292 » mov» r10,r9 |
290 » shr» r9,4 | 293 » shr» r9,4 |
291 » mov» QWORD PTR[96+rbp],r8 | 294 » mov» QWORD[96+rbp],r8 |
292 » mov» r8,QWORD PTR[((224+0-128))+rsi] | 295 » mov» r8,QWORD[((224+0-128))+rsi] |
293 » shl» dl,4 | 296 » shl» dl,4 |
294 » mov» QWORD PTR[((96-128))+rbp],rax | 297 » mov» QWORD[((96-128))+rbp],rax |
295 » mov» rax,QWORD PTR[((224+8-128))+rsi] | 298 » mov» rax,QWORD[((224+8-128))+rsi] |
296 » shl» r10,60 | 299 » shl» r10,60 |
297 » mov» BYTE PTR[13+rsp],dl | 300 » mov» BYTE[13+rsp],dl |
298 » or» rbx,r10 | 301 » or» rbx,r10 |
299 » mov» dl,al | 302 » mov» dl,al |
300 » shr» rax,4 | 303 » shr» rax,4 |
301 » mov» r10,r8 | 304 » mov» r10,r8 |
302 » shr» r8,4 | 305 » shr» r8,4 |
303 » mov» QWORD PTR[104+rbp],r9 | 306 » mov» QWORD[104+rbp],r9 |
304 » mov» r9,QWORD PTR[((240+0-128))+rsi] | 307 » mov» r9,QWORD[((240+0-128))+rsi] |
305 » shl» dl,4 | 308 » shl» dl,4 |
306 » mov» QWORD PTR[((104-128))+rbp],rbx | 309 » mov» QWORD[((104-128))+rbp],rbx |
307 » mov» rbx,QWORD PTR[((240+8-128))+rsi] | 310 » mov» rbx,QWORD[((240+8-128))+rsi] |
308 » shl» r10,60 | 311 » shl» r10,60 |
309 » mov» BYTE PTR[14+rsp],dl | 312 » mov» BYTE[14+rsp],dl |
310 » or» rax,r10 | 313 » or» rax,r10 |
311 » mov» dl,bl | 314 » mov» dl,bl |
312 » shr» rbx,4 | 315 » shr» rbx,4 |
313 » mov» r10,r9 | 316 » mov» r10,r9 |
314 » shr» r9,4 | 317 » shr» r9,4 |
315 » mov» QWORD PTR[112+rbp],r8 | 318 » mov» QWORD[112+rbp],r8 |
316 » shl» dl,4 | 319 » shl» dl,4 |
317 » mov» QWORD PTR[((112-128))+rbp],rax | 320 » mov» QWORD[((112-128))+rbp],rax |
318 » shl» r10,60 | 321 » shl» r10,60 |
319 » mov» BYTE PTR[15+rsp],dl | 322 » mov» BYTE[15+rsp],dl |
320 » or» rbx,r10 | 323 » or» rbx,r10 |
321 » mov» QWORD PTR[120+rbp],r9 | 324 » mov» QWORD[120+rbp],r9 |
322 » mov» QWORD PTR[((120-128))+rbp],rbx | 325 » mov» QWORD[((120-128))+rbp],rbx |
323 add rsi,-128 | 326 add rsi,-128 |
324 » mov» r8,QWORD PTR[8+rdi] | 327 » mov» r8,QWORD[8+rdi] |
325 » mov» r9,QWORD PTR[rdi] | 328 » mov» r9,QWORD[rdi] |
326 add r15,r14 | 329 add r15,r14 |
327 » lea» r11,QWORD PTR[$L$rem_8bit] | 330 » lea» r11,[$L$rem_8bit] |
328 » jmp» $L$outer_loop | 331 » jmp» NEAR $L$outer_loop |
329 ALIGN 16 | 332 ALIGN 16 |
330 $L$outer_loop:: | 333 $L$outer_loop: |
331 » xor» r9,QWORD PTR[r14] | 334 » xor» r9,QWORD[r14] |
332 » mov» rdx,QWORD PTR[8+r14] | 335 » mov» rdx,QWORD[8+r14] |
333 » lea» r14,QWORD PTR[16+r14] | 336 » lea» r14,[16+r14] |
334 xor rdx,r8 | 337 xor rdx,r8 |
335 » mov» QWORD PTR[rdi],r9 | 338 » mov» QWORD[rdi],r9 |
336 » mov» QWORD PTR[8+rdi],rdx | 339 » mov» QWORD[8+rdi],rdx |
337 shr rdx,32 | 340 shr rdx,32 |
338 xor rax,rax | 341 xor rax,rax |
339 rol edx,8 | 342 rol edx,8 |
340 mov al,dl | 343 mov al,dl |
341 movzx ebx,dl | 344 movzx ebx,dl |
342 shl al,4 | 345 shl al,4 |
343 shr ebx,4 | 346 shr ebx,4 |
344 rol edx,8 | 347 rol edx,8 |
345 » mov» r8,QWORD PTR[8+rax*1+rsi] | 348 » mov» r8,QWORD[8+rax*1+rsi] |
346 » mov» r9,QWORD PTR[rax*1+rsi] | 349 » mov» r9,QWORD[rax*1+rsi] |
347 mov al,dl | 350 mov al,dl |
348 movzx ecx,dl | 351 movzx ecx,dl |
349 shl al,4 | 352 shl al,4 |
350 » movzx» r12,BYTE PTR[rbx*1+rsp] | 353 » movzx» r12,BYTE[rbx*1+rsp] |
351 shr ecx,4 | 354 shr ecx,4 |
352 xor r12,r8 | 355 xor r12,r8 |
353 mov r10,r9 | 356 mov r10,r9 |
354 shr r8,8 | 357 shr r8,8 |
355 movzx r12,r12b | 358 movzx r12,r12b |
356 shr r9,8 | 359 shr r9,8 |
357 » xor» r8,QWORD PTR[((-128))+rbx*8+rbp] | 360 » xor» r8,QWORD[((-128))+rbx*8+rbp] |
358 shl r10,56 | 361 shl r10,56 |
359 » xor» r9,QWORD PTR[rbx*8+rbp] | 362 » xor» r9,QWORD[rbx*8+rbp] |
360 rol edx,8 | 363 rol edx,8 |
361 » xor» r8,QWORD PTR[8+rax*1+rsi] | 364 » xor» r8,QWORD[8+rax*1+rsi] |
362 » xor» r9,QWORD PTR[rax*1+rsi] | 365 » xor» r9,QWORD[rax*1+rsi] |
363 mov al,dl | 366 mov al,dl |
364 xor r8,r10 | 367 xor r8,r10 |
365 » movzx» r12,WORD PTR[r12*2+r11] | 368 » movzx» r12,WORD[r12*2+r11] |
366 movzx ebx,dl | 369 movzx ebx,dl |
367 shl al,4 | 370 shl al,4 |
368 » movzx» r13,BYTE PTR[rcx*1+rsp] | 371 » movzx» r13,BYTE[rcx*1+rsp] |
369 shr ebx,4 | 372 shr ebx,4 |
370 shl r12,48 | 373 shl r12,48 |
371 xor r13,r8 | 374 xor r13,r8 |
372 mov r10,r9 | 375 mov r10,r9 |
373 xor r9,r12 | 376 xor r9,r12 |
374 shr r8,8 | 377 shr r8,8 |
375 movzx r13,r13b | 378 movzx r13,r13b |
376 shr r9,8 | 379 shr r9,8 |
377 » xor» r8,QWORD PTR[((-128))+rcx*8+rbp] | 380 » xor» r8,QWORD[((-128))+rcx*8+rbp] |
378 shl r10,56 | 381 shl r10,56 |
379 » xor» r9,QWORD PTR[rcx*8+rbp] | 382 » xor» r9,QWORD[rcx*8+rbp] |
380 rol edx,8 | 383 rol edx,8 |
381 » xor» r8,QWORD PTR[8+rax*1+rsi] | 384 » xor» r8,QWORD[8+rax*1+rsi] |
382 » xor» r9,QWORD PTR[rax*1+rsi] | 385 » xor» r9,QWORD[rax*1+rsi] |
383 mov al,dl | 386 mov al,dl |
384 xor r8,r10 | 387 xor r8,r10 |
385 » movzx» r13,WORD PTR[r13*2+r11] | 388 » movzx» r13,WORD[r13*2+r11] |
386 movzx ecx,dl | 389 movzx ecx,dl |
387 shl al,4 | 390 shl al,4 |
388 » movzx» r12,BYTE PTR[rbx*1+rsp] | 391 » movzx» r12,BYTE[rbx*1+rsp] |
389 shr ecx,4 | 392 shr ecx,4 |
390 shl r13,48 | 393 shl r13,48 |
391 xor r12,r8 | 394 xor r12,r8 |
392 mov r10,r9 | 395 mov r10,r9 |
393 xor r9,r13 | 396 xor r9,r13 |
394 shr r8,8 | 397 shr r8,8 |
395 movzx r12,r12b | 398 movzx r12,r12b |
396 » mov» edx,DWORD PTR[8+rdi] | 399 » mov» edx,DWORD[8+rdi] |
397 shr r9,8 | 400 shr r9,8 |
398 » xor» r8,QWORD PTR[((-128))+rbx*8+rbp] | 401 » xor» r8,QWORD[((-128))+rbx*8+rbp] |
399 shl r10,56 | 402 shl r10,56 |
400 » xor» r9,QWORD PTR[rbx*8+rbp] | 403 » xor» r9,QWORD[rbx*8+rbp] |
401 rol edx,8 | 404 rol edx,8 |
402 » xor» r8,QWORD PTR[8+rax*1+rsi] | 405 » xor» r8,QWORD[8+rax*1+rsi] |
403 » xor» r9,QWORD PTR[rax*1+rsi] | 406 » xor» r9,QWORD[rax*1+rsi] |
404 mov al,dl | 407 mov al,dl |
405 xor r8,r10 | 408 xor r8,r10 |
406 » movzx» r12,WORD PTR[r12*2+r11] | 409 » movzx» r12,WORD[r12*2+r11] |
407 movzx ebx,dl | 410 movzx ebx,dl |
408 shl al,4 | 411 shl al,4 |
409 » movzx» r13,BYTE PTR[rcx*1+rsp] | 412 » movzx» r13,BYTE[rcx*1+rsp] |
410 shr ebx,4 | 413 shr ebx,4 |
411 shl r12,48 | 414 shl r12,48 |
412 xor r13,r8 | 415 xor r13,r8 |
413 mov r10,r9 | 416 mov r10,r9 |
414 xor r9,r12 | 417 xor r9,r12 |
415 shr r8,8 | 418 shr r8,8 |
416 movzx r13,r13b | 419 movzx r13,r13b |
417 shr r9,8 | 420 shr r9,8 |
418 » xor» r8,QWORD PTR[((-128))+rcx*8+rbp] | 421 » xor» r8,QWORD[((-128))+rcx*8+rbp] |
419 shl r10,56 | 422 shl r10,56 |
420 » xor» r9,QWORD PTR[rcx*8+rbp] | 423 » xor» r9,QWORD[rcx*8+rbp] |
421 rol edx,8 | 424 rol edx,8 |
422 » xor» r8,QWORD PTR[8+rax*1+rsi] | 425 » xor» r8,QWORD[8+rax*1+rsi] |
423 » xor» r9,QWORD PTR[rax*1+rsi] | 426 » xor» r9,QWORD[rax*1+rsi] |
424 mov al,dl | 427 mov al,dl |
425 xor r8,r10 | 428 xor r8,r10 |
426 » movzx» r13,WORD PTR[r13*2+r11] | 429 » movzx» r13,WORD[r13*2+r11] |
427 movzx ecx,dl | 430 movzx ecx,dl |
428 shl al,4 | 431 shl al,4 |
429 » movzx» r12,BYTE PTR[rbx*1+rsp] | 432 » movzx» r12,BYTE[rbx*1+rsp] |
430 shr ecx,4 | 433 shr ecx,4 |
431 shl r13,48 | 434 shl r13,48 |
432 xor r12,r8 | 435 xor r12,r8 |
433 mov r10,r9 | 436 mov r10,r9 |
434 xor r9,r13 | 437 xor r9,r13 |
435 shr r8,8 | 438 shr r8,8 |
436 movzx r12,r12b | 439 movzx r12,r12b |
437 shr r9,8 | 440 shr r9,8 |
438 » xor» r8,QWORD PTR[((-128))+rbx*8+rbp] | 441 » xor» r8,QWORD[((-128))+rbx*8+rbp] |
439 shl r10,56 | 442 shl r10,56 |
440 » xor» r9,QWORD PTR[rbx*8+rbp] | 443 » xor» r9,QWORD[rbx*8+rbp] |
441 rol edx,8 | 444 rol edx,8 |
442 » xor» r8,QWORD PTR[8+rax*1+rsi] | 445 » xor» r8,QWORD[8+rax*1+rsi] |
443 » xor» r9,QWORD PTR[rax*1+rsi] | 446 » xor» r9,QWORD[rax*1+rsi] |
444 mov al,dl | 447 mov al,dl |
445 xor r8,r10 | 448 xor r8,r10 |
446 » movzx» r12,WORD PTR[r12*2+r11] | 449 » movzx» r12,WORD[r12*2+r11] |
447 movzx ebx,dl | 450 movzx ebx,dl |
448 shl al,4 | 451 shl al,4 |
449 » movzx» r13,BYTE PTR[rcx*1+rsp] | 452 » movzx» r13,BYTE[rcx*1+rsp] |
450 shr ebx,4 | 453 shr ebx,4 |
451 shl r12,48 | 454 shl r12,48 |
452 xor r13,r8 | 455 xor r13,r8 |
453 mov r10,r9 | 456 mov r10,r9 |
454 xor r9,r12 | 457 xor r9,r12 |
455 shr r8,8 | 458 shr r8,8 |
456 movzx r13,r13b | 459 movzx r13,r13b |
457 shr r9,8 | 460 shr r9,8 |
458 » xor» r8,QWORD PTR[((-128))+rcx*8+rbp] | 461 » xor» r8,QWORD[((-128))+rcx*8+rbp] |
459 shl r10,56 | 462 shl r10,56 |
460 » xor» r9,QWORD PTR[rcx*8+rbp] | 463 » xor» r9,QWORD[rcx*8+rbp] |
461 rol edx,8 | 464 rol edx,8 |
462 » xor» r8,QWORD PTR[8+rax*1+rsi] | 465 » xor» r8,QWORD[8+rax*1+rsi] |
463 » xor» r9,QWORD PTR[rax*1+rsi] | 466 » xor» r9,QWORD[rax*1+rsi] |
464 mov al,dl | 467 mov al,dl |
465 xor r8,r10 | 468 xor r8,r10 |
466 » movzx» r13,WORD PTR[r13*2+r11] | 469 » movzx» r13,WORD[r13*2+r11] |
467 movzx ecx,dl | 470 movzx ecx,dl |
468 shl al,4 | 471 shl al,4 |
469 » movzx» r12,BYTE PTR[rbx*1+rsp] | 472 » movzx» r12,BYTE[rbx*1+rsp] |
470 shr ecx,4 | 473 shr ecx,4 |
471 shl r13,48 | 474 shl r13,48 |
472 xor r12,r8 | 475 xor r12,r8 |
473 mov r10,r9 | 476 mov r10,r9 |
474 xor r9,r13 | 477 xor r9,r13 |
475 shr r8,8 | 478 shr r8,8 |
476 movzx r12,r12b | 479 movzx r12,r12b |
477 » mov» edx,DWORD PTR[4+rdi] | 480 » mov» edx,DWORD[4+rdi] |
478 shr r9,8 | 481 shr r9,8 |
479 » xor» r8,QWORD PTR[((-128))+rbx*8+rbp] | 482 » xor» r8,QWORD[((-128))+rbx*8+rbp] |
480 shl r10,56 | 483 shl r10,56 |
481 » xor» r9,QWORD PTR[rbx*8+rbp] | 484 » xor» r9,QWORD[rbx*8+rbp] |
482 rol edx,8 | 485 rol edx,8 |
483 » xor» r8,QWORD PTR[8+rax*1+rsi] | 486 » xor» r8,QWORD[8+rax*1+rsi] |
484 » xor» r9,QWORD PTR[rax*1+rsi] | 487 » xor» r9,QWORD[rax*1+rsi] |
485 mov al,dl | 488 mov al,dl |
486 xor r8,r10 | 489 xor r8,r10 |
487 » movzx» r12,WORD PTR[r12*2+r11] | 490 » movzx» r12,WORD[r12*2+r11] |
488 movzx ebx,dl | 491 movzx ebx,dl |
489 shl al,4 | 492 shl al,4 |
490 » movzx» r13,BYTE PTR[rcx*1+rsp] | 493 » movzx» r13,BYTE[rcx*1+rsp] |
491 shr ebx,4 | 494 shr ebx,4 |
492 shl r12,48 | 495 shl r12,48 |
493 xor r13,r8 | 496 xor r13,r8 |
494 mov r10,r9 | 497 mov r10,r9 |
495 xor r9,r12 | 498 xor r9,r12 |
496 shr r8,8 | 499 shr r8,8 |
497 movzx r13,r13b | 500 movzx r13,r13b |
498 shr r9,8 | 501 shr r9,8 |
499 » xor» r8,QWORD PTR[((-128))+rcx*8+rbp] | 502 » xor» r8,QWORD[((-128))+rcx*8+rbp] |
500 shl r10,56 | 503 shl r10,56 |
501 » xor» r9,QWORD PTR[rcx*8+rbp] | 504 » xor» r9,QWORD[rcx*8+rbp] |
502 rol edx,8 | 505 rol edx,8 |
503 » xor» r8,QWORD PTR[8+rax*1+rsi] | 506 » xor» r8,QWORD[8+rax*1+rsi] |
504 » xor» r9,QWORD PTR[rax*1+rsi] | 507 » xor» r9,QWORD[rax*1+rsi] |
505 mov al,dl | 508 mov al,dl |
506 xor r8,r10 | 509 xor r8,r10 |
507 » movzx» r13,WORD PTR[r13*2+r11] | 510 » movzx» r13,WORD[r13*2+r11] |
508 movzx ecx,dl | 511 movzx ecx,dl |
509 shl al,4 | 512 shl al,4 |
510 » movzx» r12,BYTE PTR[rbx*1+rsp] | 513 » movzx» r12,BYTE[rbx*1+rsp] |
511 shr ecx,4 | 514 shr ecx,4 |
512 shl r13,48 | 515 shl r13,48 |
513 xor r12,r8 | 516 xor r12,r8 |
514 mov r10,r9 | 517 mov r10,r9 |
515 xor r9,r13 | 518 xor r9,r13 |
516 shr r8,8 | 519 shr r8,8 |
517 movzx r12,r12b | 520 movzx r12,r12b |
518 shr r9,8 | 521 shr r9,8 |
519 » xor» r8,QWORD PTR[((-128))+rbx*8+rbp] | 522 » xor» r8,QWORD[((-128))+rbx*8+rbp] |
520 shl r10,56 | 523 shl r10,56 |
521 » xor» r9,QWORD PTR[rbx*8+rbp] | 524 » xor» r9,QWORD[rbx*8+rbp] |
522 rol edx,8 | 525 rol edx,8 |
523 » xor» r8,QWORD PTR[8+rax*1+rsi] | 526 » xor» r8,QWORD[8+rax*1+rsi] |
524 » xor» r9,QWORD PTR[rax*1+rsi] | 527 » xor» r9,QWORD[rax*1+rsi] |
525 mov al,dl | 528 mov al,dl |
526 xor r8,r10 | 529 xor r8,r10 |
527 » movzx» r12,WORD PTR[r12*2+r11] | 530 » movzx» r12,WORD[r12*2+r11] |
528 movzx ebx,dl | 531 movzx ebx,dl |
529 shl al,4 | 532 shl al,4 |
530 » movzx» r13,BYTE PTR[rcx*1+rsp] | 533 » movzx» r13,BYTE[rcx*1+rsp] |
531 shr ebx,4 | 534 shr ebx,4 |
532 shl r12,48 | 535 shl r12,48 |
533 xor r13,r8 | 536 xor r13,r8 |
534 mov r10,r9 | 537 mov r10,r9 |
535 xor r9,r12 | 538 xor r9,r12 |
536 shr r8,8 | 539 shr r8,8 |
537 movzx r13,r13b | 540 movzx r13,r13b |
538 shr r9,8 | 541 shr r9,8 |
539 » xor» r8,QWORD PTR[((-128))+rcx*8+rbp] | 542 » xor» r8,QWORD[((-128))+rcx*8+rbp] |
540 shl r10,56 | 543 shl r10,56 |
541 » xor» r9,QWORD PTR[rcx*8+rbp] | 544 » xor» r9,QWORD[rcx*8+rbp] |
542 rol edx,8 | 545 rol edx,8 |
543 » xor» r8,QWORD PTR[8+rax*1+rsi] | 546 » xor» r8,QWORD[8+rax*1+rsi] |
544 » xor» r9,QWORD PTR[rax*1+rsi] | 547 » xor» r9,QWORD[rax*1+rsi] |
545 mov al,dl | 548 mov al,dl |
546 xor r8,r10 | 549 xor r8,r10 |
547 » movzx» r13,WORD PTR[r13*2+r11] | 550 » movzx» r13,WORD[r13*2+r11] |
548 movzx ecx,dl | 551 movzx ecx,dl |
549 shl al,4 | 552 shl al,4 |
550 » movzx» r12,BYTE PTR[rbx*1+rsp] | 553 » movzx» r12,BYTE[rbx*1+rsp] |
551 shr ecx,4 | 554 shr ecx,4 |
552 shl r13,48 | 555 shl r13,48 |
553 xor r12,r8 | 556 xor r12,r8 |
554 mov r10,r9 | 557 mov r10,r9 |
555 xor r9,r13 | 558 xor r9,r13 |
556 shr r8,8 | 559 shr r8,8 |
557 movzx r12,r12b | 560 movzx r12,r12b |
558 » mov» edx,DWORD PTR[rdi] | 561 » mov» edx,DWORD[rdi] |
559 shr r9,8 | 562 shr r9,8 |
560 » xor» r8,QWORD PTR[((-128))+rbx*8+rbp] | 563 » xor» r8,QWORD[((-128))+rbx*8+rbp] |
561 shl r10,56 | 564 shl r10,56 |
562 » xor» r9,QWORD PTR[rbx*8+rbp] | 565 » xor» r9,QWORD[rbx*8+rbp] |
563 rol edx,8 | 566 rol edx,8 |
564 » xor» r8,QWORD PTR[8+rax*1+rsi] | 567 » xor» r8,QWORD[8+rax*1+rsi] |
565 » xor» r9,QWORD PTR[rax*1+rsi] | 568 » xor» r9,QWORD[rax*1+rsi] |
566 mov al,dl | 569 mov al,dl |
567 xor r8,r10 | 570 xor r8,r10 |
568 » movzx» r12,WORD PTR[r12*2+r11] | 571 » movzx» r12,WORD[r12*2+r11] |
569 movzx ebx,dl | 572 movzx ebx,dl |
570 shl al,4 | 573 shl al,4 |
571 » movzx» r13,BYTE PTR[rcx*1+rsp] | 574 » movzx» r13,BYTE[rcx*1+rsp] |
572 shr ebx,4 | 575 shr ebx,4 |
573 shl r12,48 | 576 shl r12,48 |
574 xor r13,r8 | 577 xor r13,r8 |
575 mov r10,r9 | 578 mov r10,r9 |
576 xor r9,r12 | 579 xor r9,r12 |
577 shr r8,8 | 580 shr r8,8 |
578 movzx r13,r13b | 581 movzx r13,r13b |
579 shr r9,8 | 582 shr r9,8 |
580 » xor» r8,QWORD PTR[((-128))+rcx*8+rbp] | 583 » xor» r8,QWORD[((-128))+rcx*8+rbp] |
581 shl r10,56 | 584 shl r10,56 |
582 » xor» r9,QWORD PTR[rcx*8+rbp] | 585 » xor» r9,QWORD[rcx*8+rbp] |
583 rol edx,8 | 586 rol edx,8 |
584 » xor» r8,QWORD PTR[8+rax*1+rsi] | 587 » xor» r8,QWORD[8+rax*1+rsi] |
585 » xor» r9,QWORD PTR[rax*1+rsi] | 588 » xor» r9,QWORD[rax*1+rsi] |
586 mov al,dl | 589 mov al,dl |
587 xor r8,r10 | 590 xor r8,r10 |
588 » movzx» r13,WORD PTR[r13*2+r11] | 591 » movzx» r13,WORD[r13*2+r11] |
589 movzx ecx,dl | 592 movzx ecx,dl |
590 shl al,4 | 593 shl al,4 |
591 » movzx» r12,BYTE PTR[rbx*1+rsp] | 594 » movzx» r12,BYTE[rbx*1+rsp] |
592 shr ecx,4 | 595 shr ecx,4 |
593 shl r13,48 | 596 shl r13,48 |
594 xor r12,r8 | 597 xor r12,r8 |
595 mov r10,r9 | 598 mov r10,r9 |
596 xor r9,r13 | 599 xor r9,r13 |
597 shr r8,8 | 600 shr r8,8 |
598 movzx r12,r12b | 601 movzx r12,r12b |
599 shr r9,8 | 602 shr r9,8 |
600 » xor» r8,QWORD PTR[((-128))+rbx*8+rbp] | 603 » xor» r8,QWORD[((-128))+rbx*8+rbp] |
601 shl r10,56 | 604 shl r10,56 |
602 » xor» r9,QWORD PTR[rbx*8+rbp] | 605 » xor» r9,QWORD[rbx*8+rbp] |
603 rol edx,8 | 606 rol edx,8 |
604 » xor» r8,QWORD PTR[8+rax*1+rsi] | 607 » xor» r8,QWORD[8+rax*1+rsi] |
605 » xor» r9,QWORD PTR[rax*1+rsi] | 608 » xor» r9,QWORD[rax*1+rsi] |
606 mov al,dl | 609 mov al,dl |
607 xor r8,r10 | 610 xor r8,r10 |
608 » movzx» r12,WORD PTR[r12*2+r11] | 611 » movzx» r12,WORD[r12*2+r11] |
609 movzx ebx,dl | 612 movzx ebx,dl |
610 shl al,4 | 613 shl al,4 |
611 » movzx» r13,BYTE PTR[rcx*1+rsp] | 614 » movzx» r13,BYTE[rcx*1+rsp] |
612 shr ebx,4 | 615 shr ebx,4 |
613 shl r12,48 | 616 shl r12,48 |
614 xor r13,r8 | 617 xor r13,r8 |
615 mov r10,r9 | 618 mov r10,r9 |
616 xor r9,r12 | 619 xor r9,r12 |
617 shr r8,8 | 620 shr r8,8 |
618 movzx r13,r13b | 621 movzx r13,r13b |
619 shr r9,8 | 622 shr r9,8 |
620 » xor» r8,QWORD PTR[((-128))+rcx*8+rbp] | 623 » xor» r8,QWORD[((-128))+rcx*8+rbp] |
621 shl r10,56 | 624 shl r10,56 |
622 » xor» r9,QWORD PTR[rcx*8+rbp] | 625 » xor» r9,QWORD[rcx*8+rbp] |
623 rol edx,8 | 626 rol edx,8 |
624 » xor» r8,QWORD PTR[8+rax*1+rsi] | 627 » xor» r8,QWORD[8+rax*1+rsi] |
625 » xor» r9,QWORD PTR[rax*1+rsi] | 628 » xor» r9,QWORD[rax*1+rsi] |
626 mov al,dl | 629 mov al,dl |
627 xor r8,r10 | 630 xor r8,r10 |
628 » movzx» r13,WORD PTR[r13*2+r11] | 631 » movzx» r13,WORD[r13*2+r11] |
629 movzx ecx,dl | 632 movzx ecx,dl |
630 shl al,4 | 633 shl al,4 |
631 » movzx» r12,BYTE PTR[rbx*1+rsp] | 634 » movzx» r12,BYTE[rbx*1+rsp] |
632 and ecx,240 | 635 and ecx,240 |
633 shl r13,48 | 636 shl r13,48 |
634 xor r12,r8 | 637 xor r12,r8 |
635 mov r10,r9 | 638 mov r10,r9 |
636 xor r9,r13 | 639 xor r9,r13 |
637 shr r8,8 | 640 shr r8,8 |
638 movzx r12,r12b | 641 movzx r12,r12b |
639 » mov» edx,DWORD PTR[((-4))+rdi] | 642 » mov» edx,DWORD[((-4))+rdi] |
640 shr r9,8 | 643 shr r9,8 |
641 » xor» r8,QWORD PTR[((-128))+rbx*8+rbp] | 644 » xor» r8,QWORD[((-128))+rbx*8+rbp] |
642 shl r10,56 | 645 shl r10,56 |
643 » xor» r9,QWORD PTR[rbx*8+rbp] | 646 » xor» r9,QWORD[rbx*8+rbp] |
644 » movzx» r12,WORD PTR[r12*2+r11] | 647 » movzx» r12,WORD[r12*2+r11] |
645 » xor» r8,QWORD PTR[8+rax*1+rsi] | 648 » xor» r8,QWORD[8+rax*1+rsi] |
646 » xor» r9,QWORD PTR[rax*1+rsi] | 649 » xor» r9,QWORD[rax*1+rsi] |
647 shl r12,48 | 650 shl r12,48 |
648 xor r8,r10 | 651 xor r8,r10 |
649 xor r9,r12 | 652 xor r9,r12 |
650 movzx r13,r8b | 653 movzx r13,r8b |
651 shr r8,4 | 654 shr r8,4 |
652 mov r10,r9 | 655 mov r10,r9 |
653 shl r13b,4 | 656 shl r13b,4 |
654 shr r9,4 | 657 shr r9,4 |
655 » xor» r8,QWORD PTR[8+rcx*1+rsi] | 658 » xor» r8,QWORD[8+rcx*1+rsi] |
656 » movzx» r13,WORD PTR[r13*2+r11] | 659 » movzx» r13,WORD[r13*2+r11] |
657 shl r10,60 | 660 shl r10,60 |
658 » xor» r9,QWORD PTR[rcx*1+rsi] | 661 » xor» r9,QWORD[rcx*1+rsi] |
659 xor r8,r10 | 662 xor r8,r10 |
660 shl r13,48 | 663 shl r13,48 |
661 bswap r8 | 664 bswap r8 |
662 xor r9,r13 | 665 xor r9,r13 |
663 bswap r9 | 666 bswap r9 |
664 cmp r14,r15 | 667 cmp r14,r15 |
665 » jb» $L$outer_loop | 668 » jb» NEAR $L$outer_loop |
666 » mov» QWORD PTR[8+rdi],r8 | 669 » mov» QWORD[8+rdi],r8 |
667 » mov» QWORD PTR[rdi],r9 | 670 » mov» QWORD[rdi],r9 |
668 | 671 |
669 » lea» rsi,QWORD PTR[280+rsp] | 672 » lea» rsi,[280+rsp] |
670 » mov» r15,QWORD PTR[rsi] | 673 » mov» r15,QWORD[rsi] |
671 » mov» r14,QWORD PTR[8+rsi] | 674 » mov» r14,QWORD[8+rsi] |
672 » mov» r13,QWORD PTR[16+rsi] | 675 » mov» r13,QWORD[16+rsi] |
673 » mov» r12,QWORD PTR[24+rsi] | 676 » mov» r12,QWORD[24+rsi] |
674 » mov» rbp,QWORD PTR[32+rsi] | 677 » mov» rbp,QWORD[32+rsi] |
675 » mov» rbx,QWORD PTR[40+rsi] | 678 » mov» rbx,QWORD[40+rsi] |
676 » lea» rsp,QWORD PTR[48+rsi] | 679 » lea» rsp,[48+rsi] |
677 $L$ghash_epilogue:: | 680 $L$ghash_epilogue: |
678 » mov» rdi,QWORD PTR[8+rsp]» ;WIN64 epilogue | 681 » mov» rdi,QWORD[8+rsp]» ;WIN64 epilogue |
679 » mov» rsi,QWORD PTR[16+rsp] | 682 » mov» rsi,QWORD[16+rsp] |
680 DB 0F3h,0C3h ;repret | 683 DB 0F3h,0C3h ;repret |
681 $L$SEH_end_gcm_ghash_4bit:: | 684 $L$SEH_end_gcm_ghash_4bit: |
682 gcm_ghash_4bit» ENDP | 685 global» gcm_init_clmul |
683 PUBLIC» gcm_init_clmul | |
684 | 686 |
685 ALIGN 16 | 687 ALIGN 16 |
686 gcm_init_clmul» PROC PUBLIC | 688 gcm_init_clmul: |
687 $L$_init_clmul:: | 689 $L$_init_clmul: |
688 $L$SEH_begin_gcm_init_clmul:: | 690 $L$SEH_begin_gcm_init_clmul: |
689 | 691 |
690 DB» 048h,083h,0ech,018h | 692 DB» 0x48,0x83,0xec,0x18 |
691 DB» 00fh,029h,034h,024h | 693 DB» 0x0f,0x29,0x34,0x24 |
692 » movdqu» xmm2,XMMWORD PTR[rdx] | 694 » movdqu» xmm2,XMMWORD[rdx] |
693 pshufd xmm2,xmm2,78 | 695 pshufd xmm2,xmm2,78 |
694 | 696 |
695 | 697 |
696 pshufd xmm4,xmm2,255 | 698 pshufd xmm4,xmm2,255 |
697 movdqa xmm3,xmm2 | 699 movdqa xmm3,xmm2 |
698 psllq xmm2,1 | 700 psllq xmm2,1 |
699 pxor xmm5,xmm5 | 701 pxor xmm5,xmm5 |
700 psrlq xmm3,63 | 702 psrlq xmm3,63 |
701 pcmpgtd xmm5,xmm4 | 703 pcmpgtd xmm5,xmm4 |
702 pslldq xmm3,8 | 704 pslldq xmm3,8 |
703 por xmm2,xmm3 | 705 por xmm2,xmm3 |
704 | 706 |
705 | 707 |
706 » pand» xmm5,XMMWORD PTR[$L$0x1c2_polynomial] | 708 » pand» xmm5,XMMWORD[$L$0x1c2_polynomial] |
707 pxor xmm2,xmm5 | 709 pxor xmm2,xmm5 |
708 | 710 |
709 | 711 |
710 pshufd xmm6,xmm2,78 | 712 pshufd xmm6,xmm2,78 |
711 movdqa xmm0,xmm2 | 713 movdqa xmm0,xmm2 |
712 pxor xmm6,xmm2 | 714 pxor xmm6,xmm2 |
713 movdqa xmm1,xmm0 | 715 movdqa xmm1,xmm0 |
714 pshufd xmm3,xmm0,78 | 716 pshufd xmm3,xmm0,78 |
715 pxor xmm3,xmm0 | 717 pxor xmm3,xmm0 |
716 DB 102,15,58,68,194,0 | 718 DB 102,15,58,68,194,0 |
(...skipping 26 matching lines...) Expand all Loading... |
743 psrlq xmm0,1 | 745 psrlq xmm0,1 |
744 pxor xmm1,xmm4 | 746 pxor xmm1,xmm4 |
745 pxor xmm4,xmm0 | 747 pxor xmm4,xmm0 |
746 psrlq xmm0,5 | 748 psrlq xmm0,5 |
747 pxor xmm0,xmm4 | 749 pxor xmm0,xmm4 |
748 psrlq xmm0,1 | 750 psrlq xmm0,1 |
749 pxor xmm0,xmm1 | 751 pxor xmm0,xmm1 |
750 pshufd xmm3,xmm2,78 | 752 pshufd xmm3,xmm2,78 |
751 pshufd xmm4,xmm0,78 | 753 pshufd xmm4,xmm0,78 |
752 pxor xmm3,xmm2 | 754 pxor xmm3,xmm2 |
753 » movdqu» XMMWORD PTR[rcx],xmm2 | 755 » movdqu» XMMWORD[rcx],xmm2 |
754 pxor xmm4,xmm0 | 756 pxor xmm4,xmm0 |
755 » movdqu» XMMWORD PTR[16+rcx],xmm0 | 757 » movdqu» XMMWORD[16+rcx],xmm0 |
756 DB 102,15,58,15,227,8 | 758 DB 102,15,58,15,227,8 |
757 » movdqu» XMMWORD PTR[32+rcx],xmm4 | 759 » movdqu» XMMWORD[32+rcx],xmm4 |
758 movdqa xmm1,xmm0 | 760 movdqa xmm1,xmm0 |
759 pshufd xmm3,xmm0,78 | 761 pshufd xmm3,xmm0,78 |
760 pxor xmm3,xmm0 | 762 pxor xmm3,xmm0 |
761 DB 102,15,58,68,194,0 | 763 DB 102,15,58,68,194,0 |
762 DB 102,15,58,68,202,17 | 764 DB 102,15,58,68,202,17 |
763 DB 102,15,58,68,222,0 | 765 DB 102,15,58,68,222,0 |
764 pxor xmm3,xmm0 | 766 pxor xmm3,xmm0 |
765 pxor xmm3,xmm1 | 767 pxor xmm3,xmm1 |
766 | 768 |
767 movdqa xmm4,xmm3 | 769 movdqa xmm4,xmm3 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
826 psrlq xmm0,1 | 828 psrlq xmm0,1 |
827 pxor xmm1,xmm4 | 829 pxor xmm1,xmm4 |
828 pxor xmm4,xmm0 | 830 pxor xmm4,xmm0 |
829 psrlq xmm0,5 | 831 psrlq xmm0,5 |
830 pxor xmm0,xmm4 | 832 pxor xmm0,xmm4 |
831 psrlq xmm0,1 | 833 psrlq xmm0,1 |
832 pxor xmm0,xmm1 | 834 pxor xmm0,xmm1 |
833 pshufd xmm3,xmm5,78 | 835 pshufd xmm3,xmm5,78 |
834 pshufd xmm4,xmm0,78 | 836 pshufd xmm4,xmm0,78 |
835 pxor xmm3,xmm5 | 837 pxor xmm3,xmm5 |
836 » movdqu» XMMWORD PTR[48+rcx],xmm5 | 838 » movdqu» XMMWORD[48+rcx],xmm5 |
837 pxor xmm4,xmm0 | 839 pxor xmm4,xmm0 |
838 » movdqu» XMMWORD PTR[64+rcx],xmm0 | 840 » movdqu» XMMWORD[64+rcx],xmm0 |
839 DB 102,15,58,15,227,8 | 841 DB 102,15,58,15,227,8 |
840 » movdqu» XMMWORD PTR[80+rcx],xmm4 | 842 » movdqu» XMMWORD[80+rcx],xmm4 |
841 » movaps» xmm6,XMMWORD PTR[rsp] | 843 » movaps» xmm6,XMMWORD[rsp] |
842 » lea» rsp,QWORD PTR[24+rsp] | 844 » lea» rsp,[24+rsp] |
843 $L$SEH_end_gcm_init_clmul:: | 845 $L$SEH_end_gcm_init_clmul: |
844 DB 0F3h,0C3h ;repret | 846 DB 0F3h,0C3h ;repret |
845 gcm_init_clmul» ENDP | 847 |
846 PUBLIC» gcm_gmult_clmul | 848 global» gcm_gmult_clmul |
847 | 849 |
848 ALIGN 16 | 850 ALIGN 16 |
849 gcm_gmult_clmul»PROC PUBLIC | 851 gcm_gmult_clmul: |
850 $L$_gmult_clmul:: | 852 $L$_gmult_clmul: |
851 » movdqu» xmm0,XMMWORD PTR[rcx] | 853 » movdqu» xmm0,XMMWORD[rcx] |
852 » movdqa» xmm5,XMMWORD PTR[$L$bswap_mask] | 854 » movdqa» xmm5,XMMWORD[$L$bswap_mask] |
853 » movdqu» xmm2,XMMWORD PTR[rdx] | 855 » movdqu» xmm2,XMMWORD[rdx] |
854 » movdqu» xmm4,XMMWORD PTR[32+rdx] | 856 » movdqu» xmm4,XMMWORD[32+rdx] |
855 DB 102,15,56,0,197 | 857 DB 102,15,56,0,197 |
856 movdqa xmm1,xmm0 | 858 movdqa xmm1,xmm0 |
857 pshufd xmm3,xmm0,78 | 859 pshufd xmm3,xmm0,78 |
858 pxor xmm3,xmm0 | 860 pxor xmm3,xmm0 |
859 DB 102,15,58,68,194,0 | 861 DB 102,15,58,68,194,0 |
860 DB 102,15,58,68,202,17 | 862 DB 102,15,58,68,202,17 |
861 DB 102,15,58,68,220,0 | 863 DB 102,15,58,68,220,0 |
862 pxor xmm3,xmm0 | 864 pxor xmm3,xmm0 |
863 pxor xmm3,xmm1 | 865 pxor xmm3,xmm1 |
864 | 866 |
(...skipping 19 matching lines...) Expand all Loading... |
884 | 886 |
885 movdqa xmm4,xmm0 | 887 movdqa xmm4,xmm0 |
886 psrlq xmm0,1 | 888 psrlq xmm0,1 |
887 pxor xmm1,xmm4 | 889 pxor xmm1,xmm4 |
888 pxor xmm4,xmm0 | 890 pxor xmm4,xmm0 |
889 psrlq xmm0,5 | 891 psrlq xmm0,5 |
890 pxor xmm0,xmm4 | 892 pxor xmm0,xmm4 |
891 psrlq xmm0,1 | 893 psrlq xmm0,1 |
892 pxor xmm0,xmm1 | 894 pxor xmm0,xmm1 |
893 DB 102,15,56,0,197 | 895 DB 102,15,56,0,197 |
894 » movdqu» XMMWORD PTR[rcx],xmm0 | 896 » movdqu» XMMWORD[rcx],xmm0 |
895 DB 0F3h,0C3h ;repret | 897 DB 0F3h,0C3h ;repret |
896 gcm_gmult_clmul»ENDP | 898 |
897 PUBLIC» gcm_ghash_clmul | 899 global» gcm_ghash_clmul |
898 | 900 |
899 ALIGN 32 | 901 ALIGN 32 |
900 gcm_ghash_clmul»PROC PUBLIC | 902 gcm_ghash_clmul: |
901 $L$_ghash_clmul:: | 903 $L$_ghash_clmul: |
902 » lea» rax,QWORD PTR[((-136))+rsp] | 904 » lea» rax,[((-136))+rsp] |
903 $L$SEH_begin_gcm_ghash_clmul:: | 905 $L$SEH_begin_gcm_ghash_clmul: |
904 | 906 |
905 DB» 048h,08dh,060h,0e0h | 907 DB» 0x48,0x8d,0x60,0xe0 |
906 DB» 00fh,029h,070h,0e0h | 908 DB» 0x0f,0x29,0x70,0xe0 |
907 DB» 00fh,029h,078h,0f0h | 909 DB» 0x0f,0x29,0x78,0xf0 |
908 DB» 044h,00fh,029h,000h | 910 DB» 0x44,0x0f,0x29,0x00 |
909 DB» 044h,00fh,029h,048h,010h | 911 DB» 0x44,0x0f,0x29,0x48,0x10 |
910 DB» 044h,00fh,029h,050h,020h | 912 DB» 0x44,0x0f,0x29,0x50,0x20 |
911 DB» 044h,00fh,029h,058h,030h | 913 DB» 0x44,0x0f,0x29,0x58,0x30 |
912 DB» 044h,00fh,029h,060h,040h | 914 DB» 0x44,0x0f,0x29,0x60,0x40 |
913 DB» 044h,00fh,029h,068h,050h | 915 DB» 0x44,0x0f,0x29,0x68,0x50 |
914 DB» 044h,00fh,029h,070h,060h | 916 DB» 0x44,0x0f,0x29,0x70,0x60 |
915 DB» 044h,00fh,029h,078h,070h | 917 DB» 0x44,0x0f,0x29,0x78,0x70 |
916 » movdqa» xmm10,XMMWORD PTR[$L$bswap_mask] | 918 » movdqa» xmm10,XMMWORD[$L$bswap_mask] |
917 | 919 |
918 » movdqu» xmm0,XMMWORD PTR[rcx] | 920 » movdqu» xmm0,XMMWORD[rcx] |
919 » movdqu» xmm2,XMMWORD PTR[rdx] | 921 » movdqu» xmm2,XMMWORD[rdx] |
920 » movdqu» xmm7,XMMWORD PTR[32+rdx] | 922 » movdqu» xmm7,XMMWORD[32+rdx] |
921 DB 102,65,15,56,0,194 | 923 DB 102,65,15,56,0,194 |
922 | 924 |
923 » sub» r9,010h | 925 » sub» r9,0x10 |
924 » jz» $L$odd_tail | 926 » jz» NEAR $L$odd_tail |
925 | 927 |
926 » movdqu» xmm6,XMMWORD PTR[16+rdx] | 928 » movdqu» xmm6,XMMWORD[16+rdx] |
927 » mov» eax,DWORD PTR[((OPENSSL_ia32cap_P+4))] | 929 » mov» eax,DWORD[((OPENSSL_ia32cap_P+4))] |
928 » cmp» r9,030h | 930 » cmp» r9,0x30 |
929 » jb» $L$skip4x | 931 » jb» NEAR $L$skip4x |
930 | 932 |
931 and eax,71303168 | 933 and eax,71303168 |
932 cmp eax,4194304 | 934 cmp eax,4194304 |
933 » je» $L$skip4x | 935 » je» NEAR $L$skip4x |
934 | 936 |
935 » sub» r9,030h | 937 » sub» r9,0x30 |
936 » mov» rax,0A040608020C0E000h | 938 » mov» rax,0xA040608020C0E000 |
937 » movdqu» xmm14,XMMWORD PTR[48+rdx] | 939 » movdqu» xmm14,XMMWORD[48+rdx] |
938 » movdqu» xmm15,XMMWORD PTR[64+rdx] | 940 » movdqu» xmm15,XMMWORD[64+rdx] |
939 | 941 |
940 | 942 |
941 | 943 |
942 | 944 |
943 » movdqu» xmm3,XMMWORD PTR[48+r8] | 945 » movdqu» xmm3,XMMWORD[48+r8] |
944 » movdqu» xmm11,XMMWORD PTR[32+r8] | 946 » movdqu» xmm11,XMMWORD[32+r8] |
945 DB 102,65,15,56,0,218 | 947 DB 102,65,15,56,0,218 |
946 DB 102,69,15,56,0,218 | 948 DB 102,69,15,56,0,218 |
947 movdqa xmm5,xmm3 | 949 movdqa xmm5,xmm3 |
948 pshufd xmm4,xmm3,78 | 950 pshufd xmm4,xmm3,78 |
949 pxor xmm4,xmm3 | 951 pxor xmm4,xmm3 |
950 DB 102,15,58,68,218,0 | 952 DB 102,15,58,68,218,0 |
951 DB 102,15,58,68,234,17 | 953 DB 102,15,58,68,234,17 |
952 DB 102,15,58,68,231,0 | 954 DB 102,15,58,68,231,0 |
953 | 955 |
954 movdqa xmm13,xmm11 | 956 movdqa xmm13,xmm11 |
955 pshufd xmm12,xmm11,78 | 957 pshufd xmm12,xmm11,78 |
956 pxor xmm12,xmm11 | 958 pxor xmm12,xmm11 |
957 DB 102,68,15,58,68,222,0 | 959 DB 102,68,15,58,68,222,0 |
958 DB 102,68,15,58,68,238,17 | 960 DB 102,68,15,58,68,238,17 |
959 DB 102,68,15,58,68,231,16 | 961 DB 102,68,15,58,68,231,16 |
960 xorps xmm3,xmm11 | 962 xorps xmm3,xmm11 |
961 xorps xmm5,xmm13 | 963 xorps xmm5,xmm13 |
962 » movups» xmm7,XMMWORD PTR[80+rdx] | 964 » movups» xmm7,XMMWORD[80+rdx] |
963 xorps xmm4,xmm12 | 965 xorps xmm4,xmm12 |
964 | 966 |
965 » movdqu» xmm11,XMMWORD PTR[16+r8] | 967 » movdqu» xmm11,XMMWORD[16+r8] |
966 » movdqu» xmm8,XMMWORD PTR[r8] | 968 » movdqu» xmm8,XMMWORD[r8] |
967 DB 102,69,15,56,0,218 | 969 DB 102,69,15,56,0,218 |
968 DB 102,69,15,56,0,194 | 970 DB 102,69,15,56,0,194 |
969 movdqa xmm13,xmm11 | 971 movdqa xmm13,xmm11 |
970 pshufd xmm12,xmm11,78 | 972 pshufd xmm12,xmm11,78 |
971 pxor xmm0,xmm8 | 973 pxor xmm0,xmm8 |
972 pxor xmm12,xmm11 | 974 pxor xmm12,xmm11 |
973 DB 102,69,15,58,68,222,0 | 975 DB 102,69,15,58,68,222,0 |
974 movdqa xmm1,xmm0 | 976 movdqa xmm1,xmm0 |
975 pshufd xmm8,xmm0,78 | 977 pshufd xmm8,xmm0,78 |
976 pxor xmm8,xmm0 | 978 pxor xmm8,xmm0 |
977 DB 102,69,15,58,68,238,17 | 979 DB 102,69,15,58,68,238,17 |
978 DB 102,68,15,58,68,231,0 | 980 DB 102,68,15,58,68,231,0 |
979 xorps xmm3,xmm11 | 981 xorps xmm3,xmm11 |
980 xorps xmm5,xmm13 | 982 xorps xmm5,xmm13 |
981 | 983 |
982 » lea» r8,QWORD PTR[64+r8] | 984 » lea» r8,[64+r8] |
983 » sub» r9,040h | 985 » sub» r9,0x40 |
984 » jc» $L$tail4x | 986 » jc» NEAR $L$tail4x |
985 | 987 |
986 » jmp» $L$mod4_loop | 988 » jmp» NEAR $L$mod4_loop |
987 ALIGN 32 | 989 ALIGN 32 |
988 $L$mod4_loop:: | 990 $L$mod4_loop: |
989 DB 102,65,15,58,68,199,0 | 991 DB 102,65,15,58,68,199,0 |
990 xorps xmm4,xmm12 | 992 xorps xmm4,xmm12 |
991 » movdqu» xmm11,XMMWORD PTR[48+r8] | 993 » movdqu» xmm11,XMMWORD[48+r8] |
992 DB 102,69,15,56,0,218 | 994 DB 102,69,15,56,0,218 |
993 DB 102,65,15,58,68,207,17 | 995 DB 102,65,15,58,68,207,17 |
994 xorps xmm0,xmm3 | 996 xorps xmm0,xmm3 |
995 » movdqu» xmm3,XMMWORD PTR[32+r8] | 997 » movdqu» xmm3,XMMWORD[32+r8] |
996 movdqa xmm13,xmm11 | 998 movdqa xmm13,xmm11 |
997 DB 102,68,15,58,68,199,16 | 999 DB 102,68,15,58,68,199,16 |
998 pshufd xmm12,xmm11,78 | 1000 pshufd xmm12,xmm11,78 |
999 xorps xmm1,xmm5 | 1001 xorps xmm1,xmm5 |
1000 pxor xmm12,xmm11 | 1002 pxor xmm12,xmm11 |
1001 DB 102,65,15,56,0,218 | 1003 DB 102,65,15,56,0,218 |
1002 » movups» xmm7,XMMWORD PTR[32+rdx] | 1004 » movups» xmm7,XMMWORD[32+rdx] |
1003 xorps xmm8,xmm4 | 1005 xorps xmm8,xmm4 |
1004 DB 102,68,15,58,68,218,0 | 1006 DB 102,68,15,58,68,218,0 |
1005 pshufd xmm4,xmm3,78 | 1007 pshufd xmm4,xmm3,78 |
1006 | 1008 |
1007 pxor xmm8,xmm0 | 1009 pxor xmm8,xmm0 |
1008 movdqa xmm5,xmm3 | 1010 movdqa xmm5,xmm3 |
1009 pxor xmm8,xmm1 | 1011 pxor xmm8,xmm1 |
1010 pxor xmm4,xmm3 | 1012 pxor xmm4,xmm3 |
1011 movdqa xmm9,xmm8 | 1013 movdqa xmm9,xmm8 |
1012 DB 102,68,15,58,68,234,17 | 1014 DB 102,68,15,58,68,234,17 |
1013 pslldq xmm8,8 | 1015 pslldq xmm8,8 |
1014 psrldq xmm9,8 | 1016 psrldq xmm9,8 |
1015 pxor xmm0,xmm8 | 1017 pxor xmm0,xmm8 |
1016 » movdqa» xmm8,XMMWORD PTR[$L$7_mask] | 1018 » movdqa» xmm8,XMMWORD[$L$7_mask] |
1017 pxor xmm1,xmm9 | 1019 pxor xmm1,xmm9 |
1018 DB 102,76,15,110,200 | 1020 DB 102,76,15,110,200 |
1019 | 1021 |
1020 pand xmm8,xmm0 | 1022 pand xmm8,xmm0 |
1021 DB 102,69,15,56,0,200 | 1023 DB 102,69,15,56,0,200 |
1022 pxor xmm9,xmm0 | 1024 pxor xmm9,xmm0 |
1023 DB 102,68,15,58,68,231,0 | 1025 DB 102,68,15,58,68,231,0 |
1024 psllq xmm9,57 | 1026 psllq xmm9,57 |
1025 movdqa xmm8,xmm9 | 1027 movdqa xmm8,xmm9 |
1026 pslldq xmm9,8 | 1028 pslldq xmm9,8 |
1027 DB 102,15,58,68,222,0 | 1029 DB 102,15,58,68,222,0 |
1028 psrldq xmm8,8 | 1030 psrldq xmm8,8 |
1029 pxor xmm0,xmm9 | 1031 pxor xmm0,xmm9 |
1030 pxor xmm1,xmm8 | 1032 pxor xmm1,xmm8 |
1031 » movdqu» xmm8,XMMWORD PTR[r8] | 1033 » movdqu» xmm8,XMMWORD[r8] |
1032 | 1034 |
1033 movdqa xmm9,xmm0 | 1035 movdqa xmm9,xmm0 |
1034 psrlq xmm0,1 | 1036 psrlq xmm0,1 |
1035 DB 102,15,58,68,238,17 | 1037 DB 102,15,58,68,238,17 |
1036 xorps xmm3,xmm11 | 1038 xorps xmm3,xmm11 |
1037 » movdqu» xmm11,XMMWORD PTR[16+r8] | 1039 » movdqu» xmm11,XMMWORD[16+r8] |
1038 DB 102,69,15,56,0,218 | 1040 DB 102,69,15,56,0,218 |
1039 DB 102,15,58,68,231,16 | 1041 DB 102,15,58,68,231,16 |
1040 xorps xmm5,xmm13 | 1042 xorps xmm5,xmm13 |
1041 » movups» xmm7,XMMWORD PTR[80+rdx] | 1043 » movups» xmm7,XMMWORD[80+rdx] |
1042 DB 102,69,15,56,0,194 | 1044 DB 102,69,15,56,0,194 |
1043 pxor xmm1,xmm9 | 1045 pxor xmm1,xmm9 |
1044 pxor xmm9,xmm0 | 1046 pxor xmm9,xmm0 |
1045 psrlq xmm0,5 | 1047 psrlq xmm0,5 |
1046 | 1048 |
1047 movdqa xmm13,xmm11 | 1049 movdqa xmm13,xmm11 |
1048 pxor xmm4,xmm12 | 1050 pxor xmm4,xmm12 |
1049 pshufd xmm12,xmm11,78 | 1051 pshufd xmm12,xmm11,78 |
1050 pxor xmm0,xmm9 | 1052 pxor xmm0,xmm9 |
1051 pxor xmm1,xmm8 | 1053 pxor xmm1,xmm8 |
1052 pxor xmm12,xmm11 | 1054 pxor xmm12,xmm11 |
1053 DB 102,69,15,58,68,222,0 | 1055 DB 102,69,15,58,68,222,0 |
1054 psrlq xmm0,1 | 1056 psrlq xmm0,1 |
1055 pxor xmm0,xmm1 | 1057 pxor xmm0,xmm1 |
1056 movdqa xmm1,xmm0 | 1058 movdqa xmm1,xmm0 |
1057 DB 102,69,15,58,68,238,17 | 1059 DB 102,69,15,58,68,238,17 |
1058 xorps xmm3,xmm11 | 1060 xorps xmm3,xmm11 |
1059 pshufd xmm8,xmm0,78 | 1061 pshufd xmm8,xmm0,78 |
1060 pxor xmm8,xmm0 | 1062 pxor xmm8,xmm0 |
1061 | 1063 |
1062 DB 102,68,15,58,68,231,0 | 1064 DB 102,68,15,58,68,231,0 |
1063 xorps xmm5,xmm13 | 1065 xorps xmm5,xmm13 |
1064 | 1066 |
1065 » lea» r8,QWORD PTR[64+r8] | 1067 » lea» r8,[64+r8] |
1066 » sub» r9,040h | 1068 » sub» r9,0x40 |
1067 » jnc» $L$mod4_loop | 1069 » jnc» NEAR $L$mod4_loop |
1068 | 1070 |
1069 $L$tail4x:: | 1071 $L$tail4x: |
1070 DB 102,65,15,58,68,199,0 | 1072 DB 102,65,15,58,68,199,0 |
1071 DB 102,65,15,58,68,207,17 | 1073 DB 102,65,15,58,68,207,17 |
1072 DB 102,68,15,58,68,199,16 | 1074 DB 102,68,15,58,68,199,16 |
1073 xorps xmm4,xmm12 | 1075 xorps xmm4,xmm12 |
1074 xorps xmm0,xmm3 | 1076 xorps xmm0,xmm3 |
1075 xorps xmm1,xmm5 | 1077 xorps xmm1,xmm5 |
1076 pxor xmm1,xmm0 | 1078 pxor xmm1,xmm0 |
1077 pxor xmm8,xmm4 | 1079 pxor xmm8,xmm4 |
1078 | 1080 |
1079 pxor xmm8,xmm1 | 1081 pxor xmm8,xmm1 |
(...skipping 20 matching lines...) Expand all Loading... |
1100 | 1102 |
1101 | 1103 |
1102 movdqa xmm4,xmm0 | 1104 movdqa xmm4,xmm0 |
1103 psrlq xmm0,1 | 1105 psrlq xmm0,1 |
1104 pxor xmm1,xmm4 | 1106 pxor xmm1,xmm4 |
1105 pxor xmm4,xmm0 | 1107 pxor xmm4,xmm0 |
1106 psrlq xmm0,5 | 1108 psrlq xmm0,5 |
1107 pxor xmm0,xmm4 | 1109 pxor xmm0,xmm4 |
1108 psrlq xmm0,1 | 1110 psrlq xmm0,1 |
1109 pxor xmm0,xmm1 | 1111 pxor xmm0,xmm1 |
1110 » add» r9,040h | 1112 » add» r9,0x40 |
1111 » jz» $L$done | 1113 » jz» NEAR $L$done |
1112 » movdqu» xmm7,XMMWORD PTR[32+rdx] | 1114 » movdqu» xmm7,XMMWORD[32+rdx] |
1113 » sub» r9,010h | 1115 » sub» r9,0x10 |
1114 » jz» $L$odd_tail | 1116 » jz» NEAR $L$odd_tail |
1115 $L$skip4x:: | 1117 $L$skip4x: |
1116 | 1118 |
1117 | 1119 |
1118 | 1120 |
1119 | 1121 |
1120 | 1122 |
1121 » movdqu» xmm8,XMMWORD PTR[r8] | 1123 » movdqu» xmm8,XMMWORD[r8] |
1122 » movdqu» xmm3,XMMWORD PTR[16+r8] | 1124 » movdqu» xmm3,XMMWORD[16+r8] |
1123 DB 102,69,15,56,0,194 | 1125 DB 102,69,15,56,0,194 |
1124 DB 102,65,15,56,0,218 | 1126 DB 102,65,15,56,0,218 |
1125 pxor xmm0,xmm8 | 1127 pxor xmm0,xmm8 |
1126 | 1128 |
1127 movdqa xmm5,xmm3 | 1129 movdqa xmm5,xmm3 |
1128 pshufd xmm4,xmm3,78 | 1130 pshufd xmm4,xmm3,78 |
1129 pxor xmm4,xmm3 | 1131 pxor xmm4,xmm3 |
1130 DB 102,15,58,68,218,0 | 1132 DB 102,15,58,68,218,0 |
1131 DB 102,15,58,68,234,17 | 1133 DB 102,15,58,68,234,17 |
1132 DB 102,15,58,68,231,0 | 1134 DB 102,15,58,68,231,0 |
1133 | 1135 |
1134 » lea» r8,QWORD PTR[32+r8] | 1136 » lea» r8,[32+r8] |
1135 nop | 1137 nop |
1136 » sub» r9,020h | 1138 » sub» r9,0x20 |
1137 » jbe» $L$even_tail | 1139 » jbe» NEAR $L$even_tail |
1138 nop | 1140 nop |
1139 » jmp» $L$mod_loop | 1141 » jmp» NEAR $L$mod_loop |
1140 | 1142 |
1141 ALIGN 32 | 1143 ALIGN 32 |
1142 $L$mod_loop:: | 1144 $L$mod_loop: |
1143 movdqa xmm1,xmm0 | 1145 movdqa xmm1,xmm0 |
1144 movdqa xmm8,xmm4 | 1146 movdqa xmm8,xmm4 |
1145 pshufd xmm4,xmm0,78 | 1147 pshufd xmm4,xmm0,78 |
1146 pxor xmm4,xmm0 | 1148 pxor xmm4,xmm0 |
1147 | 1149 |
1148 DB 102,15,58,68,198,0 | 1150 DB 102,15,58,68,198,0 |
1149 DB 102,15,58,68,206,17 | 1151 DB 102,15,58,68,206,17 |
1150 DB 102,15,58,68,231,16 | 1152 DB 102,15,58,68,231,16 |
1151 | 1153 |
1152 pxor xmm0,xmm3 | 1154 pxor xmm0,xmm3 |
1153 pxor xmm1,xmm5 | 1155 pxor xmm1,xmm5 |
1154 » movdqu» xmm9,XMMWORD PTR[r8] | 1156 » movdqu» xmm9,XMMWORD[r8] |
1155 pxor xmm8,xmm0 | 1157 pxor xmm8,xmm0 |
1156 DB 102,69,15,56,0,202 | 1158 DB 102,69,15,56,0,202 |
1157 » movdqu» xmm3,XMMWORD PTR[16+r8] | 1159 » movdqu» xmm3,XMMWORD[16+r8] |
1158 | 1160 |
1159 pxor xmm8,xmm1 | 1161 pxor xmm8,xmm1 |
1160 pxor xmm1,xmm9 | 1162 pxor xmm1,xmm9 |
1161 pxor xmm4,xmm8 | 1163 pxor xmm4,xmm8 |
1162 DB 102,65,15,56,0,218 | 1164 DB 102,65,15,56,0,218 |
1163 movdqa xmm8,xmm4 | 1165 movdqa xmm8,xmm4 |
1164 psrldq xmm8,8 | 1166 psrldq xmm8,8 |
1165 pslldq xmm4,8 | 1167 pslldq xmm4,8 |
1166 pxor xmm1,xmm8 | 1168 pxor xmm1,xmm8 |
1167 pxor xmm0,xmm4 | 1169 pxor xmm0,xmm4 |
(...skipping 16 matching lines...) Expand all Loading... |
1184 pxor xmm1,xmm8 | 1186 pxor xmm1,xmm8 |
1185 pxor xmm4,xmm5 | 1187 pxor xmm4,xmm5 |
1186 | 1188 |
1187 movdqa xmm9,xmm0 | 1189 movdqa xmm9,xmm0 |
1188 psrlq xmm0,1 | 1190 psrlq xmm0,1 |
1189 DB 102,15,58,68,234,17 | 1191 DB 102,15,58,68,234,17 |
1190 pxor xmm1,xmm9 | 1192 pxor xmm1,xmm9 |
1191 pxor xmm9,xmm0 | 1193 pxor xmm9,xmm0 |
1192 psrlq xmm0,5 | 1194 psrlq xmm0,5 |
1193 pxor xmm0,xmm9 | 1195 pxor xmm0,xmm9 |
1194 » lea» r8,QWORD PTR[32+r8] | 1196 » lea» r8,[32+r8] |
1195 psrlq xmm0,1 | 1197 psrlq xmm0,1 |
1196 DB 102,15,58,68,231,0 | 1198 DB 102,15,58,68,231,0 |
1197 pxor xmm0,xmm1 | 1199 pxor xmm0,xmm1 |
1198 | 1200 |
1199 » sub» r9,020h | 1201 » sub» r9,0x20 |
1200 » ja» $L$mod_loop | 1202 » ja» NEAR $L$mod_loop |
1201 | 1203 |
1202 $L$even_tail:: | 1204 $L$even_tail: |
1203 movdqa xmm1,xmm0 | 1205 movdqa xmm1,xmm0 |
1204 movdqa xmm8,xmm4 | 1206 movdqa xmm8,xmm4 |
1205 pshufd xmm4,xmm0,78 | 1207 pshufd xmm4,xmm0,78 |
1206 pxor xmm4,xmm0 | 1208 pxor xmm4,xmm0 |
1207 | 1209 |
1208 DB 102,15,58,68,198,0 | 1210 DB 102,15,58,68,198,0 |
1209 DB 102,15,58,68,206,17 | 1211 DB 102,15,58,68,206,17 |
1210 DB 102,15,58,68,231,16 | 1212 DB 102,15,58,68,231,16 |
1211 | 1213 |
1212 pxor xmm0,xmm3 | 1214 pxor xmm0,xmm3 |
(...skipping 23 matching lines...) Expand all Loading... |
1236 | 1238 |
1237 movdqa xmm4,xmm0 | 1239 movdqa xmm4,xmm0 |
1238 psrlq xmm0,1 | 1240 psrlq xmm0,1 |
1239 pxor xmm1,xmm4 | 1241 pxor xmm1,xmm4 |
1240 pxor xmm4,xmm0 | 1242 pxor xmm4,xmm0 |
1241 psrlq xmm0,5 | 1243 psrlq xmm0,5 |
1242 pxor xmm0,xmm4 | 1244 pxor xmm0,xmm4 |
1243 psrlq xmm0,1 | 1245 psrlq xmm0,1 |
1244 pxor xmm0,xmm1 | 1246 pxor xmm0,xmm1 |
1245 test r9,r9 | 1247 test r9,r9 |
1246 » jnz» $L$done | 1248 » jnz» NEAR $L$done |
1247 | 1249 |
1248 $L$odd_tail:: | 1250 $L$odd_tail: |
1249 » movdqu» xmm8,XMMWORD PTR[r8] | 1251 » movdqu» xmm8,XMMWORD[r8] |
1250 DB 102,69,15,56,0,194 | 1252 DB 102,69,15,56,0,194 |
1251 pxor xmm0,xmm8 | 1253 pxor xmm0,xmm8 |
1252 movdqa xmm1,xmm0 | 1254 movdqa xmm1,xmm0 |
1253 pshufd xmm3,xmm0,78 | 1255 pshufd xmm3,xmm0,78 |
1254 pxor xmm3,xmm0 | 1256 pxor xmm3,xmm0 |
1255 DB 102,15,58,68,194,0 | 1257 DB 102,15,58,68,194,0 |
1256 DB 102,15,58,68,202,17 | 1258 DB 102,15,58,68,202,17 |
1257 DB 102,15,58,68,223,0 | 1259 DB 102,15,58,68,223,0 |
1258 pxor xmm3,xmm0 | 1260 pxor xmm3,xmm0 |
1259 pxor xmm3,xmm1 | 1261 pxor xmm3,xmm1 |
(...skipping 19 matching lines...) Expand all Loading... |
1279 | 1281 |
1280 | 1282 |
1281 movdqa xmm4,xmm0 | 1283 movdqa xmm4,xmm0 |
1282 psrlq xmm0,1 | 1284 psrlq xmm0,1 |
1283 pxor xmm1,xmm4 | 1285 pxor xmm1,xmm4 |
1284 pxor xmm4,xmm0 | 1286 pxor xmm4,xmm0 |
1285 psrlq xmm0,5 | 1287 psrlq xmm0,5 |
1286 pxor xmm0,xmm4 | 1288 pxor xmm0,xmm4 |
1287 psrlq xmm0,1 | 1289 psrlq xmm0,1 |
1288 pxor xmm0,xmm1 | 1290 pxor xmm0,xmm1 |
1289 $L$done:: | 1291 $L$done: |
1290 DB 102,65,15,56,0,194 | 1292 DB 102,65,15,56,0,194 |
1291 » movdqu» XMMWORD PTR[rcx],xmm0 | 1293 » movdqu» XMMWORD[rcx],xmm0 |
1292 » movaps» xmm6,XMMWORD PTR[rsp] | 1294 » movaps» xmm6,XMMWORD[rsp] |
1293 » movaps» xmm7,XMMWORD PTR[16+rsp] | 1295 » movaps» xmm7,XMMWORD[16+rsp] |
1294 » movaps» xmm8,XMMWORD PTR[32+rsp] | 1296 » movaps» xmm8,XMMWORD[32+rsp] |
1295 » movaps» xmm9,XMMWORD PTR[48+rsp] | 1297 » movaps» xmm9,XMMWORD[48+rsp] |
1296 » movaps» xmm10,XMMWORD PTR[64+rsp] | 1298 » movaps» xmm10,XMMWORD[64+rsp] |
1297 » movaps» xmm11,XMMWORD PTR[80+rsp] | 1299 » movaps» xmm11,XMMWORD[80+rsp] |
1298 » movaps» xmm12,XMMWORD PTR[96+rsp] | 1300 » movaps» xmm12,XMMWORD[96+rsp] |
1299 » movaps» xmm13,XMMWORD PTR[112+rsp] | 1301 » movaps» xmm13,XMMWORD[112+rsp] |
1300 » movaps» xmm14,XMMWORD PTR[128+rsp] | 1302 » movaps» xmm14,XMMWORD[128+rsp] |
1301 » movaps» xmm15,XMMWORD PTR[144+rsp] | 1303 » movaps» xmm15,XMMWORD[144+rsp] |
1302 » lea» rsp,QWORD PTR[168+rsp] | 1304 » lea» rsp,[168+rsp] |
1303 $L$SEH_end_gcm_ghash_clmul:: | 1305 $L$SEH_end_gcm_ghash_clmul: |
1304 DB 0F3h,0C3h ;repret | 1306 DB 0F3h,0C3h ;repret |
1305 gcm_ghash_clmul»ENDP | 1307 |
1306 PUBLIC» gcm_init_avx | 1308 global» gcm_init_avx |
1307 | 1309 |
1308 ALIGN 32 | 1310 ALIGN 32 |
1309 gcm_init_avx» PROC PUBLIC | 1311 gcm_init_avx: |
1310 » jmp» $L$_init_clmul | 1312 » jmp» NEAR $L$_init_clmul |
1311 gcm_init_avx» ENDP | 1313 |
1312 PUBLIC» gcm_gmult_avx | 1314 global» gcm_gmult_avx |
1313 | 1315 |
1314 ALIGN 32 | 1316 ALIGN 32 |
1315 gcm_gmult_avx» PROC PUBLIC | 1317 gcm_gmult_avx: |
1316 » jmp» $L$_gmult_clmul | 1318 » jmp» NEAR $L$_gmult_clmul |
1317 gcm_gmult_avx» ENDP | 1319 |
1318 PUBLIC» gcm_ghash_avx | 1320 global» gcm_ghash_avx |
1319 | 1321 |
1320 ALIGN 32 | 1322 ALIGN 32 |
1321 gcm_ghash_avx» PROC PUBLIC | 1323 gcm_ghash_avx: |
1322 » jmp» $L$_ghash_clmul | 1324 » jmp» NEAR $L$_ghash_clmul |
1323 gcm_ghash_avx» ENDP | 1325 |
1324 ALIGN 64 | 1326 ALIGN 64 |
1325 $L$bswap_mask:: | 1327 $L$bswap_mask: |
1326 DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 | 1328 DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 |
1327 $L$0x1c2_polynomial:: | 1329 $L$0x1c2_polynomial: |
1328 DB» 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0c2h | 1330 DB» 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2 |
1329 $L$7_mask:: | 1331 $L$7_mask: |
1330 DD 7,0,7,0 | 1332 DD 7,0,7,0 |
1331 $L$7_mask_poly:: | 1333 $L$7_mask_poly: |
1332 DD 7,0,450,0 | 1334 DD 7,0,450,0 |
1333 ALIGN 64 | 1335 ALIGN 64 |
1334 | 1336 |
1335 $L$rem_4bit:: | 1337 $L$rem_4bit: |
1336 DD 0,0,0,471859200,0,943718400,0,610271232 | 1338 DD 0,0,0,471859200,0,943718400,0,610271232 |
1337 DD 0,1887436800,0,1822425088,0,1220542464,0,1423966208 | 1339 DD 0,1887436800,0,1822425088,0,1220542464,0,1423966208 |
1338 DD 0,3774873600,0,4246732800,0,3644850176,0,3311403008 | 1340 DD 0,3774873600,0,4246732800,0,3644850176,0,3311403008 |
1339 DD 0,2441084928,0,2376073216,0,2847932416,0,3051356160 | 1341 DD 0,2441084928,0,2376073216,0,2847932416,0,3051356160 |
1340 | 1342 |
1341 $L$rem_8bit:: | 1343 $L$rem_8bit: |
1342 » DW» 00000h,001C2h,00384h,00246h,00708h,006CAh,0048Ch,0054Eh | 1344 » DW» 0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E |
1343 » DW» 00E10h,00FD2h,00D94h,00C56h,00918h,008DAh,00A9Ch,00B5Eh | 1345 » DW» 0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E |
1344 » DW» 01C20h,01DE2h,01FA4h,01E66h,01B28h,01AEAh,018ACh,0196Eh | 1346 » DW» 0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E |
1345 » DW» 01230h,013F2h,011B4h,01076h,01538h,014FAh,016BCh,0177Eh | 1347 » DW» 0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E |
1346 » DW» 03840h,03982h,03BC4h,03A06h,03F48h,03E8Ah,03CCCh,03D0Eh | 1348 » DW» 0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E |
1347 » DW» 03650h,03792h,035D4h,03416h,03158h,0309Ah,032DCh,0331Eh | 1349 » DW» 0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E |
1348 » DW» 02460h,025A2h,027E4h,02626h,02368h,022AAh,020ECh,0212Eh | 1350 » DW» 0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E |
1349 » DW» 02A70h,02BB2h,029F4h,02836h,02D78h,02CBAh,02EFCh,02F3Eh | 1351 » DW» 0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E |
1350 » DW» 07080h,07142h,07304h,072C6h,07788h,0764Ah,0740Ch,075CEh | 1352 » DW» 0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE |
1351 » DW» 07E90h,07F52h,07D14h,07CD6h,07998h,0785Ah,07A1Ch,07BDEh | 1353 » DW» 0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE |
1352 » DW» 06CA0h,06D62h,06F24h,06EE6h,06BA8h,06A6Ah,0682Ch,069EEh | 1354 » DW» 0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE |
1353 » DW» 062B0h,06372h,06134h,060F6h,065B8h,0647Ah,0663Ch,067FEh | 1355 » DW» 0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE |
1354 » DW» 048C0h,04902h,04B44h,04A86h,04FC8h,04E0Ah,04C4Ch,04D8Eh | 1356 » DW» 0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E |
1355 » DW» 046D0h,04712h,04554h,04496h,041D8h,0401Ah,0425Ch,0439Eh | 1357 » DW» 0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E |
1356 » DW» 054E0h,05522h,05764h,056A6h,053E8h,0522Ah,0506Ch,051AEh | 1358 » DW» 0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE |
1357 » DW» 05AF0h,05B32h,05974h,058B6h,05DF8h,05C3Ah,05E7Ch,05FBEh | 1359 » DW» 0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE |
1358 » DW» 0E100h,0E0C2h,0E284h,0E346h,0E608h,0E7CAh,0E58Ch,0E44Eh | 1360 » DW» 0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E |
1359 » DW» 0EF10h,0EED2h,0EC94h,0ED56h,0E818h,0E9DAh,0EB9Ch,0EA5Eh | 1361 » DW» 0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E |
1360 » DW» 0FD20h,0FCE2h,0FEA4h,0FF66h,0FA28h,0FBEAh,0F9ACh,0F86Eh | 1362 » DW» 0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E |
1361 » DW» 0F330h,0F2F2h,0F0B4h,0F176h,0F438h,0F5FAh,0F7BCh,0F67Eh | 1363 » DW» 0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E |
1362 » DW» 0D940h,0D882h,0DAC4h,0DB06h,0DE48h,0DF8Ah,0DDCCh,0DC0Eh | 1364 » DW» 0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E |
1363 » DW» 0D750h,0D692h,0D4D4h,0D516h,0D058h,0D19Ah,0D3DCh,0D21Eh | 1365 » DW» 0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E |
1364 » DW» 0C560h,0C4A2h,0C6E4h,0C726h,0C268h,0C3AAh,0C1ECh,0C02Eh | 1366 » DW» 0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E |
1365 » DW» 0CB70h,0CAB2h,0C8F4h,0C936h,0CC78h,0CDBAh,0CFFCh,0CE3Eh | 1367 » DW» 0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E |
1366 » DW» 09180h,09042h,09204h,093C6h,09688h,0974Ah,0950Ch,094CEh | 1368 » DW» 0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE |
1367 » DW» 09F90h,09E52h,09C14h,09DD6h,09898h,0995Ah,09B1Ch,09ADEh | 1369 » DW» 0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE |
1368 » DW» 08DA0h,08C62h,08E24h,08FE6h,08AA8h,08B6Ah,0892Ch,088EEh | 1370 » DW» 0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE |
1369 » DW» 083B0h,08272h,08034h,081F6h,084B8h,0857Ah,0873Ch,086FEh | 1371 » DW» 0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE |
1370 » DW» 0A9C0h,0A802h,0AA44h,0AB86h,0AEC8h,0AF0Ah,0AD4Ch,0AC8Eh | 1372 » DW» 0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E |
1371 » DW» 0A7D0h,0A612h,0A454h,0A596h,0A0D8h,0A11Ah,0A35Ch,0A29Eh | 1373 » DW» 0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E |
1372 » DW» 0B5E0h,0B422h,0B664h,0B7A6h,0B2E8h,0B32Ah,0B16Ch,0B0AEh | 1374 » DW» 0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE |
1373 » DW» 0BBF0h,0BA32h,0B874h,0B9B6h,0BCF8h,0BD3Ah,0BF7Ch,0BEBEh | 1375 » DW» 0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE |
1374 | 1376 |
1375 DB 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52 | 1377 DB 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52 |
1376 DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32 | 1378 DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32 |
1377 DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 | 1379 DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 |
1378 DB 114,103,62,0 | 1380 DB 114,103,62,0 |
1379 ALIGN 64 | 1381 ALIGN 64 |
1380 EXTERN» __imp_RtlVirtualUnwind:NEAR | 1382 EXTERN» __imp_RtlVirtualUnwind |
1381 | 1383 |
1382 ALIGN 16 | 1384 ALIGN 16 |
1383 se_handler» PROC PRIVATE | 1385 se_handler: |
1384 push rsi | 1386 push rsi |
1385 push rdi | 1387 push rdi |
1386 push rbx | 1388 push rbx |
1387 push rbp | 1389 push rbp |
1388 push r12 | 1390 push r12 |
1389 push r13 | 1391 push r13 |
1390 push r14 | 1392 push r14 |
1391 push r15 | 1393 push r15 |
1392 pushfq | 1394 pushfq |
1393 sub rsp,64 | 1395 sub rsp,64 |
1394 | 1396 |
1395 » mov» rax,QWORD PTR[120+r8] | 1397 » mov» rax,QWORD[120+r8] |
1396 » mov» rbx,QWORD PTR[248+r8] | 1398 » mov» rbx,QWORD[248+r8] |
1397 | 1399 |
1398 » mov» rsi,QWORD PTR[8+r9] | 1400 » mov» rsi,QWORD[8+r9] |
1399 » mov» r11,QWORD PTR[56+r9] | 1401 » mov» r11,QWORD[56+r9] |
1400 | 1402 |
1401 » mov» r10d,DWORD PTR[r11] | 1403 » mov» r10d,DWORD[r11] |
1402 » lea» r10,QWORD PTR[r10*1+rsi] | 1404 » lea» r10,[r10*1+rsi] |
1403 cmp rbx,r10 | 1405 cmp rbx,r10 |
1404 » jb» $L$in_prologue | 1406 » jb» NEAR $L$in_prologue |
1405 | 1407 |
1406 » mov» rax,QWORD PTR[152+r8] | 1408 » mov» rax,QWORD[152+r8] |
1407 | 1409 |
1408 » mov» r10d,DWORD PTR[4+r11] | 1410 » mov» r10d,DWORD[4+r11] |
1409 » lea» r10,QWORD PTR[r10*1+rsi] | 1411 » lea» r10,[r10*1+rsi] |
1410 cmp rbx,r10 | 1412 cmp rbx,r10 |
1411 » jae» $L$in_prologue | 1413 » jae» NEAR $L$in_prologue |
1412 | 1414 |
1413 » lea» rax,QWORD PTR[24+rax] | 1415 » lea» rax,[24+rax] |
1414 | 1416 |
1415 » mov» rbx,QWORD PTR[((-8))+rax] | 1417 » mov» rbx,QWORD[((-8))+rax] |
1416 » mov» rbp,QWORD PTR[((-16))+rax] | 1418 » mov» rbp,QWORD[((-16))+rax] |
1417 » mov» r12,QWORD PTR[((-24))+rax] | 1419 » mov» r12,QWORD[((-24))+rax] |
1418 » mov» QWORD PTR[144+r8],rbx | 1420 » mov» QWORD[144+r8],rbx |
1419 » mov» QWORD PTR[160+r8],rbp | 1421 » mov» QWORD[160+r8],rbp |
1420 » mov» QWORD PTR[216+r8],r12 | 1422 » mov» QWORD[216+r8],r12 |
1421 | 1423 |
1422 $L$in_prologue:: | 1424 $L$in_prologue: |
1423 » mov» rdi,QWORD PTR[8+rax] | 1425 » mov» rdi,QWORD[8+rax] |
1424 » mov» rsi,QWORD PTR[16+rax] | 1426 » mov» rsi,QWORD[16+rax] |
1425 » mov» QWORD PTR[152+r8],rax | 1427 » mov» QWORD[152+r8],rax |
1426 » mov» QWORD PTR[168+r8],rsi | 1428 » mov» QWORD[168+r8],rsi |
1427 » mov» QWORD PTR[176+r8],rdi | 1429 » mov» QWORD[176+r8],rdi |
1428 | 1430 |
1429 » mov» rdi,QWORD PTR[40+r9] | 1431 » mov» rdi,QWORD[40+r9] |
1430 mov rsi,r8 | 1432 mov rsi,r8 |
1431 mov ecx,154 | 1433 mov ecx,154 |
1432 » DD» 0a548f3fch | 1434 » DD» 0xa548f3fc |
1433 | 1435 |
1434 mov rsi,r9 | 1436 mov rsi,r9 |
1435 xor rcx,rcx | 1437 xor rcx,rcx |
1436 » mov» rdx,QWORD PTR[8+rsi] | 1438 » mov» rdx,QWORD[8+rsi] |
1437 » mov» r8,QWORD PTR[rsi] | 1439 » mov» r8,QWORD[rsi] |
1438 » mov» r9,QWORD PTR[16+rsi] | 1440 » mov» r9,QWORD[16+rsi] |
1439 » mov» r10,QWORD PTR[40+rsi] | 1441 » mov» r10,QWORD[40+rsi] |
1440 » lea» r11,QWORD PTR[56+rsi] | 1442 » lea» r11,[56+rsi] |
1441 » lea» r12,QWORD PTR[24+rsi] | 1443 » lea» r12,[24+rsi] |
1442 » mov» QWORD PTR[32+rsp],r10 | 1444 » mov» QWORD[32+rsp],r10 |
1443 » mov» QWORD PTR[40+rsp],r11 | 1445 » mov» QWORD[40+rsp],r11 |
1444 » mov» QWORD PTR[48+rsp],r12 | 1446 » mov» QWORD[48+rsp],r12 |
1445 » mov» QWORD PTR[56+rsp],rcx | 1447 » mov» QWORD[56+rsp],rcx |
1446 » call» QWORD PTR[__imp_RtlVirtualUnwind] | 1448 » call» QWORD[__imp_RtlVirtualUnwind] |
1447 | 1449 |
1448 mov eax,1 | 1450 mov eax,1 |
1449 add rsp,64 | 1451 add rsp,64 |
1450 popfq | 1452 popfq |
1451 pop r15 | 1453 pop r15 |
1452 pop r14 | 1454 pop r14 |
1453 pop r13 | 1455 pop r13 |
1454 pop r12 | 1456 pop r12 |
1455 pop rbp | 1457 pop rbp |
1456 pop rbx | 1458 pop rbx |
1457 pop rdi | 1459 pop rdi |
1458 pop rsi | 1460 pop rsi |
1459 DB 0F3h,0C3h ;repret | 1461 DB 0F3h,0C3h ;repret |
1460 se_handler ENDP | |
1461 | 1462 |
1462 .text$» ENDS | 1463 |
1463 .pdata» SEGMENT READONLY ALIGN(4) | 1464 section».pdata rdata align=4 |
1464 ALIGN 4 | 1465 ALIGN 4 |
1465 » DD» imagerel $L$SEH_begin_gcm_gmult_4bit | 1466 » DD» $L$SEH_begin_gcm_gmult_4bit wrt ..imagebase |
1466 » DD» imagerel $L$SEH_end_gcm_gmult_4bit | 1467 » DD» $L$SEH_end_gcm_gmult_4bit wrt ..imagebase |
1467 » DD» imagerel $L$SEH_info_gcm_gmult_4bit | 1468 » DD» $L$SEH_info_gcm_gmult_4bit wrt ..imagebase |
1468 | 1469 |
1469 » DD» imagerel $L$SEH_begin_gcm_ghash_4bit | 1470 » DD» $L$SEH_begin_gcm_ghash_4bit wrt ..imagebase |
1470 » DD» imagerel $L$SEH_end_gcm_ghash_4bit | 1471 » DD» $L$SEH_end_gcm_ghash_4bit wrt ..imagebase |
1471 » DD» imagerel $L$SEH_info_gcm_ghash_4bit | 1472 » DD» $L$SEH_info_gcm_ghash_4bit wrt ..imagebase |
1472 | 1473 |
1473 » DD» imagerel $L$SEH_begin_gcm_init_clmul | 1474 » DD» $L$SEH_begin_gcm_init_clmul wrt ..imagebase |
1474 » DD» imagerel $L$SEH_end_gcm_init_clmul | 1475 » DD» $L$SEH_end_gcm_init_clmul wrt ..imagebase |
1475 » DD» imagerel $L$SEH_info_gcm_init_clmul | 1476 » DD» $L$SEH_info_gcm_init_clmul wrt ..imagebase |
1476 | 1477 |
1477 » DD» imagerel $L$SEH_begin_gcm_ghash_clmul | 1478 » DD» $L$SEH_begin_gcm_ghash_clmul wrt ..imagebase |
1478 » DD» imagerel $L$SEH_end_gcm_ghash_clmul | 1479 » DD» $L$SEH_end_gcm_ghash_clmul wrt ..imagebase |
1479 » DD» imagerel $L$SEH_info_gcm_ghash_clmul | 1480 » DD» $L$SEH_info_gcm_ghash_clmul wrt ..imagebase |
1480 .pdata» ENDS | 1481 section».xdata rdata align=8 |
1481 .xdata» SEGMENT READONLY ALIGN(8) | |
1482 ALIGN 8 | 1482 ALIGN 8 |
1483 $L$SEH_info_gcm_gmult_4bit:: | 1483 $L$SEH_info_gcm_gmult_4bit: |
1484 DB 9,0,0,0 | 1484 DB 9,0,0,0 |
1485 » DD» imagerel se_handler | 1485 » DD» se_handler wrt ..imagebase |
1486 » DD» imagerel $L$gmult_prologue,imagerel $L$gmult_epilogue | 1486 » DD» $L$gmult_prologue wrt ..imagebase,$L$gmult_epilogue wrt ..imageb
ase |
1487 $L$SEH_info_gcm_ghash_4bit:: | 1487 $L$SEH_info_gcm_ghash_4bit: |
1488 DB 9,0,0,0 | 1488 DB 9,0,0,0 |
1489 » DD» imagerel se_handler | 1489 » DD» se_handler wrt ..imagebase |
1490 » DD» imagerel $L$ghash_prologue,imagerel $L$ghash_epilogue | 1490 » DD» $L$ghash_prologue wrt ..imagebase,$L$ghash_epilogue wrt ..imageb
ase |
1491 $L$SEH_info_gcm_init_clmul:: | 1491 $L$SEH_info_gcm_init_clmul: |
1492 DB» 001h,008h,003h,000h | 1492 DB» 0x01,0x08,0x03,0x00 |
1493 DB» 008h,068h,000h,000h | 1493 DB» 0x08,0x68,0x00,0x00 |
1494 DB» 004h,022h,000h,000h | 1494 DB» 0x04,0x22,0x00,0x00 |
1495 $L$SEH_info_gcm_ghash_clmul:: | 1495 $L$SEH_info_gcm_ghash_clmul: |
1496 DB» 001h,033h,016h,000h | 1496 DB» 0x01,0x33,0x16,0x00 |
1497 DB» 033h,0f8h,009h,000h | 1497 DB» 0x33,0xf8,0x09,0x00 |
1498 DB» 02eh,0e8h,008h,000h | 1498 DB» 0x2e,0xe8,0x08,0x00 |
1499 DB» 029h,0d8h,007h,000h | 1499 DB» 0x29,0xd8,0x07,0x00 |
1500 DB» 024h,0c8h,006h,000h | 1500 DB» 0x24,0xc8,0x06,0x00 |
1501 DB» 01fh,0b8h,005h,000h | 1501 DB» 0x1f,0xb8,0x05,0x00 |
1502 DB» 01ah,0a8h,004h,000h | 1502 DB» 0x1a,0xa8,0x04,0x00 |
1503 DB» 015h,098h,003h,000h | 1503 DB» 0x15,0x98,0x03,0x00 |
1504 DB» 010h,088h,002h,000h | 1504 DB» 0x10,0x88,0x02,0x00 |
1505 DB» 00ch,078h,001h,000h | 1505 DB» 0x0c,0x78,0x01,0x00 |
1506 DB» 008h,068h,000h,000h | 1506 DB» 0x08,0x68,0x00,0x00 |
1507 DB» 004h,001h,015h,000h | 1507 DB» 0x04,0x01,0x15,0x00 |
1508 | |
1509 .xdata» ENDS | |
1510 END | |
OLD | NEW |