Path: blob/main/sys/crypto/openssl/amd64/bsaes-x86_64.S
39482 views
/* Do not modify. This file is auto-generated from bsaes-x86_64.pl. */1.text23456.type _bsaes_encrypt8,@function7.align 648_bsaes_encrypt8:9.cfi_startproc10leaq .LBS0(%rip),%r111112movdqa (%rax),%xmm813leaq 16(%rax),%rax14movdqa 80(%r11),%xmm715pxor %xmm8,%xmm1516pxor %xmm8,%xmm017pxor %xmm8,%xmm118pxor %xmm8,%xmm219.byte 102,68,15,56,0,25520.byte 102,15,56,0,19921pxor %xmm8,%xmm322pxor %xmm8,%xmm423.byte 102,15,56,0,20724.byte 102,15,56,0,21525pxor %xmm8,%xmm526pxor %xmm8,%xmm627.byte 102,15,56,0,22328.byte 102,15,56,0,23129.byte 102,15,56,0,23930.byte 102,15,56,0,24731_bsaes_encrypt8_bitslice:32movdqa 0(%r11),%xmm733movdqa 16(%r11),%xmm834movdqa %xmm5,%xmm935psrlq $1,%xmm536movdqa %xmm3,%xmm1037psrlq $1,%xmm338pxor %xmm6,%xmm539pxor %xmm4,%xmm340pand %xmm7,%xmm541pand %xmm7,%xmm342pxor %xmm5,%xmm643psllq $1,%xmm544pxor %xmm3,%xmm445psllq $1,%xmm346pxor %xmm9,%xmm547pxor %xmm10,%xmm348movdqa %xmm1,%xmm949psrlq $1,%xmm150movdqa %xmm15,%xmm1051psrlq $1,%xmm1552pxor %xmm2,%xmm153pxor %xmm0,%xmm1554pand %xmm7,%xmm155pand %xmm7,%xmm1556pxor %xmm1,%xmm257psllq $1,%xmm158pxor %xmm15,%xmm059psllq $1,%xmm1560pxor %xmm9,%xmm161pxor %xmm10,%xmm1562movdqa 32(%r11),%xmm763movdqa %xmm4,%xmm964psrlq $2,%xmm465movdqa %xmm3,%xmm1066psrlq $2,%xmm367pxor %xmm6,%xmm468pxor %xmm5,%xmm369pand %xmm8,%xmm470pand %xmm8,%xmm371pxor %xmm4,%xmm672psllq $2,%xmm473pxor %xmm3,%xmm574psllq $2,%xmm375pxor %xmm9,%xmm476pxor %xmm10,%xmm377movdqa %xmm0,%xmm978psrlq $2,%xmm079movdqa %xmm15,%xmm1080psrlq $2,%xmm1581pxor %xmm2,%xmm082pxor %xmm1,%xmm1583pand %xmm8,%xmm084pand %xmm8,%xmm1585pxor %xmm0,%xmm286psllq $2,%xmm087pxor %xmm15,%xmm188psllq $2,%xmm1589pxor %xmm9,%xmm090pxor %xmm10,%xmm1591movdqa %xmm2,%xmm992psrlq $4,%xmm293movdqa %xmm1,%xmm1094psrlq $4,%xmm195pxor %xmm6,%xmm296pxor %xmm5,%xmm197pand %xmm7,%xmm298pand %xmm7,%xmm199pxor %xmm2,%xmm6100psllq $4,%xmm2101pxor %xmm1,%xmm5102psllq $4,%xmm1103pxor %xmm9,%xmm2104pxor %xmm10,%xmm1105movdqa %xmm0,%xmm9106psrlq $4,%xmm0107movdqa %xmm15,%xmm10108psrlq $4,%xmm15109pxor %xmm4,%xmm0110pxor %xmm3,%xmm15111pand %xmm7,%xmm0112pand %xmm7,%xmm15113pxor %xmm0,%xmm4114psllq $4,%xmm0115pxor %xmm15,%xmm3116psllq $4,%xmm15117pxor %xmm9,%xmm0118pxor %xmm10,%xmm15119decl %r10d120jmp .Lenc_sbox121.align 16122.Lenc_loop:123pxor 0(%rax),%xmm15124pxor 16(%rax),%xmm0125pxor 32(%rax),%xmm1126pxor 48(%rax),%xmm2127.byte 102,68,15,56,0,255128.byte 102,15,56,0,199129pxor 64(%rax),%xmm3130pxor 80(%rax),%xmm4131.byte 102,15,56,0,207132.byte 102,15,56,0,215133pxor 96(%rax),%xmm5134pxor 112(%rax),%xmm6135.byte 102,15,56,0,223136.byte 102,15,56,0,231137.byte 102,15,56,0,239138.byte 102,15,56,0,247139leaq 128(%rax),%rax140.Lenc_sbox:141pxor %xmm5,%xmm4142pxor %xmm0,%xmm1143pxor %xmm15,%xmm2144pxor %xmm1,%xmm5145pxor %xmm15,%xmm4146147pxor %xmm2,%xmm5148pxor %xmm6,%xmm2149pxor %xmm4,%xmm6150pxor %xmm3,%xmm2151pxor %xmm4,%xmm3152pxor %xmm0,%xmm2153154pxor %xmm6,%xmm1155pxor %xmm4,%xmm0156movdqa %xmm6,%xmm10157movdqa %xmm0,%xmm9158movdqa %xmm4,%xmm8159movdqa %xmm1,%xmm12160movdqa %xmm5,%xmm11161162pxor %xmm3,%xmm10163pxor %xmm1,%xmm9164pxor %xmm2,%xmm8165movdqa %xmm10,%xmm13166pxor %xmm3,%xmm12167movdqa %xmm9,%xmm7168pxor %xmm15,%xmm11169movdqa %xmm10,%xmm14170171por %xmm8,%xmm9172por %xmm11,%xmm10173pxor %xmm7,%xmm14174pand %xmm11,%xmm13175pxor %xmm8,%xmm11176pand %xmm8,%xmm7177pand %xmm11,%xmm14178movdqa %xmm2,%xmm11179pxor %xmm15,%xmm11180pand %xmm11,%xmm12181pxor %xmm12,%xmm10182pxor %xmm12,%xmm9183movdqa %xmm6,%xmm12184movdqa %xmm4,%xmm11185pxor %xmm0,%xmm12186pxor %xmm5,%xmm11187movdqa %xmm12,%xmm8188pand %xmm11,%xmm12189por %xmm11,%xmm8190pxor %xmm12,%xmm7191pxor %xmm14,%xmm10192pxor %xmm13,%xmm9193pxor %xmm14,%xmm8194movdqa %xmm1,%xmm11195pxor %xmm13,%xmm7196movdqa %xmm3,%xmm12197pxor %xmm13,%xmm8198movdqa %xmm0,%xmm13199pand %xmm2,%xmm11200movdqa %xmm6,%xmm14201pand %xmm15,%xmm12202pand %xmm4,%xmm13203por %xmm5,%xmm14204pxor %xmm11,%xmm10205pxor %xmm12,%xmm9206pxor %xmm13,%xmm8207pxor %xmm14,%xmm7208209210211212213movdqa %xmm10,%xmm11214pand %xmm8,%xmm10215pxor %xmm9,%xmm11216217movdqa %xmm7,%xmm13218movdqa %xmm11,%xmm14219pxor %xmm10,%xmm13220pand %xmm13,%xmm14221222movdqa %xmm8,%xmm12223pxor %xmm9,%xmm14224pxor %xmm7,%xmm12225226pxor %xmm9,%xmm10227228pand %xmm10,%xmm12229230movdqa %xmm13,%xmm9231pxor %xmm7,%xmm12232233pxor %xmm12,%xmm9234pxor %xmm12,%xmm8235236pand %xmm7,%xmm9237238pxor %xmm9,%xmm13239pxor %xmm9,%xmm8240241pand %xmm14,%xmm13242243pxor %xmm11,%xmm13244movdqa %xmm5,%xmm11245movdqa %xmm4,%xmm7246movdqa %xmm14,%xmm9247pxor %xmm13,%xmm9248pand %xmm5,%xmm9249pxor %xmm4,%xmm5250pand %xmm14,%xmm4251pand %xmm13,%xmm5252pxor %xmm4,%xmm5253pxor %xmm9,%xmm4254pxor %xmm15,%xmm11255pxor %xmm2,%xmm7256pxor %xmm12,%xmm14257pxor %xmm8,%xmm13258movdqa %xmm14,%xmm10259movdqa %xmm12,%xmm9260pxor %xmm13,%xmm10261pxor %xmm8,%xmm9262pand %xmm11,%xmm10263pand %xmm15,%xmm9264pxor %xmm7,%xmm11265pxor %xmm2,%xmm15266pand %xmm14,%xmm7267pand %xmm12,%xmm2268pand %xmm13,%xmm11269pand %xmm8,%xmm15270pxor %xmm11,%xmm7271pxor %xmm2,%xmm15272pxor %xmm10,%xmm11273pxor %xmm9,%xmm2274pxor %xmm11,%xmm5275pxor %xmm11,%xmm15276pxor %xmm7,%xmm4277pxor %xmm7,%xmm2278279movdqa %xmm6,%xmm11280movdqa %xmm0,%xmm7281pxor %xmm3,%xmm11282pxor %xmm1,%xmm7283movdqa %xmm14,%xmm10284movdqa %xmm12,%xmm9285pxor %xmm13,%xmm10286pxor %xmm8,%xmm9287pand %xmm11,%xmm10288pand %xmm3,%xmm9289pxor %xmm7,%xmm11290pxor %xmm1,%xmm3291pand %xmm14,%xmm7292pand %xmm12,%xmm1293pand %xmm13,%xmm11294pand %xmm8,%xmm3295pxor %xmm11,%xmm7296pxor %xmm1,%xmm3297pxor %xmm10,%xmm11298pxor %xmm9,%xmm1299pxor %xmm12,%xmm14300pxor %xmm8,%xmm13301movdqa %xmm14,%xmm10302pxor %xmm13,%xmm10303pand %xmm6,%xmm10304pxor %xmm0,%xmm6305pand %xmm14,%xmm0306pand %xmm13,%xmm6307pxor %xmm0,%xmm6308pxor %xmm10,%xmm0309pxor %xmm11,%xmm6310pxor %xmm11,%xmm3311pxor %xmm7,%xmm0312pxor %xmm7,%xmm1313pxor %xmm15,%xmm6314pxor %xmm5,%xmm0315pxor %xmm6,%xmm3316pxor %xmm15,%xmm5317pxor %xmm0,%xmm15318319pxor %xmm4,%xmm0320pxor %xmm1,%xmm4321pxor %xmm2,%xmm1322pxor %xmm4,%xmm2323pxor %xmm4,%xmm3324325pxor %xmm2,%xmm5326decl %r10d327jl .Lenc_done328pshufd $0x93,%xmm15,%xmm7329pshufd $0x93,%xmm0,%xmm8330pxor %xmm7,%xmm15331pshufd $0x93,%xmm3,%xmm9332pxor %xmm8,%xmm0333pshufd $0x93,%xmm5,%xmm10334pxor %xmm9,%xmm3335pshufd $0x93,%xmm2,%xmm11336pxor %xmm10,%xmm5337pshufd $0x93,%xmm6,%xmm12338pxor %xmm11,%xmm2339pshufd $0x93,%xmm1,%xmm13340pxor %xmm12,%xmm6341pshufd $0x93,%xmm4,%xmm14342pxor %xmm13,%xmm1343pxor %xmm14,%xmm4344345pxor %xmm15,%xmm8346pxor %xmm4,%xmm7347pxor %xmm4,%xmm8348pshufd $0x4E,%xmm15,%xmm15349pxor %xmm0,%xmm9350pshufd $0x4E,%xmm0,%xmm0351pxor %xmm2,%xmm12352pxor %xmm7,%xmm15353pxor %xmm6,%xmm13354pxor %xmm8,%xmm0355pxor %xmm5,%xmm11356pshufd $0x4E,%xmm2,%xmm7357pxor %xmm1,%xmm14358pshufd $0x4E,%xmm6,%xmm8359pxor %xmm3,%xmm10360pshufd $0x4E,%xmm5,%xmm2361pxor %xmm4,%xmm10362pshufd $0x4E,%xmm4,%xmm6363pxor %xmm4,%xmm11364pshufd $0x4E,%xmm1,%xmm5365pxor %xmm11,%xmm7366pshufd $0x4E,%xmm3,%xmm1367pxor %xmm12,%xmm8368pxor %xmm10,%xmm2369pxor %xmm14,%xmm6370pxor %xmm13,%xmm5371movdqa %xmm7,%xmm3372pxor %xmm9,%xmm1373movdqa %xmm8,%xmm4374movdqa 48(%r11),%xmm7375jnz .Lenc_loop376movdqa 64(%r11),%xmm7377jmp .Lenc_loop378.align 16379.Lenc_done:380movdqa 0(%r11),%xmm7381movdqa 16(%r11),%xmm8382movdqa %xmm1,%xmm9383psrlq $1,%xmm1384movdqa %xmm2,%xmm10385psrlq $1,%xmm2386pxor %xmm4,%xmm1387pxor %xmm6,%xmm2388pand %xmm7,%xmm1389pand %xmm7,%xmm2390pxor %xmm1,%xmm4391psllq $1,%xmm1392pxor %xmm2,%xmm6393psllq $1,%xmm2394pxor %xmm9,%xmm1395pxor %xmm10,%xmm2396movdqa %xmm3,%xmm9397psrlq $1,%xmm3398movdqa %xmm15,%xmm10399psrlq $1,%xmm15400pxor %xmm5,%xmm3401pxor %xmm0,%xmm15402pand %xmm7,%xmm3403pand %xmm7,%xmm15404pxor %xmm3,%xmm5405psllq $1,%xmm3406pxor %xmm15,%xmm0407psllq $1,%xmm15408pxor %xmm9,%xmm3409pxor %xmm10,%xmm15410movdqa 32(%r11),%xmm7411movdqa %xmm6,%xmm9412psrlq $2,%xmm6413movdqa %xmm2,%xmm10414psrlq $2,%xmm2415pxor %xmm4,%xmm6416pxor %xmm1,%xmm2417pand %xmm8,%xmm6418pand %xmm8,%xmm2419pxor %xmm6,%xmm4420psllq $2,%xmm6421pxor %xmm2,%xmm1422psllq $2,%xmm2423pxor %xmm9,%xmm6424pxor %xmm10,%xmm2425movdqa %xmm0,%xmm9426psrlq $2,%xmm0427movdqa %xmm15,%xmm10428psrlq $2,%xmm15429pxor %xmm5,%xmm0430pxor %xmm3,%xmm15431pand %xmm8,%xmm0432pand %xmm8,%xmm15433pxor %xmm0,%xmm5434psllq $2,%xmm0435pxor %xmm15,%xmm3436psllq $2,%xmm15437pxor %xmm9,%xmm0438pxor %xmm10,%xmm15439movdqa %xmm5,%xmm9440psrlq $4,%xmm5441movdqa %xmm3,%xmm10442psrlq $4,%xmm3443pxor %xmm4,%xmm5444pxor %xmm1,%xmm3445pand %xmm7,%xmm5446pand %xmm7,%xmm3447pxor %xmm5,%xmm4448psllq $4,%xmm5449pxor %xmm3,%xmm1450psllq $4,%xmm3451pxor %xmm9,%xmm5452pxor %xmm10,%xmm3453movdqa %xmm0,%xmm9454psrlq $4,%xmm0455movdqa %xmm15,%xmm10456psrlq $4,%xmm15457pxor %xmm6,%xmm0458pxor %xmm2,%xmm15459pand %xmm7,%xmm0460pand %xmm7,%xmm15461pxor %xmm0,%xmm6462psllq $4,%xmm0463pxor %xmm15,%xmm2464psllq $4,%xmm15465pxor %xmm9,%xmm0466pxor %xmm10,%xmm15467movdqa (%rax),%xmm7468pxor %xmm7,%xmm3469pxor %xmm7,%xmm5470pxor %xmm7,%xmm2471pxor %xmm7,%xmm6472pxor %xmm7,%xmm1473pxor %xmm7,%xmm4474pxor %xmm7,%xmm15475pxor %xmm7,%xmm0476.byte 0xf3,0xc3477.cfi_endproc478.size _bsaes_encrypt8,.-_bsaes_encrypt8479480.type _bsaes_decrypt8,@function481.align 64482_bsaes_decrypt8:483.cfi_startproc484leaq .LBS0(%rip),%r11485486movdqa (%rax),%xmm8487leaq 16(%rax),%rax488movdqa -48(%r11),%xmm7489pxor %xmm8,%xmm15490pxor %xmm8,%xmm0491pxor %xmm8,%xmm1492pxor %xmm8,%xmm2493.byte 102,68,15,56,0,255494.byte 102,15,56,0,199495pxor %xmm8,%xmm3496pxor %xmm8,%xmm4497.byte 102,15,56,0,207498.byte 102,15,56,0,215499pxor %xmm8,%xmm5500pxor %xmm8,%xmm6501.byte 102,15,56,0,223502.byte 102,15,56,0,231503.byte 102,15,56,0,239504.byte 102,15,56,0,247505movdqa 0(%r11),%xmm7506movdqa 16(%r11),%xmm8507movdqa %xmm5,%xmm9508psrlq $1,%xmm5509movdqa %xmm3,%xmm10510psrlq $1,%xmm3511pxor %xmm6,%xmm5512pxor %xmm4,%xmm3513pand %xmm7,%xmm5514pand %xmm7,%xmm3515pxor %xmm5,%xmm6516psllq $1,%xmm5517pxor %xmm3,%xmm4518psllq $1,%xmm3519pxor %xmm9,%xmm5520pxor %xmm10,%xmm3521movdqa %xmm1,%xmm9522psrlq $1,%xmm1523movdqa %xmm15,%xmm10524psrlq $1,%xmm15525pxor %xmm2,%xmm1526pxor %xmm0,%xmm15527pand %xmm7,%xmm1528pand %xmm7,%xmm15529pxor %xmm1,%xmm2530psllq $1,%xmm1531pxor %xmm15,%xmm0532psllq $1,%xmm15533pxor %xmm9,%xmm1534pxor %xmm10,%xmm15535movdqa 32(%r11),%xmm7536movdqa %xmm4,%xmm9537psrlq $2,%xmm4538movdqa %xmm3,%xmm10539psrlq $2,%xmm3540pxor %xmm6,%xmm4541pxor %xmm5,%xmm3542pand %xmm8,%xmm4543pand %xmm8,%xmm3544pxor %xmm4,%xmm6545psllq $2,%xmm4546pxor %xmm3,%xmm5547psllq $2,%xmm3548pxor %xmm9,%xmm4549pxor %xmm10,%xmm3550movdqa %xmm0,%xmm9551psrlq $2,%xmm0552movdqa %xmm15,%xmm10553psrlq $2,%xmm15554pxor %xmm2,%xmm0555pxor %xmm1,%xmm15556pand %xmm8,%xmm0557pand %xmm8,%xmm15558pxor %xmm0,%xmm2559psllq $2,%xmm0560pxor %xmm15,%xmm1561psllq $2,%xmm15562pxor %xmm9,%xmm0563pxor %xmm10,%xmm15564movdqa %xmm2,%xmm9565psrlq $4,%xmm2566movdqa %xmm1,%xmm10567psrlq $4,%xmm1568pxor %xmm6,%xmm2569pxor %xmm5,%xmm1570pand %xmm7,%xmm2571pand %xmm7,%xmm1572pxor %xmm2,%xmm6573psllq $4,%xmm2574pxor %xmm1,%xmm5575psllq $4,%xmm1576pxor %xmm9,%xmm2577pxor %xmm10,%xmm1578movdqa %xmm0,%xmm9579psrlq $4,%xmm0580movdqa %xmm15,%xmm10581psrlq $4,%xmm15582pxor %xmm4,%xmm0583pxor %xmm3,%xmm15584pand %xmm7,%xmm0585pand %xmm7,%xmm15586pxor %xmm0,%xmm4587psllq $4,%xmm0588pxor %xmm15,%xmm3589psllq $4,%xmm15590pxor %xmm9,%xmm0591pxor %xmm10,%xmm15592decl %r10d593jmp .Ldec_sbox594.align 16595.Ldec_loop:596pxor 0(%rax),%xmm15597pxor 16(%rax),%xmm0598pxor 32(%rax),%xmm1599pxor 48(%rax),%xmm2600.byte 102,68,15,56,0,255601.byte 102,15,56,0,199602pxor 64(%rax),%xmm3603pxor 80(%rax),%xmm4604.byte 102,15,56,0,207605.byte 102,15,56,0,215606pxor 96(%rax),%xmm5607pxor 112(%rax),%xmm6608.byte 102,15,56,0,223609.byte 102,15,56,0,231610.byte 102,15,56,0,239611.byte 102,15,56,0,247612leaq 128(%rax),%rax613.Ldec_sbox:614pxor %xmm3,%xmm2615616pxor %xmm6,%xmm3617pxor %xmm6,%xmm1618pxor %xmm3,%xmm5619pxor %xmm5,%xmm6620pxor %xmm6,%xmm0621622pxor %xmm0,%xmm15623pxor %xmm4,%xmm1624pxor %xmm15,%xmm2625pxor %xmm15,%xmm4626pxor %xmm2,%xmm0627movdqa %xmm2,%xmm10628movdqa %xmm6,%xmm9629movdqa %xmm0,%xmm8630movdqa %xmm3,%xmm12631movdqa %xmm4,%xmm11632633pxor %xmm15,%xmm10634pxor %xmm3,%xmm9635pxor %xmm5,%xmm8636movdqa %xmm10,%xmm13637pxor %xmm15,%xmm12638movdqa %xmm9,%xmm7639pxor %xmm1,%xmm11640movdqa %xmm10,%xmm14641642por %xmm8,%xmm9643por %xmm11,%xmm10644pxor %xmm7,%xmm14645pand %xmm11,%xmm13646pxor %xmm8,%xmm11647pand %xmm8,%xmm7648pand %xmm11,%xmm14649movdqa %xmm5,%xmm11650pxor %xmm1,%xmm11651pand %xmm11,%xmm12652pxor %xmm12,%xmm10653pxor %xmm12,%xmm9654movdqa %xmm2,%xmm12655movdqa %xmm0,%xmm11656pxor %xmm6,%xmm12657pxor %xmm4,%xmm11658movdqa %xmm12,%xmm8659pand %xmm11,%xmm12660por %xmm11,%xmm8661pxor %xmm12,%xmm7662pxor %xmm14,%xmm10663pxor %xmm13,%xmm9664pxor %xmm14,%xmm8665movdqa %xmm3,%xmm11666pxor %xmm13,%xmm7667movdqa %xmm15,%xmm12668pxor %xmm13,%xmm8669movdqa %xmm6,%xmm13670pand %xmm5,%xmm11671movdqa %xmm2,%xmm14672pand %xmm1,%xmm12673pand %xmm0,%xmm13674por %xmm4,%xmm14675pxor %xmm11,%xmm10676pxor %xmm12,%xmm9677pxor %xmm13,%xmm8678pxor %xmm14,%xmm7679680681682683684movdqa %xmm10,%xmm11685pand %xmm8,%xmm10686pxor %xmm9,%xmm11687688movdqa %xmm7,%xmm13689movdqa %xmm11,%xmm14690pxor %xmm10,%xmm13691pand %xmm13,%xmm14692693movdqa %xmm8,%xmm12694pxor %xmm9,%xmm14695pxor %xmm7,%xmm12696697pxor %xmm9,%xmm10698699pand %xmm10,%xmm12700701movdqa %xmm13,%xmm9702pxor %xmm7,%xmm12703704pxor %xmm12,%xmm9705pxor %xmm12,%xmm8706707pand %xmm7,%xmm9708709pxor %xmm9,%xmm13710pxor %xmm9,%xmm8711712pand %xmm14,%xmm13713714pxor %xmm11,%xmm13715movdqa %xmm4,%xmm11716movdqa %xmm0,%xmm7717movdqa %xmm14,%xmm9718pxor %xmm13,%xmm9719pand %xmm4,%xmm9720pxor %xmm0,%xmm4721pand %xmm14,%xmm0722pand %xmm13,%xmm4723pxor %xmm0,%xmm4724pxor %xmm9,%xmm0725pxor %xmm1,%xmm11726pxor %xmm5,%xmm7727pxor %xmm12,%xmm14728pxor %xmm8,%xmm13729movdqa %xmm14,%xmm10730movdqa %xmm12,%xmm9731pxor %xmm13,%xmm10732pxor %xmm8,%xmm9733pand %xmm11,%xmm10734pand %xmm1,%xmm9735pxor %xmm7,%xmm11736pxor %xmm5,%xmm1737pand %xmm14,%xmm7738pand %xmm12,%xmm5739pand %xmm13,%xmm11740pand %xmm8,%xmm1741pxor %xmm11,%xmm7742pxor %xmm5,%xmm1743pxor %xmm10,%xmm11744pxor %xmm9,%xmm5745pxor %xmm11,%xmm4746pxor %xmm11,%xmm1747pxor %xmm7,%xmm0748pxor %xmm7,%xmm5749750movdqa %xmm2,%xmm11751movdqa %xmm6,%xmm7752pxor %xmm15,%xmm11753pxor %xmm3,%xmm7754movdqa %xmm14,%xmm10755movdqa %xmm12,%xmm9756pxor %xmm13,%xmm10757pxor %xmm8,%xmm9758pand %xmm11,%xmm10759pand %xmm15,%xmm9760pxor %xmm7,%xmm11761pxor %xmm3,%xmm15762pand %xmm14,%xmm7763pand %xmm12,%xmm3764pand %xmm13,%xmm11765pand %xmm8,%xmm15766pxor %xmm11,%xmm7767pxor %xmm3,%xmm15768pxor %xmm10,%xmm11769pxor %xmm9,%xmm3770pxor %xmm12,%xmm14771pxor %xmm8,%xmm13772movdqa %xmm14,%xmm10773pxor %xmm13,%xmm10774pand %xmm2,%xmm10775pxor %xmm6,%xmm2776pand %xmm14,%xmm6777pand %xmm13,%xmm2778pxor %xmm6,%xmm2779pxor %xmm10,%xmm6780pxor %xmm11,%xmm2781pxor %xmm11,%xmm15782pxor %xmm7,%xmm6783pxor %xmm7,%xmm3784pxor %xmm6,%xmm0785pxor %xmm4,%xmm5786787pxor %xmm0,%xmm3788pxor %xmm6,%xmm1789pxor %xmm6,%xmm4790pxor %xmm1,%xmm3791pxor %xmm15,%xmm6792pxor %xmm4,%xmm3793pxor %xmm5,%xmm2794pxor %xmm0,%xmm5795pxor %xmm3,%xmm2796797pxor %xmm15,%xmm3798pxor %xmm2,%xmm6799decl %r10d800jl .Ldec_done801802pshufd $0x4E,%xmm15,%xmm7803pshufd $0x4E,%xmm2,%xmm13804pxor %xmm15,%xmm7805pshufd $0x4E,%xmm4,%xmm14806pxor %xmm2,%xmm13807pshufd $0x4E,%xmm0,%xmm8808pxor %xmm4,%xmm14809pshufd $0x4E,%xmm5,%xmm9810pxor %xmm0,%xmm8811pshufd $0x4E,%xmm3,%xmm10812pxor %xmm5,%xmm9813pxor %xmm13,%xmm15814pxor %xmm13,%xmm0815pshufd $0x4E,%xmm1,%xmm11816pxor %xmm3,%xmm10817pxor %xmm7,%xmm5818pxor %xmm8,%xmm3819pshufd $0x4E,%xmm6,%xmm12820pxor %xmm1,%xmm11821pxor %xmm14,%xmm0822pxor %xmm9,%xmm1823pxor %xmm6,%xmm12824825pxor %xmm14,%xmm5826pxor %xmm13,%xmm3827pxor %xmm13,%xmm1828pxor %xmm10,%xmm6829pxor %xmm11,%xmm2830pxor %xmm14,%xmm1831pxor %xmm14,%xmm6832pxor %xmm12,%xmm4833pshufd $0x93,%xmm15,%xmm7834pshufd $0x93,%xmm0,%xmm8835pxor %xmm7,%xmm15836pshufd $0x93,%xmm5,%xmm9837pxor %xmm8,%xmm0838pshufd $0x93,%xmm3,%xmm10839pxor %xmm9,%xmm5840pshufd $0x93,%xmm1,%xmm11841pxor %xmm10,%xmm3842pshufd $0x93,%xmm6,%xmm12843pxor %xmm11,%xmm1844pshufd $0x93,%xmm2,%xmm13845pxor %xmm12,%xmm6846pshufd $0x93,%xmm4,%xmm14847pxor %xmm13,%xmm2848pxor %xmm14,%xmm4849850pxor %xmm15,%xmm8851pxor %xmm4,%xmm7852pxor %xmm4,%xmm8853pshufd $0x4E,%xmm15,%xmm15854pxor %xmm0,%xmm9855pshufd $0x4E,%xmm0,%xmm0856pxor %xmm1,%xmm12857pxor %xmm7,%xmm15858pxor %xmm6,%xmm13859pxor %xmm8,%xmm0860pxor %xmm3,%xmm11861pshufd $0x4E,%xmm1,%xmm7862pxor %xmm2,%xmm14863pshufd $0x4E,%xmm6,%xmm8864pxor %xmm5,%xmm10865pshufd $0x4E,%xmm3,%xmm1866pxor %xmm4,%xmm10867pshufd $0x4E,%xmm4,%xmm6868pxor %xmm4,%xmm11869pshufd $0x4E,%xmm2,%xmm3870pxor %xmm11,%xmm7871pshufd $0x4E,%xmm5,%xmm2872pxor %xmm12,%xmm8873pxor %xmm1,%xmm10874pxor %xmm14,%xmm6875pxor %xmm3,%xmm13876movdqa %xmm7,%xmm3877pxor %xmm9,%xmm2878movdqa %xmm13,%xmm5879movdqa %xmm8,%xmm4880movdqa %xmm2,%xmm1881movdqa %xmm10,%xmm2882movdqa -16(%r11),%xmm7883jnz .Ldec_loop884movdqa -32(%r11),%xmm7885jmp .Ldec_loop886.align 16887.Ldec_done:888movdqa 0(%r11),%xmm7889movdqa 16(%r11),%xmm8890movdqa %xmm2,%xmm9891psrlq $1,%xmm2892movdqa %xmm1,%xmm10893psrlq $1,%xmm1894pxor %xmm4,%xmm2895pxor %xmm6,%xmm1896pand %xmm7,%xmm2897pand %xmm7,%xmm1898pxor %xmm2,%xmm4899psllq $1,%xmm2900pxor %xmm1,%xmm6901psllq $1,%xmm1902pxor %xmm9,%xmm2903pxor %xmm10,%xmm1904movdqa %xmm5,%xmm9905psrlq $1,%xmm5906movdqa %xmm15,%xmm10907psrlq $1,%xmm15908pxor %xmm3,%xmm5909pxor %xmm0,%xmm15910pand %xmm7,%xmm5911pand %xmm7,%xmm15912pxor %xmm5,%xmm3913psllq $1,%xmm5914pxor %xmm15,%xmm0915psllq $1,%xmm15916pxor %xmm9,%xmm5917pxor %xmm10,%xmm15918movdqa 32(%r11),%xmm7919movdqa %xmm6,%xmm9920psrlq $2,%xmm6921movdqa %xmm1,%xmm10922psrlq $2,%xmm1923pxor %xmm4,%xmm6924pxor %xmm2,%xmm1925pand %xmm8,%xmm6926pand %xmm8,%xmm1927pxor %xmm6,%xmm4928psllq $2,%xmm6929pxor %xmm1,%xmm2930psllq $2,%xmm1931pxor %xmm9,%xmm6932pxor %xmm10,%xmm1933movdqa %xmm0,%xmm9934psrlq $2,%xmm0935movdqa %xmm15,%xmm10936psrlq $2,%xmm15937pxor %xmm3,%xmm0938pxor %xmm5,%xmm15939pand %xmm8,%xmm0940pand %xmm8,%xmm15941pxor %xmm0,%xmm3942psllq $2,%xmm0943pxor %xmm15,%xmm5944psllq $2,%xmm15945pxor %xmm9,%xmm0946pxor %xmm10,%xmm15947movdqa %xmm3,%xmm9948psrlq $4,%xmm3949movdqa %xmm5,%xmm10950psrlq $4,%xmm5951pxor %xmm4,%xmm3952pxor %xmm2,%xmm5953pand %xmm7,%xmm3954pand %xmm7,%xmm5955pxor %xmm3,%xmm4956psllq $4,%xmm3957pxor %xmm5,%xmm2958psllq $4,%xmm5959pxor %xmm9,%xmm3960pxor %xmm10,%xmm5961movdqa %xmm0,%xmm9962psrlq $4,%xmm0963movdqa %xmm15,%xmm10964psrlq $4,%xmm15965pxor %xmm6,%xmm0966pxor %xmm1,%xmm15967pand %xmm7,%xmm0968pand %xmm7,%xmm15969pxor %xmm0,%xmm6970psllq $4,%xmm0971pxor %xmm15,%xmm1972psllq $4,%xmm15973pxor %xmm9,%xmm0974pxor %xmm10,%xmm15975movdqa (%rax),%xmm7976pxor %xmm7,%xmm5977pxor %xmm7,%xmm3978pxor %xmm7,%xmm1979pxor %xmm7,%xmm6980pxor %xmm7,%xmm2981pxor %xmm7,%xmm4982pxor %xmm7,%xmm15983pxor %xmm7,%xmm0984.byte 0xf3,0xc3985.cfi_endproc986.size _bsaes_decrypt8,.-_bsaes_decrypt8987.type _bsaes_key_convert,@function988.align 16989_bsaes_key_convert:990.cfi_startproc991leaq .Lmasks(%rip),%r11992movdqu (%rcx),%xmm7993leaq 16(%rcx),%rcx994movdqa 0(%r11),%xmm0995movdqa 16(%r11),%xmm1996movdqa 32(%r11),%xmm2997movdqa 48(%r11),%xmm3998movdqa 64(%r11),%xmm4999pcmpeqd %xmm5,%xmm510001001movdqu (%rcx),%xmm61002movdqa %xmm7,(%rax)1003leaq 16(%rax),%rax1004decl %r10d1005jmp .Lkey_loop1006.align 161007.Lkey_loop:1008.byte 102,15,56,0,24410091010movdqa %xmm0,%xmm81011movdqa %xmm1,%xmm910121013pand %xmm6,%xmm81014pand %xmm6,%xmm91015movdqa %xmm2,%xmm101016pcmpeqb %xmm0,%xmm81017psllq $4,%xmm01018movdqa %xmm3,%xmm111019pcmpeqb %xmm1,%xmm91020psllq $4,%xmm110211022pand %xmm6,%xmm101023pand %xmm6,%xmm111024movdqa %xmm0,%xmm121025pcmpeqb %xmm2,%xmm101026psllq $4,%xmm21027movdqa %xmm1,%xmm131028pcmpeqb %xmm3,%xmm111029psllq $4,%xmm310301031movdqa %xmm2,%xmm141032movdqa %xmm3,%xmm151033pxor %xmm5,%xmm81034pxor %xmm5,%xmm910351036pand %xmm6,%xmm121037pand %xmm6,%xmm131038movdqa %xmm8,0(%rax)1039pcmpeqb %xmm0,%xmm121040psrlq $4,%xmm01041movdqa %xmm9,16(%rax)1042pcmpeqb %xmm1,%xmm131043psrlq $4,%xmm11044leaq 16(%rcx),%rcx10451046pand %xmm6,%xmm141047pand %xmm6,%xmm151048movdqa %xmm10,32(%rax)1049pcmpeqb %xmm2,%xmm141050psrlq $4,%xmm21051movdqa %xmm11,48(%rax)1052pcmpeqb %xmm3,%xmm151053psrlq $4,%xmm31054movdqu (%rcx),%xmm610551056pxor %xmm5,%xmm131057pxor %xmm5,%xmm141058movdqa %xmm12,64(%rax)1059movdqa %xmm13,80(%rax)1060movdqa %xmm14,96(%rax)1061movdqa %xmm15,112(%rax)1062leaq 128(%rax),%rax1063decl %r10d1064jnz .Lkey_loop10651066movdqa 80(%r11),%xmm710671068.byte 0xf3,0xc31069.cfi_endproc1070.size _bsaes_key_convert,.-_bsaes_key_convert10711072.globl ossl_bsaes_cbc_encrypt1073.type ossl_bsaes_cbc_encrypt,@function1074.align 161075ossl_bsaes_cbc_encrypt:1076.cfi_startproc1077.byte 243,15,30,2501078cmpl $0,%r9d1079jne asm_AES_cbc_encrypt1080cmpq $128,%rdx1081jb asm_AES_cbc_encrypt10821083movq %rsp,%rax1084.Lcbc_dec_prologue:1085pushq %rbp1086.cfi_adjust_cfa_offset 81087.cfi_offset %rbp,-161088pushq %rbx1089.cfi_adjust_cfa_offset 81090.cfi_offset %rbx,-241091pushq %r121092.cfi_adjust_cfa_offset 81093.cfi_offset %r12,-321094pushq %r131095.cfi_adjust_cfa_offset 81096.cfi_offset %r13,-401097pushq %r141098.cfi_adjust_cfa_offset 81099.cfi_offset %r14,-481100pushq %r151101.cfi_adjust_cfa_offset 81102.cfi_offset %r15,-561103leaq -72(%rsp),%rsp1104.cfi_adjust_cfa_offset 0x481105movq %rsp,%rbp1106.cfi_def_cfa_register %rbp1107movl 240(%rcx),%eax1108movq %rdi,%r121109movq %rsi,%r131110movq %rdx,%r141111movq %rcx,%r151112movq %r8,%rbx1113shrq $4,%r1411141115movl %eax,%edx1116shlq $7,%rax1117subq $96,%rax1118subq %rax,%rsp11191120movq %rsp,%rax1121movq %r15,%rcx1122movl %edx,%r10d1123call _bsaes_key_convert1124pxor (%rsp),%xmm71125movdqa %xmm6,(%rax)1126movdqa %xmm7,(%rsp)11271128movdqu (%rbx),%xmm141129subq $8,%r141130.Lcbc_dec_loop:1131movdqu 0(%r12),%xmm151132movdqu 16(%r12),%xmm01133movdqu 32(%r12),%xmm11134movdqu 48(%r12),%xmm21135movdqu 64(%r12),%xmm31136movdqu 80(%r12),%xmm41137movq %rsp,%rax1138movdqu 96(%r12),%xmm51139movl %edx,%r10d1140movdqu 112(%r12),%xmm61141movdqa %xmm14,32(%rbp)11421143call _bsaes_decrypt811441145pxor 32(%rbp),%xmm151146movdqu 0(%r12),%xmm71147movdqu 16(%r12),%xmm81148pxor %xmm7,%xmm01149movdqu 32(%r12),%xmm91150pxor %xmm8,%xmm51151movdqu 48(%r12),%xmm101152pxor %xmm9,%xmm31153movdqu 64(%r12),%xmm111154pxor %xmm10,%xmm11155movdqu 80(%r12),%xmm121156pxor %xmm11,%xmm61157movdqu 96(%r12),%xmm131158pxor %xmm12,%xmm21159movdqu 112(%r12),%xmm141160pxor %xmm13,%xmm41161movdqu %xmm15,0(%r13)1162leaq 128(%r12),%r121163movdqu %xmm0,16(%r13)1164movdqu %xmm5,32(%r13)1165movdqu %xmm3,48(%r13)1166movdqu %xmm1,64(%r13)1167movdqu %xmm6,80(%r13)1168movdqu %xmm2,96(%r13)1169movdqu %xmm4,112(%r13)1170leaq 128(%r13),%r131171subq $8,%r141172jnc .Lcbc_dec_loop11731174addq $8,%r141175jz .Lcbc_dec_done11761177movdqu 0(%r12),%xmm151178movq %rsp,%rax1179movl %edx,%r10d1180cmpq $2,%r141181jb .Lcbc_dec_one1182movdqu 16(%r12),%xmm01183je .Lcbc_dec_two1184movdqu 32(%r12),%xmm11185cmpq $4,%r141186jb .Lcbc_dec_three1187movdqu 48(%r12),%xmm21188je .Lcbc_dec_four1189movdqu 64(%r12),%xmm31190cmpq $6,%r141191jb .Lcbc_dec_five1192movdqu 80(%r12),%xmm41193je .Lcbc_dec_six1194movdqu 96(%r12),%xmm51195movdqa %xmm14,32(%rbp)1196call _bsaes_decrypt81197pxor 32(%rbp),%xmm151198movdqu 0(%r12),%xmm71199movdqu 16(%r12),%xmm81200pxor %xmm7,%xmm01201movdqu 32(%r12),%xmm91202pxor %xmm8,%xmm51203movdqu 48(%r12),%xmm101204pxor %xmm9,%xmm31205movdqu 64(%r12),%xmm111206pxor %xmm10,%xmm11207movdqu 80(%r12),%xmm121208pxor %xmm11,%xmm61209movdqu 96(%r12),%xmm141210pxor %xmm12,%xmm21211movdqu %xmm15,0(%r13)1212movdqu %xmm0,16(%r13)1213movdqu %xmm5,32(%r13)1214movdqu %xmm3,48(%r13)1215movdqu %xmm1,64(%r13)1216movdqu %xmm6,80(%r13)1217movdqu %xmm2,96(%r13)1218jmp .Lcbc_dec_done1219.align 161220.Lcbc_dec_six:1221movdqa %xmm14,32(%rbp)1222call _bsaes_decrypt81223pxor 32(%rbp),%xmm151224movdqu 0(%r12),%xmm71225movdqu 16(%r12),%xmm81226pxor %xmm7,%xmm01227movdqu 32(%r12),%xmm91228pxor %xmm8,%xmm51229movdqu 48(%r12),%xmm101230pxor %xmm9,%xmm31231movdqu 64(%r12),%xmm111232pxor %xmm10,%xmm11233movdqu 80(%r12),%xmm141234pxor %xmm11,%xmm61235movdqu %xmm15,0(%r13)1236movdqu %xmm0,16(%r13)1237movdqu %xmm5,32(%r13)1238movdqu %xmm3,48(%r13)1239movdqu %xmm1,64(%r13)1240movdqu %xmm6,80(%r13)1241jmp .Lcbc_dec_done1242.align 161243.Lcbc_dec_five:1244movdqa %xmm14,32(%rbp)1245call _bsaes_decrypt81246pxor 32(%rbp),%xmm151247movdqu 0(%r12),%xmm71248movdqu 16(%r12),%xmm81249pxor %xmm7,%xmm01250movdqu 32(%r12),%xmm91251pxor %xmm8,%xmm51252movdqu 48(%r12),%xmm101253pxor %xmm9,%xmm31254movdqu 64(%r12),%xmm141255pxor %xmm10,%xmm11256movdqu %xmm15,0(%r13)1257movdqu %xmm0,16(%r13)1258movdqu %xmm5,32(%r13)1259movdqu %xmm3,48(%r13)1260movdqu %xmm1,64(%r13)1261jmp .Lcbc_dec_done1262.align 161263.Lcbc_dec_four:1264movdqa %xmm14,32(%rbp)1265call _bsaes_decrypt81266pxor 32(%rbp),%xmm151267movdqu 0(%r12),%xmm71268movdqu 16(%r12),%xmm81269pxor %xmm7,%xmm01270movdqu 32(%r12),%xmm91271pxor %xmm8,%xmm51272movdqu 48(%r12),%xmm141273pxor %xmm9,%xmm31274movdqu %xmm15,0(%r13)1275movdqu %xmm0,16(%r13)1276movdqu %xmm5,32(%r13)1277movdqu %xmm3,48(%r13)1278jmp .Lcbc_dec_done1279.align 161280.Lcbc_dec_three:1281movdqa %xmm14,32(%rbp)1282call _bsaes_decrypt81283pxor 32(%rbp),%xmm151284movdqu 0(%r12),%xmm71285movdqu 16(%r12),%xmm81286pxor %xmm7,%xmm01287movdqu 32(%r12),%xmm141288pxor %xmm8,%xmm51289movdqu %xmm15,0(%r13)1290movdqu %xmm0,16(%r13)1291movdqu %xmm5,32(%r13)1292jmp .Lcbc_dec_done1293.align 161294.Lcbc_dec_two:1295movdqa %xmm14,32(%rbp)1296call _bsaes_decrypt81297pxor 32(%rbp),%xmm151298movdqu 0(%r12),%xmm71299movdqu 16(%r12),%xmm141300pxor %xmm7,%xmm01301movdqu %xmm15,0(%r13)1302movdqu %xmm0,16(%r13)1303jmp .Lcbc_dec_done1304.align 161305.Lcbc_dec_one:1306leaq (%r12),%rdi1307leaq 32(%rbp),%rsi1308leaq (%r15),%rdx1309call asm_AES_decrypt1310pxor 32(%rbp),%xmm141311movdqu %xmm14,(%r13)1312movdqa %xmm15,%xmm1413131314.Lcbc_dec_done:1315movdqu %xmm14,(%rbx)1316leaq (%rsp),%rax1317pxor %xmm0,%xmm01318.Lcbc_dec_bzero:1319movdqa %xmm0,0(%rax)1320movdqa %xmm0,16(%rax)1321leaq 32(%rax),%rax1322cmpq %rax,%rbp1323ja .Lcbc_dec_bzero13241325leaq 120(%rbp),%rax1326.cfi_def_cfa %rax,81327movq -48(%rax),%r151328.cfi_restore %r151329movq -40(%rax),%r141330.cfi_restore %r141331movq -32(%rax),%r131332.cfi_restore %r131333movq -24(%rax),%r121334.cfi_restore %r121335movq -16(%rax),%rbx1336.cfi_restore %rbx1337movq -8(%rax),%rbp1338.cfi_restore %rbp1339leaq (%rax),%rsp1340.cfi_def_cfa_register %rsp1341.Lcbc_dec_epilogue:1342.byte 0xf3,0xc31343.cfi_endproc1344.size ossl_bsaes_cbc_encrypt,.-ossl_bsaes_cbc_encrypt13451346.globl ossl_bsaes_ctr32_encrypt_blocks1347.type ossl_bsaes_ctr32_encrypt_blocks,@function1348.align 161349ossl_bsaes_ctr32_encrypt_blocks:1350.cfi_startproc1351.byte 243,15,30,2501352movq %rsp,%rax1353.Lctr_enc_prologue:1354pushq %rbp1355.cfi_adjust_cfa_offset 81356.cfi_offset %rbp,-161357pushq %rbx1358.cfi_adjust_cfa_offset 81359.cfi_offset %rbx,-241360pushq %r121361.cfi_adjust_cfa_offset 81362.cfi_offset %r12,-321363pushq %r131364.cfi_adjust_cfa_offset 81365.cfi_offset %r13,-401366pushq %r141367.cfi_adjust_cfa_offset 81368.cfi_offset %r14,-481369pushq %r151370.cfi_adjust_cfa_offset 81371.cfi_offset %r15,-561372leaq -72(%rsp),%rsp1373.cfi_adjust_cfa_offset 0x481374movq %rsp,%rbp1375.cfi_def_cfa_register %rbp1376movdqu (%r8),%xmm01377movl 240(%rcx),%eax1378movq %rdi,%r121379movq %rsi,%r131380movq %rdx,%r141381movq %rcx,%r151382movdqa %xmm0,32(%rbp)1383cmpq $8,%rdx1384jb .Lctr_enc_short13851386movl %eax,%ebx1387shlq $7,%rax1388subq $96,%rax1389subq %rax,%rsp13901391movq %rsp,%rax1392movq %r15,%rcx1393movl %ebx,%r10d1394call _bsaes_key_convert1395pxor %xmm6,%xmm71396movdqa %xmm7,(%rax)13971398movdqa (%rsp),%xmm81399leaq .LADD1(%rip),%r111400movdqa 32(%rbp),%xmm151401movdqa -32(%r11),%xmm71402.byte 102,68,15,56,0,1991403.byte 102,68,15,56,0,2551404movdqa %xmm8,(%rsp)1405jmp .Lctr_enc_loop1406.align 161407.Lctr_enc_loop:1408movdqa %xmm15,32(%rbp)1409movdqa %xmm15,%xmm01410movdqa %xmm15,%xmm11411paddd 0(%r11),%xmm01412movdqa %xmm15,%xmm21413paddd 16(%r11),%xmm11414movdqa %xmm15,%xmm31415paddd 32(%r11),%xmm21416movdqa %xmm15,%xmm41417paddd 48(%r11),%xmm31418movdqa %xmm15,%xmm51419paddd 64(%r11),%xmm41420movdqa %xmm15,%xmm61421paddd 80(%r11),%xmm51422paddd 96(%r11),%xmm61423142414251426movdqa (%rsp),%xmm81427leaq 16(%rsp),%rax1428movdqa -16(%r11),%xmm71429pxor %xmm8,%xmm151430pxor %xmm8,%xmm01431pxor %xmm8,%xmm11432pxor %xmm8,%xmm21433.byte 102,68,15,56,0,2551434.byte 102,15,56,0,1991435pxor %xmm8,%xmm31436pxor %xmm8,%xmm41437.byte 102,15,56,0,2071438.byte 102,15,56,0,2151439pxor %xmm8,%xmm51440pxor %xmm8,%xmm61441.byte 102,15,56,0,2231442.byte 102,15,56,0,2311443.byte 102,15,56,0,2391444.byte 102,15,56,0,2471445leaq .LBS0(%rip),%r111446movl %ebx,%r10d14471448call _bsaes_encrypt8_bitslice14491450subq $8,%r141451jc .Lctr_enc_loop_done14521453movdqu 0(%r12),%xmm71454movdqu 16(%r12),%xmm81455movdqu 32(%r12),%xmm91456movdqu 48(%r12),%xmm101457movdqu 64(%r12),%xmm111458movdqu 80(%r12),%xmm121459movdqu 96(%r12),%xmm131460movdqu 112(%r12),%xmm141461leaq 128(%r12),%r121462pxor %xmm15,%xmm71463movdqa 32(%rbp),%xmm151464pxor %xmm8,%xmm01465movdqu %xmm7,0(%r13)1466pxor %xmm9,%xmm31467movdqu %xmm0,16(%r13)1468pxor %xmm10,%xmm51469movdqu %xmm3,32(%r13)1470pxor %xmm11,%xmm21471movdqu %xmm5,48(%r13)1472pxor %xmm12,%xmm61473movdqu %xmm2,64(%r13)1474pxor %xmm13,%xmm11475movdqu %xmm6,80(%r13)1476pxor %xmm14,%xmm41477movdqu %xmm1,96(%r13)1478leaq .LADD1(%rip),%r111479movdqu %xmm4,112(%r13)1480leaq 128(%r13),%r131481paddd 112(%r11),%xmm151482jnz .Lctr_enc_loop14831484jmp .Lctr_enc_done1485.align 161486.Lctr_enc_loop_done:1487addq $8,%r141488movdqu 0(%r12),%xmm71489pxor %xmm7,%xmm151490movdqu %xmm15,0(%r13)1491cmpq $2,%r141492jb .Lctr_enc_done1493movdqu 16(%r12),%xmm81494pxor %xmm8,%xmm01495movdqu %xmm0,16(%r13)1496je .Lctr_enc_done1497movdqu 32(%r12),%xmm91498pxor %xmm9,%xmm31499movdqu %xmm3,32(%r13)1500cmpq $4,%r141501jb .Lctr_enc_done1502movdqu 48(%r12),%xmm101503pxor %xmm10,%xmm51504movdqu %xmm5,48(%r13)1505je .Lctr_enc_done1506movdqu 64(%r12),%xmm111507pxor %xmm11,%xmm21508movdqu %xmm2,64(%r13)1509cmpq $6,%r141510jb .Lctr_enc_done1511movdqu 80(%r12),%xmm121512pxor %xmm12,%xmm61513movdqu %xmm6,80(%r13)1514je .Lctr_enc_done1515movdqu 96(%r12),%xmm131516pxor %xmm13,%xmm11517movdqu %xmm1,96(%r13)1518jmp .Lctr_enc_done15191520.align 161521.Lctr_enc_short:1522leaq 32(%rbp),%rdi1523leaq 48(%rbp),%rsi1524leaq (%r15),%rdx1525call asm_AES_encrypt1526movdqu (%r12),%xmm01527leaq 16(%r12),%r121528movl 44(%rbp),%eax1529bswapl %eax1530pxor 48(%rbp),%xmm01531incl %eax1532movdqu %xmm0,(%r13)1533bswapl %eax1534leaq 16(%r13),%r131535movl %eax,44(%rsp)1536decq %r141537jnz .Lctr_enc_short15381539.Lctr_enc_done:1540leaq (%rsp),%rax1541pxor %xmm0,%xmm01542.Lctr_enc_bzero:1543movdqa %xmm0,0(%rax)1544movdqa %xmm0,16(%rax)1545leaq 32(%rax),%rax1546cmpq %rax,%rbp1547ja .Lctr_enc_bzero15481549leaq 120(%rbp),%rax1550.cfi_def_cfa %rax,81551movq -48(%rax),%r151552.cfi_restore %r151553movq -40(%rax),%r141554.cfi_restore %r141555movq -32(%rax),%r131556.cfi_restore %r131557movq -24(%rax),%r121558.cfi_restore %r121559movq -16(%rax),%rbx1560.cfi_restore %rbx1561movq -8(%rax),%rbp1562.cfi_restore %rbp1563leaq (%rax),%rsp1564.cfi_def_cfa_register %rsp1565.Lctr_enc_epilogue:1566.byte 0xf3,0xc31567.cfi_endproc1568.size ossl_bsaes_ctr32_encrypt_blocks,.-ossl_bsaes_ctr32_encrypt_blocks1569.globl ossl_bsaes_xts_encrypt1570.type ossl_bsaes_xts_encrypt,@function1571.align 161572ossl_bsaes_xts_encrypt:1573.cfi_startproc1574.byte 243,15,30,2501575movq %rsp,%rax1576.Lxts_enc_prologue:1577pushq %rbp1578.cfi_adjust_cfa_offset 81579.cfi_offset %rbp,-161580pushq %rbx1581.cfi_adjust_cfa_offset 81582.cfi_offset %rbx,-241583pushq %r121584.cfi_adjust_cfa_offset 81585.cfi_offset %r12,-321586pushq %r131587.cfi_adjust_cfa_offset 81588.cfi_offset %r13,-401589pushq %r141590.cfi_adjust_cfa_offset 81591.cfi_offset %r14,-481592pushq %r151593.cfi_adjust_cfa_offset 81594.cfi_offset %r15,-561595leaq -72(%rsp),%rsp1596.cfi_adjust_cfa_offset 0x481597movq %rsp,%rbp1598.cfi_def_cfa_register %rbp1599movq %rdi,%r121600movq %rsi,%r131601movq %rdx,%r141602movq %rcx,%r1516031604leaq (%r9),%rdi1605leaq 32(%rbp),%rsi1606leaq (%r8),%rdx1607call asm_AES_encrypt16081609movl 240(%r15),%eax1610movq %r14,%rbx16111612movl %eax,%edx1613shlq $7,%rax1614subq $96,%rax1615subq %rax,%rsp16161617movq %rsp,%rax1618movq %r15,%rcx1619movl %edx,%r10d1620call _bsaes_key_convert1621pxor %xmm6,%xmm71622movdqa %xmm7,(%rax)16231624andq $-16,%r141625subq $0x80,%rsp1626movdqa 32(%rbp),%xmm616271628pxor %xmm14,%xmm141629movdqa .Lxts_magic(%rip),%xmm121630pcmpgtd %xmm6,%xmm1416311632subq $0x80,%r141633jc .Lxts_enc_short1634jmp .Lxts_enc_loop16351636.align 161637.Lxts_enc_loop:1638pshufd $0x13,%xmm14,%xmm131639pxor %xmm14,%xmm141640movdqa %xmm6,%xmm151641movdqa %xmm6,0(%rsp)1642paddq %xmm6,%xmm61643pand %xmm12,%xmm131644pcmpgtd %xmm6,%xmm141645pxor %xmm13,%xmm61646pshufd $0x13,%xmm14,%xmm131647pxor %xmm14,%xmm141648movdqa %xmm6,%xmm01649movdqa %xmm6,16(%rsp)1650paddq %xmm6,%xmm61651pand %xmm12,%xmm131652pcmpgtd %xmm6,%xmm141653pxor %xmm13,%xmm61654movdqu 0(%r12),%xmm71655pshufd $0x13,%xmm14,%xmm131656pxor %xmm14,%xmm141657movdqa %xmm6,%xmm11658movdqa %xmm6,32(%rsp)1659paddq %xmm6,%xmm61660pand %xmm12,%xmm131661pcmpgtd %xmm6,%xmm141662pxor %xmm13,%xmm61663movdqu 16(%r12),%xmm81664pxor %xmm7,%xmm151665pshufd $0x13,%xmm14,%xmm131666pxor %xmm14,%xmm141667movdqa %xmm6,%xmm21668movdqa %xmm6,48(%rsp)1669paddq %xmm6,%xmm61670pand %xmm12,%xmm131671pcmpgtd %xmm6,%xmm141672pxor %xmm13,%xmm61673movdqu 32(%r12),%xmm91674pxor %xmm8,%xmm01675pshufd $0x13,%xmm14,%xmm131676pxor %xmm14,%xmm141677movdqa %xmm6,%xmm31678movdqa %xmm6,64(%rsp)1679paddq %xmm6,%xmm61680pand %xmm12,%xmm131681pcmpgtd %xmm6,%xmm141682pxor %xmm13,%xmm61683movdqu 48(%r12),%xmm101684pxor %xmm9,%xmm11685pshufd $0x13,%xmm14,%xmm131686pxor %xmm14,%xmm141687movdqa %xmm6,%xmm41688movdqa %xmm6,80(%rsp)1689paddq %xmm6,%xmm61690pand %xmm12,%xmm131691pcmpgtd %xmm6,%xmm141692pxor %xmm13,%xmm61693movdqu 64(%r12),%xmm111694pxor %xmm10,%xmm21695pshufd $0x13,%xmm14,%xmm131696pxor %xmm14,%xmm141697movdqa %xmm6,%xmm51698movdqa %xmm6,96(%rsp)1699paddq %xmm6,%xmm61700pand %xmm12,%xmm131701pcmpgtd %xmm6,%xmm141702pxor %xmm13,%xmm61703movdqu 80(%r12),%xmm121704pxor %xmm11,%xmm31705movdqu 96(%r12),%xmm131706pxor %xmm12,%xmm41707movdqu 112(%r12),%xmm141708leaq 128(%r12),%r121709movdqa %xmm6,112(%rsp)1710pxor %xmm13,%xmm51711leaq 128(%rsp),%rax1712pxor %xmm14,%xmm61713movl %edx,%r10d17141715call _bsaes_encrypt817161717pxor 0(%rsp),%xmm151718pxor 16(%rsp),%xmm01719movdqu %xmm15,0(%r13)1720pxor 32(%rsp),%xmm31721movdqu %xmm0,16(%r13)1722pxor 48(%rsp),%xmm51723movdqu %xmm3,32(%r13)1724pxor 64(%rsp),%xmm21725movdqu %xmm5,48(%r13)1726pxor 80(%rsp),%xmm61727movdqu %xmm2,64(%r13)1728pxor 96(%rsp),%xmm11729movdqu %xmm6,80(%r13)1730pxor 112(%rsp),%xmm41731movdqu %xmm1,96(%r13)1732movdqu %xmm4,112(%r13)1733leaq 128(%r13),%r1317341735movdqa 112(%rsp),%xmm61736pxor %xmm14,%xmm141737movdqa .Lxts_magic(%rip),%xmm121738pcmpgtd %xmm6,%xmm141739pshufd $0x13,%xmm14,%xmm131740pxor %xmm14,%xmm141741paddq %xmm6,%xmm61742pand %xmm12,%xmm131743pcmpgtd %xmm6,%xmm141744pxor %xmm13,%xmm617451746subq $0x80,%r141747jnc .Lxts_enc_loop17481749.Lxts_enc_short:1750addq $0x80,%r141751jz .Lxts_enc_done1752pshufd $0x13,%xmm14,%xmm131753pxor %xmm14,%xmm141754movdqa %xmm6,%xmm151755movdqa %xmm6,0(%rsp)1756paddq %xmm6,%xmm61757pand %xmm12,%xmm131758pcmpgtd %xmm6,%xmm141759pxor %xmm13,%xmm61760pshufd $0x13,%xmm14,%xmm131761pxor %xmm14,%xmm141762movdqa %xmm6,%xmm01763movdqa %xmm6,16(%rsp)1764paddq %xmm6,%xmm61765pand %xmm12,%xmm131766pcmpgtd %xmm6,%xmm141767pxor %xmm13,%xmm61768movdqu 0(%r12),%xmm71769cmpq $16,%r141770je .Lxts_enc_11771pshufd $0x13,%xmm14,%xmm131772pxor %xmm14,%xmm141773movdqa %xmm6,%xmm11774movdqa %xmm6,32(%rsp)1775paddq %xmm6,%xmm61776pand %xmm12,%xmm131777pcmpgtd %xmm6,%xmm141778pxor %xmm13,%xmm61779movdqu 16(%r12),%xmm81780cmpq $32,%r141781je .Lxts_enc_21782pxor %xmm7,%xmm151783pshufd $0x13,%xmm14,%xmm131784pxor %xmm14,%xmm141785movdqa %xmm6,%xmm21786movdqa %xmm6,48(%rsp)1787paddq %xmm6,%xmm61788pand %xmm12,%xmm131789pcmpgtd %xmm6,%xmm141790pxor %xmm13,%xmm61791movdqu 32(%r12),%xmm91792cmpq $48,%r141793je .Lxts_enc_31794pxor %xmm8,%xmm01795pshufd $0x13,%xmm14,%xmm131796pxor %xmm14,%xmm141797movdqa %xmm6,%xmm31798movdqa %xmm6,64(%rsp)1799paddq %xmm6,%xmm61800pand %xmm12,%xmm131801pcmpgtd %xmm6,%xmm141802pxor %xmm13,%xmm61803movdqu 48(%r12),%xmm101804cmpq $64,%r141805je .Lxts_enc_41806pxor %xmm9,%xmm11807pshufd $0x13,%xmm14,%xmm131808pxor %xmm14,%xmm141809movdqa %xmm6,%xmm41810movdqa %xmm6,80(%rsp)1811paddq %xmm6,%xmm61812pand %xmm12,%xmm131813pcmpgtd %xmm6,%xmm141814pxor %xmm13,%xmm61815movdqu 64(%r12),%xmm111816cmpq $80,%r141817je .Lxts_enc_51818pxor %xmm10,%xmm21819pshufd $0x13,%xmm14,%xmm131820pxor %xmm14,%xmm141821movdqa %xmm6,%xmm51822movdqa %xmm6,96(%rsp)1823paddq %xmm6,%xmm61824pand %xmm12,%xmm131825pcmpgtd %xmm6,%xmm141826pxor %xmm13,%xmm61827movdqu 80(%r12),%xmm121828cmpq $96,%r141829je .Lxts_enc_61830pxor %xmm11,%xmm31831movdqu 96(%r12),%xmm131832pxor %xmm12,%xmm41833movdqa %xmm6,112(%rsp)1834leaq 112(%r12),%r121835pxor %xmm13,%xmm51836leaq 128(%rsp),%rax1837movl %edx,%r10d18381839call _bsaes_encrypt818401841pxor 0(%rsp),%xmm151842pxor 16(%rsp),%xmm01843movdqu %xmm15,0(%r13)1844pxor 32(%rsp),%xmm31845movdqu %xmm0,16(%r13)1846pxor 48(%rsp),%xmm51847movdqu %xmm3,32(%r13)1848pxor 64(%rsp),%xmm21849movdqu %xmm5,48(%r13)1850pxor 80(%rsp),%xmm61851movdqu %xmm2,64(%r13)1852pxor 96(%rsp),%xmm11853movdqu %xmm6,80(%r13)1854movdqu %xmm1,96(%r13)1855leaq 112(%r13),%r1318561857movdqa 112(%rsp),%xmm61858jmp .Lxts_enc_done1859.align 161860.Lxts_enc_6:1861pxor %xmm11,%xmm31862leaq 96(%r12),%r121863pxor %xmm12,%xmm41864leaq 128(%rsp),%rax1865movl %edx,%r10d18661867call _bsaes_encrypt818681869pxor 0(%rsp),%xmm151870pxor 16(%rsp),%xmm01871movdqu %xmm15,0(%r13)1872pxor 32(%rsp),%xmm31873movdqu %xmm0,16(%r13)1874pxor 48(%rsp),%xmm51875movdqu %xmm3,32(%r13)1876pxor 64(%rsp),%xmm21877movdqu %xmm5,48(%r13)1878pxor 80(%rsp),%xmm61879movdqu %xmm2,64(%r13)1880movdqu %xmm6,80(%r13)1881leaq 96(%r13),%r1318821883movdqa 96(%rsp),%xmm61884jmp .Lxts_enc_done1885.align 161886.Lxts_enc_5:1887pxor %xmm10,%xmm21888leaq 80(%r12),%r121889pxor %xmm11,%xmm31890leaq 128(%rsp),%rax1891movl %edx,%r10d18921893call _bsaes_encrypt818941895pxor 0(%rsp),%xmm151896pxor 16(%rsp),%xmm01897movdqu %xmm15,0(%r13)1898pxor 32(%rsp),%xmm31899movdqu %xmm0,16(%r13)1900pxor 48(%rsp),%xmm51901movdqu %xmm3,32(%r13)1902pxor 64(%rsp),%xmm21903movdqu %xmm5,48(%r13)1904movdqu %xmm2,64(%r13)1905leaq 80(%r13),%r1319061907movdqa 80(%rsp),%xmm61908jmp .Lxts_enc_done1909.align 161910.Lxts_enc_4:1911pxor %xmm9,%xmm11912leaq 64(%r12),%r121913pxor %xmm10,%xmm21914leaq 128(%rsp),%rax1915movl %edx,%r10d19161917call _bsaes_encrypt819181919pxor 0(%rsp),%xmm151920pxor 16(%rsp),%xmm01921movdqu %xmm15,0(%r13)1922pxor 32(%rsp),%xmm31923movdqu %xmm0,16(%r13)1924pxor 48(%rsp),%xmm51925movdqu %xmm3,32(%r13)1926movdqu %xmm5,48(%r13)1927leaq 64(%r13),%r1319281929movdqa 64(%rsp),%xmm61930jmp .Lxts_enc_done1931.align 161932.Lxts_enc_3:1933pxor %xmm8,%xmm01934leaq 48(%r12),%r121935pxor %xmm9,%xmm11936leaq 128(%rsp),%rax1937movl %edx,%r10d19381939call _bsaes_encrypt819401941pxor 0(%rsp),%xmm151942pxor 16(%rsp),%xmm01943movdqu %xmm15,0(%r13)1944pxor 32(%rsp),%xmm31945movdqu %xmm0,16(%r13)1946movdqu %xmm3,32(%r13)1947leaq 48(%r13),%r1319481949movdqa 48(%rsp),%xmm61950jmp .Lxts_enc_done1951.align 161952.Lxts_enc_2:1953pxor %xmm7,%xmm151954leaq 32(%r12),%r121955pxor %xmm8,%xmm01956leaq 128(%rsp),%rax1957movl %edx,%r10d19581959call _bsaes_encrypt819601961pxor 0(%rsp),%xmm151962pxor 16(%rsp),%xmm01963movdqu %xmm15,0(%r13)1964movdqu %xmm0,16(%r13)1965leaq 32(%r13),%r1319661967movdqa 32(%rsp),%xmm61968jmp .Lxts_enc_done1969.align 161970.Lxts_enc_1:1971pxor %xmm15,%xmm71972leaq 16(%r12),%r121973movdqa %xmm7,32(%rbp)1974leaq 32(%rbp),%rdi1975leaq 32(%rbp),%rsi1976leaq (%r15),%rdx1977call asm_AES_encrypt1978pxor 32(%rbp),%xmm15197919801981198219831984movdqu %xmm15,0(%r13)1985leaq 16(%r13),%r1319861987movdqa 16(%rsp),%xmm619881989.Lxts_enc_done:1990andl $15,%ebx1991jz .Lxts_enc_ret1992movq %r13,%rdx19931994.Lxts_enc_steal:1995movzbl (%r12),%eax1996movzbl -16(%rdx),%ecx1997leaq 1(%r12),%r121998movb %al,-16(%rdx)1999movb %cl,0(%rdx)2000leaq 1(%rdx),%rdx2001subl $1,%ebx2002jnz .Lxts_enc_steal20032004movdqu -16(%r13),%xmm152005leaq 32(%rbp),%rdi2006pxor %xmm6,%xmm152007leaq 32(%rbp),%rsi2008movdqa %xmm15,32(%rbp)2009leaq (%r15),%rdx2010call asm_AES_encrypt2011pxor 32(%rbp),%xmm62012movdqu %xmm6,-16(%r13)20132014.Lxts_enc_ret:2015leaq (%rsp),%rax2016pxor %xmm0,%xmm02017.Lxts_enc_bzero:2018movdqa %xmm0,0(%rax)2019movdqa %xmm0,16(%rax)2020leaq 32(%rax),%rax2021cmpq %rax,%rbp2022ja .Lxts_enc_bzero20232024leaq 120(%rbp),%rax2025.cfi_def_cfa %rax,82026movq -48(%rax),%r152027.cfi_restore %r152028movq -40(%rax),%r142029.cfi_restore %r142030movq -32(%rax),%r132031.cfi_restore %r132032movq -24(%rax),%r122033.cfi_restore %r122034movq -16(%rax),%rbx2035.cfi_restore %rbx2036movq -8(%rax),%rbp2037.cfi_restore %rbp2038leaq (%rax),%rsp2039.cfi_def_cfa_register %rsp2040.Lxts_enc_epilogue:2041.byte 0xf3,0xc32042.cfi_endproc2043.size ossl_bsaes_xts_encrypt,.-ossl_bsaes_xts_encrypt20442045.globl ossl_bsaes_xts_decrypt2046.type ossl_bsaes_xts_decrypt,@function2047.align 162048ossl_bsaes_xts_decrypt:2049.cfi_startproc2050.byte 243,15,30,2502051movq %rsp,%rax2052.Lxts_dec_prologue:2053pushq %rbp2054.cfi_adjust_cfa_offset 82055.cfi_offset %rbp,-162056pushq %rbx2057.cfi_adjust_cfa_offset 82058.cfi_offset %rbx,-242059pushq %r122060.cfi_adjust_cfa_offset 82061.cfi_offset %r12,-322062pushq %r132063.cfi_adjust_cfa_offset 82064.cfi_offset %r13,-402065pushq %r142066.cfi_adjust_cfa_offset 82067.cfi_offset %r14,-482068pushq %r152069.cfi_adjust_cfa_offset 82070.cfi_offset %r15,-562071leaq -72(%rsp),%rsp2072.cfi_adjust_cfa_offset 0x482073movq %rsp,%rbp2074movq %rdi,%r122075movq %rsi,%r132076movq %rdx,%r142077movq %rcx,%r1520782079leaq (%r9),%rdi2080leaq 32(%rbp),%rsi2081leaq (%r8),%rdx2082call asm_AES_encrypt20832084movl 240(%r15),%eax2085movq %r14,%rbx20862087movl %eax,%edx2088shlq $7,%rax2089subq $96,%rax2090subq %rax,%rsp20912092movq %rsp,%rax2093movq %r15,%rcx2094movl %edx,%r10d2095call _bsaes_key_convert2096pxor (%rsp),%xmm72097movdqa %xmm6,(%rax)2098movdqa %xmm7,(%rsp)20992100xorl %eax,%eax2101andq $-16,%r142102testl $15,%ebx2103setnz %al2104shlq $4,%rax2105subq %rax,%r1421062107subq $0x80,%rsp2108movdqa 32(%rbp),%xmm621092110pxor %xmm14,%xmm142111movdqa .Lxts_magic(%rip),%xmm122112pcmpgtd %xmm6,%xmm1421132114subq $0x80,%r142115jc .Lxts_dec_short2116jmp .Lxts_dec_loop21172118.align 162119.Lxts_dec_loop:2120pshufd $0x13,%xmm14,%xmm132121pxor %xmm14,%xmm142122movdqa %xmm6,%xmm152123movdqa %xmm6,0(%rsp)2124paddq %xmm6,%xmm62125pand %xmm12,%xmm132126pcmpgtd %xmm6,%xmm142127pxor %xmm13,%xmm62128pshufd $0x13,%xmm14,%xmm132129pxor %xmm14,%xmm142130movdqa %xmm6,%xmm02131movdqa %xmm6,16(%rsp)2132paddq %xmm6,%xmm62133pand %xmm12,%xmm132134pcmpgtd %xmm6,%xmm142135pxor %xmm13,%xmm62136movdqu 0(%r12),%xmm72137pshufd $0x13,%xmm14,%xmm132138pxor %xmm14,%xmm142139movdqa %xmm6,%xmm12140movdqa %xmm6,32(%rsp)2141paddq %xmm6,%xmm62142pand %xmm12,%xmm132143pcmpgtd %xmm6,%xmm142144pxor %xmm13,%xmm62145movdqu 16(%r12),%xmm82146pxor %xmm7,%xmm152147pshufd $0x13,%xmm14,%xmm132148pxor %xmm14,%xmm142149movdqa %xmm6,%xmm22150movdqa %xmm6,48(%rsp)2151paddq %xmm6,%xmm62152pand %xmm12,%xmm132153pcmpgtd %xmm6,%xmm142154pxor %xmm13,%xmm62155movdqu 32(%r12),%xmm92156pxor %xmm8,%xmm02157pshufd $0x13,%xmm14,%xmm132158pxor %xmm14,%xmm142159movdqa %xmm6,%xmm32160movdqa %xmm6,64(%rsp)2161paddq %xmm6,%xmm62162pand %xmm12,%xmm132163pcmpgtd %xmm6,%xmm142164pxor %xmm13,%xmm62165movdqu 48(%r12),%xmm102166pxor %xmm9,%xmm12167pshufd $0x13,%xmm14,%xmm132168pxor %xmm14,%xmm142169movdqa %xmm6,%xmm42170movdqa %xmm6,80(%rsp)2171paddq %xmm6,%xmm62172pand %xmm12,%xmm132173pcmpgtd %xmm6,%xmm142174pxor %xmm13,%xmm62175movdqu 64(%r12),%xmm112176pxor %xmm10,%xmm22177pshufd $0x13,%xmm14,%xmm132178pxor %xmm14,%xmm142179movdqa %xmm6,%xmm52180movdqa %xmm6,96(%rsp)2181paddq %xmm6,%xmm62182pand %xmm12,%xmm132183pcmpgtd %xmm6,%xmm142184pxor %xmm13,%xmm62185movdqu 80(%r12),%xmm122186pxor %xmm11,%xmm32187movdqu 96(%r12),%xmm132188pxor %xmm12,%xmm42189movdqu 112(%r12),%xmm142190leaq 128(%r12),%r122191movdqa %xmm6,112(%rsp)2192pxor %xmm13,%xmm52193leaq 128(%rsp),%rax2194pxor %xmm14,%xmm62195movl %edx,%r10d21962197call _bsaes_decrypt821982199pxor 0(%rsp),%xmm152200pxor 16(%rsp),%xmm02201movdqu %xmm15,0(%r13)2202pxor 32(%rsp),%xmm52203movdqu %xmm0,16(%r13)2204pxor 48(%rsp),%xmm32205movdqu %xmm5,32(%r13)2206pxor 64(%rsp),%xmm12207movdqu %xmm3,48(%r13)2208pxor 80(%rsp),%xmm62209movdqu %xmm1,64(%r13)2210pxor 96(%rsp),%xmm22211movdqu %xmm6,80(%r13)2212pxor 112(%rsp),%xmm42213movdqu %xmm2,96(%r13)2214movdqu %xmm4,112(%r13)2215leaq 128(%r13),%r1322162217movdqa 112(%rsp),%xmm62218pxor %xmm14,%xmm142219movdqa .Lxts_magic(%rip),%xmm122220pcmpgtd %xmm6,%xmm142221pshufd $0x13,%xmm14,%xmm132222pxor %xmm14,%xmm142223paddq %xmm6,%xmm62224pand %xmm12,%xmm132225pcmpgtd %xmm6,%xmm142226pxor %xmm13,%xmm622272228subq $0x80,%r142229jnc .Lxts_dec_loop22302231.Lxts_dec_short:2232addq $0x80,%r142233jz .Lxts_dec_done2234pshufd $0x13,%xmm14,%xmm132235pxor %xmm14,%xmm142236movdqa %xmm6,%xmm152237movdqa %xmm6,0(%rsp)2238paddq %xmm6,%xmm62239pand %xmm12,%xmm132240pcmpgtd %xmm6,%xmm142241pxor %xmm13,%xmm62242pshufd $0x13,%xmm14,%xmm132243pxor %xmm14,%xmm142244movdqa %xmm6,%xmm02245movdqa %xmm6,16(%rsp)2246paddq %xmm6,%xmm62247pand %xmm12,%xmm132248pcmpgtd %xmm6,%xmm142249pxor %xmm13,%xmm62250movdqu 0(%r12),%xmm72251cmpq $16,%r142252je .Lxts_dec_12253pshufd $0x13,%xmm14,%xmm132254pxor %xmm14,%xmm142255movdqa %xmm6,%xmm12256movdqa %xmm6,32(%rsp)2257paddq %xmm6,%xmm62258pand %xmm12,%xmm132259pcmpgtd %xmm6,%xmm142260pxor %xmm13,%xmm62261movdqu 16(%r12),%xmm82262cmpq $32,%r142263je .Lxts_dec_22264pxor %xmm7,%xmm152265pshufd $0x13,%xmm14,%xmm132266pxor %xmm14,%xmm142267movdqa %xmm6,%xmm22268movdqa %xmm6,48(%rsp)2269paddq %xmm6,%xmm62270pand %xmm12,%xmm132271pcmpgtd %xmm6,%xmm142272pxor %xmm13,%xmm62273movdqu 32(%r12),%xmm92274cmpq $48,%r142275je .Lxts_dec_32276pxor %xmm8,%xmm02277pshufd $0x13,%xmm14,%xmm132278pxor %xmm14,%xmm142279movdqa %xmm6,%xmm32280movdqa %xmm6,64(%rsp)2281paddq %xmm6,%xmm62282pand %xmm12,%xmm132283pcmpgtd %xmm6,%xmm142284pxor %xmm13,%xmm62285movdqu 48(%r12),%xmm102286cmpq $64,%r142287je .Lxts_dec_42288pxor %xmm9,%xmm12289pshufd $0x13,%xmm14,%xmm132290pxor %xmm14,%xmm142291movdqa %xmm6,%xmm42292movdqa %xmm6,80(%rsp)2293paddq %xmm6,%xmm62294pand %xmm12,%xmm132295pcmpgtd %xmm6,%xmm142296pxor %xmm13,%xmm62297movdqu 64(%r12),%xmm112298cmpq $80,%r142299je .Lxts_dec_52300pxor %xmm10,%xmm22301pshufd $0x13,%xmm14,%xmm132302pxor %xmm14,%xmm142303movdqa %xmm6,%xmm52304movdqa %xmm6,96(%rsp)2305paddq %xmm6,%xmm62306pand %xmm12,%xmm132307pcmpgtd %xmm6,%xmm142308pxor %xmm13,%xmm62309movdqu 80(%r12),%xmm122310cmpq $96,%r142311je .Lxts_dec_62312pxor %xmm11,%xmm32313movdqu 96(%r12),%xmm132314pxor %xmm12,%xmm42315movdqa %xmm6,112(%rsp)2316leaq 112(%r12),%r122317pxor %xmm13,%xmm52318leaq 128(%rsp),%rax2319movl %edx,%r10d23202321call _bsaes_decrypt823222323pxor 0(%rsp),%xmm152324pxor 16(%rsp),%xmm02325movdqu %xmm15,0(%r13)2326pxor 32(%rsp),%xmm52327movdqu %xmm0,16(%r13)2328pxor 48(%rsp),%xmm32329movdqu %xmm5,32(%r13)2330pxor 64(%rsp),%xmm12331movdqu %xmm3,48(%r13)2332pxor 80(%rsp),%xmm62333movdqu %xmm1,64(%r13)2334pxor 96(%rsp),%xmm22335movdqu %xmm6,80(%r13)2336movdqu %xmm2,96(%r13)2337leaq 112(%r13),%r1323382339movdqa 112(%rsp),%xmm62340jmp .Lxts_dec_done2341.align 162342.Lxts_dec_6:2343pxor %xmm11,%xmm32344leaq 96(%r12),%r122345pxor %xmm12,%xmm42346leaq 128(%rsp),%rax2347movl %edx,%r10d23482349call _bsaes_decrypt823502351pxor 0(%rsp),%xmm152352pxor 16(%rsp),%xmm02353movdqu %xmm15,0(%r13)2354pxor 32(%rsp),%xmm52355movdqu %xmm0,16(%r13)2356pxor 48(%rsp),%xmm32357movdqu %xmm5,32(%r13)2358pxor 64(%rsp),%xmm12359movdqu %xmm3,48(%r13)2360pxor 80(%rsp),%xmm62361movdqu %xmm1,64(%r13)2362movdqu %xmm6,80(%r13)2363leaq 96(%r13),%r1323642365movdqa 96(%rsp),%xmm62366jmp .Lxts_dec_done2367.align 162368.Lxts_dec_5:2369pxor %xmm10,%xmm22370leaq 80(%r12),%r122371pxor %xmm11,%xmm32372leaq 128(%rsp),%rax2373movl %edx,%r10d23742375call _bsaes_decrypt823762377pxor 0(%rsp),%xmm152378pxor 16(%rsp),%xmm02379movdqu %xmm15,0(%r13)2380pxor 32(%rsp),%xmm52381movdqu %xmm0,16(%r13)2382pxor 48(%rsp),%xmm32383movdqu %xmm5,32(%r13)2384pxor 64(%rsp),%xmm12385movdqu %xmm3,48(%r13)2386movdqu %xmm1,64(%r13)2387leaq 80(%r13),%r1323882389movdqa 80(%rsp),%xmm62390jmp .Lxts_dec_done2391.align 162392.Lxts_dec_4:2393pxor %xmm9,%xmm12394leaq 64(%r12),%r122395pxor %xmm10,%xmm22396leaq 128(%rsp),%rax2397movl %edx,%r10d23982399call _bsaes_decrypt824002401pxor 0(%rsp),%xmm152402pxor 16(%rsp),%xmm02403movdqu %xmm15,0(%r13)2404pxor 32(%rsp),%xmm52405movdqu %xmm0,16(%r13)2406pxor 48(%rsp),%xmm32407movdqu %xmm5,32(%r13)2408movdqu %xmm3,48(%r13)2409leaq 64(%r13),%r1324102411movdqa 64(%rsp),%xmm62412jmp .Lxts_dec_done2413.align 162414.Lxts_dec_3:2415pxor %xmm8,%xmm02416leaq 48(%r12),%r122417pxor %xmm9,%xmm12418leaq 128(%rsp),%rax2419movl %edx,%r10d24202421call _bsaes_decrypt824222423pxor 0(%rsp),%xmm152424pxor 16(%rsp),%xmm02425movdqu %xmm15,0(%r13)2426pxor 32(%rsp),%xmm52427movdqu %xmm0,16(%r13)2428movdqu %xmm5,32(%r13)2429leaq 48(%r13),%r1324302431movdqa 48(%rsp),%xmm62432jmp .Lxts_dec_done2433.align 162434.Lxts_dec_2:2435pxor %xmm7,%xmm152436leaq 32(%r12),%r122437pxor %xmm8,%xmm02438leaq 128(%rsp),%rax2439movl %edx,%r10d24402441call _bsaes_decrypt824422443pxor 0(%rsp),%xmm152444pxor 16(%rsp),%xmm02445movdqu %xmm15,0(%r13)2446movdqu %xmm0,16(%r13)2447leaq 32(%r13),%r1324482449movdqa 32(%rsp),%xmm62450jmp .Lxts_dec_done2451.align 162452.Lxts_dec_1:2453pxor %xmm15,%xmm72454leaq 16(%r12),%r122455movdqa %xmm7,32(%rbp)2456leaq 32(%rbp),%rdi2457leaq 32(%rbp),%rsi2458leaq (%r15),%rdx2459call asm_AES_decrypt2460pxor 32(%rbp),%xmm15246124622463246424652466movdqu %xmm15,0(%r13)2467leaq 16(%r13),%r1324682469movdqa 16(%rsp),%xmm624702471.Lxts_dec_done:2472andl $15,%ebx2473jz .Lxts_dec_ret24742475pxor %xmm14,%xmm142476movdqa .Lxts_magic(%rip),%xmm122477pcmpgtd %xmm6,%xmm142478pshufd $0x13,%xmm14,%xmm132479movdqa %xmm6,%xmm52480paddq %xmm6,%xmm62481pand %xmm12,%xmm132482movdqu (%r12),%xmm152483pxor %xmm13,%xmm624842485leaq 32(%rbp),%rdi2486pxor %xmm6,%xmm152487leaq 32(%rbp),%rsi2488movdqa %xmm15,32(%rbp)2489leaq (%r15),%rdx2490call asm_AES_decrypt2491pxor 32(%rbp),%xmm62492movq %r13,%rdx2493movdqu %xmm6,(%r13)24942495.Lxts_dec_steal:2496movzbl 16(%r12),%eax2497movzbl (%rdx),%ecx2498leaq 1(%r12),%r122499movb %al,(%rdx)2500movb %cl,16(%rdx)2501leaq 1(%rdx),%rdx2502subl $1,%ebx2503jnz .Lxts_dec_steal25042505movdqu (%r13),%xmm152506leaq 32(%rbp),%rdi2507pxor %xmm5,%xmm152508leaq 32(%rbp),%rsi2509movdqa %xmm15,32(%rbp)2510leaq (%r15),%rdx2511call asm_AES_decrypt2512pxor 32(%rbp),%xmm52513movdqu %xmm5,(%r13)25142515.Lxts_dec_ret:2516leaq (%rsp),%rax2517pxor %xmm0,%xmm02518.Lxts_dec_bzero:2519movdqa %xmm0,0(%rax)2520movdqa %xmm0,16(%rax)2521leaq 32(%rax),%rax2522cmpq %rax,%rbp2523ja .Lxts_dec_bzero25242525leaq 120(%rbp),%rax2526.cfi_def_cfa %rax,82527movq -48(%rax),%r152528.cfi_restore %r152529movq -40(%rax),%r142530.cfi_restore %r142531movq -32(%rax),%r132532.cfi_restore %r132533movq -24(%rax),%r122534.cfi_restore %r122535movq -16(%rax),%rbx2536.cfi_restore %rbx2537movq -8(%rax),%rbp2538.cfi_restore %rbp2539leaq (%rax),%rsp2540.cfi_def_cfa_register %rsp2541.Lxts_dec_epilogue:2542.byte 0xf3,0xc32543.cfi_endproc2544.size ossl_bsaes_xts_decrypt,.-ossl_bsaes_xts_decrypt2545.type _bsaes_const,@object2546.section .rodata2547.align 642548_bsaes_const:2549.LM0ISR:2550.quad 0x0a0e0206070b0f03, 0x0004080c0d0105092551.LISRM0:2552.quad 0x01040b0e0205080f, 0x0306090c00070a0d2553.LISR:2554.quad 0x0504070602010003, 0x0f0e0d0c080b0a092555.LBS0:2556.quad 0x5555555555555555, 0x55555555555555552557.LBS1:2558.quad 0x3333333333333333, 0x33333333333333332559.LBS2:2560.quad 0x0f0f0f0f0f0f0f0f, 0x0f0f0f0f0f0f0f0f2561.LSR:2562.quad 0x0504070600030201, 0x0f0e0d0c0a09080b2563.LSRM0:2564.quad 0x0304090e00050a0f, 0x01060b0c0207080d2565.LM0SR:2566.quad 0x0a0e02060f03070b, 0x0004080c05090d012567.LSWPUP:2568.quad 0x0706050403020100, 0x0c0d0e0f0b0a09082569.LSWPUPM0SR:2570.quad 0x0a0d02060c03070b, 0x0004080f05090e012571.LADD1:2572.quad 0x0000000000000000, 0x00000001000000002573.LADD2:2574.quad 0x0000000000000000, 0x00000002000000002575.LADD3:2576.quad 0x0000000000000000, 0x00000003000000002577.LADD4:2578.quad 0x0000000000000000, 0x00000004000000002579.LADD5:2580.quad 0x0000000000000000, 0x00000005000000002581.LADD6:2582.quad 0x0000000000000000, 0x00000006000000002583.LADD7:2584.quad 0x0000000000000000, 0x00000007000000002585.LADD8:2586.quad 0x0000000000000000, 0x00000008000000002587.Lxts_magic:2588.long 0x87,0,1,02589.Lmasks:2590.quad 0x0101010101010101, 0x01010101010101012591.quad 0x0202020202020202, 0x02020202020202022592.quad 0x0404040404040404, 0x04040404040404042593.quad 0x0808080808080808, 0x08080808080808082594.LM0:2595.quad 0x02060a0e03070b0f, 0x0004080c0105090d2596.L63:2597.quad 0x6363636363636363, 0x63636363636363632598.align 642599.size _bsaes_const,.-_bsaes_const2600.byte 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,121,32,80,111,108,121,97,107,111,118,02601.section ".note.gnu.property", "a"2602.p2align 32603.long 1f - 0f2604.long 4f - 1f2605.long 526060:2607# "GNU" encoded with .byte, since .asciz isn't supported2608# on Solaris.2609.byte 0x472610.byte 0x4e2611.byte 0x552612.byte 026131:2614.p2align 32615.long 0xc00000022616.long 3f - 2f26172:2618.long 326193:2620.p2align 326214:262226232624