bf-686.s revision 95967
195967Speter	# $FreeBSD: head/secure/lib/libcrypto/i386/bf-686.s 95967 2002-05-03 00:14:39Z peter $
295967Speter	# Dont even think of reading this code
395967Speter	# It was automatically generated by bf-686.pl
495967Speter	# Which is a perl program used to generate the x86 assember for
595967Speter	# any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris
695967Speter	# eric <eay@cryptsoft.com>
795967Speter
895967Speter	.file	"bf-686.s"
995967Speter	.version	"01.01"
1095967Spetergcc2_compiled.:
1195967Speter.text
1295967Speter	.align 16
1395967Speter.globl BF_encrypt
1495967Speter	.type	BF_encrypt,@function
1595967SpeterBF_encrypt:
1695967Speter	pushl	%ebp
1795967Speter	pushl	%ebx
1895967Speter	pushl	%esi
1995967Speter	pushl	%edi
2095967Speter
2195967Speter
2295967Speter	# Load the 2 words
2395967Speter	movl	20(%esp),	%eax
2495967Speter	movl	(%eax),		%ecx
2595967Speter	movl	4(%eax),	%edx
2695967Speter
2795967Speter	# P pointer, s and enc flag
2895967Speter	movl	24(%esp),	%edi
2995967Speter	xorl	%eax,		%eax
3095967Speter	xorl	%ebx,		%ebx
3195967Speter	xorl	(%edi),		%ecx
3295967Speter
3395967Speter	# Round 0
3495967Speter	rorl	$16,		%ecx
3595967Speter	movl	4(%edi),	%esi
3695967Speter	movb	%ch,		%al
3795967Speter	movb	%cl,		%bl
3895967Speter	rorl	$16,		%ecx
3995967Speter	xorl	%esi,		%edx
4095967Speter	movl	72(%edi,%eax,4),%esi
4195967Speter	movl	1096(%edi,%ebx,4),%ebp
4295967Speter	movb	%ch,		%al
4395967Speter	movb	%cl,		%bl
4495967Speter	addl	%ebp,		%esi
4595967Speter	movl	2120(%edi,%eax,4),%eax
4695967Speter	xorl	%eax,		%esi
4795967Speter	movl	3144(%edi,%ebx,4),%ebp
4895967Speter	addl	%ebp,		%esi
4995967Speter	xorl	%eax,		%eax
5095967Speter	xorl	%esi,		%edx
5195967Speter
5295967Speter	# Round 1
5395967Speter	rorl	$16,		%edx
5495967Speter	movl	8(%edi),	%esi
5595967Speter	movb	%dh,		%al
5695967Speter	movb	%dl,		%bl
5795967Speter	rorl	$16,		%edx
5895967Speter	xorl	%esi,		%ecx
5995967Speter	movl	72(%edi,%eax,4),%esi
6095967Speter	movl	1096(%edi,%ebx,4),%ebp
6195967Speter	movb	%dh,		%al
6295967Speter	movb	%dl,		%bl
6395967Speter	addl	%ebp,		%esi
6495967Speter	movl	2120(%edi,%eax,4),%eax
6595967Speter	xorl	%eax,		%esi
6695967Speter	movl	3144(%edi,%ebx,4),%ebp
6795967Speter	addl	%ebp,		%esi
6895967Speter	xorl	%eax,		%eax
6995967Speter	xorl	%esi,		%ecx
7095967Speter
7195967Speter	# Round 2
7295967Speter	rorl	$16,		%ecx
7395967Speter	movl	12(%edi),	%esi
7495967Speter	movb	%ch,		%al
7595967Speter	movb	%cl,		%bl
7695967Speter	rorl	$16,		%ecx
7795967Speter	xorl	%esi,		%edx
7895967Speter	movl	72(%edi,%eax,4),%esi
7995967Speter	movl	1096(%edi,%ebx,4),%ebp
8095967Speter	movb	%ch,		%al
8195967Speter	movb	%cl,		%bl
8295967Speter	addl	%ebp,		%esi
8395967Speter	movl	2120(%edi,%eax,4),%eax
8495967Speter	xorl	%eax,		%esi
8595967Speter	movl	3144(%edi,%ebx,4),%ebp
8695967Speter	addl	%ebp,		%esi
8795967Speter	xorl	%eax,		%eax
8895967Speter	xorl	%esi,		%edx
8995967Speter
9095967Speter	# Round 3
9195967Speter	rorl	$16,		%edx
9295967Speter	movl	16(%edi),	%esi
9395967Speter	movb	%dh,		%al
9495967Speter	movb	%dl,		%bl
9595967Speter	rorl	$16,		%edx
9695967Speter	xorl	%esi,		%ecx
9795967Speter	movl	72(%edi,%eax,4),%esi
9895967Speter	movl	1096(%edi,%ebx,4),%ebp
9995967Speter	movb	%dh,		%al
10095967Speter	movb	%dl,		%bl
10195967Speter	addl	%ebp,		%esi
10295967Speter	movl	2120(%edi,%eax,4),%eax
10395967Speter	xorl	%eax,		%esi
10495967Speter	movl	3144(%edi,%ebx,4),%ebp
10595967Speter	addl	%ebp,		%esi
10695967Speter	xorl	%eax,		%eax
10795967Speter	xorl	%esi,		%ecx
10895967Speter
10995967Speter	# Round 4
11095967Speter	rorl	$16,		%ecx
11195967Speter	movl	20(%edi),	%esi
11295967Speter	movb	%ch,		%al
11395967Speter	movb	%cl,		%bl
11495967Speter	rorl	$16,		%ecx
11595967Speter	xorl	%esi,		%edx
11695967Speter	movl	72(%edi,%eax,4),%esi
11795967Speter	movl	1096(%edi,%ebx,4),%ebp
11895967Speter	movb	%ch,		%al
11995967Speter	movb	%cl,		%bl
12095967Speter	addl	%ebp,		%esi
12195967Speter	movl	2120(%edi,%eax,4),%eax
12295967Speter	xorl	%eax,		%esi
12395967Speter	movl	3144(%edi,%ebx,4),%ebp
12495967Speter	addl	%ebp,		%esi
12595967Speter	xorl	%eax,		%eax
12695967Speter	xorl	%esi,		%edx
12795967Speter
12895967Speter	# Round 5
12995967Speter	rorl	$16,		%edx
13095967Speter	movl	24(%edi),	%esi
13195967Speter	movb	%dh,		%al
13295967Speter	movb	%dl,		%bl
13395967Speter	rorl	$16,		%edx
13495967Speter	xorl	%esi,		%ecx
13595967Speter	movl	72(%edi,%eax,4),%esi
13695967Speter	movl	1096(%edi,%ebx,4),%ebp
13795967Speter	movb	%dh,		%al
13895967Speter	movb	%dl,		%bl
13995967Speter	addl	%ebp,		%esi
14095967Speter	movl	2120(%edi,%eax,4),%eax
14195967Speter	xorl	%eax,		%esi
14295967Speter	movl	3144(%edi,%ebx,4),%ebp
14395967Speter	addl	%ebp,		%esi
14495967Speter	xorl	%eax,		%eax
14595967Speter	xorl	%esi,		%ecx
14695967Speter
14795967Speter	# Round 6
14895967Speter	rorl	$16,		%ecx
14995967Speter	movl	28(%edi),	%esi
15095967Speter	movb	%ch,		%al
15195967Speter	movb	%cl,		%bl
15295967Speter	rorl	$16,		%ecx
15395967Speter	xorl	%esi,		%edx
15495967Speter	movl	72(%edi,%eax,4),%esi
15595967Speter	movl	1096(%edi,%ebx,4),%ebp
15695967Speter	movb	%ch,		%al
15795967Speter	movb	%cl,		%bl
15895967Speter	addl	%ebp,		%esi
15995967Speter	movl	2120(%edi,%eax,4),%eax
16095967Speter	xorl	%eax,		%esi
16195967Speter	movl	3144(%edi,%ebx,4),%ebp
16295967Speter	addl	%ebp,		%esi
16395967Speter	xorl	%eax,		%eax
16495967Speter	xorl	%esi,		%edx
16595967Speter
16695967Speter	# Round 7
16795967Speter	rorl	$16,		%edx
16895967Speter	movl	32(%edi),	%esi
16995967Speter	movb	%dh,		%al
17095967Speter	movb	%dl,		%bl
17195967Speter	rorl	$16,		%edx
17295967Speter	xorl	%esi,		%ecx
17395967Speter	movl	72(%edi,%eax,4),%esi
17495967Speter	movl	1096(%edi,%ebx,4),%ebp
17595967Speter	movb	%dh,		%al
17695967Speter	movb	%dl,		%bl
17795967Speter	addl	%ebp,		%esi
17895967Speter	movl	2120(%edi,%eax,4),%eax
17995967Speter	xorl	%eax,		%esi
18095967Speter	movl	3144(%edi,%ebx,4),%ebp
18195967Speter	addl	%ebp,		%esi
18295967Speter	xorl	%eax,		%eax
18395967Speter	xorl	%esi,		%ecx
18495967Speter
18595967Speter	# Round 8
18695967Speter	rorl	$16,		%ecx
18795967Speter	movl	36(%edi),	%esi
18895967Speter	movb	%ch,		%al
18995967Speter	movb	%cl,		%bl
19095967Speter	rorl	$16,		%ecx
19195967Speter	xorl	%esi,		%edx
19295967Speter	movl	72(%edi,%eax,4),%esi
19395967Speter	movl	1096(%edi,%ebx,4),%ebp
19495967Speter	movb	%ch,		%al
19595967Speter	movb	%cl,		%bl
19695967Speter	addl	%ebp,		%esi
19795967Speter	movl	2120(%edi,%eax,4),%eax
19895967Speter	xorl	%eax,		%esi
19995967Speter	movl	3144(%edi,%ebx,4),%ebp
20095967Speter	addl	%ebp,		%esi
20195967Speter	xorl	%eax,		%eax
20295967Speter	xorl	%esi,		%edx
20395967Speter
20495967Speter	# Round 9
20595967Speter	rorl	$16,		%edx
20695967Speter	movl	40(%edi),	%esi
20795967Speter	movb	%dh,		%al
20895967Speter	movb	%dl,		%bl
20995967Speter	rorl	$16,		%edx
21095967Speter	xorl	%esi,		%ecx
21195967Speter	movl	72(%edi,%eax,4),%esi
21295967Speter	movl	1096(%edi,%ebx,4),%ebp
21395967Speter	movb	%dh,		%al
21495967Speter	movb	%dl,		%bl
21595967Speter	addl	%ebp,		%esi
21695967Speter	movl	2120(%edi,%eax,4),%eax
21795967Speter	xorl	%eax,		%esi
21895967Speter	movl	3144(%edi,%ebx,4),%ebp
21995967Speter	addl	%ebp,		%esi
22095967Speter	xorl	%eax,		%eax
22195967Speter	xorl	%esi,		%ecx
22295967Speter
22395967Speter	# Round 10
22495967Speter	rorl	$16,		%ecx
22595967Speter	movl	44(%edi),	%esi
22695967Speter	movb	%ch,		%al
22795967Speter	movb	%cl,		%bl
22895967Speter	rorl	$16,		%ecx
22995967Speter	xorl	%esi,		%edx
23095967Speter	movl	72(%edi,%eax,4),%esi
23195967Speter	movl	1096(%edi,%ebx,4),%ebp
23295967Speter	movb	%ch,		%al
23395967Speter	movb	%cl,		%bl
23495967Speter	addl	%ebp,		%esi
23595967Speter	movl	2120(%edi,%eax,4),%eax
23695967Speter	xorl	%eax,		%esi
23795967Speter	movl	3144(%edi,%ebx,4),%ebp
23895967Speter	addl	%ebp,		%esi
23995967Speter	xorl	%eax,		%eax
24095967Speter	xorl	%esi,		%edx
24195967Speter
24295967Speter	# Round 11
24395967Speter	rorl	$16,		%edx
24495967Speter	movl	48(%edi),	%esi
24595967Speter	movb	%dh,		%al
24695967Speter	movb	%dl,		%bl
24795967Speter	rorl	$16,		%edx
24895967Speter	xorl	%esi,		%ecx
24995967Speter	movl	72(%edi,%eax,4),%esi
25095967Speter	movl	1096(%edi,%ebx,4),%ebp
25195967Speter	movb	%dh,		%al
25295967Speter	movb	%dl,		%bl
25395967Speter	addl	%ebp,		%esi
25495967Speter	movl	2120(%edi,%eax,4),%eax
25595967Speter	xorl	%eax,		%esi
25695967Speter	movl	3144(%edi,%ebx,4),%ebp
25795967Speter	addl	%ebp,		%esi
25895967Speter	xorl	%eax,		%eax
25995967Speter	xorl	%esi,		%ecx
26095967Speter
26195967Speter	# Round 12
26295967Speter	rorl	$16,		%ecx
26395967Speter	movl	52(%edi),	%esi
26495967Speter	movb	%ch,		%al
26595967Speter	movb	%cl,		%bl
26695967Speter	rorl	$16,		%ecx
26795967Speter	xorl	%esi,		%edx
26895967Speter	movl	72(%edi,%eax,4),%esi
26995967Speter	movl	1096(%edi,%ebx,4),%ebp
27095967Speter	movb	%ch,		%al
27195967Speter	movb	%cl,		%bl
27295967Speter	addl	%ebp,		%esi
27395967Speter	movl	2120(%edi,%eax,4),%eax
27495967Speter	xorl	%eax,		%esi
27595967Speter	movl	3144(%edi,%ebx,4),%ebp
27695967Speter	addl	%ebp,		%esi
27795967Speter	xorl	%eax,		%eax
27895967Speter	xorl	%esi,		%edx
27995967Speter
28095967Speter	# Round 13
28195967Speter	rorl	$16,		%edx
28295967Speter	movl	56(%edi),	%esi
28395967Speter	movb	%dh,		%al
28495967Speter	movb	%dl,		%bl
28595967Speter	rorl	$16,		%edx
28695967Speter	xorl	%esi,		%ecx
28795967Speter	movl	72(%edi,%eax,4),%esi
28895967Speter	movl	1096(%edi,%ebx,4),%ebp
28995967Speter	movb	%dh,		%al
29095967Speter	movb	%dl,		%bl
29195967Speter	addl	%ebp,		%esi
29295967Speter	movl	2120(%edi,%eax,4),%eax
29395967Speter	xorl	%eax,		%esi
29495967Speter	movl	3144(%edi,%ebx,4),%ebp
29595967Speter	addl	%ebp,		%esi
29695967Speter	xorl	%eax,		%eax
29795967Speter	xorl	%esi,		%ecx
29895967Speter
29995967Speter	# Round 14
30095967Speter	rorl	$16,		%ecx
30195967Speter	movl	60(%edi),	%esi
30295967Speter	movb	%ch,		%al
30395967Speter	movb	%cl,		%bl
30495967Speter	rorl	$16,		%ecx
30595967Speter	xorl	%esi,		%edx
30695967Speter	movl	72(%edi,%eax,4),%esi
30795967Speter	movl	1096(%edi,%ebx,4),%ebp
30895967Speter	movb	%ch,		%al
30995967Speter	movb	%cl,		%bl
31095967Speter	addl	%ebp,		%esi
31195967Speter	movl	2120(%edi,%eax,4),%eax
31295967Speter	xorl	%eax,		%esi
31395967Speter	movl	3144(%edi,%ebx,4),%ebp
31495967Speter	addl	%ebp,		%esi
31595967Speter	xorl	%eax,		%eax
31695967Speter	xorl	%esi,		%edx
31795967Speter
31895967Speter	# Round 15
31995967Speter	rorl	$16,		%edx
32095967Speter	movl	64(%edi),	%esi
32195967Speter	movb	%dh,		%al
32295967Speter	movb	%dl,		%bl
32395967Speter	rorl	$16,		%edx
32495967Speter	xorl	%esi,		%ecx
32595967Speter	movl	72(%edi,%eax,4),%esi
32695967Speter	movl	1096(%edi,%ebx,4),%ebp
32795967Speter	movb	%dh,		%al
32895967Speter	movb	%dl,		%bl
32995967Speter	addl	%ebp,		%esi
33095967Speter	movl	2120(%edi,%eax,4),%eax
33195967Speter	xorl	%eax,		%esi
33295967Speter	movl	3144(%edi,%ebx,4),%ebp
33395967Speter	addl	%ebp,		%esi
33495967Speter	xorl	%eax,		%eax
33595967Speter	xorl	%esi,		%ecx
33695967Speter	xorl	68(%edi),	%edx
33795967Speter	movl	20(%esp),	%eax
33895967Speter	movl	%edx,		(%eax)
33995967Speter	movl	%ecx,		4(%eax)
34095967Speter	popl	%edi
34195967Speter	popl	%esi
34295967Speter	popl	%ebx
34395967Speter	popl	%ebp
34495967Speter	ret
34595967Speter.L_BF_encrypt_end:
34695967Speter	.size	BF_encrypt,.L_BF_encrypt_end-BF_encrypt
34795967Speter.ident	"desasm.pl"
34895967Speter.text
34995967Speter	.align 16
35095967Speter.globl BF_decrypt
35195967Speter	.type	BF_decrypt,@function
35295967SpeterBF_decrypt:
35395967Speter	pushl	%ebp
35495967Speter	pushl	%ebx
35595967Speter	pushl	%esi
35695967Speter	pushl	%edi
35795967Speter
35895967Speter
35995967Speter	# Load the 2 words
36095967Speter	movl	20(%esp),	%eax
36195967Speter	movl	(%eax),		%ecx
36295967Speter	movl	4(%eax),	%edx
36395967Speter
36495967Speter	# P pointer, s and enc flag
36595967Speter	movl	24(%esp),	%edi
36695967Speter	xorl	%eax,		%eax
36795967Speter	xorl	%ebx,		%ebx
36895967Speter	xorl	68(%edi),	%ecx
36995967Speter
37095967Speter	# Round 16
37195967Speter	rorl	$16,		%ecx
37295967Speter	movl	64(%edi),	%esi
37395967Speter	movb	%ch,		%al
37495967Speter	movb	%cl,		%bl
37595967Speter	rorl	$16,		%ecx
37695967Speter	xorl	%esi,		%edx
37795967Speter	movl	72(%edi,%eax,4),%esi
37895967Speter	movl	1096(%edi,%ebx,4),%ebp
37995967Speter	movb	%ch,		%al
38095967Speter	movb	%cl,		%bl
38195967Speter	addl	%ebp,		%esi
38295967Speter	movl	2120(%edi,%eax,4),%eax
38395967Speter	xorl	%eax,		%esi
38495967Speter	movl	3144(%edi,%ebx,4),%ebp
38595967Speter	addl	%ebp,		%esi
38695967Speter	xorl	%eax,		%eax
38795967Speter	xorl	%esi,		%edx
38895967Speter
38995967Speter	# Round 15
39095967Speter	rorl	$16,		%edx
39195967Speter	movl	60(%edi),	%esi
39295967Speter	movb	%dh,		%al
39395967Speter	movb	%dl,		%bl
39495967Speter	rorl	$16,		%edx
39595967Speter	xorl	%esi,		%ecx
39695967Speter	movl	72(%edi,%eax,4),%esi
39795967Speter	movl	1096(%edi,%ebx,4),%ebp
39895967Speter	movb	%dh,		%al
39995967Speter	movb	%dl,		%bl
40095967Speter	addl	%ebp,		%esi
40195967Speter	movl	2120(%edi,%eax,4),%eax
40295967Speter	xorl	%eax,		%esi
40395967Speter	movl	3144(%edi,%ebx,4),%ebp
40495967Speter	addl	%ebp,		%esi
40595967Speter	xorl	%eax,		%eax
40695967Speter	xorl	%esi,		%ecx
40795967Speter
40895967Speter	# Round 14
40995967Speter	rorl	$16,		%ecx
41095967Speter	movl	56(%edi),	%esi
41195967Speter	movb	%ch,		%al
41295967Speter	movb	%cl,		%bl
41395967Speter	rorl	$16,		%ecx
41495967Speter	xorl	%esi,		%edx
41595967Speter	movl	72(%edi,%eax,4),%esi
41695967Speter	movl	1096(%edi,%ebx,4),%ebp
41795967Speter	movb	%ch,		%al
41895967Speter	movb	%cl,		%bl
41995967Speter	addl	%ebp,		%esi
42095967Speter	movl	2120(%edi,%eax,4),%eax
42195967Speter	xorl	%eax,		%esi
42295967Speter	movl	3144(%edi,%ebx,4),%ebp
42395967Speter	addl	%ebp,		%esi
42495967Speter	xorl	%eax,		%eax
42595967Speter	xorl	%esi,		%edx
42695967Speter
42795967Speter	# Round 13
42895967Speter	rorl	$16,		%edx
42995967Speter	movl	52(%edi),	%esi
43095967Speter	movb	%dh,		%al
43195967Speter	movb	%dl,		%bl
43295967Speter	rorl	$16,		%edx
43395967Speter	xorl	%esi,		%ecx
43495967Speter	movl	72(%edi,%eax,4),%esi
43595967Speter	movl	1096(%edi,%ebx,4),%ebp
43695967Speter	movb	%dh,		%al
43795967Speter	movb	%dl,		%bl
43895967Speter	addl	%ebp,		%esi
43995967Speter	movl	2120(%edi,%eax,4),%eax
44095967Speter	xorl	%eax,		%esi
44195967Speter	movl	3144(%edi,%ebx,4),%ebp
44295967Speter	addl	%ebp,		%esi
44395967Speter	xorl	%eax,		%eax
44495967Speter	xorl	%esi,		%ecx
44595967Speter
44695967Speter	# Round 12
44795967Speter	rorl	$16,		%ecx
44895967Speter	movl	48(%edi),	%esi
44995967Speter	movb	%ch,		%al
45095967Speter	movb	%cl,		%bl
45195967Speter	rorl	$16,		%ecx
45295967Speter	xorl	%esi,		%edx
45395967Speter	movl	72(%edi,%eax,4),%esi
45495967Speter	movl	1096(%edi,%ebx,4),%ebp
45595967Speter	movb	%ch,		%al
45695967Speter	movb	%cl,		%bl
45795967Speter	addl	%ebp,		%esi
45895967Speter	movl	2120(%edi,%eax,4),%eax
45995967Speter	xorl	%eax,		%esi
46095967Speter	movl	3144(%edi,%ebx,4),%ebp
46195967Speter	addl	%ebp,		%esi
46295967Speter	xorl	%eax,		%eax
46395967Speter	xorl	%esi,		%edx
46495967Speter
46595967Speter	# Round 11
46695967Speter	rorl	$16,		%edx
46795967Speter	movl	44(%edi),	%esi
46895967Speter	movb	%dh,		%al
46995967Speter	movb	%dl,		%bl
47095967Speter	rorl	$16,		%edx
47195967Speter	xorl	%esi,		%ecx
47295967Speter	movl	72(%edi,%eax,4),%esi
47395967Speter	movl	1096(%edi,%ebx,4),%ebp
47495967Speter	movb	%dh,		%al
47595967Speter	movb	%dl,		%bl
47695967Speter	addl	%ebp,		%esi
47795967Speter	movl	2120(%edi,%eax,4),%eax
47895967Speter	xorl	%eax,		%esi
47995967Speter	movl	3144(%edi,%ebx,4),%ebp
48095967Speter	addl	%ebp,		%esi
48195967Speter	xorl	%eax,		%eax
48295967Speter	xorl	%esi,		%ecx
48395967Speter
48495967Speter	# Round 10
48595967Speter	rorl	$16,		%ecx
48695967Speter	movl	40(%edi),	%esi
48795967Speter	movb	%ch,		%al
48895967Speter	movb	%cl,		%bl
48995967Speter	rorl	$16,		%ecx
49095967Speter	xorl	%esi,		%edx
49195967Speter	movl	72(%edi,%eax,4),%esi
49295967Speter	movl	1096(%edi,%ebx,4),%ebp
49395967Speter	movb	%ch,		%al
49495967Speter	movb	%cl,		%bl
49595967Speter	addl	%ebp,		%esi
49695967Speter	movl	2120(%edi,%eax,4),%eax
49795967Speter	xorl	%eax,		%esi
49895967Speter	movl	3144(%edi,%ebx,4),%ebp
49995967Speter	addl	%ebp,		%esi
50095967Speter	xorl	%eax,		%eax
50195967Speter	xorl	%esi,		%edx
50295967Speter
50395967Speter	# Round 9
50495967Speter	rorl	$16,		%edx
50595967Speter	movl	36(%edi),	%esi
50695967Speter	movb	%dh,		%al
50795967Speter	movb	%dl,		%bl
50895967Speter	rorl	$16,		%edx
50995967Speter	xorl	%esi,		%ecx
51095967Speter	movl	72(%edi,%eax,4),%esi
51195967Speter	movl	1096(%edi,%ebx,4),%ebp
51295967Speter	movb	%dh,		%al
51395967Speter	movb	%dl,		%bl
51495967Speter	addl	%ebp,		%esi
51595967Speter	movl	2120(%edi,%eax,4),%eax
51695967Speter	xorl	%eax,		%esi
51795967Speter	movl	3144(%edi,%ebx,4),%ebp
51895967Speter	addl	%ebp,		%esi
51995967Speter	xorl	%eax,		%eax
52095967Speter	xorl	%esi,		%ecx
52195967Speter
52295967Speter	# Round 8
52395967Speter	rorl	$16,		%ecx
52495967Speter	movl	32(%edi),	%esi
52595967Speter	movb	%ch,		%al
52695967Speter	movb	%cl,		%bl
52795967Speter	rorl	$16,		%ecx
52895967Speter	xorl	%esi,		%edx
52995967Speter	movl	72(%edi,%eax,4),%esi
53095967Speter	movl	1096(%edi,%ebx,4),%ebp
53195967Speter	movb	%ch,		%al
53295967Speter	movb	%cl,		%bl
53395967Speter	addl	%ebp,		%esi
53495967Speter	movl	2120(%edi,%eax,4),%eax
53595967Speter	xorl	%eax,		%esi
53695967Speter	movl	3144(%edi,%ebx,4),%ebp
53795967Speter	addl	%ebp,		%esi
53895967Speter	xorl	%eax,		%eax
53995967Speter	xorl	%esi,		%edx
54095967Speter
54195967Speter	# Round 7
54295967Speter	rorl	$16,		%edx
54395967Speter	movl	28(%edi),	%esi
54495967Speter	movb	%dh,		%al
54595967Speter	movb	%dl,		%bl
54695967Speter	rorl	$16,		%edx
54795967Speter	xorl	%esi,		%ecx
54895967Speter	movl	72(%edi,%eax,4),%esi
54995967Speter	movl	1096(%edi,%ebx,4),%ebp
55095967Speter	movb	%dh,		%al
55195967Speter	movb	%dl,		%bl
55295967Speter	addl	%ebp,		%esi
55395967Speter	movl	2120(%edi,%eax,4),%eax
55495967Speter	xorl	%eax,		%esi
55595967Speter	movl	3144(%edi,%ebx,4),%ebp
55695967Speter	addl	%ebp,		%esi
55795967Speter	xorl	%eax,		%eax
55895967Speter	xorl	%esi,		%ecx
55995967Speter
56095967Speter	# Round 6
56195967Speter	rorl	$16,		%ecx
56295967Speter	movl	24(%edi),	%esi
56395967Speter	movb	%ch,		%al
56495967Speter	movb	%cl,		%bl
56595967Speter	rorl	$16,		%ecx
56695967Speter	xorl	%esi,		%edx
56795967Speter	movl	72(%edi,%eax,4),%esi
56895967Speter	movl	1096(%edi,%ebx,4),%ebp
56995967Speter	movb	%ch,		%al
57095967Speter	movb	%cl,		%bl
57195967Speter	addl	%ebp,		%esi
57295967Speter	movl	2120(%edi,%eax,4),%eax
57395967Speter	xorl	%eax,		%esi
57495967Speter	movl	3144(%edi,%ebx,4),%ebp
57595967Speter	addl	%ebp,		%esi
57695967Speter	xorl	%eax,		%eax
57795967Speter	xorl	%esi,		%edx
57895967Speter
57995967Speter	# Round 5
58095967Speter	rorl	$16,		%edx
58195967Speter	movl	20(%edi),	%esi
58295967Speter	movb	%dh,		%al
58395967Speter	movb	%dl,		%bl
58495967Speter	rorl	$16,		%edx
58595967Speter	xorl	%esi,		%ecx
58695967Speter	movl	72(%edi,%eax,4),%esi
58795967Speter	movl	1096(%edi,%ebx,4),%ebp
58895967Speter	movb	%dh,		%al
58995967Speter	movb	%dl,		%bl
59095967Speter	addl	%ebp,		%esi
59195967Speter	movl	2120(%edi,%eax,4),%eax
59295967Speter	xorl	%eax,		%esi
59395967Speter	movl	3144(%edi,%ebx,4),%ebp
59495967Speter	addl	%ebp,		%esi
59595967Speter	xorl	%eax,		%eax
59695967Speter	xorl	%esi,		%ecx
59795967Speter
59895967Speter	# Round 4
59995967Speter	rorl	$16,		%ecx
60095967Speter	movl	16(%edi),	%esi
60195967Speter	movb	%ch,		%al
60295967Speter	movb	%cl,		%bl
60395967Speter	rorl	$16,		%ecx
60495967Speter	xorl	%esi,		%edx
60595967Speter	movl	72(%edi,%eax,4),%esi
60695967Speter	movl	1096(%edi,%ebx,4),%ebp
60795967Speter	movb	%ch,		%al
60895967Speter	movb	%cl,		%bl
60995967Speter	addl	%ebp,		%esi
61095967Speter	movl	2120(%edi,%eax,4),%eax
61195967Speter	xorl	%eax,		%esi
61295967Speter	movl	3144(%edi,%ebx,4),%ebp
61395967Speter	addl	%ebp,		%esi
61495967Speter	xorl	%eax,		%eax
61595967Speter	xorl	%esi,		%edx
61695967Speter
61795967Speter	# Round 3
61895967Speter	rorl	$16,		%edx
61995967Speter	movl	12(%edi),	%esi
62095967Speter	movb	%dh,		%al
62195967Speter	movb	%dl,		%bl
62295967Speter	rorl	$16,		%edx
62395967Speter	xorl	%esi,		%ecx
62495967Speter	movl	72(%edi,%eax,4),%esi
62595967Speter	movl	1096(%edi,%ebx,4),%ebp
62695967Speter	movb	%dh,		%al
62795967Speter	movb	%dl,		%bl
62895967Speter	addl	%ebp,		%esi
62995967Speter	movl	2120(%edi,%eax,4),%eax
63095967Speter	xorl	%eax,		%esi
63195967Speter	movl	3144(%edi,%ebx,4),%ebp
63295967Speter	addl	%ebp,		%esi
63395967Speter	xorl	%eax,		%eax
63495967Speter	xorl	%esi,		%ecx
63595967Speter
63695967Speter	# Round 2
63795967Speter	rorl	$16,		%ecx
63895967Speter	movl	8(%edi),	%esi
63995967Speter	movb	%ch,		%al
64095967Speter	movb	%cl,		%bl
64195967Speter	rorl	$16,		%ecx
64295967Speter	xorl	%esi,		%edx
64395967Speter	movl	72(%edi,%eax,4),%esi
64495967Speter	movl	1096(%edi,%ebx,4),%ebp
64595967Speter	movb	%ch,		%al
64695967Speter	movb	%cl,		%bl
64795967Speter	addl	%ebp,		%esi
64895967Speter	movl	2120(%edi,%eax,4),%eax
64995967Speter	xorl	%eax,		%esi
65095967Speter	movl	3144(%edi,%ebx,4),%ebp
65195967Speter	addl	%ebp,		%esi
65295967Speter	xorl	%eax,		%eax
65395967Speter	xorl	%esi,		%edx
65495967Speter
65595967Speter	# Round 1
65695967Speter	rorl	$16,		%edx
65795967Speter	movl	4(%edi),	%esi
65895967Speter	movb	%dh,		%al
65995967Speter	movb	%dl,		%bl
66095967Speter	rorl	$16,		%edx
66195967Speter	xorl	%esi,		%ecx
66295967Speter	movl	72(%edi,%eax,4),%esi
66395967Speter	movl	1096(%edi,%ebx,4),%ebp
66495967Speter	movb	%dh,		%al
66595967Speter	movb	%dl,		%bl
66695967Speter	addl	%ebp,		%esi
66795967Speter	movl	2120(%edi,%eax,4),%eax
66895967Speter	xorl	%eax,		%esi
66995967Speter	movl	3144(%edi,%ebx,4),%ebp
67095967Speter	addl	%ebp,		%esi
67195967Speter	xorl	%eax,		%eax
67295967Speter	xorl	%esi,		%ecx
67395967Speter	xorl	(%edi),		%edx
67495967Speter	movl	20(%esp),	%eax
67595967Speter	movl	%edx,		(%eax)
67695967Speter	movl	%ecx,		4(%eax)
67795967Speter	popl	%edi
67895967Speter	popl	%esi
67995967Speter	popl	%ebx
68095967Speter	popl	%ebp
68195967Speter	ret
68295967Speter.L_BF_decrypt_end:
68395967Speter	.size	BF_decrypt,.L_BF_decrypt_end-BF_decrypt
68495967Speter.ident	"desasm.pl"
68595967Speter.text
68695967Speter	.align 16
68795967Speter.globl BF_cbc_encrypt
68895967Speter	.type	BF_cbc_encrypt,@function
68995967SpeterBF_cbc_encrypt:
69095967Speter
69195967Speter	pushl	%ebp
69295967Speter	pushl	%ebx
69395967Speter	pushl	%esi
69495967Speter	pushl	%edi
69595967Speter	movl	28(%esp),	%ebp
69695967Speter	# getting iv ptr from parameter 4
69795967Speter	movl	36(%esp),	%ebx
69895967Speter	movl	(%ebx),		%esi
69995967Speter	movl	4(%ebx),	%edi
70095967Speter	pushl	%edi
70195967Speter	pushl	%esi
70295967Speter	pushl	%edi
70395967Speter	pushl	%esi
70495967Speter	movl	%esp,		%ebx
70595967Speter	movl	36(%esp),	%esi
70695967Speter	movl	40(%esp),	%edi
70795967Speter	# getting encrypt flag from parameter 5
70895967Speter	movl	56(%esp),	%ecx
70995967Speter	# get and push parameter 3
71095967Speter	movl	48(%esp),	%eax
71195967Speter	pushl	%eax
71295967Speter	pushl	%ebx
71395967Speter	cmpl	$0,		%ecx
71495967Speter	jz	.L000decrypt
71595967Speter	andl	$4294967288,	%ebp
71695967Speter	movl	8(%esp),	%eax
71795967Speter	movl	12(%esp),	%ebx
71895967Speter	jz	.L001encrypt_finish
71995967Speter.L002encrypt_loop:
72095967Speter	movl	(%esi),		%ecx
72195967Speter	movl	4(%esi),	%edx
72295967Speter	xorl	%ecx,		%eax
72395967Speter	xorl	%edx,		%ebx
72495967Speter.byte 15
72595967Speter.byte 200		# bswapl  %eax
72695967Speter.byte 15
72795967Speter.byte 203		# bswapl  %ebx
72895967Speter	movl	%eax,		8(%esp)
72995967Speter	movl	%ebx,		12(%esp)
73095967Speter	call	BF_encrypt
73195967Speter	movl	8(%esp),	%eax
73295967Speter	movl	12(%esp),	%ebx
73395967Speter.byte 15
73495967Speter.byte 200		# bswapl  %eax
73595967Speter.byte 15
73695967Speter.byte 203		# bswapl  %ebx
73795967Speter	movl	%eax,		(%edi)
73895967Speter	movl	%ebx,		4(%edi)
73995967Speter	addl	$8,		%esi
74095967Speter	addl	$8,		%edi
74195967Speter	subl	$8,		%ebp
74295967Speter	jnz	.L002encrypt_loop
74395967Speter.L001encrypt_finish:
74495967Speter	movl	52(%esp),	%ebp
74595967Speter	andl	$7,		%ebp
74695967Speter	jz	.L003finish
74795967Speter	xorl	%ecx,		%ecx
74895967Speter	xorl	%edx,		%edx
74995967Speter	movl	.L004cbc_enc_jmp_table(,%ebp,4),%ebp
75095967Speter	jmp	*%ebp
75195967Speter.L005ej7:
75295967Speter	movb	6(%esi),	%dh
75395967Speter	sall	$8,		%edx
75495967Speter.L006ej6:
75595967Speter	movb	5(%esi),	%dh
75695967Speter.L007ej5:
75795967Speter	movb	4(%esi),	%dl
75895967Speter.L008ej4:
75995967Speter	movl	(%esi),		%ecx
76095967Speter	jmp	.L009ejend
76195967Speter.L010ej3:
76295967Speter	movb	2(%esi),	%ch
76395967Speter	sall	$8,		%ecx
76495967Speter.L011ej2:
76595967Speter	movb	1(%esi),	%ch
76695967Speter.L012ej1:
76795967Speter	movb	(%esi),		%cl
76895967Speter.L009ejend:
76995967Speter	xorl	%ecx,		%eax
77095967Speter	xorl	%edx,		%ebx
77195967Speter.byte 15
77295967Speter.byte 200		# bswapl  %eax
77395967Speter.byte 15
77495967Speter.byte 203		# bswapl  %ebx
77595967Speter	movl	%eax,		8(%esp)
77695967Speter	movl	%ebx,		12(%esp)
77795967Speter	call	BF_encrypt
77895967Speter	movl	8(%esp),	%eax
77995967Speter	movl	12(%esp),	%ebx
78095967Speter.byte 15
78195967Speter.byte 200		# bswapl  %eax
78295967Speter.byte 15
78395967Speter.byte 203		# bswapl  %ebx
78495967Speter	movl	%eax,		(%edi)
78595967Speter	movl	%ebx,		4(%edi)
78695967Speter	jmp	.L003finish
78795967Speter.align 16
78895967Speter.L000decrypt:
78995967Speter	andl	$4294967288,	%ebp
79095967Speter	movl	16(%esp),	%eax
79195967Speter	movl	20(%esp),	%ebx
79295967Speter	jz	.L013decrypt_finish
79395967Speter.L014decrypt_loop:
79495967Speter	movl	(%esi),		%eax
79595967Speter	movl	4(%esi),	%ebx
79695967Speter.byte 15
79795967Speter.byte 200		# bswapl  %eax
79895967Speter.byte 15
79995967Speter.byte 203		# bswapl  %ebx
80095967Speter	movl	%eax,		8(%esp)
80195967Speter	movl	%ebx,		12(%esp)
80295967Speter	call	BF_decrypt
80395967Speter	movl	8(%esp),	%eax
80495967Speter	movl	12(%esp),	%ebx
80595967Speter.byte 15
80695967Speter.byte 200		# bswapl  %eax
80795967Speter.byte 15
80895967Speter.byte 203		# bswapl  %ebx
80995967Speter	movl	16(%esp),	%ecx
81095967Speter	movl	20(%esp),	%edx
81195967Speter	xorl	%eax,		%ecx
81295967Speter	xorl	%ebx,		%edx
81395967Speter	movl	(%esi),		%eax
81495967Speter	movl	4(%esi),	%ebx
81595967Speter	movl	%ecx,		(%edi)
81695967Speter	movl	%edx,		4(%edi)
81795967Speter	movl	%eax,		16(%esp)
81895967Speter	movl	%ebx,		20(%esp)
81995967Speter	addl	$8,		%esi
82095967Speter	addl	$8,		%edi
82195967Speter	subl	$8,		%ebp
82295967Speter	jnz	.L014decrypt_loop
82395967Speter.L013decrypt_finish:
82495967Speter	movl	52(%esp),	%ebp
82595967Speter	andl	$7,		%ebp
82695967Speter	jz	.L003finish
82795967Speter	movl	(%esi),		%eax
82895967Speter	movl	4(%esi),	%ebx
82995967Speter.byte 15
83095967Speter.byte 200		# bswapl  %eax
83195967Speter.byte 15
83295967Speter.byte 203		# bswapl  %ebx
83395967Speter	movl	%eax,		8(%esp)
83495967Speter	movl	%ebx,		12(%esp)
83595967Speter	call	BF_decrypt
83695967Speter	movl	8(%esp),	%eax
83795967Speter	movl	12(%esp),	%ebx
83895967Speter.byte 15
83995967Speter.byte 200		# bswapl  %eax
84095967Speter.byte 15
84195967Speter.byte 203		# bswapl  %ebx
84295967Speter	movl	16(%esp),	%ecx
84395967Speter	movl	20(%esp),	%edx
84495967Speter	xorl	%eax,		%ecx
84595967Speter	xorl	%ebx,		%edx
84695967Speter	movl	(%esi),		%eax
84795967Speter	movl	4(%esi),	%ebx
84895967Speter.L015dj7:
84995967Speter	rorl	$16,		%edx
85095967Speter	movb	%dl,		6(%edi)
85195967Speter	shrl	$16,		%edx
85295967Speter.L016dj6:
85395967Speter	movb	%dh,		5(%edi)
85495967Speter.L017dj5:
85595967Speter	movb	%dl,		4(%edi)
85695967Speter.L018dj4:
85795967Speter	movl	%ecx,		(%edi)
85895967Speter	jmp	.L019djend
85995967Speter.L020dj3:
86095967Speter	rorl	$16,		%ecx
86195967Speter	movb	%cl,		2(%edi)
86295967Speter	sall	$16,		%ecx
86395967Speter.L021dj2:
86495967Speter	movb	%ch,		1(%esi)
86595967Speter.L022dj1:
86695967Speter	movb	%cl,		(%esi)
86795967Speter.L019djend:
86895967Speter	jmp	.L003finish
86995967Speter.align 16
87095967Speter.L003finish:
87195967Speter	movl	60(%esp),	%ecx
87295967Speter	addl	$24,		%esp
87395967Speter	movl	%eax,		(%ecx)
87495967Speter	movl	%ebx,		4(%ecx)
87595967Speter	popl	%edi
87695967Speter	popl	%esi
87795967Speter	popl	%ebx
87895967Speter	popl	%ebp
87995967Speter	ret
88095967Speter.align 16
88195967Speter.L004cbc_enc_jmp_table:
88295967Speter	.long 0
88395967Speter	.long .L012ej1
88495967Speter	.long .L011ej2
88595967Speter	.long .L010ej3
88695967Speter	.long .L008ej4
88795967Speter	.long .L007ej5
88895967Speter	.long .L006ej6
88995967Speter	.long .L005ej7
89095967Speter.align 16
89195967Speter.L023cbc_dec_jmp_table:
89295967Speter	.long 0
89395967Speter	.long .L022dj1
89495967Speter	.long .L021dj2
89595967Speter	.long .L020dj3
89695967Speter	.long .L018dj4
89795967Speter	.long .L017dj5
89895967Speter	.long .L016dj6
89995967Speter	.long .L015dj7
90095967Speter.L_BF_cbc_encrypt_end:
90195967Speter	.size	BF_cbc_encrypt,.L_BF_cbc_encrypt_end-BF_cbc_encrypt
90295967Speter.ident	"desasm.pl"
903