Path: blob/main/sys/crypto/openssl/i386/e_padlock-x86.S
39482 views
/* Do not modify. This file is auto-generated from e_padlock-x86.pl. */1#ifdef PIC2.text3.globl padlock_capability4.type padlock_capability,@function5.align 166padlock_capability:7.L_padlock_capability_begin:8#ifdef __CET__910.byte 243,15,30,25111#endif1213pushl %ebx14pushfl15popl %eax16movl %eax,%ecx17xorl $2097152,%eax18pushl %eax19popfl20pushfl21popl %eax22xorl %eax,%ecx23xorl %eax,%eax24btl $21,%ecx25jnc .L000noluck26.byte 0x0f,0xa227xorl %eax,%eax28cmpl $0x746e6543,%ebx29jne .L001zhaoxin30cmpl $0x48727561,%edx31jne .L000noluck32cmpl $0x736c7561,%ecx33jne .L000noluck34jmp .L002zhaoxinEnd35.L001zhaoxin:36cmpl $0x68532020,%ebx37jne .L000noluck38cmpl $0x68676e61,%edx39jne .L000noluck40cmpl $0x20206961,%ecx41jne .L000noluck42.L002zhaoxinEnd:43movl $3221225472,%eax44.byte 0x0f,0xa245movl %eax,%edx46xorl %eax,%eax47cmpl $3221225473,%edx48jb .L000noluck49movl $1,%eax50.byte 0x0f,0xa251orl $15,%eax52xorl %ebx,%ebx53andl $4095,%eax54cmpl $1791,%eax55sete %bl56movl $3221225473,%eax57pushl %ebx58.byte 0x0f,0xa259popl %ebx60movl %edx,%eax61shll $4,%ebx62andl $4294967279,%eax63orl %ebx,%eax64.L000noluck:65popl %ebx66ret67.size padlock_capability,.-.L_padlock_capability_begin68.globl padlock_key_bswap69.type padlock_key_bswap,@function70.align 1671padlock_key_bswap:72.L_padlock_key_bswap_begin:73#ifdef __CET__7475.byte 243,15,30,25176#endif7778movl 4(%esp),%edx79movl 240(%edx),%ecx80incl %ecx81shll $2,%ecx82.L003bswap_loop:83movl (%edx),%eax84bswap %eax85movl %eax,(%edx)86leal 4(%edx),%edx87subl $1,%ecx88jnz .L003bswap_loop89ret90.size padlock_key_bswap,.-.L_padlock_key_bswap_begin91.globl padlock_verify_context92.type padlock_verify_context,@function93.align 1694padlock_verify_context:95.L_padlock_verify_context_begin:96#ifdef __CET__9798.byte 243,15,30,25199#endif100101movl 4(%esp),%edx102leal .Lpadlock_saved_context-.L004verify_pic_point,%eax103pushfl104call _padlock_verify_ctx105.L004verify_pic_point:106leal 4(%esp),%esp107ret108.size padlock_verify_context,.-.L_padlock_verify_context_begin109.type _padlock_verify_ctx,@function110.align 16111_padlock_verify_ctx:112#ifdef __CET__113114.byte 243,15,30,251115#endif116117addl (%esp),%eax118btl $30,4(%esp)119jnc .L005verified120cmpl (%eax),%edx121je .L005verified122pushfl123popfl124.L005verified:125movl %edx,(%eax)126ret127.size _padlock_verify_ctx,.-_padlock_verify_ctx128.globl padlock_reload_key129.type padlock_reload_key,@function130.align 16131padlock_reload_key:132.L_padlock_reload_key_begin:133#ifdef __CET__134135.byte 243,15,30,251136#endif137138pushfl139popfl140ret141.size padlock_reload_key,.-.L_padlock_reload_key_begin142.globl padlock_aes_block143.type padlock_aes_block,@function144.align 16145padlock_aes_block:146.L_padlock_aes_block_begin:147#ifdef __CET__148149.byte 243,15,30,251150#endif151152pushl %edi153pushl %esi154pushl %ebx155movl 16(%esp),%edi156movl 20(%esp),%esi157movl 24(%esp),%edx158movl $1,%ecx159leal 32(%edx),%ebx160leal 16(%edx),%edx161.byte 243,15,167,200162popl %ebx163popl %esi164popl %edi165ret166.size padlock_aes_block,.-.L_padlock_aes_block_begin167.globl padlock_ecb_encrypt168.type padlock_ecb_encrypt,@function169.align 16170padlock_ecb_encrypt:171.L_padlock_ecb_encrypt_begin:172#ifdef __CET__173174.byte 243,15,30,251175#endif176177pushl %ebp178pushl %ebx179pushl %esi180pushl %edi181movl 20(%esp),%edi182movl 24(%esp),%esi183movl 28(%esp),%edx184movl 32(%esp),%ecx185testl $15,%edx186jnz .L006ecb_abort187testl $15,%ecx188jnz .L006ecb_abort189leal .Lpadlock_saved_context-.L007ecb_pic_point,%eax190pushfl191cld192call _padlock_verify_ctx193.L007ecb_pic_point:194leal 16(%edx),%edx195xorl %eax,%eax196xorl %ebx,%ebx197testl $32,(%edx)198jnz .L008ecb_aligned199testl $15,%edi200setz %al201testl $15,%esi202setz %bl203testl %ebx,%eax204jnz .L008ecb_aligned205negl %eax206movl $512,%ebx207notl %eax208leal -24(%esp),%ebp209cmpl %ebx,%ecx210cmovcl %ecx,%ebx211andl %ebx,%eax212movl %ecx,%ebx213negl %eax214andl $511,%ebx215leal (%eax,%ebp,1),%esp216movl $512,%eax217cmovzl %eax,%ebx218movl %ebp,%eax219andl $-16,%ebp220andl $-16,%esp221movl %eax,16(%ebp)222cmpl %ebx,%ecx223ja .L009ecb_loop224movl %esi,%eax225cmpl %esp,%ebp226cmovel %edi,%eax227addl %ecx,%eax228negl %eax229andl $4095,%eax230cmpl $128,%eax231movl $-128,%eax232cmovael %ebx,%eax233andl %eax,%ebx234jz .L010ecb_unaligned_tail235jmp .L009ecb_loop236.align 16237.L009ecb_loop:238movl %edi,(%ebp)239movl %esi,4(%ebp)240movl %ecx,8(%ebp)241movl %ebx,%ecx242movl %ebx,12(%ebp)243testl $15,%edi244cmovnzl %esp,%edi245testl $15,%esi246jz .L011ecb_inp_aligned247shrl $2,%ecx248.byte 243,165249subl %ebx,%edi250movl %ebx,%ecx251movl %edi,%esi252.L011ecb_inp_aligned:253leal -16(%edx),%eax254leal 16(%edx),%ebx255shrl $4,%ecx256.byte 243,15,167,200257movl (%ebp),%edi258movl 12(%ebp),%ebx259testl $15,%edi260jz .L012ecb_out_aligned261movl %ebx,%ecx262leal (%esp),%esi263shrl $2,%ecx264.byte 243,165265subl %ebx,%edi266.L012ecb_out_aligned:267movl 4(%ebp),%esi268movl 8(%ebp),%ecx269addl %ebx,%edi270addl %ebx,%esi271subl %ebx,%ecx272movl $512,%ebx273jz .L013ecb_break274cmpl %ebx,%ecx275jae .L009ecb_loop276.L010ecb_unaligned_tail:277xorl %eax,%eax278cmpl %ebp,%esp279cmovel %ecx,%eax280subl %eax,%esp281movl %edi,%eax282movl %ecx,%ebx283shrl $2,%ecx284leal (%esp),%edi285.byte 243,165286movl %esp,%esi287movl %eax,%edi288movl %ebx,%ecx289jmp .L009ecb_loop290.align 16291.L013ecb_break:292cmpl %ebp,%esp293je .L014ecb_done294pxor %xmm0,%xmm0295leal (%esp),%eax296.L015ecb_bzero:297movaps %xmm0,(%eax)298leal 16(%eax),%eax299cmpl %eax,%ebp300ja .L015ecb_bzero301.L014ecb_done:302movl 16(%ebp),%ebp303leal 24(%ebp),%esp304jmp .L016ecb_exit305.align 16306.L008ecb_aligned:307leal (%esi,%ecx,1),%ebp308negl %ebp309andl $4095,%ebp310xorl %eax,%eax311cmpl $128,%ebp312movl $127,%ebp313cmovael %eax,%ebp314andl %ecx,%ebp315subl %ebp,%ecx316jz .L017ecb_aligned_tail317leal -16(%edx),%eax318leal 16(%edx),%ebx319shrl $4,%ecx320.byte 243,15,167,200321testl %ebp,%ebp322jz .L016ecb_exit323.L017ecb_aligned_tail:324movl %ebp,%ecx325leal -24(%esp),%ebp326movl %ebp,%esp327movl %ebp,%eax328subl %ecx,%esp329andl $-16,%ebp330andl $-16,%esp331movl %eax,16(%ebp)332movl %edi,%eax333movl %ecx,%ebx334shrl $2,%ecx335leal (%esp),%edi336.byte 243,165337movl %esp,%esi338movl %eax,%edi339movl %ebx,%ecx340jmp .L009ecb_loop341.L016ecb_exit:342movl $1,%eax343leal 4(%esp),%esp344.L006ecb_abort:345popl %edi346popl %esi347popl %ebx348popl %ebp349ret350.size padlock_ecb_encrypt,.-.L_padlock_ecb_encrypt_begin351.globl padlock_cbc_encrypt352.type padlock_cbc_encrypt,@function353.align 16354padlock_cbc_encrypt:355.L_padlock_cbc_encrypt_begin:356#ifdef __CET__357358.byte 243,15,30,251359#endif360361pushl %ebp362pushl %ebx363pushl %esi364pushl %edi365movl 20(%esp),%edi366movl 24(%esp),%esi367movl 28(%esp),%edx368movl 32(%esp),%ecx369testl $15,%edx370jnz .L018cbc_abort371testl $15,%ecx372jnz .L018cbc_abort373leal .Lpadlock_saved_context-.L019cbc_pic_point,%eax374pushfl375cld376call _padlock_verify_ctx377.L019cbc_pic_point:378leal 16(%edx),%edx379xorl %eax,%eax380xorl %ebx,%ebx381testl $32,(%edx)382jnz .L020cbc_aligned383testl $15,%edi384setz %al385testl $15,%esi386setz %bl387testl %ebx,%eax388jnz .L020cbc_aligned389negl %eax390movl $512,%ebx391notl %eax392leal -24(%esp),%ebp393cmpl %ebx,%ecx394cmovcl %ecx,%ebx395andl %ebx,%eax396movl %ecx,%ebx397negl %eax398andl $511,%ebx399leal (%eax,%ebp,1),%esp400movl $512,%eax401cmovzl %eax,%ebx402movl %ebp,%eax403andl $-16,%ebp404andl $-16,%esp405movl %eax,16(%ebp)406cmpl %ebx,%ecx407ja .L021cbc_loop408movl %esi,%eax409cmpl %esp,%ebp410cmovel %edi,%eax411addl %ecx,%eax412negl %eax413andl $4095,%eax414cmpl $64,%eax415movl $-64,%eax416cmovael %ebx,%eax417andl %eax,%ebx418jz .L022cbc_unaligned_tail419jmp .L021cbc_loop420.align 16421.L021cbc_loop:422movl %edi,(%ebp)423movl %esi,4(%ebp)424movl %ecx,8(%ebp)425movl %ebx,%ecx426movl %ebx,12(%ebp)427testl $15,%edi428cmovnzl %esp,%edi429testl $15,%esi430jz .L023cbc_inp_aligned431shrl $2,%ecx432.byte 243,165433subl %ebx,%edi434movl %ebx,%ecx435movl %edi,%esi436.L023cbc_inp_aligned:437leal -16(%edx),%eax438leal 16(%edx),%ebx439shrl $4,%ecx440.byte 243,15,167,208441movaps (%eax),%xmm0442movaps %xmm0,-16(%edx)443movl (%ebp),%edi444movl 12(%ebp),%ebx445testl $15,%edi446jz .L024cbc_out_aligned447movl %ebx,%ecx448leal (%esp),%esi449shrl $2,%ecx450.byte 243,165451subl %ebx,%edi452.L024cbc_out_aligned:453movl 4(%ebp),%esi454movl 8(%ebp),%ecx455addl %ebx,%edi456addl %ebx,%esi457subl %ebx,%ecx458movl $512,%ebx459jz .L025cbc_break460cmpl %ebx,%ecx461jae .L021cbc_loop462.L022cbc_unaligned_tail:463xorl %eax,%eax464cmpl %ebp,%esp465cmovel %ecx,%eax466subl %eax,%esp467movl %edi,%eax468movl %ecx,%ebx469shrl $2,%ecx470leal (%esp),%edi471.byte 243,165472movl %esp,%esi473movl %eax,%edi474movl %ebx,%ecx475jmp .L021cbc_loop476.align 16477.L025cbc_break:478cmpl %ebp,%esp479je .L026cbc_done480pxor %xmm0,%xmm0481leal (%esp),%eax482.L027cbc_bzero:483movaps %xmm0,(%eax)484leal 16(%eax),%eax485cmpl %eax,%ebp486ja .L027cbc_bzero487.L026cbc_done:488movl 16(%ebp),%ebp489leal 24(%ebp),%esp490jmp .L028cbc_exit491.align 16492.L020cbc_aligned:493leal (%esi,%ecx,1),%ebp494negl %ebp495andl $4095,%ebp496xorl %eax,%eax497cmpl $64,%ebp498movl $63,%ebp499cmovael %eax,%ebp500andl %ecx,%ebp501subl %ebp,%ecx502jz .L029cbc_aligned_tail503leal -16(%edx),%eax504leal 16(%edx),%ebx505shrl $4,%ecx506.byte 243,15,167,208507movaps (%eax),%xmm0508movaps %xmm0,-16(%edx)509testl %ebp,%ebp510jz .L028cbc_exit511.L029cbc_aligned_tail:512movl %ebp,%ecx513leal -24(%esp),%ebp514movl %ebp,%esp515movl %ebp,%eax516subl %ecx,%esp517andl $-16,%ebp518andl $-16,%esp519movl %eax,16(%ebp)520movl %edi,%eax521movl %ecx,%ebx522shrl $2,%ecx523leal (%esp),%edi524.byte 243,165525movl %esp,%esi526movl %eax,%edi527movl %ebx,%ecx528jmp .L021cbc_loop529.L028cbc_exit:530movl $1,%eax531leal 4(%esp),%esp532.L018cbc_abort:533popl %edi534popl %esi535popl %ebx536popl %ebp537ret538.size padlock_cbc_encrypt,.-.L_padlock_cbc_encrypt_begin539.globl padlock_cfb_encrypt540.type padlock_cfb_encrypt,@function541.align 16542padlock_cfb_encrypt:543.L_padlock_cfb_encrypt_begin:544#ifdef __CET__545546.byte 243,15,30,251547#endif548549pushl %ebp550pushl %ebx551pushl %esi552pushl %edi553movl 20(%esp),%edi554movl 24(%esp),%esi555movl 28(%esp),%edx556movl 32(%esp),%ecx557testl $15,%edx558jnz .L030cfb_abort559testl $15,%ecx560jnz .L030cfb_abort561leal .Lpadlock_saved_context-.L031cfb_pic_point,%eax562pushfl563cld564call _padlock_verify_ctx565.L031cfb_pic_point:566leal 16(%edx),%edx567xorl %eax,%eax568xorl %ebx,%ebx569testl $32,(%edx)570jnz .L032cfb_aligned571testl $15,%edi572setz %al573testl $15,%esi574setz %bl575testl %ebx,%eax576jnz .L032cfb_aligned577negl %eax578movl $512,%ebx579notl %eax580leal -24(%esp),%ebp581cmpl %ebx,%ecx582cmovcl %ecx,%ebx583andl %ebx,%eax584movl %ecx,%ebx585negl %eax586andl $511,%ebx587leal (%eax,%ebp,1),%esp588movl $512,%eax589cmovzl %eax,%ebx590movl %ebp,%eax591andl $-16,%ebp592andl $-16,%esp593movl %eax,16(%ebp)594jmp .L033cfb_loop595.align 16596.L033cfb_loop:597movl %edi,(%ebp)598movl %esi,4(%ebp)599movl %ecx,8(%ebp)600movl %ebx,%ecx601movl %ebx,12(%ebp)602testl $15,%edi603cmovnzl %esp,%edi604testl $15,%esi605jz .L034cfb_inp_aligned606shrl $2,%ecx607.byte 243,165608subl %ebx,%edi609movl %ebx,%ecx610movl %edi,%esi611.L034cfb_inp_aligned:612leal -16(%edx),%eax613leal 16(%edx),%ebx614shrl $4,%ecx615.byte 243,15,167,224616movaps (%eax),%xmm0617movaps %xmm0,-16(%edx)618movl (%ebp),%edi619movl 12(%ebp),%ebx620testl $15,%edi621jz .L035cfb_out_aligned622movl %ebx,%ecx623leal (%esp),%esi624shrl $2,%ecx625.byte 243,165626subl %ebx,%edi627.L035cfb_out_aligned:628movl 4(%ebp),%esi629movl 8(%ebp),%ecx630addl %ebx,%edi631addl %ebx,%esi632subl %ebx,%ecx633movl $512,%ebx634jnz .L033cfb_loop635cmpl %ebp,%esp636je .L036cfb_done637pxor %xmm0,%xmm0638leal (%esp),%eax639.L037cfb_bzero:640movaps %xmm0,(%eax)641leal 16(%eax),%eax642cmpl %eax,%ebp643ja .L037cfb_bzero644.L036cfb_done:645movl 16(%ebp),%ebp646leal 24(%ebp),%esp647jmp .L038cfb_exit648.align 16649.L032cfb_aligned:650leal -16(%edx),%eax651leal 16(%edx),%ebx652shrl $4,%ecx653.byte 243,15,167,224654movaps (%eax),%xmm0655movaps %xmm0,-16(%edx)656.L038cfb_exit:657movl $1,%eax658leal 4(%esp),%esp659.L030cfb_abort:660popl %edi661popl %esi662popl %ebx663popl %ebp664ret665.size padlock_cfb_encrypt,.-.L_padlock_cfb_encrypt_begin666.globl padlock_ofb_encrypt667.type padlock_ofb_encrypt,@function668.align 16669padlock_ofb_encrypt:670.L_padlock_ofb_encrypt_begin:671#ifdef __CET__672673.byte 243,15,30,251674#endif675676pushl %ebp677pushl %ebx678pushl %esi679pushl %edi680movl 20(%esp),%edi681movl 24(%esp),%esi682movl 28(%esp),%edx683movl 32(%esp),%ecx684testl $15,%edx685jnz .L039ofb_abort686testl $15,%ecx687jnz .L039ofb_abort688leal .Lpadlock_saved_context-.L040ofb_pic_point,%eax689pushfl690cld691call _padlock_verify_ctx692.L040ofb_pic_point:693leal 16(%edx),%edx694xorl %eax,%eax695xorl %ebx,%ebx696testl $32,(%edx)697jnz .L041ofb_aligned698testl $15,%edi699setz %al700testl $15,%esi701setz %bl702testl %ebx,%eax703jnz .L041ofb_aligned704negl %eax705movl $512,%ebx706notl %eax707leal -24(%esp),%ebp708cmpl %ebx,%ecx709cmovcl %ecx,%ebx710andl %ebx,%eax711movl %ecx,%ebx712negl %eax713andl $511,%ebx714leal (%eax,%ebp,1),%esp715movl $512,%eax716cmovzl %eax,%ebx717movl %ebp,%eax718andl $-16,%ebp719andl $-16,%esp720movl %eax,16(%ebp)721jmp .L042ofb_loop722.align 16723.L042ofb_loop:724movl %edi,(%ebp)725movl %esi,4(%ebp)726movl %ecx,8(%ebp)727movl %ebx,%ecx728movl %ebx,12(%ebp)729testl $15,%edi730cmovnzl %esp,%edi731testl $15,%esi732jz .L043ofb_inp_aligned733shrl $2,%ecx734.byte 243,165735subl %ebx,%edi736movl %ebx,%ecx737movl %edi,%esi738.L043ofb_inp_aligned:739leal -16(%edx),%eax740leal 16(%edx),%ebx741shrl $4,%ecx742.byte 243,15,167,232743movaps (%eax),%xmm0744movaps %xmm0,-16(%edx)745movl (%ebp),%edi746movl 12(%ebp),%ebx747testl $15,%edi748jz .L044ofb_out_aligned749movl %ebx,%ecx750leal (%esp),%esi751shrl $2,%ecx752.byte 243,165753subl %ebx,%edi754.L044ofb_out_aligned:755movl 4(%ebp),%esi756movl 8(%ebp),%ecx757addl %ebx,%edi758addl %ebx,%esi759subl %ebx,%ecx760movl $512,%ebx761jnz .L042ofb_loop762cmpl %ebp,%esp763je .L045ofb_done764pxor %xmm0,%xmm0765leal (%esp),%eax766.L046ofb_bzero:767movaps %xmm0,(%eax)768leal 16(%eax),%eax769cmpl %eax,%ebp770ja .L046ofb_bzero771.L045ofb_done:772movl 16(%ebp),%ebp773leal 24(%ebp),%esp774jmp .L047ofb_exit775.align 16776.L041ofb_aligned:777leal -16(%edx),%eax778leal 16(%edx),%ebx779shrl $4,%ecx780.byte 243,15,167,232781movaps (%eax),%xmm0782movaps %xmm0,-16(%edx)783.L047ofb_exit:784movl $1,%eax785leal 4(%esp),%esp786.L039ofb_abort:787popl %edi788popl %esi789popl %ebx790popl %ebp791ret792.size padlock_ofb_encrypt,.-.L_padlock_ofb_encrypt_begin793.globl padlock_ctr32_encrypt794.type padlock_ctr32_encrypt,@function795.align 16796padlock_ctr32_encrypt:797.L_padlock_ctr32_encrypt_begin:798#ifdef __CET__799800.byte 243,15,30,251801#endif802803pushl %ebp804pushl %ebx805pushl %esi806pushl %edi807movl 20(%esp),%edi808movl 24(%esp),%esi809movl 28(%esp),%edx810movl 32(%esp),%ecx811testl $15,%edx812jnz .L048ctr32_abort813testl $15,%ecx814jnz .L048ctr32_abort815leal .Lpadlock_saved_context-.L049ctr32_pic_point,%eax816pushfl817cld818call _padlock_verify_ctx819.L049ctr32_pic_point:820leal 16(%edx),%edx821xorl %eax,%eax822movq -16(%edx),%mm0823movl $512,%ebx824notl %eax825leal -24(%esp),%ebp826cmpl %ebx,%ecx827cmovcl %ecx,%ebx828andl %ebx,%eax829movl %ecx,%ebx830negl %eax831andl $511,%ebx832leal (%eax,%ebp,1),%esp833movl $512,%eax834cmovzl %eax,%ebx835movl %ebp,%eax836andl $-16,%ebp837andl $-16,%esp838movl %eax,16(%ebp)839jmp .L050ctr32_loop840.align 16841.L050ctr32_loop:842movl %edi,(%ebp)843movl %esi,4(%ebp)844movl %ecx,8(%ebp)845movl %ebx,%ecx846movl %ebx,12(%ebp)847movl -4(%edx),%ecx848xorl %edi,%edi849movl -8(%edx),%eax850.L051ctr32_prepare:851movl %ecx,12(%esp,%edi,1)852bswap %ecx853movq %mm0,(%esp,%edi,1)854incl %ecx855movl %eax,8(%esp,%edi,1)856bswap %ecx857leal 16(%edi),%edi858cmpl %ebx,%edi859jb .L051ctr32_prepare860movl %ecx,-4(%edx)861leal (%esp),%esi862leal (%esp),%edi863movl %ebx,%ecx864leal -16(%edx),%eax865leal 16(%edx),%ebx866shrl $4,%ecx867.byte 243,15,167,200868movl (%ebp),%edi869movl 12(%ebp),%ebx870movl 4(%ebp),%esi871xorl %ecx,%ecx872.L052ctr32_xor:873movups (%esi,%ecx,1),%xmm1874leal 16(%ecx),%ecx875pxor -16(%esp,%ecx,1),%xmm1876movups %xmm1,-16(%edi,%ecx,1)877cmpl %ebx,%ecx878jb .L052ctr32_xor879movl 8(%ebp),%ecx880addl %ebx,%edi881addl %ebx,%esi882subl %ebx,%ecx883movl $512,%ebx884jnz .L050ctr32_loop885pxor %xmm0,%xmm0886leal (%esp),%eax887.L053ctr32_bzero:888movaps %xmm0,(%eax)889leal 16(%eax),%eax890cmpl %eax,%ebp891ja .L053ctr32_bzero892.L054ctr32_done:893movl 16(%ebp),%ebp894leal 24(%ebp),%esp895movl $1,%eax896leal 4(%esp),%esp897emms898.L048ctr32_abort:899popl %edi900popl %esi901popl %ebx902popl %ebp903ret904.size padlock_ctr32_encrypt,.-.L_padlock_ctr32_encrypt_begin905.globl padlock_xstore906.type padlock_xstore,@function907.align 16908padlock_xstore:909.L_padlock_xstore_begin:910#ifdef __CET__911912.byte 243,15,30,251913#endif914915pushl %edi916movl 8(%esp),%edi917movl 12(%esp),%edx918.byte 15,167,192919popl %edi920ret921.size padlock_xstore,.-.L_padlock_xstore_begin922.type _win32_segv_handler,@function923.align 16924_win32_segv_handler:925#ifdef __CET__926927.byte 243,15,30,251928#endif929930movl $1,%eax931movl 4(%esp),%edx932movl 12(%esp),%ecx933cmpl $3221225477,(%edx)934jne .L055ret935addl $4,184(%ecx)936movl $0,%eax937.L055ret:938ret939.size _win32_segv_handler,.-_win32_segv_handler940.globl padlock_sha1_oneshot941.type padlock_sha1_oneshot,@function942.align 16943padlock_sha1_oneshot:944.L_padlock_sha1_oneshot_begin:945#ifdef __CET__946947.byte 243,15,30,251948#endif949950pushl %edi951pushl %esi952xorl %eax,%eax953movl 12(%esp),%edi954movl 16(%esp),%esi955movl 20(%esp),%ecx956movl %esp,%edx957addl $-128,%esp958movups (%edi),%xmm0959andl $-16,%esp960movl 16(%edi),%eax961movaps %xmm0,(%esp)962movl %esp,%edi963movl %eax,16(%esp)964xorl %eax,%eax965.byte 243,15,166,200966movaps (%esp),%xmm0967movl 16(%esp),%eax968movl %edx,%esp969movl 12(%esp),%edi970movups %xmm0,(%edi)971movl %eax,16(%edi)972popl %esi973popl %edi974ret975.size padlock_sha1_oneshot,.-.L_padlock_sha1_oneshot_begin976.globl padlock_sha1_blocks977.type padlock_sha1_blocks,@function978.align 16979padlock_sha1_blocks:980.L_padlock_sha1_blocks_begin:981#ifdef __CET__982983.byte 243,15,30,251984#endif985986pushl %edi987pushl %esi988movl 12(%esp),%edi989movl 16(%esp),%esi990movl %esp,%edx991movl 20(%esp),%ecx992addl $-128,%esp993movups (%edi),%xmm0994andl $-16,%esp995movl 16(%edi),%eax996movaps %xmm0,(%esp)997movl %esp,%edi998movl %eax,16(%esp)999movl $-1,%eax1000.byte 243,15,166,2001001movaps (%esp),%xmm01002movl 16(%esp),%eax1003movl %edx,%esp1004movl 12(%esp),%edi1005movups %xmm0,(%edi)1006movl %eax,16(%edi)1007popl %esi1008popl %edi1009ret1010.size padlock_sha1_blocks,.-.L_padlock_sha1_blocks_begin1011.globl padlock_sha256_oneshot1012.type padlock_sha256_oneshot,@function1013.align 161014padlock_sha256_oneshot:1015.L_padlock_sha256_oneshot_begin:1016#ifdef __CET__10171018.byte 243,15,30,2511019#endif10201021pushl %edi1022pushl %esi1023xorl %eax,%eax1024movl 12(%esp),%edi1025movl 16(%esp),%esi1026movl 20(%esp),%ecx1027movl %esp,%edx1028addl $-128,%esp1029movups (%edi),%xmm01030andl $-16,%esp1031movups 16(%edi),%xmm11032movaps %xmm0,(%esp)1033movl %esp,%edi1034movaps %xmm1,16(%esp)1035xorl %eax,%eax1036.byte 243,15,166,2081037movaps (%esp),%xmm01038movaps 16(%esp),%xmm11039movl %edx,%esp1040movl 12(%esp),%edi1041movups %xmm0,(%edi)1042movups %xmm1,16(%edi)1043popl %esi1044popl %edi1045ret1046.size padlock_sha256_oneshot,.-.L_padlock_sha256_oneshot_begin1047.globl padlock_sha256_blocks1048.type padlock_sha256_blocks,@function1049.align 161050padlock_sha256_blocks:1051.L_padlock_sha256_blocks_begin:1052#ifdef __CET__10531054.byte 243,15,30,2511055#endif10561057pushl %edi1058pushl %esi1059movl 12(%esp),%edi1060movl 16(%esp),%esi1061movl 20(%esp),%ecx1062movl %esp,%edx1063addl $-128,%esp1064movups (%edi),%xmm01065andl $-16,%esp1066movups 16(%edi),%xmm11067movaps %xmm0,(%esp)1068movl %esp,%edi1069movaps %xmm1,16(%esp)1070movl $-1,%eax1071.byte 243,15,166,2081072movaps (%esp),%xmm01073movaps 16(%esp),%xmm11074movl %edx,%esp1075movl 12(%esp),%edi1076movups %xmm0,(%edi)1077movups %xmm1,16(%edi)1078popl %esi1079popl %edi1080ret1081.size padlock_sha256_blocks,.-.L_padlock_sha256_blocks_begin1082.globl padlock_sha512_blocks1083.type padlock_sha512_blocks,@function1084.align 161085padlock_sha512_blocks:1086.L_padlock_sha512_blocks_begin:1087#ifdef __CET__10881089.byte 243,15,30,2511090#endif10911092pushl %edi1093pushl %esi1094movl 12(%esp),%edi1095movl 16(%esp),%esi1096movl 20(%esp),%ecx1097movl %esp,%edx1098addl $-128,%esp1099movups (%edi),%xmm01100andl $-16,%esp1101movups 16(%edi),%xmm11102movups 32(%edi),%xmm21103movups 48(%edi),%xmm31104movaps %xmm0,(%esp)1105movl %esp,%edi1106movaps %xmm1,16(%esp)1107movaps %xmm2,32(%esp)1108movaps %xmm3,48(%esp)1109.byte 243,15,166,2241110movaps (%esp),%xmm01111movaps 16(%esp),%xmm11112movaps 32(%esp),%xmm21113movaps 48(%esp),%xmm31114movl %edx,%esp1115movl 12(%esp),%edi1116movups %xmm0,(%edi)1117movups %xmm1,16(%edi)1118movups %xmm2,32(%edi)1119movups %xmm3,48(%edi)1120popl %esi1121popl %edi1122ret1123.size padlock_sha512_blocks,.-.L_padlock_sha512_blocks_begin1124.byte 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,321125.byte 109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,651126.byte 77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,1011127.byte 110,115,115,108,46,111,114,103,62,01128.align 161129.data1130.align 41131.Lpadlock_saved_context:1132.long 011331134.section ".note.gnu.property", "a"1135.p2align 21136.long 1f - 0f1137.long 4f - 1f1138.long 511390:1140.asciz "GNU"11411:1142.p2align 21143.long 0xc00000021144.long 3f - 2f11452:1146.long 311473:1148.p2align 211494:1150#else1151.text1152.globl padlock_capability1153.type padlock_capability,@function1154.align 161155padlock_capability:1156.L_padlock_capability_begin:1157#ifdef __CET__11581159.byte 243,15,30,2511160#endif11611162pushl %ebx1163pushfl1164popl %eax1165movl %eax,%ecx1166xorl $2097152,%eax1167pushl %eax1168popfl1169pushfl1170popl %eax1171xorl %eax,%ecx1172xorl %eax,%eax1173btl $21,%ecx1174jnc .L000noluck1175.byte 0x0f,0xa21176xorl %eax,%eax1177cmpl $0x746e6543,%ebx1178jne .L001zhaoxin1179cmpl $0x48727561,%edx1180jne .L000noluck1181cmpl $0x736c7561,%ecx1182jne .L000noluck1183jmp .L002zhaoxinEnd1184.L001zhaoxin:1185cmpl $0x68532020,%ebx1186jne .L000noluck1187cmpl $0x68676e61,%edx1188jne .L000noluck1189cmpl $0x20206961,%ecx1190jne .L000noluck1191.L002zhaoxinEnd:1192movl $3221225472,%eax1193.byte 0x0f,0xa21194movl %eax,%edx1195xorl %eax,%eax1196cmpl $3221225473,%edx1197jb .L000noluck1198movl $1,%eax1199.byte 0x0f,0xa21200orl $15,%eax1201xorl %ebx,%ebx1202andl $4095,%eax1203cmpl $1791,%eax1204sete %bl1205movl $3221225473,%eax1206pushl %ebx1207.byte 0x0f,0xa21208popl %ebx1209movl %edx,%eax1210shll $4,%ebx1211andl $4294967279,%eax1212orl %ebx,%eax1213.L000noluck:1214popl %ebx1215ret1216.size padlock_capability,.-.L_padlock_capability_begin1217.globl padlock_key_bswap1218.type padlock_key_bswap,@function1219.align 161220padlock_key_bswap:1221.L_padlock_key_bswap_begin:1222#ifdef __CET__12231224.byte 243,15,30,2511225#endif12261227movl 4(%esp),%edx1228movl 240(%edx),%ecx1229incl %ecx1230shll $2,%ecx1231.L003bswap_loop:1232movl (%edx),%eax1233bswap %eax1234movl %eax,(%edx)1235leal 4(%edx),%edx1236subl $1,%ecx1237jnz .L003bswap_loop1238ret1239.size padlock_key_bswap,.-.L_padlock_key_bswap_begin1240.globl padlock_verify_context1241.type padlock_verify_context,@function1242.align 161243padlock_verify_context:1244.L_padlock_verify_context_begin:1245#ifdef __CET__12461247.byte 243,15,30,2511248#endif12491250movl 4(%esp),%edx1251leal .Lpadlock_saved_context-.L004verify_pic_point,%eax1252pushfl1253call _padlock_verify_ctx1254.L004verify_pic_point:1255leal 4(%esp),%esp1256ret1257.size padlock_verify_context,.-.L_padlock_verify_context_begin1258.type _padlock_verify_ctx,@function1259.align 161260_padlock_verify_ctx:1261#ifdef __CET__12621263.byte 243,15,30,2511264#endif12651266addl (%esp),%eax1267btl $30,4(%esp)1268jnc .L005verified1269cmpl (%eax),%edx1270je .L005verified1271pushfl1272popfl1273.L005verified:1274movl %edx,(%eax)1275ret1276.size _padlock_verify_ctx,.-_padlock_verify_ctx1277.globl padlock_reload_key1278.type padlock_reload_key,@function1279.align 161280padlock_reload_key:1281.L_padlock_reload_key_begin:1282#ifdef __CET__12831284.byte 243,15,30,2511285#endif12861287pushfl1288popfl1289ret1290.size padlock_reload_key,.-.L_padlock_reload_key_begin1291.globl padlock_aes_block1292.type padlock_aes_block,@function1293.align 161294padlock_aes_block:1295.L_padlock_aes_block_begin:1296#ifdef __CET__12971298.byte 243,15,30,2511299#endif13001301pushl %edi1302pushl %esi1303pushl %ebx1304movl 16(%esp),%edi1305movl 20(%esp),%esi1306movl 24(%esp),%edx1307movl $1,%ecx1308leal 32(%edx),%ebx1309leal 16(%edx),%edx1310.byte 243,15,167,2001311popl %ebx1312popl %esi1313popl %edi1314ret1315.size padlock_aes_block,.-.L_padlock_aes_block_begin1316.globl padlock_ecb_encrypt1317.type padlock_ecb_encrypt,@function1318.align 161319padlock_ecb_encrypt:1320.L_padlock_ecb_encrypt_begin:1321#ifdef __CET__13221323.byte 243,15,30,2511324#endif13251326pushl %ebp1327pushl %ebx1328pushl %esi1329pushl %edi1330movl 20(%esp),%edi1331movl 24(%esp),%esi1332movl 28(%esp),%edx1333movl 32(%esp),%ecx1334testl $15,%edx1335jnz .L006ecb_abort1336testl $15,%ecx1337jnz .L006ecb_abort1338leal .Lpadlock_saved_context-.L007ecb_pic_point,%eax1339pushfl1340cld1341call _padlock_verify_ctx1342.L007ecb_pic_point:1343leal 16(%edx),%edx1344xorl %eax,%eax1345xorl %ebx,%ebx1346testl $32,(%edx)1347jnz .L008ecb_aligned1348testl $15,%edi1349setz %al1350testl $15,%esi1351setz %bl1352testl %ebx,%eax1353jnz .L008ecb_aligned1354negl %eax1355movl $512,%ebx1356notl %eax1357leal -24(%esp),%ebp1358cmpl %ebx,%ecx1359cmovcl %ecx,%ebx1360andl %ebx,%eax1361movl %ecx,%ebx1362negl %eax1363andl $511,%ebx1364leal (%eax,%ebp,1),%esp1365movl $512,%eax1366cmovzl %eax,%ebx1367movl %ebp,%eax1368andl $-16,%ebp1369andl $-16,%esp1370movl %eax,16(%ebp)1371cmpl %ebx,%ecx1372ja .L009ecb_loop1373movl %esi,%eax1374cmpl %esp,%ebp1375cmovel %edi,%eax1376addl %ecx,%eax1377negl %eax1378andl $4095,%eax1379cmpl $128,%eax1380movl $-128,%eax1381cmovael %ebx,%eax1382andl %eax,%ebx1383jz .L010ecb_unaligned_tail1384jmp .L009ecb_loop1385.align 161386.L009ecb_loop:1387movl %edi,(%ebp)1388movl %esi,4(%ebp)1389movl %ecx,8(%ebp)1390movl %ebx,%ecx1391movl %ebx,12(%ebp)1392testl $15,%edi1393cmovnzl %esp,%edi1394testl $15,%esi1395jz .L011ecb_inp_aligned1396shrl $2,%ecx1397.byte 243,1651398subl %ebx,%edi1399movl %ebx,%ecx1400movl %edi,%esi1401.L011ecb_inp_aligned:1402leal -16(%edx),%eax1403leal 16(%edx),%ebx1404shrl $4,%ecx1405.byte 243,15,167,2001406movl (%ebp),%edi1407movl 12(%ebp),%ebx1408testl $15,%edi1409jz .L012ecb_out_aligned1410movl %ebx,%ecx1411leal (%esp),%esi1412shrl $2,%ecx1413.byte 243,1651414subl %ebx,%edi1415.L012ecb_out_aligned:1416movl 4(%ebp),%esi1417movl 8(%ebp),%ecx1418addl %ebx,%edi1419addl %ebx,%esi1420subl %ebx,%ecx1421movl $512,%ebx1422jz .L013ecb_break1423cmpl %ebx,%ecx1424jae .L009ecb_loop1425.L010ecb_unaligned_tail:1426xorl %eax,%eax1427cmpl %ebp,%esp1428cmovel %ecx,%eax1429subl %eax,%esp1430movl %edi,%eax1431movl %ecx,%ebx1432shrl $2,%ecx1433leal (%esp),%edi1434.byte 243,1651435movl %esp,%esi1436movl %eax,%edi1437movl %ebx,%ecx1438jmp .L009ecb_loop1439.align 161440.L013ecb_break:1441cmpl %ebp,%esp1442je .L014ecb_done1443pxor %xmm0,%xmm01444leal (%esp),%eax1445.L015ecb_bzero:1446movaps %xmm0,(%eax)1447leal 16(%eax),%eax1448cmpl %eax,%ebp1449ja .L015ecb_bzero1450.L014ecb_done:1451movl 16(%ebp),%ebp1452leal 24(%ebp),%esp1453jmp .L016ecb_exit1454.align 161455.L008ecb_aligned:1456leal (%esi,%ecx,1),%ebp1457negl %ebp1458andl $4095,%ebp1459xorl %eax,%eax1460cmpl $128,%ebp1461movl $127,%ebp1462cmovael %eax,%ebp1463andl %ecx,%ebp1464subl %ebp,%ecx1465jz .L017ecb_aligned_tail1466leal -16(%edx),%eax1467leal 16(%edx),%ebx1468shrl $4,%ecx1469.byte 243,15,167,2001470testl %ebp,%ebp1471jz .L016ecb_exit1472.L017ecb_aligned_tail:1473movl %ebp,%ecx1474leal -24(%esp),%ebp1475movl %ebp,%esp1476movl %ebp,%eax1477subl %ecx,%esp1478andl $-16,%ebp1479andl $-16,%esp1480movl %eax,16(%ebp)1481movl %edi,%eax1482movl %ecx,%ebx1483shrl $2,%ecx1484leal (%esp),%edi1485.byte 243,1651486movl %esp,%esi1487movl %eax,%edi1488movl %ebx,%ecx1489jmp .L009ecb_loop1490.L016ecb_exit:1491movl $1,%eax1492leal 4(%esp),%esp1493.L006ecb_abort:1494popl %edi1495popl %esi1496popl %ebx1497popl %ebp1498ret1499.size padlock_ecb_encrypt,.-.L_padlock_ecb_encrypt_begin1500.globl padlock_cbc_encrypt1501.type padlock_cbc_encrypt,@function1502.align 161503padlock_cbc_encrypt:1504.L_padlock_cbc_encrypt_begin:1505#ifdef __CET__15061507.byte 243,15,30,2511508#endif15091510pushl %ebp1511pushl %ebx1512pushl %esi1513pushl %edi1514movl 20(%esp),%edi1515movl 24(%esp),%esi1516movl 28(%esp),%edx1517movl 32(%esp),%ecx1518testl $15,%edx1519jnz .L018cbc_abort1520testl $15,%ecx1521jnz .L018cbc_abort1522leal .Lpadlock_saved_context-.L019cbc_pic_point,%eax1523pushfl1524cld1525call _padlock_verify_ctx1526.L019cbc_pic_point:1527leal 16(%edx),%edx1528xorl %eax,%eax1529xorl %ebx,%ebx1530testl $32,(%edx)1531jnz .L020cbc_aligned1532testl $15,%edi1533setz %al1534testl $15,%esi1535setz %bl1536testl %ebx,%eax1537jnz .L020cbc_aligned1538negl %eax1539movl $512,%ebx1540notl %eax1541leal -24(%esp),%ebp1542cmpl %ebx,%ecx1543cmovcl %ecx,%ebx1544andl %ebx,%eax1545movl %ecx,%ebx1546negl %eax1547andl $511,%ebx1548leal (%eax,%ebp,1),%esp1549movl $512,%eax1550cmovzl %eax,%ebx1551movl %ebp,%eax1552andl $-16,%ebp1553andl $-16,%esp1554movl %eax,16(%ebp)1555cmpl %ebx,%ecx1556ja .L021cbc_loop1557movl %esi,%eax1558cmpl %esp,%ebp1559cmovel %edi,%eax1560addl %ecx,%eax1561negl %eax1562andl $4095,%eax1563cmpl $64,%eax1564movl $-64,%eax1565cmovael %ebx,%eax1566andl %eax,%ebx1567jz .L022cbc_unaligned_tail1568jmp .L021cbc_loop1569.align 161570.L021cbc_loop:1571movl %edi,(%ebp)1572movl %esi,4(%ebp)1573movl %ecx,8(%ebp)1574movl %ebx,%ecx1575movl %ebx,12(%ebp)1576testl $15,%edi1577cmovnzl %esp,%edi1578testl $15,%esi1579jz .L023cbc_inp_aligned1580shrl $2,%ecx1581.byte 243,1651582subl %ebx,%edi1583movl %ebx,%ecx1584movl %edi,%esi1585.L023cbc_inp_aligned:1586leal -16(%edx),%eax1587leal 16(%edx),%ebx1588shrl $4,%ecx1589.byte 243,15,167,2081590movaps (%eax),%xmm01591movaps %xmm0,-16(%edx)1592movl (%ebp),%edi1593movl 12(%ebp),%ebx1594testl $15,%edi1595jz .L024cbc_out_aligned1596movl %ebx,%ecx1597leal (%esp),%esi1598shrl $2,%ecx1599.byte 243,1651600subl %ebx,%edi1601.L024cbc_out_aligned:1602movl 4(%ebp),%esi1603movl 8(%ebp),%ecx1604addl %ebx,%edi1605addl %ebx,%esi1606subl %ebx,%ecx1607movl $512,%ebx1608jz .L025cbc_break1609cmpl %ebx,%ecx1610jae .L021cbc_loop1611.L022cbc_unaligned_tail:1612xorl %eax,%eax1613cmpl %ebp,%esp1614cmovel %ecx,%eax1615subl %eax,%esp1616movl %edi,%eax1617movl %ecx,%ebx1618shrl $2,%ecx1619leal (%esp),%edi1620.byte 243,1651621movl %esp,%esi1622movl %eax,%edi1623movl %ebx,%ecx1624jmp .L021cbc_loop1625.align 161626.L025cbc_break:1627cmpl %ebp,%esp1628je .L026cbc_done1629pxor %xmm0,%xmm01630leal (%esp),%eax1631.L027cbc_bzero:1632movaps %xmm0,(%eax)1633leal 16(%eax),%eax1634cmpl %eax,%ebp1635ja .L027cbc_bzero1636.L026cbc_done:1637movl 16(%ebp),%ebp1638leal 24(%ebp),%esp1639jmp .L028cbc_exit1640.align 161641.L020cbc_aligned:1642leal (%esi,%ecx,1),%ebp1643negl %ebp1644andl $4095,%ebp1645xorl %eax,%eax1646cmpl $64,%ebp1647movl $63,%ebp1648cmovael %eax,%ebp1649andl %ecx,%ebp1650subl %ebp,%ecx1651jz .L029cbc_aligned_tail1652leal -16(%edx),%eax1653leal 16(%edx),%ebx1654shrl $4,%ecx1655.byte 243,15,167,2081656movaps (%eax),%xmm01657movaps %xmm0,-16(%edx)1658testl %ebp,%ebp1659jz .L028cbc_exit1660.L029cbc_aligned_tail:1661movl %ebp,%ecx1662leal -24(%esp),%ebp1663movl %ebp,%esp1664movl %ebp,%eax1665subl %ecx,%esp1666andl $-16,%ebp1667andl $-16,%esp1668movl %eax,16(%ebp)1669movl %edi,%eax1670movl %ecx,%ebx1671shrl $2,%ecx1672leal (%esp),%edi1673.byte 243,1651674movl %esp,%esi1675movl %eax,%edi1676movl %ebx,%ecx1677jmp .L021cbc_loop1678.L028cbc_exit:1679movl $1,%eax1680leal 4(%esp),%esp1681.L018cbc_abort:1682popl %edi1683popl %esi1684popl %ebx1685popl %ebp1686ret1687.size padlock_cbc_encrypt,.-.L_padlock_cbc_encrypt_begin1688.globl padlock_cfb_encrypt1689.type padlock_cfb_encrypt,@function1690.align 161691padlock_cfb_encrypt:1692.L_padlock_cfb_encrypt_begin:1693#ifdef __CET__16941695.byte 243,15,30,2511696#endif16971698pushl %ebp1699pushl %ebx1700pushl %esi1701pushl %edi1702movl 20(%esp),%edi1703movl 24(%esp),%esi1704movl 28(%esp),%edx1705movl 32(%esp),%ecx1706testl $15,%edx1707jnz .L030cfb_abort1708testl $15,%ecx1709jnz .L030cfb_abort1710leal .Lpadlock_saved_context-.L031cfb_pic_point,%eax1711pushfl1712cld1713call _padlock_verify_ctx1714.L031cfb_pic_point:1715leal 16(%edx),%edx1716xorl %eax,%eax1717xorl %ebx,%ebx1718testl $32,(%edx)1719jnz .L032cfb_aligned1720testl $15,%edi1721setz %al1722testl $15,%esi1723setz %bl1724testl %ebx,%eax1725jnz .L032cfb_aligned1726negl %eax1727movl $512,%ebx1728notl %eax1729leal -24(%esp),%ebp1730cmpl %ebx,%ecx1731cmovcl %ecx,%ebx1732andl %ebx,%eax1733movl %ecx,%ebx1734negl %eax1735andl $511,%ebx1736leal (%eax,%ebp,1),%esp1737movl $512,%eax1738cmovzl %eax,%ebx1739movl %ebp,%eax1740andl $-16,%ebp1741andl $-16,%esp1742movl %eax,16(%ebp)1743jmp .L033cfb_loop1744.align 161745.L033cfb_loop:1746movl %edi,(%ebp)1747movl %esi,4(%ebp)1748movl %ecx,8(%ebp)1749movl %ebx,%ecx1750movl %ebx,12(%ebp)1751testl $15,%edi1752cmovnzl %esp,%edi1753testl $15,%esi1754jz .L034cfb_inp_aligned1755shrl $2,%ecx1756.byte 243,1651757subl %ebx,%edi1758movl %ebx,%ecx1759movl %edi,%esi1760.L034cfb_inp_aligned:1761leal -16(%edx),%eax1762leal 16(%edx),%ebx1763shrl $4,%ecx1764.byte 243,15,167,2241765movaps (%eax),%xmm01766movaps %xmm0,-16(%edx)1767movl (%ebp),%edi1768movl 12(%ebp),%ebx1769testl $15,%edi1770jz .L035cfb_out_aligned1771movl %ebx,%ecx1772leal (%esp),%esi1773shrl $2,%ecx1774.byte 243,1651775subl %ebx,%edi1776.L035cfb_out_aligned:1777movl 4(%ebp),%esi1778movl 8(%ebp),%ecx1779addl %ebx,%edi1780addl %ebx,%esi1781subl %ebx,%ecx1782movl $512,%ebx1783jnz .L033cfb_loop1784cmpl %ebp,%esp1785je .L036cfb_done1786pxor %xmm0,%xmm01787leal (%esp),%eax1788.L037cfb_bzero:1789movaps %xmm0,(%eax)1790leal 16(%eax),%eax1791cmpl %eax,%ebp1792ja .L037cfb_bzero1793.L036cfb_done:1794movl 16(%ebp),%ebp1795leal 24(%ebp),%esp1796jmp .L038cfb_exit1797.align 161798.L032cfb_aligned:1799leal -16(%edx),%eax1800leal 16(%edx),%ebx1801shrl $4,%ecx1802.byte 243,15,167,2241803movaps (%eax),%xmm01804movaps %xmm0,-16(%edx)1805.L038cfb_exit:1806movl $1,%eax1807leal 4(%esp),%esp1808.L030cfb_abort:1809popl %edi1810popl %esi1811popl %ebx1812popl %ebp1813ret1814.size padlock_cfb_encrypt,.-.L_padlock_cfb_encrypt_begin1815.globl padlock_ofb_encrypt1816.type padlock_ofb_encrypt,@function1817.align 161818padlock_ofb_encrypt:1819.L_padlock_ofb_encrypt_begin:1820#ifdef __CET__18211822.byte 243,15,30,2511823#endif18241825pushl %ebp1826pushl %ebx1827pushl %esi1828pushl %edi1829movl 20(%esp),%edi1830movl 24(%esp),%esi1831movl 28(%esp),%edx1832movl 32(%esp),%ecx1833testl $15,%edx1834jnz .L039ofb_abort1835testl $15,%ecx1836jnz .L039ofb_abort1837leal .Lpadlock_saved_context-.L040ofb_pic_point,%eax1838pushfl1839cld1840call _padlock_verify_ctx1841.L040ofb_pic_point:1842leal 16(%edx),%edx1843xorl %eax,%eax1844xorl %ebx,%ebx1845testl $32,(%edx)1846jnz .L041ofb_aligned1847testl $15,%edi1848setz %al1849testl $15,%esi1850setz %bl1851testl %ebx,%eax1852jnz .L041ofb_aligned1853negl %eax1854movl $512,%ebx1855notl %eax1856leal -24(%esp),%ebp1857cmpl %ebx,%ecx1858cmovcl %ecx,%ebx1859andl %ebx,%eax1860movl %ecx,%ebx1861negl %eax1862andl $511,%ebx1863leal (%eax,%ebp,1),%esp1864movl $512,%eax1865cmovzl %eax,%ebx1866movl %ebp,%eax1867andl $-16,%ebp1868andl $-16,%esp1869movl %eax,16(%ebp)1870jmp .L042ofb_loop1871.align 161872.L042ofb_loop:1873movl %edi,(%ebp)1874movl %esi,4(%ebp)1875movl %ecx,8(%ebp)1876movl %ebx,%ecx1877movl %ebx,12(%ebp)1878testl $15,%edi1879cmovnzl %esp,%edi1880testl $15,%esi1881jz .L043ofb_inp_aligned1882shrl $2,%ecx1883.byte 243,1651884subl %ebx,%edi1885movl %ebx,%ecx1886movl %edi,%esi1887.L043ofb_inp_aligned:1888leal -16(%edx),%eax1889leal 16(%edx),%ebx1890shrl $4,%ecx1891.byte 243,15,167,2321892movaps (%eax),%xmm01893movaps %xmm0,-16(%edx)1894movl (%ebp),%edi1895movl 12(%ebp),%ebx1896testl $15,%edi1897jz .L044ofb_out_aligned1898movl %ebx,%ecx1899leal (%esp),%esi1900shrl $2,%ecx1901.byte 243,1651902subl %ebx,%edi1903.L044ofb_out_aligned:1904movl 4(%ebp),%esi1905movl 8(%ebp),%ecx1906addl %ebx,%edi1907addl %ebx,%esi1908subl %ebx,%ecx1909movl $512,%ebx1910jnz .L042ofb_loop1911cmpl %ebp,%esp1912je .L045ofb_done1913pxor %xmm0,%xmm01914leal (%esp),%eax1915.L046ofb_bzero:1916movaps %xmm0,(%eax)1917leal 16(%eax),%eax1918cmpl %eax,%ebp1919ja .L046ofb_bzero1920.L045ofb_done:1921movl 16(%ebp),%ebp1922leal 24(%ebp),%esp1923jmp .L047ofb_exit1924.align 161925.L041ofb_aligned:1926leal -16(%edx),%eax1927leal 16(%edx),%ebx1928shrl $4,%ecx1929.byte 243,15,167,2321930movaps (%eax),%xmm01931movaps %xmm0,-16(%edx)1932.L047ofb_exit:1933movl $1,%eax1934leal 4(%esp),%esp1935.L039ofb_abort:1936popl %edi1937popl %esi1938popl %ebx1939popl %ebp1940ret1941.size padlock_ofb_encrypt,.-.L_padlock_ofb_encrypt_begin1942.globl padlock_ctr32_encrypt1943.type padlock_ctr32_encrypt,@function1944.align 161945padlock_ctr32_encrypt:1946.L_padlock_ctr32_encrypt_begin:1947#ifdef __CET__19481949.byte 243,15,30,2511950#endif19511952pushl %ebp1953pushl %ebx1954pushl %esi1955pushl %edi1956movl 20(%esp),%edi1957movl 24(%esp),%esi1958movl 28(%esp),%edx1959movl 32(%esp),%ecx1960testl $15,%edx1961jnz .L048ctr32_abort1962testl $15,%ecx1963jnz .L048ctr32_abort1964leal .Lpadlock_saved_context-.L049ctr32_pic_point,%eax1965pushfl1966cld1967call _padlock_verify_ctx1968.L049ctr32_pic_point:1969leal 16(%edx),%edx1970xorl %eax,%eax1971movq -16(%edx),%mm01972movl $512,%ebx1973notl %eax1974leal -24(%esp),%ebp1975cmpl %ebx,%ecx1976cmovcl %ecx,%ebx1977andl %ebx,%eax1978movl %ecx,%ebx1979negl %eax1980andl $511,%ebx1981leal (%eax,%ebp,1),%esp1982movl $512,%eax1983cmovzl %eax,%ebx1984movl %ebp,%eax1985andl $-16,%ebp1986andl $-16,%esp1987movl %eax,16(%ebp)1988jmp .L050ctr32_loop1989.align 161990.L050ctr32_loop:1991movl %edi,(%ebp)1992movl %esi,4(%ebp)1993movl %ecx,8(%ebp)1994movl %ebx,%ecx1995movl %ebx,12(%ebp)1996movl -4(%edx),%ecx1997xorl %edi,%edi1998movl -8(%edx),%eax1999.L051ctr32_prepare:2000movl %ecx,12(%esp,%edi,1)2001bswap %ecx2002movq %mm0,(%esp,%edi,1)2003incl %ecx2004movl %eax,8(%esp,%edi,1)2005bswap %ecx2006leal 16(%edi),%edi2007cmpl %ebx,%edi2008jb .L051ctr32_prepare2009movl %ecx,-4(%edx)2010leal (%esp),%esi2011leal (%esp),%edi2012movl %ebx,%ecx2013leal -16(%edx),%eax2014leal 16(%edx),%ebx2015shrl $4,%ecx2016.byte 243,15,167,2002017movl (%ebp),%edi2018movl 12(%ebp),%ebx2019movl 4(%ebp),%esi2020xorl %ecx,%ecx2021.L052ctr32_xor:2022movups (%esi,%ecx,1),%xmm12023leal 16(%ecx),%ecx2024pxor -16(%esp,%ecx,1),%xmm12025movups %xmm1,-16(%edi,%ecx,1)2026cmpl %ebx,%ecx2027jb .L052ctr32_xor2028movl 8(%ebp),%ecx2029addl %ebx,%edi2030addl %ebx,%esi2031subl %ebx,%ecx2032movl $512,%ebx2033jnz .L050ctr32_loop2034pxor %xmm0,%xmm02035leal (%esp),%eax2036.L053ctr32_bzero:2037movaps %xmm0,(%eax)2038leal 16(%eax),%eax2039cmpl %eax,%ebp2040ja .L053ctr32_bzero2041.L054ctr32_done:2042movl 16(%ebp),%ebp2043leal 24(%ebp),%esp2044movl $1,%eax2045leal 4(%esp),%esp2046emms2047.L048ctr32_abort:2048popl %edi2049popl %esi2050popl %ebx2051popl %ebp2052ret2053.size padlock_ctr32_encrypt,.-.L_padlock_ctr32_encrypt_begin2054.globl padlock_xstore2055.type padlock_xstore,@function2056.align 162057padlock_xstore:2058.L_padlock_xstore_begin:2059#ifdef __CET__20602061.byte 243,15,30,2512062#endif20632064pushl %edi2065movl 8(%esp),%edi2066movl 12(%esp),%edx2067.byte 15,167,1922068popl %edi2069ret2070.size padlock_xstore,.-.L_padlock_xstore_begin2071.type _win32_segv_handler,@function2072.align 162073_win32_segv_handler:2074#ifdef __CET__20752076.byte 243,15,30,2512077#endif20782079movl $1,%eax2080movl 4(%esp),%edx2081movl 12(%esp),%ecx2082cmpl $3221225477,(%edx)2083jne .L055ret2084addl $4,184(%ecx)2085movl $0,%eax2086.L055ret:2087ret2088.size _win32_segv_handler,.-_win32_segv_handler2089.globl padlock_sha1_oneshot2090.type padlock_sha1_oneshot,@function2091.align 162092padlock_sha1_oneshot:2093.L_padlock_sha1_oneshot_begin:2094#ifdef __CET__20952096.byte 243,15,30,2512097#endif20982099pushl %edi2100pushl %esi2101xorl %eax,%eax2102movl 12(%esp),%edi2103movl 16(%esp),%esi2104movl 20(%esp),%ecx2105movl %esp,%edx2106addl $-128,%esp2107movups (%edi),%xmm02108andl $-16,%esp2109movl 16(%edi),%eax2110movaps %xmm0,(%esp)2111movl %esp,%edi2112movl %eax,16(%esp)2113xorl %eax,%eax2114.byte 243,15,166,2002115movaps (%esp),%xmm02116movl 16(%esp),%eax2117movl %edx,%esp2118movl 12(%esp),%edi2119movups %xmm0,(%edi)2120movl %eax,16(%edi)2121popl %esi2122popl %edi2123ret2124.size padlock_sha1_oneshot,.-.L_padlock_sha1_oneshot_begin2125.globl padlock_sha1_blocks2126.type padlock_sha1_blocks,@function2127.align 162128padlock_sha1_blocks:2129.L_padlock_sha1_blocks_begin:2130#ifdef __CET__21312132.byte 243,15,30,2512133#endif21342135pushl %edi2136pushl %esi2137movl 12(%esp),%edi2138movl 16(%esp),%esi2139movl %esp,%edx2140movl 20(%esp),%ecx2141addl $-128,%esp2142movups (%edi),%xmm02143andl $-16,%esp2144movl 16(%edi),%eax2145movaps %xmm0,(%esp)2146movl %esp,%edi2147movl %eax,16(%esp)2148movl $-1,%eax2149.byte 243,15,166,2002150movaps (%esp),%xmm02151movl 16(%esp),%eax2152movl %edx,%esp2153movl 12(%esp),%edi2154movups %xmm0,(%edi)2155movl %eax,16(%edi)2156popl %esi2157popl %edi2158ret2159.size padlock_sha1_blocks,.-.L_padlock_sha1_blocks_begin2160.globl padlock_sha256_oneshot2161.type padlock_sha256_oneshot,@function2162.align 162163padlock_sha256_oneshot:2164.L_padlock_sha256_oneshot_begin:2165#ifdef __CET__21662167.byte 243,15,30,2512168#endif21692170pushl %edi2171pushl %esi2172xorl %eax,%eax2173movl 12(%esp),%edi2174movl 16(%esp),%esi2175movl 20(%esp),%ecx2176movl %esp,%edx2177addl $-128,%esp2178movups (%edi),%xmm02179andl $-16,%esp2180movups 16(%edi),%xmm12181movaps %xmm0,(%esp)2182movl %esp,%edi2183movaps %xmm1,16(%esp)2184xorl %eax,%eax2185.byte 243,15,166,2082186movaps (%esp),%xmm02187movaps 16(%esp),%xmm12188movl %edx,%esp2189movl 12(%esp),%edi2190movups %xmm0,(%edi)2191movups %xmm1,16(%edi)2192popl %esi2193popl %edi2194ret2195.size padlock_sha256_oneshot,.-.L_padlock_sha256_oneshot_begin2196.globl padlock_sha256_blocks2197.type padlock_sha256_blocks,@function2198.align 162199padlock_sha256_blocks:2200.L_padlock_sha256_blocks_begin:2201#ifdef __CET__22022203.byte 243,15,30,2512204#endif22052206pushl %edi2207pushl %esi2208movl 12(%esp),%edi2209movl 16(%esp),%esi2210movl 20(%esp),%ecx2211movl %esp,%edx2212addl $-128,%esp2213movups (%edi),%xmm02214andl $-16,%esp2215movups 16(%edi),%xmm12216movaps %xmm0,(%esp)2217movl %esp,%edi2218movaps %xmm1,16(%esp)2219movl $-1,%eax2220.byte 243,15,166,2082221movaps (%esp),%xmm02222movaps 16(%esp),%xmm12223movl %edx,%esp2224movl 12(%esp),%edi2225movups %xmm0,(%edi)2226movups %xmm1,16(%edi)2227popl %esi2228popl %edi2229ret2230.size padlock_sha256_blocks,.-.L_padlock_sha256_blocks_begin2231.globl padlock_sha512_blocks2232.type padlock_sha512_blocks,@function2233.align 162234padlock_sha512_blocks:2235.L_padlock_sha512_blocks_begin:2236#ifdef __CET__22372238.byte 243,15,30,2512239#endif22402241pushl %edi2242pushl %esi2243movl 12(%esp),%edi2244movl 16(%esp),%esi2245movl 20(%esp),%ecx2246movl %esp,%edx2247addl $-128,%esp2248movups (%edi),%xmm02249andl $-16,%esp2250movups 16(%edi),%xmm12251movups 32(%edi),%xmm22252movups 48(%edi),%xmm32253movaps %xmm0,(%esp)2254movl %esp,%edi2255movaps %xmm1,16(%esp)2256movaps %xmm2,32(%esp)2257movaps %xmm3,48(%esp)2258.byte 243,15,166,2242259movaps (%esp),%xmm02260movaps 16(%esp),%xmm12261movaps 32(%esp),%xmm22262movaps 48(%esp),%xmm32263movl %edx,%esp2264movl 12(%esp),%edi2265movups %xmm0,(%edi)2266movups %xmm1,16(%edi)2267movups %xmm2,32(%edi)2268movups %xmm3,48(%edi)2269popl %esi2270popl %edi2271ret2272.size padlock_sha512_blocks,.-.L_padlock_sha512_blocks_begin2273.byte 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,322274.byte 109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,652275.byte 77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,1012276.byte 110,115,115,108,46,111,114,103,62,02277.align 162278.data2279.align 42280.Lpadlock_saved_context:2281.long 022822283.section ".note.gnu.property", "a"2284.p2align 22285.long 1f - 0f2286.long 4f - 1f2287.long 522880:2289.asciz "GNU"22901:2291.p2align 22292.long 0xc00000022293.long 3f - 2f22942:2295.long 322963:2297.p2align 222984:2299#endif230023012302