Upload Kmake

This commit is contained in:
Gorochu
2026-05-26 23:36:42 -07:00
parent ba051b2f74
commit 555ec72358
41615 changed files with 13344630 additions and 1 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,699 @@
.text
.align 6,0x90
L_vpaes_consts:
.long 218628480,235210255,168496130,67568393
.long 252381056,17041926,33884169,51187212
.long 252645135,252645135,252645135,252645135
.long 1512730624,3266504856,1377990664,3401244816
.long 830229760,1275146365,2969422977,3447763452
.long 3411033600,2979783055,338359620,2782886510
.long 4209124096,907596821,221174255,1006095553
.long 191964160,3799684038,3164090317,1589111125
.long 182528256,1777043520,2877432650,3265356744
.long 1874708224,3503451415,3305285752,363511674
.long 1606117888,3487855781,1093350906,2384367825
.long 197121,67569157,134941193,202313229
.long 67569157,134941193,202313229,197121
.long 134941193,202313229,197121,67569157
.long 202313229,197121,67569157,134941193
.long 33619971,100992007,168364043,235736079
.long 235736079,33619971,100992007,168364043
.long 168364043,235736079,33619971,100992007
.long 100992007,168364043,235736079,33619971
.long 50462976,117835012,185207048,252579084
.long 252314880,51251460,117574920,184942860
.long 184682752,252054788,50987272,118359308
.long 118099200,185467140,251790600,50727180
.long 2946363062,528716217,1300004225,1881839624
.long 1532713819,1532713819,1532713819,1532713819
.long 3602276352,4288629033,3737020424,4153884961
.long 1354558464,32357713,2958822624,3775749553
.long 1201988352,132424512,1572796698,503232858
.long 2213177600,1597421020,4103937655,675398315
.long 2749646592,4273543773,1511898873,121693092
.long 3040248576,1103263732,2871565598,1608280554
.long 2236667136,2588920351,482954393,64377734
.long 3069987328,291237287,2117370568,3650299247
.long 533321216,3573750986,2572112006,1401264716
.long 1339849704,2721158661,548607111,3445553514
.long 2128193280,3054596040,2183486460,1257083700
.long 655635200,1165381986,3923443150,2344132524
.long 190078720,256924420,290342170,357187870
.long 1610966272,2263057382,4103205268,309794674
.long 2592527872,2233205587,1335446729,3402964816
.long 3973531904,3225098121,3002836325,1918774430
.long 3870401024,2102906079,2284471353,4117666579
.long 617007872,1021508343,366931923,691083277
.long 2528395776,3491914898,2968704004,1613121270
.long 3445188352,3247741094,844474987,4093578302
.long 651481088,1190302358,1689581232,574775300
.long 4289380608,206939853,2555985458,2489840491
.long 2130264064,327674451,3566485037,3349835193
.long 2470714624,316102159,3636825756,3393945945
.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
.byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83
.byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117
.byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105
.byte 118,101,114,115,105,116,121,41,0
.align 6,0x90
.align 4
__vpaes_preheat:
%ifdef __CET__
.byte 243,15,30,251
%endif
addl (%esp),%ebp
movdqa -48(%ebp),%xmm7
movdqa -16(%ebp),%xmm6
ret
.align 4
__vpaes_encrypt_core:
%ifdef __CET__
.byte 243,15,30,251
%endif
movl $16,%ecx
movl 240(%edx),%eax
movdqa %xmm6,%xmm1
movdqa (%ebp),%xmm2
pandn %xmm0,%xmm1
pand %xmm6,%xmm0
movdqu (%edx),%xmm5
.byte 102,15,56,0,208
movdqa 16(%ebp),%xmm0
pxor %xmm5,%xmm2
psrld $4,%xmm1
addl $16,%edx
.byte 102,15,56,0,193
leal 192(%ebp),%ebx
pxor %xmm2,%xmm0
jmp L000enc_entry
.align 4,0x90
L001enc_loop:
movdqa 32(%ebp),%xmm4
movdqa 48(%ebp),%xmm0
.byte 102,15,56,0,226
.byte 102,15,56,0,195
pxor %xmm5,%xmm4
movdqa 64(%ebp),%xmm5
pxor %xmm4,%xmm0
movdqa -64(%ebx,%ecx,1),%xmm1
.byte 102,15,56,0,234
movdqa 80(%ebp),%xmm2
movdqa (%ebx,%ecx,1),%xmm4
.byte 102,15,56,0,211
movdqa %xmm0,%xmm3
pxor %xmm5,%xmm2
.byte 102,15,56,0,193
addl $16,%edx
pxor %xmm2,%xmm0
.byte 102,15,56,0,220
addl $16,%ecx
pxor %xmm0,%xmm3
.byte 102,15,56,0,193
andl $48,%ecx
subl $1,%eax
pxor %xmm3,%xmm0
L000enc_entry:
movdqa %xmm6,%xmm1
movdqa -32(%ebp),%xmm5
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm6,%xmm0
.byte 102,15,56,0,232
movdqa %xmm7,%xmm3
pxor %xmm1,%xmm0
.byte 102,15,56,0,217
movdqa %xmm7,%xmm4
pxor %xmm5,%xmm3
.byte 102,15,56,0,224
movdqa %xmm7,%xmm2
pxor %xmm5,%xmm4
.byte 102,15,56,0,211
movdqa %xmm7,%xmm3
pxor %xmm0,%xmm2
.byte 102,15,56,0,220
movdqu (%edx),%xmm5
pxor %xmm1,%xmm3
jnz L001enc_loop
movdqa 96(%ebp),%xmm4
movdqa 112(%ebp),%xmm0
.byte 102,15,56,0,226
pxor %xmm5,%xmm4
.byte 102,15,56,0,195
movdqa 64(%ebx,%ecx,1),%xmm1
pxor %xmm4,%xmm0
.byte 102,15,56,0,193
ret
.align 4
__vpaes_decrypt_core:
%ifdef __CET__
.byte 243,15,30,251
%endif
leal 608(%ebp),%ebx
movl 240(%edx),%eax
movdqa %xmm6,%xmm1
movdqa -64(%ebx),%xmm2
pandn %xmm0,%xmm1
movl %eax,%ecx
psrld $4,%xmm1
movdqu (%edx),%xmm5
shll $4,%ecx
pand %xmm6,%xmm0
.byte 102,15,56,0,208
movdqa -48(%ebx),%xmm0
xorl $48,%ecx
.byte 102,15,56,0,193
andl $48,%ecx
pxor %xmm5,%xmm2
movdqa 176(%ebp),%xmm5
pxor %xmm2,%xmm0
addl $16,%edx
leal -352(%ebx,%ecx,1),%ecx
jmp L002dec_entry
.align 4,0x90
L003dec_loop:
movdqa -32(%ebx),%xmm4
movdqa -16(%ebx),%xmm1
.byte 102,15,56,0,226
.byte 102,15,56,0,203
pxor %xmm4,%xmm0
movdqa (%ebx),%xmm4
pxor %xmm1,%xmm0
movdqa 16(%ebx),%xmm1
.byte 102,15,56,0,226
.byte 102,15,56,0,197
.byte 102,15,56,0,203
pxor %xmm4,%xmm0
movdqa 32(%ebx),%xmm4
pxor %xmm1,%xmm0
movdqa 48(%ebx),%xmm1
.byte 102,15,56,0,226
.byte 102,15,56,0,197
.byte 102,15,56,0,203
pxor %xmm4,%xmm0
movdqa 64(%ebx),%xmm4
pxor %xmm1,%xmm0
movdqa 80(%ebx),%xmm1
.byte 102,15,56,0,226
.byte 102,15,56,0,197
.byte 102,15,56,0,203
pxor %xmm4,%xmm0
addl $16,%edx
.byte 102,15,58,15,237,12
pxor %xmm1,%xmm0
subl $1,%eax
L002dec_entry:
movdqa %xmm6,%xmm1
movdqa -32(%ebp),%xmm2
pandn %xmm0,%xmm1
pand %xmm6,%xmm0
psrld $4,%xmm1
.byte 102,15,56,0,208
movdqa %xmm7,%xmm3
pxor %xmm1,%xmm0
.byte 102,15,56,0,217
movdqa %xmm7,%xmm4
pxor %xmm2,%xmm3
.byte 102,15,56,0,224
pxor %xmm2,%xmm4
movdqa %xmm7,%xmm2
.byte 102,15,56,0,211
movdqa %xmm7,%xmm3
pxor %xmm0,%xmm2
.byte 102,15,56,0,220
movdqu (%edx),%xmm0
pxor %xmm1,%xmm3
jnz L003dec_loop
movdqa 96(%ebx),%xmm4
.byte 102,15,56,0,226
pxor %xmm0,%xmm4
movdqa 112(%ebx),%xmm0
movdqa (%ecx),%xmm2
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
.byte 102,15,56,0,194
ret
.align 4
__vpaes_schedule_core:
%ifdef __CET__
.byte 243,15,30,251
%endif
addl (%esp),%ebp
movdqu (%esi),%xmm0
movdqa 320(%ebp),%xmm2
movdqa %xmm0,%xmm3
leal (%ebp),%ebx
movdqa %xmm2,4(%esp)
call __vpaes_schedule_transform
movdqa %xmm0,%xmm7
testl %edi,%edi
jnz L004schedule_am_decrypting
movdqu %xmm0,(%edx)
jmp L005schedule_go
L004schedule_am_decrypting:
movdqa 256(%ebp,%ecx,1),%xmm1
.byte 102,15,56,0,217
movdqu %xmm3,(%edx)
xorl $48,%ecx
L005schedule_go:
cmpl $192,%eax
ja L006schedule_256
je L007schedule_192
L008schedule_128:
movl $10,%eax
L009loop_schedule_128:
call __vpaes_schedule_round
decl %eax
jz L010schedule_mangle_last
call __vpaes_schedule_mangle
jmp L009loop_schedule_128
.align 4,0x90
L007schedule_192:
movdqu 8(%esi),%xmm0
call __vpaes_schedule_transform
movdqa %xmm0,%xmm6
pxor %xmm4,%xmm4
movhlps %xmm4,%xmm6
movl $4,%eax
L011loop_schedule_192:
call __vpaes_schedule_round
.byte 102,15,58,15,198,8
call __vpaes_schedule_mangle
call __vpaes_schedule_192_smear
call __vpaes_schedule_mangle
call __vpaes_schedule_round
decl %eax
jz L010schedule_mangle_last
call __vpaes_schedule_mangle
call __vpaes_schedule_192_smear
jmp L011loop_schedule_192
.align 4,0x90
L006schedule_256:
movdqu 16(%esi),%xmm0
call __vpaes_schedule_transform
movl $7,%eax
L012loop_schedule_256:
call __vpaes_schedule_mangle
movdqa %xmm0,%xmm6
call __vpaes_schedule_round
decl %eax
jz L010schedule_mangle_last
call __vpaes_schedule_mangle
pshufd $255,%xmm0,%xmm0
movdqa %xmm7,20(%esp)
movdqa %xmm6,%xmm7
call L_vpaes_schedule_low_round
movdqa 20(%esp),%xmm7
jmp L012loop_schedule_256
.align 4,0x90
L010schedule_mangle_last:
leal 384(%ebp),%ebx
testl %edi,%edi
jnz L013schedule_mangle_last_dec
movdqa 256(%ebp,%ecx,1),%xmm1
.byte 102,15,56,0,193
leal 352(%ebp),%ebx
addl $32,%edx
L013schedule_mangle_last_dec:
addl $-16,%edx
pxor 336(%ebp),%xmm0
call __vpaes_schedule_transform
movdqu %xmm0,(%edx)
pxor %xmm0,%xmm0
pxor %xmm1,%xmm1
pxor %xmm2,%xmm2
pxor %xmm3,%xmm3
pxor %xmm4,%xmm4
pxor %xmm5,%xmm5
pxor %xmm6,%xmm6
pxor %xmm7,%xmm7
ret
.align 4
__vpaes_schedule_192_smear:
%ifdef __CET__
.byte 243,15,30,251
%endif
pshufd $128,%xmm6,%xmm1
pshufd $254,%xmm7,%xmm0
pxor %xmm1,%xmm6
pxor %xmm1,%xmm1
pxor %xmm0,%xmm6
movdqa %xmm6,%xmm0
movhlps %xmm1,%xmm6
ret
.align 4
__vpaes_schedule_round:
%ifdef __CET__
.byte 243,15,30,251
%endif
movdqa 8(%esp),%xmm2
pxor %xmm1,%xmm1
.byte 102,15,58,15,202,15
.byte 102,15,58,15,210,15
pxor %xmm1,%xmm7
pshufd $255,%xmm0,%xmm0
.byte 102,15,58,15,192,1
movdqa %xmm2,8(%esp)
L_vpaes_schedule_low_round:
movdqa %xmm7,%xmm1
pslldq $4,%xmm7
pxor %xmm1,%xmm7
movdqa %xmm7,%xmm1
pslldq $8,%xmm7
pxor %xmm1,%xmm7
pxor 336(%ebp),%xmm7
movdqa -16(%ebp),%xmm4
movdqa -48(%ebp),%xmm5
movdqa %xmm4,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm4,%xmm0
movdqa -32(%ebp),%xmm2
.byte 102,15,56,0,208
pxor %xmm1,%xmm0
movdqa %xmm5,%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
movdqa %xmm5,%xmm4
.byte 102,15,56,0,224
pxor %xmm2,%xmm4
movdqa %xmm5,%xmm2
.byte 102,15,56,0,211
pxor %xmm0,%xmm2
movdqa %xmm5,%xmm3
.byte 102,15,56,0,220
pxor %xmm1,%xmm3
movdqa 32(%ebp),%xmm4
.byte 102,15,56,0,226
movdqa 48(%ebp),%xmm0
.byte 102,15,56,0,195
pxor %xmm4,%xmm0
pxor %xmm7,%xmm0
movdqa %xmm0,%xmm7
ret
.align 4
__vpaes_schedule_transform:
%ifdef __CET__
.byte 243,15,30,251
%endif
movdqa -16(%ebp),%xmm2
movdqa %xmm2,%xmm1
pandn %xmm0,%xmm1
psrld $4,%xmm1
pand %xmm2,%xmm0
movdqa (%ebx),%xmm2
.byte 102,15,56,0,208
movdqa 16(%ebx),%xmm0
.byte 102,15,56,0,193
pxor %xmm2,%xmm0
ret
.align 4
__vpaes_schedule_mangle:
%ifdef __CET__
.byte 243,15,30,251
%endif
movdqa %xmm0,%xmm4
movdqa 128(%ebp),%xmm5
testl %edi,%edi
jnz L014schedule_mangle_dec
addl $16,%edx
pxor 336(%ebp),%xmm4
.byte 102,15,56,0,229
movdqa %xmm4,%xmm3
.byte 102,15,56,0,229
pxor %xmm4,%xmm3
.byte 102,15,56,0,229
pxor %xmm4,%xmm3
jmp L015schedule_mangle_both
.align 4,0x90
L014schedule_mangle_dec:
movdqa -16(%ebp),%xmm2
leal 416(%ebp),%esi
movdqa %xmm2,%xmm1
pandn %xmm4,%xmm1
psrld $4,%xmm1
pand %xmm2,%xmm4
movdqa (%esi),%xmm2
.byte 102,15,56,0,212
movdqa 16(%esi),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
.byte 102,15,56,0,221
movdqa 32(%esi),%xmm2
.byte 102,15,56,0,212
pxor %xmm3,%xmm2
movdqa 48(%esi),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
.byte 102,15,56,0,221
movdqa 64(%esi),%xmm2
.byte 102,15,56,0,212
pxor %xmm3,%xmm2
movdqa 80(%esi),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
.byte 102,15,56,0,221
movdqa 96(%esi),%xmm2
.byte 102,15,56,0,212
pxor %xmm3,%xmm2
movdqa 112(%esi),%xmm3
.byte 102,15,56,0,217
pxor %xmm2,%xmm3
addl $-16,%edx
L015schedule_mangle_both:
movdqa 256(%ebp,%ecx,1),%xmm1
.byte 102,15,56,0,217
addl $-16,%ecx
andl $48,%ecx
movdqu %xmm3,(%edx)
ret
.globl _vpaes_set_encrypt_key
.align 4
_vpaes_set_encrypt_key:
L_vpaes_set_encrypt_key_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 20(%esp),%esi
leal -56(%esp),%ebx
movl 24(%esp),%eax
andl $-16,%ebx
movl 28(%esp),%edx
xchgl %esp,%ebx
movl %ebx,48(%esp)
movl %eax,%ebx
shrl $5,%ebx
addl $5,%ebx
movl %ebx,240(%edx)
movl $48,%ecx
movl $0,%edi
leal L_vpaes_consts+0x30-L016pic_point,%ebp
call __vpaes_schedule_core
L016pic_point:
movl 48(%esp),%esp
xorl %eax,%eax
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _vpaes_set_decrypt_key
.align 4
_vpaes_set_decrypt_key:
L_vpaes_set_decrypt_key_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 20(%esp),%esi
leal -56(%esp),%ebx
movl 24(%esp),%eax
andl $-16,%ebx
movl 28(%esp),%edx
xchgl %esp,%ebx
movl %ebx,48(%esp)
movl %eax,%ebx
shrl $5,%ebx
addl $5,%ebx
movl %ebx,240(%edx)
shll $4,%ebx
leal 16(%edx,%ebx,1),%edx
movl $1,%edi
movl %eax,%ecx
shrl $1,%ecx
andl $32,%ecx
xorl $32,%ecx
leal L_vpaes_consts+0x30-L017pic_point,%ebp
call __vpaes_schedule_core
L017pic_point:
movl 48(%esp),%esp
xorl %eax,%eax
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _vpaes_encrypt
.align 4
_vpaes_encrypt:
L_vpaes_encrypt_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
leal L_vpaes_consts+0x30-L018pic_point,%ebp
call __vpaes_preheat
L018pic_point:
movl 20(%esp),%esi
leal -56(%esp),%ebx
movl 24(%esp),%edi
andl $-16,%ebx
movl 28(%esp),%edx
xchgl %esp,%ebx
movl %ebx,48(%esp)
movdqu (%esi),%xmm0
call __vpaes_encrypt_core
movdqu %xmm0,(%edi)
movl 48(%esp),%esp
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _vpaes_decrypt
.align 4
_vpaes_decrypt:
L_vpaes_decrypt_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
leal L_vpaes_consts+0x30-L019pic_point,%ebp
call __vpaes_preheat
L019pic_point:
movl 20(%esp),%esi
leal -56(%esp),%ebx
movl 24(%esp),%edi
andl $-16,%ebx
movl 28(%esp),%edx
xchgl %esp,%ebx
movl %ebx,48(%esp)
movdqu (%esi),%xmm0
call __vpaes_decrypt_core
movdqu %xmm0,(%edi)
movl 48(%esp),%esp
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _vpaes_cbc_encrypt
.align 4
_vpaes_cbc_encrypt:
L_vpaes_cbc_encrypt_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 20(%esp),%esi
movl 24(%esp),%edi
movl 28(%esp),%eax
movl 32(%esp),%edx
subl $16,%eax
jc L020cbc_abort
leal -56(%esp),%ebx
movl 36(%esp),%ebp
andl $-16,%ebx
movl 40(%esp),%ecx
xchgl %esp,%ebx
movdqu (%ebp),%xmm1
subl %esi,%edi
movl %ebx,48(%esp)
movl %edi,(%esp)
movl %edx,4(%esp)
movl %ebp,8(%esp)
movl %eax,%edi
leal L_vpaes_consts+0x30-L021pic_point,%ebp
call __vpaes_preheat
L021pic_point:
cmpl $0,%ecx
je L022cbc_dec_loop
jmp L023cbc_enc_loop
.align 4,0x90
L023cbc_enc_loop:
movdqu (%esi),%xmm0
pxor %xmm1,%xmm0
call __vpaes_encrypt_core
movl (%esp),%ebx
movl 4(%esp),%edx
movdqa %xmm0,%xmm1
movdqu %xmm0,(%ebx,%esi,1)
leal 16(%esi),%esi
subl $16,%edi
jnc L023cbc_enc_loop
jmp L024cbc_done
.align 4,0x90
L022cbc_dec_loop:
movdqu (%esi),%xmm0
movdqa %xmm1,16(%esp)
movdqa %xmm0,32(%esp)
call __vpaes_decrypt_core
movl (%esp),%ebx
movl 4(%esp),%edx
pxor 16(%esp),%xmm0
movdqa 32(%esp),%xmm1
movdqu %xmm0,(%ebx,%esi,1)
leal 16(%esi),%esi
subl $16,%edi
jnc L022cbc_dec_loop
L024cbc_done:
movl 8(%esp),%ebx
movl 48(%esp),%esp
movdqu %xmm1,(%ebx)
L020cbc_abort:
popl %edi
popl %esi
popl %ebx
popl %ebp
ret

