| 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 |