亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? cmll-x86.pl

?? OpenSSL 0.9.8k 最新版OpenSSL
?? PL
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
#!/usr/bin/env perl# ====================================================================# Copyright (c) 2008 Andy Polyakov <appro@openssl.org>## This module may be used under the terms of either the GNU General# Public License version 2 or later, the GNU Lesser General Public# License version 2.1 or later, the Mozilla Public License version# 1.1 or the BSD License. The exact terms of either license are# distributed along with this module. For further details see# http://www.openssl.org/~appro/camellia/.# ====================================================================# Performance in cycles per processed byte (less is better) in# 'openssl speed ...' benchmark:##			AMD K8	Core2	PIII	P4# -evp camellia-128-ecb	21.5	22.8	27.0	28.9# + over gcc 3.4.6	+90/11% +70/10%	+53/4%	+160/64%# + over icc 8.0	+48/19% +21/15%	+21/17%	+55/37%## camellia-128-cbc	17.3	21.1	23.9	25.9## 128-bit key setup	196	280	256	240	cycles/key# + over gcc 3.4.6	+30/0%	+17/11%	+11/0%	+63/40%# + over icc 8.0	+18/3%	+10/0%	+10/3%	+21/10%## Pairs of numbers in "+" rows represent performance improvement over# compiler generated position-independent code, PIC, and non-PIC# respectively. PIC results are of greater relevance, as this module# is position-independent, i.e. suitable for a shared library or PIE.# Position independence "costs" one register, which is why compilers# are so close with non-PIC results, they have an extra register to# spare. CBC results are better than ECB ones thanks to "zero-copy"# private _x86_* interface, and are ~30-40% better than with compiler# generated cmll_cbc.o, and reach ~80-90% of x86_64 performance on# same CPU (where applicable).$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;push(@INC,"${dir}","${dir}../../perlasm");require "x86asm.pl";$OPENSSL=1;&asm_init($ARGV[0],"cmll-586.pl",$ARGV[$#ARGV] eq "386");@T=("eax","ebx","ecx","edx");$idx="esi";$key="edi";$Tbl="ebp";# stack frame layout in _x86_Camellia_* routines, frame is allocated# by caller$__ra=&DWP(0,"esp");	# return address$__s0=&DWP(4,"esp");	# s0 backing store$__s1=&DWP(8,"esp");	# s1 backing store$__s2=&DWP(12,"esp");	# s2 backing store$__s3=&DWP(16,"esp");	# s3 backing store$__end=&DWP(20,"esp");	# pointer to end/start of key schedule# stack frame layout in Camellia_[en|crypt] routines, which differs from# above by 4 and overlaps by pointer to end/start of key schedule$_end=&DWP(16,"esp");$_esp=&DWP(20,"esp");# const unsigned int Camellia_SBOX[4][256];# Well, sort of... Camellia_SBOX[0][] is interleaved with [1][],# and [2][] - with [3][]. This is done to optimize code size.$SBOX1_1110=0;		# Camellia_SBOX[0]$SBOX4_4404=4;		# Camellia_SBOX[1]$SBOX2_0222=2048;	# Camellia_SBOX[2]$SBOX3_3033=2052;	# Camellia_SBOX[3]&static_label("Camellia_SIGMA");&static_label("Camellia_SBOX");sub Camellia_Feistel {my $i=@_[0];my $seed=defined(@_[1])?@_[1]:0;my $scale=$seed<0?-8:8;my $frame=defined(@_[2])?@_[2]:0;my $j=($i&1)*2;my $t0=@T[($j)%4],$t1=@T[($j+1)%4],$t2=@T[($j+2)%4],$t3=@T[($j+3)%4];	&xor	($t0,$idx);				# t0^=key[0]	&xor	($t1,&DWP($seed+$i*$scale+4,$key));	# t1^=key[1]	&movz	($idx,&HB($t0));			# (t0>>8)&0xff	&mov	($t3,&DWP($SBOX3_3033,$Tbl,$idx,8));	# t3=SBOX3_3033[0]	&movz	($idx,&LB($t0));			# (t0>>0)&0xff	&xor	($t3,&DWP($SBOX4_4404,$Tbl,$idx,8));	# t3^=SBOX4_4404[0]	&shr	($t0,16);	&movz	($idx,&LB($t1));			# (t1>>0)&0xff	&mov	($t2,&DWP($SBOX1_1110,$Tbl,$idx,8));	# t2=SBOX1_1110[1]	&movz	($idx,&HB($t0));			# (t0>>24)&0xff	&xor	($t3,&DWP($SBOX1_1110,$Tbl,$idx,8));	# t3^=SBOX1_1110[0]	&movz	($idx,&HB($t1));			# (t1>>8)&0xff	&xor	($t2,&DWP($SBOX4_4404,$Tbl,$idx,8));	# t2^=SBOX4_4404[1]	&shr	($t1,16);	&movz	($t0,&LB($t0));				# (t0>>16)&0xff	&xor	($t3,&DWP($SBOX2_0222,$Tbl,$t0,8));	# t3^=SBOX2_0222[0]	&movz	($idx,&HB($t1));			# (t1>>24)&0xff	&mov	($t0,&DWP($frame+4*(($j+3)%4),"esp"));	# prefetch "s3"	&xor	($t2,$t3);				# t2^=t3	&rotr	($t3,8);				# t3=RightRotate(t3,8)	&xor	($t2,&DWP($SBOX2_0222,$Tbl,$idx,8));	# t2^=SBOX2_0222[1]	&movz	($idx,&LB($t1));			# (t1>>16)&0xff	&mov	($t1,&DWP($frame+4*(($j+2)%4),"esp"));	# prefetch "s2"	&xor	($t3,$t0);				# t3^=s3	&xor	($t2,&DWP($SBOX3_3033,$Tbl,$idx,8));	# t2^=SBOX3_3033[1]	&mov	($idx,&DWP($seed+($i+1)*$scale,$key));	# prefetch key[i+1]	&xor	($t3,$t2);				# t3^=t2	&mov	(&DWP($frame+4*(($j+3)%4),"esp"),$t3);	# s3=t3	&xor	($t2,$t1);				# t2^=s2	&mov	(&DWP($frame+4*(($j+2)%4),"esp"),$t2);	# s2=t2}# void Camellia_EncryptBlock_Rounds(#		int grandRounds,#		const Byte plaintext[],#		const KEY_TABLE_TYPE keyTable,#		Byte ciphertext[])&function_begin("Camellia_EncryptBlock_Rounds");	&mov	("eax",&wparam(0));	# load grandRounds	&mov	($idx,&wparam(1));	# load plaintext pointer	&mov	($key,&wparam(2));	# load key schedule pointer	&mov	("ebx","esp");	&sub	("esp",7*4);		# place for s[0-3],keyEnd,esp and ra	&and	("esp",-64);	# place stack frame just "above mod 1024" the key schedule	# this ensures that cache associativity of 2 suffices	&lea	("ecx",&DWP(-64-63,$key));	&sub	("ecx","esp");	&neg	("ecx");	&and	("ecx",0x3C0);	# modulo 1024, but aligned to cache-line	&sub	("esp","ecx");	&add	("esp",4);	# 4 is reserved for callee's return address	&shl	("eax",6);	&lea	("eax",&DWP(0,$key,"eax"));	&mov	($_esp,"ebx");	# save %esp	&mov	($_end,"eax");	# save keyEnd	&call	(&label("pic_point"));	&set_label("pic_point");	&blindpop($Tbl);	&lea	($Tbl,&DWP(&label("Camellia_SBOX")."-".&label("pic_point"),$Tbl));	&mov	(@T[0],&DWP(0,$idx));	# load plaintext	&mov	(@T[1],&DWP(4,$idx));	&mov	(@T[2],&DWP(8,$idx));	&bswap	(@T[0]);	&mov	(@T[3],&DWP(12,$idx));	&bswap	(@T[1]);	&bswap	(@T[2]);	&bswap	(@T[3]);	&call	("_x86_Camellia_encrypt");	&mov	("esp",$_esp);	&bswap	(@T[0]);	&mov	($idx,&wparam(3));	# load ciphertext pointer	&bswap	(@T[1]);	&bswap	(@T[2]);	&bswap	(@T[3]);	&mov	(&DWP(0,$idx),@T[0]);	# write ciphertext	&mov	(&DWP(4,$idx),@T[1]);	&mov	(&DWP(8,$idx),@T[2]);	&mov	(&DWP(12,$idx),@T[3]);&function_end("Camellia_EncryptBlock_Rounds");# V1.x API&function_begin_B("Camellia_EncryptBlock");	&mov	("eax",128);	&sub	("eax",&wparam(0));	# load keyBitLength	&mov	("eax",3);	&adc	("eax",0);		# keyBitLength==128?3:4	&mov	(&wparam(0),"eax");	&jmp	(&label("Camellia_EncryptBlock_Rounds"));&function_end_B("Camellia_EncryptBlock");if ($OPENSSL) {# void Camellia_encrypt(#		const unsigned char *in,#		unsigned char *out,#		const CAMELLIA_KEY *key)&function_begin("Camellia_encrypt");	&mov	($idx,&wparam(0));	# load plaintext pointer	&mov	($key,&wparam(2));	# load key schedule pointer	&mov	("ebx","esp");	&sub	("esp",7*4);		# place for s[0-3],keyEnd,esp and ra	&and	("esp",-64);	&mov	("eax",&DWP(272,$key));	# load grandRounds counter	# place stack frame just "above mod 1024" the key schedule	# this ensures that cache associativity of 2 suffices	&lea	("ecx",&DWP(-64-63,$key));	&sub	("ecx","esp");	&neg	("ecx");	&and	("ecx",0x3C0);	# modulo 1024, but aligned to cache-line	&sub	("esp","ecx");	&add	("esp",4);	# 4 is reserved for callee's return address	&shl	("eax",6);	&lea	("eax",&DWP(0,$key,"eax"));	&mov	($_esp,"ebx");	# save %esp	&mov	($_end,"eax");	# save keyEnd	&call	(&label("pic_point"));	&set_label("pic_point");	&blindpop($Tbl);	&lea	($Tbl,&DWP(&label("Camellia_SBOX")."-".&label("pic_point"),$Tbl));	&mov	(@T[0],&DWP(0,$idx));	# load plaintext	&mov	(@T[1],&DWP(4,$idx));	&mov	(@T[2],&DWP(8,$idx));	&bswap	(@T[0]);	&mov	(@T[3],&DWP(12,$idx));	&bswap	(@T[1]);	&bswap	(@T[2]);	&bswap	(@T[3]);	&call	("_x86_Camellia_encrypt");	&mov	("esp",$_esp);	&bswap	(@T[0]);	&mov	($idx,&wparam(1));	# load ciphertext pointer	&bswap	(@T[1]);	&bswap	(@T[2]);	&bswap	(@T[3]);	&mov	(&DWP(0,$idx),@T[0]);	# write ciphertext	&mov	(&DWP(4,$idx),@T[1]);	&mov	(&DWP(8,$idx),@T[2]);	&mov	(&DWP(12,$idx),@T[3]);&function_end("Camellia_encrypt");}&function_begin_B("_x86_Camellia_encrypt");	&xor	(@T[0],&DWP(0,$key));	# ^=key[0-3]	&xor	(@T[1],&DWP(4,$key));	&xor	(@T[2],&DWP(8,$key));	&xor	(@T[3],&DWP(12,$key));	&mov	($idx,&DWP(16,$key));	# prefetch key[4]	&mov	($__s0,@T[0]);		# save s[0-3]	&mov	($__s1,@T[1]);	&mov	($__s2,@T[2]);	&mov	($__s3,@T[3]);&set_label("loop",16);	for ($i=0;$i<6;$i++) { Camellia_Feistel($i,16,4); }	&add	($key,16*4);	&cmp	($key,$__end);	&je	(&label("done"));	# @T[0-1] are preloaded, $idx is preloaded with key[0]	&and	($idx,@T[0]);	 &mov	 (@T[3],$__s3);	&rotl	($idx,1);	 &mov	 (@T[2],@T[3]);	&xor	(@T[1],$idx);	 &or	 (@T[2],&DWP(12,$key));	&mov	($__s1,@T[1]);		# s1^=LeftRotate(s0&key[0],1);	 &xor	 (@T[2],$__s2);	&mov	($idx,&DWP(4,$key));	 &mov	 ($__s2,@T[2]);		# s2^=s3|key[3];	&or	($idx,@T[1]);	 &and	 (@T[2],&DWP(8,$key));	&xor	(@T[0],$idx);	 &rotl	 (@T[2],1);	&mov	($__s0,@T[0]);		# s0^=s1|key[1];	 &xor	 (@T[3],@T[2]);	&mov	($idx,&DWP(16,$key));		# prefetch key[4]	 &mov	 ($__s3,@T[3]);		# s3^=LeftRotate(s2&key[2],1);	&jmp	(&label("loop"));&set_label("done",8);	&mov	(@T[2],@T[0]);		# SwapHalf	&mov	(@T[3],@T[1]);	&mov	(@T[0],$__s2);	&mov	(@T[1],$__s3);	&xor	(@T[0],$idx);		# $idx is preloaded with key[0]	&xor	(@T[1],&DWP(4,$key));	&xor	(@T[2],&DWP(8,$key));	&xor	(@T[3],&DWP(12,$key));	&ret	();&function_end_B("_x86_Camellia_encrypt");# void Camellia_DecryptBlock_Rounds(#		int grandRounds,#		const Byte ciphertext[],#		const KEY_TABLE_TYPE keyTable,#		Byte plaintext[])&function_begin("Camellia_DecryptBlock_Rounds");	&mov	("eax",&wparam(0));	# load grandRounds	&mov	($idx,&wparam(1));	# load ciphertext pointer	&mov	($key,&wparam(2));	# load key schedule pointer	&mov	("ebx","esp");	&sub	("esp",7*4);		# place for s[0-3],keyEnd,esp and ra	&and	("esp",-64);	# place stack frame just "above mod 1024" the key schedule	# this ensures that cache associativity of 2 suffices	&lea	("ecx",&DWP(-64-63,$key));	&sub	("ecx","esp");	&neg	("ecx");	&and	("ecx",0x3C0);	# modulo 1024, but aligned to cache-line	&sub	("esp","ecx");	&add	("esp",4);	# 4 is reserved for callee's return address	&shl	("eax",6);	&mov	(&DWP(4*4,"esp"),$key);	# save keyStart	&lea	($key,&DWP(0,$key,"eax"));	&mov	(&DWP(5*4,"esp"),"ebx");# save %esp	&call	(&label("pic_point"));	&set_label("pic_point");	&blindpop($Tbl);	&lea	($Tbl,&DWP(&label("Camellia_SBOX")."-".&label("pic_point"),$Tbl));	&mov	(@T[0],&DWP(0,$idx));	# load ciphertext	&mov	(@T[1],&DWP(4,$idx));	&mov	(@T[2],&DWP(8,$idx));	&bswap	(@T[0]);	&mov	(@T[3],&DWP(12,$idx));	&bswap	(@T[1]);	&bswap	(@T[2]);	&bswap	(@T[3]);	&call	("_x86_Camellia_decrypt");	&mov	("esp",&DWP(5*4,"esp"));	&bswap	(@T[0]);	&mov	($idx,&wparam(3));	# load plaintext pointer	&bswap	(@T[1]);	&bswap	(@T[2]);	&bswap	(@T[3]);	&mov	(&DWP(0,$idx),@T[0]);	# write plaintext	&mov	(&DWP(4,$idx),@T[1]);	&mov	(&DWP(8,$idx),@T[2]);	&mov	(&DWP(12,$idx),@T[3]);&function_end("Camellia_DecryptBlock_Rounds");# V1.x API&function_begin_B("Camellia_DecryptBlock");	&mov	("eax",128);	&sub	("eax",&wparam(0));	# load keyBitLength	&mov	("eax",3);	&adc	("eax",0);		# keyBitLength==128?3:4	&mov	(&wparam(0),"eax");	&jmp	(&label("Camellia_DecryptBlock_Rounds"));&function_end_B("Camellia_DecryptBlock");if ($OPENSSL) {# void Camellia_decrypt(#		const unsigned char *in,#		unsigned char *out,#		const CAMELLIA_KEY *key)&function_begin("Camellia_decrypt");	&mov	($idx,&wparam(0));	# load ciphertext pointer	&mov	($key,&wparam(2));	# load key schedule pointer	&mov	("ebx","esp");	&sub	("esp",7*4);		# place for s[0-3],keyEnd,esp and ra	&and	("esp",-64);	&mov	("eax",&DWP(272,$key));	# load grandRounds counter	# place stack frame just "above mod 1024" the key schedule	# this ensures that cache associativity of 2 suffices	&lea	("ecx",&DWP(-64-63,$key));	&sub	("ecx","esp");	&neg	("ecx");	&and	("ecx",0x3C0);	# modulo 1024, but aligned to cache-line	&sub	("esp","ecx");	&add	("esp",4);	# 4 is reserved for callee's return address	&shl	("eax",6);	&mov	(&DWP(4*4,"esp"),$key);	# save keyStart

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产麻豆国产自产在线| 在线观看亚洲精品| 亚洲色图在线视频| 欧美福利视频导航| 全国精品久久少妇| 国产精品久久久久久久第一福利| 欧美日韩中文字幕精品| 久久福利资源站| 亚洲欧美日韩小说| 国产亚洲精品福利| 欧美精品在线观看播放| 国产九九视频一区二区三区| 亚洲欧洲精品天堂一级| 欧美一级片在线观看| 久久国产精品99精品国产| 最好看的中文字幕久久| 精品福利二区三区| 欧美亚洲一区二区在线| 日本免费新一区视频| 国产女主播视频一区二区| 欧美福利视频一区| 色婷婷综合久久久中文一区二区 | 中文字幕一区二区三区色视频| 欧美午夜精品久久久久久孕妇| 国产精品一品二品| 秋霞电影网一区二区| 亚洲一区视频在线| 国产精品久久毛片| 欧美激情一区二区三区在线| 欧美吻胸吃奶大尺度电影 | 日韩 欧美一区二区三区| 中文字幕亚洲一区二区av在线| 精品日韩一区二区三区| 欧美日韩免费观看一区三区| 国产成人免费在线观看不卡| 蜜臀av一区二区| 亚洲成人免费视| 亚洲伊人色欲综合网| 亚洲视频每日更新| 国产精品三级av在线播放| 久久嫩草精品久久久精品| 91精品国产综合久久国产大片| 欧美视频日韩视频| 丁香天五香天堂综合| 日产精品久久久久久久性色| 亚洲成人激情社区| 亚洲一区在线视频观看| 一区二区三区四区激情| 亚洲视频一区在线观看| 中文字幕一区二| 国产精品理伦片| 国产精品电影院| 国产精品久久久久久久久搜平片 | 精品综合久久久久久8888| 日韩精品电影在线观看| 亚洲精品中文在线观看| 亚洲美女视频一区| 亚洲视频图片小说| 国产精品美女一区二区| 精品91自产拍在线观看一区| 精品播放一区二区| 久久综合久久99| 久久一日本道色综合| 久久尤物电影视频在线观看| www国产亚洲精品久久麻豆| 国产午夜精品久久久久久免费视 | 久久69国产一区二区蜜臀 | 972aa.com艺术欧美| 91美女片黄在线| 色成年激情久久综合| 在线视频你懂得一区| 91麻豆精品在线观看| 波多野结衣欧美| 91在线你懂得| 欧美日本在线观看| 欧美亚洲综合在线| 91视频国产观看| 在线免费一区三区| 日韩一级片网址| 欧美videossexotv100| 久久伊人中文字幕| 亚洲精品国产精品乱码不99| 午夜精品久久久久久久| 亚洲第一福利一区| 久色婷婷小香蕉久久| 国产91综合一区在线观看| 9l国产精品久久久久麻豆| 欧美午夜寂寞影院| 久久美女高清视频| 成人欧美一区二区三区在线播放| 日韩毛片精品高清免费| 三级久久三级久久| 久久97超碰色| 日本精品一区二区三区四区的功能| 欧美三级在线视频| 久久综合丝袜日本网| 亚洲精品免费在线播放| 亚洲精品成人在线| 精品一区二区三区免费视频| eeuss国产一区二区三区| 欧美情侣在线播放| 国产婷婷色一区二区三区 | 一区二区三区四区乱视频| 日韩av在线免费观看不卡| 欧美日韩美少妇| 国产日韩欧美激情| 亚洲第一久久影院| 国产成人av电影在线观看| 欧美三级电影在线观看| 久久精品人人做人人综合| 亚洲欧美日韩在线不卡| 国产在线精品视频| 欧美日本乱大交xxxxx| 久久久亚洲精品石原莉奈| 亚洲电影激情视频网站| 国产成人av电影| 欧美一区二区三区视频| 久久久三级国产网站| 亚洲欧美日韩国产成人精品影院| 久久99精品久久久久久久久久久久| 91免费版在线看| 久久久久久一二三区| 免费观看成人av| 国产成a人无v码亚洲福利| 精品少妇一区二区三区在线播放| 亚洲精品高清在线观看| 成人午夜视频免费看| 精品免费99久久| 日韩电影免费一区| 色综合久久综合| 亚洲国产高清在线| 国产一区二区不卡在线| 在线不卡一区二区| 亚洲视频在线观看三级| av亚洲精华国产精华精华 | 欧美国产日本视频| 国产不卡免费视频| 国产精品超碰97尤物18| 99视频精品全部免费在线| 中文字幕一区二区三区在线观看| 成a人片国产精品| 成人欧美一区二区三区在线播放| 99在线精品免费| 一区二区三区视频在线看| 在线视频你懂得一区| 婷婷激情综合网| 精品国产电影一区二区| 国产成人自拍网| 亚洲少妇最新在线视频| 欧美视频一区在线| 久久精品av麻豆的观看方式| 欧美精品一区二区在线播放| 国产二区国产一区在线观看| 国产精品久久久久久妇女6080| 91视视频在线观看入口直接观看www | 国产成人精品一区二| 综合久久久久综合| 欧美亚洲精品一区| 日韩av中文字幕一区二区 | 国产精品色哟哟| 欧美主播一区二区三区美女| 午夜成人免费视频| 久久九九全国免费| 久久精品免费在线观看| 中文字幕精品在线不卡| 丰满放荡岳乱妇91ww| 亚洲精品美国一| 日韩一级二级三级| 不卡高清视频专区| 亚洲成人福利片| 久久蜜桃香蕉精品一区二区三区| 99在线精品视频| 日本午夜一本久久久综合| 久久久国产精品麻豆 | 91精品国产全国免费观看| 国产精品一区二区果冻传媒| 亚洲精品精品亚洲| 精品国产伦一区二区三区观看体验| 成人精品一区二区三区四区| 亚洲国产毛片aaaaa无费看| 2023国产精品自拍| 欧美日韩色一区| 国产一区美女在线| 亚洲国产精品一区二区久久| 久久久久9999亚洲精品| 欧美综合视频在线观看| 国产一区二区剧情av在线| 亚洲成人手机在线| 国产精品成人在线观看| 欧美tickle裸体挠脚心vk| 在线视频一区二区免费| 大白屁股一区二区视频| 美女诱惑一区二区| 亚洲一区在线视频| 国产精品网站在线播放| 日韩欧美一级二级| 欧美日韩久久久久久| 色综合婷婷久久| 国产传媒一区在线| 久久99精品久久只有精品|