View File

@ -0,0 +1,939 @@
.text
.globl _BF_encrypt
.align 4
_BF_encrypt:
L_BF_encrypt_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %ebp
pushl %ebx
movl 12(%esp),%ebx
movl 16(%esp),%ebp
pushl %esi
pushl %edi
# Load the 2 words
movl (%ebx),%edi
movl 4(%ebx),%esi
xorl %eax,%eax
movl (%ebp),%ebx
xorl %ecx,%ecx
xorl %ebx,%edi
# Round 0
movl 4(%ebp),%edx
movl %edi,%ebx
xorl %edx,%esi
shrl $16,%ebx
movl %edi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%esi
# Round 1
movl 8(%ebp),%edx
movl %esi,%ebx
xorl %edx,%edi
shrl $16,%ebx
movl %esi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%edi
# Round 2
movl 12(%ebp),%edx
movl %edi,%ebx
xorl %edx,%esi
shrl $16,%ebx
movl %edi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%esi
# Round 3
movl 16(%ebp),%edx
movl %esi,%ebx
xorl %edx,%edi
shrl $16,%ebx
movl %esi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%edi
# Round 4
movl 20(%ebp),%edx
movl %edi,%ebx
xorl %edx,%esi
shrl $16,%ebx
movl %edi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%esi
# Round 5
movl 24(%ebp),%edx
movl %esi,%ebx
xorl %edx,%edi
shrl $16,%ebx
movl %esi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%edi
# Round 6
movl 28(%ebp),%edx
movl %edi,%ebx
xorl %edx,%esi
shrl $16,%ebx
movl %edi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%esi
# Round 7
movl 32(%ebp),%edx
movl %esi,%ebx
xorl %edx,%edi
shrl $16,%ebx
movl %esi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%edi
# Round 8
movl 36(%ebp),%edx
movl %edi,%ebx
xorl %edx,%esi
shrl $16,%ebx
movl %edi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%esi
# Round 9
movl 40(%ebp),%edx
movl %esi,%ebx
xorl %edx,%edi
shrl $16,%ebx
movl %esi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%edi
# Round 10
movl 44(%ebp),%edx
movl %edi,%ebx
xorl %edx,%esi
shrl $16,%ebx
movl %edi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%esi
# Round 11
movl 48(%ebp),%edx
movl %esi,%ebx
xorl %edx,%edi
shrl $16,%ebx
movl %esi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%edi
# Round 12
movl 52(%ebp),%edx
movl %edi,%ebx
xorl %edx,%esi
shrl $16,%ebx
movl %edi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%esi
# Round 13
movl 56(%ebp),%edx
movl %esi,%ebx
xorl %edx,%edi
shrl $16,%ebx
movl %esi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%edi
# Round 14
movl 60(%ebp),%edx
movl %edi,%ebx
xorl %edx,%esi
shrl $16,%ebx
movl %edi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%esi
# Round 15
movl 64(%ebp),%edx
movl %esi,%ebx
xorl %edx,%edi
shrl $16,%ebx
movl %esi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
# Load parameter 0 (16) enc=1
movl 20(%esp),%eax
xorl %ebx,%edi
movl 68(%ebp),%edx
xorl %edx,%esi
movl %edi,4(%eax)
movl %esi,(%eax)
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _BF_decrypt
.align 4
_BF_decrypt:
L_BF_decrypt_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %ebp
pushl %ebx
movl 12(%esp),%ebx
movl 16(%esp),%ebp
pushl %esi
pushl %edi
# Load the 2 words
movl (%ebx),%edi
movl 4(%ebx),%esi
xorl %eax,%eax
movl 68(%ebp),%ebx
xorl %ecx,%ecx
xorl %ebx,%edi
# Round 16
movl 64(%ebp),%edx
movl %edi,%ebx
xorl %edx,%esi
shrl $16,%ebx
movl %edi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%esi
# Round 15
movl 60(%ebp),%edx
movl %esi,%ebx
xorl %edx,%edi
shrl $16,%ebx
movl %esi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%edi
# Round 14
movl 56(%ebp),%edx
movl %edi,%ebx
xorl %edx,%esi
shrl $16,%ebx
movl %edi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%esi
# Round 13
movl 52(%ebp),%edx
movl %esi,%ebx
xorl %edx,%edi
shrl $16,%ebx
movl %esi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%edi
# Round 12
movl 48(%ebp),%edx
movl %edi,%ebx
xorl %edx,%esi
shrl $16,%ebx
movl %edi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%esi
# Round 11
movl 44(%ebp),%edx
movl %esi,%ebx
xorl %edx,%edi
shrl $16,%ebx
movl %esi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%edi
# Round 10
movl 40(%ebp),%edx
movl %edi,%ebx
xorl %edx,%esi
shrl $16,%ebx
movl %edi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%esi
# Round 9
movl 36(%ebp),%edx
movl %esi,%ebx
xorl %edx,%edi
shrl $16,%ebx
movl %esi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%edi
# Round 8
movl 32(%ebp),%edx
movl %edi,%ebx
xorl %edx,%esi
shrl $16,%ebx
movl %edi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%esi
# Round 7
movl 28(%ebp),%edx
movl %esi,%ebx
xorl %edx,%edi
shrl $16,%ebx
movl %esi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%edi
# Round 6
movl 24(%ebp),%edx
movl %edi,%ebx
xorl %edx,%esi
shrl $16,%ebx
movl %edi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%esi
# Round 5
movl 20(%ebp),%edx
movl %esi,%ebx
xorl %edx,%edi
shrl $16,%ebx
movl %esi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%edi
# Round 4
movl 16(%ebp),%edx
movl %edi,%ebx
xorl %edx,%esi
shrl $16,%ebx
movl %edi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%esi
# Round 3
movl 12(%ebp),%edx
movl %esi,%ebx
xorl %edx,%edi
shrl $16,%ebx
movl %esi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%edi
# Round 2
movl 8(%ebp),%edx
movl %edi,%ebx
xorl %edx,%esi
shrl $16,%ebx
movl %edi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
xorl %eax,%eax
xorl %ebx,%esi
# Round 1
movl 4(%ebp),%edx
movl %esi,%ebx
xorl %edx,%edi
shrl $16,%ebx
movl %esi,%edx
movb %bh,%al
andl $255,%ebx
movb %dh,%cl
andl $255,%edx
movl 72(%ebp,%eax,4),%eax
movl 1096(%ebp,%ebx,4),%ebx
addl %eax,%ebx
movl 2120(%ebp,%ecx,4),%eax
xorl %eax,%ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx,%ebx
# Load parameter 0 (1) enc=0
movl 20(%esp),%eax
xorl %ebx,%edi
movl (%ebp),%edx
xorl %edx,%esi
movl %edi,4(%eax)
movl %esi,(%eax)
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _BF_cbc_encrypt
.align 4
_BF_cbc_encrypt:
L_BF_cbc_encrypt_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 28(%esp),%ebp
# getting iv ptr from parameter 4
movl 36(%esp),%ebx
movl (%ebx),%esi
movl 4(%ebx),%edi
pushl %edi
pushl %esi
pushl %edi
pushl %esi
movl %esp,%ebx
movl 36(%esp),%esi
movl 40(%esp),%edi
# getting encrypt flag from parameter 5
movl 56(%esp),%ecx
# get and push parameter 3
movl 48(%esp),%eax
pushl %eax
pushl %ebx
cmpl $0,%ecx
jz L000decrypt
andl $4294967288,%ebp
movl 8(%esp),%eax
movl 12(%esp),%ebx
jz L001encrypt_finish
L002encrypt_loop:
movl (%esi),%ecx
movl 4(%esi),%edx
xorl %ecx,%eax
xorl %edx,%ebx
bswap %eax
bswap %ebx
movl %eax,8(%esp)
movl %ebx,12(%esp)
call L_BF_encrypt_begin
movl 8(%esp),%eax
movl 12(%esp),%ebx
bswap %eax
bswap %ebx
movl %eax,(%edi)
movl %ebx,4(%edi)
addl $8,%esi
addl $8,%edi
subl $8,%ebp
jnz L002encrypt_loop
L001encrypt_finish:
movl 52(%esp),%ebp
andl $7,%ebp
jz L003finish
call L004PIC_point
L004PIC_point:
popl %edx
leal L005cbc_enc_jmp_table-L004PIC_point(%edx),%ecx
movl (%ecx,%ebp,4),%ebp
addl %edx,%ebp
xorl %ecx,%ecx
xorl %edx,%edx
jmp *%ebp
L006ej7:
%ifdef __CET__
.byte 243,15,30,251
%endif
movb 6(%esi),%dh
shll $8,%edx
L007ej6:
%ifdef __CET__
.byte 243,15,30,251
%endif
movb 5(%esi),%dh
L008ej5:
%ifdef __CET__
.byte 243,15,30,251
%endif
movb 4(%esi),%dl
L009ej4:
%ifdef __CET__
.byte 243,15,30,251
%endif
movl (%esi),%ecx
jmp L010ejend
L011ej3:
%ifdef __CET__
.byte 243,15,30,251
%endif
movb 2(%esi),%ch
shll $8,%ecx
L012ej2:
%ifdef __CET__
.byte 243,15,30,251
%endif
movb 1(%esi),%ch
L013ej1:
%ifdef __CET__
.byte 243,15,30,251
%endif
movb (%esi),%cl
L010ejend:
xorl %ecx,%eax
xorl %edx,%ebx
bswap %eax
bswap %ebx
movl %eax,8(%esp)
movl %ebx,12(%esp)
call L_BF_encrypt_begin
movl 8(%esp),%eax
movl 12(%esp),%ebx
bswap %eax
bswap %ebx
movl %eax,(%edi)
movl %ebx,4(%edi)
jmp L003finish
L000decrypt:
andl $4294967288,%ebp
movl 16(%esp),%eax
movl 20(%esp),%ebx
jz L014decrypt_finish
L015decrypt_loop:
movl (%esi),%eax
movl 4(%esi),%ebx
bswap %eax
bswap %ebx
movl %eax,8(%esp)
movl %ebx,12(%esp)
call L_BF_decrypt_begin
movl 8(%esp),%eax
movl 12(%esp),%ebx
bswap %eax
bswap %ebx
movl 16(%esp),%ecx
movl 20(%esp),%edx
xorl %eax,%ecx
xorl %ebx,%edx
movl (%esi),%eax
movl 4(%esi),%ebx
movl %ecx,(%edi)
movl %edx,4(%edi)
movl %eax,16(%esp)
movl %ebx,20(%esp)
addl $8,%esi
addl $8,%edi
subl $8,%ebp
jnz L015decrypt_loop
L014decrypt_finish:
movl 52(%esp),%ebp
andl $7,%ebp
jz L003finish
movl (%esi),%eax
movl 4(%esi),%ebx
bswap %eax
bswap %ebx
movl %eax,8(%esp)
movl %ebx,12(%esp)
call L_BF_decrypt_begin
movl 8(%esp),%eax
movl 12(%esp),%ebx
bswap %eax
bswap %ebx
movl 16(%esp),%ecx
movl 20(%esp),%edx
xorl %eax,%ecx
xorl %ebx,%edx
movl (%esi),%eax
movl 4(%esi),%ebx
L016dj7:
rorl $16,%edx
movb %dl,6(%edi)
shrl $16,%edx
L017dj6:
movb %dh,5(%edi)
L018dj5:
movb %dl,4(%edi)
L019dj4:
movl %ecx,(%edi)
jmp L020djend
L021dj3:
rorl $16,%ecx
movb %cl,2(%edi)
shll $16,%ecx
L022dj2:
movb %ch,1(%esi)
L023dj1:
movb %cl,(%esi)
L020djend:
jmp L003finish
L003finish:
movl 60(%esp),%ecx
addl $24,%esp
movl %eax,(%ecx)
movl %ebx,4(%ecx)
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.align 6,0x90
L005cbc_enc_jmp_table:
.long 0
.long L013ej1-L004PIC_point
.long L012ej2-L004PIC_point
.long L011ej3-L004PIC_point
.long L009ej4-L004PIC_point
.long L008ej5-L004PIC_point
.long L007ej6-L004PIC_point
.long L006ej7-L004PIC_point
.align 6,0x90

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,358 @@
.text
.align 4
__mul_1x1_mmx:
%ifdef __CET__
.byte 243,15,30,251
%endif
subl $36,%esp
movl %eax,%ecx
leal (%eax,%eax,1),%edx
andl $1073741823,%ecx
leal (%edx,%edx,1),%ebp
movl $0,(%esp)
andl $2147483647,%edx
movd %eax,%mm2
movd %ebx,%mm3
movl %ecx,4(%esp)
xorl %edx,%ecx
pxor %mm5,%mm5
pxor %mm4,%mm4
movl %edx,8(%esp)
xorl %ebp,%edx
movl %ecx,12(%esp)
pcmpgtd %mm2,%mm5
paddd %mm2,%mm2
xorl %edx,%ecx
movl %ebp,16(%esp)
xorl %edx,%ebp
pand %mm3,%mm5
pcmpgtd %mm2,%mm4
movl %ecx,20(%esp)
xorl %ecx,%ebp
psllq $31,%mm5
pand %mm3,%mm4
movl %edx,24(%esp)
movl $7,%esi
movl %ebp,28(%esp)
movl %esi,%ebp
andl %ebx,%esi
shrl $3,%ebx
movl %ebp,%edi
psllq $30,%mm4
andl %ebx,%edi
shrl $3,%ebx
movd (%esp,%esi,4),%mm0
movl %ebp,%esi
andl %ebx,%esi
shrl $3,%ebx
movd (%esp,%edi,4),%mm2
movl %ebp,%edi
psllq $3,%mm2
andl %ebx,%edi
shrl $3,%ebx
pxor %mm2,%mm0
movd (%esp,%esi,4),%mm1
movl %ebp,%esi
psllq $6,%mm1
andl %ebx,%esi
shrl $3,%ebx
pxor %mm1,%mm0
movd (%esp,%edi,4),%mm2
movl %ebp,%edi
psllq $9,%mm2
andl %ebx,%edi
shrl $3,%ebx
pxor %mm2,%mm0
movd (%esp,%esi,4),%mm1
movl %ebp,%esi
psllq $12,%mm1
andl %ebx,%esi
shrl $3,%ebx
pxor %mm1,%mm0
movd (%esp,%edi,4),%mm2
movl %ebp,%edi
psllq $15,%mm2
andl %ebx,%edi
shrl $3,%ebx
pxor %mm2,%mm0
movd (%esp,%esi,4),%mm1
movl %ebp,%esi
psllq $18,%mm1
andl %ebx,%esi
shrl $3,%ebx
pxor %mm1,%mm0
movd (%esp,%edi,4),%mm2
movl %ebp,%edi
psllq $21,%mm2
andl %ebx,%edi
shrl $3,%ebx
pxor %mm2,%mm0
movd (%esp,%esi,4),%mm1
movl %ebp,%esi
psllq $24,%mm1
andl %ebx,%esi
shrl $3,%ebx
pxor %mm1,%mm0
movd (%esp,%edi,4),%mm2
pxor %mm4,%mm0
psllq $27,%mm2
pxor %mm2,%mm0
movd (%esp,%esi,4),%mm1
pxor %mm5,%mm0
psllq $30,%mm1
addl $36,%esp
pxor %mm1,%mm0
ret
.align 4
__mul_1x1_ialu:
%ifdef __CET__
.byte 243,15,30,251
%endif
subl $36,%esp
movl %eax,%ecx
leal (%eax,%eax,1),%edx
leal (,%eax,4),%ebp
andl $1073741823,%ecx
leal (%eax,%eax,1),%edi
sarl $31,%eax
movl $0,(%esp)
andl $2147483647,%edx
movl %ecx,4(%esp)
xorl %edx,%ecx
movl %edx,8(%esp)
xorl %ebp,%edx
movl %ecx,12(%esp)
xorl %edx,%ecx
movl %ebp,16(%esp)
xorl %edx,%ebp
movl %ecx,20(%esp)
xorl %ecx,%ebp
sarl $31,%edi
andl %ebx,%eax
movl %edx,24(%esp)
andl %ebx,%edi
movl %ebp,28(%esp)
movl %eax,%edx
shll $31,%eax
movl %edi,%ecx
shrl $1,%edx
movl $7,%esi
shll $30,%edi
andl %ebx,%esi
shrl $2,%ecx
xorl %edi,%eax
shrl $3,%ebx
movl $7,%edi
andl %ebx,%edi
shrl $3,%ebx
xorl %ecx,%edx
xorl (%esp,%esi,4),%eax
movl $7,%esi
andl %ebx,%esi
shrl $3,%ebx
movl (%esp,%edi,4),%ebp
movl $7,%edi
movl %ebp,%ecx
shll $3,%ebp
andl %ebx,%edi
shrl $29,%ecx
xorl %ebp,%eax
shrl $3,%ebx
xorl %ecx,%edx
movl (%esp,%esi,4),%ecx
movl $7,%esi
movl %ecx,%ebp
shll $6,%ecx
andl %ebx,%esi
shrl $26,%ebp
xorl %ecx,%eax
shrl $3,%ebx
xorl %ebp,%edx
movl (%esp,%edi,4),%ebp
movl $7,%edi
movl %ebp,%ecx
shll $9,%ebp
andl %ebx,%edi
shrl $23,%ecx
xorl %ebp,%eax
shrl $3,%ebx
xorl %ecx,%edx
movl (%esp,%esi,4),%ecx
movl $7,%esi
movl %ecx,%ebp
shll $12,%ecx
andl %ebx,%esi
shrl $20,%ebp
xorl %ecx,%eax
shrl $3,%ebx
xorl %ebp,%edx
movl (%esp,%edi,4),%ebp
movl $7,%edi
movl %ebp,%ecx
shll $15,%ebp
andl %ebx,%edi
shrl $17,%ecx
xorl %ebp,%eax
shrl $3,%ebx
xorl %ecx,%edx
movl (%esp,%esi,4),%ecx
movl $7,%esi
movl %ecx,%ebp
shll $18,%ecx
andl %ebx,%esi
shrl $14,%ebp
xorl %ecx,%eax
shrl $3,%ebx
xorl %ebp,%edx
movl (%esp,%edi,4),%ebp
movl $7,%edi
movl %ebp,%ecx
shll $21,%ebp
andl %ebx,%edi
shrl $11,%ecx
xorl %ebp,%eax
shrl $3,%ebx
xorl %ecx,%edx
movl (%esp,%esi,4),%ecx
movl $7,%esi
movl %ecx,%ebp
shll $24,%ecx
andl %ebx,%esi
shrl $8,%ebp
xorl %ecx,%eax
shrl $3,%ebx
xorl %ebp,%edx
movl (%esp,%edi,4),%ebp
movl %ebp,%ecx
shll $27,%ebp
movl (%esp,%esi,4),%edi
shrl $5,%ecx
movl %edi,%esi
xorl %ebp,%eax
shll $30,%edi
xorl %ecx,%edx
shrl $2,%esi
xorl %edi,%eax
xorl %esi,%edx
addl $36,%esp
ret
.globl _bn_GF2m_mul_2x2
.align 4
_bn_GF2m_mul_2x2:
L_bn_GF2m_mul_2x2_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
call L000PIC_me_up
L000PIC_me_up:
popl %edx
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L000PIC_me_up(%edx),%edx
movl (%edx),%eax
movl 4(%edx),%edx
testl $8388608,%eax
jz L001ialu
testl $16777216,%eax
jz L002mmx
testl $2,%edx
jz L002mmx
movups 8(%esp),%xmm0
shufps $177,%xmm0,%xmm0
.byte 102,15,58,68,192,1
movl 4(%esp),%eax
movups %xmm0,(%eax)
ret
.align 4,0x90
L002mmx:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 24(%esp),%eax
movl 32(%esp),%ebx
call __mul_1x1_mmx
movq %mm0,%mm7
movl 28(%esp),%eax
movl 36(%esp),%ebx
call __mul_1x1_mmx
movq %mm0,%mm6
movl 24(%esp),%eax
movl 32(%esp),%ebx
xorl 28(%esp),%eax
xorl 36(%esp),%ebx
call __mul_1x1_mmx
pxor %mm7,%mm0
movl 20(%esp),%eax
pxor %mm6,%mm0
movq %mm0,%mm2
psllq $32,%mm0
popl %edi
psrlq $32,%mm2
popl %esi
pxor %mm6,%mm0
popl %ebx
pxor %mm7,%mm2
movq %mm0,(%eax)
popl %ebp
movq %mm2,8(%eax)
emms
ret
.align 4,0x90
L001ialu:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
subl $20,%esp
movl 44(%esp),%eax
movl 52(%esp),%ebx
call __mul_1x1_ialu
movl %eax,8(%esp)
movl %edx,12(%esp)
movl 48(%esp),%eax
movl 56(%esp),%ebx
call __mul_1x1_ialu
movl %eax,(%esp)
movl %edx,4(%esp)
movl 44(%esp),%eax
movl 52(%esp),%ebx
xorl 48(%esp),%eax
xorl 56(%esp),%ebx
call __mul_1x1_ialu
movl 40(%esp),%ebp
movl (%esp),%ebx
movl 4(%esp),%ecx
movl 8(%esp),%edi
movl 12(%esp),%esi
xorl %edx,%eax
xorl %ecx,%edx
xorl %ebx,%eax
movl %ebx,(%ebp)
xorl %edi,%edx
movl %esi,12(%ebp)
xorl %esi,%eax
addl $20,%esp
xorl %esi,%edx
popl %edi
xorl %edx,%eax
popl %esi
movl %edx,8(%ebp)
popl %ebx
movl %eax,4(%ebp)
popl %ebp
ret
.byte 71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105
.byte 99,97,116,105,111,110,32,102,111,114,32,120,56,54,44,32
.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
.byte 62,0
.section __IMPORT,__pointers,non_lazy_symbol_pointers
L_OPENSSL_ia32cap_P$non_lazy_ptr:
.indirect_symbol _OPENSSL_ia32cap_P
.long 0
.comm _OPENSSL_ia32cap_P,16,2

