1116680a4aac90f2aa7413d9095a592090648e557Ben MurdochOPTION DOTNAME 25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles).text$ SEGMENT ALIGN(256) 'CODE' 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 4116680a4aac90f2aa7413d9095a592090648e557Ben MurdochEXTERN asm_AES_encrypt:NEAR 5116680a4aac90f2aa7413d9095a592090648e557Ben MurdochEXTERN asm_AES_decrypt:NEAR 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 64 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch_bsaes_encrypt8 PROC PRIVATE 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r11,QWORD PTR[$L$BS0] 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm8,XMMWORD PTR[rax] 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[16+rax] 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[80+r11] 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm8 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm8 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm8 19116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,68,15,56,0,255 20116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,199 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm8 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm8 23116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,207 24116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,215 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm8 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm8 27116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,223 28116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,231 29116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,239 30116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,247 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch_bsaes_encrypt8_bitslice:: 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[r11] 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm8,XMMWORD PTR[16+r11] 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm5 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm5,1 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm3 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm3,1 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm6 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm4 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm5,xmm7 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm3,xmm7 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm5 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm5,1 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm3 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm3,1 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm9 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm10 48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm1 49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm1,1 50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm15 51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm15,1 52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm2 53116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm0 54116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm1,xmm7 55116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm15,xmm7 56116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm1 57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm1,1 58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm15 59116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm15,1 60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm9 61116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm10 62116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[32+r11] 63116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm4 64116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm4,2 65116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm3 66116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm3,2 67116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm6 68116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm5 69116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm4,xmm8 70116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm3,xmm8 71116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm4 72116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm4,2 73116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm3 74116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm3,2 75116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm9 76116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm10 77116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm0 78116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm0,2 79116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm15 80116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm15,2 81116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm2 82116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm1 83116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm0,xmm8 84116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm15,xmm8 85116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm0 86116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm0,2 87116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm15 88116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm15,2 89116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm9 90116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm10 91116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm2 92116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm2,4 93116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm1 94116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm1,4 95116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm6 96116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm5 97116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm2,xmm7 98116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm1,xmm7 99116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm2 100116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm2,4 101116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm1 102116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm1,4 103116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm9 104116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm10 105116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm0 106116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm0,4 107116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm15 108116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm15,4 109116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm4 110116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm3 111116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm0,xmm7 112116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm15,xmm7 113116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm0 114116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm0,4 115116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm15 116116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm15,4 117116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm9 118116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm10 119116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch dec r10d 120116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$enc_sbox 121116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 122116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$enc_loop:: 123116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[rax] 124116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[16+rax] 125116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,XMMWORD PTR[32+rax] 126116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,XMMWORD PTR[48+rax] 127116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,68,15,56,0,255 128116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,199 129116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,XMMWORD PTR[64+rax] 130116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,XMMWORD PTR[80+rax] 131116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,207 132116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,215 133116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,XMMWORD PTR[96+rax] 134116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,XMMWORD PTR[112+rax] 135116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,223 136116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,231 137116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,239 138116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,247 139116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rax] 140116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$enc_sbox:: 141116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm5 142116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm0 143116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm15 144116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm1 145116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm15 146116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 147116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm2 148116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm6 149116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm4 150116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm3 151116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm4 152116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm0 153116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 154116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm6 155116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm4 156116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm6 157116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm0 158116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm8,xmm4 159116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm12,xmm1 160116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm11,xmm5 161116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 162116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm3 163116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm1 164116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm2 165116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm13,xmm10 166116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm12,xmm3 167116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,xmm9 168116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm15 169116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm14,xmm10 170116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 171116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch por xmm9,xmm8 172116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch por xmm10,xmm11 173116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm7 174116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm11 175116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm8 176116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm7,xmm8 177116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm14,xmm11 178116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm11,xmm2 179116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm15 180116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm12,xmm11 181116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm12 182116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm12 183116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm12,xmm6 184116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm11,xmm4 185116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm12,xmm0 186116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm5 187116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm8,xmm12 188116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm12,xmm11 189116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch por xmm8,xmm11 190116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm12 191116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm14 192116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm13 193116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm14 194116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm11,xmm1 195116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm13 196116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm12,xmm3 197116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm13 198116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm13,xmm0 199116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm11,xmm2 200116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm14,xmm6 201116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm12,xmm15 202116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm4 203116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch por xmm14,xmm5 204116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm11 205116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm12 206116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm13 207116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm14 208116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 209116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 210116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 211116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 212116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 213116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm11,xmm10 214116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm10,xmm8 215116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm9 216116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 217116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm13,xmm7 218116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm14,xmm11 219116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm13,xmm10 220116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm14,xmm13 221116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 222116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm12,xmm8 223116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm9 224116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm12,xmm7 225116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 226116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm9 227116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 228116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm12,xmm10 229116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 230116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm13 231116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm12,xmm7 232116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 233116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm12 234116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm12 235116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 236116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm9,xmm7 237116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 238116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm13,xmm9 239116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm9 240116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 241116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm14 242116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 243116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm13,xmm11 244116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm11,xmm5 245116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,xmm4 246116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm14 247116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm13 248116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm9,xmm5 249116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm4 250116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm4,xmm14 251116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm5,xmm13 252116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm4 253116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm9 254116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm15 255116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm2 256116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm12 257116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm13,xmm8 258116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm14 259116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm12 260116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm13 261116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm8 262116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm10,xmm11 263116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm9,xmm15 264116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm7 265116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm2 266116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm7,xmm14 267116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm2,xmm12 268116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm11,xmm13 269116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm15,xmm8 270116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm11 271116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm2 272116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm10 273116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm9 274116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm11 275116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm11 276116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm7 277116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm7 278116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 279116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm11,xmm6 280116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,xmm0 281116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm3 282116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm1 283116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm14 284116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm12 285116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm13 286116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm8 287116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm10,xmm11 288116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm9,xmm3 289116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm7 290116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm1 291116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm7,xmm14 292116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm1,xmm12 293116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm11,xmm13 294116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm3,xmm8 295116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm11 296116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm1 297116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm10 298116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm9 299116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm12 300116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm13,xmm8 301116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm14 302116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm13 303116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm10,xmm6 304116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm0 305116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm0,xmm14 306116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm6,xmm13 307116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm0 308116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm10 309116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm11 310116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm11 311116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm7 312116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm7 313116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm15 314116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm5 315116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm6 316116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm15 317116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm0 318116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 319116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm4 320116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm1 321116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm2 322116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm4 323116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm4 324116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 325116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm2 326116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch dec r10d 327116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jl $L$enc_done 328116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm7,xmm15,093h 329116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm8,xmm0,093h 330116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm7 331116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm9,xmm3,093h 332116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 333116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm10,xmm5,093h 334116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm9 335116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm11,xmm2,093h 336116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm10 337116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm12,xmm6,093h 338116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm11 339116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm1,093h 340116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm12 341116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm14,xmm4,093h 342116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm13 343116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm14 344116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 345116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm15 346116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm4 347116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm4 348116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm15,xmm15,04Eh 349116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm0 350116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm0,xmm0,04Eh 351116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm12,xmm2 352116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm7 353116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm13,xmm6 354116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 355116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm5 356116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm7,xmm2,04Eh 357116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm1 358116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm8,xmm6,04Eh 359116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm3 360116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm2,xmm5,04Eh 361116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm4 362116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm6,xmm4,04Eh 363116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm4 364116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm5,xmm1,04Eh 365116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm11 366116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm1,xmm3,04Eh 367116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm12 368116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm10 369116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm14 370116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm13 371116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm3,xmm7 372116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm9 373116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm4,xmm8 374116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[48+r11] 375116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jnz $L$enc_loop 376116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[64+r11] 377116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$enc_loop 378116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 379116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$enc_done:: 380116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[r11] 381116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm8,XMMWORD PTR[16+r11] 382116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm1 383116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm1,1 384116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm2 385116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm2,1 386116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm4 387116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm6 388116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm1,xmm7 389116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm2,xmm7 390116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm1 391116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm1,1 392116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm2 393116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm2,1 394116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm9 395116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm10 396116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm3 397116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm3,1 398116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm15 399116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm15,1 400116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm5 401116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm0 402116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm3,xmm7 403116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm15,xmm7 404116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm3 405116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm3,1 406116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm15 407116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm15,1 408116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm9 409116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm10 410116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[32+r11] 411116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm6 412116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm6,2 413116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm2 414116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm2,2 415116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm4 416116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm1 417116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm6,xmm8 418116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm2,xmm8 419116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm6 420116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm6,2 421116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm2 422116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm2,2 423116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm9 424116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm10 425116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm0 426116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm0,2 427116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm15 428116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm15,2 429116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm5 430116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm3 431116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm0,xmm8 432116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm15,xmm8 433116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm0 434116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm0,2 435116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm15 436116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm15,2 437116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm9 438116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm10 439116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm5 440116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm5,4 441116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm3 442116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm3,4 443116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm4 444116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm1 445116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm5,xmm7 446116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm3,xmm7 447116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm5 448116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm5,4 449116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm3 450116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm3,4 451116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm9 452116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm10 453116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm0 454116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm0,4 455116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm15 456116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm15,4 457116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm6 458116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm2 459116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm0,xmm7 460116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm15,xmm7 461116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm0 462116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm0,4 463116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm15 464116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm15,4 465116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm9 466116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm10 467116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[rax] 468116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm7 469116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm7 470116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm7 471116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm7 472116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm7 473116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm7 474116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm7 475116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm7 476116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 477116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch_bsaes_encrypt8 ENDP 478116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 479116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 480116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 64 481116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch_bsaes_decrypt8 PROC PRIVATE 482116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r11,QWORD PTR[$L$BS0] 483116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 484116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm8,XMMWORD PTR[rax] 485116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[16+rax] 486116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[((-48))+r11] 487116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm8 488116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 489116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm8 490116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm8 491116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,68,15,56,0,255 492116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,199 493116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm8 494116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm8 495116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,207 496116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,215 497116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm8 498116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm8 499116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,223 500116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,231 501116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,239 502116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,247 503116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[r11] 504116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm8,XMMWORD PTR[16+r11] 505116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm5 506116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm5,1 507116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm3 508116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm3,1 509116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm6 510116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm4 511116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm5,xmm7 512116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm3,xmm7 513116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm5 514116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm5,1 515116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm3 516116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm3,1 517116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm9 518116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm10 519116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm1 520116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm1,1 521116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm15 522116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm15,1 523116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm2 524116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm0 525116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm1,xmm7 526116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm15,xmm7 527116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm1 528116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm1,1 529116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm15 530116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm15,1 531116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm9 532116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm10 533116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[32+r11] 534116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm4 535116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm4,2 536116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm3 537116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm3,2 538116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm6 539116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm5 540116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm4,xmm8 541116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm3,xmm8 542116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm4 543116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm4,2 544116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm3 545116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm3,2 546116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm9 547116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm10 548116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm0 549116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm0,2 550116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm15 551116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm15,2 552116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm2 553116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm1 554116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm0,xmm8 555116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm15,xmm8 556116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm0 557116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm0,2 558116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm15 559116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm15,2 560116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm9 561116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm10 562116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm2 563116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm2,4 564116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm1 565116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm1,4 566116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm6 567116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm5 568116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm2,xmm7 569116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm1,xmm7 570116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm2 571116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm2,4 572116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm1 573116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm1,4 574116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm9 575116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm10 576116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm0 577116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm0,4 578116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm15 579116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm15,4 580116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm4 581116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm3 582116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm0,xmm7 583116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm15,xmm7 584116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm0 585116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm0,4 586116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm15 587116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm15,4 588116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm9 589116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm10 590116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch dec r10d 591116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$dec_sbox 592116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 593116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$dec_loop:: 594116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[rax] 595116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[16+rax] 596116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,XMMWORD PTR[32+rax] 597116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,XMMWORD PTR[48+rax] 598116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,68,15,56,0,255 599116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,199 600116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,XMMWORD PTR[64+rax] 601116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,XMMWORD PTR[80+rax] 602116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,207 603116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,215 604116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,XMMWORD PTR[96+rax] 605116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,XMMWORD PTR[112+rax] 606116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,223 607116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,231 608116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,239 609116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,247 610116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rax] 611116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$dec_sbox:: 612116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm3 613116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 614116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm6 615116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm6 616116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm3 617116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm5 618116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm6 619116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 620116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm0 621116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm4 622116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm15 623116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm15 624116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm2 625116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm2 626116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm6 627116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm8,xmm0 628116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm12,xmm3 629116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm11,xmm4 630116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 631116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm15 632116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm3 633116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm5 634116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm13,xmm10 635116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm12,xmm15 636116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,xmm9 637116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm1 638116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm14,xmm10 639116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 640116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch por xmm9,xmm8 641116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch por xmm10,xmm11 642116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm7 643116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm11 644116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm8 645116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm7,xmm8 646116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm14,xmm11 647116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm11,xmm5 648116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm1 649116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm12,xmm11 650116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm12 651116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm12 652116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm12,xmm2 653116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm11,xmm0 654116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm12,xmm6 655116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm4 656116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm8,xmm12 657116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm12,xmm11 658116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch por xmm8,xmm11 659116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm12 660116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm14 661116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm13 662116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm14 663116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm11,xmm3 664116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm13 665116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm12,xmm15 666116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm13 667116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm13,xmm6 668116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm11,xmm5 669116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm14,xmm2 670116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm12,xmm1 671116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm0 672116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch por xmm14,xmm4 673116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm11 674116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm12 675116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm13 676116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm14 677116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 678116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 679116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 680116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 681116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 682116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm11,xmm10 683116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm10,xmm8 684116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm9 685116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 686116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm13,xmm7 687116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm14,xmm11 688116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm13,xmm10 689116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm14,xmm13 690116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 691116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm12,xmm8 692116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm9 693116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm12,xmm7 694116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 695116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm9 696116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 697116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm12,xmm10 698116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 699116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm13 700116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm12,xmm7 701116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 702116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm12 703116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm12 704116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 705116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm9,xmm7 706116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 707116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm13,xmm9 708116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm9 709116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 710116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm14 711116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 712116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm13,xmm11 713116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm11,xmm4 714116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,xmm0 715116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm14 716116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm13 717116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm9,xmm4 718116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm0 719116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm0,xmm14 720116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm4,xmm13 721116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm0 722116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm9 723116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm1 724116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm5 725116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm12 726116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm13,xmm8 727116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm14 728116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm12 729116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm13 730116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm8 731116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm10,xmm11 732116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm9,xmm1 733116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm7 734116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm5 735116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm7,xmm14 736116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm5,xmm12 737116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm11,xmm13 738116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm1,xmm8 739116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm11 740116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm5 741116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm10 742116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm9 743116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm11 744116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm11 745116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm7 746116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm7 747116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 748116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm11,xmm2 749116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,xmm6 750116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm15 751116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm3 752116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm14 753116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm12 754116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm13 755116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm8 756116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm10,xmm11 757116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm9,xmm15 758116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm7 759116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm3 760116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm7,xmm14 761116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm3,xmm12 762116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm11,xmm13 763116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm15,xmm8 764116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm11 765116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm3 766116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm10 767116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm9 768116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm12 769116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm13,xmm8 770116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm14 771116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm13 772116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm10,xmm2 773116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm6 774116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm6,xmm14 775116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm2,xmm13 776116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm6 777116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm10 778116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm11 779116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm11 780116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm7 781116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm7 782116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm6 783116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm4 784116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 785116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm0 786116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm6 787116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm6 788116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm1 789116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm15 790116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm4 791116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm5 792116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm0 793116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm3 794116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 795116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm15 796116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm2 797116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch dec r10d 798116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jl $L$dec_done 799116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 800116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm7,xmm15,04Eh 801116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm2,04Eh 802116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm15 803116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm14,xmm4,04Eh 804116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm13,xmm2 805116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm8,xmm0,04Eh 806116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm4 807116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm9,xmm5,04Eh 808116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm0 809116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm10,xmm3,04Eh 810116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm5 811116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm13 812116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm13 813116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm11,xmm1,04Eh 814116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm3 815116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm7 816116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm8 817116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm12,xmm6,04Eh 818116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm1 819116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm14 820116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm9 821116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm12,xmm6 822116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 823116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm14 824116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm13 825116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm13 826116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm10 827116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm11 828116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm14 829116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm14 830116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm12 831116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm7,xmm15,093h 832116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm8,xmm0,093h 833116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm7 834116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm9,xmm5,093h 835116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 836116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm10,xmm3,093h 837116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm9 838116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm11,xmm1,093h 839116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm10 840116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm12,xmm6,093h 841116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm11 842116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm2,093h 843116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm12 844116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm14,xmm4,093h 845116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm13 846116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm14 847116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 848116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm15 849116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm4 850116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm4 851116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm15,xmm15,04Eh 852116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm0 853116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm0,xmm0,04Eh 854116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm12,xmm1 855116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm7 856116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm13,xmm6 857116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 858116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm3 859116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm7,xmm1,04Eh 860116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm2 861116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm8,xmm6,04Eh 862116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm5 863116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm1,xmm3,04Eh 864116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm4 865116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm6,xmm4,04Eh 866116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm11,xmm4 867116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm3,xmm2,04Eh 868116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm11 869116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm2,xmm5,04Eh 870116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm12 871116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm10,xmm1 872116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm14 873116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm13,xmm3 874116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm3,xmm7 875116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm9 876116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm5,xmm13 877116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm4,xmm8 878116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm1,xmm2 879116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm2,xmm10 880116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[((-16))+r11] 881116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jnz $L$dec_loop 882116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[((-32))+r11] 883116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$dec_loop 884116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 885116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$dec_done:: 886116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[r11] 887116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm8,XMMWORD PTR[16+r11] 888116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm2 889116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm2,1 890116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm1 891116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm1,1 892116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm4 893116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm6 894116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm2,xmm7 895116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm1,xmm7 896116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm2 897116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm2,1 898116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm1 899116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm1,1 900116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm9 901116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm10 902116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm5 903116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm5,1 904116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm15 905116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm15,1 906116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm3 907116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm0 908116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm5,xmm7 909116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm15,xmm7 910116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm5 911116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm5,1 912116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm15 913116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm15,1 914116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm9 915116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm10 916116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[32+r11] 917116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm6 918116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm6,2 919116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm1 920116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm1,2 921116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm4 922116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm2 923116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm6,xmm8 924116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm1,xmm8 925116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm6 926116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm6,2 927116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm1 928116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm1,2 929116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm9 930116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm10 931116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm0 932116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm0,2 933116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm15 934116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm15,2 935116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm3 936116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm5 937116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm0,xmm8 938116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm15,xmm8 939116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm0 940116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm0,2 941116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm15 942116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm15,2 943116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm9 944116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm10 945116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm3 946116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm3,4 947116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm5 948116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm5,4 949116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm4 950116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm2 951116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm3,xmm7 952116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm5,xmm7 953116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm3 954116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm3,4 955116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm5 956116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm5,4 957116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm9 958116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm10 959116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm0 960116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm0,4 961116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm15 962116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm15,4 963116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm6 964116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm1 965116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm0,xmm7 966116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm15,xmm7 967116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm0 968116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm0,4 969116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm15 970116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm15,4 971116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm9 972116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm10 973116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[rax] 974116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm7 975116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm7 976116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm7 977116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm7 978116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm7 979116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm7 980116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm7 981116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm7 982116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 983116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch_bsaes_decrypt8 ENDP 984116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 985116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 986116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch_bsaes_key_convert PROC PRIVATE 987116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r11,QWORD PTR[$L$masks] 988116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm7,XMMWORD PTR[rcx] 989116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rcx,QWORD PTR[16+rcx] 990116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm0,XMMWORD PTR[r11] 991116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm1,XMMWORD PTR[16+r11] 992116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm2,XMMWORD PTR[32+r11] 993116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm3,XMMWORD PTR[48+r11] 994116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm4,XMMWORD PTR[64+r11] 995116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpeqd xmm5,xmm5 996116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 997116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm6,XMMWORD PTR[rcx] 998116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rax],xmm7 999116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[16+rax] 1000116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch dec r10d 1001116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$key_loop 1002116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1003116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$key_loop:: 1004116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,244 1005116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1006116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm8,xmm0 1007116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm9,xmm1 1008116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1009116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm8,xmm6 1010116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm9,xmm6 1011116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm10,xmm2 1012116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpeqb xmm8,xmm0 1013116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm0,4 1014116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm11,xmm3 1015116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpeqb xmm9,xmm1 1016116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm1,4 1017116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1018116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm10,xmm6 1019116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm11,xmm6 1020116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm12,xmm0 1021116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpeqb xmm10,xmm2 1022116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm2,4 1023116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm13,xmm1 1024116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpeqb xmm11,xmm3 1025116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psllq xmm3,4 1026116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1027116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm14,xmm2 1028116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm15,xmm3 1029116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm8,xmm5 1030116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm9,xmm5 1031116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1032116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm12,xmm6 1033116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm6 1034116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rax],xmm8 1035116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpeqb xmm12,xmm0 1036116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm0,4 1037116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[16+rax],xmm9 1038116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpeqb xmm13,xmm1 1039116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm1,4 1040116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rcx,QWORD PTR[16+rcx] 1041116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1042116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm14,xmm6 1043116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm15,xmm6 1044116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rax],xmm10 1045116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpeqb xmm14,xmm2 1046116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm2,4 1047116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[48+rax],xmm11 1048116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpeqb xmm15,xmm3 1049116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch psrlq xmm3,4 1050116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm6,XMMWORD PTR[rcx] 1051116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1052116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm13,xmm5 1053116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm5 1054116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[64+rax],xmm12 1055116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[80+rax],xmm13 1056116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[96+rax],xmm14 1057116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[112+rax],xmm15 1058116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rax] 1059116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch dec r10d 1060116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jnz $L$key_loop 1061116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1062116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[80+r11] 1063116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1064116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 1065116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch_bsaes_key_convert ENDP 1066116680a4aac90f2aa7413d9095a592090648e557Ben MurdochEXTERN asm_AES_cbc_encrypt:NEAR 1067116680a4aac90f2aa7413d9095a592090648e557Ben MurdochPUBLIC bsaes_cbc_encrypt 1068116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1069116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1070116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbsaes_cbc_encrypt PROC PUBLIC 1071116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11d,DWORD PTR[48+rsp] 1072116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r11d,0 1073116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jne asm_AES_cbc_encrypt 1074116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r8,128 1075116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jb asm_AES_cbc_encrypt 1076116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1077116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rsp 1078116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$cbc_dec_prologue:: 1079116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbp 1080116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbx 1081116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r12 1082116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r13 1083116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r14 1084116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r15 1085116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[((-72))+rsp] 1086116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,QWORD PTR[160+rsp] 1087116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[((-160))+rsp] 1088116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[64+rsp],xmm6 1089116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[80+rsp],xmm7 1090116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[96+rsp],xmm8 1091116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[112+rsp],xmm9 1092116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[128+rsp],xmm10 1093116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[144+rsp],xmm11 1094116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[160+rsp],xmm12 1095116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[176+rsp],xmm13 1096116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[192+rsp],xmm14 1097116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[208+rsp],xmm15 1098116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$cbc_dec_body:: 1099116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,rsp 1100116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov eax,DWORD PTR[240+r9] 1101116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,rcx 1102116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,rdx 1103116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,r8 1104116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,r9 1105116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,r10 1106116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shr r14,4 1107116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1108116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov edx,eax 1109116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shl rax,7 1110116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rax,96 1111116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rsp,rax 1112116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1113116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rsp 1114116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,r15 1115116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 1116116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_key_convert 1117116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,XMMWORD PTR[rsp] 1118116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rax],xmm6 1119116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rsp],xmm7 1120116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1121116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm14,XMMWORD PTR[rbx] 1122116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub r14,8 1123116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$cbc_dec_loop:: 1124116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm15,XMMWORD PTR[r12] 1125116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm0,XMMWORD PTR[16+r12] 1126116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm1,XMMWORD PTR[32+r12] 1127116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm2,XMMWORD PTR[48+r12] 1128116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm3,XMMWORD PTR[64+r12] 1129116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm4,XMMWORD PTR[80+r12] 1130116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rsp 1131116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm5,XMMWORD PTR[96+r12] 1132116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 1133116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm6,XMMWORD PTR[112+r12] 1134116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rbp],xmm14 1135116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1136116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_decrypt8 1137116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1138116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[32+rbp] 1139116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm7,XMMWORD PTR[r12] 1140116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm8,XMMWORD PTR[16+r12] 1141116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm7 1142116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm9,XMMWORD PTR[32+r12] 1143116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm8 1144116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm10,XMMWORD PTR[48+r12] 1145116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm9 1146116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm11,XMMWORD PTR[64+r12] 1147116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm10 1148116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm12,XMMWORD PTR[80+r12] 1149116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm11 1150116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm13,XMMWORD PTR[96+r12] 1151116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm12 1152116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm14,XMMWORD PTR[112+r12] 1153116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm13 1154116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 1155116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[128+r12] 1156116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 1157116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm5 1158116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm3 1159116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[64+r13],xmm1 1160116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[80+r13],xmm6 1161116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[96+r13],xmm2 1162116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[112+r13],xmm4 1163116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[128+r13] 1164116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub r14,8 1165116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jnc $L$cbc_dec_loop 1166116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1167116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,8 1168116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jz $L$cbc_dec_done 1169116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1170116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm15,XMMWORD PTR[r12] 1171116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rsp 1172116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 1173116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,2 1174116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jb $L$cbc_dec_one 1175116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm0,XMMWORD PTR[16+r12] 1176116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$cbc_dec_two 1177116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm1,XMMWORD PTR[32+r12] 1178116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,4 1179116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jb $L$cbc_dec_three 1180116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm2,XMMWORD PTR[48+r12] 1181116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$cbc_dec_four 1182116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm3,XMMWORD PTR[64+r12] 1183116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,6 1184116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jb $L$cbc_dec_five 1185116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm4,XMMWORD PTR[80+r12] 1186116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$cbc_dec_six 1187116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm5,XMMWORD PTR[96+r12] 1188116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rbp],xmm14 1189116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_decrypt8 1190116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[32+rbp] 1191116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm7,XMMWORD PTR[r12] 1192116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm8,XMMWORD PTR[16+r12] 1193116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm7 1194116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm9,XMMWORD PTR[32+r12] 1195116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm8 1196116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm10,XMMWORD PTR[48+r12] 1197116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm9 1198116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm11,XMMWORD PTR[64+r12] 1199116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm10 1200116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm12,XMMWORD PTR[80+r12] 1201116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm11 1202116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm14,XMMWORD PTR[96+r12] 1203116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm12 1204116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 1205116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 1206116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm5 1207116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm3 1208116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[64+r13],xmm1 1209116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[80+r13],xmm6 1210116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[96+r13],xmm2 1211116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$cbc_dec_done 1212116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1213116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$cbc_dec_six:: 1214116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rbp],xmm14 1215116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_decrypt8 1216116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[32+rbp] 1217116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm7,XMMWORD PTR[r12] 1218116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm8,XMMWORD PTR[16+r12] 1219116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm7 1220116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm9,XMMWORD PTR[32+r12] 1221116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm8 1222116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm10,XMMWORD PTR[48+r12] 1223116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm9 1224116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm11,XMMWORD PTR[64+r12] 1225116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm10 1226116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm14,XMMWORD PTR[80+r12] 1227116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm11 1228116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 1229116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 1230116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm5 1231116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm3 1232116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[64+r13],xmm1 1233116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[80+r13],xmm6 1234116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$cbc_dec_done 1235116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1236116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$cbc_dec_five:: 1237116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rbp],xmm14 1238116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_decrypt8 1239116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[32+rbp] 1240116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm7,XMMWORD PTR[r12] 1241116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm8,XMMWORD PTR[16+r12] 1242116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm7 1243116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm9,XMMWORD PTR[32+r12] 1244116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm8 1245116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm10,XMMWORD PTR[48+r12] 1246116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm9 1247116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm14,XMMWORD PTR[64+r12] 1248116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm10 1249116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 1250116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 1251116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm5 1252116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm3 1253116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[64+r13],xmm1 1254116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$cbc_dec_done 1255116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1256116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$cbc_dec_four:: 1257116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rbp],xmm14 1258116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_decrypt8 1259116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[32+rbp] 1260116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm7,XMMWORD PTR[r12] 1261116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm8,XMMWORD PTR[16+r12] 1262116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm7 1263116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm9,XMMWORD PTR[32+r12] 1264116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm8 1265116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm14,XMMWORD PTR[48+r12] 1266116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm9 1267116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 1268116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 1269116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm5 1270116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm3 1271116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$cbc_dec_done 1272116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1273116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$cbc_dec_three:: 1274116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rbp],xmm14 1275116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_decrypt8 1276116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[32+rbp] 1277116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm7,XMMWORD PTR[r12] 1278116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm8,XMMWORD PTR[16+r12] 1279116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm7 1280116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm14,XMMWORD PTR[32+r12] 1281116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm8 1282116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 1283116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 1284116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm5 1285116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$cbc_dec_done 1286116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1287116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$cbc_dec_two:: 1288116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rbp],xmm14 1289116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_decrypt8 1290116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[32+rbp] 1291116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm7,XMMWORD PTR[r12] 1292116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm14,XMMWORD PTR[16+r12] 1293116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm7 1294116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 1295116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 1296116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$cbc_dec_done 1297116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1298116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$cbc_dec_one:: 1299116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rcx,QWORD PTR[r12] 1300116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdx,QWORD PTR[32+rbp] 1301116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r8,QWORD PTR[r15] 1302116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call asm_AES_decrypt 1303116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,XMMWORD PTR[32+rbp] 1304116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm14 1305116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm14,xmm15 1306116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1307116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$cbc_dec_done:: 1308116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[rbx],xmm14 1309116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[rsp] 1310116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm0 1311116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$cbc_dec_bzero:: 1312116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rax],xmm0 1313116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[16+rax],xmm0 1314116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[32+rax] 1315116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp rbp,rax 1316116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ja $L$cbc_dec_bzero 1317116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1318116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[rbp] 1319116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm6,XMMWORD PTR[64+rbp] 1320116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm7,XMMWORD PTR[80+rbp] 1321116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm8,XMMWORD PTR[96+rbp] 1322116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm9,XMMWORD PTR[112+rbp] 1323116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm10,XMMWORD PTR[128+rbp] 1324116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm11,XMMWORD PTR[144+rbp] 1325116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm12,XMMWORD PTR[160+rbp] 1326116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm13,XMMWORD PTR[176+rbp] 1327116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm14,XMMWORD PTR[192+rbp] 1328116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm15,XMMWORD PTR[208+rbp] 1329116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[160+rbp] 1330116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[72+rsp] 1331116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[80+rsp] 1332116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[88+rsp] 1333116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[96+rsp] 1334116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,QWORD PTR[104+rsp] 1335116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[112+rsp] 1336116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[120+rsp] 1337116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,rax 1338116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$cbc_dec_epilogue:: 1339116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 1340116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbsaes_cbc_encrypt ENDP 1341116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1342116680a4aac90f2aa7413d9095a592090648e557Ben MurdochPUBLIC bsaes_ctr32_encrypt_blocks 1343116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1344116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1345116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbsaes_ctr32_encrypt_blocks PROC PUBLIC 1346116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rsp 1347116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ctr_enc_prologue:: 1348116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbp 1349116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbx 1350116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r12 1351116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r13 1352116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r14 1353116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r15 1354116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[((-72))+rsp] 1355116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,QWORD PTR[160+rsp] 1356116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[((-160))+rsp] 1357116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[64+rsp],xmm6 1358116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[80+rsp],xmm7 1359116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[96+rsp],xmm8 1360116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[112+rsp],xmm9 1361116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[128+rsp],xmm10 1362116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[144+rsp],xmm11 1363116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[160+rsp],xmm12 1364116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[176+rsp],xmm13 1365116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[192+rsp],xmm14 1366116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[208+rsp],xmm15 1367116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ctr_enc_body:: 1368116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,rsp 1369116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm0,XMMWORD PTR[r10] 1370116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov eax,DWORD PTR[240+r9] 1371116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,rcx 1372116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,rdx 1373116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,r8 1374116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,r9 1375116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rbp],xmm0 1376116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r8,8 1377116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jb $L$ctr_enc_short 1378116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1379116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov ebx,eax 1380116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shl rax,7 1381116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rax,96 1382116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rsp,rax 1383116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1384116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rsp 1385116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,r15 1386116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,ebx 1387116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_key_convert 1388116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm6 1389116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rax],xmm7 1390116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1391116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm8,XMMWORD PTR[rsp] 1392116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r11,QWORD PTR[$L$ADD1] 1393116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm15,XMMWORD PTR[32+rbp] 1394116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[((-32))+r11] 1395116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,68,15,56,0,199 1396116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,68,15,56,0,255 1397116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rsp],xmm8 1398116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$ctr_enc_loop 1399116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1400116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ctr_enc_loop:: 1401116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rbp],xmm15 1402116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm0,xmm15 1403116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm1,xmm15 1404116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddd xmm0,XMMWORD PTR[r11] 1405116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm2,xmm15 1406116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddd xmm1,XMMWORD PTR[16+r11] 1407116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm3,xmm15 1408116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddd xmm2,XMMWORD PTR[32+r11] 1409116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm4,xmm15 1410116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddd xmm3,XMMWORD PTR[48+r11] 1411116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm5,xmm15 1412116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddd xmm4,XMMWORD PTR[64+r11] 1413116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,xmm15 1414116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddd xmm5,XMMWORD PTR[80+r11] 1415116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddd xmm6,XMMWORD PTR[96+r11] 1416116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1417116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1418116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1419116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm8,XMMWORD PTR[rsp] 1420116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[16+rsp] 1421116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm7,XMMWORD PTR[((-16))+r11] 1422116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm8 1423116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 1424116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm8 1425116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm8 1426116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,68,15,56,0,255 1427116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,199 1428116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm8 1429116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm8 1430116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,207 1431116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,215 1432116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm8 1433116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm8 1434116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,223 1435116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,231 1436116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,239 1437116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 102,15,56,0,247 1438116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r11,QWORD PTR[$L$BS0] 1439116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,ebx 1440116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1441116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_encrypt8_bitslice 1442116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1443116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub r14,8 1444116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jc $L$ctr_enc_loop_done 1445116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1446116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm7,XMMWORD PTR[r12] 1447116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm8,XMMWORD PTR[16+r12] 1448116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm9,XMMWORD PTR[32+r12] 1449116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm10,XMMWORD PTR[48+r12] 1450116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm11,XMMWORD PTR[64+r12] 1451116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm12,XMMWORD PTR[80+r12] 1452116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm13,XMMWORD PTR[96+r12] 1453116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm14,XMMWORD PTR[112+r12] 1454116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[128+r12] 1455116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm15 1456116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm15,XMMWORD PTR[32+rbp] 1457116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 1458116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm7 1459116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm9 1460116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 1461116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm10 1462116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm3 1463116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm11 1464116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm5 1465116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm12 1466116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[64+r13],xmm2 1467116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm13 1468116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[80+r13],xmm6 1469116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm14 1470116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[96+r13],xmm1 1471116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r11,QWORD PTR[$L$ADD1] 1472116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[112+r13],xmm4 1473116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[128+r13] 1474116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddd xmm15,XMMWORD PTR[112+r11] 1475116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jnz $L$ctr_enc_loop 1476116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1477116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$ctr_enc_done 1478116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1479116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ctr_enc_loop_done:: 1480116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,8 1481116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm7,XMMWORD PTR[r12] 1482116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm7 1483116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 1484116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,2 1485116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jb $L$ctr_enc_done 1486116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm8,XMMWORD PTR[16+r12] 1487116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 1488116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 1489116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$ctr_enc_done 1490116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm9,XMMWORD PTR[32+r12] 1491116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm9 1492116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm3 1493116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,4 1494116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jb $L$ctr_enc_done 1495116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm10,XMMWORD PTR[48+r12] 1496116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm10 1497116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm5 1498116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$ctr_enc_done 1499116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm11,XMMWORD PTR[64+r12] 1500116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm11 1501116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[64+r13],xmm2 1502116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,6 1503116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jb $L$ctr_enc_done 1504116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm12,XMMWORD PTR[80+r12] 1505116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm12 1506116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[80+r13],xmm6 1507116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$ctr_enc_done 1508116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm13,XMMWORD PTR[96+r12] 1509116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm13 1510116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[96+r13],xmm1 1511116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$ctr_enc_done 1512116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1513116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1514116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ctr_enc_short:: 1515116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rcx,QWORD PTR[32+rbp] 1516116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdx,QWORD PTR[48+rbp] 1517116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r8,QWORD PTR[r15] 1518116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call asm_AES_encrypt 1519116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm0,XMMWORD PTR[r12] 1520116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[16+r12] 1521116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov eax,DWORD PTR[44+rbp] 1522116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch bswap eax 1523116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[48+rbp] 1524116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch inc eax 1525116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm0 1526116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch bswap eax 1527116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[16+r13] 1528116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov DWORD PTR[44+rsp],eax 1529116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch dec r14 1530116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jnz $L$ctr_enc_short 1531116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1532116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ctr_enc_done:: 1533116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[rsp] 1534116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm0 1535116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ctr_enc_bzero:: 1536116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rax],xmm0 1537116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[16+rax],xmm0 1538116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[32+rax] 1539116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp rbp,rax 1540116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ja $L$ctr_enc_bzero 1541116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1542116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[rbp] 1543116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm6,XMMWORD PTR[64+rbp] 1544116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm7,XMMWORD PTR[80+rbp] 1545116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm8,XMMWORD PTR[96+rbp] 1546116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm9,XMMWORD PTR[112+rbp] 1547116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm10,XMMWORD PTR[128+rbp] 1548116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm11,XMMWORD PTR[144+rbp] 1549116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm12,XMMWORD PTR[160+rbp] 1550116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm13,XMMWORD PTR[176+rbp] 1551116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm14,XMMWORD PTR[192+rbp] 1552116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm15,XMMWORD PTR[208+rbp] 1553116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[160+rbp] 1554116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[72+rsp] 1555116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[80+rsp] 1556116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[88+rsp] 1557116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[96+rsp] 1558116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,QWORD PTR[104+rsp] 1559116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[112+rsp] 1560116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[120+rsp] 1561116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,rax 1562116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ctr_enc_epilogue:: 1563116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 1564116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbsaes_ctr32_encrypt_blocks ENDP 1565116680a4aac90f2aa7413d9095a592090648e557Ben MurdochPUBLIC bsaes_xts_encrypt 1566116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1567116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1568116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbsaes_xts_encrypt PROC PUBLIC 1569116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rsp 1570116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_enc_prologue:: 1571116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbp 1572116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbx 1573116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r12 1574116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r13 1575116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r14 1576116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r15 1577116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[((-72))+rsp] 1578116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,QWORD PTR[160+rsp] 1579116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,QWORD PTR[168+rsp] 1580116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[((-160))+rsp] 1581116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[64+rsp],xmm6 1582116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[80+rsp],xmm7 1583116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[96+rsp],xmm8 1584116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[112+rsp],xmm9 1585116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[128+rsp],xmm10 1586116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[144+rsp],xmm11 1587116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[160+rsp],xmm12 1588116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[176+rsp],xmm13 1589116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[192+rsp],xmm14 1590116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[208+rsp],xmm15 1591116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_enc_body:: 1592116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,rsp 1593116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,rcx 1594116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,rdx 1595116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,r8 1596116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,r9 1597116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1598116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rcx,QWORD PTR[r11] 1599116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdx,QWORD PTR[32+rbp] 1600116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r8,QWORD PTR[r10] 1601116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call asm_AES_encrypt 1602116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1603116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov eax,DWORD PTR[240+r15] 1604116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,r14 1605116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1606116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov edx,eax 1607116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shl rax,7 1608116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rax,96 1609116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rsp,rax 1610116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1611116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rsp 1612116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,r15 1613116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 1614116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_key_convert 1615116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm6 1616116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rax],xmm7 1617116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1618116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch and r14,-16 1619116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rsp,080h 1620116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[32+rbp] 1621116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1622116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1623116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm12,XMMWORD PTR[$L$xts_magic] 1624116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1625116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1626116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub r14,080h 1627116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jc $L$xts_enc_short 1628116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$xts_enc_loop 1629116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1630116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1631116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_enc_loop:: 1632116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 1633116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1634116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm15,xmm6 1635116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rsp],xmm6 1636116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 1637116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 1638116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1639116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 1640116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 1641116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1642116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm0,xmm6 1643116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[16+rsp],xmm6 1644116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 1645116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 1646116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1647116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 1648116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm7,XMMWORD PTR[r12] 1649116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 1650116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1651116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm1,xmm6 1652116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rsp],xmm6 1653116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 1654116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 1655116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1656116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 1657116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm8,XMMWORD PTR[16+r12] 1658116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm7 1659116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 1660116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1661116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm2,xmm6 1662116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[48+rsp],xmm6 1663116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 1664116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 1665116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1666116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 1667116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm9,XMMWORD PTR[32+r12] 1668116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 1669116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 1670116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1671116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm3,xmm6 1672116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[64+rsp],xmm6 1673116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 1674116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 1675116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1676116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 1677116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm10,XMMWORD PTR[48+r12] 1678116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm9 1679116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 1680116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1681116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm4,xmm6 1682116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[80+rsp],xmm6 1683116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 1684116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 1685116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1686116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 1687116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm11,XMMWORD PTR[64+r12] 1688116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm10 1689116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 1690116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1691116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm5,xmm6 1692116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[96+rsp],xmm6 1693116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 1694116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 1695116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1696116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 1697116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm12,XMMWORD PTR[80+r12] 1698116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm11 1699116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm13,XMMWORD PTR[96+r12] 1700116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm12 1701116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm14,XMMWORD PTR[112+r12] 1702116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[128+r12] 1703116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[112+rsp],xmm6 1704116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm13 1705116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rsp] 1706116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm14 1707116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 1708116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1709116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_encrypt8 1710116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1711116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[rsp] 1712116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[16+rsp] 1713116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 1714116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,XMMWORD PTR[32+rsp] 1715116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 1716116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,XMMWORD PTR[48+rsp] 1717116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm3 1718116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,XMMWORD PTR[64+rsp] 1719116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm5 1720116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,XMMWORD PTR[80+rsp] 1721116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[64+r13],xmm2 1722116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,XMMWORD PTR[96+rsp] 1723116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[80+r13],xmm6 1724116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,XMMWORD PTR[112+rsp] 1725116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[96+r13],xmm1 1726116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[112+r13],xmm4 1727116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[128+r13] 1728116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1729116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[112+rsp] 1730116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1731116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm12,XMMWORD PTR[$L$xts_magic] 1732116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1733116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 1734116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1735116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 1736116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 1737116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1738116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 1739116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1740116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub r14,080h 1741116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jnc $L$xts_enc_loop 1742116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1743116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_enc_short:: 1744116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,080h 1745116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jz $L$xts_enc_done 1746116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 1747116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1748116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm15,xmm6 1749116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rsp],xmm6 1750116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 1751116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 1752116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1753116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 1754116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 1755116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1756116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm0,xmm6 1757116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[16+rsp],xmm6 1758116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 1759116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 1760116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1761116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 1762116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm7,XMMWORD PTR[r12] 1763116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,16 1764116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$xts_enc_1 1765116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 1766116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1767116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm1,xmm6 1768116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rsp],xmm6 1769116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 1770116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 1771116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1772116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 1773116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm8,XMMWORD PTR[16+r12] 1774116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,32 1775116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$xts_enc_2 1776116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm7 1777116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 1778116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1779116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm2,xmm6 1780116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[48+rsp],xmm6 1781116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 1782116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 1783116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1784116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 1785116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm9,XMMWORD PTR[32+r12] 1786116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,48 1787116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$xts_enc_3 1788116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 1789116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 1790116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1791116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm3,xmm6 1792116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[64+rsp],xmm6 1793116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 1794116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 1795116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1796116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 1797116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm10,XMMWORD PTR[48+r12] 1798116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,64 1799116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$xts_enc_4 1800116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm9 1801116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 1802116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1803116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm4,xmm6 1804116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[80+rsp],xmm6 1805116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 1806116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 1807116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1808116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 1809116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm11,XMMWORD PTR[64+r12] 1810116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,80 1811116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$xts_enc_5 1812116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm10 1813116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 1814116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 1815116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm5,xmm6 1816116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[96+rsp],xmm6 1817116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 1818116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 1819116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 1820116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 1821116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm12,XMMWORD PTR[80+r12] 1822116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,96 1823116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$xts_enc_6 1824116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm11 1825116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm13,XMMWORD PTR[96+r12] 1826116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm12 1827116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[112+rsp],xmm6 1828116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[112+r12] 1829116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm13 1830116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rsp] 1831116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 1832116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1833116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_encrypt8 1834116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1835116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[rsp] 1836116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[16+rsp] 1837116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 1838116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,XMMWORD PTR[32+rsp] 1839116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 1840116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,XMMWORD PTR[48+rsp] 1841116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm3 1842116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,XMMWORD PTR[64+rsp] 1843116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm5 1844116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,XMMWORD PTR[80+rsp] 1845116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[64+r13],xmm2 1846116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,XMMWORD PTR[96+rsp] 1847116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[80+r13],xmm6 1848116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[96+r13],xmm1 1849116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[112+r13] 1850116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1851116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[112+rsp] 1852116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$xts_enc_done 1853116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1854116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_enc_6:: 1855116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm11 1856116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[96+r12] 1857116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm12 1858116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rsp] 1859116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 1860116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1861116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_encrypt8 1862116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1863116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[rsp] 1864116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[16+rsp] 1865116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 1866116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,XMMWORD PTR[32+rsp] 1867116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 1868116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,XMMWORD PTR[48+rsp] 1869116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm3 1870116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,XMMWORD PTR[64+rsp] 1871116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm5 1872116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,XMMWORD PTR[80+rsp] 1873116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[64+r13],xmm2 1874116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[80+r13],xmm6 1875116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[96+r13] 1876116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1877116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[96+rsp] 1878116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$xts_enc_done 1879116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1880116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_enc_5:: 1881116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm10 1882116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[80+r12] 1883116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm11 1884116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rsp] 1885116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 1886116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1887116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_encrypt8 1888116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1889116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[rsp] 1890116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[16+rsp] 1891116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 1892116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,XMMWORD PTR[32+rsp] 1893116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 1894116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,XMMWORD PTR[48+rsp] 1895116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm3 1896116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,XMMWORD PTR[64+rsp] 1897116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm5 1898116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[64+r13],xmm2 1899116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[80+r13] 1900116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1901116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[80+rsp] 1902116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$xts_enc_done 1903116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1904116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_enc_4:: 1905116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm9 1906116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[64+r12] 1907116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm10 1908116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rsp] 1909116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 1910116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1911116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_encrypt8 1912116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1913116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[rsp] 1914116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[16+rsp] 1915116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 1916116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,XMMWORD PTR[32+rsp] 1917116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 1918116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,XMMWORD PTR[48+rsp] 1919116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm3 1920116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm5 1921116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[64+r13] 1922116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1923116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[64+rsp] 1924116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$xts_enc_done 1925116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1926116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_enc_3:: 1927116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 1928116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[48+r12] 1929116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm9 1930116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rsp] 1931116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 1932116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1933116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_encrypt8 1934116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1935116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[rsp] 1936116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[16+rsp] 1937116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 1938116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,XMMWORD PTR[32+rsp] 1939116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 1940116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm3 1941116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[48+r13] 1942116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1943116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[48+rsp] 1944116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$xts_enc_done 1945116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1946116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_enc_2:: 1947116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm7 1948116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[32+r12] 1949116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 1950116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rsp] 1951116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 1952116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1953116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_encrypt8 1954116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1955116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[rsp] 1956116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[16+rsp] 1957116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 1958116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 1959116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[32+r13] 1960116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1961116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[32+rsp] 1962116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$xts_enc_done 1963116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 1964116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_enc_1:: 1965116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm15 1966116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[16+r12] 1967116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rbp],xmm7 1968116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rcx,QWORD PTR[32+rbp] 1969116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdx,QWORD PTR[32+rbp] 1970116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r8,QWORD PTR[r15] 1971116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call asm_AES_encrypt 1972116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[32+rbp] 1973116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1974116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1975116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1976116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1977116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1978116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 1979116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[16+r13] 1980116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1981116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[16+rsp] 1982116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1983116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_enc_done:: 1984116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch and ebx,15 1985116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jz $L$xts_enc_ret 1986116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdx,r13 1987116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1988116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_enc_steal:: 1989116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movzx eax,BYTE PTR[r12] 1990116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movzx ecx,BYTE PTR[((-16))+rdx] 1991116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[1+r12] 1992116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov BYTE PTR[((-16))+rdx],al 1993116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov BYTE PTR[rdx],cl 1994116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdx,QWORD PTR[1+rdx] 1995116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub ebx,1 1996116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jnz $L$xts_enc_steal 1997116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1998116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm15,XMMWORD PTR[((-16))+r13] 1999116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rcx,QWORD PTR[32+rbp] 2000116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm6 2001116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdx,QWORD PTR[32+rbp] 2002116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rbp],xmm15 2003116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r8,QWORD PTR[r15] 2004116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call asm_AES_encrypt 2005116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,XMMWORD PTR[32+rbp] 2006116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[(-16)+r13],xmm6 2007116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2008116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_enc_ret:: 2009116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[rsp] 2010116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm0 2011116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_enc_bzero:: 2012116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rax],xmm0 2013116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[16+rax],xmm0 2014116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[32+rax] 2015116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp rbp,rax 2016116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ja $L$xts_enc_bzero 2017116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2018116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[rbp] 2019116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm6,XMMWORD PTR[64+rbp] 2020116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm7,XMMWORD PTR[80+rbp] 2021116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm8,XMMWORD PTR[96+rbp] 2022116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm9,XMMWORD PTR[112+rbp] 2023116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm10,XMMWORD PTR[128+rbp] 2024116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm11,XMMWORD PTR[144+rbp] 2025116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm12,XMMWORD PTR[160+rbp] 2026116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm13,XMMWORD PTR[176+rbp] 2027116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm14,XMMWORD PTR[192+rbp] 2028116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm15,XMMWORD PTR[208+rbp] 2029116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[160+rbp] 2030116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[72+rsp] 2031116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[80+rsp] 2032116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[88+rsp] 2033116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[96+rsp] 2034116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,QWORD PTR[104+rsp] 2035116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[112+rsp] 2036116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[120+rsp] 2037116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,rax 2038116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_enc_epilogue:: 2039116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 2040116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbsaes_xts_encrypt ENDP 2041116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2042116680a4aac90f2aa7413d9095a592090648e557Ben MurdochPUBLIC bsaes_xts_decrypt 2043116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2044116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 2045116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbsaes_xts_decrypt PROC PUBLIC 2046116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rsp 2047116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_dec_prologue:: 2048116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbp 2049116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbx 2050116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r12 2051116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r13 2052116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r14 2053116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r15 2054116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[((-72))+rsp] 2055116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,QWORD PTR[160+rsp] 2056116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,QWORD PTR[168+rsp] 2057116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[((-160))+rsp] 2058116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[64+rsp],xmm6 2059116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[80+rsp],xmm7 2060116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[96+rsp],xmm8 2061116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[112+rsp],xmm9 2062116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[128+rsp],xmm10 2063116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[144+rsp],xmm11 2064116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[160+rsp],xmm12 2065116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[176+rsp],xmm13 2066116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[192+rsp],xmm14 2067116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps XMMWORD PTR[208+rsp],xmm15 2068116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_dec_body:: 2069116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,rsp 2070116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,rcx 2071116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,rdx 2072116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,r8 2073116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,r9 2074116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2075116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rcx,QWORD PTR[r11] 2076116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdx,QWORD PTR[32+rbp] 2077116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r8,QWORD PTR[r10] 2078116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call asm_AES_encrypt 2079116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2080116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov eax,DWORD PTR[240+r15] 2081116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,r14 2082116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2083116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov edx,eax 2084116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shl rax,7 2085116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rax,96 2086116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rsp,rax 2087116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2088116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,rsp 2089116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rcx,r15 2090116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 2091116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_key_convert 2092116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,XMMWORD PTR[rsp] 2093116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rax],xmm6 2094116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rsp],xmm7 2095116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2096116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch xor eax,eax 2097116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch and r14,-16 2098116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch test ebx,15 2099116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch setnz al 2100116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch shl rax,4 2101116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub r14,rax 2102116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2103116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rsp,080h 2104116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[32+rbp] 2105116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2106116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2107116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm12,XMMWORD PTR[$L$xts_magic] 2108116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2109116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2110116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub r14,080h 2111116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jc $L$xts_dec_short 2112116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$xts_dec_loop 2113116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2114116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 2115116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_dec_loop:: 2116116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 2117116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2118116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm15,xmm6 2119116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rsp],xmm6 2120116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 2121116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 2122116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2123116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 2124116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 2125116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2126116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm0,xmm6 2127116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[16+rsp],xmm6 2128116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 2129116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 2130116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2131116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 2132116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm7,XMMWORD PTR[r12] 2133116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 2134116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2135116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm1,xmm6 2136116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rsp],xmm6 2137116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 2138116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 2139116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2140116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 2141116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm8,XMMWORD PTR[16+r12] 2142116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm7 2143116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 2144116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2145116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm2,xmm6 2146116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[48+rsp],xmm6 2147116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 2148116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 2149116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2150116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 2151116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm9,XMMWORD PTR[32+r12] 2152116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 2153116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 2154116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2155116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm3,xmm6 2156116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[64+rsp],xmm6 2157116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 2158116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 2159116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2160116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 2161116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm10,XMMWORD PTR[48+r12] 2162116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm9 2163116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 2164116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2165116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm4,xmm6 2166116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[80+rsp],xmm6 2167116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 2168116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 2169116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2170116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 2171116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm11,XMMWORD PTR[64+r12] 2172116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm10 2173116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 2174116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2175116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm5,xmm6 2176116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[96+rsp],xmm6 2177116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 2178116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 2179116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2180116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 2181116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm12,XMMWORD PTR[80+r12] 2182116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm11 2183116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm13,XMMWORD PTR[96+r12] 2184116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm12 2185116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm14,XMMWORD PTR[112+r12] 2186116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[128+r12] 2187116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[112+rsp],xmm6 2188116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm13 2189116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rsp] 2190116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm14 2191116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 2192116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2193116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_decrypt8 2194116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2195116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[rsp] 2196116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[16+rsp] 2197116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 2198116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,XMMWORD PTR[32+rsp] 2199116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 2200116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,XMMWORD PTR[48+rsp] 2201116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm5 2202116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,XMMWORD PTR[64+rsp] 2203116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm3 2204116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,XMMWORD PTR[80+rsp] 2205116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[64+r13],xmm1 2206116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,XMMWORD PTR[96+rsp] 2207116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[80+r13],xmm6 2208116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,XMMWORD PTR[112+rsp] 2209116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[96+r13],xmm2 2210116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[112+r13],xmm4 2211116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[128+r13] 2212116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2213116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[112+rsp] 2214116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2215116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm12,XMMWORD PTR[$L$xts_magic] 2216116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2217116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 2218116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2219116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 2220116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 2221116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2222116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 2223116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2224116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub r14,080h 2225116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jnc $L$xts_dec_loop 2226116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2227116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_dec_short:: 2228116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add r14,080h 2229116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jz $L$xts_dec_done 2230116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 2231116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2232116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm15,xmm6 2233116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rsp],xmm6 2234116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 2235116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 2236116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2237116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 2238116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 2239116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2240116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm0,xmm6 2241116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[16+rsp],xmm6 2242116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 2243116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 2244116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2245116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 2246116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm7,XMMWORD PTR[r12] 2247116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,16 2248116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$xts_dec_1 2249116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 2250116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2251116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm1,xmm6 2252116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rsp],xmm6 2253116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 2254116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 2255116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2256116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 2257116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm8,XMMWORD PTR[16+r12] 2258116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,32 2259116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$xts_dec_2 2260116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm7 2261116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 2262116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2263116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm2,xmm6 2264116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[48+rsp],xmm6 2265116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 2266116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 2267116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2268116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 2269116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm9,XMMWORD PTR[32+r12] 2270116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,48 2271116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$xts_dec_3 2272116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 2273116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 2274116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2275116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm3,xmm6 2276116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[64+rsp],xmm6 2277116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 2278116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 2279116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2280116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 2281116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm10,XMMWORD PTR[48+r12] 2282116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,64 2283116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$xts_dec_4 2284116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm9 2285116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 2286116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2287116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm4,xmm6 2288116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[80+rsp],xmm6 2289116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 2290116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 2291116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2292116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 2293116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm11,XMMWORD PTR[64+r12] 2294116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,80 2295116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$xts_dec_5 2296116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm10 2297116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 2298116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2299116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm5,xmm6 2300116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[96+rsp],xmm6 2301116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 2302116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 2303116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2304116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 2305116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm12,XMMWORD PTR[80+r12] 2306116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp r14,96 2307116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch je $L$xts_dec_6 2308116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm11 2309116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm13,XMMWORD PTR[96+r12] 2310116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm12 2311116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[112+rsp],xmm6 2312116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[112+r12] 2313116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,xmm13 2314116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rsp] 2315116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 2316116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2317116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_decrypt8 2318116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2319116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[rsp] 2320116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[16+rsp] 2321116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 2322116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,XMMWORD PTR[32+rsp] 2323116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 2324116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,XMMWORD PTR[48+rsp] 2325116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm5 2326116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,XMMWORD PTR[64+rsp] 2327116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm3 2328116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,XMMWORD PTR[80+rsp] 2329116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[64+r13],xmm1 2330116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,XMMWORD PTR[96+rsp] 2331116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[80+r13],xmm6 2332116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[96+r13],xmm2 2333116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[112+r13] 2334116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2335116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[112+rsp] 2336116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$xts_dec_done 2337116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 2338116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_dec_6:: 2339116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm11 2340116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[96+r12] 2341116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm4,xmm12 2342116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rsp] 2343116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 2344116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2345116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_decrypt8 2346116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2347116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[rsp] 2348116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[16+rsp] 2349116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 2350116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,XMMWORD PTR[32+rsp] 2351116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 2352116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,XMMWORD PTR[48+rsp] 2353116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm5 2354116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,XMMWORD PTR[64+rsp] 2355116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm3 2356116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,XMMWORD PTR[80+rsp] 2357116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[64+r13],xmm1 2358116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[80+r13],xmm6 2359116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[96+r13] 2360116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2361116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[96+rsp] 2362116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$xts_dec_done 2363116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 2364116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_dec_5:: 2365116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm10 2366116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[80+r12] 2367116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,xmm11 2368116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rsp] 2369116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 2370116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2371116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_decrypt8 2372116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2373116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[rsp] 2374116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[16+rsp] 2375116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 2376116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,XMMWORD PTR[32+rsp] 2377116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 2378116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,XMMWORD PTR[48+rsp] 2379116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm5 2380116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,XMMWORD PTR[64+rsp] 2381116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm3 2382116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[64+r13],xmm1 2383116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[80+r13] 2384116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2385116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[80+rsp] 2386116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$xts_dec_done 2387116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 2388116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_dec_4:: 2389116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm9 2390116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[64+r12] 2391116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm2,xmm10 2392116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rsp] 2393116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 2394116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2395116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_decrypt8 2396116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2397116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[rsp] 2398116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[16+rsp] 2399116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 2400116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,XMMWORD PTR[32+rsp] 2401116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 2402116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm3,XMMWORD PTR[48+rsp] 2403116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm5 2404116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[48+r13],xmm3 2405116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[64+r13] 2406116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2407116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[64+rsp] 2408116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$xts_dec_done 2409116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 2410116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_dec_3:: 2411116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 2412116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[48+r12] 2413116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm1,xmm9 2414116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rsp] 2415116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 2416116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2417116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_decrypt8 2418116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2419116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[rsp] 2420116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[16+rsp] 2421116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 2422116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,XMMWORD PTR[32+rsp] 2423116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 2424116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[32+r13],xmm5 2425116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[48+r13] 2426116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2427116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[48+rsp] 2428116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$xts_dec_done 2429116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 2430116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_dec_2:: 2431116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm7 2432116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[32+r12] 2433116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm8 2434116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[128+rsp] 2435116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,edx 2436116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2437116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call _bsaes_decrypt8 2438116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2439116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[rsp] 2440116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,XMMWORD PTR[16+rsp] 2441116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 2442116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[16+r13],xmm0 2443116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[32+r13] 2444116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2445116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[32+rsp] 2446116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jmp $L$xts_dec_done 2447116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 2448116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_dec_1:: 2449116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm7,xmm15 2450116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[16+r12] 2451116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rbp],xmm7 2452116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rcx,QWORD PTR[32+rbp] 2453116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdx,QWORD PTR[32+rbp] 2454116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r8,QWORD PTR[r15] 2455116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call asm_AES_decrypt 2456116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,XMMWORD PTR[32+rbp] 2457116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2458116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2459116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2460116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2461116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2462116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm15 2463116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r13,QWORD PTR[16+r13] 2464116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2465116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm6,XMMWORD PTR[16+rsp] 2466116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2467116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_dec_done:: 2468116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch and ebx,15 2469116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jz $L$xts_dec_ret 2470116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2471116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm14,xmm14 2472116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm12,XMMWORD PTR[$L$xts_magic] 2473116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pcmpgtd xmm14,xmm6 2474116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pshufd xmm13,xmm14,013h 2475116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa xmm5,xmm6 2476116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch paddq xmm6,xmm6 2477116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pand xmm13,xmm12 2478116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm15,XMMWORD PTR[r12] 2479116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,xmm13 2480116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2481116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rcx,QWORD PTR[32+rbp] 2482116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm6 2483116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdx,QWORD PTR[32+rbp] 2484116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rbp],xmm15 2485116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r8,QWORD PTR[r15] 2486116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call asm_AES_decrypt 2487116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm6,XMMWORD PTR[32+rbp] 2488116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdx,r13 2489116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm6 2490116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2491116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_dec_steal:: 2492116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movzx eax,BYTE PTR[16+r12] 2493116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movzx ecx,BYTE PTR[rdx] 2494116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[1+r12] 2495116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov BYTE PTR[rdx],al 2496116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov BYTE PTR[16+rdx],cl 2497116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdx,QWORD PTR[1+rdx] 2498116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub ebx,1 2499116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jnz $L$xts_dec_steal 2500116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2501116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu xmm15,XMMWORD PTR[r13] 2502116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rcx,QWORD PTR[32+rbp] 2503116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm15,xmm5 2504116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdx,QWORD PTR[32+rbp] 2505116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[32+rbp],xmm15 2506116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r8,QWORD PTR[r15] 2507116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call asm_AES_decrypt 2508116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm5,XMMWORD PTR[32+rbp] 2509116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqu XMMWORD PTR[r13],xmm5 2510116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2511116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_dec_ret:: 2512116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[rsp] 2513116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pxor xmm0,xmm0 2514116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_dec_bzero:: 2515116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[rax],xmm0 2516116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movdqa XMMWORD PTR[16+rax],xmm0 2517116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[32+rax] 2518116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp rbp,rax 2519116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ja $L$xts_dec_bzero 2520116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2521116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[rbp] 2522116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm6,XMMWORD PTR[64+rbp] 2523116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm7,XMMWORD PTR[80+rbp] 2524116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm8,XMMWORD PTR[96+rbp] 2525116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm9,XMMWORD PTR[112+rbp] 2526116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm10,XMMWORD PTR[128+rbp] 2527116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm11,XMMWORD PTR[144+rbp] 2528116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm12,XMMWORD PTR[160+rbp] 2529116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm13,XMMWORD PTR[176+rbp] 2530116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm14,XMMWORD PTR[192+rbp] 2531116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch movaps xmm15,XMMWORD PTR[208+rbp] 2532116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[160+rbp] 2533116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[72+rsp] 2534116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[80+rsp] 2535116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[88+rsp] 2536116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[96+rsp] 2537116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,QWORD PTR[104+rsp] 2538116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[112+rsp] 2539116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsp,QWORD PTR[120+rsp] 2540116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,rax 2541116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_dec_epilogue:: 2542116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 2543116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbsaes_xts_decrypt ENDP 2544116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2545116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 64 2546116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch_bsaes_const:: 2547116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$M0ISR:: 2548116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00a0e0206070b0f03h,00004080c0d010509h 2549116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ISRM0:: 2550116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 001040b0e0205080fh,00306090c00070a0dh 2551116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ISR:: 2552116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00504070602010003h,00f0e0d0c080b0a09h 2553116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$BS0:: 2554116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 05555555555555555h,05555555555555555h 2555116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$BS1:: 2556116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 03333333333333333h,03333333333333333h 2557116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$BS2:: 2558116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00f0f0f0f0f0f0f0fh,00f0f0f0f0f0f0f0fh 2559116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SR:: 2560116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00504070600030201h,00f0e0d0c0a09080bh 2561116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SRM0:: 2562116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00304090e00050a0fh,001060b0c0207080dh 2563116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$M0SR:: 2564116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00a0e02060f03070bh,00004080c05090d01h 2565116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SWPUP:: 2566116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00706050403020100h,00c0d0e0f0b0a0908h 2567116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$SWPUPM0SR:: 2568116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00a0d02060c03070bh,00004080f05090e01h 2569116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ADD1:: 2570116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00000000000000000h,00000000100000000h 2571116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ADD2:: 2572116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00000000000000000h,00000000200000000h 2573116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ADD3:: 2574116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00000000000000000h,00000000300000000h 2575116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ADD4:: 2576116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00000000000000000h,00000000400000000h 2577116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ADD5:: 2578116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00000000000000000h,00000000500000000h 2579116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ADD6:: 2580116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00000000000000000h,00000000600000000h 2581116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ADD7:: 2582116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00000000000000000h,00000000700000000h 2583116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ADD8:: 2584116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00000000000000000h,00000000800000000h 2585116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_magic:: 2586116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD 087h,0,1,0 2587116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$masks:: 2588116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00101010101010101h,00101010101010101h 2589116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00202020202020202h,00202020202020202h 2590116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00404040404040404h,00404040404040404h 2591116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 00808080808080808h,00808080808080808h 2592116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$M0:: 2593116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 002060a0e03070b0fh,00004080c0105090dh 2594116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$63:: 2595116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DQ 06363636363636363h,06363636363636363h 2596116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102 2597116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44 2598116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44 2599116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32 2600116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 65,110,100,121,32,80,111,108,121,97,107,111,118,0 2601116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 64 2602116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2603116680a4aac90f2aa7413d9095a592090648e557Ben MurdochEXTERN __imp_RtlVirtualUnwind:NEAR 2604116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2605116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 16 2606116680a4aac90f2aa7413d9095a592090648e557Ben Murdochse_handler PROC PRIVATE 2607116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rsi 2608116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rdi 2609116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbx 2610116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push rbp 2611116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r12 2612116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r13 2613116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r14 2614116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch push r15 2615116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pushfq 2616116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sub rsp,64 2617116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2618116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[120+r8] 2619116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,QWORD PTR[248+r8] 2620116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2621116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,QWORD PTR[8+r9] 2622116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r11,QWORD PTR[56+r9] 2623116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2624116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,DWORD PTR[r11] 2625116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r10,QWORD PTR[r10*1+rsi] 2626116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp rbx,r10 2627116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jb $L$in_prologue 2628116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2629116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[152+r8] 2630116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2631116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10d,DWORD PTR[4+r11] 2632116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r10,QWORD PTR[r10*1+rsi] 2633116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch cmp rbx,r10 2634116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch jae $L$in_prologue 2635116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2636116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rax,QWORD PTR[160+r8] 2637116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2638116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rsi,QWORD PTR[64+rax] 2639116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rdi,QWORD PTR[512+r8] 2640116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov ecx,20 2641116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD 0a548f3fch 2642116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[160+rax] 2643116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2644116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbp,QWORD PTR[112+rax] 2645116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rbx,QWORD PTR[104+rax] 2646116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r12,QWORD PTR[96+rax] 2647116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r13,QWORD PTR[88+rax] 2648116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r14,QWORD PTR[80+rax] 2649116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r15,QWORD PTR[72+rax] 2650116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea rax,QWORD PTR[120+rax] 2651116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[144+r8],rbx 2652116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[160+r8],rbp 2653116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[216+r8],r12 2654116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[224+r8],r13 2655116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[232+r8],r14 2656116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[240+r8],r15 2657116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2658116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$in_prologue:: 2659116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[152+r8],rax 2660116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2661116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdi,QWORD PTR[40+r9] 2662116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,r8 2663116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov ecx,154 2664116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD 0a548f3fch 2665116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2666116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rsi,r9 2667116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch xor rcx,rcx 2668116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov rdx,QWORD PTR[8+rsi] 2669116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r8,QWORD PTR[rsi] 2670116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r9,QWORD PTR[16+rsi] 2671116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov r10,QWORD PTR[40+rsi] 2672116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r11,QWORD PTR[56+rsi] 2673116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch lea r12,QWORD PTR[24+rsi] 2674116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[32+rsp],r10 2675116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[40+rsp],r11 2676116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[48+rsp],r12 2677116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov QWORD PTR[56+rsp],rcx 2678116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch call QWORD PTR[__imp_RtlVirtualUnwind] 2679116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2680116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch mov eax,1 2681116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch add rsp,64 2682116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch popfq 2683116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pop r15 2684116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pop r14 2685116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pop r13 2686116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pop r12 2687116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pop rbp 2688116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pop rbx 2689116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pop rdi 2690116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pop rsi 2691116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DB 0F3h,0C3h ;repret 2692116680a4aac90f2aa7413d9095a592090648e557Ben Murdochse_handler ENDP 2693116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2694116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch.text$ ENDS 2695116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch.pdata SEGMENT READONLY ALIGN(4) 2696116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 4 2697116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$cbc_dec_prologue 2698116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$cbc_dec_epilogue 2699116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$cbc_dec_info 2700116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2701116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$ctr_enc_prologue 2702116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$ctr_enc_epilogue 2703116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$ctr_enc_info 2704116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2705116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$xts_enc_prologue 2706116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$xts_enc_epilogue 2707116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$xts_enc_info 2708116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2709116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$xts_dec_prologue 2710116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$xts_dec_epilogue 2711116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$xts_dec_info 2712116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2713116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch.pdata ENDS 2714116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch.xdata SEGMENT READONLY ALIGN(8) 2715116680a4aac90f2aa7413d9095a592090648e557Ben MurdochALIGN 8 2716116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$cbc_dec_info:: 2717116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 9,0,0,0 2718116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel se_handler 2719116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$cbc_dec_body,imagerel $L$cbc_dec_epilogue 2720116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$ctr_enc_info:: 2721116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 9,0,0,0 2722116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel se_handler 2723116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$ctr_enc_body,imagerel $L$ctr_enc_epilogue 2724116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_enc_info:: 2725116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 9,0,0,0 2726116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel se_handler 2727116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$xts_enc_body,imagerel $L$xts_enc_epilogue 2728116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch$L$xts_dec_info:: 2729116680a4aac90f2aa7413d9095a592090648e557Ben MurdochDB 9,0,0,0 2730116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel se_handler 2731116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DD imagerel $L$xts_dec_body,imagerel $L$xts_dec_epilogue 2732116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 2733116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch.xdata ENDS 2734116680a4aac90f2aa7413d9095a592090648e557Ben MurdochEND 2735