OLD | NEW |
1 OPTION» DOTNAME | 1 default»rel |
2 .text$» SEGMENT ALIGN(256) 'CODE' | 2 %define XMMWORD |
| 3 %define YMMWORD |
| 4 %define ZMMWORD |
| 5 section».text code align=64 |
3 | 6 |
4 | 7 |
5 | 8 |
| 9 |
6 | 10 |
7 | 11 |
8 | 12 |
9 | 13 |
10 | 14 |
11 | 15 |
12 | 16 |
13 | 17 |
14 | 18 |
15 | 19 |
16 | 20 |
17 | 21 |
18 | 22 |
19 | 23 |
20 ALIGN 16 | 24 ALIGN 16 |
21 _vpaes_encrypt_core» PROC PRIVATE | 25 _vpaes_encrypt_core: |
22 mov r9,rdx | 26 mov r9,rdx |
23 mov r11,16 | 27 mov r11,16 |
24 » mov» eax,DWORD PTR[240+rdx] | 28 » mov» eax,DWORD[240+rdx] |
25 movdqa xmm1,xmm9 | 29 movdqa xmm1,xmm9 |
26 » movdqa» xmm2,XMMWORD PTR[$L$k_ipt] | 30 » movdqa» xmm2,XMMWORD[$L$k_ipt] |
27 pandn xmm1,xmm0 | 31 pandn xmm1,xmm0 |
28 » movdqu» xmm5,XMMWORD PTR[r9] | 32 » movdqu» xmm5,XMMWORD[r9] |
29 psrld xmm1,4 | 33 psrld xmm1,4 |
30 pand xmm0,xmm9 | 34 pand xmm0,xmm9 |
31 DB 102,15,56,0,208 | 35 DB 102,15,56,0,208 |
32 » movdqa» xmm0,XMMWORD PTR[(($L$k_ipt+16))] | 36 » movdqa» xmm0,XMMWORD[(($L$k_ipt+16))] |
33 DB 102,15,56,0,193 | 37 DB 102,15,56,0,193 |
34 pxor xmm2,xmm5 | 38 pxor xmm2,xmm5 |
35 add r9,16 | 39 add r9,16 |
36 pxor xmm0,xmm2 | 40 pxor xmm0,xmm2 |
37 » lea» r10,QWORD PTR[$L$k_mc_backward] | 41 » lea» r10,[$L$k_mc_backward] |
38 » jmp» $L$enc_entry | 42 » jmp» NEAR $L$enc_entry |
39 | 43 |
40 ALIGN 16 | 44 ALIGN 16 |
41 $L$enc_loop:: | 45 $L$enc_loop: |
42 | 46 |
43 movdqa xmm4,xmm13 | 47 movdqa xmm4,xmm13 |
44 movdqa xmm0,xmm12 | 48 movdqa xmm0,xmm12 |
45 DB 102,15,56,0,226 | 49 DB 102,15,56,0,226 |
46 DB 102,15,56,0,195 | 50 DB 102,15,56,0,195 |
47 pxor xmm4,xmm5 | 51 pxor xmm4,xmm5 |
48 movdqa xmm5,xmm15 | 52 movdqa xmm5,xmm15 |
49 pxor xmm0,xmm4 | 53 pxor xmm0,xmm4 |
50 » movdqa» xmm1,XMMWORD PTR[((-64))+r10*1+r11] | 54 » movdqa» xmm1,XMMWORD[((-64))+r10*1+r11] |
51 DB 102,15,56,0,234 | 55 DB 102,15,56,0,234 |
52 » movdqa» xmm4,XMMWORD PTR[r10*1+r11] | 56 » movdqa» xmm4,XMMWORD[r10*1+r11] |
53 movdqa xmm2,xmm14 | 57 movdqa xmm2,xmm14 |
54 DB 102,15,56,0,211 | 58 DB 102,15,56,0,211 |
55 movdqa xmm3,xmm0 | 59 movdqa xmm3,xmm0 |
56 pxor xmm2,xmm5 | 60 pxor xmm2,xmm5 |
57 DB 102,15,56,0,193 | 61 DB 102,15,56,0,193 |
58 add r9,16 | 62 add r9,16 |
59 pxor xmm0,xmm2 | 63 pxor xmm0,xmm2 |
60 DB 102,15,56,0,220 | 64 DB 102,15,56,0,220 |
61 add r11,16 | 65 add r11,16 |
62 pxor xmm3,xmm0 | 66 pxor xmm3,xmm0 |
63 DB 102,15,56,0,193 | 67 DB 102,15,56,0,193 |
64 » and» r11,030h | 68 » and» r11,0x30 |
65 sub rax,1 | 69 sub rax,1 |
66 pxor xmm0,xmm3 | 70 pxor xmm0,xmm3 |
67 | 71 |
68 $L$enc_entry:: | 72 $L$enc_entry: |
69 | 73 |
70 movdqa xmm1,xmm9 | 74 movdqa xmm1,xmm9 |
71 movdqa xmm5,xmm11 | 75 movdqa xmm5,xmm11 |
72 pandn xmm1,xmm0 | 76 pandn xmm1,xmm0 |
73 psrld xmm1,4 | 77 psrld xmm1,4 |
74 pand xmm0,xmm9 | 78 pand xmm0,xmm9 |
75 DB 102,15,56,0,232 | 79 DB 102,15,56,0,232 |
76 movdqa xmm3,xmm10 | 80 movdqa xmm3,xmm10 |
77 pxor xmm0,xmm1 | 81 pxor xmm0,xmm1 |
78 DB 102,15,56,0,217 | 82 DB 102,15,56,0,217 |
79 movdqa xmm4,xmm10 | 83 movdqa xmm4,xmm10 |
80 pxor xmm3,xmm5 | 84 pxor xmm3,xmm5 |
81 DB 102,15,56,0,224 | 85 DB 102,15,56,0,224 |
82 movdqa xmm2,xmm10 | 86 movdqa xmm2,xmm10 |
83 pxor xmm4,xmm5 | 87 pxor xmm4,xmm5 |
84 DB 102,15,56,0,211 | 88 DB 102,15,56,0,211 |
85 movdqa xmm3,xmm10 | 89 movdqa xmm3,xmm10 |
86 pxor xmm2,xmm0 | 90 pxor xmm2,xmm0 |
87 DB 102,15,56,0,220 | 91 DB 102,15,56,0,220 |
88 » movdqu» xmm5,XMMWORD PTR[r9] | 92 » movdqu» xmm5,XMMWORD[r9] |
89 pxor xmm3,xmm1 | 93 pxor xmm3,xmm1 |
90 » jnz» $L$enc_loop | 94 » jnz» NEAR $L$enc_loop |
91 | 95 |
92 | 96 |
93 » movdqa» xmm4,XMMWORD PTR[((-96))+r10] | 97 » movdqa» xmm4,XMMWORD[((-96))+r10] |
94 » movdqa» xmm0,XMMWORD PTR[((-80))+r10] | 98 » movdqa» xmm0,XMMWORD[((-80))+r10] |
95 DB 102,15,56,0,226 | 99 DB 102,15,56,0,226 |
96 pxor xmm4,xmm5 | 100 pxor xmm4,xmm5 |
97 DB 102,15,56,0,195 | 101 DB 102,15,56,0,195 |
98 » movdqa» xmm1,XMMWORD PTR[64+r10*1+r11] | 102 » movdqa» xmm1,XMMWORD[64+r10*1+r11] |
99 pxor xmm0,xmm4 | 103 pxor xmm0,xmm4 |
100 DB 102,15,56,0,193 | 104 DB 102,15,56,0,193 |
101 DB 0F3h,0C3h ;repret | 105 DB 0F3h,0C3h ;repret |
102 _vpaes_encrypt_core ENDP | |
103 | 106 |
104 | 107 |
105 | 108 |
| 109 |
106 | 110 |
107 | 111 |
108 | 112 |
109 | 113 |
110 ALIGN 16 | 114 ALIGN 16 |
111 _vpaes_decrypt_core» PROC PRIVATE | 115 _vpaes_decrypt_core: |
112 mov r9,rdx | 116 mov r9,rdx |
113 » mov» eax,DWORD PTR[240+rdx] | 117 » mov» eax,DWORD[240+rdx] |
114 movdqa xmm1,xmm9 | 118 movdqa xmm1,xmm9 |
115 » movdqa» xmm2,XMMWORD PTR[$L$k_dipt] | 119 » movdqa» xmm2,XMMWORD[$L$k_dipt] |
116 pandn xmm1,xmm0 | 120 pandn xmm1,xmm0 |
117 mov r11,rax | 121 mov r11,rax |
118 psrld xmm1,4 | 122 psrld xmm1,4 |
119 » movdqu» xmm5,XMMWORD PTR[r9] | 123 » movdqu» xmm5,XMMWORD[r9] |
120 shl r11,4 | 124 shl r11,4 |
121 pand xmm0,xmm9 | 125 pand xmm0,xmm9 |
122 DB 102,15,56,0,208 | 126 DB 102,15,56,0,208 |
123 » movdqa» xmm0,XMMWORD PTR[(($L$k_dipt+16))] | 127 » movdqa» xmm0,XMMWORD[(($L$k_dipt+16))] |
124 » xor» r11,030h | 128 » xor» r11,0x30 |
125 » lea» r10,QWORD PTR[$L$k_dsbd] | 129 » lea» r10,[$L$k_dsbd] |
126 DB 102,15,56,0,193 | 130 DB 102,15,56,0,193 |
127 » and» r11,030h | 131 » and» r11,0x30 |
128 pxor xmm2,xmm5 | 132 pxor xmm2,xmm5 |
129 » movdqa» xmm5,XMMWORD PTR[(($L$k_mc_forward+48))] | 133 » movdqa» xmm5,XMMWORD[(($L$k_mc_forward+48))] |
130 pxor xmm0,xmm2 | 134 pxor xmm0,xmm2 |
131 add r9,16 | 135 add r9,16 |
132 add r11,r10 | 136 add r11,r10 |
133 » jmp» $L$dec_entry | 137 » jmp» NEAR $L$dec_entry |
134 | 138 |
135 ALIGN 16 | 139 ALIGN 16 |
136 $L$dec_loop:: | 140 $L$dec_loop: |
137 | 141 |
138 | 142 |
139 | 143 |
140 » movdqa» xmm4,XMMWORD PTR[((-32))+r10] | 144 » movdqa» xmm4,XMMWORD[((-32))+r10] |
141 » movdqa» xmm1,XMMWORD PTR[((-16))+r10] | 145 » movdqa» xmm1,XMMWORD[((-16))+r10] |
142 DB 102,15,56,0,226 | 146 DB 102,15,56,0,226 |
143 DB 102,15,56,0,203 | 147 DB 102,15,56,0,203 |
144 pxor xmm0,xmm4 | 148 pxor xmm0,xmm4 |
145 » movdqa» xmm4,XMMWORD PTR[r10] | 149 » movdqa» xmm4,XMMWORD[r10] |
146 pxor xmm0,xmm1 | 150 pxor xmm0,xmm1 |
147 » movdqa» xmm1,XMMWORD PTR[16+r10] | 151 » movdqa» xmm1,XMMWORD[16+r10] |
148 | 152 |
149 DB 102,15,56,0,226 | 153 DB 102,15,56,0,226 |
150 DB 102,15,56,0,197 | 154 DB 102,15,56,0,197 |
151 DB 102,15,56,0,203 | 155 DB 102,15,56,0,203 |
152 pxor xmm0,xmm4 | 156 pxor xmm0,xmm4 |
153 » movdqa» xmm4,XMMWORD PTR[32+r10] | 157 » movdqa» xmm4,XMMWORD[32+r10] |
154 pxor xmm0,xmm1 | 158 pxor xmm0,xmm1 |
155 » movdqa» xmm1,XMMWORD PTR[48+r10] | 159 » movdqa» xmm1,XMMWORD[48+r10] |
156 | 160 |
157 DB 102,15,56,0,226 | 161 DB 102,15,56,0,226 |
158 DB 102,15,56,0,197 | 162 DB 102,15,56,0,197 |
159 DB 102,15,56,0,203 | 163 DB 102,15,56,0,203 |
160 pxor xmm0,xmm4 | 164 pxor xmm0,xmm4 |
161 » movdqa» xmm4,XMMWORD PTR[64+r10] | 165 » movdqa» xmm4,XMMWORD[64+r10] |
162 pxor xmm0,xmm1 | 166 pxor xmm0,xmm1 |
163 » movdqa» xmm1,XMMWORD PTR[80+r10] | 167 » movdqa» xmm1,XMMWORD[80+r10] |
164 | 168 |
165 DB 102,15,56,0,226 | 169 DB 102,15,56,0,226 |
166 DB 102,15,56,0,197 | 170 DB 102,15,56,0,197 |
167 DB 102,15,56,0,203 | 171 DB 102,15,56,0,203 |
168 pxor xmm0,xmm4 | 172 pxor xmm0,xmm4 |
169 add r9,16 | 173 add r9,16 |
170 DB 102,15,58,15,237,12 | 174 DB 102,15,58,15,237,12 |
171 pxor xmm0,xmm1 | 175 pxor xmm0,xmm1 |
172 sub rax,1 | 176 sub rax,1 |
173 | 177 |
174 $L$dec_entry:: | 178 $L$dec_entry: |
175 | 179 |
176 movdqa xmm1,xmm9 | 180 movdqa xmm1,xmm9 |
177 pandn xmm1,xmm0 | 181 pandn xmm1,xmm0 |
178 movdqa xmm2,xmm11 | 182 movdqa xmm2,xmm11 |
179 psrld xmm1,4 | 183 psrld xmm1,4 |
180 pand xmm0,xmm9 | 184 pand xmm0,xmm9 |
181 DB 102,15,56,0,208 | 185 DB 102,15,56,0,208 |
182 movdqa xmm3,xmm10 | 186 movdqa xmm3,xmm10 |
183 pxor xmm0,xmm1 | 187 pxor xmm0,xmm1 |
184 DB 102,15,56,0,217 | 188 DB 102,15,56,0,217 |
185 movdqa xmm4,xmm10 | 189 movdqa xmm4,xmm10 |
186 pxor xmm3,xmm2 | 190 pxor xmm3,xmm2 |
187 DB 102,15,56,0,224 | 191 DB 102,15,56,0,224 |
188 pxor xmm4,xmm2 | 192 pxor xmm4,xmm2 |
189 movdqa xmm2,xmm10 | 193 movdqa xmm2,xmm10 |
190 DB 102,15,56,0,211 | 194 DB 102,15,56,0,211 |
191 movdqa xmm3,xmm10 | 195 movdqa xmm3,xmm10 |
192 pxor xmm2,xmm0 | 196 pxor xmm2,xmm0 |
193 DB 102,15,56,0,220 | 197 DB 102,15,56,0,220 |
194 » movdqu» xmm0,XMMWORD PTR[r9] | 198 » movdqu» xmm0,XMMWORD[r9] |
195 pxor xmm3,xmm1 | 199 pxor xmm3,xmm1 |
196 » jnz» $L$dec_loop | 200 » jnz» NEAR $L$dec_loop |
197 | 201 |
198 | 202 |
199 » movdqa» xmm4,XMMWORD PTR[96+r10] | 203 » movdqa» xmm4,XMMWORD[96+r10] |
200 DB 102,15,56,0,226 | 204 DB 102,15,56,0,226 |
201 pxor xmm4,xmm0 | 205 pxor xmm4,xmm0 |
202 » movdqa» xmm0,XMMWORD PTR[112+r10] | 206 » movdqa» xmm0,XMMWORD[112+r10] |
203 » movdqa» xmm2,XMMWORD PTR[((-352))+r11] | 207 » movdqa» xmm2,XMMWORD[((-352))+r11] |
204 DB 102,15,56,0,195 | 208 DB 102,15,56,0,195 |
205 pxor xmm0,xmm4 | 209 pxor xmm0,xmm4 |
206 DB 102,15,56,0,194 | 210 DB 102,15,56,0,194 |
207 DB 0F3h,0C3h ;repret | 211 DB 0F3h,0C3h ;repret |
208 _vpaes_decrypt_core ENDP | |
209 | 212 |
210 | 213 |
211 | 214 |
| 215 |
212 | 216 |
213 | 217 |
214 | 218 |
215 | 219 |
216 ALIGN 16 | 220 ALIGN 16 |
217 _vpaes_schedule_core» PROC PRIVATE | 221 _vpaes_schedule_core: |
218 | 222 |
219 | 223 |
220 | 224 |
221 | 225 |
222 | 226 |
223 call _vpaes_preheat | 227 call _vpaes_preheat |
224 » movdqa» xmm8,XMMWORD PTR[$L$k_rcon] | 228 » movdqa» xmm8,XMMWORD[$L$k_rcon] |
225 » movdqu» xmm0,XMMWORD PTR[rdi] | 229 » movdqu» xmm0,XMMWORD[rdi] |
226 | 230 |
227 | 231 |
228 movdqa xmm3,xmm0 | 232 movdqa xmm3,xmm0 |
229 » lea» r11,QWORD PTR[$L$k_ipt] | 233 » lea» r11,[$L$k_ipt] |
230 call _vpaes_schedule_transform | 234 call _vpaes_schedule_transform |
231 movdqa xmm7,xmm0 | 235 movdqa xmm7,xmm0 |
232 | 236 |
233 » lea» r10,QWORD PTR[$L$k_sr] | 237 » lea» r10,[$L$k_sr] |
234 test rcx,rcx | 238 test rcx,rcx |
235 » jnz» $L$schedule_am_decrypting | 239 » jnz» NEAR $L$schedule_am_decrypting |
236 | 240 |
237 | 241 |
238 » movdqu» XMMWORD PTR[rdx],xmm0 | 242 » movdqu» XMMWORD[rdx],xmm0 |
239 » jmp» $L$schedule_go | 243 » jmp» NEAR $L$schedule_go |
240 | 244 |
241 $L$schedule_am_decrypting:: | 245 $L$schedule_am_decrypting: |
242 | 246 |
243 » movdqa» xmm1,XMMWORD PTR[r10*1+r8] | 247 » movdqa» xmm1,XMMWORD[r10*1+r8] |
244 DB 102,15,56,0,217 | 248 DB 102,15,56,0,217 |
245 » movdqu» XMMWORD PTR[rdx],xmm3 | 249 » movdqu» XMMWORD[rdx],xmm3 |
246 » xor» r8,030h | 250 » xor» r8,0x30 |
247 | 251 |
248 $L$schedule_go:: | 252 $L$schedule_go: |
249 cmp esi,192 | 253 cmp esi,192 |
250 » ja» $L$schedule_256 | 254 » ja» NEAR $L$schedule_256 |
251 » je» $L$schedule_192 | 255 » je» NEAR $L$schedule_192 |
252 | 256 |
253 | 257 |
254 | 258 |
255 | 259 |
256 | 260 |
257 | 261 |
258 | 262 |
259 | 263 |
260 | 264 |
261 | 265 |
262 $L$schedule_128:: | 266 $L$schedule_128: |
263 mov esi,10 | 267 mov esi,10 |
264 | 268 |
265 $L$oop_schedule_128:: | 269 $L$oop_schedule_128: |
266 call _vpaes_schedule_round | 270 call _vpaes_schedule_round |
267 dec rsi | 271 dec rsi |
268 » jz» $L$schedule_mangle_last | 272 » jz» NEAR $L$schedule_mangle_last |
269 call _vpaes_schedule_mangle | 273 call _vpaes_schedule_mangle |
270 » jmp» $L$oop_schedule_128 | 274 » jmp» NEAR $L$oop_schedule_128 |
271 | 275 |
272 | 276 |
273 | 277 |
274 | 278 |
275 | 279 |
276 | 280 |
277 | 281 |
278 | 282 |
279 | 283 |
280 | 284 |
281 | 285 |
282 | 286 |
283 | 287 |
284 | 288 |
285 | 289 |
286 | 290 |
287 ALIGN 16 | 291 ALIGN 16 |
288 $L$schedule_192:: | 292 $L$schedule_192: |
289 » movdqu» xmm0,XMMWORD PTR[8+rdi] | 293 » movdqu» xmm0,XMMWORD[8+rdi] |
290 call _vpaes_schedule_transform | 294 call _vpaes_schedule_transform |
291 movdqa xmm6,xmm0 | 295 movdqa xmm6,xmm0 |
292 pxor xmm4,xmm4 | 296 pxor xmm4,xmm4 |
293 movhlps xmm6,xmm4 | 297 movhlps xmm6,xmm4 |
294 mov esi,4 | 298 mov esi,4 |
295 | 299 |
296 $L$oop_schedule_192:: | 300 $L$oop_schedule_192: |
297 call _vpaes_schedule_round | 301 call _vpaes_schedule_round |
298 DB 102,15,58,15,198,8 | 302 DB 102,15,58,15,198,8 |
299 call _vpaes_schedule_mangle | 303 call _vpaes_schedule_mangle |
300 call _vpaes_schedule_192_smear | 304 call _vpaes_schedule_192_smear |
301 call _vpaes_schedule_mangle | 305 call _vpaes_schedule_mangle |
302 call _vpaes_schedule_round | 306 call _vpaes_schedule_round |
303 dec rsi | 307 dec rsi |
304 » jz» $L$schedule_mangle_last | 308 » jz» NEAR $L$schedule_mangle_last |
305 call _vpaes_schedule_mangle | 309 call _vpaes_schedule_mangle |
306 call _vpaes_schedule_192_smear | 310 call _vpaes_schedule_192_smear |
307 » jmp» $L$oop_schedule_192 | 311 » jmp» NEAR $L$oop_schedule_192 |
308 | 312 |
309 | 313 |
310 | 314 |
311 | 315 |
312 | 316 |
313 | 317 |
314 | 318 |
315 | 319 |
316 | 320 |
317 | 321 |
318 | 322 |
319 ALIGN 16 | 323 ALIGN 16 |
320 $L$schedule_256:: | 324 $L$schedule_256: |
321 » movdqu» xmm0,XMMWORD PTR[16+rdi] | 325 » movdqu» xmm0,XMMWORD[16+rdi] |
322 call _vpaes_schedule_transform | 326 call _vpaes_schedule_transform |
323 mov esi,7 | 327 mov esi,7 |
324 | 328 |
325 $L$oop_schedule_256:: | 329 $L$oop_schedule_256: |
326 call _vpaes_schedule_mangle | 330 call _vpaes_schedule_mangle |
327 movdqa xmm6,xmm0 | 331 movdqa xmm6,xmm0 |
328 | 332 |
329 | 333 |
330 call _vpaes_schedule_round | 334 call _vpaes_schedule_round |
331 dec rsi | 335 dec rsi |
332 » jz» $L$schedule_mangle_last | 336 » jz» NEAR $L$schedule_mangle_last |
333 call _vpaes_schedule_mangle | 337 call _vpaes_schedule_mangle |
334 | 338 |
335 | 339 |
336 » pshufd» xmm0,xmm0,0FFh | 340 » pshufd» xmm0,xmm0,0xFF |
337 movdqa xmm5,xmm7 | 341 movdqa xmm5,xmm7 |
338 movdqa xmm7,xmm6 | 342 movdqa xmm7,xmm6 |
339 call _vpaes_schedule_low_round | 343 call _vpaes_schedule_low_round |
340 movdqa xmm7,xmm5 | 344 movdqa xmm7,xmm5 |
341 | 345 |
342 » jmp» $L$oop_schedule_256 | 346 » jmp» NEAR $L$oop_schedule_256 |
343 | 347 |
344 | 348 |
345 | 349 |
346 | 350 |
347 | 351 |
348 | 352 |
349 | 353 |
350 | 354 |
351 | 355 |
352 | 356 |
353 | 357 |
354 | 358 |
355 ALIGN 16 | 359 ALIGN 16 |
356 $L$schedule_mangle_last:: | 360 $L$schedule_mangle_last: |
357 | 361 |
358 » lea» r11,QWORD PTR[$L$k_deskew] | 362 » lea» r11,[$L$k_deskew] |
359 test rcx,rcx | 363 test rcx,rcx |
360 » jnz» $L$schedule_mangle_last_dec | 364 » jnz» NEAR $L$schedule_mangle_last_dec |
361 | 365 |
362 | 366 |
363 » movdqa» xmm1,XMMWORD PTR[r10*1+r8] | 367 » movdqa» xmm1,XMMWORD[r10*1+r8] |
364 DB 102,15,56,0,193 | 368 DB 102,15,56,0,193 |
365 » lea» r11,QWORD PTR[$L$k_opt] | 369 » lea» r11,[$L$k_opt] |
366 add rdx,32 | 370 add rdx,32 |
367 | 371 |
368 $L$schedule_mangle_last_dec:: | 372 $L$schedule_mangle_last_dec: |
369 add rdx,-16 | 373 add rdx,-16 |
370 » pxor» xmm0,XMMWORD PTR[$L$k_s63] | 374 » pxor» xmm0,XMMWORD[$L$k_s63] |
371 call _vpaes_schedule_transform | 375 call _vpaes_schedule_transform |
372 » movdqu» XMMWORD PTR[rdx],xmm0 | 376 » movdqu» XMMWORD[rdx],xmm0 |
373 | 377 |
374 | 378 |
375 pxor xmm0,xmm0 | 379 pxor xmm0,xmm0 |
376 pxor xmm1,xmm1 | 380 pxor xmm1,xmm1 |
377 pxor xmm2,xmm2 | 381 pxor xmm2,xmm2 |
378 pxor xmm3,xmm3 | 382 pxor xmm3,xmm3 |
379 pxor xmm4,xmm4 | 383 pxor xmm4,xmm4 |
380 pxor xmm5,xmm5 | 384 pxor xmm5,xmm5 |
381 pxor xmm6,xmm6 | 385 pxor xmm6,xmm6 |
382 pxor xmm7,xmm7 | 386 pxor xmm7,xmm7 |
383 DB 0F3h,0C3h ;repret | 387 DB 0F3h,0C3h ;repret |
384 _vpaes_schedule_core ENDP | |
385 | 388 |
386 | 389 |
387 | 390 |
| 391 |
388 | 392 |
389 | 393 |
390 | 394 |
391 | 395 |
392 | 396 |
393 | 397 |
394 | 398 |
395 | 399 |
396 | 400 |
397 | 401 |
398 | 402 |
399 | 403 |
400 | 404 |
401 ALIGN 16 | 405 ALIGN 16 |
402 _vpaes_schedule_192_smear» PROC PRIVATE | 406 _vpaes_schedule_192_smear: |
403 » pshufd» xmm1,xmm6,080h | 407 » pshufd» xmm1,xmm6,0x80 |
404 » pshufd» xmm0,xmm7,0FEh | 408 » pshufd» xmm0,xmm7,0xFE |
405 pxor xmm6,xmm1 | 409 pxor xmm6,xmm1 |
406 pxor xmm1,xmm1 | 410 pxor xmm1,xmm1 |
407 pxor xmm6,xmm0 | 411 pxor xmm6,xmm0 |
408 movdqa xmm0,xmm6 | 412 movdqa xmm0,xmm6 |
409 movhlps xmm6,xmm1 | 413 movhlps xmm6,xmm1 |
410 DB 0F3h,0C3h ;repret | 414 DB 0F3h,0C3h ;repret |
411 _vpaes_schedule_192_smear ENDP | |
412 | 415 |
413 | 416 |
414 | 417 |
| 418 |
415 | 419 |
416 | 420 |
417 | 421 |
418 | 422 |
419 | 423 |
420 | 424 |
421 | 425 |
422 | 426 |
423 | 427 |
424 | 428 |
425 | 429 |
426 | 430 |
427 | 431 |
428 | 432 |
429 | 433 |
430 | 434 |
431 | 435 |
432 ALIGN 16 | 436 ALIGN 16 |
433 _vpaes_schedule_round» PROC PRIVATE | 437 _vpaes_schedule_round: |
434 | 438 |
435 pxor xmm1,xmm1 | 439 pxor xmm1,xmm1 |
436 DB 102,65,15,58,15,200,15 | 440 DB 102,65,15,58,15,200,15 |
437 DB 102,69,15,58,15,192,15 | 441 DB 102,69,15,58,15,192,15 |
438 pxor xmm7,xmm1 | 442 pxor xmm7,xmm1 |
439 | 443 |
440 | 444 |
441 » pshufd» xmm0,xmm0,0FFh | 445 » pshufd» xmm0,xmm0,0xFF |
442 DB 102,15,58,15,192,1 | 446 DB 102,15,58,15,192,1 |
443 | 447 |
444 | 448 |
445 | 449 |
446 | 450 |
447 _vpaes_schedule_low_round:: | 451 _vpaes_schedule_low_round: |
448 | 452 |
449 movdqa xmm1,xmm7 | 453 movdqa xmm1,xmm7 |
450 pslldq xmm7,4 | 454 pslldq xmm7,4 |
451 pxor xmm7,xmm1 | 455 pxor xmm7,xmm1 |
452 movdqa xmm1,xmm7 | 456 movdqa xmm1,xmm7 |
453 pslldq xmm7,8 | 457 pslldq xmm7,8 |
454 pxor xmm7,xmm1 | 458 pxor xmm7,xmm1 |
455 » pxor» xmm7,XMMWORD PTR[$L$k_s63] | 459 » pxor» xmm7,XMMWORD[$L$k_s63] |
456 | 460 |
457 | 461 |
458 movdqa xmm1,xmm9 | 462 movdqa xmm1,xmm9 |
459 pandn xmm1,xmm0 | 463 pandn xmm1,xmm0 |
460 psrld xmm1,4 | 464 psrld xmm1,4 |
461 pand xmm0,xmm9 | 465 pand xmm0,xmm9 |
462 movdqa xmm2,xmm11 | 466 movdqa xmm2,xmm11 |
463 DB 102,15,56,0,208 | 467 DB 102,15,56,0,208 |
464 pxor xmm0,xmm1 | 468 pxor xmm0,xmm1 |
465 movdqa xmm3,xmm10 | 469 movdqa xmm3,xmm10 |
(...skipping 11 matching lines...) Expand all Loading... |
477 movdqa xmm4,xmm13 | 481 movdqa xmm4,xmm13 |
478 DB 102,15,56,0,226 | 482 DB 102,15,56,0,226 |
479 movdqa xmm0,xmm12 | 483 movdqa xmm0,xmm12 |
480 DB 102,15,56,0,195 | 484 DB 102,15,56,0,195 |
481 pxor xmm0,xmm4 | 485 pxor xmm0,xmm4 |
482 | 486 |
483 | 487 |
484 pxor xmm0,xmm7 | 488 pxor xmm0,xmm7 |
485 movdqa xmm7,xmm0 | 489 movdqa xmm7,xmm0 |
486 DB 0F3h,0C3h ;repret | 490 DB 0F3h,0C3h ;repret |
487 _vpaes_schedule_round ENDP | |
488 | 491 |
489 | 492 |
490 | 493 |
| 494 |
491 | 495 |
492 | 496 |
493 | 497 |
494 | 498 |
495 | 499 |
496 | 500 |
497 | 501 |
498 | 502 |
499 ALIGN 16 | 503 ALIGN 16 |
500 _vpaes_schedule_transform» PROC PRIVATE | 504 _vpaes_schedule_transform: |
501 movdqa xmm1,xmm9 | 505 movdqa xmm1,xmm9 |
502 pandn xmm1,xmm0 | 506 pandn xmm1,xmm0 |
503 psrld xmm1,4 | 507 psrld xmm1,4 |
504 pand xmm0,xmm9 | 508 pand xmm0,xmm9 |
505 » movdqa» xmm2,XMMWORD PTR[r11] | 509 » movdqa» xmm2,XMMWORD[r11] |
506 DB 102,15,56,0,208 | 510 DB 102,15,56,0,208 |
507 » movdqa» xmm0,XMMWORD PTR[16+r11] | 511 » movdqa» xmm0,XMMWORD[16+r11] |
508 DB 102,15,56,0,193 | 512 DB 102,15,56,0,193 |
509 pxor xmm0,xmm2 | 513 pxor xmm0,xmm2 |
510 DB 0F3h,0C3h ;repret | 514 DB 0F3h,0C3h ;repret |
511 _vpaes_schedule_transform ENDP | |
512 | 515 |
513 | 516 |
514 | 517 |
| 518 |
515 | 519 |
516 | 520 |
517 | 521 |
518 | 522 |
519 | 523 |
520 | 524 |
521 | 525 |
522 | 526 |
523 | 527 |
524 | 528 |
525 | 529 |
526 | 530 |
527 | 531 |
528 | 532 |
529 | 533 |
530 | 534 |
531 | 535 |
532 | 536 |
533 | 537 |
534 | 538 |
535 | 539 |
536 | 540 |
537 ALIGN 16 | 541 ALIGN 16 |
538 _vpaes_schedule_mangle» PROC PRIVATE | 542 _vpaes_schedule_mangle: |
539 movdqa xmm4,xmm0 | 543 movdqa xmm4,xmm0 |
540 » movdqa» xmm5,XMMWORD PTR[$L$k_mc_forward] | 544 » movdqa» xmm5,XMMWORD[$L$k_mc_forward] |
541 test rcx,rcx | 545 test rcx,rcx |
542 » jnz» $L$schedule_mangle_dec | 546 » jnz» NEAR $L$schedule_mangle_dec |
543 | 547 |
544 | 548 |
545 add rdx,16 | 549 add rdx,16 |
546 » pxor» xmm4,XMMWORD PTR[$L$k_s63] | 550 » pxor» xmm4,XMMWORD[$L$k_s63] |
547 DB 102,15,56,0,229 | 551 DB 102,15,56,0,229 |
548 movdqa xmm3,xmm4 | 552 movdqa xmm3,xmm4 |
549 DB 102,15,56,0,229 | 553 DB 102,15,56,0,229 |
550 pxor xmm3,xmm4 | 554 pxor xmm3,xmm4 |
551 DB 102,15,56,0,229 | 555 DB 102,15,56,0,229 |
552 pxor xmm3,xmm4 | 556 pxor xmm3,xmm4 |
553 | 557 |
554 » jmp» $L$schedule_mangle_both | 558 » jmp» NEAR $L$schedule_mangle_both |
555 ALIGN 16 | 559 ALIGN 16 |
556 $L$schedule_mangle_dec:: | 560 $L$schedule_mangle_dec: |
557 | 561 |
558 » lea» r11,QWORD PTR[$L$k_dksd] | 562 » lea» r11,[$L$k_dksd] |
559 movdqa xmm1,xmm9 | 563 movdqa xmm1,xmm9 |
560 pandn xmm1,xmm4 | 564 pandn xmm1,xmm4 |
561 psrld xmm1,4 | 565 psrld xmm1,4 |
562 pand xmm4,xmm9 | 566 pand xmm4,xmm9 |
563 | 567 |
564 » movdqa» xmm2,XMMWORD PTR[r11] | 568 » movdqa» xmm2,XMMWORD[r11] |
565 DB 102,15,56,0,212 | 569 DB 102,15,56,0,212 |
566 » movdqa» xmm3,XMMWORD PTR[16+r11] | 570 » movdqa» xmm3,XMMWORD[16+r11] |
567 DB 102,15,56,0,217 | 571 DB 102,15,56,0,217 |
568 pxor xmm3,xmm2 | 572 pxor xmm3,xmm2 |
569 DB 102,15,56,0,221 | 573 DB 102,15,56,0,221 |
570 | 574 |
571 » movdqa» xmm2,XMMWORD PTR[32+r11] | 575 » movdqa» xmm2,XMMWORD[32+r11] |
572 DB 102,15,56,0,212 | 576 DB 102,15,56,0,212 |
573 pxor xmm2,xmm3 | 577 pxor xmm2,xmm3 |
574 » movdqa» xmm3,XMMWORD PTR[48+r11] | 578 » movdqa» xmm3,XMMWORD[48+r11] |
575 DB 102,15,56,0,217 | 579 DB 102,15,56,0,217 |
576 pxor xmm3,xmm2 | 580 pxor xmm3,xmm2 |
577 DB 102,15,56,0,221 | 581 DB 102,15,56,0,221 |
578 | 582 |
579 » movdqa» xmm2,XMMWORD PTR[64+r11] | 583 » movdqa» xmm2,XMMWORD[64+r11] |
580 DB 102,15,56,0,212 | 584 DB 102,15,56,0,212 |
581 pxor xmm2,xmm3 | 585 pxor xmm2,xmm3 |
582 » movdqa» xmm3,XMMWORD PTR[80+r11] | 586 » movdqa» xmm3,XMMWORD[80+r11] |
583 DB 102,15,56,0,217 | 587 DB 102,15,56,0,217 |
584 pxor xmm3,xmm2 | 588 pxor xmm3,xmm2 |
585 DB 102,15,56,0,221 | 589 DB 102,15,56,0,221 |
586 | 590 |
587 » movdqa» xmm2,XMMWORD PTR[96+r11] | 591 » movdqa» xmm2,XMMWORD[96+r11] |
588 DB 102,15,56,0,212 | 592 DB 102,15,56,0,212 |
589 pxor xmm2,xmm3 | 593 pxor xmm2,xmm3 |
590 » movdqa» xmm3,XMMWORD PTR[112+r11] | 594 » movdqa» xmm3,XMMWORD[112+r11] |
591 DB 102,15,56,0,217 | 595 DB 102,15,56,0,217 |
592 pxor xmm3,xmm2 | 596 pxor xmm3,xmm2 |
593 | 597 |
594 add rdx,-16 | 598 add rdx,-16 |
595 | 599 |
596 $L$schedule_mangle_both:: | 600 $L$schedule_mangle_both: |
597 » movdqa» xmm1,XMMWORD PTR[r10*1+r8] | 601 » movdqa» xmm1,XMMWORD[r10*1+r8] |
598 DB 102,15,56,0,217 | 602 DB 102,15,56,0,217 |
599 add r8,-16 | 603 add r8,-16 |
600 » and» r8,030h | 604 » and» r8,0x30 |
601 » movdqu» XMMWORD PTR[rdx],xmm3 | 605 » movdqu» XMMWORD[rdx],xmm3 |
602 DB 0F3h,0C3h ;repret | 606 DB 0F3h,0C3h ;repret |
603 _vpaes_schedule_mangle ENDP | |
604 | 607 |
605 | 608 |
606 | 609 |
607 | 610 |
608 PUBLIC» vpaes_set_encrypt_key | 611 |
| 612 global» vpaes_set_encrypt_key |
609 | 613 |
610 ALIGN 16 | 614 ALIGN 16 |
611 vpaes_set_encrypt_key» PROC PUBLIC | 615 vpaes_set_encrypt_key: |
612 » mov» QWORD PTR[8+rsp],rdi» ;WIN64 prologue | 616 » mov» QWORD[8+rsp],rdi» ;WIN64 prologue |
613 » mov» QWORD PTR[16+rsp],rsi | 617 » mov» QWORD[16+rsp],rsi |
614 mov rax,rsp | 618 mov rax,rsp |
615 $L$SEH_begin_vpaes_set_encrypt_key:: | 619 $L$SEH_begin_vpaes_set_encrypt_key: |
616 mov rdi,rcx | 620 mov rdi,rcx |
617 mov rsi,rdx | 621 mov rsi,rdx |
618 mov rdx,r8 | 622 mov rdx,r8 |
619 | 623 |
620 | 624 |
621 » lea» rsp,QWORD PTR[((-184))+rsp] | 625 » lea» rsp,[((-184))+rsp] |
622 » movaps» XMMWORD PTR[16+rsp],xmm6 | 626 » movaps» XMMWORD[16+rsp],xmm6 |
623 » movaps» XMMWORD PTR[32+rsp],xmm7 | 627 » movaps» XMMWORD[32+rsp],xmm7 |
624 » movaps» XMMWORD PTR[48+rsp],xmm8 | 628 » movaps» XMMWORD[48+rsp],xmm8 |
625 » movaps» XMMWORD PTR[64+rsp],xmm9 | 629 » movaps» XMMWORD[64+rsp],xmm9 |
626 » movaps» XMMWORD PTR[80+rsp],xmm10 | 630 » movaps» XMMWORD[80+rsp],xmm10 |
627 » movaps» XMMWORD PTR[96+rsp],xmm11 | 631 » movaps» XMMWORD[96+rsp],xmm11 |
628 » movaps» XMMWORD PTR[112+rsp],xmm12 | 632 » movaps» XMMWORD[112+rsp],xmm12 |
629 » movaps» XMMWORD PTR[128+rsp],xmm13 | 633 » movaps» XMMWORD[128+rsp],xmm13 |
630 » movaps» XMMWORD PTR[144+rsp],xmm14 | 634 » movaps» XMMWORD[144+rsp],xmm14 |
631 » movaps» XMMWORD PTR[160+rsp],xmm15 | 635 » movaps» XMMWORD[160+rsp],xmm15 |
632 $L$enc_key_body:: | 636 $L$enc_key_body: |
633 mov eax,esi | 637 mov eax,esi |
634 shr eax,5 | 638 shr eax,5 |
635 add eax,5 | 639 add eax,5 |
636 » mov» DWORD PTR[240+rdx],eax | 640 » mov» DWORD[240+rdx],eax |
637 | 641 |
638 mov ecx,0 | 642 mov ecx,0 |
639 » mov» r8d,030h | 643 » mov» r8d,0x30 |
640 call _vpaes_schedule_core | 644 call _vpaes_schedule_core |
641 » movaps» xmm6,XMMWORD PTR[16+rsp] | 645 » movaps» xmm6,XMMWORD[16+rsp] |
642 » movaps» xmm7,XMMWORD PTR[32+rsp] | 646 » movaps» xmm7,XMMWORD[32+rsp] |
643 » movaps» xmm8,XMMWORD PTR[48+rsp] | 647 » movaps» xmm8,XMMWORD[48+rsp] |
644 » movaps» xmm9,XMMWORD PTR[64+rsp] | 648 » movaps» xmm9,XMMWORD[64+rsp] |
645 » movaps» xmm10,XMMWORD PTR[80+rsp] | 649 » movaps» xmm10,XMMWORD[80+rsp] |
646 » movaps» xmm11,XMMWORD PTR[96+rsp] | 650 » movaps» xmm11,XMMWORD[96+rsp] |
647 » movaps» xmm12,XMMWORD PTR[112+rsp] | 651 » movaps» xmm12,XMMWORD[112+rsp] |
648 » movaps» xmm13,XMMWORD PTR[128+rsp] | 652 » movaps» xmm13,XMMWORD[128+rsp] |
649 » movaps» xmm14,XMMWORD PTR[144+rsp] | 653 » movaps» xmm14,XMMWORD[144+rsp] |
650 » movaps» xmm15,XMMWORD PTR[160+rsp] | 654 » movaps» xmm15,XMMWORD[160+rsp] |
651 » lea» rsp,QWORD PTR[184+rsp] | 655 » lea» rsp,[184+rsp] |
652 $L$enc_key_epilogue:: | 656 $L$enc_key_epilogue: |
653 xor eax,eax | 657 xor eax,eax |
654 » mov» rdi,QWORD PTR[8+rsp]» ;WIN64 epilogue | 658 » mov» rdi,QWORD[8+rsp]» ;WIN64 epilogue |
655 » mov» rsi,QWORD PTR[16+rsp] | 659 » mov» rsi,QWORD[16+rsp] |
656 DB 0F3h,0C3h ;repret | 660 DB 0F3h,0C3h ;repret |
657 $L$SEH_end_vpaes_set_encrypt_key:: | 661 $L$SEH_end_vpaes_set_encrypt_key: |
658 vpaes_set_encrypt_key» ENDP | |
659 | 662 |
660 PUBLIC» vpaes_set_decrypt_key | 663 global» vpaes_set_decrypt_key |
661 | 664 |
662 ALIGN 16 | 665 ALIGN 16 |
663 vpaes_set_decrypt_key» PROC PUBLIC | 666 vpaes_set_decrypt_key: |
664 » mov» QWORD PTR[8+rsp],rdi» ;WIN64 prologue | 667 » mov» QWORD[8+rsp],rdi» ;WIN64 prologue |
665 » mov» QWORD PTR[16+rsp],rsi | 668 » mov» QWORD[16+rsp],rsi |
666 mov rax,rsp | 669 mov rax,rsp |
667 $L$SEH_begin_vpaes_set_decrypt_key:: | 670 $L$SEH_begin_vpaes_set_decrypt_key: |
668 mov rdi,rcx | 671 mov rdi,rcx |
669 mov rsi,rdx | 672 mov rsi,rdx |
670 mov rdx,r8 | 673 mov rdx,r8 |
671 | 674 |
672 | 675 |
673 » lea» rsp,QWORD PTR[((-184))+rsp] | 676 » lea» rsp,[((-184))+rsp] |
674 » movaps» XMMWORD PTR[16+rsp],xmm6 | 677 » movaps» XMMWORD[16+rsp],xmm6 |
675 » movaps» XMMWORD PTR[32+rsp],xmm7 | 678 » movaps» XMMWORD[32+rsp],xmm7 |
676 » movaps» XMMWORD PTR[48+rsp],xmm8 | 679 » movaps» XMMWORD[48+rsp],xmm8 |
677 » movaps» XMMWORD PTR[64+rsp],xmm9 | 680 » movaps» XMMWORD[64+rsp],xmm9 |
678 » movaps» XMMWORD PTR[80+rsp],xmm10 | 681 » movaps» XMMWORD[80+rsp],xmm10 |
679 » movaps» XMMWORD PTR[96+rsp],xmm11 | 682 » movaps» XMMWORD[96+rsp],xmm11 |
680 » movaps» XMMWORD PTR[112+rsp],xmm12 | 683 » movaps» XMMWORD[112+rsp],xmm12 |
681 » movaps» XMMWORD PTR[128+rsp],xmm13 | 684 » movaps» XMMWORD[128+rsp],xmm13 |
682 » movaps» XMMWORD PTR[144+rsp],xmm14 | 685 » movaps» XMMWORD[144+rsp],xmm14 |
683 » movaps» XMMWORD PTR[160+rsp],xmm15 | 686 » movaps» XMMWORD[160+rsp],xmm15 |
684 $L$dec_key_body:: | 687 $L$dec_key_body: |
685 mov eax,esi | 688 mov eax,esi |
686 shr eax,5 | 689 shr eax,5 |
687 add eax,5 | 690 add eax,5 |
688 » mov» DWORD PTR[240+rdx],eax | 691 » mov» DWORD[240+rdx],eax |
689 shl eax,4 | 692 shl eax,4 |
690 » lea» rdx,QWORD PTR[16+rax*1+rdx] | 693 » lea» rdx,[16+rax*1+rdx] |
691 | 694 |
692 mov ecx,1 | 695 mov ecx,1 |
693 mov r8d,esi | 696 mov r8d,esi |
694 shr r8d,1 | 697 shr r8d,1 |
695 and r8d,32 | 698 and r8d,32 |
696 xor r8d,32 | 699 xor r8d,32 |
697 call _vpaes_schedule_core | 700 call _vpaes_schedule_core |
698 » movaps» xmm6,XMMWORD PTR[16+rsp] | 701 » movaps» xmm6,XMMWORD[16+rsp] |
699 » movaps» xmm7,XMMWORD PTR[32+rsp] | 702 » movaps» xmm7,XMMWORD[32+rsp] |
700 » movaps» xmm8,XMMWORD PTR[48+rsp] | 703 » movaps» xmm8,XMMWORD[48+rsp] |
701 » movaps» xmm9,XMMWORD PTR[64+rsp] | 704 » movaps» xmm9,XMMWORD[64+rsp] |
702 » movaps» xmm10,XMMWORD PTR[80+rsp] | 705 » movaps» xmm10,XMMWORD[80+rsp] |
703 » movaps» xmm11,XMMWORD PTR[96+rsp] | 706 » movaps» xmm11,XMMWORD[96+rsp] |
704 » movaps» xmm12,XMMWORD PTR[112+rsp] | 707 » movaps» xmm12,XMMWORD[112+rsp] |
705 » movaps» xmm13,XMMWORD PTR[128+rsp] | 708 » movaps» xmm13,XMMWORD[128+rsp] |
706 » movaps» xmm14,XMMWORD PTR[144+rsp] | 709 » movaps» xmm14,XMMWORD[144+rsp] |
707 » movaps» xmm15,XMMWORD PTR[160+rsp] | 710 » movaps» xmm15,XMMWORD[160+rsp] |
708 » lea» rsp,QWORD PTR[184+rsp] | 711 » lea» rsp,[184+rsp] |
709 $L$dec_key_epilogue:: | 712 $L$dec_key_epilogue: |
710 xor eax,eax | 713 xor eax,eax |
711 » mov» rdi,QWORD PTR[8+rsp]» ;WIN64 epilogue | 714 » mov» rdi,QWORD[8+rsp]» ;WIN64 epilogue |
712 » mov» rsi,QWORD PTR[16+rsp] | 715 » mov» rsi,QWORD[16+rsp] |
713 DB 0F3h,0C3h ;repret | 716 DB 0F3h,0C3h ;repret |
714 $L$SEH_end_vpaes_set_decrypt_key:: | 717 $L$SEH_end_vpaes_set_decrypt_key: |
715 vpaes_set_decrypt_key» ENDP | |
716 | 718 |
717 PUBLIC» vpaes_encrypt | 719 global» vpaes_encrypt |
718 | 720 |
719 ALIGN 16 | 721 ALIGN 16 |
720 vpaes_encrypt» PROC PUBLIC | 722 vpaes_encrypt: |
721 » mov» QWORD PTR[8+rsp],rdi» ;WIN64 prologue | 723 » mov» QWORD[8+rsp],rdi» ;WIN64 prologue |
722 » mov» QWORD PTR[16+rsp],rsi | 724 » mov» QWORD[16+rsp],rsi |
723 mov rax,rsp | 725 mov rax,rsp |
724 $L$SEH_begin_vpaes_encrypt:: | 726 $L$SEH_begin_vpaes_encrypt: |
725 mov rdi,rcx | 727 mov rdi,rcx |
726 mov rsi,rdx | 728 mov rsi,rdx |
727 mov rdx,r8 | 729 mov rdx,r8 |
728 | 730 |
729 | 731 |
730 » lea» rsp,QWORD PTR[((-184))+rsp] | 732 » lea» rsp,[((-184))+rsp] |
731 » movaps» XMMWORD PTR[16+rsp],xmm6 | 733 » movaps» XMMWORD[16+rsp],xmm6 |
732 » movaps» XMMWORD PTR[32+rsp],xmm7 | 734 » movaps» XMMWORD[32+rsp],xmm7 |
733 » movaps» XMMWORD PTR[48+rsp],xmm8 | 735 » movaps» XMMWORD[48+rsp],xmm8 |
734 » movaps» XMMWORD PTR[64+rsp],xmm9 | 736 » movaps» XMMWORD[64+rsp],xmm9 |
735 » movaps» XMMWORD PTR[80+rsp],xmm10 | 737 » movaps» XMMWORD[80+rsp],xmm10 |
736 » movaps» XMMWORD PTR[96+rsp],xmm11 | 738 » movaps» XMMWORD[96+rsp],xmm11 |
737 » movaps» XMMWORD PTR[112+rsp],xmm12 | 739 » movaps» XMMWORD[112+rsp],xmm12 |
738 » movaps» XMMWORD PTR[128+rsp],xmm13 | 740 » movaps» XMMWORD[128+rsp],xmm13 |
739 » movaps» XMMWORD PTR[144+rsp],xmm14 | 741 » movaps» XMMWORD[144+rsp],xmm14 |
740 » movaps» XMMWORD PTR[160+rsp],xmm15 | 742 » movaps» XMMWORD[160+rsp],xmm15 |
741 $L$enc_body:: | 743 $L$enc_body: |
742 » movdqu» xmm0,XMMWORD PTR[rdi] | 744 » movdqu» xmm0,XMMWORD[rdi] |
743 call _vpaes_preheat | 745 call _vpaes_preheat |
744 call _vpaes_encrypt_core | 746 call _vpaes_encrypt_core |
745 » movdqu» XMMWORD PTR[rsi],xmm0 | 747 » movdqu» XMMWORD[rsi],xmm0 |
746 » movaps» xmm6,XMMWORD PTR[16+rsp] | 748 » movaps» xmm6,XMMWORD[16+rsp] |
747 » movaps» xmm7,XMMWORD PTR[32+rsp] | 749 » movaps» xmm7,XMMWORD[32+rsp] |
748 » movaps» xmm8,XMMWORD PTR[48+rsp] | 750 » movaps» xmm8,XMMWORD[48+rsp] |
749 » movaps» xmm9,XMMWORD PTR[64+rsp] | 751 » movaps» xmm9,XMMWORD[64+rsp] |
750 » movaps» xmm10,XMMWORD PTR[80+rsp] | 752 » movaps» xmm10,XMMWORD[80+rsp] |
751 » movaps» xmm11,XMMWORD PTR[96+rsp] | 753 » movaps» xmm11,XMMWORD[96+rsp] |
752 » movaps» xmm12,XMMWORD PTR[112+rsp] | 754 » movaps» xmm12,XMMWORD[112+rsp] |
753 » movaps» xmm13,XMMWORD PTR[128+rsp] | 755 » movaps» xmm13,XMMWORD[128+rsp] |
754 » movaps» xmm14,XMMWORD PTR[144+rsp] | 756 » movaps» xmm14,XMMWORD[144+rsp] |
755 » movaps» xmm15,XMMWORD PTR[160+rsp] | 757 » movaps» xmm15,XMMWORD[160+rsp] |
756 » lea» rsp,QWORD PTR[184+rsp] | 758 » lea» rsp,[184+rsp] |
757 $L$enc_epilogue:: | 759 $L$enc_epilogue: |
758 » mov» rdi,QWORD PTR[8+rsp]» ;WIN64 epilogue | 760 » mov» rdi,QWORD[8+rsp]» ;WIN64 epilogue |
759 » mov» rsi,QWORD PTR[16+rsp] | 761 » mov» rsi,QWORD[16+rsp] |
760 DB 0F3h,0C3h ;repret | 762 DB 0F3h,0C3h ;repret |
761 $L$SEH_end_vpaes_encrypt:: | 763 $L$SEH_end_vpaes_encrypt: |
762 vpaes_encrypt» ENDP | |
763 | 764 |
764 PUBLIC» vpaes_decrypt | 765 global» vpaes_decrypt |
765 | 766 |
766 ALIGN 16 | 767 ALIGN 16 |
767 vpaes_decrypt» PROC PUBLIC | 768 vpaes_decrypt: |
768 » mov» QWORD PTR[8+rsp],rdi» ;WIN64 prologue | 769 » mov» QWORD[8+rsp],rdi» ;WIN64 prologue |
769 » mov» QWORD PTR[16+rsp],rsi | 770 » mov» QWORD[16+rsp],rsi |
770 mov rax,rsp | 771 mov rax,rsp |
771 $L$SEH_begin_vpaes_decrypt:: | 772 $L$SEH_begin_vpaes_decrypt: |
772 mov rdi,rcx | 773 mov rdi,rcx |
773 mov rsi,rdx | 774 mov rsi,rdx |
774 mov rdx,r8 | 775 mov rdx,r8 |
775 | 776 |
776 | 777 |
777 » lea» rsp,QWORD PTR[((-184))+rsp] | 778 » lea» rsp,[((-184))+rsp] |
778 » movaps» XMMWORD PTR[16+rsp],xmm6 | 779 » movaps» XMMWORD[16+rsp],xmm6 |
779 » movaps» XMMWORD PTR[32+rsp],xmm7 | 780 » movaps» XMMWORD[32+rsp],xmm7 |
780 » movaps» XMMWORD PTR[48+rsp],xmm8 | 781 » movaps» XMMWORD[48+rsp],xmm8 |
781 » movaps» XMMWORD PTR[64+rsp],xmm9 | 782 » movaps» XMMWORD[64+rsp],xmm9 |
782 » movaps» XMMWORD PTR[80+rsp],xmm10 | 783 » movaps» XMMWORD[80+rsp],xmm10 |
783 » movaps» XMMWORD PTR[96+rsp],xmm11 | 784 » movaps» XMMWORD[96+rsp],xmm11 |
784 » movaps» XMMWORD PTR[112+rsp],xmm12 | 785 » movaps» XMMWORD[112+rsp],xmm12 |
785 » movaps» XMMWORD PTR[128+rsp],xmm13 | 786 » movaps» XMMWORD[128+rsp],xmm13 |
786 » movaps» XMMWORD PTR[144+rsp],xmm14 | 787 » movaps» XMMWORD[144+rsp],xmm14 |
787 » movaps» XMMWORD PTR[160+rsp],xmm15 | 788 » movaps» XMMWORD[160+rsp],xmm15 |
788 $L$dec_body:: | 789 $L$dec_body: |
789 » movdqu» xmm0,XMMWORD PTR[rdi] | 790 » movdqu» xmm0,XMMWORD[rdi] |
790 call _vpaes_preheat | 791 call _vpaes_preheat |
791 call _vpaes_decrypt_core | 792 call _vpaes_decrypt_core |
792 » movdqu» XMMWORD PTR[rsi],xmm0 | 793 » movdqu» XMMWORD[rsi],xmm0 |
793 » movaps» xmm6,XMMWORD PTR[16+rsp] | 794 » movaps» xmm6,XMMWORD[16+rsp] |
794 » movaps» xmm7,XMMWORD PTR[32+rsp] | 795 » movaps» xmm7,XMMWORD[32+rsp] |
795 » movaps» xmm8,XMMWORD PTR[48+rsp] | 796 » movaps» xmm8,XMMWORD[48+rsp] |
796 » movaps» xmm9,XMMWORD PTR[64+rsp] | 797 » movaps» xmm9,XMMWORD[64+rsp] |
797 » movaps» xmm10,XMMWORD PTR[80+rsp] | 798 » movaps» xmm10,XMMWORD[80+rsp] |
798 » movaps» xmm11,XMMWORD PTR[96+rsp] | 799 » movaps» xmm11,XMMWORD[96+rsp] |
799 » movaps» xmm12,XMMWORD PTR[112+rsp] | 800 » movaps» xmm12,XMMWORD[112+rsp] |
800 » movaps» xmm13,XMMWORD PTR[128+rsp] | 801 » movaps» xmm13,XMMWORD[128+rsp] |
801 » movaps» xmm14,XMMWORD PTR[144+rsp] | 802 » movaps» xmm14,XMMWORD[144+rsp] |
802 » movaps» xmm15,XMMWORD PTR[160+rsp] | 803 » movaps» xmm15,XMMWORD[160+rsp] |
803 » lea» rsp,QWORD PTR[184+rsp] | 804 » lea» rsp,[184+rsp] |
804 $L$dec_epilogue:: | 805 $L$dec_epilogue: |
805 » mov» rdi,QWORD PTR[8+rsp]» ;WIN64 epilogue | 806 » mov» rdi,QWORD[8+rsp]» ;WIN64 epilogue |
806 » mov» rsi,QWORD PTR[16+rsp] | 807 » mov» rsi,QWORD[16+rsp] |
807 DB 0F3h,0C3h ;repret | 808 DB 0F3h,0C3h ;repret |
808 $L$SEH_end_vpaes_decrypt:: | 809 $L$SEH_end_vpaes_decrypt: |
809 vpaes_decrypt» ENDP | 810 global» vpaes_cbc_encrypt |
810 PUBLIC» vpaes_cbc_encrypt | |
811 | 811 |
812 ALIGN 16 | 812 ALIGN 16 |
813 vpaes_cbc_encrypt» PROC PUBLIC | 813 vpaes_cbc_encrypt: |
814 » mov» QWORD PTR[8+rsp],rdi» ;WIN64 prologue | 814 » mov» QWORD[8+rsp],rdi» ;WIN64 prologue |
815 » mov» QWORD PTR[16+rsp],rsi | 815 » mov» QWORD[16+rsp],rsi |
816 mov rax,rsp | 816 mov rax,rsp |
817 $L$SEH_begin_vpaes_cbc_encrypt:: | 817 $L$SEH_begin_vpaes_cbc_encrypt: |
818 mov rdi,rcx | 818 mov rdi,rcx |
819 mov rsi,rdx | 819 mov rsi,rdx |
820 mov rdx,r8 | 820 mov rdx,r8 |
821 mov rcx,r9 | 821 mov rcx,r9 |
822 » mov» r8,QWORD PTR[40+rsp] | 822 » mov» r8,QWORD[40+rsp] |
823 » mov» r9,QWORD PTR[48+rsp] | 823 » mov» r9,QWORD[48+rsp] |
824 | 824 |
825 | 825 |
826 xchg rdx,rcx | 826 xchg rdx,rcx |
827 sub rcx,16 | 827 sub rcx,16 |
828 » jc» $L$cbc_abort | 828 » jc» NEAR $L$cbc_abort |
829 » lea» rsp,QWORD PTR[((-184))+rsp] | 829 » lea» rsp,[((-184))+rsp] |
830 » movaps» XMMWORD PTR[16+rsp],xmm6 | 830 » movaps» XMMWORD[16+rsp],xmm6 |
831 » movaps» XMMWORD PTR[32+rsp],xmm7 | 831 » movaps» XMMWORD[32+rsp],xmm7 |
832 » movaps» XMMWORD PTR[48+rsp],xmm8 | 832 » movaps» XMMWORD[48+rsp],xmm8 |
833 » movaps» XMMWORD PTR[64+rsp],xmm9 | 833 » movaps» XMMWORD[64+rsp],xmm9 |
834 » movaps» XMMWORD PTR[80+rsp],xmm10 | 834 » movaps» XMMWORD[80+rsp],xmm10 |
835 » movaps» XMMWORD PTR[96+rsp],xmm11 | 835 » movaps» XMMWORD[96+rsp],xmm11 |
836 » movaps» XMMWORD PTR[112+rsp],xmm12 | 836 » movaps» XMMWORD[112+rsp],xmm12 |
837 » movaps» XMMWORD PTR[128+rsp],xmm13 | 837 » movaps» XMMWORD[128+rsp],xmm13 |
838 » movaps» XMMWORD PTR[144+rsp],xmm14 | 838 » movaps» XMMWORD[144+rsp],xmm14 |
839 » movaps» XMMWORD PTR[160+rsp],xmm15 | 839 » movaps» XMMWORD[160+rsp],xmm15 |
840 $L$cbc_body:: | 840 $L$cbc_body: |
841 » movdqu» xmm6,XMMWORD PTR[r8] | 841 » movdqu» xmm6,XMMWORD[r8] |
842 sub rsi,rdi | 842 sub rsi,rdi |
843 call _vpaes_preheat | 843 call _vpaes_preheat |
844 cmp r9d,0 | 844 cmp r9d,0 |
845 » je» $L$cbc_dec_loop | 845 » je» NEAR $L$cbc_dec_loop |
846 » jmp» $L$cbc_enc_loop | 846 » jmp» NEAR $L$cbc_enc_loop |
847 ALIGN 16 | 847 ALIGN 16 |
848 $L$cbc_enc_loop:: | 848 $L$cbc_enc_loop: |
849 » movdqu» xmm0,XMMWORD PTR[rdi] | 849 » movdqu» xmm0,XMMWORD[rdi] |
850 pxor xmm0,xmm6 | 850 pxor xmm0,xmm6 |
851 call _vpaes_encrypt_core | 851 call _vpaes_encrypt_core |
852 movdqa xmm6,xmm0 | 852 movdqa xmm6,xmm0 |
853 » movdqu» XMMWORD PTR[rdi*1+rsi],xmm0 | 853 » movdqu» XMMWORD[rdi*1+rsi],xmm0 |
854 » lea» rdi,QWORD PTR[16+rdi] | 854 » lea» rdi,[16+rdi] |
855 sub rcx,16 | 855 sub rcx,16 |
856 » jnc» $L$cbc_enc_loop | 856 » jnc» NEAR $L$cbc_enc_loop |
857 » jmp» $L$cbc_done | 857 » jmp» NEAR $L$cbc_done |
858 ALIGN 16 | 858 ALIGN 16 |
859 $L$cbc_dec_loop:: | 859 $L$cbc_dec_loop: |
860 » movdqu» xmm0,XMMWORD PTR[rdi] | 860 » movdqu» xmm0,XMMWORD[rdi] |
861 movdqa xmm7,xmm0 | 861 movdqa xmm7,xmm0 |
862 call _vpaes_decrypt_core | 862 call _vpaes_decrypt_core |
863 pxor xmm0,xmm6 | 863 pxor xmm0,xmm6 |
864 movdqa xmm6,xmm7 | 864 movdqa xmm6,xmm7 |
865 » movdqu» XMMWORD PTR[rdi*1+rsi],xmm0 | 865 » movdqu» XMMWORD[rdi*1+rsi],xmm0 |
866 » lea» rdi,QWORD PTR[16+rdi] | 866 » lea» rdi,[16+rdi] |
867 sub rcx,16 | 867 sub rcx,16 |
868 » jnc» $L$cbc_dec_loop | 868 » jnc» NEAR $L$cbc_dec_loop |
869 $L$cbc_done:: | 869 $L$cbc_done: |
870 » movdqu» XMMWORD PTR[r8],xmm6 | 870 » movdqu» XMMWORD[r8],xmm6 |
871 » movaps» xmm6,XMMWORD PTR[16+rsp] | 871 » movaps» xmm6,XMMWORD[16+rsp] |
872 » movaps» xmm7,XMMWORD PTR[32+rsp] | 872 » movaps» xmm7,XMMWORD[32+rsp] |
873 » movaps» xmm8,XMMWORD PTR[48+rsp] | 873 » movaps» xmm8,XMMWORD[48+rsp] |
874 » movaps» xmm9,XMMWORD PTR[64+rsp] | 874 » movaps» xmm9,XMMWORD[64+rsp] |
875 » movaps» xmm10,XMMWORD PTR[80+rsp] | 875 » movaps» xmm10,XMMWORD[80+rsp] |
876 » movaps» xmm11,XMMWORD PTR[96+rsp] | 876 » movaps» xmm11,XMMWORD[96+rsp] |
877 » movaps» xmm12,XMMWORD PTR[112+rsp] | 877 » movaps» xmm12,XMMWORD[112+rsp] |
878 » movaps» xmm13,XMMWORD PTR[128+rsp] | 878 » movaps» xmm13,XMMWORD[128+rsp] |
879 » movaps» xmm14,XMMWORD PTR[144+rsp] | 879 » movaps» xmm14,XMMWORD[144+rsp] |
880 » movaps» xmm15,XMMWORD PTR[160+rsp] | 880 » movaps» xmm15,XMMWORD[160+rsp] |
881 » lea» rsp,QWORD PTR[184+rsp] | 881 » lea» rsp,[184+rsp] |
882 $L$cbc_epilogue:: | 882 $L$cbc_epilogue: |
883 $L$cbc_abort:: | 883 $L$cbc_abort: |
884 » mov» rdi,QWORD PTR[8+rsp]» ;WIN64 epilogue | 884 » mov» rdi,QWORD[8+rsp]» ;WIN64 epilogue |
885 » mov» rsi,QWORD PTR[16+rsp] | 885 » mov» rsi,QWORD[16+rsp] |
886 DB 0F3h,0C3h ;repret | 886 DB 0F3h,0C3h ;repret |
887 $L$SEH_end_vpaes_cbc_encrypt:: | 887 $L$SEH_end_vpaes_cbc_encrypt: |
888 vpaes_cbc_encrypt» ENDP | |
889 | 888 |
890 | 889 |
891 | 890 |
892 | 891 |
893 | 892 |
894 | 893 |
895 | 894 |
896 ALIGN 16 | 895 ALIGN 16 |
897 _vpaes_preheat» PROC PRIVATE | 896 _vpaes_preheat: |
898 » lea» r10,QWORD PTR[$L$k_s0F] | 897 » lea» r10,[$L$k_s0F] |
899 » movdqa» xmm10,XMMWORD PTR[((-32))+r10] | 898 » movdqa» xmm10,XMMWORD[((-32))+r10] |
900 » movdqa» xmm11,XMMWORD PTR[((-16))+r10] | 899 » movdqa» xmm11,XMMWORD[((-16))+r10] |
901 » movdqa» xmm9,XMMWORD PTR[r10] | 900 » movdqa» xmm9,XMMWORD[r10] |
902 » movdqa» xmm13,XMMWORD PTR[48+r10] | 901 » movdqa» xmm13,XMMWORD[48+r10] |
903 » movdqa» xmm12,XMMWORD PTR[64+r10] | 902 » movdqa» xmm12,XMMWORD[64+r10] |
904 » movdqa» xmm15,XMMWORD PTR[80+r10] | 903 » movdqa» xmm15,XMMWORD[80+r10] |
905 » movdqa» xmm14,XMMWORD PTR[96+r10] | 904 » movdqa» xmm14,XMMWORD[96+r10] |
906 DB 0F3h,0C3h ;repret | 905 DB 0F3h,0C3h ;repret |
907 _vpaes_preheat ENDP | |
908 | 906 |
909 | 907 |
910 | 908 |
| 909 |
911 | 910 |
912 | 911 |
913 | 912 |
914 ALIGN 64 | 913 ALIGN 64 |
915 _vpaes_consts:: | 914 _vpaes_consts: |
916 $L$k_inv:: | 915 $L$k_inv: |
917 » DQ» 00E05060F0D080180h,0040703090A0B0C02h | 916 » DQ» 0x0E05060F0D080180,0x040703090A0B0C02 |
918 » DQ» 001040A060F0B0780h,0030D0E0C02050809h | 917 » DQ» 0x01040A060F0B0780,0x030D0E0C02050809 |
919 | 918 |
920 $L$k_s0F:: | 919 $L$k_s0F: |
921 » DQ» 00F0F0F0F0F0F0F0Fh,00F0F0F0F0F0F0F0Fh | 920 » DQ» 0x0F0F0F0F0F0F0F0F,0x0F0F0F0F0F0F0F0F |
922 | 921 |
923 $L$k_ipt:: | 922 $L$k_ipt: |
924 » DQ» 0C2B2E8985A2A7000h,0CABAE09052227808h | 923 » DQ» 0xC2B2E8985A2A7000,0xCABAE09052227808 |
925 » DQ» 04C01307D317C4D00h,0CD80B1FCB0FDCC81h | 924 » DQ» 0x4C01307D317C4D00,0xCD80B1FCB0FDCC81 |
926 | 925 |
927 $L$k_sb1:: | 926 $L$k_sb1: |
928 » DQ» 0B19BE18FCB503E00h,0A5DF7A6E142AF544h | 927 » DQ» 0xB19BE18FCB503E00,0xA5DF7A6E142AF544 |
929 » DQ» 03618D415FAE22300h,03BF7CCC10D2ED9EFh | 928 » DQ» 0x3618D415FAE22300,0x3BF7CCC10D2ED9EF |
930 $L$k_sb2:: | 929 $L$k_sb2: |
931 » DQ» 0E27A93C60B712400h,05EB7E955BC982FCDh | 930 » DQ» 0xE27A93C60B712400,0x5EB7E955BC982FCD |
932 » DQ» 069EB88400AE12900h,0C2A163C8AB82234Ah | 931 » DQ» 0x69EB88400AE12900,0xC2A163C8AB82234A |
933 $L$k_sbo:: | 932 $L$k_sbo: |
934 » DQ» 0D0D26D176FBDC700h,015AABF7AC502A878h | 933 » DQ» 0xD0D26D176FBDC700,0x15AABF7AC502A878 |
935 » DQ» 0CFE474A55FBB6A00h,08E1E90D1412B35FAh | 934 » DQ» 0xCFE474A55FBB6A00,0x8E1E90D1412B35FA |
936 | 935 |
937 $L$k_mc_forward:: | 936 $L$k_mc_forward: |
938 » DQ» 00407060500030201h,00C0F0E0D080B0A09h | 937 » DQ» 0x0407060500030201,0x0C0F0E0D080B0A09 |
939 » DQ» 0080B0A0904070605h,0000302010C0F0E0Dh | 938 » DQ» 0x080B0A0904070605,0x000302010C0F0E0D |
940 » DQ» 00C0F0E0D080B0A09h,00407060500030201h | 939 » DQ» 0x0C0F0E0D080B0A09,0x0407060500030201 |
941 » DQ» 0000302010C0F0E0Dh,0080B0A0904070605h | 940 » DQ» 0x000302010C0F0E0D,0x080B0A0904070605 |
942 | 941 |
943 $L$k_mc_backward:: | 942 $L$k_mc_backward: |
944 » DQ» 00605040702010003h,00E0D0C0F0A09080Bh | 943 » DQ» 0x0605040702010003,0x0E0D0C0F0A09080B |
945 » DQ» 0020100030E0D0C0Fh,00A09080B06050407h | 944 » DQ» 0x020100030E0D0C0F,0x0A09080B06050407 |
946 » DQ» 00E0D0C0F0A09080Bh,00605040702010003h | 945 » DQ» 0x0E0D0C0F0A09080B,0x0605040702010003 |
947 » DQ» 00A09080B06050407h,0020100030E0D0C0Fh | 946 » DQ» 0x0A09080B06050407,0x020100030E0D0C0F |
948 | 947 |
949 $L$k_sr:: | 948 $L$k_sr: |
950 » DQ» 00706050403020100h,00F0E0D0C0B0A0908h | 949 » DQ» 0x0706050403020100,0x0F0E0D0C0B0A0908 |
951 » DQ» 0030E09040F0A0500h,00B06010C07020D08h | 950 » DQ» 0x030E09040F0A0500,0x0B06010C07020D08 |
952 » DQ» 00F060D040B020900h,0070E050C030A0108h | 951 » DQ» 0x0F060D040B020900,0x070E050C030A0108 |
953 » DQ» 00B0E0104070A0D00h,00306090C0F020508h | 952 » DQ» 0x0B0E0104070A0D00,0x0306090C0F020508 |
954 | 953 |
955 $L$k_rcon:: | 954 $L$k_rcon: |
956 » DQ» 01F8391B9AF9DEEB6h,0702A98084D7C7D81h | 955 » DQ» 0x1F8391B9AF9DEEB6,0x702A98084D7C7D81 |
957 | 956 |
958 $L$k_s63:: | 957 $L$k_s63: |
959 » DQ» 05B5B5B5B5B5B5B5Bh,05B5B5B5B5B5B5B5Bh | 958 » DQ» 0x5B5B5B5B5B5B5B5B,0x5B5B5B5B5B5B5B5B |
960 | 959 |
961 $L$k_opt:: | 960 $L$k_opt: |
962 » DQ» 0FF9F4929D6B66000h,0F7974121DEBE6808h | 961 » DQ» 0xFF9F4929D6B66000,0xF7974121DEBE6808 |
963 » DQ» 001EDBD5150BCEC00h,0E10D5DB1B05C0CE0h | 962 » DQ» 0x01EDBD5150BCEC00,0xE10D5DB1B05C0CE0 |
964 | 963 |
965 $L$k_deskew:: | 964 $L$k_deskew: |
966 » DQ» 007E4A34047A4E300h,01DFEB95A5DBEF91Ah | 965 » DQ» 0x07E4A34047A4E300,0x1DFEB95A5DBEF91A |
967 » DQ» 05F36B5DC83EA6900h,02841C2ABF49D1E77h | 966 » DQ» 0x5F36B5DC83EA6900,0x2841C2ABF49D1E77 |
968 | 967 |
969 | 968 |
970 | 969 |
971 | 970 |
972 | 971 |
973 $L$k_dksd:: | 972 $L$k_dksd: |
974 » DQ» 0FEB91A5DA3E44700h,00740E3A45A1DBEF9h | 973 » DQ» 0xFEB91A5DA3E44700,0x0740E3A45A1DBEF9 |
975 » DQ» 041C277F4B5368300h,05FDC69EAAB289D1Eh | 974 » DQ» 0x41C277F4B5368300,0x5FDC69EAAB289D1E |
976 $L$k_dksb:: | 975 $L$k_dksb: |
977 » DQ» 09A4FCA1F8550D500h,003D653861CC94C99h | 976 » DQ» 0x9A4FCA1F8550D500,0x03D653861CC94C99 |
978 » DQ» 0115BEDA7B6FC4A00h,0D993256F7E3482C8h | 977 » DQ» 0x115BEDA7B6FC4A00,0xD993256F7E3482C8 |
979 $L$k_dkse:: | 978 $L$k_dkse: |
980 » DQ» 0D5031CCA1FC9D600h,053859A4C994F5086h | 979 » DQ» 0xD5031CCA1FC9D600,0x53859A4C994F5086 |
981 » DQ» 0A23196054FDC7BE8h,0CD5EF96A20B31487h | 980 » DQ» 0xA23196054FDC7BE8,0xCD5EF96A20B31487 |
982 $L$k_dks9:: | 981 $L$k_dks9: |
983 » DQ» 0B6116FC87ED9A700h,04AED933482255BFCh | 982 » DQ» 0xB6116FC87ED9A700,0x4AED933482255BFC |
984 » DQ» 04576516227143300h,08BB89FACE9DAFDCEh | 983 » DQ» 0x4576516227143300,0x8BB89FACE9DAFDCE |
985 | 984 |
986 | 985 |
987 | 986 |
988 | 987 |
989 | 988 |
990 $L$k_dipt:: | 989 $L$k_dipt: |
991 » DQ» 00F505B040B545F00h,0154A411E114E451Ah | 990 » DQ» 0x0F505B040B545F00,0x154A411E114E451A |
992 » DQ» 086E383E660056500h,012771772F491F194h | 991 » DQ» 0x86E383E660056500,0x12771772F491F194 |
993 | 992 |
994 $L$k_dsb9:: | 993 $L$k_dsb9: |
995 » DQ» 0851C03539A86D600h,0CAD51F504F994CC9h | 994 » DQ» 0x851C03539A86D600,0xCAD51F504F994CC9 |
996 » DQ» 0C03B1789ECD74900h,0725E2C9EB2FBA565h | 995 » DQ» 0xC03B1789ECD74900,0x725E2C9EB2FBA565 |
997 $L$k_dsbd:: | 996 $L$k_dsbd: |
998 » DQ» 07D57CCDFE6B1A200h,0F56E9B13882A4439h | 997 » DQ» 0x7D57CCDFE6B1A200,0xF56E9B13882A4439 |
999 » DQ» 03CE2FAF724C6CB00h,02931180D15DEEFD3h | 998 » DQ» 0x3CE2FAF724C6CB00,0x2931180D15DEEFD3 |
1000 $L$k_dsbb:: | 999 $L$k_dsbb: |
1001 » DQ» 0D022649296B44200h,0602646F6B0F2D404h | 1000 » DQ» 0xD022649296B44200,0x602646F6B0F2D404 |
1002 » DQ» 0C19498A6CD596700h,0F3FF0C3E3255AA6Bh | 1001 » DQ» 0xC19498A6CD596700,0xF3FF0C3E3255AA6B |
1003 $L$k_dsbe:: | 1002 $L$k_dsbe: |
1004 » DQ» 046F2929626D4D000h,02242600464B4F6B0h | 1003 » DQ» 0x46F2929626D4D000,0x2242600464B4F6B0 |
1005 » DQ» 00C55A6CDFFAAC100h,09467F36B98593E32h | 1004 » DQ» 0x0C55A6CDFFAAC100,0x9467F36B98593E32 |
1006 $L$k_dsbo:: | 1005 $L$k_dsbo: |
1007 » DQ» 01387EA537EF94000h,0C7AA6DB9D4943E2Dh | 1006 » DQ» 0x1387EA537EF94000,0xC7AA6DB9D4943E2D |
1008 » DQ» 012D7560F93441D00h,0CA4B8159D8C58E9Ch | 1007 » DQ» 0x12D7560F93441D00,0xCA4B8159D8C58E9C |
1009 DB 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105 | 1008 DB 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105 |
1010 DB 111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54 | 1009 DB 111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54 |
1011 DB 52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97 | 1010 DB 52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97 |
1012 DB 109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32 | 1011 DB 109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32 |
1013 DB 85,110,105,118,101,114,115,105,116,121,41,0 | 1012 DB 85,110,105,118,101,114,115,105,116,121,41,0 |
1014 ALIGN 64 | 1013 ALIGN 64 |
1015 | 1014 |
1016 EXTERN» __imp_RtlVirtualUnwind:NEAR | 1015 EXTERN» __imp_RtlVirtualUnwind |
1017 | 1016 |
1018 ALIGN 16 | 1017 ALIGN 16 |
1019 se_handler» PROC PRIVATE | 1018 se_handler: |
1020 push rsi | 1019 push rsi |
1021 push rdi | 1020 push rdi |
1022 push rbx | 1021 push rbx |
1023 push rbp | 1022 push rbp |
1024 push r12 | 1023 push r12 |
1025 push r13 | 1024 push r13 |
1026 push r14 | 1025 push r14 |
1027 push r15 | 1026 push r15 |
1028 pushfq | 1027 pushfq |
1029 sub rsp,64 | 1028 sub rsp,64 |
1030 | 1029 |
1031 » mov» rax,QWORD PTR[120+r8] | 1030 » mov» rax,QWORD[120+r8] |
1032 » mov» rbx,QWORD PTR[248+r8] | 1031 » mov» rbx,QWORD[248+r8] |
1033 | 1032 |
1034 » mov» rsi,QWORD PTR[8+r9] | 1033 » mov» rsi,QWORD[8+r9] |
1035 » mov» r11,QWORD PTR[56+r9] | 1034 » mov» r11,QWORD[56+r9] |
1036 | 1035 |
1037 » mov» r10d,DWORD PTR[r11] | 1036 » mov» r10d,DWORD[r11] |
1038 » lea» r10,QWORD PTR[r10*1+rsi] | 1037 » lea» r10,[r10*1+rsi] |
1039 cmp rbx,r10 | 1038 cmp rbx,r10 |
1040 » jb» $L$in_prologue | 1039 » jb» NEAR $L$in_prologue |
1041 | 1040 |
1042 » mov» rax,QWORD PTR[152+r8] | 1041 » mov» rax,QWORD[152+r8] |
1043 | 1042 |
1044 » mov» r10d,DWORD PTR[4+r11] | 1043 » mov» r10d,DWORD[4+r11] |
1045 » lea» r10,QWORD PTR[r10*1+rsi] | 1044 » lea» r10,[r10*1+rsi] |
1046 cmp rbx,r10 | 1045 cmp rbx,r10 |
1047 » jae» $L$in_prologue | 1046 » jae» NEAR $L$in_prologue |
1048 | 1047 |
1049 » lea» rsi,QWORD PTR[16+rax] | 1048 » lea» rsi,[16+rax] |
1050 » lea» rdi,QWORD PTR[512+r8] | 1049 » lea» rdi,[512+r8] |
1051 mov ecx,20 | 1050 mov ecx,20 |
1052 » DD» 0a548f3fch | 1051 » DD» 0xa548f3fc |
1053 » lea» rax,QWORD PTR[184+rax] | 1052 » lea» rax,[184+rax] |
1054 | 1053 |
1055 $L$in_prologue:: | 1054 $L$in_prologue: |
1056 » mov» rdi,QWORD PTR[8+rax] | 1055 » mov» rdi,QWORD[8+rax] |
1057 » mov» rsi,QWORD PTR[16+rax] | 1056 » mov» rsi,QWORD[16+rax] |
1058 » mov» QWORD PTR[152+r8],rax | 1057 » mov» QWORD[152+r8],rax |
1059 » mov» QWORD PTR[168+r8],rsi | 1058 » mov» QWORD[168+r8],rsi |
1060 » mov» QWORD PTR[176+r8],rdi | 1059 » mov» QWORD[176+r8],rdi |
1061 | 1060 |
1062 » mov» rdi,QWORD PTR[40+r9] | 1061 » mov» rdi,QWORD[40+r9] |
1063 mov rsi,r8 | 1062 mov rsi,r8 |
1064 mov ecx,154 | 1063 mov ecx,154 |
1065 » DD» 0a548f3fch | 1064 » DD» 0xa548f3fc |
1066 | 1065 |
1067 mov rsi,r9 | 1066 mov rsi,r9 |
1068 xor rcx,rcx | 1067 xor rcx,rcx |
1069 » mov» rdx,QWORD PTR[8+rsi] | 1068 » mov» rdx,QWORD[8+rsi] |
1070 » mov» r8,QWORD PTR[rsi] | 1069 » mov» r8,QWORD[rsi] |
1071 » mov» r9,QWORD PTR[16+rsi] | 1070 » mov» r9,QWORD[16+rsi] |
1072 » mov» r10,QWORD PTR[40+rsi] | 1071 » mov» r10,QWORD[40+rsi] |
1073 » lea» r11,QWORD PTR[56+rsi] | 1072 » lea» r11,[56+rsi] |
1074 » lea» r12,QWORD PTR[24+rsi] | 1073 » lea» r12,[24+rsi] |
1075 » mov» QWORD PTR[32+rsp],r10 | 1074 » mov» QWORD[32+rsp],r10 |
1076 » mov» QWORD PTR[40+rsp],r11 | 1075 » mov» QWORD[40+rsp],r11 |
1077 » mov» QWORD PTR[48+rsp],r12 | 1076 » mov» QWORD[48+rsp],r12 |
1078 » mov» QWORD PTR[56+rsp],rcx | 1077 » mov» QWORD[56+rsp],rcx |
1079 » call» QWORD PTR[__imp_RtlVirtualUnwind] | 1078 » call» QWORD[__imp_RtlVirtualUnwind] |
1080 | 1079 |
1081 mov eax,1 | 1080 mov eax,1 |
1082 add rsp,64 | 1081 add rsp,64 |
1083 popfq | 1082 popfq |
1084 pop r15 | 1083 pop r15 |
1085 pop r14 | 1084 pop r14 |
1086 pop r13 | 1085 pop r13 |
1087 pop r12 | 1086 pop r12 |
1088 pop rbp | 1087 pop rbp |
1089 pop rbx | 1088 pop rbx |
1090 pop rdi | 1089 pop rdi |
1091 pop rsi | 1090 pop rsi |
1092 DB 0F3h,0C3h ;repret | 1091 DB 0F3h,0C3h ;repret |
1093 se_handler ENDP | |
1094 | 1092 |
1095 .text$» ENDS | 1093 |
1096 .pdata» SEGMENT READONLY ALIGN(4) | 1094 section».pdata rdata align=4 |
1097 ALIGN 4 | 1095 ALIGN 4 |
1098 » DD» imagerel $L$SEH_begin_vpaes_set_encrypt_key | 1096 » DD» $L$SEH_begin_vpaes_set_encrypt_key wrt ..imagebase |
1099 » DD» imagerel $L$SEH_end_vpaes_set_encrypt_key | 1097 » DD» $L$SEH_end_vpaes_set_encrypt_key wrt ..imagebase |
1100 » DD» imagerel $L$SEH_info_vpaes_set_encrypt_key | 1098 » DD» $L$SEH_info_vpaes_set_encrypt_key wrt ..imagebase |
1101 | 1099 |
1102 » DD» imagerel $L$SEH_begin_vpaes_set_decrypt_key | 1100 » DD» $L$SEH_begin_vpaes_set_decrypt_key wrt ..imagebase |
1103 » DD» imagerel $L$SEH_end_vpaes_set_decrypt_key | 1101 » DD» $L$SEH_end_vpaes_set_decrypt_key wrt ..imagebase |
1104 » DD» imagerel $L$SEH_info_vpaes_set_decrypt_key | 1102 » DD» $L$SEH_info_vpaes_set_decrypt_key wrt ..imagebase |
1105 | 1103 |
1106 » DD» imagerel $L$SEH_begin_vpaes_encrypt | 1104 » DD» $L$SEH_begin_vpaes_encrypt wrt ..imagebase |
1107 » DD» imagerel $L$SEH_end_vpaes_encrypt | 1105 » DD» $L$SEH_end_vpaes_encrypt wrt ..imagebase |
1108 » DD» imagerel $L$SEH_info_vpaes_encrypt | 1106 » DD» $L$SEH_info_vpaes_encrypt wrt ..imagebase |
1109 | 1107 |
1110 » DD» imagerel $L$SEH_begin_vpaes_decrypt | 1108 » DD» $L$SEH_begin_vpaes_decrypt wrt ..imagebase |
1111 » DD» imagerel $L$SEH_end_vpaes_decrypt | 1109 » DD» $L$SEH_end_vpaes_decrypt wrt ..imagebase |
1112 » DD» imagerel $L$SEH_info_vpaes_decrypt | 1110 » DD» $L$SEH_info_vpaes_decrypt wrt ..imagebase |
1113 | 1111 |
1114 » DD» imagerel $L$SEH_begin_vpaes_cbc_encrypt | 1112 » DD» $L$SEH_begin_vpaes_cbc_encrypt wrt ..imagebase |
1115 » DD» imagerel $L$SEH_end_vpaes_cbc_encrypt | 1113 » DD» $L$SEH_end_vpaes_cbc_encrypt wrt ..imagebase |
1116 » DD» imagerel $L$SEH_info_vpaes_cbc_encrypt | 1114 » DD» $L$SEH_info_vpaes_cbc_encrypt wrt ..imagebase |
1117 | 1115 |
1118 .pdata» ENDS | 1116 section».xdata rdata align=8 |
1119 .xdata» SEGMENT READONLY ALIGN(8) | |
1120 ALIGN 8 | 1117 ALIGN 8 |
1121 $L$SEH_info_vpaes_set_encrypt_key:: | 1118 $L$SEH_info_vpaes_set_encrypt_key: |
1122 DB 9,0,0,0 | 1119 DB 9,0,0,0 |
1123 » DD» imagerel se_handler | 1120 » DD» se_handler wrt ..imagebase |
1124 » DD» imagerel $L$enc_key_body,imagerel $L$enc_key_epilogue | 1121 » DD» $L$enc_key_body wrt ..imagebase,$L$enc_key_epilogue wrt ..imageb
ase |
1125 $L$SEH_info_vpaes_set_decrypt_key:: | 1122 $L$SEH_info_vpaes_set_decrypt_key: |
1126 DB 9,0,0,0 | 1123 DB 9,0,0,0 |
1127 » DD» imagerel se_handler | 1124 » DD» se_handler wrt ..imagebase |
1128 » DD» imagerel $L$dec_key_body,imagerel $L$dec_key_epilogue | 1125 » DD» $L$dec_key_body wrt ..imagebase,$L$dec_key_epilogue wrt ..imageb
ase |
1129 $L$SEH_info_vpaes_encrypt:: | 1126 $L$SEH_info_vpaes_encrypt: |
1130 DB 9,0,0,0 | 1127 DB 9,0,0,0 |
1131 » DD» imagerel se_handler | 1128 » DD» se_handler wrt ..imagebase |
1132 » DD» imagerel $L$enc_body,imagerel $L$enc_epilogue | 1129 » DD» $L$enc_body wrt ..imagebase,$L$enc_epilogue wrt ..imagebase |
1133 $L$SEH_info_vpaes_decrypt:: | 1130 $L$SEH_info_vpaes_decrypt: |
1134 DB 9,0,0,0 | 1131 DB 9,0,0,0 |
1135 » DD» imagerel se_handler | 1132 » DD» se_handler wrt ..imagebase |
1136 » DD» imagerel $L$dec_body,imagerel $L$dec_epilogue | 1133 » DD» $L$dec_body wrt ..imagebase,$L$dec_epilogue wrt ..imagebase |
1137 $L$SEH_info_vpaes_cbc_encrypt:: | 1134 $L$SEH_info_vpaes_cbc_encrypt: |
1138 DB 9,0,0,0 | 1135 DB 9,0,0,0 |
1139 » DD» imagerel se_handler | 1136 » DD» se_handler wrt ..imagebase |
1140 » DD» imagerel $L$cbc_body,imagerel $L$cbc_epilogue | 1137 » DD» $L$cbc_body wrt ..imagebase,$L$cbc_epilogue wrt ..imagebase |
1141 | |
1142 .xdata» ENDS | |
1143 END | |
OLD | NEW |