View File

@ -0,0 +1,482 @@
.text
.globl _bn_mul_mont
.align 4
_bn_mul_mont:
L_bn_mul_mont_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
xorl %eax,%eax
movl 40(%esp),%edi
cmpl $4,%edi
jl L000just_leave
leal 20(%esp),%esi
leal 24(%esp),%edx
addl $2,%edi
negl %edi
leal -32(%esp,%edi,4),%ebp
negl %edi
movl %ebp,%eax
subl %edx,%eax
andl $2047,%eax
subl %eax,%ebp
xorl %ebp,%edx
andl $2048,%edx
xorl $2048,%edx
subl %edx,%ebp
andl $-64,%ebp
movl %esp,%eax
subl %ebp,%eax
andl $-4096,%eax
movl %esp,%edx
leal (%ebp,%eax,1),%esp
movl (%esp),%eax
cmpl %ebp,%esp
ja L001page_walk
jmp L002page_walk_done
.align 4,0x90
L001page_walk:
leal -4096(%esp),%esp
movl (%esp),%eax
cmpl %ebp,%esp
ja L001page_walk
L002page_walk_done:
movl (%esi),%eax
movl 4(%esi),%ebx
movl 8(%esi),%ecx
movl 12(%esi),%ebp
movl 16(%esi),%esi
movl (%esi),%esi
movl %eax,4(%esp)
movl %ebx,8(%esp)
movl %ecx,12(%esp)
movl %ebp,16(%esp)
movl %esi,20(%esp)
leal -3(%edi),%ebx
movl %edx,24(%esp)
call L003PIC_me_up
L003PIC_me_up:
popl %eax
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L003PIC_me_up(%eax),%eax
btl $26,(%eax)
jnc L004non_sse2
movl $-1,%eax
movd %eax,%mm7
movl 8(%esp),%esi
movl 12(%esp),%edi
movl 16(%esp),%ebp
xorl %edx,%edx
xorl %ecx,%ecx
movd (%edi),%mm4
movd (%esi),%mm5
movd (%ebp),%mm3
pmuludq %mm4,%mm5
movq %mm5,%mm2
movq %mm5,%mm0
pand %mm7,%mm0
pmuludq 20(%esp),%mm5
pmuludq %mm5,%mm3
paddq %mm0,%mm3
movd 4(%ebp),%mm1
movd 4(%esi),%mm0
psrlq $32,%mm2
psrlq $32,%mm3
incl %ecx
.align 4,0x90
L0051st:
pmuludq %mm4,%mm0
pmuludq %mm5,%mm1
paddq %mm0,%mm2
paddq %mm1,%mm3
movq %mm2,%mm0
pand %mm7,%mm0
movd 4(%ebp,%ecx,4),%mm1
paddq %mm0,%mm3
movd 4(%esi,%ecx,4),%mm0
psrlq $32,%mm2
movd %mm3,28(%esp,%ecx,4)
psrlq $32,%mm3
leal 1(%ecx),%ecx
cmpl %ebx,%ecx
jl L0051st
pmuludq %mm4,%mm0
pmuludq %mm5,%mm1
paddq %mm0,%mm2
paddq %mm1,%mm3
movq %mm2,%mm0
pand %mm7,%mm0
paddq %mm0,%mm3
movd %mm3,28(%esp,%ecx,4)
psrlq $32,%mm2
psrlq $32,%mm3
paddq %mm2,%mm3
movq %mm3,32(%esp,%ebx,4)
incl %edx
L006outer:
xorl %ecx,%ecx
movd (%edi,%edx,4),%mm4
movd (%esi),%mm5
movd 32(%esp),%mm6
movd (%ebp),%mm3
pmuludq %mm4,%mm5
paddq %mm6,%mm5
movq %mm5,%mm0
movq %mm5,%mm2
pand %mm7,%mm0
pmuludq 20(%esp),%mm5
pmuludq %mm5,%mm3
paddq %mm0,%mm3
movd 36(%esp),%mm6
movd 4(%ebp),%mm1
movd 4(%esi),%mm0
psrlq $32,%mm2
psrlq $32,%mm3
paddq %mm6,%mm2
incl %ecx
decl %ebx
L007inner:
pmuludq %mm4,%mm0
pmuludq %mm5,%mm1
paddq %mm0,%mm2
paddq %mm1,%mm3
movq %mm2,%mm0
movd 36(%esp,%ecx,4),%mm6
pand %mm7,%mm0
movd 4(%ebp,%ecx,4),%mm1
paddq %mm0,%mm3
movd 4(%esi,%ecx,4),%mm0
psrlq $32,%mm2
movd %mm3,28(%esp,%ecx,4)
psrlq $32,%mm3
paddq %mm6,%mm2
decl %ebx
leal 1(%ecx),%ecx
jnz L007inner
movl %ecx,%ebx
pmuludq %mm4,%mm0
pmuludq %mm5,%mm1
paddq %mm0,%mm2
paddq %mm1,%mm3
movq %mm2,%mm0
pand %mm7,%mm0
paddq %mm0,%mm3
movd %mm3,28(%esp,%ecx,4)
psrlq $32,%mm2
psrlq $32,%mm3
movd 36(%esp,%ebx,4),%mm6
paddq %mm2,%mm3
paddq %mm6,%mm3
movq %mm3,32(%esp,%ebx,4)
leal 1(%edx),%edx
cmpl %ebx,%edx
jle L006outer
emms
jmp L008common_tail
.align 4,0x90
L004non_sse2:
movl 8(%esp),%esi
leal 1(%ebx),%ebp
movl 12(%esp),%edi
xorl %ecx,%ecx
movl %esi,%edx
andl $1,%ebp
subl %edi,%edx
leal 4(%edi,%ebx,4),%eax
orl %edx,%ebp
movl (%edi),%edi
jz L009bn_sqr_mont
movl %eax,28(%esp)
movl (%esi),%eax
xorl %edx,%edx
.align 4,0x90
L010mull:
movl %edx,%ebp
mull %edi
addl %eax,%ebp
leal 1(%ecx),%ecx
adcl $0,%edx
movl (%esi,%ecx,4),%eax
cmpl %ebx,%ecx
movl %ebp,28(%esp,%ecx,4)
jl L010mull
movl %edx,%ebp
mull %edi
movl 20(%esp),%edi
addl %ebp,%eax
movl 16(%esp),%esi
adcl $0,%edx
imull 32(%esp),%edi
movl %eax,32(%esp,%ebx,4)
xorl %ecx,%ecx
movl %edx,36(%esp,%ebx,4)
movl %ecx,40(%esp,%ebx,4)
movl (%esi),%eax
mull %edi
addl 32(%esp),%eax
movl 4(%esi),%eax
adcl $0,%edx
incl %ecx
jmp L0112ndmadd
.align 4,0x90
L0121stmadd:
movl %edx,%ebp
mull %edi
addl 32(%esp,%ecx,4),%ebp
leal 1(%ecx),%ecx
adcl $0,%edx
addl %eax,%ebp
movl (%esi,%ecx,4),%eax
adcl $0,%edx
cmpl %ebx,%ecx
movl %ebp,28(%esp,%ecx,4)
jl L0121stmadd
movl %edx,%ebp
mull %edi
addl 32(%esp,%ebx,4),%eax
movl 20(%esp),%edi
adcl $0,%edx
movl 16(%esp),%esi
addl %eax,%ebp
adcl $0,%edx
imull 32(%esp),%edi
xorl %ecx,%ecx
addl 36(%esp,%ebx,4),%edx
movl %ebp,32(%esp,%ebx,4)
adcl $0,%ecx
movl (%esi),%eax
movl %edx,36(%esp,%ebx,4)
movl %ecx,40(%esp,%ebx,4)
mull %edi
addl 32(%esp),%eax
movl 4(%esi),%eax
adcl $0,%edx
movl $1,%ecx
.align 4,0x90
L0112ndmadd:
movl %edx,%ebp
mull %edi
addl 32(%esp,%ecx,4),%ebp
leal 1(%ecx),%ecx
adcl $0,%edx
addl %eax,%ebp
movl (%esi,%ecx,4),%eax
adcl $0,%edx
cmpl %ebx,%ecx
movl %ebp,24(%esp,%ecx,4)
jl L0112ndmadd
movl %edx,%ebp
mull %edi
addl 32(%esp,%ebx,4),%ebp
adcl $0,%edx
addl %eax,%ebp
adcl $0,%edx
movl %ebp,28(%esp,%ebx,4)
xorl %eax,%eax
movl 12(%esp),%ecx
addl 36(%esp,%ebx,4),%edx
adcl 40(%esp,%ebx,4),%eax
leal 4(%ecx),%ecx
movl %edx,32(%esp,%ebx,4)
cmpl 28(%esp),%ecx
movl %eax,36(%esp,%ebx,4)
je L008common_tail
movl (%ecx),%edi
movl 8(%esp),%esi
movl %ecx,12(%esp)
xorl %ecx,%ecx
xorl %edx,%edx
movl (%esi),%eax
jmp L0121stmadd
.align 4,0x90
L009bn_sqr_mont:
movl %ebx,(%esp)
movl %ecx,12(%esp)
movl %edi,%eax
mull %edi
movl %eax,32(%esp)
movl %edx,%ebx
shrl $1,%edx
andl $1,%ebx
incl %ecx
.align 4,0x90
L013sqr:
movl (%esi,%ecx,4),%eax
movl %edx,%ebp
mull %edi
addl %ebp,%eax
leal 1(%ecx),%ecx
adcl $0,%edx
leal (%ebx,%eax,2),%ebp
shrl $31,%eax
cmpl (%esp),%ecx
movl %eax,%ebx
movl %ebp,28(%esp,%ecx,4)
jl L013sqr
movl (%esi,%ecx,4),%eax
movl %edx,%ebp
mull %edi
addl %ebp,%eax
movl 20(%esp),%edi
adcl $0,%edx
movl 16(%esp),%esi
leal (%ebx,%eax,2),%ebp
imull 32(%esp),%edi
shrl $31,%eax
movl %ebp,32(%esp,%ecx,4)
leal (%eax,%edx,2),%ebp
movl (%esi),%eax
shrl $31,%edx
movl %ebp,36(%esp,%ecx,4)
movl %edx,40(%esp,%ecx,4)
mull %edi
addl 32(%esp),%eax
movl %ecx,%ebx
adcl $0,%edx
movl 4(%esi),%eax
movl $1,%ecx
.align 4,0x90
L0143rdmadd:
movl %edx,%ebp
mull %edi
addl 32(%esp,%ecx,4),%ebp
adcl $0,%edx
addl %eax,%ebp
movl 4(%esi,%ecx,4),%eax
adcl $0,%edx
movl %ebp,28(%esp,%ecx,4)
movl %edx,%ebp
mull %edi
addl 36(%esp,%ecx,4),%ebp
leal 2(%ecx),%ecx
adcl $0,%edx
addl %eax,%ebp
movl (%esi,%ecx,4),%eax
adcl $0,%edx
cmpl %ebx,%ecx
movl %ebp,24(%esp,%ecx,4)
jl L0143rdmadd
movl %edx,%ebp
mull %edi
addl 32(%esp,%ebx,4),%ebp
adcl $0,%edx
addl %eax,%ebp
adcl $0,%edx
movl %ebp,28(%esp,%ebx,4)
movl 12(%esp),%ecx
xorl %eax,%eax
movl 8(%esp),%esi
addl 36(%esp,%ebx,4),%edx
adcl 40(%esp,%ebx,4),%eax
movl %edx,32(%esp,%ebx,4)
cmpl %ebx,%ecx
movl %eax,36(%esp,%ebx,4)
je L008common_tail
movl 4(%esi,%ecx,4),%edi
leal 1(%ecx),%ecx
movl %edi,%eax
movl %ecx,12(%esp)
mull %edi
addl 32(%esp,%ecx,4),%eax
adcl $0,%edx
movl %eax,32(%esp,%ecx,4)
xorl %ebp,%ebp
cmpl %ebx,%ecx
leal 1(%ecx),%ecx
je L015sqrlast
movl %edx,%ebx
shrl $1,%edx
andl $1,%ebx
.align 4,0x90
L016sqradd:
movl (%esi,%ecx,4),%eax
movl %edx,%ebp
mull %edi
addl %ebp,%eax
leal (%eax,%eax,1),%ebp
adcl $0,%edx
shrl $31,%eax
addl 32(%esp,%ecx,4),%ebp
leal 1(%ecx),%ecx
adcl $0,%eax
addl %ebx,%ebp
adcl $0,%eax
cmpl (%esp),%ecx
movl %ebp,28(%esp,%ecx,4)
movl %eax,%ebx
jle L016sqradd
movl %edx,%ebp
addl %edx,%edx
shrl $31,%ebp
addl %ebx,%edx
adcl $0,%ebp
L015sqrlast:
movl 20(%esp),%edi
movl 16(%esp),%esi
imull 32(%esp),%edi
addl 32(%esp,%ecx,4),%edx
movl (%esi),%eax
adcl $0,%ebp
movl %edx,32(%esp,%ecx,4)
movl %ebp,36(%esp,%ecx,4)
mull %edi
addl 32(%esp),%eax
leal -1(%ecx),%ebx
adcl $0,%edx
movl $1,%ecx
movl 4(%esi),%eax
jmp L0143rdmadd
.align 4,0x90
L008common_tail:
movl 16(%esp),%ebp
movl 4(%esp),%edi
leal 32(%esp),%esi
movl (%esi),%eax
movl %ebx,%ecx
xorl %edx,%edx
.align 4,0x90
L017sub:
sbbl (%ebp,%edx,4),%eax
movl %eax,(%edi,%edx,4)
decl %ecx
movl 4(%esi,%edx,4),%eax
leal 1(%edx),%edx
jge L017sub
sbbl $0,%eax
movl $-1,%edx
xorl %eax,%edx
jmp L018copy
.align 4,0x90
L018copy:
movl 32(%esp,%ebx,4),%esi
movl (%edi,%ebx,4),%ebp
movl %ecx,32(%esp,%ebx,4)
andl %eax,%esi
andl %edx,%ebp
orl %esi,%ebp
movl %ebp,(%edi,%ebx,4)
decl %ebx
jge L018copy
movl 24(%esp),%esp
movl $1,%eax
L000just_leave:
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105
.byte 112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56
.byte 54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121
.byte 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46
.byte 111,114,103,62,0
.section __IMPORT,__pointers,non_lazy_symbol_pointers
L_OPENSSL_ia32cap_P$non_lazy_ptr:
.indirect_symbol _OPENSSL_ia32cap_P
.long 0
.comm _OPENSSL_ia32cap_P,16,2

View File

@ -0,0 +1,32 @@
/*
* WARNING: do not edit!
* Generated by util/mkbuildinf.pl
*
* Copyright 2014-2025 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#define PLATFORM "platform: darwin-i386-cc"
#define DATE "built on: Wed Mar 5 21:01:02 2025 UTC"
/*
* Generate compiler_flags as an array of individual characters. This is a
* workaround for the situation where CFLAGS gets too long for a C90 string
* literal
*/
static const char compiler_flags[] = {
'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f',
'P','I','C',' ','-','a','r','c','h',' ','i','3','8','6',' ','-',
'W','a',',','-','-','n','o','e','x','e','c','s','t','a','c','k',
' ','-','O','3',' ','-','f','o','m','i','t','-','f','r','a','m',
'e','-','p','o','i','n','t','e','r',' ','-','D','L','_','E','N',
'D','I','A','N',' ','-','D','O','P','E','N','S','S','L','_','P',
'I','C',' ','-','D','_','R','E','E','N','T','R','A','N','T',' ',
'-','D','O','P','E','N','S','S','L','_','B','U','I','L','D','I',
'N','G','_','O','P','E','N','S','S','L',' ','-','D','N','D','E',
'B','U','G','\0'
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,884 @@
.text
.globl _fcrypt_body
.align 4
_fcrypt_body:
L_fcrypt_body_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
# Load the 2 words
xorl %edi,%edi
xorl %esi,%esi
call L000PIC_me_up
L000PIC_me_up:
popl %edx
movl L_DES_SPtrans$non_lazy_ptr-L000PIC_me_up(%edx),%edx
pushl %edx
movl 28(%esp),%ebp
pushl $25
L001start:
# Round 0
movl 36(%esp),%eax
movl %esi,%edx
shrl $16,%edx
movl 40(%esp),%ecx
xorl %esi,%edx
andl %edx,%eax
andl %ecx,%edx
movl %eax,%ebx
shll $16,%ebx
movl %edx,%ecx
shll $16,%ecx
xorl %ebx,%eax
xorl %ecx,%edx
movl (%ebp),%ebx
xorl %ebx,%eax
movl 4(%ebp),%ecx
xorl %esi,%eax
xorl %esi,%edx
xorl %ecx,%edx
andl $0xfcfcfcfc,%eax
xorl %ebx,%ebx
andl $0xcfcfcfcf,%edx
xorl %ecx,%ecx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
movl 4(%esp),%ebp
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
movl 0x600(%ebp,%ebx,1),%ebx
xorl %ebx,%edi
movl 0x700(%ebp,%ecx,1),%ebx
xorl %ebx,%edi
movl 0x400(%ebp,%eax,1),%ebx
xorl %ebx,%edi
movl 0x500(%ebp,%edx,1),%ebx
xorl %ebx,%edi
movl 32(%esp),%ebp
# Round 1
movl 36(%esp),%eax
movl %edi,%edx
shrl $16,%edx
movl 40(%esp),%ecx
xorl %edi,%edx
andl %edx,%eax
andl %ecx,%edx
movl %eax,%ebx
shll $16,%ebx
movl %edx,%ecx
shll $16,%ecx
xorl %ebx,%eax
xorl %ecx,%edx
movl 8(%ebp),%ebx
xorl %ebx,%eax
movl 12(%ebp),%ecx
xorl %edi,%eax
xorl %edi,%edx
xorl %ecx,%edx
andl $0xfcfcfcfc,%eax
xorl %ebx,%ebx
andl $0xcfcfcfcf,%edx
xorl %ecx,%ecx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
movl 4(%esp),%ebp
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
movl 0x600(%ebp,%ebx,1),%ebx
xorl %ebx,%esi
movl 0x700(%ebp,%ecx,1),%ebx
xorl %ebx,%esi
movl 0x400(%ebp,%eax,1),%ebx
xorl %ebx,%esi
movl 0x500(%ebp,%edx,1),%ebx
xorl %ebx,%esi
movl 32(%esp),%ebp
# Round 2
movl 36(%esp),%eax
movl %esi,%edx
shrl $16,%edx
movl 40(%esp),%ecx
xorl %esi,%edx
andl %edx,%eax
andl %ecx,%edx
movl %eax,%ebx
shll $16,%ebx
movl %edx,%ecx
shll $16,%ecx
xorl %ebx,%eax
xorl %ecx,%edx
movl 16(%ebp),%ebx
xorl %ebx,%eax
movl 20(%ebp),%ecx
xorl %esi,%eax
xorl %esi,%edx
xorl %ecx,%edx
andl $0xfcfcfcfc,%eax
xorl %ebx,%ebx
andl $0xcfcfcfcf,%edx
xorl %ecx,%ecx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
movl 4(%esp),%ebp
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
movl 0x600(%ebp,%ebx,1),%ebx
xorl %ebx,%edi
movl 0x700(%ebp,%ecx,1),%ebx
xorl %ebx,%edi
movl 0x400(%ebp,%eax,1),%ebx
xorl %ebx,%edi
movl 0x500(%ebp,%edx,1),%ebx
xorl %ebx,%edi
movl 32(%esp),%ebp
# Round 3
movl 36(%esp),%eax
movl %edi,%edx
shrl $16,%edx
movl 40(%esp),%ecx
xorl %edi,%edx
andl %edx,%eax
andl %ecx,%edx
movl %eax,%ebx
shll $16,%ebx
movl %edx,%ecx
shll $16,%ecx
xorl %ebx,%eax
xorl %ecx,%edx
movl 24(%ebp),%ebx
xorl %ebx,%eax
movl 28(%ebp),%ecx
xorl %edi,%eax
xorl %edi,%edx
xorl %ecx,%edx
andl $0xfcfcfcfc,%eax
xorl %ebx,%ebx
andl $0xcfcfcfcf,%edx
xorl %ecx,%ecx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
movl 4(%esp),%ebp
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
movl 0x600(%ebp,%ebx,1),%ebx
xorl %ebx,%esi
movl 0x700(%ebp,%ecx,1),%ebx
xorl %ebx,%esi
movl 0x400(%ebp,%eax,1),%ebx
xorl %ebx,%esi
movl 0x500(%ebp,%edx,1),%ebx
xorl %ebx,%esi
movl 32(%esp),%ebp
# Round 4
movl 36(%esp),%eax
movl %esi,%edx
shrl $16,%edx
movl 40(%esp),%ecx
xorl %esi,%edx
andl %edx,%eax
andl %ecx,%edx
movl %eax,%ebx
shll $16,%ebx
movl %edx,%ecx
shll $16,%ecx
xorl %ebx,%eax
xorl %ecx,%edx
movl 32(%ebp),%ebx
xorl %ebx,%eax
movl 36(%ebp),%ecx
xorl %esi,%eax
xorl %esi,%edx
xorl %ecx,%edx
andl $0xfcfcfcfc,%eax
xorl %ebx,%ebx
andl $0xcfcfcfcf,%edx
xorl %ecx,%ecx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
movl 4(%esp),%ebp
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
movl 0x600(%ebp,%ebx,1),%ebx
xorl %ebx,%edi
movl 0x700(%ebp,%ecx,1),%ebx
xorl %ebx,%edi
movl 0x400(%ebp,%eax,1),%ebx
xorl %ebx,%edi
movl 0x500(%ebp,%edx,1),%ebx
xorl %ebx,%edi
movl 32(%esp),%ebp
# Round 5
movl 36(%esp),%eax
movl %edi,%edx
shrl $16,%edx
movl 40(%esp),%ecx
xorl %edi,%edx
andl %edx,%eax
andl %ecx,%edx
movl %eax,%ebx
shll $16,%ebx
movl %edx,%ecx
shll $16,%ecx
xorl %ebx,%eax
xorl %ecx,%edx
movl 40(%ebp),%ebx
xorl %ebx,%eax
movl 44(%ebp),%ecx
xorl %edi,%eax
xorl %edi,%edx
xorl %ecx,%edx
andl $0xfcfcfcfc,%eax
xorl %ebx,%ebx
andl $0xcfcfcfcf,%edx
xorl %ecx,%ecx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
movl 4(%esp),%ebp
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
movl 0x600(%ebp,%ebx,1),%ebx
xorl %ebx,%esi
movl 0x700(%ebp,%ecx,1),%ebx
xorl %ebx,%esi
movl 0x400(%ebp,%eax,1),%ebx
xorl %ebx,%esi
movl 0x500(%ebp,%edx,1),%ebx
xorl %ebx,%esi
movl 32(%esp),%ebp
# Round 6
movl 36(%esp),%eax
movl %esi,%edx
shrl $16,%edx
movl 40(%esp),%ecx
xorl %esi,%edx
andl %edx,%eax
andl %ecx,%edx
movl %eax,%ebx
shll $16,%ebx
movl %edx,%ecx
shll $16,%ecx
xorl %ebx,%eax
xorl %ecx,%edx
movl 48(%ebp),%ebx
xorl %ebx,%eax
movl 52(%ebp),%ecx
xorl %esi,%eax
xorl %esi,%edx
xorl %ecx,%edx
andl $0xfcfcfcfc,%eax
xorl %ebx,%ebx
andl $0xcfcfcfcf,%edx
xorl %ecx,%ecx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
movl 4(%esp),%ebp
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
movl 0x600(%ebp,%ebx,1),%ebx
xorl %ebx,%edi
movl 0x700(%ebp,%ecx,1),%ebx
xorl %ebx,%edi
movl 0x400(%ebp,%eax,1),%ebx
xorl %ebx,%edi
movl 0x500(%ebp,%edx,1),%ebx
xorl %ebx,%edi
movl 32(%esp),%ebp
# Round 7
movl 36(%esp),%eax
movl %edi,%edx
shrl $16,%edx
movl 40(%esp),%ecx
xorl %edi,%edx
andl %edx,%eax
andl %ecx,%edx
movl %eax,%ebx
shll $16,%ebx
movl %edx,%ecx
shll $16,%ecx
xorl %ebx,%eax
xorl %ecx,%edx
movl 56(%ebp),%ebx
xorl %ebx,%eax
movl 60(%ebp),%ecx
xorl %edi,%eax
xorl %edi,%edx
xorl %ecx,%edx
andl $0xfcfcfcfc,%eax
xorl %ebx,%ebx
andl $0xcfcfcfcf,%edx
xorl %ecx,%ecx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
movl 4(%esp),%ebp
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
movl 0x600(%ebp,%ebx,1),%ebx
xorl %ebx,%esi
movl 0x700(%ebp,%ecx,1),%ebx
xorl %ebx,%esi
movl 0x400(%ebp,%eax,1),%ebx
xorl %ebx,%esi
movl 0x500(%ebp,%edx,1),%ebx
xorl %ebx,%esi
movl 32(%esp),%ebp
# Round 8
movl 36(%esp),%eax
movl %esi,%edx
shrl $16,%edx
movl 40(%esp),%ecx
xorl %esi,%edx
andl %edx,%eax
andl %ecx,%edx
movl %eax,%ebx
shll $16,%ebx
movl %edx,%ecx
shll $16,%ecx
xorl %ebx,%eax
xorl %ecx,%edx
movl 64(%ebp),%ebx
xorl %ebx,%eax
movl 68(%ebp),%ecx
xorl %esi,%eax
xorl %esi,%edx
xorl %ecx,%edx
andl $0xfcfcfcfc,%eax
xorl %ebx,%ebx
andl $0xcfcfcfcf,%edx
xorl %ecx,%ecx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
movl 4(%esp),%ebp
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
movl 0x600(%ebp,%ebx,1),%ebx
xorl %ebx,%edi
movl 0x700(%ebp,%ecx,1),%ebx
xorl %ebx,%edi
movl 0x400(%ebp,%eax,1),%ebx
xorl %ebx,%edi
movl 0x500(%ebp,%edx,1),%ebx
xorl %ebx,%edi
movl 32(%esp),%ebp
# Round 9
movl 36(%esp),%eax
movl %edi,%edx
shrl $16,%edx
movl 40(%esp),%ecx
xorl %edi,%edx
andl %edx,%eax
andl %ecx,%edx
movl %eax,%ebx
shll $16,%ebx
movl %edx,%ecx
shll $16,%ecx
xorl %ebx,%eax
xorl %ecx,%edx
movl 72(%ebp),%ebx
xorl %ebx,%eax
movl 76(%ebp),%ecx
xorl %edi,%eax
xorl %edi,%edx
xorl %ecx,%edx
andl $0xfcfcfcfc,%eax
xorl %ebx,%ebx
andl $0xcfcfcfcf,%edx
xorl %ecx,%ecx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
movl 4(%esp),%ebp
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
movl 0x600(%ebp,%ebx,1),%ebx
xorl %ebx,%esi
movl 0x700(%ebp,%ecx,1),%ebx
xorl %ebx,%esi
movl 0x400(%ebp,%eax,1),%ebx
xorl %ebx,%esi
movl 0x500(%ebp,%edx,1),%ebx
xorl %ebx,%esi
movl 32(%esp),%ebp
# Round 10
movl 36(%esp),%eax
movl %esi,%edx
shrl $16,%edx
movl 40(%esp),%ecx
xorl %esi,%edx
andl %edx,%eax
andl %ecx,%edx
movl %eax,%ebx
shll $16,%ebx
movl %edx,%ecx
shll $16,%ecx
xorl %ebx,%eax
xorl %ecx,%edx
movl 80(%ebp),%ebx
xorl %ebx,%eax
movl 84(%ebp),%ecx
xorl %esi,%eax
xorl %esi,%edx
xorl %ecx,%edx
andl $0xfcfcfcfc,%eax
xorl %ebx,%ebx
andl $0xcfcfcfcf,%edx
xorl %ecx,%ecx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
movl 4(%esp),%ebp
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
movl 0x600(%ebp,%ebx,1),%ebx
xorl %ebx,%edi
movl 0x700(%ebp,%ecx,1),%ebx
xorl %ebx,%edi
movl 0x400(%ebp,%eax,1),%ebx
xorl %ebx,%edi
movl 0x500(%ebp,%edx,1),%ebx
xorl %ebx,%edi
movl 32(%esp),%ebp
# Round 11
movl 36(%esp),%eax
movl %edi,%edx
shrl $16,%edx
movl 40(%esp),%ecx
xorl %edi,%edx
andl %edx,%eax
andl %ecx,%edx
movl %eax,%ebx
shll $16,%ebx
movl %edx,%ecx
shll $16,%ecx
xorl %ebx,%eax
xorl %ecx,%edx
movl 88(%ebp),%ebx
xorl %ebx,%eax
movl 92(%ebp),%ecx
xorl %edi,%eax
xorl %edi,%edx
xorl %ecx,%edx
andl $0xfcfcfcfc,%eax
xorl %ebx,%ebx
andl $0xcfcfcfcf,%edx
xorl %ecx,%ecx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
movl 4(%esp),%ebp
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
movl 0x600(%ebp,%ebx,1),%ebx
xorl %ebx,%esi
movl 0x700(%ebp,%ecx,1),%ebx
xorl %ebx,%esi
movl 0x400(%ebp,%eax,1),%ebx
xorl %ebx,%esi
movl 0x500(%ebp,%edx,1),%ebx
xorl %ebx,%esi
movl 32(%esp),%ebp
# Round 12
movl 36(%esp),%eax
movl %esi,%edx
shrl $16,%edx
movl 40(%esp),%ecx
xorl %esi,%edx
andl %edx,%eax
andl %ecx,%edx
movl %eax,%ebx
shll $16,%ebx
movl %edx,%ecx
shll $16,%ecx
xorl %ebx,%eax
xorl %ecx,%edx
movl 96(%ebp),%ebx
xorl %ebx,%eax
movl 100(%ebp),%ecx
xorl %esi,%eax
xorl %esi,%edx
xorl %ecx,%edx
andl $0xfcfcfcfc,%eax
xorl %ebx,%ebx
andl $0xcfcfcfcf,%edx
xorl %ecx,%ecx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
movl 4(%esp),%ebp
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
movl 0x600(%ebp,%ebx,1),%ebx
xorl %ebx,%edi
movl 0x700(%ebp,%ecx,1),%ebx
xorl %ebx,%edi
movl 0x400(%ebp,%eax,1),%ebx
xorl %ebx,%edi
movl 0x500(%ebp,%edx,1),%ebx
xorl %ebx,%edi
movl 32(%esp),%ebp
# Round 13
movl 36(%esp),%eax
movl %edi,%edx
shrl $16,%edx
movl 40(%esp),%ecx
xorl %edi,%edx
andl %edx,%eax
andl %ecx,%edx
movl %eax,%ebx
shll $16,%ebx
movl %edx,%ecx
shll $16,%ecx
xorl %ebx,%eax
xorl %ecx,%edx
movl 104(%ebp),%ebx
xorl %ebx,%eax
movl 108(%ebp),%ecx
xorl %edi,%eax
xorl %edi,%edx
xorl %ecx,%edx
andl $0xfcfcfcfc,%eax
xorl %ebx,%ebx
andl $0xcfcfcfcf,%edx
xorl %ecx,%ecx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
movl 4(%esp),%ebp
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
movl 0x600(%ebp,%ebx,1),%ebx
xorl %ebx,%esi
movl 0x700(%ebp,%ecx,1),%ebx
xorl %ebx,%esi
movl 0x400(%ebp,%eax,1),%ebx
xorl %ebx,%esi
movl 0x500(%ebp,%edx,1),%ebx
xorl %ebx,%esi
movl 32(%esp),%ebp
# Round 14
movl 36(%esp),%eax
movl %esi,%edx
shrl $16,%edx
movl 40(%esp),%ecx
xorl %esi,%edx
andl %edx,%eax
andl %ecx,%edx
movl %eax,%ebx
shll $16,%ebx
movl %edx,%ecx
shll $16,%ecx
xorl %ebx,%eax
xorl %ecx,%edx
movl 112(%ebp),%ebx
xorl %ebx,%eax
movl 116(%ebp),%ecx
xorl %esi,%eax
xorl %esi,%edx
xorl %ecx,%edx
andl $0xfcfcfcfc,%eax
xorl %ebx,%ebx
andl $0xcfcfcfcf,%edx
xorl %ecx,%ecx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
movl 4(%esp),%ebp
xorl (%ebp,%ebx,1),%edi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%edi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%edi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%edi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
movl 0x600(%ebp,%ebx,1),%ebx
xorl %ebx,%edi
movl 0x700(%ebp,%ecx,1),%ebx
xorl %ebx,%edi
movl 0x400(%ebp,%eax,1),%ebx
xorl %ebx,%edi
movl 0x500(%ebp,%edx,1),%ebx
xorl %ebx,%edi
movl 32(%esp),%ebp
# Round 15
movl 36(%esp),%eax
movl %edi,%edx
shrl $16,%edx
movl 40(%esp),%ecx
xorl %edi,%edx
andl %edx,%eax
andl %ecx,%edx
movl %eax,%ebx
shll $16,%ebx
movl %edx,%ecx
shll $16,%ecx
xorl %ebx,%eax
xorl %ecx,%edx
movl 120(%ebp),%ebx
xorl %ebx,%eax
movl 124(%ebp),%ecx
xorl %edi,%eax
xorl %edi,%edx
xorl %ecx,%edx
andl $0xfcfcfcfc,%eax
xorl %ebx,%ebx
andl $0xcfcfcfcf,%edx
xorl %ecx,%ecx
movb %al,%bl
movb %ah,%cl
rorl $4,%edx
movl 4(%esp),%ebp
xorl (%ebp,%ebx,1),%esi
movb %dl,%bl
xorl 0x200(%ebp,%ecx,1),%esi
movb %dh,%cl
shrl $16,%eax
xorl 0x100(%ebp,%ebx,1),%esi
movb %ah,%bl
shrl $16,%edx
xorl 0x300(%ebp,%ecx,1),%esi
movb %dh,%cl
andl $0xff,%eax
andl $0xff,%edx
movl 0x600(%ebp,%ebx,1),%ebx
xorl %ebx,%esi
movl 0x700(%ebp,%ecx,1),%ebx
xorl %ebx,%esi
movl 0x400(%ebp,%eax,1),%ebx
xorl %ebx,%esi
movl 0x500(%ebp,%edx,1),%ebx
xorl %ebx,%esi
movl 32(%esp),%ebp
movl (%esp),%ebx
movl %edi,%eax
decl %ebx
movl %esi,%edi
movl %eax,%esi
movl %ebx,(%esp)
jnz L001start
# FP
movl 28(%esp),%edx
rorl $1,%edi
movl %esi,%eax
xorl %edi,%esi
andl $0xaaaaaaaa,%esi
xorl %esi,%eax
xorl %esi,%edi
roll $23,%eax
movl %eax,%esi
xorl %edi,%eax
andl $0x03fc03fc,%eax
xorl %eax,%esi
xorl %eax,%edi
roll $10,%esi
movl %esi,%eax
xorl %edi,%esi
andl $0x33333333,%esi
xorl %esi,%eax
xorl %esi,%edi
roll $18,%edi
movl %edi,%esi
xorl %eax,%edi
andl $0xfff0000f,%edi
xorl %edi,%esi
xorl %edi,%eax
roll $12,%esi
movl %esi,%edi
xorl %eax,%esi
andl $0xf0f0f0f0,%esi
xorl %esi,%edi
xorl %esi,%eax
rorl $4,%eax
movl %eax,(%edx)
movl %edi,4(%edx)
addl $8,%esp
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.section __IMPORT,__pointers,non_lazy_symbol_pointers
L_DES_SPtrans$non_lazy_ptr:
.indirect_symbol _DES_SPtrans
.long 0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,681 @@
.text
.globl _ossl_md5_block_asm_data_order
.align 4
_ossl_md5_block_asm_data_order:
L_ossl_md5_block_asm_data_order_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %esi
pushl %edi
movl 12(%esp),%edi
movl 16(%esp),%esi
movl 20(%esp),%ecx
pushl %ebp
shll $6,%ecx
pushl %ebx
addl %esi,%ecx
subl $64,%ecx
movl (%edi),%eax
pushl %ecx
movl 4(%edi),%ebx
movl 8(%edi),%ecx
movl 12(%edi),%edx
L000start:
# R0 section
movl %ecx,%edi
movl (%esi),%ebp
# R0 0
xorl %edx,%edi
andl %ebx,%edi
leal 3614090360(%eax,%ebp,1),%eax
xorl %edx,%edi
movl 4(%esi),%ebp
addl %edi,%eax
roll $7,%eax
movl %ebx,%edi
addl %ebx,%eax
# R0 1
xorl %ecx,%edi
andl %eax,%edi
leal 3905402710(%edx,%ebp,1),%edx
xorl %ecx,%edi
movl 8(%esi),%ebp
addl %edi,%edx
roll $12,%edx
movl %eax,%edi
addl %eax,%edx
# R0 2
xorl %ebx,%edi
andl %edx,%edi
leal 606105819(%ecx,%ebp,1),%ecx
xorl %ebx,%edi
movl 12(%esi),%ebp
addl %edi,%ecx
roll $17,%ecx
movl %edx,%edi
addl %edx,%ecx
# R0 3
xorl %eax,%edi
andl %ecx,%edi
leal 3250441966(%ebx,%ebp,1),%ebx
xorl %eax,%edi
movl 16(%esi),%ebp
addl %edi,%ebx
roll $22,%ebx
movl %ecx,%edi
addl %ecx,%ebx
# R0 4
xorl %edx,%edi
andl %ebx,%edi
leal 4118548399(%eax,%ebp,1),%eax
xorl %edx,%edi
movl 20(%esi),%ebp
addl %edi,%eax
roll $7,%eax
movl %ebx,%edi
addl %ebx,%eax
# R0 5
xorl %ecx,%edi
andl %eax,%edi
leal 1200080426(%edx,%ebp,1),%edx
xorl %ecx,%edi
movl 24(%esi),%ebp
addl %edi,%edx
roll $12,%edx
movl %eax,%edi
addl %eax,%edx
# R0 6
xorl %ebx,%edi
andl %edx,%edi
leal 2821735955(%ecx,%ebp,1),%ecx
xorl %ebx,%edi
movl 28(%esi),%ebp
addl %edi,%ecx
roll $17,%ecx
movl %edx,%edi
addl %edx,%ecx
# R0 7
xorl %eax,%edi
andl %ecx,%edi
leal 4249261313(%ebx,%ebp,1),%ebx
xorl %eax,%edi
movl 32(%esi),%ebp
addl %edi,%ebx
roll $22,%ebx
movl %ecx,%edi
addl %ecx,%ebx
# R0 8
xorl %edx,%edi
andl %ebx,%edi
leal 1770035416(%eax,%ebp,1),%eax
xorl %edx,%edi
movl 36(%esi),%ebp
addl %edi,%eax
roll $7,%eax
movl %ebx,%edi
addl %ebx,%eax
# R0 9
xorl %ecx,%edi
andl %eax,%edi
leal 2336552879(%edx,%ebp,1),%edx
xorl %ecx,%edi
movl 40(%esi),%ebp
addl %edi,%edx
roll $12,%edx
movl %eax,%edi
addl %eax,%edx
# R0 10
xorl %ebx,%edi
andl %edx,%edi
leal 4294925233(%ecx,%ebp,1),%ecx
xorl %ebx,%edi
movl 44(%esi),%ebp
addl %edi,%ecx
roll $17,%ecx
movl %edx,%edi
addl %edx,%ecx
# R0 11
xorl %eax,%edi
andl %ecx,%edi
leal 2304563134(%ebx,%ebp,1),%ebx
xorl %eax,%edi
movl 48(%esi),%ebp
addl %edi,%ebx
roll $22,%ebx
movl %ecx,%edi
addl %ecx,%ebx
# R0 12
xorl %edx,%edi
andl %ebx,%edi
leal 1804603682(%eax,%ebp,1),%eax
xorl %edx,%edi
movl 52(%esi),%ebp
addl %edi,%eax
roll $7,%eax
movl %ebx,%edi
addl %ebx,%eax
# R0 13
xorl %ecx,%edi
andl %eax,%edi
leal 4254626195(%edx,%ebp,1),%edx
xorl %ecx,%edi
movl 56(%esi),%ebp
addl %edi,%edx
roll $12,%edx
movl %eax,%edi
addl %eax,%edx
# R0 14
xorl %ebx,%edi
andl %edx,%edi
leal 2792965006(%ecx,%ebp,1),%ecx
xorl %ebx,%edi
movl 60(%esi),%ebp
addl %edi,%ecx
roll $17,%ecx
movl %edx,%edi
addl %edx,%ecx
# R0 15
xorl %eax,%edi
andl %ecx,%edi
leal 1236535329(%ebx,%ebp,1),%ebx
xorl %eax,%edi
movl 4(%esi),%ebp
addl %edi,%ebx
roll $22,%ebx
movl %ecx,%edi
addl %ecx,%ebx
# R1 section
# R1 16
xorl %ebx,%edi
andl %edx,%edi
leal 4129170786(%eax,%ebp,1),%eax
xorl %ecx,%edi
movl 24(%esi),%ebp
addl %edi,%eax
movl %ebx,%edi
roll $5,%eax
addl %ebx,%eax
# R1 17
xorl %eax,%edi
andl %ecx,%edi
leal 3225465664(%edx,%ebp,1),%edx
xorl %ebx,%edi
movl 44(%esi),%ebp
addl %edi,%edx
movl %eax,%edi
roll $9,%edx
addl %eax,%edx
# R1 18
xorl %edx,%edi
andl %ebx,%edi
leal 643717713(%ecx,%ebp,1),%ecx
xorl %eax,%edi
movl (%esi),%ebp
addl %edi,%ecx
movl %edx,%edi
roll $14,%ecx
addl %edx,%ecx
# R1 19
xorl %ecx,%edi
andl %eax,%edi
leal 3921069994(%ebx,%ebp,1),%ebx
xorl %edx,%edi
movl 20(%esi),%ebp
addl %edi,%ebx
movl %ecx,%edi
roll $20,%ebx
addl %ecx,%ebx
# R1 20
xorl %ebx,%edi
andl %edx,%edi
leal 3593408605(%eax,%ebp,1),%eax
xorl %ecx,%edi
movl 40(%esi),%ebp
addl %edi,%eax
movl %ebx,%edi
roll $5,%eax
addl %ebx,%eax
# R1 21
xorl %eax,%edi
andl %ecx,%edi
leal 38016083(%edx,%ebp,1),%edx
xorl %ebx,%edi
movl 60(%esi),%ebp
addl %edi,%edx
movl %eax,%edi
roll $9,%edx
addl %eax,%edx
# R1 22
xorl %edx,%edi
andl %ebx,%edi
leal 3634488961(%ecx,%ebp,1),%ecx
xorl %eax,%edi
movl 16(%esi),%ebp
addl %edi,%ecx
movl %edx,%edi
roll $14,%ecx
addl %edx,%ecx
# R1 23
xorl %ecx,%edi
andl %eax,%edi
leal 3889429448(%ebx,%ebp,1),%ebx
xorl %edx,%edi
movl 36(%esi),%ebp
addl %edi,%ebx
movl %ecx,%edi
roll $20,%ebx
addl %ecx,%ebx
# R1 24
xorl %ebx,%edi
andl %edx,%edi
leal 568446438(%eax,%ebp,1),%eax
xorl %ecx,%edi
movl 56(%esi),%ebp
addl %edi,%eax
movl %ebx,%edi
roll $5,%eax
addl %ebx,%eax
# R1 25
xorl %eax,%edi
andl %ecx,%edi
leal 3275163606(%edx,%ebp,1),%edx
xorl %ebx,%edi
movl 12(%esi),%ebp
addl %edi,%edx
movl %eax,%edi
roll $9,%edx
addl %eax,%edx
# R1 26
xorl %edx,%edi
andl %ebx,%edi
leal 4107603335(%ecx,%ebp,1),%ecx
xorl %eax,%edi
movl 32(%esi),%ebp
addl %edi,%ecx
movl %edx,%edi
roll $14,%ecx
addl %edx,%ecx
# R1 27
xorl %ecx,%edi
andl %eax,%edi
leal 1163531501(%ebx,%ebp,1),%ebx
xorl %edx,%edi
movl 52(%esi),%ebp
addl %edi,%ebx
movl %ecx,%edi
roll $20,%ebx
addl %ecx,%ebx
# R1 28
xorl %ebx,%edi
andl %edx,%edi
leal 2850285829(%eax,%ebp,1),%eax
xorl %ecx,%edi
movl 8(%esi),%ebp
addl %edi,%eax
movl %ebx,%edi
roll $5,%eax
addl %ebx,%eax
# R1 29
xorl %eax,%edi
andl %ecx,%edi
leal 4243563512(%edx,%ebp,1),%edx
xorl %ebx,%edi
movl 28(%esi),%ebp
addl %edi,%edx
movl %eax,%edi
roll $9,%edx
addl %eax,%edx
# R1 30
xorl %edx,%edi
andl %ebx,%edi
leal 1735328473(%ecx,%ebp,1),%ecx
xorl %eax,%edi
movl 48(%esi),%ebp
addl %edi,%ecx
movl %edx,%edi
roll $14,%ecx
addl %edx,%ecx
# R1 31
xorl %ecx,%edi
andl %eax,%edi
leal 2368359562(%ebx,%ebp,1),%ebx
xorl %edx,%edi
movl 20(%esi),%ebp
addl %edi,%ebx
movl %ecx,%edi
roll $20,%ebx
addl %ecx,%ebx
# R2 section
# R2 32
xorl %edx,%edi
xorl %ebx,%edi
leal 4294588738(%eax,%ebp,1),%eax
addl %edi,%eax
movl 32(%esi),%ebp
roll $4,%eax
movl %ebx,%edi
# R2 33
addl %ebx,%eax
xorl %ecx,%edi
leal 2272392833(%edx,%ebp,1),%edx
xorl %eax,%edi
movl 44(%esi),%ebp
addl %edi,%edx
movl %eax,%edi
roll $11,%edx
addl %eax,%edx
# R2 34
xorl %ebx,%edi
xorl %edx,%edi
leal 1839030562(%ecx,%ebp,1),%ecx
addl %edi,%ecx
movl 56(%esi),%ebp
roll $16,%ecx
movl %edx,%edi
# R2 35
addl %edx,%ecx
xorl %eax,%edi
leal 4259657740(%ebx,%ebp,1),%ebx
xorl %ecx,%edi
movl 4(%esi),%ebp
addl %edi,%ebx
movl %ecx,%edi
roll $23,%ebx
addl %ecx,%ebx
# R2 36
xorl %edx,%edi
xorl %ebx,%edi
leal 2763975236(%eax,%ebp,1),%eax
addl %edi,%eax
movl 16(%esi),%ebp
roll $4,%eax
movl %ebx,%edi
# R2 37
addl %ebx,%eax
xorl %ecx,%edi
leal 1272893353(%edx,%ebp,1),%edx
xorl %eax,%edi
movl 28(%esi),%ebp
addl %edi,%edx
movl %eax,%edi
roll $11,%edx
addl %eax,%edx
# R2 38
xorl %ebx,%edi
xorl %edx,%edi
leal 4139469664(%ecx,%ebp,1),%ecx
addl %edi,%ecx
movl 40(%esi),%ebp
roll $16,%ecx
movl %edx,%edi
# R2 39
addl %edx,%ecx
xorl %eax,%edi
leal 3200236656(%ebx,%ebp,1),%ebx
xorl %ecx,%edi
movl 52(%esi),%ebp
addl %edi,%ebx
movl %ecx,%edi
roll $23,%ebx
addl %ecx,%ebx
# R2 40
xorl %edx,%edi
xorl %ebx,%edi
leal 681279174(%eax,%ebp,1),%eax
addl %edi,%eax
movl (%esi),%ebp
roll $4,%eax
movl %ebx,%edi
# R2 41
addl %ebx,%eax
xorl %ecx,%edi
leal 3936430074(%edx,%ebp,1),%edx
xorl %eax,%edi
movl 12(%esi),%ebp
addl %edi,%edx
movl %eax,%edi
roll $11,%edx
addl %eax,%edx
# R2 42
xorl %ebx,%edi
xorl %edx,%edi
leal 3572445317(%ecx,%ebp,1),%ecx
addl %edi,%ecx
movl 24(%esi),%ebp
roll $16,%ecx
movl %edx,%edi
# R2 43
addl %edx,%ecx
xorl %eax,%edi
leal 76029189(%ebx,%ebp,1),%ebx
xorl %ecx,%edi
movl 36(%esi),%ebp
addl %edi,%ebx
movl %ecx,%edi
roll $23,%ebx
addl %ecx,%ebx
# R2 44
xorl %edx,%edi
xorl %ebx,%edi
leal 3654602809(%eax,%ebp,1),%eax
addl %edi,%eax
movl 48(%esi),%ebp
roll $4,%eax
movl %ebx,%edi
# R2 45
addl %ebx,%eax
xorl %ecx,%edi
leal 3873151461(%edx,%ebp,1),%edx
xorl %eax,%edi
movl 60(%esi),%ebp
addl %edi,%edx
movl %eax,%edi
roll $11,%edx
addl %eax,%edx
# R2 46
xorl %ebx,%edi
xorl %edx,%edi
leal 530742520(%ecx,%ebp,1),%ecx
addl %edi,%ecx
movl 8(%esi),%ebp
roll $16,%ecx
movl %edx,%edi
# R2 47
addl %edx,%ecx
xorl %eax,%edi
leal 3299628645(%ebx,%ebp,1),%ebx
xorl %ecx,%edi
movl (%esi),%ebp
addl %edi,%ebx
movl $-1,%edi
roll $23,%ebx
addl %ecx,%ebx
# R3 section
# R3 48
xorl %edx,%edi
orl %ebx,%edi
leal 4096336452(%eax,%ebp,1),%eax
xorl %ecx,%edi
movl 28(%esi),%ebp
addl %edi,%eax
movl $-1,%edi
roll $6,%eax
xorl %ecx,%edi
addl %ebx,%eax
# R3 49
orl %eax,%edi
leal 1126891415(%edx,%ebp,1),%edx
xorl %ebx,%edi
movl 56(%esi),%ebp
addl %edi,%edx
movl $-1,%edi
roll $10,%edx
xorl %ebx,%edi
addl %eax,%edx
# R3 50
orl %edx,%edi
leal 2878612391(%ecx,%ebp,1),%ecx
xorl %eax,%edi
movl 20(%esi),%ebp
addl %edi,%ecx
movl $-1,%edi
roll $15,%ecx
xorl %eax,%edi
addl %edx,%ecx
# R3 51
orl %ecx,%edi
leal 4237533241(%ebx,%ebp,1),%ebx
xorl %edx,%edi
movl 48(%esi),%ebp
addl %edi,%ebx
movl $-1,%edi
roll $21,%ebx
xorl %edx,%edi
addl %ecx,%ebx
# R3 52
orl %ebx,%edi
leal 1700485571(%eax,%ebp,1),%eax
xorl %ecx,%edi
movl 12(%esi),%ebp
addl %edi,%eax
movl $-1,%edi
roll $6,%eax
xorl %ecx,%edi
addl %ebx,%eax
# R3 53
orl %eax,%edi
leal 2399980690(%edx,%ebp,1),%edx
xorl %ebx,%edi
movl 40(%esi),%ebp
addl %edi,%edx
movl $-1,%edi
roll $10,%edx
xorl %ebx,%edi
addl %eax,%edx
# R3 54
orl %edx,%edi
leal 4293915773(%ecx,%ebp,1),%ecx
xorl %eax,%edi
movl 4(%esi),%ebp
addl %edi,%ecx
movl $-1,%edi
roll $15,%ecx
xorl %eax,%edi
addl %edx,%ecx
# R3 55
orl %ecx,%edi
leal 2240044497(%ebx,%ebp,1),%ebx
xorl %edx,%edi
movl 32(%esi),%ebp
addl %edi,%ebx
movl $-1,%edi
roll $21,%ebx
xorl %edx,%edi
addl %ecx,%ebx
# R3 56
orl %ebx,%edi
leal 1873313359(%eax,%ebp,1),%eax
xorl %ecx,%edi
movl 60(%esi),%ebp
addl %edi,%eax
movl $-1,%edi
roll $6,%eax
xorl %ecx,%edi
addl %ebx,%eax
# R3 57
orl %eax,%edi
leal 4264355552(%edx,%ebp,1),%edx
xorl %ebx,%edi
movl 24(%esi),%ebp
addl %edi,%edx
movl $-1,%edi
roll $10,%edx
xorl %ebx,%edi
addl %eax,%edx
# R3 58
orl %edx,%edi
leal 2734768916(%ecx,%ebp,1),%ecx
xorl %eax,%edi
movl 52(%esi),%ebp
addl %edi,%ecx
movl $-1,%edi
roll $15,%ecx
xorl %eax,%edi
addl %edx,%ecx
# R3 59
orl %ecx,%edi
leal 1309151649(%ebx,%ebp,1),%ebx
xorl %edx,%edi
movl 16(%esi),%ebp
addl %edi,%ebx
movl $-1,%edi
roll $21,%ebx
xorl %edx,%edi
addl %ecx,%ebx
# R3 60
orl %ebx,%edi
leal 4149444226(%eax,%ebp,1),%eax
xorl %ecx,%edi
movl 44(%esi),%ebp
addl %edi,%eax
movl $-1,%edi
roll $6,%eax
xorl %ecx,%edi
addl %ebx,%eax
# R3 61
orl %eax,%edi
leal 3174756917(%edx,%ebp,1),%edx
xorl %ebx,%edi
movl 8(%esi),%ebp
addl %edi,%edx
movl $-1,%edi
roll $10,%edx
xorl %ebx,%edi
addl %eax,%edx
# R3 62
orl %edx,%edi
leal 718787259(%ecx,%ebp,1),%ecx
xorl %eax,%edi
movl 36(%esi),%ebp
addl %edi,%ecx
movl $-1,%edi
roll $15,%ecx
xorl %eax,%edi
addl %edx,%ecx
# R3 63
orl %ecx,%edi
leal 3951481745(%ebx,%ebp,1),%ebx
xorl %edx,%edi
movl 24(%esp),%ebp
addl %edi,%ebx
addl $64,%esi
roll $21,%ebx
movl (%ebp),%edi
addl %ecx,%ebx
addl %edi,%eax
movl 4(%ebp),%edi
addl %edi,%ebx
movl 8(%ebp),%edi
addl %edi,%ecx
movl 12(%ebp),%edi
addl %edi,%edx
movl %eax,(%ebp)
movl %ebx,4(%ebp)
movl (%esp),%edi
movl %ecx,8(%ebp)
movl %edx,12(%ebp)
cmpl %esi,%edi
jae L000start
popl %eax
popl %ebx
popl %ebp
popl %edi
popl %esi
ret

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,393 @@
.text
.globl _RC4
.align 4
_RC4:
L_RC4_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 20(%esp),%edi
movl 24(%esp),%edx
movl 28(%esp),%esi
movl 32(%esp),%ebp
xorl %eax,%eax
xorl %ebx,%ebx
cmpl $0,%edx
je L000abort
movb (%edi),%al
movb 4(%edi),%bl
addl $8,%edi
leal (%esi,%edx,1),%ecx
subl %esi,%ebp
movl %ecx,24(%esp)
incb %al
cmpl $-1,256(%edi)
je L001RC4_CHAR
movl (%edi,%eax,4),%ecx
andl $-4,%edx
jz L002loop1
movl %ebp,32(%esp)
testl $-8,%edx
jz L003go4loop4
call L004PIC_me_up
L004PIC_me_up:
popl %ebp
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L004PIC_me_up(%ebp),%ebp
btl $26,(%ebp)
jnc L003go4loop4
movl 32(%esp),%ebp
andl $-8,%edx
leal -8(%esi,%edx,1),%edx
movl %edx,-4(%edi)
addb %cl,%bl
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
movq (%esi),%mm0
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm2
jmp L005loop_mmx_enter
.align 4,0x90
L006loop_mmx:
addb %cl,%bl
psllq $56,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movq (%esi),%mm0
movq %mm2,-8(%ebp,%esi,1)
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm2
L005loop_mmx_enter:
addb %cl,%bl
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm0,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $8,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $16,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $24,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $32,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $40,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
addb %cl,%bl
psllq $48,%mm1
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
incl %eax
addl %ecx,%edx
movzbl %al,%eax
movzbl %dl,%edx
pxor %mm1,%mm2
movl (%edi,%eax,4),%ecx
movd (%edi,%edx,4),%mm1
movl %ebx,%edx
xorl %ebx,%ebx
movb %dl,%bl
cmpl -4(%edi),%esi
leal 8(%esi),%esi
jb L006loop_mmx
psllq $56,%mm1
pxor %mm1,%mm2
movq %mm2,-8(%ebp,%esi,1)
emms
cmpl 24(%esp),%esi
je L007done
jmp L002loop1
.align 4,0x90
L003go4loop4:
leal -4(%esi,%edx,1),%edx
movl %edx,28(%esp)
L008loop4:
addb %cl,%bl
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
addl %ecx,%edx
incb %al
andl $255,%edx
movl (%edi,%eax,4),%ecx
movl (%edi,%edx,4),%ebp
addb %cl,%bl
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
addl %ecx,%edx
incb %al
andl $255,%edx
rorl $8,%ebp
movl (%edi,%eax,4),%ecx
orl (%edi,%edx,4),%ebp
addb %cl,%bl
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
addl %ecx,%edx
incb %al
andl $255,%edx
rorl $8,%ebp
movl (%edi,%eax,4),%ecx
orl (%edi,%edx,4),%ebp
addb %cl,%bl
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
addl %ecx,%edx
incb %al
andl $255,%edx
rorl $8,%ebp
movl 32(%esp),%ecx
orl (%edi,%edx,4),%ebp
rorl $8,%ebp
xorl (%esi),%ebp
cmpl 28(%esp),%esi
movl %ebp,(%ecx,%esi,1)
leal 4(%esi),%esi
movl (%edi,%eax,4),%ecx
jb L008loop4
cmpl 24(%esp),%esi
je L007done
movl 32(%esp),%ebp
.align 4,0x90
L002loop1:
addb %cl,%bl
movl (%edi,%ebx,4),%edx
movl %ecx,(%edi,%ebx,4)
movl %edx,(%edi,%eax,4)
addl %ecx,%edx
incb %al
andl $255,%edx
movl (%edi,%edx,4),%edx
xorb (%esi),%dl
leal 1(%esi),%esi
movl (%edi,%eax,4),%ecx
cmpl 24(%esp),%esi
movb %dl,-1(%ebp,%esi,1)
jb L002loop1
jmp L007done
.align 4,0x90
L001RC4_CHAR:
movzbl (%edi,%eax,1),%ecx
L009cloop1:
addb %cl,%bl
movzbl (%edi,%ebx,1),%edx
movb %cl,(%edi,%ebx,1)
movb %dl,(%edi,%eax,1)
addb %cl,%dl
movzbl (%edi,%edx,1),%edx
addb $1,%al
xorb (%esi),%dl
leal 1(%esi),%esi
movzbl (%edi,%eax,1),%ecx
cmpl 24(%esp),%esi
movb %dl,-1(%ebp,%esi,1)
jb L009cloop1
L007done:
decb %al
movl %ebx,-4(%edi)
movb %al,-8(%edi)
L000abort:
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _RC4_set_key
.align 4
_RC4_set_key:
L_RC4_set_key_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 20(%esp),%edi
movl 24(%esp),%ebp
movl 28(%esp),%esi
call L010PIC_me_up
L010PIC_me_up:
popl %edx
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L010PIC_me_up(%edx),%edx
leal 8(%edi),%edi
leal (%esi,%ebp,1),%esi
negl %ebp
xorl %eax,%eax
movl %ebp,-4(%edi)
btl $20,(%edx)
jc L011c1stloop
.align 4,0x90
L012w1stloop:
movl %eax,(%edi,%eax,4)
addb $1,%al
jnc L012w1stloop
xorl %ecx,%ecx
xorl %edx,%edx
.align 4,0x90
L013w2ndloop:
movl (%edi,%ecx,4),%eax
addb (%esi,%ebp,1),%dl
addb %al,%dl
addl $1,%ebp
movl (%edi,%edx,4),%ebx
jnz L014wnowrap
movl -4(%edi),%ebp
L014wnowrap:
movl %eax,(%edi,%edx,4)
movl %ebx,(%edi,%ecx,4)
addb $1,%cl
jnc L013w2ndloop
jmp L015exit
.align 4,0x90
L011c1stloop:
movb %al,(%edi,%eax,1)
addb $1,%al
jnc L011c1stloop
xorl %ecx,%ecx
xorl %edx,%edx
xorl %ebx,%ebx
.align 4,0x90
L016c2ndloop:
movb (%edi,%ecx,1),%al
addb (%esi,%ebp,1),%dl
addb %al,%dl
addl $1,%ebp
movb (%edi,%edx,1),%bl
jnz L017cnowrap
movl -4(%edi),%ebp
L017cnowrap:
movb %al,(%edi,%edx,1)
movb %bl,(%edi,%ecx,1)
addb $1,%cl
jnc L016c2ndloop
movl $-1,256(%edi)
L015exit:
xorl %eax,%eax
movl %eax,-8(%edi)
movl %eax,-4(%edi)
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _RC4_options
.align 4
_RC4_options:
L_RC4_options_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
call L018pic_point
L018pic_point:
popl %eax
leal L019opts-L018pic_point(%eax),%eax
call L020PIC_me_up
L020PIC_me_up:
popl %edx
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L020PIC_me_up(%edx),%edx
movl (%edx),%edx
btl $20,%edx
jc L0211xchar
btl $26,%edx
jnc L022ret
addl $25,%eax
ret
L0211xchar:
addl $12,%eax
L022ret:
ret
.align 6,0x90
L019opts:
.byte 114,99,52,40,52,120,44,105,110,116,41,0
.byte 114,99,52,40,49,120,44,99,104,97,114,41,0
.byte 114,99,52,40,56,120,44,109,109,120,41,0
.byte 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89
.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 6,0x90
.section __IMPORT,__pointers,non_lazy_symbol_pointers
L_OPENSSL_ia32cap_P$non_lazy_ptr:
.indirect_symbol _OPENSSL_ia32cap_P
.long 0
.comm _OPENSSL_ia32cap_P,16,2

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,576 @@
.text
.globl _OPENSSL_ia32_cpuid
.align 4
_OPENSSL_ia32_cpuid:
L_OPENSSL_ia32_cpuid_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
xorl %edx,%edx
pushfl
popl %eax
movl %eax,%ecx
xorl $2097152,%eax
pushl %eax
popfl
pushfl
popl %eax
xorl %eax,%ecx
xorl %eax,%eax
movl 20(%esp),%esi
movl %eax,8(%esi)
btl $21,%ecx
jnc L000nocpuid
.byte 0x0f,0xa2
movl %eax,%edi
xorl %eax,%eax
cmpl $1970169159,%ebx
setne %al
movl %eax,%ebp
cmpl $1231384169,%edx
setne %al
orl %eax,%ebp
cmpl $1818588270,%ecx
setne %al
orl %eax,%ebp
jz L001intel
cmpl $1752462657,%ebx
setne %al
movl %eax,%esi
cmpl $1769238117,%edx
setne %al
orl %eax,%esi
cmpl $1145913699,%ecx
setne %al
orl %eax,%esi
jnz L001intel
movl $2147483648,%eax
.byte 0x0f,0xa2
cmpl $2147483649,%eax
jb L001intel
movl %eax,%esi
movl $2147483649,%eax
.byte 0x0f,0xa2
orl %ecx,%ebp
andl $2049,%ebp
cmpl $2147483656,%esi
jb L001intel
movl $2147483656,%eax
.byte 0x0f,0xa2
movzbl %cl,%esi
incl %esi
movl $1,%eax
xorl %ecx,%ecx
.byte 0x0f,0xa2
btl $28,%edx
jnc L002generic
shrl $16,%ebx
andl $255,%ebx
cmpl %esi,%ebx
ja L002generic
andl $4026531839,%edx
jmp L002generic
L001intel:
cmpl $4,%edi
movl $-1,%esi
jb L003nocacheinfo
movl $4,%eax
movl $0,%ecx
.byte 0x0f,0xa2
movl %eax,%esi
shrl $14,%esi
andl $4095,%esi
L003nocacheinfo:
movl $1,%eax
xorl %ecx,%ecx
.byte 0x0f,0xa2
andl $3220176895,%edx
cmpl $0,%ebp
jne L004notintel
orl $1073741824,%edx
andb $15,%ah
cmpb $15,%ah
jne L004notintel
orl $1048576,%edx
L004notintel:
btl $28,%edx
jnc L002generic
andl $4026531839,%edx
cmpl $0,%esi
je L002generic
orl $268435456,%edx
shrl $16,%ebx
cmpb $1,%bl
ja L002generic
andl $4026531839,%edx
L002generic:
andl $2048,%ebp
andl $4294965247,%ecx
movl %edx,%esi
orl %ecx,%ebp
cmpl $7,%edi
movl 20(%esp),%edi
jb L005no_extended_info
movl $7,%eax
xorl %ecx,%ecx
.byte 0x0f,0xa2
movl %ebx,8(%edi)
L005no_extended_info:
btl $27,%ebp
jnc L006clear_avx
xorl %ecx,%ecx
.byte 15,1,208
andl $6,%eax
cmpl $6,%eax
je L007done
cmpl $2,%eax
je L006clear_avx
L008clear_xmm:
andl $4261412861,%ebp
andl $4278190079,%esi
L006clear_avx:
andl $4026525695,%ebp
andl $4294967263,8(%edi)
L007done:
movl %esi,%eax
movl %ebp,%edx
L000nocpuid:
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _OPENSSL_rdtsc
.align 4
_OPENSSL_rdtsc:
L_OPENSSL_rdtsc_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
xorl %eax,%eax
xorl %edx,%edx
call L009PIC_me_up
L009PIC_me_up:
popl %ecx
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L009PIC_me_up(%ecx),%ecx
btl $4,(%ecx)
jnc L010notsc
.byte 0x0f,0x31
L010notsc:
ret
.globl _OPENSSL_instrument_halt
.align 4
_OPENSSL_instrument_halt:
L_OPENSSL_instrument_halt_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
call L011PIC_me_up
L011PIC_me_up:
popl %ecx
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L011PIC_me_up(%ecx),%ecx
btl $4,(%ecx)
jnc L012nohalt
.long 2421723150
andl $3,%eax
jnz L012nohalt
pushfl
popl %eax
btl $9,%eax
jnc L012nohalt
.byte 0x0f,0x31
pushl %edx
pushl %eax
hlt
.byte 0x0f,0x31
subl (%esp),%eax
sbbl 4(%esp),%edx
addl $8,%esp
ret
L012nohalt:
xorl %eax,%eax
xorl %edx,%edx
ret
.globl _OPENSSL_far_spin
.align 4
_OPENSSL_far_spin:
L_OPENSSL_far_spin_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushfl
popl %eax
btl $9,%eax
jnc L013nospin
movl 4(%esp),%eax
movl 8(%esp),%ecx
.long 2430111262
xorl %eax,%eax
movl (%ecx),%edx
jmp L014spin
.align 4,0x90
L014spin:
incl %eax
cmpl (%ecx),%edx
je L014spin
.long 529567888
ret
L013nospin:
xorl %eax,%eax
xorl %edx,%edx
ret
.globl _OPENSSL_wipe_cpu
.align 4
_OPENSSL_wipe_cpu:
L_OPENSSL_wipe_cpu_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
xorl %eax,%eax
xorl %edx,%edx
call L015PIC_me_up
L015PIC_me_up:
popl %ecx
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L015PIC_me_up(%ecx),%ecx
movl (%ecx),%ecx
btl $1,(%ecx)
jnc L016no_x87
andl $83886080,%ecx
cmpl $83886080,%ecx
jne L017no_sse2
pxor %xmm0,%xmm0
pxor %xmm1,%xmm1
pxor %xmm2,%xmm2
pxor %xmm3,%xmm3
pxor %xmm4,%xmm4
pxor %xmm5,%xmm5
pxor %xmm6,%xmm6
pxor %xmm7,%xmm7
L017no_sse2:
.long 4007259865,4007259865,4007259865,4007259865,2430851995
L016no_x87:
leal 4(%esp),%eax
ret
.globl _OPENSSL_atomic_add
.align 4
_OPENSSL_atomic_add:
L_OPENSSL_atomic_add_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
movl 4(%esp),%edx
movl 8(%esp),%ecx
pushl %ebx
nop
movl (%edx),%eax
L018spin:
leal (%eax,%ecx,1),%ebx
nop
.long 447811568
jne L018spin
movl %ebx,%eax
popl %ebx
ret
.globl _OPENSSL_cleanse
.align 4
_OPENSSL_cleanse:
L_OPENSSL_cleanse_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
movl 4(%esp),%edx
movl 8(%esp),%ecx
xorl %eax,%eax
cmpl $7,%ecx
jae L019lot
cmpl $0,%ecx
je L020ret
L021little:
movb %al,(%edx)
subl $1,%ecx
leal 1(%edx),%edx
jnz L021little
L020ret:
ret
.align 4,0x90
L019lot:
testl $3,%edx
jz L022aligned
movb %al,(%edx)
leal -1(%ecx),%ecx
leal 1(%edx),%edx
jmp L019lot
L022aligned:
movl %eax,(%edx)
leal -4(%ecx),%ecx
testl $-4,%ecx
leal 4(%edx),%edx
jnz L022aligned
cmpl $0,%ecx
jne L021little
ret
.globl _CRYPTO_memcmp
.align 4
_CRYPTO_memcmp:
L_CRYPTO_memcmp_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %esi
pushl %edi
movl 12(%esp),%esi
movl 16(%esp),%edi
movl 20(%esp),%ecx
xorl %eax,%eax
xorl %edx,%edx
cmpl $0,%ecx
je L023no_data
L024loop:
movb (%esi),%dl
leal 1(%esi),%esi
xorb (%edi),%dl
leal 1(%edi),%edi
orb %dl,%al
decl %ecx
jnz L024loop
negl %eax
shrl $31,%eax
L023no_data:
popl %edi
popl %esi
ret
.globl _OPENSSL_instrument_bus
.align 4
_OPENSSL_instrument_bus:
L_OPENSSL_instrument_bus_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl $0,%eax
call L025PIC_me_up
L025PIC_me_up:
popl %edx
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L025PIC_me_up(%edx),%edx
btl $4,(%edx)
jnc L026nogo
btl $19,(%edx)
jnc L026nogo
movl 20(%esp),%edi
movl 24(%esp),%ecx
.byte 0x0f,0x31
movl %eax,%esi
movl $0,%ebx
clflush (%edi)
.byte 240
addl %ebx,(%edi)
jmp L027loop
.align 4,0x90
L027loop:
.byte 0x0f,0x31
movl %eax,%edx
subl %esi,%eax
movl %edx,%esi
movl %eax,%ebx
clflush (%edi)
.byte 240
addl %eax,(%edi)
leal 4(%edi),%edi
subl $1,%ecx
jnz L027loop
movl 24(%esp),%eax
L026nogo:
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _OPENSSL_instrument_bus2
.align 4
_OPENSSL_instrument_bus2:
L_OPENSSL_instrument_bus2_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl $0,%eax
call L028PIC_me_up
L028PIC_me_up:
popl %edx
movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L028PIC_me_up(%edx),%edx
btl $4,(%edx)
jnc L029nogo
btl $19,(%edx)
jnc L029nogo
movl 20(%esp),%edi
movl 24(%esp),%ecx
movl 28(%esp),%ebp
.byte 0x0f,0x31
movl %eax,%esi
movl $0,%ebx
clflush (%edi)
.byte 240
addl %ebx,(%edi)
.byte 0x0f,0x31
movl %eax,%edx
subl %esi,%eax
movl %edx,%esi
movl %eax,%ebx
jmp L030loop2
.align 4,0x90
L030loop2:
clflush (%edi)
.byte 240
addl %eax,(%edi)
subl $1,%ebp
jz L031done2
.byte 0x0f,0x31
movl %eax,%edx
subl %esi,%eax
movl %edx,%esi
cmpl %ebx,%eax
movl %eax,%ebx
movl $0,%edx
setne %dl
subl %edx,%ecx
leal (%edi,%edx,4),%edi
jnz L030loop2
L031done2:
movl 24(%esp),%eax
subl %ecx,%eax
L029nogo:
popl %edi
popl %esi
popl %ebx
popl %ebp
ret
.globl _OPENSSL_ia32_rdrand_bytes
.align 4
_OPENSSL_ia32_rdrand_bytes:
L_OPENSSL_ia32_rdrand_bytes_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %edi
pushl %ebx
xorl %eax,%eax
movl 12(%esp),%edi
movl 16(%esp),%ebx
cmpl $0,%ebx
je L032done
movl $8,%ecx
L033loop:
.byte 15,199,242
jc L034break
loop L033loop
jmp L032done
.align 4,0x90
L034break:
cmpl $4,%ebx
jb L035tail
movl %edx,(%edi)
leal 4(%edi),%edi
addl $4,%eax
subl $4,%ebx
jz L032done
movl $8,%ecx
jmp L033loop
.align 4,0x90
L035tail:
movb %dl,(%edi)
leal 1(%edi),%edi
incl %eax
shrl $8,%edx
decl %ebx
jnz L035tail
L032done:
xorl %edx,%edx
popl %ebx
popl %edi
ret
.globl _OPENSSL_ia32_rdseed_bytes
.align 4
_OPENSSL_ia32_rdseed_bytes:
L_OPENSSL_ia32_rdseed_bytes_begin:
%ifdef __CET__
.byte 243,15,30,251
%endif
pushl %edi
pushl %ebx
xorl %eax,%eax
movl 12(%esp),%edi
movl 16(%esp),%ebx
cmpl $0,%ebx
je L036done
movl $8,%ecx
L037loop:
.byte 15,199,250
jc L038break
loop L037loop
jmp L036done
.align 4,0x90
L038break:
cmpl $4,%ebx
jb L039tail
movl %edx,(%edi)
leal 4(%edi),%edi
addl $4,%eax
subl $4,%ebx
jz L036done
movl $8,%ecx
jmp L037loop
.align 4,0x90
L039tail:
movb %dl,(%edi)
leal 1(%edi),%edi
incl %eax
shrl $8,%edx
decl %ebx
jnz L039tail
L036done:
xorl %edx,%edx
popl %ebx
popl %edi
ret
.section __IMPORT,__pointers,non_lazy_symbol_pointers
L_OPENSSL_ia32cap_P$non_lazy_ptr:
.indirect_symbol _OPENSSL_ia32cap_P
.long 0
.comm _OPENSSL_ia32cap_P,16,2
.mod_init_func
.align 2
.long _OPENSSL_cpuid_setup